<ph type="x-smartling-placeholder"></ph> GitHub のソースを表示
任意のデバイスで信号妨害を検出するための構成可能なメカニズムを提供する OpenThread ノードで、Jam 検出機能を有効にします。
この機能は、以下を行えることを必要とするデバイス認証に役立ちます。 電波妨害を検出できます各認証タイプの要件を満たすように構成できます。
仕組み
Jam 検出機能がノードの RSSI(受信信号強度インジケーター)をモニタリングする そのチャンネルが一定期間、過去 90 日間の する。
Jam 検出が有効になっている場合:
- Jam の検出状態が
false
に設定されています。 - ノードは、1 秒間隔で RSSI を複数回サンプリングします。
- 1 秒間全体の RSSI が、すべてのサンプルで構成された RSSI しきい値を上回る場合、その 1 秒間はジャミングと見なされます。
- 障害が発生した 1 秒間隔の総数が次の値以上
構成された Busy Period の総数と等しい
前の構成した検出ウィンドウ秒内の秒数
その時点の Jam 検出状態が設定され、
true
まで。 - 障害が発生した 1 秒間隔の総数が未満場合
その期間内に構成された Busy Period 秒の合計
任意の時点で先行構成した検出ウィンドウの秒数、
そのときの Jam 検出状態が
false
に設定されます。
履歴ビットマップ
OpenThread API と wpantund
プロパティでは、直近の 63 秒間のビットマップを取得できます。このビットマップは、直前の 63 秒間の各時点で RSSI が構成された RSSI しきい値を超えたかどうかを示します。
たとえば、次のビットマップを取得します。
0xC248068C416E7FF0
バイナリに変換すると、過去 63 秒間に RSSI が構成された RSSI しきい値を超えたすべてのインスタンスが生成されます。
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
[Detections Window] が 16 秒に設定され、[Busy Period] が 8 に設定されている場合
51 秒で Jam の検出状態が true
になります。
RSSI しきい値が 8 秒以上を超えた最初のインスタンス
表示されます。この例では、[Jam Detection State] は
次の 13 秒間は true
。
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
-45 dBm が RSSI しきい値として構成されている場合、このビットマップは次のグラフで表すことができます。
有効にする方法
この機能はデフォルトで無効になっています。
定義別
Jam 検出を有効にするには、
1
として OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
openthread/src/core/config/openthread-core-default-config.h
OpenThread のビルドの前に次の作業を行います。
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
オプション別
または、ビルド時に -DOT_JAM_DETECTION=ON
ビルド オプションを使用します。
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
パラメータ
Jam 検出パラメータは、OpenThread API、
Spinel プロトコル、または wpanctl
(ネットワーク用の wpantund
コマンドライン ツール)
共同プロセッサ(NCP)の管理。その後の構成なしでこの機能が有効になっている場合は、デフォルト値が適用されます。
次のパラメータを使用してこの機能をカスタマイズします。
パラメータ | |||||
---|---|---|---|---|---|
RSSI しきい値 |
|
||||
検出ウィンドウ |
|
||||
混雑期間 |
|
API
OpenThread
Jam Detection API を使用して以下を行います。 Jam 検出機能を OpenThread アプリケーションで直接管理できます。「 OpenThread API は次の機能を提供します。
- 機能の開始と停止
- Jam の検出状態を確認する
- すべてのパラメータを管理する
- 現在の Jam 検出履歴のビットマップを取得する
- ジャムが検出されたときのコールバック関数を登録する
スピネル
Spinel プロトコルを使用すると、ホストデバイスは NCP と直接通信できます。このプロトコルは、openthread/src/lib/spinel/spinel.h
でジャム検出プロパティを公開し、次の機能を提供します。
- 機能を開始および停止する
- Jam の検出状態を確認する
- すべてのパラメータを管理する
- 現在の Jam 検出履歴のビットマップを取得する
CLI
OpenThread
この機能に関連する OpenThread CLI コマンドはありません。
ウパンタント
wpanctl
CLI を使用して、OpenThread NCP 構成のジャム検出機能を管理します。wpantund
で、すべての Jam 検出の設定が NCP に保持されます。
リセットできます。
wpanctl
を使用すると、次の wpantund
プロパティにアクセスできます。
プロパティ | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
たとえば、NCP の Jam 検出状態を取得するには、次のコマンドを実行します。
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
NCP で Jam 検出 RSSI しきい値を -45 dBm に設定するには:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
wpantund
プロパティの詳細については、wpantund
GitHub リポジトリをご覧ください。