微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 在AssociatedDevList未满时Route将ZED的关联表项删除(关联表中可能存在地址为FFFF的项目),经常发生MTO Failure问题,不知是何原因引发?

在AssociatedDevList未满时Route将ZED的关联表项删除(关联表中可能存在地址为FFFF的项目),经常发生MTO Failure问题,不知是何原因引发?

时间:10-02 整理:3721RD 点击:

各位高手,我们在开发中遇到问题,请救帮助。


芯片和协议栈版本:CC2530   ZStack 2.5.1a

网络结构:1 ZC,5 ZR,32 ZED,每个路由与6个或7个ZED绑定,ZED仅与绑定的ZR通信;使用Many to One方式,ZC作为Concentrator接收ZC的数据

设备休眠:ZED向绑定的ZR发完数据后进入PM3休眠,由外部中断唤醒后以orphan方式恢复网络,再次工作完后进行PM3休眠。因为应用环境无法提供供电,所以ZR由电池供电,也需要周期性进入休眠,同样由外部中断唤醒。

修改过的协议栈代码或编译项:

f8wconfig.cfg中的DQUEUED_POLL_RATE=0

DRESPONSE_POLL_RATE=0

MAX_RTG_SRC_ENTRIES=10

MAX_RTG_ENTRIES=10

LINK_DOWN_TRIGGER=1000

NWK_MAX_DEVICE_LIST=20

NWK_MAX_ROUTERS=20

遇到的问题:

1、我们在每次ZR与ZC同步完时间后使用AssocCount()获取关联表数,并通过串口打印出来,网络组建后运行一段时间会发现ZR的关联表数会减少,关联表数减少后与该ZR绑定的某个或某几个ZED在被外部中断唤醒后无法恢复网络,从抓包记录中可以看到ZED唤醒后发送了Orphan notification,但是ZR不回复Coordinator realignment,此时ZR的收发是正常的。测试中不止一次遇到这种情况。

补充一个现象:因为现在使用的是DMA串口打印,在设备连续收发时,关联表项打印不完,但有时会发现若是关联表的前几项被删除的话,打印出来的关联表中会存在一个地址为"FFFF"的项目。

如下图:

在出现这种情况下,必须让ZED与ZR重新进行关联才可以实现二者通信,不知是何种原因导致ZR删除了某个ZED的关联表项,如何避免这种情况?

2、ZR与ZC通信时经常出现MTO FAILURE情况,我们的MAX_RTG_SRC_ENTRIES=10大于当前网络的最大路由数,路由和路由之间不存在同时工作的情况,但是经常会出现ZR向ZC发送请求,能够从抓包记录中看到该请求的MAC ACK,但是ZC会报出MTO FAILURE状态,如下图。请问如何能避免这种情况,MTO FAILURE状况出现时,重新进行路由发现会占用不少时间。

有谁遇到过这种情况吗?Zstack 2.51a是没有child age功能的啊。

我同时到TI E2E发帖问,得到答案的话来这里补充。

得到建议升级协议栈到最新版本,现在正在向zstack mesh 1.0.0移植。遇到的编译问题很多,还在努力。

我遇到类似问题一的情况,楼主实际ZR数5 ,那MAX_NEIGHBOR_ENTRIES必须大于5

另外 楼主ZR周期性进入休眠是怎么做的,会不会发link status

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top