BLE da Advertising: bu nima, paket formatlari va reklama mexanizmlari

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

Advertising (reklama) — bu Bluetooth Low Energy-dagi mexanizm bolib, Peripheral qurilmasi oz mavjudligi haqida xabar beradi va uchta ajratilgan kanalda (37, 38, 39) qisqa malumot paketlarini yuboradi. Bluetooth Core Specification 5.4 (2023) ikkita reklama turini belgilaydi: connectable — qurilma ulanishga tayyor, va non-connectable — faqat malumot uzatuvchi mayoqlar (Beacon) tomonidan ishlatiladi, ikki tomonlama aloqa ornatmasdan. Reklama parametrlari — interval 20 ms dan 10.24 s gacha, transmitter quvvati -20 dan +10 dBm gacha va paket turi — qurilmani aniqlash tezligiga va energiya sarfiga bevosita tasir qiladi, bu batareya bilan ishlaydigan IoT qurilmalarini ishlab chiqishda juda muhimdir.

Asosiy

  • Advertising — BLE qurilmalarini aniqlashning asosiy mexanizmi, uchta ajratilgan kanal 37, 38 va 39 da ishlaydi.
  • Standart reklam paketi 31 bayt malumot bilan cheklangan, extended advertising (BLE 5.0) limitni 251 baytgacha oshiradi.
  • Connectable advertising Central ga qurilmaga ulanish imkonini beradi, non-connectable — faqat bir tomonlama uzatish (mayoqlar).
  • Reklama intervali energiya sarfiga tasir qiladi: 1000 ms intervalida ortacha tok 100 ms dagidan 10 marta past.
  • Scan response Centralning soroviga javoban qoshimcha 31 bayt malumot uzatish imkonini beradi.

BLE da Advertising nima?

Advertising (reklama) — bu BLE qurilmasi oz mavjudligi va mavjudligi haqida xabar beradigan davriy qisqa malumot paketlarini yuborish jarayonidir. Klassik Bluetooth dan farqli olaroq, unda qurilmalarni qidirish soniyalar oladi, BLE advertising qurilmani millisoniyalar ichida aniqlash imkonini beradi, minimal energiya sarflagan holda.

BLE arxitekturasi qurilmalarni ikki rolga ajratadi: Peripheral (reklama qiladi) va Central (skanerlaydi). Peripheral advertising paketlarini yuboradi, Central esa kanalni skanerlaydi va ulanish qarorini qabul qiladi. Bu asimmetrik model BLE ning asosiy ustunligidir: reklama qiluvchi qurilma energiyani faqat qisqa paketlarni yuborishga sarflaydi, doimiy kanalni tinglashga emas.

Advertising jarayoni uch bosqichdan iborat: advertising event (paketni uchala kanalda yuborish), scan request/response (Central bilan ixtiyoriy almashinuv) va connection request (Central tomonidan ulanishni boshlash). Har bir bosqich Link Layer darajasida Bluetooth Controller tomonidan boshqariladi.

Reklama kanallari va ularning vazifasi

BLE 40 kanaldan foydalanadi 2.4 GHz diapazonida, ulardan 37 (2402 MHz), 38 (2426 MHz) va 39 (2480 MHz) faqat advertising uchun ajratilgan. Uch kanal — ishonchli aniqlash va otkazish qobiliyati ortasidagi kompromisdir: bir kanal Wi-Fi yoki boshqa xalaqitlar bilan band bolishi mumkin, ammo qurilma qolgan ikkita kanalda aniqlanadi.

Kanal 37 Wi-Fi kanali 1 yonida, kanal 39 — Wi-Fi kanali 6 yonida, kanal 38 esa ular ortasida, minimal xalaqit zonasida joylashgan. Uch kanalni tanlash qurilmaning zich radio muhitda ham aniqlanishini kafolatlaydi — masalan, onlab Wi-Fi kirish nuqtalari bolgan savdo markazida.

