本發(fā)明屬于無線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種基于相長干涉的按需快速喚醒協(xié)議。
背景技術(shù):
在無線傳感器網(wǎng)絡(luò)中,能量一直是需要考慮的關(guān)鍵問題。有研究表明,傳感器節(jié)點(diǎn)在空閑偵聽消耗了大量的不必要的能量。因此傳感器節(jié)點(diǎn)通常采用睡眠調(diào)度以節(jié)省能量,只有在清醒(工作)狀態(tài)才能承擔(dān)通信任務(wù)。睡眠調(diào)度雖然可以顯著降低能量消耗、提高網(wǎng)絡(luò)壽命,但是也會增加數(shù)據(jù)端到端的傳輸延時(shí),這也給一些延時(shí)敏感的應(yīng)用帶來了挑戰(zhàn)。如火災(zāi)監(jiān)控、非法入侵監(jiān)控、空氣污染監(jiān)控等應(yīng)用,要求最小化數(shù)據(jù)端到端的傳輸延時(shí),能夠在很短的時(shí)間內(nèi)完成目標(biāo)事件的感知和匯報(bào)。
為了低能耗的快速喚醒睡眠節(jié)點(diǎn),一種有效的方式是給傳感器節(jié)點(diǎn)配備了額外的低功耗喚醒天線WuRx(Wakeup Receiver),使用主天線進(jìn)行數(shù)據(jù)傳輸,使用WuRx進(jìn)行喚醒。WuRx要求接收到的信號功率一般高于-29.3dBm,喚醒距離也在35m左右。而傳統(tǒng)的天線具有更高的靈敏度和傳輸距離,例如傳感器廣泛采用的天線CC2420具有高達(dá)-95dBm的靈敏度,其傳輸距離也在百米級。通過比較可以看出WuRx的靈敏度和工作距離都遠(yuǎn)遠(yuǎn)低于主天線。這種性能不匹配會造成需要喚醒的節(jié)點(diǎn)無法被及時(shí)喚醒,也就是說單跳數(shù)據(jù)傳輸范圍內(nèi)的節(jié)點(diǎn)需要經(jīng)過多跳進(jìn)行喚醒。使用附圖1舉例來說,如果節(jié)點(diǎn)S基于某種路由協(xié)議選擇節(jié)點(diǎn)D為自己的下一跳節(jié)點(diǎn)(路由協(xié)議通常根據(jù)主天線的傳輸特性建立路由),如果節(jié)點(diǎn)SD距離超過了喚醒距離,那么節(jié)點(diǎn)S無法直接喚醒節(jié)點(diǎn)D,只能首先喚醒A再喚醒D。針對該問題,本發(fā)明研究一種基于WuRx的快速喚醒機(jī)制,設(shè)計(jì)一種最小跳數(shù)按需喚醒機(jī)制,并在喚醒過程中利用相長干涉加強(qiáng)喚醒信號擴(kuò)展喚醒信號的傳輸距離,可以最快的喚醒目的節(jié)點(diǎn),最終實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)性傳輸。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對上述問題的不足,提出一種基于相長干涉的無線傳感器網(wǎng)絡(luò)按需快速喚醒方法,本發(fā)明可以只在需要的時(shí)候快速的喚醒睡眠節(jié)點(diǎn),從而在盡可能節(jié)能的前提下實(shí)現(xiàn)提高數(shù)據(jù)傳輸實(shí)時(shí)性的目的。
本發(fā)明為解決上述技術(shù)問題提出的技術(shù)方案是:
一種基于相長干涉的無線傳感器網(wǎng)絡(luò)按需快速喚醒方法,考慮到低功耗喚醒天線的有限喚醒距離,在任何相鄰的數(shù)據(jù)傳輸路由節(jié)點(diǎn)間,節(jié)點(diǎn)將在任何需要的節(jié)點(diǎn)和其轉(zhuǎn)發(fā)節(jié)點(diǎn)之間根據(jù)梯度建立最小跳數(shù)的多跳喚醒路由并為喚醒路由上的節(jié)點(diǎn)指定相長干涉協(xié)作節(jié)點(diǎn)以及喚醒信號轉(zhuǎn)發(fā)延時(shí);在數(shù)據(jù)通信過程中當(dāng)有喚醒需求時(shí),將沿著喚醒路由進(jìn)行喚醒,同時(shí),通過喚醒信號的轉(zhuǎn)發(fā)延時(shí)設(shè)置,使得喚醒上的路由節(jié)點(diǎn)和協(xié)作節(jié)點(diǎn)同時(shí)轉(zhuǎn)發(fā)喚醒信號,利用相長干涉擴(kuò)展喚醒范圍,直至到喚醒目標(biāo)接收節(jié)點(diǎn)的主天線。
優(yōu)選的:根據(jù)梯度建立最小跳數(shù)的多跳喚醒路由的方法:
對于任何一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)S需要喚醒它的下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)D時(shí),從節(jié)點(diǎn)S開始使用喚醒天線發(fā)送喚醒路由建立請求信號WAKEUP_RREQ;在轉(zhuǎn)發(fā)過程中每個(gè)節(jié)點(diǎn)更新并記錄距離S的最小跳數(shù)為梯度,并轉(zhuǎn)發(fā)WAKEUP_RREQ;在轉(zhuǎn)發(fā)過程中每個(gè)節(jié)點(diǎn)會偵聽所有鄰居節(jié)點(diǎn)信號,并選擇相同梯度中最強(qiáng)信號的作為自己的協(xié)作節(jié)點(diǎn);節(jié)點(diǎn)D在收到的所有WAKEUP_RREQ中選擇最小跳數(shù)的路徑,并原路返回喚醒路由建立應(yīng)答信號WAKEUP_RREP;中間節(jié)點(diǎn)在收到WAKEUP_RREP后確定自己是喚醒路由上的節(jié)點(diǎn)和協(xié)作節(jié)點(diǎn);節(jié)點(diǎn)S收到WAKEUP_RREP表示喚醒路由建立和協(xié)作節(jié)點(diǎn)選擇完畢。
優(yōu)選的:當(dāng)有相鄰節(jié)點(diǎn)喚醒的需要時(shí),即有數(shù)據(jù)需要從發(fā)送節(jié)點(diǎn)S到達(dá)睡眠的喚醒目標(biāo)接收節(jié)點(diǎn)D時(shí),發(fā)送節(jié)點(diǎn)S將沿著喚醒路由發(fā)送喚醒信號WAKEUP_REQ;只有喚醒路由上的節(jié)點(diǎn)和協(xié)作節(jié)點(diǎn)在接收到喚醒信號后按照設(shè)定的轉(zhuǎn)發(fā)延時(shí)轉(zhuǎn)發(fā)喚醒信號,利用相長干涉擴(kuò)大喚醒范圍,其他節(jié)點(diǎn)將進(jìn)入睡眠;如果喚醒路由上的節(jié)點(diǎn)和協(xié)作節(jié)點(diǎn)在轉(zhuǎn)發(fā)之前偵聽到更高梯度節(jié)點(diǎn)的喚醒信號則進(jìn)入睡眠抑制轉(zhuǎn)發(fā);接收節(jié)點(diǎn)在接收到喚醒信號后喚醒主天線向發(fā)送節(jié)點(diǎn)返回WAKEUP_REP信號;發(fā)送節(jié)點(diǎn)S如果在一定時(shí)間內(nèi)收到WAKEUP_REP信號則進(jìn)行數(shù)據(jù)傳輸,否則重新發(fā)送喚醒信號。
優(yōu)選的:喚醒信號WAKEUP_REQ里僅含有當(dāng)前節(jié)點(diǎn)的梯度和目標(biāo)節(jié)點(diǎn)D。
優(yōu)選的:喚醒信號轉(zhuǎn)發(fā)延時(shí)如下設(shè)置:
T=(G-g)Tmax/G+Tp
其中,T表示從接收到信號時(shí)刻開始的轉(zhuǎn)發(fā)延時(shí),G為最大梯度數(shù),g表示當(dāng)前節(jié)點(diǎn)的梯度,Tmax是最大延遲,Tp表示處理信號等所需要的時(shí)間,梯度為距離S節(jié)點(diǎn)的最小跳數(shù)。
相比現(xiàn)有技術(shù),具有以下有益效果:
本發(fā)明在使用低功耗喚醒天線的無線傳感器網(wǎng)絡(luò)中,節(jié)點(diǎn)將在任何需要的節(jié)點(diǎn)和其轉(zhuǎn)發(fā)節(jié)點(diǎn)之間建立最小跳數(shù)的多跳喚醒路由并為喚醒路由上的節(jié)點(diǎn)指定相長干涉協(xié)作節(jié)點(diǎn)。在數(shù)據(jù)通信過程中當(dāng)有喚醒需求時(shí),將沿著喚醒路由進(jìn)行喚醒,同時(shí)節(jié)點(diǎn)根據(jù)梯度確定喚醒信號的轉(zhuǎn)發(fā)延時(shí)。同時(shí),通過喚醒信號的轉(zhuǎn)發(fā)延時(shí)設(shè)置,使得喚醒上的路由節(jié)點(diǎn)和協(xié)作節(jié)點(diǎn)同時(shí)轉(zhuǎn)發(fā)喚醒信號,利用相長干涉擴(kuò)展喚醒范圍,加速喚醒過程。通過這種機(jī)制,可以只在需要的時(shí)候快速的喚醒睡眠節(jié)點(diǎn),從而在盡可能節(jié)能的前提下實(shí)現(xiàn)提高數(shù)據(jù)傳輸實(shí)時(shí)性的目的。因此本發(fā)明可以針對延時(shí)敏感的事件監(jiān)控網(wǎng)絡(luò)(例如火災(zāi)監(jiān)控、非法入侵監(jiān)控、空氣污染監(jiān)控等無線傳感器網(wǎng)絡(luò))等,設(shè)計(jì)一種按需多跳喚醒路由可以按需的快速喚醒睡眠傳感器節(jié)點(diǎn),并在喚醒過程中利用相長干涉加速喚醒過程,并最終實(shí)現(xiàn)能耗、網(wǎng)絡(luò)壽命、傳輸延時(shí)之間的良好平衡關(guān)系。
附圖說明
圖1單跳數(shù)據(jù)傳輸?shù)泥従庸?jié)點(diǎn)需要經(jīng)過多跳喚醒。
圖2喚醒過程。
具體實(shí)施方式
附圖非限制性地公開了本發(fā)明一個(gè)優(yōu)選實(shí)施例的結(jié)構(gòu)示意圖,以下將結(jié)合附圖詳細(xì)地說明本發(fā)明的技術(shù)方案。
實(shí)施例
假設(shè)某無線傳感器網(wǎng)絡(luò)隨機(jī)或有規(guī)劃的部署在事件監(jiān)控區(qū)域內(nèi),每個(gè)傳感器節(jié)點(diǎn)配備了較高功耗的主天線和低功耗的喚醒天線。在無通信任務(wù)時(shí),主天線睡眠;在有通信任務(wù)時(shí),發(fā)送節(jié)點(diǎn)會發(fā)送喚醒信號,目的接收節(jié)點(diǎn)的低功耗喚醒天線接收到喚醒信號后會喚醒接收節(jié)點(diǎn)的主天線進(jìn)行數(shù)據(jù)傳輸。本發(fā)明假設(shè)已經(jīng)有某種路由協(xié)議的存在,即每個(gè)節(jié)點(diǎn)已經(jīng)知道自己的下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)。
本協(xié)議包括兩個(gè)階段:喚醒路由的建立階段和按需喚醒階段。下面將分別詳細(xì)敘述每個(gè)階段的具體實(shí)施方式。
1)喚醒路由的建立階段
本階段為網(wǎng)絡(luò)初始化階段,用于建立喚醒路由和協(xié)作節(jié)點(diǎn)。喚醒路由的建立必須取決于數(shù)據(jù)傳輸路由,當(dāng)某種數(shù)據(jù)傳輸路由建立完畢,則喚醒路由建立開始(也可以和路由建立過程同步進(jìn)行)。如果節(jié)點(diǎn)S選擇了節(jié)點(diǎn)D作為自己的下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn),則S發(fā)起到達(dá)D的喚醒路由建立過程。為最快喚醒,本發(fā)明利用相長干涉擴(kuò)展喚醒范圍。具體過程如下。
a.從節(jié)點(diǎn)S開始使用喚醒天線發(fā)送喚醒路由請求信號WAKEUP_RREQ,包含目的節(jié)點(diǎn)D的地址;
b.每個(gè)接收到的中間節(jié)點(diǎn)建立喚醒梯度,梯度即距離S節(jié)點(diǎn)的最小跳數(shù);
c.更新梯度后,每個(gè)接收到WAKEUP_RREQ的節(jié)點(diǎn)將轉(zhuǎn)發(fā)WAKEUP_RREQ;
d.節(jié)點(diǎn)D接收到多條路徑傳來的WAKEUP_RREQ后將選擇最小跳數(shù)的路由作為喚醒路由(如果有多條最小跳數(shù)的路由,則選擇最早收到的作為喚醒路由),并原路返回WAKEUP_RREP;
e.中間節(jié)點(diǎn)收到WAKEUP_RREP后將確定自己為喚醒路由上的節(jié)點(diǎn),并在WAKEUP_RREP里添加協(xié)作節(jié)點(diǎn)信息,協(xié)作節(jié)點(diǎn)偵聽到后確定自己為協(xié)作節(jié)點(diǎn);
f.節(jié)點(diǎn)S收到WAKEUP_RREP后,喚醒路由建立和協(xié)作節(jié)點(diǎn)選擇完畢。
2)數(shù)據(jù)傳輸階段
當(dāng)節(jié)點(diǎn)S有數(shù)據(jù)發(fā)送給D時(shí),首先需要按需的喚醒節(jié)點(diǎn)D。節(jié)點(diǎn)S沿著喚醒路由發(fā)送喚醒信號WAKEUP_REQ。喚醒信號WAKEUP_REQ里僅含有當(dāng)前節(jié)點(diǎn)的梯度和目標(biāo)節(jié)點(diǎn)D,因此相同梯度的節(jié)點(diǎn)轉(zhuǎn)發(fā)的喚醒信號將是相同的信號,可以利用相長干涉擴(kuò)展喚醒范圍。喚醒過程中,只有喚醒路由上的節(jié)點(diǎn)和其協(xié)作節(jié)點(diǎn)可以轉(zhuǎn)發(fā)喚醒信號,在接收到喚醒信號后將根據(jù)轉(zhuǎn)發(fā)延遲T轉(zhuǎn)發(fā)喚醒信號。其中每個(gè)節(jié)點(diǎn)的轉(zhuǎn)發(fā)延遲T是根據(jù)節(jié)點(diǎn)的梯度設(shè)置的,具體設(shè)置如下:
T=(G-g)Tmax/G+Tp, (1)
其中T表示從接收到信號時(shí)刻開始的轉(zhuǎn)發(fā)延遲,g表示當(dāng)前節(jié)點(diǎn)的梯度;Tp表示處理信號等所需要的時(shí)間,設(shè)為一個(gè)固定值;G為最大梯度數(shù),為固定值,可以根據(jù)數(shù)據(jù)傳輸距離和喚醒距離來設(shè)定(例如G=4);Tmax是最大延遲,也為固定值,例如Tmax=50ms。
這種轉(zhuǎn)發(fā)延遲設(shè)置使得相同梯度節(jié)點(diǎn)轉(zhuǎn)發(fā)喚醒信號轉(zhuǎn)發(fā)延遲T是相同的,且高梯度的節(jié)點(diǎn)可以更快的轉(zhuǎn)發(fā),其結(jié)果是相同梯度的轉(zhuǎn)發(fā)延時(shí)相同,保障喚醒路由上的節(jié)點(diǎn)和其協(xié)作節(jié)點(diǎn)可以同時(shí)轉(zhuǎn)發(fā)。其目的有二,每個(gè)梯度的節(jié)點(diǎn)將在接收到WAKEUP_REQ后在相同的延時(shí)后同時(shí)轉(zhuǎn)發(fā)WAKEUP_REQ,可以有效利用相長干涉提高喚醒距離;當(dāng)?shù)吞荻鹊墓?jié)點(diǎn)聽到高梯度的節(jié)點(diǎn)轉(zhuǎn)發(fā)WAKEUP_REQ后將抑制自己的轉(zhuǎn)發(fā)進(jìn)入睡眠,高梯度的節(jié)點(diǎn)轉(zhuǎn)發(fā)延時(shí)更小而低梯度的節(jié)點(diǎn)轉(zhuǎn)發(fā)延時(shí)更大,最大可能的降低能量消耗。
當(dāng)有相鄰節(jié)點(diǎn)喚醒的需要時(shí),即有數(shù)據(jù)需要從發(fā)送節(jié)點(diǎn)S到達(dá)睡眠的喚醒目標(biāo)接收節(jié)點(diǎn)D時(shí),發(fā)送節(jié)點(diǎn)S將沿著喚醒路由發(fā)送喚醒信號WAKEUP_REQ;只有喚醒路由上的節(jié)點(diǎn)和協(xié)作節(jié)點(diǎn)在接收到喚醒信號后按照設(shè)定的轉(zhuǎn)發(fā)延時(shí)轉(zhuǎn)發(fā)喚醒信號,利用相長干涉擴(kuò)大喚醒范圍,其他節(jié)點(diǎn)將進(jìn)入睡眠;如果喚醒路由上的節(jié)點(diǎn)和協(xié)作節(jié)點(diǎn)在轉(zhuǎn)發(fā)之前偵聽到更高梯度節(jié)點(diǎn)的喚醒信號則進(jìn)入睡眠抑制轉(zhuǎn)發(fā);接收節(jié)點(diǎn)在接收到喚醒信號后喚醒主天線向發(fā)送節(jié)點(diǎn)返回WAKEUP_REP信號;發(fā)送節(jié)點(diǎn)S如果在一定時(shí)間內(nèi)收到WAKEUP_REP信號則進(jìn)行數(shù)據(jù)傳輸,否則重新發(fā)送喚醒信號。
下面將具體介紹喚醒過程。
每個(gè)節(jié)點(diǎn)S有數(shù)據(jù)需要發(fā)送給睡眠節(jié)點(diǎn)D時(shí),節(jié)點(diǎn)S發(fā)送喚醒信號WAKEUP_REQ,其中包含當(dāng)前梯度0和目的節(jié)點(diǎn)D的地址。
每個(gè)節(jié)點(diǎn)在收到喚醒信號WAKEUP_REQ后,將進(jìn)行如下操作:
a.記錄接收時(shí)間為Tr;
b.如果當(dāng)前節(jié)點(diǎn)不是到達(dá)D的喚醒路由上的節(jié)點(diǎn)或是協(xié)作節(jié)點(diǎn),則丟包清空Tr并進(jìn)入睡眠;
c.如果當(dāng)前節(jié)點(diǎn)是到達(dá)D的喚醒路由節(jié)點(diǎn)或協(xié)作節(jié)點(diǎn),則保持偵聽,并設(shè)定轉(zhuǎn)發(fā)時(shí)間為Ttx=Trx+T,其中T是根據(jù)公式(1)設(shè)定的轉(zhuǎn)發(fā)延時(shí)。
d.如果當(dāng)前節(jié)點(diǎn)在轉(zhuǎn)發(fā)喚醒信號前監(jiān)聽到高梯度節(jié)點(diǎn)的WAKEUP_REQ,則丟包清空Ttx并進(jìn)入睡眠;
e.當(dāng)前節(jié)點(diǎn)在Ttx時(shí)刻轉(zhuǎn)發(fā)喚醒信號WAKEUP_REQUEST,內(nèi)含當(dāng)前節(jié)點(diǎn)的梯度和目的節(jié)點(diǎn)D的地址。
該過程一直持續(xù),直到D節(jié)點(diǎn)接收到WAKEUP_REQ被喚醒。D節(jié)點(diǎn)被喚醒后將使用主天線發(fā)送WAKEUP_REP信號,包含自己的ID信息等。
f.當(dāng)節(jié)點(diǎn)S偵聽到D的WAKEUP_REP,則進(jìn)行數(shù)據(jù)傳輸。如果節(jié)點(diǎn)S在一定時(shí)間內(nèi)沒有偵聽到D的WAKEUP_REP,則重新啟動喚醒過程。
下面將舉例說明喚醒過程如何進(jìn)行的。
如附圖2所示,節(jié)點(diǎn)S的下一跳路由節(jié)點(diǎn)為節(jié)點(diǎn)D,節(jié)點(diǎn)S需要快速喚醒D。SD之間的喚醒路由為S-w1-w2-w3-D,節(jié)點(diǎn)c1c2c3分別是w1w2w3的協(xié)作節(jié)點(diǎn)。S將首先發(fā)送喚醒信號WAKEUP_REQ,節(jié)點(diǎn)w1和c1接收到喚醒信號后,根據(jù)自己的轉(zhuǎn)發(fā)延時(shí)同時(shí)轉(zhuǎn)發(fā)喚醒信號。由于相長干涉的作用,節(jié)點(diǎn)w2w3c2都接收到了喚醒信號。根據(jù)轉(zhuǎn)發(fā)延時(shí)的設(shè)置,w3將更早的轉(zhuǎn)發(fā)喚醒信號,w2和c2監(jiān)聽到w3的喚醒信號后將進(jìn)入睡眠。最后w3喚醒了節(jié)點(diǎn)D。至此喚醒過程結(jié)束。圖中灰色節(jié)點(diǎn)表示轉(zhuǎn)發(fā)了WAKEUP_REQ的節(jié)點(diǎn),白色節(jié)點(diǎn)表示未轉(zhuǎn)發(fā)的節(jié)點(diǎn)。
節(jié)點(diǎn)D被喚醒后會打開主天線,返回WAKEUP_REP信號,節(jié)點(diǎn)S收到WAKEUP_REP后即可發(fā)送數(shù)據(jù)。節(jié)點(diǎn)D在接收到數(shù)據(jù)之后將再次啟動喚醒過程和數(shù)據(jù)傳輸過程。該過程一直持續(xù)到數(shù)據(jù)到達(dá)sink節(jié)點(diǎn)。
上面結(jié)合附圖所描述的本發(fā)明優(yōu)選具體實(shí)施例僅用于說明本發(fā)明的實(shí)施方式,而不是作為對前述發(fā)明目的和所附權(quán)利要求內(nèi)容和范圍的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對以上實(shí)施例所做的任何簡單修改、等同變化與修飾,均仍屬本發(fā)明技術(shù)和權(quán)利保護(hù)范疇。