国产精品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>

      一種可靠有效的無線傳感器網(wǎng)絡重啟方法

      文檔序號:8002530閱讀:259來源:國知局
      一種可靠有效的無線傳感器網(wǎng)絡重啟方法
      【專利摘要】本發(fā)明公開了一種可靠有效的無線傳感器網(wǎng)絡重啟方法。當網(wǎng)絡擁有者重啟整個無線傳感器網(wǎng)絡時,SINK節(jié)點將其廣播包中的ADV信息的版本字段的內(nèi)容修改為更新版本;各節(jié)點各自等時間間隔地廣播含有ADV字段的廣播包,若廣播包中的版本字段的內(nèi)容比接收到廣播包的節(jié)點的版本更新,則接收到廣播包的節(jié)點向廣播包的源地址對應的節(jié)點發(fā)送請求信息,接收到請求信息的節(jié)點返回重啟命令及相關數(shù)據(jù)作為回應,收到回應的節(jié)點將易失性關鍵數(shù)據(jù)存入“持久RAM”后開始重啟;完成重啟的節(jié)點從“持久RAM”中讀入易失性關鍵數(shù)據(jù)并設置節(jié)點的相應參數(shù),完成重啟的節(jié)點將自身的版本信息和自身廣播包中的ADV信息的版本字段的內(nèi)容修改為更新的版本,之后節(jié)點進入正常工作狀態(tài)。
      【專利說明】一種可靠有效的無線傳感器網(wǎng)絡重啟方法【技術領域】
      [0001]本發(fā)明屬于無線通信【技術領域】,涉及一種無線傳感器網(wǎng)絡可靠有效的重啟方法?!颈尘凹夹g】
      [0002]隨著無線傳感器網(wǎng)絡在諸如生態(tài)監(jiān)管,行為習性監(jiān)控和基建設施保護等領域的應用越來越廣泛,對無線傳感器網(wǎng)絡在無人值守情況下連續(xù)正常工作的要求越來越高。因而,無線傳感器網(wǎng)絡中軟件的可靠性也越發(fā)吸引研究人員的關注。
      [0003]在現(xiàn)實應用中,無線傳感器網(wǎng)絡會因為各種意想不到的原因而失效,這些原因包括:不可預測的環(huán)境因素,鏈路連接的動態(tài)性,復雜的網(wǎng)絡交互等。在解決無線傳感器網(wǎng)絡失效的所有方法中,網(wǎng)絡重啟是一種有效的方法。然而,現(xiàn)有的網(wǎng)絡重啟方法并不能保證無線傳感器網(wǎng)絡可靠有效的重啟?,F(xiàn)實應用中的大多數(shù)無線傳感器網(wǎng)絡依靠網(wǎng)絡泛洪來實施重啟,而這樣的泛洪方法很難保證整個網(wǎng)絡百分之百的可靠重啟。還有一些網(wǎng)絡重啟方法使用了分發(fā)協(xié)議。但是采用分發(fā)協(xié)議的方法在實際使用中并不是很有效。因為節(jié)點在重啟后會丟失狀態(tài)信息,所以重啟后的節(jié)點不會繼續(xù)傳播重啟命令,也就很難保證整個無線傳感器網(wǎng)絡所有節(jié)點全部重啟。

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

      [0004]本發(fā)明的目的是提供一種可靠有效的無線傳感器網(wǎng)絡重啟方法。
      [0005]為了達到上述目的,本發(fā)明采取的技術方案是:本發(fā)明無線傳感器網(wǎng)絡重啟方法如下:
      當網(wǎng)絡擁有者重啟整個無線傳感器網(wǎng)絡時,發(fā)送重啟命令給SINK節(jié)點讓SINK節(jié)點將其維護的版本信息和廣播包中的ADV信息的版本字段的內(nèi)容修改為更新版本;
      包括SINK節(jié)點在內(nèi)的 各節(jié)點各自等時間間隔地廣播含有ADV字段的廣播包,接收到廣播包的節(jié)點將廣播包中的版本字段的內(nèi)容與自身維護的版本信息進行比較:如果廣播包中的版本字段的內(nèi)容比接收到廣播包的節(jié)點的版本更新,則接收到廣播包的節(jié)點向廣播包的源地址對應的節(jié)點發(fā)送請求信息,接收到請求信息的節(jié)點返回重啟命令及相關數(shù)據(jù)作為回應,收到回應的節(jié)點將易失性關鍵數(shù)據(jù)存入“持久RAM”后開始重啟;
      完成重啟的節(jié)點從“持久RAM”中讀入之前存入的易失性關鍵數(shù)據(jù),根據(jù)讀入的易失性關鍵數(shù)據(jù)設置節(jié)點的相應參數(shù),完成重啟的節(jié)點將自身的版本信息和自身廣播包中的ADV信息的版本字段的內(nèi)容修改為更新的版本,之后節(jié)點進入正常工作狀態(tài)。
      [0006]進一步地,本發(fā)明所述“持久RAM”是指在RAM中緊鄰.bss塊的內(nèi)存上劃分出的重啟前后不會丟失數(shù)據(jù)的內(nèi)存區(qū)塊。
      [0007]在現(xiàn)有技術中,實現(xiàn)網(wǎng)絡重啟主要是靠網(wǎng)絡泛洪的方式,但是網(wǎng)絡泛洪的方法不能保證網(wǎng)絡中所有節(jié)點全部重啟。這些泛洪方法多采用通過三次握手來建立連接的分發(fā)協(xié)議,僅僅依靠這些協(xié)議來實現(xiàn)重啟容易丟失節(jié)點重啟前的狀態(tài)信息等易失性關鍵數(shù)據(jù),使得重啟后的節(jié)點不會廣播新的重啟命令,從而導致整個網(wǎng)絡的重啟中斷??蛇x的存儲易失性關鍵數(shù)據(jù)的方案是將節(jié)點的狀態(tài)存儲在FLASH閃存上。但在FLASH閃存上進行讀寫操作需要工作在相對較高的電壓下,否則不能保證讀寫結果的正確性。例如,TelosB節(jié)點的正常工作電壓是1.8伏,而進行FLASH閃存讀寫的時候最低電壓要求是2.7伏。因此在能量比較寶貴的傳感器網(wǎng)絡節(jié)點上使用這項技術的實際可行性不高。
      [0008]與現(xiàn)有技術相比,本發(fā)明的有益效果是:本發(fā)明提供了一種可靠有效的無線傳感器網(wǎng)絡重啟方法。首先,本發(fā)明采用了一致的分發(fā)協(xié)議來可靠地傳播重啟命令,保證所有的節(jié)點在SINK節(jié)點發(fā)送重啟命令后都能收到這個命令。其次,本發(fā)明提供了一種在RAM上進行非易失性存儲的方法,通過在RAM上開辟一塊內(nèi)存區(qū)域存儲易失性關鍵數(shù)據(jù),該內(nèi)存區(qū)域的特點是:只要節(jié)點不斷電,存儲于該區(qū)域的數(shù)據(jù)就不會丟失。此外,在工作狀態(tài)下內(nèi)存都是處于使用狀態(tài),所以使用開辟的這塊內(nèi)存區(qū)域不會額外消耗能量,而進行FLASH閃存讀寫需要消耗額外的能量。
      【專利附圖】

      【附圖說明】
      [0009]圖1是本發(fā)明涉及的內(nèi)存區(qū)域的基本結構圖。
      【具體實施方式】
      [0010]首先說明以下【具體實施方式】所涉及的各符號的含義。
      [0011]SINK -無線傳感器網(wǎng)絡根節(jié)點 N1-編號為i的節(jié)點
      Nj -編號為j的節(jié)點
      ADV -數(shù)據(jù)包中包含版本字段等信息的特定數(shù)據(jù)結構 下面結合附圖和實施例對本發(fā)明做進一步說明。
      [0012]在無線傳感器網(wǎng)絡進行重啟前,每個節(jié)點都處于正常工作狀態(tài)。處于正常工作狀態(tài)的每個節(jié)點除了會點對點的傳送數(shù)據(jù),還會周期性地廣播含有ADV信息的數(shù)據(jù)包來傳遞SINK節(jié)點的命令或者交換信息。每個節(jié)點會在自己的內(nèi)存中維護一個版本信息。每個節(jié)點發(fā)送的廣播包中ADV信息中的版本字段與自己維護的版本信息一致。每個節(jié)點通過接收到的廣播包中的相關信息(例如,新鏡像標志位為真、修改廣播包間隔標志位為真)來判斷是否有新的命令到達,根據(jù)廣播包中的信息更改自己的狀態(tài)。節(jié)點發(fā)送廣播包的頻率可以根據(jù)需要來設定。廣播含有ADV字段的數(shù)據(jù)包的規(guī)則是:每個節(jié)點設置固定的時間間隔來廣播數(shù)據(jù)包。在兩次廣播的間隙,如果任意的某一節(jié)點Ni偵聽到其他節(jié)點Nj或者SINK廣播的含有ADV字段的數(shù)據(jù)包,并且節(jié)點Ni即將廣播的數(shù)據(jù)包的ADV字段的內(nèi)容與偵聽到的相同,則節(jié)點Ni取消該周期內(nèi)接下來的廣播數(shù)據(jù)包的發(fā)送,由此可以避免發(fā)送相同的廣播包,減少信道中數(shù)據(jù)包的數(shù)量。節(jié)點Ni繼而以取消發(fā)送的時間為起點,以前述設置的時間間隔為周期,周期性地發(fā)送含有ADV字段的廣播包。
      [0013]當網(wǎng)絡擁有者重啟整個無線傳感器網(wǎng)絡時,SINK節(jié)點在人工干預或者自主控制下更新自己的版本信息,并修改SINK的廣播包中的ADV信息的版本字段使其與版本信息保持—致。
      [0014]在節(jié)點Ni接收到SINK節(jié)點發(fā)送的含有ADV字段的廣播包后,若節(jié)點Ni發(fā)現(xiàn)該廣播包的ADV信息中的版本字段比節(jié)點Ni自己維護的版本信息更新,則節(jié)點Ni準備向SINK節(jié)點發(fā)送請求信息。此處“更新”的定義是:若網(wǎng)絡擁有者設定數(shù)字越大表明越新,則SINK節(jié)點廣播包的ADV信息中的版本字段中的數(shù)字比節(jié)點Ni維護的版本信息內(nèi)的數(shù)字更大表明SINK節(jié)點廣播包的ADV信息中的版本字段更新;若網(wǎng)絡擁有者設定數(shù)字越小表明越新,則SINK節(jié)點廣播包的ADV信息中的版本字段中的數(shù)字比節(jié)點Ni維護的版本信息內(nèi)的數(shù)字更小表明SINK節(jié)點廣播包的ADV信息中的版本字段更新。在節(jié)點Ni接收到SINK節(jié)點發(fā)送的含有ADV字段的廣播包后,若節(jié)點Ni發(fā)現(xiàn)該廣播包的ADV信息中的版本字段與節(jié)點Ni自己維護的版本信息相同。則節(jié)點Ni按照原來的工作方式繼續(xù)工作,不進行重啟。需要說明的是,節(jié)點處于正常工作狀態(tài)時會周期性的發(fā)送含有ADV字段的廣播包。
      [0015]節(jié)點Ni在向SINK節(jié)點發(fā)送請求信息之前偵聽到有鄰居節(jié)點發(fā)送了請求信息,則延遲自己的請求信息的發(fā)送,以免產(chǎn)生沖突;若沒有鄰居節(jié)點發(fā)送請求信息,則節(jié)點Ni向SINK節(jié)點發(fā)送請求信息。
      [0016]接收到請求信息的SINK節(jié)點,將重啟命令及相關數(shù)據(jù)放入數(shù)據(jù)包中作為回應返回給節(jié)點Ni。此處的“相關數(shù)據(jù)”包括節(jié)點重啟后要使用的新的程序鏡像、節(jié)點重啟后要設置的狀態(tài)數(shù)據(jù)等,但不限于以上內(nèi)容,具體由網(wǎng)絡擁有者決定。節(jié)點Ni接收并緩存收到的數(shù)據(jù)。
      [0017]圖1顯示了一個典型的程序的內(nèi)存結構。RAM中包括.data區(qū)塊和.bss區(qū)塊。在程序開始執(zhí)行時,會先執(zhí)行一個初始化器。初始化器會將.data區(qū)塊和.bss區(qū)塊的內(nèi)容初始化,而其他RAM區(qū)域的內(nèi)容則保持不變。在緊鄰.bss區(qū)塊的RAM中開辟一塊名為.pram的區(qū)塊,并在數(shù)據(jù)存儲階段將狀態(tài)數(shù)據(jù)存入.pram區(qū)塊,從而保證了節(jié)點重啟后,程序開始執(zhí)行時,能得到重啟前的狀態(tài)數(shù)據(jù)。
      [0018]參照圖1,節(jié)點Ni在RAM中緊鄰.bss區(qū)塊的部分劃分一塊內(nèi)存區(qū)域,本實施例中取名為.pram,.pram即為“持久RAM”,由于RAM中此區(qū)域的數(shù)據(jù)在保證供電的情況下不會因節(jié)點重啟而改變,從而保證了重啟前后信息不丟失。然后節(jié)點Ni將易失性關鍵數(shù)據(jù)放入.pram,此處“易失性關鍵數(shù)據(jù)”包括但不限于節(jié)點重啟前后需要維持不變的狀態(tài)信息、節(jié)點Ni維護的版本信息、節(jié)點重啟后新的配置參數(shù)、表示節(jié)點本身已發(fā)包數(shù)目的包序列號、鄰節(jié)點表等。然后節(jié)點Ni重啟。
      [0019]重啟完畢的節(jié)點Ni從.pram中讀入之前存入的易失性關鍵數(shù)據(jù),根據(jù)讀入的易失性關鍵數(shù)據(jù)設置相應參數(shù),“相應參數(shù)”包括表示節(jié)點本身已發(fā)包數(shù)目的包序列號、鄰節(jié)點表等信息。進而節(jié)點Ni恢復維護的版本信息,將自己維護的版本信息修改成與接收到的SINK節(jié)點廣播包的ADV信息中的版本字段相一致的數(shù)字,從而將自身的版本信息和自身廣播包中的ADV信息的版本字段的內(nèi)容修改為更新的版本。之后節(jié)點Ni進入正常工作狀態(tài)。
      [0020]節(jié)點Nj接收到節(jié)點Ni發(fā)送的含有ADV字段的廣播包后,若節(jié)點Nj發(fā)現(xiàn)該廣播包的ADV信息中的版本字段比節(jié)點Nj自己維護的版本信息更新,則節(jié)點Nj準備向SINK節(jié)點發(fā)送請求信息,接下來Nj與Ni的交互過程與前述Ni與SINK的交互過程相同,不再贅述;若節(jié)點Nj發(fā)現(xiàn)該廣播包的ADV信息中的版本字段與節(jié)點Nj自己維護的版本信息相同或者比Nj自己維護的版本信息更舊,則節(jié)點Nj按照原來的工作方式繼續(xù)工作,不進行重啟。
      【權利要求】
      1.一種無線傳感器網(wǎng)絡重啟方法,其特征是: 當網(wǎng)絡擁有者重啟整個無線傳感器網(wǎng)絡時,發(fā)送重啟命令給SINK節(jié)點讓SINK節(jié)點將其維護的版本信息和廣播包中的ADV信息的版本字段的內(nèi)容修改為更新版本; 包括SINK節(jié)點在內(nèi)的各節(jié)點各自等時間間隔地廣播含有ADV字段的廣播包,接收到廣播包的節(jié)點將廣播包中的版本字段的內(nèi)容與自身維護的版本信息進行比較:如果廣播包中的版本字段的內(nèi)容比接收到廣播包的節(jié)點的版本更新,則接收到廣播包的節(jié)點向廣播包的源地址對應的節(jié)點發(fā)送請求信息,接收到請求信息的節(jié)點返回重啟命令及相關數(shù)據(jù)作為回應,收到回應的節(jié)點將易失性關鍵數(shù)據(jù)存入“持久RAM”后開始重啟; 完成重啟的節(jié)點從“持久RAM”中讀入之前存入的易失性關鍵數(shù)據(jù),根據(jù)讀入的易失性關鍵數(shù)據(jù)設置節(jié)點的相應參數(shù),完成重啟的節(jié)點將自身的版本信息和自身廣播包中的ADV信息的版本字段的內(nèi)容修改為更新的版本,之后節(jié)點進入正常工作狀態(tài)。
      2.根據(jù)權利要求1所述的無線傳感器網(wǎng)絡重啟方法,其特征在于:所述“持久RAM”是指在RAM中緊鄰.bss塊的內(nèi)存上劃分出的重啟前后不會丟失數(shù)據(jù)的內(nèi)存區(qū)塊。
      【文檔編號】H04W24/04GK103428740SQ201310305267
      【公開日】2013年12月4日 申請日期:2013年7月21日 優(yōu)先權日:2013年7月21日
      【發(fā)明者】陳純, 卜佳俊, 董瑋, 張學鋒, 黃超 申請人:浙江大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1