El salto de frecuencia adaptativo (AFH) permite que los dispositivos Bluetooth detecten canales ocupados o ruidosos y rearmen su mapa de canales en tiempo real. Aquí te explico cómo funciona, en qué se diferencia del FHSS clásico y cómo se implementa en Bluetooth LE.

¿Qué es el Adaptive Frequency Hopping (AFH)?

El adaptive frequency hopping, o AFH, es una técnica que sirve para evitar interferencias y aprovechar mejor el espectro en los sistemas inalámbricos, y que casi todos relacionamos con el Bluetooth. Básicamente, los dispositivos que se están comunicando revisan su entorno todo el tiempo para detectar interferencias e ir ajustando el mapa de canales para esquivarlas. Es una variante del frequency-hopping spread spectrum (FHSS), solo que con un componente de adaptación que el FHSS tradicional no maneja.

La diferencia principal radica en que el FHSS clásico va saltando entre frecuencias siguiendo una secuencia pseudoaleatoria que tanto el transmisor como el receptor conocen, sin importar si el canal está ocupado o no. En cambio, el AFH se encarga de detectar las fuentes de interferencia fijas —por ejemplo, un router Wi-Fi o un microondas— y las excluye de la lista de canales disponibles, rearmando la secuencia de saltos para esquivar las frecuencias que están congestionadas. Ahí está justamente la esencia del AFH en Bluetooth: no se trata solo de saltar, sino de saltar con inteligencia.

¿Cómo funciona el AFH? Mapa de canales y selección de canal

En cada evento de conexión, los dispositivos conectados intercambian paquetes a intervalos perfectamente sincronizados. Justo al inicio de cada evento se da el salto de frecuencia: el canal de radio se elige de manera determinista entre los canales disponibles, siguiendo un algoritmo de selección de canal. Así, a lo largo de varios eventos de conexión la comunicación va usando una serie de canales que cambia constantemente y que se reparte por toda la banda de 2.4 GHz, lo cual reduce la probabilidad de colisión con otras redes.

El dispositivo principal se encarga de mantener un mapa de canales, en el que va clasificando cada canal como usado o no usado, y luego lo comparte con el segundo dispositivo a través de un procedimiento de la capa de enlace. Por su parte, cada dispositivo monitorea la calidad de los canales con técnicas propias de su implementación, y el mapa se va actualizando cada vez que un canal se degrada o se recupera. Ahí está justo lo adaptativo: el sistema no se queda con una configuración fija, sino que reacciona a lo que pasa en el aire.

Pongamos un caso concreto: si tu smartphone es el dispositivo central, puede desactivar los canales que se encimen con los de su Wi-Fi, y el dispositivo EFR simplemente lo acepta. En cambio, cuando el EFR es el central, lo normal es que arranque con todos los canales habilitados, salvo que alguien los bloquee a mano. Gracias a esto, el AFH deja que dos radios distintas lleguen a un acuerdo sobre qué frecuencias les convienen a ambas.

La actualización del mapa de canales viene incluida desde la especificación Bluetooth 4.0, y ojo: únicamente el dispositivo central puede iniciarla, los esclavos no tienen forma de arrancar este procedimiento. Además, está soportada en todas las versiones del SDK, así que podemos considerarla una función estable y disponible prácticamente en cualquier implementación dentro del ecosistema Bluetooth.

AFH en Bluetooth LE: 40 canales y 37 canales de datos

Bluetooth LE parte la banda ISM de 2.4 GHz en 40 canales, y de esos, 37 quedan como canales de propósito general que se pueden usar durante la comunicación conectada. Según Silicon Labs, el estándar Bluetooth permite que los dispositivos que están enlazados lleguen a un acuerdo sobre cuáles canales van a utilizar de entre esos 37 canales de datos disponibles. Los otros tres canales se reservan para publicidad, así que igual queda un buen margen para la parte adaptativa.

