UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(3) - 响应消息

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 诊断 - InputOutputControlByIdentifier(按标识符的输入输出控制)(0x2F)服务
例程功能单元
UDS 诊断 - RoutineControl(例程控制)(0x31)服务
上传下载功能单元
UDS 诊断 - RequestDownload(请求下载)(0x34)服务
UDS 诊断 - RequestUpload(请求上传)(0x35)服务
UDS 诊断 - TransferData(传输数据)(0x36)服务
UDS 诊断 - RequestTransferExit(请求传输终止)(0x37)服务
UDS 诊断 - RequestFileTransfer(请求文件传输)(0x38)服务

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


1. 肯定响应消息定义

1) sub-function = 0x01,0x07,0x11,0x12

sub-function = reportNumberOfDTCByStatusMask(0x01)
                          reportNumberOfDTCBySeverityMaskRecord(0x07)
                          reportNumberOfMirrorMemoryDTCByStatusMask(0x11)
                          reportNumberOfEmissionsOBDDTCByStatusMask(0x12)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = [ 0x01,0x07,0x11,0x12 ] 0x01,0x07,0x11,0x12M
#3 DTCStatusAvailabilityMask(DTC 状态可用性掩码)0x00 - 0xFFM
#4 DTCFormatIdentifier0x00 - 0x04M
#5
#6
DTCCount[] = [
DTCCountHighByte
DTCCountLowByte ]

0x00 - 0xFF
0x00 - 0xFF

M
M

2) sub-function = 0x02,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x13,0x15

sub-function = reportDTCByStatusMask(0x02)
                          reportSupportedDTCs(0x0A)
                          reportFirstTestFailedDTC(0x0B)
                          reportFirstConfirmedDTC(0x0C)
                          reportMostRecentTestFailedDTC(0x0D)
                          reportMostRecentConfirmedDTC(0x0E)
                          reportMirrorMemoryDTCByStatusMask(0x0F)
                          reportEmissionsOBDDTCBystatusMask(0x13)
                          reportDTCWithPermanentStatus(0x15)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = [ 0x02,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x13,0x15 ] 0x02,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x13,0x15M
#3 DTCStatusAvailabilityMask(DTC 状态可用性掩码)0x00 - 0xFFM

#4
#5
#6
#7
#8
#9
#10
#11
..
#n-3
n-2
n-1
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 ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C1
C1
C1
C1
C2
C2
C2
C2
..
C2
C2
C2
C2

C1:本参数仅在有可报告 DTC 信息时呈现。
C2:本参数仅在 reportType = 0x02,0x0A,0x0F,0x13且有一个以上 DTC 信息可供报告时呈现。

3) sub-function = 0x03

sub-function = reportDTCSnapshotIdentification(0x03)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x03 0x03M

#3
#4
#5
DTCRecord[]#1 = [
DTCHighByte
DTCMiddleByte
DTCLowByte ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C1
C1
C1
#6 DTCSnapshotRecordNumber#1(DTC快照记录编号 1)0x00 - 0xFFC1
.. ......

#n-3
#n-2
#n-1
DTCRecord[]#m = [
DTCHighByte
DTCMiddleByte
DTCLowByte ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C2
C2
C2
#n DTCSnapshotRecordNumber#m(DTC快照记录编号 m)0x00 - 0xFFC2

C1:仅当存在至少一条可供报告 DTCSnapshot 记录时呈现 DTCRecord 和 DTCSnapshotRecordNumber 参数。
C2:仅当存在一条以上可供报告 DTCSnapshot 记录时呈现 DTCRecord 和 DTCSnapshotRecordNumber 参数。

4) sub-function = 0x04

sub-function = reportDTCSnapshotRecordByDTCNumber(0x04)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x04 0x04M

#3
#4
#5
#6
DTCAndStatusRecord[]#1 = [
DTCHighByte
DTCMiddleByte
DTCLowByte
statusOfDTC ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

M
M
M
M
#7 DTCSnapshotRecordNumber#1(DTC 快照记录编号 1)0x00 - 0xFFC1
#8 DTCSnapshotRecordNumberOfIdentifiers#1(DTC 快照记录标识符编号 1)0x00 - 0xFFC1

