一種新型高速數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
摘要: 介紹了一種基于USB2.0接口的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計。該采集系統(tǒng)能夠?qū)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/雷達(dá)接收機(jī)">雷達(dá)接收機(jī)送來的信號進(jìn)行高速的采集,然后通過USB接口,將采集到的數(shù)據(jù)送到計算機(jī),經(jīng)由上層軟件對數(shù)據(jù)進(jìn)行處理分析。
關(guān)鍵詞: USB2.0;FPGA;高速數(shù)據(jù)采集;雷達(dá)接收機(jī)
引言
在雷達(dá)接收機(jī)的測試和維護(hù)中,經(jīng)常需要對數(shù)據(jù)進(jìn)行采集,然后將采集到的數(shù)據(jù)送入計算機(jī)進(jìn)行分析處理。鑒于對數(shù)據(jù)實時采集的需求,對采集系統(tǒng)提出三方面的要求:第一,接口簡單靈活且有較高的數(shù)據(jù)傳輸率;第二,采集的數(shù)據(jù)能夠快速處理并能方便提取原始數(shù)據(jù);第三,數(shù)據(jù)采集裝置具備多路數(shù)據(jù)采集能力。對于一些特殊應(yīng)用,甚至需要整個數(shù)據(jù)采集系統(tǒng)能夠方便攜帶。
傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)大多通過PCI總線完成數(shù)據(jù)的傳輸,但PCI總線存在嚴(yán)重缺陷:受限于計算機(jī)插槽數(shù)量和中斷資源;不便于連接與安裝;易受機(jī)箱內(nèi)電磁環(huán)境的影響。這些問題遏制了基于PCI總線的數(shù)據(jù)采集系統(tǒng)的進(jìn)一步開發(fā)和應(yīng)用。因此,需要一種更為簡便通用的方式來完成采集系統(tǒng)和計算機(jī)的數(shù)據(jù)的交互。
考慮到現(xiàn)代計算機(jī)上大都配備了USB接口,且USB支持即插即用,安裝方便,易于擴(kuò)展,USB2.0能夠達(dá)到480Mb/s的理論傳輸速度,非常適合在高速數(shù)據(jù)采集系統(tǒng)中應(yīng)用。因此,通過USB接口來完成數(shù)據(jù)傳輸是一個很好的替代方案。出于上述考慮,筆者設(shè)計了一個基于USB2.0接口的高速數(shù)據(jù)采集系統(tǒng),通過實際測試,該系統(tǒng)可以很好的完成數(shù)據(jù)采集的功能。
數(shù)據(jù)采集系統(tǒng)電路設(shè)計
高速數(shù)據(jù)采集系統(tǒng)框圖如圖1所示。系統(tǒng)整體的設(shè)計思路如下:計算機(jī)將采集指令(包括數(shù)據(jù)格式,數(shù)據(jù)長度,FPGA控制指令等)送給USB控制芯片,USB控制芯片通過固件程序?qū)χ噶钸M(jìn)行簡單的格式判定,然后將判定后正確的指令送給FPGA,F(xiàn)PGA對指令進(jìn)行譯碼,獲得需要采集的數(shù)據(jù)的長度,以及采集的地址和控制信號,控制RAM來完成數(shù)據(jù)的采集存儲。雷達(dá)接收機(jī)送過來的數(shù)據(jù)和時鐘信號經(jīng)過長線接收器組以后,由差分信號變?yōu)槠胀ǖ臄?shù)字信號,時鐘信號送入FPGA,經(jīng)過處理后,用來控制數(shù)據(jù)的采集時刻,數(shù)據(jù)先存入RAM,待完成所需數(shù)目的采集以后,再通過USB控制芯片送給計算機(jī),完成數(shù)據(jù)的后期處理和顯示。
圖1 高速數(shù)據(jù)采集系統(tǒng)框圖
圖2為FPGA與USB控制芯片的連接圖,電路中FPGA選用EP1C3T144C8,USB控制芯片選用Cypress 公司的CY7C68013。USB_Ready 為USB芯片狀態(tài)標(biāo)志,低電平有效;FPGA_Ready為FPGA芯片狀態(tài)標(biāo)志,低電平有效;USB_Clk為USB向FPGA傳送指令的指令時鐘,USB_Data 為USB傳送給FPGA的控制指令;FD[15:0]為USB 與FPGA交互的數(shù)據(jù)。
圖2 FPGA與USB控制芯片的電路連接圖
FPGA與USB芯片之間的通信流程如下:
1、FPGA發(fā)送FPGA_Ready信號給USB控制芯片,表示FPGA準(zhǔn)備好;
2、USB控制芯片發(fā)送USB_Ready信號給FPGA,表示在USB_Ready為低電平期間將有控制指令傳送;
3、USB控制芯片由Send_CLK發(fā)送時鐘信號,同時由Send_DATA發(fā)送控制指令給FPGA,控制指令在時鐘信號上升沿有效;
4、FPGA收到控制指令,執(zhí)行相應(yīng)動作。FPGA發(fā)送各種控制時序信號和RAM地址,把I路、Q路數(shù)據(jù)存在RAM里,而后將數(shù)據(jù)讀到FPGA,再通過FD[15:0]以字的形式傳給USB控制芯片的從屬FIFO端點EP8緩沖區(qū),由PC機(jī)讀取。
數(shù)據(jù)采集系統(tǒng)軟件設(shè)計
系統(tǒng)軟件主要分為FPGA 模塊設(shè)計程序,USB 固件程序,以及上層應(yīng)用軟件程序。
FPGA模塊編程
系統(tǒng)采用Altera 公司的Cyclone系列的FPGA芯片,采用Verilog HDL 作為開發(fā)語言,開發(fā)環(huán)境采用Quartus II 5.0。
在系統(tǒng)的FPGA軟件設(shè)計過程中,根據(jù)功能的需要,將整個系統(tǒng)分為了三個大的模塊來設(shè)計,分別為:時鐘、控制指令輸出模塊,數(shù)據(jù)采集、存儲模塊,USB數(shù)據(jù)傳輸模塊。時鐘、控制指令輸出模塊對輸入的時鐘進(jìn)行整形,形成數(shù)據(jù)采集時鐘,同時,輸出22位控制電平信號;數(shù)據(jù)采集、存儲模塊對輸入的數(shù)據(jù)進(jìn)行采集并存儲在存儲器里;USB數(shù)據(jù)傳輸模塊讀取存儲器里的數(shù)據(jù)并把數(shù)據(jù)輸出至USB的FIFO里。
評論