Peripheral — bu nədir, BLE-də rolu və xidmətləri necə reklam edir

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

Peripheral — Bluetooth Low Energy arxitekturasında xidmətlərini advertising paketləri vasitəsilə reklam edən və Central-dan əlaqə gözləyən cihazdır. IoT ekosistemində Peripheral adətən məhdud enerji sərfiyyatı olan cihazdır: temperatur sensoru, ağıllı lampa, fitnes qolbağı, beacon. Bluetooth Core Specification 5.4 (2023) reklam protokolunu müəyyən edir: Peripheral vaxtaşırı cihaz adı, xidmətlər siyahısı və istifadəçi məlumatlarını ehtiva edən advertising paketləri göndərir, Central isə bu paketləri skan edərək qoşulub-qoşulmayacağına qərar verir. Əlaqə qurulduqdan sonra Peripheral GATT-server rolunu oynayaraq oxumaq və yazmaq üçün xidmətlər və xarakteristikalar təqdim edir.

Əsas məqamlar

  • Peripheral — xidmətləri reklam edən və Central-dan əlaqə gözləyən passiv BLE cihazı.
  • Reklam paketləri (advertising) cihaz adı, xidmət UUID-ləri, istehsalçı məlumatları və məsafəni qiymətləndirmək üçün RSSI ehtiva edir.
  • Peripheral Central-ın girişi üçün xidmətləri və xarakteristikaları saxlayan GATT-server rolunu oynayır.
  • Peripheral-in enerji sərfiyyatı yuxu rejimində 5 µA-dan aktiv məlumat ötürmədə 15 mA-dək ola bilər.
  • Qoşulduqdan sonra Peripheral enerjiyə qənaət etmək üçün reklamı söndürə və lazım olduqda yenidən yandıra bilər.

BLE-də Peripheral nədir?

Peripheral — GATT-serveri tətbiq edən və imkanlarını advertising kanalları vasitəsilə reklam edən BLE cihazıdır. Cihazları aktiv şəkildə axtaran Central-dən fərqli olaraq, Peripheral passiv şəkildə qoşulmanı gözləyir. Bu, batareya ilə işləyən cihazların enerji səmərəliliyi üçün optimallaşdırılmış asimmetrik modeldir.

Peripheral bir neçə rejimdə ola bilər: advertising (reklam), connected (Central-a qoşulmuş), sleeping (reklam söndürülmüş yuxu). Advertising rejimində Peripheral vaxtaşırı qısa məlumat paketləri göndərir və minimal enerji sərf edir. Qoşulduqdan sonra Peripheral connected rejiminə keçir və razılaşdırılmış connection interval-a uyğun olaraq Central ilə məlumat mübadiləsi aparır.

Bluetooth Core Specification 5.4 (2023)-ə görə, cihaz dinamik olaraq Peripheral və Central rolları arasında keçid edə bilər, lakin hər an bir əlaqə üçün rol sabitdir. Tipik ssenari: IoT sensoru daim Peripheral rolunda işləyir, smartfon isə Central olaraq əlaqəni idarə edir.

Tərtibatçı üçün vacibdir: Peripheral hansı xidmətlərin və xarakteristikaların mövcud olduğunu müəyyən edir və onlara girişi idarə edir. Peripheral-də GATT-serverinin strukturu Central-ın hansı məlumatları oxuya biləcəyini və hansı əmrləri yaza biləcəyini müəyyən edir.

Reklam prosesi (Advertising)

Advertising (reklam) — Peripheral-in mövcudluğu barədə məlumat verdiyi mexanizmdir. Peripheral üç ayrılmış kanalda (37, 38, 39) 20 ms-dən 10.24 saniyəyədək intervalda advertising paketləri göndərir. Hər bir reklam paketi sabit məlumatları ehtiva edir və əlavə məlumatlar daxil edə bilər.

İki növ reklam paketi var: advertising PDU (əsas paket) və scan response PDU (Central-ın sorğusuna cavab). Əsas paket məcburi sahələri ehtiva edir: paket növü, göndərənin ünvanı, məlumatlar. Central scan request göndərərsə, Peripheral əlavə məlumatlarla — məsələn, tam cihaz adı ilə cavab verir.

