微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 终端节点Data Request突然停止?程序未跑死

终端节点Data Request突然停止?程序未跑死

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

协议栈:Z-Stack 1.2.2a

CPU:CC2530

节点:一个协调器,一个终端节点

使用场景:试验室内,短距离,终端节点使能低功耗,每1s发送一次Data Request;每2min发送40字节数据包;

问题描述:测试发现,不定时地(10几分钟或10几个小时)出现Data Request停止发送的现象(使用抓包工具观察);我的硬件上有一个指示灯和一个按键,每点击一次按键,指示灯闪烁一次,当Data Request停止发送后,点击按键,指示灯正常闪烁,说明程序未跑飞(而且我使能了看门狗)。

请问:

1.Data Request这个功能实现的代码在哪?

2.我对协议栈的修改很少,有可能是哪里出现了错误呢?

更正下,协议栈是协议栈:Z-Stack Home 1.2.2a

使用仿真器发现出现问题的时候,NLME_NetworkDiscoveryRequest总是返回ZNwkInvalidRequest,导致程序死循环于ZDO_NETWORK_INIT事件。

现象和下面这个帖子一样

http://e2e.ti.com/support/wireless_connectivity/zigbee_6lowpan_802-15-4_mac/f/158/p/390470/1378541#pi239031350=1

ZDAPP.c中的状态机没有修改

在停止发送data request之前,这个节点发生了什么? 还是一切都正常的情况下,突然停止了。

_NIB.nwkState == NWK_ENDDEVICE满足的话,NLME_NetworkDiscoveryRequest就会返回ZNwkInvalidRequest

如果在停止以后,你调用NLME_SetPollRate( 1000 );还能正常发么?

@VV 感谢答复

1.在停止发送data request之前,这个节点发生了什么? 还是一切都正常的情况下,突然停止了。

停止之前,节点的data request没有收到父节点ack,而进入orphan和rejoin状态,通过sniff观察orphan notification和beacon request都没有发出来,而是停止了发送任何信息。

2._NIB.nwkState == NWK_ENDDEVICE满足的话,NLME_NetworkDiscoveryRequest就会返回ZNwkInvalidRequest

_NIB.nwkState == NWK_ENDDEVICE满足。当ZED掉网后,_NIB.nwkState不应该自动改变为其他状态么,为何还是在NWK_ENDDEVICE?

3.如果在停止以后,你调用NLME_SetPollRate( 1000 );还能正常发么?

这个暂时没有尝试。

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

网站地图

Top