APP下载

ZigBee星状网络故障修复仿真方案

2020-06-08莫章洁

现代信息科技 2020年19期
关键词:数据采集仿真

摘  要:针对大范围低速率数据采集ZigBee星状网络中协调器节点故障导致系统瘫痪的问题进行了分析,提出了协调器节点发生故障后,其他数据采集节点通过竞争产生新的协调器节点,从而组建和维护新的网络的自适应组网方案,实现网络故障的自动修复。并重点设计了数据采集节点的竞争组网算法,以及该算法的基于计算机网络和桌面平台软件的仿真验证方案。

关键词:数据采集;网络修复;仿真

Abstract:Aiming at the problem of system paralysis caused by the failure of coordinator node in large range low speed data acquisition ZigBee star network. After the failure of the coordinator node,other data acquisition nodes produce new coordinator nodes through competition,so as to set up and maintain the new network and realize the automatic repair of the network fault. And focused on the design of the data collection nodes competitive networking algorithm,and the algorithms simulation verification program based on computer network and desktop platform software.

Keywords:data acquisition;network repair;simulation

0  引  言

ZigBee无线网络通信技术基于IEEE 802.15.4协议构建,具有价格低廉、功耗低、组网灵活的优点,被广泛应用于电力塔数据采集、光伏发电系统数据采集、农业数据采集等需要大范围低速率数据采集的场景。ZigBee具有星状、网状和树状三种典型的网络结构[1]。具体采用哪种网络结构需要根据采集对象的区域分布状况而定,如电力塔分布区域呈长条状,其数据采集网络宜采用网状结构[2]。农业数据采集因土地分布区域一般呈类圆形分布,宜采用星状网络以降低功耗、提高效率[3]。ZigBee星状网络的建立和维护均依赖于协调器类型节点,如果协调器类型节点发生故障,将导致整个系统的瘫痪[4]。为提升可靠性,需对ZigBee星状网络故障问题进行分析,提出自适应组网的故障修复方案,并在此基础之上,利用计算机网络和桌面平台软件开发仿真系统,以评估和验证故障修复方案的可行性。将经过仿真验证的ZigBee星状网络修复方案应用于工程实际,可提升网络的可靠性。

1  网络故障问题分析

如图1所示为数据采集星状网络的系统结构,系统由四个环节组成:数据采集终端、数据中转站、运营商网络和系统服务器。数据采集终端由ZigBee网络的终端类型节点实现,它负责采集数据并将数据以ZigBee网络的点播通信方式传输至数据中转站。数据中转站由ZigBee网络的协调器类型节点及其携带的DTU模块(Data Transfer Unit,其功能为通过GPRS协议连接到运营商网络)组成,其ZigBee协调器节点接收到数据后按照设计的报文格式,使用DTU模块将数据传输至服务器[3]。

这种方案仅使用了ZigBee网络的终端和协调器两种节点类型,未使用路由器类型,免去了ZigBee网络内部数据经路由器中转带来的额外能源和时间开销,具有结构简单、运行效率高的优点[5]。但这种方案又同时存在一个重大缺陷:数据中转站的稳定性成了保证系统正常运行的关键,当数据中转站发生故障,所有数据采集终端将无法把采集到的数据上传到服务器,整个系统处于瘫痪状态。此时,必须人为干预进行系统故障的排查和修复,降低了系统数据时效性的同时,提升了系统的运维成本。

2  网络故障修复总体方案设计

如上文所述,数据中转站故障导致整个系统瘫痪问题的原因在于:所有数据采集终端均通过一个数据中转站上传数据至服务器。为解决这个问题,需在系统中部署冗余设备,为冗余设备配置DTU模块。当冗余设备检测到数据中转站发生故障后,立刻充当新的数据中转站,完成传感器网络维护和数据中转的工作,以下为部署冗余设备的两种方案。

2.1  方案一

第一种方案是将原有系统中使用的ZigBee星状网络改为ZigBee网状网络,由网络中ZigBee路由器类型节点充当冗余设备。

如图2所示为ZigBee网状网络结构,正方形表示协调器类型节点,圆形表示路由器类型节点,三角形表示终端类型节点。ZigBee网络中只能有一个协调器类型节点,但可以有多个路由器节点,当网络在协调器的组织下建立起来后,协调器类型节点的缺失并不影响已经建立起来的网络的运行。当协调器发生故障,路由器继续保持对网络的维护,并收集网络中其他节点的数据后,通过运营商网络上传至服务器。

