Entenda o que é adaptive frequency hopping, como o AFH Bluetooth evita interferências no Wi-Fi e como o channel map do Bluetooth Low Energy é atualizado na prática.

O que é Adaptive Frequency Hopping e por que isso importa?

O adaptive frequency hopping, ou AFH, é uma técnica de espalhamento espectral que fica trocando de frequência o tempo todo e deixa de fora os canais mais ruidosos, tudo isso pra deixar a transmissão mais resistente a interferências de radiofrequência. A ideia é simples: em vez de ficar preso num canal só, o rádio vai saltando entre frequências seguindo uma sequência que transmissor e receptor conhecem em comum.

Na prática, isso importa porque a faixa de 2,4 GHz é compartilhada por Wi-Fi, micro-ondas, Zigbee e uma porção de outros dispositivos. O AFH permite que um enlace Bluetooth conviva melhor com esse ambiente, mantendo a comunicação nos canais considerados bons e abandonando temporariamente aqueles que estão degradados. É justamente essa adaptação dinâmica que separa o AFH de um salto de frequência fixo — este último não dá conta de evitar conflitos com outras tecnologias sem fio.

Como o AFH funciona: channel maps, hopping e detecção de interferência

O AFH é uma técnica pseudoaleatória de alocação de frequências. Na prática, transmissor e receptor precisam se manter sincronizados e seguir uma mesma sequência de saltos. No Bluetooth, funciona assim: a cada connection event, um algoritmo de seleção de canal escolhe de forma determinística um canal entre os disponíveis; os dispositivos então mudam para esse canal e trocam dados ao longo de uma série de frequências que varia o tempo todo dentro da faixa de 2,4 GHz.

O dispositivo primário é quem mantém um channel map, classificando cada canal como em uso ou fora de uso — e esse mapa chega ao segundo dispositivo por meio de um procedimento da link layer. A partir daí, cada dispositivo usa técnicas próprias da implementação para acompanhar a qualidade dos canais: se um canal que vinha funcionando bem piora, o mapa é atualizado; se um canal ruim melhora, seu status também muda.

Entre as formas mais usadas para avaliar a qualidade de um canal estão o RSSI (Received Signal Strength Indication) e o PER (Packet Error Rate). Já trabalhos como o eAFH, de Valentin Poirot e Olaf Landsiedel (Kiel University e Chalmers University of Technology, arXiv:2112.03046v1, 06 de dezembro de 2021), vão além: eles propõem uma exploração informada para excluir e reincluir canais, ou seja, usam medições anteriores para estimar quais frequências têm mais chance de se beneficiar ao voltar para o mapa.

AFH no Bluetooth clássico vs Bluetooth Low Energy: canais e especificações

A arquitetura diferente entre o Bluetooth clássico e o Bluetooth Low Energy (BLE) fica evidente já na quantidade de canais e na maneira como eles são selecionados. No caso do BLE, a faixa de 2,4 GHz é dividida em 40 canais, dos quais 37 são de uso geral e ficam disponíveis para a comunicação conectada. O Bluetooth clássico, antes do AFH, operava de outro jeito: usava 79 dos 83,5 canais da faixa de 2,4 GHz e alternava entre eles 1.600 vezes por segundo.

No BLE, o Channel Selection Algorithm #2 é quem define as PDUs BIS, seguindo o que está descrito no Vol. 6 Part B da especificação core. Vale lembrar também que o AFH é obrigatório quando se quer transmitir com potência acima de +10 dBm — e a especificação Bluetooth não deixa barato: exige no mínimo vinte canais disponíveis sempre que o AFH estiver ativo.

Vale registrar a escala disso: em 2020, foram produzidos mais de 4 bilhões de dispositivos Bluetooth e BLE, segundo dados do setor. Já no áudio Bluetooth, o tráfego chega a cerca de 300 kbit/s, com transmissão de dados a cada 15 ms — o que ajuda bastante a entender por que a qualidade do canal é tão sensível a interferências.

