Wykrywanie Jamów

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Wyświetl źródło na GitHubie

Aby skonfigurować mechanizm wykrywania zacinania się sygnałów w dowolnym węźle OpenThread, włącz funkcję wykrywania Jamów.

Ta funkcja przydaje się do certyfikacji urządzeń, które wymagają wykrywania zakłóceń w dostępie do kanału. Możesz go skonfigurować tak, aby spełniał wymagania każdego typu certyfikacji.

Jak to działa

Wykrywanie Jamów monitoruje RSSI (wskaźnik siły odbieranego sygnału) węzła w określonych przedziałach czasu, aby określić, czy kanał został wyciszony.

Gdy wykrywanie Jamów jest włączone:

  1. Stan wykrywania Jamów jest ustawiony na false.
  2. Węzeł próbkuje RSSI wiele razy w ciągu jednej sekundy.
  3. Jeśli w całym przedziale czasu wartość RSSI pozostanie w granicach ustawionego progu RSSI dla każdej próbki, zostanie ona uznana za zaciętą.
  4. Jeśli łączna liczba zaciętych jednosekundowych interwałów jest większa lub równa całkowitej liczbie skonfigurowanych okresów zastępowania sekund skonfigurowanych w okresie wykrywania w dowolnym momencie, stan wykrywania Jamu w danym momencie jest ustawiony na true.
  5. Jeśli łączna liczba zaciętych sekund z zaciętymi sekundami jest krótsza niż łączna liczba skonfigurowanych okresów zajętości w sekundach skonfigurowanego wcześniej okna wykrywania w dowolnym momencie, stan wykrywania Jamu w danym momencie jest ustawiony na false.

Mapa bitowa historii

W interfejsach API OpenThread i wpantund możliwe jest pobranie bitmapy z ostatnich 63 sekund. Ta mapa bitowa wskazuje, czy RSSI przekroczył skonfigurowany próg RSSI w każdym z wcześniejszych 63 sekund.

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

0xC248068C416E7FF0

Konwersja do formatu binarnego powoduje utworzenie każdego wystąpienia RSSI, które przekroczyło skonfigurowany próg RSS 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 aktywności jest ustawiony na 8 sekund, stan wykrywania Jamu zmienia się na true w 51 sekundzie, ponieważ jest to pierwsze wystąpienie, w którym próg RSSI przekroczył co najmniej 8 sekund w ciągu ostatnich 16 sekund. W tym przykładzie stan wykrywania Jamu pozostaje 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 był skonfigurowanym progiem RSSI:

OT wykrywania Jamów

Jak włączyć

Ta funkcja jest domyślnie wyłączona.

Według definicji

Zanim włączysz wykrywanie Jamów, zdefiniuj OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE jako 1 w pliku openthread/src/core/config/openthread-core-default-config.h przed tworzeniem 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 Jamów można skonfigurować tylko za pomocą interfejsu API OpenThread, protokołu Spiner lub wpanctl, narzędzia wiersza poleceń wpantund do zarządzania siecią współprocesorem (NCP). 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
Description
Określa próg poziomu RSSI w dBm, powyżej którego ma zostać włączony zapłonięty kanał.
Okres wykrywania
Wartość domyślna
63 sekundy
Description
Określa w sekundach, w jakim ma być sprawdzane blokowanie sygnału. Zakres: 1–63.
Okres przejściowy
Wartość domyślna
63 sekundy
Description
Określa liczbę zbiorczych sekund w oknie wykrywania, w którym wskaźnik RSSI musi przekraczać próg RSSI, aby aktywować wykrywanie Jamów. Musi być mniejsza niż okno wykrywania. Zakres: 1–63.

API

OpenThread

Użyj interfejsu Jam Detection API do zarządzania funkcją Jam Jam bezpośrednio w aplikacji OpenThread. Interfejs API OpenThread ma następujące funkcje:

  • Uruchamianie i zatrzymywanie funkcji
  • Wyświetlanie stanu wykrywania Jamów
  • Zarządzaj wszystkimi parametrami
  • Pobieranie bieżącej bitmapy historii wykrywania Jamów
  • Zarejestruj funkcję wywołania zwrotnego w przypadku wykrycia Jamu

Wir

Protokół Spinel umożliwia komunikację hosta z urządzeniem NCP. Ten protokół udostępnia funkcje wykrywania Jamów w openthread/src/lib/spinel/spinel.h, które oferują następujące funkcje:

  • Uruchamianie i zatrzymywanie funkcji
  • Wyświetlanie stanu wykrywania Jamów
  • Zarządzaj wszystkimi parametrami
  • Pobieranie bieżącej bitmapy historii wykrywania Jamów

interfejs CLI

OpenThread

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

Wpantund

Użyj interfejsu wiersza poleceń wpanctl, aby zarządzać funkcją wykrywania Jamów na potrzeby konfiguracji NCP OpenThread. 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
wartość logiczna
Description
Tylko do odczytu. Stan wykrywania Jamów. Wskazuje, czy jest obecnie wykrywany sygnał sygnału.
JamDetection:Enable
Format
wartość logiczna
Description
Włącz lub wyłącz funkcję wykrywania Jamów.
JamDetection:RssiThreshold
Format
dBm
Description
Określa próg poziomu RSSI w dBm, powyżej którego należy uznać kanał zablokowany.
JamDetection:Window
Format
s
Description
Określa w sekundach, w jakim ma być sprawdzane blokowanie sygnału. Zakres: 1–63.
JamDetection:BusyPeriod
Format
s
Description
Określa liczbę zbiorczych sekund w obrębie wartości JamDetection:Window, w której wskaźnik RSSI musi mieć wartość wyższą niż JamDetection:RssiThreshold, aby aktywować funkcję Wykrywania Jamów. Wartość musi być mniejsza niż JamDetection:Window. Zakres: 1–63.
JamDetection:Debug:HistoryBitmap
Format
Wartość 64-bitowa
Description
Udostępnia informacje o historii stanu wykrywania Jamów na potrzeby monitorowania i debugowania.

Aby na przykład sprawdzić stan Jamu w przypadku NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Aby ustawić próg RSSI wykrywania Jamu na -45 dBm na 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 GitHub wpantund.