L'Adaptive Frequency Hopping (AFH) è la tecnica con cui i dispositivi Bluetooth monitorano l'ambiente radio e modificano dinamicamente la mappa dei canali per evitare le interferenze. In questa guida vediamo come funziona, come si differenzia dal FHSS e come viene implementato nelle reti Bluetooth LE.

Che cos'è l'Adaptive Frequency Hopping (AFH)?

L'Adaptive Frequency Hopping (AFH) è una tecnica che serve a evitare le interferenze e a ottimizzare l'uso dello spettro nei sistemi di comunicazione wireless; la si associa storicamente al Bluetooth. In pratica, i dispositivi che comunicano tengono sotto controllo l'ambiente circostante in modo continuo, alla ricerca di interferenze, e aggiornano di conseguenza la mappa dei canali per farvi fronte. Si tratta di una forma evoluta di frequency-hopping spread spectrum (FHSS): la sequenza di salto, infatti, non è più soltanto pseudo-casuale, ma viene adattata alle condizioni reali dello spettro.

Il Bluetooth non usa un'unica frequenza, ma divide la banda in tanti canali più piccoli — 40, ad esempio, nel caso del Bluetooth Low Energy — e durante la trasmissione dei pacchetti salta continuamente dall'uno all'altro. In questo modo i canali più rumorosi o congestionati vengono individuati dinamicamente e, di fatto, evitati. Il risultato? Una comunicazione più robusta, con meno collisioni e una connessione più stabile, soprattutto dove il traffico a 2,4 GHz è intenso: reti Wi-Fi, altri dispositivi, insomma tutto ciò che affolla quella banda.

Come funziona l'AFH: mappa dei canali e selezione del canale

Durante ogni connection event, i dispositivi connessi si scambiano pacchetti a intervalli di tempo definiti con precisione. All'inizio di ciascun evento avviene il salto di frequenza: il canale radio viene scelto in modo deterministico tra quelli disponibili, tramite uno specifico algoritmo di selezione del canale. Man mano che si susseguono i connection event, la comunicazione passa attraverso una serie di canali che cambiano di continuo, distribuiti lungo tutta la banda dei 2,4 GHz: in questo modo la probabilità di collisione si riduce parecchio.

Il dispositivo primario tiene traccia di una channel map, ovvero una mappa che indica per ciascun canale se è utilizzabile oppure no, e la condivide con il secondo dispositivo attraverso una procedura del link layer. La qualità dei canali viene monitorata con tecniche che dipendono dalla singola implementazione, e la mappa si aggiorna ogni volta che un canale peggiora o torna libero. Ed è esattamente qui che sta il lato adattivo dell'AFH: la sequenza di salto non resta fissa, ma si adegua man mano che le condizioni dell'ambiente radio cambiano.

L'aggiornamento della channel map rientra nella specifica Bluetooth 4.0 e, cosa importante, può essere avviato esclusivamente dal dispositivo centrale: gli slave non hanno alcun modo di dare il via a questa procedura. Un caso tipico? Uno smartphone che ricopre il ruolo di centrale può disattivare i canali che si sovrappongono a quelli Wi-Fi che sta utilizzando in quel momento, e un dispositivo EFR si limita ad accettare la mappa così com'è. La situazione si ribalta quando è l'EFR a fare da centrale: in quel caso tutti i canali vengono abilitati di default, a meno che non si scelga di bloccarli manualmente.

L'AFH nel Bluetooth LE: 40 canali e 37 canali dati

Il Bluetooth LE suddivide la banda ISM a 2,4 GHz in 40 canali. Di questi, 37 sono canali generici, ovvero quelli effettivamente disponibili durante una comunicazione connessa. Come sottolinea Silicon Labs, lo standard Bluetooth permette ai dispositivi che comunicano di mettersi d'accordo su quali canali utilizzare tra i 37 canali dati disponibili, escludendo quelli maggiormente disturbati. È proprio questa flessibilità a rendere l'AFH particolarmente efficace nelle reti BLE dense.

