车载ECU的Bootloader实现方法

概述

应用程序软件是汽车ECU中最重要的组成部分,ECU的功能和可靠性很大程度上取决于其应用软件部分。随着汽车电子技术不断发展,ECU电控系统代码复杂程度不断增长,ECU软件频繁地面临着变更、升级的问题。在研发初期,一般使用JTAGBDMNexus等硬件物理接口下载程序,但是随着技术研发的深入及产品的生产和售后阶段,物理硬件接口下载的方式已经不能满足OEM和供应商的需求。

当前CAN总线已经广泛地应用于整车网络应用中,所以基于CAN总线的在线软件刷写功能也被广泛使用。在开发阶段,通过CAN总线在线刷写ECU代码可以方便软件开发人员设计、调试及测试软件代码等,提高工作效率和开发进度;在生产阶段,通过CAN总线在线刷写程序可以实现批量下载,方便软件版本的更新,也能免除JTAG、BDM等物理硬件接口的成本及繁杂度;在售后阶段,可以利用诊断仪等设备,通过CAN总线直接升级ECU中的软件,避免由于软件缺陷引起的产品召回事件所造成的巨大损失,也可以为ECU功能提供一个可升级的平台。

Flash Bootloader软件架构

CAN驱动(CAN Driver)

CAN驱动模块实现CAN报文的收发和CAN控制器硬件的操作;
CAN驱动主要由有下特点:

  • 初始化CAN控制器
  • CAN报文的接收和发送
  • CAN报文事件反馈

Flash驱动(Flash Driver)

用于操作Flash的擦除、写入和读取功能,
Flash驱动主要有如下特点:

  • Flash硬件初始化
  • 擦除Flash扇区
  • Flash块的数据写入
  • Flash块的数据读取
  • 数据校检

传输层(Transport Protocol Layer)

传输层可实现以下部分(根据方案不同使用不同的传输层协议):

  • 基于ISO 15765-2的传输协议规范
  • 基于CCP的传输协议规范

传输层主要是提供数据的组包和拆包功能服务,能够实现报文的分段传输(segmented transmission):长报文的分包发送,以及分包报文的组装接收。

传输层有如下特点:

  1. 分包和组装来自数据链路层的数据
  2. 长报文的流控制和定时参数的调整
  3. 数据传输过程中的错误检测和超时处理

诊断层(Diagnostics Layer)

当传输层采用基于ISO 15765协议规范时,诊断层作为可选项集成到Bootloader程序代码中。
诊断层实现ISO 15765-3/ISO 14229-1中定义的Bootloader程序刷写流程,包括:诊断会话切换、安全状态切换、标识符读写、程序刷写和ECU复位等。

诊断层主要有如下特点:

  • 实现ISO 14229中刷写相关的诊断服务
  • 调用Flash Driver

看门狗(Watch Dog)

为防止Bootloader出现超时操作,看门狗模块能够在超过一定时间后产生ECU复位操作,提高软件的可靠性。
看门狗定时有如下特点:
• 监控Bootloader超时或者死机,对ECU复位
• 定时参数可以任意配置
• 实时性有保证

加密算法

主要用以处理软件加密和安全访问相关的诊断服务内容,实现程序下载的合法性和完整性。
加密算法模块有如下特点:
• 根据用户需求不同,作为可选项
• 下载工具的合法性校检,Seed & Key诊断服务
• 程序下载的完整性校检,如CRC校检

FlashBootloader解决方案

实现CAN总线在线刷写功能,则需要开发针对目标ECU的Bootloader功能软件,包括必要的CAN驱动,Flash驱动,通信协议等组件。Bootloader软件一般具有如下要求:
• Bootloader与应用软件必须放于不同的ROM空间中
• 使用非易失性存储单元存放标志位等信息
• 需要支持不同的通信协议
• Bootloader与应用软件不能同时占有硬件资源
• 因ECU掉电等情况导致程序刷写故障的故障修复功能
• 对下载程序验证
• 安全访问模块和加密算法
• 看门狗

方案1

参照ISO 15765相关规范,将其中传输层协议精简后的FlashBootloader在线刷写方案,包括Flash刷写工具、Bootloader嵌入式源码、Flash驱动和Bootloader应用程序源码等。

在这里插入图片描述

方案2

完全满足ISO 15765规范的FlashBootloader在线刷写方案,Bootloader模块基于ISO 15765-2、ISO 15765-3标准开发,各功能模块软件架构如下图中所示:
在这里插入图片描述

方案3

基于CCP协议的FlashBootloader在线刷写方案,Bootloader模块基于CCP协议标准开发。

参考及引用

http://www.ecucoder.com/plus/list.php?tid=110 . Bootloader.

  • 4
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值