Part Number:CC2652POther Parts Discussed in Thread: CC1352P
芯片: CC2652P
协议栈版本号:simplelink_cc13xx_cc26xx_sdk_6_40_00_13
协调器使用例程:zc_sw_CC1352P_2_tirtos7_ticlang
子设备使用例程:zr_light_CC1352P_2_tirtos7_ticlang
测试场景:16个设备同时申请入网,协调器可能未收到1个或多个设备的入网通知 zstackmsg_CmdIDs_ZDO_DEVICE_ANNOUNCE,设备越多时,情况越严重。
从sniff log看,所有入网设备入网后都有发送device announce报文,并且设备也确实入网成功了,双向发送消息都OK。sniff logt.zip
Yolande Wang:
您好,
已明确您的问题,当设备数量增加时,协调器未收到一些设备的入网通知,这可能会因为通信冲突、网络拥堵造成。
为了解决这个问题,可以考虑以下几个方向:
1.通过选择不同的信道,以减少通信冲突,提高设备的入网成功率。
2.在网络中使用适当的分层结构,包括协调器、路由器和端设备。路由器可以充当中继点,帮助设备找到更短的路径连接到协调器。
3.如果网络容量不足,可以考虑添加更多的协调器或路由器。
4.确保协调器和入网设备的固件是最新的,固件更新可能包含了入网成功率的改进。
另外,有没有尝试过用最新的SDK,最新版的SDK可能修复了网络通信中的此类问题。
,
Yolande Wang:
您好,问题解决了吗,如果没有这边将继续为您跟进,提供其他方案。
,
sinjin guo:
没有解决,考虑到入网通知是广播消息,不属于可靠消息,丢包无法避免,所以考虑其它方式打补丁。
但也希望你们可以优化一下协议栈,越多设备同时加网时,入网通知消息越容易丢失,最差时32个设备同时加网,丢了15个设备的入网通知。
,
Yolande Wang:
有尝试过用最新版SDK吗?
,
sinjin guo:
没有,我现在使用sdk_6_40_00_13,最新的SDK是6_41,查看了release note,zigbee这块没有提到相关的改动。
,
Yolande Wang:
现在最新版本是7.10.01.24,您可以参考一下,同时我也会继续为您寻找解决方案:https://www.ti.com/tool/download/SIMPLELINK-LOWPOWER-F2-SDK
,
sinjin guo:
好的,感谢,测试了我再反馈
,
Yolande Wang:
不客气,期待您的后续回复。
,
Yolande Wang:
您的问题解决了吗,如果没有,希望您描述下当前进度。
考虑帮您升级到E2E,让更多工程师分析,谢谢。
,
sinjin guo:
你好,尝试使用以下两种方法:
1、升级最新协议栈。
2、增加MAC层缓冲区大小,例如 nwk_globals.c 中的 NWK_MAX_DATABUFS_* 和 *_cnf.opts 中的 MAC_CFG_*
都没效,目前是让设备入网以后,从APP层主动发送一条报文,把这报文当作是入网通知。
,
Yolande Wang:
明确您的问题,正在帮您跟进。
,
YiKai Chen:
device announce报文是broadcast,一般建議不要多设备同时申请入网
,
Yolande Wang:
谢谢YiKai的回答,
DEVICE_ANNOUNCE是一条广播消息,因此当 Zigbee 流量较多时可能会丢失该消息。一般来说,我们建议不要允许多个设备同时加入/调试 Zigbee 网络。
,
Yolande Wang:
Hi sinjin,
正如Yikai所说,当多个设备尝试同时加入时,您可能会遇到某种类型的瓶颈,从而导致某些设备无法加入。最近的一个讨论与您遇到的问题类似的问题的帖子是 https://e2e.ti.com/f/1/t/1289765/ (帖子底部附近的两个最近回复)。
Ryan 的一段话,解决了 32 台设备同时连接时丢失 15 台设备的问题:
“您可以增加缓冲区大小,例如 nwk_globals.c 中的 NWK_MAX_DATABUFS_* 和 *_cnf.opts 中的 MAC_CFG_*,但这只会延迟最终的数据包接收失败。最终,数据包吞吐量能力太高,尤其是在多个设备加入,并且必须减少以给予 CPU 时间来进一步处理传入数据。 您还应该错开设备加入,可能通过将开机设备的加入时间延迟在随机的 0 到 10 秒之间,以便 ZC TC 不会不必同时处理多个请求。”
Best regards,
Yolande
,
Yolande Wang:
Hi sinjin,
上述步骤尝试过了吗,问题的疑惑点解决了吗?
Regards,
Yolande
,
sinjin guo:
Hi, Yolande,策略一:增加缓冲区,之前我的回复里已提到过,尝试了没效果。策略二:设备错开加网,这是客户的需求,暂无法改变。考虑到入网通知是广播,从设计上就不属于可靠传输,所以要求可靠传输也不合理,目前是通过子设备入网后主动上报一条报文解决了。
,
Yolande Wang:
感谢您的经验分享,欢迎随时来论坛交流!