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

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

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

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

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

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

Если функция обнаружения замятий включена:

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

История Bitmap

В API OpenThread доступна битовая карта за предыдущие 63 секунды. Эта битовая карта показывает, превысил ли 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

Как включить

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

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

Чтобы включить функцию 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

Параметры

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

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

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

API

OpenThread

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

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

Шпинель

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

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

CLI

OpenThread

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