ECU的启动顺序

电子说

1.3w人已加入

描述

1. ECU的启动顺序

ECU上电或者复位后,Bootloader代码首先被执行。Bootloader执行基本的初始化,检查是否有外部重编程请求。如果没有外部重编程请求,检查应用程序的状态。如果应用程序有效,ECU执行应用程序,如果应用程序无效,ECU继续执行Bootloader,且Bootloader的默认会话被激活。

编程

1. 诊断会话

传统ECU的诊断会话包括默认会话模式,扩展会话模式和编程模式。

ECU在扩展会话执行有效的应用程序,编程会话请求可激活Bootloader,因此,应用程序应设置外部重编程请求标志并复位,复位后直接进入Bootloader的编程会话。

Bootloader不支持从编程会话切换至扩展会话。

编程

2. 升级步骤

ECU的刷新升级列分为预编程步骤、编程步骤和后置编程步骤三个步骤

2.1. 预编程步骤

1. ECU重编程前需要禁止DTC设置和网络常规通信,因此,使用功能寻址发送扩展会话诊断$10$03请求使网络中所有ECU进入扩展会话。

2.重编程前需要检查系统的重编程条件。此例程控制服务用于检查系统的状态是否为安全状态。此诊断服务必须响应。(例如:重编程条件要求车速为0Km/h、ECU处于正常工作电压状态下,其他编程条件由车厂确定,ECU实现。)

3.重编程过程中为了避免误报故障,应该关闭网络中所有ECU的DTC检测和存储功能。使用功能寻址发送DTCSettingType为“OFF”的ControlDTCSetting诊断服务请求。

4.通信控制服务用于禁止网络上所有ECU非诊断报文的发送和接收。因此,使用功能寻址发送此诊断服务。

5.通过标识符读取数据是可选服务,用于获取ECU相关信息。

编程

2.2. 编程步骤

编程步骤用于编程一个或多个逻辑块,此步骤的所有诊断服务都使用物理寻址。如果编程步骤中发生错误,则应重新执行完整序列。

编程

1. 当ECU运行在应用程序的扩展会话中,收到诊断会话控制服务($10 $02)后应判断是否允许跳转到编程会话,具体是判断是否已经执行例程控制 “预编程条件检查”($31 $01 )并且响应为肯定响应,如果不是,ECU应拒绝进入编程会话,如果是,应用程序应设置外部重编程请求标志并发送否定响应,然后,ECU通过复位的方式跳转到Bootloader,并Bootloader发出肯定响应,肯定响应发送成功后激活Bootloader的编程会话。当ECU运行在Bootloader程序的扩展会话中,收到诊断会话控制服务($10 $02)后直接回复肯定响应,并进入编程会话。

2.在Flash重编程之前,需要经过ECU安全认证。安全访问服务子功能$11请求种子,使用$12发送密钥。

3.通过$2E$F184写入指纹信息应存储在ECU的非易失性存储器中。该指纹信息使用“通过标识符写数据”服务写入ECU。

4.例程控制-启动擦除内存$31 $01 $FF00。

5.逻 辑 块 的 所 有 段 的 数 据 通 过 $34(RequestDownload),$36(TransferData),$37(RequestTransferExit)服务下载到ECU。

6.通过$31 $01 $0201 启动完整性校验例程,确保下载数据的完整性(真实性)。

7.发送 $31 $01 $FF01启动编程依赖性检查。例程执行后,需将检查结果反馈给DPC或者诊断仪。

2.1. 后置编程步骤

1.发送$11 $01进行ECU 复位.ECU复位服务用于结束Flash重编程使ECU进入正常的操作模式。

2.进入扩展模式发送$10$03.

3.发送$28 $00 $01诊断服务,恢复网络正常通信。

4.发送$85 $01诊断服务,恢复网络正常DTC设置。

5.发送$10 $01诊断服务,使网络上的ECU返回默认会话。

编程

审核编辑 :李倩

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分