Rilevamento dell'inceppamento

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:

  1. Lo stato del rilevamento del disturbo è impostato su false.
  2. Il nodo campiona l'RSSI più volte in ogni intervallo di un secondo.
  3. 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.
  4. 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.
  5. 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:

Rilevamento del blocco OT

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
Valore predefinito
0 dBm
Descrizione
Specifica il livello RSSI di soglia in dBm al di sopra del quale considerare il canale bloccato.
Finestra di rilevamento
Valore predefinito
63 secondi
Descrizione
Specifica la finestra in secondi in cui verificare il jamming del segnale. Intervallo: 1-63.
Periodo di maggiore attività
Valore predefinito
63 secondi
Descrizione
Specifica il numero di secondi aggregati all'interno della finestra di rilevamento in cui l'RSSI deve essere superiore alla soglia RSSI per attivare il rilevamento del jamming. Deve essere inferiore alla finestra di rilevamento. Intervallo: 1-63.

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à.