CN111142919A - 一种适用于多组mcu单元程序同时升级的方法 - Google Patents
一种适用于多组mcu单元程序同时升级的方法 Download PDFInfo
- Publication number
- CN111142919A CN111142919A CN201911377717.7A CN201911377717A CN111142919A CN 111142919 A CN111142919 A CN 111142919A CN 201911377717 A CN201911377717 A CN 201911377717A CN 111142919 A CN111142919 A CN 111142919A
- Authority
- CN
- China
- Prior art keywords
- file
- upgrading
- software
- sub
- crc
- 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 27
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 7
- 238000004891 communication Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000012795 verification Methods 0.000 abstract description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010248 power generation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Abstract
本发明涉及一种适用于多组MCU单元程序同时升级的方法,其特征在于,每一组MCU单元程序对应生成一份分文件,对每个生成的分文件分别添加一组信息头并进行字节对齐,同时采用MD5加密对应文件,对每个MD5文件进行CRC校验,形成CRC校验文件并添加到分文件的结尾,实现每个分文件分别有一组信息头和CRC校验文件,合并若干份分文件整合成一份总文件,针对总文件添加总信息头,每个文件都添加到合并文件的尾部,对总文件进行CRC校验;本发明每个分文件有自己的信息头和校验,在烧录文件前可以判断文件的属性和完整性,可以有效的减少文件的无效传输,增加效率;由于只有一个文件,可以防止因多个文件错乱。
Description
技术领域
本发明涉及一种适用于多组MCU单元固件的同时升级方法,具体的说是一种合并多个软体并烧录多个MCU文件的升级方法。
背景技术
微控制单元(Microcontroller Unit;MCU),又称单片微型计算机(Single ChipMicrocomputer)或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
随着光伏行业的不断发展,对光伏发电系统的可靠稳定运行要求越来越高,MCU也同样应用到光伏领域的逆变器中,当发现逆变器中的MCU软体存在问题时,需要及时修改并更新到逆变器中每个MCU单元,通常都是多个MCU单元同时升级,以达到多个MCU单元内软体匹配,不会发生异常报错信息。
现有的常规方法是每一个MCU单元升级时都有一个单独的固件存放在介质中,每一次都需要指定具体的软体,这种方法很容易漏掉某一个MCU软体,或是造成多个不匹配的MCU软体被升级。这个大大增加了升级的难度,增加了人工成本,同时由于软体不匹配也会导致逆变器的停机,降低了系统的发电量,导致客户利益受损。
发明内容
为了解决多个MCU单元内软体升级异常的问题,本发明提供一种改良化的多组MCU单元固件同时升级的方法,提出了合并逆变器所有MUC软体只提供一个软体的升级方法。
本发明是通过以下技术方案实现的:
设计一种适用于多组MCU单元程序的升级方法,其特征在于:采用多组MCU单元程序的合并并同时升级的方法,每一组MCU单元程序中对应生成一份分文件,对每个生成的分文件分别添加一组信息头并进行字节对齐,同时采用MD5加密针对分文件形成对应的MD5文件,对每个MD5文件进行CRC校验形成CRC校验文件并添加到分文件的结尾,实现每个分文件分别有一组信息头和CRC校验文件,合并若干份分文件整合成一份总文件,针对总文件添加总信息头,每个分文件都添加到合并文件的尾部,对总文件进行CRC校验;在烧录文件前可以判断文件的属性和完整性,多个MCU文件烧录一致,合并多个软体并烧录多个MCU完成升级。
包含以下步骤:
步骤一,多组MCU单元程序的合并,每个需要合并的软件分文件添加信息头;每一组MCU单元程序中的分文件生成模块对应生成一份分文件,信息头添加模块对每个生成的分文件分别添加一组信息头并进行字节对齐;
步骤二,每个需要合并的软件分文件使用MD5加密模块针对分文件形成对应的MD5文件并补齐到指定长度;
步骤三,CRC校验模块对每个MD5文件再进行CRC校验形成CRC校验文件,把校验结果并添加到分文件的结尾,对齐尾部,实现每个分文件分别有一组信息头和CRC校验文件;
步骤四,为合并后的待升级软件添加文件信息头;合并若干份分文件整合成一份总文件,针对总文件添加总信息头,每个分文件都添加到合并文件的尾部,对总文件进行CRC校验;
步骤五,计算合并后软件的CRC校验文件,并添加到总文件尾部;
步骤六,MCU获得合并的软件总文件,计算总文件的CRC校验文件;
步骤七,获得合并的软件总文件信息头,解析各个软件,并分别存储不同MCU的文件,判断软件是否正确;
步骤八,判断是哪一个MCU的软件,并采用不同的升级方式。
DSP固件升级步骤如下:
步骤A.向DSP发送软件升级起始帧
步骤B.得到DSP回复的升级起始帧
步骤C.向DSP发送数据帧
步骤D.得到SDP回复的数据帧
步骤E.向DSP发送结束帧
步骤F.得到DSP的回复帧,DSP启动升级过程
所述信息头包含文件第i名称、文件大小及其他等效识别信息。
MCU固件升级步骤如下:
步骤A.编写MCU初始化和嵌入式Flash驱动程序;
步骤B.安装JLink下载器驱动程序包;
步骤C.拷贝JLink.exe可执行文件和JLinkARM.dll库文件到同一目录下;
步骤D.编写flash.txt命令脚本文件和flash.bat批处理文件;
步骤E.导入固件升级程序;
步骤F.运行flash.bat批处理文件,MCU通过JLink自动烧写固件程序到Flash。
在烧录过程中,每一帧都设有CRC校验,CRC校验错误则重发此帧。
BMS固件升级步骤如下:
步骤A.判断是否有BMS软件升级包,是否正确,向BMS发送软件升级包步骤B:每一帧都检查通信数据是否正确,如果异常则重发。
步骤C.BMS成功接收软件升级包,BMS启动升级过程
ARM固件升级步骤如下:
步骤A:判断是有否有ARM软件升级包
步骤B:获取接收到文件的最后n个字节(本固件对硬件及软件的要求信息),与本程序中的升级要求作对比,判断是否符合升级要求,及是否正确
步骤C:重启ARM,进行入Bootloader
步骤D:Bootloader判断是固件的CRC是否正确,如果则从外置Flash拷贝到内置Flash中,如拷贝异常导致重启,会再次拷贝。如果固件CRC不正确则正常启动ARM
本发明的有益效果在于:
1.每个分文件有自己的信息头和校验,在烧录文件前可以判断文件的属性和完整性,可以有效的减少文件的无效传输,增加机器的工作效率。
2.由于只有一个文件,可以防止因多个文件错乱,导致多个MCU文件烧录不一致的问题,可有效的减少了机器不工作的时间。
3.在烧录过程中,每一帧都有校验,校验错误后可以重发此帧,大大保证了传输帧的可靠性。
4.减少因多个软体升级后导致软体异常,逆变器不能发电的问题,确保所有的软体都可以一次性升级成功和匹配。
附图说明
图1为本发明的整体流程图。
具体实施方式
下面结合附图及实施例对本发明的技术方案作进行清楚、完整地描述,相信对本领域技术人员来说是清楚的。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
<实施例>
应用于逆变器时,包括以下步骤,如图1所示:
步骤A,开始,生成空包软件并写入相应信息
步骤B,判断是否存在新软件
步骤C,如存在新软件,添加软件信息头到新软件尾部
步骤D,当第i个软件补齐,并在结束使用CRC检验,使用MD5加密软件
步骤E,把加密后的软件追加到新软件尾部
步骤F,判断是否是最后一个软件
步骤G,如是最后一个软件,添加整个软件的CRC校验,检查文件CRC,并判断是否正确
步骤H,如文件CRC正确,检查总文件信息头,并判断是否正确
步骤I,如总文件信息头正确,检查DSP文件及信息头,并判断是否正确步骤J,如DSP文件及信息头正确,保存到外置Flash中
步骤K,检查BMS文件及信息头,并判断是否正确,如正确保存到外置Flash中
步骤L,检查ARM文件及信息头,并判断是否正确,如正确保存到外置Flash中
步骤M,ARM读取文件信息,向MCU发送文件信息,即发送特定格式的第i帧数据,如成功发送特定格式的第i+1帧数据,直至最后一帧数据;
步骤N,判断是否有BMS软件,如存在BMS软件,向BMS发送软件
步骤O,判断是否有ARM软件,如存在ARM软件,重启并用Bootloader检查ARM软件,判断ARM软件是否正确
步骤P,如ARM软件正确,从外部Flash拷贝应用软件到内置Flash中
步骤Q,判断拷贝是否正常,如正常工作,升级完毕。
在本发明的描述中,需要理解的是,尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (8)
1.一种适用于多组MCU单元程序同时升级的方法,其特征在于:采用多组MCU单元程序的合并并同时升级的方法,每一组MCU单元程序中对应生成一份分文件,对每个生成的分文件分别添加一组信息头并进行字节对齐,同时采用MD5加密,形成对应的MD5文件,对每个MD5文件进行CRC校验,形成CRC校验文件并添加到分文件的结尾,实现每个分文件分别有一组信息头和CRC校验文件,合并若干份分文件整合成一份总文件,针对总文件添加总信息头,每个分文件都添加到合并文件的尾部,对总文件进行CRC校验;在烧录文件前可以判断文件的属性和完整性,多个MCU文件烧录一致,合并多个软体并烧录多个MCU完成升级。
2.如权利要求1所述的一种适用于多组MCU单元程序同时升级的方法,其特征在于:包含以下步骤:
步骤一,多组MCU单元程序的合并,每个需要合并的软件分文件添加信息头;每一组MCU单元程序中的分文件生成模块对应生成一份分文件,信息头添加模块对每个生成的分文件分别添加一组信息头并进行字节对齐;
步骤二,每个需要合并的软件分文件使用MD5加密模块针对分文件形成对应的MD5文件并补齐到指定长度;
步骤三,CRC校验模块对每个MD5文件再进行CRC校验形成CRC校验文件,把校验结果并添加到分文件的结尾,对齐尾部,实现每个分文件分别有一组信息头和CRC校验文件;
步骤四,为合并后的待升级软件添加文件信息头;合并若干份分文件整合成一份总文件,针对总文件添加总信息头,每个分文件都添加到合并文件的尾部,对总文件进行CRC校验;
步骤五,计算合并后软件的CRC校验文件,并添加到总文件尾部;
步骤六,MCU获得合并的软件总文件,计算总文件的CRC校验文件;
步骤七,获得合并的软件总文件信息头,解析各个软件,并分别存储不同MCU的文件,判断软件是否正确;
步骤八,判断是哪一个MCU的软件,并采用不同的升级方式。
3.如权利要求1或2所述的一种适用于多组MCU单元程序的升级方法,其特征在于:DSP固件升级步骤如下:
步骤A.向DSP发送软件升级起始帧
步骤B.得到DSP回复的升级起始帧
步骤C.向DSP发送数据帧
步骤D.得到SDP回复的数据帧
步骤E.向DSP发送结束帧
步骤F.得到DSP的回复帧,DSP启动升级过程。
4.如权利要求1所述的一种适用于多组MCU单元程序的升级方法,其特征在于:所述信息头包含文件第i名称、文件大小及其他等效识别信息。
5.如权利要求1所述的一种适用于多组MCU单元程序的升级方法,其特征在于:MCU固件升级步骤如下:
步骤A.编写MCU初始化和嵌入式Flash驱动程序;
步骤B.安装JLink下载器驱动程序包;
步骤C.拷贝JLink.exe可执行文件和JLinkARM.dll库文件到同一目录下;
步骤D.编写flash.txt命令脚本文件和flash.bat批处理文件;
步骤E.导入固件升级程序;
步骤F.运行flash.bat批处理文件,MCU通过JLink自动烧写固件程序到Flash。
6.如权利要求1所述的一种适用于多组MCU单元程序的升级方法,其特征在于:在烧录过程中,每一帧都设有CRC校验,CRC校验错误则重发此帧。
7.如权利要求1所述的一种适用于多组MCU单元程序的升级方法,其特征在于:BMS固件升级步骤如下:
步骤A.判断是否有BMS软件升级包,是否正确,向BMS发送软件升级包
步骤B.每一帧都检查通信数据是否正确,如果异常则重发。
步骤C.BMS成功接收软件升级包,BMS启动升级过程。
8.如权利要求1所述的一种适用于多组MCU单元程序的升级方法,其特征在于:ARM固件升级步骤如下:
步骤A:判断是有否有ARM软件升级包
步骤B:获取接收到文件的最后n个字节(本固件对硬件及软件的要求信息),与本程序中的升级要求作对比,判断是否符合升级要求,及是否正确
步骤C:重启ARM,进行入Bootloader
步骤D:Bootloader判断是固件的CRC是否正确,如果则从外置Flash拷贝到内置Flash中,如拷贝异常导致重启,会再次拷贝。如果固件CRC不正确则正常启动ARM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911377717.7A CN111142919B (zh) | 2019-12-27 | 2019-12-27 | 一种适用于多组mcu单元程序同时升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911377717.7A CN111142919B (zh) | 2019-12-27 | 2019-12-27 | 一种适用于多组mcu单元程序同时升级的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111142919A true CN111142919A (zh) | 2020-05-12 |
CN111142919B CN111142919B (zh) | 2024-02-06 |
Family
ID=70521004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911377717.7A Active CN111142919B (zh) | 2019-12-27 | 2019-12-27 | 一种适用于多组mcu单元程序同时升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111142919B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363950A (zh) * | 2020-11-30 | 2021-02-12 | 杭州海康汽车软件有限公司 | 应用程序的调试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012024963A1 (zh) * | 2010-08-27 | 2012-03-01 | 华为终端有限公司 | 基于固件空中传输技术的固件处理方法、装置及系统 |
CN105302613A (zh) * | 2015-11-23 | 2016-02-03 | 武汉烽火网络有限责任公司 | 采用合并文件对eoc软件进行升级的方法及系统 |
CN106951253A (zh) * | 2017-03-21 | 2017-07-14 | 广州慧睿思通信息科技有限公司 | 一种嵌入式固件在线升级方法 |
CN107291497A (zh) * | 2017-06-08 | 2017-10-24 | Tcl通力电子(惠州)有限公司 | 多固件升级方法、系统及可读存储介质 |
-
2019
- 2019-12-27 CN CN201911377717.7A patent/CN111142919B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012024963A1 (zh) * | 2010-08-27 | 2012-03-01 | 华为终端有限公司 | 基于固件空中传输技术的固件处理方法、装置及系统 |
CN105302613A (zh) * | 2015-11-23 | 2016-02-03 | 武汉烽火网络有限责任公司 | 采用合并文件对eoc软件进行升级的方法及系统 |
CN106951253A (zh) * | 2017-03-21 | 2017-07-14 | 广州慧睿思通信息科技有限公司 | 一种嵌入式固件在线升级方法 |
CN107291497A (zh) * | 2017-06-08 | 2017-10-24 | Tcl通力电子(惠州)有限公司 | 多固件升级方法、系统及可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363950A (zh) * | 2020-11-30 | 2021-02-12 | 杭州海康汽车软件有限公司 | 应用程序的调试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111142919B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006508432A (ja) | アップグレード中に発生した障害や誤りからの自動復元を含む電子ファイルのアップグレード | |
CN104007996A (zh) | 一种分布式控制系统的可靠固件升级实现方法 | |
US20190079746A1 (en) | Software updating methods and systems | |
US20130185484A1 (en) | File programming method and associated device for nand flash | |
WO2008154862A1 (fr) | Procédé de gestion pour un système de terminal intelligent et terminal intelligent | |
CN109634628B (zh) | 在可信存储装置上生成校验和以加速认证 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN108170457A (zh) | 固件升级方法、装置及vr头戴式显示器 | |
US20230057089A1 (en) | Upgrade method, computer system, and remote upgrade device implementing efficient remote upgrade | |
CN113608772A (zh) | 一种应用程序升级方法及装置 | |
CN114116305A (zh) | 基于pfr的bios固件恢复方法、系统、终端及存储介质 | |
CN114780127A (zh) | 嵌入式设备固件更新方法、嵌入式设备、开发端设备 | |
US7571374B2 (en) | Method for transmitting and processing command and data | |
CN111489156A (zh) | 基于区块链的交易方法、电子装置及可读存储介质 | |
CN111142919B (zh) | 一种适用于多组mcu单元程序同时升级的方法 | |
CN107239358A (zh) | 安卓系统的启动方法、移动终端及具有存储功能的装置 | |
CN101739530B (zh) | Arm系统启动过程中的加密方法 | |
CN112286565B (zh) | 一种基于存储容器的嵌入式系统差分升级方法 | |
CN111783120A (zh) | 一种数据的交互方法、计算设备、bmc芯片及电子设备 | |
CN112579141A (zh) | 一种嵌入式系统的固件更新方法、装置、设备及存储介质 | |
CN107332589A (zh) | 一种基于蓝牙的固件升级装置 | |
CN116909659A (zh) | 区块链智能合约的执行方法、装置、设备及存储介质 | |
CN111352645A (zh) | 用于usb-pd充电器的固件更新方法和装置 | |
CN103577744A (zh) | 一种用于Android移动互联网设备的网络在线激活方式 | |
WO2023092994A1 (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240104 Address after: Room A702, National University Science and Technology Park Science and Technology Incubation Base, No. 755 Yanxingmen West Road, Yanta District, Xi'an City, Shaanxi Province, 710000 Applicant after: Xi'an Weiheng Energy Storage Technology Co.,Ltd. Address before: 212000 No. 888 Chunloubei Road, Sanmao Street, Yangzhong City, Zhenjiang City, Jiangsu Province Applicant before: JIANGSU WEIHENG INTELLIGENT TECHNOLOGY CO.,LTD. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |