中继装置、程序更新系统以及程序更新方法与流程

文档序号:16637171发布日期:2019-01-16 07:07阅读:159来源:国知局
中继装置、程序更新系统以及程序更新方法与流程

本发明涉及中继装置、程序更新系统以及程序更新方法。

本申请要求于2016年6月2日提交的日本专利申请no.2016-110623的优先权,其全部内容通过引用合并于此。



背景技术:

已经提出了一项技术,其中车载通信装置等的网关从管理服务器接收用于作为车载控制装置的ecu(电子控制单元)的控制程序的更新程序,并且每个ecu通过使用所接收的更新程序将控制程序从旧版本重写为新版本,从而通过无线通信远程执行用于车辆中的ecu的程序更新(参考专利文献1和2)。

引文列表

专利文献

专利文献1:日本特开专利公报no.2007-65856

专利文献2:日本特开专利公报no.2011-70307



技术实现要素:

根据一个方面的中继装置是与属于车载网络的多个控制装置通信的中继装置。该中继装置包括:存储单元,其配置为在其中存储用于所述多个控制装置所需的同步更新的多个更新程序和所述车载网络的拓扑;车内通信单元,其配置为分别将所述多个更新程序传输到相应的控制装置;以及控制单元,其配置为控制所述车内通信单元,使得对于属于分别连接到所述中继装置并且彼此独立的多个车载网络的控制装置,所述控制装置对应的所述多个更新程序彼此并行传输。

根据另一方面的程序更新系统是包括属于车载网络的多个控制装置以及与多个控制装置通信的中继装置的程序更新系统。所述中继设备包括:存储单元,其配置为在其中存储用于所述多个控制装置所需的同步更新的多个更新程序和所述车载网络的拓扑;车内通信单元,其配置为分别将所述多个更新程序传输到相应的控制装置;以及控制单元,其配置为控制所述车内通信单元,使得对于属于分别连接到所述中继装置并且彼此独立的多个车载网络的控制装置,所述控制装置对应的所述多个更新程序彼此并行传输。

根据又一方面的程序更新方法是由与属于车载网络的多个控制装置通信的中继装置执行的程序更新方法。该方法包括以下步骤:存储用于所述多个控制装置所需的同步更新的多个更新程序和所述车载网络的拓扑;以及分别将所述多个更新程序传输到相应的控制装置。在传输所述多个更新程序的步骤中,对于属于分别连接到所述中继装置并且彼此独立的多个车载网络的控制装置,所述控制装置对应的所述多个更新程序彼此并行传输。

附图说明

图1是示出根据本公开的实施例的程序更新系统的整体配置的示图。

图2是示出网关的内部配置的框图。

图3是示出ecu的内部配置的框图。

图4是示出管理服务器的内部配置的框图。

图5是示出多个ecu的控制程序的同步更新的示例的顺序图。

图6是示出图5中的步骤s8中的调度处理的流程的流程图。

图7是示出用于同步更新所需的更新程序的第一具体示例的示图。

图8是示出在不执行调度处理的情况下的更新调度(a)和在执行调度处理的情况下的更新调度(b)彼此比较的示图。

图9是示出用于同步更新所需的更新程序的第二具体示例的示图。

图10是示出在不执行调度处理的情况下的更新调度(a)和在执行调度处理的情况下的更新调度(b)彼此比较的示图。

图11是示出用于同步更新所需的更新程序的第三具体示例的示图。

图12是示出在不执行调度处理的情况下的更新调度(a)和在根据调度条件a至调度条件c分别执行调度处理的情况下的更新调度(b)至更新调度(d)彼此比较的示图。

具体实施方式

本公开要解决的问题

在近期的车辆中,许多类型的设备彼此协同操作。因此,为了确保车辆的操作,可能需要在同一时间更新多个程序,这些程序是用于彼此相关的多个ecu的控制程序。执行每个控制程序的更新,使得将用于更新的程序提供给相应的ecu,并且ecu重写控制程序。因此,“所需更新时间”是用于一个ecu中的控制程序的更新所需的时间,其包括用于将更新程序传输到ecu所需的时间、以及用于重写控制程序所需的时间。

当需要在同一时间更新多个ecu的控制程序时,每个ecu执行上述的更新操作。在车辆中,一旦开始更新彼此相关的多个ecu的控制程序,就不能操作车辆,直到完成ecu的控制程序的更新。换句话说,在以下时间段(下文中,该时间段被称为“所需同步更新时间”)期间,不能对车辆进行操作:在用于将要在同一时间更新的多个控制程序的多个更新程序中,从向ecu传输第一更新程序的开始起至通过使用最后更新程序在ecu中完成重写为止。

如果需要在同一时间更新控制程序的多个ecu顺序地执行更新,则所需同步更新时间是各个ecu中所需更新时间的总和,因此所需同步更新时间长。所需同步更新时间越长,车辆无法操作的时间段就越长。

鉴于上述问题提出了本公开,并且本公开的目的是提供一种中继装置、程序更新系统和程序更新方法,能够当在同一时间更新多个程序时减少所需同步更新时间。

本公开的效果

根据本公开,可以减少安装在车辆中的控制装置的控制程序的所需同步更新时间。

实施例的描述

本公开的实施例至少包括以下内容。

即,根据一个实施例的中继装置是与属于车载网络的多个控制装置通信的中继装置。该中继装置包括存储单元、车内通信单元和控制单元。其中,存储单元配置为在其中存储多个更新程序和车载网络的拓扑,所述多个更新程序用于多个控制装置所需的同步更新;车内通信单元配置为分别将多个更新程序传输到相应的控制装置;以及控制单元配置为控制车内通信单元,使得对于属于分别连接到中继装置并且彼此独立的多个车载网络的控制装置,控制装置对应的多个更新程序彼此并行传输。

根据该配置,在用于同步更新的多个更新程序中,对于用于属于分别连接到中继装置并且彼此独立的多个车载网络的控制装置的更新程序,可在同一时间开始从中继装置传输这些更新程序。因此,与在完成相应控制程序的重写之后顺序地传输这些更新程序的情况相比,可以减少这些更新程序的传输时间段的总和。因此,可以减少所需同步更新时间。

优选地,在中继装置中,控制单元根据预定条件确定多个更新程序的传输顺序。

当在中继装置中设置适当的条件时,可以减少用于传输用于同步更新的多个更新程序所需的时间段的总和。因此,可以减少所需同步更新时间。

优选地,预定条件是允许最小化所需同步更新时间的调度条件,所需同步更新时间是下面描述的在控制装置中的每一个中的第一时间段、第二时间段和第三时间段的组合,所需同步更新时间是这样的时间段:其从在多个更新程序中关于要首先传输到相应控制装置的更新程序的第一时间段的开始起到在多个更新程序中关于最后完成重写控制程序所用的更新程序的第三时间段的结束为止,

