国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于自適應(yīng)按需喚醒技術(shù)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法

      文檔序號:7797908閱讀:240來源:國知局
      基于自適應(yīng)按需喚醒技術(shù)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法
      【專利摘要】本發(fā)明公開一種基于自適應(yīng)按需喚醒技術(shù)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,包括以下:(1)將加入網(wǎng)絡(luò)的節(jié)點(diǎn)進(jìn)行初始化,并建立鄰居列表用于存儲鄰居節(jié)點(diǎn)的ID和調(diào)度信息;(2)發(fā)送端S有數(shù)據(jù)要傳輸時,查看自身的鄰居列表是否有目標(biāo)接收端R的調(diào)度信息;(3)根據(jù)步驟(2)中所獲得調(diào)度信息,發(fā)送端S自適應(yīng)按需喚醒,然后與接收端R進(jìn)行數(shù)據(jù)傳輸;(4)根據(jù)發(fā)送端S的執(zhí)行周期,自動更新鄰居列表中每個鄰居節(jié)點(diǎn)的調(diào)度信息。本發(fā)明較大程度的降低占空比和丟包率,從而減少收發(fā)節(jié)點(diǎn)的能耗并減少空閑偵聽,保證傳輸率和吞吐量。
      【專利說明】基于自適應(yīng)按需喚醒技術(shù)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種數(shù)據(jù)傳輸方法,具體涉及一種基于自適應(yīng)按需喚醒技術(shù)的無限傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法。
      【背景技術(shù)】
      [0002]近年來,短距離無線通信傳感器節(jié)點(diǎn)的功能不斷發(fā)展變化中,同時具備感知、數(shù)據(jù)處理和通信功能是對這種微小傳感器的基本要求、正是因?yàn)閭鞲衅骷夹g(shù)日新月異的高速發(fā)展,大大的促進(jìn)了基于大量傳感器節(jié)點(diǎn)相互協(xié)作相互通信的無線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)。
      [0003]對無線傳感器網(wǎng)絡(luò)影響非常重大的眾多協(xié)議里面,數(shù)據(jù)鏈路級聯(lián)層中的媒體訪問控制協(xié)議占有極其重要的地位。在無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)中,能量主要消耗在通信模塊,數(shù)據(jù)傳輸通信是最主要的耗能者,而媒體訪問控制協(xié)議直接決定了如何使用無線網(wǎng)絡(luò)信道,MAC協(xié)議是傳感器網(wǎng)絡(luò)性能的主要影響者,因此是保證無線傳感器網(wǎng)絡(luò)通信高校的關(guān)鍵協(xié)議之
      O
      [0004]發(fā)送端盲等現(xiàn)象是一直存在于接收端發(fā)起的異步MAC協(xié)議數(shù)據(jù)傳輸當(dāng)中,其中發(fā)送端在發(fā)送數(shù)據(jù)前,可能要等待一段時間,甚至一直沒機(jī)會得到傳輸,接收端的數(shù)據(jù)請求幀也可能因?yàn)闆_突以及信道被占用,而一直無法被正確接收,這些,都會引起能耗和延時的增加。 [0005]現(xiàn)有技術(shù)中的短前導(dǎo)序列報文機(jī)制就是在低功耗偵聽機(jī)制的基礎(chǔ)上改進(jìn)的,但在重負(fù)載下因?yàn)榍皩?dǎo)的傳輸過程需要很長時間的占用信道,導(dǎo)致網(wǎng)絡(luò)性能大幅的降低。
      [0006]現(xiàn)有技術(shù)中的接收端發(fā)起的異步MAC協(xié)議——R1-MAC協(xié)議是一個從接收端發(fā)起的數(shù)據(jù)傳輸協(xié)議,與B-MAC協(xié)議的顯著不同之處是發(fā)送端和接收端之間如何協(xié)調(diào)數(shù)據(jù)傳輸時間。采用這樣的協(xié)議也存在一定的問題,如:在網(wǎng)絡(luò)數(shù)據(jù)負(fù)載流量大的網(wǎng)絡(luò)中,發(fā)送端雖然要在接收端喚醒之前醒來,但接收端發(fā)送Beacon幀前,發(fā)送端未處于監(jiān)聽狀態(tài),則數(shù)據(jù)傳輸將推遲至接收端的下一次喚醒時刻。若接收端醒來時,其它節(jié)點(diǎn)正占用信道,接收端也同樣要進(jìn)入休眠。多個接收端同時發(fā)送Beacon幀,而產(chǎn)生沖突碰撞,這時接收端將利用退避等待算法去競爭無線信道,這將導(dǎo)致發(fā)送端的盲等現(xiàn)象,大大的增加了發(fā)送端的能耗,最終導(dǎo)致網(wǎng)絡(luò)能量不均衡;優(yōu)先級較高或者等待時間較長的數(shù)據(jù)無法優(yōu)先傳輸,這樣就無法保證優(yōu)先級較高或者等待時間較長的數(shù)據(jù)先發(fā)送出去,造成了能量消耗增大。
      [0007]現(xiàn)有技術(shù)中的采用的機(jī)制是發(fā)送端預(yù)測接收端喚醒機(jī)制。該機(jī)制在突發(fā)數(shù)據(jù)流量的情況下,每個節(jié)點(diǎn)的緩存隊(duì)列中存儲的數(shù)據(jù)包會很大,每個接收端醒來后都會有很多數(shù)據(jù)要接收,導(dǎo)致數(shù)據(jù)包的沖突會很大,也使該接收端長時間的占用信道,延時將大大的增加,傳輸成功率大幅度下降,增大了發(fā)送端的重傳率;在數(shù)據(jù)流量小的情況下,節(jié)點(diǎn)按照預(yù)定的隨機(jī)數(shù)序列在目標(biāo)接收端喚醒前一刻喚醒,然后空閑偵聽一個短暫時間,發(fā)現(xiàn)接收端并沒有數(shù)據(jù)包要發(fā)送,接著發(fā)送端再次進(jìn)入睡眠狀態(tài)。因此數(shù)據(jù)流過大或過小的情況該機(jī)制的能耗均不理想。
      [0008]現(xiàn)有技術(shù)中的提出了 PA-MAC協(xié)議是在R1-MAC協(xié)議的基礎(chǔ)上提出來的,在信標(biāo)幀中加入了節(jié)點(diǎn)的下一次喚醒時間,這個時間是從Beacon發(fā)送第一個bite位開始到下一次喚醒的時間間隔,這樣能夠有效的避免發(fā)送端在數(shù)據(jù)傳輸前的長時間盲等問題。但是PA-MAC協(xié)議的不足也是十分明顯的,比如調(diào)度信息的有效時間太短,最多只有2個執(zhí)行周期,這樣就導(dǎo)致了每個數(shù)據(jù)傳輸前的Beacon幀均要攜帶接收端的調(diào)度信息,這樣也會消耗不必要的能量,同時調(diào)度信息并不夠?qū)崟r。這種協(xié)議雖然對R1-MAC協(xié)議的性能進(jìn)行了改進(jìn),但改進(jìn)并不算大,甚至不能跟PW-MAC協(xié)議相媲美。鄰居列表中的調(diào)度信息的有效時間太短,最多只有2個執(zhí)行周期,這樣就導(dǎo)致了每個數(shù)據(jù)傳輸前的Beacon幀均要攜帶接收端的調(diào)度信息,這樣也會消耗不必要的能量,同時調(diào)度信息并不夠?qū)崟r。這種協(xié)議雖然對R1-MAC協(xié)議的性能進(jìn)行了改進(jìn),但改進(jìn)并不算大。

      【發(fā)明內(nèi)容】

      [0009]發(fā)明目的:本發(fā)明的目的在于解決現(xiàn)有技術(shù)中存在的不足,提供一種基于自適應(yīng)按需喚醒技術(shù)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法。
      [0010]技術(shù)方案:本發(fā)明的一種基于自適應(yīng)按需喚醒技術(shù)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,其具體傳輸步驟如下:
      [0011]( 1 )將加入網(wǎng)絡(luò)的節(jié)點(diǎn)進(jìn)行初始化,并建立鄰居列表用于存儲鄰居節(jié)點(diǎn)的ID和調(diào)度?目息;
      [0012]( 2)發(fā)送端S有數(shù)據(jù)要傳輸時,查看自身的鄰居列表是否有目標(biāo)接收端R的調(diào)度信息;
      [0013](3)根據(jù)步驟(2)中所獲得調(diào)度信息,發(fā)送端S自適應(yīng)按需喚醒,然后與接收端R進(jìn)行數(shù)據(jù)傳輸;
      [0014](4)根據(jù)發(fā)送端S的執(zhí)行周期,自動更新鄰居列表中每個鄰居節(jié)點(diǎn)的調(diào)度信息。
      [0015]進(jìn)一步的,所述步驟(3)中按需喚醒機(jī)制的具體步驟如下:
      [0016]Α、發(fā)送端S上層有數(shù)據(jù)包需要發(fā)送時,發(fā)送端S先查詢鄰居列表中是否有接收端R的下一次喚醒調(diào)度信息,如果發(fā)送端S沒有建立對應(yīng)于接收端R的調(diào)度時間信息,則發(fā)送端S立即喚醒,啟動短前導(dǎo)喚醒機(jī)制;如果發(fā)送端S建立對應(yīng)于接收端R的調(diào)度時間信息,但是該時間小于當(dāng)前時間,即該調(diào)度時間信息已經(jīng)過期,則發(fā)送端S也要立即喚醒,啟動短前導(dǎo)喚醒機(jī);如果發(fā)送端S已有對應(yīng)于接收端R的調(diào)度時間信息,且該時間沒有過期,在未來的某個確切時間點(diǎn),接收端R會喚醒,偵聽無線信道,等待數(shù)據(jù)包的到來,當(dāng)接收端R成功接收該數(shù)據(jù)包后,查看內(nèi)部參數(shù)ShortFlag是否為I ;
      [0017]B、發(fā)送端S喚醒后開始偵聽無線信道,若無線信道被占用,則等待一段時間后在偵聽,直到信道空閑,當(dāng)無線信道空閑后,發(fā)送端S啟動短前導(dǎo)喚醒機(jī)制,發(fā)送帶有目標(biāo)節(jié)點(diǎn)地址的start幀給接收端R,若非目標(biāo)節(jié)點(diǎn)收到Start幀,則非目標(biāo)節(jié)點(diǎn)直接切換至睡眠狀態(tài),而接收端R是目標(biāo)節(jié)點(diǎn)則在被喚醒后可以偵聽到Start幀,然后將節(jié)點(diǎn)內(nèi)部參數(shù)Flag設(shè)置為1,并回復(fù)發(fā)送端S —個Hello幀;發(fā)送端S在每個Start幀發(fā)送后均要有一段固定時間t的空閑偵聽,在這空閑偵聽間隔內(nèi)接收Hello幀,若發(fā)送端S沒有接收到接收端R發(fā)出的Hello幀,則發(fā)送端S繼續(xù)周期性的發(fā)送Start幀,若發(fā)送端S接收到接收端R發(fā)出的Hello幀,則發(fā)送端S繼續(xù)偵聽無線信道,等待數(shù)據(jù)包的到來,接收到R成功接收數(shù)據(jù)包后,查看其內(nèi)部參數(shù)ShortFlag是否為I ;[0018]C、因發(fā)送端S有接收端R的下一次喚醒調(diào)度信息且該信息未過期,則發(fā)送端S利用這個信息計(jì)算出接收端R的下一次喚醒時間,得到這個時間點(diǎn)后,發(fā)送端S只需要靜靜的保持休眠狀態(tài);發(fā)送端S在接收端R喚醒前醒來,等待接收端R廣播的Hello幀,接收端R根據(jù)自己的調(diào)度表,按照周期調(diào)度中要求的時間點(diǎn)喚醒,偵聽無線信道,檢測信道是否被其它節(jié)點(diǎn)占用著,如果已經(jīng)有其它節(jié)點(diǎn)正在占用信道進(jìn)行數(shù)據(jù)傳輸,則接收端R退避等待一個Hello幀發(fā)送的時間,之后再偵聽無線信道;如果信道空閑,則立即發(fā)送廣播Hello幀給發(fā)送端S,發(fā)送端S成功接收接收端R發(fā)出的Hello幀后,繼續(xù)偵聽無線信道等待數(shù)據(jù)包的到來,當(dāng)接收端R成功接收數(shù)據(jù)包后,查看其內(nèi)部參數(shù)ShortFlag是否為I ;
      [0019]D、當(dāng)ShortFlag=I時,數(shù)據(jù)包成功接收后,接收端R回復(fù)給發(fā)送端S —個Beacon幀,該幀用于通知發(fā)送端S數(shù)據(jù)包已經(jīng)成功接收同時詢問發(fā)送端S是否還有后續(xù)數(shù)據(jù)包需要傳輸;因ShortFlag=I,則接收端R在數(shù)據(jù)傳輸結(jié)束時發(fā)送的Beacon巾貞要攜帶接收端R節(jié)點(diǎn)最近一次喚醒的時間和接收端R節(jié)點(diǎn)發(fā)送Beacon的硬件前導(dǎo)第一比特所處的當(dāng)前時間點(diǎn),只有當(dāng)這次數(shù)據(jù)傳輸是本次通信中最后一次,發(fā)送端S才存儲最后一次Beacon中的調(diào)度信息,不然丟棄該Beacon巾貞中的調(diào)度信息;當(dāng)ShortFlag=O時,接收端R發(fā)送不帶自身調(diào)度信息的Beacon巾貞給發(fā)送端S ;
      [0020]E、發(fā)送端S成功接收Beacon幀后,查詢緩存隊(duì)列長度,看看是否還有數(shù)據(jù)包要發(fā)送給接收端R,如果有數(shù)據(jù)包,當(dāng)接收端R成功接收數(shù)據(jù)包后,查看其內(nèi)部參數(shù)ShortFlag是否為I ;如果節(jié)點(diǎn)緩存隊(duì)列中沒有數(shù)據(jù)包需要發(fā)送,則接收端R保持喚醒一段時間后進(jìn)入睡眠狀態(tài),而發(fā)送端S利用Beacon幀中的發(fā)送Beacon幀的硬件前導(dǎo)第一比特所處的當(dāng)前時間點(diǎn)、該Beacon巾貞的傳輸時間和發(fā)送端S自身當(dāng)前時間,計(jì)算得到發(fā)送端S和接收端R的時間差,然后再利用時間差和接收端R近一次喚醒時間,得到接收端R的下一次喚醒時間點(diǎn),并保存到發(fā)送端S的鄰居列表中,同時發(fā)送端S進(jìn)入休眠狀態(tài)。
      [0021]本發(fā)明中的Hello幀,有以下兩個作用,一、充當(dāng)數(shù)據(jù)包請求幀,即廣播幀,用以表示該節(jié)點(diǎn)已經(jīng)喚醒并準(zhǔn)備好進(jìn)行數(shù)據(jù)傳輸,二、當(dāng)收到Start短前導(dǎo)幀后,回復(fù)給發(fā)送端用以確認(rèn)準(zhǔn)備接收數(shù)據(jù)包。
      [0022]本發(fā)明中的Beacon幀,也同樣發(fā)揮三個作用:一、數(shù)據(jù)包接收成功確認(rèn)幀;二、連續(xù)接收下一個數(shù)據(jù)包的請求幀;三、給發(fā)送端發(fā)送本節(jié)點(diǎn)下一次喚醒調(diào)度信息,以便通信節(jié)點(diǎn)能夠很好的預(yù)測對方的工作狀態(tài),減少不必要的空閑偵聽。
      [0023]有益效果:本發(fā)明的一種基于自適應(yīng)按需喚醒技術(shù)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn):
      [0024](I)本發(fā)明充分利用短前導(dǎo)包的優(yōu)勢,即只有當(dāng)發(fā)送節(jié)點(diǎn)未知接收節(jié)點(diǎn)的調(diào)度信息,且接收節(jié)點(diǎn)還處于睡眠狀態(tài)這種情況下,才采用短前導(dǎo)技術(shù),這樣就并不是每次數(shù)據(jù)傳輸都會使用短前導(dǎo)包,很好減少短前導(dǎo)技術(shù)的使用次數(shù),因此減少發(fā)送節(jié)點(diǎn)在每次數(shù)據(jù)發(fā)送中的能量消耗和對信道的占用,與傳統(tǒng)的短前導(dǎo)技術(shù)相比,較大程度的調(diào)高了吞吐量和包傳輸比例。
      [0025](2)本發(fā)明通過預(yù)測接收端喚醒調(diào)度信息,但如果鄰居列表中任意一個接收端喚醒調(diào)度信息到期后,節(jié)點(diǎn)自動添加一個執(zhí)行周期,獲得該節(jié)點(diǎn)的下下次喚醒調(diào)度時間,同時節(jié)點(diǎn)鄰居列表中的調(diào)度信息都是相對調(diào)度信息,是在該節(jié)點(diǎn)的時間和鄰居節(jié)點(diǎn)的喚醒調(diào)度時間基礎(chǔ)上計(jì)算取得的,而且還添加一定的隨機(jī)時間,這樣即使多個發(fā)送端同時有數(shù)據(jù)發(fā)送給同一個接收端時,因?yàn)殡S機(jī)取值的存在,是的每個發(fā)送端預(yù)測該節(jié)點(diǎn)下一次喚醒的時間存在略微的差別,大大避免沖突,從而減少使用復(fù)雜的退避算法的概率,也會減少因退避值超出閾值而引發(fā)的數(shù)據(jù)重傳。
      [0026](3)本發(fā)明較大程度的降低占空比和丟包率,從而減少收發(fā)節(jié)點(diǎn)的能耗。
      [0027](4)本發(fā)明大大的減少空閑偵聽,保證傳輸率和吞吐量。
      [0028](5)本發(fā)明采用接收端發(fā)起的數(shù)據(jù)傳輸模式,同時引入類似短前導(dǎo)的Start包,作為Start信息的應(yīng)答Hello幀,攜帶節(jié)點(diǎn)的工作狀態(tài),這樣節(jié)點(diǎn)就能獲知其他鄰近節(jié)點(diǎn)的調(diào)度信息,數(shù)據(jù)傳輸方便靈活。
      [0029](6)本發(fā)明中方的Start包充短前導(dǎo)幀,發(fā)送端都可主動發(fā)送此幀喚醒接收端,以開啟數(shù)據(jù)包的傳輸;當(dāng)接收端接收Start幀后,發(fā)送Hello數(shù)據(jù)請求幀以作應(yīng)答,并且在Hello幀中會攜帶本節(jié)點(diǎn)的下一次喚醒調(diào)度信息,以便對方節(jié)點(diǎn)能夠獲知該節(jié)點(diǎn)的調(diào)度信
      肩、O
      【專利附圖】

      【附圖說明】
      [0030]圖1為本發(fā)明方案的整體流程圖;
      [0031]圖2為本發(fā)明偵聽狀態(tài)下的流程圖;
      [0032]圖3為本發(fā)明發(fā)送狀態(tài)下的流程圖;
      [0033]圖4為本發(fā)明接收狀態(tài)下的流程圖;
      [0034]圖5為本發(fā)明中的仿真場景示意圖;
      [0035]圖6為本發(fā)明中仿真場景下的能耗示意圖;
      [0036]圖7為本發(fā)明中仿真場景下的延時示意圖;
      [0037]圖8為本發(fā)明中仿真場景下的吞吐量示意圖。
      【具體實(shí)施方式】
      [0038]下面對本發(fā)明技術(shù)方案結(jié)合附圖進(jìn)行詳細(xì)說明。
      [0039]如圖1所示,節(jié)點(diǎn)加入網(wǎng)絡(luò)中后首先要初始化,需要建立鄰居列表并在之后的數(shù)據(jù)傳輸中記錄對方節(jié)點(diǎn)的調(diào)度信息;當(dāng)發(fā)送端的鄰居列表中已經(jīng)有目標(biāo)接收端的下一次喚醒時間并且這個時間并沒有過時,則發(fā)送端只需在接收端喚醒前一刻醒來等待接收端的廣播Hello幀即可;當(dāng)發(fā)送端的鄰居列表中沒有目標(biāo)接收端的下一次喚醒時間或者這個喚醒時間已經(jīng)過時,則啟動短前導(dǎo)Start幀主動喚醒接收端;在所有的此次數(shù)據(jù)傳輸結(jié)束的時候,接收端傳輸信標(biāo)(Beacon)巾貞,該巾貞包含接收端上一次喚醒時間和傳輸Beacon巾貞硬件前導(dǎo)第一比特的時間點(diǎn)。
      [0040]每個節(jié)點(diǎn)有四個狀態(tài),分別為偵聽狀態(tài)、休眠狀態(tài)、發(fā)送狀態(tài)和接收狀態(tài),而當(dāng)節(jié)點(diǎn)從休眠狀態(tài)喚醒來后,首先要判斷進(jìn)入圖2的偵聽流程還是進(jìn)入圖3的發(fā)送數(shù)據(jù)流程。圖2至圖4為節(jié)點(diǎn)各個工作狀態(tài)的流程示意圖。
      [0041]如圖2所示,節(jié)點(diǎn)偵聽無線信道:偵聽到以自身為接收端的Start幀,轉(zhuǎn)到接收數(shù)據(jù)接收狀態(tài),如圖4所示;如果偵聽到目標(biāo)接收端的Hello幀,則轉(zhuǎn)到發(fā)送數(shù)據(jù)發(fā)送狀態(tài),如圖3所示。檢測信道是否空閑,若忙碌,則退避一個Hello幀發(fā)送時間后繼續(xù)檢測信道是否空閑,若空閑,則接著查看緩存隊(duì)列是否空閑。如果緩存隊(duì)列空閑,則直接進(jìn)入休眠狀態(tài),不然查看緩存隊(duì)列中是否為數(shù)據(jù)包。如果不是數(shù)據(jù)包,則表示該節(jié)點(diǎn)無數(shù)據(jù)要發(fā)送,發(fā)送廣播Hello幀后,轉(zhuǎn)入接收數(shù)據(jù)流程4-4,查看網(wǎng)絡(luò)中是否有數(shù)據(jù)要接收;如果是數(shù)據(jù)包,則表示該節(jié)點(diǎn)有數(shù)據(jù)要發(fā)送,此時并不直接等待接收端的Hello幀,而是要進(jìn)行是否有接收端調(diào)度信息的判斷。如果節(jié)點(diǎn)有目標(biāo)接收端的下一次喚醒的調(diào)度信息,則將節(jié)點(diǎn)下次喚醒時間定時在接收端喚醒前一刻,然后直接進(jìn)入休眠狀態(tài);如果節(jié)點(diǎn)沒有目標(biāo)接收端的下一次喚醒調(diào)度信息,則轉(zhuǎn)到發(fā)送數(shù)據(jù)狀態(tài),如圖3所示,發(fā)送短前導(dǎo)Start幀。
      [0042]如圖3所示,在發(fā)送狀態(tài)時,節(jié)點(diǎn)首先查看自己的相關(guān)參數(shù),確定是否直接發(fā)送數(shù)據(jù)包。在直接發(fā)送數(shù)據(jù)包時,節(jié)點(diǎn)在發(fā)送數(shù)據(jù)后偵聽無線信道,等待接收端的Beacon幀,如果信道中有沖突,則不會接收到Beacon幀,而是接收到帶BW的Hello幀,之后根據(jù)BW的值,根據(jù)隨機(jī)函數(shù)選擇退避時間后再次發(fā)送數(shù)據(jù);如果信道無沖突,且有后續(xù)的數(shù)據(jù)包,立即發(fā)送,待所有數(shù)據(jù)包均發(fā)送完后,最后一次接收到的Beacon幀中有接收端的調(diào)度信息,則將調(diào)度信息存入鄰居列表,之后進(jìn)入休眠狀態(tài);如果超時后還沒有收到Beacon確認(rèn)幀,甚至是帶BW的Hello幀也沒有,則說明接收端可能損壞,節(jié)點(diǎn)轉(zhuǎn)入休眠狀態(tài)。在非直接發(fā)送數(shù)據(jù)包時,節(jié)點(diǎn)等待無線信道空閑下來發(fā)送短前導(dǎo)Start幀,在發(fā)送短前導(dǎo)幀間隔內(nèi)偵聽無線信道,等待接收端回復(fù)的Hello幀,如果Hello幀到來,則立即發(fā)送數(shù)據(jù)包,發(fā)送完數(shù)據(jù)包后,繼續(xù)偵聽信道等待接收端的Beacon確認(rèn)幀,若還有連續(xù)的數(shù)據(jù)包,收到Beacon幀后立即發(fā)送后續(xù)數(shù)據(jù),若所有的數(shù)據(jù)包均接收完全,則發(fā)送端存儲最后一次接收的Beacon中調(diào)度信息,之后進(jìn)入休眠狀態(tài);若如果遲遲等不來Hello幀,節(jié)點(diǎn)繼續(xù)發(fā)送短前導(dǎo)幀直到發(fā)送時間超時,超時后進(jìn)入休眠狀態(tài)。
      [0043]如圖4所示,在接收狀態(tài)時,節(jié)點(diǎn)首先查看是否已經(jīng)接收了數(shù)據(jù)包。當(dāng)接收了數(shù)據(jù)包時,查看ShortFlag的值,如果ShortFlag=I,則Beacon巾貞中要攜帶節(jié)點(diǎn)的調(diào)度信息,如果ShortFlag=O,則Beacon巾貞不帶調(diào)度信息,將配置好的Beacon發(fā)送給發(fā)送端,詢問是否有后續(xù)數(shù)據(jù),偵聽信道,若無數(shù)據(jù),則根據(jù)緩存隊(duì)列長度選擇轉(zhuǎn)入偵聽狀態(tài)或者轉(zhuǎn)入休眠狀態(tài),若有數(shù)據(jù),則接收數(shù)據(jù),成功接收完數(shù)據(jù)后,查看ShortFlag的值,配置Beacon幀并發(fā)送,偵聽信道。當(dāng)未接收到數(shù)據(jù)包時,節(jié)點(diǎn)偵聽無線信道,查詢是否有數(shù)據(jù)包的到來,此時若無數(shù)據(jù)包到來,則根據(jù)緩存隊(duì)列的長度選擇轉(zhuǎn)入偵聽狀態(tài)或者轉(zhuǎn)入休眠狀態(tài);若有數(shù)據(jù)包到來,并且還發(fā)生了沖突,此時就要進(jìn)行二進(jìn)制退避算法,節(jié)點(diǎn)發(fā)送帶BW值的Hello幀給發(fā)送端,之后偵聽信道查詢有無退避后的數(shù)據(jù)包到來;若有數(shù)據(jù)包到來且未發(fā)生沖突,則正常接收數(shù)據(jù)包,數(shù)據(jù)傳輸結(jié)束后,又要查看ShortFlag的值,配置Beacon幀并發(fā)送,詢問是否有后續(xù)的數(shù)據(jù)包要接收,之后偵聽無線信道,等待數(shù)據(jù)包到來。
      [0044]實(shí)施例1:
      [0045]以下進(jìn)行實(shí)驗(yàn)測試驗(yàn)證:
      [0046]實(shí)驗(yàn)平臺:NS2網(wǎng)絡(luò)仿真模擬器;
      [0047]實(shí)驗(yàn)場景:如圖5所示,為實(shí)驗(yàn)仿真場景,11個節(jié)點(diǎn)分布在半徑為250米的圓形ηtol拓?fù)鋱鼍?,?jié)點(diǎn)均勻分布在圓周,但場景中只有一個匯聚節(jié)點(diǎn),位于圓點(diǎn)位置并且保持位置不變,而其他所有節(jié)點(diǎn)均向該匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。
      [0048]網(wǎng)絡(luò)負(fù)載:而發(fā)送節(jié)點(diǎn)的CBR業(yè)務(wù)每秒產(chǎn)生10個數(shù)據(jù)包,即CBR業(yè)務(wù)發(fā)包時間間隔為0.1秒。
      [0049]從圖6至8,可以看出本發(fā)明與現(xiàn)有技術(shù)相比,性能較大很大的提高。從能耗的角度來看,隨著數(shù)據(jù)流的增加,本發(fā)明方案的能耗和占空比均下降到傳統(tǒng)方案的95%以下,吞吐量則是較傳統(tǒng)方案上升10%左右。
      【權(quán)利要求】
      1.一種基于自適應(yīng)按需喚醒技術(shù)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,其特征在于:其具體傳輸步驟如下: (1)將加入網(wǎng)絡(luò)的節(jié)點(diǎn)進(jìn)行初始化,并建立鄰居列表用于存儲鄰居節(jié)點(diǎn)的ID和調(diào)度信息; (2)發(fā)送端S有數(shù)據(jù)要傳輸時,查看自身的鄰居列表是否有目標(biāo)接收端R的調(diào)度信息; (3)根據(jù)步驟(2)中所獲得調(diào)度信息,發(fā)送端S自適應(yīng)按需喚醒,然后與接收端R進(jìn)行數(shù)據(jù)傳輸; (4)根據(jù)發(fā)送端S的執(zhí)行周期,自動更新鄰居列表中每個鄰居節(jié)點(diǎn)的調(diào)度信息。
      2.根據(jù)權(quán)利要求1所述的基于自適應(yīng)按需喚醒技術(shù)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,其特征在于:所述步驟(3)中按需喚醒機(jī)制的具體步驟如下:”: A、發(fā)送端S上層有數(shù)據(jù)包需要發(fā)送時,發(fā)送端S先查詢鄰居列表中是否有接收端R的下一次喚醒調(diào)度信息,如果發(fā)送端S沒有建立對應(yīng)于接收端R的調(diào)度時間信息,則發(fā)送端S立即喚醒,啟動短前導(dǎo)喚醒機(jī)制;如果發(fā)送端S建立對應(yīng)于接收端R的調(diào)度時間信息,但是該時間小于當(dāng)前時間,即該調(diào)度時間信息已經(jīng)過期,則發(fā)送端S也要立即喚醒,啟動短前導(dǎo)喚醒機(jī);如果發(fā)送端S已有對應(yīng)于接收端R的調(diào)度時間信息,且該時間沒有過期,在未來的某個確切時間點(diǎn),接收端R會喚醒,偵聽無線信道,等待數(shù)據(jù)包的到來,當(dāng)接收端R成功接收該數(shù)據(jù)包后,查看內(nèi)部參數(shù)ShortFlag是否為1 ; B、發(fā)送端S喚醒后開始偵聽無線信道,若無線信道被占用,則等待一段時間后在偵聽,直到信道空閑,當(dāng)無線信道空閑后,發(fā)送端S啟動短前導(dǎo)喚醒機(jī)制,發(fā)送帶有目標(biāo)節(jié)點(diǎn)地址的Start幀給接收端R,若非目標(biāo)節(jié)點(diǎn)收到Start幀,則非目標(biāo)節(jié)點(diǎn)直接切換至睡眠狀態(tài),而接收端R是目標(biāo)節(jié)點(diǎn)則在被喚醒后可以偵聽到Start幀,然后將節(jié)點(diǎn)內(nèi)部參數(shù)Flag設(shè)置為I,并回復(fù)發(fā)送端S —個Hello幀;發(fā)送端S在每個Start幀發(fā)送后均要有一段固定時間t的空閑偵聽,在這空閑偵聽間隔內(nèi)接收Hello幀,若發(fā)送端S沒有接收到接收端R發(fā)出的Hello幀,則發(fā)送端S繼續(xù)周期性的發(fā)送Start幀,若發(fā)送端S接收到接收端R發(fā)出的Hello幀,則發(fā)送端S繼續(xù)偵聽無線信道,等待數(shù)據(jù)包的到來,接收到R成功接收數(shù)據(jù)包后,查看其內(nèi)部參數(shù)ShortFlag是否為1 ; C、因發(fā)送端S有接收端R的下一次喚醒調(diào)度信息且該信息未過期,則發(fā)送端S利用這個信息計(jì)算出接收端R的下一次喚醒時間,得到這個時間點(diǎn)后,發(fā)送端S只需要靜靜的保持休眠狀態(tài);發(fā)送端S在接收端R喚醒前醒來,等待接收端R廣播的Hello幀,接收端R根據(jù)自己的調(diào)度表,按照周期調(diào)度中要求的時間點(diǎn)喚醒,偵聽無線信道,檢測信道是否被其它節(jié)點(diǎn)占用著,如果已經(jīng)有其它節(jié)點(diǎn)正在占用信道進(jìn)行數(shù)據(jù)傳輸,則接收端R退避等待一個Hello幀發(fā)送的時間,之后再偵聽無線信道;如果信道空閑,則立即發(fā)送廣播Hello幀給發(fā)送端S,發(fā)送端S成功接收接收端R發(fā)出的Hello幀后,繼續(xù)偵聽無線信道等待數(shù)據(jù)包的到來,當(dāng)接收端R成功接收數(shù)據(jù)包后,查看其內(nèi)部參數(shù)ShortFlag是否為I ; D、當(dāng)ShortFlag=I時,數(shù)據(jù)包成功接收后,接收端R回復(fù)給發(fā)送端S—個Beacon中貞,該幀用于通知發(fā)送端S數(shù)據(jù)包已經(jīng)成功接收同時詢問發(fā)送端S是否還有后續(xù)數(shù)據(jù)包需要傳輸;因ShortFlag=I,則接收端R在數(shù)據(jù)傳輸結(jié)束時發(fā)送的Beacon幀要攜帶接收端R節(jié)點(diǎn)最近一次喚醒的時間和接收端R節(jié)點(diǎn)發(fā)送Beacon的硬件前導(dǎo)第一比特所處的當(dāng)前時間點(diǎn),只有當(dāng)這次數(shù)據(jù)傳輸是本次通信中最后一次,發(fā)送端S才存儲最后一次Beacon中的調(diào)度信息,不然丟棄該Beacon幀中的調(diào)度信息;當(dāng)ShortFlag=O時,接收端R發(fā)送不帶自身調(diào)度信息的Beacon幀給發(fā)送端S ; E、發(fā)送端S成功接收Beacon幀后,查詢緩存隊(duì)列長度,看看是否還有數(shù)據(jù)包要發(fā)送給接收端R,如果有數(shù)據(jù)包,當(dāng)接收端R成功接收數(shù)據(jù)包后,查看其內(nèi)部參數(shù)ShortFlag是否為I ;如果節(jié)點(diǎn)緩存隊(duì)列中沒有數(shù)據(jù)包需要發(fā)送,則接收端R保持喚醒一段時間后進(jìn)入睡眠狀態(tài),而發(fā)送端S利用Beacon幀中的發(fā)送Beacon幀的硬件前導(dǎo)第一比特所處的當(dāng)前時間點(diǎn)、該Beacon幀的傳輸時間和發(fā)送端S自身當(dāng)前時間,計(jì)算得到發(fā)送端S和接收端R的時間差,然后再利用時間差和接收端R近一次喚醒時間,得到接收端R的下一次喚醒時間點(diǎn),并保存到發(fā)送端S的鄰 居列表中,同時發(fā)送端S進(jìn)入休眠狀態(tài)。
      【文檔編號】H04W52/02GK103906207SQ201410073919
      【公開日】2014年7月2日 申請日期:2014年3月3日 優(yōu)先權(quán)日:2014年3月3日
      【發(fā)明者】徐平平, 李小娟, 秦漢 申請人:東南大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1