Advertising parametrləri aşkarlanma sürətinə və enerji sərfiyyatına təsir edir. Advertising interval — paketlərin göndərilməsi arasındakı vaxt. Interval nə qədər qısa olsa, Central cihazı bir o qədər tez aşkarlayar, lakin Peripheral bir o qədər çox enerji sərf edər. Tövsiyə olunan interval: əksər cihazlar üçün 100–1000 ms.

ParametrDiapazonTəsirTövsiyə
Advertising Interval20 ms – 10.24 sAşkarlanma sürəti, enerjiBalans üçün 100–1000 ms
Advertising Channels37, 38, 39Aşkarlanma etibarlılığıHər 3 kanal mütləq
Tx Power−20 – +10 dBmMəsafə, müdaxilələr0 dBm qapalı məkan üçün, +4 dBm açıq hava üçün
Advertising Timeout0 – 180 saniyəReklam müddətiBeaconlar üçün 0 (sonsuz)

Reklam paketinin strukturu

BLE reklam paketi advertising PDU üçün 31 bayt və scan response üçün daha 31 bayt məhdudiyyətinə malikdir. Paket daxilində məlumatlar AD Structure (Advertising Data Structure) formatında təşkil olunur: hər bir sahənin növü (1 bayt), uzunluğu (1 bayt) və dəyəri var.

Ən çox istifadə olunan AD Type: Flags (0x01) — qoşulma və aşkarlanma rejimləri, Local Name (0x08 və ya 0x09) — cihaz adı, Service UUID List (0x02–0x07) — xidmət UUID-lərinin siyahısı, Manufacturer Specific Data (0xFF) — istehsalçı məlumatları. 31 baytlıq paketə məlumatların düzgün yığılması quraşdırılmış cihaz tərtibatçısının vacib vəzifəsidir.

Daha çox məlumat ötürməyə ehtiyacı olan cihazlar üçün extended advertising (BLE 5.0+) mövcuddur ki, bu da reklam paketinin ölçüsünü 251 bayta qədər artırır və yeni paket növləri əlavə edir. Extended advertising həmçinin açıq ərazidə məsafəni 1 km-ə qədər artırmaq üçün kodlaşdırılmış kanalları (coded PHY) dəstəkləyir.

Reklam paketini layihələşdirərkən nəzərə alın: advertising paketində nə qədər çox məlumat varsa, digər cihazlarla toqquşma ehtimalı bir o qədər yüksəkdir. Sürətli aşkarlanma üçün advertising PDU-da yalnız kritik məlumatları (Service UUID) yerləşdirmək, əlavə məlumatları isə scan response-də vermək tövsiyə olunur.

Peripheral GATT-server kimi

GATT-server Peripheral-də Central-ın aşkarlaya və qarşılıqlı əlaqə qura biləcəyi bütün xidmətləri və xarakteristikaları ehtiva edir. Qoşulduqdan sonra Central xidmətləri (discover services), sonra xarakteristikaları (discover characteristics) aşkarlayır və GATT protokolu vasitəsilə onlarla qarşılıqlı əlaqə qurur.

Peripheral GATT-server olaraq Central-dan sorğuları düzgün emal etməlidir: oxuma (read request), yazma (write request), bildirişlər (notification) və təsdiqlənmiş bildirişlər (indication). Hər bir sorğu GATT cədvəlindən keçir, burada hər bir atributa (xidmət, xarakteristika, deskriptor) Handle — 16-bitlik ünvan uyğun gəlir.

Peripheral tərtibatçısı hər bir atributa giriş hüquqlarını müəyyən edir: yalnız oxuma, yalnız yazma, oxuma və yazma, şifrələmə ilə və ya olmadan. Məxfi məlumatlar (şəxsi məlumatlar, tibbi göstəricilər) üçün MITM Protection vasitəsilə şifrələmə tələbinin daxil edilməsi tövsiyə olunur.

iOS-da Peripheral: CBPeripheralManager