C'è poi una differenza importante da tenere presente rispetto al Bluetooth classico. Prima dell'arrivo dell'AFH, i dispositivi Bluetooth utilizzavano 79 degli 83,5 canali disponibili nella banda dei 2,4 GHz, saltando da un canale all'altro in modo casuale ben 1600 volte al secondo: una strategia che, suo malgrado, finiva per generare collisioni occasionali con altri dispositivi wireless. Per risolvere proprio questo problema di convivenza nello spettro, il Bluetooth SIG ha introdotto l'AFH, inserendolo nella specifica Bluetooth versione 1.2, adottata nel 2003.

Metodi di valutazione dei canali: RSSI contro PER

La specifica Bluetooth non dice nulla su come individuare i canali degradati: questa fase, chiamata Channel Assessment, è lasciata libera all'implementazione. I due metodi più diffusi sono l'RSSI (Received Signal Strength Indication) e il PER (Packet Error Rate). Entrambi servono a capire quali canali si possono occupare, ma non funzionano allo stesso modo nel tenere traccia delle condizioni correnti. L'RSSI misura la potenza del segnale ricevuto e reagisce in fretta ai cambiamenti; il PER invece si basa sulla percentuale di pacchetti persi e racconta meglio come sta andando davvero la comunicazione, però i suoi tempi di reazione sono più lenti.

La specifica Bluetooth, in ogni caso, impone di mantenere almeno venti canali quando si aggiorna la mappa. È una protezione sensata: senza questo limite, un ambiente molto congestionato potrebbe portare a scartare troppe frequenze e ridurre drasticamente la capacità di trovare canali liberi su cui saltare. Alla fine, la scelta tra RSSI e PER — così come la soglia oltre la quale intervenire — resta un compromesso delicato: da un lato serve reattività nel rispondere ai disturbi, dall'altro bisogna contenere l'overhead del monitoraggio e non sacrificare la stabilità della connessione.

Parametri e dettagli di implementazione dell'AFH

Nelle implementazioni di Silicon Labs, diciamo che l'AFH si può attivare tranquillamente installando l'apposito componente software, e questo vale a partire dall'SDK Bluetooth v3.x. Una volta fatto, il code generator pensa a tutto il resto: la funzione sl_bt_init_afh() viene infatti richiamata in automatico dentro sl_bt_init(). Il bello è che, se l'AFH è abilitato e c'è almeno un advertiser che manda advertising esteso oppure almeno una connessione attiva, lo stack si mette a girare in background con un task periodico che va a fare una scansione di tutti i canali ogni afh_scan_interval, misurando ogni volta la potenza ricevuta. E se su un canale questa potenza supera la soglia di -71 dBm? Semplice: quel canale viene bloccato per un minimo di 8 afh_scan_intervals. Per sbloccarlo però non basta poco, servono 8 misurazioni consecutive in cui non si rileva alcuna interferenza.

Dopo ogni scansione viene creata una nuova channel map; se è cambiata, il centrale la invia a tutti gli slave. afh_scan_interval ha un valore predefinito di 1 secondo; analizzare 40 canali richiede circa 10 ms e comporta un consumo energetico aggiuntivo di circa 240 uW. La scansione AFH ha la priorità più alta tra le operazioni Bluetooth. L'unità di afh_scan_interval è 10 ms e può essere modificata tramite sl_bt_system_linklayer_configure con AFH_SCAN_INTERVAL_CONFIG_KEY. La scansione dei canali avviene dopo un'operazione radio; con un intervallo di 100 ms e un advertising interval di 80 ms, la scansione si verifica ogni secondo annuncio, circa ogni 160 ms. I canali possono anche essere bloccati manualmente.

Un aspetto spesso trascurato è il legame con la potenza di trasmissione: l'AFH è un requisito per usare una TX power superiore a +10 dBm. Gli sviluppatori Nordic hanno osservato che +20 dBm con BLE è complicato per via delle normative, e un requisito di un cliente faceva riferimento alla modalità adattiva ETSI 300 328 per +20 dBm EIRP con LE channel selection algorithm #2.

Tabella riassuntiva dei parametri AFH

