智 丹,石云波,董勝飛,陳艷香,楊志才
(中北大學(xué) 電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,太原 030051)
數(shù)據(jù)采集系統(tǒng)是計(jì)算機(jī)智能儀器與外界物理世界聯(lián)系的橋梁,是獲取信息的重要途徑。通常數(shù)據(jù)采集系統(tǒng)主要通過RS232接口、RS485接口、ISA總線、PCI總線或EPP/ECP實(shí)現(xiàn)數(shù)據(jù)傳輸。采用傳統(tǒng)接口的數(shù)據(jù)采集設(shè)備存在以下缺陷:安裝麻煩;價(jià)格昂貴;受計(jì)算機(jī)插槽數(shù)量、地址、中斷資源的限制,可擴(kuò)展性差,而通用串行總線USB的出現(xiàn),很好地解決了這些問題[1]。
USB設(shè)備具有即插即用、接口數(shù)目多、數(shù)據(jù)傳輸速率快等優(yōu)點(diǎn),USB2.0最快可達(dá)到480 Mb/s,能夠滿足高速采集系統(tǒng)的要求。如果采用單獨(dú)的USB接口芯片,需要研發(fā)者對(duì)USB協(xié)議有十分全面的了解,并且能夠熟悉應(yīng)用才能更好地處理USB總線事務(wù),這無疑加大了編程設(shè)計(jì)人員的開發(fā)難度、延長(zhǎng)了產(chǎn)品的開發(fā)周期[2]。CY7C68013A是一個(gè)內(nèi)部嵌入微處理器的USB2.0接口芯片,支持USB2.0協(xié)議,只需要配置訪問一些寄存器和存儲(chǔ)器,就可以完成對(duì)USB數(shù)據(jù)口的數(shù)據(jù)傳輸,進(jìn)而簡(jiǎn)化了程序的設(shè)計(jì),提高傳輸速率,增強(qiáng)了可靠性。
文中提出了一種基于CY7C68013A和FPGA數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案,主要完成彈體侵徹試驗(yàn)中加速度信號(hào)的采集存儲(chǔ),供其試驗(yàn)后回收原始數(shù)據(jù),通過上位機(jī)軟件在PC機(jī)讀取彈體侵徹中獲得的原始數(shù)據(jù)并對(duì)其進(jìn)行拆分以及繪圖,進(jìn)而供試驗(yàn)后對(duì)其數(shù)據(jù)分析,從而對(duì)彈體侵徹試驗(yàn)的各項(xiàng)指標(biāo)進(jìn)行評(píng)估和驗(yàn)證。
本文設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)主要由前端信號(hào)調(diào)理、數(shù)據(jù)采集存儲(chǔ)和數(shù)據(jù)傳輸3大部分組成??刂茊卧捎玫腇PGA是Xilinx公司生產(chǎn)的XC2S30芯片,該芯片擁有高達(dá)60個(gè)I/O口數(shù)量,216個(gè)可編程邏輯模塊,24 KB的雙口RAM。它的內(nèi)核采用低電壓2.5 V供電,有靜態(tài)功耗低、成本低等特點(diǎn)。XCF01S作為它的配置芯片,由外部20 MHz的晶振提供時(shí)鐘信號(hào)。系統(tǒng)總體設(shè)計(jì)原理如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖Fig.1 System structure diagram
系統(tǒng)外部供電采用5 V,經(jīng)電源轉(zhuǎn)換模塊轉(zhuǎn)換成 2.5 V、3.3 V 電壓,分別給 FPGA 內(nèi)核、FPGA I/O及其它電路模塊供電。4路傳感器信號(hào)先經(jīng)前端信號(hào)調(diào)理模塊放大調(diào)理,然后送入數(shù)據(jù)采集模塊。FPGA控制A/D轉(zhuǎn)換器對(duì)輸入模擬信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換并進(jìn)行采集,再按照一定的幀格式存儲(chǔ)到Flash芯片中。數(shù)據(jù)傳輸過程中,上位機(jī)軟件通過USB口發(fā)送讀數(shù)指令,經(jīng)CY7C68013A以一定的幀格式傳給上位機(jī),將Flash存儲(chǔ)器中的數(shù)據(jù)讀到上位機(jī)顯示并分析處理。
前端信號(hào)調(diào)理模塊主要由RC高通濾波電路、運(yùn)算放大電路、電壓跟隨電路組成。
在彈體侵徹試驗(yàn)中,傳感器信號(hào)主要為高頻沖擊信號(hào)(>1 kHz),YZ1-和 YZ+為傳感器的差分信號(hào)輸入端,在信號(hào)輸入端接RC高通濾波電路,可以很好地消除傳感器零位偏差對(duì)輸出零位的影響,如圖2所示。
圖2 信號(hào)調(diào)理電路Fig.2 Signal conditioning circuit
由于輸入信號(hào)比較微弱,需要經(jīng)過運(yùn)算放大電路對(duì)其進(jìn)行放大后再進(jìn)行采集。本系統(tǒng)采用ADI公司的AD8226芯片,對(duì)信號(hào)進(jìn)行放大調(diào)理。AD8226支持單電源供電,配置方便,僅需要一個(gè)外部電阻來設(shè)置增益,增益范圍為1~1000,增益為50時(shí),帶寬約為30 kHz。電路中放大倍數(shù)的計(jì)算公式為可以通過調(diào)整RG1的阻值來改變電路的放大倍數(shù)。
基準(zhǔn)電壓跟隨電路主要是為4路AD8226芯片的REF引腳提供1.25 V的基準(zhǔn)電壓,將AD8226的有效輸出范圍調(diào)至0~2.5 V,實(shí)現(xiàn)對(duì)正負(fù)差分信號(hào)的有效放大。經(jīng)過AD8226放大的輸出信號(hào)進(jìn)入電壓跟隨電路,可以提高帶載能力,實(shí)現(xiàn)前后信號(hào)隔離,提高抗干擾能力。接著信號(hào)進(jìn)入RC低通濾波電路去除高頻噪聲之后輸出給A/D轉(zhuǎn)換器。
本系統(tǒng)數(shù)據(jù)采集采用的是ADI公司的4通道12位A/D轉(zhuǎn)換芯片AD7934,它采用5 V供電,內(nèi)置1個(gè)精確的2.5 V片內(nèi)基準(zhǔn)電壓源,可用作模數(shù)轉(zhuǎn)換的基準(zhǔn)電壓源[3]。該芯片擁有1個(gè)高寬帶、低噪聲的差分/保持放大器,可以處理高達(dá)50 MHz的輸入頻率,采樣的吞吐率可達(dá)1.5 MS/s。本設(shè)計(jì)中利用外部提供的時(shí)鐘信號(hào),在20 MHz時(shí)鐘工作頻率下,采樣率達(dá)150 kHz。AD7934的外圍電路如圖3所示。
圖3 AD7934的外圍電路Fig.3 Peripheral circuit of AD7934
數(shù)據(jù)傳輸采用的是Cypress公司生產(chǎn)的EZUSB FX2LP系列的CY7C68013A,該芯片將USB2.0收發(fā)器、串行接口引擎(SIE)、增強(qiáng)的8051單片機(jī)及各種外圍接口集成于一體[4]。擁有480 Mb/s的高速傳輸速率和12 Mb/s的全速傳輸速率,芯片能自動(dòng)檢測(cè)高速主機(jī),并切換到高速模式下。
CY7C68013A的數(shù)據(jù)傳輸有3種不同的工作模式:GPIF主控模式、Slave FIFO模式和Ports模式。其中可編程接口GPIF模式是主機(jī)方式,可以通過軟件編程讀寫控制波形,幾乎可以對(duì)任何8/16 bit接口的控制器、存儲(chǔ)器和總線進(jìn)行數(shù)據(jù)的主動(dòng)讀寫,傳輸速率快,靈活性非常強(qiáng)[5]。本系統(tǒng)采用的就是通過GPIF模式來實(shí)現(xiàn)FPGA與外圍設(shè)備的數(shù)據(jù)通信。CY7C68013A與FPGA連接圖如圖4所示。
圖4 硬件連接圖Fig.4 Hardware connection diagram
本系統(tǒng)FPGA的程序設(shè)計(jì)在Xilinx的ISE10.1開發(fā)環(huán)境中用VHDL語言實(shí)現(xiàn),F(xiàn)PGA主要程序模塊有A/D采集控制模塊、Flash存儲(chǔ)控制模塊、CY7C68013A傳輸控制模塊等。FPGA與AD的接口程序根據(jù)AD的時(shí)鐘輸出信號(hào)將AD輸出的數(shù)據(jù)正確存入FPGA的FIFO中,為了便于數(shù)據(jù)的存儲(chǔ)和分離,模擬量經(jīng)AD7934轉(zhuǎn)換后的數(shù)字量需要按照一定的編碼方式進(jìn)行編碼,本設(shè)計(jì)轉(zhuǎn)換的數(shù)據(jù)采用如表1所示的通訊數(shù)據(jù)幀編碼方式進(jìn)行編碼。
表1 通訊數(shù)據(jù)幀編碼方式Tab.1 Encoding of communication data frame
由表1可知,一幀數(shù)據(jù)為14個(gè)字節(jié),A0為低字節(jié),A13為高字節(jié)。A0~A1為幀頭,用于數(shù)據(jù)處理時(shí)判斷數(shù)據(jù)幀的起始位置;A2~A5為幀計(jì)數(shù),用來判別采集數(shù)據(jù)的數(shù)據(jù)量和驗(yàn)證存儲(chǔ)數(shù)據(jù)的完整性;A6~A13字節(jié)為4路數(shù)據(jù),其中2個(gè)字節(jié)構(gòu)成1路數(shù)據(jù),分別對(duì)應(yīng)每個(gè)通道采集到的模擬信號(hào)。
FPGA將編碼后的數(shù)據(jù)存儲(chǔ)到Flash中,本系統(tǒng)采用的Flash存儲(chǔ)器是SAMSUNG公司生產(chǎn)的K9K8G08U0E,該芯片是一種NAND Flash Memory,具有1 G×8 bit的數(shù)據(jù)存儲(chǔ)空間和256 Mb的空閑空間,空閑空間可以用來存儲(chǔ)壞塊信息及其它分區(qū)劃分信息。FPGA控制Flash數(shù)據(jù)存儲(chǔ)流程如圖5所示。
在FPGA將FIFO中的數(shù)據(jù)存入Flash之前,F(xiàn)PGA先對(duì)Flash進(jìn)行檢測(cè),判斷存儲(chǔ)空間是否有數(shù)據(jù),如果為空則進(jìn)行寫入,如果有數(shù)據(jù)則停止寫入,并通過LED閃爍警示,這樣可以防止已回收的存儲(chǔ)器由于誤啟動(dòng)造成侵徹?cái)?shù)據(jù)被覆蓋、丟失。寫入數(shù)據(jù)時(shí),先向Flash寫數(shù)據(jù)命令80H,然后寫入數(shù)據(jù)存入的具體地址,之后執(zhí)行寫入命令10H,此時(shí)Flash開始進(jìn)行寫入數(shù)據(jù)工作,此時(shí)R/B信號(hào)呈現(xiàn)低電平,表示Flash處于寫數(shù)據(jù)的工作狀態(tài),待R/B信號(hào)變?yōu)榈碗娖綍r(shí),表示Flash寫數(shù)據(jù)的工作狀態(tài)結(jié)束。最后,讀取狀態(tài)寄存器,如果I/O0=0則說明數(shù)據(jù)寫入成功,反之寫入失敗。
圖5 Flash數(shù)據(jù)存儲(chǔ)流程圖Fig.5 Flow chart of flash data storage
應(yīng)用程序主要包括動(dòng)態(tài)鏈接庫和操作界面程序,其中動(dòng)態(tài)鏈接庫只需調(diào)用DLL68013.dll封裝的API函數(shù),先將DLL68013.dll復(fù)制到系統(tǒng)盤的“C:WindowsSystem”下面,然后在Visual Basic的集成編程環(huán)境下的模塊Module中對(duì)引用動(dòng)態(tài)鏈接庫DLL68013.dll的API函數(shù)進(jìn)行聲明,通過調(diào)用通用驅(qū)動(dòng)程序來完成對(duì)外設(shè)的控制和通信[6]。操作界面程序采用Visual Basic來編寫完成,所實(shí)現(xiàn)的功能包括對(duì)USB設(shè)備連接、設(shè)備檢測(cè)、數(shù)據(jù)回讀、數(shù)據(jù)擦除、分析處理等。
利用信號(hào)發(fā)生器向4路模擬輸入端輸入1 kHz峰峰值為20 mV的正弦信號(hào),采集系統(tǒng)對(duì)此測(cè)試信號(hào)進(jìn)行采集、模數(shù)轉(zhuǎn)換、編幀和存儲(chǔ),將存儲(chǔ)的數(shù)據(jù)通過USB上傳給上位機(jī),通過上位機(jī)軟件對(duì)采回的4路數(shù)據(jù)進(jìn)行分離、分析繪圖,繪圖如圖6所示,可以清楚地看到4路正弦曲線。通過多次連續(xù)的采集和分離數(shù)據(jù)測(cè)試,驗(yàn)證了系統(tǒng)的準(zhǔn)確性和可靠性。
圖6 4路數(shù)據(jù)驗(yàn)證曲線Fig.6 4-way data validation curve
本文基于CY7C68013A和FPGA設(shè)計(jì)的4路數(shù)據(jù)采集系統(tǒng),能夠?qū)鞲衅餍盘?hào)進(jìn)行實(shí)時(shí)采集、存儲(chǔ),通過采用CY7C68013A接口與上位機(jī)進(jìn)行通信,實(shí)現(xiàn)了回傳數(shù)據(jù)、存儲(chǔ)、顯示并分析數(shù)據(jù)的功能。通過實(shí)驗(yàn)驗(yàn)證,該系統(tǒng)具有體積小、傳輸速率快、高采樣率、高可靠性、功耗低等特點(diǎn),可廣泛應(yīng)用于彈體侵徹試驗(yàn)中對(duì)加速度信號(hào)的采集存儲(chǔ)。
[1]賈寶金.基于USB的數(shù)據(jù)采集系統(tǒng)的研究與設(shè)計(jì)[D].河北:河北工業(yè)大學(xué),2007.
[2]李俊萍,靳鴻,張艷兵.基于CY7C68013A的存儲(chǔ)器測(cè)試臺(tái)的USB 通信設(shè)計(jì)[J].電子器件,2014,37(2):361-366.
[3]楊小勇,葛彥麟,毛瑞娟.基于FPGA+A/D的數(shù)據(jù)采集設(shè)計(jì)及驗(yàn)證[J].西安郵電學(xué)院學(xué)報(bào),2011,16(1):98-102.
[4]吳磊,郭超平,申世濤.基于CY7C68013與FPGA的便攜式數(shù)據(jù)采集系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2012,32(S1):164-166.
[5]付斌,丁月寧,黃勇,等.基于USB的便攜式導(dǎo)彈導(dǎo)航遙測(cè)艙數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2014,22(3):790-792.
[6]代月松,董力科,孫正席,等.基于CY7C68013A的并口轉(zhuǎn)USB口數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011,19(16):42-44.