Adaptiv frekvensspringning (AFH) lader Bluetooth-enheder overvåge 2,4 GHz-båndet og dynamisk undgå støjende kanaler. Her gennemgår jeg, hvordan kanalkortet opdateres, og hvad det betyder i praksis.

Hvad er adaptiv frekvensspringning (AFH)?

Adaptiv frekvensspringning – eller adaptive frequency hopping (AFH) på engelsk – er en teknik, der bruges til at undgå interferens og udnytte radiospektrummet bedre i trådløse kommunikationssystemer. Den forbindes især med Bluetooth, men princippet findes også i andre båndbaserede systemer. Kort sagt: AFH betyder, at enhederne hele tiden holder øje med interferens i deres omgivelser og løbende justerer kanalkortet for at håndtere det. Det er med andre ord en videreudvikling af frequency-hopping spread spectrum (FHSS), hvor bærebølgen hopper mellem frekvenskanaler efter en pseudo-tilfældig sekvens, som både sender og modtager kender på forhånd.

Forskellen ligger i, at AFH tilføjer en adaptiv dimension oveni det klassiske frekvensspring. I stedet for blot at hoppe efter en fast sekvens, identificerer AFH vedvarende interferenskilder og udelukker de ramte kanaler fra listen over brugbare kanaler. Hoppesekvensen remappes altså, så de mest belastede frekvenser undgås. Bluetooth deler båndet op i mindre kanaler – for Bluetooth Low Energy er der tale om 40 kanaler – og hopper hurtigt mellem dem, hver gang der sendes pakker. Kanaler med meget støj eller trafik spores løbende og holdes ude af billedet.

Når man begynder at dykke ned i adaptiv frekvensspringning, støder man hurtigt på en række begreber, der alle kredser om det samme: kanalkort (channel map), kanalvælgeralgoritme (channel selection algorithm), kanalklassificering (channel classification), kanalvurdering (channel assessment), dynamisk frekvensspringning (DFH), automatisk frekvensspringning, pseudo-tilfældig frekvenstildeling, piconet og ISM-båndet. De dækker hver især et hjørne af den samme grundtanke – nemlig at gøre den trådløse forbindelse mere robust ved at flytte kommunikationen væk fra frekvenser, der er forstyrrede.

Hvordan virker adaptiv frekvensspringning i praksis?

For hver connection event udveksler de forbundne enheder pakker i nøjagtigt timede intervaller. Ved starten af hver connection event foregår der et frekvensspring, hvor en radiokanal vælges deterministisk ud fra de tilgængelige kanaler via en kanalvælgeralgoritme. Hen over en række connection events skifter kommunikationen altså mellem et bredt udvalg af kanaler fordelt ud over 2,4 GHz-båndet – og det er netop denne spredning, der får sandsynligheden for kollisioner til at falde markant.

Den primære enhed står for at vedligeholde et såkaldt kanalkort, hvor hver enkelt kanal markeres som enten i brug eller ledig, og dette kort deles løbende med den anden enhed gennem en link layer-procedure. For at finde ud af, hvilke kanaler der reelt er noget værd, benytter enhederne sig af metoder, der afhænger af den konkrete implementering – der er altså ikke én fast opskrift. Kortet bliver opdateret, efterhånden som kanaler falder i kvalitet eller kommer sig igen. Og det er præcis denne vedvarende justering, der gør teknikken adaptiv.

Et konkret eksempel: En smartphone, der fungerer som central enhed, kan slå de kanaler fra, som overlapper med dens egne Wi-Fi-kanaler – og en EFR-enhed accepterer dette kanalkort. Omvendt forholder det sig, når EFR-enheden selv er central: Så aktiverer den som udgangspunkt alle kanaler, medmindre de blokeres manuelt. Det viser med al tydelighed, at AFH i høj grad afhænger af, hvordan den centrale enhed vurderer sine omgivelser.

AFH i Bluetooth LE: 40 kanaler og 37 datakanaler

Bluetooth LE deler 2,4 GHz ISM-båndet op i 40 kanaler, og af dem er de 37 beregnet til generel brug — det er altså dem, der er tilgængelige, når enhederne er i forbindelse med hinanden. Silicon Labs forklarer det sådan, at Bluetooth-standarden giver de kommunikerende enheder mulighed for selv at blive enige om, hvilke af de 37 datakanaler de vil benytte. Den enighed er det, kanalkortet nedfælder, og kortet bliver løbende justeret, efterhånden som forholdene ændrer sig.

Selve proceduren for opdatering af kanalkortet blev introduceret med Bluetooth 4.0-specifikationen, og det er udelukkende den centrale enhed, der kan sætte den i gang. En slave-enhed har altså ikke mulighed for selv at tage initiativ til at ændre kanalkortet. Til gengæld er funktionaliteten understøttet i alle SDK-versioner, og den fremstår derfor som et gennemprøvet og bredt implementeret element i Bluetooth-stakken.

