UDS 的第二类诊断服务,即 Data Transmission (数据传输) (数据传输)。这类诊断服务包括
以下 SID:
ReadDataByIdentifier (0x22)
ReadMemoryByAddress (0x23)
ReadScalingDataByIdentifier (0x24)
ReadDataByPeriodicIdentifier (0x2A)
DynamicallyDefineDataIdentifier (0x2C)
WriteDataByIdentifier (0x2E)
WriteMemoryByAddress (0x3D)
通常,0x22 和 0x2E 成对使用,0x23 和 0x3D 成对使用,这几个服务用于诊断数据的基本读写操作。
0x24,0x2A,0x2C 是一些特殊操作。
0x22 和 和 0x2E 这两个服务是对以 标识符(identifier)标记的数据的操作,前者是读,后者是写。UDS 规定,
诊断数据使用两个 byte 的标识符来标记,比如,0xF187 用来标记 ECU 的零件号,0xF19E 用于标记该
ECU 所使用的诊断文件的名字,UDS 还规定了厂家可以自定义的标识符范围。这两个服务的用法很简单,
下面我以读取 ECU 的零件号为例说明:
22 F1 87 (读取零件号)
62 F1 87 XX YY ZZ KK MM NN(给出零件号)
具体每次可以使用 22 服务读取几个 ID,每个 ID 的读写权限(比如在哪些 session 中可以读写,是否需<