當前位置:編程學習大全網 - 編程語言 - 汽車車身控制器的開發和測試?

汽車車身控制器的開發和測試?

隨著微機在汽車上的應用日趨廣泛,不僅提高了汽車的性能和舒適性,也使整個汽車控制系統變得越來越復雜。因此,用戶的汽車壹旦因故障拋錨時,維修人員能否迅速找到發生故障的部位並加以排除就成為擺在汽車制造商面前的重要課題。當今時代,汽車工業群雄鼎立,售後服務的方便和快捷必然成為競爭的焦點。這就要求在豐富汽車各種功能的同時,完善和提高故障的檢測能力,使汽車更安全、更易於維護。

1 汽車故障自診斷技術

在市場需求的推動下,汽車故障診斷技術和故障診斷設備得到了極大的發展,汽車診斷也作為壹門專門技術發展起來。汽車故障自診斷裝置壹般包括車載故障自診斷裝置和汽車故障診斷儀。

1.1 車載故障自診斷裝置

1976年美國通用汽車公司推出了世界上第壹個電子點火控制系統MISAR,其中已具備了自診斷功能,用於診斷控制發動機點火時間的微機,發動機冷卻水溫度和蓄電池電壓等輸入信號,當發生異常情況時報警指示燈亮。隨著汽車電子技術的發展,故障自診斷系統已能對各傳感器、執行機構和ECU本身進行監測,並能判斷和區分故障類型,以故障代碼的形式存儲起來,供維修人員用專門的故障代碼讀取設備讀出。故障自診斷技術不僅應用於發動機電子控制系統中,而且在自動變速箱、防抱死制動裝置、安全氣囊等系統的微機控制單元中廣泛使用。世界各大汽車公司都推廣了這壹技術,並開發出與各自車型配套的故障代碼讀出設置。這就給用戶在汽車運行中及時發現故障和汽車修理時故障的查詢帶來了極大的方便。

1.2 汽車故障診斷儀

汽車故障診斷儀是和車載故障自診斷系統配套使用的,從本質上看,它相當於自診斷系統的終端設備,起到人機交互的作用。隨著微機技術的發展,故障診斷儀能完成的功能愈來愈豐富,現歸納如下:

·顯示故障代碼,同時顯示發生故障的部位、檢查的方法、檢測的標準數據等,並打印上述信息;

· 清除故障代碼;

·汽車運行實時狀態數據的顯示,維修人員可對照標準數據,通過分析數據偏離標準數據的方向和大小找出故障的原因;

·向ECU發出執行器強制動作的命令,以查看執行器是否工作正常;

·存儲汽車運行的狀態數據和故障信息,向個人計算機或故障診斷專家系統輸出。

2 故障診斷通訊接口OBD-II標準簡介

早先的故障診斷儀都是由各個整車制造廠或儀器制造商各自開發的,診斷接口和通訊方式各不相同,不能互相通用。以診斷插座為例,福特車系有7針、25針,奔馳車系有圓形9針、38針、長方形16針等等。這種各自為政的局面不僅給維修工作帶來了麻煩,而且也增加了維修成本和人員培訓費用,反過來也影響了產品在全球範圍的銷售。

自1987年起,美國加州大氣資源局(CARB)規定車載故障自診斷系統必須能夠對汽車排氣系部件進行監測。1994年CARB頒布了更為嚴格的廢氣排放控制法規,規定與排氣相關的部件必須與被稱為萬能掃描工具的故障診斷儀進行通信。同時,美國環境廳(EPA)也采取相應措施在全美推廣使用。在CARB的要求下,美國汽車工程學會(SAE)進壹步推進了與故障診斷儀相關的標準化工作,形成了診斷儀接口的OBD-II標準。

OBD-II是ON-BOARD DIAGNOSITICS的縮寫,即第二代隨車電腦診斷系統,它代表了目前大部分診斷儀的技術水平,可以說是壹個實際的標準,因而得到了汽車制造商的支持。其主要特點有:

