CN111190629A - 一种嵌入式终端升级软件包及其解析方法 - Google Patents
一种嵌入式终端升级软件包及其解析方法 Download PDFInfo
- Publication number
- CN111190629A CN111190629A CN202010003601.3A CN202010003601A CN111190629A CN 111190629 A CN111190629 A CN 111190629A CN 202010003601 A CN202010003601 A CN 202010003601A CN 111190629 A CN111190629 A CN 111190629A
- Authority
- CN
- China
- Prior art keywords
- data
- software package
- line
- identifier
- flash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种嵌入式终端升级软件包及其解析方法,包括:创建升级软件包文件;将升级刷写流程与数据内容制定成升级软件包文件;升级软件包文件由多行文本组成;每一行文本包括标识符、冒号以及内容部分;内容部分包括功能命令部分与数据部分;生成升级软件包文件。将升级刷写流程与数据内容制定成一种格式升级软件包,升级软件包的每一行已经类似于执行脚本文件,刷写主机软件读取升级软件包的每一行内容,并根据每一行内容的标识符与功能命令执行相应的操作,可以采取同一种刷写的脚本文件,满足控制器的文件格式、软件包大小及写入地址、不同软件包的个数、升级刷写流程、升级对象等部分不同或者不相同的软件刷写。
Description
技术领域
本发明涉及汽车控制器软件更新技术领域,具体涉及一种升级软件包及其解析方法。
背景技术
随着现在汽车越来越智能,汽车上的电子控制器越来越多,控制系统越来越复杂,因上市后进行软件Bug修复、性能优化或新功能增加,对汽车电子控制器的软件进行更新越来越频繁。
现在汽车上的电子控制器有几十个,每个控制器可能由不同的零部件厂商供应,且每个控制器的软件代码格式可能存在不同(如HEX、S19、bin、mot等),通过外部工具传输升级包到控制器端的软件包大小及写入地址、软件包的个数、升级刷写流程等不同,且有些控制器只升级软件或软件的一部分,而有些控制器需同时升级控制器及控制器的参数(单片机的软件可能和参数不在同一个区域的)。文件格式多对刷写主机(售后4S店刷写设备或车上集成的刷写主机)的开发造成相当大的挑战;在服务器上存放每个电子控制器的软件及控制器的标定配置参数,控制器的软件可能有多个(存在不同的分段),会增加服务器管理系统的难度。
目前,公开号为CN105487888A的中国专利文献公开了“一种生成在系统升级和/或在应用升级的升级文件的方法”,包括:创建初始文件头;将升级对象型号信息、升级对象创建者信息加入初始文件头,形成升级文件头;将升级镜像填充到1024字节的整数倍,形成新镜像,对新镜像进行循环冗余校验,将新镜像的校验结果加入升级文件头的尾部;将升级文件头填充到升级文件头的固定长度减去2字节,对填充后的升级文件头实施循环冗余校验,将校验结构加入升级文件头,使升级文件长度变成其固定长度;将升级文件头附着在新镜像的前面,生成升级文件;该方法能够识别升级文件是否与特定硬件具有对应关系,是否适合于升级对象的具体型号,能够识别升级文件是否属于升级对象指定的创建者所产生,避免升级了错误型号的程序、错误提供者的程序以及恶意仿制的程序,该方法主要是确保升级文件的完整性以及合法性。
公开号为CN106569865A的中国专利文献公开了“一种终端的系统升级文件的制作方法及制作装置”,包括:获取未被签名的系统文件中的待签名文件;确定所述终端对应的多类CPU身份标识信息;使用多类CPU身份标识信息中的每类CPU身份标识信息对应的密钥文件对待签名文件分别进行签名,得到与多类CPU身份标识信息对应的多类签名文件;根据系统文件及多类签名文件生成系统升级文件。该方法使用与每类CPU身份标识信息相对应的密钥文件对系统文件中的待签名文件进行签名,从而获得了多类签名文件,每一类CPU身份标识信息都有与之对应的签名文件,使得根据系统文件和多类签名文件制作的系统升级文件可以满足多类CPU身份标识信息对应的不同终端的系统升级要求。该方法可确保不同类型的CPU身份标识信息的终端在系统升级文件中找到与自身CPU身份标识信息相符的升级文件。
公开号为CN107168748A的中国专利文献公开了“一种通过一个升级文件包实现多项升级任务的方法”,包括:根据待升级任务的场景,在本地端将升级文件打包合成一个PKG文件:升级文件包括shell命令、配置命令文件、APP更新文件和Bootloader更新文件中的一种或两种以上;利用SD卡将pkg文件拷贝至待更新远程监控终端,或者通过远程监控平台,将pkg文件分配和发送至待更新远程监控终端;远程监控终端识别到pkg文件后,通过MD5校验检查pkg文件的正确性,接着识别pkg文件中的不同类型的升级文件,若包含配置命令文件、APP更新文件和Bootloader更新文件,则将其中涉及的产品型号与内置在远程监控终端的EEPROM中的产品型号进行对比,比对一致后进入下一步;远程监控终端对pkg文件进行解压,然后逐行执行各升级命令,完成对远程监控终端的原始系统的升级。该方法间多个任务的命令文件、配置文件、APP更新文件等合成为一个升级文件包,然后通过SD卡拷贝或者通过远程监控平台下发至远程监控终端进行升级,能够实现一键解压执行升级。
不同零部件厂商供应的控制器在文件格式、软件包大小及写入地址、软件包数量、升级刷写流程、升级对象等方面皆存在差异,以上三个专利公开的技术方案皆未完全解决如何通过升级刷写主机软件读取同一种格式升级软件包即可完成对不同控制器的刷写的问题。
发明内容
本发明的目的是提供一种嵌入式终端升级软件包的制作及解析方法,解决汽车整车厂刷写汽车控制器软件面临的不同零部件厂商供应的不同控制器的不同文件格式、不同软件包大小及写入地址、不同软件包的个数、不同升级刷写流程、升级软件或软件的部分内容、同时升级控制器软件及控制器的参数与只升级软件或参数问题。
本发明所述的嵌入式终端升级软件包,所述软件包包括升级刷写流程和数据内容,其制作方法包括:
创建升级软件包文件;
将升级刷写流程与数据内容制定成升级软件包文件;
所述升级软件包文件由多行文本组成;
每一行所述文本包括标识符、冒号以及内容部分;
所述内容部分包括功能命令部分与数据部分;
生成升级软件包文件。
作为对本发明的进一步改进,所述功能命令部分在中括号中,所述功能命令包括功能标识符、冒号以及功能参数三部分。
作为对本发明的进一步改进,所述标识符为能够被刷写主机软件识别的部分,且刷写主机软件根据所述标识符执行相应的操作,刷写主机软件执行的具体操作为所述内容部分。
作为对本发明的进一步改进,所述功能标识符为能够被刷写主机软件识别的部分,且刷写主机软件根据所述标识符执行相应的操作,刷写主机软件执行的具体操作为功能参数部分。
作为对本发明的进一步改进,所述标识符包括DST、VER、DSP、BDR、FTX、DAT、DRV、DLT、END、LBL、CMP、JEQ、JNQ、JMP;分别代表如下:
DST:标识本行内容为整个文件的校验信息,冒号右面的紧随的两个字符表明对文件内容的校验方式,剩下的字符为除本行外的所有行的校验结果;
VER:标识本文件的文件格式版本,由三个ASCII符的小数点“.”和八个ASCII符组成,每两个字符之间用小数点隔开,每两个字符表示一个八位的数据,内容格式:00.00.00.01;
DSP:对控制器的描述文本,内容空能为空;
BDR:内容为32位16进制数,标识波特率,如,7A120表示波特率为500000,FFFFFFFF为无效数据;
FTX:标识对控制器进行软件刷写的功能地址标识;
DAT:表示后面内容是对控制器进行软件刷写的数据部分;
DSD:每两个ASCII码字符为一个字节,前两个字节为要发送的控制器的地址,后面是要发送的数据;
DRV:每两个ASCII字符为一个字节,前两个字节为控制器返回的地址,后面是期望控制器返回的数据;
DLT:延时操作标识符,单位为毫秒;
END:表示该段数据的结束;
LBL:表示此行是标签行,冒号右边是标签位置标识,标签行内容是文本;
CMP:标识此处是比较,参数部分是两个ASCII码(一个字节的16进制数),用于和收到控制器返回的对应位置数据进行对比,一行的所有比较命令都相等时,比较结果才为真;
JEQ:标识条件为真的跳转,当上依次比较结果为真时,跳转到冒号右边标签行的下一行处进行数据的读取并根据标识符执行相应的操作;
JNQ:标识条件为假的跳转,当上依次比较结果为假时,跳转到冒号右边标签行的下一行处进行数据的读取并根据标识符执行相应的操作;
JMP:标识可跳转到冒号右边的标签处或该段数据END处。
作为对本发明的进一步改进,所述功能标识符包括OVT、REP、DKY、SKY;分别代表如下:
OVT:超时时间功能标识,参数是16进制数,单位是ms,在有期望数据的情况下,作为刷写主机发送数据后到收到数据的超时时间;通过功能地址方式发送的数据在未收到期望数据时,作为发送下一条数据的超时时间;
REP:表示接收的数据不是期望的数据或在规定时间内未收到数据,重新发送数据的最大次数;
DKY: 表示收到控制器回复的安全认证种子后,根据功能参数调用不同的算法计算出认证数据,功能参数表示16进制数,如0001表示采用一级安全认证算法,0002表示采用二级安全认证算法;
SKY:表示刷写主机此处要根据功能参数将使用上一步计算的安全认证的认证数据填充到待发送数据中。
一种解析如上述的嵌入式终端升级软件包的方法,其特征在于,包括:
刷写主机软件对控制器进行软件刷写;
从所述升级软件包的第一行文本逐行解析至最后一行文本;
根据每一行文本的所述标识符与所述功能命令执行相应的操作;
读取所述升级软件包一行数据,刷写主机判读数据是否满足刷写主机的预设条件;
如果数据满足刷写主机的预设条件,则刷写主机继续读取所述升级软件包的下一行数据;
如果数据未满足刷写主机的预设条件,则刷写主机停止刷写任务,并提示异常。
本发明优点如下:将升级刷写流程与数据内容制定成一种升级软件包,升级软件包的每一行已经类似于执行脚本文件,刷写主机软件读取升级软件包的每一行内容,并根据每一行内容的标识符与功能命令执行相应的操作,只需要同一种格式升级软件包,便可以升级刷写整车上不同的控制器,实现整车厂对多种软件代码格式及多种刷写流程的不同汽车控制器采用同一种方式进行软件刷写升级,解决了汽车整车厂刷写汽车控制器软件面临的不同零部件厂商供应的不同控制器的不同文件格式、不同软件包大小及写入地址、不同软件包的个数、不同升级刷写流程、升级软件或软件的部分内容、同时升级控制器软件及控制器的参数与只升级软件或参数等问题,同时降低了服务器管理系统对软件升级包管理的复杂程度以及系统运营管理的难度。
附图说明
图1为升级软件包内容说明示意图;
图2为升级软件包解包流程图。
具体实施方式
为了使本发明的目的、技术方案、和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
目前汽车控制器基本都支持ISO14229诊断服务,对控制器软件进行刷写采用的是诊断服务命令。本发明与控制器进行通信数据交互的每一行发送脚本数据(标识符为“DSD”),解析出来后发送数据是ISO14229诊断命令,同时期望收到控制器回复的数据(标识符为“DRV”)解析出来是ISO14229诊断命令的响应回复数据,在软件刷写过程中,当读取到一行数据是发送脚本数据后,将发送的数据解析出来后,发送到控制器,等待控制器进行回复。当收到控制器的诊断服务回复数据和期望收到的数据不一致时,或超过规定时间未进行回复时,重发数据,直到达到最大重复次数;当收到控制器的诊断服务回复数据和期望收到的数据一致时,则继续读取下一行数据进行解析处理。
如图1、图2所示,一种嵌入式终端升级软件包,升级软件包包括升级刷写流程和数据内容,其制作方法包括:
创建升级软件包文件;
将升级刷写流程与数据内容制定成升级软件包文件;
升级软件包文件由多行文本组成;
每一行文本包括标识符、冒号以及内容部分;
内容部分包括功能命令部分与数据部分;
生成升级软件包文件。
在本实施例中,功能命令部分在中括号中,功能命令包括功能标识符、冒号以及功能参数三部分。
在本实施例中,标识符为能够被刷写主机软件识别的部分,且刷写主机软件根据标识符执行相应的操作,刷写主机软件执行的具体操作为内容部分。
在本实施例中,功能标识符为能够被刷写主机软件识别的部分,且刷写主机软件根据标识符执行相应的操作,刷写主机软件执行的具体操作为功能参数部分。
在本实施例中,标识符包括DST、VER、DSP、BDR、FTX、DAT、DRV、DLT、END、LBL、CMP、JEQ、JNQ、JMP;分别代表如下:
DST:标识本行内容为整个文件的校验信息,冒号右面的紧随的两个字符表明对文件内容的校验方式,剩下的字符为除本行外的所有行的校验结果;
VER:标识本文件的文件格式版本,由三个ASCII符的小数点“.”和八个ASCII符组成,每两个字符之间用小数点隔开,每两个字符表示一个八位的数据。内容格式:00.00.00.01;
DSP:对控制器的描述文本,内容空能为空;
BDR:内容为32位16进制数,标识波特率,如,7A120表示波特率为500000,FFFFFFFF为无效数据;
FTX:标识对控制器进行软件刷写的功能地址标识;
DAT:表示后面内容是对控制器进行软件刷写的数据部分;
DSD:每两个ASCII码字符为一个字节,前两个字节为要发送的控制器的地址,后面是要发送的数据;
DRV:每两个ASCII字符为一个字节,前两个字节为控制器返回的地址,后面是期望控制器返回的数据;
DLT:延时操作标识符,单位为毫秒;
END:表示该段数据的结束;
LBL:表示此行是标签行,冒号右边是标签位置标识,标签行内容是文本;
CMP:标识此处是比较,参数部分是两个ASCII码(一个字节的16进制数),用于和收到控制器返回的对应位置数据进行对比,一行的所有比较命令都相等时,比较结果才为真;
JEQ:标识条件为真的跳转,当上依次比较结果为真时,跳转到冒号右边标签行的下一行处进行数据的读取并根据标识符执行相应的操作;
JNQ:标识条件为假的跳转,当上依次比较结果为假时,跳转到冒号右边标签行的下一行处进行数据的读取并根据标识符执行相应的操作;
JMP:标识可跳转到冒号右边的标签处或该段数据END处。
在本实施例中,功能标识符包括OVT、REP、DKY、SKY;分别代表如下:
OVT:超时时间功能标识,参数是16进制数,单位是ms,在有期望数据的情况下,作为刷写主机发送数据后到收到数据的超时时间;通过功能地址方式发送的数据在未收到期望数据时,作为发送下一条数据的超时时间;
REP:表示接收的数据不是期望的数据或在规定时间内未收到数据,重新发送数据的最大次数;
DKY: 表示收到控制器回复的安全认证种子后,根据功能参数调用不同的算法计算出认证数据,功能参数表示16进制数,如0001表示采用一级安全认证算法,0002表示采用二级安全认证算法;
SKY:表示刷写主机此处要根据功能参数将使用上一步计算的安全认证的认证数据填充到待发送数据中。
一种解析如上述的嵌入式终端升级软件包的方法,包括:
刷写主机软件对控制器进行软件刷写;
从升级软件包的第一行文本逐行解析至最后一行文本;
根据每一行文本的标识符与功能命令执行相应的操作;
读取升级软件包一行数据,刷写主机判读数据是否满足刷写主机的预设条件;
如果数据满足刷写主机的预设条件,则刷写主机继续读取升级软件包的下一行数据;
如果数据未满足刷写主机的预设条件,则刷写主机停止刷写任务,并提示异常。
目前对控制器软件的刷写一般情况下都是通过采用ISO14229诊断命令规范进行刷写。本发明的升级包的脚本文件进行解析后的数据是ISO14229诊断命令,直接将ISO诊断命令进行数据发送和接收,同时可根据脚本命令对接收到的数据进行比较、判断、执行跳转到不同行进行继续执行等。
如图1所示,生成的升级软件包内容包含如下信息:
DST:标识本行内容为整个文件的校验信息,如MD5、CRC等,冒号右面的紧随的两个字符表明对文件内容的校验方式(10:CRC_32的方式校验;20:采用MD5的方式校验),剩下的字符为除本行外的所有行的校验结果。
VER:标识本文件的文件格式版本,由三个ASCII符的小数点“.”和八个ASCII符组成,每两个字符之间用小数点隔开,每两个字符标识一个八位的数据,内容格式:00.00.00.01。
DSP:对控制器的描述的文本,内容空能为空;
BDR:内容为32位16进制数,标识波特率,如,7A120表示波特率为500000,FFFFFFFF为无效数据。
FTX:表示对控制器进行软件刷写的功能地址标识。
DAT:表示后面内容是对控制器进行软件刷写的数据部分。
DSD:每两个ASCII码字符为一个字节,前两个字节为要发送的控制器的地址,后面是要发送的数据。
DRV:每两个ASCII字符为一个字节,前两个字节为控制器返回的地址,后面是期望控制器返回的数据。
DLT:延时操作标识符,单位为毫秒。
END:表示该段数据的结束。
对控制器进行软件刷写的数据部分中包含功能命令,功能命令在[]中;功能的内容由功能标识、冒号、功能参数三部分组成,冒号的左边是功能标识符,冒号的右边是功能参数。
功能标识符有:OVT、REP、DKY、SKY等。
OVT:超时时间功能标识,参数是16进制数,单位是ms,在有期望数据的情况下,作为刷写主机发送数据后收到数据的超时时间;通过功能地址方式发送的数据在未收到期望数据时,作为发送下一条数据的超时时间。
REP:表示接收的数据不是期望的数据或在规定时间内未收到数据,重新发送数据的最大次数。
DKY:表示收到控制器回复的安全认证种子后,根据功能参数调用不同的算法计算出认证数据,功能参数表示16进制数,如0001表示采用一级安全认证算法,0002表示采用二级安全认证算法;
SKY:表示刷写主机此处要根据功能参数将使用上一步计算的安全认证数据填充到待发送数据中。
比较/跳转与标签:
比较命令在[]中,比较、跳转、标签命令由标识符、ASCII冒号、参数三部分组成;
LBL:表示此行是标签行,冒号右边是标签位置标识,标签行内容是文本。
CMP:标识此处是比较,参数部分是两个ASCII码(一个字节的16进制数),用于和收到控制器返回的对应位置数据进行对比,一行的所有比较命令都相等时,比较结果才为真。
JEQ:标识条件为真的跳转,当上依次比较结果为真时,跳转到冒号右边标签行的下一行处进行数据的读取并根据标识符执行相应的操作;
JNQ:标识条件为假的跳转,当上一次比较结果为假时,跳转到冒号右边标签行的下一行处进行数据的读取并根据标识符执行相应的操作;
JMP:标识可跳转到冒号右边的标签处或该段数据END处。
如图2所示,对升级软件包的解包过程详述如下:
第一步、读取软件包一行数据,标识符是“DST”,并根据数据内容的第一个字节采用对应的完成性校验算法对后面所有剩余行数据进行完整性校验,如果完整性校验通过,则继续读取下一行数据,完整性校验不过则结束,并提示异常。
第二步、分别判断标识符是否是“VER”、“DSP”、“BDR”、“FTX”、“DAT”、“LBL”、“DLT”、“JEQ”、“JNQ”、“JMP”、“DSD”、“DRV”和“END”。
如果标识符是“VER”,则后面内容是软件包的格式版本,用于刷写主机判断是否支持对该软件包的解析;
如果标识符是“DSP”,则后面内容是对该软件包的更改描述,用于在刷写主机上进行显示;
如果标识符是“BDR”,则刷写主机读取本行后面的内容,本行后面的内容为更新软件用的波特率,并将刷写主机与控制器之间的通信的波特率设置成该波特率;
如果标识符是“FTX”,则后面内容是整车的功能寻址地址,用于判断刷写主机发送的地址是否为功能寻址,如果是功能寻址,则不用等待控制器回复,当延时时间过后,则继续读取下一行数据进行解析;
如果标识符是“DAT”,则说明后面每行内容都是对控制器进行软件更新的实际数据部分,当读到此行后,刷写主机可依据此行开始,进行进度显示等;
如果标识符是“LBL”,则说明此行数据是标签行,直接读取下一行数据进行解析;
如果标识符是“END”,则整个过程结束且刷写主机成功进行了软件的更新;
如果标识符是“DLT”,则获取后面的等待时间,同时开始计时等待时间,当等待时间到后,再读取下一行数据进行解析;
如果标识符是“JEQ”,则判断上次的比较结果,如果上次的比较结果是真,则读取后面的标签行,并将下次读取标签行的下一行进行解析;
如果标识符是“JNQ”,则判断上次的比较结果,如果上次的比较结果是假,则读取后面的标签行,并将下次读取标签行的下一行进行解析;
如果标识符是“JMP”,则读取后面的标签行,并将下次读取标签行的下一行进行解析;
如果标识符是“DSD”,则在此行数据内容中首先获取控制器的发送地址(内容数据前两个字节),然后再解析剩下数据。解析余下数据中:如果数据标识不是功能命令,则将字节数据缓存到数据发送缓存区后继续解析;如果是功能命令“SKY”,则将根据“SKY”后的算法编号计算出的安全认证数据追加到发送缓存区后继续解析;如果是功能命令“OVT”,则将“OVT”后的数据作为等待控制器回复的超时时间。所有数据解析完成再判断发送地址是否是功能地址,如果是功能寻址地址,则刷写主机将缓存的数据发出(发送的数据是基于ISO14229标准的数据格式),否则执行第三步。
第三步、读取软件包下一行数据,标识符是“DRV”,从此行数据内容中首先获取接收控制器的地址(内容数据前两个字节),解析余下数据中:如果数据标识不是功能命令,则将字节数据缓存到期望接收数据区后继续解析;如果是功能命令“DKY”,则将根据“DKY”后的算法编号采用对应算法计算出的安全认证数据后继续解析,安全认证数据缓存到对应算法计算结果缓存中;如果是功能命令“CMP”,在发送完数据后,将控制器返回的数据对应位置字节数据进行比较,并存储结果,此行所有“CMP”功能命令比较的结果为真,结果才为真,此行任意一个“CMP”功能命令比较的结果为假,结果则为假。此行所有数据解析完成后,将发送缓存的数据发送到控制器,等待控制器回复,控制器回复的数据要和期望接收数据区中对应的数据进行比对,比对一致,继续读取数据进行解析,比对不一致,则结束并提示异常。
综上所述,将升级刷写流程与数据内容制定成一种升级软件包,升级软件包的每一行已经类似于执行脚本文件,刷写主机软件读取升级软件包的每一行内容,并根据每一行内容的标识符与功能命令执行相应的操作,只需要同一种升级软件包格式,便可以升级刷写整车上不同的控制器,实现整车厂对多种软件代码格式及多种刷写流程的不同汽车控制器采用同一种方式进行软件刷写升级,解决了汽车整车厂刷写汽车控制器软件面临的不同零部件厂商供应的不同控制器的不同文件格式、不同软件包大小及写入地址、不同软件包的个数、不同升级刷写流程、升级软件或软件的部分内容、同时升级控制器软件及控制器的参数与只升级软件或参数等问题,同时降低了服务器管理系统对软件升级包管理的复杂程度以及系统运营管理的难度。
Claims (7)
1.一种嵌入式终端升级软件包,其特征在于,所述软件包包括升级刷写流程和数据内容,其制作方法包括:创建升级软件包文件;将升级刷写流程与数据内容制定成升级软件包文件;所述升级软件包文件由多行文本组成;每一行所述文本包括标识符、冒号以及内容部分;所述内容部分包括功能命令部分与数据部分;生成升级软件包文件。
2.根据权利要求1所述的嵌入式终端升级软件包,其特征在于:所述功能命令部分在中括号中,所述功能命令包括功能标识符、冒号以及功能参数三部分。
3.根据权利要求1所述的嵌入式终端升级软件包,其特征在于:所述标识符为能够被刷写主机软件识别的部分,且刷写主机软件根据所述标识符执行相应的操作,刷写主机软件执行的具体操作为所述内容部分。
4.根据权利要求2所述的嵌入式终端升级软件包,其特征在于:所述功能标识符为能够被刷写主机软件识别的部分,且刷写主机软件根据所述标识符执行相应的操作,刷写主机软件执行的具体操作为功能参数部分。
5.根据权利要求1所述的嵌入式终端升级软件包,其特征在于:所述标识符包括DST、VER、DSP、BDR、FTX、DAT、DRV、DLT、END、LBL、CMP、JEQ、JNQ、JMP;分别代表如下:
DST:标识本行内容为整个文件的校验信息,冒号右面的紧随的两个字符表明对文件内容的校验方式,剩下的字符为除本行外的所有行的校验结果;VER:标识本文件的文件格式版本,由三个ASCII符的小数点“.”和八个ASCII符组成,每两个字符之间用小数点隔开,每两个字符表示一个八位的数据,内容格式:00.00.00.01;
DSP:对控制器的描述文本,内容空能为空;
BDR:内容为32位16进制数,标识波特率,如,7A120表示波特率为500000,FFFFFFFF为无效数据;
FTX:标识对控制器进行软件刷写的功能地址标识;
DAT:表示后面内容是对控制器进行软件刷写的数据部分;
DSD:每两个ASCII码字符为一个字节,前两个字节为要发送的控制器的地址,后面是要发送的数据;
DRV:每两个ASCII字符为一个字节,前两个字节为控制器返回的地址,后面是期望控制器返回的数据;
DLT:延时操作标识符,单位为毫秒;
END:表示该段数据的结束;
LBL:表示此行是标签行,冒号右边是标签位置标识,标签行内容是文本;
CMP:标识此处是比较,参数部分是两个ASCII码(一个字节的16进制数),用于和收到控制器返回的对应位置数据进行对比,一行的所有比较命令都相等时,比较结果才为真;
JEQ:标识条件为真的跳转,当上依次比较结果为真时,跳转到冒号右边标签行的下一行处进行数据的读取并根据标识符执行相应的操作;
JNQ:标识条件为假的跳转,当上依次比较结果为假时,跳转到冒号右边标签行的下一行处进行数据的读取并根据标识符执行相应的操作;
JMP:标识可跳转到冒号右边的标签处或该段数据END处。
6.根据权利要求2所述的嵌入式终端升级软件包的制作方法,其特征在于:所述功能标识符包括OVT、REP、DKY、SKY;分别代表如下:
OVT:超时时间功能标识,参数是16进制数,单位是ms,在有期望数据的情况下,作为刷写主机发送数据后到收到数据的超时时间;通过功能地址方式发送的数据在未收到期望数据时,作为发送下一条数据的超时时间;
REP:表示接收的数据不是期望的数据或在规定时间内未收到数据,重新发送数据的最大次数;
DKY: 表示收到控制器回复的安全认证种子后,根据功能参数调用不同的算法计算出认证数据,功能参数表示16进制数,如0001表示采用一级安全认证算法,0002表示采用二级安全认证算法;
SKY:表示刷写主机此处要根据功能参数将使用上一步计算的安全认证的认证数据填充到待发送数据中。
7.一种解析如权利要求1至6任一项所述的嵌入式终端升级软件包的方法,其特征在于,包括:
刷写主机软件对控制器进行软件刷写;
从所述升级软件包的第一行文本逐行解析至最后一行文本;
根据每一行文本的所述标识符与所述功能命令执行相应的操作;
读取所述升级软件包一行数据,刷写主机判读数据是否满足刷写主机的预设条件;
如果数据满足刷写主机的预设条件,则刷写主机继续读取所述升级软件包的下一行数据;
如果数据未满足刷写主机的预设条件,则刷写主机停止刷写任务,并提示异常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010003601.3A CN111190629B (zh) | 2020-01-03 | 2020-01-03 | 一种嵌入式终端升级软件包及其解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010003601.3A CN111190629B (zh) | 2020-01-03 | 2020-01-03 | 一种嵌入式终端升级软件包及其解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111190629A true CN111190629A (zh) | 2020-05-22 |
CN111190629B CN111190629B (zh) | 2023-04-07 |
Family
ID=70708379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010003601.3A Active CN111190629B (zh) | 2020-01-03 | 2020-01-03 | 一种嵌入式终端升级软件包及其解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190629B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949668A (zh) * | 2020-09-23 | 2020-11-17 | 成都精灵云科技有限公司 | 一种使云平台支持多种存储方式的管理方法 |
CN112416409A (zh) * | 2020-12-07 | 2021-02-26 | 安徽江淮汽车集团股份有限公司 | 车载电脑软件升级方法、装置、设备及存储介质 |
CN113590157A (zh) * | 2021-07-31 | 2021-11-02 | 重庆长安汽车股份有限公司 | 一种车载嵌入式ota刷写文件、刷写装置及刷写方法 |
CN113741936A (zh) * | 2021-08-31 | 2021-12-03 | 重庆长安汽车股份有限公司 | 一种基于uds协议的并行刷写方法、装置、车辆及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801924A (zh) * | 2004-11-19 | 2006-07-12 | Lg电子株式会社 | 具有软件升级能力的视频装置及其控制方法 |
US7237017B1 (en) * | 2001-03-13 | 2007-06-26 | Panamsat Corporation | Micronode in a satellite based content delivery system |
CN101060427A (zh) * | 2006-04-19 | 2007-10-24 | 华为技术有限公司 | 实现远程软件升级的系统及方法 |
CN105116868A (zh) * | 2015-06-29 | 2015-12-02 | 江苏大学 | 一种基于can总线的小型电控汽油机触摸式hmi标定方法 |
CN105278997A (zh) * | 2015-11-11 | 2016-01-27 | 北京汽车股份有限公司 | 控制器软件的刷写方法及设备 |
CN106951253A (zh) * | 2017-03-21 | 2017-07-14 | 广州慧睿思通信息科技有限公司 | 一种嵌入式固件在线升级方法 |
CN110597546A (zh) * | 2019-08-21 | 2019-12-20 | 北京汽车股份有限公司 | 升级车载控制器程序的方法和车辆 |
CN113590157A (zh) * | 2021-07-31 | 2021-11-02 | 重庆长安汽车股份有限公司 | 一种车载嵌入式ota刷写文件、刷写装置及刷写方法 |
-
2020
- 2020-01-03 CN CN202010003601.3A patent/CN111190629B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7237017B1 (en) * | 2001-03-13 | 2007-06-26 | Panamsat Corporation | Micronode in a satellite based content delivery system |
CN1801924A (zh) * | 2004-11-19 | 2006-07-12 | Lg电子株式会社 | 具有软件升级能力的视频装置及其控制方法 |
CN101060427A (zh) * | 2006-04-19 | 2007-10-24 | 华为技术有限公司 | 实现远程软件升级的系统及方法 |
CN105116868A (zh) * | 2015-06-29 | 2015-12-02 | 江苏大学 | 一种基于can总线的小型电控汽油机触摸式hmi标定方法 |
CN105278997A (zh) * | 2015-11-11 | 2016-01-27 | 北京汽车股份有限公司 | 控制器软件的刷写方法及设备 |
CN106951253A (zh) * | 2017-03-21 | 2017-07-14 | 广州慧睿思通信息科技有限公司 | 一种嵌入式固件在线升级方法 |
CN110597546A (zh) * | 2019-08-21 | 2019-12-20 | 北京汽车股份有限公司 | 升级车载控制器程序的方法和车辆 |
CN113590157A (zh) * | 2021-07-31 | 2021-11-02 | 重庆长安汽车股份有限公司 | 一种车载嵌入式ota刷写文件、刷写装置及刷写方法 |
Non-Patent Citations (5)
Title |
---|
ANGEL SAPENA-BANÓ等: "Automatic translation of Programmable Logic Controllers (PLC) control programs in packaging machinery" * |
吴进军: "基于CAN总线的新能源汽车ECU控制器程序刷写系统设计" * |
汪向阳等: "面向汽车电子威胁分析与风险评估技术研究" * |
滕永: "基于ARM9的嵌入式Linux系统研究及设备驱动程序的开发" * |
郭树端等: "数控铣床三维加工CL公式自动编程软件包的输入参数研究" * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949668A (zh) * | 2020-09-23 | 2020-11-17 | 成都精灵云科技有限公司 | 一种使云平台支持多种存储方式的管理方法 |
CN111949668B (zh) * | 2020-09-23 | 2023-05-05 | 成都精灵云科技有限公司 | 一种使云平台支持多种存储方式的管理方法 |
CN112416409A (zh) * | 2020-12-07 | 2021-02-26 | 安徽江淮汽车集团股份有限公司 | 车载电脑软件升级方法、装置、设备及存储介质 |
CN113590157A (zh) * | 2021-07-31 | 2021-11-02 | 重庆长安汽车股份有限公司 | 一种车载嵌入式ota刷写文件、刷写装置及刷写方法 |
CN113590157B (zh) * | 2021-07-31 | 2024-04-30 | 重庆长安汽车股份有限公司 | 一种车载嵌入式ota刷写文件、刷写装置及刷写方法 |
CN113741936A (zh) * | 2021-08-31 | 2021-12-03 | 重庆长安汽车股份有限公司 | 一种基于uds协议的并行刷写方法、装置、车辆及计算机可读存储介质 |
CN113741936B (zh) * | 2021-08-31 | 2024-04-19 | 重庆长安汽车股份有限公司 | 一种基于uds协议的并行刷写方法、装置、车辆及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111190629B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111190629B (zh) | 一种嵌入式终端升级软件包及其解析方法 | |
CN108132795B (zh) | 一种电子控制单元的软件更新方法及装置 | |
CN110134415A (zh) | 一种控制器及其软件升级方法和装置 | |
CN106598632B (zh) | 一种光模块的固件升级方法及装置 | |
CN110597542B (zh) | 软件自动ota升级方法及装置、电子设备 | |
CN111562933B (zh) | 一种空调升级方法以及空调系统 | |
CN111769962A (zh) | 一种mcu固件ota升级方法 | |
CN106775778B (zh) | 嵌入式程序开发中程序更新识别方法及系统 | |
CN113467813A (zh) | 一种控制器在线升级方法、装置、电子设备及存储介质 | |
CN114995860B (zh) | 图形处理器固件升级的方法和图形处理器 | |
CN110932891A (zh) | 防出错ota升级方法、装置、计算机设备及存储介质 | |
CN113031974A (zh) | 一种变速器控制单元软件刷写方法 | |
CN110750285B (zh) | 固件升级方法、装置、计算机设备和存储介质 | |
CN113407212A (zh) | 远程升级方法、装置、终端设备及存储介质 | |
CN112181455B (zh) | 微控制器的在线升级方法、微控制器及存储介质 | |
CN107479924B (zh) | 基于Android系统的软件升级校验方法 | |
JP2003172199A (ja) | 車両用電子制御装置のプログラム書き換えシステム | |
CN112286565A (zh) | 一种基于存储容器的嵌入式系统差分升级方法 | |
CN111351669B (zh) | 故障诊断方法和装置、存储介质和车辆 | |
CN101197959B (zh) | 一种终端的控制方法、系统和设备 | |
CN114237654A (zh) | 一种ota升级方法及系统 | |
CN113645316B (zh) | 升级数据处理方法、上位机、下位机、设备及存储介质 | |
CN112416409B (zh) | 车载电脑软件升级方法、装置、设备及存储介质 | |
CN114840241A (zh) | 一种数据处理方法以及相关设备 | |
CN117914529A (zh) | 一种基于DoIP传输升级包的校验字段生成方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |