UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(4) - 示例

UDS 诊断服务系列文章目录

诊断和通信管理功能单元
UDS 诊断 - DiagnosticSessionControl(诊断会话控制)(0x10)服务
UDS 诊断 - ECUReset(ECU重置)(0x11)服务
UDS 诊断 - SecurityAccess(安全访问)(0x27)服务
UDS 诊断 - CommunicationControl(通信控制)(0x28)服务
UDS 诊断 - TesterPresent(测试仪保活)(0x3E)服务
UDS 诊断 - AccessTimingParameter(访问计时参数)(0x83)服务
UDS 诊断 - SecuredDataTransmission(受保护的数据传输)(0x84)服务
UDS 诊断 - ControlDTCSetting(控制DTC设置)(0x85)服务
UDS 诊断 - ResponseOnEvent(基于事件响应)(0x86)服务
UDS 诊断 - LinkControl(链路控制)(0x87)服务
数据传输功能单元
UDS 诊断 - ReadDataByIdentifier(按标识符读取数据)(0x22)服务
UDS 诊断 - ReadMemoryByAddress(按地址读取内存)(0x23)服务
UDS 诊断 - ReadScalingDataByIdentifier(按标识符读取换算数据)(0x24)服务
UDS 诊断 - ReadDataByPeriodicIdentifier(按周期性标识符读取数据)(0x2A)服务
UDS 诊断 - DynamicallyDefineDataIdentifier(动态定义数据标识符)(0x2C)服务
UDS 诊断 - WriteDataByIdentifier(按标识符写数据)(0x2E)服务
UDS 诊断 - WriteMemoryByAddress(按地址写内存)(0x3D)服务
存储数据传输功能单元
UDS 诊断 - ClearDiagnosticInformation(清除诊断信息)(0x14)服务
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(1) - 服务说明
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(2) - 请求消息
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(3) - 响应消息
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(4) - 示例

本文章可能会涉及到的文章
UDS诊断 - DTC状态位
UDS诊断 - DTC 严重性和类别定义


DTC 状态位

BitValue
0testFailed(测试不合格)
1testFailedThisOperationCycle(本操作循环中测试不合格)
2pendingDTC(待定 DTC)
3confirmedDTC(已确认 DTC)
4testNotCompletedSinceLastClear
5testFailedSinceLastClear(自上次清除后测试不合格)
6testNotCompletedThisOperationCycle(本操作循环中测试未完)
7warningIndicatorRequested(请求警告指示灯)

1. 示例1

本示例展示了已确认 DTC(DTC状态掩码 0x08)的 reportNumberOfDTCByStatusMask(按状态掩码报告 DTC 编号)的使用以及多种掩码规则。本服务器的 DTCStatusAvailabilityMask(DTC 状态可用性掩码)为 0x2F。

1.1 假设
服务器共支持 3 个DTC(简单起见),客户端发出请求时状态如下:

DTC P0805-11 “离合器位置传感器对地短路(0x080511)”,statusOfDTC 为 0x24(0010 0100b),pendingDTC 位和 testFailedSinceLastClear 位。

DTC P0A9B-17 “混合电池温度传感器电压超过阈值(0x0A9B17)”,statusOfDTC 为 0x26(0010 0110b)

DTC P2522-1F A/C 请求 “B” - 电路不时断开(0x25221F),statusOfDTC 为 0x2F(0010 1111b)。

1.2 消息流

req  19 01 08
resp 59 01 
	 2F - DTC 状态可用性掩码 
	 01 - DTCFormatIdentifier = ISO_14229-1_DTCFormat
	 00 01 - DTC 计数

// 由于仅有 DTC 25221F 的statusOfDTC 0x2F 与 客户端定义状态掩码 0x08 匹配,因此仅向客户端传送计数 1。

2. 示例2

