一种针对目标检测的无线传感器网络分布式分簇和休眠调度方法

文档序号:8384391阅读:628来源:国知局
一种针对目标检测的无线传感器网络分布式分簇和休眠调度方法
【技术领域】
[0001]本发明属于无线传感器网络协议技术领域,具体涉及一种分簇无线传感器网络中面向目标检测的休眠调度方法。该方法主要用于优化无线传感器网络中基于目标检测和数据传输两项任务的休眠调度,以达到改善端到端分组投递延迟特性的目的。
【背景技术】
[0002]近年来无线传感器网络从得到理论和工业界的广泛关注以来得到了迅猛的发展,各种关于无线传感器网络的新技术也备受重视。
[0003]无线传感器网络通常由无线传感器节点(sensor node)和汇聚节点(Sink node)组成。传感节点需要周期性的采样环境信息或检测目标事件,若检测到目标事件发生,则需要快速的向Sink汇报。
[0004]无线传感器节点通常自身能量有限,同时受到节点工作环境的限制,很难更换电池或充电,因此节能问题在无线传感器网络的相关技术中处于重要地位。休眠技术可以大大节省节点能耗、延长节点寿命。原因如下:节点的状态包括发射(transmit)、接收(receive)、空闲(idle)、睡眠(sle印)四种状态。大量已有无线传感器节点设备参数显示,前三种状态下的节点能耗显著高于睡眠状态下的节点能耗。因此,如何有效鼓励节点进入休眠状态,并保持良好的网络性能是无线传感器网络设计的重要方向之一。由于无线传感器节点不仅数据的产生节点,也承担着网络的路由转发任务,因此网络节点的休眠调度,可能会较大影响端到端分组投递延迟。在休眠机制中,同步休眠机制较易实现。SMAC,TMAC通过划分虚拟簇,在邻居节点间进行同步。同一个虚拟簇内的节点同时醒来,工作一段时间后再同时进入休眠状态。同步休眠机制简单易行,且适用多种网络应用,但节点到Sink节点的延时可能会大幅度的增加。
[0005]传感器网络划分为簇结构是一种常见且有效的网络管理以及路由方法。分簇路由在数据汇报与融合、能量节省、网络管理、提高吞吐量等方面都具有明显的优势。这主要是因为分簇结构可以使得更多的传感器节点进入睡眠状态并保持网络连通、降低节点能耗和信道接入竞争、易于实现高效数据融合。分簇网络中节点通常包括簇头节点和普通节点。有些分簇方案中还包括簇间网关节点。簇头节点负责接收本簇内的普通节点采集的信息,并通过其他簇头形成的路径传递到目的节点(Sink节点)。普通节点只需要与自己的簇头进行通信,且不需要进行分组中继,因而可以在没有承担任务时休眠,以节省能量。由于簇头承担任务较多,耗能较大,因此簇头和普通节点之间需要轮换。在某些分簇协议中,相邻簇之间通信还可能通过簇间网关节点。
[0006]由于缺乏针对性的设计,同步休眠会对数据汇报的延时造成很大影响。本专利面向基于休眠机制的无线传感器网络,如何实现高效的基于分簇的休眠机制。

【发明内容】

