Посмотреть исходный код на GitHub
Чтобы обеспечить настраиваемый механизм обнаружения глушения сигнала на любом узле OpenThread, включите функцию Jam Detection.
Эта функция полезна для сертификации устройств, для которых требуется способность обнаруживать помехи сигнала на определенном канале. Его можно настроить в соответствии с требованиями каждого типа сертификации.
Как это работает
Jam Detection отслеживает RSSI (индикатор уровня принимаемого сигнала) узла в течение заданного промежутка времени, чтобы определить, был ли канал заглушен.
Когда обнаружение замятия включено:
- Для состояния обнаружения замятия установлено значение
false
. - Узел производит выборку RSSI несколько раз в течение каждого интервала в одну секунду.
- Если RSSI в течение всего этого интервала в одну секунду остается выше настроенного порогового значения RSSI для каждой выборки, этот интервал в одну секунду считается заблокированным.
- Если совокупное количество односекундных интервалов замятия больше или равно совокупному количеству секунд настроенного периода занятости в пределах предшествующих настроенных секунд окна обнаружения в любой момент времени, для состояния обнаружения замятия в этот момент времени устанавливается значение
true
. - Если совокупное количество односекундных интервалов замятия меньше, чем совокупное количество секунд настроенного периода занятости в течение предшествующих настроенных секунд окна обнаружения в любой момент времени, для состояния обнаружения замятия в этот момент времени устанавливается значение
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 дБм:

Как включить
Эта функция отключена по умолчанию.
По определению
Чтобы включить обнаружение замятия, определите 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 |
| ||||
Окно обнаружения |
| ||||
Занятый период |
|
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 |
| ||||
JamDetection:Window |
| ||||
JamDetection:BusyPeriod |
| ||||
JamDetection:Debug:HistoryBitmap |
|
Например, чтобы получить состояние обнаружения замятия для 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 .
Посмотреть исходный код на GitHub
Чтобы обеспечить настраиваемый механизм обнаружения глушения сигнала на любом узле OpenThread, включите функцию Jam Detection.
Эта функция полезна для сертификации устройств, для которых требуется способность обнаруживать помехи сигнала на определенном канале. Его можно настроить в соответствии с требованиями каждого типа сертификации.
Как это работает
Jam Detection отслеживает RSSI (индикатор уровня принимаемого сигнала) узла в течение заданного промежутка времени, чтобы определить, был ли канал заглушен.
Когда обнаружение замятия включено:
- Для состояния обнаружения замятия установлено значение
false
. - Узел производит выборку RSSI несколько раз в течение каждого интервала в одну секунду.
- Если RSSI в течение всего этого интервала в одну секунду остается выше настроенного порогового значения RSSI для каждой выборки, этот интервал в одну секунду считается заблокированным.
- Если совокупное количество односекундных интервалов замятия больше или равно совокупному количеству секунд настроенного периода занятости в пределах предшествующих настроенных секунд окна обнаружения в любой момент времени, для состояния обнаружения замятия в этот момент времени устанавливается значение
true
. - Если совокупное количество односекундных интервалов замятия меньше, чем совокупное количество секунд настроенного периода занятости в течение предшествующих настроенных секунд окна обнаружения в любой момент времени, для состояния обнаружения замятия в этот момент времени устанавливается значение
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 дБм:

Как включить
Эта функция отключена по умолчанию.
По определению
Чтобы включить обнаружение замятия, определите 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 |
| ||||
Окно обнаружения |
| ||||
Занятый период |
|
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 |
| ||||
JamDetection:Window |
| ||||
JamDetection:BusyPeriod |
| ||||
JamDetection:Debug:HistoryBitmap |
|
Например, чтобы получить состояние обнаружения замятия для 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 .