Jam-Erkennung

Quelle auf GitHub ansehen

Wenn Sie einen konfigurierbaren Mechanismus für die Signalstörerkennung auf einem OpenThread-Knoten bereitstellen möchten, aktivieren Sie die Jam Detect-Funktion.

Das ist nützlich für Gerätezertifizierungen, bei denen Signalblockierungen auf einem bestimmten Kanal erforderlich sind. Sie kann so konfiguriert werden, dass sie die Anforderungen der einzelnen Zertifizierungstypen erfüllt.

Funktionsweise

Die Jamerkennung überwacht den RSSI-Wert (Empfangen der Signalstärke) eines Knotens während bestimmter Zeiträume, um festzustellen, ob der Kanal klemmt.

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 das gesamte 1-Sekunden-Intervall für jede Stichprobe über dem konfigurierten RSSI-Grenzwert liegt, wird dieses Intervall von einer Sekunde als klemmt betrachtet.
  4. Wenn eine Gesamtzahl von sekundengenauen Intervallen zu einem beliebigen Zeitpunkt über bzw. gleich der Gesamtzahl der konfigurierten Beschäftigungszeiträume innerhalb der vorherigen Erkennungsfenster ist, wird der Jam-Erkennungsstatus zu diesem Zeitpunkt auf true gesetzt.
  5. Wenn eine Gesamtanzahl von sekundengenauen Intervallen kleiner als die Gesamtzahl der konfigurierten Beschäftigungszeiträume innerhalb der zuvor konfigurierten Erkennungsfenster-Sekunden ist, wird der Jam-Erkennungsstatus zu diesem Zeitpunkt auf false gesetzt.

Verlauf-Bitmap

In den OpenThread API- und wpantund-Properties können Sie eine Bitmap der letzten 63 Sekunden abrufen. Diese Bitmap zeigt an, ob der RSSI den konfigurierten RSSI-Grenzwert bei jedem der vorhergehenden 63 Sekunden überschritten hat.

Du kannst beispielsweise die folgende Bitmap abrufen:

0xC248068C416E7FF0

Bei der Konvertierung in das Binärprogramm wird jede Instanz generiert, die der RSSI-Wert über den konfigurierten 62-Sekunden-Grenzwert überschritten hat:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Wenn der Erkennungszeitraum auf 16 Sekunden und der Verfügbarkeitszeitraum auf 8 Sekunden festgelegt ist, wird der Status der Jam-Erkennung zu 51 Sekunden true geändert. Das ist die erste Instanz, bei der der RSSI-Grenzwert in den vorherigen 16 Sekunden mindestens 8 Sekunden überschritten wurde. In diesem Beispiel bleibt der Jam-Erkennungsstatus für die nächsten 13 Sekunden true.

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

Diese Bitmap kann durch das folgende Diagramm dargestellt werden, wenn -45 dBm der konfigurierte RSSI-Grenzwert ist:

OT-Jam-Erkennung

Aktivierungsmethode

Diese Funktion ist standardmäßig deaktiviert.

Nach Definition

Zum Aktivieren der Jam-Erkennung müssen Sie OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE in der Datei openthread/src/core/config/openthread-core-default-config.h als 1 definieren, bevor Sie OpenThread erstellen:

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Nach Option

Alternativ kannst du beim Erstellen von OpenThread die Build-Option -DOT_JAM_DETECTION=ON verwenden:

./script/build -DOT_JAM_DETECTION=ON

Parameter

Parameter zur Jamerkennung können nur über die OpenThread API, das Spinel-Protokoll oder wpanctl, das Befehlszeilentool wpantund für die Verwaltung von Netzwerk-Co-Prozessoren (NCP) konfiguriert werden. Standardwerte werden angewendet, wenn das Feature ohne nachfolgende 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-Wert (in DBM) an, über dem der Kanal blockiert wird.
Erkennungsfenster
Standardwert
63 Sekunden
Beschreibung
Gibt das Fenster in Sekunden an, in dem auf Signalblockierung überprüft werden soll. Bereich: 1–63.
Nicht verfügbar
Standardwert
63 Sekunden
Beschreibung
Gibt die Anzahl der Sekunden insgesamt im Erkennungsfenster an, in denen der RSSI-Grenzwert ü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 für Jam-Erkennung abrufen
  • Callback-Funktion für erkannte Jams registrieren

Spinell

Das Spinel-Protokoll ermöglicht die direkte Kommunikation eines Hostgeräts mit einem NCP. Mit diesem Protokoll werden Jam Detection-Attribute in openthread/src/lib/spinel/spinel.h verfügbar gemacht, die die folgenden Funktionen bieten:

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

Befehlszeile

OpenThread

Für dieses Feature gibt es keine OpenThread-Befehlszeilenbefehle.

Wpantund

Mit der wpanctl-Befehlszeile können Sie die Jam Detection-Funktion für eine OpenThread-NCP-Konfiguration verwalten. wpantund behält die gesamte Konfiguration der Jam-Erkennung bei, wenn das 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 ein Signal Jam erkannt wird.
JamDetection:Enable
Format
boolean
Beschreibung
Funktion zur Jam-Erkennung aktivieren oder deaktivieren
JamDetection:RssiThreshold
Format
dBm
Beschreibung
Gibt den Grenzwert für den RSSI-Wert in DBM an, über dem der blockierte Kanal berücksichtigt wird.
JamDetection:Window
Format
Sekunden
Beschreibung
Gibt das Fenster in Sekunden an, in dem auf Signalblockierung überprü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 ü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
Stellt Informationen zum Status des Jam Detection-Status für Monitoring- und Debugging-Zwecke bereit.

So rufen Sie beispielsweise den Jam Detection-Status für einen NCP ab:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

So legen Sie den Grenzwert für die Jam Detection-RSSI 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-Properties finden Sie im wpantund-GitHub-Repository.