Peripheral — bu nima, BLEdagi roli va xizmatlarni qanday reklama qiladi

Muallif: IT Sectr Nashr etilgan: 2026-07-15 O'qish vaqti: 9 daq

Peripheral — Bluetooth Low Energy arxitekturasida xizmatlarini advertising paketlari orqali reklama qiladigan va Centraldan ulanishni kutadigan qurilmadir. IoT ekotizimida Peripheral odatda cheklangan energiya sarfiga ega qurilma: harorat sensori, aqlli chiroq, fitnes bilaguzuk, beacon. Bluetooth Core Specification 5.4 (2023) reklama protokolini belgilaydi: Peripheral vaqti-vaqti bilan qurilma nomi, xizmatlar ro'yxati va foydalanuvchi ma'lumotlarini o'z ichiga olgan advertising paketlarini yuboradi, Central esa ushbu paketlarni skanerlab, ulanish yoki ulanmaslikka qaror qiladi. Ulanish o'rnatilgandan so'ng, Peripheral GATT-server vazifasini bajarib, o'qish va yozish uchun xizmatlar va xarakteristikalarni taqdim etadi.

Asosiy ma'lumotlar

  • Peripheral — xizmatlarni reklama qiladigan va Centraldan ulanishni kutadigan passiv BLE qurilmasi.
  • Reklama paketlari (advertising) qurilma nomi, xizmat UUIDlari, ishlab chiqaruvchi ma'lumotlari va masofani baholash uchun RSSIni o'z ichiga oladi.
  • Peripheral Central kirishi uchun xizmatlar va xarakteristikalarni saqlaydigan GATT-server vazifasini bajaradi.
  • Peripheralning energiya sarfi uyqu rejimida 5 µA dan faol ma'lumot uzatishda 15 mA gacha bo'lishi mumkin.
  • Ulanishdan so'ng, Peripheral energiyani tejash uchun reklamani o'chirishi va kerak bo'lganda qayta yoqishi mumkin.

BLEda Peripheral nima?

Peripheral — GATT-serverini amalga oshiradigan va imkoniyatlarini advertising kanallari orqali reklama qiladigan BLE qurilmasi. Qurilmalarni faol ravishda qidiradigan Centraldan farqli o'laroq, Peripheral passiv ravishda ulanishni kutadi. Bu batareya bilan ishlaydigan qurilmalarning energiya samaradorligi uchun optimallashtirilgan assimetrik modeldir.

Peripheral bir necha rejimda bo'lishi mumkin: advertising (reklama), connected (Centralga ulangan), sleeping (reklama o'chirilgan uyqu). Advertising rejimida Peripheral vaqti-vaqti bilan qisqa ma'lumot paketlarini yuboradi va minimal energiya sarflaydi. Ulanishdan so'ng, Peripheral connected rejimiga o'tadi va kelishilgan connection intervalga muvofiq Central bilan ma'lumot almashadi.

Bluetooth Core Specification 5.4 (2023) ga ko'ra, qurilma dinamik ravishda Peripheral va Central rollari o'rtasida almashishi mumkin, ammo har bir daqiqada bitta ulanish uchun rol belgilangan. Oddiy stsenariy: IoT sensori doimiy ravishda Peripheral rolida ishlaydi, smartfon esa Central sifatida ulanishni boshqaradi.

Dasturchi uchun muhim: Peripheral qaysi xizmatlar va xarakteristikalar mavjudligini aniqlaydi va ularga kirishni boshqaradi. Peripheralda GATT-serverining tuzilishi Central qanday ma'lumotlarni o'qishi va qanday buyruqlarni yozishi mumkinligini belgilaydi.

Reklama jarayoni (Advertising)

Advertising (reklama) — Peripheral o'z mavjudligi haqida xabar beradigan mexanizm. Peripheral uchta ajratilgan kanalda (37, 38, 39) 20 ms dan 10.24 sekundgacha intervalda advertising paketlarini yuboradi. Har bir reklama paketi doimiy ma'lumotlarni o'z ichiga oladi va ixtiyoriy ma'lumotlarni qo'shishi mumkin.

