[讨论] coordinator掉电重启后,panid+1

liangjn   2014-6-10 11:24 楼主
     我用的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 就完美了~

回复评论 (20)

我之前也存在这样的问题,但是增加NV_RESTORE选项确实好用了呀
点赞  2014-6-10 11:44
引用: 魔术师 发表于 2014-6-10 11:44
我之前也存在这样的问题,但是增加NV_RESTORE选项确实好用了呀

没有用  重点是对于coordinator来说,不管是建立网络或者恢复网络  它都要扫描网络 然后判定是否有网络冲突
点赞  2014-6-10 11:51
不要在程序里面去指定PANID,指定PANID是愚蠢的做法,默认PANID必须是0xFFFF
点赞  2014-6-10 22:15
为什么指定PANID会出现这个BUG?
点赞  2014-6-11 10:02
不是很理解楼主要实现什么效果,如果你不想加NV_RESTORE,那你可以考虑做一个清除网络信息的功能,有相应的API,你可以直接调用,其实你加了NV_RESTORE就可以让你的协调器掉电后保持掉电前的网络配置,PANID不会加1.如果你不想这样的话,你可以再网络中设置一个协议,如果网络中没有了协调器,那所有网络节点都自动清除网络配置信息,重新等待入网。
淘宝:https://viiot.taobao.com/Q群243090717 多年专业物联网行业经验,个人承接各类物联网外包项目
点赞  2014-6-11 21:52
引用: wateras1 发表于 2014-6-11 21:52
不是很理解楼主要实现什么效果,如果你不想加NV_RESTORE,那你可以考虑做一个清除网络信息的功能,有相应的 ...

感谢回复~我们现在入网机制是coordinator生成一个PANID,然后将这个PANID通过串口烧给End Device 和Router,然后End Device 和Router上电重启就可以入网了。就相当于zigbee固定PANID 入网,这样就出现coordinator掉电重启出现panid+1,与原来网络不能沟通的BUG。如果不用固定PANID,则要重新考虑zigbee入网管控问题,希望大家给点建议。同时请教您清楚网络信息功能是否能说再详细点~感谢~
点赞  2014-6-12 09:55
这个帖子估计要沉下去了~难道大家做产品的时候,没碰到这样的问题?难道这里的人都是做毕业设计,只要有功能就可以了
点赞  2014-6-14 08:24
协调器加NV_RESTORE就可以解决的问题,你非要固执地不采用,还搞的那么麻烦。
点赞  2014-6-16 09:40
我不是固执!我是加了!算了,此贴沉吧!
点赞  2014-6-17 09:42
协调器在启动过程中,会调用信道扫描,想办法让扫描结果还回是无信号占用,panid就不会加1启动。
电子工程师技术交流QQ群:12425841,专注于自动控制、数字电源等
点赞  2014-6-19 10:55
问题已经找到,协议栈的原因~
点赞  2014-6-20 16:35
具体是什么原因,楼主可否明示?
点赞  2014-6-21 09:18
由于我用的ZNP code 做coordiantor,它需要一个ZAP,ZAP 要设置一些参数和保存数据,但是我没有,所以就有问题。你们不用ZNP,所以不用担心~
点赞  2014-6-24 09:42
找到问题就好,感谢楼主分享!
点赞  2014-6-26 13:00

DEFAULT PANID设置为0xFFFF,配合NV_RESTORE一起用。
点赞  2014-6-26 16:25
引用: liangjn 发表于 2014-6-12 09:55
感谢回复~我们现在入网机制是coordinator生成一个PANID,然后将这个PANID通过串口烧给End Device 和Route ...

每个ZR和ZE都要烧PANID?很不方便的。
直接在ZC上输入ZR和ZE的MAC地址,实现接入,你们试过这种方法没?
点赞  2014-6-26 16:28
这个方法没试用 现在的框架就不变先 下一版本再调
点赞  2014-6-30 17:00
看得我好迷糊啊,但是我现在想做的也是保证掉电或重启后能够恢复原始网络,怎么恢复啊?网络地址是不是变化了?我还想问几个问题,(1)如何构建自己想要的网络啊?怎么配置?(2)每一个主节点实际上最多可管理多少个子节点?真的非常佩服你们这样ZigBee精通者,太想也太需要得到你们的指点啦,谢谢啦
点赞  2014-7-2 10:34
引用: wateras1 发表于 2014-6-11 21:52
不是很理解楼主要实现什么效果,如果你不想加NV_RESTORE,那你可以考虑做一个清除网络信息的功能,有相应的 ...

能具体说一下什么API能实现清除设备中网络信息,再重新入网的吗?
点赞  2014-7-4 16:05
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复