摘 要 基于IEEE802.15.4标准的ZigBee网络是一种具有强大组网能力的新型无线个域网,其中的路由算法是研发工作的重点。本文介绍了IEEE802.15.4标准及ZigBee规范的协议模型,重点研究了ZigBee协议网络层的路由算法,分析了Tree路由及Z-AODV路由算法,在此基础上提出了ZigBee网格型网络中基于数据特性的路由选择机制,该机制在网络性能和低功耗方面有明显的优势,并且可以平衡节点能量,{zh1}简单介绍了ZigBee节点的硬件实现。
2000年12月,IEEE 802 无线个域网(WPAN,Wireless Personal Area Network)小组成立,致力于WPAN无线传输协议的建立。2003年12月,IEEE正式发布了该技术物理层和MAC层所采用的标准协议,即IEEE 802.15.4协议标准,作为ZigBee技术的网络层和媒体接入层的标准协议。2004年12月,ZigBee联盟在IEEE 802.15.4 定义的物理层(PHY)和媒体接入层(MAC)的基础上定义了网络层和应用层,正式发布了基于IEEE 802.15.4的ZigBee标准协议。
PHY层的特征是启动和关闭无线收发器、能量检测、链路质量、信道选择、xx信道评估(CCA)以及通过物理媒体对数据包进行发送和接收。MAC层可以实现信标管理、信道接入、时隙管理、发送确认帧、发送连接及断开连接请求,还为应用合适的安全机制提供一些方法。它包含具有时间同步信标的可选超帧结构,采用免碰撞的载波侦听多址访问(CSMA-CA)。安全层主要实现密钥管理、存取等功能。网络层主要用于ZigBee的LR-WPAN网的组网连接、数据管理等。应用框架层主要负责向用户提供简单的应用软件接口(API),包括应用子层支持APS(Application Sub-layer Support)、ZigBee设备对象ZDO(ZigBee Device Object)等,实现应用层对设备的管理,为ZigBee技术的实际应用提供一些应用框架模型等,以便对ZigBee技术的开发应用。
DSDV(destination-sequenced distance-vector)协议是一个基于传统的BellmanFord路由机制的表驱动算法,被认为是最早的无线自组网络路由协议。DSDV在传统的distance-vector算法的基础上采用了序列号机制,用于区分路由的新旧程度,防止distance-vector算法可能产生的路由环路。DSDV采用时间驱动和事件驱动技术控制路由表的传送,即每个移动节点在本地都保留一张路由表,其中包括所有有效目的节点、路由跳数、目的节点路由序列号等信息,目的节点路由序列号用于区别有效和过期的路由信息以避免环路的产生。
AODV在每个中间节点隐式保存了路由请求和应答的结果,并利用扩展环搜索(expanding ring research)的办法限制搜索发现目的节点的范围。AODV支持组播功能,支持QoS,而且AODV使用IP地址,便于同Internet连接。但AODV基于双向信道的假设,路由应答数据包直接沿着路由请求的反方向回溯到源节点,因而不支持单向信道。与DSDV保存完整的路由表不同的是,AODV通过建立按需路由来减少路由广播的次数,这是AODV对DSDV的重要改进。与DSR相比,AODV的好处在于源路由并不需要包括在每一个数据包中,这样会降低路由协议的开销。AODV是一个纯粹的按需路由协议,那些不在路径内的节点不保存路由信息,也不参与路由表的交换。
在ZigBee规范中没有涉及到pl的具体计算方法。pl可通过实际计算收到的信标和数据帧来进行估计,即通过观察帧的响应序列号来检测丢失的帧,这就通常被认为最准确地测量接收概率的方法。但是,对于所有的方法来说,最直接和有效的方法就是基于IEEE 802.15.4 的MAC层和PHY层所提供的每一帧的LQI通过平均所计算的值。即使使用其他方法,最初的成本估计值也是基于平均的LQI值。可以根据驱动函数表来映射平均LQI值与C﹛l﹜值的关系(见表1)。
树型路由机制包括配置树型地址和树型地址的路由。当协调器建立一个新的网络,它将给自己分配网络地址0,网络深度Depth0=0。如果节点(i)想要加入网络,并且与节点(k)连接,那么节点(k)将称为节点(i)的父节点。根据自身的地址Ak和网络深度Depthk,节点(k)将为节点(i)分配网络地址Ai和网络深度Depthi=Depthk+1。网络深度表示仅仅采用父子关系的网络中,一个传送帧传送到ZigBee协调器所传递的最小跳数。ZigBee协调器自身深度为0,而它的子设备深度为1。
在ZigBee规范中提出了将AODV和Tree路由混合的路由机制。但在ZigBee规范中并没有说明如何配置参数来选择路由策略,没有使两者平衡的设计方法。根据上面Tree路由和Z-AODV的分析,我们提出了基于数据特性的路由方法,即在两种路由算法构成的网格型网络中,根据节点间传输数据特性的不同,通过设置数据帧帧头的DiscoverRouter域,选择不同的路由方法。对于捆绑型的连续数据,ZigBee应用层应选择使用使能路由的方法。即采用Z-AODV路由首先建立路由发现,然后选择跳数少的路由,成为{zj0}路径;对于爆发型的不连续数据则使用抑制路由发现的方法,即在路由表中没有响应的目的节点的地址时,采用Tree路由方法。因为这种路由不需要建立路由表,因此对传输的数据响应较快。
Tree路由是一种由网络协调器展开生成树状网络的拓扑结构,适合于节点静止或者移动较少的场合,属于静态路由,不需要存储路由表。树型路由对传输数据包的响应较快,因为树型路由不需要建立路由表。其缺点是所选择的路由并非是{zj0}的路由,不能获得最小路由。树型路由适用于爆发型的数据传输。 图5是模块的硬件框图,射频芯片采用Chipcon公司生产的符合IEEE802.15.4标准的模块CC2420;控制射频芯片的微处理器可以根据需要选择Atmel公司的AVR系列单片机或者Silicon Labs 公司的8051内核单片机。单片机与射频芯片之间通过SPI通信。单片机与外部设备之间通过串口通信,单片机自带若干ADC或者温度传感器,可以实现简单的模数转换或者温度监控。为了方便代码移植到不同的硬件平台,模块固件采用标准C语言编写代码实现。
|