Google is committed to advancing racial equity for Black communities. See how.
此页面由 Cloud Translation API 翻译。
Switch to English

卡纸检测

要为任何OpenThread节点上的信号阻塞检测提供可配置的机制,请启用“阻塞检测”功能。

此功能对于要求能够检测特定通道上的信号干扰的设备认证很有用。可以配置它以满足每种认证的要求。

这个怎么运作

果酱检测在指定的时间段内监视节点的RSSI(接收信号强度指示器),以确定信道是否被阻塞。

启用卡纸检测时:

  1. 卡纸检测状态设置为false
  2. 节点在每个一秒的间隔内对RSSI进行多次采样。
  3. 如果整个一秒钟时间间隔内的RSSI仍高于每个样本的已配置RSSI阈值 ,则认为该一秒间隔已阻塞。
  4. 如果在任何时间点上之前配置的“ 检测窗口”秒内,被阻塞的一秒钟时间间隔的总数大于或 等于已配置的“ 繁忙时段”秒的总数,则该时间点的“阻塞检测状态”将设置为true
  5. 如果在任何时间点上被阻塞的一秒钟间隔的总数小于先前配置的“ 检测窗口”秒内的已配置“ 繁忙时段”秒的总数,则该时间点的“阻塞检测状态”被设置为false

历史位图

OpenThread APIwpantund属性中 ,可以检索前63秒的位图。该位图指示RSSI是否在之前的63秒中的每个时都超过了已配置的RSSI阈值。

例如,您可以检索以下位图:

0xC248068C416E7FF0

在前63秒内,转换为二进制会产生RSSI超出配置的RSSI阈值的每个实例:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

如果将“检测窗口”设置为16秒,并将“忙碌时间”设置为8秒,则“卡纸检测状态”将在51秒时变为“ true ,因为这是在前一个实例中RSSI阈值至少超过整整8秒的第一个实例16秒在此示例中,卡纸检测状态在接下来的13秒钟内保持为true

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

如果将-45 dBm配置为RSSI阈值,则该位图可以由下图表示:

OT卡纸检测

如何启用

默认情况下禁用此功能。

通过定义

要启用卡纸检测,限定OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE1/src/core/config/openthread-core-default-config.h文件,之前建立的OpenThread

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

通过开关

另外,在构建OpenThread时,请使用JAM_DETECTION=1构建开关:

make -f examples/Makefile-<platform> JAM_DETECTION=1

参量

堵塞检测参数只能通过OpenThread API,尖晶石协议或wpanctl (用于网络wpantund处理器(NCP)管理的wpantund命令行工具)进行配置。如果在没有后续配置的情况下启用了此功能,则将应用默认值。

使用以下参数自定义此功能:

参量
RSSI阈值
默认值
0分贝
描述
指定阈值RSSI电平(以dBm为单位),高于该阈值则认为信道被阻塞。
检测窗
默认值
63秒
描述
指定以秒为单位的窗口,在该窗口中检查信号是否阻塞。范围:1-63。
繁忙时段
默认值
63秒
描述
指定“检测窗口”中的聚合秒数,其中RSSI必须高于RSSI阈值才能触发卡纸检测。必须小于检测窗口。范围:1-63。

API

开放线程

使用Jam Detection API直接在您的OpenThread应用程序中管理Jam Detection功能。 OpenThread API提供以下功能:

  • 启动和停止功能
  • 查看卡纸检测状态
  • 管理所有参数
  • 检索当前的卡纸检测历史位图
  • 注册一个检测到卡纸的回调函数

尖晶石

Spinel协议使主机设备可以直接与NCP通信。该协议在/src/lib/spinel/spinel.h中公开“果酱检测”属性,该属性提供以下功能:

  • 启动和停止功能
  • 查看卡纸检测状态
  • 管理所有参数
  • 检索当前的卡纸检测历史位图

命令行界面

开放线程

没有与此功能相关的OpenThread CLI命令。

潘丹

使用wpanctl CLI管理OpenThread NCP配置的卡纸检测功能。 NCP重置后, wpantund保留所有果酱检测配置。

wpanctl提供对以下wpantund属性的访问:

物产
JamDetection:Status
格式
布尔值
描述
只读。卡纸检测状态。指示当前是否检测到信号卡纸。
JamDetection:Enable
格式
布尔值
描述
启用或禁用卡纸检测功能。
JamDetection:RssiThreshold
格式
分贝
描述
指定阈值RSSI级别(以dBm为单位),高于该阈值则认为信道被阻塞。
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

要将NCP上的堵塞检测RSSI阈值设置为-45 dBm,请执行以下操作:

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

有关wpantund属性的更多信息,请参见wpantund GitHub存储库