Para proporcionar un mecanismo configurable para la detección de interferencias de señal en cualquier nodo OpenThread, habilite la función de detección de interferencias.
Esta función es útil para las certificaciones de dispositivos que requieren la capacidad de detectar interferencias de señal en un canal específico. Puede configurarse para cumplir con los requisitos de cada tipo de certificación.
Cómo funciona
La detección de atascos monitorea el RSSI (indicador de intensidad de la señal recibida) de un nodo durante períodos de tiempo específicos para determinar si el canal se ha atascado.
Cuando la detección de atascos está habilitada:
- El estado de detección de atascos se establece en
false
. - El nodo muestrea el RSSI varias veces en cada intervalo de un segundo.
- Si el RSSI durante todo ese intervalo de un segundo permanece por encima del umbral RSSI configurado para cada muestra, ese intervalo de un segundo se considera atascado.
- Si un número total de intervalos de un segundo atascados es mayor o igual que el número total de segundos configurados del Período Ocupado dentro de los segundos de la Ventana de Detección configurada anterior en cualquier momento, el Estado de Detección de Atascos en ese momento se establece en
true
. - Si un número total de intervalos de un segundo atascados es menor que el número total de segundos configurados del Período Ocupado dentro de los segundos de la Ventana de Detección configurada anterior en cualquier momento, el Estado de Detección de Atascos en ese momento se establece en
false
.
Mapa de bits de historia
En la API de OpenThread y wpantund
propiedades de wpantund
, un mapa de bits de los 63 segundos anteriores está disponible para su recuperación. Este mapa de bits indica si el RSSI cruzó el umbral RSSI configurado en cada uno de los 63 segundos anteriores.
Por ejemplo, puede recuperar el siguiente mapa de bits:
0xC248068C416E7FF0
La conversión a binario produce todas las instancias en que RSSI superó el umbral RSSI configurado durante los 63 segundos anteriores:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Si la ventana de detección se establece en 16 segundos y el período de ocupación se establece en 8 segundos, el estado de detección de atasco se vuelve true
a los 51 segundos, ya que es la primera instancia en la que se excedió el umbral de RSSI al menos 8 segundos completos en el período anterior. 16 segundos. En este ejemplo, el estado de detección de atascos permanece true
durante los siguientes 13 segundos.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
[00001 01101110 011] = 8 in 16
Este mapa de bits puede estar representado por el siguiente gráfico, si -45 dBm fue el umbral RSSI configurado:

Cómo habilitar
Esta función esta desactivada por defecto.
Por definir
Para habilitar la detección de OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
, defina OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
como 1
en el archivo /src/core/config/openthread-core-default-config.h
, antes de compilar OpenThread :
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE #define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1 #endif
Por interruptor
Alternativamente, use el JAM_DETECTION=1
compilación JAM_DETECTION=1
al compilar OpenThread :
make -f examples/Makefile-<platform> JAM_DETECTION=1
Parámetros
Los parámetros de detección de atascos solo se pueden configurar a través de la API OpenThread, el protocolo Spinel o wpanctl
, la herramienta de línea de comandos wpantund
la wpantund
del wpantund
de red (NCP). Los valores predeterminados se aplican si la función está habilitada sin configuración posterior.
Personalice esta función utilizando los siguientes parámetros:
Parámetros | |||||
---|---|---|---|---|---|
Umbral RSSI |
| ||||
Ventana de detección |
| ||||
Periodo ocupado |
|
API
OpenThread
Utilice la API de detección de atascos para administrar la función de detección de atascos directamente en su aplicación OpenThread. La API de OpenThread proporciona la siguiente funcionalidad:
- Iniciar y detener la función
- Ver el estado de detección de atascos
- Gestionar todos los parámetros
- Recuperar el mapa de bits actual del historial de detección de atascos
- Registre una función de devolución de llamada para cuando se detecte un atasco
Espinela
El protocolo Spinel permite que un dispositivo host se comunique directamente con un NCP. Este protocolo expone las propiedades de detección de /src/lib/spinel/spinel.h
en /src/lib/spinel/spinel.h
que proporcionan la siguiente funcionalidad:
- Iniciar y detener la función
- Ver el estado de detección de atascos
- Gestionar todos los parámetros
- Recuperar el mapa de bits actual del historial de detección de atascos
CLI
OpenThread
No hay comandos CLI de OpenThread relacionados con esta función.
wpantund
Utilice la CLI de wpanctl
para administrar la función de detección de atascos para una configuración de OpenThread NCP. wpantund
conserva toda la configuración de detección de wpantund
al reiniciar el NCP.
wpanctl
proporciona acceso a las siguientes propiedades de wpantund
:
Propiedades | |||||
---|---|---|---|---|---|
JamDetection:Status |
| ||||
JamDetection:Enable |
| ||||
JamDetection:RssiThreshold |
| ||||
JamDetection:Window |
| ||||
JamDetection:BusyPeriod |
| ||||
JamDetection:Debug:HistoryBitmap |
|
Por ejemplo, para obtener el estado de detección de atascos de un NCP:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
Para configurar el umbral RSSI de detección de atascos en -45 dBm en un NCP:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
Para obtener más información sobre wpantund
propiedades de wpantund
, consulte el repositorio de wpantund
GitHub .