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

车辆ECU数据更新校验方法及装置

文献发布时间:2024-04-18 19:58:26


车辆ECU数据更新校验方法及装置

技术领域

本发明涉及车辆系统控制技术领域,具体涉及一种车辆ECU数据更新校验方法及装置。

背景技术

目前,ECU在装车后,软件会有更新的需求,此时就需要用引导加载程序去更新App。每家主机厂对于更新软件的步骤以及步骤中涉及的安全算法、校验算法都会不同,所以每个项目需要给不同客户定制不同的引导加载程序。

在项目开发阶段,工程技术人员更新SBL时,可能会导入错误的SBL程序文件;在项目量产阶段,客户更新APP也可能会导入错误的APP程序文件。这些错误都会导致SBL或APP无法运行,或者是运行错误。因此,设计一种能够进行提高校验准确性的方案成为本领域技术人员亟待解决的技术问题。

发明内容

针对所述缺陷,本发明实施例公开了一种车辆ECU数据更新校验方法,其能够规避向车辆ECU输入错误的SBL程序文件或者APP文件,提升数据更新的准确性。

本发明实施例第一方面公开了车辆ECU数据更新校验方法,包括:

在启动主引导加载程序之后,判断是否存在新的加载下载请求,若否,则跳转至相应的次引导加载程序;若是,则执行下一步;

接收上位机或者诊断仪发送的更新数据文件和第一冗余校验结果,所述第一冗余校验结果为上位机或者诊断仪基于第一循环冗余校验算法对其发送的更新数据文件进行校验计算的结果;

根据第二循环冗余校验算法对所述更新数据文件进行校验计算以得到第二冗余校验结果;其中,所述第一循环冗余校验算法与所述第二循环冗余校验算法相同;

获取所述更新数据文件的数据流中的身份识别信息,并将所述身份识别信息与预先存储的身份识别码进行匹配以进行身份验证,若验证通过,则将有效标识符写入第一存储模块的指定位置来作为第一合法签章以进行后续完整性校验。

作为一种可选的实施方式,在本发明实施例第一方面中,在跳转至相应的次引导加载程序之前,还包括:

判断次引导加载程序中是否包括身份识别码,若是,则执行下一步;

判断次引导加载程序中是否包括有效标识符,若是,则跳转至相应的次引导加载程序。

在本实施例中其主要针对的当PBL没有发现下载请求的时候的具体数据流程,其需要对SBL处的身份识别码和有效标识符均进行验证,只有在验证通过之后才跳转到SBL程序。

作为一种可选的实施方式,在本发明实施例第一方面中,所述在之前,还包括:

根据文件格式转换算法对获取到的初始更新数据进行格式转换以得到更新数据文件,所述更新数据文件为Hex文件;所述初始更新数据为S19数据或者bin数据。

在本实施例中,主要针对Hex文件来进行后续的校验,如果在初始输入文件为S19数据或者bin数据则可以通过格式转换将其转换为Hex文件之后来进行后续的数据校验,若输入的是Hex文件则可以直接进行后续的CRC32校验。

作为一种可选的实施方式,在本发明实施例第一方面中,所述数据更新校验方法还包括:

对应用数据文件中处于第一位置区间的数据进行冗余校验计算以得到第三冗余校验结果,并将所述第三冗余校验结果填入所述应用数据文件的第二位置区间;

在执行次引导加载程序时,判断是否存在新的应用下载请求,若否,则跳转至相应的应用程序中;若是,则执行下一步;

获取与应用数据文件对应的应用程序的项目标识号,并将所述项目标识号与设定标识号进行匹配,以确定相应的应用程序为指定项目的应用;

对应用数据文件中处于第一位置区间的数据进行冗余校验计算以得到第四冗余校验结果,并将所述第四冗余校验结果与应用数据文件中处于第二位置区间的第三冗余校验结果进行数据校验,若校验通过,则根据校验结果来对寄存器标识位的数据存储信息进行更新,并将更新后的数据存储信息写入第二存储模块来作为第二合法签章以进行后续完整性校验。

