(57)【要約】【課題】複数のＥＣＵのソフトウェアを管理するリストを保持するＥＣＵが交換された場合であっても、複数のＥＣＵにおいて動作するソフトウェアの組み合わせを確認することができるようにする。【解決手段】マスタＥＣＵは、車載システムの起動に応じて、各ＥＣＵの記憶部に格納されたリストの識別情報を比較し、リストのうちの新しい方のリストを特定する。そして、マスタＥＣＵは、特定されたリストに記録されているソフトウェアの識別情報の組み合わせを用いて、複数のＥＣＵの各々のソフトウェアの組み合わせが整合しているか否かを判定する。【選択図】図１０
2020123253.tif 000002
【特許請求の範囲】
【請求項１】
第１ＥＣＵと、第２ＥＣＵと、を含む複数のＥＣＵがネットワークを介して接続される車載システムにおいて、
前記第１ＥＣＵの記憶部及び前記第２ＥＣＵの記憶部には、前記複数のＥＣＵのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記第１ＥＣＵは、前記車載システムの起動に応じて、前記第１ＥＣＵの記憶部に格納されたリストの識別情報と、前記第２ＥＣＵの記憶部に格納された前記リストの識別情報と、を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のＥＣＵのソフトウェアの組み合わせが整合しているか否かを判定する、
車載システム。
【請求項２】
前記第１ＥＣＵが交換され、新たな前記第１ＥＣＵとなった場合に、新たな前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報が、交換された前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報よりも古いことを示しており、かつ新たな前記第１ＥＣＵのソフトウェアの更新を所定の時間内に行うことができない場合に、新たな前記第１ＥＣＵは、実際に動作するソフトウェアを用いて縮退動作を行う、
請求項１に記載の車載システム。
【請求項３】
前記第１ＥＣＵは、前記第１ＥＣＵの記憶部に格納された前記リストの識別情報と、前記第２ＥＣＵの記憶部から取得した前記リストの識別情報とを比較した場合に、前記第１ＥＣＵの記憶部に格納された前記リストの識別情報が、前記第２ＥＣＵの記憶部から取得した前記リストの識別情報よりも古いことを示しているときに、前記第２ＥＣＵの各々の記憶部に記憶されている前記リストのうちの新しい方のリストによって、前記第１ＥＣＵの記憶部の前記リストを更新する、
請求項１又は請求項２に記載の車載システム。
【請求項４】
前記第１ＥＣＵは、前記第１ＥＣＵ及び複数の前記第２ＥＣＵのソフトウェアの組み合わせが整合していない場合、新しい方のリストに記録されている、前記ソフトウェアの識別情報の組み合わせとなるように、ソフトウェアを更新する対象のＥＣＵへソフトウェアの更新を指示する指示信号を出力する、
請求項１〜請求項３の何れか１項に記載の車載システム。
【請求項５】
前記第２ＥＣＵの記憶部に記憶される前記リストは、前記第２ＥＣＵのソフトウェアが更新された場合に更新される、
請求項１〜請求項４の何れか１項に記載の車載システム。
【請求項６】
前記第１ＥＣＵは、前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報と、新しい方のリストに記録されている、前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報と、を比較し、前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報が、新しい方の前記リストに記録されている前記ソフトウェアの識別情報よりも古いことを示す場合、前記第１ＥＣＵのソフトウェアの更新を行う、
請求項１〜請求項５の何れか１項に記載の車載システム。
【請求項７】
前記ソフトウェアの識別情報は、ソフトウェアのバージョンを表す情報又はソフトウェアが作成された時刻を表す情報であり、
前記リストの識別情報は、リストのバージョンを表す情報又はリストが作成された時刻を表す情報である、
請求項１〜請求項６の何れか１項に記載の車載システム。
【請求項８】
複数のＥＣＵがネットワークを介して接続される車載システムにおいて、
前記ＥＣＵの記憶部には、前記ＥＣＵのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記車載システムの起動に応じて、前記ＥＣＵの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のＥＣＵのソフトウェアの組み合わせが整合しているか否かを判定する処理部
を備えるＥＣＵ。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、車載システム及びＥＣＵに関する。
【背景技術】
【０００２】
従来、複数のファームウェアに従って動作する車両制御装置が知られている。この車両制御装置においては、サーバ等で管理されているバージョンリストと車両制御装置のバージョンの整合性確認を行い整合性が取れない場合、サーバからファームウェアをダウンロードする。具体的には、まず、この車両制御装置は、バージョン管理リストと収集したバージョンに不整合があるか否か判別する。そして、この車両制御装置は、実際のバージョンとバージョン管理リストに示される各々のファームウェアのバージョンとが異なると判別されたとき、実際のバージョンとバージョン管理リストに示される代表バージョンとをサーバに送信する。そして、この車両制御装置は、サーバから提供された更新用ファームウェアを用いて車両制御装置に搭載されたファームウェアを更新する。
【０００３】
また、ＥＣＵのプログラムのバージョンアップを行う際、バスで接続された他のＥＣＵのプログラムとバージョンの不整合によるＥＣＵの動作不良の発生を未然に防止するシステムが知られている。このシステムは、電子制御ユニットに搭載されている現プログラムから更新されるバージョンアッププログラムを保有するサーバを備える。電子制御ユニットのいずれか１つ又はサーバは、現プログラムとバージョンアッププログラム間の依存関係情報を保有し、依存関係情報からバージョンアッププログラムへの更新の可否を判断する。そして、電子制御ユニットのいずれか１つ又はサーバは、更新可と判断する場合にサーバに保有しているバージョンアッププログラムを電子制御ユニットに送信させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2013-250923号公報
【特許文献２】特開2009-053920号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＥＣＵ同士は互いに連携し動作しているため、各ＥＣＵのソフトウェアバージョンには依存関係がある。この依存関係を管理するマスタＥＣＵと自情報を通知するスレイブＥＣＵとで構成されることがある。
【０００６】
この場合には、例えば、各スレイブＥＣＵにおいて動作するソフトウェアのバージョンは、マスタＥＣＵによって管理され、マスタＥＣＵの記憶部には各スレイブＥＣＵのソフトウェアのバージョンが記録されたリストが格納される。
【０００７】
しかし、ＥＣＵが交換された場合には、各ＥＣＵのソフトウェアのバージョンが記録されたリストが初期化されてしまうときがある。これにより、マスタＥＣＵが認識する各スレイブＥＣＵのソフトウェアのバージョンと、各スレイブＥＣＵにおいて実際に動作するソフトウェアのバージョンとの間において齟齬が生じる。
【０００８】
このような場合には、マスタＥＣＵと各スレイブＥＣＵとの間の連携が適切に行われない可能性があるため、車載システムを動作させることができないときがある。そのため、ソフトウェアの識別情報が記録されたリストを保持するＥＣＵが交換された場合には、複数のＥＣＵにおいて実際に動作するソフトウェアの識別情報の組み合わせを確認する必要がある、という課題がある。
【０００９】
一つの側面では、開示の技術は、複数のＥＣＵのソフトウェアを管理するリストを保持するＥＣＵが交換された場合であっても、複数のＥＣＵにおいて動作するソフトウェアの組み合わせを確認することが目的である。
【課題を解決するための手段】
【００１０】
一つの実施態様では、開示の技術は、複数のＥＣＵがネットワークを介して接続される車載システムにおいて、前記ＥＣＵの記憶部には、前記ＥＣＵのソフトウェアの識別情報の組み合わせが記録されたリストが格納される。そして、ＥＣＵは、前記車載システムの起動に応じて、前記ＥＣＵの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定する。そして、ＥＣＵは、特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のＥＣＵのソフトウェアの組み合わせが整合しているか否かを判定する。
【発明の効果】
【００１１】
一つの側面として、開示の技術は、複数のＥＣＵのソフトウェアを管理するリストを保持するＥＣＵが交換された場合であっても、複数のＥＣＵにおいて動作するソフトウェアの組み合わせを確認することができる、という効果を有する。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る車載システムの概略ブロック図である。
【図２】ソフトウェアバージョンの整合について説明するための説明図である。
【図３】マスタＥＣＵのリスト記憶部に格納されるリストを説明するための説明図である。
【図４】スレイブＥＣＵのリスト記憶部に格納されるリストを説明するための説明図である。
【図５】実施形態に係るマスタＥＣＵとして機能するコンピュータの概略構成を示すブロック図である。
【図６】実施形態に係るスレイブＥＣＵとして機能するコンピュータの概略構成を示すブロック図である。
【図７】本実施形態の情報処理ルーチンの一例を示すフローチャートである。
【図８】本実施形態の動作整合処理ルーチンの一例を示すフローチャートである。
【図９】縮退動作を行う際のリストの選択を説明するための説明図である。
【図１０】本実施形態を適用した場合の動作例を説明するための説明図である。
【図１１】本実施形態を適用した場合の動作例を説明するための説明図である。
【図１２】本実施形態を適用した場合の動作例を説明するための説明図である。
【図１３】本実施形態を適用した場合の動作例を説明するための説明図である。
【図１４】本実施形態を適用した場合の動作例を説明するための説明図である。
【図１５】本実施形態を適用した場合の動作例を説明するための説明図である。
【図１６】本実施形態を適用した場合の動作例を説明するための説明図である。
【図１７】本実施形態を適用した場合の動作例を説明するための説明図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００１４】
＜実施形態の車載システム＞
【００１５】
図１に示すように、実施形態に係る車載システム１は、複数のＥＣＵを備えている。本実施形態においては、１つのマスタＥＣＵと２つのスレイブＥＣＵとによって、車載システムが実現されている場合を例に説明する。マスタＥＣＵ１０は、開示の技術の第１ＥＣＵの一例である。また、スレイブＥＣＵ２０及びスレイブＥＣＵ３０は、開示の技術の第２ＥＣＵの一例である。
【００１６】
図１に示される例では、実施形態に係る車載システム１は、マスタＥＣＵ１０と、スレイブＥＣＵ２０と、スレイブＥＣＵ３０とを備える。マスタＥＣＵ１０と、スレイブＥＣＵ２０と、スレイブＥＣＵ３０とは、通信可能に接続されている。
【００１７】
車両に搭載された複数のＥＣＵを動作させるには、各ＥＣＵのソフトウェアのバージョンが整合している必要がある。この場合、各ＥＣＵのソフトウェアのバージョンが整合しているか否かを確認するために、各ＥＣＵのソフトウェアのバージョンを識別するためのソフトウェア識別情報（以下、単に「ソフトウェアバージョン」と称する。）を用いることが考えられる。
【００１８】
この場合、例えば、各ＥＣＵのソフトウェアバージョンが一括格納されたリストを用いることにより、各ＥＣＵのソフトウェアバージョンの管理が容易となる。具体的には、そのリストに記録された各ＥＣＵのソフトウェアバージョンを参照すれば、任意のＥＣＵが動作するソフトウェアのソフトウェアバージョンを確認することができる。
【００１９】
例えば、リストがサーバへ格納されている場合は、車載システムが起動する際に、車両に搭載された複数のＥＣＵのうち少なくとも１つのＥＣＵがサーバと通信を行い、サーバに記憶されているリストを参照する。これにより、車両側において、車両に搭載された複数のＥＣＵのソフトウェアバージョンの確認が行われる。そして、複数のＥＣＵのソフトウェアバージョンが整合しており、車載システムを適切に動作させることが可能である場合には、各ＥＣＵの動作が開始される。
【００２０】
しかし、各ＥＣＵが起動した際にサーバと通信できない場合もある。このような場合、車両に搭載されたＥＣＵはリストを参照することができないため、複数のＥＣＵのソフトウェアバージョンを確認することができない。この場合、車載システムは、車両に搭載された複数のＥＣＵの各々が、どのバージョンのソフトウェアで動作するのかを確認することができないため、起動することができない。
【００２１】
このような事情により、車載システム内にリストを保持し、車両内において、各ＥＣＵのソフトウェアバージョンを確認することが考えられる。しかし、ＥＣＵは交換される場合がある。この場合、リストを保持しているＥＣＵ（例えば、マスタＥＣＵ）が交換されたときには、最新のリストが存在せず、各ＥＣＵのソフトウェアの整合性が確認できない。
【００２２】
図２に、ソフトウェアバージョンの整合について説明するための説明図を示す。なお、図においては、ソフトウェアバージョンが「SW Ver」と表記されている。例えば、図２に示されるように、リストには、複数のＥＣＵの各々のソフトウェアバージョンが記録されている。リストＬ１には、マスタＥＣＵのソフトウェアバージョンは「001」であり、ＥＣＵＡのソフトウェアバージョンは「001」であり、ＥＣＵＢのソフトウェアバージョンは「001」であることが記録されている。
【００２３】
ここで、図２のＶに示されるように、ＥＣＵＡのソフトウェアが更新され、ＥＣＵＡのソフトウェアのバージョンが「002」となった場合を考える。この場合、リストＬ１はリストＬ２へ更新され、ＥＣＵＡのソフトウェアバージョンは「001」から「002」へ書き換えられる。
【００２４】
しかし、ＥＣＵＡのソフトウェアの更新が行われた後に、図２のＥに示されるように、マスタＥＣＵが交換された場合、マスタＥＣＵの記憶部のリストは初期状態Ｌ３となる。この場合には、ＥＣＵＡにおいて実際に動作するソフトウェアのソフトウェアバージョンと、リストＬ３に記録されたＥＣＵＡのソフトウェアバージョンとが一致しない。
【００２５】
このような場合には、実際に動作するソフトウェアバージョンとリストに記録されたソフトウェアバージョンとの間の整合性がとれないため、車載システムは、各ＥＣＵを動作させてよいかの判断をすることができない。
【００２６】
なお、マスタＥＣＵが交換されるときに、新たなマスタＥＣＵに格納されるリストを最新のリストに更新する場合も考えられる。しかし、交換作業が行われる場所によっては、マスタＥＣＵが交換されるときにリストを最新のものに更新できない場合も考えられ、上述のような場合が発生すると考えられる。
【００２７】
そこで、本実施形態の車載システム１は、外部サーバと通信をせずに、車両側において各ＥＣＵのソフトウェアバージョンの整合性を確認する。また、本実施形態の車載システム１は、各ＥＣＵのソフトウェアバージョンが記録されたリストを保持するＥＣＵが交換された場合であっても、外部サーバと通信をせずに、車両側において各ＥＣＵのソフトウェアバージョンの整合性を確認する。
【００２８】
具体的には、本実施形態の車載システム１に備えられた複数のＥＣＵの各々は、各ＥＣＵのソフトウェアバージョンが記録されたリストを保持する。また、本実施形態の車載システム１のマスタＥＣＵ１０は、車載システム１が起動する際に、各ＥＣＵのソフトウェアバージョンを取得すると共に、各ＥＣＵが保持するリストを識別するための識別情報（以下、単に「リストバージョン」と称する。）も取得する。マスタＥＣＵ１０は、リストバージョンに基づいて、最新のリストを特定し、自らのリストを最新に更新する。
【００２９】
そして、マスタＥＣＵ１０は、最新のリストに記録されている各ＥＣＵのソフトウェアバージョンの組み合わせと、各ＥＣＵにおいて実際に動作するソフトウェアバージョンの組み合わせとが整合しているか否かを判定する。
【００３０】
また、以下においては、各ＥＣＵのソフトウェアバージョンは「SW Ver XXX-YYY」と表記される。「XXX」は、他のＥＣＵに影響するソフトウェアのソフトウェアバージョンを表す。また、「YYY」は、他のＥＣＵに影響しないソフトウェアのソフトウェアバージョンを表す。本実施形態のリストは、ソフトウェアバージョンのうちの「XXX」のみが記録される。
【００３１】
また、本実施形態のマスタＥＣＵ１０は、過去のリストを保持しているものとする。ただし、マスタＥＣＵ１０が保持可能なリストは有限とする。
【００３２】
最新のリストに記録されているソフトウェアバージョンの組み合わせと、各ＥＣＵで実際に動作するソフトウェアバージョンの組み合わせとが一致していない場合、一致していないソフトウェアバージョンに対応するＥＣＵのソフトウェアを更新する必要がある。
【００３３】
しかし、車両に搭載されたＥＣＵのソフトウェアの更新を行うためには、例えば、車載システム１と外部サーバとの間における通信処理を表すOver The Air(OTA)を行い、該当するソフトウェアを取得する必要がある。
【００３４】
しかし、OTAによるソフトウェアの更新処理に時間がかかる場合がある。そこで、本実施形態の車載システム１のマスタＥＣＵ１０は、各ＥＣＵのソフトウェアバージョンに適合するリストを選択し、選択されたリストに記録されたソフトウェアバージョンによって各ＥＣＵを動作させるような制御処理を行う。これにより、ソフトウェアの更新が必要なＥＣＵが存在する場合であっても、OTAによるソフトウェアの更新処理を行わずに、車載システムの起動が実現される。
【００３５】
以下、具体的に説明する。
【００３６】
図１に示されるように、マスタＥＣＵ１０は、機能的には、リスト記憶部１２と、処理部１４と、通信部１６と、を備えている。また、図１に示されるように、スレイブＥＣＵ２０は、機能的には、リスト記憶部２２と、処理部２４と、通信部２６と、を備えている。また、スレイブＥＣＵ３０は、機能的には、リスト記憶部３２と、処理部３４と、通信部３６と、を備えている。
【００３７】
［マスタＥＣＵ］
【００３８】
マスタＥＣＵ１０のリスト記憶部１２には、マスタＥＣＵ１０とスレイブＥＣＵ２０とスレイブＥＣＵ３０の各々のソフトウェアバージョンが記録されたリストが格納されている。
【００３９】
図３に、マスタＥＣＵ１０のリスト記憶部１２に格納されるリストを説明するための説明図を示す。図３に示されるように、マスタＥＣＵ１０のリスト記憶部１２に格納されるリストには、マスタＥＣＵ１０が保持するリストのリストバージョンと、マスタＥＣＵ１０のソフトウェアバージョンとが対応付けられて格納されている。また、マスタＥＣＵ１０のリスト記憶部１２に格納されるリストには、スレイブＥＣＵ１０のソフトウェアバージョンと、スレイブＥＣＵ２０のソフトウェアバージョンとが対応付けられて格納されている。
【００４０】
例えば、図３に示されるように、リストLm1には、リストLm1のリストバージョン「001」と、マスタＥＣＵ１０のソフトウェアバージョン「001」とが対応付けられて格納されている。また、リストLm1には、スレイブＥＣＵ２０のソフトウェアバージョン「001」と、スレイブＥＣＵ３０のソフトウェアバージョン「001」とが対応付けられて格納されている。
【００４１】
なお、マスタＥＣＵ１０のリスト記憶部１２には、古いリストも格納されている。このため、図３に示されるように、リストLm3のリストバージョン「003」よりも古いリストバージョンである、リストバージョン「001」のリストLm1とリストバージョン「002」のリストLm2とが、マスタＥＣＵ１０のリスト記憶部１２に格納される。過去のリストは、後述する処理において用いられる。
【００４２】
マスタＥＣＵ１０の処理部１４は各処理を行う。処理部１４の詳細な処理については後述する。また、マスタＥＣＵ１０の通信部１６は、スレイブＥＣＵ２０及びスレイブＥＣＵ３０との間で情報の送受信を行う。
【００４３】
［スレイブＥＣＵ］
【００４４】
スレイブＥＣＵ２０のリスト記憶部２２には、マスタＥＣＵ１０とスレイブＥＣＵ２０とスレイブＥＣＵ３０の各々のソフトウェアバージョンが記録されたリストが格納されている。
【００４５】
図４に、スレイブＥＣＵ２０のリスト記憶部２２に格納されるリストを説明するための説明図を示す。図４に示されるように、スレイブＥＣＵ２０のリスト記憶部２２に格納されるリストには、スレイブＥＣＵ２０が保持するリストのリストバージョン「002」と、マスタＥＣＵ１０のソフトウェアバージョン「001」と、が対応付けられて格納されている。また、スレイブＥＣＵ２０のリスト記憶部２２に格納されるリストには、スレイブＥＣＵ２０のソフトウェアバージョン「002」と、スレイブＥＣＵ３０のソフトウェアバージョン「001」とが対応付けられて格納されている。
【００４６】
なお、スレイブＥＣＵ２０のリスト記憶部２２には、マスタＥＣＵ１０のリスト記憶部１２と異なり、古いバージョンのリストの各々は格納されていない。
【００４７】
スレイブＥＣＵ２０の処理部２４は各処理を行う。処理部２４の詳細な処理については後述する。また、スレイブＥＣＵ２０の通信部３６は、マスタＥＣＵ１０及びスレイブＥＣＵ３０との間で情報の送受信を行う。
【００４８】
スレイブＥＣＵ３０のリスト記憶部３２には、スレイブＥＣＵ２０のリスト記憶部２２と同様のリストが格納されている。また、スレイブＥＣＵ３０の処理部３４、及びスレイブＥＣＵ３０の通信部３６は、スレイブＥＣＵ２０の各部と同様の機能を有するため、説明を省略する。なお、リスト記憶部１２、リスト記憶部２２、及びリスト記憶部３２は、開示の技術の記憶部の一例である。
【００４９】
車載システム１におけるマスタＥＣＵ１０は、例えば、図５に示すコンピュータ５０で実現することができる。コンピュータ５０はＣＰＵ５１、一時記憶領域としてのメモリ５２、及び不揮発性の記憶部５３を備える。また、コンピュータ５０は、入出力装置が接続される入出力interface（Ｉ／Ｆ）５４、及び記録媒体５９に対するデータの読み込み及び書き込みを制御するread/write（Ｒ／Ｗ）部５５を備える。また、コンピュータ５０は、インターネット等のネットワークに接続されるネットワークＩ／Ｆ５６を備える。ＣＰＵ５１、メモリ５２、記憶部５３、入出力Ｉ／Ｆ５４、Ｒ／Ｗ部５５、及びネットワークＩ／Ｆ５６は、バス５７を介して互いに接続される。
【００５０】
記憶部５３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部５３には、コンピュータ５０を車載システム１のマスタＥＣＵ１０として機能させるための情報処理プログラム６０が記憶されている。情報処理プログラム６０は、処理プロセス６１と、通信プロセス６２とを有する。記憶領域６７には、リスト記憶部１２を構成する情報が記憶される。
【００５１】
ＣＰＵ５１は、情報処理プログラム６０を記憶部５３から読み出してメモリ５２に展開し、情報処理プログラム６０が有するプロセスを順次実行する。ＣＰＵ５１は、処理プロセス６１を実行することで、図１に示す処理部１４として動作する。また、ＣＰＵ５１は、通信プロセス６２を実行することで、図１に示す通信部１６として動作する。また、ＣＰＵ５１は、リスト記憶領域６７から情報を読み出して、リスト記憶部１２をメモリ５２に展開する。これにより、情報処理プログラム６０を実行したコンピュータ５０が、車載システム１におけるマスタＥＣＵ１０として機能することになる。ソフトウェアである情報処理プログラム６０を実行するＣＰＵ５１はハードウェアである。
【００５２】
なお、情報処理プログラム６０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００５３】
車載システム１における、スレイブＥＣＵ２０及びスレイブＥＣＵ３０は、例えば、図６に示すコンピュータ８０で実現することができる。コンピュータ８０はＣＰＵ８１、一時記憶領域としてのメモリ８２、及び不揮発性の記憶部８３を備える。また、コンピュータ８０は、入出力装置が接続される入出力Ｉ／Ｆ８４、及び記録媒体８９に対するデータの読み込み及び書き込みを制御するＲ／Ｗ部８５を備える。また、コンピュータ８０は、インターネット等のネットワークに接続されるネットワークＩ／Ｆ８６を備える。ＣＰＵ８１、メモリ８２、記憶部８３、入出力Ｉ／Ｆ８４、Ｒ／Ｗ部８５、及びネットワークＩ／Ｆ８６は、バス８７を介して互いに接続される。
【００５４】
記憶部８３は、ＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部８３には、コンピュータ８０を車載システム１のスレイブＥＣＵ２０及びスレイブＥＣＵ３０として機能させるための処理プログラム９０が記憶されている。処理プログラム９０は、処理プロセス９１と、通信プロセス９２とを有する。記憶領域９７には、スレイブＥＣＵ２０のリスト記憶部２２又はスレイブＥＣＵ３０のリスト記憶部３２を構成する情報が記憶される。
【００５５】
ＣＰＵ８１は、処理プログラム９０を記憶部８３から読み出してメモリ８２に展開し、処理プログラム９０が有するプロセスを順次実行する。ＣＰＵ８１は、処理プロセス９１を実行することで、図１に示す処理部２４又は処理部３４として動作する。また、ＣＰＵ８１は、通信プロセス９２を実行することで、図１に示す通信部２６又は通信部３６として動作する。また、ＣＰＵ８１は、リスト記憶領域９７から情報を読み出して、リスト記憶部２２又はリスト記憶部３２をメモリ８２に展開する。これにより、処理プログラム９０を実行したコンピュータ８０が、車載システム１におけるスレイブＥＣＵ２０及びスレイブＥＣＵ３０として機能することになる。ソフトウェアである処理プログラム９０を実行するＣＰＵ８１はハードウェアである。
【００５６】
なお、処理プログラム９０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【００５７】
次に、本実施形態に係る車載システム１の作用について説明する。まず、車載システム１のマスタＥＣＵ１０は、車載システム１が起動する際に、図７に示す情報処理ルーチンを実行する。
【００５８】
ステップＳ１００において、マスタＥＣＵ１０の処理部１４は、複数のスレイブＥＣＵ２０及びスレイブＥＣＵ３０の各々において実際に動作するソフトウェアのソフトウェアバージョンを取得する。具体的には、マスタＥＣＵ１０の処理部１４は、通信部１６を介して、各スレイブＥＣＵ２０及びスレイブＥＣＵ３０から送信されたソフトウェアバージョンを受信する。なお、スレイブＥＣＵ２０及びスレイブＥＣＵ３０の各々のソフトウェアバージョンは、スレイブＥＣＵ２０及びスレイブＥＣＵ３０の各々のリスト記憶部のリストから読み出され、マスタＥＣＵ１０へ送信される。また、ステップＳ１００において、マスタＥＣＵ１０の処理部１４は、マスタＥＣＵ１０の所定の記憶部（図示省略）に記憶されている、マスタＥＣＵ１０で実際に動作するソフトウェアのソフトウェアバージョンを読み出す。
【００５９】
また、ステップＳ１００において、マスタＥＣＵ１０の処理部１４は、複数のスレイブＥＣＵ２０及びスレイブＥＣＵ３０の各々のリスト記憶部に格納されたリストのリストバージョンを取得する。具体的には、マスタＥＣＵ１０の処理部１４は、通信部１６を介して各スレイブＥＣＵ２０及びスレイブＥＣＵ３０が保持するリストのリストバージョンを受信する。
【００６０】
ステップＳ１０２において、マスタＥＣＵ１０の処理部１４は、マスタＥＣＵ１０のリスト記憶部１２に格納されている最新のリストのリストバージョンと、上記ステップＳ１００で得られたリストバージョンの各々とを比較する。そして、マスタＥＣＵ１０の処理部１４は、リストバージョンの比較結果に基づき、各リストのうちの新しい方のリストを特定する。具体的には、マスタＥＣＵ１０の処理部１４は、各ＥＣＵが保持するリストの中から、最新のリストを特定する。
【００６１】
ステップＳ１０４において、マスタＥＣＵ１０の処理部１４は、上記ステップＳ１０２で得られた比較結果に基づいて、マスタＥＣＵ１０のリスト記憶部１２に格納されているリストが最新であるか否かを判定する。マスタＥＣＵ１０のリスト記憶部１２に格納されているリストが最新である場合には、ステップＳ１１２へ移行する。一方、マスタＥＣＵ１０のリスト記憶部１２に格納されているリストが最新でない場合には、ステップＳ１０６へ移行する。
【００６２】
ステップＳ１０６において、マスタＥＣＵ１０の処理部１４は、上記ステップＳ１０２２で得られた比較結果に基づいて、最新のリストを保持しているＥＣＵに対して、リストを要求する要求信号を、通信部１６を介して送信する。
【００６３】
ステップＳ１０８において、マスタＥＣＵ１０の処理部１４は、最新のリストを保持しているＥＣＵから送信された最新のリストを取得する。
【００６４】
ステップＳ１１０において、マスタＥＣＵ１０の処理部１４は、リスト記憶部１２に格納されたリストを、上記ステップＳ１２０で取得された最新のリストで更新する。これにより、マスタＥＣＵ１０のリスト記憶部１２に格納されているリストは最新のものとなる。
【００６５】
ステップＳ１１２において、マスタＥＣＵ１０の処理部１４は、リスト記憶部１２の最新のリストに記録されている各ＥＣＵのソフトウェアバージョンの各々と、上記ステップＳ１００で取得されたソフトウェアバージョンの各々との間の整合性を確認する。具体的には、マスタＥＣＵ１０の処理部１４は、最新のリストに記録されている各ＥＣＵのソフトウェアバージョンの組み合わせと、上記ステップＳ１００で得られた各ＥＣＵのソフトウェアバージョンの組み合わせとを比較する。そして、マスタＥＣＵ１０の処理部１４は、最新のリストに記録されている各ＥＣＵのソフトウェアバージョンと、各ＥＣＵにおいて実際に動作するソフトウェアのソフトウェアバージョンとが整合しているか否かを判定する。
【００６６】
ステップＳ１１４において、マスタＥＣＵ１０の処理部１４は、最新のリストに記録されているソフトウェアバージョンの組み合わせと、上記ステップＳ１００で得られたソフトウェアバージョンの組み合わせとが整合している場合には、処理を終了する。一方、マスタＥＣＵ１０の処理部１４は、最新のリストに記録されているソフトウェアバージョンの組み合わせと、上記ステップＳ１００で得られたソフトウェアバージョンの組み合わせとが整合していない場合には、ステップＳ１１６へ移行する。
【００６７】
ステップＳ１１６において、マスタＥＣＵ１０の処理部１４は、マスタＥＣＵ１０、スレイブＥＣＵ２０、又はスレイブＥＣＵ３０に対して、ソフトウェアの動作を整合させるための動作整合処理を行う。本ステップＳ１１６の処理が実行されるということは、最新のリストのソフトウェアバージョンと、各ＥＣＵにおいて実際に動作するソフトウェアのソフトウェアバージョンとが整合していないということになる。このため、各ＥＣＵにおいて実際に動作するソフトウェアが最新の状態ではなく、整合が取れていない状態であるため、ステップＳ１１６において、各ＥＣＵにおいて実際に動作するソフトウェアの整合を取るための処理が実行される。
【００６８】
ステップＳ１１６は、図８に示す動作整合処理ルーチンによって実現される。
【００６９】
図８に示すステップＳ２００において、マスタＥＣＵ１０の処理部１４は、ユーザに対して、ＥＣＵのソフトウェアを更新するか否かに関する問い合わせ情報を提示する。そして、マスタＥＣＵ１０の処理部１４は、ユーザから入力された、ＥＣＵのソフトウェアを更新するか否かを指示する指示情報を取得する。なお、指示情報は、ソフトウェアの更新を延期するか否かを示す指示情報であってもよい。
【００７０】
ステップＳ２０２において、マスタＥＣＵ１０の処理部１４は、上記ステップＳ２００で取得された指示情報に基づき、ＥＣＵで動作するソフトウェアを更新するか否かを判定する。上記ステップＳ２００で取得された指示情報が、ソフトウェアを更新する旨を表している場合には、ステップＳ２０４へ進む。一方、上記ステップＳ２００で取得された指示情報が、ソフトウェアを更新しない旨を表している場合には、ステップＳ２０６へ進む。
【００７１】
ステップＳ２０４において、マスタＥＣＵ１０の処理部１４は、ソフトウェアの更新を指示する指示信号を、通信部１６を介してソフトウェアを更新する対象のＥＣＵへ送信する。これにより、指示信号を受信したＥＣＵは、OTAによるソフトウェアの更新処理を実行する。なお、対象のＥＣＵのリスト記憶部に記憶されるリストは、当該ＥＣＵのソフトウェアが更新された場合に更新される。
【００７２】
また、ステップＳ２０４において、マスタＥＣＵ１０の処理部１４は、マスタＥＣＵ１０のソフトウェアバージョンが、最新のリストに記録されているソフトウェアバージョンよりも古いことを示す場合、マスタＥＣＵ１０自身のソフトウェアの更新を行う。
【００７３】
ステップＳ２０６において、マスタＥＣＵ１０の処理部１４は、各ＥＣＵの動作が可能なソフトウェアバージョンが記録されているリストを選択する。
【００７４】
例えば、図９に示されるように、マスタＥＣＵ１０のリスト記憶部１２に格納されている、最新のリストがリストＬｍであったとする。最新のリストＬｍに記録されている各ＥＣＵのソフトウェアバージョンの各々は、マスタＥＣＵ１０のソフトウェアバージョンが「001」、スレイブＥＣＵ２０のソフトウェアバージョンが「002」、スレイブＥＣＵ３０のソフトウェアバージョンが「002」である。スレイブＥＣＵ２０が保持しているリストＬｓ２０に記録されている各ＥＣＵのソフトウェアバージョンの各々は、リストＬｍと同様である。
【００７５】
一方で、スレイブＥＣＵ３０が保持しているリストＬｓ３０は、各ＥＣＵのソフトウェアバージョンは「001」である。このため、スレイブＥＣＵ３０は、OTAによるソフトウェアの更新処理を実行する必要があるが、ユーザからの指示情報により、ソフトウェアの更新処理が延期されたとする。
【００７６】
この場合、マスタＥＣＵ１０は、リスト記憶部１２に格納されている過去のリストから、例えば、リストＬｃを選択する。リストＬｃは、スレイブＥＣＵ３０が動作可能なソフトウェアバージョン「001」が記録されている。また、リストＬｃは、スレイブＥＣＵ３０が動作可能なソフトウェアバージョン「001」が記録されているリストの中で最も新しいリストである。
【００７７】
そして、マスタＥＣＵ１０は、選択されたリストに記録されている、ソフトウェアバージョンの組み合わせとなるように、該当するソフトウェアバージョン相当の動作を指示する指示信号を対象のＥＣＵへ出力する。
【００７８】
具体的には、ステップＳ２０８において、マスタＥＣＵ１０の処理部１４は、上記ステップＳ２０６で選択されたリストに記録されたソフトウェアバージョンを含む指示信号を、対象となるＥＣＵへ送信する。これにより、ソフトウェアバージョンを含む指示信号を受信したＥＣＵは、ソフトウェアの更新処理をせずに、古いバージョンのソフトウェアで動作する。
【００７９】
例えば、マスタＥＣＵ１０は、スレイブＥＣＵ２０で動作するソフトウェアのソフトウェアバージョンを「002」から「001」へとするような指示信号をスレイブＥＣＵ２０へ出力する。そして、マスタＥＣＵ１０はソフトウェアバージョン「002」、スレイブＥＣＵ２０はソフトウェアバージョン「001」によって縮退動作が行われる。
【００８０】
次に、本実施形態の動作例について説明する。
【００８１】
＜動作例１＞
【００８２】
動作例１においては、マスタＥＣＵ１０が交換された場合について説明する。図１０に、動作例１を説明するための説明図を示す。
【００８３】
図１０に示されるように、初期状態においては、マスタＥＣＵ１０のソフトウェアバージョンは「001-001」である。なお、ソフトウェアバージョン「XXX-YYY」のうち、「XXX」のみが整合性を取る対象のソフトウェアバージョンであるため、以下、「XXX」のみをソフトウェアバージョンとして説明する。
【００８４】
また、図１０に示されるように、初期状態においては、スレイブＥＣＵ２０のソフトウェアバージョンは「001」である。また、同様に、初期状態においては、スレイブＥＣＵ３０のソフトウェアバージョンは「001」である。
【００８５】
初期状態の各ＥＣＵのソフトウェアバージョンは、L1-1として各ＥＣＵのリスト記憶部に格納されている。なお、L1-1のうちの１行が１つのリストを表している。例えば、ＥＣＵ種別「マスタＥＣＵ」のリスト記憶部１２には、リストバージョン「001」、マスタＥＣＵ１０のソフトウェアバージョン「001」が格納されている。また、ＥＣＵ種別「マスタＥＣＵ」のリスト記憶部１２には、スレイブＥＣＵ２０のソフトウェアバージョン「001」、及びスレイブＥＣＵ３０のソフトウェアバージョン「001」が格納されている。
【００８６】
図１０に示されるように、スレイブＥＣＵ２０のソフトウェアがバージョンアップV1によって更新され、ソフトウェアバージョンが「001」から「002」となった場合、各ＥＣＵが保持するリストの状態はL1-2となる。図１０のリストの状態L1-2に示されるように、リストバージョンは「001」から「002」となり、スレイブＥＣＵ２０のソフトウェアバージョンは「001」から「002」となる。
【００８７】
次に、図１０に示されるように、マスタＥＣＵ１０が交換E1によって取換えられた場合、各ＥＣＵが保持するリストの状態はL1-3となる。この場合には、マスタＥＣＵ１０の保持するリストは、初期化される。具体的には、マスタＥＣＵ１０の保持するリストは、リストバージョン「001」、マスタＥＣＵ１０のソフトウェアバージョン「001」、スレイブＥＣＵ２０のソフトウェアバージョン「001」、スレイブＥＣＵ３０のソフトウェアバージョン「001」となる。そうすると、図１０のL1-3に示されるように、マスタＥＣＵ１０が保持するリストに記録されたソフトウェアバージョンと、スレイブＥＣＵ２０及びスレイブＥＣＵ３０のソフトウェアバージョンとが整合しなくなる。スレイブＥＣＵ２０が実際に動作するソフトウェアバージョンは「002」であるのに対し、マスタＥＣＵ１０は、スレイブＥＣＵ２０のソフトウェアバージョンは「001」と認識しているため、車載システム１を動作させることができない。
【００８８】
このため、車載システム１が起動する際に、スレイブＥＣＵ２０及びスレイブＥＣＵ３０は、自身のＥＣＵにおいて実際に動作するソフトウェアの動作ソフトウェアバージョンと、自身が保持するリストのリストバージョンとを、マスタＥＣＵへ送信する。具体的には、上記図７のステップＳ１００において、実際に動作するソフトウェアのソフトウェアバージョンと、保持しているリストのリストバージョンとがマスタＥＣＵ１０へ送信される。
【００８９】
具体的には、図１１に示されるような情報が、マスタＥＣＵ１０へ送信される。図１１に示されるように、スレイブＥＣＵ２０は、ソフトウェアバージョン「002」と、自身が保持するリストバージョン「002」とを、マスタＥＣＵ１０へ送信する。また、図１１に示されるように、スレイブＥＣＵ３０は、ソフトウェアバージョン「001」と、自身が保持するリストバージョン「002」とを、マスタＥＣＵ１０へ送信する。
【００９０】
そして、上記図７のステップＳ１０２において、マスタＥＣＵ１０は、自身が保持するリストのリストバージョンと、スレイブＥＣＵ２０及びスレイブＥＣＵ３０が保持するリストのリストバージョンとが異なることを認識する。また、マスタＥＣＵ１０は、自身が保持するリストは、スレイブＥＣＵ２０及びスレイブＥＣＵ３０が保持するリストよりも古いことを認識する。
【００９１】
次に、マスタＥＣＵ１０は、上記図７のステップＳ１０６において、最も新しいリストを保持しているＥＣＵ（例えば、スレイブＥＣＵ２０又はスレイブＥＣＵ３０）へリストの送信を要求する要求信号を送信する。具体的には、マスタＥＣＵ１０は、最新のリストのリストバージョンを指定して、スレイブＥＣＵ２０又はスレイブＥＣＵ３０へ要求信号を送信する。
【００９２】
そして、上記図７のステップＳ１０８において、マスタＥＣＵ１０は、最新のリストを取得する。また、マスタＥＣＵ１０は、上記図７のステップＳ１１０において、リスト記憶部１２に格納されているリストを最新のリストで更新する。
【００９３】
次に、マスタＥＣＵ１０は、上記図７のステップＳ１１２において、リスト記憶部１２に格納されている最新のリストに記録されたソフトウェアバージョンと、既に取得した各ＥＣＵのソフトウェアバージョンとの間の整合性を確認する。
【００９４】
動作例１においては、マスタＥＣＵ１０のリストが、最新のリストに更新されるため、上記図７のステップＳ１１２での判定結果は整合が取れていることになり、処理が終了する。
【００９５】
＜動作例２＞
【００９６】
動作例２においては、マスタＥＣＵ１０のソフトウェアの更新及びスレイブＥＣＵ２０のソフトウェアの更新が行われた後に、マスタＥＣＵ１０が交換された場合について説明する。図１２に、動作例２を説明するための説明図を示す。
【００９７】
動作例２は、マスタＥＣＵ１０が交換され、新たなマスタＥＣＵ１０となった場合に、新たなマスタＥＣＵ１０において実際に動作するソフトウェアが古くなってしまった場合の動作例である。
【００９８】
具体的には、新たなマスタＥＣＵ１０の動作ソフトウェアバージョンが、交換された古いマスタＥＣＵ１０の動作ソフトウェアバージョンよりも古いことを示している場合に、新たなマスタＥＣＵ１０は、実際に動作する古いソフトウェアを用いて縮退動作を行う。
【００９９】
なお、ユーザによって、ソフトウェアの更新を延期する旨が選択された場合に、新たなマスタＥＣＵ１０の縮退動作が行われる。または、例えば、新たなマスタＥＣＵ１０は、新たなマスタＥＣＵ１０においてソフトウェアの更新を所定の時間内に行うことができないときに、実際に動作するソフトウェアを用いて縮退動作を行うようにしてもよい。
【０１００】
図１２に示されるように、初期状態においては、マスタＥＣＵ１０のソフトウェアバージョンは「001」である。また、初期状態においては、スレイブＥＣＵ２０のソフトウェアバージョンは「001」である。また、初期状態においては、スレイブＥＣＵ３０のソフトウェアバージョンは「001」である。初期状態の各ＥＣＵのソフトウェアバージョンは、L2-1として各ＥＣＵのリスト記憶部に格納されている。
【０１０１】
図１２に示されるように、スレイブＥＣＵ２０のソフトウェアがバージョンアップV1によって更新され、ソフトウェアバージョンが「001」から「002」となる。また、マスタＥＣＵ１０のソフトウェアがバージョンアップV2によって更新され、ソフトウェアバージョンが「001」から「002」となる。このときのリストの状態はL2-2となる。
【０１０２】
次に、図１２に示されるように、マスタＥＣＵ１０の交換E1によって取換えられた場合、各ＥＣＵが保持するリストの状態はL2-3となる。
【０１０３】
この場合、図１２のL2-3に示されるように、マスタＥＣＵ１０が保持するリストのリストバージョンと、スレイブＥＣＵ２０及びスレイブＥＣＵ３０が保持するリストのリストバージョンとが整合しなくなる。また、マスタＥＣＵ１０において実際に動作するソフトウェアバージョンと、スレイブＥＣＵ２０及びスレイブＥＣＵ３０が保持するリストに記録されているマスタＥＣＵ１０のソフトウェアバージョンと、が異なる。このため、マスタＥＣＵ１０が保持するリストに記録されたソフトウェアバージョンと、スレイブＥＣＵ２０及びスレイブＥＣＵ３０のソフトウェアバージョンとが整合しなくなる。
【０１０４】
この場合には、上記図７のステップＳ１０４において、マスタＥＣＵ１０が保持するリストのリストバージョンは、スレイブＥＣＵ２０及びスレイブＥＣＵ３０が保持するリストのリストバージョンに比べ古いということになる。
【０１０５】
このため、マスタＥＣＵ１０は、ステップＳ１０６からステップＳ１１０の処理によって、リスト記憶部１２に記録されたリストを最新のものとする。
【０１０６】
そして、上記図７のステップＳ１１２において、マスタＥＣＵ１０は、最新のリストに記録されたソフトウェアバージョンと、各ＥＣＵにおいて実際に動作するソフトウェアのソフトウェアバージョンとを比較する。この結果、マスタＥＣＵ１０において実際に動作するソフトウェアバージョンと、最新のリストに記録されている、マスタＥＣＵ１０のリストバージョンとは、整合していないことが判明する。
【０１０７】
このため、マスタＥＣＵ１０は、上記図７のステップＳ１１６の処理を実行する。ここで、上記図７のステップＳ１１６の処理の詳細を説明する。
【０１０８】
上記図７のステップＳ１１６の処理を実現する上記図８のステップＳ２００において、マスタＥＣＵ１０は、OTAによる更新が必要である旨をユーザに提示する。そして、マスタＥＣＵ１０は、上記図８のステップＳ２００において、ソフトウェアの更新をするか否かを示す指示情報を、ユーザから取得する。
【０１０９】
そして、ユーザからの指示情報が、更新されたソフトウェアでの車載システム１の起動である場合は、上記図８のステップＳ２０４において、OTAによるソフトウェアの更新指示が対象のＥＣＵへ送信される。そして、対象のＥＣＵにおいて、OTAによるソフトウェアの更新が実行される。
【０１１０】
一方、上記図８のステップＳ２０２において、ユーザからの指示情報がソフトウェアの更新を延期する旨を表している場合には、上記ステップＳ２０６及び上記ステップＳ２９８において、車載システム１の縮退動作が行われる。
【０１１１】
例えば、マスタＥＣＵ１０が最も古いリストバージョンに対応するリストを特定し、そのリストに記録されているソフトウェアバージョンのソフトウェアでの動作を各ＥＣＵへ要求する。
【０１１２】
この場合には、マスタＥＣＵ１０は、図８に示す上記ステップＳ２０６において、リスト記憶部１２に記憶された過去のリストバージョンに基づいて、最も古いリストを選択する。そして、マスタＥＣＵ１０は、図８に示す上記ステップＳ２０８において、選択されたリストに記録されたソフトウェアバージョンを、対象となるＥＣＵへ送信する。ソフトウェアバージョンを受信したＥＣＵは、受信したソフトウェアバージョンに対応するソフトウェアによって縮退動作を行う。
【０１１３】
ただし、この場合において、マスタＥＣＵ１０のリスト記憶部１２に格納されているリストの中に、各ＥＣＵの動作に適合するリストがない場合には、対象となるＥＣＵに対して、OTAによるソフトウェアの更新を要求する。また、各ＥＣＵが、マスタＥＣＵ１０から要求されたソフトウェアバージョンに対応するソフトウェアで動作することができない場合も、同様にOTAによるソフトウェアの更新処理を実行する。
【０１１４】
動作例２においては、ユーザによってソフトウェアの更新を延期させる選択が行われると、マスタＥＣＵ１０は、リスト記憶部１２に格納された過去のリストからリストを選択する。具体的には、マスタＥＣＵ１０は、自身を含む各ＥＣＵのソフトウェアバージョンと適合するリストを、リスト記憶部１２に格納されているリストから選択する。
【０１１５】
上記図１２の例では、マスタＥＣＵ１０は、リストバージョン「001」に対応するリストを選択する。そして、マスタＥＣＵ１０は、選択されたリストの各ＥＣＵのソフトウェアバージョン「001」を、スレイブＥＣＵ２０及びスレイブＥＣＵ３０へ送信する。また、スレイブＥＣＵ２０及びスレイブＥＣＵ３０は、受信したソフトウェアバージョン「001」に対応するソフトウェアで縮退動作を行う。これにより、本来はソフトウェアバージョン「002」であるスレイブＥＣＵ２０が、リストバージョン「001」に対応するリストに記録されたソフトウェアバージョン「001」によって縮退動作する。
【０１１６】
＜動作例３＞
【０１１７】
動作例３においては、マスタＥＣＵ１０のソフトウェアの更新が行われた後に、マスタＥＣＵ１０が交換された場合について説明する。図１３に、動作例３を説明するための説明図を示す。
【０１１８】
図１３に示されるように、初期状態においては、マスタＥＣＵ１０のソフトウェアバージョンは「001」である。また、初期状態においては、スレイブＥＣＵ２０のソフトウェアバージョンは「001」である。また、初期状態においては、スレイブＥＣＵ３０のソフトウェアバージョンは「001」である。初期状態の各ＥＣＵのソフトウェアバージョンは、L3-1として各ＥＣＵのリスト記憶部に格納されている。
【０１１９】
図１３に示されるように、マスタＥＣＵ１０のソフトウェアがバージョンアップV2によって更新され、ソフトウェアバージョンが「001」から「002」となる。そして、各ＥＣＵが保持するリストの状態はL3-2となる。
【０１２０】
次に、図１３に示されるように、マスタＥＣＵ１０が交換E1によって取換えられた場合、マスタＥＣＵ１０のソフトウェアバージョンが「002」から「001」になる。そして、各ＥＣＵが保持するリストの状態はL3-3となる。
【０１２１】
この場合には、図１３のL3-3に示されるように、マスタＥＣＵ１０が保持するリストのリストバージョンと、スレイブＥＣＵ２０及びスレイブＥＣＵ３０が保持するリストのリストバージョンとが整合しなくなる。そのため、上記図７に示すステップＳ１０６〜ステップＳ１１０においてリストの更新が行われる。しかし、マスタＥＣＵ１０が保持するリストが更新されたとしても、マスタＥＣＵ１０のソフトウェアバージョンは「001」のままである。そこで、上記図７に示すステップＳ１１６において、OTAによるマスタＥＣＵ１０のソフトウェアの更新、又は実際に動作可能なソフトウェアでの縮退動作が行われる。マスタＥＣＵ１０のソフトウェアバージョンが「001」から「002」に更新された場合には、各ＥＣＵが保持するリストの状態はL3-4となる。
【０１２２】
＜動作例４＞
【０１２３】
動作例４においては、マスタＥＣＵ１０が交換され、その交換によってマスタＥＣＵ１０のソフトウェアも更新された場合について説明する。図１４に、動作例４を説明するための説明図を示す。
【０１２４】
図１４に示されるように、初期状態においては、マスタＥＣＵ１０のソフトウェアバージョンは「001」であり、スレイブＥＣＵ２０のソフトウェアバージョンは「001」であり、スレイブＥＣＵ３０のソフトウェアバージョンは「001」である。初期状態の各ＥＣＵのソフトウェアバージョンは、L4-1として各ＥＣＵのリスト記憶部に格納されている。
【０１２５】
図１４に示されるように、マスタＥＣＵ１０の交換E2によって取換えられた場合、その交換によってマスタＥＣＵ１０のソフトウェアバージョンが「001」から「002」になる。そして、各ＥＣＵが保持するリストの状態はL4-2となる。
【０１２６】
図１４に示されるリストの状態L4-2においては、マスタＥＣＵ１０のリスト記憶部１２に格納されているリストも交換されている。このため、リストの状態L4-2においては、マスタＥＣＵ１０が保持するリストに記録されたマスタＥＣＵ１０のソフトウェアバージョン「002」と、各スレイブＥＣＵが保持するリストに記録されたマスタＥＣＵ１０のソフトウェアバージョン「001」とが整合しない。
【０１２７】
また、状態L4-2においては、マスタＥＣＵ１０が保持するリストに記録されたスレイブＥＣＵ２０のソフトウェアバージョン「002」と、各スレイブＥＣＵが保持するリストに記録されたスレイブＥＣＵ２０のソフトウェアバージョン「001」とが整合しない。
【０１２８】
この場合、上記図８のステップＳ２０４において、マスタＥＣＵ１０は、スレイブＥＣＵ２０に対しソフトウェアの更新を指示する指示信号を送信する。そして、ソフトウェアの更新を指示する指示信号を受信したスレイブＥＣＵ２０は、OTAによるソフトウェア更新を行い、ソフトウェアバージョンを「001」から「002」へ更新する。また、同様に、マスタＥＣＵ１０は、スレイブＥＣＵ３０に対しソフトウェアの更新を指示する指示信号を送信する。そして、ソフトウェアの更新を指示する指示信号を受信したスレイブＥＣＵ３０は、OTAによるソフトウェア更新を行い、ソフトウェアバージョンを「001」から「002」へ更新する。これにより、各ＥＣＵが保持するリストの状態はL4-3となる。
【０１２９】
または、上記図８に示すステップＳ２００において、ユーザがソフトウェアの更新を延期した場合、マスタＥＣＵ１０は、リスト記憶部１２に記録されている過去のリストから、各ＥＣＵの動作と適合するリストであるリストバージョン「001」のリストを選択する。そして、マスタＥＣＵ１０は、自身のソフトウェアのソフトウェアバージョンを「002」から「001」へ縮退させて動作を行う。このため、車載システムとしてはリストバージョン「001」に相当する動作が行われる。
【０１３０】
＜動作例５＞
【０１３１】
動作例５においては、スレイブＥＣＵ２０のソフトウェアが更新された後に、スレイブＥＣＵ３０が交換された場合について説明する。図１５に、動作例５を説明するための説明図を示す。
【０１３２】
図１５に示されるように、初期状態の各ＥＣＵのソフトウェアバージョンは、L5-1として各ＥＣＵのリスト記憶部に格納されている。
【０１３３】
図１５に示されるように、スレイブＥＣＵ２０のソフトウェアのバージョンアップV3が行われた場合、スレイブＥＣＵ２０のソフトウェアバージョンは「001」から「002」になる。そして、各ＥＣＵが保持するリストの状態はL5-2となる。
【０１３４】
次に、図１５に示されるように、スレイブＥＣＵ３０が交換E3によって取換えられた場合、スレイブＥＣＵ３０が保持するリストは初期化され、各ＥＣＵが保持するリストの状態はL5-3となる。
【０１３５】
この場合には、図１５のL5-3に示されるように、マスタＥＣＵ１０が保持するリストに記録されたスレイブＥＣＵ３０のソフトウェアバージョン「002」と、スレイブＥＣＵ３０のソフトウェアバージョン「001」とが整合しなくなる。
【０１３６】
このため、上記図７に示すステップＳ１１２において、各ＥＣＵのソフトウェアバージョンが整合していないと判定され、ステップＳ１１６において動作整合処理が実行される。
【０１３７】
そして、上記図８のステップＳ２００において、ソフトウェアの更新をする旨の指示情報がユーザから入力された場合には、マスタＥＣＵ１０は、スレイブＥＣＵ３０に対しソフトウェアの更新を指示する指示信号を送信する。そして、ソフトウェアの更新を指示する指示信号を受信したスレイブＥＣＵ３０は、OTAによるソフトウェア更新を行い、ソフトウェアバージョンを「001」から「002」へ更新する。
【０１３８】
または、上記図８に示すステップＳ２００において、ユーザがソフトウェアの更新を延期した場合、マスタＥＣＵ１０は、リスト記憶部１２に記録されている過去のリストから、各ＥＣＵの動作と適合するリストであるリストバージョン「001」のリストを選択する。そして、マスタＥＣＵ１０は、スレイブＥＣＵ２０に対しソフトウェアの縮退動作を指示する指示信号を送信する。また、スレイブＥＣＵ２０は、受信したソフトウェアバージョン「001」に対応するソフトウェアで縮退動作を行う。このため、車載システムとしてはリストバージョン「001」に相当する動作が行われる。
【０１３９】
＜動作例６＞
【０１４０】
動作例６においては、スレイブＥＣＵ２０のソフトウェアのうちの、他のＥＣＵに影響がないソフトウェアが更新された後に、マスタＥＣＵ１０が交換された場合について説明する。図１６に、動作例６を説明するための説明図を示す。
【０１４１】
図１６に示されるように、初期状態の各ＥＣＵのリスト記憶部に記憶されたリストの各々の状態は、L6-1である。
【０１４２】
図１６に示されるように、スレイブＥＣＵ２０のソフトウェアの更新V4が行われた場合、スレイブＥＣＵ２０のソフトウェアのうち他のＥＣＵに影響のないソフトウェアバージョンは「001」から「002」になる。リストに格納されるソフトウェアバージョンは、他のＥＣＵに影響があるソフトウェアのソフトウェアバージョンである。このため、ソフトウェアの更新V4によって各ＥＣＵが保持するリストの状態はL6-2となるが、この状態はL6-1と同一の状態である。
【０１４３】
次に、図１６に示されるように、交換E1によってマスタＥＣＵ１０が取換えられた場合、各ＥＣＵが保持するリストの状態はL6-3となる。この場合においても、マスタＥＣＵ１０のソフトウェアバージョンは「001」であるため、リストの状態L6-3は、L6-2及びL6-1と同様である。この場合には、各ＥＣＵのソフトウェアバージョンが整合しており、かつリストバージョンの不一致も発生しないこととなる。
【０１４４】
＜動作例７＞
【０１４５】
動作例７においては、スレイブＥＣＵ２０が交換され、かつその交換によりスレイブＥＣＵ２０が保持するリストが更新された場合について説明する。図１７に、動作例７を説明するための説明図を示す。
【０１４６】
図１７に示されるように、初期状態の各ＥＣＵのリスト記憶部に記憶されたリストの各々の状態はL7-1である。
【０１４７】
図１７に示されるように、スレイブＥＣＵ２０の交換E7が行われた場合、その交換E7によってスレイブＥＣＵ２０が保持するリストも更新される。この場合、スレイブＥＣＵ２０が保持するリストのリストバージョンは「001」から「002」へ更新される。また、スレイブＥＣＵ２０のソフトウェアのソフトウェアバージョンも「001」から「002」へ更新される。
【０１４８】
この場合には、上記図７に示すステップＳ１０６〜ステップＳ１１０の処理が実行され、マスタＥＣＵ１０のリスト記憶部１２のリストは、スレイブＥＣＵ２０が保持する最新のリストであるリストバージョン「002」のリストによって更新される。これにより、各ＥＣＵのリスト記憶部に記憶されたリストの各々の状態はL7-3となる。具体的には、リストの各々の状態はL7-3に示されるように、マスタＥＣＵ１０が保持するリストのリストバージョンは「002」となり、そのリスト記録されているスレイブＥＣＵ２０のソフトウェアバージョンは「002」となる。
【０１４９】
この場合、マスタＥＣＵ１０及びスレイブＥＣＵ２０のリストバージョン「002」と、スレイブＥＣＵ３０のリストバージョン「001」とは一致しない。しかし、最新のリストバージョン「002」のリストにおける、スレイブＥＣＵ３０のソフトウェアバージョンは「001」であり、古いリストバージョン「001」のリストにおける、スレイブＥＣＵ３０のソフトウェアバージョンは「001」であり同一である。また、各ＥＣＵの実際のソフトウェアバージョンの組み合わせは、最新のリストに記録されたソフトウェアバージョンの組み合わせと一致しているため、マスタＥＣＵ１０は、ソフトウェアの更新は必要ないと判定する。このため、スレイブＥＣＵ３０が保持するリストの更新は行われずに処理が終了する。
【０１５０】
なお、車載システム１の全てのＥＣＵが交換され、古いソフトウェアバージョンの組み合わせで整合性が取れている場合もある。この場合は、通常のOTAによるソフトウェアの更新の確認時に、リストの同期も行われる。
【０１５１】
以上説明したように、実施形態に係る車載システムのマスタＥＣＵは、車載システム１が起動する際に、複数のスレイブＥＣＵの各々のソフトウェアバージョンと、複数のスレイブＥＣＵの各々のリスト記憶部に格納されたリストのリストバージョンとを取得する。そして、マスタＥＣＵは、マスタＥＣＵのリスト記憶部に格納されたリストバージョンと、スレイブＥＣＵの各々のリスト記憶部から取得したリストバージョンとを比較し、最新のリストを特定する。そして、マスタＥＣＵは、最新のリストに記録されている各ＥＣＵのソフトウェアバージョンの組み合わせと、複数のスレイブＥＣＵの各々のソフトウェアバージョン及びマスタＥＣＵのソフトウェアバージョンの組み合わせとを比較する。そして、マスタＥＣＵは、最新のリストに記録されたソフトウェアバージョンの組み合わせと、マスタＥＣＵのソフトウェア及び複数のスレイブＥＣＵの各々のソフトウェアの組み合わせが整合しているか否かを判定する。これにより、複数のＥＣＵのソフトウェアを管理するＥＣＵが交換された場合であっても、複数のＥＣＵにおいて動作するソフトウェアの組み合わせを確認することができる。
【０１５２】
また、本実施形態の車載システムによれば、車両側のシステムにおいてリストを保持することにより、車載システムを起動する際に外部サーバ等に問い合わせをしなくとも、各ＥＣＵのソフトウェアの整合性を取ることができる。このため、外部サーバと通信しなくとも、車両の動作についての確認することができる。
【０１５３】
また、車載システムが備える全てのＥＣＵがリストを保持することにより、マスタＥＣＵが交換され、かつ交換されたときにリストの更新を行えない環境であっても、他のスレイブＥＣＵが保持するリストによりソフトウェアの整合性を確認することができる。
【０１５４】
また、マスタＥＣＵが保持するリストを更新するのみで整合性が保たれるため、リストを更新するための外部サーバへの問い合わせを省略することができる。
【０１５５】
また、ソフトウェアバージョンの管理について、他のＥＣＵに影響するか否かによってソフトウェアバージョンを管理することにより、ＥＣＵ内において閉じるソフトウェアのバージョンアップを行ったとしても、整合性の確認を簡易に行うことができる。
【０１５６】
なお、上記では、各プログラムが記憶部に予め記憶（インストール）されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記録媒体に記録された形態で提供することも可能である。
【０１５７】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【０１５８】
次に、各実施形態の変形例を説明する。
【０１５９】
上記実施形態においては、ソフトウェア識別情報の一例として、ソフトウェアバージョンを用いる場合を例に説明したが、これに限定されるものではない。例えば、ソフトウェアが作成された時刻の情報を、ソフトウェア識別情報として用いるようにしてもよい。
【０１６０】
また、上記実施形態においては、リスト識別情報の一例として、リストバージョンを用いる場合を例に説明したが、これに限定されるものではない。例えば、リストが作成された時刻の情報を、リスト識別情報として用いるようにしてもよい。
【０１６１】
以上の実施形態に関し、更に以下の付記を開示する。
【０１６２】
（付記１）
第１ＥＣＵと、第２ＥＣＵと、を含む複数のＥＣＵがネットワークを介して接続される車載システムにおいて、
前記第１ＥＣＵの記憶部及び前記第２ＥＣＵの記憶部には、前記複数のＥＣＵのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記第１ＥＣＵは、前記車載システムの起動に応じて、前記第１ＥＣＵの記憶部に格納されたリストの識別情報と、前記第２ＥＣＵの記憶部に格納された前記リストの識別情報と、を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のＥＣＵのソフトウェアの組み合わせが整合しているか否かを判定する、
車載システム。
【０１６３】
（付記２）
前記第１ＥＣＵが交換され、新たな前記第１ＥＣＵとなった場合に、新たな前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報が、交換された前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報よりも古いことを示しており、かつ新たな前記第１ＥＣＵのソフトウェアの更新を所定の時間内に行うことができない場合に、新たな前記第１ＥＣＵは、実際に動作するソフトウェアを用いて縮退動作を行う、
付記１に記載の車載システム。
【０１６４】
（付記３）
前記第１ＥＣＵは、前記第１ＥＣＵの記憶部に格納された前記リストの識別情報と、前記第２ＥＣＵの記憶部から取得した前記リストの識別情報とを比較した場合に、前記第１ＥＣＵの記憶部に格納された前記リストの識別情報が、前記第２ＥＣＵの記憶部から取得した前記リストの識別情報よりも古いことを示しているときに、前記第２ＥＣＵの各々の記憶部に記憶されている前記リストのうちの新しい方のリストによって、前記第１ＥＣＵの記憶部の前記リストを更新する、
付記１又は付記２に記載の車載システム。
【０１６５】
（付記４）
前記第１ＥＣＵは、前記第１ＥＣＵ及び複数の前記第２ＥＣＵのソフトウェアの組み合わせが整合していない場合、新しい方のリストに記録されている、前記ソフトウェアの識別情報の組み合わせとなるように、ソフトウェアを更新する対象のＥＣＵへソフトウェアの更新を指示する指示信号を出力する、
付記１〜付記３の何れか１項に記載の車載システム。
【０１６６】
（付記５）
前記第２ＥＣＵの記憶部に記憶される前記リストは、前記第２ＥＣＵのソフトウェアが更新された場合に更新される、
付記１〜付記４の何れか１項に記載の車載システム。
【０１６７】
（付記６）
前記第１ＥＣＵは、前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報と、新しい方のリストに記録されている、前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報と、を比較し、前記第１ＥＣＵのソフトウェアの前記ソフトウェアの識別情報が、新しい方の前記リストに記録されている前記ソフトウェアの識別情報よりも古いことを示す場合、前記第１ＥＣＵのソフトウェアの更新を行う、
付記１〜付記５の何れか１項に記載の車載システム。
【０１６８】
（付記７）
前記ソフトウェアの識別情報は、ソフトウェアのバージョンを表す情報又はソフトウェアが作成された時刻を表す情報であり、
前記リストの識別情報は、リストのバージョンを表す情報又はリストが作成された時刻を表す情報である、
付記１〜付記６の何れか１項に記載の車載システム。
【０１６９】
（付記８）
複数のＥＣＵがネットワークを介して接続される車載システムにおいて、
前記ＥＣＵの記憶部には、前記ＥＣＵのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記車載システムの起動に応じて、前記ＥＣＵの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のＥＣＵのソフトウェアの組み合わせが整合しているか否かを判定する処理部
を備えるＥＣＵ。
【０１７０】
（付記９）
複数のＥＣＵがネットワークを介して接続される車載システムにおいて、
前記ＥＣＵの記憶部には、前記ＥＣＵのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記車載システムの起動に応じて、前記ＥＣＵの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のＥＣＵのソフトウェアの組み合わせが整合しているか否かを判定する
処理をコンピュータに実行させる情報処理方法。
【０１７１】
（付記１０）
複数のＥＣＵがネットワークを介して接続される車載システムにおいて、
前記ＥＣＵの記憶部には、前記ＥＣＵのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記車載システムの起動に応じて、前記ＥＣＵの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のＥＣＵのソフトウェアの組み合わせが整合しているか否かを判定する
処理をコンピュータに実行させるためのプログラム。
【０１７２】
（付記１１）
複数のＥＣＵがネットワークを介して接続される車載システムにおいて、
前記ＥＣＵの記憶部には、前記ＥＣＵのソフトウェアの識別情報の組み合わせが記録されたリストが格納され、
前記車載システムの起動に応じて、前記ＥＣＵの記憶部に格納された前記リストの識別情報を比較し、前記リストのうちの新しい方のリストを特定し、
特定された前記リストに記録されている前記ソフトウェアの識別情報の組み合わせを用いて、前記複数のＥＣＵのソフトウェアの組み合わせが整合しているか否かを判定する
処理をコンピュータに実行させるためのプログラムを記憶した記憶媒体。
【符号の説明】
【０１７３】
１     車載システム
１２，２２，３２     リスト記憶部
１４，２４，３４     処理部
１６，２６，３６     通信部
５０   コンピュータ
５１   ＣＰＵ
５２   メモリ
５３   記憶部
５９   記録媒体
６０   情報処理プログラム
６１   処理プロセス
６２   通信プロセス
６７   記憶領域
【図１】
2020123253.tif 000003
【図２】
2020123253.tif 000004
【図３】
2020123253.tif 000005
【図４】
2020123253.tif 000006
【図５】
2020123253.tif 000007
【図６】
2020123253.tif 000008
【図７】
2020123253.tif 000009
【図８】
2020123253.tif 000010
【図９】
2020123253.tif 000011
【図１０】
2020123253.tif 000012
【図１１】
2020123253.tif 000013
【図１２】
2020123253.tif 000014
【図１３】
2020123253.tif 000015
【図１４】
2020123253.tif 000016
【図１５】
2020123253.tif 000017
【図１６】
2020123253.tif 000018
【図１７】
2020123253.tif 000019