硅实验室 7.4.5.0 Zigbee Ember Z Net SDK
![]()
- Zigbee EmberZNet SDK 版本:7.4.5.0 GA
- Gecko SDK 套件版本:4.4
- 发布日期:23 年 2024 月 XNUMX 日
- 平台:Silicon Labs
- 支持的编译器:GCC(GNU 编译器集合)版本 12.2.1
- EZSP 协议版本:0x0D
产品使用说明
主要特点
Silicon Labs 的 Zigbee EmberZNet SDK 提供以下主要功能
SoC 上的多协议 (CMP) Zigbee 和 OpenThread 支持。
兼容性和使用声明
有关安全更新和通知,请参阅 Gecko 平台发行说明的安全章节或访问 Silicon Labs 上的“TECH DOCS”选项卡 web网站。建议订阅安全公告以获取最新信息。
兼容的编译器
确保使用正确的 file使用受支持的编译器
Simplicity Studio 提供的 GCC(GNU 编译器集合)版本 12.2.1。
EZSP 协议
此版本的 EZSP 协议版本是 0x0D。
- 问:7.4.5.0 版本引入了哪些新组件?
- 答:用户现在可以在 Zigbee 直接设备 (ZDD) 应用程序上启用多个 zigbee_direct_security 组件,实际安全选项取决于 Zigbee 虚拟设备 (ZVD) 配置。
- 问:7.4.4.0 版本中添加了哪些新 API?
- 答:新的 API 包括 mfglibSetCtune 和 mfglibGetCtune。
- 问:7.4.5.0 版本引入了哪些新的平台支持?
- 答:EFR32MG24A020F768IM40 现已受支持作为平台。
- 问:在哪里可以找到 Zigbee 安全密钥存储组件的更新文档?
- 答:Zigbee 安全密钥存储组件的描述已在 7.4.0.0 版本中更新,同时还更新了与 Zigbee 安全管理器组件组交互的新应用说明(AN1412:Zigbee 安全管理器)。
Zigbee EmberZNet SDK 7.4.5.0 正式版
Gecko SDK 套件 4.4
23 年 2024 月 XNUMX 日
![]()
Silicon Labs 是 OEM 厂商在其产品中开发 Zigbee 网络的首选供应商。 Silicon Labs Zigbee 平台是目前集成度最高、最完整且功能最丰富的 Zigbee 解决方案。
Silicon Labs EmberZNet SDK 包含 Silicon Labs 对 Zigbee 堆栈规范的实现。
这些发行说明涵盖 SDK 版本
- 7.4.5.0 于 23 年 2024 月 XNUMX 日发布
- 7.4.4.0 于 14 年 2024 月 XNUMX 日发布
- 7.4.3.0 于 2 年 2024 月 XNUMX 日发布
- 7.4.2.0 于 10 年 2024 月 XNUMX 日发布
- 7.4.1.0 于 14 年 2024 月 XNUMX 日发布
- 7.4.0.0 于 13 年 2023 月 XNUMX 日发布
兼容性和使用声明
有关安全更新和通知的信息,请参阅与此 SDK 一起安装的 Gecko 平台发行说明的安全章节或在 TECH DOCS 选项卡上 https://www.silabs.com/developers/zigbee-emberznet 。 Silicon Labs 还强烈建议您订阅安全公告以获取最新信息。有关说明,或者如果您是 Zigbee EmberZNet SDK 的新手,请参阅使用此版本。
兼容的编译器
IAR Embedded Workbench for ARM (IAR-EWARM) 版本 9.40.1。
- 在 macOS 或 Linux 上使用 wine 通过 IarBuild.exe 命令行实用程序或 IAR Embedded Workbench GUI 构建可能会导致错误 file由于 wine 生成 short 的散列算法中的冲突,s 被使用 file 名字。
- 建议使用 macOS 或 Linux 的客户不要在 Simplicity Studio 之外使用 IAR 进行构建。 这样做的客户应该仔细核实正确的 file正在使用。
GCC(GNU 编译器集合)版本 12.2.1,随 Simplicity Studio 提供。
此版本的 EZSP 协议版本是 0x0D。
新品
新组件
7.4.0.0 版中的新功能
添加了“zigbee_direct_security_p256”和“zigbee_direct_security_curve25519”组件,以便用户可以配置特定的 Zigbee Direct 安全选项。
用户可以在 Zigbee 直接设备 (ZDD) 应用程序上启用多个“zigbee_direct_security”组件。在这种情况下,实际的安全选项取决于 Zigbee 虚拟设备 (ZVD) 配置。
新 API
7.4.4.0 版中的新功能
引入了两个专用的制造库 API 来获取和设置 CTUNE 值。
在早期补丁版本中,CTUNE 值的获取和设置已成为 RAIL API 的一部分。在此补丁中,引入了一组封装 RAIL API 的制造 API,如下所示,用于设置和获取该值。
mfglibSetCtune
mfglibGetCtune
7.4.2.0 版中的新功能
- 扩展 SPI NCP 以支持某些 Host-NCP 使用案例中的睡眠模式。
在此用例中,SPI NCP 可配置为休眠终端设备。主机Z3Gatewayamp该应用程序使用额外的自定义 CLI 代码进行扩展,负责通过自定义 CLI 命令 sleepMode 命令 NCP 进入其中一种睡眠模式,并且必须在进一步 EZSP 通信之前使用自定义 CLI 命令wakeup 唤醒。 - 引入了新的 API sl_zigbee_af_isr_event_init,用于初始化要在中断服务例程 (ISR) 内激活的应用程序框架事件。这些事件是从 ISR 调度的,必须具有 0 毫秒的延迟参数。换句话说,来自 ISR 的事件必须作为即时事件激活。不允许在 ISR 内停用事件。
上述情况的原因如下:事件系统在调度(以非零延迟激活或停用)事件期间操纵事件队列。为了最大限度地减少延迟,ISR 应以 0 延迟激活事件,该事件将在下一个事件队列处理中进行调度。这允许在 ISR 退出后执行进一步的延迟或停用。为了区分要在 ISR 上下文中使用的事件,在初始化期间使用 sli_zigbee_isr_event_marker 标记事件结构。
参考zigbee_app_framework_event.h源码 file 有关此新功能的详细信息。 - 澄清新功能 ember Update Multi Mac Rejoin Channel Mask For Selection Or Joining Device 的使用,该功能在堆栈 API ember Find And Rejoin Network With Reason 内部调用,以获取用于重新加入的通道掩码。
SE1.4a 规范限制在多 MAC 加入端设备类型设备重新加入期间更改接口(从 2.4GHz 到 2.4 GHz 以下或反之亦然)。由于设备类型是应用程序框架配置(即,在配置时,加入端设备类型将是 XNUMX GHz 以下设备或 XNUMX GHz 设备,而不是两者),因此此调用根据该配置提供信道掩码,以便重新加入掩码始终与加入接口掩码相同。
7.4.0.0 版中的新功能
- 添加了一个新的 API void sl_zigbee_token_factory_reset(bool exclude_outgoing_fc, bool exclude_boot_counter) 来将 Zigbee NVM3 令牌重置为其默认值。
- 添加了 API bool sl_zigbee_sec_man_link_key_slot_available(EmberEUI64 eui),如果链接密钥表可以使用该地址添加或更新条目(表未满),则返回 true。
添加了新的 API bool sl_zb_sec_man_compare_key_to_value (sl_zb_sec_man_context_t* context, sl_zb_sec_man_key_t* key),如果上下文引用的键与参数中提供的键具有相同的值,则返回 true。
新平台支持
7.4.0.0 版中的新功能
此版本中添加了对以下新部件的 Zigbee 堆栈支持:EFR32MG24A010F768IM40 和 EFR32MG24A020F768IM40。
新文档
7.4.0.0 版中的新功能
更新了 Zigbee 安全密钥存储组件的描述,以反映 Zigbee 安全密钥存储升级的添加(增加了与现有项目的向后兼容性)。
添加了与 Zigbee 安全管理器组件组交互的新应用说明(AN1412:Zigbee 安全管理器)。
预期行为
请注意,Zigbee 不同步 CSL 传输会受到无线电调度器协议抢占的影响。在 SleepyToSleepy 应用中,BLE 可以并且将会抢占 Zigbee CSL 传输,这将终止传输。考虑到可能使用可能很长的唤醒帧序列,调度程序抢占对于不同步的 CSL 来说更为常见。希望调整传输优先级的用户可以使用 DMP 调整和测试组件来执行此操作。用户还可以查阅UG305:动态多协议用户指南以获取更多信息。
改进
在版本 7.4.0.0 中发生了变化 ember Counter Handler API 文档更改
在以前的版本中,涉及数据包 RX 和 TX 的 MAC 和 APS 层 Ember 计数器类型的计数器处理程序回调没有传递正确的目标节点 ID 或数据参数,并且有关使用这些参数的某些计数器行为的 API 文档不清楚或具有误导性。
虽然 ember Counter Handler() 的签名没有改变,但其参数的填充方式略有改变。
- 为了清楚起见,已扩展了 ember-types.h 中有关 EmberCounterType 枚举的注释。
- TX 相关计数器的计数器处理程序的节点 ID 参数现在会在使用目标地址模式之前检查其是否指示有效的短 ID。(如果不是,则不填充目标地址,而是填充占位符值
而是使用 EMBER_UNKNOWN_NODE_ID。) - RX 相关计数器的计数器处理程序的节点 ID 参数现在反映源节点 ID,而不是目标节点 ID。
- 重试计数*不*作为 EMBER_COUNTER_MAC_TX_UNICAST_ SUCCESS/FAILED 计数器的数据参数传递,如以前版本中的 ember-types.h 中所述,但在以前发布的版本中从未正确填充,因此以前版本中的值始终为 0这些 EmberCounterType 的描述已阐明了此行为。但是,APS 层重试的重试计数继续填充在数据参数中
EMBER_COUNTER_APS_TX_UNICAST_SUCCESS/FAILED 计数器类型,与之前的版本保持一致。 - 所有填充回调的节点 ID 或数据参数的计数器都经过审核,以确保它们传递预期的数据、地址或 EMBER_UNKNOWN_NODE_ID(如果需要节点 ID 但无法从数据包中获取),如修订后的 ember-types.h 文档中所述。
- EMBER_COUNTER_MAC_TX_UNICAST_RETRY 的计数器处理程序现在可以正确反映 MAC 层目标节点 ID 以及其目标节点 ID 和数据参数中的重试次数。
- EMBER_COUNTER_PHY_CCA_FAIL_COUNT 的计数器处理程序现在通过节点 ID 参数提供有关传输失败的消息的预期 MAC 层目标的目标节点 ID 信息。
更新的绿色电源规范
绿色电力服务器代码进行了各种改进,包括
- 在 GP 服务器上接收时,为具有无效端点的传入命令添加了更多验证代码。
- 添加代码来处理没有更多空间来构建绿色电源消息的情况。
- 根据规范部分 A.3.5.2.4.1,接收器现在在某些情况下会删除配对配置并执行“移除配对”操作。
- 现在,接收器在使用操作扩展处理配对配置时,会在删除之前保存条目的现有组列表。
- 当翻译表为空或索引大于表中的条目数时,翻译查询命令将返回“NOT FOUND”作为错误代码。
- 将某些应用程序中的 GP 端点版本从 1 更改为 0。
在 GPDF 发送功能中使用 CSMA 受到限制,因为绿色电源器件是最小能源器件,并且在大多数设计中不使用 CSMA。相反,首选设计是使用相同的能量预算发送多个数据包。
删除了 Green Power Server 插件选项中隐藏端点的使用。请改用应用程序端点之一。
网络密钥更新插件代码改进
将定期网络密钥更新周期改为长达1年。
重构了一些API以避免不必要的密钥导出
进行了更改以支持使用关键上下文而不是纯文本关键数据。
- sl_zigbee_send_security_challenge_request 现在采用 sl_zb_sec_man_context_t 参数代替 EmberKeyData。
- sl_zb_sec_man_衍生_key_type 枚举的值现在是 16 位位掩码,以直接支持组合多个派生类型的某些密钥派生。
修正问题
已在 7.4.5.0 版中修复
| ID # | 描述 |
| 1357860 | 修复了多个端点开始初始化识别反馈事件时导致崩溃的问题。(其他参考:1348659) |
| 1357517 | 修复了多网络应用程序尝试在辅助网络上进行操控时导致崩溃的问题。 |
| 1356285 | 在极少数情况下,数据包可能会被传递到传出数据包切换回调,其有效负载索引参数超出了数据包缓冲区的规定长度,如果启用了数据包切换组件,则会导致 legacy-packet-buffer.c 中的断言。该组件的传入和传出处理程序函数现在会捕获这种情况并丢弃无效数据包而无需进一步处理。(其他参考:1350285) |
| 1355289 | 修复了导致收到的 LQI 响应中 MAC 地址全为零的问题。(其他参考:1351489) |
| 1349160 |
|
| 1343044 | 如果碎片插件错误计算了单播碎片的可用有效负载,则在考虑所有堆栈开销后,它可能会向 NCP 发送比单个数据包所能容纳的数据更多的数据。这可能会导致 NCP 内存损坏,从而触发断言失败或其他意外行为。
(其他参考号:1289413) |
| 1343012 | Si4468 固件补丁已添加到 phy-pro2plus-library,以解决 sub-GHz Tx/Rx 处理中的竞争条件。(其他参考:1341928) |
| 1311214 | 修复了传入的 OTA 服务器命令 ZCL 消息启用默认响应时生成的额外默认响应。仅发送一个错误响应,对于成功的块图像请求,不设置默认响应。(其他参考:1300935) |
| 1296653 | 如果双 PHY NCP 设备在 2.4GHz 无线电处于活动状态时在 2.4GHz 以下频段执行能量扫描,则在扫描许多 XNUMXGHz 以下信道时,响应 XNUMXGHz 无线电信道上的传入信标请求而产生的大量传入信标流量可能会占用大量堆栈缓冲内存(从堆段分配),这可能会导致缓冲区短缺tag如果堆大小(决定系统可用的缓冲区数量)不够大,则会出现 es 和 EZSP 溢出情况。此溢出情况可能会阻止扫描完成处理程序到达主机应用程序,从而导致应用程序的扫描状态机永远卡住。
双 PHY 设备的能量扫描代码现在会在扫描亚 GHz 信道期间丢弃 2.4GHz 无线电上收到的任何信标数据包,从而防止大量信标涌入造成上述问题。请注意,这不会妨碍 2.4GHz 网络的正常运行,因为信标仅在设备未执行主动扫描时用于潜在的 PAN ID 冲突检测,并且网络中的其他路由器在此期间仍可检测到 PAN ID 冲突,或者在能量扫描完成后由协调器检测到。(其他参考:1276049) |
| ID # | 描述 |
| 1295250 | 修复了将测试工具 zigbee 3.0 组件添加到标准应用程序时出现的编译问题。(其他参考:1280058) |
| 1294848 | 添加了对 ZCL 数据数组的检查,以适应最长 253 的字符串长度。(其他参考:1275092) |
| 1294843 | 修复了使用前缺少局部变量初始化的问题。(其他参考:1275104) |
| 1271968 |
|
| 1270721 | 修复了改进设备多跳连接的问题。设备发布后,地址对将添加到地址缓存中。(其他参考:1266351) |
已在 7.4.4.0 版中修复
| ID # | 描述 |
| 1334454 | 修复了处理重新加入响应时出现的问题。(其他参考:1331580) |
| 1330732 | 诊断功能应该在调用 Iostream 后禁用中断,以避免在获取互斥锁时断言。 |
|
1330720 |
EZSP_MAX_FRAME_LENGTH 恢复为 220,允许 XNCP 消息的最大长度也为 220。
(其他参考号:1327706) |
| 1330311 | 修复了导致某些 GP 代理测试在 RCP 主机设置上失败的问题。(其他参考:1328991) |
| 1312369 | 使SL_LEGACY_HAL_WDOG_IRQHandler()成为弱函数,允许客户提供自己的实现。 |
| 1310711 | 当在 zigbee 项目中使用 RTOS 组件时,添加了对 SL_STACK_SIZE 的编译时错误检查。 |
|
1309913 |
为 App Framework 事件队列添加了互斥保护,以便可以从多个任务调用 App Framework 事件 API。
(其他参考编号:1252940、1254397) |
| 1309333 | 当新的终端设备加入 Sub-GHz 频段后,所有子终端设备的占空比老化数据被错误清除。
(其他参考号:1296881) |
| 1296002 | 导致 halAppBootloader 函数多重定义的问题已解决。 |
| 1295756 | 未标记为中断安全的堆栈事件不应在 ISR 上下文中调度,因为这可能会造成竞争条件,导致事件从事件队列中删除。当触发此竞争条件时,这种情况会阻止 sub-GHz 设备正确调度 MAC 退避。
(其他参考号:1269856) |
| 1294660 | 修复了网络转向插件可能表现得好像设备已连接到网络但实际上并未连接到网络,并一直处于这种无效状态直到重置的问题。当网络转向正在连接网络且 MAC 扫描仍在等待时,可以通过以足够精确的时间调用 network leave CLI 命令来触发此问题。
(其他参考号:1293923) |
| 1290695 | 修复了当一个端点被禁用而其他端点仍处于启用状态时,用例中 ZLL 调试数据包丢失的问题。添加了此修复以检查所有已启用的端点。
(其他参考号:1275586) |
已在 7.4.0.0 版中修复
| ID # | 描述 |
| 1019348 | 修复了 Zigbee ZCL Cli 组件的依赖关系要求,以便在不需要时可以将其删除。 |
| 1024246 | 更新了 emberHaveLinkKey() 和 sl_zb_sec_man_have_link_key() 的函数描述。 |
| 1036503 | 添加了建议使用 DMP 的 Micrium 内核的说明amp乐应用程序。 |
| 1037661 | 阻止应用程序安装专业堆栈或叶子堆栈的问题已得到修复。 |
| 1078136 | 修复了从中断上下文修改事件时的间歇性崩溃 |
| 1081548 | CSL 中修复了一个问题,即在前一个有效负载帧之后立即接收到的新唤醒帧序列将无法正确记录。这将导致丢失有效负载帧。 |
| 1084111 | 作为此版本的一部分,对基于 MG24 的主板的初始休眠 SPI-NCP 支持已更新。 |
| 1104056 | 添加了对网络引导的支持,以便在多网络情况下在辅助网络上运行 |
| 1120515 | 修复了使用 mfglib set-channel 命令时通道未更改的问题。 |
| 1141109 | 修复了导致生成 s 的问题ample 应用程序 ncp-uart-gp-multi-rail 丢失一些标头 file使用带有 -cp 选项的绿色电源适配器组件时。 |
| 1144316 | 更新了 gp-types.h 文档中一些数据结构类型的描述。 |
| 1144884 | 修复了没有待处理数据时设置的虚假帧待处理位。 |
| 1152512 | 修复了在 ISR 上下文中修改事件时 low-mac-rail 中潜在的崩溃问题。 |
| 1154616 | 添加了“将角色从休眠终端设备切换到非休眠终端设备”情况下初始化网络的条件的例外。 |
| 1157289 | 修复了可能导致 BDB 测试失败 DN-TLM-TC-02B 的问题。 |
| 1157426 | 修复了使用 green_power_adapter 组件构建 zigbee_simple_app 时的构建问题。 |
| 1157932 | 添加了一个条件来检查“过渡时间”字段是否缺失,并为此缺失字段设置默认值 0xFFFF。 |
| 1166340 | 修复了导致 emberAfGpdfSend 无法发送预期重复传输次数的问题。 |
| ID # | 描述 |
| 1167807 | 修复了每次新设备加入时,在分布式网络中充当信任中心的设备会错误地清除其临时链接密钥的问题。 |
| 1169504 | 修复了强制唤醒时导致休眠设备重置的问题。 |
| 1169966 | 修复了缓冲区分配代码中缺少返回值验证的问题。 |
| 1171477,
172270 |
使用 mfglib start 1 没有发送但接收消息,因此显示的终端消息“mfglib sendcomplete”是错误的,并更改为“RXed %d packet in the last %d ms”。 |
| 1171935 | 将定期网络密钥更新周期改为长达1年。 |
| 1172778 | 将缺少的 emberAfPluginGreenPowerServerUpdateAliasCallback 调用添加到 Green Power 服务器。 |
| 1174288 | 修复了导致网络转向进程在调用停止正在进行的扫描的调用时断言的问题。 |
| 1178393 | 更新了文档错误。 |
| 1180445 | 在智能能源中,如果协调器达到有限任务周期,OTA 现在会继续下载。 |
| 1185509 | 修复了 CSL 中无法正确记录紧随前一个有效负载帧之后接收到的新唤醒帧序列的问题。这将导致丢失有效负载帧。 |
| 1186107 | 修复了导致接收到的 GPDF 解密失败以替换 gp 调试通知中传入的 GPDF 的问题。 |
| 1188397 | 修复了启用扩展报告表大小时导致编译错误的问题。 |
| 1194090 | 更正了接收器调试模式命令的默认响应中的故障状态 - 遵循第 3.3.4.8.2 节 |
| 1194963 | 修复了在调用用户回调 emberAfGreenPowerServerPairingStatusCallback 之前对 commissioningGpd 结构进行 memset 的问题。 |
| 1194966 | 修复了未使用退出调试操作设置端点和 proxiesInvolved 字段的问题。 |
| 1196698 | 修复了没有待处理数据时设置的虚假帧待处理位。 |
| 1199958 | 添加了代码来处理没有更多空间来构建绿色电源消息的情况。 |
| 1202034 | 修复了 sl_zb_sec_man_context_t 堆栈变量未正确初始化,导致连接安装代码失败的问题。 |
| 1206040 | 在终端设备尝试安全重新加入期间调用 emberRemoveChild() 可能会导致子计数额外减少,从而可能导致子计数为 -1 (255),从而由于指示的缺失而阻止终端设备加入/重新加入信标中的容量。 |
|
1207580 |
堆栈中的子表搜索函数在使用 0x0000 与 0xFFFF 作为表示无效/空条目的节点 ID 返回值时不一致,导致在检查 emberRemoveChild() 等 API 中未使用的条目时出现问题。 |
| 1210706 | 作为 emberCounterHandler() 一部分的 EmberExtraCounterInfo 结构中提供的目标和 PHY 索引对于 MAC TX 单播计数器类型可能不正确。 |
| 1211610
1212525 |
修复了启用安全密钥存储升级组件后动态多协议应用程序崩溃的问题。 |
| 1211847 | 虽然 emberCounterHandler() 的签名没有改变,但其参数的填充方式略有改变。上面第 2 节解释了围绕此 API 的更改。 |
|
1212449 |
MAC 层错误地对传出信标进行了分类,导致 emberCounterHandler() 无法使用 EMBER_COUNTER_MAC_TX_BROADCAST 计数器类型捕获这些数据包,而是使用 EMBER_COUNTER_MAC_TX_UNICAST_SUCCESS 计数器类型对信标进行计数。这可能会导致传递给 EmberCounterInfo 结构的 dest EmberNodeId 参数的值不可靠 |
| 1214866 | 在某些高流量配置中发送数据轮询数据包可能会导致总线故障。 |
| 1216552 | 修复了在繁忙流量条件下导致断言的问题。 |
| 1216613 | 修复了导致代理表中组播半径值不正确的问题。 |
| 1222509 | 路由器/协调器向非子轮询终端设备发送离开和重新加入请求,但 MAC 目标是 0xFFFF,而不是匹配 NWK 目标地址。 |
| 1223842 | 修复了生成 sl_component_catalog.h 时留下不需要的代码导致编译失败的问题。 |
| ID # | 描述 |
| 756628 | 将应用程序回调 emberAfMacFilterMatchMessageCallback 的调用更改为仅针对堆栈验证的 ZLL 消息调用。 |
| 816088 | 将 EMBER 配置从 zigbeed_configuration.h 移至 zigbeed.slcp。 |
| 829508 | 为了避免竞争条件,在 emberSetLogicalAndRadioChannel 中添加了额外的验证,以便在较低层繁忙或未处于更改通道的状态时返回不成功。 |
当前版本中的已知问题
自上一版本以来添加了粗体问题。 如果您错过了某个版本,请访问最近的版本说明 https://www.si-labs.com/developers/zigbee-emberznet 在技术文档选项卡中。
| ID # | 描述 | 解决方法 |
| 不适用 | 此版本不支持以下应用程序/组件:EM4 支持。 | 该功能将在后续版本中启用。 |
| 193492 | emberAfFillCommandGlobalServerToClientConfigureRe 移植宏已损坏。缓冲区的填充会产生错误的命令包。 | 使用“zcl global send-me-a-report”CLI 命令而不是 API。 |
| 278063 | 智能能源隧道 plugins 地址表索引的处理/使用存在冲突。 | 没有已知的解决方法 |
| 289569 | 网络创建者组件功率级别选项列表未提供 EFR32 的全部支持值 | 编辑 EMBER_AF_PLUGIN_NETWORK_CREATOR_RADIO_P 的 CMSIS 注释中指定的范围 <-8..20>
OWER 在 /protocol/zigbee/app/framework/plugin/network-creator/config/network-creator-config.h file. 例如ample,更改为 。 |
| 295498 | 在 Zigbee+BLE 动态多协议用例中,UART 接收有时会在重负载下丢失字节。 | 使用硬件流控制或降低波特率。 |
| 312291 | EMHAL:Linux 主机上的 halCommonGetIntxxMillisecondTick 函数当前使用 gettimeofday 函数,该函数不能保证单调性。如果系统时间发生变化,可能会导致堆栈计时问题。 | 修改这些函数以将clock_gettime 与CLOCK_MONOTONIC 源结合使用。 |
| 338151 | 使用低数据包缓冲区计数值初始化 NCP 可能会导致数据包损坏。 | 使用 0xFF 保留值作为数据包缓冲区计数以避免默认值过低 |
| 387750 | 终端设备上的路由表请求格式存在问题。 | 在调查中 |
| 400418 | touchlink 启动器无法链接到非出厂新的终端设备目标。 | 没有已知的解决方法。 |
| 424355 | 在某些情况下,支持触摸链接目标的非出厂休眠终端设备启动器无法接收设备信息响应。 | 在调查中 |
|
465180 |
共存无线电拦截器优化项“启用运行时控制”可能会阻止正确的 Zigbee 操作。 | 拦截器优化的可选“Wi-Fi 选择”控制应保留为“禁用”。 |
| 480550 | OTA集群有自己内置的分片方法,因此不应该使用APS分片。不过,如果启用了 APS 加密,它会将 ImageBlockResponses 的有效负载增加到激活 APS 碎片的大小。这可能会导致 OTA 流程失败。 | 没有已知的解决方法 |
| 481128 | 当启用诊断插件和虚拟 UART 外设时,默认情况下应通过 NCP 平台上的虚拟 UART(串行 0)提供详细的重置原因和崩溃详细信息。 | 由于 Serial 0 已在 NCP 中初始化,因此客户可以在 Zigbee NCP Framework 中启用 emberAfNcpInitCallback,并在此回调中调用相应的诊断函数(halGetExtendedResetInfo、halGetExtendedResetString、halPrintCrashSummary、halPrintCrashDetails 和 halPrintCrashData)以将此数据打印到 Serial 0 view网络分析仪捕获日志中的信息。
对于前任amp有关如何使用这些函数的信息,请参阅定义 EXTENDED_RESET_INFO 时 af-main-soc.c 的 emberAfMainInit() 中包含的代码。 |
| ID # | 描述 | 解决方法 |
| 486369 | 如果形成新网络的 DynamicMultiProtocolLightSoc 具有其已离开的网络中剩余的子节点,则 emberAfGetChildTableSize 在 startIdentifyOnAllChildNodes 中返回非零值,从而在寻址“幽灵”子节点时导致 Tx 66 错误消息。 | 如果可能,请在创建新网络之前批量擦除该部分,或者在离开网络后以编程方式检查子表,并在形成新网络之前使用 emberRemoveChild 删除所有子表。 |
| 495563 | 加入 SPI NCP Sleepy End Device Sample App 不进行短轮询,因此在更新 TC Link Key 状态下加入尝试失败。 | 希望加入的设备在尝试加入之前应处于短轮询模式。终端设备支持插件可以强制此模式。 |
| 497832 | 在网络分析器中,验证密钥请求帧的 Zigbee 应用支持命令分解错误地引用了将帧源地址指示为目标地址的有效负载部分。 | 没有已知的解决方法 |
| 519905
521782 |
SPI NCP 很少会无法使用 ota-client 插件的“bootload”CLI 命令启动引导加载程序通信。 | 重新启动引导加载过程 |
| 620596 | NCP SPI 防爆ampBRD4181A (EFR32xGMG21) 的文件
nWake 默认定义的引脚不能用作唤醒引脚。 |
在 NCP-SPI 插件中将 nWake 的默认引脚从 PD03 更改为 EM2/3 唤醒启用引脚。 |
| 631713 | 如果使用插件“Zigbee PRO Stack Library”而不是“Zigbee PRO Leaf Library”,Zigbee 终端设备将重复报告地址冲突。 | 使用“Zigbee PRO Leaf Library”而不是“Zigbee PRO Stack Library”插件。 |
| 670702 | 报告插件中的低效率可能会导致基于数据写入频率和表大小的显着延迟,这可能会干扰客户应用程序代码,包括事件计时。 | 如果频繁写入,请考虑检查报告条件并手动发送报告,而不是使用插件。 |
| 708258 | groups-server.c 中通过 addEntryToGroupTable() 的未初始化值可能会创建虚假绑定并导致发送组播报告消息。 | 添加“binding.clusterId = EMBER_AF_INVALID_CLUSTER_ID;”在“绑定.类型”之后
= EMBER_MULTICAST_BINDING;” |
| 757775 | 所有 EFR32 部件都具有独特的 RSSI 偏移。此外,电路板设计、天线和外壳也会影响 RSSI。 | 创建新项目时,安装 RAIL Utility、RSSI 组件。此功能包括 SiLabs 为每个部件测量的默认 RSSI 偏移。在对完整产品进行 RF 测试后,可以根据需要修改此偏移。 |
| 758965 | ZCL 集群组件和 ZCL 命令发现表不同步。因此,当启用或禁用 ZCL 集群组件时,已实现的命令将不会在相应的 ZCL 高级配置器命令选项卡中启用/禁用。 | 在 ZCL 高级配置器中手动启用/禁用所需 ZCL 命令的发现。 |
| 765735 | 在启用页面请求的休眠终端设备上,OTA 更新失败。 | 使用块请求而不是页面请求。 |
| 845649 | 删除 CLI:Core 组件不会消除 EEPROM cli 对 sl_cli.h 的调用。 | 删除 eeprom-cli.c file 调用 sl_cli.h。此外,可以注释掉 ota-storage-simple-eeprom 中对 sl_cli.h 和 sl_cli_command_arg_t 的调用。 |
| 857200 | ias-zone-server.c 允许使用“0000000000000000”CIE 地址创建绑定,并且以后不允许进一步绑定。 | 没有已知的解决方法 |
| 1019961 | 生成的 Z3Gateway makefile 将“gcc”硬编码为 CC | 没有已知的解决方法 |
| ID # | 描述 | 解决方法 |
| 1039767 | 多线程 RTOS 使用案例中的 Zigbee 路由器网络重试队列溢出问题。 | Zigbee 堆栈不是线程安全的。因此,在 OS 环境中不支持从另一个任务调用 Zigbee 堆栈 API,并且可能会使堆栈处于“非工作”状态。有关使用事件处理程序的更多信息和解决方法,请参阅以下应用说明。
https://www.silabs.com/documents/public/application- notes/an1322-dynamic-multiprotocol-bluetooth-zigbee-sdk-7x.pdf . |
| 1064370 | Z3Switch 的amp默认情况下,该应用程序仅启用一个按钮(实例:btn1),这会导致项目中的按钮描述不匹配 file. | 解决方法:在 Z0Switch 项目创建期间手动安装 btn3 实例。 |
| 1161063 | Z3Light 和可能的其他应用程序报告不正确的集群修订值。 | 手动将集群修订版属性更新为其适当的修订版。 |
| 1164768,
1171478, 1171479 |
错误:在 mfglib 接收模式期间重复报告 ezspErrorHandler 0x34 | 要减少打印的错误消息,请配置 EMBER_AF_PLUGIN_GATEWAY_MAX_WAIT_FOR_EV
将主机应用程序上的 ENT_TIMEOUT_MS 设置为 100,以便更快地释放回调队列。 |
弃用的项目
在版本 7.4.5.0 中已弃用
在 GSDK 7.4.5.0 中,zigbee_watchdog_periodic_refresh 已弃用。刷新看门狗定时器的另一种推荐方法是在应用程序特定的周期性事件中使用旧式看门狗定时器 API。
在版本 7.4.1.0 中已弃用
在 GSDK 7.4.0.0 及更高版本(包括此补丁)中,Linux 主机应用程序在 Z3Gateway 中创建端口为 4900 或 4901 的 telnet 接口的“-v”选项已被弃用。创建 telnet 接口的另一种推荐方法是使用 Linux 实用程序,例如“socat”。
在版本 7.4.0.0 中已弃用
删除了以下已弃用的安全 API
- emberGetKey()
- emberGetKeyTableEntry()
- emberSetKeyTableEntry()
- emberHaveLinkKey()
- emberAddOrUpdateKeyTableEntry()
- emberAddTransientLinkKey()
- emberGetTransientKeyTableEntry()
- emberGetTransientLinkKey()
- emberHmacAesHash()
使用 Zigbee 安全管理器提供的 API 来访问密钥存储和 HMAC 哈希。
已移除商品
在版本 7.4.0.0 中删除
- 删除了公共标头中重复的公共 API file gp-types.h。
- zigbee_end_device_bind 组件已被删除。该组件用于协调器代理终端设备的绑定请求。此可选功能已从 Zigbee 核心规范的 R22 中删除。
- 删除了 af-host.c 中的 set Packet BufferCount() 和 command-handlers.c 中的无用检查案例 EZSP_CONFIG_PACKET_BUFFER_COUNT:。
- 删除了内存分配参数,因为初始化 NCP 时不需要分为两个阶段。
- 删除了 se14-comms-hub、se14-ihd 和 se14-meter-gas 的 app.c 中的 emberAfNcpInitCallback()。
- 在 ncp-configuration.c 中的 ncp 初始化期间删除了设置 EZSP_CONFIG_RETRY_QUEUE_SIZE 值。
多协议网关和 RCP
新品
在版本 7.4.0.0 中添加
发布了并发侦听,即使用 EFR802.15.4xG32 或 xG24 RCP 时 Zigbee 和 OpenThread 堆栈在独立 21 通道上运行的能力。并发监听不适用于 802.15.4 RCP/蓝牙 RCP 组合、Zigbee NCP/OpenThread RCP 组合或 Zigbee/OpenThread 片上系统 (SoC)。它将在未来版本中添加到这些产品中。
OpenThread CLI 供应商扩展已添加到多协议容器的 OpenThread 主机应用程序中。这包括 coex cli 命令。
改进
在版本 7.4.0.0 中更改
Zigbee NCP/OpenThread RCP 多协议组合现已达到生产质量。ample 应用程序不支持 Series-1 EFR 设备。
修正问题
已在 7.4.5.0 版中修复
| ID # | 描述 |
| 1328799 | Spinel RESET 命令触发的软重置现在会清除 15.4 RCP 的缓冲区。 |
| 1337101 | 由于 DMP 导致无线电中断,未完成的 15.4 传输操作(Tx 等待确认、Tx 确认以响应消息等)不再过早被视为失败。这允许所述操作有机会在中断后重新安排或由 RAIL(调度程序状态错误事件)永久失败。
(其他参考号:1339032) |
| 1337228 | 在 Zigbeed 中,halCommonGetInt32uMillisecondTick() tick API 现已更新为使用 MONOTONIC 时钟,这样它就不会受到主机系统中 NTP 的影响。
(其他参考号:1339032) |
| 1346785 | 修复了当两种协议同时传输时可能导致 802.15.4 RCP 上的并发监听被禁用的竞争条件。
(其他参考号:1349176) |
| 1346849 | 将 rail_mux 组件添加到项目中现在将导致它使用相关的堆栈库变体自动构建。
(其他参考号:1349102) |
已在 7.4.4.0 版中修复
| ID # | 描述 |
| 1184065 | 减少了 MG13 和 MG21 上 zigbee_ncp-ot_rcp-spi 和 zigbee_ncp-ot_rcp_uart 的 RAM 占用空间。 |
| 1282264 | 修复了过早清除传输 fifo 导致下溢从而中断无线电传输操作的问题。 |
| 1292537 | DMP Zigbee-BLE NCP 应用程序现在可在 Simplicity Studio UI 中正确显示。(其他参考:1292540) |
| 1230193 | 修复了在终端设备接入网络时节点类型不正确的问题。(其他参考:1298347) |
| 1332330 | 修复了在网络流量很大的环境中运行的 15.4+BLE RCP 偶尔会遇到竞争条件的问题,这会导致它无法向 CPCd 发送消息,直到重新启动设备为止。
(其他参考号:1333156) |
已在 7.4.2.0 版中修复
| ID # | 描述 |
| 1022972 | 将共存插件添加回 Zigbee-OpenThread NCP/RCPamp申请。 |
| 1231021 | 通过恢复 RCP 而不是将未处理的传输错误传递给 sub mac,可以避免加入 80 多个 zigbee 设备时观察到的 OTBR 中的断言。 |
| 1249346 | 解决了 RCP 可能错误地将发往主机的数据包出队,导致 OTBR 中出现解析错误和意外终止的问题。 |
已在 7.4.1.0 版中修复
| ID # | 描述 |
| 1213701 | 如果 MAC 间接队列已经有该子项的待处理数据,zigbeed 不允许为该子项创建源匹配表条目。此行为可能会导致子设备与其他某些设备之间的应用程序层事务由于缺乏 APS Ack 或应用程序层响应而失败,最明显的是针对子设备的 ZCL OTA 升级的中断和意外终止。 |
| 1244461 | 尽管消息未决,但子项的源匹配表条目可能会被删除。 |
已在 7.4.0.0 版中修复
| ID # | 描述 |
| 1081828 | 基于 FreeRTOS 的 Zigbee/BLE DMP 的吞吐量问题amp应用程序。 |
| 1090921 | Z3GatewayCpc 在嘈杂的环境中组建网络时遇到困难。 |
| 1153055 | 从 zigbee_ncp-ble_ncp-uart 读取 NCP 版本时发生通信故障,导致主机上出现断言amp乐应用程序。 |
| 1155676 | 如果多个 802.15.4 接口共享相同的 15.4 位节点 ID,16 RCP 会丢弃所有收到的单播数据包(MAC 确认后)。 |
| 1173178 | 主机错误地报告了在 Host-RCP 设置中使用 mfglib 接收到的数百个数据包。 |
| 1190859 | 在 Host-RCP 设置中发送 mfglib 随机数据包时出现 EZSP 错误。 |
| 1199706 | 来自被遗忘的终端设备子设备的数据轮询未在 RCP 上正确设置挂起帧,以将离开并重新加入命令排队到前一个子设备。 |
| 1207967 | “mfglib send random”命令在 Zigbeed 上发送额外的数据包。 |
| 1208012 | 在 RCP 上接收时,mfglib rx 模式未正确更新数据包信息。 |
| 1214359 | 当 80 个或更多路由器尝试同时加入 Host-RCP 设置时,协调器节点崩溃。 |
| 1216470 | 在中继地址掩码 0xFFFF 的广播后,充当父设备的 Zigbee RCP 将为每个子设备留下待处理的数据标志集。这导致每个孩子在每次轮询后都保持清醒状态,等待数据,并且需要每个终端设备进行一些其他待处理的数据事务以最终清除此状态。 |
当前版本中的已知问题
自上一版本以来添加了粗体问题。 如果您错过了某个版本,请访问最近的版本说明 https://www.si-labs.com/developers/gecko-software-development-kit .
| ID # | 描述 | 解决方法 |
| 937562 | Bluetoothctl 'advertise on' 命令在 Raspberry Pi OS 802154 上使用 rcp-uart-11-blehci 应用程序失败。 | 使用 btmgmt 应用程序而不是 bluetoothctl。 |
| 1074205 | CMP RCP 不支持同一 PAN id 上的两个网络。 | 为每个网络使用不同的 PAN id。 计划在未来的版本中提供支持。 |
| 1122723 | 在繁忙的环境中,z3-light_ot-ftd_soc 应用程序中的 CLI 可能会变得无响应。 | 没有已知的解决方法。 |
| 1124140 | z3-light_ot-ftd_soc samp如果 OT 网络已经启动,则该应用程序无法形成 Zigbee 网络。 | 首先启动 Zigbee 网络,然后启动 OT 网络。 |
| 1170052 | CMP Zigbee NCP + OT RCP 和 DMP Zigbee NCP + BLE NCP 可能不适合当前版本中的 64KB 及更低 RAM 部件。 | 这些应用程序当前不支持 64KB 部分。 |
| 1209958 | 运行所有三种协议时,Bobcat 和 Bobcat Lite 上的 ZB/OT/BLE RCP 可能会在几分钟后停止工作。 | 将在未来版本中解决 |
| 1221299 | RCP 和 NCP 之间的 Mfglib RSSI 读数不同。 | 将在未来版本中解决。 |
| 1334477 | 多次启动和停止 BLE 堆栈可能会导致 BLE 堆栈无法在 DMP Zigbee-BLE 中的 1 系列 EFR 设备上重新启动广告amp申请。 | 不适用 |
已弃用的项目 无
已移除商品
在版本 7.4.0.0 中删除
“NONCOMPLIANT_ACK_TIMING_WORKAROUND”宏已被删除。现在,所有 RCP 应用程序默认支持非增强型 ack 的 192 微秒周转时间,同时仍使用 CSL 所需的增强型 ack 的 256 微秒周转时间。
使用此版本
- Zigbee堆栈
- Zigbee应用框架
- 紫蜂Samp应用程序
有关 Zigbee 和 EmberZNet SDK 的更多信息,请参阅 UG103.02:Zigbee 基础知识。
如果您是首次使用,请参阅 QSG180:SDK 7.0 及更高版本的 Zigbee EmberZNet 快速入门指南,了解有关配置开发环境、构建和刷新的说明amp文件应用程序以及指向后续步骤的文档参考。
安装和使用
Zigbee EmberZNet SDK 作为 Gecko SDK (GSDK)(Silicon Labs SDK 套件)的一部分提供。要快速开始使用 GSDK,请安装 Simplicity Studio 5,它将设置您的开发环境并引导您完成 GSDK 安装。 Simplicity Studio 5 包含使用 Silicon Labs 设备开发物联网产品所需的一切,包括资源和项目启动器、软件配置工具、带有 GNU 工具链的完整 IDE 以及分析工具。在线 Simplicity Studio 5 用户指南中提供了安装说明。
或者,可以通过从 GitHub 下载或克隆最新版本来手动安装 Gecko SDK。 看 https://github.com/Sili-conLabs/gecko_sdk 了解更多信息 。
Simplicity Studio 默认安装 GSDK
- (视窗): C:\用户\ \SimplicityStudio\SDKs\gecko_sdk
- (苹果系统): /用户/ /SimplicityStudio/SDKs/gecko_sdk
特定于 SDK 版本的文档随 SDK 安装。 通常可以在知识库文章 (KBA) 中找到其他信息。 有关此版本和早期版本的 API 参考和其他信息可在 https://docs.silabs.com/ .
安全信息
安全保管库集成
对于选择使用 Secure Vault-High 部件上的安全密钥存储组件安全存储密钥的应用程序,下表显示了 Zigbee 安全管理器组件管理的受保护密钥及其存储保护特性。
| 包装密钥 | 可出口/不可出口 | 笔记 |
| 网络密钥 | 可导出 | |
| 信任中心链接密钥 | 可导出 | |
| 瞬态链接密钥 | 可导出 | 索引键表,存储为易失性键 |
| 应用程序链接密钥 | 可导出 | 索引键表 |
| 安全 EZSP 密钥 | 可导出 | |
| ZLL 加密密钥 | 可导出 | |
| ZLL 预配置密钥 | 可导出 | |
| GPD 代理密钥 | 可导出 | 索引键表 |
| GPD 接收器密钥 | 可导出 | 索引键表 |
| 内部/占位符键 | 可导出 | Zigbee 安全管理器使用的内部密钥 |
- 可以使用但不能使用标记为“不可导出”的包装密钥 view在运行时编辑或共享。
- 标记为“可导出”的包装密钥可以在运行时使用或共享,但在存储在闪存中时仍保持加密状态。
- 用户应用程序永远不需要与这些键中的大多数进行交互。用于管理链路密钥表密钥或临时密钥的现有 API 仍然可供用户应用程序使用,并且现在可以通过 Zigbee 安全管理器组件进行路由。
- 其中一些密钥将来可能无法导出到用户应用程序。除非绝对必要,否则鼓励用户应用程序不要依赖密钥的导出。
有关安全保管库密钥管理功能的更多信息,请参阅 AN1271:安全密钥存储。
安全建议
要订阅安全公告,请登录 Silicon Labs 客户门户,然后选择帐户主页。 单击“主页”转到门户主页,然后单击“管理通知”磁贴。 确保选中“软件/安全咨询通知和产品变更通知 (PCN)”,并且您至少订阅了您的平台和协议。 单击保存以保存任何更改。
下图是example
![]()
支持
开发套件客户有资格获得培训和技术支持。使用 Silicon Laboratories Zigbee web 页面获取有关所有 Silicon Labs Zigbee 产品和服务的信息,并注册获得产品支持。
您可以通过以下方式联系 Silicon Laboratories 支持 http://www.silabs.com/support .
简单工作室
一键访问 MCU 和无线工具、文档、软件、源代码库等。 适用于 Windows、Mac 和 Linux!
- 物联网产品组合
www.silabs.com/物联网 - 软件/硬件
www.silabs.com/simplicity - 质量
www.silabs.com/quality - 支持与社区
www.silabs.com/community
免责声明
Silicon Labs 打算为使用或打算使用 Silicon Labs 产品的系统和软件实施者提供所有外围设备和模块的最新、准确和深入的文档。 特性数据、可用模块和外围设备、内存大小和内存地址是指每个特定的设备,并且提供的“典型”参数在不同的应用程序中可能并且确实会有所不同。 应用前amp本文描述的文件仅用于说明目的。 Silicon Labs 保留对本文中的产品信息、规格和描述进行更改的权利,恕不另行通知,并且不对所包含信息的准确性或完整性提供保证。出于安全或可靠性原因,Silicon Labs 可能会在制造过程中更新产品固件,恕不另行通知。此类更改不会改变产品的规格或性能。对于使用本文档中提供的信息所造成的后果,Silicon Labs 不承担任何责任。本文件并不暗示或明确授予设计或制造任何集成电路的任何许可。未经 Silicon Labs 具体书面同意,这些产品未设计或授权用于任何 FDA III 类设备、需要 FDA 上市前批准的应用或生命支持系统。 “生命支持系统”是指旨在支持或维持生命和/或健康的任何产品或系统,如果出现故障,可以合理预期会导致重大人身伤害或死亡。 Silicon Labs 产品并非为军事应用而设计或授权。 Silicon Labs 产品在任何情况下均不得用于大规模杀伤性武器,包括(但不限于)核武器、生物武器或化学武器,或能够运载此类武器的导弹。 Silicon Labs 不承担所有明示和默示的保证,并且对于因在此类未经授权的应用程序中使用 Silicon Labs 产品而造成的任何伤害或损害不承担任何责任。
商标信息
Silicon Laboratories Inc.®、Silicon Laboratories®、Silicon Labs®、SiLabs® 和 Silicon Labs 徽标®、Bluegiga®、Bluegiga 徽标®、EFM®、EFM32®、EFR、Ember®、Energy Micro、Energy Micro 徽标及其组合、“全球最节能的微控制器”、Redpine Signals®、WiSeConnect、n-Link、EZLink®、EZRadio®、EZRadioPRO®、Gecko®、Gecko OS、Gecko OS Studio、Precision32®、Simplicity Studio®、Telegesis、Telegesis 徽标®、USBXpress®、Zentri、Zentri 徽标和 Zentri DMS、Z-Wave® 等是 Silicon Labs 的商标或注册商标。ARM、CORTEX、Cortex-M3 和 THUMB 是 ARM Holdings 的商标或注册商标。Keil 是 ARM Limited 的注册商标。 Wi-Fi 是 Wi-Fi Alliance 的注册商标。本文提及的所有其他产品或品牌名称均为其各自所有者的商标。
- 硅实验室公司
- 400 西塞萨尔查韦斯奥斯汀,TX 78701
- 美国
- www.silabs.com
文件/资源
![]() |
硅实验室 7.4.5.0 Zigbee Ember Z Net SDK [pdf] 用户指南 7.4.5.0、7.4.4.0、7.4.3.0、7.4.2.0、7.4.1.0、7.4.0.0、7.4.5.0 Zigbee Ember Z Net SDK、7.4.5.0、Zigbee Ember Z Net SDK、Ember Z Net SDK、Z Net SDK、Net SDK、SDK |

