掌桥专利:专业的专利平台
掌桥专利
首页

一种仪表软件升级方法

文献发布时间:2023-06-19 18:37:28


一种仪表软件升级方法

技术领域

本发明涉及软件升级技术领域,具体涉及一种仪表软件升级方法。

背景技术

目前技术的发展日新月异,用户对仪表系统的显示的要求越来越高。在车辆出厂之前,汽车仪表的软件以固化的形式在存储芯片之中,在拆装仪表之前是无法对存储芯片内的数据进行更新的。因此在已售车型上对软件进行更新是一件十分困难的事情,需要将车辆进行召回,经过层层运转到工厂拆机后再进行刷写或者更换。目前的环境下需要一个操作简单,只需用户前往指定点即可完成软件上的更新。然而在这种更新方式存在很多不安全的因素,而且当前环境下部分正在使用的升级系统的数据传输方式采用明文传输,被截获的数据包可以被第三方修改后仍可使用,或则升级包被第三方破解或误修改后的损坏导致升级失败或异常。

发明内容

本发明针对现有技术中存在的技术问题,提供一种仪表软件升级方法,能够安全的对仪表内存储芯片数据进行更新。

本发明解决上述技术问题的技术方案如下:一种仪表软件升级方法,所述仪表的控制芯片为双核心架构芯片,所述双核心架构芯片包括第一核心和第二核心,第一核心通过第二核心与外部进行通信,该方法包括:

升级工具获取新版本软件的烧写镜像,并对烧写镜像数据进行处理得到升级包文件;

第二核心与升级工具建立通讯连接,并接收所述升级包文件;所述第二核心包括第一缓冲区和第二缓冲区,第二核心将接收的升级包文件先存入所述第一缓冲区内,当第一缓冲区满时,则将第一缓冲区内的数据转存到第二缓冲区内,同时请求第一核心接收存入第二缓冲区的数据;

第一核心包括第三缓冲区、第四缓冲区和第五缓冲区,第一核心收到第二核心发送的数据接收请求后,接收第二缓冲区内存储的数据存入第三缓冲区;当第三缓冲区数据满时,则将数据拷贝到第四缓冲区内,第四缓冲区的大小为升级包分段大小,第四缓冲区满时对数据进行校验,数据经过校验后存入第五缓冲区,第五缓冲区在完整数据包存入后对数据包进行二次校验,校验完成后,第一核心执行升级任务,对仪表软件进行升级。

进一步的,所述第一缓冲区设置在第二核心的内存中,第二缓冲区设置在第一核心与第二核心的共享内存中,所述第三缓冲区与第四缓冲区设置在第一核心的内存中,所述第五缓冲区设置在存储设备中。

进一步的,所述第一核心收到第二核心发送的数据接收请求后,从第二缓冲区中取出通信协议中指定偏移量和指定大小的数据拷贝到第三缓冲区中。

进一步的,该方法还包括,在第一核心执行升级任务之前,仪表管理程序通过检测当前仪表事件,判断当前仪表是否属于安全的状态,若在安全状态的情况下,则允许第一核心执行升级任务否则拒绝本次升级。

进一步的,第一核心在对升级包数据进行两次校验时,任意一次校验结果异常,则中断本次升级任务。

进一步的,二次校验完成后,第一核心将数据接收完成的消息通过第二核心发送给升级工具,结束数据传输任务。

进一步的,第一核心执行升级任务,包括:

利用软件隔离的方式将存储设备划分成A/B插槽的形式,其中一个为活动插槽,另一个为非活动插槽;

将当前正在运行的插槽拷贝到非活动插槽,读取第五缓冲区中存储的完整升级包,通过升级包的文件协议获取升级包中需要升级模块的数量,并对各个模块数据依次进行解压,解压后进行数据校验,与文件协议中存储的校验码进行比较,数据无误的情况下将升级数据写入备份插槽的指定偏移量,覆盖掉旧版本数据。

进一步的,升级任务完成后,通过修改引导区域的标志位,使当前启动的插槽设置为非活动插槽,将非活动插槽设置为活动插槽。

进一步的,所述仪表的控制芯片还包括MCU核心,所述MCU负责CAN通讯,通过GTS建立和所述升级工具的通讯,接收升级工具发送的数据,对数据进行解密和校验,并通过双路SPI协议与所述第二核心进行交互。

进一步的,对烧写镜像数据进行处理得到升级包文件,包括:

根据升级包文件格式对烧写镜像数据进行异构排布,生成二进制文件;

将生成的二进制文件转换成多个S-Record格式文件;

对所述多个S-Record格式文件进行加密,得到包含多个加密后的S-Record格式文件的升级包文件。

本发明的有益效果是:1、通过本方法,无需对待升级车辆进行召回、拆机、刷写或者更换。只需用户通过有线或无线方式建立汽车仪表与升级工具间的通讯连接,即可完成软件上的更新。

2、本升级方法对数据的安全性做到每次操作关键数据后均进行了校验操作,极大程度保证了车载仪表的安全性和稳定性,进而保护了用户的财产安全。

3、升级包文件制作时,加密后生成多个S-Record格式文件,一方面提高数据安全性,另一方面生成多个文件在数据传输时可以采用断点续传等策略,提高数据传输效率。

附图说明

图1为本发明实施例提供的一种仪表软件升级方法示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,本发明实施例提供一种仪表软件升级方法,包括以下步骤:

步骤S101:软件发行商发布版本后,会向外界提供存储介质的烧写镜像,及在可选条件下的证书组。

其中镜像应该包含了汽车仪表的2D显示程序、3D显示程序、仪表管理程序、仪表性能控制程序等。

