(57)【特許請求の範囲】
【請求項１】
車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置であって、
制御プログラムの更新用プログラムを格納するためのメモリと、
前記メモリに格納されている複数の前記更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部と、を備え、
前記制御部は、前記複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて前記複数の制御プログラムの更新を前記更新順に行うか否かを判定する判定処理を実行し、
前記車載制御装置が、車内ネットワークに属する第１及び第２装置のうちの第１装置である場合には、前記制御部は、前記第１装置の制御プログラムの更新により当該第１装置が使用できない第１時間に加えて、更新が完了した前記第１装置と連携する前記第２装置が通常の動作状態に復帰するまでの第２時間を、前記第１装置の前記更新所要時間に含める、制御装置。
【請求項２】
前記制御部は、前記判定処理の結果が否定的である前記制御プログラムについて、前記更新用プログラムを前記メモリに保持して、前記更新用プログラムの更新順を前記設定された更新順より遅い更新順に設定しなおす、請求項１に記載の制御装置。
【請求項３】
前記制御部は、前記判定処理の結果が否定的である前記制御プログラムについて、前記更新用プログラムを前記メモリから削除する、請求項１に記載の制御装置。
【請求項４】
前記制御部は、前記更新所要時間が前記所定の閾値よりも長い場合に前記判定処理の結果を否定的とする、請求項１〜請求項３のいずれか一項に記載の制御装置。
【請求項５】
前記制御部は、前記更新所要時間が前記所定の閾値よりも長く、かつ、ユーザ認証に成功した場合に前記判定処理の結果を否定的とする、請求項４に記載の制御装置。
【請求項６】
前記制御部は、前記更新所要時間が前記所定の閾値よりも短い場合に前記判定処理の結果を否定的とする、請求項１〜請求項３のいずれか一項に記載の制御装置。
【請求項７】
前記制御部は、前記更新所要時間が前記所定の閾値よりも短く、かつ、ユーザ認証に成功した場合に前記判定処理の結果を否定的とする、請求項６に記載の制御装置。
【請求項８】
前記制御部は、前記更新所要時間が前記所定の閾値よりも長い場合に前記判定処理の結果を否定的とするか短い場合に前記判定処理の結果を否定的とするかが変更可能である、請求項１〜請求項３のいずれか一項に記載の制御装置。
【請求項９】
前記所定の閾値が変更可能である、請求項１〜請求項８のいずれか一項に記載の制御装置。
【請求項１０】
車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新方法であって、
制御プログラムの更新用プログラムをメモリに格納する第１ステップと、
前記メモリに格納されている複数の前記更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する第２ステップと、を備え、
前記第２ステップは、前記複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて前記複数の制御プログラムの更新を前記更新順に行うか否かを判定する第３ステップを含み、
前記車載制御装置が、車内ネットワークに属する第１及び第２装置のうちの第１装置である場合には、前記第３ステップにおいて、前記第１装置の制御プログラムの更新により当該第１装置が使用できない第１時間に加えて、更新が完了した前記第１装置と連携する前記第２装置が通常の動作状態に復帰するまでの第２時間を、前記第１装置の前記更新所要時間に含める、プログラム更新方法。
【請求項１１】
車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータは、制御プログラムの更新用プログラムを格納するためのメモリを有し、
前記コンピュータを、
前記メモリに格納されている複数の前記更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部として機能させ、
前記制御部は、前記複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて前記複数の制御プログラムの更新を前記更新順に行うか否かを判定する判定処理を実行し、
前記車載制御装置が、車内ネットワークに属する第１及び第２装置のうちの第１装置である場合には、前記制御部は、前記第１装置の制御プログラムの更新により当該第１装置が使用できない第１時間に加えて、更新が完了した前記第１装置と連携する前記第２装置が通常の動作状態に復帰するまでの第２時間を、前記第１装置の前記更新所要時間に含める、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、プログラム更新方法、およびコンピュータプログラムに関する。
本出願は、２０１７年２月１日出願の日本出願第２０１７−０１６５３９号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
【背景技術】
【０００２】
近年、自動車の技術分野においては、車両の高機能化が進行しており、多種多様な車載機器が車両に搭載されている。従って、車両には、各車載機器を制御するための制御装置である、所謂ＥＣＵ（Electronic  Control  Unit）が多数搭載されている。
ＥＣＵの種類には、例えば、アクセル、ブレーキ、ハンドルの操作に対してエンジンやブレーキ、ＥＰＳ（Electric  Power  Steering）等の制御を行う走行系に関わるもの、乗員によるスイッチ操作に応じて車内照明やヘッドライトの点灯／消灯と警報器の吹鳴等の制御を行うボディ系ＥＣＵ、運転席近傍に配設されるメータ類の動作を制御するメータ系ＥＣＵなどがある。【０００３】
一般的にＥＣＵは、マイクロコンピュータ等の演算処理装置によって構成されており、ＲＯＭ（Read  Only  Memory）に記憶した制御プログラムを読み出して実行することにより、車載機器の制御が実現される。
ＥＣＵの制御プログラムは、車両の仕向け地やグレードなど応じて異なることがあり、制御プログラムのバージョンアップに対応して、旧バージョンの制御プログラムを新バージョンの制御プログラムに書き換える必要がある。【０００４】
ＥＣＵの制御プログラムの更新中には、当該ＥＣＵの制御対象とする機能が使用できなくなる場合がある。そのため、適切なタイミングに制御プログラムを更新する必要がある。【０００５】
この課題に対して、制御プログラムの更新をタイミングに実行するための技術が様々提案されている。たとえば、特許文献１には、車両内の通信状況を監視し、その状況に応じて制御プログラムの更新を行う技術が開示されている。特許文献２には、車両のスケジュールに基づいて当該車両が使用されない時間帯を推定して、当該時間帯に制御プログラムの更新を行うようにスケジュールを生成する技術が開示されている。特許文献３には、走行系装置と操舵系装置との状態に基づいてセキュリティ系プログラムの更新が可能か否かを判定し、判定結果に従って該プログラムを更新する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１７８０３５号公報
【特許文献２】特開２０１２−１４２５３号公報
【特許文献３】特開２０１４−１１８０７１号公報
【発明の概要】
【０００７】
ある実施の形態に従うと、制御装置は車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置であって、制御プログラムの更新用プログラムを格納するためのメモリと、メモリに格納されている複数の更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部と、を備え、制御部は、複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて複数の制御プログラムの更新を更新順に行うか否かを判定する判定処理を実行する。
【０００８】
他の実施の形態に従うと、プログラム更新方法は車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新方法であって、制御プログラムの更新用プログラムをメモリに格納するステップと、メモリに格納されている複数の更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新するステップと、を備え、制御プログラムを更新するステップは、複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて複数の制御プログラムの更新を更新順に行うか否かを判定するステップを含む。
【０００９】
他の実施の形態に従うと、コンピュータプログラムは車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータは、制御プログラムの更新用プログラムを格納するためのメモリを有し、コンピュータを、メモリに格納されている複数の更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部として機能させ、制御部は、複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて複数の制御プログラムの更新を更新順に行うか否かを判定する判定処理を実行する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係るプログラム更新システムの全体構成図である。
【図２】図２は、無線通信機及びゲートウェイの内部構成を示すブロック図である。
【図３】図３は、マネージャ装置及びＥＣＵの内部構成を示すブロック図である。
【図４】図４は、第１の実施の形態にかかるプログラム更新システムでの、車内通信システムにおける通信手順の一例を示すシーケンス図である。
【図５】図５は、図４のステップＳ３Ａでの順位決定処理の具体的な内容の一例を表したフローチャートである。
【図６】図６は、第３の実施の形態にかかるプログラム更新システムでの、車内通信システムにおける通信手段の一例を示すシーケンス図である。
【図７】図７は、図６のステップＳ３Ｂでの順位決定処理の具体的な内容の一例を表したフローチャートである。
【発明を実施するための形態】
【００１１】
＜本開示が解決しようとする課題＞
車両には多数のＥＣＵが搭載されているため、更新対象となる制御プログラムが複数ある場合がある。複数の制御プログラムは、たとえば車両に通知された順に更新されることになる。このとき、上記の特許文献１〜３の技術を用いると、設定された更新順の早い制御プログラムについて適切なタイミングが判定され、当該タイミングに更新される。以降の制御プログラムについても、順に、適切なタイミングが判定され、当該タイミングに更新される。このため、先の制御プログラムの更新が遅延すると、続く制御プログラムの更新も遅延し、全制御プログラムの更新の完了が遅延する。つまり、設定された更新順を変更することなく、該更新順に従ってそれぞれ適切なタイミングで更新される。
【００１２】
たとえば、更新する制御プログラムが、制御対象とする機能が複数の機器が複雑に連動して実現される機能であるＥＣＵの制御プログラムであるとする。このようなＥＣＵは、たとえば、制御対象が制御系システムであるＥＣＵなどが該当する。当該制御プログラムの更新の際には、いったん、車両全体のシステムの電源を止めたり、他の機器の使用を中断したりする必要がある。
【００１３】
一方、更新する制御プログラムが、制御対象とする機能が単独の機器によって実現される機能であるＥＣＵの制御プログラムであるとする。このようなＥＣＵは、たとえば、制御対象がナビゲーション装置や表示ディスプレイ等のアプリケーションであるＥＣＵなどが該当する。当該制御プログラムの更新の際には当該機器の使用を一時的に中断する必要があるものの、他の装置の使用を中断したり車両全体のシステムの電源を止めたりする必要はない。
【００１４】
更新対象とする制御プログラムが前者の制御プログラムである場合、特許文献１〜３に開示された技術では、複数の機器、または車両全体のシステムの使用状況に基づいて更新のタイミングが決定される。そのため、更新のタイミングが遅延する場合がある。これに対して、後者の制御プログラムである場合、該当するＥＣＵの制御対象とする機能を実現する単独の機器の使用状況に基づいて更新のタイミングが決定されるため、更新のタイミングが遅延する可能性が前者の制御プログラムよりも低い。
【００１５】
しかしながら、更新対象とする制御プログラムが複数あり、前者の制御プログラムが後者の制御プログラムより先に更新される場合、前者の制御プログラムの更新を遅延されることによって後に続く後者の制御プログラムの更新も遅延してしまう。つまり、設定された更新順を変更することなく当該更新順に従って制御プログラムの更新が行われると、複数の制御プログラム全体の更新が遅延してしまうことがある。また、更新用プログラムがＥＣＵまたは中継経路上の機器に保存された状態のままであり、メモリリソースに余裕がない場合、中継機能等の機能に影響を及ぼすことがある。
【００１６】
本開示のある局面における目的は、複数の制御プログラムの更新を行う際に、それぞれ適切なタイミングに制御プログラムを更新することができる制御装置、プログラム更新方法、およびコンピュータプログラムを提供することである。
【００１７】
＜本開示の効果＞
この開示によると、複数の制御プログラムの更新を行う際に、それぞれ適切なタイミングに制御プログラムを更新することができる。
【００１８】
［実施の形態の説明］
本実施の形態には、少なくとも以下のものが含まれる。
すなわち、本実施の形態に含まれる制御装置は車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置であって、制御プログラムの更新用プログラムを格納するためのメモリと、メモリに格納されている複数の更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部と、を備え、制御部は、複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて複数の制御プログラムの更新を更新順に行うか否かを判定する判定処理を実行する。
制御部において、複数の制御プログラムの更新を当該複数の制御プログラムに対して設定された更新順に行うか否かを判定する判定処理が実行されることによって、判定結果によって、該複数の制御プログラムの更新を変更することができる。
【００１９】
一例として、制御部は、判定処理の結果が否定的である制御プログラムについて、更新用プログラムをメモリに保持して、更新用プログラムの更新順を設定された更新順より遅い更新順に設定しなおす。
これにより、更新所要時間と所定の閾値との比較結果が予め設定された比較結果である制御プログラムは、更新順を設定された更新順より遅くなり、他の制御プログラムの更新よりも後回しにされる。これにより、複数の制御プログラムの更新を効率的に行うことができる。
【００２０】
また一例として、制御部は、判定処理の結果が否定的である制御プログラムについて、更新用プログラムをメモリから削除する。
これにより、判定処理の結果が否定的、つまり、更新順に更新を行うと判定されなかった制御プログラムの更新用プログラムについてはメモリから削除される。このため、当該更新が実行されるまで更新用プログラムがメモリに維持されることがない。つまり、更新順に更新を行わない制御プログラムの更新用プログラムによってメモリが圧迫されることを回避することができる。
【００２１】
好ましくは、制御部は、更新所要時間が所定の閾値よりも長い場合に判定処理の結果を否定的とする。
これにより、複数の制御プログラムに対して設定されている更新順に関わらず、更新所要時間が閾値以内である制御プログラムの更新が優先され、更新所要時間が閾値よりも長い制御プログラムの更新が後回しにされる。そのため、短期間で多くの制御プログラムの更新を完了させることができる。
【００２２】
好ましくは、制御部は、更新所要時間が所定の閾値よりも長く、かつ、ユーザ認証に成功した場合に判定処理の結果を否定的とする。
これにより、たとえば車両の所有者など、許可されたユーザが制御プログラムの更新を管理することができる。
【００２３】
好ましくは、制御部は、更新所要時間が所定の閾値よりも短い場合に判定処理の結果を否定的とする。
これにより、複数の制御プログラムに対して設定されている更新順に関わらず、更新所要時間が閾値より長い制御プログラムの更新が優先され、更新所要時間が閾値よりも短い制御プログラムの更新が後回しにされる。そのため、長期間かけて制御プログラムの更新が可能な場合に、更新所要時間の長い制御プログラムの更新を優先させることができる。
【００２４】
好ましくは、制御部は、更新所要時間が所定の閾値よりも短く、かつ、ユーザ認証に成功した場合に判定処理の結果を否定的とする。
これにより、たとえば車両の所有者など、許可されたユーザが制御プログラムの更新を管理することができる。
【００２５】
好ましくは、制御部は、更新所要時間が所定の閾値よりも長い場合に判定処理の結果を否定的とするか短い場合に判定処理の結果を否定的とするかが変更可能である。
これにより、複数の制御プログラムに対して設定された更新順を、個別の事情に応じて柔軟に変更することができる。
【００２６】
好ましくは、所定の閾値が変更可能である。
これにより、複数の制御プログラムに対して設定された更新順を、個別の事情に応じて柔軟に変更することができる。
【００２７】
本実施の形態に含まれるプログラム更新方法は車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新方法であって、制御プログラムの更新用プログラムをメモリに格納するステップと、メモリに格納されている複数の更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新するステップと、を備え、制御プログラムを更新するステップは、複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて複数の制御プログラムの更新を更新順に行うか否かを判定するステップを含む。
制御プログラムを更新するステップが、複数の制御プログラムの更新を当該複数の制御プログラムに対して設定された更新順に行うか否かを判定するステップを含むことによって、判定結果によっては、該複数の制御プログラムの更新が、設定された更新順に行われない場合がある。これにより、たとえば、更新順が遅くに設定されている制御プログラムであっても、当制御プログラムの更新所要時間が更新の可能な期間に適した制御プログラムの更新を、設定された更新順の早い制御プログラムよりも優先して行うことができる。すなわち、複数の制御プログラムに対して設定された更新順を柔軟に変更することができる。これにより、複数の制御プログラムの更新を効率的に行うことができる。
【００２８】
本実施の形態に含まれるコンピュータプログラムは車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータは、制御プログラムの更新用プログラムを格納するためのメモリを有し、コンピュータを、メモリに格納されている複数の更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部として機能させ、制御部は、複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて複数の制御プログラムの更新を更新順に行うか否かを判定する判定処理を実行する。
制御部において、複数の制御プログラムの更新を当該複数の制御プログラムに対して設定された更新順に行うか否かを判定する判定処理が実行されることによって、判定結果によっては、該複数の制御プログラムの更新が、設定された更新順に行われない場合がある。これにより、たとえば、更新順が遅くに設定されている制御プログラムであっても、当制御プログラムの更新所要時間が更新の可能な期間に適した制御プログラムの更新を、設定された更新順の早い制御プログラムよりも優先して行うことができる。すなわち、複数の制御プログラムに対して設定された更新順を柔軟に変更することができる。これにより、複数の制御プログラムの更新を効率的に行うことができる。
【００２９】
［実施の形態の詳細］
以下に、図面を参照しつつ、好ましい実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００３０】
＜第１の実施の形態＞
〔システムの全体構成〕
図１は、第１の実施形態にかかるプログラム更新システムの全体構成図である。
図１に示すように、本実施形態のプログラム更新システムは、広域通信網２を介して通信可能な車両１、管理サーバ３、及びＤＬ（ダウンロード）サーバ４を含む。
管理サーバ３及びＤＬサーバ４は、例えば、車両１のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両１と通信可能である。
【００３１】
図１に示すように、各車両１は、車内通信システム１０を備える。車内通信システム１０は、無線通信機１９にゲートウェイ２０を介して接続された第１ネットワークを含む。車内通信システム１０には、さらに、ゲートウェイ２０を介さずに無線通信機１９に直接接続された第２ネットワークが含まれてもよい。
【００３２】
第１ネットワークは、ゲートウェイ２０に接続された車内通信線１３Ａ，１３Ｂ，１３Ｃと、車内通信線１３Ａに接続されたマネージャ装置１４と、マネージャ装置１４に接続された車内通信線１５と、車内通信線１５または車内通信線１３Ｂ，１３Ｃに接続された複数の車載制御装置（以下、「ＥＣＵ」という。）１６と、を備える。
【００３３】
車内通信線１３Ａ，１３Ｂ，１３Ｃはバス型の通信ネットワークよりなる。当該ネットワークは、例えば、ＣＡＮ（Controller  Area  Network）などの比較的低速な通信を行う通信ネットワークである。
車内通信線１５は、ＥＣＵ１６相互間の通信が可能であり、マネージャ装置１４を終端ノード（親機）とするマスター／スレーブ型の通信ネットワーク（例えば、ＬＩＮ（Local  Interconnect  Network））よりなる。
【００３４】
第２ネットワークは、無線通信機１９に車内通信線１３Ｄを介して直接接続された１以上のＥＣＵ１６を含む。
【００３５】
車内通信線１３Ｄは、ＣＡＮＦＤ（ＣＡＮ  with  Flexible  Data  Rate）、Ｅｔｈｅｒｎｅｔ（登録商標）、又はＭＯＳＴ（Media  Oriented  Systems  Transport：ＭＯＳＴは登録商標）などの通信規格を採用する、高速通信を行うネットワークである。
【００３６】
以下において、車内通信線の共通符号を「１３」とし、車内通信線の個別符号を「１３Ａ，１３Ｂ，１３Ｃ，１３Ｄ」とする。
【００３７】
マネージャ装置１４はＥＣＵよりなり、一例として、車両１の車体機器を制御対象とするボディ系ＥＣＵよりなる。車内通信システム１０には、他のマネージャ装置として、車両１の駆動機器を制御対象とするパワー系ＥＣＵよりなるマネージャ装置や、車両１の走行機器を制御対象とするシャーシ系ＥＣＵよりなるマネージャ装置が含まれていてもよい。なお、制御分野は、上記の３種類に限らず４種類以上であってもよい。また、制御分野は、車両メーカーの設計思想に応じて様々であり、上記の制御分野の分担に限定されるものではない。
【００３８】
車内通信線１３Ａはボディ系バスであり、車内通信線１３Ｂはパワー系バスであり、車内通信線１３Ｃはシャーシ系バスである。各バスには、当該制御分野に対応する種別のＥＣＵ１６が接続される。
【００３９】
具体的には、ボディ系ＥＣＵであるマネージャ装置１４に接続されるＥＣＵ１６には、例えば、室内照明を制御するＥＣＵ、ヘッドライトを制御するＥＣＵ、及びワイパーを制御するＥＣＵなどが含まれる。
車内通信線１３Ｂに接続されるＥＣＵ１６には、例えば、エンジンを制御するＥＣＵ、及び電源系統を制御（リレーのオンオフ制御など）するＥＣＵなどが含まれる。
車内通信線１３Ｃに接続されるＥＣＵ１６には、例えば、ＡＢＳ（Antilock  Brake  System）制御のためのＥＣＵ、及び通常のブレーキ制御のためのＥＣＵなどが含まれる。
【００４０】
なお、第２ネットワークに属するＥＣＵ１６は、単独で無線通信機１９を介してＤＬサーバ４と通信を行って制御プログラムの更新できるＥＣＵである。第２ネットワークに属するＥＣＵ１６は、たとえば、マルチメディア系ＥＣＵである。具体的には、ナビゲーション装置を制御するＥＣＵ、ディスプレイを制御するＥＣＵなどである。
【００４１】
車内通信システム１０は、更に、無線通信機１９とゲートウェイ２０とを備える。
無線通信機１９は、携帯電話網などの広域通信網２に通信可能に接続され、所定規格の通信線を介してゲートウェイ２０に接続されている。また、無線通信機１９には、車内通信線１３Ｄを介して直接、１つ以上のＥＣＵ１６が接続されていてもよい。
車両１に搭載される無線通信機１９としては、ユーザが所有する携帯電話機、スマートフォン、タブレット型端末、ノートＰＣ（Personal  Computer）等の装置が考えられる。
【００４２】
ゲートウェイ２０は、管理サーバ３及びＤＬサーバ４などの車外装置から無線通信機１９が受信した情報を、マネージャ装置１４及びＥＣＵ１６に中継する。また、無線通信機１９が受信した情報は、ゲートウェイ２０を介さずに直接、車内通信線１３Ｄを経てＥＣＵ１６に中継されてもよい。
ゲートウェイ２０は、マネージャ装置１４及びＥＣＵ１６から受信した情報を、無線通信機１９に中継する。無線通信機１９は、中継された情報を管理サーバ３などの車外装置に無線送信する。
【００４３】
図１の例では、ゲートウェイ２０が無線通信機１９を介して車外装置と通信を行う場合が例示されているが、ゲートウェイ２０が無線通信の機能を有する場合には、ゲートウェイ２０自身が管理サーバ３などの車外装置と無線通信を行う構成としてもよい。
図１のプログラム更新システムにおいて、管理サーバ３及びＤＬサーバ４を１つのサーバ装置で構成してもよい。
【００４４】
〔無線通信機の内部構成〕
図２は、無線通信機１９及びゲートウェイ２０の内部構成を示すブロック図である。
図２に示すように、無線通信機１９は、制御部９１、記憶部９２、第１通信部９３、及び第２通信部９４などを備える。
【００４５】
無線通信機１９の制御部９１は、ＣＰＵ（Central  Processing  Unit）及びＲＡＭ（Random  Access  Memory）を含む。制御部９１のＣＰＵは、記憶部９２に記憶された１又は複数のプログラムを制御部９１のＲＡＭに読み出して実行することにより、制御プログラムの更新を制御するリプロ制御部９５として機能する。
制御部９１のＣＰＵは、例えば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。
【００４６】
制御部９１のＣＰＵは、１又は複数の大規模集積回路（ＬＳＩ）を含む。複数のＬＳＩを含むＣＰＵでは、複数のＬＳＩが協働して当該ＣＰＵの機能を実現する。
制御部９１のＲＡＭは、ＳＲＡＭ（Static  ＲＡＭ）又はＤＲＡＭ（Dynamic  ＲＡＭ）などのメモリ素子で構成され、制御部９１のＣＰＵが実行するプログラム及び実行に必要なデータが一時的に記憶される。
【００４７】
制御部９１のＣＰＵが実行するコンピュータプログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記録媒体に記録した状態で譲渡することもできるし、サーバコンピュータなどのコンピュータ装置からのダウンロードによって譲渡することもできる。
この点は、ゲートウェイ２０の制御部２１、マネージャ装置１４の制御部３１（図３参照）のＣＰＵが実行するコンピュータプログラム、及び、ＥＣＵ１６の制御部４１（図３参照）のＣＰＵが実行するコンピュータプログラムについても同様である。
【００４８】
記憶部９２は、フラッシュメモリ若しくはＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read  Only  Memory）などの不揮発性のメモリ素子よりなる。記憶部９２は、制御部９１のＣＰＵが実行するプログラム及び実行に必要なデータなどを記憶する記憶領域を有する。記憶部９２は、ＤＬサーバ４から受信したマネージャ装置１４やＥＣＵ１６の更新プログラムなども記憶する。
【００４９】
第１通信部９３は、アンテナからの無線信号の送受信を実行する通信回路を含む無線通信機よりなる。第１通信部９３は、携帯電話網等の広域通信網２に接続されることにより車外装置との通信が可能である。
第１通信部９３は、図示しない基地局により形成される広域通信網２を介して、制御部９１から与えられた情報を管理サーバ３等の車外装置に送信するとともに、車外装置から受信した情報を制御部９１に与える。
【００５０】
第２通信部９４は、ＣＡＮなどの所定の通信規格に則ってゲートウェイ２０と通信する通信装置よりなる。第２通信部９４は、制御部９１のＣＰＵから与えられた情報をゲートウェイ２０宛てに送信し、ゲートウェイ２０からの情報を制御部９１のＣＰＵに与える。
【００５１】
なお、無線通信機１９は、車両１内の中継装置として機能する有線通信を行う通信機であってもよい。この場合、通信機は、ＵＳＢ（Universal  Serial  Bus）又はＲＳ２３２Ｃ等の規格に応じた通信ケーブルが接続されるコネクタを有し、通信ケーブルを介して接続された別の通信装置と有線通信を行う。
別の通信装置と管理サーバ３等の車外装置とが広域通信網２を通じた無線通信が可能である場合には、車外装置→別の通信装置→通信部→ゲートウェイ２０の通信経路により、車外装置とゲートウェイ２０が通信可能になる。
【００５２】
〔ゲートウェイの内部構成〕
図２に示すように、ゲートウェイ２０は、制御部２１、記憶部２２、第１通信部２４、第２通信部２３、第３通信部２６、及び第４通信部２７などを備える。
【００５３】
ゲートウェイ２０の制御部２１は、ＣＰＵ及びＲＡＭを含む。制御部２１のＣＰＵは、記憶部２２に記憶された１又は複数のプログラムを制御部２１のＲＡＭに読み出して実行することにより、ゲートウェイ２０を各種情報の中継装置として機能させる。また、制御部２１のＣＰＵは、記憶部２２に記憶された１又は複数のプログラムを制御部２１のＲＡＭに読み出して実行することにより、制御プログラムの更新を制御するリプロ制御部２５として機能する。
制御部２１のＣＰＵは、例えば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。
【００５４】
制御部２１のＣＰＵは、１又は複数の大規模集積回路（ＬＳＩ）を含む。複数のＬＳＩを含むＣＰＵでは、複数のＬＳＩが協働して当該ＣＰＵの機能を実現する。
制御部２１のＲＡＭは、ＳＲＡＭ又はＤＲＡＭなどのメモリ素子で構成され、制御部２１のＣＰＵが実行するプログラム及び実行に必要なデータが一時的に記憶される。
【００５５】
記憶部２２は、フラッシュメモリ若しくはＥＥＰＲＯＭなどの不揮発性のメモリ素子よりなる。記憶部２２は、制御部２１のＣＰＵが実行するプログラム及び実行に必要なデータなどを記憶する記憶領域を有する。記憶部２２は、ＤＬサーバ４から受信したマネージャ装置１４やＥＣＵ１６の更新プログラムなども記憶する。
【００５６】
第１通信部２４には、無線通信機１９が接続されている。第１通信部２４は、ＣＡＮなどの所定の通信規格に則って、無線通信機１９と通信する通信装置よりなる。
第１通信部２４は、無線通信機１９から与えられた情報を制御部２１のＣＰＵに与える。また、第１通信部２４は、制御部２１のＣＰＵから与えられた情報を無線通信機１９に与える。
【００５７】
第２通信部２３、第３通信部２６及び第４通信部２７には、それぞれ、車内通信線１３Ａ，１３Ｂ，１３Ｃが接続されている。第２通信部２３、第３通信部２６及び第４通信部２７は、ＣＡＮなどの所定の通信規格に則って、マネージャ装置１４またはＥＣＵ１６と通信する通信装置よりなる。
第２通信部２３、第３通信部２６及び第４通信部２７は、制御部２１のＣＰＵから与えられた情報を所定のマネージャ装置１４又はＥＣＵ１６宛てに送信し、マネージャ装置１４又はＥＣＵ１６が送信元の情報を制御部２１のＣＰＵに与える。
【００５８】
〔マネージャ装置の内部構成〕
図３は、マネージャ装置１４及びＥＣＵ１６の内部構成を示すブロック図である。
図３に示すように、マネージャ装置１４は、制御部３１、記憶部３２、第１通信部３３、及び第２通信部３４などを備える。
【００５９】
マネージャ装置１４の制御部３１は、ＣＰＵ及びＲＡＭを含む。制御部３１のＣＰＵは、記憶部３２に記憶された１又は複数のプログラムを制御部３１のＲＡＭに読み出して実行することにより、マネージャ装置１４を、自装置に接続されたＥＣＵ１６を統括制御する親局として機能させる。
制御部３１のＣＰＵは、例えば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。
【００６０】
制御部３１のＣＰＵは、１又は複数の大規模集積回路（ＬＳＩ）を含む。複数のＬＳＩを含むＣＰＵでは、複数のＬＳＩが協働して当該ＣＰＵの機能を実現する。
制御部３１のＲＡＭは、ＳＲＡＭ又はＤＲＡＭなどのメモリ素子で構成され、制御部３１のＣＰＵが実行するプログラム及び実行に必要なデータが一時的に記憶される。
【００６１】
記憶部３２は、フラッシュメモリ若しくはＥＥＰＲＯＭなどの不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置により構成されている。
記憶部３２が記憶する情報には、例えば、自装置が担当する車両１の制御対象（ＥＣＵ１６など）を制御するための情報処理を、制御部３１のＣＰＵに実行させるためのコンピュータプログラム（以下、「制御プログラム」という。）が含まれる。
【００６２】
第１通信部３３には車内通信線１３Ａが接続されている。第１通信部３３は、ＣＡＮなどの所定の通信規格に則ってゲートウェイ２０と通信する通信装置よりなる。
第１通信部３３は、制御部３１のＣＰＵから与えられた情報をゲートウェイ２０宛てに送信し、ゲートウェイ２０が送信元の情報を制御部３１のＣＰＵに与える。
【００６３】
第２通信部３４には車内通信線１５が接続されている。第２通信部３４は、ＬＩＮなどの所定の通信規格に則って、車内通信線１５に接続されたＥＣＵ１６と通信する通信装置よりなる。
第２通信部３４は、制御部３１のＣＰＵから与えられた情報を所定のＥＣＵ１６宛てに送信し、ＥＣＵ１６が送信元の情報を制御部３１のＣＰＵに与える。
【００６４】
制御部３１のＣＰＵには、当該ＣＰＵによる制御モードを、「通常モード」又は「リプログラミングモード」（以下、「リプロモード」ともいう。）のいずれかに切り替える起動部３５が含まれる。
マネージャ装置１４の通常モードとは、マネージャ装置１４が本来的な制御を実行する制御モード、すなわち、マネージャ装置１４が親局としてＥＣＵ１６を統括制御する制御モードのことである。
【００６５】
リプログラミングモードとは、自装置の制御プログラムを更新する制御モードである。すなわち、リプログラミングモードは、制御部３１のＣＰＵが、記憶部３２のＲＯＭ領域に対して、制御プログラムの消去や書き換えを行う制御モードのことである。
制御部３１のＣＰＵは、この制御モードのときにのみ、記憶部３２のＲＯＭ領域に格納された制御プログラムを新バージョンに更新することが可能となる。
【００６６】
リプロモードにおいて制御部３１のＣＰＵが新バージョンの制御プログラムを記憶部３２に書き込むと、起動部３５は、マネージャ装置１４をいったん再起動させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
起動部３５は、上記のベリファイ処理の完了後に、制御部３１のＣＰＵを更新後の制御プログラムによって動作させる。
【００６７】
〔ＥＣＵの内部構成〕
図３に示すように、ＥＣＵ１６は、制御部４１、記憶部４２、及び通信部４３などを備える。
【００６８】
ＥＣＵ１６の制御部４１は、ＣＰＵ及びＲＡＭを含む。制御部４１のＣＰＵは、記憶部４２に記憶された１又は複数のプログラムを制御部４１のＲＡＭに読み出して実行することにより、ＥＣＵ１６を、自装置が担当する対象機器の動作を制御する車載制御装置として機能させる。
制御部４１のＣＰＵは、例えば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。
【００６９】
制御部４１のＣＰＵは、１又は複数の大規模集積回路（ＬＳＩ）を含む。複数のＬＳＩを含むＣＰＵでは、複数のＬＳＩが協働して当該ＣＰＵの機能を実現する。
制御部４１のＲＡＭは、ＳＲＡＭ又はＤＲＡＭなどのメモリ素子で構成され、制御部４１のＣＰＵが実行するプログラム及び実行に必要なデータが一時的に記憶される。
【００７０】
記憶部４２は、フラッシュメモリ若しくはＥＥＰＲＯＭなどの不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置により構成されている。
記憶部４２が記憶する情報には、例えば、自装置が担当する車内の制御対象（ＥＣＵ１６の場合は、室内照明、ヘッドライト、及びワイパーなどの対象機器）を制御するための情報処理を、制御部４１のＣＰＵに実行させるための制御プログラムが含まれる。
【００７１】
通信部４３には、下位側の車内通信線１５が接続されている。通信部４３は、ＬＩＮなどの所定の通信規格に則って、他のＥＣＵ１６や自装置の親局であるマネージャ装置１４と通信する通信装置よりなる。
通信部４３は、制御部４１のＣＰＵから与えられた情報を他のＥＣＵ１６又はマネージャ装置１４宛てに送信し、他のＥＣＵ１６又はマネージャ装置１４が送信元の情報を制御部４１のＣＰＵに与える。
【００７２】
制御部４１のＣＰＵには、当該ＣＰＵによる制御モードを、「通常モード」又は「リプログラミングモード」のいずれかに切り替える起動部４４が含まれる。
ＥＣＵ１６の通常モードとは、ＥＣＵ１６が本来的な制御を実行する制御モード、すなわち、自装置が担当する車内の制御対象を制御する制御モードのことである。
【００７３】
リプログラミングモードとは、自装置の制御プログラムを更新する制御モードである。すなわち、リプログラミングモードは、制御部４１のＣＰＵが、記憶部４２のＲＯＭ領域に対して、制御プログラムの消去や書き換えを行う制御モードのことである。
制御部４１のＣＰＵは、この制御モードのときにのみ、記憶部４２のＲＯＭ領域に格納された制御プログラムを新バージョンに更新することが可能となる。
【００７４】
リプロモードにおいて制御部４１のＣＰＵが新バージョンの制御プログラムを記憶部４２に書き込むと、起動部４４は、ＥＣＵ１６をいったん再起動させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
起動部４４は、上記のベリファイ処理の完了後に、制御部４１のＣＰＵを更新後の制御プログラムによって動作させる。
【００７５】
〔プログラム更新時における車内通信のシーケンス〕
図４は、第１の実施の形態にかかるプログラム更新システムでの、車内通信システム１０における通信手順の一例を示すシーケンス図である。第１の実施の形態では、マネージャ装置１４を含むＥＣＵ１６が制御プログラムを更新する場合について説明する。
図４において、「子局ＥＣＵ」は、マネージャ装置１４に車内通信線１３Ａによって接続されたＥＣＵ１６、またはゲートウェイ２０に車内通信線１３Ｂ，１３Ｃによって接続されたＥＣＵ１６である。「Δ」は、マネージャ装置１４を含むＥＣＵ１６の制御プログラムの更新プログラム（差分プログラム）を示す。
【００７６】
制御プログラムの更新プログラムは、新バーションのプログラムそのものであってもよいが、本実施形態では、旧バーションからの差分プログラムである場合を想定する。
この場合、マネージャ装置１４を含むＥＣＵ１６の制御部４１は、旧バージョンと新バージョンとのファイルの差分情報を含むΔが同じ記憶領域にあれば、旧バージョンにΔを適応することで、新バージョンに更新することができる。
【００７７】
図４を参照して、はじめに、管理サーバ３は、広域通信網２を介してＤＬサーバ４から配信された更新プログラムΔがあるか否か、つまり、更新対象となる更新プログラムΔがあるか否かを確認する（ステップＳ０）。この確認は、無線通信機１９において行われてもよい。そして、更新対象となる更新プログラムΔが存在する場合に、以降のシーケンスが開始される。更新対象となる更新プログラムΔが存在しない場合には図４のシーケンスは開始されない。
【００７８】
更新対象となる更新プログラムΔが存在する場合、管理サーバ３は、更新プログラムΔをゲートウェイ２０に転送する（ステップＳ１）。管理サーバ３による更新プログラムΔの転送は、ゲートウェイ２０からのダウンロードの開始要求に応じて行われてもよい。ゲートウェイ２０は、ダウンロードした更新プログラムΔの製造元が正しいことや改ざんされていないことなどをチェックした上で該更新プログラムΔを記憶部２２に格納する（ステップＳ２Ａ）。
【００７９】
ゲートウェイ２０は、更新プログラムΔのダウンロードの後の予め規定されたタイミングで、それぞれの更新プログラムΔに対して設定された更新順に従って制御プログラムを更新する。このとき、記憶部２２に複数の更新プログラムΔが格納されている場合に、ゲートウェイ２０は、これら複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新するか否かを判定し、その判定結果が否定的である場合には更新順を設定しなおす処理を実行する（ステップＳ３Ａ）。そして、ゲートウェイ２０は、設定された更新順または設定しなおされた更新順に従って更新プログラムΔを転送し、更新を要求する（ステップＳ４Ａ−１，Ｓ４Ａ−２）。
【００８０】
ゲートウェイ２０から更新が要求されたマネージャ装置１４、またはゲートウェイ２０からマネージャ装置１４を介して更新が要求されたＥＣＵ１６は、更新プログラムΔを展開して旧バーションに適用し、制御プログラムを新バーションに書き換える（ステップＳ５，６）。
【００８１】
制御プログラムの更新が完了すると、マネージャ装置１４は更新の完了をゲートウェイ２０に通知する（ステップＳ７−１）。また、ＥＣＵ１６は、マネージャ装置１４を介してゲートウェイ２０に更新の完了を通知する（ステップＳ７−２）。ゲートウェイ２０は、無線通信機１９を介して管理サーバ３に、更新の完了を通知する（ステップＳ７−３，７−４）。これにより、管理サーバ３は、当該車両１での更新の完了を確認することができ、以降、当該制御プログラムの更新プログラムΔをＤＬサーバ４から配信されないようにする。また、当該制御プログラムの更新の完了が通知されない場合、管理サーバ３は、再度、当該制御プログラムの新プログラムΔをＤＬサーバ４に配信させる。また、当該通知を受けたゲートウェイ２０は、メモリをクリアする（ステップＳ８Ａ）。
【００８２】
図４のシーケンスにおいてゲートウェイ２０は、複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新し、または、当該更新順に従って複数の制御プログラムを更新するか否かを判定する判定処理を実行し、当該判定結果に従って設定しなおされた更新順に従って制御プログラムを更新するように制御している。従って、第１の実施の形態では、ゲートウェイ２０が車載制御装置の更新プログラムの更新を制御する制御装置に該当する。
【００８３】
〔順位決定処理の詳細〕
マネージャ装置１４での制御プログラムの更新では、リプロモードに移行してから、記憶部３２のＲＯＭ領域に対して制御プログラムの書き換えのための準備処理、書き換え処理、及び当該マネージャ装置１４の再起動が行われる。マネージャ装置１４の再起動の際には、当該マネージャ装置１４に接続されているＥＣＵ１６に対するマネージャ装置１４の制御が停止し、これらＥＣＵ１６も、マネージャ装置１４の再起動に伴って被制御状態に復帰する。また、第１ネットワークに属するマネージャ装置１４およびＥＣＵ１６は互いに通信可能であり、複雑に連動している。そのため、上記の再起動は、車内通信システム１０全体の再起動となる場合もある。
【００８４】
また、マネージャ装置１４に接続されたＥＣＵ１６での制御プログラムの更新、またはゲートウェイ２０に車内通信線１３Ｂ，１３Ｃを介して接続されたＥＣＵ１６での制御プログラムの更新でも、リプロモードに移行してから、記憶部４２のＲＯＭ領域に対して制御プログラムの書き換えのための準備処理、書き換え処理、及び当該ＥＣＵ１６の再起動が行われる。ＥＣＵ１６の再起動の際には、当該ＥＣＵ１６と同じマネージャ装置１４に接続されている他のＥＣＵ１６や、同じ制御分野に属する他のＥＣＵ１６など、当該ＥＣＵ１６と連携して動作する他のＥＣＵ１６の動作も停止し、これらＥＣＵ１６も、当該ＥＣＵ１６の再起動に伴って通常の動作状態に復帰する。また、第１ネットワークに属するＥＣＵ１６での制御プログラムの更新の場合でも、上記の再起動は、車内通信システム１０全体の再起動となる場合もある。
【００８５】
従って、第１ネットワークにおける制御プログラムの更新では、書き換えのための準備処理のための時間、書き換え処理のための時間、及び当該装置の再起動が完了し連携するＥＣＵ１６の動作状態が通常の動作状態に復帰するまでの時間、の合計時間、車内通信システム１０が通常の動作を行うことができない。この合計時間を、以降の説明ではリプロ（更新）所要時間Ｔｒとも称する。リプロ所要時間Ｔｒは、リプロモードに切り替わってから次に通常モードに復帰するまでの時間、言い換えると、制御プログラムの更新が開始してから、更新後の制御プログラムで制御可能な状態に復帰するまでの時間を指す。つまり、第１の実施の形態では、リプロ所要時間Ｔｒは、制御プログラムの更新の対象とするＥＣＵ１６の機能のみが使用できない時間に加えて、当該ＥＣＵの制御対象の機器以外の機器に影響を及ぼす時間、と言える。
【００８６】
リプロ所要時間Ｔｒは、制御プログラムの更新に必要なメモリ容量や、再起動する機器の数などに応じて、制御プログラムごとに異なる。たとえば、制御プログラムを更新したＥＣＵ１６のみ再起動させる場合には、車内通信システム１０全体を再起動させる場合よりも再起動が完了するまでの時間が短く、リプロ所要時間Ｔｒも短くなる。また、対象のＥＣＵ１６の制御部４１のＣＰＵの処理能力が高いほどリプロ所要時間Ｔｒは短くなる。
【００８７】
記憶部２２に複数の更新プログラムΔが格納されている場合に、リプロ所要時間Ｔｒが長い更新プログラムΔの更新が先に実行されると、続く更新プログラムΔの更新の開始が遅くなる。そのため、所定時間内に更新が完了する制御プログラムの数を重視する場合、つまり、短期間でより多くの制御プログラムの更新を完了させたい場合には、リプロ所要時間Ｔｒが長い更新プログラムΔの更新を先に行わない方がよい。
【００８８】
そこで、第１の実施の形態において制御装置として機能するゲートウェイ２０は、記憶部２２に格納された複数の更新プログラムΔそれぞれのリプロ所要時間Ｔｒに基づいて、当該複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新するか否かを判定する。そして、判定結果が否定的である場合に、当該複数の更新プログラムΔに設定された更新順を設定しなおす。
【００８９】
図５は、図４のステップＳ３Ａでの順位決定処理の具体的な内容の一例を表したフローチャートである。図５のフローチャートで表された処理は、ゲートウェイ２０の制御部２１のＣＰＵが記憶部２２に記憶された１つまたは複数のプログラムをＲＡＭ上に読み出して実行することによってリプロ制御部２５として機能し、当該リプロ制御部２５により実現される。
【００９０】
図５を参照して、制御部２１のＣＰＵは、記憶部２２に格納された更新プログラムΔを、予め規定された条件に従ってソートする（ステップＳ１０１）。予め規定された条件は、たとえば、ＤＬサーバ４からダウンロードされた順、ＤＬサーバ４から指定された順、更新プログラムΔのサイズ順、などを含む。
【００９１】
次に、ＣＰＵは、記憶部２２に格納された更新プログラムΔごとに、当該更新プログラムΔの更新によるリプロ所要時間Ｔｒを特定する（ステップＳ１０３）。リプロ所要時間Ｔｒは、ＤＬサーバ４から提供されるものであってもよい。また、ＤＬサーバ４から提供される更新プログラムΔのサイズなどの更新プログラムΔに関する情報を用いてＣＰＵが算出してもよい。
【００９２】
ＣＰＵは、更新順が最も早い（順位が最上位である）更新プログラムΔから順に、設定された更新順に制御プログラムを更新するか否かを判定する（ステップＳ１０５〜Ｓ１１３）。詳しくは、最上位の更新プログラムΔについて、当該更新プログラムΔのリプロ所要時間Ｔｒと、予め記憶している規定時間Ｔｈとを比較する（ステップＳ１０５）。規定時間Ｔｈは、たとえば、数１０秒〜数分程度の時間である。
【００９３】
最上位の更新プログラムΔのリプロ所要時間Ｔｒが規定時間Ｔｈよりも長い場合であって（ステップＳ１０５でＹＥＳ）、かつ、当該更新プログラムΔよりも設定された更新順の遅い他の更新プログラムΔが記憶部２２に格納されている場合（ステップＳ１０６でＹＥＳ）、ＣＰＵは、当該制御プログラムを設定された更新順では更新しないと判定する。ＣＰＵは、この否定的な判定結果に至った場合、当該更新プログラムΔの更新順を設定されている最も早い順（最上位の順位）とは異なる更新順に設定しなおす（ステップＳ１１１）。具体的には、当該更新プログラムΔの更新順を更新順の遅い他の更新プログラムΔよりも遅く設定しなおす。ここでは、一例として、当該更新プログラムΔの更新順を最も遅い順（最下位の順位）と設定しなおすものとする。他の例として、次に早い順（第２位の順位）の更新プログラムΔと順位を入れ替えて、当該更新プログラムΔの更新順を次に早い順（第２位の順位）と設定しなおしてもよい。
【００９４】
リプロ所要時間Ｔｒが規定時間Ｔｈ以内である場合には、ＣＰＵは、当該更新プログラムΔを用いた制御プログラムを設定された更新順に従って更新すると判定する（ステップＳ１１３）。ＣＰＵは、この肯定的な判定結果に至った場合、図４のステップＳ４Ａ−１以降のシーケンスを実行する。これにより、当該制御プログラムの更新が実行される。
【００９５】
上記判定において否定的な判定結果に至った場合、好ましくは、ＣＰＵは、記憶部２２に格納された当該更新プログラムΔを削除する（ステップＳ１０９）。このようにすることで、更新対象の装置において制御プログラムの更新が行われないときには、記憶部２２に不要な更新プログラムΔが格納されず、メモリの圧迫が回避される。
【００９６】
なお、リプロ所要時間Ｔｒが規定時間Ｔｈよりも長い場合、ＣＰＵは、さらに、ユーザ認証を行ってユーザ（ドライバー）が許可されたユーザであり、かつ、当該ユーザから当該更新プログラムΔの更新を更新順に従わずに後回しにして行う旨の指示を受けた場合に（ステップＳ１０７でＹＥＳ）、当該更新プログラムΔの更新順を設定されている最も早い順（最上位の順位）とは異なる更新順に設定しなおしてもよい（ステップＳ１１１）。これにより、たとえば車両１の所有者など、許可されたユーザが制御プログラムの更新を管理することができる。
【００９７】
更新の順が最も早い更新プログラムΔについての上記判定が終了すると、ＣＰＵは、記憶部２２に、当該更新プログラムΔよりも設定された更新順の遅い他の更新プログラムΔが格納されているか否かを確認する。そして、当該他の更新プログラムΔがある場合（ステップＳ１１５でＹＥＳ）、ステップＳ１０５からの処理を繰り返して、記憶部２２に格納されたすべての更新プログラムΔについて判定する（ステップＳ１１５でＮＯ）。
【００９８】
〔第１の実施の形態の効果〕
第１の実施の形態にかかるプログラム更新システムによれば、記憶部２２に複数の更新プログラムΔが格納されており、リプロ所要時間Ｔｒが規定時間Ｔｈよりも長い更新プログラムΔが含まれる場合には、これら複数の更新プログラムΔに設定された更新順に従って制御プログラムの更新を行わないと判定し、更新順を設定しなおす。具体的には、リプロ所要時間Ｔｒが規定時間Ｔｈよりも長い更新プログラムΔについて、制御プログラムの更新順を他の制御プログラムの更新よりも後回しになるように更新順を設定しなおす。
【００９９】
更新が後回しにされた更新プログラムΔは記憶部２２から削除される。制御プログラムが更新されなかった場合、管理サーバ３に更新の完了が通知されない。そのため、当該更新プログラムΔが、再度、ＤＬサーバ４からダウンロードされる。従って、当該制御プログラムの更新は、次回のＤＬサーバ４からの更新プログラムΔのダウンロード以降に後回しにされる。
【０１００】
これにより、リプロ所要時間Ｔｒが規定時間Ｔｈ以内の更新プログラムΔの方が制御プログラムの更新が優先される。そのため、短期間で多くの制御プログラムの更新を完了させることができる。つまり、更新が可能な期間に応じて更新の順を柔軟に変更することができ、効率的に制御プログラムの更新を行うことができる。
【０１０１】
＜第２の実施の形態＞
なお、上の例では、リプロ所要時間Ｔｒが規定時間Ｔｈよりも長い場合に更新が後回しになるように更新順が設定しなおされるとしているが、リプロ所要時間Ｔｒが規定時間Ｔｈよりも短い場合に更新が後回しになるように更新順が設定しなおされてもよい。たとえば、更新可能な時間が長時間である場合には、リプロ所要時間Ｔｒが長いものから順に更新を行うようにしてもよい。
【０１０２】
さらに、制御プログラムの更新を行うとする条件を、プロ所要時間Ｔｒが規定時間Ｔｈよりも短い場合とするか長い場合とするか、変更可能であってもよい。変更は、特定ユーザのみ可能としてもよい。
さらに、規定時間Ｔｈも、変更可能であってもよい。変更は、特定ユーザのみ可能としてもよい。
【０１０３】
リプロ所要時間Ｔｒが規定時間Ｔｈ以上の制御プログラムの更新が優先されることで、長期間かけて制御プログラムの更新が可能な場合に、先にリプロ所要時間Ｔｒの長い更新を完了してしまうことができる。つまり、複数の制御プログラムに対して予め設定されている更新順を更新が可能な期間に応じて柔軟に変更することができ、効率的に制御プログラムの更新を行うことができる。
【０１０４】
＜第３の実施の形態＞
無線通信機１９に車内通信線１３Ｄを介して直接接続された、第２ネットワークに属するＥＣＵ１６は、マルチメディア系ＥＣＵなどの、単独で無線通信機１９を介してＤＬサーバ４と通信を行って制御プログラムの更新できるＥＣＵである。そのため、当該ＥＣＵ１６の制御プログラムの更新では、ＥＣＵ１６がリプロモードに移行してから、記憶部４２のＲＯＭ領域に対して制御プログラムの書き換え処理、及び当該ＥＣＵ１６の制御する機器にインストールされたアプリケーションの再起動が行われる。
【０１０５】
従って、第２ネットワークにおける制御プログラムの更新では、書き換え処理のための時間、及びアプリケーションの再起動が完了するまでの時間、の合計時間、該当する機器におけるアプリケーションが使用できない状態となる。つまり、第２ネットワークにおける制御プログラムの更新では、リプロ所要時間Ｔｒが、書き換え処理のための時間、及びアプリケーションの再起動が完了するまでの時間、の合計時間となる。すなわち、第３の実施の形態では、リプロ所要時間Ｔｒは、制御プログラムの更新の対象とするＥＣＵ１６の機能のみが使用できない時間と言える。
【０１０６】
図６は、第３の実施の形態にかかるプログラム更新システムでの、車内通信システム１０における通信手段の一例を示すシーケンス図である。第３の実施の形態では、通信機１９に車内通信線１３Ｄを介して直接接続された、第２ネットワークに属するＥＣＵ１６の制御プログラムを更新する場合について説明する。
【０１０７】
図６を参照して、この場合、無線通信機１９は、ＤＬサーバ４からダウンロードした更新プログラムΔを、安全性をチェックした上で記憶部９２に格納する（ステップＳ２Ｂ）。無線通信機１９は、更新プログラムΔのダウンロードの後の予め規定されたタイミングで、それぞれの更新プログラムΔに対して設定された更新順に従って制御プログラムを更新する。このとき、記憶部９２に複数の更新プログラムΔが格納されている場合に、無線通信機１９は、これら複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新するか否かを判定し、その判定結果が否定的である場合には更新順を設定しなおす処理を実行する（ステップＳ３Ｂ）。そして、無線通信機１９は、設定された更新順または設定しなおされた更新順に従って更新プログラムΔを対象のＥＣＵ１６に転送し、更新を要求する（ステップＳ４Ｂ）。無線通信機１９から更新が要求されたＥＣＵ１６は、更新プログラムΔを展開して旧バーションに適用し、制御プログラムを新バーションに書き換える（ステップＳ５）。
【０１０８】
制御プログラムの更新が完了すると、ＥＣＵ１６は、ゲートウェイ２０に更新の完了を通知する（ステップＳ７−５）。ゲートウェイ２０は、無線通信機１９を介して管理サーバ３に、更新の完了を通知する（ステップＳ７−６）。これにより、管理サーバ３は、当該車両１での更新の完了を確認することができ、以降、当該制御プログラムの更新プログラムΔをＤＬサーバ４から配信されないようにする。また、当該制御プログラムの更新の完了が通知されない場合、管理サーバ３は、再度、当該制御プログラムの新プログラムΔをＤＬサーバ４に配信させる。また、当該通知を受けた無線通信機１９は、メモリをクリアする（ステップＳ８Ｂ）。
【０１０９】
図６のシーケンスにおいて無線通信機１９は、複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新し、または、当該更新順に従って複数の制御プログラムを更新するか否かを判定する判定処理を実行し、当該判定結果に従って設定しなおされた更新順に従って制御プログラムを更新するように制御している。従って、第３の実施の形態では、無線通信機１９が車載制御装置の更新プログラムの更新を制御する制御装置に該当する。
【０１１０】
第３の実施の形態にかかるプログラム更新システムにおいては、制御装置として機能する無線通信機１９がステップＳ３Ｂにおいて順位決定処理を実行する。ステップＳ３Ｂの順位決定処理は、図５のフローチャートで表わされた処理と同じである。つまり、第３の実施の形態にかかるプログラム更新システムにおいては、無線通信機１９の制御部９１のＣＰＵが記憶部９２に記憶された１つまたは複数のプログラムをＲＡＭ上に読み出して実行することによってリプロ制御部９５として機能し、当該リプロ制御部９５により図５の順位決定処理が実現される。
【０１１１】
〔第３の実施の形態の効果〕
第３の実施の形態にかかるプログラム更新システムにおいても、リプロ所要時間Ｔｒが規定時間Ｔｈよりも長い更新プログラムΔについては更新の順が後回しになる。つまり、リプロ所要時間Ｔｒが規定時間Ｔｈ以内の更新プログラムΔの更新が優先される。そのため、短期間で多くの更新プログラムΔの更新を完了させることができる。
【０１１２】
＜第４の実施の形態＞
なお、第２ネットワークに属するＥＣＵ１６はマルチメディア系ＥＣＵなどであり、制御プログラムの更新は当該マルチメディア装置を制御するためのアプリケーションの更新などである。そのため、通信機器と当ＥＣＵとの間は高速通信が確立しており、通信速度差を吸収するためのメモリを通信機器が確保しないことがある。また、更新プログラムΔのサイズはマルチメディア系ＥＣＵのメモリの容量が大きく設定されているため、記憶部９２に格納されても大きく影響しない場合がある。そこで、リプロ所要時間Ｔｒが規定時間Ｔｈよりも長く制御プログラムの更新が後回しにされた場合、当該更新プログラムΔは記憶部９２から削除されずに保持されたままで、更新順が設定しなおされてもよい。
【０１１３】
図７は、図６のステップＳ３Ｂでの順位決定処理の具体的な内容の一例を表したフローチャートである。図７のフローチャートで表された処理は、無線通信機１９の制御部９１のＣＰＵが記憶部９２に記憶された１つまたは複数のプログラムをＲＡＭ上に読み出して実行することによってリプロ制御部９５として機能し、当該リプロ制御部９５により実現される。図７において、図５のフローチャートと同じステップ番号が付加された処理は同じ処理である。従って、ここでは、図５のフローチャートと同じ処理については説明を繰り返さない。
【０１１４】
図７を参照して、制御部９１のＣＰＵは、リプロ所要時間Ｔｒと規定時間Ｔｈとの比較結果に従って、当該制御プログラムの更新を設定された更新順では行わないと判定した場合（ステップＳ１０５でＹＥＳ）、当該更新プログラムΔの更新順を設定されている更新順よりも遅くなるように設定しなおす（ステップＳ２０１）。たとえば、当該更新プログラムΔの更新順を最も遅い順と設定しなおす。
【０１１５】
第４の実施の形態にかかるプログラム更新システムにおいては、リプロ所要時間Ｔｒと規定時間Ｔｈとの比較結果に従って更新の順が後回しにされた更新プログラムΔが当該ＥＣＵ１６の記憶部９２に保持されている。そのため、ＤＬサーバ４からの次回のダウンロードを待たずに、可能なタイミングで記憶部９２に格納されている更新プログラムΔを用いて制御プログラムの更新を行うことができる。
【０１１６】
＜第５の実施の形態＞
ＤＬサーバ４から無線通信機１９にダウンロードされる複数の更新プログラムΔには、第１ネットワークに属する装置（マネージャ装置１４またはＥＣＵ１６）の更新プログラムΔと第２ネットワークに属する装置（ＥＣＵ１６）の更新プログラムΔとが混在している場合もある。この場合、無線通信機１９の制御部９１のＣＰＵは、いったん、すべての更新プログラムΔを記憶部９２に格納し、それら複数の更新プログラムΔに対して順位決定処理を行ってもよい。つまり、図４では、第１ネットワークに属する装置の更新プログラムΔについてはゲートウェイ２０が制御装置として機能して順位決定処理（ステップＳ３Ａ）を行うものとしているが、すべての更新プログラムΔについて無線通信機１９が制御装置として機能して順位決定処理（ステップＳ３Ｂ）を行うようにしてもよい。
【０１１７】
このようにすることで、第１ネットワークに属する装置（マネージャ装置１４またはＥＣＵ１６）の更新プログラムΔと第２ネットワークに属する装置（ＥＣＵ１６）の更新プログラムΔとが混在してＤＬサーバ４から無線通信機１９にダウンロードされた場合であっても、リプロ所要時間Ｔｒが規定時間Ｔｈよりも長い更新プログラムΔについては更新の順が後回しにされる。つまり、リプロ所要時間Ｔｒが規定時間Ｔｈ以内の更新プログラムΔの更新が優先される。そのため、短期間で多くの更新プログラムΔの更新を完了させることができる。
【０１１８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１９】
１  車両
２  広域通信網
３  管理サーバ
４  サーバ
１０  車内通信システム
１３Ａ，１３Ｂ，１３Ｃ，１３Ｄ，１５  車内通信線
１４  マネージャ装置
１６  ＥＣＵ
１９  無線通信機
２０  ゲートウェイ
２１，３１，４１，９１  制御部
２２，３２，４２，９２  記憶部
２３，３４，９４  第２通信部
２４，３３，９３  第１通信部
２６  第３通信部
２７  第４通信部
２５，９５  リプロ制御部
３５，４４  起動部
４３  通信部
【要約】
車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置であって、制御プログラムの更新用プログラムを格納するためのメモリと、前記メモリに格納されている複数の前記更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部と、を備え、前記制御部は、前記複数の制御プログラムの更新所要時間と所定の閾値とを比較し、その比較結果に基づいて前記複数の制御プログラムの更新を前記更新順に行うか否かを判定する判定処理を実行する、制御装置。【図１】
0006376312.tif 000002
【図２】
0006376312.tif 000003
【図３】
0006376312.tif 000004
【図４】
0006376312.tif 000005
【図５】
0006376312.tif 000006
【図６】
0006376312.tif 000007
【図７】
0006376312.tif 000008