本示例展示了 reportDTCByStatusMask(按状态掩码报告 DTC)子功能参数的使用以及多种掩码规则和未受支持的比特位。本示例同样适用于子功能参数 reportMirrorMemoryDTCByStatusMask(按状态掩码报告镜像内存 DTC)和子功能参数 reportUerDefMemoryDTCBystatusMask(按状态掩码报告用户定义内存 DTC),除非已使用 DTC 镜像内存或用户定义内存中存储的 DTC 执行了状态掩码检查。

2.1 假设
服务器支持所有掩码状态位,第 7 位除外。

服务器共支持 3 个DTC(简单起见),客户端发出请求时状态如下:

DTC P0805-11 “离合器位置传感器对地短路(0x080511)”,statusOfDTC 为 0x2F(0010 1111b)。

DTC P0A9B-17 “混合电池温度传感器电压超过阈值(0x0A9B17)”,statusOfDTC 为 0x24(0010 0100b)

DTC P2522-1F A/C 请求 “B” - 电路不时断开(0x25221F),statusOfDTC 为 0x00(0000 0000b)。

2.2 消息流

req  19 02 84
resp 59 02 
	 7F - DTC 状态可用性掩码 
	 0A 9B 17 24 - DTCAndStatusRecord #1
	 08 05 11 2F - DTCAndStatusRecord #2

// 由于 DTC 25221F 的 statusOfDTC 0x00 与 客户端定义状态掩码 0x84 不匹配,因此未向客户端返回。

3. 示例 3

本示例说明了在没有匹配 DTC 且客户端定义 DTC 状态掩码的情况下,reportDTCBystatusMask(按状态掩码报告 DTC)子功能参数的使用。

3.1 假设
服务器支持所有掩码用状态位,第 7 位除外。

服务器共支持 2 个DTC(简单起见),客户端发出请求时状态如下:

DTC P0A9B-17 “混合电池温度传感器电压超过阈值(0x0A9B17)”,statusOfDTC 为 0x00(000 0000b)。

