Advertising у BLE: шта је то, формати пакета и механизми рекламе

Аутор: IT Sectr Објављено: 2026-07-15 Време читања: 11 мин

Advertising (реклама) — то je механизам у Bluetooth Low Energy помоћу кога уређај Peripheral објављује своје присуство, шаљући кратке пакете података на три додијељена канала (37, 38, 39). Bluetooth Core Specification 5.4 (2023) дефинише два типа рекламе: connectable — уређај је спреман за повезивање, и non-connectable — користе га маяци (Beacon) који само преносе податке без успостављања двосмјерног повезивања. Параметри рекламе — интервал од 20 ms до 10.24 s, снага предајника од -20 до +10 dBm и тип пакета — директно утичу на брзину откривања уређаја и његову потрошњу енергије, што је критично важно при развоју IoT уређаја са батеријским напајањем.

Главно

  • Advertising — основни механизам откривања BLE уређаја, који ради на три додијељена канала 37, 38 и 39.
  • Стандардни рекламни пакет је ограничен на 31 бајт података, extended advertising (BLE 5.0) повећава лимит на 251 бајт.
  • Connectable advertising омогућава Central-у да се повеже на уређај, non-connectable — само једносмјерни пренос (маяци).
  • Интервал рекламе утиче на потрошњу енергије: при интервалу 1000 ms просјечна струја је 10 пута нижа него при 100 ms.
  • Scan response омогућава пренос додатних 31 бајт података као одговор на захтјев Central-а.

Шта је Advertising у BLE-у?

Advertising (реклама) — то je процес периодичног слања кратких пакета података путем којих BLE уређај објављује своје присуство и доступност. За разлику од класичног Bluetooth-а, гдје претрага уређаја траје секундама, BLE advertising омогућава откривање уређаја за милисекунде, уз минималну потрошњу енергије.

BLE архитектура дијели уређаје на двије улоге: Peripheral (оглашава се) и Central (скенира). Peripheral шаље advertising пакете, а Central скенира канал и доноси одлуку о повезивању. Овај асиметрични модел је кључна предност BLE-а: уређај који се оглашава троши енергију само на слање кратких пакета, а не на стално ослушкивање канала.

Процес advertising-а састоји се од три фазе: advertising event (слање пакета на сва три канала), scan request/response (опционална размјена са Central-ом) и connection request (иницирање повезивања од стране Central-а). Сваку фазу управља Bluetooth Controller на нивоу Link Layer-а.

Рекламни канали и њихова намјена

BLE користи 40 канала у опсегу 2.4 GHz, од којих су 37 (2402 MHz), 38 (2426 MHz) и 39 (2480 MHz) додијељени искључиво за advertising. Три канала су компромис измјеђу поузданости откривања и пропусног опсега: један канал може бити заузет Wi-Fi-јем или другим сметњама, али уређај ће бити откривен на друга два.

Канал 37 се налази поред Wi-Fi канала 1, канал 39 — поред Wi-Fi канала 6, а канал 38 се налази измјеђу њих, у зони минималних сметњи. Избор три канала гарантује да ће уређај бити откривен чак и у условима густог радио саобраћаја — на примјер, у тржном центру са десетинама Wi-Fi приступних тачака.

Peripheral шаље advertising пакет секвенцијално на сва три канала — то се назива advertising event. Централни уређај скенира по један канал, пребацујући се измјеђу њих према алгоритму имплементираном у Bluetooth Controller-у. Вјероватноћа откривања током једног advertising event-а у одсуству колизија је близу 100%.

Типови рекламних пакета

Bluetooth Core Specification дефинише неколико типова advertising PDU (Protocol Data Unit), сваки са својом намјеном. Главни типови: ADV_IND (connectable undirected advertising) — стандардна реклама са могућношћу повезивања, ADV_NONCONN_IND (non-connectable undirected advertising) — само реклама без повезивања, ADV_SCAN_IND (scannable undirected advertising) — подржава scan request, ADV_DIRECT_IND (directed advertising) — реклама за одређени Central.

ADV_IND — најчешћи тип, користи се у већини BLE уређаја. По пријему ADV_IND, Central може послати connection request и успоставити везу. ADV_NONCONN_IND користе маяци (Beacon): уређај се оглашава, али не прихвата захтјеве за повезивање — само једносмјерни пренос података.

