一种车载联网终端软件升级方法与流程

    专利2022-07-08  107


    本发明涉及技术领域,具体为一种车载联网终端软件升级方法。



    背景技术:

    近年来,随着车载联网的快速发展,同时国家大力发展智能网联汽车等新兴技术领域,给车载控制器无线升级带来了技术基础。而车载联网终端技术的快速发展,使得无线升级(ota)成为可能。

    现有技术主要通过基于can总线的有线升级的方法实现车载控制器软件的升级,需要指定的场合才能完成该流程,一般在4s店,或者设备供应商上门通过pc有线方式进行软件升级,给设备用户的使用带来极大不便,同时也增加了生产商的后期维护成本。而本发明提出一种无线升级方法,实现车载联网终端软件的远程无线升级,以解决上述缺点。同时方案也保留了基于can总线的有线升级方式,以适应更多的应用场景。



    技术实现要素:

    本发明的目的在于提供一种车载联网终端软件升级方法,以解决上述背景技术中提出的问题。

    为实现上述目的,本发明提供如下技术方案:

    一种车载联网终端软件升级方法,车载联网终端与远端控制平台进行无线通讯,由车载联网终端与远端控制平台进行数据交互,实现车载联网终端中软件升级:包括以下步骤:

    (1)、远端控制平台计算当前软件版本信息,基于计算结果向车载联网终端发送升级通知消息;

    (2)、车载联网终端接收升级通知消息后,与远端控制平台进行合法性验证;

    (3)、车载联网终端合法性验证通过后,由远端控制平台向车载联网终端发送软件差分包下载网址、软件md5校验码,其中软件md5校验码包括加密的软件差分包校验码、最新版软件明文的完整性校验码两个校验码;

    (4)、车载联网终端在完整接收控制平台反馈的数据后,同时在手机客户端提示用户有新版本的软件可以进行升级,用户可以根据实际情况选择软件升级何时开始,若用户选择暂不更新,每隔一段时间提示用户确认软件更新;

    (5)、在步骤(4)中用户选择确定软件更新后,车载联网终端通过https协议访问软件差分包下载网址,下载获取加密的软件差分包,在加密的软件差分包下载完成后,利用车载联网终端预设的文件完整性校验程序开始读取加密的软件差分包,并将其按照64字节大小分成n个数据分组,并从第一个数据分组开始使用md5算法依次叠加计算完所有n个数据分组的md5校验和,从而得到加密的软件差分包的md5值;车载联网终端将该md5值与从远端控制平台上获得的加密软件差分包md5校验码进行比对,若比对结果为匹配成功,则判定下载的软件差分包通过完整性校验;否则,判定不通过;在校验通过后,车载联网终端置位升级标志,保存升级所需的数据存储于外置存储器中,并启用看门狗程序,复位系统,结束应用程序的运行,使系统重新启动,开始运行引导加载程序(bootloader);

    (6)、在系统重新启动后,车载联网终端运行引导加载程序(bootloader),首先对步骤(5)中下载并已经通过一次软件完整性校验的加密软件差分包,再一次进行软件完整性校验,在该加密软件差分包通过完整性校验后,使用解密算法,将处于加密状态的软件差分包解密为明文差分包;之后使用差分还原算法,将明文差分包和旧版本的软件作为差分还原算法的输入参数进行计算,由此还原得到最新版本的软件;

    (7)、车载联网终端采用软件完整性校验程序对步骤(6)还原得到的最新版本的软件进行计算,得到最新版本软件的md5值,并由车载联网终端将计算得到的最新版本软件的md5值,与从远端控制平台获得最新版软件的md5校验码进行比对,若比对结果为匹配,则判定通过差分还原算法得到的最新版本的软件通过软件完整性校验,否则,判定不通过;

    (8)、在步骤(7)中得到的最新版软件通过软件完整性校验后,车载联网终端中的引导加载程序(bootloader)通过内存数据擦除操作,擦除内存中应用程序区的旧版本软件,之后使用内存数据写入操作将最新版本的软件写入应用程序区,若写入成功,则清除系统软件升级的标识,跳转到应用程序区的起始位置,转而开始运行新版本应用程序,结束引导加载程序(bootloader)的运行,完成车载联网终端软件的升级,同时车载联网终端通过订阅的mqtts协议主题,告知远端控制平台升级成功;若写入出错,则将存储于外置存储器中的旧版本软件写入内存中的应用程序区,重新运行旧版本软件,并上报远端控制平台,在合适的条件下,重新进行软件的升级。

    所述的一种车载联网终端软件升级方法,步骤(1)中,远端控制平台计算自身最新存储的当前软件的版本号,并与原有的软件版本号进行比较,若自身最新存储的当前软件的版本号大于原有的软件版本号,则判断存在新版本的软件,此时由远端控制平台向车载联网终端发送升级通知消息。

    所述的一种车载联网终端软件升级方法,步骤(1)中,车载联网终端通过mqtts协议订阅该型号设备软件升级远程控制平台的升级主题,在远程控制平台有新版本软件发布时,将会向订阅该主题的车载联网终端发送需要升级的消息。

    所述的一种车载联网终端软件升级方法,步骤(2)中合法性验证过程为:车载联网终端接收升级通知消息后,向远端控制平台发送车载联网终端的id号;远端控制平台预存所有合法的车载联网终端的id号,并将接收到的车载联网终端的id号与预存的所有id号进行匹配,若匹配通过,则远端控制平台判断车载联网终端为合法的,完成车载联网终端的合法性验证;远端控制平台认证通过后,将向车载联网终端发送成功认证的标识。

    所述的一种车载联网终端软件升级方法,步骤(2)中,车载联网终端基于https协议的psot方式向远端控制平台发送id号。

    所述的一种车载联网终端软件升级方法,步骤(3)中,车载联网终端合法性验证通过后,首先向远端控制平台发送车载联网终端当前软件的版本号;远端控制平台将接收的车载联网终端当前运行的软件版本号,与远端控制平台中的最新软件版本号进行比对,若车载联网终端当前软件的版本号小于远端控制平台中最新软件版本号,由远端控制平台向车载联网终端发送软件差分包下载网址、软件md5校验码,其中软件md5校验码包括软件差分包校验码、最新版软件的明文校验码两个校验码。

    所述的一种车载联网终端软件升级方法,步骤(5)中,车载联网终端在下载差分包时,首先根据远端控制平台下发的差分包文件的大小将整包按照定长将其分成多组数据包进行下载,每下载一个分组的软件差分包后,由车载联网终端对该分组进行编号并记录,若出现下载中断,则在重新下载时根据编号确定下载中断点,并从下载中断点处继续下载。

    所述的一种车载联网终端软件升级方法,步骤(6)中,车载联网终端采用差分还原算法,将软件差分包和旧版本的软件作为差分还原算法的输入参数进行计算,由此还原得到最新版本的软件。

    一种车载联网终端软件升级方法,所述车载联网终端与pc上位机通过can通讯总线进行通讯,由车载联网终端与pc上位机进行数据交互,实现车载联网终端中软件的升级:过程如下:

    pc上位机对车载联网终端进行合法性验证,若验证通过,则由pc上位机向车载联网终端发送加密差分包、软件差分包md5校验码和最新版软件md5校验码;

    车载联网终端接收完数据后,对接收到的加密差分包使用软件完整性校验算法计算其md5值,并与pc上位机发送的加密软件差分包md5校验码进行比对,若比对匹配成功,则判定加密差分包通过完整性验证,否则,判定不通过;

    然后车载联网终端使用解密算法,将加密差分包解密为不加密的差分包,接着使用差分还原算法,利用解密后的差分包和旧版本的软件进行还原处理,得到最新版的软件;

    最后,由车载联网终端使用软件完整性校验算法计算出最新版软件的md5值,与从pc上位机接收到的最新版软件md5校验码进行比对,若比对匹配成功,则车载联网终端使用内存数据擦除操作,将旧版本的软件擦除掉,之后使用内存数据写入操作将最新版本的软件写入到应用程序内存区,若写入成功,则运行最新版本的软件,完成车载联网终端软件的升级,若写入出错,则将存储于外置存储器中的旧版本软件重新写入车载网联终端内存应用程序区,并上报pc上位机,重新进行软件的升级。

    与现有技术相比,本发明的有益效果是:

    本发明提出一种车载联网终端软件升级方法,可实现车载联网终端软件的远程无线升级,克服有线升级时给用户以及生厂商带来的不变等问题。本发明具备完整的认证和校验机制,能确保软件升级的正确性和安全性,同时具备完善的异常处理机制,可实现断点续传和软件版本的恢复。本发明采用先进的差分算法,生成的软件差分包,可以大大降低网络流量的消耗,以及网络传输的时间。同时,本发明也具有基于can通讯总线的有线升级功能,能够适应更多的应用场景。

    附图说明

    图1为本发明无线升级过程流程框图;

    图2为本发明有线升级过程流程框图;

    具体实施方式

    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

    在本发明的描述中,需要说明的是,术语“竖直”、“上”、“下”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

    在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

    请参阅图1-2,本发明提供一种技术方案:如图1所示,一种车载联网终端软件升级方法,车载联网终端与远端控制平台进行无线通讯,由车载联网终端与远端控制平台进行数据交互,实现车载联网终端中软件升级,包括以下步骤:

    (1)、远端控制平台计算当前软件版本信息,基于计算结果向车载联网终端发送升级通知消息。

    远端控制平台计算自身最新存储的当前软件的版本号,并与原有的软件版本号进行比较,若自身最新存储的当前软件的版本号大于原有的软件版本号,则判定存在新版本的软件,此时由远端控制平台向车载联网终端发送升级通知消息。

    车载联网终端通过mqtts协议订阅该型号设备软件升级远程控制平台的升级主题,在远程控制平台有新版本软件发布时,将会向订阅该主题的车载联网终端发送需要升级的消息。

    (2)、车载联网终端接收升级通知消息后,与远端控制平台进行合法性验证,合法性验证过程为:车载联网终端接收升级通知消息后,向远端控制平台发送车载联网终端的id号;远端控制平台预存所有合法的车载联网终端的id号,并将接收到的车载联网终端的id号与预存的所有id号进行匹配,若匹配通过,则远端控制平台判断车载联网终端为合法的,完成车载联网终端的合法性验证。远端控制平台认证通过后,将向车载联网终端发送成功认证的标识。

    (3)、车载联网终端合法性验证通过后,首先向远端控制平台发送车载联网终端当前软件的版本号;远端控制平台将接收的车载联网终端当前运行的软件版本号,与远端控制平台中的最新软件版本号进行比对,若车载联网终端当前软件的版本号小于远端控制平台中最新软件版本号,由远端控制平台向车载联网终端发送软件差分包下载网址、软件md5校验码,其中软件md5校验码包括加密软件差分包校验码、最新版软件的明文校验码。

    (4)、车载联网终端在完整接收控制平台反馈的数据后,同时在手机客户端提示用户有新版本的软件可以进行升级,用户可以根据实际情况选择软件升级何时开始。

    (5)、在用户选择开始软件更新后,将激活软件中的联网下载任务,访问软件差分包下载网址,由车载联网终端通过https协议的get方式,完成加密软件差分包的下载。车载联网终端在下载差分包时,首先根据远端控制平台下发的差分包文件的大小将整包按照定长将其分成多组数据包进行下载,每下载一个分组的软件差分包后,由车载联网终端对该分组进行编号并记录,若出现下载中断,则在重新下载时根据编号确定下载中断点,并从下载中断点处继续下载。

    在加密的软件差分包下载完成后,利用车载联网终端预设的文件完整性校验程序开始读取加密的软件差分包,并将其按照64字节大小分成n个数据分组,并从第一个数据分组开始使用md5算法依次叠加计算完所有n个数据分组的md5校验和,从而得到加密的软件差分包的md5值。车载联网终端将该md5值与从远端控制平台上获得的加密软件差分包md5校验码进行比对,若比对结果为匹配成功,则判定下载的软件差分包通过完整性校验。在校验通过后,车载联网终端置位升级标志,保存升级所需的数据于外置存储器中,并启用看门狗程序,复位系统,结束应用程序的运行,使系统重新启动;开始运行引导加载程序(bootloader);

    (6)、在系统重新启动后,车载联网终端运行引导加载程序(bootloader),首先对步骤(5)中下载并已经通过一次软件完整性校验的加密软件差分包,再一次进行软件完整性校验,在该加密软件差分包通过完整性校验后,使用解密算法,将处于加密状态的软件差分包解密为明文差分包。车载联网终端采用差分还原算法,将明文差分包和旧版本的软件作为差分还原算法的输入参数进行计算,由此还原得到最新版本的软件。

    (7)、车载联网终端使用文件完整性校验程序对步骤(6)还原得到的最新版本的软件进行读取,将其按照64字节大小分成n个数据分组,并从第一个数据分组开始使用md5算法依次叠加计算完所有n个数据分组的md5校验和,从而得到最新版软件的md5值。车载联网终端并与步骤(3)中获得的最新版软件md5校验码进行比对,若比对匹配成功,则判定还原的最新版本的软件通过完整性校验。否则,判定不通过。

    (8)、在步骤(7)中的到的最新版软件通过软件完整性校验后,则车载联网终端中的引导加载程序(bootloader)通过内存数据擦除操作,擦除内存中应用程序区的旧版本软件,之后使用内存数据写入操作将最新版本的软件写入应用程序区,若写入成功,则清除系统软件升级的标识,跳转到应用程序区的起始位置,转而开始运行新版本应用程序,结束引导加载程序(bootloader)的运行,完成车载联网终端软件的升级,同时车载联网终端通过订阅的mqtts协议主题,告知远端控制平台升级成功。若写入出错,则将存储于外置存储器中的旧版本软件写入内存中的应用程序区,重新运行旧版本软件,并上报远端控制平台,在合适的条件下,重新进行软件的升级。

    如图2所示,一种车载联网终端软件升级方法,所述车载联网终端与pc上位机通过can通讯总线进行通讯,由车载联网终端与pc上位机进行数据交互,实现车载联网终端中软件的升级:过程如下:

    pc上位机对车载联网终端进行合法性验证,若验证通过,则由pc上位机向车载联网终端发送加密差分包、软件差分包md5校验码和最新版软件md5校验码;

    车载联网终端接收完数据后,对接收到的加密差分包使用软件完整性校验算法计算其md5值,并与pc上位机发送的加密软件差分包md5校验码进行比对,若比对匹配成功,则判定加密差分包通过完整性验证,否则,判定不通过;

    然后车载联网终端使用解密算法,将加密差分包解密为不加密的差分包,接着使用差分还原算法,利用解密后的差分包和旧版本的软件进行还原处理,得到最新版的软件;

    最后,由车载联网终端使用软件完整性校验算法计算出最新版软件的md5值,与从pc上位机接收到的最新版软件md5校验码进行比对,若比对匹配成功,则车载联网终端使用内存数据擦除操作,将旧版本的软件擦除掉,之后使用内存数据写入操作将最新版本的软件写入到应用程序内存区,若写入成功,则运行最新版本的软件,完成车载联网终端软件的升级,若写入出错,则将存储于外置存储器中的旧版本软件重新写入车载网联终端内存应用程序区,并上报pc上位机,重新进行软件的升级。

    尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。


    技术特征:

    1.一种车载联网终端软件升级方法,车载联网终端与远端控制平台进行无线通讯,由车载联网终端与远端控制平台进行数据交互,实现车载联网终端中软件升级,其特征在于:包括以下步骤:

    (1)、远端控制平台计算当前软件版本信息,基于计算结果向车载联网终端发送升级通知消息;

    (2)、车载联网终端接收升级通知消息后,与远端控制平台进行合法性验证;

    (3)、车载联网终端合法性验证通过后,由远端控制平台向车载联网终端发送软件差分包下载网址、软件md5校验码,其中软件md5校验码包括加密的软件差分包校验码、最新版软件明文的完整性校验码两个校验码;

    (4)、车载联网终端在完整接收控制平台反馈的数据后,同时在手机客户端提示用户有新版本的软件可以进行升级,用户可以根据实际情况选择软件升级何时开始,若用户选择暂不更新,每隔一段时间提示用户确认软件更新;

    (5)、在步骤(4)中用户选择确定软件更新后,将激活软件中的联网下载任务,车载联网终端通过https协议访问软件差分包下载网址,下载获取加密的软件差分包,在加密的软件差分包下载完成后,利用车载联网终端预设的文件完整性校验程序开始读取加密的软件差分包,并将其按照64字节大小分成n个数据分组,并从第一个数据分组开始使用md5算法依次叠加计算完所有n个数据分组的md5校验和,从而得到加密的软件差分包的md5值;车载联网终端将该md5值与从远端控制平台上获得的加密软件差分包md5校验码进行比对,若比对结果为匹配成功,则判定下载的软件差分包通过完整性校验;否则,判定不通过;在校验通过后,车载联网终端置位升级标志,保存升级所需的数据存储于外置存储器中,并启用看门狗程序,复位系统,结束应用程序的运行,使系统重新启动,开始运行引导加载程序(bootloader);

    (6)、在系统重新启动后,车载联网终端运行引导加载程序(bootloader),首先对步骤(5)中下载并已经通过一次软件完整性校验的加密软件差分包再一次进行软件完整性校验,在该加密软件差分包通过完整性校验后,使用解密算法,将处于加密状态的软件差分包解密为明文差分包;之后使用差分还原算法,将明文差分包和旧版本的软件作为差分还原算法的输入参数进行计算,由此还原得到最新版本的软件;

    (7)、车载联网终端采用软件完整性校验程序对步骤(6)还原得到的最新版本的软件进行计算,得到最新版本软件的md5值,并由车载联网终端将计算得到的最新版本软件的md5值,与从远端控制平台获得最新版软件的md5校验码进行比对,若比对结果为匹配,则判定通过差分还原算法得到的最新版本的软件通过软件完整性校验;否则,判定不通过;

    (8)、在步骤(7)中得到的最新版软件通过软件完整性校验后,车载联网终端中的引导加载程序(bootloader)通过内存数据擦除操作,擦除内存中应用程序区的旧版本软件,之后使用内存数据写入操作将最新版本的软件写入应用程序区,若写入成功,则清除系统软件升级的标识,跳转到应用程序区的起始位置,转而开始运行新版本应用程序,结束引导加载程序(bootloader)的运行,完成车载联网终端软件的升级,同时车载联网终端通过订阅的mqtts协议主题,告知远端控制平台升级成功,若写入出错,则将存储于外置存储器中的旧版本软件写入内存中的应用程序区,重新运行旧版本软件,并上报远端控制平台,在合适的条件下,重新进行软件的升级。

    2.根据权利要求1所述的一种车载联网终端软件升级方法,其特征在于:步骤(1)中,远端控制平台计算自身最新存储的当前软件的版本号,并与原有的软件版本号进行比较,若自身最新存储的当前软件的版本号大于原有的软件版本号,则判断存在新版本的软件,此时由远端控制平台向车载联网终端发送升级通知消息。

    3.根据权利要求1或2所述的一种车载联网终端软件升级方法,其特征在于:步骤(1)中,车载联网终端通过mqtts协议订阅该型号设备软件升级远程控制平台的升级主题,在远程控制平台有新版本软件发布时,将会向订阅该主题的车载联网终端发送需要升级的消息。

    4.根据权利要求1所述的一种车载联网终端软件升级方法,其特征在于:步骤(2)中合法性验证过程为:车载联网终端接收升级通知消息后,向远端控制平台发送车载联网终端的id号;远端控制平台预存所有合法的车载联网终端的id号,并将接收到的车载联网终端的id号与预存的所有id号进行匹配,若匹配通过,则远端控制平台判断车载联网终端为合法的,完成车载联网终端的合法性验证;远端控制平台认证通过后,将向车载联网终端发送成功认证的标识。

    5.根据权利要求1所述的一种车载联网终端软件升级方法,其特征在于:步骤(2)中,车载联网终端基于https协议的psot方式向远端控制平台发送id号。

    6.根据权利要求1所述的一种车载联网终端软件升级方法,其特征在于:步骤(3)中,车载联网终端合法性验证通过后,首先向远端控制平台发送车载联网终端当前软件的版本号;远端控制平台将接收的车载联网终端当前运行的软件版本号,与远端控制平台中的最新软件版本号进行比对,若车载联网终端当前软件的版本号小于远端控制平台中最新软件版本号,由远端控制平台向车载联网终端发送软件差分包下载网址、软件md5校验码,其中软件md5校验码包括加密软件差分包校验码、最新版软件的明文校验码两个校验码。

    7.根据权利要求1所述的一种车载联网终端软件升级方法,其特征在于:步骤(5)中,车载联网终端在下载差分包时,首先根据远端控制平台下发的差分包文件的大小将整包按照定长将其分成多组数据包进行下载,每下载一个分组的软件差分包后,由车载联网终端对该分组进行编号并记录,若出现下载中断,则在重新下载时根据编号确定下载中断点,并从下载中断点处继续下载。

    8.根据权利要求1所述的一种车载联网终端软件升级方法,其特征在于:步骤(6)中,车载联网终端采用差分还原算法,将软件差分包和旧版本的软件作为差分还原算法的输入参数进行计算,由此还原得到最新版本的软件。

    9.一种车载联网终端软件升级方法,所述车载联网终端与pc上位机通过can通讯总线进行通讯,由车载联网终端与pc上位机进行数据交互,实现车载联网终端中软件的升级,其特征在于:过程如下:

    pc上位机对车载联网终端进行合法性验证,若验证通过,则由pc上位机向车载联网终端发送加密差分包、软件差分包md5校验码和最新版软件md5校验码;

    车载联网终端接收完数据后,对接收到的加密差分包使用软件完整性校验算法计算其md5值,并与pc上位机发送的加密软件差分包md5校验码进行比对,若比对匹配成功,则判定加密差分包通过完整性验证,否则,判定不通过;

    然后车载联网终端使用解密算法,将加密差分包解密为不加密的差分包,接着使用差分还原算法,利用解密后的差分包和旧版本的软件进行还原处理,得到最新版的软件;

    最后,由车载联网终端使用软件完整性校验算法计算出最新版软件的md5值,与从pc上位机接收到的最新版软件md5校验码进行比对,若比对匹配成功,则车载联网终端使用内存数据擦除操作,将旧版本的软件擦除掉,之后使用内存数据写入操作将最新版本的软件写入到应用程序内存区,若写入成功,则运行最新版本的软件,完成车载联网终端软件的升级,若写入出错,则将存储于外置存储器中的旧版本软件重新写入车载网联终端内存应用程序区,并上报pc上位机,重新进行软件的升级。

    技术总结
    本发明具体公开了一种车载联网终端软件升级方法,包括以下步骤:(1)、远端控制平台向车载联网终端发送升级通知消息;(2)、合法性验证;(3)、远端控制平台向车载联网终端发送加密软件差分包下载网址、最新版软件MD5校验码;(4)、车载联网终端手机客户端提示用户软件升级;(5)、车载联网终端获取加密软件差分包,完成加密软件差分包完整性验证;(6)、车载联网终端解密软件差分包,并使用解密后的差分包及旧版本软件通过还原算法得到最新版本的软件;(7)、车载联网终端完成最新版本的软件完整性和准确性验证;(8)、车载联网终端写入最新版本的软件后,完成软件的升级。本发明克服了传统上车载控制器有线升级时,必须到指定地点,给用户以及生产厂商带来的不便等问题。

    技术研发人员:方菱;武恪
    受保护的技术使用者:中国科学院合肥物质科学研究院
    技术研发日:2020.12.01
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23251.html

    最新回复(0)