眾所周知能源危機和大氣污染是未來(lái)汽車(chē)燃料所要解決的最關(guān)鍵問(wèn)題。為降低排放,緩解石油能源緊張的局面,氣體燃料受到了世界各國的重視和推廣。大量實(shí)車(chē)試驗均證實(shí)以天然氣(CNG)或液化石油氣(LPG)為燃料,發(fā)動(dòng)機的NOx,總碳氫THC,CO及CO2的排放較汽油的排放污染明顯減少,且大大節省了能源。 雙燃料汽車(chē)技術(shù)的關(guān)鍵之一是油和氣轉換控制,燃料開(kāi)關(guān)正是用于以自動(dòng)或手動(dòng)的方式實(shí)現燃料間的切換,其品質(zhì)也關(guān)系到汽車(chē)的整體性能。本文所針對的燃料開(kāi)關(guān)具有以下的主要功能:燃料切換、燃料容量顯示、蜂鳴器報警以及指示燈亮度關(guān)于環(huán)境光照度自動(dòng)調節等。為確保燃料開(kāi)關(guān)的質(zhì)量控制滿(mǎn)足最苛刻的歐洲汽車(chē)零部件質(zhì)量標準,燃料開(kāi)關(guān)必須百分之百進(jìn)行測試。傳統測試方法是通過(guò)測試人員手工測試,測試速度慢,受人為因素影響,差錯率相對較高,產(chǎn)品質(zhì)量得不到保障。于是有必要研究一種能用計算機實(shí)現的自動(dòng)測試系統。本文設計并實(shí)現了一種能用于對燃料開(kāi)關(guān)進(jìn)行完成功能測試、通訊速率自動(dòng)測定并具有過(guò)壓自動(dòng)保護能力的燃料開(kāi)關(guān)自動(dòng)測試系統。 該測試系統基于PC機和單片機P89LPC938,測試人員通過(guò)PC機向測試系統發(fā)出測試命令,由單片機識別并處理測試指令,向燃料開(kāi)關(guān)發(fā)出相應的測試信號,以測試對應性能。下面將對整個(gè)系統及每個(gè)模塊進(jìn)行詳細說(shuō)明分析。 1 燃料開(kāi)關(guān)測試系統的組成及工作原理 該測試系統由電源模塊、單片機P89LPC938控制模塊、通信接口模塊及電平轉換模塊組成,圖1是測試系統的結構圖。 該測試系統的工作原理:測試人員在PC機界面選擇要測試的項目,PC機通過(guò)串口將此命令發(fā)送給測試系統,經(jīng)過(guò)RS 232-TTL電平轉換后,該指令送至單片機控制模塊,由單片機P89LPC938組成的控制單元識別所收到的測試要求后,從指令集中取出相應的命令信號以協(xié)定的通信協(xié)議向燃料開(kāi)關(guān)發(fā)送命令,如果燃料開(kāi)頭能夠正確識別所收到的命令,它將回送應答信號,同時(shí)執行該命令所要求的測試項目,如點(diǎn)亮不同的指示燈,發(fā)出不同音調與音高的報警聲等。待每項測試執行完成后,結果回送給單片機,單片機再經(jīng)由串口將此結果發(fā)送給PC機進(jìn)行存儲和顯示。 各模塊的作用如下: 電源模塊:由于不同芯片所要提供的電壓不同,且在此測試系統中,需要5 V及3.3 V,所以電源模塊的電路要產(chǎn)生不同的電壓提供給各芯片。 電平轉換模塊:實(shí)現PC機與單片機之間的RS 232電平至TTL電平轉換。 PC機顯示存儲模塊:測試人員通過(guò)PC機發(fā)送測試命令,并將每個(gè)燃料開(kāi)關(guān)的序列號及相應的各項功能測試結果顯示并保存。 通信接口模塊:本文所針對的燃料開(kāi)關(guān)僅有一根信號線(xiàn),只能實(shí)現半雙工通信,接口模塊的功用就是用于實(shí)現單片機全雙工方式與燃料開(kāi)關(guān)半雙工方式之間的轉換。 單片機控制模塊:是整個(gè)系統的核心部分,控制整個(gè)系統的測試進(jìn)程。它要識別來(lái)自PC機的測試人員所發(fā)出的測試命令,判斷并執行相應功能的測試;待測試結束,控制模塊要分析測試結果是否正常,并反饋給PC機用于向測試人員顯示及數據自動(dòng)入庫保存。 2 測試系統的電路實(shí)現 2.1 供電電路 不同芯片對供電電壓的要求也不同,本測試系統中,單片機P89LPC938所需的電壓為3.3 V,而電平轉換芯片MAX232所需要的電壓為5 V,因此,電源模塊的設計要滿(mǎn)足需求,設計時(shí)就需要兼顧兩者,外部只需提供12 V電壓即可。圖2給出電源電路的電路圖,本系統選用LM7805和LM1117兩個(gè)穩壓器。 2.2 RS 232-TTL電平轉換電路 計算機串口是RS 232電平,而一般的單片機應用系統的信號電壓是TTL電平或CMOS電平,不可以直接將單片機芯片上的串行通信引腳與RS 232的收發(fā)端相連接,必須作適當的電平轉換。目前市面上有許多用于此目的的電平轉換芯片,本方案采用MAX232芯片。 2.3 單片機與燃料開(kāi)頭之間的通信接口電路 通信接口模塊要實(shí)現的功能是接收單片機P89LPC938 發(fā)出的命令信號發(fā)送給燃料開(kāi)關(guān),它還要將燃料開(kāi)關(guān)反饋的信號發(fā)送給單片機,從而實(shí)現它們二者之間的雙向通信。一般而言,單片機都會(huì )有TX與RX二個(gè)端口,可以實(shí)現同時(shí)雙向通信功能,即能實(shí)現全雙工信息。但本文所討論的燃料開(kāi)關(guān)外部?jì)H有三條線(xiàn):電源,地和信號線(xiàn),這意味著(zhù)TX/RX復用一條數據線(xiàn),至多只能實(shí)現半雙工串行通信。為了在測試系統與被測開(kāi)關(guān)之間建立起可靠的通信聯(lián)系,必須設計一個(gè)全雙工/半雙工轉換電路。本文所提出的解決方案如圖3所示。 圖3中兩個(gè)二極管起保護作用,若Fuel Switch輸入電壓過(guò)高,D1的嵌位作用會(huì )使RX端的電壓仍維持在5 V左右,若Fuel Switch輸入電壓為負,D2的嵌位作用會(huì )使TX端的電壓仍維持在0 V左右。 當測試系統的TX端發(fā)送高電平時(shí),A點(diǎn)為高電平,燃料開(kāi)關(guān)Fuel Switch信號線(xiàn)也將接收到高電平,同時(shí),測試系統的RX端也會(huì )接收到高電平。同理,當測試系統的TX端發(fā)送低電平時(shí),燃料開(kāi)關(guān)FuelSwitch信號線(xiàn)也將接收到低電平,同時(shí),測試系統的RX端也會(huì )接收到低電平。 當燃料開(kāi)關(guān)向測試系統發(fā)送應答信息時(shí),測試系統的發(fā)送端TX置高電平,則接收端RX將收到燃料開(kāi)關(guān)發(fā)送的信息。 如果燃料開(kāi)關(guān)與測試系統同時(shí)發(fā)送信息時(shí)將出錯,因此,測試系統的串口是處于全雙工狀態(tài),而燃料開(kāi)關(guān)的信號端是處于半雙工狀態(tài),這樣就實(shí)現了全雙工至半雙工的轉換。 3 測試系統控制模塊 控制模塊是整個(gè)測試系統的核心部分,它利用單片機P89LPC938來(lái)控制測試系統。 P89LPC938有最少23個(gè)I/O口,選擇片內振蕩和片內復位時(shí)可多達26個(gè)I/O口;8輸入多路10位A/D轉換器;2個(gè)模擬比較器,可選擇輸入和參考源;2個(gè)16位定時(shí)/計數器(每一個(gè)定時(shí)器均可設置為溢出時(shí)觸發(fā)相應端口輸出或作為PWM輸出)。 該模塊要完成的任務(wù)是對燃料開(kāi)關(guān)的功能進(jìn)行測試、過(guò)壓保護與監測以及頻率檢測。下面對這三個(gè)部分做詳細講述。 3.1 燃料開(kāi)關(guān)功能測試 上面提到燃料開(kāi)關(guān)的主要功能是燃料容量顯示、蜂鳴器報警,燃料切換及指示燈亮度調節等。要保證產(chǎn)品的質(zhì)量,需要對燃料開(kāi)關(guān)進(jìn)行全功能測試。 測試人員通過(guò)PC機向控制單元發(fā)送功能測試命令,所有命令組成了一個(gè)指令集,單片機根據檢測到的命令信號來(lái)判斷需要對產(chǎn)品的哪項功能進(jìn)行檢測,據此把執行該功能的命令序列發(fā)送給燃料開(kāi)關(guān)。因此,每條指令信息中要包含該項功能測試的全部信息。單片機通過(guò)通信接口的TX發(fā)送端向燃料開(kāi)關(guān)發(fā)送上述命令序列,產(chǎn)品收到有命令信號序列后,會(huì )先進(jìn)行校驗以確保收到的命令是正確的。一旦確認收到的正確的命令,開(kāi)關(guān)產(chǎn)品會(huì )反饋命令確認信號給測試系統,測試系統因此可以確定所發(fā)出的命令序列已經(jīng)被正確執行,從而實(shí)現一些有效測試。 根據設計要求,一個(gè)命令序列由四個(gè)字節組成,分別是CMD命令,數據D1,數據D2和校驗信號C。CMD命令用于標識需要執行的指令類(lèi)型,即是哪一項功能檢測,D1,D2提供執行該命令所必須的輔助數據,例如如果需要測試報警若能,數據字節可以用來(lái)指定以什么頻率、音調、音高、持續時(shí)間等參數,校驗字節用于燃料開(kāi)關(guān)確認該命令序列是否有效以免通信錯誤造成誤動(dòng)作。下面以燃料容量顯示為例,給出測試的過(guò)程: (1)測試人員從PC 機通過(guò)串口向測試系統發(fā)送燃料容量顯示檢測信號。燃料開(kāi)關(guān)是用多個(gè)LED燈指示燃料的容量,“volume”代表容量測試命令。 (2)單片機P89LPC938通過(guò)串口接收到“volume”命令,從指令集中提取相應的指令信號。圖4給出單片機向燃料開(kāi)關(guān)發(fā)出的一條燃料容量顯示指令。 CMD為0000 0001,表明此指令為燃料容量顯示功能測試指令。當對蜂鳴器報警功能進(jìn)行測試時(shí),CMD為0000 0010;對燃料切換功能進(jìn)行測試時(shí),對應的CMD 為0000 0011;對指示燈亮度調節功能進(jìn)行測試時(shí),CMD為0000 0100等,它們在開(kāi)關(guān)設計時(shí)就做出了約定。D1為0000 1000,表示對LED4進(jìn)行測試,即D1的每個(gè)位對應一個(gè)LED,置1時(shí)表示對相應的LED進(jìn)行測試。該字節對于不同的測試內容具有不同的意義,如對蜂鳴器報警功能測試時(shí),D1指示蜂鳴器報警次數,即0000 0101表示報警5次;對燃料切換功能測試時(shí)D1為0或1,分別代表一種燃料;在指示燈亮度調節功能測試時(shí)D1又被用于表示顯示元件的亮度,如1111 1111表示最大亮度。 D2通常會(huì )是對D1所指對象量的進(jìn)一步規定。對于圖4所示的燃料容量測試,D2的值為0000 1001表示LED4將閃爍9次。其他測試狀態(tài)也相似,例如對蜂鳴器報警功能而言,D2表示對蜂鳴器基頻信號的分頻數。C是校準字節,0000 0001表示對數據D1,D2做異或處理。 (3)單片機將上述命令信號發(fā)送給燃料開(kāi)關(guān)的信號端,通過(guò)校驗,燃料開(kāi)關(guān)判斷信號是否有效,如果有效就會(huì )將單片機發(fā)送來(lái)的信號進(jìn)行處理后重新發(fā)送給單片機作為測試指令已經(jīng)被確認的反饋。若無(wú)效,將放棄此次測試。 (4)測試人員判斷LED功能完好后可以通過(guò)PC機保存測試結果。 其他功能測試的實(shí)現與上述過(guò)程相仿,不再贅述。 3.2 過(guò)壓保護 燃料開(kāi)關(guān)外部需+12 V電壓供電,經(jīng)產(chǎn)品內部電源電路轉化為+5 V電壓給單片機提供電壓,因此如果其電源電路出現故障,或受到汽車(chē)內其他電器設備的電壓干擾使提供給單片機的電壓過(guò)高,或由于其他形式的制造缺陷,都有可能使被測開(kāi)關(guān)的電源異常,這會(huì )損壞燃料開(kāi)關(guān),進(jìn)而損壞與相連接的測試系統。因此,需要設計一個(gè)過(guò)壓保護與檢測電路,檢測燃料開(kāi)關(guān)內的單片機的電源電壓,當此電壓正常時(shí)(+5 V±2%),測試系統可以繼續對其檢測,但當此電壓過(guò)高,則自動(dòng)切斷燃料開(kāi)關(guān)的外部電源,達到保護燃料開(kāi)關(guān)的目的。圖5即為該保護電路。 測試系統外部由+12 V電源供電,雙二極管D1的作用是防止電壓反接;由于汽車(chē)內干擾很多,雙三極管T1構成一個(gè)鉗位電路,使T2的集電極電壓穩定在+12 V左右;Z1為電源芯片,提供+13 V電壓;T2是電源電路的開(kāi)關(guān)三極管,當基極為高電平,POWER端輸出+12 V左右,當基極為低電平,POWER端輸出為0 V;三極管Q1控制T2的基極電壓,即控制了整個(gè)電源電路的通斷,當Q1基極為高電壓,三極管Q1導通,則T2的基極為低電壓,T2斷開(kāi),POWER輸出電壓為0 V,當Q1基極提供低電壓,三極管斷開(kāi),T2基極電壓為+13 V,T2導通,則POWER輸出端提供+12 V電壓。POWER輸出端連接到燃料開(kāi)關(guān)的電源端。 將燃料開(kāi)關(guān)的電源電路輸出端引出,連接到單片機P89LPC938的AD06轉換口,不斷檢測此電壓值,由于P89LPC938的工作電壓為+3.3 V,而燃料開(kāi)關(guān)的電壓最小為0 V,最大為+11 V,所以要將此電壓用電阻分壓后再進(jìn)行轉換。這里選用100 Ω和470 Ω的電阻,則AD06端最小輸入為0 V,最大輸入為+2.1 V,不超過(guò)單片機的工作電壓,在被測為+5 V時(shí),AD06輸入端電壓為0.877 V,單片機通過(guò)比較,判斷被測電壓是否為安全電壓。若為安全電壓,單片機的I/O口P2.7置0,即保護電路的Q1基極為低電平,保護電路導通,可以正常對燃料開(kāi)關(guān)進(jìn)行測試;若被測電壓高于+5 V,單片機將P2.7腳置1,則保護電路斷開(kāi),燃料開(kāi)關(guān)立即斷電,由于通電時(shí)間較短,不會(huì )對燃料開(kāi)關(guān)造成損害。 3.3 頻率檢測 燃料開(kāi)關(guān)是以數字通信方式與其他組件進(jìn)行協(xié)同工作的,異步通信的工作頻率則取自其中單片機的內部時(shí)鐘,由于制造離散度及環(huán)境溫度等的影響,實(shí)際的工作頻率會(huì )發(fā)生漂移。為確保通信的可靠性,需要確認燃料開(kāi)關(guān)工作在適當的頻率范圍內,故需要對其實(shí)際的通信頻率檢測與確認。要測試時(shí)鐘信號的頻率,可以通過(guò)測試一定區間內脈沖的個(gè)數來(lái)實(shí)現,測試時(shí)間越長(cháng),精度越高。本測試系統用D觸發(fā)器和單片機的計數、定時(shí)功能來(lái)完成此檢測。圖6即為此頻率檢測電路。 系統選用由兩個(gè)D觸發(fā)器集成的芯片74AHC74,其工作性質(zhì)如表1所示。只用其中一個(gè)D觸發(fā)器,其時(shí)鐘脈沖由單片機P89LPC938提供,將被測時(shí)鐘TEST CLK連接到1D端,1Q端接至單片機的計數器T0端,T1作為定時(shí)器使用。 開(kāi)始測試時(shí),測試人員設置測試時(shí)間,即設置T1的計數值(取1 s),系統時(shí)鐘SCK作為D觸發(fā)器的時(shí)鐘脈沖,在SCK的上升沿檢測TEST CLK的信號,如果1Q/T0為0→1,說(shuō)明被測波形為一次上升沿,當1Q端再次檢測到0→1,即為T(mén)EST CLK一個(gè)周期。計數器T0在每個(gè)下降沿加1,計下1 s內下降沿個(gè)數即可求出T0的頻率,從而求得被測頻率。在計數的開(kāi)始或結束時(shí)可能會(huì )丟掉一個(gè)周期,會(huì )對頻率的推算帶來(lái)誤差,但由于計數的基數很大,這個(gè)誤差可以忽略不計。 4 結 語(yǔ) 運行結果表明,該系統可以準確識別PC機發(fā)出的命令,并發(fā)送給燃料開(kāi)關(guān),系統也可以接收到燃料開(kāi)關(guān)的測試結果。該測試系統人機界面友好,操作方便,檢測快速,并大大提高了測試效率與產(chǎn)品合格率。 |