1 ZigBee协议栈
ZigBee标准采用分层结构,根据开放式通信系统互联模型,从上往下具有物理层、数据链路层、网络层、应用支持子层和应用层。从网络层以上的协议有ZigBee联盟制定,IEEES02.15.4标准定义物理层和数据链路层。
1.1 物理层(PHY)
物理层是协议层的最底层,主要工作是要启动与关闭无线传输接收器、传输与接收数据、使用频道的选择、在目前频道上做讯号能量侦测、数据调变传输与接收解调、空闲频道评估(CCA)和针对接收的封包执行链路品质指示(LQI)。
IEEE802.15.4定义了两个物理层标准,分别是2.4 GHz和868/915 MHz物理层。2.4 GHz的物理层通过采用16相调制技术,能够提供250 kbps的传输速率。868 MHz的传输速率为20 kbps,916 MHz上的传输速率则是40 kbps。
物理层提供两个服务:数据服务和管理服务。数据服务:在物理无线信道上接受和发送物理协议数据单元。管理服务:维护一个由物理层相关数据组成的数据库。
物理层负责下面的任务:
(1)无线收发信机的激活和去激活。
(2)在当前信道上的能量检测。
(3)链路质量指示,用在接受的数据包上。
(4)清除信道估计算法用在CSMA/CA技术中。
(5)信道频率选择。
(6)信道数据的接受。
1.2 数据链路层(MAC)
物理层之上的数据链路层基于物理层所提供的服务,负责设备间无线数据链路的建立,维护和结束,确认模式的帧传送与接受,信道接入控制,帧校验,预留时隙管理和广播信息管理。IEEE802.15.4的MAC层可足够灵活地来处理这些数据通信。MAC层有两种信道访问机制:无标识网络和标识使能网络。无标识网络节点成功接受到信息包后能产生一个积极的回应。标识使能网络采用超帧结构,这一方面为了有专用的带宽和低的反应时间,另一方面可通过网络协调器设定在预定时间间隔内传输标识。
MAC层使用标识使能来处理周期性数据,当有标识使能时,传感节点会被唤醒来检测信息,然后再返回睡眠状态。间歇性数据可以在无标识网络中被处理或是以不连贯的方式被处理。当以不连贯方式处理时,通信需要在能节约大量能量的情况下,设备才加入网络。低反应时间操作可用于保证时间分割(GTS)操作中。GTS是高服务质量的一种方法,它允许每个设备有一个特定的时间间隔,这样每个超帧就可以自由传输而不需要反应和争抢。
1.3 网络层
物理层上面的网络层由ZigBee标准规定,它确保正确的操作IEEES02.15.4MAC子层和应用层提供服务接口。网络层为应用层提供两种服务实体:数据实体和管理实体。网络层数据实体通过提供数据传输服务,网络层管理实体通过提供管理服务,同时,利用来完成一些管理任务,负责维护网络数据。
ZigBee提供了:星形网络、树状网络和网状网络三种拓扑结构。
(1)星型网络配置包含了一个ZigBee协调器节点和一个或更多的终端设备。在星型网络中,所有的终端设备都只与协调器通信。如果某个终端设备需要传输数据到另一个终端设备,它会把数据发送给协调器,然后协调器依次将数据转发到目标接收器终端设备。
(2)树状网络,在这种配置下,终端设备可以选择加入ZigBee协调器或者ZigBee路由器。路由器提供两种功能的服务。一是为整个网络增加可能的节点数。二是扩展网络覆盖的物理范围。有了路由器以后,终端设备不需要在协调器的射频范围内,也可以加入网络。在树状网络中,所有的信息都由树节点来组织路由。
(3)网状网类似于树状网络配置,只是FFD可以直接把消息发送给其他的FFD而不用沿着树来传输。来自RFD的消息依然要通过它的父节点来转发。网状网络拓扑的优势在于减少了消息传输的时延并且增加了可靠性。1.4 应用层
ZigBee应用层由三个部分组成,APS子层、ZDO(包含ZDO管理平台)和制造商定义的应用对象。其中,APS提供了这样的接口:在NwK层和APL层之间,从ZDO到供应商的应用对象的通用服务集。这服务由两个实体实现:APS数据实体(APSDE)和APS管理实体(APSME);ZigBee设备对象(ZDO),描述了一个基本的功能函数,这个功能在应用对象、设备profile和APS之间的提供了一个接口。ZDO位于应用框架和应用支持子层之间。
每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。设备是由模板定义的,并以应用对象的形式实现。每个应用对象通过一个端点连接到ZigBee堆栈的余下部分它们都是器件中可寻址的组件。ZigBee应用层目前只定义编号1~240的240个应用对象,而241~254则是保留予未来使用。另外,编号0与编号255是给予其他方面使用。ZigBee应用层的通讯基础是由ZigBee产品供应商发展的模板所构成,某一模板提供对ZigBee特定应用技术需求的解决方案。
2 路由算法
由ZigBee联盟发布的ZigBee协议的标准中,网络层通过两种路由协议相互补充进行路由的发现与数据的转发。这两种路由协议分别是按需路由协议AODV和基于分簇的Cluster-Tree协议。树型路由适用于节点静止或者移动较少的场合,属于静态路由,不需要路由表,节省存储资源,对于传输数据包的响应较快,但缺点是很不灵活,浪费了大量的地址空间,并且路由效率低。AODV协议主要适用于动态变化的网络环境中,通过路由请求、路由回复等机制每次都能发现最新的转发路径。但是在有的无线传感器网络中,节点被部署之后一般都不再发生移动,网络拓扑的变化也很缓慢,各个传感器节点只要把采集到的数据发送给汇聚点。而相互之间不需要进行通信。在这样的情况下,AODV协议就显得太过复杂。因此,许多从事ZigBee技术的研究人员都提出相应的Cluster-Tree,AODV改进算法,下面对几种改进算法进行简单阐述。
(1)AODVjr是一种简化版本的AODV,主要是考虑到ZigBee无线传感器网络的电池能量有限性、应用方便性等因素,而简化了AODV的一些特点。
(2)为使簇树路由算法在缩短时延方面有更好的效果,应该考虑邻居节点和选择下一跳节点是到目的节点的最短路径的节点,这是基于Greedy算法的想法,提出了改进的Cluster-Tree算法。
(3)针对ZigBee网络的Cluster-Tree算法对簇首能量要求高及节点问非最佳路由的问题,提出了Cluster-Tree路由改进算法,对簇首的选择必须考虑到节点的剩余能量,并结合AODVjr算法来降低路由距离,进而减少转发数据的能量损耗。
(4)通过研究ZigBee协议网络层的路由算法,分析了树型路由算法和AODVjr路由算法,并在此基础上对树型路由算法提出了一种改进算法(ITRA),该改进算法将节点分为两类:一类是具有足够的存储空间和能力执行AODVljr路由协议的节点,另一类是指存储空间受限,不具有执行AODVjr路由协议能力的节点,改善了原有树型算法的路由效率低问题和避免AODVjr算法的能量消耗和路由表问题。
(5)文中分析了无线传感器网络的特点和ZigBee协议中的Cluster-Tree路由算法,对其中的分簇方法进行了研究,在此算法的基础上,利用节点的深度信息对算法进行了简化,并考虑了能量均衡利用的问题,以实现延长网络生存周期的目的。改进后的算法在延长网络生存期方面比LEACH有很大提高。
(6)针对ZigBee网络簇树拓扑结构的不足,新的算法在选择父节点时综合考虑节点的深度、能量和负载情况,使簇树结构有助于减少数据转发跳数,并在负载均衡方面更加优化。新策略在优化簇树结构的基础上,充分利用本地信息和簇树结构对ZBR策略进行改进。仿真实验验证,改进策略能有效减少网络能耗,均衡网络负载,最大化网络的生存时间。
(7)针对网络随着载荷增加,数据包碰撞概率增大的情况,提出一种频点分配算法FFD。该算法以点着色理论为基础,结合功率控制,采用分布控制方式,使不同分簇内部采用不同的频点通信,以避免簇间干扰,降低碰撞概率。而簇内通信使用小功率,使节点特别是簇头能量得到有效利用。
3 ZigBee应用
ZigBee技术主要是嵌入在消费性电子设备、家庭和建筑物自动化设备、工业控制装置、电脑外设、医用传感器、玩具和游戏机等设备中,支持小范围的基于无线通信的控制和自动化等领域中。ZigBee联盟预测的主要应用领域包括工业控制、消费性电子设备、汽车自动化、农业自动化和医用设备控制等。
通常,符合如下条件之一的应用,就可以考虑采用ZigBee技术做无线传输:
(1)设备成本很低,传输的数据量很小;
(2)设备体积很小,不便放置较大的充电电池或者电源模块;
(3)没有充足的电力支持,只能使用一次性电池;
(4)频繁地更换电池或者反复地充电无法做到或者很困难;
(5)需要较大范围的通信覆盖,网络中的设备非常多,但仅用于监测或控制。
4 小结
本文介绍了ZigBee技术的优点,协议栈各个层的功能,针对ZigBee低能耗问题,简单介绍了几种改进的路由算法,并简单介绍了ZigBee的应用。