高 菲
(寶雞職業(yè)技術(shù)學(xué)院,寶雞721000)
基于ZigBee的網(wǎng)絡(luò)偵聽(tīng)系統(tǒng)設(shè)計(jì)
高 菲
(寶雞職業(yè)技術(shù)學(xué)院,寶雞721000)
設(shè)計(jì)ZigBee網(wǎng)絡(luò)偵聽(tīng)系統(tǒng)的框架結(jié)構(gòu),從功能上劃分,本系統(tǒng)包括兩個(gè)部分:偵聽(tīng)節(jié)點(diǎn)部分和偵聽(tīng)軟件部分。偵聽(tīng)節(jié)點(diǎn)主要包括串口配置模塊、命令交互模塊、數(shù)據(jù)收發(fā)模塊和數(shù)據(jù)上傳模塊。這些模塊主要實(shí)現(xiàn)了串口初始化、信道設(shè)置、網(wǎng)絡(luò)中數(shù)據(jù)包的獲取和把獲取的數(shù)據(jù)包傳到上位機(jī)。偵聽(tīng)軟件主要實(shí)現(xiàn)了對(duì)下位機(jī)的控制和對(duì)獲取數(shù)據(jù)的處理,以及分析結(jié)果的顯示。系統(tǒng)利用CC2430強(qiáng)大的DMA功能把數(shù)據(jù)從RFD寄存器轉(zhuǎn)存到串口發(fā)送緩沖區(qū)。最后調(diào)用串口收發(fā)函數(shù)將數(shù)據(jù)上傳到上位機(jī)或者將上位機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)傳遞到CC2430,同時(shí)詳細(xì)介紹了各功能模塊的實(shí)現(xiàn)。在CC2430芯片上完成了偵聽(tīng)節(jié)點(diǎn)程序的設(shè)計(jì),分別闡述偵聽(tīng)程序、偵聽(tīng)軟件、數(shù)據(jù)包上傳和任務(wù)調(diào)度的設(shè)計(jì)方法。搭建無(wú)線傳感器偵聽(tīng)系統(tǒng),對(duì)當(dāng)前ZigBee網(wǎng)絡(luò)進(jìn)行偵聽(tīng)。通過(guò)大量的測(cè)試實(shí)驗(yàn)對(duì)軟件實(shí)現(xiàn)的功能進(jìn)行測(cè)試和評(píng)估。
無(wú)線通信;傳感器網(wǎng)絡(luò);偵聽(tīng);數(shù)據(jù)包;偵聽(tīng)軟件;協(xié)議
在WSN的研究和開(kāi)發(fā)過(guò)程中會(huì)遇見(jiàn)各種各樣的問(wèn)題。雖然可以通過(guò)調(diào)試和仿真的方法解決某些問(wèn)題,但在一些惡劣環(huán)境和存在某些電磁干擾情況下,需要實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)的變化,從而制定出相應(yīng)的解決方案[1]。本系統(tǒng)通過(guò)對(duì)ZigBee協(xié)議的解析獲取無(wú)線傳感器網(wǎng)絡(luò)中相應(yīng)的通信信息,并對(duì)獲取的信息進(jìn)行加工和整合,以便能夠從整體上評(píng)估和分析網(wǎng)絡(luò)的工作狀況。
基于ZigBee的無(wú)線傳感器網(wǎng)絡(luò)偵聽(tīng)系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 偵聽(tīng)系統(tǒng)結(jié)構(gòu)
從功能上來(lái)劃分本系統(tǒng)包括兩個(gè)部分:偵聽(tīng)節(jié)點(diǎn)部分和偵聽(tīng)軟件部分。它們按照自身的功能需要又分為不同的模塊。偵聽(tīng)節(jié)點(diǎn)主要包括串口配置模塊、命令交互模塊、數(shù)據(jù)收發(fā)模塊和數(shù)據(jù)上傳模塊。這些模塊主要實(shí)現(xiàn)串口初始化、信道設(shè)置、網(wǎng)絡(luò)中的數(shù)據(jù)包獲取和把獲取的數(shù)據(jù)包傳到上位機(jī)。偵聽(tīng)軟件主要實(shí)現(xiàn)對(duì)下位機(jī)的控制和對(duì)獲取數(shù)據(jù)的處理,以及分析結(jié)果的顯示。主要包括命令控制模塊、串口接收模塊、數(shù)據(jù)存儲(chǔ)模塊、幀解析模塊、拓?fù)鋱D模塊和網(wǎng)絡(luò)狀態(tài)模塊。
偵聽(tīng)節(jié)點(diǎn)的主要任務(wù)是抓取網(wǎng)絡(luò)中的RF包[2]。在RF接收模塊,CC2430必須能夠不加過(guò)濾地接收網(wǎng)絡(luò)中的全部RF包。而獲取的RF包中有不滿足ZigBee協(xié)議的,所以在程序設(shè)計(jì)中還要對(duì)不滿足要求的數(shù)據(jù)包進(jìn)行過(guò)濾。接收到的數(shù)據(jù)包會(huì)暫存在RFD寄存器中,利用CC2430強(qiáng)大的DMA功能把數(shù)據(jù)從RFD寄存器轉(zhuǎn)存到串口發(fā)送緩沖區(qū)。最后調(diào)用串口收發(fā)函數(shù)將數(shù)據(jù)上傳到上位機(jī)或者將上位機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)傳遞到CC2430[3]。偵聽(tīng)節(jié)點(diǎn)的程序設(shè)計(jì)流程如圖2所示。
圖2 偵聽(tīng)程序流程圖
當(dāng)偵聽(tīng)節(jié)點(diǎn)上電后,首先對(duì)串口進(jìn)行初始化。串口初始化完成后命令交互模塊就可用了,開(kāi)始等待上位機(jī)發(fā)送控制指令。接收到控制命令時(shí)點(diǎn)亮LED1。若接收到啟動(dòng)或設(shè)置信道命令,則開(kāi)始執(zhí)行啟動(dòng)設(shè)備為默認(rèn)信道或設(shè)置為特定信道。執(zhí)行完命令后熄滅LED1。然后開(kāi)始抓取網(wǎng)絡(luò)中的RF包,收到數(shù)據(jù)包后點(diǎn)亮LED2。之后把獲取的RF包上傳到上位機(jī)并熄滅LED2。執(zhí)行完這一操作后,檢測(cè)上位機(jī)是否有控制命令發(fā)送。若沒(méi)有命令則按上一次的命令設(shè)置繼續(xù)運(yùn)行,否則執(zhí)行新的命令設(shè)置。
偵聽(tīng)軟件主要完成對(duì)偵聽(tīng)節(jié)點(diǎn)上傳的RF包進(jìn)行解析和對(duì)解析后的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,最后把分析后的數(shù)據(jù)顯示到軟件界面上。這里把偵聽(tīng)軟件的實(shí)現(xiàn)分為三個(gè)部分[4]:RF包解析模塊、數(shù)據(jù)統(tǒng)計(jì)模塊、數(shù)據(jù)顯示模塊。RF包解析模塊實(shí)質(zhì)上是根據(jù)ZigBee協(xié)議規(guī)定的幀格式對(duì)RF包逐個(gè)解包,還原RF包在通信網(wǎng)絡(luò)中攜帶的真實(shí)信息。數(shù)據(jù)統(tǒng)計(jì)模塊則是對(duì)還原后的信息進(jìn)行統(tǒng)計(jì)和分類,根據(jù)這些信息可以計(jì)算丟包率,網(wǎng)絡(luò)通信量,畫(huà)網(wǎng)絡(luò)拓?fù)鋱D等[5]。數(shù)據(jù)顯示模塊則側(cè)重于界面的可視化操作和管理,讓使用者能夠便捷的查看網(wǎng)絡(luò)運(yùn)行狀態(tài)。
偵聽(tīng)軟件的設(shè)計(jì)流程如圖3所示。首先,需要配置串口,以便能夠發(fā)現(xiàn)連接到PC的串口設(shè)備。當(dāng)發(fā)現(xiàn)串口后向偵聽(tīng)節(jié)點(diǎn)發(fā)送控制指令,如啟動(dòng)偵聽(tīng)節(jié)點(diǎn),配置信道等。其次,接收偵聽(tīng)節(jié)點(diǎn)上傳的RF包,并對(duì)RF包進(jìn)行解析。這里的解析主要是針對(duì)IEEE 802.15.4/ZigBee協(xié)議標(biāo)準(zhǔn)的解析[6]。再次,對(duì)解析后的數(shù)據(jù)統(tǒng)計(jì)分析,并存入到數(shù)據(jù)庫(kù)中。最后,訪問(wèn)數(shù)據(jù)庫(kù),調(diào)用畫(huà)圖工具將相應(yīng)的數(shù)據(jù)信息顯示到軟件界面上。
圖3 偵聽(tīng)軟件程序設(shè)計(jì)流程圖
圖4 偵聽(tīng)節(jié)點(diǎn)系統(tǒng)調(diào)度流程圖調(diào)度
數(shù)據(jù)接收完成后還要把接收到的數(shù)據(jù)通過(guò)串口上傳到上位機(jī)。這里收到的數(shù)據(jù)包是物理層數(shù)據(jù)包去掉幀頭(即沒(méi)有幀引導(dǎo)序列和SFD)和加了幀尾(FCS)的部分。其第一個(gè)字節(jié)代表的是這個(gè)數(shù)據(jù)包長(zhǎng)度,因此可以根據(jù)第一個(gè)字節(jié)標(biāo)示的幀長(zhǎng)度把指定長(zhǎng)度的數(shù)據(jù)上傳到上位機(jī)[7]。考慮到傳輸?shù)姆€(wěn)定性和可靠性,對(duì)每一個(gè)數(shù)據(jù)包在上傳時(shí)添加幀頭“us”和幀尾“st”,以便上位機(jī)讀取數(shù)據(jù)包和驗(yàn)證數(shù)據(jù)包的完整性[8]。
任務(wù)調(diào)度負(fù)責(zé)對(duì)數(shù)據(jù)收發(fā)、DMA和數(shù)據(jù)上傳等模塊的調(diào)度。而串口接收模塊處于任務(wù)調(diào)度之外,因?yàn)橹挥谐跏蓟昧舜谥髠陕?tīng)節(jié)點(diǎn)才能接收上位機(jī)的命令。接收到相應(yīng)的命令才能進(jìn)行系統(tǒng)命令的處理,這樣任務(wù)調(diào)度才算開(kāi)始。該任務(wù)調(diào)度分兩部分:一部分是命令設(shè)置成功后開(kāi)始初始化信道和DMA;另一部分是RF包的接收和上傳。整個(gè)偵聽(tīng)節(jié)點(diǎn)系統(tǒng)設(shè)計(jì)流程如圖4所示。
系統(tǒng)對(duì)一個(gè)現(xiàn)有ZigBee協(xié)議的無(wú)線傳感器網(wǎng)絡(luò)進(jìn)行了測(cè)試。該ZigBee網(wǎng)絡(luò)包括1個(gè)協(xié)調(diào)器、6個(gè)路由器和20個(gè)終端設(shè)備。在這些設(shè)備中按其型號(hào)不同燒寫(xiě)對(duì)應(yīng)的SampleApp測(cè)試代碼的源程序。本實(shí)驗(yàn)的平面視圖如圖5所示,標(biāo)注了不同設(shè)備的位置。
圖5 測(cè)試實(shí)驗(yàn)的平面布局
幀結(jié)構(gòu)的顯示通過(guò)調(diào)用WPF中xaml定義的格式顯示模板和對(duì)應(yīng)的數(shù)據(jù)源綁定,來(lái)顯示相應(yīng)的幀格式。當(dāng)點(diǎn)擊幀結(jié)構(gòu)中顯示的某條數(shù)據(jù)后,將會(huì)觸發(fā)幀數(shù)據(jù)顯示事件顯示幀數(shù)據(jù)的原始二進(jìn)制碼等參數(shù)。在包數(shù)據(jù)顯示部分,可顯示包索引、幀長(zhǎng)度、原包數(shù)據(jù)、RSSI和CRC的值。經(jīng)多次實(shí)驗(yàn),該模塊可以正確的解析和顯示各種幀信息。
網(wǎng)絡(luò)分析模塊則傾向于對(duì)所關(guān)注的數(shù)據(jù)進(jìn)行分析,主要是丟包率、通信效率等的分析。對(duì)ZigBee網(wǎng)絡(luò)的組網(wǎng)過(guò)程進(jìn)行了偵聽(tīng)。圖6顯示的是柱狀圖。該柱狀圖顯示在組網(wǎng)過(guò)程中各幀占的比例。信標(biāo)幀在組網(wǎng)完成后占的比例會(huì)越來(lái)越小,而命令幀占的比例會(huì)越來(lái)越大。這是因?yàn)樵诮M網(wǎng)過(guò)程中節(jié)點(diǎn)通過(guò)發(fā)送信標(biāo)請(qǐng)求尋找協(xié)調(diào)器,協(xié)調(diào)器發(fā)現(xiàn)節(jié)點(diǎn)后廣播信標(biāo)。組網(wǎng)后不再使用信標(biāo),而是節(jié)點(diǎn)周期性地向協(xié)調(diào)器發(fā)送數(shù)據(jù)請(qǐng)求命令。圖7是網(wǎng)絡(luò)通信量顯示圖。該圖波動(dòng)比較明顯的地方是因?yàn)橛泄?jié)點(diǎn)請(qǐng)求加入網(wǎng)絡(luò)。當(dāng)節(jié)點(diǎn)加入網(wǎng)絡(luò)后,網(wǎng)絡(luò)的通信量曲線將趨于平穩(wěn)。經(jīng)過(guò)大量的測(cè)試實(shí)驗(yàn),該數(shù)據(jù)分析模塊能夠正確分析網(wǎng)絡(luò)中節(jié)點(diǎn)的通信狀況。但是穩(wěn)定性和兼容性方面還需要進(jìn)一步提高。
圖6 MAC層各種幀占的比例
圖7 網(wǎng)絡(luò)通信量分析
無(wú)線傳感器網(wǎng)絡(luò)偵聽(tīng)技術(shù)是一項(xiàng)對(duì)無(wú)線傳感器網(wǎng)絡(luò)的分析技術(shù)。通過(guò)對(duì)網(wǎng)絡(luò)的分析,可以分析和解決無(wú)線傳感器網(wǎng)絡(luò)工作中遇到的問(wèn)題。將來(lái)可以更好的把無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用到人們的日常生活中去。
[1] Martin T,Jose S.MOTE-VIEW:A sensor network monitoring and management tool[C].In:Proceeding of Embedded Networked Sensors,2005:11-18.
[2] Li H F.Design of Video Sensor based on Wireless Sensor Networks[J].Advanced Materials Research,2011,5(6):7-23.
[3] Gribaudo M,Manini D,Nordio A.Transient Analysis of IEEE 802.15.4 Sensor Networks[J].IEEE Transactions on Wireless Communications,2011,11(6):65-68.
[4] Buschmann C,Pfisterer D,F(xiàn)ischer S,et al.SpyGlass:A Wireless Sensor Network Visualizer[J].ACM SIGBED Review,2005,2(1):1-6.
[5] Elson J,Girod L,Estrin D.Emstar:Development with High System Visibility[J].Wireless Communications,2004,11(6):70-77.
[6] Jordan Cote,Bing Wang,Wei Zeng,Zhijie Shi.Capability and Fidelity of Moteclass Wireless Sniffers[C].IEEE Globecom 2010 proceedings,2010.
[7] Han J,Choi C,Lee I.More Efficient Home Energy Management System based on Zigbee Communication and Infrared Remote Controls[J].IEEE Transactions on Consumer Electronics,2011,57(4):85-89.
[8] M Ringwald,M Cortesi,K Romer,A Vialetti.Demo abstract:Passive inspection of deployed sensor networks with snif[C].In K.Langendoen and T.Voigt,editors,Adjunct Proceedings of the 4th European Confererence on Wireless Sensor Networks,2007:45-46.
Design of Network Interception System Based on ZigBee
Gao Fei
(Baoji Vocational Technology College,Baoji721000,China)
The frame structure of ZigBee network interception system is designed in this paper.The system consists of two parts,interception node and software.The interception node includes a serial port configuration module,command interaction module,data transceiver module and data upload module,etc.,which mainly realizes serial port initialization and channel setting,and obtains the packets in the network and sends them to the uppermachine.The software is used to control themachine,processes the data obtained and displays the analysis results.It sends data from RFD registers to a serial port to send buffer by DMA of CC2430.A serial port is used to send and receive function,uploading data to PC or transferring the data of the PC to CC2430,and the realization of each function module are introduced in detail.On chip CC2430,the interception node program is designed,the interception program,the interception software,data packet uploading and design method of task scheduling are described respectively.A wireless sensor interception system is set up to intercept the current ZigBee network.The experiments are performed to test and evaluate the function of the software implementation.
Wireless communication;Sensor network;Interception;Packets;Interception software;Protocal
10.3969/j.issn.1002-2279.2015.06.09
TP277
B
1002-2279(2015)06-0033-03
高菲(1981-),女,陜西省寶雞市人,碩士研究生,主研方向:計(jì)算機(jī)教育。
2015-03-24