CN108920168A - 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法 - Google Patents

支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法 Download PDF

Info

Publication number
CN108920168A
CN108920168A CN201810619295.9A CN201810619295A CN108920168A CN 108920168 A CN108920168 A CN 108920168A CN 201810619295 A CN201810619295 A CN 201810619295A CN 108920168 A CN108920168 A CN 108920168A
Authority
CN
China
Prior art keywords
ecu
app
program
upper computer
computer software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810619295.9A
Other languages
English (en)
Other versions
CN108920168B (zh
Inventor
钟发平
李国军
张华�
胡建利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NATIONAL ENGINEERING RESEARCH CENTER OF ADVANCE ENERGY STORAGE MATERIALS
Original Assignee
NATIONAL ENGINEERING RESEARCH CENTER OF ADVANCE ENERGY STORAGE MATERIALS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NATIONAL ENGINEERING RESEARCH CENTER OF ADVANCE ENERGY STORAGE MATERIALS filed Critical NATIONAL ENGINEERING RESEARCH CENTER OF ADVANCE ENERGY STORAGE MATERIALS
Priority to CN201810619295.9A priority Critical patent/CN108920168B/zh
Publication of CN108920168A publication Critical patent/CN108920168A/zh
Application granted granted Critical
Publication of CN108920168B publication Critical patent/CN108920168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法,对ECU升级App程序时,先在上位机软件选择好指定的ECU,发送App程序升级请求标志给ECU,满足条件的ECU接收到请求之后,向上位机软件发送ECU类型广播地址及ECU私有地址,上位机软件在加载烧写文件时,根据接收到的ECU类型广播地址,在烧写文件中查找相应的特征码,根据相应的特征码的匹配情况,来决定上位机软件是否将烧写文件的数据发送给ECU进行App程序升级。本发明方法,简单可行,操作方便快捷,程序留有跳转到App程序升级的备用入口,即使旧的App程序完全不可用,也可以将新的App程序升级到ECU,可靠性高,且直接对烧写文件和在线ECU进行匹配性校验,防止程序与ECU不匹配的情况发生。

Description

支持多个同类ECU同时升级且具防程序不匹配功能的 Bootloader方法
技术领域
本发明涉及一种ECU升级方法,特别涉及一种支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法。
背景技术
在汽车电子控制单元ECU的开发、调试与后期维护的过程中,需要不同频次的对ECU的程序进行升级。传统的升级方法主要是利用芯片的专用烧写器或仿真器,通过板上的仿真调试接口进行升级,然而ECU安装到某一个子系统或者整车之后,ECU已被防护和结构部件层层包裹,若再将ECU拆解出来升级App程序,不仅费时费力,而且在反复拆装的过程中,还可能增加一些不必要的安全风险。
针对同类型的多个ECU升级程序的情况,比如分布式BMS中的电池采样单元BSU,根据系统大小,一般一个系统中具有几个到十几个BSU,传统的方法需要一个一个单独升级,这样的做法比较费时,而且有时候还会由于人为操作不当等原因,在通过Bootloader对同一个通信网络中的多种ECU分别进行程序升级时,可能发生将这种ECU的程序烧写到另外一种ECU里面,出现张冠李戴的情况,从而导致系统不能正常工作,严重时系统可能出现意外的损伤。
发明内容
本发明旨在提供一种简单可行、安全稳定、操作方便快捷的支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法。
本发明通过以下方案实现:
一种支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法,按以下步骤进行:
S1:系统上电复位,ECU进入Bootloader启动加载程序并ECU初始化,包括初始化时钟模块、IO模块、通信模块和存储器模块,建立存储空间映射,之后从IO模块或公共EEPROM存储器中获取ECU私有地址和ECU类型广播地址;存储空间包括寄存器、EEPROM存储器区、RAM存储器区和ROM存储器区,EEPROM存储器区包括公共EEPROM存储器和App EEPROM存储器;RAM存储器区包括App数据存储器和Bootloader数据存储器;ROM存储器区包括三个App程序存储器、ECU特征码组存储区、App中断向量表重映射区、App程序程序入口地址、Bootloader程序存储器和复位中断向量表;
S2:读取公共EEPROM存储器中的相关标志,判断是否有App程序升级请求标志,若是,则执行步骤S6,否则执行步骤S3;
S3:等待时间T,在该时间T内判断是否收到来自上位机软件的App程序升级请求标志,若是,则执行步骤S6,否则执行步骤S4;ECU将接收到的来自上位机软件的App程序升级请求标志存储在Bootloader数据存储器中;
S4:判断ECU内是否存在App程序,若是,则执行步骤S5,否则执行骤S6;
S5:跳转到App入口函数,执行App初始化程序,并向上位机软件发送App软件版本信息,之后循环执行App主程序;在循环执行App主程序过程中,若收到来自上位机软件的App程序升级请求,则跳转执行步骤S7;
S6:ECU向上位机软件发送请求应答信息,请求应答信息包括ECU私有地址和ECU类型广播地址,上位机软件接收到请求应答信息后,上位机软件开始App程序升级并将新的App程序发送给相对应的ECU,ECU判断App程序升级是否成功,若是,则提示升级成功,清除App程序升级请求标志,否则提示错误类型,软件复位,重新进入Bootloader启动加载程序。本发明中,App程序升级成功即视为ECU升级成功;
S7:ECU根据当前系统状态判断是否允许对App程序进行升级,若是,则在公共EEPROM存储器中设置App程序升级请求标志,之后软件复位,重新进入Bootloader启动加载程序,否则仍循环执行App主程序。
所述步骤S6中,上位机软件开始App程序升级并将新的App程序发送给相对应的ECU的具体步骤为:(1)上位机软件擦除ECU中旧的App,若旧的App擦除成功,则在上位机软件中选择烧写文件,否则重新擦除ECU中旧的App;(2)上位机软件根据接收到的ECU类型广播地址,在烧写文件中查找相应的特征码,若没有找到相应的特征码或者找到的特征码与ECU类型广播地址不匹配,则给出相应的提示,并禁止App程序升级;若找到相应的特征码且相应的特征码与ECU类型广播地址相匹配,则上位机软件以行为单位将烧写文件中的数据发送给相对应的ECU;(3)ECU对接收到的每行数据进行校验,校验通过后将其写入App程序存储器中。ECU与上位机软件之间的数据传输,可通过CAN通信、TCP/IP等方式实现。在ECU将上位机软件发送的烧写文件的数据写入App程序存储器中时,会根据烧写文件的数据大小选择相应的App程序存储器,如果一个App程序存储器的空间不够,则在存满一个App程序存储器后,再将剩余的数据依次存在另一个App程序存储器中,直至数据存储完。
进一步地,ECU内App程序升级成功的判断标准为:ECU接收到的所有数据都通过校验且正确的写入App程序存储器中。
所述步骤S7中,允许对App程序进行升级的判断条件为:车速为0且总输出功率为0且ECU功能正常。
所述步骤S3中,时间T为0.1~3秒。时间T的设置,其目的为:当遇到App程序升级过程中意外掉电或新升级的App程序存在BUG而不能执行App程序升级时,为ECU提供一个备用入口,进入App程序升级。上位机软件向ECU发送App程序升级请求标志时,一般以非常短的间隔时间多次发送,持续发送数秒,以确保在时间T内,可以从容的给ECU上电复位,然后在时间T内可以收到至少一次来自上位机软件的App程序升级请求标志。
一般情况下,在同一个通信网络中,存在着多个各种功能的ECU。为了区分,为每一个ECU设置唯一的私有地址和类型广播地址,可通过ECU类型广播地址来区分ECU类型,本发明在上位机软件设置ECU选择界面,通过选择特定的ECU广播地址或者ECU私有地址,来达到同时对多个指定的同类型ECU升级App程序或者单独对某一个ECU升级App程序的目的。
在ECU的App程序的特定地址段定义与ECU类型相匹配的特征码组,程序经编译、链接后,在生成的十六进制烧写文件(S19、Bin、Hex等)中会生成与特征码组相应的地址和数据。对ECU升级App程序时,先在上位机软件选择好指定的ECU,发送App程序升级请求标志给ECU,满足条件的ECU接收到请求之后,向上位机软件发送ECU类型广播地址及ECU私有地址,上位机软件在加载烧写文件时,根据接收到的ECU类型广播地址,在烧写文件中查找相应的特征码,根据相应的特征码的匹配情况,来决定上位机软件是否将烧写文件的数据发送给ECU进行App程序升级。
本发明的支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法,简单可行,使用外部通信接口,而非板载仿真调试接口升级App程序,既可同时对多个同类型ECU升级App程序,也可以单独对某一个ECU升级App程序,操作方便快捷,这样可避免将数据发送错误,安全性、稳定性均较高;Bootloader的代码位于有保护功能的FLASH区域,可以防止被擦除和改写;程序留有跳转到App程序升级的备用入口即从上位机软件发送App程序升级请求标志至ECU,即使旧的App程序完全不可用,也可以将新的App程序升级到ECU,可靠性非常高。本发明直接对源程序烧写文件和在线ECU进行匹配性校验,从源头上防止程序与ECU不匹配的情况发生。
附图说明
图1为实施例1中支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法的控制流程图;
图2为实施例1中ECU存储空间示意图;
图3为实施例1中步骤S6的具体流程图;
图4为实施例1中ECU与上位机软件之间的通信网络示意图。
具体实施方式
以下结合实施例对本发明作进一步说明,但本发明并不局限于实施例之表述。
实施例1
一种支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法,其控制流程图如图1所示,按以下步骤进行:
S1:系统上电复位,ECU进入Bootloader启动加载程序并ECU初始化,包括初始化时钟模块、IO模块、通信模块和存储器模块,建立存储空间映射,之后从IO模块或公共EEPROM存储器中获取ECU私有地址和ECU类型广播地址;如图2所示,存储空间包括寄存器、EEPROM存储器区、RAM存储器区和ROM存储器区,EEPROM存储器区包括公共EEPROM存储器和AppEEPROM存储器;RAM存储器区包括App数据存储器和Bootloader数据存储器;ROM存储器区包括三个App程序存储器、ECU特征码组存储区、App中断向量表重映射区、App程序程序入口地址、Bootloader程序存储器和复位中断向量表;
S2:读取公共EEPROM存储器中的相关标志,判断是否有App程序升级请求标志,若是,则执行步骤S6,否则执行步骤S3;
S3:等待时间T,在该时间T内判断是否收到来自上位机软件的App程序升级请求标志,若是,则执行步骤S6,否则执行步骤S4;ECU将接收到的来自上位机软件的App程序升级请求标志存储在Bootloader数据存储器中;
S4:判断ECU内是否存在App程序,若是,则执行步骤S5,否则执行骤S6;
S5:跳转到App入口函数,执行App初始化程序,并向上位机软件发送App软件版本信息,之后循环执行App主程序;在循环执行App主程序过程中,若收到来自上位机软件的App程序升级请求,则跳转执行步骤S7;
S6:ECU向上位机软件发送请求应答信息,请求应答信息包含ECU私有地址和ECU类型广播地址,上位机软件接收到请求应答信息后,上位机软件开始App程序升级并将新的App程序发送给相对应的ECU,如图3所示,具体步骤为:(1)上位机软件擦除ECU中旧的App,若旧的App擦除成功,则在上位机软件中选择烧写文件,否则重新擦除ECU中旧的App;(2)上位机软件根据接收到的ECU类型广播地址,在烧写文件中查找相应的特征码,若没有找到相应的特征码或者找到的特征码与ECU类型广播地址不匹配,则给出相应的提示,并禁止App程序升级;若找到相应的特征码且相应的特征码与ECU类型广播地址相匹配,则上位机软件以行为单位将烧写文件中的数据发送给相对应的ECU;(3)ECU对接收到的每行数据进行校验,校验通过后将其写入App程序存储器中;ECU判断App程序升级是否成功,若ECU收到的所有数据都通过校验且正确的写入App程序存储器中,则判断ECU内App程序升级成功,并提示升级成功,消除App程序升级请求标志,否则提示错误类型,软件复位,重新进入Bootloader启动加载程序;本发明中,App程序升级成功即视为ECU升级成功;
S7:ECU根据当前系统状态判断是否允许对App程序进行升级,若车速为0且总输出功率为0且ECU功能正常,则判断允许对App程序进行升级,在公共EEPROM存储器中设置App程序升级请求标志,之后软件复位,重新进入Bootloader启动加载程序,否则仍循环执行App主程序。
图4为ECU与上位机软件之间的通信网络示意图,同一个上位机软件可同时对应多个同类型的ECU。

Claims (5)

1.一种支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法,
其特征在于:按以下步骤进行:
S1:系统上电复位,ECU进入Bootloader启动加载程序并ECU初始化,包括初始化时钟模块、IO模块、通信模块和存储器模块,建立存储空间映射,之后从IO模块或公共EEPROM存储器中获取ECU私有地址和ECU类型广播地址;
S2:读取公共EEPROM存储器中的相关标志,判断是否有App程序升级请求标志,若是,则执行步骤S6,否则执行步骤S3;
S3:等待时间T,在该时间T内判断是否收到来自上位机软件的App程序升级请求标志,若是,则执行步骤S6,否则执行步骤S4;
S4:判断ECU内是否存在App程序,若是,则执行步骤S5,否则执行骤S6;
S5:跳转到App入口函数,执行App初始化程序,并向上位机软件发送App软件版本信息,之后循环执行App主程序;在循环执行App主程序过程中,若收到来自上位机软件的App程序升级请求,则跳转执行步骤S7;
S6:ECU向上位机软件发送请求应答信息,请求应答信息包括ECU私有地址和ECU类型广播地址,上位机软件接收到请求应答信息后,上位机软件开始App程序升级并将新的App程序发送给相对应的ECU,ECU判断App程序升级是否成功,若是,则提示升级成功,清除App程序升级请求标志,否则提示错误类型,软件复位,重新进入Bootloader启动加载程序;
S7:ECU根据当前系统状态判断是否允许对App程序进行升级,若是,则在公共EEPROM存储器中设置App程序升级请求标志,之后软件复位,重新进入Bootloader启动加载程序,否则仍循环执行App主程序。
2.如权利要求1所述的支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法,其特征在于:所述步骤S6中,上位机软件开始App程序升级并将新的App程序发送给相对应的ECU的具体步骤为:(1)上位机软件擦除ECU中旧的App,若旧的App擦除成功,则在上位机软件中选择烧写文件,否则重新擦除ECU中旧的App;(2)上位机软件根据接收到的ECU类型广播地址,在烧写文件中查找相应的特征码,若没有找到相应的特征码或者找到的特征码与ECU类型广播地址不匹配,则给出相应的提示,并禁止App程序升级;若找到相应的特征码且相应的特征码与ECU类型广播地址相匹配,则上位机软件以行为单位将烧写文件中的数据发送给相对应的ECU;(3)ECU对接收到的每行数据进行校验,校验通过后将其写入App程序存储器中。
3.如权利要求2所述的支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法,其特征在于:ECU内App程序升级成功的判断标准为:ECU接收到的所有数据都通过校验且正确的写入App程序存储器中。
4.如权利要求1~3任一所述的支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法,其特征在于:所述步骤S7中,允许对App程序进行升级的判断条件为:车速为0且总输出功率为0且ECU功能正常。
5.如权利要求1~3任一所述的支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法,其特征在于:所述步骤S3中,时间T为0.1~3秒。
CN201810619295.9A 2018-06-15 2018-06-15 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法 Active CN108920168B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810619295.9A CN108920168B (zh) 2018-06-15 2018-06-15 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810619295.9A CN108920168B (zh) 2018-06-15 2018-06-15 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法

Publications (2)

Publication Number Publication Date
CN108920168A true CN108920168A (zh) 2018-11-30
CN108920168B CN108920168B (zh) 2022-03-11

Family

ID=64420423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810619295.9A Active CN108920168B (zh) 2018-06-15 2018-06-15 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法

Country Status (1)

Country Link
CN (1) CN108920168B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109828769A (zh) * 2018-12-24 2019-05-31 同济大学 一种基于tcp/ip的嵌入式程序远程更新系统及方法
CN110231952A (zh) * 2019-06-17 2019-09-13 合肥巨一动力系统有限公司 一种ecu程序备份及循环升级控制方法及装置
CN111679846A (zh) * 2020-05-20 2020-09-18 北京海博思创科技股份有限公司 应用的更新方法和装置
CN113495509A (zh) * 2020-04-03 2021-10-12 上海汽车集团股份有限公司 一种控制器刷写方法及装置
CN111679846B (zh) * 2020-05-20 2024-05-28 北京海博思创科技股份有限公司 应用的更新方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009053920A (ja) * 2007-08-27 2009-03-12 Auto Network Gijutsu Kenkyusho:Kk 車載用電子制御ユニットのプログラム管理システム
CN103294511A (zh) * 2013-05-31 2013-09-11 哈尔滨工业大学 基于CAN总线的bootloader软件的升级方法
CN104216745A (zh) * 2014-08-29 2014-12-17 万向钱潮股份有限公司 一种半主动悬架ecu控制器软件在线升级系统与方法
CN104572221A (zh) * 2015-01-30 2015-04-29 重庆邮电大学 一种车载ecu在线升级系统及方法
US20170255459A1 (en) * 2016-03-01 2017-09-07 Renesas Electronics Corporation Embedded device and program updating method
CN107273152A (zh) * 2017-05-26 2017-10-20 安徽贵博新能科技有限公司 一种防止系统ecu软件被误升级的解决方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009053920A (ja) * 2007-08-27 2009-03-12 Auto Network Gijutsu Kenkyusho:Kk 車載用電子制御ユニットのプログラム管理システム
CN103294511A (zh) * 2013-05-31 2013-09-11 哈尔滨工业大学 基于CAN总线的bootloader软件的升级方法
CN104216745A (zh) * 2014-08-29 2014-12-17 万向钱潮股份有限公司 一种半主动悬架ecu控制器软件在线升级系统与方法
CN104572221A (zh) * 2015-01-30 2015-04-29 重庆邮电大学 一种车载ecu在线升级系统及方法
US20170255459A1 (en) * 2016-03-01 2017-09-07 Renesas Electronics Corporation Embedded device and program updating method
CN107273152A (zh) * 2017-05-26 2017-10-20 安徽贵博新能科技有限公司 一种防止系统ecu软件被误升级的解决方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109828769A (zh) * 2018-12-24 2019-05-31 同济大学 一种基于tcp/ip的嵌入式程序远程更新系统及方法
CN109828769B (zh) * 2018-12-24 2022-02-18 同济大学 一种基于tcp/ip的嵌入式程序远程更新系统及方法
CN110231952A (zh) * 2019-06-17 2019-09-13 合肥巨一动力系统有限公司 一种ecu程序备份及循环升级控制方法及装置
CN110231952B (zh) * 2019-06-17 2023-01-24 合肥巨一动力系统有限公司 一种ecu程序备份及循环升级控制方法及装置
CN113495509A (zh) * 2020-04-03 2021-10-12 上海汽车集团股份有限公司 一种控制器刷写方法及装置
CN111679846A (zh) * 2020-05-20 2020-09-18 北京海博思创科技股份有限公司 应用的更新方法和装置
CN111679846B (zh) * 2020-05-20 2024-05-28 北京海博思创科技股份有限公司 应用的更新方法和装置

Also Published As

Publication number Publication date
CN108920168B (zh) 2022-03-11

Similar Documents

Publication Publication Date Title
US7991988B2 (en) Communication device and firmware update method thereof
CN110231952A (zh) 一种ecu程序备份及循环升级控制方法及装置
RU2142168C1 (ru) Способ полного перепрограммирования стираемой энергонезависимой памяти
CN102662701B (zh) Cpld在线升级方法、装置及业务单板
CN104850762B (zh) 防止计算机的动作不良的方法、计算机程序以及计算机
CN108920168A (zh) 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法
US7404028B2 (en) ECU identification retention across reprogramming events
US20040205745A1 (en) Method and system for identifying compatibility between firmware images
CN101826027A (zh) 一种嵌入式系统及其升级方法
CN104915219A (zh) 单片机程序升级方法及装置
CN109062598A (zh) 一种安全的ota升级方法及系统
CN107861745A (zh) 一种应用程序在线升级方法、装置、设备及存储介质
CN111240720A (zh) 引导程序升级方法、装置及存储介质
CN108108193A (zh) 一种安全易用的固件升级方法及系统
CN110045968B (zh) 一种stm32跨单片机烧录程序的方法
CN106708584A (zh) 程序烧录方法及装置
CN109086058A (zh) 车载程序升级系统
CN106406955A (zh) RSU设备bootloader程序升级的方法、装置
CN108182078B (zh) 一种优化的弹载设备不拆弹软件在线升级方法
CN107566169A (zh) 一种基于openwrt的固件升级方法及路由器
CN102479121A (zh) 独立磁盘冗余阵列实现及测试方法
CN109358865A (zh) 一种具有远程升级功能的工业车辆车联网仪表及升级方法
CN112000358B (zh) 充电桩的升级方法与智能充电桩
US5794007A (en) System and method for programming programmable electronic components using board-level automated test equipment
CN114168171A (zh) 一种程序在线分段升级方法及其应用

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant