基于动态分簇路由算法的无线传感器网络数据采集方法

文档序号:7852752阅读:93来源:国知局
专利名称:基于动态分簇路由算法的无线传感器网络数据采集方法
技术领域
本发明涉及一种适用于移动节点的基于动态分簇路由算法的无线传感器网络数据采集方法。该方法可以解决无线传感器网络中,因节点位置移动并超出无线发射距离,进而引起的节点无法发送采集数据的问题。本发明属于无线传感器网络技术领域。
背景技术
无线传感器网络(Wireless Sensor Network)是一种由大量无线传感器所组成的网络。这种网络并没有固定的体系结构,也不需要基站或交换机作为中转,因此称为Ad hoc网络,即一种特殊的多跳移动无线网络。无线传感器网络常用于数据采集工作,即网络中的节点(mote)通过传感器采集数据,然后通过一定的算法,由单跳或者多跳的方式将数据传送回数据处理中心。这样的算 法通常称为无线传感器网络数据采集算法。在数据采集过程中,无线传感器网络中的节点位置通常比较固定,在一次组网之后便可以顺利进行数据采集工作。但是,由于受限于每个节点的无线传送距离,如果节点位置发生移动,则需要重新组网才能再次进行数据采集。对于节点频繁移动的网络就需要有一个合适的方法进行协调,保证网络中的节点可以在这种情况下也能将数据传送回数据处理中心。申请号为201110135179.8,申请日期为2011年5月24日的国内发明专利申请公开了一种无线传感器网络分簇路由方法。该方法首先通过对一个无线传感器网络区域进行网格划分,网格在划分完毕后即为一个固定簇,每个周期结束后在簇中选取新的节点成为簇头节点,通过对簇头节点到中心节点的距离来计算出簇头节点所在簇的一个权值,通过簇之间的权值比较,簇头节点转发数据时便得到了一个路径,这条路径是由权值逐次递减的簇构成的。该方法将分簇固定,不适合于节点位置可变的无线传感器网络,而本发明则无需固定节点簇头和分簇,从而更适用于采用移动节点的无线传感器网络。申请号为201010565639. 6,申请日期为2010年11月30日的国内发明专利申请公开了一种基于分簇无线传感器网络的传输方法。该方法提供了下列技术方案首先,无线传感器网络节点自组织形成簇,其中每个簇由簇头节点和簇成员节点组成;其次,簇头节点对接收到的所述簇成员节点发送的数据进行融合;再次,基站根据所述簇头节点的位置信息将相邻的簇头节点分成一组;最后,每组中的簇头节点对所述融合后的数据进行空时编码后采用MIMO的方式传输给基站。该方法采用自组织来形成簇,但是没有根据节点与汇聚节点(sink节点)之间的距离来选择簇头,并根据簇头与节点的距离来形成簇,因此不能适用于节点位置可变的无线传感器网络,及有效地减少网络能量消耗。不仅如此,该方法不能动态地更新分簇。申请号为200910152525. 6,申请日期为2009年9月17日的国内发明专利申请公
开了一种基于分簇的无线传感器数据高效采集方法。该方法的簇首节点固定,具有较强的数据处理能力和持续的能量供应。Sink节点、簇首节点周期性地发送信标信号,信标信号是构成整个无线传感器网络的骨架。簇首节点、传感器节点根据对应的信标信号进行一系列的操作,其中时钟周期调整机制是该算法中的关键支撑技术;网络中节点采用主动同步的数据传输方式,旨在进行低功耗高速率的数据通信。减小各节点之间的通信干扰,保证数据传输的稳定性、可靠性和实时性。该方法采用了固定簇头来分簇,而本发明采用动态选择簇头,从而更适用于采用移动节点的无线传感器网络。本发明提出了一种新的基于动态分簇路由算法的无线传感器网络数据采集方法,该方法适用于无线传感器网络,特别是节点频繁移动的无线传感器网络,可以解决因节点位置变化而引起的节点无法发送采集数据的问题。

