CN112114888A - 一种电动汽车电控系统通用客户端引导程序生成方法 - Google Patents
一种电动汽车电控系统通用客户端引导程序生成方法 Download PDFInfo
- Publication number
- CN112114888A CN112114888A CN202011052373.5A CN202011052373A CN112114888A CN 112114888 A CN112114888 A CN 112114888A CN 202011052373 A CN202011052373 A CN 202011052373A CN 112114888 A CN112114888 A CN 112114888A
- Authority
- CN
- China
- Prior art keywords
- data
- bootstrap
- module
- program
- fee
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000004891 communication Methods 0.000 claims description 10
- 238000003745 diagnosis Methods 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 238000013500 data storage Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Retry When Errors Occur (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种电动汽车电控系统通用客户端引导程序生成方法,本方法在原外部EEPROM模块硬件基础上,增加MCU芯片内部的FEE模块,FEE模块对DFLASH操作,在外部EEPROM模块和内部FEE模块存储相同的引导程序数据进行备份,MCU芯片通过CRC校验获得正确的引导程序数据;MCU芯片通过CAN总线确定刷新应用程序的节点MCU,选定该节点应用程序hex文件,该hex文件包括应用程序烧写文件以及引导程序数据;按BootLoader刷新应用程序流程,逐个刷新对应节点MCU的应用程序。本方法避免掉电时导致关键数据写入失败或数据被意外破坏带来的影响,对于多节点MCU系统将烧写文件合并,采用同时刷新的方式,提高刷新效率,避免人为错误。
Description
技术领域
本发明涉及一种电动汽车电控系统通用客户端引导程序生成方法。
背景技术
随着新能源汽车行业的发展,生产及运行的新能源车的数量也不断提高,更新电控系统应用程序和客户引导程序需求越来越多。
引导程序广泛应用于汽车控制系统,在不借助调试仿真器的前提下,利用CAN通信总线,实现引导处理器并加载应用程序的功能。现有的引导程序生成方法存在的缺点有:1.存在处理器意外掉电或数据存储设备损坏后,导致应用程序或者引导程序运行失效的问题;2.在多个节点MCU系统中,需要多次切换烧写设备,操作繁琐,并且应用程序烧写文件和参数烧写文件较多,容易引起误操作等问题。
发明内容
本发明所要解决的技术问题是提供一种电动汽车电控系统通用客户端引导程序生成方法,本方法克服传统客户端引导程序生成方式的缺陷,避免数据存储设备损坏带来的影响,对于多节点MCU的系统将烧写文件合并,采用同时刷新的方式,提高了刷新效率,避免人为错误。
为解决上述技术问题,本发明一种电动汽车电控系统通用客户端引导程序生成方法包括如下步骤:
步骤一、在电控系统MCU芯片内部设置FEE模块,FEE模块实现对DFLASH数据的操作,FEE模块通过MCU芯片的SPI模块与外部EEPROM模块通讯连接并存储相同的引导程序数据;
步骤二、MCU芯片从 FEE模块读取全部引导程序数据,计算全部引导程序数据的CRC校验值,并从FEE模块指定的地址读取CRC校验值进行比对;
步骤三、若比对结果一致,则FEE模块中的引导程序数据安全有效,程序使用FEE模块的引导程序数据,若比对结果不一致,则MCU芯片再次读取FEE模块引导程序数据,计算并比对CRC校验值;
步骤四、若某次比对结果一致,则程序使用该次FEE模块的引导程序数据,若比对结果始终不一致,则MCU芯片从外部EEPROM模块读取全部引导程序数据及CRC校验值,计算全部引导程序数据的CRC校验值,并与从外部EEPROM模块读取的CRC校验值进行比对;
步骤五,若比对结果一致,则外部EEPROM模块中的引导程序数据安全有效,程序使用外部EEPROM模块中的引导程序数据;若比对结果不一致,则进行再次引导程序数据读取及CRC校验值比对;若某次比对结果一致,则程序使用该次外部EEPROM模块中的引导程序数据;若比对结果始终不一致,则引导程序使用MCU芯片内部PFLASH区域的默认数据;
步骤六、MCU芯片通过CAN总线发送电控系统各节点CAN诊断通信报文,根据各节点CAN报文答复情况,确定可刷新应用程序的节点MCU的通信报文ID;
步骤七、选定各个节点MCU的应用程序hex文件,使用Python脚本将编译应用程序后的hex文件数据、外部EEPROM模块的引导程序数据或内部FEE模块的引导程序数据,按照地址分配,合并为hex文件;
步骤八、按照BootLoader刷新应用程序流程,分时发送对应节点的诊断报文,逐个刷新对应节点MCU的应用程序;
步骤九、若应用程序有刷新错误,终止当前节点应用程序的刷新,开始刷新下一个节点的应用程序,最后显示各个节点刷新的结果及其错误信息。
进一步,所述步骤三中,MCU芯片读取外部EEPROM模块引导程序数据的次数为2~3次。
进一步,所述步骤五中,进行再次引导程序数据读取及CRC校验值比对的次数为2~3次。
进一步,将FEE模块划分为若干存储区域,引导程序数据存储于若干存储区域,引导程序数据写入后还需计算对应存储区域的CRC校验值并储存;读取FEE模块引导程序数据时,读取对应存储区域的全部存储数据并计算对应存储区域的CRC校验值,读取该存储区域储存的CRC校验值并与计算得到的CRC校验值比较,若比较一致,则数据读写正常,从对应区域读取需要的引导程序数据;若比较不一致,从外部EEPROM模块读取出错存储区域的备份数据并写入该存储区域,重新计算该存储区域的CRC校验值并储存。
进一步,所述电控系统MCU芯片每次复位或下电前,将FEE模块各存储区域的数据以及各存储区域的CRC校验值备份至所述外部EEPROM模块,计算全部数据的整体CRC校验值并备份至外部EEPROM模块和FEE模块。
由于本发明一种电动汽车电控系统通用客户端引导程序生成方法采用了上述技术方案,即为了保证引导程序数据安全有效,需要做数据冗余,在原外部EEPROM模块硬件基础上,增加了MCU芯片内部的FEE模块,FEE模块对DFLASH操作,在外部EEPROM模块和内部FEE模块存储相同的引导程序数据进行做备份,MCU芯片通过CRC校验获得正确的应用程序引导程序数据;MCU芯片通过CAN总线确定刷新应用程序的节点MCU,选定该节点应用程序hex文件,该hex文件包括应用程序烧写文件以及引导程序数据;按BootLoader刷新应用程序流程,逐个刷新对应节点MCU的应用程序。本方法克服传统客户端引导程序生成方式的缺陷,避免数据存储设备损坏带来的影响,对于多节点MCU的系统将烧写文件合并,采用同时刷新的方式,提高了刷新效率,避免人为错误。
附图说明
下面结合附图和实施方式对本发明作进一步的详细说明:
图1为本方法中引导程序数据存储设备的系统图;
图2为本方法流程图;
图3为本方法中同时刷新多节点MCU的系统图。
具体实施方式
实施例如图1至图3所示,本发明一种电动汽车电控系统通用客户端引导程序生成方法包括如下步骤:
步骤一、在电控系统MCU芯片内部设置FEE模块,FEE模块实现对DFLASH数据的操作,FEE模块通过MCU芯片的SPI模块与外部EEPROM通讯连接并存储相同的引导程序数据;
步骤二、MCU芯片从MCU内部FEE模块读取全部引导程序数据,计算全部引导程序数据的CRC校验值,并从MCU内部FEE模块指定的地址读取CRC校验值进行比对;
步骤三、若比对结果一致,则MCU内部FEE模块中的引导程序数据安全有效,程序使用MCU内部FEE模块的引导程序数据,若比对结果不一致,则MCU芯片再次读取MCU内部FEE模块引导程序数据,计算并比对CRC校验值;
步骤四、若某次比对结果一致,则程序使用该次MCU内部FEE的引导程序数据,若比对结果始终不一致,则MCU芯片从外部EEPROM模块读取全部引导程序数据及CRC校验值,计算全部引导程序数据的CRC校验值,并与从外部EEPROM模块读取的CRC校验值进行比对;
步骤五,若比对结果一致,则外部EEPROM模块中的引导程序数据安全有效,程序使用外部EEPROM模块中的引导程序数据;若比对结果不一致,则进行多次引导程序数据读取及CRC校验值比对;若某次比对结果一致,则程序使用该次外部EEPROM模块中的引导程序数据;若比对结果始终不一致,则引导程序使用MCU内部PFLASH区域的默认数据;
步骤六、MCU芯片通过CAN总线发送电控系统各节点CAN诊断通信报文,根据各节点CAN报文答复情况,确定可刷新应用程序的节点MCU的通信报文ID;
步骤七、选定各个节点MCU的应用程序hex文件,该hex文件内容包括编译应用程序后的hex文件数据、外部EEPROM模块的引导程序数据或内部FEE模块的引导程序数据;其中,该hex文件使用Python脚本将编译应用程序后的hex文件数据、外部EEPROM模块的引导程序数据或内部FEE模块的引导程序数据,按照地址分配,合并为该hex文件;
步骤八、按照BootLoader刷新应用程序流程,分时发送对应节点的诊断报文,逐个刷新对应节点MCU的应用程序;
步骤九、若应用程序有刷新错误,终止当前节点应用程序的刷新,开始刷新下一个节点的应用程序,最后显示各个节点刷新的结果及其错误信息。
优选的,所述步骤三中,MCU芯片读取外部EEPROM模块引导程序数据的次数为2~3次。
优选的,所述步骤五中,进行再次引导程序数据读取及CRC校验值比对的次数为2~3次。
优选的,将FEE模块划分为若干存储区域,引导程序数据存储于若干存储区域,引导程序数据写入后还需计算对应存储区域的CRC校验值并储存;读取FEE模块需要的引导程序数据时,读取对应存储区域的全部存储数据并计算对应存储区域的CRC校验值,读取该存储区域储存的CRC校验值并与计算得到的CRC校验值比较,若比较一致,则数据读写正常,从对应区域读取需要的引导程序数据;若比较不一致,从外部EEPROM模块读取出错存储区域的备份数据并写入该存储区域,重新计算该存储区域的CRC校验值并储存。
优选的,所述电控系统MCU芯片每次复位或下电前,将FEE模块各存储区域的数据以及各存储区域的CRC校验值备份至所述外部EEPROM模块,计算全部数据的整体CRC校验值并备份至外部EEPROM模块和FEE模块。
本方法中Pflash(program flash) 用于存放代码或者数据,就是主flash;Dflash(Data flash)通常是FlexNVM,可以划分为EEPROM备份以及Dataflash,可以与主flash并存,在主程序存储器运行时,用于存放大数据块。
在BootLoader算法中,为了保证数据安全有效,需要做数据冗余。本方法在原外部EEPROM模块硬件基础上,增加了MCU芯片内部的FEE模块,FEE模块对DFLASH操作,在外部EEPROM和内部FEE模块存储相同的引导程序数据,实现引导程序数据的备份。
本方法对于引导程序来说,采用外部EEPROM模块和MCU内部FEE模块的数据冗余备份设计,保证了数据的安全可靠,避免程序运行失效等问题。而对于多节点MCU系统,能同时刷新应用程序和参数文件,避免人为错误,提高刷新效率,节省了时间。
Claims (5)
1.一种电动汽车电控系统通用客户端引导程序生成方法,其特征在于本方法包括如下步骤:
步骤一、在电控系统MCU芯片内部设置FEE模块,FEE模块实现对DFLASH数据的操作,FEE模块通过MCU芯片的SPI模块与外部EEPROM模块通讯连接并存储相同的引导程序数据;
步骤二、MCU芯片从 FEE模块读取全部引导程序数据,计算全部引导程序数据的CRC校验值,并从 FEE模块指定的地址读取CRC校验值进行比对;
步骤三、若比对结果一致,则 FEE模块中的引导程序数据安全有效,程序使用FEE模块的引导程序数据,若比对结果不一致,则MCU芯片再次读取 FEE模块引导程序数据,计算并比对CRC校验值;
步骤四、若某次比对结果一致,则程序使用该次FEE模块的引导程序数据,若比对结果始终不一致,则MCU芯片从外部EEPROM模块读取全部引导程序数据及CRC校验值,计算全部引导程序数据的CRC校验值,并与从外部EEPROM模块读取的CRC校验值进行比对;
步骤五,若比对结果一致,则外部EEPROM模块中的引导程序数据安全有效,程序使用外部EEPROM模块中的引导程序数据;若比对结果不一致,则进行再次引导程序数据读取及CRC校验值比对;若某次比对结果一致,则程序使用该次外部EEPROM模块中的引导程序数据;若比对结果始终不一致,则引导程序使用MCU芯片内部PFLASH区域的默认数据;
步骤六、MCU芯片通过CAN总线发送电控系统各节点CAN诊断通信报文,根据各节点CAN报文答复情况,确定可刷新应用程序的节点MCU的通信报文ID;
步骤七、选定各个节点MCU的应用程序hex文件,使用Python脚本将编译应用程序后的hex文件数据、外部EEPROM模块的引导程序数据或内部FEE模块的引导程序数据,按照地址分配,合并为hex文件;
步骤八、按照BootLoader刷新应用程序流程,分时发送对应节点的诊断报文,逐个刷新对应节点MCU的应用程序;
步骤九、若应用程序有刷新错误,终止当前节点应用程序的刷新,开始刷新下一个节点的应用程序,最后显示各个节点刷新的结果及其错误信息。
2.根据权利要求1所述的电动汽车电控系统通用客户端引导程序生成方法,其特征在于:所述步骤三中,MCU芯片读取外部EEPROM模块引导程序数据的次数为2~3次。
3.根据权利要求1所述的电动汽车电控系统通用客户端引导程序生成方法,其特征在于:所述步骤五中,进行多次引导程序数据读取及CRC校验值比对的次数为2~3次。
4.根据权利要求1所述的电动汽车电控系统通用客户端引导程序生成方法,其特征在于:将FEE模块划分为若干存储区域,引导程序数据存储于若干存储区域,引导程序数据写入后,计算对应存储区域的CRC校验值并储存;读取FEE模块引导程序数据时,读取对应存储区域的全部存储数据并计算对应存储区域的CRC校验值,读取该存储区域储存的CRC校验值并与计算得到的CRC校验值比较,若比较一致,则数据读写正常,从对应存储区域读取需要的引导程序数据;若比较不一致,从外部EEPROM模块读取出错存储区域的备份数据并写入该存储区域,重新计算该存储区域的CRC校验值并储存。
5.根据权利要求4所述的电动汽车电控系统通用客户端引导程序生成方法,其特征在于:所述电控系统MCU芯片每次复位或下电前,将FEE模块各存储区域的数据以及各存储区域的CRC校验值备份至所述外部EEPROM模块,计算全部数据的整体CRC校验值并备份至外部EEPROM模块和FEE模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011052373.5A CN112114888B (zh) | 2020-09-29 | 2020-09-29 | 一种电动汽车电控系统通用客户端引导程序生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011052373.5A CN112114888B (zh) | 2020-09-29 | 2020-09-29 | 一种电动汽车电控系统通用客户端引导程序生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112114888A true CN112114888A (zh) | 2020-12-22 |
CN112114888B CN112114888B (zh) | 2024-05-17 |
Family
ID=73796837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011052373.5A Active CN112114888B (zh) | 2020-09-29 | 2020-09-29 | 一种电动汽车电控系统通用客户端引导程序生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114888B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN106647238A (zh) * | 2016-12-13 | 2017-05-10 | 安徽航瑞航空动力装备有限公司 | 一种基于can线刷新冗余控制器的方法 |
CN106951342A (zh) * | 2017-03-17 | 2017-07-14 | 数据通信科学技术研究所 | 一种TF卡片内Flash的纠错方法 |
CN109656598A (zh) * | 2018-12-24 | 2019-04-19 | 天津凯发电气股份有限公司 | 一种基于mqx实时操作系统的应用程序在线升级方法 |
US20200117805A1 (en) * | 2018-08-23 | 2020-04-16 | Shenzhen GOODIX Technology Co., Ltd. | Secure booting method, apparatus, device for embedded program, and storage medium |
CN111625286A (zh) * | 2020-06-04 | 2020-09-04 | 中国科学院长春光学精密机械与物理研究所 | 一种星载dsp程序外部引导加载方法及加载系统 |
-
2020
- 2020-09-29 CN CN202011052373.5A patent/CN112114888B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN106647238A (zh) * | 2016-12-13 | 2017-05-10 | 安徽航瑞航空动力装备有限公司 | 一种基于can线刷新冗余控制器的方法 |
CN106951342A (zh) * | 2017-03-17 | 2017-07-14 | 数据通信科学技术研究所 | 一种TF卡片内Flash的纠错方法 |
US20200117805A1 (en) * | 2018-08-23 | 2020-04-16 | Shenzhen GOODIX Technology Co., Ltd. | Secure booting method, apparatus, device for embedded program, and storage medium |
CN109656598A (zh) * | 2018-12-24 | 2019-04-19 | 天津凯发电气股份有限公司 | 一种基于mqx实时操作系统的应用程序在线升级方法 |
CN111625286A (zh) * | 2020-06-04 | 2020-09-04 | 中国科学院长春光学精密机械与物理研究所 | 一种星载dsp程序外部引导加载方法及加载系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112114888B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102385535B (zh) | 处理从非易失性存储器进行设备引导期间的错误 | |
JP2990181B1 (ja) | フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法 | |
US20080046780A1 (en) | Nonvolatile memory | |
CN106021002B (zh) | 一种嵌入式设备数据读写方法及装置 | |
CN113703803B (zh) | 基于fpga的远程升级系统、方法及介质 | |
CN112306726B (zh) | 一种抗单粒子翻转系统及方法 | |
US20080140920A1 (en) | Microcomputer for flash memory rewriting | |
CN112114888B (zh) | 一种电动汽车电控系统通用客户端引导程序生成方法 | |
CN112379843A (zh) | Eeprom数据处理方法、系统、存储介质及终端 | |
CN112559071A (zh) | 一种用于dsp的分段双冗余引导加载方法 | |
US9135107B2 (en) | Memory control device and memory control method | |
CN116795408A (zh) | Ecu的软件升级方法、系统及车辆 | |
CN116521062A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20070033492A1 (en) | Method and device for monitoring an electronic circuit | |
CN115421657A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN114721877A (zh) | 一种软件容错恢复方法、装置、设备及存储介质 | |
CN111124742B (zh) | Flash数据校验方法及Flash控制器、存储介质、设备 | |
CN114741091A (zh) | 固件加载方法、装置、电子设备及计算机可读存储介质 | |
CN112835745B (zh) | 一种嵌入式系统高可靠存储方法 | |
JP4239754B2 (ja) | 不揮発メモリシステム | |
CN112286464B (zh) | 片内crc检查数据完整性方法、装置、存储介质和终端 | |
CN112883384B (zh) | 一种强鲁棒性的嵌入式计算机引导加载程序的保护方法 | |
CN114637626B (zh) | 减少eeprom数据读写出错的方法、装置、设备及可读存储介质 | |
CN110554928A (zh) | 一种非易失性半导体存储器参数上电读取方法及装置 | |
CN111597126B (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 |