微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 节点掉线后一直beacon的解决办法

节点掉线后一直beacon的解决办法

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


去年做智能家居的时候,发现一个问题:终端节点掉线后rejoin的时候,一直发beacon,无法加入协调器,有时候需要打开网络加入权限才能正常加入,但是过一段时间掉线后又会出现这种情况,通过TI的官方论坛发帖后Susan Yang给出了一种解决办法

更多ZigBee问题可以参考这个:http://www.kaleidscope.cn:1020

You are right. If you don’t power cycle the ZC, NV_RESTORE will not make any difference.

In your sniffer log, there is no MAC Ack in response to Rejoin Req. That means the ZC didn’t hear the messages or didn’t have enough memory to accept the Rejoin Req command. I would focus more on memory issue than on radio issue(TX power / RX sensitivity) because the ZC responded to Beacon Req. Can you check if there is any possibility of memory leak or temporary out-of-memory situation in your code?

By the way, I think what you want is to make ZED retry again and again until it successfully rejoins. Can you please add some lines(marked ‘+’ in the beginning of each line) in ZDApp_NetworkInit() and test?

void ZDApp_NetworkInit( uint16 delay )

{

+ if ( devStartMode == MODE_REJOIN )

+ {

+ _tmpRejoinState = true;

+ }

if ( delay )

{

// Wait awhile before starting the device

osal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, delay );

}

else

{

osal_set_event( ZDAppTaskID, ZDO_NETWORK_INIT );

}

}

按照以上方法在ZDApp_NetworkInit函数中添加了相关代码后就没有再出现这个问题了。应该也是协议栈的小bug,有网友说已经在1.2.2A中解决了这个问题,如果有哪位测试过望告知。谢谢。

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

网站地图

Top