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 多次开关后PANID和2.4G信道发生变化,导致断电的设备无法重新入网

Other Parts Discussed in Thread: CC2538, CC2530

一个协调器,带N个router,

运行几天,或者运行期间COORD和Routerr同时断电,

出现协调器PANID和信道全部改变。

协调器和Router均开启NV_init  NV_RSTORE.

信道选择15.10.5.1

 -DDEFAULT_CHANLIST=0x02108800 

我做的第一个测试就是修改

 -DDEFAULT_CHANLIST=0x00100000 

仅使用一个信道,这样信道就不会改变。PANID同样会发生改变。

在查找问题的过程我发现一个很奇怪的问题。

#if !defined ( NWK_MANAGER )
#define NWK_MANAGER // WARNING: this should be enabled only for one device per network
#endif

NWK_MANAGER:在所有使用ZIGBEEPRO的协议栈中都是打开的,而这个宏却只适合COORD使用打开。

那么是否对于Router我可以直接注释该宏。

同时我正在 考虑注释另外两个宏

ZIGBEE_PANID_CONFLICT;ZIGBEE_FREQ_AGILITY

目前正在测试效果。 

//====================================================

我只希望我的网络建立后,PANID和chnnel都不要发生改变。因为我的网络节点,不是经常在线的,

//===========================================================

顺道问下,有人使用CC2538替换CC2530的测试结果吗。目前CC2530做COORD能力有点不够,主要希望能够支持更多的节点,

  • 你可以把ZIGBEE_FREQ_AGILITY注释掉,但是不要注释ZIGBEE_PANID_CONFLICT。

    你的PANID是不是有固话的,还是0xFFFF。

  • PANID我是设置的自动获取,配置文件中=OXFFFF。

    只要开启宏,他就自己改变PANID ,导致一些没有上电的设备离网。

    我只需要在CORD建立网络的时候,PANID不冲突就可以了。

    ZIGBEE_FREQ_AGILITY 我把这个注释后,还是出现一个奇怪的现象,

    因为CORD选择可以是4个信道中的一个建立网络,而奇怪的是他可能跑到第5个信道建立网络,

    -DDEFAULT_CHANLIST=0x02108800 

    后来没办法只能将配置固定在一个通道上。

    -DDEFAULT_CHANLIST=0x00100000 20 - 0x14

  • 对于协调器,路由器和终端来说

    PANID=0xFFFF 是两个不同的意义

    协调器PANID=0xFFFF  意味着在指定的信道中随机建立一个网络

    路由器和终端设备PANID=0xFFFF  意味着随意加入一个可加入的网络

    假设 两个协调器A和B  烧入相同的固件 PANID=0x1234

    协调器A上电后,建立0x1234的网络成功. 协调器B上电后,因为存在了0x1234,此时协调器B会创建一个网络,这个网络ID为PANID+1   也就是创建了一个0x1235的网络

    终端或路由器 PANID=0x1234  只会不停的寻找0x1234加入  不会加入其他的网络

    设置终端或路由器 PANID=0xFFFF  会在指定的信道 随意加入一个可加入的网络