System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及车载控制器,具体地,涉及一种程序刷写方法及系统。
技术介绍
1、ecu(electronic control unit)电子控制单元,即汽车控制器。从上位机下载程序文件,并将完成程序文件存储到ecu的内存的操作称为程序刷写。由于软件功能需求变更及功能升级等,在ecu的开发、生产下线过程中需要频繁ecu的程序刷写。现有ecu存在由于待刷写程序文件的数据量庞大,导致传输的时间长、刷写效率低的问题。
技术实现思路
1、为了克服现有技术中的至少一个不足,本申请提供一种程序刷写方法及系统。
2、第一方面,提供一种程序刷写方法,包括:
3、对程序文件以固定字节长度进行拆解,得到多个程序块;
4、对每个程序块进行压缩,得到压缩包以及包含压缩包的长度信息的文件;
5、将所有程序块对应的压缩包以及包含压缩包的长度信息的文件,顺序拼接成新的程序文件;
6、从新的程序文件中取固定字节的数据组成传输包,新的程序文件以传输包的形式进行传输;传输包中包括至少一个压缩包;
7、对传输包依次进行解压缩,并将解压缩后的数据进行存储。
8、在一个实施例中,将所有程序块对应的压缩包以及包含压缩包的长度信息的文件,顺序拼接成新的程序文件,包括:
9、记所有程序块对应的压缩包为x1,x2,x3……xn,n为程序块的个数,对应的包含压缩包的长度信息的文件为a1,a2,a3……an;
10、按照a1,x1,a2
11、在一个实施例中,对传输包依次进行解压缩,并将解压缩后的数据进行存储,包括:
12、对当前传输包中完整的压缩包依次进行解压缩,并将解压缩后的数据进行存储;
13、若当前传输包中存在不完整的压缩包,则对不完整的压缩包进行缓存,等待下一个传输包输入,将下一个传输包中不完整的压缩包与当前传输包中的不完整的压缩包拼凑成完整的压缩包,对拼凑成的完整的压缩包进行解压缩,并将解压缩后的数据进行存储。
14、在一个实施例中,对当前传输包中完整的压缩包依次进行解压缩,并将解压缩后的数据进行存储,包括:
15、取当前传输包中的固定字节的数据,根据固定字节的数据得到第一个完整的压缩包的长度信息;固定字节为l,第一个完整的压缩包的长度为l1;从第l+1个字节取字节长度为l1的数据进行解压缩,并将解压缩后的数据进行存储;
16、按照与第一个完整的压缩包相同的方式,对当前传输包中所有完整的压缩包依次进行解压缩,并将解压缩后的数据进行存储。
17、第二方面,提供一种程序刷写装置,包括:程序文件处理模块和解压缩及数据存储模块;
18、程序文件处理模块用于:
19、对程序文件以固定字节长度进行拆解,得到多个程序块;
20、对每个程序块进行压缩,得到压缩包以及包含压缩包的长度信息的文件;
21、将所有程序块对应的压缩包以及包含压缩包的长度信息的文件,顺序拼接成新的程序文件;
22、从新的程序文件中取固定字节的数据组成传输包,新的程序文件以传输包的形式进行传输;传输包中包括至少一个压缩包;
23、解压缩及数据存储模块用于:
24、接收传输包,并对传输包依次进行解压缩,并将解压缩后的数据进行存储。
25、在一个实施例中,程序文件处理模块,还用于:
26、记所有程序块对应的压缩包为x1,x2,x3……xn,n为程序块的个数,对应的包含压缩包的长度信息的文件为a1,a2,a3……an;
27、按照a1,x1,a2,x2,a3,x3……an,xn的顺序拼接成新的程序文件。
28、在一个实施例中,解压缩及数据存储模块,还用于:
29、对当前传输包中完整的压缩包依次进行解压缩,并将解压缩后的数据进行存储;
30、若当前传输包中存在不完整的压缩包,则对不完整的压缩包进行缓存,等待下一个传输包输入,将下一个传输包中不完整的压缩包与当前传输包中的不完整的压缩包拼凑成完整的压缩包,对拼凑成的完整的压缩包进行解压缩,并将解压缩后的数据进行存储。
31、在一个实施例中,解压缩及数据存储模块,还用于:
32、取当前传输包中的固定字节的数据,根据固定字节的数据得到第一个完整的压缩包的长度信息;固定字节为l,第一个完整的压缩包的长度为l1;从第l+1个字节取字节长度为l1的数据进行解压缩,并将解压缩后的数据进行存储;
33、按照与第一个完整的压缩包相同的方式,对当前传输包中所有完整的压缩包依次进行解压缩,并将解压缩后的数据进行存储。
34、在一个实施例中,解压缩及数据存储模块包括输入缓存模块、输出缓存模块、临时缓存模块、解压缩模块和内存;
35、输入缓存模块,用于缓存输入的传输包;
36、输出缓存模块,用于缓存解压缩后的数据;
37、临时缓存模块,用于缓存不完整的压缩包;
38、解压缩模块,用于对完整的压缩包进行解压;
39、内存,用于存储解压缩后的数据。
40、第三方面,提供一种程序刷写系统,包括:上位机、ecu和程序刷写装置;程序刷写装置为上述的程序刷写装置;程序刷写装置包括程序文件处理模块和解压缩及数据存储模块;程序文件处理模块设置在上位机中,解压缩及数据存储模块设置在ecu中。
41、相对于现有技术而言,本申请具有以下有益效果:本申请通过lz压缩算法动态缩减程序文件的大小,在执行程序刷写时先对传入的数据包解压缩再进行程序文件数据的存储操作,从而减少程序刷写过程中数据包传输的次数,使单个ecu的程序刷写时间缩短约60%,大幅度减少产线ecu程序刷写时所产生的时间成本,提升企业效益。
本文档来自技高网...【技术保护点】
1.一种程序刷写方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,其中,将所有程序块对应的压缩包以及包含所述压缩包的长度信息的文件,顺序拼接成新的程序文件,包括:
3.如权利要求1所述的方法,其特征在于,其中,对所述传输包依次进行解压缩,并将解压缩后的数据进行存储,包括:
4.如权利要求3所述的方法,其特征在于,其中,对当前传输包中完整的压缩包依次进行解压缩,并将解压缩后的数据进行存储,包括:
5.一种程序刷写装置,其特征在于,包括:程序文件处理模块和解压缩及数据存储模块;
6.如权利要求5所述的装置,其特征在于,所述程序文件处理模块,还用于:
7.如权利要求5所述的装置,其特征在于,所述解压缩及数据存储模块,还用于:
8.如权利要求7所述的装置,其特征在于,所述解压缩及数据存储模块,还用于:
9.如权利要求5所述的装置,其特征在于,所述解压缩及数据存储模块包括输入缓存模块、输出缓存模块、临时缓存模块、解压缩模块和内存;
10.一种程序刷写系统,其特征在于,
...【技术特征摘要】
1.一种程序刷写方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,其中,将所有程序块对应的压缩包以及包含所述压缩包的长度信息的文件,顺序拼接成新的程序文件,包括:
3.如权利要求1所述的方法,其特征在于,其中,对所述传输包依次进行解压缩,并将解压缩后的数据进行存储,包括:
4.如权利要求3所述的方法,其特征在于,其中,对当前传输包中完整的压缩包依次进行解压缩,并将解压缩后的数据进行存储,包括:
5.一种程序刷写装置,其特征在于,包括:程序文件处理模块和解压缩及数据存储模块;
6.如权利要求5所述的装置,其特征在于,所述程序文件处理模块,还用于...
【专利技术属性】
技术研发人员:王思逸,刘义,毕乾坤,陈彤,王婧宇,吕耀坤,阮班水,王迅,张俊超,
申请(专利权)人:陕西法士特汽车传动集团有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。