Para fornecer um mecanismo configurável para a detecção de obstrução de sinal em qualquer Nó OpenThread, ativar o recurso de detecção de Jams.
Esse recurso é útil para certificações de dispositivos que exigem a capacidade de detectar obstruções de sinal em um canal específico. Ele pode ser configurado para atender aos e 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 de tempo especificadas para determinar se o canal foi emperrado.
Quando a detecção de Jams está ativada:
- O estado de detecção de interferência está definido como
false
. - O nó faz amostras do RSSI várias vezes em cada intervalo de um segundo.
- Se o RSSI nesse intervalo inteiro de um segundo permanecer acima do configurou Limite de RSSI para cada amostra, aquele que é considerado emperrado.
- Se um número agregado de intervalos de um segundo travados for maior ou
igual ao número agregado do Período ocupado configurado
de acordo com os segundos configurados anteriormente na janela de detecção
a qualquer momento, o estado de detecção do Jam é definido
para
true
. - Se o número agregado de intervalos de um segundo travados for menor que o
número agregado de segundos configurados de Período ocupado dentro de
os segundos da janela de detecção configurados anteriormente a qualquer momento
momento, o estado de detecção de Jam é definido como
false
.
Bitmap de histórico
Nas propriedades API OpenThread e wpantund
, um
bitmap dos 63 segundos anteriores está disponível para recuperação. Este bitmap
indica se o RSSI ultrapassou o limite de RSSI configurado em cada
nos últimos 63 segundos.
Por exemplo, você pode recuperar o seguinte bitmap:
0xC248068C416E7FF0
A conversão para binário produz todas as instâncias que o RSSI ultrapassou a Limite de RSSI durante os 63 segundos anteriores:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Se a janela de detecção estiver definida como 16 segundos e o período de ocupação estiver definido como 8
segundos, o estado de detecção de congestionamento será true
em 51 segundos, porque essa é a
primeira instância em que o limite de RSSI foi excedido por pelo menos 8 segundos
nos 16 segundos anteriores. Neste exemplo, o estado de detecção de congestionamento 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 seguinte gráfico, se -45 dBm foi o Limite de RSSI configurado:
Como ativar
Esse recurso fica desativado por padrão.
Por definição
Para ativar a Detecção de Jams, defina
OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
como 1
em
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, o
protocolo Spinel, ou wpanctl
, a ferramenta de linha de comando wpantund
para rede
Gerenciamento de coprocessador (NCP). Os valores padrão serã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 ocupado |
|
API
OpenThread
Use a API Jam Detection para gerenciar o recurso Jam Detection diretamente no seu aplicativo OpenThread. A API OpenThread oferece as seguintes funcionalidades:
- Iniciar e interromper o recurso
- Conferir o estado da detecção de Jam
- Gerenciar todos os parâmetros
- Extrair o bitmap atual do histórico da detecção de Jam
- Registrar uma função de callback para quando um Jam 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 congestionamento em
openthread/src/lib/spinel/spinel.h
que oferecem a seguinte funcionalidade:
- Iniciar e parar o recurso
- Conferir o estado da detecção de Jam
- Gerenciar todos os parâmetros
- Recuperar o bitmap do histórico atual da detecção de congestionamento
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 um NCP do OpenThread
configuração do Terraform. wpantund
mantém toda a configuração da detecção de interferência após a redefinição
do NCP.
wpanctl
fornece acesso às seguintes propriedades do wpantund
:
Propriedades | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Por exemplo, para descobrir o estado de detecção de Jam de um NCP:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
Para definir o limite de RSSI da detecção de interferência em -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.