目录
3.3 参数约定(Message Usage)分为以下几种情况:
1 19服务的定义
19服务是读取DTC相关的服务,19服务的英文全称是ReadDTCInformation Service。19服务包含多个子服务,最常用的子服务包含:
19 01:根据DTC状态掩码查找匹配的DTC数量
19 02 :通过DTC 状态掩码获取DTC状态
19 04:根据提供的冻结帧记录号,获取DTC和DTC对应的冻结帧数据
19 06:根据DTC值和扩展数据记录号,获取DTC和DTC对应的扩展数据
19 0A:获取支持的所有DTC的状态
2 DTC故障码解析
19服务故障码由四个字节组成,分别是DTCHighByte,DTCMiddleByte,DTCLowByte以及StatusOfDTC,其中前三个字节是故障诊断码,最后一个字节是状态位。
2.1 故障诊断码
2.1.1 故障内码与五位标准故障码的关系
故障内码和五位标准故障码的关系如下图所示:
图1:故障内码与五位标准故障码的关系
由上图可以看出故障诊断码的 DTCHighByte和DTCMiddleByte这两个字节表示故障内码,而DTCLowByte表示故障类别和故障子类型。
举例说明:
(1)例如故障诊断显示码为B1100,其故障内码为1001 0001 0000 0000,表示为16进制为9100,如果DTCLowByte存在,则在故障显示码后面加上即可。
(2)例如故障诊断显示码为B11B612,其故障内码为1001 0001 1011 0110,表示为16进制为91B6,最后一个字节DTCLowByte为12,则在故障显示码后面加上即可,最后表示为91B612。
2.1.2 DTC的状态位定义及其解释
DTC的状态位定义和解释如下图所示:
图2:DTC状态位详解
备注:一般主机厂至少支持Bit0和Bit3的状态位,其余状态根据需求OEM自己定义是否一定需要支持。
3 19 01 服务
19 01即根据DTC状态掩码查找匹配的DTC数量的服务。
3.1 19 01服务请求的格式如下:
图3:19 01服务请求格式
3.2 19 01服务肯定响应的格式如下:
图4:19 01服务肯定响应格式
DTC所有的格式DTCFormatIdentifier如下:
图5:DTCFormatIdentifier参数说明
3.3 参数约定(Message Usage)分为以下几种情况:
M(Mandatory):该参数必须存在于A_PDU中,标记为M的服务,表示当该服务存在的时候,该参数一定存在。
C(Conditional):该参数可以基于某些条件(例如A_PDU中的子函数/参数)存在于A_PDU中。
S(Selection):指示参数是必需的(除非另有指定),并且是从参数列表中选择的参数。
U(Use option):该参数可能存在,也可能不存在,具体取决于用户的动态使用情况。
3.4 19 01 服务支持的否定响应码
19服务支持如下的否定响应码:0x12(服务器不支持客户端请求服务的子功能), 0x13(服务器认为客户端请求数据的报文长度不符合标准), 0x31(服务器没有客户端请求的数据,此否定响应适用于支持数据读写,或者根据数据调整功能的服务器)。
3.5 举例说明
(1)肯定响应举例:
客户端发送请求:0319 01 09 AA AA AA AA
03:表示发送请求为单帧,并且有效字节为3个字节;
19 01 :为读取与状态掩码相匹配的DTC数量;
09:客户端请求的状态掩码(具体含义见图二)。
服务器发送响应:06 59 01 19 01 00 10 55
06:表示响应为单帧,并且有效字节为6个字节
59 01:表示与请求对应的肯定响应
19:表示服务器支持的状态掩码
注意:服务器支持的状态掩码与客户端发送请0求的状态掩码并不是同一个参数,可一样,也可不一样,视具体情况而定
01:表示DTC所用的格式参考ISO 14229-1标准
00 10:表示与客户端请求的状态掩码一致的DTC故障码的数量为16个
(2)否定响应举例:
客户端发送请求:0319 01 09 AA AA AA AA (请求与上方例子一致)
服务器发送响应:03 7F 19 12 55 55 55 55
03:表示响应为单帧,:且有效字节为3个字节
7F:表示响应为否定响应
19:表示当前服务的SID
12:否定响应码,表示当前服务器不支持19 01的子服务
备注:19服务的其它子服务后续更新, 预计一周更新两篇左右,感谢支持