Wenn Sie einen konfigurierbaren Mechanismus zur Erkennung von Signalstörungen auf jedem OpenThread-Knoten bereitstellen möchten, aktivieren Sie die Funktion „Störung erkennen“.
Diese Funktion ist nützlich für Gerätezertifizierungen, bei denen die Fähigkeit zum Erkennen von Signalstörungen auf einem bestimmten Kanal erforderlich ist. Sie kann so konfiguriert werden, dass sie den Anforderungen der einzelnen Zertifizierungstypen entspricht.
Funktionsweise
Die Jam-Erkennung überwacht den RSSI (Empfangssignalstärkenindikator) eines Knotens während bestimmter Zeitfenster, um festzustellen, ob der Kanal blockiert wurde.
Wenn die Stauerkennung aktiviert ist:
- Der Status der Blockierungserkennung ist auf
false
festgelegt. - Der Knoten erfasst den RSSI mehrmals über ein Sekundenintervall.
- Wenn der RSSI während des gesamten Intervalls von einer Sekunde für jedes Sample über dem konfigurierten RSSI-Grenzwert bleibt, wird das Intervall von einer Sekunde als gestört betrachtet.
- Wenn die Gesamtzahl der überlasteten 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 Blockierungserkennung zu diesem Zeitpunkt auf
true
gesetzt. - Wenn die Gesamtzahl der fehlerhaften Intervalle von einer Sekunde unter der Gesamtzahl der konfigurierten Beschäftigten Zeiträume innerhalb des vorhergehenden konfigurierten Erkennungszeitraums liegt, wird der Zustand der Blockierungserkennung zu diesem Zeitpunkt auf
false
gesetzt.
Verlaufs-Bitmap
In der OpenThread API und den wpantund
-Properties kann eine Bitmap der letzten 63 Sekunden abgerufen werden. Diese Bitmap zeigt an, ob der RSSI den konfigurierten RSSI-Schwellenwert bei jeder der vorhergehenden 63 Sekunden überschritten hat.
So können Sie beispielsweise die folgende Bitmap abrufen:
0xC248068C416E7FF0
Bei der Umwandlung in Binärdaten wird jede Instanz erfasst, bei der der RSSI während der letzten 63 Sekunden über den konfigurierten RSSI-Grenzwert gestiegen ist:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Wenn das Erkennungsfenster auf 16 Sekunden und der Verfügbarkeitszeitraum auf 8 Sekunden festgelegt ist, ändert sich der Jam-Erkennungsstatus nach 51 Sekunden zu true
. Dies ist die erste Instanz, bei der der RSSI-Grenzwert in den vergangenen 16 Sekunden mindestens 8 ganze Sekunden überschritten wurde. In diesem Beispiel bleibt der Status der Stauerkennung für die nächsten 13 Sekunden bei true
.
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:
Aktivierungsmethode
Diese Funktion ist standardmäßig deaktiviert.
Nach Definition
Wenn Sie die Störungserkennung 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 -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 das Feature ohne nachfolgende Konfiguration aktiviert wird.
Passen Sie diese Funktion mithilfe der folgenden Parameter an:
Parameter | |||||
---|---|---|---|---|---|
RSSI-Grenzwert |
|
||||
Erkennungszeitraum |
|
||||
Stoßzeit |
|
API
OpenThread
Mit der Jam Detection API können Sie die Funktion „Störung erkennen“ direkt in Ihrer OpenThread-Anwendung verwalten. Die OpenThread API bietet die folgenden Funktionen:
- Funktion starten und beenden
- Status der Papierstauerkennung aufrufen
- Alle Parameter verwalten
- Aktuelle Bitmap der Jam-Erkennung abrufen
- Callback-Funktion für den Fall registrieren, dass ein Stau 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
- Status der Papierstauerkennung aufrufen
- Alle Parameter verwalten
- Aktuelle Bitmap des Stauerkennungsverlaufs abrufen
Befehlszeile
OpenThread
Es gibt keine OpenThread-CLI-Befehle im Zusammenhang mit dieser Funktion.
wpantund
Verwenden Sie die wpanctl
-Befehlszeile, um die Jam-Erkennungsfunktion für eine OpenThread-NCP-Konfiguration zu verwalten. wpantund
behält beim Zurücksetzen des NCP die gesamte Konfiguration für die Blockierungserkennung bei.
wpanctl
bietet Zugriff auf die folgenden wpantund
-Properties:
Attribute | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
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 Funkstörungserkennung 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 GitHub-Repository für wpantund
.