一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种具有断点续传功能的汽车仪表程序在线升级的方法与流程

2022-04-06 19:08:18 来源:中国专利 TAG:


1.本发明涉及一种汽车组合仪表程序的在线升级方法,尤其涉及一种具有断点续传功能的汽车仪表程序在线升级的方法。


背景技术:

2.目前,汽车组合仪表升级更新速度加快,仪表安装到车上后也需要不断的升级,目前仪表的升级方式主要有两种方式,一是通过调试口来下载程序,这种方式在仪表开发过程中经常采用,但当仪表正式装车以后,这种升级方式就涉及到仪表的拆装,不仅升级速度慢,且人力成本特别高。第二种方式是通过can总线直接刷写应用程序,这种方式在很大程度上解决了已装车仪表的升级问题,但目前这种升级方式也存在一些问题,比如当应用程序较大时,刷写速度会比较慢,并且在刷写过程中,一旦总线受到干扰,发生传输中断后,所有数据都需要重新刷写,程序升级效率比较低,如果程序升级失败,原程序也无法继续使用,因此有必要设计一种更方便、快捷、安全可靠的方式来升级程序。


技术实现要素:

3.本发明需要解决的技术问题是:现有的汽车仪表升级方式程序升级效率比较低,如果程序升级失败,存在原程序无法继续使用的问题,进而提供一种具有断点续传功能的汽车仪表程序在线升级的方法。
4.本发明为解决上述技术问题采用的技术方案是:
5.一种具有断点续传功能的汽车仪表程序在线升级的方法,具体升级步骤如下:
6.步骤1,将单片机的程序存储区划分为4个区域,分别为r1区域、r2区域、r3区域和r4区域,所述的r1区域用来存放boot程序,所述的r2区域用来存储升级状态标识,所述的r3区域用来存储应用程序,所述的r4区域用来存储压缩后的应用程序升级文件;
7.将r4区域的空间按照can总线传输数据块的大小b进行分块,所述的r2区域与r4区域采用bit-map方式对应;
8.步骤2,对待升级的应用程序文件进行压缩;
9.步骤3,将压缩后待升级的应用程序文件进行分块,压缩后应用程序文件的数据块的数量与r4区域的空间分块数量相同;
10.步骤4,升级开始时将程序存储区的r2区域全部bit位清零;
11.步骤5,通过can总线将压缩后的应用程序文件中每一块数据块分别传输到r4区域中的每一块空间内,压缩后的应用程序文件每传输完一块数据块,在程序存储区的r2区域中将相应的bit位设置为1;
12.步骤6,若压缩后的应用程序文件在传输过程中因总线干扰发生中断,则根据读取到的r2区域中相应块bit值,对没有传输完成的数据块重新传输;
13.步骤7,重复步骤5和步骤6,直到压缩后的应用程序升级文件全部传输完成;
14.步骤8,传输完成后汽车仪表复位,由存储于r1区域中的boot程序根据r2区域的升
级标志位,对存储在r4区域中压缩的应用程序升级文件进行校验。
15.进一步的,步骤8中,若校验通过,则将r4区域中压缩的应用程序升级文件解压到r3区域中,并覆盖r3区域中的原应用程序文件,同时将r2区域全部bit位清零。
16.进一步的,步骤8中,若校验不通过,则重复步骤4至步骤8,直至压缩后的应用程序升级文件全部传输完成,并校验成功。
17.进一步的,步骤8中,若校验不通过,则继续执行r3区域存储的原应用程序。
18.进一步的,步骤1中,设所述的r3区域的空间大小为a,设所述的r4区域的空间大小为b,r3区域的空间大小与r4区域的空间大小按照文件压缩比r划分,即a/b=1/r。
19.进一步的,步骤1中,将r4区域的空间按照can总线传输数据块的大小b进行分块,一共分为b/b块空间。
20.进一步的,步骤1中,所述的文件压缩比r的值等于待升级的应用程序文件所选压缩软件的文件压缩率。
21.本发明与现有技术相比产生的有益效果是:
22.应用本发明的程序升级方法对仪表程序升级,可以有效的缩短升级时间,并且当升级过程中发生中断,不需要将所有数据重新传输,只需将还没被传输的数据块传输完成即可,即使升级失败,仪表也会继续运行前一版本的应用程序,不会影响仪表正常功能。
附图说明
23.图1为单片机的程序存储区划分为r1、r2、r3和r4区域的示意图;
24.图2为本发明程序文件传输过程的流程图;
25.图3为本发明程序文件校验过程后的流程图。
具体实施方式
26.下面结合图1至图3并通过具体实施方式来进一步说明本发明的技术方案:
27.一种具有断点续传功能的汽车仪表程序在线升级的方法,具体升级步骤如下:
28.步骤1,将单片机的程序存储区划分为4个区域,分别为r1区域、r2区域、r3区域和r4区域,所述的r1区域用来存放boot程序,所述的r2区域用来存储升级状态标识,所述的r3区域用来存储应用程序,所述的r4区域用来存储压缩后的升级文件;
29.设所述的r3区域的空间大小为a,设所述的r4区域的空间大小为b,r3区域的空间大小与r4区域的空间大小按照文件压缩比r划分,即a/b=1/r,其中,所述的文件压缩比r的值等于待升级的应用程序文件所选压缩软件的文件压缩率,将r3区域与r4区域按照文件的压缩比进行区域的划分,能够有效的利用程序存储空间,在有限的存储空间内,既能保证应用程序的运行,同时也能保证升级文件的存储;
30.如图1所示,将r4区域的空间按照can总线传输数据块的大小b进行分块,一共分为b/b块空间,所述的r2区域与r4区域采用bit-map方式对应,即r2区域中每一个bit位按顺序对应r4区域中每一块空间内的数据块;
31.步骤2,对待升级的应用程序文件进行压缩,此步骤可有效的缩短文件传输时间;
32.步骤3,将压缩后待升级的应用程序文件进行分块,压缩后应用程序文件的数据块的数量与r4区域的空间分块数量相同,即压缩后待升级的应用程序文件共分为b/b块数据
块;
33.步骤4,升级开始时将程序存储区的r2区域全部bit位清零;
34.步骤5,通过can总线将压缩后的应用程序文件中每一块数据块分别传输到r4区域中的每一块空间内,压缩后的应用程序文件每传输完一块数据块,在程序存储区的r2区域中将相应的bit位设置为1;
35.步骤6,若压缩后的应用程序文件在传输过程中因总线干扰发生中断,则根据读取到的程序存储区中r2区域中相应块bit值,对压缩后升级的应用程序文件中没有传输完成的数据块重新传输,本发明采用分块传输的方法可以有效的缩短升级时间,并且当升级过程中发生中断,不需要将所有数据重新传输,只需将还没被传输的数据块传输完成即可,增加升级效率;
36.步骤7,重复步骤5和步骤6,直到压缩后的应用程序升级文件全部传输完成;
37.步骤8,传输完成后汽车仪表复位,由存储于r1区域中的boot程序根据r2区域的升级标志位,对存储在r4区域中压缩的应用程序升级文件进行校验;若校验通过,则将r4区域的压缩的应用程序升级文件解压到r3区域中,并覆盖r3区域中的原应用程序文件,同时将r2区域全部bit位清零;
38.步骤9,若校验不通过,则重复步骤4至步骤8,直至压缩后的应用程序升级文件全部传输完成,并校验成功;若校验始终不通过,则继续执行r3区域存储的原应用程序,不影响仪表使用旧版本程序正常运行。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献