庞 毅,王 超,孙青林,陈增强
(南开大学 信息技术科学学院,300071 天津)
无线传感器网络是由部署在监测区域内若干的微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统.ZigBee技术是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,十分适合担当组织无线传感器网络的重任,有着重要的研究价值[1].无线传感器网络要求在有限供电的情况下对一定的监测区域长时间进行监控,由于节点数量巨大且具体位置未知,人工补充能量的方法已不适用,这就要求在不影响网络功能的同时,尽可能地减小网络能量消耗.寻找无线传感器网络的高能效的路由,建立可靠的数据传输方式,使网络寿命延长已成为当今研究的热点,而对网络进行合理的层次划分是这些研究热点首先要解决的问题.但是,现在大部分的路由研究均假设网络层次已经划分完毕,没有具体给出网络层次的划分过程[2-10].本文基于Zigbee技术,提出了一种建立环状层次结构的网络分层方法.采用改进的洪泛路由方法加以实现,通过在洪泛路由方法中加入层数更新机制与帧转发控制机制,避免了资源浪费与数据内爆问题,优化了环状层次结构的建立过程.
Zigbee网络采用的是一种簇树状的拓扑结构,这种结构中每个节点有一个层数,但这个层数只是反映节点是协调器的第几代子节点,在一定情况下可以反映距离上的关系,但是在某一个节点的子设备已满的情况下会出现层数无法反映实际距离的情况.如图1所示,图中黑色节点代表协调器,白色节点代表路由器和终端节点.
图1 Zigbee原有分层方法示意图
在网络形成阶段,节点A距离协调器较近,但此时协调器的子节点数已经达到最大,不能容纳新的节点加入,所以A选择与其较近的另一个节点B加入网络,此时A的层数为2,但实际上A距协调器的实际距离与层数为1的节点B相同.
洪泛路由[11]是一种简单实用的路由方法,它既不需要计算路由,也不需要维护路由表.当源节点需要发送数据给目的节点时,源节点首先进行广播,源节点的每一个邻居节点都会收到数据,每个邻居节点再把数据转发给各自的邻居节点,如此继续循环,直到数据到达目的节点或数据包的生存周期变为零.这种方式实现简单,而且不需要为计算路由和维护网络拓扑耗费资源,目前比较流行的路由方式,如按需矢量路由(AODV)、临时顺序路由算法(TORA)等路由方式,都是用洪泛的方式进行路由发现的.
洪泛路由也有其缺点,主要表现在盲目性和数据内爆问题上.洪泛是要求收到的数据全部进行转发,是盲目的、没有目的性的,导致全网的节点都会收到数据,但最终需要接收到该数据的节点只有一个,这就造成了巨大的能量资源的浪费.网络中每个节点可能多次收到同一个数据包,因为无论节点是否在源节点与目的节点之间的路径上,都会接收并转发数据,这就使网络内充满了大量无用的数据包,网络中收发的数据包会随着节点数目的增多而几何级的增长,当网络内节点较多时,就会产生数据内爆问题.
本文根据Zigbee网络数据传输的特点,对洪泛路由做了一些改进,使得在洪泛的过程中各节点记录下自己的层次,减少了资源的浪费,同时也避免了数据内爆问题.Zigbee网络主要的任务是采集数据,最后的数据都需要汇集到协调器上,因此我们可以以协调器为中心,建立一个环型的网络,各个环之间的距离相等,其中协调器的层数定义为0,其他节点的层数为该节点向协调器发送数据包时,该数据包的最小转发次数.
分层步骤如下:
(1)网络建立后,协调器将自己的层数初始化为0,其他节点初始化层数为一极大值(大于本网络最大估计层数即可);
(2)协调器发送分层确认帧,分层确认帧可以被任何节点收到;
(3)节点接收到分层确认帧时,根据层数更新机制更新自己的层数,即层数更新为当前层数和分层确认帧的转发次数之中的较小值,同时将分层确认帧转发,直至分层确认帧分发到整个网络.节点可能会多次收到分层确认帧,为了防止资源浪费,引入帧转发控制机制,即不对所有分层确认帧进行转发,只转发使更新层数变小的分层确认帧.
相应的流程如图2所示.
图2 改进洪泛路由的环状分层流程
本文使用NS2(Network Simulator Version 2)仿真平台对提出的Zigbee网络环状分层方法进行计算机仿真.NS2使用C++和OTcl语言混合编程,即需要在底层编写C++代码完成路由协议等组件的添加或修改,然后再编写OTcl脚本仿真[12].
由于NS2是免费开源的,因此研究者们可以对其进行完善与分享,其中 IEEE802.15.4和Zigbee的核心代码为 City College of the City University of the New York的Jianliang Zheng编写的,他完成了物理层和媒体接入控制层的仿真,在其基础之上仿真了Zigbee协议.
本仿真是对Zigbee原有的分层方法进行演示,仿真场景为50m*50m的场地中均匀分布21个节点(包括协调器),仿真结果如图3所示.图中节点上方所显示的为其地址,括号内显示的为父节点地址和节点所处的层数.可以看出即使在节点均匀分布的网络中,Zigbee也不能很好的划分网络层次.例如,节点1、9、13、19距离协调器均为10m,但19节点却被划分到了第3层,这是因为0节点(协调器)最多所能携带的子节点数为3,所以19节点不能成为0节点的子节点,而是选择2号节点为父节点.
图3 Zigbee原有分层方法仿真图
对节点均匀分布与节点非均匀分布两种情况进行仿真.节点均匀分布场景:在尺寸为50m*50m的场地中,均匀分布101个节点;节点非均匀分布场景:在尺寸为50 m×50 m的场地中,随机分布101个节点.
仿真结果如图4和图5所示.图4中可以明显看出在均匀分布的网络中,节点被分为4个不同的层次,不同层次的节点以圆形、正方形、六边形3种形状来区分,节点上方所显示的数字为节点的层数,同时层与层之间的间隔也是相等的.图5中可以看出,即使在非均匀分布的网络中,节点同样是被分成了4层,并且各层之间的界限比较清晰.
图4 均匀网络的环状分层仿真
图5 非均匀网络的环状分层仿真
CC2430芯片是TI/Chipcon公司生产的符合IEEE802.15.4协议和ZigBee技术的2.4GHz射频芯片,是一个集成了所需设备的片上解决系统[13].
分层需要将网络中的节点按与协调器的距离分成不同的层次,最终目的是要实现节点数据的跨层传输,这就要求节点应有不同的发射功率,即不同的能级,不同的能级对应不同的层次.例如协调器以第1级功率发送数据,则只有处于第1层的节点能够收到,以第K级功率发送,则信号可以覆盖到第K层.
CC2430具有内置的接收信号强度(RSSI)指示器,可通过寄存器RSSIL.VAL读取并计算得出信号强度,从RSSIL.VAL读出的值是8位有符号的二进制补码,转化成10进制,带入公式1可以得出RSSI的值VRSSI
其中,VRSSI-OFFSET是固定的偏移量,是系统开发期间得到的经验值,在CC2430中取-45.
在无线信号中普遍采用Shadowing[14]模型计算传输距离,计算公式如下:
式中:d是信号所传输的距离值,单位为米;p(d0)是在已知信号的传输距离为d0时,所接收到的信号强度;n是环境损耗指数,根据不同的环境取不同值;X[dBm]是均值为 0的随机分布值.是接收到信号的平均强度.在实际的测量中,通常取d0=1,X[dBm]=0.将由公式1计算得出的VRSSI值带入公式2,并推导得出公式3,以计算CC2430信号所能传输的距离:
其中A是在接收节点与发送节点相距1 m时的接收信号强度的绝对值.
当发射节点以最大功率(0 dBm)发射,接受节点以最小灵敏度接收数据时,VRSSI值为-85 dBm,此时实测得到A值为40,取n=2.5,带入公式3,可得d=63.0 m.此为节点最远传输距离.
CC2430的射频输出功率可以编程设置,从0 dBm到-25 dB m近似的分为8等份,可以通过RF寄存器控制,由于当发射功率为0 dBm时,A=40,那么可以推算出其他7个能级的A值,公式为
其中,F为不同能级对应的发射功率.
由此我们可以计算出CC2430的8种不同的发射功率所对应的传输距离,如表1所示.可以看出8个能级的发射距离基本上是等间距的,也就是说位于第1层的节点,可以使用第2能级的发射功率直接和第3层的节点通信.
表1 CC2430输出功率与传输距离
为了测试本网络分层方法在实际节点中的运行效果,采用3个CC2430组成网络.其中节点0x0001(以组网时分配给节点的16位短地址作为节点的编号)和0x143E均处在协调器0x0000的1倍能级范围内.
使用抓包工具对无线数据包进行分析,图6和图7分别为分层确认过程和协调器信息收集过程所抓取的数据包.
图6 分层确认帧
图6中APS Cluster Id为分层命令的编号0x0003,APS Payload中为分层确认帧被转发的次数,即相应节点自己的层数.图中可以看出,节点0x0001和0x143E均收到了协调器发送的分层确认帧,并更新自己层数.
图7中APS Cluster Id为信息收集命令的编号0x0004,APS Payload中为相应节点的层数信息(包括节点地址和层数).图中可以看出,协调器0x0000首先发送信息收集命令,节点0x0001和0x143E在接收到命令后,将自己的层数信息发送给协调器0x0000.
图7 协调器信息收集过程中的数据包
本文分析了Zigbee网络原有分层方法的不足,提出了基于改进洪泛路由的网络环状分层方法,充分利用了洪泛路由优点,同时避免了资源浪费与数据内爆问题,适用于均匀网络和非均匀网络,为建立智能化的路由算法提供了良好的基础.在NS2中进行了仿真,将Zigbee的分层结果与改进洪泛路由的环状分层结果对比分析,结果表明了环状分层方法的优越性.最后将环状分层方法在CC2430上实现,在实际网络中进行了测试,表明了此方法的可行性.
[1]孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005:3-13.
[2]仲盈,冯金鑫,熊庆旭.确定性无线传感器网络定向扩散路由协议[J].北京航空航天大学学报,2007,33(10):1228-1232.
[3]HE Chenguang,SHA Xuejun,ZHANG Wenbin,et al.Energy-efficient low-latency virtual cluster synchronization algorithm based on SMAC protocol in wireless sensor networks[J].Journal of Harbin Institute of Technology(New Seriers),2012,19(5):54 -60.
[4] WANG Dongxu,Sun Qinglin,Shi Jianpo.Energy Consumption Controlling in Wireless Sensor Networks Based on Power Optimality for the Main Node[C]//IET Conference on Wireless,Mobile and Sensor Networks,CCWMSN'07,2007:289 -292.
[5] KRUNZM, MUQATTASH A, SUNGJU Lee.Transmission power control in wireless Ad hoc networks:challengs,solutionsand open Issues [J]. IEEE Network,2004,189(10):8-14.
[6] LIU Xu, HUANG Lan, LIJun, etal. Image Transmission Over ZigBee-Based Wireless Sensor Networks[J].Sensor Lett,2012,10(1 - 2):205 -212.
[7] TAI Haijiang,LIU Shuangyin,LI Daoliang,DING Qisheng,et al.A multi-environmental factor monitoring system for aquiculture based on wireless sensor networks[J].Sensor Lett,2012,10(1-2):265-270.
[8]KAWADIA V,KUMAR P R.Principles and protocols for power control in wireless Ad hoc networks[J].IEEE JOURNALON Selected Areas in Communications,2005,23(1):76-88.
[9]LEI Yang,SHANG Feng-jun,REN Yu-sen.Research situation on routing protocols in wireless sensor networks[J].Communications Technology,2009,42(3):117-120.
[10]LIU Xiaodong,MAO Yongjun.Application of improved ant colony algorithm in WSN routing protocol[J].Computer Engineering,2009,35(16):243 -247.
[11]唐杜平,骆俊英.无线传感器网络洪泛路由算法的研究[J].微计算机信息,2007(04):175-176.
[12]黄化吉,冯穗力,秦丽姣,等.NS网络模拟和协议仿真[M].北京:人民邮电出版社,2010:3-6.
[13]李文仲,段朝玉.Zigbee2006无线网络与无线定位实战[M].北京:北京航空航天大学出版社,2008:41-63.
[14]STUEDI P,ALONSO G.Log-normal shadowing meets SINR:A numericalstudyofcapacityin wireless networks[C]//IEEE SECON,2007:550 -559.