Aktivieren Sie die Funktion "Jam-Erkennung", um einen konfigurierbaren Mechanismus für die Erkennung von Signalstörungen auf einem OpenThread-Knoten bereitzustellen.
Diese Funktion ist für Gerätezertifizierungen nützlich, die die Fähigkeit erfordern, Signalstörungen auf einem bestimmten Kanal zu erkennen. Es kann entsprechend den Anforderungen jedes Zertifizierungstyps konfiguriert werden.
So geht's
Die Jam-Erkennung überwacht den RSSI-Wert (Received Signal Strength Indicator) eines Knotens während bestimmter Zeitfenster, um festzustellen, ob der Kanal gestört wurde.
Wenn die Jam-Erkennung aktiviert ist:
- Der Jam-Erkennungsstatus ist auf
false
gesetzt. - Der Knoten scannt den RSSI-Wert mehrmals über jedes 1-Sekunden-Intervall.
- Wenn der RSSI-Wert für das gesamte 1-Sekunden-Intervall über dem konfigurierten RSSI-Schwellenwert für jede Stichprobe liegt, wird dieses 1-Sekunden-Intervall als klemmt betrachtet.
- Wenn die Gesamtanzahl der klemmten 1-Sekunden-Intervalle größer oder
entspricht der Gesamtzahl der konfigurierten Sekunden der Periode ist. innerhalb der vorher konfigurierten Sekunden für die Erkennung zu einem bestimmten Zeitpunkt eingestellt ist, wird der Jam-Erkennungsstatus zu diesem Zeitpunkt auf
true
gesetzt. - Wenn die Gesamtanzahl der klemmten 1-Sekunden-Intervallekleiner als die Gesamtzahl der konfiguriertenZeitraum Sekunden im vorherigenErkennungsfenster Sekunden zu einem beliebigen Zeitpunkt abrufen, wird der Jam-Erkennungsstatus zu diesem Zeitpunkt auf
false
aus.
Verlaufs-Bitmap
In den OpenThread API- und wpantund
-Attributen kann eine Bitmap der vorherigen 63 Sekunden abgerufen werden. Diese Bitmap gibt an, ob der RSSI-Wert den konfigurierten RSSI-Schwellenwert bei jeder der vorherigen 63 Sekunden überschritten hat.
Sie können beispielsweise die folgende Bitmap abrufen:
0xC248068C416E7FF0
Bei der Konvertierung in Binärprogramme wird jede Instanz, die der RSSI-Schwellenwert während der vergangenen 63 Sekunden überschritten wurde, erzeugt:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Wenn das Erkennungsfenster auf 16 Sekunden und der Zeitraum auf 8 Sekunden eingestellt ist, erhält der Status der Jam-Erkennung 51 Sekunden true
, da dies die erste Instanz ist, in der der RSSI-Schwellenwert war. in den letzten 16 Sekunden mindestens 8 Sekunden überschritten haben. In diesem Beispiel bleibt der Jam-Erkennungsstatus true
13 Sekunden lang.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
Diese Bitmap könnte durch die folgende Grafik dargestellt werden, wenn -45 dBm der konfigurierte RSSI-Schwellenwert war:

Aktivierungsmethode
Diese Funktion ist standardmäßig deaktiviert.
Nach Definieren
Definieren Sie Folgendes, um die Jam-Erkennung zu aktivieren:OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
als1
in deropenthread/src/core/config/openthread-core-default-config.h
vor derErstellen von OpenThread :
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
Nach Option
Alternativ können Sie die Build-Option -DOT_JAM_DETECTION=ON
beim Erstellen von OpenThread verwenden:
./script/build -DOT_JAM_DETECTION=ON
Parameter
Jam-Erkennungsparameter können nur über die OpenThread API, das Spinel-Protokoll oder wpanctl
, das wpantund
-Befehlszeilentool zur Verwaltung von Netzwerk-Co-Prozessoren (NCP), konfiguriert werden. Standardwerte werden angewendet, wenn das Feature ohne nachfolgende Konfiguration aktiviert wird.
Passen Sie diese Funktion mithilfe der folgenden Parameter an:
Parameter | |||||
---|---|---|---|---|---|
RSSI-Grenzwert |
|
||||
Erkennungsfenster |
|
||||
Beschäftigt |
|
API
OpenThread
Jam Detection API verwenden, um die Jam Detection-Funktion direkt in Ihrer OpenThread-Anwendung zu verwalten Die OpenThread API bietet folgende Funktionen:
- Funktion starten und stoppen
- Jam-Erkennungsstatus ansehen
- Alle Parameter verwalten
- Aktuelle Bitmap für den Jam-Erkennungsverlauf abrufen
- Callback-Funktion registrieren, wenn ein Jam erkannt wird
Wirbelsäule
Über das Spinel-Protokoll kann ein Hostgerät direkt mit einem NCP kommunizieren.
Dieses Protokoll stellt Jam-Erkennungsattribute in openthread/src/lib/spinel/spinel.h
bereit, die die folgenden Funktionen bieten:
- Funktion starten und stoppen
- Jam-Erkennungsstatus ansehen
- Alle Parameter verwalten
- Aktuelle Bitmap für den Jam-Erkennungsverlauf abrufen
CLI
OpenThread
Für diese Funktion gibt es keine OpenThread-Befehlszeilenbefehle.
Wpantund
Verwenden Sie die wpanctl
-Befehlszeile, um das Jam-Erkennungsfeature für eine OpenThread NCP-Konfiguration zu verwalten. wpantund
behält die gesamte Jam-Erkennungskonfiguration beim NCP-Zurücksetzen bei.
wpanctl
bietet Zugriff auf die folgenden wpantund
-Properties:
Attribute | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
So rufen Sie beispielsweise den Jam-Erkennungsstatus für einen NCP ab:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
So legen Sie den RSSI-Schwellenwert für Jam Detection auf einem NCP auf -45 dBm fest:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
Weitere Informationen zu wpantund
-Attributen finden Sie im GitHub-Repository wpantund
.