0x22服务_通过DID读取数据
1 术语解释
1.1 缩略语
缩写 | 描述 | 解释 |
---|---|---|
DTC | Diagnostic Trouble Code | 诊断故障码 |
Dcm | Diagnostic Communication Manager | 诊断通信管理 |
Dem | Diagnostic Event Manager | 诊断事件管理 |
SID | Service identify | 服务标识符 |
NRC | Negetive reponse code | 否定响应码 |
DID | Data Identifier | 数据标识符 |
2 功能简介
2.1 功能概述
UDS 0x22服务能够允许Tester通过DID(一个或者多个)读取ECU中的数据,一般地会和UDS 0x2E、0x2F、0x31配合使用;在使用0x22服务之前,需要在配置中实现DID和Data的配置和映射。如果请求读取数据的DID不在配置的范围内,Dcm将回复否定响应(NRC 0x31)。
2.2 服务实现原理
一般地,在读取定长的数据时,DID所对应的数据可以通过配置的回调来读取,也可以配置DID mapping至某个NvM block中数据,Dcm通过NvM_ReadBlock()读取数据;不仅如此。DID也可以引用其他DID,也就是说一个DID所对应的数据可以是其他DID所对应数据的组合。
特殊地,Dcm也可以支持对应动态长度数据的DID,与定长的数据读取不同的是,读取动态长度的数据之前,需要通过回调或者其他方式读取数据长度。
注: F400-F8FF属于OBD DID范围,常用的UDS则使用此范围之外的DID。
3 请求响应定义
3.1 请求格式
主要是SID + DID格式请求。
3.2 肯定响应格式
3.3 否定响应格式
否定响应使用通过的格式: 7F + SID + NRC, 0x22服务主要支持一下NRC码:
4 请求响应实例
5 参考资料
- ISO 14229-1:2013(E)
- Specification of Diagnostic Communication Manager AUTOSAR CP R20-11