基于蚁群算法的Z i g b e e网络自组织优化设计
2014-12-23黄钉劲杨刘柱
黄钉劲 杨刘柱 李 飞
(西安工业大学 光电工程学院,陕西 西安710032)
0 前言
现代监控系统包括两个重要的领域,其一、工业现场监控系统;其二、广义上的监控系统。工业现场监控系统主要应用工业自动化领域中,对工业过程中各种输入、输出参量进行采集和控制。工业现场监控系统一般采用工控机设备进行监控。而广义上的监控系统的研究领域更加广泛,主要监控对象包括自然环境、生物种群、区域监控等。不同于工业现场监控系统的通信技术,广义监控系统的数据传送常常使用无线传输技术实现。因此,对无线通信技术的研究将极大地促进监控系统的运行。广义监控系统不仅要求实现无线传输,而且要求无线传输具有低成本、高可靠性、功耗低等特点。Zigbee网络可以很大程度上满足监控系统对无线传输的要求[1]。
Zigbee网络模块,当功率为100mW时,其传输距离最高为1.6公里,当功率为1mW时,其传输距离最高为120m。Zigbee网络模块不工作时处于休眠状态,此时工作电流仅为0.7μA。由于采用了碰撞避免机制(CSMA-CA),避免了发送数据时的冲突。此外,Zigbee网络采用密钥长度为128位的加密算法,对所传输的数据进行加密处理,保证了数据传输时的可靠性和安全性[2]。由于Zigbee模块通常和嵌入式监控设备集成在一起,所以Zigbee网络的体积可以做得很小,投放灵活。有时甚至可以装在野外动物身上,以对其行动规律进行监控。本文的主要工作并不集中于对Zigbee模块进行设计,而是根据其网络协议栈建立一定的网络拓扑模型以实现大规模的组网。
1 Zigbee网络协议栈
Zigbee栈体系结构分为四层,包括物理层(PHY:physical layer)、媒体访问控制层 (MAC:medium access control sub-layer)、网络层(NWK:network)以及应用层(APL:application layer)。
Zigbee设备有且只有一个64位IEEE地址,网络连接后协调器给从设备分配一个16位的短地址。64位IEEE地址是绝对地址,16位短地址是相对地址。一个网络结构最多能容纳255个全功能设备,一个Zigbee网络能容纳65000个节点。在Zigbee网络中根据地位和功能不同,可以分为全功能设备(FFD:function device)和简化功能设备(RFD:reduced function device)[3]。FFD是具有路由和中继功能的网路设备,可以作为协调器(Coordinator),FFD设备与FFD设备之间不但能够通信,FFD与RFD设备之间也能够通信。但RFD只能与FFD设备通信,RFD设备之间不能够通信。常见Zigbee网络拓扑的有三种,星状结构、树簇状结构和网状结构。其拓扑结构如图1所示。
Zigbee网络支持三种不同的信号频段,分别位于2450MHz波段(全球通用频段)和 868MHZ(欧盟频段)/915MHz(美国频段)波段。2450MHz波段射频可以提供250kbps的数据速率和16个不同的信道。868/915MHz波段中,868MHz支持1个数据速率为20kbps的信道,915MHz支持10个数据速率为40kbps的信道。
图1 典型的Zigbee网络协议拓扑结构图
本文根据Zigbee网络协议栈及组网规则构建了一种全新拓扑结构。该拓扑结构是一种全网拓扑结构,包括9层网络,每层网络由可以相互通信FFD设备构成。每个FFD设备同时与6个RFD设备构成树形拓扑结构。该拓扑结构可以根据实际工程任务的要求减少层数,但是不能再增加新网络层。如果该全网结构不能满足工程需要,可以构建多个全网结构。
2 Zigbee网络拓扑结构建模
网络拓扑结构建模:设每层有N个FFD路由,每个路由有M个RFD节点。FFD路由之间可以相互通信,RFD节点之间不可以相互通信。FFD路由之间的距离在射频功率为100mW时,理论上最大距离可达到1.6公里。RFD设备在射频功率为1mW时,理论上最大距离可达120m。为了保证通信的稳定性和时效性,此处建立的模型基于FFD路由距离为800m,RFD节点距离为100m。
根据以上所述规则,FFD设备与RFD设备的距离为:rFR=0.1km,RFD设备与RFD设备的距离rRR=0.1km,则有下式:
代入求的M=6,也就是是在每个FFD设备周围距离0.1km处布置6个RFD设备即可实现给FFD设备周围的全网覆盖。
计算每层FFD设备数N:第一层为中心层,只需要布置一个FFD设备,作为Zigbee网络的终端路由与协调器,该FFD设备既可以与其他FFD设备通信可以和其他网络进行融合,从而将Zigbee网络检测的数据实时地发送出去。
设第k层网络需要N个FFD设备,根据上述规则,有rFF=0.8km。以第一个FFD设备为中心,第k层网路距离中心FFD设备的距离rk=krFF,其中k为层数。则,第k层网络需要的FFD设备数Nk由以下公式求得:
根据(2)式可以求得任意k层的FFD设备数Nk,但FFD设备的总数并不是无限的,根据Zigbee组网协议的要求,全网结构只能容纳最多256个FFD设备,因此,由下式可以确定k的数目:
取 π=3.14,得 k2+k-81≤0
求k2+k-81=0,得k≈8,则该网络拓扑结构最多只能容纳9层(k+1层)网络FFD设备。每层网络设备的数如表1。
表1 每层所需全功能设备数
以上我们构建了全网设备的网络拓扑结构模型:该拓扑结构共分9层FFD设备,每层FFD设备间距为0.8km,每个FFD设备周围有0.1km处沿圆周布置6个RFD设备。则整个网络的半径R=(9-1)*0.8=6.4km。可见全网覆盖面积A=πR2≈128.6km2。
3 蚁群算法及自组织实现
本文采用蚁群算法作为自组织路由算法[4-5]。当RFD设备采集到有效数据时,通过Zigbee网络将数据发送到目标FFD设备。由于RFD设备只能与FFD设备通信,因此应用于Zigbee网路的蚁群算法的起始地址为该RFD设备的父FFD设备。目标地址为网络中的任意FFD设备。Zigbee网络的建立就是根据起始地址和目标地址的通信,而其他不参与通信的Zigbee设备处于休眠状态,这样不仅可以实现网路根据需要通信而不需要再另外设置专门的网络,而且可以大大地降低功耗[6]。这正是Zigbee网络的最大特点。因此,尽管全网拓扑结构布置了多达217个FFD设备,但实际工作的FFD设备只是其中建立通信的相关FFD设备,其他FFD设备处于休眠状态,直到该FFD设备需要参与通信为止。
在每个FFD设备中保存网路路由表,作为网路通信路由的依据。网络路由表记为IPd,领域表记为IPn,起始地址记为IPs,目标地址记为IPo。 τij(t)表示 t时刻 IPi到 IPj的信息素,ηij(t)表示启发信息,ηij(t)=,其中 l(i,j)表示 IPi到 IPj的距离。蚂蚁在移动过程中根据领域表IPn中到各个FFD设备的信息素与启发信息决定转移方向,其转移方向(t) 按下式计算:
经过n个时刻,蚂蚁从初始目标到达终点目标,各路径下的信息素根据下式进行更新:
其中ρ表示信息素挥发因素ρ⊂(0,1),Δτij表示所有蚂蚁留在路径上的信息素,表示第k只蚂蚁在经过路由表路径的信息素。Q为常数,Lk为蚂蚁k建立的路由表中所有地址的路径总长度。
4 仿真结果及分析
根据以前分析,本文首先利用Matlab软件生成了全网设备的网络拓扑模型,如图2所示为。图中各点表示全网拓扑结构的227个FFD设备。每个FFD设备周围则分布着6个RFD设备。
图2 全设备网络拓扑结构图
目标地址 IPo选取的是(0,0)位置,起始地址 IPs选取的是(5.9182,2.4492)位置。仿真结果如图3和图4所示。图3表示的是没有人为干预的情况下,根据蚁群算法编制的自组织路由图,其路径为(5.9182, 2.4492)、(5.3512,1.6506)、(4.5105,1.6417)、(3.9126,0.8316)、(3.0910, 0.8282)、 (2.2553,0.8208)、(1.6,0)、(0.8,0)、(0,0)。 为了验证系统的自组织能力,将图3中的位置为(0.8,0)的点屏蔽,然后重新运行,得到图 4所示的新的路由图,其路径为(5.9182,2.4492)、(5.3512,1.6506)、(4.5105,1.6417)、(3.9126,0.8316)、(3.0910,0.8282)、(2.2553, 0.8208)、(1.3856,0.8)、(0.4,0.6928)、(0,0)。
图3 自组织路由图1
图4 自组织路由图2
5 结论
通过对衣裙算法的仿真可见,利用蚁群算法可以大大地提高系统的稳定性和可靠性。同时可以大大提高监控系统的覆盖范围,实现区域全覆盖功能。同时由于没有参与到路径中的设备都处于休眠模式,可以最大限度地减少系统的功耗。
[1]刘新宇,李兵,黄珊,陈鸣.一种ZigBee无线传感器网络拓扑发现算法[J].计算机工程,2012,38(4):98-99.
[2]李建中,李金宝,石胜飞.传感器网络及其数据管理的概念、问题与进展[J].软件学报,2003,14(10):1718-1725.
[3]张杰,涂巧玲,杨文刚.传感器网络节点通信模块的低功耗研究[J].传感器与微系统,2009,28(9):28-30.
[4]刘彦鹏.蚁群优化算法的理论研究及其应用[D].杭州:浙江大学,2007.
[5]倪剑庆,邢汉承,张志政.蚁群算法及其应用研究进展[J].计算机应用与软件,2008,25(8):12-16.
[6]刘琼.智能优化算法及其研究[D].无锡:江南大学,2011.