(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-26
(45)【発行日】2023-01-10
(54)【発明の名称】車載システム及びECU
(51)【国際特許分類】
G06F 11/00 20060101AFI20221227BHJP
G06F 8/60 20180101ALI20221227BHJP
G06F 8/65 20180101ALI20221227BHJP
B60R 16/02 20060101ALI20221227BHJP
【FI】
G06F11/00 604Z
G06F8/60
G06F8/65
B60R16/02 660U
(21)【出願番号】P 2019016050
(22)【出願日】2019-01-31
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100079049
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【氏名又は名称】加藤 和詳
(74)【代理人】
【識別番号】100099025
【氏名又は名称】福田 浩志
(72)【発明者】
【氏名】阿部 保彦
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2009-053920(JP,A)
【文献】特開平08-221259(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/00
G06F 8/60
G06F 8/65
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
第1ECUと、第2ECUと、を含む複数のECUがネットワークを介して接続される車載システムにおいて、
前記第1ECUの記憶部及び前記第2ECUの記憶部には、前記複数のECUのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記第1ECUは、前記車載システムの起動に応じて、前記第1ECUの記憶部に格納されたリストの識別情報と、前記第2ECUの記憶部に格納された前記リストの識別情報と、を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のECUのソフトウェアの組み合わせが整合しているか否かを判定
し、
前記第1ECUが交換され、新たな前記第1ECUとなった場合に、新たな前記第1ECUのソフトウェアの前記ソフトウェアの識別情報が、交換された前記第1ECUのソフトウェアの前記ソフトウェアの識別情報よりも古いことを示しており、かつ新たな前記第1ECUのソフトウェアの更新を所定の時間内に行うことができない場合に、新たな前記第1ECUは、実際に動作するソフトウェアを用いて縮退動作を行う、
車載システム。
【請求項2】
前記第1ECUは、前記第1ECUの記憶部に格納された前記リストの識別情報と、前記第2ECUの記憶部から取得した前記リストの識別情報とを比較した場合に、前記第1ECUの記憶部に格納された前記リストの識別情報が、前記第2ECUの記憶部から取得した前記リストの識別情報よりも古いことを示しているときに、前記第2ECUの各々の記憶部に記憶されている前記リストのうちの新しい方のリストによって、前記第1ECUの記憶部の前記リストを更新する、
請求項
1に記載の車載システム。
【請求項3】
前記第1ECUは、前記第1ECU及び複数の前記第2ECUのソフトウェアの組み合わせが整合していない場合、新しい方のリストに記録されている、前記ソフトウェアの識別情報の組み合わせとなるように、ソフトウェアを更新する対象のECUへソフトウェアの更新を指示する指示信号を出力する、
請求項1
又は請求項2に記載の車載システム。
【請求項4】
前記第2ECUの記憶部に記憶される前記リストは、前記第2ECUのソフトウェアが更新された場合に更新される、
請求項1~請求項
3の何れか1項に記載の車載システム。
【請求項5】
前記第1ECUは、前記第1ECUのソフトウェアの前記ソフトウェアの識別情報と、新しい方のリストに記録されている、前記第1ECUのソフトウェアの前記ソフトウェアの識別情報と、を比較し、前記第1ECUのソフトウェアの前記ソフトウェアの識別情報が、新しい方の前記リストに記録されている前記ソフトウェアの識別情報よりも古いことを示す場合、前記第1ECUのソフトウェアの更新を行う、
請求項1~請求項
4の何れか1項に記載の車載システム。
【請求項6】
前記ソフトウェアの識別情報は、ソフトウェアのバージョンを表す情報又はソフトウェアが作成された時刻を表す情報であり、
前記リストの識別情報は、リストのバージョンを表す情報又はリストが作成された時刻を表す情報である、
請求項1~請求項
5の何れか1項に記載の車載システム。
【請求項7】
第1ECUと、第2ECUと、を含む複数のECUがネットワークを介して接続される車載システムに
おける第1ECUであって、
前記第1ECUの記憶部及び前記第2ECUの記憶部には、前記
複数のECUのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記第1ECUは、前記車載システムの起動に応じて、
前記第1ECUの記憶部に格納されたリストの識別情報と、前記第2ECUの記憶部に格納された前記リストの識別情報と、を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のECUのソフトウェアの組み合わせが整合しているか否かを判定
し、
前記第1ECUが交換され、新たな前記第1ECUとなった場合に、新たな前記第1ECUのソフトウェアの前記ソフトウェアの識別情報が、交換された前記第1ECUのソフトウェアの前記ソフトウェアの識別情報よりも古いことを示しており、かつ新たな前記第1ECUのソフトウェアの更新を所定の時間内に行うことができない場合に、新たな前記第1ECUは、実際に動作するソフトウェアを用いて縮退動作を行う、
第1ECU。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、車載システム及びECUに関する。
【背景技術】
【0002】
従来、複数のファームウェアに従って動作する車両制御装置が知られている。この車両制御装置においては、サーバ等で管理されているバージョンリストと車両制御装置のバージョンの整合性確認を行い整合性が取れない場合、サーバからファームウェアをダウンロードする。具体的には、まず、この車両制御装置は、バージョン管理リストと収集したバージョンに不整合があるか否か判別する。そして、この車両制御装置は、実際のバージョンとバージョン管理リストに示される各々のファームウェアのバージョンとが異なると判別されたとき、実際のバージョンとバージョン管理リストに示される代表バージョンとをサーバに送信する。そして、この車両制御装置は、サーバから提供された更新用ファームウェアを用いて車両制御装置に搭載されたファームウェアを更新する。
【0003】
また、ECUのプログラムのバージョンアップを行う際、バスで接続された他のECUのプログラムとバージョンの不整合によるECUの動作不良の発生を未然に防止するシステムが知られている。このシステムは、電子制御ユニットに搭載されている現プログラムから更新されるバージョンアッププログラムを保有するサーバを備える。電子制御ユニットのいずれか1つ又はサーバは、現プログラムとバージョンアッププログラム間の依存関係情報を保有し、依存関係情報からバージョンアッププログラムへの更新の可否を判断する。そして、電子制御ユニットのいずれか1つ又はサーバは、更新可と判断する場合にサーバに保有しているバージョンアッププログラムを電子制御ユニットに送信させる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2013-250923号公報
【文献】特開2009-053920号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ECU同士は互いに連携し動作しているため、各ECUのソフトウェアバージョンには依存関係がある。この依存関係を管理するマスタECUと自情報を通知するスレイブECUとで構成されることがある。
【0006】
この場合には、例えば、各スレイブECUにおいて動作するソフトウェアのバージョンは、マスタECUによって管理され、マスタECUの記憶部には各スレイブECUのソフトウェアのバージョンが記録されたリストが格納される。
【0007】
しかし、ECUが交換された場合には、各ECUのソフトウェアのバージョンが記録されたリストが初期化されてしまうときがある。これにより、マスタECUが認識する各スレイブECUのソフトウェアのバージョンと、各スレイブECUにおいて実際に動作するソフトウェアのバージョンとの間において齟齬が生じる。
【0008】
このような場合には、マスタECUと各スレイブECUとの間の連携が適切に行われない可能性があるため、車載システムを動作させることができないときがある。そのため、ソフトウェアの識別情報が記録されたリストを保持するECUが交換された場合には、複数のECUにおいて実際に動作するソフトウェアの識別情報の組み合わせを確認する必要がある、という課題がある。
【0009】
一つの側面では、開示の技術は、複数のECUのソフトウェアを管理するリストを保持するECUが交換された場合であっても、複数のECUにおいて動作するソフトウェアの組み合わせを確認することが目的である。
【課題を解決するための手段】
【0010】
一つの実施態様では、開示の技術は、複数のECUがネットワークを介して接続される車載システムにおいて、前記ECUの記憶部には、前記ECUのソフトウェアの識別情報の組み合わせが記録されたリストが格納される。そして、ECUは、前記車載システムの起動に応じて、前記ECUの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定する。そして、ECUは、特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のECUのソフトウェアの組み合わせが整合しているか否かを判定する。
【発明の効果】
【0011】
一つの側面として、開示の技術は、複数のECUのソフトウェアを管理するリストを保持するECUが交換された場合であっても、複数のECUにおいて動作するソフトウェアの組み合わせを確認することができる、という効果を有する。
【図面の簡単な説明】
【0012】
【
図1】実施形態に係る車載システムの概略ブロック図である。
【
図2】ソフトウェアバージョンの整合について説明するための説明図である。
【
図3】マスタECUのリスト記憶部に格納されるリストを説明するための説明図である。
【
図4】スレイブECUのリスト記憶部に格納されるリストを説明するための説明図である。
【
図5】実施形態に係るマスタECUとして機能するコンピュータの概略構成を示すブロック図である。
【
図6】実施形態に係るスレイブECUとして機能するコンピュータの概略構成を示すブロック図である。
【
図7】本実施形態の情報処理ルーチンの一例を示すフローチャートである。
【
図8】本実施形態の動作整合処理ルーチンの一例を示すフローチャートである。
【
図9】縮退動作を行う際のリストの選択を説明するための説明図である。
【
図10】本実施形態を適用した場合の動作例を説明するための説明図である。
【
図11】本実施形態を適用した場合の動作例を説明するための説明図である。
【
図12】本実施形態を適用した場合の動作例を説明するための説明図である。
【
図13】本実施形態を適用した場合の動作例を説明するための説明図である。
【
図14】本実施形態を適用した場合の動作例を説明するための説明図である。
【
図15】本実施形態を適用した場合の動作例を説明するための説明図である。
【
図16】本実施形態を適用した場合の動作例を説明するための説明図である。
【
図17】本実施形態を適用した場合の動作例を説明するための説明図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【0014】
<実施形態の車載システム>
【0015】
図1に示すように、実施形態に係る車載システム1は、複数のECUを備えている。本実施形態においては、1つのマスタECUと2つのスレイブECUとによって、車載システムが実現されている場合を例に説明する。マスタECU10は、開示の技術の第1ECUの一例である。また、スレイブECU20及びスレイブECU30は、開示の技術の第2ECUの一例である。
【0016】
図1に示される例では、実施形態に係る車載システム1は、マスタECU10と、スレイブECU20と、スレイブECU30とを備える。マスタECU10と、スレイブECU20と、スレイブECU30とは、通信可能に接続されている。
【0017】
車両に搭載された複数のECUを動作させるには、各ECUのソフトウェアのバージョンが整合している必要がある。この場合、各ECUのソフトウェアのバージョンが整合しているか否かを確認するために、各ECUのソフトウェアのバージョンを識別するためのソフトウェア識別情報(以下、単に「ソフトウェアバージョン」と称する。)を用いることが考えられる。
【0018】
この場合、例えば、各ECUのソフトウェアバージョンが一括格納されたリストを用いることにより、各ECUのソフトウェアバージョンの管理が容易となる。具体的には、そのリストに記録された各ECUのソフトウェアバージョンを参照すれば、任意のECUが動作するソフトウェアのソフトウェアバージョンを確認することができる。
【0019】
例えば、リストがサーバへ格納されている場合は、車載システムが起動する際に、車両に搭載された複数のECUのうち少なくとも1つのECUがサーバと通信を行い、サーバに記憶されているリストを参照する。これにより、車両側において、車両に搭載された複数のECUのソフトウェアバージョンの確認が行われる。そして、複数のECUのソフトウェアバージョンが整合しており、車載システムを適切に動作させることが可能である場合には、各ECUの動作が開始される。
【0020】
しかし、各ECUが起動した際にサーバと通信できない場合もある。このような場合、車両に搭載されたECUはリストを参照することができないため、複数のECUのソフトウェアバージョンを確認することができない。この場合、車載システムは、車両に搭載された複数のECUの各々が、どのバージョンのソフトウェアで動作するのかを確認することができないため、起動することができない。
【0021】
このような事情により、車載システム内にリストを保持し、車両内において、各ECUのソフトウェアバージョンを確認することが考えられる。しかし、ECUは交換される場合がある。この場合、リストを保持しているECU(例えば、マスタECU)が交換されたときには、最新のリストが存在せず、各ECUのソフトウェアの整合性が確認できない。
【0022】
図2に、ソフトウェアバージョンの整合について説明するための説明図を示す。なお、図においては、ソフトウェアバージョンが「SW Ver」と表記されている。例えば、
図2に示されるように、リストには、複数のECUの各々のソフトウェアバージョンが記録されている。リストL1には、マスタECUのソフトウェアバージョンは「001」であり、ECUAのソフトウェアバージョンは「001」であり、ECUBのソフトウェアバージョンは「001」であることが記録されている。
【0023】
ここで、
図2のVに示されるように、ECUAのソフトウェアが更新され、ECUAのソフトウェアのバージョンが「002」となった場合を考える。この場合、リストL1はリストL2へ更新され、ECUAのソフトウェアバージョンは「001」から「002」へ書き換えられる。
【0024】
しかし、ECUAのソフトウェアの更新が行われた後に、
図2のEに示されるように、マスタECUが交換された場合、マスタECUの記憶部のリストは初期状態L3となる。この場合には、ECUAにおいて実際に動作するソフトウェアのソフトウェアバージョンと、リストL3に記録されたECUAのソフトウェアバージョンとが一致しない。
【0025】
このような場合には、実際に動作するソフトウェアバージョンとリストに記録されたソフトウェアバージョンとの間の整合性がとれないため、車載システムは、各ECUを動作させてよいかの判断をすることができない。
【0026】
なお、マスタECUが交換されるときに、新たなマスタECUに格納されるリストを最新のリストに更新する場合も考えられる。しかし、交換作業が行われる場所によっては、マスタECUが交換されるときにリストを最新のものに更新できない場合も考えられ、上述のような場合が発生すると考えられる。
【0027】
そこで、本実施形態の車載システム1は、外部サーバと通信をせずに、車両側において各ECUのソフトウェアバージョンの整合性を確認する。また、本実施形態の車載システム1は、各ECUのソフトウェアバージョンが記録されたリストを保持するECUが交換された場合であっても、外部サーバと通信をせずに、車両側において各ECUのソフトウェアバージョンの整合性を確認する。
【0028】
具体的には、本実施形態の車載システム1に備えられた複数のECUの各々は、各ECUのソフトウェアバージョンが記録されたリストを保持する。また、本実施形態の車載システム1のマスタECU10は、車載システム1が起動する際に、各ECUのソフトウェアバージョンを取得すると共に、各ECUが保持するリストを識別するための識別情報(以下、単に「リストバージョン」と称する。)も取得する。マスタECU10は、リストバージョンに基づいて、最新のリストを特定し、自らのリストを最新に更新する。
【0029】
そして、マスタECU10は、最新のリストに記録されている各ECUのソフトウェアバージョンの組み合わせと、各ECUにおいて実際に動作するソフトウェアバージョンの組み合わせとが整合しているか否かを判定する。
【0030】
また、以下においては、各ECUのソフトウェアバージョンは「SW Ver XXX-YYY」と表記される。「XXX」は、他のECUに影響するソフトウェアのソフトウェアバージョンを表す。また、「YYY」は、他のECUに影響しないソフトウェアのソフトウェアバージョンを表す。本実施形態のリストは、ソフトウェアバージョンのうちの「XXX」のみが記録される。
【0031】
また、本実施形態のマスタECU10は、過去のリストを保持しているものとする。ただし、マスタECU10が保持可能なリストは有限とする。
【0032】
最新のリストに記録されているソフトウェアバージョンの組み合わせと、各ECUで実際に動作するソフトウェアバージョンの組み合わせとが一致していない場合、一致していないソフトウェアバージョンに対応するECUのソフトウェアを更新する必要がある。
【0033】
しかし、車両に搭載されたECUのソフトウェアの更新を行うためには、例えば、車載システム1と外部サーバとの間における通信処理を表すOver The Air(OTA)を行い、該当するソフトウェアを取得する必要がある。
【0034】
しかし、OTAによるソフトウェアの更新処理に時間がかかる場合がある。そこで、本実施形態の車載システム1のマスタECU10は、各ECUのソフトウェアバージョンに適合するリストを選択し、選択されたリストに記録されたソフトウェアバージョンによって各ECUを動作させるような制御処理を行う。これにより、ソフトウェアの更新が必要なECUが存在する場合であっても、OTAによるソフトウェアの更新処理を行わずに、車載システムの起動が実現される。
【0035】
以下、具体的に説明する。
【0036】
図1に示されるように、マスタECU10は、機能的には、リスト記憶部12と、処理部14と、通信部16と、を備えている。また、
図1に示されるように、スレイブECU20は、機能的には、リスト記憶部22と、処理部24と、通信部26と、を備えている。また、スレイブECU30は、機能的には、リスト記憶部32と、処理部34と、通信部36と、を備えている。
【0037】
[マスタECU]
【0038】
マスタECU10のリスト記憶部12には、マスタECU10とスレイブECU20とスレイブECU30の各々のソフトウェアバージョンが記録されたリストが格納されている。
【0039】
図3に、マスタECU10のリスト記憶部12に格納されるリストを説明するための説明図を示す。
図3に示されるように、マスタECU10のリスト記憶部12に格納されるリストには、マスタECU10が保持するリストのリストバージョンと、マスタECU10のソフトウェアバージョンとが対応付けられて格納されている。また、マスタECU10のリスト記憶部12に格納されるリストには、スレイブECU10のソフトウェアバージョンと、スレイブECU20のソフトウェアバージョンとが対応付けられて格納されている。
【0040】
例えば、
図3に示されるように、リストLm1には、リストLm1のリストバージョン「001」と、マスタECU10のソフトウェアバージョン「001」とが対応付けられて格納されている。また、リストLm1には、スレイブECU20のソフトウェアバージョン「001」と、スレイブECU30のソフトウェアバージョン「001」とが対応付けられて格納されている。
【0041】
なお、マスタECU10のリスト記憶部12には、古いリストも格納されている。このため、
図3に示されるように、リストLm3のリストバージョン「003」よりも古いリストバージョンである、リストバージョン「001」のリストLm1とリストバージョン「002」のリストLm2とが、マスタECU10のリスト記憶部12に格納される。過去のリストは、後述する処理において用いられる。
【0042】
マスタECU10の処理部14は各処理を行う。処理部14の詳細な処理については後述する。また、マスタECU10の通信部16は、スレイブECU20及びスレイブECU30との間で情報の送受信を行う。
【0043】
[スレイブECU]
【0044】
スレイブECU20のリスト記憶部22には、マスタECU10とスレイブECU20とスレイブECU30の各々のソフトウェアバージョンが記録されたリストが格納されている。
【0045】
図4に、スレイブECU20のリスト記憶部22に格納されるリストを説明するための説明図を示す。
図4に示されるように、スレイブECU20のリスト記憶部22に格納されるリストには、スレイブECU20が保持するリストのリストバージョン「002」と、マスタECU10のソフトウェアバージョン「001」と、が対応付けられて格納されている。また、スレイブECU20のリスト記憶部22に格納されるリストには、スレイブECU20のソフトウェアバージョン「002」と、スレイブECU30のソフトウェアバージョン「001」とが対応付けられて格納されている。
【0046】
なお、スレイブECU20のリスト記憶部22には、マスタECU10のリスト記憶部12と異なり、古いバージョンのリストの各々は格納されていない。
【0047】
スレイブECU20の処理部24は各処理を行う。処理部24の詳細な処理については後述する。また、スレイブECU20の通信部36は、マスタECU10及びスレイブECU30との間で情報の送受信を行う。
【0048】
スレイブECU30のリスト記憶部32には、スレイブECU20のリスト記憶部22と同様のリストが格納されている。また、スレイブECU30の処理部34、及びスレイブECU30の通信部36は、スレイブECU20の各部と同様の機能を有するため、説明を省略する。なお、リスト記憶部12、リスト記憶部22、及びリスト記憶部32は、開示の技術の記憶部の一例である。
【0049】
車載システム1におけるマスタECU10は、例えば、
図5に示すコンピュータ50で実現することができる。コンピュータ50はCPU51、一時記憶領域としてのメモリ52、及び不揮発性の記憶部53を備える。また、コンピュータ50は、入出力装置が接続される入出力interface(I/F)54、及び記録媒体59に対するデータの読み込み及び書き込みを制御するread/write(R/W)部55を備える。また、コンピュータ50は、インターネット等のネットワークに接続されるネットワークI/F56を備える。CPU51、メモリ52、記憶部53、入出力I/F54、R/W部55、及びネットワークI/F56は、バス57を介して互いに接続される。
【0050】
記憶部53は、Hard Disk Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部53には、コンピュータ50を車載システム1のマスタECU10として機能させるための情報処理プログラム60が記憶されている。情報処理プログラム60は、処理プロセス61と、通信プロセス62とを有する。記憶領域67には、リスト記憶部12を構成する情報が記憶される。
【0051】
CPU51は、情報処理プログラム60を記憶部53から読み出してメモリ52に展開し、情報処理プログラム60が有するプロセスを順次実行する。CPU51は、処理プロセス61を実行することで、
図1に示す処理部14として動作する。また、CPU51は、通信プロセス62を実行することで、
図1に示す通信部16として動作する。また、CPU51は、リスト記憶領域67から情報を読み出して、リスト記憶部12をメモリ52に展開する。これにより、情報処理プログラム60を実行したコンピュータ50が、車載システム1におけるマスタECU10として機能することになる。ソフトウェアである情報処理プログラム60を実行するCPU51はハードウェアである。
【0052】
なお、情報処理プログラム60により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit(ASIC)等で実現することも可能である。
【0053】
車載システム1における、スレイブECU20及びスレイブECU30は、例えば、
図6に示すコンピュータ80で実現することができる。コンピュータ80はCPU81、一時記憶領域としてのメモリ82、及び不揮発性の記憶部83を備える。また、コンピュータ80は、入出力装置が接続される入出力I/F84、及び記録媒体89に対するデータの読み込み及び書き込みを制御するR/W部85を備える。また、コンピュータ80は、インターネット等のネットワークに接続されるネットワークI/F86を備える。CPU81、メモリ82、記憶部83、入出力I/F84、R/W部85、及びネットワークI/F86は、バス87を介して互いに接続される。
【0054】
記憶部83は、HDD、SSD、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部83には、コンピュータ80を車載システム1のスレイブECU20及びスレイブECU30として機能させるための処理プログラム90が記憶されている。処理プログラム90は、処理プロセス91と、通信プロセス92とを有する。記憶領域97には、スレイブECU20のリスト記憶部22又はスレイブECU30のリスト記憶部32を構成する情報が記憶される。
【0055】
CPU81は、処理プログラム90を記憶部83から読み出してメモリ82に展開し、処理プログラム90が有するプロセスを順次実行する。CPU81は、処理プロセス91を実行することで、
図1に示す処理部24又は処理部34として動作する。また、CPU81は、通信プロセス92を実行することで、
図1に示す通信部26又は通信部36として動作する。また、CPU81は、リスト記憶領域97から情報を読み出して、リスト記憶部22又はリスト記憶部32をメモリ82に展開する。これにより、処理プログラム90を実行したコンピュータ80が、車載システム1におけるスレイブECU20及びスレイブECU30として機能することになる。ソフトウェアである処理プログラム90を実行するCPU81はハードウェアである。
【0056】
なお、処理プログラム90により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
【0057】
次に、本実施形態に係る車載システム1の作用について説明する。まず、車載システム1のマスタECU10は、車載システム1が起動する際に、
図7に示す情報処理ルーチンを実行する。
【0058】
ステップS100において、マスタECU10の処理部14は、複数のスレイブECU20及びスレイブECU30の各々において実際に動作するソフトウェアのソフトウェアバージョンを取得する。具体的には、マスタECU10の処理部14は、通信部16を介して、各スレイブECU20及びスレイブECU30から送信されたソフトウェアバージョンを受信する。なお、スレイブECU20及びスレイブECU30の各々のソフトウェアバージョンは、スレイブECU20及びスレイブECU30の各々のリスト記憶部のリストから読み出され、マスタECU10へ送信される。また、ステップS100において、マスタECU10の処理部14は、マスタECU10の所定の記憶部(図示省略)に記憶されている、マスタECU10で実際に動作するソフトウェアのソフトウェアバージョンを読み出す。
【0059】
また、ステップS100において、マスタECU10の処理部14は、複数のスレイブECU20及びスレイブECU30の各々のリスト記憶部に格納されたリストのリストバージョンを取得する。具体的には、マスタECU10の処理部14は、通信部16を介して各スレイブECU20及びスレイブECU30が保持するリストのリストバージョンを受信する。
【0060】
ステップS102において、マスタECU10の処理部14は、マスタECU10のリスト記憶部12に格納されている最新のリストのリストバージョンと、上記ステップS100で得られたリストバージョンの各々とを比較する。そして、マスタECU10の処理部14は、リストバージョンの比較結果に基づき、各リストのうちの新しい方のリストを特定する。具体的には、マスタECU10の処理部14は、各ECUが保持するリストの中から、最新のリストを特定する。
【0061】
ステップS104において、マスタECU10の処理部14は、上記ステップS102で得られた比較結果に基づいて、マスタECU10のリスト記憶部12に格納されているリストが最新であるか否かを判定する。マスタECU10のリスト記憶部12に格納されているリストが最新である場合には、ステップS112へ移行する。一方、マスタECU10のリスト記憶部12に格納されているリストが最新でない場合には、ステップS106へ移行する。
【0062】
ステップS106において、マスタECU10の処理部14は、上記ステップS1022で得られた比較結果に基づいて、最新のリストを保持しているECUに対して、リストを要求する要求信号を、通信部16を介して送信する。
【0063】
ステップS108において、マスタECU10の処理部14は、最新のリストを保持しているECUから送信された最新のリストを取得する。
【0064】
ステップS110において、マスタECU10の処理部14は、リスト記憶部12に格納されたリストを、上記ステップS120で取得された最新のリストで更新する。これにより、マスタECU10のリスト記憶部12に格納されているリストは最新のものとなる。
【0065】
ステップS112において、マスタECU10の処理部14は、リスト記憶部12の最新のリストに記録されている各ECUのソフトウェアバージョンの各々と、上記ステップS100で取得されたソフトウェアバージョンの各々との間の整合性を確認する。具体的には、マスタECU10の処理部14は、最新のリストに記録されている各ECUのソフトウェアバージョンの組み合わせと、上記ステップS100で得られた各ECUのソフトウェアバージョンの組み合わせとを比較する。そして、マスタECU10の処理部14は、最新のリストに記録されている各ECUのソフトウェアバージョンと、各ECUにおいて実際に動作するソフトウェアのソフトウェアバージョンとが整合しているか否かを判定する。
【0066】
ステップS114において、マスタECU10の処理部14は、最新のリストに記録されているソフトウェアバージョンの組み合わせと、上記ステップS100で得られたソフトウェアバージョンの組み合わせとが整合している場合には、処理を終了する。一方、マスタECU10の処理部14は、最新のリストに記録されているソフトウェアバージョンの組み合わせと、上記ステップS100で得られたソフトウェアバージョンの組み合わせとが整合していない場合には、ステップS116へ移行する。
【0067】
ステップS116において、マスタECU10の処理部14は、マスタECU10、スレイブECU20、又はスレイブECU30に対して、ソフトウェアの動作を整合させるための動作整合処理を行う。本ステップS116の処理が実行されるということは、最新のリストのソフトウェアバージョンと、各ECUにおいて実際に動作するソフトウェアのソフトウェアバージョンとが整合していないということになる。このため、各ECUにおいて実際に動作するソフトウェアが最新の状態ではなく、整合が取れていない状態であるため、ステップS116において、各ECUにおいて実際に動作するソフトウェアの整合を取るための処理が実行される。
【0068】
ステップS116は、
図8に示す動作整合処理ルーチンによって実現される。
【0069】
図8に示すステップS200において、マスタECU10の処理部14は、ユーザに対して、ECUのソフトウェアを更新するか否かに関する問い合わせ情報を提示する。そして、マスタECU10の処理部14は、ユーザから入力された、ECUのソフトウェアを更新するか否かを指示する指示情報を取得する。なお、指示情報は、ソフトウェアの更新を延期するか否かを示す指示情報であってもよい。
【0070】
ステップS202において、マスタECU10の処理部14は、上記ステップS200で取得された指示情報に基づき、ECUで動作するソフトウェアを更新するか否かを判定する。上記ステップS200で取得された指示情報が、ソフトウェアを更新する旨を表している場合には、ステップS204へ進む。一方、上記ステップS200で取得された指示情報が、ソフトウェアを更新しない旨を表している場合には、ステップS206へ進む。
【0071】
ステップS204において、マスタECU10の処理部14は、ソフトウェアの更新を指示する指示信号を、通信部16を介してソフトウェアを更新する対象のECUへ送信する。これにより、指示信号を受信したECUは、OTAによるソフトウェアの更新処理を実行する。なお、対象のECUのリスト記憶部に記憶されるリストは、当該ECUのソフトウェアが更新された場合に更新される。
【0072】
また、ステップS204において、マスタECU10の処理部14は、マスタECU10のソフトウェアバージョンが、最新のリストに記録されているソフトウェアバージョンよりも古いことを示す場合、マスタECU10自身のソフトウェアの更新を行う。
【0073】
ステップS206において、マスタECU10の処理部14は、各ECUの動作が可能なソフトウェアバージョンが記録されているリストを選択する。
【0074】
例えば、
図9に示されるように、マスタECU10のリスト記憶部12に格納されている、最新のリストがリストLmであったとする。最新のリストLmに記録されている各ECUのソフトウェアバージョンの各々は、マスタECU10のソフトウェアバージョンが「001」、スレイブECU20のソフトウェアバージョンが「002」、スレイブECU30のソフトウェアバージョンが「002」である。スレイブECU20が保持しているリストLs20に記録されている各ECUのソフトウェアバージョンの各々は、リストLmと同様である。
【0075】
一方で、スレイブECU30が保持しているリストLs30は、各ECUのソフトウェアバージョンは「001」である。このため、スレイブECU30は、OTAによるソフトウェアの更新処理を実行する必要があるが、ユーザからの指示情報により、ソフトウェアの更新処理が延期されたとする。
【0076】
この場合、マスタECU10は、リスト記憶部12に格納されている過去のリストから、例えば、リストLcを選択する。リストLcは、スレイブECU30が動作可能なソフトウェアバージョン「001」が記録されている。また、リストLcは、スレイブECU30が動作可能なソフトウェアバージョン「001」が記録されているリストの中で最も新しいリストである。
【0077】
そして、マスタECU10は、選択されたリストに記録されている、ソフトウェアバージョンの組み合わせとなるように、該当するソフトウェアバージョン相当の動作を指示する指示信号を対象のECUへ出力する。
【0078】
具体的には、ステップS208において、マスタECU10の処理部14は、上記ステップS206で選択されたリストに記録されたソフトウェアバージョンを含む指示信号を、対象となるECUへ送信する。これにより、ソフトウェアバージョンを含む指示信号を受信したECUは、ソフトウェアの更新処理をせずに、古いバージョンのソフトウェアで動作する。
【0079】
例えば、マスタECU10は、スレイブECU20で動作するソフトウェアのソフトウェアバージョンを「002」から「001」へとするような指示信号をスレイブECU20へ出力する。そして、マスタECU10はソフトウェアバージョン「002」、スレイブECU20はソフトウェアバージョン「001」によって縮退動作が行われる。
【0080】
次に、本実施形態の動作例について説明する。
【0081】
<動作例1>
【0082】
動作例1においては、マスタECU10が交換された場合について説明する。
図10に、動作例1を説明するための説明図を示す。
【0083】
図10に示されるように、初期状態においては、マスタECU10のソフトウェアバージョンは「001-001」である。なお、ソフトウェアバージョン「XXX-YYY」のうち、「XXX」のみが整合性を取る対象のソフトウェアバージョンであるため、以下、「XXX」のみをソフトウェアバージョンとして説明する。
【0084】
また、
図10に示されるように、初期状態においては、スレイブECU20のソフトウェアバージョンは「001」である。また、同様に、初期状態においては、スレイブECU30のソフトウェアバージョンは「001」である。
【0085】
初期状態の各ECUのソフトウェアバージョンは、L1-1として各ECUのリスト記憶部に格納されている。なお、L1-1のうちの1行が1つのリストを表している。例えば、ECU種別「マスタECU」のリスト記憶部12には、リストバージョン「001」、マスタECU10のソフトウェアバージョン「001」が格納されている。また、ECU種別「マスタECU」のリスト記憶部12には、スレイブECU20のソフトウェアバージョン「001」、及びスレイブECU30のソフトウェアバージョン「001」が格納されている。
【0086】
図10に示されるように、スレイブECU20のソフトウェアがバージョンアップV1によって更新され、ソフトウェアバージョンが「001」から「002」となった場合、各ECUが保持するリストの状態はL1-2となる。
図10のリストの状態L1-2に示されるように、リストバージョンは「001」から「002」となり、スレイブECU20のソフトウェアバージョンは「001」から「002」となる。
【0087】
次に、
図10に示されるように、マスタECU10が交換E1によって取換えられた場合、各ECUが保持するリストの状態はL1-3となる。この場合には、マスタECU10の保持するリストは、初期化される。具体的には、マスタECU10の保持するリストは、リストバージョン「001」、マスタECU10のソフトウェアバージョン「001」、スレイブECU20のソフトウェアバージョン「001」、スレイブECU30のソフトウェアバージョン「001」となる。そうすると、
図10のL1-3に示されるように、マスタECU10が保持するリストに記録されたソフトウェアバージョンと、スレイブECU20及びスレイブECU30のソフトウェアバージョンとが整合しなくなる。スレイブECU20が実際に動作するソフトウェアバージョンは「002」であるのに対し、マスタECU10は、スレイブECU20のソフトウェアバージョンは「001」と認識しているため、車載システム1を動作させることができない。
【0088】
このため、車載システム1が起動する際に、スレイブECU20及びスレイブECU30は、自身のECUにおいて実際に動作するソフトウェアの動作ソフトウェアバージョンと、自身が保持するリストのリストバージョンとを、マスタECUへ送信する。具体的には、上記
図7のステップS100において、実際に動作するソフトウェアのソフトウェアバージョンと、保持しているリストのリストバージョンとがマスタECU10へ送信される。
【0089】
具体的には、
図11に示されるような情報が、マスタECU10へ送信される。
図11に示されるように、スレイブECU20は、ソフトウェアバージョン「002」と、自身が保持するリストバージョン「002」とを、マスタECU10へ送信する。また、
図11に示されるように、スレイブECU30は、ソフトウェアバージョン「001」と、自身が保持するリストバージョン「002」とを、マスタECU10へ送信する。
【0090】
そして、上記
図7のステップS102において、マスタECU10は、自身が保持するリストのリストバージョンと、スレイブECU20及びスレイブECU30が保持するリストのリストバージョンとが異なることを認識する。また、マスタECU10は、自身が保持するリストは、スレイブECU20及びスレイブECU30が保持するリストよりも古いことを認識する。
【0091】
次に、マスタECU10は、上記
図7のステップS106において、最も新しいリストを保持しているECU(例えば、スレイブECU20又はスレイブECU30)へリストの送信を要求する要求信号を送信する。具体的には、マスタECU10は、最新のリストのリストバージョンを指定して、スレイブECU20又はスレイブECU30へ要求信号を送信する。
【0092】
そして、上記
図7のステップS108において、マスタECU10は、最新のリストを取得する。また、マスタECU10は、上記
図7のステップS110において、リスト記憶部12に格納されているリストを最新のリストで更新する。
【0093】
次に、マスタECU10は、上記
図7のステップS112において、リスト記憶部12に格納されている最新のリストに記録されたソフトウェアバージョンと、既に取得した各ECUのソフトウェアバージョンとの間の整合性を確認する。
【0094】
動作例1においては、マスタECU10のリストが、最新のリストに更新されるため、上記
図7のステップS112での判定結果は整合が取れていることになり、処理が終了する。
【0095】
<動作例2>
【0096】
動作例2においては、マスタECU10のソフトウェアの更新及びスレイブECU20のソフトウェアの更新が行われた後に、マスタECU10が交換された場合について説明する。
図12に、動作例2を説明するための説明図を示す。
【0097】
動作例2は、マスタECU10が交換され、新たなマスタECU10となった場合に、新たなマスタECU10において実際に動作するソフトウェアが古くなってしまった場合の動作例である。
【0098】
具体的には、新たなマスタECU10の動作ソフトウェアバージョンが、交換された古いマスタECU10の動作ソフトウェアバージョンよりも古いことを示している場合に、新たなマスタECU10は、実際に動作する古いソフトウェアを用いて縮退動作を行う。
【0099】
なお、ユーザによって、ソフトウェアの更新を延期する旨が選択された場合に、新たなマスタECU10の縮退動作が行われる。または、例えば、新たなマスタECU10は、新たなマスタECU10においてソフトウェアの更新を所定の時間内に行うことができないときに、実際に動作するソフトウェアを用いて縮退動作を行うようにしてもよい。
【0100】
図12に示されるように、初期状態においては、マスタECU10のソフトウェアバージョンは「001」である。また、初期状態においては、スレイブECU20のソフトウェアバージョンは「001」である。また、初期状態においては、スレイブECU30のソフトウェアバージョンは「001」である。初期状態の各ECUのソフトウェアバージョンは、L2-1として各ECUのリスト記憶部に格納されている。
【0101】
図12に示されるように、スレイブECU20のソフトウェアがバージョンアップV1によって更新され、ソフトウェアバージョンが「001」から「002」となる。また、マスタECU10のソフトウェアがバージョンアップV2によって更新され、ソフトウェアバージョンが「001」から「002」となる。このときのリストの状態はL2-2となる。
【0102】
次に、
図12に示されるように、マスタECU10の交換E1によって取換えられた場合、各ECUが保持するリストの状態はL2-3となる。
【0103】
この場合、
図12のL2-3に示されるように、マスタECU10が保持するリストのリストバージョンと、スレイブECU20及びスレイブECU30が保持するリストのリストバージョンとが整合しなくなる。また、マスタECU10において実際に動作するソフトウェアバージョンと、スレイブECU20及びスレイブECU30が保持するリストに記録されているマスタECU10のソフトウェアバージョンと、が異なる。このため、マスタECU10が保持するリストに記録されたソフトウェアバージョンと、スレイブECU20及びスレイブECU30のソフトウェアバージョンとが整合しなくなる。
【0104】
この場合には、上記
図7のステップS104において、マスタECU10が保持するリストのリストバージョンは、スレイブECU20及びスレイブECU30が保持するリストのリストバージョンに比べ古いということになる。
【0105】
このため、マスタECU10は、ステップS106からステップS110の処理によって、リスト記憶部12に記録されたリストを最新のものとする。
【0106】
そして、上記
図7のステップS112において、マスタECU10は、最新のリストに記録されたソフトウェアバージョンと、各ECUにおいて実際に動作するソフトウェアのソフトウェアバージョンとを比較する。この結果、マスタECU10において実際に動作するソフトウェアバージョンと、最新のリストに記録されている、マスタECU10のリストバージョンとは、整合していないことが判明する。
【0107】
このため、マスタECU10は、上記
図7のステップS116の処理を実行する。ここで、上記
図7のステップS116の処理の詳細を説明する。
【0108】
上記
図7のステップS116の処理を実現する上記
図8のステップS200において、マスタECU10は、OTAによる更新が必要である旨をユーザに提示する。そして、マスタECU10は、上記
図8のステップS200において、ソフトウェアの更新をするか否かを示す指示情報を、ユーザから取得する。
【0109】
そして、ユーザからの指示情報が、更新されたソフトウェアでの車載システム1の起動である場合は、上記
図8のステップS204において、OTAによるソフトウェアの更新指示が対象のECUへ送信される。そして、対象のECUにおいて、OTAによるソフトウェアの更新が実行される。
【0110】
一方、上記
図8のステップS202において、ユーザからの指示情報がソフトウェアの更新を延期する旨を表している場合には、上記ステップS206及び上記ステップS298において、車載システム1の縮退動作が行われる。
【0111】
例えば、マスタECU10が最も古いリストバージョンに対応するリストを特定し、そのリストに記録されているソフトウェアバージョンのソフトウェアでの動作を各ECUへ要求する。
【0112】
この場合には、マスタECU10は、
図8に示す上記ステップS206において、リスト記憶部12に記憶された過去のリストバージョンに基づいて、最も古いリストを選択する。そして、マスタECU10は、
図8に示す上記ステップS208において、選択されたリストに記録されたソフトウェアバージョンを、対象となるECUへ送信する。ソフトウェアバージョンを受信したECUは、受信したソフトウェアバージョンに対応するソフトウェアによって縮退動作を行う。
【0113】
ただし、この場合において、マスタECU10のリスト記憶部12に格納されているリストの中に、各ECUの動作に適合するリストがない場合には、対象となるECUに対して、OTAによるソフトウェアの更新を要求する。また、各ECUが、マスタECU10から要求されたソフトウェアバージョンに対応するソフトウェアで動作することができない場合も、同様にOTAによるソフトウェアの更新処理を実行する。
【0114】
動作例2においては、ユーザによってソフトウェアの更新を延期させる選択が行われると、マスタECU10は、リスト記憶部12に格納された過去のリストからリストを選択する。具体的には、マスタECU10は、自身を含む各ECUのソフトウェアバージョンと適合するリストを、リスト記憶部12に格納されているリストから選択する。
【0115】
上記
図12の例では、マスタECU10は、リストバージョン「001」に対応するリストを選択する。そして、マスタECU10は、選択されたリストの各ECUのソフトウェアバージョン「001」を、スレイブECU20及びスレイブECU30へ送信する。また、スレイブECU20及びスレイブECU30は、受信したソフトウェアバージョン「001」に対応するソフトウェアで縮退動作を行う。これにより、本来はソフトウェアバージョン「002」であるスレイブECU20が、リストバージョン「001」に対応するリストに記録されたソフトウェアバージョン「001」によって縮退動作する。
【0116】
<動作例3>
【0117】
動作例3においては、マスタECU10のソフトウェアの更新が行われた後に、マスタECU10が交換された場合について説明する。
図13に、動作例3を説明するための説明図を示す。
【0118】
図13に示されるように、初期状態においては、マスタECU10のソフトウェアバージョンは「001」である。また、初期状態においては、スレイブECU20のソフトウェアバージョンは「001」である。また、初期状態においては、スレイブECU30のソフトウェアバージョンは「001」である。初期状態の各ECUのソフトウェアバージョンは、L3-1として各ECUのリスト記憶部に格納されている。
【0119】
図13に示されるように、マスタECU10のソフトウェアがバージョンアップV2によって更新され、ソフトウェアバージョンが「001」から「002」となる。そして、各ECUが保持するリストの状態はL3-2となる。
【0120】
次に、
図13に示されるように、マスタECU10が交換E1によって取換えられた場合、マスタECU10のソフトウェアバージョンが「002」から「001」になる。そして、各ECUが保持するリストの状態はL3-3となる。
【0121】
この場合には、
図13のL3-3に示されるように、マスタECU10が保持するリストのリストバージョンと、スレイブECU20及びスレイブECU30が保持するリストのリストバージョンとが整合しなくなる。そのため、上記
図7に示すステップS106~ステップS110においてリストの更新が行われる。しかし、マスタECU10が保持するリストが更新されたとしても、マスタECU10のソフトウェアバージョンは「001」のままである。そこで、上記
図7に示すステップS116において、OTAによるマスタECU10のソフトウェアの更新、又は実際に動作可能なソフトウェアでの縮退動作が行われる。マスタECU10のソフトウェアバージョンが「001」から「002」に更新された場合には、各ECUが保持するリストの状態はL3-4となる。
【0122】
<動作例4>
【0123】
動作例4においては、マスタECU10が交換され、その交換によってマスタECU10のソフトウェアも更新された場合について説明する。
図14に、動作例4を説明するための説明図を示す。
【0124】
図14に示されるように、初期状態においては、マスタECU10のソフトウェアバージョンは「001」であり、スレイブECU20のソフトウェアバージョンは「001」であり、スレイブECU30のソフトウェアバージョンは「001」である。初期状態の各ECUのソフトウェアバージョンは、L4-1として各ECUのリスト記憶部に格納されている。
【0125】
図14に示されるように、マスタECU10の交換E2によって取換えられた場合、その交換によってマスタECU10のソフトウェアバージョンが「001」から「002」になる。そして、各ECUが保持するリストの状態はL4-2となる。
【0126】
図14に示されるリストの状態L4-2においては、マスタECU10のリスト記憶部12に格納されているリストも交換されている。このため、リストの状態L4-2においては、マスタECU10が保持するリストに記録されたマスタECU10のソフトウェアバージョン「002」と、各スレイブECUが保持するリストに記録されたマスタECU10のソフトウェアバージョン「001」とが整合しない。
【0127】
また、状態L4-2においては、マスタECU10が保持するリストに記録されたスレイブECU20のソフトウェアバージョン「002」と、各スレイブECUが保持するリストに記録されたスレイブECU20のソフトウェアバージョン「001」とが整合しない。
【0128】
この場合、上記
図8のステップS204において、マスタECU10は、スレイブECU20に対しソフトウェアの更新を指示する指示信号を送信する。そして、ソフトウェアの更新を指示する指示信号を受信したスレイブECU20は、OTAによるソフトウェア更新を行い、ソフトウェアバージョンを「001」から「002」へ更新する。また、同様に、マスタECU10は、スレイブECU30に対しソフトウェアの更新を指示する指示信号を送信する。そして、ソフトウェアの更新を指示する指示信号を受信したスレイブECU30は、OTAによるソフトウェア更新を行い、ソフトウェアバージョンを「001」から「002」へ更新する。これにより、各ECUが保持するリストの状態はL4-3となる。
【0129】
または、上記
図8に示すステップS200において、ユーザがソフトウェアの更新を延期した場合、マスタECU10は、リスト記憶部12に記録されている過去のリストから、各ECUの動作と適合するリストであるリストバージョン「001」のリストを選択する。そして、マスタECU10は、自身のソフトウェアのソフトウェアバージョンを「002」から「001」へ縮退させて動作を行う。このため、車載システムとしてはリストバージョン「001」に相当する動作が行われる。
【0130】
<動作例5>
【0131】
動作例5においては、スレイブECU20のソフトウェアが更新された後に、スレイブECU30が交換された場合について説明する。
図15に、動作例5を説明するための説明図を示す。
【0132】
図15に示されるように、初期状態の各ECUのソフトウェアバージョンは、L5-1として各ECUのリスト記憶部に格納されている。
【0133】
図15に示されるように、スレイブECU20のソフトウェアのバージョンアップV3が行われた場合、スレイブECU20のソフトウェアバージョンは「001」から「002」になる。そして、各ECUが保持するリストの状態はL5-2となる。
【0134】
次に、
図15に示されるように、スレイブECU30が交換E3によって取換えられた場合、スレイブECU30が保持するリストは初期化され、各ECUが保持するリストの状態はL5-3となる。
【0135】
この場合には、
図15のL5-3に示されるように、マスタECU10が保持するリストに記録されたスレイブECU30のソフトウェアバージョン「002」と、スレイブECU30のソフトウェアバージョン「001」とが整合しなくなる。
【0136】
このため、上記
図7に示すステップS112において、各ECUのソフトウェアバージョンが整合していないと判定され、ステップS116において動作整合処理が実行される。
【0137】
そして、上記
図8のステップS200において、ソフトウェアの更新をする旨の指示情報がユーザから入力された場合には、マスタECU10は、スレイブECU30に対しソフトウェアの更新を指示する指示信号を送信する。そして、ソフトウェアの更新を指示する指示信号を受信したスレイブECU30は、OTAによるソフトウェア更新を行い、ソフトウェアバージョンを「001」から「002」へ更新する。
【0138】
または、上記
図8に示すステップS200において、ユーザがソフトウェアの更新を延期した場合、マスタECU10は、リスト記憶部12に記録されている過去のリストから、各ECUの動作と適合するリストであるリストバージョン「001」のリストを選択する。そして、マスタECU10は、スレイブECU20に対しソフトウェアの縮退動作を指示する指示信号を送信する。また、スレイブECU20は、受信したソフトウェアバージョン「001」に対応するソフトウェアで縮退動作を行う。このため、車載システムとしてはリストバージョン「001」に相当する動作が行われる。
【0139】
<動作例6>
【0140】
動作例6においては、スレイブECU20のソフトウェアのうちの、他のECUに影響がないソフトウェアが更新された後に、マスタECU10が交換された場合について説明する。
図16に、動作例6を説明するための説明図を示す。
【0141】
図16に示されるように、初期状態の各ECUのリスト記憶部に記憶されたリストの各々の状態は、L6-1である。
【0142】
図16に示されるように、スレイブECU20のソフトウェアの更新V4が行われた場合、スレイブECU20のソフトウェアのうち他のECUに影響のないソフトウェアバージョンは「001」から「002」になる。リストに格納されるソフトウェアバージョンは、他のECUに影響があるソフトウェアのソフトウェアバージョンである。このため、ソフトウェアの更新V4によって各ECUが保持するリストの状態はL6-2となるが、この状態はL6-1と同一の状態である。
【0143】
次に、
図16に示されるように、交換E1によってマスタECU10が取換えられた場合、各ECUが保持するリストの状態はL6-3となる。この場合においても、マスタECU10のソフトウェアバージョンは「001」であるため、リストの状態L6-3は、L6-2及びL6-1と同様である。この場合には、各ECUのソフトウェアバージョンが整合しており、かつリストバージョンの不一致も発生しないこととなる。
【0144】
<動作例7>
【0145】
動作例7においては、スレイブECU20が交換され、かつその交換によりスレイブECU20が保持するリストが更新された場合について説明する。
図17に、動作例7を説明するための説明図を示す。
【0146】
図17に示されるように、初期状態の各ECUのリスト記憶部に記憶されたリストの各々の状態はL7-1である。
【0147】
図17に示されるように、スレイブECU20の交換E7が行われた場合、その交換E7によってスレイブECU20が保持するリストも更新される。この場合、スレイブECU20が保持するリストのリストバージョンは「001」から「002」へ更新される。また、スレイブECU20のソフトウェアのソフトウェアバージョンも「001」から「002」へ更新される。
【0148】
この場合には、上記
図7に示すステップS106~ステップS110の処理が実行され、マスタECU10のリスト記憶部12のリストは、スレイブECU20が保持する最新のリストであるリストバージョン「002」のリストによって更新される。これにより、各ECUのリスト記憶部に記憶されたリストの各々の状態はL7-3となる。具体的には、リストの各々の状態はL7-3に示されるように、マスタECU10が保持するリストのリストバージョンは「002」となり、そのリスト記録されているスレイブECU20のソフトウェアバージョンは「002」となる。
【0149】
この場合、マスタECU10及びスレイブECU20のリストバージョン「002」と、スレイブECU30のリストバージョン「001」とは一致しない。しかし、最新のリストバージョン「002」のリストにおける、スレイブECU30のソフトウェアバージョンは「001」であり、古いリストバージョン「001」のリストにおける、スレイブECU30のソフトウェアバージョンは「001」であり同一である。また、各ECUの実際のソフトウェアバージョンの組み合わせは、最新のリストに記録されたソフトウェアバージョンの組み合わせと一致しているため、マスタECU10は、ソフトウェアの更新は必要ないと判定する。このため、スレイブECU30が保持するリストの更新は行われずに処理が終了する。
【0150】
なお、車載システム1の全てのECUが交換され、古いソフトウェアバージョンの組み合わせで整合性が取れている場合もある。この場合は、通常のOTAによるソフトウェアの更新の確認時に、リストの同期も行われる。
【0151】
以上説明したように、実施形態に係る車載システムのマスタECUは、車載システム1が起動する際に、複数のスレイブECUの各々のソフトウェアバージョンと、複数のスレイブECUの各々のリスト記憶部に格納されたリストのリストバージョンとを取得する。そして、マスタECUは、マスタECUのリスト記憶部に格納されたリストバージョンと、スレイブECUの各々のリスト記憶部から取得したリストバージョンとを比較し、最新のリストを特定する。そして、マスタECUは、最新のリストに記録されている各ECUのソフトウェアバージョンの組み合わせと、複数のスレイブECUの各々のソフトウェアバージョン及びマスタECUのソフトウェアバージョンの組み合わせとを比較する。そして、マスタECUは、最新のリストに記録されたソフトウェアバージョンの組み合わせと、マスタECUのソフトウェア及び複数のスレイブECUの各々のソフトウェアの組み合わせが整合しているか否かを判定する。これにより、複数のECUのソフトウェアを管理するECUが交換された場合であっても、複数のECUにおいて動作するソフトウェアの組み合わせを確認することができる。
【0152】
また、本実施形態の車載システムによれば、車両側のシステムにおいてリストを保持することにより、車載システムを起動する際に外部サーバ等に問い合わせをしなくとも、各ECUのソフトウェアの整合性を取ることができる。このため、外部サーバと通信しなくとも、車両の動作についての確認することができる。
【0153】
また、車載システムが備える全てのECUがリストを保持することにより、マスタECUが交換され、かつ交換されたときにリストの更新を行えない環境であっても、他のスレイブECUが保持するリストによりソフトウェアの整合性を確認することができる。
【0154】
また、マスタECUが保持するリストを更新するのみで整合性が保たれるため、リストを更新するための外部サーバへの問い合わせを省略することができる。
【0155】
また、ソフトウェアバージョンの管理について、他のECUに影響するか否かによってソフトウェアバージョンを管理することにより、ECU内において閉じるソフトウェアのバージョンアップを行ったとしても、整合性の確認を簡易に行うことができる。
【0156】
なお、上記では、各プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記録媒体に記録された形態で提供することも可能である。
【0157】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【0158】
次に、各実施形態の変形例を説明する。
【0159】
上記実施形態においては、ソフトウェア識別情報の一例として、ソフトウェアバージョンを用いる場合を例に説明したが、これに限定されるものではない。例えば、ソフトウェアが作成された時刻の情報を、ソフトウェア識別情報として用いるようにしてもよい。
【0160】
また、上記実施形態においては、リスト識別情報の一例として、リストバージョンを用いる場合を例に説明したが、これに限定されるものではない。例えば、リストが作成された時刻の情報を、リスト識別情報として用いるようにしてもよい。
【0161】
以上の実施形態に関し、更に以下の付記を開示する。
【0162】
(付記1)
第1ECUと、第2ECUと、を含む複数のECUがネットワークを介して接続される車載システムにおいて、
前記第1ECUの記憶部及び前記第2ECUの記憶部には、前記複数のECUのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記第1ECUは、前記車載システムの起動に応じて、前記第1ECUの記憶部に格納されたリストの識別情報と、前記第2ECUの記憶部に格納された前記リストの識別情報と、を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のECUのソフトウェアの組み合わせが整合しているか否かを判定する、
車載システム。
【0163】
(付記2)
前記第1ECUが交換され、新たな前記第1ECUとなった場合に、新たな前記第1ECUのソフトウェアの前記ソフトウェアの識別情報が、交換された前記第1ECUのソフトウェアの前記ソフトウェアの識別情報よりも古いことを示しており、かつ新たな前記第1ECUのソフトウェアの更新を所定の時間内に行うことができない場合に、新たな前記第1ECUは、実際に動作するソフトウェアを用いて縮退動作を行う、
付記1に記載の車載システム。
【0164】
(付記3)
前記第1ECUは、前記第1ECUの記憶部に格納された前記リストの識別情報と、前記第2ECUの記憶部から取得した前記リストの識別情報とを比較した場合に、前記第1ECUの記憶部に格納された前記リストの識別情報が、前記第2ECUの記憶部から取得した前記リストの識別情報よりも古いことを示しているときに、前記第2ECUの各々の記憶部に記憶されている前記リストのうちの新しい方のリストによって、前記第1ECUの記憶部の前記リストを更新する、
付記1又は付記2に記載の車載システム。
【0165】
(付記4)
前記第1ECUは、前記第1ECU及び複数の前記第2ECUのソフトウェアの組み合わせが整合していない場合、新しい方のリストに記録されている、前記ソフトウェアの識別情報の組み合わせとなるように、ソフトウェアを更新する対象のECUへソフトウェアの更新を指示する指示信号を出力する、
付記1~付記3の何れか1項に記載の車載システム。
【0166】
(付記5)
前記第2ECUの記憶部に記憶される前記リストは、前記第2ECUのソフトウェアが更新された場合に更新される、
付記1~付記4の何れか1項に記載の車載システム。
【0167】
(付記6)
前記第1ECUは、前記第1ECUのソフトウェアの前記ソフトウェアの識別情報と、新しい方のリストに記録されている、前記第1ECUのソフトウェアの前記ソフトウェアの識別情報と、を比較し、前記第1ECUのソフトウェアの前記ソフトウェアの識別情報が、新しい方の前記リストに記録されている前記ソフトウェアの識別情報よりも古いことを示す場合、前記第1ECUのソフトウェアの更新を行う、
付記1~付記5の何れか1項に記載の車載システム。
【0168】
(付記7)
前記ソフトウェアの識別情報は、ソフトウェアのバージョンを表す情報又はソフトウェアが作成された時刻を表す情報であり、
前記リストの識別情報は、リストのバージョンを表す情報又はリストが作成された時刻を表す情報である、
付記1~付記6の何れか1項に記載の車載システム。
【0169】
(付記8)
複数のECUがネットワークを介して接続される車載システムにおいて、
前記ECUの記憶部には、前記ECUのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記車載システムの起動に応じて、前記ECUの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のECUのソフトウェアの組み合わせが整合しているか否かを判定する処理部
を備えるECU。
【0170】
(付記9)
複数のECUがネットワークを介して接続される車載システムにおいて、
前記ECUの記憶部には、前記ECUのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記車載システムの起動に応じて、前記ECUの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のECUのソフトウェアの組み合わせが整合しているか否かを判定する
処理をコンピュータに実行させる情報処理方法。
【0171】
(付記10)
複数のECUがネットワークを介して接続される車載システムにおいて、
前記ECUの記憶部には、前記ECUのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記車載システムの起動に応じて、前記ECUの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のECUのソフトウェアの組み合わせが整合しているか否かを判定する
処理をコンピュータに実行させるためのプログラム。
【0172】
(付記11)
複数のECUがネットワークを介して接続される車載システムにおいて、
前記ECUの記憶部には、前記ECUのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記車載システムの起動に応じて、前記ECUの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のECUのソフトウェアの組み合わせが整合しているか否かを判定する
処理をコンピュータに実行させるためのプログラムを記憶した記憶媒体。
【符号の説明】
【0173】
1 車載システム
12,22,32 リスト記憶部
14,24,34 処理部
16,26,36 通信部
50 コンピュータ
51 CPU
52 メモリ
53 記憶部
59 記録媒体
60 情報処理プログラム
61 処理プロセス
62 通信プロセス
67 記憶領域