Central — nədir, BLE-də rolu və cihazları necə skan edir

Müəllif: IT Sectr Dərc olunub: 2026-07-15 Oxuma vaxtı: 8 dəq

Central — Bluetooth Low Energy arxitekturasında skan etməni başladan, qoşulma yaradan və periferik cihazlarla məlumat mübadiləsini idarə edən cihazdır. Mobil tərtibat kontekstində Central — BLE sensorlarına, fitnes trekerlərinə və ağıllı aksesuarlara qoşulan iOS və ya Android smartfon və ya planşetdir. Bluetooth Core Specification 5.4 (2023) məlumatlarına görə, Central eyni anda 7 fərqli Peripheral-ə qədər qoşulma dəstəkləyə bilər, baxmayaraq ki, real məhdudiyyət çip istehsalçısından və OS versiyasından asılıdır. iOS-da Core Bluetooth və Android-də android.bluetooth.le Central rolunu idarə etmək üçün tam API təqdim edir.

Əsas məqamlar

  • Central — skan edən, qoşulan və periferiya ilə mübadiləni idarə edən aktiv BLE cihazı.
  • Skan etmə reklam paketləri vasitəsilə həyata keçirilir — Central enerjiyə qənaət üçün cihazları Service UUID-ə görə filtrləyə bilər.
  • Bir Central eyni anda müxtəlif Peripheral-lərlə 7 qoşulmaya qədər dəstəkləyə bilər (tətbiqdən asılıdır).
  • Mobil tərtibatda Central — Core Bluetooth (iOS) və ya android.bluetooth.le (Android) istifadə edən smartfondur.
  • Central rolu daimi skan etmə və məlumat emalı səbəbindən Peripheral-dən daha çox enerji sərf edir.

BLE-də Central nədir?

Central — Bluetooth Low Energy arxitekturasında bütün rabitəni başladan GATT müştərisidir. Passiv olaraq qoşulmanı gözləyən və xidmətlərini reklam edən Peripheral-dən fərqli olaraq, Central aktiv şəkildə efiri skan edir, reklam paketlərini aşkarlayır və qoşulmanı başladır.

Asimmetrik Central-Peripheral modeli BLE-nin fundamental xüsusiyyətidir. Central qarşılıqlı əlaqə məntiqini idarə edir: hansı cihaza qoşulacağına, hansı xidmətləri araşdıracağına, hansı xarakteristikaları oxuyub yazacağına qərar verir. Peripheral məlumat serveri rolunu oynayır — xidmətləri və xarakteristikaları saxlayır, lakin qoşulmaları başlatmır.

Bluetooth Core Specification 5.4 (2023)-ə görə, cihaz eyni anda həm Central, həm də Peripheral ola bilər (dual role). Məsələn, smartfon fitnes bilərziyi üçün Central, fayl ötürən başqa smartfon üçün Peripheral ola bilər. Lakin hər iki rolda eyni vaxtda işləmək enerji sərfiyyatını və qoşulma idarəsinin mürəkkəbliyini artırır.

Mobil tərtibat ekosistemində Central rolu ən çox rast gəlinən ssenaridir. Smartfon proqramı BLE cihazlarını (sensorlar, qulaqlıqlar, bilərziklər) axtarır, onlara qoşulur və məlumat alır. Tərtibatçı Central ilə işləmək üçün əməliyyat sistemi API-sindən istifadə edir: iOS-da CBCentralManager, Android-də BluetoothLeScanner və BluetoothGatt.

Cihazların skan edilməsi prosesi

Skan etmə — Central-ın işinin ilk mərhələsidir. Cihaz, Peripheral-lərin dövri olaraq göndərdiyi reklam paketlərini aşkarlamaq üçün BLE radiokanallarını (37, 38, 39) dinləyir. Hər bir reklam paketi cihazın adını, xidmət UUID siyahısını və istifadəçi məlumatlarını ehtiva edir.

Central iki skan etmə rejimində işləyə bilər: passive scanning (yalnız reklam paketlərinin qəbulu) və active scanning (scan response vasitəsilə əlavə məlumat almaq üçün scan request göndərilməsi). Passive scanning enerjiyə qənaət edir, lakin daha az məlumat verir. Active scanning cihazın adı və tam xidmət siyahısı daxil olmaqla reklam paketinin tam məlumatlarını əldə etməyə imkan verir.

UUID-ə görə filtrləmə — vacib optimallaşdırmadır. Central yalnız müəyyən Service UUID-si olan cihazları skan edə bilər, qalanlarını nəzərə almır. Bu təkcə enerjiyə qənaət etmir, həm də proqram məntiqini sadələşdirir: delegate yalnız uyğun cihazları alır.

swift
import CoreBluetooth

class BLECentralManager: NSObject, CBCentralManagerDelegate {

    private var centralManager: CBCentralManager!

    override init() {
        super.init()
        centralManager = CBCentralManager(
            delegate: self,
            queue: nil
        )
    }

    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        if central.state == .poweredOn {
            central.scanForPeripherals(
                withServices: nil,
                options: [
                    CBCentralManagerScanOptionAllowDuplicatesKey: false
                ]
            )
        }
    }
}

