Bluetooth Low Energy (BLE) is de dominante standaard voor korte afstand draadloze communicatie in het Internet of Things (IoT), draagbare technologie en moderne locatie-gebaseerde diensten. Het hele ecosysteem is afhankelijk van een eenvoudige maar zeer genuanceerde handdruk: reclame en scannen. De adverteerder zendt zijn aanwezigheid uit, en de scanner luistert. Terwijl de Bluetooth stack abstracteert veel van deze complexiteit, kunnen ontwikkelaars en ingenieurs die deze processen beheersen systemen bouwen die aanzienlijk energie-efficiënter, responsief en betrouwbaar zijn. Dit artikel biedt een technische diepe duik in de mechanica van Bluetooth reclame en scanning, het aanbieden van actieerbare strategieën voor het optimaliseren van apparaat ontdekking in productie-omgevingen.

De Stichting van Communicatie zonder verbinding

Bluetooth reclame en scannen vormen een asymmetrisch communicatiemodel. De adverteerder stuurt datapakketten op regelmatige tijdstippen, terwijl de scanner luistert naar deze pakketten op specifieke radiokanalen. Kritisch gezien is deze eerste handdruk geen verbinding . De adverteerder weet niet wie er luistert, en de scanner niet verbinding totdat hij beslist om, op basis van de gegevens die hij ontvangt. Deze stichting maakt gebruikscases mogelijk variërend van eenvoudige nabijheidsdetectie (iBeacon, Eddystone) tot complexe verbindingsgeoriënteerde toepassingen zoals draadloze hoofdtelefoons.

Anatomie van een Bluetooth reclamepakket

Het begrijpen van wat er in een reclamepakket zit is de eerste stap naar optimalisatie. Een legacy Protocol Data Unit (PDU) bestaat uit vier hoofdonderdelen:

  • Voorspelling (1 byte): Een vaste reeks (1010 of 0101) gebruikt voor synchronisatie van de ontvanger.
  • Toegangsadres (4 bytes): Voor oude reclame is dit altijd . Voor datakanalen worden specifieke toegangsadressen gebruikt.
  • PDU Header (2 bytes): Definieert het PDU-type (ADV IND, ADV NONCONN IND, SCAN REQ, enz.), de lengte van de lading en kanaalinformatie.
  • Betaling (0
  • CRC (3 bytes): Cyclische redundantiecontrole voor foutdetectie.

Voor ontwikkelaars is het AdvData]-veld het meest kritische onderdeel. Het is gestructureerd als een reeks AD (Advertising Data) structuren, elk met een lengte byte, een AD-type byte en de actuele gegevens. De gangbare AD-types omvatten:

  • Vlaggen: Geeft LE Limited Discoverable Mode, LE General Discoverable Mode en BR/EDR ondersteuning aan.
  • Lokale naam: Verkorte of complete apparaatnaam.
  • Service UUID's: Een lijst van 16-bits, 32-bits of 128-bits UUID's die ondersteunde diensten identificeren.
  • Fabrikant Specifieke gegevens: Door de fabrikant gebruikte aangepaste gegevens (bv. Apple's iBeacon of Google's Eddystone).

Primaire reclamekanalen

Om een betrouwbare ontdekking te garanderen ondanks wifi-interferentie, worden BLE-opdrachten gegeven dat reclamepakketten op drie primaire kanalen worden verzonden: 37 (2402 MHz), 38 (2426 MHz) en 39 (2480 MHz). Deze kanalen worden zorgvuldig geselecteerd om te verblijven in de gaten tussen de centrale frequenties van de meest voorkomende Wi-Fi-kanalen (1, 6 en 11). Een scanner luistert op alle drie kanalen in volgorde, waardoor de hoge kans op ontvangst, zelfs in overbelaste omgevingen.

Reclamemodi en -types

