微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 当有两个协调器怎么办?

当有两个协调器怎么办?

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

今天老总的一个问题让我无言以对,故向各位请教一下。

如果我家里有一个协调器,但是隔壁也有个同样的协调器,那终端上电后会不会连到隔壁的协调器去啊

您可以在协调器上设置一个按键,在协调器启动时是不允许节点入网的,只有当按键按下后的一段时间内才可以入网。

不对吧。如果自己家的和隔壁家的两个协调器都在工作,这时自己家里要新增一个终端设备。

要是重启了自己家的协调器,那么自己家的协调器启动时不允许终端入网,那自己家的终端肯定连到隔壁家的协调器去了啊!

感觉不对啊,还是我理解错了?

首先在终端没有确定的要加入的PANID时,终端是按照信号强度来加入网络的。那自家的信号一定是大于邻居的吧(邻居家毕竟有一段距离)

自家的协调器在大部分时间都是不允许入网的,只有按键按下的一段时间可以允许节点入网。那您按下按键并给终端上电,那终端就会加入到自家的协调器网络了。

你的意思是如果终端需要入网的话,协调器需要重新启动?我平时调试不是这样的啊,我这边是只要终端上电,它就自动连协调器了,不需要重启协调器啊?

不需要重新启动的,只要按按键就好了,按键来控制是否允许节点加入网络

按下按键来调用函数ZStatus_t NLME_PermitJoiningRequest( byte PermitDuration );

使能Permit Join只对新入网的设备有效果,如果是已经入网的设备,即便Permit Join禁止了,也没关系,因为已经入网了。(您需要先预编译NV_RESTORE)

ZStatus_t NLME_PermitJoiningRequest( byte PermitDuration );

定义了协调器或路由器在一个固定的周期内如何允许设备加入。

PermitDuration       -在这个指定的时间(单位为秒)内允许设备关联。0x00和0xff表示分别禁止或允许设备关联。

明白了,回答很给力,我试试。

我还有一个问题,如果所有设备都断电重启后还能保持原来配置好的连接关系吗?

您可以预编译NV_RESTORE选项,这样就会在断电后保持原来的网络信息

恩,再请教一点,如要要终端在上电后不主动去加入网络,只有在特定信号(如连续按下按键5秒)才去加入网络,该如何实现?

“终端在上电后不主动去加入网络” 可以预编译 HOLD_AUTO_START,然后您可以在终端上也加一个按键,用于控制终端是否开始寻找并加入网络。

“控制终端开始寻找并加入网络”这个用什么函数可以实现呢?

我是个新手,很多功能不知道用什么函数来实现,有没有一个文档专门记录这些函数的?非常感谢

您可以使用预编译 HOLD_AUTO_START

如果使用HOLD_AUTO_START选项,那么本工程就会禁止自动启动ZDApp事件处理循环中的ZDO_NETWORK_INIT事件,也就是上电后不自动调用ZDOInitDevice(),需要通过外部事件,或者用户自己调用这个函数

可以参考下 http://blog.chinaunix.net/uid-30267417-id-5059955.html

Hi Yang

通过RSSI值来确定是自己家还是别人家的方法,真不错。!

如果有且只有两个协调器,请设置成不同的信道即可。

如果楼主是说得广义上的“两”,请参考zigbee白名单的设计,分布式的将节点的白名单动态的存储到各个路由上面,如果符合就允许加入否者拒绝,配合permitduration效果会很好。

具体可以看看我的博客这篇帖子

http://www.kaleidscope.cn:1020/archives/640

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

网站地图

Top