发明内容
本发明要解决的技术问题是,如何在节点频繁移动的情况下,为无线传感器网络提供一种可靠的路由算法,解决因节点位置变化而引起的节点无法发送采集数据的问题。本发明旨在通过动态分簇数据采集算法,保证无线传感器网络的正常运行,从而减少网络的能量消耗。本发明对动态无线传感器网络,即节点位置动态移动的网络,提出了一种有效可靠的分簇数据采集方法。采取的技术方案如下
本发明使用分簇的拓扑结构进行数据采集,组网后的节点按照功能分为三类,即负责将所有节点的采集数据传输到处理中心的固定节点Sink节点;负责采集数据的collecting节点;负责将collecting节点数据转发到sink节点的簇头节点cluster-header 节点。网络建立开始时,sink节点确定,而其他节点功能未确定。sink节点会发出寻找簇头的广播,所有能接收到广播的节点都会给sink节点回应,sink节点会根据算法选择出固定数目的N个cluster-header节点并通知这些节点,确定为cluster-header的节点会发出分簇广播,所有可以收到广播的非sink及非cluster-header节点会回应广播,并将自己归簇,这些节点就成为collecting节点。通过该方法将整个网络划分为N个簇,每个簇有一个cluster-header节点及若干个collecting节点,collecting节点将采集到的数据信息发送给cluster-header节点,再由cluster-header节点转发给sink节点,最后将数据信息转送至数据处理中心。这样就建立起分簇的拓扑数据采集结构。组网过程中,cluster-header的选择是按照节点距离作为选择依据的。网络 中除了 sink节点外,其他节点位置都是不固定的,而且cluster-header承担了将大量collecting采集的数据转发到sink节点的任务。因此,选择距离sink节点最近的节点作为cluster-header。该方法首先降低了组网周期内簇头移动出sink节点接收范围内的可能,其次也降低了网络中能量的消耗。Sink节点与其他节点之间距离的判断依据是消息的接收信号强度值RSSI(Received Signal Strength Indication)。Sink节点发出寻找簇头广播后,会等待一段时间来接收节点回应的消息,然后根据消息的RSSI值来将节点按照距离由近到远进行排序。在等待时间过后,sink节点会从序列中取出前N个节点作为簇头节点并通知这些节点,这些节点接收到消息后就确定成为cluster-header 节点。在簇头确定之后,其他未成为簇头的非sink节点就要选择其中一个簇头来将自己归簇来成为collecting节点。由于一个节点可能会处在多个簇头的附近,因此节点需要通过与簇头的距离来选择其中一个簇头作为自己的簇头。Cluster-header节点在确定成为簇头之后会发送一个寻找collecting节点的广播,其他未确定其功能的节点收到第一个寻找collecting节点的广播消息后会等待一段时间,然后将这段时间内收到的所有簇头的广播消息按照RSSI值进行排序,即按照节点与簇头的距离从近到远排序。等待时间过后,节点从序列中选择广播消息RSSI值最高的簇头作为自己的簇头,这样节点就成为collecting节点。该选择簇头的方法首先降低了采集节点移动出簇头节点接收范围的可能,其次降低无线发送的消耗能量。
由于网络内节点位置不固定,首次组网的一段时间后,当前拓扑结构就可能不再是最有效的拓扑结构。Collecting节点可能移动出cluster-header节点接收范围,或者cluster-header节点也可能会移动出sink节点的接收范围。基于以上情况,本发明采用自动重新分簇方法保证网络自动形成可靠有效的拓扑结构。组网开始之前,根据网络中节点移动的频度,预设一个重新分簇周期。首次组网完成后,网络中节点开始数据采集,等到达下一个重新分簇周期,sink节点会重新发送寻找簇头广播,其他所有节点即不区分cluster-header和collecting节点,如果能接收到广播都会响应sink节点。最后,重复组网步骤即将所有非sink节点根据当前位置进行功能重新划分。为了保证采集数据能够高效可靠地传输到处理中心,除了上述分簇传输及自动重新分簇机制外,还采用了如下机制
I)调整簇头数目
网络中簇的数目在拓扑完成后是固定的,但如果网络发生变化,如节点数目的变化或节点移动的频度变化,此时,簇的数目也要进行相应调整。如果簇过少,则簇中可能会出现过多collecting节点,这样会出现数据拥塞导致的数据丢失情况。如果簇过多,则可能将距离sink节点很远的节点也划为簇头节点,这样会增加网络中的能量消耗及节点移动出sink节点范围内的几率。因此在网络发生变化后,在组网前可以根据网络的情况调整相应的簇头数目。2)调整重新分簇周期
组网前,可根据网络发生的变化相应的增加或者减少重新分簇周期,来避免节点移动导致的数据丢失情况。3)节点内设置数据缓冲及重复发送机制
Collecting节点的发送数据可能会因为collecting节点移动出cluster-header节点接收范围或者cluster-header正接收其他节点的数据等一些情况而导致数据发送到cluster-header节点失败。Cluster-header节点的发送数据可能会因为cluster-header节点移动出sink节点接收范围或者sink正接收其他节点的数据而导致数据发送到sink节点失败。为了解决以上情况造成的数据丢失,本发明在节点中添加数据缓冲功能。当数据发送失败时,数据会暂存在节点内,然后重复发送,直到接收节点接收到数据。
运用本发明可达到的有益效果包括有效解决无线传感器网络中节点频繁移动,引起的节点无法发送采集数据的问题,从而保证无线传感器网络的正常运行,并减少网络的能量消耗。。