De Bluetooth Core Specification definieert verschillende reclame PDU-types, elk op maat voor specifieke gebruikscases. Het kiezen van het juiste type is van fundamenteel belang voor het optimaliseren van het vermogen en het ontdekkingsgedrag.

  • ADV IND (Connectable Undirected Advertising): De meest voorkomende modus. De adverteerder is te ontdekken en accepteert verzoeken om verbinding van een scanner. Gebruikt voor algemene apparaatontdekking (bijvoorbeeld, koppelen van een smartphone).
  • ADV DIRECT IND (Connectable Regie Adverteren): Gericht op een specifiek apparaat. Het pakket bevat het adres van de adverteerder en het adres van het doel. Deze modus heeft een zeer lage latentie voor herverbinding en wordt meestal gebruikt wanneer een verbinding tijdelijk verloren gaat.
  • ADV NONCONN IND (Niet-connectable Ondirected Advertising): Het apparaat is puur uitzenden en kan geen verbindingen accepteren. Wordt uitgebreid gebruikt voor bakens en omroepsensoren, omdat het minder stroom verbruikt door het elimineren van de overhead van de verbinding.
  • ADV SCAN IND (Scannable Undirected Advertising): Apparaat is te ontdekken maar niet aan te sluiten. Het kan reageren op scanverzoeken, waardoor scanners extra gegevens kunnen verzamelen zonder een volledige verbinding tot stand te brengen.

Elke modus heeft een overeenkomstige dienstcyclus. Aansluitbare modi gebruiken doorgaans een hogere dienstcyclus om een snelle verbinding te garanderen, terwijl niet-connecteerbare modi een lagere dienstcyclus kunnen gebruiken om de stroom te behouden.

Deep Duik in het Bluetooth Scanning proces

Scanning is het actieve of passieve luisteren naar reclamepakketten. De scannerschema's ontvangen vensters op de primaire reclamekanalen. Het succes van ontdekking hangt volledig af van de overlapping tussen het transmissieschema van de adverteerder en het luisterschema van de scanner.

Passieve scanning: afluisteren voor efficiëntie

Bij passief scannen opent de scanner eenvoudig een ontvangen venster en luistert naar reclame PDU's. Het zendt geen verzoeken. Dit is de laagste stroomscanmodus omdat de radio minimale tijd doorbrengt in de transmit-modus (die meestal 10

Scanners die slechts een handvol Service UUID's of een fabrikant ID hoeven te detecteren, kunnen volledig in passieve modus werken, waardoor de stroombehoefte van het systeem aanzienlijk wordt verminderd. Zo kan bijvoorbeeld een slimme thuishubbewaking voor een specifieke BLE-sensor meestal in passieve scanmodus blijven.

Actieve scanning: Richer Context wordt verkregen

Wanneer de scanner meer informatie nodig heeft dan wat er in de oorspronkelijke 31-byte reclamelading wordt verstrekt, voert hij een actieve scan uit. Bij ontvangst van een reclamepakket (specifiek een ADV IND of ADV SCAN IND), zendt de scanner een [SCAN REQ[ PDU. De adverteerder reageert met een SCAN RSP[ PDU, die maximaal 31 extra bytes aan gegevens kan bevatten.

Actief scannen is krachtig omdat het de scanner toelaat om de volledige lokale naam of gedetailleerde servicegegevens van het apparaat te verkrijgen voordat u beslist om verbinding te maken. Dit kost echter wel:

  • Verhoogd energieverbruik: De scanner moet zijn zender voor de SCAN REQ van stroom voorzien.
  • Verhoogd luchtverkeer: De SCAN REQ/SCAN RSP-uitwisseling voegt overhead toe, mogelijk toenemende botsingswaarschijnlijkheden in dichte omgevingen.
  • Privacy Implicaties: Actief scannen toont de aanwezigheid van de scanner en het MAC-adres aan de adverteerder.

Voor passieve bakens die hun volledige naam niet hoeven te onthullen totdat een gebruiker ze tikt, is actief scannen geschikt. Voor eenvoudige aanwezigheidsdetectie is passief scannen superieur.

Filters scannen en detectie dupliceren

In een dichte BLE omgeving, kan een scanner worden overweldigd door duizenden pakketten per seconde. Om dit te verwerken, moderne Bluetooth stacks implementeren geavanceerde filtering.

  • Apparaatfiltering: De scanner kan alleen worden geconfigureerd om pakketten te verwerken van een witte lijst van specifieke MAC-adressen of een reeks service-UUID's. Dit is van cruciaal belang voor achtergrondscanning op mobiele apparaten om de batterij te behouden.
  • Dupliceren Filteren: De stack kan automatisch duplicaten uit hetzelfde apparaat verwijderen. Dit voorkomt dat de toepassingslaag wordt overspoeld met herhaalde advertenties. De parameter in Android's of de parameter in iOS's ] regelt dit gedrag. Het houden van duplicaten gefilterd is essentieel voor een efficiënt scannen.
  • RSSI Filtering: Sommige geavanceerde scanners laten filteren op basis van signaalsterkte, apparaten negeren die te ver weg (of te dichtbij) zijn om relevant te zijn.

Optimaliseren van het reclame- en scansysteem

De sleutel tot efficiënte apparaat ontdekking ligt in het afstemmen van de parameters van zowel de adverteerder en de scanner om de specifieke toepassingseisen te voldoen. De uitruil is bijna altijd tussen stroomverbruik en ontdekking latency.

Afstem-reclameparameters

De meest impactvolle parameter is het reclame-interval (). Het wordt gedefinieerd als een veelvoud van 0,625 ms, variërend van 20 ms tot 10,24 seconden. Een willekeurige vertraging van 0

Snel vs. langzame reclame

Bluetooth Core Specification beveelt twee hoog-dienstcycli aan voor adverteerders:

  • Snelle reclame: Gebruikt intervallen van 30 ms tot 60 ms. Deze modus is bedoeld voor snelle ontdekking, zoals wanneer een apparaat aan het koppelen is of wanneer een gebruiker actief met het apparaat interageert. Het biedt sub-100 ms ontdekking latentie maar verbruikt aanzienlijke energie.
  • Log Advertentie (of Uitgebreide reclame): Gebruikt intervallen van 1 seconde tot 2 seconden of langer. Dit wordt gebruikt voor achtergronduitzendingen (bijvoorbeeld een baken in een winkel). Het verlengt de levensduur van de batterij tot maanden of jaren, maar kan enkele seconden duren voordat een scanner het apparaat kan detecteren.

Ontwikkelaars moeten een dynamische reclamestrategie implementeren. Bijvoorbeeld, een sensor kan snel advertenties maken gedurende 30 seconden na een druk op de knop (om snelle verbinding te vergemakkelijken), dan terugvallen op een langzaam interval voor de rest van de dag om de batterij te besparen.

Scanparameters instellen

Het gedrag van de scanner wordt beheerst door twee parameters: scanvenster () en scaninterval ().

  • Scan Venster: De duur van één luisterperiode op een specifiek kanaal.
  • Scan Interval: De totale tijd tussen twee scanvensteropeningen.

De ratio definieert de scannerdienstcyclus. A 100% duty cycle betekent dat de scanner voortdurend luistert (] = ). Dit levert de snelste ontdekking maar draineert de batterij snel. A 10% duty cycle betekent dat de scanner slechts 10% van de tijd luistert, waardoor het vermogen wordt bespaard maar mogelijk ontbrekende pakketten.

Moderne mobiele besturingssystemen bieden vooraf gedefinieerde scanprofielen om deze trade-off te beheren:

  • SCAN MODE LOW POWER (Android): ~10% duty cycle, 0,5s interval.
  • SCAN MODE BALANCED (Android): ~25% duty cycle.
  • SCAN MODE LOW LATENCY (Android): ~100% duty cycle, 2s interval.

Voor iOS beheert het systeem scanparameters dynamisch op basis van de toestand van de app (voorgrond vs. achtergrond). Achtergrondscancyclussen zijn veel langer om de batterij te behouden.

Geavanceerde Filtering en Datastructuren

Naast de basis MAC en UUID filtering, kunnen ontwikkelaars de ontdekking optimaliseren door de reclamegegevens zorgvuldig te structureren. Gezien de 31-byte payload limiet telt elke byte.

  • Service UUID's: Gebruik 16-bit Bluetooth SIG toegewezen UUID's waar mogelijk in plaats van 128-bit aangepaste UUID's. Ze passen efficiënter in het pakket.
  • Fabrikant Specifieke Gegevens: Gebruik de eerste 2 bytes voor de Bedrijfsidentificatie (zoals toegewezen door de Bluetooth SIG), en de resterende bytes voor aangepaste gegevens. Hierdoor kunnen scanners het pakket direct categoriseren.
  • Eddystone en iBeacon: Dit zijn bekende frametypes die gebruik maken van het veld Fabrikant Specifieke Gegevens. Scanners specifiek zoeken naar deze frametypes, waardoor uiterst gerichte filtering op radioniveau.

Geavanceerde reclame met Bluetooth 5.x en Auracast

Bluetooth 5.0 introduceerde een belangrijke evolutie in reclamemogelijkheden, die verder ging dan de nalatenschap 31-byte kanalen.

Uitgebreide reclame

BLE 5.0 breidde de reclamekanalen uit van de oorspronkelijke 3 primaire kanalen naar 39 kanalen (kanalen 37-39 plus 40-47 worden gebruikt voor secundaire reclame). Uitgebreide reclame maakt het mogelijk:

  • Grotere payloads: Tot 255 bytes in één reclamepakket.
  • Hogere gegevenstarieven: Gebruik van de 2M PHY (2 Mbps).
  • Longerbereik: Gebruik makend van de gecodeerde PHY (125 kbps of 500 kbps), die in ideale omstandigheden een kilometer bereik kan bereiken.
  • Primaire/Tweede Kanalen: De scanner ontdekt het apparaat op de primaire kanalen (37, 38, 39) en leert welk secundaire kanaal de adverteerder zal gebruiken om de werkelijke gegevens te verzenden. Hierdoor kan de scanner afstellen op het secundaire kanaal, waardoor energie wordt bespaard.

Uitgebreide reclame is essentieel voor moderne IoT gateways en asset tracking tags die grote hoeveelheden gegevens (zoals sensor logs of firmware beelden) moeten verzenden zonder dat er een volledige verbinding tot stand komt.

Periodieke reclame (PAwR en PAST)

Periodieke reclame brengt BLE-uitzendingen naar een hoger niveau. De adverteerder stuurt pakketten met een vast interval. De scanner kan synchroniseren met de adverteerder door naar deze periodieke treinen te luisteren. Om te synchroniseren, ontdekt de scanner eerst het apparaat via uitgebreide reclame en leert de timing van de periodieke trein.

PAwR (Periodic Advertising with Responses) is een spelwisselaar voor tweerichtingscommunicatie. Hiermee kan een gateway efficiënt communiceren met duizenden eindknooppunten, waarbij specifieke responsslots voor elke knoop gedefinieerd worden. Dit vormt de basis voor netwerken met hoge dichtheidssensoren zoals Electronic Shelf Labels (ESLs).

PAST (Periodic Advertising Sync Transfer) staat een apparaat dat al gesynchroniseerd is met een periodieke adverteerder toe om die synchronisatie-informatie te delen met een ander apparaat. Dit is de technische ruggengraat van Auracast, de nieuwe Bluetooth-uitzendingsaudiostandaard.

Auracast: Audio zonder verbinding

Auracast maakt gebruik van Periodieke reclame voor audiostreams. Hoortoestellen, oordopjes en luidsprekers scannen op Auracast-streams. De scanner (bijvoorbeeld een telefoon of hoortoestel) synchroniseert met de periodieke trein en ontvangt de audiogegevens. Dit is fundamenteel anders dan klassieke A2DP-streaming, omdat het onbeperkt ontvangers toestaat om tegelijkertijd te luisteren en functies ondersteunt zoals het delen van audio van een tv naar meerdere koptelefoonparen.

Praktische overwegingen voor robuuste ontdekkingssystemen

Het bouwen van een productie-ready BLE systeem vereist het navigeren van de reële beperkingen van radiofysica, batterijchemie en besturingssysteem beperkingen.

Energieverbruiksanalyse

De radio is het meest energie-hongerige onderdeel op een BLE apparaat. Een typische BLE SoC trekt 10

Avg-vermogen = (TX/RX-stroom) x duty cycle + (slaapstroom) x (1 - duty cycle)

Met een 1-seconde reclame-interval is de dienstcyclus minuscul (ongeveer 0,5.0 ms radio per seconde = 0,1% duty cycle). Hierdoor kan een CR2032 muntcel batterij een baken meer dan een jaar aan te drijven. Veranderen naar een 100 ms interval verhoogt de dienstcyclus tot ~1%, waardoor de levensduur van de batterij te verminderen tot een paar maanden. Bereken altijd de dienstcyclus voordat je je aan een batterij bron.

Besturingssysteem en perronbeperkingen

Mobiele besturingssystemen leggen strikte grenzen aan BLE-scannen om de levensduur van de batterij en de privacy van de gebruiker te beschermen.

  • iOS (Apple): Op de achtergrond, Core Bluetooth scans cyclus veel minder vaak. De optie wordt grotendeels genegeerd op de achtergrond. Apps moeten hun achtergrondmodi specificeren in Info.plist. Bovendien, iOS agressief caches apparaten, en scannen voor specifieke Service UUIDs wordt sterk aanbevolen om de batterij afvoer te verminderen.
  • Android (Google): Android 8+ heeft achtergronduitvoeringslimieten ingevoerd. Apps die op de achtergrond scannen moeten een voorgrondservice gebruiken (indien het op achtergrondscannen gericht is) of gebruiken met de juiste ]. Android 12+ vereist de toestemming , wat een runtime toestemming is zoals Locatie. Niet-naleving van de resultaten van scans wordt geblokkeerd of getrotteerd.

