(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022144814
(43)【公開日】2022-10-03
(54)【発明の名称】ソフトウェア更新装置、ソフトウェア更新システム及びソフトウェア更新方法
(51)【国際特許分類】
G06F 13/00 20060101AFI20220926BHJP
G06F 8/65 20180101ALI20220926BHJP
B60R 16/02 20060101ALI20220926BHJP
【FI】
G06F13/00 530B
G06F8/65
B60R16/02 660U
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021045987
(22)【出願日】2021-03-19
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
2.UNIX
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】特許業務法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】寺岡 秀敏
(72)【発明者】
【氏名】矢野 正
【テーマコード(参考)】
5B084
5B376
【Fターム(参考)】
5B084AA03
5B084AA12
5B084AB16
5B084AB31
5B084BA09
5B084BB17
5B084DB02
5B084DB08
5B084DC02
5B376CA04
5B376CA05
5B376CA43
5B376CA45
5B376CA46
(57)【要約】 (修正有)
【課題】複数のプラットフォームで構成される車両システムのソフトウェアを柔軟に更新するソフトウェア更新システム、更新装置及び更新方法を提供する。
【解決手段】ソフトウェア更新システムにおいて、ソフトウェア更新装置10は、車両の第1のソフトウェアユニットのソフトウェア更新を行う第1更新制御部140と第2のソフトウェアユニットのソフトウェア更新を行う第2更新制御部150と、を備える。第1更新制御部は、第1プラットフォーム向けの制御命令を送信する第1シーケンス制御部141を有する。第2更新制御部は、第2のソフトウェアユニットを第1プラットフォーム上のソフトウェアユニットとして模擬し、第1プラットフォーム上に模擬された第2のソフトウェアユニットに対する制御命令の受信に基づいて、第2のソフトウェアユニットのソフトウェア更新を制御する疑似更新実行部151を有する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
第1プラットフォームで構成される第1のソフトウェアユニットと、前記第1プラットフォームとは異なる第2プラットフォームで構成される第2のソフトウェアユニットと、を含む複数のソフトウェアユニットに接続されるソフトウェア更新装置であって、
前記第1のソフトウェアユニットのソフトウェア更新を行う第1更新制御部と、
前記第2のソフトウェアユニットのソフトウェア更新を行う第2更新制御部と、
を備え、
前記第1更新制御部は、前記第1プラットフォーム向けの制御命令を送信する第1シーケンス制御部を有し、
前記第2更新制御部は、前記第2のソフトウェアユニットを前記第1プラットフォーム上のソフトウェアユニットとして模擬し、前記第1プラットフォーム上に模擬された前記第2のソフトウェアユニットに対する前記制御命令の受信に基づいて、前記第2のソフトウェアユニットのソフトウェア更新を制御する疑似更新実行部を有する
ことを特徴とするソフトウェア更新装置。
【請求項2】
前記第2更新制御部は、
前記制御命令の変換時に参照される変換情報を管理する変換情報管理部をさらに有し、
前記疑似更新実行部は、前記第1プラットフォーム上に模擬された前記第2のソフトウェアユニットに対する前記第1プラットフォーム向けの制御命令を前記第1シーケンス制御部から受信すると、前記変換情報に基づいて、当該制御命令を前記第2プラットフォーム向けの制御命令に変換し、変換後の制御命令を前記第2のソフトウェアユニットに送信する
ことを特徴とする請求項1に記載のソフトウェア更新装置。
【請求項3】
前記変換情報管理部は、前記変換情報の1つとして、
前記第2プラットフォームで構成される前記第2のソフトウェアユニットのそれぞれについて、前記第1プラットフォーム上に模擬したときの識別情報と前記第2プラットフォーム上における識別情報との対応関係を示す第1の変換情報を保持する
ことを特徴とする請求項2に記載のソフトウェア更新装置。
【請求項4】
前記変換情報管理部は、前記変換情報の1つとして、
前記第1プラットフォーム向けの制御命令と、前記第2プラットフォーム向けの制御命令との対応関係を示す第2の変換情報を保持する
ことを特徴とする請求項2に記載のソフトウェア更新装置。
【請求項5】
前記第2の変換情報には、ソフトウェアの書き換えの可否に関して前記第2プラットフォームにおいて前記第2のソフトウェアユニットが依存する依存条件が設定され、
前記疑似更新実行部は、前記第1シーケンス制御部からの前記第1プラットフォーム向けの制御命令によって前記第2のソフトウェアユニットのソフトウェア更新が要求されたとき、前記第2の変換情報を参照し、前記依存条件を満たす場合にはソフトウェアを更新し、前記依存条件を満たさない場合にはソフトウェアを更新しない
ことを特徴とする請求項4に記載のソフトウェア更新装置。
【請求項6】
ネットワークを介して接続された配信サーバから前記第2のソフトウェアユニットの更新プログラムが配信された場合、
前記第1シーケンス制御部は、前記第1プラットフォーム上に模擬された前記第2のソフトウェアユニットに対して前記更新プログラムのデータ転送を要求する制御命令を送信し、
当該制御命令を受信した前記疑似更新実行部は、前記変換情報に基づいて、所定条件が成立するまでの間、前記更新プログラムを前記第2のソフトウェアユニットに転送することなく一時的に蓄積する
ことを特徴とする請求項2に記載のソフトウェア更新装置。
【請求項7】
前記配信サーバから配信された前記第2のソフトウェアユニットの前記更新プログラムについてアクティベートの許可が得られた場合、
前記第1シーケンス制御部は、前記第1プラットフォーム上に模擬された前記第2のソフトウェアユニットに対して前記更新プログラムの有効化を要求する制御命令を送信し、
当該制御命令を受信した前記疑似更新実行部は、前記第2のソフトウェアユニットへの前記更新プログラムの転送が終了した後に、前記第2のソフトウェアユニットに対して前記更新プログラムの有効化を指示する制御命令を送信する
ことを特徴とする請求項6に記載のソフトウェア更新装置。
【請求項8】
更新プログラムを配信する配信サーバと車両システムとがネットワークで接続されたソフトウェア更新システムであって、
前記車両システムは、
第1プラットフォームで構成される第1のソフトウェアユニット、及び前記第1プラットフォームとは異なる第2プラットフォームで構成される第2のソフトウェアユニットを含む複数のソフトウェアユニットと、
前記第1のソフトウェアユニット及び前記第2のソフトウェアユニットに接続されるソフトウェア更新装置と、
を備え、
前記ソフトウェア更新装置は、
前記第1のソフトウェアユニットのソフトウェア更新を行う第1更新制御部と、
前記第2のソフトウェアユニットのソフトウェア更新を行う第2更新制御部と、
を有し、
前記第1更新制御部は、前記第1プラットフォーム向けの制御命令を送信する第1シーケンス制御部を有し、
前記第2更新制御部は、前記第2のソフトウェアユニットを前記第1プラットフォーム上のソフトウェアユニットとして模擬し、前記第1プラットフォーム上に模擬された前記第2のソフトウェアユニットに対する前記制御命令の受信に基づいて、前記第2のソフトウェアユニットのソフトウェア更新を制御する疑似更新実行部を有する
ことを特徴とするソフトウェア更新システム。
【請求項9】
第1プラットフォームで構成される第1のソフトウェアユニットと、前記第1プラットフォームとは異なる第2プラットフォームで構成される第2のソフトウェアユニットと、を含む複数のソフトウェアユニットに接続されるソフトウェア更新装置によるソフトウェア更新方法であって、
前記ソフトウェア更新装置は、
前記第1プラットフォーム向けの制御命令を送信し、前記第1のソフトウェアユニットのソフトウェア更新を行う第1更新制御部と、
前記第2のソフトウェアユニットを前記第1プラットフォーム上のソフトウェアユニットとして模擬し、前記第2のソフトウェアユニットのソフトウェア更新を行う第2更新制御部と、
を有し、
前記第1更新制御部が、前記第1プラットフォーム上に模擬された前記第2のソフトウェアユニットに対する前記制御命令を送信する第1ステップと、
前記制御命令を受信した前記第2更新制御部が、当該制御命令を前記第2プラットフォーム向けの制御命令に変換し、変換後の制御命令によって前記第2のソフトウェアユニットのソフトウェア更新を制御する第2ステップと、
を備えることを特徴とするソフトウェア更新方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア更新装置、ソフトウェア更新システム及びソフトウェア更新方法に関し、配信サーバから配信される更新プログラムによってソフトウェアユニット(ECU)のソフトウェア更新を行うソフトウェア更新装置、ソフトウェア更新システム及びソフトウェア更新方法に適用して好適なものである。
【背景技術】
【0002】
近年、自動車のE(Electric)/E(Electronic)アーキテクチャが分散型から集中型に変化しており、ハードウェアとソフトウェアとが独立して開発される方向に進んでいる。例えばソフトウェアの開発では、AUTOSAR(AUTomotive Open System Architecture) Adaptive Platformによる、自動車のソフトウェア更新技術の標準化(具体的には例えば、ソフトウェア更新を制御するマスタ機能の定義等)が推進されている。また、自動車のソフトウェアユニット(ECU:Electronic Control Unit)を構成するアーキテクチャはAUTOSARだけではないため、様々なプラットフォーム(PF)が混在する車両システムへの移行が想定されている。
【0003】
例えば特許文献1には、複数のプラットフォームで構成された車両システムにおいて、1以上の他のソフトウェア更新装置及びサーバとネットワークを介して接続されるソフトウェア更新装置が、更新契機に記述されているすべての条件が満たされたと判断するとソフトウェアの更新を実行するソフトウェア更新システムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1に開示されたソフトウェア更新システムは、各プラットフォームで各ソフトウェア更新装置が独立してソフトウェアを更新し、最後に更新トリガによってソフトウェア更新装置間の調停を行うものであるため、1つのソフトウェアユニットで複数プラットフォームに対応することが困難であるという課題があった。また、プラットフォームや更新方法が増えるたびに、ソフトウェア更新を制御する制御部を追加する必要があり、調停が複雑化することが想定されるため、スケーラビリティの点で課題があった。
【0006】
本発明は以上の点を考慮してなされたもので、複数のプラットフォームで構成される車両システムのソフトウェアを柔軟に更新可能なソフトウェア更新装置、ソフトウェア更新システム及びソフトウェア更新方法を提案しようとするものである。
【課題を解決するための手段】
【0007】
かかる課題を解決するため本発明においては、第1プラットフォームで構成される第1のソフトウェアユニットと、前記第1プラットフォームとは異なる第2プラットフォームで構成される第2のソフトウェアユニットと、を含む複数のソフトウェアユニットに接続されるソフトウェア更新装置であって、前記第1のソフトウェアユニットのソフトウェア更新を行う第1更新制御部と、前記第2のソフトウェアユニットのソフトウェア更新を行う第2更新制御部と、を備え、前記第1更新制御部は、前記第1プラットフォーム向けの制御命令を送信する第1シーケンス制御部を有し、前記第2更新制御部は、前記第2のソフトウェアユニットを前記第1プラットフォーム上のソフトウェアユニットとして模擬し、前記第1プラットフォーム上に模擬された前記第2のソフトウェアユニットに対する前記制御命令の受信に基づいて、前記第2のソフトウェアユニットのソフトウェア更新を制御する疑似更新実行部を有する、ソフトウェア更新装置が提供される。
【0008】
また、かかる課題を解決するため本発明においては、更新プログラムを配信する配信サーバと車両システムとがネットワークで接続されたソフトウェア更新システムであって、前記車両システムは、第1プラットフォームで構成される第1のソフトウェアユニット、及び前記第1プラットフォームとは異なる第2プラットフォームで構成される第2のソフトウェアユニットと、を含む複数のソフトウェアユニットと、前記第1のソフトウェアユニット及び前記第2のソフトウェアユニットに接続されるソフトウェア更新装置と、を備え、前記ソフトウェア更新装置は、前記第1のソフトウェアユニットのソフトウェア更新を行う第1更新制御部と、前記第2のソフトウェアユニットのソフトウェア更新を行う第2更新制御部と、を有し、前記第1更新制御部は、前記第1プラットフォーム向けの制御命令を送信する第1シーケンス制御部を有し、前記第2更新制御部は、前記第2のソフトウェアユニットを前記第1プラットフォーム上のソフトウェアユニットとして模擬し、前記第1プラットフォーム上に模擬された前記第2のソフトウェアユニットに対する前記制御命令の受信に基づいて、前記第2のソフトウェアユニットのソフトウェア更新を制御する疑似更新実行部を有する、ソフトウェア更新システムが提供される。
【0009】
また、かかる課題を解決するため本発明においては、第1プラットフォームで構成される第1のソフトウェアユニットと、前記第1プラットフォームとは異なる第2プラットフォームで構成される第2のソフトウェアユニットと、を含む複数のソフトウェアユニットに接続されるソフトウェア更新装置によるソフトウェア更新方法であって、前記ソフトウェア更新装置は、前記第1プラットフォーム向けの制御命令を送信し、前記第1のソフトウェアユニットのソフトウェア更新を行う第1更新制御部と、前記第2のソフトウェアユニットを前記第1プラットフォーム上のソフトウェアユニットとして模擬し、前記第2のソフトウェアユニットのソフトウェア更新を行う第2更新制御部と、を有し、前記第1更新制御部が、前記第1プラットフォーム上に模擬された前記第2のソフトウェアユニットに対する前記制御命令を送信する第1ステップと、前記制御命令を受信した前記第2更新制御部が、当該制御命令を前記第2プラットフォーム向けの制御命令に変換し、変換後の制御命令によって前記第2のソフトウェアユニットのソフトウェア更新を制御する第2ステップと、を備えるソフトウェア更新方法が提供される。
【発明の効果】
【0010】
本発明によれば、複数のプラットフォームで構成される車両システムのソフトウェアを柔軟に更新することができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の第1の実施形態に係るソフトウェア更新装置(ゲートウェイ)10を利用したソフトウェア更新システム1の全体構成例を示すブロック図である。
【
図2】ゲートウェイ10のハードウェア構成例を示すブロック図である。
【
図3】ECU_A13及びECU_B16のハードウェア構成例を示すブロック図である。
【
図4】ECU_C17のハードウェア構成例を示すブロック図である。
【
図5】ECU_D18のハードウェア構成例を示すブロック図である。
【
図6】ゲートウェイ10の機能構成例を示すブロック図である。
【
図7】シャシー統合ECU16の内部構成例を示すブロック図である。
【
図10】ソフトウェアパッケージの構成例を示す図(その1)である。
【
図11】ソフトウェアパッケージの構成例を示す図(その2)である。
【
図13】車両2におけるシステム起動時動作の手順例を示すシーケンス図である。
【
図14】制御命令変換処理の手順例を示すフローチャートである。
【
図15】構成情報の収集から車両パッケージの受信に関する手順例を示すシーケンス図である。
【
図16】ECUを更新するソフトウェアパッケージのインストール及びアクティベートにおける手順例を示すシーケンス図(その1)である。
【
図17】ECUを更新するソフトウェアパッケージのインストール及びアクティベートにおける手順例を示すシーケンス図(その2)である。
【
図18】終了処理における手順例を示すシーケンス図である。
【
図19】車両状態管理部130による車両状態の判定処理の処理手順例を示すフローチャートである。
【
図20】配信パッケージ生成処理の処理手順例を示すフローチャートである。
【
図21】本発明の第2の実施形態に係るソフトウェア更新装置(ゲートウェイ)10Aの機能構成例を示すブロック図である。
【
図22】第2の実施形態における車両2におけるシステム起動時動作の手順例を示すシーケンス図である。
【
図23】第2の実施形態における構成情報の収集から車両パッケージの受信に関する手順例を示すシーケンス図である。
【
図24】第2の実施形態におけるECUを更新するソフトウェアパッケージのインストール手順例を示すシーケンス図である。
【
図25】第2の実施形態におけるECUを更新するソフトウェアパッケージのアクティベート手順例を示すシーケンス図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の実施形態を詳述する。
【0013】
(1)第1の実施形態
(1-1)構成
図1は、本発明の第1の実施形態に係るソフトウェア更新装置(ゲートウェイ)10を利用したソフトウェア更新システム1の全体構成例を示すブロック図である。
【0014】
図1に示すように、ソフトウェア更新システム1は、車両2と配信サーバ3とが、無線のネットワーク5を介して通信可能に接続されて構成される。また、ソフトウェア更新システム1は、車両2に対して故障診断やソフトウェア更新を行うツールの役割を有する診断装置6を備えてもよい。
【0015】
配信サーバ3は、OEMにおいて自社で開発した、またはサプライヤから収集したソフトウェアパッケージに基づいて、車両2に配信するパッケージ(配信パッケージ)を生成、管理、及び配信するシステムであり、例えばOTA(On The Air)サーバである。配信サーバ3は、上記収集したソフトウェアパッケージに基づいて配信パッケージを生成する配信パッケージ生成部31と、上記ソフトウェアパッケージ及び配信パッケージ生成部31で生成された配信パッケージを管理する配信パッケージ管理部32と、上記ソフトウェアパッケージ及び上記配信パッケージをネットワーク5を介して車両2に向けて配信する配信部33と、を備えて構成される。なお、配信サーバ3で生成、管理、及び配信される配信パッケージについて、後述する
図12ではそのデータ構成例が示される。
【0016】
なお、
図1では、配信サーバ3に対するソフトウェアパッケージの供給元の例として、サプライヤが保有するソフトウェア管理システム4(個別には4A,4B,4X)が示されている。例えばソフトウェア管理システム4Aは、サプライヤAが保有するシステムであって、ソフトウェアパッケージを生成するソフトウェアパッケージ生成部41と、ソフトウェアパッケージ生成部41で生成されたソフトウェアパッケージを管理するソフトウェアパッケージ管理部42と、を備えて構成される。なお、ソフトウェア管理システム4で生成及び管理されるソフトウェアパッケージについて、後述する
図10及び
図11ではその構成例が示される。また、以下の説明では、配信サーバ3から車両2に対して、ソフトウェアパッケージ及び配信パッケージが別々に配信される(ダウンロードされる)形態を例とするが、本実施形態はこれに限定されるものではなく、例えば、ソフトウェアパッケージ及び配信パッケージが1つのアーカイブにまとめられて配信される形態等であってもよい。
【0017】
次に、車両2の構成について説明する。
図1に示すソフトウェア更新システム1は、車両2内において、複数種類のプラットフォーム(PF)が1台の車両2に共存する構成となっており、本実施形態に係るソフトウェア更新装置10がゲートウェイとして、これら複数種類のプラットフォームによるECU同士の通信データの中継等を行う。
【0018】
本実施形態では、車両2に共存する複数種類のプラットフォームの一例として、AUTOSAR AP(AUTOSAR Adaptive Platform)を第1プラットフォーム(第1PF)と称し、AUTOSAR CP(AUTOSAR Classic Platform)を第2プラットフォーム(第2PF)と称し、その他のプラットフォーム(例えばAGL(AUTOMOTIVE Grade Linux)を第3プラットフォーム(第3PF)と称して説明を行う。
【0019】
図1に示すように、車両2は、ソフトウェア更新装置(ゲートウェイ)10、通信モジュール12、運転支援統合ECU13、カメラECU14、センサECU15、シャシー統合ECU16、エンジン制御ECU17、トランスミッション制御ECU18、エアバッグECU19、HVACECU20、車体管理ECU21、及びIVI22を備え、これらが車内ネットワーク11で接続されて構成される。上記の各ECUのうち、
図1においてゲートウェイ10の右側に示されている各ECUが、ゲートウェイ10の配下ECUに相当する。なお、統合ECUは、所定の複数の機能を統合して動作するECUである。
【0020】
車内ネットワーク11は、既知の通信規格、例えばCAN(Control Area Network(登録商標))、CAN-FD(CAN with Flexible Data rate)、LIN(Local Interconnect Network)、FlexRay、またはEthernet(登録商標)の何れかを採用する。本例では、車内ネットワークAをCAN等とし、車内ネットワークBをEthernetとするが、車内ネットワークA,Bに同一の通信規格を採用してもよい。また、
図1では図示を省略しているが、各種ECU等の車両2内の各構成要素は、電力線で蓄電池に接続され、電力供給を受けている。
【0021】
ゲートウェイ10は、配下ECU同士の通信データの中継、配下ECUのソフトウェア更新、及び配下ECUに搭載されるソフトウェアの整合性確認を行う機能を有する。ゲートウェイ10は、AUTOSAR CP(第2PF)などのレガシープラットフォーム上に構成される。なお、ゲートウェイ10の内部構成については、
図2及び
図6で詳述する。
【0022】
通信モジュール12は、ゲートウェイ10、配下ECU、及びIVI22と、配信サーバ3との通信を中継する機能を有するソフトウェアモジュールである。
【0023】
運転支援統合ECU13、カメラECU14、及びセンサECU15は、車両2の運転支援に関連して動作するECUであって、運転支援ドメインネットワーク(例えばEthernet)に接続される。このうち、運転支援統合ECU13は、車両2の運転支援機能(ADAS:Advanced Driver-Assistance Systems)を統合制御するECUである。以下の説明では、簡略のため、運転支援統合ECUを「ECU_A」と称することがある。カメラECU14は、車両2に搭載されたカメラを制御するECUであり、センサECUは、車両2に搭載されたセンサを制御するECUである。
【0024】
シャシー統合制御ECU16は、車両2におけるシャシー系機能(ブレーキやステアリング等)を統合制御するECUであって、シャシードメインネットワーク(例えばEthernet)に接続される。以下の説明では、簡略のため、シャシー統合制御ECUを「ECU_B」と称することがある。
【0025】
エンジン制御ECU17及びトランスミッション制御ECU18は、車両2の駆動系の動作を制御するECUであって、パワートレインドメインネットワーク(例えばCAN-FD)に接続される。このうち、エンジン制御ECU17は、エンジンを制御するECUであり、トランスミッション制御ECU18は、トランスミッションを制御するECUである。以下の説明では、簡略のため、エンジン制御ECUを「ECU_C」と称することがある。
【0026】
エアバッグECU19、HVACECU20、及び車体管理ECU21は、車両2の各種設備や状態を管理するECUであって、ボディドメインネットワーク(例えばCAN/LIN)に接続される。このうち、エアバッグECU19は、エアバッグを制御するECUであり、HVACECU20は、空調システム(HVAC:Heating, Ventilation, and Air Conditioning)を制御するECUであり、車体管理ECU21は、車体の状態を管理するECUである。以下の説明では、簡略のため、エアバッグECUを「ECU_D」と称することがある。
【0027】
IVI22は、車両2の乗員であるユーザへの情報提示やユーザからの入力を受け付けるIVI(In-Vehicle Infotainment)のECUであって、情報系ネットワーク(例えばEthernet)に接続される。以下の説明では、簡略のため、IVIを「ECU_E」と称することがある。
【0028】
以上のように、車両2には、様々なECUが搭載されており、これらのECUを構成するプラットフォームのタイプも様々である。具体的には例えば、運転支援統合ECU(ECU_A)13及びシャシー制御ECU(ECU_B)16は第1PF上に構成され、エンジン制御ECU(ECU_C)17及びエアバッグECU(ECU_D)19は第2PF上に構成され、IVI(ECU_E)22は第3PF上に構成される。また、これらのECUは、車両2の走行中にソフトウェアを書き換え可能か否かについても、仕様が異なることがある。例えば、ECU_A13、ECU_B16、ECU_C17、及びECU_E22は走行中の書き換えが可能であるのに対し、ECU_D18は走行中の書き換えができない。
【0029】
図2は、ゲートウェイ10のハードウェア構成例を示すブロック図である。
図2に示すように、ゲートウェイ(ソフトウェア更新装置)10は、スイッチ50、SoC51、マイコン52、不揮発メモリ53、及びROM(Read Only Memory)54を備える。スイッチ50は、例えばEthernetスイッチである。SoC51は、負荷の高い処理等を搭載したSoC(System on a Chip)であり、内部にCPU(Central Processing Unit)55を有する。マイコン52は、安全に関する機能等を搭載したマイクロコントローラであり、内部にCPU56、RAM(Random Access Memory)57、ROM58、及び通信制御部59を有する。
【0030】
図3は、ECU_A13及びECU_B16のハードウェア構成例を示すブロック図である。
図3に示すように、ECU_A13及びECU_B16は、SoC61、マイコン62、不揮発メモリ63、及びRAM64を備える。そして、SoC61はCPU65を有し、マイコン62は、CPU66、RAM67、ROM68、及び通信制御部69を有する。ECU_A13及びECU_B16は、
図2に示したゲートウェイ10と同様に、それぞれにプロセッサ(CPU)を有するSoCとマイコンとを備えることにより、統合ECUとして複数機能を搭載することができる構成となっている。例えば、運転支援統合ECU(ECU_A)13の場合、SoC61に認識機能が搭載され、マイコン62に制御機能が搭載される。また、ECU_A13及びECU_B16は、ROM68が2バンク(第1バンク70,第2バンク71)になっているため、車両2の走行中でもROM68に格納されているソフトウェアの書き換えができる構成となっている。
【0031】
図4は、ECU_C17のハードウェア構成例を示すブロック図である。
図4に示すように、ECU_C17は、1つのマイコン81を備える。そしてマイコン81は、
図3に示したマイコン62と同様に、内部にCPU82、RAM83、ROM84、及び通信制御部85を有する。マイコン81のROM84は、
図3のROM68と同様に、2バンク(第1バンク86,第2バンク87)になっているため、車両2の走行中でもROM84に格納されているソフトウェアの書き換えができる構成となっている。
【0032】
図5は、ECU_D18のハードウェア構成例を示すブロック図である。
図5に示すように、ECU_D18は、
図4に示したECU_17と同様に、1つのマイコン91を備え、マイコン91は、内部にCPU92、RAM93、ROM94、及び通信制御部95を有する。但し、
図4に示したECU_17とは異なる点として、マイコン91のROM94は1バンクになっているため、車両2の走行中にはROM94に格納されているソフトウェアの書き換えができない構成となっている。
【0033】
図6は、ゲートウェイ10の機能構成例を示すブロック図である。
図6に示すように、ゲートウェイ(ソフトウェア更新装置)10は、サーバ接続部110、HMI制御部120、車両状態管理部130、第1更新制御部140、第2更新制御部150、及び通信部160を備えて構成される。
【0034】
サーバ接続部110は、通信モジュール12を介した車両2から配信サーバ3への接続を担う。具体的には例えば、サーバ接続部110は、配信サーバ3との間で、車両2に搭載されたソフトウェア及びハードウェアの構成情報のアップロードや、キャンペーン情報及び配信パッケージのダウンロードを行う。
【0035】
HMI制御部120は、車両2内のHMI機能(例えばIVIやメータ)を通信を介して制御し、ソフトウェア更新に必要な表示(例えば更新内容や結果の表示)及びユーザからの操作結果(例えば許諾やキャンセル)の取得を行う。
【0036】
車両状態管理部130は、車両2の各種状態(例えば、イグニッションの点火状態や、走行中/駐車中といった走行状態等)を、他のECU等から取得して管理する。
【0037】
第1更新制御部140は、第1PFを前提としたECUのソフトウェア更新制御を実施する。第1更新制御部140は、第1シーケンス制御部141、依存関係管理部142、及び機器情報管理部143から構成される。
【0038】
第1シーケンス制御部141は、第1PFにおけるソフトウェア更新のシーケンスを制御する。第1シーケンス制御部141は、直接制御可能な第1PF上のECUだけでなく、第1PF以外のプラットフォーム上のECUを第1PF上のECUとして疑似的に扱うことにより、車両2のシステム内に存在するECUを全体的に制御する。依存関係管理部142は、第1PFに規定されたフォーマットの依存関係情報を利用して、ソフトウェア間の依存関係をチェックする。機器情報管理部143は、車両2内のソフトウェア情報を収集して、車両2の構成情報を管理する。
【0039】
第2更新制御部150は、第1PF以外のプラットフォーム(第2PF,第3PF)におけるECUのソフトウェア更新制御を実施する。第2更新制御部150は、疑似更新実行部151、依存関係管理部152、変換情報管理部153、及び第2シーケンス制御部154から構成され、変換情報管理部153は、疑似ECU管理部155とインタフェース管理部156とを有する。
【0040】
疑似更新実行部151は、第1PF以外のECUについて、第1PFに模擬した動作によってソフトウェア更新を実行する。依存関係管理部152は、第1PF以外のECUについて、各ECUの依存関係を管理する。
【0041】
変換情報管理部153は、第1PFと第1PF以外のプラットフォームとの間における情報の対応関係を管理する。変換情報管理部153が有する疑似ECU管理部155は、第1PFで管理されるECUやソフトウェアの識別情報と、第1PF以外のプラットフォームで管理されるECUやソフトウェアの識別情報との対応関係を管理するものであり、例えば、上記対応関係を記載した疑似ECU対応管理テーブル(
図8参照)を保持する。また、変換情報管理部153が有するインタフェース管理部156は、第1PFにおけるコマンドやAPI(Application Programming Interface)と、第1PF以外のプラットフォームにおけるコマンドやAPIとの対応関係を管理するものであり、例えば、上記対応関係を記載したインタフェース変換テーブル(
図9参照)を保持する。なお、疑似ECU対応管理テーブルやインタフェース変換テーブルは、予め作成されて保持されているとしてよいが、他にも例えば、車両システムにおけるECUの接続等に応じて、内容を自動生成するようにしてもよい。
【0042】
第2シーケンス制御部154は、第2PFにおけるソフトウェア更新のシーケンスを制御する。なお、第2更新制御部150は、第1PF以外のプラットフォームについて、プラットフォームごとに当該プラットフォームにおけるソフトウェア更新のシーケンスを制御するシーケンス制御部を備えるものであり、これらを総称して第Nシーケンス制御部と称する。すなわち、
図4に示した第2シーケンス制御部154は第Nシーケンス制御部の一例であり、以後は、第Nシーケンス制御部に対しても符号154を付して説明する。
【0043】
通信部160は、ゲートウェイ10の外部との通信を制御する。通信部160は、サービス管理部161、通信I/F162、第1通信部163、第2通信部164、及び第3通信部165から構成される。
【0044】
サービス管理部161は、第1PFにおけるサービスを管理する。通信I/F162は、第1PFにおけるアプリケーション間通信のインタフェースであり、例えば、第1PFのARA::COM等である。第1通信部163は、第1PFにおけるECU間通信のインタフェース処理部である。第1通信部163は、例えば、SOME/IP(Scalable service-Oriented MiddlewarE over IP)やDDS(Data Distribution Service for Real-time Systems)等の、第1PFで標準とされる通信プロトコルを処理するブロックである。第2通信部164は、第2PFにおけるECU間通信のインタフェース処理部である。第2通信部164は、例えば、ISO14229-1(UDS)等の、第2PFで標準とされる通信プロトコルを処理するブロックである。第3通信部165は、第1PF及び第2PF以外のプラットフォームにおけるECU間通信のインタフェース処理部である。第3通信部165は、例えば、自動車メーカ独自の通信プロトコルを処理するブロックである。第1通信部163、第2通信部164、及び第3通信部165は、何れかのプラットフォームにおけるECU間通信のインタフェース処理部であり、これらは第N通信部とも称する。
【0045】
図7は、シャシー統合ECU16の内部構成例を示すブロック図である。シャシー統合ECU16は、シャシー系(ブレーキ、ステアリングなど)のECUの機能を1つのECUに統合したECUであって、FuncA170、FuncB180、及びハイパーバイザ190を備えて構成される。このうち、FuncA170及びFuncB180が、統合ECUとしてシャシー統合ECU16が有する複数の機能にそれぞれ相当する。
【0046】
FuncA170は、例えば、ブレーキ、ステアリング等の、安全への要求が高い機能を制御する。FuncAは、第1APP171、第2PF_MW172及びRTOS173を有する。第1APP171は、ブレーキ制御用のソフトウェアモジュールである。第2PF_MW172は、第2PF(AUTOSAR CP)の機能を提供するミドルウェア群である。RTOS173は、リアルタイムOS(Operating System)である。
【0047】
FuncB180は、例えば、診断通信機能やコネクテッド機能等の、走行の安全に直接関与しない機能を制御する。FuncB180は、第3APP181、第4APP182、第1PF_MW183、及びPOSIX_OS184を有する。第3APP181は、FuncB180に搭載されるアプリケーションの1つであって、例えば診断機能に関するアプリケーションソフトウェアである。第4APP182は、FuncB180に搭載される第3APP181とは別のアプリケーションの1つであって、例えばコネクテッド機能に関するアプリケーションソフトウェアである。第1PF_MW183は、第1PF(AUTOSAR AP)の機能を提供するミドルウェア群であり、当該機能に含まれる各機能を司るソフトウェアモジュールの一例として、第1PF_SW185,186を有する。具体的には例えば、第1PF_SW185は、更新管理部の機能を提供するソフトウェアモジュールであり、第1PF_SW186は、ネットワーク管理部の機能を提供するソフトウェアモジュールである。POSIX_OS184は、POSIX(Portable Operating System Interface for UNIX)のOSである。
【0048】
なお、
図7では、本実施形態に係るソフトウェア更新装置10に備えられる統合ECUの内部構成例として、シャシー統合ECU16の内部構成例を示したが、その他のECUの内部構成も、
図7を参考に推定することができる。例えば、運転支援統合ECU(ECU_A)13は、統合ECUなのでシャシー統合ECU16と同様に、2つのFuncを備える構成と考えればよい。また、エンジン制御ECU17やエアバッグECU19等のような単機能ECUの場合は、1つのFuncを備える構成と考えればよい。
【0049】
(1-2)データ
以下では、本実施形態に係るソフトウェア更新システム1で保持または配信される一部のデータについて、そのデータ構造例を示す。但し、実際のデータは下記の例に限定されるものではなく、例えばテーブル形式で記載されたデータは、正規化等によって異なるテーブル構成でデータを保持してもよい。また例えば、テーブル以外の形式でデータを保持してもよい。
【0050】
図8は、疑似ECU対応管理テーブルの一例である。疑似ECU対応管理テーブルは、第1PFで管理されるECUやソフトウェアの識別情報と、第1PF以外のプラットフォームで管理されるECUやソフトウェアの識別情報との対応関係を記載したテーブルデータであって、変換情報管理部153の疑似ECU管理部155に保持される。
図8の場合、疑似ECU対応管理テーブル210は、対象とするECUやソフトウェアを単位としてレコードを有し、各レコードは、第1PF上識別ID211、ECU識別情報212、及びPF識別情報213から構成される。
【0051】
疑似ECU対応管理テーブル210において、第1PF上識別ID211は、対象を第1PF上で疑似的に識別するために付与された識別子(ID)である。ECU識別情報212は、第1PF以外のプラットフォーム(実際に管理するプラットフォーム上)において識別される対象の識別情報であり、例えばECUの名称が記載される。疑似ECU管理部155は、第1PF上識別ID211とECU識別情報212とを用いることにより、第1PFとその他のプラットフォームとの間で、対象の識別情報を変換することができる。PF識別情報213は、対象を実際に管理するプラットフォームを識別するための情報である。例えば、
図8によれば、第1PF上において識別ID「2」で疑似的に扱われるECUは、実際には「第2PF」で管理される「エンジン制御ECU」であることが分かる。このように、疑似ECU管理部155は、疑似ECU対応管理テーブル210を参照することにより、第1PFとその他のプラットフォームとの間で変換したECUやソフトウェアのIDを、プラットフォームに応じて利用することができる。
【0052】
図9は、インタフェース変換テーブルの一例である。インタフェース変換テーブルは、第1PFにおけるコマンドやAPIと、第1PF以外のプラットフォームにおけるコマンドやAPIとの対応関係を記載したテーブルデータであって、変換情報管理部153のインタフェース管理部156に保持される。
図9の場合、インタフェース変換テーブル220は、第1PF制御命令221、PF種別222、及び変換後インタフェース223から構成される。
【0053】
インタフェース変換テーブル220において、第1PF制御命令221は、第1PF上における制御命令の名称である。具体的には例えば、「SW情報取得要求」や「データ転送開始要求」等の制御命令に相当する。PF種別222は、第1PF以外のどのプラットフォームに該当するかを識別するための情報であり、具体的には例えば、「第2PF」や「第3PF」等が記載される。変換後インタフェース223は、PF種別222で指定されたプラットフォームにおいて、第1PF制御命令221の制御命令に対応するインタフェースを識別する情報である。変換後インタフェース223の設定により、上記制御命令を実行する際、通信部160のどの通信部に、どのようなコマンドで依頼するかが指定される。
【0054】
例えば、
図9のインタフェース変換テーブル220において、第1PF上における制御命令(第1PF制御命令221)が「SW情報取得要求」である場合、第3PFに対応する変換後インタフェース223は「第3通信部 GetECUVersion」となっている。この場合、第3PFにおいては、第3通信部165に、ECUからバージョン情報を読み出すAPI(GetECUVersion)が依頼されることを意味する。また例えば、第1PF制御命令221が「データ転送開始要求」の場合、第2PFに対応する変換後インタフェース223は「なし(OK返答)」となっている。これは、第1PFにおけるデータ転送開始要求に対応するAPIが第2PFには存在しないためであり、この場合、第2PFは固定的にOK返答を返すように設定される。
【0055】
また、本実施形態において、第2PFには、走行中に書換可能なECUと書換不可なECUとが存在することから、変換後インタフェース223に、ECUの種別ごとに変換後の命令を記載することもできる。例えば、第1PF制御命令221が「パッケージ処理要求」の場合、第2PFに対応する変換後インタフェース223として、走行中書換可能なECUの場合は「データ転送要求」を依頼することが設定される一方、走行中書換不可なECUの場合は「なし(OK応答)」が設定されている。このようにECUの種別ごとに変換後の命令を記載することにより、疑似更新実行部151が一時的に蓄積した更新データを、どのタイミングでECUに送信するかを制御することができる。
【0056】
なお、ソフトウェア更新装置10では、疑似ECU対応管理テーブル210やインタフェース変換テーブル220で管理される情報(少なくとも、第1PF上識別ID211及び第1PF制御命令221)が、第1更新制御部140に送信されるように構成され、これにより、第1更新制御部140(特に第1シーケンス制御部141)は、第1PF以外のプラットフォーム上のECUに対する制御を行おうとする際、第1PF上に模擬された疑似ECUに対する制御命令を生成することができる。
【0057】
図10及び
図11は、ソフトウェアパッケージの構成例を示す図(その1,その2)である。ソフトウェアパッケージは、ECUの更新プログラム等を含むパッケージであって、例えばサプライヤが保有するソフトウェア管理システム4で生成される。ソフトウェアパッケージは、配信サーバ3を介して車両2に配信され、対象のECUの更新実行部でソフトウェアパッケージが所定の更新手順で実行されることにより、対象のECUにおいてプログラムの更新が行われる。
図10には、第1PF向けのソフトウェアパッケージ230が示され、
図11には、第2PF向けのソフトウェアパッケージ240とソフトウェアパッケージ240に含まれる更新対象ソフトウェア情報243の詳細構成とが示されている。
【0058】
図10に示したソフトウェアパッケージ230は、第1PF向けの更新プログラム233、プログラム実行条件234、及びデータ235をアーカイブした更新プログラムデータ231と、更新プログラムデータ231のデジタル署名232と、更新に利用するソフトウェアパッケージに関する情報である更新対象ソフトウェア情報261と、を有して構成される。更新プログラム233は、第1PFの所定のECUを書き換えるためのデータであり、具体的には、第1PFの更新後のプログラムや差分データ等である。プログラム実行条件234は、更新プログラム233の実行条件を示す情報である。データ235は、更新プログラム233で利用するパラメータ等のデータである。更新対象ソフトウェア情報261については、
図12の説明において後述する。
【0059】
図11(A)に示したソフトウェアパッケージ240は、第2PF向けの更新プログラム241と、更新プログラム241のデジタル署名242と、更新に利用するソフトウェアパッケージに関する更新対象ソフトウェア情報243と、を有して構成される。更新プログラム241は、第2PFの所定のECUを書き換えるためのデータであり、具体的には、第2PFの更新後のプログラムや差分データ等である。なお、ソフトウェアパッケージのデータ構成は、必ずしも
図10や
図11に示したように更新対象のECUのプラットフォームに依存する必要はなく、例えば第2PF用のソフトウェアパッケージが
図10のソフトウェアパッケージ230と同様のデータ構成を有していてもよい。
【0060】
図11(B)に示したように、更新対象ソフトウェア情報243は、バージョン2431、サイズ2432、メモリアドレス2433、及び通信アドレス2434を含む。ここで、バージョン2431は、更新対象のソフトウェア(更新データ)について、更新後のソフトウェアバージョンを示し、サイズ2432は、更新データのサイズを示す。また、メモリアドレス2433は、更新データが格納されているメモリアドレスを示し、通信アドレス2434は、更新データを処理する更新実行部と通信するための通信アドレスを示す。
【0061】
図12は、配信パッケージの構成例を示す図である。配信パッケージは、ゲートウェイ10において第1PFで定義された第1更新制御部140が、ソフトウェアパッケージを用いたECU更新の制御のために利用するパッケージであって、配信サーバ3で生成されてゲートウェイ10に配信される(
図20で後述する配信パッケージ生成処理を参照)。
【0062】
図12に示した配信パッケージ250は、更新の制御に用いるデータ全体に相当する車両全体更新制御情報251と、更新に利用するソフトウェアパッケージに関する情報である更新対象ソフトウェア情報261と、デジタル署名271とを有して構成される。
【0063】
車両全体更新制御情報251は、更新手順252、依存関係情報253、第1更新制御部識別情報254、及びユーザ通知255を含む。ここで、更新手順252は、更新条件や手順を記述したデータであって、より具体的には、各処理(インストールやソフトウェアパッケージ処理、アクティベート)の実行条件256と、更新対象のソフトウェアパッケージについての各処理(インストールやソフトウェアパッケージ処理、アクティベート)の実行手順257とを含む。依存関係情報253は、更新対象のソフトウェアパッケージのその他のソフトウェアとの依存関係を示す。第1更新制御部識別情報254は、本制御情報を処理する制御部の識別情報を示す。ユーザ通知255は、当該更新に関するユーザへの通知内容を示す。
【0064】
更新対象ソフトウェア情報261は、バージョン262、サイズ263、更新データ種別264、処理種別265、依存関係266、パッケージID267、通信アドレス268、更新実行部識別情報269、及びパッケージ配置先270を含む。ここで、バージョン262は、更新対象のソフトウェア(更新データ)について、更新後のソフトウェアバージョンを示す。サイズ263は、更新データのサイズを示す。更新データ種別264は、フル更新データまたは差分データ等といったような更新データの種別を示す。処理種別265は、新規インストール、更新、または削除といったような更新処理の種別を示す。依存関係266は、ソフトウェアパッケージに含まれるソフトウェアの他のソフトウェアとの依存関係を示す。パッケージID267は、ソフトウェアパッケージの識別子を示す。通信アドレス268は、ソフトウェアパッケージを処理する更新実行部と通信するための通信アドレスを示す。更新実行部識別情報269は、ソフトウェアパッケージを処理する更新実行部の識別情報を示す。パッケージ配置先270は、ソフトウェアパッケージを取得するための配置先(例えばサーバのURL等)を示す。
【0065】
(1-3)処理
以下では、上述した本実施形態に係るソフトウェア更新システム1で実行される各種の動作または処理について詳しく説明する。
【0066】
(1-3-1)起動時動作
図13は、車両2におけるシステム起動時動作の手順例を示すシーケンス図である。車両2におけるシステムは、例えば車両2の電源ON等を契機として起動し、このとき、ゲートウェイ(ソフトウェア更新装置)10は
図13に示す起動時動作を開始する。
【0067】
図13によればまず、第1更新制御部140の第1シーケンス制御部141が、通信部160のサービス管理部161に対して、車両2のシステム内に存在するサービスの検索を要求する更新対象検索要求を送信する(ステップS101)。
【0068】
そして、ステップS101の更新対象検索要求を受信したサービス管理部161は、第1通信部163を介してシステム内に探索要求を発行し、その探索結果の通知を受け取る(ステップS102~S105)。より具体的には、第1通信部163から受けた探索要求に応じて、各ECUのソフトウェアが、自身のサービスの存在を示すサービス通知を発行する。このステップS102~S105による探索要求の一例として、
図13では、第1PF上のECU_A13からサービス通知が発行される様子が示されている。この場合、ECU_A13は、自身が有するソフトウェア更新機能(更新管理部)サービスについて、第1通信部163にサービス通知を応答し(ステップS104)、第1通信部163は受信したサービス通知をサービス管理部161に転送する(ステップS105)。
【0069】
次に、サービス管理部161は、ステップS105で受信したサービス通知に基づいて、当該サービス通知が示すサービス(本例ではECU_A13のソフトウェア更新サービス)を自身が保持する管理情報に登録する(ECU_A対象登録)。
【0070】
なお、車両2のシステム起動時における、サービス管理部161の管理情報に対するサービスの登録は、上述したように更新対象検索要求への応答によるサービス通知に基づくものに限定されず、その他の手順でもサービスの登録が行われることがある。以下にその一例を説明する。
【0071】
例えば、ゲートウェイ10においては、車両2のシステム起動時に、各プラットフォーム上のECU内のソフトウェアがサービス通知を自発的に発行することができる。このような動作の一例として、
図13には、第1PF上のECU_B16から、ECU_B16が有するソフトウェア更新機能サービスについてのサービス通知が発行される様子が示されている(ステップS106~S107)。この場合、ECU_B16からのサービス通知は、第1通信部163を経由してサービス管理部161に送信され、サービス管理部161は、受信したサービス通知に基づいて、当該サービス通知が示すサービス(ECU_B16のソフトウェア更新サービス)を自身が保持する管理情報に登録する(ECU_B対象登録)。
【0072】
また例えば、ゲートウェイ10においては、車両2のシステム起動時に、システム内のサービスがサービス管理部161に自らのサービスの登録を要求することができる。このような動作の一例として、
図13には、第2更新制御部150の疑似更新実行部151が、自身が管理するプラットフォーム(第1PF以外のプラットフォーム)上のECUの1つである第2PF上のECU_C17について、ECU_C17が有するソフトウェア更新サービスの登録を要求する様子が示されている(ステップS108)。この場合、疑似更新実行部151からの登録要求を受けたサービス管理部161は、登録要求されたECU_C17のソフトウェア更新サービスを管理情報に登録する(ECU_C対象登録)。
【0073】
なお、ゲートウェイ10では、前述した疑似更新実行部151からも、車両2のシステム起動時にサービス管理部161にサービスの登録を要求することができ、
図13には、このような様々な動作例が示されている。具体的には、ステップS109では、車両状態管理部130が、車両2の各種状態を管理する車両状態管理サービスの登録をサービス管理部161に要求する。この場合、サービス管理部161は、登録要求された車両状態管理サービスを管理情報に登録する(車両状態管理登録)。また、ステップS110では、HMI制御部120が、HMI機能を制御するHMI制御サービスの登録をサービス管理部161に要求する。この場合、サービス管理部161は、登録要求されたHMI制御サービスを管理情報に登録する(HMI制御登録)。また、ステップS111では、サーバ接続部110が、配信サーバ3に接続するサーバ接続サービスの登録をサービス管理部161に要求する。この場合、サービス管理部161は、登録要求されたサーバ接続サービスを管理情報に登録する(サーバ接続登録)。
【0074】
以上のように、
図13に示した起動時動作が行われることにより、ゲートウェイ10では、車両2のシステム起動時にシステム内に存在するサービスを、サービス管理部161の管理情報に登録することができる。
【0075】
(1-3-2)制御命令変換処理
図14は、制御命令変換処理の手順例を示すフローチャートである。
図14のフローチャートは、第1更新制御部140(特に第1シーケンス制御部141)が第1PF以外のプラットフォーム上のECUに対する制御命令を受信した場合に、第2更新制御部150において制御命令を変換する制御命令変換処理の手順例を示したものである。
【0076】
図14の処理手順について説明する前に、まず、本実施形態のソフトウェア更新装置(ゲートウェイ)10における制御命令に対する処理の概要を説明する。
【0077】
図6を参照しながら述べたように、本実施形態に係るソフトウェア更新装置(ゲートウェイ)10では、第1更新制御部140(第1シーケンス制御部141)が、直接制御可能な第1PF上のECUだけでなく、第1PF以外のプラットフォームを第1PF上のECUとして疑似的に扱うことにより、各プラットフォーム上のECUを全体的に制御する。このような構成のゲートウェイ10において、第1PF上のECUに対する制御命令については、第1シーケンス制御部141が第1通信部163を介して、対象のECUに直接、その命令実行を指示することができる。一方、第1PF以外のプラットフォーム上のECUに対する制御命令については、第1PF上の疑似的なECU(疑似ECU)に対する制御命令として記載されているため、このままでは命令を実行することができない。そこで、第1シーケンス制御部141は、第2更新制御部150に疑似ECUに対する制御命令を送信する。そして第2更新制御部150において、疑似更新実行部151が、受信した制御命令を実際のプラットフォーム上のECUに対する制御命令に変換する。このような変換処理が行われることにより、第2更新制御部150では、対応するプラットフォームの第Nシーケンス制御部154が対応する第N通信部(第2通信部164,第3通信部165)を介して、対象のECUに、変換後の制御命令の実行を指示できるようになる。具体的には例えば、第2PF上のECUに対する制御命令である場合は第2シーケンス制御部154が第2通信部164を介して当該制御命令の実行を指示することができる。
【0078】
以上の概要を踏まえて、
図14の処理手順について説明する。まず、第2更新制御部150の疑似更新実行部151が、第1シーケンス制御部141から送信された疑似ECUに対する制御命令を第1通信部163から受信する(ステップS201)。この制御命令は、少なくとも、第1PF上における制御命令の名称(例えば
図9の第1PF制御命令221)と、第1PF上の模擬ECUの識別情報である第1PF上識別ID(例えば
図8の第1PF上識別ID211)とを含んで構成される。
【0079】
次に、疑似更新実行部151は、変換情報管理部153の疑似ECU管理部155に保持されている疑似ECU対応管理テーブル(
図8)を参照し、ステップS201で受信した制御命令に含まれる第1PF上識別ID211に対応するECU識別情報212及びPF識別情報213を取得する(ステップS202)。
【0080】
次に、疑似更新実行部151は、変換情報管理部153のインタフェース管理部156に保持されているインタフェース変換テーブル(
図9)を参照し、ステップS201で受信した制御命令に含まれる第1PF制御命令221と、ステップS202で取得したPF識別情報213に合致するPF種別222とに基づいて、対応する変換後インタフェース223を取得する(ステップS203)。
【0081】
そして、ステップS202で取得したPF識別情報213(PF種別222でもよい)が示すプラットフォームに対応する第Nシーケンス制御部154が、ステップS203で取得されたインタフェース情報に基づいて、第N通信部(例えば第2通信部164)を介して、対象のECUに制御命令を送信する(ステップS204)。ステップS204における送信対象のECUは、ステップS202で取得されたECU識別情報212が示すECUである。
【0082】
以上のように
図14に示す制御命令変換処理を行うことにより、ゲートウェイ10は、第1PF上で疑似的に扱うECUに対する制御命令であっても、実際のプラットフォーム上のECUに対する制御命令に変換して制御命令を実行させることができるため、車両2のシステム内の各プラットフォーム上のECU(あるいはECUのソフトウェア)に対する制御命令を全体的に制御することができる。
【0083】
(1-3-3)構成情報の収集~車両パッケージの受信
図15は、構成情報の収集から車両パッケージの受信に関する手順例を示すシーケンス図である。より詳しくは、
図15では、第1シーケンス制御部141が、システム内のソフトウェア情報を収集し、サーバ接続部110が構成情報として配信サーバ3に送信して同期をとり、第1シーケンス制御部141が配信サーバ3から提供されるキャンペーン情報に基づいてダウンロードすべき車両パッケージ(配信パッケージやソフトウェアパッケージ)の一覧を決定し、各車両パッケージを受信する処理の手順例が示されている。
【0084】
図15によればまず、第1シーケンス制御部141が、サービス管理部161に対象リストの取得を要求し、サービス管理部161から対象リストを取得する(ステップS301~S302)。ステップS301~S302で取得対象とされる対象リストは、具体的には、構成同期やソフトウェア更新の対象候補となるソフトウェア更新サービスの一覧である。
【0085】
次に、第1シーケンス制御部141は、ステップS302で取得した一覧のなかにあるサービスを利用して、各ソフトウェアの情報を取得する。
図15ではその一例として、ECU_A13及びECU_B17からソフトウェア情報(SW情報)を取得する手順を示すが、実際には、登録された全てのサービスに対してソフトウェア情報を読出して取得する。
【0086】
まず、ECU_A13からのSW情報の取得を説明する。第1シーケンス制御部141によるECU_A13へのSW情報の取得要求は、第1PF用のインタフェースを用いて実施され、具体的には、第1シーケンス制御部141は、第1PFにおけるアプリケーション間通信のインタフェースである通信I/F162に、ECU_A13のSW情報の取得要求を送信する(ステップS303)。
【0087】
ここで、ECU_A13は第1PF上のECUであることから、通信I/F162は、当該取得要求を第1通信部163に送信する(ステップS304)。そして、当該取得要求を受信した第1通信部163は、第1PFで定義されたECU間インタフェースに従って、ECU_A13にSW情報を要求し、ECU_A13は要求に応じてSW情報を第1通信部163に応答する(ステップS305~S306)。そして、第1通信部163は、ステップS306で受信したSW情報を、第1PFで定義されたECU間インタフェースに従って第1PFのアプリケーションインタフェースに変換したうえで通信I/F162に返信し、通信I/F162から第1シーケンス制御部141にSW情報が送信される(ステップS307~S308)。
【0088】
以上のステップS303~S308の処理によって、第1シーケンス制御部141は、ECU_A13のSW情報を取得することができる。
【0089】
次に、ECU_C17からのSW情報の取得を説明する。第1シーケンス制御部141によるECU_C17へのSW情報の取得要求は、ECU_A13へのSW情報の取得要求と同様に、第1PF用のインタフェースを用いて実施される。具体的には、第1シーケンス制御部141は、通信I/F162に、ECU_C17のSW情報の取得要求を送信する(ステップS309)。なお、ステップS309で送信されるSW情報の取得要求は、「第2PF上のECU_C17に対するSW情報の取得要求」が直接記述されるのではなく、「第1PF上のECU_C17の疑似ECUに対するSW情報の取得要求」が記述される。そのため、上記SW情報の取得要求においては、取得対象のECUが第1PF上識別ID(
図8参照)で指定され、要求内容が第1PF制御命令(
図9参照)で指定される。
【0090】
ステップS309においてSW情報の取得要求を受信した通信I/F162は、取得対象のECUが第1PF上識別IDで指定されていることから(実際の取得対象であるECU_C17が第2PF上のECUであることから)、SW情報の取得要求を、直接第2PF用の第2通信部164には送信せずに、第2更新制御部150の疑似更新実行部151に送信する(ステップS310)。
【0091】
そして、SW情報の取得要求を受信した疑似更新実行部151は、変換情報管理部153を呼び出し、上記取得要求で指定された第1PF上識別IDに対応するECU識別情報及びPF識別情報を取得する(ECU識別情報取得、PF情報取得)。詳しく説明すると、疑似更新実行部151は、取得要求で指定された第1PF上識別IDをキーとして、疑似ECU管理部155が保持している疑似ECU対応管理テーブル210を参照することにより、SW情報の実際の取得対象とされたECU及びそのプラットフォーム(第2PF)を示す情報として、対応するECU識別情報212及びPF識別情報213を取得する。さらに、疑似更新実行部151は、変換情報管理部153を呼び出し、上記取得要求で指定された第1PF制御命令に対応する変換後インタフェースを取得する(変換後I/F取得)。詳しく説明すると、疑似更新実行部151は、上記取得要求で指定された第1PF制御命令と、先のPF情報取得で取得したPF種別情報とをキーとして、インタフェース管理部156が保持しているインタフェース変換テーブル220を参照することにより、第2PF上のECU_C17にSW情報を要求するために必要なインタフェース情報として、対応する変換後インタフェース223を取得する。
【0092】
次に、疑似更新実行部151は、上述したECU識別情報取得、PF情報取得、及び変換後I/F取得によって取得した情報を用いて、第2シーケンス制御部154を介して第2通信部164に、ECU_C17のSW情報取得を要求する(ステップS311,S3112)。そして、取得要求を受信した第2通信部164は、第2PFの標準I/Fを用いて、ECU_C17にSW情報を要求し、ECU_C17は要求に応じてSW情報を第2通信部164に応答する(ステップS312~S313)。そして、第2通信部164は、例えばUDS等の通信プロトコルで、ステップS313で受信したSW情報を、第2シーケンス制御部154を介して疑似更新実行部151に返答する(ステップS3132,S314)。
【0093】
その後、疑似更新実行部151が、ステップS314で受信したECU_C17のSW情報を、第1PF上のインタフェースに変換した上で、通信I/F162に送信し(ステップS315)、通信I/F162が、受信したSW情報を、ステップS309のSW情報の取得要求への応答として第1シーケンス制御部141に返答する(ステップS316)。
【0094】
以上のステップS309~S316の処理によって、第1シーケンス制御部141は、第1PF上に模擬した別プラットフォームのECU_C17からも、SW情報を取得することができる。
【0095】
このようにして、システム内に登録された全てのサービスからソフトウェア情報を取得した後、第1シーケンス制御部141は、収集した各ソフトウェア情報をサーバ接続部110に送信し(ステップS317)、サーバ接続部110は受信したこれらのソフトウェア情報を構成情報として配信サーバ3に通知する(ステップS318)。
【0096】
次に、配信サーバ3は、ステップS318で受信した構成情報を基に、アップデート可能なソフトウェアの有無を確認し、アップデート(車両2からみるとダウンロード)可能なソフトウェアが存在する場合には、その更新を行うためのキャンペーン情報をサーバ接続部110に応答する(ステップS319)。
【0097】
次に、サーバ接続部110は、受信したキャンペーン情報から、ダウンロードすべき車両パッケージ(更新パッケージ)の一覧の読出しを第1シーケンス制御部141に要求する(ステップS320)。第1シーケンス制御部141がダウンロードすべき更新パッケージの一覧を読み出す詳細な方法については説明を省略するが、例えば、第1シーケンス制御部141は、例えばHMI制御部120によってキャンペーンの一覧をHMIに表示させて、ユーザからダウンロードしたい車両パッケージ(更新パッケージ)を選択させるようにしてもよい。そして、第1シーケンス制御部141は、ダウンロードすべき更新パッケージの一覧をサーバ接続部110に応答する(ステップS321)。そしてサーバ接続部110は、応答された更新パッケージの一覧に基づいて、更新パッケージの提供を配信サーバ3に要求する(ステップS322)。
【0098】
次に、配信サーバ3は、ステップS322で要求された更新パッケージを、サーバ接続部110に送信する(ステップS323)。なお、ステップS322で複数の更新パッケージが要求された場合、ステップS323では各更新パッケージが、一斉にあるいは順次送信されることになるが、
図15では、簡便のため、1つの更新パッケージ(第1パッケージ)の送信を例示している。
【0099】
配信サーバ3から更新パッケージを受信したサーバ接続部110は、第1シーケンス制御部141に、更新パッケージ(第1パッケージ)の転送開始を要求し、許可が得られると、第1シーケンス制御部141に第1パッケージを転送する(ステップS324~S325)。そして、サーバ接続部110は、第1パッケージの転送が終了すると、第1シーケンス制御部141に第1パッケージの転送完了を通知する(ステップS326)。
【0100】
そして、第1パッケージの転送完了の通知を受け取ると、第1シーケンス制御部141は、受信した第1パッケージを検証する(第1パッケージ検証)。検証の具体的な内容としては例えば、パッケージに含まれるデジタル署名を検証し、正規の更新パッケージであることを確認する等が挙げられる。
【0101】
以上のステップS317~S326の処理によって、第1シーケンス制御部141は、システム内の更新可能なソフトウェアに関する情報(キャンペーン情報)を取得し、キャンペーンから選択した任意の車両パッケージ(更新パッケージ)を配信サーバ3からダウンロードすることができる。
【0102】
(1-3-4)インストール及びアクティベート
図16及び
図17は、ECUを更新するソフトウェアパッケージのインストール及びアクティベートにおける手順例を示すシーケンス図(その1,その2)である。
図16及び
図17に示す処理の前提として、
図15に示した処理によって第1シーケンス制御部141が配信サーバ3からダウンロードした更新パッケージには、ECU_A13,ECU_C17,ECU_D19を更新するための情報が含まれていると想定する。そして、
図16及び
図17では、各ECUを更新するソフトウェアパッケージ(SP1~SP3)を配信サーバ3からダウンロードし、各ECUにインストール(データ転送)し、ドライバからアクティベート実行の許諾を得た場合に、更新されたECUの機能をアクティベート(有効化)する処理の手順例を示す。なお、詳細は後述するが、ECUへのデータ転送のタイミングはアクティベート実行の許諾を得た後でも可能である。
【0103】
まず、
図16によれば、第1シーケンス制御部141が、車両状態管理部130に車両状態取得要求を行うことにより、車両状態管理部130が車両2の状態に関する情報(車両状態)を読み出して第1シーケンス制御部141に送信する(ステップS401~S402)。車両状態管理部130は、厳密にはサービスインタフェースを経由して車両状態を読み出すが、
図16ではその記載を省略する。
【0104】
次に、車両状態管理部130から第1シーケンス制御部141に対して、車両2の状態が通知され、第1シーケンス制御部141は、取得した車両状態に基づいて、インストール処理を開始して良いか否かを判定する(不図示)。そして第1シーケンス制御部141は、インストール処理を開始して良いと判定した場合には、以下に説明するECU更新用のソフトウェアパッケージ(SP)のダウンロードを開始する。
【0105】
ECU更新用のソフトウェアパッケージをダウンロードする処理手順は、対象のECUが第1PF上のECUであるか否かによって異なる。すなわち、
図16では、ECU_A13用のECUパッケージ(SP1)のダウンロードと、ECU_C17用のECUパッケージ(SP2)またはECU_D19用のECUパッケージ(SP2)のダウンロードとで、処理手順が異なる。
【0106】
ECU_A13用のECUパッケージ(SP1)をダウンロードする処理では、まず、第1シーケンス制御部141がサーバ接続部110にSP1の取得を要求する(ステップS403)。当該要求を受けたサーバ接続部110は、配信サーバ3にSP1の取得を要求することで、配信サーバ3からSP1を受信する(ステップS404~S405)。
【0107】
次に、サーバ接続部110は、SP1のデータ転送の開始を通知する。具体的には、サーバ接続部110から第1シーケンス制御部141にSP1の転送開始が通知され、第1シーケンス制御部141が、通信I/F162及び第1通信部163を介して、第1PF上のECU_A13の更新管理部に転送開始を通知する(ステップS406~S409)。そしてこの転送開始の通知に対する応答が、ECU_A13から第1通信部163、通信I/F162、第1シーケンス制御部141を経由してサーバ接続部110に送信される(ステップS410~S413)。
【0108】
次に、サーバ接続部110は、SP1のデータをECU_A13に転送する。具体的には、サーバ接続部110から第1シーケンス制御部141にSP1が送信され、第1シーケンス制御部141が、通信I/F162及び第1通信部163を介して、第1PF上のECU_A13の更新管理部にSP1を転送する(ステップS414~S417)。そしてこのデータ転送に対する応答が、ECU_A13から第1通信部163、通信I/F162、第1シーケンス制御部141を経由してサーバ接続部110に送信される(ステップS418~S421)。
【0109】
そして、SP1のデータ転送が終了すると、サーバ接続部110は、SP1のデータ転送の終了を通知する。当該通知は、データ転送開始の通知の場合と同様に、第1シーケンス制御部141、通信I/F162、第1通信部163を経てECU_A13の更新管理部に転送され(ステップS422~S425)、その応答がサーバ接続部110に送信される(ステップS426~S429)。
【0110】
以上のように、第1PF上のECU_A13用のECUパッケージ(SP1)のダウンロードは、全ての処理を第1PF上で実行可能であり、ECU_A13の更新管理部は受信したSP1をインストールすることができる。
【0111】
一方、第1PF以外のプラットフォーム上のECU用のECUパッケージのダウンロードにおいては、ダウンロードしたソフトウェアパッケージは、即座に対象のECUに転送されるのではなく、所定条件を満たすまで(
図17で説明するパッケージ処理要求またはアクティベート要求が発行されるまで)、一旦、ゲートウェイ10内(疑似更新実行部151)に蓄積される。このような処理手順の一例として、以下、ECU_C17用のECUパッケージ(SP2)をダウンロードする処理手順を説明する。
【0112】
ECU_C17用のECUパッケージ(SP2)をダウンロードする処理では、まず、第1シーケンス制御部141がサーバ接続部110にSP2の取得を要求する(ステップS431)。当該要求を受けたサーバ接続部110は、配信サーバ3にSP1の取得を要求することで、配信サーバ3からSP1を受信する(ステップS432~S433)。
【0113】
次に、サーバ接続部110は、SP2のデータ転送の開始を通知する。具体的には、サーバ接続部110から第1シーケンス制御部141にSP2の転送開始が通知され、第1シーケンス制御部141が、通信I/F162を介して、第1PF上でECU_C17の疑似的な更新管理部(疑似更新管理部)として認識される疑似更新実行部151に、転送開始を通知する(ステップS434~S436)。なお、ステップS436においてSP2の転送開始の通知を受信した疑似更新実行部151は、
図15のステップS310においてECU_C17のSW情報の取得要求を受信したときと同様の処理を行って、SP2のデータ転送に関するECU識別情報、PF情報、及び変換後I/Fを取得する。その後、転送開始の通知に対する応答が、疑似更新実行部151から通信I/F162、第1シーケンス制御部141を経由してサーバ接続部110に送信される(ステップS437~S439)。
【0114】
次に、サーバ接続部110は、データ転送の処理として、SP2を第1シーケンス制御部141に送信し、第1シーケンス制御部141は、通信I/F162を介して、ECU_C17の第1PF上における疑似更新管理部である疑似更新実行部151に、SP2を転送する(ステップS440~S442)。このとき、疑似更新実行部151は、ステップS442で受信したSP2を自身で保持し、データ転送に対する応答を、通信I/F162、第1シーケンス制御部141を経由してサーバ接続部110に送信する(ステップS443~S445)。
【0115】
そして、SP2のデータ転送が終了すると、サーバ接続部110は、SP2のデータ転送の終了を第1シーケンス制御部141に通知し、第1シーケンス制御部141は、通信I/F162を介して、ECU_C17の第1PF上における疑似更新管理部である疑似更新実行部151に、当該通知を転送する(ステップS446~S448)。そして当該通知への応答が、通信I/F162、第1シーケンス制御部141を経由してサーバ接続部110に送信される(ステップS449~S451)。ステップS442で述べたように、疑似更新実行部151は、データ転送時に受信したSP2を自身で保持することから、SP2のデータ転送終了時には、SP2のデータ全体が疑似更新実行部151に蓄積される。
【0116】
また、
図16では、ステップS451の後に、第2PF上のECU_D19用のECUパッケージ(SP3)をダウンロードする処理が簡略して示されているが、この一連の処理は、ECU_C17用のECUパッケージ(SP2)をダウンロードする処理(ステップS431~S451)と同様であるため、説明を省略する。
【0117】
上述したように、第1PF以外のプラットフォーム上のECU(疑似ECU)を対象とするソフトウェアパッケージは、ダウンロード後に一時的に疑似更新実行部151に蓄積される。この時点では、各ソフトウェアパッケージは対象のECUにデータ転送及びインストールされていない。これらのソフトウェアパッケージに対するその後の処理として、本実施形態では、様々なタイミングで対象のECUにデータ転送しインストールすることができる。データ転送のタイミングは、
図9のインタフェース変換テーブル220に設定することができる。具体例として
図17では、ECU_C17用のECUパッケージについては、第1シーケンス制御部141によるパッケージ処理要求の発行を契機として実行されるとし、ECU_D19用のECUパッケージについては、アクティベートの確認後に発行されるアクティベート要求を契機として実行されるとしている。
【0118】
図17に示した処理を説明する。まず、
図17に示すステップS501~S520の処理は、ECU_C17用のECUパッケージのダウンロード後の処理である。
【0119】
図17によれば、まず、第1シーケンス制御部141が、ECU_C17に向けて、第1PFにおけるパッケージ処理要求を行う。具体的には、第1シーケンス制御部141は、通信I/F162にECU_C17向けのパッケージ処理要求を送信し(ステップS501)、通信I/F162は、当該要求がECU_C17向けであることから、疑似更新実行部151に当該要求を転送する(ステップS502)。
【0120】
次に、第1PFにおけるパッケージ処理要求を受信した疑似更新実行部151は、インタフェース変換テーブルを参照して、受信した要求を第2PFにおける要求に変換する(API変換)。ここで、ECU_C17を走行中の書き換えが可能なECUであるとすると、
図9のインタフェース変換テーブル220を用いた場合、「パッケージ処理要求」の第1PF制御命令221に対応する第2PFにおける変換後インタフェース223は、「[走行中書換可ECUの場合]データ転送要求」となる。したがって、パッケージ処理要求を受信した疑似更新実行部151は、API変換を行うことにより、第2シーケンス制御部154にECU_C17への「データ転送要求」を行う(ステップS503)。ステップS503において、疑似更新実行部151は例えば、自身に蓄積したソフトウェアパッケージ(SP2)から更新データを抽出し、データ転送要求に添えて第2シーケンス制御部154に送信する。
【0121】
そして、第2シーケンス制御部154は、ステップS503のデータ転送要求への応答を疑似更新実行部151に返した後(ステップS504)、第2通信部164を介してECU_C17にSP2のデータ転送の開始を要求する(ステップS505~S506)。
【0122】
そして、第2シーケンス制御部154は、データ転送の開始要求に応答が得られると(ステップS507~S508)、第2通信部164を介してECU_C17の更新管理部にSP2のデータを転送する(ステップS509~S510)。また、データ転送時は、データ転送に対するECU_C17の応答が、第2通信部164を介して第2シーケンス制御部154に送信される(ステップS511~S512)。
【0123】
そして、SP2のデータ転送が終了すると、第2シーケンス制御部154は、SP2のデータ転送の終了を通知する。当該通知は、データ転送開始の通知の場合と同様に、第2通信部164を経てECU_C17の更新管理部に転送され(ステップS513~S514)、その応答が第2シーケンス制御部154に送信される(ステップS515~S516)。
【0124】
次に、ステップS516でデータ転送終了の応答を受信した第2シーケンス制御部154は、疑似更新実行部151に、ステップS503のデータ転送要求の結果を回答する(ステップS517)。そして、疑似更新実行部151は、通信I/F162を介して第1シーケンス制御部141に、ステップS501~S502のパッケージ処理要求の結果を回答する(ステップS518~S519)。
【0125】
以上のステップS501~S519の処理によって、配信サーバ3からダウンロードされて疑似更新実行部151に蓄積されていたECU_C17用のECUパッケージ(SP2)は、対象のECU_C17に転送され、インストールすることができる。その後、第1シーケンス制御部141は、インストールした更新パッケージのアクティベートを確認するタイミングを把握するために、車両状態管理部130に、アクティベート可能な状態となったら通知を行うよう、車両状態の通知要求を送信する(ステップS520)。
【0126】
次に、
図17のステップS521以降の処理を説明する。ステップS521以降の処理は、更新パッケージのアクティベートに関する処理である。具体的には、ステップS521~S523は、アクティベートの確認に関する処理であり、ステップS524~S542は、ECU_D19用の更新プログラム(ECUパッケージ,SP3)のデータ転送及びアクティベートに関する処理であり、ステップS543~S548は、ECU_A13用の更新プログラム(ECUパッケージ,SP1)のアクティベートに関する処理であり、ステップS549~S557は、ECU_C17用の更新プログラム(ECUパッケージ,SP2)のアクティベートに関する処理である。
【0127】
アクティベートの確認の契機として、例えばイグニッションがOFFになったとき、車両状態管理部130は、車両状態がアクティベート可能な状態になったことを第1シーケンス制御部141に通知する(ステップS521)。当該通知を受けた第1シーケンス制御部141は、HMI制御部120に、ドライバにアクティベート実行の可否を確認する確認画面の表示を要求する(ステップS522)。確認画面においてドライバからアクティベート実行の許諾を得ると、HMI制御部120が、第1シーケンス制御部141にアクティベート確認の結果を返答する(ステップS523)。確認画面の表示形態は特に限定しないが、例えば、アクティベート待ちのソフトウェアパッケージの一覧を表示してドライバが許諾対象を選択できるようにしてもよいし、ドライバがアクティベートを一括して許諾できるようにしてもよい。また、更新ソフトウェアの種別によっては、ドライバによるアクティベートの許諾を不要とするものがあってもよい。
【0128】
以後は、ステップS521~S523の処理により、SP1~SP3の全てのソフトウェアパッケージについてアクティベートの許諾が得られたとして、説明を続ける。
【0129】
ECU_D19用の更新プログラムについて、第1シーケンス制御部141は、アクティベートの許諾が得られたことから、通信I/F162を介して疑似更新実行部151にECU_D19の更新プログラムのアクティベートを要求する(ステップS524~S525)。第1シーケンス制御部141からのアクティベート要求は第1PFにおける要求として行われるため、当該要求を受信した疑似更新実行部151は、ステップS502で第1PFにおけるパッケージ処理要求を受信したときと同様にAPI変換を行って、受信したアクティベート要求を第2PFにおける要求に変換する。具体的には、
図9のインタフェース変換テーブル220において「アクティベート要求」の第1PF制御命令221に対応する第2PFにおける変換後インタフェース223は、「第2通信部 [走行中書換不可ECUの場合]データ転送要求」となっている。
【0130】
ここで、
図5で説明したようにECU_D19は走行中書換不可のECUであるため、疑似更新実行部151は、第2シーケンス制御部154にデータ転送要求を送信し、第2シーケンス制御部154が、第2通信部164を介してECU_D19に、ダウンロードされたソフトウェアパッケージ(SP3)のデータ転送要求を行う(ステップS526~S527)。
【0131】
なお、疑似更新実行部151からデータ転送要求を受信した後の、第2シーケンス制御部154からECU_D19に対するデータ転送の一連の処理手順は、ECU_C17に対するデータ転送について前述したステップS505~S517の処理で転送先のECUを変更したものと同様であるため、詳細な処理を省略する(ステップS528~S540)。
【0132】
そしてステップS540において第2シーケンス制御部154から疑似更新実行部151にデータ転送要求の結果が回答されると、疑似更新実行部151は、通信I/F162を介して第1シーケンス制御部141に、ステップS524~S525のアクティベート要求の結果を回答する(ステップS541~S542)。
【0133】
以上のステップS524~S542の処理によって、ECU_D19用の更新プログラム(ECUパッケージ,SP3)を、疑似更新実行部151からECU_D19に転送し、インストールした後にアクティベートすることができる。
【0134】
次に、ECU_A13用の更新プログラムについて、第1シーケンス制御部141は、アクティベートの許諾が得られたことから、通信I/F162及び第1通信部163を介して、ECU_A13にアクティベート要求を行う。ECU_A13は第1PF上にあるECUであるため、前述のECU_D19のように疑似更新実行部151を介した処理は必要なく、ECU_A13からはアクティベート実行後に、応答が第1シーケンス制御部141に送られて、ECU_A13用の更新プログラムのアクティベートが完了する(ステップS543~S548)。
【0135】
次に、ECU_C17用の更新プログラムについて、第1シーケンス制御部141は、アクティベートの許諾が得られたことから、通信I/F162を介して疑似更新実行部151にECU_C17の更新プログラムのアクティベートを要求する(ステップS549~S550)。当該要求を受信した疑似更新実行部151は、API変換を行って、受信したアクティベート要求を第2PFにおける要求に変換する。なお、ECU_C17は走行中書換可能なECUであり、対象の更新プログラムはステップS503~S517の処理によって既にECU_C17に転送されてインストール済みであるため、データ転送は必要なく、アクティベート要求をECU_C17に転送すればよい。このことは、
図9のインタフェース変換テーブル220において、「アクティベート要求」の第1PF制御命令221に対応する第2PFにおける変換後インタフェース223が、「第2通信部 [走行中書換可ECUの場合]アクティベート要求」となっていることからも確かめられる。
【0136】
したがって、疑似更新実行部151は、第2シーケンス制御部154にアクティベート要求を送信し、第2シーケンス制御部154が第2通信部164を介してECU_C17に、アクティベート要求を転送する(ステップS551~S554)。そして、ECU_C17で更新プログラム(SP2)が有効化された後、ECU_C17から第2通信部164を介して第2シーケンス制御部154に結果が送信され(ステップS555~S556)、さらに、第2シーケンス制御部154は、疑似更新実行部151にステップS551~S552のアクティベート要求の結果を回答する(ステップS557)。なお、
図17では記載を省略しているが、さらにその後、疑似更新実行部151が、通信I/F162を介して第1シーケンス制御部141に、ステップS549~S550のアクティベート要求の結果を回答する。
【0137】
以上のステップS549~S557等の処理によって、ECU_C17用の更新プログラム(ECUパッケージ,SP2)についても、ECU_C17において有効化(アクティベート)することができる。
【0138】
(1-3-5)終了処理
図18は、終了処理における手順例を示すシーケンス図である。
図18には、第1PF上で扱われる各ECUを終了させるときの手順例が示されている。この終了処理の手順は、対象が第1PFのECUであるか、第1PF上に模擬された疑似ECUであるかによって異なる。
【0139】
第1PF上のECU_A13の終了処理では、第1シーケンス制御部141は、通信I/F162及び第1通信部163を介して、第1PF上のECU_A13にECU_A13の終了処理を要求する(ステップS601~S603)。そしてECU_A13からは、終了処理の完了時に応答が第1シーケンス制御部141に送られる(ステップS604~S606)。
【0140】
一方、第1PF上に模擬されたECU_C17の終了処理では、第1シーケンス制御部141は、通信I/F162を介して、第1PF上におけるECU_C17の疑似更新管理部である疑似更新実行部151に、終了処理を要求する(ステップS607~S608)。そして、終了処理要求を受信した疑似更新実行部151は、受信した要求に基づいてECU識別情報、PF情報、及び変換後I/Fを取得し(
図15参照)、第1PF上に模擬したECU_C17の疑似更新管理部を終了した後、終了処理要求への応答を、通信I/F162を介して第1シーケンス制御部141に送信する(ステップS609~S610)。
【0141】
また、第1PF上に模擬されたECU_D19の終了処理も、上述したECU_C17の終了処理と同様である(ステップS611~S614)。
【0142】
以上のように、ステップS601~S614の処理が行われることにより、第1シーケンス制御部141は、第1PF上で制御するシステム内の各ECUの終了処理を実行することができる。
【0143】
(1-3-6)実行条件に基づく車両状態の判定処理
図19は、車両状態管理部130による車両状態の判定処理の処理手順例を示すフローチャートである。
図19に示す処理は、配信パッケージ250に含まれる車両全体更新制御情報251中の実行条件256に基づいて、第1更新制御部140(特に第1シーケンス制御部141)がソフトウェア更新の各プロセスを実行可能なタイミングを把握するための処理であって、
図17のステップS520~S521の詳細な処理に相当する。
【0144】
図19によればまず、第1更新制御部140の第1シーケンス制御部141が、配信パッケージ250に含まれる車両全体更新制御情報251中の実行条件251(具体的には例えば、イグニッションOFF)を車両状態通知要求のパラメータに設定して、車両状態管理部130に送信する(ステップS5201)。
【0145】
次に、車両状態管理部130は、車両状態通知要求を受信する(ステップS5202)と、現在の車両状態が受信した車両状態通知要求に含まれる実行条件に合致するか否かを確認する(ステップS5203)。実行条件に合致する場合(ステップS5203のYES)、車両状態管理部130は、車両状態が実行条件に合致したことを第1更新制御部140(第1シーケンス制御部141)に通知する(ステップS521)。
【0146】
一方、ステップS5203において現在の車両状態が実行条件に合致しない場合(ステップS5203のNO)、車両状態管理部130は、車両状態が受信した車両状態通知要求の実行条件に合致するまで状態を監視し(ステップS5204)、合致を確認すると、車両状態が実行条件に合致したことを第1更新制御部140(第1シーケンス制御部141)に通知する(ステップS521)。
【0147】
上記ステップS5201~S521の処理を実行することにより、ソフトウェア更新装置10は、実行条件256に基づいて、車両の状態を確認してから更新プロセスを実行することができるため、安全にソフトウェア更新を実施することができる。また、実行条件を配信パッケージ250に含めて送信することで、更新内容に応じて柔軟に安全条件を設定することができる。
【0148】
(1-3-7)配信パッケージ生成処理
図20は、配信パッケージ生成処理の処理手順例を示すフローチャートである。
図20に示す配信パッケージ生成処理は、配信サーバ3の配信パッケージ生成部31が配信パッケージ250を生成する処理である。
【0149】
図20によればまず、配信パッケージ生成部31は、ソフトウェア管理システム4のソフトウェアパッケージ管理部42からソフトウェアパッケージを読み出す(ステップS1001)。
【0150】
次に、配信パッケージ生成部31は、ステップS1001で読み出したソフトウェアパッケージが第1PF向けのパッケージであるか、第2PF向けのパッケージであるかを判定する(ステップS1002)。第1PF向けソフトウェアパッケージであると判定した場合(ステップS1002の第1PF)、配信パッケージ生成部31は、ソフトウェアパッケージ230(
図10参照)から更新対象ソフトウェア情報261を抽出する(ステップS1003)。一方、第2PF向けソフトウェアパッケージであると判定した場合(ステップS1002の第2PF)、配信パッケージ生成部31は、ソフトウェアパッケージ240(
図11(A)参照)の更新対象ソフトウェア情報243から、ソフトウェアパッケージ240向けの更新対象ソフトウェア情報261を生成する(ステップS1004)。
【0151】
そして、配信パッケージ生成部31は、ステップS1001~S1004の処理を繰り返して、読み出したソフトウェアパッケージのすべてについて更新対象ソフトウェア情報261を抽出または生成すると、次に車両全体更新制御情報251を生成する(ステップS1005)。
【0152】
そして最後に、配信パッケージ生成部31は、ステップS1003~S1005で生成した車両全体更新制御情報251及び更新対象ソフトウェア情報261から、デジタル署名271を生成する(ステップS1006)。
【0153】
以上のようにステップS1001~S1006の処理を実行することにより、配信パッケージ生成部31は、ソフトウェアパッケージ管理部42から読み出したソフトウェアパッケージが第2PF用のパッケージだった場合には、第1PF用のパッケージに合わせた更新対象ソフトウェア情報261を生成することで、第1PFでも処理可能な配信パッケージ250を生成することができる。
【0154】
以上、各図面を参照しながら詳述したように、本実施形態に係るソフトウェア更新装置10によれば、車両システムが複数種類のプラットフォームで構成される場合でも、各プラットフォーム上のソフトウェアユニット(ECU)やECU内のソフトウェアを、第1プラットフォーム上で管理及び制御することができる。詳しくは、第2更新制御部150において、第1プラットフォームとの間における識別情報の対応関係(疑似ECU対応管理テーブル)やインタフェースの対応関係(インタフェース変換テーブル)を保持し、疑似更新実行部151がプラットフォーム間の変換を行って、第1プラットフォーム以外のプラットフォーム上のECUを第1プラットフォーム上の疑似的なECUとすることにより、第1プラットフォームの制御部(第1更新制御部140)が、各ECUに対する制御命令やソフトウェア処理を、第1プラットフォーム上で統括して制御することができる。
【0155】
また、本実施形態に係るソフトウェア更新装置10は、車両2の外部の配信サーバ3から提供されるソフトウェアパッケージについて、対象のECUが存在するプラットフォームに依存することなく、第1プラットフォームの制御部(第1更新制御部140)で受信することができ、さらに、対象のECUに対するインストールやアクティベート等の要求を、第1プラットフォーム上で指示することができる。また、各ECUのソフトウェアに対する更新等の処理を第1プラットフォーム上で統一的に指示することもできる。すなわち、本実施形態に係るソフトウェア更新装置10は、複数のプラットフォームで構成される車両システムのソフトウェアを柔軟に更新することができる。
【0156】
また、本実施形態に係るソフトウェア更新装置10は、上述したように、プラットフォーム間の対応関係を示す管理情報を利用して、複数のプラットフォーム上のECUを1つのプラットフォーム上で取り扱い可能とするため、車両システムにおけるプラットフォームの構成が変化したり、ECUの追加等が行われたりした場合であっても、上記管理情報を変更するだけで、大きな設計変更等を行うことなく対応することができることから、スケーラブルな仕組みによって拡張対応を可能とする。
【0157】
(2)第2の実施形態
第1の実施形態では、第1PFの更新制御機能に対して、第2PFの制御機能が第1PFを模擬することにより、複数のPFのソフトウェア更新を実現できることを示した。これに対し、第2の実施形態では、第2PFの更新機能が第1PFの更新制御機能を制御して複数のPFのソフトウェア更新を実現できることを示す。なお、第2の実施形態の説明では、第1の実施形態と同様の構成及び処理については、説明を省略する。
【0158】
(2-1)ゲートウェイのソフトウェア構成
図21は、本発明の第2の実施形態に係るソフトウェア更新装置(ゲートウェイ)10Aの機能構成例を示すブロック図である。第2の実施形態では、第1の実施形態におけるゲートウェイ10に替えて、ゲートウェイ10Aが用いられる。なお、
図21において、
図6と同一の番号が付された構成要素については、その説明を省略する。
【0159】
図21に示すように、ゲートウェイ(ソフトウェア更新装置)10Aは、第3更新制御部340、第4更新制御部350、及び通信部160を備えて構成される。
【0160】
第3更新制御部340は、第2PFを基本としたECUのソフトウェア更新制御を実施する。第3更新制御部340は、第3シーケンス制御部341、第3機器情報管理部343、サーバ接続部110、HMI制御部120、車両状態管理部130、及び第Nシーケンス制御部344から構成される。第Nシーケンス制御部344は、
図6に第2シーケンス制御部を例示した第Nシーケンス制御部154と同様に、プラットフォームごとに当該プラットフォームにおけるソフトウェア更新のシーケンスを制御する。すなわち、本実施形態の第Nシーケンス制御部344には、第1PFの更新シーケンスを制御する制御部が含まれる。
【0161】
第3シーケンス制御部341は、ソフトウェア更新のシーケンス全体を制御する。第3シーケンス制御部341は、第Nシーケンス制御部344を介して、車両2のシステム内に存在する第2PFのECU及び第1PFのソフトウェア更新を全体的に制御する。第3シーケンス制御部341は、第1PFのソフトウェアを更新する際は、第1PFにて定義されたインタフェース仕様に従って第4更新制御部350に制御指示を行い、ソフトウェア更新を制御する。第3機器情報管理部343は、
図6に示した機器情報管理部143と同様、車両2内のソフトウェア情報を収集して、車両2の構成情報を管理する。
【0162】
第4更新制御部350は、第3更新制御部340の指示により、第1PFのソフトウェア更新制御を実施する。第4更新制御部350は、第4シーケンス制御部351、依存関係管理部142、及び機器情報管理部143から構成される。第4シーケンス制御部351は、第1PFにおけるソフトウェア更新のシーケンスを制御する。
【0163】
以上のようにゲートウェイ10Aを構成することで、第2の実施形態では、第2PFの更新制御機能に、第1PF用の第Nシーケンス制御部344を追加すれば、第1PFのソフトウェア更新を行うことが可能になる。
【0164】
(2-2)処理
以下では、第2の実施形態に係るソフトウェア更新システムで実行される各種の動作または処理について、第1の実施形態と相違する部分を中心に、詳しく説明する。
(2-2-1)起動時動作
図22は、第2の実施形態における車両2におけるシステム起動時動作の手順例を示すシーケンス図である。車両2におけるシステムは、例えば車両2の電源ON等を契機として起動し、このときゲートウェイ(ソフトウェア更新装置)10Aは、
図22に示す起動時動作を開始する。
【0165】
図22によればまず、第4更新制御部350の第4シーケンス制御部351が、通信部160のサービス管理部161に対して、車両2のシステム内に存在するサービスの検索を要求する更新対象検索要求を送信する(ステップS1101)。
【0166】
そして、ステップS1101の更新対象検索要求を受信したサービス管理部161は、第1通信部163を介してシステム内に探索要求を発行し、その探索結果の通知を受け取る(ステップS1102~S1105)。より具体的には、第1通信部163から受けた探索要求に応じて、各ECUのソフトウェアが、自身のサービスの存在を示すサービス通知を発行する。
図22のステップS1102~S1107による探索要求・サービスの登録の動作については、
図13のステップS102~S107と同様のため説明を省略する。
【0167】
次に、第4シーケンス制御部351は、自らをサービスとしてサービス管理部161に登録する(ステップS1109、第4シーケンス制御登録)。
【0168】
また、上記処理と並行して、第3シーケンス制御部341は、第Nシーケンス制御部344に第1PF更新準備要求を行う(ステップS1110)。前記要求を受信すると、第Nシーケンス制御部344は、サービス管理部161に第4シーケンス制御部探索要求を出してアクセス情報を取得し(ステップS1111)、当該情報に基づいて第4シーケンス制御部351に車両状態確認(ステップS1112)及びユーザIF確認(ステップS1113)を要求する。これらの要求を発行することによって第Nシーケンス制御部344は、第4シーケンス制御部351に、車両状態確認が必要な場合には車両状態要求通知の発行先を、ユーザ確認が必要な場合にはユーザ確認要求通知の発行先を通知する。これにより、第4シーケンス制御部351は、適切な通知先に対して、車両状態要求通知及びユーザ確認要求通知を発行することができる。
【0169】
以上のように、
図22に示した起動時動作が行われることにより、ゲートウェイ10Aでは、車両2のシステム起動時にシステム内に存在するサービスを、サービス管理部161の管理情報に登録することができ、第Nシーケンス制御部344は第4シーケンス制御部351のアクセス情報を取得してアクセスが可能になり、第4シーケンス制御部351は車両状態要求通知及びユーザ確認要求通知の発行先を把握することが可能になる。なお、第1PF更新準備は、起動時ではなく、更新が必要になったときに実施してもよい。
【0170】
(2-2-2)構成情報の収集~車両パッケージの受信
図23は、第2の実施形態における構成情報の収集から車両パッケージの受信に関する手順例を示すシーケンス図である。より詳しくは、
図23では、第3シーケンス制御部341が、システム内のソフトウェア情報を収集し、サーバ接続部110が構成情報として配信サーバ3に送信して同期をとり、第3シーケンス制御部341が配信サーバ3から提供されるキャンペーン情報に基づいてダウンロードすべき車両パッケージ(配信パッケージやソフトウェアパッケージ)の一覧を決定し、各車両パッケージを受信する処理の手順例が示されている。
【0171】
図23によればまず、第3シーケンス制御部341が、第Nシーケンス制御部344にSW情報の取得を要求する(ステップS1201)。第Nシーケンス制御部344は、前記要求を受けると第2通信部164を介してECU_C17のSW情報を取得する(ステップS3112~S3132)。次に、第Nシーケンス制御部344は、第4シーケンス制御部351に、第2PFのSW情報取得を要求する(ステップS1205)。前記要求を受けると第4シーケンス制御部351は、ECU_A13のSW情報を取得する(ステップS303~S308)。
図23では、ECU_B16のSW情報取得の図示は省略する。第1PFのECUのSW情報の収集が完了すると、第4シーケンス制御部351は、第Nシーケンス制御部344に収集したSW情報を送信する(ステップS1212)。
【0172】
そして、第Nシーケンス制御部344を介しての車両2のSW情報の収集が完了する(ステップS1213)と、第3シーケンス制御部341は、サーバ接続部110にサーバへのSW情報の通知を要求し(ステップS1214)、サーバ接続部110は受信したこれらのソフトウェア情報を構成情報として配信サーバ3に通知する(ステップS318)。
【0173】
次に、配信サーバ3は、ステップS318で受信した構成情報を基に、アップデート可能なソフトウェアの有無を確認し、アップデート(車両2からみるとダウンロード)可能なソフトウェアが存在する場合には、その更新を行うためのキャンペーン情報をサーバ接続部110に応答する(ステップS319)。
【0174】
次に、サーバ接続部110は、サーバの応答結果をキャンペーン情報を第3シーケンス制御部341に通知する(ステップS1215)。第3シーケンス制御部341がダウンロードすべき更新パッケージの一覧を読み出す詳細な方法については説明を省略するが、例えば、第3シーケンス制御部341は、例えばHMI制御部120によってキャンペーンの一覧をHMIに表示させて、ユーザからダウンロードしたい車両パッケージ(更新パッケージ)を選択させるようにしてもよい。そして、第3シーケンス制御部341は、第1パッケージ取得要求をサーバ接続部110に通知する(ステップS1216)。
【0175】
次に、サーバ接続部110は、第1パッケージの提供を配信サーバ3に要求する(ステップS1206)。配信サーバ3から更新パッケージを受信(ステップS1207)したサーバ接続部110は、前記受信したパッケージを一旦蓄積し、取得が完了した旨を第3シーケンス制御部341に通知する(ステップS1217)。
【0176】
そして、第3シーケンス制御部341は、第Nシーケンス制御部344を介して第4シーケンス制御部351に、更新パッケージ(第1パッケージ)の転送開始を要求し(ステップS1218)、第Nシーケンス制御部344は、第4シーケンス制御部351に第1パッケージを転送する(ステップS324~S325)。そして、第Nシーケンス制御部344は、第1パッケージの転送が終了すると、第3シーケンス制御部341に第1パッケージの転送完了を通知する(ステップS1219)。
【0177】
以上のステップS1201~S1219の処理によって、第3シーケンス制御部341は、システム内の更新可能なソフトウェアに関する情報(キャンペーン情報)を取得し、キャンペーンから選択した任意の車両パッケージ(更新パッケージ)を配信サーバ3からダウンロードすることができる。
【0178】
(2-2-3)インストール
図24は、第2の実施形態におけるECUを更新するソフトウェアパッケージのインストール手順例を示すシーケンス図である。
図24に示す処理の前提として、
図23に示した処理によって第4シーケンス制御部351が配信サーバ3から取得したキャンペーン情報に第2のPFのソフトウェアを更新するための情報が含まれ、ダウンロードした更新パッケージには、第1PFのソフトウェアを更新するための情報が含まれていると想定する。そして、
図24では、各ECUを更新するソフトウェアパッケージ(SP1~SP3)を配信サーバ3からダウンロードし、各ECUにインストール(データ転送)する処理の手順例を示す。なお、詳細は省略するが、第1の実施形態と同様、ECUへのデータ転送のタイミングはアクティベート実行の許諾を得た後でも可能である。また、インストール可否確認のための車両状態の確認も本図では省略する。
【0179】
図24において、第3シーケンス制御部341は、車両状態管理部130が取得する車両状態に基づきインストール処理を開始して良いか否かを判定する(不図示)したのち、インストール処理を開始して良いと判定した場合に、以下に説明するECU更新用のソフトウェアパッケージ(SP)のダウンロードを開始する。
【0180】
なお、ECU更新用のソフトウェアパッケージをダウンロードする処理手順は、対象のECUが第1PF上のECUであるか否かによって異なる。すなわち、
図24では、ECU_A13用のECUパッケージ(SP1)をダウンロードする場合と、ECU_C17用のECUパッケージ(SP2)またはECU_D19用のECUパッケージ(SP2)をダウンロードする場合とで、処理手順が異なる。
【0181】
ECU_A13用のECUパッケージ(SP1)をダウンロードする処理では、まず、第3シーケンス制御部341が、サーバ接続部110にSP1の取得を要求する(ステップS1301)。当該要求を受けたサーバ接続部110は、配信サーバ3にSP1の取得を要求することで、配信サーバ3からSP1を受信する(ステップS404~S405)。
【0182】
次に、サーバ接続部110は、SP1のデータ転送の開始を応答する(ステップS13011)。データ転送開始の応答を受信すると、第3シーケンス制御部341は、第Nシーケンス制御部344を介して第4シーケンス制御部351にデータ転送開始を要求する(ステップS1302)。具体的には、第Nシーケンス制御部344から第4シーケンス制御部351にSP1の転送開始が通知され、第4シーケンス制御部351が、通信I/F162及び第1通信部163を介して、第1PF上のECU_A13の更新管理部に転送開始を通知する(ステップS406~S409)。そしてこの転送開始の通知に対する応答が、ECU_A13から第1通信部163、通信I/F162、第1シーケンス制御部141を経由してサーバ接続部110に送信される(ステップS410~S413)。
【0183】
次に、第Nシーケンス制御部344は、SP1のデータをECU_A13に転送する。具体的には、第Nシーケンス制御部344から第4シーケンス制御部351にSP1が送信され、第4シーケンス制御部351が、通信I/F162及び第1通信部163を介して、第1PF上のECU_A13の更新管理部にSP1を転送する(ステップS414~S417)。そしてこのデータ転送に対する応答が、ECU_A13から第1通信部163、通信I/F162、第4シーケンス制御部351を経由してサーバ接続部110に送信される(ステップS418~S421)。
【0184】
そして、SP1のデータ転送が終了すると、第Nシーケンス制御部344は、SP1のデータ転送の終了を通知する。当該通知は、データ転送開始の通知の場合と同様に、第4シーケンス制御部351、通信I/F162、第1通信部163を経てECU_A13の更新管理部に転送され(ステップS422~S425)、その応答がサーバ接続部110に送信される(ステップS426~S429)。
【0185】
以上のようにして、ゲートウェイ10Aは、第3シーケンス制御部341と第Nシーケンス制御部344を介して、配信サーバ3からのソフトウェアパッケージ(この場合はSP1)を直接、ECU_Aに送信することができ、ECU_A13の更新管理部は、受信したSP1をインストールすることができる。
【0186】
一方、第2PFのECU用のECUパッケージのダウンロードにおいては、ダウンロードしたソフトウェアパッケージは、即座に対象のECUに転送されるのではなく、一旦、ゲートウェイ10A内(第3シーケンス制御部341)に蓄積される。このような処理手順の一例として、以下、ECU_C17用のECUパッケージ(SP2)をダウンロードする処理手順を説明する。
【0187】
ECU_C17用のECUパッケージ(SP2)をダウンロードする処理では、まず、第3シーケンス制御部341が、サーバ接続部110にSP2の取得を要求する(ステップS1304)。当該要求を受けたサーバ接続部110は、配信サーバ3にSP1の取得を要求することで、配信サーバ3からSP1を受信し(ステップS432~S433)、SP2の蓄積が完了すると第3シーケンス制御部341にその旨を通知する(ステップS1305)。
次に、第3シーケンス制御部341は、SP2のデータ転送の開始を通知する。具体的には、第3シーケンス制御部341から第Nシーケンス制御部344にSP2の転送開始が通知され、第Nシーケンス制御部344が、第2通信部164を介して、ECU_C17に転送開始を通知する(ステップS505~S508)。次に、第Nシーケンス制御部344は、データ転送の処理として、SP2をECU_C17に送信する(ステップS509~S512)。そして、SP2のデータ転送が終了すると、第Nシーケンス制御部344は、SP2のデータ転送の終了をECU_C17に通知する(ステップS513~S516)。
【0188】
以上のようにして、ゲートウェイ10Aは、第2PFの第3シーケンス制御部341によって、配信サーバ3からのソフトウェアパッケージのダウンロード及びインストールを制御することができる。
【0189】
(2-2-4)アクティベート
図25は、第2の実施形態におけるECUを更新するソフトウェアパッケージのアクティベート手順例を示すシーケンス図である。
【0190】
図25によればまず、第4シーケンス制御部351が、インストールした更新パッケージのアクティベートを確認するタイミングを把握するために、第Nシーケンス制御部344と第3シーケンス制御部341を介して車両状態管理部130に、アクティベート可能な状態となったら通知を行うよう、車両状態の通知要求を送信する(ステップS1401~S1403)。
【0191】
アクティベートの確認の契機として、例えばイグニッションがOFF(IG-OFF)になったとき、車両状態管理部130は、車両状態がアクティベート可能な状態になったことを第3シーケンス制御部341及び第Nシーケンス制御部344を介して第4シーケンス制御部351に通知する(ステップS1404~1406)。
【0192】
当該通知を受けた第4シーケンス制御部351は、第Nシーケンス制御部344と第3シーケンス制御部341を介してHMI制御部120に、ドライバにアクティベート実行の可否を確認する確認画面の表示を要求する(ステップS1407~S1410)。確認画面においてドライバからアクティベート実行の許諾を得ると、HMI制御部120が、第3シーケンス制御部341に確認結果を通知する(ステップS1411)。第3シーケンス制御部341は、結果を受信すると、第Nシーケンス制御部344にアクティベートの実行を要求する(ステップS1413)。確認画面の表示形態は特に限定しないが、例えば、アクティベート待ちのソフトウェアパッケージの一覧を表示してドライバが許諾対象を選択できるようにしてもよいし、ドライバがアクティベートを一括して許諾できるようにしてもよい。また、更新ソフトウェアの種別によっては、ドライバによるアクティベートの許諾を不要とするものがあってもよい。
【0193】
アクティベート要求を受信すると、第Nシーケンス制御部344は、最初に、第4シーケンス制御部351に対してユーザ確認結果通知及びアクティベート開始を要求し、第4シーケンス制御部351は、通信IF162を介してECU_A13にアクティベートを要求する(ステップS543~S548)。次に、第Nシーケンス制御部344は、第2通信部164を介してECU_C17にアクティベートを要求する(ステップS552~S557)。
【0194】
そして、それぞれのECUにおいて更新対象ECUのアクティベートが完了すると、第Nシーケンス制御部344は、第3シーケンス制御部341にその結果を通知する(ステップS1414)。
【0195】
その後、第3シーケンス制御部341は、第Nシーケンス制御部344に終了処理を要求し(ステップS1415)、第Nシーケンス制御部344は、通信IF162を介してECU_A13に終了処理を要求する(ステップS602~S605)。そして、更新対象ECUの終了処理が完了すると、第Nシーケンス制御部344は、第3シーケンス制御部341にその結果を通知し(ステップS1416)、アクティベート処理が終了する。
【0196】
以上のようにして、ゲートウェイ10Aは、第2PFの第3シーケンス制御部341によって、更新対象のECUにインストール済みのソフトウェアパッケージのアクティベートを制御することができる。
【0197】
以上に説明したように、第2の実施形態に係るソフトウェア更新装置10Aによれば、第2PFの更新機能が第1PFの更新制御機能を制御して複数のPFのソフトウェア更新を実現することができる。したがって、車両システムが複数種類のプラットフォームで構成される場合でも、各プラットフォーム上のソフトウェアユニット(ECU)やECU内のソフトウェアを、第2プラットフォーム上で管理及び制御することができる。すなわち、第2の実施形態に係るソフトウェア更新装置10Aは、第1の実施形態に係るソフトウェア更新装置10と同様に、複数のプラットフォームで構成される車両システムのソフトウェアを柔軟に更新することができる。
【0198】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0199】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0200】
また、図面において制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0201】
1 ソフトウェア更新システム
2 車両
3 配信サーバ
4(4A,4B,4X) ソフトウェア管理システム
5 ネットワーク
6 診断装置
10,10A ゲートウェイ(ソフトウェア更新装置)
11 車内ネットワーク
12 通信モジュール
13 運転支援統合ECU(ECU_A)
14 カメラECU
15 センサECU
16 シャシー統合ECU(ECU_B)
17 エンジン制御ECU(ECU_C)
18 トランスミッション制御ECU
19 エアバッグECU(ECU_D)
20 HVACECU
21 車体管理ECU
22 IVI(ECU_E)
31 配信パッケージ生成部
32 配信パッケージ管理部
33 配信部
41 ソフトウェアパッケージ生成部
42 ソフトウェアパッケージ管理部
50 スイッチ
51,61 SoC
52,62,81,91 マイコン
53,63 不揮発メモリ
54,58,68,84,94 ROM
55,56,65,66,82,92 CPU
57,64,67,83,93 RAM
59,69,85,95 通信制御部
70,86 第1バンク
71,87 第2バンク
110 サーバ接続部
120 HMI制御部
130 車両状態管理部
140 第1更新制御部
141 第1シーケンス制御部
142 依存関係管理部
143 機器情報管理部
150 第2更新制御部
151 疑似更新実行部
152 依存関係管理部
153 変換情報管理部
154 第Nシーケンス制御部(第2シーケンス制御部)
155 疑似ECU管理部
156 インタフェース管理部
160 通信部
161 サービス管理部
162 通信I/F
163 第1通信部
164 第2通信部
165 第3通信部
170 FuncA
171 第1APP
172 第2PF_MW
173 RTOS
180 FuncB
181 第3APP
182 第4APP
183 第1PF_MW
184 POSIX_OS184
185,186 第1PF_SW
190 ハイパーバイザ
210 疑似ECU対応管理テーブル
220 インタフェース変換テーブル
230,240 ソフトウェアパッケージ
250 配信パッケージ
340 第3更新制御部
341 第3シーケンス制御部
343 第3機器情報管理部
344 第Nシーケンス制御部
350 第4更新制御部
351 第4シーケンス制御部