微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于NV_RESTORE恢复网络

关于NV_RESTORE恢复网络

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

协议栈文档提到:定义NV_RESTORE后,会存储网络参数,下次会启动原有网络。

我想问:如果网络A以网络ID A启动,终端加入网络,然后网络A所有节点断点,启动另一个网络,占用网络A的ID号,然后再启动网络A,这时网络A还能再使用原有的网络ID号吗?恢复网络是依据哪些参数恢复网络?

另:我测试的时候发现,启用NV_RESTORE,原有网络的ID被占用后,再启动原有网络时同样会以原有ID启动,也就是同时存在两个相同ID的网络,是什么原因,这样不就冲突了吗?

没看懂,网络A是指协调器A吧? "启动另一个网络,占用网络A的ID号"  这是指协调器B全盘复制协调器A的信息,代替了协调器A?这时候重新开启协调器A确实会造成冲突,一般这种替换,是协调器A出现问题以后才会进行。

就是说:A协调器建立网络,然后又终端加入网络,这个网络中的设备都是启用NV_RESTORE的;之后这个网络断电,B协调器启动,以A协调器之前建立网络的网络ID号建网,这个时候再启动A协调器以及他的终端,那么还能使用原有的网络ID号吗?这个问题就是网络ID冲突时候的解决办法。恢复网络以哪些参数为标准?

按照你 的办法实验了下。假设a建立网络时候id为fff2。断网后,b协调器默认id也为fff2,结果不论哪个协调器先启动,a的网络id都为fff2,b的网络Id为fff3(如果有两个协调器的话)。如果只有一个b协调器,网络id为fff2,此时上电终端节点,结果终端连接不上b协调器。就是不管协调器启动顺序如何,终端只能连接上a协调器,如有两个协调器的话,如果有冲突的话B协调器id默认+1。我以前一直以为后上电的协调器检测到冲突,Id会自动加一,终端加入第一个上电的协调器,看来是不是,好神奇。

那让B协调器先上电,ID为FFF2,然后再让A协调器上电,A协调器还能以FFF2启动网络吗,终端还能加入吗

自己没事的试试吧,又发觉一个奇怪的现象,居然能有两个id一样的协调器存在。a已经以fff2跟终端组网一次,断电。b在上电,终端在上电,终端连接不上b,然后a上电,结果是终端跟两个协调器都连接上去了,而且两个协调器的网络Id都是fff2,好奇怪。版本2.3-1.4,难道是我实验 的方法错了。

我实验时候也出现这个现象,两个网络ID号一样的协调器同时存在,A协调器先上电(启用NV_RESTORE),然后断电,B协调器上电,然后再启动A协调器,A协调器以原有的网络ID建立网络,和B协调器是一样的ID号。

如果两个网络PANID一样,当检测到的时候,其中一个网络的节点会想协调器发送

ZIGBEE_PANID_CONFLICT的network report

ZStatus_t NLME_SendNetworkReport( uint16 dstAddr, uint8 reportType, uint8 *EPID,
uint8 reportInfoCnt, uint16 *panIDs )

void ZDNwkMgr_ProcessNetworkReport( ZDNwkMgr_NetworkReport_t *pNetworkReport )

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

网站地图

Top