19服务作用是允许外部诊断仪(Client)通过该服务读取存储在ECU芯片内的故障码(DTC)状态信息
一、服务概述
通过该服务诊断仪能够请求ECU中DTC状态与DTC状态掩码相匹配的故障码个数。简单来说就是通过状态掩码去读取DTC数量。
二、报文
1.请求报文定义
2.肯定响应
3.报文讲解
3.1格式及内容
发 送: 19 +01+DTCStatusMask(DTC状态掩码)
正响应: 59+01+DTCStatusAvailabilityMask+DTC格式+DTCCount
注:DTCStatusAvailabilityMask是ECU支持的状态掩码,不能根据请求中的DTC状态掩码变化,容易误解为要返回的ECU支持的状态掩码和请求中的状态掩码做与运算后的结果
3.2举例
DTCStatusMask:为0000 0001->01
DTCStatusAvailabilityMask:ECU支持的状态位1111 1111->FF
DTC格式:00(J2012-DATACF00)
ECU中存储的DTC状态如下:
DTC1:0010 1111
DTC2:0010 1111
DTC3:0010 1100
DTC4:0010 1110
例① 发送19 01 01
回复59 01 FF 00 00 02
如图:
回复中02,表明有2个DTC:
解析如下:
ECU中存储的DTC状态(DTC1、DTC2、DTC3、DTC4)和
ECU支持的状态位(DTCStatusMask:01)相与
DTC1:0010 1111 &0000 0001->01
DTC2:0010 1111 &0000 0001->01
DTC3:0010 1100 &0000 0001->00
DTC4:0010 1110 &0000 0001->00
从相与结果可以看出有两个非0结果,所以DTCCount为2
例 ② 发送19 01 02
回复59 01 FF 01 00 04
如图:
回复中04,表明有4个DTC:
解析如下:
ECU中存储的DTC状态(DTC1、DTC2、DTC3、DTC4)和
ECU支持的状态位(DTCStatusMask:01)相与
DTC1:0010 1111 &0000 1001->09
DTC2:0010 1111 &0000 1001->09
DTC3:0010 1100 &0000 1001->08
DTC4:0010 1110 &0000 1001->08
从相与结果可以看出有4个非0结果,所以DTCCount为4