孙 静,于 洋
(吉林师范大学 计算机学院,吉林 四平 136000)
随着科学技术的进步,尤其是微电子技术、通讯技术及计算技术的飞速发展.无线传感器网络成为目前的一个研究热点[1].目前的无线通信技术主要致力于如何提高通信速率,而在智能家庭和工业控制领域,迫切需要一种低复杂度、低功耗、低速率、低成本的无线通信技术.为了满足这种要求,在2002年8月,由英国Invensys公司、日本三菱电气公司、美国摩托罗拉公司以及荷兰飞利浦半导体公司成立了ZigBee联盟,并于2004年12月,正式公布了无线通信技术ZigBee的1.0标准.ZigBee是一种短距离、低速率、低功耗的无线传输技术[2],工作在2.4GHz的ISM频段上,传输速率为20kb/s~250kb/s,传输距离为10m~75m,为小型设备的无线联网和控制制定的协议规范,主要适用于无线传感器网络、自动控制和远程控制领域.它依据IEEE802.15.4标准,在数千个微小的传感器之间相互协调实现通信[3].
ZigBee网络由三种节点组成,ZC(ZigBee协调器),ZR(ZigBee路由节点),ZED(ZigBee叶子节点).ZC是网络的中心节点,负责网络的组织和维护.ZR负责网络内信息帧的路由,而ZED则是实现具体功能的单元.ZigBee网络有三种拓扑形式,分别为:星型网(star)、簇树网(cluster tree)和网状网(mesh)[2,3].
ZigBee协议栈架构如图1所示,IEEE802.15.4定义的是PHY和MAC层[4].在MAC子层上面提供与上层的接口,可以直接与网络层连接,或者通过中间子层——SSCS和LLC实现连接.ZigBee联盟在IEEE802.15.4基础上定义了网络层和应用层[5].ZigBee协议网络层的主要功能为寻址、路由与安全,支持Cluster-Tree,AODVjr,Cluster-Tree+AODVjr等路由算法.[6,7]
图1 ZigBee协议栈
在ZigBee网络中,只有一个节点作为ZC,其它节点都是ZR或者ZED.全功能设备(FFD)可作为ZC和ZR,而简化功能设备(RFD)只能作为ZED.网络中每个结点有两个地址:16位短网络地址和64位IEEE扩展地址.16位网络地址在结点加入网络时由其父结点(协调器/路由)动态分配,该地址仅用在路由或数据传输时使用,与Internet的IP类似.而64位扩展地址类似于MAC地址,它唯一地标识每个设备,是固定的.
ZigBee网络有两种地址模式,即静态地址分配和树状(tree)地址分配,网络结构通常采用簇树网,节点地址是由其父节点采用分布式地址分配方案进行分配.ZC确定整个网络节点的数目,每个节点都拥有一个网络深度,用以指示在其父子链路上数据传输到协调器的最小跳数.协调器的深度为0,而它的孩子节点的深度为1.显然,多跳网络中的深度是大于1的,网络的深度是由网络协调器来决定的.在ZigBee网络中,假设一个父节点有最大孩子节点数为Cm,网络的最大深度为Lm,一个父节点的最大路由数Rm,可以计算网络中每个节点的功能函数Cskip(d),其函数式为:
(1)
式中的d是节点到ZC的深度.如果Cskip(d)的值为0,则表明此节点为叶子节点,而Cskip(d)的值大于0,则表明该节点可作为一个父节点,这个父节点可以接收子节点并根据它们是否具有路由能力来分配地址.具体过程是:首先一个子节点的地址被分配,子节点地址比父节点的地址多1,然后其余节点根据下式求出.
An=Aparent+Cskip(d)*Rm+n
(2)
式中1≤n≤(Cm-Rm),Aparent代表父节点的地址.
ZigBee网络有两种路由模式:网状(mesh)路由和树状(tree)路由.网状路由和AODV路由算法相似,树状路由也就是簇树路由算法.本文针对ZigBee簇树网的树状路由机制进行了详细的剖析和研究.
树状路由非常适用于对时间要求敏感的无线传感器网络(WSM).ZC或ZR接收到信息后,设备的地址通知ZC和ZR路由的目的.设备的地址计算方法使用Cskip(d-1)函数,之后通过简单的比较得知该向父结点路由还是向子结点路由.即如果LocalAddress(A) (3) A是设备地址,D是目的地址,d是网络中设备深度.A 网状路由使用路由表,ZC或ZR维护路由表.如果有目的路由表入口,则应用路由表入口直接向目的发送信息.该路由机制支持非信标使能模式. 图2 网络层帧格式 树状路由机制基于网络层的地址模式[6],网络层数据帧格式[2,5]如图2所示. 设备读出帧信息中的路由域检测目的地址.如果路由域的目的地址等于它本身的地址,则向上层传送有效载荷;如果路由域目的地址不是设备的本身地址,需要根据公式(1)计算下一跳地址.如果是该设备的孩子地址(邻居表检测),则向正确的孩子地址转播该包;如果不是设备的孩子地址,设备根据公式3检查该地址是否是其子孙,如果不是其子孙,则向它的父节点转播该包.树状路由机制的具体过程如图3所示[7-9]. 图3 树状路由流程图 2.2.1 建立簇树网 表1 簇树网模拟参数 建立一个簇树网,模拟参数如表1所示.根据公式(1)计算簇树网各节点的地址,结果如表2所示. 表2 ZigBee的簇树网的节点地址分配 以上网络参数和节点地址建立的网络结构如图4所示. 图4 簇树网结构 2.2.2 实验结果 在图3的簇树网中,网络地址是0x000A的设备8向网络地址是0x0005的设备5发送信息.信息路由如图3的箭头指示.根据图5的实验结果,终端结点向sink结点的数据是沿着父-子关系向根结点路由的,如每个结点向它的父结点中继数据.另一方面,传感器到传感器,sink结点到传感器的通信,由ZigBee提供的层次地址模式,根据数据的终端地址,数据包沿着簇树结构向下或向上路由.即在图4中,首先设备8组建数据包,它的有效载荷发向下一个设备,该数据帧内容包括帧控制0400,目的地址0500,源地址0C00,距离00,序列号17和帧有效载荷.设备8是ZED,因而目的地址不可能是其子孙,这样要向它的父节点设备6路由.从图5的第一个信息帧可以看出,帧格式的控制域显示这是数据帧,源地址是0x000C,目的地址是0x0009,这正是设备6的地址.因为设备1是ZC,它要向其孩子节点设备2路由.而在第四个数据帧可以看出源地址是0x0000,目的地址是0x0001,这是子设备2的地址. 图5 信息路由 本文针对ZigBee无线传感器网络的树状路由协议进行了详细的剖析和研究,并结合具体实验对该协议进行了测试,为其相关实现软件的开发提供有价值的参考. 参考文献: [1]Ian F Akyildiz,Wang XD,Wang W L.Wireless mesh networks:a survey [J]. Computer Networks, 2005,47(4): 445~487. [2]ZigBee Alliance.ZigBee Specification[Z].Version 1.0,2005-06-27. [3]ZigBee Alliance.Document[EB/OL].http://www.zigbee.Org.(2004-12-15). [4]LAN/MAN Standards Committee.Part 15.4:wireless Medium Access Control (MAC) and PHysical Layer (PHL)specifications for lowrate wireless personal area networks[EB/OL].http://www.zigbee.Org/.(2004-08-30). [5]Anneleen Van Nieuwenhuyse,Mário Alves,Anis Koub.a.On the use of the ZigBee protocol for Wireless Sensor Networks[Z].Version:final.Date:2006-06. [6]Edgar H,Callawy J,Callaway E H.Wireless sensor networks:architectures and protocols[M].New York: auerbach publication,2003:260-300. [7]AndréCUNHA,Mário ALVES,Anis KOUB.A Implementation of the ZigBee Network Layer with Cluster-tree Support [Z]. Version:1.0 Date:26-05-2007. [8]AndréCUNHA,Mário ALVES,Anis Koub.a.An IEEE 802.15.4protocol implementation (in nesC/TinyOS):Reference Guide v1.2[Z].Version:1.2,2007-05. [9]Kinney P.ZigBee technology:wireless control that simply works[EB/OL].http://www.hometoys.com/htinews/octO3/a rticIes/kinney/zigbee.Htm.(2004-08-30).2 树状路由协议分析
2.1 树状路由机制
2.2 实验分析
3 结束语