本發(fā)明屬于無線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種在無線傳感器網(wǎng)絡(luò)中傳遞數(shù)據(jù)的方法。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)通常是由大量微小而且低成本的傳感器組成,傳感器節(jié)點(diǎn)通過單跳或者多跳的方式向匯聚節(jié)點(diǎn)發(fā)送收集過來的信息。這些傳感器節(jié)點(diǎn)本身具有計(jì)算能力、存儲(chǔ)能力和通信能力。無線傳感器網(wǎng)絡(luò)的應(yīng)用十分廣泛,比如說,環(huán)境監(jiān)測(cè),智能家居,智能醫(yī)療等等。但由于應(yīng)用環(huán)境的特殊性,很難為每個(gè)無線傳感器更換電池,所以無線傳感器網(wǎng)絡(luò)的生命周期會(huì)受到能量的限制。如何利用每個(gè)傳感器節(jié)點(diǎn)有限的能量資源并采用一種高效數(shù)據(jù)傳遞方法,使能量消耗和能量負(fù)載達(dá)到平衡成為一個(gè)重要的研究課題。
典型的無線傳感器網(wǎng)絡(luò)包括密集部署的靜態(tài)傳感器節(jié)點(diǎn)和一個(gè)靜態(tài)的匯聚節(jié)點(diǎn)??拷鼌R靜態(tài)聚節(jié)點(diǎn)的無線傳感器節(jié)點(diǎn)負(fù)擔(dān)著較重的數(shù)據(jù)流量,因能量消耗較快而容易出現(xiàn)能量洞,大大降低了無線傳感器網(wǎng)絡(luò)的生命周期。所以,在傳統(tǒng)的路由協(xié)議中,為減少能量消耗,通過減少信息傳播的跳數(shù)和數(shù)據(jù)量成為首選策略,但是仍然避免不了靠近靜態(tài)匯聚節(jié)點(diǎn)的傳感器節(jié)點(diǎn)出現(xiàn)能量消耗較快的現(xiàn)象。一些研究者便提出了移動(dòng)的匯聚節(jié)點(diǎn)的策略,這樣移動(dòng)的匯聚節(jié)點(diǎn)附近的傳感器節(jié)點(diǎn)會(huì)隨著時(shí)間變化而變化,在某種程度上平衡了整個(gè)無線傳感器網(wǎng)絡(luò)的能量消耗,相比了靜態(tài)匯聚節(jié)點(diǎn)大大延長(zhǎng)了無線傳感器網(wǎng)絡(luò)的生命周期。例如,PEGASIS路由協(xié)議在能量平衡和延長(zhǎng)無線傳感網(wǎng)生命周期方面取得了很好的效果,但是該路由協(xié)議所采用的信息傳遞方法依然存在缺陷:容易出現(xiàn)長(zhǎng)鏈的現(xiàn)象;選取鏈頭的機(jī)制容易出現(xiàn)鏈頭離匯聚節(jié)點(diǎn)較遠(yuǎn)的現(xiàn)象;每一輪數(shù)據(jù)收集結(jié)束后鏈的切除將造成大量的通信開銷。再例如,MECA路由協(xié)議采取了移動(dòng)匯聚節(jié)點(diǎn)的信息傳遞方案,在延長(zhǎng)無線傳感器網(wǎng)絡(luò)生命周期方面取得顯著成效,但是在該方案中,遠(yuǎn)離匯聚節(jié)點(diǎn)的簇頭由于長(zhǎng)距離的數(shù)據(jù)傳輸,會(huì)造成能量消耗過快的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提出一種在無線傳感器網(wǎng)絡(luò)中傳遞數(shù)據(jù)的方法,克服了現(xiàn)有技術(shù) 中存在的能量空洞現(xiàn)象以及簇頭分布不均勻的問題,減輕了網(wǎng)絡(luò)流量負(fù)載,大大延長(zhǎng)了無線傳感器網(wǎng)絡(luò)的生命周期。
為了解決上述技術(shù)問題,本發(fā)明提供一種在無線傳感器網(wǎng)絡(luò)傳遞信息的方法,在感知區(qū)域的邊緣放置一個(gè)具有固定移動(dòng)軌跡的移動(dòng)匯聚節(jié)點(diǎn);將無線傳感器網(wǎng)絡(luò)等分為若干個(gè)簇集,每一個(gè)簇集選取各自的簇頭;使用貪心算法將各簇頭構(gòu)成一條鏈;選取與移動(dòng)匯聚節(jié)點(diǎn)距離最近的簇頭向移動(dòng)匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù)。
較佳地,所述移動(dòng)匯聚節(jié)點(diǎn)沿圓弧形感知區(qū)域邊緣順時(shí)針或者逆時(shí)針方向移動(dòng)。
較佳地,將每個(gè)簇集內(nèi)擁有最高剩余能量的傳感器節(jié)點(diǎn)作為所述簇頭。
較佳地,選擇擁有最高剩余的傳感器節(jié)點(diǎn)時(shí),將位于簇集中央的傳感器節(jié)點(diǎn)作為候選簇頭,所述候選簇頭在一定范圍內(nèi)向其他傳感器節(jié)點(diǎn)廣播包含有其ID和剩余能量信息的數(shù)據(jù)包;如果接收到所述數(shù)據(jù)包的傳感器節(jié)點(diǎn)的剩余能量大于所述候選簇頭,則將該傳感器節(jié)點(diǎn)作為新的候選簇頭;如果接收到所述數(shù)據(jù)包的傳感器節(jié)點(diǎn)的剩余能量與所述候選簇頭的剩余能量相等,則將兩者中具有較小ID者作為新的候選簇頭;如果接收到所述數(shù)據(jù)包的傳感器節(jié)點(diǎn)的剩余能量小于所述候選簇頭的剩余能量,則所述候選簇頭繼續(xù)廣播所述數(shù)據(jù)包;直至選出簇集內(nèi)擁有最高剩余能量的傳感器節(jié)點(diǎn)。
較佳地,各傳感器節(jié)點(diǎn)向簇頭發(fā)送數(shù)據(jù)時(shí),通過中繼節(jié)點(diǎn)選擇能量消耗最小的路由向簇頭發(fā)送數(shù)據(jù)。
較佳地,與移動(dòng)匯聚節(jié)點(diǎn)距離最近的簇頭將自身的數(shù)據(jù)與來自其他簇頭的數(shù)據(jù)融合后傳遞給移動(dòng)匯聚節(jié)點(diǎn)。
本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn)在于,(1)通過數(shù)據(jù)融合大大減少了傳感器節(jié)點(diǎn)發(fā)送的數(shù)據(jù)量;(2)通過采用移動(dòng)匯聚節(jié)點(diǎn),避免了能量空洞現(xiàn)象;(3)采用貪心算法將簇頭構(gòu)成一條鏈,由靠近移動(dòng)匯聚節(jié)點(diǎn)的簇頭發(fā)送數(shù)據(jù),避免了由離匯聚節(jié)點(diǎn)較遠(yuǎn)的簇頭發(fā)送數(shù)據(jù)時(shí)由于數(shù)據(jù)長(zhǎng)距離傳輸而造成的能量消耗過快的問題。
附圖說明
圖1是實(shí)施本發(fā)明的一個(gè)無線傳感器網(wǎng)絡(luò)示意圖。
圖2是本發(fā)明中的簇頭選擇流程圖。
圖3是本發(fā)明中簇頭成鏈流程圖。
具體實(shí)施方式
容易理解,依據(jù)本發(fā)明的技術(shù)方案,在不變更本發(fā)明的實(shí)質(zhì)精神的情況下,本領(lǐng)域的一般技術(shù)人員可以想象出本發(fā)在無線傳感器網(wǎng)絡(luò)傳遞信息的多種實(shí)施方式。因此,以下具體實(shí)施方式和附圖僅是對(duì)本發(fā)明的技術(shù)方案的示例性說明,而不應(yīng)當(dāng)視為本發(fā)明的全部或者視為對(duì)本發(fā)明技術(shù)方案的限制或限定。
結(jié)合圖1,無線傳感器網(wǎng)絡(luò)包括由各圓點(diǎn)表示的無線傳感器,無線傳感器網(wǎng)絡(luò)的感知區(qū)域?yàn)榘霃綖镽的圓形區(qū)域,無線傳感器網(wǎng)絡(luò)被等分為五個(gè)扇形的簇集,每一個(gè)簇集有一個(gè)以三角形表示的簇頭,在感知區(qū)域邊緣放置一個(gè)由五角星表示的移動(dòng)匯聚節(jié)點(diǎn),帶有圓圈的三角形表示選定的鏈頭節(jié)點(diǎn)。
移動(dòng)匯聚節(jié)點(diǎn)的移動(dòng)軌跡
移動(dòng)匯聚節(jié)點(diǎn)沿著順時(shí)針或者逆時(shí)針方向以速度v沿圓弧形感知區(qū)域邊緣移動(dòng),例如設(shè)定為以速度值為20并沿著順時(shí)針方向移動(dòng)。移動(dòng)匯聚節(jié)點(diǎn)只需要在一開始向無線傳感器網(wǎng)絡(luò)廣播它的當(dāng)前位置p0,網(wǎng)絡(luò)中的節(jié)傳感器點(diǎn)就可以根據(jù)移動(dòng)匯聚節(jié)點(diǎn)的移動(dòng)速度計(jì)算出經(jīng)過一段時(shí)間Δt后其所到大的位置pΔt,計(jì)算公式如下:
當(dāng)移動(dòng)匯聚節(jié)點(diǎn)廣播信息完成后,就準(zhǔn)備接受數(shù)據(jù)。移動(dòng)匯聚節(jié)點(diǎn)在接收數(shù)據(jù)時(shí)會(huì)停留足夠長(zhǎng)的時(shí)間以保證完成一輪數(shù)據(jù)的收集,然后再移動(dòng)到下一位置。
本發(fā)明采用移動(dòng)匯聚節(jié)點(diǎn),按照一定的周期移動(dòng),實(shí)現(xiàn)了移動(dòng)匯聚節(jié)點(diǎn)周圍傳感器能量負(fù)載平衡,有效的避免了能量空洞的現(xiàn)象。將感知區(qū)域平均分成若干等份作為每一個(gè)簇集,每一個(gè)簇集內(nèi)只有一個(gè)簇頭,相比較傳統(tǒng)的LEACH路由協(xié)議等,可以有效避免簇頭分布不均勻的問題。
簇頭選取
每一個(gè)簇集內(nèi)只有一個(gè)簇頭,相同的簇集內(nèi)的其他傳感器節(jié)點(diǎn)發(fā)送數(shù)據(jù)給簇頭節(jié)點(diǎn),然后簇頭節(jié)點(diǎn)進(jìn)行數(shù)據(jù)融合,從而減少了流量負(fù)載。
在選擇簇頭時(shí),首先選擇每個(gè)簇集中央的傳感器節(jié)點(diǎn)Si作為簇頭節(jié)點(diǎn)的候選者,然后傳感器節(jié)點(diǎn)Si在范圍R內(nèi)廣播一個(gè)包含有其ID和剩余能量信息的數(shù)據(jù)包,只有在發(fā)送范圍R內(nèi)的其他傳感器節(jié)點(diǎn)可以接受到這個(gè)廣播信息,目的是為了讓簇內(nèi)其他傳感器節(jié)點(diǎn)競(jìng)爭(zhēng)成為簇頭。如果傳感器節(jié)點(diǎn)Sj的剩余能量大于傳感器節(jié)點(diǎn)Si的剩余能量,則將 傳感器節(jié)點(diǎn)Sj作為新的簇頭候選者,并由傳感器節(jié)點(diǎn)Sj在范圍R內(nèi)廣播一個(gè)包含有其ID和剩余能量信息的數(shù)據(jù)包,進(jìn)行下一輪簇頭競(jìng)爭(zhēng);如果傳感器節(jié)點(diǎn)Sj的剩余能量和傳感器節(jié)點(diǎn)Si的剩余能量相等,則將帶有較小ID的傳感器節(jié)點(diǎn)作為新的簇頭候選者;如果傳感器節(jié)點(diǎn)Sj的剩余能量小于傳感器節(jié)點(diǎn)Si的剩余能量,則傳感器節(jié)點(diǎn)Si繼續(xù)廣播包含有其ID和剩余能量信息的數(shù)據(jù)包。經(jīng)過前述競(jìng)爭(zhēng),每個(gè)簇內(nèi)擁有最高剩余能量的傳感器節(jié)點(diǎn)將成為簇頭。其中,i和j分別為簇內(nèi)不同傳感器節(jié)點(diǎn)的編號(hào),用于表示不同的傳感器節(jié)點(diǎn)。
簇內(nèi)路由選擇
每個(gè)傳感器節(jié)點(diǎn)發(fā)送一個(gè)l-bits信息經(jīng)過距離d所消耗的能量ETx以及接受數(shù)據(jù)所消耗的能量ERx的能量公式如下:
ERx(l)=lEelec
其中,Eelec表示發(fā)送器或者接收器發(fā)送或者接收每一位數(shù)據(jù)需要消耗的能量,εfs和εmp分別表示發(fā)送器放大器的功效和信道條件。
簇集內(nèi)任意一個(gè)傳感器節(jié)點(diǎn)Si,直接發(fā)送數(shù)據(jù)到簇頭所需要消耗的能量 的能量公式如下:
可以看出,當(dāng)若離簇頭較遠(yuǎn)的傳感器節(jié)點(diǎn)Si直接發(fā)送數(shù)據(jù)給簇頭時(shí),會(huì)產(chǎn)生較多的能量消耗,所以需要選擇一個(gè)傳感器節(jié)點(diǎn)Sj作為中繼節(jié)點(diǎn),從傳感器節(jié)點(diǎn)Si到中繼節(jié)點(diǎn)Sj再到簇頭所消耗的能量的能量公式如下:
節(jié)點(diǎn)之間路由選擇就根據(jù)和中選取能量消耗值較小的路徑:
E(Si)便是傳感器節(jié)點(diǎn)Si選擇中繼節(jié)點(diǎn)的判斷標(biāo)準(zhǔn)。
本發(fā)明簇集內(nèi)的傳感器節(jié)點(diǎn)根據(jù)其與簇頭之間的距離選擇直接向簇頭發(fā)送數(shù)據(jù)或者通過中繼節(jié)點(diǎn)間接向簇頭發(fā)送數(shù)據(jù),并不是如傳統(tǒng)的簇內(nèi)路由協(xié)議那樣直接向簇頭發(fā)送數(shù)據(jù),離簇頭較遠(yuǎn)的傳感器節(jié)點(diǎn)可以選擇合適的中繼節(jié)點(diǎn)發(fā)送數(shù)據(jù),避免了因?yàn)殚L(zhǎng)距離傳輸消耗過多的能量。
簇頭成鏈
數(shù)據(jù)傳輸時(shí),先在各簇頭中確定鏈的鏈頭節(jié)點(diǎn),然后將各簇頭成鏈,各簇頭將數(shù)據(jù)傳遞給鏈頭節(jié)點(diǎn),鏈頭節(jié)點(diǎn)把數(shù)據(jù)與自身的數(shù)據(jù)融合后直接與移動(dòng)匯聚節(jié)點(diǎn)通信。
確定鏈頭節(jié)點(diǎn)的步驟如下:
(1)移動(dòng)匯聚節(jié)點(diǎn)向每個(gè)簇頭發(fā)出廣播信息,要求每個(gè)簇頭接收到信息后反饋?zhàn)陨淼腎D和所在的位置坐標(biāo)位置坐標(biāo)由各簇頭現(xiàn)場(chǎng)測(cè)量得到。
(2)收到移動(dòng)匯聚節(jié)點(diǎn)廣播的前述信息的簇頭開始單播發(fā)送反饋信息給簇頭,非簇頭的傳感器節(jié)點(diǎn)不做任何反應(yīng),進(jìn)入休眠狀態(tài)。
(3)移動(dòng)匯聚節(jié)點(diǎn)接收到簇頭反饋信息后計(jì)算各個(gè)簇頭到移動(dòng)匯聚節(jié)點(diǎn)的距離D(CHi,SIN),取距離移動(dòng)匯聚節(jié)點(diǎn)最近的簇頭作為鏈頭節(jié)點(diǎn)。
距離D(CHi,SIN)的計(jì)算公式如下:
其中,(Xsin,Ysin)為移動(dòng)匯聚節(jié)點(diǎn)的坐標(biāo)。
鏈頭節(jié)點(diǎn)確定后,利用PEGASIS思想,采用貪心算法將各簇頭成鏈。
如果簇頭直接向移動(dòng)匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù),則距離匯聚節(jié)點(diǎn)較遠(yuǎn)的簇頭會(huì)應(yīng)為長(zhǎng)距離的數(shù)據(jù)傳輸導(dǎo)致能量消耗過快。而本發(fā)明將各簇頭通過貪心算法構(gòu)成一條鏈,選取距離移動(dòng)匯聚節(jié)點(diǎn)最近的簇頭作為這條鏈的鏈頭節(jié)點(diǎn)向匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù),不但避免了長(zhǎng)距離傳輸,而且數(shù)據(jù)融合大大減少了傳輸?shù)臄?shù)據(jù)量。