#9
#10
#11
..
#11+(p-1)
..
#r-(m-1)-2
#r-(m-1)-1
#r-(m-1)
..
#r
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]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF

C1
C1
C1
..
C1
..
C2
C2
C2
..
C2
.. ......
#t DTCSnapshotRecordNumber#x(DTC 快照记录编号)0x00 - 0xFFC3
#t+1 DTCSnapshotRecordNumberOfIdentifiers#x(DTC 快照记录标识符编号 x)0x00 - 0xFFC3

#t+2
#t+3
#t+5
..
#t+5+(p-1)
..
#n-(u-1)-2
#n-(u-1)-1
#n-(u-1)
..
#n
DTCSnapshotRecord[]#x = [
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#u]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF

C3
C3
C3
..
C3
..
C4
C4
C4
..
C4

C1:仅当存在至少一条可报告 DTCSnapshot 记录时呈现 DTCSnapshotRecordNumber 和 DTCSnapshot 参数中的首个 dataIdentifier / snapshotData 组合。
C2/C4:单个 DTCSnapshotRecord 中存在多个可供呈现的 dataIdentifier / snapshotData 组合。例如单个数据标识符指向一个数据集合。如果 dataIdentifier 指向一个数据块,则可使用单个 dataIdentifier / snapshotData 组合。
C3:仅当请求报告所有记录(请求中 DTCSnapshotRecordNumber 设置为 0xFF)且存在一个以上可供报告的记录时呈现 DTCSnapshotRecordNumber 和 DTCSnapshotRecord 参数中的首个 dataIdentifier / snapshotData 组合。

5) sub-function = 0x05

sub-function = reportDTCStoreDataByRecordNumber(0x05)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x05 0x05M
#3 DTCStoredDataRecordNumber#1(DTC 存储记录数据记录编号 1)0x00 - 0xFFM

#4
#5
#6
#7
DTCAndStatusRecord[]#1 = [
DTCHighByte
DTCMiddleByte
DTCLowByte
statusOfDTC]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C1
C1
C1
C1
#8 DTCStoredDataRecordNumberOfIdentifiers#1(DTC 存储数据记录标识符编号 1)0x00 - 0xFFC1

#9
#10
#11
..
#11+(p-1)
..
#r-(m-1)-2
#r-(m-1)-1
#r-(m-1)
..
#r
DTCStoredDataRecord[]#1 = [
dataIdentifier#1 byte#1(MSB)
dataIdentifier#1 byte#2(LSB)
DTCStoredData#1 byte#1
..
DTCStoredData#1 byte#p
..
dataIdentifier#w byte#1(MSB)
dataIdentifier#w byte#2(LSB)
DTCStoredData#w byte#1
..
DTCStoredData#w byte#m]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF

C1
C1
C1
..
C1
..
C2
C2
C2
..
C2
.. ......
#t DTCStoredDataRecordNumber#x(DTC 存储记录数据记录编号 x)0x00 - 0xFFC3

#t+1
#t+2
#t+3
#t+4
DTCAndStatusRecord[]#x = [
DTCHighByte
DTCMiddleByte
DTCLowByte
statusOfDTC]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C3
C3
C3
C3
#t+5 DTCStoredDataRecordNumberOfIdentifiers#x(DTC 存储数据记录标识符编号 x)0x00 - 0xFFC3

#t+6
#t+7
#t+8
..
#t+8+(p-1)
..
#n-(u-1)-2
#n-(u-1)-1
#n-(u-1)
..
#n
DTCStoredDataRecord[]#x = [
dataIdentifier#1 byte#1(MSB)
dataIdentifier#1 byte#2(LSB)
DTCStoredData#1 byte#1
..
DTCStoredData#1 byte#p
..
dataIdentifier#w byte#1(MSB)
dataIdentifier#w byte#2(LSB)
DTCStoredData#w byte#1
..
DTCStoredData#w byte#u]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF

C3
C3
C3
..
C3
..
C4
C4
C4
..
C4

