基于nRF905的無線傳感器網(wǎng)絡節(jié)點的設計與實現(xiàn)
2.2.3 路由修復
數(shù)據(jù)傳輸時,每個節(jié)點收到數(shù)據(jù)后,都要先回復應答ACK信號給其前一個節(jié)點,再轉發(fā)至下一個中繼節(jié)點,節(jié)點中設置超時定時器,約等待1 633 μs ACK信號,前一個節(jié)點沒有收到ACK,則重發(fā)數(shù)據(jù),設置重發(fā)次數(shù)為3。假若重發(fā)3次都沒有收到ACK信號,則判斷下一個節(jié)點為中斷節(jié)點。查詢緩存路由中是否有其他到達中斷節(jié)點下游節(jié)點的信息,有則使用這個備用路由,無則廣播發(fā)送RERR給所有包含中斷節(jié)點路由的源節(jié)點,每個節(jié)點在收到該RERR后,就會從它的路由緩存中刪除所有包含該中斷節(jié)點的路由。
路由修復示例如圖5所示。節(jié)點0需要發(fā)送數(shù)據(jù)給節(jié)點5,節(jié)點0中含有到節(jié)點5的路由信息,0→1→2→5;節(jié)點0開始發(fā)送RTS,每個節(jié)點收到RTS后返回給前一個節(jié)點ACK,表示路由無中斷;假若節(jié)點1沒有收到ACK,重發(fā)3次后仍沒有ACK返回,則判斷節(jié)點2是中斷節(jié)點;這時查詢節(jié)點1中有無到達節(jié)點5的路由,發(fā)現(xiàn)1→3→4→5,則按照此路由繼續(xù)發(fā)送RTS;當節(jié)點1返回DATA_ACK,表示數(shù)據(jù)傳輸完成,延遲10×跳數(shù)(ms)后,廣播發(fā)送RRER,收到RRER的每個節(jié)點查詢本節(jié)點是否含有中斷路由,有則從路由緩存中刪除包含中斷節(jié)點的路由。
3 試驗結果
試驗網(wǎng)絡系統(tǒng)由10個普通節(jié)點和1個協(xié)調(diào)器節(jié)點組成,采用人工隨機安放的方式把所有節(jié)點放置在約200 m的空曠地帶。首先,把協(xié)調(diào)器節(jié)點通過串口與主控PC機連接,打開上位機控制軟件,并給協(xié)調(diào)器節(jié)點上電;隨后在隨機放置普通節(jié)點的同時一一打開節(jié)點的電源。
通過上位機軟件可以清楚地看到,每當有新節(jié)點加入網(wǎng)絡(打開電源),上位機會實時顯示出新加入節(jié)點的地址和路由信息,并且通過反向路由返回應答信號給新節(jié)點,表示成功加入網(wǎng)絡。當所有節(jié)點都加入網(wǎng)絡后,可以通過上位機軟件看到整個網(wǎng)絡中各個節(jié)點的路由信息,并且可以對每個節(jié)點或多個節(jié)點進行遠程控制。
為了實時監(jiān)測到每個節(jié)點的運行情況,每個節(jié)點程序都加入定時掃描程序,定時時間1 min,檢測節(jié)點本身在1 min內(nèi)是否為空閑狀態(tài),如果是空閑狀態(tài),則向協(xié)調(diào)器節(jié)點發(fā)送節(jié)點信號,保證本鏈路無中斷;協(xié)調(diào)器在一定時間周期內(nèi),檢測接收到的每個節(jié)點信號,如果缺少某個節(jié)點的信息,則由協(xié)調(diào)器發(fā)送檢測信號給這個節(jié)點,尋找中斷節(jié)點并進行路由維護。也可以直接通過主控電腦的上位機軟件手動發(fā)送檢測信號給每個節(jié)點,從而檢測每個節(jié)點的運行情況。
nRF905的空中傳輸速率峰值為100 kb/s,有效傳輸速率為50 kb/s。
通過上位機軟件對整個網(wǎng)絡進行連續(xù)數(shù)據(jù)傳輸試驗,測試在本協(xié)議下的網(wǎng)絡吞吐率。測試條件:200 m空曠地帶,分別測試一個節(jié)點至10節(jié)點網(wǎng)絡中點對點,1跳、2跳、3跳情況下的吞吐率,數(shù)據(jù)包大小32 B。傳輸要求一個包到達目的節(jié)點后返回到應答表示傳輸完成,其吞吐率計算[6]如下:
測得的網(wǎng)絡吞吐率如圖6所示??梢钥闯?,網(wǎng)絡中進行點對點的數(shù)據(jù)傳輸,吞吐率約為16 kb/s,并且隨著節(jié)點數(shù)的增多,影響很??;隨著跳數(shù)的增加,網(wǎng)絡吞吐率降低,但是網(wǎng)絡中節(jié)點數(shù)量增多,同時節(jié)點傳輸幾率增加,因此逐漸趨于穩(wěn)定值。最后在網(wǎng)絡設定最大跳數(shù)(3跳)、10個節(jié)點網(wǎng)絡的情況下,網(wǎng)絡吞吐率約為4 kb/s。
通過實驗測得數(shù)據(jù)表明,在短距離的無線通信網(wǎng)絡中,該系統(tǒng)可以穩(wěn)定可靠地運行,數(shù)據(jù)傳輸率高,網(wǎng)絡吞吐率完全可以達到一般的無線傳感器網(wǎng)絡的要求。并且該系統(tǒng)具有良好的擴展性、移植性和實用性,可廣泛運用于溫度、濕度、光傳感器采集數(shù)據(jù)、能量監(jiān)測及電路控制等技術。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感器網(wǎng)絡[M].北京:清華大學出版社,2005.
[2] 陳???,陳勤,羅敏,等.DSR本地修復算法的改進[J].微電子學與計算機,2009(26):142-145.
[3] JAWHAR I, TRABELSI Z, Al-JAROODI J. Towards more reliable source routing in wireless networks[C]. Proc. IEEE Int. Conf. Networking, Archit., Storage-IEEE NAS 2008, 2008.
[4] 屠梓浩,吳榮泉,錢立群.無線Ad Hoc網(wǎng)絡DSR路由協(xié)議的優(yōu)化設計[J].計算機工程,2009,35(4):97-99.
[5] Nordic VLSIASA. Single Chip 433/868/915MHz Transceiver nRF905. 2004-01.
[6] 柯欣,孫利民.多跳無限傳感器網(wǎng)絡吞吐量分析[J].通信學報,2007,28(9):78-84.
評論