第一时间段:每个更新程序的传输时间,

第二时间段:用于检查每个更新程序所需的时间,以及

第三时间段:用于使用每个更新程序重写控制程序所需的时间。

根据该配置,可以减少用于传输用于同步更新的多个更新程序所需的时间段的总和。因此,可以减少所需同步更新时间。

优选地,调度条件包括这样的条件:对于车载网络中的作为总线型拓扑的一个车载网络所包括的多个控制装置,在更新程序的传输顺序中较早地将更新程序给予具有较长第三时间段的控制装置。

根据该配置,较早地传输需要较长时间用于重写相应控制程序的更新程序,并且较早地开始重写控制程序。与重写控制程序并行地传输下一个更新程序。因此,与在完成相应控制程序的重写之后顺序地传输更新程序的情况相比,可以减少所需同步更新时间。

优选地,调度条件包括如下条件:对于车载网络中的作为总线型拓扑的一个车载网络所包括的多个控制装置,在更新程序的传输顺序中较早地将更新程序给予具有较短第一时间段的控制装置。

根据该配置,对于每个更新程序,可以在相应的控制装置中较早地开始检查更新程序和重写控制程序。此外,与检查更新程序和重写控制程序并行地传输下一个更新程序。因此,与在完成相应控制程序的重写之后顺序地传输更新程序的情况相比,可以进一步减少所需同步更新时间。

优选地,调度条件包括如下条件:对于车载网络中的作为总线型拓扑的一个车载网络所包括的多个控制装置,基于分配给控制装置的识别信息确定传输顺序。

根据该配置,通过预先向各个控制装置分配诸如名称的适当的识别信息,可以进一步减少所需的同步更新时间。

优选地,当车载网络中的一个车载网络包括直接连接到中继装置的主网络和从主网络分支出来的以主网络中包括的控制装置作为分支节点的本地网络时,调度条件包括以下条件:执行到属于本地网络的控制装置的传输早于到属于主网络的控制装置的传输。

根据该配置,可以与传输本地网络中的更新程序并行地经由主网络传输下一个更新程序,从而可以减少多个更新程序的传输时间段的总和。因此,可以进一步减少所需同步更新时间。

优选地,控制单元根据分支节点是否具有缓冲功能来确定主网络中的传输速度,该缓冲功能用于吸收主网络中的传输速度与本地网络中的传输速度之间的差异。

根据该配置,可以有效地执行主网络中的更新程序的传输,从而可以减少多个更新程序的传输时间段的总和。

根据另一实施例的程序更新系统是包括属于车载网络的多个控制装置以及与多个控制装置通信的中继装置的程序更新系统。该中继装置包括存储单元、车内通信单元和控制单元,存储单元配置为在其中存储用于多个控制装置所需的同步更新的多个更新程序和车载网络的拓扑;车内通信单元配置为分别将多个更新程序传输到相应的控制装置;以及控制单元配置为控制车内通信单元,使得对于属于分别连接到中继装置并且彼此独立的多个车载网络的控制装置,控制装置对应的多个更新程序彼此并行传输。

根据该配置,在用于同步更新的多个更新程序中,对于用于属于分别连接到中继装置并且彼此独立的多个车载网络的控制装置的更新程序,可以在同一时间开始从中继装置传输这些更新程序。因此,与在完成相应控制程序的重写之后顺序地传输这些更新程序的情况相比,可以减少这些更新程序的传输时间段的总和。因此,可以减少所需同步更新时间。

根据又一实施例的程序更新方法是由与属于车载网络的多个控制装置通信的中继装置执行的程序更新方法。该方法包括以下步骤:存储用于多个控制装置所需的同步更新的多个更新程序和车载网络的拓扑;以及将多个更新程序传输到相应的控制装置。在传输多个更新程序的步骤中,对于属于分别连接到中继装置并且彼此独立的多个车载网络的控制装置,控制装置对应的多个更新程序彼此并行传输。

根据该配置,在用于同步更新的多个更新程序中,对于用于属于分别连接到中继装置并且彼此独立的多个车载网络的控制装置的更新程序,可以在同一时间开始从中继装置传输这些更新程序。因此,与在完成相应控制程序的重写之后顺序地传输这些更新程序的情况相比,可以减少这些更新程序的传输时间段的总和。因此,可以减少所需同步更新时间。

实施例的详细描述

在下文中,将参考附图描述优选实施例。在以下描述中,相同的附图标记表示相同的组件和组成元件。其名称和功能也相同。因此,不必重复描述。

第一实施例

系统的整体配置

图1是示出根据本公开的实施例的程序更新系统的整体配置的示意图。

如图1所示,该实施例的程序更新系统包括能够经由广域通信网络2彼此通信的车辆1、管理服务器5和dl(下载)服务器6。

管理服务器5和dl服务器6由例如车辆1的汽车制造商操作,并且能够与预先登记为成员的用户所拥有的大量车辆1通信。

每个车辆1配备有网关10、无线通信单元15、多个ecu30以及由各个ecu30控制的各种车载装置(未示出)。

通信组(车载网络)存在于车辆1中,每个通信组由总线连接到公共车内通信线路的多个ecu30形成,并且网关10用作中继装置,该中继装置中继通信组之间的通信以及每个ecu30和外部装置之间的通信。因此,多个车内通信线路连接到网关10。

具体地,多个总线连接到网关10,每个总线具有连接到其上的一个或多个ecu30以形成通信组,由此形成网络拓扑。例如,如图1所示,作为主总线的第一总线nw1和第二总线nw2连接到网关10。三个ecu(ecu_a、ecu_b和ecu_c)30连接到总线nw1。一个ecu(ecu_f)30连接到总线nw2。其中三个ecu(ecu_a、ecu_b和ecu_c)30连接到主总线nw1的网络拓扑以及其中一个ecu(ecu_f)30连接到主总线nw2的网络拓扑是总线型拓扑。用作传输路径的主总线nw1和nw2中的每一个可以由与其连接的多个ecu共享。因此,为了避免信号的冲突和/或干扰,必须控制每个主总线,使得多个信号不会通过其同时传输。

多个ecu30中的任何一个ecu30可以进一步连接到本地总线。例如,在图1中,总线nw1分支到作为本地总线的第三总线nw3,其中连接到其上的一个ecu(ecu_c)30作为分支节点。还有两个ecu(ecu_e和ecu_d)30连接到总线nw3,从而形成总线型拓扑。ecu_c中继网关10与连接到总线nw3的两个ecu(ecu_e和ecu_d)30之间的信号的传输。

无线通信单元15可通信地连接到诸如移动电话网络的广域通信网络2,并且经由车内通信线路连接到网关10。网关10向ecu30传输信息,该信息已经经由广域通信网络2通过无线通信单元15从诸如管理服务器5和dl服务器6的外部装置接收。

