微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 终端设备掉线后一直发Beacon,怀疑是协议栈的BUG@VV

终端设备掉线后一直发Beacon,怀疑是协议栈的BUG@VV

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


如图所示,抓包看报文中的Dev.Cap是1,但是在ZDApp_NwkDescListProcessing函数中       

if ( !pNwkDesc->deviceCapacity )
        {
          continue;
        }


语句中却是0,导致一直不能获取正确的父设备。

你的这个Permit Join 是False的,第一个判断就不符合了。

@VV 

我做实验也遇到了这个问题,一个协调器挂了100个子节点,一段时间后,所有的子节点全部掉线,都出现了这样的帧,请问VV这个是因为什么呢,怎么解决?谢谢

VV您好!
    可能是我没描述清楚。
    我这个原来终端设备是已经加过网的,并且终端和协调器都设置了NV_INIT和NV_RESTORE编译选项。
    这时,中端从协调器上掉了(比如重新上电),发现有时候(复杂zigbee网络下几乎必然),终端始终发Beacon,不能重新加入协调器。我仿真跟的情况是扫描时能扫到原来的协调器,但是解析到的dev.cap标志是0。

编译了NV选项之后是可以保存网络信息以便于再次自动入网的。您现在没有上电后自动入网是不是有可能是您的NV读取没有成功。

请您断电调试下, _NIB.nwkDevAddress 和_NIB.nwkState的值是多少?

如果_NIB.nwkDevAddress = 0xFFFE的话,这个函数就返回0,这个问题每次掉电以后都会出现吗?

还是说偶尔会出现的,会不会是供电的问题导致读取NV不正确。

您好,NV是正确恢复的,只是在重入网扫描得到的beacon信息后解析到的pNwkDesc->deviceCapacity 是0,导致不能重新入网,跟踪发现一个函数nwk_BeaconFromNative是不开源的,就没法继续查下去了。
ps:我们公司的网络比较复杂,可能有4、5个pan,每个里面有二三十个设备,出错的概率很大。如果环境中只有一个网络,出错的概率很小。

请问我用什么办法解决遇到的这个问题啊

你试试只挂几个节点试试,会不会是因为太多了的原因。  

我是把容错次数改成了255次,来防止节点频繁找网

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

网站地图

Top