For udviklere betyder det helt konkret, at man skal gøre sig klart, hvilken rolle ens enhed spiller i netværket. Er den central, har den nemlig mulighed for aktivt at forme kanalkortet og dermed undgå interferens fra eksempelvis Wi-Fi. Er den derimod slave, er situationen en anden: så må den rette ind efter den centrale enheds beslutninger og acceptere det kanalkort, der bliver udsendt — uanset om den selv ville have valgt anderledes.

Kanalkortets opdatering og minimumskrav

Kanalkortet er altså ikke noget, der bare ligger fast én gang for alle. Efterhånden som en kanal begynder at blive dårligere, kan den blive markeret som ubrugt, og hvis den senere bliver ren igen, kan den blive ført tilbage. Bluetooth-specifikationen stiller dog et krav om et minimumssæt på mindst tyve kanaler, når der remappes. Det sikrer, at der hele tiden er nok spredning i hoppesekvensen til, at forbindelsen forbliver robust – også når flere kanaler er blokeret af interferens.

Inden AFH blev en del af billedet, benyttede Bluetooth-enheder sig af 79 ud af de 83,5 kanaler, der er tilgængelige i 2,4 GHz-båndet, og hoppede rundt mellem dem med 1600 hop i sekundet – uden at skele til, om en kanal nu også var optaget af noget andet. Resultatet var, at der ind imellem opstod kollisioner med andre trådløse enheder. Det var netop dette problem, Bluetooth SIG tog hånd om, da de introducerede AFH og fik det skrevet ind i Bluetooth Specification Version 1.2, som blev vedtaget i 2003. Man kan sige, at man hermed bevægede sig væk fra den rent tilfældige kanalvælging og over til en løsning, hvor kanalerne i højere grad bliver tilpasset de faktiske forhold.

Hvordan vurderer man, om en kanal er dårlig?

Bluetooth-specifikationen foreskriver ikke, hvordan dårlige kanaler identificeres – det kaldes channel assessment. To fremherskende metoder er RSSI (Received Signal Strength Indication) og PER (Packet Error Rate). Begge kan afgøre, hvilke kanaler der muligvis er optagede, men de adskiller sig i, hvor godt de vedligeholder et billede af de aktuelle forhold.

RSSI måler den modtagne signalstyrke og kan give et hurtigt indblik i, om en kanal virker belastet. PER derimod måler andelen af pakker, der fejler, og siger dermed mere direkte noget om den faktiske kommunikationskvalitet. Ulempen ved FHSS generelt er, at bærefrekvenser bruges til at transmittere informationsbit, hvilket kan føre til kraftige bursty-fejl på grund af frekvensselektiv fading. Adaptive ordninger tilføjer samtidig overvågningsomkostninger, og forskellige kanalvurderingsmetoder sporer aktuelle forhold med forskellig præcision.

AFH-parametre og implementeringsdetaljer hos Silicon Labs

Hos Silicon Labs kan AFH fra Bluetooth SDK v3.x aktiveres ved at installere AFH-softwarekomponenten. Funktionen sl_bt_init_afh() kaldes automatisk inde i sl_bt_init() af kodegeneratoren. Hvis AFH er aktiveret, og mindst én annoncør kører udvidede annoncer, eller mindst én forbindelse er aktiv, kører stakken en periodisk baggrundsopgave, der gennemsøger alle kanaler én gang hvert afh_scan_interval og måler modtaget effekt.

Hvis den målte effekt overstiger grænsen på -71 dBm på en kanal, blokeres kanalen i mindst 8 afh_scan_intervals. For at ophæve blokeringen kræves 8 på hinanden følgende målinger uden interferens. Efter hver gennemsøgning oprettes et nyt kanalkort, og hvis det er ændret, sender den centrale enhed det til alle slaves.

afh_scan_interval er som standard 1 sekund, og en gennemsøgning af 40 kanaler tager omkring 10 ms og tilføjer cirka 240 uW i energiforbrug. AFH-gennemsøgningen har højeste prioritet blandt Bluetooth-operationer. Enheden for afh_scan_interval er 10 ms og kan ændres via sl_bt_system_linklayer_configure med AFH_SCAN_INTERVAL_CONFIG_KEY. Kanalgennemsøgningen sker efter en radiooperation; ved et interval på 100 ms og et annonceinterval på 80 ms sker scanningen ved hver anden annonce, altså cirka hvert 160 ms. Kanaler kan også blokeres manuelt.

Et vigtigt praktisk punkt: AFH er et krav for at bruge TX-effekt over +10 dBm. Nordic-udviklere har bemærket, at +20 dBm med BLE er vanskeligt på grund af regulering, og et kundekrav refererede til ETSI 300 328 Adaptive Mode for +20 dBm EIRP med LE channel selection algorithm #2. Højere effekt øger interferensrisikoen, og adaptiv frekvensspringning sikrer, at enheder undgår optagede kanaler.

AFH og Wi-Fi sameksistens i 2,4 GHz ISM-båndet

2,4 GHz ISM-båndet deles af mange teknologier, og Wi-Fi er den mest markante nabo for Bluetooth. Når en smartphone fungerer som central enhed, kan den deaktivere kanaler, der overlapper med dens Wi-Fi-kanaler, og dermed reducere risikoen for kollisioner mellem de to radioteknologier. Det er et konkret eksempel på, hvordan AFH bruges i praksis til sameksistens.

Bluetooth 5.3 tog et vigtigt skridt videre. Bluetooth Core Specification v5.3, udgivet i midten af juli 2021, tilføjede Channel Classification Enhancement. Før denne forbedring udførte kun den centrale enhed kanalklassificering. Hvis central og peripheral var langt fra hinanden, kunne de opleve forskellige RF-forhold, og kanalkortet kunne derfor indeholde kanaler, der var uegnede for peripheral-enheden. Det kunne føre til pakkekollisioner, afbrudte forbindelser og reduceret gennemstrømning.

Med forbedringen deltager både peripheral og central. Peripheral-enheden rapporterer sine RF-forhold og foreslår klassificeringer til den centrale enhed. Bluetooth 5.3 tilføjede desuden Periodic Advertising Enhancement med AdvDataInfo-feltet samt Connection Subrating. Samlet set gør det AFH mere retvisende i situationer, hvor de to enheder ikke oplever de samme interferensforhold.

Hvad betyder AFH for udviklere og produkter?

For udviklere er AFH ikke bare en teoretisk detalje. Den påvirker strømforbrug, gennemstrømning og forbindelsesstabilitet, og den har direkte betydning for, hvor høj sendeeffekt man lovligt og praktisk kan anvende. Fordi AFH-gennemsøgningen har højeste prioritet, bør man også overveje, hvordan den påvirker tidskritiske operationer i ens applikation.

I praksis bør man vælge kanalvurderingsmetode med omhu. RSSI kan give hurtige indikationer, mens PER ofte siger mere om den reelle pakkekvalitet. Uanset valget bør man følge med i, hvordan kanalkortet udvikler sig over tid, og sikre, at man ikke manuelt blokerer så mange kanaler, at man nærmer sig minimumskravet på tyve kanaler.

Endelig er det værd at huske, at AFH er en standardiseret mekanisme med rødder tilbage til Bluetooth 1.2 fra 2003, og at den fortsat udvikles – senest med Channel Classification Enhancement i Bluetooth 5.3. Det gør AFH til et af de mest langtidsholdbare værktøjer til at håndtere interferens i det stadigt mere crowdede 2,4 GHz-bånd.

Ofte stillede spørgsmål om adaptiv frekvensspringning

Hvordan fungerer adaptiv frekvensspringning?

Adaptiv frekvensspringning betyder, at kommunikerende enheder løbende overvåger deres omgivelser for interferens og hele tiden ændrer kanalkortet for at håndtere den. Bluetooth opdeler 2,4 GHz-båndet i kanaler og hopper hurtigt mellem dem, mens støjende og travle kanaler dynamisk spores og undgås, når der sendes pakker.

Hvad er forskellen mellem FHSS og AFH?

Frequency-hopping spread spectrum (FHSS) skifter hurtigt bærebølgen mellem frekvenskanaler efter en pseudo-tilfældig sekvens, som sender og modtager kender. AFH tilføjer tilpasning: den identificerer faste interferenskilder og udelukker de pågældende kanaler fra listen over tilgængelige kanaler, så hoppesekvensen remappes og undgår overfyldte frekvenser.

Hvorfor er AFH påkrævet ved højere Bluetooth-sendeeffekt?

AFH er et krav for at bruge TX-effekt over +10 dBm. Fordi højere effekt øger risikoen for interferens, sikrer adaptiv frekvensspringning, at enheder undgår optagede kanaler. Silicon Labs bemærker, at AFH er påkrævet for TX-effekt over +10 dBm med henvisning til Bluetooth-indstillinger for sendeeffekt.

Hvad er ulemperne ved frekvensspringning?

FHSS er afhængig af bærefrekvenser til at transmittere informationsbit, hvilket kan give kraftige bursty-fejl på grund af frekvensselektiv fading. Adaptive ordninger tilføjer overvågningsomkostninger, og kanalvurderingsmetoder som RSSI og PER adskiller sig i, hvor godt de sporer de aktuelle forhold. Derfor bør metoden vælges efter anvendelse.