DTC P2522-1F A/C 请求 “B” - 电路不时断开(0x25221F),statusOfDTC 为 0x00(0x24(0010 0100b)。

3.2 消息流

req  19 02 01
resp 59 02 7F

// 由于没有 DTC 与客户端定义掩码 0x01 匹配,因此不返回任何 DTC。

4. 示例 4

本示例说明了 reportDTCSnapshotIdentification(报告 DTC 快照标识)子功能参数的使用。

4.1 假设
下述假设适用于:

– 服务器具有能够存储指定 DTC 的两个 DTCSnapshot 记录的能力。

– 服务器须显示 DTC 0x123456 当前存储的两个 DTCsnapshot 记录。在本示例中,假定该 DTC 已出现三次(由于服务器内存储空间不足,因此仅存储第一次和最近一次的 DTC 快照记录)。

– 服务器须显示 DTC 0x789ABC 当前存储的一个 DTCsnapshot 记录。

– 所有 DTCsnapshot 记录的存储均以升序排列。

4.2 消息流

req  19 03
resp 59 03
	 12 34 56 01 - DTC 和 快照记录编号 1
	 12 34 56 02 - DTC 和 快照记录编号 2
	 78 9A BC 01 - DTC 和 快照记录编号 1

// 三个 DTCSnapshot 记录返回至客户端请求。

5. 示例 5

本示例说明了 reportDTCSnapshotRecordByDTCNumber(按 DTC 号报告 DTC 快照记录)子功能参数的使用。

本示例也适用于子功能参数 reportUserDefMemoryDTCSnapshotRecordByDTCNumber(按 DTC 编号报告用户定义内存 DTC 快照记录),但以用户定义内存中存储的 DTC 执行的检查除外。

5.1 假设
下述假设适用于:

– 服务器具有能够存储指定 DTC 的两个 DTCSnapshot 记录的能力。

– 本示例假定延续使用先前的示例。

– 假定服务器请求服务器存储的 DTC 号 0x123456 的两个 DTCsnapshot 记录的第二个记录。

– 假定 DTC 0x123456 的statusOfDTC 为 0x24,且每次出现 DTC 时均可获取下述环境数据。

– 通过 dataIdentifier 0x4711 引用 DTCSnapshot 记录数据。

下表为 DTCSnapshot 记录内容。

数据字节DTCSnapshot 记录内容字节值
#1DTCSnapshotRecord [ data #1 ] = ECT(发动机冷却液温度)0xA6
#2DTCSnapshotRecord [ data #2 ] = TP(油门位置)0x66
#3DTCSnapshotRecord [ data #3 ] = RPM(发动机转速)0x07
#4DTCSnapshotRecord [ data #4 ] = RPM(发动机转速)0x50
#5DTCSnapshotRecord [ data #5 ] = MAP(进气歧管绝对压力)0x20

5.2 消息流

req  19 04 12 34 56 02
resp 59 04
	 12 34 56 24 - DTCAndStatusRecord
	 02 - DTCSnapshotRecordNumber
	 01 - DTCSnapshotRecordNumberOfIdentifiers
	 47 11 - DID
	 A6 66 07 50 20 - DTCSnapshotRecord

6. 示例 6

本示例说明了 reportDTCStoredDataByRecordNumber(按记录号报告 DTC 存储记录)子功能参数的使用。

6.1 假设
下述假设适用于:

– 服务器具有能够存储指定 DTC 的两个 DTCStoredDataRecord 的能力。

– 本示例假定延续使用先前的示例。

– 假定服务器请求服务器存储的 DTC 号 0x123456 的两个 DTCStoredDataRecord 记录的第二个记录。

– 假定 DTC 0x123456 的statusOfDTC 为 0x24,且每次出现 DTC 时均可获取下述环境数据。

– 通过 dataIdentifier 0x4711 引用 DTCSnapshot 记录数据。

下表为 DTCStoredData 记录内容。

数据字节DTCStoredData 记录内容字节值
#1DTCStoredDataRecord [ data #1 ] = ECT(发动机冷却液温度)0xA6
#2DTCStoredDataRecord [ data #2 ] = TP(油门位置)0x66
#3DTCStoredDataRecord [ data #3 ] = RPM(发动机转速)0x07
#4DTCStoredDataRecord [ data #4 ] = RPM(发动机转速)0x50
#5DTCStoredDataRecord [ data #5 ] = MAP(进气歧管绝对压力)0x20

6.2 消息流

req  19 05 
	 02 - DTCStoredDataRecordNumber
resp 59 05
	 02 - DTCStoredDataRecordNumber
	 12 34 56 24 - DTCAndStatusRecord
	 08 - DTCStoredDataRecordNumberOfIdentifiers
	 47 11 - DID
	 A6 66 07 50 20 - DTCStoredDataRecord

7. 示例 7

本示例说明了 reportDTCExtDataRecordByDTCNumber(按 DTC 号报告 DTC 扩展数据记录)子功能参数的使用。

本示例也适用于子功能参数 reportUserDefMemoryDTCExtDataRecordByDTCNumber(按 DTC 编号报告用户定义内存 DTC 扩展数据记录),但以用户定义内存中存储的 DTC 执行的检查除外。

7.1 假设
下述假设适用于:

– 服务器具有能够存储指定 DTC 的两个 DTCExtendedRecord 的能力。

– 假定服务器请求服务器存储的 DTC 号 0x123456 所有可用 DTCExtendedRecord 记录。

– 假定 DTC 0x123456 的statusOfDTC 为 0x24,且下述扩展数据适用于该 DTC。

– 通过 DTCExtDataRecordNumber 0x05 和 0x10 引用 DTCExtendedRecord。

下表为 DTCExtDataRecordNumber 0x05 记录内容。

数据字节DTCExtDataRecordNumber 0x05 记录内容字节值
#1暖机循环计数器 - DTC 命令故障指示灯关闭后暖机的循环次数0x17
数据字节DTCExtDataRecordNumber 0x10 记录内容字节值
#1DTC 故障检测计数器 - 每次 DTC 测试检测故障时的增量,每次测试报告无故障时的减量。0x79

7.2 消息流

req  19 06 
	 12 34 56 - DTCMaskRecord
	 0xFF - DTCExtDataRecordNumber 
resp 59 06
	 12 34 56 24 - DTCAndStatusRecord
	 05 - DTCExtDataRecordNumber 
	 17 - DTCExtDataRecord
	 10 - DTCExtDataRecordNumber 
	 79 - DTCExtDataRecord

8. 示例 8

本示例说明了 reportNumberOfDTCBySeverityMaskRecord(按严重性掩码记录报告 DTC 数量)子功能参数的使用。

8.1 假设
在客户端请求时,服务器共支持三个具有下述状态的 DTC:

0x0A9B17,statusOfDTC 0x24(0010 0100b),DTCFunctionalUnit = 0x10,DTCSeverity(DTC严重性) = 0x20(仅严重性第 7 至 5 位有效)。

0x25221F,statusOfDTC 0x00(0000 0000b),DTCFunctionalUnit = 0x10,DTCSeverity(DTC严重性) = 0x20(仅严重性第 7 至 5 位有效)。

0x080511,statusOfDTC 0x2F(0010 1111b),DTCFunctionalUnit = 0x10,DTCSeverity(DTC严重性) = 0x40(仅严重性第 7 至 5 位有效)。

8.2 消息流

在下述示例中,一个计数值返回至客户端,因为 DTC 0x080511 匹配 0xC001 严重性掩码记录定义的客户端(DTC 严重性掩码 = 110x xxxxb,DTC 状态掩码 = 0000 00001b)。

req  19 07
	 C0 - DTCSeverityMaskRecord - DTCSeverityMask
	 01 - DTCSeverityMaskRecord - DTCStatusMask
resp 59 07
	 09 - DTC 状态可用性掩码 
	 01 - DTCFormatIdentifier = ISO_14229-1_DTCFormat
	 00 01 - DTC 计数

9. 示例 9

本示例说明了 reportDTCBySeverityMaskRecord(按严重性掩码记录报告 DTC)子功能参数的使用。

9.1 假设

示例 8 中所述假设与本节所述假设均适用。

在本示例中,DTC 0x080511 匹配 0xC001 严重性掩码记录中定义的客户端(DTC 严重性掩码 = 0xC0 = 110x xxxxb,DTC状态掩码 = 0x01 = 0000 0001b)并报告至客户端。DTC 0x080511 严重性是 0x40(010x xxxxb)。

服务器支持所有掩码用状态位,第 7位除外。

9.2 消息流

下述示例中,一个 DTCSeverityRecord 返回至客户端请求。

req  19 08 C0 01
resp 59 08 
	 7F - DTC 状态可用性掩码
	 40 - DTCSeverityRecord - DTCSeverity
	 10 - DTCSeverityRecord - DTCFunctionalUnit
	 08 05 11 2F - DTC 和DTC状态

10. 示例 10

本示例说明了 reportSeverityInformationOfDTC(报告 DTC 严重性信息)子功能参数的使用。

10.1 假设

示例 9 中所述均适用

10.2 消息流
在本示例中,将匹配 DTC 掩码记录指定客户端的 0x080511 报告至客户端。

req  19 09 08 05 11
resp 59 09 
	 7F - DTC 状态可用性掩码
	 40 - DTCSeverityRecord - DTCSeverity
	 10 - DTCSeverityRecord - DTCFunctionalUnit
	 08 05 11 2F - DTC 和DTC状态

11. 示例 11

本示例说明了 reportSupportDTC(报告支持的 DTC)子功能参数的使用。

11.1 假设

示例 10 中所述均适用。此外,下述假设也适用:

– 在客户端请求时,服务器共支持三个具有下述状态的 DTC(简单起见)。

– DTC 0x123456,statusOfDTC = 0x24(0010 0100b)。

– DTC 0x234505,statusOfDTC = 0x00(0000 0000b)。

– DTC 0xABCD01,statusOfDTC = 0x2F(0010 1111F)。

11.2 消息流

在下述示例中,上述三个 DTC 均是可支持的,因此全部返回至客户端请求。

req  19 0A
resp 59 09 0A
	 7F - DTC 状态可用性掩码
	 12 34 56 24 - DTCAndStatusRecord #1
	 23 45 05 00 - DTCAndStatusRecord #2
	 AB CD 01 2F - DTCAndStatusRecord #3

12. 示例 12

本示例说明了假定上一次服务器 0x14 服务请求后 DTC 至少测试失败一次时,reportFirstTestFailedDTC(报告首次测试失败的 DTC)的子功能参数。

如果自上一次服务器 0x14 服务请求后 DTC 正好测试失败一次,则服务器会自客户端返回 reportMostRecentTestFailedDTC(报告最新测试失败的 DTC)对应的相同信息。

在本示例中,reportFirstTestFailedDTC(报告首次测试失败的 DTC)对应返回的 DTC 状态在进行请求时已不再是最新状态(请求服务器报告最新失败的 / 确认的 DTC 时可能会出现相同的情况)。

下述示例中的请求 / 响应消息的一般格式也适用于子功能参数 reportFirstConfirmedDTC(报告首次确认的 DTC)、reportMostRecentTestFailedDTC(报告最新测试失败的 DTC)和 reportMostRecentConfirmedDTC(报告最新确认的 DTC)(在相应 DTC 状态和类似假定的情况下)。

12.1 假设

下述假设适用于:

– 自最近一次服务器的 0x14 服务请求后,至少一个 DTC 失败。

– 服务器支持掩码用的所有状态位。

– DTC 0x123456 = 自上次清除故障码后检测到的首个失败的 DTC。

– DTC 0x123456,statusOfDTC = 0x26 = 0010 0110b。

– DTC 0xABCD01,statusOfDTC = 0x2F(0010 1111F)。

12.2 消息流

在下述示例中,上述三个 DTC 均是可支持的,因此全部返回至客户端请求。

req  19 0B
resp 59 0B FF
	 7F - DTC 状态可用性掩码
	 12 34 56 26 - DTCAndStatusRecord

13. 示例 13

本示例说明了假定上一次服务器 0x14 服务请求后没有出现失败的 DTC 时,reportFirstTestFailedDTC(报告首次测试失败的 DTC)的子功能参数。

下述示例中的请求 / 响应消息的一般格式也适用于子功能参数 reportFirstConfirmedDTC(报告首次确认的 DTC)、reportMostRecentTestFailedDTC(报告最新测试失败的 DTC)和 reportMostRecentConfirmedDTC(报告最新确认的 DTC)(在相应 DTC 状态和类似假定的情况下)。

13.1 假设

下述假设适用于:

自最近一次服务器的 0x14 服务请求后,没有出现失败的 DTC。

服务器支持掩码用的所有状态位。

13.2 消息流

在下述示例中,没有 DTC 返回至客户端请求。

req  19 0B
resp 59 0B FF

14. 示例 14

本示例说明了 reportNumberOfEmissionsOBDDTCByStatusMask(按状态掩码报告 OBD 排放 DTC 号)子功能参数以及多个掩码原理。

14.1 假设

服务器支持掩码用的所有状态位。此外,在客户端请求时,服务器共支持三个具有下述状态的与排放相关的 OBD DTC:

OBD DTC P005-00 燃油截止阀 “A” 控制电流 / 开路(0x00500),statusOfDTC = 0xAE= 10101110b。

OBD DTC P022F-00 中冷气旁通控制装置 “B” 高压电路(0x022F00),statusOfDTC = 0xAC= 10101100b。

OBD DTC P0A09-00 DC / DC 转换器状态电路低输入(0x0A0900),statusOfDTC = 0xAF= 10101111b。

14.2 消息流

在下述示例中,三个计数值返回至客户端,因为此类假定中指定的所有 DTC 匹配定义了状态掩码 0x08 - 确认 DTC(0000 1000b)的客户端。

req  19 12 08
resp 59 12 FF
	 00 - DTCFormatIdentifier = SAE_J2012-DA_DTCFormat_00
	 00 03 - DTC 计数

15. 示例 15

本示例说明了 reportEmissionsOBDDTCByStatusMask(按状态掩码报告 OBD 排放 DTC)子功能参数以及多个掩码原理和不支持的掩码位。

15.1 假设

服务器支持掩码用的所有状态位。此外,在客户端请求时,服务器共支持三个具有下述状态的与排放相关的 OBD DTC:

OBD DTC P005-00 燃油截止阀 “A” 控制电流 / 开路(0x00500),statusOfDTC = 0xAE= 10101110b。

OBD DTC P022F-00 中冷气旁通控制装置 “B” 高压电路(0x022F00),statusOfDTC = 0xAC= 10101100b。

OBD DTC P0A09-00 DC / DC 转换器状态电路低输入(0x0A0900),statusOfDTC = 0xAF= 10101111b。

15.2 消息流

在下述示例中,与排放相关的 OBD DTC 0x000500、0x022F00 和 0x0A0900 会返回至客户端请求,因为此类假定中所有的 DTC 匹配定义了 0x80 - 请求指示灯(1000 0000b)状态掩码的客户端。

注:服务器须忽略这些不支持的状态位的掩码。

req  19 13 80
resp 59 13 FF
	 00 05 00 AE - DTCAndStatusRecord #1
	 02 2F 00 AC - DTCAndStatusRecord #2
	 0A 09 00 AF - DTCAndStatusRecord #3

16. 示例 16

本示例说明了 reportEmissionsOBDDTCByStatusMask(按状态掩码报告 OBD 排放 DTC)子功能参数,以及请求服务器在 “confirmedDTC”、“warningIndicatorRequested(MIL = ON)” 和不支持掩码位的状态下报告与排放相关的 OBD DTC 的掩码原理。本示例说明了与排放相关的 OBD DTC 的典型 OBD 诊断仪类请求,该 DTC 造成故障指示灯打开,因此无法通过 I/M(检查和维护)测试。

16.1 假设

服务器不支持掩码用的 0 位(测试失败)、4 位(自上次清除后未完成测试)和 5 位(自上次清除后测试失败)。因此会得到 0xCE(1100 1110b)的 DTCStatusAvailabilityMask 值。

客户端使用 0x88(1000 1000b)值的 DTC 状态掩码,因为仅须向技术员显示 “confirmedDTC = 1” 和 “warningIndicatorRequested = 1”。

服务器共支持三个 DTC,客户端发出请求时状态如下:

DTC P010A-14 空气质量或体积 “A” - 对地短路或开路(0x010A14),statusOfDTC = 0x00 = 0000 0000b。

DTC P0180-17 燃料温度传感器 “A” - 电路电流超出范围(0x018017),statusOfDTC = 0x8E = 1000 1110b。

DTC P0190-1D 燃油轨压传感器 “A” - 电路电流超出范围(0x01901D),statusOfDTC = 0x8E = 1000 1110b。

16.2 消息流

在下述示例中,0x018017 和 0x01901D 返回至客户端。

注:服务器须忽略这些不支持的状态位的掩码。

req  19 13 88
resp 59 13 CE
	 01 80 17 8E - DTCAndStatusRecord #1
	 01 90 1D 8E - DTCAndStatusRecord #2

17. 示例 17

本示例说明了 reportDTCExtDataRecordByRecordNumber(按记录号报告 DTC 扩展数据记录)子功能参数的使用。

17.1 假设

下述假定适用于:

a)服务器具有能够存储所有 DTC 的两个 DTCExtendedData 记录的能力。

