微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 组建大型网络与广播风暴

组建大型网络与广播风暴

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

我想组建一个250节点的网络(1个协调器,250个路由器)。

如果使用协调器轮询节点的机制作为心跳和节点状态的查询,那么节点判断自己掉线的时间会比较长(假设协调器连续10次接收不了同一节点返回的信息时,判断该节点掉线,那么节点判断自己掉线的时间为协调器轮询一次的时间x10),这样会导致节点重新入网不及时。

于是我想到了一种方法,就是使用广播作为心跳,如果节点在规定时间内没有接收到协调器发给它的广播心跳,那么节点就判断自己掉线从而重新入网,这样节点会很快入网而对系统的影响可以降到很低。

但是实际测试时发现如果路由器比较多的话会形成广播风暴,测试方法和结果:协调器发一个广播,下面的节点有时候会全部收到并动作,但有时候会不定时收到(这个时间可能会持续几十秒,在这几十秒内网络会造成瘫痪)。

于是我又想到了一种方法,就是将大部分的路由器换成终端(假设25台路由器,225台终端),这样就算形成广播风暴也很快就过去了,不知道这种方法可不可行。

不知道组建大型网络是否还有其它不错的方法,所以想在这里讨论一下,希望各位Zigbee大神给些意见!

1.感觉你关心的问题是如何及时判断节点掉线(无法通讯),分享下我的看法:

(1)对于路由器来说,可以定时向协调器或集中器发送心跳数据包并使能ACK,若多次没有返回ACK可以判断为无法通讯;此时,不需要重新入网,因为路由器会维持网络,不存在断网的概念;你可以尝试加大发射功率,让你的信号被最近的节点接收到,最终路由至协调器。

(2)对于终端来说,使能NWK_AUTO_POLL情况下会自动向父节点发出data request,多次没有回复会自动开始重新寻找父节点和重新入网操作。

2.TI官方有关于大型网络的试验和建议,你可以搜索Breaking the 400-Node ZigBee Network Barrier.pdf 或 SWRA427C找一下;建议使用这个方法:)

非常感谢您分享的经验!

其实我比较关心的是如何组建并维持一个大型的网络,这需要同时包含了更换协调器和路由器的机制,包含不断获取节点传感器数据和节点控制的机制。

您提供的第一点可以应用在这样的大型网络中吗?如果大量的节点差不多在同一时间发送信息给协调器,这样会造成冲突然后信息掉失吧?而且如果需要更换协调器,那就需要重新入网操作了。

对于官方关于大型网络的文档我之前也有看过,但由于本人英语水平有限,看起来比较困难。。。只是看懂了协调器轮询节点的时间比较长,节点不能同时上线,需要关闭重发功能等。

我发现我现在组建并维持160个路由节点已经比较困难(条件:协调器和路由器全部放在一个狭窄的空间),网络有点卡了。

您能分享一下您组建大型网络的经验吗?

我就是按照官方文档做的。

简单说几点:

1.不要同时加入网络;

2.尽量不要使用广播发送数据;

3.必须发送广播数据时,减小数据量、延长时间间隔;

4.不要所有节点同时发送数据;比如你想让每个节点1min上报一次数据,那就设定一个50~70s的随机值,减少并发可能性;

5.使用协议栈自带的集中器功能(CONCENTRATOR_ENABLE)以及文档中推荐的那些设置参数,能够减少路由发现的网络消耗,原理你需要自己研究下,在Z-Stack Developer's Guide.pdf的5.4章节。

6.在狭小空间的话,增大邻居列表大小也许好使,也就是说所有数据都能够直达目的地;

说了这么多还是觉得关键还是要理解官方的文档和手册呀,看不懂的地方请同事帮忙看看吧。

希望能帮到你:)

TI 有一份Zigbee 大规模组网的文档  http://www.ti.com/lit/an/swra427c/swra427c.pdf ,您可以先参考一下

非常感谢sinan chen~

我还是好好研究一下那编文档的。

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

网站地图

Top