El número de canales disponibles sí importa, y no es un detalle menor: la especificación de Bluetooth pide que haya al menos veinte canales cuando se rearma el mapa. Dicho de otra forma, el AFH puede bloquear los canales que salen malos, pero nunca puede quedarse sin suficientes canales buenos como para sostener la conexión. Gracias a esa restricción, un entorno súper congestionado no deja al enlace sin opciones viables.

En la práctica, esto quiere decir que un dispositivo Bluetooth LE puede coexistir con redes Wi-Fi bastante saturadas, siempre y cuando logre mantener al menos veinte canales libres de interferencia. Pero ojo: si el entorno es tan ruidoso que no se llega a ese mínimo, el desempeño empieza a resentirse y es común que aparezcan reconexiones o que se pierdan paquetes en el camino.

¿Qué métodos existen para evaluar canales: RSSI o PER?

La especificación de Bluetooth no establece cómo se deben identificar los canales malos: eso queda a criterio de cada implementación y se le conoce como Channel Assessment. Los dos métodos que más se usan son el RSSI (Received Signal Strength Indication) y el PER (Packet Error Rate). Ambos ayudan a determinar qué canales podrían estar ocupados, aunque no son iguales en cuanto a qué tan bien reflejan las condiciones actuales del espectro.

El RSSI mide la potencia de la señal que se recibe y sirve muy bien para detectar interferencia constante, por ejemplo la de un router Wi-Fi que esté cerca. El PER, en cambio, se apoya en la tasa de errores de paquetes, así que refleja mejor la interferencia intermitente o tipo bursty. ¿Cuál conviene usar? Pues depende bastante del tipo de tráfico y del entorno donde opere el dispositivo, por eso muchos fabricantes optan por combinar los dos métodos y así tomar decisiones más robustas.

Vale la pena notar que el FHSS depende de las frecuencias portadoras para transmitir los bits de información, por lo que puede producir errores bursty fuertes por desvanecimiento selectivo en frecuencia. Los esquemas adaptativos agregan sobrecarga de monitoreo, y métodos como RSSI y PER difieren en su capacidad de seguir las condiciones cambiantes del canal.

Parámetros de AFH y detalles de implementación

Desde el Bluetooth SDK v3.x, el AFH se puede habilitar instalando el componente de software correspondiente; el generador de código llama automáticamente a sl_bt_init_afh() dentro de sl_bt_init(). Si el AFH está activo y al menos un anunciante ejecuta publicidad extendida o hay una conexión activa, la pila corre una tarea periódica en segundo plano que barre todos los canales una vez cada afh_scan_interval y mide la potencia recibida.

Si la potencia medida en un canal supera el límite de -71 dBm, ese canal se bloquea durante al menos 8 afh_scan_intervals; para desbloquearlo se requieren 8 mediciones consecutivas sin interferencia. Después de cada barrido se crea un nuevo mapa de canales y, si cambió, el central lo envía a todos los esclavos. El afh_scan_interval tiene un valor por defecto de 1 segundo, y barrer los 40 canales toma alrededor de 10 ms, lo que agrega un consumo aproximado de 240 uW.

El barrido de AFH tiene la prioridad más alta entre las operaciones Bluetooth. La unidad de afh_scan_interval es de 10 ms y se puede cambiar mediante sl_bt_system_linklayer_configure con AFH_SCAN_INTERVAL_CONFIG_KEY. El barrido de canales ocurre después de una operación de radio; con un intervalo de 100 ms y un intervalo de publicidad de 80 ms, el escaneo sucede cada segundo anuncio, aproximadamente cada 160 ms. Los canales también se pueden bloquear manualmente mediante sl_bt_gap_set_data_...

Un punto crítico: el AFH es un requisito para usar potencia de transmisión superior a +10 dBm. Desarrolladores de Nordic han señalado que +20 dBm con BLE es complicado por las regulaciones, y un requisito de cliente referenciaba el ETSI 300 328 Adaptive Mode para +20 dBm EIRP con el algoritmo de selección de canal LE #2. La siguiente tabla resume los parámetros principales.

Tabla de parámetros y requisitos del AFH

