一种基于单片机的差分升级方法与流程

文档序号:41462670发布日期:2025-03-28 18:00阅读:23来源:国知局
一种基于单片机的差分升级方法与流程

本发明涉及软件升级,尤其是一种基于单片机的差分升级方法。


背景技术:

1、现阶段,为了增加和改善产品(如锂离子蓄电池、bms控制设备)中软件的功能或问题,需要不定期地对产品中的软件进行升级。通常升级过程有两种方式:整包升级和差分升级。其中,差分升级因其升级包小,从而在提高升级速度和升级的成功率方面已引起广泛关注。

2、差分升级的原理是将源版本与目标版本之间的差异部分剥离出来制作成升级包,然后在设备端再通过还原算法将差异部分与源版本融合成新版本。差分升级方式不仅可以节省mcu本身的内部空间,还可减少升级的时间和所需的功耗(wif i或nb物联网产品还可以减少升级所需的流量)。

3、然而,目前的差分升级方法无法确定升级后的新软件的完整性和正确性,基于此问题,还原升级后的新软件的完整性和正确性成为值得关注的问题。


技术实现思路

1、本发明所要解决的技术问题在于提供一种基于单片机的差分升级方法。

2、为解决上述技术问题,本发明的技术方案是:

3、一种基于单片机的差分升级方法,依据升级协议,通过循环冗余校验值校验传输的差分升级包完整性;通过差分算法还原完整升级文件,并通过差分升级包中携带的循环冗余校验值,对还原的完整升级包进行正确性校验;当校验通过时,将升级包放入单片机的备份升级区,完成升级。

4、优选的,上述基于单片机的差分升级方法,具体步骤如下:

5、(1)使用通讯协议中携带的差分升级包的循环冗余校验值,对所述差分升级包进行校验;

6、(2)当校验通过时,将差分升级包和源版本软件进行融合计算循环冗余校验值,与差分升级包中所携带的循环冗余校验值做校验:若一致,则所述新版本软件校验值为新版本软件的循环冗余(crc)校验值,从而保证了差分升级包的完整性和正确性;若升级过程中出现了(异常断电、通讯失败等)升级被迫停止现象,根据不同情况(外部存储介质记录升级各阶段状态),实现断点续传、版本回滚功能。

7、优选的,上述基于单片机的差分升级方法,所述差分升级包是通过上位机将新老版本的固件差异部分剥离出来制作而成的;单片机端接受差分升级包,通过差分恢复算法,根据差分包中的数据标志,将新老版本进行融合,变成新的固件完成升级。

8、优选的,上述基于单片机的差分升级方法,上位机采用差分算法bsd i ff+l zma生成差分升级包,单片机同样也采用该算法还原完整升级文件。

9、优选的,上述基于单片机的差分升级方法,还包括将所述差分升级包放入备份升级区后,将原程序代码放入外部存储介质中,以防升级过程中出现问题或需要版本回滚功能。

10、有益效果:

11、所述基于单片机的差分升级方法,通过将升级包差分,实现了节省单片机本身的存储空间、还可减少升级的时间和所需的功耗,更重要的保证了升级后的新软件的完整性和正确性。所采用的升级包中除了携带差分升级包外,还携带用于对新版本软件进行验证的新版本软件循环冗余校验值,从而可以将差分升级包与旧版本软件融合后得到新版本软件,利用该新版本软件校验文件对新版本软件镜像进行校验,从而实现对升级得到的新版本软件的完整性和正确性的校验。

12、所述基于单片机的差分升级方法,基于bsd i ff方法将旧文件和新文件进行排序,对比出差异文件和新增文件,再将差异文件和新增文件形成压缩包,通过差分升级包的循环冗余校验值和还原完整文件的循环冗余校验值,以实现对升级后的新软件的完整性和正确性的验证。

13、使用通讯协议中携带的差分升级包的循环冗余校验值,对所述差分升级包进行校验;当校验通过时,将差分升级包和原版本软件进行融合计算循环冗余校验值,与差分升级包中所携带的循环冗余校验值做校验。若一致,则所述新版本软件校验值为新版本软件的循环冗余(crc)校验值,从而保证了差分升级包的完整性和正确性;若升级过程中出现了(异常断电、通讯失败等)升级被迫停止现象,根据情况不同(存储介质记录升级各阶段状态),可实现断点续传、版本回滚等功能。



技术特征:

1.一种基于单片机的差分升级方法,其特征在于:依据升级协议,通过循环冗余校验值校验传输的差分升级包完整性;通过差分算法还原完整升级文件,并通过差分升级包中携带的循环冗余校验值,对还原的完整升级包进行正确性校验;当校验通过时,将升级包放入单片机的备份升级区,完成升级。

2.根据权利要求1所述的基于单片机的差分升级方法,其特征在于:具体步骤如下:

3.根据权利要求1或2所述的基于单片机的差分升级方法,其特征在于:所述差分升级包是通过上位机将新老版本的固件差异部分剥离出来制作而成的;单片机端接受差分升级包,通过差分恢复算法,根据差分包中的数据标志,将新老版本进行融合,变成新的固件完成升级。

4.根据权利要求3所述的基于单片机的差分升级方法,其特征在于:上位机采用差分算法bsdiff+lzma生成差分升级包,单片机同样也采用该算法还原完整升级文件。

5.根据权利要求1或2所述的基于单片机的差分升级方法,其特征在于:还包括将所述差分升级包放入备份升级区后,将原程序代码放入外部存储介质中,以防升级过程中出现问题或需要版本回滚功能。


技术总结
本发明提供了一种基于单片机的差分升级方法,依据升级协议,通过循环冗余校验值校验传输的差分升级包完整性;通过差分算法还原完整升级文件,并通过差分升级包中携带的循环冗余校验值,对还原的完整升级包进行正确性校验;当校验通过时,将升级包放入单片机的备份升级区,完成升级。所述方法采用的升级包中除了携带差分升级包外,还携带用于对新版本软件进行验证的新版本软件循环冗余校验值,从而可以将差分升级包与旧版本软件融合后得到新版本软件,利用该新版本软件校验文件对新版本软件镜像进行校验,从而实现对升级得到的新版本软件的完整性和正确性的校验。

技术研发人员:徐鹏,熊林勇,秦晓怡,张宇,刘晓哲,孙博,薛天姿,梁家祺,孔丽丽
受保护的技术使用者:天津蓝天特种电源科技股份公司
技术研发日:
技术公布日:2025/3/27
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1