文章目录[隐藏]
ECUReset就是ECU复位服务。
服务 | 描述 |
ECUReset | 客户端向服务端请求重置服务端。 |
目录
1.英文术语
英文术语 | 翻译 |
ECUReset | ECU复位 |
ECUReset Request SID |
ECU复位请求SID ISO14229定义此值为0x11 |
sub-function | 子功能 |
resetType | 复位类型 |
hardReset | 硬复位 |
keyOffOnReset | 钥匙电复位 |
softReset | 软复位 |
ECUReset Response SID |
ECU复位响应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 | 字节值 | 助记符 |
#1 | ECU复位请求SID | M |
0x11 |
ER |
#2 | 子功能 = [复位类型] | M | 0x00 - 0xFF | LEV_RT_ |
4.1.请求消息子功能定义
该服务使用子功能参数选择(此字节的bit7表示抑制肯定响应位,下表并没有介绍此位)。
下表中标绿的三种较为常用:
请求消息子功能定义 | |||
位6-0 | 描述 | Cvt | 助记符 |
0x00 |
ISOSAEReserved 该值为本文件为未来定义预留。 |
M | ISOSAERESRVD |
0x01 |
硬复位 模拟的是ECU先完全掉电再上电的过程。 在我们汽车行业里面ECU一般会有两种电源供应: 1、一种是常电用来供给ECU处理低功耗模式下使用的。 2、另一种唤醒电用来作为唤醒源,是ECU从低功耗模式进入正常模式的媒介,这个要根据厂家约定,如果某个厂家只支持常电不支持钥匙电,那就只供应常电给ECU,ECU就能够正常工作。 所以我们想ECU完成掉电,就必须将常电和唤醒电完全断开再上电。 |
U | HR |
0x02 |
钥匙电复位 模拟的是像司机下钥匙电再重新上电的情况,钥匙电关闭再重新上电的复位过程,RAM中的内容要被重置。 |
U | KOFFONR |
0x03 |
软复位 只是程序从头开始执行,RAM中的内容不重置(无需重新初始化先前学到的配置数据、自适应因素和其他长期调整)。 |
U | SR |
0x04 |
使能快速休眠 开启休眠功能,在这种模式下,使用关闭钥匙电也不会进入关闭状态,而是进入休眠状态。 这个子功能是针对由车辆电池供电而非点火供电的ECU,这类ECU通常情况下在钥匙电关闭后的一段时间内进入电源关闭状态(PowerOff),而这个指令会命令ECU打开快速休眠功能,在这种模式下,ECU在钥匙电关闭后将不会进入关闭状态,而是进入休眠状态(休眠意味着虽然断电,但仍然可以被唤醒(电池供电)),进入休眠状态所需要的时间更短,且能够在更短的时间内被唤醒,但会有一定功耗。其实这个类似于电脑的关机和休眠,常规模式下钥匙电关闭后ECU会关机,而快速休眠模式打开后,则会快速进入休眠。 所以进入快速休眠状态必须满足以下两个条件: 1、请求使能快速休眠(会有响应消息) 2、关闭钥匙电(操作使用休眠功能,不会去发响应消息) |
U | ERPSD |
0x05 |
关闭快速休眠 (也就是跟0x04子功能相对应的) 关闭快速休眠模式,返回常规模式。 |
U | DRPSD |
0x06 - 0x3F |
ISOSAEReserved 该值的范围为本文件为未来定义预留。 |
M | ISOSAERESRVD |
0x40 - 0x5F |
车辆制造商特定 此值范围保留以供车辆制造商特定使用 |
U | VMS |
0x60 - 0x7E |
系统供应商特定 此值范围保留以供系统供应商特定使用 |
U | SSS |
0x7F |
ISOSAEReserved 该值为本文件为未来定义预留。 |
M | ISOSAERESRVD |
4.2.请求消息数据参数定义
此服务中请求消息中没有数据参数。
5.肯定响应消息定义
肯定响应消息定义 | ||||
A_Data字节 | 参数名称 | Cvt | 字节值 | 助记符 |
#1 | ECU复位响应SID | M | 0x51 | ERPR |
#2 | 子功能 = [复位类型] | M | 0x00 - 0x7F | LEV_RT_ |
#3 | 断电时间 | C | 0x00 - 0xFF | PDT |
C:如果将子功能参数设置为使能快速休眠(0x04),则存在此参数; |
5.1.肯定响应消息数据参数定义
肯定响应消息数据参数定义 |
定义 |
复位类型 此参数与请求消息的子功能参数的位6~0相同。 |
断电时间 此参数是ECU在断电过程中保持待机状态的最小时间(表示你这个ECU什么时候能够休眠),长度为1字节,分辨率是1s —— 0x00 - 0xFE:0-254秒 —— 0xFF:表示故障或时间不可用。 |
6.否定响应消息定义
否定响应消息定义 | ||||
A_Data字节 | 参数名称 | 字节值 | Cvt | 助记符 |
#1 | 否定响应SID | 0x7F | M | SIDNR |
#2 | ECU复位请求SID | 0x11 | M | SIDRQ |
#3 | 否定响应码 | 0xXX | M | NRC_ |
6.1.否定响应码
此服务支持的否定响应码 | ||
否定响应码 | 描述 | 助记符 |
0x12 |
子功能不支持 如果不支持子功能参数,则应发送此否定响应码。 |
SFNS |
0x13 |
消息长度错误或格式无效 如果消息的长度错误,则应发送此否定响应码。 |
IMLOIF |
0x22 |
条件错误 如果未满足ECU复位请求的条件,则应返回此否定响应码。 |
CNC |
0x33 |
安全访问拒绝 如果请求的重置需要服务器处于相应的安全状态,而服务器却没有解锁,则应发送此否定响应码。 |
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 |
7.1.2.操作汇总
步骤1:请求执行硬复位
图解:
操作 | CAN报文 | 实体 | |||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
请求执行硬复位 | 0x02 | 0x11 | 0x01 | 客户端 | |||||
肯定响应 | 0x02 | 0x51 | 0x01 | 服务端 |
到这里我们的0x11服务基本学完了。
以上解释有没有解决大家的疑惑,如果还是觉得有疑惑的地方,欢迎大家踊跃提出,一起分享,共同进步!!!
有CSDN号的也可以帮忙点个关注,我会陆续更新其它UDS服务。
版权声明:本文为CSDN博主「心骗小白话」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40242571/article/details/118461403
ECUReset就是ECU复位服务。
服务 | 描述 |
ECUReset | 客户端向服务端请求重置服务端。 |
目录
1.英文术语
英文术语 | 翻译 |
ECUReset | ECU复位 |
ECUReset Request SID |
ECU复位请求SID ISO14229定义此值为0x11 |
sub-function | 子功能 |
resetType | 复位类型 |
hardReset | 硬复位 |
keyOffOnReset | 钥匙电复位 |
softReset | 软复位 |
ECUReset Response SID |
ECU复位响应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 | 字节值 | 助记符 |
#1 | ECU复位请求SID | M |
0x11 |
ER |
#2 | 子功能 = [复位类型] | M | 0x00 - 0xFF | LEV_RT_ |
4.1.请求消息子功能定义
该服务使用子功能参数选择(此字节的bit7表示抑制肯定响应位,下表并没有介绍此位)。
下表中标绿的三种较为常用:
请求消息子功能定义 | |||
位6-0 | 描述 | Cvt | 助记符 |
0x00 |
ISOSAEReserved 该值为本文件为未来定义预留。 |
M | ISOSAERESRVD |
0x01 |
硬复位 模拟的是ECU先完全掉电再上电的过程。 在我们汽车行业里面ECU一般会有两种电源供应: 1、一种是常电用来供给ECU处理低功耗模式下使用的。 2、另一种唤醒电用来作为唤醒源,是ECU从低功耗模式进入正常模式的媒介,这个要根据厂家约定,如果某个厂家只支持常电不支持钥匙电,那就只供应常电给ECU,ECU就能够正常工作。 所以我们想ECU完成掉电,就必须将常电和唤醒电完全断开再上电。 |
U | HR |
0x02 |
钥匙电复位 模拟的是像司机下钥匙电再重新上电的情况,钥匙电关闭再重新上电的复位过程,RAM中的内容要被重置。 |
U | KOFFONR |
0x03 |
软复位 只是程序从头开始执行,RAM中的内容不重置(无需重新初始化先前学到的配置数据、自适应因素和其他长期调整)。 |
U | SR |
0x04 |
使能快速休眠 开启休眠功能,在这种模式下,使用关闭钥匙电也不会进入关闭状态,而是进入休眠状态。 这个子功能是针对由车辆电池供电而非点火供电的ECU,这类ECU通常情况下在钥匙电关闭后的一段时间内进入电源关闭状态(PowerOff),而这个指令会命令ECU打开快速休眠功能,在这种模式下,ECU在钥匙电关闭后将不会进入关闭状态,而是进入休眠状态(休眠意味着虽然断电,但仍然可以被唤醒(电池供电)),进入休眠状态所需要的时间更短,且能够在更短的时间内被唤醒,但会有一定功耗。其实这个类似于电脑的关机和休眠,常规模式下钥匙电关闭后ECU会关机,而快速休眠模式打开后,则会快速进入休眠。 所以进入快速休眠状态必须满足以下两个条件: 1、请求使能快速休眠(会有响应消息) 2、关闭钥匙电(操作使用休眠功能,不会去发响应消息) |
U | ERPSD |
0x05 |
关闭快速休眠 (也就是跟0x04子功能相对应的) 关闭快速休眠模式,返回常规模式。 |
U | DRPSD |
0x06 - 0x3F |
ISOSAEReserved 该值的范围为本文件为未来定义预留。 |
M | ISOSAERESRVD |
0x40 - 0x5F |
车辆制造商特定 此值范围保留以供车辆制造商特定使用 |
U | VMS |
0x60 - 0x7E |
系统供应商特定 此值范围保留以供系统供应商特定使用 |
U | SSS |
0x7F |
ISOSAEReserved 该值为本文件为未来定义预留。 |
M | ISOSAERESRVD |
4.2.请求消息数据参数定义
此服务中请求消息中没有数据参数。
5.肯定响应消息定义
肯定响应消息定义 | ||||
A_Data字节 | 参数名称 | Cvt | 字节值 | 助记符 |
#1 | ECU复位响应SID | M | 0x51 | ERPR |
#2 | 子功能 = [复位类型] | M | 0x00 - 0x7F | LEV_RT_ |
#3 | 断电时间 | C | 0x00 - 0xFF | PDT |
C:如果将子功能参数设置为使能快速休眠(0x04),则存在此参数; |
5.1.肯定响应消息数据参数定义
肯定响应消息数据参数定义 |
定义 |
复位类型 此参数与请求消息的子功能参数的位6~0相同。 |
断电时间 此参数是ECU在断电过程中保持待机状态的最小时间(表示你这个ECU什么时候能够休眠),长度为1字节,分辨率是1s —— 0x00 - 0xFE:0-254秒 —— 0xFF:表示故障或时间不可用。 |
6.否定响应消息定义
否定响应消息定义 | ||||
A_Data字节 | 参数名称 | 字节值 | Cvt | 助记符 |
#1 | 否定响应SID | 0x7F | M | SIDNR |
#2 | ECU复位请求SID | 0x11 | M | SIDRQ |
#3 | 否定响应码 | 0xXX | M | NRC_ |
6.1.否定响应码
此服务支持的否定响应码 | ||
否定响应码 | 描述 | 助记符 |
0x12 |
子功能不支持 如果不支持子功能参数,则应发送此否定响应码。 |
SFNS |
0x13 |
消息长度错误或格式无效 如果消息的长度错误,则应发送此否定响应码。 |
IMLOIF |
0x22 |
条件错误 如果未满足ECU复位请求的条件,则应返回此否定响应码。 |
CNC |
0x33 |
安全访问拒绝 如果请求的重置需要服务器处于相应的安全状态,而服务器却没有解锁,则应发送此否定响应码。 |
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 |
7.1.2.操作汇总
步骤1:请求执行硬复位
图解:
操作 | CAN报文 | 实体 | |||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
请求执行硬复位 | 0x02 | 0x11 | 0x01 | 客户端 | |||||
肯定响应 | 0x02 | 0x51 | 0x01 | 服务端 |
到这里我们的0x11服务基本学完了。
以上解释有没有解决大家的疑惑,如果还是觉得有疑惑的地方,欢迎大家踊跃提出,一起分享,共同进步!!!
有CSDN号的也可以帮忙点个关注,我会陆续更新其它UDS服务。
版权声明:本文为CSDN博主「心骗小白话」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40242571/article/details/118461403
暂无评论