Aby udostępnić konfigurowalny mechanizm wykrywania zagnieżdżania sygnałów w Węzeł OpenThread, włącz funkcję wykrywania Jamów.
Ta funkcja jest przydatna w przypadku certyfikatów urządzeń, które wymagają wykrywania zakłóceń sygnału na określonym kanale. Można go skonfigurować tak, aby spełniał wymagania poszczególnych typów certyfikatów.
Jak to działa
Wykrywanie Jamu monitoruje RSSI (wskaźnik siły odbieranego sygnału) węzła w określonych przedziałach czasu, aby ustalić, czy kanał zacięty.
Gdy funkcja wykrywania zakłóceń jest włączona:
- Stan wykrywania Jamu jest ustawiony na
false
. - Węzeł próbkuje RSSI kilkakrotnie w ciągu każdego 1-sekundowego interwału.
- Jeśli w przypadku każdego próbkowania w ciągu 1 sekundy wartość RSSI pozostaje powyżej skonfigurowanego progresu RSSI, 1-sekundowy przedział czasu jest uznawany za zablokowany.
- Jeśli łączna liczba zaciętych jednosekundowych interwałów jest większa niż lub
równe łącznej liczbie skonfigurowanych okresów obciążenia
sekund w ciągu poprzedzających skonfigurowanych sekund okna wykrywania sekund
w dowolnym momencie zostanie ustawiony stan wykrywania Jamu
do
true
. - Jeśli łączna liczba zakłóceń w ciągu 1 sekundy jest mniejsza od łącznej liczby skonfigurowanych okresów zajętości w sekundach w poprzednich skonfigurowanych oknach wykrywania w dowolnym momencie, stan wykrywania zakłóceń w tym momencie jest ustawiony na
false
.
Mapa bitowa historii
W przypadku interfejsu OpenThread API i usług wpantund
można pobrać bitmapę z ostatnich 63 sekund. Ta mapa bitowa
wskazuje, czy RSSI przekroczył(a) skonfigurowany próg RSSI w każdym
poprzedzających 63 sekundy.
Możesz na przykład pobrać taką mapę bitową:
0xC248068C416E7FF0
Konwersja na format binarny powoduje utworzenie każdej instancji RSSI powyżej skonfigurowanej Próg RSSI w ciągu ostatnich 63 sekund:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Jeśli okno wykrywania jest ustawione na 16 sekund, a okres zajętości na 8 sekund, stan wykrywania zakłóceń staje się true
w 51. sekundzie, ponieważ jest to pierwszy przypadek, w którym próg RSSI został przekroczony przez co najmniej 8 sekund w ciągu ostatnich 16 sekund. W tym przykładzie stan wykrywania zakłóceń pozostaje ustawiony natrue
przez następne 13 sekund.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
Bitmapa może być przedstawiona w postaci poniższego wykresu, jeśli wartość -45 dBm skonfigurowany próg RSSI:
Jak włączyć
Ta funkcja jest domyślnie wyłączona.
Według definicji
Aby włączyć wykrywanie Jamu, określ
OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
jako 1
w
openthread/src/core/config/openthread-core-default-config.h
przed utworzeniem OpenThread:
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
Według opcji
Możesz też użyć opcji kompilacji -DOT_JAM_DETECTION=ON
podczas kompilacji
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
Parametry
Parametry wykrywania zakłóceń można skonfigurować tylko za pomocą interfejsu OpenThread API, protokołu Spinel lub narzędzia wiersza poleceń wpanctl
, które jest wpantund
i służy do zarządzania współprocesorem sieciowym (NCP). Jeśli funkcja jest włączona bez dalszej konfiguracji, są stosowane wartości domyślne.
Dostosuj tę funkcję za pomocą tych parametrów:
Parametry | |||||
---|---|---|---|---|---|
Próg RSSI |
|
||||
Okno wykrywania |
|
||||
Okres obciążenia |
|
Interfejs API
OpenThread
Użyj interfejsu Jam Detection API, aby: zarządzać funkcją wykrywania Jamów bezpośrednio w aplikacji OpenThread. Interfejs OpenThread API udostępnia te funkcje:
- Włączanie i wyłączanie funkcji
- Wyświetl stan wykrywania Jamu
- Zarządzanie wszystkimi parametrami
- Pobieranie bieżącej bitmapy historii wykrywania tłoku
- Rejestrowanie funkcji wywołania zwrotnego na wypadek wykrycia utknięcia
Spinel
Protokół Spinel umożliwia urządzeniu hosta komunikowanie się bezpośrednio z urządzeniem NCP.
Ten protokół ujawnia właściwości wykrywania Jamów w
openthread/src/lib/spinel/spinel.h
które zapewniają takie funkcje:
- Włączanie i wyłączanie funkcji
- Wyświetl stan wykrywania Jamu
- Zarządzanie wszystkimi parametrami
- Pobierz bieżącą mapę bitową historii wykrywania Jamów
interfejs CLI
OpenThread
Z tą funkcją nie są powiązane żadne polecenia OpenThread CLI.
Wpantund
Aby zarządzać funkcją wykrywania zakłóceń w przypadku konfiguracji OpenThread NCP, użyj interfejsu wiersza poleceń wpanctl
. wpantund
zachowuje całą konfigurację wykrywania Jamów po NCP
.
wpanctl
zapewnia dostęp do tych usług wpantund
:
Właściwości | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Aby na przykład uzyskać stan wykrywania zakłóceń w przypadku NCP:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
Aby ustawić próg RSSI wykrywania Jamów na -45 dBm dla NCP:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
Więcej informacji o usługach wpantund
znajdziesz w GitHubie wpantund
.