麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種應用于實時監測的無線傳感器網絡數據收集方法

文檔序號:7893700閱讀:300來源:國知局
專利名稱:一種應用于實時監測的無線傳感器網絡數據收集方法
技術領域
本發明屬于無線傳感器網絡領域,涉及一種多跳無線傳感器網絡路由建立和數據傳輸方法,可以用于實時監測的無線傳感器網絡。
背景技術
隨著微處理器技術和無線通信技術的發展,無線傳感器網絡將被應用到越來越多的領域中,如交通控制、環境監測和自動抄表等。由于無線傳感網絡具有巨大的應用價值,目前已引起了國內外工業界和學術界的極大關注。以往對無線傳感器網絡的研究大部分集中在數據鏈路層和網絡層上,而對物理層、數據鏈路層和網絡層聯合設計的研究較少。無線傳感器網絡主要功能就是將傳感器節點采集的數據信息,通過傳感器節點之間多跳和協作傳輸,傳送到匯聚中心節點。根據無線傳感器網絡不同的應用需求,衡量其性能指標主要有網絡的能耗,吞吐量,時延等。對于實時監測的無線傳感器網絡,數據傳輸的可靠性和實時性則是首要的性能指標。其中,丟包率是衡量數據傳輸的可靠性的一個量化指標,無線傳感器網絡數據傳輸失敗,經過多次重傳后仍然不成功,則數據包會被丟棄。通常有兩方面的原因會造成嚴重的丟包現象,一方面是某些節點負載冗余,導致緩存隊列溢出而丟包;另一方面由于無線通信鏈路的時變性,當處于深度衰落時,容易造成丟包。為了保證數據傳輸的可靠性,目前常用的方法是退避重傳和功率控制的方法,這些都是被動的補救方式,其中退避重傳的方法只能緩減無線傳感器網絡的擁塞,提高數據傳輸的可靠性,但重傳卻帶來很大的數據傳輸延遲。而功率控制的方法對于無線信道質量較差的通信鏈路可以加大傳感器節點的發送功率,提高數據傳輸的可靠性,但是卻浪費了的額外的能耗,并給其它無線傳感器節點的傳輸帶來了更強的干擾。