Peripheral advertising paketini ketma-ket uchala kanalda yuboradi — bu advertising event deb ataladi. Markaziy qurilma bir vaqtda bitta kanalni skanerlaydi, Bluetooth Controller da amalga oshirilgan algoritmga muvofiq ular ortasida otadi. Toshqinasiz bir advertising event davomida aniqlanish ehtimoli 100% ga yaqin.

Reklam paketlarining turlari

Bluetooth Core Specification bir necha turdagi advertising PDU (Protocol Data Unit) ni belgilaydi, har biri oz maqsadi bilan. Asosiy turlar: ADV_IND (connectable undirected advertising) — ulanish imkoniyati bilan standart reklama, ADV_NONCONN_IND (non-connectable undirected advertising) — faqat ulanishsiz reklama, ADV_SCAN_IND (scannable undirected advertising) — scan request ni qollab-quvvatlaydi, ADV_DIRECT_IND (directed advertising) — muayyan Central uchun reklama.

ADV_IND — eng keng tarqalgan tur, aksariyat BLE qurilmalarida ishlatiladi. ADV_IND ni olgandan song, Central connection request yuborishi va ulanishni ornatishi mumkin. ADV_NONCONN_IND mayoqlar (Beacon) tomonidan ishlatiladi: qurilma reklama qiladi, lekin ulanish sorovlarini qabul qilmaydi — faqat bir tomonlama malumot uzatish.

PDU turiTavsifUlanishScan response
ADV_INDStandart reklamaHaHa
ADV_DIRECT_INDMuayyan Central uchun reklamaHaYoq
ADV_NONCONN_INDUlanishsiz (mayoqlar)YoqYoq
ADV_SCAN_INDSkan qollab-quvvatlashi bilanHaHa
ADV_EXT_INDExtended advertising (BLE 5.0)HaHa

ADV_DIRECT_IND maqsadli Central manzilini oz ichiga oladi, bu skan kutmasdan tez ulanish imkonini beradi. Qurilmalar bir-birini allaqachon taniganda ishlatiladi — masalan, avval ulangan smartfonga qayta ulanishda. Bu tur energiya sarfini kamaytiradi, chunki barcha kanallarda reklama talab qilmaydi.

Reklama intervali va energiya sarfi

Advertising interval — ketma-ket advertising event lar orasidagi vaqt. Spesifikatsiya 20 ms dan 10.24 s gacha intervalga 0.625 ms qadami bilan ruxsat beradi. Haqiqiy interval doimiy qiymat va tasodifiy kechikish (0–10 ms) yigindisi sifatida hisoblanadi, bu bir nechta reklama qiluvchi qurilmalar orasida toshqin ehtimolini kamaytiradi.

Intervalni tanlash aniqlash tezligi va energiya sarfi orasidagi muvozanatdir. 20 ms intervalida qurilma 20–30 ms ichida aniqlanadi, lekin ortacha tok taxminan 1–2 mA boladi. 1000 ms intervalida — aniqlash 1 soniyagacha davom etadi, lekin ortacha tok 50–100 µA ga tushadi. Aksariyat IoT qurilmalari uchun tavsiya etilgan interval 200–1000 ms.

Texas Instruments Application Report SWRA478 (2024) malumotiga kora, advertising intervalini 100 ms dan 1000 ms ga oshirish energiya sarfini 90% kamaytiradi. Agar qurilma zudlik bilan aniqlanishni talab qilmasa (masalan, daqiqada bir malumot yuboruvchi harorat sensori), optimal interval 1000–2000 ms.

Qoshimcha parametr — advertising timeout — qurilma reklama qiladigan maksimal vaqt. iOS da Peripheral fon rejimida 180 soniyadan keyin reklamani avtomatik ochiradi. Android da bunday cheklov yoq, lekin ishlab chiqaruvchilar oz cheklovlarini qoshishi mumkin.

Scan Response: qoshimcha malumotlar

Scan Response — Peripheral tomonidan Central dan scan request ga javoban yuboriladigan qoshimcha malumot paketi (31 baytgacha). Scan request Central tomonidan advertising paketini olgandan song yuboriladi, agar ulanishdan oldin koproq malumot kerak bolsa. Scan Response qoshimcha reklama talab qilmaydi — faqat sorov asosida yuboriladi, kanalni tejab.

