(57)【要約】      （修正有）【課題】ソフトウェアの更新をより良好に行い得るソフトウェア更新装置、車両及びソフトウェア更新方法を提供する。【解決手段】ソフトウェア更新システム１１において、ソフトウェア更新装置１２は、ソフトウェア更新が行われる際における車両１０の消費電力と、ソフトウェア更新に要する時間とに基づいて、ソフトウェア更新が行われる際における消費電力量を判定する消費電力量判定部３３と、消費電力量判定部によって判定された消費電力量と、車両に備えられたバッテリ２０に存在している電力量とに基づいて、前記ソフトウェア更新の可否を判定する更新可否判定部３５とを備える。【選択図】図１
2020135578.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して供給される新版ソフトウェアを取得する取得部と、
前記取得部によって取得される前記新版ソフトウェアを用いて、車両に搭載された電子制御装置に対してソフトウェア更新を行う更新制御部と、
前記ソフトウェア更新が行われる際における前記車両の消費電力と、前記電子制御装置に対する前記ソフトウェア更新に要する時間とに基づいて、前記電子制御装置に対する前記ソフトウェア更新が行われる際における消費電力量を判定する消費電力量判定部と、
前記消費電力量判定部によって判定された前記消費電力量と、前記車両に備えられたバッテリに存在している電力量とに基づいて、前記電子制御装置に対する前記ソフトウェア更新の可否を判定する更新可否判定部とを備え、
前記更新制御部は、前記電子制御装置に対する前記ソフトウェア更新が可能であると前記更新可否判定部が判定した場合に、前記電子制御装置に対する前記ソフトウェア更新を実行する、ソフトウェア更新装置。
【請求項２】
請求項１に記載のソフトウェア更新装置において、
前記更新制御部は、前記車両に備えられている、ソフトウェア更新装置。
【請求項３】
請求項１又は２記載のソフトウェア更新装置において、
前記ソフトウェア更新が行われる際における前記車両の前記消費電力に関する情報と、前記電子制御装置に対する前記ソフトウェア更新に要する時間に関する情報とのうちの少なくともいずれかは、前記ネットワークを介して外部機器から供給される、ソフトウェア更新装置。
【請求項４】
請求項１〜３のいずれか１項に記載のソフトウェア更新装置において、
複数の前記電子制御装置のうちの第１の電子制御装置には、前記第１の電子制御装置にインストールされた第１の旧版ソフトウェアを更新するための第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域が備えられており、
前記更新制御部は、前記第１の電子制御装置の前記格納可能領域への前記第１の新版ソフトウェアのインストールを、前記第１の電子制御装置と協調動作する第２の電子制御装置に対する第２の新版ソフトウェアのインストールに先立って行い、前記第２の電子制御装置に対する前記ソフトウェア更新が正常に完了した場合に、前記第１の新版ソフトウェアの動作ロジックの実行を前記第１の電子制御装置に開始させる、ソフトウェア更新装置。
【請求項５】
請求項１〜４のいずれか１項に記載のソフトウェア更新装置において、
時間に余裕があるか否かを判定する時間余裕判定部を更に有し、
前記電子制御装置に対する前記新版ソフトウェアのインストールが正常に完了せず、且つ、時間に余裕があると前記時間余裕判定部が判定した場合、前記更新制御部は、前記電子制御装置に対する前記新版ソフトウェアのインストールのリトライ処理を実行する、ソフトウェア更新装置。
【請求項６】
請求項１〜５のいずれか１項に記載のソフトウェア更新装置において、
前記電子制御装置に対する前記新版ソフトウェアのインストール、又は、前記電子制御装置にインストールされた前記新版ソフトウェアのアクティベーションが正常に完了しない場合、前記更新制御部は、前記電子制御装置に対してロールバック処理を実行する、ソフトウェア更新装置。
【請求項７】
請求項１〜６のいずれか１項に記載のソフトウェア更新装置において、
前記更新制御部は、前記電子制御装置に対する前記ソフトウェア更新を実行する際、前記車両に備えられた表示部における画面表示を一時的に中断する、ソフトウェア更新装置。
【請求項８】
請求項１〜７のいずれか１項に記載のソフトウェア更新装置において、
前記電子制御装置に対する前記ソフトウェア更新が正常に完了した場合、前記更新制御部は、前記電子制御装置に対してシャットダウンの処理を実行する、ソフトウェア更新装置。
【請求項９】
請求項１〜３のいずれか１項に記載のソフトウェア更新装置において、
複数の前記電子制御装置のうちの第１の電子制御装置には、前記第１の電子制御装置にインストールされた第１の旧版ソフトウェアを更新するための第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域が備えられており、
前記更新制御部は、前記第１の電子制御装置に対する前記第１の新版ソフトウェアのインストールを、前記車両の走行中に実行する、ソフトウェア更新装置。
【請求項１０】
請求項１〜３のいずれか１項に記載のソフトウェア更新装置において、
複数の前記電子制御装置のうちの第１の電子制御装置には、前記第１の電子制御装置にインストールされた第１の旧版ソフトウェアを更新するための第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域が備えられており、
前記更新制御部は、前記ソフトウェア更新が行われた後の前記第１の電子制御装置が、前記第１の新版ソフトウェアの動作ロジックと、前記第１の旧版ソフトウェアの動作ロジックとを選択的に実行することが可能となるように、前記第１の電子制御装置に対する前記ソフトウェア更新を実行する、ソフトウェア更新装置。
【請求項１１】
請求項１〜３のいずれか１項に記載のソフトウェア更新装置において、
複数の前記電子制御装置のうちの第１の電子制御装置には、前記第１の電子制御装置にインストールされた第１の旧版ソフトウェアを更新するための第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域が備えられており、
前記第１の新版ソフトウェアの動作ロジックの実行を前記第１の電子制御装置に開始させると、前記第１の旧版ソフトウェアの動作ロジックでは実現し得なかった機能の実行が可能となる、ソフトウェア更新装置。
【請求項１２】
請求項１〜１１のいずれか１項に記載のソフトウェア更新装置において、
前記車両が起動される予定の時刻である起動予定時刻を判定する起動予定時刻判定部を更に有し、
前記更新制御部は、前記起動予定時刻判定部によって判定された前記起動予定時刻までに前記電子制御装置に対する前記ソフトウェア更新が完了すると見込まれる場合に、前記電子制御装置に対する前記ソフトウェア更新を開始する、ソフトウェア更新装置。
【請求項１３】
請求項４、９、１０又は１１に記載のソフトウェア更新装置において、
前記第１の電子制御装置は、表示制御機能を有する電子制御装置である、ソフトウェア更新装置。
【請求項１４】
請求項１３に記載のソフトウェア更新装置において、
前記第１の電子制御装置は、車載インフォテイメント用の電子制御装置である、ソフトウェア更新装置。
【請求項１５】
請求項１〜１４のいずれか１項に記載のソフトウェア更新装置において、
前記バッテリに存在している前記電力量を判定する電力量判定部を更に有する、ソフトウェア更新装置。
【請求項１６】
請求項１５に記載のソフトウェア更新装置において、
前記電力量判定部は、前記バッテリの劣化状態に基づいて、前記バッテリに存在している前記電力量を判定する、ソフトウェア更新装置。
【請求項１７】
請求項１５又は１６に記載のソフトウェア更新装置において、
前記バッテリが認定品でない場合、前記更新可否判定部は、前記電子制御装置に対する前記ソフトウェア更新の可否を、前記電力量判定部によって判定された前記電力量に基づいて判定しない、ソフトウェア更新装置。
【請求項１８】
ネットワークを介して供給される新版ソフトウェアを取得する取得部と、
前記取得部によって取得される前記新版ソフトウェアを用いて、車両に搭載された電子制御装置に対してソフトウェア更新を実行する更新制御部と、
前記ソフトウェア更新が行われる際における前記車両の消費電力と、前記電子制御装置に対する前記ソフトウェア更新に要する時間とに基づいて、前記電子制御装置に対する前記ソフトウェア更新が行われる際における消費電力量を判定する消費電力量判定部と、
前記消費電力量判定部によって判定された前記消費電力量と、前記車両に備えられたバッテリに存在している電力量とに基づいて、前記電子制御装置に対する前記ソフトウェア更新の可否を判定する更新可否判定部とを備え、
前記更新可否判定部は、前記消費電力量判定部によって判定された前記消費電力量を、前記バッテリに存在している前記電力量から減じることにより得られる値が閾値以上である場合、前記電子制御装置に対する前記ソフトウェア更新が可能であると判定し、
前記更新制御部は、前記電子制御装置に対する前記ソフトウェア更新が可能であると前記更新可否判定部が判定した場合に、前記電子制御装置に対する前記ソフトウェア更新を実行する、ソフトウェア更新装置。
【請求項１９】
請求項１〜１８のいずれか１項に記載のソフトウェア更新装置を備える車両。
【請求項２０】
ネットワークを介して供給される新版ソフトウェアを用いて、車両に備えられた電子制御装置に対してソフトウェア更新を実行するソフトウェア更新方法であって、
前記ソフトウェア更新を実行する際における前記車両の消費電力と、前記電子制御装置に対する前記ソフトウェア更新に要する時間とに基づいて、前記電子制御装置に対する前記ソフトウェア更新が行われる際における消費電力量を判定するステップと、
前記消費電力量を判定するステップにおいて判定された前記消費電力量と、前記車両に備えられたバッテリに存在している電力量とに基づいて、前記電子制御装置に対する前記ソフトウェア更新の可否を判定するステップと
を有する、ソフトウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア更新装置、車両及びソフトウェア更新方法に関する。
【背景技術】
【０００２】
特許文献１には、サーバから配信される更新用ソフトウェアを用いて制御装置のソフトウェアを更新する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−４５５１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ソフトウェアの更新をより良好に行い得る技術が待望されている。
【０００５】
本発明の目的は、ソフトウェアの更新をより良好に行い得るソフトウェア更新装置、車両及びソフトウェア更新方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様によるソフトウェア更新装置は、ネットワークを介して供給される新版ソフトウェアを取得する取得部と、前記取得部によって取得される前記新版ソフトウェアを用いて、車両に搭載された電子制御装置に対してソフトウェア更新を行う更新制御部と、前記ソフトウェア更新が行われる際における前記車両の消費電力と、前記電子制御装置に対する前記ソフトウェア更新に要する時間とに基づいて、前記電子制御装置に対する前記ソフトウェア更新が行われる際における消費電力量を判定する消費電力量判定部と、前記消費電力量判定部によって判定された前記消費電力量と、前記車両に備えられたバッテリに存在している電力量とに基づいて、前記電子制御装置に対する前記ソフトウェア更新の可否を判定する更新可否判定部とを備え、前記更新制御部は、前記電子制御装置に対する前記ソフトウェア更新が可能であると前記更新可否判定部が判定した場合に、前記電子制御装置に対する前記ソフトウェア更新を実行する。
【０００７】
本発明の他の態様によるソフトウェア更新装置は、ネットワークを介して供給される新版ソフトウェアを取得する取得部と、前記取得部によって取得される前記新版ソフトウェアを用いて、車両に搭載された電子制御装置に対してソフトウェア更新を実行する更新制御部と、前記ソフトウェア更新が行われる際における前記車両の消費電力と、前記電子制御装置に対する前記ソフトウェア更新に要する時間とに基づいて、前記電子制御装置に対する前記ソフトウェア更新が行われる際における消費電力量を判定する消費電力量判定部と、前記消費電力量判定部によって判定された前記消費電力量と、前記車両に備えられたバッテリに存在している電力量とに基づいて、前記電子制御装置に対する前記ソフトウェア更新の可否を判定する更新可否判定部とを備え、前記更新可否判定部は、前記消費電力量判定部によって判定された前記消費電力量を、前記バッテリに存在している前記電力量から減じることにより得られる値が閾値以上である場合、前記電子制御装置に対する前記ソフトウェア更新が可能であると判定し、前記更新制御部は、前記電子制御装置に対する前記ソフトウェア更新が可能であると前記更新可否判定部が判定した場合に、前記電子制御装置に対する前記ソフトウェア更新を実行する。
【０００８】
本発明の更に他の態様による車両は、上記のようなソフトウェア更新装置を備える。
【０００９】
本発明の更に他の態様によるソフトウェア更新方法は、ネットワークを介して供給される新版ソフトウェアを用いて、車両に備えられた電子制御装置に対してソフトウェア更新を実行するソフトウェア更新方法であって、前記ソフトウェア更新を実行する際における前記車両の消費電力と、前記電子制御装置に対する前記ソフトウェア更新に要する時間とに基づいて、前記電子制御装置に対する前記ソフトウェア更新が行われる際における消費電力量を判定するステップと、前記消費電力量を判定するステップにおいて判定された前記消費電力量と、前記車両に備えられたバッテリに存在している電力量とに基づいて、前記電子制御装置に対する前記ソフトウェア更新の可否を判定するステップとを有する。
【発明の効果】
【００１０】
本発明によれば、ソフトウェアの更新をより良好に行い得るソフトウェア更新装置、車両及びソフトウェア更新方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態によるソフトウェア更新装置を含むソフトウェア更新システムを示すブロック図である。
【図２】図２Ａ及び図２Ｂは、不揮発性メモリの構成の例を概念的に示す図である。
【図３】一実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。
【図４】一実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。
【図５】一実施形態によるソフトウェア更新装置の動作の例を示すタイミングチャートである。
【図６】一実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。
【図７】一実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。
【図８】一実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。
【図９】一実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。
【図１０】一実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
本発明によるソフトウェア更新装置、車両及びソフトウェア更新方法について、好適な実施形態を挙げ、添付の図面を参照して以下に詳細に説明する。
【００１３】
［一実施形態］
一実施形態によるソフトウェア更新装置、車両及びソフトウェア更新方法について図面を用いて説明する。図１は、本実施形態によるソフトウェア更新装置を含むソフトウェア更新システムを示すブロック図である。
【００１４】
本実施形態によるソフトウェア更新システム１１は、車両１０と、サーバ（外部機器）２２とを有する。
【００１５】
車両１０には、ソフトウェア更新装置１２と、通信部１４と、電子制御装置（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１６と、イグニッションスイッチ（ＩＧＳＷ）１８と、バッテリ（ＢＡＴ）２０と、表示部２１とが備えられている。なお、電子制御装置一般について説明する際には、符号１６を用い、個々の電子制御装置について説明する際には、符号１６Ａ、１６Ｂを用いる。車両１０には、多数の電子制御装置１６が備えられているが、図１には、多数の電子制御装置１６のうちの２つの電子制御装置１６が示されている。即ち、図１には、第１の電子制御装置１６Ａと、第２の電子制御装置１６Ｂとが示されている。ここでは、第１の電子制御装置１６Ａと、第２の電子制御装置１６Ｂとが協調動作（同期動作）する場合を例に説明する。なお、車両１０には、これらの構成要素以外の構成要素も備えられるが、ここでは説明を省略する。
【００１６】
サーバ２２には、データベース３８と、通信部４０とが備えられている。通信部４０は、車両１０に備えられた通信部１４との間で無線通信を行い得る。データベース３８には、電子制御装置１６にインストールされたソフトウェア（旧版ソフトウェア、現行ソフトウェア）を更新するための新版ソフトウェア（更新用ソフトウェア）が格納され得る。なお、サーバ２２には、これらの構成要素以外の構成要素も備えられるが、ここでは説明を省略する。
【００１７】
通信部１４は、ネットワーク２５を介して、サーバ２２に備えられた通信部４０との間で無線通信を行い得る。ネットワーク２５としては、例えば、インターネット等が挙げられるがこれに限定されるものではない。通信部１４は、セルラー方式で通信を行い得る通信部であってもよいし、無線ＬＡＮ通信を行い得る通信部であってもよい。通信部１４は、ネットワーク２５を介してサーバ２２から供給される新版ソフトウェアを受信し得る。
【００１８】
ソフトウェア更新装置１２には、演算部２４と、記憶部２６とが備えられている。演算部２４は、ソフトウェア更新装置１２の全体の制御を司る。演算部２４は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって構成されている。演算部２４は、記憶部２６に記憶されているプログラムに基づいて各部を制御することによって、ソフトウェア（ファームウェア）の更新制御を実行する。記憶部２６には、不図示の揮発性メモリと、不図示の不揮発性メモリとが備えられている。サーバ２２からダウンロードされる新版ソフトウェアは、記憶部２６に一時的に記憶され得る。
【００１９】
演算部２４には、取得部２８と、更新制御部３０と、時間余裕判定部３２と、消費電力量判定部３３と、電力量判定部３４と、更新可否判定部３５と、起動予定時刻判定部３６とが備えられている。取得部２８、更新制御部３０、時間余裕判定部３２、消費電力量判定部３３、電力量判定部３４、更新可否判定部３５及び起動予定時刻判定部３６は、記憶部２６に記憶されているプログラムが演算部２４によって実行されることによって実現され得る。
【００２０】
取得部２８は、ネットワーク２５を介してサーバ２２から供給される新版ソフトウェア（ソフトウェア）を取得する。より具体的には、取得部２８は、通信部１４によって受信された新版ソフトウェアを取得する。
【００２１】
更新制御部３０は、取得部２８によって取得される新版ソフトウェアを用いて、車両１０に搭載された複数の電子制御装置１６の各々に対してソフトウェアの更新、即ち、ソフトウェア更新を行う。
【００２２】
ここでは、第１の電子制御装置（電子制御装置）１６Ａに、第１の旧版ソフトウェア（第１の現行ソフトウェア）がインストールされている場合を例に説明する。また、ここでは、第２の電子制御装置（電子制御装置）１６Ｂに、第２の旧版ソフトウェア（第２の現行ソフトウェア）がインストールされている場合を例に説明する。また、ここでは、第１の電子制御装置１６Ａにインストールされている第１の旧版ソフトウェアが、サーバ２２から供給される第１の新版ソフトウェアによって更新される場合を例に説明する。また、ここでは、第２の電子制御装置１６Ｂにインストールされている第２の旧版ソフトウェアが、サーバ２２から供給される第２の新版ソフトウェアによって更新される場合を例に説明する。
【００２３】
第１の電子制御装置１６Ａに備えられている不図示の不揮発性メモリの記憶容量は、比較的大きい。図２Ａは、第１の電子制御装置１６Ａに備えられている不揮発性メモリの構成の例を概念的に示す図である。第１の電子制御装置１６Ａには、不揮発性のメモリチップが複数備えられている。ここでは、不揮発性のメモリチップが２つ備えられている場合、即ち、第１のメモリチップと第２のメモリチップとが備えられている場合を例に説明する。第１のメモリチップは、例えば、不図示の基板の一方の面に搭載されている。第２のメモリチップは、例えば、基板の他方の面に搭載されている。第１のメモリチップは、第１のバンク（第１のメモリバンク、第１の格納箇所）５０Ａを構成している。第２のメモリチップは、第２のバンク（第２のメモリバンク、第２の格納箇所）５０Ｂを構成している。このような構成は、ダブルバンクと称される。第１の電子制御装置１６Ａにおいては、例えば、第１のバンク５０Ａに第１の旧版ソフトウェアがインストールされている状態において、第２のバンク５０Ｂに第１の新版ソフトウェアをインストールすることが可能である。即ち、第２のバンク５０Ｂは、第１の新版ソフトウェアをインストールする際のバッファとして機能し得る。換言すれば、第２のバンク５０Ｂは、第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域（インストール可能領域）として機能し得る。なお、ここでは、複数のメモリチップが第１の電子制御装置１６Ａに備えられている場合を例に説明したが、これに限定されるものではない。大容量の１つのメモリチップが第１の電子制御装置１６Ａに備えられているようにしてもよい。そして、第１のバンク５０Ａと第２のバンク５０Ｂとが大容量の１つのメモリチップに備えられているようにしてもよい。
【００２４】
第１の電子制御装置１６Ａは、例えば、表示制御機能が備えられた電子制御装置であるが、これに限定されるものではない。より具体的には、第１の電子制御装置１６Ａは、例えば、車載インフォテイメント（ＩＶＩ：Ｉｎ−Ｖｅｈｉｃｌｅ  Ｉｎｆｏｔａｉｎｍｅｎｔ）用のＥＣＵ、メータ表示部用のＥＣＵ等であるが、これに限定されるものではない。
【００２５】
第２の電子制御装置１６Ｂに備えられている不図示の不揮発性メモリの容量は、比較的小さい。図２Ｂは、第２の電子制御装置１６Ｂに備えられている不揮発性メモリの構成の例を概念的に示す図である。第２の電子制御装置１６Ｂには、不揮発性のメモリチップが例えば１つだけ備えられている。１つのメモリチップによって、バンク５２が構成されている。第２の電子制御装置１６Ｂには、バンク５２が１つのみ備えられている。このような構成は、シングルバンクと称される。第２の電子制御装置１６Ｂにおいては、メモリチップに第２の旧版ソフトウェアがインストールされている状態において、当該メモリチップに第２の新版ソフトウェアをインストールし得ない。このように、第２の電子制御装置１６Ｂには、第２の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域が備えられていない。
【００２６】
上述したように、第１の電子制御装置１６Ａには、第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域、即ち、第２のバンク５０Ｂが備えられている。このため、第１の電子制御装置１６Ａに対しては、車両１０の走行中であっても第１の新版ソフトウェアのインストールが行われ得る。
【００２７】
上述したように、第２の電子制御装置１６Ｂには、第２の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域が備えられていない。このため、第２の電子制御装置１６Ｂに対しては、車両１０の走行中には第２の新版ソフトウェアのインストールが行われ得ない。従って、更新制御部３０は、第２の電子制御装置１６Ｂに対する第２の新版ソフトウェアのインストールを、車両１０が停止している際に実行する。換言すれば、更新制御部３０は、第２の電子制御装置１６Ｂに対する第２の新版ソフトウェアのインストールを、車両１０の主電源がオフになっている際、即ち、イグニッションスイッチ１８がオフになっている際に実行する。イグニッションスイッチ１８がオフになっていても、ソフトウェア更新装置１２、通信部１４、電子制御装置１６等に対する電力の供給は、バッテリ２０等から適宜行われ得る。
【００２８】
上述したように、第１の電子制御装置１６Ａに対しては、車両１０の走行中であっても第１の新版ソフトウェアのインストールが行われ得る。ユーザが車両１０を使用し得なくなる時間を短縮する観点からは、車両１０の走行中に第１の新版ソフトウェアのインストールを行い得る第１の電子制御装置１６Ａに対しては、以下のようにすることが好ましい。即ち、第１の電子制御装置１６Ａに対する第１の新版ソフトウェアのインストールを、車両１０の走行中に実行しておくことが好ましい。更新制御部３０は、第１の電子制御装置１６Ａに対する第１の新版ソフトウェアのインストールを、例えば、車両１０の走行中に実行する。例えば、第１のバンク５０Ａに第１の旧版ソフトウェアがインストールされている場合、第２のバンク５０Ｂに第１の新版ソフトウェアがインストールされ得る。このように、更新制御部３０は、第１の旧版ソフトウェアと第１の新版ソフトウェアとを第１の電子制御装置１６Ａに併存させるように、第１の電子制御装置１６Ａに対するソフトウェアの更新を行う。第１の電子制御装置１６Ａにインストールされる第１の新版ソフトウェアのアクティベーションは、車両１０の走行中には行われない。なお、車両１０が停止している際に、第１の電子制御装置１６Ａに対する第１の新版ソフトウェアのインストールが実行されるようにしてもよい。なお、アクティベーションとは、電子制御装置等の初回起動時又は初期化後に、当該電子制御装置等に備えられた機能を実行可能とすることである。
【００２９】
更新制御部３０は、第１の電子制御装置１６Ａにインストールされた第１の新版ソフトウェアのアクティベーションを、車両１０が停止している際に実行する。換言すれば、更新制御部３０は、第１の電子制御装置１６Ａにインストールされている第１の新版ソフトウェアのアクティベーションを、車両１０の主電源がオフになっている際、即ち、イグニッションスイッチ１８がオフになっている際に実行する。
【００３０】
更新制御部３０は、第１の新版ソフトウェアがインストールされた第１の電子制御装置１６Ａが、以下のように動作し得るように、第１の電子制御装置１６Ａに対するソフトウェアの更新を行い得る。即ち、更新制御部３０は、第１の電子制御装置１６Ａが、第１の新版ソフトウェアの動作ロジック（ソースコード、プログラムコード、プログラムコードロジック）と、第１の旧版ソフトウェアの動作ロジックとを選択的に実行し得るように、ソフトウェアの更新を行う。
【００３１】
上述したように、第１のバンク５０Ａには、第１の旧版ソフトウェアがインストールされている。このような状態において、第２のバンク５０Ｂに第１の新版ソフトウェアがインストールされる。第１のバンク５０Ａに第１の旧版ソフトウェアがインストールされている状態で、第２のバンク５０Ｂに第１の新版ソフトウェアがインストールされるため、第１の電子制御装置１６Ａは、以下のように動作し得る。即ち、第１の電子制御装置１６Ａは、更新前のソフトウェアである第１の旧版ソフトウェアの動作ロジックと、更新後のソフトウェアである第１の新版ソフトウェアの動作ロジックとを選択的に実行し得る。なお、第１の新版ソフトウェアが、第１の新版ソフトウェアの動作ロジックのみならず、第１の旧版ソフトウェアの動作ロジックをも実現し得てもよい。
【００３２】
第２の電子制御装置１６Ｂに対するソフトウェアの更新が正常に完了した場合、更新制御部３０は、第１の新版ソフトウェアの動作ロジックの実行を第１の電子制御装置１６Ａに開始させる。第１の新版ソフトウェアの動作ロジックの実行を第１の電子制御装置１６Ａに開始させることにより、第１の旧版ソフトウェアの動作ロジックでは実現し得なかった機能の実行が可能となる。
【００３３】
更新制御部３０は、第２の電子制御装置１６Ｂに対する新版ソフトウェアのインストールが正常に完了しない場合、ロールバック処理を行う。即ち、第２の電子制御装置１６Ｂに対する新版ソフトウェアのインストールが正常に完了しない場合、更新制御部３０は、第２の電子制御装置１６Ｂのソフトウェアを更新前の状態に戻す処理を行う。この場合、更新制御部３０は、第１の旧版ソフトウェアの動作ロジックを第１の電子制御装置１６Ａに実行させる。この場合、更新制御部３０は、第１の電子制御装置１６Ａにインストールされた第１の新版ソフトウェアのアクティベーションを実行しないようにしてもよい。
【００３４】
更新制御部３０は、第２の電子制御装置１６Ｂにインストールされた新版ソフトウェアのアクティベーションが正常に完了しない場合、第２の電子制御装置１６Ｂに対してロールバック処理を行う。即ち、第２の電子制御装置１６Ｂに対する新版ソフトウェアのアクティベーションが正常に完了しない場合、更新制御部３０は、第２の電子制御装置１６Ｂのソフトウェアを更新前の状態に戻す処理を行う。この場合、更新制御部３０は、第１の旧版ソフトウェアの動作ロジックを第１の電子制御装置１６Ａに実行させる。この場合、更新制御部３０は、第１の電子制御装置１６Ａにインストールされた第１の新版ソフトウェアのアクティベーションを実行しないようにしてもよい。
【００３５】
このように、本実施形態では、第１の新版ソフトウェアの動作ロジックと、第１の旧版ソフトウェアの動作ロジックとを第１の電子制御装置１６Ａが選択的に実行することが可能となるように、ソフトウェアの更新が行われる。本実施形態によれば、新版ソフトウェアがインストールされた第１の電子制御装置１６Ａと、第２の新版ソフトウェアがインストールされた第２の電子制御装置１６Ｂとが良好に協調動作し得ない場合、以下のようにすることができる。即ち、このような場合、更新制御部３０は、第２の電子制御装置１６Ｂのソフトウェアを更新前の状態に戻し、第１の電子制御装置１６Ａに第１の旧版ソフトウェアの動作ロジックを実行させる。このようにすることにより、本実施形態によれば、第１の新版ソフトウェアが第１の電子制御装置１６Ａにインストールされているにもかかわらず、第１の電子制御装置１６Ａと第２の電子制御装置１６Ｂとを協調動作させることができる。
【００３６】
時間余裕判定部３２は、新版ソフトウェアのインストールのリトライ処理（再試行処理）を実行する時間的な余裕があるか否かを判定し得る。時間余裕判定部３２は、リトライ処理を実行する時間的な余裕があるか否かを、現在の時刻と、リトライ処理に要する時間と、車両１０が起動される予定の時刻とに基づいて判定し得る。なお、車両１０が起動される予定の時刻、即ち、車両１０の起動予定時刻は、起動予定時刻判定部３６によって判定され得る。
【００３７】
更新制御部３０は、電子制御装置１６に対する新版ソフトウェアのインストールが正常に完了せず、且つ、時間に余裕があると時間余裕判定部３２が判定した場合、以下のような処理を行う。即ち、更新制御部３０は、このような場合、電子制御装置１６に対する新版ソフトウェアのインストールのリトライ処理を行う。
【００３８】
消費電力量判定部３３は、ソフトウェアの更新が行われる際における車両１０の消費電力と、電子制御装置１６に対するソフトウェアの更新に要する時間とに基づいて、電子制御装置に対するソフトウェアの更新が行われる際における消費電力量を判定する。ソフトウェアの更新の際における第１の電子制御装置１６Ａの消費電力と、第１の電子制御装置１６Ａに対するソフトウェアの更新に要する時間とに基づいて、ソフトウェアの更新の際における第１の電子制御装置１６Ａの消費電力量が判定される。ソフトウェアの更新の際における第２の電子制御装置１６Ｂの消費電力と、第２の電子制御装置１６Ｂに対するソフトウェアの更新に要する時間とに基づいて、ソフトウェアの更新の際における第２の電子制御装置１６Ｂの消費電力量が判定される。ソフトウェアの更新の際における第１の電子制御装置１６Ａの消費電力量を、第１の消費電力量とする。ソフトウェアの更新の際における第２の電子制御装置１６Ｂの消費電力量を、第２の消費電力量とする。電子制御装置１６Ａ、１６Ｂに対するソフトウェアの更新において消費される電力量は、第１の消費電力量と、第２の消費電力量と、これらの電子制御装置１６Ａ、１６Ｂ以外の構成要素における消費電力量との和である。電子制御装置１６Ａ、１６Ｂ以外の構成要素としては、例えば、ソフトウェア更新装置１２、通信部１４等が挙げられ得る。このように、電子制御装置１６Ａ、１６Ｂに対するソフトウェアの更新において消費される電力量は、第１の消費電力量と、第２の消費電力量とに基づいて算出され得る。ソフトウェアの更新が行われる際における電子制御装置１６の消費電力に関する情報は、ネットワーク２５を介して外部機器、即ち、サーバ２２から供給され得る。ソフトウェアの更新が行われる際における車両１０の消費電力に関する情報が、ネットワーク２５を介して外部機器、即ち、サーバ２２から供給されるようにしてもよい。また、電子制御装置１６に対するソフトウェアの更新に要する時間に関する情報は、ネットワーク２５を介してサーバ２２から供給され得る。なお、ここでは、消費電力量判定部３３がソフトウェア更新装置１２に備えられている場合を例に説明するが、これに限定されるものではない。消費電力量判定部３３は、ソフトウェア更新装置１２と別個に車両１０に備えられた電子制御装置１６に備えられていてもよい。
【００３９】
バッテリ２０には、不図示の電圧センサ、不図示の温度センサ、及び、不図示の電流センサが備えられている。バッテリ２０に備えられたこれらのセンサからそれぞれ出力される信号は、ソフトウェア更新装置１２に供給される。電力量判定部（バッテリ残量判定部）３４は、バッテリ２０から供給されるこれらの信号に基づいて、バッテリ２０の充電状態（ＳＯＣ：Ｓｔａｔｅ  Ｏｆ  Ｃｈａｒｇｅ）を判定する。即ち、電力量判定部３４は、バッテリ２０に存在している電力量、即ち、バッテリ残量を判定する。電力量判定部３４は、これらの信号のみならず、バッテリ２０の劣化状態にも基づいて、バッテリ２０に存在している電力量を判定し得る。なお、ここでは、電力量判定部３４がソフトウェア更新装置１２に備えられている場合を例に説明するが、これに限定されるものではない。電力量判定部３４は、ソフトウェア更新装置１２と別個に車両１０に備えられた電子制御装置１６に備えられていてもよい。
【００４０】
更新可否判定部３５は、消費電力量判定部３３によって判定された消費電力量と、車両１０に備えられたバッテリ２０に存在している電力量とに基づいて、電子制御装置１６に対するソフトウェアの更新の可否を判定する。更新可否判定部３５は、消費電力量判定部３３によって判定された消費電力量を、バッテリ２０に存在している電力量から減じることにより得られる値が閾値以上である場合、電子制御装置１６に対するソフトウェアの更新が可能であると判定する。閾値は、例えば、車両１０の再起動に要する電力量に基づいて設定され得るが、これに限定されるものでない。更新可否判定部３５は、バッテリ２０が認定品でない場合、電子制御装置１６に対するソフトウェアの更新の可否を、電力量判定部３４によって判定された電力量に基づいて判定しない。バッテリ２０が認定品でない場合には、バッテリ２０に存在している電力量を必ずしも正確に判定し得ないためである。なお、ここでは、更新可否判定部３５がソフトウェア更新装置１２に備えられている場合を例に説明するが、これに限定されるものではない。更新可否判定部３５は、ソフトウェア更新装置１２と別個に車両１０に備えられた電子制御装置１６に備えられていてもよい。
【００４１】
更新制御部３０は、第１の電子制御装置１６Ａにインストールされた第１の新版ソフトウェアのアクティベーションが正常に完了した場合、第１の電子制御装置１６Ａに対してシャットダウンの処理を行う。更新制御部３０は、第２の電子制御装置１６Ｂにインストールされた第２の新版ソフトウェアのアクティベーションが正常に完了した場合、第２の電子制御装置１６Ｂに対してシャットダウンの処理を行う。
【００４２】
起動予定時刻判定部３６は、車両１０が停止するごとに、即ち、車両１０の主電源がオフになる毎に、以下のような情報を記憶部２６に記憶しておく。即ち、起動予定時刻判定部３６は、車両１０が停止された日付、車両１０が停止された曜日、車両１０の停止が開始された時刻、停止していた車両１０が起動された時刻、車両１０が停止した場所等を記憶部２６に記憶しておく。起動予定時刻判定部３６は、これらの情報に基づいて、停止している車両１０の起動予定時刻を判定する。起動予定時刻判定部３６は、例えば、現在の車両１０の位置と、現在の時刻等とに基づいて、現在停止している車両１０の起動予定時刻を判定する。車両１０には、例えば、不図示のＧＮＳＳ（Ｇｌｏｂａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ、全地球航法衛星システム）センサが備えられている。起動予定時刻判定部３６は、ＧＮＳＳセンサから供給される情報に基づいて、現在の車両１０の位置を検出し得る。例えば、車両１０の現在の位置が自宅の敷地内であり、且つ、現在の時刻が例えば２１時である場合、起動予定時刻判定部３６は、翌朝の例えば７時に車両１０が起動されると判定し得る。なお、人工知能（ＡＩ：Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）技術を用いて起動予定時刻判定部３６を実現するようにしてもよい。
【００４３】
更新制御部３０は、起動予定時刻判定部３６によって判定された起動予定時刻より前に複数の電子制御装置１６に対するソフトウェアの更新が完了すると見込まれる場合、複数の電子制御装置１６に対するソフトウェアの更新を開始する。より具体的には、更新制御部３０は、起動予定時刻に対して所定時間だけ前の時刻までに、複数の電子制御装置１６に対するソフトウェアの更新が完了すると見込まれる場合、複数の電子制御装置１６に対するソフトウェアの更新を開始する。なお、電子制御装置１６に対するソフトウェアの更新には、電子制御装置１６への新版ソフトウェアのインストールと、電子制御装置１６にインストールされた新版ソフトウェアのアクティベーションとが含まれる。
【００４４】
表示部２１は、ソフトウェアの更新等に関する表示画面が表示され得る。表示部２１は、例えばタッチパネルであるが、これに限定されるものではない。ユーザは、例えばタッチパネルを操作することにより、ソフトウェア更新装置１２に対して操作入力を行い得る。例えば、ソフトウェアの更新に同意する意思表示を、ユーザは、タッチパネルを操作することによって行い得る。更新制御部３０は、電子制御装置１６に対するソフトウェアの更新を行う際、表示部２１における画面表示を一時的に中断させ得る。表示部２１における画面表示を中断させることにより、バッテリ２０における電力量不足に対処し得る。
【００４５】
図３は、本実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。
【００４６】
ステップＳ１において、消費電力量判定部３３は、ソフトウェアの更新が行われる際における車両１０の消費電力と、電子制御装置１６に対するソフトウェアの更新に要する時間とに基づいて、以下のような判定を行う。即ち、消費電力量判定部３３は、これらに基づいて、電子制御装置１６に対するソフトウェアの更新が行われる際における消費電力量を判定する。上述したように、ソフトウェアの更新が行われる際における電子制御装置１６の消費電力に関する情報は、例えば、ネットワーク２５を介して外部機器、即ち、サーバ２２から供給され得る。また、上述したように、ソフトウェアの更新が行われる際における車両１０の消費電力に関する情報が、例えば、ネットワーク２５を介して外部機器、即ち、サーバ２２から供給されるようにしてもよい。また、上述したように、電子制御装置１６に対するソフトウェアの更新に要する時間に関する情報は、例えば、ネットワーク２５を介してサーバ２２から供給され得る。なお、消費電力量判定部３３は、ソフトウェアの更新が正常に完了しない場合に行われ得るロールバック処理に要する消費電力量に更に基づいて、電子制御装置１６に対するソフトウェアの更新が行われる際における消費電力量を判定するようにしてもよい。また、消費電力量判定部３３は、新版ソフトウェアのインストールのリトライ処理に要する消費電力量に更に基づいて、電子制御装置１６に対するソフトウェアの更新が行われる際における消費電力量を判定するようにしてもよい。
【００４７】
ステップＳ２において、更新可否判定部３５は、消費電力量判定部３３によって判定された消費電力量と、車両１０に備えられたバッテリ２０に存在している電力量とに基づいて、電子制御装置１６に対するソフトウェアの更新の可否を判定する。上述したように、更新可否判定部３５は、消費電力量判定部３３によって判定された消費電力量を、バッテリ２０に存在している電力量から減じることにより得られる値が閾値以上である場合、以下のように判定する。即ち、更新可否判定部３５は、このような場合、電子制御装置１６に対するソフトウェアの更新が可能であると判定する。更新可否判定部３５が電子制御装置１６に対するソフトウェアの更新が可能であると判定した場合（ステップＳ２においてＹＥＳ）、ステップＳ３に遷移する。更新可否判定部３５が電子制御装置１６に対するソフトウェアの更新が不可能であると判定した場合（ステップＳ２においてＮＯ）、図３に示す処理が完了する。
【００４８】
ステップＳ３において、更新制御部３０は、ソフトウェアの更新を行うことに同意するか否かをユーザに問うための表示画面を、表示部２１に表示する。ステップＳ３は、車両１０の主電源がオンの状態で実行される。ユーザは、例えば、表示部２１に備えられたタッチパネルを操作することによって、ソフトウェアの更新に同意するか否かの意思表示を行い得る。ソフトウェアの更新にユーザが同意した場合（ステップＳ３においてＹＥＳ）、ステップＳ４に遷移する。ソフトウェアの更新にユーザが同意しない場合（ステップＳ３においてＮＯ）、図３に示す処理が完了する。
【００４９】
ステップＳ４において、更新制御部３０は、第１の電子制御装置１６Ａに第１の新版ソフトウェアをバックグラウンドでインストールする。この後、ステップＳ５に遷移する。
【００５０】
ステップＳ５において、更新制御部３０は、車両１０の主電源がオフになったか否かを判定する。即ち、更新制御部３０は、イグニッションスイッチ１８がオフになったか否かを判定する。車両１０の主電源がオフになった場合（ステップＳ５においてＹＥＳ）、ステップＳ６に遷移する。車両１０の主電源がオンである場合（ステップＳ５においてＮＯ）、ステップＳ５が繰り返される。
【００５１】
ステップＳ６において、更新制御部３０は、第１の電子制御装置１６Ａにインストールされた第１の新版ソフトウェアのアクティベーションを行う。この後、ステップＳ７に遷移する。
【００５２】
ステップＳ７において、更新制御部３０は、第２の電子制御装置１６Ｂに第２の新版ソフトウェアをインストールする。この後、ステップＳ８に遷移する。
【００５３】
ステップＳ８において、更新制御部３０は、第２の電子制御装置１６Ｂにインストールされた第２の新版ソフトウェアのアクティベーションを行う。こうして、図３に示す処理が完了する。
【００５４】
図４は、本実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。図４に示す処理は、図３に示す処理が完了した後に実行され得る。
【００５５】
ステップＳ１１において、更新制御部３０は、車両１０の主電源がオンになったか否かを判定する。車両１０の主電源がオンになった場合（ステップＳ１１においてＹＥＳ）、ステップＳ１２に遷移する。車両１０の主電源がオフである場合（ステップＳ１１においてＮＯ）、ステップＳ１１が繰り返される。
【００５６】
ステップＳ１２において、更新制御部３０は、第１の電子制御装置１６Ａと第２の電子制御装置１６Ｂとに協調動作を開始させる。第１の電子制御装置１６Ａは、第１の新版ソフトウェアの動作ロジックを実行し、第２の電子制御装置１６Ｂは、第２の新版ソフトウェアの動作ロジックを実行する。こうして、図４に示す処理が完了する。
【００５７】
図５は、本実施形態によるソフトウェア更新装置の動作の例を示すタイミングチャートである。図５は、図３におけるステップＳ４〜Ｓ８に対応している。
【００５８】
図５に示すように、タイミングｔ１において、第１の電子制御装置１６Ａへの第１の新版ソフトウェアのインストールが開始される。タイミングｔ１において、イグニッションスイッチ１８はオンになっており、車両１０は走行中である。このように、イグニッションスイッチ１８がオンになっている状態において、第１の新版ソフトウェアのインストールが第１の電子制御装置１６Ａに対して行われる。即ち、車両１０が走行している際に、第１の新版ソフトウェアのインストールが第１の電子制御装置１６Ａに対して行われる。この際、第２の電子制御装置１６Ｂに対しては、第２の新版ソフトウェアのインストールは行われない。
【００５９】
タイミングｔ２において、イグニッションスイッチ１８がオフとなる。即ち、タイミングｔ２において、車両１０が停止中となる。イグニッションスイッチ１８がオフになると、第１の電子制御装置１６Ａにインストールされた第１の新版ソフトウェアのアクティベーションが開始される。
【００６０】
タイミングｔ３において、第１の電子制御装置１６Ａにインストールされた第１の新版ソフトウェアのアクティベーションが完了する。第１の電子制御装置１６Ａには第１の新版ソフトウェアがインストールされているが、第１の電子制御装置１６Ａは、依然として、第１の旧版ソフトウェアの動作ロジックを実行し得る（仮ＮＥＷ）。第１の電子制御装置１６Ａにインストールされた第１の新版ソフトウェアのアクティベーションが正常に完了すると、更新制御部３０は、第１の電子制御装置１６Ａに対してシャットダウンの処理を行う。また、第１の電子制御装置１６Ａにインストールされた第１の新版ソフトウェアのアクティベーションが正常に完了すると、第２の電子制御装置１６Ｂへの第２の新版ソフトウェアのインストールが開始される。
【００６１】
タイミングｔ４において、第２の電子制御装置１６Ｂへの第２の新版ソフトウェアのインストールが完了する。第２の電子制御装置１６Ｂへの第２の新版ソフトウェアのインストールが完了すると、第２の電子制御装置１６Ｂにインストールされた第２の新版ソフトウェアのアクティベーションが開始される。
【００６２】
タイミングｔ５において、第２の電子制御装置１６Ｂにインストールされた第２の新版ソフトウェアのアクティベーションが完了する。第２の電子制御装置１６Ｂにインストールされた第２の新版ソフトウェアのアクティベーションが正常に完了すると、更新制御部３０は、第２の電子制御装置１６Ｂに対してシャットダウンの処理を行う。
【００６３】
タイミングｔ６において、イグニッションスイッチ１８がオンになる。タイミングｔ６以降においては、第１の電子制御装置１６Ａは、第１の新版ソフトウェアの動作ロジックを実行する（ＮＥＷ）。また、タイミングｔ６以降においては、第２の電子制御装置１６Ｂは第２の新版ソフトウェアに基づいて動作する（ＮＥＷ）。タイミングｔ６以降において、第１の電子制御装置１６Ａが第１の新版ソフトウェアの動作ロジックを実行するため、第１の電子制御装置１６Ａと第２の電子制御装置１６Ｂとは協調動作を行い得る。第１の新版ソフトウェアの動作ロジックの実行を第１の電子制御装置１６Ａに開始させることにより、第１の旧版ソフトウェアの動作ロジックでは実現し得なかった機能の実行が可能となる。例えば、タイミングｔ６より前においては、第１の旧版ソフトウェアの動作ロジックが実行される。このため、第１の新版ソフトウェアによって新たに実行可能となる所定の機能をユーザが選択するための画面は、タイミングｔ６より前においては、表示部２１に表示されない。タイミングｔ６以降においては、第１の新版ソフトウェアによって新たに実行可能となった所定の機能をユーザが選択するための画面が、表示部２１に表示され得る。
【００６４】
図６は、本実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。図６に示す処理は、ソフトウェアの更新が行われた後に実行され得る。
【００６５】
ステップＳ２１において、更新制御部３０は、ソフトウェアの更新が正常に完了したか否かを判定する。ソフトウェアの更新が正常に完了した場合（ステップＳ２１においてＹＥＳ）、図６に示す処理が完了する。一方、ソフトウェアの更新が正常に完了しない場合（ステップＳ２１においてＮＯ）、ステップＳ２２に遷移する。
【００６６】
ステップＳ２２において、更新制御部３０は、ソフトウェアを更新前の状態に戻す。例えば、第２の新版ソフトウェアによるソフトウェアの更新が第２の電子制御装置１６Ｂにおいて正常に行われなかった場合、第２の電子制御装置１６Ｂのソフトウェアを更新前の状態に戻す。こうして、図６に示す処理が完了する。
【００６７】
図７は、本実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。図７に示す処理は、ソフトウェアの更新が行われた後に実行され得る。
【００６８】
ステップＳ３１において、更新制御部３０は、ソフトウェアの更新が正常に完了したか否かを判定する。ソフトウェアの更新が正常に完了した場合（ステップＳ３１においてＹＥＳ）、図７に示す処理が完了する。一方、ソフトウェアの更新が正常に完了しない場合（ステップＳ３１においてＮＯ）、ステップＳ３２に遷移する。
【００６９】
ステップＳ３２において、時間余裕判定部３２は、新版ソフトウェアのインストールのリトライ処理を実行する時間的な余裕があるか否かを判定する。新版ソフトウェアのインストールのリトライ処理を実行する時間的な余裕がある場合（ステップＳ３２においてＹＥＳ）、ステップＳ３３に遷移する。新版ソフトウェアのインストールのリトライ処理を実行する時間的な余裕がない場合（ステップＳ３２においてＮＯ）、図７に示す処理が完了する。
【００７０】
ステップＳ３３において、更新制御部３０は、新版ソフトウェアのインストールのリトライ処理を実行する。こうして、図７に示す処理が完了する。
【００７１】
図８は、本実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。図８に示す処理は、第１の電子制御装置１６Ａに対する第１の新版ソフトウェアのアクティベーションが完了した後に実行され得る。
【００７２】
ステップＳ４１において、第１の電子制御装置１６Ａに対する第１の新版ソフトウェアのアクティベーションが正常に完了したか否かを判定する。第１の電子制御装置１６Ａに対する第１の新版ソフトウェアのアクティベーションが正常に完了した場合（ステップＳ４１においてＹＥＳ）、ステップＳ４２に遷移する。第１の電子制御装置１６Ａに対する第１の新版ソフトウェアのアクティベーションが正常に完了しない場合（ステップＳ４１においてＮＯ）、図８に示す処理が完了する。
【００７３】
ステップＳ４２において、更新制御部３０は、第１の電子制御装置１６Ａに対してシャットダウンの処理を行う。こうして、図８に示す処理が完了する。
【００７４】
図９は、本実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。図９に示す処理は、第２の電子制御装置１６Ｂに対するアクティベーションが完了した後に実行され得る。
【００７５】
ステップＳ５１において、第２の電子制御装置１６Ｂに対する第２の新版ソフトウェアのアクティベーションが正常に完了したか否かを判定する。第２の電子制御装置１６Ｂに対する第２の新版ソフトウェアのアクティベーションが正常に完了した場合（ステップＳ５１においてＹＥＳ）、ステップＳ５２に遷移する。第２の電子制御装置１６Ｂに対する第２の新版ソフトウェアのアクティベーションが正常に完了しない場合（ステップＳ５１においてＮＯ）、図９に示す処理が完了する。
【００７６】
ステップＳ５２において、更新制御部３０は、第２の電子制御装置１６Ｂに対してシャットダウンの処理を行う。こうして、図９に示す処理が完了する。
【００７７】
図１０は、本実施形態によるソフトウェア更新装置の動作の例を示すフローチャートである。図１０に示す処理は、例えば、電子制御装置１６に対するソフトウェアのインストールが開始される前に実行され得る。
【００７８】
ステップＳ６１において、更新制御部３０は、車両１０の起動予定時刻までにソフトウェアの更新が完了するか否かを判定する。車両１０の起動予定時刻までにソフトウェアの更新が完了すると見込まれる場合（ステップＳ６１においてＹＥＳ）、ステップＳ６２に遷移する。車両１０の起動予定時刻までにソフトウェアの更新が完了しないと見込まれる場合（ステップＳ６１においてＮＯ）、図１０に示す処理が完了する。
【００７９】
ステップＳ６２において、更新制御部３０は、電子制御装置１６に対する第２の新版ソフトウェアのインストールを開始する。こうして、図１０に示す処理が完了する。
【００８０】
このように、本実施形態によれば、ソフトウェアの更新が行われる際における車両１０の消費電力と、電子制御装置１６に対するソフトウェアの更新に要する時間とに基づいて、ソフトウェアの更新が行われる際における消費電力量が判定される。そして、ソフトウェアの更新が行われる際における消費電力量と、車両１０に備えられたバッテリ２０に存在している電力量とに基づいて、ソフトウェアの更新の可否が判定される。従って、本実施形態によれば、ソフトウェアの更新の可否を高精度に判定することができる。このため、本実施形態によれば、ソフトウェアの更新の実行率を増加させることが可能となる。
【００８１】
本発明についての好適な実施形態を上述したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の改変が可能である。
【００８２】
上記実施形態をまとめると以下のようになる。
【００８３】
ソフトウェア更新装置（１２）は、ネットワーク（２５）を介して供給される新版ソフトウェアを取得する取得部（２８）と、前記取得部によって取得される前記新版ソフトウェアを用いて、車両（１０）に搭載された電子制御装置（１６Ａ、１６Ｂ）に対してソフトウェア更新を行う更新制御部（３０）と、前記ソフトウェア更新が行われる際における前記車両の消費電力と、前記電子制御装置に対する前記ソフトウェア更新に要する時間とに基づいて、前記電子制御装置に対する前記ソフトウェア更新が行われる際における消費電力量を判定する消費電力量判定部（３３）と、前記消費電力量判定部によって判定された前記消費電力量と、前記車両に備えられたバッテリ（２０）に存在している電力量とに基づいて、前記電子制御装置に対する前記ソフトウェア更新の可否を判定する更新可否判定部（３５）とを備え、前記更新制御部は、前記電子制御装置に対する前記ソフトウェア更新が可能であると前記更新可否判定部が判定した場合に、前記電子制御装置に対する前記ソフトウェア更新を実行する。このような構成によれば、ソフトウェアの更新が行われる際における車両の消費電力と、電子制御装置に対するソフトウェアの更新に要する時間とに基づいて、ソフトウェアの更新が行われる際における消費電力量が判定される。そして、ソフトウェアの更新が行われる際における消費電力量と、バッテリに存在している電力量とに基づいて、ソフトウェアの更新の可否が判定される。このような構成によれば、ソフトウェアの更新が行われる際における消費電力量と、バッテリに存在している電力量との差を高精度に判定し得るため、ソフトウェアの更新の可否を判定する際に、十分なマージンを考慮することを要しない。このため、このような構成によれば、ソフトウェアの更新の実行率を増加させることが可能となる。
【００８４】
前記更新制御部は、前記車両に備えられていてもよい。
【００８５】
前記ソフトウェア更新が行われる際における前記車両の前記消費電力に関する情報と、前記電子制御装置に対する前記ソフトウェア更新に要する時間に関する情報とのうちの少なくともいずれかは、前記ネットワークを介して外部機器（２２）から供給されるようにしてもよい。
【００８６】
複数の前記電子制御装置のうちの第１の電子制御装置（１６Ａ）には、前記第１の電子制御装置にインストールされた第１の旧版ソフトウェアを更新するための第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域（５０Ｂ）が備えられており、前記更新制御部は、前記第１の電子制御装置の前記格納可能領域への前記第１の新版ソフトウェアのインストールを、前記第１の電子制御装置と協調動作する第２の電子制御装置（１６Ｂ）に対する第２の新版ソフトウェアのインストールに先立って行い、前記第２の電子制御装置に対する前記ソフトウェア更新が正常に完了した場合に、前記第１の新版ソフトウェアの動作ロジックの実行を前記第１の電子制御装置に開始させるようにしてもよい。このような構成によれば、第２の電子制御装置に対するソフトウェアの更新が正常に完了した後に、第１の新版ソフトウェアの動作ロジックの実行が開始される。このため、このような構成によれば、ソフトウェアの更新の失敗によって車両の動作に不具合が生じるのを防止することができる。
【００８７】
時間に余裕があるか否かを判定する時間余裕判定部（３２）を更に有し、前記電子制御装置に対する前記新版ソフトウェアのインストールが正常に完了せず、且つ、時間に余裕があると前記時間余裕判定部が判定した場合、前記更新制御部は、前記電子制御装置に対する前記新版ソフトウェアのインストールのリトライ処理を実行するようにしてもよい。このような構成によれば、第２の電子制御装置に対する第２の新版ソフトウェアのインストールが正常に行い得なかった場合であっても、リトライ処理によって、第２の電子制御装置に第２の新版ソフトウェアをインストールすることが可能となる。
【００８８】
前記電子制御装置に対する前記新版ソフトウェアのインストール、又は、前記電子制御装置にインストールされた前記新版ソフトウェアのアクティベーションが正常に完了しない場合、前記更新制御部は、前記電子制御装置に対してロールバック処理を実行するようにしてもよい。このような構成によれば、第２の電子制御装置に対する第２の新版ソフトウェアのインストール又はアクティベーションを正常に行い得ない場合に、第２の電子制御装置のソフトウェアを更新前の状態に戻すことができる。
【００８９】
前記更新制御部は、前記電子制御装置に対する前記ソフトウェア更新を実行する際、前記車両に備えられた表示部（２１）における画面表示を一時的に中断するようにしてもよい。このような構成によれば、バッテリに存在している電力が必ずしも十分に大きくない場合であっても、ソフトウェアの更新を実行することが可能となる。
【００９０】
前記電子制御装置に対する前記ソフトウェア更新が正常に完了した場合、前記更新制御部は、前記電子制御装置に対してシャットダウンの処理を実行するようにしてもよい。このような構成によれば、無駄な電力消費を防止することができる。
【００９１】
複数の前記電子制御装置のうちの第１の電子制御装置には、前記第１の電子制御装置にインストールされた第１の旧版ソフトウェアを更新するための第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域が備えられており、前記更新制御部は、前記第１の電子制御装置に対する前記第１の新版ソフトウェアのインストールを、前記車両の走行中に実行するようにしてもよい。このような構成によれば、バッテリに存在している電力が必ずしも十分に大きくない場合であっても、ソフトウェアの更新を実行することが可能となる。
【００９２】
複数の前記電子制御装置のうちの第１の電子制御装置には、前記第１の電子制御装置にインストールされた第１の旧版ソフトウェアを更新するための第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域が備えられており、前記更新制御部は、前記ソフトウェア更新が行われた後の前記第１の電子制御装置が、前記第１の新版ソフトウェアの動作ロジックと、前記第１の旧版ソフトウェアの動作ロジックとを選択的に実行することが可能となるように、前記第１の電子制御装置に対する前記ソフトウェア更新を実行するようにしてもよい。このような構成によれば、第１の新版ソフトウェアの動作ロジックと、第１の旧版ソフトウェアの動作ロジックとを第１の電子制御装置が選択的に実行することが可能となるように、ソフトウェアの更新が行われる。このような構成によれば、第１の新版ソフトウェアがインストールされた第１の電子制御装置と、第２の新版ソフトウェアがインストールされた第２の電子制御装置とが良好に協調動作し得ない場合、以下のようにすることができる。即ち、このような場合、更新制御部は、第２の電子制御装置のソフトウェアを更新前の状態に戻し、第１の電子制御装置に第１の旧版ソフトウェアの動作ロジックを実行させる。このようにすることにより、このような構成によれば、第１の新版ソフトウェアが第１の電子制御装置にインストールされているにもかかわらず、第１の電子制御装置とソフトウェアが更新前の状態に戻された第２の電子制御装置とを協調動作させることができる。
【００９３】
複数の前記電子制御装置のうちの第１の電子制御装置には、前記第１の電子制御装置にインストールされた第１の旧版ソフトウェアを更新するための第１の新版ソフトウェアがバックグラウンドでインストールされ得る格納可能領域が備えられており、前記第１の新版ソフトウェアの動作ロジックの実行を前記第１の電子制御装置に開始させると、前記第１の旧版ソフトウェアの動作ロジックでは実現し得なかった機能の実行が可能となる。
【００９４】
前記車両が起動される予定の時刻である起動予定時刻を判定する起動予定時刻判定部（３６）を更に有し、前記更新制御部は、前記起動予定時刻判定部によって判定された前記起動予定時刻までに前記電子制御装置に対する前記ソフトウェア更新が完了すると見込まれる場合に、前記電子制御装置に対する前記ソフトウェア更新を開始するようにしてもよい。このような構成によれば、車両の起動予定時刻までにソフトウェアの更新を完了し得ない場合には、第２の電子制御装置に対するソフトウェアの更新が開始されない。このため、ユーザが車両を使用し得ない事態が生じるのを防止することができる。
【００９５】
前記第１の電子制御装置は、表示制御機能を有する電子制御装置であってもよい。表示制御機能を有する電子制御装置には、大容量のメモリチップが備えられている。
【００９６】
前記第１の電子制御装置は、車載インフォテイメント用の電子制御装置であってもよい。車載インフォテイメント用の電子制御装置には、大容量のメモリチップが備えられている。
【００９７】
前記バッテリに存在している前記電力量を判定する電力量判定部（３４）を更に有するようにしてもよい。
【００９８】
前記電力量判定部は、前記バッテリの劣化状態に基づいて、前記バッテリに存在している前記電力量を判定するようにしてもよい。このような構成によれば、ソフトウェアの更新の可否をより良好に判定することができる。
【００９９】
前記バッテリが認定品でない場合、前記更新可否判定部は、前記電子制御装置に対する前記ソフトウェア更新の可否を、前記電力量判定部によって判定された前記電力量に基づいて判定しないようにしてもよい。このような構成によれば、ソフトウェアの更新を行い得ないにもかかわらず、ソフトウェアの更新を行い得ると更新可否判定部が判定されてしまうのを防止することができる。
【０１００】
ソフトウェア更新装置は、ネットワークを介して供給される新版ソフトウェアを取得する取得部と、前記取得部によって取得される前記新版ソフトウェアを用いて、車両に搭載された電子制御装置に対してソフトウェア更新を実行する更新制御部と、前記ソフトウェア更新が行われる際における前記車両の消費電力と、前記電子制御装置に対する前記ソフトウェア更新に要する時間とに基づいて、前記電子制御装置に対する前記ソフトウェア更新が行われる際における消費電力量を判定する消費電力量判定部と、前記消費電力量判定部によって判定された前記消費電力量と、前記車両に備えられたバッテリに存在している電力量とに基づいて、前記電子制御装置に対する前記ソフトウェア更新の可否を判定する更新可否判定部とを備え、前記更新可否判定部は、前記消費電力量判定部によって判定された前記消費電力量を、前記バッテリに存在している前記電力量から減じることにより得られる値が閾値以上である場合、前記電子制御装置に対する前記ソフトウェア更新が可能であると判定し、前記更新制御部は、前記電子制御装置に対する前記ソフトウェア更新が可能であると前記更新可否判定部が判定した場合に、前記電子制御装置に対する前記ソフトウェア更新を実行する。このような構成によれば、ソフトウェアの更新が行われる際における消費電力量と、バッテリに存在している電力量との差を高精度に判定し得るため、ソフトウェアの更新の可否を判定する際に、十分なマージンを考慮することを要しない。このため、このような構成によれば、ソフトウェアの更新の実行率を増加させることが可能となる。
【０１０１】
車両（１０）は、上記のようなソフトウェア更新装置を備える。
【０１０２】
ソフトウェア更新方法は、ネットワークを介して供給される新版ソフトウェアを用いて、車両に備えられた電子制御装置に対してソフトウェア更新を実行するソフトウェア更新方法であって、前記ソフトウェア更新を実行する際における前記車両の消費電力と、前記電子制御装置に対する前記ソフトウェア更新に要する時間とに基づいて、前記電子制御装置に対する前記ソフトウェア更新が行われる際における消費電力量を判定するステップ（Ｓ１）と、前記消費電力量を判定するステップにおいて判定された前記消費電力量と、前記車両に備えられたバッテリに存在している電力量とに基づいて、前記電子制御装置に対する前記ソフトウェア更新の可否を判定するステップ（Ｓ２）とを有する。
【符号の説明】
【０１０３】
１０…車両                            １１…ソフトウェア更新システム
１２…ソフトウェア更新装置            １４、４０…通信部
１６Ａ、１６Ｂ…電子制御装置          １８…イグニッションスイッチ
２０…バッテリ                        ２１…表示部
２２…サーバ                          ２４…演算部
２５…ネットワーク                    ２６…記憶部
２８…取得部                          ３０…更新制御部
３２…時間余裕判定部                  ３３…消費電力量判定部
３４…電力量判定部                    ３５…更新可否判定部
３６…起動予定時刻判定部              ３８…データベース
５０Ａ…第１のバンク                  ５０Ｂ…第２のバンク
５２…バンク
【図１】
2020135578.tif 000003
【図２】
2020135578.tif 000004
【図３】
2020135578.tif 000005
【図４】
2020135578.tif 000006
【図５】
2020135578.tif 000007
【図６】
2020135578.tif 000008
【図７】
2020135578.tif 000009
【図８】
2020135578.tif 000010
【図９】
2020135578.tif 000011
【図１０】
2020135578.tif 000012