魏增辉,史兆强
(1.黄河水利职业技术学院,河南 开封 475004;2.河南机电高等专科学校,河南 新乡 453003)
嵌入式技术、传感器技术和无线通信技术等技术不断发展,推动了低功耗智能化传感器的快速发展,使信息采集、数据处理和无线通信等多种功能在微小体积内能够实现。 无线传感器网络就是由部署在监测区域范围内大量的微型无线传感器节点组成,通过无线通信方式形成的一个多跳的自组织网络系统。 无线传感器节点体积微小,携带电能有限,并且大量节点分布在周围复杂,甚至人员不可到达的区域。 因此,如何高效使用能量,最大限度地维持网络生存时间,成为无线传感器网络面临的首要挑战。
无线传感器网络通常包括传感器节点、汇聚节点和管理节点[1]。 大量传感器节点布置在监测区域内,各个节点通过自组方式构成网络,每一个节点检测到的数据沿着其他传感器节点逐一跳动传输。在传输过程中,监测数据可能被多个节点处理,经过多次跳动后,达到汇聚节点,最后通过互联网或卫星到达管理节点。 用户通过管理节点,对传感器网络进行配置和管理,发布监测任务,收集监测信息。图1 为无线传感器的网络体系结构。
传感器节点有传感器模块、处理器模块、无线通信模块和能量供给模块4 部分组成。 传感器模块负责将监测区域内的物理量信息(如温度、湿度等)转换成数字量信息;处理模块负责整个传感器节点的操作,处理和存储本节点的信息,或者转发其他节点的数据;无线通信模块负责与其他节点进行无线通信,交换控制或者数据信息;能量供给模块为传感器节点提供必要的能量,通常采用微型电池。 传感器节点不仅是数据处理的终端,还具有路由的功能。 因此,结合具体应用,设计良好的网络拓扑结构,对于节约传感器节点能量,最大限度地延长网络生存时间,显得至关重要。
图1 无线传感器的网络体系结构Fig.1 Wireless sensor network system structure
在无线传感器网络中,拓扑结构主要有两种结构形式:平面结构(a)和分簇结构(b)。 如图2 所示。
图2 无线传感器的网络拓扑结构Fig.2 Wireless sensor network topology structure
在平面结构当中,所有节点的地位平等,源节点和目的节点之间往往存在多条路径,网络负荷由这些路径共同承担,一般情况下不存在瓶颈,网络比较健壮。 但是,在节点特别多的情况下,平面型的网络结构在节点组织,路由建立、控制与维持的报文方面会占用很大的带宽。 这影响网络传输速率的同时,也使得网络节点能耗比较高,在严重情况下,甚至会造成网络瘫痪。 因此,平面结构一般用于网络规模比较小的无线传感器网络中。
为了解决平面结构中网络堵塞问题,节约整体能耗,可以采用分簇结构[2]。 在分簇结构中,网络被划分为多个簇,每个簇由一个簇头和多个簇成员组成。 簇头负责簇间信息传输,簇成员只负责数据的采集。 传感器节点的无线通信模块在空闲状态时的能量消耗与在收发状态下相当,所以,在节点空闲时,关闭通信模块,能够大幅度降低无线通信的能量消耗,从而降低节点能耗,延长网络生命周期。 分簇结构正是基于此种考虑,依据一定的机制,选择某些节点作为簇头节点,打开其通信模块,并关闭非簇头节点的通信模块,由簇头节点构成一个连通网络,负责网络数据的转发。
分簇结构的无线传感器网络,簇头节点需要协调簇内节点的工作,负责数据融合和转发,能量消耗相对较大。 所以,通常采用分簇算法周期性地选择簇头节点的做法,以均衡网络中节点的能量消耗[3]。
LEACH 自适应分簇算法分为簇建立阶段和稳定的数据通信阶段,并且这两个过程是周期性循环进行的。 在簇建立阶段,相邻节点在一定的发射功率控制下动态地形成簇,随机产生簇头。 在数据通信阶段,簇内节点把数据发送给簇头,簇头进行数据融合,并把结果发送给汇聚节点。 为了降低开销,数据通信阶段都比簇建立阶段要长。 LEACH 算法能够保证各节点等概率地担任簇头,使得网络中节点相对均衡地消耗能量。 LEACH 算法时序如图3所示:
图3 LEACH 算法时序图Fig.3 LEACH algorithm
2.1.1 簇建立阶段
LEACH 算法中的簇划分采用分布式划分法,所有传感器节点只通过本地信息,不需要任何中心的控制信息。 簇头选取过程为:节点产生一个0~1 之间的随机数,如果这个数小于阀值S(n),则发布自己为簇头的公告信息。 在一个循环周期内,如果节点已经当选过簇头,则把S(n)设置为0,这样该节点就不会再次当选为簇头; 如果节点未当选过簇头,则将以S(n)的概率当选。 随着当选过簇头的节点数目的增加,剩余节点当选簇头的阀值S(n)随之增大,节点产生小于S(n)的随机数的概率随之增大,所以节点当选为簇头的概率逐步增大。 当只剩下一个节点未当选时,S(n)=1,表示这个节点一定当选。 S(n)可表示为
式中:P 是簇头在所有节点中所占的百分比;r是簇头选举轮数;rmod(1/P)代表这轮循环中当选过簇头的节点个数;G 是这一轮循环中未当选过簇头的节点的集合。
节点当选簇头以后,簇头节点使用CSMA 争用型MAC 协议广播公告信息,告知其他节点,自己在本轮被选举为新簇头。 由于簇头节点在发布公告信息时都使用相同的发射功率,所有非簇头节点在这个时间段均处于接收模式,可以侦听所有簇头节点的公告信息[4]。 非簇头节点根据与簇头之间的距离来决定加入哪个簇,并告知该簇头。 当簇头接收到所有加入信息后,基于簇内成员节点的数量产生一个TDMA 传输时间安排消息,并且通知该簇中的所有节点,以让簇内节点知道什么时候可以发送数据。为了避免附近簇的信号干扰,簇头可以决定本簇中所有节点所用的CDMA 编码[5]。 这个用于当前阶段的CDMA 编码连同TDMA 消息一起发送。当簇内节点收到这个消息后,它们就会在各自的时间槽内发送数据。 经过一定时间的数据传输,簇头节点收齐簇内节点发送的数据后,就运行数据融合算法来处理数据,并将结果直接发送给汇聚节点。
2.1.2 数据通信阶段
当簇内节点接收到簇头发布的TDMA 消息后,就开始进入稳定的数据通信阶段。 非簇头节点在分配给它们的时间内发送数据给簇头节点,且使用最小的能量发送(由于选择簇头基于最大的信号强度)。每个簇头节点在不属于自己的发送时段可以关闭电台,以减少能量消耗。 簇头节点必须保持接收器工作,以便接收簇内节点发送来的数据。 当所有数据接收完毕时,簇头节点就启动信号处理功能,将数据压缩为单一信号。 例如,如果数据是温度和湿度信号,簇头节点进行数据融合,将单个信号合成组合信号。 这个综合信号被发送给汇聚节点,并由汇聚节点转发给互联网和移动网用户。
由于LEACH 算法中簇头的选举方法没有考虑节点的具体地理位置,所以不能保证簇头均匀地分布在整个网络中。 在LEACH 算法基础上,HEED 算法针对LEACH 算法的这一问题进行了改进。 它以簇内平均可达能量作为衡量簇内通信成本的标准。节点以不同的初始概率发送竞争消息,节点的初始化概率CHprob根据公式(2)确定。
式中: Cprob和Pmin是整个网络统一的参量,它们影响算法的收敛速度,通常Pmin=10-4、Cprob=5%;Eresidsnt/Emax代表节点剩余能量与初始化能量的百分比。
簇头竞选成功后,其他节点根据在竞争阶段收集到的信息,选择加入的簇。
HEED 算法在簇头选择标准及簇头竞争机制上与LEACH 算法不同,簇建立速度有一定提升。 考虑到簇内通信的消耗,它把节点剩余能量作为一个参量引入算法,使得选出的簇头更适合担当数据转发任务,全网能量消耗更均匀、更低。
LEACH 算法作为层次型的网络拓扑结构,通过自适应分簇算法,由簇头节点承担数据融合的任务,减少了数据通信量。 分簇式的网络拓扑结构有利于分布式算法的应用,适合于大规模无线传感器网络的部署。 由于大部分节点在相当长时间内关闭通信模块,所以它显著地延长了整个网络的生存时间。而HEED 算法作为LEACH 算法的改进算法,使得网络拓扑结构更趋合理,全网能耗更加降低。
[1] 崔逊学.无线传感器网络简明教程[M]. 北京:清华大学出版社,2009:3.
[2] 朱祥贤.无线传感器网络的体系结构与关键技术[J].数字技术及应用,2009(11);29-30.
[3] 赵继军.无线传感器网络数据融合体系结构综述[J],传感器与微系统。 2009(10):7-10.
[4] 邬正义.现代无线通信技术[M] 北京:高等教育出版社,2006:40-51.
[5] 赵明. 一种无线传感器网络节点设计和通信协议研究[J].仪器仪表学报,2005(S2):638-640.