微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于大量ZED断网后无法重新入网的问题,求救!

关于大量ZED断网后无法重新入网的问题,求救!

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

       1. 我有一个网络是CC2530, 2.5.1a的协议栈。

       2. 其中1个协调器C,3个路由器R,47个终端节点E;

       3. 通信模式:周期性7.5s:C发送广播报文,然后路由器R和终端E接收到广播后,按照各自的间隔(大概140ms)发送报文给C;采用MTO模式。

       4. 正常运行。PANID: 1601, CH: 16信道;

       问题:

       1. 当C挂掉(或者重新更新了里面的程序),重新将C接入网络后,PADID自动为1602 ;R和C无法重新入网。

           将R全部断点,剩余47个E,将E做退网处理,重新发起beacon,持续发送beacon,C有回复(并且开启允许入网),但是极难入网,非常难得可以加入1~3个。

附件是无法入网的报文,请专家们帮忙看看。

你的设备是使能了NV_RESTORE的,所以所有设备都保存了网络参数。 

当你的协调器重新烧写过程序以后,相关的网络参数被擦除了。

在组网的时候首先去信道里面检测有没有和自己设备的PANID一样的网络存在,发现有1601,因为路由器还在正常工作。所以检测和自己要建立的网络PANID冲突的网络存在。

所以变成了PANID+1的情况,对应的代码是

/*********************************************************************
 * @fn      ZDApp_CoordStartPANIDConflictCB()
 *
 * @brief   Returns a PAN ID for the network layer to use during
 *          a coordinator start and there is another network with
 *          the intended PANID.
 *
 * @param   panid - the intended PAN ID
 *
 * @return  PANID to try
 */
uint16 ZDApp_CoordStartPANIDConflictCB( uint16 panid )
{
  return ( panid + 1 );
}

对你断网的节点的来说,一直在尝试着加到原先网络里面其他的设备上面去,但是发现两个路由已经被加满了。

// Maximum number in tables
#if !defined( NWK_MAX_DEVICE_LIST )
#define NWK_MAX_DEVICE_LIST 20 // Maximum number of devices in the
// Assoc/Device list.
#endif

如果协调器在更新过程序以后原先的网络通信的话,如果在网络没有加密的情况下,把PANID,信道,还有ExtendPANID,保存下来写到新的设备上面去。

谢谢VV,确实有漏网的R没有断电,导致原先的网络还存在。

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

网站地图

Top