ParâmetroBluetooth clássico pré-AFHBluetooth Low Energy
Canais na faixa de 2,4 GHz79 de 83,540 no total, 37 de dados
Saltos por segundo1.600Definido pelo connection event
Mínimo de canais com AFHAo menos 20Ao menos 20
Seleção de canalSequência de saltosChannel Selection Algorithm #2

Implementando AFH: intervalos de varredura, bloqueio e APIs para desenvolvedores

Na prática de quem desenvolve, implementar o AFH geralmente significa rodar uma varredura periódica em segundo plano, que fica medindo a potência recebida em cada canal. Na Silicon Labs, por exemplo, cada varredura passa pelos 40 canais em cerca de 10 ms e acrescenta algo em torno de 240 uW ao consumo. Se a potência medida passar de -71 dBm, aquele canal é bloqueado por no mínimo 8 afh_scan_intervals — e, para liberá-lo de novo, são necessárias 8 medições consecutivas sem sinal de interferência.

O intervalo entre varreduras do AFH (afh_scan_interval) é medido em unidades de 10 ms e, por padrão, fica em 1 segundo. Se você precisar mexer nesse valor, dá para fazer isso por meio da chave de configuração AFH_SCAN_INTERVAL_CONFIG_KEY 7, usando as chamadas sl_bt_system_linklayer_configure ou gecko_cmd_system_linklayer_configure. Já o procedimento de atualização do channel map é definido desde a especificação Bluetooth 4.0 — e vale lembrar que apenas o dispositivo central (ou master, em redes mais antigas) tem permissão para iniciá-lo.

Para habilitar o AFH no SDK da Silicon Labs, instala-se o componente de software AFH; a função sl_bt_init_afh() é chamada automaticamente dentro de sl_bt_init() pelo code generator, ou, em SDKs mais antigos, chama-se gecko_init_afh() após gecko_init(&config). A Zebra documenta referências de produto como TC57 e PS30, e a Texas Instruments mantém o material swra487 sobre o tema.

ItemValor padrão / regra
afh_scan_interval1 segundo (unidade de 10 ms)
Tempo de varredura dos 40 canaisCerca de 10 ms
Consumo adicionalAproximadamente 240 uW
Limite de potência para bloquearAcima de -71 dBm
Duração do bloqueioPelo menos 8 afh_scan_intervals
Desbloqueio8 medições consecutivas sem interferência

Benefícios, limitações e coexistência com Wi-Fi

Comparado ao bloqueio de canal não adaptativo, que exige desabilitar canais manualmente, o AFH bloqueia dinamicamente canais de baixa qualidade. Entre os benefícios estão maior resistência a interferências, segurança reforçada pelas mudanças pseudoaleatórias de frequência, melhor uso do espectro e alocação dinâmica de frequências.

As limitações também existem. Não há AFH durante as fases de conexão e descoberta de dispositivos; todos os dispositivos do piconet precisam ser compatíveis com AFH; a reinclusão de canais é difícil em ambientes dinâmicos; e a varredura de AFH tem prioridade máxima, podendo bloquear outras operações se várias ocorrerem dentro de 10 ms. No caso do FHSS clássico, há também o trade-off de throughput menor do que alguns métodos de banda larga.

Em pesquisa, o eAFH reporta 98-99,5% de confiabilidade na link layer com interferência dinâmica de Wi-Fi, 1% de overhead de controle e 40% mais diversidade de canais do que abordagens state-of-the-art. Esses números mostram que a convivência com Wi-Fi é um dos principais campos de teste para qualquer esquema adaptativo de hopping.

AFH em LE Audio, IoT e sistemas sem fio futuros

No contexto de LE Audio, o AFH é um termo usado no modo de suporte BR/EDR. Para broadcast de LE Audio, a especificação core descreve a classificação de canais e o Channel Selection Algorithm #2 na link layer do LE, mas a classificação de canais no host não era suportada no stack Bluetooth upstream do Zephyr naquele momento, conforme discussão no Nordic DevZone.

