摘 要: 介紹了一種用于炮口沖擊波精確測量的數(shù)據(jù)采集系統(tǒng)設(shè)計,。該系統(tǒng)是一種基于通用串行總線(USB)接口和FPGA技術(shù)的多通道同步數(shù)據(jù)采集系統(tǒng),,采用FPGA控制系統(tǒng)的采集時序,USB芯片作為數(shù)據(jù)采集通道,,上位機完成數(shù)據(jù)顯示功能,,最后對電路進行了環(huán)境測試,并分析了測試結(jié)果,。
關(guān)鍵詞: 數(shù)據(jù)采集,; FPGA; USB
隨著火炮技術(shù)的高速發(fā)展,,新型多高管射自動火炮的不斷涌現(xiàn),,以前的測試系統(tǒng)不能滿足精確測量的要求。為了適應(yīng)研制和生產(chǎn)的需要,,測試系統(tǒng)應(yīng)當(dāng)具備一定的彈性,,易于根據(jù)需要靈活組建。因此,,需要一種通用,、便攜、數(shù)據(jù)采集精度高,、同步性好,、易于使用的設(shè)備。
傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)速度慢,、處理功能簡單,、采用分立元件、電路非常復(fù)雜,,而且可靠性差,、不易調(diào)試、不能良好地滿足特殊要求,。針對傳統(tǒng)數(shù)據(jù)采集系統(tǒng)存在的不足,,提出一種基于USB和FPGA技術(shù)的多通道同步數(shù)據(jù)采集系統(tǒng)[2]。首先,本系統(tǒng)既能與計算機連接進行實時數(shù)據(jù)采集,,也能用NAND Flash存儲采集數(shù)據(jù)進行非實時數(shù)據(jù)采集,;另外,,它將FPGA和USB技術(shù)應(yīng)用于火炮動態(tài)參數(shù)測試系統(tǒng)的數(shù)據(jù)采集子系統(tǒng),為提高測量精度,,組建靈活測試系統(tǒng)提供了技術(shù)支持,。同時,該數(shù)據(jù)采集電路模塊還可以用在其他測試系統(tǒng),,對于民用及工業(yè)等方面也有實際意義[1-3],。
1系統(tǒng)的組成及原理
系統(tǒng)設(shè)計總體框圖如圖1所示。
2 FPGA單元功能模塊設(shè)計
FPGA選用Altera公司的Cyclone系列芯片EP1C12,系統(tǒng)設(shè)計模塊圖如圖2所示,。
2.1分頻模塊的設(shè)計
分頻模塊是將外部時鐘進行分頻設(shè)定,,得到系統(tǒng)內(nèi)部AD控制模塊和存儲模塊所需要的時鐘,并為AD芯片提供時鐘信號基準(zhǔn),。此模塊采用VHDL語言編程實現(xiàn),,其4分頻時序仿真圖如圖3。分頻模塊的外部時鐘輸入頻率為20 MHz,,產(chǎn)生的時鐘頻率為5 MHz,。
2.2 A/D轉(zhuǎn)換控制模塊
A/D數(shù)據(jù)接口控制模塊實現(xiàn)對ADS8364數(shù)據(jù)的采樣。ADS8364是TI公司的一款高速,、低功耗,、六路模擬輸入、16位并行輸出的模數(shù)轉(zhuǎn)換器,。六路模擬輸入分為三組(A,、B和C),每個輸入端都有一個保持信號來實現(xiàn)所有通道的同時采樣與轉(zhuǎn)換功能,,適合于多路采集系統(tǒng)的需要,。本模塊對ADS8364的控制引腳有:模擬采樣通道控制信號/HOLDA、/HOLDB,、/HOLDC,;數(shù)據(jù)輸出模式以及通道選擇信號A0、A1和A2,;讀控制信號/RD,;使用5 MHz時鐘驅(qū)動一個20個狀態(tài)的狀態(tài)機(模為20的計數(shù)器)。在計數(shù)值為15時將HOLDA,、HOLDB,、HOLDC置0啟動一次數(shù)據(jù)采樣。在計數(shù)值為2-3,、4-5,、6-7、8-9,、10-11,、12-13且相應(yīng)通道得到使能時,,分別發(fā)出通道1到通道6的通道地址。在3,、5,、7、9,、11,、13發(fā)出讀信號讀取相應(yīng)通道的數(shù)據(jù)。在計數(shù)為15時發(fā)出采樣完畢信號,,指示六通道數(shù)據(jù)已經(jīng)采集完畢,。AD采樣控制時序如圖4所示。
2.3 SRAM乒乓緩存模塊
乒乓控制模塊部分,,按照功能將其分為4個轉(zhuǎn)換狀態(tài)S0、S1,、S2,、S3。其中狀態(tài)S0為初始化狀態(tài),狀態(tài)S1負(fù)責(zé)對SRAM0寫數(shù)據(jù),,狀態(tài)S2負(fù)責(zé)對SRAM1寫數(shù)據(jù),,從SRAM0讀數(shù)據(jù),狀態(tài)S3負(fù)責(zé)對SRAM0寫數(shù)據(jù),從SRAM1讀數(shù)據(jù),。圖5和圖6分別是乒乓控制模塊的狀態(tài)轉(zhuǎn)移圖和乒乓操作時序仿真結(jié)果圖,。
2.4 Flash控制模塊
系統(tǒng)選用三星(SAMSUNG)公司的NAND Flash芯片K9F2G08,F(xiàn)lash控制器的主要功能是響應(yīng)PC機命令,,根據(jù)命令產(chǎn)生相應(yīng)的時序?qū)崿F(xiàn)對Flash的操作,。完成的操作有:(1)擦除操作:即對Flash進行格式化。(2)寫操作:Flash控制器判斷PC機的寫命令,,當(dāng)PC機發(fā)出寫命令時,,F(xiàn)lash控制器執(zhí)行一次寫操作。(3)讀操作:Flash控制器PC機的讀命令,,當(dāng)PC機發(fā)出讀命令時,,F(xiàn)lash控制器執(zhí)行一次讀操作。讀出的數(shù)據(jù)被送往USB,。
2.5 數(shù)據(jù)控制模塊
數(shù)據(jù)控制模塊用于產(chǎn)生乒乓操作和Flash控制器的地址總線,、數(shù)據(jù)總線和控制總線,是乒乓操作模塊和Flash控制器的橋梁,。實現(xiàn)乒乓操作至Flash控制器數(shù)據(jù)的正確轉(zhuǎn)移,。同時數(shù)據(jù)控制模塊還負(fù)責(zé)從Flash控制器讀取數(shù)據(jù),并送至USB用于總線交互,。
2.6 USB控制模塊
USB接口芯片采用EZ-USB FX2(CY7C68013),,F(xiàn)X2作為USB2.0數(shù)據(jù)通道來實現(xiàn)與主機的高速通信,。FPGA能夠滿足Slave FIFO要求的傳輸時序作為Slave FIFO主控制器。圖7是FX2的狀態(tài)轉(zhuǎn)換圖,。
同步Slave FIFO寫時序如下:
IDLE:寫事件發(fā)生時,,轉(zhuǎn)到狀態(tài)1;狀態(tài)1:指向IN FIFO,,激活FIFOADR[1:0],,轉(zhuǎn)向狀態(tài)2;狀態(tài)2:如果FIFO滿標(biāo)志為“假”(FIFO不滿),,則轉(zhuǎn)向狀態(tài)3,,否則停留在狀態(tài)2;狀態(tài)3:傳送總線驅(qū)動數(shù)據(jù),,為1個IFCLK激活SLWR,,轉(zhuǎn)向狀態(tài)4;狀態(tài)4:如果有更多的數(shù)據(jù)要寫,,則轉(zhuǎn)向狀態(tài)2,,否則轉(zhuǎn)向IDLE。
3 USB芯片固件程序及驅(qū)動程序
3.1 FX2的固件程序設(shè)計
CY7C68013芯片固件程序負(fù)責(zé)處理PC機發(fā)來的各種USB請求,,以完成主機與外圍電路間的數(shù)據(jù)傳輸,。固件程序包括3個過程:(1)初始化,處理器和外圍電路的初始化;(2)主函數(shù),完成符合設(shè)備特定要求的代碼;(3)中斷處理,處理各種中斷的程序代碼,。
Cypress公司的EZ-USB FX2開發(fā)套件提供給用戶1個固件函數(shù)庫(Ezusb.lib)和固件框架(Framework),,兩者均是基于KEIL C51開發(fā)的。固件函數(shù)庫提供了一系列函數(shù)來加速USB固件程序的開發(fā),,使用時只需在程序中包含EZUSB.H和EZREGS.H兩個頭文件,,并在項目中鏈接Ezusb.lib,就可以直接使用固件庫中的各個函數(shù),,固件流程圖如圖8,。
3.2 USB設(shè)備驅(qū)動程序
USB設(shè)備驅(qū)動程序的主要功能是使Win32應(yīng)用程序能正確訪問本數(shù)據(jù)采集卡的硬件設(shè)備。本設(shè)計中將CY7C68013的固件代碼存放在上位機上,,當(dāng)系統(tǒng)上電或USB連接時,,再將其下載至芯片的RAM中,由增強型8051執(zhí)行,。這一過程需要使用2個驅(qū)動程序:一個用于下載芯片的固件程序,,另一個用于實現(xiàn)本數(shù)據(jù)采集卡的具體功能。也可以使用EZ-USB的通用驅(qū)動程序,,很多USB芯片的廠商都為其USB芯片提供了通用驅(qū)動程序,,可以滿足大部分系統(tǒng)的需求,用戶可在此基礎(chǔ)上直接進行固件程序的開發(fā) [4-6],。
4 主機應(yīng)用程序設(shè)計
應(yīng)用程序主要負(fù)責(zé)讀取系統(tǒng)硬件所輸出的數(shù)據(jù)采集結(jié)果,,并實時顯示波形,,使用微軟的Visual C++6.0語言編寫Win32應(yīng)用程序,可根據(jù)具體應(yīng)用進行擴展,。按照系統(tǒng)指標(biāo)要求,,應(yīng)用程序設(shè)計主要完成以下功能:設(shè)置采樣頻率、控制讀取數(shù)據(jù)通道,、讀取數(shù)據(jù),、波形顯示等。人機界面原始圖和第二個通道接收到的數(shù)據(jù)顯示波形如圖9,。
該系統(tǒng)采用 USB2.0 接口與計算機連接,,利用FPGA 完成系統(tǒng)控制。它既能與計算機連接進行實時數(shù)據(jù)采集,,也能用NAND FLASH存儲采集數(shù)據(jù),。該系統(tǒng)體積小、功耗低,,特別適合環(huán)境比較復(fù)雜下的測試系統(tǒng),,使用靈活方便、適應(yīng)性強,。
實驗表明,本設(shè)計可以很好地實現(xiàn)6 通道同步采樣,,其采樣頻率范圍 0.1 kHz~250 kHz,,完成采樣精度16 bit的數(shù)據(jù)采集。
參考文獻
[1] 邱春玲,,張廣明,,吳振翔.基于DSP和FPGA的電梯智能數(shù)據(jù)采集系統(tǒng)的設(shè)計.計算機工程與設(shè)計,2009,30(7):1577-1579.
[2] 范華,譚玉山.兩通道高速數(shù)據(jù)采集系統(tǒng)[J].電子測量與儀器學(xué)報,1996(10):1-2.
[3] 嚴(yán)雪萍.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)[J].微計算機信息,,2008(1-2):209-211.
[4] CY7C68013 EZ-USB@ FX2TM USB microcontroller high-speed USB peripheral controller. Cypress Semiconductor Corporation, 2002.
[5] 張惠娟. Windows環(huán)境下的設(shè)備驅(qū)動程序設(shè)計.西安.西安電子科技大學(xué)出版社,2002:19-20,,102-103,253-300.
[6] 薛園園.USB應(yīng)用開發(fā)技術(shù)大全[M].北京:人民郵電出版社,,2007.