0x19服务_读取DTC信息
1 术语解释
1.1 缩略语
缩写 | 描述 | 解释 |
---|---|---|
DTC | Diagnostic Trouble Code | 诊断故障码 |
Dcm | Diagnostic Communication Manager | 诊断通信管理 |
Dem | Diagnostic Event Manager | 诊断事件管理 |
SID | Service identify | 服务标识符 |
NRC | Negetive reponse code | 否定响应码 |
2 功能简介
2.1 功能概述
UDS 0x19服务能够让tester读取DTC状态和相关故障信息,而这些数据需要Dcm从Dem模块获取;0x19服务有许多个子服务,如下表:
SF(hex) | 名称 | 描述 |
---|---|---|
01 | reportNumberOfDTCByStatusMask | 检出与客户端定义的DTC状态掩码匹配的DTC数 |
02 | reportDTCByStatusMask | 检出与客户端定义的状态掩码匹配的DTC列表 |
03 | reportDTCSnapshotIdentification | 检出DTC快照记录号 |
04 | reportDTCSnapshotRecordByDTCNumber | 为客户端定义的DTC掩码检出DTC快照数据 |
05 | reportDTCStoredDataByRecordNumber | 为客户端定义的快照记录号检出DTC快照记录数据 |
06 | reportDTCExtDataRecordByDTCNumber | 为客户端定义的DTC掩码和客户端定义的DTCExtendedData记录号检索DTC扩展数据 |
07 | reportNumberOfDTCBySeverityMaskRecord | 检出与客户端定义的严重性掩码记录匹配的DTC的数量 |
08 | reportDTCBySeverityMaskRecord | 检索与客户端定义的严重性掩码记录匹配的严重性和功能单元信息 |
09 | reportSeverityInformationOfDTC | 通过客户端定义的DTC检出严重性和功能单元信息 |
0A | reportSupportedDTC | 检出服务器支持的所有DTC的状态 |
0B | reportFirstTestFailedDTC | 检出最老Failed的DTC |
0D | reportMostRecentTestFailedDTC | 检出最新Failed的DTC |
0C | reportFirstConfirmedDTC | 检出最老Confirmed的DTC |
0E | reportMostRecentConfirmedDTC | 检出最新Confirmed的DTC |
0F | reportMirrorMemoryDTCByStatusMask | 从服务器DTC mirror内存中检索与客户端定义的状态掩码匹配的DTC列表 |
10 | reportMirrorMemoryDTCExtDataRecordByDTCNumber | 从DTC镜像内存中检索客户端定义的DTC掩码的镜像内存DTCExtendedData记录数据和客户端定义的DTCExtendedData记录号 |
11 | reportNumberOfMirrorMemoryDTCByStatusMask | 检出与客户端定义的状态掩码匹配的镜像内存DTC的数量 |
12 | reportNumberOfEmissionsOBDDTCByStatusMask | 检索与客户端定义的状态掩码匹配的“仅与排放相关的OBD”DTC的数量 |
13 | reportEmissionsOBDDTCByStatusMask | 检索与客户端定义的状态掩码匹配的“仅与排放相关的OBD”DTC列表 |
14 | reportDTCFaultDetectionCounter | 检索“预失败”DTC状态列表 |
15 | reportDTCWithPermanentStatus | 检索具有“永久DTC”状态的DTC列表 |
16 | reportDTCExtDataRecordByRecordNumber | 为客户端定义的DTCExtendedData记录号检索DTCExtendedData记录数据 |
17 | reportUserDefMemoryDTCByStatusMask | 从服务器的用户定义的DTC内存中检索与客户端定义的DTC状态掩码匹配的DTC列表 |
18 | reportUserDefMemoryDTCSnapshotRecordByDTCNumber | 从DTC用户定义内存中检索客户端定义DTC掩码和客户端定义DTCSnapshotNumber的用户定义内存DTCSnapshot记录数据 |
19 | reportUserDefMemoryDTCExtDataRecordByDTCNumber | 从DTC内存中检索客户端定义的DTC掩码和客户端定义的DTCExtendedData记录号的用户定义内存DTCExtendedData记录数据 |
2.2 服务实现原理
UDS 0x19服务的子服务有很多,这里我们看下常用的几个子服务。
2.2.1 SF_01 reportNumberOfDTCByStatusMask
0x1子服务是为了检出符合DTC状态掩码的DTC数量,其内部交互流程如下图:
注: DTCStatusAvailabilityMask是Dem中支持的DTC状态位。
2.2.2 SF_02 reportDTCByStatusMask
0x2子服务是为了检出符合状态掩码的DTC及其DTCstatus, 其内部交互流程如下图:
2.2.3 SF_03 reportDTCSnapshotIdentification
0x3子服务主要是为了检出所有捕获的快照记录号,以DTC + RecNum格式置于响应报文中;特殊地,如果一个DTC内捕获了多个快照记录号,那么以DTCa有2个RecNum分别0x1,0x2为例,响应报文中的格式 :[DTCa ] + 01+ [DTCa ] + 02 , 其内部交互流程如下图:
2.2.4 SF_04 reportDTCSnapshotRecordByDTCNumber
0x4子服务是为了通过客户端定义的DTC掩码检出DTC捕获的一个RecNum或者所有RecNum的快照数据,Dem会将快照数据[FFData]以如下图的格式转发给Dcm:
注 : 如果请求的RecNum是0xFF,则需要响应所有RecNum及其包含的数据, 其内部交互流程如下图:
2.2.5 SF_05 reportDTCStoredDataByRecordNumber
0x05服务是为了为客户端定义的快照记录号检出DTC快照记录数据,其内部交互流程如下图:
注:该子服务使用于读取OBD的快照数据,且DTCStoredDataRecordNumber只能为0x00。
2.2.6 SF_06 reportDTCExtDataRecordByDTCNumber
0x06服务是为了为客户端定义的DTC掩码和客户端定义的DTCExtendedData记录号检索DTC扩展数据,其内部交互流程如下图:
2.2.7 SF_0a reportSupportedDTC
0x0a子服务是为了检出服务器支持的所有DTC及其状态,其内部交互流程如下图:
注: 子服务0x1和0xa的实现流程是一样的。
2.3 服务应用场景
3 请求响应定义
3.1 请求消息格式
3.1.1 DTC信息相关子服务请求
3.1.2 DTC相关信息子服务请求
3.2 肯定响应格式
3.2.1 DTC信息相关子服务响应
3.2.2 DTC相关信息子服务响应
3.3 否定响应格式
0x19包含一下NRC码:
4 参考资料
- Specification of Diagnostic Communication Manager AUTOSAR CP R20-11
- ISO 14229-1:2013(E)
- Specification of Diagnostic Event Manager AUTOSAR CP R20-11