首页 / 专利库 / 电信 / 控制器局域网络 / 网关装置、固件更新方法以及控制程序

网关装置、固件更新方法以及控制程序

阅读:174发布:2021-07-02

专利汇可以提供网关装置、固件更新方法以及控制程序专利检索,专利查询,专利分析的服务。并且提供一种网关装置、 固件 更新方法以及控制程序。与供搭载于车辆的多个ECU进行通信的总线连接的网关(300a)具备:外部通信部(375),其从车辆外的 服务器 接收包含多个ECU中的一个ECU的更新用固件的固件更新信息;ECU信息取得部(390),其取得表示与总线连接的多个ECU各自的种类的系统构成信息;以及FW更新处理部(370a),其在使用系统构成信息所表示的各种类的ECU完成了更新用固件的工作验证之后,进行用于基于该更新用固件更新相应ECU的固件的控制。,下面是网关装置、固件更新方法以及控制程序专利的具体信息内容。

1.一种网关装置,与供搭载于车辆的多个电子控制单元用于通信的总线连接,所述网关装置具备:
接收部,其从所述车辆外的外部装置接收固件更新信息,所述固件更新信息包含所述多个电子控制单元中的一个电子控制单元的更新用固件;
取得部,其取得表示与所述总线连接的所述多个电子控制单元各自的种类的系统构成信息;以及
更新处理部,其在使用所述系统构成信息所表示的各种类的电子控制单元完成了所述更新用固件的工作验证之后,进行用于基于该更新用固件更新相应电子控制单元的固件的控制。
2.根据权利要求1所述的网关装置,
所述固件更新信息包含表示已在所述更新用固件的工作验证中使用了的多个电子控制单元各自的种类的已验证构成信息,
所述更新处理部对所述系统构成信息所表示的搭载于所述车辆的多个电子控制单元各自的种类和由所述接收部接收到的所述已验证构成信息所表示的已在所述工作验证中使用了的多个电子控制单元各自的种类进行比较,在比较结果满足了一定条件的情况下,进行所述控制以使得基于所述更新用固件来进行所述更新。
3.根据权利要求2所述的网关装置,
所述系统构成信息所表示的与所述总线连接的所述多个电子控制单元各自的所述种类,识别该电子控制单元安装着的固件的版本,
所述已验证构成信息所表示的已在所述更新用固件的工作验证中使用了的多个电子控制单元各自的所述种类,识别该电子控制单元安装着的固件的版本。
4.根据权利要求2或3所述的网关装置,
所述更新处理部在确认到在由所述接收部接收到的所述已验证构成信息中示出了与所述系统构成信息所表示的全部种类相同的种类的情况下,认为所述比较结果满足了所述一定条件,进行所述控制。
5.根据权利要求1所述的网关装置,
所述网关装置还具备向所述外部装置发送所述系统构成信息的发送部,所述更新处理部在所述发送部向所述外部装置发送了所述系统构成信息之后,在由所述接收部接收到所述外部装置在参照该系统构成信息而使用多个电子控制单元进行了所述更新用固件的工作验证之后所发送的所述固件更新信息的情况下,进行所述控制以使得基于该固件更新信息的所述更新用固件来进行所述更新。
6.根据权利要求5所述的网关装置,
所述系统构成信息针对与所述总线连接的所述多个电子控制单元的各电子控制单元,包含用于确定所述种类的关于该电子控制单元的识别信息以及该电子控制单元安装着的固件的版本的识别信息。
7.根据权利要求1~5中任一项所述的网关装置,
所述网关装置具备发送部,所述发送部具有向所述外部装置发送所述系统构成信息的功能,
所述固件更新信息包含表示已在所述更新用固件的工作验证中使用了的多个电子控制单元各自的种类的已验证构成信息,
所述更新处理部在确认到在由所述接收部接收到的所述已验证构成信息中未示出与所述系统构成信息所表示的全部种类相同的种类的情况下,进行控制以使得:阻止基于所述更新用固件的所述更新,所述发送部向所述外部装置发送所述系统构成信息。
8.根据权利要求1~4中任一项所述的网关装置,
所述网关装置还具备模拟多个电子控制单元的模拟部,
所述固件更新信息包含表示已在所述更新用固件的工作验证中使用了的多个电子控制单元各自的种类的已验证构成信息,
所述更新处理部在确认到在由所述接收部接收到的所述已验证构成信息中未示出与所述系统构成信息所表示的全部种类相同的种类的情况下,进行所述控制以使得:所述模拟部使用与所述系统构成信息所表示的全部种类相同的种类的各电子控制单元进行所述更新用固件的工作的模拟,在完成了基于该模拟的工作验证之后,进行基于所述更新用固件的所述更新。
9.根据权利要求1所述的网关装置,
所述网关装置还具备模拟多个电子控制单元的模拟部,
所述更新处理部进行所述控制以使得:所述模拟部使用与所述系统构成信息所表示的全部种类相同的种类的各电子控制单元进行所述更新用固件的工作的模拟,在完成了基于该模拟的工作验证之后,进行基于所述更新用固件的所述更新。
10.根据权利要求1~9中任一项所述的网关装置,
与所述总线连接的所述多个电子控制单元遵循CAN协议即控制器局域网络协议经由所述总线进行通信,
作为用于基于所述更新用固件更新相应电子控制单元的固件的所述控制,所述更新处理部经由所述总线向所述相应电子控制单元发送所述更新用固件。
11.一种固件更新方法,用于更新电子控制单元的固件,包括:
接收步骤,与供搭载于车辆的多个电子控制单元用于通信的总线连接的网关装置,从所述车辆外的外部装置接收固件更新信息,所述固件更新信息包含所述多个电子控制单元中的一个电子控制单元的更新用固件;
取得步骤,所述网关装置取得表示与所述总线连接的所述多个电子控制单元各自的种类的系统构成信息;以及
更新处理步骤,所述网关装置在使用所述系统构成信息所表示的各种类的电子控制单元完成了所述更新用固件的工作验证之后,进行用于基于该更新用固件更新相应电子控制单元的固件的控制。
12.根据权利要求11所述的固件更新方法,
所述固件更新方法还包括:
工作验证步骤,所述外部装置使用多个电子控制单元进行所述更新用固件的工作验证;和
固件更新信息发送步骤,所述外部装置将表示通过所述工作验证步骤已在工作验证中使用了的多个电子控制单元各自的种类的已验证构成信息包含于所述固件更新信息来进行发送,
在所述更新处理步骤中,对所述系统构成信息所表示的搭载于所述车辆的多个电子控制单元各自的种类和通过所述接收步骤接收到的所述已验证构成信息所表示的已在所述工作验证中使用了的多个电子控制单元各自的种类进行比较,在比较结果满足了一定条件的情况下,进行所述控制以使得基于所述更新用固件来进行所述更新。
13.根据权利要求11所述的固件更新方法,
所述固件更新方法还包括:
工作验证请求发送步骤,所述网关装置向所述外部装置发送通过所述取得步骤取得的所述系统构成信息;
工作验证步骤,所述外部装置接收通过所述工作验证请求发送步骤发送的所述系统构成信息,使用与该系统构成信息所表示的全部种类相同的种类的多个电子控制单元来进行所述更新用固件的工作验证;以及
固件更新信息发送步骤,所述外部装置在通过所述工作验证步骤进行了工作验证之后发送所述固件更新信息,
在所述更新处理步骤中,在通过所述工作验证请求发送步骤发送了所述系统构成信息之后通过所述接收步骤接收到所述固件更新信息的情况下,进行所述控制以使得基于所述更新用固件来进行所述更新。
14.一种控制程序,用于使与供搭载于车辆的多个电子控制单元用于通信的总线连接的具备处理器的网关装置执行固件更新处理,
所述固件更新处理包括:
接收步骤,从所述车辆外的外部装置接收固件更新信息,所述固件更新信息包含所述多个电子控制单元中的一个电子控制单元的更新用固件;
取得步骤,取得表示与所述总线连接的所述多个电子控制单元各自的种类的系统构成信息;以及
更新处理步骤,在使用所述系统构成信息所表示的各种类的电子控制单元完成了所述更新用固件的工作验证之后,进行用于基于该更新用固件更新相应电子控制单元的固件的控制。

说明书全文

网关装置、固件更新方法以及控制程序

技术领域

[0001] 本公开涉及对在车载网络中通信的电子控制单元的固件进行更新(升级)的技术。

背景技术

[0002] 近年来,在汽车中的系统内,配置有许多被称为电子控制单元(ECU:Electronic Control Unit)的装置。连接这些ECU的网络被称为车载网络。车载网络存在多种标准。作为其中最主流的车载网络之一,存在由ISO11898-1规定的CAN(Controller Area Network:控制器局域网络)这一标准。
[0003] 在CAN中,通信路径由两条总线构成,与总线连接的ECU被称为节点。与总线连接的各节点收发被称为的消息。另外,在CAN中不存在指示发送目的地和/或发送源的标识符,发送节点对每一帧附加被称为消息ID的ID而进行发送(也就是向总线送出信号),各接收节点仅接收预先确定的ID的帧(也就是从总线读取信号)。
[0004] 在许多ECU通过经由总线的消息授受而联合起来工作的情况下,当某个ECU开始更新固件(firmware)时,在其更新期间可能会因无法进行消息的授受等而影响汽车的行驶。关于这一点,已知如下技术:仅在根据表示汽车的状态的信息判断为如是停车期间等这样的可以更新ECU的固件的情况下,对固件进行更新(参照专利文献1)。
[0005] 现有技术文献
[0006] 专利文献1:日本特开2010-273181号公报发明内容
[0007] 发明要解决的技术问题
[0008] 然而,上述现有的技术需要进一步的改善。
[0009] 用于解决问题的技术方案
[0010] 本公开的一个技术方案的网关装置,与供搭载于车辆的多个电子控制单元用于通信的总线连接,所述网关装置具备:接收部,其从所述车辆外的外部装置接收固件更新信息,所述固件更新信息包含所述多个电子控制单元中的一个电子控制单元的更新用固件;取得部,其取得表示与所述总线连接的所述多个电子控制单元各自的种类的系统构成信息;以及更新处理部,其在使用所述系统构成信息所表示的各种类的电子控制单元完成了所述更新用固件的工作验证之后,进行用于基于该更新用固件更新相应电子控制单元的固件的控制。
[0011] 此外,这些总括性的或者具体的技术方案既可以通过装置、系统、集成电路计算机程序或者计算机可读取的CD-ROM等记录介质来实现,也可以通过装置、系统、方法、计算机程序以及记录介质的任意组合来实现。
[0012] 发明的效果
[0013] 根据上述技术方案,能够实现进一步的改善。
[0014] 此外,本公开的进一步的效果以及优点可由本说明书以及附图的公开内容明确。上述进一步的效果以及优点也可以由本说明书以及附图所公开的各种实施方式以及特征来个别地提供,未必需要提供所有的效果以及优点。

附图说明

[0015] 图1是表示实施方式1的车载网络系统的整体结构的图。
[0016] 图2是表示由CAN协议规定的数据帧的格式的图。
[0017] 图3是实施方式1的网关的结构图。
[0018] 图4是表示接收ID列表的一例的图。
[0019] 图5是表示网关所使用的转送规则的一例的图。
[0020] 图6是表示实施方式1的系统构成信息(ECU信息的列表)的一例的图。
[0021] 图7是实施方式1的ECU的结构图。
[0022] 图8是实施方式1的服务器的结构图。
[0023] 图9是表示服务器所保持的车辆ECU管理信息的一例的图。
[0024] 图10是表示实施方式1的固件(FW)更新信息的格式的一例的图。
[0025] 图11是表示实施方式1的与固件的更新有关的工作例的时序图(后接图12)。
[0026] 图12是表示实施方式1的与固件的更新有关的工作例的时序图(前接图11)。
[0027] 图13是表示实施方式1的由网关进行的FW更新控制处理的一例的流程图
[0028] 图14是表示实施方式1的由ECU进行的FW更新控制处理的一例的流程图。
[0029] 图15是实施方式2的网关的结构图。
[0030] 图16是表示实施方式2的FW更新信息的格式的一例的图。
[0031] 图17是表示实施方式2的ECU构成信息的格式的一例的图。
[0032] 图18是实施方式2的服务器的结构图。
[0033] 图19是表示实施方式2的ECU车辆模型管理表的一例的图。
[0034] 图20是表示实施方式2的车辆模型ECU管理表的一例的图。
[0035] 图21是表示实施方式2的与由服务器进行的更新用固件的登记有关的FW登记处理的流程图。
[0036] 图22是表示实施方式2的由服务器进行的FW工作验证处理的一例的流程图。
[0037] 图23是表示实施方式2的与由服务器进行的多个固件的验证有关的FW工作验证处理的一例的流程图。
[0038] 图24是表示实施方式2的与固件的更新有关的工作例的时序图(后接图25)。
[0039] 图25是表示实施方式2的与固件的更新有关的工作例的时序图(前接图24)。
[0040] 图26是表示在实施方式2的FW工作验证处理中使用的基于模拟器虚拟环境软件结构的一例的图。

具体实施方式