网关10将从ecu30获得的信息传输到无线通信单元15,并且无线通信单元15将信息传输到诸如管理服务器5的外部装置。

虽然在图1中网关10经由车内通信线路连接到无线通信单元15,但是网关10和无线通信单元15可以配置为单个装置。

虽然在图1所示的程序更新系统中管理服务器5和dl服务器6配置为分离的服务器,但是这些服务器5和6可以配置为单个服务器装置。

网关的内部配置

图2是示出网关10的内部配置的框图。

如图2所示,网关10包括cpu(中央处理单元)11、ram(随机存取存储器)12、存储单元13、车内通信单元14等。虽然网关10经由车内通信线路连接到无线通信单元15,但是网关10和无线通信单元15可以配置为单个单元。

cpu11通过将存储在存储单元13中的一个或多个程序读出到ram12并执行读取的程序,使得网关10用作中继各种信息的中继装置。

例如,cpu11可以通过分时的方式在多个程序之间进行切换来并行地执行多个程序。cpu11可以是表示多个cpu组的cpu。在这种情况下,将由cpu11实现的功能是将由多个cpu组彼此协作实现的功能。ram12是诸如sram(静态ram)或dram(动态ram)的存储器元件,并且在其中临时存储将由cpu11执行的程序以及在执行程序时所需的数据等。

由cpu11实施的计算机程序可以在记录在诸如cd-rom或dvd-rom的已知记录介质中的状态下传送,或者可以通过从诸如服务器计算机的计算机设备的数据传输(下载)来传送。

在这方面,这同样适用于由稍后描述的ecu30的cpu31(参考图3)执行的计算机程序以及由稍后描述的管理服务器5的cpu51(参考图4)执行的计算机程序。

例如,存储单元13配置为诸如闪存或eeprom(电可擦除可编程只读存储器)的非易失性存储元件。

存储单元13具有存储区域,其中存储由cpu11执行的程序、在执行程序时所需的数据等。在存储单元13中,还存储从dl服务器6接收的用于各个ecu30的更新程序等。此外,在存储单元13中,还存储由ecu30和总线nw1至nw3形成的车载网络的拓扑。车载网络的拓扑用于稍后描述的更新程序的传输和调度处理。

多个ecu30经由布置在车辆1中的车内通信线路连接到车内通信单元14。车内通信单元14根据诸如can(控制器局域网)、canfd(具有灵活数据速率的can)、lin(本地互连网络)、以太网(注册商标)、或most(媒体导向系统传输:most是注册商标)的标准与ecu30通信。

车内通信单元14将从cpu11提供的信息传输到目标ecu30,并将从ecu30接收的信息提供给cpu11。车内通信单元14可以根据除上述通信标准以外的其他用于车载网络的通信标准与ecu30通信。

无线通信单元15由无线通信设备构成,该无线通信设备包括天线和通过天线执行无线电信号的发送/接收的通信电路。当无线通信单元15连接到诸如移动电话网络的广域通信网络2时,无线通信单元15能够与外部装置通信。

无线通信单元15经由由基站(未示出)形成的广域通信网络2将从cpu11提供的信息传输到诸如管理服务器5的外部装置,并且将从外部装置接收的信息提供给cpu11。

代替图2中所示的无线通信单元15,可以采用用作车辆1内部的中继装置的有线通信单元。有线通信单元具有连接器,将符合诸如usb(通用串行总线)或rs232c的标准的通信电缆连接到该连接器,并且有线通信单元经由通信电缆与连接到其的另一通信装置执行有线通信。

如果另一通信装置和诸如管理服务器5的外部装置可以经由广域通信网络2彼此无线通信,则外部装置和网关10能够通过由以下各项按顺序组成的通信路径彼此通信:外部装置、另一通信装置、有线通信单元和网关10。

ecu的内部配置

图3是示出ecu30的内部配置的框图。

如图3所示,ecu30包括cpu31、ram32、存储单元33、通信单元34等。ecu30是单独控制安装在车辆1中的目标装置的车载控制装置。ecu30的类型的示例包括发动机控制ecu、转向控制ecu、和门锁控制ecu。

cpu31通过将预先存储在存储单元33中的一个或多个程序读出到ram32并执行所读取的程序,来控制cpu31负责的目标装置的操作。cpu31也可以是表示多个cpu组的cpu,并且由cpu31执行的控制可以是由多个cpu组彼此协作执行的控制。

ram32是诸如sram或dram的存储元件,并且在其中临时地存储将由cpu31执行的程序以及在执行程序时所需的数据等。

存储单元33配置为例如诸如闪存或eeprom的非易失性存储元件、或诸如硬盘的磁存储装置。

存储在存储单元33中的信息包括例如计算机程序(以下称为“控制程序”),该计算机程序使得cpu31在车辆内部执行用于控制要控制的目标装置的信息处理。

网关10经由布置在车辆1中的车内通信线路连接到通信单元34。通信单元34根据诸如can、以太网或most的标准与网关10通信。

通信单元34将从cpu31提供的信息传输到网关10,并将从网关10接收的信息提供给cpu31。通信单元34可以根据除上述通信标准以外的用于车载网络的其他通信标准与网关10通信。

ecu30的cpu31包括启动单元35,启动单元35将由cpu31执行的控制模式在“正常模式”和“重新编程模式(reprogrammingmode)”(下文中也称为“重现模式(repromode)”)之间进行切换。

正常模式是ecu30的cpu31执行针对目标装置的原始控制(例如,针对燃料发动机的发动机控制、或针对门锁电动机的门锁控制)的控制模式。

重新编程模式是cpu31更新用于控制目标装置的控制程序的控制模式。

也就是说,重新编程模式是cpu31从存储单元33中的rom区域上执行控制程序的擦除/在存储单元33中的rom区域上执行控制程序的重写的控制模式。仅当cpu31处于该控制模式时,才允许cpu31将存储在存储单元33中的rom区域中的控制程序更新为新版本的控制程序。

当cpu31在重现模式下将新版本的控制程序写入存储单元33时,启动单元35临时重启(重置)ecu30,并对写入了新版本的控制程序的存储区域执行验证处理。

在完成验证处理之后,启动单元35利用更新的控制程序操作cpu31。

管理服务器的内部配置

图4是示出管理服务器5的内部结构的框图。

如图4所示,管理服务器5包括cpu51、rom52、ram53、存储单元54、通信单元55等。

通过将先前存储在rom52中的一个或多个程序读出到ram53并执行所读取的程序,cpu51控制每个硬件组件的操作,并使管理服务器5用作能够与网关10进行通信的外部装置。cpu51也可以是表示多个cpu组的cpu,并且由cpu51实现的功能可以是由多个cpu组彼此协作实现的功能。

ram53是诸如sram或dram的存储元件,并且在其中临时存储将由cpu51执行的程序以及在执行程序时所需的数据等。

