(57)【要約】【課題】、起動又は再起動されるタイミングが異なる複数の電子制御装置が実行するプログラムを更新する更新システムにおいて、プログラムのバージョンの不整合を防止する。【解決手段】更新システムは、複数の電子制御装置と更新管理装置とを含み、更新管理装置は、複数の電子制御装置にプログラムの更新を要求する要求部と、複数の電子制御装置から通知される前記プログラムの更新結果を記憶する記憶部と、を有し、電子制御装置は、第１の記憶領域と、第２の記憶領域と、更新管理装置からの要求に応じて、第２の記憶領域に更新後のプログラムを記憶し、更新結果を更新管理装置に通知する更新部と、記憶部に記憶された更新結果が、複数の電子制御装置におけるプログラムの更新が完了したことを示す場合、第２の記憶領域に記憶した更新後のプログラムによる所定の制御を開始させる切替部と、を有する。【選択図】図３
2019084941.tif 000002
【特許請求の範囲】
【請求項１】
所定の制御を行う複数の電子制御装置と、前記複数の電子制御装置が実行するプログラムの更新を管理する更新管理装置とを含む更新システムであって、
前記更新管理装置は、
前記複数の電子制御装置にプログラムの更新を要求する要求部と、
前記複数の電子制御装置から通知される前記プログラムの更新結果を記憶する記憶部と、
を有し、
前記電子制御装置は、
更新前のプログラムを記憶する第１の記憶領域と、
更新後のプログラムを記憶する第２の記憶領域と、
前記更新管理装置からの要求に応じて、前記第２の記憶領域に前記更新後のプログラムを記憶し、前記更新結果を前記更新管理装置に通知する更新部と、
前記記憶部に記憶された前記更新結果が、前記複数の電子制御装置における前記プログラムの更新が完了したことを示す場合、前記第２の記憶領域に記憶した前記更新後のプログラムによる前記所定の制御を開始させる切替部と、
を有する、更新システム。
【請求項２】
前記更新管理装置は、前記記憶部に記憶された前記更新結果が、前記複数の電子制御装置における前記プログラムの更新が完了したことを示す場合、前記更新後のプログラムによる前記所定の制御の開始を要求する開始要求を、前記複数の電子制御装置に通知する切替制御部を有し、
前記切替部は、前記切替制御部から通知される前記開始要求に応じて、前記更新後のプログラムによる前記所定の制御を開始させる、請求項１に記載の更新システム。
【請求項３】
前記切替部は、前記更新管理装置から通知される前記開始要求を受付するまで、前記更新後のプログラムによる前記所定の制御を禁止する、請求項２に記載の更新システム。
【請求項４】
前記切替制御部は、前記記憶部に記憶された前記更新結果が、前記プログラムの更新が完了していない電子制御装置があることを示す場合、前記複数の電子制御装置に、前記更新前のプログラムによる前記所定の制御を要求する切替要求を通知し、
前記切替部は、前記切替制御部から前記切替要求を受付した場合、前記第１の記憶領域に記憶した前記更新前のプログラムを用いて前記所定の制御を実行させる、請求項２又は３に記載の更新システム。
【請求項５】
前記切替部は、前記電子制御装置が、前記更新後のプログラムを用いて再起動した後に、前記切替制御部から前記切替要求を受付した場合、前記第１の記憶領域に記憶した前記更新前のプログラムを用いて前記電子制御装置を再起動させる、請求項４に記載の更新システム。
【請求項６】
前記複数の電子制御装置は、
車両に搭載され、前記車両のイグニッション電源が供給される第１の電子制御装置と、
前記車両に搭載され、前記車両の常時供給電源が供給される第２の電子制御装置と、
を含む、請求項１乃至５のいずれか一項に記載の更新システム。
【請求項７】
前記第２の電子制御装置は、前記第２の記憶領域に前記更新後のプログラムを記憶した後の前記車両のイグニッションオンに応じて、前記更新後のプログラムを用いて前記第２の電子制御装置を再起動させる起動制御部を有する、請求項６に記載の更新システム。
【請求項８】
前記第１の電子制御装置、及び前記第２の電子制御装置は、前記第２の記憶領域に前記更新後のプログラムを記憶した後に、前記更新管理装置から通知される切替指示に応じて、前記更新後のプログラムを用いて、自装置を再起動させる起動制御部を有する、請求項６に記載の更新システム。
【請求項９】
所定の制御を行う複数の電子制御装置が実行するプログラムを更新する更新システムの前記電子制御装置であって、
更新前のプログラムを記憶する第１の記憶領域と、
更新後のプログラムを記憶する第２の記憶領域と、
前記更新システムからの要求に応じて、前記第２の記憶領域に前記更新後のプログラムを記憶し、更新結果を前記更新システムに通知する更新部と、
前記更新システムが管理する前記複数の電子制御装置の前記更新結果が、前記複数の電子制御装置における前記プログラムの更新が完了したことを示す場合、前記第２の記憶領域に記憶した前記更新後のプログラムによる前記所定の制御を開始させる切替部と、
を有する、電子制御装置。
【請求項１０】
更新前のプログラムを記憶する第１の記憶領域と、更新後のプログラムを記憶する第２の記憶領域とを有する複数の電子制御装置が実行するプログラムの更新を管理する更新管理装置であって、
前記複数の電子制御装置にプログラムの更新を要求する要求部と、
前記複数の電子制御装置から通知される前記プログラムの更新結果を記憶する記憶部と、
前記記憶部に記憶された前記更新結果が、前記複数の電子制御装置における前記プログラムの更新が完了したことを示す場合、前記更新後のプログラムによる所定の制御の開始を要求する開始要求を、前記複数の電子制御装置に通知する切替制御部と、
を有する、更新管理装置。
【請求項１１】
更新前のプログラムを記憶する第１の記憶領域と、更新後のプログラムを記憶する第２の記憶領域とを有する複数の電子制御装置と、前記複数の電子制御装置が実行するプログラムの更新を管理する更新管理装置とを含む更新システムにおける更新管理方法であって、
前記更新管理装置が、前記複数の電子制御装置にプログラムの更新を要求するステップと、
前記複数の電子制御装置の各々が、前記更新管理装置からの要求に応じて、前記第２の記憶領域に前記更新後のプログラムを記憶するステップと、
前記複数の電子制御装置の各々が、更新結果を前記更新管理装置に通知するステップと、
前記更新管理装置が、前記複数の電子制御装置から通知される前記プログラムの更新結果を記憶部に記憶するステップと、
前記記憶部に記憶された前記更新結果が、前記複数の電子制御装置における前記プログラムの更新が完了したことを示す場合、前記複数の電子制御装置の各々が、前記更新後のプログラムによる所定の制御を開始させるステップと、
を実行する、更新管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新システム、電子制御装置、更新管理装置、及び更新管理方法に関する。
【背景技術】
【０００２】
複数のコンピュータを含む計算機システムにおいて、複数のコンピュータ間におけるファームウェアのバージョンの不一致を防止する技術が知られている。
【０００３】
例えば、特許文献１には、計算機システムにおいて、２つのコンピュータに稼動系及び待機系の２つの記憶媒体を持たせ、システムの電源がオフされるときに、一方のコンピュータの待機系に記憶されたファームウェアを他方のコンピュータの待機系にロードする。また、計算機システムの電源がオンされるときに、２つのコンピュータの稼動系と待機系とを切替え、２つのコンピュータを待機系に記憶したファームウェアで起動させる。これにより、計算機システムの電源がオンされるまで、２つのコンピュータの稼働系と待機系との切替えが行われないので、２つのコンピュータにおけるファームウェアのバージョンの不一致を防止することができること等が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−８６１５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、自動車等の車両には、所定の制御を行う複数の電子制御装置が搭載されている。これらの電子制御装置は、例えば、イグニッション電源、常時供給電源、アクセサリ電源等、異なる電源系統に接続され、起動又は再起動されるタイミングが電子制御装置によって異なる。
【０００６】
特許文献１に開示された技術では、例えば、車両のように、起動又は再起動されるタイミングが異なる複数の電子制御装置を含むシステムにおいて、複数の電子制御装置が実行するプログラムを更新する際に、バージョンの不整合を防止することは困難である。
【０００７】
本発明の実施の形態は、上記の問題点に鑑みてなされたものであって、起動又は再起動されるタイミングが異なる複数の電子制御装置が実行するプログラムを更新する更新システムにおいて、プログラムのバージョンの不整合を防止する。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明の一実施形態に係る更新システムは、所定の制御を行う複数の電子制御装置と、前記複数の電子制御装置が実行するプログラムの更新を管理する更新管理装置とを含む更新システムであって、前記更新管理装置は、前記複数の電子制御装置にプログラムの更新を要求する要求部と、前記複数の電子制御装置から通知される前記プログラムの更新結果を記憶する記憶部と、を有し、前記電子制御装置は、更新前のプログラムを記憶する第１の記憶領域と、更新後のプログラムを記憶する第２の記憶領域と、前記更新管理装置からの要求に応じて、前記第２の記憶領域に前記更新後のプログラムを記憶し、前記更新結果を前記更新管理装置に通知する更新部と、前記記憶部に記憶された前記更新結果が、前記複数の電子制御装置における前記プログラムの更新が完了したことを示す場合、前記第２の記憶領域に記憶した前記更新後のプログラムによる前記所定の制御を開始させる切替部と、を有する。
【０００９】
これにより、本発明の一実施形態に係る更新システムでは、更新管理装置が、更新対象となる複数の電子制御装置にプログラムの更新を要求し、複数の電子制御装置から通知される更新結果を記憶部に記憶する。また、複数の電子制御装置は、更新管理装置からの要求に応じて、第２の記憶領域に更新後のプログラムを記憶し、複数の電子制御装置におけるプログラムの更新が完了したとき、更新後のプログラムによる制御を開始する。従って、複数の電子制御装置は、複数の電子制御装置におけるプログラムの更新が完了するまで、更新後のプログラムによる制御を開始しないので、プログラムのバージョンの不整合を防止することができる。
【００１０】
上述の実施形態において、前記更新管理装置は、前記記憶部に記憶された前記更新結果が、前記複数の電子制御装置における前記プログラムの更新が完了したことを示す場合、前記更新後のプログラムによる前記所定の制御の開始を要求する開始要求を、前記複数の電子制御装置に通知する切替制御部を有し、前記切替部は、前記切替制御部から通知される前記開始要求に応じて、前記更新後のプログラムによる前記所定の制御を開始させると良い。
【００１１】
これにより、更新管理装置は、複数の電子制御装置におけるプログラムの更新が完了したとき、複数の電子制御装置に、更新後のプログラムによる所定の制御を開始させることができる。
【００１２】
上述の実施形態において、前記切替部は、前記更新管理装置から通知される前記開始要求を受付するまで、前記更新後のプログラムによる前記所定の制御を禁止すると良い。
【００１３】
これにより、更新管理装置は、複数の電子制御装置におけるプログラムの更新が完了する前に、プログラムの更新を完了した電子制御装置が、更新後のプログラムによる所定の制御を開始してしまうことを、より確実に防止することができる。
【００１４】
上述の実施形態において、前記切替制御部は、前記記憶部に記憶された前記更新結果が、前記プログラムの更新が完了していない電子制御装置があることを示す場合、前記複数の電子制御装置に、前記更新前のプログラムによる前記所定の制御を要求する切替要求を通知し、前記切替部は、前記切替制御部から前記切替要求を受付した場合、前記第１の記憶領域に記憶した前記更新前のプログラムを用いて前記所定の制御を実行させると良い。
【００１５】
これにより、更新管理装置は、複数の電子制御装置の中に、プログラムの更新が完了していない電子制御装置が含まれる場合、複数の電子制御装置に、更新前のプログラムを用いて所定の制御を実行させることができる。
【００１６】
上述の実施形態において、前記切替部は、前記電子制御装置が、前記更新後のプログラムを用いて再起動した後に、前記切替制御部から前記切替要求を受付した場合、前記第１の記憶領域に記憶した前記更新前のプログラムを用いて前記電子制御装置を再起動させると良い。
【００１７】
これにより、電子制御装置は、更新後のプログラムを用いて起動した後でも、更新管理装置からの切替要求を受付した場合、更新前のプログラムで所定の制御を行うことができる。
【００１８】
上述の実施形態において、前記複数の電子制御装置は、車両に搭載され、前記車両のイグニッション電源を用いて動作する第１の電子制御装置と、前記車両に搭載され、前記車両の常時供給電源を用いて動作する第２の電子制御装置と、を含むものであって良い。
【００１９】
これにより、更新システムは、起動又は再起動されるタイミングが異なる複数の電子制御装置を搭載する車両において、電子制御装置のプログラムを更新する際に、プログラムのバージョンの不整合を防止することができる。
【００２０】
上述の実施形態において、前記第２の電子制御装置は、前記第２の記憶領域に前記更新後のプログラムを記憶した後の前記車両のイグニッションオンに応じて、前記更新後のプログラムを用いて前記第２の電子制御装置を再起動させる起動制御部を有すると良い。
【００２１】
これにより、イグニッションオン時に、常時供給電源に接続された第２の電子制御装置のプログラムを、更新前のプログラムから更新後のプログラムに切替えすることができる。
【００２２】
また、本発明の他の実施形態では、前記第１の電子制御装置、及び前記第２の電子制御装置は、前記第２の記憶領域に前記更新後のプログラムを記憶した後に、前記更新管理装置から通知される切替指示に応じて、前記更新後のプログラムを用いて、自装置を再起動させる起動制御部を有する。
【００２３】
これにより、更新システムは、イグニッションオン時とは異なるタイミングでも、複数の電子制御装置が所定の制御を実行するプログラムを、更新前のプログラムから更新後のプログラムに切替えすることができる。
【００２４】
また、他の実施形態は、電子制御装置、更新管理装置、及び更新管理方法により実現される。
【発明の効果】
【００２５】
本発明の実施の形態によれば、起動又は再起動されるタイミングが異なる複数の電子制御装置が実行するプログラムを更新する更新システムにおいて、プログラムのバージョンの不整合を防止することができる。
【図面の簡単な説明】
【００２６】
【図１】一実施形態に係る更新システムのシステム構成の例を示す図である。
【図２】一実施形態に係る更新管理装置、及びＥＣＵのハードウェア構成の例を示す図である。
【図３】第１の実施形態に係る更新管理装置、及びＥＣＵの機能構成の例を示す図である。
【図４】第１の実施形態に係る更新結果記憶部に記憶される更新結果の例を示す図である。
【図５】第１の実施形態に係るブート情報について説明するための図である。
【図６】第１の実施形態に係る更新管理装置の処理の例を示すフローチャートである。
【図７】第１の実施形態に係るＥＣＵの処理の例を示すフローチャートである。
【図８】第１の実施形態に係る更新システムの処理の例を示すシーケンス図（１）である。
【図９】第１の実施形態に係る更新システムの処理の例を示すシーケンス図（２）である。
【図１０】第２の実施形態に係るＥＣＵの構成のイメージを示す図である。
【図１１】第２の実施形態に係る更新システムの処理の例を示すシーケンス図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照して発明を実施するための形態について説明する。
【００２８】
＜システム構成＞
図１は、一実施形態に係る更新システムのシステム構成の例を示す図である。更新システム１は、所定の制御を行う複数のＥＣＵ（電子制御装置：Electronic Control Unit）１１１ａ、１１１ｂ、１１１ｃ、１１２ａ、１１２ｂと、複数のＥＣＵにおけるプログラムの更新を管理する更新管理装置１００とを含む。
【００２９】
図１の例では、複数のＥＣＵ、及び更新管理装置１００は、自動車等の車両１０に搭載され、車載ネットワーク１４０を介して、互いに通信可能に接続されている。また、複数のＥＣＵには、車両１０のイグニッション電源（ＩＧ電源）に接続されるＥＣＵ１１１ａ、１１１ｂ、１１１ｃ、・・・と、常時供給電源（＋Ｂ電源）に接続されるＥＣＵ１１２ａ、１１２ｂ、・・・とが含まれる。
【００３０】
なお、以下の説明の中で、ＥＣＵ１１１ａ、１１１ｂ、１１１ｃ、・・・のうち、イグニッション電源に接続される任意のＥＣＵを示す場合、「ＥＣＵ１１１」を用いる。また、ＥＣＵ１１２ａ、１１２ｂ、・・・のうち、常時供給電源に接続される任意のＥＣＵを示す場合、「ＥＣＵ１１２」を用いる。
【００３１】
ＥＣＵ１１１（第１の電子制御装置）は、例えば、車両１０のエンジンやブレーキ等を制御する車両制御系のＥＣＵであり、車両１０のイグニッションオン（以下、ＩＧ−ＯＮと呼ぶ）に応じて起動して、エンジン制御、ブレーキ制御等の所定の制御を行う。また、ＥＣＵ１１１は、例えば、車両１０のイグニッションオフ（以下、ＩＧ−ＯＦＦと呼ぶ）により停止する。
【００３２】
ＥＣＵ（第２の電子制御装置）１１２は、例えば、キーレスエントリや、ドア等を制御するボディー系のＥＣＵであり、車両１０の常時供給電源を用いて、例えば、車両１０がイグニッションオフの状態であっても、動作を継続する。
【００３３】
このように、車両１０（及び更新システム１）には、起動や、再起動されるタイミングが異なる複数のＥＣＵ１１１、及びＥＣＵ１１２が含まれる。さらに、車両１０には、アクセサリ電源を用いて動作するマルチメディア系のＥＣＵ等も含まれるが、ここでは、説明を容易にするため、車両１０には、ＥＣＵ１１１とＥＣＵ１１２が搭載されているものとして、以下の説明を行う。
【００３４】
更新管理装置１００は、例えば、複数の通信プロトコルに対応するマルチプロトコルゲートウェイ等の電子制御装置である。更新管理装置１００は、複数のＥＣＵ１１１、１１２と所定の通信プロトコルを用いて通信可能であるとともに、通信装置１５０を用いて、管理サーバ２０と通信可能である。ここで、通信装置１５０は、車両１０、又は通信装置１５０等に搭載されたアンテナ１５１を用いて無線通信４０を行い、通信ネットワーク３０に接続するための装置であり、例えば、ＤＣＭ（Data Communication Module）等によって実現される。
【００３５】
上記の構成において、更新管理装置１００は、通信装置１５０を介して、管理サーバ２０から、車両１０に搭載された複数のＥＣＵにおけるプログラム（ファームウェア、ソフトウェア等）の更新情報を取得する。この更新情報には、例えば、更新対象となるＥＣＵを識別する識別情報や、更新後のプログラム等が含まれる。
【００３６】
更新管理装置１００は、管理サーバ２０から取得した更新情報に従って、プログラムの更新対象となるＥＣＵ１１１、１１２に、プログラムの更新を要求する更新要求を通知する。この更新要求には、例えば、更新後のプログラム（又はプログラムの取得先を示す情報等）が含まれる。
【００３７】
ＥＣＵ１１１、１１２は、更新前のプログラムを記憶する第１の記憶領域と、更新後のプログラムを記憶する第２の記憶領域とを有しており、更新管理装置１００からの更新要求に応じて、更新後のプログラムを第２の記憶領域に記憶する。また、ＥＣＵ１１１、及びＥＣＵ１１２は、起動、又は再起動の際に、更新後のプログラムを用いて処理を開始する。
【００３８】
ただし、前述したように、ＥＣＵ１１１とＥＣＵ１１２とは、電源系統が異なり、起動、再起動のタイミングが異なるので、ＥＣＵ１１１とＥＣＵ１１２とが、それぞれのタイミングで所定の制御を開始してしまうと、バージョンの不整合が発生する。この場合、車両１０全体として、正常な制御が行われずに、最悪の場合、車両１０の挙動等に悪影響を及ぼす恐れもある。
【００３９】
そこで、更新管理装置１００は、更新対象となる複数のＥＣＵから通知されるプログラムの更新結果を記憶部に記憶する。また、更新管理装置１００は、例えば、ＩＧ−ＯＮの際に、記憶部に記憶した更新結果を確認し、複数のＥＣＵにおけるプログラムの更新が完了している場合、複数のＥＣＵに、更新後のプログラムによる制御の開始を要求する。
【００４０】
好ましくは、更新管理装置１００は、例えば、ＩＧ−ＯＮの際に、記憶部に記憶した更新結果を確認し、複数のＥＣＵにおけるプログラムの更新が完了していない場合、複数のＥＣＵに、更新前のプログラムによる制御への切替えを要求する。
【００４１】
一方、ＥＣＵ１１１、１１２は、第２の記憶領域に更新後のプログラムを記憶した後に、起動、又は再起動を行うと、更新後のプログラムによる所定の制御を禁止（又は保留）する。さらに、ＥＣＵ１１１、１１２は、更新管理装置１００から、更新後のプログラムによる制御の開始を要求された場合、更新後のプログラムによる制御を開始する。
【００４２】
好ましくは、ＥＣＵ１１１、１１２は、更新後のプログラムを用いて起動、又は再起動した後に、更新管理装置１００から、更新前のプログラムによる制御への切替えを要求された場合、更新前のプログラムを用いて再起動する。
【００４３】
このように、更新システム１は、更新対象となる全てのＥＣＵ１１１、１１２におけるプログラムの更新が完了した場合、ＥＣＵ１１１、１１２は、更新後のプログラムを用いて、所定の制御を行う。
【００４４】
これにより、本実施形態に係る更新システム１によれば、起動又は再起動されるタイミングが異なる複数のＥＣＵ１１１、及びＥＣＵ１１２が実行するプログラムを更新する更新システム１において、プログラムのバージョンの不整合を防止することができる。
【００４５】
さらに、更新システム１では、更新対象となる全てのＥＣＵ１１１、１１２におけるプログラムの更新が完了していない場合、ＥＣＵ１１１、１１２は、更新前のプログラムを用いて再起動し、所定の制御を行う。
【００４６】
これにより、本実施形態による更新システム１によれば、更新対象となる全てのＥＣＵ１１１、１１２におけるプログラムの更新が完了していない場合でも、ＥＣＵ１１１、１１２は、所定の制御を行うことができる。
【００４７】
なお、図１に示す更新システム１のシステム構成は一例である。例えば、ＥＣＵ１１１、及びＥＣＵ１１２は、車両１０に搭載されるＥＣＵに限られず、起動又は再起動されるタイミングが異なる複数の電子制御装置を含む他の情報処理システムであっても良い。
【００４８】
また、更新管理装置１００の機能は、管理サーバ２０が有していても良い。例えば、図１において、車両１０は、更新管理装置１００に代えて、管理サーバ２０と、複数のＥＣＵとの間の通信を中継するマルチプロトコルゲートウェイを有し、管理サーバ２０が、更新管理装置の機能を実行するものであっても良い。
【００４９】
＜ハードウェア構成＞
（更新管理装置、及びＥＣＵのハードウェア構成）
更新管理装置１００、及びＥＣＵ１１１、１１２は、一般的なコンピュータの構成を有しており、例えば、ＣＰＵ（Central Processing Unit）２０１、ＲＡＭ（Random Access Memory）２０２、ＲＯＭ（Read Only Memory）２０３、ストレージデバイス２０４、通信Ｉ／Ｆ（Interface）２０５、外部接続Ｉ／Ｆ２０６、及びシステムバス２０７等を含む。
【００５０】
ＣＰＵ２０１は、ＲＯＭ２０３やストレージデバイス２０４等に格納されたプログラムやデータ等をＲＡＭ２０２上に読み出し、処理を実行することで、更新管理装置１００（又はＥＣＵ１１１、１１２）の各機能を実現する演算装置である。ＲＡＭ２０２は、ＣＰＵ２０１のワークエリア等として用いられる揮発性のメモリである。ＲＯＭ２０３は、電源を切ってもプログラムやデータを保持する不揮発性のメモリである。ストレージデバイス２０４は、例えば、フラッシュＲＯＭ等の大容量の記憶装置であり、ＯＳ（Operating System）、プログラム、及び各種データ等を記憶する。
【００５１】
通信Ｉ／Ｆ２０５は、更新管理装置１００（又はＥＣＵ１１１、１１２）を、ＣＡＮ（Controller Area Network）等の車載ネットワークに接続し、他のＥＣＵ等と通信するための通信インタフェースである。
【００５２】
外部接続Ｉ／Ｆ２０６は、更新管理装置１００（又はＥＣＵ１１１、１１２）に外部装置を接続するためのインタフェースである。外部機器には、例えば、記憶媒体、通信装置１５０、又は各ＥＣＵ１１１、１１２が制御するアクチュエータ等が含まれ得る。システムバス２０７は、上記の各構成要素に共通に接続され、例えば、アドレス信号、データ信号、及び各種制御信号等を伝達する。
【００５３】
［第１の実施形態］
＜機能構成＞
図３は、第１の実施形態に係る更新管理装置、及びＥＣＵの機能構成の例を示す図である。なお、図３において、ＥＣＵ１１２は、ＥＣＵ１１１と同様の機能構成を有しているものとする。
【００５４】
（更新管理装置の機能構成）
更新管理装置１００は、例えば、更新情報取得部３１１、通信部３１２、更新要求部３１３、更新結果記憶部３１４、及び切替制御部３１５等を有する。
【００５５】
更新管理装置１００は、例えば、図２に示すストレージデバイス２０４、ＲＯＭ２０３等に記憶した所定のプログラムを、ＣＰＵ２０１で実行することにより、上記の各機能構成を実現している。また、上記の各機能構成のうち、少なくとも一部はハードウェアによって実現されるものであっても良い。
【００５６】
更新情報取得部３１１は、通信装置１５０を介して、管理サーバ２０と通信を行い、更新対象となるＥＣＵ１１１、１１２の更新情報を取得する。例えば、更新情報取得部３１１は、管理サーバ２０に対して、車両１０に搭載される複数のＥＣＵ１１１、１１２における更新情報の有無を問合せし、更新情報があれば取得する。或いは、更新情報取得部３１１は、例えば、管理サーバ２０から自動的に通知される更新情報を取得するものであっても良い。なお、更新情報取得部３１１が、管理サーバ２０から取得する更新情報には、例えば、更新対象となるＥＣＵ１１１、１１２を識別する識別情報や、更新後のプログラム等が含まれる。
【００５７】
通信部３１２は、例えば、図２の通信Ｉ／Ｆ２０５を用いて、更新管理装置１００を車載ネットワーク１４０に接続し、ＥＣＵ１１１、１１２等と通信を行う。
【００５８】
更新要求部（要求部）３１３は、更新情報取得部３１１が更新情報を取得した場合、通信部３１２を介して、更新対象となるＥＣＵ１１１、１１２に、プログラムの更新を要求する更新要求を通知する。この更新要求には、例えば、更新後のプログラム、及び更新後のプログラムに関する情報（例えば、バージョン情報等）が含まれる。
【００５９】
更新結果記憶部（記憶部）３１４は、例えば、ＣＰＵ２０１で実行されるプログラム、及びストレージデバイス２０４等によって実現され、更新対象となるＥＣＵ１１１、１１２から通知される更新結果を記憶する。
【００６０】
図４は、第１の実施形態に係る更新結果記憶部に記憶される更新結果の例を示す図である。例えば、図４（ａ）に示すように、更新結果記憶部３１４に記憶される更新結果４０１には、「ＥＣＵ」、「更新有無」、「更新結果」等の情報が含まれる。
【００６１】
「ＥＣＵ」は、ＥＣＵ１１１、１１２を識別するためのＥＣＵ名、識別情報等の情報である。
【００６２】
「更新有無」は、更新情報取得部３１１が取得した更新情報の有無を示す情報であり、更新情報がある場合「あり」、更新情報がない場合「なし」が設定される。例えば、更新情報取得部３１１は、更新情報の有無を確認し、ＥＣＵ１１１ａ〜１１１ｃ、及びＥＣＵ１１２ａ、１１２ｂに対応する更新情報がない場合、図４（ａ）に示すように、各ＥＣＵに対応する「更新有無」に「なし」を設定する。また、更新情報取得部３１１は、更新情報の有無を確認し、ＥＣＵ１１１ａ〜１１１ｃ、及びＥＣＵ１１２ａ、１１２ｂに対応する更新情報がある場合、図４（ｂ）の更新情報４０２に示すように、各ＥＣＵに対応する「更新有無」に「あり」を設定する。
【００６３】
「更新結果」は、更新対象となるＥＣＵ１１１、１１２における更新結果を示す情報であり、更新が完了した場合「完了」が、更新が完了していない場合「更新中」が設定される。例えば、更新要求部３１３は、更新対象となるＥＣＵ１１１、１１２に更新要求を通知するとき、更新対象となるＥＣＵ１１１、１１２に対応する「更新結果」に「更新中」を設定する。また、更新結果記憶部３１４は、更新対象となるＥＣＵ１１１、１１２から、更新が完了したことを示す更新結果を受付すると、更新が完了したＥＣＵ１１１、１１２に対応する「更新結果」に「完了」を設定する。
【００６４】
図４（ｃ）に示す更新結果４０３の例では、ＥＣＵ１１１ａ、ＥＣＵ１１１ｂ、及びＥＣＵ１１２ｂの更新が完了したことが示されている。また、更新対象となるＥＣＵ１１１ａ〜１１１ｃ、及びＥＣＵ１１２ａ、１１２ｂの更新が完了すると、例えば、図４（ｄ）の更新結果４０４のように、各ＥＣＵの「更新結果」が「完了」となる。これにより、更新管理装置１００は、更新対象となるＥＣＵ１１１ａ〜１１１ｃ、及びＥＣＵ１１２ａ、１１２ｂにおけるプログラムの更新が完了したと判断することができる。
【００６５】
ここで、図３に戻り、更新管理装置１００の機能構成の説明を続ける。
【００６６】
切替制御部３１５は、例えば、ＩＧ−ＯＮ時（所定のタイミングの一例）に、更新結果記憶部３１４に記憶された更新結果を確認し、更新対象となる複数のＥＣＵ１１１、１１２における「更新結果」が「完了」になっているか否かを判断する。
【００６７】
更新対象となる複数のＥＣＵ１１１、１１２の「更新結果」が全て「完了」である場合、切替制御部３１５は、更新対象となるＥＣＵ１１１、１１２に、更新後のプログラムによる所定の制御の開始を要求する開始要求を通知する。
【００６８】
一方、更新対象となるＥＣＵ１１１、１１２の「更新結果」に「更新中」が含まれる場合、切替制御部３１５は、更新対象となるＥＣＵ１１１、１１２に、更新前のプログラムへの切替を要求する切替要求を通知する。また、切替制御部３１５は、更新対象となるＥＣＵ１１１、１１２における更新前のプログラムへの切替えが完了すると、更新対象となるＥＣＵ１１１、１１２に、更新前のプログラムによる所定の制御の開始を要求する制御開始要求を通知する。
【００６９】
（ＥＣＵの機能構成）
ＥＣＵ１１１は、例えば、図２に示すＣＰＵ２０１で実行されるプログラムにより、通信部３２１、更新部３２２、切替部３２３、起動制御部３２４、機能制御部３２５、及び記憶部３２６等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。また、ここでは、ＥＣＵ１１１の機能構成について説明するが、ＥＣＵ１１２は、前述したようにＥＣＵ１１１と同様の機能構成を有している。
【００７０】
通信部３２１は、例えば、図２の通信Ｉ／Ｆ２０５を用いて、ＥＣＵ１１１を車載ネットワーク１４０に接続して、更新管理装置１００等と通信を行う。
【００７１】
更新部３２２は、更新管理装置１００から通知される更新要求を受付すると、更新要求に含まれる更新後のプログラムを、記憶部３２６に記憶する。
【００７２】
なお、記憶部３２６には、図３に示すように、更新前のプログラムを記憶する第１の記憶領域３３２、更新後のプログラムを記憶する第２の記憶領域３３３、及びブート情報５３１等が含まれる。
【００７３】
例えば、プログラムの更新がない場合、ＥＣＵ１１１は、第１の記憶領域３３２に記憶したプログラム（更新前のプログラム）を用いて起動し、図３に示すようなＥＣＵ１１１の機能構成を実現する。また、プログラムの更新がある場合、ＥＣＵ１１１の更新部３２２は、更新後のプログラムを第２の記憶領域３３３に記憶し、例えば、次回の起動時に、更新後のプログラムを用いて起動するようにブート情報３３１を更新する。
【００７４】
さらに、更新部３２２は、例えば、ＩＧ−ＯＮ時（所定のタイミングの一例）に、更新後のプログラムで起動すると、プログラムの更新が完了したことを示す完了通知を、更新管理装置に通知する。
【００７５】
図５は、第１の実施形態に係るブート情報について説明するための図である。図５（ａ）は、ＥＣＵ１１１が、更新管理装置１００から更新要求を受け付ける前のブート情報３３１ａの例を示している。例えば、図５（ａ）に示すように、ブート情報には、更新前の「開始アドレス」及び「バージョン」、更新後の「開始アドレス」及び「バージョン」、「機能制限」等の情報が含まれる。
【００７６】
更新前の「開始アドレス」は、更新前のプログラムを記憶する第１の記憶領域３３２の開始アドレスを示す情報である。更新前の「バージョン」は、更新前のプログラムの版数等を示す情報である。更新後の「開始アドレス」は、更新後のプログラムを記憶する第２の記憶領域３３３の開始アドレスを示す情報である。更新後の「バージョン」は、更新後のプログラムの版数等を示す情報である。「機能制限」は、ＥＣＵ１１１による所定の制御を禁止するか、許可するかを示す情報であり、所定の制御を禁止する場合「オン」、所定の制御を許可する場合「オフ」が設定される。
【００７７】
例えば、ＥＣＵ１１１の更新部３２２は、更新管理装置１００から更新要求を受付すると、図５（ｂ）に示すブート情報３３１ｂのように、「機能制限」を「オン」に設定し、第２の記憶領域３３３への更新後のプログラムの記憶を開始する。また、更新部３２２は、更新後のプログラムの記憶が完了すると、図５（ｂ）に示すブート情報３３１ｂのように、更新後の「開始アドレス」、及び「バージョン」を記憶する。
【００７８】
ここで、図３に戻り、ＥＣＵ１１１の機能構成の説明を続ける。
【００７９】
起動制御部３２４は、ＥＣＵ１１１の起動、又は再起動の際に、ブート情報３３１を参照して、第１の記憶領域３３２に記憶した更新前のプログラム、又は第２の記憶領域３３３に記憶した更新後のプログラムを用いて、ＥＣＵ１１１（自装置）を起動させる。
【００８０】
例えば、図５（ａ）に示すブート情報３３１ａのように、更新後の「開始アドレス」が記憶されていない場合、起動制御部３２４は、更新前の「開始アドレス」を用いて、第１の記憶領域３３２に記憶されたプログラムを用いて、ＥＣＵ１１１を起動させる。
【００８１】
また、図５（ｂ）に示すブート情報３３１ｂのように、更新後の「開始アドレス」が記憶されている場合、起動制御部３２４は、更新後の「開始アドレス」を用いて、第２の記憶領域３３３に記憶された更新後のプログラムを用いて、ＥＣＵ１１１を起動させる。この場合、ＥＣＵ１１１は、第２の記憶領域３３３に記憶された更新後のプログラムを実行することにより、図３に示すようなＥＣＵ１１１の各機能構成を実現する。
【００８２】
好ましくは、起動制御部３２４は、例えば、図２のＲＯＭ２０３等に記憶されたＩＰＬ（Initial Program Loader）等によって実現される。
【００８３】
切替部３２３は、ＥＣＵ１１１が、更新後のプログラムを用いて起動した後、更新管理装置１００の更新結果記憶部３１４に記憶された、更新対象となる複数のＥＣＵ１１１、１１２の更新結果に応じて、ＥＣＵ１１１の動作を切替える。
【００８４】
例えば、ＥＣＵ１１１が、更新後のプログラムを用いて起動したとき、図５（ｂ）に示すブート情報３３１ｂのように、「機能制限」は「オン」に設定されている。この場合、切替部３２３は、ＥＣＵ１１１による所定の制御（例えば、エンジン制御、ブレーキ制御等）を禁止する。
【００８５】
また、例えば、図４（ｄ）に示す更新結果４０４のように、更新結果記憶部３１４に記憶された更新結果が、更新対象となる複数のＥＣＵの更新が完了したことを示す場合、更新管理装置１００は、更新対象となる複数のＥＣＵに、前述した開始要求を送信する。この場合、ＥＣＵ１１１の切替部３２３は、この開始要求に応じて、例えば、図５（ｃ）に示すブート情報３３１ｃのように、「機能制限」を「オフ」に設定し、ＥＣＵ１１１による所定の制御を許可する。
【００８６】
一方、例えば、図４（ｃ）に示す更新結果４０３のように、更新結果記憶部３１４に記憶された更新結果が、更新が完了していないＥＣＵがあることを示す場合、更新管理装置１００は、更新対象となる複数のＥＣＵに、前述した切替要求を送信する。この場合、ＥＣＵ１１１の切替部３２３は、例えば、図５（ｂ）に示すブート情報３３１ｂのように、「機能制限」を「オン」に維持したまま、更新前の「開始アドレス」に従って、更新前のプログラムを用いて、ＥＣＵ１１１を再起動する。さらに、切替部３２３は、更新前のプログラムで再起動したことを更新管理装置１００に通知し、更新管理装置１００から送信される制御開始要求を受付すると、更新前のプログラムによる所定の制御を許可する。
【００８７】
機能制御部３２５は、ＥＣＵ１１１毎に異なる所定の制御（例えば、エンジン制御、ブレーキ制御等）を実行する。また、機能制御部３２５は、所定の制御に必要な設定値、学習値等のデータを、記憶部３２６の制御情報３３４に記憶して管理する。
【００８８】
＜処理の流れ＞
続いて、第１の実施形態に係る更新管理方法の処理の流れについて説明する。
【００８９】
（更新管理装置の処理）
図６は、第１の実施形態に係る更新管理装置の処理の例を示すフローチャートである。
【００９０】
図６（ａ）に示す処理は、更新管理装置１００による更新処理の例を示している。この処理は、例えば、ユーザによる操作、所定の時間間隔、又は管理サーバ２０からの更新通知等に応じて実行される。
【００９１】
ステップＳ６１１において、更新情報取得部３１１は、通信装置１５０を介して、管理サーバ２０から、車両１０に搭載される複数のＥＣＵ１１１、１１２におけるプログラムの更新情報を取得する。
【００９２】
ステップＳ６１２において、更新管理装置１００は、更新情報取得部３１１が取得した更新情報の有無（更新の有無）に応じて、処理を分岐させる。
【００９３】
例えば、更新情報取得部３１１が更新情報を取得できなかった場合、すなわち、プログラムの更新がない場合、更新管理装置１００は、更新情報の確認処理を終了させる。一方、更新情報取得部３１１が更新情報を取得できた場合、すなわち、プログラムの更新がある場合、更新管理装置１００は、処理をステップＳ６１３に移行させる。
【００９４】
ステップＳ６１３に移行すると、更新要求部３１３は、更新対象となる複数のＥＣＵ１１１、１１２に対して、更新後のプログラムを含む更新要求を送信（通知）する。
【００９５】
ステップＳ６１４において、更新結果記憶部３１４は、更新対象となる複数のＥＣＵ１１１、１１２から通知される更新結果を記憶する。
【００９６】
なお、ステップＳ６１４に示す処理はオプションであり、必須ではない。例えば、更新対象となる全てのＥＣＵ１１１、１１２が、図６（ｂ）に示すように、ＩＧ−ＯＮに応じて更新結果を通知するように構成されている場合、ステップＳ６１４の処理は省略することができる。
【００９７】
図６（ｂ）に示す処理は、更新管理装置１００が、車両１０のイグニッションオン（ＩＧ−ＯＮ）の際に実行する処理の例を示している。
【００９８】
ステップＳ６２１において、例えば、ユーザの操作等により、車両１０がＩＧ−ＯＮされると、更新管理装置１００は、ステップＳ６２２以降の処理を実行する。
【００９９】
ステップＳ６２２において、更新結果記憶部３１４は、例えば、ＩＧ−ＯＮされてから所定の期間、更新対象となる複数のＥＣＵ１１１、１１２から通知される更新結果を受付し、記憶する。
【０１００】
ステップＳ６２３において、切替制御部３１５は、更新結果記憶部３１４に記憶された更新対象となる複数のＥＣＵ１１１、１１２３の更新結果を確認する。
【０１０１】
ステップＳ６２４において、切替制御部３１５は、更新対象となる複数のＥＣＵ１１１、１１２の更新が完了しているか否かに応じて、処理を分岐させる。例えば、図４（ｄ）に示す更新結果４０４のように、更新有無が「あり」となっている全てのＥＣＵの更新結果が「完了」となっている場合、切替制御部３１５は、更新が完了していると判断する。一方、例えば、図４（ｃ）に示す更新結果４０３のように、更新有無が「あり」となっているＥＣＵの中に、更新結果が「更新中」となっているＥＣＵが含まれる場合、切替制御部３１５は、更新が完了していないと判断する。
【０１０２】
更新対象となる複数のＥＣＵ１１１、１１２の更新が完了している場合、切替制御部３１５は、処理をステップＳ６２５に移行させる。一方、更新が完了していない場合、切替制御部３１５は、処理をステップＳ６２６に移行させる。
【０１０３】
ステップＳ６２４からステップＳ６２５に移行すると、切替制御部３１５は、更新対象となる複数のＥＣＵ１１１、１１２に、更新後のプログラムによる制御の開始を要求する開始要求を通知する。
【０１０４】
ステップＳ６２４からステップＳ６２６に移行すると、切替制御部３１５は、更新対象となる複数のＥＣＵ１１１、１１２に、更新前のプログラムへの切替を要求する切替要求を送信する。
【０１０５】
ステップＳ６２７において、切替制御部３１５は、切替要求を送信した複数のＥＣＵ１１１、１１２から送信される切替完了通知を受付し、切替が完了したと判断すると、処理をステップＳ６２８に移行させる。
【０１０６】
ステップＳ６２８に移行すると、切替制御部３１５は、更新対象となる複数のＥＣＵ１１１、１１２に、更新前のプログラムによる制御の開始を要求する制御開始要求を送信する。
【０１０７】
（ＥＣＵの処理）
図７は、第１の実施形態に係るＥＣＵの処理の例を示すフローチャートである。この処理は、図６に示す更新管理装置１００の処理に対応する、ＥＣＵ１１１、１１２側の処理の例を示している。
【０１０８】
図７（ａ）は、図６（ａ）に示す更新管理装置１００の更新処理に対応する、ＥＣＵ１１１、１１２側の更新処理の例を示している。
【０１０９】
ステップ７１１において、ＥＣＵ１１１、１１２は、更新管理装置１００から通知される更新要求を受付すると、ステップＳ７１２以降の処理を実行する。
【０１１０】
ステップＳ７１２において、ＥＣＵ１１１、１１２の更新部３２２は、ブート情報３３１の「機能制限」を「オン」に設定する。
【０１１１】
ステップＳ７１３において、ＥＣＵ１１１、１１２の更新部３２２は、第２の記憶領域３３３に、更新管理装置１００から受付した更新要求に含まれる更新後のプログラムを記憶する。
【０１１２】
ステップＳ７１４において、ＥＣＵ１１１、１１２の更新部３２２は、更新後のプログラムの記憶が完了すると、ブート情報３３１の更新後の「開始アドレス」、及び「バージョン」等の情報を更新する。
【０１１３】
上記の処理により、例えば、図５（ａ）に示すように、更新後の「開始アドレス」、及び「バージョン」が記憶されていないブート情報３３１ａには、図５（ｂ）に示すブート情報３３１ｂのように、更新後の「開始アドレス」、及び「バージョン」が記憶される。
【０１１４】
一方、例えば、図５（ｃ）に示すように、既に更新後の「開始アドレス」、及び「バージョン」が記憶されているブート情報３３１ｃは、図５（ｄ）に示すブート情報３３１ｄのように情報が更新される。例えば、ブート情報３３１ｃに記憶されていた更新後の「開始アドレス」、及び「バージョン」は、ブート情報３３１ｄの更新前の「開始アドレス」、及び「バージョン」に記憶される。また、ブート情報３３１ｄの更新後の「開始アドレス」、及び「バージョン」には、第２の記憶領域３３３に記憶された更新後のプログラムの開始アドレス、及びバージョンが記憶される。
【０１１５】
図７（ｂ）は、ＥＣＵ１１１、１１２が、車両１０のＩＧ−ＯＮの際に実行する処理の例を示している。
【０１１６】
ステップＳ７２１において、例えば、ユーザの操作等により、車両１０がＩＧ−ＯＮされると、ＥＣＵ１１１、１１２は、ステップＳ７２２以降の処理を実行する。
【０１１７】
ステップＳ７２２において、ＥＣＵ１１１、１１２は、ブート情報３３１に従って起動、又は再起動する。例えば、図１に示すように、ＩＧ−ＯＮ時に電源が供給されるＩＧ電源に接続されているＥＣＵ１１１は、ＩＧ−ＯＮに応じて起動する。一方、常時供給電源（＋Ｂ電源）に接続されているＥＣＵ１１２の起動制御部３２４は、ＩＧ−ＯＮに応じて、ＥＣＵ１１２を再起動させる。
【０１１８】
このとき、ＥＣＵ１１１、１１２は、ブート情報３３１に記憶されている更新前の「開始アドレス」、及び更新後の「開始アドレス」に従って、起動（又は再起動）に用いるプログラムを選択する。
【０１１９】
例えば、図５（ａ）に示すブート情報３３１ａのように、更新前の「開始アドレス」のみが記憶されている場合、ＥＣＵ１１１、１１２は、更新前の「開始アドレス」に従って、起動、又は再起動に用いるプログラムを選択する。すなわち、この場合、ＥＣＵ１１１、１１２は、第１の記憶領域３３２に記憶された更新前のプログラムを用いて起動、又は再起動する。
【０１２０】
また、図５（ｂ）、（ｃ）、（ｄ）に示すブート情報３３１ｂ、３３１ｃ、３３１ｄのように、更新後の「開始アドレス」が記憶されている場合、ＥＣＵ１１１、１１２は、更新後の「開始アドレス」に従って、起動、又は再起動に用いるプログラムを選択する。すなわち、この場合、ＥＣＵ１１１、１１２は、第２の記憶領域３３３に記憶された更新後のプログラムを用いて起動、又は再起動する。
【０１２１】
ステップＳ７２３において、切替部３２３は、ブート情報３３１の「機能制限」が「オンであるか否かに応じて処理を分岐させる。
【０１２２】
ブート情報３３１の「機能制限」が「オン」でない場合、すなわち「機能制限」が「オフ」である場合、ＥＣＵ１１１、１１２は、ＩＧ−ＯＮ時の処理を終了し、機能制御部３２５による所定の制御を行う。一方、ブート情報３３１の「機能制限」が「オン」である場合、ＥＣＵ１１１、１１２は、ステップＳ７２４以降の処理を実行する。なお、ブート情報３３１の「機能制限」が「オン」であるということは、図７（ａ）に示す更新処理が実行されたことを示している。
【０１２３】
ステップＳ７２４において、ＥＣＵ１１１、１１２の切替部３２３は、機能制御部３２５による所定の制御を禁止する。なお、ＥＣＵ１１１、１１２のプログラムが、更新管理装置１００からの開始要求、又は制御開始要求を受付するまで、所定の制御を開始しないように予め作成されている場合、ステップＳ７２４の処理は省略することができる。
【０１２４】
ステップＳ７２５において、ＥＣＵ１１１、１１２の更新部３２２は、図７（ａ）に示した更新処理の更新結果を、更新管理装置１００に通知する。
【０１２５】
例えば、図７（ａ）に示す更新処理が正常に完了した場合、ブート情報３３１には、図５（ｂ）に示すブート情報３３１ｂのように、「機能制限」に「オン」が設定され、更新後の「開始アドレス」、及び「バージョン」が正しく記憶されている。この場合、更新部３２２は、更新処理が正常に完了したことを示す更新結果（ＯＫ）を、更新管理装置１００に通知する。
【０１２６】
ステップＳ７２６において、ＥＣＵ１１１、１１２の切替部３２３は、図７（ａ）に示した更新処理によりプログラムの更新に成功したか否かに応じて、処理を分岐させる。例えば、プログラムの更新に成功していない場合、切替部３２３は、処理をステップＳ７３２に移行させる。一方、プログラムの更新に成功した場合、切替部３２３は、処理をステップＳ７２７に移行させる。
【０１２７】
ステップＳ７２７に移行すると、ＥＣＵ１１１、１１２の切替部３２３は、更新管理装置１００から、更新後のプログラムによる所定の制御の開始を要求する開始要求を受付したか否かを判断する。開始要求を受付した場合、切替部３２３は、処理をステップＳ７２８に移行させる。一方、開始要求を受付していない場合、切替部３２３は、処理をステップＳ７３０に移行させる。
【０１２８】
ステップＳ７２７からステップＳ７２８に移行すると、ＥＣＵ１１１、１１２の切替部３２３は、ブート情報３３１の「機能制限」を「オフ」に設定する。
【０１２９】
ステップＳ７２９において、ＥＣＵ１１１、１１２の切替部３２３は、更新後のプログラムによる制御を開始させる。これにより、更新後のプログラムで起動、又は再起動したＥＣＵ１１１、１１２は、機能制御部３２５による所定の制御を開始する。
【０１３０】
ステップＳ７２７からステップＳ７３０に移行すると、ＥＣＵ１１１、１１２の切替部３２３は、更新管理装置１００から、更新前のプログラムへの切替えを要求する切替要求を受付したか否かを判断する。切替要求を受付していない場合、切替部３２３は、処理をステップＳ７２７に戻して、同様の処理を再実行する。一方、切替要求を受付した場合、切替部３２３は、処理をステップＳ７３１に移行させる。
【０１３１】
ステップＳ７３１に移行すると、ＥＣＵ１１１、１１２の切替部３２３は、起動制御部３２４を用いて、ＥＣＵ１１１、１１２を、第１の記憶領域３３２に記憶された更新前のプログラムで再起動させる。また、切替部３２３は、更新前のプログラムへの切替えが完了したことを示す切替完了通知を、更新管理装置１００に通知する。
【０１３２】
ステップＳ７３２に移行すると、ＥＣＵ１１１、１１２の切替部３２３は、更新管理装置１００から通知される制御開始要求を待ち、制御開始要求を受付するとステップＳ７３３において、更新前のプログラムによる制御を開始させる。これにより、更新前のプログラムで起動、又は再起動したＥＣＵ１１１、１１２は、機能制御部３２５による所定の制御を開始する。
【０１３３】
続いて、更新システム１における全体の処理の流れについて、図８、９を用いて説明する。
【０１３４】
（更新システムの処理１）
図８は第１の実施形態に係る更新システムの処理の例を示すシーケンス図（１）である。この処理は、ＥＣＵ１１１、１１２の更新情報があり、かつＥＣＵ１１１、１１２のプログラムの更新が正常に完了する場合の処理の例を示している。なお、図８に示す処理の開始時点において、ＥＣＵ１１１、及びＥＣＵ１１２は、更新前のプログラムにより所定の制御８２０を実行しているものとする。また、図８に示す各処理は、図６、７に示す各処理に対応しているので、ここでは詳細な説明は省略する。
【０１３５】
ステップＳ８０１、Ｓ８０２において、更新管理装置１００の更新情報取得部３１１は、管理サーバ２０から更新情報を取得する。この処理は、図６（ａ）のステップ６１１の処理に対応している。
【０１３６】
なお、ここでは、更新情報取得部３１１が、ＥＣＵ１１１、及びＥＣＵ１１２の更新情報を取得したものとして、以下の説明を行う。
【０１３７】
ステップＳ８０３ａ、Ｓ８０３ｂにおいて、更新管理装置１００の更新要求部３１３は、更新対象となるＥＣＵ１１１、ＥＣＵ１１２に、プログラムの更新を要求する更新要求を通知する。この処理は、図６（ａ）のステップＳ６１３の処理に対応している。
【０１３８】
ステップＳ８０４ａ、Ｓ８０４ｂにおいて、ＥＣＵ１１１、及びＥＣＵ１１２の更新部３２２は、更新管理装置１００から通知される更新要求に含まれる更新後のプログラムを、第２の記憶領域に記憶する。また、ステップＳ８０５ａ、Ｓ８０５ｂにおいて、ＥＣＵ１１１、及びＥＣＵ１１２の更新部３２２は、ブート情報を更新する。この処理は、図７（ａ）のステップＳ７１２〜Ｓ７１４の処理に対応している。
【０１３９】
ステップＳ８０６において、例えば、ユーザのオフ操作により、車両１０がＩＧ−ＯＦＦの状態８３０に移行する。
【０１４０】
このとき、イグニッション電源（ＩＧ電源）に接続されているＥＣＵ１１１は、更新前のプログラムによる所定の制御８２０を停止し、次回の起動時には、更新後のプログラムで起動する。つまり、イグニッション電源に接続されているＥＣＵ１１１において、更新前のプログラムから、更新後のプログラムへの切替えが行われる。
【０１４１】
一方、常時供給電源（＋Ｂ電源）に接続されているＥＣＵ１１２は、更新前のプログラムによる所定の制御８２０を継続する。
【０１４２】
ステップＳ８０７において、例えば、ユーザのオン操作により、車両１０がＩＧ−ＯＮの状態８４０に移行する。
【０１４３】
ステップＳ８０８において、更新管理装置１００は、例えば、ＩＧ−ＯＮに応じて起動し、図６（ｂ）に示す処理を開始する。
【０１４４】
ステップＳ８０９において、イグニッション電源に接続されているＥＣＵ１１１は、ＩＧ−ＯＮに応じて、図７（ｂ）に示す処理を開始し、更新後のプログラムで起動する。
【０１４５】
ステップＳ８１０において、常時供給電源に接続されているＥＣＵ１１２は、ＩＧ−ＯＮに応じて、図７（ｂ）に示した処理を開始し、更新後のプログラムで再起動する。これにより、常時供給電源に接続されているＥＣＵ１１２は、更新前のプログラムによる所定の制御８２０を停止し、更新前のプログラムから更新後のプログラムへプログラムの切替えが行われる。
【０１４６】
なお、この時点では、ＥＣＵ１１１、及びＥＣＵ１１２は、更新後のプログラムによる所定の制御８５０を開始しない。例えば、ＥＣＵ１１１、及びＥＣＵ１１２は、図７（ｂ）のステップＳ７２４の処理により、所定の制御が禁止されている。或いは、ＥＣＵ１１１、及びＥＣＵ１１２の更新後のプログラムは、更新管理装置１００からの開始要求に応じて、所定の制御を開始するように予め構成されているものであっても良い。
【０１４７】
ステップＳ８１１ａ、８１１ｂにおいて、ＥＣＵ１１１、及びＥＣＵ１１２の更新部３２２は、更新後のプログラムへの更新が完了したことを示す更新結果（完了）を、更新管理装置１００に通知する。この処理は、図７（ｂ）のステップＳ７２５の処理に対応している。
【０１４８】
ステップＳ８１２において、更新管理装置１００の切替制御部３１５は、更新対象となるＥＣＵ１１１、及びＥＣＵ１１２において、更新後のプログラムへの更新が完了したことを確認する。この処理は、図６（ｂ）のステップＳ６２３、Ｓ６２４の処理に対応している。
【０１４９】
ステップＳ８１３ａ、Ｓ８１３ｂにおいて、更新管理装置１００の切替制御部３１５は、更新対象となるＥＣＵ１１１、及びＥＣＵ１１２に対して、更新後のプログラムによる所定の制御の開始を要求する開始要求を通知する。この処理は、図６（ｂ）のステップＳ６２５の処理に対応している。
【０１５０】
ステップＳ８１４ａ、Ｓ８１４ｂにおいて、ＥＣＵ１１１、及びＥＣＵ１１２の切替部３２３は、機能制御部３２５による所定の制御を開始させる。これにより、ＥＣＵ１１１、及びＥＣＵ１１２は、更新後のプログラムによる所定の制御８５０を実行する。この処理は、図７（ｂ）のステップＳ７２７〜Ｓ７２９の処理に対応している。
【０１５１】
上記の処理により、更新システム１では、図８に示すように、ＥＣＵ１１１による、更新前のプログラムによる所定の制御８２０と、ＥＣＵ１１２による、更新後のプログラムによる所定の制御８５０とが同時に実行されることがないように管理される。また、更新システム１では、ＥＣＵ１１１による、更新後のプログラムによる所定の制御８５０と、ＥＣＵ１１２による、更新前のプログラムによる所定の制御８２０とが同時に実行されることがないように管理される。
【０１５２】
（更新システムの処理２）
図９は第１の実施形態に係る更新システムの処理の例を示すシーケンス図（２）である。この処理は、ＥＣＵ１１１、１１２の更新情報があり、かつＥＣＵ１１１におけるプログラムの更新が失敗した場合の処理の例を示している。
【０１５３】
なお、図９の処理の開始時点において、更新管理装置１００、ＥＣＵ１１１、及びＥＣＵ１１２は、図８のステップＳ８０１〜Ｓ８０５ａ、Ｓ８０５ｂの処理を実行し、ステップＳ８０６のオフ操作により、ＥＣＵ１１１のプログラムの更新に失敗したものとする。例えば、ＥＣＵ１１１が、図８のステップＳ８０４ａにおいて、第２の記憶領域３３３に更新後のプログラムを記憶しているとき、又は、ステップＳ８０５ａにおいてブート情報を更新する前に、車両１０がＩＧ−ＯＦＦの状態に移行したものとする。
【０１５４】
また、図９のステップＳ８０７、Ｓ８０８、Ｓ８１０、Ｓ８１１ｂに示す処理は、図８に示す処理と同様なので、ここでは、図８に示す処理との相違点を中心に説明を行う。
【０１５５】
ステップＳ９０１において、イグニッション電源に接続されているＥＣＵ１１１は、ＩＧ−ＯＮに応じて、図７（ｂ）に示した処理を開始するが、ここでは、プログラムの更新が完了していないので、更新前のプログラムで起動する。
【０１５６】
ステップＳ９０２において、プログラムの更新に失敗したＥＣＵ１１１の更新部３２２は、プログラムの更新に失敗したことを示す更新結果（未完了又は失敗）を、更新管理装置１００に通知する。この処理は、図７（ｂ）のステップＳ７２５の処理に対応している。
【０１５７】
ステップＳ９０３において、更新管理装置１００の切替制御部３１５は、更新対象となるＥＣＵ１１１、及びＥＣＵ１１２のうち、ＥＣＵ１１１におけるプログラムの更新が完了していないことを確認する。この処理は、図６（ｂ）のステップＳ６２３、Ｓ６２４の処理に対応している。
【０１５８】
ステップＳ９０４ａ、Ｓ９０４ｂにおいて、更新管理装置１００の切替制御部３１５は、更新対象となるＥＣＵ１１１、及びＥＣＵ１１２に対して、更新前のプログラムへの切替えを要求する切替要求を通知する。この処理は、図６（ｂ）のステップＳ６２６の処理に対応している。
【０１５９】
ステップＳ９０５において、更新後のプログラムを実行中のＥＣＵ１１２は、更新前のプログラムで再起動し、ステップＳ９０７において、プログラムの切替えが完了したことを示す切替完了通知を、更新管理装置１００に通知する。この処理は、図７（ｂ）のステップＳ７３１の処理に対応している。
【０１６０】
一方、更新前のプログラムを実行中のＥＣＵ１１１は、更新管理装置１００から送信される切替要求を、例えば、無視する。また、別の一例として、ＥＣＵ１１１は、更新前のプログラムを実行中であることを示す切替完了通知を、更新管理装置１００に通知するものであっても良い。
【０１６１】
ステップＳ９０７において、更新管理装置１００の切替制御部３１５は、更新後のプログラムを実行していたＥＣＵ１１２における、更新前のプログラムへの切替えが完了したことを確認する。この処理は、例えば、図６（ｂ）のステップＳ６２７の処理に対応している。
【０１６２】
ステップＳ９０８ａ、Ｓ９０８ｂにおいて、更新管理装置１００の切替制御部３１５は、ＥＣＵ１１１、及びＥＣＵ１１２に対して、更新前のプログラムによる所定の制御の開始を要求する制御開始要求を通知する。この処理は、図６（ｂ）ステップＳ６２８の処理に対応している。
【０１６３】
ステップＳ９０９ａ、Ｓ９０９ｂにおいて、ＥＣＵ１１１、及びＥＣＵ１１２の切替部３２３は、更新前のプログラムによる所定の制御８２０を開始させる。この処理は、図７（ｂ）のステップＳ７３２、Ｓ７３３の処理に対応している。
【０１６４】
上記の処理により、更新システム１では、更新対象となるＥＣＵの中に、更新が完了していないＥＣＵがある場合には、更新前のプログラムに切り戻しを行い、車両１０の制御を実行する。
【０１６５】
以上、本実施形態によれば、起動又は再起動されるタイミングが異なる複数のＥＣＵ１１１、１１２が実行するプログラムを更新する更新システム１において、プログラムのバージョンの不整合を防止することができる。
【０１６６】
［第２の実施形態］
第１の実施形態では、車両１０のＩＧ−ＯＦＦ、及びＩＧ−ＯＮのタイミングで、ＥＣＵ１１１、１１２の起動、又は再起動を行い、更新前のプログラムから更新後のプログラムへの切替えを行う場合の例について説明を行った。ただし、これは好適な一例であり、ＥＣＵ１１１、１１２のプログラムの更新を行うタイミングは、ＩＧ−ＯＮ以外のタイミングであっても良い。
【０１６７】
第２の実施形態では、ＩＧ−ＯＮ後の所定のタイミングで（例えば、更新対象となる全てのＥＣＵの更新が完了したとき等に）、プログラムの更新を行う場合の例について説明する。
【０１６８】
＜ＥＣＵの構成＞
図１０は、第２の実施形態に係るＥＣＵの構成のイメージを示す図である。第２の実施形態に係るＥＣＵ１１１、１１２は、例えば、図１０に示すように、第１のＣＰＵ１００１、及び第２のＣＰＵ１００２を有している。
【０１６９】
第１のＣＰＵ１００１は、第１の所定のプログラムを実行することにより、例えば、図３の通信部３２１、更新部３２２、及び切替部３２３等を実現している。また、第２のＣＰＵ１００２は、第２の所定のプログラムを実行することにより、例えば、図３の起動制御部３２４、及び機能制御部３２５等を実現している。
【０１７０】
上記の構成により、第１のＣＰＵ１００１は、更新管理装置１００からの通知に応じて、第１の実施形態と同様に、第２の記憶領域３３３に更新後のプログラムを記憶し、ブート情報を更新する。また、第１のＣＰＵ１００２は、更新管理装置１００から、プログラムの更新タイミングを指示する切替指示を受付すると、第２のＣＰＵ１００２をソフトウェアリセットし、第２の記憶領域３３３に記憶した更新後のプログラムを用いて再起動させる。
【０１７１】
第２のＣＰＵ１００２は、第１の記憶領域に記憶された更新前のプログラムを用いて起動（又は再起動）し、第１のＣＰＵ１００１からの再起動要求に応じて、第２の記憶領域３３３に記憶された更新後のプログラムを用いて、再起動する。
【０１７２】
なお、第２の実施形態に係るＥＣＵ１１１、１１２の機能構成は、図３に示す第１の実施形態に係るＥＣＵ１１１、１１２の機能構成と同様で良い。
【０１７３】
＜処理の流れ＞
続いて、第２の実施形態に係る更新システム１の更新管理方法の処理の流れについて説明する。
【０１７４】
図１１は、第２の実施形態に係る更新システムの処理の例を示すシーケンス図である。なお、図１１に示す処理の開始時点において、ＥＣＵ１１１、及びＥＣＵ１１２は、図８のステップＳ８０１〜Ｓ８０５ａ、Ｓ８０５ｂの処理により、第２の記憶領域３３３への更新後のプログラムの記憶、及びブート情報３３１の更新が正常に完了しているものとする。
【０１７５】
ステップＳ１１０１において、例えば、ユーザのオフ操作により、車両１０がＩＧ−ＯＦＦの状態に移行する。これにより、イグニッション電源に接続されているＥＣＵ１１は動作を停止する。一方、常時供給電源に接続されているＥＣＵ１１２の第２のＣＰＵ１００２は、更新前のプログラムによる所定の制御８２０を継続する。
【０１７６】
ステップＳ１１０２において、例えば、ユーザのオン操作により、車両１０がＩＧ−ＯＮの状態に移行する。これにより、ステップＳ１１０３において、更新管理装置１００が起動し、ステップＳ１１０４において、ＥＣＵ１１１が起動する。このとき、本実施形態に係るＥＣＵ１１１の第２のＣＰＵ１００２は、起動前のプログラムを用いて起動し、更新前のプログラムによる所定の制御８２０を再開するものとする。
【０１７７】
ステップＳ１１０５ａ、Ｓ１００５ｂにおいて、更新管理装置１００は、所定のタイミングで、ＥＣＵ１１１、及びＥＣＵ１１２に、更新前のプログラムから更新後のプログラムへの切替えを指示する切替指示を通知する。
【０１７８】
一例として、更新管理装置１００は、ＩＧ−ＯＮに応じて起動したときに、ＥＣＵ１１１、及びＥＣＵ１１２に切替指示を通知する。これにより、第１の実施形態と同様に、車両１０のＩＧ−ＯＮに応じて、更新後のプログラムによる所定の制御８５０を開始させることができる。
【０１７９】
また、別の一例として、更新管理装置１００は、図６（ａ）のステップＳ６１４の処理により、更新対象となるＥＣＵ１１１、及びＥＣＵ１１２の更新が完了したことを確認したときに、ＥＣＵ１１１、及びＥＣＵ１１２に切替指示を通知するものであっても良い。さらに、更新管理装置１００は、上記以外のタイミングで、ＥＣＵ１１１、及びＥＣＵ１１２に切替指示を送信するものであっても良い。
【０１８０】
ステップＳ１１０６ａ、Ｓ１１０６ｂにおいて、ＥＣＵ１１１、及びＥＣＵ１１２の第１のＣＰＵ１００１で実現される切替部３２３は、第２のＣＰＵ１００２をソフトウェアリセットする。これにより、ＥＣＵ１１１、及びＥＣＵ１１２の第２のＣＰＵ１００２で実現される起動制御部３２４は、第２の記憶領域３３３に記憶された更新後のプログラムを用いて、第２のＣＰＵ１００２を再起動させる。これにより、ＥＣＵ１１１、及びＥＣＵ１１２において、更新前のプログラムから更新後のプログラムへの切替えが行われる。
【０１８１】
ステップＳ１１０７ａ、Ｓ１００７ｂにおいて、ＥＣＵ１１１、及びＥＣＵ１１２の第１のＣＰＵ１００１で実現される更新部３２２は、プログラムの更新が完了したことを示す更新結果（完了）を、更新管理装置１００に通知する。
【０１８２】
ステップＳ１１０８において、更新管理装置１００の切替制御部３１５は、更新対象となるＥＣＵ１１１、及びＥＣＵ１１２における、更新後のプログラムへの更新が完了したことを確認する。
【０１８３】
ステップＳ１１０９ａ、Ｓ１１０９ｂにおいて、更新管理装置１００の切替制御部３１５は、ＥＣＵ１１１、及びＥＣＵ１１２に対して、更新後のプログラムによる所定の制御の開始を要求する開始要求を通知する。
【０１８４】
ステップＳ１１１０ａ、Ｓ１１１０ｂにおいて、ＥＣＵ１１１、及びＥＣＵ１１２の第１のＣＰＵ１００１で実現される切替部３２３は、第２のＣＰＵ１００２に、更新後のプログラムによる所定の制御８５０を開始させる。
【０１８５】
上記の処理により、第２の実施形態に係る更新システム１は、ＩＧ−ＯＮ時とは異なる所定のタイミングで、更新対象となるＥＣＵ１１１、及びＥＣＵ１１２における、更新前のプログラムから更新後のプログラムへの切替えを行うことができるようになる。
【０１８６】
以上、本発明の実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、様々な変形や変更が可能である。
【符号の説明】
【０１８７】
１          更新システム
１０        車両
１００      更新管理装置
１１１      ＥＣＵ（第１の電子制御装置、電子制御装置）
１１２      ＥＣＵ（第２の電子制御装置、電子制御装置）
３１３      更新要求部（要求部）
３１４      更新結果記憶部（記憶部）
３１５      切替制御部
３２２      更新部
３２３      切替部
３２４      起動制御部
３３２      第１の記憶領域
３３３      第２の記憶領域
【図１】
2019084941.tif 000003
【図２】
2019084941.tif 000004
【図３】
2019084941.tif 000005
【図４】
2019084941.tif 000006
【図５】
2019084941.tif 000007
【図６】
2019084941.tif 000008
【図７】
2019084941.tif 000009
【図８】
2019084941.tif 000010
【図９】
2019084941.tif 000011
【図１０】
2019084941.tif 000012
【図１１】
2019084941.tif 000013