讀OBD2故障碼 - 汽車OBD2診斷程序開發
? ? 讀故障碼是診斷儀最常用的功能,這里只是簡單的說明一下,詳細內容請查閱ISO15031-5文本
? ?一般情況下可直接用MODE 03讀取當前故障碼,但這里我們
先用MODE 01 PID 01讀取現在有多少個故障碼存在ECU內
? ?? ?
? ?? ? >01 01
? ?? ???41 01 81 07 65 04
? ?? ? >
? ?? ?41 01 前面已說明是對MODE 01 PID 01的響應代碼,
? ?? ?81? ?代表當前的故障碼數,這個10進制數值是129,不是代表有129個故障碼,
? ?? ?? ?? ?81它的最高位MSB 代表是否點亮故障指燈,低7位代表了故障碼的數量
? ?? ?? ???16進制算法應是 0x81 & 0x7F = 0x01 所以是一個故障碼。也可是10進制數值直接減128
? ?? ?? ?? ?即:129-128=1;
? ?? ?
? ?? ? 所以81代表了,故障燈點亮,有一個故障碼,81后面的數據請參考標準文本,和讀故障碼沒有關系。
在這個例子中,TL718只返回了一行數據,但是如果有另外的控制模塊也附合響應條件,有可能返回多行信息。
比喻常見的:發動機電腦和自動波箱控制電腦同時返回信息,就會有2行信息,要確認是哪一個電腦返回的是哪一行
信息,必須設置返回OBD消息保的三字節頭(AT H1內部命令打開),查看消息頭字節中的第三個字節(源地址)確定
是那個電腦模塊返回的消息包。這里先不討論,在另外章節來詳細討論,多消息包數據。
現在已經讀了有多少個故障碼,下一步讀實際的故障碼是什么。
? ?? ?? ? 用OBD2診斷模式MODE 03讀取:只要簡單地向TL718發送03
? ?? ?? ???
? ?? ???>03
? ?? ?? ?可能的返回信息數據如下:
? ?? ?? ?43 01 33 00 00 00 00
? ?? ?? ?
? ?? ???注:如果故障碼數量多于3或多個電腦模塊,會返回多行消息包,
? ?? ?? ???
? ???43是對MODE 03 請求的響應(03+40),另外的6個字節是故障代碼,2個字節代表一個故障碼。
? ???這里有3個代表故障碼的數據:0133 0000 0000,“0000”是ISO15031在這個模式下返回的填充數據
? ???不是實際的故障碼。
? ???
? ? 故障碼含義:ISO定義:二字節故障碼(例0133)的第一個數如下表所示??現在來分析上面的故障碼 0133:
? ???第一個數字“0”按上表用“P0”代替。0133就代表是故障碼P0133。
同樣如果收到的是D016則,“D”用U1代替,則故障代碼就時U1016;
如果收到是1131則代換后,故障代碼是P1131。
???注:ISO15765 CAN故障碼消息包和J11850、ISO9141 ISO14230返回的信息有稍不同,
? ?? ? 編寫程序時要注意,ISO 15765 返回的信息第二個數據代表的是電腦模塊有多少個故障碼(DTCs),
? ?? ? 詳細看ISO15031-5內定義。
清除故障代碼
? ? OBD2診斷模式MODE04 是復位ECU的一個功能,同時也清觸故障代碼;執行后ECU將:
? ?? ?? ???1、復位故障代碼的數量為0
? ?? ?? ???2、刪除所有的故障代碼
? ?? ?? ???3、刪除存儲的凍結楨數據
? ?? ?? ???4、刪除所有O2傳感器聽測試數據
? ?? ?? ???5、刪除模式MODE06 和 MODE 07的數據信息
? ???復位后你的汽車由于復位了一些數據,短時間內可能會引起工作異常。為了防止不小心復位ECU,
? ? ISO15031-5要求所有的掃描工具(診斷儀)在發送MODE 04指令前,必須加一個“確認信息”。
? ? TL718不監視發送信息的內容是否是復位指令。
? ?? ???>04
? ?? ?? ?44
? ?? ???>
? ???發送04指令后,車輛ECU接收成攻,將立即復位以上內容,
? ???并發回一個MODE 04的響應信息44(04+40)。
一般的流程:
結束語
-
- ISO14230 ISO9141要求通訊前的初始化過程、及連接后要求有一個周期性的握手信號,這些TL718都已經自動完成,OBD2標準的診斷程序都不用更改。怎樣更改這些參數:
-
- 看完這些內容,就可開始你的OBD2開發。實際上廠商專用的診斷功能程序差不多也是這么簡單。為什么叫專用,是因為它沒有公開應用層的協議。開發時比我們OBD2開發多少一個過程。就是怎樣用TL718從專用的設備中讀得專用的診斷指令(也就是應用層協議)。在開發專用功能的診斷儀中討論這個問題。
- OBD2其他的診斷模式這里不再說明,診斷方法都是一樣的。詳細內容查看ISO15031-5或SAE J1979。
- 多試多做你會發現開發診斷程序原來如此簡單。
更多有關OBD精彩內容請點擊:http://www.1cnz.cn/zhuanti/obd.html;
?
- 第 1 頁:汽車OBD2診斷程序開發
- 第 2 頁:TL718的OBD命令
- 第 3 頁:讀OBD2故障碼
本文導航
非常好我支持^.^
(89) 50%
不好我反對
(89) 50%
相關閱讀:
- [電子說] 多種角度來了解OBD2 2023-09-04
- [電子說] KUKA C2數字電子伺服設備及分解器數字轉換器診斷程序 2021-01-03
- [人工智能] 新的人工智能診斷程序可以預測是否感染新冠肺炎 2020-05-26
- [電子說] 怎樣制作Arduino OBD2掃描儀 2019-11-14
- [通信設計應用] MAXQ1103破壞性復位診斷程序 2009-10-23
( 發表人:zhangjin )