存储单元54配置为例如诸如闪存或eeprom的非易失性存储元件、或诸如硬盘的磁存储装置。

通信单元55配置为根据预定的通信标准执行通信处理的通信装置。当通信单元55连接到诸如移动电话网络的广域通信网络2时,通信单元55执行通信处理。通信单元55经由广域通信网络2将从cpu51提供的信息传输到外部装置,并且将经由广域通信网络2接收的信息提供给cpu51。

如图4所示,存储在存储单元54中的信息包括修订表rt,修订表rt中存储安装在车辆1中的ecu30的控制程序的版本(在图4中,将识别号1到3分配给安装在vin=1的车辆1中的ecu30)。

将以下各项整理成修订表rt:车辆1的车辆识别号(vin);作为表示各车辆识别号的修订历史的识别信息的修订号;以及与各个修订号对应的ecu1至ecu3的版本。

在图4中所示的修订表rt中,在相同版本号中所包括的各个ecu1至ecu3的控制程序的版本已经经过汽车制造商的验证。

例如,在当前修订号为“r2.0”的情况下,用于ecu1的控制程序的版本1.0、用于ecu2的控制程序的版本1.3以及用于ecu3的控制程序的版本2.0已经经过验证。

在最新修订号为“r2.4”的情况下,用于ecu1的控制程序的版本1.2、用于ecu2的控制程序的版本2.0以及用于ecu3的控制程序的版本2.2已经经过验证。

因此,在将车辆1从r2.0修订到r2.4的情况下,用于ecu1的从1.0到1.2的版本更新、用于ecu2的从1.3到2.0的版本更新(升级)以及用于ecu3的从2.0到2.2的版本更新(升级)必须在同一时间执行。这里,“同一时间”意味着这样的时间:在此期间,多个ecu30响应于来自网关10的请求而转换到重现模式、响应于来自网关10的请求而重置、并且在完成验证处理后返回到正常模式。在下面的描述中,在上述含义中的“同一时间”更新多个控制程序也称为“同步更新”。

在图4中所示的修订表rt中,仅示出了作为一个示例的车辆识别号vin=1的情况下的版本信息。

然而,在实际由管理服务器5保存的修订表rt中,针对由管理服务器5的注册成员所拥有的所有车辆1的每个车辆识别号(vin),记录与上述类似的版本信息。在dl服务器6中,存储与所有ecu30相关的多个更新程序。

当从网关10通知车辆识别号和ecu1至ecu3的控制程序的当前版本时,cpu51将所通知的版本信息与修订表rt中包含的对应于该车辆识别号的最新版本进行核对。

当核对的结果是从网关10通知的ecu1至ecu3的版本信息不是最新的版本信息时,cpu51将存储用于更新到最新版本的更新程序的url和下载请求传输给网关10。

控制程序的同步更新的顺序

图5是示出用于多个ecu1至ecu3的控制程序的同步更新的示例的顺序图,该顺序在本示例的程序更新系统中执行。在下面的描述中,假设根据图4所示的修订表rt,如下更新各个ecu1至ecu3的控制程序。

修订号:r2.0→r2.4

ecu1:版本1.0→版本1.2

ecu2:版本1.3→版本2.0

ecu3:版本2.0→版本2.2

尽管每个更新程序可以是控制程序本身的新版本,但是假设在该实施例中每个更新程序是与旧版本不同的程序。在这种情况下,如果包括旧版本和新版本的文件的差异信息的更新程序δ存储在同一存储区域中,则可以通过将更新程序δ应用于旧版本来实现更新到新版本。

假设针对ecu1从版本1.0到版本1.2的更新程序是“δ1”,针对ecu2从版本1.3到版本2.0的更新程序是“δ2”,以及针对ecu3从版本2.0到版本2.2的更新程序是“δ3”。

如图5所示,在根据本实施例的控制程序的同步更新中,例如,网关10收集ecu1至ecu3的控制程序的当前版本的信息(步骤s1)。

在图5的示例中,ecu1的控制程序的当前版本是“1.0”,ecu2的控制程序的当前版本是“1.3”,以及ecu3的控制程序的当前版本是“2.0”。

接下来,网关10将收集到的ecu1至ecu3的控制程序的版本信息、以及所拥有的车辆的车辆识别号(vin)传输给管理服务器5(步骤s2)。

基于从网关10通知的版本信息和车辆识别号,管理服务器5搜索上述修订表rt(参考图4)以确定是否必须在同一时间更新车辆1的ecu1至ecu3的控制程序。

由于ecu1处于版本1.0,ecu2处于版本1.3,以及ecu3处于版本2.0,因此管理服务器5确定车辆1是在修订号r2.0处操作的。

由于存在最新修订号r2.4,管理服务器5确定必须在同一时间下执行ecu1到版本1.2的更新、ecu2到版本2.0的更新以及ecu3到版本2.2的更新。

因此,管理服务器5将存储用于ecu1至ecu3的更新程序δ1至δ3的url和下载请求传输给已经传输过版本信息的网关10(步骤s3)。

然后,网关10从dl服务器6下载用于ecu1至ecu3的更新程序δ1至δ3(步骤s4)。网关10在其存储单元13中临时存储并保存所接收的更新程序δ1至δ3。

在完成更新程序δ1至δ3的存储时,网关10通知管理服务器5dl已正常完成(步骤s5)。如果要自动继续更新,则已经接收到dl完成通知的管理服务器5向网关10传输控制程序更新请求。在dl完成之后,管理服务器5可以暂时中止处理,并且可以在从外部接收到更新请求时将控制程序更新请求传输到网关10(步骤s6)。

在接收到更新请求时,网关10向ecu1至ecu3中的每一个传输转换到重现模式请求,以便通过使用存储在存储单元13中的更新程序δ1至δ3来更新控制程序(步骤s7)。

在接收到转换到重现模式请求时,ecu1至ecu3中的每一个将其控制模式从正常模式切换到重新编程模式。因此,ecu1至ecu3变得能够开发更新程序δ1至δ3并将当前控制程序重写为新版本的控制程序。

当存在要同步更新的多个控制程序时,网关10执行用于确定存储在存储单元13中的更新程序δ1至δ3的传输顺序的调度处理(步骤s8)。

当更新程序δ被传输到ecu时,ecu通过使用md(消息摘要)5、crc(循环冗余码)等来执行完整性检查,即检查更新程序δ是否在通过传输路径传输时变得有缺陷。然后,ecu通过使用数字签名等执行原始文件的所有者的确认以确认原始文件未被改变,此后,开发(重写)要应用于旧版本的更新程序δ。也就是说,控制程序的更新具有三个任务,即:从网关10到相应的ecu的传输(第一任务)、更新文件的检查(第二任务)、以及ecu中的程序的开发(更新)(第三任务)。“所需更新时间”是更新每个ecu中的控制程序所需的时间,其包括第一任务所需的时间段(第一时间段)、第二任务所需的时间段(第二时间段)、以及第三任务所需的时间段(第三时间段)。当用于更新控制程序的操作仅包括第一任务至第三任务时,所需更新时间是第一时间段至第三时间段的总和(所需更新时间=第一时间段+第二时间段+第三时间段)。

当同步更新多个ecu的多个控制程序时,从将第一更新程序传输到相应的ecu的开始起到在相应的ecu中由最后更新程序完成控制程序的重写为止的时间段是“所需同步更新时间”,该“所需同步更新时间”是在同一时间更新控制程序所需的时间段。换句话说,所需同步更新时间是从在多个更新程序中要首先传输到相应ecu的更新程序的第一时间段的开始起到在多个更新程序中最后完成重写控制程序所用的更新程序的第三时间段的结束为止的时间段。

当存在要同步更新的多个控制程序时,所有的相应的ecu都维持在重现模式,直到完成所有的控制程序的更新。也就是说,只要正在更新相应的多个ecu中的至少一个的控制程序,多个ecu全部都维持在重现模式。因此,如果增加所需同步更新时间,则延迟从重现模式返回到正常模式。由于在重现模式期间不能使用车辆1,因此如果重现模式在用户希望驾驶车辆1时持续很长时间,则用户会遇到不便和/或不利。因此,在根据本实施例的程序更新系统中,当同步更新多个控制程序时,执行调度处理以减少所需同步更新时间。

调度处理使用关于更新程序的第一时间段到第三时间段以及车载网络的拓扑。可以从管理服务器5向网关10提供每个更新程序的各个任务所需的时间段。在这种情况下,管理服务器5从dl服务器6接收关于更新程序的信息,并计算任务所需的时间段。例如,关于更新程序的信息是更新程序的数据大小。替代性地,可以基于从dl服务器6传输的更新程序、以及从每个ecu30获得的信息或预先存储的车辆1的每个部件的信息,在网关10中计算第一时间段至第三时间段。网关10根据步骤s8中的通过调度处理确定的传输顺序将存储在存储单元13中的更新程序传输到相应的ecu(步骤s9、s11、s13)。

具体地,网关10将确定为首先要传输的更新程序δ1传输到相应的ecu1(步骤s9)。

ecu1开发所接收的更新程序δ1并将更新程序δ1应用于旧版本1.0,从而将控制程序从旧版本1.0重写为新版本1.2。当重写完成时,ecu1将重写完成通知传输到网关10(步骤s10)。

接下来,网关10将确定为接下来要传输的更新程序δ2传输到相应的ecu2(步骤s11)。

ecu2开发所接收的更新程序δ2并将更新程序δ2应用于旧版本1.3,从而将控制程序从旧版本1.3重写为新版本2.0。当重写完成时,ecu2将重写完成通知传输到网关10(步骤s12)。

接下来,网关10将确定为接下来要传输的更新程序δ3传输到相应的ecu3(步骤s13)。

ecu3开发所接收的更新程序δ3并将更新程序δ3应用于旧版本2.0,从而将控制程序从旧版本2.0重写为新版本2.2。当重写完成时,ecu3将重写完成通知传输到网关10(步骤s14)。

如上所述,根据步骤s8中的通过调度处理确定的传输顺序,在步骤s9、s11和s13中执行将更新程序δ传输到多个ecu30。所确定的传输顺序不必限于将更新程序δ一个接一个地传输到多个ecu30。即,可以将传输顺序确定为各个更新程序δ被同步传输到多个ecu30。即,不必按s9、s11和s13的顺序执行步骤s9、s11和s13,而是根据定义的传输顺序执行各个步骤,并且可以根据定义的传输顺序同步执行步骤s9、s11和s13。

当网关10已经从全部ecu1至ecu3接收到重写完成通知时,网关10向ecu1至ecu3的每一个传输转换到正常模式请求和重置请求(步骤s15)。

在接收到转换到正常模式请求时,ecu1至ecu3中的每一个将其控制模式从重现模式切换到正常模式,并且响应于重置请求重新启动系统。因此,ecu1至ecu3中的每一个由新版本的控制程序操作。

当网关10已经从全部ecu1至ecu3接收到重写完成通知时,网关10将更新完成通知传输到管理服务器5(步骤s16)。

因此,管理服务器5识别出完成了车辆1中的全部ecu1至ecu3的控制程序的更新。

调度处理

图6是示出步骤s8中的调度处理的流程的流程图。当网关10的cpu11将存储在存储单元13中的用于执行调度处理的程序读出到ram12并执行所读取的程序时,实现图6的流程图中所示的调度处理。此时,如图2所示,cpu11包括调度部分111和更新控制部分112,它们是在执行程序时要实现的功能。当cpu11发挥这些功能时,实现调度处理。当从dl服务器6获得多个更新程序并且存在要同步更新的多个控制程序时,开始图6的流程图中所示的操作。

参考图6,网关10的cpu11基于存储在存储单元13中的车载网络的拓扑,指定连接到网关10的多个主总线nw1和nw2,并且在主总线nw1和nw2的每一个上彼此并行地执行下面描述的调度处理(步骤s101)。

首先,基于同步更新所需的多个更新程序的目的地(destination)以及存储在存储单元13中的车载网络的拓扑,cpu11确定多个更新程序是否包括用于属于本地总线的ecu的更新程序。在图1的示例中,cpu11确定多个更新程序是否包括用于ecu_d或ecu_e的更新程序。

当同步更新所需的多个更新程序包括用于经由本地总线连接的ecu的更新程序时(步骤s103中的是),cpu11进一步确定ecu(ecu_c)(其是主总线分支到本地总线的分支节点)是否能够使用用于更新程序的中继传输的中继缓冲器,换句话说,ecu是否具有缓冲功能。中继缓冲器用于吸收主总线和本地总线之间的传输能力(传输速度)的差异。在图1的示例中,cpu11确定ecu_c是否能够使用中继缓冲器。

当作为分支节点的ecu能够使用中继缓冲器(具有缓冲功能)时(步骤s105中的是),可以通过主总线传输属于本地总线的ecu的更新程序,而不用考虑本地总线的传输速度。在这种情况下,cpu11执行下面描述的调度处理,假设通过分支到本地总线的主总线(nw1)的更新程序的传输是排他的,即,传输路径不能同时被多个更新程序的传输共享(步骤s107)。当主总线和本地总线之间的传输速度没有差异或者当本地总线中的传输速度高于主总线中的传输速度时,执行与作为分支节点的ecu能够使用中继缓冲器的情况下的调度处理相同的调度处理。具体地,当ecu_c能够使用中继缓冲器时,假设主总线(nw1)不能同时被多个更新程序的传输共享,cpu11执行下面描述的调度处理。

