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