Per fornire un meccanismo configurabile per il rilevamento dell'interruzione del segnale su qualsiasi nodo OpenThread, abilita la funzionalità di rilevamento dei Jam.
Questa funzionalità è utile per le certificazioni dei dispositivi che richiedono la possibilità di rilevare l'interruzione del segnale su un canale specifico. Può essere configurato per soddisfare i requisiti di ogni tipo di certificazione.
Come funziona
Il rilevamento dei Jam monitora l'indicatore RSSI (indicatore di potenza del segnale ricevuto) di un nodo durante i periodi di tempo specificati per determinare se il canale è stato bloccato.
Quando la funzionalità di rilevamento del Jam è attiva:
- Lo stato di rilevamento del Jam è impostato su
false
. - Il nodo campiona il RSSI più volte in ciascun intervallo di un secondo.
- Se il RSSI nell'intero intervallo di un secondo rimane superiore alla soglia RSSI configurata per ogni campione, tale intervallo viene considerato bloccato.
- Se un numero aggregato di intervalli bloccati di un secondo è maggiore o
uguale a il numero complessivo di periodi di attività configurati
in un secondo momento all'interno dei precedenti secondi di intervallo di rilevamento configurati.
In quel momento lo stato di rilevamento del Jam è impostato su
true
. - Se un numero aggregato di intervalli di un secondo bloccati è inferiore a il numero aggregato di secondi del periodo di occupato configurato entro i secondi precedenti della finestra di rilevamento configurati, lo stato di rilevamento del Jam in quel momento è impostato su
false
.
Bitmap della cronologia
Nell'API OpenThread e nelle proprietà wpantund
, è disponibile per il recupero una bitmap dei 63 secondi precedenti. Questa bitmap indica se il RSSI ha superato la soglia RSSI configurata per ciascuno dei 63 secondi precedenti.
Ad esempio, potresti recuperare la seguente bitmap:
0xC248068C416E7FF0
La conversione in formato binario genera ogni istanza in cui il formato RSSI ha superato la soglia di RSSI configurata nei 63 secondi precedenti:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Se il periodo di rilevamento è impostato su 16 secondi e il periodo di attività è impostato su 8
secondi, lo stato di rilevamento del Jam diventa true
a 51 secondi, ovvero il
primo caso in cui la soglia RSSI è stata superata di almeno 8 secondi interi
nei 16 secondi precedenti. In questo esempio, lo stato di rilevamento del Jam rimane true
per i prossimi 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 è stata impostata come soglia RSSI:

Come attivarla
Questa funzionalità è disattivata per impostazione predefinita.
Per definizione
Per attivare il rilevamento di Jam, 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 build -DOT_JAM_DETECTION=ON
durante la creazione
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
Parametri
I parametri di rilevamento dei Jam possono essere configurati solo tramite l'API OpenThread, il protocollo Spipi o wpanctl
, lo strumento a riga di comando wpantund
per la gestione NCP (Network Co-Processor). Se la funzionalità viene abilitata senza la configurazione successiva, vengono applicati valori predefiniti.
Personalizza questa funzionalità utilizzando i seguenti parametri:
Parametri | |||||
---|---|---|---|---|---|
Soglia RSSI |
|
||||
Finestra di rilevamento |
|
||||
Periodo occupato |
|
Server
OpenThread
Utilizza l'API Jam Detection per gestire la funzionalità di rilevamento Jam direttamente nella tua applicazione OpenThread. L'API OpenThread fornisce le seguenti funzionalità:
- Avvia e interrompi la funzionalità
- Visualizzare lo stato di rilevamento del Jam
- Gestisci tutti i parametri
- Recupera la bitmap corrente della cronologia di rilevamento dei Jam
- Registra una funzione di callback per il rilevamento di un Jam
Spinello
Il protocollo Spinel consente a un dispositivo host di comunicare direttamente con un NCP.
Questo protocollo espone le proprietà di rilevamento Jam in openthread/src/lib/spinel/spinel.h
che offrono le seguenti funzionalità:
- Avvia e interrompi la funzionalità
- Visualizzare lo stato di rilevamento del Jam
- Gestisci tutti i parametri
- Recupera la bitmap corrente della cronologia di rilevamento dei Jam
interfaccia a riga di comando
OpenThread
Non ci sono comandi dell'interfaccia a riga di comando di OpenThread relativi a questa funzionalità.
Wpantund
Utilizza l'interfaccia a riga di comando wpanctl
per gestire la funzionalità di rilevamento Jam per una configurazione NCP di OpenThread. wpantund
conserva tutta la configurazione del rilevamento del Jam al ripristino NCP.
wpanctl
fornisce l'accesso alle seguenti proprietà wpantund
:
Proprietà | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Ad esempio, per ottenere lo stato di rilevamento del Jam per un NCP:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
Per impostare la soglia RSSI di rilevamento Jam su -45 dBm su un NCP:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
Per maggiori informazioni sulle proprietà wpantund
, consulta il repository GitHub
wpantund
.