(57)【要約】【課題】より適切にソフトウェアの更新を実行することができる車両制御装置、車両制御方法、およびプログラムを提供すること。【解決手段】車両に搭載された機器のうち少なくとも一部の機器を制御するソフトウェアが組み込まれた制御部と、外部装置と通信する通信部と、前記通信部による外部装置との通信により前記制御部に組み込まれた前記ソフトウェアを更新する更新制御部と、前記制御部に電力を供給する電力供給部と、前記車両の状態を予測する車両状態予測部と、を備え、前記更新制御部は、前記車両状態予測部により、前記ソフトウェアの更新中に前記電力供給部と前記制御部との接続が切断状態になることが予測された場合に、前記ソフトウェアの更新を中断する、車両制御装置。【選択図】図１
2020062909.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された機器のうち少なくとも一部の機器を制御するソフトウェアが組み込まれた制御部と、
外部装置と通信する通信部と、
前記通信部による外部装置との通信により前記制御部に組み込まれた前記ソフトウェアを更新する更新制御部と、
前記制御部に電力を供給する電力供給部と、
前記車両の状態を予測する車両状態予測部と、を備え、
前記更新制御部は、前記車両状態予測部により、前記ソフトウェアの更新中に前記電力供給部と前記制御部との接続が切断状態になることが予測された場合に、前記ソフトウェアの更新を中断する、
車両制御装置。
【請求項２】
前記ソフトウェアは、一以上のプログラムモジュールを含み、
前記更新制御部は、前記更新するソフトウェアを一以上のプログラムモジュールを含む複数のブロックに分割し、前記ソフトウェアの更新を中断する場合には、分割したブロックを基準として更新を中断する、
請求項１に記載の車両制御装置。
【請求項３】
前記更新制御部は、前記ソフトウェアの更新を中断する場合に、前記外部装置からダウンロード中のブロックの情報を破棄する、
請求項２に記載の車両制御装置。
【請求項４】
前記更新制御部は、前記ソフトウェアの更新を中断する場合に、前記外部装置からダウンロード中のブロックのダウンロードが完了した後に、ソフトウェアの更新を中断する、
請求項２に記載の車両制御装置。
【請求項５】
前記車両状態予測部は、前記電力供給部または前記制御部が設置される空間を区画する蓋部が開いた状態であることを検知した場合に、前記電力供給部と前記制御部との接続が切断状態になると予測する、
請求項１から４のうち何れか１項に記載の車両制御装置。
【請求項６】
前記車両状態予測部は、前記電力供給部と前記制御部とを接続する配線が存在する空間を区画する蓋部が開いた状態であることを検知した場合に、前記電力供給部と前記制御部との接続が切断状態になると予測する、
請求項１から５のうち何れか１項に記載の車両制御装置。
【請求項７】
前記車両の乗員からの操作を受け付ける操作部を更に備え、
前記車両状態予測部は、前記操作部により、前記電力供給部と前記制御部との接続を切断するための予備操作が受け付けられた場合に、前記前記電力供給部と前記制御部との接続が切断状態になると予測する、
請求項１から６のうち何れか１項に記載の車両制御装置。
【請求項８】
情報を記憶する記憶部を更に備え、
前記更新制御部は、前記ソフトウェアの更新を中断する場合に、中断した状況に関する情報を前記記憶部に記憶させ、前記ソフトウェアの更新が再開される場合に、前記記憶部に記憶された前記情報に基づいて、中断時に更新が完了したブロックの次のブロックから更新を再開する、
請求項１から７のうち何れか１項に記載の車両制御装置。
【請求項９】
前記更新制御部は、前記ソフトウェアの更新を再開する前に、前記ソフトウェアの改竄の有無を判定し、改竄されていないと判定された場合に、前記ソフトウェアの更新を再開する、
請求項８に記載の車両制御装置。
【請求項１０】
コンピュータが、
外部装置と通信し、
車両に搭載された機器のうち少なくとも一部の機器を制御する制御部に組み込まれたソフトウェアを更新し、
前記ソフトウェアの更新中に、前記制御部と、前記制御部に電力を供給する電力供給部との接続が切断状態になることが予測された場合に、前記ソフトウェアの更新を中断する、
車両制御方法。
【請求項１１】
コンピュータに、
外部装置と通信させ、
車両に搭載された機器のうち少なくとも一部の機器を制御する制御部に組み込まれたソフトウェアを更新させ、
前記ソフトウェアの更新中に、前記制御部と、前記制御部に電力を供給する電力供給部との接続が切断状態になることが予測された場合に、前記ソフトウェアの更新を中断させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両制御装置、車両制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、車両に搭載された機器を制御する制御部に組み込まれたソフトウェアを更新する更新装置が知られている（例えば、特許文献１参照）。特許文献１では、無線通信によりサーバと通信を行い、複数の制御部ごとに、更新データおよび当該更新データを制御部に適用させるための適用方法を識別するための識別情報をサーバから受信し、受信した識別情報に基づいて、複数の制御部ごとに更新データが適用されるように制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６２１６７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、車両内における不意の電源喪失があった場合に制御部に電力が供給されず、ソフトウェアの更新が途中で中断されるため、制御部内のメモリや更新中のプログラムに不具合が生じる可能性があった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、より適切にソフトウェアの更新を実行することができる車両制御装置、車両制御方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
この発明に係る車両制御装置、車両制御方法、およびプログラムは、以下の構成を採用した。
（１）：この発明の一態様に係る車両制御装置は、車両に搭載された機器のうち少なくとも一部の機器を制御するソフトウェアが組み込まれた制御部と、外部装置と通信する通信部と、前記通信部による外部装置との通信により前記制御部に組み込まれた前記ソフトウェアを更新する更新制御部と、前記制御部に電力を供給する電力供給部と、前記車両の状態を予測する車両状態予測部と、を備え、前記更新制御部は、前記車両状態予測部により、前記ソフトウェアの更新中に前記電力供給部と前記制御部との接続が切断状態になることが予測された場合に、前記ソフトウェアの更新を中断する、車両制御装置である。
【０００７】
（２）：上記（１）の態様において、前記ソフトウェアは、一以上のプログラムモジュールを含み、前記更新制御部は、前記更新するソフトウェアを一以上のプログラムモジュールを含む複数のブロックに分割し、前記ソフトウェアの更新を中断する場合には、分割したブロックを基準として更新を中断するものである。
【０００８】
（３）：上記（２）の態様において、前記更新制御部は、前記ソフトウェアの更新を中断する場合に、前記外部装置からダウンロード中のブロックの情報を破棄するものである。
【０００９】
（４）：上記（２）の態様において、前記更新制御部は、前記ソフトウェアの更新を中断する場合に、前記外部装置からダウンロード中のブロックのダウンロードが完了した後に、ソフトウェアの更新を中断するものである。
【００１０】
（５）：上記（１）〜（４）のうち何れ一つの態様において、前記車両状態予測部は、前記電力供給部または前記制御部が設置される空間を区画する蓋部が開いた状態であることを検知した場合に、前記電力供給部と前記制御部との接続が切断状態になると予測するものである。
【００１１】
（６）：上記（１）〜（５）のうち何れ一つの態様において、前記車両状態予測部は、前記電力供給部と前記制御部とを接続する配線が存在する空間を区画する蓋部が開いた状態であることを検知した場合に、前記電力供給部と前記制御部との接続が切断状態になると予測するものである。
【００１２】
（７）：上記（１）〜（６）の態様において、前記車両の乗員からの操作を受け付ける操作部を更に備え、前記車両状態予測部は、前記操作部により、前記電力供給部と前記制御部との接続を切断するための予備操作が受け付けられた場合に、前記前記電力供給部と前記制御部との接続が切断状態になると予測するものである。
【００１３】
（８）：上記（１）〜（７）の態様において、情報を記憶する記憶部を更に備え、前記更新制御部は、前記ソフトウェアの更新を中断する場合に、中断した状況に関する情報を前記記憶部に記憶させ、前記ソフトウェアの更新が再開される場合に、前記記憶部に記憶された前記情報に基づいて、中断時に更新が完了したブロックの次のブロックから更新を再開するものである。
【００１４】
（９）：前記更新制御部は、前記ソフトウェアの更新を再開する前に、前記ソフトウェアの改竄の有無を判定し、改竄されていないと判定された場合に、前記ソフトウェアの更新を再開するものである。
【００１５】
（１０）：この発明の一態様に係る車両制御方法は、外部装置と通信し、車両に搭載された機器のうち少なくとも一部の機器を制御する制御部に組み込まれたソフトウェア更新し、前記ソフトウェアの更新中に、前記制御部と、前記制御部に電力を供給する電力供給部との接続が切断状態になることが予測された場合に、前記ソフトウェアの更新を中断する、車両制御方法である。
【００１６】
（１１）：この発明の一態様に係るプログラムは、コンピュータに、外部装置と通信させ、車両に搭載された機器のうち少なくとも一部の機器を制御する制御部に組み込まれたソフトウェア更新させ、前記ソフトウェアの更新中に、前記制御部と、前記制御部に電力を供給する電力供給部との接続が切断状態になることが予測された場合に、前記ソフトウェアの更新を中断させる、プログラムである。
【発明の効果】
【００１７】
（１）〜（１１）によれば、より適切にソフトウェアの更新を実行することができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態の車両制御装置１の構成図である。
【図２】ソフトウェア管理情報１５２の内容の一例を示す図である。
【図３】表示部３０に表示される問い合わせ画像ＩＭ１について説明するための図である。
【図４】バッテリ２０および運転制御装置１２を含む機器の搭載位置を説明するための図である。
【図５】中断情報１５４の内容の一例を示す図である。
【図６】実施形態の車両制御装置１の管理部１００により実行される処理の流れの一例を示すフローチャートである。
【図７】実施形態の管理部１００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照し、本発明の車両制御装置、車両制御方法、およびプログラムの実施形態について説明する。
【００２０】
［全体構成］
図１は、実施形態の車両制御装置１の構成図である。車両制御装置１が搭載される車両（以下、車両Ｍと称する）は、例えば、二輪や三輪、四輪等の車両であり、その駆動源は、ディーゼルエンジンやガソリンエンジン等の内燃機関、電動機、或いはこれらの組み合わせである。電動機は、内燃機関に連結された発電機による発電電力、或いは二次電池や燃料電池の放電電力を使用して動作する。
【００２１】
図１において、車両制御装置１は、例えば、車載装置１０と、バッテリ（蓄電池）２０と、表示部３０と、車両センサ４０と、操作部５０と、管理部１００とを備える。バッテリ２０は、「電力供給部」の一例である。
【００２２】
車載装置１０は、例えば、運転制御装置１２と、駆動制御装置１４と、ナビゲーション装置１６とを備える。運転制御装置１２は、例えば、車両Ｍの自動運転（自律運転）制御を行う。自動運転制御とは、例えば、車両Ｍの乗員による運転操作に依らずに、車両Ｍの操舵または速度のうち一方または双方を制御することである。自動運転制御は、例えば、ＡＣＣ（Adaptive Cruise Control System）やＬＫＡＳ（Lane Keeping Assistance System）、ＣＭＢＳ（Collision Mitigation Brake System）等の乗員の運転操作を支援する運転制御の機能を備える。
【００２３】
駆動制御装置１４は、車両Ｍに駆動力等を与えて車両Ｍを走行させるための装置である。駆動制御装置１４は、例えば、車両Ｍが走行するための走行駆動力（トルク）を駆動輪に出力する走行駆動力出力装置と、所定の制動操作に応じたブレーキトルクを各車輪に出力させるブレーキ装置と、転舵輪の向きを変更させるステアリング装置とを含む。
【００２４】
ナビゲーション装置１６は、例えば、ＧＮＳＳ（Global Navigation Satellite System）衛星から受信した信号に基づいて、車両Ｍの位置を特定する。また、ナビゲーション装置１６は、特定された車両Ｍの位置（或いは入力された任意の位置）から、操作部５０等を用いて乗員により入力された目的地までの経路（以下、地図上経路）を、記憶部１５０により記憶された地図情報（不図示）を参照して決定する。地図情報は、例えば、道路を示すリンクと、リンクによって接続されたノードとによって道路形状が表現された情報である。地図情報は、道路の曲率やＰＯＩ（Point Of Interest）情報等を含んでもよい。また、地図情報は、例えば、車線の中央の情報あるいは車線の境界の情報、車線の種別の情報等を含んでもよい。また、地図情報には、道路情報、交通規制情報、住所情報（住所・郵便番号）、施設情報、電話番号情報等が含まれてよい。地図情報は、通信部１１０が他装置と通信することにより、随時、アップデートされてよい。また、ナビゲーション装置１６は、地図上経路に基づいて、表示部３０による地図画像表示やスピーカ（不図示）による音声出力によって、経路案内を行ってもよい。
【００２５】
ここで、車載装置１０の運転制御装置１２、駆動制御装置１４、およびナビゲーション装置１６の各機器は、それぞれＥＣＵ（Electronic Control Unit）を中心として構成される。ＥＣＵは、「制御部」の一例である。ＥＣＵは、例えば、プロセッサ、メモリ、補助記憶装置、および外部通信インターフェース等が、バスで接続されたものである。ＥＣＵには、ソフトウェアが組み込まれており、ソフトウェアを実行することで、対応する機器の少なくとも一部の制御が実行される。ソフトウェアは、少なくとも一以上のプログラムモジュールを含む。プログラムモジュールとは、例えば、一以上のプログラムを含み、ソフトウェアによって実現できる機能のうち部分的な機能を実行するものである。ソフトウェアは、更新制御部１２０によってモジュール単位の更新が可能である。以下では、ソフトウェアを更新する一連の処理を「リプログラミング」と称する。また、各機器のＥＣＵを区別しない場合には、単に「ＥＣＵ」と称して説明する。
【００２６】
バッテリ２０は、例えば、車載装置１０や表示部３０、管理部１００、その他の車両Ｍ内の電気機器等に電力を供給する。リプログラミングの実行時に用いられる電源は、主にバッテリ２０から更新対象のＥＣＵに供給される。
【００２７】
表示部３０は、例えば、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）ディスプレイ等の表示装置である。表示部３０は、例えば、表示制御部１４０により生成された画像を表示する。表示部３０は、例えば、タッチパネル装置として、乗員からの操作内容を受け付ける機能を備えていてもよい。また、表示部３０は、ナビゲーション装置１６と一体に構成され、ナビゲーション装置１６による目的地までの経路案内等の表示を行ってもよい。
【００２８】
車両センサ４０は、例えば、ボンネット開閉センサ４２と、トランク開閉センサ４４と、ドア開閉センサ４６とを備える。ボンネット開閉センサ４２は、仕切部材（例えば、ダッシュボードやカウル部材等）を隔てて車体前部のモータルーム（前方空間）の一部を区画するボンネットフード（蓋部の一例）の開閉動作を検知する。ボンネット開閉センサ４２は、例えば、車体とボンネットフードとのロックが解除された場合にボンネットフードが開いた状態であることを検知し、ロックされた場合にボンネットフードが閉じた状態であることを検知する。また、ボンネット開閉センサ４２は、ボンネットフードが閉じた状態からの回動動作による軸の回転角が所定角度以上である場合に、ボンネットフードが開いた状態であることを検知し、所定角度未満である場合に、ボンネットフードが閉じた状態であることを検知してもよい。
【００２９】
トランク開閉センサ４４は、仕切部材を隔てて車体後部のトランクルーム（後方空間）の一部を区画するトランクフードの開閉動作を検知する。トランク開閉センサ４４は、車体とトランクフード（蓋部の一例）とのロックが解除された場合にトランクフードが開いた状態であることを検知し、ロックされた場合にトランクフードが閉じた状態であることを検知する。また、トランク開閉センサ４４は、トランクフードが閉じた状態からの回動動作による軸の回転角が所定角度以上である場合に、トランクフードが開いた状態であることを検知し、所定角度未満である場合に、トランクフードが閉じた状態であることを検知してもよい。
【００３０】
ドア開閉センサ４６は、車両Ｍの車室内の空間の一部を区画するドア（蓋部の一例）の開閉を検知する。ドア開閉センサ４６は、例えば、ドアロックが解除された場合に、ドアが開いた状態であることを検知し、ドアロックが施錠された場合にドアが閉じた状態であることを検知する。また、ドア開閉センサ４６は、ドアの閉塞状態からの回動動作による軸の回転角が所定角度以上である場合にドアが開いた状態であることを検知し、所定角度未満である場合に、ドアが閉じた状態であることを検知してもよい。
【００３１】
また、車両センサ４０は、上述したセンサに加えて、例えば、車両Ｍの速度を検出する車速センサ、加速度を検出する加速度センサ、鉛直軸回りの角速度を検出するヨーレートセンサ、車両Ｍの向きを検出する方位センサ等を含んでもよい。
【００３２】
操作部５０は、例えば、車両Ｍの乗員からの操作を受け付ける。操作部５０は、例えば、ボンネットオープンスイッチ（以下、「スイッチ」を「ＳＷ」と称する）５２と、トランクオープンＳＷ５４と、ドアオープンＳＷ５６と、リモートコントローラ５８とを備える。ボンネットオープンＳＷ５２は、ボンネットフードを開けるためのスイッチである。ボンネットオープンＳＷ５２は、例えば、車体前方のボンネット付近、車室内の運転席付近、またはリモートコントローラ５８に設けられる。
【００３３】
トランクオープンＳＷ５４は、トランクフードを開けるためのスイッチである。トランクオープンＳＷ５４は、例えば、車体後方のトランク付近、運転席付近、またはリモートコントローラ５８に設けられる。
【００３４】
ドアオープンＳＷ５６は、乗員が車両Ｍに乗降する際に開閉されるドアのロックを解錠または施錠するためのスイッチである。ドアオープンＳＷ５６は、例えば、車室内の運転席付近に設けられる。
【００３５】
リモートコントローラ５８は、車両Ｍの通信部１１０と無線通信を行い、リモートコントローラ５８に設けられた各ＳＷ操作に対応する制御信号を車両Ｍに送信する。これにより、ボンネットフードまたはトランクフードを開ける制御や、ドアロックの解錠または施錠が実行される。また、操作部５０は、各種表示装置、スピーカ、ブザー、タッチパネル、スイッチ、キー等を含んでもよい。
【００３６】
管理部１００は、例えば、通信部１１０と、更新制御部１２０と、車両状態予測部１３０と、表示制御部１４０と、記憶部１５０とを備える。これらの構成要素は、例えば、ＣＰＵ（Central Processing Unit）等のハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。また、これらの構成要素のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、ＧＰＵ（Graphics Processing Unit）等のハードウェア（回路部；circuitryを含む）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予め記憶部１５０に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭ等の着脱可能な記憶媒体に格納されており、記憶媒体がドライブ装置に装着されることで記憶部１５０にインストールされてもよい。
【００３７】
通信部１１０は、例えば、セルラー網やＷｉ−Ｆｉ網、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＤＳＲＣ（Dedicated Short Range Communication）等を利用して、各種サーバ装置や携帯型端末装置と通信したり、車両Ｍの周辺に存在する他車両と通信する。各種サーバ装置には、例えば、ＥＣＵに組み込まれるソフトウェアを提供するサーバ装置が含まれる。
【００３８】
更新制御部１２０は、ＥＣＵごとに組み込まれるソフトウェアを更新するためのリプログラミング制御を行う。リプログラミング制御には、例えば、ソフトウェアの変更（書き換え）、追加、削除等が含まれる。更新制御部１２０は、車両状態予測部１３０により得られる車両状態の予測結果に基づいて、ソフトウェアのリプログラミングの実行、中断、再開等を制御する。更新制御部１２０の機能の詳細については、後述する。
【００３９】
車両状態予測部１３０は、車両Ｍの状態を予測する。具体的には、車両状態予測部１３０は、近い将来において、車両Ｍが更新制御部１２０によりソフトウェアの更新が実行できない状態になるか否かを予測する。ソフトウェアの更新が実行できない状態とは、例えば、バッテリ２０と、ＥＣＵとの接続が切断された状態である。車両状態予測部１３０は、例えば、操作部５０によりバッテリ２０とＥＣＵとの接続を切断するための予備操作を受け付けた場合に、バッテリ２０とＥＣＵとの接続が切断状態になると予測する。
【００４０】
また、車両状態予測部１３０は、車室内に乗員が存在するか否かを予測してもよい。この場合、車両状態予測部１３０は、車室内を撮像するカメラ（不図示）で撮像された画像から、車室内に乗員が存在するか否かを判定してもよく、車室内のシートに設けられた荷重センサ（不図示）の検知結果に基づいて、乗員が存在するか否かを判定してもよい。
【００４１】
表示制御部１４０は、表示部３０を制御して、ＥＣＵのソフトウェアの更新に関する情報、運転制御や運転支援に関する情報を含む画像を生成する。生成する画像には、アイコン等のＧＵＩ（Graphical User Interface）が含まれてもよい。また、表示制御部１４０は、生成した画像やナビゲーション装置１６から得られる経路画像等を表示部３０に表示させる。
【００４２】
記憶部１５０は、例えば、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、ＲＯＭ（Read Only Memory）、またはＲＡＭ（Random Access Memory）等により実現される。記憶部１５０は、例えば、ソフトウェア管理情報１５２、中断情報１５４、プロセッサによって読み出されて実行されるプログラム、地図情報、その他各種情報等を格納する。ソフトウェア管理情報１５２および中断情報１５４の内容については、後述する。
【００４３】
［更新制御部］
次に、更新制御部１２０の機能の詳細について説明する。更新制御部１２０は、例えば、ＯＴＡ（Over The Air）等の無線通信により外部装置（以下、サーバ装置として説明する）と通信を行い、対象機器のＥＣＵに組み込まれているソフトウェアのリプログラミングを行う。具体的には、まず、更新準備処理として、更新制御部１２０は、車載装置１０の各機器のＥＣＵに組み込まれているソフトウェアのバージョン情報を、記憶部１５０に記憶されたソフトウェア管理情報１５２から取得する。図２は、ソフトウェア管理情報１５２の内容の一例を示す図である。ソフトウェア管理情報１５２は、ＥＣＵ識別情報に、最新更新日時およびバージョン情報が対応付けられている。ＥＣＵ識別情報とは、車載装置１０の各装置のＥＣＵを識別するための識別情報である。最新更新日は、リプログラミングされたソフトウェアの最新の更新日時である。バージョン情報とは、サーバ装置からダウンロードし、ＥＣＵに組み込まれているソフトウェアのバージョンに関する情報である。
【００４４】
更新制御部１２０は、ソフトウェアの更新が必要であるか否かを判定するため、所定のタイミングで通信部１１０を介してサーバ装置と通信を行い、各ソフトウェアのバージョン情報の問い合わせを行う。そして、更新制御部１２０は、サーバ装置から取得したバージョン情報と、ソフトウェア管理情報１５２から取得したバージョン情報とを比較し、合致していない場合（サーバ装置のバージョンの方が新しい場合）に、対象ソフトウェアの更新を行う。
【００４５】
なお、更新制御部１２０は、ソフトウェアの更新を開始する前に、表示制御部１４０にソフトウェアの更新を実行するか否かを乗員に問い合わせるための画像を生成させ、生成させた画像を表示部３０に表示させる。図３は、表示部３０に表示される問い合わせ画像ＩＭ１について説明するための図である。表示制御部１４０は、更新の実行の有無を問い合わせる問い合わせ情報と、更新の実行の許可（ＹＥＳ）または拒否（ＮＯ）を選択させるアイコンＩＣ１、ＩＣ２を含む問い合わせ画像ＩＭ１を生成する。図４の例では、問い合わせ情報として、「運転制御装置のソフトウェアを更新する必要があります。更新を実行しますか？」という文字が表示されている。なお、問い合わせ情報には、更新を開始してから完了するまでの推定時間が含まれてもよい。
【００４６】
更新制御部１２０は、表示部３０により更新の実行を拒否する選択（アイコンＩＣ２の選択）を受け付けた場合、ソフトウェアの更新を行わない。また、更新制御部１２０は、表示部３０により更新の実行を許可する選択（アイコンＩＣ１の選択）を受け付けた場合であって、所定の条件を満たす場合に、ソフトウェアの更新を行う。所定の条件とは、例えば、車両Ｍの駆動系の装置が停止している状態であること（例えば、イグニッションオフ状態）、乗員が車室内に存在しないこと、およびバッテリ２０の充電量が所定量以上であること等である。更新制御部１２０は、上述した処理を、更新準備処理として実行する。
【００４７】
次に、更新準備が完了した後の更新処理について説明する。更新制御部１２０は、ソフトウェアの更新を行う場合に、新しいバージョンのソフトウェアをサーバ装置に要求し、要求に対応するソフトウェアをダウンロードする。このとき、更新制御部１２０は、更新するソフトウェアに含まれる全てのプログラムモジュールを、一以上のブログラムモジュールを含む複数のブロックに分割し、分割したブロックごとにダウンロード要求を行い、対象のブロックをダウンロードする。ブロックは、例えば、所定のプログラムモジュール数ごとに分割してもよく、データ容量が閾値以下となるように分割してもよい。更新制御部１２０は、ダウンロードしたブロックをＥＣＵ内のメモリに書き込む。このとき、現在のバージョンのソフトウェアを対象機器のＥＣＵ内のメモリに残したまま、メモリの他の領域にダウンロードした新しいプログラムモジュールを書き込む。そして、更新制御部１２０は、サーバ装置に対して次のブロックのダウンロード要求を行い、上述と同様の処理を、全てのブロックのダウンロードが完了するまで繰り返し行う。
【００４８】
ここで、更新制御部１２０は、ダウンロードの実行中において、車両状態予測部１３０により、ソフトウェアのダウンロード中にバッテリ２０とＥＣＵとの接続が切断状態になることが予測された場合に、ソフトウェアの更新処理を中断する。具体的には、車両状態予測部１３０は、バッテリ２０またはＥＣＵが設置された車両内の空間の開閉状態を検知する。以下では、更新対象のＥＣＵが運転制御装置１２のＥＣＵであるものとして説明するが、他の機器のＥＣＵについても同様の制御がＥＣＵごとに実行される。
【００４９】
図４は、バッテリ２０および運転制御装置１２を含む機器の設置位置を説明するための図である。図４の例において、バッテリ２０および管理部１００は、車両Ｍにおける車体ＶＢの前方のモータルームＭＲ内に設置されているものとする。また、運転制御装置１２は、車室内に設置されているものとする。なお、運転制御装置１２は、モータルームＭＲ内に設けられてもよく、車体ＶＢ後方のトランクルームＴＲ内に設けられてもよい。
【００５０】
また、図４の例において、運転制御装置１２および管理部１００は、バッテリ２０のプラス端子（＋）およびマイナス端子（−）のそれぞれと、配線ＷＩ１およびＷＩ２を介して電気的に接続されている。また、図４の例では、モータルームＭＲ内にボンネット開閉センサ４２が設けられ、車両Ｍの左右のドアＤＬ、ＤＲの開閉を検知するドア開閉センサ４６Ｌ、４６Ｒが設けられているものとする。また、図４の例では、運転席付近にボンネットオープンＳＷ５２およびドアＳＷ５６が設けられているものとする。
【００５１】
車両状態予測部１３０は、バッテリ２０と運転制御装置１２とが設置された空間を区画する蓋部が開いた状態であるか否かを判定する。また、車両状態予測部１３０は、バッテリ２０と運転制御装置１２とを接続する配線ＷＩ１、ＷＩ２が存在する空間を区画する蓋部が開いた状態であるか否かを判定してもよい。図４の例では、車両状態予測部１３０は、バッテリ２０が設置されているモータルームＭＲを区画するボンネットフードＢＦ、または運転制御装置１２が設置されている車室空間を区画するドアＤＲ、ＤＬが開いた状態であるか否かを判定する。例えば、ボンネット開閉センサ４２によりボンネットフードＢＦが開いた状態であると判定された場合、または、ドア開閉センサ４６Ｒ、４６ＬによりドアＤＲ、ＤＬの少なくとも一方が開いた状態であると判定された場合に、車両状態予測部１３０は、バッテリ２０と運転制御装置１２とが近い将来に切断状態になると予測する。
【００５２】
また、車両状態予測部１３０は、開いた状態であると判定するのに代えて（または、加えて）、バッテリ２０と運転制御装置１２と接続を切断するための予備操作を受け付けた場合に、バッテリ２０と運転制御装置１２とが近い将来に切断状態になると予測してもよい。予備操作とは、例えば、ボンネットオープンＳＷ５２によるボンネットフードＢＦのオープン操作、または、ドアＳＷ５６によるドアＤＲまたはＤＬのロックの解錠操作である。予備操作に基づいて切断状態を予測することで、より確実に切断状態になることを予測することができる。
【００５３】
更新制御部１２０は、ソフトウェアの更新を中断する場合、分割したブロックを基準として更新を中断する。例えば、更新制御部１２０は、車両状態予測部１３０によりバッテリ２０と運転制御装置１２とが近い将来に切断状態になると予測された時点において、更新途中であったブロックを破棄して、以降のブロックのダウンロードを中断する。これにより、より迅速に中断を行うことができる。
【００５４】
また、更新制御部１２０は、車両状態予測部１３０によりバッテリ２０と運転制御装置１２とが近い将来に切断状態になると予測された時点では、まだ切断状態になっていないため、ダウンロード中のブロックのダウンロードまでを完了し、以降のブロックのダウンロードを中断する。これにより、ダウンロードが再開した場合に、同一のブロックをダウンロードし直すことがないため、早く更新を完了させることができる。なお、車両Ｍにコンデンサ等の予備電源が設けられている場合、更新制御部１２０は、バッテリ２０と運転制御装置１２とが近い将来に切断状態になると予測された時点で、電源供給先をバッテリ２０から予備電源に切り替えて、ダウンロード中のブロックのダウンロードを完了させてもよい。
【００５５】
また、更新制御部１２０は、車両状態予測部１３０によりバッテリ２０と運転制御装置１２とが近い将来に切断状態になると予測された時点でダウンロードしているブロックの残りのデータ容量や、そのブロックのダウンロードが完了するまでの残り時間に基づいて、ブロックを破棄するか、ダウンロードを完了させるかを切り替えてもよい。その場合、更新制御部１２０は、残りのデータ容量が所定量以上である場合、または残り時間が所定時間以上である場合に、ダウンロード中のブロックを破棄し、それ以外の場合には、途中のブロックのダウンロードを完了させる。
【００５６】
また、更新制御部１２０は、ダウンロードを中断した状況に関する情報を中断情報として記憶部１５０に記憶させる。図５は、中断情報１５４の内容の一例を示す図である。中断情報は、ＥＣＵ識別情報に、中断日時と、バージョン情報と、モジュール情報と、中断理由が対応付けられている。中断日時は、例えば、中断が実行された日時に関する情報である。また、バージョン情報は、例えば、更新中のソフトウェアのバージョンに関する情報である。モジュール情報は、例えば、更新中のバージョンに対応するプログラムモジュール（またはブロック）を識別する情報であり、ダウンロードが完了したプログラムモジュール（またはブロック）の識別情報である。中断理由とは、例えば、更新対象のＥＣＵに対するソフトウェアの更新が中断した理由に関する情報である。更新制御部１２０は、ソフトウェアの更新を中断した場合に、中断した対象のＥＣＵ識別情報と、中断日時と、更新中のソフトウェアと、モジュール情報とを含む中断情報１５４を生成し、生成した中断情報１５４を記憶部１５０に記憶させる。中断情報１５４を記憶しておくことで、メンテナンス時に担当者等が中断状況を容易に把握することができる。また、更新再開時に、ダウンロードが完了したブロックの次のブロックからダウンロードを実行することができる。
【００５７】
なお、ダウンロードを途中で中断した場合であっても、一部の機能が実行可能なプログラムモジュールで区切られたブロックでダウンロードしているため、制御部内のメモリや更新中のプログラムに不具合が生じることを抑制することができる。
【００５８】
また、更新制御部１２０は、更新処理の中断中に、車両状態予測部１３０により運転制御装置１２とバッテリ２０とが近い将来に切断状態とならない状態に変化した場合に、ソフトウェアのダウンロードを再開する。なお、更新制御部１２０は、ソフトウェアの更新を再開する前に、ソフトウェアが第三者によって改竄されているか否かを判定してもよい。例えば、更新制御部１２０は、運転制御装置１２のＥＣＵに組み込まれているソフトウェアの最新更新日と、バージョン情報とを取得し、取得した最新更新日およびバージョン情報と、記憶部１５０に記憶されたソフトウェア管理情報１５２の最新更新日およびバージョン情報とを比較し、両方が合致している場合には改竄が行われていないと判定し、少なくとも一方が合致していない場合には、改竄が行われていると判定する。
【００５９】
改竄が行われていないと判定された場合、更新制御部１２０は、記憶部１５０に記憶された中断情報１５４を参照し、中断したバージョンのソフトウェアの次のモジュールからダウンロードを再開する。これにより、ソフトウェアを最初からダウンロードするよりも早く完了することができる。
【００６０】
また、改竄が行われていると判定された場合、更新制御部１２０は、ソフトウェア管理情報１５２で含まれるバージョンのソフトウェアをサーバ装置ＳＶからダウンロードし、ソフトウェアを再度更新する。これにより、改竄されている可能性のあるソフトウェアから、更新前の正規の状態のソフトウェアに復元することができる。その結果、車載機器に対して正常な動作を実行させることができる。なお、改竄が行われていると判定された場合、更新制御部１２０は、改竄された可能性があることを示す情報を、通信部１１０を介して外部装置（例えば、管理者端末）に送信してもよく、表示制御部１４０により表示部３０に表示させてもよい。これにより、第三者によるソフトウェアの改竄操作があったことを顕在化させて、管理者や乗員等に把握させたり、製造先に迅速に対応させることができる。
【００６１】
なお、全てのブロックのダウンロードが完了した場合、更新制御部１２０は、ダウンロードしたソフトウェアに対する動作確認を行う。動作確認の結果、正常に動作することが確認された結果に、現在のソフトウェアを、ダウンロードした新しいバージョンのソフトウェアに書き換える。また、正常に動作することが確認できなかった場合、更新制御部１２０は、例えば、ダウンロードした新しいバージョンのソフトウェアを破棄し、現在のソフトウェアを継続して使用する。なお、更新制御部１２０は、ソフトウェアの書き換えを、車両Ｍの駆動系の装置が起動したタイミング（例えば、イグニッションをオンにしたタイミング）で行ってもよい。また、上述したソフトウェアの書き換えは、ブロック単位で行ってもよい。これにより、本実施形態における一連の更新処理は、終了する。
【００６２】
［処理フロー］
図６は、実施形態の車両制御装置１の管理部１００により実行される処理の流れの一例を示すフローチャートである。本フローチャートの処理は、例えば、所定周期で繰り返し実行される。図６の例において、更新制御部１２０は、ソフトウェアの更新準備が完了したか否かを判定する（ステップＳ１００）。ここでいう更新準備は、具体的には、サーバ装置ＳＶから最新のソフトウェアをダウンロードすることが可能な状態になることであり、より具体的には、更新対象のソフトウェアが特定されるとともに、図３に示す問い合わせ画像ＩＭ１が表示された表示部３０からソフトウェアの更新を許可する選択（図３に示すアイコンＩＣ１の選択）が受け付けられた状態である。
【００６３】
更新準備が完了していない場合、更新制御部１２０は、完了するまで待機する。また、更新制御部１２０は、所定時間を経過しても更新準備が完了していない場合に、以降の処理を行わずに図６の処理を終了してもよい。
【００６４】
更新準備が完了した場合、車両状態予測部１３０は、バッテリ２０と更新対象機器（ＥＣＵ）とが切断状態になると予測されるか否かを判定する（ステップＳ１０２）。バッテリ２０と更新対象機器とが切断状態になる予測されない場合、更新制御部１２０は、更新対象機器にソフトウェアを分割された所定のブロックごとにダウンロードする（ステップＳ１０４）。次に、更新制御部１２０は、全てのブロックをダウンロードしたか否かを判定する（ステップＳ１０６）。全てのブロックをダウンロードしていない場合、更新制御部１２０は、ステップＳ１０２の処理に戻る。
【００６５】
また、ステップＳ１０２の処理において、更新対象機器とバッテリ２０とが切断状態になると予測された場合、更新制御部１２０は、ブロックのダウンロードを完了したか否かを判定する（ステップＳ１０８）。ブロックのダウンロードが完了していないと判定された場合、更新制御部１２０は、ブロックのダウンロードが完了するまで待機する。また、ブロックのダウンロードが完了したと判定された場合、中断情報を生成し、生成した中断情報を記憶部１５０に記憶させる（ステップＳ１１０）。次に、更新制御部１２０は、更新対象機器とバッテリ２０とが切断状態になる状態から、切断状態とならない状態に変化したか否かを判定する（ステップＳ１１２）。切断状態とならない状態に変化した場合、更新対象機器のソフトウェアの改竄判定処理を行い（ステップＳ１１４）、改竄があるか否かを判定する（ステップＳ１１６）。
【００６６】
改竄がないと判定された場合、更新制御部１２０は、記憶部１５０の中断情報に含まれるもモジュール情報に基づいて、中断位置（次のブロック）から更新を再開し（ステップＳ１１８）、ステップＳ１０２の処理に戻る。また、ステップＳ１１６の処理において、改竄があると判定された場合、更新前のソフトウェアをサーバ装置から再度ダウンロードし、更新対象機器のソフトウェアを更新前の状態に復元する（ステップＳ１２０）。
【００６７】
また、ステップＳ１０６の処理において、更新用のソフトウェアに含まれる全てのブロックをダウンロードした場合、ソフトウェアの更新を行い（ステップＳ１２２）、本フローチャートの処理を終了する。なお、図６のフローチャートのステップＳ１０８の処理では、ダウンロード中のブロックを破棄したか否かを判定してもよい。
【００６８】
以上説明した実施形態によれば、より適切にソフトウェアの更新を実行することができる。具体的には、本実施形態によれば、ブロックごとにダウンロードすることで、電源喪失による不慮のＥＣＵの不具合や更新中のプログラムの不具合を抑制し、ＯＴＡ等の無線通信によるリプログラミングを、より確実に実施することができる。また、本実施形態によれば、所定の車両状態を検知した場合に、リプログラミングの中断状況（中断位置）を記憶しておくことで、更新処理を再開する場合に、中断位置から更新を再開することができる。また、本実施形態によれば、車両Ｍに悪意ある第三者によるソフトウェアのアップデートを抑制することができる。
【００６９】
［ハードウェア構成］
上述した実施形態の車両制御装置１の管理部１００は、例えば、図７に示すようなコンピュータハードウェアの構成により実現される。図７は、実施形態の管理部１００のハードウェア構成の一例を示す図である。
【００７０】
図７に示す管理部１００は、通信コントローラ１００−１、ＣＰＵ１００−２、ＲＡＭ１００−３、ＲＯＭ１００−４、フラッシュメモリやＨＤＤ等の記憶装置１００−５、およびドライブ装置１００−６が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置１００−６には、光ディスク等の可搬型記憶媒体が装着される。記憶装置１００−５に格納されたプログラム１００−５ａがＤＭＡコントローラ（不図示）等によってＲＡＭ１００−３に展開され、ＣＰＵ１００−２によって実行されることで、管理部１００の機能部が実現される。また、ＣＰＵ１００−２が参照するプログラムは、ドライブ装置１００−６に装着された可搬型記憶媒体に格納されていてもよいし、ネットワークＮＷを介して他の装置からダウンロードされてもよい。
【００７１】
上記実施形態は、以下のように表現することができる。
記憶装置と前記記憶装置に格納されたプログラムを実行するハードウェアプロセッサと、を備え、
前記ハードウェアプロセッサは、前記プログラムを実行することにより、
外部装置と通信し、
車両に搭載された機器のうち少なくとも一部の機器を制御する制御部に組み込まれたソフトウェアを更新し、
前記ソフトウェアの更新中に、前記制御部と、前記制御部に電力を供給する電力供給部との接続が切断状態になることが予測された場合に、前記ソフトウェアの更新を中断する、
ように構成されている車両制御装置。
【００７２】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００７３】
１…車両制御装置、１０…車載装置、１２…運転制御装置（ＥＣＵ）、１４…駆動制御装置（ＥＣＵ）、１６…ナビゲーション装置（ＥＣＵ）、２０…バッテリ、３０…表示部、４０…車両センサ、５０…操作部、１００…管理部、１１０…通信部、１２０…更新制御部、１３０…車両状態予測部、１４０…表示制御部、Ｍ…車両
【図１】
2020062909.tif 000003
【図２】
2020062909.tif 000004
【図３】
2020062909.tif 000005
【図４】
2020062909.tif 000006
【図５】
2020062909.tif 000007
【図６】
2020062909.tif 000008
【図７】
2020062909.tif 000009