UDS 诊断教程 (二)
UDS 定义的诊断服务从逻辑来说分为以下几类:
1. Diagnostic and Communication Management (诊断和通信管理)
2. Data Transmission (数据传输)
3. Stored Data Transmission (存储数据传输,用于操作 DTC)
4. InputOutput Control (IO 控制)
5. Routine Control (不知如何翻译好,作用是调用 ECU 内部的预置函数)
6. Upload Download (上传下载)
UDS 规定使用 1 个 byte 来表示诊断服务,即所谓的 Service ID,简称 SID。本文介绍一下
Diagnostic and Communication Management 这一类诊断服务中的一部分。
DiagnosticSessionControl (0x10)
DiagnosticSessionControl 诊断 request 的格式
DiagnosticSessionControl 这个服务的 SID 是 0x10,request 固定为 2 个 byte,第一个
byte 是 SID,第二个 byte 的低 7bit 是 sub-function,用于指示 ECU 将进入的 session。
UDS 定义的 session 包括:
0x00 ISOSAEReserved(保留)
0x01 defaultSession
0x02 ProgrammingSession
0x03 extendedDiagnosticSession
0x04 safetySystemDiagnosticSession
0x05 – 0x3F ISOSAEReserved(保留)
0x40 – 0x5F vehicleManufacturerSpecific(由整车厂自定义使用)
0x60 – 0x7E systemSupplierSpecific(由 ECU 供应商自定义使用)
0x7F ISOSAEReserved(保留)
DiagnosticSessionControl 用于控制 ECU 在不同的 session 之间进行转换,session 可以
看作是 ECU 所处的一种软件状态,在不同的 session 中诊断服务执行的权限不同。 ECU
上电之后,默认处在 defaultSession 中,在这个 session 中很多诊断服务不可以执行,很
多诊断相关的数据不能读取或写入。一般的诊断仪启动之后,会给 ECU 发送 10 03,即
评论0