(文章來(lái)源:國(guó)外電子測(cè)量技術(shù),作者:孫苗鐘,成佳強(qiáng),談炳發(fā))
引 言
汽車產(chǎn)業(yè)已成為國(guó)民經(jīng)濟(jì)增長(zhǎng)的一個(gè)亮點(diǎn),隨著科學(xué)技術(shù)的發(fā)展,汽車檢測(cè)經(jīng)歷了人工檢驗(yàn)、簡(jiǎn)單儀器儀表測(cè)量、電腦控制的自診斷系統(tǒng)和專用的故障診斷儀等階段。這些檢測(cè)手段不同程度地存在著操作復(fù)雜、穩(wěn)定性差、檢測(cè)效率低、檢測(cè)誤差大等缺點(diǎn)。電子技術(shù)和計(jì)算機(jī)技術(shù)在汽車上的普及運(yùn)用,對(duì)汽車售后維修服務(wù)提出了更高要求,促使在汽車的故障診斷中采用更多的快速、簡(jiǎn)便和智能化儀器,要求檢測(cè)儀器實(shí)時(shí)采集和反映汽車工況的技術(shù)數(shù)據(jù)或曲線,以此來(lái)進(jìn)行汽車故障的診斷。近年來(lái),國(guó)內(nèi)外很多公司和高校把虛擬儀器技術(shù)運(yùn)用到生產(chǎn)和科研中,取得了一定的經(jīng)濟(jì)和社會(huì)效益。虛擬儀器相對(duì)于傳統(tǒng)儀器具有以下優(yōu)勢(shì):(1)儀器功能由用戶自行定義;(2)豐富并增強(qiáng)了傳統(tǒng)儀器的功能;(3)測(cè)量穩(wěn)定性與重復(fù)性好;(4)經(jīng)濟(jì)性好;(5)系統(tǒng)構(gòu)建周期短,易于進(jìn)行功能擴(kuò)展。將虛擬儀器引入到汽車行業(yè),為汽車檢測(cè)技術(shù)帶來(lái)了新的活力。
影響最大的虛擬儀器編程語(yǔ)言是美國(guó)NI公司的LabVEIW和LabWindoWs/CVI,還有其他基于WINDOWS操作系統(tǒng)的可視化編程工具如VB、C++、Delphi等。VB是一種非常方便的Windows應(yīng)用程序編程開(kāi)發(fā)平臺(tái),它最有力的就是快速創(chuàng)建可視化用戶界面,把復(fù)雜而完善的Windows操作系統(tǒng)的使用融于易于學(xué)習(xí)和使用的高級(jí)語(yǔ)言中,因而受到廣大工程技術(shù)人員的普遍歡迎。
1 虛擬式汽車檢測(cè)儀的結(jié)構(gòu)
開(kāi)發(fā)的汽車檢測(cè)儀是基于數(shù)據(jù)采集卡的PC-DAQ結(jié)構(gòu)。系統(tǒng)的結(jié)構(gòu)如圖1所示,由硬件和軟件兩大部分構(gòu)成。
硬件的核心是一臺(tái)PC,I/O接口設(shè)備采用阿爾泰的PCI2006數(shù)據(jù)采集卡。該卡具有14位分辨率的A/D轉(zhuǎn)換器,提供了16(雙極)/32(單極)模擬輸入通道,輸入信號(hào)幅度可以經(jīng)程控增益放大至合適的范圍,保證最佳轉(zhuǎn)換精度;32位PCI總線,支持PCI2.2協(xié)議,即插即用;單通道400 kHz采樣頻率,偽同步采樣減少通道間的采樣時(shí)差,8 KB深度FIFO存儲(chǔ)器保證數(shù)據(jù)的完整性;軟件部分支持Windows XP系統(tǒng)下的I/O接口儀器驅(qū)動(dòng)程序,包括對(duì)VB、C++、Delphi以及LabVEIW的驅(qū)動(dòng)程序,編程使用的VB語(yǔ)言運(yùn)用其相應(yīng)的驅(qū)動(dòng)程序?qū)υ摽ㄟM(jìn)行數(shù)據(jù)采集的編程。
該卡主要分為4大塊:(1)模擬前端的信號(hào)輸入、調(diào)理電路;(2)對(duì)模擬輸入信號(hào)進(jìn)行AD轉(zhuǎn)換的模數(shù)轉(zhuǎn)換部分;(3)基于FPGA的控制部分;(4)和上位機(jī)進(jìn)行通信的接口電路。
2 PCI2006數(shù)據(jù)采集的編程實(shí)現(xiàn)
該卡能用3種不同方式即非空查詢方式、半滿方式和中斷方式進(jìn)行數(shù)據(jù)采集。
2.1 PCI2006的設(shè)備管理
由于驅(qū)動(dòng)程序采用面向?qū)ο缶幊蹋砸褂迷O(shè)備的一切功能,用CreateDevice函數(shù)創(chuàng)建一個(gè)設(shè)備對(duì)象句柄hDevice,有了這個(gè)句柄,就擁有了對(duì)該設(shè)備的絕對(duì)控制權(quán)。然后將此句柄作為參數(shù)傳遞給其他函數(shù),如Init-DeviceProAD可以使用hDevice句柄以程序查詢方式初始化設(shè)備的A/D部件,ReadDeviceProAD函數(shù)可以用hDe-vice句柄實(shí)現(xiàn)對(duì)A/D數(shù)據(jù)的采樣讀取,SetDeviceDO函數(shù)可用實(shí)現(xiàn)開(kāi)關(guān)量的輸出等。最后可以通過(guò)ReleaseDevice將hDevice釋放掉。
2.2 用非空查詢方式采集數(shù)據(jù)
有了hDevice設(shè)備對(duì)象句柄后,便可用InitDeviceProAD函數(shù)初始化A/D部件,關(guān)于采樣通道、頻率等參數(shù)的設(shè)置是由這個(gè)函數(shù)的pPara參數(shù)結(jié)構(gòu)體決定的。只需要對(duì)這個(gè)pPara參數(shù)結(jié)構(gòu)體的各個(gè)成員簡(jiǎn)單賦值即可實(shí)現(xiàn)所有硬件參數(shù)和設(shè)備狀態(tài)的初始化。然后用StartDeviceProAD啟動(dòng)A/D部件,開(kāi)始A/D采樣,然后用ReadDeviceProAD_No-tEmpty反復(fù)讀取A/D數(shù)據(jù)以實(shí)現(xiàn)連續(xù)不間斷采樣。當(dāng)需要暫停設(shè)備時(shí),執(zhí)行StopDeviceProAD,當(dāng)需要關(guān)閉AD設(shè)備時(shí),ReleaseDeviceProAD便可實(shí)現(xiàn),但設(shè)備對(duì)象hDevice依然存在。ReadDeviceProAD_NotEmpty雖然主要面對(duì)批量讀取,高速連續(xù)采集而設(shè)計(jì),但亦可用它以單點(diǎn)或幾點(diǎn)的方式讀取A/D數(shù)據(jù),以滿足慢速采集需要。具體執(zhí)行程序框圖如圖2所示。
2.3 用半滿方式采集數(shù)據(jù)
用StartDeviceProAD啟動(dòng)A/D部件,開(kāi)始A/D采樣,接著調(diào)用GetDevStatusAD_Half函數(shù)以查詢A/D的存儲(chǔ)器FIFO的半滿狀態(tài),如果達(dá)到半滿狀態(tài),即可用ReadDeviceProAD_Half函數(shù)一批半滿長(zhǎng)度(或半滿以下)的A/D數(shù)據(jù),然后再接著查詢FIFO的半滿狀態(tài),若有效再讀取,就這樣反復(fù)查詢狀態(tài)反復(fù)瀆取A/D數(shù)據(jù)即可實(shí)現(xiàn)連續(xù)不間斷采樣。
當(dāng)需要暫停設(shè)備時(shí),執(zhí)行StopDeviceProAD,當(dāng)需要關(guān)閉 A/D設(shè)備時(shí),ReleaseDeviceProAD便可實(shí)現(xiàn),但設(shè)備對(duì)象hDevice依然存在。ReadDeviceProAD_Half函數(shù)在半滿狀態(tài)有效時(shí)也可以單點(diǎn)或幾點(diǎn)的方式讀取A/D數(shù)據(jù),只是到下一次半滿信號(hào)到來(lái)時(shí)的時(shí)間間隔會(huì)變得非常短,而不再是半滿間隔。
2.4 用中斷方式采集數(shù)據(jù)
用CreateDevice函數(shù)創(chuàng)建設(shè)備對(duì)象,同時(shí)調(diào)用CreateSystemEvent函數(shù)創(chuàng)建一個(gè)內(nèi)核事件對(duì)象句柄hEvent賦給InitDeviceIntAD的相應(yīng)參數(shù),它將作為接收A/D半滿中斷事件的變量。啟動(dòng)A/D部件,開(kāi)始A/D采樣,接著調(diào)用Win32 API函數(shù)WaitForSingleObject等待hEvent中斷事件的發(fā)生,在中斷未到時(shí),自動(dòng)使所在線程進(jìn)入睡眠狀態(tài)(不消耗CPU時(shí)間),反之,則立即喚醒所在線程,執(zhí)行它下面的代碼,此時(shí)您便可用ReadDeviceIntAD函數(shù)讀取一批半滿長(zhǎng)度(或半滿以下)的A/D數(shù)據(jù),然后再接著等待FIFO的半滿中斷事件,若有效再讀取,就這樣反復(fù)讀取A/D數(shù)據(jù)即可實(shí)現(xiàn)連續(xù)不間斷采樣。用同樣函數(shù)可暫停和關(guān)閉A/D設(shè)備。
3 軟件編程
3.1 編程框圖
軟件總體框圖如圖3所示。
3.2 程序界面設(shè)計(jì)
虛擬式汽車檢測(cè)儀的軟件界面如圖4所示。
軟件啟動(dòng)畫面有兩個(gè)大內(nèi)容,分別是示波器模式和電壓表模式。示波器項(xiàng)可以顯示汽車各種電子部件產(chǎn)生的在線實(shí)時(shí)信號(hào);電壓表項(xiàng)可以顯示信號(hào)的數(shù)據(jù)大小,要求輸入通道數(shù)(最大為32個(gè))和采集頻率,左下框顯示各通道電壓波形的峰峰值和頻率。
4 實(shí)驗(yàn)驗(yàn)證
4.1 傳感器電壓數(shù)據(jù)顯示
為了驗(yàn)證此虛擬汽車檢測(cè)儀可靠性和效果,在PASSAT汽車電控電路試驗(yàn)臺(tái)進(jìn)行該車有關(guān)傳感器的實(shí)測(cè)。把虛擬汽車檢測(cè)儀數(shù)據(jù)采集卡的0、1、2、3通道分別與汽車的空氣流量傳感器信號(hào)線、節(jié)氣門位置傳感器信號(hào)線、節(jié)氣門位置傳感器電源信號(hào)線和水溫傳感器信號(hào)線相連。圖5為汽車在怠速運(yùn)轉(zhuǎn)時(shí)試驗(yàn)臺(tái)上顯示的傳感器電壓值。
圖6是汽車檢測(cè)儀在電壓表模式下測(cè)出的傳感器電壓值(mV)。試驗(yàn)臺(tái)傳感器電壓顯示值與實(shí)測(cè)值誤差分析如表1所示。
由表1說(shuō)明誤差甚小。
4.2 傳感器電壓信號(hào)波形顯示
圖7所示為霍爾傳感器信號(hào)的脈沖波形,由圖7可以看出,霍爾電壓峰峰值為7.93 V,汽車怠速時(shí)的標(biāo)準(zhǔn)電壓為6.00~8.50 V。表明該傳感器顯示波形正常,無(wú)故障。
根據(jù)以上數(shù)據(jù)及其波形圖分析可知,此虛擬汽車檢測(cè)儀能滿足汽車傳感器測(cè)量要求。另外,軟件界面清晰明了,操作簡(jiǎn)單方便。
5 結(jié)束語(yǔ)
利用虛擬儀器技術(shù)構(gòu)建的汽車檢測(cè)儀,能連續(xù)檢測(cè)、記錄、顯示和存儲(chǔ)汽車各種汽車電子部件所產(chǎn)生的信號(hào)波形和數(shù)據(jù),從而能迅速準(zhǔn)確地確定故障原因。通過(guò)存儲(chǔ)正常波形,用戶可以很容易地建立自己的波形數(shù)據(jù)庫(kù),以備積累經(jīng)驗(yàn)。本文是針對(duì)國(guó)內(nèi)汽車檢測(cè)的現(xiàn)實(shí)情況,嘗試研究開(kāi)發(fā)集信號(hào)采集、處理、分析與管理等較多功能于一體的虛擬式汽車檢測(cè)儀。這樣一方面可以將維修人員從繁雜的傳統(tǒng)儀器設(shè)備中解放出來(lái),發(fā)揮虛擬儀器的強(qiáng)大功能;另一方面,開(kāi)發(fā)這樣的虛擬儀器軟件是針對(duì)性地對(duì)汽車電子部件檢測(cè)而量身打造,不但可以降低成本,而且將來(lái)對(duì)軟件還可以拓展增加一些功能。并且軟件的界面友好,容易操作。
責(zé)任編輯:gt
-
汽車電子
+關(guān)注
關(guān)注
3028文章
8021瀏覽量
167645 -
虛擬儀器
+關(guān)注
關(guān)注
23文章
775瀏覽量
87408 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
39文章
6245瀏覽量
113950
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論