BLE da Advertising Data: tuzilish va ma'lumot turlari

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

Advertising Data — bu BLE qurilmasi o'zini va xizmatlarini identifikatsiya qilish uchun reklama paketlarida uzatadigan tuzilgan ma'lumotlardir. Bluetooth Core Specification 5.4 (2023) AD Structure formatini belgilaydi: har bir element uzunlik (1 bayt), tur (1 bayt) va qiymat (29 baytgacha) dan iborat. Spetsifikatsiya jami 30 dan ortiq AD turini tavsiflaydi — Flags va Local Name dan Service UUID va Manufacturer Specific Data gacha. Advertising data ni to'g'ri yig'ish qurilmaning iOS, Android va boshqa platformalar bilan mosligi uchun muhim bo'lib, shuningdek aniqlanish tezligi va energiya samaradorligini belgilaydi.

Asosiy fikrlar

  • AD Structure — BLE reklama paketidagi ma'lumot formati: uzunlik (1 bayt), tur (1 bayt), qiymat (29 baytgacha).
  • Reklama paketi 31 bayt bilan cheklangan, scan response — qo'shimcha ma'lumotlar uchun yana 31 bayt.
  • Flags (0x01) — LE Limited Discoverable va BR/EDR Not Supported rejimlarini belgilaydigan majburiy AD turi.
  • Service UUID qisqartirilgan (2 bayt) yoki to'liq (16 bayt) formatda uzatiladi.
  • Manufacturer Specific Data (0xFF) — ishlab chiqaruvchining istalgan maxsus ma'lumotlari uchun moslashuvchan tur.

Advertising Data nima?

Advertising Data — bu BLE qurilmasi reklama paketlarida o'z imkoniyatlarini identifikatsiya qilish va tavsiflash uchun uzatadigan tuzilgan maydonlar to'plamidir. Central kanalni skanerlab, ushbu ma'lumotlarni o'qiydi va qaror qabul qiladi: qurilmaga ulanish, uni e'tiborsiz qoldirish yoki Scan Response orqali qo'shimcha ma'lumot so'rash.

