一种车辆电子部件更新方法及装置
技术领域
本发明涉及智能汽车领域,具体涉及一种车辆电子部件更新方法及装置。
背景技术
智能车辆是一个集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,它集中运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技术,是典型的高新技术综合体。目前对智能车辆的研究主要致力于提高汽车的安全性、舒适性,以及提供优良的人车交互界面。
为了实现智能控制、信息融合和交互等功能,车辆中通常设有诸如控制器、执行器、处理器等多种电子部件,这些电子部件需要由软件程序来驱动,为了不断完善功能,这些软件程序还需要被频繁的更新。随着软件和硬件技术的发展,目前对车辆电子部件的更新方式有多种,例如可以通过互联网与车载处理器进行通信以实现远程更新,又如可以通过外接诊断设备、电子设备连接车载处理器进行有线的本地更新。
随着更新方式的多样化,车载控制器在执行更新时可能会遇到指令冲突问题。具体而言,例如车辆同时提供两种更新接口或渠道,如果在其中一个渠道或接口正在接受更新数据对本地电子部件进行更新的期间,另一个渠道或接口也接收到了更新数据,并同时对本地电子部件进行更新,由此会引起被更新的电子部件发生混乱,导致软件或硬件出现错误,甚至使软件或硬件瘫痪。
发明内容
本发明要解决的是现有的车辆电子部件执行更新操作时可能发生混乱和错误的问题。
有鉴于此,本发明提供了一种车辆电子部件更新方法,包括:监测是否接收到用于更新车辆电子部件的更新数据;当接收到所述更新数据时,判断所述车辆电子部件是否正在执行更新操作;当所述车辆电子部件未执行更新操作时,利用所述更新数据对所述车辆电子部件进行更新操作。
优选地,当所述车辆电子部件正在执行更新操作时,持续执行所述判断所述车辆电子部件是否正在执行更新操作的步骤。
优选地,在利用所述更新数据对所述车辆电子部件进行更新操作时,还包括:将目标端口设置为预定状态。
优选地,所述判断所述车辆电子部件是否正在执行更新操作,包括:
检测目标端口的状态是否为预定状态;
当所述目标端口的不为预定状态时,判定所述车辆电子部件未执行更新操作。
优选地,所述目标端口为车载诊断系统接口,所述预定状态包括为所述车载诊断系统接口中的至少一个预定管脚为高电平。
优选地,所述判断所述车辆电子部件是否正在执行更新操作,包括:
判定是否能够从连接所述车辆电子部件的总线中获取到预定类型的报文;
当从连接所述车辆电子部件的总线中获取到预定类型的报文时,判定所述车辆电子部件正在执行更新操作。
相应地,本发明还提供一种车辆电子部件更新装置,包括:
更新监测单元,用于监测是否接收到用于更新车辆电子部件的更新数据;
冲突判断单元,用于当接收到所述更新数据时,判断所述车辆电子部件是否正在执行更新操作;
更新执行单元,用于当所述车辆电子部件未执行更新操作时,利用所述更新数据对所述车辆电子部件进行更新操作。
优选地,还包括:
队列执行单元,用于当所述车辆电子部件正在执行更新操作时,启动所述冲突判断单元。
优选地,还包括:
端口设置单元,用于在所述更新执行单元进行处理时,将目标端口设置为预定状态。
优选地,所述冲突判断单元,包括:
端口检测单元,用于检测目标端口的状态是否为预定状态;
状态判定单元,用于当所述目标端口的不为预定状态时,判定所述车辆电子部件未执行更新操作。
优选地,所述目标端口为车载诊断系统接口,所述预定状态包括为所述车载诊断系统接口中的至少一个预定管脚为高电平。
优选地,所述冲突判断单元,包括:
报文获取单元,用于判定是否能够从连接所述车辆电子部件的总线中获取到预定类型的报文;
状态判定单元,用于当从连接所述车辆电子部件的总线中获取到预定类型的报文时,判定所述车辆电子部件正在执行更新操作。
本发明实施例所提供的车辆电子部件更新方法及装置,通过在接收到用于更新车辆电子部件的更新数据时,可以确定数据的发送方和接收方需要对相应的更新对象进行更新,此时数据的接收方不是立即开始执行更新任务,而是判断更新对象即车辆电子部件是否正在执行更新操作,只有在更新对象当前未执行更新操作时,才下发更新数据,由此可以确保更新对象不会同时执行多个更新操作,有效避免出现混乱和错误。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了一种车辆电子系统的机构示意图;
图2示出了根据本发明实施例的车辆电子部件更新方法的流程图;
图3示出了根据本发明另一实施例的车辆电子部件更新方法的流程图;
图4示出了根据本发明实施例的车辆电子部件更新装置的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种车辆电子部件更新方法,该方法可以应用于车辆电子系统。图1示出了一种车辆电子系统,其中包括整车处理器11、车门控制器12、电机控制器13、发动机控制器14、离合器控制器15、车载诊断系统16以及车载诊断系统接口17,上述控制器均可以作为被更新的电子部件。各个控制器通过总线(通常为CAN总线)相互连接,其中整车处理器11可以作为与外部通信的部件,用于接收外部发送的更新数据及指令,这些数据和指令可以是移动终端发送的或者远程服务器发送的,当其接收到更新数据和指令后即可对其他控制器以及自身进行驱动程序的更新操作;车载诊断系统16作为外接的终端,也可以发送更新数据和指令,以更新上述控制器。由此可见,类似这种车辆电子系统包括两个接收更新数据的渠道或入口,即整车处理器11和车载诊断系统16均可以执行更新任务,因此这种系统很有可能引起更新冲突的问题。即使对于只有一个更新渠道或入口的系统,该入口也有可能连续多次接收到更新数据,同样可能引起更新冲突的问题,因此本实施例提供的方法不限于应用在图1所示的系统,对于只有一个更新渠道或者超过两个更新渠道的系统也能够起到作用。本实施例提供的方法可以由整车处理器11和/或车载诊断系统16来执行。
如图2所示,本实施例提供的车辆电子部件更新方法包括如下步骤:
S1,监测是否接收到用于更新车辆电子部件的更新数据,例如执行本方法的部件为上述整车处理器11,更新数据可以是云端服务器发送的,整车处理器11中可以设置更新进程来执行监测是否接收到更新任务,更新对象可以是上述任一个或多个处理器。在接收到更新任务时执行步骤S2,否则可以持续监测;
S2,判断车辆电子部件是否正在执行更新操作,也即判断更新数据的更新对象(例如整车处理器11本身、车门控制器12、电机控制器13、发动机控制器14和离合器控制器15中的一个或多个)是否正在执行更新操作。具体判断方式包括多种,例如可以查询自身此时是否正在执行更新任务,或者逐一查询各个更新对象当前的状态、进行何种数据处理等,都是可以判断出电子部件是否正在执行更新操作的。本实施例提供了一种优选的判断方式,具体将在下文中进行详细介绍。
当车辆电子部件未执行更新操作时,执行步骤S3;否则,即车辆电子部件正在执行更新操作时,有至少两种选择,第一种是放弃本次更新任务,即忽略或删除接收到的更新数据,停止后续操作;第二种是等待车辆电子部件执行更新操作,直至其更新结束,再执行步骤S3,也即持续执行步骤S2,直至车辆电子部件不在执行更新操作时执行步骤S3。
S3,利用更新数据对车辆电子部件进行更新操作,即向更新对象发送更新数据和指令,使其开始执行更新操作。
根据本发明实施例提供的车辆电子部件更新方法,通过在接收到用于更新车辆电子部件的更新数据时,可以确定数据的发送方和接收方需要对相应的更新对象进行更新,此时数据的接收方不是立即开始执行更新任务,而是判断更新对象即车辆电子部件是否正在执行更新操作,只有在更新对象当前未执行更新操作时,才下发更新数据,由此可以确保更新对象不会同时执行多个更新操作,有效避免出现混乱和错误。
关于上述步骤S2,车辆中的电子部件在执行更新任务时,系统总线中会有特定类型的报文,该报文可以是上述车载诊断系统16或者整车处理器11自己发送的。假设在步骤S2的执行过程中,车载诊断系统16正在对上述控制器进行更新处理,则系统总线中会存在车载诊断系统16向各个更新对象发送的报文,这个报文的名称是通常为TesterPresent,那么作为一个优选的实施方式,上述步骤S2可以包括如下步骤:
S21,判定是否能够从连接车辆电子部件的总线中获取到预定类型的报文,例如可以在整车控制器11中设置进程对总线上传递的报文进行监听,如果监听到TesterPresent报文,则表示车载诊断系统16正在执行更新任务,即从连接车辆电子部件的总线中获取到预定类型的报文时,执行步骤S22;否则可以判定车辆电子部件没有执行更新操作。
S22,判定车辆电子部件正在执行更新操作。
根据上述优选方案,执行更新方法的部件可以通过总线上的报文名称判断出是否有另一方正在执行更新任务,而不需要逐一判断每个更新对象的状态,由此可以提高更新冲突判断的效率。
本发明的另一个实施例还提供了一种车辆电子部件更新方法,该方法可以由图1所示的整车处理器11和/或车载诊断系统16来执行,本方法与前一实施例提供的方法的区别在于判断车辆电子部件是否正在执行更新操作的方式。如图3所示,该方法包括如下步骤:
S’1,监测是否接收到用于更新车辆电子部件的更新数据,在接收到更新任务时执行步骤S’2,否则可以持续监测;
S’2,检测目标端口的状态是否为预定状态,当目标端口的状态不为预定状态时,执行步骤S’3,否则执行步骤S’4。
S’3,判定车辆电子部件未执行更新操作,然后执行步骤S5。
S’4,判定车辆电子部件正在执行更新操作,与前一实施例相似,此时可以停止更新任务,或回到步骤S’2,持续检测端口状态,等待当前更新操作结束后再进行后续操作。
S’5,利用更新数据对车辆电子部件进行更新操作,将目标端口设置为预定状态。
上述目标端口可以是通过总线与各个控制器相连的一个端口,根据上述步骤,接收到更新数据的部件(整车处理器11或车载诊断系统16)在执行更新操作的同时可以将该端口设置为预定状态,由此,再次接收到另一更新数据的部件即可以通过判断这个端口的状态来确认当前是否有其他方或者自身是否正在执行更新任务。本发明实施例提供的车辆电子部件更新方法通过判断端口状态来判断当前是否有正在执行的更新任务,并由此来避免出现混乱和错误。
作为一个具体的实施方式,上述目标端口可以为图1所示的车载诊断系统接口17,预定状态可以是车载诊断系统接口17中的至少一个预定管脚为高电平。例如当前车载诊断系统16正在对各种控制器进行更新操作,此时车载诊断系统16可以将车载诊断系统接口17中的某一个或多个未占用的硬线管脚设置为高电平,此时如果整车处理器11接收到了更新数据,通过判断车载诊断系统接口17中的硬线管脚的电平状态即可确认各个控制器是否正在执行更新操作。类似地,整车处理器11先接收到更新数据时,也可以将车载诊断系统接口17中的硬线管脚设置为高电平,由此,车载诊断系统16也可以通过判断硬线管脚的电平状态来确认各个控制器是否正在执行更新操作。上述优选方案将车载诊断系统接口17作为受控端口,利用电平信号作为判定依据,具有较强的便利性和实用性。
本发明的另一个实施例还提供了一种车辆电子部件更新装置,如图4所示,包括:
更新监测单元41,用于监测是否接收到用于更新车辆电子部件的更新数据;
冲突判断单元42,用于当接收到所述更新数据时,判断所述车辆电子部件是否正在执行更新操作;
更新执行单元43,用于当所述车辆电子部件未执行更新操作时,利用所述更新数据对所述车辆电子部件进行更新操作。
根据本发明实施例提供的车辆电子部件更新装置,通过在接收到用于更新车辆电子部件的更新数据时,可以确定数据的发送方和接收方需要对相应的更新对象进行更新,此时数据的接收方不是立即开始执行更新任务,而是判断更新对象即车辆电子部件是否正在执行更新操作,只有在更新对象当前未执行更新操作时,才下发更新数据,由此可以确保更新对象不会同时执行多个更新操作,有效避免出现混乱和错误。
优选地,还包括:
队列执行单元44,用于当所述车辆电子部件正在执行更新操作时,启动所述冲突判断单元。
优选地,还包括:
端口设置单元45,用于在所述更新执行单元进行处理时,将目标端口设置为预定状态。
优选地,所述冲突判断单元42可以包括:
端口检测单元,用于检测目标端口的状态是否为预定状态;
状态判定单元,用于当所述目标端口的不为预定状态时,判定所述车辆电子部件未执行更新操作。
优选地,所述目标端口为车载诊断系统接口,所述预定状态包括为所述车载诊断系统接口中的至少一个预定管脚为高电平。
上述优选方案将车载诊断系统接口17作为受控端口,利用电平信号作为判定依据,具有较强的便利性和实用性。
优选地,所述冲突判断单元42可以包括:
报文获取单元,用于判定是否能够从连接所述车辆电子部件的总线中获取到预定类型的报文;
状态判定单元,用于当从连接所述车辆电子部件的总线中获取到预定类型的报文时,判定所述车辆电子部件正在执行更新操作。
根据上述优选方案,执行更新方法的部件可以通过总线上的报文名称判断出是否有另一方正在执行更新任务,而不需要逐一判断每个更新对象的状态,由此可以提高更新冲突判断的效率。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。