目录
1 概述
前面一个章节已经详细介绍了19服务涉及到的DTC、状态位以及19 01服务的使用,这里不再赘述。本章节将着重介绍19服务剩下的几个比较常用的子服务,分别是19 02,19 04,19 06以及19 0A服务。
2 19 02服务
19 02该子服务为根据状态掩码报告对应的DTC。
2.1 请求格式
19 02服务的请求格式如下:
字节 | 参数名称 | 参数约定 | 数值(Hex) |
Byte1 | Request Service Identifier 请求ID | M | 19 |
Byte2 | SubFunction=ReportDTCByStatusMask 子功能=报告匹配状态掩码的DTC故障码 | M | 02 |
Byte3 | DTCStatusMask DTC状态掩码 | M | 00-FF |
图1:19 02服务请求格式
2.2 正响应格式
19 02服务的正响应格式如下:
字节 | 参数名称 | 参数约定 | 数值(Hex) |
Byte1 | Positive Response Service Identifier 肯定响应回复ID | M | 59 |
Byte2 | SubFunction=ReportDTCByStatusMask 子功能=报告匹配状态掩码的DTC故障码 | M | 02 |
Byte3 | DTCStatusAvailabilityMask 当前ECU支持的状态掩码 | M | 01-FF |
Byte4 Byte5 Byte6 Byte7 Byte8 Byte9 Byte10 Byte11 . . . . Byte(n-3) Byte(n-2) Byte(n-1) Byte(n) | DTCAndStatusRecord[]= DTCHighByte#1 DTCMiddleByte#1 DTCLowByte#1 StatusOfDTC#1 DTCHighByte#2 DTCMiddleByte#2 DTCLowByte#2 StatusOfDTC#2 DTCHighByte#m DTCMiddleByte#m DTCLowByte#m StatusOfDTC#m | C1 C1 C1 C1 C2 C2 C2 C2 CM CM CM CM | 00-FF 00-FF 00-FF 00-FF 00-FF 00-FF 00-FF 00-FF 00-FF 00-FF 00-FF 00-FF |
图2:19 02服务肯定响应格式
2.3 举例说明
请求:03 19 02 09 AA AA AA AA
响应(首帧):10 1B 59 02 09 91 B6 12
请求(发送流控帧):30 00 00 AA AA AA AA AA
响应(连续帧):21 08 A4 13 15 08 D3 18
响应(连续帧):22 31 08 A6 43 14 08 A7
响应(连续帧):23 32 21 08 A8 90 13 08
说明:该例子响应使用了首帧、连续帧以及流控帧,响应总共传输的数据为(1B=27)个字节,注意,首帧有效的字节个数为6个,连续帧有效的字节个数为7个。
3 19 04服务
19 04该子服务为根据DTC号报告相关的快照信息,一般会根据主机厂需求记录上车速,电源电压,车辆点火状态,里程,时间等参数,参数的定义会在诊断调查表中明确。
3.1 请求格式
19 04服务请求格式如下:
字节 | 参数名称 | 参数约定 | 数值(Hex) |
Byte1 | Request Service Identifier 请求ID | M | 19 |
Byte2 | SubFunction=ReportDTCSnapshotRecordByDTCNumber 子功能=根据DTC号报告相应的快照信息 | M | 04 |
Byte3 | DTCMaskRecord[]= DTCHighByte | M | 00-FF |
Byte4 | DTCMiddleByte | M | 00-FF |
Byte5 | DTCLowByte | M | 00-FF |
Byte6 | DTCSnapshotRecordNumber DTC快照编号 | M | 00-FF |
备注:当请求格式的第六个字节的 DTCSnapshotRecordNumber为FF时,表示读取当前DTC对应的所有快照组数据。
3.2 正响应格式
19 04 服务正响应格式如下:
字节 | 参数名称 | 参数约定 | 数值(Hex) |
Byte1 | Positive Response Service Identifier 肯定响应回复ID | M | 59 |
Byte2 | SubFunction=ReportDTCSnapshotRecordByDTCNumber 子功能=根据DTC号报告相应的快照信息 | M | 04 |
Byte3 | DTCMaskRecord[]= DTCHighByte DTC高字节 | M | 00-FF |
Byte4 | DTCMiddleByte DTC中字节 | M | 00-FF |
Byte5 | DTCLowByte DTC低字节 | M | 00-FF |
Byte6 | StatusOfDTC DTC状态位 | M | 00-FF |
Byte7 | DTCSnapshotRecordNumber#1 第1个快照记录码 | C1 | 00-FE |
Byte8 | DTCSnapshotRecordNumberOfIdentifiers#1 快照信息中记录的信息成员数 | C1 | 00-FF |
Byte9 Byte10 Byte11 . . #Byte[11+(p-1)] . . #Byte[r-(m-1)-2] #Byte[r-(m-1)-1] #Byte[r-(m-1)] . . #Byter | DTCSnapshotRecord[]#1= DataIdentifier#1 byte #1(MSB) DataIdentifier#1 byte #2(LSB) SnapshotData#1 byte#1 . . SnapshotData#1 byte#p . . DataIdentifier#w byte #1(MSB) DataIdentifier#w byte #2(LSB) SnapshotData#w byte#1 . . SnapshotData#w byte#m | C1 C1 C1 . . C1 . . Cw Cw Cw . . Cw | 00-FF 00-FF 00-FF . . 00-FF . . 00-FF 00-FF 00-FF . . 00-FF |
. . | . . | . . | . . |
Byte[ t] | DTCSnapshotRecordNumber#x 第x个快照记录码 | Cx | 00-FF |
Byte [t+1] | DTCSnapshotRecordNumberOfIdentifiers#x 快照信息中记录的信息成员数 | Cx | 00-FF |
Byte [t+2] | DTCSnapshotRecord[]#x= DataIdentifier#1 byte #1(MSB) | Cx | 00-FF |
3.3 举例说明
请求:06 19 04 A5 19 39 01 AA
响应(首帧):10 13 59 04 A5 19 39 01
请求(流控帧):30 00 00 AA AA AA AA AA
响应(连续帧):21 03 0B 00 AA 0B 01 11
响应(连续帧):22 22 0B 02 33 44 45 55
说明:诊断请求的DTC为A51939,请求的快照编号为01;响应数据字节长度为19个字节,其中快照包含的信息成员个数为3个,分别0B00,0B01以及0B02。
4 19 06服务
除快照信息外,还会记录DTC对应的一些扩展信息,如老化计数器及故障发生次数等,这时候就需要用到19 06服务。
4.1 请求格式
19 06服务请求格式如下:
字节 | 参数名称 | 参数约定 | 数值(Hex) |
Byte1 | Request Service Identifier 请求ID | M | 19 |
Byte2 | SubFunction=ReportDTCExtendedDataRecordByDTCNumber 子功能=根据DTC报告一些扩展信息 | M | 06 |
Byte3 | DTCMaskRecord[]= DTCHighByte | M | 00-FF |
Byte4 | DTCMiddleByte | M | 00-FF |
Byte5 | DTCLowByte | M | 00-FF |
Byte6 | DTCExtendedDataRecordNumber DTC扩展数据记录编号 | M | 00-FF |
备注:当请求格式的第六个字节的 DTCExtendedDataRecordNumber为FF时,表示读取当前DTC对应的所有扩展组数据。
4.2 正响应格式
19 06服务正响应格式如下:
字节 | 参数名称 | 参数约定 | 数值(Hex) |
Byte1 | Positive Response Service Identifier 肯定响应回复ID | M | 59 |
Byte2 | SubFunction=ReportDTCExtendedDataRecordByDTCNumber 子功能=根据DTC号报告一些扩展信息 | M | 06 |
Byte3 | DTCMaskRecord[]= DTCHighByte DTC高字节 | M | 00-FF |
Byte4 | DTCMiddleByte DTC中字节 | M | 00-FF |
Byte5 | DTCLowByte DTC低字节 | M | 00-FF |
Byte6 | StatusOfDTC DTC状态位 | M | 00-FF |
Byte7 | DTCExtendedDataRecordNumber#1 第1个扩展数据记录码 | C1 | 00-FE |
Byte8 Byte9 Byte10 . . #Byte[10+(p-1)] | DTCExtendedDataRecord[]#1= ExtendedData#1 byte #1 ExtendedData#1 byte #2 ExtendedData#1 byte#3 . . ExtendedData#1 byte#p | C1 C1 C1 . . C1 | 00-FF 00-FF 00-FF . . 00-FF |
. . | . . | . . | . . |
Byte[ t] | DTCExtendedDataRecordNumber#x 第x个扩展数据记录码 | Cx | 00-FF |
Byte [t+1] | DTCExtendedDataRecord[]#x= ExtendedData#x byte #1 | Cx | 00-FF |
Byte [t+2] | DTCExtendedDataRecord[]#x= ExtendedData#x byte #2 | Cx | 00-FF |
. . | . . | . . | . . |
Byte [t+q] | DTCExtendedDataRecord[]#x= ExtendedData#x byte #q | Cx | 00-FF |
4.3 举例说明
请求:06 19 06 12 13 14 01 AA
响应(首帧):10 14 59 06 12 13 14 09
请求(流控帧):30 00 00 AA AA AA AA AA
响应(续帧):21 01 34 45 A3 42 41 40
响应(续帧):22 46 B3 32 15 1F 1E 32
说明:诊断请求的DTC为121314,请求的扩展数据编号为01;响应数据字节长度为20个字节。
5 19 0A服务
该服务为请求获取所有支持的DTC。
5.1 请求格式
19 0A服务请求格式如下:
字节 | 参数名称 | 参数约定 | 数值(Hex) |
Byte1 | Request Service Identifier 请求ID | M | 19 |
Byte2 | SubFunction=ReportDTCByStatusMask 子功能=报告所有支持的DTC | M | 0A |
5.2 正响应格式
19 0A服务正响应格式如下:
字节 | 参数名称 | 参数约定 | 数值(Hex) |
Byte1 | Positive Response Service Identifier 肯定响应回复ID | M | 59 |
Byte2 | SubFunction=ReportDTCByStatusMask 子功能=报告所有支持的DTC | M | 0A |
Byte3 | DTCStatusAvailabilityMask DTC支持的状态掩码 | M | 00-FF |
Byte4 | DTCAndStatusRecord[]= DTCHighByte#1 DTC高字节 | C1 | 00-FF |
Byte5 | DTCMiddleByte#1 DTC中字节 | C1 | 00-FF |
Byte6 | DTCLowByte#1 DTC低字节 | C1 | 00-FF |
Byte7 | StatusOfDTC#1 DTC状态位 | C1 | 00-FF |
Byte8 | DTCHighByte#2 DTC高字节 | C2 | 00-FF |
Byte9 | DTCMiddleByte#2 DTC中字节 | C2 | 00-FF |
Byte10 | DTCLowByte#2 DTC低字节 | C2 | 00-FF |
Byte11 | StatusOfDTC#2 DTC状态位 | C2 | 00-FF |
… | … | … | … |
Byte(n) | DTCHighByte#n DTC高字节 | Cn | 00-FF |
Byte(n+1) | DTCMiddleByte#n DTC中字节 | Cn | 00-FF |
Byte(n+2) | DTCLowByte#n DTC低字节 | Cn | 00-FF |
Byte(n+3) | StatusOfDTC#n DTC状态位 | Cn | 00-FF |
5.3 举例说明
请求:02 19 0A AA AA AA AA AA
响应(首帧):10 0E 59 0A 09 B2 15 12
请求(流控帧):30 00 00 AA AA AA AA AA
响应(续帧):21 09 34 35 36 09 A1 A2
响应(续帧):22 A3 09 55 55 55 55 55
说明:ECU支持的状态掩码为09,读取的ECU的诊断故障码为B2151209,34353609,A1A2A309
6 总结
19服务是售后最常见的服务之一,也是最为复杂的服务,包含的子功能比较多,但是仔细去分析几个子功能的功能以及相应的参数的含义,19服务本身并不难,如有疑问,欢迎评论沟通。