Advertising a BLE-ben: mi ez, csomagformátumok és a reklám mechanizmusai

Szerző: IT Sectr Megjelenés: 2026-07-15 Olvasási idő: 11 perc

Advertising (reklam) — egy mechanizmus a Bluetooth Low Energy-ben, amelynek segítségével a Peripheral eszköz jelzi jelenlétét, rövid adatcsomagokat küldve három kijelölt csatornán (37, 38, 39). A Bluetooth Core Specification 5.4 (2023) két reklámtípust határoz meg: connectable — az eszköz készen áll a kapcsolódásra, és non-connectable — jeladók (Beacon) által használt, amelyek csak adatokat küldenek kétirányú kapcsolat létesítése nélkül. A reklám paraméterei — intervallum 20 ms-tól 10.24 s-ig, adó teljesítmény -20-tól +10 dBm-ig és csomagtípus — közvetlenül befolyásolják az eszköz észlelési sebességét és energiafogyasztását, ami kritikus fontosságú az akkumulátorral működő IoT-eszközök fejlesztésénél.

Főbb pontok

  • Advertising — a BLE-eszközök észlelésének elsődleges mechanizmusa, amely három kijelölt csatornán (37, 38, 39) működik.
  • A szabványos reklámcsomag 31 bájt adatra korlátozódik, az extended advertising (BLE 5.0) 251 bájtra növeli a korlátot.
  • A Connectable advertising lehetővé teszi a Central számára, hogy csatlakozzon az eszközhöz, a non-connectable — csak egyirányú adatátvitel (jeladók).
  • A reklám intervallum befolyásolja az energiafogyasztást: 1000 ms intervallumnál az átlagos áram 10-szer alacsonyabb, mint 100 ms-nál.
  • A scan response lehetővé teszi további 31 bájt adat küldését a Central kérésére válaszul.

Mi az Advertising a BLE-ben?

Advertising (reklám) — a rövid adatcsomagok időszakos küldésének folyamata, amellyel a BLE-eszköz jelzi jelenlétét és elérhetőségét. Ellentétben a klasszikus Bluetooth-tal, ahol az eszközök keresése másodpercekig tart, a BLE advertising lehetővé teszi az eszköz észlelését ezredmásodpercek alatt, minimális energiafogyasztás mellett.

A BLE architektúra két szerepre osztja az eszközöket: Peripheral (reklámoz) és Central (letapogat). A Peripheral reklámcsomagokat küld, a Central pedig letapogatja a csatornát és dönt a kapcsolódásról. Ez az aszimmetrikus modell a BLE kulcsfontosságú előnye: a reklámozó eszköz csak a rövid csomagok küldésére fordít energiát, nem a csatorna folyamatos figyelésére.

A reklámozás folyamata három szakaszból áll: advertising event (csomag küldése mindhárom csatornán), scan request/response (opcionális csere a Central-lal) és connection request (kapcsolat kezdeményezése a Central által). Minden szakaszt a Bluetooth Controller irányít a Link Layer szintjén.

Reklámcsatornák és rendeltetésük

A BLE 40 csatornát használ a 2.4 GHz-es sávban, amelyek közül 37 (2402 MHz), 38 (2426 MHz) és 39 (2480 MHz) kizárólag a reklámozásra vannak fenntartva. Három csatorna kompromisszum az észlelés megbízhatósága és a sávszélesség között: egy csatornát foglalhat a Wi-Fi vagy más interferencia, de az eszköz a másik kettőn észlelhető lesz.

A 37-es csatorna az 1-es Wi-Fi csatorna mellett, a 39-es a 6-os Wi-Fi csatorna mellett, a 38-as pedig közöttük, a minimális interferencia zónájában található. Három csatorna választása garantálja, hogy az eszköz még sűrű rádiós környezetben is észlelhető lesz — például egy bevásárlóközpontban, ahol tucatnyi Wi-Fi hozzáférési pont található.

A Peripheral egymás után mindhárom csatornán elküldi a reklámcsomagot — ezt hívják advertising event-nek. A központi eszköz egyszerre egy csatornát tapogat le, a Bluetooth Controller-ben megvalósított algoritmus szerint váltogatva közöttük. Az észlelés valószínűsége egy advertising event során ütközések hiányában közel 100%.

Reklámcsomagok típusai

A Bluetooth Core Specification több típusú advertising PDU-t (Protocol Data Unit) határoz meg, mindegyiknek megvan a maga rendeltetése. Fő típusok: ADV_IND (connectable undirected advertising) — szabványos reklám kapcsolódási lehetőséggel, ADV_NONCONN_IND (non-connectable undirected advertising) — csak reklám kapcsolódás nélkül, ADV_SCAN_IND (scannable undirected advertising) — támogatja a scan request-et, ADV_DIRECT_IND (directed advertising) — reklám egy adott Central részére.