本实施例主要是在次引导加载程序处来对相应应用程序进行校验,通过上述步骤能够避免刷写错误的APP。

作为一种可选的实施方式,在本发明实施例第一方面中,在所述跳转至相应的应用程序中之前,还包括:

获取第二存储模块中存储的寄存器标识位的数据存储信息,根据判断所述数据存储信息的结果是否为设定结果,若是,在执行下一步;

获取相应应用程序的项目标识号,并将相应项目标识号与设定标识号相匹配,则跳转至相应的应用程序中。

通过上述方式能够使得无需重新对APP全局flash进行冗余校验计算,且其能够保证在进行有效验证的前提下,减少了上电启动时长,提升整体效率。

作为一种可选的实施方式,在本发明实施例第一方面中,所述第一存储模块为flash,所述第二存储模块为EEPROM。通过上述两种存储方式来进行相应校验结果的存储以便于后续进行快速调用来进行相应的完整性验证。

本发明实施例第二方面公开一种车辆ECU数据更新校验方法,包括:

对应用数据文件中处于第一位置区间的数据进行冗余校验计算以得到比对冗余校验结果,并将所述比对冗余校验结果填入所述应用数据文件的第二位置区间;

在执行次引导加载程序时,判断是否存在新的应用下载请求,若否,则跳转至相应的应用程序中;若是,则执行下一步;

获取与应用数据文件对应的应用程序的项目标识号,并将所述项目标识号与设定标识号进行匹配,以确定相应的应用程序为指定项目的应用;

对应用数据文件中处于第一位置区间的数据进行冗余校验计算以得到应用冗余校验结果,并将所述应用冗余校验结果与应用数据文件中处于第二位置区间的比对冗余校验结果进行数据校验,若校验通过,则根据校验结果来对寄存器标识位的数据存储信息进行更新,并将更新后的数据存储信息写入相应存储模块来作为合法签章以进行后续完整性校验。

本实施例主要是在次引导加载程序处来对相应应用程序进行校验,通过上述步骤能够避免刷写错误的APP。

本发明实施例第三方面公开一种车辆ECU数据更新校验装置,包括:

判断模块:用于在启动主引导加载程序之后,判断是否存在新的加载下载请求,若否,则跳转至相应的次引导加载程序;若是,则执行下一步;

接收模块:用于接收上位机或者诊断仪发送的更新数据文件和第一冗余校验结果,所述第一冗余校验结果为上位机或者诊断仪基于第一循环冗余校验算法对其发送的更新数据文件进行校验计算的结果;

校验模块:用于根据第二循环冗余校验算法对所述更新数据文件进行校验计算以得到第二冗余校验结果;其中,所述第一循环冗余校验算法与所述第二循环冗余校验算法相同;

验证模块:用于获取所述更新数据文件的数据流中的身份识别信息,并将所述身份识别信息与预先存储的身份识别码进行匹配以进行身份验证,若验证通过,则将有效标识符写入第一存储模块的指定位置来作为第一合法签章以进行后续完整性校验。

本发明实施例第四方面公开一种电子设备,包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行本发明实施例第一方面公开的车辆ECU数据更新校验方法。

本发明实施例第五方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的车辆ECU数据更新校验方法。

与现有技术相比,本发明实施例具有以下有益效果:

本发明实施例中的车辆ECU数据更新校验方法通过对导入的程序文件进行冗余校验来避免刷写错误的SBL程序或者刷写错误的APP;进而使得车辆ECU能够按照预期效果运行,减少工程技术人员在更新程序时花费的时间。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例公开的一车辆ECU数据更新校验方法的流程示意图;

图2是本发明实施例公开的使用PBL更新SBL的流程示意图;

图3是本发明实施例公开的另一车辆ECU数据更新校验方法的流程示意图;

图4是本发明实施例公开的使用SBL更新APP的流程示意图;

图5是本发明实施例公开的进行更新验证的流程示意图;

图6是本发明实施例公开的再一车辆ECU数据更新校验方法的流程示意图;