·診斷插座統壹為16針插座,並統壹安裝於駕駛室儀表板下方。診斷插座如圖1所示,引腳定義如表1所示;

·串行數據通信協議采用IS09141和SAE兩個標準;

·具有統壹的5位故障代碼。例如P1352,第壹個英文字母代表被測控制器,如P代表發動機電腦控制器(Power),B代表車身電腦控制器(Boby),C代表底盤電腦控制器(Chassis),第二個字代表制造廠,第三個字代表SAE定義的故障範圍碼,最後兩個字代表原廠故障碼;

·具有用診斷儀直接讀取並清除故障碼的功能;

·具有行車記錄功能,能記錄車輛行駛過程中的有關數據資料;

·具有記憶並重新顯示故障信息的功能。

3 V.A.G1551功能簡介

V.A.G1551是大眾集團內部售後服務通用的汽車電子系統維修、診斷儀器,可以讀取電子控制汽油噴射發動機、自動變速箱等十多個汽車電子系統的診斷和測試信息。比如在檢修發動機電子時,維修人員可以使用其來讀取故障代碼,同時也可以讀取發動機實時狀態參數如轉速、水溫、負荷、電壓、噴油時間等,另外還能向ECU的各執行機構發出強制執行命令。操作時,將診斷儀與汽車排檔前的診斷插座連接即可。診斷插座符合OBD-II標準,其中引腳4為車身搭鐵,引腳 7為B.D.DIAKM?即K線),引腳16為蓄電池正極,其余引腳均為空。

使用時首先要輸入檢測對象的地址代碼,如發動機電子為01,然後要選擇功能,如查詢故障代碼的功能號為02。具體使用方法見相關資料。

診斷插座的引腳7應與汽車上各電子控制系統的K線相連接,診斷儀壹次只能與壹個電子控制系統通信。開始時,診斷儀以廣播的方式通過K線發送識別信息(即地址碼),但只有與地址碼相對應的電子控制系統才作出響應,於是診斷儀和該電子控制系統開始通信,其余各系統仍處於待機狀態。

4 V.A.G1551與發動機電子通信規律初探

由於條件限制,本文只研究了V.A.G1551與Engine Electronics的通信規律,並且ECU只限於MOTRONIC M1.54P。

4.1 利用計算機串口截碼

考慮到V.A.G1551與ECU的通信碼均為串口信號,只是與RS-232標準串口信號的電壓不同,標準串口信號的“1”用-12V表示,“0”用+ 12V表示,而K線的“0”用0~1.3V表示,“1”用12V表示,所以只要設計壹塊轉換卡,把K線的串口信號轉換為標準串口信號,即可實現利用計算機串口來截取V.A.G1551與ECU的通信碼,從而研究它們的通信規律。轉換卡除了能完成電平轉換功能外,工作頻率要大於10kHz,且輸入電阻要大,不至於影響V.A.G1551與ECU的通信。圖2給出計算機串口截碼原理圖。

采用轉換卡截碼的效率很高,每次截碼得到的文件也較小,大約1Kbytes多,並可以直接在編輯軟件下閱讀,使用非常方便。下面的任務就是對V.A.G1551的各個功能逐個進行截碼研究,弄清在發動機的各個工況下它們是如何進行通信的。

4.2 截碼數據分析

下面給出V.A.G1551在功能號04數據塊000進行通信時截碼得到的數據,並進行簡單分析。

在V.A.G1551發出地址碼後,ECU回答控制器版本號,如表2所示。

接下來,雙方發出握手信號以不中斷聯系,並且ECU等待V.A.G1551發出指令:

03FC OBF4 09F6 03

03FC 0CF3 09F6 03

03FC 0DF2 09F6 03

V.A.G1551發出功能04-000指令,ECU回答相應信息,並且雙方不斷問答,直到用戶輸入“→”:

03FC CEF1 11EE 03

0DF2 0FF0 F40B 659A A25D C837 1DE2 807F SBA4 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

