王廣君, 劉 剛
(中國(guó)地質(zhì)大學(xué)(武漢) 自動(dòng)化學(xué)院, 湖北 武漢 430074)
計(jì)算機(jī)技術(shù)應(yīng)用
基于MXT2002和FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與應(yīng)用
王廣君, 劉 剛
(中國(guó)地質(zhì)大學(xué)(武漢) 自動(dòng)化學(xué)院, 湖北 武漢 430074)
從整體方案設(shè)計(jì)和采集端、控制端、傳輸端、顯示端的軟硬件設(shè)計(jì)闡述了基于MXT2002和FPGA的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方法。采用高速AD芯片MXT2002作為模數(shù)轉(zhuǎn)換器,通過(guò)FPGA的控制,在CY7C68013的高速USB2.0控制器下,實(shí)現(xiàn)480 Mbit/s的高速數(shù)據(jù)傳輸,最終在上位機(jī)端實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示。通過(guò)實(shí)驗(yàn)與測(cè)試表明:該系統(tǒng)的設(shè)計(jì)能完成高速數(shù)據(jù)的采集與處理,通用性較強(qiáng)且能滿足一般工業(yè)生產(chǎn)中的數(shù)據(jù)采集需求。
數(shù)據(jù)采集; 大規(guī)模可編程邏輯器件; MXT2002
虛擬儀器技術(shù)中的關(guān)鍵技術(shù)是數(shù)據(jù)采集與處理,尤其是數(shù)據(jù)的高速采集和高速傳輸。通用的高速數(shù)據(jù)采集卡——PCI卡或ISA卡,存在價(jià)格較貴、擴(kuò)展性差、安裝麻煩的缺點(diǎn)[1]。很多文獻(xiàn)提出了數(shù)據(jù)高速采集和傳輸?shù)男路桨?,例如使用AD9226作為高速模數(shù)轉(zhuǎn)換器[2-3],使用FPGA+USB或FPGA+ARM進(jìn)行數(shù)據(jù)的高速采集與存儲(chǔ)[4-5],多通道數(shù)據(jù)采集[6],使用LabVIEW和VB編程設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)[7-8]等。根據(jù)對(duì)以上方案優(yōu)缺點(diǎn)分析,筆者設(shè)計(jì)了由高速ADC芯片+FPGA+USB2.0+C#上位機(jī)組成的高速數(shù)據(jù)采集系統(tǒng)。通過(guò)系統(tǒng)設(shè)計(jì)與儀器研制,證明了該系統(tǒng)設(shè)計(jì)的可行性。
高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案如圖1所示。
圖1 高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案
圖1中,MXT2002是精度為8位的高性能CMOS模數(shù)轉(zhuǎn)換器,單通道能達(dá)到1 GSPS采樣率,接收差分信號(hào)的輸入。筆者從功能設(shè)計(jì)、引腳分配與價(jià)格因素等方面綜合考慮,選擇具有優(yōu)越的并行處理能力的FPGA EP4CE40F23C8作為控制芯片。在高速數(shù)據(jù)采集中,數(shù)據(jù)傳輸?shù)陌踩?、可靠尤為關(guān)鍵。本文選擇Cypress公司生產(chǎn)的USB芯片CY7C68013A作為上位機(jī)與下位機(jī)的數(shù)據(jù)傳輸芯片。
上位機(jī)是數(shù)據(jù)采集的顯示端,利用VS2013編程平臺(tái)和使用C#開發(fā),具有界面美化、功能齊全和便于后期開發(fā)的優(yōu)點(diǎn)。從圖1可看出,差分信號(hào)經(jīng)過(guò)模數(shù)轉(zhuǎn)換,將數(shù)字信號(hào)傳入FPGA控制芯片,F(xiàn)PGA對(duì)數(shù)據(jù)進(jìn)行處理后通過(guò)USB2.0芯片傳輸?shù)缴衔粰C(jī)端并顯示。其中,ADC模數(shù)轉(zhuǎn)換和USB2.0數(shù)據(jù)傳輸均受到FPGA的控制,且用戶在上位機(jī)端發(fā)出的命令會(huì)回傳到FPGA端,最終實(shí)現(xiàn)數(shù)據(jù)的穩(wěn)定采集與顯示。
2.1 MXT2002芯片AD轉(zhuǎn)換時(shí)序設(shè)計(jì)
信號(hào)采集的通常是單端信號(hào),因此,在模數(shù)轉(zhuǎn)換前需要將單端信號(hào)轉(zhuǎn)化為差分信號(hào),結(jié)合低噪聲單端轉(zhuǎn)差分電路[9]和輸入限幅可增益放大電路[10]完成單端信號(hào)向差分信號(hào)的轉(zhuǎn)換,再將經(jīng)過(guò)放大的差分信號(hào)送入ADC芯片。由于MXT2002芯片具有高速采集特點(diǎn),因而控制采集的時(shí)序設(shè)計(jì)對(duì)于數(shù)據(jù)采集至關(guān)重要。本文通過(guò)三段式時(shí)序設(shè)計(jì)完成MXT2002芯片的單通道采集,其三段式時(shí)序設(shè)計(jì)分別為:時(shí)鐘復(fù)位時(shí)序、命令校準(zhǔn)時(shí)序和數(shù)據(jù)采集時(shí)序。
時(shí)鐘復(fù)位時(shí)序如圖2所示。
圖2 時(shí)鐘復(fù)位時(shí)序圖
MXT2002芯片上電后需進(jìn)行時(shí)鐘復(fù)位操作,即在DCLK_RST引腳端輸入一個(gè)脈沖,該脈沖時(shí)間大于3個(gè)時(shí)鐘周期。若不進(jìn)行復(fù)位操作,則上電后采集時(shí)鐘DCLK將不會(huì)被觸發(fā),且一直保持高電平。復(fù)位后,DCLK引腳在短暫延遲后出現(xiàn)方波時(shí)鐘信號(hào),該DCLK以差分信號(hào)輸出,將用于上升沿或下降沿的數(shù)據(jù)采集的時(shí)鐘信號(hào)。
命令校準(zhǔn)時(shí)序如圖3所示。
圖3 命令校準(zhǔn)時(shí)序圖
CAL_RUN為校準(zhǔn)運(yùn)行指示,高電平代表器件正在校準(zhǔn)。CAL為校準(zhǔn)模式啟動(dòng)信號(hào),Va為上電信號(hào),Va和CAL上升沿都會(huì)觸發(fā)校準(zhǔn)命令。為了校準(zhǔn)的準(zhǔn)確性和有效性,提高器件的整體性能,需在上電后進(jìn)行一次命令校準(zhǔn),即在上電后延遲一段時(shí)間t1(t1=80時(shí)鐘周期)后,CAL緊隨80個(gè)時(shí)鐘周期的邏輯高電平輸入,將激發(fā)電路進(jìn)入命令校準(zhǔn),在一段延時(shí)(Tcal>8 s)之后即可進(jìn)入數(shù)據(jù)的采集階段。
數(shù)據(jù)采集時(shí)序如圖4所示。
圖4 數(shù)據(jù)采集時(shí)序圖
在數(shù)據(jù)采集時(shí)序中,CLK為差分時(shí)鐘輸入,Did和DI為I通道的差分輸出,OutEdge為邊緣選擇信號(hào),DCLK為差分時(shí)鐘輸出。圖4中所有的差分信號(hào)均是LVDS電平標(biāo)準(zhǔn),具有極低電壓擺幅、高速數(shù)據(jù)傳輸?shù)奶攸c(diǎn),符合本系統(tǒng)的設(shè)計(jì)要求。從圖4還可看出,DCLK信號(hào)頻率是差分時(shí)鐘信號(hào)的一半,由于該芯片可以設(shè)置雙邊采樣模式,即在DCLK的上升沿和下降沿分別采樣,因此采集速率并沒(méi)有降低。
2.2 FPGA采集與控制程序設(shè)計(jì)
FPGA內(nèi)的IP軟核可重用、可修改,本文對(duì)于數(shù)據(jù)采集和傳輸控制采用軟核設(shè)計(jì),在程序設(shè)計(jì)中直接調(diào)用即可。圖5(a)為MXT2002采集控制核,圖5(b)為CY7C68013傳輸控制核。在FPGA程序設(shè)計(jì)中調(diào)用該核,并在核內(nèi)按照控制時(shí)序編寫硬件語(yǔ)言代碼并對(duì)應(yīng)接線,即可完成FPGA對(duì)相應(yīng)器件的控制。
圖5 FPGA內(nèi)部數(shù)據(jù)控制軟核
FPGA的程序設(shè)計(jì)除了上述兩個(gè)模塊外,還需增加內(nèi)部PLL倍頻模塊和數(shù)據(jù)濾波模塊。倍頻模塊是在FPGA內(nèi)部產(chǎn)生高頻時(shí)鐘作為AD采集時(shí)鐘,最高可達(dá)到200 MHz以上的頻率;如果需要更高的采樣率,可以加入外部高頻時(shí)鐘。數(shù)據(jù)濾波模塊對(duì)采集的數(shù)據(jù)進(jìn)行處理,使數(shù)據(jù)具有一定的抗干擾能力。當(dāng)然,類似的數(shù)據(jù)處理也可以在上位機(jī)端進(jìn)行。
2.3 USB2.0高速數(shù)據(jù)傳輸模塊設(shè)計(jì)
2.3.1 Bulk數(shù)據(jù)傳輸
Bulk數(shù)據(jù)傳輸是指大量數(shù)據(jù)快速傳輸模式,此模式可達(dá)到53 MB/s的傳輸速率。為了達(dá)到高速傳輸?shù)哪康模珻Y7C68013依靠片內(nèi)多個(gè)FIFO緩沖器來(lái)實(shí)現(xiàn)。該模式是在無(wú)CPU的干預(yù)下,依靠外部的邏輯電路進(jìn)行的數(shù)據(jù)傳輸,保證了數(shù)據(jù)交互的快速性與穩(wěn)定性。本文使用Bulk傳輸模式來(lái)傳輸FPGA端采集到的AD數(shù)據(jù)到上位機(jī)端;而上位機(jī)端的命令數(shù)據(jù)傳輸不使用該模式,而是使用小數(shù)據(jù)傳輸?shù)目刂苽鬏斈J健?/p>
由于數(shù)據(jù)寫入CY7C68013芯片的目的在于上傳數(shù)據(jù),因此要進(jìn)行“寫操作”。對(duì)于Bulk傳輸?shù)膶懖僮?,要?yán)格按照時(shí)序進(jìn)行,其中異步Slave FIFO模式寫接口與時(shí)序設(shè)計(jì)如圖6所示。
圖6 異步Slave FIFO寫接口與時(shí)序圖
圖6中,F(xiàn)IFOADR為所選FIFO寄存器,即傳輸端口選擇寄存器;FLAGD為FIFO空狀態(tài)標(biāo)志位;FLAGA為FIFO滿狀態(tài)標(biāo)志位;SLWR為寫引腳,有效時(shí)在時(shí)鐘上升沿寫入數(shù)據(jù);FD為FIFO數(shù)據(jù)總線;PKTEND為強(qiáng)制傳輸一個(gè)數(shù)據(jù)包。完成上述的接線和時(shí)序要求,即可在上位機(jī)端接收到FPGA發(fā)送來(lái)的數(shù)據(jù)。
2.3.2 控制傳輸
有時(shí)需要完成數(shù)據(jù)的下傳,如用戶命令的傳輸,則上述使用FIFO的Bulk傳輸將不再適用。可以使用控制傳輸模式。
在CY7C68013芯片內(nèi),包含唯一一個(gè)控制端點(diǎn)——0端點(diǎn)。該端點(diǎn)具有雙向數(shù)據(jù)通信功能,并包含一個(gè)64字節(jié)的緩沖區(qū)(EP0BUF),USB固件可以通過(guò)0端點(diǎn)進(jìn)行控制傳輸,實(shí)現(xiàn)USB協(xié)議中的標(biāo)準(zhǔn)設(shè)備請(qǐng)求和用戶自定義的請(qǐng)求[11]。本文使用0端點(diǎn)作為用戶操作指令的回傳,即將用戶在上位機(jī)上的命令通過(guò)0端點(diǎn)發(fā)送到FPGA控制端,該控制由芯片內(nèi)固化的增強(qiáng)型C51單片機(jī)完成,可實(shí)現(xiàn)快速控制,且優(yōu)先級(jí)比Bulk傳輸模式高。
在CY7C68013固件中,函數(shù)TD_Poll()、TD_Init()和SetupCommand()對(duì)于控制傳輸最為關(guān)鍵。TD_Init()中對(duì)傳輸命令的引腳進(jìn)行初始化;SetupCommand()獲取上位機(jī)發(fā)送的指令;TD_Poll()可編寫循環(huán)事件,將命令轉(zhuǎn)化成引腳邏輯電平發(fā)送到FPGA端。因此,本文控制傳輸操作步驟如下:
初始化十位引腳TD_Init()
{OEC |= 0xFF;IOC |= 0x00;
OEA |= 0x03;IOA |= 0x00;}
獲取用戶命令SetupCommand()
匹配SETUPDAT[2]和SETUPDAT[3]寄存器
發(fā)送命令TD_Poll()
2.4 C#上位機(jī)程序設(shè)計(jì)
上位機(jī)軟件采用模塊化設(shè)計(jì)思想,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示、數(shù)據(jù)存儲(chǔ)、波形顯示、數(shù)據(jù)打印與導(dǎo)出、對(duì)下位機(jī)控制等功能[12]。傳統(tǒng)的LabVIEW設(shè)計(jì)方法固然簡(jiǎn)潔,且適合于數(shù)據(jù)的采集與顯示,但界面單一且不利于后期其他功能的擴(kuò)展。為此,本文在VS2013平臺(tái)使用C#編程語(yǔ)言設(shè)計(jì)上位機(jī)軟件,C#下的上位機(jī)設(shè)計(jì)具有功能多樣、界面可變、后期擴(kuò)展能力強(qiáng)等優(yōu)點(diǎn)。
C#下的上位機(jī)設(shè)計(jì)主要包括圖形顯示和用戶控制面板兩部分。其中圖形顯示使用ZedGraph插件,該畫圖插件具有圖形保存、圖形任意縮放、坐標(biāo)自更新、坐標(biāo)移動(dòng)等優(yōu)點(diǎn),非常適合波形的顯示。該設(shè)計(jì)流程如圖7所示。
圖7 上位機(jī)圖形界面設(shè)計(jì)流程
該設(shè)計(jì)中使用雙線程獨(dú)立的方式:線程1進(jìn)行數(shù)據(jù)的接收與顯示,線程2進(jìn)行用戶命令的監(jiān)聽。數(shù)據(jù)在不斷刷新同時(shí),用戶可以在面板進(jìn)行命令操作。
在設(shè)計(jì)的高速數(shù)據(jù)采集虛擬儀器及其上位機(jī)上進(jìn)行了實(shí)驗(yàn)。將經(jīng)過(guò)前置放大的輸入信號(hào)輸入本系統(tǒng),在上位機(jī)端可觀察到如圖8和圖9所示的實(shí)時(shí)顯示波形。測(cè)試中,ADC的采集時(shí)鐘是由FPGA內(nèi)部PLL倍頻后供給,達(dá)到300 MHz(也是采樣率)??梢钥闯?,所設(shè)計(jì)的高速數(shù)據(jù)采集系統(tǒng)可以達(dá)到虛擬儀器對(duì)信號(hào)采集的要求。雖然數(shù)據(jù)有少許波動(dòng),但屬于正常波動(dòng)范圍,并且可以在后期進(jìn)行處理,完全滿足了工業(yè)生產(chǎn)需求。
圖8 直流電壓測(cè)試波形截圖
圖9 交流正弦電壓測(cè)試波形截圖
數(shù)據(jù)的高速采集與傳輸是虛擬儀器的關(guān)鍵技術(shù)?;贛XT2002和FPGA的高速數(shù)據(jù)采集系統(tǒng)可通過(guò)更換AD芯片達(dá)到GHz采樣率級(jí)別和精度低于1 mV的采集。通過(guò)實(shí)驗(yàn)測(cè)試結(jié)果可看出,該系統(tǒng)能滿足高速采集與傳輸?shù)囊螅曳奖氵M(jìn)一步功能擴(kuò)展,可供研制虛擬儀器時(shí)借鑒。
References)
[1] 杜秋姣.基于虛擬儀器的高速數(shù)據(jù)采集系統(tǒng)的研究[D].武漢:華中科技大學(xué),2004.
[2] 張旭,陳昆明,李蕊,等.基于PCI總線的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].船電技術(shù),2008,28(1):9-11.
[3] 張晨亮,蘇學(xué)軍,王成剛,等.基于AD9226的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2017,34(增刊1):63-65,69.
[4] 章勇勤,艾勇,鄧德祥,等.基于FPGA的超高速數(shù)據(jù)采集與處理系統(tǒng)[J].數(shù)據(jù)采集與處理,2009,24(2):238-242.
[5] 王玨,譚輝,黃亮,等.工業(yè)CT用數(shù)據(jù)采集與傳輸系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2009,30(4):722-727.
[6] 郝曉明,李杰,黃玉崗.基于ADS8568的八路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].傳感技術(shù)學(xué)報(bào),2016,29(1):150-154.
[7] 陳敏,湯曉安.虛擬儀器軟件LabVIEW與數(shù)據(jù)采集[J].小型微型計(jì)算機(jī)系統(tǒng),2001,22(4):501-503.
[8] 師桂琴,劉紹中.用VB開發(fā)基于虛擬儀器的數(shù)據(jù)采集系統(tǒng)實(shí)例[J].計(jì)算機(jī)應(yīng)用,2002,22(9):137-138.
[9] 何曉豐,莫太山,馬成炎,等.帶有低噪聲單端轉(zhuǎn)差分電路的射頻增益可控放大器[J].電子與信息學(xué)報(bào),2012(4):976-980.
[10] 李海松,劉佑寶.一種差分輸入限幅放大電路的設(shè)計(jì)[J].武漢大學(xué)學(xué)報(bào)(工學(xué)版),2009(4):521-524.
[11] 肖遠(yuǎn)軍,方勇,周安民,等.基于USB2.0接口的單向數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2006,26(6):1490-1491.
[12] 徐志良,宋志強(qiáng),吳曉蓓.基于OPC技術(shù)的上位機(jī)監(jiān)控軟件設(shè)計(jì)[J].儀器儀表學(xué)報(bào),2003(增刊2):599-602.
Design and application of high-speed data acquisition system based on MXT2002 and FPGA
Wang Guangjun, Liu Gang
(School of Automation, China University of Geosciences, Wuhan 430074, China)
The design method of the high-speed data acquisition system based on MXT2002 and FPGA is described from the whole scheme design, and the hardware and software design of the acquisition terminal, the control terminal, the transmission terminal and the display terminal. By using the high-speed AD chip MXT2002 as the analog digital converter and through the FPGA control, the 480Mbps high-speed data transmission is realized under the high-speed USB2.0 controller of CY7C68013. Finally, the data real-time display is realized at the upper computer terminal. The experiments and tests show that the design of this system can complete the high-speed data acquisition and processing, and it has strong versatility and can meet the needs of data acquisition in general industrial production.
data acquisition; large-scale programmable logic device; MXT2002
TP274
A
1002-4956(2017)10-0125-04
10.16791/j.cnki.sjg.2017.10.031
2017-04-28
王廣君(1964—),男,河南禹州,博士,教授,碩士生導(dǎo)師,主要研究方向?yàn)閳D像處理、模式識(shí)別、虛擬儀器和數(shù)字系統(tǒng)設(shè)計(jì).
E-mail:gjwang@cug.edu.cnE-mail:850019690@qq.com