Aby zapewnić konfigurowalny mechanizm wykrywania zakłóceń sygnału na dowolnym węźle OpenThread, włącz funkcję wykrywania zakłóceń.
Ta funkcja jest przydatna w przypadku certyfikatów urządzeń, które wymagają możliwości wykrywania zagłuszania sygnału na określonym kanale. Można ją skonfigurować tak, aby spełniała wymagania każdego rodzaju certyfikacji.
Jak to działa
Wykrywanie zakłóceń monitoruje wskaźnik siły odbieranego sygnału (RSSI) węzła w określonych przedziałach czasu, aby ustalić, czy kanał został zakłócony.
Gdy wykrywanie zagłuszania jest włączone:
- Stan wykrywania zakłóceń jest ustawiony na
false
. - Węzeł próbkuje RSSI wielokrotnie w każdym 1-sekundowym interwale.
- Jeśli w ciągu całej 1-sekundowej przerwy wartość RSSI pozostaje powyżej skonfigurowanego progu RSSI dla każdej próbki, ta 1-sekundowa przerwa jest uznawana za zakłóconą.
- Jeśli łączna liczba zablokowanych sekundowych przedziałów czasu jest większa lub
równa łącznej liczbie skonfigurowanych sekund okresu zajętości w ciągu poprzednich skonfigurowanych sekund okna wykrywania w dowolnym momencie, stan wykrywania zakłóceń w tym momencie jest ustawiany na
true
. - Jeśli łączna liczba zablokowanych sekundowych przedziałów czasu jest mniejsza niż łączna liczba skonfigurowanych sekund okresu zajętości w ciągu poprzednich skonfigurowanych sekund okna wykrywania w dowolnym momencie, stan wykrywania zakłóceń w tym momencie jest ustawiony na
false
.
Bitmapa historii
W OpenThread API można pobrać bitmapę z ostatnich 63 sekund. Ta mapa bitowa wskazuje, czy w każdej z 63 poprzednich sekund wartość RSSI przekroczyła skonfigurowany próg RSSI.
Możesz na przykład pobrać tę mapę bitową:
0xC248068C416E7FF0
Konwersja na format binarny powoduje, że każda instancja, w której w ciągu ostatnich 63 sekund wartość RSSI przekroczyła skonfigurowany próg RSSI:
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ń zmieni się na true
po 51 sekundach, ponieważ jest to pierwszy moment, w którym próg RSSI został przekroczony przez co najmniej 8 pełnych sekund w ciągu poprzednich 16 sekund. W tym przykładzie stan wykrywania zakłóceń pozostaje
true
przez kolejne 13 sekund.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
Jeśli skonfigurowany próg RSSI wynosił -45 dBm, bitmapę można przedstawić na tym wykresie:

Jak włączyć
Ta funkcja jest domyślnie wyłączona.
Według definicji
Aby włączyć wykrywanie zakłóceń, zdefiniuj OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
jako 1
w pliku openthread/src/core/config/openthread-core-default-config.h
przed skompilowaniem OpenThread:
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
Według opcji
Możesz też użyć opcji -DOT_JAM_DETECTION=ON
build podczas tworzenia
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
Parametry
Parametry wykrywania zakłóceń można skonfigurować tylko za pomocą interfejsu OpenThread API lub protokołu Spinel. Wartości domyślne są stosowane, jeśli funkcja jest włączona bez późniejszej konfiguracji.
Dostosuj tę funkcję za pomocą tych parametrów:
Parametry | |||||
---|---|---|---|---|---|
Próg RSSI |
|
||||
Okno wykrywania |
|
||||
Okres wzmożonego ruchu |
|
Interfejs API
OpenThread
Użyj interfejsu Jam Detection API, aby zarządzać funkcją wykrywania zakłóceń bezpośrednio w aplikacji OpenThread. Interfejs OpenThread API udostępnia te funkcje:
- Uruchamianie i zatrzymywanie funkcji
- Wyświetlanie stanu wykrywania zakłóceń
- Zarządzanie wszystkimi parametrami
- Pobieranie bieżącej mapy bitowej historii wykrywania zakłóceń
- Zarejestruj funkcję wywołania zwrotnego, która będzie wywoływana po wykryciu zakłóceń
Spinel
Protokół Spinel umożliwia urządzeniu hosta bezpośrednią komunikację z procesorem NCP.
Ten protokół udostępnia właściwości wykrywania zakłóceń w openthread/src/lib/spinel/spinel.h
, które zapewniają te funkcje:
- Uruchamianie i zatrzymywanie funkcji
- Wyświetlanie stanu wykrywania zakłóceń
- Zarządzanie wszystkimi parametrami
- Pobieranie bieżącej mapy bitowej historii wykrywania zakłóceń
Interfejs wiersza poleceń
OpenThread
Z tą funkcją nie są powiązane żadne polecenia interfejsu CLI OpenThread.