羅紅玉,樂燕芬,侍財源,羅 松,施偉斌(上海理工大學(xué)光電信息與計算機工程學(xué)院,上海200093)
?
基于USB的WSN測試與分析系統(tǒng)
羅紅玉,樂燕芬*,侍財源,羅松,施偉斌
(上海理工大學(xué)光電信息與計算機工程學(xué)院,上海200093)
摘要:實時監(jiān)控?zé)o線傳感器網(wǎng)絡(luò)(WSN)從單個節(jié)點到整個網(wǎng)絡(luò)的運行狀態(tài),是進行無線傳感器各類研究及應(yīng)用開發(fā)的關(guān)鍵技術(shù)之一,為了克服基于UART的數(shù)據(jù)傳輸所存在的速率瓶頸問題,設(shè)計了一種基于USB的WSN監(jiān)測系統(tǒng),主要包括偵聽節(jié)點和監(jiān)測分析系統(tǒng)兩部分。偵聽節(jié)點采用CC2531 USB Dongle,以被動偵聽的方式獲取無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)包(符合IEEE802.15.4標準),封裝后通過USB接口上傳至上位機監(jiān)測分析系統(tǒng)。上位機監(jiān)測系統(tǒng),通過USB接口讀取數(shù)據(jù)幀、完成幀信息存儲、解析。實驗結(jié)果表明該設(shè)計能夠?qū)崿F(xiàn)數(shù)據(jù)傳輸并以圖形方式動態(tài)顯示網(wǎng)絡(luò)運行狀態(tài)。本監(jiān)測系統(tǒng)的設(shè)計為開展WSN的各類理論及實驗研究提供了有力的分析工具。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);拓撲解析;上位機軟件;USB接口;CTP協(xié)議;ZigBee協(xié)議
隨著傳感器技術(shù)、嵌入式技術(shù)、無線通信技術(shù)微電子技術(shù)等發(fā)展,無線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Netork)經(jīng)過多年的研究與開發(fā),正快速進入實用階段[1-2]。目前國內(nèi)外很多學(xué)術(shù)研究機構(gòu)、商業(yè)機構(gòu)都對無線傳感器網(wǎng)絡(luò)監(jiān)測平臺展開了詳細的研究[3-7],但其基于UART接口完成數(shù)據(jù)幀獲取及簡單的解析,如采集溫濕度數(shù)據(jù)并分析,且非開源的。
基于無線傳感器網(wǎng)絡(luò)監(jiān)控需求,并考慮到在進行實時監(jiān)測的任務(wù)過程中,監(jiān)測系統(tǒng)必須具有數(shù)據(jù)采集、數(shù)據(jù)處理及大量數(shù)據(jù)無線傳送功能,同時滿足周期性數(shù)據(jù)采集和低功耗傳輸?shù)男枨螅?],同時為了突破UART數(shù)據(jù)傳輸?shù)钠款i,本文提出了一種基于USB的WSN監(jiān)測系統(tǒng)設(shè)計方案,通過幀解析實現(xiàn)網(wǎng)絡(luò)狀態(tài)信息、性能指標的圖形化動態(tài)顯示。
1.1網(wǎng)絡(luò)測試平臺系統(tǒng)構(gòu)架
考慮到無線傳感器網(wǎng)絡(luò)對監(jiān)測技術(shù)的要求,本W(wǎng)SN監(jiān)測系統(tǒng)包括被測無線傳感器網(wǎng)絡(luò)、USB幀聽網(wǎng)絡(luò)、PC端協(xié)議分析模塊。圖1為網(wǎng)絡(luò)測試平臺的基本構(gòu)架。
圖1中被測無線傳感器網(wǎng)絡(luò)采用ZigBee或Tinyos節(jié)點板,在2.4 GHz頻段附近組網(wǎng),傳感器節(jié)點用于采集環(huán)境指標如濕度、光照、壓力等信息,并將這些信息經(jīng)過各路由節(jié)點送達協(xié)調(diào)器。偵聽網(wǎng)絡(luò)由CC2531偵聽節(jié)點組成,被動偵聽被測無線傳感器網(wǎng)絡(luò)發(fā)出的信息,并將這些數(shù)據(jù)封裝成USB協(xié)議數(shù)據(jù)包,上傳至PC機進行分析。PC監(jiān)測客戶端協(xié)議分析軟件對上傳的數(shù)據(jù)進行保存、解析,根據(jù)數(shù)據(jù)包中的地址域分析出拓撲結(jié)構(gòu)以及其它網(wǎng)絡(luò)特征信息,并進行動態(tài)圖形顯示。
圖1 網(wǎng)絡(luò)測試平臺基本構(gòu)架
1.2硬件平臺
傳感器節(jié)點板和偵聽節(jié)點板兩種硬件模塊構(gòu)成了測試平臺的硬件系統(tǒng)。前者構(gòu)成被監(jiān)測的無線傳感器網(wǎng)絡(luò),可采用ZigBee或Tinyos節(jié)點板構(gòu)成[9];后者作為偵聽節(jié)點,是本測試平臺的核心。
本測試平臺偵聽節(jié)點選用TI集成USB2.0接口的CC2531USB Dongle。該設(shè)備最高傳輸速率達480 Mbit/s,完全可滿足大量數(shù)據(jù)傳輸?shù)乃俾室?。CC2531集成有一個USB控制器[10],結(jié)構(gòu)如圖2所示。通過USB固件庫程序,可對驅(qū)動信息進行詳細描述,USB主機在與CC2531通信時將根據(jù)這些信息加載合適的驅(qū)動,在設(shè)備正確識別后,USB主機可以從控制器的FIFO端點讀寫數(shù)據(jù)[11]。
圖2 USB控制器
主機與設(shè)備通信是通過端點完成的。從USB控制器結(jié)構(gòu)可以看出,CC2531具有6個端點,端點0是控制端點[12],每個設(shè)備必須有端點0,它用于設(shè)備枚舉和主機對設(shè)備進行一些基本控制功能操作時的通信;端點1~5是數(shù)據(jù)端點,在設(shè)備配置成功后可用于數(shù)據(jù)的讀寫操作。每個USB設(shè)備有一個唯一的主機分配的地址,只有確定了設(shè)備地址和端點地址才可以進行數(shù)據(jù)通信。
2.1USB數(shù)據(jù)通信設(shè)計
USB設(shè)備與主機通信前需要配置驅(qū)動,讓主機識別才能夠進行正常數(shù)據(jù)通信和讀寫操作。讀操作也即數(shù)據(jù)輸入,是數(shù)據(jù)從設(shè)備到主機的過程;寫操作也即數(shù)據(jù)輸出,是數(shù)據(jù)從主機到設(shè)備的過程。USB通信過程如圖3所示。
圖3 主機端USB通信過程
要訪問設(shè)備就必須先獲得該設(shè)備句柄,在Windows操作系統(tǒng)中可以通過GUID類進行查找這個句柄[13]。配置設(shè)備時,主機通過系統(tǒng)API將上電設(shè)備與GUID綁定,并將GUID寫入注冊表,這樣通過GUID(接口類GUID)就可以找到對應(yīng)設(shè)備。主機自身有個驅(qū)動對應(yīng)的GUID文件,使用該API后,主機將把對應(yīng)的設(shè)備的VID,PID以及版都列舉出來(設(shè)備的VID,PID,版本號都是由下位機配置好的)如果某設(shè)備存在于該列表中則可以被打開。通過獲取設(shè)備接口詳細信息可找到USB設(shè)備,從而完成設(shè)備枚舉。
設(shè)備描述符信息也即設(shè)備接口詳細信息[14]是在偵聽節(jié)點軟件設(shè)計過程完成的,其主要是對設(shè)備的端點號、設(shè)備的VID、PID及版本號進行配置等。其編程在TI提供的USB固件庫程序rfusb_cc2531中,找到對應(yīng)的usb_hid_descriptor.s51文件,在其中進行相應(yīng)的程序編寫。整個文件是完善描述符結(jié)構(gòu)體,并提供可以修改、讀取的指針以便USB中斷使用。而對應(yīng)的中斷服務(wù)入口程序則在文件mrfi_radio.c中。
2.2偵聽節(jié)點軟件設(shè)計
圖4是一個完整的初始化、數(shù)據(jù)接收和數(shù)據(jù)發(fā)送的流程。從處理USB標準請求(處理USB復(fù)位、USB端點0的數(shù)據(jù)和USB暫停)開始至上位機接收數(shù)據(jù),這些步驟是處于主循環(huán)中。
圖4 偵聽節(jié)點設(shè)計流程圖
初始化模塊完成的工作如圖5所示。
圖5 初始化模塊
圖5中,中射頻模塊MRFI初始化主要是完成全局中斷及偵聽信道的設(shè)置。WSN在2.4 GHz頻段共有16個通信信道,第K個信道的中心頻率f= 2 450+5(k-11)MHz。
初始化結(jié)束后,節(jié)點進入數(shù)據(jù)接收、發(fā)送主循環(huán)。當節(jié)點偵聽到數(shù)據(jù)幀時,就會觸發(fā)中斷事件對數(shù)據(jù)進行接收。接收中斷服務(wù)程序如圖6所示,首先設(shè)置RFRadioState為接收狀態(tài),檢查當前接收的數(shù)據(jù)幀是否滿足802.15.4協(xié)議。如果接收到一個符合802.15.4完整的數(shù)據(jù)幀,再檢測當前的硬件緩存區(qū)是否有足夠空間存儲,如果有,則進行存儲,存儲之后把硬件緩存區(qū)的數(shù)據(jù)存儲到軟件環(huán)形緩存區(qū)中。
圖6 接收中斷服務(wù)程序
并且清空當前硬件緩沖區(qū)。軟件緩存使用環(huán)形FIFO進行數(shù)據(jù)存儲,總是從隊尾加入需存儲的新數(shù)據(jù)幀。這種環(huán)形FIFO的數(shù)據(jù)存儲方式能有效解決數(shù)據(jù)包覆蓋問題。
存放在環(huán)形緩存FIFO中的RF數(shù)據(jù)幀將通過USB接口上傳,等待上位機接收。本文選擇USB端點3完成數(shù)據(jù)發(fā)送,該端點大小為128字節(jié),而802.15.4通信的數(shù)據(jù)幀長度不會大于128字節(jié),發(fā)送緩存區(qū)大小滿足要求。數(shù)據(jù)發(fā)送成功點亮紅燈。
2.3協(xié)議分析軟件設(shè)計
協(xié)議分析軟件程序流程如圖7所示。
圖7 協(xié)議分析軟件程序設(shè)計流程圖
首先通過發(fā)現(xiàn)USB設(shè)備這一過程讓主機完成枚舉,此后主機與USB設(shè)備之間通過USB接口進行通信。協(xié)議分析軟件發(fā)送信道配置等命令給偵聽設(shè)備并進入數(shù)據(jù)幀接收狀態(tài)。從USB接口獲取的數(shù)據(jù)幀經(jīng)過協(xié)議解析,可直接顯示MAC層數(shù)據(jù)包,并支持對ZigBee協(xié)議與CTP協(xié)議棧的分析。利用多個線程可以進行拓撲分析,網(wǎng)絡(luò)參數(shù)性能指標分析等工作,并利用定時器線程完成分析結(jié)果和拓撲圖的動態(tài)顯示。
為驗證本測試與分析系統(tǒng)的有效性,搭建了被測試WSN網(wǎng)絡(luò),并進行了各項性能測試實驗,如被測網(wǎng)絡(luò)建立時間、節(jié)點申請加入時間、數(shù)據(jù)丟包率、網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖等。實驗在長約10m寬約7m的實驗室內(nèi)進行,存在外界WLAN干擾。
3.1USB數(shù)據(jù)通信
通過前述偵聽節(jié)點USB的配置以及主機成功完成枚舉過程后,USB與主機能夠正常的進行通信,上位機接收界面如圖8所示。
從圖8可以看出偵聽節(jié)點使用3號端點,并在信道11上對CTP協(xié)議無線傳感器網(wǎng)絡(luò)進行偵聽。原始數(shù)據(jù)里每一行都是一個完整的數(shù)據(jù)幀,幀頭是0x75,0x73兩字節(jié),幀尾是0x73,0x74兩個字節(jié),由0009號節(jié)點向0001號節(jié)點發(fā)送數(shù)據(jù)。
圖8 USB數(shù)據(jù)通信圖
3.2ZigBee協(xié)議數(shù)據(jù)偵聽
實驗中,監(jiān)聽ZigBee網(wǎng)絡(luò)使用1個偵聽節(jié)點、1個協(xié)調(diào)器和若干終端設(shè)備,組成星型網(wǎng)絡(luò)。該實驗主要功能是通過一個節(jié)點的按鍵控制,點亮其他節(jié)點相應(yīng)燈閃爍控制。網(wǎng)絡(luò)拓撲如圖9所示。
圖9 網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖
圖9中顯示0001節(jié)點為協(xié)調(diào)器節(jié)點,0004號節(jié)點、0005號節(jié)點和0009號節(jié)點為終端節(jié)點構(gòu)成星型網(wǎng)絡(luò)。
3.3CTP協(xié)議數(shù)據(jù)偵聽及分析
本實驗采用4個節(jié)點構(gòu)成CTP無線傳感器網(wǎng)絡(luò),0001節(jié)點為協(xié)調(diào)器節(jié)點,0004號節(jié)點作為路由器節(jié)點,其余2個節(jié)點作為終端節(jié)點。利用數(shù)據(jù)分析中的數(shù)據(jù)解析(CTP)這一標簽觀察,實驗數(shù)據(jù)如圖10所示。
圖10 數(shù)據(jù)接收圖
圖10中Ⅰ部分的每一行顯示的均是完整的一個CTP數(shù)據(jù)幀。圖中依次顯示數(shù)據(jù)接收時刻、幀長度、MAC層序號、地址信息、MAC負載、接收信號強度、鏈接質(zhì)量和幀校驗等信息。以第5個幀為例,從圖中可直接看出這是一個數(shù)據(jù)幀,從0009號節(jié)點送往0004號節(jié)點。點擊該行,則在圖Ⅱ部分顯示該幀的路由表信息和鄰居表信息,顯示內(nèi)容表明該幀為轉(zhuǎn)發(fā)幀,傳送路徑是從0009到0004,同時顯示了節(jié)點ETX值和數(shù)據(jù)負載信息。圖Ⅲ部分顯示網(wǎng)絡(luò)的單位流量曲線,橫軸是時間軸,縱軸是單位時間內(nèi)的流量(包個數(shù))。該曲線是在偵聽的總包數(shù)不發(fā)生變化時測試的,可以看出流量變化比較穩(wěn)定。
圖11顯示4個節(jié)點在建立穩(wěn)定網(wǎng)絡(luò)后的拓撲圖。0001號節(jié)點作為協(xié)調(diào)器建立網(wǎng)絡(luò),0005節(jié)點和0009節(jié)點作為終端節(jié)點加入網(wǎng)絡(luò),0004號節(jié)點作為路由節(jié)點加入網(wǎng)絡(luò)。
圖11 傳感器網(wǎng)絡(luò)拓撲圖
3.4網(wǎng)絡(luò)建立過程分析
協(xié)議分析軟件可以通過對接收的無線數(shù)據(jù)包的分析完成對網(wǎng)絡(luò)建立過程的有效監(jiān)測,并圖形顯示相關(guān)信息。實驗過程中,首先打開協(xié)議分析軟件,對USB偵聽節(jié)點設(shè)置了偵聽信道、打開通信端點,然后依次打開協(xié)調(diào)器節(jié)點、路由器節(jié)點和終端節(jié)點。網(wǎng)絡(luò)建立過程如圖12所示。
圖12中Ⅰ部分申請加入網(wǎng)絡(luò)但未能加入網(wǎng)絡(luò)節(jié)點的傳感器節(jié)點,因為實驗環(huán)境中存在其他的傳感器節(jié)點,而其他的傳感器節(jié)點申請接入網(wǎng)絡(luò),而由于其通信信道不相同未能成功接入網(wǎng)絡(luò)。Ⅱ部分是加入網(wǎng)絡(luò)節(jié)點對應(yīng)相關(guān)信息,信息包括申請入網(wǎng)時刻、加入網(wǎng)絡(luò)耗時、入網(wǎng)廣播包數(shù)、LQI值和RSSI值。從圖中可以看出路由節(jié)點0004首先加入網(wǎng)絡(luò),之后加入的是終端節(jié)點。Ⅲ部分可以選擇入網(wǎng)時間比較、節(jié)點入網(wǎng)時刻曲線、入網(wǎng)廣播包數(shù)比較三種方式觀察實驗。圖中申請入網(wǎng)時刻單位是ms。
圖12 網(wǎng)絡(luò)建立過程圖
3.5網(wǎng)絡(luò)穩(wěn)定性分析
無線傳感器網(wǎng)絡(luò)穩(wěn)定性主要是通過研究網(wǎng)絡(luò)丟包率變化、網(wǎng)絡(luò)拓撲結(jié)構(gòu)改變等現(xiàn)象進行。網(wǎng)絡(luò)丟包率從上位機接收的MAC層幀序號以及上位機自身接收到的數(shù)據(jù)幀序號對比可以計算出丟掉包的數(shù)量。拓撲變化可以從鄰接表被修改的次數(shù)分析出穩(wěn)定性。網(wǎng)絡(luò)穩(wěn)定性分析如圖13所示。
圖13中Ⅰ部分從上到下依次顯示偵聽的總包數(shù)、廣播包數(shù)、自發(fā)包、轉(zhuǎn)發(fā)包、丟包數(shù)、丟包率、拓撲變化次數(shù)和節(jié)點個數(shù)。從圖中看出當前共偵聽到304個包,其中廣播包34個,自發(fā)包0個,轉(zhuǎn)發(fā)包270個。丟包率為0,拓撲變化次數(shù)為0。Ⅱ部分以餅圖顯示包組成成分對比,從圖中可以看出,含有路由信息的幀是路由幀,其占據(jù)了總發(fā)包數(shù)量的10%左右,含有轉(zhuǎn)發(fā)信息的幀是轉(zhuǎn)發(fā)幀其占總發(fā)包的90%左右。Ⅲ部分顯示的是拓撲變化次數(shù)。Ⅳ顯示每個節(jié)點自身發(fā)出的廣播包、轉(zhuǎn)發(fā)數(shù)據(jù)包以及自身數(shù)據(jù)包數(shù)量。這些圖形顯示直觀地說明了網(wǎng)絡(luò)穩(wěn)定性能。
圖13 網(wǎng)絡(luò)穩(wěn)定性分析圖
本監(jiān)測系統(tǒng)利用具有USB接口的偵聽節(jié)點完成被測無線傳感器網(wǎng)絡(luò)的被動偵聽,通過對所偵聽數(shù)據(jù)幀的分析,完成了無線傳感器網(wǎng)絡(luò)監(jiān)測和分析功能。除了完整顯示MAC層數(shù)據(jù)幀,系統(tǒng)還可以根據(jù)Zig?Bee或CTP協(xié)議完成數(shù)據(jù)幀的分析,獲取網(wǎng)絡(luò)的各個性能參數(shù),如網(wǎng)絡(luò)建立時間分析、穩(wěn)定性分析、拓撲結(jié)構(gòu)、數(shù)據(jù)丟包率等,并以圖形方式實時動態(tài)顯示。相對于仿真研究,該監(jiān)測軟件的設(shè)計為開展無線傳感器網(wǎng)絡(luò)相關(guān)的各類實驗研究提供了有利的支持。
參考文獻:
[1]馮亞超,賀康,楊紅麗,等.一種無線傳感器網(wǎng)絡(luò)數(shù)據(jù)收集協(xié)議的研究與優(yōu)化[J].傳感技術(shù)學(xué)報,2014,27(3):355-360.
[2]Akyildiz W S,Sanakarasubramaniam Y,Cayici E,et al. Wireless Sensor Networks:A Survey[J]. Computer Networks,2002,38(4):393-422.
[3]Anh N T,Shorey R. Network Sniffing Tools for WLANs:Merits and limitations[C]//Personal Wireless Communications,2005:389-393.
[4]崔遜學(xué),左從菊.無線傳感器網(wǎng)絡(luò)簡明教程[M].北京:清華大學(xué)出版社,2009:231-256.
[5]Ertin E,Arora A,Ramnath R,et al. Kansei:Sensor Testbed forAt-Scale Expeirments[C]//Proceeding of 2nd International TinyOS Technology Exchange,Berkdey,2005.
[6]Werner-Allen G,Swieskowski P,Welsh M. MoteLab:A wireless Sensor Network Testbed[C]//International Symposium on Informa?tion Processingin Sensor Networks. IEEE Press,2005:483-488.
[7]高民,沈鐘,黃有才. SNAP:無線傳感器網(wǎng)絡(luò)研發(fā)測試平臺[J].計算機研究與發(fā)展,2010,47:338-344.
[8]魏艷梅.無線傳感器網(wǎng)絡(luò)測試平臺設(shè)計方法研究[D].山東大學(xué)計算機科學(xué)與技術(shù)學(xué)院,2013.
[9]仇國慶,楊志龍,楊莉,等.基于ZigBee協(xié)議的無線傳感器網(wǎng)絡(luò)節(jié)點設(shè)計[J].自動化與儀器儀表,2008,63(3):7-8.
[10]Zhao Z,Yang G H,Liu Q,et al. Implementation and Application of a Multi-Radio Wireless Sensor Networks Testbed[J]. Wireless Sensor Systems let,2011,1(4):191-199.
[11]郝曉明,李杰,胡陳君,等.基于FPGA的彈載數(shù)據(jù)回讀系統(tǒng)設(shè)計[J].傳感技術(shù)學(xué)報,2015,28(7):1023-1027.
[12]萬婷婷. USB接口開發(fā)及功能實現(xiàn)[D].西安:西安電子科技大學(xué),2011.
[13]阿力甫·阿木提. Delphi1中USB設(shè)備數(shù)據(jù)采集與控制方法[J].中國科技信息,2014,21:105-106.
[14]段嚴兵,羅文華. Windows操作系統(tǒng)環(huán)境下調(diào)查USB設(shè)備使用痕跡方法研究[J].刑事技術(shù),2015(2):138-141.
羅紅玉(1990-),女,碩士研究生,研究領(lǐng)域為無線傳感器網(wǎng)絡(luò),kuma?ra648793894@163.com;
樂燕芬(1978-),女,上海人,講師,博士,主要研究領(lǐng)域為無線傳感器網(wǎng)絡(luò)應(yīng)用技術(shù)開發(fā)、無線抗干擾技術(shù)等,leyan?fen@usst.edu.cn。
WSN Monitoring System Based on USB
LUO Hongyu,LE Yanfen*,SHI Caiyuan,LUO Song,SHI Weibin
(School of Optical-Electrical and ComputerEngineering,University of Shanghai for Science and Technology,Shanghai 200093,China)
Abstract:Monitoring the operation of both the single node and the whole network is a key part to do research and development work of wireless sensor network. In order to overcome the speed bottleneck of the transmission based on UART,a novel WSN monitoring system is proposed,which is composed of the sniffer node and the monitoring analysis system. Sniffer node is responsible for monitoring the data of WSN(802.15.4 protocol)encapsulating and sending data to monitor analysis system through CC2531 USB dongle. While the monitor system gets the data from the USB interface and completes storage and analysis of the data. The experimental results show that the design can accomplish data transmission and dynamic display network running state effectively. The design provides a refer?ence for various implements in monitoring WSN.
Key words:WSN;Topology analy;PC software;USB interface;CTP(Collection Tree Protocol);Zigbee protocol
doi:EEACC:6150P;6150M10.3969/j.issn.1004-1699.2016.03.018
中圖分類號:TP393
文獻標識碼:A
文章編號:1004-1699(2016)03-0411-06