1.ControlDTCSetting(0x85)—— DTC设置控制
这个服务是用来开启/关闭更新DTC状态位的。例如在bootloader更新程序的时候,可能会使用0x28服务来关闭一些报文,这样可能也会产生一些不必要的DTC,使用0x85服务就可以暂时关闭DTC状态的更新。
如果0x14(ClearDiagnosticInformation)服务请求有发出,0x85服务不会阻止DTC状态位的重置。
1.1 服务请求报文定义
图1 0x85服务请求报文定义
Sub-function定义:
图2 0x85服务Sub-function定义
1.2 肯定响应
图3 0x85服务肯定响应报文定义
1.3 支持的NRC
图4 0x85服务支持的NRC
1.4 示例
(1)DTCSettingType = off
发送请求:85 02
肯定响应:C5 02
(2)DTCSettingType = on
发送请求:85 01
肯定响应:C5 01
2.ReadDTCInformation(0x19)—— 读DTC
这个服务是用来读故障诊断码(Diagnostic Trouble Code , DTC)信息的,除非请求了特定的Sub-function,ECU会返回所有的DTC信息。
2.1 服务请求报文定义
在介绍请求报文之前先来了解一下支持哪些Sub-function,因为不同的Sub-function对应的报文格式有所差别。

  • reportNumberOfDTCByStatusMask(0x01)
  • reportDTCByStatusMask(0x02)
  • reportDTCSnapshotIdentification(0x03)
  • reportDTCSnapshotRecordByDTCNumber(0x04)
  • reportDTCStoredDataByRecordNumber(0x05)
  • reportDTCExtDataRecordByDTCNumber(0x06)
  • reportNumberOfDTCBySeverityMaskRecord(0x07)
  • reportDTCBySeverityMaskRecord(0x08)
  • reportSeverityInformationOfDTC(0x09)
  • reportSupportedDTC(0x0A)
  • reportFirstTestFailedDTC(0x0B),reportMostRecentTestFailedDTC(0x0D)
  • reportFirstConfirmedDTC(0x0C),reportMostRecentConfirmedDTC(0x0E)
  • reportMirrorMemoryDTCByStatusMask(0x0F)
  • reportMirrorMemoryDTCExtDataRecordByDTCNumber(0x10)
  • reportNumberOfMirrorMemoryDTCByStatusMask(0x11)
  • reportNumberOfEmissionsOBDDTCByStatusMask(0x12)
  • reportEmissionsOBDDTCByStatusMask(0x13)
  • reportDTCFaultDetectionCounter(0x14)
  • reportDTCWithPermanentStatus(0x15)
  • reportDTCExtDataRecordByRecordNumber(0x16)
  • reportWWHOBDDTCByMaskRecord(0x42)
  • reportWWHOBDDTCWithPermanentStatus(0x55)
  • reportUserDefMemoryDTCByStatusMask(0x17)
  • reportUserDefMemoryDTCSnapshotRecordByDTCNumber(0x18)
  • reportUserDefMemoryDTCExtDataRecordByDTCNumber(0x19)
2.1.1 Sub-function = 0x01/0x02/0x0F/0x11/0x12/0x13
图5 0x19服务请求报文定义1
2.1.2 Sub-function = 0x03/0x04
图6 0x19服务请求报文定义2
2.1.3 Sub-function = 0x05
图7 0x19服务请求报文定义3
2.1.4 Sub-function = 0x06/0x10
图8 0x19服务请求报文定义4
2.1.5 Sub-function = 0x07/0x08
图9 0x19服务请求报文定义5
2.1.6 Sub-function = 0x09
图10 0x19服务请求报文定义6
2.1.7 Sub-function = 0x0A/0x0B/0x0C/0x0D/0x0E/0x14/0x15
图11 0x19服务请求报文定义7
2.1.8 Sub-function = 0x16
图12 0x19服务请求报文定义8
2.1.9 Sub-function = 0x17
图13 0x19服务请求报文定义9
2.1.10 Sub-function = 0x18
图14 0x19服务请求报文定义10
2.1.11 Sub-function = 0x19
图15 0x19服务请求报文定义11
2.1.12 Sub-function = 0x42
图16 0x19服务请求报文定义12
2.1.13 Sub-function = 0x55
图17 0x19服务请求报文定义13
0x19服务在应用时可能涉及上述服务中的一个或多个,由于支持的Sub-function篇幅较长,在这里建议在具体项目里去找ISO 14229 - 1 : 2013文档对应报文格式就好了,全部记下来还是有难度的。
3.ClearDiagnosticInformation(0x14)—— 清DTC
本服务是用来清除在ECU存储的DTC的。
3.1 服务请求报文定义
图18 0x14服务请求报文定义
此服务不支持Sub-function。
关于groupOfDTC:3个字节,代表一类DTC,命名规则参见ISO 14229 - 1 : 2013文档。
3.2 肯定响应报文定义
图19 0x14服务肯定响应报文定义
在以下两种情况下都回复肯定响应:
(1)ClearDiagnosticInformation完成
(2)ECU中没有存储DTC
3.3 支持的NRC
图20 0x14服务支持的NRC
3.4 示例
发送请求:14 FF FF 33
肯定响应:54
转载于:https://zhuanlan.zhihu.com/p/96035234 版权归原作者所有。