当本地总线中的传输速度低于主总线中的传输速度并且作为分支节点的ecu不能使用中继缓冲器(没有缓冲功能)时(步骤s105中的否),则考虑本地总线中的传输速度,即必须以根据本地总线中的传输速度的速度执行通过主总线的更新程序的传输。在这种情况下,假设可以在主总线(nw1)中并行传输更新程序,即,主总线可以同时被至属于本地总线的ecu的更新程序的传输以及另一更新程序的传输共享,cpu11执行下面描述的调度处理(步骤s109)。具体地,当本地总线nw3中的传输速度低于主总线nw1中的传输速度并且ecu_c不能使用中继缓冲器时,假设本地总线nw3中的更新程序的传输和另一更新程序的传输可以在主总线nw1中并行执行,cpu11执行下面描述的调度处理。

在任何调度处理中,在通过某个总线的更新程序的传输结束的时刻,开始下一更新程序的传输以防止在总线中产生空闲频带(band)。

具体地,cpu11根据预先定义的多个调度条件中的每一个来确定用于同步更新所需的多个控制程序的传输顺序(步骤s111至s115)。例如,当将条件“执行调度以便优先处理具有较长更新时间的更新程序”定义为条件a时,cpu11基于所需更新时间的顺序确定传输顺序,每个所需更新时间是各个更新程序的上述第一时间段至第三时间段的总和(步骤s111)。基于调度条件a确定的传输顺序被称为传输顺序a。

当将条件“执行调度以便优先处理具有较短传输时间的更新程序”定义为条件b时,cpu11基于各个更新程序的第一时间段的顺序确定传输顺序(步骤s113)。基于调度条件b确定的传输顺序被称为传输顺序b。

当将条件“根据分配给ecu的识别信息(例如,名称、id等)的顺序执行调度”定义为条件c时,cpu11基于与更新程序相对应的ecu的名称确定更新程序的传输顺序(步骤s115)。基于调度条件c确定的传输顺序被称为传输顺序c。

cpu11根据预先定义的多个调度条件(条件a至条件c)中的每一个执行调度处理,以确定传输顺序。此后,cpu11比较(传输顺序a至传输顺序c)结果以选择具有用于同步更新所需的最短时段的传输顺序,将该传输顺序作为多个更新程序的传输顺序(步骤s117)。cpu11针对主总线nw1和nw2的每一条并行地执行上述调度处理(步骤s119),并且在步骤s8中结束一系列处理。

在步骤s8中执行上述调度处理之后,cpu11在步骤s9、s11和s13中执行更新控制,该更新控制包括:根据确定的传输顺序将更新程序传输到相应的ecu;以及指示ecu执行更新。为了执行上述调度处理和更新控制,cpu11包括调度部分111和更新控制部分112(图2)。当cpu11读出存储在存储单元13中的程序并在ram12上执行程序时,这些部分111和112是由cpu11实现的功能。

调度处理的具体示例1

图7是示出用于同步更新所需的多个更新程序的第一具体示例的示图。参考图7,在第一示例中,第一更新程序δ1是用于ecu_a的更新程序。经由第一主总线nw1将第一更新程序δ1传输到ecu_a(第一任务),在ecu_a中执行更新文件的检查(第二任务),并且在ecu_a中重写控制程序(第三任务)。第一时间段、第二时间段和第三时间段分别是30[s(秒)]、10[s]和30[s]。第二更新程序δ2是用于ecu_f的更新程序。经由第二主总线nw2将第二更新程序δ2传输到ecu_f(第一任务),在ecu_f中执行更新文件的检查(第二任务),并且在ecu_f中重写控制程序(第三任务)。第一时间段、第二时间段和第三时间段分别是10[s]、10[s]和30[s]。第三更新程序δ3是用于ecu_d的更新程序。经由第一主总线nw1将第三更新程序δ3传输到ecu_c,然后经由ecu_c和本地总线nw3将第三更新程序δ3传输到ecu_d(第一任务),在ecu_d中执行更新文件的检查(第二任务),并且在ecu_d中重写控制程序(第三任务)。第一时间段、第二时间段和第三时间段分别是60[s]、10[s]和30[s]。对于更新程序δ3的传输(第一任务),用于第一主总线nw1中的传输所需的时间是30[s],并且用于本地总线nw3中的传输所需的时间是30[s]。中继从主总线nw1到本地总线nw3的传输的ecu_c能够使用中继缓冲器,并且用于从主总线nw1到本地总线nw3的传输的中继时间是10[s]。

当同步更新所需的多个更新程序δ1至δ3如图7所示时,网关10的cpu11在步骤s103中确定为“是”,并且在步骤s107中确定为“是”。因此,假设通过主总线nw1的更新程序的传输是排他性的(步骤s107),cpu11使用预先定义的调度条件(条件a至条件c)中的每一个执行调度处理。

图8是示出在不执行步骤s8中的调度处理的情况下的更新调度(a)和在执行调度处理的情况下的更新调度(b)彼此比较的示图。横轴表示时间[s],(a)、(b)中的每个块表示10[s]。

首先,参考(a),例如,当cpu11执行更新控制使得按照更新程序(δ1→δ2→δ3)的顺序对每个更新程序完成更新处理时,所需同步更新时间是各个ecu中所需更新时间的总和,也就是图7中所示的各个任务所需的时间段的总和,该总和是230[s]。

另一方面,当执行步骤s8中的调度处理时,对于主总线nw1,确定传输顺序使得相对于不使用本地总线nw3的更新程序δ1的传输(未分叉)优先执行要通过本地总线nw3(分叉并)传输的更新程序δ3的传输,并且通过主总线nw1顺序地传输更新程序δ3和δ1。对于能够与主总线nw1并行传输的主总线nw2,确定传输顺序使得与通过主总线nw1的更新程序的传输并行地通过主总线nw2传输更新程序δ2(参考(b))。这是因为,基于车载网络的拓扑,通过独立的主总线nw1和nw2彼此并行地传输多个更新程序,并且通过同一主总线必须一个接一个地顺序地传输多个更新程序。因此,对于分支到本地总线的主总线(nw1),优先传输要分叉到本地总线(nw3)并通过本地总线(nw3)传输的更新程序。因此,未分叉到本地总线(nw3)的通过主总线的更新程序的传输和通过本地总线(nw3)的更新程序的传输可以彼此并行地执行。因此,可以使所需同步更新时间的传输所需的时间短于多个更新程序的各个第一时间段的总和,导致所需同步更新时间减少。在传输结束之后,顺序地执行传输(第一任务)之后的更新文件的检查(第二任务)和更新(第三任务)。这同样适用于下面描述的调度处理的具体示例。

当用于同步更新所需的多个更新程序δ1至δ3如图7所示时,cpu11执行步骤s8中的调度处理以确定图8的(b)中所示的调度,从而将所需同步更新时间从230[s]显着减少到110[s]。

调度处理的具体示例2