發明內容
技術問題本發明提供了一種時延低、可靠性高,可保證實時監測的無線傳感器網絡數據傳輸的可靠性和實時性的應用于實時監測的無線傳感器網絡數據收集方法。
技術方案本發明的應用于實時監測的無線傳感器網絡數據收集方法,
采用聯合多徑重傳和增強型的編碼模式,減少數據重傳次數,提高數據傳輸的可靠性,降低時延。本發明主要包括路由建立和數據傳輸兩個階段。本發明的路由建立過程基本思路是
1)路由建立過程采用控制信息包,包含路由請求包RREQ和路由回復包RREP,它們采用普通編碼模式,即對數據包進行循環冗余校驗CRC ; 2)新上電的節點或路由失效的節點需要建立路由,發送路由請求包RREQ,若在設定的時間內,沒有收到路由回復包RREP,建立符合要求的路由,則重新設定周期,發送路由請求包 RREQ ;
3)收到路由請求包RREQ的節點,測量接收信號強度指示RSSI,若低于鏈路質量門限值則丟棄,若收到的路由請求包RREQ中父節點集合中的地址包含當前節點地址,則不回復路由回復包RREP ;
4)收到路由回復包RREP,測量接收信號強度指示RSSI,若低于鏈路質量門限值則丟棄,若收到的路由請求包RREP中父節點集合中的地址包含當前節點地址,或者收到的路由請求包RREP中父節點的負載大小超過門限,則丟棄路由回復包RREP ;
5)最后根據跳數建立符合要求的多徑路由,收到多個滿足負載、鏈路信道質量要求的路由回復包RREP時,選擇跳數最小的節點作為主要路由,選擇跳數相等或第二小跳數的節點作為次要路由;同時偵聽主要路由和次要路由的鄰居節點。主要路由和次要路由分別最多選擇2個鄰居節點。本發明的數據傳輸過程基本思路是
1)數據傳輸過程采用數據包DATA和數據確認包ACK,根據無線傳播環境,可以采用普通編碼模式或增強型的編碼模式,其中增強型的編碼模式表示數據分段循環冗余校驗(CRC)、然后進行信道編碼,最后數據進行比特交織;
2)當路由表中父節點的負載超過一定的門限,或者無線鏈路質量較差,經過多徑協作重傳,仍然不能傳輸成功,或者路由表地址為空時,都表示該路由無效;
3)當發送隊列中有實時監測數據需要傳輸,檢查主要路由和次要路由是否有效,若主要路由無效,而次要路由有效時,可以切換到次要路由上傳輸;若它們都無效,則進入路由建立階段;
4)若主要路由或次要路由有效時,根據對鏈路重傳次數的統計,對鏈路質量較好的路徑采用普通編碼模式,而對鏈路質量較差的路徑,采用增強型的編碼模式,完成數據編碼后,按照路由表中的父節點地址發送數據包,等待數據確認包ACK;若在設定的時間內沒有收到數據確認包ACK,則需要重傳數據包;
5)當數據包重傳時需要聯合物理層、數據鏈路層和路由層來處理,啟用父節點鄰居節點的多徑路由協作傳輸,父節點的鄰居節點作為輔助傳輸的節點,增加了多余的可靠傳輸鏈路;接收端采用重傳數據包接收合并技術,當數據重傳時,可以切換為增強型的編碼模式,提高重傳數據包的效率,減少傳輸的時延。根據路由建立的基本思路,所述的路由建立包括如下步驟
所述的路由建立包括如下步驟
步驟11 :當路由表處于失效狀態時,源節點發送普通編碼模式的路由請求包RREQ,等待收到路由請求包RREQ的鄰居節點處理路由請求包RREQ,并發送普通編碼模式的路由回復包RREP給源節點;
步驟12 :在設定的等待時間T內,等待源節點接收路由回復包RREP,并處理路由回復包RREP,若同時滿足鏈路質量可靠、父節點的數據隊列不擁塞和不構成環形路由的條件,則建立路由;若沒有收到滿足條件的路由回復包RREP,則轉步驟13 ;
步驟13 :重新設置等待路由回復包RREP的時間周期,轉步驟11。所述的數據傳輸包括如下步驟
步驟21 :源節點發送隊列中是否有實時監測數據或轉發數據,若有數據,則轉步驟22, 若沒有數據,則無數據傳輸;
步驟22 :源節點查詢主要路由的父節點以及發送到父節點的數據包重傳率,若發送到父節點的數據包重傳率大于等于重傳率門限,則設置增強型編碼模式,若低于重傳率門限,則設置普通編碼模式;
步驟23 :源節點根據實時偵聽到的主要路由的父節點負載大小和重傳次數,判斷主要路由的父節點地址是否有效,若主要路由的父節點的負載超過擁塞門限值或重傳次數達到3次,則父節點地址失效,轉步驟24,否則轉步驟27 ;
步驟24 :源節點根據實時偵聽到的次要路由的父節點負載大小和重傳次數,判斷次要路由的父節點地址是否有效,若次要路由的父節點的負載超過擁塞門限值或重傳次數達到3次,則次要路由的父節點地址失效,轉步驟25,否則轉步驟26 ;
步驟25 :由于主要路由和次要路由都失效,所以需要重建路由,轉步驟11 ;
步驟26 :主要路由失效,而次要路由是有效的,設置重傳次數初始值為O ;
步驟27 :檢查數據重傳次數是否為O,若為O,不是重傳包,轉步驟28,若不為O,則轉步驟29 ;
步驟28 :源節點根據編碼模式,對數據進行編碼并發送數據包DATA給父節點,等待數據確認包ACK,收到數據包的父節點處理數據包DATA,若能正確接收數據包DATA,則發送數據確認包ACK給源節點,若不能正確接收數據包DATA,則不發送數據確認包ACK ;
步驟29 :檢查數據重傳次數是否為1,若為I,則轉步驟210,若不為I,則轉步驟212 ;步驟210 :至多選擇當前父節點的一個鄰居節點,若無鄰居節點,則重傳數據不采用多節點協作傳輸,采用普通的重傳模式;
步驟211 :源節點根據編碼模式,對數據進行編碼,從選擇的鏈路上分別傳輸數據給父節點,等待數據確認包ACK,收到數據包的父節點處理數據包DATA,若能正確接收數據包DATA,則父節點發送數據確認包ACK給源節點,若不能正確接收數據包DATA,則父節點不發送數據確認包ACK ;
步驟212 :檢查數據重傳次數是否為2,若為2,則轉步驟213,若不為2,則轉步驟23,使當iu路由失效;
步驟213 :至多選擇當前父節點的兩個鄰居節點,若無鄰居節點,則重傳數據不采用多節點協作傳輸,采用普通的重傳模式;
步驟214 :源節點根據編碼模式,對數據進行編碼,從選擇的鏈路上分別傳輸數據給父節點,等待數據確認包ACK,收到數據包的父節點處理數據包DATA,若能正確接收數據包DATA,則父節點發送數據確認包ACK給源節點,若不能正確接收數據包DATA,則父節點不發送數據確認包ACK ;
步驟215 :在等待數據確認包ACK時間內,若收到數據確認包ACK,并處理數據確認包ACK,若沒有成功收到父節點發送的數據確認包ACK,則轉步驟216,若成功收到,則數據包發送成功,轉步驟217 ;
步驟216 :由于數據包傳輸不成功,需要重傳,重傳次數加1,統計發送到該父節點數據包的重傳次數,并且將數據編碼模式設為增強型編碼模式,然后轉步驟27 ;
步驟217 :由于數據發送成功,則發送緩存隊列數據指針加1,轉步驟21。所述的處理路由請求包RREQ的步驟是
步驟31 :首先根據前兩個字節的信息,判斷數據編碼模式和數據包長度,完整的接收數據;、步驟32 :當前節點收到了采用普通編碼模式的路由請求包RREQ ;
步驟33 :根據循環冗余校驗CRC,判斷收到的路由請求包RREQ是否正確,若不正確,則轉步驟35,否則轉步驟34;
步驟34:根據接收到的路由請求包RREQ中的地址信息,判斷是否是偵聽到的當前節點的父節點發送的路由請求包RREQ,若是,則轉步驟36,若不是,則轉步驟37 ;
步驟35 :丟棄收到的路由請求包RREQ ;
步驟36 :將偵聽到的父節點發送的路由請求包RREQ中的隊列長度值記錄下來;
步驟37 :測試接收數據信號強度標識RSSI,判斷鏈路質量是否滿足傳輸要求,若不滿足,則轉步驟35,否則轉步驟38 ;
步驟38 :判斷當前節點是否是匯聚節點或者是否已建立路由,若不是匯聚節點也沒有建立路由,則轉步驟35,若是匯聚節點或已建立路由的普通節點,則轉步驟39;
步驟39 :判斷路由請求包RREQ中的源節點地址是否存在于當前節點的父節點集合中,若存在于當前節點的父節點集合,則轉步驟35,否則轉步驟310 ;
步驟310 :發送路由回復包RREP。 所述的處理路由回復包RREP的步驟是
步驟41 :首先根據前兩個字節未編碼的信息,判斷數據編碼模式和數據包長度,完整的接收數據;
步驟42:當前節點收到了采用普通編碼模式的路由回復包RREP,根據循環冗余校驗CRC,判斷收到的路由回復包RREP是否正確,若不正確,則轉步驟49,否則轉步驟43 ;
步驟43 :根據接收到的路由回復包RREP中的地址信息,判斷是否是偵聽到的其父節點發送的路由回復包RREP,若是,則轉步驟44,若不是,則轉步驟45 ;
步驟44 :將偵聽到的父節點發送的路由回復包RREP中的隊列長度值記錄下來;
步驟45 :測試接收數據信號強度標識RSSI,判斷鏈路質量是否滿足傳輸要求,若不滿足,則轉步驟49,否則轉步驟46 ;
步驟46 :檢查路由回復包RREP中捎帶的父節點集合是否包含當前節點,若包含當前節點,將會形成環形路由,則轉步驟49,否則轉步驟47 ;
步驟47 :檢查路由回復包RREP中捎帶的父節點隊列的大小,若父節點的負載超過擁塞門限值,則轉步驟49,否則轉步驟48 ;
步驟48 :首先比較收到路由回復包RREP的路由、當前主要路由和次要路由的跳數大小,將跳數最小的路由設為主要路由,而跳數第二小的路由設為次要路由,若跳數相等,則選擇最先收到的路由回復包RREP的路由;其次設置主要路由和次要路由的鄰近節點,若無鄰近節點,則設置為空;
步驟49 :丟棄不滿足要求的路由回復包RREP。所述的處理數據包DATA的步驟是
步驟51 :首先根據前兩個字節未編碼的信息,判斷數據編碼模式和數據包長度,完整的接收數據;
步驟52 :根據數據編碼模式,對數據進行解碼,若是普通編碼模式,則對整個數據包進行循環冗余校驗CRC,檢查接收的數據包是否正確;若是增強型編碼模式,則對數據包進行解交織,分段進行信道解碼和循環冗余校驗CRC,檢查每段數據是否正確;若收到的數據包完全正確,則轉步驟54,若收到的數據包不完全正確,則轉步驟53 ;
步驟53 :收到的數據包不完全正確,檢查前面是否收到該相同的數據包,能否將幾次接收的數據包進行合并,若接收合并后數據包正確,則轉步驟54,否則轉步驟55 ;
步驟54 :根據接收到的數據包中的地址信息,判斷是否是偵聽到的當前節點的父節點發送的數據包,若是,則轉步驟56,若不是,則轉步驟57 ;
步驟55 :經過步驟53,數據包仍然不能完全正確,可 以保留部分正確的數據段,但必須保證源地址和數據包ID信息是正確的,才能保留,否則只能丟棄該數據包;
步驟56 :將偵聽到的父節點發送的數據包中的隊列長度值記錄下來;
步驟57 :檢查收到的數據包的父節點地址是不是當前節點地址,若是,則轉步驟59,若不是,則轉步驟58;
步驟58 :檢查收到的數據包的鄰近節點地址I或鄰近節點地址2是不是當前節點地址,若是,則轉步驟511,若不是,則轉步驟510 ;
步驟59 :設置數據確認包ACK的編碼模式與收到數據包的編碼模式一致,發送數據確認包ACK給源節點;
步驟510 :由于鄰近節點地址I和2都不是當前的節點地址,則丟棄該數據包;
步驟511 :根據鄰近節點地址,轉發收到的數據包;
步驟512 :等待數據確認包ACK ;
步驟513 :判斷收到數據包DATA的父節點是不是匯聚節點,若不是,則轉步驟514,若是匯聚節點,則通過因特網傳送給數據處理中心;
步驟514 :將收到的數據包DATA存入當前節點的發送隊列中。所述的處理數據確認包ACK的步驟是
步驟61 :首先根據前兩個字節未編碼的信息,判斷數據編碼模式和數據包長度,完整的接收數據;
步驟62 :根據數據編碼模式,對數據進行解碼,若是普通編碼模式,則對整個數據包進行循環冗余校驗CRC,檢查接收的數據確認包ACK是否正確;若是增強型編碼模式,則對數據包進行解交織,分段進行信道解碼和循環冗余校驗CRC,檢查每段數據是否正確;若收到的數據確認包ACK完全正確,則轉步驟64,若收到的數據確認包ACK不正確,則轉步驟68 ;步驟63 :根據接收到的數據確認包ACK中的地址信息,判斷是否是偵聽到的當前節點的父節點發送的數據確認包ACK,若是,則轉步驟64,若不是,則轉步驟65 ;
步驟64 :將偵聽到的父節點發送的數據確認包ACK中的隊列長度值記錄下來;
步驟65 :檢查收到的數據確認包ACK中的源節點地址是不是當前節點地址,若是,則表示數據發送成功,若不是,則轉步驟66 ;
步驟66 :檢查收到的數據包的鄰近節點地址I或鄰近節點地址2是不是當前節點地址,若是,則轉步驟67,若不是,則轉步驟68 ;
步驟67 :從當前節點轉發數據確認包ACK給源節點;
步驟68 :丟棄數據確認包ACK。所述的步驟22中數據編碼模式,普通編碼模式是對數據進行簡單的CRC校驗,而增強型的編碼模式是對數據進行分段CRC校驗,然后進行信道編碼,最后對數據進行比特交織;其中根據不同的應用場景采用不同的信道編碼和交織技術。
有益效果本發明實施例提供了一種時延低、可靠性高的無線傳感器網絡數據收集方法,具有如下優點
1、本方法路由建立采用普通編碼模式,而數據傳輸采用增強型編碼模式時,可以提高每條通信鏈路數據傳輸的可靠性。2、本方法采用數據包偵聽技術,可以快速建立路由和動態了解父節點的負載情況,減少維護路由的控制包的開銷。3、本方法采用多徑重傳的方式,利用鄰居節點的協作傳輸,接收端對多次和多徑重傳的數據包進行合并,提高數據傳輸的可靠性,減少重傳帶來的時延。4、本方法中采用主動避免擁塞的方式,根據收集到的父節點負載情況,判斷主要和次要路由是否失效,是否需要重建路由,使無線傳感器網絡達到負載均衡。5、本方法中可以根據應用場景的實際需要,當傳播環境較好時,數據傳輸階段可采用簡單的普通編碼模式,提高其傳輸的有效性;當傳播環境較差時,可以根據數據包重傳次數,切換為增強型編碼模式,提高其數據傳輸的可靠性。


圖I為本發明的路由建立過程的流程 圖2為本發明的數據傳輸過程的流程 圖3為本發明的處理路由請求包的流程 圖4為本發明的處理路由回復包的流程 圖5為本發明的處理數據包的流程 圖6為本發明的處理數據確認包的流程 圖7為本發明的路由請求包RREQ的格式;
圖8為本發明的路由回復包RREP的格式;
圖9為本發明的普通編碼模式數據包DATA的格式;
圖10為本發明的增強型編碼模式數據包DATA的格式;
圖11為本發明的普通編碼模式數據確認包ACK的格式。圖12為本發明的增強型編碼模式數據確認包ACK的格式。
具體實施例方式為了更清楚地說明本發明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅表明本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他實施例的附圖。為了使本發明的目的、技術方案和優點更加清楚,下面將結合附圖及具體實施例對本發明進行詳細描述。如圖I所示,本發明實施例提供了一種路由建立過程的流程圖,該方法包括以下步驟
步驟101 :當路由表處于失效狀態時,源節點發送普通編碼模式的路由請求包RREQ,等待收到路由請求包RREQ的鄰居節點處理路由請求包RREQ,并發送普通編碼模式的路由回復包RREP給源節點,其中采用普通編碼模式的RREQ包格式請參見圖7,采用普通編碼模式的RREP包格式請參見圖8,其中編碼模式為00,包長表示經過CRC校驗后的整個數據包的長度,RREQ包長為14個字節,RREP包長為18+4N個字節,N為發送路由回復的節點到匯聚節點的跳數;
步驟102:在設定的等待時間T內,等待源節點接收路由回復包RREP,并處理路由回復包RREP,若同時滿足鏈路質量可靠、父節點的數據隊列不擁塞和不構成環形路由的條件,則建立路由;若沒有收到滿足條件的路由回復包RREP,則轉步驟103 ;
步驟103 :重新設置等待路由回復包(RREP)的時間周期,轉步驟101。如圖2所示,本發明實施例提供了一種數據傳輸的流程圖,該方法包括以下步驟步驟201 :源節點發送隊列中是否有實時監測數據或轉發數據,若有數據,則轉步驟 202,若沒有數據,則無數據傳輸;
步驟202 :源節點查詢主要路由的父節點以及發送到父節點的數據包重傳率,若發送到父節點的數據包重傳率大于等于10%,則設置增強型編碼模式,若低于10%,則設置普通編碼模式;
步驟203 :源節點根據實時偵聽到的主要路由的父節點負載大小和重傳次數,判斷主要路由的父節點地址是否有效,若主要路由的父節點的負載超過擁塞門限值或重傳次數達到3次,則父節點地址失效,轉步驟204,否則轉步驟207 ;
步驟204 :源節點根據實時偵聽到的次要路由的父節點負載大小和重傳次數,判斷次要路由的父節點地址是否有效,若次要路由的父節點的負載超過擁塞門限值或重傳次數達到3次,則次要路由的父節點地址失效,轉步驟205,否則轉步驟206 ;
步驟205 :由于主要路由和次要路由都失效,所以需要重建路由,轉步驟101-103 ;
步驟206 :主要路由失效,而次要路由是有效的,設置重傳次數初始值為O ;
步驟207 :檢查數據重傳次數是否為0’若為0,不是重傳包,轉步驟208,若不為0,則轉步驟209 ;
步驟208:源節點根據編碼模式,對數據進行編碼并發送數據DATA,等待數據確認包ACK,采用普通編碼模式DATA包格式請參見圖9,其中編碼模式為00,包長表示經過CRC校驗后的整個數據包的長度,包長為24+M字節,M為有用數據長度,采用增強型編碼模式DATA包格式請參見圖10,其中編碼模式為01,包長表示采用增強型信道編碼后整個數據包的長度,增強型編碼模式表示每5個字節分段進行CRC16校驗,然后對數據進行(7,4)漢明編碼,最后對數據進行比特交織,因此包長為
2 + 14(20+1 +£)/5個字節,其中L是使整個增強型編碼的數據長度(20+Μ + £)能夠被5
整除所填充的字節數;采用普通編碼模式ACK包格式請參見圖11,其中編碼模式為00,包長為13個字節,采用增強型編碼模式ACK包格式請參見圖12,其中編碼模式為01,包長為
2+ 14(19+1,)/5 個字節;
步驟209 :檢查數據重傳次數是否為1,若為I,則轉步驟210,若不為I,則轉步驟212 ;步驟210 :至多選擇當前父節點的一個鄰居節點,若無鄰居節點,則重傳數據不采用多節點協作傳輸,采用普通的重傳模式;
步驟211 :源節點根據編碼模式,對數據進行編碼,從選擇的鏈路分別傳輸數據,等待數據確認包ACK ;
步驟212 :檢查數據重傳次數是否為2,若為2,則轉步驟213,若不為2,則轉步驟203,使當如路由失效;
步驟213 :至多選擇當前父節點的兩個鄰居節點,若無鄰居節點,則重傳數據不采用多節點協作傳輸,采用普通的重傳模式;
步驟214 :源節點根據編碼模式,對數據進行編碼,從選擇的鏈路分別傳輸數據,等待數據確認包ACK ;
步驟215 :在等待數據確認包ACK時間內,是否收到父節點發送的數據確認包ACK,若沒有收到,則轉步驟216,若收到,則數據包發送成功,轉步驟217 ; 步驟216 :由于數據包傳輸不成功,需要重傳,重傳次數加1,統計發送到該父節點數據包的重傳次數,并且將數據編碼模式設為增強型編碼模式,然后轉步驟207 ;
步驟217 :由于數據發送成功,則發送緩存隊列數據指針加1,轉步驟201。如圖3所示,本發明實施例提供了一種處理路由請求包的流程圖,該方法包括以下步驟
步驟301 :首先根據前兩個字節的信息,數據編碼模式為00和數據包長度為14個字節,確定編碼模式和數據長度包后,完整的接收數據;
步驟302 :當前節點收到了采用普通編碼模式的路由請求包RREQ步驟303 :根據循環冗余校驗CRC,判斷收到的路由請求包RREQ是否正確,若不正確,則轉步驟305,否則轉步驟304;
步驟304 :根據接收到的路由請求包RREQ中的地址信息,判斷是否是偵聽到的當前節點的父節點發送的路由請求包RREQ,若是,則轉步驟306,若不是,則轉步驟307 ;
步驟305 :丟棄收到的路由請求包RREQ ;
步驟306 :將偵聽到的父節點發送的路由請求包RREQ中的隊列長度值記錄下來;
步驟307 :測試接收數據信號強度標識RSSI,判斷鏈路質量是否滿足傳輸要求,若不滿足,則轉步驟305,否則轉步驟308 ;
步驟308:判斷當前節點是否是匯聚節點或者是否已建立路由,若不是匯聚節點也沒有建立路由,則轉步驟305,若是匯聚節點或已建立路由的普通節點,則轉步驟309 ;
步驟309 :判斷路由請求包RREQ中的源節點地址是否存在于當前節點的父節點集合中,若存在于當前節點的父節點集合,則轉步驟305,否則轉步驟310 ;
步驟310 :發送路由回復包RREP。如圖4所示,本發明實施例提供了一種處理路由回復包的流程圖,該方法包括以下步驟
步驟401 :首先根據前兩個字節未編碼的信息,數據編碼模式為00和數據包長度為18+4N個字節,確定編碼模式和數據長度包后,完整的接收數據;
步驟402 :當前節點收到了采用普通編碼模式的路由回復包RREP,根據循環冗余校驗CRC,判斷收到的路由回復包RREP是否正確,若不正確,則轉步驟409,否則轉步驟403 ;步驟403 :根據接收到的路由回復包RREP中的地址信息,判斷是否是偵聽到其父節點發送的路由回復包RREP,若是,則轉步驟404,若不是,則轉步驟405 ; 步驟404 :將偵聽到的父節點發送的路由回復包RREP中的隊列長度值記錄下來;步驟405 :測試接收數據信號強度標識RSSI,判斷鏈路質量是否傳輸要求,若不滿足,則轉步驟409,否則轉步驟406 ;
步驟406 :檢查路由回復包RREP中捎帶的父節點集合是否包含當前節點,若包含當前節點,將形成環形路由,則轉步驟409,否則轉步驟407 ;
步驟407 :檢查路由回復包RREP中捎帶的父節點隊列的大小,若父節點的負載超過擁塞門限值,則轉步驟409,否則轉步驟408 ;
步驟408 :首先比較收到路由回復包RREP的路由、當前主要路由和次要路由的跳數大小,將跳數最小的路由設為主要路由,而跳數第二小的路由設為次要路由,若跳數相等,則選擇最先收到的路由回復包RREP的路由;其次設置主要路由和次要路由的鄰近節點,若無鄰近節點,則設置為空;
步驟409 :丟棄不滿足要求的路由回復包RREP。 如圖5所示,本發明實施例提供了一種處理數據包的流程圖,該方法包括以下步驟
步驟501 :首先根據前兩個字節未編碼的信息,若數據編碼模式為00和數據包長度為
24+M個字節,若數據編碼模式為01和數據包長度為2 +14(20+Jf + £)/5個字節,確定編碼
模式和數據包長度后,完整的接收數據;
步驟502 :根據數據編碼模式,對數據進行解碼,若是普通編碼模式,則對整個數據包進行循環冗余校驗CRC,檢查接收的數據包是否正確;若是增強型編碼模式,則對數據包進行解比特交織,分段進行信道解碼和循環冗余校驗CRC,檢查每段數據是否正確;若收到的數據包完全正確,則轉步驟54,若收到的數據包不完全正確,則轉步驟503 ;
步驟503 :收到的數據包不完全正確,檢查前面是否收到該相同的數據包,能否將幾次接收的數據包進行合并,若接收合并后數據包正確,則轉步驟504,否則轉步驟505 ;
步驟504:根據接收到的數據包中的地址信息,判斷是否是偵聽到的當前節點的父節點發送的數據包,若是,則轉步驟506,若不是,則轉步驟507 ;
步驟505 :經過步驟503,數據包仍然不能完全正確,可以保留部分正確的數據段,但必須保證源地址和數據包ID信息是正確的,才能保留,否則只能丟棄該數據包;
步驟506 :將偵聽到的父節點發送的數據包中的隊列長度值記錄下來;
步驟507 :檢查收到的數據包的父節點地址是不是當前節點地址,若是,則轉步驟509,若不是,則轉步驟508 ;
步驟508 :檢查收到的數據包的鄰近節點地址I或鄰近節點地址2是不是當前節點地址,若是,則轉步驟511,若不是,則轉步驟510 ;
步驟509 :設置數據確認包ACK的編碼模式與收到數據包的編碼模式一致,發送數據確認包ACK給源節點;
步驟510 :由于鄰近節點地址I和2都不是當前的節點地址,則丟棄該數據包;
步驟511 :根據鄰近節點地址,轉發收到的數據包;
步驟512 :等待數據確認包ACK。步驟513:判斷收到數據包DATA的父節點是不是匯聚節點,若不是,則轉步驟514,若是匯聚節點,則通過因特網傳送給數據處理中心;
步驟514 :將收到的數據包DATA存入當前節點的發送隊列中。
如圖6所示,本發明實施例提供了一種處理數據確認包的流程圖,該方法包括以下步驟
步驟601 :首先根據前兩個字節未編碼的信息,若數據編碼模式為00和數據包長度為
23個字節,若數據編碼模式為01和數據包長度為2 + 14(19+£)/5個字節,確定編碼模式和
數據長度包后,完整的接收數據;
步驟602 :根據數據編碼模式,對數據進行解碼,若是普通編碼模式,則對整個數據包進行循環冗余校驗CRC,檢查接收的數據確認包ACK是否正確;若是增強型編碼模式,則對數據包進行解交織,分段進行信道解碼和循環冗余校驗CRC,檢查每段數據是否正確;若收到的數據確認包ACK完全正確,則轉步驟604,若收到的數據確認包ACK不正確,則轉步驟608 ;
步驟603 :根據接收到的數據確認包ACK中的地址信息,判斷是否是偵聽到的當前節點的父節點發送的數據確認包ACK,若是,則轉步驟604,若不是,則轉步驟605 ;
步驟604 :將偵聽到的父節點發送的數據確認包ACK中的隊列長度值記錄下來;
步驟605 :檢查收到的數據確認包ACK中的源節點地址是不是當前節點地址,若是,則表示數據發送成功,若不是,則轉步驟606 ;
步驟606 :檢查收到的數據包的鄰近節點地址I或鄰近節點地址2是不是當前節點的地址,若是,則轉步驟607,若不是,則轉步驟608 ;
步驟607 :從當前節點轉發數據確認包ACK給源節點;
步驟608 :丟棄數據確認包ACK。
權利要求
1.ー種應用于實時監測的無線傳感器網絡數據收集方法,其特征在于該方法主要包含路由建立和數據傳輸兩個過程; 所述的路由建立包括如下步驟 步驟11 :當路由表處于失效狀態時,源節點發送普通編碼模式的路由請求包RREQ,等待收到路由請求包RREQ的鄰居節點處理路由請求包RREQ,并發送普通編碼模式的路由回復包RREP給源節點; 步驟12 :在設定的等待時間T內,等待源節點接收路由回復包RREP,并處理路由回復包RREP,若同時滿足鏈路質量可靠、父節點的數據隊列不擁塞和不構成環形路由的條件,則建立路由;若沒有收到滿足條件的路由回復包RREP,則轉步驟13 ; 步驟13 :重新設置等待路由回復包RREP的時間周期,轉步驟11。
所述的數據傳輸包括如下步驟 步驟21 :源節點發送隊列中是否有實時監測數據或轉發數據,若有數據,則轉步驟22,若沒有數據,則無數據傳輸; 步驟22 :源節點查詢主要路由的父節點以及發送到父節點的數據包重傳率,若發送到父節點的數據包重傳率大于等于重傳率門限,則設置增強型編碼模式,若低于重傳率門限,則設置普通編碼模式; 步驟23 :源節點根據實時偵聽到的主要路由的父節點負載大小和重傳次數,判斷主要路由的父節點地址是否有效,若主要路由的父節點的負載超過擁塞門限值或重傳次數達到3次,則父節點地址失效,轉步驟24,否則轉步驟27 ; 步驟24 :源節點根據實時偵聽到的次要路由的父節點負載大小和重傳次數,判斷次要路由的父節點地址是否有效,若次要路由的父節點的負載超過擁塞門限值或重傳次數達到3次,則次要路由的父節點地址失效,轉步驟25,否則轉步驟26 ; 步驟25 :由于主要路由和次要路由都失效,所以需要重建路由,轉步驟11 ; 步驟26 :主要路由失效,而次要路由是有效的,設置重傳次數初始值為O ; 步驟27 :檢查數據重傳次數是否為O,若為O,不是重傳包,轉步驟28,若不為O,則轉步驟29 ; 步驟28 :源節點根據編碼模式,對數據進行編碼并發送數據包DATA給父節點,等待數據確認包ACK,收到數據包的父節點處理數據包DATA,若能正確接收數據包DATA,則發送數據確認包ACK給源節點,若不能正確接收數據包DATA,則不發送數據確認包ACK ; 步驟29 :檢查數據重傳次數是否為1,若為I,則轉步驟210,若不為I,則轉步驟212 ;步驟210 :至多選擇當前父節點的ー個鄰居節點,若無鄰居節點,則重傳數據不采用多節點協作傳輸,采用普通的重傳模式; 步驟211 :源節點根據編碼模式,對數據進行編碼,從選擇的鏈路上分別傳輸數據給父節點,等待數據確認包ACK,收到數據包的父節點處理數據包DATA,若能正確接收數據包DATA,則父節點發送數據確認包ACK給源節點,若不能正確接收數據包DATA,則父節點不發送數據確認包ACK ; 步驟212 :檢查數據重傳次數是否為2,若為2,則轉步驟213,若不為2,則轉步驟23,使當iu路由失效; 步驟213 :至多選擇當前父節點的兩個鄰居節點,若無鄰居節點,則重傳數據不采用多節點協作傳輸,采用普通的重傳模式; 步驟214 :源節點根據編碼模式,對數據進行編碼,從選擇的鏈路上分別傳輸數據給父節點,等待數據確認包ACK,收到數據包的父節點處理數據包DATA,若能正確接收數據包DATA,則父節點發送數據確認包ACK給源節點,若不能正確接收數據包DATA,則父節點不發送數據確認包ACK ; 步驟215 :在等待數據確認包ACK時間內,若收到數據確認包ACK,并處理數據確認包ACK,若沒有成功收到父節點發送的數據確認包ACK,則轉步驟216,若成功收到,則數據包發送成功,轉步驟217 ; 步驟216 :由于數據包傳輸不成功,需要重傳,重傳次數加1,統計發送到該父節點數據包的重傳次數,并且將數據編碼模式設為增強型編碼模式,然后轉步驟27 ; 步驟217 :由于數據發送成功,則發送緩存隊列數據指針加1,轉步驟21。
2.按照權利要求I所述的ー種應用于實時監測的無線傳感器網絡數據收集方法,其特征在于所述的處理路由請求包RREQ的步驟是 步驟31 :首先根據前兩個字節的信息,判斷數據編碼模式和數據包長度,完整的接收數據; 步驟32 :當前節點收到了采用普通編碼模式的路由請求包RREQ ; 步驟33 :根據循環冗余校驗CRC,判斷收到的路由請求包RREQ是否正確,若不正確,則轉步驟35,否則轉步驟34 ; 步驟34:根據接收到的路由請求包RREQ中的地址信息,判斷是否是偵聽到的當前節點的父節點發送的路由請求包RREQ,若是,則轉步驟36,若不是,則轉步驟37 ; 步驟35 :丟棄收到的路由請求包RREQ ; 步驟36 :將偵聽到的父節點發送的路由請求包RREQ中的隊列長度值記錄下來; 步驟37 :測試接收數據信號強度標識RSSI,判斷鏈路質量是否滿足傳輸要求,若不滿足,則轉步驟35,否則轉步驟38 ; 步驟38 :判斷當前節點是否是匯聚節點或者是否已建立路由,若不是匯聚節點也沒有建立路由,則轉步驟35,若是匯聚節點或已建立路由的普通節點,則轉步驟39 ; 步驟39 :判斷路由請求包RREQ中的源節點地址是否存在于當前節點的父節點集合中,若存在于當前節點的父節點集合,則轉步驟35,否則轉步驟310 ; 步驟310 :發送路由回復包RREP。
3.按照權利要求I所述的ー種應用于實時監測的無線傳感器網絡數據收集方法,其特征在于所述的處理路由回復包RREP的步驟是 步驟41 :首先根據前兩個字節未編碼的信息,判斷數據編碼模式和數據包長度,完整的接收數據;、 步驟42:當前節點收到了采用普通編碼模式的路由回復包RREP,根據循環冗余校驗CRC,判斷收到的路由回復包RREP是否正確,若不正確,則轉步驟49,否則轉步驟43 ; 步驟43 :根據接收到的路由回復包RREP中的地址信息,判斷是否是偵聽到的其父節點發送的路由回復包RREP,若是,則轉步驟44,若不是,則轉步驟45 ; 步驟44 :將偵聽到的父節點發送的路由回復包RREP中的隊列長度值記錄下來; 步驟45 :測試接收數據信號強度標識RSSI,判斷鏈路質量是否滿足傳輸要求,若不滿、足,則轉步驟49,否則轉步驟46 ; 步驟46 :檢查路由回復包RREP中捎帶的父節點集合是否包含當前節點,若包含當前節點,將會形成環形路由,則轉步驟49,否則轉步驟47 ; 步驟47 :檢查路由回復包RREP中捎帶的父節點隊列的大小,若父節點的負載超過擁塞門限值,則轉步驟49,否則轉步驟48 ; 步驟48 :首先比較收到路由回復包RREP的路由、當前主要路由和次要路由的跳數大小,將跳數最小的路由設為主要路由,而跳數第二小的路由設為次要路由,若跳數相等,則選擇最先收到的路由回復包RREP的路由;其次設置主要路由和次要路由的鄰近節點,若無 鄰近節點,則設置為空; 步驟49 :丟棄不滿足要求的路由回復包RREP。
4.按照權利要求I所述的ー種應用于實時監測的無線傳感器網絡數據收集方法,其特征在于所述的處理數據包DATA的步驟是 步驟51 :首先根據前兩個字節未編碼的信息,判斷數據編碼模式和數據包長度,完整的接收數據; 步驟52 :根據數據編碼模式,對數據進行解碼,若是普通編碼模式,則對整個數據包進行循環冗余校驗CRC,檢查接收的數據包是否正確;若是增強型編碼模式,則對數據包進行解交織,分段進行信道解碼和循環冗余校驗CRC,檢查每段數據是否正確;若收到的數據包完全正確,則轉步驟54,若收到的數據包不完全正確,則轉步驟53 ; 步驟53 :收到的數據包不完全正確,檢查前面是否收到該相同的數據包,能否將幾次接收的數據包進行合并,若接收合并后數據包正確,則轉步驟54,否則轉步驟55 ; 步驟54 :根據接收到的數據包中的地址信息,判斷是否是偵聽到的當前節點的父節點發送的數據包,若是,則轉步驟56,若不是,則轉步驟57 ; 步驟55 :經過步驟53,數據包仍然不能完全正確,可以保留部分正確的數據段,但必須保證源地址和數據包ID信息是正確的,才能保留,否則只能丟棄該數據包; 步驟56 :將偵聽到的父節點發送的數據包中的隊列長度值記錄下來; 步驟57 :檢查收到的數據包的父節點地址是不是當前節點地址,若是,則轉步驟59,若不是,則轉步驟58; 步驟58 :檢查收到的數據包的鄰近節點地址I或鄰近節點地址2是不是當前節點地址,若是,則轉步驟511,若不是,則轉步驟510 ; 步驟59 :設置數據確認包ACK的編碼模式與收到數據包的編碼模式一致,發送數據確認包ACK給源節點; 步驟510 :由于鄰近節點地址I和2都不是當前的節點地址,則丟棄該數據包; 步驟511 :根據鄰近節點地址,轉發收到的數據包; 步驟512 :等待數據確認包ACK ; 步驟513 :判斷收到數據包DATA的父節點是不是匯聚節點,若不是,則轉步驟514,若是匯聚節點,則通過因特網傳送給數據處理中心; 步驟514 :將收到的數據包DATA存入當前節點的發送隊列中。
5.按照權利要求I所述的ー種應用于實時監測的無線傳感器網絡數據收集方法,其特征在于所述的處理數據確認包ACK的步驟是步驟61 :首先根據前兩個字節未編碼的信息,判斷數據編碼模式和數據包長度,完整的接收數據; 步驟62 :根據數據編碼模式,對數據進行解碼,若是普通編碼模式,則對整個數據包進行循環冗余校驗CRC,檢查接收的數據確認包ACK是否正確;若是增強型編碼模式,則對數據包進行解交織,分段進行信道解碼和循環冗余校驗CRC,檢查每段數據是否正確;若收到的數據確認包ACK完全正確,則轉步驟64,若收到的數據確認包ACK不正確,則轉步驟68 ;步驟63 :根據接收到的數據確認包ACK中的地址信息,判斷是否是偵聽到的當前節點的父節點發送的數據確認包ACK,若是,則轉步驟64,若不是,則轉步驟65 ; 步驟64 :將偵聽到的父節點發送的數據確認包ACK中的隊列長度值記錄下來; 步驟65 :檢查收到的數據確認包ACK中的源節點地址是不是當前節點地址,若是,則表 示數據發送成功,若不是,則轉步驟66 ; 步驟66 :檢查收到的數據包的鄰近節點地址I或鄰近節點地址2是不是當前節點地 址,若是,則轉步驟67,若不是,則轉步驟68 ; 步驟67 :從當前節點轉發數據確認包ACK給源節點; 步驟68 :丟棄數據確認包ACK。
6.按照權利要求I所述的ー種應用于實時監測的無線傳感器網絡數據收集方法,其特征在于所述的步驟22中數據編碼模式,普通編碼模式是對數據進行簡單的CRC校驗,而增強型的編碼模式是對數據進行分段CRC校驗,然后進行信道編碼,最后對數據進行比特交織;其中根據不同的應用場景采用不同的信道編碼和交織技木。
全文摘要
一種應用于實時監測的無線傳感器網絡數據收集方法包括路由建立和數據傳輸兩個過程。路由建立過程采用普通編碼模式即對數據包進行循環冗余校驗,然后根據負載、鏈路信道質量和跳數等指標建立符合要求的多徑路由;數據傳輸過程可以采用普通編碼模式或增強型的編碼模式,當無線信道條件較差時,可采用增強型的編碼模式即對數據包進行分段、循環冗余校驗、信道編碼和比特交織,同時數據傳輸過程中根據路由表中父節點的當前負載大小判斷是否切換路由,當數據包重傳時需要聯合物理層、數據鏈路層和路由層來處理,啟用父節點鄰居節點的多徑路由協作傳輸,接收節點采用數據包接收合并技術。具有路由建立速度快,路由維護開銷小,數據傳輸可靠性高和時延低的優點。
文檔編號H04L1/00GK102664716SQ20121010979
公開日2012年9月12日 申請日期2012年4月13日 優先權日2012年4月13日
發明者包志華, 周暉, 孫強, 張士兵, 徐晨, 章國安, 袁紅林, 黃勛 申請人:南通大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 吉木萨尔县| 天镇县| 贵溪市| 仁化县| 内黄县| 北海市| 宾阳县| 江孜县| 师宗县| 榕江县| 乐安县| 山东| 随州市| 嵊泗县| 马公市| 望城县| 霍城县| 雷波县| 上高县| 金阳县| 正镶白旗| 红安县| 靖州| 蓝山县| 鸡东县| 来宾市| 延庆县| 利辛县| 宜州市| 武功县| 应用必备| 阳西县| 温泉县| 北安市| 咸丰县| 德保县| 阿克陶县| 江山市| 阳春市| 安陆市| 内江市|