Jam-Erkennung

Quelle auf GitHub ansehen

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:

  1. Der Jam-Erkennungsstatus ist auf false gesetzt.
  2. Der Knoten scannt den RSSI-Wert mehrmals über jedes 1-Sekunden-Intervall.
  3. 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.
  4. 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.
  5. 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 auffalse 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:

OT Jam-Erkennung

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
Standardwert
0 dBm
Beschreibung
Gibt den RSSI-Schwellenwert in Byte an, über dem der Kanal fest gehalten werden soll.
Erkennungsfenster
Standardwert
63 Sekunden
Beschreibung
Gibt das Fenster in Sekunden an, in dem auf ein Klemmen geprüft werden soll. Bereich: 1–63
Beschäftigt
Standardwert
63 Sekunden
Beschreibung
Gibt die Anzahl der aggregierten Sekunden im Erkennungsfenster an, in denen der RSSI-Schwellenwert über dem RSSI-Schwellenwert liegen muss, um die Jam-Erkennung auszulösen. Muss kleiner sein als das Erkennungsfenster Bereich: 1–63

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
Format
boolean
Beschreibung
Schreibgeschützt. Jam-Erkennungsstatus. Gibt an, ob derzeit ein Signalstör erkannt wird.
JamDetection:Enable
Format
boolean
Beschreibung
Aktivieren oder deaktivieren Sie die Jam-Erkennungsfunktion.
JamDetection:RssiThreshold
Format
dBm
Beschreibung
Gibt den Grenzwert für den RSSI-Wert in Byte an, anhand dessen der Kanal blockiert werden soll.
JamDetection:Window
Format
Sekunden
Beschreibung
Gibt das Fenster in Sekunden an, in dem auf ein Klemmen geprüft werden soll. Bereich: 1–63
JamDetection:BusyPeriod
Format
Sekunden
Beschreibung
Gibt die Anzahl der aggregierten Sekunden in JamDetection:Window an, in denen der RSSI-Wert größer als JamDetection:RssiThreshold sein muss, um die Jam-Erkennung auszulösen. Muss kleiner als JamDetection:Window sein. Bereich: 1–63
JamDetection:Debug:HistoryBitmap
Format
64-Bit-Wert
Beschreibung
Enthält Informationen zum Verlauf des Jam-Erkennungsstatus zu Monitoring- und Fehlerbehebungszwecken.

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.