首页 / 专利库 / 制动系统 / 电子稳定程序 / 一种电子模块及其软件无线升级方法

一种电子及其软件无线升级方法

阅读:513发布:2020-05-12

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

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区分别依次交替作为写入新程序的分区和当前运行分区,实现多次无线升级。

说明书全文

一种电子及其软件无线升级方法

技术领域

[0001] 本发明涉及一种电子模块及其软件无线升级方法。

背景技术

[0002] 在监测/控制类的电子模块开发完成后,后续可能会进行软件上的升级。但此时产品的电路板已经层层密封在外壳中,要想现场去逐个修改电子模块中的软件则需要耗费大量的人、物力和财力。因此有必要实现电子模块软件的无线升级。
[0003] 以光伏电站功率优化器为例:优化器安装在太阳能电池板上,用于监测太阳能电池板的电压电流等情况,通过无线模块(用于300M以内)将监测到的信息以无线通信的方式及时地发送给采集器,采集器通过网口传输协议将统计到的数据反馈给上位机。系统组成如图1所示。在光伏电站运行过程中,根据实际需要会调整监测过程参数,因此电子模块作为从机,将获取来自主机传送过来的待升级的从机程序。
[0004] 目前,已经有能够实现软件无线升级的方法,系统由一个主机(例如图1中所示采集器)和若干个从机(例如图1中所示优化器)组成。为了简便起见,这里仅以一个从机来说明其工作原理,如图2所示,主机与从机之间通过无线方式进行通信。从机芯片上的FLASH划分为三部分区域,分别为bootloader区、APP区(用户程序存放区)和DATA区,如下图3所示。具体如下:
[0005] bootloader区:bootloader代码放在FLASH空间的起始位置,这段程序主要负责接收由主机传送过来的待升级的从机程序,从机通过无线通信接口将待升级的程序接收后写入FLASH内部的APP区,然后设置DATA区的程序更新标志位,来跳转执行升级后的程序。
[0006] APP区:用户程序的存储和运行区,每次升级新的程序时,原来的程序就会被擦除,以便接收新的程序。
[0007] DATA区:接收到用户程序后就存储一个软件升级标志位,bootloader区会根据此标志位进行跳转执行新写入的程序。
[0008] 该升级方案存在以下缺点:
[0009] 1)不能够实现用户程序的多次升级。如果用户在现有的硬件基础上,还想进行二、三次或者多次升级,现有的无线升级技术将无法实现;
[0010] 2)不能保证系统的稳定性。如果当前正在运行的APP程序出现运行故障,无法正常运行时,系统将无法退回到上一个未更新前版本的程序,系统将一直处于故障状态。

发明内容

[0011] 本发明提出一种电子模块及其软件无线升级方法,旨在解决现有技术无法稳定、可靠适用于多次软件无线升级的问题。
[0012] 本发明考虑电子模块软件的在线多次更新功能,提出以下设计目标:
[0013] 产品开发人员将软件要实现的新功能开发完毕后生成新的程序,新程序通过采集器以无线方式下发到每一个电子模块,电子模块下载该新程序后自动运行新的程序,如果需要多次升级,就重复以上的步骤,电子模块依据自身的程序去实现多次升级。
[0014] 如果电子模块中正在执行的当前版本程序出现故障,系统将自动回退至上一个版本或用户指定版本的程序继续运行,同时向上位机发送该故障信息。
[0015] 为此,本发明给出以下解决方案:
[0016] 一种电子模块,包括处理器和FLASH,其中FLASH的存储空间分为Bootloader区、APP区和DATA区;
[0017] 所述APP区的存储空间划分为至少两个分区,分别用于单独存储和运行不同版本的用户程序;
[0018] 所述DATA区存储的信息包括程序升级标志和程序版本号,程序升级标志中设定与APP区各个分区一一对应的标志位,其中当前运行的分区对应的标志位唯一有效;
[0019] 所述Bootloader区,用于存放Bootloader程序,该Bootloader程序引导程序更新的过程包括:将接收的待更新程序存储在APP区当前空闲的一个分区,在DATA区写入程序升级标志后软件复位,再通过检测当前的程序升级标志选择加载APP区中相应分区的程序运行;若当前运行分区的程序遇到故障,则设定的某一空闲分区在DATA区中对应的标志位切换为唯一有效,Bootloader程序重新检测DATA区的程序升级标志及程序版本号,Bootloader运行指针跳转到有效标志位对应的分区,执行该分区存储的程序,同时向上位机发送此前分区程序故障的信号
[0020] 优选地,所述设定的某一空闲分区为存储前一版本程序的分区,相当于在出现故障时,选择前一版本程序运行。当然,上述APP区的分区若有三个以上,则用户还可以根据预先的设定选择另一稳定版本的程序运行。
[0021] 优选地,所述APP区的存储空间划分为两个区域,记为APP0区和APP1区;多次程序更新的过程中,APP0区与APP1区分别依次交替作为写入新程序的分区和当前运行分区。
[0022] 优选地,所述DATA区存储的信息还包括程序的大小,可供软件开发参考。
[0023] 基于上述电子模块实现软件无线升级的方法,包括以下步骤:
[0024] 1)下载基础版本:运行Bootloader程序,当检测到基础版本下载的命令后,接收基础版本的程序并将其写入APP1区域,并在DATA区写入对应于APP1区的标志位(即置对应的标志位为唯一有效)和程序版本号;然后软件复位,Bootloader程序读取DATA区的程序升级标志,将指针跳转到APP1区域,去执行基础版本的程序;
[0025] 2)第一次升级:当前运行的是基础版本的程序;当接收到软件升级的命令时,接收待升级程序并将其完整写入APP0区,并在DATA区写入对应于APP0区的标志位和待升级程序的版本号;然后软件复位,Bootloader程序读取DATA区的程序升级标志,此时APP0区对应的标志位有效,Bootloader运行指针跳转到APP0区,执行第一次升级后的程序;
[0026] 3)第二次升级:当前运行的是APP0程序;当接收到软件升级的命令时,接收待升级程序并将其完整写入APP1区,并在DATA区写入对应于APP1区的标志位和待升级程序的版本号;然后软件复位,Bootloader程序读取DATA区的程序升级标志,此时APP1区对应的标志位有效,Bootloader运行指针跳转到APP1区,执行第二次升级后的程序;
[0027] 4)参照步骤2)、步骤3),APP0区与APP1区分别依次交替作为写入新程序的分区和当前运行分区,实现多次无线升级。
[0028] 本发明具有以下优点:
[0029] 1、可简便、有效实现电子模块软件的多次无线升级。
[0030] 2、能够确保电子模块软件运行的稳定性和健壮性。
[0031] 3、还可便于维护人员知晓各个电子模块的软件运行版本情况,实现电子模块的可控管理。附图说明
[0032] 图1为光伏电站功率优化器涉及的系统组成示意图。
[0033] 图2为主机与从机之间的无线通信连接示意图。
[0034] 图3为现有软件升级方案的从机芯片内部FLASH的空间划分情况。
[0035] 图4为本发明电子模块中的芯片内部FLASH的空间划分情况。
[0036] 图5为Bootloader区域运行的流程图
[0037] 图6为第一次升级流程图。
[0038] 图7为第二次升级流程图。

具体实施方式

[0039] 以下结合附图和实施例对本发明作进一步详述:
[0040] 如图4所示,本发明中将电子模块芯片内部的FLASH划分为四部分:
[0041] 1)Bootloader区,用来存放Bootloader程序,即负责更新程序的拷贝和跳转到更新后的程序;其工作流程如图5所示,主要是:接收待更新的程序并把它存储在FLASH的特定位置,然后加载新的程序运行。芯片每次上电都会先读取软件升级标志,根据此软件升级标志来决定是运行最新的APP程序还是来运行上一个版本(或其他版本)的程序。
[0042] 2)APP0区,用户程序的存储和运行区;
[0043] 3)APP1区,用户程序的存储和运行区;
[0044] 这里,将原本的APP区划分为APP0和APP1两个区域,分别用于存放更新后的程序和更新前的程序。如果APP1正在运行当前程序,此时收到程序更新指令,APP1里面的程序会将待更新的程序接收存放到APP0区域,反之亦然。为描述方便,图中将正在运行程序的APP区称为运行区,将存放更新程序的APP区称为升级区。
[0045] 4)DATA区,用来存放程序升级标志位和其它一些关键信息,如程序的大小、版本号等信息。
[0046] 在下载基础版本之前,FLASH内部只有Bootloader程序。
[0047] 一、基于上述FLASH实现多次升级:
[0048] 1)下载基础版本:当前正在运行的是Bootloader程序,当检测到基础版本下载的命令后,就会接收基础版本的程序并将其写入APP1区域,并在DATA区写入基础版本的标志位、程序大小、程序版本号;然后Bootloader程序通过检测DATA区的软件升级标志位,将指针跳转到APP1区域,去执行基础版本。
[0049] 2)第一次升级:当前正在运行的是基础版本,当其接收到软件升级的命令后,就会接收待升级程序,并将待升级程序完整地写入APP0区域,并在DATA区写入第一次升级程序的标志位、程序大小、程序的版本号;然后通过Bootloader程序来读取DATA区的程序升级标志位,此时APP0区域的程序升级标志位有效,然后Bootloader将指针跳转到APP0区域,去执行升级后的程序。整个过程如图6所示。
[0050] 3)第二次升级:当前正在运行的是APP0程序,当检测到要升级的命令后,就会接收待升级程序并将其完整地写入APP1区域,并在DATA区写入待升级程序的标志位、程序大小、程序的版本号;然后通过Bootloader程序来读取DATA区的程序升级标志位,此时APP1区域的程序升级标志位有效,去执行APP1的程序。如图7所示。
[0051] 以此类推,就可以实现优化器的多次无线升级。
[0052] 二、软件升级后的容错运行
[0053] 遇故障时,运行上一个版本的程序并报错,具体的容错运行过程如下:
[0054] 当优化器进行过一次程序升级后,FLASH中现有Bootloader程序,APP0程序和APP1程序。举例如下情况:目前正在运行APP0区域的程序,该程序是第一次升级后的程序,APP1区域存放的是基础版本程序。
[0055] 当正在运行的APP0程序遇到故障无法正常运行时,Bootloader运行指针就会指回Bootloader区域,Bootloader程序开始重新去检测Data区域的标志位及版本号,此时APP1区域的标志位切换为有效;Bootloader将指针将跳转到APP1区域,去执行APP1的程序,同时向上位机发送APP0区域程序故障的信号。这样不仅保证了优化器系统的稳定性,还便于维护人员对优化器的可视化管理。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