劉曉東, 吳佳琪, 黃 旭, 李俊杰, 曹逢源
(同濟大學(xué) 機械與能源工程學(xué)院,上海 201804)
?
基于FPGA的多功能數(shù)據(jù)采集系統(tǒng)設(shè)計
劉曉東, 吳佳琪, 黃 旭, 李俊杰, 曹逢源
(同濟大學(xué) 機械與能源工程學(xué)院,上海 201804)
設(shè)計了一種以現(xiàn)場可編程門陣列(FPGA)為核心的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)具有4個采集通道,直接通過上位機的指令配置,可根據(jù)實際需求選擇實時采樣或高速采樣。設(shè)計了采集系統(tǒng)的硬件電路,開發(fā)了FPGA程序,以實現(xiàn)數(shù)據(jù)采集、存儲、自動電橋平衡、狀態(tài)反饋等功能,采用RS—232串口方式與上位機通信。實驗證明:系統(tǒng)實現(xiàn)了預(yù)期功能,可達到實時采樣頻率為2.88 kHz和高速采樣頻率為91.5 kHz的數(shù)據(jù)采集。
數(shù)據(jù)采集; 現(xiàn)場可編程門陣列; 自動電橋平衡; RS—232串口
數(shù)據(jù)采集系統(tǒng)廣泛應(yīng)用于航空航天、醫(yī)療器械和機械工程等工業(yè)領(lǐng)域中[1]。在實際應(yīng)用中,對采集系統(tǒng)有著多樣化的需求:有的要求實時采集,有的要求高速采集,在對電橋電路的輸出信號采集前還需對電橋初始不平衡進行調(diào)節(jié)。以切削力測量為例,如果采用市場上的標(biāo)準(zhǔn)儀器,則需同時配備電阻應(yīng)變儀、示波器和信號分析儀等。
現(xiàn)場可編程門陣列(field programmable gate array,FPGA)是由可編程邏輯塊組成的數(shù)字集成電路[2],具有速度快、抗干擾能力強、程序設(shè)計靈活方便等優(yōu)點[3]。只要FPGA規(guī)模夠大,理論上能形成一切數(shù)字系統(tǒng),包括單片機甚至中央處理器(central processing unit,CPU)。目前FPGA的主要器件供應(yīng)商有Altera,Xilinx,Lattice,Actel等[4]。
本文設(shè)計了以FPGA為處理器的多功能數(shù)據(jù)采集系統(tǒng),實現(xiàn)實時采集、高速采集、自動電橋平衡等不同功能。
系統(tǒng)組成框圖如圖1所示,F(xiàn)PGA主控電路負責(zé)控制和協(xié)調(diào)各模塊的工作;模/數(shù)轉(zhuǎn)換(ADC)電路用于模擬信號的采集;存儲電路用于數(shù)據(jù)存儲;平衡調(diào)節(jié)電路用于對電橋初始不平衡的自動調(diào)節(jié)。FPGA和上位機之間的通信由RS—232串口實現(xiàn)。實時采樣時,A/D轉(zhuǎn)換后的數(shù)字信號經(jīng)FPGA處理后直接由串口傳送給上位機程序;高速采樣時,A/D轉(zhuǎn)換后的數(shù)字信號先在存儲器中進行暫時存儲。
圖1 系統(tǒng)組成框圖
2.1 FPGA選型及其配置
本文選用的FPGA芯片來自于Altera公司的Cyclone II系列,型號為EP2C5T144C8的FPGA,用戶可用I/O管腳數(shù)89,工作電壓3.3 V,內(nèi)核電壓1.2 V。系統(tǒng)采用JTAG配置模式,配置器件使用EPCS4,使用50 MHz的有源晶振連接FPGA全局時鐘管腳。
2.2 采集及存儲電路設(shè)計
采用的ADC芯片為MAX1301,為4通道16位分辨率的串行ADC,最高采樣頻率可以達到115 kSPS,工作電壓為+5 V。輸入輸出引腳供電使用3.3 V,與FPGA I/O電平相兼容。由于是串行ADC,F(xiàn)PGA只需通過CS,DIN,SSTRB,SCLK,DOUT 5個引腳完成A/D采樣,因此,A/D轉(zhuǎn)換電路設(shè)計簡單、占有空間少。電路原理圖如圖2所示。
系統(tǒng)采樣速度大于串口傳輸速度時會出現(xiàn)數(shù)據(jù)阻塞。因此,需設(shè)計存儲電路用于臨時存儲高速采樣的數(shù)據(jù),避免數(shù)據(jù)傳輸錯誤、丟失。本文選用賽普拉斯半導(dǎo)體公司的CY7C1018DV33靜態(tài)存儲器(SRAM),存儲容量為128 kB。
圖2 ADC電路原理
2.3 電橋平衡電路設(shè)計
采用數(shù)字電位器與控制器相結(jié)合的方法實現(xiàn)自動電橋平衡。為減少電位器對電橋輸出的影響應(yīng)盡量選擇阻值大的電位器。但是數(shù)字電位器的抽頭數(shù)有限,電位器阻值越大則跳變一次的阻值越大,導(dǎo)致調(diào)整精度減小。綜合考慮,選用阻值分別為 1 kΩ和10 kΩ的X9C102和X9C103[5],作為電橋粗調(diào)和細調(diào)的執(zhí)行器。電路原理圖如圖3所示。兩個電位器并聯(lián)后將滑動端S1_IN—輸出連接到應(yīng)變電橋的一個輸出端上,即可實現(xiàn)對電橋輸出的電壓差補償。
圖3 電橋平衡電路原理
2.4 串口通信電路
由于RS—232串口通信簡單、可靠,且速度滿足一般的采集系統(tǒng)要求。RS—232采用±3~±15 V電平標(biāo)準(zhǔn),而FPGA只能兼容LVTTL以及LVCMOS電平標(biāo)準(zhǔn),故兩者不能兼容,需要進行電平轉(zhuǎn)換。本文使用MAXIM公司的MAX3232E芯片進行電平轉(zhuǎn)換。電路原理圖如圖4所示。
圖4 MAX3232E電路原理
采用Verilog硬件語言,在Quartus II平臺進行數(shù)據(jù)采集系統(tǒng)的軟件開發(fā)。FPGA軟件設(shè)計采用模塊化的方法,根據(jù)功能的不同,可將FPGA內(nèi)部劃分為不同的模塊。通過模塊化設(shè)計,實現(xiàn)了數(shù)據(jù)采集、數(shù)據(jù)存儲、電橋平衡調(diào)節(jié)、簡單數(shù)字濾波、指令識別、系統(tǒng)當(dāng)前狀態(tài)反饋等功能。
3.1 ADC控制模塊
ADC控制模塊用于控制ADC對經(jīng)過信號調(diào)理之后的電橋信號進行采樣。系統(tǒng)上電后,在進行采樣前,需要先對MAX1301所需的通道進行模擬輸入配置(analog input configuration)和工作模式配置(mode-control)。配置完成后即可按照控制指令的要求進行信號采集。
ADC控制模塊的工作流程如圖5所示。空閑等待狀態(tài)下發(fā)生狀態(tài)跳轉(zhuǎn)的先決條件是檢測到一個采樣控制脈沖convert_pulse并且全局開關(guān)main_switch打開。此時根據(jù)CH0_on,CH1_on,CH2_on和CH3_on的狀態(tài)來控制所需通道的采樣控制字發(fā)送和數(shù)據(jù)讀取。最后將數(shù)據(jù)打包發(fā)送,回到空閑等待狀態(tài)。
圖5 ADC控制模塊工作流程
ADC控制模塊的輸出數(shù)據(jù)需要進行數(shù)字濾波。采用中值濾波法和滑動平均濾波法相結(jié)合,既能減少隨機干擾,又能濾除明顯的脈沖干擾,具有良好的濾波效果[6]。
3.2 存儲器模塊
存儲器模塊用于測試系統(tǒng)進行高速采集時的數(shù)據(jù)存儲,可以實現(xiàn)高速存儲和低速讀取的目的。
存儲器模塊的工作流程如圖6所示。初始狀態(tài)下一直處于空循環(huán),使能信號M68_enable拉高之后,模塊開始按照存儲器地址從低到高的順序依次寫入數(shù)據(jù)并計數(shù)。數(shù)據(jù)寫入計數(shù)器i,溢出,則將其清空并開始從存儲器中讀出數(shù)據(jù)并發(fā)送給下一模塊,通過延時以匹配串口的傳輸速度。數(shù)據(jù)讀出計數(shù)器n溢出后對其清零并判斷是否需要進行下一輪數(shù)據(jù)存儲操作。
3.3 自動電橋平衡模塊
自動電橋平衡模塊采用閉環(huán)反饋控制原理,以實現(xiàn)自動、快速的電橋平衡調(diào)節(jié)。先由MAX1301對濾波放大后的電橋信號進行采樣,得到電橋的不平衡量;再分別對兩個數(shù)字電位器進行調(diào)整,減小電橋的不平衡量。調(diào)平完成的判別依據(jù)如圖7所示。當(dāng)輸出電壓穿過0 V時(即從正變成負或從負變成正),計算上一次采樣值與0 V的差值ΔU1和當(dāng)前的輸出與0 V的差值ΔU2。若ΔU1<ΔU2,則撤銷最后一次電位器操作,并發(fā)送調(diào)平完成信號;若ΔU1>ΔU2,則保留最后一次電位器操作,并直接發(fā)送調(diào)平完成信號。
圖7 調(diào)平完成判斷依據(jù)
3.4 指令識別模塊和數(shù)據(jù)識別模塊
采集系統(tǒng)的工作狀態(tài)需要由上位機進行控制,控制過程通過發(fā)送指令的方式來實現(xiàn)。控制指令識別模塊用于對指令的解讀指令信息并調(diào)動、協(xié)調(diào)各模塊的工作。本采集系統(tǒng)與上位機約定了5種指令,分別為開始采樣、停止采樣、采樣頻率配置、采樣通道配置、電橋平衡調(diào)節(jié)。指令包含標(biāo)識符、信息數(shù)據(jù)、校驗位3部分。其中開始、停止采樣為系統(tǒng)的全局控制指令,沒有具體的配置對象,故不攜帶信息數(shù)據(jù)??刂浦噶钭R別模塊的有限狀態(tài)機(finite state machine,FSM)如圖8所示。
圖8 指令識別模塊狀態(tài)機
數(shù)據(jù)采集系統(tǒng)向上位機傳輸?shù)臄?shù)據(jù)包括各個通道的采集數(shù)據(jù)和狀態(tài)反饋數(shù)據(jù)。數(shù)據(jù)識別模塊用于選擇當(dāng)前時刻向上位機傳送數(shù)據(jù)的類型、數(shù)據(jù)來源。其中反饋信息最優(yōu)先傳輸,數(shù)據(jù)識別模塊根據(jù)收到的狀態(tài)號向上位機進行狀態(tài)反饋,狀態(tài)號和預(yù)置的反饋信息對應(yīng)關(guān)系如表1所示。
表1 狀態(tài)號和反饋信息對應(yīng)關(guān)系
4.1 電橋平衡調(diào)節(jié)實驗
采用自主研發(fā)的4通道應(yīng)變式測力儀,經(jīng)過放大、濾波后接入采集系統(tǒng)。通過上位機發(fā)送調(diào)平指令后,調(diào)節(jié)完成后測得結(jié)果如表2所示。由表中可知:誤差在±50 mV內(nèi),而所用時間不到5 s。
表2 電橋調(diào)平后測得電壓值
4.2 數(shù)據(jù)采集實驗
采用信號發(fā)生器作為信號源,分別產(chǎn)生幅值為±1 V的三角波、±2 V的方波以及±3 V的正弦波,頻率均為2 Hz;再采用穩(wěn)壓源產(chǎn)生+4 V的恒定電壓。將這4個信號分別接入4個通道,并通過上位機配置采集系統(tǒng)以200 Hz的頻率進行數(shù)據(jù)采集。采集完成后對所采集數(shù)據(jù)進行保存,并截取其中400個數(shù)據(jù)點進行波形繪制,如圖9所示。實驗結(jié)果證明:采集系統(tǒng)工作穩(wěn)定可靠,可達到實時采樣頻率2.88 kHz和高速采樣頻率91.5 kHz的數(shù)據(jù)采集。
本文設(shè)計了一種基于FPGA的多功能數(shù)據(jù)采集系統(tǒng),并對設(shè)計過程進行了詳細的描述。實驗結(jié)果證明:本文設(shè)計的采集系統(tǒng)具有一定的應(yīng)用價值。
圖9 采集結(jié)果波形
[1] 于得鈺.基于FPGA的A/D數(shù)據(jù)采集系統(tǒng)的設(shè)計[D].哈爾濱:黑龍江大學(xué),2012.
[2] Clive“Max”Maxfield.FPGA設(shè)計指南[M].北京:人民郵電出版社,2007.
[3] 劉振國.分析儀器常用控制功能的FPGA實現(xiàn)[D].杭州:杭州電子科技大學(xué),2012.
[4] 王 誠,蔡海寧,吳繼華.Altera FPGA/CPLD設(shè)計(基礎(chǔ)篇)[M].2版.北京:人民郵電出版社,2011:147-153.
[5] 紀(jì)宗南.高精度的數(shù)字電位器X9C103[J].集成電路應(yīng)用,1999(4):6-9.
[6] 趙 毅,牟同升,沈小麗.單片機系統(tǒng)中數(shù)字濾波的算法[J].電測與儀表,2001,38(6):5-8.
吳佳琪,通訊作者,E—mail:wujiaqish@163.com。
Design of multi-functional data acquisition system based on FPGA
LIU Xiao-dong, WU Jia-qi, HUANG Xu, LI Jun-jie, CAO Feng-yuan
(School of Mechanical and Energy Engineering,Tongji University,Shanghai 201804,China)
A data acquisition system based on field programmable gate array(FPGA)is designed.The system has four acquisition channels.It is configured by commands of host computer,and can choose real-time sampling or high-speed sampling according to actual needs.Hardware circuit of the acquisition system is designed.FPGA program is developed to implement functions such as data acquisition,data storage, automatic electric bridge balance, and status feedback.FPGA communicates with the host computer via RS—232 serial port.The test shows that the expected functions are implemented, and the system can achieve 2.88 kHz in real-time sampling and 91.5 kHz in high-speed sampling.
data acquisition; field programmable gate array(FPGA); automatic electric bridge balance; RS—232 serial port
10.13873/J.1000—9787(2017)07—0096—04
2017—05—10
TP 274.2
A
1000—9787(2017)07—0096—04
劉曉東(1967-),男,博士,副教授,主要從事精密測量與控制工作。