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 严重性和类别定义
文章目录
- UDS 诊断服务系列文章目录
- 1. 肯定响应消息定义
- 1) sub-function = 0x01,0x07,0x11,0x12
- 2) sub-function = 0x02,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x13,0x15
- 3) sub-function = 0x03
- 4) sub-function = 0x04
- 5) sub-function = 0x05
- 6) sub-function = 0x06,0x10
- 7) sub-function = 0x08,0x09
- 8) sub-function = 0x14
- 9) sub-function = 0x16
- 10) sub-function = 0x17
- 11) sub-function = 0x18
- 12) sub-function = 0x19
- 13) sub-function = 0x42
- 14) sub-function = 0x55
- 2. 肯定响应消息数据参数定义
- 3. 支持的NRC
1. 肯定响应消息定义
1) sub-function = 0x01,0x07,0x11,0x12
sub-function = reportNumberOfDTCByStatusMask(0x01)
reportNumberOfDTCBySeverityMaskRecord(0x07)
reportNumberOfMirrorMemoryDTCByStatusMask(0x11)
reportNumberOfEmissionsOBDDTCByStatusMask(0x12)
字节 | 参数名称 | 字节值 | Cvt |
---|---|---|---|
#1 | ReadDTCInformation(读取 DTC 信息)响应SID | 0x59 | M |
#2 | reportType = [ 0x01,0x07,0x11,0x12 ] | 0x01,0x07,0x11,0x12 | M |
#3 | DTCStatusAvailabilityMask(DTC 状态可用性掩码) | 0x00 - 0xFF | M |
#4 | DTCFormatIdentifier | 0x00 - 0x04 | M |
#5 #6 | DTCCount[] = [
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 信息)响应SID | 0x59 | M |
#2 | reportType = [ 0x02,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x13,0x15 ] | 0x02,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x13,0x15 | M |
#3 | DTCStatusAvailabilityMask(DTC 状态可用性掩码) | 0x00 - 0xFF | M |
#4 #5 #6 #7 #8 #9 #10 #11 .. #n-3 n-2 n-1 n | DTCAndStatusRecord[] = [
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 信息)响应SID | 0x59 | M |
#2 | reportType = 0x03 | 0x03 | M |
#3 #4 #5 | DTCRecord[]#1 = [
DTCMiddleByte DTCLowByte ] | 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF | C1 C1 C1 |
#6 | DTCSnapshotRecordNumber#1(DTC快照记录编号 1) | 0x00 - 0xFF | C1 |
.. | .. | .. | .. |
#n-3 #n-2 #n-1 | DTCRecord[]#m = [
DTCMiddleByte DTCLowByte ] | 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF | C2 C2 C2 |
#n | DTCSnapshotRecordNumber#m(DTC快照记录编号 m) | 0x00 - 0xFF | C2 |
C1:仅当存在至少一条可供报告 DTCSnapshot 记录时呈现 DTCRecord 和 DTCSnapshotRecordNumber 参数。
C2:仅当存在一条以上可供报告 DTCSnapshot 记录时呈现 DTCRecord 和 DTCSnapshotRecordNumber 参数。
4) sub-function = 0x04
sub-function = reportDTCSnapshotRecordByDTCNumber(0x04)
字节 | 参数名称 | 字节值 | Cvt |
---|---|---|---|
#1 | ReadDTCInformation(读取 DTC 信息)响应SID | 0x59 | M |
#2 | reportType = 0x04 | 0x04 | M |
#3 #4 #5 #6 | DTCAndStatusRecord[]#1 = [
DTCMiddleByte DTCLowByte statusOfDTC ] | 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF | M M M M |
#7 | DTCSnapshotRecordNumber#1(DTC 快照记录编号 1) | 0x00 - 0xFF | C1 |
#8 | DTCSnapshotRecordNumberOfIdentifiers#1(DTC 快照记录标识符编号 1) | 0x00 - 0xFF | C1 |
#9 #10 #11 .. #11+(p-1) .. #r-(m-1)-2 #r-(m-1)-1 #r-(m-1) .. #r | DTCSnapshotRecord[]#1 = [
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 - 0xFF | C3 |
#t+1 | DTCSnapshotRecordNumberOfIdentifiers#x(DTC 快照记录标识符编号 x) | 0x00 - 0xFF | C3 |
#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#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 信息)响应SID | 0x59 | M |
#2 | reportType = 0x05 | 0x05 | M |
#3 | DTCStoredDataRecordNumber#1(DTC 存储记录数据记录编号 1) | 0x00 - 0xFF | M |
#4 #5 #6 #7 | DTCAndStatusRecord[]#1 = [
DTCMiddleByte DTCLowByte statusOfDTC] | 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF | C1 C1 C1 C1 |
#8 | DTCStoredDataRecordNumberOfIdentifiers#1(DTC 存储数据记录标识符编号 1) | 0x00 - 0xFF | C1 |
#9 #10 #11 .. #11+(p-1) .. #r-(m-1)-2 #r-(m-1)-1 #r-(m-1) .. #r | DTCStoredDataRecord[]#1 = [
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 - 0xFF | C3 |
#t+1 #t+2 #t+3 #t+4 | DTCAndStatusRecord[]#x = [
DTCMiddleByte DTCLowByte statusOfDTC] | 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF | C3 C3 C3 C3 |
#t+5 | DTCStoredDataRecordNumberOfIdentifiers#x(DTC 存储数据记录标识符编号 x) | 0x00 - 0xFF | C3 |
#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#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 信息)响应SID | 0x59 | M |
#2 | reportType = [ 0x06,0x10 ] | 0x06,0x10 | M |
#3 #4 #5 #6 | DTCAndStatusRecord[] = [
DTCMiddleByte DTCLowByte statusOfDTC] | 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF | C1 C1 C1 C1 |
#7 | DTCExtDataRecordNumber#1(DTC 扩展数据记录编号 1) | 0x00 - 0xFF | M |
#8 .. #8+(p-1) | DTCExtDataRecord[]#1 = [
.. extendData#1 byte#p] | 0x00 - 0xFF .. 0x00 - 0xFF | C1 .. C1 |
.. | .. | .. | .. |
#t | DTCExtDataRecordNumber#x(DTC 扩展数据记录编号 x) | 0x00 - 0xFF | C2 |
#t+1 .. #t+1+(q-1) | DTCExtDataRecord[]#x = [
.. 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 信息)响应SID | 0x59 | M |
#2 | reportType = [ 0x08,0x09 ] | 0x08,0x09 | M |
#3 | DTCStatusAvailabilityMask(DTC 状态可用性掩码) | 0x00 - 0xFF | M |
#4 #5 #6 #7 #8 #9 .. #n-5 #n-4 #n-3 #n-2 #n-1 #n | DTCAndSeverityRecord[] =[
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 信息)响应SID | 0x59 | M |
#2 | reportType = 0x14 | 0x14 | M |
#3 #4 #5 #6 #7 #8 #9 #10 .. #n-3 #n-2 #n-1 #n | DTCAndSeverityRecord[] =[
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 信息)响应SID | 0x59 | M |
#2 | reportType = 0x16 | 0x16 | M |
#3 | DTCExtDataRecordNumber(DTC 扩展数据记录编号) | 0x00 - 0xFF | M |
#4 #5 #6 #7 | DTCAndStatusRecord[]#1 = [
DTCMiddleByte DTCLowByte statusOfDTC ] | 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF | C1 C1 C1 C1 |
#8 .. #8+(p-1) | DTCExtDataRecord[]#1 = [
.. extendData#1 byte#p] | 0x00 - 0xFF .. 0x00 - 0xFF | C1 .. C1 |
.. | .. | .. | .. |
#t #t+1 #t+2 #t+3 | DTCAndStatusRecord[]#x = [
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#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 信息)响应SID | 0x59 | M |
#2 | reportType = 0x17 | 0x17 | M |
#3 | MemorySelection(内存选择) | 0x00 - 0xFF | M |
#4 | DTCStatusAvailabilityMask(DTC 状态可用性掩码) | 0x00 - 0xFF | M |
#5 #6 #7 #8 #9 #10 #11 #12 .. #n-3 #n-2 #n-1 #n | DTCAndSeverityRecord[] =[
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 信息)响应SID | 0x59 | M |
#2 | reportType = 0x18 | 0x18 | M |
#3 | MemorySelection(内存选择) | 0x00 - 0xFF | M |
#4 #5 #6 #7 | DTCAndStatusRecord[]#1 = [
DTCMiddleByte DTCLowByte statusOfDTC ] | 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF | M M M M |
#8 | DTCSnapshotRecordNumber#1(DTC 快照记录编号 1) | 0x00 - 0xFF | C1 |
#9 | DTCSnapshotRecordNumberOfIdentifiers#1(DTC 快照记录标识符编号 1) | 0x00 - 0xFF | C1 |
#10 #11 #12 .. #12+(p-1) .. #r-(m-1)-2 #r-(m-1)-1 #r-(m-1) .. #r | DTCStoredDataRecord[]#1 = [
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 - 0xFF | C3 |
#t+1 | DTCSnapshotRecordNumberOfIdentifiers#x(DTC 快照记录标识符编号 x) | 0x00 - 0xFF | C3 |
#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#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 信息)响应SID | 0x59 | M |
#2 | reportType = 0x19 | 0x19 | M |
#3 | MemorySelection(内存选择) | 0x00 - 0xFF | M |
#4 #5 #6 #7 | DTCAndStatusRecord[]#1 = [
DTCMiddleByte DTCLowByte statusOfDTC ] | 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF 0x00 - 0xFF | M M M M |
#8 | DTCExtDataRecordNumber#1(DTC 扩展数据记录编号 1) | 0x00 - 0xFF | M |
#9 .. #9+(p-1) | DTCExtDataRecord[]#1 = [
.. extendData#1 byte#p] | 0x00 - 0xFF .. 0x00 - 0xFF | C1 .. C1 |
.. | .. | .. | .. |
#t+1 .. #t+1+(q-1) | DTCExtDataRecord[]#x = [
.. 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 信息)响应SID | 0x59 | M |
#2 | reportType = 0x42 | 0x42 | M |
#3 | FunctionalGroupIdentifier(功能组标识符) | 0x00 - 0xFF | M |
#4 | DTCStatusAvailabilityMask(DTC 状态可用性掩码) | 0x00 - 0xFF | M |
#5 | DTCSeverityAvailabilityMask(DTC 严重性可用性掩码) | 0x00 - 0xFF | M |
#6 | DTCFormatIdentifier | 0x04 / 0x02 | M |
#7 #8 #9 #10 #11 .. #n-4 #n-3 #n-2 #n-1 #n | DTCAndSeverityRecord[] =[
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 信息)响应SID | 0x59 | M |
#2 | reportType = 0x55 | 0x55 | M |
#3 | FunctionalGroupIdentifier(功能组标识符) | 0x00 - 0xFF | M |
#4 | DTCStatusAvailabilityMask(DTC 状态可用性掩码) | 0x00 - 0xFF | M |
#5 | DTCFormatIdentifier | 0x04 / 0x02 | M |
#6 #7 #8 #9 .. #n-3 #n-2 #n-1 #n | DTCAndStatusRecord[] =[
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 的格式。
|
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:
|