微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > coordinator掉电重启后,panid+1

coordinator掉电重启后,panid+1

时间:10-02 整理:3721RD 点击:
我用的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 就完美了

我之前也存在这样的问题,但是增加NV_RESTORE选项确实好用了呀

没有用 重点是对于coordinator来说,不管是建立网络或者恢复网络 它都要扫描网络 然后判定是否有网络冲突

不要在程序里面去指定PANID,指定PANID是愚蠢的做法,默认PANID必须是0xFFFF

为什么指定PANID会出现这个BUG?

不是很理解楼主要实现什么效果,如果你不想加NV_RESTORE,那你可以考虑做一个清除网络信息的功能,有相应的API,你可以直接调用,其实你加了NV_RESTORE就可以让你的协调器掉电后保持掉电前的网络配置,PANID不会加1.如果你不想这样的话,你可以再网络中设置一个协议,如果网络中没有了协调器,那所有网络节点都自动清除网络配置信息,重新等待入网。

感谢回复我们现在入网机制是coordinator生成一个PANID,然后将这个PANID通过串口烧给End Device 和Router,然后End Device 和Router上电重启就可以入网了。就相当于zigbee固定PANID 入网,这样就出现coordinator掉电重启出现panid+1,与原来网络不能沟通的BUG。如果不用固定PANID,则要重新考虑zigbee入网管控问题,希望大家给点建议。同时请教您清楚网络信息功能是否能说再详细点感谢

这个帖子估计要沉下去了难道大家做产品的时候,没碰到这样的问题?难道这里的人都是做毕业设计,只要有功能就可以了

协调器加NV_RESTORE就可以解决的问题,你非要固执地不采用,还搞的那么麻烦。

我不是固执!我是加了!算了,此贴沉吧!

协调器在启动过程中,会调用信道扫描,想办法让扫描结果还回是无信号占用,panid就不会加1启动。

问题已经找到,协议栈的原因

具体是什么原因,楼主可否明示?

由于我用的ZNP code 做coordiantor,它需要一个ZAP,ZAP 要设置一些参数和保存数据,但是我没有,所以就有问题。你们不用ZNP,所以不用担心

找到问题就好,感谢楼主分享!

DEFAULT PANID设置为0xFFFF,配合NV_RESTORE一起用。

每个ZR和ZE都要烧PANID?很不方便的。
直接在ZC上输入ZR和ZE的MAC地址,实现接入,你们试过这种方法没?

这个方法没试用 现在的框架就不变先 下一版本再调

看得我好迷糊啊,但是我现在想做的也是保证掉电或重启后能够恢复原始网络,怎么恢复啊?网络地址是不是变化了?我还想问几个问题,(1)如何构建自己想要的网络啊?怎么配置?(2)每一个主节点实际上最多可管理多少个子节点?真的非常佩服你们这样ZigBee精通者,太想也太需要得到你们的指点啦,谢谢啦

能具体说一下什么API能实现清除设备中网络信息,再重新入网的吗?

我用的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 就完美了

我之前也存在这样的问题,但是增加NV_RESTORE选项确实好用了呀

没有用 重点是对于coordinator来说,不管是建立网络或者恢复网络 它都要扫描网络 然后判定是否有网络冲突

不要在程序里面去指定PANID,指定PANID是愚蠢的做法,默认PANID必须是0xFFFF

为什么指定PANID会出现这个BUG?

不是很理解楼主要实现什么效果,如果你不想加NV_RESTORE,那你可以考虑做一个清除网络信息的功能,有相应的API,你可以直接调用,其实你加了NV_RESTORE就可以让你的协调器掉电后保持掉电前的网络配置,PANID不会加1.如果你不想这样的话,你可以再网络中设置一个协议,如果网络中没有了协调器,那所有网络节点都自动清除网络配置信息,重新等待入网。

感谢回复我们现在入网机制是coordinator生成一个PANID,然后将这个PANID通过串口烧给End Device 和Router,然后End Device 和Router上电重启就可以入网了。就相当于zigbee固定PANID 入网,这样就出现coordinator掉电重启出现panid+1,与原来网络不能沟通的BUG。如果不用固定PANID,则要重新考虑zigbee入网管控问题,希望大家给点建议。同时请教您清楚网络信息功能是否能说再详细点感谢

这个帖子估计要沉下去了难道大家做产品的时候,没碰到这样的问题?难道这里的人都是做毕业设计,只要有功能就可以了

协调器加NV_RESTORE就可以解决的问题,你非要固执地不采用,还搞的那么麻烦。

我不是固执!我是加了!算了,此贴沉吧!

协调器在启动过程中,会调用信道扫描,想办法让扫描结果还回是无信号占用,panid就不会加1启动。

问题已经找到,协议栈的原因

具体是什么原因,楼主可否明示?

由于我用的ZNP code 做coordiantor,它需要一个ZAP,ZAP 要设置一些参数和保存数据,但是我没有,所以就有问题。你们不用ZNP,所以不用担心

找到问题就好,感谢楼主分享!

DEFAULT PANID设置为0xFFFF,配合NV_RESTORE一起用。

每个ZR和ZE都要烧PANID?很不方便的。
直接在ZC上输入ZR和ZE的MAC地址,实现接入,你们试过这种方法没?

这个方法没试用 现在的框架就不变先 下一版本再调

看得我好迷糊啊,但是我现在想做的也是保证掉电或重启后能够恢复原始网络,怎么恢复啊?网络地址是不是变化了?我还想问几个问题,(1)如何构建自己想要的网络啊?怎么配置?(2)每一个主节点实际上最多可管理多少个子节点?真的非常佩服你们这样ZigBee精通者,太想也太需要得到你们的指点啦,谢谢啦

能具体说一下什么API能实现清除设备中网络信息,再重新入网的吗?

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

网站地图

Top