8.5 清除诊断信息 ClearDiagnosticInformation (14h)
清除诊断信息服务用于清除电控单元存储器中的一个或多个诊断信息。
8.5.1 报文格式
表 20 清除诊断信息服务的请求报文
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
Request Service Identifier |
M |
14 |
#2 |
Group Of DTC=[ HighByte, MidByte, LowByte] |
M |
00--FF 00--FF 00--FF |
表 21 清除诊断信息服务的肯定响应
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
Positive Response Service ID |
M |
54 |
8.5.2 支持的否定响应码
表 22 清除诊断信息服务的否定响应码
Hex |
Cvt |
Error Text |
13 |
M |
报文长度错误 如果报文长度错误,发送此否定响应码。 |
31 |
M |
请求超出范围 如果特定的“groupOfDTC”参数不支持,发送此否定响应码。 |
72 |
M |
一般编程错误 如果向存储单元读取数据时ECU监测到错误,发送此否定响应码。 |
8.5.3 参数定义
表 23 清除诊断信息服务组定义
Hex |
Description |
Cvt |
FFFF33 |
排放相关系统Emissions-relatedsystems |
U |
100000 |
动力组Powertraingroup |
U |
400000 |
底盘组Chassisgroup |
U |
800000 |
车身组Bodygroup |
U |
C00000 |
网络通信组Networkcommunicationgroup |
U |
FFFFFF |
所有组(所有DTC) |
M |
8.5.4 执行规定
a) 诊断故障信息将在ECU回复肯定响应之前被清除。如果ECU支持存储DTC的多个备份(如:分 别存在RAM和EEPROM中),其应将所存储的DTC信息全部清除;
b) 利用参数“GroupOfDTC”,诊断工具可只清除一个特定的DTC组, 也可清除一个特定的DTC; c)在执行完“清除诊断信息”后,如果接收到读取故障信息的请求,ECU不允许返回任何之前的DTC; d) 当接收到此诊断请求后,即使未存储有DTC ,ECU也需返回肯定响应;
e) 此服务不允许依赖其他的服务,即使故障存储器没有被读取过, ECU也应该清除故障信息。
8.6 读取 DTC 信息 Read DTC Information (19h)
此服务允许诊断工具读取车辆内任意一个或一组ECU中存储的诊断故障代码(DTC)及其相关信息。
ECU应可返回包含排放相关及非排放相关在内的所有DTC信息。ECU允许诊断工具的请求包括(括 号中为子功能):
a)诊断工具可获取与诊断工具定义的DTC状态掩码相匹配的DTC数目(19h 01h);
b) 诊断工具可获取与诊断工具定义的DTC状态掩码相匹配的所有DTC列表和状态信息(19h 02h); c)诊断工具可获取与诊断工具定义的DTC码和DTCsnapshot记录号码(FFh代表所有记录)相关的 DTCSnapshot记录信息(19h 04h);
d)诊断工具可获取与诊断工具定义的DTC码和DTCExtendedDatarecord号码(FFh代表所有记录) 相关的DTCExtendedData记录信息。扩展数据的典型应用是存储与DTC相关的动态信息,如故障发生次 数及最近一个故障的发生时间(19h 06h);
e)诊断工具可获取ECU支持的所有DTC列表和状态信息(19h 0Ah)。
ECU需要支持的通用型DTC请参考最新版的《X集团h事业部_诊断故障码需求附录》。
8.6.1 报文格式
8.6.1.1 读取 DTC 信息–通过状态掩码报告 DTC 数目(19h 01h) 表 24 (19 01)的请求报文
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
Request Service Identifier |
M |
19 |
#2 |
sub-function=[Report Number Of DTC By StatusMask] |
M |
01 |
#3 |
DTC Status Mask |
M |
00-FF |
表 25 (19 01)的肯定响应
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
PositiveResponseServiceID |
M |
59 |
#2 |
reportType=[ReportNumberOfDTCByStatus Mask] |
M |
01 |
#3 |
DTCStatusAvailabilityMask |
M |
00-FF |
#4 |
DTCFormatIdentifier=[SAE_J2012-DA_DTC Format_00] |
M |
00 |
#5 |
DTCCountHighByte |
M |
00-FF |
#6 |
DTCCountLowByte |
M |
00-FF |
8.6.1.2 读取 DTC 信息–通过状态掩码报告 DTC (19h 02h)
表 26 (19 02)请求报文
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
Request Service Identifier |
M |
19 |
#2 |
sub-function=[Report Number Of DTC By Status Mask] |
M |
02 |
#3 |
DTCStatusMask |
M |
00-FF |
表 27 (19 02) 肯定响应
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
PositiveResponseServiceID |
M |
59 |
#2 |
reportType=[ReportNumberOfDTCByStatusMask] |
M |
02 |
#3 |
DTCStatusAvailabilityMask |
M |
00-FF |
#4 |
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] |
C1 |
00-FF |
#5 |
C1 |
00-FF |
|
#6 |
C1 |
00-FF |
|
#7 |
C1 |
00-FF |
|
#8 |
C2 |
00-FF |
|
#9 |
C2 |
00-FF |
|
#10 |
C2 |
00-FF |
|
#11 |
C2 |
00-FF |
|
: |
: |
: |
|
#n-3 |
C2 |
00-FF |
|
#n-2 |
C2 |
00-FF |
|
#n- 1 |
C2 |
00-FF |
|
#n |
C2 |
00-FF |
|
C1:此参数只在有可以报告的DTC信息时存在。 C2:此参数只在需要报告的DTC信息多于一个时存在。 |
8.6.1.3 读取 DTC 信息–通过 DTC 码报告 DTC Snapshot 记录(19h 04h)
表 28 (1904)请求报文
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
RequestServiceIdentifier |
M |
19 |
#2 |
Sub-function=[reportDTCSnapshotRecordByDTCNumber] |
M |
04 |
#3 #4 #5 |
DTCMaskRecord[]=[DTCHighByte ,DTCMiddleByte ,DTCLowByte] |
M |
00-FF 00-FF 00-FF |
#6 |
DTCSnapshotRecordNumber |
M |
00-FF |
表 29 (19 04)的肯定响应
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
PositiveResponseServiceID |
M |
59 |
#2 |
ReportType=[ReportDTCSnapshotRecordByDTCNumber] |
M |
04 |
#3 #4 #5 #6 |
DTCAndStatusRecord[]=[ DTCHighByte DTCMiddleByte DTCLowByte StausOfDTC] |
M |
00-FF 00-FF 00-FF 00-FF |
#7 |
DTCSnapshotRecordNumber#1 |
C1 |
00-FE |
#8 |
DTCSnapshotRecordNumbeOfIdentifierr#1 |
C1 |
00-FF |
#9 #10 #11 … |
DTCSnapshotRecord[]#1=[ dataIdentifier#1byte#1(MSB) dataIdentifier#1byte#2(LSB) snapshotData#1byte#1 … snapshotData#1byte#p … dataIdentifier#wbyte#1(MSB) dataIdentifier#wbyte#2(LSB) snapshotData#wbyte#1 … snapshotData#wbyte#m] |
C1 C2 … C2 |
00-FF |
: |
: |
: |
: |
#t |
DTCSnapshotRecordNumber#x |
C3 |
00-FE |
#t+1 |
DTCSnapshotRecordNumbeOfIdentifierr#x |
C3 |
00-FF |
#t+2 #t+3 #t+4 … |
DTCSnapshotRecord[]#1=[ dataIdentifier#1byte#1(MSB) dataIdentifier#1byte#2(LSB) snapshotData#1byte#1 … snapshotData#1byte#p … dataIdentifier#wbyte#1(MSB) dataIdentifier#wbyte#2(LSB) snapshotData#wbyte#1 … snapshotData#wbyte#u] |
C3 C4 |
00-FF |
C1:参数DTC Snap shot Record Number和DTC Snap shot Record中的第一个data Identifier/snap shot Data组 合存在的条件是至少一个DTC Snap shot 记录可以被报告(请求中DTCSnapshotRecordNumber不等于FFh 或请求中 DTC Snap shot Record Number等于FFh 时只有一个记录可以被报告)。 C2/C4:在一个DTC Snap shot Record 中允许存在多个data Identifier/snap shot Data组合。例如一个data Identifier只代表数据的一部分。当DID代表一块数据时,可以使用一个data Identifier/snap shot Data组 合。 C3:参数DTC Snap shot Record Number和DTC Snap shot Record中的第一个data Identifier/snap shot Data组 合存在的条件是所有记录需要报告时(请求中DTC Snap shot Record Number设为FFh)并且多于一个记录 可以被报告。 |
8.6.1.4 读取 DTC 信息–通过 DTC 码报告 DTC 扩展数据记录(19h 06h)
表 30 (19 06)请求报文
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
RequestServiceIdentifier |
M |
19 |
#2 |
Sub-function=[reportDTCExtendedDataRecordByDTCNumber] |
M |
06 |
#3 #4 #5 |
DTCMaskRecord[]=[ DTCHighByte DTCMiddleByte DTCLowByte] |
M |
00-FF 00-FF 00-FF |
#6 |
DTCExtendedDataRecordNumber |
M |
00-FF |
表 31 (19 06)的肯定响应
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
PositiveResponseServiceID |
M |
59 |
#2 |
reportType=[reportDTCExtendedDataRecordByDTCNumber] |
M |
06 |
#3 #4 #5 #6 |
DTCAndStatusRecord[]=[ DTCHighByte DTCMiddleByte DTCLowByte StausOfDTC] |
M |
00-FF 00-FF 00-FF 00-FF |
#7 |
DTCExtendedDataRecordNumber#1 |
C1 |
00-FD |
#8 … |
DTCExtendedDataRecord[]#1=[ ExtendedData#1byte#1 … ExtendedData#1byte#p] |
C1 … C1 |
00-FF … 00-FF |
… |
… |
… |
… |
… |
DTCExtendedDataRecordNumber#x |
C2 |
00-FD |
… |
DTCExtendedDataRecord[]#x=[ ExtendedData#xbyte#1 … ExtendedData#xbyte#q] |
C2 … C2 |
00-FF … 00-FF |
C1:参数DTC Extended Data Record Number和DTC Extended Data Record中的扩展数据存在的条件是至少 一个DTC Extended Data Record可以被报告(请求中DTC Extended Data Record Number不等于FFh或请求 中DTC Extended Data Record Number等于FFh但只有一个记录可以被报告)。 C2:参数DTC Extended Data Record Number和DTC Extended Data Record中的扩展数据存在的条件是所有 记录需要被报告(请求中DTC Extended Data Record Number设为FFh) 并且多于一个记录可以被报告时存 在。 |
8.6.1.5 读取 DTC 信息–报告支持的 DTC (19h 0Ah)
表 32 (19 0A)请求报文
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
RequestServiceIdentifier |
M |
19 |
#2 |
Sub-function=[reportSupportedDTC] |
M |
0A |
表 33 (19 0A)的肯定响应
Byte |
Name |
Cvt |
Value (Hex) |
#1 |
PositiveResponseServiceID |
M |
59 |
#2 |
reportType=[ reportSupportDTCs] |
M |
0A |
#3 |
DTCStatusAvailabilityMask |
M |
00-FF |
#4 |
DTCHighByte#1 |
C1 |
00-FF |
#5 |
DTCMiddleByte#1 |
C1 |
00-FF |
#6 |
DTCLowByte#1 |
C1 |
00-FF |
#7 |
statusOfDTC#1 |
C1 |
00-FF |
… |
… |
… |
… |
#n-3 |
DTCHighByte#N |
C2 |
00-FF |
#n-2 |
DTCMiddleByte#N |
C2 |
00-FF |
#n- 1 |
DTCLowByte#N |
C2 |
00-FF |
#n |
statusOfDTC#N |
C2 |
00-FF |
C1:此参数只在有可以报告的DTC信息时存在。 C2:此参数只在需要报告的DTC信息多于一个时存在。 |
8.6.2 支持的否定响应码
表 34 读取 DTC 服务的否定响应码
Hex |
Cvt |
ErrorText |
12 |
M |
子功能不支持 如果子功能参数不支持,发送此否定响应码。 |
13 |
M |
报文长度错误 如果报文长度错误,发送此否定响应码。 |
31 |
C1 |
请求超出范围 如下情况时,发送此否定响应码: 1.此ECU不识别诊断工具指定的DTCMaskRecord; 2.诊断工具指定了无效DTCExtendedDataRecordNumber。 |
C1:只有04/06子功能支持NRC31 |
8.6.3 参数定义
该服务使用子功能参数选择DTC报告类型(04/06子功能是否实现,由h事业部与供应商共同决定), 定义如下表(表34):
表 35 读取 DTC 服务的子功能参数定义
Hex |
Description |
Cvt |
01 |
根据状态掩码报告诊断故障代码数量 该参数表示电控单元应向测试工具报告符合状态掩码的诊断故障代码的数 量。 |
M |
02 |
根据状态掩码报告诊断故障代码 该参数表示电控单元应把符合状态掩码的诊断故障代码和相应的状态发送给 测试工具。 |
M |
04 |
根据诊断故障代码报告诊断故障代码快照记录 该参数规定电控单元应将诊断故障代码快照记录发送给测试工具。该快照记录应 符合诊断故障代码和诊断故障代码快照记录编号。 |
U |
06 |
根据诊断故障代码报告诊断故障代码扩展数据记录 该参数规定电控单元应将诊断故障代码扩展数据记录发送给测试工具。 该扩展数 据记录应符合诊断故障代码和诊断故障代码扩展数据记录编号。 |
U |
0A |
报告支持的诊断故障代码 该参数规定电控单元应将支持的所有诊断故障代码和相应的状态发送给测试 工具。 |
M |
8.6.4 执行规定
a)读取DTC信息–通过状态掩码报告DTC数目(19h 01h): 1)使用“通过状态掩码报告DTC数目”子功能服务, 诊断工具可以获取与诊断工具发送的状态
掩码匹配的DTC的数目。此请求的响应包含DTC状态有效掩码(DTC Status Availability Mask),用
于表示ECU支持的DTC状态位。在DTC状态有效掩码后,肯定响应包含了DTC格式标识符(DTC Format Identifier),报告了DTC格式及解码方法的信息。DTC格式标识符后是DTC数目(DTC Count), 是一个2字节无符号数, 表示ECU内存储的与诊断工具定义的状态掩码匹配的DTC的数目。
2)当诊断工具发送清除诊断信息(14h) 服务时, DTC数目将被清除。
b)读取DTC信息–通过状态掩码报告DTC数目(19h 02h):
1)使用“通过状态掩码报告DTC”子功能服务, 诊断工具可以获取与诊断工具发送的状态掩码 匹配的DTC的列表。
2)该服务的处理须按照以下进行:ECU须将诊断工具请求的DTC状态掩码与它支持的各个DTC 实际状态进行“位与”逻辑运算。ECU将不仅返回DTC状态有效掩码, 还有所有“与”运算结果为非零 的所有DTC。(例如,(status Of DTC&DTC Status Mask) !=0) 如果诊断工具规定的状态掩码包含 ECU不支持的位,ECU只须使用其支持的状态位处理DTC信息。如果ECU中没有匹配诊断工具请求 中状态掩码的DTC,在肯定响应报文中, DTC状态有效掩码字节后没有DTC和状态信息;
3)当诊断工具发送清除诊断信息(14h) 服务时, DTC状态信息须被清除。
c)读取DTC信息–通过DTC报告DTCSnapshot记录(19h04h):
1) 使用“通过DTC报告DTC Snap shot记录”子功能服务, 诊断工具可以依据DTC码和DTC Snap shot记录号码获取对应的DTC Snap shot记录数据。ECU须首先通过搜索其支持的DTC列表寻找与请 求报文DTC码匹配的DTC (DTC码(高、中、低字节))。然后如果ECU寻找到记录号码与诊断工具 请求定义的参数DTC Snap shot Record Number完全匹配,响应报文中须包含这个DTC Snap shot Record Number,表示返回的数据是对应请求中的DTC Snap shot记录号码;
2) DTC Snap shot记录包含多个数据参数。这些参数可以用来重建故障发生时整车运行条件 (如: B+ ,RPM,时间戳);
3)在DTCSnapshotRecord报告数据中首先是一个数据标识符,然后是对应的数据,通过该数据 标识符来标识后续的数据。DTC Snap shot Record内可以包含多组数据标识符和数据的组合;
4) 通常,ECU须在一个响应报文中报告一个DTC Snap shot Record。然而,如果诊断工具设置 DTC Snap shot Record Number为FFh ,ECU须在一个响应报文中报告该DTC对应存储的所有DTC Snap shot记录。一个DTC存储多个Snap shot Records的典型应用是用于存储DTC多次发生时记录的 数据, 这些数据体现了(每次) 发生时的整车状况;
5)如果诊断工具通过DTC要求报告所有的DTC Snap shot ,DTC And Status Record只在响应报 文中出现一次。此服务不可以一次请求所有DTC的某Snap shot Record Number,因为请求报文中不 能使用DTC Group number。
6) 如果参数DTC Mask Record或DTC Snap shot Record Number无效或不被ECU支持,ECU应发 送定响应;
7) 如果参数DTC Mask Record和/或DTC Snap shot Record Number在请求中有效并被ECU支持, 但是没有与之对应的DTC Snap shot数据,ECU须发送肯定响应,只包含DTC And Status Record (重 复请求的DTC数(高、中、低字节) 和status Of DTC);
8)当诊断工具发送清除诊断信息(14h) 服务时, DTC Snap shot信息须被清除。
d)读取DTC信息–通过DTC数报告DTC扩展数据记录(19h 06h):
1)使用“通过DTC码报告DTC扩展数据记录”子功能服务,诊断工具可以依据DTC码和DTC扩 展数据的记录号码读取DTC扩展数据。此种情况下,ECU须在其支持的所有DTC中查找与诊断工具 定义的DTC掩码记录完全匹配的DTC。响应须包含一个预定义的DTC扩展数据记录;
2) DTC扩展数据记录中报告的数据的结构由DTC扩展数据记录号码定义,方法类似于在数据 标识符中数据的定义。响应可以包括多组DTC扩展数据记录数和对应的DTC扩展数据记录。一个 DTC可以存储不同类型的DTC扩展数据记录;
3) 如果诊断工具已经设置DTC扩展数据记录为FFh ,ECU须在一个响应报文中包含该DTC码 对应存储的所有扩展数据的记录;
4)如果参数DTC码或DTC扩展数据记录号码无效或不被支持, ECU应发送否定响应;
5)当诊断工具发送清除诊断信息(14h) 服务时, 扩展数据信息须被清除。
e)读取DTC信息–报告支持的DTC (19h 0Ah):
1)使用“报告支持的DTC”子功能服务,诊断工具可以通过该诊断服务获取ECU支持的所有 DTC。此响应包含DTC状态有效掩码(DTCStatusAvailabilityMask),用于表示ECU支持的DTC状 态位。另外, 响应报文还包含了DTC和状态记录列表(listOfDTCAndStatusRecord),包含了DTC 码和ECU支持的每个DTC状态。