Per orientarsi tra i valori appena visti, la tabella seguente riassume i parametri principali dell'implementazione AFH descritta da Silicon Labs.

ParametroValoreNota
Canali BLE totali40Banda ISM 2,4 GHz
Canali dati disponibili37Usati nella comunicazione connessa
afh_scan_interval predefinito1 secondoUnità di 10 ms
Soglia di blocco-71 dBmPotenza misurata superiore al limite
Durata minima del blocco8 intervalli di scansioneSblocco dopo 8 misurazioni pulite
Tempo di scansione 40 canalicirca 10 msConsumo aggiuntivo ~240 uW
TX power che richiede AFHoltre +10 dBmRequisito normativo e di specifica

La tabella mostra come l'AFH introduca un overhead contenuto ma non nullo: la scansione periodica costa energia e tempo radio, ma in cambio evita le collisioni che degraderebbero throughput e stabilità. Il blocco minimo di 8 intervalli e lo sblocco dopo 8 misurazioni consecutive pulite servono a evitare oscillazioni troppo rapide della mappa, che causerebbero instabilità nella connessione.

AFH e coesistenza con il Wi-Fi nella banda ISM a 2,4 GHz

La banda ISM dei 2,4 GHz è condivisa da Bluetooth, Wi-Fi, Zigbee e molti altri dispositivi. Il Wi-Fi occupa porzioni relativamente larghe dello spettro, per cui i canali Bluetooth che vi si sovrappongono tendono a essere costantemente disturbati. L'AFH consente a un dispositivo centrale, come uno smartphone, di disabilitare proprio quei canali che si sovrappongono ai canali Wi-Fi attivi, migliorando sensibilmente la qualità della connessione Bluetooth.

Questa capacità di adattamento è il motivo per cui l'AFH è diventato uno standard di fatto negli ambienti domestici e uffici densi. In assenza di AFH, il salto pseudo-casuale su tutti i canali porterebbe a un numero elevato di pacchetti persi e a riconnessioni frequenti. Con l'AFH, la mappa dei canali riflette le condizioni reali dello spettro e la comunicazione resta stabile anche in presenza di forti interferenze.

Bluetooth 5.3 e il miglioramento della Channel Classification

La specifica Bluetooth Core v5.3, rilasciata a metà luglio 2021, ha introdotto il Channel Classification Enhancement. Prima di questa versione, solo il dispositivo centrale eseguiva la classificazione dei canali; se centrale e periferica erano molto distanti tra loro, potevano trovarsi in condizioni RF diverse, e la mappa dei canali poteva includere canali inadatti alla periferica, con il rischio di collisioni di pacchetti, cadute di connessione e throughput ridotto.

Con il miglioramento introdotto nella 5.3, sia la periferica sia il centrale partecipano alla classificazione: la periferica segnala le proprie condizioni RF e suggerisce le classificazioni al centrale. La versione 5.3 ha aggiunto anche il Periodic Advertising Enhancement (campo AdvDataInfo) e il Connection Subrating. Nel complesso, l'evoluzione dell'AFH mostra come il Bluetooth sia passato da un semplice salto di frequenza pseudo-casuale a un sistema che osserva e adatta continuamente il proprio comportamento allo spettro disponibile.

Quali sono i limiti e gli svantaggi del frequency hopping?

Il frequency hopping non è privo di compromessi. L'FHSS si basa sulle frequenze portanti per trasmettere i bit di informazione, il che può portare a forti errori a raffica dovuti al fading selettivo in frequenza. Gli schemi adattivi aggiungono un overhead di monitoraggio: la scansione periodica dei canali consuma energia e tempo radio, come visto nel caso dell'implementazione Silicon Labs. Inoltre, i metodi di valutazione dei canali come RSSI e PER differiscono nella capacità di seguire le condizioni correnti, e una soglia mal calibrata può portare a bloccare canali ancora utilizzabili o a mantenere canali disturbati.