ADV_IND — a leggyakoribb típus, a legtöbb BLE-eszközben használatos. Az ADV_IND fogadása után a Central connection request-et küldhet és kapcsolatot létesíthet. ADV_NONCONN_IND-t jeladók (Beacon) használják: az eszköz reklámoz, de nem fogad kapcsolódási kérelmeket — csak egyirányú adatátvitel.

PDU típusLeírásKapcsolatScan response
ADV_INDSzabványos reklámIgenIgen
ADV_DIRECT_INDReklám adott Central-nakIgenNem
ADV_NONCONN_INDKapcsolódás nélkül (jeladók)NemNem
ADV_SCAN_INDLetapogatás támogatássalIgenIgen
ADV_EXT_INDExtended advertising (BLE 5.0)IgenIgen

ADV_DIRECT_IND tartalmazza a cél Central címét, lehetővé téve a gyors kapcsolódást anélkül, hogy meg kellene várni a letapogatást. Akkor használatos, amikor az eszközök már „ismerik" egymást — például egy korábban párosított okostelefonhoz való újracsatlakozáskor. Ez a típus csökkenti az energiafogyasztást, mert nem igényel reklámozást minden csatornán.

Reklám intervallum és energiafogyasztás

Advertising interval — az egymást követő advertising event-ek közötti idő. A specifikáció 20 ms-tól 10.24 s-ig terjedő intervallumot engedélyez 0.625 ms lépésközzel. A tényleges intervallum egy fix érték és egy véletlenszerű késleltetés (0–10 ms) összegeként számítódik, ami csökkenti az ütközések valószínűségét több reklámozó eszköz között.

Az intervallum kiválasztása egyensúlyt teremt az észlelési sebesség és az energiafogyasztás között. 20 ms intervallumnál az eszköz 20–30 ms alatt észlelhető, de az átlagos áram körülbelül 1–2 mA. 1000 ms intervallumnál az észlelés akár 1 másodpercig is tarthat, de az átlagos áram 50–100 µA-ra csökken. A legtöbb IoT-eszköz számára az ajánlott intervallum 200–1000 ms.

A Texas Instruments Application Report SWRA478 (2024) szerint az advertising intervallum 100 ms-ról 1000 ms-ra növelése 90%-kal csökkenti az energiafogyasztást. Ha az eszköz nem igényel azonnali észlelést (például egy hőmérséklet-érzékelő, amely percenként küld adatokat), az optimális intervallum 1000–2000 ms.

Egy további paraméter — advertising timeout — a maximális idő, ameddig az eszköz reklámoz. iOS-ben a Peripheral automatikusan kikapcsolja a reklámot 180 másodperc után háttérmódban. Androidban nincs ilyen korlátozás, de a gyártók hozzáadhatják saját korlátaikat.

Scan Response: további adatok

Scan Response — egy további adatcsomag (legfeljebb 31 bájt), amelyet a Peripheral küld válaszul a Central scan request-jére. A scan request-et a Central a reklámcsomag fogadása után küldi, ha további információkra van szüksége a kapcsolódás előtt. A Scan Response nem igényel további reklámot — csak kérésre küldődik, ezzel csatornát takarítva meg.

Tipikus adatelosztás: az advertising PDU-ban (31 bájt) zászlók (3 bájt), szolgáltatások UUID-jei (2–16 bájt) és gyártói adatok (fennmaradó bájtok) helyezkednek el. A scan response-ban az eszköz teljes neve (legfeljebb 28 bájt) és további UUID-k vagy TX Power Level kerül elküldésre. Ez a felosztás lehetővé teszi a Central számára, hogy gyorsan szűrje az eszközöket UUID alapján a scan response elolvasása nélkül.

A reklámcsomag tervezésekor vegye figyelembe: ha mind a 31 bájt foglalt az advertising PDU-ban, a Central nem tudja meghatározni, hogy az eszköz támogatja-e a scan response-ot. Javasolt legalább 3–5 bájtot szabadon hagyni az advertising PDU-ban a scan response képesség jelzésére.

Extended Advertising a BLE 5.0-ban

Extended Advertising (BLE 5.0) — a reklám mechanizmus kiterjesztése, amely 31-ről 251 bájtra növeli a reklámcsomag méretét és új csomagtípusokat ad hozzá. Az Extended Advertising támogatja továbbá a coded PHY-t a kommunikációs hatótávolság 1 km-re növeléséhez nyílt területen és a periodikus reklámot (Periodic Advertising) több Central szinkronizálásához.

Fő újítások: ADV_EXT_IND — extended advertising PDU, amely akár 251 bájt adatot is képes küldeni egyetlen csomagban. Az Extended Advertising az elsődleges csatornákat (37, 38, 39) csak annak jelzésére használja, hogy a teljes adat melyik másodlagos csatornán (0–36) kerül továbbításra. Ez csökkenti a reklámcsatornák terhelését és növeli a rendszer teljes sávszélességét.

