汽车UDS诊断之ECU复位服务(0x11)深度剖析 | 您所在的位置:网站首页 › 汽车之家电视app新版下载 › 汽车UDS诊断之ECU复位服务(0x11)深度剖析 |
ECUReset就是ECU复位服务。 ECU复位 服务描述ECUReset客户端向服务端请求重置服务端。目录 1.英文术语 2.缩写表 3.服务描述 4.请求消息定义 4.1.请求消息子功能定义 4.2.请求消息数据参数定义 5.肯定响应消息定义 5.1.肯定响应消息数据参数定义 6.否定响应消息定义 6.1.否定响应码 7.服务使用示例 7.1.示例#1-执行硬复位 7.1.1.步骤1:请求执行硬复位 7.1.2.操作汇总 1.英文术语 英文术语翻译ECUResetECU复位ECUReset Request SIDECU复位请求SID ISO14229定义此值为0x11 sub-function子功能resetType复位类型hardReset硬复位keyOffOnReset 钥匙电复位softReset 软复位ECUReset Response SIDECU复位响应SID ISO14229定义此值为(0x11+0x40) powerDownTime 断电时间 2.缩写表 缩写解释SID服务标识符Cvt约定值 M 强制的 C 有条件的 U 用户选项 NRC否定响应码 3.服务描述ECU复位服务就是可以此诊断指令来命令ECU执行自复位,复位有多种形式,依据子功能参数来区分(即客户端使用ECU复位服务来请求服务端重置,重置成功后,将直接进入默认会话)。 通常来说,ECU在收到一条诊断指令后,要先进行相应的处理,执行某些诊断操作,完毕后再发送肯定响应。但是ECU复位服务是个特例,因为它的诊断操作是复位,这时候这个ECU就会重新开始运行,此时ECU也不会记得你前面发过诊断指令,所以复位后没办法ECU就没办法再去发送诊断响应,所以要先发送肯定响应,再执行复位。 注意:从发送完肯定响应到执行复位的这段时间内,ECU是否还可以响应其它诊断请求,标准中没有规定。建议此期间ECU不接受任何请求消息,也不发送任何响应消息。 4.请求消息定义 请求消息定义A_Data字节参数名称Cvt字节值助记符#1ECU复位请求SIDM0x11 ER#2子功能 = [复位类型]M0x00 - 0xFFLEV_RT_ 4.1.请求消息子功能定义该服务使用子功能参数选择(此字节的bit7表示抑制肯定响应位,下表并没有介绍此位)。 下表中标绿的三种较为常用: 请求消息子功能定义位6-0描述Cvt助记符0x00ISOSAEReserved 该值为本文件为未来定义预留。 MISOSAERESRVD0x01硬复位 模拟的是ECU先完全掉电再上电的过程。 在我们汽车行业里面ECU一般会有两种电源供应: 1、一种是常电用来供给ECU处理低功耗模式下使用的。 2、另一种唤醒电用来作为唤醒源,是ECU从低功耗模式进入正常模式的媒介,这个要根据厂家约定,如果某个厂家只支持常电不支持钥匙电,那就只供应常电给ECU,ECU就能够正常工作。 所以我们想ECU完成掉电,就必须将常电和唤醒电完全断开再上电。 UHR0x02钥匙电复位 模拟的是像司机下钥匙电再重新上电的情况,钥匙电关闭再重新上电的复位过程,RAM中的内容要被重置。 UKOFFONR0x03软复位 只是程序从头开始执行,RAM中的内容不重置(无需重新初始化先前学到的配置数据、自适应因素和其他长期调整)。 USR0x04使能快速休眠 开启休眠功能,在这种模式下,使用关闭钥匙电也不会进入关闭状态,而是进入休眠状态。 这个子功能是针对由车辆电池供电而非点火供电的ECU,这类ECU通常情况下在钥匙电关闭后的一段时间内进入电源关闭状态(PowerOff),而这个指令会命令ECU打开快速休眠功能,在这种模式下,ECU在钥匙电关闭后将不会进入关闭状态,而是进入休眠状态(休眠意味着虽然断电,但仍然可以被唤醒(电池供电)),进入休眠状态所需要的时间更短,且能够在更短的时间内被唤醒,但会有一定功耗。其实这个类似于电脑的关机和休眠,常规模式下钥匙电关闭后ECU会关机,而快速休眠模式打开后,则会快速进入休眠。 所以进入快速休眠状态必须满足以下两个条件: 1、请求使能快速休眠(会有响应消息) 2、关闭钥匙电(操作使用休眠功能,不会去发响应消息) UERPSD0x05关闭快速休眠 (也就是跟0x04子功能相对应的) 关闭快速休眠模式,返回常规模式。 UDRPSD0x06 - 0x3FISOSAEReserved 该值的范围为本文件为未来定义预留。 MISOSAERESRVD0x40 - 0x5F 车辆制造商特定 此值范围保留以供车辆制造商特定使用 UVMS0x60 - 0x7E系统供应商特定 此值范围保留以供系统供应商特定使用 USSS0x7FISOSAEReserved 该值为本文件为未来定义预留。 MISOSAERESRVD 4.2.请求消息数据参数定义此服务中请求消息中没有数据参数。 5.肯定响应消息定义 肯定响应消息定义A_Data字节参数名称Cvt字节值助记符#1ECU复位响应SIDM0x51ERPR#2子功能 = [复位类型]M0x00 - 0x7FLEV_RT_#3断电时间C0x00 - 0xFFPDTC:如果将子功能参数设置为使能快速休眠(0x04),则存在此参数; 5.1.肯定响应消息数据参数定义 肯定响应消息数据参数定义定义复位类型 此参数与请求消息的子功能参数的位6~0相同。 断电时间 此参数是ECU在断电过程中保持待机状态的最小时间(表示你这个ECU什么时候能够休眠),长度为1字节,分辨率是1s —— 0x00 - 0xFE:0-254秒 —— 0xFF:表示故障或时间不可用。 6.否定响应消息定义 否定响应消息定义A_Data字节参数名称字节值Cvt助记符#1否定响应SID0x7FMSIDNR#2ECU复位请求SID0x11MSIDRQ#3否定响应码0xXXMNRC_ 6.1.否定响应码 此服务支持的否定响应码否定响应码描述助记符0x12子功能不支持 如果不支持子功能参数,则应发送此否定响应码。 SFNS0x13消息长度错误或格式无效 如果消息的长度错误,则应发送此否定响应码。 IMLOIF0x22条件错误 如果未满足ECU复位请求的条件,则应返回此否定响应码。 CNC0x33安全访问拒绝 如果请求的重置需要服务器处于相应的安全状态,而服务器却没有解锁,则应发送此否定响应码。 SAD注意:0x11服务支持的否定响应码比0x10服务多0x33-安全访问被拒绝,这是因为复位会影响ECU的正常功能,相对来说有一定的危险性,所以有的供应商或主机厂把0x11服务定义为在解锁状态下才能执行,如果在上锁状态下收到该请求,ECU应返回否定响应码0x33。 标准对0x11服务是否需要安全访问没有强制要求,用户可自定义。 7.服务使用示例 7.1.示例#1-执行硬复位假设该示例满足了以下服务端成功执行ECU复位服务的条件: 1、服务端处于的状态:点火 = 开启,系统不应处于运行模式(例如,如果系统是发动机为动力源,发动机应关闭;如果系统是混动系统,发动机和ISG电机都要关闭。) 2、客户端通过将抑制肯定响应位(子功能参数的位7)设置为“False”向服务端请求; 3、在服务端执行复位类型之前,该服务端应发送ECU复位的肯定响应消息。 7.1.1.步骤1:请求执行硬复位ECU复位请求 消息方向 客户端→服务端 消息类型 请求 A_Data字节 描述(所以值为16进制) 字节值 助记符 #1 ECU复位请求SID 0x11 ER #2 子功能 = 硬复位 抑制肯定响应位 = 假 0x01 RT_HR肯定响应消息 消息方向 服务端→客户端 消息类型 响应 A_Data字节 描述(所以值为16进制) 字节值 助记符 #1 ECU复位响应SID 0x51 ERPR #2 子功能 = 硬复位 0x01 RT_HR步骤1:请求执行硬复位 图解: 操作CAN报文实体01234567请求执行硬复位0x020x110x01 客户端肯定响应0x020x510x01 服务端到这里我们的0x11服务基本学完了。 以上解释有没有解决大家的疑惑,如果还是觉得有疑惑的地方,欢迎大家踊跃提出,一起分享,共同进步!!! 有CSDN号的也可以帮忙点个关注,我会陆续更新其它UDS服务。 |
CopyRight 2018-2019 实验室设备网 版权所有 |