ParámetroValor o requisitoFuente
Umbral de bloqueo de canal-71 dBmSilicon Labs
Intervalo de barrido por defecto1 segundoSilicon Labs
Tiempo de barrido de 40 canalesAproximadamente 10 msSilicon Labs
Consumo adicionalCerca de 240 uWSilicon Labs
Mínimo de canales al rearmarAl menos 20 canalesEspecificación Bluetooth
Potencia TX que exige AFHMás de +10 dBmSilicon Labs

Esta tabla muestra que el AFH no es gratis: agrega consumo, requiere barridos periódicos y obliga a mantener un mínimo de canales disponibles. Sin embargo, para potencias superiores a +10 dBm es obligatorio, y en entornos densos de 2.4 GHz su costo energético se compensa con creces por la estabilidad de la conexión.

AFH y coexistencia con Wi-Fi en la banda ISM de 2.4 GHz

La banda ISM de 2.4 GHz es un espacio compartido por Bluetooth, Wi-Fi, microondas y muchos otros dispositivos. Antes del AFH, los dispositivos Bluetooth usaban 79 de los 83.5 canales disponibles en esa banda, saltando aleatoriamente 1600 veces por segundo, lo que provocaba colisiones ocasionales con otros dispositivos inalámbricos. El AFH fue introducido por el Bluetooth SIG y quedó incluido en la especificación Bluetooth versión 1.2, adoptada en 2003.

Con el AFH, un dispositivo Bluetooth puede detectar qué canales usa el Wi-Fi cercano y excluirlos de su mapa, reduciendo drásticamente las colisiones. Esto es especialmente relevante en oficinas, aeropuertos y hogares con múltiples puntos de acceso, donde la banda de 2.4 GHz suele estar saturada. La adaptación continua permite que el enlace Bluetooth mantenga throughput estable incluso cuando el entorno cambia.

Mejora de clasificación de canales en Bluetooth 5.3

La especificación Bluetooth Core v5.3, publicada a mediados de julio de 2021, agregó la Channel Classification Enhancement. Antes de esta mejora, solo el dispositivo central realizaba la clasificación de canales; si el central y el periférico estaban muy separados, podían experimentar condiciones de RF distintas, y el mapa de canales podía incluir canales inadecuados para el periférico, lo que arriesgaba colisiones de paquetes, caídas de conexión y menor throughput.

Con esta mejora, tanto el periférico como el central participan: el periférico reporta sus condiciones de RF y sugiere clasificaciones al central. Así, el mapa de canales refleja mejor la realidad de ambos extremos del enlace. Bluetooth 5.3 también añadió la Periodic Advertising Enhancement, con el campo AdvDataInfo, y la Connection Subrating, que permiten optimizar aún más la eficiencia y la convivencia en la banda.

Ventajas y desventajas del salto de frecuencia adaptativo

El AFH ofrece ventajas claras: reduce colisiones, mejora la confiabilidad del enlace y permite usar mayor potencia de transmisión. Pero también tiene costos. El monitoreo constante consume energía, los barridos periódicos añaden latencia y la necesidad de mantener al menos veinte canales limita la capacidad de evasión en entornos extremadamente congestionados. Además, la calidad de la clasificación depende del método de evaluación elegido, y el RSSI y el PER no siempre reflejan con la misma fidelidad las condiciones actuales.

En mi experiencia revisando implementaciones con SDKs de Silicon Labs y Nordic, el AFH bien configurado marca una diferencia notable en oficinas con muchos puntos de acceso. El truco está en ajustar el afh_scan_interval según el entorno: demasiado corto consume batería sin necesidad, y demasiado largo deja pasar interferencias que podrían evitarse. Como en casi todo en RF, el balance depende del caso de uso.

Preguntas frecuentes sobre Adaptive Frequency Hopping

Estas son las dudas que más aparecen cuando se estudia el AFH aplicado a Bluetooth y a la convivencia en la banda de 2.4 GHz.

¿Cómo funciona el salto de frecuencia adaptativo?

