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