一种智能电表实现增量式升级的方法及系统技术方案

技术编号:36689668 阅读:13 留言:0更新日期:2023-02-27 19:55
本发明专利技术公开了一种智能电表实现增量式升级的方法及系统,其中方法包括以下步骤:将智能电表的整个软件固件分成多个独立的区域,升级时仅根据修改内容选择需要升级的区域制作升级文件;上位机端采用差分算法生成旧版本和新版本固件的差异信息,将差异信息压缩成一个补丁文件,并在补丁文件头部添加头部信息与校验和,生成增量升级文件;智能电表端接收增量升级文件后校验增量升级文件的头部信息与校验和,解压缩还原补丁文件,然后利用合成算法、补丁文件中的差异信息和智能电表端旧版本文件还原出新版本文件;最后根据分区标识,用新版本文件替换对应分区的旧版本文件,完成升级。本发明专利技术基于分区进行增量式升级,可减少升级包大小和传输数据量。级包大小和传输数据量。级包大小和传输数据量。

【技术实现步骤摘要】
一种智能电表实现增量式升级的方法及系统


[0001]本专利技术涉及智能电表
,尤其涉及一种智能电表实现增量式升级的方法及系统。

技术介绍

[0002]随着当前智能电表在全球的快速部署,客户新增、变更需求或者电表出现软件问题是在所难免的,但由于电表部署分散,在线升级就成了当前唯一的选择。由于电表的智能化程度越来越高,软件功能越来越丰富,电表固件程序也越来越大,当前采用的全量升级方式,需要将整个升级包的数据全部传输给电表,此种方式有以下问题:
[0003]1.升级包数据量大,导致升级时间长,升级效率低;
[0004]2.远程通过网络升级,导致流量消耗大;
[0005]3.内存资源消耗大,需要开辟不小于升级包大小的空间。

技术实现思路

[0006]由于全量升级存在以上不足,加之连续两个软件版本的变化往往不大,生成的固件程序差异也不大,因此本专利技术提出一种智能电表实现增量式升级的方法及系统,基于软件固件分区进行增量式升级。
[0007]本专利技术采用的技术方案如下:
[0008]一种智能电表实现增量式升级的方法,包括以下步骤:
[0009]S1.将智能电表的整个软件固件分成多个独立的区域,升级时仅根据修改内容选择需要升级的区域制作升级文件;
[0010]S2.上位机端采用bsdiff差分算法生成旧版本和新版本固件的差异信息,将差异信息压缩成一个补丁文件,并在补丁文件头部添加电表项目标识、分区标识以及旧版本和新版本固件的版本号,最后添加整个升级文件的校验和,生成最终需要传递给智能电表端的增量升级文件;
[0011]S3.智能电表端接收增量升级文件至其外部存储器中,待增量升级文件接收完成后,先校验增量升级文件的校验和,校验和正确后取出增量升级文件头部的电表项目标识、分区标识、旧版本和新版本固件的版本号,若不能匹配当前智能电表端存储的信息,则认为该增量升级文件不能被识别,升级失败;
[0012]S4.增量升级文件头部信息校验完成后,先解压缩还原补丁文件,然后利用与bsdiff差分算法对称的bspatch算法、补丁文件中的差异信息和智能电表端旧版本文件还原出新版本文件;最后根据分区标识,用新版本文件替换对应分区的旧版本文件,完成升级。
[0013]进一步地,旧版本和新版本固件的差异信息包括diff string,extra string,control block。
[0014]进一步地,解压缩还原补丁文件时,按照512字节分包将增量升级文件从外部存储
器提取到智能电表端的单片机RAM中进行解压缩。
[0015]进一步地,将差异信息压缩成补丁文件以及解压缩还原补丁文件的方法包括uzlib算法。
[0016]进一步地,进行校验的方法包括CRC32即循环冗余校验。
[0017]一种智能电表实现增量式升级的系统,包括:
[0018]上位机,用于根据bsdiff差分算法生成旧版本和新版本固件的差异信息,将差异信息压缩成一个补丁文件,并在补丁文件头部添加电表项目标识、分区标识以及旧版本和新版本固件的版本号,最后添加整个升级文件的校验和,生成最终需要传递给智能电表的增量升级文件;其中,智能电表的整个软件固件分为多个独立的区域,升级时上位机仅根据修改内容选择需要升级的区域制作升级文件;
[0019]智能电表,用于接收上位机发送的增量升级文件至其外部存储器中,待增量升级文件接收完成后,先校验增量升级文件的校验和,校验和正确后取出增量升级文件头部的电表项目标识、分区标识、旧版本和新版本固件的版本号,若不能匹配当前智能电表存储的信息,则认为该增量升级文件不能被识别,升级失败;增量升级文件头部信息校验完成后,先解压缩还原补丁文件,然后利用与bsdiff差分算法对称的bspatch算法、补丁文件中的差异信息和智能电表旧版本文件还原出新版本文件;最后根据分区标识,用新版本文件替换对应分区的旧版本文件,完成升级。
[0020]进一步地,旧版本和新版本固件的差异信息包括diff string,extra string,control block。
[0021]进一步地,解压缩还原补丁文件时,按照512字节分包将增量升级文件从外部存储器提取到智能电表的单片机RAM中进行解压缩。
[0022]进一步地,将差异信息压缩成补丁文件以及解压缩还原补丁文件的方法包括uzlib算法。
[0023]进一步地,进行校验的方法包括CRC32即循环冗余校验。
[0024]本专利技术的有益效果在于:
[0025]1.分区能降低升级范围,相比不分区能有效减少升级包大小。
[0026]2.增量升级文件能够再次在分区的基础上降低升级包大小,降低了传输的数据量。
[0027]3.降低升级包大小可在远程升级中减少流量的消耗。
[0028]4.传输的数据量减少后能够降低升级中断概率,能有效提升升级效率。
[0029]5.由于电表端采用的是资源很低的单片机处理器,因此本专利技术调整了uzlib一次性解压缩的数据大小,调整为按照512字节分包将升级文件从外部存储器dataflash提取到单片机RAM中进行解压缩,虽然这种方式降低了解压效率,但是能有效减少算法对单片机的资源消耗。
附图说明
[0030]图1是本专利技术的智能电表实现增量式升级方法及系统示意图。
具体实施方式
[0031]为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现说明本专利技术的具体实施方式。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术,即所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0032]实施例1
[0033]本实施例提供了一种智能电表实现增量式升级的方法,如图1所示,包括以下步骤:
[0034]S1.将智能电表的整个软件固件分成多个独立的区域,例如boot,app1,app2,

等多个区域,升级时仅根据修改内容选择需要升级的区域制作升级文件,能极大地减少升级包大小。
[0035]S2.上位机端采用bsdiff差分算法生成旧版本和新版本固件的差异信息,将差异信息压缩成一个补丁文件(patch包),并在补丁文件头部添加电表项目标识、分区标识以及旧版本和新版本固件的版本号,用于智能电表端判断该升级文件能否被接收;最后添加整个升级文件的校验和,生成最终需要传递给智能电表端的增量升级文件。
[0036]S3.智能电表端接收增量升级文件至其外部存储器dataflash中,待增量升级文件接收完成后,先校验增量升级文件的校验和,校验和正确后取出增量升级文件头部的电表项目标识、分区标识、旧版本和新版本固件的版本号,确保信息正确,能匹配当前智能电表端存储的信息;若不能匹配当前智能电表端存储的信息,则认为该增量升级文件不能被本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能电表实现增量式升级的方法,其特征在于,包括以下步骤:S1.将智能电表的整个软件固件分成多个独立的区域,升级时仅根据修改内容选择需要升级的区域制作升级文件;S2.上位机端采用bsdiff差分算法生成旧版本和新版本固件的差异信息,将差异信息压缩成一个补丁文件,并在补丁文件头部添加电表项目标识、分区标识以及旧版本和新版本固件的版本号,最后添加整个升级文件的校验和,生成最终需要传递给智能电表端的增量升级文件;S3.智能电表端接收增量升级文件至其外部存储器中,待增量升级文件接收完成后,先校验增量升级文件的校验和,校验和正确后取出增量升级文件头部的电表项目标识、分区标识、旧版本和新版本固件的版本号,若不能匹配当前智能电表端存储的信息,则认为该增量升级文件不能被识别,升级失败;S4.增量升级文件头部信息校验完成后,先解压缩还原补丁文件,然后利用与bsdiff差分算法对称的bspatch算法、补丁文件中的差异信息和智能电表端旧版本文件还原出新版本文件;最后根据分区标识,用新版本文件替换对应分区的旧版本文件,完成升级。2.根据权利要求1所述的智能电表实现增量式升级的方法,其特征在于,旧版本和新版本固件的差异信息包括diff string,extra string,controlblock。3.根据权利要求1所述的智能电表实现增量式升级的方法,其特征在于,解压缩还原补丁文件时,按照512字节分包将增量升级文件从外部存储器提取到智能电表端的单片机RAM中进行解压缩。4.根据权利要求1所述的智能电表实现增量式升级的方法,其特征在于,将差异信息压缩成补丁文件以及解压缩还原补丁文件的方法包括uzlib算法。5.根据权利要求1所述的智能电表实现增量式升级的方法,其特征在于,进行校验的方法包括CRC32即循环冗余校验。6.一种智...

【专利技术属性】
技术研发人员:张良柱丁川
申请(专利权)人:成都长城开发科技股份有限公司
类型:发明
国别省市:

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

1