Qoşulmaların idarə edilməsi

Qoşulmaların idarə edilməsi — Central-ın əsas vəzifəsidir. Uyğun Peripheral aşkarlandıqdan sonra Central qoşulmanı başladır. BLE qoşulması connection establishment proseduru vasitəsilə qurulur, bura parametr mübadiləsi daxildir: connection interval, slave latency və supervision timeout.

Connection interval, qoşulmadan sonra Central və Peripheral-in nə qədər tez-tez məlumat mübadiləsi aparacağını müəyyən edir. Interval 7.5 ms-dən 4 saniyəyə qədər ola bilər. Interval nə qədər qısa olsa, ötürmə qabiliyyəti bir o qədər yüksək, lakin enerji sərfiyyatı da o qədər çox olar. Slave latency Peripheral-ə enerjiyə qənaət üçün bir neçə connection event-i buraxmağa imkan verir. Supervision timeout — cavab olmadan maksimum vaxt, bundan sonra qoşulma itirilmiş sayılır.

Central məlumat mübadiləsi başa çatdıqdan sonra qoşulmanın kəsilməsinə cavabdehdir. BLE cihazları adətən qoşulmanı daimi saxlamır — Central qoşulur, məlumat alır və ayrılır. Bu IoT sensorları üçün standart nümunədir: Central skan edir, temperatur sensorunu tapır, qoşulur, dəyəri oxuyur və ayrılır.

ParametrRangeMəqsədTövsiyə
Connection Interval7.5 ms – 4 sMəlumat mübadiləsi tezliyiAxınlar üçün 30–50 ms, nadir məlumatlar üçün 1–4 s
Slave Latency0–499 hadisəPeripheral tərəfindən hadisələrin buraxılmasıSensor enerjisinə qənaət üçün 4–10
Supervision Timeout100 ms – 32 sƏlaqə itkisi vaxt aşımıƏksər ssenarilər üçün 6–10 saniyə
MTU23–517 baytATT paket ölçüsüQoşulmada maksimumu tələb edin

iOS-da Central: Core Bluetooth

Core Bluetooth — Apple-ın iOS və macOS-da BLE ilə işləmək üçün freymvorkudur. CBCentralManager sinfi Central rolunu həyata keçirmək üçün tam API təmin edir: skan etmə, qoşulma, qoşulmaların idarə edilməsi. iOS-da Central ilə iş delegate modelinə əsaslanır: CBCentralManagerDelegate vəziyyət dəyişikliyi, cihaz aşkarlanması və qoşulma nəticələri hadisələrini alır.

iOS-da Central ilə işin əsas addımları: CBCentralManager-in işə salınması, Bluetooth vəziyyətinin yoxlanması, skan etmənin başladılması, aşkarlanan cihazların delegate vasitəsilə emalı, seçilmiş Peripheral-ə qoşulma, xidmət və xarakteristikaların aşkarlanması, məlumat mübadiləsi.

swift
// Aşkarlanmış Peripheral-ə qoşul
func centralManager(
    _ central: CBCentralManager,
    didDiscover peripheral: CBPeripheral,
    advertisementData: [String: Any],
    rssi RSSI: NSNumber
) {
    // Peripheral-ə istinadı saxla və qoşul
    discoveredPeripheral = peripheral
    central.connect(peripheral, options: nil)
}

// Uğurlu qoşulma
func centralManager(
    _ central: CBCentralManager,
    didConnect peripheral: CBPeripheral
) {
    peripheral.delegate = self
    peripheral.discoverServices(nil)
}

iOS BLE-nin fon işini məhdudlaşdırır: fon rejimində proqram yalnız Info.plist-də müəyyən açarlarla skan edə bilər, qoşulmuş cihazlar isə Central-a məlumat dəyişiklikləri barədə bildiriş göndərə bilər. Kritik proqramlar (tibbi cihazlar) üçün bluetooth-central açarı ilə Background Modes istifadə edin.

Android-də Central: BluetoothLeScanner

Android BLE cihazlarını skan etmək üçün BluetoothLeScanner API-sini və qoşulmaları idarə etmək üçün BluetoothGatt təqdim edir. Android 5.0-dan (API 21) başlayaraq BluetoothLeScanner köhnəlmiş startLeScan-ı əvəz etmişdir. API BLUETOOTH, BLUETOOTH_ADMIN və ACCESS_FINE_LOCATION (və ya Android 10+ üçün ACCESS_BACKGROUND_LOCATION) icazələrini tələb edir.

java
import android.bluetooth.le.*;
import android.bluetooth.*;

private BluetoothLeScanner scanner;
private BluetoothGatt bluetoothGatt;

// Skan etməni konfiqurasiya et
ScanSettings settings = new ScanSettings.Builder()
    .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
    .build();

// Skan etməyə başla
scanner.startScan(null, settings, new ScanCallback() {
    @Override
    public void onScanResult(
            int callbackType,
            ScanResult result
    ) {
        BluetoothDevice device = result.getDevice();
        // Cihaza qoşul
        bluetoothGatt = device.connectGatt(
            context, false, gattCallback
        );
    }
});