图I为分簇数据采集方法的拓扑结构示意 图2为sink节点及普通节点的组网流程图。
具体实施例方式部署环境及连接方式
参见图1,其中簇头I和簇头2表示cluster-header节点,采集I、采集2、采集3、采集 4和采集5表示collecting节点。sink节点连接到数据中心,位置固定,而其他非sink节点位置不固定。根据网络中节点数量和节点分布规模,在组网之前,需要预设两个变量即簇头数目N与簇更新周期T。簇头数目N决定簇的数目,可根据节点数量调整;簇更新周期T表示,在T时间后,sink会重新发起组网,重新确定簇头和分簇。参见图2,具体实施步骤为
I.Sink节点发送组网广播消息new-net message,寻找簇头节点。2.非 sink 节点接收到 new-net message,发送回应消息 resp-new-net message给sink节点。3. Sink节点接收到resp-new-net message,根据消息的RSSI值进行排序,建立从近到远的节点序列,然后从序列中取出前N个节点,确定为簇头cluster-header节点。4. Sink节点将N个簇头节点编号通过簇头广播消息ch-info message发送出去。5.非sink节点接收到ch-info message,判断自己是否是簇头节点。如果消息中包含自己的节点编号,贝U节点确定为cluster-header节点。6.确定为cluster-header节点的普通节点发送寻找数据采集节点广播消息search message。7.未接收到ch-info message的非sink节点和接收到ch-info message但是节点编号不在消息中的节点接收各个簇头的search message,并根据search message的RSSI值将簇头节点按照从近到远的顺序排序,之后选择一个RSSI值最高即最近的节点作为自己的簇头节点,并将自己划为collecting节点,开始采集数据。8. Collecting节点发送米集消息 collecting message 至 cluster-header 节点,cluster-header节点将消息经sink节点转发至处理中心!collecting节点比较多的簇的cluster-header节点和sink节点必然会出现消息的堵塞,因此在节点程序内增加了消息队列,新来的消息都会先加入消息队列中,等待节点依次发送到上一级。而且为了确保上一级能收到消息,还增加了握手及重发机制,如果节点发送的消息没有收到上一级的握手,就会重复发送消息直到上一级收到为止。这样做就能避免因为堵塞导致的消息丢失情况。9.到达更新时间T, sink节点再次发送组网广播消息new-net message,其他节点接收到消息后重复上述过程,进行重新分簇。
10.如果网络中的节点数目和节点移动频发生改变,需要改变簇头数目N和簇更新周期T这两个变量后重新进行组网。簇头数目N的设定改变后,在重新组网时sink节点会将节点队列中选择的簇头的数目改为新的设定值。这样做不仅会减少数据拥塞导致的数据丢失情况而且能减少网络中的能量消耗及节点移动出sink节点范围内的几率。簇头更 新周期T改变后,sink会改变更新定时器的周期为新的设定值,在到达更新时间T后,来重新进行组网。这样做会减少节点移动导致的数据丢失情况。
权利要求
1.一种基于动态分簇路由算法的无线传感器网络数据采集方法,其特征是基于无线传感器网络,使用分簇的拓扑结构进行组网,将整个网络划分为N个簇,每个簇有一个cluster-header节点及若干个collecting节点,collecting节点将采集到的数据信息发送给cluster-header节点,再由cluster-header节点转发给sink节点,最后将数据信息转送至数据处理中心,以此建立分簇的拓扑数据采集结构,其中sink节点在在组网时以及达到下一个重新分簇周期时都会重新发送寻找簇头广播,当网络发生变化时,组网前可以根据网络的情况调整相应的簇头数目cluster-header的确立与选择是根据消息的接收信号强度值RSSI判断,按照节点距离作为选择依据的;collecting节点选择广播消息RSSI值最高的簇头作为自己的簇头,当collecting节点向cluster-header节点发送数据失败时,启动数据缓冲及重复发送机制,从而解决因节点位置移动并超出无线发射距离,进而引起的节点无法发送采集数据的问题。
2.根据权利要求I所述的一种基于动态分簇路由算法的无线传感器网络数据采集方法,其特征是节点之间距离的判断依据是消息的接收信号强度值RSSI。
3.根据权利要求I所述的一种基于动态分簇路由算法的无线传感器网络数据采集方法,其特征是网络中节点分为负责将采集数据传输到处理中心的固定节点sink节点,负责采集数据的collecting节点,负责将collecting节点采集的数据转发到sink节点的簇头节点cluster-header节点,网络中除了 sink节点外,其他节点位置都是不固定的。
4.根据权利要求I所述的一种基于动态分簇路由算法的无线传感器网络数据采集方法,其特征是采用自动重新分簇方法,即在组网开始前,根据网络中节点移动的频度,预设一个重新分簇周期,到达重新分簇周期后网络重新分簇,即sink节点会重新发送寻找簇头广播,其他所有节点即不区分cluster-header和collecting节点,如果能接收到广播都会响应sink节点;最后,重复组网步骤将所有非sink节点根据当前位置进行功能重新划分。
5.根据权利要求4所述的一种基于动态分簇路由算法的无线传感器网络数据采集方法,其特征是可根据网络发生的变化相应的增加或者减少重新分簇周期,来避免节点移动导致的数据丢失情况。
6.根据权利要求I所述的一种基于动态分簇路由算法的无线传感器网络数据采集方法,其特征是网络中簇的数目在拓扑完成后是固定的,但如果网络发生变化,如节点数目的变化或节点移动的频度变化,此时,簇的数目也要进行相应调整。
7.根据权利要求I所述的一种基于动态分簇路由算法的无线传感器网络数据采集方法,其特征是sink节点根据RSSI值确立cluster-header节点,即采用动态分簇路由算法组网,网络建立开始时,sink节点确定,而其他节点功能未确定;sink节点发出寻找簇头的广播,所有能接收到广播的节点都会给sink节点回应,sink节点在等待一段时间后,根据其他节点回应消息的RSSI值将节点进行排序,等待时间过后,sink节点从序列中取出回应消息RSSI值最高的前N个节点作为簇头节点并通知这些节点,这些节点接收到消息后就确定成为cluster-header节点。
8.根据权利要求I所述的一种基于动态分簇路由算法的无线传感器网络数据采集方法,其特征是collecting节点根据RSSI值确定自己的cluster-header节点,即cluster-header节点在确定成为簇头之后发送一个寻找collecting节点的广播,其他未确定其功能的节点收到第一个寻找collecting节点的广播消息后会等待一段时间,然后将这段时间内收到的所有簇头的广播消息按照RSSI值进行排序,等待时间过后,节点从序列中选择广播消息RSSI值最高的一个簇头作为自己的簇头,即该节点成为collecting节点。
9.根据权利要求I所述的一种基于动态分簇路由算法的无线传感器网络数据采集方法,其特征是在节点中添加数据缓冲功能,当数据发送失败时,数据会暂存在节点内,然后重复发送,直到接收节点接收到数据。
全文摘要
本发明提出了一种基于动态分簇路由算法的无线传感器网络数据采集方法。该方法基于无线传感器网络,使用分簇传输及自动重新分簇机制,即使用分簇的拓扑结构进行组网,按照节点距离作为确立和选择簇头的依据;根据网络中节点移动的频度,预设一个重新分簇周期,对网络拓扑结构进行更新,从而解决因节点位置移动并超出无线发射距离,进而引起的节点无法发送采集数据的问题。本方法还根据网络情况动态调整簇头数目、分簇周期并在节点内设置数据缓冲及重复发送机制,进一步降低因节点超出发送距离而导致的数据传输失败的几率,同时降低网络中的能量消耗。
文档编号H04W84/18GK102711210SQ20121017908
公开日2012年10月3日 申请日期2012年6月4日 优先权日2012年6月4日
发明者倪明选, 刘浩威, 李洋, 赵云, 高民, 黄才炎 申请人:广州市香港科大霍英东研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1