Bootloader简单说明

文章目录

  • 一、简单架构
    • 1.CAN驱动
    • 2.Flash驱动
    • 3.传输层
    • 4.诊断层
    • 5.看门狗(Watch Dog)
    • 6.加密算法
  • 二、主要功能
  • 三、启动顺序与转换流程
    • 1.启动流程图
    • 2.启动顺序与转换流程说明

一、简单架构

1.CAN驱动

实现CAN报文的收发和CAN控制器硬件的操作。特点:初始化CAN控制器,CAN报文的收发,CAN报文事件反馈

2.Flash驱动

用于操作Flash的擦除、写入和读取功能。特点:Flash硬件初始化,擦除Flash扇区,Flash块的数据写入,Flash块的数据读取,数据校验。

3.传输层

主要是提供数据的组包和拆包功能服务,能够实现报文的分段传输:长报文的分包发送,以及分包报文的组装接收。特点:分包和组装来自数据链路层的数据,长报文的流控制和定时参数的调整,数据传输过程中的错误检测和超时处理。

4.诊断层

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

5.看门狗(Watch Dog)

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

6.加密算法

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

二、主要功能

(1)与上位机或者远程主机建立通信,完成应用程序的下载;
(2)应用程序的格式解析;
(3)将解析后的应用程序二进制代码编程到ECU的非易失性存储器中

三、启动顺序与转换流程

1.启动流程图

Bootloader简单说明_第1张图片

2.启动顺序与转换流程说明

①ECU上电或复位后,先进入Boot段。从Flash/EEPROM中读取App有效标志,运行boot标志。
②判断运行boot标志,若为1,则进入Boot段的编程会话(安全等级为上锁),之后写Flash/EEPROM(不安全操作),运行boot标志清零。若S3定时器超时则退回Boot段默认会话。
③经过安全访问进入Level2解锁状态,开始执行App内存擦除,擦除后App有效标志清零(不安全操作)。
④开始烧写。烧写成功后运行boot标志写0,App有效标志写1。
②*.判断运行boot标志,若为0,则进入Boot段的默认会话。
③*.50ms后判断App有效标志,若为1,则跳转到App段默认会话。实现时使用汇编指令执行APP段程序;若为0,退回Boot段默认会话,且不再判断App有效标志,不会再尝试进入App段。
④*.App段程序若收到了编程会话请求,运行boot标志写1,随即执行ECU复位,这样会重新进入boot段程序。
注:从BOOT跳入APP前需要判断APP的数据完整性,例如进行CRC校验

刷写流程

Bootloader简单说明_第2张图片

你可能感兴趣的:(bootloader,车载)