摘要基于IEEE802.15.4标准的ZigBee网络是一种具有强大组网能力的新型无线个域网,其中的路由算法是研发工作的重点。本文介绍了IEEE802.15.4标准及ZigBee规范的协议模型,重点研究了ZigBee协议网络层的路由算法,分析了Tree路由及Z-AODV路由算法,在此基础上提出了ZigBee网格型网络中基于数据特性的路由选择机制,该机制在网络性能和低功耗方面有明显的优势,并且可以平衡节点能量,最后简单介绍了ZigBee节点的硬件实现。关键词ZigBee协议;网络;IEEE802.15.4;路由算法;Tree路由;Z-AODV路由1概述ZigBee技术是由英国Invensys公司、日本三菱电气公司、美国摩托罗拉公司以及荷兰飞利浦等公司在2002年10月共同提出设计研究开发的具有低成本、体积小、能量消耗小和传输速率低的无线通信技术。2000年12月,IEEE802无线个域网(WPAN,WirelessPersonalAreaNetwork)小组成立,致力于WPAN无线传输协议的建立。2003年12月,IEEE正式发布了该技术物理层和MAC层所采用的标准协议,即IEEE802.15.4协议标准,作为ZigBee技术的网络层和媒体接入层的标准协议。2004年12月,ZigBee联盟在IEEE802.15.4定义的物理层(PHY)和媒体接入层(MAC)的基础上定义了网络层和应用层,正式发布了基于IEEE802.15.4的ZigBee标准协议。2网络层的研究ZigBee技术的体系结构主要由物理层(PHY)、媒体接入层(MAC)、网络/安全层以及应用框架层组成,各层之间的分布如图1所示。图1ZigBee技术协议组成PHY层的特征是启动和关闭无线收发器、能量检测、链路质量、信道选择、清除信道评估(CCA)以及通过物理媒体对数据包进行发送和接收。MAC层可以实现信标管理、信道接入、时隙管理、发送确认帧、发送连接及断开连接请求,还为应用合适的安全机制提供一些方法。它包含具有时间同步信标的可选超帧结构,采用免碰撞的载波侦听多址访问(CSMA-CA)。安全层主要实现密钥管理、存取等功能。网络层主要用于ZigBee的LR-WPAN网的组网连接、数据管理等。应用框架层主要负责向用户提供简单的应用软件接口(API),包括应用子层支持APS(ApplicationSub-layerSupport)、ZigBee设备对象ZDO(ZigBeeDeviceObject)等,实现应用层对设备的管理,为ZigBee技术的实际应用提供一些应用框架模型等,以便对ZigBee技术的开发应用。网络层的定义包括网络拓扑、网络建立、网络维护、路由及路由的维护。2.1ZigBee的网络拓扑结构ZigBee定义了三种拓扑结构:星型拓扑结构(Star),主要为一个节点与多个节点的简单通信设计;树型拓扑结构(Tree),使用分等级的树型路由机制;网格型拓扑结构(Mesh),将Z-AODV和分等级的树型(Tree)路由相结合的混合路由方法。三种拓扑结构如图2所示。图2网络的三种拓扑结构ZigBee定义了三种设备类型:ZigBee协调器(ZigBeeCoordinator,ZC),用于初始化网络信息,每个网络只有一个ZC;ZigBee路由器(ZigBeeRouter,ZR),它起监视或控制作用,但它也是用跳频方式传递信息的路由器或中继器;ZigBee终端设备(ZigBeeEndDevice,ZED),它只有监视或控制功能,不能做路由或中继之用。在IEEE标准中,ZED被称为精简功能设备(Reduced-FunctionDevice,RFD),ZC和ZR被称作全功能设备(Full-FunctionDevice,FFD)。2.2网络层路由算法的分析网络层支持Tree、Z-AODV、Tree+Z-AODV等多种路由算法。2.2.1AODV路由协议DSDV(destination-sequenceddistance-vector)协议是一个基于传统的BellmanFord路由机制的表驱动算法,被认为是最早的无线自组网络路由协议。DSDV在传统的distance-vector算法的基础上采用了序列号机制,用于区分路由的新旧程度,防止distance-vector算法可能产生的路由环路。DSDV采用时间驱动和事件驱动技术控制路由表的传送,即每个移动节点在本地都保留一张路由表,其中包括所有有效目的节点、路由跳数、目的节点路由序列号等信息,目的节点路由序列号用于区别有效和过期的路由信息以避免环路的产生。DSR(dynamicsourcerouting)协议是最早采用按需路由思想的路由协议,包括路由发现和维护两个过程。它的主要特点是使用了源路由机制进行数据包转发。AODV(ad-hocon-demanddistancevector)协议在DSDV协议的逐跳路由、序列号、定期广播机制基础上,加入了DSR的按需路由发现和维护机制。AODV在每个中间节点隐式保存了路由请求和应答的结果,并利用扩展环搜索(expandingringresearch)的办法限制搜索发现目的节点的范围。AODV支持组播功能,支持QoS,而且AODV使用IP地址,便于同Internet连接。但AODV基于双向信道的假设,路由应答数据包直接沿着路由请求的反方向回溯到源节点,因而不支持单向信道。与DSDV保存完整的路由表不同的是,AODV通过建立按需路由来减少路由广播的次数,这是AODV对DSDV的重要改进。与DSR相比,AODV的好处在于源路由并不需要包括在每一个数据包中,这样会降低路由协议的开销。AODV是一个纯粹的按需路由协议,那些不在路径内的节点不保存路由信息,也不参与路由表的交换。2.2.2Z-AODV能量平衡路由在ZigBee路由规范中没有过多的考虑能量控制,但是对于adhoc无线网络来说,能量控制非常重要。因此提出了能量控制策略来改进ZigBee路由。它将使节点避免用尽所有能量以至于过早的失去作用。当节点想要选择路径时,它将考虑路径上的节点的剩余能量。Z-AODV算法是针对AODV(Adhoc按需距离矢量路由协议)算法的改进,AODV是基于序列号的路由,它总是选择最新的路由。Z-AODV是基于路径的能量消耗的路由,考虑到节能、应用方便性等因素,简化了AODV的一些特点,但仍保持AODV的原始功能。在路由选择和路由维护时,ZigBee的路由算法使用了路由成本的度量方法来比较路由的好坏。假定一个长度为L的路由P,则它的路由成本为:其中,表示从节点Di到节点Di+1的链路成本。对于链路l,链路成本可按照下面的表达式计算:其中,pl为链路l中发送数据包的概率。在ZigBee规范中没有涉及到pl的具体计算方法。pl可通过实际计算收到的信标和数据帧来进行估计,即通过观察帧的响应序列号来检测丢失的帧,这就通常被认为最准确地测量接收概率的方法。但是,对于所有的方法来说,最直接和有效的方法就是基于IEEE802.15.4的MAC层和PHY层所提供的每一帧的LQI通过平均所计算的值。即使使用其他方法,最初的成本估计值也是基于平均的LQI值。可以根据驱动函数表来映射平均LQI值与C﹛l﹜值的关系(见表1)。表1LQI值与链路成本的关系能量平衡运算要考虑许多因素来选择路由。这些因素包括临近节点的能量、节点自身的能量和链路质量。剩余能量Elocal可以在每一个ZigBee帧中的保留域发送,这样每个节点都能得到它的邻居节点最新的能量分配﹛E1,E2…En﹜。2.2.3树型(Tree)路由树型路由机制包括配置树型地址和树型地址的路由。当协调器建立一个新的网络,它将给自己分配网络地址0,网络深度Depth0=0。如果节点(i)想要加入网络,并且与节点(k)连接,那么节点(k)将称为节点(i)的父节点。根据自身的地址Ak和网络深度Depthk,节点(k)将为节点(i)分配网络地址Ai和网络深度Depthi=Depthk+1。网络深度表示仅仅采用父子关系的网络中,一个传送帧传送到ZigBee协调器所传递的最小跳数。ZigBee协调器自身深度为0,而它的子设备深度为1。图3为ZigBee树型结构。参数nwkMaxChildren(Cm)表示路由器或协调器在网络中允许拥有子设备数量的最大值。参数nwkMaxRouters(Rm)表示子节点中路由器的最大个数,而剩下的设备数为终端设备数。图3ZigBee树型结构一个新的RFD节点(i),它没有路由能力,它与协调器连接作为协调器的第n个子节点。根据它的深度d,父节点(k)将为子节点(i)分配网络地址:Ai=Ak+Cskip(d)·Rm+n其中1≤n≤(Cm-Rm)如果是新的子节点FFD,它有路由能力,父节点(k)将给它分配网络地址:Ai=Ak+1+Cskip(d)·(n-1)其中,否则,参数nwkMaxDepth(Lm)表示网络的最大深度。假设一个路由器向网络地址为D的目的地址发送数据包,路由器的网络地址为A,网络深度为d。路由器将首先通过表达式:A<D<A+Cskip(d-1)判断该目的节点是否为自己的子节点。如果目的节点是自己的子节点,则下一跳节点的地址为:否则,下一跳节点是该路由器的父节点。2.2.4Tree+Z-AODV路由算法的分析根据上文对Tree和Z-AODV两种路由算法的分析,在我们的ZigBee网络中将二者结合,使用Z-AODV和分等级的树型(Tree)路由相结合的混合路由方法,构成网格型拓扑结构(Mesh)的网络。具体实现方法是在数据帧帧头的DiscoverRouter域指定路由。该域可以是如下三种值:⑴抑制路由发现:它使用已经存在的路由表。当路由表中没有相应的目的节点的地址时,参数nwkUseTreeRouting的值为TRUE,网络将使用树型路由。⑵使能路由发现:如果在路由表中有路由地址,将按照该路由表进行路由。否则,路由器将使用Z-AODV路由算法初始路由发现。如果该节点没有初始路由发现的能力,它将使用树型路由。⑶强制路由发现:不管是否有相应的路由表,节点都强制使用Z-AODV路由算法初始化路由发现。在ZigBee规范中提出了将AODV和Tree路由混合的路由机制。但在ZigBee规范中并没有说明如何配置参数来选择路由策略,没有使两者平衡的设计方法。根据上面Tree路由和Z-AODV的分析,我们提出了基于数据特性的路由方法,即在两种路由算法构成的网格型网络中,根据节点间传输数据特性的不同,通过设置数据帧帧头的DiscoverRouter域,选择不同的路由方法。对于捆绑型的连续数据,ZigBee应用层应选择使用使能路由的方法。即采用Z-AODV路由首先建立路由发现,然后选择跳数少的路由,成为最佳路径;对于爆发型的不连续数据则使用抑制路由发现的方法,即在路由表中没有响应的目的节点的地址时,采用Tree路由方法。因为这种路由不需要建立路由表,因此对传输的数据响应较快。图4为节点接收到上层或其他节点发送的数据包时,网络层处理程序的流程图。图4路由算法流程图2.3总结Tree路由是一种由网络协调器展开生成树状网络的拓扑结构,适合于节点静止或者移动较少的场合,属于静态路由,不需要存储路由表。树型路由对传输数据包的响应较快,因为树型路由不需要建立路由表。其缺点是所选择的路由并非是最佳的路由,不能获得最小路由。树型路由适用于爆发型的数据传输。Z-AODV需要首先建立路由发现,然后选择跳数少的路由,成为最佳路径。Z-AODV适用于连续的数据传输。在ZigBee规范中,设计了Z-AODV和Tree路由混合的路由策略,这里我们提出了基于数据服务的ZigBee路由选择策略。根据上述分析可以看出,这种路由选择机制在网络性能和低功耗方面有明显的优势;并且根据能量控制机制,可以有效地平衡节点能量,避免节点耗尽能量而过早地失去作用。3ZigBee模块硬件设计模块集无线收发器、微处理器、存储器和用户API等软硬件于一体,可实现1.0版ZigBee协议栈的功能。图5ZigBee模块框图图5是模块的硬件