Visualizza il codice sorgente su GitHub
Per fornire un meccanismo configurabile per il rilevamento dell'interferenza del segnale su qualsiasi nodo OpenThread, attiva la funzionalità di rilevamento delle interferenze.
Questa funzionalità è utile per le certificazioni dei dispositivi che richiedono la capacità di rilevare l'interferenza del segnale su un canale specifico. Può essere configurato per soddisfare i requisiti di ogni tipo di certificazione.
Come funziona
La funzionalità di rilevamento di Jam monitora l'RSSI (indicatore di intensità del segnale ricevuto) di un nodo in determinati intervalli di tempo per determinare se il canale è stato inceppata.
Quando il Rilevamento Jam è attivo:
- Lo stato di rilevamento del Jam è impostato su
false
. - Il nodo campiona l'RSSI più volte in un 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 interessato da interferenze.
- Se il numero aggregato di intervalli di un secondo bloccati è superiore o
uguale al numero complessivo del periodo di attività configurato
secondi entro i secondi della finestra di rilevamento configurata precedente
in qualsiasi momento, lo stato di rilevamento del Jam in quel momento viene impostato
a
true
. - Se un numero complessivo di intervalli di un secondo bloccati è inferiore a il valore
numero aggregato di secondi di Periodo di attività configurati entro
la finestra di rilevamento configurata precedente in qualsiasi momento
ora, lo stato di rilevamento del Jam in quel momento è impostato su
false
.
Bitmap della cronologia
Nell'API OpenThread e nelle proprietà wpantund
, è presente una
la bitmap dei 63 secondi precedenti è disponibile per il recupero. Questo 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 dell'RSSI superiore a quella configurata Soglia RSSI nei 63 secondi precedenti:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Se la Finestra di rilevamento è impostata su 16 secondi e il Periodo di attività è impostato su 8
secondi, lo stato di rilevamento dei Jam diventa true
a 51 secondi, ossia
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 degli ingorghi rimanetrue
per i 13 secondi successivi.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
Questo bitmap potrebbe essere rappresentato dal seguente grafico, se -45 dBm fosse la soglia RSSI configurata:
Come attivarlo
Questa funzionalità è disattivata per impostazione predefinita.
Per definizione
Per attivare il Rilevamento Jam, definisci
OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
come 1
in
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
durante la compilazione di OpenThread:
./script/build -DOT_JAM_DETECTION=ON
Parametri
I parametri di Rilevamento dei Jam possono essere configurati solo tramite l'API OpenThread,
protocollo Spinel o wpanctl
, lo strumento a riga di comando wpantund
per la rete
Gestione dei co-processori (NCP). I valori predefiniti vengono applicati se la caratteristica è
attivate senza una successiva configurazione.
Personalizza questa funzione utilizzando i seguenti parametri:
Parametri | |||||
---|---|---|---|---|---|
Soglia RSSI |
|
||||
Finestra di rilevamento |
|
||||
Periodo di punta |
|
API
OpenThread
Usa l'API Jam Detection per gestire la funzionalità di rilevamento dei Jam direttamente nell'applicazione OpenThread. La L'API OpenThread fornisce le seguenti funzionalità:
- Avviare e interrompere la funzionalità
- Visualizza lo stato del rilevamento degli errori
- Gestisci tutti i parametri
- Recuperare la bitmap attuale della cronologia di Rilevamento dei Jam
- Registra una funzione di callback per quando viene rilevato un ingorgo
Spinello
Il protocollo Spinel consente a un dispositivo host di comunicare direttamente con un NCP.
Questo protocollo espone le proprietà di rilevamento degli ingorghi in
openthread/src/lib/spinel/spinel.h
che forniscono le seguenti funzionalità:
- Avviare e interrompere la funzionalità
- Visualizza lo stato del rilevamento degli errori
- Gestisci tutti i parametri
- Recuperare la bitmap attuale della cronologia di Rilevamento dei Jam
Interfaccia a riga di comando
OpenThread
Non esistono comandi dell'interfaccia a riga di comando OpenThread relativi a questa funzionalità.
Wpantund
Usa l'interfaccia a riga di comando wpanctl
per gestire la funzionalità di rilevamento dei Jam per un NCP OpenThread
configurazione. wpantund
conserva tutta la configurazione di Rilevamento dei Jam su NCP
resettare.
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 per il rilevamento di interferenze 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 wpantund
GitHub
repository Git.