Android-də skan etmə məhdudiyyətlərini nəzərə almaq vacibdir: Android 7-dən (API 24) başlayaraq, Location istifadə etməyən proqramlarda skan etmə 30 saniyədə 5 dəfədən çox işə salına bilməz. Android 12+ BLUETOOTH_SCAN, BLUETOOTH_CONNECT və ADVERTISE icazələrini, həmçinin bu icazələrin runtime tələbini tələb edir.

Central-ın enerji sərfiyyatı

Central-ın enerji sərfiyyatı radiokanalları daimi skan etmək zərurəti səbəbindən Peripheral-dən daha yüksəkdir. Central BLE paketləri ilə məlumat alır, onları emal edir, qoşulmaları idarə edir və tez-tez proqram prosessorunda hesablamalar aparır. Bluetooth SIG məlumatlarına görə, skan etmə rejimdən asılı olaraq 30 mA-dan 100 mA-dək enerji sərf edir.

Central üçün bir neçə enerjiyə qənaət strategiyası mövcuddur. Interval skan etmə — ən effektiv üsul: Central qısa pəncərələrdə (scan window) uzun fasilələrlə (scan interval) skan edir. Məsələn, scan window 30 ms və scan interval 1000 ms olduqda enerji sərfiyyatı fasiləsiz skan etmə ilə müqayisədə 97% azalır.

Əlavə optimallaşdırma — UUID-ə görə filtrləmə. Central yalnız uyğun reklam paketlərini emal edir, qalanlarını nəzərə almır. Bu prosessor yükünü azaldır və cihazın batareya iş müddətini artırır. Həmçinin tələb olunan cihaz aşkarlanan kimi skan etməni dərhal dayandırmaq və qoşulmanı lazımdan artıq saxlamamaq tövsiyə olunur.

Tez-tez verilən suallar

Smartfon eyni anda həm Central, həm də Peripheral ola bilərmi?

Bəli, BLE dual role dəstəkləyir: cihaz eyni anda bəzi cihazlar üçün Central, digərləri üçün Peripheral ola bilər. Məsələn, smartfon sensordan məlumat oxuyur (Central kimi) və eyni anda başqa cihaza məlumat ötürmək üçün öz xidmətini reklam edir (Peripheral kimi).

Central eyni anda neçə cihaza xidmət göstərə bilər?

BLE spesifikasiyası bir Central üçün 7 qoşulma limiti müəyyən edir. Praktikada məhdudiyyət çip istehsalçısından asılıdır: Nordic nRF52840 çipləri 20 qoşulmaya qədər dəstəkləyir, bəzi büdcə Bluetooth adapterləri isə 3–4-dən çox dəstəkləmir.

Niyə Central mənim BLE sensorumu aşkarlamır?

Səbəblər müxtəlif ola bilər: sensor reklam etmir (advertising rejimində deyil), UUID filtri çox sərtdir, smartfonda Bluetooth söndürülüb, tələb olunan icazələr yoxdur (Android-də Location) və ya sensor əhatə dairəsindən kənardadır (qapalı məkanda 10 metrə qədər tövsiyə olunur).

BLE cihazı ilə qoşulmanı daimi saxlamaq lazımdırmı?

Mütləq deyil. Bir çox ssenarilər üçün connect-and-read nümunəsi istifadə olunur: Central skan edir, qoşulur, lazımi məlumatları oxuyur və qoşulmanı kəsir. Daimi qoşulma yalnız axın məlumatları (nəbz, EKQ) və ya real vaxtda cihaz idarəsi üçün lazımdır.

Skan etmə zamanı Central-ın enerji sərfiyyatını necə azaltmaq olar?

Interval skan etmə istifadə edin: scan window 30–50 ms, scan interval 500–1000 ms nisbətində. Yalnız uyğun reklam paketlərini emal etmək üçün cihazları UUID-ə görə filtrləyin. Tələb olunan Peripheral aşkarlanan kimi skan etməni dərhal dayandırın.

Nəticə

  • Central — skan etməni, qoşulmanı və məlumat mübadiləsini idarə edən BLE qoşulmasının aktiv iştirakçısıdır.
  • Skan etmə prosesi Service UUID-ə görə filtrləmə imkanı ilə 37, 38, 39 kanallarında reklam paketlərinin qəbulunu əhatə edir.
  • Peripheral aşkarlandıqdan sonra Central konfiqurasiya edilə bilən parametrlərlə qoşulma qurur — connection interval, slave latency, supervision timeout.
  • Mobil tərtibatda Central CBCentralManager (iOS) və ya BluetoothLeScanner + BluetoothGatt (Android) vasitəsilə həyata keçirilir.
  • Bir Central standart Bluetooth konfiqurasiyasında eyni anda 7 qoşulmaya qədər idarə edə bilər.
  • Central-ın enerji sərfiyyatı interval skan etmə və UUID filtrasiyası ilə batareya iş müddətini artırmaq üçün optimallaşdırıla bilər.
  • Qoşulmanın həyat dövrünün düzgün idarə edilməsi — aşkarlamadan kəsilməyə qədər — BLE tətbiqinin effektivliyini müəyyən edir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun