ECU Bootloader的三部曲

简介: ECU Bootloader的三部曲

1.ECU的启动顺序

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

d11b2da5cf8da6a161f33bbfdf397933_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

1.诊断会话

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

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

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

8bab1934b507f0775af31f3f280616c4_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

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相关信息。

489cb143bd370284f4621941dcf95082_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

2.2. 编程步骤

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

d85d1d1bfd6b48bbaa8db2e9589bf107_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

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返回默认会话。

eb99ff939cae7670514bc08459465dd8_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

相关文章
|
编解码 监控 网络协议
一文读懂以太网与CANoe的配置
一文读懂以太网与CANoe的配置
一文读懂以太网与CANoe的配置
|
传感器 安全 内存技术
[UDS] --- RoutineCommunicationControl 0x31
[UDS] --- RoutineCommunicationControl 0x31
1007 1
|
数据格式
一文读懂A2L文件和ASAP2 Studio的使用
一文读懂A2L文件和ASAP2 Studio的使用
一文读懂A2L文件和ASAP2 Studio的使用
|
边缘计算 网络协议 网络架构
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
|
编解码 安全 索引
媒体编解码器MediaCodec
媒体编解码器MediaCodec
536 0
|
12月前
|
设计模式 算法 安全
实时操作系统(RTOS)深度解析及Java实现初探
【10月更文挑战第22天】实时操作系统(RTOS,Real-Time Operating System)是一种能够在严格的时间限制内响应外部事件并处理任务的操作系统。它以其高效、高速、可靠的特点,广泛应用于工业自动化、航空航天、医疗设备、交通控制等领域。本文将深入浅出地介绍RTOS的相关概念、底层原理、作用与功能,并探讨在Java中实现实时系统的方法。
509 1
|
10月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
319 7
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
11月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
805 4
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
1227 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
机器学习/深度学习 文字识别 算法
OCR -- 非极大值抑制(NMS)算法详解
OCR -- 非极大值抑制(NMS)算法详解
421 0
OCR -- 非极大值抑制(NMS)算法详解