Nonostante questi limiti, l'AFH resta la soluzione più efficace per far convivere il Bluetooth con altre tecnologie nella banda dei 2,4 GHz. La chiave è bilanciare frequenza di scansione, soglie di intervento e numero minimo di canali disponibili, in modo da mantenere la connessione stabile senza sacrificare troppo l'efficienza energetica.

Domande frequenti sull'Adaptive Frequency Hopping

Di seguito le risposte alle domande più comuni su come funziona l'AFH, sulla differenza rispetto al FHSS e sui requisiti di potenza di trasmissione.

<h3>Come funziona l'Adaptive Frequency Hopping?</h3><p>L'Adaptive Frequency Hopping (AFH) fa sì che i dispositivi che comunicano monitorino di continuo l'ambiente alla ricerca di interferenze e modifichino continuamente la mappa dei canali per farvi fronte. Il Bluetooth divide la banda dei 2,4 GHz in canali e salta rapidamente tra essi, tracciando ed evitando dinamicamente i canali rumorosi o affollati durante l'invio dei pacchetti.</p>

<h3>Qual è la differenza tra FHSS e AFH?</h3><p>Il frequency hopping spread spectrum (FHSS) commuta rapidamente la portante tra canali di frequenza usando una sequenza pseudo-casuale nota a trasmettitore e ricevitore. L'AFH aggiunge l'adattamento: identifica le fonti di interferenza fisse ed esclude quei canali dall'elenco disponibile, rimappando la sequenza di salto per evitare le frequenze più congestionate.</p>

<h3>Perché l'AFH è richiesto per potenze di trasmissione Bluetooth più elevate?</h3><p>L'AFH è un requisito per usare una TX power superiore a +10 dBm. Poiché una potenza maggiore aumenta il rischio di interferenze, l'adaptive frequency hopping garantisce che i dispositivi evitino i canali occupati. Silicon Labs sottolinea che l'AFH è necessario per TX power oltre +10 dBm, in riferimento alle impostazioni di potenza Bluetooth.</p>

<h3>Quali sono gli svantaggi del frequency hopping?</h3><p>L'FHSS si basa sulle frequenze portanti per trasmettere i bit di informazione, quindi può causare forti errori a raffica dovuti al fading selettivo in frequenza. Gli schemi adattivi aggiungono un overhead di monitoraggio, e metodi di valutazione come RSSI e PER differiscono nel modo in cui seguono le condizioni correnti dello spettro.</p>

Domande frequenti

Come funziona l'Adaptive Frequency Hopping?

L'Adaptive Frequency Hopping (AFH) fa sì che i dispositivi che comunicano monitorino di continuo l'ambiente alla ricerca di interferenze e modifichino continuamente la mappa dei canali per farvi fronte. Il Bluetooth divide la banda dei 2,4 GHz in canali e salta rapidamente tra essi, tracciando ed evitando dinamicamente i canali rumorosi o affollati durante l'invio dei pacchetti.

Qual è la differenza tra FHSS e AFH?

Il frequency hopping spread spectrum (FHSS) commuta rapidamente la portante tra canali di frequenza usando una sequenza pseudo-casuale nota a trasmettitore e ricevitore. L'AFH aggiunge l'adattamento: identifica le fonti di interferenza fisse ed esclude quei canali dall'elenco disponibile, rimappando la sequenza di salto per evitare le frequenze più congestionate.

Perché l'AFH è richiesto per potenze di trasmissione Bluetooth più elevate?

L'AFH è un requisito per usare una TX power superiore a +10 dBm. Poiché una potenza maggiore aumenta il rischio di interferenze, l'adaptive frequency hopping garantisce che i dispositivi evitino i canali occupati. Silicon Labs sottolinea che l'AFH è necessario per TX power oltre +10 dBm, in riferimento alle impostazioni di potenza Bluetooth.

Quali sono gli svantaggi del frequency hopping?

L'FHSS si basa sulle frequenze portanti per trasmettere i bit di informazione, quindi può causare forti errori a raffica dovuti al fading selettivo in frequenza. Gli schemi adattivi aggiungono un overhead di monitoraggio, e metodi di valutazione come RSSI e PER differiscono nel modo in cui seguono le condizioni correnti dello spettro.