步骤S102:烧写镜像通过配置文件的形式进行内部解析、重组、压缩并打包,根据升级包文件格式对数据进行异构排布形成新的后缀名文件。该程序将会装载进自动化集成系统中,通过每次集成中产生的配置信息以及所需程序配置,进行系统级别的集中生产出所需的二进制升级包文件。将包含车载仪表的机种、升级包软件版本、更新软件版本信息、硬件版本以及集成时间等信息。

其中机种为升级包所面向的指定车型仪表;升级包软件本版本为当前所使用的升级包制作软件的版本信息,作将在仪表升级程序内部所识别;更新软件版本信息是指车载仪表的版本信息,用于在仪表升级程序内部是识别是否为可升级版本和记录升级信息等。

具体实施中,由于数据量庞大,为将传输过程耗时减少,数据将会通过LZMA(Lempel-Ziv-Markov chain-Algiorithm)压缩技术进行压缩。可将升级包的体积压缩75%。

最后将生成的二进制文件将转换成S-Record格式文件。

S-Record数据基本字符为特殊ASCII字符,用于表示相应的十六进制数据。

步骤S103:通过上一步骤的一系列处理工序后,将会根据大小产生n个S-Record格式文件。此文件组将被存档到服务器中,供记录和备案。

步骤S104:为防止升级包被三方破解或误修改后的损坏导致升级失败或异常,S-Record文件通过此工具将进行技术手段加密。产生的加密文件将通过发布的形式提交给需要升级的用户。

步骤S105、S106:当用户需要进行升级前,需要有以下准备:需要升级仪表的车辆、汽车诊断用PC、指定的升级工具(PC)、加密后的软件升级包、GTS车辆诊断工具等。当以上工具准备就绪后,通过GTS工具连接车辆OBD和PC接口,通过升级工具(PC)载入加密升级包文件组,点击Download按钮进行传输。

步骤S107:MCU负责CAN通讯,通过GTS建立和PC升级工具的通讯,接收升级工具发送的数据,对数据进行解密和校验;在车载仪表内部担任主机角色,控制与用户(PC)的交互,并将指令通过SPI协议发送给下一级芯片。

步骤S108:MCU通过双路SPI协议连接RCAR-E3芯片,与之处于安全岛内的Cotex-R7核心进行交互。

步骤S109:CR7核心在仪表内部升级系统中担任透传作业,CR7核心内建设两个缓冲区域,一号缓冲区域建设在内存,是用于存放MCU核心发送的数据,当缓冲区域数据满时,则会将数据移动到二号缓冲区域;二号缓冲区域建设在和CA53核心进行交互的共享内存,将通过内建偏移量管理存储的数据,当二号缓冲区数据满时,将发送请求到CA53核心,请求接收数据。

RCAR-E3芯片内部包含一个安全岛Cotex-R7核心和两个高性能核心Cotex-A53核心,为保证数据安全传输和传输的稳定性能,MCU的通讯将仅和CR7核心进行交互。

步骤S110:CA53核心在内部升级系统中担任执行作业,当CA53核心接收到CR7的接收数据请求时,将会从与CR7的共享内存中取出通信协议中指定偏移量和指定大小的数据拷贝到缓存之中。CA53内部建设三个缓冲区域,一号缓冲区域建设在内存(DDR),将存放CR7核心传输的数据,当一号缓冲区数据满时,将数据拷贝到二号缓冲区;二号缓冲区域同样建设在内存(DDR)中,二号缓冲区的区域大小为指定的升级包分段大小,通过持续获取一号缓冲区数据,直到接收到完整的升级包分段大小,在经过校验后,通过升级包段数据的文件协议中的偏移量和大小将有效数据存储在三号缓冲区之中;三号缓冲区域建设在存储设备中(NAND FLASH),当升级包完整数据存入后,将进行对完整的升级包进行校验,结果将通过CR7发送给MCU,代表数据传输任务结束。

步骤S111:仪表管理程序通过检测当前仪表事件,判断当前仪表是否属于安全的状态,当属于安全状态的情况下,如果有升级任务发起,则会同意升级控制程序进行下一步的操作;当仪表属于异常状态的情况下,上级发起升级任务,则会拒绝此次升级。

步骤S112:CA53核心的接收任务,接收CR7核心发送的数据,会对接收到的数据每一段进行校验,当数据合并时也会对完整的数据进行校验。如果发生异常,则会进入NG状态,中断本次升级任务。

步骤S113:CA53核心的安装任务,当数据传输任务结束之后,安装进程启动,首先将当前正在运行的插槽拷贝到备份插槽,将读取接收任务中的三号缓存即NAND FLASH中完整升级包,通过升级包的文件协议获取到升级包中需要升级模块的数量,并对各个模块数据依次进行解压,解压后进行数据校验,与文件协议中存储的校验码进行比较,数据无误的情况下将会将升级数据写入备份插槽的指定偏移量,覆盖掉旧版本数据。当所有模块均写入完成之后,将结果通过CR7发送给MCU后,由MCU通知升级工具(PC),由此升级任务完成。

NAND FLASH采用eMMC 5.0协议,通过软件隔离的方式将MMC UDA(USER DATAAREA)划分为A/B插槽的形式,各个插槽内将通过各个模块进行规划,通过数据写入的形式更新非当前启动插槽的数据,这样将不会影响当前正在运行的插槽。当升级程序运行结束后,通过修改引导区域的标志位,使当前启动的插槽设置为非活动插槽,将非活动插槽设置为活动插槽,在下次复位车载仪表时将自动切换到更新后的插槽。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

技术分类

06120115631636