这种方案在现有技术基础之上构建,具有部署简单,技术成熟可靠的优点,但同时也存在两个问题:

(1)网状网络结构比原有星狀网络结构复杂,在系统正常运行期间,路由器节点将始终负责节点之间的数据转发工作,加大了路由器节点的运作负载和能源开销。

(2)为提升系统的可靠性,可在网状网络中部署多个路由器类型节点,当协调器发生故障,通过何种方法从多个路由器中选择出合适的节点来充当数据中转站也需要进一步研究。

2.2  方案二

第二种方案是构建新型的自适应无线网络。这种网络同样基于IEEE 802.15.4协议,依然采用星状结构,但不再使用ZigBee中协调器、路由器和终端类型的概念。

如图3(a)所示,在网络建立前,每个节点的地位是平等的且均携带DTU模块(休眠状态),可称其为Free节点(圆形节点)。如图3(b)所示,上电后,所有Free节点通过竞争的方式产生Root节点(正方形节点),其余节点则作为Leaf节点(三角形节点)。Root节点负责接收Leaf节点的数据并将其通过DTU模块上传服务器。如图3(c)所示,当Root节点发生故障(黑色正方形节点),网络中的所有Leaf节点再回到Free状态。如图3(d)所示,所有Free节点重新通过竞争的方式产生新的Root节点,组建新的网络。

这种方案的优点是采用星状的网络结构,避免了网状结构中数据的转发,系统运行效率高,降低能耗,提升了系统的续航能力。此外,系统结构扁平,每个节点的类型完全一致,不像普通的ZigBee网络分为终端、路由器和协调器的节点类型,需要对各种类型的节点单独进行程序设计。但这种方案不再直接使用ZigBee协议栈的自动组网功能,需要对网络建立和维护的协议,特别是节点间的竞争算法进行设计。

3  节点运行流程及竞争算法设计

上文所述的两种方案中,方案二相对方案一的运行效率和部署灵活性更高,因此,笔者选择了这种方案,并对其节点运行流程及组网竞争算法进行设计。

3.1  节点运行流程设计

为实现方案二中的组网方式,将网络中的节点工作状态设计为3种(故障状态不做单独设计):

(1)Free状态。当节点没有加入任何网络时的状态,即节点设备刚上电时的状态,或当网络中Root节点刚发生故障时Leaf节点的状态。

(2)Root状态。此状态的节点接收从Leaf节点发来的数据,并将其通过DTU模块上传至服务器,此外,它还将完成对网络的维护工作(主要为查询Leaf节点状态)。

(3)Leaf状态。此状态节点负责定时采集数据,并将其发送到Root节点。

系统网络结构的宏观变化将反映到微观每一个节点的状态转换上。如图4所示,当上电初始化时,节点设备状态为Free,它首先广播询问周围是否存在Root节点。若收到Root节点的应答,将把自身状态设置为Leaf。若未收到应答,说明尚不存在Root节点,开始与周围的Free节点竞争,竞争成功则将自身状态设置为Root,否则将自身状态设置为Leaf。若Leaf节点检测到网络故障,即失去与Root节点的连接,将自身状态设置为Free。

3.2  竞争机制设计

当Free节点通过广播询问后未能找到Root节点,将与周围的Free节点通过竞争产生Root节点。为提高系统运行效率和尽可能扩展网络的覆盖面积,竞争的原则是:与周围节点建立的连接数最多的节点成为Root节点,否则成为Leaf节点。竞争分以下三个阶段进行:

第一阶段:Free节点首先向周围节点发出启动竞争报文,然后启动定时器1。定时器1计时满之前,它将收到其他Free节点发来的启动竞争报文,并统计该类报文的数量,这标志着它具有连接的Free节点数量。

第二阶段:定时器1计时满,启动定时器2,每个Free节点将自己具有连接的Free节点数量打包成报文向具有连接的Free节点发送出去,同时会收到别的Free节点发来的同类型报文,并记录下各个Free节点的具有连接的Free节点数量。

第三阶段:定时器2计时满,各个Free节点比较自己具有连接的Free节点数量与其他Free节点具有连接的Free节点数量。如果自己的数量最多,则将自身状态设为Root,等待其他设备登录,否则将自身状态设置为Leaf,并且向Root节点发出请求连接的报文。需要注意此时可能会出现特殊情况,即当自己的数量与其他Free节点的数量相等,则约定ID号小的设备为Root节点。

4  故障修复仿真方案设计

上文设计的方案不直接使用ZigBee协议栈自动组网功能,需自行开发实现节点的竞争组网算法。由于无线数据采集网络节点数量较多,直接针对多个节点硬件设备设计软件,开发成本较高且多节点组网调试难度较大。为此,在针对节点硬件进行开发之前,可利用计算机软件对系统进行仿真,以验证故障修复竞争组网算法的可行性,并提升开发效率。

4.1  仿真系统设计

在Microsoft Windows平台Visual Studio环境下使用C++语言开发一个模拟系统服务器的服务器应用和一个模拟数据采集节点的节点应用。多个数据采集节点由一个节点应用的若干个实例进程来模拟,这样既保证了可灵活创建若干个节点实例进程,又保证了各个实例的完全一致。各个节点应用实例进程使用不面向连接的UDP/IP协议通信以模拟数据采集节点间基于IEEE802.15.4协议的无线通信。各个节点应用实例进程与服务器应用通过面向连接的TCP/IP协议通信以模拟数据中转站通过运营商网络与系统服务器的通信。

4.2  仿真验证过程及结果

整个仿真系统较复杂,因此重点对节点间故障修复竞争自组网功能进行验证。

首先,在系统中同时运行节点应用的四个实例。如图5所示,图中每个对话框对应一个节点应用实例。手动为四个实例设置不同的ID(该ID同时为该应用实例的网络端口号)后,分别点击其“打开节点”按钮,以模拟节点上电初始化后的Free状态。

系统中不存在Root节点实例,四个Free节点实例启动竞争。由于四个实例运行于同一台计算机环境,四个实例之间均具有网络物理连接(即每个节点实例具有连接的节点实例数相等,均为3),按照竞争算法的约定,ID最小的节点状态将转换为Root,其余节点状态将转换为Leaf。如图6所示,通过竞争后ID为6000的节点实例状态转换为Root,其余均转换为Leaf。

手动点击状态为Root的节点实例(ID为6000)对话框中的“关闭节点”按钮,以模拟Root节点的故障状态。此时如图7所示,三个Leaf节点实例(ID分别为6001,6002,6003)因失去与Root节点实例的连接,自身状态转换为Free。

三个Free节点实例在没有找到Root节点实例后再次启动竞争。三个实例之间均具有网络物理连接,按照竞争算法的约定,ID最小的节点状态将转换为Root,其余节点状态将转换为Leaf。如图8所示,通过竞争后ID为6001的节点实例状态转换为Root,其余均转换为Leaf。

5  结  论

在数据采集中应用ZigBee星状网络可提升系统效率。本文作者针对这种网络结构中协调器节点故障将导致系统瘫痪的问题,提出新型的自适应网络方案,并对网络中节点的运行流程及竞争组网算法进行设计。为提升开发效率并验证组网竞争算法的可行性,还基于Windows平台和计算机网络设计了仿真系统方案。新型的自适应网络具有组网灵活、适应能力强的优点,能有效提升数据采集系统的可靠性和运行效率。

参考文献:

[1] 黄超,普平贵,王伟.基于ZigBee技术的无线传输网络应用 [J].电工文摘,2016(4):32-33.

[2] 陈少华,郑紫微,茅迿.用于电力塔远程监控的无线传感器网络装置 [J].电力自动化设备,2011,31(7):136-139.

[3] 莫章洁.基于ZigBee与GPRS的農业数据采集系统设计 [J].贵州师范学院学报,2016,32(9):40-43.

[4] 卢俊文.Zigbee技术的原理及特点 [J].通讯世界,2019,26(3):35-36.

[5] 蒋挺,赵成林.紫蜂技术及其应用 [M].北京:北京邮电大学出版社,2006:9-12.

作者简介:莫章洁(1987—),男,壮族,广西南丹人,讲师,硕士,研究方向:标准化数据采集。

猜你喜欢

数据采集仿真
一种帮助幼儿车内脱险应急装置的仿真分析
Buck开关变换器的基本参数设计及仿真分析
试析PLC控制下的自动化立体仓库仿真情况分析
CS5463在植栽用电子镇流器老化监控系统中的应用
大数据时代高校数据管理的思考
基于MADYMO的航空座椅约束系统优化设计
中国体态假人模型与FAA Hybrid Ⅲ 型假人模型冲击差异性分析
基于广播模式的数据实时采集与处理系统
通用Web表单数据采集系统的设计与实现
基于开源系统的综合业务数据采集系统的开发研究