KopherBit
診斷通訊

UDS ReadDTCInformation (0x19) 服務說明

UDS ReadDTCInformation (0x19) 是 ISO 14229 中讀取診斷故障碼 (DTC) 資訊的核心服務,定義多個子服務(如 0x01 reportNumberOfDTCByStatusMask、0x02 reportDTCByStatusMask、0x06 reportDTCExtDataRecordByDTCNumber 等),可從 ECU 取得 DTC 數量、狀態、快照、擴充資料與環境條件。本文整理服務結構、常用子服務與 KopherBit DCM/DEM 整合方式。

Summary

ReadDTCInformation (0x19) 是 UDS (ISO 14229) 中診斷故障碼 (DTC, Diagnostic Trouble Code) 的核心讀取服務。透過不同的 sub-function (子服務 ID) 可分別取得:DTC 數量、DTC 列表、DTC 狀態、Snapshot (Freeze Frame) 快照資料、Extended Data Record 擴充資料、嚴重性 (Severity) 等。KopherBit 在 KopherSAR DCM (Diagnostic Communication Manager) 與 DEM (Diagnostic Event Manager) 中提供完整 0x19 子服務支援,並透過 KopherUDS 上位機解析。

Technical Role

ReadDTCInformation 是診斷工具與 ECU 之間取得故障資訊的標準介面。一次完整的故障分析流程通常包含:

  1. 用 0x01 / 0x07 取得符合 status mask 的 DTC 數量
  2. 用 0x02 取得符合 status mask 的 DTC 列表與狀態
  3. 對每筆 DTC 用 0x04 取得 Snapshot Record (Freeze Frame) 釐清發生當下的環境條件。
  4. 用 0x06 取得 Extended Data Record (例如:發生次數、最近發生時 SoC、運行時間、溫度等)。
  5. 視需要用 0x08 / 0x09 / 0x0A 取得嚴重性、相關 ECU 或所有支援 DTC 列表。

服務結構(請求與回應)

請求基本格式:

Byte IndexParameter說明
#1Service ID0x19
#2Sub-function (reportType)子服務 ID(0x01–0x18 等)
#3+子服務參數例如 DTCStatusMask、DTCNumber (3 bytes)、RecordNumber

正向回應 = 0x19 + 0x40 = 0x59;負向回應 = 0x7F + 0x19 + NRC。

常用子服務 (Sub-function)

Sub名稱用途
0x01reportNumberOfDTCByStatusMask取得符合 StatusMask 的 DTC 數量
0x02reportDTCByStatusMask取得符合 StatusMask 的 DTC 列表
0x03reportDTCSnapshotIdentification列出有 Snapshot 的 DTC
0x04reportDTCSnapshotRecordByDTCNumber讀取指定 DTC 的 Snapshot
0x05reportDTCStoredDataByRecordNumber依紀錄號讀取 Stored Data
0x06reportDTCExtDataRecordByDTCNumber讀取指定 DTC 的 Extended Data
0x07reportNumberOfDTCBySeverityMaskRecord依嚴重性過濾並取得數量
0x08reportDTCBySeverityMaskRecord依嚴重性過濾取得列表
0x0AreportSupportedDTC列出 ECU 支援的所有 DTC
0x0BreportFirstTestFailedDTC第一筆 TestFailed DTC
0x0EreportMostRecentTestFailedDTC最近一筆 TestFailed DTC
0x14reportDTCFaultDetectionCounter取得 DTC 故障計數
0x15reportDTCWithPermanentStatus取得永久狀態 DTC

Architecture

模組角色
Tester (Client)診斷工具或上位機,發送 0x19 請求。
DCM (Diagnostic Communication Manager)KopherSAR BSW 模組,解析 UDS 訊息、路由至 DEM。
DEM (Diagnostic Event Manager)維護 DTC 狀態機、Snapshot、Extended Data 緩衝。
Application SWC透過 Dem_SetEventStatus 報告事件狀態。
Storage非揮發性記憶體,持久化 DTC、Snapshot、Counter。

