Para fornecer um mecanismo configurável de detecção de bloqueio de sinal em qualquer nó OpenThread, ative o recurso de detecção de bloqueio.
Esse recurso é útil para certificações de dispositivos que exigem a capacidade de detectar interferência de sinal em um canal específico. Ele pode ser configurado para atender aos requisitos de cada tipo de certificação.
Como funciona
A detecção de interferência monitora o RSSI (indicador de intensidade do sinal recebido) de um nó durante períodos especificados para determinar se o canal foi interferido.
Quando a detecção de congestionamento está ativada:
- O estado de detecção de congestionamento está definido como
false
. - O nó faz amostragem do RSSI várias vezes em cada intervalo de um segundo.
- Se o RSSI em todo esse intervalo de um segundo permanecer acima do limite de RSSI configurado para cada amostra, esse intervalo de um segundo será considerado congestionado.
- Se um número agregado de intervalos de um segundo bloqueados for maior ou
igual a o número agregado de segundos de Período ocupado configurados nos segundos de Janela de detecção configurados anteriores a qualquer momento, o estado de detecção de bloqueio nesse momento será definido como
true
. - Se um número agregado de intervalos de um segundo bloqueados for menor do que o número agregado de segundos de período ocupado configurados nos segundos de janela de detecção anteriores em qualquer momento, o estado de detecção de bloqueio nesse momento será definido como
false
.
Bitmap do histórico
Na API OpenThread, um bitmap dos 63 segundos anteriores está disponível para recuperação. Esse bitmap indica se o RSSI cruzou o limite configurado nos últimos 63 segundos.
Por exemplo, você pode extrair o seguinte bitmap:
0xC248068C416E7FF0
A conversão para binário produz todas as instâncias em que o RSSI ficou acima do limite configurado durante os 63 segundos anteriores:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Se a janela de detecção for definida como 16 segundos e o período ocupado como 8 segundos, o estado de detecção de interferência se tornará true
aos 51 segundos, já que essa é a primeira instância em que o limite de RSSI foi excedido por pelo menos 8 segundos inteiros nos 16 segundos anteriores. Neste exemplo, o estado de detecção de bloqueio permanece
true
pelos próximos 13 segundos.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
Esse bitmap pode ser representado pelo gráfico a seguir se -45 dBm for o limite de RSSI configurado:

Como ativar
Esse recurso fica desativado por padrão.
Por definição
Para ativar a detecção de bloqueio, defina
OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
como 1
no arquivo
openthread/src/core/config/openthread-core-default-config.h
antes de criar o OpenThread:
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
Por opção
Como alternativa, use a opção de build -DOT_JAM_DETECTION=ON
ao criar o
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
Parâmetros
Os parâmetros de detecção de bloqueio só podem ser configurados pela API OpenThread ou pelo protocolo Spinel. Os valores padrão são aplicados se o recurso for ativado sem configuração posterior.
Personalize esse recurso usando os seguintes parâmetros:
Parâmetros | |||||
---|---|---|---|---|---|
Limite de RSSI |
|
||||
Janela de detecção |
|
||||
Período de alta demanda |
|
API
OpenThread
Use a API Jam Detection para gerenciar o recurso de detecção de interferências diretamente no aplicativo OpenThread. A API OpenThread oferece as seguintes funcionalidades:
- Iniciar e parar o recurso
- Ver o estado de detecção de congestionamento
- Gerenciar todos os parâmetros
- Recuperar o bitmap do histórico de detecção de congestionamento atual
- Registrar uma função de callback para quando um congestionamento for detectado
Espinélio
O protocolo Spinel permite que um dispositivo host se comunique diretamente com um NCP.
Esse protocolo expõe propriedades de detecção de bloqueio em
openthread/src/lib/spinel/spinel.h
que oferecem a seguinte funcionalidade:
- Iniciar e parar o recurso
- Ver o estado de detecção de congestionamento
- Gerenciar todos os parâmetros
- Recuperar o bitmap do histórico de detecção de congestionamento atual
CLI
OpenThread
Não há comandos da CLI do OpenThread relacionados a esse recurso.