汽车UDS诊断之清除诊断信息服务(0x14)深度剖析 | 您所在的位置:网站首页 › cdb604故障码 › 汽车UDS诊断之清除诊断信息服务(0x14)深度剖析 |
ClearDiagnosticInformation就是清除诊断信息服务,简单说客户端可以利用此服务来清除一个或多个服务端内存中的诊断信息。 目录 1.英文术语 2.缩写表 3.服务描述 3.1.诊断信息 3.2.groupOfDTC 4.请求消息定义 4.1.请求消息子功能定义 4.2.请求消息数据参数定义 5.肯定响应消息定义 5.1.肯定响应消息数据参数定义 6.否定响应消息定义 6.1.否定响应码 6.2.NRC评估序列 7.服务使用示例 7.1.示例#1-清除“排放相关系统”诊断信息 7.1.1.步骤1:请求清除排放相关诊断信息 7.1.2.操作汇总 清除诊断信息 服务描述ClearDiagnosticInformation客户端请求服务端清除内存中的诊断信息。 1.英文术语 英文术语翻译ClearDiagnosticInformation清除诊断信息ClearDiagnosticInformation Request SID清除诊断信息请求SID ISO14229定义此值为0x14ClearDiagnosticInformation Positive Response SID清除诊断信息响应SID ISO14229定义此值为(0x14+0x40) 2.缩写表 缩写解释SID服务标识符Cvt约定值 M 强制的 C 有条件的 U 用户选项 NRC否定响应码 3.服务描述清除诊断信息服务就是可以用来清除服务端相应诊断信息的操作,这个相应诊断信息是与groupOfDTC参数是对应的。 譬如:groupOfDTC[] = 0xFFFF33表示的是排放组,那么对应的诊断信息就是跟排放相关的,那么软件就需要将所有与排放相关的诊断信息清除;groupOfDTC[] = 0x000100此编号表示某一特定DTC,假设某一控制器厂家将此DTC定义为换挡位置传感器高于最大值,那么软件就需要将与换挡位置传感器高于最大值相关的诊断信息清除。 那么最重要的一点就是我们需要清除哪个地方的诊断信息呢? 如果服务端支持只存在RAM中,那么我们只要清掉RAM中的相关诊断信息就好了。如果服务端支持诊断信息在内存中有多个副本,譬如:RAM中的一个副本(诊断信息)和EEPROM(考虑到下电保存)中一个副本(诊断信息),那么程序在运行过程中就存在RAM和EEPROM两个地方储存了诊断信息。则服务端应清除读取DTC信息状态报告服务(0x19)使用的副本,也就是这里的RAM中的一个副本。那么为什么不顺便也更新一下EEPROM呢? 因为本身就有备份策略,在电源锁存阶段会触发更新其他副本,我们的EEPROM就是在这个阶段重新被RAM的副本数据更新了。注:在电源锁存阶段如果受到干扰的情况下(例如:在电源锁存阶段电池断开),可能导致数据不一致。清除诊断信息服务重点知识: 该服务可设置支持功能寻址,可控制单个服务端或多个服务端诊断信息的清除。 3.1.诊断信息在这个服务中的诊断信息就是与DTC相关的信息,包含以下: DTC状态字节(statusOfDTC);捕获的DTC快照数据(DTCSnapshotData),此快照信息就是记录当时发生故障的一些状态信息,譬如:报过压故障,就会记录当时的电压值,报过流故障,就会记录当时的电流值;捕获的DTC扩展数据(DTCExtendedData);其他与DTC相关的数据,如:标志、计数器、定时器等。 3.2.groupOfDTCISO14229-1之groupOfDTC定义 4.请求消息定义 请求消息定义A_Data字节参数名称Cvt字节值助记符#1清除诊断信息请求SIDM0x14CDTCI#2 #3 #4 groupOfDTC[] = [ groupOfDTCHighByte groupOfDTCMiddleByte groupOfDTCLowByte] M M M 0x00-0xFF 0x00-0xFF 0x00-0xFF GODTC_ HB MB LB 4.1.请求消息子功能定义该服务不使用子功能参数。(肯定也没有抑制肯定响应位,因为没有子功能参数) 4.2.请求消息数据参数定义 请求消息数据参数定义定义groupOfDTC 此参数包含3字节的值,即groupOfDTCHighByte、groupOfDTCMiddleByte、groupOfDTCLowByte三字节,指的是要清除的DTC组(例如,动力、车身、底盘)或特定DTC。该参数特定组的值和范围定义在ISO14229-1附件D-D.1。 5.肯定响应消息定义 肯定响应消息定义A_Data字节参数名称Cvt字节值助记符#1清除诊断信息响应SIDM0x54CDTCIPR 5.1.肯定响应消息数据参数定义该服务在肯定响应消息中不使用数据参数。 6.否定响应消息定义 否定响应消息定义A_Data字节参数名称Cvt字节值助记符#1否定响应SIDM0x7FSIDNR#2清除诊断信息请求SIDM0x14SIDRQ#3否定响应码M0xXXNRC_ 6.1.否定响应码 此服务支持的否定响应码否定响应码描述助记符0x13消息长度错误或格式无效 如果消息的长度错误,则应发送此否定响应码。 IMLOIF0x22条件不正确 如果服务端不满足条件,就无法清除储存在服务端中的DTC相关信息,则应返回此NRC。 CNC0x31请求超出范围 如果服务端不支持指定的groupOfDTC参数,则应返回此NRC。 ROOR0x72通用编程失败 如果服务端在写入存储器(根据地址写)时检测到错误,则应返回此NRC。 GPF 6.2.NRC评估序列 7.服务使用示例 7.1.示例#1-清除“排放相关系统”诊断信息 7.1.1.步骤1:请求清除排放相关诊断信息客户端向单个服务端发送清除诊断信息请求消息。 清除诊断信息请求消息 消息方向 客户端→服务端 消息类型 请求 A_Data字节 描述(所以值为16进制) 字节值 助记符 #1 清除诊断信息请求SID 0x14 CDTCI #2 #3 #4 groupOfDTC[] = [ groupOfDTCHighByte groupOfDTCMiddleByte groupOfDTCLowByte] 0xFF 0xFF 0x33 DTCHB DTCMB DTCLB 注:groupOfDTC[] = 0xFFFF33,此DTC表示在ISO14229中定义表示的是排放组。 清除诊断信息响应消息 消息方向 服务端→客户端 消息类型 响应 A_Data字节 描述(所以值为16进制) 字节值 助记符 #1 清除诊断信息响应SID 0x54 CDTCIPR 7.1.2.操作汇总步骤1:请求清除排放相关诊断信息 图解: 操作CAN报文实体01234567清除诊断信息请求0x040x140xFF0xFF0x33 客户端肯定响应0x010x54 服务端到这里我们的0x14服务基本学完了。 以上解释有没有解决大家的疑惑,如果还是觉得有疑惑的地方,欢迎大家踊跃提出,一起分享,共同进步!!! 有CSDN号的也可以帮忙点个关注,我会陆续更新其它UDS服务。 |
CopyRight 2018-2019 实验室设备网 版权所有 |