武 剛,楊 錄,張艷花
(中北大學(xué) 信息與通信工程學(xué)院 電子測試技術(shù)國家重點實驗室,山西 太原 030051)
?
基于USB和FPFA的四通道數(shù)據(jù)采集卡的設(shè)計
武剛,楊錄,張艷花
(中北大學(xué) 信息與通信工程學(xué)院 電子測試技術(shù)國家重點實驗室,山西 太原 030051)
摘要:針對傳統(tǒng)PCI卡或ISA卡安裝復(fù)雜、價格昂貴、可擴展性差的缺點,設(shè)計了一套基于FPGA和USB2.0的便攜式高速數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)使用異步并行的A/D轉(zhuǎn)換技術(shù)實現(xiàn)40 Mbps的采樣速率。文章給出了硬件的基本結(jié)構(gòu)和軟件固件的設(shè)計方法,并對整套系統(tǒng)FPGA時序控制作了重點闡述。該數(shù)據(jù)采集卡采用SlaveFIFO模式進行數(shù)據(jù)傳輸,實驗證明該采集系統(tǒng)性能穩(wěn)定、通用性,特別適用于移動的作業(yè)現(xiàn)場。
關(guān)鍵詞:數(shù)據(jù)采集卡;USB2.0;采樣速率;固件設(shè)計
信息與信號處理技術(shù)的水平?jīng)Q定了社會發(fā)展的方向,數(shù)據(jù)采集是數(shù)字信號處理的關(guān)鍵,在數(shù)字系統(tǒng)中起著決定性的作用。隨著實時信號處理、數(shù)字圖像處理等領(lǐng)域?qū)Ω咚?、高精度的?shù)據(jù)采集卡的需求日益增大[1],對A/D轉(zhuǎn)換、主控CPU以及CPU與主計算機的接口的工作性能要求也越來越高。相對于傳統(tǒng)的MCU,F(xiàn)PGA以其時鐘頻率高、內(nèi)部延時小、組成形式靈活等特點在高速數(shù)據(jù)采集方面具有不可比擬的優(yōu)勢?,F(xiàn)在通用的高性能數(shù)據(jù)采集卡一般采用PCI卡或ISA卡,這些采集卡存在不少缺點,如安裝復(fù)雜、價格昂貴,受計算機插槽數(shù)量、地址、中斷資源的限制,可擴展性差[2],容易受PC機箱內(nèi)高頻信號的干擾等缺點。而通用串行總線(USB)的出現(xiàn)則很好的解決了以上問題,它使高傳輸速度、簡易擴展性、方便的即插即用等特點有機結(jié)合在一起,使得計算機外圍設(shè)備的連接更具單一化[3]。本文設(shè)計了一款基于FPGA和USB的高速數(shù)據(jù)采集卡,它既能實現(xiàn)采集卡與PC機的方便連接,又能保證較高的傳輸速率和合適的性價比[4]。
1數(shù)據(jù)采集和傳輸系統(tǒng)方案設(shè)計
多通道數(shù)據(jù)采集通常有兩種實現(xiàn)方案,可采用多路復(fù)用器實現(xiàn)多通道的通道切換,也可以采用多片AD采集芯片對多路信號同時進行采集。而采用多路復(fù)用器實現(xiàn)數(shù)據(jù)采集存在著通道之間串?dāng)_的缺點,因此本設(shè)計通過四片AD轉(zhuǎn)換器來實現(xiàn)四通道的數(shù)據(jù)采集來克服以上缺點。本數(shù)據(jù)采集卡由信號調(diào)理模塊、高速數(shù)據(jù)采集模塊、FPGA核心控制模塊、數(shù)據(jù)緩沖模塊和USB數(shù)據(jù)傳輸模塊五部分組成。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 數(shù)據(jù)采集與控制框圖
系統(tǒng)以FPGA為控制核心來完成四路信號的采集。其外圍器件有AD采集芯片TLC5510、數(shù)模轉(zhuǎn)換芯片TLC5620、數(shù)據(jù)存儲芯片IDT7205及USB通信芯片CY7C68013A。
信號調(diào)理電路由數(shù)模轉(zhuǎn)換芯片TLC5620、自動增益控制芯片VCA810和運放AD9618組成,主要作用是向后級提供合適動態(tài)范圍的信號,通過FPGA控制TLC5620產(chǎn)生合適的電壓來控制VCA810的增益,從而達到調(diào)理信號的目的。
AD轉(zhuǎn)換器將所要采集的模擬信號轉(zhuǎn)換成數(shù)字信號,通過濾波后由FPGA接收、緩存、發(fā)送,本系統(tǒng)高速AD轉(zhuǎn)換器的轉(zhuǎn)換率為40 M。
CY7C68013A是cypress公司推出的EZ-USB FX2系列智能USB接口芯片,它其實是一個能和計算機連接的數(shù)據(jù)端口[5],其作用是將主機所發(fā)送的命令序列經(jīng)USB2.0端口輸出,實現(xiàn)對數(shù)據(jù)采集系統(tǒng)的控制;同時把AD轉(zhuǎn)換器采集的數(shù)據(jù)以高速的數(shù)據(jù)序列形式發(fā)送到主機。
采集卡工作流程為:PC機通過CY7368013A給數(shù)據(jù)采集系統(tǒng)下發(fā)若干采樣控制命令(數(shù)據(jù)采樣深度、開始、停止等),存入FPGA寄存器中,F(xiàn)PGA根據(jù)這些命令向AD轉(zhuǎn)換器發(fā)出相應(yīng)控制信號。由于AD采樣速度為40 M,為了和USB數(shù)據(jù)傳輸速度(20 M)、PC機運行速度相匹配,本設(shè)計將AD轉(zhuǎn)換的數(shù)字信號存入硬件FIFO緩沖器中,防止數(shù)據(jù)溢出或丟失。AD轉(zhuǎn)換器在FPGA采樣時鐘的控制下,把模擬信號轉(zhuǎn)換為數(shù)字信號,并將指定通道的數(shù)據(jù)存入相應(yīng)的FIFO中,同時查詢USB是否空閑,若USB空閑, FPGA的USB接口控制邏輯將指定通道的采樣結(jié)果,由硬件FIFO送入到USB內(nèi)部FIFO中。由于固件程序把CY7C68013A設(shè)置為自動數(shù)據(jù)批量傳輸模式,當(dāng)USB內(nèi)部FIFO容量達到固件設(shè)置的值時,數(shù)據(jù)將自動打包上傳,無需CY7C68013A中的CPU參與[6],從而保證足夠的數(shù)據(jù)傳輸速率。采樣過程中,PC機依次取走批量數(shù)據(jù)。本系統(tǒng)設(shè)計的四通道采集卡可實現(xiàn)對開始采樣時間的控制,實現(xiàn)對采樣點數(shù)控制,包括1 K、2 K、4 K、8 K的采樣深度,也可實現(xiàn)單次采樣和連續(xù)采樣并對其進行存儲。
2FPGA數(shù)據(jù)采集與控制時序框圖
開始采樣時,PC機通過CY7368013A向數(shù)據(jù)采集系統(tǒng)下發(fā)若干采樣控制命令(如數(shù)據(jù)采樣深度、開始、采樣延時等),存入FPGA寄存器中,F(xiàn)PGA通過解析這些命令完成相應(yīng)的時序控制。FPGA接收到開始采樣命令后就產(chǎn)生FS觸發(fā)信號(本采集卡針對實驗室超聲信號采集設(shè)計,因此有超聲激發(fā)信號FS),經(jīng)過延時模塊延時指定的時間,產(chǎn)生4路40 M頻率的時鐘采樣信號ADCCLK分別控制四路AD采集,同時使能硬件FIFO的寫信號Write-FIFO,保證采集的數(shù)據(jù)實時、有效的存入FIFO中。當(dāng)完成8K的采集深度(產(chǎn)生8 192個采樣時鐘)后,系統(tǒng)關(guān)閉AD采樣時鐘ADCCLK信號和FIFO寫使能信號Write-FIFO,同時查詢USB是否空閑,若USB空閑則使能FIFO讀信號Read-FIFO和USB2.0寫信號Write-USB,從四個通道硬件FIFO中分別讀取512個數(shù)據(jù)(固件程序?qū)SB內(nèi)部FIFO設(shè)置為2 K)寫入USB內(nèi)部FIFO中。之后數(shù)據(jù)通過USB自動打包上傳到PC機,這樣一次數(shù)據(jù)傳輸就完成。每個通道傳輸512個數(shù)據(jù),根據(jù)解析PC機每通道的采樣深度,周期性的使能FIFO讀信號Read-FIFO和USB2.0寫信號Write-USB,就可以完成要求的數(shù)據(jù)采樣深度。FPGA具體時序控制關(guān)系如圖2所示。
圖2 FPGA數(shù)據(jù)采集與控制時序框圖
3USB2.0固件程序
CY7C68013A是CYPRESS公司開發(fā)的第一款集成USB2.0協(xié)議的微處理器,包括USB2.0收發(fā)器、串行引擎(ISE)、增強型8051內(nèi)核、16 KB的RAM、4 KB的FIFO存儲器、IO接口、數(shù)據(jù)總線、地址總線、通用可編程接口。在USB協(xié)議中定義了4種USB傳輸類型:控制傳輸(control)、塊傳輸(bulk)、中斷傳輸(interrupt)和同步傳輸(isochronous)。這4種傳輸類型在傳輸數(shù)據(jù)量的大小、傳輸速率的高低以及同步要求有各自的特點[7]。因此,我們在使用USB協(xié)議進行數(shù)據(jù)傳輸時,必須通過編寫USB固件控制USB2.0的傳輸方式。本采集卡將USB2.0協(xié)議設(shè)置為塊傳輸,采用SlaveFIFO傳輸模式,USB內(nèi)部FIFO設(shè)置為四緩沖,緩沖區(qū)大小為512字節(jié)。主要固件程序如下:
void TD_Init( void )
{
CPUCS = 0x10;
OEA |= 0x03;
SYNCDELAY;
IOA &= 0xFC;
SYNCDELAY;
PINFLAGSAB = 0xE8;
SYNCDELAY;
EP2CFG = 0xA0;
SYNCDELAY;
EP6CFG = 0xE0;
SYNCDELAY;
EP4CFG = 0x02;
SYNCDELAY;
EP8CFG &= 0x02;
SYNCDELAY;
FIFORESET = 0x80;
SYNCDELAY;
FIFORESET = 0x02;
SYNCDELAY;
FIFORESET = 0x04;
SYNCDELAY;
FIFORESET = 0x06;
SYNCDELAY;
FIFORESET = 0x08;
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY;
EP2FIFOCFG = 0x00;
SYNCDELAY;
EP2FIFOCFG = 0x10;
SYNCDELAY;
EP6FIFOCFG = 0x0C;
SYNCDELAY;
IFCONFIG = 0x03;
SYNCDELAY;
}
4系統(tǒng)軟件設(shè)計
系統(tǒng)軟件設(shè)計流程圖如圖3所示。
圖3 軟件設(shè)計流程圖
開始采樣前上位機將采樣延時、采樣深度、采樣方式通過USB2.0傳入FPGA控制中心,下位機解析這些命令并選擇執(zhí)行相應(yīng)的模塊,當(dāng)接收到啟動采樣命令時,各通道就開始采集、存儲數(shù)據(jù)。當(dāng)USB空閑時就與PC機進行數(shù)據(jù)傳輸,上位機接收到各通道數(shù)據(jù)后,就繪制各通道波形。圖4為采樣深度為2 K、采樣延時為0us時繪制的波形,其中,通道A信號頻率為1 MHz的正弦波,峰峰值為0 V~4 V,通道B為參考地0 V電平,通道C信號頻率為500 kHz的正弦波,峰峰值為0 V~4 V,通道D為采集信號懸空時的狀態(tài)。
5結(jié)束語
本文設(shè)計了一張基于USB2.0數(shù)據(jù)傳輸?shù)乃耐ǖ罃?shù)據(jù)采集卡,與傳統(tǒng)采集卡相比,它既可以進行40 Mbps的高速數(shù)
據(jù)采集,又可以同時采集四個通道的數(shù)據(jù),而且與計算機連接方便,適合戶外作業(yè),通過實驗證明本采集卡性能穩(wěn)定,誤碼率低、通用性強。
圖4 上位機繪制波形
[1]高冰.基于FPGA與USB2.0的便攜式數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].電子科技大學(xué)學(xué)報,2010(39):61-64.
[2]梁穎,游磊,匡順蘭,等.基于USB接口數(shù)據(jù)采集卡的設(shè)計與實現(xiàn)[J].計算機測量與控制,2005(4):392-395.
[3]陳輝,李遠.基于USB2.0的數(shù)據(jù)采集卡[J].自動化技術(shù)與應(yīng)用,2008(6):91-94.
[4]沈維聰,陳東龍.基于FPGA軟核的高速數(shù)據(jù)采集系統(tǒng)設(shè)計[J].微型機與應(yīng)用,2011(7):25-28.
[5]李露,段新文.基于FPGA的高速數(shù)據(jù)采集卡的設(shè)計[J].現(xiàn)代電子技術(shù),2012(18):146-148.
[6]黃大勇.基于USB2.0接口的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2007(24):69-72.
[7]何光祖.基于USB2.0的多通道超聲檢測系統(tǒng)[D].太原:中北大學(xué),2013.
收稿日期:2015-12-15
作者簡介:武剛(1987- ),男,山西原平人,碩士研究生,主要從事超聲檢測和信號處理方面的研究。
文章編號:1674- 4578(2016)02- 0021- 03
中圖分類號:TP274
文獻標(biāo)識碼:A
Design of Four-channel Data Acquisition Card Based on USB and FPGA
Wu Gang, Yang Lu, Zhang Yanhua
(CollegeofInformationandCommunicationEngineering,NorthUniversityofChina,TaiyuanShanxi030051,China)
Abstract:For the complex, expensive, poor scalability drawbacks in installation of PCI or ISA card, the paper designs a portable high-speed data acquisition system based on FPGA and USB2.0. The system uses an asynchronous parallel A/D converter technology to achieve sampling rates of 40 Mbps. This paper presents the basic structure of the hardware and the design method of software firmware, and focuses on the FPGA timing control of entire system. The data acquisition card uses SlaveFIFO mode for data transmission. Experiments show that the acquisition system performance is stable, versatile, especially for moving job site.
Key words:data acquisition card; USB2.0; sampling rate; firmware design