基于单片机内部flash的应用程序升级方法及其系统技术方案

技术编号:36081189 阅读:11 留言:0更新日期:2022-12-24 10:55
本发明专利技术公开了一种基于单片机内部flash的应用程序升级方法及其系统,flash存储区包括Bootloader子存储区、备份子存储区及应用程序子存储区,在升级模式下,对备份子存储区进行擦除和写入,升级文件全部成功写入备份子存储区内;用相同的校验方法分别对备份子存储区中数据及应用程序子存储区中数据进行校验,若校验值不一致,则对应用程序子存储区进行擦除,并将备份子存储区中的数据写入到应用程序子存储区中;程序跳转至应用程序子存储区运行应用程序。本发明专利技术能够在电池的管理系统升级过程中,发生新版本升级失败时,能及时回滚到旧版本程序,保证电池管理系统稳定运行,降低对用户使用电池的影响。户使用电池的影响。户使用电池的影响。

【技术实现步骤摘要】
基于单片机内部flash的应用程序升级方法及其系统


[0001]本专利技术涉及单片机研究
,尤其涉及一种基于单片机内部flash的应用程序升级方法及其系统。

技术介绍

[0002]一般地,电动摩托车的电池管理系统(batterymanagementsystem,简称BMS)在单片机中运行分为两个部分,即引导程序bootloader和应用程序APP。引导程序的作用主要是方便通过通讯等手段实现APP的升级更新。在对APP升级更新的过程中,一般是对应用程序直接进行擦除,并将接收到的升级文件写入该存储区,以实现应用程序的替换。然而,当擦除原应用程序和写入新应用程序的过程中,一旦发生错误,则会导致升级失败,但是对于已经擦除的内容又不好恢复,或者恢复困难,这就导致了升级一旦失败,则电池管理系统也无法继续运行原有应用程序,从而对电池管理带来消极影响。

技术实现思路

[0003]专利技术目的:为了解决电池管理系统中单片机升级应用程序过程中升级失败导致无法正常工作的问题,本专利技术提供一种基于单片机内部flash的应用程序升级方法。
[0004]本专利技术的另一目的是提供一种基于单片机内部flash的应用程序升级系统。
[0005]技术方案:一种基于单片机内部flash的应用程序升级方法,包括以下步骤:
[0006]步骤一、单片机上电,初始化配置,检测是否接收到升级指令,当接收到升级指令时,单片机进入升级模式,开始接收升级文件;
[0007]步骤二、对单片机内部flash存储区中的备份子存储区进行擦除和写入,若将接收到的升级文件全部成功写入备份子存储区内,则执行步骤三;若未接收完成或写入失败,则跳转执行步骤四;
[0008]步骤三、用相同的校验方法分别对备份子存储区中数据及应用程序子存储区中数据进行校验,将二者校验值进行比对,若二者校验值不一致,则对应用程序子存储区进行擦除,并将备份子存储区中的数据写入到应用程序子存储区中;
[0009]步骤四、程序跳转至应用程序子存储区运行应用程序。
[0010]进一步地,步骤一中,所述升级指令由上位机或车辆控制器发出。
[0011]进一步地,步骤一中,若超时未接收升级指令,则直接执行步骤四。
[0012]一种基于单片机内部flash的应用程序升级系统,单片机内部flash存储区包括Bootloader子存储区、备份子存储区及应用程序子存储区,所述Bootloader子存储区用于存储引导程序;所述备份子存储区用于存储升级文件;所述应用程序子存储区用于存储应用程序;
[0013]处理器在执行引导程序时可实现上述的单片机内部flash的应用程序升级方法。
[0014]一种电动车电池管理系统,包含上述的基于单片机内部flash的应用程序升级系统,所述应用程序为电池管理应用程序。
[0015]有益效果:本专利技术提供一种基于单片机内部flash的应用程序升级方法及其系统,相比较现有技术而言,将flash存储区划分为三个区域,相比现有技术多出一个升级文件备份区,用于备份升级文件,可以在保证升级文件完全无误地写入后,再去替换原应用程序,而不是直接对原应用程序进行擦除更改,一旦在写入过程中遇到错误,导致无法升级成功,可以及时回滚到旧版本应用程序,保证电池管理系统稳定运行,降低对用户使用电池的影响,解决了应用程序更新失败导致电池无法正常使用的问题。
附图说明
[0016]图1为基于单片机内部flash的应用程序升级方法的程序流程图;
[0017]图2为flash存储区的示意图。
具体实施方式
[0018]下面结合附图和具体实施例对本专利技术做进一步解释说明。
[0019]一种基于单片机内部flash的应用程序升级方法,如图1所示,包括以下步骤:
[0020]步骤一、单片机上电,初始化配置,检测是否接收到由上位机或车辆控制器发出的升级指令,当接收到升级指令时,单片机进入升级模式,开始接收升级文件;若超时未接收到升级指令,则直接跳转至步骤四运行应用程序模式。
[0021]步骤二、对单片机内部flash存储区中的备份子存储区进行擦除和写入,若将接收到的升级文件全部成功写入备份子存储区内,则执行步骤三;若未接收完成或写入失败,说明升级失败,则跳转执行步骤四。
[0022]步骤三、用相同的校验方法分别对备份子存储区中数据及应用程序子存储区中数据进行校验,将二者校验值进行比对,若二者校验值不一致,说明当前备份子存储区内的数据是新版的APP的程序,则对应用程序子存储区进行擦除,并将备份子存储区中的数据写入到应用程序子存储区中;若二者校验值一致,说明当前备份子存储区内是旧版APP的程序,可以重新写入,或者升级失败跳转至步骤四。
[0023]步骤四、退出升级模式,程序跳转至应用程序子存储区运行应用程序,进入用户模式。
[0024]一种基于单片机内部flash的应用程序升级系统,如图2所示,单片机内部flash存储区包括Bootloader子存储区、备份子存储区及应用程序子存储区,所述Bootloader子存储区用于存储引导程序;所述备份子存储区用于存储升级文件;所述应用程序子存储区用于存储应用程序;处理器在执行引导程序时可实现上述的单片机内部flash的应用程序升级方法。
[0025]该基于单片机内部flash的应用程序升级系统应用在电动车电池管理系统上,单片机采用S9KEAZ128系列MCU,应用程序为电动车电池管理应用程序,可为电池管理系统的APP顺利升级提供保障,对于升级失败也可继续执行原有APP,不会对电池管理带来消极影响,可以满足电动车日益多元化的客户需求。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于单片机内部flash的应用程序升级方法,其特征在于,包括以下步骤:步骤一、单片机上电,初始化配置,检测是否接收到升级指令,当接收到升级指令时,单片机进入升级模式,开始接收升级文件;步骤二、对单片机内部flash存储区中的备份子存储区进行擦除和写入,若将接收到的升级文件全部成功写入备份子存储区内,则执行步骤三;若未接收完成或写入失败,则跳转执行步骤四;步骤三、用相同的校验方法分别对备份子存储区中数据及应用程序子存储区中数据进行校验,将二者校验值进行比对,若二者校验值不一致,则对应用程序子存储区进行擦除,并将备份子存储区中的数据写入到应用程序子存储区中;步骤四、程序跳转至应用程序子存储区运行应用程序。2.根据权利要求1所述的基于单片机内部flash的应用程序升级方法,其特征在于,步骤...

【专利技术属性】
技术研发人员:方伟鹏冯昆郑君彬吴伟陈志军叶国华曾国强
申请(专利权)人:广东博力威科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1