Ma'lumotlar TLV (Type-Length-Value) printsipi bo'yicha tashkil etilgan: har bir AD elementi uchta maydondan iborat. Length (1 bayt) — Value + Type uzunligi (ya'ni elementning umumiy uzunligi minus 1 bayt Length). Type (1 bayt) — Bluetooth Assigned Numbers dan ma'lumot turi identifikatori. Value (N bayt) — turga qarab mazmun.

Standart reklama paketi 31 baytgacha AD ma'lumotini o'z ichiga olishi mumkin. Agar bu yetarli bo'lmasa, Scan Response (yana 31 bayt) yoki Extended Advertising (BLE 5.0, 251 baytgacha) ishlatiladi. Reklama paketining birinchi baytlari PDU sarlavhasi va qurilma manzili uchun ajratilgan — foydali AD yuki ofsetdan boshlanadi.

AD Structure formati

Har bir AD elementi reklama paketida Length (1 bayt) maydoni bilan boshlanadi. Length qiymati Length dan keyin keladigan baytlar sonini — ya'ni Type + Value ni ko'rsatadi. Masalan, Length=3 bo'lgan element Length dan keyin 1 bayt Type va 2 bayt Value kelishini anglatadi. Barcha elementlar uzunliklarining yig'indisi reklama ma'lumotlari hajmiga yetganda paket tugaydi.

MaydonHajmTavsif
Length1 baytType + Value uzunligi (Length kirmaydi)
Type (AD Type)1 baytBluetooth SIG bo'yicha ma'lumot turi identifikatori
Value0–29 baytBelgilangan turdagi ma'lumotlar

Central parsiri AD elementlari ketma-ketligini sarlavhadan keyingi birinchi baytdan o'qiydi. Agar Length=0 bo'lsa, element e'tiborga olinmaydi va parsir keyingi baytga o'tadi. Takrorlanuvchi AD turlari — bitta paketda bir xil Type ga ega bir nechta element — ruxsat etilgan, ammo Central stackni amalga oshirishiga qarab faqat birinchi yoki oxirgisini qayta ishlashi mumkin.

Muhim qoida: paketdagi barcha Length(+1) yig'indisi reklama ma'lumotlari hajmidan (reklama PDU uchun 31 bayt) oshmasligi kerak. Agar ma'lumotlar sig'masa, ustuvorliklarni belgilash kerak — qaysi AD turlari dastlabki aniqlash uchun muhim va qaysilarini Scan Response ga o'tkazish mumkin.

Flags (0x01): majburiy AD turi

Flags (AD Type 0x01) — har qanday BLE qurilmasining reklama paketidagi majburiy elementdir. 3 bayt egallaydi: Length (0x02), Type (0x01), Value (1 bayt bit bayroqlari). Bayroqlar qurilmaning aniqlanish rejimlari va imkoniyatlarini belgilaydi. Core Specification har bir reklama paketiga Flags qo'shishni tavsiya qiladi.

Asosiy bayroqlar: LE Limited Discoverable Mode (bit 0) — qurilma cheklangan vaqt davomida aniqlanishi mumkin, LE General Discoverable Mode (bit 1) — qurilma doimiy aniqlanishi mumkin, BR/EDR Not Supported (bit 2) — qurilma faqat LE ni qo'llab-quvvatlaydi, Simultaneous LE and BR/EDR (bit 3) — ikkala rejimni qo'llab-quvvatlash. Sof BLE qurilmalari uchun majburiy kombinatsiya: LE General Discoverable + BR/EDR Not Supported.

Noto'g'ri Flags qiymati qurilmaning iOS yoki Android da aniqlanmasligining tez-tez uchraydigan sabablaridan biridir. Masalan, BR/EDR Not Supported bayrog'i o'rnatilmagan bo'lsa, iOS BLE o'rniga klassik Bluetooth orqali ulanishga urinishi mumkin. Flags qiymatini tekshiring Bluetooth analizatori (nRF Connect, Wireshark) bilan reklama paketini disk raskadrovka qilishda.

Local Name: qurilma nomi

Local Name (AD Type 0x08 yoki 0x09) — BLE qurilmasining ko'rsatiladigan nomi. Tur 0x08 (Shortened Local Name) — qisqartirilgan nom, to'liq nom reklama paketiga sig'maganda ishlatiladi. Tur 0x09 (Complete Local Name) — qurilmaning to'liq nomi. Nomning maksimal uzunligi 248 bayt, ammo standart reklama paketida 28 baytdan ko'p joy mavjud emas.

Agar qurilma nomi reklama paketidagi mavjud joydan oshib ketsa, tavsiya etiladi: qisqartirilgan nomni reklama PDU siga (tur 0x08), to'liq nomni esa Scan Response ga (tur 0x09) joylashtirish. iOS skanerlashda reklama paketidan nomni ko'rsatadi, to'liq nom esa ulanish yoki Scan Response dan keyin mavjud bo'ladi.

Qurilma nomini tanlashda e'tiborga oling: juda uzun nom Service UUID yoki boshqa muhim ma'lumotlar uchun ishlatilishi mumkin bo'lgan joyni egallaydi. Tavsiya etilgan nom uzunligi 8–16 belgidir. Nostandart belgilar va bo'shliqlardan saqlaning — ba'zi BLE steklari ularni noto'g'ri qayta ishlashi mumkin.

Service UUID: xizmatlarni identifikatsiyalash

Service UUID (AD Type 0x02–0x07) — eng muhim AD turlaridan biri bo'lib, Central ga qurilmaga ulanmasdan uning qanday xizmatlar ko'rsatishini aniqlash imkonini beradi. Bluetooth SIG UUID ni uzatish uchun hajmiga qarab bir nechta formatni belgilaydi: 0x02 (Incomplete 16-bit), 0x03 (Complete 16-bit), 0x04 (Incomplete 32-bit), 0x05 (Complete 32-bit), 0x06 (Incomplete 128-bit), 0x07 (Complete 128-bit).

16-bit UUID (2 bayt) — Bluetooth SIG ning standart xizmatlari, masalan 0x180F (Battery Service), 0x180A (Device Information). 128-bit UUID (16 bayt) — ishlab chiquvchi tomonidan belgilangan maxsus xizmatlar. 16-bit UUID AD da atigi 4 bayt (Length + Type + 2 bayt UUID), 128-bit esa 18 bayt egallaydi. Bitta paketda bir nechta maxsus UUID uzatilishi kerak bo'lsa, ular 31 baytga sig'masligi mumkin.

Agar qurilmaning barcha UUID lari emas, faqat filtrlash uchun eng muhimlari uzatilsa, Incomplete (0x02/0x04/0x06) turidan foydalanish tavsiya etiladi. UUID larning to'liq ro'yxati Scan Response yoki ulanishdan keyin GATT Discovery orqali uzatiladi. Bu reklama paketida boshqa AD turlari uchun joy tejaydi.

Manufacturer Specific Data

Manufacturer Specific Data (AD Type 0xFF) — ishlab chiqaruvchining maxsus ma'lumotlarini uzatish uchun mo'ljallangan eng moslashuvchan AD turidir. Value ning birinchi 2 bayti Bluetooth SIG tomonidan tayinlangan Company Identifier Code (masalan, Apple uchun 0x004C, Samsung uchun 0x0075). Qolgan baytlar ishlab chiqaruvchi tomonidan belgilangan formatdagi ixtiyoriy ma'lumotlardir.

Apple Manufacturer Data ni iBeacon uchun ishlatadi: Company ID (0x004C), Beacon turi (0x0215), UUID (16 bayt), Major (2 bayt), Minor (2 bayt), TX Power (1 bayt). Google Eddystone uchun o'xshash formatdan foydalanadi. IoT qurilma ishlab chiqaruvchilari ko'pincha Manufacturer Data ga sensor ko'rsatkichlari yoki qurilma holatini joylashtiradilar.

js
// Central da Manufacturer Specific Data ni pars qilish
function parseManufacturerData(data) {
    const view = new DataView(data.buffer);

    // Kompaniya identifikator kodi (birinchi 2 bayt)
    const companyId = view.getUint16(0, true);

    // Apple iBeacon ni tekshirish
    if (companyId === 0x004C) {
        return parseIBeacon(view);
    }

    return null;
}

Manufacturer Data dan foydalanishda hajm chekloviga rioya qilish muhim: butun reklama paketi uchun 31 bayt minus majburiy AD turlari. Apple iBeacon uchun butun paket 30 bayt egallaydi, faqat Flags (3 bayt) uchun joy qoldiradi. Eddystone uchun — 31 baytgacha. Yig'moq maxsus formatlar 4–8 baytda harorat, namlik yoki bosimni o'z ichiga olishi mumkin.

Ma'lumotlarni yig'ish strategiyasi

Advertising data ni to'g'ri yig'ish — cheklangan 31 baytlik joyda maksimal foydali ma'lumotni joylashtirish san'atidir. Strategiya qurilmaning maqsadiga bog'liq: mayoq identifikatorga, IoT sensori ko'rsatkichlarga, fitness trekeri nom va xizmat UUID lariga muhtoj. Umumiy prinsip: Central qanchalik tez qaror qabul qilishi kerak bo'lsa, reklama PDU sida shunchalik muhim ma'lumotlar bo'lishi kerak.

Tavsiya etilgan strategiya: reklama PDU (birinchi 31 bayt) — Flags (3 bayt) + bitta 16-bit Service UUID (4 bayt) + qisqartirilgan nom (12 belgigacha = 14 bayt) + Manufacturer Data (10 baytgacha). Scan Response (ikkinchi 31 bayt) — to'liq nom (qolgani) + qo'shimcha Service UUID + TX Power Level (3 bayt). Bunday taqsimot Central ga qurilmalarni UUID bo'yicha tez filtrlash imkonini beradi.

UstuvorlikAD turiHajmJoylashtirish
1 (majburiy)Flags (0x01)3 baytReklama PDU
2 (filtrlash)Service UUID (0x02–0x03)4+ baytReklama PDU
3 (identifikatsiya)Local Name (0x08–0x09)2+ baytReklama PDU (qisqartirilgan)
4 (qo'shimcha)TX Power Level (0x0A)3 baytScan Response
5 (maxsus)Manufacturer Data (0xFF)4+ baytReklama PDU / Scan Response
6 (to'liq ma'lumotlar)Qolgan UUID larHajmga ko'raScan Response

Advertising data ni disk raskadrovka qilish BLE qurilmasini ishlab chiqishning majburiy bosqichidir. Paketning xom ma'lumotlarini ko'rish uchun nRF Connect (Nordic Semiconductor) yoki Bluetooth analizatori bilan Wireshark dan foydalaning. Barcha AD turlarining to'g'ri Length ga ega ekanligini, uzunliklar yig'indisi 31 baytdan oshmasligini va Flags foydalanish stsenariyingiz uchun to'g'ri o'rnatilganligini tekshiring.

Tez-tez so'raladigan savollar

AD elementlari yig'indisi 31 baytdan oshsa nima bo'ladi?

Bluetooth Controller steki limitdan oshgan ma'lumotlarni rad etadi yoki paketni yubormaydi. Reklama paketini yig'ishda AD elementlarining umumiy uzunligini tekshiring. Ma'lumotlar sig'masa — bir qismini Scan Response ga o'tkazing yoki 251 bayt limiti bilan Extended Advertising (BLE 5.0) dan foydalaning.

Sensor ko'rsatkichlarini reklama paketida uzatish mumkinmi?

Ha, Manufacturer Specific Data (0xFF) orqali. Ko'rsatkichlarni 4–8 baytga yig'ing: masalan, harorat (2 bayt fixed-point formatida), namlik (2 bayt), batareya kuchlanishi (2 bayt). Bunday yondashuv Central ga ulanishsiz ma'lumotlarni o'qish imkonini beradi, energiyani tejaydi.

Maxsus xizmatlar uchun qaysi AD turidan foydalanish kerak?

Maxsus xizmatlar uchun 128-bit UUID (AD Type 0x06–0x07) dan foydalaning. Agar UUID reklama PDU siga sig'masa (bitta UUID uchun 16 bayt), uni Scan Response ga o'tkazing yoki faqat birinchi bir-ikkita UUID ni ko'rsatish uchun qisqartirilgan Incomplete (0x06) formatidan foydalaning.

Complete va Incomplete Service UUID turlari nimasi bilan farqlanadi?

Complete — paketda qurilmaning barcha xizmat UUID lari sanab o'tilgan. Incomplete — UUID larning faqat bir qismi (odatda eng muhimlari). Central Incomplete ga to'liq ro'yxat sifatida ishona olmaydi, lekin uni tez filtrlash uchun ishlatadi. To'liq ro'yxat GATT Discovery dan keyin mavjud bo'ladi.

Nega iOS mening BLE qurilmamni ko'rmaydi?

Tez-tez uchraydigan sabab — noto'g'ri Flags (0x01). BR/EDR Not Supported biti o'rnatilganligiga ishonch hosil qiling. Ikkinchi sabab — reklama paketida Service UUID yo'qligi (iOS UUID bo'yicha filtrlaydi). Uchinchi sabab — qurilma juda kam reklama yuboradi (iOS 1000 ms dan ko'p bo'lmagan intervalni kutadi).

Xulosa

  • Advertising Data — BLE reklama paketlarida uzatiladigan AD Structure (Length-Type-Value) formatidagi tuzilgan ma'lumotlar.
  • Standart reklama paketi 31 baytgacha ma'lumotni sig'diradi, Scan Response — qo'shimcha ma'lumot uchun yana 31 bayt.
  • Flags (0x01) — aniqlanish rejimlarini belgilaydigan majburiy AD turi. BLE qurilmalari uchun BR/EDR Not Supported majburiydir.
  • Service UUID 16-bit (2 bayt) yoki 128-bit (16 bayt) formatda, Complete yoki Incomplete — mavjud joyga qarab uzatiladi.
  • Manufacturer Specific Data (0xFF) — iBeacon, Eddystone mayoqlari va IoT qurilmalarida ishlatiladigan maxsus ma'lumotlar uchun moslashuvchan tur.
  • Yig'ish strategiyasi: majburiy AD turlari (Flags, Service UUID, qisqartirilgan nom) — reklama PDU da, qo'shimchalar — Scan Response da.
  • Advertising data ni nRF Connect yoki Wireshark orqali disk raskadrovka qilish AD strukturasining to'g'riligini tekshirish uchun majburiy ishlab chiqish bosqichidir.

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