C1:仅当存在至少一条可报告 DTCSnapshot 记录时呈现 DTCAndStatusRecord 和 DTCStoredDataRecord 参数中的首个 dataIdentifier / DTCStoredData 组合。
C2/C4:单个 DTCStoredDataRecord 中存在多个可供呈现的 dataIdentifier / DTCStoredData 组合。例如单个数据标识符指向一个数据集合。如果 dataIdentifier 指向一个数据块,则可使用单个 dataIdentifier / DTCStoredData 组合。
C3:仅当请求报告所有记录(请求中 DTCStoredDataRecordNumber 设置为 0xFF)且存在一个以上可供报告的记录时呈现 DTCStoredDataRecordNumber、DTCAndStatusRecord 以及 DTCStoredDataRecord 参数中的首个 dataIdentifier / DTCStoredData 组合。

6) sub-function = 0x06,0x10

sub-function = reportDTCExtDataRecordByDTCNumber(0x06)
                          reportMirrorMemoryDTCExtDataRecordByDTCNumber(0x10)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = [ 0x06,0x10 ] 0x06,0x10M

#3
#4
#5
#6
DTCAndStatusRecord[] = [
DTCHighByte
DTCMiddleByte
DTCLowByte
statusOfDTC]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C1
C1
C1
C1
#7 DTCExtDataRecordNumber#1(DTC 扩展数据记录编号 1)0x00 - 0xFFM

#8
..
#8+(p-1)
DTCExtDataRecord[]#1 = [
extendData#1 byte#1
..
extendData#1 byte#p]

0x00 - 0xFF
..
0x00 - 0xFF

C1
..
C1
........
#t DTCExtDataRecordNumber#x(DTC 扩展数据记录编号 x)0x00 - 0xFFC2

#t+1
..
#t+1+(q-1)
DTCExtDataRecord[]#x = [
extendData#x byte#1
..
extendData#x byte#q]

0x00 - 0xFF
..
0x00 - 0xFF

C2
..
C2

C1:仅当存在至少一条可报告 DTCExtDataRecord 记录时呈现 DTCExtDataRecordNumber 以及 DTCExtDataRecord 参数中的 extendData。
C2:仅当请求报告所有记录(请求中 DTCExtDataRecordNumber 设置为 0xFE 或 0xFF)且存在一个以上可供报告的记录时呈现 DTCExtDataRecordNumber 以及 DTCExtDataRecord 参数中的 extendData。

7) sub-function = 0x08,0x09

sub-function = reportDTCBySeverityMaskRecord(0x08)
                          reportSeverityInformationOfDTC(0x09)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = [ 0x08,0x09 ] 0x08,0x09M
#3 DTCStatusAvailabilityMask(DTC 状态可用性掩码)0x00 - 0xFFM

#4
#5
#6
#7
#8
#9
..
#n-5
#n-4
#n-3
#n-2
#n-1
#n
DTCAndSeverityRecord[] =[
DTCSeverity#1
DTCFunctionalUnit#1
DTCHightByte#1
DTCMiddleByte#1
DTCLowByte#1
statusOfDTC#1
..
DTCSeverity#m
DTCFunctionalUnit#m
DTCHightByte#m
DTCMiddleByte#m
DTCLowByte#1
statusOfDTC#m ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C1
C1
C1
C1
C1
C1
..
C2
C2
C2
C2
C2
C2

C1:当至少一个 DTC 与客户定义 DTC 严重性掩码匹配时应呈现 reportDTCBySeverityMaskRecord 这个参数。如果服务器支持请求消息中规定的 DTC,则应呈现 reportSeverityInformationOfDTC 这个参数。
C2:当 reportType = reportDTCBySeverityMaskRecord 时仅呈现本参数记录。当存在一个以上 DTC 与客户定义 DTC 严重性掩码匹配时应呈现这个参数。

8) sub-function = 0x14

sub-function = reportDTCFaultDetectionCounter(0x14)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x14 0x14M

