Jam-Erkennung

Quellcode auf GitHub ansehen

Um einen konfigurierbaren Mechanismus zur Signalstörerkennung auf beliebigen OpenThread-Knoten, Funktion zur Jam-Erkennung aktivieren.

Diese Funktion ist nützlich für Gerätezertifizierungen, für die Folgendes erforderlich ist: Signalstörungen auf einem bestimmten Kanal erkennen. Es kann so konfiguriert werden, Anforderungen der einzelnen Zertifizierungstypen.

Funktionsweise

Die Jam-Erkennung überwacht den RSSI (Empfangssignalstärkenindikator) eines Knotens während bestimmter Zeiträume, um zu ermitteln, ob der Kanal klemmt.

Wenn die Jam-Erkennung aktiviert ist:

  1. Der Status der Jam-Erkennung ist auf false festgelegt.
  2. Der Knoten erfasst den RSSI mehrmals über ein Sekundenintervall.
  3. Bleibt der RSSI über das gesamte Ein-Sekunden-Intervall über dem für jede Stichprobe einen RSSI-Grenzwert konfiguriert, also eine Sekunde, gilt das Intervall als gestört.
  4. Wenn die Gesamtzahl der gestörten Intervalle von einer Sekunde größer oder gleich der Gesamtzahl der konfigurierten Beschäftigten Zeiträume innerhalb des vorhergehenden konfigurierten Erkennungszeitraums ist, wird der Status der Störungserkennung zu diesem Zeitpunkt auf true gesetzt.
  5. Wenn die Gesamtzahl der blockierten Ein-Sekunden-Intervalle kleiner ist als die Gesamtzahl der konfigurierten Sekunden für den Beschäftigten-Zeitraum innerhalb von des zuvor konfigurierten Erkennungsfensters an einem beliebigen Punkt im ist der Jam-Erkennungsstatus für diesen Zeitpunkt auf false eingestellt.

Bitmap-Verlauf

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

So können Sie beispielsweise die folgende Bitmap abrufen:

0xC248068C416E7FF0

Bei der Konvertierung in das Binärformat wird jede Instanz erzeugt, die RSSI über die konfigurierten Werte hinaus lag. RSSI-Grenzwert in den letzten 63 Sekunden:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Wenn das Erkennungsfenster auf 16 Sekunden und der Verfügbarkeitszeitraum auf 8 Sekunden festgelegt ist wird der Jam-Erkennungsstatus bei 51 Sekunden auf true gesetzt. erstes Ereignis, bei dem der RSSI-Grenzwert mindestens 8 ganze Sekunden überschritten wurde in den letzten 16 Sekunden. In diesem Beispiel bleibt der Status der Jam-Erkennung true für die nächsten 13 Sekunden.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

Diese Bitmap könnte durch das folgende Diagramm dargestellt werden, wenn -45 dBm der konfigurierte RSSI-Grenzwert war:

OT-Jam-Erkennung

Aktivierungsmethode

Diese Funktion ist standardmäßig deaktiviert.

Durch Definieren

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

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Nach Option

Alternativ können Sie die -DOT_JAM_DETECTION=ON-Buildoption verwenden, wenn Sie OpenThread erstellen:

./script/build -DOT_JAM_DETECTION=ON

Parameter

Parameter für die Störungserkennung können nur über die OpenThread API, das Spinel-Protokoll oder wpanctl, das wpantund-Befehlszeilentool zur Verwaltung des Netzwerk-Coprozessors (NCP), konfiguriert werden. Standardwerte werden angewendet, wenn die Funktion ohne anschließende Konfiguration aktiviert wird.

Sie können diese Funktion mit den folgenden Parametern anpassen:

Parameter
RSSI-Grenzwert
Standardwert
0 dBm
Beschreibung
Gibt den RSSI-Schwellenwert in dBm an, ab dem der Kanal als gestört betrachtet wird.
Erkennungsfenster
Standardwert
63 Sekunden
Beschreibung
Gibt das Zeitfenster in Sekunden an, in dem auf Signalstörungen geprüft werden soll. Bereich: 1–63.
Stoßzeit
Standardwert
63 Sekunden
Beschreibung
Gibt die Gesamtzahl der Sekunden innerhalb des Erkennungsfensters an, in denen der RSSI über dem RSSI-Grenzwert liegen muss, um die Funkstörungserkennung auszulösen. Muss kleiner als das Erkennungsfenster sein. Bereich: 1–63.

API

OpenThread

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

  • Funktion starten und beenden
  • Jam-Erkennungsstatus anzeigen
  • Alle Parameter verwalten
  • Aktuelle Bitmap der Jam-Erkennung abrufen
  • Callback-Funktion für den Fall registrieren, dass ein Jam erkannt wird

Spinell

Über das Spinel-Protokoll kann ein Hostgerät direkt mit einem NCP kommunizieren. Dieses Protokoll stellt Eigenschaften zur Blockierungserkennung in openthread/src/lib/spinel/spinel.h bereit, die die folgenden Funktionen bieten:

  • Funktion starten und beenden
  • Jam-Erkennungsstatus anzeigen
  • Alle Parameter verwalten
  • Aktuelle Bitmap des Stauerkennungsverlaufs abrufen

Befehlszeile

OpenThread

Es gibt keine OpenThread-CLI-Befehle im Zusammenhang mit dieser Funktion.

Wpantund

Mit der wpanctl-Befehlszeile die Jam-Erkennungsfunktion für einen OpenThread-NCP verwalten Konfiguration. wpantund behält die gesamte Konfiguration der Jam-Erkennung nach NCP bei zurückgesetzt werden.

wpanctl bietet Zugriff auf die folgenden wpantund-Properties:

Attribute
JamDetection:Status
Format
boolean
Beschreibung
Schreibgeschützt. Status der Papierstauerkennung. Gibt an, ob derzeit ein Signalstau erkannt wird.
JamDetection:Enable
Format
boolean
Beschreibung
Jam-Erkennung aktivieren oder deaktivieren.
JamDetection:RssiThreshold
Format
dBm
Beschreibung
Gibt den RSSI-Grenzwert in dBm an, ab dem der Kanal als blockiert betrachtet wird.
JamDetection:Window
Format
Sekunden
Beschreibung
Gibt das Zeitfenster in Sekunden an, in dem nach Signalstörungen gesucht werden soll. Bereich: 1–63.
JamDetection:BusyPeriod
Format
Sekunden
Beschreibung
Gibt die Anzahl der Sekunden innerhalb von JamDetection:Window an, in denen der RSSI über JamDetection:RssiThreshold liegen muss, um die Funkstörungserkennung 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 für Monitoring- und Fehlerbehebungszwecke.

So rufen Sie beispielsweise den Status der Blockierungserkennung 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 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 findest du im wpantund-GitHub Repository.