车载控制器ota升级方法
技术领域
1.本发明涉及汽车软件升级技术领域,尤其涉及一种车载控制器ota(over the air,空中下载技术)升级方法。
背景技术:2.随着汽车“电动化、网联化、智能化、共享化”新四化的推进,其电子化程序也越来越高,汽车电子成本占整车成本逐步提升,新能源车比传统车明显提升很多。
[0003]“软件定义汽车”已成为汽车的发展趋势,汽车软件的复杂度也随之大增,软件故障的修复以及个性化定制需求的更新,仅通过4s升级难以给予用户最佳的体验。因此,很多车企已建立各自的ota升级平台和升级方法,通过ota平台可以对接入的车辆进行远程升级,能做到对软件缺陷的及时响应,快速修复问题。软件的缺陷不止包含功能性的bug,信息安全漏洞在网联汽车中也至关重要。
[0004]
但是,远程升级存在升级失败的概率,尤其是对于汽车上安全类的零部件控制器,由于此类控制器严格按照车规级的安全等级设计开发控制器软件,无法支持互联网产品采用的差分或者增量升级的方式进行远程升级,一旦此类控制器升级失败,会导致车辆无法正常启动和行驶。
[0005]
因此,亟需一种车载控制器ota升级方法。
技术实现要素:[0006]
本发明的目的是提供一种车载控制器ota升级方法,以解决上述现有技术中的问题,能够解决车规级零部件控制器的ota升级失败的问题,提升车载控制器ota升级的可靠性。
[0007]
本发明提供了一种车载控制器ota升级方法,包括:
[0008]
车载ota终端在从ota平台上获取到升级信息后进行升级,所述升级信息包括待升级数据和待升级的车辆信息,并向待升级控制器下发所述升级信息,并在升级失败时执行基于数据备份的第一安全策略;
[0009]
所述待升级控制器在接收到待升级信息后,执行升级流程,并在升级失败后执行基于双重冗余的第二安全策略,并将升级结果反馈到所述车载ota终端;
[0010]
所述车载ota终端将所述车载ota终端的升级结果和所述待升级控制器的升级结果上报到ota平台。
[0011]
如上所述的车载控制器ota升级方法,其中,优选的是,在升级失败时,所述车载ota终端执行基于数据备份的第一安全策略,具体包括:
[0012]
步骤s11、所述车载ota终端下发第一备份区内的升级数据;
[0013]
步骤s12、所述车载ota终端执行所述待升级数据的下发操作;
[0014]
步骤s13、判断是否下发成功,若下发成功,则执行步骤s14,若下发不成功,则执行步骤s17;
[0015]
步骤s14、确定所述车载ota终端的数据升级成功,并跳转到步骤s116;
[0016]
步骤s15、在数据升级成功后,所述车载ota终端将第一备份区的数据转移至第二备份区;
[0017]
步骤s16、将第一备份区的数据作为新版待升级程序;
[0018]
步骤s17、判断下发次数是否大于预设下发次数,若否,则执行步骤s18,若是,则执行步骤s19;
[0019]
步骤s18、返回步骤s12,执行所述待升级数据的下发操作;
[0020]
步骤s19、车载ota终端获取第二备份区内的升级数据;
[0021]
步骤s110、车载ota终端从第二备份区内获取到升级数据后,执行升级数据下发操作;
[0022]
步骤s111、判断从第二备份区内获取的升级数据是否下发成功,若是,则执行步骤s112,若否,则执行步骤s113;
[0023]
步骤s112、确定升级失败,数据恢复成功,并跳转到步骤s116;
[0024]
步骤s113、判断下发次数是否大于预设下发次数,若否,则执行步骤s114,若是,则执行步骤s115;
[0025]
步骤s114、返回步骤s110,执行升级数据下发操作;
[0026]
步骤s115、通过硬线信号复位待升级控制器,并跳转到步骤s116;
[0027]
步骤s116、升级结束,并将升级结果上报到ota平台。
[0028]
如上所述的车载控制器ota升级方法,其中,优选的是,所述步骤s115、通过硬线信号复位待升级控制器,具体包括:
[0029]
t-box终端通过硬线针脚向待升级控制器输出重启信号,以通过所述重启信号触发待升级控制器的硬件复位重启。
[0030]
如上所述的车载控制器ota升级方法,其中,优选的是,在升级失败时,所述待升级控制器执行基于双重冗余的第二安全策略,具体包括:
[0031]
步骤s21、待升级控制器进行内部存储分配;
[0032]
步骤s22、待升级控制器从车载ota终端接收待升级数据,在接收数据后,同时执行步骤s23和步骤s24;
[0033]
步骤s23、执行地址映射、内部数据备份和外部数据备份操作,然后执行步骤s25;
[0034]
步骤s24、擦除外部flash数据;
[0035]
步骤s25、依据地址映射下载数据;
[0036]
步骤s26、执行备份校验,若备份校验通过,则执行步骤s27,若备份校验不通过,则执行步骤s212;
[0037]
步骤s27、擦除内部flash数据;
[0038]
步骤s28、将备份数据搬运至app内存;
[0039]
步骤s29、执行程序有效性校验,若程序有效性校验通过,则执行步骤s210,若程序有效性校验不通过,则执行步骤s211;
[0040]
步骤s210、控制器复位,并跳转到步骤s215;
[0041]
步骤s211、判断程序有效性校验失败的次数是否大于预设有效校验次数,若否,则返回步骤s28、将备份数据搬运至app内存,若是,则执行步骤s214;
[0042]
步骤s212、判断备份校验失败的次数是否大于预设备份校验失败次数,若是,则执行步骤s214,若否,则返回步骤s22,待升级控制器从车载ota终端接收待升级数据;
[0043]
步骤s214、执行内部数据恢复,并跳转到步骤s215;
[0044]
步骤s215、升级结束。
[0045]
如上所述的车载控制器ota升级方法,其中,优选的是,所述步骤s21、待升级控制器进行内部存储分配,具体包括:
[0046]
将待升级控制器的存储空间划分为内部存储单元和外部存储单元,其中,所述内部存储单元用于对现在运行的应用程序进行备份,对旧应用程序进行存储,所述外部存储单元用于存储新下载的应用程序。
[0047]
如上所述的车载控制器ota升级方法,其中,优选的是,所述步骤s23、执行地址映射、内部数据备份和外部数据备份操作,具体包括:
[0048]
在待升级控制器接收到新的应用程序代码后,执行地址映射操作,在待升级控制器的内存中划分一块用于存储新下发程序代码的空间,并通过一一对应关系,建立划分的空间与当前应用程序之间的关联关系,以得到地址映射关系表;
[0049]
在待测控制器需要执行内部数据恢复时,执行内部数据备份操作,对待升级控制器当前的应用程序代码进行备份,从地址映射关系表中将备份的内部数据拷贝至应用程序代码空间内,并通过重启系统后将待升级控制器恢复到上一个版本;
[0050]
在下载新的应用程序后,执行外部数据备份操作,对新下载的应用程序代码进行备份,为待下载的新程序划分地址空间,并将旧程序按地址映射关系表中的映射地址进行备份。
[0051]
如上所述的车载控制器ota升级方法,其中,优选的是,所述步骤s24、擦除外部flash数据,具体包括:
[0052]
在上位机请求擦除内存储存单元的地址时,待升级控制器根据地址映射关系表,将总线上接收到的地址映射为外部存储单元中的地址,并调用外部flash的驱动函数对外部flash进行擦除。
[0053]
如上所述的车载控制器ota升级方法,其中,优选的是,所述步骤s25、依据地址映射下载数据,具体包括:
[0054]
请求下载,在请求下载的过程中,待升级控制器根据地址映射关系表,将上位机请求的内部储存单元的地址转换成外部储存单元的地址;
[0055]
数据下载,按照在请求下载过程中转化完的地址,进行数据的下载,并调用外部储存单元的接口将下载的数据存储在外部flash中。
[0056]
如上所述的车载控制器ota升级方法,其中,优选的是,所述步骤s28、将备份数据搬运至app内存,具体包括:
[0057]
步骤s281、确定是否搬运有效标志,若是,则执行步骤s282,若否,则执行步骤s286;
[0058]
步骤s282、擦除内部flash;
[0059]
步骤s283、搬运数据;
[0060]
步骤s284、执行程序有效性校验,若程序有效性校验通过,则执行步骤s285,若程序有效性校验未通过,则执行步骤s286;
[0061]
步骤s285、设置程序有效标志;
[0062]
步骤s286、复位。
[0063]
如上所述的车载控制器ota升级方法,其中,优选的是,所述步骤s29、执行程序有效性校验,具体包括:
[0064]
通过crc32算法计算接收到的每个程序分区的crc值,并且将计算的crc值与接收到的crc值进行对比,若相同则确定数据接收过程中未出现错误,程序有效性校验通过;
[0065]
在程序有效性校验通过之后,将备份区有效标志和搬运有效标志写入外部储存单元的分区中。
[0066]
本发明的车载控制器ota升级方法,通过第一安全策略和第二安全策略,可以实现升级过程的数据高效安全备份,极大提高了升级的成功率,可以提高车载控制器ota升级的可靠性和稳定性,在升级失败时车载控制器仍可以确保车辆可以正常启动和行驶,不影响车辆的使用安全性;第一安全策略在ota平台下发的时候增加备份区,将上一版升级成功的程序做了备份,若新程序下载失败,则可以通过ota平台下发使待升级控制器恢复到升级前的状态版本;第一安全策略在tbox终端增加了硬件复位待升级控制器的功能,当待升级控制器软件升级失败时,可以通过硬件重启进行复位;第二安全策略在待升级控制器中增加内外部存储数据的映射存储功能,当升级失败时,可以通过待升级控制器的软件备份,恢复到上一个状态。
附图说明
[0067]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步描述,其中:
[0068]
图1为本发明提供的车载控制器ota升级方法实施例的流程图;
[0069]
图2为本发明提供的车载控制器ota升级方法实施例的车载ota终端与待升级控制器之间的交互逻辑图;
[0070]
图3为本发明提供的车载ota终端所执行的第一安全策略的逻辑图;
[0071]
图4为本发明提供的待升级控制器所执行的第二安全策略的逻辑图;
[0072]
图5为本发明提供的待升级控制器在正常下载流程中进行备份搬运的逻辑图;
[0073]
图6为本发明提供的待升级控制器在异常结束后进行备份搬运的逻辑图。
具体实施方式
[0074]
现在将参照附图来详细描述本公开的各种示例性实施例。对示例性实施例的描述仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。本公开可以以许多不同的形式实现,不限于这里所述的实施例。提供这些实施例是为了使本公开透彻且完整,并且向本领域技术人员充分表达本公开的范围。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、材料的组分、数字表达式和数值应被解释为仅仅是示例性的,而不是作为限制。
[0075]
本公开中使用的“第一”、“第二”:以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的部分。“包括”或者“包含”等类似的词语意指在该词前的要素涵盖在该词后列举的要素,并不排除也涵盖其他要素的可能。“上”、“下”等仅用于表示相对
位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0076]
在本公开中,当描述到特定部件位于第一部件和第二部件之间时,在该特定部件与第一部件或第二部件之间可以存在居间部件,也可以不存在居间部件。当描述到特定部件连接其它部件时,该特定部件可以与所述其它部件直接连接而不具有居间部件,也可以不与所述其它部件直接连接而具有居间部件。
[0077]
本公开使用的所有术语(包括技术术语或者科学术语)与本公开所属领域的普通技术人员理解的含义相同,除非另外特别定义。还应当理解,在诸如通用字典中定义的术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
[0078]
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
[0079]
如图1和图2所示,本实施例提供的车载控制器ota升级方法在实际执行过程中,具体包括:
[0080]
步骤s1、车载ota终端在从ota平台上获取到升级信息后进行升级,所述升级信息包括待升级数据和待升级的车辆信息,并向待升级控制器下发所述升级信息,并在升级失败时执行基于数据备份的第一安全策略。
[0081]
车车载ota终端是车辆ota升级的上位机,通过移动互联网技术从企业的ota平台上获取待升级的数据以及待升级的车辆信息。如图3所示,在本发明的车载控制器ota升级方法的一种实施方式中,在升级失败时,所述车载ota终端执行基于数据备份的第一安全策略,具体包括:
[0082]
步骤s11、所述车载ota终端下发第一备份区内的升级数据。
[0083]
步骤s12、所述车载ota终端执行所述待升级数据的下发操作。
[0084]
步骤s13、判断是否下发成功,若下发成功,则执行步骤s14,若下发不成功,则执行步骤s17。
[0085]
步骤s14、确定所述车载ota终端的数据升级成功,并跳转到步骤s116。
[0086]
步骤s15、在数据升级成功后,所述车载ota终端将第一备份区的数据转移至第二备份区。
[0087]
步骤s16、将第一备份区的数据作为新版待升级程序。
[0088]
步骤s17、判断下发次数是否大于预设下发次数,若否,则执行步骤s18,若是,则执行步骤s19。
[0089]
步骤s18、返回步骤s12,执行所述待升级数据的下发操作。
[0090]
步骤s19、车载ota终端获取第二备份区内的升级数据。
[0091]
步骤s110、车载ota终端从第二备份区内获取到升级数据后,执行升级数据下发操作。
[0092]
步骤s111、判断从第二备份区内获取的升级数据是否下发成功,若是,则执行步骤s112,若否,则执行步骤s113。
[0093]
步骤s112、确定升级失败,数据恢复成功,并跳转到步骤s116。
[0094]
步骤s113、判断下发次数是否大于预设下发次数,若否,则执行步骤s114,若是,则执行步骤s115。
[0095]
步骤s114、返回步骤s110,执行升级数据下发操作。
[0096]
步骤s115、通过硬线信号复位待升级控制器,并跳转到步骤s116。
[0097]
本发明在具体实现中,步骤s115可以包括:t-box终端通过硬线针脚向待升级控制器输出重启信号,以通过所述重启信号触发待升级控制器的硬件复位重启。
[0098]
步骤s116、升级结束,并将升级结果上报到ota平台。
[0099]
在本发明中,通过第一安全策略,可以解决车载ota终端升级失败后,如何恢复待升级控制器功能的问题。通过车载ota终端执行该第一安全策略,可以有效降低升级失败的概率,提高ota平台的运行可靠性。
[0100]
步骤s2、所述待升级控制器在接收到待升级信息后,执行升级流程,并在升级失败后执行基于双重冗余的第二安全策略,并将升级结果反馈到所述车载ota终端。
[0101]
如图4所示,在本发明的车载控制器ota升级方法的一种实施方式中,在升级失败时,所述待升级控制器执行基于双重冗余的第二安全策略,具体可以包括:
[0102]
步骤s21、待升级控制器进行内部存储分配。
[0103]
具体地,将待升级控制器的存储空间划分为内部存储单元和外部存储单元,其中,所述内部存储单元用于对现在运行的应用程序进行备份,对旧应用程序进行存储,所述外部存储单元用于存储新下载的应用程序。表1和表2分别示出了内部存储单元和外部存储单元的分区结果。
[0104]
表1内部存储单元的分区结果
[0105]
序号分区名称地址范围备注inter_1boot分区0x00000000-0x0000bfff无inter_2app分区0x0000c000-0x0003ffff无inter_3netconfig分区0x00040000-0x0007fdff无inter_4app有效标志0x0007fe00-0x0007fe03无
[0106]
表2外部存储单元的分区结果
[0107]
[0108]
步骤s22、待升级控制器从车载ota终端接收待升级数据,在接收数据后,同时执行步骤s23和步骤s24。
[0109]
步骤s23、执行地址映射、内部数据备份和外部数据备份操作,然后执行步骤s25。
[0110]
在本发明的车载控制器ota升级方法的一种实施方式中,所述步骤s23具体可以包括:
[0111]
步骤s231、在待升级控制器接收到新的应用程序代码后,执行地址映射操作,在待升级控制器的内存中划分一块用于存储新下发程序代码的空间,并通过一一对应关系,建立划分的空间与当前应用程序之间的关联关系,以得到地址映射关系表。
[0112]
步骤s232、在待测控制器需要执行内部数据恢复时,执行内部数据备份操作,对待升级控制器当前的应用程序代码进行备份,从地址映射关系表中将备份的内部数据拷贝至应用程序代码空间内,并通过重启系统后将待升级控制器恢复到上一个版本。
[0113]
步骤s233、在下载新的应用程序后,执行外部数据备份操作,对新下载的应用程序代码进行备份,为待下载的新程序划分地址空间,并将旧程序按地址映射关系表中的映射地址进行备份。
[0114]
步骤s24、擦除外部flash数据。
[0115]
具体地,在上位机请求擦除内存储存单元的地址时,待升级控制器(控制器app,例如为bootload程序)根据地址映射关系表,将can总线上接收到的地址映射为外部存储单元中的地址,例如,可以将内部存储单元中的序号inter_2的地址映射为外部存储单元中的序号exti_1的地址,并调用外部flash的驱动函数对外部flash进行擦除。其中,外部flash的驱动函数作为存储器的对外接口,可以支持控制存储器执行增改查删等命令。
[0116]
步骤s25、依据地址映射下载数据。
[0117]
在本发明的车载控制器ota升级方法的一种实施方式中,所述步骤s25具体可以包括:
[0118]
步骤s251、请求下载,在请求下载的过程中,待升级控制器根据地址映射关系表,将上位机请求的内部储存单元的地址转换成外部储存单元的地址。
[0119]
步骤s252、数据下载,按照在请求下载过程中转化完的地址,进行数据的下载,并调用外部储存单元的接口将下载的数据存储在外部flash中。
[0120]
步骤s26、执行备份校验,若备份校验通过,则执行步骤s27,若备份校验不通过,则执行步骤s212。
[0121]
步骤s27、擦除内部flash数据。
[0122]
步骤s28、将备份数据搬运至app内存。
[0123]
在本发明的车载控制器ota升级方法的一种实施方式中,所述步骤s28具体可以包括:
[0124]
步骤s281、确定是否搬运有效标志,若是,则执行步骤s282,若否,则执行步骤s286。
[0125]
步骤s282、擦除内部flash。
[0126]
步骤s283、搬运数据。
[0127]
步骤s284、执行程序有效性校验,若程序有效性校验通过,则执行步骤s285,若程序有效性校验未通过,则执行步骤s286。
[0128]
步骤s285、设置程序有效标志。
[0129]
步骤s286、复位。
[0130]
图5和图6分别示出了正常下载流程中的搬运过程和异常结束后上电后的搬运过程。
[0131]
步骤s29、执行程序有效性校验,若程序有效性校验通过,则执行步骤s210,若程序有效性校验不通过,则执行步骤s211。
[0132]
在本发明的车载控制器ota升级方法的一种实施方式中,所述步骤s29具体可以包括:
[0133]
步骤s291、通过crc32算法计算接收到的每个程序分区的crc值,并且将计算的crc值与接收到的crc值进行对比,若相同则确定数据接收过程中未出现错误,程序有效性校验通过。
[0134]
在本发明中,程序有效性校验主要是对外部存储数据,即下载的新程序的完整性进行校验。
[0135]
步骤s292、在程序有效性校验通过之后,将备份区有效标志和搬运有效标志写入外部储存单元的分区中。
[0136]
示例性地,可将备份区有效标志及搬运有效标志写入外部存储单元的exti_4分区中。
[0137]
步骤s210、控制器复位,并跳转到步骤s215。
[0138]
步骤s211、判断程序有效性校验失败的次数是否大于预设有效校验次数,若否,则返回步骤s28、将备份数据搬运至app内存,若是,则执行步骤s214。
[0139]
步骤s212、判断备份校验失败的次数是否大于预设备份校验失败次数,若是,则执行步骤s214,若否,则返回步骤s22,待升级控制器从车载ota终端接收待升级数据。
[0140]
步骤s214、执行内部数据恢复,并跳转到步骤s215。
[0141]
步骤s215、升级结束。
[0142]
步骤s3、所述车载ota终端将所述车载ota终端的升级结果和所述待升级控制器的升级结果上报到ota平台。
[0143]
本发明实施例提供的车载控制器ota升级方法,通过第一安全策略和第二安全策略,可以实现升级过程的数据高效安全备份,极大提高了升级的成功率,可以提高车载控制器ota升级的可靠性和稳定性,在升级失败时车载控制器仍可以确保车辆可以正常启动和行驶,不影响车辆的使用安全性;第一安全策略在ota平台下发的时候增加备份区,将上一版升级成功的程序做了备份,若新程序下载失败,则可以通过ota平台下发使待升级控制器恢复到升级前的状态版本;第一安全策略在tbox终端增加了硬件复位待升级控制器的功能,当待升级控制器软件升级失败时,可以通过硬件重启进行复位;第二安全策略在待升级控制器中增加内外部存储数据的映射存储功能,当升级失败时,可以通过待升级控制器的软件备份,恢复到上一个状态。
[0144]
至此,已经详细描述了本公开的各实施例。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
[0145]
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技
术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本公开的范围由所附权利要求来限定。