#3
#4
#5
#6
#7
#8
#9
#10
..
#n-3
#n-2
#n-1
#n
DTCAndSeverityRecord[] =[
DTCHightByte#1
DTCMiddleByte#1
DTCLowByte#1
DTCFaultDetectionCounter#1
DTCHightByte#2
DTCMiddleByte#2
DTCLowByte#2
DTCFaultDetectionCounter#2
..
DTCHightByte#m
DTCMiddleByte#m
DTCLowByte#m
DTCFaultDetectionCounter#m ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x01 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x01 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x01 - 0xFF

C1
C1
C1
C1
C2
C2
C2
C2
..
C2
C2
C2
C2

C1:仅当至少一个 DTC 具有 DTCFaultDetectionCounter(DTC 故障检测计数器)且其正数值小于 0x7F 时呈现本参数。
C2:仅当一个以上 DTC 具有 DTCFaultDetectionCounter(DTC 故障检测计数器)且其正数值小于 0x7F 时呈现本参数。

9) sub-function = 0x16

sub-function = reportDTCExtDataRecordByRecordNumber(0x16)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x16 0x16M
#3 DTCExtDataRecordNumber(DTC 扩展数据记录编号) 0x00 - 0xFFM

#4
#5
#6
#7
DTCAndStatusRecord[]#1 = [
DTCHighByte
DTCMiddleByte
DTCLowByte
statusOfDTC ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C1
C1
C1
C1

#8
..
#8+(p-1)
DTCExtDataRecord[]#1 = [
extendData#1 byte#1
..
extendData#1 byte#p]

0x00 - 0xFF
..
0x00 - 0xFF

C1
..
C1
.. .. ....

#t
#t+1
#t+2
#t+3
DTCAndStatusRecord[]#x = [
DTCHighByte
DTCMiddleByte
DTCLowByte
statusOfDTC ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C2
C2
C2
C2

#t+4
..
#t+4+(p-1)
DTCExtDataRecord[]#x = [
extendData#x byte#1
..
extendData#x byte#p]

0x00 - 0xFF
..
0x00 - 0xFF

C2
..
C2

C1:仅当存在至少一个可供报告的 DTCExtDataRecord 时呈现 DTCAndStatusRecord 和 DTCExtDataRecord 参数。
C2:仅当存在一个以上可供报告的 DTCExtDataRecord 时呈现 DTCAndStatusRecord 和 DTCExtDataRecord 参数。
注:实施程序将规定响应不得超过诊断通信可能使用的长度。

10) sub-function = 0x17

sub-function = reportUserDefMemoryDTCByStatusMask(0x17)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x17 0x17M
#3 MemorySelection(内存选择) 0x00 - 0xFFM
#4 DTCStatusAvailabilityMask(DTC 状态可用性掩码) 0x00 - 0xFFM
#5
#6
#7
#8
#9
#10
#11
#12
..
#n-3
#n-2
#n-1
#n
DTCAndSeverityRecord[] =[
DTCHightByte#1
DTCMiddleByte#1
DTCLowByte#1
statusOfDTC#1
DTCHightByte#2
DTCMiddleByte#2
DTCLowByte#2
statusOfDTC#2
..
DTCHightByte#m
DTCMiddleByte#m
DTCLowByte#m
statusOfDTC#m ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C1
C1
C1
C1
C2
C2
C2
C2
..
C2
C2
C2
C2

C1:本参数仅在有可报告 DTC 时呈现。
C2:本参照仅当存在一个以上可报告 DTC 信息时呈现。

11) sub-function = 0x18

sub-function = reportUserDefMemoryDTCSnapshotRecordByDTCNumber(0x18)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x18 0x18M
#3 MemorySelection(内存选择) 0x00 - 0xFFM

#4
#5
#6
#7
DTCAndStatusRecord[]#1 = [
DTCHighByte
DTCMiddleByte
DTCLowByte
statusOfDTC ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

M
M
M
M
#8 DTCSnapshotRecordNumber#1(DTC 快照记录编号 1) 0x00 - 0xFFC1
#9 DTCSnapshotRecordNumberOfIdentifiers#1(DTC 快照记录标识符编号 1) 0x00 - 0xFFC1

#10
#11
#12
..
#12+(p-1)
..
#r-(m-1)-2
#r-(m-1)-1
#r-(m-1)
..
#r
DTCStoredDataRecord[]#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]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF

C1
C1
C1
..
C1
..
C2
C2
C2
..
C2
.. .. ....
#t DTCSnapshotRecordNumber#x(DTC 快照记录编号 x)0x00 - 0xFFC3
#t+1 DTCSnapshotRecordNumberOfIdentifiers#x(DTC 快照记录标识符编号 x)0x00 - 0xFFC3

#t+2
#t+3
#t+5
..
#t+5+(p-1)
..
#n-(u-1)-2
#n-(u-1)-1
#n-(u-1)
..
#n
DTCSnapshotRecord[]#x = [
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#u]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF

C3
C3
C3
..
C3
..
C4
C4
C4
..
C4

C1:仅当存在至少一条可报告 DTCSnapshot 记录时呈现 DTCSnapshotRecordNumber 以及 DTCSnapshotRecord 参数中的首个 dataIdentifier / snapshotData 组合。
C2/C4:单个 DTCSnapshotRecord 中存在多个可供呈现的 dataIdentifier / snapshotData 组合。例如单个数据标识符指向一个数据集合。如果 dataIdentifier 指向一个数据块,则可使用单个 dataIdentifier / snapshotData 组合。
C3:仅当请求报告所有记录(请求中 DTCSnapshotRecordNumber 设置为 0xFF)且存在一个以上可供报告的记录时呈现 DTCSnapshotRecordNumber 和 DTCSnapshotRecord 参数中的首个 dataIdentifier / snapshotData 组合。

12) sub-function = 0x19

sub-function = reportUserDefMemoryDTCExtDataRecordByDTCNumber(0x19)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x19 0x19M
#3 MemorySelection(内存选择) 0x00 - 0xFFM

#4
#5
#6
#7
DTCAndStatusRecord[]#1 = [
DTCHighByte
DTCMiddleByte
DTCLowByte
statusOfDTC ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

M
M
M
M
#8 DTCExtDataRecordNumber#1(DTC 扩展数据记录编号 1) 0x00 - 0xFFM

#9
..
#9+(p-1)
DTCExtDataRecord[]#1 = [
extendData#1 byte#1
..
extendData#1 byte#p]

0x00 - 0xFF
..
0x00 - 0xFF

C1
..
C1
.. .. ....

#t+1
..
#t+1+(q-1)
DTCExtDataRecord[]#x = [
extendData#x byte#1
..
extendData#x byte#q]

0x00 - 0xFF
..
0x00 - 0xFF

C2
..
C2

C1:仅当存在至少一个可供报告的 DTCExtDataRecord 时呈现 DTCExtDataRecordNumber 以及 DTCExtDataRecord 参数中的 extendedData。
C2:仅当请求报告所有记录(请求中 DTCExtDataRecordNumber 设置为 0xFE 或 0xFF)且存在一个以上可供报告的记录时呈现 DTCExtDataRecordNumber 以及 DTCExtDataRecord 参数中的 extendedData。

13) sub-function = 0x42

sub-function = reportWWHOBDDTCByMaskRecord(0x42)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x42 0x42M
#3 FunctionalGroupIdentifier(功能组标识符) 0x00 - 0xFFM
#4 DTCStatusAvailabilityMask(DTC 状态可用性掩码) 0x00 - 0xFFM
#5 DTCSeverityAvailabilityMask(DTC 严重性可用性掩码)0x00 - 0xFFM
#6 DTCFormatIdentifier 0x04 / 0x02M

#7
#8
#9
#10
#11
..
#n-4
#n-3
#n-2
#n-1
#n
DTCAndSeverityRecord[] =[
DTCSeverity#1
DTCHightByte#1
DTCMiddleByte#1
DTCLowByte#1
statusOfDTC#1
..
DTCSeverity#m
DTCHightByte#m
DTCMiddleByte#m
DTCLowByte#m
statusOfDTC#m ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C1
C1
C1
C1
C1
..
C2
C2
C2
C2
C2

C1:本参数仅在有可报告 DTC 信息时呈现。
C2:本参数仅当存在一个以上可报告 DTC 信息时呈现。

14) sub-function = 0x55

sub-function = reportWWHOBDDTCWithPermanentStatus(0x55)

