Обнаружение замятия

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Посмотреть исходный код на GitHub

Чтобы обеспечить настраиваемый механизм обнаружения глушения сигнала на любом узле OpenThread, включите функцию Jam Detection.

Эта функция полезна для сертификации устройств, для которых требуется способность обнаруживать помехи сигнала на определенном канале. Его можно настроить в соответствии с требованиями каждого типа сертификации.

Как это работает

Jam Detection отслеживает RSSI (индикатор уровня принимаемого сигнала) узла в течение заданного промежутка времени, чтобы определить, был ли канал заглушен.

Когда обнаружение замятия включено:

  1. Для состояния обнаружения замятия установлено значение false .
  2. Узел производит выборку RSSI несколько раз в течение каждого интервала в одну секунду.
  3. Если RSSI в течение всего этого интервала в одну секунду остается выше настроенного порогового значения RSSI для каждой выборки, этот интервал в одну секунду считается заблокированным.
  4. Если совокупное количество односекундных интервалов замятия больше или равно совокупному количеству секунд настроенного периода занятости в пределах предшествующих настроенных секунд окна обнаружения в любой момент времени, для состояния обнаружения замятия в этот момент времени устанавливается значение true .
  5. Если совокупное количество односекундных интервалов замятия меньше, чем совокупное количество секунд настроенного периода занятости в течение предшествующих настроенных секунд окна обнаружения в любой момент времени, для состояния обнаружения замятия в этот момент времени устанавливается значение false .

Битмап истории

В OpenThread API и свойствах wpantund для извлечения доступно растровое изображение за предыдущие 63 секунды. Это растровое изображение показывает, пересекал ли RSSI настроенный порог RSSI в каждый из предшествующих 63 секунд.

Например, вы можете получить следующее растровое изображение:

0xC248068C416E7FF0

Преобразование в двоичный формат дает каждый случай, когда RSSI превышал настроенное пороговое значение RSSI в течение предшествующих 63 секунд:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Если для окна обнаружения установлено значение 16 секунд, а для периода занятости установлено значение 8 секунд, состояние обнаружения застревания становится true на 51 секунде, так как это первый случай, когда пороговое значение RSSI было превышено как минимум на 8 полных секунд в предыдущем случае. 16 секунд. В этом примере состояние обнаружения замятия остается true в течение следующих 13 секунд.

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

Это растровое изображение может быть представлено следующим графиком, если сконфигурированное пороговое значение RSSI -45 дБм:

Обнаружение заедания OT

Как включить

Эта функция отключена по умолчанию.

По определению

Чтобы включить обнаружение замятия, определите OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE как 1 в openthread/src/core/config/openthread-core-default-config.h config.h перед сборкой OpenThread :

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

По выбору

В качестве альтернативы используйте параметр -DOT_JAM_DETECTION=ON при сборке OpenThread :

./script/build -DOT_JAM_DETECTION=ON

Параметры

Параметры обнаружения застреваний можно настроить только с помощью API OpenThread, протокола Spinel или wpanctl , инструмента командной строки wpantund для управления сетевым сопроцессором (NCP). Значения по умолчанию применяются, если функция включена без последующей настройки.

Настройте эту функцию, используя следующие параметры:

Параметры
Порог RSSI
Значение по умолчанию
0 дБм
Описание
Определяет пороговый уровень RSSI в дБм, выше которого считается, что канал заглушен.
Окно обнаружения
Значение по умолчанию
63 секунды
Описание
Определяет окно в секундах, в течение которого следует проверять помехи сигнала. Диапазон: 1-63.
Занятый период
Значение по умолчанию
63 секунды
Описание
Указывает совокупное количество секунд в окне обнаружения, в течение которого RSSI должен быть выше порогового значения RSSI, чтобы сработало обнаружение застревания. Должно быть меньше Окна обнаружения. Диапазон: 1-63.

API

OpenThread

Используйте API обнаружения замятий для управления функцией обнаружения замятий непосредственно в приложении OpenThread. API OpenThread предоставляет следующие функции:

  • Запуск и остановка функции
  • Просмотр состояния обнаружения замятия
  • Управление всеми параметрами
  • Получить текущее растровое изображение истории обнаружения застреваний
  • Зарегистрируйте функцию обратного вызова при обнаружении замятия

шпинель

Протокол Spinel позволяет хост-устройству связываться напрямую с NCP. Этот протокол предоставляет свойства Jam Detection в openthread/src/lib/spinel/spinel.h , которые обеспечивают следующие функции:

  • Запуск и остановка функции
  • Просмотр состояния обнаружения замятия
  • Управление всеми параметрами
  • Получить текущее растровое изображение истории обнаружения застреваний

CLI

OpenThread

Команды командной строки OpenThread, связанные с этой функцией, отсутствуют.

впантунд

Используйте интерфейс командной строки wpanctl для управления функцией обнаружения заедания для конфигурации OpenThread NCP. wpantund сохраняет всю конфигурацию Jam Detection после сброса NCP.

wpanctl предоставляет доступ к следующим свойствам wpantund :

Характеристики
JamDetection:Status
Формат
логический
Описание
Только чтение. Состояние обнаружения замятия. Указывает, обнаружено ли в настоящее время застревание сигнала.
JamDetection:Enable
Формат
логический
Описание
Включите или отключите функцию обнаружения замятия.
JamDetection:RssiThreshold
Формат
дБм
Описание
Указывает пороговый уровень RSSI в дБм, выше которого канал считается заблокированным.
JamDetection:Window
Формат
секунды
Описание
Определяет окно в секундах, в течение которого следует проверять помехи сигнала. Диапазон: 1-63.
JamDetection:BusyPeriod
Формат
секунды
Описание
Указывает суммарное количество секунд в JamDetection:Window , в течение которого RSSI должен быть выше JamDetection:RssiThreshold , чтобы сработало обнаружение замятия. Должен быть меньше, чем JamDetection:Window . Диапазон: 1-63.
JamDetection:Debug:HistoryBitmap
Формат
64-битное значение
Описание
Предоставляет информацию о журнале состояния обнаружения замятия для целей мониторинга и отладки.

Например, чтобы получить состояние обнаружения замятия для NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Чтобы установить порог RSSI обнаружения помех на -45 дБм на NCP:

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

Дополнительные сведения о свойствах wpantund см. в репозитории wpantund GitHub .