CN110147244A - 一种车载软件升级的方法 - Google Patents
一种车载软件升级的方法 Download PDFInfo
- Publication number
- CN110147244A CN110147244A CN201910358184.1A CN201910358184A CN110147244A CN 110147244 A CN110147244 A CN 110147244A CN 201910358184 A CN201910358184 A CN 201910358184A CN 110147244 A CN110147244 A CN 110147244A
- Authority
- CN
- China
- Prior art keywords
- packet
- differential file
- mcu
- file
- soc
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004891 communication Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
- G06F8/658—Incremental updates; Differential 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
本发明公开了一种车载软件升级的方法,包括:向MCU请求版本号;根据MCU版本号匹配更新的差分文件包版本;读取更新的差分文件包并校验所述差分文件包是否完整;如果存在至少两个更新的所述差分文件包,则将所有差分文件包组合成一个差分文件组合包;将所述差分文件包或差分文件组合包转换成预定格式,并发送给所述MCU;所述MCU将所述差分文件包或差分文件组合包发送给SOC;由所述SOC读取所述差分文件包或差分文件组合包,并完成升级。采用该技术方案可以缩短软件升级时间。
Description
技术领域
本发明涉及车载电子领域,特别涉及一种车载软件升级的方法。
背景技术
如果想给车上的ECU更新软件,瓶颈在于CAN的传输速率与数据包的大小,假如CAN的速率以500kbps(62.5KB/s)为例,以20%带宽利用率计算,就是12.5KB/s,如果升级包大小为44MB,使用CAN传输的时间:44MB/12.5KB/s≈3604秒≈1小时,1个小时不管对于用户还是4S店,都太不能接受,在CAN的速率一定的情况下,如何减少升级包的大小和改善升级方案,减少升级的时间,是急需解决的一个问题。
发明内容
本发明实施例的目的在于提供一种车载软件升级的方法,可以缩短软件升级时间。
本发明实施例提供的一种车载软件升级的方法,包括:
向MCU请求版本号;
根据MCU版本号匹配更新的差分文件包版本;
读取更新的差分文件包并校验所述差分文件包是否完整;
如果存在至少两个更新的所述差分文件包,则将所有差分文件包组合成一个差分文件组合包;
将所述差分文件包或差分文件组合包转换成预定格式,并发送给所述MCU;
所述MCU将所述差分文件包或差分文件组合包发送给SOC;
由所述SOC读取所述差分文件包或差分文件组合包,并完成升级。
可选地,在根据MCU版本号匹配更新的差分文件包版本之前,还包括:
判断更新的升级包文件类型,所述文件类型包括MCU升级包、旧升级包、更新的所述差分文件包。
可选地,所述差分文件的生成,包括:
对比新升级文件与旧版本文件,生成打补丁命令、目录及更新的方法脚本;
将生成的打补丁命令、目录及更新的方法脚本打包成压缩文件;
使用差分文件工具制作成所述差分文件;
生成所述差分文件校验码。
可选地,使用xdelta3制作所述打补丁命令。
可选地,使用bz2制作压缩文件。
可选地,请求版本号包括:
所述SOC根据所述MCU请求生成SOC版本号,并将所述SOC版本号反馈给所述MCU,所述MCU根据SOC版本号生成MCU版本号并反馈给版本号请求端。
可选地,所述MCU与SOC通过SPI通信,所述MCU通过CAN协议与车机通信。
可选地,所述SOC进行文件升级包括:
写入差分升级标志,更新软件标志位,重启并进入安全模式;
安全模式支持识别所述差分文件包或差分文件组合包,如果为差分文件组合包需要拆分成差分文件包;
校验所述差分文件包是否完整;
分别提取压缩文件,调用打补丁命令,运行方法脚本,完成软件更新。
可选地,如需更新所述MCU,将所述MCU的升级包复制至所述SOC的目录。
由上可见,应用本实施例技术方案,由于采用差分升级的方案可以缩短软件升级时间,既兼容以往的整包升级方法,又增加新的差分包的升级方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种车载软件升级的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
ECU(Electronic Control Unit,电子控制单元)产品包括MCU(MicrocontrollerUnit,微控制单元)与SOC(System on Chip,片上系统),所述MCU与SOC通过SPI通信,所述MCU通过CAN协议跟汽车其它模块通信。所述MCU软件支持CAN转输文件至SOC,SOC升级软件支持与MCU交互,获取CAN传送的数据流,本实施例提供一种车载软件升级的方法,包括:
向MCU请求版本号,包括:所述SOC根据所述MCU请求生成SOC版本号,并将所述SOC版本号反馈给所述MCU,所述MCU根据SOC版本号生成MCU版本号并反馈给版本号请求端;
根据MCU版本号匹配更新的差分文件包版本;
读取更新的差分文件包并校验所述差分文件包是否完整;
如果存在至少两个更新的所述差分文件包,则将所有差分文件包组合成一个差分文件组合包;
将所述差分文件包或差分文件组合包转换成预定格式,并发送给所述MCU;
所述MCU将所述差分文件包或差分文件组合包发送给SOC;
由所述SOC读取所述差分文件包或差分文件组合包,并完成升级。
可以但不限于,如图1所示,在一个实施例中:
1、差分文件的生成:
如版本号:SW_DABCDEF_160801(old)to SW_DABCDEF_160808(new)
1.1对比new与old的如下文件差异生成xdelta3patch、list.txt文件、preinst.sh、postinst.sh,Xdelta3是一种优秀的、被广泛使用的差量更新算法,
差分管理的文件:
dtb:是dts被DTC编译后的二进制格式的Device Tree描述,可由Linux内核解析,rootfs是Linux系统中的根文件系统,zImage为内核的一种映像压缩文件,radio.bin为MCU的升级包。
1.2将生成的patch文件、list.txt和更新的方法脚本打包成X.tar.bz2,tar.bz2是一种Linux压缩包。
1.3diff工具制作成如下“diff格式”
1.4生成MD5SUM。
差分数据包小,使用xdelta3制作patch,并使用bz2压缩,减少CAN数据传输。
2、升级包的处理:
2.1判断文件类型:
如果为s19格式,S0字段为radio.bin,则进行CAN升级MCU。
如果为s19格式,S0字段为其他字符,则为旧的更新方式,支持转输文件。
如果为diff格式,前面4个Byte为字符串“CCDD”,表示为新方案的更新包。
可见,部分兼容旧的CAN升级方案,PC端工具通过S0字段确定是否旧的升级包。
2.2读取机器的版本号
根据机器的版本号匹配diff包的版本。
如:机器版本为A,如果存在file1.diff:A->B file2.diff:B->C,则说明机器可以更新至C版本。
2.3md5sum检验“diff格式”包是否完整。
2.4如果存在多个可以更新的diff文件,则将其组合成一个。
如:file1.diff与file2.diff将组合成如下“diff组合格式”
将“diff格式”或“diff组合格式”转换成s19格式,magic_key放在S0字段,其他内容放在S3字段。启动与radio交互,转输数据,同旧方案的传输方式。
3、MCU软件处理:
3.1提供获取软件版本号的接口。
3.2提供支持直接CAN升级MCU的功级。
3.3提供数据传输协议与接口CAN-->MCU-->SPI。
4、SOC处理:
4.1将S0与S3字段的内容的内容写入指定的文件。
4.2设备更新软件标志位,重启并进入failsafe模式。
4.3failsafe处理,failsafe支持识别“diff格式”,tar.bz2包,xdelata3的patch,同时完软件更新。
4.3.1读取数据头,判断AABB为“diff组合格式”,CCDD为“diff格式”。
4.3.2如果为“diff组合格式”,需要拆分成“diff格式”。
4.3.3 md5sum检验“diff格式”包是否完整。
4.3.4分别提取X.tar.bz2。
4.3.5运行preinst.sh与postinst.sh(调用xdelta3处patch)。
4.3.6如需要更新MCU软件(radio.bin),将MCU软件(radio.bin)复制至SOC的目录。
4.3.7完成更新后设置成功标志,重启。
本专利描述了一种软件升级方法,可以缩短ECU的软件升级时间,既兼容以往的整包升级方法,又增加新的差分包的升级方法,通过本方案,软件升级包可以控制在1MB以内,实际测试的CAN传输速度:5.6KB/s,传输1MB数据:1MB/5.6KB/s≈182秒≈3分钟。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。
Claims (9)
1.一种车载软件升级的方法,其特征在于,包括:
向MCU请求版本号;
根据MCU版本号匹配更新的差分文件包版本;
读取更新的差分文件包并校验所述差分文件包是否完整;
如果存在至少两个更新的所述差分文件包,则将所有差分文件包组合成一个差分文件组合包;
将所述差分文件包或差分文件组合包转换成预定格式,并发送给所述MCU;
所述MCU将所述差分文件包或差分文件组合包发送给SOC;
由所述SOC读取所述差分文件包或差分文件组合包,并完成升级。
2.如权利要求1所述的一种车载软件升级的方法,其特征在于,在根据MCU版本号匹配更新的差分文件包版本之前,还包括:
判断更新的升级包文件类型,所述文件类型包括MCU升级包、旧升级包、更新的所述差分文件包。
3.如权利要求2所述的一种车载软件升级的方法,其特征在于,所述差分文件的生成,包括:
对比新升级文件与旧版本文件,生成打补丁命令、目录及更新的方法脚本;
将生成的打补丁命令、目录及更新的方法脚本打包成压缩文件;
使用差分文件工具制作成所述差分文件;
生成所述差分文件校验码。
4.如权利要求3所述的一种车载软件升级的方法,其特征在于,使用xdelta3制作所述打补丁命令。
5.如权利要求4所述的一种车载软件升级的方法,其特征在于,使用bz2制作压缩文件。
6.如权利要求1所述的一种车载软件升级的方法,其特征在于,请求版本号包括:
所述SOC根据所述MCU请求生成SOC版本号,并将所述SOC版本号反馈给所述MCU,所述MCU根据SOC版本号生成MCU版本号并反馈给版本号请求端。
7.如权利要求6所述的一种车载软件升级的方法,其特征在于,所述MCU与SOC通过SPI通信,所述MCU通过CAN协议与车机通信。
8.如权利要求7所述的一种车载软件升级的方法,其特征在于,所述SOC进行文件升级包括:
写入差分升级标志,更新软件标志位,重启并进入安全模式;
安全模式支持识别所述差分文件包或差分文件组合包,如果为差分文件组合包需要拆分成差分文件包;
校验所述差分文件包是否完整;
分别提取压缩文件,调用打补丁命令,运行方法脚本,完成软件更新。
9.如权利要求8所述的一种车载软件升级的方法,其特征在于,如需更新所述MCU,将所述MCU的升级包复制至所述SOC的目录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910358184.1A CN110147244A (zh) | 2019-04-30 | 2019-04-30 | 一种车载软件升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910358184.1A CN110147244A (zh) | 2019-04-30 | 2019-04-30 | 一种车载软件升级的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110147244A true CN110147244A (zh) | 2019-08-20 |
Family
ID=67593952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910358184.1A Pending CN110147244A (zh) | 2019-04-30 | 2019-04-30 | 一种车载软件升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110147244A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685066A (zh) * | 2020-12-25 | 2021-04-20 | 英博超算(南京)科技有限公司 | 一种异构平台的mcu软件代理模式开发方法 |
CN112988210A (zh) * | 2021-02-08 | 2021-06-18 | 常州新途软件有限公司 | 全液晶仪表软件升级方法 |
CN113721966A (zh) * | 2021-08-27 | 2021-11-30 | 杭州华橙软件技术有限公司 | 节点升级方法、装置、存储介质及电子装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034673A (zh) * | 2011-09-28 | 2013-04-10 | 歌乐株式会社 | 对象数据传送系统和方法、服务器装置以及客户机装置 |
CN104391728A (zh) * | 2014-12-12 | 2015-03-04 | 北京奇虎科技有限公司 | 软件升级差量包获取方法和相应的升级方法以及装置 |
CN106886424A (zh) * | 2015-12-15 | 2017-06-23 | 德尔福电子(苏州)有限公司 | 一种根据智能设备升级汽车软件的装置及方法 |
CN108762778A (zh) * | 2018-03-30 | 2018-11-06 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载多媒体系统的升级方法 |
CN109032653A (zh) * | 2018-08-29 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 无人驾驶汽车车载终端升级方法、装置、设备及存储介质 |
CN109491681A (zh) * | 2018-10-19 | 2019-03-19 | 北京经纬恒润科技有限公司 | 一种汽车内mcu的升级方法及装置 |
-
2019
- 2019-04-30 CN CN201910358184.1A patent/CN110147244A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034673A (zh) * | 2011-09-28 | 2013-04-10 | 歌乐株式会社 | 对象数据传送系统和方法、服务器装置以及客户机装置 |
CN104391728A (zh) * | 2014-12-12 | 2015-03-04 | 北京奇虎科技有限公司 | 软件升级差量包获取方法和相应的升级方法以及装置 |
CN106886424A (zh) * | 2015-12-15 | 2017-06-23 | 德尔福电子(苏州)有限公司 | 一种根据智能设备升级汽车软件的装置及方法 |
CN108762778A (zh) * | 2018-03-30 | 2018-11-06 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载多媒体系统的升级方法 |
CN109032653A (zh) * | 2018-08-29 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 无人驾驶汽车车载终端升级方法、装置、设备及存储介质 |
CN109491681A (zh) * | 2018-10-19 | 2019-03-19 | 北京经纬恒润科技有限公司 | 一种汽车内mcu的升级方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685066A (zh) * | 2020-12-25 | 2021-04-20 | 英博超算(南京)科技有限公司 | 一种异构平台的mcu软件代理模式开发方法 |
CN112685066B (zh) * | 2020-12-25 | 2023-07-07 | 英博超算(南京)科技有限公司 | 一种异构平台的mcu软件代理模式开发方法 |
CN112988210A (zh) * | 2021-02-08 | 2021-06-18 | 常州新途软件有限公司 | 全液晶仪表软件升级方法 |
CN113721966A (zh) * | 2021-08-27 | 2021-11-30 | 杭州华橙软件技术有限公司 | 节点升级方法、装置、存储介质及电子装置 |
CN113721966B (zh) * | 2021-08-27 | 2024-03-29 | 杭州华橙软件技术有限公司 | 节点升级方法、装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147244A (zh) | 一种车载软件升级的方法 | |
CN105262627B (zh) | 一种固件升级方法、装置及系统 | |
CN103810011B (zh) | 通过文件服务器实现ota升级的方法 | |
KR101238511B1 (ko) | 펌웨어 컴포넌트의 상태 공고 및 펌웨어 컴포넌트의 갱신 | |
CN103577202B (zh) | 软件升级方法与系统 | |
CN103678319B (zh) | 资源文件更新方法、装置和系统及服务器 | |
CN103942058A (zh) | 一种嵌入式电子设备软件升级方法及系统 | |
KR20090035044A (ko) | 네트워크에서의 생성자와 콘텐츠 서버 간의 업데이트 패키지 전송을 위한 업데이트 패키지 카탈로그 | |
CN104699511B (zh) | 插件升级方法及装置 | |
CN108804130B (zh) | 程序安装包生成方法及装置 | |
CN106201577B (zh) | 一种更新Lua文件的方法及装置 | |
CN112286565B (zh) | 一种基于存储容器的嵌入式系统差分升级方法 | |
CN111258599A (zh) | 固件升级方法、系统和计算机可读存储介质 | |
CN103916440A (zh) | 一种远程升级的方法及其装置 | |
CN112947981A (zh) | 应用程序资源更新方法、装置、终端设备及服务器 | |
CN106980502A (zh) | 一种在线获取bios固件更新的方法 | |
CN106569843A (zh) | 一种生成ota中间包的方法及装置 | |
CN108710511A (zh) | Android系统的系统设置方法、定制包和系统ROM包的分离方法及升级包生成方法 | |
EP1566068B1 (fr) | Chargement d'une application a deployer dans un terminal et une carte a puce | |
CN102750287B (zh) | 收录索引信息的方法及下载验证服务器 | |
WO2011136809A1 (en) | Preprocessor for file updating | |
CN105530544B (zh) | 一种模块化电视的显示屏端升级方法及模块化电视 | |
CN109766115A (zh) | 一种智能设备升级的防呆方法及系统 | |
CN109814893A (zh) | Ota升级包的下载方法、装置、计算机设备及存储介质 | |
CN114928602A (zh) | 加密方法、解密方法及ota升级系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190820 |