CN110633091A - 一种电子模块及其软件无线升级方法 - Google Patents

一种电子模块及其软件无线升级方法 Download PDF

Info

Publication number
CN110633091A
CN110633091A CN201910802517.5A CN201910802517A CN110633091A CN 110633091 A CN110633091 A CN 110633091A CN 201910802517 A CN201910802517 A CN 201910802517A CN 110633091 A CN110633091 A CN 110633091A
Authority
CN
China
Prior art keywords
program
area
partition
upgrading
bootloader
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.)
Pending
Application number
CN201910802517.5A
Other languages
English (en)
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.)
Xi'an Chaoba Electrical Technology Co Ltd
Original Assignee
Xi'an Chaoba Electrical Technology Co Ltd
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 Xi'an Chaoba Electrical Technology Co Ltd filed Critical Xi'an Chaoba Electrical Technology Co Ltd
Priority to CN201910802517.5A priority Critical patent/CN110633091A/zh
Publication of CN110633091A publication Critical patent/CN110633091A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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

本发明提出一种电子模块及其软件无线升级方法,旨在解决现有技术无法稳定、可靠适用于多次软件无线升级的问题。该电子模块的FLASH存储空间中有至少两个APP分区,分别用于单独存储和运行不同版本的用户程序;Bootloader程序引导程序更新的过程包括:将接收的待更新程序存储在APP区当前空闲的一个分区,在DATA区写入程序升级标志后软件复位,再通过检测当前的程序升级标志选择加载APP区中相应分区的程序运行;若当前运行分区的程序遇到故障,则设定的某一空闲分区在DATA区中对应的标志位切换为唯一有效,执行该分区存储的程序,同时向上位机发送此前分区程序故障的信号。

Description

