Wykrywanie Jamów

Wyświetl źródło w GitHubie

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:

  1. Stan wykrywania zakłóceń jest ustawiony na false.
  2. Węzeł próbkuje RSSI wielokrotnie w każdym 1-sekundowym interwale.
  3. 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ą.
  4. 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.
  5. 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

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:

Wykrywanie zakłóceń OT

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
Wartość domyślna
0 dBm
Opis
Określa próg poziomu RSSI w dBm, powyżej którego kanał jest uznawany za zakłócony.
Okno wykrywania
Wartość domyślna
63 sekundy
Opis
Określa przedział czasu w sekundach, w którym należy sprawdzić, czy nie występuje zagłuszanie sygnału. Zakres: 1–63.
Okres wzmożonego ruchu
Wartość domyślna
63 sekundy
Opis
Określa liczbę sekund w okresie wykrywania, w których wartość RSSI musi być wyższa od progu RSSI, aby uruchomić wykrywanie zakłóceń. Wartość musi być mniejsza niż Okres wykrywania. Zakres: 1–63.

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.