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:
- Der Status der Jam-Erkennung ist auf
false
festgelegt. - Der Knoten erfasst den RSSI mehrmals über ein Sekundenintervall.
- 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.
- 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. - 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:
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 |
|
||||
Erkennungsfenster |
|
||||
Stoßzeit |
|
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 |
|
||||
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 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.