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