一种电子模块及其软件无线升级方法
技术领域
本发明涉及一种电子模块及其软件无线升级方法。
背景技术
在监测/控制类的电子模块开发完成后,后续可能会进行软件上的升级。但此时产品的电路板已经层层密封在外壳中,要想现场去逐个修改电子模块中的软件则需要耗费大量的人力、物力和财力。因此有必要实现电子模块软件的无线升级。
以光伏电站功率优化器为例:优化器安装在太阳能电池板上,用于监测太阳能电池板的电压、电流等情况,通过无线模块(用于300M以内)将监测到的信息以无线通信的方式及时地发送给采集器,采集器通过网口传输协议将统计到的数据反馈给上位机。系统组成如图1所示。在光伏电站运行过程中,根据实际需要会调整监测过程参数,因此电子模块作为从机,将获取来自主机传送过来的待升级的从机程序。
目前,已经有能够实现软件无线升级的方法,系统由一个主机(例如图1中所示采集器)和若干个从机(例如图1中所示优化器)组成。为了简便起见,这里仅以一个从机来说明其工作原理,如图2所示,主机与从机之间通过无线方式进行通信。从机芯片上的FLASH划分为三部分区域,分别为bootloader区、APP区(用户程序存放区)和DATA区,如下图3所示。具体如下:
bootloader区:bootloader代码放在FLASH空间的起始位置,这段程序主要负责接收由主机传送过来的待升级的从机程序,从机通过无线通信接口将待升级的程序接收后写入FLASH内部的APP区,然后设置DATA区的程序更新标志位,来跳转执行升级后的程序。
APP区:用户程序的存储和运行区,每次升级新的程序时,原来的程序就会被擦除,以便接收新的程序。
DATA区:接收到用户程序后就存储一个软件升级标志位,bootloader区会根据此标志位进行跳转执行新写入的程序。
该升级方案存在以下缺点:
1)不能够实现用户程序的多次升级。如果用户在现有的硬件基础上,还想进行二、三次或者多次升级,现有的无线升级技术将无法实现;
2)不能保证系统的稳定性。如果当前正在运行的APP程序出现运行故障,无法正常运行时,系统将无法退回到上一个未更新前版本的程序,系统将一直处于故障状态。
发明内容
本发明提出一种电子模块及其软件无线升级方法,旨在解决现有技术无法稳定、可靠适用于多次软件无线升级的问题。
本发明考虑电子模块软件的在线多次更新功能,提出以下设计目标:
产品开发人员将软件要实现的新功能开发完毕后生成新的程序,新程序通过采集器以无线方式下发到每一个电子模块,电子模块下载该新程序后自动运行新的程序,如果需要多次升级,就重复以上的步骤,电子模块依据自身的程序去实现多次升级。
如果电子模块中正在执行的当前版本程序出现故障,系统将自动回退至上一个版本或用户指定版本的程序继续运行,同时向上位机发送该故障信息。
为此,本发明给出以下解决方案:
一种电子模块,包括处理器和FLASH,其中FLASH的存储空间分为Bootloader区、APP区和DATA区;
所述APP区的存储空间划分为至少两个分区,分别用于单独存储和运行不同版本的用户程序;
所述DATA区存储的信息包括程序升级标志和程序版本号,程序升级标志中设定与APP区各个分区一一对应的标志位,其中当前运行的分区对应的标志位唯一有效;
所述Bootloader区,用于存放Bootloader程序,该Bootloader程序引导程序更新的过程包括:将接收的待更新程序存储在APP区当前空闲的一个分区,在DATA区写入程序升级标志后软件复位,再通过检测当前的程序升级标志选择加载APP区中相应分区的程序运行;若当前运行分区的程序遇到故障,则设定的某一空闲分区在DATA区中对应的标志位切换为唯一有效,Bootloader程序重新检测DATA区的程序升级标志及程序版本号,Bootloader运行指针跳转到有效标志位对应的分区,执行该分区存储的程序,同时向上位机发送此前分区程序故障的信号。
优选地,所述设定的某一空闲分区为存储前一版本程序的分区,相当于在出现故障时,选择前一版本程序运行。当然,上述APP区的分区若有三个以上,则用户还可以根据预先的设定选择另一稳定版本的程序运行。
优选地,所述APP区的存储空间划分为两个区域,记为APP0区和APP1区;多次程序更新的过程中,APP0区与APP1区分别依次交替作为写入新程序的分区和当前运行分区。
优选地,所述DATA区存储的信息还包括程序的大小,可供软件开发参考。
基于上述电子模块实现软件无线升级的方法,包括以下步骤:
1)下载基础版本:运行Bootloader程序,当检测到基础版本下载的命令后,接收基础版本的程序并将其写入APP1区域,并在DATA区写入对应于APP1区的标志位(即置对应的标志位为唯一有效)和程序版本号;然后软件复位,Bootloader程序读取DATA区的程序升级标志,将指针跳转到APP1区域,去执行基础版本的程序;
2)第一次升级:当前运行的是基础版本的程序;当接收到软件升级的命令时,接收待升级程序并将其完整写入APP0区,并在DATA区写入对应于APP0区的标志位和待升级程序的版本号;然后软件复位,Bootloader程序读取DATA区的程序升级标志,此时APP0区对应的标志位有效,Bootloader运行指针跳转到APP0区,执行第一次升级后的程序;
3)第二次升级:当前运行的是APP0程序;当接收到软件升级的命令时,接收待升级程序并将其完整写入APP1区,并在DATA区写入对应于APP1区的标志位和待升级程序的版本号;然后软件复位,Bootloader程序读取DATA区的程序升级标志,此时APP1区对应的标志位有效,Bootloader运行指针跳转到APP1区,执行第二次升级后的程序;
4)参照步骤2)、步骤3),APP0区与APP1区分别依次交替作为写入新程序的分区和当前运行分区,实现多次无线升级。
本发明具有以下优点:
1、可简便、有效实现电子模块软件的多次无线升级。
2、能够确保电子模块软件运行的稳定性和健壮性。
3、还可便于维护人员知晓各个电子模块的软件运行版本情况,实现电子模块的可控管理。
附图说明
图1为光伏电站功率优化器涉及的系统组成示意图。
图2为主机与从机之间的无线通信连接示意图。
图3为现有软件升级方案的从机芯片内部FLASH的空间划分情况。
图4为本发明电子模块中的芯片内部FLASH的空间划分情况。
图5为Bootloader区域运行的流程图。
图6为第一次升级流程图。
图7为第二次升级流程图。
具体实施方式
以下结合附图和实施例对本发明作进一步详述:
如图4所示,本发明中将电子模块芯片内部的FLASH划分为四部分:
1)Bootloader区,用来存放Bootloader程序,即负责更新程序的拷贝和跳转到更新后的程序;其工作流程如图5所示,主要是:接收待更新的程序并把它存储在FLASH的特定位置,然后加载新的程序运行。芯片每次上电都会先读取软件升级标志,根据此软件升级标志来决定是运行最新的APP程序还是来运行上一个版本(或其他版本)的程序。
2)APP0区,用户程序的存储和运行区;
3)APP1区,用户程序的存储和运行区;
这里,将原本的APP区划分为APP0和APP1两个区域,分别用于存放更新后的程序和更新前的程序。如果APP1正在运行当前程序,此时收到程序更新指令,APP1里面的程序会将待更新的程序接收存放到APP0区域,反之亦然。为描述方便,图中将正在运行程序的APP区称为运行区,将存放更新程序的APP区称为升级区。
4)DATA区,用来存放程序升级标志位和其它一些关键信息,如程序的大小、版本号等信息。
在下载基础版本之前,FLASH内部只有Bootloader程序。
一、基于上述FLASH实现多次升级:
1)下载基础版本:当前正在运行的是Bootloader程序,当检测到基础版本下载的命令后,就会接收基础版本的程序并将其写入APP1区域,并在DATA区写入基础版本的标志位、程序大小、程序版本号;然后Bootloader程序通过检测DATA区的软件升级标志位,将指针跳转到APP1区域,去执行基础版本。
2)第一次升级:当前正在运行的是基础版本,当其接收到软件升级的命令后,就会接收待升级程序,并将待升级程序完整地写入APP0区域,并在DATA区写入第一次升级程序的标志位、程序大小、程序的版本号;然后通过Bootloader程序来读取DATA区的程序升级标志位,此时APP0区域的程序升级标志位有效,然后Bootloader将指针跳转到APP0区域,去执行升级后的程序。整个过程如图6所示。
3)第二次升级:当前正在运行的是APP0程序,当检测到要升级的命令后,就会接收待升级程序并将其完整地写入APP1区域,并在DATA区写入待升级程序的标志位、程序大小、程序的版本号;然后通过Bootloader程序来读取DATA区的程序升级标志位,此时APP1区域的程序升级标志位有效,去执行APP1的程序。如图7所示。
以此类推,就可以实现优化器的多次无线升级。
二、软件升级后的容错运行
遇故障时,运行上一个版本的程序并报错,具体的容错运行过程如下:
当优化器进行过一次程序升级后,FLASH中现有Bootloader程序,APP0程序和APP1程序。举例如下情况:目前正在运行APP0区域的程序,该程序是第一次升级后的程序,APP1区域存放的是基础版本程序。
当正在运行的APP0程序遇到故障无法正常运行时,Bootloader运行指针就会指回Bootloader区域,Bootloader程序开始重新去检测Data区域的标志位及版本号,此时APP1区域的标志位切换为有效;Bootloader将指针将跳转到APP1区域,去执行APP1的程序,同时向上位机发送APP0区域程序故障的信号。这样不仅保证了优化器系统的稳定性,还便于维护人员对优化器的可视化管理。

