文章目录
1. 22 服务——ReadDataByIdentifier
- ReadDataByIdentifier,根据标识符 DID(长为 2 个字节)读取数据,该服务允许客户端向服务端请求由一个或多个数据标识符标识的数据。
- 服务端可以限制同时请求的数据标识符的数量,该数量由车辆制造商和系统供应商协商一致。
- 可以多次请求同一 DID 的数据。
- 22 服务请求格式:
- 肯定响应格式:
- 支持的否定响应码:
- 示例:读取单个 DID 数据
- 示例:读取多个 DID 数据
- 肯定响应:
- 常见的数据 ID 及其含义:
- F1 86:当前激活的会话 Session
- 01 23:ECU 版本号
- F1 8C:ECU 序列号
- F1 90:VIN 码
- F1 93:供应商硬件版本号
- F1 95:供应商软件版本号
- F1 9D:ECU 安装日期
2. 23 服务——ReadMemoryByAddress
- ReadMemoryByAddress,根据地址读取内存,该服务允许客户端通过提供起始地址和内存大小来读取服务端的内存数据。
- 23 服务请求格式:
- 参数 addressAndLengthFormatIdentifier,低半字节定义 memoryAddress 的字节数,高半字节定义 memorySize 的字节数。
- 肯定响应格式:
- 支持的否定响应码:
- 示例:客户端从服务端的内存地址 0x20 48 13 92 开始,读取 259(0x01 03) 个数据字节。
- 请求消息:
- 对应的肯定响应:
3. 24 服务——ReadScalingDataByIdentifier
- ReadScalingDataByIdentifier,通过标识符读取缩放数据
- 24 服务请求格式:
- 各子服务取值参考下表:
- 肯定响应格式:
- 支持的否定响应码:
- 示例:
- 请求消息:
- 对应的肯定响应:
4. 2A 服务——ReadDataByPeriodicIdentifier
- 2A 服务请求格式:
- 各子服务取值参考下表:
- 肯定响应格式:
- 支持的否定响应码:
- 示例:
- 请求消息:
- 对应的肯定响应:
5. 2C 服务——DynamicallyDefineDataIdentifier
- 2C 服务请求格式:
- 各子服务取值参考下表:
- 肯定响应格式:
- 支持的否定响应码:
- 示例:
- 请求消息:
- 对应的肯定响应:
6. 2E 服务——WriteDataByIdentifier
- WriteDataByIdentifier,根据标识符写入数据,该服务允许客户端更改服务端的 DID 数据。
- 动态定义的 DID 不可用于本服务。
- 2E 服务请求格式:
- 参数 dataRecord 即为要写入 dataIdentifier 中的数据。
- 肯定响应格式:
- 支持的否定响应码:
- 示例:将数据写入 VIN
- 请求消息:
- 对应的肯定响应:
7. 3D 服务——WriteMemoryByAddress
- WriteMemoryByAddress,根据地址写入数据,该服务可结合 23 服务一起理解。
- 3D 服务请求格式:
- 参数 dataRecord 即为要写入的数据,其余参数含义参照 23 服务。
- 肯定响应格式:
- 支持的否定响应码:
- 示例:在地址 20 48 13 中,写入 3 个字节长的数据 00 01 8C。
- 请求消息:
- 对应的肯定响应: