1、0x11服务(ECU重启服务)
0x11服务(ECU重启服务),顾名思义,是用来重启ECU的服务。
根据请求消息中的重启类型参数值内容,ECU能够及时运行重启功能。在ECU执行重启动作前,要求ECU先发送肯定应答消息。ECU重启之后能够进入默认会话。
2、请求消息格式
请求消息的格式定义:
请求消息的格式定义如下表所示:
字节序号 | 参数含义 | 约定 | 字节值 |
---|---|---|---|
#1 | ECUReset Request SID | M | 0x11 |
#2 | Sub-Function = [reset type] | M | 0x00-0xFF |
请求消息中子函数参数定义说明:
Bit6-0 | 描述 | 约定 |
---|---|---|
0x00 | ISOSAEReserved 该值由ISO文档保留 | M |
0x01 | 硬重启: 该字节表示“硬重启”,模拟了ECU之前与供电电源(如电池)断开后上电/启动的执行序列。标准文档中并未具体的定义如何实施该过程,但这可能会导致易失性存储和非易失性存储位置重新初始化预定义的值。 | M |
0x02 | 钥匙重启: 该字节表示“钥匙重启”,类似于点火开关关闭再重启打开,该服务应该模拟钥匙关闭再打开的执行序列。标准文档中并未具体的定义如何实施该过程,在下电前非易失性存储区域的值应该被保存,易失性存储位置重新被初始化。 | M |
0x03 | 软重启: 该字节表示“软重启”,收到软重启命令时,ECU会立即重启应用程序。标准文档中并未具体的定义如何实施该过程,软重启只是用来重启应用程序,不会对先前ECU的一些自学习数据、自适应值等参数进行重新初始化操作。 | M |
0x04 | 使能快速关机: 该子函数适用于那些非点火供电而是电池供电的ECU,关机(shutdown)这个命令是使得ECU进入睡眠模式,而不是下电。睡眠是ECU的供电仍然打开,但再次工作需要被唤醒。此子功能的意义在于,当车辆点火开关进入OFF时,可以减少ECU的待机时间。 该字节值要求ECU能够运行“快速关机”的功能。当车辆钥匙开关处于OFF位置时,要求ECU能够立即执行该功能。当ECU执行关机功能时,ECU能够立即或者在定义的待机时间内进入睡眠模式。如果客户端要求ECU答复响应消息,并且ECU准备执行关机功能时,ECU应该先发送肯定应答消息,这种优先级应该高于执行关机的功能的优先级。 注意:该子函数只可以应用到支持待机模式的ECU。 | M |
0x05 | 禁止快速关机: 该子函数请求ECU禁止之前的使能快速关机的功能。 | M |
0x06-0x3F | 该范围值由ISO文档保留 | M |
0x40-0x5F | 该范围值由车辆制造厂商保留定义 | M |
0x60-0x7E | 该范围值由供应商保留定义 | M |
0x7F | 该值由ISO文档保留 | M |
3、肯定应答消息
请求消息的格式定义:
肯定应答消息的格式定义如下表所示:
字节序号 | 参数含义 | 约定 | 字节值 |
---|---|---|---|
#1 | ECUReset Request SID | M | 0x51 |
#2 | Sub-Function = [reset type] | M | 0x00-0x7F |
#3 | PowerDown Time(只针对0x04子函数功能) | C | 0x00-0xFF |
肯定应答消息中数据格式的定义:
肯定应答消息的数据格式定义如下表所示:
定义 |
---|
重启类型: 子函数中Bit 6-0表示重启类型; |
PowerDownTime: 该参数表示ECU在下电过程中保持的最小待机时间; 该参数值的单位为1s; 参数的如下值表示有效: ——0x00 - 0xFE:0 - 254 秒的PowerDownTime; ——0xFF:表示失败或者超时; |
4、支持的否定应答码(NRC_)
对于该服务如下的否定应答码应该被支持,下表列出了每个否定应答码的使用情况。
NRC | 描述 |
---|---|
0x12 | 子函数不支持: 当子函数不支持时,会发送该NRC; |
0x13 | 请求消息长度不正确或格式无效: 当请求消息长度不正确时,会发送该NRC; |
0x22 | 条件错误: 当ECU重启标准不满足时,会发送该NRC; |
0x33 | 安全访问拒绝: 当ECU重启服务需要经过安全验证时,会发送该NRC; |
4、0x11服务(ECU重启服务)案例使用说明
该案例介绍了ECUReset服务被成功执行的所需条件;
ECU条件:点火 = on,系统不应该处于运行状态(如,系统进行发动机状态管理,发动机应该处于关闭状态);
客户端发送的请求消息,应该设置“抑制正响应消息表示位(suppressPosRspMsgIndicationBit,即子函数参数的bit 7)” = “FALSE”;
ECU在重启之前要求能够发送肯定消息;
下表定义了ECU重启请求消息的消息流:
请求消息:从客户端发送到服务端
字节序号 | 描述 | 字节值 |
---|---|---|
#1 | ECUReset Request SID | 0x11 |
#2 | ResetType = hardReset, suppressPosRspMsgIndicationBit = FALSE | 0x01 |
下表定义了ECU重启肯定应答消息的消息流:
请求消息:从服务端发送到客户端
字节序号 | 描述 | 字节值 |
---|---|---|
#1 | ECUReset Request SID | 0x51 |
#2 | ResetType = hardReset, | 0x01 |