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 Erkennung von Störungen.

Diese Funktion ist nützlich für Gerätezertifizierungen, bei denen die Möglichkeit erforderlich ist, Signalstörungen auf einem bestimmten Kanal zu erkennen. Sie kann so konfiguriert werden, dass sie den Anforderungen der jeweiligen Zertifizierung entspricht.

Funktionsweise

Die Störungserkennung überwacht den RSSI (Received Signal Strength Indicator) eines Knoten während bestimmter Zeiträume, um festzustellen, ob der Kanal gestört wurde.

Wenn die Stauerkennung aktiviert ist:

  1. Der Status der Störungserkennung ist auf false festgelegt.
  2. Der Knoten erfasst den RSSI mehrmals in jedem Einsekundenintervall.
  3. Wenn der RSSI während des gesamten Ein-Sekunden-Intervalls für jede Stichprobe über dem konfigurierten RSSI-Grenzwert bleibt, gilt dieses Ein-Sekunden-Intervall als gestört.
  4. Wenn die Gesamtzahl der blockierten Einsekundenintervalle zu einem beliebigen Zeitpunkt größer als oder gleich der Gesamtzahl der konfigurierten Sekunden für den Zeitraum mit hoher Auslastung innerhalb der vorherigen konfigurierten Sekunden für das Erkennungszeitfenster ist, wird der Status der Stauerkennung zu diesem Zeitpunkt auf true gesetzt.
  5. Wenn die Gesamtzahl der blockierten Einsekundenintervalle zu einem beliebigen Zeitpunkt geringer als die Gesamtzahl der konfigurierten Sekunden für den Zeitraum mit hoher Auslastung innerhalb der vorherigen konfigurierten Sekunden für den Erkennungszeitraum ist, wird der Status der Störungserkennung zu diesem Zeitpunkt auf false gesetzt.

Verlaufs-Bitmap

In der OpenThread API kann eine Bitmap der letzten 63 Sekunden abgerufen werden. Dieses Bitmap gibt an, ob der RSSI in den letzten 63 Sekunden den konfigurierten RSSI-Schwellenwert überschritten hat.

Sie können beispielsweise das folgende Bitmap abrufen:

0xC248068C416E7FF0

Bei der Umwandlung in Binärzahlen wird für jede Instanz, in der der RSSI in den letzten 63 Sekunden über den konfigurierten RSSI-Schwellenwert gestiegen ist, Folgendes ausgegeben:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Wenn das Erkennungsfenster auf 16 Sekunden und der Zeitraum mit hoher Auslastung auf 8 Sekunden festgelegt ist, ändert sich der Status der Störungserkennung nach 51 Sekunden in true. Das ist der erste Zeitpunkt, an dem der RSSI-Schwellenwert in den vorangegangenen 16 Sekunden mindestens 8 Sekunden lang überschritten wurde. In diesem Beispiel bleibt der Status „Stau erkannt“ für die nächsten 13 Sekunden true.

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

Dieses Bitmap kann durch das folgende Diagramm dargestellt werden, wenn -45 dBm der konfigurierte RSSI-Schwellenwert war:

Erkennung von OT-Störungen

Aktivierungsmethode

Diese Funktion ist standardmäßig deaktiviert.

Durch „define“

Wenn Sie die Stauerkennung aktivieren möchten, definieren Sie OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE als 1 in der Datei openthread/src/core/config/openthread-core-default-config.h, bevor Sie OpenThread erstellen:

#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 verwenden, wenn Sie OpenThread erstellen:

./script/build -DOT_JAM_DETECTION=ON

Parameter

Parameter für die Stauerkennung können nur über die OpenThread API oder das Spinel-Protokoll konfiguriert werden. Standardwerte werden angewendet, wenn die Funktion ohne anschließende Konfiguration aktiviert wird.

Passen Sie dieses Feature mit den folgenden Parametern an:

Parameter
RSSI-Grenzwert
Standardwert
0 dBm
Beschreibung
Gibt den Schwellenwert für den RSSI-Pegel in dBm an, ab dem der Kanal als überlastet gilt.
Erkennungszeitraum
Standardwert
63 Sekunden
Beschreibung
Gibt das Zeitfenster in Sekunden an, in dem nach Signalstörungen gesucht werden soll. Bereich: 1–63.
Stoßzeiten
Standardwert
63 Sekunden
Beschreibung
Gibt die Anzahl der aggregierten Sekunden innerhalb des Erkennungszeitraums an, in denen der RSSI über dem RSSI-Grenzwert liegen muss, um die Störungserkennung auszulösen. Muss kleiner als das Erkennungszeitfenster sein. Bereich: 1–63.

API

OpenThread

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

  • Funktion starten und beenden
  • Status der Stauerkennung ansehen
  • Alle Parameter verwalten
  • Aktuelle Bitmap des Jam Detection-Verlaufs abrufen
  • Callback-Funktion registrieren, die aufgerufen wird, wenn ein Stau erkannt wird

Spinell

Das Spinel-Protokoll ermöglicht es einem Hostgerät, direkt mit einem NCP zu kommunizieren. Dieses Protokoll stellt Eigenschaften zur Stauerkennung in openthread/src/lib/spinel/spinel.h bereit, die die folgenden Funktionen bieten:

  • Funktion starten und beenden
  • Status der Stauerkennung ansehen
  • Alle Parameter verwalten
  • Aktuelle Bitmap des Jam Detection-Verlaufs abrufen

Befehlszeile

OpenThread

Für diese Funktion sind keine OpenThread-Befehlszeilenbefehle verfügbar.