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