(57)【要約】【課題】ユーザの利便性を損なうことなくオンライン更新を実行させることができる制御装置を提供する。【解決手段】車載制御装置と車内通信線を介して通信する通信部と、前記通信部を制御する制御部と、を備え、前記制御部は、下記の第１の時間および第２の時間を取得する取得処理と、取得した前記第１の時間および前記第２の時間の比較結果に基づいて、制御プログラムを更新中の車載制御装置における更新前の制御プログラムへのロールバックの要否を判定する判定処理と、を実行する、制御装置。  第１の時間：前記制御プログラムの更新中である現時点から前記更新が完了するまでの時間  第２の時間：前記現時点から前記更新前の制御プログラムへのロールバックが完了するまでの時間【選択図】図２
2019003432.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）、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００９９】
なお、本開示にかかるプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本開示にかかるプログラムに含まれ得る。
【０１００】
また、本開示にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本開示にかかるプログラムに含まれ得る。提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１０１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０２】
１  車両
２  広域通信網
４  車内ネットワーク
５  管理サーバ
６  サーバ
１０  ゲートウェイ（制御装置）
１１  ＣＰＵ
１２  ＲＡＭ
１３  記憶部
１４  車内通信部（通信部）
１５  無線通信部
３０  ＥＣＵ（車載制御装置）
３１  ＣＰＵ
３２  ＲＡＭ
３３  記憶部
３４  通信部
３５  起動部
４０  タッチパネル
４０ａ  ボタン
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  記憶部
５５  通信部
１１１  更新制御部（制御部）
３３１  領域
３３１ａ  書込済領域
３１１  更新制御部（制御部）
【図１】
2019003432.tif 000003
【図２】
2019003432.tif 000004
【図３】
2019003432.tif 000005
【図４】
2019003432.tif 000006
【図５】
2019003432.tif 000007
【図６】
2019003432.tif 000008
【図７】
2019003432.tif 000009
【図８】
2019003432.tif 000010
【図９】
2019003432.tif 000011
【図１０】
2019003432.tif 000012