b)假定服务器请求服务器存储的记录号 0x05 所有可用 DTCExtendedData 记录。

c)假定 DTC 0x123456 的 statusOfDTC 为 0x24,且下述扩展数据适用于该 DTC。

d)通过 DTCExtDataRecordNumber 0x05 引用 DTCExtendedData。

e)假定 DTC 0x234561 的statusOfDTC 为 0x24,且下述扩展数据适用于该 DTC。

d)通过 DTCExtDataRecordNumber 0x05 引用 DTCExtendedData。

下表为 DTC 0x123456 的 DTCExtDataRecordNumber 0x05 记录内容。

数据字节DTCExtDataRecordNumber 0x05 记录内容字节值
#1暖机循环计数器 - DTC 命令故障指示灯关闭后暖机的循环次数0x17

下表为 DTC 0x234561 的 DTCExtDataRecordNumber 0x05 记录内容。

数据字节DTCExtDataRecordNumber 0x05 记录内容字节值
#1暖机循环计数器 - DTC 命令故障指示灯关闭后暖机的循环次数0x79

17.2 消息流

在下述示例中,客户端会请求包括 DTC 号和 0x05 值 DTCExtDataRecordNumber 的 DTCMaskRecord(报告所有的 DTC 扩展数据记录)。服务器返回客户端提交的记录 DTC 扩展数据记录号的两个 DTC。

