Wykrywanie Jamów

Wyświetl źródło na GitHubie

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:

  1. Stan wykrywania Jamu jest ustawiony na false.
  2. Węzeł próbkuje RSSI kilkakrotnie w ciągu każdego 1-sekundowego interwału.
  3. 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.
  4. 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.
  5. 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:

Wykrywanie Jamu OT

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
Wartość domyślna
0 dBm
Opis
Określa próg poziomu RSSI w dBm, powyżej którego należy uznać, że kanał się zaciął.
Okno wykrywania
Wartość domyślna
63 sekundy
Opis
Określa okres (w sekundach), w którym ma być sprawdzane, czy sygnał się zacina. Zakres: 1–63.
Okres obciążenia
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ż okno wykrywania. Zakres: 1–63.

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
Format
wartość logiczna
Opis
Tylko do odczytu. Stan wykrywania zakłóceń. Wskazuje, czy obecnie wykryto tłok sygnału.
JamDetection:Enable
Format
wartość logiczna
Opis
Włącz lub wyłącz funkcję wykrywania Jamu.
JamDetection:RssiThreshold
Format
dBm
Opis
Określa wartość progowa RSSI w dBm, powyżej której kanał jest uważany za zablokowany.
JamDetection:Window
Format
s
Opis
Określa okres (w sekundach), w którym ma być sprawdzane, czy sygnał się zacina. Zakres: 1–63.
JamDetection:BusyPeriod
Format
s
Opis
Określa liczbę sekund w ciągu JamDetection:Window, w których wartość RSSI musi być większa niż JamDetection:RssiThreshold, aby uruchomić wykrywanie zakłóceń. Wartość musi być mniejsza niż JamDetection:Window. Zakres: 1–63.
JamDetection:Debug:HistoryBitmap
Format
Wartość 64-bitowa
Opis
Udostępnia informacje o historii stanu wykrywania Jamów na potrzeby monitorowania i debugowania.

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 .