L'AFH (adaptive frequency hopping) permet au Bluetooth et au BLE d'éviter les interférences en changeant rapidement de canal et en excluant les fréquences bruitées. Voici le principe, les spécifications, les API développeur et les cas d'usage réels.
Qu'est-ce que l'adaptive frequency hopping et pourquoi est-ce important ?
L'adaptive frequency hopping (AFH) est une technique d'étalement de spectre par saut de fréquence, ou FHSS, qui renforce la résistance aux interférences radio : plutôt que de rester sur une fréquence fixe, l'émetteur et le récepteur changent rapidement de canal porteuse et évitent ainsi ceux qui sont saturés. Concrètement, dans un réseau Bluetooth, les appareils connectés observent en permanence leur environnement radio et tiennent à jour une carte de canaux. Objectif : écarter les canaux trop bruités et ne garder que ceux qui offrent une transmission fiable.
Le principe même de l'AFH tient dans un plan de saut pseudo-aléatoire que l'émetteur et le récepteur partagent : les deux restent calés sur la même fréquence et suivent une séquence de sauts identique. Dans la pratique, à chaque événement de connexion, un canal est choisi de façon déterministe parmi ceux disponibles, via un algorithme de sélection de canal ; les appareils basculent alors sur ce canal et échangent leurs données sur une série de fréquences qui ne cesse de changer au sein de la bande des 2,4 GHz.
Pourquoi est-ce si important ? La bande ISM à 2,4 GHz est aujourd'hui saturée : Wi-Fi, Zigbee et une foule d'autres appareils s'y bousculent en permanence. Sans AFH, il suffirait qu'un point d'accès Wi-Fi occupe un canal pour que les paquets Bluetooth s'y perdent les uns après les autres. Grâce à l'AFH, le lien Bluetooth peut au contraire éviter ces zones bruyantes de manière dynamique, en temps réel. Résultat : un débit utile plus élevé, une latence réduite et une liaison globalement plus fiable, sans que l'utilisateur ait à intervenir manuellement.
Comment fonctionne l'AFH : carte de canaux, sauts et détection des interférences
En Bluetooth, c'est l'appareil primaire (le central, ou master) qui tient à jour une carte de canaux. Concrètement, chaque canal y est marqué comme utilisé ou inutilisé. Cette carte est ensuite transmise au second appareil au moyen d'une procédure de la couche liaison, puis appliquée des deux côtés. À partir de là, chaque appareil surveille la qualité des canaux avec ses propres méthodes, selon son implémentation : si un canal jusque-là fiable commence à se dégrader, la carte est actualisée ; à l'inverse, si un canal médiocre s'améliore, son statut est revu.
Pour évaluer la qualité d'un canal, deux méthodes reviennent le plus souvent : le RSSI (Received Signal Strength Indication), qui correspond à la puissance reçue, et le PER (Packet Error Rate), qui traduit le taux d'erreur sur les paquets. Chez Silicon Labs, le mécanisme est assez parlant : une tâche de fond vient balayer régulièrement l'ensemble des canaux et mesure la puissance reçue. Si celle-ci dépasse -71 dBm, le canal concerné est bloqué. Une fois le balayage terminé, une nouvelle carte de canaux est construite, puis transmise par le central aux esclaves du piconet.
Le FHSS classique, ou saut de fréquence, consiste à découper la communication en petits fragments qu'on envoie sur une séquence de fréquences qui se répète : l'émetteur et le récepteur partagent la même séquence de saut, souvent tirée d'un plan pseudo-aléatoire. L'AFH, lui, ajoute une couche d'adaptation. Plutôt que de suivre une séquence figée quoi qu'il arrive, le système écarte les canaux trop bruités et concentre les sauts sur ceux qui restent propres. On y gagne une meilleure utilisation du spectre et une liaison plus stable, y compris quand une source d'interférences fixe, comme un routeur Wi-Fi, vient perturber la bande.
AFH en Bluetooth classique vs Bluetooth Low Energy : canaux et spécifications
Le Bluetooth, lui, ne dispose que de 40 canaux pour couvrir la bande des 2,4 GHz. En Bluetooth Low Energy, seuls 37 d'entre eux sont réellement exploitables pour les échanges connectés, les trois restants servant à d'autres usages. Pour choisir sur quel canal émettre, le BLE s'appuie sur l'algorithme de sélection de canal n° 2 (Channel Selection Algorithm #2), défini noir sur blanc dans le Volume 6, Partie B, de la spécification cœur. C'est ce mécanisme qui régit la sélection des canaux pour les PDU BIS. Avant l'arrivée de l'AFH, il faut se souvenir que le Bluetooth classique fonctionnait tout autrement : il utilisait 79 des 83,5 canaux disponibles dans la bande 2,4 GHz, en sautant 1 600 fois par seconde d'une fréquence à l'autre.
Côté réglementation, la spécification Bluetooth ne laisse pas vraiment de marge : il faut au minimum vingt canaux pour que l'AFH puisse être activé, et ce même mécanisme devient obligatoire dès que l'on souhaite émettre avec une puissance TX supérieure à +10 dBm. Autrement dit, impossible de contourner l'AFH si l'on vise une portée un peu sérieuse. À cela s'ajoute une contrainte de gouvernance : la procédure de mise à jour de la carte des canaux, introduite avec la spécification Bluetooth 4.0, reste l'apanage du seul appareil central (le master), qui garde la main sur la décision. Pour y voir plus clair, voici une comparaison synthétique des paramètres clés.
| Paramètre | Bluetooth classique | Bluetooth Low Energy |
|---|---|---|
| Canaux dans la bande 2,4 GHz | 79 sur 83,5 (avant AFH) | 40 canaux, dont 37 canaux de données |
| Cadence de saut | 1 600 sauts/seconde | Selon l'événement de connexion |
| Sélection de canal | Séquence pseudo-aléatoire | Channel Selection Algorithm #2 |
| Minimum de canaux AFH | Au moins 20 canaux | Au moins 20 canaux |
| Puissance TX nécessitant l'AFH | Au-delà de +10 dBm | Au-delà de +10 dBm |
Ces chiffres montrent bien pourquoi l’AFH est devenu un élément incontournable de la coexistence radio. En BLE, avec seulement 37 canaux de données, savoir écarter vite quelques canaux bruités peut faire la différence entre une liaison audio qui tient la route et des coupures à répétition. Le Bluetooth SIG le rappelle d’ailleurs régulièrement dans ses publications, et ses équipes en charge des relations avec les développeurs, comme Martin Woolley, insistent sur ce point : la robustesse du Bluetooth en environnement dense repose avant tout sur la qualité de la classification des canaux.
Implémenter l'AFH : intervalles de balayage, blocage et API développeur
Chez Silicon Labs, l'AFH procède à un balayage des canaux à chaque afh_scan_interval, dont la valeur par défaut est fixée à 1 seconde. Attention, l'unité de cet intervalle est de 10 ms — autrement dit, la valeur configurée correspond à des multiples de 10 ms. Un balayage complet des 40 canaux ne prend qu'une dizaine de millisecondes environ, pour une consommation énergétique supplémentaire de l'ordre de 240 uW. Côté détection : dès qu'une puissance mesurée dépasse -71 dBm, le canal concerné est bloqué pour au moins 8 intervalles de balayage. Et pour le débloquer ? Il faut compter sur 8 mesures consécutives exemptes d'interférences.
Pour modifier cet intervalle, on définit AFH_SCAN_INTERVAL_CONFIG_KEY 7, on fixe la valeur afh_scan_interval, puis on appelle sl_bt_system_linklayer_configure ou gecko_cmd_system_linklayer_configure. Pour activer l'AFH dans le SDK Silicon Labs, il faut installer le composant logiciel AFH ; sl_bt_init_afh() est appelé automatiquement dans sl_bt_init() par le générateur de code, ou bien on appelle gecko_init_afh() après gecko_init(&config) dans les SDK plus anciens.
| Étape | Action | API / clé |
|---|---|---|
| 1 | Installer le composant AFH | Composant logiciel SDK |
| 2 | Initialiser l'AFH | sl_bt_init_afh() ou gecko_init_afh() |
| 3 | Définir l'intervalle de balayage | AFH_SCAN_INTERVAL_CONFIG_KEY 7 |
| 4 | Appliquer la configuration | sl_bt_system_linklayer_configure |
Un point d'attention opérationnel : le balayage AFH a la plus haute priorité et peut bloquer d'autres opérations si plusieurs tâches surviennent dans une fenêtre de 10 ms. Les développeurs qui travaillent sur les nRF5340 de Nordic Semiconductor ou sur les puces EFR de Silicon Labs doivent donc calibrer l'intervalle de balayage en fonction de leur profil de trafic, notamment pour l'audio où les paquets sont émis toutes les 15 ms à 300 kbit/s.
Avantages, limites et coexistence avec le Wi-Fi
Comparons d'abord l'AFH à un blocage de canaux non adaptatif. Ce dernier exige de désactiver manuellement certains canaux, ce qui est rigide et inadapté aux environnements changeants. L'AFH, lui, bloque dynamiquement les canaux de mauvaise qualité et réintègre ceux qui redeviennent propres. Les bénéfices sont tangibles : meilleure résistance aux interférences, sécurité renforcée grâce aux changements pseudo-aléatoires de fréquence, utilisation optimisée du spectre et allocation dynamique des ressources radio.
| Critère | AFH | Blocage non adaptatif |
|---|---|---|
| Gestion des canaux | Dynamique et automatique | Manuelle et figée |
| Réaction aux interférences | Rapide, par carte de canaux | Lente, nécessite une reconfiguration |
| Réintégration de canal | Possible après mesures propres | Peu praticable |
| Complexité | Élevée côté firmware | Faible |
Les limites existent toutefois. L'AFH n'est pas actif pendant les phases de connexion et de découverte d'appareils ; tous les appareils du piconet doivent être compatibles AFH ; la réintégration d'un canal est délicate dans les environnements très dynamiques ; et le balayage AFH, prioritaire, peut retarder d'autres opérations. Le FHSS présente par ailleurs un compromis classique : un débit inférieur à certaines méthodes à large bande. La recherche eAFH, menée par Valentin Poirot et Olaf Landsiedel (université de Kiel et Chalmers, arXiv:2112.03046v1, décembre 2021), propose une exploration informée qui atteint 98 à 99,5 % de fiabilité au niveau liaison avec 1 % de surcoût de contrôle et 40 % de diversité de canaux en plus par rapport aux approches existantes.
AFH dans l'audio LE, l'IoT et les futurs systèmes sans fil
L'AFH est-il pertinent pour l'audio LE ? Selon les discussions de la communauté Nordic DevZone, l'AFH est un terme historiquement associé au mode BR/EDR. Pour la diffusion audio LE, la spécification cœur décrit la classification des canaux et l'algorithme de sélection de canal n° 2 au niveau de la couche liaison LE, mais la classification des canaux côté hôte n'était pas prise en charge dans la pile Bluetooth Zephyr en amont à l'époque de ces échanges. Les implémentations évoluent, et il convient de vérifier l'état de sa pile avant de concevoir un produit.
Dans l'IoT, l'enjeu est massif : plus de 4 milliards d'appareils Bluetooth ont été produits en 2020, selon le Bluetooth SIG. Des acteurs comme Zebra (guides produits TC57 et PS30), Honeywell SPS, Texas Instruments (application note swra487) et CDEBYTE documentent des déploiements où la robustesse radio conditionne la fiabilité des lecteurs de codes-barres, des capteurs industriels et des passerelles. L'AFH y joue un rôle direct en réduisant les pertes de paquets dans les entrepôts saturés de Wi-Fi.
La trajectoire technique est claire : l'AFH reste une brique fondamentale de la coexistence radio, et des travaux comme eAFH montrent que la recherche continue d'optimiser l'exclusion et la réintégration des canaux. Pour les équipes produit, la bonne pratique consiste à activer l'AFH par défaut, à surveiller les métriques RSSI et PER, et à ajuster l'intervalle de balayage selon la densité d'interférences constatée sur le terrain.
Questions fréquentes sur l'adaptive frequency hopping
Qu'est-ce que l'adaptive frequency hopping (AFH) ?
L'AFH est une technique d'étalement de spectre qui améliore la résistance aux interférences radio en changeant rapidement la fréquence porteuse et en évitant les canaux saturés. En Bluetooth, les appareils connectés surveillent en continu leur environnement et mettent à jour une carte de canaux afin d'exclure les canaux bruités et de n'utiliser que les canaux jugés fiables.
Comment fonctionne l'AFH en Bluetooth Low Energy ?
À chaque événement de connexion, les appareils connectés sélectionnent un canal via un algorithme de sélection de canal puis basculent dessus. L'appareil primaire maintient une carte de canaux classant chaque canal comme utilisé ou inutilisé, la partage avec le second appareil et la met à jour selon les interférences, ce qui répartit la communication sur toute la bande des 2,4 GHz.
L'audio LE prend-il en charge l'adaptive frequency hopping ?
Selon les discussions Nordic DevZone, l'AFH est un terme utilisé dans le contexte du mode BR/EDR. Pour la diffusion audio LE, la spécification cœur décrit la classification des canaux et l'algorithme de sélection de canal n° 2 sur la couche liaison LE, mais la classification des canaux côté hôte n'était pas prise en charge dans la pile Bluetooth Zephyr en amont à cette période.
Quelle est la différence entre l'AFH et le saut de fréquence fixe ?
Le saut de fréquence fixe utilise une séquence de canaux prédéfinie, tandis que l'AFH adapte dynamiquement sa séquence de saut à l'environnement changeant. L'AFH identifie les sources d'interférences fixes et les exclut de la liste des canaux disponibles, alors que le saut non adaptatif ne peut pas éviter les conflits avec les autres technologies sans fil comme le Wi-Fi.