CBPeripheralManager — iOS-da Peripheral rolunu tətbiq etmək üçün Core Bluetooth sinfi. O, GATT-serverini idarə edir, xidmətləri və xarakteristikaları dərc edir, Central-dan sorğuları emal edir. CBCentralManager-dən fərqli olaraq, CBPeripheralManager skan etmir — yalnız reklam edir və əlaqələrə xidmət göstərir.

iOS-da Peripheral tətbiqinin əsas addımları: CBPeripheralManager-in inisiallaşdırılması, add vasitəsilə xidmətlərin əlavə edilməsi, startAdvertising vasitəsilə reklamın başladılması, CBPeripheralManagerDelegate vasitəsilə Central-dan sorğuların emalı.

swift
import CoreBluetooth

class BLEPeripheralManager: NSObject, CBPeripheralManagerDelegate {

    private var peripheralManager: CBPeripheralManager!

    func startAdvertising() {
        let advertisementData: [String: Any] = [
            CBAdvertisementDataLocalNameKey: "BLE Sensor",
            CBAdvertisementDataServiceUUIDsKey: [
                CBUUID("180F")
            ]
        ]
        peripheralManager.startAdvertising(advertisementData)
    }

    func peripheralManagerDidUpdateState(
        _ peripheral: CBPeripheralManager
    ) {
        if peripheral.state == .poweredOn {
            startAdvertising()
        }
    }
}

iOS Background Modes-da bluetooth-peripheral açarı olduqda Peripheral-in fon rejimində işləməsinə imkan verir. Fonda iOS məhdud məlumat dəsti ilə reklam edə və əlaqələrə xidmət göstərə bilər. Uzun müddətli reklam üçün (180 saniyədən çox) enerjiyə qənaət etmək üçün CBAdvertisementDataWaitForResponseFromCentral seçimindən istifadə edin.

Android-də Peripheral: BluetoothLeAdvertiser

Android Peripheral rolunda işləmək üçün BluetoothLeAdvertiser təqdim edir (API 21-dən başlayaraq). API konfiqurasiya edilə bilən parametrlərlə reklamı işə salmağa imkan verir: ötürücü gücü, reklam intervalı, paket məlumatları. Android həmçinin uyğun cihazlarda extended advertising (BLE 5.0) dəstəkləyir.

java
import android.bluetooth.le.*;

private BluetoothLeAdvertiser advertiser;

public void startPeripheral() {
    BluetoothAdapter adapter =
        BluetoothAdapter.getDefaultAdapter();
    advertiser = adapter.getBluetoothLeAdvertiser();

    AdvertiseData data = new AdvertiseData.Builder()
        .setIncludeDeviceName(true)
        .addServiceUuid(
            new ParcelUuid(
                UUID.fromString("0000180F-0000-1000-8000-00805F9B34FB")
            )
        )
        .build();

    AdvertiseSettings settings = new AdvertiseSettings.Builder()
        .setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_POWER)
        .setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM)
        .build();

    advertiser.startAdvertising(
        settings, data, advertiseCallback
    );
}

Android-də Peripheral dəstəyi istehsalçıdan və OS versiyasından asılıdır. Bütün cihazlar BluetoothLeAdvertiser-ı dəstəkləmir — adapter.isMultipleAdvertisementSupported() vasitəsilə yoxlayın. Android 10-dan başlayaraq Peripheral rolunda işləmək üçün BLUETOOTH_ADVERTISE icazəsi, həmçinin target SDK 31+ olan tətbiqlər üçün runtime sorğusu tələb olunur.

Peripheral-in enerji səmərəliliyi

Enerji səmərəliliyi BLE-nin əsas üstünlüyüdür və Peripheral bunda əsas rol oynayır. Cihaz CR2032 batareyasından (220 mAh) optimallaşdırılmış enerji sərfiyyatı sayəsində bir ildən çox işləyə bilər. Peripheral vaxtının çox hissəsini reklam söndürülmüş yuxu rejimində keçirir, yalnız reklam paketi göndərmək və ya Central-dan sorğunu emal etmək üçün oyanır.

Peripheral-in müxtəlif rejimlərdə enerji sərfiyyatı: yuxu rejimi (deep sleep) — 1–5 µA, timer işə salınmış idle — 10–50 µA, advertising — 5–15 mA (paketin göndərilməsi müddətində), connected — 5–10 mA (connection event müddətində). Advertising interval 1000 ms və paketin müddəti 4 ms olduqda, orta cərəyan təxminən 50–100 µA təşkil edir.

