田 博,陳分雄,郭星鋒
(中國地質(zhì)大學(xué)(武漢)機(jī)械與電子信息學(xué)院,湖北 武漢 430074)
隨著物聯(lián)網(wǎng)產(chǎn)業(yè)的高速發(fā)展,無線通信協(xié)議已成為研究熱點。在無線通信協(xié)議的開發(fā)和測試過程中,通常會使用無線數(shù)據(jù)包監(jiān)聽器捕獲指定信道的射頻數(shù)據(jù)包,結(jié)合相關(guān)軟件對數(shù)據(jù)包進(jìn)行解碼和顯示,快速地發(fā)現(xiàn)并解決一些常見的問題[1],減少開發(fā)和測試的周期。
現(xiàn)有的無線數(shù)據(jù)包監(jiān)聽器大多僅能監(jiān)聽單個信道的數(shù)據(jù),在采用跳頻技術(shù)的通信協(xié)議進(jìn)行開發(fā)時,如ISA100.11a、WIA-PA、WirelessHART 等工 業(yè)無 線 標(biāo) 準(zhǔn)[2],需要同時監(jiān)聽多個信道的數(shù)據(jù)。為滿足此類需求,本文提出了多路無線信道監(jiān)聽系統(tǒng)的設(shè)計,利用FPGA在數(shù)據(jù)獲取方面良好的實時與并行控制性能,以IEEE 802.15.4[3]標(biāo)準(zhǔn)為基礎(chǔ),針對2.4 GHz頻段開發(fā)了可以同時監(jiān)聽16路無線信道的系統(tǒng)。結(jié)合協(xié)議分析軟件,可以為無線通信協(xié)議開發(fā)提供數(shù)據(jù)分析、輔助設(shè)計等服務(wù),是一種極為有效的協(xié)議測試工具。
多路無線信道監(jiān)聽系統(tǒng)由2.4 GHz無線RF接收器、FPGA和USB2.0接口單元等組成。無線RF接收器負(fù)責(zé)監(jiān)聽、封裝無線數(shù)據(jù)報文并通過SPI傳輸至FPGA;FPGA作為整個系統(tǒng)的控制邏輯核心,完成數(shù)據(jù)的接收、緩存和USB2.0通信控制,USB2.0接口芯片F(xiàn)T2232H將數(shù)據(jù)高速傳輸至上位機(jī),上位機(jī)采用C#語言開發(fā),完成RF接收器參數(shù)的設(shè)置控制、數(shù)據(jù)分析和顯示功能,多路無線信道監(jiān)聽系統(tǒng)組成框圖如圖1所示。

圖1 多路無線信道監(jiān)聽系統(tǒng)組成框圖
系統(tǒng)采用16片 2.4 GHz無線收發(fā)芯片 CC2530,其具有極高的接收靈敏度和抗干擾性能,支持IEEE 802.15.4標(biāo)準(zhǔn),提供精確的數(shù)字化 RSSI/LQI,同時內(nèi)嵌了具有代碼預(yù)取功能的低功耗8051微控制器內(nèi)核,能高速處理無線數(shù)據(jù)報文,并擁有兩路SPI通信模塊和其他豐富的外設(shè)資源[4],16個CC2530的接收信道以5 MHz為間隔,平均分布在 2 405 MHz~2 480 MHz之間。
圖2所示為CC2530與FPGA連接示意圖。采用一對一和多對一的方式分別傳輸數(shù)據(jù)和指令,避免總線競爭,提高了傳輸效率,其中 CC2530的SPI0作為主機(jī),負(fù)責(zé)將無線數(shù)據(jù)報文傳至FPGA,SPI1作為從機(jī)負(fù)責(zé)接收來自FPGA的指令,如信道設(shè)置、數(shù)據(jù)傳輸設(shè)置等。

圖2 CC2530與FPGA連接示意圖
系統(tǒng)采用FTDI公司的FT2232H芯片,由它完成數(shù)據(jù)采集控制及數(shù)據(jù)采集后與PC之間的高速數(shù)據(jù)傳輸。FT2232H支持480 Mb/s的USB2.0高速規(guī)范,其中USB數(shù)據(jù)傳輸細(xì)節(jié)全部封裝在FT2232H內(nèi)部,上位機(jī)提供虛擬串口VCP和D2XX兩種驅(qū)動程序,免去了復(fù)雜的USB固件和驅(qū)動程序開發(fā)過程[5]。

圖3 FPGA與FT2232H連接示意圖
圖3為FPGA與FT2232H硬件連接示意圖,采用同步245 FIFO模式[6],Clk是FT2232H的同步時鐘信號,其頻率固定為60 MHz,F(xiàn)PGA的主時鐘由同步時鐘3分頻得到,ADBUS[7..0]為8位雙向數(shù)據(jù)總線,因此最大傳輸速率可達(dá)160 Mb/s,nRXF和nTXE分別是FT2232H的讀寫標(biāo)志位,nOE用于使能數(shù)據(jù)總線 ADBUS的輸出,nRD和nWR分別是FT2232H的讀寫選通信號。
首先初始化 RF、SPI等外設(shè),2.4 GHz無線 RF接收器處于監(jiān)聽狀態(tài),如果偵聽到無線數(shù)據(jù)報文,就將其取出進(jìn)行處理,添加報文頭、長度、信道號、通道號、RSSI、校驗位等信息,并通過SPI0傳至FPGA,繼續(xù)準(zhǔn)備接收下一個無線數(shù)據(jù)報文。同時也可以根據(jù)所收到的上位機(jī)下發(fā)的命令來執(zhí)行相應(yīng)的操作:若收到設(shè)置信道的指令,則設(shè)置監(jiān)聽信道;若收到啟動或者停止監(jiān)聽的指令,則開始或停止監(jiān)聽無線數(shù)據(jù)報文。程序流程如圖4所示。

