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