Odatiy malumot taksimoti: advertising PDU da (31 bayt) bayroqlar (3 bayt), xizmat UUID lari (2–16 bayt) va ishlab chiqaruvchi malumotlari (qolgan baytlar) joylashtiriladi. Scan response da qurilmaning toliq nomi (28 baytgacha) va qoshimcha UUID lar yoki TX Power Level uzatiladi. Bu bolinish Central ga scan response ni okimasdan UUID boyicha qurilmalarni tez filtrlash imkonini beradi.

Advertising paketini loyihalashda e'tiborga oling: agar advertising PDU da barcha 31 bayt band bolsa, Central qurilma scan response ni qollab-quvvatlashini aniqlay olmaydi. Advertising PDU da scan response qobiliyatini korsatish uchun kamida 3–5 bayt bosq qoldirish tavsiya etiladi.

BLE 5.0 da Extended Advertising

Extended Advertising (BLE 5.0) — bu reklama mexanizmining kengaytmasi bolib, advertising paketi hajmini 31 dan 251 baytgacha oshiradi va yangi paket turlarini qoshadi. Extended Advertising, shuningdek, ochiq maydonda aloqa masofasini 1 km gacha oshirish uchun coded PHY ni va bir nechta Central ni sinxronlashtirish uchun davriy reklamani (Periodic Advertising) qollab-quvvatlaydi.

Asosiy yangiliklar: ADV_EXT_IND — bitta paketda 251 baytgacha malumot uzata oladigan extended advertising PDU. Extended Advertising birlamchi kanallardan (37, 38, 39) faqat toliq malumotlar qaysi ikkilamchi kanalda (0–36) uzatilishini korsatish uchun foydalanadi. Bu reklama kanallariga yukni kamaytiradi va tizimning umumiy otkazish qobiliyatini oshiradi.

Periodic Advertising — Peripheral ning ikkilamchi kanallarda qatiq intervalli malumot yuboradigan va Central ning bu ketma-ketlik bilan sinxronlasha oladigan qoshimcha mexanizmi. Muntazam malumot yangilashni talab qiladigan xizmatlar uchun ishlatiladi — masalan, audio translyatsiyasi yoki real vaqtda sensor korsatkichlari.

ParametrBLE standartiExtended BLE 5.0
Maks. paket hajmi31 bayt251 bayt
KanallarFaqat 37, 38, 39+ ikkilamchi 0–36
Masofa100 m gacha1000 m gacha (coded PHY)
Tezlik1 Mbps125 kbps – 2 Mbps
PeriodicYoqHa

iOS va Android da reklamani sozlash

iOS (Core Bluetooth) reklamani boshqarish uchun CBPeripheralManager ni taminlaydi. Advertising parametrlari CBAdvertisementDataLocalNameKey (qurilma nomi), CBAdvertisementDataServiceUUIDsKey (xizmat UUID lari), CBAdvertisementDataTxPowerLevelKey (quvvat) kalitlari bilan advertisementData lugati orqali ornatiladi. iOS advertising intervalini avtomatik boshqaradi va uni qolda ornatishga ruxsat bermaydi.

swift
import CoreBluetooth

class AdvertiserManager: NSObject, CBPeripheralManagerDelegate {

    private var peripheralManager: CBPeripheralManager!

    func startBLEAdvertising() {
        let data: [String: Any] = [
            CBAdvertisementDataLocalNameKey: "BLE Beacon",
            CBAdvertisementDataServiceUUIDsKey: [
                CBUUID("180F")
            ],
            CBAdvertisementDataIsConnectable: true
        ]
        peripheralManager.startAdvertising(data)
    }
}

Android (BluetoothLeAdvertiser) batafsilroq nazoratni taminlaydi. Mavjud: AdvertiseSettings — rejimni (LOW_POWER, BALANCED, LOW_LATENCY), transmitter quvvati va intervalni sozlash; AdvertiseData — paket malumotlari. Android mos qurilmalarda extended advertising (BLE 5.0) ni qollab-quvvatlaydi, ammo bunday qurilmalarning bozor ulushi taxminan 30–40%.

