新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 利用捎带技术提高ZigBee网络性能的方法

利用捎带技术提高ZigBee网络性能的方法

作者:时间:2008-06-10来源:网络收藏
摘要:对构建低速无线个域网的关键――协议进行深入研究,重点讨论其层所支持的拓扑结构及采用的路由算法。ADOVjr是AODV的简化算法,协议层使用该路由算法架设Adhoc,支持随意的拓扑架构。在深入研究AODVjr的基础上,提出一种将因特网“确认”应用于协议AODVjr路由算法的方案,并使用该方案架设无线传感器网络。实验证明该方案能降低算法实现的复杂度,减少通信量,节约电池能量,有效ZigBee网络的总体,具有一定的实用价值。 DSP2812
关键字:ZigBee协议;;AODVjr

1 引言

IEEE 802.11、蓝牙、UWB等协议推出以来,在短距离的无线监测、控制、数据传输领域得到广泛应用,但它们仍然存在功耗大、组网能力差等弱点。以组网能力强著称的ZigBee协议能弥补上述协议的不足,特别适合于组建短距离低速无线个域网、无线传感器网络等。

ZigBee协议由ZigBee联盟于2004年12月中旬正是推出,其介质访问控制子层(MAC)基于IEEE 802.15.4标准,网络层采用Cluster-Tree+AODVjr路由算法,支持星形(Star)、树状(Cluster-Tree)、网格(Mesh)等多种拓扑结构[1],算法可在简单的单片机平台上实现[2]。其中,单独采用AODVjr(AODV Junior,简化的AODV)路由算法的Mesh网络最为简单,应用较广泛。AODVjr算法是AODV(Ad hoc On Demand Distance Vector, Ad hoc按需距离矢量路由协议)算法的简化,它跟AODV一样,与目标节点通信时,采用先问路由,再发送数据或命令的办法[3,4]。本文提出采用的AODVjr算法,将要发送的数据捎带在AODVjr的路由请求和路由应答包中,大大ZigBee网络的通信效率。DSP2812

2 ZigBee的AODVjr协议

ZigBee协议网络层AODVjr算法是需求驱动型的,由源节点选择路由,它是针对AODV算法的简化改进。考虑到节能、成本、应用方便性等因素,AODVjr简化AODV的一些特点,但是仍然保持AODV的主要功能。

首先,在AODVjr路由算法中,没有目标节点序列号,只有目标节点才能发送路由应答(Route Reply,RREP)包,这样可以避免循环问题和无效RREP包出现,通信效率。其次,AODVjr删除路由错误(Route Error,RERR)包及前驱列表(Precursor List)。另外,为了避免广播风暴,AODV中周期性发送的Hello包也被删除。在ZigBee的集成路由算法中,AODVjr中的许多优点使得路由协议简单化且实现AODV的基本路由功能[5,6]

图1(a)和(b)是AODVjr算法寻找路由的方式。当节点A要发送信息给节点D时,如果发现自己没有到节点D的路由,便通过组播(Multi-Broadcast)路由请求(Route Request,RREQ)包,请求其邻居帮忙查找到节点D的路径。每个接收到RREQ包的节点,都维护一条到节点A的路由信息,同时帮助节点A广播查找节点D。通过这种洪泛(Flooding)方式,RREQ包会被广播转发至节点D。节点D接收到RREQ包后,根据RREQ包的路由代价(Cost)决定是否更新自己的路由表,同时通过路由代价最小的路径给节点A回复RREP包。节点A查找目标节点通常是通过组播进行的,而节点D给节点A回复RREP包则通过单播(Unit-Broadcast)进行的。节点A接收到节点D的RREP包后,根据Cost最小原则决定与节点D通信所走的最佳路径。图1中,节点A查找到节点D的最短路径:A->B->C->D,然后把数据发送给节点D,节点D再通过D->C->B->A给节点A确认信息。

DSP2812

图1 AODVjr算法查找路由及通信方式

在ZigBee协议里,AODVjr的RREQ包和RREP包作为网络层命令传送,成为单独的网络负荷,如图2所示。其中命令标识值等于0x01时是RREQ包,等于0x02时是RREP包;单字节的命令选项只使用一个比特,用于区分该路由包是单独进行路由查找还是进行路由修复(Route Repair)[1]

(a)路由请求包

DSP2812

(b)路由应答包

(c)命令选项

图2 ZigBee网络层的命令包

3 捎带技术在AODVjr的应用

ZigBee网络里的AODVjr属于后应式的按需Ad hoc网络,不周期性地更新自己的路由信息,只有在需要通信时,才发起路由查找过程。在ZigBee网络里,节点会移动或者休眠,通信时几乎每次都要重新查找路由,而每次传输的数据量又比较少,绝大多数情况下只要传送一次即可完成,如获取传感器的值。为了达到节能且降低通信复杂度的目的,可将互联网中常用的“捎带确认”技术应用于ZigBee网络。

所谓“捎带确认”,是指为了提高网络的通信效率,目标节点接收到源节点的数据后,将确认(ACK)信息附加在目标节点发送给源节点的数据包中,由这些数据包捎带给源节点。DSP2812

采用捎带技术后,如图3(a)所示,源节点可以把要发送给目标节点的数据或命令放置在RREQ包后面,成为网络负荷的一部分,由RREQ包传送给目标节点。目标节点接收到RREQ包后,在给源节点回应RREP包之前,处理源节点发送的数据或者命令,将要发送的ACK或者数据由RREP包捎带给源节点,如图3(b)所示。

(a)捎带数据或命令的路由请求包

(b)捎带ACK或数据的路由应答包

(c)改进后的命令选项

图3 采用捎带技术的ZigBee网络层命令包

如图3(c)所示:引进捎带功能后,要修改AODVjr里的命令选项,将保留的7个比特用于表示捎带数据的长度,为0时表示此路由包没有捎带任何数据,是普通的AODVjr路由包。

没有采用捎带技术时,如图1所示,源节点和目标节点之间传输数据需要2个来回;改进后只需要图1(a)、(b)所示的一个来回。由此可见,将数据捎带在路由包中,对于只需通信一次数据就可以传输完毕的情况,能够节省一个来回的时间。这样,网络在通信延迟、节能、效率上都有优化,同时降低通信复杂度。

4 算法的实现

4.1 协议栈

采用捎带技术的ZigBee协议栈有3层,其体系结构如图4所示。协议栈参考ZigBee网络的结构,物理层和介质访问控制层采用IEEE 802.15.4协议,网络层仅使用捎带技术的AODVjr路由算法,通过应用支持子层与应用层建立联系。该协议栈简单、实用、高效。

图4 采用捎带技术的ZigBee协议栈

4.2 路由设计与实现

(a)目标节点接收到RREQ包

(b)源节点接收到RREP包

图5 目标节点和源节点处理RREQ和RREP流程

采用捎带技术后,对算法复杂度的影响不大。只要稍微改动源节点和目标节点发送以及接收RREQ包和RREP包的程序即可,中间节点仍按普通的AODVjr包处理数据。

图5是目标节点和源节点处理RREQ包和RREP包的程序流程,从中可以看出,捎带技术并没有增加算法实现的复杂度。作者在美国赫立讯公司的IP-Link122x系列模块中使用Keil C编程,实现使用捎带技术的ZigBee网络。该模块通过美国FCC认证,经过ZigBee联盟指定的德国莱茵TUV ZigBee实验室一致性测试,是符合IEEE 802.15.4标准和ZigBee协议的模块。本文算法运行在模块自带的嵌入式芯片――Silicon Laboratories公司的8051内核MCU上,采用Chipcon AS公司的射频芯片CC2420收发数据。

5 实验结果

研发过程中,可以使用Chipcon AS公司的IEEE 802.15.4包监听器(Packet Sniffer)分析空气中传送的数据包,对不同节点数目的Ad hoc进行测试,可取得良好的结果。

实验中,采用Mesh拓扑,50个节点组成的ZigBee网络随意分布在三层楼中,采用对等连接方式,仅使用AODVjr路由算法。两个节点通信的平均传输延迟及成功率,采用捎带技术前后质量对比如表1所示。从表1可知,传输延迟时间可以减少很多,且成功率有一定的提高。证明本文提出的网络结构及软硬件设计的可行性。

表1 采用捎带技术前后的通信质量对比

节点间跳数

延迟/ms

(使用前)

延迟/ms

(使用后)

成功率/%

(使用前)

成功率/%

(使用后)

2

132

82

99.9

99.9

4

221

155

99.2

99.8

6

490

300

98.7

99.3

8

623

389

96.3

99.0

10

870

533

95.9

98.2

12

1108

612

95.2

98.0

14

1302

703

94.7

97.7

16

1536

834

94.3

97.3

18

1787

965

93.3

96.6

20

2110

1164

92.8

96.1

6 结论

本文提出采用捎带技术的AODVjr算法,同时给出简化的ZigBee协议体系结构,并在硬件平台上实现该方案。实践证明,采用捎带技术能降低算法实现的复杂度,减少通信量,节约电池能量,有效提高ZigBee网络的总体。本还可以在其他使用AODV算法的网络中推广,具有一定的实用价值。DSP2812开发板

参考文献

[1] Zigbee Alliance. ZigBee Specification (Version 1.1)[S]. 2006.

[2] 张成武,谭斌.单片机Zigbee技术在远程抄表系统中的应用[J].微计算机信息,DSP2812开发板2006:22(32):96-98.

[3] RFC 3561:Ad hoc On-Demand Distance Vector (AODV) Routing[S].2003.http://www.51kaifa.com/shop/read.php?ID=4732

[4]Mobility Management and Networking (MOMENT) Laboratory. Ad hoc On-Demand Distance Vector Routing[EB/OL].http://moment.cs.ucsb.edu/AODV/aodv.html, 2007-4-2.

[5]Ian D. Chakeres, Luke Klein-Verndt. AODVjr,AODV Simplified[J]. Mobile Computing and Communication Review,2002,6(3):100-101.http://www.51kaifa.com/shop/read.php?ID=4732

[6]Qiu F., Wang J-M., Leng J. "Design and Implementation of a Wireless Personal Area Network Based on AODVjr Routing" in Wireless MobileMultimedia Networks (ICWMMN) Proceedings[C].Beijing:The Institution of Engineering and Technology,London(IET),2006:424-427.



评论


相关推荐

技术专区

关闭