车载终端、电子模块、电子模块升级装置、系统及方法
技术领域
本发明涉及一种车载终端、电子模块、服务器、电子模块升级装置、系统及方法,特别是涉及一种能在线烧写电子模块更新数据包的车载终端、电子模块、服务器、电子模块升级装置、系统及方法。
背景技术
随着车辆电子向着智能化、标准化、网络化的方向发展,软件开发在车辆电子模块的产品开发中所占的比重不断增加,新技术的应用不断加快,对于已经出厂的车辆电子模块的软件更新问题,成为一个研究热点。
传统的车辆中的电子模块的升级方法主要是到现场利用整车诊断口进行程序刷新,而这往往只适用于在车辆在出厂前的电子模块更新升级以及在车辆电子模块的测试阶段的更新升级,一旦车辆流入市场,而电子模块的软件存在严重故障甚至影响功能时,往往通过4S店处理或直接召回,这样一来软件升级的成本是非常巨大的,而且也给用户带来了极大的不便。
发明内容
本发明要解决的技术问题是为了克服现有技术车辆进入市场后车辆的电子模块的软件更新不便的缺陷,提供一种操作便利、应用范围广、能在线烧写电子模块更新数据包的车载终端、电子模块、服务器、电子模块升级装置、系统及方法。
本发明是通过下述技术方案来解决上述技术问题的:
一种车载终端,其特点在于,其包括一控制模块、一CAN模块和一通信模块,其中,
该控制模块用于解析用户输入的控制指令,该控制指令包括获取电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令,该控制模块还用于根据升级指令控制该CAN模块通过车辆的CAN总线(CAN是ControllerAreaNetwork的缩写,是ISO国际标准化的串行通信协议)将该更新数据包送至电子模块以供电子模块安装该更新数据包,以及将更新指令送入该通信模块;
该CAN模块用于利用车辆的CAN总线实现该车载终端与电子模块之间的数据通信;
该通信模块用于将更新指令发送至一服务器,以及接收该服务器回传的电子模块的最新软件版本的更新数据包。其中,在该车辆中,该车载终端与各个电子模块之间通过CAN总线通信,该车载终端可以集成于车辆的娱乐系统中,也可集成于车辆的导航系统中,当然该车载终端也可以不依赖于娱乐系统或导航系统而单独设置于该车辆中。而控制指令可以采用传统的输入方式送入该车载终端,并且由该控制模块对该控制指令进行解析。
优选地,该控制指令还包括获取车辆的电子模块的当前软件版本的版本获取指令、查询车辆的电子模块的最新软件版本的版本查询指令,该控制模块还用于根据版本获取指令控制该CAN模块通过车辆的CAN总线获取电子模块的当前软件版本以及将版本查询指令送入该通信模块;
该通信模块用于将版本查询指令发送至一服务器,以及接收该服务器回传的电子模块的最新软件版本;
该控制模块还用于比较电子模块的当前软件版本是否与最新软件版本一致,若是,则提示用户电子模块的当前软件版本已是最新软件版本;若否,询问用户是否升级电子模块至最新软件版本。提示用户的具体方式可以采用现有的提示方式,例如以弹出对话框的形式询问用户,并等待用户输入指令。
优选地,该CAN模块还用于接收该电子模块发送的表示该更新数据包接收成功的应答信息,以及接收该电子模块发送的表示该更新数据包接收失败的错误信息,并且将该错误信息送入该控制模块,以及该CAN模块还用于接收该电子模块发送的更新成功的信息和更新失败的信息;
当该控制模块接收到该错误信息时,该控制模块还用于控制该CAN模块通过车辆的CAN总线重新发送该更新数据包至电子模块。较佳地,该车载终端还包括将该应答信息、该错误信息、该更新成功的信息和该更新失败的信息显示给用户的显示模块。
优选地,该通信模块还用于接收来自该服务器的版本获取指令,并将该版本获取指令送入该控制模块。也就是说,除了本地输入控制指令之外,用户还可以在服务器端通过服务器与该通信模块之间的信号连接远程发送控制指令至该车载终端。
优选地,该车载终端还包括一指令接收模块,用于接收用户的控制指令并将该控制指令送入该控制模块。例如,该指令接收模块为一触摸屏或一语音输入模块,或者一传统的输入模块,例如键盘。
本发明还提供一种车载终端,其特点在于,其包括一控制模块、一CAN模块和一通信模块,其中,
该通信模块用于接收来自一服务器的控制指令以及车辆的电子模块的最新软件版本的更新数据包,该控制指令包括获取该车辆的电子模块的当前软件版本的版本获取指令和为电子模块安装最新软件版本的更新数据包的升级指令,
该控制模块用于根据升级指令控制该CAN模块通过车辆的CAN总线将该更新数据包送至电子模块以供电子模块安装该更新数据包,以及将该版本获取指令送入该CAN模块以获取该电子模块的当前软件版本;
该CAN模块用于利用车辆的CAN总线将该更新数据包和该版本获取指令送入该电子模块,以及接收该电子模块回传的当前软件版本;
该通信模块还用于将该当前软件版本回传至该服务器。
优选地,该通信模块为3G模块或WIFI模块。当然,通信模块并不局限于此,本领域技术人员还可采用其他的现有模块实现服务器与该车载终端的通信。
优选地,该电子模块包括:一初始化单元、一CAN单元、一编程文件接收单元、一编程单元、一控制单元以及一第一存储单元和一第二存储单元,其中,
该初始化单元用于初始化该CAN单元、该编程文件接收单元、该编程单元以及该第一存储单元和该第二存储单元;该初始化单元还用于片内缓存分配以及内核代码的搬移工作;
该CAN单元用于通过车辆的CAN总线接收来自该CAN模块的该版本获取指令并将该版本获取指令送入该控制单元,以及用于将电子模块的当前软件版本回传至该CAN模块;该CAN单元还用于通过车辆的CAN总线接收来自该CAN模块的该更新数据包并且将该更新数据包送入该编程文件接收单元;
该控制单元用于根据该版本获取指令并获取电子模块的当前软件版本,并将当前软件版本送入该CAN单元;
该编程文件接收单元用于接收来自CAN单元的该更新数据包以及在该更新数据包接收完成之后进行和校验,倘若和校验无误,则生成表示该更新数据包接收完成的应答信息并将该应答信息反馈至该控制模块,并且将该更新数据包送入该第一存储单元储存;倘若和校验有误,则生成表示该更新数据包接收失败的错误信息并将该错误信息反馈至该控制模块,并等待该控制模块重新发送该更新数据包;
该编程单元用于将储存于该第二存储单元中的当前软件版本的数据擦除,并将该更新数据包烧写至该第二存储单元中以形成编程后的数据;
该第一存储单元用于储存该更新数据包;
该第二存储单元用于储存当前软件版本的数据和该编程后的数据,当然本领域技术人员可以理解的是,当前软件版本的数据和该编程后的数据不是同时存在的,而是先擦除了当前软件版本的数据之后,再将更新数据包的数据烧写至该第二存储单元中以形成编程后的数据,也就是说,该编程后的数据对应的是最新软件版本;
其中该编程文件接收单元还用于比较该更新数据包的校验和是否与该编程后的数据的校验和一致,若是,则生成更新成功的信息并将该更新成功的信息反馈至该控制模块;若否,则生成更新失败的信息并将该更新失败的信息反馈至该控制模块。
优选地,该CAN单元还用于将该编程文件接收单元生成的该应答信息、该错误信息、该更新成功的信息和该更新失败的信息通过车辆的CAN总线回传至该控制模块。
优选地,该第一存储单元为该电子模块内部的一FLASH或与该电子模块相连的一外部RAM(随机存取存储器),例如一SDRAM(同步动态随机存储器)。当然,本领域技术人员可以理解的是,如果采用该电子模块内部的一FLASH作为储存该更新数据包的第一存储单元,并非是将该FLASH的功能限制于仅仅储存该更新数据包,该第一存储单元可以是该FLASH的一个分区,该FLASH中还可以存储其他数据。也就是说,只要将更新数据包和编程后的数据分开储存即可,这里第一存储单元和第二存储单元的划分也是为了将更新数据包和编程后的数据分开储存,以便在烧写完成后对编程前后的数据进行校验和的比对,以判断升级是否成功。
优选地,该电子模块为发动机控制模块、变速箱控制模块、通信系统控制模块、车门控制模块、座椅控制模块、人机界面控制面板模块或灯组模块。
本发明还提供一种电子模块,其特点在于,该电子模块设于一车辆中,该车辆设有一车载终端,其包括:一初始化单元、一CAN单元、一编程文件接收单元、一编程单元、一控制单元以及一第一存储单元和一第二存储单元,其中,
该初始化单元用于初始化该CAN单元、该编程文件接收单元、该编程单元以及该第一存储单元和该第二存储单元;
该CAN单元用于通过车辆的CAN总线接收来自该车载终端的用于获取车辆的电子模块的当前软件版本的版本获取指令并将该版本获取指令送入该控制单元,以及用于将电子模块的当前软件版本回传至该车载终端;该CAN单元还用于通过车辆的CAN总线接收来自该车载终端的电子模块的最新软件版本的更新数据包并且将该更新数据包送入该编程文件接收单元;
该控制单元用于根据该版本获取指令并获取电子模块的当前软件版本,并将当前软件版本送入该CAN单元;
该编程文件接收单元用于接收来自CAN单元的该更新数据包以及在该更新数据包接收完成之后进行和校验,倘若和校验无误,则生成表示该更新数据包接收完成的应答信息并将该应答信息反馈至该车载终端,并且将该更新数据包送入该第一存储单元储存;倘若和校验有误,则生成表示该更新数据包接收失败的错误信息并将该错误信息反馈至该车载终端,并等待该车载终端重新发送该更新数据包;
该编程单元用于将储存于该第二存储单元中的当前软件版本的数据擦除,并将该更新数据包烧写至该第二存储单元中以形成编程后的数据;
该第一存储单元用于储存该更新数据包;
该第二存储单元用于储存当前软件版本的数据和该编程后的数据,当然本领域技术人员可以理解的是,当前软件版本的数据和该编程后的数据不是同时存在的,而是先擦除了当前软件版本的数据之后,再将更新数据包的数据烧写至该第二存储单元中以形成编程后的数据,也就是说,该编程后的数据对应的是最新软件版本;
其中该编程文件接收单元还用于比较该更新数据包的校验和是否与该编程后的数据的校验和一致,若是,则生成更新成功的信息并将该更新成功的信息反馈至该车载终端;若否,则生成更新失败的信息并将该更新失败的信息反馈至该车载终端。
优选地,该CAN单元还用于将该编程文件接收单元生成的该应答信息、该错误信息、该更新成功的信息和该更新失败的信息通过车辆的CAN总线回传至该车载终端。
本发明还提供一种电子模块,其特点在于,该电子模块设于一车辆中,其包括:一初始化单元、一通信单元、一编程文件接收单元、一编程单元、一控制单元以及一第一存储单元和一第二存储单元,其中,
该初始化单元用于初始化该通信单元、该编程文件接收单元、该编程单元以及该第一存储单元和该第二存储单元;
该通信单元用于接收来自一服务器的用于获取车辆的电子模块的当前软件版本的版本获取指令并将该版本获取指令送入该控制单元,以及用于将电子模块的当前软件版本回传至该服务器;该通信单元还用于接收来自该服务器的电子模块的最新软件版本的更新数据包并且将该更新数据包送入该编程文件接收单元;
该控制单元用于根据该版本获取指令并获取电子模块的当前软件版本,并将当前软件版本送入该通信单元;
该编程文件接收单元用于接收来自通信单元的该更新数据包以及在该更新数据包接收完成之后进行和校验,倘若和校验无误,则生成表示该更新数据包接收完成的应答信息并将该应答信息反馈至该服务器,并且将该更新数据包送入该第一存储单元储存;倘若和校验有误,则生成表示该更新数据包接收失败的错误信息并将该错误信息反馈至该服务器,并等待该服务器重新发送该更新数据包;
该编程单元用于将储存于该第二存储单元中的当前软件版本的数据擦除,并将该更新数据包烧写至该第二存储单元中以形成编程后的数据;
该第一存储单元用于储存该更新数据包;
该第二存储单元用于储存当前软件版本的数据和该编程后的数据;
其中该编程文件接收单元还用于比较该更新数据包的校验和是否与该编程后的数据的校验和一致,若是,则生成更新成功的信息并将该更新成功的信息反馈至该服务器;若否,则生成更新失败的信息并将该更新失败的信息反馈至该服务器。
优选地,该通信单元还用于将该编程文件接收单元生成的该应答信息、该错误信息、该更新成功的信息和该更新失败的信息回传至该服务器。
优选地,该第一存储单元为该电子模块内部的一FLASH或与该电子模块相连的一外部RAM(随机存取存储器),例如一SDRAM(同步动态随机存储器)。也就是说,只要将更新数据包和编程后的数据分开储存即可,这里第一存储单元和第二存储单元的划分也是为了将更新数据包和编程后的数据分开储存,以便在烧写完成后对编程前后的数据进行校验和的比对,以判断升级是否成功。
优选地,该电子模块为发动机控制模块、变速箱控制模块、通信系统控制模块、车门控制模块、座椅控制模块、人机界面控制面板模块或灯组模块。
本发明还提供一种服务器,其特点在于,其包括一通信模块、一控制模块和一存储模块,其中,
该通信模块用于接收来自一车载终端的更新指令并将该更新指令送入该控制模块,其中,该车载终端设于一设有电子模块的车辆中,其中,该更新指令用于获取该存储模块中电子模块的最新软件版本的更新数据包;
该控制模块用于根据该更新指令获取存储于该存储模块中的电子模块的最新软件版本的更新数据包,并将该更新数据包回传至该通信模块;
该通信模块还用于将来自该控制模块的该更新数据包发送至该车载终端;
该存储模块用于储存电子模块的最新软件版本的更新数据包。
优选地,该通信模块还用于接收来自该车载终端的版本查询指令并将该版本查询指令送入该控制模块,其中,该版本查询指令用于查询车辆的电子模块的最新软件版本;
该控制模块还用于根据该版本查询指令查询该存储模块中电子模块的最新软件版本,并将最新软件版本回传至该通信模块;
该通信模块还用于将来自该控制模块的最新软件版本发送至该车载终端。
本发明还提供一种服务器,其特点在于,其包括一通信模块、一控制模块和一存储模块,其中,
该控制模块用于解析用户输入的控制指令,该控制指令包括获取该存储模块中电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令,该控制模块还用于根据该更新指令获取该存储模块中电子模块的最新软件版本的更新数据包,并将该更新数据包送入该通信模块;
该通信模块用于将该升级指令和该更新数据包发送至该电子模块;
该存储模块用于储存电子模块的最新软件版本的更新数据包。
优选地,该控制指令还包括获取该车辆的电子模块的当前软件版本的版本获取指令、查询车辆的电子模块的最新软件版本的版本查询指令,其中,该控制模块还用于根据该版本查询指令查询该存储模块中电子模块的最新软件版本,以及将该版本获取指令送入该通信模块;
该通信模块用于将该版本获取指令发送至该电子模块,以及接收来自该电子模块的当前软件版本,并且将该当前软件版本送入该控制模块;
该控制模块还用于比较电子模块的当前软件版本是否与最新软件版本一致,若是,则提示用户电子模块的当前软件版本已是最新软件版本;若否,询问用户是否升级电子模块至最新软件版本。也就是说,除了采用设于车辆上的车载终端输入控制指令以判断是否需要升级软件之外,用户还可以在服务器端通过服务器的该通信模块远程发送控制指令至该电子模块来控制电子模块的更新升级,所有的控制指令均由服务器端送入该电子模块,判断是否升级电子模块软件的操作也由服务器完成,此时,该电子模块只需设置一与该服务器的通信模块的通信模式相适应的通信模块即可。又或者,也可以利用一车载终端来实现各种指令的传递以及根据该版本获取指令获取电子模块的当前软件版本的操作,即该服务器将解析后的控制指令通过通信模块送入该车载终端的通信模块,再由该车载终端通过车辆内部的CAN总线实现该车载终端与该电子模块之间的数据通信,其中,这里的车载终端可以采用上述的车载终端,也可采用现有的车载终端,只要该车载终端具备上述的数据通信的功能即可,例如控制指令的传递、更新数据包的发送、将当前软件版本的回传至该服务器等等。
本发明还提供一种服务器,其特点在于,其包括一通信模块、一控制模块和一存储模块,其中,
该控制模块用于解析用户输入的控制指令,该控制指令包括获取该存储模块中车辆的电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令,该控制模块还用于根据该更新指令获取该存储模块中电子模块的最新软件版本的更新数据包,并将该更新数据包送入该通信模块;
该通信模块用于将该升级指令和该更新数据包发送至一车载终端,该车载终端设于该车辆中;
该存储模块用于储存电子模块的最新软件版本的更新数据包。可以看出,在这种情况下,用户在服务器端通过上述服务器的该通信模块远程发送控制指令至该车载终端来控制电子模块的更新升级,此时该车载终端仅用于各种指令的传递以及根据该版本获取指令获取电子模块的当前软件版本。
优选地,该控制指令还包括获取该车辆的电子模块的当前软件版本的版本获取指令、查询车辆的电子模块的最新软件版本的版本查询指令,其中,该控制模块还用于根据该版本查询指令查询该存储模块中电子模块的最新软件版本,以及将该版本获取指令送入该通信模块;
该通信模块用于将该版本获取指令发送至该车载终端,以及接收来自该车载终端的当前软件版本,并且将该当前软件版本送入该控制模块;
该控制模块还用于比较电子模块的当前软件版本是否与最新软件版本一致,若是,则提示用户电子模块的当前软件版本已是最新软件版本;若否,询问用户是否升级电子模块至最新软件版本。
优选地,该通信模块为3G模块或WIFI模块。
本发明还提供一种电子模块升级装置,其特点在于,其包括一CAN模块、一控制模块和一存储模块,其中,
该控制模块用于解析用户输入的控制指令,该控制指令包括获取该存储模块中电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令,该控制模块还用于根据该更新指令获取电子模块的最新软件版本的更新数据包,并将该更新数据包送入该CAN模块;
该CAN模块用于将该升级指令和该更新数据包发送至该电子模块;
该存储模块用于储存电子模块的最新软件版本的更新数据包,
其中,该电子模块升级装置通过CAN总线与该电子模块相连。该电子模块升级装置用于在该电子模块进入市场前或者在电子模块的测试阶段或者在电子模块入厂维修时的升级,即该电子模块升级装置与该电子模块之间可以采用CAN总线的物理连接,而所有的指令、数据包均经由该CAN总线传递。该电子模块升级装置可以为一PC或一移动终端。
优选地,该控制指令还包括获取该车辆的电子模块的当前软件版本的版本获取指令、查询车辆的电子模块的最新软件版本的版本查询指令,该控制模块还用于根据该版本查询指令查询该存储模块中电子模块的最新软件版本,以及将该版本获取指令送入该CAN模块;
该CAN模块用于将该版本获取指令发送至该电子模块,以及接收来自该电子模块的当前软件版本,并且将该当前软件版本送入该控制模块;
该控制模块还用于比较电子模块的当前软件版本是否与最新软件版本一致,若是,则提示用户电子模块的当前软件版本已是最新软件版本;若否,询问用户是否升级电子模块至最新软件版本。
优选地,该CAN模块还用于接收该电子模块发送的表示该更新数据包接收成功的应答信息,以及接收该电子模块发送的表示该更新数据包接收失败的错误信息,并且将该错误信息送入该控制模块,以及该CAN模块还用于接收该电子模块发送的更新成功的信息和更新失败的信息;
当该控制模块接收到该错误信息时,该控制模块还用于控制该CAN模块通过车辆的CAN总线重新发送该更新数据包至电子模块。
本发明还提供一种车辆,其特点在于,其包括如上所述的车载终端和/或如上所述的电子模块。
本发明还提供一种电子模块升级系统,其特点在于,
该电子模块升级系统包括如上所述的车载终端和如上所述的电子模块以及如上所述的服务器;或者,该电子模块升级系统包括如上所述的电子模块以及如上所述的服务器;或者,该电子模块升级系统包括如上所述的电子模块以及如上所述的电子模块升级装置,换句话说,该电子模块升级系统包括:
接收并解析用户输入的控制命令的装置,该控制指令包括获取一车辆的电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令;
根据该更新指令获取电子模块的最新软件版本的更新数据包的装置;
根据该升级指令将该更新数据包发送至该电子模块的装置;
将储存于该电子模块中的当前软件版本的数据擦除,并将该更新数据包烧写至该电子模块中以形成编程后的数据的装置;
以及,比较该更新数据包的校验和是否与该编程后的数据的校验和一致的装置,若校验和一致,提示用户升级成功;若校验和不一致,提示用户升级失败。
本发明还提供一种电子模块升级方法,其特点在于,其包括以下步骤:
步骤S1、接收并解析用户输入的控制命令,该控制指令包括获取一车辆的电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令;
步骤S2、根据该更新指令获取电子模块的最新软件版本的更新数据包;
步骤S3、根据该升级指令将该更新数据包发送至该电子模块;
步骤S4、将储存于该电子模块中的当前软件版本的数据擦除,并将该更新数据包烧写至该电子模块中以形成编程后的数据;
步骤S5、比较该更新数据包的校验和是否与该编程后的数据的校验和一致,若是,提示用户升级成功;若否,提示用户升级失败。
优选地,该控制指令还包括获取车辆的电子模块的当前软件版本的版本获取指令、查询车辆的电子模块的最新软件版本的版本查询指令,
其中,步骤S1之前还包括以下步骤:
S01、接收并解析用户输入的版本获取指令和版本查询指令;
S02、根据该版本获取指令获取电子模块的当前软件版本以及根据该版本查询指令获得电子模块的最新软件版本;
S03、比较电子模块的当前软件版本是否与最新软件版本一致,若是,则提示用户电子模块的当前软件版本已是最新软件版本;若否,判断是否收到用户的控制指令,若是,进入步骤S1;若否,结束操作。
优选地,步骤S3还包括以下步骤:
S31、该电子模块接收该更新数据包;
S32、在该更新数据包接收完成之后,对该更新数据包进行和校验,若和校验无误,则进入步骤S4;若和校验有误,则该电子模块提示用户重发该更新数据包,并返回步骤S31。
优选地,该电子模块升级方法采用如上所述的电子模块升级系统实现。
本发明的积极进步效果在于:本发明的车载终端、电子模块、电子模块升级装置、系统及方法,车辆生产厂商可以便捷管理不同车型、不同电子模块的软件版本的更新升级。在车辆出厂前,可以利用CAN总线将电子模块升级装置与该电子模块物理连接,直接接到车辆的CAN诊断口,一次性对车辆所有电子模块进行程序烧写以将电子模块的软件版本升级到最新软件版本;在车辆进入市场后,当电子模块需要软件升级时,既可以将车辆送回车厂利用CAN总线接到诊断口进行现场升级,也可以利用无线网络发送控制指令和获取更新数据包,对指定车型上指定电子模块进行远程软件升级。
附图说明
图1为本发明的一实施例的车载终端的结构框图。
图2为本发明的另一实施例的车载终端的结构框图。
图3为本发明的一实施例的电子模块的结构框图。
图4为本发明的另一实施例的电子模块的结构框图。
图5为本发明的一实施例的电子模块升级系统的结构框图。
图6为本发明的另一实施例的电子模块升级系统的结构框图。
图7为本发明的又一实施例的电子模块升级系统的结构框图。
图8为本发明的一实施例的电子模块升级装置的结构框图。
图9为本发明的一实施例的电子模块升级方法的流程图。
图10为本发明的另一实施例的电子模块升级方法的流程图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
参考图1,介绍本发明的一车载终端。
如图1所示,该车载终端1包括一控制模块11、一CAN模块12和一通信模块13,其中,
该控制模块11用于解析用户输入的控制指令,该控制指令包括获取电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令,该控制模块11还用于根据升级指令控制该CAN模块通过车辆的CAN总线将该更新数据包送至电子模块以供电子模块安装该更新数据包,以及将更新指令送入该通信模块13;
该CAN模块12用于利用车辆的CAN总线实现该车载终端1与电子模块之间的数据通信;
该通信模块13用于将更新指令发送至一服务器,以及接收该服务器回传的电子模块的最新软件版本的更新数据包。其中,在该车辆中,该车载终端1与各个电子模块之间通过CAN总线通信,该车载终端1可以集成于车辆的娱乐系统中,也可集成于车辆的导航系统中,当然该车载终端也可以不依赖于娱乐系统或导航系统而单独设置于该车辆中。在本实施例中,该车载终端集成于该车辆的一娱乐系统中。而控制指令可以采用传统的输入方式送入该车载终端1,并且由该控制模块11对该控制指令进行解析。
此外,该控制指令还包括获取车辆的电子模块的当前软件版本的版本获取指令、查询车辆的电子模块的最新软件版本的版本查询指令,该控制模块11还用于根据版本获取指令控制该CAN模块12通过车辆的CAN总线获取电子模块的当前软件版本以及将版本查询指令送入该通信模块13;
该通信模块13用于将版本查询指令发送至一服务器,以及接收该服务器回传的电子模块的最新软件版本;
该控制模块11还用于比较电子模块的当前软件版本是否与最新软件版本一致,若是,则提示用户电子模块的当前软件版本已是最新软件版本;若否,询问用户是否升级电子模块至最新软件版本。提示用户的具体方式可以采用现有的提示方式,本实施例中以弹出对话框的形式询问用户,并等待用户输入指令以确认是否需要将电子模块的软件升级至最新软件版本。
除了上述功能之外,该CAN模块12还用于接收该电子模块发送的表示该更新数据包接收成功的应答信息,以及接收该电子模块发送的表示该更新数据包接收失败的错误信息,并且将该错误信息送入该控制模块11,以及该CAN模块12还用于接收该电子模块发送的更新成功的信息和更新失败的信息,在接收到上述信息后,可以将上述信息显示给用户,并等待用户的进一步操作;
当该控制模块11接收到该错误信息时,该控制模块11还用于控制该CAN模块12通过车辆的CAN总线重新发送该更新数据包至电子模块。
较为常用的是,该通信模块13还用于接收来自该服务器的版本获取指令,并将该版本获取指令送入该控制模块11。也就是说,除了本地输入控制指令之外,用户还可以在服务器端通过服务器与该通信模块13之间的信号连接远程发送控制指令至该车载终端1。
如上所述,用户还可以在本地输入控制指令,即该车载终端1还包括一指令接收模块14,用于接收用户的控制指令并将该控制指令送入该控制模块11。在本实施例中,该指令接收模块14为一触摸屏,该触摸屏除了用于供用户输入控制指令外,还用于显示该应答信息、该错误信息、该更新成功的信息和该更新失败的信息。
另外,本实施例中该通信模块13为3G模块。当然本领域技术人员还可以采用其他现在的通信模块,只要该通信模块的通信方式与该服务器的通信方式相适应即可。
接下来参考图2,介绍本发明的另一车载终端1’。
如图2所示,该车载终端1’,包括一控制模块11’、一CAN模块12’和一通信模块13’,其中,
该通信模块13’用于接收来自一服务器的控制指令以及车辆的电子模块的最新软件版本的更新数据包,该控制指令包括获取该车辆的电子模块的当前软件版本的版本获取指令和为电子模块安装最新软件版本的更新数据包的升级指令,
该控制模块11’用于根据升级指令控制该CAN模块12’通过车辆的CAN总线将该更新数据包送至电子模块以供电子模块安装该更新数据包,以及将该版本获取指令送入该CAN模块12’以获取该电子模块的当前软件版本;
该CAN模块12’用于利用车辆的CAN总线将该更新数据包和该版本获取指令送入该电子模块,以及接收该电子模块回传的当前软件版本;
该通信模块13’还用于将该当前软件版本回传至该服务器。
下面参考图3,结合上述车载终端1,介绍本发明的一电子模块2。
如图3所示,该电子模块2包括:一初始化单元21、一CAN单元22、一编程文件接收单元23、一编程单元24、一控制单元25以及一第一存储单元26和一第二存储单元27,其中,
该初始化单元21用于初始化该CAN单元22、该编程文件接收单元23、该编程单元24以及该第一存储单元26和该第二存储单元27;该初始化单元21还用于片内缓存分配以及内核代码的搬移工作;
该CAN单元22用于通过车辆的CAN总线接收来自该CAN模块12的该版本获取指令并将该版本获取指令送入该控制单元25,以及用于将电子模块的当前软件版本回传至该CAN模块12;该CAN单元22还用于通过车辆的CAN总线接收来自该CAN模块12的该更新数据包并且将该更新数据包送入该编程文件接收单元23;
该控制单元25用于根据该版本获取指令并获取电子模块的当前软件版本,并将当前软件版本送入该CAN单元22;
该编程文件接收单元23用于接收来自CAN单元22的该更新数据包以及在该更新数据包接收完成之后进行和校验,倘若和校验无误,则生成表示该更新数据包接收完成的应答信息并将该应答信息反馈至该控制模块11,并且将该更新数据包送入该第一存储单元26储存;倘若和校验有误,则生成表示该更新数据包接收失败的错误信息并将该错误信息反馈至该控制模块11,并等待该控制模块11重新发送该更新数据包;
该编程单元24用于将储存于该第二存储单元27中的当前软件版本的数据擦除,并将该更新数据包烧写至该第二存储单元27中以形成编程后的数据;
该第一存储单元26用于储存该更新数据包;
该第二存储单元27用于储存当前软件版本的数据和该编程后的数据,当然本领域技术人员可以理解的是,当前软件版本的数据和该编程后的数据不是同时存在的,而是先擦除了当前软件版本的数据之后,再将更新数据包的数据烧写至该第二存储单元中以形成编程后的数据,也就是说,该编程后的数据对应的是最新软件版本;
其中该编程文件接收单元23还用于比较该更新数据包的校验和是否与该编程后的数据的校验和一致,若是,则生成更新成功的信息并将该更新成功的信息反馈至该控制模块11;若否,则生成更新失败的信息并将该更新失败的信息反馈至该控制模块11。
其中,该CAN单元22还用于将该编程文件接收单元23生成的该应答信息、该错误信息、该更新成功的信息和该更新失败的信息通过车辆的CAN总线回传至该控制模块11。
另外,该第一存储单元26为该电子模块内部的一FLASH或与该电子模块相连的一外部RAM,例如一SDRAM。也就是说,只要将更新数据包和编程后的数据分开储存即可,这里第一存储单元和第二存储单元的划分也是为了将更新数据包和编程后的数据分开储存,以便在烧写完成后对编程前后的数据进行校验和的比对,以判断升级是否成功。
较为常用的是,该电子模块为发动机控制模块、变速箱控制模块、通信系统控制模块、车门控制模块、座椅控制模块、人机界面控制面板模块或灯组模块。
另外,参考图4,介绍本发明的另一电子模块2’。
如图4所示,该电子模块2’,其包括:一初始化单元21’、一通信单元22’、一编程文件接收单元23’、一编程单元24’、一控制单元25’以及一第一存储单元26’和一第二存储单元27’,其中,
该初始化单元21’用于初始化该通信单元22’、该编程文件接收单元23’、该编程单元24’以及该第一存储单元26’和该第二存储单元27’;
该通信单元22’用于接收来自一服务器的用于获取车辆的电子模块的当前软件版本的版本获取指令并将该版本获取指令送入该控制单元25’,以及用于将电子模块的当前软件版本回传至该服务器;该通信单元22’还用于接收来自该服务器的电子模块的最新软件版本的更新数据包并且将该更新数据包送入该编程文件接收单元23’;
该控制单元25’用于根据该版本获取指令并获取电子模块的当前软件版本,并将当前软件版本送入该通信单元22’;
该编程文件接收单元23’用于接收来自通信单元22’的该更新数据包以及在该更新数据包接收完成之后进行和校验,倘若和校验无误,则生成表示该更新数据包接收完成的应答信息并将该应答信息反馈至该服务器,并且将该更新数据包送入该第一存储单元26’储存;倘若和校验有误,则生成表示该更新数据包接收失败的错误信息并将该错误信息反馈至该服务器,并等待该服务器重新发送该更新数据包;
该编程单元24’用于将储存于该第二存储单元27’中的当前软件版本的数据擦除,并将该更新数据包烧写至该第二存储单元27’中以形成编程后的数据;
该第一存储单元26’用于储存该更新数据包;
该第二存储单元27’用于储存当前软件版本的数据和该编程后的数据;
其中该编程文件接收单元23’还用于比较该更新数据包的校验和是否与该编程后的数据的校验和一致,若是,则生成更新成功的信息并将该更新成功的信息反馈至该服务器;若否,则生成更新失败的信息并将该更新失败的信息反馈至该服务器。
参考图5,结合图1、图3和上述介绍的车载终端1以及电子模块2,介绍本发明的一服务器3以及包括该服务器3的电子模块升级系统。
本发明所述的一服务器3,包括一通信模块32、一控制模块31和一存储模块33,其中,
该通信模块32用于接收来自一车载终端的更新指令并将该更新指令送入该控制模块31,其中,该车载终端设于一设有电子模块的车辆中,其中,该更新指令用于获取该存储模块中电子模块的最新软件版本的更新数据包;
该控制模块31用于根据该更新指令获取存储于该存储模块33中的电子模块的最新软件版本的更新数据包,并将该更新数据包回传至该通信模块32;
该通信模块32还用于将来自该控制模块31的该更新数据包发送至该车载终端;
该存储模块33用于储存电子模块的最新软件版本的更新数据包。
除此之外,该通信模块32还用于接收来自该车载终端的版本查询指令并将该版本查询指令送入该控制模块31,其中,该版本查询指令用于查询车辆的电子模块的最新软件版本;
该控制模块31还用于根据该版本查询指令查询该存储模块中电子模块的最新软件版本,并将最新软件版本回传至该通信模块32;
该通信模块32还用于将来自该控制模块的最新软件版本发送至该车载终端。
参考图1、图3和图5,本发明的一电子模块升级系统包括上述的车载终端1、上述的电子模块2以及上述的服务器3,其中,该车载终端1的通信模块13与该服务器3的通信模块32均采用3G模块,该车载终端1的CAN模块12和该电子模块2的CAN单元22之间通过CAN总线实现数据交互。
参考图4和图6,结合上述的介绍的电子模块2’,介绍本发明的另一服务器4以及包括该服务器4的另一电子模块升级系统。
参考图6,本发明所述的另一服务器4,包括一通信模块42、一控制模块41和一存储模块43,其中,
该控制模块41用于解析用户输入的控制指令,该控制指令包括获取该存储模块43中电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令,该控制模块41还用于根据该更新指令获取该存储模块43中电子模块的最新软件版本的更新数据包,并将该更新数据包送入该通信模块42;
该通信模块42用于将该升级指令和该更新数据包发送至该电子模块2’;
该存储模块43用于储存电子模块的最新软件版本的更新数据包。
除此之外,该控制指令还包括获取该车辆的电子模块的当前软件版本的版本获取指令、查询车辆的电子模块的最新软件版本的版本查询指令,其中,该控制模块41还用于根据该版本查询指令查询该存储模块43中电子模块的最新软件版本,以及将该版本获取指令送入该通信模块42;
该通信模块42用于将该版本获取指令发送至该电子模块,以及接收来自该电子模块的当前软件版本,并且将该当前软件版本送入该控制模块41;
该控制模块41还用于比较电子模块的当前软件版本是否与最新软件版本一致,若是,则提示用户电子模块的当前软件版本已是最新软件版本;若否,询问用户是否升级电子模块至最新软件版本。可以看出,在本实施例中,用户在服务器端通过图6所述的服务器4的该通信模块42远程发送控制指令至该电子模块2’来控制电子模块2’的更新升级,所有的控制指令均由服务器送入该电子模块,判断是否升级电子模块软件的操作也由服务器完成。
参考图4和图6,本发明的另一电子模块升级系统包括上述的电子模块2’以及上述的服务器4,其中,该服务器4的通信模块42与该电子模块2’的通信单元22’均采用3G模块。
参考图2、图3和图7,结合上述的介绍的车载终端1’和电子模块2,介绍本发明的又一服务器5以及包括该服务器5的又一电子模块升级系统。
参考图7,本发明所述的又一种服务器5,其包括一通信模块52、一控制模块51和一存储模块53,其中,
该控制模块51用于解析用户输入的控制指令,该控制指令包括获取该存储模块53中车辆的电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令,该控制模块51还用于根据该更新指令获取该存储模块中电子模块的最新软件版本的更新数据包,并将该更新数据包送入该通信模块52;
该通信模块52用于将该升级指令和该更新数据包发送至一车载终端1’,该车载终端设于该车辆中;
该存储模块53用于储存电子模块的最新软件版本的更新数据包。
除此以外,该控制指令还包括获取该车辆的电子模块的当前软件版本的版本获取指令、查询车辆的电子模块的最新软件版本的版本查询指令,其中,该控制模块51还用于根据该版本查询指令查询该存储模块中电子模块的最新软件版本,以及将该版本获取指令送入该通信模块52;
该通信模块52用于将该版本获取指令发送至该车载终端1’,以及接收来自该车载终端1’的当前软件版本,并且将该当前软件版本送入该控制模块51;
该控制模块51还用于比较电子模块的当前软件版本是否与最新软件版本一致,若是,则提示用户电子模块的当前软件版本已是最新软件版本;若否,询问用户是否升级电子模块至最新软件版本。
参考图2、图3和图7,本发明的又一电子模块升级系统包括上述的车载终端1’、上述的电子模块2’以及上述的服务器5,可以看出,在本实施例中,用户在服务器端通过图7所述的服务器5的该通信模块53远程发送控制指令至该车载终端1’来控制电子模块2的更新升级,此时该车载终端1’仅用于各种指令的传递以及根据该版本获取指令获取电子模块的当前软件版本。
参考图8,介绍本发明的一电子模块升级装置6。
如图8所示,该电子模块升级装置6包括一CAN模块62、一控制模块61和一存储模块63,其中,
该控制模块61用于解析用户输入的控制指令,该控制指令包括获取该存储模块63中电子模块的最新软件版本的更新数据包的更新指令和为电子模块安装最新软件版本的更新数据包的升级指令,该控制模块61还用于根据该更新指令获取电子模块的最新软件版本的更新数据包,并将该更新数据包送入该CAN模块62;
该CAN模块62用于将该升级指令和该更新数据包发送至该电子模块;
该存储模块63用于储存电子模块的最新软件版本的更新数据包,
其中,该电子模块升级装置6通过CAN总线直接与该电子模块相连,也就是说,该电子模块升级装置6与该电子模块直接通过车辆内部的CAN总线通信。该电子模块升级装置6用于在该电子模块进入市场前或者在电子模块的测试阶段或者在电子模块入厂维修时的升级,即该电子模块升级装置与该电子模块之间可以采用CAN总线的物理连接,而所有的指令、数据包均经由该CAN总线传递。本实施例中,该电子模块升级装置6为一PC。
除此之外,该控制指令还包括获取该车辆的电子模块的当前软件版本的版本获取指令、查询车辆的电子模块的最新软件版本的版本查询指令,该控制模块61还用于根据该版本查询指令查询该存储模块中电子模块的最新软件版本,以及将该版本获取指令送入该CAN模块62;
该CAN模块62用于将该版本获取指令发送至该电子模块,以及接收来自该电子模块的当前软件版本,并且将该当前软件版本送入该控制模块61;
该控制模块61还用于比较电子模块的当前软件版本是否与最新软件版本一致,若是,则提示用户电子模块的当前软件版本已是最新软件版本;若否,询问用户是否升级电子模块至最新软件版本。
本发明上述的车载终端1、车载终端1’、电子模块2和电子模块2’可被设于一车辆中,该车辆可以为汽车或摩托车。
参考图9,介绍本发明的一种电子模块升级方法,其采用如图5所示的电子模块升级系统,具体来说,该电子模块升级方法包括以下步骤:。
步骤100,车载终端1的指令接收模块14接收用户输入的版本获取指令和版本查询指令,并将该版本获取指令和该版本查询指令送入该控制模块11。
步骤101,控制模块11解析用户输入的版本获取指令和版本查询指令将版本获取指令送入CAN模块12,以及将版本查询指令送入通信模块13。
步骤102,CAN模块12将版本获取指令发送至电子模块以获得当前软件版本,通信模块13将版本查询指令发送至服务器以获得最新软件版本。
步骤103,电子模块2和服务器3分别将当前软件版本和最新软件版本回传至车载终端1的控制模块11。
步骤104,控制模块11判断当前软件版本是否与最新软件版本一致,若一致,进入步骤105;若不一致,进入步骤106。
步骤105,提示用户电子模块的当前软件版本已是最新的。
步骤106,询问用户是否更新至最新软件版本,例如以弹出对话框的形式询问用户是否立即更新。
步骤107,控制模块11判断是否收到用户的更新指令和升级指令,若是,进入步骤108;若否,进入步骤118,用户确认不更新,结束流程。
步骤108,控制模块11解析用户输入的更新指令并将更新指令送入通信模块13。
步骤109,服务器的控制模块31根据更新指令获取存储模块33中的更新数据包并将更新数据包回传至车载终端1。
步骤110,控制模块11根据升级指令通过CAN模块12将更新数据包送入电子模块2。
步骤111,编程文件接收模块完成更新数据包的接收之后进行和校验,例如采用奇偶校验算法。
步骤112,编程文件接收模块判断和校验是否有误,若是,进入步骤113;若否,进入步骤114。
步骤113,编程文件接收模块将错误信息反馈至车载终端请求重发更新数据包,并返回步骤111。即如果和校验没有通过,则向车载终端发送错误信息,而该车载终端在收到错误信息后继续重发该更新数据包的数据帧给该电子模块。
步骤114,编程模块擦除第二存储单元中的当前软件版本的数据并将更新数据包的数据烧写入第二存储单元。
步骤115,编程文件接收模块判断编程前后的数据的校验和是否一致,若是,进入步骤116;若否,进入步骤117。
步骤116,提示用户更新成功。
步骤117,提示用户更新失败。
步骤118,结束流程。
上述步骤100~103在实际中的具体实现是本领域的现有技术,并非本发明的发明点所在。
接下来,参考图10,介绍本发明的另一电子模块升级方法,该电子模块升级方法采用如图4所示的电子模块2’和如图8所示的电子模块升级装置6。
步骤201,控制模块61解析用户输入的版本获取指令和版本查询指令并将版本获取指令送入CAN模块62。
步骤202,CAN模块62将版本获取指令发送至电子模块以获得当前软件版本,控制模块61根据版本查询指令查询存储模块63中的最新软件版本。
步骤203,电子模块2’将当前软件版本和最新软件版本回传至电子模块升级装置6的控制模块61。
步骤204,控制模块61判断当前软件版本是否与最新软件版本一致,若一致,进入步骤205;若不一致,进入步骤206。
步骤205,提示用户电子模块的当前软件版本已是最新的。
步骤206,询问用户是否更新至最新软件版本,例如以弹出对话框的形式询问用户是否立即更新。
步骤207,控制模块61判断是否收到用户的更新指令和升级指令,若是,进入步骤208;若否,进入步骤218,用户确认不更新,结束流程。
步骤208,控制模块61解析用户输入的更新指令并根据更新指令获得存储模块63中的更新数据包。
步骤209,控制模块61将该更新数据包送入CAN模块62。
步骤210,控制模块61根据升级指令通过CAN模块62将更新数据包送入电子模块2’。
步骤211,编程文件接收模块完成更新数据包的接收之后进行和校验,例如采用奇偶校验算法。
步骤212,编程文件接收模块判断和校验是否有误,若是,进入步骤213;若否,进入步骤214。
步骤213,编程文件接收模块将错误信息反馈至电子模块升级装置请求重发更新数据包,并返回步骤211。即如果和校验没有通过,则向电子模块升级装置发送错误信息,而该电子模块升级装置在收到错误信息后继续重发该更新数据包的数据帧给该电子模块2’。
步骤214,编程模块擦除第二存储单元中的当前软件版本的数据并将更新数据包的数据烧写入第二存储单元。
步骤215,编程文件接收模块判断编程前后的数据的校验和是否一致,若是,进入步骤216;若否,进入步骤217。
步骤216,提示用户更新成功。
步骤217,提示用户更新失败。
步骤218,结束流程。
上述步骤201~203在实际中的具体实现是本领域的现有技术,并非本发明的发明点所在。
本发明的车载终端、电子模块、电子模块升级装置、系统及方法可以有效车辆管理各个电子模块的软件,并且实现了远程的电子模块批量升级,不仅减少人工升级的成本,而且节约由于电子模块自身的故障造成的损失,提高整车厂商品牌质量效益。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。