Visualizza il codice sorgente su GitHub
Per fornire un meccanismo configurabile per il rilevamento del jamming del segnale su qualsiasi nodo OpenThread, attiva la funzionalità di rilevamento del jamming.
Questa funzionalità è utile per le certificazioni dei dispositivi che richiedono la capacità di rilevare il jamming del segnale su un canale specifico. Può essere configurato per soddisfare i requisiti di ogni tipo di certificazione.
Come funziona
Il rilevamento del jamming monitora l'RSSI (indicatore di intensità del segnale ricevuto) di un nodo durante intervalli di tempo specifici per determinare se il canale è stato sottoposto a jamming.
Quando il rilevamento del disturbo è abilitato:
- Lo stato del rilevamento del disturbo è impostato su
false
. - Il nodo campiona l'RSSI più volte in ogni intervallo di un secondo.
- Se l'RSSI nell'intero intervallo di un secondo rimane al di sopra della soglia RSSI configurata per ogni campione, l'intervallo di un secondo viene considerato bloccato.
- Se un numero aggregato di intervalli di un secondo di disturbo è maggiore o
uguale a il numero aggregato di secondi di Periodo di occupazione
configurati entro i precedenti secondi di Finestra di rilevamento
configurati in qualsiasi momento, lo stato di rilevamento del disturbo in quel momento viene impostato
su
true
. - Se un numero aggregato di intervalli di un secondo di disturbo è inferiore al numero aggregato di secondi di Periodo di occupazione configurati all'interno dei secondi di Finestra di rilevamento configurati precedenti in qualsiasi momento, lo stato di rilevamento del disturbo in quel momento viene impostato su
false
.
Bitmap cronologia
Nell'API OpenThread, è disponibile per il recupero una bitmap dei 63 secondi precedenti. Questa bitmap indica se l'RSSI ha superato la soglia RSSI configurata in ciascuno dei 63 secondi precedenti.
Ad esempio, potresti recuperare la seguente bitmap:
0xC248068C416E7FF0
La conversione in binario produce ogni istanza in cui l'RSSI ha superato la soglia RSSI configurata durante i 63 secondi precedenti:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Se la finestra di rilevamento è impostata su 16 secondi e il periodo di occupazione è impostato su 8
secondi, lo stato di rilevamento del disturbo diventa true
a 51 secondi, in quanto si tratta della
prima istanza in cui la soglia RSSI è stata superata per almeno 8 secondi
interi nei 16 secondi precedenti. In questo esempio, lo stato di rilevamento dell'inceppamento rimane
true
per i successivi 13 secondi.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
Questa bitmap potrebbe essere rappresentata dal seguente grafico, se -45 dBm fosse la soglia RSSI configurata:

Come attivare
Questa funzionalità è disattivata per impostazione predefinita.
Per definizione
Per attivare il rilevamento del jamming, definisci
OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
come 1
nel
file openthread/src/core/config/openthread-core-default-config.h
, prima di creare OpenThread:
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
Per opzione
In alternativa, utilizza l'opzione di compilazione -DOT_JAM_DETECTION=ON
quando compili
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
Parametri
I parametri di rilevamento inceppamento possono essere configurati solo tramite l'API OpenThread o il protocollo Spinel. I valori predefiniti vengono applicati se la funzionalità è abilitata senza configurazione successiva.
Personalizza questa funzionalità utilizzando i seguenti parametri:
Parametri | |||||
---|---|---|---|---|---|
Soglia RSSI |
|
||||
Finestra di rilevamento |
|
||||
Periodo di maggiore attività |
|
API
OpenThread
Utilizza l'API Jam Detection per gestire la funzionalità Jam Detection direttamente nella tua applicazione OpenThread. L'API OpenThread fornisce le seguenti funzionalità:
- Avviare e interrompere la funzionalità
- Visualizzare lo stato di rilevamento inceppamento
- Gestisci tutti i parametri
- Recupera la bitmap della cronologia del rilevamento inceppamenti corrente
- Registra una funzione di callback per quando viene rilevato un inceppamento
Spinello
Il protocollo Spinel consente a un dispositivo host di comunicare direttamente con un NCP.
Questo protocollo espone le proprietà di rilevamento del blocco in
openthread/src/lib/spinel/spinel.h
che forniscono le seguenti funzionalità:
- Avviare e interrompere la funzionalità
- Visualizzare lo stato di rilevamento inceppamento
- Gestisci tutti i parametri
- Recupera la bitmap della cronologia del rilevamento inceppamenti corrente
Interfaccia a riga di comando
OpenThread
Non esistono comandi CLI OpenThread correlati a questa funzionalità.