我用的IC是CC2530 协议栈是zstack cc2530 2.5.1a。测试发现coordinator与两个router组网后,然后coordinator掉电,再上电,则coordinator的PANID就会+1,与原来的router不连接。
个人理解:
1.coordinator本身也是router,是带有建网功能的router,在建网的时候,扫描周围zigbee网络,发现存在一个panid与自己一样的zigbee网络时候,为了防止网络冲突,PANID自动+1,然后建立新zigbee网络。
2.router 在coordinator建网后,coordinator再掉网,每隔15s与网络地址是0x0000的coordinator沟通,沟通不了AssociatedDevList.age+1,若有其他设备上电,如router或end device,则其他设备与该router连接。
以上两点是导致coordinator掉电后重新上电,与原来网络不连接的原因。
我们大家都知道coordinator掉电无可避免,同时又不能让客户将所有的router与end device重启,这样的话,会导致该产品无法使用。
注意网上大神提供的方法:增加NV_RESTORE选项可以解决这个问题.这个是不能解决问题的。原因是个人理解的第一点。请不要再给这个建议了!
希望大家各抒己见,一起把这个问题解决。TI的zigbee 就完美了~
解决方法:
1,NV_RESTORE是需要加入的
2,在调试下载代码前,须erase flash,我是用smartRF Flash Programmer.exe擦除后再烧写的,发现PANID+1的问题解决。