This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

zigbee终端节点断网不能重连问题请教

Other Parts Discussed in Thread: PACKET-SNIFFER

终端节点带有继电器,并可采集数据传给协调器
网络中还有一个终端节点,带有按键,可控制带有继电器的终端节点
本来控制都挺正常的,发送数据也是正常的
但不知为什么,带有继电器的终端节点突然断网就再也连不上了
我在程序中用数码管显示_NIB.nwkState的值观察终端节点的联网状态,发现其值为NWK_ENDDEVICE,按理说应该是正常的啊

NIB.nwkState的可能值为 

typedef enum

{

    NWK_INIT,

    NWK_JOINING_ORPHAN,

    NWK_DISC,

    NWK_JOINING,

    NWK_ENDDEVICE,

    PAN_CHNL_SELECTION,

    PAN_CHNL_VERIFY,

    PAN_STARTING,

    NWK_ROUTER,

    NWK_REJOINING

} nwk_states_t;

可是,led指示灯却一直闪烁不停,明显是已经断网
在这种状况下,终端节点就没办法重连了
另,出现这个情况之前,我是用带有按键的终端节点连续控制了几下带有继电器的终端节点,之后发现按键控制没响应了
还有协调器跟带有继电器的终端节点放在一个房间,在另一个房间放了个路由跟带按键的终端节点
情况就是这样的,这是怎么回事,还请指教,谢谢

 

个人判断:

后来做了一个测试,将终端节点的数据直接发送到路由器,

路由器收到后一方面用作自己显示数据,另一方面马上再转发给协调器,

这种情况下发现,终端节点运行几个小时或者一天后,

led指示灯就会闪烁不停,这应该是出错时的状态吧,

以上终端节点和路由器发送数据都有开ACK_REQUEST,

个人觉得可能是因为节点向路由器发送完数据后,等待路由器的ACK,

而路由器由于忙于向协调器转发数据,没有响应节点的请求,

导致节点没收到路由器的ACK,

从接收到的数据看,节点每组数据都发了3遍(无响应重发3次),

也证明了这一点,

时间长了,就出错了?

另,我把ACK_REQUEST取消掉之后,运行一周都没问题。

  • 可以使用PACK SNIFFER来抓抓包看看。看断网后,是否有重新加入的过程。

    http://www.ti.com/tool/packet-sniffer

  • 试了一下用协调器向节点发命令

    发现有时有响应有时无响应

    说明网络时而断开时而连上的吧

    板上只有一个led灯

    闪烁不停

    本来节点每隔几分钟会上传一组数据的

    但因为这样一直无数据上来

    之前一直没问题的

    不明白为什么我加了个按键遥控功能之后就成这样了

  • yiucing din 说:

    试了一下用协调器向节点发命令

    发现有时有响应有时无响应

    说明网络时而断开时而连上的吧

    板上只有一个led灯

    闪烁不停

    本来节点每隔几分钟会上传一组数据的

    但因为这样一直无数据上来

    之前一直没问题的

    不明白为什么我加了个按键遥控功能之后就成这样了

    协调器广播的时候,有问题的节点有时有响应有时无响应

    单播那个有问题的节点时,一直都有响应

    不知道网络是不是时而断开时而连上

  • 现在感觉奇怪的是

    向节点发命令有响应

    而节点不会主动发送数据

    1、本来每隔几分钟会发一组数据,却一直没发

    2、程序里定义,长按按键会发一个消息给协调器,也没发

    其中长按按键之后执行的程序是

    static void Node_SendMatchCmd(void)
    {
      uint8  u8SendBuf[6];

      if(_NIB.nwkState == NWK_ENDDEVICE)
      {
        u8SendBuf[0] =    ;
        u8SendBuf[1] =    ;
        u8SendBuf[2] =    ;
        u8SendBuf[3] = SENSOR_USER_INDEX_NODE_MATCH;
        u8SendBuf[4] = 0;
       
        zb_SendDataRequest( 0x0000, COLLECTOR_CTRL_CMD_ID, \
                               5, u8SendBuf, 0, AF_TX_OPTIONS_NONE, 0 );
      }
    }

    不知道什么原因,无从下手啊,望给个建议,谢谢

  • 你好,请问你这个问题解决了吗?我也碰到了相同的问题,我们可以一起讨论一下,欢迎加我QQ489279443

  • ti的zigbee 协议栈 的end device 设计得比较不稳定  我在end device 是吃了大苦头的,平常心  我身边一些朋友 做zigbee在慢慢换其他协议了

  • @Jie liao, 

    你好,能否分享下你觉得哪里设计比较不稳定?

    你的具体问题是什么?

    我们有大量的客户TI 协议栈开发的产品,包括End Device都能稳定工作。

  • VV你好

    我现在用的是2.5.1

    enddevice断网重连的时候有时候连不上之后还进不了低功耗,一直都是28ma,原来是能进pm2的