El adaptive frequency hopping significa que los dispositivos que se comunican monitorean continuamente su entorno en busca de interferencias y cambian el mapa de canales para resolverlas. Bluetooth divide la banda de 2.4 GHz en canales y salta rápidamente entre ellos, rastreando y evitando de forma dinámica los canales ruidosos u ocupados cuando envía paquetes. Así se reduce la probabilidad de colisión y mejora la estabilidad del enlace.

¿Cuál es la diferencia entre FHSS y AFH?

El frequency hopping spread spectrum (FHSS) cambia rápidamente la portadora entre canales de frecuencia usando una secuencia pseudoaleatoria conocida por el transmisor y el receptor. El AFH agrega adaptación: identifica fuentes de interferencia fijas y excluye esos canales de la lista disponible, rearmando la secuencia de saltos para evitar las frecuencias congestionadas. Es decir, el AFH es un FHSS que aprende del entorno en lugar de saltar a ciegas.

¿Por qué el AFH es obligatorio para mayor potencia de transmisión Bluetooth?

El AFH es un requisito para usar potencia de transmisión superior a +10 dBm. Como una mayor potencia eleva el riesgo de interferencia, el salto de frecuencia adaptativo asegura que los dispositivos eviten los canales ocupados. Silicon Labs señala que el AFH es necesario para potencias TX por encima de +10 dBm, en referencia a la configuración de potencia de transmisión Bluetooth. Por eso, si buscas +20 dBm, el AFH deja de ser opcional.

¿Cuáles son las desventajas del salto de frecuencia?

El FHSS depende de las frecuencias portadoras para transmitir los bits de información, por lo que puede generar errores bursty fuertes debido al desvanecimiento selectivo en frecuencia. Los esquemas adaptativos agregan sobrecarga de monitoreo, y métodos de evaluación de canal como RSSI y PER difieren en qué tan bien siguen las condiciones actuales. Además, el AFH exige mantener al menos veinte canales disponibles, lo que limita la evasión en entornos muy saturados.

Preguntas frecuentes sobre Adaptive Frequency Hopping

¿Cómo funciona el adaptive frequency hopping?

El adaptive frequency hopping significa que los dispositivos que se comunican monitorean continuamente su entorno en busca de interferencias y cambian el mapa de canales para resolverlas. Bluetooth divide la banda de 2.4 GHz en canales y salta rápidamente entre ellos, rastreando y evitando de forma dinámica los canales ruidosos u ocupados cuando envía paquetes. Así se reduce la probabilidad de colisión y mejora la estabilidad del enlace.

¿Cuál es la diferencia entre FHSS y AFH?

El frequency hopping spread spectrum (FHSS) cambia rápidamente la portadora entre canales de frecuencia usando una secuencia pseudoaleatoria conocida por el transmisor y el receptor. El AFH agrega adaptación: identifica fuentes de interferencia fijas y excluye esos canales de la lista disponible, rearmando la secuencia de saltos para evitar las frecuencias congestionadas. Es decir, el AFH es un FHSS que aprende del entorno en lugar de saltar a ciegas.

¿Por qué el AFH es obligatorio para mayor potencia de transmisión Bluetooth?

El AFH es un requisito para usar potencia de transmisión superior a +10 dBm. Como una mayor potencia eleva el riesgo de interferencia, el salto de frecuencia adaptativo asegura que los dispositivos eviten los canales ocupados. Silicon Labs señala que el AFH es necesario para potencias TX por encima de +10 dBm, en referencia a la configuración de potencia de transmisión Bluetooth. Por eso, si buscas +20 dBm, el AFH deja de ser opcional.

¿Cuáles son las desventajas del salto de frecuencia?

El FHSS depende de las frecuencias portadoras para transmitir los bits de información, por lo que puede generar errores bursty fuertes debido al desvanecimiento selectivo en frecuencia. Los esquemas adaptativos agregan sobrecarga de monitoreo, y métodos de evaluación de canal como RSSI y PER difieren en qué tan bien siguen las condiciones actuales. Además, el AFH exige mantener al menos veinte canales disponibles, lo que limita la evasión en entornos muy saturados.