Ingenieurs moeten hun ontdekkingslogica testen op beide platformen onder achtergrondomstandigheden, omdat het gedrag vaak aanzienlijk verschilt van de voorgrondbewerking.

Coëxistentie en interferentiebeheer

De 2,4 GHz ISM-band is een overvolle ruimte. Wi-Fi, Zigbee, Thread, en zelfs magnetrons verstoren BLE. De Bluetooth-stapel werkt dit door Adaptive Frequency Hopping (AFH) op datakanalen. Echter, de drie primaire reclamekanalen (37, 38, 39) springen niet. Als Wi-Fi-activiteit hoog is op kanalen 1, 6 en 11, kunnen reclamepakketten verloren gaan.

Ontwikkelaars kunnen dit verzachten door:

  • Gebruik Extended Advertising (BLE 5.x) die meer kanalen gebruikt voor secundaire gegevensoverdracht.
  • Het reclame-interval is lang genoeg om aanhoudende botsingen met Wi-Fi-bakens te voorkomen.
  • Uitvoering van de doorgifte op softwareniveau of erkenning als kritieke gegevens worden uitgezonden.

Conclusie: De Discovery Handshake beheersen

Efficiënte Bluetooth-apparaatontdekking is geen binaire staat van "verbonden" of "gedesigneerd." Het is een continu optimalisatieprobleem met pakketontwerp, stroombeheer en parameter-tuning. De adverteerder moet zijn aanwezigheid uitzenden op een manier die voor de beoogde use case te ontdekken is zonder batterij te verspillen. De scanner moet intelligent luisteren, ruis filteren en zich richten op relevante signalen.

Door het samenspel tussen reclame-intervallen, scannen van dienstcycli en datafiltering te beheersen, kunnen ontwikkelaars systemen creëren die niet alleen betrouwbaar en responsief zijn, maar ook energie-efficiënt genoeg zijn om jarenlang op één batterij te kunnen draaien. Aangezien Bluetooth-technologie blijft evolueren met Auracast en hoge dichtheidskanaalvorming, blijven de principes van efficiënte reclame en scanning centraal staan in het draadloze ecosysteem.

Verdere lezing en bronnen