req  19 16 
	 05 - DTCExtDataRecordNumber
resp 59 16
	 12 34 56 24 - DTCAndStatusRecord #1
	 05 - DTCExtDataRecordNumber
	 17 - DTCExtendedData
	 23 45 61 24 - DTCAndStatusRecord #2
	 05 - DTCExtDataRecordNumber
	 79 - DTCExtendedData

18. 示例 18

本示例说明了确认DTC(DTC 状态掩码 0x08)的 reportWWHOBDDTCByMaskRecord(按掩码记录报告 WWHOBD DTC)子功能参数。车辆使用连接了两个与排放相关的服务器的 CAN 总线。

客户端使用下述请求参数设置:

– FunctionalGroupIdentifier = 0x33(排放系统组件),

– DTCSeverityMaskRecord.DTCSeverityMask = 0xFF(报告 DTC 的严重性和类状态),

– DTCSeverityMaskRecord.DTCStatusMask = 0x08(报告 DTC 的确认 DTC 状态 = ‘1’)。

服务器支持下述设置:

– FunctionalGroupIdentifier = 0x33(排放系统组件),

– DTCStatusAvailabilityMask = 0xFF,

– DTCSeverityAvailabilityMask = 0xFF,

–DTCFormatIdentifier = SAE_J2012-DA_DTCFormat_04 = 0x04。

