文獻(xiàn)標(biāo)識(shí)碼: A
文章編號: 0258-7998(2014)05-0087-03
中文引用格式:田博,陳分雄,郭星鋒.基于FPGA的多路無線信道監(jiān)聽系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(05):87-89+96.
隨著物聯(lián)網(wǎng)產(chǎn)業(yè)的高速發(fā)展,無線通信協(xié)議已成為研究熱點(diǎn),。在無線通信協(xié)議的開發(fā)和測試過程中,,通常會(huì)使用無線數(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)聽單個(gè)信道的數(shù)據(jù),在采用跳頻技術(shù)的通信協(xié)議進(jìn)行開發(fā)時(shí),,如ISA100.11a,、WIA-PA、WirelessHART等工業(yè)無線標(biāo)準(zhǔn)[2],,需要同時(shí)監(jiān)聽多個(gè)信道的數(shù)據(jù),。為滿足此類需求,本文提出了多路無線信道監(jiān)聽系統(tǒng)的設(shè)計(jì),,利用FPGA在數(shù)據(jù)獲取方面良好的實(shí)時(shí)與并行控制性能,,以IEEE 802.15.4[3]標(biāo)準(zhǔn)為基礎(chǔ),針對2.4 GHz頻段開發(fā)了可以同時(shí)監(jiān)聽16路無線信道的系統(tǒng),。結(jié)合協(xié)議分析軟件,,可以為無線通信協(xié)議開發(fā)提供數(shù)據(jù)分析、輔助設(shè)計(jì)等服務(wù),,是一種極為有效的協(xié)議測試工具。
1 系統(tǒng)總體設(shè)計(jì)
多路無線信道監(jiān)聽系統(tǒng)由2.4 GHz無線RF接收器,、FPGA和USB2.0接口單元等組成,。無線RF接收器負(fù)責(zé)監(jiān)聽、封裝無線數(shù)據(jù)報(bào)文并通過SPI傳輸至FPGA;FPGA作為整個(gè)系統(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所示。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 2.4 GHz無線RF接收器單元
系統(tǒng)采用16片2.4 GHz 無線收發(fā)芯片CC2530,,其具有極高的接收靈敏度和抗干擾性能,支持IEEE 802.15.4標(biāo)準(zhǔn),,提供精確的數(shù)字化RSSI/LQI,同時(shí)內(nèi)嵌了具有代碼預(yù)取功能的低功耗8051微控制器內(nèi)核,,能高速處理無線數(shù)據(jù)報(bào)文,,并擁有兩路SPI通信模塊和其他豐富的外設(shè)資源[4],16個(gè)CC2530的接收信道以5 MHz為間隔,平均分布在2 405 MHz~2 480 MHz之間,。
圖2所示為CC2530與FPGA連接示意圖,。采用一對一和多對一的方式分別傳輸數(shù)據(jù)和指令,避免總線競爭,,提高了傳輸效率,,其中CC2530的SPI0作為主機(jī),負(fù)責(zé)將無線數(shù)據(jù)報(bào)文傳至FPGA,,SPI1作為從機(jī)負(fù)責(zé)接收來自FPGA的指令,,如信道設(shè)置、數(shù)據(jù)傳輸設(shè)置等,。
2.2 USB通信接口單元
系統(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ū)動(dòng)程序,,免去了復(fù)雜的USB固件和驅(qū)動(dòng)程序開發(fā)過程[5]。
圖3為FPGA與FT2232H硬件連接示意圖,,采用同步245 FIFO模式[6],,Clk是FT2232H的同步時(shí)鐘信號,其頻率固定為60 MHz,,F(xiàn)PGA的主時(shí)鐘由同步時(shí)鐘3分頻得到,,ADBUS[7..0]為8位雙向數(shù)據(jù)總線,因此最大傳輸速率可達(dá)160 Mb/s,,nRXF和nTXE分別是FT2232H的讀寫標(biāo)志位,,nOE用于使能數(shù)據(jù)總線 ADBUS的輸出,nRD和nWR分別是FT2232H的讀寫選通信號,。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 CC2530程序設(shè)計(jì)
首先初始化RF,、SPI等外設(shè),2.4 GHz無線RF接收器處于監(jiān)聽狀態(tài),如果偵聽到無線數(shù)據(jù)報(bào)文,,就將其取出進(jìn)行處理,,添加報(bào)文頭、長度,、信道號,、通道號、RSSI,、校驗(yàn)位等信息,,并通過SPI0傳至FPGA,繼續(xù)準(zhǔn)備接收下一個(gè)無線數(shù)據(jù)報(bào)文,。同時(shí)也可以根據(jù)所收到的上位機(jī)下發(fā)的命令來執(zhí)行相應(yīng)的操作:若收到設(shè)置信道的指令,,則設(shè)置監(jiān)聽信道;若收到啟動(dòng)或者停止監(jiān)聽的指令,,則開始或停止監(jiān)聽無線數(shù)據(jù)報(bào)文,。程序流程如圖4所示。
制可劃分為5個(gè)模塊,,分別是數(shù)據(jù)接收模塊,、緩存模塊、傳輸模塊,、命令輸出模塊,、USB2.0通信模塊。其中緩存模塊主要由計(jì)數(shù)器,、數(shù)據(jù)緩存和長度緩存三部分組成,,計(jì)數(shù)器記錄數(shù)據(jù)緩存現(xiàn)有報(bào)文數(shù)量,數(shù)據(jù)緩存記錄報(bào)文數(shù)據(jù),,長度緩存記錄每一報(bào)文的長度,,數(shù)據(jù)緩存和長度緩存的實(shí)現(xiàn)是通過調(diào)用FPGA的IP核生成相應(yīng)容量的FIFO來完成。
系統(tǒng)首先設(shè)置CC2530監(jiān)聽的信道并啟動(dòng)監(jiān)聽,,一旦CC2530監(jiān)聽到無線數(shù)據(jù),,就將監(jiān)聽到的數(shù)據(jù)報(bào)文傳至FPGA,F(xiàn)PGA將數(shù)據(jù)寫入到數(shù)據(jù)緩存,,同時(shí)計(jì)算報(bào)文的長度并將結(jié)果寫入到長度緩存,,計(jì)數(shù)器加1,當(dāng)檢測到計(jì)數(shù)器大于0時(shí),,先讀取長度緩存獲取報(bào)文長度,,計(jì)數(shù)器減1,然后根據(jù)報(bào)文長度讀取數(shù)據(jù)緩存,,將讀取的數(shù)據(jù)通過USB上傳至PC,,直到讀取數(shù)量與報(bào)文長度相等時(shí)停止,,繼續(xù)檢測下一路計(jì)數(shù)器,依次循環(huán),。FPGA邏輯控制的流程如圖6所示。
4 系統(tǒng)測試
為了對多路無線信道監(jiān)聽系統(tǒng)功能進(jìn)行有效的測試,,搭建了一個(gè)由多路無線信道監(jiān)聽系統(tǒng),、16個(gè)ZigBee無線模塊和PC組成的測試平臺(tái),并進(jìn)行以下幾項(xiàng)測試,。
4.1 多路信道監(jiān)聽測試
將無線模塊全部打開,,讓它們在各自的信道獨(dú)立地發(fā)送測試報(bào)文,為了便于對測試結(jié)果進(jìn)行分析,,設(shè)置每個(gè)模塊的發(fā)送時(shí)間間隔和報(bào)文內(nèi)容都相同,。圖7所示為多路無線信道監(jiān)聽系統(tǒng)同時(shí)監(jiān)聽5路信道的結(jié)果,說明系統(tǒng)邏輯功能設(shè)計(jì)正確,,能夠同時(shí)監(jiān)聽多路信道,,達(dá)到了系統(tǒng)的設(shè)計(jì)要求。
4.2 數(shù)據(jù)準(zhǔn)確性測試
用協(xié)議分析軟件和TI的Packet Sniffer同時(shí)采集數(shù)據(jù)包并實(shí)時(shí)解析各層字段,,所得結(jié)果分別如圖8和圖9所示,,對比兩者的解析結(jié)果,發(fā)現(xiàn)協(xié)議分析軟件解析所得的各層幀控制字段與TI的Packet Sniffer解析所得結(jié)果完全吻合,,說明多路無線信道系統(tǒng)監(jiān)聽到的數(shù)據(jù)是正確的,,達(dá)到了預(yù)期效果。
4.3 丟包率測試
將多個(gè)無線模塊放到20 m處且每次發(fā)送報(bào)文長度為32 B進(jìn)行測試,,得到如表1所示的結(jié)果,。
測試結(jié)果表明,20 m內(nèi)丟包率小于0.33%,。能真實(shí)再現(xiàn)網(wǎng)絡(luò)運(yùn)行情況,,且每分鐘發(fā)包數(shù)為1 500幀時(shí),多路無線信道監(jiān)聽系統(tǒng)運(yùn)行正常,,滿足實(shí)時(shí)監(jiān)聽的要求,。
為滿足工業(yè)無線標(biāo)準(zhǔn)開發(fā)和測試的要求,本文設(shè)計(jì)了基于FPGA的多路無線信道監(jiān)聽系統(tǒng),,利用FPGA在數(shù)據(jù)獲取方面良好的實(shí)時(shí)與并行控制性能,實(shí)現(xiàn)了對16路數(shù)據(jù)的緩存與傳輸,,并通過搭建的測試平臺(tái)對其進(jìn)行多項(xiàng)測試。測試結(jié)果表明,,多路無線信道監(jiān)聽系統(tǒng)具有良好的實(shí)時(shí)性和可靠性,。
參考文獻(xiàn)
[1] 盧良進(jìn),徐向華,童超.無線傳感網(wǎng)絡(luò)協(xié)議分析技術(shù)研究與實(shí)現(xiàn)[J].傳感技術(shù)學(xué)報(bào), 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] 荊成財(cái),王順杰,王潤田. 雙通道同步高速數(shù)據(jù)采集器的設(shè)計(jì)[J].電子產(chǎn)品世界, 2012(12):43-44.