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