Periodic Advertising — egy további mechanizmus, amelyben a Peripheral fix intervallummal küld adatokat másodlagos csatornákon, és a Central szinkronizálhatja magát ezzel a sorozattal. Olyan szolgáltatásokhoz használják, amelyek rendszeres adatfrissítést igényelnek — például audió közvetítés vagy valós idejű érzékelő-leolvasások.

ParaméterBLE szabványExtended BLE 5.0
Max. csomagméret31 bájt251 bájt
CsatornákCsak 37, 38, 39+ másodlagos 0–36
Hatótáv100 m-ig1000 m-ig (coded PHY)
Sebesség1 Mbps125 kbps – 2 Mbps
PeriodikusNemIgen

Reklám beállítása iOS-ben és Androidban

iOS (Core Bluetooth) CBPeripheralManager-t biztosít a reklám kezeléséhez. Az advertising paraméterek az advertisementData szótáron keresztül állíthatók be a CBAdvertisementDataLocalNameKey (eszköznév), CBAdvertisementDataServiceUUIDsKey (szolgáltatások UUID-jei), CBAdvertisementDataTxPowerLevelKey (teljesítmény) kulcsokkal. Az iOS automatikusan kezeli az advertising intervallumot, és nem engedi a kézi beállítást.

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) részletesebb vezérlést biztosít. Elérhetők: AdvertiseSettings — mód (LOW_POWER, BALANCED, LOW_LATENCY), adó teljesítmény és intervallum beállítása; AdvertiseData — csomag adatai. Az Android támogatja az extended advertising-ot (BLE 5.0) a kompatibilis eszközökön, de az ilyen eszközök piaci részesedése körülbelül 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
);

Platformok közötti BLE alkalmazás fejlesztésekor vegye figyelembe a különbségeket: az iOS nem engedi az advertising intervallum közvetlen vezérlését, de garantálja a stabil működést minden eszközön; az Android teljes körű vezérlést biztosít, de a verziók és gyártók fragmentációja inkompatibilitáshoz vezethet. Javasolt az advertising tesztelése mindkét platform valós eszközein.

Gyakran Ismételt Kérdések

Mi a különbség a connectable és a non-connectable advertising között?

A Connectable advertising (ADV_IND) lehetővé teszi a Central számára, hogy kétirányú kapcsolatot létesítsen az eszközzel. A Non-connectable (ADV_NONCONN_IND) — csak egyirányú adatátvitel, amelyet jeladók (Beacon) használnak azonosító sugárzására kapcsolódási lehetőség nélkül.

Hány bájt küldhető egy reklámcsomagban?

A szabványos advertising csomag — 31 bájt, a scan response — további 31 bájt. Az Extended Advertising (BLE 5.0+) 251 bájtra növeli a korlátot másodlagos csatornák használatával az adatátvitelhez.

Milyen advertising intervallumot válasszak egy IoT-eszközhöz?

A legtöbb IoT-eszközhöz 500–1000 ms ajánlott. Ha gyors észlelés szükséges (pl. fejhallgató csatlakoztatásához) — 20–50 ms. Ritkán adatot küldő érzékelőknél — 1000–2000 ms az energiatakarékosság érdekében.

Miért használ a BLE három reklámcsatornát?

Három csatorna (37, 38, 39) kompromisszum az észlelés megbízhatósága és a sávszélesség között. Egy csatornát foglalhat a Wi-Fi, de az eszköz a másik kettőn észlelhető. A 38-as csatorna a Wi-Fi csatornák közötti minimális interferencia zónájában található.

Hogyan befolyásolja a reklám az akkumulátor élettartamát?

A reklám a fő energiafogyasztó a BLE-ben. 1000 ms intervallumnál az átlagos áram 50–100 µA, ami lehetővé teszi, hogy az eszköz egy évig működjön egy CR2032 elemmel. 20 ms intervallumnál az áram 1–2 mA-re nő, ami néhány hétre csökkenti az üzemidőt.

Összefoglalás

  • Advertising — BLE-eszközök észlelési mechanizmusa, amely három csatornán (37, 38, 39) működik, akár 31 bájtos csomagmérettel.
  • Ötféle advertising PDU létezik: ADV_IND, ADV_DIRECT_IND, ADV_NONCONN_IND, ADV_SCAN_IND és ADV_EXT_IND a BLE 5.0-hoz.
  • A reklám intervallum 20 ms-tól 10.24 s-ig terjed, és közvetlenül befolyásolja az észlelési sebességet és az energiafogyasztást.
  • A Scan Response további 31 bájt adatot biztosít a Central kérésére a Peripheral energiafogyasztásának növelése nélkül.
  • Az Extended Advertising (BLE 5.0) 251 bájtra növeli a csomagot, és akár 1 km-es hatótávolságot támogat coded PHY-n keresztül.
  • iOS-ben az advertising a CBPeripheralManager-en keresztül történik, Androidban — a BluetoothLeAdvertiser-en keresztül részletes beállításokkal.
  • A reklám intervallum és csomagtípus helyes megválasztása határozza meg a BLE-eszköz energiahatékonyságát és akkumulátoros üzemidejét.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is