一种量测开关嵌入式软件的在线升级方法技术

技术编号:37818161 阅读:13 留言:0更新日期:2023-06-09 09:49
本发明专利技术属于电力设备技术领域,具体是一种量测开关嵌入式软件的在线升级方法,将单片机FLASH存储区域划分为:引导区、主程序A区、主程序B区、备份索引A区、备份索引B区和增强备份区,当接收到远程主站发出的软件升级命令时,将新的待升级软件固件写入增强备份区中,在写入过程中判断是否写入成功;升级覆盖时按照备份索引A区和备份索引B区的扇区索引编号,将对应增强备份区的内容覆盖到主程序A区和主程序B区,覆盖过程中主程序A区和主程序B区写入的内容不可跳跃,按照扇区顺序写入,如果写入出错,则多次重试。本发明专利技术实现了备份区写入的高可靠性、主程序覆盖的高可靠性、主程序引导的高可靠性。高可靠性。高可靠性。

【技术实现步骤摘要】
一种量测开关嵌入式软件的在线升级方法


[0001]本专利技术属于电力设备
,更具体地说,是一种量测开关嵌入式软件的在线升级方法,该方法可以实现量测开关嵌入式软件高可靠性地升级。

技术介绍

[0002]在电力领域,量测开关是一种采用单片机的智能化的用电开关,它具有嵌入式软件系统,该设备不仅具有电压、电流、电能、温度等常规监测功能,还拥有高精度计量、窃电分析、拓扑识别、远程抄表、抄读物联网锁等高级功能,可为用户提供精益化的用电数据管理和运维管理。
[0003]为了不断完善量测开关缺陷和功能升级,一般要求可以通过远程的方式对嵌入式软件进行在线升级,以提高软件的健壮性。量测开关是一种用量大且性价比较高的低压开关,随着国产化芯片的发展,现在量测开关主控芯片都大量采用国产化单片机。如图1所示,为量测开关的单片机FLASH存储区域划分示意图。通常情况下,嵌入式软件在线升级的过程如下:先把新的软件固件以FLASH扇区为单位按照先后顺序复制到单片机的FLASH升级备份区中,然后由引导主程序将备份区的内容覆盖到主程序区,这样就完成了程序更新。实际应用中发现,由于存在一定概率的FLASH扇区内容写入失败的问题,一旦嵌入式软件在线升级写入失败,该问题会造成主程序运行错误,造成严重的用电安全隐患。

技术实现思路

[0004]为了解决量测开关的嵌入式软件在线升级存在的安全隐患,本专利技术公开了一种高可靠性的软件在线升级方法。该方法的高可靠性主要体现在三个方面:备份区写入的高可靠性、主程序覆盖的高可靠性、主程序引导的高可靠性。本专利技术的具体技术方案如下:
[0005]一种量测开关嵌入式软件的在线升级方法,包括以下步骤:
[0006]将单片机FLASH存储区域划分为:引导区、主程序A区、主程序B区、备份索引A区、备份索引B区和增强备份区,备份索引A区和备份索引B区的内容是互为备份的内容。
[0007]当主程序A区和主程序B区的程序运行时,实时接收来自远程主站的控制命令,当接收到远程主站发出的软件升级命令时,将新的待升级软件固件写入增强备份区中,在写入过程中判断是否写入成功,如果发生扇区写入错误,则跳过该扇区从下一个扇区开始写;如果写入成功,则将写入成功的相对扇区号依次写入备份索引A区和备份索引B区,写入完成后比较备份索引A区和备份索引B区的内容,如果备份索引A区和备份索引B区的内容不一致,则中止升级,并向远程主站报告错误,并且返回主程序;如果备份索引A区和备份索引B区的内容一致,则重启单片机。
[0008]单片机重启后进入引导主程序,引导主程序首先检测是否需要执行程序覆盖,如果需要升级覆盖,则按照备份索引A区和备份索引B区的扇区索引编号,将对应增强备份区的内容覆盖到主程序A区和主程序B区,覆盖过程中主程序A区和主程序B区写入的内容不可跳跃,按照扇区顺序写入,如果写入出错,则多次重试;如果引导主程序检测到不需要升级
覆盖,则判断主程序A区的软件固件是否异常,如果无异常则加载主程序A区的软件固件,如果有异常则继续判断主程序B区的软件固件是否异常,如果无异常则加载主程序B区的软件固件,若主程序B区的软件固件仍有异常则发出灯光、蜂鸣告警信息。
[0009]优选的,升级覆盖时,首先将UPDATE_FLAG=0写入EEPROM中,然后判断备份索引A区和备份索引B区的内容是否一致,按照索引顺序计算增强备份区的CRC32校验码,并与EEPROM中保存的CRC32校验码比对,如果以上过程任一项存在异常,则中止升级覆盖,重启单片机。
[0010]优选的,新的软件固件在增强备份区的存储顺序通过索引来进行扇区的偏移存储。
[0011]优选的,在增强备份区的内容正确写入后,将新的软件固件计算得到CRC32校验码并保存在EEPROM中,同时将UPDATE_FLAG=1的标记写入EEPROM中,通知引导主程序需要升级覆盖,然后重启单片机进入引导主程序。
[0012]本专利技术的有益效果:
[0013]量测开关在我国用电领域的应用非常广泛,有效保障了我国电网运行的稳定。本专利技术设计的高可靠性软件在线升级方法,可以提高量测开关嵌入式软件在线升级的可靠性,大大降低电网安全事故,同时减轻了运维人员的劳动强度,提高了产品质量。
附图说明
[0014]图1为现有的量测开关的单片机FLASH存储区域划分示意图;
[0015]图2为本专利技术实施例的量测开关的单片机FLASH存储区域划分示意图;
[0016]图3为本专利技术实施例的远程主站升级备份过程流程图;
[0017]图4为本专利技术实施例的待升级软件固件升级覆盖和引导加载流程图;
[0018]图5为本专利技术实施例的索引区和写入偏移扇区的对应关系图。
具体实施方式
[0019]下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。
[0020]如图2所示,为本专利技术实施例的量测开关的单片机FLASH存储区域划分示意图。本专利技术实施例中,对单片机FLASH存储区域进行了重新划分,包括:引导区、主程序A区、主程序B区、备份索引A区、备份索引B区和增强备份区。
[0021]备份区写入高可靠性的设计原理:此处设计了增强备份区,其原理是:增强备份区具有两种设计,第一是区域的容量比常规设计要大一些,第二是此块区域存储的数据可以不连续。之所以出现不连续的情况,是因为FLASH扇区存在写入失败的可能性,当扇区写入失败时,就应该跳过此扇区,将数据写入下一扇区,这样就不会因某一块扇区无法写入造成在线升级失败。另外,由于数据是不连续的,需要索引号进行标定,标定哪些扇区的数据是有效的和连续的,因此设计了备份索引A区和备份索引B区,这两个索引区的索引数据互为备份以提高可靠性。
[0022]如图3所示,为本专利技术实施例的远程主站升级备份过程流程图。当主程序区的程序运行时,实时接收来自远程主站的控制命令,当接收到远程主站发出的软件升级命令时,则
将新的待升级软件固件写入增强备份区中,在写入过程中判断是否写入成功,如果发生扇区写入错误,则跳过该扇区从下一个扇区开始写;如果写入成功,则将写入成功的相对扇区号依次写入备份索引A区和备份索引B区。备份索引A区和备份索引B区的内容是互为备份的内容,是完全相同的,在增强备份区的内容全部写入完成后,会比较备份索引A区和备份索引B区的内容,如果备份索引A区和备份索引B区的内容不一致,说明索引区写入异常,则中止升级,并向远程主站报告错误,并且返回主程序;如果备份索引A区和备份索引B区的内容一致,则说明写入过程无异常,重启单片机。
[0023]主程序覆盖的高可靠性设计原理:由于主程序运行时的数据必须是连续的,因此设计了主程序A区和主程序B区,这两块区域都存储着程序固件,因此这两段区域可以实现互为备份以实现高可靠性覆盖。另外,在主程序覆盖时,由于FLASH扇区存在写入失败的可能性,当某一扇区写入失败时,会尝试重新擦除和不断重写来实现高本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种量测开关嵌入式软件的在线升级方法,其特征在于,包括以下步骤:将单片机FLASH存储区域划分为:引导区、主程序A区、主程序B区、备份索引A区、备份索引B区和增强备份区,备份索引A区和备份索引B区的内容是互为备份的内容;当主程序A区和主程序B区的程序运行时,实时接收来自远程主站的控制命令,当接收到远程主站发出的软件升级命令时,将新的待升级软件固件写入增强备份区中,在写入过程中判断是否写入成功,如果发生扇区写入错误,则跳过该扇区从下一个扇区开始写;如果写入成功,则将写入成功的相对扇区号依次写入备份索引A区和备份索引B区,写入完成后比较备份索引A区和备份索引B区的内容,如果备份索引A区和备份索引B区的内容不一致,则中止升级,并向远程主站报告错误,并且返回主程序;如果备份索引A区和备份索引B区的内容一致,则重启单片机;单片机重启后进入引导主程序,引导主程序首先检测是否需要执行程序覆盖,如果需要升级覆盖,则按照备份索引A区和备份索引B区的扇区索引编号,将对应增强备份区的内容覆盖到主程序A区和主程序B区,覆盖过程中主程序A区和主程序B区写入的内容不可跳跃,按照扇区顺序写入,如果写入出错,则多次重试;如果引导...

【专利技术属性】
技术研发人员:曹文华张伟周国超葛鑫孟令鹏周桐羽
申请(专利权)人:山东电工电气集团新能科技有限公司
类型:发明
国别省市:

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

1