汽車故障自診斷系統(tǒng)與故障診斷儀V.A.G1551研究
隨著微機在汽車上的應(yīng)用日趨廣泛,不僅提高了汽車的性能和舒適性,也使整個汽車控制系統(tǒng)變得越來越復(fù)雜。因此,用戶的汽車一旦因故障拋錨時,維修人員能否迅速找到發(fā)生故障的部位并加以排除就成為擺在汽車制造商面前的重要課題。當(dāng)今時代,汽車工業(yè)群雄鼎立,售后服務(wù)的方便和快捷必然成為競爭的焦點。這就要求在豐富汽車各種功能的同時,完善和提高故障的檢測能力,使汽車更安全、更易于維護。
1 汽車故障自診斷技術(shù)
在市場需求的推動下,汽車故障診斷技術(shù)和故障診斷設(shè)備得到了極大的發(fā)展,汽車診斷也作為一門專門技術(shù)發(fā)展起來。汽車故障自診斷裝置一般包括車載故障自診斷裝置和汽車故障診斷儀。
1.1 車載故障自診斷裝置
1976年美國通用汽車公司推出了世界上第一個電子點火控制系統(tǒng)MISAR,其中已具備了自診斷功能,用于診斷控制發(fā)動機點火時間的微機,發(fā)動機冷卻水溫度和蓄電池電壓等輸入信號,當(dāng)發(fā)生異常情況時報警指示燈亮。隨著汽車電子技術(shù)的發(fā)展,故障自診斷系統(tǒng)已能對各傳感器、執(zhí)行機構(gòu)和ECU本身進行監(jiān)測,并能判斷和區(qū)分故障類型,以故障代碼的形式存儲起來,供維修人員用專門的故障代碼讀取設(shè)備讀出。故障自診斷技術(shù)不僅應(yīng)用于發(fā)動機電子控制系統(tǒng)中,而且在自動變速箱、防抱死制動裝置、安全氣囊等系統(tǒng)的微機控制單元中廣泛使用。世界各大汽車公司都推廣了這一技術(shù),并開發(fā)出與各自車型配套的故障代碼讀出設(shè)置。這就給用戶在汽車運行中及時發(fā)現(xiàn)故障和汽車修理時故障的查詢帶來了極大的方便。
1.2 汽車故障診斷儀
汽車故障診斷儀是和車載故障自診斷系統(tǒng)配套使用的,從本質(zhì)上看,它相當(dāng)于自診斷系統(tǒng)的終端設(shè)備,起到人機交互的作用。隨著微機技術(shù)的發(fā)展,故障診斷儀能完成的功能愈來愈豐富,現(xiàn)歸納如下:
·顯示故障代碼,同時顯示發(fā)生故障的部位、檢查的方法、檢測的標(biāo)準數(shù)據(jù)等,并打印上述信息;
·清除故障代碼;
·汽車運行實時狀態(tài)數(shù)據(jù)的顯示,維修人員可對照標(biāo)準數(shù)據(jù),通過分析數(shù)據(jù)偏離標(biāo)準數(shù)據(jù)的方向和大小找出故障的原因;
·向ECU發(fā)出執(zhí)行器強制動作的命令,以查看執(zhí)行器是否工作正常;
·存儲汽車運行的狀態(tài)數(shù)據(jù)和故障信息,向個人計算機或故障診斷專家系統(tǒng)輸出。
2 故障診斷通訊接口OBD-II標(biāo)準簡介
早先的故障診斷儀都是由各個整車制造廠或儀器制造商各自開發(fā)的,診斷接口和通訊方式各不相同,不能互相通用。以診斷插座為例,福特車系有7針、25針,奔馳車系有圓形9針、38針、長方形16針等等。這種各自為政的局面不僅給維修工作帶來了麻煩,而且也增加了維修成本和人員培訓(xùn)費用,反過來也影響了產(chǎn)品在全球范圍的銷售。
自1987年起,美國加州大氣資源局(CARB)規(guī)定車載故障自診斷系統(tǒng)必須能夠?qū)ζ嚺艢庀挡考M行監(jiān)測。1994年CARB頒布了更為嚴格的廢氣排放控制法規(guī),規(guī)定與排氣相關(guān)的部件必須與被稱為萬能掃描工具的故障診斷儀進行通信。同時,美國環(huán)境廳(EPA)也采取相應(yīng)措施在全美推廣使用。在CARB的要求下,美國汽車工程學(xué)會(SAE)進一步推進了與故障診斷儀相關(guān)的標(biāo)準化工作,形成了診斷儀接口的OBD-II標(biāo)準。
OBD-II是ON-BOARD DIAGNOSITICS的縮寫,即第二代隨車電腦診斷系統(tǒng),它代表了目前大部分診斷儀的技術(shù)水平,可以說是一個實際的標(biāo)準,因而得到了汽車制造商的支持。其主要特點有:
·診斷插座統(tǒng)一為16針插座,并統(tǒng)一安裝于駕駛室儀表板下方。診斷插座如圖1所示,引腳定義如表1所示;
·串行數(shù)據(jù)通信協(xié)議采用ISO9141和SAE兩個標(biāo)準;
·具有統(tǒng)一的5位故障代碼。例如P1352,第一個英文字母代表被測控制器,如P代表發(fā)動機電腦控制器(Power),B代表車身電腦控制器(Boby),C代表底盤電腦控制器(Chassis),第二個字代表制造廠,第三個字代表SAE定義的故障范圍碼,最后兩個字代表原廠故障碼;
·具有用診斷儀直接讀取并清除故障碼的功能;
·具有行車記錄功能,能記錄車輛行駛過程中的有關(guān)數(shù)據(jù)資料;
·具有記憶并重新顯示故障信息的功能。
3 V.A.G1551功能簡介
V.A.G1551是大眾集團內(nèi)部售后服務(wù)通用的汽車電子系統(tǒng)維修、診斷儀器,可以讀取電子控制汽油噴射發(fā)動機、自動變速箱等十多個汽車電子系統(tǒng)的診斷和測試信息。比如在檢修發(fā)動機電子時,維修人員可以使用其來讀取故障代碼,同時也可以讀取發(fā)動機實時狀態(tài)參數(shù)如轉(zhuǎn)速、水溫、負荷、電壓、噴油時間等,另外還能向ECU的各執(zhí)行機構(gòu)發(fā)出強制執(zhí)行命令。操作時,將診斷儀與汽車排檔前的診斷插座連接即可。診斷插座符合OBD-II標(biāo)準,其中引腳4為車身搭鐵,引腳7為B.D.DIAKM(即K線),引腳16為蓄電池正極,其余引腳均為空。
使用時首先要輸入檢測對象的地址代碼,如發(fā)動機電子為01,然后要選擇功能,如查詢故障代碼的功能號為02。具體使用方法見相關(guān)資料。
診斷插座的引腳7應(yīng)與汽車上各電子控制系統(tǒng)的K線相連接,診斷儀一次只能與一個電子控制系統(tǒng)通信。開始時,診斷儀以廣播的方式通過K線發(fā)送識別信息(即地址碼),但只有與地址碼相對應(yīng)的電子控制系統(tǒng)才作出響應(yīng),于是診斷儀和該電子控制系統(tǒng)開始通信,其余各系統(tǒng)仍處于待機狀態(tài)。
4 V.A.G1551與發(fā)動機電子通信規(guī)律初探
由于條件限制,本文只研究了V.A.G1551與Engine Electronics的通信規(guī)律,并且ECU只限于MOTRONIC M1.54P。
4.1 利用計算機串口截碼
考慮到V.A.G1551與ECU的通信碼均為串口信號,只是與RS-232標(biāo)準串口信號的電壓不同,標(biāo)準串口信號的“1”用-12V表示,“0”用+12V表示,而K線的“0”用0~1.3V表示,“1”用12V表示,所以只要設(shè)計一塊轉(zhuǎn)換卡,把K線的串口信號轉(zhuǎn)換為標(biāo)準串口信號,即可實現(xiàn)利用計算機串口來截取V.A.G1551與ECU的通信碼,從而研究它們的通信規(guī)律。轉(zhuǎn)換卡除了能完成電平轉(zhuǎn)換功能外,工作頻率要大于10kHz,且輸入電阻要大,不至于影響V.A.G1551與ECU的通信。圖2給出計算機串口截碼原理圖。
采用轉(zhuǎn)換卡截碼的效率很高,每次截碼得到的文件也較小,大約1Kbytes多,并可以直接在編輯軟件下閱讀,使用非常方便。下面的任務(wù)就是對V.A.G1551的各個功能逐個進行截碼研究,弄清在發(fā)動機的各個工況下它們是如何進行通信的。
4.2 截碼數(shù)據(jù)分析
下面給出V.A.G1551在功能號04數(shù)據(jù)塊000進行通信時截碼得到的數(shù)據(jù),并進行簡單分析。
在V.A.G1551發(fā)出地址碼后,ECU回答控制器版本號,如表2所示。
接下來,雙方發(fā)出握手信號以不中斷聯(lián)系,并且ECU等待V.A.G1551發(fā)出指令:
03FC 0BF4 09F6 03
03FC 0CF3 09F6 03
03FC 0DF2 09F6 03
V.A.G1551發(fā)出功能04-000指令,ECU回答相應(yīng)信息,并且雙方不斷問答,直到用戶輸入“→”:
03FC 0EF1 11EE 03
0DF2 0FF0 F40B 659A A25D C837 1DE2 807F 5BA4 02FD 00FF 07F8 1FE0 03
03FC 10EF 11EE 03
0DF2 11EE F40B 659A A25D C837 1DE2 807F 5BA4 02FD 00FF 07F8 1EE1 03
03FC 12ED 11EE 03
0DF2 13EC F40B 659A A25D C837 1DE2 807F 5BA4 02FD 00FF 07F8 1EE1 03
接下來雙方又進行握手等待,直到用戶發(fā)出結(jié)束指令,通信結(jié)束:
03FC 14EB 09F6 03
03FC 15EA 09F6 03
03FC 16E9 09F6 03
03FC 17E8 09F6 03
03FC 18E7 06F9 03
在這些數(shù)據(jù)中,還可以發(fā)現(xiàn)一個特殊的碼子,即每一行的第二個數(shù)據(jù),經(jīng)分析,這是一個記數(shù)碼,通信雙方每發(fā)出一次信息均加一。并且可以看到,在功能號04數(shù)據(jù)塊000時V.A.G1551發(fā)出的命令為11,結(jié)束指令為06。雙方采用的校驗方式為反碼,即接收方發(fā)出接收碼的反碼,發(fā)送方收到反碼后就認為對方接收正確(如V.A.G1551發(fā)06,ECU答F9)。
經(jīng)過多次實驗,可以獲知V.A.G1551在檢測發(fā)動機電子的各個功能(包括讀故障碼和消除故障碼)時的通信碼,這些通信碼為研制與V.A.G1551兼容的汽車故障診斷儀打下堅實的基礎(chǔ)。
V.A.G1551除了可以讀取故障代碼外,還可以讀取發(fā)動機實時狀態(tài)參數(shù)如轉(zhuǎn)速、水溫、負荷、電壓、噴油時間等,經(jīng)過數(shù)據(jù)分析,V.A.G1551并不是把這些參數(shù)直接顯示出來,而是把這些參數(shù)的碼子經(jīng)過某種轉(zhuǎn)換再顯示出來。
5 開發(fā)與V.A.G1551兼容的計算機汽車診斷系統(tǒng)
V.A.G1551是德國制造的儀器,價格昂貴,并且有部分V.A.G1551是德文顯示,用起來多有不便,因此有必要開發(fā)與其兼容的汽車診斷儀。通用的計算機系統(tǒng)有標(biāo)準的串口,且編程余地大、易調(diào)試、所以可先開發(fā)計算機診斷系統(tǒng)。
5.1 硬件部分
同樣,計算機系統(tǒng)的串口與V.A.G1551的串口不兼容,因此需要設(shè)計一塊適配卡,與上述轉(zhuǎn)換卡不同的是,適配卡的數(shù)據(jù)流是雙向的,但因為通信是半雙工的,所以適配卡上應(yīng)加上一個模擬開關(guān),以隔離雙方數(shù)據(jù)。圖3給出適配卡原理圖。
當(dāng)計算機發(fā)出數(shù)據(jù)時,模擬開關(guān)接通,數(shù)據(jù)通過K線發(fā)給ECU,同時數(shù)據(jù)又發(fā)回給計算機,當(dāng)計算機接收到數(shù)據(jù)后可判定數(shù)據(jù)已發(fā)完,此時應(yīng)立刻關(guān)閉模擬開關(guān),等待ECU回答。在這個過程中模擬開關(guān)的關(guān)閉時間是個關(guān)鍵,若模擬開關(guān)關(guān)早了(即計算機串碼還未發(fā)完)則ECU接收的數(shù)據(jù)會出錯,若模擬開關(guān)關(guān)晚了(即ECU已發(fā)出數(shù)據(jù))則會影響計算機接收數(shù)據(jù)。
5.2 軟件部分
軟件采用模塊化設(shè)計,即把主程序編成一個模塊,V.A.G1551每一個功能都編成一個模塊,每個模塊分別匯編后再連接成可執(zhí)行文件。采用模塊程序設(shè)計有以下一些優(yōu)點:
(1)每個模塊任務(wù)明確,便于理解;
(2)單個模塊易于編寫和調(diào)試;
(3)便于程序的維護和修改;
(4)要增加診斷儀的功能,只要增加相應(yīng)的模塊即可。
編制程序的時候可采用逐漸增加功能的方法,即先編主模塊和第一個功能模塊,調(diào)試成功后連上第二個功能模塊再調(diào)試,直到全部完成。
通過一段時間的調(diào)試,筆者已初步開發(fā)完成與V.A.G1551兼容的計算機診斷系統(tǒng),當(dāng)然目前只限于診斷M1.54P的發(fā)動機電子。圖4給出軟件的主框圖。
本文介紹的方法是通過研究V.A.G1551與ECU的外部通信規(guī)律來開發(fā)與V.A.G1551兼容的汽車故障診斷儀,應(yīng)該說在主要功能上能與V.A.G1551保持一致,但在細節(jié)問題上還有差異。并且本文尚未涉及到另一個很重要的方面,就是V.A.G1551與ECU是如何解決誤碼問題的,也就是說當(dāng)V.A.G1551收到ECU的確認碼是錯誤的時候會做何動作。這些問題還等待我們?nèi)プ鬟M一步研究。