Reklama paketlarining ikki turi mavjud: advertising PDU (asosiy paket) va scan response PDU (Central so'roviga javob). Asosiy paket majburiy maydonlarni o'z ichiga oladi: paket turi, jo'natuvchi manzili, ma'lumotlar. Agar Central scan request yuborsa, Peripheral qo'shimcha ma'lumotlar bilan — masalan, to'liq qurilma nomi bilan javob beradi.

Advertising parametrlari aniqlash tezligi va energiya sarfiga ta'sir qiladi. Advertising interval — paketlarni yuborish orasidagi vaqt. Interval qanchalik qisqa bo'lsa, Central qurilmani shunchalik tez aniqlaydi, lekin Peripheral ko'proq energiya sarflaydi. Tavsiya etiladigan interval: ko'pchilik qurilmalar uchun 100–1000 ms.

ParametrDiapazonTa'sirTavsiya
Advertising Interval20 ms – 10.24 sAniqlash tezligi, energiyaBalans uchun 100–1000 ms
Advertising Channels37, 38, 39Aniqlash ishonchliligiBarcha 3 kanal majburiy
Tx Power−20 – +10 dBmMasofa, xalaqitlar0 dBm bino ichi uchun, +4 dBm ochiq havo uchun
Advertising Timeout0 – 180 sekundReklama davomiyligiBeaconlar uchun 0 (cheksiz)

Reklama paketining tuzilishi

BLE reklama paketi advertising PDU uchun 31 bayt va scan response uchun yana 31 bayt chekloviga ega. Paket ichida ma'lumotlar AD Structure (Advertising Data Structure) formatida tashkil etilgan: har bir maydon turi (1 bayt), uzunligi (1 bayt) va qiymatiga ega.

Eng ko'p ishlatiladigan AD Type: Flags (0x01) — ulanish va aniqlash rejimlari, Local Name (0x08 yoki 0x09) — qurilma nomi, Service UUID List (0x02–0x07) — xizmat UUIDlari ro'yxati, Manufacturer Specific Data (0xFF) — ishlab chiqaruvchi ma'lumotlari. 31 baytli paketga ma'lumotlarni to'g'ri joylashtirish o'rnatilgan qurilma dasturchisining muhim vazifasidir.

Ko'proq ma'lumot uzatishi kerak bo'lgan qurilmalar uchun extended advertising (BLE 5.0+) mavjud bo'lib, u reklama paketi hajmini 251 baytgacha oshiradi va yangi paket turlarini qo'shadi. Extended advertising, shuningdek, ochiq maydonda masofani 1 km gacha oshirish uchun kodlangan kanallarni (coded PHY) qo'llab-quvvatlaydi.

Reklama paketini loyihalashda e'tiborga oling: advertising paketida qancha ko'p ma'lumot bo'lsa, boshqa qurilmalar bilan to'qnashish ehtimoli shuncha yuqori. Tez aniqlash uchun advertising PDUda faqat muhim ma'lumotlarni (Service UUID) joylashtirish, qo'shimcha ma'lumotlarni esa scan responseda berish tavsiya etiladi.

Peripheral GATT-server sifatida

GATT-server Peripheralda Central aniqlashi va o'zaro aloqa qilishi mumkin bo'lgan barcha xizmatlar va xarakteristikalarni o'z ichiga oladi. Ulanishdan so'ng, Central xizmatlarni (discover services), keyin xarakteristikalarni (discover characteristics) aniqlaydi va GATT protokoli orqali ular bilan o'zaro aloqa qiladi.

Peripheral GATT-server sifatida Centraldan so'rovlarni to'g'ri qayta ishlashi kerak: o'qish (read request), yozish (write request), bildirishnomalar (notification) va tasdiqlangan bildirishnomalar (indication). Har bir so'rov GATT jadvalidan o'tadi, bunda har bir atributga (xizmat, xarakteristika, deskriptor) Handle — 16-bitli manzil mos keladi.

Peripheral dasturchisi har bir atributga kirish huquqlarini belgilaydi: faqat o'qish, faqat yozish, o'qish va yozish, shifrlash bilan yoki shifrlashsiz. Maxfiy ma'lumotlar (shaxsiy ma'lumotlar, tibbiy ko'rsatkichlar) uchun MITM Protection orqali shifrlash talabini qo'shish tavsiya etiladi.

iOSda Peripheral: CBPeripheralManager

CBPeripheralManager — iOSda Peripheral rolini amalga oshirish uchun Core Bluetooth klassi. U GATT-serverini boshqaradi, xizmatlar va xarakteristikalarni nashr etadi, Centraldan so'rovlarni qayta ishlaydi. CBCentralManagerdan farqli o'laroq, CBPeripheralManager skanerlamaydi — faqat reklama qiladi va ulanishlarga xizmat ko'rsatadi.

iOSda Peripheralni amalga oshirishning asosiy bosqichlari: CBPeripheralManagerni ishga tushirish, add orqali xizmatlarni qo'shish, startAdvertising orqali reklamani boshlash, CBPeripheralManagerDelegate orqali Centraldan so'rovlarni qayta ishlash.

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 Modesda bluetooth-peripheral kaliti mavjud bo'lganda Peripheralning fon rejimida ishlashiga imkon beradi. Fonda iOS cheklangan ma'lumotlar to'plami bilan reklama qilishi va ulanishlarga xizmat ko'rsatishi mumkin. Uzoq muddatli reklama uchun (180 sekunddan ortiq) energiyani tejash uchun CBAdvertisementDataWaitForResponseFromCentral opsiyasidan foydalaning.

Androidda Peripheral: BluetoothLeAdvertiser

Android Peripheral rolida ishlash uchun BluetoothLeAdvertiserni taqdim etadi (API 21 dan boshlab). API sozlanishi mumkin bo'lgan parametrlar bilan reklamani ishga tushirish imkonini beradi: uzatuvchi quvvati, reklama intervali, paket ma'lumotlari. Android, shuningdek, mos qurilmalarda extended advertising (BLE 5.0) ni qo'llab-quvvatlaydi.

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
    );
}

