AUTOMORPHSW Team

OBD2 是什麼?故障碼怎麼讀、跟 UDS 差在哪一次看懂

OBD2 是什麼?故障碼怎麼讀、跟 UDS 差在哪一次看懂

引擎燈亮了,維修廠拿一支診斷儀插到方向盤下方的接頭,螢幕跳出「P0301」。這支儀器在跟車講什麼語言?那串代碼怎麼解?以及——為什麼原廠的診斷電腦看得到的東西,通用診斷儀看不到?這三個問題背後,是兩套並存的診斷體系

OBD-II 與 UDS 的分工

OBD-II:法規要求的「公開頻道」

OBD-II(On-Board Diagnostics 第二代)是排放法規的產物:法規要求任何人(車主、獨立維修廠、驗車單位)都能用標準工具讀到與排放相關的資訊。所以它的三個特徵都來自「公開」:

  • 接頭標準化:統一的 16 腳位診斷座,位置在駕駛座附近
  • 代碼標準化:故障碼(DTC)的編碼規則全球一致
  • 服務標準化:以「模式(Mode)」定義的一組標準查詢

故障碼 P0301 怎麼拆

OBD-II 的 DTC 是「一個字母+四個數字」:

位置意義例:P0301
第 1 碼(字母)系統:P 動力、B 車身、C 底盤、U 網路P=動力系統
第 2 碼0=SAE 標準碼、1=車廠自訂碼0=標準碼
第 3 碼子系統(燃油、點火、排放⋯)3=點火系統
第 4–5 碼具體故障01=第一缸失火

所以 P0301 讀作:動力系統/標準碼/點火/第一缸失火。第 2 碼是重點——0 開頭全球查得到,1 開頭要看各車廠的資料。

常用模式速查

模式用途常見情境
Mode $01讀即時資料(轉速、水溫、感知器電壓)邊開邊看數值
Mode $02讀凍結畫面(故障當下的快照)還原故障情境
Mode $03讀已確認的故障碼引擎燈亮了查原因
Mode $04清除故障碼與凍結畫面修完復歸
Mode $09讀車輛資訊(VIN 等)驗車、報告

那 UDS 是什麼?原廠的「全功能頻道」

OBD-II 只覆蓋法規要求的排放相關範圍。車上其他幾十顆 ECU 的完整診斷——讀寫組態、安全存取、韌體刷寫、全部 DTC 與快照——走的是 UDS(ISO 14229),也就是原廠與供應商工程端用的協定:

OBD-IIUDS
目的法規(排放監控)工程(開發、產線、售後全功能)
範圍排放相關系統整車所有 ECU
代碼5 碼標準 DTC3 位元組 DTC+狀態位元+快照
存取控制無(就是要公開)會話+安全存取(種子—金鑰)
能做的事讀值、讀碼、清碼加上:寫入、例程、刷寫韌體

兩套體系共用同一個接頭、常常共存在同一顆 ECU 裡——通用診斷儀講 OBD-II,原廠診斷電腦講 UDS。這就是「原廠看得到、通用儀器看不到」的原因:不是藏起來,是走不同協定、過不同的存取控制。

UDS 的會話、服務與安全存取怎麼運作,我們在 UDS 是什麼 有完整的服務地圖;DTC 在工程端怎麼被設定與測試,見行車資料怎麼錄才有用的觸發一節。

工程視角的三個提醒

  1. 「清碼」不等於「修好」——DTC 有成熟化機制,條件再次成立就會回來;工程端關心的是「什麼操作條件讓它被設定」,這才是測試案例的素材
  2. U 開頭的碼越來越重要——網路通訊故障(某顆 ECU 失聯)在區域架構下會是大宗,除錯要回到匯流排層(見 CAN 錯誤訊框從哪來
  3. 診斷測試要自動化——一顆 ECU 數百個 DTC,每個都有設定條件、成熟化、老化邏輯要驗,人工按診斷儀跑不完

下一步

從 DTC 設計、診斷規格(CDD)到自動化驗證,歐特莫夫(Vector Informatik 合作夥伴)協助把診斷這條鏈建成可回歸的測試資產。