Claims (5)

1.一种电子模块,包括处理器和FLASH,其中FLASH的存储空间分为Bootloader区、APP区和DATA区,其特征在于:
所述APP区的存储空间划分为至少两个分区,分别用于单独存储和运行不同版本的用户程序;
所述DATA区存储的信息包括程序升级标志和程序版本号,程序升级标志中设定与APP区各个分区一一对应的标志位,其中当前运行的分区对应的标志位唯一有效;
所述Bootloader区,用于存放Bootloader程序,该Bootloader程序引导程序更新的过程包括:将接收的待更新程序存储在APP区当前空闲的一个分区,在DATA区写入程序升级标志后软件复位,再通过检测当前的程序升级标志选择加载APP区中相应分区的程序运行;若当前运行分区的程序遇到故障,则设定的某一空闲分区在DATA区中对应的标志位切换为唯一有效,Bootloader程序重新检测DATA区的程序升级标志及程序版本号,Bootloader运行指针跳转到有效标志位对应的分区,执行该分区存储的程序,同时向上位机发送此前分区程序故障的信号。
2.根据权利要求1所述的电子模块,其特征在于:所述设定的某一空闲分区为存储前一版本程序的分区。
3.根据权利要求1所述的电子模块,其特征在于:所述APP区的存储空间划分为两个区域,记为APP0区和APP1区;多次程序更新的过程中,APP0区与APP1区分别依次交替作为写入新程序的分区和当前运行分区。
4.根据权利要求1所述的电子模块,其特征在于:所述DATA区存储的信息还包括程序的大小。
5.基于权利要求3所述电子模块实现软件无线升级的方法,包括以下步骤:
1)下载基础版本:运行Bootloader程序,当检测到基础版本下载的命令后,接收基础版本的程序并将其写入APP1区域,并在DATA区写入对应于APP1区的标志位和程序版本号;然后软件复位,Bootloader程序读取DATA区的程序升级标志,将指针跳转到APP1区域,去执行基础版本的程序;
2)第一次升级:当前运行的是基础版本的程序;当接收到软件升级的命令时,接收待升级程序并将其完整写入APP0区,并在DATA区写入对应于APP0区的标志位和待升级程序的版本号;然后软件复位,Bootloader程序读取DATA区的程序升级标志,此时APP0区对应的标志位有效,Bootloader运行指针跳转到APP0区,执行第一次升级后的程序;
3)第二次升级:当前运行的是APP0程序;当接收到软件升级的命令时,接收待升级程序并将其完整写入APP1区,并在DATA区写入对应于APP1区的标志位和待升级程序的版本号;然后软件复位,Bootloader程序读取DATA区的程序升级标志,此时APP1区对应的标志位有效,Bootloader运行指针跳转到APP1区,执行第二次升级后的程序;
4)参照步骤2)、步骤3),APP0区与APP1区分别依次交替作为写入新程序的分区和当前运行分区,实现多次无线升级。
CN201910802517.5A 2019-08-28 2019-08-28 一种电子模块及其软件无线升级方法 Pending CN110633091A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910802517.5A CN110633091A (zh) 2019-08-28 2019-08-28 一种电子模块及其软件无线升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910802517.5A CN110633091A (zh) 2019-08-28 2019-08-28 一种电子模块及其软件无线升级方法