图7是本发明实施例提供的一种车辆ECU数据更新校验装置的结构示意图;

图8是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定顺序。本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,示例性地,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

项目开发阶段经常需要更新bootloader程序,此时就需要另外一个bootloader程序来更新客户的bootloader程序,所以称之为两级bootloader,客户的bootloader称为SBL(secondary bootloader),用于更新客户APP,而用于更新SBL的bootloader称之为PBL(primary bootloader)。在项目开发阶段,工程技术人员更新SBL时,可能会导入错误的SBL程序文件;在项目量产阶段,客户更新APP也可能会导入错误的APP程序文件。这些错误都会导致SBL或APP无法运行,或者是运行错误。基于此,本发明实施例公开了车辆ECU数据更新校验方法、装置、电子设备及存储介质,通过对导入的程序文件进行冗余校验来避免刷写错误的SBL程序或者刷写错误的APP;进而使得车辆ECU能够按照预期效果运行,减少工程技术人员在更新程序时花费的时间。

实施例一

请参阅图1和图2,图1是本发明实施例公开的车辆ECU数据更新校验方法的流程示意图。其中,本发明实施例所描述的方法的执行主体为由软件或/和硬件组成的执行主体,该执行主体可以通过有线或/和无线方式接收相关信息,并可以发送一定的指令。当然,其还可以具有一定的处理功能和存储功能。该执行主体可以控制多个设备,例如远程的物理服务器或云服务器以及相关软件,也可以是对某处安置的设备进行相关操作的本地主机或服务器以及相关软件等。在一些场景中,还可以控制多个存储设备,存储设备可以与设备放置于同一地方或不同地方。如图1和图2所示,该基于车辆ECU数据更新校验方法包括以下步骤:

S101:在启动主引导加载程序之后,判断是否存在新的加载下载请求,若否,则跳转至相应的次引导加载程序;若是,则执行下一步;

S102:接收上位机或者诊断仪发送的更新数据文件和第一冗余校验结果,所述第一冗余校验结果为上位机或者诊断仪基于第一循环冗余校验算法对其发送的更新数据文件进行校验计算的结果;

S103:根据第二循环冗余校验算法对所述更新数据文件进行校验计算以得到第二冗余校验结果;其中,所述第一循环冗余校验算法与所述第二循环冗余校验算法相同;

S104:获取所述更新数据文件的数据流中的身份识别信息,并将所述身份识别信息与预先存储的身份识别码进行匹配以进行身份验证,若验证通过,则将有效标识符写入第一存储模块的指定位置来作为第一合法签章以进行后续完整性校验。

在本发明实施例中第一循环冗余校验算法和第二循环冗余校验算法均是CRC32算法;上述步骤主要是使用PBL更新SBL软件,本发明实施例中提及的主引导加载程序即是PBL,次引导加载程序即是SBL。在本发明实施例需要使用未填充特殊字符Y的Hex文件,而量产时直接烧录到PCBA时需使用PBL+填充特殊字符Y的SBL,以支持程序由PBL跳转到SBL,从而由SBL顺利跳转至APP或驻留在SBL进行APP更新;在具体进行程序更新时,上位机或诊断仪对自身发出的Hex数据进行CRC32计算,然后发送给ECU;ECU以同样CRC32算法对接收数据进行计算,计算结果与上位机进行比对,以确保数据端到端传输的正确性;然后在ECU处对接收到的Hex程序数据流进行身份确认。在上述验证均通过之后,将特殊字符Y写入FLASH指定地址,作为SBL-FLASH合法签章以进行后续完整性校验。

更为优选的,在跳转至相应的次引导加载程序之前,还包括:

S1011:判断次引导加载程序中是否包括身份识别码,若是,则执行下一步;

S1012:判断次引导加载程序中是否包括有效标识符,若是,则跳转至相应的次引导加载程序。

在本实施例中其主要针对的当PBL没有发现下载请求的时候的具体数据流程,其需要对SBL处的身份识别码和有效标识符均进行验证,只有在验证通过之后才跳转到SBL程序。