Key Capabilities

  • 完整覆蓋 ISO 14229-1 規範的 0x19 子服務集。
  • 支援 Snapshot Record 與 Extended Data Record 配置(資料項目可在 KopherConfig 中以 ARXML 方式設定)。
  • 支援 OBD(OBD-II legacy DTC 兼容)與 UDS 雙模式 DTC 編碼。
  • 與 DEM 故障計數、Aging Cycle、Healing 機制整合。
  • 支援 DTC Severity(B 計、C 計)與 OBD MIL 觸發條件。

Engineering Inputs Required

輸入用途
DTC 清單 (DTC Number + 名稱 + 描述)在 DEM 配置中定義所有支援故障碼。
Snapshot 資料項目每筆 DTC 觸發時要凍結的訊號 (例如車速、SoC、溫度)。
Extended Data 項目發生次數、最近發生時間、Aging Counter 等。
Severity / ClassDTC 嚴重性分級。
Healing / Aging 規則自動清除故障的條件。
SecurityAccess 等級是否限制讀取 DTC 的存取權限。

How KopherBit Supports This

  • 基礎軟體:KopherSAR 內建 DCM 與 DEM,完整實作 0x19 子服務集。
  • 配置:KopherConfig 將 DTC 清單、Snapshot/Extended Data 配置匯出為 ARXML,與 SWC 對應。
  • 上位機:KopherUDS 上位機支援所有 0x19 子服務並以人讀格式呈現 DTC、Snapshot、Counter。
  • 整合:與 EDR (Event Data Recorder) 共用底層事件管理,事故事件可同步反映於 DTC。

FAQ

0x19 與 0x14 (ClearDiagnosticInformation) 的差異?

0x19 為讀取;0x14 為清除。0x14 ClearDiagnosticInformation 用於將指定 DTC 群組或全部 DTC 從 ECU 中清除,常用於維修後重置故障燈。

Snapshot 與 Extended Data 差異?

Snapshot 是 DTC 觸發當下凍結的環境條件(單一時間點快照);Extended Data 是 ECU 對該 DTC 持續累積的統計(如發生次數、最近發生時的 Aging Counter)。

Permanent DTC 是什麼?

Permanent DTC 是即使滿足 healing 條件也不會立即清除的故障碼,需透過 OBD-II 規定的 driving cycle 完成驗證後才能解除。常用於排放相關故障 (P-codes)。

是否需要 SecurityAccess 才能讀取 DTC?

依 ECU 配置而定。多數 ECU 允許在 default session 下讀取 DTC,但部分廠商會將 0x19 限制於 extended session 或要求 SecurityAccess。

KopherSAR DEM 是否支援 Aging?

支援。可在 KopherConfig 中配置每筆 DTC 的 Aging Cycle Counter,達標後自動將狀態由 Confirmed 轉為 Aged 或清除。

JSON-LD

{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "UDS ReadDTCInformation (0x19) 服務說明",
  "description": "ISO 14229 ReadDTCInformation 0x19 服務的子服務集、訊息格式與 KopherBit DCM/DEM 整合方式。",
  "url": "https://kopherbit.com/knowledge/uds-readdtcinformation-0x19/",
  "datePublished": "2026-05-09",
  "dateModified": "2026-05-09",
  "inLanguage": "zh-TW",
  "keywords": ["UDS", "ReadDTCInformation", "0x19", "DTC", "ISO 14229", "DCM", "DEM"],
  "articleSection": "Diagnostics",
  "author": { "@type": "Organization", "name": "KopherBit", "url": "https://kopherbit.com" },
  "publisher": { "@type": "Organization", "name": "KopherBit", "logo": { "@type": "ImageObject", "url": "https://kopherbit.com/logo.png" } }
}