18.1 假设

服务器共支持 3 个DTC(简单起见),客户端发出请求时状态如下:

DTC P0805-11 “离合器位置传感器对地短路(0x080511)”,statusOfDTC 为 0x24(0010 0100b),pendingDTC 位和 testFailedSinceLastClear 位。

DTC P0235-12 涡轮增压器 / 增压器增压传感器 “A” - 对电池短路”,statusOfDTC 为 0x2E(0010 1110b)

DTC P2522-1F A/C 请求 “B” - 电路不时断开(0x25221F),statusOfDTC 为 0x2F(0010 1111b)。

18.2 消息流

在下述示例中,服务器 1 仅报告 DTC 0x25221F,因为 0x2F(0010 1111b)DTC 状态匹配定义 0x08(0000 1000b)状态掩码的客户端。服务器 2 报告 DTC 0x023512,因为 0x2E(0010 1110b)DTC 状态匹配定义了 0x08 状态掩码的客户端。

req  19 42 
	 33 - FunctionalGroupIdentifier
	 08 - DTCSeverityMaskRecord.DTCStatusMask
	 FF - DTCSeverityMaskRecord.DTCSeverityMask

// 服务器 1 响应信息
resp 59 42
	 33 - FunctionalGroupIdentifier
	 FF - DTCStatusAvailabilityMask
	 FF - DTCSeverityAvailabilityMask
	 04 - DTCFormatIdentifier = SAE_J2012-DA_DTCFormat_04
	 20 25 22 1F 2F - DTCAndSeverityRecord

// 服务器 1 响应信息
resp 59 42
	 33 - FunctionalGroupIdentifier
	 FF - DTCStatusAvailabilityMask
	 FF - DTCSeverityAvailabilityMask
	 04 - DTCFormatIdentifier = SAE_J2012-DA_DTCFormat_04
	 20 02 35 12 2E - DTCAndSeverityRecord
  • 35
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值