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

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

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

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

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

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

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

  1. Detection Государственное варенья установлено в false .
  2. Узел производит выборку RSSI несколько раз в течение каждого интервала в одну секунду.
  3. Если RSSI более , что весь интервал в одну секунду остается выше заданного RSSI Threshold для каждого образца, что один второй интервал считается заклинило.
  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 секундах, так как это первый случай , когда порог ПУПСА был превышены по крайней мере 8 целых секунд в предыдущем 16 секунд. В этом примере Detection государство Jam остается true в течение следующих 13 секунд.

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

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

OT Jam Detection

Как включить

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

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

Чтобы включить обнаружение замятия, определить OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE , как 1 в openthread/src/core/config/openthread-core-default-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

Параметры

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

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

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

API

OpenThread

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

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

Шпинель

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

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

CLI

OpenThread

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

Wpantund

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

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

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