[0007]本发明目的是解决现有同步休眠机制下数据汇报存在较大传输延迟的问题,保持较低能量消耗的同时,达到较低的传输延迟。
[0008]本发明中的无线传感器网络由无线传感器节点和Sink节点组成,无线传感器节点负责数据的收集和传输,Sink节点用于数据汇集并上传给远程控制端(如通过Internet、移动通信网等方式),并对网络中的传感器节点进行管理和控制。
[0009]本发明假设:
[0010]?时间采用帧结构,各节点需要同步帧结构,并根据其距离Sink节点的距离决定自己在每个帧中的工作相位;
[0011]?网络划分为簇状结构,簇内节点发送数据到簇头节点,簇头节点间建立梯度,通过最短路径传输数据到达Sink节点。
[0012]?簇内节点休眠时间同步,传输数据时通过CSMA竞争信道;簇头节点的休眠时间根据梯度交错排序,以时间序贯的方式传输数据到达Sink节点,以期达到较低的端到端投递延迟。
[0013]本发明的具体方案如下。
[0014]1.分簇结构的建立
[0015]步骤I, Sink节点发送ClusterHeadIndicat1n消息给自己的两跳邻居以通告自己成为簇头节点,该消息携带Sink节点ID,该消息迄今为止离开Sink节点的跳数距离,记做LEN且其初值为0,序列号SEQ且其初值为1,每次Sink节点发起广播一个新的ClusterHeadIndicat1n消息,该消息携带的SEQ加I ;
[0016]步骤2,每个节点i收至丨J ClusterHeadIndicat1n消息后,若该消息的SEQ值不小于本地记录的SEQ值或本地没有相关记录,则检测邻居的情况,若发送给自己ClusterHeadIndicat1n消息的节点为簇头节点、并且其直接邻居中存在不与任何簇头节点直接相邻的节点,那么该节点设置一个计时器,其长度为Ti=TcX [l-(min{Lij |节点j是节点i的邻居节点且为簇头节点} XEi) / (RX E)],其中Tc为计时器的最大长度,Lij为节点i和节点i之间的距离,Ei为节点i的剩余能量,R是节点的最大通信距离,E为节点的初始能量;否则不执行任何动作;Ti的选取可以保障簇头节点的剩余能量较大、且簇头之间的距离尽可能的大,从而使网络簇头节点尽量少、网络边缘节点到达sink节点的跳数距离尽可能的小;
[0017]步骤3:若计时器超时,节点i选择自己为簇头,本地记录LEN和SEQ信息,并向两跳邻居范围内广播ClusterHeadIndicat1n消息(该消息中携带节点i的ID,从Sink到当前节点的跳数距离LEN、SEQ值)以通告自己成为簇头节点这一事件;若未超时前收到其他簇头的ClusterHeadIndicat1n消息则重复步骤2,直到每个节点的邻居节点中都有至少一个簇头节点;
[0018]步骤4:每个非簇头节点根据梯度最小或随机的原则选择一个邻居簇头节点作为自己的簇头节点。
[0019]为保障网络中节点的能耗均衡,以及适应网络的动态变化,簇结构需要周期性的更新。簇结构重新分簇方法的特征在于,每隔Y时间(如15分钟),Sink节点重新启动分簇过程,首先,Sink节点向网络中洪泛一个信令以通知网络中的节点保持清醒状态以准备重新分簇,直到分簇和梯度的重新建立完毕;每个簇头节点接收到该信令后通知其簇内普通节点保持清醒状态。之后网络按照分簇方法重新划分簇结构。
[0020]2.基于分簇的休眠调度以及路由调度
[0021]本方案设计簇内节点休眠同步,簇间节点休眠时间采用交错排序。为实现该目标,网络利用控制信息ClusterHeadIndicat1n消息建立网络时间同步、以及建立Sink到所有簇头的最短路径树。基于分簇结构的梯度建立具体实现步骤如下。
[0022]ClusterHeadIndicat1n消息携带迄今为止其离开Sink节点的跳数距离LEN,初值为O ;每个簇头节点接收到一条ClusterHeadIndicat1n消息后,若该消息携带的序列号SEQ大于本地存储的序列号SEQ或首次接收到这样的消息,则执行以下操作:该簇头节点将ClusterHeadIndicat1n消息中的LEN加I,本地记录该值、将发送ClusterHeadIndicat1n消息的节点记录为自己到达Sink的下一跳节点、最后将该记录加入自己的ClusterHeadIndicat1n消息然后转发该消息;否则若序列号相等且新消息携带的LEN值加I后小于本地记录的LEN值,则该簇头节点将新消息携带的LEN加I,本地记录更新后的LEN值,将发送给自己ClusterHeadIndicat1n消息的节点记录为自己到Sink的下一跳节点。
[0023]梯度构造完毕之后,簇头节点记录自己的梯度depth,簇内所有
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1