OBD-II & DTC Diagnostics Guide
從故障碼結構到 CAN 通訊,建立正確的車載診斷流程
OBD-II 是車輛與外部診斷設備交換資訊的標準化架構;DTC 則是 ECU 偵測異常後儲存的故障診斷碼。讀取 DTC 可以縮小檢查範圍,但不能直接證明代碼名稱中的零件已經損壞。
本文將依序說明 DTC 五碼結構、P/B/C/U 類別、通用碼與車廠自訂碼差異,以及 OBD-II 與 CAN 通訊的關係;最後再解析如何搭配 Kvaser CAN 介面、CanKing 與 CANlib SDK,進行 ECU 通訊分析及診斷功能開發。
Basic Concepts
OBD-II 與 DTC 故障診斷碼是什麼?
OBD-II(On-Board Diagnostics II)是一套標準化的車載診斷架構,讓外部設備取得排放相關的車輛狀態與診斷資訊;DTC(Diagnostic Trouble Code)則是控制單元偵測到異常條件後儲存的故障診斷碼。
車上的引擎控制模組、變速箱控制模組與其他電子控制單元會持續監看感測器、致動器、電路及通訊狀態。當監測條件符合故障判定邏輯時,控制單元可能儲存待確認或已確認的 DTC,並視故障類型點亮故障指示燈。
OBD-II:診斷架構
定義外部診斷設備如何連接車輛,以及如何請求、交換與呈現標準化診斷資料。
DTC:異常線索
以字母與數字組成的代碼,指出偵測異常的系統、範圍或條件,但不是完整的維修結論。
診斷資料:驗證依據
凍結畫面、即時數據、監測狀態與控制單元資訊,可協助工程師理解 DTC 出現時的運轉條件。
Code Structure
OBD-II 故障診斷碼怎麼看?
標準 DTC 通常由一個英文字母與四個數字組成。第一碼指出車輛系統,第二碼區分標準化或製造商定義範圍,後三碼則進一步描述子系統與特定異常項目。
P車輛系統:動力系統
0代碼家族:標準化代碼
1子系統:燃油與空氣計量範圍
12特定異常:進氣溫度感測器電路低輸入
- 先看第一碼:確認故障屬於動力、車身、底盤或車載網路通訊系統。
- 再看第二碼:判斷代碼屬於標準化範圍或需查閱車廠專用資料;部分數字的分類會依代碼家族而異。
- 判讀後三碼:確認子系統及特定異常,但仍應以適用車型的原廠維修資料及診斷程序為準。
DTC 格式與標準化描述可參考 ISO 15031-6 車輛故障診斷碼定義。
DTC Categories
P、B、C、U 故障碼有什麼差異?
DTC 的第一個英文字母用來區分主要系統:P 代表動力系統、B 代表車身、C 代表底盤,U 則代表車載網路通訊。這項分類只能縮小範圍,不能單獨判斷故障根因。
| 代碼 | 英文名稱 | 主要系統 | 常見範圍 |
|---|---|---|---|
| P | Powertrain | 動力系統 | 引擎、變速箱、燃油與排放控制 |
| B | Body | 車身系統 | 空調、車門、座椅及乘員安全相關系統 |
| C | Chassis | 底盤系統 | 煞車、轉向、懸吊及車身動態控制 |
| U | Network | 網路通訊 | 控制單元之間的通訊中斷、遺失或無效資料 |
Diagnostic Examples
常見 DTC 故障碼範例與判讀方式
判讀 DTC 時,應將代碼說明視為「ECU 偵測到的異常條件」,再依線路、供電、感測器、致動器及機械狀況逐步檢查。以下範例用於說明診斷思路,不取代特定車型的維修手冊。
進氣溫度感測器電路低輸入
代表條件:ECU 偵測到進氣溫度感測器電路電壓低於預期範圍。
可能方向:線路短路至接地、接頭受損、感測器異常,或較少見的控制單元問題。
驗證方式:比對即時溫度數值與環境條件,檢查參考電壓、接地、訊號線及接頭狀態。
二次空氣噴射系統故障
代表條件:ECU 判定二次空氣噴射系統沒有產生預期的空氣流量或排放反應。
可能方向:空氣泵浦、繼電器、保險絲、真空控制、閥件、管路阻塞或相關線路異常。
驗證方式:依車廠程序執行致動測試,並檢查電源、控制訊號、氣流路徑及排氣感測回應。
變速箱油溫感測器電路故障
代表條件:控制單元偵測到變速箱油溫感測器電路訊號不合理或超出預期範圍。
可能方向:感測器、變速箱內外部線束、接頭、供電或控制單元輸入異常。
驗證方式:比較冷車及暖車數值變化,並依線路圖量測電阻、電壓及訊號連續性。
Root Cause Verification
讀到故障碼後,為什麼不能直接更換零件?
DTC 表示 ECU 偵測到的異常條件或電路範圍,不一定代表代碼名稱中的零件本身損壞。若沒有進一步驗證就直接換件,可能無法排除線路、接頭、供電、通訊或機械問題。
- 查看凍結畫面:確認故障建立時的轉速、負載、溫度、車速及其他相關參數。
- 比較即時數據:觀察感測值是否合理、是否間歇跳動,以及多個相關訊號之間是否一致。
- 檢查基本電路:確認供電、接地、訊號線、接頭端子及線束沒有斷路、短路或接觸不良。
- 執行功能測試:依車型使用致動測試、替代訊號或量測工具驗證元件與控制邏輯。
- 查閱原廠資料:確認適用車型的故障樹、線路圖、技術通報與軟體版本資訊。
OBD-II & CAN
OBD-II 與 CAN 通訊有什麼關係?
OBD-II 是診斷功能、連接方式與資料格式的標準化架構;CAN 則是承載診斷資料的通訊技術之一。OBD-II 歷史上支援多種通訊方式,因此兩者不能直接畫上等號。
| 名詞 | 主要角色 | 在診斷流程中的用途 |
|---|---|---|
| OBD-II | 車載診斷架構 | 規範外部設備取得排放相關診斷資訊的共同方式 |
| DTC | 故障診斷碼 | 描述控制單元偵測到的異常系統與條件 |
| CAN | 車載網路通訊技術 | 在控制單元與診斷設備之間傳送 CAN 訊框 |
| ISO 15765-4 | CAN 上的排放相關診斷要求 | 規範以 CAN 進行 OBD 診斷通訊的相關要求 |
美國法規資料指出,自 2008 年式起,輕型車與輕型卡車的標準化診斷通訊須符合 ISO 15765-4 的 CAN 診斷要求。這代表 CAN 已成為較新車輛 OBD-II 診斷的重要基礎,但不應回推成所有年代、所有市場的 OBD-II 都只使用 CAN。
資料來源:美國 EPA 輕型車法規資料。
Kvaser Diagnostic Tools
如何使用 Kvaser CAN 介面進行 OBD-II 診斷?
Kvaser CAN 介面可在工程電腦與車載 CAN 網路之間建立硬體通訊,再搭配 CanKing 監看 CAN 訊息,或透過 CANlib SDK 開發診斷應用。DTC 的請求、解碼與清除功能仍取決於軟體及診斷協定設定。
Kvaser CAN 介面
負責連接工程電腦與車輛 CAN 網路,收發帶有精確時間戳的 CAN 訊框。實際使用時需搭配正確的 OBD-II 轉接線、腳位與通道設定。
Kvaser CanKing
可用於監看、傳送、過濾及記錄 CAN 訊息,適合確認匯流排是否有資料、分析回應訊框及執行互動式測試。
CANlib SDK
提供程式開發介面,讓工程師建立診斷請求、資料記錄、自動化測試與上層協定解析功能。
Diagnostic Workflow
從 DTC 讀取到故障驗證的診斷流程
完整的 OBD-II 診斷流程應先確認通訊條件,再讀取並保存故障資訊,接著依量測結果修復問題,最後清除 DTC 並重新測試。清碼不是修復,複測才是確認故障是否排除的關鍵。
- 01
確認車輛與診斷通訊協定
查明車型、年式、診斷腳位、CAN 位元率及所需的上層診斷協定,避免使用錯誤參數連線。
- 02
建立安全的實體連線
確認車輛電源狀態與接線方式,再連接診斷埠與 CAN 介面;避免短路、錯接電源或任意改變車載網路終端配置。
- 03
讀取並分類 DTC
保存待確認、已確認及歷史故障碼,記錄故障指示燈狀態與控制單元資訊,不急著立即清碼。
- 04
保存凍結畫面與即時資料
記錄故障建立時的運轉條件,並比較相關感測器及控制訊號,找出異常是否持續、間歇或僅在特定條件出現。
- 05
依診斷程序驗證根因
依原廠故障樹檢查線束、接頭、供電、接地、感測器、致動器與機械條件,必要時同步分析 CAN 通訊。
- 06
完成修復後清除故障碼
只有在保存所需資料並完成修復後才清除 DTC,避免重要的故障條件與診斷線索遺失。
- 07
重新測試並確認未再發生
依相同工況進行路試或功能測試,確認監測條件完成、即時資料正常,且故障碼沒有再次出現。
Extended Applications
OBD-II 診斷與車載 CAN 測試的延伸應用
當需求從單次讀取 DTC 延伸到移動測試、長時間記錄或 ECU 功能驗證時,工程師需要依通道數、協定、資料量、佈線條件與自動化需求選擇適合的 CAN 工具。
Frequently Asked Questions
OBD-II 故障診斷碼常見問題
OBD-II 和 DTC 有什麼不同?
OBD-II 是車載診斷架構與外部通訊標準,DTC 則是 ECU 偵測到異常後所儲存的故障診斷碼。
故障碼出現就代表零件損壞嗎?
不一定。DTC 通常表示系統偵測到特定異常條件,仍需檢查線路、接頭、供電、感測器訊號及相關控制單元。
P、B、C、U 故障碼分別代表什麼?
P 代表動力系統、B 代表車身、C 代表底盤,U 則代表車載網路通訊。
OBD-II 一定使用 CAN 通訊嗎?
不一定。OBD-II 歷史上可使用多種通訊協定,但較新的美國輕型車須支援符合 ISO 15765-4 的 CAN 診斷通訊。
Kvaser CAN 介面可以直接讀取 OBD-II 故障碼嗎?
Kvaser 介面可建立 CAN 通訊並收發診斷資料,但能否直接顯示 DTC 說明,取決於搭配的診斷軟體、協定設定或自行開發的應用程式。
清除故障碼就代表故障已修復嗎?
不是。清除 DTC 只會重置已儲存資訊,仍須完成修復、重新測試並確認故障碼沒有再次出現。
Kvaser CAN Solutions
選擇適合車載診斷與研發測試的 Kvaser CAN 工具
從單通道 USB CAN 介面、多通道 CAN FD 測試,到資料記錄與軟體開發,不同診斷流程需要的通道數、時間同步與開發能力都不相同。宏虹可依測試架構與使用情境協助選型。
查看 Kvaser CANbus 測試開發工具