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