图9是示出同步更新所需的更新程序的第二具体示例的示图。参考图9,在该第二示例中,第一更新程序δ1是用于ecu_a的更新程序。经由第一主总线nw1将第一更新程序δ1传输到ecu_a(第一任务),在ecu_a中执行更新文件的检查(第二任务),并且在ecu_a中重写控制程序(第三任务)。第一时间段、第二时间段和第三时间段分别是30[s]、10[s]和30[s]。第二更新程序δ2是用于ecu_f的更新程序。经由第二主总线nw2将第二更新程序δ2传输到ecu_f(第一任务),在ecu_f中执行更新文件的检查(第二任务),并且在ecu_f中重写控制程序(第三任务)。第一时间段、第二时间段和第三时间段分别是10[s]、10[s]和30[s]。第三更新程序δ3是用于ecu_d的更新程序。经由第一主总线nw1将第三更新程序δ3传输到ecu_c,然后经由ecu_c和本地总线nw3将第三更新程序δ3传输到ecu_d(第一任务),在ecu_d中执行更新文件的检查(第二任务),并且在ecu_d中重写控制程序(第三任务)。第一时间段、第二时间段和第三时间段分别是120[s]、10[s]和20[s]。在该第二示例中,中继从主总线nw1到本地总线nw3的传输的ecu_c不能使用中继缓冲器(没有缓冲功能)。因此,对于用于ecu_d的更新程序δ3的传输,通过第一主总线nw1传输更新程序δ3的速度与本地总线nw3中的传输速度相同,从而通过第一主总线nw1传输所需的时间与通过本地总线nw3传输所需的时间相同,即120[s]。

当同步更新所需的多个更新程序δ1至δ3如图9所示时,网关10的cpu11在步骤s103中确定为“是”,并且在步骤s107中确定为“否”。因此,假设在主总线nw1中可以与另一更新程序并行地传输要分叉到本地总线nw3并通过本地总线nw3传输的更新程序(步骤s109),则cpu11使用预先定义的调度条件(条件a至条件c)中的每一个执行调度处理。

图10是示出在步骤s8中不执行调度处理的情况下的更新调度表(a)和在执行调度处理的情况下的更新调度表(b)彼此比较的示图。横轴表示时间[s],(a)、(b)中的每个块表示10[s]。

首先,参考(a),例如,当cpu11执行更新控制使得按照更新程序(δ1→δ2→δ3)的顺序对每个更新程序完成更新处理时,所需同步更新时间是各个ecu中所需更新时间的总和,也就是图9中所示的各个任务所需的时间段的总和,该总和为270[s]。

另一方面,当执行步骤s8中的调度处理时,对于主总线nw1,优先执行要分叉到本地总线nw3并通过本地总线nw3传输的更新程序δ3。对于能够与主总线nw1并行传输的主总线nw2,确定传输顺序使得与通过主总线nw1的更新程序的传输并行地传输更新程序δ2。这些基于与图8所示的调度处理的第一具体示例相同的构思。此外,对于主总线nw1,确定传输顺序使得与更新程序δ3的传输并行地传输更新程序δ1(参考(b))。这是因为,当通过主总线nw1传输更新程序δ3时,将传输速度或传输时间调整为本地总线nw3中的传输速度,从而将在主总线nw1中产生的空闲频带作为用于传输更新程序δ1的传输路径。在这种情况下,主总线nw1中的通过主总线nw1传输更新程序δ3时产生的空闲频带用于传输更新程序δ1。也就是说,更新程序δ1和更新程序δ3共享主总线nw1的传输带宽。因此,尽管更新程序δ1的传输通常在30[s]内完成,但是由于与更新程序δ3共享,传输带宽减半,因此需要60[s]的传输时间。因此,可以使所需同步更新时间的传输所需的时间短于多个更新程序的传输所需的时间段的总和,导致所需同步更新时间减少。

当同步更新所需的多个更新程序δ1至δ3如图9所示时,cpu11执行步骤s8中的调度处理,以确定图10的(b)中所示的调度,从而将所需同步更新时间从270[s]显著减少到150[s]。

调度处理的具体示例3

图11是示出同步更新所需的更新程序的第三具体示例的示图。参考图11,在该第三示例中,第一更新程序δ1是用于ecu_a的更新程序。经由第一主总线nw1将第一更新程序δ1传输到ecu_a(第一任务),在ecu_a中执行更新文件的检查(第二任务),并且在ecu_a中重写控制程序(第三任务)。第一时间段、第二时间段和第三时间段分别是30[s]、20[s]和40[s]。第二更新程序δ2是用于ecu_b的更新程序。经由第一主总线nw1将第二更新程序δ2传输到ecu_b(第一任务),在ecu_b中执行更新文件的检查(第二任务),并且在ecu_b中重写控制程序(第三任务)。第一时间段、第二时间段和第三时间段分别是10[s]、10[s]和20[s]。第三更新程序δ3是用于ecu_c的更新程序。经由第一主总线nw1将第三更新程序δ3传输到ecu_c(第一任务),在ecu_c中执行更新文件的检查(第二任务),并且在ecu_c中重写控制程序(第三任务)。第一时间段、第二时间段和第三时间段分别是20[s]、10[s]和50[s]。也就是说,多个更新程序δ1至δ3全部都是用于属于第一主总线nw1的ecu的更新程序,并且仅通过主总线nw1传输到相应的ecu。

当同步更新所需的多个更新程序δ1至δ3如图11所示时,,网关10的cpu11在步骤s103中确定为“否”,因此,在不对上述步骤s107和s109的任一个进行假设的情况下,cpu11使用预先定义的调度条件(条件a至条件c)的每一个执行调度处理。

图12是示出不执行步骤s8中的调度处理的情况下的更新调度表(a)和根据上述条件a至条件c在执行调度处理的情况下的更新调度表(b)至更新调度表(d)彼此比较的示图。横轴表示时间[s],更新调度表(a)至更新调度表(d)中的每个块表示10[s]。

首先,参考(a),例如,当cpu11执行更新控制使得按照更新程序(δ1→δ2→δ3)的顺序对每个更新程序完成更新处理时,所需同步更新时间是各个ecu中所需更新时间的总和,也就是图11中所示的各个任务所需的时间段的总和,该总和为210[s]。

另一方面,当根据条件a执行调度处理时,确定传输顺序a使得按照第三时间段的长度的降序顺序(δ3→δ1→δ2)通过主总线nw1顺序地传输更新程序(参考(b))。上述条件a也可以被解释为“执行调度以便优先处理接收更新程序的ecu中的具有较长处理时间的更新程序”。接收更新程序的ecu中的处理包括更新文件的检查(第二任务)和重写控制程序(第三任务)。当采用上述解释时,可以按照用于这些任务所需的第二时间段和第三时间段之和的降序顺序(δ1→δ3→δ2)来确定传输顺序a。在这种情况下,在通过主总线nw1传输每个更新程序的同时,另一个更新程序在相应的ecu中经受更新文件检查(第二任务)和控制程序重写(第三任务)。在条件a的情况下,对于具有较长的第三时间或具有较长的第二时间和第三时间的和的更新程序,较早地开始该更新程序的第二任务及第三任务。因此,使用最后更新程序的控制程序的更新很可能较早地完成。在图12的(b)中所示的传输顺序a的情况下,所需同步更新时间是110[s]。

