Jam-Erkennung

Quelle auf GitHub ansehen

Wenn Sie einen konfigurierbaren Mechanismus für die Erkennung von Signalstörungen auf einem beliebigen OpenThread-Knoten bereitstellen möchten, aktivieren Sie die Funktion zur Jam-Erkennung.

Diese Funktion ist nützlich für Gerätezertifizierungen, die die Möglichkeit haben, Signalstörungen auf einem bestimmten Kanal zu erkennen. Es kann so konfiguriert werden, dass es die Anforderungen jedes Zertifizierungstyps erfüllt.

Funktionsweise

Die Jam-Erkennung überwacht den RSSI-Wert (Empfangen der Signalstärke) eines Knotens während bestimmter Zeiträume, um festzustellen, ob der Kanal gestört ist.

Wenn die Jamerkennung aktiviert ist, gilt Folgendes:

  1. Der Status der Jam-Erkennung ist auf false gesetzt.
  2. Der Knoten erfasst den RSSI-Wert mehrmals pro 1-Sekunden-Intervall.
  3. Wenn der RSSI-Wert über dem gesamten 1-Sekunden-Intervall über dem konfigurierten RSSI-Schwellenwert für jede Stichprobe liegt, gilt das Intervall von 1 Sekunden als gestört.
  4. Wenn die Gesamtzahl der sekundengenauen Intervalle zu einem beliebigen Zeitpunkt mehr oder gleich der konfigurierten Beschäftigungszeit-Sekunden im vorherigen konfigurierten Erkennungsfenster ist, wird der Status der Jam-Erkennung zu true gesetzt.
  5. Wenn die Gesamtzahl der verzögerten Sekundenintervalle kleiner ist als die Gesamtzahl der konfigurierten Beschäftigungszeit-Sekunden innerhalb des vorherigen konfigurierten Erkennungsfensters zu einem beliebigen Zeitpunkt, wird der Status der Jam-Erkennung zu diesem Zeitpunkt auf false gesetzt.

Bitmap-Verlauf

In den OpenThread API- und wpantund-Attributen steht eine Bitmap der letzten 63 Sekunden zum Abrufen zur Verfügung. Diese Bitmap gibt an, ob der RSSI den konfigurierten RSSI-Grenzwert bei jeder der vorhergehenden 63 Sekunden überschritten hat.

Sie können beispielsweise die folgende Bitmap abrufen:

0xC248068C416E7FF0

Bei der Konvertierung in ein Binärprogramm wird jede Instanz erzeugt, die in den vorherigen 63 Sekunden den RSSI-Schwellenwert überschritten hat:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Wenn das Erkennungsfenster auf 16 Sekunden und der Auslastungszeitraum auf 8 Sekunden festgelegt ist, wird der Status der Jam-Erkennung auf 51 Sekunden zu true geändert. Das ist der erste Fall, bei dem der RSSI-Schwellenwert in den vorherigen 16 Sekunden mindestens 8 Sekunden überschritten wurde. In diesem Beispiel bleibt der Status der Jam-Erkennung für die nächsten 13 Sekunden true.

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 der konfigurierte RSSI-Schwellenwert bei -45 dBm liegt:

OT-Jam-Erkennung

Aktivierungsmethode

Diese Funktion ist standardmäßig deaktiviert.

Nach Definition

Um die Jam-Erkennung zu aktivieren, definieren Sie vor dem Erstellen von OpenThread OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE als 1 in der Datei openthread/src/core/config/openthread-core-default-config.h:

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Nach Option

Alternativ können Sie beim Erstellen von OpenThread die Build-Option -DOT_JAM_DETECTION=ON verwenden:

./script/build -DOT_JAM_DETECTION=ON

Parameter

Parameter zur Jam-Erkennung können nur über die OpenThread API, das Spinnaker-Protokoll oder wpanctl, das wpantund-Befehlszeilentool für die Verwaltung von Netzwerk-Co-Prozessoren (NCP), konfiguriert werden. Standardwerte werden angewendet, wenn das Feature ohne nachfolgende Konfiguration aktiviert ist.

Passen Sie diese Funktion mit den folgenden Parametern an:

Parameter
RSSI-Grenzwert
Standardwert
0 dBm
Beschreibung
Gibt den Grenzwert für die RSSI-Ebene in DBM an, über dem der Wert des Kanals als gestört gilt.
Erkennungsfenster
Standardwert
63 Sekunden
Beschreibung
Gibt das Fenster in Sekunden an, in dem auf die Störung des Signals geprüft werden soll. Bereich: 1–63
Beschäftigt
Standardwert
63 Sekunden
Beschreibung
Gibt die Anzahl der aggregierten Sekunden innerhalb des Erkennungsfensters an, in denen der RSSI-Wert über dem RSSI-Grenzwert liegen muss, um die Jam-Erkennung auszulösen. Muss kleiner als das Erkennungsfenster sein. Bereich: 1–63

API

OpenThread

Mit der Jam Detection API können Sie die Jam Detection-Funktion direkt in Ihrer OpenThread-Anwendung verwalten. Die OpenThread API bietet die folgenden Funktionen:

  • Funktion starten und beenden
  • Status der Jam-Erkennung ansehen
  • Alle Parameter verwalten
  • Aktuelle Bitmap-Datei zum Jam-Erkennungsverlauf abrufen
  • Callback-Funktion für Jam-Erkennung registrieren

Spinell

Mit dem Spinel-Protokoll kann ein Hostgerät direkt mit einem NCP kommunizieren. Dieses Protokoll stellt Jam Detection-Attribute in openthread/src/lib/spinel/spinel.h bereit, die die folgenden Funktionen bieten:

  • Funktion starten und beenden
  • Status der Jam-Erkennung ansehen
  • Alle Parameter verwalten
  • Aktuelle Bitmap-Datei zum Jam-Erkennungsverlauf abrufen

CLI

OpenThread

Es gibt keine OpenThread CLI-Befehle für diese Funktion.

Wpantund

Mit der wpanctl-Befehlszeile können Sie die Jam Detection-Funktion für eine OpenThread-NCP-Konfiguration verwalten. wpantund behält die gesamte Jam-Erkennungskonfiguration bei, wenn NCP zurückgesetzt wird.

wpanctl bietet Zugriff auf die folgenden wpantund-Properties:

Attribute
JamDetection:Status
Format
boolean
Beschreibung
Schreibgeschützt. Status der Jam-Erkennung. Gibt an, ob aktuell ein Signalstau erkannt wird.
JamDetection:Enable
Format
boolean
Beschreibung
Aktivieren oder deaktivieren Sie die Jam-Erkennung.
JamDetection:RssiThreshold
Format
dBm
Beschreibung
Gibt den Grenzwert für den RSSI-Schwellenwert in dB an, über dem der blockierte Kanal berücksichtigt wird.
JamDetection:Window
Format
Sekunden
Beschreibung
Gibt das Fenster in Sekunden an, in dem auf die Störung des Signals geprüft werden soll. Bereich: 1–63
JamDetection:BusyPeriod
Format
Sekunden
Beschreibung
Gibt die Anzahl der aggregierten Sekunden innerhalb von JamDetection:Window an, in denen der RSSI-Wert über JamDetection:RssiThreshold liegen muss, um die Jam-Erkennung auszulösen. Muss kleiner als JamDetection:Window sein. Bereich: 1–63
JamDetection:Debug:HistoryBitmap
Format
64-Bit-Wert
Beschreibung
Liefert Informationen zum Jam-Erkennungsstatusverlauf für Monitoring- und Debugging-Zwecke.

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-Grenzwert für die Jam-Erkennung auf -45 dBm in einem NCP 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.