好长时间没有站在代码开发的第一线了,最近独立搞了一个工程,感觉技术工程师附体,恢复了往日对技术的热情。

在软件定义汽车的时代,ECU软件的更新非常重要。这样就要求ECU具备BootLoader功能。

汽车BootLoader更新是通过通讯链接去更新的,主要有CAN、Lin、UART、Ethernet等通讯方式。现在用的最多的还是基于CAN通讯进行软件升级。

下面来具体谈谈,基于CAN总线的BootLoader升级刷新方案。

通过CAN通讯方式,把新的程序下载到ECU里,这个过程就需要有3个组成部分:

1、支持Bootloader功能的ECU控制器(下位机);

2、烧录上位机(PC端的上位机);

3、CAN连接器(CANoe或者PCAN,周立功CAN盒等);

涉及到软件的开发工作主要是:上位机和下位机。

上位机的功能主要是读取二进制的烧录文件,以一定的组织方式,通过CAN连接器将这个文件下发给下位机即可。

开发上位机的工具有很多,用到的语言主要有C#/VB等高级语言。

上面谈到的上位机以一定的组织方式下发烧录文件,这里指的是刷新的协议,现在主流的是UDS诊断协议,也就是ISO14229(配合传输层协议ISO15765).也有些厂家用的是基于标定的刷新流程,比如CCP协议。也有一些厂家自定义的刷新协议。

那么开发上位机主要有哪一些工作要做呢?

主要包括:上位机界面制作,二进制文件(bin、hex、s19、mot等格式)解析,CAN卡(CANoe、pcan或者周立功CAN或者其他)驱动的调用,UDS刷写流程实现等。

好啦,说了半天好像有点偏离主题啦,不是要谈BootLoader吗。下面就开始谈谈下位机。

BootLoader实际上有2层意思,启动加载。BootLoader软件工程是独立于APP应用工程的,是单独开发的一个工程。

BootLoader的主体功能很单一,就是为了更新程序,但是长得各式各样,可配置的选项非常多,下面主要列举几个常见的配置项:

1、上位机是否支持多个厂家的CAN卡;

2、上位机是否支持多种格式的烧录文件;

3、FlashDriver是否需要从上位机下载或者说下位机自带FlashDriver;

4、上位机是否同时支持UDS协议和CCP协议;

5、上位机是否支持可配置的UDS刷写流程;

6、软件更新是整体更新还是部分更新;

7、下位机是否具有文件备份和软件回滚的功能;

8、下位机BootLoader是否具备自更新功能(2级BootLoader);

总之,BootLoader的变化太多了,要想整一套完全通用的BootLoader方案,工作量很大。这也许是为什么Vector的FBL工具卖得那么贵的原因吧。

BootLoader下位机开发内容主要包含:FLASH/RAM/EEPROM地址分配,Flash驱动开发,EEPROM驱动开发(可能需要SPI或者串口通讯等),CAN驱动开发,UDS协议栈开发,跳转函数的开发等。

今天就先写到这里吧,忙里偷闲,老板喊我去救火了。

欢迎沟通ConnectVX:AutosarSoftware

作者水平有限,有不足或者错误之处,望各位同仁和专家补充、批评斧正。

