发明内容
本发明的主要目的在于提供一种车辆硬件程序更新方法、装置、设备及存储介质,旨在解决现有技术车辆硬件烧写时使用的软件配置版本不同,需要每次都进行产品类型识别检测的技术问题。
为实现上述目的,本发明提供了一种车辆硬件程序更新方法、装置、设备及存储介质方法,所述方法包括以下步骤:
当中央控制器启动时,通过所述中央控制器获取车辆硬件的硬件版本号;
当主存储内未存储所述硬件版本号对应的设备类型信息时,接收所述中央控制器发送的版本号信息;
根据所述版本号信息进行设备类型信息的更新。
可选地,所述当中央控制器启动时,通过所述中央控制器获取车辆硬件的硬件版本号,包括:
当中央控制器启动时,接收所述中央控制器通过串口发送的车辆硬件的硬件版本号,所述硬件版本号为所述中央控制器根据模数转换器采样信息和贴片电阻信息得到的。
可选地,所述当主存储内未存储所述硬件版本号对应的设备类型信息时,接收所述中央控制器发送的版本号信息之前,还包括:
通过第一引导程序读取配置数据表,得到配置数据表分区信息;
根据所述配置数据表分区信息确定是否识别到配置数据表镜像;
当识别到配置数据表镜像时,根据所述配置数据表镜像和所述硬件版本号确定主存储是否存储所述硬件版本号对应的设备类型信息。
可选地,所述当识别到配置数据表镜像时,根据所述配置数据表镜像和所述硬件版本号确定主存储是否存储所述硬件版本号对应的设备类型信息之后,还包括:
当主存储内存储有所述硬件版本号对应的设备类型信息时,向所述中央控制器发送停止发送指令,以使所述中央控制器终止通过串口发送版本号信息的操作。
可选地,所述根据所述版本号信息进行设备类型信息的更新,包括:
根据所述版本号信息确定硬件版本号和版本信息;
将所述硬件版本号和版本信息转换为平台类型信息;
将所述平台类型信息写入主存储中的目标存储区;
根据所述平台类型信息进行设备类型信息的更新。
可选地,所述根据所述平台类型信息进行设备类型信息的更新,包括:
根据所述平台类型信息确定更新后的设备类型;
根据所述更新后的设备类型确定车辆启动时启用的目标设备树;
根据所述目标设备树将所述更新后的设备类型传递至后级的目标操作系统和目标启动引导程序,以完成设备类型信息的更新。
可选地,所述根据所述版本号信息进行设备类型信息的更新之后,还包括:
在完成设备类型信息的更新之后,加载所述目标设备树,并启动实时操作系统,以完成车辆启动。
此外,为实现上述目的,本发明还提出一种车辆硬件程序更新方法、装置、设备及存储介质装置,所述车辆硬件程序更新方法、装置、设备及存储介质装置包括:
获取模块,用于中央控制器启动时,通过所述中央控制器获取车辆硬件的硬件版本号;
接收模块,用于当主存储内未存储所述硬件版本号对应的设备类型信息时,接收所述中央控制器发送的版本号信息;
更新模块,用于根据所述版本号信息进行设备类型信息的更新。
此外,为实现上述目的,本发明还提出一种车辆硬件程序更新方法、装置、设备及存储介质设备,所述车辆硬件程序更新方法、装置、设备及存储介质设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的车辆硬件程序更新方法、装置、设备及存储介质程序,所述车辆硬件程序更新方法、装置、设备及存储介质程序配置为实现如上文所述的车辆硬件程序更新方法、装置、设备及存储介质方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有车辆硬件程序更新方法、装置、设备及存储介质程序,所述车辆硬件程序更新方法、装置、设备及存储介质程序被处理器执行时实现如上文所述的车辆硬件程序更新方法、装置、设备及存储介质方法的步骤。
本发明当中央控制器启动时,通过所述中央控制器获取车辆硬件的硬件版本号;当主存储内未存储所述硬件版本号对应的设备类型信息时,接收所述中央控制器发送的版本号信息;根据所述版本号信息进行设备类型信息的更新。通过这种方式,实现了通过中央控制器获取车辆硬件的硬件版本号,然后当主存储中未存储硬件版本号对应的设备类型信息时,接收版本号信息并更新到主存储中,实现了使得不同版本和配置的硬件只需要烧写同一套程序即可自动完成型号适配,并且识别过程只在第一次启动过程发生,不会影响后续启动时间,提高了用户使用车辆的使用体验。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的车辆硬件程序更新方法、装置、设备及存储介质设备结构示意图。
如图1所示,该车辆硬件程序更新方法、装置、设备及存储介质设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对车辆硬件程序更新方法、装置、设备及存储介质设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及车辆硬件程序更新方法、装置、设备及存储介质程序。
在图1所示的车辆硬件程序更新方法、装置、设备及存储介质设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明车辆硬件程序更新方法、装置、设备及存储介质设备中的处理器1001、存储器1005可以设置在车辆硬件程序更新方法、装置、设备及存储介质设备中,所述车辆硬件程序更新方法、装置、设备及存储介质设备通过处理器1001调用存储器1005中存储的车辆硬件程序更新方法、装置、设备及存储介质程序,并执行本发明实施例提供的车辆硬件程序更新方法、装置、设备及存储介质方法。
本发明实施例提供了一种车辆硬件程序更新方法、装置、设备及存储介质方法,参照图2,图2为本发明一种车辆硬件程序更新方法、装置、设备及存储介质方法第一实施例的流程示意图。
本实施例中,所述车辆硬件程序更新方法、装置、设备及存储介质方法包括以下步骤:
步骤S10:当中央控制器启动时,通过所述中央控制器获取车辆硬件的硬件版本号。
需要说明的是,本实施例的执行主体为车辆上的SOC或者SOC上的控制器,其中,SOC指的是车辆上设置的系统级芯片。并且本方案中的设备类型信息的更新是基于SOC上的前级bootloader进行的。其中,前级bootloader指的是在SOC上的最先启动的引导加载程序。
应理解的是,运行android系统的车机产品为了保持同系列产品版本发布的一致性,避免每个产品的每个型号都有独立的固件,会采取通用版本程序配合设备类型配置信息的方法让同一版本固件兼容多个硬件配置或者硬件版本号。通常设备类型配置是生产过程预先配置写入特定存储区域,导致实际每个产品烧写时使用的软件依旧是各个独立的具有不同配置的版本。但是这种方法不能实现实时更新和根据MCU也就是中央控制器的硬件版本进行实时的更新和调整,并不方便。而本方案中在中央控制器启动时自动获取车辆硬件对应的硬件版本号,然后基于硬件版本号进行设备类型信息的更新,使得车辆的设备类型配置可以保持与MCU一致,使得不同版本/配置的硬件只需要烧写同一套程序即可自动完成型号适配,并且识别过程只在第一次启动过程发生,不会影响后续启动时间。
在具体实施中,中央控制器指的是车辆的MCU,当MCU启动时,通过SOC的bootloader向MCU请求车辆硬件的版本硬件号。
进一步地,为了能够准确的从中央控制器获取到版本硬件号,步骤S10包括:当中央控制器启动时,接收所述中央控制器通过串口发送的车辆硬件的硬件版本号,所述硬件版本号为所述中央控制器根据模数转换器采样信息和贴片电阻信息得到的。
需要说明的是,串口指的是UART,可以从MCU向SOC的boot进行信息传输。硬件版本号指的是在MCU中存储的各个硬件配置的序列号。
应理解的是,模数转换器采样信息指的是MCU采集到的ADC采样结果,ADC即模数转换器。而贴片电阻信息指的是不同硬件贴片不同的电阻的相关信息,包括但不限于贴片电阻的种类、数量和位置等。
通过这种方式,可以使得中央控制器准确的识别车辆硬件的硬件版本号并传输到SOC的boot中,使得硬件版本号的获取更加准确。
步骤S20:当主存储内未存储所述硬件版本号对应的设备类型信息时,接收所述中央控制器发送的版本号信息。
在具体实施中,主存储指的是在SOC中对应的存储单元。设备类型信息指的是在SOC中存储并保有的设备类型、版本、配置等相关信息。版本号信息指的是由中央控制器发出的硬件版本号相关的信息。
进一步地,为了能够准确判断主存储是否存储硬件版本号对应的设备类型信息,步骤S20之前,还包括:通过第一引导程序读取配置数据表,得到配置数据表分区信息;根据所述配置数据表分区信息确定是否识别到配置数据表镜像;当识别到配置数据表镜像时,根据所述配置数据表镜像和所述硬件版本号确定主存储是否存储所述硬件版本号对应的设备类型信息。
需要说明的是,第一引导程序指的是SOC上的第一级boot。配置数据表指的是CDT,也就是配置数据表格相关信息。配置数据表分区信息指的是配置数据表的分区相关信息,也就是CDT分区;
应理解的是,根据所述配置数据表分区信息确定是否识别到配置数据表镜像指的是:第一级boot启动后会读取CDT分区,然后判断是否识别到CDT分区镜像。
在具体实施中,当识别到配置数据表镜像时,根据所述配置数据表镜像和所述硬件版本号确定主存储是否存储所述硬件版本号对应的设备类型信息指的是,识别到配置数据表镜像之后,再将配置数据表镜像和硬件版本号进行比对和确定,确定配置数据表镜像是否合法,也就是主存储是否存储所述硬件版本号对应的设备类型信息。
通过这种方式,实现了通过第一引导程序对配置数据表进行分析,从而确定主存储是否存储所述硬件版本号对应的设备类型信息,使得主存储内是否存储设备类型信息的判断更准确。
进一步地,为了能在主存储存有设备类型信息时完成硬件程序的更新,当识别到配置数据表镜像时,根据所述配置数据表镜像和所述硬件版本号确定主存储是否存储所述硬件版本号对应的设备类型信息之后,还包括:当主存储内存储有所述硬件版本号对应的设备类型信息时,向所述中央控制器发送停止发送指令,以使所述中央控制器终止通过串口发送版本号信息的操作。
需要说明的是,当检测到配置数据表镜像,且判定主存储内存储有硬件版本号对应的设备类型信息时,此时不需要在SOC中更新设备类型信息,所以向中央控制器发送停止发送指令,使得中央控制器后续不会再继续通过串口发送版本号信息至SOC,即完成了车辆的硬件程序的更新,可以进行后续的操作系统的启动。
通过这种方式,实现了在配置数据表镜像合法且主存储内存储有所述硬件版本号对应的设备类型信息时,向中央控制器发送停止发送指令,以使得结束硬件程序更新,使得在本地的存储中保有对应的设备类型信息时不需要进行重新接收和更新,减少了启动时间,提高了用户的使用体验。
步骤S30:根据所述版本号信息进行设备类型信息的更新。
应理解的是,根据所述版本号信息进行设备类型信息的更新指的是:将接受到的版本号信息转换成平台类型信息写入到主存储的相应分区,然后答复MCU,实现了设备类型信息的更新。
本实施例通过当中央控制器启动时,通过所述中央控制器获取车辆硬件的硬件版本号;当主存储内未存储所述硬件版本号对应的设备类型信息时,接收所述中央控制器发送的版本号信息;根据所述版本号信息进行设备类型信息的更新。通过这种方式,实现了通过中央控制器获取车辆硬件的硬件版本号,然后当主存储中未存储硬件版本号对应的设备类型信息时,接收版本号信息并更新到主存储中,实现了使得不同版本和配置的硬件只需要烧写同一套程序即可自动完成型号适配,并且识别过程只在第一次启动过程发生,不会影响后续启动时间,提高了用户使用车辆的使用体验。
参考图3,图3为本发明一种车辆硬件程序更新方法、装置、设备及存储介质方法第二实施例的流程示意图。
基于上述第一实施例,本实施例车辆硬件程序更新方法、装置、设备及存储介质方法在所述步骤S30包括:
步骤S301:根据所述版本号信息确定硬件版本号和版本信息。
需要说明的是,硬件版本号指的是MCU中的各个硬件的版本号,版本信息指的是硬件版本号对应的相关配置信息和型号、更新时间等相关参数信息。
步骤S302:将所述硬件版本号和版本信息转换为平台类型信息。
应理解的是,将所述硬件版本号和版本信息转换为平台类型信息指的是:将硬件版本号以及版本信息转换为对应的平台类型信息,其中,平台类型信息指的是SOC平台中的设备类型对应的平台的类型的相关信息。
步骤S303:将所述平台类型信息写入主存储中的目标存储区。
在具体实施中,将所述平台类型信息写入主存储中的目标存储区指的是:得到平台类型信息之后,再将平台类型信息写入到主存储中的目标存储区域,主存储指的是与SOC连接的外部存储,目标存储区可以为主存储上的任意区域,本实施例对此不加以限定。
步骤S304:根据所述平台类型信息进行设备类型信息的更新。
需要说明的是,根据所述平台类型信息进行设备类型信息的更新指的是根据平台类型信息确定需要启用的设备树,然后基于目标设备数进行后续的SOC系统的启动。
进一步地,为了能够准确的完成设备类型信息的更新,步骤S304包括:根据所述平台类型信息确定更新后的设备类型;根据所述更新后的设备类型确定车辆启动时启用的目标设备树;根据所述目标设备树将所述更新后的设备类型传递至后级的目标操作系统和目标启动引导程序,以完成设备类型信息的更新。
应理解的是,根据所述平台类型信息确定更新后的设备类型指的是:根据平台类型信息选择平台类型对应的设备类型,作为更新后的设备类型。
在具体实施中,根据所述更新后的设备类型确定车辆启动时启用的目标设备树指的是:依据更新后的设备类型从多个设备树中选择出车辆启动,以及后续SOC系统启动需要的设备树,作为目标设备树。
需要说明的是,根据所述目标设备树将所述更新后的设备类型传递至后级的目标操作系统和目标启动引导程序,以完成设备类型信息的更新指的是:根据目标设备树将更新后的设备类型传递给目标设备树中所有的后级的boot(目标启动引导程序)和kerenel(HLOS),也就是和目标操作系统。
通过这种方式,实现了通过凭该类型信息选定目标设备树,从而将更新后的设备类型传递到目标设备树中后级的设备和程序,实现了设备类型信息的更新。
进一步地,为了能够正确的启动车辆,步骤S304之后,还包括:在完成设备类型信息的更新之后,加载所述目标设备树,并启动实时操作系统,以完成车辆启动。
应理解的是,在完成设备类型信息的更新之后,加载所述目标设备树,并启动实时操作系统,以完成车辆启动指的是:设备类型信息更新完毕后,加载之前选定的目标设备树,以确定各个程序和设备的上下级关系,然后按照目标设备树启动SOC系统,实现了车辆的启动。并且,此后下一次启动时SOC的boot0已经可以读取到第一次启动时写入的平台类型信息,不再需要再接收和写入平台类型信息。
通过这种方式,实现了在设备类型信息更新之后完成车辆启动,使得车辆启动更加流畅,提高用户的使用体验。
本实施例通过根据所述版本号信息确定硬件版本号和版本信息;将所述硬件版本号和版本信息转换为平台类型信息;将所述平台类型信息写入主存储中的目标存储区;根据所述平台类型信息进行设备类型信息的更新。通过这种方式,实现了根据版本号信息转换为可以写入到存储的平台类型信息,然后进行设备类型信息的更新,使用收到的平台类型信息执行后续的产品启动流程,使得设备类型信息的更新更加快捷和方便。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有车辆硬件程序更新方法、装置、设备及存储介质程序,所述车辆硬件程序更新方法、装置、设备及存储介质程序被处理器执行时实现如上文所述的车辆硬件程序更新方法、装置、设备及存储介质方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不一一赘述。
参照图4,图4为本发明车辆硬件程序更新方法、装置、设备及存储介质装置第一实施例的结构框图。
如图4所示,本发明实施例提出的车辆硬件程序更新方法、装置、设备及存储介质装置包括:
获取模块10,用于中央控制器启动时,通过所述中央控制器获取车辆硬件的硬件版本号。
接收模块20,用于当主存储内未存储所述硬件版本号对应的设备类型信息时,接收所述中央控制器发送的版本号信息。
更新模块30,用于根据所述版本号信息进行设备类型信息的更新。
本实施例通过当中央控制器启动时,通过所述中央控制器获取车辆硬件的硬件版本号;当主存储内未存储所述硬件版本号对应的设备类型信息时,接收所述中央控制器发送的版本号信息;根据所述版本号信息进行设备类型信息的更新。通过这种方式,实现了通过中央控制器获取车辆硬件的硬件版本号,然后当主存储中未存储硬件版本号对应的设备类型信息时,接收版本号信息并更新到主存储中,实现了使得不同版本和配置的硬件只需要烧写同一套程序即可自动完成型号适配,并且识别过程只在第一次启动过程发生,不会影响后续启动时间,提高了用户使用车辆的使用体验。
在一实施例中,所述获取模块10,还用于当中央控制器启动时,接收所述中央控制器通过串口发送的车辆硬件的硬件版本号,所述硬件版本号为所述中央控制器根据模数转换器采样信息和贴片电阻信息得到的。
在一实施例中,所述接收模块20,还用于通过第一引导程序读取配置数据表,得到配置数据表分区信息;根据所述配置数据表分区信息确定是否识别到配置数据表镜像;当识别到配置数据表镜像时,根据所述配置数据表镜像和所述硬件版本号确定主存储是否存储所述硬件版本号对应的设备类型信息。
在一实施例中,所述接收模块20,还用于当主存储内存储有所述硬件版本号对应的设备类型信息时,向所述中央控制器发送停止发送指令,以使所述中央控制器终止通过串口发送版本号信息的操作。
在一实施例中,所述更新模块30,还用于根据所述版本号信息确定硬件版本号和版本信息;将所述硬件版本号和版本信息转换为平台类型信息;将所述平台类型信息写入主存储中的目标存储区;根据所述平台类型信息进行设备类型信息的更新。
在一实施例中,所述更新模块30,还用于根据所述平台类型信息确定更新后的设备类型;根据所述更新后的设备类型确定车辆启动时启用的目标设备树;根据所述目标设备树将所述更新后的设备类型传递至后级的目标操作系统和目标启动引导程序,以完成设备类型信息的更新。
在一实施例中,所述更新模块30,还用于在完成设备类型信息的更新之后,加载所述目标设备树,并启动实时操作系统,以完成车辆启动。
由于本装置采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不一一赘述。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的车辆硬件程序更新方法、装置、设备及存储介质方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。