<ph type="x-smartling-placeholder"></ph> 在 GitHub 上查看源代码
有些高级功能是可选的,具体取决于这些功能是否 在目标硬件平台上受支持
待自动取景
IEEE 802.15.4 定义了两种从父级到 儿童:直接传播和间接传播。后者的设计初衷是 主要用于长时间睡眠的睡眠型终端设备 (SED), 来轮询父项以获取已排队的数据。
直接传输 - 家长直接将数据帧发送到终端设备
间接传输 - 父级会在目标终端设备请求之前一直保留数据
对于间接请求,子级终端设备必须先轮询父级设备,以确定 是否有可用数据为此,子级会将数据 请求(父级会确认)。然后,父级发布商会确定 是否有子设备的任何数据;如果是,则向子节点发送一个数据包 确认已收到数据。
如果无线装置支持动态设置传出中的帧待处理位 对 SED 的确认,驱动程序必须实现 来源地址匹配 API 来启用此功能。OpenThread 使用此 API 告知无线装置 要为其设置帧待处理位的 SED。
如果无线装置不支持动态设置“帧待处理”位,
电台可能会对源地址匹配 API 进行打桩,以返回
OT_ERROR_NOT_IMPLEMENTED
。
能耗扫描/无线电检测
能量扫描/检测功能需要使用无线电芯片来采样能量 并将检测到的能量值返回给 。
如果未实现此功能,则 IEEE 802.15.4 MAC 层 发送/接收信标请求/响应数据包,以评估当前的 通道能量值。
如果无线电芯片支持能源扫描/检测,请务必停用软件
通过设置宏
OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0
。
mbedTLS 硬件加速
mbedTLS 在主配置头文件中定义了几个宏,
mbedtls-config.h
、
以允许用户启用 AES、SHA1、SHA2 和
以及用于绘制椭圆曲线的各个函数,
基于 GF(p) 模块的 ECC 加密技术。请参阅
mbedTLS 硬件加速
。
OpenThread 不会启用这些宏,因此对称加密 算法、哈希算法和 ECC 功能都使用软件 默认实现这些实现需要相当大的内存 和计算资源。为了实现最佳性能和 我们建议您启用硬件加速(而不是软件) 实现上述操作。
为了在 OpenThread 中启用硬件加速,以下 mbedTLS
应将配置头文件添加到 ot-config
编译环境中
定义:
- 主配置,用于定义 OpenThread 中使用的所有必要宏:
/openthread/third-party/mbedtls/mbedtls-config.h
- 特定于用户的配置,该配置定义了
模块和函数:
src/platform-name-mbedtls-config.h
来自 nrf52811.cmake
的示例:
target_compile_definitions(ot-config INTERFACE "MBEDTLS_USER_CONFIG_FILE=\"nrf52811-mbedtls-config.h\"" )
mbedtls-config.h
中带注释的宏不是必需的,可以在以下位置启用:
用于硬件加速的用户专属配置头文件。
有关特定于用户的完整配置示例,请参阅
mbedtls_config_autogen.h
文件(位于 ot-efr32
中)。
AES 模块
OpenThread Security 将 AES CCM(具有 CBC-MAC 的计数器)加密应用于 加密/解密 IEEE 802.15.4 或 MLE 消息并验证消息 集成代码。硬件加速应至少支持基本的 AES ECB (Electronic Codebook Book) 模式,用于 AES CCM 基本功能调用。
要使用备用的 AES 模块实现,请按以下步骤操作:
- 在特定于用户的 mbedTLS 中定义
MBEDTLS_AES_ALT
宏 配置头文件 - 使用
MBEDTLS_CPPFLAGS
指示aes_alt.h
文件的路径 变量
SHA256 模块
OpenThread Security 采用 HMAC 和 SHA256 哈希算法来计算 根据 Thread 进行网络密钥管理和生成 PSKc 的哈希值 规格设计阶段。
要使用替代的基本 SHA256 模块实现,请执行以下操作:
- 在特定于用户的 mbedTLS 中定义
MBEDTLS_SHA256_ALT
宏 配置头文件 - 使用
MBEDTLS_CPPFLAGS
指示sha256_alt.h
文件的路径 变量
ECC 函数
由于 mbedTLS 目前仅支持针对 ECC 部分的硬件加速
而非整个模块,您可以选择实现一些
中定义的函数,
path-to-mbedtls/library/ecp.c
,以加快 ECC 速度
点乘法。
曲线 secp256r1 用于 ECJPAKE 草稿。因此, 硬件加速应至少支持 secp256r1 short Weierstrass 曲线运算。请参阅 SiLabs CRYPTO 硬件加速 mbedTLS 示例。