ECU软件分为bootloader和application。ECU上电后,先进入bootLoader确定application程序是否有问题,如果没有问题则跳转至application,如果application出现问题,程序会停留在bootloader中,等待刷写命令。软件刷写主要分为三部分:

1、pre-programming step

2、programming step

3、post-programming steppre-programming step

从名字可以看出,该步骤主要是下载程序前的一些操作,包括唤醒ECU、读取特定的DID、通信管理等,详细的操作见图1。图1 pre-programming step

其中:

1、唤醒ECU,唤醒的方法和策略由汽车制造商制定;

2、为了关闭DTC存储和运行0x28服务关闭相关的通信,需运行0x10服务跳转至extendedDiagnosticSession,

3、进入extendedDiagnosticSession后,汽车制造商可以进一步进行特定数据链路的初始化;

4、运行0x31服务对刷写条件进行检查,例如低压电是否在正常范围内;

5、为了防止刷写过程中出现异常误触发DTC存储,运行0x85服务关闭DTC的存储;

6、该步骤提供给汽车制造商一个接口,可以通过0x31服务启动或关闭ECU的故障安全响应(failsafe reaction);

7、为了提高刷写速度,降低刷写程序时总线负载率,通过运行0x28服务关闭无关报文,比如应用报文和网络管理报文;

8、在关闭部分通信之后,通过0x22服务读取被刷ECU的状态(应用软件和数据)、软件指纹信息等;

9、为了减少刷写的时间,可以通过0x87服务提高CAN总线的波特率。programming step

该步骤用于将软件或者数据下载到被刷ECU中,主要包括进入特定的安全等级、写入指纹信息、下载软件和数据等,如图2所示。图2 programming step

其中:

1、运行0x10服务进入programmingSession;

2、运行0x27服务进入特定的安全等级;

3、运行0x2E服务将指纹信息写入ECU;

4、运行0x34、0x36、0x37服务将永久存储区写入默认值;

5、运行0x31服务检查步骤4是否成功,另外一种方法是通过0x37的响应确定是否成功;

6、运行0x31服务对特定的Flash进行擦除;

7、分别运行0x34、0x36、0x37服务将Flash driver下载至内存中;

8、运行0x31服务检查Flash driver下载是否成功;

9、分别运行0x34、0x36、0x37服务将软件和数据下载至ECU的flash中;

10、运行0x31服务检查步骤9是否下载成功;

11、运行0x31服务验证程序是否能正常运行,例如checksum、标志位等;

12、在下载完软件和数据后,汽车制造产商需要一些特定的操作,比如写入VIN码等。post-programming step

该步骤主要通过0x11服务对ECU进行复位或者通过0x10服务将session切换至defaultSession,如图3所示,如果在pre-programming step中调整了波特率,须通过特定的操作将波特率调整至正常值。通常操作是运行0x11服务使ECU复位,回到正常状态。

图3 post-programming step

该刷写流程是14229标准中提到的,不同的OEM有不同的标准,但是主体的步骤与14229应该还是相同的。

延伸阅读UDS诊断服务——诊断和通信管理单元​mp.weixin.qq.comUDS诊断服务——数据传输单元​mp.weixin.qq.comUDS诊断服务—上传下载单元、Routine单元​mp.weixin.qq.com

关注公众号:汽车ECU开发,第一时间阅读更新内容。