更为优选的,所述在之前,还包括:

根据文件格式转换算法对获取到的初始更新数据进行格式转换以得到更新数据文件,所述更新数据文件为Hex文件;所述初始更新数据为S19数据或者bin数据。

在本实施例中,主要针对Hex文件来进行后续的校验,如果初始输入文件为S19数据或者bin数据则可以通过格式转换将其转换为Hex文件之后再进行后续的数据校验,若输入的是Hex文件则可以直接进行后续的CRC32校验。

更为优选的,如图3和图4所示,所述数据更新校验方法还包括:

S105:对应用数据文件中处于第一位置区间的数据进行冗余校验计算以得到第三冗余校验结果,并将所述第三冗余校验结果填入所述应用数据文件的第二位置区间;

S106:在执行次引导加载程序时,判断是否存在新的应用下载请求,若否,则跳转至相应的应用程序中;若是,则执行下一步;

S107:获取与应用数据文件对应的应用程序的项目标识号,并将所述项目标识号与设定标识号进行匹配,以确定相应的应用程序为指定项目的应用;

S108:对应用数据文件中处于第一位置区间的数据进行冗余校验计算以得到第四冗余校验结果,并将所述第四冗余校验结果与应用数据文件中处于第二位置区间的第三冗余校验结果进行数据校验,若校验通过,则根据校验结果来对寄存器标识位的数据存储信息进行更新,并将更新后的数据存储信息写入第二存储模块来作为第二合法签章以进行后续完整性校验。

本实施例主要是在次引导加载程序处来对相应应用程序进行校验,通过上述步骤能够避免刷写错误的APP。在本实施例中编译脚本对Hex进行CRC32计算,并将结果填入文件末尾,SBL程序检查APP标记的项目号,确保运行的APP是指定项目的APP;在项目号匹配和CRC32校验通过后,将FLAG_Integrity标志位(1:成功,0:失败)写入EEPROM指定地址来作为APP-FLASH合法签章;在确定了相应的合法签章之后,则可以进行跳转至相应的APP处。

若在ECU启动进入SBL后若无下载请求,则根据EEPROM的FLAG_Integrity来判断APP是否有效,通过这种做法无需重新对APP全局FLASH进行CRC32计算校验,减少了上电启动的时长;若有效则继续查验项目标识号,在PCBA程序烧录后,若发现FLAG_Integrity为默认值0xFF,则进行首次CRC32计算校验,根据校验结果将FLAG_Integrity写入EEPROM(1:成功,0:失败)。

更为优选的,如图5所示,在所述跳转至相应的应用程序中之前,还包括:

S1061:获取第二存储模块中存储的寄存器标识位的数据存储信息,根据判断所述数据存储信息的结果是否为设定结果,若是,在执行下一步;

S1062:获取相应应用程序的项目标识号,并将相应项目标识号与设定标识号相匹配,则跳转至相应的应用程序中。

通过上述方式能够使得无需重新对APP全局flash进行冗余校验计算,且其能够保证在进行有效验证的前提下,减少了上电启动时长,提升整体效率。

更为优选的,所述第一存储模块为flash,所述第二存储模块为EEPROM。通过上述两种存储方式来进行相应校验结果的存储以便于后续进行快速调用来进行相应的完整性验证。

本发明实施例的方案可避免刷写错误的SBL程序,避免刷写错误的APP。由于SBL是定制化的,所以刷写错误的SBL会导致后续无法更新APP,而刷写错误的APP,则会让APP无法运行,或者不能按照预期效果运行。导致工程技术人员在更新程序时浪费大量时间。

本发明实施例中的车辆ECU数据更新校验方法通过对导入的程序文件进行冗余校验来避免刷写错误的SBL程序或者刷写错误的APP;进而使得车辆ECU能够按照预期效果运行,减少工程技术人员在更新程序时花费的时间。

实施例二

如图6所示,本发明实施例第二方面公开一种车辆ECU数据更新校验方法,包括:

S201:对应用数据文件中处于第一位置区间的数据进行冗余校验计算以得到比对冗余校验结果,并将所述比对冗余校验结果填入所述应用数据文件的第二位置区间;

S202:在执行次引导加载程序时,判断是否存在新的应用下载请求,若否,则跳转至相应的应用程序中;若是,则执行下一步;

S203:获取与应用数据文件对应的应用程序的项目标识号,并将所述项目标识号与设定标识号进行匹配,以确定相应的应用程序为指定项目的应用;

S204:对应用数据文件中处于第一位置区间的数据进行冗余校验计算以得到应用冗余校验结果,并将所述应用冗余校验结果与应用数据文件中处于第二位置区间的比对冗余校验结果进行数据校验,若校验通过,则根据校验结果来对寄存器标识位的数据存储信息进行更新,并将更新后的数据存储信息写入相应存储模块来作为合法签章以进行后续完整性校验。

本实施例主要是在次引导加载程序处来对相应应用程序进行校验,通过上述步骤能够避免刷写错误的APP。

实施例三

请参阅图7,图7是本发明实施例公开的车辆ECU数据更新校验装置的结构示意图。如图7所示,该车辆ECU数据更新校验装置可以包括:

判断模块:用于在启动主引导加载程序之后,判断是否存在新的加载下载请求,若否,则跳转至相应的次引导加载程序;若是,则执行下一步;

接收模块:用于接收上位机或者诊断仪发送的更新数据文件和第一冗余校验结果,所述第一冗余校验结果为上位机或者诊断仪基于第一循环冗余校验算法对其发送的更新数据文件进行校验计算的结果;

校验模块:用于根据第二循环冗余校验算法对所述更新数据文件进行校验计算以得到第二冗余校验结果;其中,所述第一循环冗余校验算法与所述第二循环冗余校验算法相同;

验证模块:用于获取所述更新数据文件的数据流中的身份识别信息,并将所述身份识别信息与预先存储的身份识别码进行匹配以进行身份验证,若验证通过,则将有效标识符写入第一存储模块的指定位置来作为第一合法签章以进行后续完整性校验。

本发明实施例中的车辆ECU数据更新校验方法通过对导入的程序文件进行冗余校验来避免刷写错误的SBL程序或者刷写错误的APP;进而使得车辆ECU能够按照预期效果运行,减少工程技术人员在更新程序时花费的时间。

实施例三

请参阅图8,图8是本发明实施例公开的一种电子设备的结构示意图。电子设备可以是计算机以及服务器等,当然,在一定情况下,还可以是手机、平板电脑以及监控终端等智能设备,以及具有处理功能的图像采集装置。如图8所示,该电子设备可以包括:

存储有可执行程序代码的存储器510;

与存储器510耦合的处理器520;

其中,处理器520调用存储器510中存储的可执行程序代码,执行实施例一中的车辆ECU数据更新校验方法中的部分或全部步骤。

本发明实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行实施例一中的车辆ECU数据更新校验方法中的部分或全部步骤。

本发明实施例还公开一种计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行实施例一中的车辆ECU数据更新校验方法中的部分或全部步骤。

本发明实施例还公开一种应用发布平台,其中,应用发布平台用于发布计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行实施例一中的车辆ECU数据更新校验方法中的部分或全部步骤。

在本发明的各种实施例中,应理解,所述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明的各个实施例所述方法的部分或全部步骤。

在本发明所提供的实施例中,应理解,“与A对应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。

本领域普通技术人员可以理解所述实施例的各种方法中的部分或全部步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

以上对本发明实施例公开的车辆ECU数据更新校验方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • ECU、具有其的自动驾驶车辆及控制该车辆车道变换的方法
  • 判断数据状态的装置和方法以及数据更新的装置和方法
  • 车辆控制装置、车辆、车辆控制装置的处理方法以及存储介质
  • 车辆控制装置、车辆、车辆控制装置的处理方法以及存储介质
  • 车辆用主ECU和从ECU的配置方法及装置、处理器、车辆
  • 车辆用主ECU和从ECU的配置方法及装置、处理器、车辆
技术分类

06120116489972