(57)【特許請求の範囲】
【請求項１】
車載バッテリの充電要否を判定する装置であって、
情報処理部と、ランダムアクセスメモリと、を備え、
前記情報処理部は、
前記車載バッテリのバッテリ残量と、更新対象である車載制御装置による制御プログラムの更新完了時点までに、前記更新対象を含む複数の車載制御装置で消費される電力予測量と、を取得する取得処理と、
前記バッテリ残量と前記電力予測量とに基づいて、前記車載バッテリの充電を実行させるための情報を出力するか否かを判定する判定処理と、を実行する、充電要否の判定装置。
【請求項２】
前記情報処理部は、
前記バッテリ残量と前記電力予測量とから、更新完了時点における前記車載バッテリの予測バッテリ残量を算出し、
前記情報処理部が実行する前記判定処理には、
前記予測バッテリ残量が所定の閾値以上か否かを判定する第１の判定処理が含まれる、請求項１に記載の充電要否の判定装置。
【請求項３】
前記情報処理部は、
前記予測バッテリ残量が閾値未満である場合には、前記情報を出力すると判定する請求項２に記載の充電要否の判定装置。
【請求項４】
前記情報処理部は、
ユーザが車内にいない場合には、前記情報の出力を車外のユーザインタフェース装置に行わせる通信フレームを、自装置に接続された無線通信部に送信させる、請求項３に記載の充電要否の判定装置。
【請求項５】
前記情報処理部は、
ユーザが車内にいる場合には、前記情報の出力を車載のユーザインタフェース装置に行わせる通信フレームを、自装置に接続された車内通信部に送信させる、請求項３または請求項４に記載の充電要否の判定装置。
【請求項６】
前記情報処理部は、
前記車載バッテリへの充電開始後において、前記バッテリ残量と前記電力予測量とから、更新完了時点における前記車載バッテリの予測バッテリ残量をさらに算出し、
さらに算出した前記予測バッテリ残量が所定の閾値以上であることを条件として、前記車載バッテリに電力供給する機構に当該電力供給を停止させる、請求項２〜請求項５のいずれか１項に記載の充電要否の判定装置。
【請求項７】
前記情報処理部が実行する前記判定処理には、
前記第１の判定処理に先だって、前記バッテリ残量が所定の閾値以上か否かを判定する第２の判定処理が含まれ、
前記情報処理部は、
前記バッテリ残量が閾値以上である場合には、前記第１の判定処理を実行し、
前記バッテリ残量が閾値未満である場合には、前記更新対象に更新を停止させる、請求項２〜請求項６のいずれか１項に記載の充電要否の判定装置。
【請求項８】
前記情報処理部は、
前記予測バッテリ残量が閾値以上である場合は、前記情報を出力しないと判定し、
前記第１の判定処理及び前記第２の判定処理を繰り返し実行する、請求項７に記載の充電要否の判定装置。
【請求項９】
前記情報処理部は、
前記予測バッテリ残量が閾値未満であるため前記情報の出力を行うと判定した後に、充電開始の指示を検出しない場合には、
前記第１の判定処理及び前記第２の判定処理を繰り返し実行する、請求項７または請求項８に記載の充電要否の判定装置。
【請求項１０】
前記情報は、
エンジンの始動をユーザに実行させるための情報、及び、
走行用バッテリの電力を補機バッテリに供給するＤＣ／ＤＣコンバータのオン操作をユーザに実行させるための情報、のうちの少なくとも１つである、請求項１〜請求項９のいずれか１項に記載の充電要否の判定装置。
【請求項１１】
前記電力予測量には、
前記バッテリ残量の取得時点から更新完了までの間に、前記更新対象が消費する第１電力量と、前記更新対象以外の車載制御装置が消費する第２電力量と、が含まれる、請求項１〜請求項１０のいずれか１項に記載の充電要否の判定装置。
【請求項１２】
前記情報処理部は、
前記バッテリ残量の取得時点における消費電流、或いは、当該取得時点を含む所定期間中の消費電流の平均値に基づいて、前記第１電力量及び前記第２電力量を算出する、請求項１１に記載の充電要否の判定装置。
【請求項１３】
前記情報処理部は、
前記更新対象による前記制御プログラムの更新中には、エンジン以外の所定機器を停止させる情報を出力する請求項１〜１２のいずれか１項に記載の充電要否の判定装置。
【請求項１４】
情報処理部とランダムアクセスメモリとを備えるコンピュータが実行する、車載バッテリの充電要否を判定する方法であって、
前記情報処理部が、前記車載バッテリのバッテリ残量と、更新対象である車載制御装置による制御プログラムの更新完了時点までに、前記更新対象を含む複数の車載制御装置で消費される電力予測量と、を取得するステップと、
前記情報処理部が、前記バッテリ残量と前記電力予測量とに基づいて、前記車載バッテリの充電を実行させるための情報を出力するか否かを判定するステップと、を含む、充電要否の判定方法。
【請求項１５】
情報処理部とランダムアクセスメモリとを備えるコンピュータを、車載バッテリの充電要否を判定する装置として、機能させるためのコンピュータプログラムであって、
前記情報処理部が、前記車載バッテリのバッテリ残量と、更新対象である車載制御装置による制御プログラムの更新完了時点までに、前記更新対象を含む複数の車載制御装置で消費される電力予測量と、を取得するステップと、
前記情報処理部が、前記バッテリ残量と前記電力予測量とに基づいて、前記車載バッテリの充電を実行させるための情報を出力するか否かを判定するステップと、を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は制御装置、制御方法、およびコンピュータプログラムに関する。
本出願は、２０１７年８月１０日出願の日本出願第２０１７−１５５９３０号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
【背景技術】
【０００２】
近年、自動車の技術分野においては、車両の高機能化が進行しており、多種多様な車載機器が車両に搭載されている。従って、車両には、各車載機器を制御するための制御装置である、所謂ＥＣＵ（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）、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１１８】
なお、本開示にかかるプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本開示にかかるプログラムに含まれ得る。
【０１１９】
また、本開示にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本開示にかかるプログラムに含まれ得る。提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１２０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２１】
１  車両
２  広域通信網
４  通信ネットワーク
５  管理サーバ
６  ＤＬサーバ
７  ユーザインタフェース装置
８  操作端末
９  通信機（ユーザインタフェース装置）
１０  ゲートウェイ、管理装置（制御装置）
１１  ＣＰＵ
１２  ＲＡＭ
１３  記憶部
１４  車内通信部
１５  無線通信部
１６  車内通信線
２１  バッテリ
２１Ａ  高圧バッテリ
２１Ｂ  補機バッテリ
２２  ＤＣ／ＤＣコンバータ
２３  ＡＬＴ
２４  スタータ
３０  ＥＣＵ
３０Ａ  バッテリ監視装置（ＥＣＵ）
３０Ｂ  始動制御装置（ＥＣＵ）
３０Ｄ  受信部（ＥＣＵ）
３１  ＣＰＵ
３２  ＲＡＭ
３３  記憶部
３４  通信部
３５  起動部
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  記憶部
５５  通信部
１１１  更新制御部
１１２  第１取得部
１１３  第２取得部
１１４  判定部
【図１】
0006566144.tif 000002
【図２】
0006566144.tif 000003
【図３】
0006566144.tif 000004
【図４】
0006566144.tif 000005
【図５】
0006566144.tif 000006
【図６】
0006566144.tif 000007
【図７】
0006566144.tif 000008
【図８】
0006566144.tif 000009
【図９】
0006566144.tif 000010