微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 关于zigbee组网的一个费解的问题求教!

关于zigbee组网的一个费解的问题求教!

时间:10-02 整理:3721RD 点击:
昨天拿到了两套CC2538的SmartRF06EB开发套件,用协议栈Z-Stack-Mesh-1.0.0中的GenericApp调试,其中一个板子烧成coordinator,PANid设成0x6018,channelid设为11,另外一个板子烧成router,同样PANid设成0x6018,channelid设为11,两个板子启动后,能正常互发数据通信。接下来就来事儿了,我把coordinator断电后重启,router不断电,coordinator的panid就变成0x6019了,这样就不能跟这个router正常通信了。
然后coordinator和router都断电后,coordinator先上电启动,嘿!pandi又变回0x6018了,router也上电后也是0x6018,就又可以正常通信了。这样就给人一个感觉,coordinator和router组网后,coordinator就必须先router上电才行。 有没有玩Z stack的大牛帮忙解析下!新手对这个比较费解!

没玩过zigbee,帮顶,让大神们看到

顶,但愿大神能看到

这个很正常的,zigbee网络就是协调器先启动组网,路由加入网络,而且路由器有保存网络的能力,如果你的协调器没有保存网络配置信息的情况下,在上电重启,就会重新建立网络,因为之前路由器已经建立了一个panid=0x6018的网络,所以会在存在的网络panid上面自动加1成为0x6019.不是这种现象,反而不正常,你就可以都加下NV_RESTORE,就没问题了

同意wateras1解答,很专业
协调器做的事情不少哦,很多组网都是类似的原理的

有空多多看802.15.4的文档,里面会有不少原理性的东西,知其然之气所以然才是个合格的learner

NV_RESTORE,就没问题了 高。
网上有人说
设置编译选项NV_RESTORE后,即使网络中存在路由,协调器依然能加入到原有PANID中;
设置NV_RESTORE后,修改函数
ZDApp_CoordStartPANIDConflictCB( uint16 panid )
{
return ( panid + 1 );//原有
//return panid; //修改测试值
}
return返回值不影响网络组建。
没有设置NV_RESTORE的情况下,如果原有网络中的路由存在,协调器的PANID+1后组建网络;如果修改返回值为return panid 时,会造成网络无法建立的现象

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

网站地图

Top