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服务支持的NRC1.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服务请求报文定义12.1.2 Sub-function = 0x03/0x04
图6 0x19服务请求报文定义22.1.3 Sub-function = 0x05
图7 0x19服务请求报文定义32.1.4 Sub-function = 0x06/0x10
图8 0x19服务请求报文定义42.1.5 Sub-function = 0x07/0x08
图9 0x19服务请求报文定义52.1.6 Sub-function = 0x09
图10 0x19服务请求报文定义62.1.7 Sub-function = 0x0A/0x0B/0x0C/0x0D/0x0E/0x14/0x15
图11 0x19服务请求报文定义72.1.8 Sub-function = 0x16
图12 0x19服务请求报文定义82.1.9 Sub-function = 0x17
图13 0x19服务请求报文定义92.1.10 Sub-function = 0x18
图14 0x19服务请求报文定义102.1.11 Sub-function = 0x19
图15 0x19服务请求报文定义112.1.12 Sub-function = 0x42
图16 0x19服务请求报文定义122.1.13 Sub-function = 0x55
图17 0x19服务请求报文定义130x19服务在应用时可能涉及上述服务中的一个或多个,由于支持的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服务支持的NRC3.4 示例
发送请求:14 FF FF 33
肯定响应:54
转载于:https://zhuanlan.zhihu.com/p/96035234 版权归原作者所有。