圖4 無線數(shù)據(jù)采集流程圖

圖5 FPGA邏輯功能圖
多路無線信道監(jiān)聽系統(tǒng)中,F(xiàn)PGA作為核心控制單元,完成了16路數(shù)據(jù)接收和分組緩存的邏輯控制、數(shù)據(jù)傳輸控制以及USB2.0通信。如圖5所示,F(xiàn)PGA邏輯控制可劃分為5個模塊,分別是數(shù)據(jù)接收模塊、緩存模塊、傳輸模塊、命令輸出模塊、USB2.0通信模塊。其中緩存模塊主要由計數(shù)器、數(shù)據(jù)緩存和長度緩存三部分組成,計數(shù)器記錄數(shù)據(jù)緩存現(xiàn)有報文數(shù)量,數(shù)據(jù)緩存記錄報文數(shù)據(jù),長度緩存記錄每一報文的長度,數(shù)據(jù)緩存和長度緩存的實現(xiàn)是通過調(diào)用FPGA的IP核生成相應(yīng)容量的FIFO來完成。
系統(tǒng)首先設(shè)置CC2530監(jiān)聽的信道并啟動監(jiān)聽,一旦CC2530監(jiān)聽到無線數(shù)據(jù),就將監(jiān)聽到的數(shù)據(jù)報文傳至FPGA,F(xiàn)PGA將數(shù)據(jù)寫入到數(shù)據(jù)緩存,同時計算報文的長度并將結(jié)果寫入到長度緩存,計數(shù)器加1,當(dāng)檢測到計數(shù)器大于0時,先讀取長度緩存獲取報文長度,計數(shù)器減1,然后根據(jù)報文長度讀取數(shù)據(jù)緩存,將讀取的數(shù)據(jù)通過USB上傳至PC,直到讀取數(shù)量與報文長度相等時停止,繼續(xù)檢測下一路計數(shù)器,依次循環(huán)。FPGA邏輯控制的流程如圖6所示。

圖6 FPGA控制流程
為了對多路無線信道監(jiān)聽系統(tǒng)功能進(jìn)行有效的測試,搭建了一個由多路無線信道監(jiān)聽系統(tǒng)、16個ZigBee無線模塊和PC組成的測試平臺,并進(jìn)行以下幾項測試。
將無線模塊全部打開,讓它們在各自的信道獨立地發(fā)送測試報文,為了便于對測試結(jié)果進(jìn)行分析,設(shè)置每個模塊的發(fā)送時間間隔和報文內(nèi)容都相同。圖7所示為多路無線信道監(jiān)聽系統(tǒng)同時監(jiān)聽5路信道的結(jié)果,說明系統(tǒng)邏輯功能設(shè)計正確,能夠同時監(jiān)聽多路信道,達(dá)到了系統(tǒng)的設(shè)計要求。

圖7 多信道采集
用協(xié)議分析軟件和TI的Packet Sniffer同時采集數(shù)據(jù)包并實時解析各層字段,所得結(jié)果分別如圖8和圖9所示,對比兩者的解析結(jié)果,發(fā)現(xiàn)協(xié)議分析軟件解析所得的各層幀控制字段與TI的Packet Sniffer解析所得結(jié)果完全吻合,說明多路無線信道系統(tǒng)監(jiān)聽到的數(shù)據(jù)是正確的,達(dá)到了預(yù)期效果。

圖8 協(xié)議分析軟件數(shù)據(jù)采集界面

圖9 TI的Packet Sniffer監(jiān)聽界面
將多個無線模塊放到20 m處且每次發(fā)送報文長度為32 B進(jìn)行測試,得到如表1所示的結(jié)果。

表1 丟包率測試結(jié)果
測試結(jié)果表明,20 m內(nèi)丟包率小于0.33%。能真實再現(xiàn)網(wǎng)絡(luò)運行情況,且每分鐘發(fā)包數(shù)為1 500幀時,多路無線信道監(jiān)聽系統(tǒng)運行正常,滿足實時監(jiān)聽的要求。
為滿足工業(yè)無線標(biāo)準(zhǔn)開發(fā)和測試的要求,本文設(shè)計了基于FPGA的多路無線信道監(jiān)聽系統(tǒng),利用FPGA在數(shù)據(jù)獲取方面良好的實時與并行控制性能,實現(xiàn)了對16路數(shù)據(jù)的緩存與傳輸,并通過搭建的測試平臺對其進(jìn)行多項測試。測試結(jié)果表明,多路無線信道監(jiān)聽系統(tǒng)具有良好的實時性和可靠性。
[1]盧良進(jìn),徐向華,童超.無線傳感網(wǎng)絡(luò)協(xié)議分析技術(shù)研究與實現(xiàn)[J].傳感技術(shù)學(xué)報,2009,22(12):1828-1833.
[2]曲家興,周瑩,王希忠,等.工業(yè)控制系統(tǒng)無線網(wǎng)絡(luò)安全體系的研究[J].信息技術(shù),2013(1):36-38.
[3]IEEE.IEEE Std 802.15.4-2006 Wireless Medium Access Control(MAC)and Physical Layer(PHY)Specifications for Low-rate Wireless Personal Area Networks(LR-WPANs)[S].2006.
[4]Texas Instruments.CC2530 Data Sheet.http://www.ti.com.2011.
[5]Future Technology Devices International Limited.Software Application Development D2xx Programmer’s guide[Z/OL].http://www.ftdichip.com.
[6]荊成財,王順杰,王潤田.雙通道同步高速數(shù)據(jù)采集器的設(shè)計[J].電子產(chǎn)品世界,2012(12):43-44.