Тип PDUОписПовезивањеScan response
ADV_INDСтандардна рекламаДаДа
ADV_DIRECT_INDРеклама за одређени CentralДаНе
ADV_NONCONN_INDБез повезивања (маяци)НеНе
ADV_SCAN_INDСа подршком за скенирањеДаДа
ADV_EXT_INDExtended advertising (BLE 5.0)ДаДа

ADV_DIRECT_IND садржи адресу циљног Central-а, што омогућава брзо успостављање везе без чекања на скенирање. Користи се када уређаји већ „знају” један другог — на примјер, након поновног повезивања са претходно упареним паметним телефоном. Овај тип смањује потрошњу енергије јер не захтијева рекламу на свим каналима.

Интервал рекламе и потрошња енергије

Advertising interval — то je вријеме измјеђу узастопних advertising event-ова. Спецификација дозвољава интервал од 20 ms до 10.24 s са кораком од 0.625 ms. Стварни интервал се израчунава као збир фиксне вриједности и случајног кашњења (0–10 ms), што смањује вјероватноћу колизија измјеђу више уређаја који се оглашавају.

Избор интервала је баланс измјеђу брзине откривања и потрошње енергије. При интервалу од 20 ms, уређај ће бити откривен за 20–30 ms, али просјечна струја ће бити око 1–2 mA. При интервалу од 1000 ms — откривање ће трајати до 1 секунде, али просјечна струја ће пасти на 50–100 µA. За већину IoT уређаја препоручени интервал је 200–1000 ms.

Према Texas Instruments Application Report SWRA478 (2024), повећање advertising интервала са 100 ms на 1000 ms смањује потрошњу енергије за 90%. Ако уређај не захтијева тренутно откривање (на примјер, сензор температуре који шаље податке једном у минуту), оптимални интервал је 1000–2000 ms.

Додатни параметар — advertising timeout — максимално вријеме током којег се уређај оглашава. У iOS-у, Peripheral аутоматски искључује рекламу након 180 секунди у позадинском режиму. На Android-у такво ограничење не постоји, али произвођачи могу додати сопствена ограничења.

Scan Response: додатни подаци

Scan Response — то je додатни пакет података (до 31 бајта) који Peripheral шаље као одговор на scan request од Central-а. Scan request шаље Central након пријема advertising пакета, ако му је потребно више информација прије повезивања. Scan Response не захтијева додатну рекламу — шаље се само на захтјев, штедећи канал.

Типична расподјела података: у advertising PDU (31 бајт) смјештају се заставице (3 бајта), UUID-ови услуга (2–16 бајтова) и подаци произвођача (преостали бајтови). У scan response-у преноси се пуно име уређаја (до 28 бајтова) и додатни UUID-ови или TX Power Level. Ова подјела омогућава Central-у да брзо филтрира уређаје по UUID-у без читања scan response-а.

При пројектовању advertising пакета узмите у обзир: ако је свих 31 бајтова заузето у advertising PDU-у, Central неће моћи да утврди да ли уређај подржава scan response. Препоручује се оставити најмање 3–5 бајтова слободних у advertising PDU-у за означавање могућности scan response-а.

Extended Advertising у BLE 5.0

Extended Advertising (BLE 5.0) — то je проширење механизма рекламе које повећава величину advertising пакета са 31 на 251 бајт и додаје нове типове пакета. Extended Advertising такође подржава coded PHY за повећање домета комуникације до 1 km на отвореном простору и периодичну рекламу (Periodic Advertising) за синхронизацију више Central-а.

Главне новине: ADV_EXT_IND — extended advertising PDU који може да преноси до 251 бајта података у једном пакету. Extended Advertising користи примарне канале (37, 38, 39) само за означавање на којем секундарном каналу (0–36) се преносе комплетни подаци. Ово смањује оптерећење рекламних канала и повећава укупан пропусни опсег система.

Periodic Advertising — додатни механизам при којем Peripheral шаље податке на секундарним каналима са фиксним интервалом, а Central се може синхронизовати са овом секвенцом. Користи се за услуге које захтијевају редовно ажурирање података — на примјер, пренос звука или очитавања сензора у реалном времену.

