Para fornecer um mecanismo configurável para a detecção de Jam em qualquer nó do OpenThread, ative o recurso de detecção de Jam.
Esse recurso é útil para certificações de dispositivo que exigem a capacidade de detectar o Jam 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 Jam monitora o RSSI (indicador de intensidade do sinal recebido) de um nó durante janelas especificadas para determinar se o canal foi interrompido.
Quando a detecção de Jam está ativada:
- O estado de detecção de Jam está definido como
false
. - O nó faz a amostragem da RSSI várias vezes em cada intervalo de um segundo.
- Se o RSSI em todo o intervalo de um segundo permanecer acima do limite de RSSI configurado para cada amostra, esse intervalo de um segundo será considerado bloqueado.
- Se um número agregado de intervalos de um segundo Jam estiver maior que
ou igual ao número agregado de período de ocupação configurado
segundos à janela de detecção configurada em um determinado momento, o estado de detecção de Jam nesse momento será definido
como
true
. - Se o número agregado de intervalos de um segundo Jam estiver inferior ao
número agregado de períodos de pico configurados dentro
dos segundos da janela de detecção configurada em um
momento, o estado de detecção de Jam nesse momento será definido como
false
.
Bitmap do histórico
Na API OpenThread e nas propriedades wpantund
, um
bitmap dos 63 segundos anteriores está disponível para recuperação. Esse bitmap
indica se a RSSI ultrapassou o limite de RSSI configurado em cada um dos
63 segundos anteriores.
Por exemplo, você pode recuperar o bitmap a seguir:
0xC248068C416E7FF0
A conversão para binário produz cada instância que a RSSI excedeu o limite de RSSI 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 for definido como 8 segundos, o estado de detecção de Jam vai se tornar true
aos 51 segundos, porque essa será a primeira instância em que o limite de RSSI foi excedido por pelo menos oito segundos inteiros nos 16 segundos anteriores. Neste exemplo, o estado de detecção de Jam 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 Jam, 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
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
Parâmetros
Os parâmetros de detecção de Jam só podem ser configurados pela API OpenThread, pelo
protocolo Sppinel ou por wpanctl
, a ferramenta de linha de comando wpantund
para o gerenciamento
de coprocessador de rede (NCP, na sigla em inglês). Os valores padrão serão aplicados se o recurso estiver
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 ocupação |
|
API
OpenThread
Use a API Jam Detection para gerenciar o recurso de detecção de Jam diretamente no aplicativo OpenThread. A API OpenThread oferece as seguintes funcionalidades:
- Iniciar e interromper o recurso
- Ver o estado de detecção de Jam
- Gerenciar todos os parâmetros
- Recuperar o bitmap atual do histórico de detecção de Jam
- Registrar uma função de callback para quando um Jam for detectado
Espiral
O protocolo Spinel permite que um dispositivo host se comunique diretamente com um NCP.
Esse protocolo expõe as propriedades de detecção de Jam no openthread/src/lib/spinel/spinel.h
que oferecem as seguintes funcionalidades:
- Iniciar e interromper o recurso
- Ver o estado de detecção de Jam
- Gerenciar todos os parâmetros
- Recuperar o bitmap atual do histórico de detecção de Jam
CLI
OpenThread
Não há comandos da CLI do OpenThread relacionados a esse recurso.
Wpantund
Use a CLI wpanctl
para gerenciar o recurso de detecção de Jam para uma configuração do NCP do OpenThread. wpantund
mantém toda a configuração de detecção de Jam após a redefinição do NCP.
wpanctl
fornece acesso às seguintes propriedades wpantund
:
Propriedades | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Por exemplo, para ver o estado de detecção de Jam de um NCP:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
Para definir o limite do RSSI de detecção de Jam para -45 dBm em um NCP:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
Para mais informações sobre as propriedades wpantund
, consulte o repositório wpantund
do GitHub.