本公開涉及數(shù)據(jù)收集和無線傳感器網(wǎng)絡(luò)領(lǐng)域,特別是基于無線傳感器網(wǎng)絡(luò)的野外感知數(shù)據(jù)高效、自動采集方法。
背景技術(shù):
目前,隨著通信技術(shù)和計(jì)算機(jī)技術(shù)的深入發(fā)展,無線傳感器網(wǎng)絡(luò)(wirelesssensornetwork,wsn)得到迅速推廣應(yīng)用。wsn是一種無線網(wǎng)絡(luò),包括大量靜止或移動的傳感器節(jié)點(diǎn)(sensor),將感知和采集的數(shù)據(jù),以自組織和多跳的方式傳輸?shù)絽R聚節(jié)點(diǎn)(sinknode)或基站(basestation,bs)。wsn中部署的傳感器節(jié)點(diǎn)具有眾多用途,比如可探測包括地震、電磁、溫度、濕度、噪聲、光強(qiáng)度、壓力、土壤成分、移動物體的大小、速度和方向等周邊環(huán)境中多種多樣的現(xiàn)象,因此,wsn被廣泛應(yīng)用在農(nóng)業(yè)特別是中藥材種植、環(huán)境監(jiān)測、醫(yī)療保健、軍事等領(lǐng)域。
另一方面,wsn的數(shù)據(jù)采集和傳輸尤其是在野外等惡略環(huán)境下的數(shù)據(jù)采集和傳輸面臨著嚴(yán)峻的挑戰(zhàn)。首先,傳感器節(jié)點(diǎn)的能量(即電池電量)往往有限且一般不具備充電能力,其在發(fā)送和接收數(shù)據(jù)時需要消耗一定的能量,從而在面臨大量數(shù)據(jù)傳輸需求時會迅速耗盡能量而失效,進(jìn)而影響整個wsn網(wǎng)絡(luò)的生存期。其次,一個傳感器節(jié)點(diǎn)在廣播數(shù)據(jù)時往往面臨時刻變化的無線信道質(zhì)量,可能使得提前確定的下一跳節(jié)點(diǎn)無法正常接收數(shù)據(jù),進(jìn)而需要再次傳輸數(shù)據(jù),進(jìn)一步增加了能量消耗,延長了數(shù)據(jù)傳輸時延,縮短了整個無線傳感器網(wǎng)絡(luò)的生存期。再次,在野外環(huán)境下,人們往往通過移動或固定基站(bs)周期性地收集傳感器節(jié)點(diǎn)所采集的數(shù)據(jù),每次基站(bs)部署的位置可能不同,這導(dǎo)致無法采用提前計(jì)算的數(shù)據(jù)路由策略,進(jìn)而需要動態(tài)自適應(yīng)的數(shù)據(jù)路由策略和方法。因此,研究如何在野外數(shù)據(jù)采集環(huán)境下實(shí)現(xiàn)高效的動態(tài)自適應(yīng)的數(shù)據(jù)采集方法,以減少數(shù)據(jù)重傳次數(shù)、均衡能量消耗、延長網(wǎng)絡(luò)生存期,具有重要的應(yīng)用價值和廣闊的應(yīng)用前景。
從現(xiàn)有的研究成果上看,當(dāng)前的面向無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)收集方法一般采用基于分簇的方法和基于能耗均衡的方法。基于分簇的數(shù)據(jù)收集方法首先將網(wǎng)絡(luò)節(jié)點(diǎn)按距離遠(yuǎn)近劃分為若干區(qū)域,在每個區(qū)域中選取一個節(jié)點(diǎn)作為簇頭,簇頭負(fù)責(zé)本區(qū)域內(nèi)節(jié)點(diǎn)的數(shù)據(jù)收集并將收集到的數(shù)據(jù)轉(zhuǎn)發(fā)給其他簇頭,并最終轉(zhuǎn)發(fā)到bs。本方法中區(qū)域的劃分是非常困難的,且簇頭面臨大量的數(shù)據(jù)采集和傳輸任務(wù),其面臨的傳輸干擾巨大,易導(dǎo)致數(shù)據(jù)重傳次數(shù)增加、能量消耗嚴(yán)重等缺點(diǎn)。現(xiàn)有基于能耗均衡的方法往往只考慮了當(dāng)前節(jié)點(diǎn)和周圍鄰居節(jié)點(diǎn)的剩余能量,一般選擇鄰居節(jié)點(diǎn)中剩余能量較多的節(jié)點(diǎn),而沒有考慮數(shù)據(jù)采集過程所經(jīng)過的傳輸路徑上的其他節(jié)點(diǎn)的能量消耗,容易使數(shù)據(jù)采集方法陷入局部最優(yōu)而縮短網(wǎng)絡(luò)生存期。
技術(shù)實(shí)現(xiàn)要素:
針對上述問題,本公開首先提供了基于無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)采集方法,所述方法在野外數(shù)據(jù)采集中充分考慮無線信道質(zhì)量、能量均衡,實(shí)現(xiàn)動態(tài)自適應(yīng)的高效數(shù)據(jù)采集。所述方法包括下述步驟:
s1、接收信道中的消息;若所述消息為基站廣播的第一數(shù)據(jù)請求消息,執(zhí)行步驟s3;若所述消息為第二數(shù)據(jù)請求消息,執(zhí)行步驟s2;若所述消息為感知數(shù)據(jù)消息,執(zhí)行步驟s4;
所述第二數(shù)據(jù)請求消息包括所述第一數(shù)據(jù)請求消息、當(dāng)前節(jié)點(diǎn)及當(dāng)前節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值;
s2、建立第二數(shù)據(jù)請求消息集合,判斷所述第二數(shù)據(jù)請求消息集合中的第二數(shù)據(jù)請求消息是否有效,并將所有有效的第二數(shù)據(jù)請求消息中的節(jié)點(diǎn)添加到節(jié)點(diǎn)上的候選中繼節(jié)點(diǎn)列表中,執(zhí)行步驟s3;
所述候選中繼列表中的節(jié)點(diǎn)按照節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值排序;
s3、判斷當(dāng)前節(jié)點(diǎn)是否具有數(shù)據(jù)請求消息所請求的感知數(shù)據(jù);若不具有所請求的感知數(shù)據(jù),執(zhí)行步驟s6;否則,執(zhí)行步驟s7;
s4、判斷當(dāng)前節(jié)點(diǎn)是否在所述感知數(shù)據(jù)消息的候選中繼節(jié)點(diǎn)列表中;若當(dāng)前節(jié)點(diǎn)在所述感知數(shù)據(jù)消息的候選中繼節(jié)點(diǎn)列表中,執(zhí)行步驟s5;
s5、判斷當(dāng)前節(jié)點(diǎn)的候選中繼節(jié)點(diǎn)列表是否為空;若非空,執(zhí)行步驟s7;
s6、構(gòu)造并廣播當(dāng)前節(jié)點(diǎn)的第二數(shù)據(jù)請求消息;
s7、構(gòu)造感知數(shù)據(jù)消息并廣播;
所述感知數(shù)據(jù)消息包括基站所請求的感知數(shù)據(jù)以及當(dāng)前節(jié)點(diǎn)上的候選中繼節(jié)點(diǎn)列表。
針對上述方法,其中,所述步驟s7在廣播感知數(shù)據(jù)消息的同時,還包括下述步驟:
s701、在構(gòu)造感知數(shù)據(jù)消息的節(jié)點(diǎn)上,設(shè)置并啟動所述感知數(shù)據(jù)消息對應(yīng)的廣播計(jì)時器;
s702、監(jiān)聽感知數(shù)據(jù)消息的確認(rèn)消息;若監(jiān)聽到感知數(shù)據(jù)消息的確認(rèn)消息,執(zhí)行步驟s703;否則,執(zhí)行步驟s704;
s703、停止所述廣播計(jì)時器計(jì)時;
s704、判斷所述廣播計(jì)時器計(jì)時是否結(jié)束;若所述廣播計(jì)時器計(jì)時結(jié)束;執(zhí)行步驟s705;
s705、重新廣播所述感知數(shù)據(jù)消息并重啟所述廣播計(jì)時器;返回步驟s702。
針對上述方法,其中,所述步驟s2中的判斷包括下述步驟:
將發(fā)送第二數(shù)據(jù)請求消息的節(jié)點(diǎn)記作第一節(jié)點(diǎn),將接收該第二數(shù)據(jù)請求消息的節(jié)點(diǎn)記作第二節(jié)點(diǎn);
若所述第二節(jié)點(diǎn)與基站之間的距離大于所述第一節(jié)點(diǎn)與基站之間的距離,則所述第二節(jié)點(diǎn)收到的第二數(shù)據(jù)請求消息被認(rèn)為有效。
針對上述方法,其中,所述步驟s7在廣播感知數(shù)據(jù)消息之前,還包括下述步驟:
s711、啟動當(dāng)前節(jié)點(diǎn)上的任務(wù)計(jì)時器;
s712、在所述任務(wù)計(jì)時器處于終止時間時,將當(dāng)前節(jié)點(diǎn)上的候選中繼節(jié)點(diǎn)列表加入到接收的感知數(shù)據(jù)消息中。
針對上述方法,其中,所述轉(zhuǎn)發(fā)能力值計(jì)算方法如下:
(i)若要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)是作為基站的節(jié)點(diǎn)的鄰居節(jié)點(diǎn),則該節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值計(jì)算式為式(1);
(ii)若要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)不是作為基站的節(jié)點(diǎn)的鄰居節(jié)點(diǎn),則該節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值計(jì)算式為式(2);
式(1)中:
e表示要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)的剩余能量,e表示要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)的初始總能量;
d′為要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)與作為基站的節(jié)點(diǎn)之間的距離進(jìn)行歸一化處理后的值,d′∈[0,1.0];
α表示要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)的剩余能量在轉(zhuǎn)發(fā)能力值中所占的權(quán)重,α∈[0,1.0];
c表示轉(zhuǎn)發(fā)能力值,c∈[0,1.0];
式(2)中:
v表示要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn);
ev表示節(jié)點(diǎn)v的剩余能量,e表示節(jié)點(diǎn)v的初始總能量;
d′v表示節(jié)點(diǎn)v與基站之間的距離進(jìn)行歸一化處理后的值;
α表示節(jié)點(diǎn)v的剩余能量在轉(zhuǎn)發(fā)能力值中所占的權(quán)重,α∈[0,1.0];
β表示節(jié)點(diǎn)v與基站的距離在轉(zhuǎn)發(fā)能力值中所占的權(quán)重,β∈[0,1.0];
γ表示節(jié)點(diǎn)v的鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)能力的折扣因子,γ∈[0,1.0];
vi表示第i個有效的第二數(shù)據(jù)請求消息所對應(yīng)的廣播節(jié)點(diǎn);
cv表示節(jié)點(diǎn)v的轉(zhuǎn)發(fā)能力值,cv∈[0,1.0]。
針對上述方法,其中,所述感知數(shù)據(jù)消息在發(fā)送節(jié)點(diǎn)上對應(yīng)的廣播計(jì)時器設(shè)置的時間長度大于其在接收節(jié)點(diǎn)上對應(yīng)的任務(wù)計(jì)時器設(shè)置的時間長度;
且所述感知數(shù)據(jù)消息在節(jié)點(diǎn)上設(shè)置的廣播計(jì)時器或任務(wù)計(jì)時器的時間長度與該節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力相關(guān),轉(zhuǎn)發(fā)能力越強(qiáng),該節(jié)點(diǎn)設(shè)置的廣播計(jì)時器或任務(wù)計(jì)時器的時間長度越短。
針對上述方法,其中,所述方法還包括下述步驟:
s0、當(dāng)節(jié)點(diǎn)為基站時,廣播第一數(shù)據(jù)請求消息。
針對上述方法,其中,在步驟s0之后,還包括下述步驟:
s0’、設(shè)置感知數(shù)據(jù)消息的接收時間,若在所述接收時間內(nèi)未收到所述感知數(shù)據(jù)消息,則廣播數(shù)據(jù)停止采集消息;
所述數(shù)據(jù)停止采集消息包括一個用于節(jié)點(diǎn)的休眠時間長度。
針對上述方法,其中,所述步驟s1中的消息還包括所述數(shù)據(jù)停止采集消息;
當(dāng)接收的消息為所述數(shù)據(jù)停止采集消息,則執(zhí)行下述步驟:
s12、廣播所述數(shù)據(jù)停止采集消息,然后按所述數(shù)據(jù)停止采集消息中的休眠時間長度進(jìn)行休眠。
本發(fā)明方法與現(xiàn)有技術(shù)相比具有下述優(yōu)點(diǎn):
1)本發(fā)明方法考慮了一個傳感器節(jié)點(diǎn)與接收基站的距離及自身剩余能量,并且考慮了該節(jié)點(diǎn)的候選中繼節(jié)點(diǎn)的個數(shù)和轉(zhuǎn)發(fā)能力值,以及數(shù)據(jù)采集過程中本節(jié)點(diǎn)的后續(xù)傳輸路徑上的節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值,將這些因素進(jìn)行綜合計(jì)算,作為該節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值,從而可以準(zhǔn)確度量該節(jié)點(diǎn)作為候選節(jié)點(diǎn)的能力,進(jìn)而使得本方法可以有效均衡網(wǎng)絡(luò)能量消耗,提高網(wǎng)絡(luò)生存期。
2)本發(fā)明方法考慮了無線信道質(zhì)量對數(shù)據(jù)接收率的影響,在節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)時根據(jù)無線信道質(zhì)量動態(tài)確定下一跳中繼節(jié)點(diǎn),可有效減少數(shù)據(jù)重傳次數(shù),從而提高數(shù)據(jù)投遞率并延長網(wǎng)絡(luò)生存期。
其次,針對上述方法,本發(fā)明提出了一種無線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn),具體為:所述節(jié)點(diǎn)使用上述方法進(jìn)行消息廣播或消息接收。
與現(xiàn)有技術(shù)相比,所述無效傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)在考慮了自身與基站的距離、自身剩余能量、自身所具有的候選中繼節(jié)點(diǎn)個數(shù)的基礎(chǔ)上得到了準(zhǔn)確的轉(zhuǎn)發(fā)能力值,因此可以有效均衡其所在的無效傳感器網(wǎng)絡(luò)的能量消耗,提高網(wǎng)絡(luò)生存期。節(jié)點(diǎn)考慮了無線信道質(zhì)量對數(shù)據(jù)接收率的影響,通過采用計(jì)時器來動態(tài)的確定下一跳的中繼節(jié)點(diǎn),有效地減少數(shù)據(jù)重傳次數(shù),從而提高數(shù)據(jù)投遞率并延長網(wǎng)絡(luò)生存期。
附圖說明
圖1本發(fā)明實(shí)施例中基于傳感網(wǎng)進(jìn)行數(shù)據(jù)采集的方法流程圖;
圖2本發(fā)明實(shí)施例中的野外數(shù)據(jù)采集的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明針對無線傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)能量有限,在面臨大量數(shù)據(jù)傳輸需求時會迅速耗盡能量而失效,進(jìn)而影響整個wsn網(wǎng)絡(luò)的生存期,提出了適用于使用野外部署的無線傳感器網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)采集的方法。所述方法包括下述主要步驟:
s1、接收信道中的消息;若所述消息為第一數(shù)據(jù)請求消息,執(zhí)行步驟s3;若所述消息為第二數(shù)據(jù)請求消息,執(zhí)行步驟s2;若所述消息為感知數(shù)據(jù)消息,執(zhí)行步驟s4;
所述第二數(shù)據(jù)請求消息包括所述第一數(shù)據(jù)請求消息、當(dāng)前節(jié)點(diǎn)及當(dāng)前節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值;
s2、建立第二數(shù)據(jù)請求消息集合,判斷所述第二數(shù)據(jù)請求消息集合中的第二數(shù)據(jù)請求消息是否有效,并將所有有效的第二數(shù)據(jù)請求消息中的節(jié)點(diǎn)添加到節(jié)點(diǎn)上的候選中繼節(jié)點(diǎn)列表中,執(zhí)行步驟s3;
所述候選中繼列表中的節(jié)點(diǎn)按照節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值排序;
s3、判斷當(dāng)前節(jié)點(diǎn)是否具有數(shù)據(jù)請求消息所請求的感知數(shù)據(jù);若不具有所請求的感知數(shù)據(jù),執(zhí)行步驟s6;否則,執(zhí)行步驟s7;
s4、判斷當(dāng)前節(jié)點(diǎn)是否在所述感知數(shù)據(jù)消息的候選中繼節(jié)點(diǎn)列表中;若當(dāng)前節(jié)點(diǎn)在所述感知數(shù)據(jù)消息的候選中繼節(jié)點(diǎn)列表中,執(zhí)行步驟s5;
s5、判斷當(dāng)前節(jié)點(diǎn)的候選中繼節(jié)點(diǎn)列表是否為空;若非空,執(zhí)行步驟s7;
s6、構(gòu)造并廣播當(dāng)前節(jié)點(diǎn)的第二數(shù)據(jù)請求消息;
s7、構(gòu)造感知數(shù)據(jù)消息并廣播;
所述感知數(shù)據(jù)消息包括基站所請求的感知數(shù)據(jù)以及當(dāng)前節(jié)點(diǎn)上的候選中繼節(jié)點(diǎn)列表。
在這個實(shí)施例中,所述方法描述了在野外數(shù)據(jù)采集過程中,一個節(jié)點(diǎn)收到一個消息時的相關(guān)操作。所述方法中涉及的節(jié)點(diǎn)可以是進(jìn)行感知數(shù)據(jù)采集的傳感器節(jié)點(diǎn),也可以是基站。
在所述方法中,若當(dāng)前節(jié)點(diǎn)是基站,則所述方法還包括:廣播第一請求消息。優(yōu)選的,在基站上設(shè)置感知數(shù)據(jù)消息的接收時間,若在所述接收時間內(nèi)未收到所述感知數(shù)據(jù)消息,則廣播數(shù)據(jù)停止采集消息;所述數(shù)據(jù)停止采集消息包括一個用于節(jié)點(diǎn)的休眠時間長度。而對于不是基站的節(jié)點(diǎn),在當(dāng)接收的消息為所述數(shù)據(jù)停止采集消息,則執(zhí)行下述步驟:
s12、廣播所述數(shù)據(jù)停止采集消息,然后按數(shù)據(jù)停止采集消息中的休眠時間長度進(jìn)行休眠。
前述或以下實(shí)施方案中任一項(xiàng)方法,其中,所述第二數(shù)據(jù)請求消息包括節(jié)點(diǎn)與基站之間的距離。所述距離用于計(jì)算節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值,也可以用來判斷一個節(jié)點(diǎn)收到的第二數(shù)據(jù)請求消息是否有效。對于判斷收到的第二數(shù)據(jù)請求消息是否有效,可以使用其它方法判斷。
當(dāng)使用距離進(jìn)行判斷一個節(jié)點(diǎn)收到的第二數(shù)據(jù)請求消息是否有效時,具體地,所述判斷包括下述步驟:
將發(fā)送第二數(shù)據(jù)請求消息的節(jié)點(diǎn)記作第一節(jié)點(diǎn),將接收該第二數(shù)據(jù)請求消息的節(jié)點(diǎn)記作第二節(jié)點(diǎn);
若所述第二節(jié)點(diǎn)與基站之間的距離大于所述第一節(jié)點(diǎn)與基站之間的距離,則所述第二節(jié)點(diǎn)收到的第二數(shù)據(jù)請求消息被認(rèn)為有效。
候選中繼列表中的節(jié)點(diǎn)可以有多種確定優(yōu)先級的方法,比如單純的距離、剩余能量、鄰居節(jié)點(diǎn)個數(shù)等,這里給出一種優(yōu)選的方法,所述候選中繼列表中的節(jié)點(diǎn)按照其轉(zhuǎn)發(fā)能力值確定優(yōu)先級。
前述或以下實(shí)施方案中任一項(xiàng)方法,其中,所述轉(zhuǎn)發(fā)能力值計(jì)算方法如下:
(i)若要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)是作為基站的節(jié)點(diǎn)的鄰居節(jié)點(diǎn),則該節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值計(jì)算式為式(1);
(ii)若要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)不是作為基站的節(jié)點(diǎn)的鄰居節(jié)點(diǎn),則該節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值計(jì)算式為式(2);
式(1)中:
e表示要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)的剩余能量,e表示要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)的初始總能量;
d′為要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)與作為基站的節(jié)點(diǎn)之間的距離進(jìn)行歸一化處理后的值,d′∈[0,1.0];
α表示要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn)的剩余能量在轉(zhuǎn)發(fā)能力值中所占的權(quán)重,α∈[0,1.0];
c表示轉(zhuǎn)發(fā)能力值,c∈[0,1.0];
式(2)中:
v表示要計(jì)算轉(zhuǎn)發(fā)能力值的節(jié)點(diǎn);
ev表示節(jié)點(diǎn)v的剩余能量,e表示節(jié)點(diǎn)v的初始總能量;
d′v表示節(jié)點(diǎn)v與基站之間的距離進(jìn)行歸一化處理后的值;
α表示節(jié)點(diǎn)v的剩余能量在轉(zhuǎn)發(fā)能力值中所占的權(quán)重,α∈[0,1.0];
β表示節(jié)點(diǎn)v與基站的距離在轉(zhuǎn)發(fā)能力值中所占的權(quán)重,β∈[0,1.0];
γ表示節(jié)點(diǎn)v的鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)能力的折扣因子,γ∈[0,1.0];
vi表示第i個有效的第二數(shù)據(jù)請求消息所對應(yīng)的廣播節(jié)點(diǎn);
cv表示節(jié)點(diǎn)v的轉(zhuǎn)發(fā)能力值,cv∈[0,1.0]。
優(yōu)選的,將當(dāng)前節(jié)點(diǎn)與作為基站的節(jié)點(diǎn)之間的距離記錄在第二數(shù)據(jù)請求消息中,以方便計(jì)算。
使用轉(zhuǎn)發(fā)能力值來確定候選中繼列表,使得本發(fā)明方法無需提前計(jì)算最優(yōu)數(shù)據(jù)采集路徑。在轉(zhuǎn)發(fā)能力值的計(jì)算過程中,考慮了節(jié)點(diǎn)與接收基站的距離及自身剩余能量,并且考慮了該節(jié)點(diǎn)的候選中繼節(jié)點(diǎn)的個數(shù),每個候選中繼節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值,以及數(shù)據(jù)采集過程中本節(jié)點(diǎn)的后續(xù)傳輸路徑上的節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值,將這些因素進(jìn)行了綜合計(jì)算,因而可以準(zhǔn)確度量該節(jié)點(diǎn)作為候選中繼節(jié)點(diǎn)的能力。整個計(jì)算過程所需的計(jì)算步驟、傳輸數(shù)據(jù)量和存儲數(shù)據(jù)量都較小,更適合應(yīng)用于資源受限的傳感器設(shè)備。
優(yōu)選的,將當(dāng)前節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值記錄在第二數(shù)據(jù)請求消息中,以方便在構(gòu)造候選中繼節(jié)點(diǎn)列表時,對候選中繼節(jié)點(diǎn)排序。
前述或以下實(shí)施方案中任一項(xiàng)方法,進(jìn)一步通過設(shè)置廣播計(jì)時器來控制重新廣播感知數(shù)據(jù)消息的時間,所述步驟s7在廣播感知數(shù)據(jù)消息的同時,還包括下述步驟:
s701、在構(gòu)造感知數(shù)據(jù)消息的節(jié)點(diǎn)上,設(shè)置并啟動所述感知數(shù)據(jù)消息對應(yīng)的廣播計(jì)時器;
s702、監(jiān)聽感知數(shù)據(jù)消息的確認(rèn)消息;若監(jiān)聽到感知數(shù)據(jù)消息的確認(rèn)消息,執(zhí)行步驟s703;否則,執(zhí)行步驟s704;
s703、停止所述廣播計(jì)時器計(jì)時;
s704、判斷所述廣播計(jì)時器計(jì)時是否結(jié)束;若所述廣播計(jì)時器計(jì)時結(jié)束;執(zhí)行步驟s705;
s705、重新廣播所述感知數(shù)據(jù)消息并重啟所述廣播計(jì)時器;返回步驟s702。
前述或以下實(shí)施方案中任一項(xiàng)方法,進(jìn)一步通過設(shè)置任務(wù)計(jì)時器來控制節(jié)點(diǎn)收到感知數(shù)據(jù)消息發(fā)送時間,以確保轉(zhuǎn)發(fā)感知數(shù)據(jù)消息的節(jié)點(diǎn)是當(dāng)前優(yōu)先級高的節(jié)點(diǎn),即所述步驟s7在廣播感知數(shù)據(jù)消息之前,還包括下述步驟:
s711、啟動當(dāng)前節(jié)點(diǎn)上的任務(wù)計(jì)時器;
s712、在所述任務(wù)計(jì)時器處于終止時間時,將當(dāng)前節(jié)點(diǎn)上的候選中繼節(jié)點(diǎn)列表加入到接收的感知數(shù)據(jù)消息中。
本公開的另一方面,針對前述實(shí)施方案中任一項(xiàng)方法,提出了一種無線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn),所述節(jié)點(diǎn)采用上述方法廣播消息和接收消息。
圖1提供了一種完備的數(shù)據(jù)采集方法,其包括前述方法步驟。對于前述未給出的操作,比如若接收的第二數(shù)據(jù)請求消息無效的處理,在圖1中為丟棄無效的第二數(shù)據(jù)請求消息,或者不處理。這些圖1中給出的前述方法中未給出的操作,可以有其它的方式處理,并不是必須按照圖1這樣處理。
在一個實(shí)施例中,提供了一種節(jié)點(diǎn),所述節(jié)點(diǎn)主要采用圖1所示的方法廣播消息和接收消息。所述節(jié)點(diǎn)包括基站。根據(jù)圖1,同一節(jié)點(diǎn)接收不同消息,具有不同的操作。將方法應(yīng)用于節(jié)點(diǎn)時,可以區(qū)別節(jié)點(diǎn)的類型,比如基站、基站的鄰居節(jié)點(diǎn)、不是基站的鄰居節(jié)點(diǎn),不同類型的節(jié)點(diǎn)接收其能力范圍內(nèi)的消息,然后執(zhí)行相應(yīng)的操作。但是,為了方便部署,且在野外工作時,不因某個類型的節(jié)點(diǎn)出現(xiàn)問題而導(dǎo)致數(shù)據(jù)無法采集,可以優(yōu)選使每個節(jié)點(diǎn)都具有處理不同消息的能力。
下面根據(jù)節(jié)點(diǎn)類型闡述不同類型的節(jié)點(diǎn)可能具有的操作,所述操作中的主要部分已經(jīng)在圖1中體現(xiàn),為了清楚,還包括圖1中未表達(dá)的內(nèi)容。
1、基站
(1.1)基站廣播第一數(shù)據(jù)請求消息。
(1.2)若所述基站在設(shè)定時間內(nèi)未收到所請求的數(shù)據(jù),則基站廣播對該數(shù)據(jù)停止采集的消息。
(1.3)若所述基站收到所請求的數(shù)據(jù),則基站廣播收到所請求數(shù)據(jù)的確認(rèn)消息。
2、基站的鄰居節(jié)點(diǎn)
(2.1)若節(jié)點(diǎn)收到基站廣播的第一數(shù)據(jù)請求消息,若所述節(jié)點(diǎn)沒有所請求的數(shù)據(jù),則計(jì)算轉(zhuǎn)發(fā)能力值,并構(gòu)造并廣播第二數(shù)據(jù)請求消息;其中,所述第二數(shù)據(jù)請求消息包括所述第一數(shù)據(jù)請求消息、當(dāng)前節(jié)點(diǎn)標(biāo)識、當(dāng)前節(jié)點(diǎn)與基站的距離,以及當(dāng)前節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值。若所述節(jié)點(diǎn)有所請求的數(shù)據(jù),則將構(gòu)造包含該數(shù)據(jù)的感知數(shù)據(jù)消息,發(fā)給基站,基站收到該感知數(shù)據(jù)消息后,取出數(shù)據(jù),廣播收到所請求數(shù)據(jù)的確認(rèn)消息。
(2.2)若節(jié)點(diǎn)收到感知數(shù)據(jù)消息,若其不在該感知數(shù)據(jù)消息的候選中繼節(jié)點(diǎn)列表中,或者已經(jīng)存儲過感知數(shù)據(jù),則不處理或者丟棄接收的感知數(shù)據(jù)消息。若其在該感知數(shù)據(jù)消息的候選中繼節(jié)點(diǎn)列表中,且沒有存儲該感知數(shù)據(jù)消息中的感知數(shù)據(jù),則存儲所述感知數(shù)據(jù)。啟動任務(wù)計(jì)時器,在任務(wù)計(jì)時器處于終止時間時,構(gòu)造包含感知數(shù)據(jù)的感知數(shù)據(jù)消息并廣播。同時啟動廣播計(jì)時器,監(jiān)聽該節(jié)點(diǎn)廣播的感知數(shù)據(jù)消息的確認(rèn)消息,若在監(jiān)聽過程中,所述廣播計(jì)時器計(jì)時結(jié)束,則重新廣播所述感知數(shù)據(jù)消息并重啟所述廣播計(jì)時器;直至監(jiān)聽到所述感知數(shù)據(jù)消息的確認(rèn)消息。由于是基站的鄰居節(jié)點(diǎn),其廣播的感知數(shù)據(jù)消息的接收對象是基站,因此也可以約定其廣播的感知數(shù)據(jù)消息只有感知數(shù)據(jù)。但為了和其它不是基站的鄰居節(jié)點(diǎn)的感知數(shù)據(jù)消息形式統(tǒng)一,所述感知數(shù)據(jù)消息包含所請求的感知數(shù)據(jù)和空的候選中繼節(jié)點(diǎn)列表。在這種情況下,節(jié)點(diǎn)部署時不需要區(qū)分是否為基站的鄰居節(jié)點(diǎn)。
(2.3)若節(jié)點(diǎn)收到對該數(shù)據(jù)停止采集消息,則廣播該消息,進(jìn)入休眠狀態(tài)。若節(jié)點(diǎn)此時有該數(shù)據(jù)的感知數(shù)據(jù)消息,在進(jìn)入休眠狀態(tài)之前,先停止并刪除該感知數(shù)據(jù)消息對應(yīng)的計(jì)時器,然后丟棄該感知數(shù)據(jù)消息。
3、不是基站的鄰居節(jié)點(diǎn)
(3.1)若節(jié)點(diǎn)收到第二數(shù)據(jù)請求消息,首先,判斷所述第二數(shù)據(jù)請求消息是否收到過。若收到過,則丟棄。若沒收到過,則判斷所述第二數(shù)據(jù)請求消息是否有效。若無效,則丟棄;若有效,建立第二數(shù)據(jù)請求消息集合,判斷所述第二數(shù)據(jù)請求消息集合中的第二數(shù)據(jù)請求消息是否有效,并將所有有效的第二數(shù)據(jù)請求消息中的節(jié)點(diǎn)添加到節(jié)點(diǎn)上的候選中繼節(jié)點(diǎn)列表中。其次,判斷自身是否有所請求的數(shù)據(jù),若沒有,則計(jì)算自身的轉(zhuǎn)發(fā)能力值,構(gòu)造自身的第二數(shù)據(jù)請求消息并廣播。若有所請求的數(shù)據(jù),則構(gòu)造感知數(shù)據(jù)消息并廣播。在廣播的同時,啟動節(jié)點(diǎn)上該數(shù)據(jù)包對應(yīng)的廣播計(jì)時器,監(jiān)聽該節(jié)點(diǎn)廣播的感知數(shù)據(jù)消息的確認(rèn)消息,若在監(jiān)聽過程中,所述廣播計(jì)時器計(jì)時結(jié)束,則重新廣播所述感知數(shù)據(jù)消息并重啟所述廣播計(jì)時器;直至監(jiān)聽到所述感知數(shù)據(jù)消息的確認(rèn)消息。
(3.2)若節(jié)點(diǎn)收到感知數(shù)據(jù)消息,相應(yīng)操作同(2.2)。
(3.3)若節(jié)點(diǎn)收到對該數(shù)據(jù)停止采集消息,相應(yīng)操作同(2.3)。
若節(jié)點(diǎn)收到重復(fù)的第一數(shù)據(jù)請求消息、或者重復(fù)的第二數(shù)據(jù)請求消息、或者自己廣播的第二數(shù)據(jù)請求消息,則丟棄這些數(shù)據(jù)請求消息。
針對前述實(shí)施方案中任一項(xiàng)方法,本發(fā)明提出了一種無線傳感器網(wǎng)絡(luò),所述網(wǎng)絡(luò)包括節(jié)點(diǎn),所述節(jié)點(diǎn)采用上述方法進(jìn)行消息廣播。
下面實(shí)施例中結(jié)合附圖1-2闡述本公開的方法。
在這個實(shí)施例中涉及的通用參數(shù)的取值如下:α=0.4,β=0.2,γ=0.3,e=500。
計(jì)時器設(shè)置時間長度時遵照下述原則:
(i)所述感知數(shù)據(jù)消息在發(fā)送節(jié)點(diǎn)上對應(yīng)的廣播計(jì)時器設(shè)置的時間長度大于其在接收節(jié)點(diǎn)上對應(yīng)的任務(wù)計(jì)時器設(shè)置的時間長度;
(ii)且所述感知數(shù)據(jù)消息在節(jié)點(diǎn)上設(shè)置的廣播計(jì)時器或任務(wù)計(jì)時器的時間長度與該節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力相關(guān),轉(zhuǎn)發(fā)能力越強(qiáng),該節(jié)點(diǎn)設(shè)置的廣播計(jì)時器或任務(wù)計(jì)時器的時間長度越短。
在這個實(shí)施例中:
若當(dāng)前節(jié)點(diǎn)接收感知數(shù)據(jù)消息,在該節(jié)點(diǎn)上,感知數(shù)據(jù)消息對應(yīng)的任務(wù)計(jì)時器的時間長度依照下述公式設(shè)定:
(k-1)×τ(3)
式(3)中:k為當(dāng)前節(jié)點(diǎn)在候選中繼節(jié)點(diǎn)列表上的位置,k為大于等于1的自然數(shù);τ為正整數(shù)。
若當(dāng)前節(jié)點(diǎn)發(fā)送感知數(shù)據(jù)消息,在該節(jié)點(diǎn)上,感知數(shù)據(jù)消息對應(yīng)的廣播計(jì)時器的時間長度依照下述公式設(shè)定:
(l-1)×τ+τ′(4)
式(4)中:τ為正整數(shù),τ′是小于τ的正整數(shù),l為當(dāng)前節(jié)點(diǎn)在候選中繼節(jié)點(diǎn)列表的位置。
通過公式(3)可以看出,若當(dāng)前節(jié)點(diǎn)在候選節(jié)點(diǎn)列表的第一個位置,即k為1,則該節(jié)點(diǎn)將自身節(jié)點(diǎn)的候選中繼節(jié)點(diǎn)列表與所請求的數(shù)據(jù)構(gòu)成感知數(shù)據(jù)消息,并廣播該感知數(shù)據(jù)消息,設(shè)置該感知數(shù)據(jù)消息所對應(yīng)的廣播計(jì)時器。
在這個實(shí)施例中,設(shè)定τ的值20,τ′的值為5。
根據(jù)圖1的活動圖,圖2中的無線傳感器網(wǎng)絡(luò)采集數(shù)據(jù)的過程如下:
基站bs廣播第一數(shù)據(jù)請求消息,將該第一數(shù)據(jù)請求消息設(shè)為r。由于距離因素,只有節(jié)點(diǎn)v12,v13,v14和v15收到了第一數(shù)據(jù)請求消息r,這些節(jié)點(diǎn)分別按照公式(1)計(jì)算自身節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值,將這些攜帶的轉(zhuǎn)發(fā)能力值相應(yīng)的記作
將節(jié)點(diǎn)v12的剩余能量記作
同理,可以計(jì)算節(jié)點(diǎn)v13,v14和v15的轉(zhuǎn)發(fā)能力值
節(jié)點(diǎn)v12構(gòu)造第二數(shù)據(jù)請求消息
若節(jié)點(diǎn)v12,v13,v14和v15再次接收到第一數(shù)據(jù)請求消息r,則丟棄,以避免對數(shù)據(jù)請求消息的多次重復(fù)轉(zhuǎn)發(fā),避免了網(wǎng)絡(luò)數(shù)據(jù)廣播風(fēng)暴,也在一定程度上節(jié)省了能量消耗,從而有利于延長網(wǎng)絡(luò)生存期。
節(jié)點(diǎn)v11收到周圍鄰居節(jié)點(diǎn)v12和v15廣播的第二數(shù)據(jù)請求消息,將節(jié)點(diǎn)v11自身與基站之間的距離和節(jié)點(diǎn)v12與基站之間的距離進(jìn)行比較,判斷節(jié)點(diǎn)v12廣播的第二數(shù)據(jù)請求消息
節(jié)點(diǎn)v11分別獲取有效的第二數(shù)據(jù)請求消息
節(jié)點(diǎn)v11按照公式(2)計(jì)算本節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力值
節(jié)點(diǎn)v11構(gòu)造并廣播第二數(shù)據(jù)請求消息
其它收到鄰居節(jié)點(diǎn)廣播的第二數(shù)據(jù)請求消息的節(jié)點(diǎn),若其沒有所請求的數(shù)據(jù),進(jìn)行相同的操作,直至最終所有節(jié)點(diǎn)都計(jì)算得出自己的轉(zhuǎn)發(fā)能力值,并確定了周圍鄰居節(jié)點(diǎn)作為候選中繼節(jié)點(diǎn)的優(yōu)先關(guān)系(即構(gòu)造出了候選中繼節(jié)點(diǎn)列表)。
在這個實(shí)施例中,節(jié)點(diǎn)v7有基站所請求的數(shù)據(jù),將該數(shù)據(jù)記作d7。當(dāng)節(jié)點(diǎn)v7收到第二數(shù)據(jù)請求消息后,構(gòu)造了候選中繼節(jié)點(diǎn)列表
節(jié)點(diǎn)v7廣播所構(gòu)造的感知數(shù)據(jù)消息p7,感知數(shù)據(jù)消息p7中候選中繼節(jié)點(diǎn)列表長度為4,根據(jù)公式(4)計(jì)算啟動該感知數(shù)據(jù)消息p7所對應(yīng)的廣播計(jì)時器的值為(4-1)×20+5=65。
當(dāng)感知數(shù)據(jù)消息p7所對應(yīng)的廣播計(jì)時器減小到0時,則重新廣播感知數(shù)據(jù)消息p7,并重新啟動廣播計(jì)時器。
因無線信道質(zhì)量和穩(wěn)定性等影響,假設(shè)節(jié)點(diǎn)v7的鄰居節(jié)點(diǎn)中只有節(jié)點(diǎn)v3,v5,v11和v8共計(jì)4個節(jié)點(diǎn)收到了節(jié)點(diǎn)v7廣播的感知數(shù)據(jù)消息p7。由于節(jié)點(diǎn)v11和v8判斷該感知數(shù)據(jù)消息為首次接收且其在數(shù)據(jù)包的候選節(jié)點(diǎn)列表
節(jié)點(diǎn)v11中感知數(shù)據(jù)消息p7對應(yīng)的計(jì)時器首先減小到0,此時,節(jié)點(diǎn)v11優(yōu)選先構(gòu)造并廣播針對感知數(shù)據(jù)消息p7的確認(rèn)消息,再構(gòu)造感知數(shù)據(jù)消息p11。然后將自身節(jié)點(diǎn)的候選中繼節(jié)點(diǎn)列表
節(jié)點(diǎn)v7收到對感知數(shù)據(jù)消息p7的確認(rèn)消息,停止并刪除針對感知數(shù)據(jù)消息p7的廣播計(jì)時器,同時丟棄感知數(shù)據(jù)消息p7。在這個實(shí)施例中,節(jié)點(diǎn)v11收到節(jié)點(diǎn)v12廣播的關(guān)于感知數(shù)據(jù)消息p11的確認(rèn)消息時,停止并刪除針對感知數(shù)據(jù)消息p11的廣播計(jì)時器,同時丟棄感知數(shù)據(jù)消息p11。當(dāng)感知數(shù)據(jù)消息p11在節(jié)點(diǎn)v12上對應(yīng)的任務(wù)計(jì)時器為0時,構(gòu)造包含數(shù)據(jù)d7的感知數(shù)據(jù)消息p12并廣播,同時啟動該感知數(shù)據(jù)消息對應(yīng)的廣播計(jì)時器,基站接收到該感知數(shù)據(jù)消息p12,從感知數(shù)據(jù)消息p12中取出數(shù)據(jù),并廣播對該感知數(shù)據(jù)消息p12的確認(rèn)消息。節(jié)點(diǎn)v12停止并刪除針對感知數(shù)據(jù)消息p12的廣播計(jì)時器,同時丟棄感知數(shù)據(jù)消息p12。
采用這種方式,無線傳感器網(wǎng)絡(luò)可以快速清除無需轉(zhuǎn)發(fā)的數(shù)據(jù)包,從而減少數(shù)據(jù)傳輸次數(shù),減少能量消耗,增加網(wǎng)絡(luò)生存期。
以上對本公開進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本公開的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本公開的方法及其核心思想;同時,對于本領(lǐng)域技術(shù)人員,依據(jù)本公開的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本公開的限制。