接下來雙方又進行握手等待,直到用戶發出結束指令,通信結束:

03FC 14EB 09F6 03

03FC 15EA 09F6 03

03FC 16E9 09F6 03

03FC 17EB 09F6 03

03FC 18E7 06F9 03

在這些數據中,還可以發現壹個特殊的碼子,即每壹行的第二個數據,經分析,這是壹個記數碼,通信雙方每發出壹次信息均加壹。並且可以看到,在功能號04數據塊000時V.A.G1551發出的命令為11,結束指令為06。雙方采用的校驗方式為反碼,即接收方發出接收碼的反碼,發送方收到反碼後就認為對方接收正確(如V.A.G1551發06,ECU答F9)。

經過多次實驗,可以獲知V.A.G1551在檢測發動機電子的各個功能(包括讀故障碼和消除故障碼)時的通信碼,這些通信碼為研制與V.A.G1551兼容的汽車故障診斷儀打下堅實的基礎。

V.A.G1551除了可以讀取故障代碼外,還可以讀取發動機實時狀態參數如轉速、水溫、負荷、電壓、噴油時間等,經過數據分析,V.A.G1551並不是把這些參數直接顯示出來,而是把這些參數的碼子經過某種轉換再顯示出來。

5 開發與V.A.G1551兼容的計算機汽車診斷系統

V.A.G1551是德國制造的儀器,價格昂貴,並且有部分V.A.G1551是德文顯示,用起來多有不便,因此有必要開發與其兼容的汽車診斷儀。通用的計算機系統有標準的串口,且編程余地大、易調試、所以可先開發計算機診斷系統。

5.1 硬件部分

同樣,計算機系統的串口與V.A.G1551的串口不兼容,因此需要設計壹塊適配卡,與上述轉換卡不同的是,適配卡的數據流是雙向的,但因為通信是半雙工的,所以適配卡上應加上壹個模擬開關,以隔離雙方數據。圖3給出適配卡原理圖。

當計算機發出數據時,模擬開關接通,數據通過K線發給ECU,同時數據又發回給計算機,當計算機接收到數據後可判定數據已發完,此時應立刻關閉模擬開關,等待ECU回答。在這個過程中模擬開關的關閉時間是個關鍵,若模擬開關關早了(即計算機串碼還未發完)則ECU接收的數據會出錯,若模擬開關關晚了(即 ECU已發出數據)則會影響計算機接收數據。

5.2 軟件部分

軟件采用模塊化設計,即把主程序編成壹個模塊,V.A.G1551每壹個功能都編成壹個模塊,每個模塊分別匯編後再連接成可執行文件。采用模塊程序設計有以下壹些優點:

(1)每個模塊任務明確,便於理解;

(2)單個模塊易於編寫和調試;

(3)便於程序和維護的修改;

(4)要增加診斷的功能,只要增加相應的模式塊即可。

編制程序的時候可采用逐漸增加功能的方法,即先編主模塊和第壹個功能模塊,調試成功後連上第二個功能模塊再調試,直到全部完。

通過壹段時間的調試,筆者已初步開發完成與V.A.G1551兼容的計算機診斷系統,當然目前只限於診斷M1.54P的發動機電子。圖4給出軟件的主框圖。

本文介紹的方法是通過研究V.A.G1551與ECU的外部通信規律來開發與V.A.G1551兼容的汽車故障診斷儀,應該說在主要功能上能與 V.A.G1551保持壹致,但在細節問題上還有差異。並且本文尚未涉及到另壹個很重要的方面,就是V.A.G1551與ECU的確認碼問題的,也就是說當V.A.G1551收到ECU的確認碼是錯誤的時候會做何動作畫。這些問題還等待我們去作進壹步研究。

  • 上一篇:數控系統加減速控制功能對精度的影響
  • 下一篇:有哪些好用的APP?2018年最受歡迎的十大APP
  • copyright 2024編程學習大全網