一种基于簇头轮换机制的簇树路由方法及装置与流程

文档序号:11961919阅读:503来源:国知局
一种基于簇头轮换机制的簇树路由方法及装置与流程
本发明涉及一种基于簇头轮换机制的簇树路由方法及装置,属于无线传感器网络传输
技术领域

背景技术
:无线传感器网络是由部署在监测区域内大量的廉价传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的为感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。由于无线传感器网络能量受限,如何延长网络的生命周期是无线传感器网络路由设计的主要目标。目前最具代表性的无线传感器网络路由协议为LEACH,它是由MIT的Heinzelman等人于2000年提出的一种低功耗自适应分簇算法。其基本思想是以回合为单位循环进行簇的重构。每个回合分为簇的建立和数据传输两个阶段。簇的建立分四个步骤,簇头的选择,簇头信息的广播,成员节点的加入和数据传输机制的建立。首先每个节点产生一个0~1之间的随机数,如果某个节点产生的随机数小于所设的阈值T(n),则该节点发布自己是簇头的消息。其它节点根据接收信号的强度加入所从属的簇,然后簇头采用TDMA方式为每个簇成员分配一个传输数据的时隙;最后进入数据传输阶段。在数据传输阶段,成员节点在自己的传输时隙内,将采样数据传送给簇头节点,簇头节点将接收的成员数据进行融合后上传给汇聚节点。数据传输持续一段时间后,网络重新进入簇的建立阶段,即重新选举簇头节点,均衡了网络中节点的能量分布。由于LEACH算法采用了回合机制,平衡了节点能量分布,但它要求每个节点都得能够和汇聚节点直接通讯,显然这对功率有限的传感器节点是不实际的;其次,它的簇头形成是随机的,不能保证簇头分布均匀性。因此LEACH目前仍是理论探讨阶段,很难应用于实际的无线传感器网络,但是,它所提出的簇头轮换机制对实际的无线传感器网络路由协议具有很大的启发指导作用。ZIGBEE簇树路由算法是ZIGBEE规定的两种路由算法之一,是ZIGBEE协议栈付诸实用的无线传感器网络路由协议。它按照单纯的父子关系进行路由选择,即簇树路由算法是基于树形结构中节点间的父子关系进行信息传递的。当有新的节点加入网络时,若网络中的某节点允许它加入网络时,这两节点之间就形成了父子关系。对每个新加入的节点,其父节点为它分配一个唯一的16位网络地址,作为簇树的路由节点标示。ZIGBEE网络中节点有两种类型,一是具有路由功能的全功能节点(FFD),另一个是不具备路由功能的精简节点(RFD)。在信息传输中,路由节点通过信息的目标地址即可知道目标是否为自己的后裔节点,若为后裔节点,则将该信息沿目标所在的分枝分发下去,若不是自己的后裔节点,则将此信息上传给自己的父亲节点。ZIGBEE巧妙地利用了地址编码技术,免去了路由表,算法简单,易于实现。但ZIGBEE簇树路由算法也有很多不足之处:第一,选择路由时没有考虑节点剩余能量,由于路由节点的能耗远大于普通节点,若剩余能量较少的节点充当了路由节点,其能量势必过早消耗殆尽而死亡,使路由树拓扑出现断枝现象,甚至导致网络瘫痪无法运行;第二,没有考虑节点能量负载均衡,一旦一个节点充当了路由节点,那它将成为永久的路由,直至死亡;第三,没有考虑路由节点的均匀分布,路由节点应均匀分布于监控区域,融合后的数据才具有环境参数的代表意义;第四,没有路由节点数量的优化,由于路由节点能耗远大于普通节点,在满足簇树完整的条件下,尽可能地减少路由节点的数量,从而减少网络的总能耗,延长网络生命。技术实现要素:本发明的目的是提供一种基于簇头轮换机制的簇树路由方法及装置,以解决ZIGBEE簇树路由算法中簇头的选取没有考虑路由节点的剩余能量、路由节点数量优化以及路由节点均匀分布的问题。本发明为解决上述技术问题而提供一种基于簇头轮换机制的簇树路由方法(CHRCTP),该方法包括以下步骤:1)以汇聚节点为根节点生成簇树的1跳簇,在1跳簇内选择剩余能量大于设定值的节点作为2跳簇的候选簇头节点;2)从2跳簇的候选簇头节点中找出度数最大的节点作为2跳簇的簇头,节点采用就近加入原则形成2跳簇;3)重复迭代,直到孤立节点集合为空,形成完整的簇树;4)簇树形成后,根据簇头剩余能量对簇头进行轮换,将网络能耗均摊到每个节点。候选簇头接收孤立节点的数量即为候选簇头的度数。候选簇头节点为剩余能量大于一个回合中簇头能耗的节点,即候选簇头节点满足:RHm+1={Ni|Ni(E)>α·Rr·E(H)Ni∈Nm}其中,RHm+1为簇树在第r回合中m+1跳候选簇头集合,Ni(E)为节点Ni的剩余能量,α>1为系数,Rr为第r回合簇树的采样轮数,E(H)为簇头1轮采样能耗预估值,Nm为簇树中m跳节点集合。每个回合簇树的采样轮数Rr为:Rr=Int(E‾rα·E(H))]]>其中Rr为第r回合簇树的采样轮数,为第r个回合簇树重建时的网络节点平均剩余能量,E(H)为簇头1轮采样能耗预估值,α>1为系数,Int为取整运算。当有新节点加入时,新节点以设定的功率发送“Hello”信息,在该新节点功率覆盖范围内的簇头节点接收到“Hello”信息并回送确认信息,新节点根据接收确认信息的信号强度加入到最近的簇,成为该簇的一个簇成员节点。当有节点撤出网络时,需判断该撤出节点是否是路由节点,如不是路由节点,则将其从簇成员表上删除即可。当撤出的节点为路由节点时,则从该节点所在簇内的候选簇头节点中找出度数最大的节点作为代理簇头,并由代理簇头启动路由功能。本发明还提供了一种基于簇头轮换机制的簇树路由装置,该装置包括:以汇聚节点为根节点生成簇树的1跳簇,并在1跳簇内选择剩余能量大于设定值的节点作为2跳簇的候选簇头节点的模块;从2跳簇的候选簇头节点中找出度数最大的节点作为2跳簇的簇头,节点采用就近加入原则形成2跳簇的模块;重复迭代,直到孤立节点集合为空,形成完整簇树的模块;簇树形成后根据簇头剩余能量进行簇头轮换的模块。候选簇头节点为剩余能量大于一个回合中簇头能耗的节点,即候选簇头节点满足:RHm+1={Ni|Ni(E)>α·Rr·E(H)Ni∈Nm}其中,RHm+1为簇树在第r回合中m+1跳候选簇头集合,Ni(E)为节点Ni的剩余能量,α>1为系数,Rr为第r回合簇树的采样轮数,E(H)为簇头1轮采样能耗预估值,Nm为簇树中m跳节点集合。每个回合簇树的采样轮数Rr为:Rr=Int(E‾rα·E(H))]]>其中Rr为第r回合簇树的采样轮数,为第r个回合簇树重建时的网络节点平均剩余能量,E(H)为簇头1轮采样能耗预估值,α>1为系数,Int为取整运算。本发明的有益效果是:本发明以汇聚节点为根节点生成簇树的1跳簇,在1跳簇内选择剩余能量大于设定值的节点作为2跳簇的候选簇头节点;从2跳簇的候选簇头节点中找出度数最大的节点作为2跳簇的簇头,节点采用就近加入原则形成2跳簇;重复迭代,直到孤立节点集合为空,形成完整的簇树;簇树形成后,采用簇头轮换机制,将网络能耗均摊到每个节点。本发明在选取路由节点时既考虑了剩余能量,又考虑了节点的度,使路由节点能够均匀分布于监控区域。此外,本发明还对路由节点的数量进行了优化,在满足簇树完整的条件下,尽可能地减少了路由节点的数量,从而减少了网络的总能耗,延长了网络生命。附图说明图1是传感器网络节点的部署示意图;图2是本发明CHRCTP(ClusterHeadRotationClusterTreeProtocol)簇树的层次关系示意图;图3是网络结构中1跳簇(网路)节点和孤立节点示意图(其中,实心圆点点为已加入网络节点,空心圆点为未加入网络的孤立节点);图4是第八回合中1跳簇已生成,2跳簇尚未生成的网络结构示意图(其中,三角节点为2跳候选簇头节点,实心圆点为1跳簇的普通节点,空心圆点为孤立节点);图5是第八回合中1跳簇内选出的2跳簇簇头的结构示意图(其中,1跳簇内菱形节点为2跳簇簇头,1跳簇内实心圆点为1跳簇普通节点,1跳簇外部实心圆点为2跳簇节点,空心圆点为孤立节点);图6是簇树生长到2跳时的拓扑图;图7是第八回合生成的完整的簇树拓扑图;图8是CHRCTP数据传输过程示意图;图9是CHRCTP簇树重建时序图;图10是新节点加入网络时CHRCTP协议调整后的树拓扑图(其中,星号节点为新加入的节点);图11是节点脱离网路时CHRCTP算法的处理流程图;图12-a是簇头脱网前的簇树结构示意图;图12-b是簇头脱网后的簇树结构示意图;图12-c是CHRCTP协议局部调整后的完整簇树结构示意图;图13是ZIGBEE与CHRTCP首个死亡节点出现时数据采样轮数对比示意图;图14-a是应用CHRCTCP簇树算法的簇头分布示意图;图14-b是应用ZIGBEE簇树算法的簇头分布示意图;图15是ZIGBEE与CHRTCP簇头覆盖率对比示意图;图16是ZIGBEE与CHRTCP网络节点剩余总能量对比示意图;图17是ZIGBEE与CHRTCP30%节点死亡网络时,采样周期对比示意图。具体实施方式下面结合附图对本发明的具体实施方式做进一步的说明。本发明以汇聚节点为根节点生成簇树的1跳簇,在1跳簇内选择剩余能量大于设定值的节点作为2跳簇的候选簇头节点;从2跳簇的候选簇头节点中找出度数最大的节点作为2跳簇的簇头,节点采用就近加入原则形成2跳簇;重复迭代,直到孤立节点集合为空,形成完整的簇树;簇树形成后,采用簇头轮换机制,将网络能耗均摊到每个节点。以一个100m×60m的长方形区域内随机部署大量传感器节点形成无线传感器网络模型为例对本发明的具体实施方式做进一步说明,该网络模型中基站部署在监控区域外部,传感器节点周期性向汇聚节点传送环境数据,如图1所示。其中汇聚节点位于网络外侧,其计算能力和能量不受限制,传感器节点电池供电且发射功率有限,传感器节点数量可动态变化,即允许随时加入或撤出;传感器节点具有相同初始能量,传感器节点的构造相同,即具有相同的发射半径。部署在监控区域的传感器节点有两种状态,一是已经加入到网络,此时传感器节点称为网络节点,二是节点尚未加入到网络,此时传感器节点称为孤立节点。汇聚节点上电后建立网络;传感器节点上电后以适当的功率发送含有剩余能量的“Hello”信息,寻找网络。若汇聚节点在自己的功率覆盖范围内,则加入汇聚节点,若不在自己的功率范围内,则继续发送“Hello”信息。在图1所示的传感器节点布局中,设传感器节点以半径为25m发射功率发送“Hello”信息,与汇聚节点的距离小于25m的传感器节点可以直接和汇聚节点进行通讯,通过握手交互信息后,便加入到汇聚节点,形成1跳簇,如图3所示。图3中圆内的传感器节点已加入到网络之中,为网络节点,其余的传感器节点尚未加入网络,为孤立节点。路由树上每个路由节点称为一个簇头,簇头以及与其直接相连的节点集合称为一个簇。以汇聚节点为根节点形成簇树的第一层,由于第一层中的传感器节点到汇聚节点是一跳的,因此第一层中节点集合称之为1跳簇;随着簇树的生长,可以获得第二层,第三层,亦即获得第二跳簇,第三跳簇等。当簇树形成之后进入数据传输阶段,节点的采样数据从叶节点沿着树枝逐跳回送到汇聚节点。为便于叙述,定义两个符号和其中表示第n个m跳簇,表示第n个m跳簇的簇头。1.根据节点的剩余能量选取候选簇头设WSN的路由树已经生长到m层,且区域内仍存在孤立节点,簇树仍需继续生长,从m层节点中选出一些节点作为簇树生长的候选簇头。设网络运行到第r个回合重新构造簇树时,簇头在一个采样周期中能耗估计值作为E(H),包含Rr个采样周期,簇树中m跳节点集合表示为Nm,则Nm中满足下式的节点作为m+1跳的候选簇头节点,用RHm+1表示。RHm+1={Ni|Ni(E)>α·Rr·E(H)Ni∈Nm}其中,Ni(E)为节点Ni的剩余能量(从Ni的Hello信息帧上下载得到),α>1为权值,Rr为簇树网络在第r回合中的采样周期数。从上式中可以明确看出,只有剩余能量大于一个回合中簇头能耗的节点才能成为簇头。本实例中网络运行到第八回合重建簇树时,1跳簇已生成,2跳簇尚未生成的网络结果如图4所示。2.根据度数从候选簇头中选取簇头当m跳簇形成之后,普通节点进入休眠模式,候选簇头节点启动路由功能,接收区域中孤立节点的Hello信息,候选簇头i接收的孤立节点集合用OPim+1表示,候选簇头将接收的OPim+1信息逐跳上传到汇聚节点。候选簇头接收孤立节点的数量称作为候选簇头的度数。本实施例中汇聚节点利用贪婪算法,根据候选簇头的度,从候选簇头集合中找出下一跳的最佳簇头集合Hm+1。具体过程如下:首先从候选簇头中找出度数最大的候选簇头作为下一跳的簇头,然后从孤立集合中去掉簇头对应的孤立节点,再找出度数最大的候选簇头作为一个簇头,直到2跳孤立节点集合为空。该算法的伪代码如下:本实施例通过上述过程,在第八回合中,1跳簇内选出的2跳簇的簇头如图5所示。3.形成簇成员节点未获得簇头权的候选簇头进入休眠状态,获得簇头权的候选簇头广播簇头信息,节点根据接收信号强度就近加入所从属的簇。本实施例中的网络节点第八回合簇树生长到2跳时的拓扑如图6所示,第八回合生成的完整簇树拓扑如图7所示。簇树形成之后,进入数据传输阶段。在簇树上,无论是成员节点或是簇头节点都要定期采样各自的环境数据并上传至汇聚节点。当簇树稳定工作一段时间后,进入下一回合的簇树重建阶段。若网络要求所有节点每隔Tcycle时间向汇聚节点上传一次环境数据,即网络节点的采样周期为Tcycle。簇中包含的叶子节点集合表示为LNm,路由节点(簇头节点)集合表示为RNm,其中RNm中的节点肩负着m+1跳的簇头。LNm和RNm中的节点在自己的采样时隙内采样环境数据并上传给簇头LNm中节点在上传完数据后进入休眠状态,直到下轮采样数据时唤醒;RNm中节点由于肩负m+1跳簇的簇头,不能休眠。簇头在一个采样周期Tcycle内,除了收集本簇节点数据上传给父亲节点外,还要中转其后代节点的数据。节点数据逐跳上传,直至汇聚节点,图8为CHRCTP路由协议在1个Tcycle内的数据传输示意图,其中实心为路由节点,空心为叶子节点。4.簇树形成后,采用簇头轮换机制,将网络能耗均摊到每个节点。由于簇头节点的能耗远远大于叶子节点,因此簇树稳定运行一段时间后需要更换簇头,进入下一回合的簇树重建。每个回合簇树的重建过程与前面所述的簇树建立过程完全一样。设簇树网络在第r回合中稳定运行Rr个采样周期重新构建簇树,簇树建立过程所需要的时间用Tspanning表示,则簇树重建的时序如图9所示。每个回合簇树的采样轮数Rr为:Rr=Int(E‾rα·E(H))]]>其中Rr为第r回合簇树的采样轮数,为第r个回合簇树重建时的网络节点平均剩余能量,E(H)为簇头1轮采样能耗预估值,α>1为系数,Int为取整运算。可以看出,每回合的数据采样轮数与当时的网络节点平均能量有关,在网络开始时,由于节点能量较大,因此,前几回合的采样轮数也就较多,随着网络的运行,每回合的采样轮数也会越来越小。5.节点的加入在网络运行中,若有节点进入到监控区域,本发明的CHRCTP协议采用就近加入原则,使新节点加入到距离最近的簇头。具体过程如下:节点进入监控区域后以设定的功率发送“Hello”信息,在新节点功率覆盖范围内的簇头节点接收到“Hello”信息后,回送确认信息;新节点根据接收确认信息的信号强度加入到最近的簇头,成为该簇的一个簇成员节点。例如,新节点在网络中运行到第80个采样周期时加入到网络,本发明的CHRCTP协议按照就近原则调整后的簇树拓扑如图10所示。6.节点的撤出在数据传输阶段,簇头若在某个时隙接收不到对应成员k的采样数据,簇头便认为成员k脱离了该簇。当有节点撤出,本发明采用簇树局部调整策略的流程如图11所示,撤出的节点成员k可能是叶子节点,也可能是路由节点,若为叶子节点,簇头从其簇成员表上去掉该撤出节点即可;若为路由节点,此时从本簇内候选簇头节点中找出度数最大的节点作为代理簇头,由该代理簇头启动路由功能。当撤出的节点k为路由节点时,节点k对应簇的叶子节点便成了孤立节点,路由节点变成了孤枝的枝头,孤立节点或孤枝枝头节点发送Hello信息通过发送Hello信息找出最近的簇头加入,等待簇头分配Slot,进入下轮数据采样。例如网络运行到第90个采样周期时,有簇头脱离了网络,CHRCTP协议通过局部调整得到的完整簇树,如图12-a、12-b和12-c所示,其中图12-a为脱网前簇树结构,12-b为脱网后残缺簇树,12-c为CHRCTP协议局部调整后的完整簇树结构。簇头脱网后,上述路由调整有可能出现孤立节点,此时孤立节点只能等到下一回合簇树重新生成时才可再次加入到网络。下面从理论和仿真试验方面对本发明的路由协议的性能进行分析。本发明CHRCTP簇树生成阶段能耗这一阶段传感器节点有普通节点、候选簇节点和簇头节点三种状态。设所有帧长度为Lframe个比特,簇树生成时间为Tspanning秒,簇树深度为M跳。下面分别讨论它们的能耗:1)普通节点能耗:包括发送“Hello”信息能耗、接收簇头广播信息能耗、CPU能耗,因此普通节点Ni的能耗Egeneral为:Egeneral(Ni)=k1·ESendOneBit·Lframe+k2·EReceiveOneBit·Lframe+ICPU·Tspanning其中k1为节点在簇树生成阶段发送“Hello”的次数,k2为能够与节点直接通讯的簇头数。离基站较近的节点较早加入网络,而加入网络后普通节点进入休眠状态,因此,发送“Hello”次数也较少,其CPU能耗也较少。2)候选簇头能耗候选簇头能耗除了包括普通节点能耗外,还包括接收孤立节点的“Hello”信息能耗、将接收的孤立信息发送给父亲节点的能耗和接收父亲节点回送的簇头竞选结果的能耗,因此,候选簇头的能耗E(CH)为:E(CH)=Egenneral(CH)+E1(CH)+E2(CH)+E3(CH)E1(CH)=k·EReceiveOneBit·LframeE2(CH)=ESendOneBit·LframeE3(CH)=EReceiveOneBit·Lframe其中E1(CH)为接收孤立节点的“Hello”能耗,E2(CH)为发送孤立节点信息给父亲节点的能耗,E3(CH)为接收簇头竞选结果能耗,k为候选簇头的度数。3)簇头节点能耗在候选簇头节点能耗基础上,簇头能耗还增加了广播簇头信息能耗、中转后代候选簇头竞争簇头的信息能耗,即簇头节点能耗为:E(Hnm)=E(CH)+E1(Hnm)+E2(Hnm)+E3(Hnm)]]>E1(Hnm)=ESendOneBit·Lframe]]>E2(Hnm)=kch·(EReceiveOneBit+ESendOneBit)]]>E3(Hnm)=kh·(EReceiveOneBit+ESendOneBit)]]>其中kch为簇头后代的候选簇头数,kh为簇头后代的簇头数。CHRCTP数据传输阶段能耗设节点启动传感器采样数据能耗为Esample,采样周期为Tcycle,普通节点在自己的时隙内唤醒采样数据,时隙长度为Tslot,在其它时间处于休眠状态,簇头节点不允许休眠。普通节点能耗包括采样数据能耗、发送数据给父节点能耗、接收父节点确认能耗、CPU唤醒状态能耗和CPU休眠状态能耗。E(Ni)=Esample+ESendOneBit·Lframe+EReceiveOneBit·Lframe+ICPU·TSlot+Isleep(Tcycle-Tslot)簇头节点能耗包括采样数据能耗、接收簇成员数据能耗、回送成员确认能耗、中转后代数据能耗和CPU能耗,即簇头节点能耗为:E(Hnm)=Esample+E1(Hnm)+E3(Hnm)+E3(Hnm)]]>E1(Hnm)=||Cnm||·Lframe·(EReceiveOneBit+ESendOneBit)]]>E2(Hnm)=kh·Lframe·(EReceiveOneBit+ESendOneBit)]]>E3(Hnm)=ICPU·Tcycle]]>其中kh为簇头的后代簇头数。为了进一步验证本发明的性能,下面采用T1公司的CC2530F256片上系统携带DS公司的18B20温度传感器作为传感器节点,利用Matlab软件在同样的条件下仿真本发明的协议和ZIGBEE协议中的簇树协议,所选用的网络参数如下表所示。仿真实验采用的网络参数表参数值参数值网络区域100*60节点数100~500基站位置(0,30)数据帧长度2000b参考芯片CC2530F256参考传感器18B20发送1b能耗1.16×10-4mAs接收1b能耗9.6×10-5mAs初始能量10mAh传感器能耗0.75mAsTcycle120sTslot1sTspanning30sα2在相同的初始条件下,网络节点数分别取100、200、300、400和500,通过仿真发现,首个死亡节点出现时网络运行的采样周期数比较如图13所示,从中可以看出,本发明中首个节点死亡出现的时间晚于ZIGBEE簇树路由算法,其主要原因是本发明采用簇头轮换机制,将网络能耗均摊到了网络中每个节点,而ZIGBEE簇树路由算法在选择簇头时没有考虑节点的能量,一旦某个节点充当了簇头,变成了永久的簇头,直至死亡或脱离。一个分簇机制的WSN中,在没有监控死角的情况下,将监控区域总面积与网络中簇头总数之比成为簇头覆盖率,由于簇头能耗远大于普通节点,在节点发射功率一定的情况下,监控相同的区域,簇头数越少,网络的总能耗就越少,即簇头覆盖率越大,网络能耗越小。当网络节点数为100时,本发明的协议算法得到11个簇头,其分布如图14-a所示;ZIGBEE簇树路由算法得到的25个簇头,其分布图如图14-b所示。在相同条件下,节点数分别取100、200、300、400和500时,仿真CHRCTP协议和ZIGBEE簇树协议,它们的簇头覆盖率对比如图15所示。可以看出,本发明的协议算法簇头覆盖率大于ZIGBEE簇树算法。对于网络的生存周期,采用两个指标进行比对:网络中节点总能量随网络的运行消耗和网络中30%节点死亡时网络运行的采样周期数。在相同条件下,网络节点取100个,本发明的协议算法和ZIGBEE簇树协议算法的网络剩余总能量随网络运行的变化比较如图16所示,从图中可以看出,ZIGBEE簇树路由算法比本发明的路由算法随网络的运行总剩余能量下降速度快很多,原因是ZIGBEE算法中簇头数量多于本发明。在相同条件下,节点数分别取100、200、300、400和500时,本发明的协议算法和ZIGBEE簇树协议算法的网络采样周期对比如图17所示。可以看出,当网络中节点有30%死亡时,本发明的协议算法CHRTCP比ZIGBEE簇树协议运行时间要长,即本发明的协议算法的网络生命周期要比ZIGBEE簇树协议要长,还可以看出,网络中节点数量越多,本发明的协议算法的生命周期就越长,说明本发明的协议算法比ZIGBEE更适合大规模无线传感器网络,簇树协议更节能。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1