主题中讨论的其他部件: Z-stack
您好,
我们与基于CC2538的ZigBee网络合作超过2年(堆栈1.2。0)。 在上个月,我们遇到了一些问题,很少有设备停止发送数据包和响应远程请求。
这些设备是在“测试”客户中工作的设备,而不是在我们的实验室中工作的设备,因此我们对发生通信中断的确切情况的反馈很低。
我们能够重现客户报告的相同症状(设备停止响应远程订单),但不能在相同的条件下重现。 为了重现相同的症状,我们不得不使用自动转换器降低/归零/提高线路电压+与设备的大量通信对远程订单“停止响应”。 设备继续工作(本地任务工作,读取键,…) 问题。 我们几乎可以肯定客户的设备没有受到任何重置(断电,看门狗,断开),因为在外部闪存中进行本地登录。
并非我们已经有代码禁止在VDD低于2.7V时写入NV内存。
这就是我们在“线路电压攻击”+与设备进行大规模通信后所达到的目标:
症状A -设备不断从NV内存读取错误的NWKKEY (0x00,0xFF…)。 设备传输数据包,但其他设备拒绝这些数据包。 设备的正常断电/通电“解决”了问题,NWKKEY开始正确读取。
症状B -设备重新启动框架安装程序。 设备传输数据包,但其它设备会拒绝这些数据包,因为帧计数器较旧。 正常断电/通电不能解决问题。 必须关闭所有其它设备,才能忘记帧录机并开始接受数据包。
症状C -设备发送INTERPAN数据包(我们不使用INTERPAN)。 设备从其ID (正确的PANID和正确的短地址)发送数据包,但不是在相同的PANID中向协调人发送消息,而是向协调人发送PANID=0xFFFE。 断电/通电不能解决问题。 必须将设备置于网络之外并重新加入网络。
(我们附加了设备的嗅探器日志,短地址0x060E,尝试与PANID=0xFFFE通信,数据包号47及以下)
症状D -设备认为已超出网络,因此不发送任何数据包,devstate = dev_hold。 关机/开机后,设备正常,因为没有发生任何情况。 其中一台客户设备的行为与此类似。
从4个设备报告到现在,在断电/通电或重新连接(1个月前)后,没有任何设备报告相同的问题。 上述4种症状都是由我们引起的。
是否有人遇到类似的问题,“设备停止通信”? 谁知道z堆栈的代码中是否有函数可以导致这种“通信中断”? 有人可以帮助我们分析这个问题吗?
此致
nalvese2e.ti.com/.../Dispositivo-fora-de-rede-apos-sair-de-PROG.psd