[0041] (成为本公开的基础的见解)
[0042] 专利文献1的技术并没有抑制如下情况:虽然在适当(例如安全)的时刻执行固件的更新,但在固件更新后,汽车等车辆未正常地发挥作用。
[0043] 基于以上的研究,本发明人为了解决上述问题而研究了下述的改善措施。
[0044] 本公开的一个技术方案的网关装置,与供搭载于车辆的多个电子控制单元用于通信的总线连接,所述网关装置具备:接收部,其从所述车辆外的外部装置接收固件更新信息,所述固件更新信息包含所述多个电子控制单元中的一个电子控制单元的更新用固件;取得部,其取得表示与所述总线连接的所述多个电子控制单元各自的种类的系统构成信息;以及更新处理部,其在使用所述系统构成信息所表示的各种类的电子控制单元完成了所述更新用固件的工作验证之后,进行用于基于该更新用固件更新相应电子控制单元的固件的控制。
[0045] 由此,在固件更新时,在确保实施了与多个电子控制单元对应的更新用固件的工作验证之后进行更新的控制,因此,与未进行工作验证的情况相比,在固件更新后车辆不再正常地发挥作用的可能性降低。
[0046] 另外,也可以是,所述固件更新信息包含表示已在所述更新用固件的工作验证中使用了的多个电子控制单元各自的种类的已验证构成信息,所述更新处理部对所述系统构成信息所表示的搭载于所述车辆的多个电子控制单元各自的种类和由所述接收部接收到的所述已验证构成信息所表示的已在所述工作验证中使用的多个电子控制单元各自的种类进行比较,在比较结果满足了一定条件的情况下,进行所述控制以使得基于所述更新用固件来进行所述更新。由此,可确认是否与搭载有网关装置的车辆中的车载网络的结构(电子控制单元群的编组)对应地执行了有效的工作验证等,因此可成为能够确保实施适当的工作验证。
[0047] 另外,也可以是,所述系统构成信息所表示的与所述总线连接的所述多个电子控制单元各自的所述种类,识别该电子控制单元安装着的固件的版本,所述已验证构成信息所表示的已在所述更新用固件的工作验证中使用的多个电子控制单元各自的所述种类,识别该电子控制单元安装着的固件的版本。由此,可确认在安装有与连接于车载网络的各电子控制单元的固件相同版本的固件的工作环境下是否完成了工作验证等,因此可成为能够确保实施适当的工作验证。
[0048] 另外,也可以是,所述更新处理部在确认到在被所述接收部接收到的所述已验证构成信息中示出了与所述系统构成信息所表示的全部种类相同的种类的情况下,认为所述比较结果满足了所述一定条件,进行所述控制。由此,在固件更新时,可成为能够确保使用了与连接于搭载有网关装置的车辆中的车载网络的各电子控制单元相同种类的电子控制单元来实施更新用固件的工作验证。
[0049] 另外,也可以是,所述网关装置还具备向所述外部装置发送所述系统构成信息的发送部,所述更新处理部在所述发送部向所述外部装置发送了所述系统构成信息之后,在由所述接收部接收到所述外部装置在参照该系统构成信息而使用多个电子控制单元进行了所述更新用固件的工作验证之后所发送的所述固件更新信息的情况下,进行所述控制以使得基于该固件更新信息的所述更新用固件来进行所述更新。由此,在使外部装置使用与连接于搭载有网关装置的车辆中的车载网络的各电子控制单元相同种类的电子控制单元进行了更新用固件的工作验证之后进行固件的更新,因此在固件更新后车辆不再正常地发挥作用的可能性降低。
[0050] 另外,也可以是,所述系统构成信息针对与所述总线连接的所述多个电子控制单元的各电子控制单元,包含用于确定所述种类的关于该电子控制单元的识别信息以及该电子控制单元安装着的固件的版本的识别信息。由此,在外部装置中,能够在安装有与连接于车载网络的各电子控制单元的固件相同版本的固件的工作环境下进行工作验证,其结果是,在固件更新后车辆不再正常地发挥作用的可能性降低。
[0051] 另外,也可以是,所述网关装置具备发送部,所述发送部具有向所述外部装置发送所述系统构成信息的功能,所述固件更新信息包含表示已在所述更新用固件的工作验证中使用的多个电子控制单元各自的种类的已验证构成信息,所述更新处理部在确认到在由所述接收部接收到的所述已验证构成信息中未示出与所述系统构成信息所表示的全部种类相同的种类的情况下,进行控制以使得:阻止基于所述更新用固件的所述更新,所述发送部向所述外部装置发送所述系统构成信息。由此,在未进行了与搭载有网关装置的车辆中的车载网络的结构对应的适当的更新用固件的工作验证的情况下,发送为了进行适当的工作验证而有用的信息,因此能确保实施更新用固件的适当的工作验证的可能性提高。
[0052] 另外,也可以是,所述网关装置还具备模拟多个电子控制单元的模拟部,所述固件更新信息包含表示已在所述更新用固件的工作验证中使用的多个电子控制单元各自的种类的已验证构成信息,所述更新处理部在确认到在由所述接收部接收到的所述已验证构成信息中未示出与所述系统构成信息所表示的全部种类相同的种类的情况下,进行所述控制以使得:所述模拟部使用与所述系统构成信息所表示的全部种类相同种类的各电子控制单元进行所述更新用固件的工作的模拟,在完成了基于该模拟的工作验证之后,进行基于所述更新用固件的所述更新。由此,在未进行了与车载网络中的各电子控制单元对应的工作验证的情况下,在通过模拟进行了更新用固件的工作验证之后进行固件的更新,因此,在固件更新后车辆不再正常地发挥作用的可能性降低。此外,例如,针对完成了与标准的电子控制单元的结构对应的工作验证而发送的固件,在更换或追加了搭载于车辆的电子控制单元之后的状态下,该工作验证并不适当,因此要重新进行适当的工作验证,这是有用的。
[0053] 另外,也可以是,所述网关装置还具备模拟多个电子控制单元的模拟部,所述更新处理部进行所述控制以使得:所述模拟部使用与所述系统构成信息所表示的全部种类相同种类的各电子控制单元进行所述更新用固件的工作的模拟,在完成了基于该模拟的工作验证之后,进行基于所述更新用固件的所述更新。由此,在通过模拟进行了更新用固件的工作验证之后进行固件的更新,因此,在固件更新后车辆不再正常地发挥作用的可能性降低。
[0054] 另外,也可以是,与所述总线连接的所述多个电子控制单元遵循CAN协议即控制器局域网络协议经由所述总线进行通信,作为用于基于所述更新用固件更新相应电子控制单元的固件的所述控制,所述更新处理部经由所述总线向所述相应电子控制单元发送所述更新用固件。由此,在确保了实施更新用固件的工作验证之后,向遵循CAN的车载网络中的电子控制单元发送更新用固件并使其更新固件,因此,在固件更新后车辆不再正常地发挥功能的可能性降低。
[0055] 另外,本公开的一个技术方案涉及的固件更新方法,是用于更新电子控制单元的固件的固件更新方法,包括:接收步骤,与供搭载于车辆的多个电子控制单元用于通信的总线连接的网关装置,从所述车辆外的外部装置接收固件更新信息,所述固件更新信息包含所述多个电子控制单元中的一个电子控制单元的更新用固件;取得步骤,所述网关装置取得表示与所述总线连接的所述多个电子控制单元各自的种类的系统构成信息;以及更新处理步骤,所述网关装置在使用所述系统构成信息所表示的各种类的电子控制单元完成了所述更新用固件的工作验证之后,进行用于基于该更新用固件更新相应电子控制单元的固件的控制。由此,在固件更新时确保了实施与多个电子控制单元对应的更新用固件的工作验证之后进行更新的控制,因此,与未进行工作验证的情况相比,在固件更新后车辆不再正常地发挥作用的可能性降低。
[0056] 另外,也可以是,所述固件更新方法还包括:工作验证步骤,所述外部装置使用多个电子控制单元进行所述更新用固件的工作验证;和固件更新信息发送步骤,所述外部装置将表示通过所述工作验证步骤已在工作验证中使用了的多个电子控制单元各自的种类的已验证构成信息包含于所述固件更新信息来进行发送,在所述更新处理步骤中,对所述系统构成信息所表示的搭载于所述车辆的多个电子控制单元各自的种类和通过所述接收步骤接收到的所述已验证构成信息所表示的已在所述工作验证中使用的多个电子控制单元各自的种类进行比较,在比较结果满足了一定条件的情况下,进行所述控制以使得基于所述更新用固件来进行所述更新。由此,可确认是否与搭载有网关装置的车辆中的车载网络的结构(电子控制单元群的编组)对应地执行了有效的工作验证等,因此,可成为能够确保实施适当的工作验证。
[0057] 另外,也可以是,所述固件更新方法还包括:工作验证请求发送步骤,所述网关装置向所述外部装置发送通过所述取得步骤取得的所述系统构成信息;工作验证步骤,所述外部装置接收通过所述工作验证请求发送步骤发送的所述系统构成信息,使用与该系统构成信息所表示的全部种类相同种类的多个电子控制单元来进行所述更新用固件的工作验证;以及固件更新信息发送步骤,所述外部装置在通过所述工作验证步骤进行了工作验证之后发送所述固件更新信息,在所述更新处理步骤中,在通过所述工作验证请求发送步骤发送了所述系统构成信息之后通过所述接收步骤接收到所述固件更新信息的情况下,进行所述控制以使得基于所述更新用固件来进行所述更新。由此,在由外部装置使用与连接于搭载有网关装置的车辆中的车载网络的各电子控制单元相同种类的电子控制单元进行了更新用固件的工作验证之后进行固件的更新,因此,在固件更新后车辆不再正常地发挥作用的可能性降低。
[0058] 另外,本公开的一个技术方案涉及的控制程序,用于使与供搭载于车辆的多个电子控制单元用于通信的总线连接的具备处理器的网关装置执行固件更新处理,所述固件更新处理包括:接收步骤,从所述车辆外的外部装置接收固件更新信息,所述固件更新信息包含所述多个电子控制单元中的一个电子控制单元的更新用固件;取得步骤,取得表示与所述总线连接的所述多个电子控制单元各自的种类的系统构成信息;以及更新处理步骤,在使用所述系统构成信息所表示的各种类的电子控制单元完成了所述更新用固件的工作验证之后,进行用于基于该更新用固件更新相应电子控制单元的固件的控制。通过将该控制程序安装于具有处理器的车辆内的装置(例如网关装置)并执行,可使得在固件更新时在确保了实施与多个电子控制单元对应的更新用固件的工作验证之后进行更新的控制。因此,在固件更新后车辆不再正常地发挥作用的可能性降低。
[0059] 此外,这些总括性或具体的技术方案既可以通过系统、方法、集成电路、计算机程序或计算机可读取的CD-ROM等记录介质来实现,也可以通过系统、方法、集成电路、计算机程序和记录介质的任意组合来实现。
[0060] 以下,参照附图,对包括实施方式涉及的网关装置的车载网络系统进行说明。在此所示的实施方式均表示本公开的一具体例。因此,在以下的实施方式中示出的数值、构成要素、构成要素的配置及连接方式、步骤(工序)及步骤的顺序等仅为一例而并非限定本公开。关于以下的实施方式中的构成要素中的未记载在独立权利要求中的构成要素,是能够任意附加的构成要素。另外,各附图仅为示意图,不一定是严格图示。
[0061] (实施方式1)
[0062] 以下,作为本公开的实施方式,使用附图对在包括网关装置在内的多个电子控制单元(ECU)经由总线进行通信的车载网络系统10中所使用的固件更新方法进行说明。
[0063] 固件更新方法是用于通过由位于车辆外部的服务器所发布的新的更新用固件来对车辆所搭载的各ECU所安装的固件(FW:Firmware)进行更新(即替换为更新用固件)的方法。在车载网络系统10中,使用如下方法:为了使得在固件更新后车辆不再正常地发挥作用的可能性降低,在使用与该车辆对应的多个ECU进行了更新用固件的工作验证之后,进行固件的更新。
[0064] [1.1车载网络系统10的整体结构]
[0065] 图1是表示实施方式1涉及的车载网络系统10的整体结构的图。
[0066] 车载网络系统10是遵循CAN协议进行通信的网络通信系统的一例,是搭载有控制装置、传感器致动器、用户接口装置等各种设备的车辆中的网络通信系统。车载网络系统10具备经由总线进行涉及帧的通信的多个装置,并使用固件更新方法。
[0067] 具体而言,如图1所示,车载网络系统10构成为包括:与搭载于车辆的各种设备连接的ECU100a~100d、总线200a、200b、网关300;和车辆外的网络400以及服务器500。此外,在车载网络系统10中,除了网关300、ECU100a~100d以外还可以包含若干个ECU,但在此,为方便起见着眼于网关300以及ECU100a~100d来进行说明。ECU例如是包括处理器(微处理器)、存储器等数字电路、模拟电路、通信电路等的装置。存储器是ROM、RAM等,能够存储由处理器执行的控制程序(作为软件的计算机程序)。固件是该控制程序的全部或者一部分,例如存储于EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)等非易失性存储器(称为启动ROM)。例如通过处理器按照控制程序(计算机程序)进行工作,由此ECU实现各种功能。此外,计算机程序是为了实现预定的功能而组合多个表示对处理器的指令的命令代码而构成的。此外,固件也可以包括用于在处理器内进行命令解释(解析)的微代码的全部或者一部分。
[0068] ECU100a~100d分别连接于发动机101、制动器102、车开闭传感器103、车窗开闭传感器104这样的设备,取得该设备的状态,周期性地将表示状态的帧(数据帧)发送到由总线200a、总线200b等构成的车载网络。
[0069] 网关300是作为连接总线200a以及总线200b的网关装置的一种ECU,总线200a连接有ECU100a和ECU100b,总线200b连接有ECU100c和ECU100d。网关300具有将从一方总线接收到的帧转送给另一方总线的功能,另外,具有经由网络400与服务器500进行通信的功能。
[0070] 作为位于车辆外部的外部装置的服务器500是具有如下功能的计算机:经由网络400,发布用于更新ECU100a~100d的固件的数据即FW更新信息。对应网络400中的通信,也可以应用无线通信或者有线通信的任意的通信协议。
[0071] 车载网络系统10中的各ECU遵循CAN协议进行帧的授受。CAN协议中的帧有数据帧、远程帧、超载帧以及错误帧。
[0072] [1.2数据帧格式]
[0073] 以下,对作为在遵循CAN协议的网络中使用的帧之一的数据帧进行说明。
[0074] 图2是表示由CAN协议规定的数据帧的格式的图。在该图中,表示了由CAN协议规定的标准ID格式的数据帧。数据帧由SOF(Start Of Frame:帧起始)、ID字段(field,域)、RTR(Remote Transmission Request:远程传输请求)、IDE(Identifier Extension:标识符扩展)、预留位“r”、DLC(Data Length Code:数据长度码)、数据字段、CRC(Cyclic Redundancy Check:循环冗余校验)序列、CRC定界符“DEL”、ACK(Acknowledgement:应答)间隙、ACK定界符“DEL”以及EOF(End Of Frame:帧结束)的各个字段构成。
[0075] SOF由1比特的显性构成。总线空闲的状态成为隐性,通过由SOF变更为显性来通知帧的发送开始。
[0076] ID字段是由11比特构成的、保存表示数据的种类的值即ID(消息ID)的字段。在多个节点同时开始发送的情况下,为了通过该ID字段进行通信仲裁,设计成使ID小的值的帧具有高优先级。
[0077] RTR是用于标识(识别)数据帧和远程帧的值,在数据帧中由1比特的显性构成。
[0078] IDE和“r”双方都由1比特的显性构成。
[0079] DLC由4比特构成,是表示数据字段的长度的值。此外,将IDE、“r”以及DLC统称为控制字段。
[0080] 数据字段是最大由64比特构成的表示要发送的数据的内容的值。能够按每8比特来调整长度。关于所发送的数据的规格,并不在CAN协议中规定,而是在车载网络系统10中设定。因此,成为取决于车型、制造者(制造商)等的规格。
[0081] CRC序列由15比特构成。可根据SOF、ID字段、控制字段以及数据字段的发送值来算出。
[0082] CRC定界符是由1比特的隐性构成的、表示CRC序列的结束的分隔符号。此外,将CRC序列和CRC定界符统称为CRC字段。
[0083] ACK间隙由1比特构成。发送节点将ACK间隙设为隐性并进行发送。如果到CRC序列为止都正常地完成了接收,则接收节点将ACK间隙设为显性并发送。由于显性比隐性优先,因此,只要在发送后ACK间隙为显性,发送节点就能够确认某一接收节点成功地进行了接收。
[0084] ACK定界符是由1比特的隐性构成的、表示ACK的结束的分隔符号。
[0085] EOF由7比特的隐性构成,表示数据帧的结束。
[0086] [1.3网关300的结构]
[0087] 图3是网关300的结构图。网关300执行总线间的帧转送、与外部的服务器500的通信(对用于更新ECU100a~100d等的固件的FW更新信息的接收等)等功能。因此,如图3所示,网关300构成为包括帧收发部310、帧解释部320、接收ID判断部330、接收ID列表保持部340、帧处理部350、转送规则保持部360、FW更新处理部370、ECU信息保持部372、签名验证部373、密钥保持部374、外部通信部375、帧生成部380以及ECU信息取得部390。这些各构成要素通过网关300中的通信电路、执行储存于存储器的控制程序的处理器或数字电路等来实现。
[0088] 帧收发部310相对于总线200a以及总线200b,分别收发遵循CAN协议的帧。从总线200a或者总线200b接收帧,并转送给帧解释部320。另外,帧收发部310基于从帧生成部380收到了通知的表示转送目的地的总线的总线信息以及帧,将该帧的内容发送给总线200a或者总线200b。
[0089] 帧解释部320从帧收发部310接收帧的值,并进行解释以使得映射到由CAN协议规定的帧格式的各字段。帧解释部320将判断为是ID字段的值向接收ID判断部330进行转送。帧解释部320根据从接收ID判断部330通知的判定结果,决定是将ID字段的值、和出现在ID字段之后的数据字段(数据)转送给帧处理部350,还是中止帧的接收。另外,帧解释部320在判断为是未遵循CAN协议的帧的情况下,通知给帧生成部380以使得发送错误帧。另外,帧解释部320在接收到错误帧的情况下,对于接收期间的帧,自此之后将该帧废弃,也就是中止帧的解释。
[0090] 接收ID判断部330接收从帧解释部320通知的ID字段的值,按照接收ID列表保持部340所保持的消息ID的列表,进行是否接收该ID字段之后的帧的各字段的判定。接收ID判断部330将该判定结果通知给帧解释部320。
[0091] 接收ID列表保持部340保持网关300所要接收的ID(消息ID)的列表、即接收ID列表。图4是表示接收ID列表的一例的图。
[0092] 帧处理部350按照转送规则保持部360所保持的转送规则,根据接收到的帧的ID,决定进行转送的总线,将进行转送的总线的总线信息、从帧解释部320通知的消息ID、以及数据通知给帧生成部380。另外,帧处理部350将从帧解释部320通知的固件更新所涉及的更新结果的数据通知给FW更新处理部370,并将与ECU信息有关的数据通知给ECU信息取得部390。此外,帧处理部350不将固件更新所涉及的更新结果的数据以及与ECU信息有关的数据作为转送的对象。
[0093] 转送规则保持部360保持表示每条总线的关于帧转送的规则的信息即转送规则。图5是表示转送规则的一例的图。
[0094] FW更新处理部370请求签名验证部373进行从外部通信部375通知的包含更新用固件等FW数据的FW更新信息的签名验证,并在签名验证成功的情况下将更新用固件涉及的FW数据以及成为更新对象的ECU所连接的总线的总线信息通知给帧生成部380。另外,FW更新处理部370将从帧处理部350通知的更新结果通知给外部通信部375。另外,FW更新处理部370基于来自ECU信息取得部390的通知等,将ECU信息保持部372所保持的ECU信息的集合即系统构成信息作为FW更新请求通知给外部通信部375。另外,将与ECU100a~100d的通信所需的数据通知给帧生成部380。此外,FW更新处理部370作为如下的更新处理部发挥功能:在使用系统构成信息所表示的各种类的ECU完成了更新用固件的工作验证之后,在接收到包含该更新用固件等FW数据的FW更新信息并成功进行了签名验证的情况下,才终于进行用于相应ECU的固件更新的控制(例如经由总线向ECU发送FW数据等)。
[0095] ECU信息保持部372保持系统构成信息,该系统构成信息是与连接于总线200a、总线200b的全部ECU(ECU100a~100d)的各ECU有关的信息即ECU信息的集合。图6中示出系统构成信息的一例。
[0096] 签名验证部373从FW更新处理部370接收成为FW更新信息所涉及的签名验证对象的数据,使用从密钥保持部374取得的签名验证用的密钥来进行签名验证,将该验证结果通知给FW更新处理部370。
[0097] 密钥保持部374保持从服务器500接收的FW更新信息的签名验证用的密钥。
[0098] 外部通信部375具有作为从服务器500接收包含更新用固件涉及的FW数据的FW更新信息的接收部的功能,将接收到的FW更新信息通知给FW更新处理部370。另外,外部通信部375将从FW更新处理部370通知的更新结果发送给服务器500。另外,外部通信部375具有作为发送部的功能,该发送部将从FW更新处理部370通知的系统构成信息作为FW更新请求发送给作为外部装置的服务器500。外部通信部375例如预先保持有为了经由网络400访问服务器500所需的服务器500的地址信息等。
[0099] 帧生成部380按照从帧解释部320通知的错误帧发送请求,将错误帧通知给帧收发部310并使其发送该错误帧。另外,帧生成部380使用从帧处理部350通知的消息ID以及数据来构成帧,并将该帧与总线信息一起通知给帧收发部310。另外,帧生成部380使用从FW更新处理部370通知的更新用固件涉及的FW数据来构成帧,并将该帧与总线信息一起通知给帧收发部310。另外,帧生成部380按照从ECU信息取得部390通知的请求来构成ECU信息取得用的帧,将所构成的帧通知给帧收发部310并使其发送该帧。
[0100] ECU信息取得部390为了从连接于总线200a、总线200b的全部ECU取得ECU信息,例如周期性地请求帧生成部380生成并发送ECU信息取得用的帧(数据帧)。此外,各ECU在接收到ECU信息取得用的帧时以预先确定的ID的帧(数据帧)来发送ECU信息以使其到达网关300。因此,ECU信息取得部390从帧处理部350通知并取得与各ECU的ECU信息有关的数据,基于该ECU信息,根据需要来更新ECU信息保持部372所保持的系统构成信息的ECU信息。即,ECU信息取得部390具有作为取得部的功能,该取得部取得表示与总线200a、200b连接的多个ECU各自的种类的系统构成信息。
[0101] [1.4接收ID列表例]
[0102] 图4是表示网关300的接收ID列表保持部340所保持的接收ID列表的一例的图。
[0103] 图4中例示的接收ID列表用于对包含ID(消息ID)的值为“1”、“2”、“3”以及“4”中的任一方的消息ID的帧进行选择性地接收并处理。这仅为一例,而接收ID列表中列举了确定为网关300要接收的帧的消息ID。
[0104] [1.5转送规则例]
[0105] 图5表示网关300的转送规则保持部360所保持的转送规则的一例。
[0106] 该转送规则使转送源的总线、转送目的地的总线以及转送对象的ID(消息ID)相关联。图5中的“*”表示与消息ID无关地进行帧的转送。图5的例子表示了设定为与消息ID无关地将从总线200a接收的帧转送给总线200b这一情况。另外,表示了设定为仅将从总线200b接收的帧中的、消息ID为“3”的帧转送给总线200a这一情况。
[0107] [1.6系统构成信息例]
[0108] 图6表示网关300的ECU信息保持部372所保持的系统构成信息(ECU信息的集合)的一例。
[0109] 该例的系统构成信息是各ECU的ECU信息的列表。ECU信息构成为包含ECU-ID、表示ECU的功能类别的ECU类别、ECU的制造公司、以及作为安装于ECU的固件的版本编号等的FW版本。ECU-ID例如是各ECU所固有的系列编号等的标识符(识别信息)。通过该ECU-ID和FW版本,能够识别ECU的种类。种类相同的多个ECU例如是与经由总线授受数据的工作有关的功能相同的多个ECU,种类不同的多个ECU是与该工作有关的功能互不相同的多个ECU。图6的例子示出下述等情况:关于与发动机101连接的ECU100a的ECU-ID是“0001”,ECU类别是由“发动机”识别的发动机控制用这一类别,制造公司是“A公司”,ECU-ID的FW版本是1.0。系统构成信息的初始值既可以是在制造时设定的值,也可以是例如在开始向网关300供给电时网关300从服务器500等外部装置取得的值。在与总线200a、200b连接的ECU的更换或固件的更新等状态发生了变化、向车辆新导入了ECU并使其连接于总线200a或总线200b等情况下,基于ECU信息取得部390周期性收集的ECU信息,系统构成信息可被逐次更新成表示车辆内的各ECU的最新状态。
[0110] [1.7ECU100a的结构]
[0111] 图7是ECU100a的结构图。ECU100a构成为包括帧收发部110、帧解释部120、接收ID判断部130、接收ID列表保持部140、帧处理部150、FW更新处理部160、FW缓存保持部161、签名验证部163、密钥保持部164、数据取得部170以及帧生成部180。这些各构成要素通过ECU100a中的通信电路、执行储存于存储器的控制程序的处理器或数字电路等来实现。
[0112] 帧收发部110相对于总线200a收发遵循CAN协议的帧。从总线逐比特地接收帧,并转送给帧解释部120。另外,将从帧生成部180收到了通知的帧的内容发送给总线200a。
[0113] 帧解释部120从帧收发部110接收帧的值,并进行解释以使得映射到由CAN协议规定的帧格式的各字段。将判断为是ID字段的值转送给接收ID判断部130。帧解释部120根据从接收ID判断部130通知的判定结果,决定是将ID字段的值、和出现在ID字段之后的数据字段转送给帧处理部150,还是在收到了该判定结果之后中止帧的接收。另外,帧解释部120在判断为是未遵循CAN协议的帧的情况下,通知帧生成部180以使得发送错误帧。另外,帧解释部120在接收到错误帧的情况下,自此之后将该帧废弃,也就是中止帧的解释。
[0114] 接收ID判断部130接收从帧解释部120通知的ID字段的值,按照接收ID列表保持部140所保持的消息ID的列表,进行是否接收该ID字段之后的帧的各字段的判定。接收ID判断部130将该判定结果通知给帧解释部120。
[0115] 接收ID列表保持部140保持ECU100a所要接收的消息ID的列表、即接收ID列表。该接收ID列表例如与上述的图4的例子是同样的。
[0116] 帧处理部150根据接收到的帧的数据,按每个ECU进行不同的处理。例如,连接于发动机101的ECU100a具备当在时速超过30km的状态下车门开着的状态时使警报声响起的功能。而且,ECU100a的帧处理部150管理从其他ECU接收到的数据(例如表示车门的状态的信息),基于从发动机101取得的时速,在一定条件下进行使警报声响起的处理等。在ECU100c具备在未施加制动的状况下打开车门时响起警报声的功能。在ECU100b、ECU100d中并不特别做什么。此外,ECU100a~100d也可以具备除上述以外的功能。另外,帧处理部150在取得了固件更新用的FW数据的情况下以及取得了ECU信息取得用的帧涉及的数据的情况下,向FW更新处理部160进行通知。
[0117] FW更新处理部160请求签名验证部163进行从网关300接收并从帧处理部150通知的FW数据的签名验证,在签名验证成功的情况下,基于FW数据,对ECU100a的启动ROM内的固件进行更新(重写)。启动ROM例如是作为在复位后由ECU100a的处理器执行的固件的保存目的地而设定的非易失性存储器。在更新启动ROM内的固件时,FW更新处理部160为了能够在更新失败时复原(还原)到更新前的状态,例如在FW缓存(cache)保持部161中保存已有的固件。另外,FW更新处理部160通知帧生成部180以使其生成并发送表示基于FW数据的固件的更新结果的帧。在固件的更新结果中,例如也可以包含更新后的固件的版本编号等FW版本。另外,FW更新处理部160在从帧处理部150进行了ECU信息取得用的帧涉及的通知的情况下,通知帧生成部180生成并发送关于ECU构成信息的帧,该ECU构成信息包含ECU100a的ECU-ID以及关于当前固件的FW版本。
[0118] FW缓存保持部161例如通过ECU100a中的非易失性存储器等的存储区域来实现,用于在更新启动ROM内的固件时对已有的固件进行保存等。
[0119] 签名验证部163从FW更新处理部160接收成为签名验证对象的FW数据,使用从密钥保持部164取得的签名验证用的密钥来进行签名验证,将该验证结果通知给FW更新处理部160。
[0120] 密钥保持部164保持固件更新用的FW数据的签名验证用的密钥。
[0121] 数据取得部170取得表示连接于ECU的设备、传感器等的状态的数据,通知给帧生成部180。
[0122] 帧生成部180按照从帧解释部120通知的指示错误帧发送的通知,构成错误帧,将错误帧通知给帧收发部110并使其发送该错误帧。另外,帧生成部180针对从数据取得部170通知的数据的值,附加上预先确定的消息ID而构成帧,并通知给帧收发部110。另外,帧生成部180根据FW更新处理部160的固件更新结果的帧或ECU构成信息的帧的生成指示,分别构成附加了预先确定的消息ID的帧,并通知给帧收发部110。
[0123] ECU100b~100d也具备与ECU100a大致同样的结构。
[0124] [1.8服务器500的结构]
[0125] 服务器500是位于搭载车载网络系统10的车辆的外部的计算机,包括存储器、硬盘等存储介质、处理器、通信电路等。服务器500也可以具备作为用户接口的输入装置(键盘等)、显示器等。以在多个车辆分别搭载有涉及到车载网络的多个ECU为前提,服务器500具有如下功能:管理由各种ECU的制造公司等提供的固件,进行固件的工作验证,对各车辆发布包含更新用固件的FW更新信息。
[0126] 图8是服务器500的结构图。如该图所示,服务器500构成为包括数据收发部510、FW更新控制部520、FW工作验证部530、ECU信息保持部531、全部FW保持部532、发布数据生成部570、FW保持部571、ECU管理信息保持部572、签名生成部590以及密钥保持部591。这些各构成要素通过服务器500中的通信电路、执行储存于存储器的控制程序的处理器等来实现。
[0127] 数据收发部510与网关300进行通信,收发数据。数据收发部510在从网关300接收到系统构成信息来作为固件的更新请求(FW更新请求)的情况下,通知给FW更新控制部520,在针对FW更新请求存在应更新的固件的情况下,从FW更新控制部520接收FW更新信息并向网关300发送。数据收发部510在从网关300接收到固件的更新结果的情况下,通知给FW更新控制部520。
[0128] FW更新控制部520在从ECU的制造公司等的终端装置向服务器500上传了ECU用的最新固件的情况下,向FW保持部571保存固件,基于来自终端装置的信息对固件、表示其版本编号等的FW版本、和表示对象ECU的种类的信息等进行关联地管理。FW更新控制部520在经由数据收发部510从网关300接收到FW更新请求涉及的系统构成信息的情况下,基于系统构成信息,在对应于该网关300存在应更新的固件的情况下,使发布数据生成部570生成作为更新用固件的数据包(package)的FW更新信息。此外,FW更新控制部520例如可以基于FW保持部571所保持的固件涉及的信息和系统构成信息来判断是否存在应更新的固件。FW更新控制部520基于该系统构成信息,请求FW工作验证部530进行关于应更新的固件的工作验证,在完成了工作验证之后(即验证到能没有问题地适当工作之后),使数据收发部510发送FW更新信息。此外,在关于更新用固件的工作验证时验证失败的情况(即未适当地工作的情况)下,服务器500不向网关300发送包含更新用固件的FW更新信息。另外,FW更新控制部520在从网关300接收到固件的更新结果的情况下,更新ECU管理信息保持部572所保持的车辆ECU管理信息。
[0129] FW工作验证部530具有如下功能:接受FW更新控制部520的请求,在由与系统构成信息所表示的各ECU相同种类的ECU构成的工作环境下,执行用于验证更新用固件以及在工作环境下各ECU的固件适当(正常)地工作这一情况的FW工作验证处理。在FW工作验证处理中,例如可验证如下工作:对成为工作环境中的更新对象的ECU适用更新用固件的更新工作;在该更新后工作环境下的各ECU是否正常地工作。在FW工作验证处理中,既可以使用作为工作环境的各种ECU的硬件来进行更新用固件的工作验证,也可以通过模拟各种ECU(虚拟地执行)的虚拟环境下的模拟来进行更新用固件的工作验证。在此,作为一例,设想通过模拟各种ECU的虚拟环境下的模拟来进行更新用固件的工作验证的例子来进行说明。
[0130] ECU信息保持部531保持用于模拟各种ECU的信息(软件),该信息包含各种ECU正在使用的最新固件。
[0131] 全部FW保持部532不仅保持与各种ECU对应的最新固件,还保持包含过去版本的固件在内的全部固件。参照该ECU信息保持部531以及全部FW保持部532,FW工作验证部530构建模拟与通过系统构成信息的ECU-ID和FW版本识别的各ECU的种类相同种类的ECU的工作环境,对适用了更新用固件的更新和之后的工作进行模拟,由此验证是否能没有问题地适当工作。
[0132] 发布数据生成部570生成作为用于向网关300发布的更新用固件的数据包的FW更新信息,请求签名生成部590生成针对FW更新信息的签名。关于FW更新信息的格式,在后面叙述(参照图10)。
[0133] FW保持部571保持所上传的ECU用的固件。
[0134] ECU管理信息保持部572保持车辆ECU管理信息,所述车辆ECU管理信息是与各车辆的车载网络中的各ECU有关的信息。关于车辆ECU管理信息,将在后面进行说明(参照图9)。
[0135] 签名生成部590接受发布数据生成部570的请求,使用密钥保持部591所保持的签名用的密钥,生成针对FW更新信息的签名并通知给发布数据生成部570。签名生成部590例如可以进行针对FW更新信息中的各FW数据的签名以及针对FW更新信息整体的签名。
[0136] 密钥保持部591保持签名生成部590为了对FW更新信息进行签名所使用的密钥。
[0137] [1.9ECU管理信息例]
[0138] 图9表示服务器500的ECU管理信息保持部572所保持的车辆ECU管理信息(按各车辆的ECU信息的集合)的一例。
[0139] 本例的车辆ECU管理信息针对成为服务器500的管理对象的每个车辆,构成为包括车辆信息以及关于搭载于该车辆的各ECU的ECU信息。车辆信息是用于识别车辆的标识符(车辆ID)。在车辆ECU管理信息中与车辆信息相关联的ECU信息,构成为包括ECU-ID、表示ECU的功能类别的ECU类别、ECU的制造公司、作为安装于ECU的固件的版本号等的FW版本、以及作为与该ECU对应的最新固件的版本号等的最新FW版本。车辆ECU管理信息中的、关于某车辆的各ECU信息,例如基于下述信息来设定:从该车辆的网关300接收到的信息(系统构成信息以及固件的更新结果等)、以及关于从各种ECU的制造公司上传到服务器500的固件的FW版本。此外,在图9中,仅例示了与一台车辆A有关的信息,但车辆ECU管理信息也可以包含关于其他车辆的信息。
[0140] [1.10FW更新信息的格式例]
[0141] 图10表示作为服务器500所发布的发布数据的FW更新信息的格式的一例。
[0142] FW更新信息包括表示FW数据的个数的FW数F1、一个以上的FW数据(在图10的例子中为两个单独的FW数据F10、F20)、以及作为针对FW更新信息(发布数据)整体的签名的FW更新信息签名F30。FW数据F10、F20分别包括:更新用的固件(FW)F13、F23;识别成为对象的ECU的ECU-ID F11、F21;表示固件的版本号等的FW版本F12、F22;以及作为针对这些数据的签名的FW数据签名F14、F24。固件F13、F23是固件本身也就是二进制数据。
[0143] [1.11由网关300等进行的固件的更新所涉及的工作例]
[0144] 以下,对车载网络系统10中的ECU的固件的更新所涉及的工作进行说明。
[0145] 图11以及图12是表示服务器500、网关300、ECU100a、100b等装置合作进行的ECU的固件的更新所涉及的工作例的时序图。在此的各时序意味着各装置中的各处理步骤(step)。在此,为了便于说明,对一部分ECU的工作进行了图示。该工作例所示的时序,例如假设以每一定天数这样的周期来反复执行,但也可以在检测到向车载网络追加了新的ECU时执行,还可以对应于驾驶员等对车辆内的某个ECU的操作来执行。
[0146] 车辆中的网关300通过向总线200a、200b发送ECU信息取得用的帧,对由车载网络连接的全部ECU(ECU100a、100b等)请求ECU信息(步骤S1001)。
[0147] 接收到ECU信息取得用帧的ECU100a,向总线200a发送包含关于ECU100a的ECU信息的帧(步骤S1002),该ECU信息构成为包含ECU-ID和所安装的固件涉及的FW版本。对应于此,网关300通过从总线200a接收帧,接收关于ECU100a的ECU信息。
[0148] 另外,与ECU100a同样地,接收到ECU信息取得用帧的ECU100b,也向总线200a发送包含关于ECU100b的ECU信息的帧(步骤S1003)。对应于此,网关300通过从总线200a接收帧,接收关于ECU100b的ECU信息。同样地,网关300可以接收从其他的各ECU发送的各ECU信息。步骤S1002、S1003是在网关300中取得表示各ECU的种类等的系统构成信息(ECU信息的集合)的取得步骤。
[0149] 接着,网关300在从各ECU取得的ECU信息的集合相对于作为ECU信息保持部372所保持的系统构成信息的ECU信息群(ECU信息的集合)发生了变化的情况下(步骤S1004),通过该取得的ECU信息,更新ECU信息保持部372所保持的系统构成信息(步骤S1005)。此外,网关300在从各ECU取得的ECU信息相对于所保持的系统构成信息发生了变化的情况下,也可以进行用于向车辆的驾驶员等报告该情况的控制。
[0150] 接着,网关300将ECU信息保持部372所保持的、由ECU信息的集合来表示与车载网络连接的全部ECU的编组的系统构成信息作为FW更新请求发送给服务器500(步骤S1006)。对应于此,服务器500接收作为FW更新请求的系统构成信息。
[0151] 服务器500对应于FW更新请求,基于所接收到的系统构成信息以及ECU管理信息保持部572所保持的车辆ECU管理信息等,判别是否需要对搭载有作为FW更新请求的发送源的网关300的车辆的一个以上的ECU更新固件(步骤S1007)。如果不需要更新,则服务器500例如向网关300通知不需要更新之意。在图11中,省略了不需要更新的情况下的说明。
[0152] 在通过步骤S1007判别为需要更新固件的情况下,服务器500通过FW更新控制部520,基于所接收到的系统构成信息以及ECU管理信息保持部572所保持的车辆ECU管理信息等,决定应发送的更新用的一个以上的固件(步骤S1008)。通过该决定,也可决定更新用固件的个数。
[0153] 接着,服务器500通过FW工作验证部530,在由与所接收到的系统构成信息所表示的各ECU相同种类的ECU构成的环境下,进行通过步骤S1008决定的更新用固件的工作验证(步骤S1009)。作为更新用固件,使用FW保持部571所保持的固件。服务器500在步骤S1009的工作验证适当地结束的情况下,即在由系统构成信息所表示的种类的ECU构成的环境下进行将更新用固件适用于成为对象的相应ECU的更新、并在该更新后确认为各ECU适当地工作的情况下,通过发布数据生成部570进行FW更新信息(参照图10)的生成。即,发布数据生成部570按与更新用固件的个数即FW数相当的次数(步骤S1010),进行FW保持部571所保持的固件等FW数据的取得(步骤S1011)以及对FW数据的由签名生成部590生成的FW数据签名的附加(步骤S1012)。另外,发布数据生成部570通过签名生成部590生成对FW更新信息的签名(FW更新信息签名)(步骤S1013),生成附加有该签名的FW更新信息。
[0154] 在服务器500中,当生成了FW更新信息时,FW更新控制部520使数据收发部510发送该FW更新信息(步骤S1014)。由此,从服务器500向作为FW更新请求的系统构成信息的发送源即网关300发送FW更新信息,网关300接收该FW更新信息。步骤S1014是在网关300中从服务器500接收包含设至少一个ECU为更新对象的更新用固件在内的FW更新信息的接收步骤。
[0155] 网关300在接收到FW更新信息时,通过签名验证部373,验证FW更新信息的签名(FW更新信息签名)(步骤S1015)。然后,网关300的FW更新处理部370判定签名的验证是否成功(步骤S1016),在验证未成功的情况下,丢弃FW更新信息(步骤S1017),在该情况下不进行基于FW更新信息的固件更新。在验证成功的情况下,网关300主要通过FW更新处理部370,与符合更新对象的ECU合作来进行FW更新控制处理(步骤S1018)。关于FW更新控制处理的内容,在后面叙述。步骤S1018等是在使用系统构成信息所表示的种类的ECU作出了更新用固件的工作验证之后网关300进行用于基于该更新用固件更新相应ECU的固件的控制的更新处理步骤。
[0156] 网关300在结束了步骤S1018的FW更新控制处理之后、或者在步骤S1017的FW更新信息的丢弃之后,将固件的更新结果发送给服务器500(步骤S1019)。固件的更新结果例如是表示更新是否成功的信息,该信息例如也可以包含更新后的固件涉及的FW版本。由此,服务器500接收更新结果。
[0157] 服务器500在接收到固件的更新结果的情况下,更新ECU管理信息保持部572所保持的车辆ECU管理信息,使得表现该固件更新后的状态(步骤S1020)。
[0158] [1.12由网关300进行的FW更新控制处理例]
[0159] 图13是表示由网关300进行的FW更新控制处理的一例的流程图。
[0160] 以下,关于在上述的步骤S1018中由网关300执行的FW更新控制处理,结合图13进行说明。
[0161] 网关300通过FW更新处理部370,取得FW更新信息(参照图10)中的FW数(步骤S1201),反复进行与FW数相当的次数的步骤S1203~步骤S1205的处理(步骤S1202)。
[0162] FW更新处理部370取得FW更新信息的FW数据中的ECU-ID(步骤S1203)。
[0163] 接着,在网关300中,FW更新处理部370使帧生成部380生成为了向由ECU-ID识别的ECU进行发送而包含FW数据的帧,帧收发部310经由与该ECU连接的总线向ECU发送该帧(步骤S1204)。由此,由FW数据中的ECU-ID识别的ECU,接收该FW数据,进行用于固件更新的处理,将该更新结果发送给网关300。
[0164] 网关300接收从ECU发送的更新结果(步骤S1205)。
[0165] [1.13由ECU100a进行的FW更新控制处理例]
[0166] 图14是表示由ECU100a进行的FW更新控制处理的一例的流程图。
[0167] 以下,关于在从网关300通过上述的步骤S1204发送了FW数据的ECU是ECU100a的情况下ECU100a所进行的FW更新控制处理,结合图14进行说明。
[0168] 在ECU100a中,帧收发部110接收包含FW数据的帧(步骤S1301)。
[0169] ECU100a的FW更新处理部160经由帧解释部120以及帧处理部150,取得通过步骤S1301接收到的帧所涉及的FW数据,使签名验证部163验证FW数据中的FW数据签名(步骤S1302)。
[0170] FW更新处理部160判定FW数据签名的验证是否成功(步骤S1303),在未成功的情况下丢弃FW数据(步骤S1304),不进行固件的更新。
[0171] 在FW数据签名的验证成功的情况下,FW更新处理部160通过将ECU100a中的启动ROM的内容即固件复制到FW缓存保持部161来保存(步骤S1305)。
[0172] 接着,FW更新处理部160通过FW数据中的固件(FW)来进行启动ROM内的固件的更新(步骤S1306),通过对ECU100a的处理器进行复位(reset)来进行再启动(步骤S1307)。
[0173] 在ECU100a中,预先设定成在从启动ROM的启动未成功的情况下基于FW缓存保持部161的内容进行启动,在步骤S1307的再启动未成功的情况下(步骤S1308),可启动FW缓存保持部161所保存的更新前的固件(步骤S1309)。然后,在该更新前的固件的控制下,通过将FW缓存保持部161所保存的更新前的固件向启动ROM复制,将启动ROM的内容恢复到更新前的状态(步骤S1310)。
[0174] ECU100a在步骤S1307的再启动成功的情况下,将包含表示固件的更新成功之意的更新结果的帧向网关300发送,在步骤S1307的再启动未成功的情况下,在步骤S1310之后,将包含表示固件的更新失败之意的更新结果的帧向网关300发送(步骤S1311)。
[0175] [1.14实施方式1的效果]
[0176] 在实施方式1涉及的车载网络系统10中,网关300收集ECU信息并作为系统构成信息进行保持,该ECU信息表示关于与车载网络(总线200a、200b)连接的全部ECU的ECU种类等。并且,网关300将系统构成信息通知给服务器500。由此,在服务器500中,能够针对搭载有该网关300的车辆的车载网络中的一个以上的ECU,判断是否需要固件的更新,能够决定应更新的固件。在服务器500中,在由与系统构成信息所表示的ECU的编组对应的相同种类的ECU构成的环境(基于现实ECU的环境或者基于模拟ECU的环境)下,进行与应更新的固件的更新关联的工作验证(是否能适当地进行固件更新的验证以及在该更新后各ECU是否适当地工作的验证等)。在服务器500中,在完成了工作验证之后(确认到适当的工作之后),向网关300发送包含应更新的固件的FW更新信息,因此,网关300能够取得在与由该车辆的各ECU构成的环境相当的环境下完成工作验证的固件。因此,可降低在该车辆中进行了固件更新后车辆不再正常地发挥作用的可能性。
[0177] (实施方式2)
[0178] 以下,对将实施方式1中示出的车载网络系统10的一部分变形后的车载网络系统11进行说明。
[0179] 在本实施方式涉及的车载网络系统11中,为了高效地进行多个车辆各自的ECU的固件更新,使用如下固件更新方法:服务器发送进行了与每个车辆模型对应的车辆内的各ECU中的工作验证之后的固件。在该固件更新方法中,使用如下方法:在车辆内的网关装置中,与固件一起接收已验证构成信息(已验证ECU构成信息),该已验证构成信息(已验证ECU构成信息)表示针对从服务器发送的固件已在工作验证中使用了的ECU的编组(各ECU的种类等),与车辆内的ECU的编组进行比较,由此确认是否进行了与本车辆对应的工作验证。
[0180] [2.1车载网络系统11的整体结构]
[0181] 车载网络系统11构成为包括:搭载于车辆并与各种设备连接的ECU100a~100d、总线200a、200b、网关300a;车辆外的网络400;以及服务器500a。该车载网络系统11是将实施方式1中示出的车载网络系统10(参照图1)中的网关300以及服务器500替换为网关300a以及服务器500a而得到的。关于在此未说明之处,车载网络系统11与车载网络系统10是同样的。
[0182] [2.2网关300a的结构]
[0183] 网关300a是作为与连接有ECU100a和ECU100b的总线200a以及连接有ECU100c和ECU100d的总线200b连接的网关装置的一种ECU。网关300a具有将从一方的总线接收到的帧向另一方的总线转送的功能,另外,具有经由网络400与服务器500a通信的功能。
[0184] 图15是网关300a的结构图。网关300a是将实施方式1中示出的网关300中的FW更新处理部370替换为FW更新处理部370a而得到的。如图15所示,网关300a构成为包括帧收发部310、帧解释部320、接收ID判断部330、接收ID列表保持部340、帧处理部350、转送规则保持部360、FW更新处理部370a、ECU信息保持部372、签名验证部373、密钥保持部374、外部通信部375、帧生成部380和ECU信息取得部390。这些各构成要素通过网关300a中的通信电路、执行存储器所保存的控制程序的处理器或数字电路等来实现。关于网关300a的构成要素中的与上述的网关300(参照图3)同样的构成要素,在图15中标注相同的标号,在此省略说明。
[0185] FW更新处理部370a请求签名验证部373进行FW更新信息(参照图16)的签名验证,该FW更新信息包含从外部通信部375通知的更新用固件等FW数据,在签名验证成功的情况下确认是否适当地完成了固件的工作验证这一情况。是否适当地作出了工作验证的确认,通过对ECU信息取得部390取得并保存于ECU信息保持部372的各ECU的ECU信息的集合即系统构成信息与FW更新信息所包含的已验证ECU构成信息进行比较来进行。此外,FW更新处理部370a在从外部通信部375通知了FW更新信息的情况下,也可以在使ECU信息取得部390收集到各ECU的ECU信息之后,进行是否适当地作出了工作验证这一情况的确认。已验证ECU构成信息是在服务器500a中构成已在FW更新信息所包含的固件的工作验证中使用了的环境的各ECU的种类等的信息。ECU的种类例如通过ECU-ID以及ECU所安装的固件的版本编号等FW版本来确定。
[0186] FW更新处理部370a对系统构成信息所表示的与车辆所搭载的各ECU的种类和从服务器500a接收到的FW更新信息的已验证ECU构成信息所表示的已在工作验证中使用了的ECU各自的种类进行比较,在比较结果满足了一定条件的情况下,进行用于使得基于FW更新信息所包含的更新用固件进行更新的控制。该一定条件例如是系统构成信息所表示的ECU的种类的全部与已验证ECU构成信息所表示的ECU的种类的全部完全一致。FW更新处理部370a向帧生成部380通知更新用固件涉及的FW数据和与成为更新对象的ECU连接的总线的总线信息,来作为用于使得基于更新用固件进行更新的控制。此外,在成为更新对象的ECU存在多个的情况下,在FW更新信息中的已验证ECU构成信息中包含更新顺序信息,因此,FW更新处理部370a按照该更新顺序信息所表示的顺序来进行用于更新固件的控制。
[0187] 另外,FW更新处理部370a将从帧处理部350通知的更新结果通知给外部通信部375。另外,FW更新处理部370a在系统构成信息所表示的各ECU的种类与已验证ECU构成信息所表示的各ECU的种类的比较结果未满足上述的一定条件的情况下,中止固件的更新,将该系统构成信息作为工作验证请求通知给外部通信部375。在工作验证请求中,例如附加有用于确定想要更新的固件的信息。FW更新处理部370a在通过服务器500a完成与工作验证请求相应的工作验证并从服务器500a发送了包含满足上述的一定条件的已验证ECU构成信息的FW更新信息的情况下,取得该FW更新信息并再次开始固件的更新。此外,FW更新处理部370a作为如下的更新处理部发挥功能:在使用系统构成信息所表示的各种类的ECU完成了更新用固件的工作验证之后接收包含该更新用固件等FW数据的FW更新信息并签名验证成功的情况下,才终于进行用于相应ECU的固件更新的控制(例如经由总线向ECU发送FW数据等)。
另外,FW更新处理部370a将与ECU100a~100d进行通信所需的数据通知给帧生成部380。
[0188] 外部通信部375从服务器500a接收包含更新用固件涉及的FW数据的FW更新信息并通知给FW更新处理部370a,将从FW更新处理部370a通知的更新结果发送给服务器500a。另外,外部通信部375将从FW更新处理部370a通知的系统构成信息作为工作验证请求发送给服务器500a。外部通信部375例如预先保持有为了经由网络400访问服务器500a而需要的服务器500a的地址信息等。此外,外部通信部375也可以向服务器500a发送固件的更新请求。
[0189] [2.3FW更新信息的格式例]
[0190] 图16表示作为服务器500a所发布的发布数据的FW更新信息的格式的一例。
[0191] 服务器500a所发布的FW更新信息是在实施方式1中示出的服务器500所发布的FW更新信息(参照图10)中追加了已验证ECU构成信息F40而得到的。
[0192] 即,服务器500a所发布的FW更新信息包含FW数F1、一个以上的FW数据(在图16的例子中为2个单独的FW数据F10、F20)、已验证ECU构成信息F40、和作为对FW更新信息整体的签名的FW更新信息签名F30。
[0193] [2.4已验证ECU构成信息的格式例]
[0194] 图17表示已验证ECU构成信息F40的格式的一例。
[0195] 已验证ECU构成信息F40是关于已通过服务器500a在固件的工作验证中使用了的ECU的信息。已验证ECU构成信息F40包含:识别车辆模型的车型信息、表示已在工作验证中使用了的固件的更新顺序(能够没有问题地进行固件更新的更新顺序)的更新顺序信息、关于已在工作验证中使用的各ECU的ECU-ID、以及作为ECU所安装的固件的版本编号等的FW版本。
[0196] [2.5服务器500a的结构]
[0197] 服务器500a是具有经由网络400发布用于更新ECU100a~100d的固件的数据即FW更新信息(参照图16)的功能的计算机。
[0198] 服务器500a以在多个车辆的各车辆上搭载有车载网络所涉及的多个ECU这一情况作为前提,服务器500具有如下功能:管理从各种ECU的制造公司等提供的固件,进行固件的工作验证,向各车辆发布包含更新用固件的FW更新信息。
[0199] 图18是服务器500a的结构图。如该图所示,服务器500a构成为包括数据收发部510a、FW更新控制部520a、FW工作验证部530a、ECU信息保持部531、全部FW保持部532、发布数据生成部570a、FW保持部571、ECU管理信息保持部572、签名生成部590和密钥保持部591。
这些各构成要素通过服务器500a中的通信电路、执行存储器所保存的控制程序的处理器等来实现。关于服务器500a的构成要素中的与上述的服务器500(参照图8)同样的构成要素,在图18中标注相同的标号,在此省略说明。
[0200] 数据收发部510a与网关300a进行通信,收发数据。数据收发部510a在从网关300a接收到系统构成信息作为固件的工作验证的请求(工作验证请求)的情况下,向FW更新控制部520a进行通知,在从FW更新控制部520a接收到FW更新信息以便发布固件的情况下,将FW更新信息发送给网关300a。数据收发部510a在从网关300a接收到固件的更新结果的情况下,向FW更新控制部520a进行通知。此外,在网关300a发出固件的更新请求的情况下,数据收发部510a在从网关300a接收到固件的更新请求时,向FW更新控制部520a进行通知。
[0201] FW更新控制部520a在从ECU的制造公司等的终端装置向服务器500a上传ECU用的最新(即更新用)固件并作出了固件的登记请求的情况下,与FW工作验证部530a等合作来进行在完成了固件的工作验证之后进行登记的处理。为了进行工作验证,首先,FW更新控制部520a基于来自终端装置的信息,确定所上传的更新用固件所工作的ECU,进一步,确定搭载有(使用)该确定出的ECU的车辆的车辆模型。为了确定正在使用需要更新固件的ECU的车辆模型,FW更新控制部520a例如保持有图19所例示那样的ECU车辆模型管理表,通过参照该ECU车辆模型管理表,确定与需要更新固件的ECU的ECU-ID对应的车辆模型。ECU车辆模型管理表是使ECU-ID等和车辆模型相关联的表。车辆模型是车辆的构造等识别信息,例如可以是型式等。并且,FW更新控制部520a例如使用图20所例示那样的车辆模型ECU管理表,生成对正在使用搭载有需要更新固件的ECU的车辆模型的全部ECU进行了列举的列表。车辆模型ECU管理表是按每个车辆模型关联了关于该车辆模型的车辆所搭载着的全部ECU的识别信息(ECU-ID等)的表。FW更新控制部520a向FW工作验证部530a通知该生成的列表,使用由列表所列举的全部ECU构成的环境,进行固件更新的工作验证。在确认到工作验证结束且没有问题地工作之后,FW更新控制部520a将上传的固件保存于FW保持部571,基于来自终端装置的信息,对固件、表示其版本编号等的FW版本和表示对象ECU的种类的信息等进行关联地管理。另外,FW更新控制部520a在FW工作验证部530a中的工作验证结束之后,使发布数据生成部570a生成成为向多个车辆(具体是各车辆的网关300a)的发布数据的、作为包含已完成了工作验证的固件的更新用固件的数据包的FW更新信息。FW更新控制部520a使数据收发部
510a向网关300a发送由发布数据生成部570a生成的FW更新信息。
[0202] 另外,FW更新控制部520a在经由数据收发部510a从网关300a接收到固件的更新请求的情况下,使发布数据生成部570a生成通过FW工作验证部530a验证为没有问题地工作之后的、包含与该网关300a对应的更新用固件的FW更新信息,并发送给网关300a。另外,FW更新控制部520a在经由数据收发部510a从网关300a取得了系统构成信息作为工作验证请求的情况下,请求FW工作验证部530进行关于更新用固件的工作验证,在完成了工作验证之后(即验证为没有问题地适当工作之后)使数据收发部510a发送FW更新信息。此外,在服务器500a向网关300a发送的FW更新信息中,一定会如图16所示那样包含表示已通过FW工作验证部530a在工作验证中使用了的ECU的信息的已验证ECU构成信息。另外,FW更新控制部520a在从网关300接收到固件的更新结果的情况下,更新ECU管理信息保持部572所保持的车辆ECU管理信息。
[0203] FW工作验证部530a具有如下功能:接受FW更新控制部520a的请求,在由列举了ECU的列表所表示的ECU构成的工作环境下、或者在由与系统构成信息所表示的各ECU相同种类的ECU构成的工作环境下,执行用于验证更新用固件以及工作环境下的各ECU的固件是否适当(正常)地工作的FW工作验证处理。在FW工作验证处理中,例如,可验证对成为工作环境中的更新对象的ECU适用更新用固件的更新工作、在该更新后工作环境的各ECU是否正常地工作的工作等。在FW工作验证中,既可以使用作为工作环境的各种ECU的硬件来进行更新用固件的工作验证,也可以通过模拟各种ECU的虚拟环境下的模拟来进行更新用固件的工作验证。
[0204] 发布数据生成部570a生成作为用于向网关300a发布的更新用固件的数据包的FW更新信息(参照图16),请求签名生成部590生成对FW更新信息的签名。此外,发布数据生成部570a从FW工作验证部530取得关于作为验证为适当地工作的固件的工作环境而使用的全部ECU的信息(ECU-ID、FW版本等),设定FW更新信息中的已验证ECU构成信息。
[0205] FW保持部571保持被上传且经过工作验证的ECU用的固件。
[0206] [2.6向服务器登记更新用固件所涉及的工作例]
[0207] 图21是表示由服务器500a进行的更新用固件的登记所涉及的FW登记处理的流程图。以下,结合该图,对由服务器500a进行的FW登记处理进行说明。FW登记处理在从服务器500a外部的终端装置经由网络发送固件并发出了固件的登记请求的情况下执行。
[0208] 首先,服务器500a接收伴随向服务器500a上传固件而发出的固件的登记请求(步骤S2000)。固件的登记请求例如包含示出固件的对象ECU的ECU-ID和表示固件的版本编号等的FW版本的信息。
[0209] 接收到登记请求的服务器500a,确定固件的更新所需的车辆模型(步骤S2001)。即,服务器500a从所接收到的固件的登记请求所包含的信息中,取得更新所需的ECU的ECU-ID,参照图19所例示那样的ECU车辆模型管理表,确定搭载有由登记请求所包含的ECU-ID识别的ECU的车辆模型。
[0210] 服务器500a按通过步骤S2001确定出的各车辆模型,执行由该车辆模型所使用的ECU构成的工作环境下的固件的工作验证处理(步骤S2003~S2007)(步骤S2002)。首先,服务器500a参照车辆模型ECU管理表(参照图20)来确定相应车辆模型所搭载着的ECU,示出对所确定出的全部ECU的信息(ECU-ID)进行了列举的列表(步骤S2003)。然后,在使用由该列表示出的ECU构成的工作环境下,进行关于要更新的固件的工作验证(FW工作验证处理)(步骤S2004)。在该工作验证中,作出如下确认:要更新的固件在由相应车辆模型所搭载的ECU构成的环境下是否正常地工作、以及在对更新对象的ECU进行了固件的更新时其他的ECU是否正常地工作。
[0211] 在工作验证后,服务器500a判断该工作验证是否成功(步骤S2005)。在通过步骤S2005判断为工作验证成功的情况下,服务器500a将该固件保存于FW保持部571来管理(步骤S2006)。另一方面,在通过步骤S2005判断为工作验证失败的情况下,服务器500a向通过步骤S2000发送了固件的登记请求的终端装置通知错误(步骤S2007)。
[0212] [2.7FW工作验证处理]
[0213] 图22是表示由服务器500a进行的FW工作验证处理的流程图。FW工作验证处理主要由服务器500a内的FW工作验证部530a等来执行,是上述的FW登记处理(参照图21)的一部分(步骤S2004)处理,另外,也是另外在从网关300a接收到基于系统构成信息的工作验证请求的情况下进行的处理。FW工作验证处理大致是如下处理:在使用由来自FW更新控制部520a的列表表示的ECU群、或者与由从网关300a取得的系统构成信息表示的ECU相同种类的ECU群构成的环境下,验证更新用固件的工作。以下,结合图22,对FW工作验证处理进行说明。
[0214] FW工作验证部530a参照由所接收到的列表所表示的ECU-ID或者系统构成信息所表示的ECU-ID等,将应在工作验证中使用的各ECU的信息设定到模拟器800(步骤S2100)。模拟器800是能够由FW工作验证部530a控制的计算机,构成为能够模拟各种ECU。由FW工作验证部530a以及模拟器800构成的结构,作为模拟多个ECU的模拟部进行工作。在步骤S2100中,FW工作验证部530a基于ECU信息保持部531所保持的用于模拟各种ECU的信息(软件)以及最新的固件,将应在工作验证中使用的各ECU的信息设定到模拟器800。此外,在ECU信息保持部531所保持的用于模拟各种ECU的信息中,例如可以包含与ECU内的处理器以及存储器有关的信息(工作频率、存储器尺寸等)、与ECU内的CAN控制器有关的信息(型号、工作频率等)、与连接于ECU的总线或者ECU所使用的通信路有关的信息、连接于ECU的传感器和/或致动器的信息(旋转编码器、转矩传感器、达等的信息)等。通过将这些信息设定到模拟器800,能够进行各车辆模型下的ECU和/或车载网络的模拟。
[0215] 接着,FW工作验证部530a从全部FW保持部532所保持的与各种ECU对应的全部固件中,选择向由模拟器800模拟的各ECU设定的固件,将该固件的信息设定到模拟器800(步骤S2101)。此外,对于要更新固件的对象ECU,也设定更新前的固件。
[0216] 接着,FW工作验证部530a通过由模拟器800模拟将更新用固件设定到对象ECU的更新和该更新后的各ECU的工作,进行更新用固件的工作验证(步骤S2102)。由此,在模拟与由从FW更新控制部520a通知的列表或者系统构成信息确定的ECU的种类相同种类的ECU的工作环境下,通过模拟器800,对适用了更新用固件的更新和之后的工作进行模拟,可实现关于是否正常地工作的工作验证。
[0217] 在工作验证后,FW工作验证部530a判断该工作验证是否成功(步骤S2103)。在通过步骤S2103判断为工作验证成功的情况下,FW工作验证部530a将完成了工作验证的固件保存于全部FW保持部532(步骤S2104)。此外,在基于来自网关300a的工作验证请求进行FW工作验证处理时,省略步骤S2104的处理。
[0218] 进一步,FW工作验证部530a将关于已在工作验证中使用了的全部ECU的信息(ECU-ID、FW版本等)传达给FW更新控制部520a,在FW更新控制部520a中,使发布数据生成部570a以包含关于已在该工作验证中使用的ECU的信息作为已验证ECU构成信息的方式,生成包含完成了工作验证的固件的FW数据的FW更新信息。在发布数据生成部570a中,通过签名生成部590,生成对包含已验证ECU构成信息的FW更新信息的签名,并作为FW更新信息签名包含于FW更新信息(步骤S2105)。另外,在通过步骤S2103判断为工作验证未成功的情况下,FW工作验证部530a向FW更新控制部520a通知错误(步骤S2106),接收到该错误,FW更新控制部520a中止FW更新信息的生成所涉及的处理。
[0219] 此外,在已验证ECU构成信息中,也可以不仅包含与各ECU自身有关的信息,还包含与进行了工作验证时的各ECU的状态有关的信息。作为该信息的例子,例如可列举从现行版本的固件向新固件更新时的改写时间(处理的长度)、在改写后到能够工作为止的时间、改写处理的负荷、不再能够接收传感器信息和/或车载网络上的消息的时间、在改写期间不再能够接收的消息的ID、改写后的固件要利用的存储器容量(size)等。网关300a和/或各ECU也可以根据这些信息来判断在什么时刻进行固件的更新处理。例如,也可以进行如下判断等:在夜间等预先知道会长时间不用车辆(汽车)的时间段更新固件;仅在向驾驶员或汽车的管理者等通知更新所需的时间并被允许的情况下更新固件;向驾驶员或汽车的管理者等查询不使用汽车或者不使汽车行驶的时间,仅更新被控制在该时间内的量的固件。由此,能够实现灵活的固件更新。
[0220] [2.8多个更新用固件的验证所涉及的FW工作验证处理]
[0221] 图23是表示由服务器500a进行的多个固件的验证所涉及的FW工作验证处理的一例的流程图。
[0222] 在图23中,着眼于针对多个固件的更新顺序(即验证次序)互不相同的多个验证次序模式的各验证次序模式而进行工作验证并确定验证成功的验证次序的处理,省略了其他的处理。即,在图23中,示出了成为图22所示的步骤S2101以及步骤S2102的替代的处理,但省略了其他的处理。以下,结合图23,对由服务器500a进行的多个固件的验证的工作进行说明。
[0223] 首先,FW工作验证部530a在进行了图22所示的步骤S2100的处理之后,生成表示将多个更新用固件按哪个次序进行验证的验证次序的模式(步骤S2200)。FW工作验证部530a按所生成的验证次序的各模式,反复执行从步骤S2201到步骤S2204的处理。将在反复执行的各次由步骤S2201~S2204使用的验证次序的模式称为“对象验证次序模式”。
[0224] 首先,FW工作验证部530a从全部FW保持部532中读出用于在已设定到模拟器800的各个ECU上工作的固件,并向模拟器800上的ECU进行设定(步骤S2202)。步骤S2202是与步骤S2101相同的处理。然后,按多个更新用固件的每个,反复进行步骤S2204的处理(步骤S2203)。此时,FW工作验证部530a针对多个更新用固件,按照由对象验证次序模式表示的次序,对各个更新用固件进行步骤S2204的工作验证。在步骤S2204中,FW工作验证部530a将更新用固件向更新对象的ECU设定来执行模拟器800,验证是否正常地工作。FW工作验证部530a每当在模拟器800中向一个ECU设定一个更新用固件时,验证是否正常地工作。仅在针对全部更新用固件结束了向ECU的设定和工作验证、且全部的工作验证成功的情况下,判断为对象验证次序模式下的工作验证成功。
[0225] 如果在全部的验证次序模式下工作验证结束,则FW工作验证部530a判断在进行了验证的验证次序的模式中是否存在判断为工作验证成功的验证次序的模式(步骤S2205)。在通过步骤S2205判断为存在工作验证成功的模式的情况下,FW工作验证部530a将工作验证成功的验证次序的模式作为更新顺序信息进行记录(步骤S2206)。然后,将包含更新顺序信息等、包含关于已在工作验证中使用的全部ECU的信息(ECU-ID、FW版本等)、进一步表示工作验证成功这一情况的工作验证结果通知给FW更新控制部520a(步骤S2207)。另一方面,在通过步骤S2205判断为不存在工作验证成功的模式的情况下,FW工作验证部530a将验证失败通知给FW更新控制部520a(步骤S2208)。
[0226] [2.9由网关300a等进行的固件的更新所涉及的工作例]
[0227] 以下,对车载网络系统11中的ECU的固件的更新所涉及的工作进行说明。
[0228] 图24以及图25是表示服务器500a、网关300a、ECU100a、100b等装置合作进行的ECU的固件的更新所涉及的工作例的时序图。在此的各时序意味着各装置中的各处理步骤(step)。在此,为了便于说明,对一部分ECU的工作进行了图示。该工作例所示出的步骤S2301~S2304的步骤,例如设想以每一定天数等这样的周期反复执行,但也可以在检测到向车载网络追加了新的ECU时执行,还可以对应于驾驶员等对车辆内的某个ECU的操作来执行。另外,对于步骤S2306以后的步骤,例如在服务器500a接受了固件的登记请求等情况下开始。
[0229] 步骤S2301~S2305的步骤与上述的步骤S1001~S1005(参照图11)相同,因此在此省略说明。通过步骤S2301~S2305的处理,网关300a能够在ECU信息保持部372中保持与车载网络连接的各ECU的最新的ECU信息的集合即系统构成信息(参照图6)。此外,也可以省略步骤S2301中的网关300a发送ECU信息取得用的帧并发出ECU信息的请求的处理,各ECU在启动时或者本ECU的ECU信息(ECU-ID、FW版本等)发生了变更时等,向网关300a发送包含ECU信息的帧。
[0230] 在从服务器500a外部的终端装置(例如ECU的制造公司等的终端装置)向服务器500a上传ECU用的最新(即更新用)固件并发出了固件的登记请求的情况下,服务器500a进行用于该固件的登记的FW登记处理(参照图21)(步骤S2306)。由此,在更新用固件在使用了对应的车辆模型中的ECU群的环境下被完成了工作验证(没有问题地适当工作的验证)之后,被保存于服务器500a的FW保持部571来进行管理(即登记于服务器500a)。
[0231] 服务器500a生成包含已登记的更新用固件、表示已在固件的工作验证中使用的各ECU的已验证ECU构成信息等的FW更新信息,向网关300a发布(步骤S2307)。由此,网关300a接收FW更新信息。此外,步骤S2307的发布既可以是向一辆车辆的网关300a的发送,也可以是向需要更新固件的多辆车辆各自的网关300a的发送。步骤S2307是在网关300a中从服务器500a接收包含设至少一个ECU为更新对象的更新用固件的FW更新信息的接收步骤。
[0232] 网关300a在接收到FW更新信息时,通过签名验证部373验证FW更新信息的签名(FW更新信息签名)(步骤S2308)。然后,网关300a的FW更新处理部370a判定签名的验证是否成功(步骤S2309),在签名的验证未成功的情况下丢弃FW更新信息,在该情况下不进行基于FW更新信息的固件更新。
[0233] 在签名的验证成功的情况下,FW更新处理部370a对FW更新信息所包含的已验证ECU构成信息和ECU信息保持部372所保持的系统构成信息进行比较(步骤S2310)。
[0234] 网关300a的FW更新处理部370a通过系统构成信息所表示的搭载于车辆的多个ECU各自的种类与已验证ECU构成信息所表示的已在工作验证中使用的多个ECU各自的种类的比较结果是否满足一定条件(例如是否完全一致),判定是否完成了适当的工作验证(步骤S2311)。FW更新处理部370a例如在比较结果完全一致的情况下,判定为完成了适当的工作验证。在服务器500a中在固件登记时进行了使用由车辆模型使用的各ECU的固件的工作验证,但例如在搭载有网关300a的车辆从该车辆模型的ECU更换了ECU或追加了ECU的情况下,步骤S2310中的比较结果会不一致。
[0235] 网关300a在判定为未作出适当的工作验证的情况下,将ECU信息保持部372所保持的、由ECU信息的集合表示与车载网络连接的全部ECU的编组的系统构成信息作为工作验证请求发送给服务器500a(步骤S2312)。在工作验证请求中,例如附加有与发布为更新用的固件有关的信息。对应于此,服务器500a接收作为工作验证请求的系统构成信息等。步骤S2312是网关300a向作为外部装置的服务器500a发送系统构成信息的工作验证请求发送步骤。
[0236] 服务器500a在接收到工作验证请求时,通过FW工作验证部530a,在与系统构成信息相应的环境下进行所发布的固件的工作验证所涉及的FW工作验证处理(步骤S2313)。步骤S2312以及步骤S2313是在服务器500a中接收系统构成信息,并使用与该系统构成信息所表示的全部种类相同种类的多个ECU进行更新用固件的工作验证的工作验证步骤。并且,在固件的工作验证后(确认到适当地进行工作之后),服务器500a生成包含与已在步骤S2313的工作验证中使用的各ECU有关的信息即已验证ECU构成信息的FW更新信息,向作为工作验证请求的发送源的一辆车辆的网关300a进行发送(步骤S2314)。步骤S2314是在进行了工作验证之后发送FW更新信息的固件更新信息发送步骤。在固件更新信息发送步骤中,可以使表示已在工作验证中使用的多个ECU各自的种类等的已验证ECU构成信息包含于FW更新信息来进行发送。由此,网关300a再次接收FW更新信息。
[0237] 网关300a在接收到服务器500a通过步骤S2314发送的FW更新信息时,通过签名验证部373来验证FW更新信息的签名(FW更新信息签名)(步骤S2315)。步骤S2315~S2318的处理与步骤S2308~S2311的处理是同样的。
[0238] 网关300a通过系统构成信息所表示的ECU各自的种类与已验证ECU构成信息所表示的ECU各自的种类的比较结果是否满足一定条件(例如是否完全一致),判定是否进行了适当的工作验证(步骤S2318),在判定为未进行适当的工作验证的情况下,进行预定的异常处理而不进行固件的更新。
[0239] 网关300a在通过步骤S2318或者步骤S2311判定为进行了适当的工作验证的情况下,主要通过FW更新处理部370a,与符合更新对象的ECU合作来进行FW更新控制处理(参照图13、图14)(步骤S2319)。步骤S2317~S2319等是如下的更新处理步骤:网关300a在使用系统构成信息所表示的各种类的ECU完成了更新用固件的工作验证之后,进行用于基于该更新用固件更新相应ECU的固件的控制。
[0240] 网关300a在结束了步骤S2319的FW更新控制处理之后,将固件的更新结果发送给服务器500a(步骤S2320)。由此,服务器500a接收更新结果。固件的更新结果例如是表示更新是否成功的信息,该信息例如也可以包含更新后的固件所涉及的FW版本,例如也可以包含系统构成信息。此外,网关300a在步骤S2309、S2316中签名的验证失败的情况下、或者通过步骤S2318判定为未进行适当的工作验证的情况下,也可以将表示固件的更新失败的更新结果发送给服务器500a。
[0241] 服务器500a在接收到固件的更新结果的情况下,更新ECU管理信息保持部572所保持的车辆ECU管理信息,使得表现该固件更新后的状态(步骤S2321)。
[0242] [2.10固件的工作验证的环境]
[0243] 以下,对在由服务器500a的FW工作验证部530a进行的FW工作验证处理中使用的模拟器800所进行的固件的工作验证用的模拟进行说明。
[0244] 图26表示在FW工作验证处理中由模拟器800在固件的工作验证中使用的虚拟环境的软件结构的一例。
[0245] 如该图所示,在计算机800中工作的软件包括:虚拟机监视器801;虚拟机802、803、804、805;虚拟硬件810、820、830、840;通用OS(操作系统)811、821;RTOS(实时操作系统)
831;固件841;应用(应用程序)A812;应用B813;应用C814;应用D822以及应用E832。
[0246] 计算机800是计算机,在处理器上执行软件(虚拟机监视器801等)。
[0247] 虚拟机监视器801具有下述功能:在该虚拟机监视器上控制虚拟机802~805以使其彼此独立工作的虚拟机控制功能;对该虚拟机分配存储器和/或CPU等硬件资源并进行管理的资源管理功能;按照来自虚拟机的请求对器件进行访问的器件访问功能;对虚拟机进行调度的调度功能等。
[0248] 虚拟机802~805分别构成为包括虚拟硬件、OS、应用或者固件,分别由虚拟机监视器801独立地执行。
[0249] 虚拟硬件810、820、830、840对各个虚拟机以虚拟的方式提供硬件的功能,另外,可以包括IPL(Initial Program Loader,初始程序加载器)、BIOS(Basic Input/Output System,基本输入/输入系统)。
[0250] 通用OS811具有将应用(应用A812、应用B813、应用C814)加载到存储器上并执行,或者将该各应用从存储器上删除(卸载)的功能,对各应用提供基于CAN协议的网络通信功能。通用OS821也是同样的。
[0251] RTOS831是用于使重视实时性的应用进行工作的OS。
[0252] 应用A812、应用B813、应用C814、应用D822、应用E832具有如汽车导航功能、驾驶辅助功能、转向控制功能、发动机控制功能、制动器控制功能、传感器信息(转矩、度、速度、转速等)的取得功能等汽车用的各种功能。这些汽车用的功能群分别可以通过一个应用来执行,也可以通过多个应用来执行。
[0253] 固件841是使不需要OS的功能发挥作用的软件等。此外,固件841既可以包括OS,也可以成为其他应用的工作环境而具有控制其他应用的执行的功能。
[0254] 此外,在图26中示出的在通用OS811、821或者RTOS831上进行工作的应用的数量仅为一例,也可以是更多的应用进行工作。另外,图示出了通用OS工作的虚拟机为两个、RTOS工作的虚拟机为一个、固件工作的虚拟机为一个的情况,但这仅为一例。例如,既可以仅通过固件工作的虚拟机构成虚拟环境,也可以仅通过固件工作的虚拟机和RTOS工作的虚拟机来构成虚拟环境。
[0255] 并且,在模拟器800中,由上述的虚拟机802~805等的一个虚拟机来模拟一个ECU。例如,在虚拟机监视器801上生成多个(与构成工作环境的ECU的数量相当的个数)虚拟机
805并使其工作,通过各个虚拟机805的虚拟硬件840模拟一个ECU的硬件的工作,例如,固件
841的内容与该ECU所安装的固件的内容相同。例如,虚拟机监视器801构成为使得在工作在其上的多个虚拟硬件之间模拟经由ECU间的总线的通信。
[0256] FW工作验证部530a在对模拟器800设定构成用于固件的工作验证的工作环境的各ECU的情况下,设定虚拟机以使得进行与各个ECU相同的工作。此时,也可以通过将已设定为模拟ECU的工作的虚拟机(换言之是虚拟ECU)装载到虚拟机监视器801上,由此设定构成工作环境的ECU。
[0257] [2.11实施方式2的效果]
[0258] 在实施方式2涉及的车载网络系统11中,在向服务器500a登记固件的情况下,在与车辆模型的ECU构成对应的环境下,事先进行工作验证。并且,服务器500a向各车辆的网关300a发布将包含与针对经过工作验证而登记的固件已在工作验证中使用的ECU有关的信息的已验证ECU构成信息和该固件包含在内的FW更新信息。由此,可发布已实施了工作验证的固件,因此能够在各车辆的ECU中进行适当的固件的更新。另外,因为不向服务器500a登记工作验证失败的固件,所以能够降低发布不会正常工作的固件的可能性。另外,由于按每个车辆模型的ECU的结构来进行工作验证,因此能够事先验证仅在特定的车辆模型会产生的不良情况等。
[0259] 另外,在某车辆的网关300a中,通过所接收到的FW更新信息中的已验证ECU构成信息与车辆内的全部ECU的信息即系统构成信息的比较,确认在适合于该车辆的工作环境下是否适当地完成了固件的更新所涉及的工作验证,如果未完成适当的工作验证则对服务器500a进行工作验证请求。由此,能够在实际更新车辆的ECU之前验证是否会因固件的更新而引起不良影响。并且,网关300a能够从服务器500a接收在适合于该车辆的工作环境下完成了工作验证的更新用固件。因此,即使在搭载于车辆的ECU发生故障而被更换为其他ECU、新追加了ECU等情况下,网关300a也能够取得工作已验证的固件,能够适当地进行ECU的固件更新。即,可降低在该车辆中进行了固件更新后车辆不再正常地发挥作用的可能性。
[0260] (其他实施方式)
[0261] 如上所述,作为本公开涉及的技术的例示,对实施方式1、2进行了说明。然而,本公开涉及的技术并不限定于此,也能够适用于进行了适当的变更、替换、附加、省略等的实施方式。例如,如下的变形例也包含在本公开的一个实施方式中。
[0262] (1)在上述实施方式中,具有外部通信部375(外部通信功能)的网关300、300a,经由车辆外的网络400与服务器500进行通信,但这仅为一例。例如,网关300、300a也可以经由具有与外部通信的功能的另一ECU(例如主机(head unit)等),与服务器500、500a进行通信。主机是具备较高性能的处理器的ECU的一种,是包含设置于汽车的仪表盘(instrument panel)等的液晶显示器等显示装置的、可以进行向车辆的驾驶员的报告等的装置。此外,车载网络中存在被称为OBD2(On-Board Diagnostics2,在线诊断器)等的、作为与诊断工具等外部装置进行通信的接口的诊断端口,用于ECU的诊断。于是,网关300、300a例如也可以通过与如下外部装置进行通信而间接地与服务器500、500a通信,所述外部装置能够与服务器500进行通信并且与诊断端口连接。在这些情况下,网关300、300a也可以不必具有用于与车辆外部进行通信的外部通信功能,而经由其他ECU或者外部装置,就能够在网关300、300a与服务器500、500a之间,进行伴有系统构成信息等的工作验证请求或FW更新请求、以及FW更新信息等的授受。
[0263] (2)示出了上述实施方式中示出的表示各ECU的固件的版本编号等的FW版本由服务器500、500a、网关300、300a管理的例子,但也可以在其他的ECU、诊断工具等其他的设备中进行管理。
[0264] (3)在上述实施方式中,示出了车载网络作为遵循CAN协议进行通信的网络通信系统的例子。本公开涉及的技术并非限定于车载网络,除了机器人、工业设备等的网络,也能够应用于车载网络以外的遵循CAN协议进行通信的网络通信系统。另外,CAN协议应该被看作也包括在自动化系统内的嵌入式系统等中使用的CANOpen、或者TTCAN(Time-Triggered CAN:时间触发CAN)、CANFD(CAN with Flexible Data Rate:具有灵活数据传输率的CAN)等派生协议在内的广义含义的协议。另外,在上述实施方式中,示出了基于CAN协议在总线上收发与固件有关的数据(帧)的例子,但也可以适用另外的协议,可以利用任意的通信路径以及通信方式来作为用于对固件涉及的数据进行通信的通信路径以及通信方式。
[0265] (4)在上述实施方式中,为了确保数据(FW数据、FW更新信息等)的安全性,使用了对数据赋予签名的结构,但也可以进一步为了确保保密性而进行对数据的加密。也可以将签名用的密钥和加密用的密钥设为不同的密钥。
[0266] (5)在上述实施方式中,在生成针对FW更新信息的签名和生成针对FW数据的签名时,使用了相同的密钥,但也可以使用各不相同的密钥。例如,针对作为发布数据的FW更新信息的整体的签名(FW更新信息签名),可以使用汽车制造商所持有的密钥来生成,针对单个的FW数据的签名(FW数据签名),可以使用对该FW数据涉及的固件进行安装的ECU的制造公司(或者该固件的制造公司)所持有的密钥来生成。此外,在上述实施方式中,示出了各ECU进行FW数据签名的验证的例子,但也可以是,ECU不进行FW数据签名的验证,网关300、300a预先保持验证用的密钥来进行FW数据签名的验证。
[0267] (6)上述实施方式2中的网关300a在需要更新多个固件的情况下,接收服务器500a使FW更新信息包含的与固件的更新顺序有关的信息(更新顺序信息),以按照更新顺序信息的顺序进行更新,但也可以不一定按照更新顺序来更新。另外,也可以是,实施方式1中的服务器500使更新顺序信息包含于FW更新信息来发送,网关300以按照该更新顺序信息的顺序,进行步骤S1204中的FW数据的发送,由此按顺序更新固件。
[0268] (7)上述实施方式中的服务器500、500a的处理的一部分,也可以通过能够与服务器500、500a通信并与服务器500、500a分离的其他装置(计算机等)来执行。
[0269] (8)在上述实施方式中的服务器500、500a中固件的工作验证失败的情况下,也可以管理与构成工作环境的ECU的编组(ECU的组合)有关的信息(不良情况信息)。该情况下,当服务器500、500a将不良情况信息通知给网关300、300a时,网关300、300a在车辆内的ECU的结构与由该不良情况信息表示的结构一致的情况下,能够判断为不应更新固件。
[0270] (9)上述实施方式中的FW工作验证部530在更新多个固件的情况下,生成验证次序的模式,并记录工作验证成功的验证次序,但并不限定于此,也可以同时更新多个固件并进行工作验证,也可以在全部的验证次序的模式下工作验证失败的情况下生成同时进行验证的模式,并进行工作验证。
[0271] (10)作为由上述实施方式2中的网关300a判定是否进行了固件的适当的工作验证的例子,示出了判定是否满足一定条件,该一定条件是系统构成信息所表示的搭载于车辆的多个ECU各自的种类与已验证ECU构成信息所表示的已在工作验证中使用的多个ECU各自的种类的比较结果例如是否完全一致。但是,这只不过是一例,例如,也可以使用如下方式等:在已验证ECU构成信息所表示的已在工作验证中使用的多个ECU的种类包含系统构成信息所表示的ECU全部的种类的情况下,认为进行了适当的工作验证。与这些方式相结合,也可以使用如下方式等:在已验证ECU构成信息示出了与系统构成信息所表示的ECU全部的种类的ECU相同种类的情况下,认为进行了适当的工作验证。并且,例如,在网关300a的FW更新处理部370a确认到已验证构成信息未示出与系统构成信息所表示的全部种类相同的种类的情况下,也可以制止基于FW更新信息所包含的更新用固件的更新,进行使得向作为外部装置的服务器500a发送系统构成信息来作为工作验证请求的控制。
[0272] (11)在上述实施方式中,示出了ECU的种类能够由ECU-ID(ECU的识别信息)和FW版本(固件版本的识别信息)确定的例子,但也可以将仅由ECU-ID确定的种类规定为ECU的种类。此外,示出了ECU-ID是能够识别各个ECU、并且能区分ECU的种类的信息的例子,但也可以设为ECU-ID是虽然无法识别ECU的各个个体但能够识别ECU的种类的信息。
[0273] (12)在上述实施方式1中示出的服务器500的FW工作验证部530中,也可以进行由上述实施方式2中示出的模拟器800进行的固件的工作验证。另外,除了服务器500、500a使用与连接于某车辆中的车载网络的各ECU相同种类的ECU(即系统构成信息所表示的各种类的ECU)进行更新用固件的工作验证之外,也可以使用该车辆的网关300、300a进行工作验证的方式。即,也可以是,网关300、300a具备包含与实施方式2中示出的模拟器800同样的模拟器的模拟部,亲自在模拟系统构成信息所表示的各种类的ECU的工作环境下进行从服务器500、500a接收到的固件的工作验证。该情况下,网关300、300a在验证到没有问题地工作之后,使属于更新对象的ECU进行固件的更新。例如,网关300a的FW更新处理部370a在确认到已验证构成信息中未示出与系统构成信息所表示的全部种类相同的种类的情况下,也可以使网关300a中的模拟部使用与系统构成信息所表示的全部种类相同种类的各ECU进行更新用固件的工作的模拟,在完成了基于该模拟的工作验证之后进行控制以使得进行基于更新用固件的更新。此外,在网关300、300a进行固件的工作验证的情况下,也可以设为如下结构:将实际上网关300、300a从车载网络接收到的消息(帧)向由模拟器构成的工作环境(虚拟环境)内的车载网络进行发送。在该情况下,也可以在虚拟环境下从未执行更新用固件的虚拟机(虚拟ECU)发送网关300、300a所接收到的消息。另外,作为固件的更新对象的一个以上的ECU,分别也可以作为在模拟器这样结构的计算机中工作的虚拟机来实现。
[0274] (13)上述实施方式中示出的更新用固件(二进制数据),既可以是安装于ECU的固件的整体,也可以是其一部分。在更新用固件是安装于ECU的固件的一部分的情况下,对ECU内的已有固件的一部分进行覆写。在该情况下,更新用固件可以构成为包括差量数据(二进制数据)以及表示可适用于哪一部分的信息(例如地址信息等)。在该情况下,也可以在网关300、300a或属于更新对象的ECU中,将差量数据与已有固件进行整合(merge)后,再进行ECU的启动ROM中的固件的替换。
[0275] (14)上述实施方式中示出的各种处理的步骤(例如图11~图14、图21~图25示出的预定步骤等)的执行顺序不必限制于如上所述的顺序,在不偏离公开的宗旨的范围内,可以更换执行顺序,或并行进行多个步骤,或省略该步骤的一部分。
[0276] (15)上述实施方式中的网关300、300a等ECU,例如设为了包括处理器、存储器等数字电路、模拟电路、通信电路等的装置,但也可以包括硬盘装置、显示器、键盘、鼠标等其他的硬件构成要素。另外,也可以取代由处理器执行存储器所存储的控制程序来以软件方式实现功能,而通过专用的硬件(数字电路等)来实现其功能。
[0277] (16)上述实施方式中的构成各装置的构成要素的一部分或全部也可以由1个系统LSI(Large Scale Integration:大规模集成电路)构成。系统LSI是在一个芯片上集成多个构成部而制造出的超多功能LSI,具体而言,是构成为包括微处理器、ROM、RAM等的计算机系统。在所述RAM中记录有计算机程序。所述微处理器按照所述计算机程序进行工作,由此系统LSI实现其功能。另外,构成上述各装置的构成要素的各部分既可以单独地单芯片化,也可以以包括一部分或全部的方式单芯片化。另外,虽然此处设为系统LSI,但根据集成度不同,也可以称为IC、LSI、超大LSI(super LSI),特大LSI(ultra LSI)。另外,集成电路化的方法不限于LSI,也可以通过专用电路或通用处理器实现。也可以在LSI制造后利用可编程的FPGA(Field Programmable Gate Array:现场可编程门阵列)和/或可以对LSI内部的电路单元的连接和/或设定进行重构的可重构处理器(reconfigurable processor)。再者,随着半导体技术的发展或派生的其他技术的出现,如果出现能够代替LSI的集成电路化的技术,当然也可以使用该技术进行功能模的集成化。也存在应用生物技术等的可能性。
[0278] (17)构成上述各装置的构成要素的一部分或全部也可以由能够装卸于各装置的IC卡或单体模块构成。所述IC卡或所述模块是由微处理器、ROM、RAM等构成的计算机系统。所述IC卡或所述模块也可以包括上述的超多功能LSI。微处理器按照计算机程序进行工作,由此所述IC卡或所述模块实现其功能。该IC卡或该模块可以具有防篡改性能。
[0279] (18)作为本公开的一个技术方案,例如也可以是包括图11、图12、图24、图25等所示的处理步骤的全部或者一部分的固件更新方法。另外,也可以是通过计算机实现该方法的计算机程序(控制程序),还可以是通过所述计算机程序形成的数字信号。例如,也可以是用于执行包括固件更新方法中的接收步骤、取得步骤、更新处理步骤的固件更新处理的控制程序。另外,作为本公开的一个技术方案,也可以将所述计算机程序或所述数字信号记录于计算机可读取的记录介质,例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(注册商标)Disc)、半导体存储器等。另外,也可以是记录在这些记录介质中的所述数字信号。另外,作为本公开的一个技术方案,也可以将所述计算机程序或所述数字信号经由电通信线路、无线或有线通信线路、以互联网为代表的网络、数据广播等进行传输。另外,作为本公开的一个技术方案,也可以是具备微处理器和存储器的计算机系统,所述存储器记录有上述计算机程序,所述微处理器按照所述计算机程序进行工作。另外,通过将所述程序或所述数字信号记录在所述记录介质中移送,或者经由所述网络等将所述程序或所述数字信号进行移送,可以通过独立的其他的计算机系统来实施。
[0280] (19)通过将上述实施方式及上述变形例中示出的各构成要素以及功能任意地进行组合而实现的方式也包含在本公开的范围内。产业上的可利用性
[0281] 本公开能够用于适当地进行与遵循CAN的车载网络连接的ECU的固件的更新。
[0282] 标号的说明
[0283] 10车载网络系统;100a~100d电子控制单元(ECU);101发动机;102制动器;103车门开闭传感器;104车窗开闭传感器;110、310帧收发部;120、320帧解释部;130、330接收ID判断部;140、340接收ID列表保持部;150、350帧处理部;160、370、370aFW更新处理部;161FW缓存保持部;163、373签名验证部;164、374、591密钥保持部;170数据取得部;180帧生成部;200a、200b总线;300、300a网关(网关装置);360转送规则保持部;372、531ECU信息保持部;
375外部通信部;380帧生成部;390ECU信息取得部;400网络;500、500a服务器;510、510a数据收发部;520、520aFW更新控制部;530、530aFW工作验证部;532全部FW保持部;570、570a发布数据生成部;571FW保持部;572ECU管理信息保持部;590签名生成部;800模拟器;801虚拟机监视器;802~805虚拟机;810、820、830、840虚拟硬件;841固件。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