車載診斷系統(tǒng)(On-Board Diagnostics,OBD)具有識別可能存在故障的區(qū)域的功能,并以故障代碼的方式將該信息儲存在ECU(電子控制單元)的存儲器內(nèi),通過OBD的故障診斷儀可以將存儲于車內(nèi)ECU的故障代碼及相關(guān)信息讀取出來,以方便車輛管理和維修使用。OBD系統(tǒng)最初是為了控制日益嚴重的汽車污染問題而提出的,起源于1982年CARB制定的排放法規(guī),隨后在1996年實施新的OBD Ⅱ要求。歐共體在2001年也要求歐洲各國汽車制造商生產(chǎn)的轎車都相應配置歐洲電控汽車微機故障診斷系統(tǒng)(European On-board Diagnosis System,EOBD)。在我國,2005年4月國家環(huán)境保護總局和國家質(zhì)量監(jiān)督檢驗檢疫總局聯(lián)合頒布了GB18352.3-2005((輕型車輛污染物排放限值及測量方法(中國Ⅲ、Ⅳ階段)》,簡稱“國Ⅲ、Ⅳ”。根據(jù)國Ⅲ要求,2008年7月1日起第一類汽油車(座位總數(shù)不超過6座,且最大總質(zhì)量不超過2 500 kg的M1類車輛)要求裝有OBD系統(tǒng),在用車符合性檢查同步執(zhí)行。
本文根據(jù)GB18352.3對OBD系統(tǒng)及故障診斷裝置的要求,在充分研究ISO和SAE有關(guān)的OBD標準及通信協(xié)議的基礎(chǔ)上,設計了一種基于瑞薩公司的R8C微控制器——R5F21237的汽車OBD通用故障診斷儀。該診斷儀可兼容所有GB18352.3規(guī)定的通信協(xié)議,可以診斷ISO 15031-5所規(guī)定的所有診斷服務,并具有成本低和攜帶方便的特點。
1 汽車OBD通用故障診斷儀的要求
根據(jù)GB18352.3的要求,與車輛OBD系統(tǒng)通信的外部診斷設備必須符合ISO 15031-4“道路車輛——車輛與排放相關(guān)的外部診斷設備之間的通信第3部分:外部故障診斷設備的要求”的有關(guān)要求。這些要求主要包括了統(tǒng)一診斷連接器,兼容的通信協(xié)議,標準的故障代碼和診斷服務范圍四個方面。
1.1 診斷連接器
OBD通用故障診斷儀與車輛之間的連接器使用統(tǒng)一的診斷連接器,其引腳配置定義如圖1所示,其中沒有定義的引腳可以保留給診斷儀以后擴展使用。
1.2 通信協(xié)議
OBD通用故障診斷儀與車輛之間的通信系統(tǒng)可以使用的通信協(xié)議有ISO 9141,SAE J1850 41,6 Kb/sPWM(脈寬調(diào)制),SAEJ1850 10,4 Kb/s VPW(可變脈寬),ISO 14230(KW 2000),ISO 15765-4(CAN),SAE J1939-73(CAN)。根據(jù)SAE J1978或ISO15031-5要求,任何車輛只允許使用一種通信協(xié)議,為了兼容各種車型的OBD系統(tǒng),汽車通用故障診斷儀必須支持以上所有協(xié)議。
1.3 診斷服務范圍
汽車通用故障診斷儀診斷內(nèi)容包括九個服務模式,詳細內(nèi)容如下:
讀取當前動力系統(tǒng)診斷數(shù)據(jù) 目的是獲得排放相關(guān)的數(shù)據(jù)值,包括模擬輸入、輸出,數(shù)字輸入、輸出和系統(tǒng)狀態(tài)信息。
讀取系統(tǒng)凍結(jié)幀 目的是收集動力系統(tǒng)排放相關(guān)的凍結(jié)幀以及制造商的特殊需要的其他系統(tǒng)凍結(jié)幀。讀取故障診斷代碼 汽車通用故障診斷儀獲得車輛各系統(tǒng)的常規(guī)故障診斷代碼。
清除/重置排放相關(guān)的診斷信息 汽車通用故障診斷儀提供清除車輛各ECUs故障診斷信息的一種方法。這些故障診斷信息包括:診斷故障代碼的數(shù)量、診斷故障代碼、凍結(jié)幀數(shù)據(jù)的故障代碼、凍結(jié)幀數(shù)據(jù)、系統(tǒng)監(jiān)控測試的狀態(tài)、車載監(jiān)控測試結(jié)果、MIL激活時行駛的里程、DTC清除后預熱的次數(shù)、DTC清除后的里程、MIL激活時發(fā)動機運轉(zhuǎn)的時間、診斷故障代碼清除后的時間以及其他制造商定義的其他記錄信息。
讀取氧傳感器監(jiān)控測試結(jié)果 汽車通用故障診斷儀獲得車載氧傳感器監(jiān)控測試結(jié)果。
讀取車載的特殊監(jiān)控系統(tǒng)的監(jiān)控測試結(jié)果 汽車通用故障診斷儀獲得特殊部件/系統(tǒng)的非連續(xù)監(jiān)控的車載診斷監(jiān)控測試結(jié)果。例如催化器的監(jiān)控和蒸發(fā)監(jiān)控系統(tǒng)等。
讀取在當前或最近的駕駛期間探測到的與排放相關(guān)的診斷故障代碼 汽車通用故障診斷儀獲得在當前或最近的駕駛期間探測到診斷故障代碼。目的是幫助技術(shù)服務人員在車輛維修后,或清除診斷信息之后,通過單個駕駛周期獲得測試維修的效果。
讀取隨車系統(tǒng)、測試或部件的控制 目的是允許汽車通用故障診斷儀能夠控制隨車系統(tǒng)、測試或部件的操作。
讀取車輛信息 汽車通用故障診斷儀可以請求說明車輛的車輛信息,比如車輛身份識別碼和校準ID等。
1.4 診斷故障代碼(DTCs_Diagnostic Trouble Code)的顯示
通用故障診斷儀讀取的OBD診斷故障代碼由兩字節(jié)組成,在顯示時要按照1個字母+1位十進制數(shù)字+3位十六進制數(shù)字的標準顯示方式顯示。讀取的兩字節(jié)數(shù)據(jù)到標準顯示方式的轉(zhuǎn)換關(guān)系如圖2所示。DTCs按照開頭的字母一共分為四類,其中B表示車身類DTCs,C表示底盤類DTCs,P表示動力類DTCs,U表示網(wǎng)絡類DTCs。
2 汽車通用故障診斷儀的設計
2.1 系統(tǒng)的硬件設計
本設計的硬件部分主要分為四個模塊,硬件結(jié)構(gòu)圖如圖3所示。
單片機模塊是整個硬件系統(tǒng)的核心部分,包括了一塊瑞薩R8C系列的單片機R5F21237JPF和一些外圍電路,承擔著運算和處理信號的任務。這個模塊與鍵盤模塊、液晶顯示模塊以及通信模塊分別連接,與這三個模塊進行信息交互。
R5F21237JPF屬于瑞薩公司的R8C/Tiny系列的微控制器,本設計使用了R5F21237JPF的2個8位多功能定時器進行系統(tǒng)的時序控制;使用2個串口驅(qū)動MC33390和ST-L9637,及使用其CAN控制器驅(qū)動TJA1050進行通信;使用了11個輸入/輸出端口連接鍵盤模塊;2 KB RAM及64 KB的程序閃存編寫嵌入式程序,使用并口2與LCD進行通信。
液晶顯示屏采用了COMJ4×8C,這是一種128×64的圖形點陣液晶屏,可顯示8×4個(16×16點陣)漢字,也可完成圖形、字符的顯示;它內(nèi)部有顯示數(shù)據(jù)鎖存器,還具有簡單的操作指令。這個模塊的主要功能是顯示功能菜單、故障名稱等內(nèi)容。
鍵盤模塊核心是3×8的小鍵盤陣列,3列與8行分別通過11個引腳與單片機連接,鍵盤按鍵包括10個數(shù)字鍵、換頁鍵、換行鍵、確定和取消鍵等。通信模塊是診斷儀與車輛ECU通信的接口,主要由ST-L9637,MC33390和TJA1050組成,其中ST-L9637實現(xiàn)ISO 9141,ISO 14230(KW 2000)協(xié)議;MC33390實現(xiàn)SAE J1850 41,6 Kb/s PWM,SAEJ1850 10,4 Kb/s VPW協(xié)議;TJA1050實現(xiàn)ISO 15765-4(CAN),SAE J1939-73(CAN)協(xié)議。車輛ECU就是通過這些芯片與單片機進行連接的,這部分電路略為復雜,作用也非常重要,是診斷儀能夠滿足ISO15031及SAEJ1978要求所有通信協(xié)議的關(guān)鍵。
2.2 軟件設計
本設計的軟件結(jié)構(gòu)圖如圖4所示。
(1)啟動診斷儀
當故障診斷接通車輛診斷接口后,將車輛點火鑰匙置于ON位置,車輛對診斷儀進行供電。診斷儀上電后在R5F21237JPF控制下開始設置診斷儀的各項初始參數(shù)。
(2)確認診斷協(xié)議
故障診斷儀初始化結(jié)束后開始向車輛診斷接口發(fā)送協(xié)議確認數(shù)據(jù)。故障診斷儀向符合《SAE J1962車輛故障診斷接口》標準的連接器的各診斷協(xié)議(包括ISO9141,ISO 14230(KW 2000),SAE J1850 41,6 Kb/sPWM,SAE J1850 10,4 Kb/s VPW,ISO 157654,SAE J193973)的引腳逐次發(fā)送協(xié)議確認命令。如果在某確認中接收到正確的應答,則確認通信使用該協(xié)議;如果發(fā)送某種協(xié)議的確認命令沒有應答或應答為無,則故障診斷儀發(fā)送下一個協(xié)議的確認命令;如果連續(xù)5次循環(huán)發(fā)送各協(xié)議的確認命令后依然沒有得到正確應答,故障診斷儀發(fā)出錯誤警告。
(3)鍵盤掃描
本設計中鍵盤掃描采用的是定時掃描的方式,每50 ms掃描一次鍵盤,若檢測到有鍵按下,則計算操作是顯示操作還是選擇診斷的服務類型的操作。
(4)診斷服務
如果通過鍵盤掃描程序確認故障診斷儀要求進行的服務模式,則發(fā)送該服務的請求并讀取相應的響應信息。診斷服務在本設計中起著至關(guān)重要的作用,它實現(xiàn)了診斷儀和ECU之間的信息交互。
(5)顯示內(nèi)容
顯示模塊包含了所有跟液晶顯示有關(guān)的子程序,顯示菜單,顯示故障內(nèi)容以及顯示警告信息等。通過按鍵操作,選擇顯示菜單是用于選中診斷儀的操作服務以及選中顯示內(nèi)容;顯示故障內(nèi)容時若超過一頁,可以通過“上一頁”、“下一頁”鍵來翻頁,按“取消”鍵則返回上一級目錄;警告信息顯示是在確認通信協(xié)議失敗或進行診斷服務失敗時顯示相應的警告信息,警告信息在發(fā)生操作失敗時自動顯示。
3 結(jié) 語
本文按照GB18352.3-2005的要求闡述了汽車OBD通用故障診斷的基本要求,介紹了一種基于瑞薩R8C單片機的汽車通用故障診斷儀相關(guān)硬件和軟件的設計方案。該方案的優(yōu)勢在于:可以兼容各種OBD的診斷通信協(xié)議,中文顯示界面,成本低和操作攜帶方便的特點。經(jīng)在哈飛賽豹V、比亞迪F6和雪佛蘭科魯茲等車型上測試證明:該診斷儀工作穩(wěn)定,操作方便,抗干擾能力強。隨著我國OBD的有關(guān)法規(guī)要求的逐步實施,該診斷儀軟硬件設計會有廣闊的應用前景。