Publications (1)

Publication Number Publication Date
CN110633091A true CN110633091A (zh) 2019-12-31

Family

ID=68969371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910802517.5A Pending CN110633091A (zh) 2019-08-28 2019-08-28 一种电子模块及其软件无线升级方法

Country Status (1)

Country Link
CN (1) CN110633091A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240723A (zh) * 2020-03-13 2020-06-05 乐普医学电子仪器股份有限公司 一种嵌入式程序升级的方法
CN111780342A (zh) * 2020-06-08 2020-10-16 海信(山东)空调有限公司 一种空调器
CN112230967A (zh) * 2020-11-19 2021-01-15 成都新易盛通信技术股份有限公司 一种基于传统分区的光模块固件可回退在线升级方法
CN112346770A (zh) * 2020-11-10 2021-02-09 天津津航计算技术研究所 一种嵌入式程序在线更新方法
CN113360175A (zh) * 2021-08-11 2021-09-07 新石器慧通(北京)科技有限公司 车辆控制器的应用更新方法及车辆控制器
CN113434166A (zh) * 2021-06-11 2021-09-24 重庆长安汽车股份有限公司 一种含固定刷写区且可回滚的双备份方法
CN113741944A (zh) * 2021-08-16 2021-12-03 南京苏美达智能技术有限公司 一种具备升级功能的机器程序系统及升级方法与应用
CN113824620A (zh) * 2021-08-20 2021-12-21 中国第一汽车股份有限公司 一种分区切换方法、装置、车辆和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240154A1 (en) * 2005-09-29 2007-10-11 Eric Gerzymisch System and method for software integration and factory deployment
CN101557583A (zh) * 2009-03-19 2009-10-14 珠海银邮光电技术发展股份有限公司 直放站设备嵌入式软件的远程升级与版本切换方法
WO2009156615A1 (fr) * 2008-06-02 2009-12-30 Awox Procede et dispositif de mise a jour d'application informatique
CN102314369A (zh) * 2011-10-09 2012-01-11 杭州先锋电子技术股份有限公司 一种远程在线监控系统中设备自升级方法
CN106293857A (zh) * 2016-08-31 2017-01-04 成都国蓉科技有限公司 一种无线方式进行软件升级的方法
CN110096294A (zh) * 2019-05-07 2019-08-06 柏科智能(厦门)科技有限公司 一种可任意断点无线升级mcu应用程序的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240154A1 (en) * 2005-09-29 2007-10-11 Eric Gerzymisch System and method for software integration and factory deployment
WO2009156615A1 (fr) * 2008-06-02 2009-12-30 Awox Procede et dispositif de mise a jour d'application informatique
CN101557583A (zh) * 2009-03-19 2009-10-14 珠海银邮光电技术发展股份有限公司 直放站设备嵌入式软件的远程升级与版本切换方法
CN102314369A (zh) * 2011-10-09 2012-01-11 杭州先锋电子技术股份有限公司 一种远程在线监控系统中设备自升级方法
CN106293857A (zh) * 2016-08-31 2017-01-04 成都国蓉科技有限公司 一种无线方式进行软件升级的方法
CN110096294A (zh) * 2019-05-07 2019-08-06 柏科智能(厦门)科技有限公司 一种可任意断点无线升级mcu应用程序的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JOHN, K ET AL.: "An out-of-core sparse Cholesky solver", 《ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE》 *
周江平 等: "嵌入式小基站版本升级与回退机制的设计与实现", 《移动通信》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240723A (zh) * 2020-03-13 2020-06-05 乐普医学电子仪器股份有限公司 一种嵌入式程序升级的方法
CN111780342A (zh) * 2020-06-08 2020-10-16 海信(山东)空调有限公司 一种空调器
CN112346770A (zh) * 2020-11-10 2021-02-09 天津津航计算技术研究所 一种嵌入式程序在线更新方法
CN112230967A (zh) * 2020-11-19 2021-01-15 成都新易盛通信技术股份有限公司 一种基于传统分区的光模块固件可回退在线升级方法
CN112230967B (zh) * 2020-11-19 2024-03-29 成都新易盛通信技术股份有限公司 一种基于传统分区的光模块固件可回退在线升级方法
CN113434166A (zh) * 2021-06-11 2021-09-24 重庆长安汽车股份有限公司 一种含固定刷写区且可回滚的双备份方法
CN113434166B (zh) * 2021-06-11 2022-10-11 重庆长安汽车股份有限公司 一种含固定刷写区且可回滚的双备份方法
CN113360175A (zh) * 2021-08-11 2021-09-07 新石器慧通(北京)科技有限公司 车辆控制器的应用更新方法及车辆控制器
CN113741944A (zh) * 2021-08-16 2021-12-03 南京苏美达智能技术有限公司 一种具备升级功能的机器程序系统及升级方法与应用
CN113824620A (zh) * 2021-08-20 2021-12-21 中国第一汽车股份有限公司 一种分区切换方法、装置、车辆和存储介质

