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:
- Der Status der Störungserkennung ist auf
false
festgelegt. - Der Knoten erfasst den RSSI mehrmals in jedem Einsekundenintervall.
- 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.
- 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. - 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:

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 |
|
||||
Erkennungszeitraum |
|
||||
Stoßzeiten |
|
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.