can例程 ecu_基于CAN的ECU刷写流程相关推荐

  1. 浅谈基于UDS的ECU刷写方案(Bootloader刷新)

    好长时间没有站在代码开发的第一线了,最近独立搞了一个工程,感觉技术工程师附体,恢复了往日对技术的热情. 在软件定义汽车的时代,ECU软件的更新非常重要.这样就要求ECU具备BootLoader功能. ...

  2. can例程 ecu_基于CAN总线的ECU设计

    摘要:为了组建基于CAN总线的控制单元,本文设计了一款兼容标准8051内核的MCU,提出总体设计方案,分层去实现各模块的功能.利用流水线的设计技术,对MCU标准核进行了精简和优化,从而提高了产品的综合 ...

  3. 基于UDS服务的BootLoader架构和刷写流程

    基于UDS服务的BootLoader架构和刷写流程 1. BootLoader支持的UDS服务 bootloader 不需要支持19/14等故障类服务 在boot程序中, 10/27/11/3E 这样 ...

  4. AUTOSAR从入门到精通100讲(三)-基于UDS服务的BootLoader架构和刷写流程

    基于UDS的BootLoader下载,可以支持ECU生命周期的无限次刷写,通过CAN网络进行无需拆壳和DEBUG口的应用程序刷写,本文介绍了刷写服务和是三个阶段的刷写流程.也可通过无线模块实现空中升级 ...

  5. 【基于UDS服务的BootLoader架构和刷写流程】

    基于UDS的BootLoader下载,可以支持ECU生命周期的无限次刷写,通过CAN网络进行无需拆壳和DEBUG口的应用程序刷写,本文介绍了刷写服务和是三个阶段的刷写流程.也可通过无线模块实现空中升级 ...

  6. Halcon例程(基于3D形状匹配识别方法)详解 —— create_shape_model_3d_lowest_model_level.hdev

    一.例程简介 最近在研究3D识别方面的东西,查了不少资料,发现halcon里有不少关于三维物体识别的例程,这里对其中一个做出详解.该例程是基于三维匹配方法的,因为有三维模型SM3,所以不需要自己创建: ...

  7. ESP32 HttpServer模式下 本地OTA 例程(基于ESP-IDF类似Arduino下OTAWebUpdater例程)

    由于项目需要ESP32连接app进行OTA,为了支持AP模式下与STA模式下的本地局域网OTA功能(不需要OTA服务器). 咨询乐鑫技术支持,ESP-IDF下没有该模式的官方例程.网上也一直没有找到相 ...

  8. 基于TSMaster的UDS刷写教程

    今天给大家介绍基于TSMaster的UDS诊断刷写流程.基本流程主要分为基本参数配置.刷写流程两部分. 一.基本参数配置 1.新建工程 打开TSMaster软件,选择创建新工程-诊断-UDS诊断,然后 ...

  9. CANoe.DiVa 操作指南 - ECU刷写(Flash)自动化测试

    文章目录 前言 一.vFlash及flash job是什么? 二.vFlash及Flash Job 在 CANoe.DiVa 以及CANoe当中的配置 1.定义 2.具体配置 总结 前言 首先CANo ...

最新文章

  1. 还在用分页?你out了 !试试 MyBatis 流式查询,真心强大!
  2. ddos发包机原理_简单的DDOS发包学习思路大家可以在去写
  3. .xz是什么文件怎么解压_zip解压app下载-zip解压app安卓版下载v11.5.6
  4. Java工作笔记-Spring Boot上传图片并显示
  5. oracle join过滤数据,oracle join on 数据过滤问题
  6. PCL之直通滤波--PassThrough
  7. 万能采集网站php源码,PHP采集系统UZCMS万能最新版
  8. Timestamp日期格式转换
  9. php动态效果,jquery+php实现动态数字显示效果
  10. 如何关闭谷歌浏览器阅读清单(新方法)
  11. SSRS(rdl报表)分页显示表头和对表头的冻结处理
  12. amd625和mx250比较_笔记本电脑中的1050ti与mx250哪个显卡的性能比较好一些?
  13. 配置Hadoop格式化namenode时报错cannot create directory /usr/local/hadoop/tmp/dfs/name/current
  14. touchdesigner音频可视化
  15. 设计模式-合成复用原则-》面向对象设计原则
  16. GSSI地质雷达Radan7.5.18.02270视窗雷达数据分析软件中文免费版
  17. js数据过滤算法搭建
  18. 史上最全教程没有之一,微信小程序使用云开发解决微信支付问题,我走了几天几夜的弯路啊
  19. 一个计算机有几个cpu,为什么电脑都只有一个CPU
  20. 用JS模拟向左移动的侧移式灯箱效果

热门文章

  1. outlook 日历 桌面_将Microsoft Outlook固定到桌面背景
  2. 主流AI开发平台浅析1-华为云AI开发平台ModelArts
  3. Python: email-validator验证Email地址
  4. Drupal笔记之富文本输入框配置文件上传功能
  5. Android 自定义字体样式
  6. Vue.config.productionTip = false 是什麽意思?
  7. 经验:企业选择ERP管理系统五大方法
  8. android sd卡写入,Android写入SD卡文件夹
  9. 安装linux系统键盘布局,如何在 Linux 中使用屏幕键盘
  10. 综合案例:播放器 练习