浅谈基于UDS的ECU刷写方案(Bootloader刷新)相关推荐

  1. 搞懂分布式技术16:浅谈分布式锁的几种方案

    搞懂分布式技术16:浅谈分布式锁的几种方案 前言 随着互联网技术的不断发展,数据量的不断增加,业务逻辑日趋复杂,在这种背景下,传统的集中式系统已经无法满足我们的业务需求,分布式系统被应用在更多的场景, ...

  2. 集 承 享——浅谈基于内容的全链档案管理与服务

    2022年4月16日,由中国人民大学电子文件管理研究中心.中国人民大学信息资源管理学院主办的第十二届"中国电子文件管理论坛"成功在京举办.已举办十二届的该论坛是中国电子文件管理领域 ...

  3. catia三维轴承_浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文

    浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文 一.概述 单排四点接触球转盘轴承是一种能够同时承受较大轴向负荷.径向负荷和倾覆力矩等综合载荷,集支承.旋转.传动.固定等多种功能于一身的特殊 ...

  4. 浅谈基于软交换的下一代网络技术

    浅谈基于软交换的下一代网络技术 随着产业界的融合趋势,电话网.计算机网.有线电视网趋于融合,网络面临的负荷在不断增大,业务需求也趋于多样化,运营商必须提供越来越多的多媒体业务才能吸引住用户,如何建设一 ...

  5. 计算机网络环境中学科教学,浅谈基于计算机网络环境下的农村小学的科学学科教育...

    浅谈基于计算机网络环境下的农村小学的科学学科教育 [内容摘要] <国家中长期教育改革和发展规划纲要(2010-2020年)>明确提出:加快教育信息化进程.重点加强农村学校信息基础建设,缩小 ...

  6. 浅谈基于SDL的2D纵版弹幕射击游戏相关经验心得

    浅谈基于SDL的2D游戏开发相关 前言:本人才疏学浅,大一新生一枚   写这篇文章的目是为了跟大家分享下自己的一些经验. 进入正题:首先本文这一切的一切都是基于SDL开发WINDOWS平台上的游戏.如 ...

  7. matlab单相电源在哪里,浅谈基于MATLAB的单相独立光伏逆变电源电路仿真设计

    156电子技术 独立型光伏发电系统系统结构如图 1 所示,主要有太阳电池组件(方阵).控制器.储能蓄电池(组).直流 / 交流逆变器等部分组成.光伏阵列发出的直流电通过器将其逆变为交流电供给负载,蓄电 ...

  8. 基于UDS的ECU bootloader

    CAN总线学习-3 最近学习基于UDS的bootloader,做一些总结. 1. 基于UDS的bootloader重要性 为了在不拆卸ECU的外壳的情况下也可以更新ECU的APP,我们需要有bootl ...

  9. can例程 ecu_基于CAN的ECU刷写流程

    ​ ECU软件分为bootloader和application.ECU上电后,先进入bootLoader确定application程序是否有问题,如果没有问题则跳转至application,如果app ...

最新文章

  1. 西北工业大学计算机网络实验报告2,西北工业大学《网络性能测试》实验报告...
  2. 【Java 虚拟机原理】Class 字节码二进制文件分析 六 ( 属性类型 | Code 属性 | 属性名称索引 | 属性长度 | 操作数栈最大深度 | 局部变量存储空间 | 字节码长度 )
  3. 帆软正则表达式定义规则
  4. 苹果的程序员三大定律
  5. 散列表查找失败平均查找长度_Python数据结构与算法56:排序与查找:冲突解决方案...
  6. 小程序如何调用php程序,微信小程序调用PHP后台接口 解析纯html文本
  7. 棋牌游戏服务器设计(1)
  8. win64位下安装python的image支持
  9. jsp action java_jsp中Action使用session方法实例分析
  10. 案例:如何解决难以重现的BUG
  11. IVF和VS安装——配置Fortran环境
  12. 大学计算机专业用ipad pro够用吗,苹果iPad Pro上很合适学生党的几个专业App
  13. ASPP - 空洞空间金字塔池化
  14. echarts:x轴文字竖排显示
  15. 南大软院大神养成计划--HTML和CSS基础课程(二)
  16. python给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字
  17. 【Linux】time+dd测试硬盘读写速度
  18. 洛谷P1796 汤姆斯的天堂梦【DP-数字三角形模型】【橙】
  19. 【来日复制粘贴】提取工作表和工作簿名称
  20. php正则匹配标点符号,js实现正则匹配中文标点符号的方法

热门文章

  1. h61 nvme硬盘_NVMe和PCIE谁对固态硬盘的影响更大?
  2. mysql block是什么_数据库中block代表什么意思?
  3. Lake Shore—OptiMag 超导磁体系统 — OM 系列
  4. 博弈五子棋(人机对战)算法改进
  5. 软件工程专业就业前景怎么样?
  6. Oracle提示TNS:无监听程序的解决办法
  7. 为你的NAS开启DDNS服务,独立IP IPV6 可用 - DDNS-GO
  8. QT中 :-1: error: Failed to resolve include /moc_predefs.h“ for moc file
  9. Electron学习笔记
  10. 程序员的目标不是赚钱而是向牛人看齐(转)