java
BluetoothLeAdvertiser advertiser =
    BluetoothAdapter.getDefaultAdapter()
    .getBluetoothLeAdvertiser();

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

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

advertiser.startAdvertising(
    settings, data, advertiseCallback
);

Platformalararo BLE ilovasini ishlab chiqishda farqlarni hisobga oling: iOS advertising intervalini togridan-togri boshqarishga ruxsat bermaydi, lekin barcha qurilmalarda barqaror ishlashni kafolatlaydi; Android toliq nazoratni taminlaydi, ammo versiyalar va ishlab chiqaruvchilarning parchalanishi nomuvofiqlikka olib kelishi mumkin. Ikkala platformaning haqiqiy qurilmalarida advertising ni sinovdan otkazish tavsiya etiladi.

Tez-tez soralanadigan savollar

Connectable va non-connectable advertising ortasidagi farq nima?

Connectable advertising (ADV_IND) Central ga qurilma bilan ikki tomonlama aloqa ornatish imkonini beradi. Non-connectable (ADV_NONCONN_IND) — faqat bir tomonlama malumot uzatish, ulanish imkoniyatisiz identifikatorni translyatsiya qilish uchun mayoqlar (Beacon) tomonidan ishlatiladi.

Reklam paketida necha bayt uzatish mumkin?

Standart advertising paketi — 31 bayt, scan response — yana 31 bayt. Extended Advertising (BLE 5.0+) malumot uzatish uchun ikkilamchi kanallardan foydalanib limitni 251 baytgacha oshiradi.

IoT qurilmasi uchun qaysi advertising intervalini tanlash kerak?

Aksariyat IoT qurilmalari uchun 500–1000 ms tavsiya etiladi. Agar tez aniqlash kerak bosa (masalan, naushnik ulash uchun) — 20–50 ms. Malumotni kam yuboruvchi sensorlar uchun energiyani tejash uchun 1000–2000 ms.

Nega BLE uchta reklama kanalidan foydalanadi?

Uch kanal (37, 38, 39) aniqlash ishonchliligi va otkazish qobiliyati ortasidagi kompromisdir. Bir kanal Wi-Fi bilan band bolishi mumkin, ammo qurilma qolgan ikkitasida aniqlanadi. Kanal 38 Wi-Fi kanallari ortasidagi minimal xalaqit zonasida joylashgan.

Advertising avtonom ish vaqtiga qanday tasir qiladi?

Advertising BLE da asosiy energiya iste'molchisidir. 1000 ms intervalida ortacha tok 50–100 µA tashkil etadi, bu qurilmaga CR2032 batareyasida bir yil ishlash imkonini beradi. 20 ms intervalida tok 1–2 mA gacha oshadi, ish vaqtini bir necha haftagacha kamaytiradi.

Xulosa

  • Advertising — uchta kanalda (37, 38, 39) 31 baytgacha paket olchami bilan ishlaydigan BLE qurilmalarini aniqlash mexanizmi.
  • Besh turdagi advertising PDU mavjud: ADV_IND, ADV_DIRECT_IND, ADV_NONCONN_IND, ADV_SCAN_IND va BLE 5.0 uchun ADV_EXT_IND.
  • Reklama intervali 20 ms dan 10.24 s gacha o*zgaradi va qurilmaning aniqlash tezligi hamda energiya sarfiga bevosita tasir qiladi.
  • Scan Response Central sorovi boyicha 31 bayt qoshimcha malumotni Peripheral energiya sarfini oshirmasdan taminlaydi.
  • Extended Advertising (BLE 5.0) paketni 251 baytgacha oshiradi va coded PHY orqali 1 km gacha masofani qollab-quvvatlaydi.
  • iOS da advertising CBPeripheralManager orqali boshqariladi, Android da — BluetoothLeAdvertiser bilan batafsil sozlamalar.
  • Advertising intervali va paket turini togri tanlash BLE qurilmasining energiya samaradorligini va avtonom ish vaqtini 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