ПараметарСтандардни BLEExtended BLE 5.0
Макс. величина пакета31 бајт251 бајт
КаналиСамо 37, 38, 39+ секундарни 0–36
ДометДо 100 mДо 1000 m (coded PHY)
Брзина1 Mbps125 kbps – 2 Mbps
PeriodicНеДа

Подешавање рекламе у iOS и Android

iOS (Core Bluetooth) пружа CBPeripheralManager за управљање рекламом. Параметри advertising-а се постављају путем рјечника advertisementData са кључевима CBAdvertisementDataLocalNameKey (име уређаја), CBAdvertisementDataServiceUUIDsKey (UUID-ови услуга), CBAdvertisementDataTxPowerLevelKey (снага). iOS аутоматски управља advertising интервалом и не дозвољава ручно подешавање.

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) пружа детаљнију контролу. Доступни су: AdvertiseSettings — подешавање режима (LOW_POWER, BALANCED, LOW_LATENCY), снаге предајника и интервала; AdvertiseData — подаци пакета. Android подржава extended advertising (BLE 5.0) на компатибилним уређајима, али је удио таквих уређаја на тржишту око 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
);

При развоју међуплатформске BLE апликације узмите у обзир разлике: iOS не дозвољава директно управљање advertising интервалом, али гарантује стабилан рад на свим уређајима; Android пружа потпуну контролу, али фрагментација верзија и произвођача може довести до некомпатибилности. Препоручује се тестирање advertising-а на стварним уређајима обије платформе.

Често постављана питања

Која је разлика измјеђу connectable и non-connectable advertising-а?

Connectable advertising (ADV_IND) омогућава Central-у да успостави двосмјерну везу са уређајем. Non-connectable (ADV_NONCONN_IND) — само једносмјерни пренос података, користе га маяци (Beacon) за емитовање идентификатора без могућности повезивања.

Колико бајтова се може пренијети у рекламном пакету?

Стандардни advertising пакет — 31 бајт, scan response — још 31 бајт. Extended Advertising (BLE 5.0+) повећава лимит на 251 бајт коришћењем секундарних канала за пренос података.

Који advertising interval одабрати за IoT уређај?

За већину IoT уређаја препоручује се 500–1000 ms. Ако је потребно брзо откривање (на примјер, за повезивање слушалица) — 20–50 ms. За сензоре са ријетким слањем података — 1000–2000 ms ради уштеде енергије.

Зашто BLE користи три рекламна канала?

Три канала (37, 38, 39) су компромис измјеђу поузданости откривања и пропусног опсега. Један канал може бити заузет Wi-Fi-јем, али уређај ће бити откривен на друга два. Канал 38 се налази у зони минималних сметњи измјеђу Wi-Fi канала.

Како advertising утиче на вријеме рада на батерију?

Advertising је главни потрошач енергије у BLE-у. При интервалу 1000 ms просјечна струја износи 50–100 µA, што омогућава уређају да ради годину дана на CR2032 батерији. При интервалу од 20 ms струја расте на 1–2 mA, смањујући вријеме рада на неколико седмица.

Закључак

  • Advertising — механизам откривања BLE уређаја који ради на три канала (37, 38, 39) са величином пакета до 31 бајта.
  • Постоји пет типова advertising PDU: ADV_IND, ADV_DIRECT_IND, ADV_NONCONN_IND, ADV_SCAN_IND и ADV_EXT_IND за BLE 5.0.
  • Интервал рекламе варира од 20 ms до 10.24 s и директно утиче на брзину откривања и потрошњу енергије уређаја.
  • Scan Response пружа додатних 31 бајт података на захтјев Central-а без повећања потрошње енергије Peripheral-а.
  • Extended Advertising (BLE 5.0) повећава пакет на 251 бајт и подржава домет до 1 km преко coded PHY.
  • У iOS-у advertising се управља преко CBPeripheralManager-а, у Android-у — преко BluetoothLeAdvertiser-а са детаљним подешавањима.
  • Правилан избор advertising интервала и типа пакета одређује енергетску ефикасност и вријеме самосталног рада BLE уређаја.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође