发布时间:2014-09-30所属分类:科技论文浏览:1次
摘 要: 摘要:在传统的无线网络中,优异的服务质量和带宽的高效利用是路由协议追求的目标,但是这是基于传统的无线网络中的Hoc通常是有源供电的,不需要考虑能量耗尽的问题。但是在WSN中,传感器节点的电源模块一般都是体积较小的锂电池,能量是极其有限的,怎么样
摘要:在传统的无线网络中,优异的服务质量和带宽的高效利用是路由协议追求的目标,但是这是基于传统的无线网络中的Hoc通常是有源供电的,不需要考虑能量耗尽的问题。但是在WSN中,传感器节点的电源模块一般都是体积较小的锂电池,能量是极其有限的,怎么样在有限的能量供应下最大程度地延长系统的工作时间是路由协议中需要重点考虑的问题。相较于传统的无线网络,路由协议在WSN中具备下面六个特点。
能量优先、基于局部的拓扑信息、以数据为中心、自组织特性、数据聚合特性、应用相关。
WSN中的路由协议会依据网络的拓扑结构的不同而不同,而网络的拓扑结构会根据实际系统中的应用而改变。本文的长链式路由协议的应用十分广泛,如在电力系统的高压开关柜进行温度监测时,可以根据街道上高压开关柜的分布情况划分成多个链式的监控支路。沿铁道线或者公路线进行环境的监控也可以利用此链路结构。本文重点探讨在长链式路由协议的实现过程中的几个关键问题。
1 长链式路由协议简介
1.1 长链式网络结构
本文的长链式路由协议是根据图1所示的网络结构提出的。
在图示的网络中共有三种无线设备:汇聚终端、通信节点和采集节点。汇聚终端负责对整条链路进行控制,并且通过串口与上位机进行通信,通信节点控制采集节点进行数据的采集。通信节点会把采集节点采集的数据逐跳地发送给汇聚终端。
1.2 长链式路由协议工作原理概述
网络的工作分成四个过程:数据采集过程、链路建立过程、数据汇集过程和数据上传过程。
(1)数据采集过程。由采集节点启动。采集节点醒来后,采集数据,并发给同编号的通信节点,然后接收通信节点的确认信号和控制命令(主要是下次数据采集的时间间隔即睡眠时间)。
(2)链路建立过程。由汇聚终端启动。在设定的数据汇集时间到来的时候,汇聚终端发送链路建立命令给最小编号的相邻节点,并依次传递,直到编号最大的节点。不能通信的节点被越过,一个可以正常通信的链路被建立起来。每个节点都会记录已经建立链路的前后相邻节点编号,从而形成本次建立的链路的记录。后续的数据汇集过程将沿着本次建立的链路反向传回汇聚终端。
如果汇聚终端有一条以上采集链路,则轮流在采集支路上发送链路建立命令。
(3)数据汇集过程。当链路建立命令传送到采集支路的最后一个节点后,此节点启动数据汇集过程,沿着本次建立的链路逆序传向汇聚终端的方向。每个通信节点在收到汇聚过程的数据包后,都会把自己采集的数据附在数据包的尾部,再接力传向汇聚终端方向。
(4)数据上传过程。由汇聚终端启动,通过串口把采集的所有数据一次传输给上位机。此过程不涉及本文的协议核心部分。具体执行过程不再讨论。
2 长链式路由协议实现中的关键问题
2.1 数据采集过程的时间同步问题
采集节点初始化后首先按照5分钟一次主动发送数据给相同编号的通信节点,并要求通信节点给予确认并下达控制命令。子网初始化后,通信节点会把采集间隔等参数在下一个采集过程的通信中发送给采集节点。
采集节点发送数据给通信节点时,如果连续5次通信不成功,则放弃本次数据采集过程进入休眠状态,等待下一次数据采集过程的时间到来,若连续6个采集过程无法与通信节点取得联系,则主动把数据采集时间间隔设为120分钟。这样做,一方面可以保证采集节点先开机或通信节点暂时故障或者信道短期出现强干扰的情况下,采集节点可以减少醒来的次数以节省电量;另一方面,在上述问题得到解决后仍可以在最长两个小时的时间后自动回复到正常工作状态。
通信节点在收到汇聚终端传来的链路建立命令后,记录收到命令的时刻TCommand和命令中的数据采集时间间隔Interval。若在TAquisition时刻采集节点报送数据,通信节点就把再次醒来的时间延迟Delay发送给采集节点。
Delay=[Interval-Mod(TAquisition-TCommand,Interval)]-[Mod(N,10)+1]该计算式中,右边第一项是为了保证通信节点在收到一次链路建立命令后,后续的命令收不到的情况下,仍然可以规范采集节点的数据采集时间。右边第二项是为了使相邻的节点不在相同的时间进行数据采集,以避免有可能的相互干扰。
同时为了使采集节点和通信节点成功通信一次,而后面无法正常通信的情况下,采集节点仍然按照固定的采集时间间隔醒来,通信节点的每次发送确认帧时还把Interval的值发送给采集节点。采集节点从收到通信节点的确认帧,到随后第一次醒来的时间延迟,是根据确认帧中的时间延迟值计时。若随后节点醒来不能与通信节点取得联系,则根据原来接收的Interval值进行定时。这样可以保证通信节点和采集节点在不能正确通信的情况下不会打乱采集节点的休眠规律。
2.2 链路建立过程的通信过程 链路建立过程由汇聚终端启动。汇聚终端产生链路建立命令帧,并送往1号节点。命令帧带有源节点和目的节点编号,及采集时间间隔和采集支路总的节点数据,只有目的节点会接收。1号节点产生新的命令帧,送往下一个节点,以此类推,直到最后一个节点。最后一个节点收到命令帧后,产生数据帧,并启动数据汇聚过程,根据链路建立过程产生的路径,逆向传回汇聚终端。
如果链路建立过程中某节点暂时失效,或者由于信道干扰无法成功通信,则本次链路建立过程将越过此节点。如果3号通信节点无法正常工作,则2号通信节点无法联系上3号通信节点,将尝试联系4号通信节点,如果4号节点也无法正常工作,则尝试联系5号节点,以此类推。
连接成功的节点号被记录在本节点,同时,链路建立命令由哪个节点发过来也会被记录,这样整个链路建立过程经过的节点组成的临时传输路径被分布记录,并用于随后的数据汇集过程。
在链路建立过程中,如果N节点与N+1节点通信不成功,则延迟LinkCreatDelay后再次试着通信,重复LinkCreatRepeat次后仍不成功则放弃。然后与N+1节点通信,依次类推。如果与N+MaxNeigh
bors仍然无法通信,则认为链路出现故障,把自己作为此次通信的最后一个节点,产生数据汇集过程数据帧,并启动数据汇集过程。
LinkCreatDelay的设置是根据数据采集过程传输的最大时间需求确定。链路建立过程中N节点与N+X节点通信不成功最大的可能是与N+X节点的数据采集过程冲突。考虑到数据的实时性,数据采集过程优先,采集节点发送不成功立即重发,重发次数为5。而链路建立过程在应该让出5+1次重复采集数据传输的时间后再尝试新的连接。
LinkCreatRepeat可以设置为3-5。
MaxNeighbors的值可设置为3-5。这个值要根据射频芯片的传输距离以及通信节点的间隔距离综合决定。
2.3 数据汇集过程的时间同步
数据汇集过程是这一个工作周期的最后一个阶段,是链路建立过程的逆过程。在链路建立过程中,每一个成功传递过链路建立命令的通信节点都保存了其前面一个通信节点的地址UPADDRESS和后面一个通信节点的地址DOWNADDRESS。当链路建立命令传递到最后一个通信节点,该通信节点完成数据采集阶段后,就产生数据汇集命令帧,并且启动数据汇集过程。
数据汇集过程是链路建立过程的逆过程,不需要再对链路进行处理。但是也有可能链路建立过程建好的链路在随后的数据汇集过程中出现中断。为避免数据汇集和随后的链路建立过程相冲突,通信节点在数据汇集过程中按照以下方式进行处理。
节点N在把链路建立命令传送到节点N+X后,即等待N+X节点的数据汇集命令帧。当收到数据汇集命令帧时,记录当前时间TCurrent,并计算TCurrent-TCommand>Interval-11s?
其中TCommand是收到链路建立命令的时间,Interval是系统休眠时间。
如果计算结果为假说明即将开始下一轮数据采集和数据传输过程,通信节点N不再转发数据汇集命令帧,以防和数据采集过程及下一轮的链路建立过程冲突。公式中右边加入的11s是为了避开采集节点提前开始采集的最大时间10s。
如果计算结果为真,则立即将数据汇集命令帧传送给有效链路中的N-X节点。
3 长链式路由协议数据帧格式简介
由于需要传输的数据不同,各个过程使用的数据帧格式也不同。数据采集过程中的发送帧和确认帧格式都比较简单这里就不做介绍了。重点解释一下链路建立过程请求帧,帧格式如下表1。
在该命令帧中,Syn是同步字;Bran是采集支路编号,半个字节;Sty是帧类型,1个字节;Sor是发送请求帧节点编号,1个字节;Dest接收请求帧节点编号,1个字节;N是本采集支路最大节点编号,1个字节;Req是链路建立请求帧发送轮次,1个字节,设置该参数的主要目的有两个。
(1)通信节点N发送命令给通信节点N+1,通信节点N+1正确接收了并且回复了确认信号,但通信节点N没有收到,于是重复发送链路建立命令。这种情况下,若N+1判断是同一轮次的链路建立命令,则不进行重复处理(因为链路建立命令已经转发),只是再次向N节点发送确认信号。
(2)通信节点N重复发送链路建立命令给通信节点N+3,但是N+3节点仅最后一次正确接收了,且回复了确认信号给N节点,但是,由于信道临时的干扰,N节点并没有接收到确认信号,于是把自己作为最后一个节点,启动了数据汇集过程。这种情况下,N+1及后面的通信节点很可能随后再把数据汇集帧发送给N节点,造成混乱。解决方法是:N节点启动数据汇集过程后,即把Req加1,随后凡是与Req不相符的数据汇集帧不再响应。
4 结语
本文根据长链式网络结构的规律设计了一种长链式的路由协议,首先简单介绍了本协议的应用场景和工作原理。重点对长链式路由协议中的几个关键问题进行了探讨,并且给出了优良的解决方案。本协议可以实现数据的远距离传输,而且具有较低的功耗,适合大规模使用。
SCISSCIAHCI