字节参数名称字节值Cvt
#1 ReadDTCInformation(读取 DTC 信息)响应SID0x59M
#2 reportType = 0x55 0x55M
#3 FunctionalGroupIdentifier(功能组标识符) 0x00 - 0xFFM
#4 DTCStatusAvailabilityMask(DTC 状态可用性掩码) 0x00 - 0xFFM
#5 DTCFormatIdentifier 0x04 / 0x02M

#6
#7
#8
#9
..
#n-3
#n-2
#n-1
#n
DTCAndStatusRecord[] =[
DTCHightByte#1
DTCMiddleByte#1
DTCLowByte#1
statusOfDTC#1
..
DTCHightByte#m
DTCMiddleByte#m
DTCLowByte#m
statusOfDTC#m ]

0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
..
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF
0x00 - 0xFF

C1
C1
C1
C1
..
C2
C2
C2
C2

C1:本参数仅在有可报告 DTC 信息时呈现。
C2:本参数仅当存在一个以上可报告 DTC 信息时呈现。

2. 肯定响应消息数据参数定义

定义
reportType(报告类型)
本参数是对客户端发出请求消息中所提供的第 6 至 第 0 位子功能参数的回显。
DTCAndSeverityRecord(DTC 和严重性记录)
本参数包含了一组或多组符合 SAE_J2012-DA_DTCFormat_00、ISO_14229-1_DTCFormat、SAE_J1939-73_DTCFormat、ISO11992-4_DTCFormat 或 SAE_J2012-DA_DTCFormat_04 的 DTCSeverity(DTC 严重性)、DTCFunctionalUnit(DTC 功能单元)、DTCHighByte、DTCMiddleByte、DTCLowByte 和 statusOfDTC。
DTCSeverity 指示了失败对车辆操作和系统功能的重要性,并允许向驾驶员显示建议措施。
DTCFunctionalUnit 为 1 字节数值,指示了报告 DTC 的对应基本车辆 / 系统功能。DTCFunctionalUnit 的定义取决于具体的实施,应在各实施标准中加以规定。
DTCHighByte、DTCMiddleByte、DTCLowByte三者共同表示服务器所支持的特定故障诊断码的唯一标识号。DTCHighByte 和 DTCMiddleByte 表示受诊断的电路或系统。DTCLowByte 表示电路或系统中的故障类型(如传感器开路、传感器对滴短路、基于算法的失败等等)。
本参数记录包含一组或多组符合 SAE_J1939-73_DTCFormat 的 DTC Severity、DTCFunctionalUnit、SPN(可疑参数编号)、FMI(失效模式标识符)和 OC(事件计数器)。
DTCAndStatusRecord(DTC 和状态记录)
本参数包含了一组或多组符合 ISO_14229-1_DTCFormat、SAE_J2012-DA_DTCFormat_00、SAE_J1939-73_DTCFormat、ISO11992-4_DTCFormat 或 SAE_J2012-DA_DTCFormat_04 的 DTCHighByte、DTCMiddleByte、DTCLowByte 和 statusOfDTC。SAE_J1939-73_DTCFormat 支持 SPN(可疑参数编号)、FMI(失效模式标识符)和 OC(事件计数器)。
DTCHighByte、DTCMiddleByte、DTCLowByte三者共同表示服务器所支持的特定故障诊断码的唯一标识号。
DTCRecord(DTC 状态)
特定 DTC 的状态(如本操作循环测试失败等)。碎玉不受服务器支持的比特位,应报告为 ‘0’。
DTCStatusAvailabilityMask(DTC 状态可用性掩码)
指其比特位定义与 statusOfDTC 相同且表示服务器支持的状态位的字节。不受服务器支持的比特位应设置为 ‘0’。须为所有受服务器支持的 DTC 实施所有受支持的比特位(由数值 ‘1’ 表示)。
DTCFormatIdentifier(DTC 格式标识符)
该参数为 1 字节参数,定义了服务器所报告的 DTC 的格式。
  • 0x00: SAE_J2012-DA_DTCFormat_00
  • 0x01: ISO_14229-1_DTCFormat
  • 0x02: SAE_J1939-73_DTCFormat
  • 0x03: ISO11992-4_DTCFormat
  • 0x04: SAE_J2012-DA_DTCFormat_04
DTCCount(DTC 计数)
本参数为 2 字节参数,统指 reportNumberOfDTCByStatusMask(按状态掩码报告 DTC 数量)或 reportNumberOfMirrorMemoryDTC(报告镜像内存 DTC 数量)请求的响应中发出的 DTCCountHighByte(DTC 计数高位字节)和 DTCCountLowByte。DTCCount 提供与客户端请求所定义 DTCStatusMask 匹配的 DTC 数量。
DTCSnapshotRecordNumber(DTC 快照记录编号)
reportDTCSnapshotRecordByDTCNumber(按 DTC 编号报告 DTC 快照记录)请求客户端规定的 DTCSnapshotRecordNumber 参数回显,或已存储 DTCSnapshot 记录的实际 DTCSnapshotRecordNumber。
DTCSnapshotRecordNumberOfIdentifiers(DTC 快照记录标识符编号)
该参数为单字节参数,表示紧接 DTCSnapshotRecord 中 dataIdentifier 的编号。应使用 0x00 表示对应 DTCSnapshotRecord 中包含一个未定义编号的 dataIdentifier。
DTCSnapshotRecord(DTC 快照记录)
DTCSnapshotRecord 包含系统发生故障后的一个数据值的快照。
DTCStoredDataRecord(DTC 存储数据记录)
包含系统发生故障后的一个冻结帧。
DTCStoredDataRecordNumber(DTC 存储数据记录编号)
reportDTCStoredDataByRecordNumber(按记录编号报告 DTC 存储数据)请求客户端规定的 DTCStoredDataRecordNumber 参数回显,或已存储 DTCStoredDataRecord 的实际 DTCStoredDataRecordNumber。
DTCStoredDataRecordNumber(DTC 存储数据记录编号)
该参数为单字节参数,表示紧接着 DTCStoredDataRecord 中 dataIdentifier 的编号。
DTCExtDataRecordNumber(DTC 扩展数据记录编号)
reportDTCExtDataRecordByDTCNumber(按 DTC 编号报告 DTC 扩展数据记录)请求中客户端规定的 DTCExtDataRecordNumber 参数回显,或已存储 DTCExtendedData 记录的实际 DTCExtDataRecordNumber。
DTCExtDataRecord(DTC 扩展数据)
指可能包含与某个 DTC 相关的扩展状态信息的服务器特定信息块。DTCExtendedData 包含在请求阶段已表示的 DTC 参数值。
DTCFaultDetectionCounterRecord(DTC 故障检测计数器记录)
DTCFaultDetectionCounterRecord 为包含一个或多个 DTC 编号以及 DTC 对应 DTCFaultDetectionCounterRecord 参数值的记录。
DTCFaultDetectionCounter(DTC 故障检测计数器)
报告 DTC 的检测故障数量。
FunctionalGroupIdentifier(功能组标识符)
为单字节标识符,包含一个功能系统组。DTC 与制动器、排放、乘员约束装置、轮胎充气、前向 / 外部照明灯相关。
DTCSeverityAvailabilityMask(DTC 严重性可用性掩码)
指其比特位定义与 DTCSeverity 相同且表示受服务器支持的严重性位的字节。不受服务器支持的比特位应设置为 ‘0’。
MemorySelection(内存选择)
本参数是对客户端发出请求消息中所提供的 MemorySelection 能参数的回显。

3. 支持的NRC

NRC说明
0x12不受支持的子功能
0x13消息长度不正确或格式无效
0x31请求超过限值
下述情况,应发送此 NRC:
  • 客户端规定了一个不被服务器识别的 DTCMaskRecord(DTC 掩码记录);
  • 客户端规定了一个无效 DTCSnapshotRecordNumber / DTCExtDataRecordNumber。注意该情形与以下情形不同:即服务器支持 DTCSnapshotRecordNumber 和 DTCMaskRecord 组合或 DTCExtDataRecordNumber 和 DTCMaskRecord 组合,但目前尚不存在任何与之相关的数据(即所请求的肯定响应无数据);
  • 客户端规定了一个不被服务器所识别的 FunctionalGroupIdentifier(功能组标识符);
  • 服务器无法识别 MemorySelection。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值