Texas Instruments Application Report (SWRA478, 2024)-ə görə, advertising interval-ın 100 ms-dən 1000 ms-ə optimallaşdırılması orta enerji sərfiyyatını 90% azaldır. Əlavə qənaətə slave latency (connection events-i buraxmaq), qısa məsafələrdə Tx Power-ı azaltmaq və qoşulduqdan sonra reklamı söndürmək (connectable advertising) ilə nail olunur.

Tez-tez verilən suallar

Peripheral məlumat göndərilməsini başlada bilərmi?

Bəli, bildirişlər (Notify/Indicate) mexanizmi vasitəsilə. Əlaqənin təşəbbüskarı həmişə Central olsa da, qoşulduqdan sonra Peripheral Central-dan açıq sorğu olmadan GATT bildirişləri vasitəsilə məlumat göndərə bilər. Bunun üçün Central əvvəlcədən CCCD vasitəsilə abunə olmalıdır.

Peripheral nə qədər müddət reklam edə bilər?

Reklamın müddəti spesifikasiya ilə məhdudlaşdırılmayıb, lakin praktikada batareya enerjisi ilə məhdudlaşır. iOS-da Peripheral əlavə parametrlər olmadan fon rejimində sessiya başına 180 saniyədən çox olmayaraq reklam edə bilər. Android-də reklam limitsiz işləyə bilər, lakin avtonom iş müddətini əhəmiyyətli dərəcədə azaldır.

Peripheral-in enerji sərfiyyatını funksionallığı itirmədən necə azaltmaq olar?

Advertising interval-ı artırın (tövsiyə olunan 500–1000 ms), connection events-i buraxmaq üçün slave latency-dən istifadə edin, qoşulduqdan sonra reklamı söndürün və tələb olunan məsafədə sabit rabitə üçün kifayət edən minimal Tx Power seçin.

Non-connectable advertising nədir və nə üçün istifadə olunur?

Non-connectable advertising — Peripheral-in reklam etdiyi, lakin qoşulma sorğularını qəbul etmədiyi rejimdir. Yalnız məlumat ötürən (məsələn, mağaza identifikatoru) ikitərəfli əlaqə qurmayan beaconlar üçün istifadə olunur. Connectable advertising ilə müqayisədə enerjiyə qənaət edir.

Reklam paketində (31 bayt) hansı məlumatları ötürmək olar?

31 bayta daxil etmək olar: bayraqlar (3 bayt), cihaz adı (qısaldılmış formada 28 bayta qədər), xidmət UUID-lərinin siyahısı (UUID üçün 2–16 bayt), istehsalçı məlumatları (26 bayta qədər). Optimal strategiya — filtrləmə üçün advertising PDU-da xidmət UUID-lərini, tam adı isə scan response-də yerləşdirməkdir.

Xülasə

  • Peripheral — xidmətlərini reklam edən və məlumat mübadiləsi üçün Central-dan əlaqə gözləyən BLE GATT-serveridir.
  • Reklam paketləri 37, 38, 39 kanallarında 20 ms-dən 10.24 s-ə qədər intervalda ötürülür və 31 bayt məlumatla məhdudlaşır.
  • Peripheral GATT cədvəlində xidmətləri və xarakteristikaları saxlayır, Central-a oxuma, yazma və bildirişlər vasitəsilə məlumatlara giriş imkanı verir.
  • iOS-da Peripheral CBPeripheralManager vasitəsilə, Android-də — BluetoothLeAdvertiser ilə GATT-serveri ilə tətbiq olunur.
  • Peripheral-in yuxu rejimində enerji sərfiyyatı 1–5 µA təşkil edir ki, bu da CR2032 batareyasından bir ilə qədər işləməyə imkan verir.
  • Advertising interval və slave latency optimallaşdırması enerji sərfiyyatını 90%-ə qədər azalda bilər.
  • Reklam paketinin və GATT-serverinin düzgün strukturu BLE cihazının uyğunluğunu, aşkarlanma sürətini və səmərəliliyini 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