Em IoT, o AFH ajuda a manter enlaces estáveis em ambientes densos, como prédios comerciais, fábricas e residências com muitos dispositivos conectados. Chips como o nRF5340, da Nordic Semiconductor, e os dispositivos EFR da Silicon Labs, com Bluetooth SDK v2.9, v2.10, v2.11 e v3.x, trazem APIs específicas para classificação de canais de dados, como sl_bt_gap_set_data_channel_classification.

A evolução passa por esquemas como o eAFH, que combinam medições históricas e exploração informada para decidir quando reincluir um canal. Para quem projeta produtos conectados, entender o channel map, o RSSI e o PER deixou de ser detalhe de rádio e passou a ser parte do desempenho percebido pelo usuário final.

Como o AFH se compara ao salto de frequência fixo?

O salto de frequência fixo usa uma sequência fixa de canais, enquanto o AFH adapta dinamicamente sua sequência de saltos ao ambiente em mudança. O AFH identifica fontes fixas de interferência e as exclui da lista de canais disponíveis, algo que o hopping não adaptativo não consegue fazer.

Essa diferença é especialmente relevante em escritórios e residências, onde redes Wi-Fi operam de forma contínua em partes da faixa de 2,4 GHz. Ao excluir canais ocupados, o enlace Bluetooth reduz retransmissões e mantém a taxa de entrega de pacotes mais estável.

Na prática, a escolha entre abordagens não é binária: o AFH opera sobre uma base de hopping e adiciona a camada de classificação de canais. É essa combinação que permite ao Bluetooth e ao BLE coexistirem com outras tecnologias sem fio sem exigir coordenação central entre redes diferentes.

Perguntas frequentes sobre Adaptive Frequency Hopping

Reunimos abaixo as dúvidas mais comuns de leitores e desenvolvedores sobre AFH no Bluetooth e no BLE. As respostas resumem os pontos técnicos discutidos ao longo do artigo e podem ser usadas como consulta rápida.

Se você trabalha com firmware, vale revisar também as APIs do seu SDK e o comportamento do channel map em cenários reais de interferência antes de definir parâmetros como o afh_scan_interval.

Perguntas frequentes sobre Adaptive Frequency Hopping

Como o adaptive frequency hopping funciona no Bluetooth Low Energy?

A cada connection event, os dispositivos conectados selecionam um canal com um algoritmo de seleção e saltam para ele. O dispositivo primário mantém um channel map que classifica os canais como usados ou não usados, compartilha esse mapa com o segundo dispositivo e o atualiza conforme a interferência muda, espalhando a comunicação pela faixa de 2,4 GHz.

O LE Audio do Bluetooth suporta adaptive frequency hopping?

Segundo discussão no Nordic DevZone, o AFH é um termo usado no contexto do modo de suporte BR/EDR. Para broadcast de LE Audio, a especificação core descreve a classificação de canais e o Channel Selection Algorithm #2 na link layer do LE, mas a classificação de canais no host não era suportada no stack Bluetooth upstream do Zephyr naquele momento.

Qual é a diferença entre AFH e salto de frequência fixo?

O salto de frequência fixo usa uma sequência fixa de canais, enquanto o AFH adapta dinamicamente sua sequência de saltos ao ambiente em mudança. O AFH identifica fontes fixas de interferência e as exclui da lista de canais disponíveis, enquanto o hopping não adaptativo não consegue evitar conflitos com outras tecnologias sem fio.

Quais parâmetros práticos controlam o AFH em um SDK?

Em implementações como as da Silicon Labs, o afh_scan_interval tem unidade de 10 ms e padrão de 1 segundo. Cada varredura cobre os 40 canais em cerca de 10 ms e consome aproximadamente 240 uW adicionais. Se a potência medida ultrapassar -71 dBm, o canal é bloqueado por pelo menos 8 afh_scan_intervals; para desbloquear, são necessárias 8 medições consecutivas sem interferência.