当根据条件b执行调度处理时,确定传输顺序b使得按照第一时间段的升序顺序(δ2→δ3→δ1)通过主总线nw1顺序地传输更新程序(参考(c))。同样在这种情况下,在通过主总线nw1传输每个更新程序的同时,另一个更新程序在相应的ecu中经受更新文件检查(第二任务)和控制程序重写(第三任务)。在条件b的情况下,对于每个更新程序,可以在传输(第一任务)之后最早地进行第二任务的开始。在图12的(c)中所示的传输顺序b的情况下,所需同步更新时间是120[s]。

当根据上述条件c执行调度处理时,确定传输顺序c使得按照相应ecu的名称的顺序(δ1→δ2→δ3)通过主总线nw1顺序地传输更新程序(参考(d))。同样在这种情况下,在通过主总线nw1传输每个更新程序的同时,另一个更新程序在相应的ecu中经受更新文件检查(第二任务)和控制程序重写(第三任务)。在图12的(d)中所示的传输顺序c的情况下,所需同步更新时间是120[s]。

作为上述调度处理的结果,当同步更新所需的多个更新程序δ1至δ3如图11所示时,使得所需同步更新时间最小化的调度条件是传输顺序a至传输顺序c中的条件a。因此,在步骤s8中,网关10确定图12的(b)中所示的传输顺序a作为更新程序δ1至δ3的传输顺序。因此,所需同步更新时间从210[s]显著减少到110[s]。

第一实施例的效果

根据第一实施例的程序更新系统,当执行多个ecu的控制程序的同步更新时,在网关10中执行用于确定多个更新程序的传输顺序的调度处理。网关10是中继装置,用于中继更新程序的从作为提供更新程序的外部装置的dl服务器6到ecu30的传输。

当同步更新所需的多个更新程序包括用于属于分别连接到网关10并且彼此独立的车载网络的ecu的更新程序时,网关10将这些更新程序彼此并行地传输到主总线(nw1、nw2)。

当同步更新所需的多个更新程序包括用于属于同一车载网络的多个控制装置的多个控制程序时,网关10根据预先定义的条件(多个调度条件)中的每一个执行调度处理。然后,网关10在通过调度处理获得的多个传输顺序中选择使得所需同步更新时间最小化的传输顺序作为多个更新程序的传输顺序。例如,当存在要通过同一主总线(nw1)传输的多个更新程序并且多个更新程序包括要分叉到本地总线并通过本地总线传输的更新程序时,相对于要传输到属于主总线的ecu的更新程序,网关10优先传输要传输到属于本地网络的ecu的更新程序,该本地网络具有属于主总线的作为分支节点的ecu。此时,根据用作分支节点的ecu是否具有缓冲功能,网关10假设通过同一主总线(nw1)的更新程序的传输是排他的、或者假设允许更新程序的并行传输。

因此,可以减少所需同步更新时间。

当应该同步更新的多个控制程序处于更新处理中时,所有的相应的ecu都处于重现模式并且不返回到正常模式,直到更新处理全部完成并且重新启动ecu。因此,随着所需同步更新时间的增加,用户的不便和/或不利(使得用户在他/她想要驾驶车辆时不能驾驶车辆)更可能发生。因此,当如上所述在网关10中执行调度处理并且确定使得所需同步更新时间将要最早结束的传输顺序时,可以抑制用户的这种不便和/或不利。

第二实施例

上述调度处理可以在任何中继装置中执行,该中继装置中继正在从dl服务器6传输到ecu30的更新程序。例如,当通过除了网关10之外的另外的中继装置(图1中未示出)中继正在从dl服务器6传输到每个ecu30的更新程序时,可以在该另外的中继装置中执行上述调度处理。替代性地,可以通过网关10和另外的中继装置的协作来实现调度过程。

如图5所示,当要从dl服务器6向ecu30传输更新程序时,管理服务器5向网关10传输下载请求(步骤s3),并且网关10响应于下载请求从dl服务器6请求更新程序,从而将更新程序从dl服务器6传输到网关10(步骤s4)。然后,管理服务器5将每个ecu30中的更新请求传输到网关10(步骤s6),并且网关10响应于更新请求请求每个ecu30执行更新,从而将更新程序从网关10传输到ecu30并且更新控制程序(步骤s7、s9、s11、s13)。根据该流程,可以说管理服务器5还用作中继装置的中继更新程序从dl服务器6到ecu30的传输的一部分。

因此,可以在可以被视为一种中继装置的管理服务器5中执行上述调度处理,并且可以在步骤s4中将指示所确定的传输顺序的信息与更新程序一起传输到网关10。替代性地,由于管理服务器5和dl服务器6可以如上所述实现为单个服务器单元,所以可以在具有服务器5和6的功能的服务器单元中执行调度处理。在这种情况下,当cpu51将存储在rom52中的程序读出到ram53并执行程序时,作为执行上述调度处理的功能的调度部分111和更新处理部分112(图2)由管理服务器5的cpu51实现。也就是说,管理服务器5从dl服务器6获得更新程序或关于更新程序的信息,并将它们存储在存储单元54中。管理服务器5的调度部分111通过使用存储在存储单元54中的关于更新程序的信息来执行调度处理。更新处理部分112将由调度部分111确定的传输顺序提供给网关10,并在每个ecu30中请求更新处理。网关10的更新处理部分112根据从管理服务器5接收的传输顺序传输更新程序,并请求每个ecu30执行更新处理,从而控制同步更新处理。

此外,在根据第二实施例的程序更新系统中,当存在用于同步更新所需的多个更新程序时,可以减少所需同步更新时间。因此,可以抑制用户的不便和不利。

应当注意的是,本文公开的实施例在所有方面仅仅是说明性的,不应该被认为是限制性的。本公开的范围由权利要求的范围而不是上述含义限定,并且旨在包括与权利要求的范围等同的含义以及范围内的所有修改。

参考符号列表

1车辆

2广域通信网络

5管理服务器(中继装置)

6dl服务器

10网关(中继装置)

11cpu

12ram

13存储单元

14车内通信单元

15无线通信单元

30ecu(控制装置)

31cpu

32ram

33存储单元

34通信单元

35启动单元

51cpu

52rom

53ram

54存储单元

55通信单元

nw1至nw3总线(车载网络)

111调度部分

112更新控制部分

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1