(57)【要約】【課題】車載装置で複数の処理が並行して実行される場合であっても、電力不足によって意図せずに当該処理が停止することを防止できる制御装置を提供する。【解決手段】複数の車載制御装置と車内通信線を介して通信する制御装置であって、前記複数の車載制御装置に電力供給するバッテリの電力量を取得する取得部と、前記複数の車載制御装置のうちの１つである対象装置での処理の完了時点における前記バッテリの予測電力量が第１の閾値未満である場合に、前記処理と並行して実行されている他の車載制御装置での処理を停止するように当該他の車載制御装置に指示する制御部と、を備える、制御装置。【選択図】図２
2019036140.tif 000002
【特許請求の範囲】
【請求項１】
複数の車載制御装置と車内通信線を介して通信する制御装置であって、
前記複数の車載制御装置に電力供給するバッテリの電力量を取得する取得部と、
前記複数の車載制御装置のうちの１つである対象装置での処理の完了時点における前記バッテリの予測電力量が第１の閾値未満である場合に、前記処理と並行して実行されている他の車載制御装置での処理を停止するように当該他の車載制御装置に指示する制御部と、を備える、制御装置。
【請求項２】
前記対象装置での処理は、車両の停車中における制御プログラムの更新処理である、請求項１に記載の制御装置。
【請求項３】
前記他の車載制御装置での処理が複数、並行して実行されている場合、前記制御部は、処理ごとに設定されている優先度に従って、複数の前記処理の中から停止させる処理を決定する、請求項１または請求項２に記載の制御装置。
【請求項４】
前記他の車載制御装置での処理が複数、並行して実行されている場合、前記制御部は、停止する処理を選択するユーザ操作に従って、複数の前記処理の中から停止させる処理を決定する、請求項１または請求項２に記載の制御装置。
【請求項５】
前記制御部は、さらに、前記バッテリの減少速度が以下の基準速度よりも速い場合に、前記他の車載制御装置に前記処理の停止を指示する、請求項１〜請求項４のいずれか１項に記載の制御装置。
基準速度：前記対象装置での前記処理の完了時点までに、前記バッテリの電力量が前記第１の閾値に相当する電力量まで減少する速度
【請求項６】
前記第１の閾値は、前記対象装置での前記処理を中断する処理に必要な電力量に所定のマージンを付加した値である、請求項１〜請求項５のいずれか１項に記載の制御装置。
【請求項７】
前記制御部は、前記バッテリの電力量が、前記第１の閾値よりも大きい第２の閾値よりも小さい場合に、前記他の車載制御装置を停止させる指示を行う、請求項１〜請求項６のいずれか１項に記載の制御装置。
【請求項８】
前記第２の閾値は、前記対象装置での前記処理の完了までに必要な電力量に所定のマージンを付加した値である、請求項７に記載の制御装置。
【請求項９】
複数の車載制御装置と車内通信線を介して通信する制御装置による、前記車載制御装置の制御方法であって、
前記複数の車載制御装置に電力供給するバッテリの電力量を取得するステップと、
前記複数の車載制御装置のうちの１つである対象装置での処理の完了時点における前記バッテリの予測電力量が閾値未満である場合に、前記処理と並行して実行されている他の車載制御装置での処理を停止するように当該他の車載制御装置に指示するステップと、を備える、制御方法。
【請求項１０】
複数の車載制御装置と車内通信線を介して通信する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
前記複数の車載制御装置に電力供給するバッテリの電力量を取得する取得部と、
前記複数の車載制御装置のうちの１つである対象装置での処理の完了時点における前記バッテリの予測電力量が閾値未満である場合に、前記処理と並行して実行されている他の車載制御装置での処理を停止するように当該他の車載制御装置に指示する制御部、として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は制御装置、制御方法、およびコンピュータプログラムに関し、特に、サーバからダウンロードされる車載制御装置の制御プログラムの更新用プログラムを用いた当該車載制御装置の更新を制御する制御装置、その制御方法、およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、自動車の技術分野においては、車両の高機能化が進行しており、多種多様な車載機器が車両に搭載されている。従って、車両には、各車載機器を制御するための制御装置である、所謂ＥＣＵ（Electronic  Control  Unit）が多数搭載されている。
ＥＣＵの種類には、例えば、アクセル、ブレーキ、ハンドルの操作に対してエンジンやブレーキ、ＥＰＳ（Electric  Power  Steering）等の制御を行う走行系に関わるもの、乗員によるスイッチ操作に応じて車内照明やヘッドライトの点灯／消灯と警報器の吹鳴等の制御を行うボディ系ＥＣＵ、運転席近傍に配設されるメータ類の動作を制御するメータ系ＥＣＵなどがある。
【０００３】
一般的にＥＣＵは、マイクロコンピュータ等の演算処理装置によって構成されており、ＲＯＭ（Read  Only  Memory）に記憶した制御プログラムを読み出して実行することにより、車載機器の制御が実現される。
ＥＣＵの制御プログラムは、車両の仕向け地やグレードなど応じて異なることがあり、制御プログラムのバージョンアップに対応して、旧バージョンの制御プログラムを新バージョンの制御プログラムに書き換える必要がある。また、たとえば地図情報や制御用のパラメータなど、制御プログラムの実行に必要なデータも書き換える必要がある。
【０００４】
たとえば、特許文献１には、ネットワークを介して更新用のプログラムをダウンロードし、プログラムの更新を行う技術（オンライン更新機能）が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−３７９３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
車両において文献１に開示されているオンライン更新などの処理に並行して他の処理が実行されている場合、当該処理の完了までにバッテリの電力が不足すると、意図せずに当該更新が停止してしまう。
【０００７】
本発明のある局面における目的は、車載装置で複数の処理が並行して実行される場合であっても、電力不足によって意図せずに当該処理が停止することを防止できる制御装置、制御方法、およびコンピュータプログラムを提供することである。
【課題を解決するための手段】
【０００８】
ある実施の形態に従うと、制御装置は複数の車載制御装置と車内通信線を介して通信する制御装置であって、複数の車載制御装置に電力供給するバッテリの電力量を取得する取得部と、複数の車載制御装置のうちの１つである対象装置での処理の完了時点におけるバッテリの予測電力量が第１の閾値未満である場合に、処理と並行して実行されている他の車載制御装置での処理を停止するように当該他の車載制御装置に指示する制御部と、を備える。
【０００９】
他の実施の形態に従うと、制御方法は複数の車載制御装置と車内通信線を介して通信する制御装置による、車載制御装置の制御方法であって、複数の車載制御装置に電力供給するバッテリの電力量を取得するステップと、複数の車載制御装置のうちの１つである対象装置での処理の完了時点におけるバッテリの予測電力量が閾値未満である場合に、処理と並行して実行されている他の車載制御装置での処理を停止するように当該他の車載制御装置に指示するステップと、を備える。
【００１０】
他の実施の形態に従うと、コンピュータプログラムは複数の車載制御装置と車内通信線を介して通信する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータを、複数の車載制御装置に電力供給するバッテリの電力量を取得する取得部と、複数の車載制御装置のうちの１つである対象装置での処理の完了時点におけるバッテリの予測電力量が閾値未満である場合に、処理と並行して実行されている他の車載制御装置での処理を停止するように当該他の車載制御装置に指示する制御部、として機能させる。
【発明の効果】
【００１１】
この発明によると、車載装置で複数の処理が並行して実行される場合であっても、電力不足によって意図せずに当該処理が停止することを防止できる。
【図面の簡単な説明】
【００１２】
【図１】プログラム更新システムの全体構成図である。
【図２】ゲートウェイの内部構成を示すブロック図である。
【図３】ＥＣＵの内部構成を示すブロック図である。
【図４】管理サーバの内部構成を示すブロック図である。
【図５】プログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。
【図６】第１の実施の形態にかかる更新制御処理の具体例を表したフローチャートである。
【図７】選択画面の一例を示した図である。
【図８】第２の実施の形態にかかる更新制御処理の具体例を表したフローチャートである。
【図９】選択画面の一例を示した図である。
【発明を実施するための形態】
【００１３】
［実施の形態の説明］
本実施の形態には、少なくとも以下のものが含まれる。すなわち、
（１）本実施の形態に含まれる制御装置は複数の車載制御装置と車内通信線を介して通信する制御装置であって、複数の車載制御装置に電力供給するバッテリの電力量を取得する取得部と、複数の車載制御装置のうちの１つである対象装置での処理の完了時点におけるバッテリの予測電力量が第１の閾値未満である場合に、この処理と並行して実行されている他の車載制御装置での処理を停止するように当該他の車載制御装置に指示する制御部と、を備える。
これにより、他の車載制御装置での処理による電力消費を抑えることができ、対象装置での処理の完了時点までバッテリの電力量を確保することができる。その結果、対象装置での処理が電力不足によって意図せずに停止することを防止できる。
【００１４】
（２）好ましくは、対象装置での処理は、車両の停車中における制御プログラムの更新処理である。
これにより、対象装置での車両の停車中における制御プログラムの更新処理が電力不足によって意図せずに停止することを防止できる。
【００１５】
（３）好ましくは、他の車載制御装置での処理が複数、並行して実行されている場合、制御部は、処理ごとに設定されている優先度に従って、複数の処理の中から停止させる処理を決定する。
適切な優先度を予め設定しておくことで、他の車載制御装置での処理のうちの優先度の高い処理は停止させることなく、優先度の低い処理を停止させるようにできる。その結果、ユーザの利便性を大きく損なうことがない。
【００１６】
（４）好ましくは、他の車載制御装置での処理が複数、並行して実行されている場合、制御部は、停止する処理を選択するユーザ操作に従って、複数の処理の中から停止させる処理を決定する。
これにより、ユーザは、他の車載制御装置での処理のうちの停止可能な処理を選択することができる。その結果、ユーザの利便性を大きく損なうことがない。
【００１７】
（５）好ましくは、制御部は、さらに、バッテリの減少速度が以下の基準速度よりも速い場合に、他の車載制御装置に処理の停止を指示する。
基準速度：対象装置での処理の完了時点までに、バッテリの電力量が第１の閾値に相当する電力量まで減少する速度
バッテリの減少速度が以下の基準速度よりも速い場合、対象装置での処理の完了時点までバッテリの電力量が閾値未満となる可能性が高い。そのため、他の車載制御装置に処理を停止させることによって、他の車載制御装置での処理による電力消費を抑えることができ、対象装置での処理の完了時点までバッテリの電力量を確保することができる。その結果、対象装置での処理が電力不足によって意図せずに停止することを防止できる。
【００１８】
（６）好ましくは、第１の閾値は、対象装置での処理を中断する処理に必要な電力量に所定のマージンを付加した値である。
バッテリの電力量が処理を中断する処理に必要な電力量まで減少すると、当該処理の中断ができなくなり、当該処理が停止してしまう。そのため、バッテリの電力量が処理を中断する処理に必要な電力量まで減少するよりも前に他の車載制御装置に処理を停止させることによって、対象装置での処理が電力不足によって意図せずに停止することを防止できる。
【００１９】
（７）好ましくは、制御部は、バッテリの電力量が、第１の閾値よりも大きい第２の閾値よりも小さい場合に、他の車載制御装置を停止させる指示を行う。
第２の閾値を適切に設定することにより、バッテリの電力量が十分にある場合には判定を不要にできるとともに、バッテリの電力量が不足する可能性のあるときに制御部での制御を行うことができる。その結果、対象装置での処理が電力不足によって意図せずに停止することを防止できる。
【００２０】
（８）好ましくは、第２の閾値は、対象装置での処理の完了までに必要な電力量に所定のマージンを付加した値である。
これにより、バッテリの電力量が対象装置での処理の完了までに必要な電力量が十分にある場合には判定を不要にできるとともに、バッテリの電力量が不足する可能性のあるときに制御部での制御を行うことができる。
【００２１】
（９）本実施の形態に含まれる制御方法は、（１）〜（８）のいずれか１つに記載の制御装置において車載制御装置を制御する方法である。
かかる制御方法は、上記（１）〜（８）の制御装置と同様の効果を奏する。
【００２２】
（１０）本実施の形態に含まれるコンピュータプログラムは、コンピュータを、（１）〜（８）のいずれか１つに記載の制御装置として機能させる。
かかるコンピュータプログラムは、上記（１）〜（８）の制御装置と同様の効果を奏する。
【００２３】
［実施の形態の詳細］
以下に、図面を参照しつつ、好ましい実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００２４】
＜第１の実施の形態＞
〔システムの全体構成〕
図１は、本発明の実施形態にかかるプログラム更新システムの全体構成図である。
図１に示すように、本実施形態のプログラム更新システムは、広域通信網２を介して通信可能な車両１、管理サーバ５およびＤＬ（ダウンロード）サーバ６を含む。
管理サーバ５は、車両１の更新情報を管理する。ＤＬサーバ６は、更新用プログラムを保存する。管理サーバ５およびＤＬサーバ６は、たとえば、車両１のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両１と通信可能である。
【００２５】
車両１には、車内通信線１６で接続された複数のＥＣＵ３０とゲートウェイ１０とを含む車内ネットワーク（通信ネットワーク）４と、無線通信部１５と、各ＥＣＵ３０によりそれぞれ制御される各種の車載機器（図示せず）と、が搭載されている。車載機器は、ユーザインタフェース装置７を含む。ユーザインタフェース装置７は、たとえば、ディスプレイやタッチパネルなどである。
車両１には、共通の車内通信線にバス接続された複数のＥＣＵ３０による通信グループが存在し、ゲートウェイ１０は、通信グループ間の通信を中継している。
【００２６】
無線通信部１５は、携帯電話網などの広域通信網２に通信可能に接続され、車内通信線によりゲートウェイ１０に接続されている。ゲートウェイ１０は、広域通信網２を通じて管理サーバ５およびＤＬサーバ６などの車外装置から無線通信部１５が受信した情報を、車内通信線１６を介してＥＣＵ３０に送信する。
ゲートウェイ１０は、ＥＣＵ３０から取得した情報を無線通信部１５に送信し、無線通信部１５は、その情報を管理サーバ５などの車外装置に送信する。
また、ＥＣＵ３０同士は、車内通信線を介して情報を送受信する。
【００２７】
車両１に搭載される無線通信部１５としては、車載の専用通信端末の他に、たとえば、ユーザが所有する携帯電話機、スマートフォン、タブレット型端末、ノートＰＣ（Personal  Computer）等の装置が考えられる。
図１では、ゲートウェイ１０が無線通信部１５を介して車外装置と通信を行う場合が例示されているが、ゲートウェイ１０が無線通信の機能を有する場合には、ゲートウェイ１０自身が管理サーバ５などの車外装置と無線通信を行う構成としてもよい。
【００２８】
また、図１のプログラム更新システムでは、管理サーバ５とＤＬサーバ６とが別個のサーバで構成されているが、これらのサーバ５，６を１つのサーバ装置で構成してもよい。また、管理サーバ５およびＤＬサーバ６は、いずれも、複数の装置からなるものであってもよい。
【００２９】
〔ゲートウェイの内部構成〕
図２は、ゲートウェイ１０の内部構成を示すブロック図である。
図２に示すように、ゲートウェイ１０は、ＣＰＵ１１、ＲＡＭ（Random  Access  Memory）１２、記憶部１３、および車内通信部１４などを備える。ゲートウェイ１０は、無線通信部１５と車内通信線を介して接続されているが、これらは一つの装置で構成してもよい。
【００３０】
ＣＰＵ１１は、記憶部１３に記憶された一または複数のプログラムをＲＡＭ１２に読み出して実行することにより、ゲートウェイ１０を各種情報の中継装置として機能させる。
ＣＰＵ１１は、たとえば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。なお、ＣＰＵ１１は複数のＣＰＵ群を代表するものであってもよい。この場合、ＣＰＵ１１の実現する機能は、複数のＣＰＵ群が協働して実現するものである。ＲＡＭ１２は、ＳＲＡＭ（Static  ＲＡＭ）またはＤＲＡＭ（Dynamic  ＲＡＭ）等のメモリ素子で構成され、ＣＰＵ１１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００３１】
ＣＰＵ１１が実現するコンピュータプログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの周知の記録媒体に記録した状態で譲渡することもできるし、サーバコンピュータなどのコンピュータ装置からの情報伝送によって譲渡することもできる。
この点は、後述のＥＣＵ３０のＣＰＵ３１（図３参照）が実行するコンピュータプログラム、および、後述の管理サーバ５のＣＰＵ５１（図４参照）が実行するコンピュータプログラムについても同様である。
なお、以降の説明において、上位装置が下位装置にデータを転送（送信）することを「ダウンロードする」ともいう。
【００３２】
記憶部１３は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子などにより構成されている。記憶部１３は、ＣＰＵ１１が実行するプログラムおよび実行に必要なデータ等を記憶するとともに、ＤＬサーバ６から受信した、ダウンロード対象の各ＥＣＵ３０の更新用プログラムなどを記憶する。
【００３３】
車内通信部１４には、車両１に配設された車内通信線を介して複数のＥＣＵ３０が接続されている。車内通信部１４は、たとえばＣＡＮ（Controller  Area  Network）の規格に応じて、ＥＣＵ３０との通信（ＣＡＮ通信とも称する）を行う。車内通信部１４の採用する通信規格はＣＡＮに限定されず、ＣＡＮＦＤ（ＣＡＮ  with  Flexible  Data  Rate）、ＬＩＮ（Local  Interconnect  Network）、Ｅｔｈｅｒｎｅｔ（登録商標）、またはＭＯＳＴ（Media  Oriented  Systems  Transport：ＭＯＳＴは登録商標）等の規格であってもよい。複数の車内通信線の中には、通信規格の異なるものが含まれていてもよい。
車内通信部１４は、ＣＰＵ１１から与えられた情報を対象のＥＣＵ３０へ送信するとともに、ＥＣＵ３０から受信した情報をＣＰＵ１１に与える。車内通信部１４は、上記の通信規格だけでなく、車内ネットワーク４に用いる他の通信規格によって通信してもよい。
【００３４】
無線通信部１５は、アンテナと、アンテナからの無線信号の送受信を実行する通信回路とを含む無線通信機よりなる。無線通信部１５は、携帯電話網等の広域通信網２に接続されることにより車外装置との通信が可能である。
無線通信部１５は、図示しない基地局により形成される広域通信網２を介して、ＣＰＵ１１から与えられた情報を管理サーバ５等の車外装置に送信するとともに、車外装置から受信した情報をＣＰＵ１１に与える。
【００３５】
図２に示す無線通信部１５に代えて、車両１内の中継装置として機能する有線通信部を採用してもよい。この有線通信部は、ＵＳＢ（Universal  Serial  Bus）またはＲＳ２３２Ｃ等の規格に応じた通信ケーブルが接続されるコネクタを有し、通信ケーブルを介して接続された別の通信装置と有線通信を行う。
別の通信装置と管理サーバ５等の車外装置とが広域通信網２を通じた無線通信が可能である場合には、車外装置→別の通信装置→有線通信部→ゲートウェイ１０の通信経路により、車外装置とゲートウェイ１０とが通信可能になる。
【００３６】
〔ＥＣＵの内部構成〕
図３は、ＥＣＵ３０の内部構成を示すブロック図である。
図３に示すように、ＥＣＵ３０は、ＣＰＵ３１、ＲＡＭ３２、記憶部３３、および通信部３４などを備える。ＥＣＵ３０は、車両１に搭載された対象機器を個別に制御する車載制御装置である。ＥＣＵ３０の種類には、たとえば、電源制御ＥＣＵ、エンジン制御ＥＣＵ、ステアリング制御ＥＣＵ、およびドアロック制御ＥＣＵなどがある。
【００３７】
ＣＰＵ３１は、記憶部３３に予め記憶された一または複数のプログラムをＲＡＭ３２に読み出して実行することにより、自身が担当する対象機器の動作を制御する。ＣＰＵ３１もまた複数のＣＰＵ群を代表するものであってもよく、ＣＰＵ３１による制御は、複数のＣＰＵ群が協働することによる制御であってもよい。
ＲＡＭ３２は、ＳＲＡＭまたはＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ３１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００３８】
記憶部３３は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置等により構成されている。
記憶部３３は、ＣＰＵ３１が読み出して実行するプログラムを格納する。記憶部３３が記憶する情報には、たとえば、車内の制御対象である対象機器を制御するための情報処理をＣＰＵ３１に実行させるためのコンピュータプログラムや、パラメータや地図情報などの、当該プログラムを実行する際に用いるデータである制御プログラムが含まれる。
【００３９】
通信部３４には、車両１に配設された車内通信線を介してゲートウェイ１０が接続されている。通信部３４は、たとえばＣＡＮ、Ｅｔｈｅｒｎｅｔ、またはＭＯＳＴ等の規格に応じて、ゲートウェイ１０との通信を行う。
通信部３４は、ＣＰＵ３１から与えられた情報をゲートウェイ１０へ送信するとともに、ゲートウェイ１０から受信した情報をＣＰＵ３１に与える。通信部３４は、上記の通信規格だけなく、車載ネットワークに用いる他の通信規格によって通信してもよい。
【００４０】
ＥＣＵ３０のＣＰＵ３１には、当該ＣＰＵ３１による制御モードを、「通常モード」または「リプログラミングモード」（以下、「リプロモード」ともいう。）のいずれかに切り替える起動部３５が含まれる。
ここで、通常モードとは、ＥＣＵ３０のＣＰＵ３１が、対象機器に対する本来的な制御（たとえば、燃料エンジンに対するエンジン制御や、ドアロックモータに対するドアロック制御など）を実行する制御モードのことである。
【００４１】
リプログラミングモードとは、対象機器の制御に用いる制御プログラムを更新する制御モードである。
すなわち、リプログラミングモードは、ＣＰＵ３１が、記憶部３３のＲＯＭ領域に対して、制御プログラムのデータの消去や書き換えを行う制御モードのことである。ＣＰＵ３１は、この制御モードのときにのみ、記憶部３３のＲＯＭ領域に格納された制御プログラムを新バージョンに更新することが可能となる。
【００４２】
リプロモードにおいてＣＰＵ３１が新バージョンの制御プログラムを記憶部３３に書き込むと、起動部３５は、ＥＣＵ３０をいったん再起動（リセット）させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
起動部３５は、上記のベリファイ処理の完了後に、ＣＰＵ３１を更新後の制御プログラムによって動作させる。
ＤＬサーバ６からゲートウェイ１０を介してＥＣＵ３０に更新用プログラムがダウンロードされ、当該更新用プログラムを用いて制御プログラムを更新することを、オンライン更新とも称する。
【００４３】
〔管理サーバの内部構成〕
図４は、管理サーバ５の内部構成を示すブロック図である。
図４に示すように、管理サーバ５は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、記憶部５４、および通信部５５などを備える。
【００４４】
ＣＰＵ５１は、ＲＯＭ５２に予め記憶された一または複数のプログラムをＲＡＭ５３に読み出して実行することにより、各ハードウェアの動作を制御し、管理サーバ５をゲートウェイ１０と通信可能な車外装置として機能させる。ＣＰＵ５１もまた複数のＣＰＵ群を代表するものであってもよく、ＣＰＵ５１の実現する機能は、複数のＣＰＵ群が協働して実現するものであってもよい。
ＲＡＭ５３は、ＳＲＡＭまたはＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ５１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００４５】
記憶部５４は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、または、ハードディスクなどの磁気記憶装置等により構成されている。
通信部５５は、所定の通信規格に則って通信処理を実行する通信装置よりなり、携帯電話網等の広域通信網２に接続されて当該通信処理を実行する。通信部５５は、ＣＰＵ５１から与えられた情報を、広域通信網２を介して外部装置に送信するとともに、広域通信網２を介して受信した情報をＣＰＵ５１に与える。
【００４６】
〔制御プログラムの更新シーケンス〕
図５は、本実施形態のプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。ＤＬサーバ６に１または複数の更新用プログラムが格納され、一例として、管理サーバ５が、予め登録された車両１について、当該車両１のＥＣＵの制御プログラムを更新するタイミングを決定する。更新のタイミングは、たとえば、車両１のカーメーカーなどによって設定されてもよい。
【００４７】
なお、制御プログラムは、プログラムそのもののみならず、パラメータや地図情報などの、当該プログラムを実行する際に用いるデータも含む。それらを代表させて「制御プログラム」と表現している。そのため、更新用プログラムは、プログラムの更新用のプログラムのみならず、当該プログラムを実行する際に用いるデータの更新用のデータを含む。
【００４８】
制御プログラムを更新するタイミングに達すると、管理サーバ５は、該当する車両１のゲートウェイ１０宛てに、更新を通知する（ステップＳ１）。ステップ１では、管理サーバ５からゲートウェイ１０に、ダウンロード要求とともに更新用プログラムの保存先ＵＲＬや更新用プログラムのサイズなどの更新用の情報が送られる。
【００４９】
管理サーバ５から更新の通知を受信したゲートウェイ１０は、ＤＬサーバ６からダウンロードされる更新用プログラムを、制御プログラムを更新するＥＣＵ３０（以下、対象ＥＣＵ）に中継する。すなわち、ゲートウェイ１０は、更新用の情報に基づいてＤＬサーバ６に対して更新用プログラムのダウンロードを要求する（ステップＳ２）。
【００５０】
ゲートウェイ１０からダウンロードが要求されたＤＬサーバ６は、ダウンロード対象の更新用プログラムをゲートウェイ１０に送信するとともに、制御プログラムの更新を要求する（ステップＳ３）。
【００５１】
ゲートウェイ１０は、更新用プログラムをダウンロードすると、当該更新用プログラムを対象ＥＣＵに送信するとともに、対象ＥＣＵに制御プログラムの更新を要求する（ステップＳ４）。
【００５２】
対象ＥＣＵに更新を要求すると、ゲートウェイ１０は、当該更新が車両１の停車中に行われるものである場合、更新制御処理を実行する（ステップＳ５）。更新制御処理は、以下の取得処理と判定処理とを含む。
取得処理：バッテリの残量（以下、バッテリ残量とも称する）を取得する処理
判定処理：動作中の各処理を停止するか否か判定する処理
【００５３】
更新用プログラムとともに更新制御処理に従った制御信号をゲートウェイ１０から受けた対象ＥＣＵは、当該制御信号に従って更新用プログラムを展開し、制御プログラムを更新する更新処理を実行する（ステップＳ６）。ステップＳ５の更新制御処理において必要な場合には、ゲートウェイ１０は、ステップＳ６の更新処理中に対象ＥＣＵに対して制御信号を出力する。対象ＥＣＵは、当該制御信号に従って更新処理を続行または中断する。
【００５４】
制御プログラムの更新が完了すると、対象ＥＣＵ３０はゲートウェイ１０に更新完了を通知する（ステップＳ７）。この通知を受けたゲートウェイ１０は、ＤＬサーバ６に更新完了を通知する（ステップＳ８）。
【００５５】
［ゲートウェイの機能構成］
図２を参照して、ゲートウェイ１０のＣＰＵ１１は、更新制御処理を実行するための機能として、更新制御部１１１を含む。更新制御部１１１は、取得処理を実行する取得部１１２と、判定処理を実行する判定部１１３と、を含む。
【００５６】
取得部１１２は、図示しないバッテリを制御するＥＣＵから送信されるフレームを監視することによって、バッテリ残量ＳｏＣを取得する。
【００５７】
判定部１１３は、動作中の各処理を継続可能か否かを判定する（第１の判定処理）。判定部１１３は、バッテリ残量ＳｏＣを第１の判定処理のための閾値Ｔｈ１と比較する。閾値Ｔｈ１は少なくとも更新処理完了までに必要と予測される電力量を示す閾値である。判定部１１３は、その比較結果に基づいて判定する。具体的に、判定部１１３は、バッテリ残量ＳｏＣが閾値Ｔｈ１より大きいとき（ＳｏＣ＞Ｔｈ１）、更新処理を含む動作中のすべての処理を継続すると判定する（第１の判定結果）。この場合には、判定時点では更新処理の完了までに必要と予測される電力量がバッテリに蓄電されているためである。
【００５８】
バッテリ残量ＳｏＣが閾値Ｔｈ１以下のとき（ＳｏＣ≦Ｔｈ１）、判定時点で、バッテリ残量ＳｏＣが更新処理の完了までに必要と予測される電力量よりも不足している。そこで、判定部１１３は、さらに、更新処理を中断するか否かを判定する（第２の判定処理）。判定部１１３は、バッテリ残量ＳｏＣを第２の判定処理のための閾値Ｔｈ２（Ｔｈ２＜Ｔｈ１）と比較する。閾値Ｔｈ２は、バッテリ残量の下限値Ｗｈｍに相当する値であり、少なくとも更新処理の中断するための処理（中断処理）に必要な電力量を示す値である。判定部１１３は、その比較結果に基づいて判定する。具体的に、判定部１１３は、バッテリ残量ＳｏＣが閾値Ｔｈ２まで減少すると（ＳｏＣ≦Ｔｈ２）、更新処理を中断すると判定する（第２の判定結果）。バッテリ残量ＳｏＣがこれ以上減少すると、中断処理ができなくなるためである。
【００５９】
判定部１１３は、後述する更新制御処理によって更新処理が中断された場合に、当該更新処理を再開するか否かを判定する（第３の判定処理）。判定部１１３は、バッテリ残量ＳｏＣを上記閾値Ｔｈ２と比較する。判定部１１３は、その比較結果に基づいて判定する。具体的に、判定部１１３は、バッテリ残量ＳｏＣが閾値Ｔｈ２より大きくなった場合に（ＳｏＣ＞Ｔｈ２）、中断した更新処理を再開すると判定する。
【００６０】
バッテリ残量ＳｏＣが閾値Ｔｈ１以下であり、かつ、閾値Ｔｈ２より大きいとき（ＳｏＣ≦Ｔｈ１、かつ、ＳｏＣ＞Ｔｈ２）、判定部１１３は、更新処理以外の動作中の処理を必要に応じて停止すると判定する（第３の判定結果）。この場合、現状の動作を継続すると更新処理の完了までに必要な電力量が不足する可能性があるためである。
【００６１】
好ましくは、判定部１１３は、上記閾値Ｔｈ１，Ｔｈ２を設定するための設定部１１４を含む。設定部１１４は、記憶部１３に予め記憶されている閾値を読み出してもよいし、予め記憶している計算式にパラメータを代入して算出してもよい。たとえば、設定部１１４は、予め記憶している対象ＥＣＵの属性と、更新用プログラムのサイズと、に基づいて閾値Ｔｈ１を算出する。具体的には、設定部１１４は、対象ＥＣＵでの更新処理の所要時間Ｔに、予め記憶している当該対象ＥＣＵでの単位時間あたりの消費電力ｐを乗じて予測消費電力量Ｐ１（Ｐ１＝Ｔ×ｐ）を算出し、当該予測消費電力量Ｐ１に予め設定されているマージンｍ１を付加した値を閾値Ｔｈ１とする（Ｔｈ１＝Ｐ１＋ｍ１）。
【００６２】
なお、マージンｍ１は正負いずれの値であってもよい。マージンｍ１を正の数とすることによって、閾値Ｔｈ１は予測消費電力量Ｐ１より大きな値となる。これにより、第１の判定処理をバッテリ残量ＳｏＣに余裕を持たせた、安全側の判定処理とすることができる。一方、マージンｍ１を負の数とすることによって、閾値Ｔｈ１は予測消費電力量Ｐ１より小さな値となる。マージンｍ１の絶対値を適切な数とすることによって、第１の判定処理を過剰に安全側とすることよりも、更新処理の実行し易さを優先させることができる。また、マージンｍ１を付加することは、予測消費電力量Ｐ１への加算のみならず、乗算であってもよい。
【００６３】
なお、所要時間Ｔは、対象ＥＣＵで更新処理が開始してから完了するまでの合計時間Ｔ１であってもよいし、判定時点から更新処理が完了するまでの残り時間Ｔ２であってもよい。前者の場合、判定部１１３は、所要時間Ｔを、更新用プログラムのデータサイズＳ１を対象ＥＣＵのデータの書き込み速度ｖで除することで得ることができる（Ｔ＝Ｔ１＝Ｓ１／ｖ）。合計時間Ｔ１を用いることで、所要時間Ｔを判定時点ごとに算出することが不要になり、判定処理を容易にできる。後者の場合、判定部１１３は、所要時間Ｔを、更新用プログラムの未処理分のデータサイズＳ２を対象ＥＣＵのデータの書き込み速度ｖで除することで得ることができる（Ｔ＝Ｔ２＝Ｓ２／ｖ）。残り時間Ｔ２を用いることで、所要時間Ｔを判定時点に応じて算出することができ、更新処理の進度に応じて高精度で所要時間Ｔを得ることができる。
【００６４】
閾値Ｔｈ２は、記憶部１３に予め記憶されている。または、設定部１１４は、更新処理を中断処理に必要な電力量Ｐ２を予め記憶しておき、電力量Ｐ２を用いて閾値Ｔｈ２を算出してもよい。中断処理は、更新処理のうちの処理完了位置（アドレス）を記憶部１３に書き込む処理を含み、電力量Ｐ２は、当該アドレスを記憶部１３に書き込む処理に要する電力量を含む。中断処理は、さらに、記憶部１３からアドレスを読出し、更新用プログラムのうちの当該アドレスに示される箇所から更新処理を再開する処理を含んでもよい。たとえば、設定部１１４は、予め記憶部されている電力量Ｐ２に予め設定されているマージンｍ２を付加した値を閾値Ｔｈ２とする（Ｔｈ２＝Ｐ２＋ｍ２）。マージンｍ２もまた正負いずれの値であってもよい。
【００６５】
マージンｍ２を正の数とすることによって、上記のマージンｍ１を正の数とすることと同様に、第２の判定処理を安全側の判定処理とすることができる。マージンｍ２を負の数とすることによって、上記のマージンｍ１を負の数とすることと同様に、第２の判定処理を過剰に安全側とすることよりも、更新処理の実行し易さを優先させることができる。また、マージンｍ２を付加することも、電力量Ｐ２への加算のみならず、乗算であってもよい。
【００６６】
更新制御部１１１は、判定部１１３の判定結果に基づいて更新制御処理を実行する。すなわち、第２の判定結果である場合、更新制御部１１１は、対象ＥＣＵに対して更新処理の中断を指示する。具体的には、更新処理の中断を指示するデータを含むフレームを生成し、車内通信部１４に対象ＥＣＵに対して送信させる。
【００６７】
第３の判定結果である場合、更新制御部１１１は、停止処理を実行する。停止処理は、更新処理以外の動作中の処理を必要に応じて停止する処理である。更新処理以外の処理は、たとえば、図示しない動画プレイヤーにおける動画の再生、音楽プレイヤーにおける音楽の再生、各種装置におけるデータのダウンロード、などである。
【００６８】
更新処理以外の動作中の処理が複数ある場合、好ましくは、更新制御部１１１は、所定の選択基準に従って、当該複数の処理のうちから停止する処理を決定する。第１の実施の形態では、上記所定の選択基準は、予め設定された優先度である。このため、更新制御部１１１は、処理の優先度を予め記憶しておき、動作中の複数の処理のうち、更新処理よりも優先度の低い処理を停止する処理に決定する。また、更新処理よりも優先度の低い処理が複数ある場合には、更新制御部１１１は、その複数の処理のうちの優先度の低い処理から順に停止する対象の処理を決定する。当該優先度は、予め記憶部１３に記憶されていてもよいし、ユーザによって設定、変更可能であってもよい。または、上記所定の選択基準は、ランダムであってもよい。
【００６９】
更新処理以外の動作中の処理が複数ある場合、より好ましくは、更新制御部１１１は、のバッテリの減少速度ΔＷｈが基準速度Δ未満となるまで順（たとえば、優先度の低い順）に、更新処理以外の動作中の処理を停止する。減少速度ΔＷｈは、単位時間あたりのバッテリの減少量である。更新制御部１１１は、図示しないバッテリを制御するＥＣＵから送信されるフレームを監視することによって、バッテリの減少速度ΔＷｈを取得することができる。また、更新制御部１１１は、バッテリ残量ＳｏＣと更新処理完了までの時間とに基づいて基準速度Δを算出する。
【００７０】
基準速度Δは、更新処理完了までの期間に、現在のバッテリ残量が下限値Ｗｈｍ（閾値Ｔｈ２に相当する電力量）まで減少する速度、つまり、単位時間あたりの変化（減少）量である。減少速度ΔＷｈが基準速度Δよりも大きい（速い）場合、更新処理の完了時点の予測されるバッテリ残量が下限値Ｗｈｍを下回る、つまり、更新処理の完了時点において、バッテリ不足が予測される。
【００７１】
更新制御部１１１は、バッテリ残量ＳｏＣの下限値Ｗｈｍからの差分を上記所要時間Ｔで除することによって基準速度Δを得ることができる（Δ＝（ＳｏＣ−Ｗｈｍ）／Ｔ）。なお、所要時間Ｔは、閾値Ｔｈ１の算出の際に用いた所要時間Ｔと同様に、合計時間Ｔ１であってもよいし、残り時間Ｔ２であってもよい。
【００７２】
［動作フロー］
図６は、第１の実施の形態にかかるプログラム更新システムでの、図５のステップＳ５の更新制御処理の具体例を表したフローチャートである。図６のフローチャートに表された処理は、ゲートウェイ１０のＣＰＵ１１が、記憶部１３に記憶された１つまたは複数のプログラムをＲＡＭ１２上に読み出して実行することによって図２に示された各機能を実現することで実行される。図６の処理は、制御プログラムの更新処理が車両１の停車中に行われるものである場合に、ゲートウェイ１０が対象ＥＣＵに更新用プログラムを渡して制御プログラムの更新を要求すると（図５のステップＳ４）開始される。
【００７３】
図６を参照して、ゲートウェイ１０のＣＰＵ１１は、対象ＥＣＵに更新処理を要求した後に、図示しないバッテリを制御するＥＣＵから送信されるフレームを監視することによってバッテリ残量ＳｏＣを取得する（ステップＳ１０１）。
【００７４】
ＣＰＵ１１は、取得したバッテリ残量ＳｏＣと閾値Ｔｈ１とを比較し、バッテリ残量ＳｏＣが閾値Ｔｈ１よりも大きい場合には（ステップＳ１０３でＮＯ）、以降の処理をスキップする。この場合、対象ＥＣＵでの更新処理は続行する。
【００７５】
バッテリ残量ＳｏＣが閾値Ｔｈ１以下である場合（ステップＳ１０３でＹＥＳ）、ＣＰＵ１１は、さらに、閾値Ｔｈ２と比較する。バッテリ残量ＳｏＣが閾値Ｔｈ１以下であって、閾値Ｔｈ２より大きい場合には（ステップＳ１０５でＮＯ）、ＣＰＵ１１は、停止処理を実行する。すなわち、ＣＰＵ１１は、動作中の処理の中に、更新処理よりも優先度の低い処理があるか否かを確認する。ない場合には（ステップＳ１０７でＮＯ）、ＣＰＵ１１は、以降の処理をスキップする。この場合、対象ＥＣＵでの更新処理は続行する。
【００７６】
動作中の処理の中に、更新処理よりも優先度の低い処理がある場合（ステップＳ１０７でＹＥＳ）、ＣＰＵ１１は車内通信部１４に、当該処理中のＥＣＵに処理の停止を指示するフレームを送信させる。これにより、該当するＥＣＵでの処理が停止する。また、更新処理よりも優先度の高い処理は、継続する。このとき、該当する処理が複数ある場合、ＣＰＵ１１は、たとえば、優先度の最下位の処理の停止を指示する（ステップＳ１１１）。
【００７７】
好ましくは、ＣＰＵ１１は、バッテリを制御するＥＣＵから送信されるフレームを監視することによってバッテリの減少速度ΔＷｈを取得し、基準速度Δと比較する。そして、減少速度ΔＷｈが基準速度Δ以上である場合に（ステップＳ１０９でＮＯ）、ＣＰＵ１１は、優先度の最下位の処理の停止を指示する（ステップＳ１１１）。これにより、優先度の最下位の処理が停止する。減少速度ΔＷｈが基準速度Δより小さい場合には（ステップＳ１０９でＹＥＳ）、ＣＰＵ１１は、ステップＳ１１１をスキップする。すなわち、動作中の処理の停止を指示しない。これにより、動作中の処理は継続される。
【００７８】
ＣＰＵ１１は、以上の処理を、対象ＥＣＵでの更新処理が完了するまで定期的に繰り返す（ステップＳ１１３でＮＯ）。このため、更新処理よりも優先度の低い処理が複数、動作中である場合、これら処理のうちの優先度の低い処理から順に、バッテリ残量ＳｏＣが下限値Ｗｈｍに相当する閾値Ｔｈ２以上となるまで、または、バッテリの減少速度ΔＷｈが基準速度Δよりも小さくなるまで、停止される。
【００７９】
バッテリ残量ＳｏＣが閾値Ｔｈ２まで減少した場合（ステップＳ１０５でＹＥＳ）、ＣＰＵ１１は車内通信部１４に、対象ＥＣＵに対して更新処理の中断を指示するフレームを送信させる（ステップＳ１１５）。これにより、対象ＥＣＵにおいて中断処理が実行され、更新処理が中断する。
【００８０】
更新処理が中断された後、ＣＰＵ１１は、バッテリ残量ＳｏＣの監視を続ける。そして、バッテリ残量ＳｏＣが閾値Ｔｈ２より多くなるまで充電が進むと（ステップＳ１１７でＹＥＳ）、ＣＰＵ１１は車内通信部１４に、対象ＥＣＵに対して更新処理の再開を指示するフレームを送信させる（ステップＳ１１９）。これにより、対象ＥＣＵでの更新処理が再開する。更新処理が再開すると、ＣＰＵ１１は、ステップＳ１０１からの処理を、対象ＥＣＵでの更新処理が完了するまで定期的に繰り返す（ステップＳ１１３でＮＯ）。
【００８１】
［第１の実施の形態の効果］
上記の更新制御処理は、車両１の停車中にオンライン更新が実行される場合であって、たとえば、車両１内のユーザがエアコンを稼動させたり、動画を再生したりしている場合に実行されることが想定される。この場合、これら動作中の処理によって更新処理の完了までにバッテリ残量が不足すると、対象ＥＣＵでの更新処理が途中で停止するおそれがある。更新処理が途中で停止すると、更新用プログラムが破壊するなどして、制御プログラムの更新自体に失敗する場合もある。
【００８２】
このような場合に本実施の形態にかかる更新制御処理が実行されることによって、更新処理の完了までに、必要な電力量が不足することが予測される場合、他のＥＣＵの処理が自動的に停止される。これにより、更新処理の完了まで、必要な電力量がバッテリに確保される。その結果、バッテリ不足による更新処理の停止が回避され、完了まで更新処理が実行される。
【００８３】
なお、このとき、優先度を予め設定しておくことによって、更新処理よりも優先度の低い処理が停止され、優先度の高い処理は停止されない。これにより、ユーザが制御プログラムの更新よりも優先する動作がある場合には当該動作は停止されない。たとえば、エアコンの稼動の優先度を制御プログラムの更新よりも高く設定し、動画の再生を低く設定していた場合、エアコンの稼動は停止せず、動画の再生が停止する。そのため、ユーザの利便性を大きく損なうことがない。
【００８４】
一方で、優先度が設定されることによって、優先度の高い処理が停止されないために更新処理が完了する前にバッテリ残量が不足する場合もある。上の例ではエアコンの稼動が継続することによって、更新処理の完了よりも前にバッテリ残量が不足する場合がある。このとき、本実施の形態にかかる更新制御処理では、バッテリ残量が中断処理に必要な電力量まで減少すると、バッテリ残量が当該電力量以上に充電されるまで更新処理を中断する。そして、バッテリ残量が当該電力量以上に充電されると、自動的に更新処理を再開する。これにより、バッテリ不足によって更新処理が中断された場合であっても、バッテリ残量が確保された時点で自動的に更新処理が再開されるため、完了まで更新処理が実行される。
【００８５】
さらに、動作中の処理による電力の消費速度によって、更新処理が完了するまでに、必要な電力量が不足することが予測される場合に他のＥＣＵの処理が停止され、そうでない場合には停止されないことで、必要以上の処理が停止されることがない。そのため、ユーザの利便性を大きく損なうことがない。
【００８６】
＜第２の実施の形態＞
第１の実施の形態では、更新処理の実行中にバッテリ残量が更新完了までに必要な電力量が不足すると予測される場合、動作中の処理のうち、所定の選択基準に従って決定された処理が自動的に停止する。他の例として、ユーザが選択した処理を停止してもよい。
【００８７】
第２の実施の形態において、更新制御部１１１で実行される停止処理は、ユーザから停止する処理の選択を受け付ける処理と、選択された処理を停止する処理と、を含む。このため、好ましくは、更新制御部１１１は、ユーザの指示に従って停止可能な処理を予め記憶しておく。ユーザの指示に従って停止可能な処理は、走行に関わらない処理であって、たとえば、エアコン稼動のための処理や、動画再生のための処理、などである。
【００８８】
更新処理以外の動作中の処理がユーザの指示に従って停止可能な処理である場合、更新制御部１１１は、当該処理の停止の可否を指示するユーザ操作を受け付けるための表示画面（選択画面）をユーザインタフェース装置７に表示させる。更新処理以外の動作中の処理であって、ユーザの指示に従って停止可能な処理が複数ある場合には、選択画面は、これら複数の処理のうちから停止する処理の選択を受け付ける。更新制御部１１１は選択画面をユーザインタフェース装置７に表示させるために、選択画面の表示を指示するデータを含むフレームを生成し、車内通信部１４にユーザインタフェース装置７を制御するＥＣＵに送信させる。
【００８９】
図７は、選択画面の一例を示した図である。図７を参照して、選択画面は、更新処理が完了するまでに必要な電力量が不足することが予測されることの通知（電力不足予測通知）に加えて、動作中の処理のうちのユーザの指示に従って停止可能な処理の表示を含む。選択画面は、表示した処理の停止の可否を選択するユーザ操作を受け付ける。図７の例では、選択可能な処理が、動画プレイヤーでの再生処理、音楽プレイヤーでの再生処理、音楽データのダウンロード処理、動画データのダウンロード処理、およびエアコン稼動の処理の複数あり、それぞれについて、停止を指示するユーザ操作（たとえばタッチ）を受け付けることができる。
【００９０】
好ましくは、更新制御部１１１は、不足する電力量Ｘと、動作中の処理の消費電力量Ａ〜Ｅを選択画面に表示する。不足する電力量Ｘは、たとえば、バッテリ残量ＳｏＣから上記の単位時間あたりのバッテリの減少速度ΔＷｈが所要時間Ｔ継続した場合の消費電力量（ΔＷｈ×Ｔ）を減じて算出される。動作中の処理の消費電力量Ａ〜Ｅは、当該処理を実行するＥＣＵから送信されるフレームを監視することで得られる単位時間あたりの消費電力を所要時間Ｔに乗じて算出される。選択画面でこれら電力量が表示されることによって、ユーザは、適した処理の停止を指示することができる。
【００９１】
図８は、第２の実施の形態にかかるプログラム更新システムでの、図５のステップＳ５の更新制御処理の具体例を表したフローチャートである。図８のフローチャートに表された処理もまた、ゲートウェイ１０のＣＰＵ１１が、記憶部１３に記憶された１つまたは複数のプログラムをＲＡＭ１２上に読み出して実行することによって図２に示された各機能を実現することで実行される。なお、図８のフローチャートにおいて、図６のフローチャートと同じ番号が付された動作は、図６のフローチャートで示された動作と同じであるため、説明を繰り返さない。
【００９２】
第２の実施の形態においては、図８を参照して、バッテリ残量ＳｏＣが閾値Ｔｈ１以下であり、かつ、閾値Ｔｈ２より大きい場合であって（ステップＳ１０３でＹＥＳ、かつ、ステップＳ１０５でＮＯ）、さらに、動作中の処理の中に、更新処理よりも優先度の低い処理がある場合（ステップＳ１０７でＹＥＳ）、ＣＰＵ１１は、その中に、ユーザの指示に従って停止可能な処理があるか否かを確認する。
【００９３】
好ましくは、ＣＰＵ１１は、バッテリを制御するＥＣＵから送信されるフレームを監視することによってバッテリの減少速度ΔＷｈを取得し、基準速度Δと比較する。そして、減少速度ΔＷｈが基準速度Δ以上である場合に（ステップＳ１０９でＮＯ）、ＣＰＵ１１は、動作中の処理の中にユーザの指示に従って停止可能な処理があるか否かを確認する。
【００９４】
ユーザの指示に従って停止可能な処理がある場合（ステップＳ２０１でＹＥＳ）、ＣＰＵ１１は車内通信部１４に、当該処理の停止を指示するユーザ操作を受付可能な選択画面（図７）のユーザインタフェース装置７への表示を指示するフレームを、ユーザインタフェース装置７を制御するＥＣＵに送信させる（ステップＳ２０３）。これにより、図７のような選択画面がユーザインタフェース装置７に表示される。
【００９５】
停止する処理を選択するユーザ操作を受け付けると（ステップＳ２０５でＹＥＳ）、ＣＰＵ１１は車内通信部１４に、選択された処理を実行中のＥＣＵに処理の停止を指示するフレームを送信させる（ステップＳ２０７）。これにより、選択された処理が停止する。
【００９６】
［第２の実施の形態の効果］
第２の実施の形態にかかる更新制御処理が実行されることによって、更新処理の完了までにバッテリ残量が不足することが予測される場合に、動作中の処理のうちの、ユーザの選択した処理が停止される。これにより、バッテリ不足による更新処理の停止が回避され、完了まで更新処理が実行されるとともに、ユーザの意図しない処理が停止することを防止できる。
【００９７】
＜第３の実施の形態＞
第１の実施の形態および第２の実施の形態にかかるプログラム更新システムでは、更新処理の実行中に動作している、更新処理以外の処理を停止することによって、更新処理の完了までに、必要な電力量が不足することを防止するものとしている。すなわち、これら実施の形態にかかる更新制御処理では、更新処理をその他の処理よりも優先している。更新制御処理の他の例として、その他の処理を更新処理よりも優先してもよい。第３の実施の形態にかかる更新制御処理では、その他の処理を更新処理よりも優先する。
【００９８】
制御プログラムの更新は、一連のタイミングで行われる複数の部分的な更新処理を含む場合がある。複数の部分的な更新処理は、たとえば、制御プログラムの機能単位で独立した更新や、データ単位で独立した更新を含む。この場合、更新処理は、機能単位や、データ単位などの部分的な更新処理ごとに独立して行うことができる。
【００９９】
そこで、第３の実施の形態では、更新処理の実行中にバッテリ残量が更新完了までに必要な電力量が不足すると予測される場合に動作中の処理のうちの更新処理の、部分的な更新処理を中断する。
【０１００】
第３の実施の形態において、更新制御部１１１は、第１の実施の形態と同様に、複数の部分的な更新処理のうちから優先度などの所定の選択基準に従って決定された処理を、自動的に中断してもよい。この場合、第１の実施の形態と同様に、更新制御部１１１は、部分的な更新処理ごとに設定された優先度を予め記憶しておき、優先度の低い順に部分的な更新処理の中断を対象ＥＣＵに指示する。この場合の更新制御処理の流れは、図６のフローチャートと概ね同じである。
【０１０１】
または、更新制御部１１１は、第２の実施の形態と同様に、複数の部分的な更新処理のうちの、ユーザの指示に従って中断が可能な処理について、ユーザ操作を受け付けるための選択画面をユーザインタフェース装置７に表示させて、中断する処理の選択を受け付ける。そして、更新制御部１１１は、複数の部分的な更新処理のうちの選択された処理の中断を対象ＥＣＵに指示する。この場合の更新制御処理の流れは、図８のフローチャートと概ね同じである。
【０１０２】
図９は、第３の実施の形態での選択画面の一例を示した図である。図９を参照して、第３の実施の形態にかかる選択画面は、図７の第２の実施の形態にかかる選択画面と同様に、電力不足予測通知に加えて、処理中の更新処理のうちのユーザの指示に従って中断可能な部分的な更新処理の表示を含む。図９の例では、部分的な更新処理は機能ごとの更新処理であって、機能１〜５それぞれの更新処理について、中断を指示するユーザ操作（たとえばタッチ）を受け付けることができる。なお、図９の選択画面で更新を中断する機能を選択させる際に、選択可能な機能の単位は、同時更新が必須でない機能の単位とする。
【０１０３】
好ましくは、更新制御部１１１は、不足する電力量Ｘと、部分的な更新処理ごとの消費電力量Ｍ〜Ｐを選択画面に表示する。部分的な更新処理ごとの消費電力量Ｍ〜Ｐは、管理サーバ５から得られる当該部分的な更新処理に要する更新用プログラムのデータサイズｓと、対象ＥＣＵのデータの書き込み速度ｖとから得られる、当該部分的な更新処理の所要時間ｔ（ｔ＝ｓ／ｖ）に、予め記憶している当該対象ＥＣＵでの単位時間あたりの消費電力ｐを乗じて算出することができる。
【０１０４】
［第３の実施の形態の効果］
第３の実施の形態にかかる更新制御処理が実行されることによって、更新処理の完了までにバッテリ残量が不足することが予測される場合に、更新処理が部分的に中断される。これにより、バッテリ不足による更新処理の停止が回避される。
【０１０５】
さらに、第３の実施の形態にかかるプログラム更新システムでは、更新処理の完了までにバッテリ残量が不足することが予測される場合に、動作中の処理のうちの、更新処理よりも他の処理が優先される。このため、ユーザが、たとえばエアコンの稼動や動画の再生などの他の処理の方を優先したい場合には、これら処理を停止させることなく、更新処理のうちのバッテリ残量で処理可能な部分が実行され、バッテリ不足となる部分の更新処理が中断される。これにより、ユーザの利便性を損なうことがない。
【０１０６】
＜第４の実施の形態＞
第１、第２の実施の形態、および、第３の実施の形態を組み合わせてもよい。すなわち、更新処理の実行中にバッテリ残量が更新完了までに必要な電力量が不足すると予測される場合、更新処理とその他の処理とのいずれの処理を優先するかを選択するユーザ操作を受け付ける。すなわち、更新制御部１１１は、判定部１１３の判定結果が上記第３の判定結果であった場合（ステップＳ１０５でＮＯ）、たとえば、「制御プログラムの更新を優先しますか？」などの、更新処理とその他の処理とのいずれの処理を優先するかを選択するユーザ操作を受け付けるための選択画面をユーザインタフェース装置７に表示させて、選択を受け付ける。そして、更新制御部１１１は、その選択結果に応じて第１、第２の実施の形態の更新制御処理、または第３の実施の形態の更新制御処理を実行してもよい。
【０１０７】
これにより、バッテリ不足による更新処理の停止が回避されるとともに、ユーザの意図しない処理が停止することを防止できる。
【０１０８】
なお、以上の第１の実施の形態〜第４の実施の形態では、制御プログラムの更新処理をメインの処理として、当該処理をバッテリ不足によって停止させないためにその他の処理、または当該処理の一部を停止または中断させるものとしているが、メインの処理は更新処理に限定されず、他の処理であってもよい。つまり、動作中の複数の処理がある場合に、ある１つの処理をメインの処理として、当該メインの処理が完了する時点においてバッテリ残量が不足することが予測される場合に、当該メインの処理以外の処理、または、当該メインの処理の一部を、所定の選択基準に従って自動的に、または、ユーザ操作に従って停止、もしくは、中断してもよい。
【０１０９】
開示された特徴は、１つ以上のモジュールによって実現される。たとえば、当該特徴は、回路素子その他のハードウェアモジュールによって、当該特徴を実現する処理を規定したソフトウェアモジュールによって、または、ハードウェアモジュールとソフトウェアモジュールとの組み合わせによって実現され得る。
【０１１０】
上述の動作をコンピュータに実行させるための、１つ以上のソフトウェアモジュールの組み合わせであるプログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１１１】
なお、本開示にかかるプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本開示にかかるプログラムに含まれ得る。
【０１１２】
また、本開示にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本開示にかかるプログラムに含まれ得る。提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１１３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１４】
１  車両
２  広域通信網
４  車内ネットワーク
５  管理サーバ
６  ＤＬサーバ
７  ユーザインタフェース装置
１０  ゲートウェイ（制御装置）
１１  ＣＰＵ
１２  ＲＡＭ
１３  記憶部
１４  車内通信部
１５  無線通信部
１６  車内通信線
３０  ＥＣＵ（車載制御装置）
３１  ＣＰＵ
３２  ＲＡＭ
３３  記憶部
３４  通信部
３５  起動部
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  記憶部
５５  通信部
１１１  更新制御部（制御部）
１１２  取得部
１１３  判定部
１１４  設定部
【図１】
2019036140.tif 000003
【図２】
2019036140.tif 000004
【図３】
2019036140.tif 000005
【図４】
2019036140.tif 000006
【図５】
2019036140.tif 000007
【図６】
2019036140.tif 000008
【図７】
2019036140.tif 000009
【図８】
2019036140.tif 000010
【図９】
2019036140.tif 000011