Similar Documents

Publication Publication Date Title
CN110633091A (zh) 一种电子模块及其软件无线升级方法
US9110843B2 (en) Rack and method thereof for simultaneously updating basic input output systems
CN109933348B (zh) 一种电子控制单元中Bootloader的更新方法和装置
WO2021115477A1 (zh) 程序升级方法、装置、电子设备及存储介质
CN102622298B (zh) 一种软件测试系统及方法
US7991988B2 (en) Communication device and firmware update method thereof
US6904457B2 (en) Automatic firmware update of processor nodes
CN101815988A (zh) 固件映像更新和管理
CN105930236A (zh) 一种基于BMS Bootloader升级的应用程序版本回退方法
CN103092647A (zh) 嵌入式系统的在线升级方法
CN103106083B (zh) 一种固件的加载方法及装置
CN103136015A (zh) 控制Uboot进入下载操作模式的方法及系统
WO2012071852A1 (zh) 引导程序的升级方法和装置
CN104360952A (zh) 一种软件测试系统及方法
CN111782246A (zh) 基于总线的多节点设备嵌入式程序升级方法
CN108920171A (zh) 固件更新方法及装置、电子设备
EP4237937A1 (en) Pushing a firmware update patch to a computing device via an out-of-band path
CN112527365B (zh) 应用程序更新方法、非易失存储器、存储介质及家用电器
CN111736882B (zh) 一种dsp程序的远程升级方法
CN116028084A (zh) 一种基于OpenStack云平台跨版本热升级的方法、系统及终端
CN110209531A (zh) 一种基于rs422接口的远程arm在线升级系统及方法
CN115878145B (zh) 电子设备及其系统升级方法、计算机可读存储介质
CN116594661B (zh) 一种编译阶段确保固件与工程匹配的单片机升级方法
CN116028100B (zh) 软件版本升级方法和电子设备
CN115827023A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20191231