Androidda Peripheralni qo'llab-quvvatlash ishlab chiqaruvchi va OT versiyasiga bog'liq. Barcha qurilmalar BluetoothLeAdvertiserni qo'llab-quvvatlamaydi — adapter.isMultipleAdvertisementSupported() orqali tekshiring. Android 10 dan boshlab, Peripheral rolida ishlash uchun BLUETOOTH_ADVERTISE ruxsatnomasi, shuningdek target SDK 31+ bo'lgan ilovalar uchun runtime so'rovi talab qilinadi.

Peripheralning energiya samaradorligi

Energiya samaradorligi — BLEning asosiy afzalligi va Peripheral bunda asosiy rol o'ynaydi. Qurilma CR2032 batareyasida (220 mAh) optimallashtirilgan energiya sarfi tufayli bir yildan ortiq ishlashi mumkin. Peripheral ko'p vaqtini reklama o'chirilgan uyqu rejimida o'tkazadi, faqat reklama paketini yuborish yoki Centraldan so'rovni qayta ishlash uchun uyg'onadi.

Peripheralning turli rejimlarda energiya sarfi: uyqu rejimi (deep sleep) — 1–5 µA, taymer yoqilgan holda idle — 10–50 µA, advertising — 5–15 mA (paketni yuborish vaqtida), connected — 5–10 mA (connection event vaqtida). Advertising interval 1000 ms va paket davomiyligi 4 ms bo'lganda, o'rtacha tok taxminan 50–100 µA ni tashkil qiladi.

Texas Instruments Application Report (SWRA478, 2024) ga ko'ra, advertising intervalni 100 ms dan 1000 ms gacha optimallashtirish o'rtacha energiya sarfini 90% ga kamaytiradi. Qo'shimcha tejashga slave latency (connection eventlarni o'tkazib yuborish), qisqa masofalarda Tx Power kamaytirish va ulanishdan so'ng reklamani o'chirish (connectable advertising) orqali erishiladi.

Ko'p beriladigan savollar

Peripheral ma'lumot yuborishni boshlashi mumkinmi?

Ha, bildirishnomalar (Notify/Indicate) mexanizmi orqali. Ulanish tashabbuskori har doim Central bo'lsa-da, ulanishdan so'ng Peripheral Centraldan aniq so'rovsiz GATT bildirishnomalari orqali ma'lumot yuborishi mumkin. Buning uchun Central oldindan CCCD orqali obuna bo'lishi kerak.

Peripheral qancha vaqt reklama qilishi mumkin?

Reklama davomiyligi spetsifikatsiya bilan cheklanmagan, ammo amalda batareya energiyasi bilan cheklanadi. iOSda Peripheral qo'shimcha sozlamalarsiz fon rejimida sessiya uchun 180 sekunddan ko'p bo'lmagan vaqt reklama qilishi mumkin. Androidda reklama cheksiz ishlashi mumkin, ammo avtonom ish vaqtini sezilarli darajada qisqartiradi.

Peripheralning energiya sarfini funksionallikni yo'qotmasdan qanday kamaytirish mumkin?

Advertising intervalni oshiring (tavsiya etiladi 500–1000 ms), connection eventlarni o'tkazib yuborish uchun slave latencydan foydalaning, ulanishdan so'ng reklamani o'chiring va kerakli masofada barqaror aloqa uchun yetarli bo'lgan minimal Tx Power ni tanlang.

Non-connectable advertising nima va u nima uchun ishlatiladi?

Non-connectable advertising — Peripheral reklama qiladigan, ammo ulanish so'rovlarini qabul qilmaydigan rejim. Faqat ma'lumot uzatuvchi (masalan, do'kon identifikatori) ikki tomonlama aloqa o'rnatmaydigan beaconlar uchun ishlatiladi. Connectable advertising bilan solishtirganda energiyani tejaydi.

Reklama paketida (31 bayt) qanday ma'lumotlarni uzatish mumkin?

31 baytga qo'shilishi mumkin: bayroqlar (3 bayt), qurilma nomi (qisqartirilgan shaklda 28 baytgacha), xizmat UUIDlari ro'yxati (UUID uchun 2–16 bayt), ishlab chiqaruvchi ma'lumotlari (26 baytgacha). Optimal strategiya — filtrlash uchun advertising PDUda xizmat UUIDlarini, to'liq nomni esa scan responseda joylashtirish.

Xulosa

  • Peripheral — xizmatlarini reklama qiladigan va ma'lumot almashish uchun Centraldan ulanishni kutadigan BLE GATT-serveri.
  • Reklama paketlari 37, 38, 39 kanallarida 20 ms dan 10.24 s gacha intervalda uzatiladi va 31 bayt ma'lumot bilan cheklangan.
  • Peripheral GATT jadvalida xizmatlar va xarakteristikalarni saqlaydi, Centralga o'qish, yozish va bildirishnomalar orqali ma'lumotlarga kirish imkonini beradi.
  • iOSda Peripheral CBPeripheralManager orqali, Androidda — BluetoothLeAdvertiser bilan GATT-serveri orqali amalga oshiriladi.
  • Peripheralning uyqu rejimida energiya sarfi 1–5 µA ni tashkil qiladi, bu CR2032 batareyasidan bir yilgacha ishlash imkonini beradi.
  • Advertising interval va slave latency optimallashtirish energiya sarfini 90% gacha kamaytirishi mumkin.
  • Reklama paketi va GATT-serverining to'g'ri tuzilishi BLE qurilmasining mosligini, aniqlash tezligini va samaradorligini belgilaydi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing