CN113900685A - 汽车仪表系统用软件升级方法及汽车仪表系统 - Google Patents
汽车仪表系统用软件升级方法及汽车仪表系统 Download PDFInfo
- Publication number
- CN113900685A CN113900685A CN202111140511.XA CN202111140511A CN113900685A CN 113900685 A CN113900685 A CN 113900685A CN 202111140511 A CN202111140511 A CN 202111140511A CN 113900685 A CN113900685 A CN 113900685A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- controller
- upgrade
- soc
- bootloader
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种汽车仪表系统用软件升级方法及汽车仪表系统。所述汽车仪表软件升级方法包括:SOC控制器获取升级包;SOC控制器生成升级标识信息并向MCU控制器传递升级标识信号;MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级;SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级。本申请的汽车仪表系统用软件升级方法通过MCU和SOC侧两部分进行升级,采用此架构可使整个仪表系统分工更明确,安全性更高,实时性更好。
Description
技术领域
本申请属于汽车仪表系统技术领域,特别涉及一种汽车仪表系统用软件升级方法、汽车仪表系统、汽车仪表系统用SOC控制器软件升级方法、SOC控制器、汽车仪表系统用MCU控制器软件升级方法、MCU控制器。
背景技术
传统汽车仪表软件升级方法是通过CAN总线进行数据传输,但CAN总线通信速率较慢,升级时间也相对较长,如果升级过程中有数据帧丢失,就会导致升级失败,造成整个仪表软件系统瘫痪,需要重新烧写整个系统。
现有技术的仪表软件升级是从上位机中接收到的升级文件,整个仪表系统分工不明确,安全性较低,实时性不好。
因此,希望有一种技术方案来克服或至少减轻现有技术的至少一个上述缺陷。
发明内容
本申请的目的是提供了一种汽车仪表系统用软件升级方法,以解决上述至少一方面的问题。
在本申请的第一方面,提供了一种汽车仪表系统用软件升级方法,
所述汽车仪表系统用软件升级方法包括:
SOC控制器获取升级包;
SOC控制器生成升级标识信息并向MCU控制器传递升级标识信号;
MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级;
SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级。
可选地,在所述SOC控制器向MCU控制器传递升级标识信号之前,所述汽车仪表系统用软件升级方法进一步包括:
SOC控制器校验获取的升级包。
可选地,在所述SOC控制器校验获取的升级包之后,在所述SOC控制器向MCU控制器传递升级标识信号之前,所述汽车仪表系统用软件升级方法进一步包括:
根据所述升级包判断升级方式,所述升级方式包括差分升级方式以及完整升级方式;
当所述升级方式为差分升级方式时,根据所述升级包内的升级数据生成完整升级数据;
当所述升级方式为完整升级方式时,所述升级包内的数据为完整升级数据。
可选地,所述MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级包括:
MCU控制器根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作:
MCU控制器向所述SOC控制器发送升级下载请求;
所述SOC控制器根据所述升级下载请求向所述MCU控制器发送完整升级数据;
MCU控制器接收所述完整升级数据并根据所述完整升级数据升级BootLoader二级第一引导区内的应用程序。
可选地,所述MCU控制器根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作进一步包括:
MCU控制器验证BootLoader二级第一引导区内的应用程序升级是否成功,若是,则MCU控制器通过所述升级包内的完整升级数据升级所述BootLoader二级第二引导区内的应用程序。
可选地,所述MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
在所述MCU控制器通过所述升级包内的完整升级数据升级所述BootLoader二级第二引导区内的应用程序后,所述MCU控制器生成MCU升级成功信号并传递给所述SOC控制器。
可选地,所述MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
MCU控制器验证BootLoader二级第一引导区内的应用程序升级是否成功,若否,则MCU控制器进行回滚升级。
可选地,所述MCU控制器进行回滚升级包括:
重新启动所述MCU控制器并在MCU控制器的BootLoader一级引导区进行如下操作:
MCU控制器向所述SOC控制器发送原始版本数据下载请求;
所述SOC控制器根据所述原始版本数据下载请求向所述MCU控制器发送原始数据包;
MCU控制器根据所述原始数据包对所述BootLoader二级第二引导区进行回滚升级。
可选地,所述SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级包括:
SOC控制器根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作:
SOC控制器根据所述完整升级数据升级所述SOC控制器的BootLoader第二分区内的应用程序。
可选地,所述SOC控制器根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作进一步包括:
SOC控制器验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若是,则SOC控制器进入BootLoader第二分区下进行如下操作:
通过所述完整升级数据升级所述BootLoader第一分区内的应用程序。
可选地,所述SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
在所述SOC控制器接收所述完整升级数据并根据所述完整升级数据升级所述SOC控制器的BootLoader第一分区内的应用程序后,所述SOC控制器生成SOC升级成功信号。
可选地,所述SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
SOC控制器验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若否,则SOC控制器进行回滚升级。
可选地,所述SOC控制器进行回滚升级包括:
重新启动所述SOC控制器并在SOC控制器的BootLoader第一分区下进行如下操作:
SOC控制器获取存储的原始数据包;
SOC控制器根据所述原始数据包对所述BootLoader第二分区进行回滚升级。
可选地,所述SOC控制器校验获取的升级包包括:
校验所述升级包内的数字证书;
校验所述升级包内的升级信息;
校验所述升级包内的升级数据包。
可选地,所述校验所述升级包内的数字证书包括:
对所述升级包进行解密;
验证所述升级包内的数字证书并获取升级信息签名的公钥;
获取所述SOC控制器的EMMC中存在的签名;
将升级信息签名的公钥与EMMC中存在的签名进行比对,如果校验成功,则校验所述升级包内的升级信息。
可选地,所述校验所述升级包内的升级信息包括:
利用所述公钥对升级包内的升级信息解密从而获取第一摘要;
对升级信息进行哈希运算从而获取第二摘要;
判断所述第一摘要的值与所述第二摘要的值是否相同,若相同,则
比较所述第一摘要的项目类型与所述第二摘要的项目类型是否相同,若相同,则校验所述升级包内的升级数据包。
可选地,所述校验所述升级包内的升级数据包包括:
获取升级信息中的升级数据包摘要;
对所述升级数据进行哈希运算从而获得第三摘要;
比较所述升级数据包摘要的值与所述第三摘要的值是否相同,若相同,则完成校验。
可选地,所述SOC控制器获取升级包包括:
所述SOC控制器自SD卡、U盘以及网络中的一个中获取升级包。
本申请还提供了一种汽车仪表系统,所述汽车仪表系统包括SOC控制器以及MCU控制器,其中,
SOC控制器获取升级包;
SOC控制器生成升级标识信息并向MCU控制器传递升级标识信号;
MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级;
SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级。
本申请还提供了一种汽车仪表系统用SOC控制器软件升级方法,所述汽车仪表系统用SOC控制器软件升级方法包括:
获取升级包;
生成升级标识信息并向MCU控制器传递升级标识信号;
根据所述升级标识信号重启后根据所述升级包进行升级。
可选地,在所述生成升级标识信息并向MCU控制器传递升级标识信号之前,所述汽车仪表系统用SOC控制器软件升级方法进一步包括:
校验获取的升级包。
可选地,所述根据所述升级标识信号重启后根据所述升级包进行升级包括:
根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作:
根据所述完整升级数据升级所述SOC控制器的BootLoader第二分区内的应用程序。
可选地,所述根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作进一步包括:
验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若是,则SOC控制器进入BootLoader第二分区下进行如下操作:
通过所述完整升级数据升级所述BootLoader第一分区内的应用程序。
可选地,所述根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若否,则SOC控制器进行回滚升级。
可选地,所述校验获取的升级包包括:
校验所述升级包内的数字证书;
校验所述升级包内的升级信息;
校验所述升级包内的升级数据包。
本申请还提供了一种SOC控制器,所述SOC控制器能够实现如上所述的汽车仪表系统用SOC控制器软件升级方法。
本申请还提供了一种汽车仪表系统用MCU控制器软件升级方法,所述汽车仪表系统用MCU控制器软件升级方法包括:
获取SOC控制器发送的升级标识信号;
根据所述升级标识信号重启后根据所述升级包进行升级。
可选地,所述根据所述升级标识信号重启后根据所述升级包进行升级包括:
根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作:
向所述SOC控制器发送升级下载请求;
获取所述SOC控制器根据所述升级下载请求向所述MCU控制器发送完整升级数据;
根据所述完整升级数据升级BootLoader二级第一引导区内的应用程序。
可选地,所述根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作进一步包括:
验证BootLoader二级第一引导区内的应用程序升级是否成功,若是,则MCU控制器通过所述升级包内的完整升级数据升级所述BootLoader二级第二引导区内的应用程序。
可选地,所述MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
MCU控制器验证BootLoader二级第一引导区内的应用程序升级是否成功,若否,则MCU控制器进行回滚升级。
本申请还提供了一种MCU控制器,所述MCU控制器能够实现如权上所述的汽车仪表系统用MCU控制器软件升级方法。
本申请至少存在以下有益技术效果:
本申请的汽车仪表系统用软件升级方法通过MCU和SOC侧两部分进行升级,采用此架构可使整个仪表系统分工更明确,安全性更高,实时性更好。本申请中升级数据均是由SOC侧获取,SOC侧获取到数据之后进行校验,如果校验成功才会将MCU的升级数据包通过SPI传输到MCU侧,而且本发明中是SOC侧和MCU侧分别进行独立升级。SOC侧也会对MCU侧的升级数据包进行备份,即使MCU侧BootLoader二级第一引导区和BootLoader二级第二引导区两面数据均不完整,也能从SOC侧的备份数据区获取上一次的完整数据,从而保证系统能够稳定运行不宕机。
附图说明
图1是本申请一个实施方式提供的汽车仪表系统用软件升级方法的方法的流程示意图;
图2是本申请一实施例的汽车仪表系统的系统架构图。
图3是本申请一实施例的MCU的系统架构图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本申请的实施例进行详细说明。
需要说明的是,在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
图1是本申请一个实施方式提供的汽车仪表系统用软件升级方法的方法的流程示意图。
参见图2,在本实施例中,汽车仪表系统包括SOC控制器以及MCU控制器。
如图1所示的汽车仪表软件升级方法包括:
步骤1:SOC控制器获取升级包;
步骤2:SOC控制器生成升级标识信息并向MCU控制器传递升级标识信号;
步骤3:MCU控制器根据升级标识信号重启后根据升级包进行升级;
步骤4:SOC控制器根据升级标识信号重启后根据所述升级包进行升级。
本申请的汽车仪表系统用软件升级方法通过MCU和SOC侧两部分进行升级,采用此架构可使整个仪表系统分工更明确,安全性更高,实时性更好。本申请中升级数据均是由SOC侧获取,SOC侧获取到数据之后进行校验,如果校验成功才会将MCU的升级数据包通过SPI传输到MCU侧,而且本发明中是SOC侧和MCU侧分别进行独立升级。SOC侧也会对MCU侧的升级数据包进行备份,即使MCU侧BootLoader二级第一引导区和BootLoader二级第二引导区两面数据均不完整,也能从SOC侧的备份数据区获取上一次的完整数据,从而保证系统能够稳定运行不宕机。
在本实施例中,在SOC控制器向MCU控制器传递升级标识信号之前,所述汽车仪表系统用软件升级方法进一步包括:
SOC控制器校验获取的升级包。
在本实施例中,采用如下方法进行校验:
SOC控制器校验获取的升级包包括:
校验升级包内的数字证书;
校验升级包内的升级信息;
校验升级包内的升级数据包。
在本实施中,校验所述升级包内的数字证书包括:
对升级包进行解密;
验证升级包内的数字证书并获取升级信息签名的公钥;
获取SOC控制器的EMMC中存在的签名;
将升级信息签名的公钥与EMMC中存在的签名进行比对,如果校验成功,则校验升级包内的升级信息。
在本实施中,校验升级包内的升级信息包括:
利用公钥对升级包内的升级信息解密从而获取第一摘要;
对升级信息进行哈希运算从而获取第二摘要;
判断第一摘要的值与所述第二摘要的值是否相同,若相同,则
比较第一摘要的项目类型与所述第二摘要的项目类型是否相同,若相同,则校验升级包内的升级数据包。
在本实施中,校验升级包内的升级数据包包括:
获取升级信息中的升级数据包摘要;
对升级数据进行哈希运算从而获得第三摘要;
比较升级数据包摘要的值与所述第三摘要的值是否相同,若相同,则完成校验。
在本实施例中,升级包数据下载成功后会使用AES算法解密,然后验证数字证书并获取升级信息签名的公钥,将其与EMMC中存在的签名进行比对,如果校验失败会重复上述流程三次,如果三次均校验失败则退出升级流程。
如果检验通过则继续比对利用公钥对升级信息解密获取的摘要D1和对升级信息进行哈希运算获得的摘要D2,D1的值和D2的值一致,则比较项目类型是否一致,如果项目类型一致,则继续比对从升级信息中获取的升级数据包摘要D3和从对升级数据进行哈希运算获得的摘要D4,D3的值和D4的一致后,才对升级包内的应用数据进行解压缩从而获取升级数据。
本申请中升级过程安全性较高,升级数据采用AES算法加密,不仅比对升级信息摘要和升级数据摘要是否一致还需要比对项目类型是否一致。
在本实施例中,在SOC控制器校验获取的升级包之后,在SOC控制器向MCU控制器传递升级标识信号之前,汽车仪表系统用软件升级方法进一步包括:
根据升级包判断升级方式,升级方式包括差分升级方式以及完整升级方式;
当升级方式为差分升级方式时,根据升级包内的升级数据生成完整升级数据;
当升级方式为完整升级方式时,升级包内的数据为完整升级数据。
在本实施例中,差分升级相对于完整升级的好处是不需要传输全部数据包,只需要传输与上一次软件版本中相差的部分数据,这样可以减少数据量;差分升级方式需要使用差分升级算法对应用数据进行还原,数据还原后,SOC侧标记升级标志位同时通知MCU重启,MCU重启后检测到升级标志位,进入到升级模式。
本申请支持完整升级方式和差分升级方式,差分升级不需要完整数据包,减少了升级文件的数据量,从而提高了升级效率,大大减少了升级时间。
在本实施例中,MCU控制器根据升级标识信号重启后根据升级包进行升级包括:
MCU控制器根据升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作:
MCU控制器向所述SOC控制器发送升级下载请求;
所述SOC控制器根据所述升级下载请求向所述MCU控制器发送完整升级数据;
MCU控制器接收所述完整升级数据并根据所述完整升级数据升级BootLoader二级第一引导区内的应用程序。
具体而言,参见图3,在本实施例中,MCU的整体架构如图3所示,MCU包括BootLoader一级第一引导区、BootLoader二级第一引导区以及BootLoader二级第二引导区,其中,MCU启动时从BootLoader一级第一引导区开始,BootLoader一级第一引导区可以跳转到BootLoader二级第一引导区或者BootLoader二级第二引导区,BootLoader二级第一引导区或者BootLoader二级第二引导区可以分别跳转到Application(应用程序)里,在Application(应用程序)里系统正式运行,处于正常工作状态,MCU侧BootLoader根据存储地址不同分为A和B两面(即BootLoader二级第一引导区以及BootLoader二级第二引导区,其中,A面为BootLoader二级第一引导区,B面为BootLoader二级第二引导区),A和B两面均能正常启动整个系统,当检测到升级标识位后会进入升级模式并请求下载升级数据包,MCU侧接收到SOC下发的升级数据后会进行数据完整性和安全性校验(校验方式与SOC的校验方式相同,在此不再赘述),如果校验通过则将数据分别刷写到Flash上的B面地址和应用程序地址,即替换B面数据,刷写成功后,MCU重启并切换到B面BootLoader启动。
在本实施例中,MCU控制器根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作进一步包括:
MCU控制器验证BootLoader二级第一引导区内的应用程序升级是否成功,若是,则MCU控制器通过所述升级包内的完整升级数据升级所述BootLoader二级第二引导区内的应用程序。
以上述A面B面举例来说,MCU重启并切换到B面BootLoader二级第一引导区启动,若启动成功,则认为升级成功,则将本次升级数据同步刷写到Flash上的A面地址,保持两面BootLoader中数据一致,同时生成MCU升级成功信号并传递给所述SOC控制器。
在本实施例中,MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
在MCU控制器通过所述升级包内的完整升级数据升级所述BootLoader二级第二引导区内的应用程序后,MCU控制器生成MCU升级成功信号并传递给所述SOC控制器。
在本实施中,MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:MCU控制器验证BootLoader二级第一引导区内的应用程序升级是否成功,若否,则MCU控制器进行回滚升级。
在本实施例中,验证BootLoader二级第一引导区的应用程序升级是否成功通过重启MCU并由已经升级后的BootLoader二级第一引导区内进入系统来判断,当能够通过第二分区进入系统则认为应用程序升级成功,若不能,则认为失败。
在本实施中,MCU控制器进行回滚升级包括:
重新启动MCU控制器并在MCU控制器的BootLoader一级引导区进行如下操作:
MCU控制器向SOC控制器发送原始版本数据下载请求;
SOC控制器根据原始版本数据下载请求向MCU控制器发送原始数据包;
MCU控制器根据原始数据包对BootLoader二级第二引导区进行回滚升级。
在本实施例中,原始版本数据即本次升级之前的一个版本的数据。
以A面B面所述实施例为例,如果失败,则生成升级失败信号,根据升级失败信号重启后MCU切换到A面BootLoader重新引导整个系统,发起回滚升级,并向SOC请求上个版本应用程序数据并重新刷写到Flash上的应用程序地址,以此实现版本回退功能,即使升级失败也不影响这个系统使用。
在本实施例中,SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级包括:
SOC控制器根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作:
SOC控制器根据所述完整升级数据升级所述SOC控制器的BootLoader第二分区内的应用程序。
在本实施例中,SOC侧的EMMC的启动分区也根据地址不同划分成BootLoader第一分区以及BootLoader第二分区,升级时由BootLoader第一分区启动,此时将升级数据拷贝到BootLoader第二分区地址中。
在本实施例中,SOC控制器根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作进一步包括:SOC控制器验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若是,则SOC控制器进入BootLoader第二分区下进行如下操作:
通过完整升级数据升级所述BootLoader第一分区内的应用程序。
在本实施例中,验证SOC的BootLoader第一分区内的应用程序升级是否成功通过重启SOC并由已经升级后的SOC的BootLoader第一分区内进入系统来判断,若能够通过SOC的BootLoader第一分区进入系统则认为应用程序升级成功,若不能,则认为失败。
在本实施例中,SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
在所述SOC控制器接收所述完整升级数据并根据所述完整升级数据升级所述SOC控制器的BootLoader第一分区内的应用程序后,所述SOC控制器生成SOC升级成功信号。
在本实施例中,如果从SOC控制器的BootLoader第一分区启动成功,则代表此次软件版本升级成功,同时需要同步升级数据到EMMC中的SOC控制器的BootLoader第二分区,即保持SOC控制器的BootLoader第二分区和SOC控制器的BootLoader第一分区数据一致,均为最新版本数据。
在本实施例中,SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:SOC控制器验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若否,则SOC控制器进行回滚升级。
在本实施例中,SOC控制器进行回滚升级包括:
重新启动所述SOC控制器并在SOC控制器的BootLoader第一分区下进行如下操作:
SOC控制器获取存储的原始数据包;
SOC控制器根据所述原始数据包对所述BootLoader第二分区进行回滚升级。
具体而言,升级失败后,SOC重新从BootLoader第一分区启动,并从EMMC中读取备份的原始数据包(即上个版本的数据)并拷贝到SOC的BootLoader第二分区地址中,并生成升级失败信号,表示此次升级失败,因为此时EMMC中BootLoader第一分区和BootLoader第二分区中均为上个版本数据,即升级失败也不会影响整个系统运行。
本申请中分别对MCU侧FLASH分区和SOC的EMMC分区划分成第一分区以及第二分区,即将MCU侧二级BootLoader划分为BootLoader二级第二引导区以及BootLoader二级第二引导区数据,SOC侧的EMMC也是同时备份一份完整的MCU侧升级包,即使MCU侧二级BootLoader的两个分区同时失效,MCU侧也能从BootLoader一级引导区模式下重新从SOC侧获取原始数据包进行烧写,即无论是软件版本升级失败还是升级后系统不稳定频繁宕机,都能轻松实现软件版本回退,不会影响整个仪表系统的正常使用。
在本实施例中,SOC控制器获取升级包包括:SOC控制器自SD卡、U盘以及网络中的一个中获取升级包。
本申请中有多种升级方式,其中包括USB升级、SD卡升级和OTA远程升级,即使其中一种升级方式因不可抗拒因素失效,也能使用其他升级方式对软件版本进行升级。
在本实施例中,SD卡升级、U盘升级及OTA远程升级的流程基本一致,只是数据来源不同,U盘和SD卡中直接存储了升级数据,而OTA远程升级需要从云端获取数据。
在本实施例中,当通过OTA的方式进行升级时,SOC以及MCU升级过程中的各种信息会同步至网络上(例如云端)。
参见图2,在本实施例中,在本实施例中,MCU负责CAN信号处理,SOC侧负责仪表界面显示,MCU与SOC之间通过SPI(Serial Peripheral Interface:串行外设接口)通信,仪表软件进行版本升级时需要对MCU和SOC两侧分别进行升级。本设计中共有三种升级方式,通过SD卡升级时,升级数据来源于直接连接在仪表上的SD卡;USB升级时,升级数据来源于直接连接在仪表上U盘;OTA升级时,升级数据、升级相关信息与控制信息通过DOIP传输给仪表。升级过程中根据升级包内容的不同,由可分为完整升级和差分升级;分别对MCU内部FLASH和SOC侧EMMC的分区划分成第一分区以及第二分区,可实现在仪表软件版本升级失败后及时跳转到另一面,以此实现仪表软件版本回退功能,即软件版本升级失败也不会导致整体系统瘫痪,能保证该系统可正常运行在上一个好用的版本中。
本申请还提供了一种汽车仪表系统,汽车仪表系统包括SOC控制器以及MCU控制器,其中,
SOC控制器获取升级包;
SOC控制器生成升级标识信息并向MCU控制器传递升级标识信号;
MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级;
SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级。
可以理解的是,上述对方法的说明,也同样适用于对系统的说明。
本申请还提供了一种汽车仪表系统用SOC控制器软件升级方法,汽车仪表系统用SOC控制器软件升级方法包括:
获取升级包;
生成升级标识信息并向MCU控制器传递升级标识信号;
根据升级标识信号重启后根据升级包进行升级。
在本实施例中,在生成升级标识信息并向MCU控制器传递升级标识信号之前,所述汽车仪表系统用SOC控制器软件升级方法进一步包括:
校验获取的升级包。
在本实施例中,根据所述升级标识信号重启后根据所述升级包进行升级包括:
根据升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作:
根据完整升级数据升级所述SOC控制器的BootLoader第二分区内的应用程序。
在本实施例中,根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作进一步包括:
验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若是,则SOC控制器进入BootLoader第二分区下进行如下操作:
通过所述完整升级数据升级所述BootLoader第一分区内的应用程序。
在本实施例中,根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若否,则SOC控制器进行回滚升级。
在本实施例中,校验获取的升级包包括:
校验升级包内的数字证书;
校验升级包内的升级信息;
校验升级包内的升级数据包。
本申请还提供了一种SOC控制器,所述SOC控制器能够实现如上所述的汽车仪表系统用SOC控制器软件升级方法。
可以理解的是,上述对方法的说明,也同样适用于对系统的说明。
本申请还提供了一种汽车仪表系统用MCU控制器软件升级方法,所述汽车仪表系统用MCU控制器软件升级方法包括:
获取SOC控制器发送的升级标识信号;
根据升级标识信号重启后根据升级包进行升级。
在本实施例中,根据升级标识信号重启后根据所述升级包进行升级包括:
根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作:
向SOC控制器发送升级下载请求;
获取所述SOC控制器根据升级下载请求向MCU控制器发送完整升级数据;
根据完整升级数据升级BootLoader二级第一引导区内的应用程序。
在本实施例中,根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作进一步包括:
验证BootLoader二级第一引导区内的应用程序升级是否成功,若是,则MCU控制器通过所述升级包内的完整升级数据升级所述BootLoader二级第二引导区内的应用程序。
在本实施例中,所述MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
MCU控制器验证BootLoader二级第一引导区内的应用程序升级是否成功,若否,则MCU控制器进行回滚升级。
本申请还提供了一种MCU控制器,所述MCU控制器能够实现如上所述的汽车仪表系统用MCU控制器软件升级方法。
最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (31)
1.一种汽车仪表系统用软件升级方法,所述汽车仪表系统包括SOC控制器以及MCU控制器,其特征在于,所述汽车仪表系统用软件升级方法包括:
SOC控制器获取升级包;
SOC控制器生成升级标识信息并向MCU控制器传递升级标识信号;
MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级;
SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级。
2.如权利要求1所述的汽车仪表系统用软件升级方法,其特征在于,在所述SOC控制器向MCU控制器传递升级标识信号之前,所述汽车仪表系统用软件升级方法进一步包括:
SOC控制器校验获取的升级包。
3.如权利要求2所述的汽车仪表系统用软件升级方法,其特征在于,在所述SOC控制器校验获取的升级包之后,在所述SOC控制器向MCU控制器传递升级标识信号之前,所述汽车仪表系统用软件升级方法进一步包括:
根据所述升级包判断升级方式,所述升级方式包括差分升级方式以及完整升级方式;
当所述升级方式为差分升级方式时,根据所述升级包内的升级数据生成完整升级数据;
当所述升级方式为完整升级方式时,所述升级包内的数据为完整升级数据。
4.如权利要求3所述的汽车仪表系统用软件升级方法,其特征在于,所述MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级包括:
MCU控制器根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作:
MCU控制器向所述SOC控制器发送升级下载请求;
所述SOC控制器根据所述升级下载请求向所述MCU控制器发送完整升级数据;
MCU控制器接收所述完整升级数据并根据所述完整升级数据升级BootLoader二级第一引导区内的应用程序。
5.如权利要求4所述的汽车仪表系统用软件升级方法,其特征在于,所述MCU控制器根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作进一步包括:
MCU控制器验证BootLoader二级第一引导区内的应用程序升级是否成功,若是,则MCU控制器通过所述升级包内的完整升级数据升级所述BootLoader二级第二引导区内的应用程序。
6.如权利要求5所述的汽车仪表系统用软件升级方法,其特征在于,所述MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
在所述MCU控制器通过所述升级包内的完整升级数据升级所述BootLoader二级第二引导区内的应用程序后,所述MCU控制器生成MCU升级成功信号并传递给所述SOC控制器。
7.如权利要求4所述的汽车仪表系统用软件升级方法,其特征在于,所述MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
MCU控制器验证BootLoader二级第一引导区内的应用程序升级是否成功,若否,则MCU控制器进行回滚升级。
8.如权利要求7所述的汽车仪表系统用软件升级方法,其特征在于,所述MCU控制器进行回滚升级包括:
重新启动所述MCU控制器并在MCU控制器的BootLoader一级引导区进行如下操作:
MCU控制器向所述SOC控制器发送原始版本数据下载请求;
所述SOC控制器根据所述原始版本数据下载请求向所述MCU控制器发送原始数据包;
MCU控制器根据所述原始数据包对所述BootLoader二级第二引导区进行回滚升级。
9.如权利要求3所述的汽车仪表系统用软件升级方法,其特征在于,所述SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级包括:
SOC控制器根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作:
SOC控制器根据所述完整升级数据升级所述SOC控制器的BootLoader第二分区内的应用程序。
10.如权利要求9所述的汽车仪表系统用软件升级方法,其特征在于,所述SOC控制器根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作进一步包括:
SOC控制器验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若是,则SOC控制器进入BootLoader第二分区下进行如下操作:
通过所述完整升级数据升级所述BootLoader第一分区内的应用程序。
11.如权利要求10所述的汽车仪表系统用软件升级方法,其特征在于,所述SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
在所述SOC控制器接收所述完整升级数据并根据所述完整升级数据升级所述SOC控制器的BootLoader第一分区内的应用程序后,所述SOC控制器生成SOC升级成功信号。
12.如权利要求11所述的汽车仪表系统用软件升级方法,其特征在于,所述SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
SOC控制器验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若否,则SOC控制器进行回滚升级。
13.如权利要求12所述的汽车仪表系统用软件升级方法,其特征在于,所述SOC控制器进行回滚升级包括:
重新启动所述SOC控制器并在SOC控制器的BootLoader第一分区下进行如下操作:
SOC控制器获取存储的原始数据包;
SOC控制器根据所述原始数据包对所述BootLoader第二分区进行回滚升级。
14.如权利要求2至13中任意一项所述的汽车仪表系统用软件升级方法,其特征在于,所述SOC控制器校验获取的升级包包括:
校验所述升级包内的数字证书;
校验所述升级包内的升级信息;
校验所述升级包内的升级数据包。
15.如权利要求14所述的汽车仪表系统用软件升级方法,其特征在于,所述校验所述升级包内的数字证书包括:
对所述升级包进行解密;
验证所述升级包内的数字证书并获取升级信息签名的公钥;
获取所述SOC控制器的EMMC中存在的签名;
将升级信息签名的公钥与EMMC中存在的签名进行比对,如果校验成功,则校验所述升级包内的升级信息。
16.如权利要求15所述的汽车仪表系统用软件升级方法,其特征在于,所述校验所述升级包内的升级信息包括:
利用所述公钥对升级包内的升级信息解密从而获取第一摘要;
对升级信息进行哈希运算从而获取第二摘要;
判断所述第一摘要的值与所述第二摘要的值是否相同,若相同,则比较所述第一摘要的项目类型与所述第二摘要的项目类型是否相同,若相同,则校验所述升级包内的升级数据包。
17.如权利要求16所述的汽车仪表系统用软件升级方法,其特征在于,所述校验所述升级包内的升级数据包包括:
获取升级信息中的升级数据包摘要;
对所述升级数据进行哈希运算从而获得第三摘要;
比较所述升级数据包摘要的值与所述第三摘要的值是否相同,若相同,则完成校验。
18.如权利要求1至13、15至17中任意一项所述的汽车仪表系统用软件升级方法,其特征在于,所述SOC控制器获取升级包包括:
所述SOC控制器自SD卡、U盘以及网络中的一个中获取升级包。
19.一种汽车仪表系统,其特征在于,所述汽车仪表系统包括SOC控制器以及MCU控制器,其中,
SOC控制器获取升级包;
SOC控制器生成升级标识信息并向MCU控制器传递升级标识信号;
MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级;
SOC控制器根据所述升级标识信号重启后根据所述升级包进行升级。
20.一种汽车仪表系统用SOC控制器软件升级方法,其特征在于,所述汽车仪表系统用SOC控制器软件升级方法包括:
获取升级包;
生成升级标识信息并向MCU控制器传递升级标识信号;
根据所述升级标识信号重启后根据所述升级包进行升级。
21.如权利要求20所述的汽车仪表系统用SOC控制器软件升级方法,其特征在于,在所述生成升级标识信息并向MCU控制器传递升级标识信号之前,所述汽车仪表系统用SOC控制器软件升级方法进一步包括:
校验获取的升级包。
22.如权利要求21所述的汽车仪表系统用SOC控制器软件升级方法,其特征在于,所述根据所述升级标识信号重启后根据所述升级包进行升级包括:
根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作:
根据所述完整升级数据升级所述SOC控制器的BootLoader第二分区内的应用程序。
23.如权利要求22所述的汽车仪表系统用SOC控制器软件升级方法,其特征在于,所述根据所述升级标识信号重启并在SOC控制器的BootLoader第一分区下进行如下操作进一步包括:
验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若是,则SOC控制器进入BootLoader第二分区下进行如下操作:
通过所述完整升级数据升级所述BootLoader第一分区内的应用程序。
24.如权利要求23所述的汽车仪表系统用SOC控制器软件升级方法,其特征在于,所述根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
验证SOC控制器的BootLoader第二分区内的应用程序升级是否成功,若否,则SOC控制器进行回滚升级。
25.如权利要求21至24所述的汽车仪表系统用SOC控制器软件升级方法,其特征在于,所述校验获取的升级包包括:
校验所述升级包内的数字证书;
校验所述升级包内的升级信息;
校验所述升级包内的升级数据包。
26.一种SOC控制器,其特征在于,所述SOC控制器能够实现如权利要求20至25中任意一项所述的汽车仪表系统用SOC控制器软件升级方法。
27.一种汽车仪表系统用MCU控制器软件升级方法,其特征在于,所述汽车仪表系统用MCU控制器软件升级方法包括:
获取SOC控制器发送的升级标识信号;
根据所述升级标识信号重启后根据所述升级包进行升级。
28.如权利要求27所述的汽车仪表系统用MCU控制器软件升级方法,其特征在于,所述根据所述升级标识信号重启后根据所述升级包进行升级包括:
根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作:
向所述SOC控制器发送升级下载请求;
获取所述SOC控制器根据所述升级下载请求向所述MCU控制器发送完整升级数据;
根据所述完整升级数据升级BootLoader二级第一引导区内的应用程序。
29.如权利要求28所述的汽车仪表系统用MCU控制器软件升级方法,其特征在于,所述根据所述升级标识信号重启并自MCU控制器的BootLoader一级引导区下进行如下操作进一步包括:
验证BootLoader二级第一引导区内的应用程序升级是否成功,若是,则MCU控制器通过所述升级包内的完整升级数据升级所述BootLoader二级第二引导区内的应用程序。
30.如权利要求28所述的汽车仪表系统用MCU控制器软件升级方法,其特征在于,所述MCU控制器根据所述升级标识信号重启后根据所述升级包进行升级进一步包括:
MCU控制器验证BootLoader二级第一引导区内的应用程序升级是否成功,若否,则MCU控制器进行回滚升级。
31.一种MCU控制器,其特征在于,所述MCU控制器能够实现如权利要求27至30中任意一项所述的汽车仪表系统用MCU控制器软件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111140511.XA CN113900685A (zh) | 2021-09-28 | 2021-09-28 | 汽车仪表系统用软件升级方法及汽车仪表系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111140511.XA CN113900685A (zh) | 2021-09-28 | 2021-09-28 | 汽车仪表系统用软件升级方法及汽车仪表系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113900685A true CN113900685A (zh) | 2022-01-07 |
Family
ID=79029818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111140511.XA Pending CN113900685A (zh) | 2021-09-28 | 2021-09-28 | 汽车仪表系统用软件升级方法及汽车仪表系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113900685A (zh) |
-
2021
- 2021-09-28 CN CN202111140511.XA patent/CN113900685A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10225426B2 (en) | Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium | |
US10157050B2 (en) | Method for confirming correction program and information processing apparatus | |
CN107809324B (zh) | 一种车载自动诊断系统设备及其升级方法 | |
JP2020142565A (ja) | 車載更新装置、更新処理プログラム及び、プログラムの更新方法 | |
CN114780127A (zh) | 嵌入式设备固件更新方法、嵌入式设备、开发端设备 | |
CN101009888B (zh) | 安全启动方法及用于该方法的移动终端 | |
CN112099855B (zh) | 一种信息处理方法、电子设备和计算机存储介质 | |
CN113360914A (zh) | 一种bios更新的方法、系统、设备及介质 | |
CN116133011A (zh) | 车载系统的升级方法、系统及装置 | |
JP7484791B2 (ja) | Otaマスタ、更新制御方法、及び更新制御プログラム | |
US20220300292A1 (en) | Information processing apparatus and non-transitory computer readable medium storing information processing program | |
WO2016146032A1 (zh) | 电缆调制解调器安全方法及系统 | |
CN115244534A (zh) | 信息处理装置及程序启动方法 | |
US11520891B1 (en) | Secure boot of an integrated circuit | |
CN113900685A (zh) | 汽车仪表系统用软件升级方法及汽车仪表系统 | |
KR102680666B1 (ko) | 차량 보안 시동 방법, 장치, 전자 제어 유닛 및 저장 매체 | |
CN116610340A (zh) | 车辆软件的更新方法、装置、车辆及存储介质 | |
CN115982710A (zh) | 一种基于以太网ota安全升级方法 | |
KR102386614B1 (ko) | IoT 디바이스 펌웨어 업데이트 시스템, IoT 디바이스 펌웨어 업데이트 방법, 및 IoT 디바이스 부팅방법 | |
CN114144759A (zh) | 用于更新车辆的车载计算机的软件的更新方法和更新装置,所述车载计算机包括执行存储器、备份存储器和检查存储器 | |
CN112764787A (zh) | 一种基于UDS的安全升级Bootloader设计方法 | |
US20240311247A1 (en) | Electronic control unit and storage medium storing software redundancy establishing program | |
WO2023246594A1 (zh) | 终端、操作系统切换方法、存储介质 | |
CN117972712A (zh) | 固件更新方法、装置、计算机设备和计算机存储介质 | |
CN118444955A (zh) | 一种车载设备安全升级方法、装置、电子设备和存储介质 |
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 |