基于ZigBee网络节点连通性改进研究
2019-10-09赵立新南楠
赵立新,南楠
(三门峡职业技术学院 信息传媒学院,河南 三门峡 472000)
ZigBee网络是一种基于IEEE 802.15.4标准的低成本、低速率、低功耗的无线传感器网络,因其连接硬件设备要求低、廉价等特点被广泛应用于各个自动化领域[1]。目前,多数论文的研究方向集中在网络覆盖率、功耗、数据广播方法或路由算法的提高上,而这些研究的基础都假设在ZigBee网络具有良好的连通性。实际情况中,因无线传感器节点多且随机分布的特点,导致在互连过程中部分设备会成为孤立节点失去其通信功能,严重影响网络的通信性能。本文提出了一种节点交换机制,促使每个节点都能重新建立连接,将尽可能多的节点加入到通信网络中,使网络获得最佳的连通性,延长网络的使用寿命。
1 无线传感器网络
ZigBee网络中定义了三种类型的设备:ZigBee协调器 (ZC)、ZigBee 路由器 (ZR) 和 ZigBee 终端设备(ZED)。ZC负责启动ZigBee网络,接受ZR和ZED的连接请求,扩展ZigBee网络。一个设备一般只能连接到一个协调器和路由器上。
ZigBee网络常见拓扑结构类型有:星型、网状和树形[2]。在这些拓扑结构中,只有ZC或已经加入网络的ZR可以周期性发送信标帧传输信息通知其他节点,并判断该节点是否能够与孤立节点建立连接。若可以建立连接则成为父节点,并设置路由器和终端设备状态为真。ZR或ZED 获知可连接的ZC和ZR在其通信范围内,随即发送加入请求,通过验证后成为该节点的子节点。
ZigBee网络中采用分布式地址分配机制,为网络中的联合节点分配网络地址。每个设备都有一个地址空间来放置其子节点。同时定义三个参数来管理网络:设备最多子节点数,设备最大深度,设备子路由器最大数。由于这些参数的限制,即使有些节点在通信范围之内,也会成为孤立节点而不能加入网络[3]。有研究提出,假设在通信范围内存在有一个节点具有可接受子节点的能力,可通知通信网络中节点其有可移动性,则具有潜在父节点,该父节点可以通过扩展连接过程来分离器可移动子节点并让孤立节点加入,减少孤立节点数改善网络的连通性。但如果潜在父节点收到多个孤立节点的连接请求,则因无法选择而不能达到网络最佳连通性。
2 问题描述
图1 ZigBee网络树状图
图1是一个ZigBee网络的树状图,在该网络中,设置网络参数为:路由器连接最大数2,子节点最大数3,路径最大深度3。由于网络参数的限制,节点C、D、E、K成为孤立节点,无法加入网络。按照算法思路节点M没有达到最大数,可以将L与N断开现有连接,接入结点M上,此时节点K或节点C有可能加入到网络中,如果节点K加入,则减少1个孤立节点,如果节点C加入网络,则减少三个孤立节点,如何在算法中选择一个合适的节点加入,即所要解决问题。
3 网络连通性增强机制
为增强网络连通性,将增强机制分为两个阶段实行:第一阶段是从孤立节点中选取最有可能加入网络的节点,并重构部分网络以便能连接更多节点;第二阶段则是断开转移节点以便接受更多节点过程。
断开重构网络结构提高网络连通性,重点是子节点如何通知父节点其具有可移动性,在此提出使用告知提醒的方法。如可移动节点为ZR,在其MAC信标中添加以字段作为可移动标志,父节点接受子节点可移动信标后,将记录添加到邻表中,而ZED使用短消息通知父节点其可移动,父节点相继添加记录到邻表中,同时运行扩展连接程序,接受新节点。父节点是否能接受新节点加入,需要在网络信息库中添加一项NSS,当NSS被设置为True时,可以接受更多子节点。所使用扩展程序描述如下:
(1)当NSS被设置为True时,其潜在父节点发布可接收更多子节点消息,反之,则发布不能接收节点消息;
(2)当潜在父节点同意子节点加入后,启动最优节点选择机制:即如果请求节点为ZED设备,因其不能具有子节点的特点,选择深度最小的ZED节点作为子节点;若请求加入节点为ZR节点,则父节点选择具有最多子节点的ZR同意其加入;若请求加入节点既有ZR又有ZED,因ZED节点不能接受子节点,所以选择ZR成为潜在父节点的子节点,但当ZED节点多于ZR节点时,则选择深度最小的ZED节点作为子节点[4];
(3)确定可加入节点后,分离出原有父节点的可移动子节点,父节点接受孤立节点成为新的子节点;
(4)更新邻表设置;
(5)如检测父节点仍具有可分离子节点,并在其通信范围内还有孤立节点,则转至(1)继续运行,如没有则停止构成新的网络结构。
上述扩展程序中要首先判断父节点是否具有可分离节点,该节点是否能连入附近节点构成新的网络结构,其次才是判断是否允许新的节点加入,加入时是选择ZR或ZED,最优节点选择机制的引入使重构网络提高联通性得到了很好的改善。
4 节点交换机制
分离节点重新加入网络的过程称为节点交换机制,该机制运行过程中定义一个新的关键字NUS添加到ZigBee 的网络信息库中,当关键字的值为True时,节点运行交换过程重新连入网络中[5]。重新连入过程如图2所示,即:
(1)当NUS设置为True,同时ZR连接节点的数量小于可接受路由器最大数量时,则该节点发布消息其可接收子节点,反之不能接收;
(2)当节点收到来自ZR的加入请求时,节点ZR以最大深度分离子ZED设备;
(3)ZR分离子节点成功后,选择其有效通信范围内包含字节点最多的孤立节点接受加入,成为其新的自节点;
(4)如果节点发出请求,继续步骤(1)。
图2 ZigBee网络示例结构图
根据上述理论,在图2中,该结构包含四个孤立节点:K,C,D,E。设ZC最大子节点数为3,ZR最大子节点数为2,ZED最大深度为3。图2中A、B为其潜在父节点,其原有L、N子节点断开后可能连接到节点M上。启动扩展连接过程后,首先断开原有子节点L、N的连接,同时各自扫描其通信范围内子节点个数,因节点N具有两个子节点,M节点只能添加一个子节点,所以接受N为其子节点,同时节点C与D、E一起加入节点B,构成新网络。节点L 加入节点R为新节点,节点K连接到节点A成为其新的子节点。最终交换后的ZigBee网络如图3所示。
图3 ZigBee网络重构图
5 仿真实验验证
模拟真实环境,设模拟环境宽度为200m2范围内,每个节点传输直径范围为30米,在此范围内采用连接比率来检测算法的可行性。ZR接入数为N1,ZED接入数为N2,ZC接入数为N3,总结点数为N,则连接比率J为:
根据上述表达式,设定实验环节中ZC个数为1,ZR个数为40,ZED个数为0-60,同时ZC,ZR,ZED最大连接数分别为4、3、2。实验时,所有设备都处于静态,ZC位于环境中心,其余随机部署。如下表所示。
孤立点个数表
图4 算法连接比率图
上表为在ZigBee协议下和改进算法下孤立节点个数,图4为连接比率实验结果对比图。在试验中ZR的数目保持不变,ZED的数目以10 为单位增加,从图4中可以看到,当节点总个数增加到65左右时,连通达到饱和,所有连接比率开始下降,但改进算法的连接比率下降缓慢,且整体上改进算法的连接比率一直都比ZigBee协议下高出2%-9%。试验表明,在改进算法下,ZR可以连接更多的子节点,减少孤立节点,有效改善ZigBee网络环境的连通性。