Wykrywanie Jamu

Wyświetl źródło w GitHub

Aby skonfigurować konfigurowalny mechanizm wykrywania zagłuszania sygnałów w dowolnym węźle OpenThread, włącz funkcję wykrywania Jamu.

Ta funkcja jest przydatna w przypadku certyfikatów urządzeń, które wymagają możliwości wykrycia zakłóceń w działaniu sygnału na poszczególnych kanałach. Można go skonfigurować w taki sposób, aby spełniał wymagania każdego rodzaju certyfikacji.

Jak to działa

Wykrywanie Jamu monitoruje wskaźnik RSSI (odbioru sygnału odbieranego) węzła w określonych przedziałach czasu, aby określić, czy w kanale został zablokowany.

Gdy wykrywanie Jamu jest włączone:

  1. Stan wykrywania Jamu jest ustawiony na false.
  2. Węzeł próbkuje RSSI kilka razy w każdym sekundzie.
  3. Jeśli wskaźnik RSSI w całym sekundowym przedziale czasu będzie przekraczał skonfigurowany próg RSS dla każdej próbki, ten 1-sekundowy interwał jest uważany za zacięty.
  4. Jeśli łączna liczba zaciętych jednosekundowych interwałów wynosi więcej niż lub równa się łączna liczba skonfigurowanych Okresu aktywności sekund w skonfigurowanym wcześniej oknie wykrywania w dowolnym momencie, stan wykrywania Jamu w tym momencie jest ustawiony na true.
  5. Jeśli łączna liczba zaciętych jednosekundowych przedziałów toma wartość mniejszą niż łączna liczbaOkres aktywności w sekundachOkno wykrywania sekund w dowolnym momencie, stan wykrywania Jamu w tym punkcie jest ustawiony nafalse danych

Historia bitów

Do pobrania znajdziesz we właściwościach OpenOpen API i wpantund bitmapę z ostatnich 63 sekund. Ta mapa bitowa wskazuje, czy w przypadku co najmniej 63 sekund kanał RSSI przekroczył skonfigurowany próg RSSI.

Możesz na przykład pobrać tę bitmapę:

0xC248068C416E7FF0

Konwersja na plik binarny daje taki wynik, że w ciągu ostatnich 63 sekund ścieżka RSSI przekroczyła skonfigurowany próg kanału RSSI:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Jeśli okres wykrywania jest ustawiony na 16 sekund, a okres aktywności jest ustawiony na 8 sekund, stan wykrywania Jamu zmienia się na true po 51 sekundach, ponieważ jest to pierwsze wystąpienie progu RSSI, w ciągu ostatnich 16 sekund przekroczyła co najmniej 8 sekund. W tym przykładzie stan wykrywania Jamu pozostanie true przez następne 13 sekund.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

Ta mapa bitowa może być reprezentowana przez następujący wykres, jeśli -45 dBm to skonfigurowany próg progu RSSI:

Wykrywanie Jamu OT

Jak włączyć

Domyślnie ta funkcja jest wyłączona.

Zgodnie z definicją

Aby włączyć wykrywanie Jamu, zdefiniuj OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE jako 1 w pliku 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 budowania OpenThread:

./script/build -DOT_JAM_DETECTION=ON

Parametry

Parametry wykrywania Jamu można skonfigurować tylko przez interfejs API OpenThread, protokół Spinel lub wpanctl – narzędzie wiersza poleceń wpantund przeznaczone do zarządzania współprocesorem sieciowym (NCP). Wartości domyślne są stosowane, jeśli funkcja jest włączona bez dalszej konfiguracji.

Dostosuj tę funkcję, korzystając z tych parametrów:

Parametry
Próg RSS
Wartość domyślna
0 dBm
Opis
Określa próg poziomu RSSI (w dBm), który uznaje się za zablokowany kanał.
Okno wykrywania
Wartość domyślna
63 sekundy
Opis
Określa w sekundach czas, w którym należy sprawdzić zagłuszenie sygnału. Zakres: 1–63.
W tym czasie
Wartość domyślna
63 sekundy
Opis
Określa liczbę sekund w oknie wykrywania, w którym wskaźnik RSSI musi być powyżej progu RSSI, aby można było włączyć wykrywanie Jamu. Musi być mniejsza niż okno wykrywania. Zakres: 1–63.

Interfejs API

OpenThread

Aby zarządzać funkcją wykrywania Jam bezpośrednio w aplikacji OpenThread, użyj interfejsu Jam Jam API. Interfejs OpenThread API oferuje następujące funkcje:

  • Włączanie i wyłączanie funkcji
  • Wyświetlanie stanu wykrywania Jamu
  • Zarządzaj wszystkimi parametrami
  • Pobierz bieżącą mapę bitową historii wykrywania Jamu
  • Rejestrowanie funkcji wywołania zwrotnego w przypadku wykrycia Jamu

Spinningowa

Protokół Spinel umożliwia urządzeniu hosta komunikację z NCP. Ten protokół udostępnia właściwości wykrywania Jamu w openthread/src/lib/spinel/spinel.h, które zapewniają te funkcje:

  • Włączanie i wyłączanie funkcji
  • Wyświetlanie stanu wykrywania Jamu
  • Zarządzaj wszystkimi parametrami
  • Pobierz bieżącą mapę bitową historii wykrywania Jamu

interfejs CLI

OpenThread

Brak poleceń wiersza poleceń OpenThread związanych z tą funkcją.

Wpantund

Za pomocą interfejsu wiersza poleceń wpanctl możesz zarządzać funkcją wykrywania Jamów w konfiguracji NCP OpenOpen. wpantund zachowuje całą konfigurację wykrywania Jamów po zresetowaniu NCP.

wpanctl zapewnia dostęp do tych właściwości wpantund:

Właściwości
JamDetection:Status
Format
boolean,
Opis
Tylko do odczytu. Stan wykrywania Jamu. Wskazuje, czy obecnie wykryto sygnał Jamu.
JamDetection:Enable
Format
boolean,
Opis
Włącz lub wyłącz funkcję wykrywania Jamu.
JamDetection:RssiThreshold
Format
dBm
Opis
Określa próg RSSI (w dBm), powyżej którego kanał jest blokowany.
JamDetection:Window
Format
s
Opis
Określa w sekundach czas, w którym należy sprawdzić zagłuszenie sygnału. Zakres: 1–63.
JamDetection:BusyPeriod
Format
s
Opis
Określa liczbę sekund (w sekundach) w obrębie parametru JamDetection:Window, w którym wskaźnik RSSI musi być powyżej JamDetection:RssiThreshold, aby można było włączyć wykrywanie Jamu. Wartość musi być mniejsza niż JamDetection:Window. Zakres: 1–63.
JamDetection:Debug:HistoryBitmap
Format
Wartość 64-bitowa
Opis
Zawiera informacje o historii stanu wykrywania Jamu na potrzeby monitorowania i debugowania.

Aby na przykład uzyskać stan wykrywania Jamu NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Aby ustawić próg RSSI wykrywania Jamu na -45 dBm w NCP:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

Więcej informacji o właściwościach wpantund znajdziesz w repozytorium wpantund GitHub.