湯 東,張 明
(江蘇大學(xué)汽車與交通工程學(xué)院,江蘇鎮(zhèn)江 212013)
?
基于FPGA和USB接口的內(nèi)燃機(jī)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
湯 東,張 明
(江蘇大學(xué)汽車與交通工程學(xué)院,江蘇鎮(zhèn)江 212013)
針對傳統(tǒng)內(nèi)燃機(jī)數(shù)據(jù)采集系統(tǒng)采用ISA、PCI卡插卡等固定方式對內(nèi)燃機(jī)工作過程進(jìn)行數(shù)據(jù)采集和分析,提出一種即插即用便攜式的內(nèi)燃機(jī)測量系統(tǒng)。系統(tǒng)使用FPGA作為主控芯片,實(shí)現(xiàn)對A/D轉(zhuǎn)換芯片的控制,雙SRAM構(gòu)成乒乓緩存器的控制以及對USB芯片讀寫控制。通過USB驅(qū)動程序和VB6.0實(shí)現(xiàn)上位機(jī)數(shù)據(jù)處理與儲存的功能。
ADS8364;USB接口;FPGA;內(nèi)燃機(jī)數(shù)據(jù)采集;雙SRAM乒乓緩存器
內(nèi)燃機(jī)氣缸內(nèi)氣體壓力變化曲線(示功圖)是研究內(nèi)燃機(jī)工作過程及動力性和經(jīng)濟(jì)性的重要依據(jù)。通過對示功圖的分析了解內(nèi)燃機(jī)工作過程的情況。并且,也能通過示功圖分析內(nèi)燃機(jī)工作過程中的特征參數(shù),如壓縮終點(diǎn)壓力、溫度、 著火始點(diǎn)位置、壓力升高率等[1]。因此,精確采集氣功壓力信號一直是內(nèi)燃機(jī)工作者關(guān)注的問題。一般情況下,基于MUC為核心的內(nèi)燃機(jī)示功圖信號采集系統(tǒng)作為其性能分析和故障診斷的依據(jù)。但這些系統(tǒng)多數(shù)以單片機(jī)A/D板直接插在計(jì)算機(jī)內(nèi)置接口上(如ISA、PCI卡)的固定方式進(jìn)行數(shù)據(jù)采集,這些系統(tǒng)存在安裝麻煩、可擴(kuò)展性差等缺點(diǎn)。本文利用FPGA和USB外置式采集卡可組成一個即插即用便攜式示功圖信號測量系統(tǒng)。
該系統(tǒng)主要由信號采集轉(zhuǎn)換電路、A/D轉(zhuǎn)換模塊、FPGA邏輯控制模塊、USB通信模塊及上位機(jī)組成,如圖1所示。各通道傳感器采集的模擬信號先經(jīng)過信號調(diào)理放大電路,使其在±5 V范圍內(nèi)以免燒壞A/D板,FPGA控制ADS8364的工作時序并讀取數(shù)據(jù),再將讀取數(shù)據(jù)寫入雙SRAM乒乓緩存器中某片SRAM里,同時將另一片SRAM中已有數(shù)據(jù)讀出并送入USB接口芯片的FIFO里,USB接口芯片再將FIFO中數(shù)據(jù)轉(zhuǎn)換成事件發(fā)送至上位機(jī),VB6.0應(yīng)用程序?qū)邮艿臄?shù)據(jù)進(jìn)行分析、處理和測量結(jié)果顯示。
圖1 內(nèi)燃機(jī)測量系統(tǒng)工作原理
1.1 信號放大電路[2]
信號調(diào)理放大電路連接著傳感器和A/D板,其作用主要是對傳感器的輸出進(jìn)行處理。氣功壓力、柴油機(jī)油管壓力、柴油機(jī)針閥升等模擬信號需提高信噪比,減少其畸變。同時將信號調(diào)整為合適電壓輸入到A/D芯片中。信號調(diào)整電路采用運(yùn)算放大器OPA2227和抗混疊低通濾波器。如圖2所示,將ADS8364的REFIN及REFOUT引腳連接并輸出+2.5 V的參考電壓提供給差分電路,信號調(diào)整后以差分方式輸入到ADS8364的通道A0中[3]。
圖2 信號處理原理圖
1.2 多通道同步A/D轉(zhuǎn)換器[4]
多通道同步A/D轉(zhuǎn)換芯片選用ADS8364,它是低功耗、6通道(分成A、B、C共3組)同步采集的16位的高性能模數(shù)轉(zhuǎn)換器。每片ADS8364包含3個轉(zhuǎn)換速率為250 kbit/s(當(dāng)外部時鐘為5 MHz)的ADC,每個ADC有2個帶采樣保持器的模擬輸入通道,3個ADC組成的3對模擬輸入端可同時對任1~2個輸入信號同步采集,再逐個轉(zhuǎn)換。ADS8364的3個啟動控制信號HOLDA、HOLDB、HOLDC由EP2C8Q208的CONVST引腳控制,這樣就能有效地同時啟動ADS8364的6個通道,從而實(shí)現(xiàn)多通道同步采集。ADS8364的時鐘信號由FPGA提供。A/D轉(zhuǎn)換完成后產(chǎn)生轉(zhuǎn)換結(jié)束信號EOC。其工作原理如圖3所示。
圖3 ADS8364工作原理圖
1.3 FPGA設(shè)計(jì)[5]
FPGA是本數(shù)據(jù)采集測試系統(tǒng)的中央處理器。本系統(tǒng)選用CycloneⅡ系列的一款低成本FPGA,擁有8 256個Les,36個M4KRAM。為了保證本系統(tǒng)儲存和采集數(shù)據(jù)的連續(xù)性,使用雙SRAM進(jìn)行乒乓緩存。FPGA通過雙SRAM構(gòu)成一個大容量的FIFO,可以使數(shù)據(jù)連續(xù)不斷地輸入和輸出,并對數(shù)據(jù)進(jìn)行無縫緩沖和處理。系統(tǒng)使用2片ISSI61LV25616芯片,它可存儲256 kbit的16位數(shù)據(jù),它和FPGA的連接如圖 4所示。通過18根地址線(ADD1[17…0],ADD2[17…0])和16根數(shù)據(jù)線(DATA1[15…0],DATA2[15…0]),以及另外3根控制線(片選信號CE、寫入信號WE和輸出信號OE)連接到FPGA上[6]。
圖4 FPGA雙乒乓存儲設(shè)計(jì)
1.4 USB接口芯片
本系統(tǒng)采用EZ-USB FX2系列單片機(jī)CYC68013作為USB接口芯片。它有GPIF、Ports、Slave FIFO 3種接口方式。Slave FIFO是從機(jī)的方式,這樣FPFA可以如操作普通FIFO一樣對FX2的多層緩沖FIFO讀寫。FX2內(nèi)部的端點(diǎn)FIFO提供需要的時序信號、讀/寫信號、握手信號和輸出允許信號。本系統(tǒng)是在Slave FIFO模式下進(jìn)行異步FIFO方式工作。FX2和FPGA的引腳連接如圖5所示。IFCLK為接口時鐘引腳;FD[15..0]為16位雙向數(shù)據(jù)總線;FLAGA/B/C為FIFO標(biāo)志管腳,它用來映射FIFO當(dāng)前狀態(tài);SLCS作為從屬FIFO的片選信號;SLRD和SLWR分別作為讀和寫信號,SLOES作為輸出使能信號;FIFOADR[1.0]用于選用和FD連接端點(diǎn)緩沖區(qū);FPGA通過PKTEND引腳對USB發(fā)送一個非標(biāo)準(zhǔn)長度IN數(shù)據(jù)包[7]。
圖5 USB接口設(shè)計(jì)
1.5 USB固件程序設(shè)計(jì)
CY7C68013的固件程序架構(gòu)[8]見圖6,該固件分幾步實(shí)現(xiàn):首先調(diào)用初始化函數(shù)TD_init(),設(shè)置狀態(tài)變量起始值。返回后,固件架構(gòu)就會設(shè)置USB接口稱為未配置狀態(tài),并打開中斷。完成上述任務(wù)后,開始重新枚舉設(shè)備直到在端點(diǎn)0收到SETUP包為止。一旦SETUP包被檢測到后,固件架構(gòu)機(jī)會啟動相應(yīng)工作分配器。分配器就會重復(fù)執(zhí)行下列工作:
(1)調(diào)用函數(shù)TD_Poll();
(2)檢測是否有標(biāo)準(zhǔn)的設(shè)備請求,如果有,則分析命令,執(zhí)行命令,執(zhí)行設(shè)備請求;
(3)如果沒有,檢測USB是否有USB掛起事件,如果有USB掛起事件,則調(diào)用用戶程序TD_Suspend(),當(dāng)TD_Suspend()返回為真時,USB核檢測是否有重新開始事件。如果沒有USB掛起事件,則微處理器處于掛起狀態(tài)。當(dāng)檢測有新的時間,USB核調(diào)用用戶程序TD_Resume(),并繼續(xù)執(zhí)行步驟(1)。當(dāng)TD_Suspend()返回為假時,則繼續(xù)執(zhí)行步驟(1)。
圖6 固件程序架
1.6 USB驅(qū)動程序設(shè)計(jì)
Window2000/XP操作系統(tǒng)不允許用戶程序直接訪問硬件設(shè)備。USB驅(qū)動程序在整個系統(tǒng)中處于主機(jī)端應(yīng)用程序和設(shè)備端Firmware之間。它的主要功能是幫助系統(tǒng)識別USB設(shè)備,建立起主機(jī)端和設(shè)備端之間的數(shù)據(jù)通信。Cy7c68013的開發(fā)包中提供了一個通用驅(qū)動程序ez-usb.sys,這樣大大降低USB開發(fā)難度為用戶提供方便。通過簡單的修改相應(yīng)驅(qū)動程序INF文件能夠完成用戶程序和外設(shè)的通信及控制。
內(nèi)燃機(jī)的各種參數(shù)測試實(shí)際上就是把各種待測參數(shù)如壓力、溫度、應(yīng)變、轉(zhuǎn)速等通過相應(yīng)的傳感器轉(zhuǎn)化為模擬電信號,這些模擬電信號通過數(shù)據(jù)采集轉(zhuǎn)換為數(shù)字信號,獲取的數(shù)字信號由底層數(shù)字信號處理器再通過USB 接口傳送給上位機(jī)進(jìn)行分析和處理,如頻譜變換、濾波處理和相關(guān)分析等,從而獲得發(fā)動機(jī)的各種性能參數(shù)[9]。
本系統(tǒng)可對內(nèi)燃機(jī)的各種實(shí)時信號實(shí)現(xiàn)顯示、回放、采樣、數(shù)據(jù)后處理等功能,可進(jìn)行燃燒過程、柴油機(jī)噴油過程、放熱規(guī)律等計(jì)算。氣缸壓力、柴油機(jī)油管壓力、柴油機(jī)針閥升程等信號可經(jīng)電荷放大器放大后,進(jìn)入采樣轉(zhuǎn)換器進(jìn)行A/D模數(shù)轉(zhuǎn)換,再進(jìn)入計(jì)算機(jī)進(jìn)行后處理,計(jì)算結(jié)果可由打印機(jī)打出,如圖7所示。測試系統(tǒng)分析軟件用VB6.0編程采集完成,分析與處理主程序框圖如圖8所示 。
圖7 內(nèi)燃機(jī)工作過程系統(tǒng)布置圖
圖8 采集分析與處理主程序框圖
此分析系統(tǒng)對一臺車用柴油機(jī)進(jìn)行了不同供油提前角下的氣缸壓力、高壓油管壓力的測量,針對柴油機(jī)的排放、燃燒及噴油過程進(jìn)行分析。
3.1 燃燒氣缸壓力及高壓油管壓力
通過試驗(yàn)臺架的電渦流測功機(jī)可以測的柴油機(jī)在測試運(yùn)行中的轉(zhuǎn)速3 600 r/mim,并且可以標(biāo)定其在特定負(fù)荷狀況下如100%,再設(shè)定好供油提前角25° CA,確定柴油機(jī)噴油時間節(jié)點(diǎn),再可以通過上位機(jī)分析軟件計(jì)算出氣缸壓力和油管壓力,并畫出曲線如圖9所示,得出的油管最大壓力比汽缸最大壓力提前到達(dá),這是符合柴油機(jī)運(yùn)行特性。
圖9 壓力曲線圖
3.2 壓力升高率計(jì)算
為了驗(yàn)證分析系統(tǒng)的計(jì)算能力的準(zhǔn)確性,同一臺柴油機(jī)在轉(zhuǎn)速3 600 r/min和100%負(fù)荷下,調(diào)試3個供油提前角(25° CA、27° CA、23° CA)確定了內(nèi)燃機(jī)工作時噴油時間節(jié)點(diǎn),計(jì)算出壓力升高率的變化,并且畫出曲線圖形如圖10所示,由圖10可知分析系統(tǒng)能夠識別出柴油機(jī)在同一趨勢下的微弱區(qū)別。
圖10 壓力升高率變化圖
通過試驗(yàn),基于FPGA和USB接口的內(nèi)燃機(jī)工作過程分析系統(tǒng)能有效地、實(shí)時采集數(shù)據(jù)。此方案設(shè)計(jì)可以即插即用、開發(fā)周期短,而且,在保證數(shù)據(jù)傳輸速度和實(shí)時監(jiān)控條件下,與傳統(tǒng)測試系統(tǒng)相比成本更低。
[1] 靳生盛,劉平,房程程.VC+ + 環(huán)境下內(nèi)燃機(jī)示功圖信號高速采集的軟件設(shè)計(jì).小型內(nèi)燃機(jī)與摩托車,2010,39(3):1-3.
[2] 陳子為,鄧芳.基于ADS8364的多通道高速數(shù)據(jù)采集處理.數(shù)據(jù)采集與處理,2006,21(12):227-228.
[3] 劉釗,劉和平,王春燕.ADS8364與TMS320LF2407的接口及應(yīng)用.電子技術(shù)應(yīng)用,2004(10):100-150.
[4] 劉品,李松巖,徐赫.基于ADS8364高速數(shù)據(jù)采集模塊接口設(shè)計(jì).現(xiàn)代電子技術(shù),2011,34(15):138-139.
[5] 黃善文,王學(xué)軍.基于USB和FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì).電子設(shè)計(jì)工程,2010(9):127-128.
[6] 周如輝.實(shí)時視頻處理系統(tǒng)的乒乓緩存控制器設(shè)計(jì).單片機(jī)與嵌入系統(tǒng)應(yīng)用,2007(7):25-27.
[7] 錢峰.EZ-USB FX2單片機(jī)原理、編程及應(yīng)用.北京:北京航空航天大學(xué)出版社,2006.
[8] 楊志坤,曾博,湯國文.基于FPGA的嵌入式系統(tǒng)USB接口設(shè)計(jì).電子設(shè)計(jì)工程,2010,18(1):1-3.
[9] 程曉腸,蘇紹景,王躍科.基于USB2.0的發(fā)動機(jī)綜合參數(shù)測試系統(tǒng)設(shè)計(jì).測試技術(shù)學(xué)報,2004,18(2):2-3.
Design of Internal Combustion Engine Data AcquisitionSystem Based on FPGA and USB Interface
TANG Dong,ZHANG Ming
(School of Automobile and Traffic Engineering,Jiangsu University,Zhenjiang 212013,China)
Aiming at the traditional internal combustion engine data acquisition system using ISA,PCI card fixed way to collect the data of engine working process,a kind of plug and portable internal combustion engine measurement system was presented.The system used FPGA as the main control chip,which realized the control of the A/D converter,dual SRAM ping pong buffer and read and write of the USB chip.The host computer data processing and storage was realized by the USB driver and VB 6.0 .
ADS8364;USB Interface;FPGA;Engine Data Acquisition;Double SRAM Ping Pong Buffer
江蘇省國際合作項(xiàng)目(BZ2012025);內(nèi)燃機(jī)燃燒學(xué)國家重點(diǎn)實(shí)驗(yàn)室開放課題(K2014-9)
2014-02-28 收修改稿日期:2014-10-02
TP212
A
1002-1841(2015)03-0053-03
湯東(1969—),教授,主要研究方向?yàn)橹行」β蕛?nèi)燃機(jī)燃燒過程優(yōu)化與排放控制;代用燃料與燃料電池應(yīng)用。 E-mail:dtang@mail.ujs.edu.cn 張明(1989—),碩士研究生,主要研究方向?yàn)橹行」β蕛?nèi)燃機(jī)排放測試與控制。E-mail:277050748@qq.com