(57)【要約】【課題】制御プログラムの同時更新所要時間を短くする。【解決手段】車載ネットワークに属する複数の制御装置と通信する中継装置が実行するプログラム更新方法は、複数の制御装置に対する同時更新の必要性がある複数の更新プログラムと、車載ネットワークのトポロジーとを記憶するステップ（Ｓ４）と、複数の更新プログラムを対応する制御装置にそれぞれ送信するステップ（Ｓ９，１１，１３）と、を含み、送信するステップは、中継装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置については、当該制御装置に対応する複数のプログラムを並行して送信することを含む。【選択図】図５
2018181377.tif 000002
【特許請求の範囲】
【請求項１】
車載ネットワークに属する複数の制御装置と通信する中継装置であって、
複数の前記制御装置に対する同時更新の必要性がある複数の更新プログラムと、前記車載ネットワークのトポロジーとを記憶する記憶部と、
複数の前記更新プログラムを対応する前記制御装置にそれぞれ送信する車内通信部と、
自装置に個別に接続された互いに独立する複数の前記車載ネットワークに属する前記制御装置については、当該制御装置に対応する複数の前記更新プログラムを並行して送信するように前記車内通信部を制御する制御部と、を備える、中継装置。
【請求項２】
前記制御部は、所定の条件に従って複数の前記更新プログラムの送信順序を決定する、請求項１に記載の中継装置。
【請求項３】
前記所定の条件は、各前記制御装置での、下記の第１時間〜第３時間を含む更新所要時間の組み合わせである同時更新所要時間を最も短くするスケジューリング条件よりなり、
前記同時更新所要時間は、前記複数の更新プログラムのうちの最初に前記制御装置に伝送される更新プログラムについての前記第１時間の開始時から、前記複数の更新プログラムの最後に制御プログラムの書き換えが終了する更新プログラムについての前記第３時間の終了時までの時間である、請求項２に記載の中継装置。
第１時間：更新プログラムの伝送時間
第２時間：更新プログラムのチェックに要する時間
第３時間：更新プログラムを用いた制御プログラムの書き換えに要する時間
【請求項４】
前記スケジューリング条件には、
バス型トポロジーである１つの前記車載ネットワークに含まれる複数の前記制御装置について、前記第３時間が長い前記制御装置ほど前記更新プログラムの送信順序を早めることが含まれる、請求項３に記載の中継装置。
【請求項５】
前記スケジューリング条件には、
バス型トポロジーである１つの前記車載ネットワークに含まれる複数の前記制御装置について、前記第１時間が短い前記制御装置ほど前記更新プログラムの送信順序を早めることが含まれる、請求項３または請求項４に記載の中継装置。
【請求項６】
前記スケジューリング条件には、
バス型トポロジーである１つの前記車載ネットワークに含まれる複数の前記制御装置について、前記制御装置に付与された識別情報に基づいて送信順序を決定することが含まれる、請求項３〜請求項５のいずれか１項に記載の中継装置。
【請求項７】
１つの前記車載ネットワークに、自装置に直接接続されたメインネットワークと、前記メインネットワークに含まれる前記制御装置を分岐ノードとして分岐するローカルネットワークが含まれる場合は、前記スケジューリング条件には、前記ローカルネットワークに属する前記制御装置への送信順序を、前記メインネットワークに含まれる前記制御装置の送信順序よりも早めることが含まれる、請求項３〜請求項６のいずれか１項に記載の中継装置。
【請求項８】
前記制御部は、前記分岐ノードが、前記メインネットワークでの伝送速度と前記ローカルネットワークでの伝送速度の差を吸収するバッファ機能を有するか否か応じて、前記メインネットワークの伝送速度を決定する、請求項７に記載の中継装置。
【請求項９】
車載ネットワークに属する複数の制御装置と、前記複数の制御装置と通信する中継装置と、を含むプログラム更新システムであって、
前記中継装置は、
複数の前記制御装置に対する同時更新の必要性がある複数の更新プログラムと、前記車載ネットワークのトポロジーとを記憶する記憶部と、
複数の前記更新プログラムを対応する前記制御装置にそれぞれ送信する車内通信部と、
自装置に個別に接続された互いに独立する複数の前記車載ネットワークに属する前記制御装置については、当該制御装置に対応する複数の前記更新プログラムを並行して送信するように前記車内通信部を制御する制御部と、を備える、プログラム更新システム。
【請求項１０】
車載ネットワークに属する複数の制御装置と通信する中継装置が実行するプログラム更新方法であって、
複数の前記制御装置に対する同時更新の必要性がある複数の更新プログラムと、前記車載ネットワークのトポロジーとを記憶するステップと、
複数の前記更新プログラムを対応する前記制御装置にそれぞれ送信するステップと、を含み、
前記送信するステップは、前記中継装置に個別に接続された互いに独立する複数の前記車載ネットワークに属する前記制御装置については、当該制御装置に対応する複数の前記更新プログラムを並行して送信することを含む、プログラム更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は中継装置、プログラム更新システム、およびプログラム更新方法に関し、特に、車載制御装置の制御プログラムの更新を適切に行うための技術に関する。
【背景技術】
【０００２】
近年、自動車の技術分野においては、車両の高機能化が進行しており、多種多様な車載機器が車両に搭載されている。従って、車両には、各車載機器を制御するための車載制御装置である、所謂ＥＣＵ（Electronic  Control  Unit）が多数搭載されている。
ＥＣＵには、たとえば、アクセル、ブレーキ、ハンドルの操作に対してエンジンやブレーキ、ＥＰＳ（Electric  Power  Steering）等の制御を行う走行系に関わるもの、乗員によるスイッチ操作に応じてヘッドライトの点灯／消灯やワイパーＯＮ／ＯＦＦ、ドアロック／アンロック等、運転席近傍に配設されるメータ類の動作を行うものがある。
【０００３】
一般的にＥＣＵは、マイクロコンピュータ等の演算処理装置によって構成されており、ＲＯＭ（Read  Only  Memory）に記憶した制御プログラムを読み出して実行することにより、車載機器の制御が実現される。
ＥＣＵの制御プログラムは、車両の仕向け地やグレードなどに応じて異なることがあり、制御プログラムのバージョンアップに対応して、旧バージョンの制御プログラムを新バージョンの制御プログラムに書き換える必要がある。
【０００４】
たとえば、特許文献１および２には、車載通信機などのゲートウェイが管理サーバから更新プログラムを受信し、受信した更新プログラム用いてＥＣＵが制御プログラムを旧バージョンから新バージョンに書き換えることにより、車両の各ＥＣＵに対するプログラム更新を無線通信によって遠隔で実行する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−６５８５６号公報
【特許文献２】特開２０１１−７０３０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
昨今の車両は、多くの機器が連動して動いている。そのため、車両の動作を保証するために、関連する複数のＥＣＵそれぞれの制御プログラムである複数のプログラムを同じタイミングで更新することが要求される場合がある。制御プログラムの更新は、ＥＣＵに更新用のプログラムを渡し、ＥＣＵにおいて制御プログラムを書き換えることによって行われる。そのため、１つのＥＣＵにおいて制御プログラムの更新に要する時間である「更新所要時間」は、ＥＣＵに更新プログラムを伝送するのに要する時間と制御プログラムを書き換えるのに要する時間とを含む時間である。
【０００７】
同じタイミングで複数のＥＣＵそれぞれの制御プログラムを更新する必要性がある場合、複数のＥＣＵそれぞれが上記の更新の動作を実行する。車両では、関連する複数のＥＣＵについて制御プログラムの更新が開始すると、すべてのＥＣＵにおいて制御プログラムの更新が完了するまで、車両を動作させることができない。つまり、同じタイミングに更新する複数の制御プログラム用の複数の更新用のプログラムのうちの最初のプログラムのＥＣＵへの伝送の開始から、最後の更新用のプログラムのＥＣＵにおける書き換えの完了までの時間（以下、この時間を「同時更新所要時間」と言う）、車両を動作させることができない。
【０００８】
同じタイミングで制御プログラムを更新する上記の複数のＥＣＵがそれぞれ順に更新を行うと、同時更新所要時間は複数のＥＣＵそれぞれにおける更新所要時間を加えたものとなり、長くなる。同時更新所要時間が長くなるほど、車両を動作させることができない時間が長くなってしまう。
【０００９】
本発明はかかる問題に鑑みてなされたものであって、複数のプログラムを同じタイミングに更新する場合の同時更新所要時間を短くすることのできる中継装置、プログラム更新システム、およびプログラム更新方法を提供する。
【課題を解決するための手段】
【００１０】
ある実施の形態に従うと、中継装置は車載ネットワークに属する複数の制御装置と通信する中継装置であって、複数の制御装置に対する同時更新の必要性がある複数の更新プログラムと、車載ネットワークのトポロジーとを記憶する記憶部と、複数の更新プログラムを対応する制御装置にそれぞれ送信する車内通信部と、自装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置については、当該制御装置に対応する複数の更新プログラムを並行して送信するように車内通信部を制御する制御部と、を備える。
【００１１】
他の実施の形態に従うと、プログラム更新システムは、車載ネットワークに属する複数の制御装置と、複数の制御装置と通信する中継装置と、を含み、中継装置は、複数の制御装置に対する同時更新の必要性がある複数の更新プログラムと、車載ネットワークのトポロジーとを記憶する記憶部と、複数の更新プログラムを対応する制御装置にそれぞれ送信する車内通信部と、自装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置については、当該制御装置に対応する複数の更新プログラムを並行して送信するように車内通信部を制御する制御部と、を備える。
【００１２】
他の実施の形態に従うと、プログラム更新方法は車載ネットワークに属する複数の制御装置と通信する中継装置が実行するプログラム更新方法であって、複数の制御装置に対する同時更新の必要性がある複数の更新プログラムと、車載ネットワークのトポロジーとを記憶するステップと、複数の更新プログラムを対応する制御装置にそれぞれ送信するステップと、を含み、送信するステップは、中継装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置については、当該制御装置に対応する複数の更新プログラムを並行して送信することを含む。
【発明の効果】
【００１３】
この発明によると、車両に搭載された制御装置の制御プログラムの同時更新所要時間を短くすることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るプログラム更新システムの全体構成図である。
【図２】ゲートウェイの内部構成を示すブロック図である。
【図３】ＥＣＵの内部構成を示すブロック図である。
【図４】管理サーバの内部構成を示すブロック図である。
【図５】複数のＥＣＵに対する制御プログラムの同時更新の一例を示すシーケンス図である。
【図６】図５のステップＳ８のスケジューリング処理の流れを表したフローチャートである。
【図７】同時更新の必要性がある更新プログラムの第１の具体例を表した図である。
【図８】スケジューリング処理を行わない場合の更新スケジュール（Ａ）と、スケジューリング処理を行った場合の更新スケジュール（Ｂ）とを比較して示した図である。
【図９】同時更新の必要性がある更新プログラムの第２の具体例を表した図である。
【図１０】スケジューリング処理を行わない場合の更新スケジュール（Ａ）と、スケジューリング処理を行った場合の更新スケジュール（Ｂ）とを比較して示した図である。
【図１１】同時更新の必要性がある更新プログラムの第３の具体例を表した図である。
【図１２】スケジューリング処理を行わない場合の更新スケジュール（Ａ）と、スケジューリング条件Ａ〜Ｃそれぞれに従ったスケジューリング処理を行った場合の更新スケジュール（Ｂ）〜（Ｄ）とを比較して示した図である。
【発明を実施するための形態】
【００１５】
［実施の形態の説明］
本実施の形態には、少なくとも以下のものが含まれる。
すなわち、本実施の形態に含まれる中継装置は、車載ネットワークに属する複数の制御装置と通信する中継装置であって、複数の制御装置に対する同時更新の必要性がある複数の更新プログラムと、車載ネットワークのトポロジーとを記憶する記憶部と、複数の更新プログラムを対応する制御装置にそれぞれ送信する車内通信部と、自装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置については、当該制御装置に対応する複数の更新プログラムを並行して送信するように車内通信部を制御する制御部と、を備える。
この構成によれば、同時更新の必要性がある複数の更新プログラムのうちの、中継装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置に対する更新プログラムについては、中継装置からの伝送の開始を同時にすることができる。このため、これら複数の更新プログラムを、それぞれ、制御プログラムの書き換えの終了後に順に送信する場合よりも、複数の更新プログラムの伝送時間の合計を短縮することができる。その結果、同時更新所要時間を短くすることができる。
【００１６】
好ましくは、中継装置は、制御部は、所定の条件に従って複数の更新プログラムの送信順序を決定する。
適切な条件が中継装置に設定されることによって、同時更新の必要性がある複数の更新プログラムの伝送にかかる時間の合計を短くすることができる。その結果、同時更新所要時間を短くすることができる。
【００１７】
好ましくは、所定の条件は、各制御装置での、下記の第１時間〜第３時間を含む更新所要時間の組み合わせである同時更新所要時間を最も短くするスケジューリング条件よりなり、同時更新所要時間は、複数の更新プログラムのうちの最初に制御装置に伝送される更新プログラムについての第１時間の開始時から複数の更新プログラムの最後に制御プログラムの書き換えが終了する更新プログラムについての第３時間の終了時までの時間である。
第１時間：更新プログラムの伝送時間
第２時間：更新プログラムのチェックに要する時間
第３時間：更新プログラムを用いた制御プログラムの書き換えに要する時間
この構成によって、同時更新の必要性がある複数の更新プログラムの伝送にかかる時間の合計を短くすることができる。その結果、同時更新所要時間を短くすることができる。
【００１８】
好ましくは、スケジューリング条件には、バス型トポロジーである１つの車載ネットワークに含まれる複数の制御装置について、第３時間が長い制御装置ほど更新プログラムの送信順序を早めることが含まれる。
この構成によって、制御プログラムの書き換えに要する時間が長い更新プログラムほど先に伝送され、制御プログラムの書き換えが先に開始される。そして、制御プログラムの書き換えと並行して、次の更新プログラムが伝送される。そのため、各制御プログラムの書き換えの終了後に順に更新プログラムを伝送するよりも同時更新所要期間を短縮することができる。
【００１９】
好ましくは、スケジューリング条件には、バス型トポロジーである１つの車載ネットワークに含まれる複数の制御装置について、第１時間が短い制御装置ほど更新プログラムの送信順序を早めることが含まれる。
この構成によって、各更新プログラムについて対応する制御装置での当該更新プログラムのチェックおよび制御プログラムの書き換えを早く開始できるため、また、当該更新プログラムのチェックおよび制御プログラムの書き換えと並行して次の更新プログラムが伝送される。そのため、各制御プログラムの書き換えの終了後に順に更新プログラムを伝送するよりも同時更新所要期間をより短縮することができる。
【００２０】
好ましくは、スケジューリング条件には、バス型トポロジーである１つの車載ネットワークに含まれる複数の制御装置について、制御装置に付与された識別情報に基づいて送信順序を決定することが含まれる。
この構成によって、各制御装置に対して適した名前等の識別情報を予め付与しておくことによって、更新所要期間をより短縮することができる。
【００２１】
好ましくは、１つの車載ネットワークに、自装置に直接接続されたメインネットワークと、メインネットワークに含まれる制御装置を分岐ノードとして分岐するローカルネットワークが含まれる場合は、スケジューリング条件には、ローカルネットワークに属する制御装置への送信順序を、メインネットワークに含まれる制御装置の送信順序よりも早めることが含まれる。
この構成によって、ローカルネットワークでの更新プログラムの伝送と並行して、次の更新プログラムをメインネットワークで送信することができ、複数の更新プログラムの伝送時間の合計を短縮することができる。その結果、同時更新所要時間をより短縮することができる。
【００２２】
好ましくは、制御部は、分岐ノードが、メインネットワークでの伝送速度とローカルネットワークでの伝送速度の差を吸収するバッファ機能を有するか否か応じて、メインネットワークの伝送速度を決定する。
この構成によって、メインネットワークでの更新プログラムの送信を効率的に行うことができ、複数の更新プログラムの伝送時間の合計を短縮することができる。
【００２３】
本実施の形態に含まれるプログラム更新システムは、車載ネットワークに属する複数の制御装置と、複数の制御装置と通信する中継装置と、を含むプログラム更新システムであって、中継装置は、複数の制御装置に対する同時更新の必要性がある複数の更新プログラムと、車載ネットワークのトポロジーとを記憶する記憶部と、複数の更新プログラムを対応する制御装置にそれぞれ送信する車内通信部と、自装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置については、当該制御装置に対応する複数の更新プログラムを並行して送信するように車内通信部を制御する制御部と、を備える。
この構成によれば、同時更新の必要性がある複数の更新プログラムのうちの、中継装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置に対する更新プログラムについては、中継装置からの伝送の開始を同時にすることができる。このため、これら複数の更新プログラムを、それぞれ、制御プログラムの書き換えの終了後に順に送信する場合よりも、複数の更新プログラムの伝送時間の合計を短縮することができる。その結果、同時更新所要時間を短くすることができる。
【００２４】
本実施の形態に含まれるプログラム更新方法は車載ネットワークに属する複数の制御装置と通信する中継装置が実行するプログラム更新方法であって、複数の制御装置に対する同時更新の必要性がある複数の更新プログラムと、車載ネットワークのトポロジーとを記憶するステップと、複数の更新プログラムを対応する制御装置にそれぞれ送信するステップと、を含み、送信するステップは、中継装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置については、当該制御装置に対応する複数の更新プログラムを並行して送信することを含む。
この構成によれば、同時更新の必要性がある複数の更新プログラムのうちの、中継装置に個別に接続された互いに独立する複数の車載ネットワークに属する制御装置に対する更新プログラムについては、中継装置からの伝送の開始を同時にすることができる。このため、これら複数の更新プログラムを、それぞれ、制御プログラムの書き換えの終了後に順に送信する場合よりも、複数の更新プログラムの伝送時間の合計を短縮することができる。その結果、同時更新所要時間を短くすることができる。
【００２５】
［実施の形態の詳細］
以下に、図面を参照しつつ、好ましい実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００２６】
＜第１の実施の形態＞
〔システムの全体構成〕
図１は、本発明の実施形態に係るプログラム更新システムの全体構成図である。
図１に示すように、本実施形態のプログラム更新システムは、広域通信網２を介して通信可能な車両１、管理サーバ５およびＤＬ（ダウンロード）サーバ６を含む。
管理サーバ５およびＤＬサーバ６は、たとえば、車両１のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両１と通信可能である。
【００２７】
車両１には、ゲートウェイ１０と、無線通信部１５と、複数のＥＣＵ３０と、各ＥＣＵ３０によりそれぞれ制御される各種の車載機器（図示せず）とが搭載されている。
車両１には、共通の車内通信線にバス接続された複数のＥＣＵ３０による通信グループ（車載ネットワーク）が存在し、ゲートウェイ１０は、通信グループ間の通信やＥＣＵ３０と車外の装置との通信を中継する中継装置として機能する。このため、ゲートウェイ１０には、複数の車内通信線が接続されている。
【００２８】
詳しくは、ゲートウェイ１０には、それぞれに１つ以上のＥＣＵ３０が接続されて通信グループを構成する、複数のバスが接続されて、ネットワークトポロジーを形成している。一例として、図１に示されるように、ゲートウェイ１０には、メインバスである、第１のバスＮＷ１と第２のバスＮＷ２とが接続されている。バスＮＷ１には、３つのＥＣＵ（ＥＣＵ＿Ａ，ＥＣＵ＿Ｂ，ＥＣＵ＿Ｃ）３０が接続されている。バスＮＷ２には、１つのＥＣＵ（ＥＣＵ＿Ｆ）３０が接続されている。３つのＥＣＵ（ＥＣＵ＿Ａ，ＥＣＵ＿Ｂ，ＥＣＵ＿Ｃ）３０がメインバスＮＷ１に接続されたネットワークトポロジーおよび１つのＥＣＵ（ＥＣＵ＿Ｆ）３０がメインバスＮＷ２に接続されたネットワークトポロジーは、それぞれバス型トポロジーである。伝送路としてのメインバスＮＷ１，ＮＷ２は、それぞれに接続される複数のＥＣＵで共有可能される。そのために、信号の衝突、干渉するため、同時に信号の伝送がなされないように制御される必要がある。
【００２９】
複数のＥＣＵ３０のいずれかは、さらに、ローカルバスに接続されていてもよい。たとえば、図１では、バスＮＷ１は、接続された１つのＥＣＵ（ＥＣＵ＿Ｃ）３０を分岐ノードとして、ローカルバスである第３のバスＮＷ３に分岐している。バスＮＷ３には、さらに２つのＥＣＵ（ＥＣＵ＿Ｅ，ＥＣＵ＿Ｄ）３０が接続されて、バス型トポロジーを形成している。ＥＣＵ＿Ｃは、バスＮＷ３に接続された２つのＥＣＵ（ＥＣＵ＿Ｅ，ＥＣＵ＿Ｄ）３０とゲートウェイ１０との信号の伝送を中継する。
【００３０】
無線通信部１５は、携帯電話網などの広域通信網２に通信可能に接続され、車内通信線によりゲートウェイ１０に接続されている。ゲートウェイ１０は、広域通信網２を通じて管理サーバ５およびＤＬサーバ６などの車外装置から無線通信部１５が受信した情報を、ＥＣＵ３０に送信する。
ゲートウェイ１０は、ＥＣＵ３０から取得した情報を無線通信部１５に送信し、無線通信部１５は、その情報を管理サーバ５などの車外装置に送信する。
【００３１】
図１では、ゲートウェイ１０は、無線通信部１５と車内通信線を介して接続されているが、これらは１つの装置で構成してもよい。
【００３２】
また、図１のプログラム更新システムでは、管理サーバ５とＤＬサーバ６とが別個のサーバで構成されているが、これらのサーバ５，６を１つのサーバ装置で構成してもよい。
【００３３】
〔ゲートウェイの内部構成〕
図２は、ゲートウェイ１０の内部構成を示すブロック図である。
図２に示すように、ゲートウェイ１０は、ＣＰＵ（Central  Processing  Unit）１１、ＲＡＭ（Random  Access  Memory）１２、記憶部１３、および車内通信部１４などを備える。ゲートウェイ１０は、無線通信部１５と車内通信線とを介して接続されているが、これらは一つの装置で構成してもよい。
【００３４】
ＣＰＵ１１は、記憶部１３に記憶された一または複数のプログラムをＲＡＭ１２に読み出して実行することにより、ゲートウェイ１０を各種情報の中継装置として機能させる。
ＣＰＵ１１は、たとえば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。ＲＡＭ１２は、ＳＲＡＭ（Static  ＲＡＭ）又はＤＲＡＭ（Dynamic  ＲＡＭ）等のメモリ素子で構成され、ＣＰＵ１１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００３５】
記憶部１３は、フラッシュメモリ若しくはＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read  Only  Memory）等の不揮発性のメモリ素子などにより構成されている。
記憶部１３は、ＣＰＵ１１が実行するプログラムおよび実行に必要なデータ等を記憶する記憶領域を有する。記憶部１３は、ＤＬサーバ６から受信した各ＥＣＵ３０の更新プログラムなども記憶する。また、記憶部１３には、車載ネットワークである、各ＥＣＵ３０およびバスＮＷ１〜ＮＷ３の形成するトポロジーも記憶されている。車載ネットワークのトポロジーは、更新プログラムの伝送および後述するスケジューリング処理において用いられる。
【００３６】
車内通信部１４には、車両１に配設された車内通信線を介して複数のＥＣＵ３０が接続されている。車内通信部１４は、たとえばＣＡＮ（Controller  Area  Network）、ＣＡＮＦＤ（ＣＡＮ  with  Flexible  Data  Rate）、ＬＩＮ（Local  Interconnect  Network）、Ｅｔｈｅｒｎｅｔ（登録商標）、またはＭＯＳＴ（Media  Oriented  Systems  Transport：ＭＯＳＴは登録商標）等の規格に応じて、ＥＣＵ３０との通信を行う。
車内通信部１４は、ＣＰＵ１１から与えられた情報を対象のＥＣＵ３０へ送信するとともに、ＥＣＵ３０から受信した情報をＣＰＵ１１に与える。車内通信部１４は、上記の通信規格だけでなく、車載ネットワークに用いる他の通信規格によって通信してもよい。
【００３７】
無線通信部１５は、アンテナと、アンテナからの無線信号の送受信を実行する通信回路とを含む無線通信機よりなる。無線通信部１５は、携帯電話網等の広域通信網２に接続されることにより車外装置との通信が可能である。
無線通信部１５は、図示しない基地局により形成される広域通信網２を介して、ＣＰＵ１１から与えられた情報を管理サーバ５等の車外装置に送信するとともに、車外装置から受信した情報をＣＰＵ１１に与える。
【００３８】
図２に示す無線通信部１５に代えて、車両１内の中継装置として機能する有線通信部を採用してもよい。この有線通信部は、ＵＳＢ（Universal  Serial  Bus）またはＲＳ２３２Ｃ等の規格に応じた通信ケーブルが接続されるコネクタを有し、通信ケーブルを介して接続された別の通信装置と有線通信を行う。
別の通信装置と管理サーバ５等の車外装置とが広域通信網２を通じた無線通信が可能である場合には、車外装置→別の通信装置→有線通信部→ゲートウェイ１０の通信経路により、車外装置とゲートウェイ１０とが通信可能になる。
【００３９】
〔ＥＣＵの内部構成〕
図３は、ＥＣＵ３０の内部構成を示すブロック図である。
図３に示すように、ＥＣＵ３０は、ＣＰＵ３１、ＲＡＭ３２、記憶部３３、通信部３４などを備える。ＥＣＵ３０は、車両１に搭載された対象機器を個別に制御する車載制御装置である。ＥＣＵ３０の種類には、たとえば、エンジン制御ＥＣＵ、ステアリング制御ＥＣＵ、およびドアロック制御ＥＣＵなどがある。
【００４０】
ＣＰＵ３１は、記憶部３３に予め記憶された一または複数のプログラムをＲＡＭ３２に読み出して実行することにより、自身が担当する対象機器の動作を制御する。
ＲＡＭ３２は、ＳＲＡＭまたはＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ３１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００４１】
記憶部３３は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置等により構成されている。
記憶部３３が記憶する情報には、たとえば、車内の制御対象である対象機器を制御するための情報処理をＣＰＵ３１に実行させるためのコンピュータプログラム（以下、「制御プログラム」という。）が含まれる。
【００４２】
通信部３４には、車両１に配設された車内通信線を介してゲートウェイ１０が接続されている。通信部３４は、たとえばＣＡＮ、Ｅｔｈｅｒｎｅｔ、またはＭＯＳＴ等の規格に応じて、ゲートウェイ１０との通信を行う。
通信部３４は、ＣＰＵ３１から与えられた情報をゲートウェイ１０へ送信するとともに、ゲートウェイ１０から受信した情報をＣＰＵ３１に与える。通信部３４は、上記の通信規格だけなく、車載ネットワークに用いる他の通信規格によって通信してもよい。
【００４３】
ＥＣＵ３０のＣＰＵ３１には、当該ＣＰＵ３１による制御モードを、「通常モード」または「リプログラミングモード」（以下、「リプロモード」ともいう。）のいずれかに切り替える起動部３５が含まれる。
ここで、通常モードとは、ＥＣＵ３０のＣＰＵ３１が、対象機器に対する本来的な制御（たとえば、燃料エンジンに対するエンジン制御や、ドアロックモータに対するドアロック制御など）を実行する制御モードのことである。
【００４４】
リプログラミングモードとは、対象機器の制御に用いる制御プログラムを更新する制御モードである。
すなわち、リプログラミングモードは、ＣＰＵ３１が、記憶部３３のＲＯＭ領域に対して、制御プログラムの消去や書き換えを行う制御モードのことである。ＣＰＵ３１は、この制御モードのときにのみ、記憶部３３のＲＯＭ領域に格納された制御プログラムを新バージョンに更新することが可能となる。
【００４５】
リプロモードにおいてＣＰＵ３１が新バージョンの制御プログラムを記憶部３３に書き込むと、起動部３５は、ＥＣＵ３０をいったん再起動（リセット）させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
起動部３５は、上記のベリファイ処理の完了後に、ＣＰＵ３１を更新後の制御プログラムによって動作させる。
【００４６】
〔管理サーバの内部構成〕
図４は、管理サーバ５の内部構成を示すブロック図である。
図４に示すように、管理サーバ５は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、記憶部５４、および通信部５５などを備える。
【００４７】
ＣＰＵ５１は、ＲＯＭ５２に予め記憶された一又は複数のプログラムをＲＡＭ５３に読み出して実行することにより、各ハードウェアの動作を制御し、管理サーバ５をゲートウェイ１０と通信可能な車外装置として機能させる。
ＲＡＭ５３は、ＳＲＡＭ又はＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ５１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００４８】
記憶部５４は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、又は、ハードディスクなどの磁気記憶装置等により構成されている。
通信部５５は、所定の通信規格に則って通信処理を実行する通信装置よりなり、携帯電話網等の広域通信網２に接続されて当該通信処理を実行する。通信部５５は、ＣＰＵ５１から与えられた情報を、広域通信網２を介して外部装置に送信するとともに、広域通信網２を介して受信した情報をＣＰＵ５１に与える。
【００４９】
図４に示すように、記憶部５４が記憶する情報には、車両１に搭載されたＥＣＵ３０（ここでは、ＶＩＮ＝１の車両１に搭載されたＥＣＵ３０の識別番号を１〜３とする。）の制御プログラムのバージョンを記録したリビジョンテーブルＲＴが含まれる。
リビジョンテーブルＲＴは、車両１の車両識別番号（ＶＩＮ）と、車両識別番号ごとのリビジョンアップの履歴を表す識別情報であるリビジョン番号と、各リビジョン番号に対応するＥＣＵ１〜３のバージョンとを纏めたテーブルよりなる。
【００５０】
図４のリビジョンテーブルＲＴにおいて、同じリビジョン番号に含まれる各ＥＣＵ１〜３の制御プログラムのバージョンは、カーメーカーにおいて動作確認が取れていることを示している。
たとえば、現状のリビジョン番号である「Ｒ２．０」の場合には、ＥＣＵ１のバージョン１．０の制御プログラム、ＥＣＵ２のバージョン１．３の制御プログラム、およびＥＣＵ３のバージョン２．０の制御プログラムの動作確認が取れている。
【００５１】
最新のリビジョン番号である「Ｒ２．４」の場合には、ＥＣＵ１のバージョン１．２の制御プログラム、ＥＣＵ２のバージョン２．０の制御プログラム、およびＥＣＵ３のバージョン２．２の制御プログラムの動作確認が取れている。
従って、車両１をＲ２．０からＲ２．４にリビジョンアップする場合には、ＥＣＵ１の１．０から１．２へのバージョンアップ、ＥＣＵ２の１．３から２．０へのバージョンアップ（更新）、およびＥＣＵ３の２．０から２．２へのバージョンアップ（更新）を同じタイミングに行う必要がある。ここで、「同じタイミング」とは、複数のＥＣＵ３０がゲートウェイ１０からの要求に応じてリプロモードに移行してから、次に、ゲートウェイ１０からの要求に応じてリセットされ、ベリファイ処理の完了後に通常モードに復帰するまでのタイミングを指す。以降の説明において、上記の意味で同じタイミングに複数の制御プログラムを更新することを「同時更新」とも言う。
【００５２】
図４のリビジョンテーブルＲＴには、一例として車両識別番号ＶＩＮ＝１の場合のバージョン情報のみが例示されている。
もっとも、管理サーバ５が保持するリビジョンテーブルＲＴには、管理サーバ５の登録会員が所有するすべての車両１の車両識別番号（ＶＩＮ）ごとに、上記と同様のバージョン情報が記録されている。また、ＤＬサーバ６には、すべてのＥＣＵ３０に関する複数の更新プログラムが格納されている。
【００５３】
ＣＰＵ５１は、ゲートウェイ１０から車両識別番号と各ＥＣＵ１〜３の現状の制御プログラムのバージョンとが通知されると、通知されたバージョン情報をリビジョンテーブルＲＴに含まれる当該車両識別番号の最新バージョンと照合する。
ＣＰＵ５１は、照合の結果、ゲートウェイ１０から通知されたＥＣＵ１〜３のバージョン情報が最新でないと判定した場合には、最新バージョンに更新するための更新プログラムの保存先ＵＲＬとダウンロード要求とをゲートウェイ１０に送信する。
【００５４】
〔制御プログラムの同時更新のシーケンス〕
図５は、本実施形態のプログラム更新システムにおいて実行される、複数のＥＣＵ１〜３に対する制御プログラムの同時更新の一例を示すシーケンス図である。なお、以下においては、図４のリビジョンテーブルＲＴに従って、各ＥＣＵ１〜３の制御プログラムを次のように更新する場合を想定する。
リビジョン番号：Ｒ２．０→Ｒ２．４
ＥＣＵ１：バージョン１．０→バージョン１．２
ＥＣＵ２：バージョン１．３→バージョン２．０
ＥＣＵ３：バージョン２．０→バージョン２．２
【００５５】
更新プログラムは、新バージョンのプログラムそのものであってもよいが、本実施形態では、旧バージョンからの差分プログラムである場合を想定する。この場合、旧バージョンと新バージョンとのファイルの差分情報を含む更新プログラムΔが同じ記憶領域にあれば、旧バージョンに更新プログラムΔを適応することで、新バージョンに更新することができる。
ＥＣＵ１のバージョン１．０からバージョン１．２への更新プログラムを「Δ１」とし、ＥＣＵ２のバージョン１．３からバージョン２．０への更新プログラムを「Δ２」とし、ＥＣＵ３のバージョン２．０からバージョン２．２への更新プログラムを「Δ３」とする。
【００５６】
図５に示すように、本実施形態の制御プログラムの同時更新においては、一例として、ゲートウェイ１０が、各ＥＣＵ１〜３の制御プログラムの現状のバージョン情報を収集する（ステップＳ１）。
図示の例では、ＥＣＵ１の制御プログラムの現バージョンは「１．０」であり、ＥＣＵ２の制御プログラムの現バージョンは「１．３」であり、ＥＣＵ３の制御プログラムの現バージョンは「２．０」である。
【００５７】
次に、ゲートウェイ１０は、収集したＥＣＵ１〜３の制御プログラムのバージョン情報と、自車両の車両識別番号（ＶＩＮ）を管理サーバ５に送信する（ステップＳ２）。
管理サーバ５は、ゲートウェイ１０から通知されたバージョン情報と車両識別番号に基づいて、前述のリビジョンテーブルＲＴ（図４参照）を探索することにより、各ＥＣＵ１〜３について、車両１の各ＥＣＵ１〜３の制御プログラムを同じタイミングに更新する必要があるか否かを判定する。
【００５８】
ここでは、ＥＣＵ１がバージョン１．０であり、ＥＣＵ２がバージョン１．３であり、ＥＣＵ３がバージョン２．０であるから、管理サーバ５は、車両１がリビジョンＲ２．０で運用中であると判定する。
また、管理サーバ５は、最新版のリビジョンＲ２．４が存在することから、ＥＣＵ１のバージョン１．２への更新、ＥＣＵ２のバージョン２．０への更新、および、ＥＣＵ３のバージョン２．２への更新を、同じタイミングに行う必要があると判定する。
【００５９】
そこで、管理サーバ５は、バージョン情報を送信してきたゲートウェイ１０宛てに、各ＥＣＵ１〜３の更新プログラムΔ１〜Δ３の保存先ＵＲＬとダウンロード要求とをゲートウェイ１０宛てに送信する（ステップＳ３）。
これにより、ゲートウェイ１０は、各ＥＣＵ１〜３のための更新プログラムΔ１〜Δ３をＤＬサーバ６からダウンロードする（ステップＳ４）。ゲートウェイ１０は、受信した更新プログラムΔ１〜Δ３を自装置の記憶部１３に一時的に格納して保存する。
【００６０】
更新プログラムΔ１〜Δ３の保存が完了すると、ゲートウェイ１０は、ＤＬが正常に完了したことを管理サーバ５に送信する（ステップＳ５）。引き続き自動で更新を行う場合、ＤＬ完了通知を受信した管理サーバ５は、制御プログラムの更新要求をゲートウェイ１０に送信する。ＤＬ完了後、一時中断し外部から更新要求を受けてから、制御プログラムの更新要求をゲートウェイ１０に送信してもよい（ステップＳ６）。
更新要求を受信したゲートウェイ１０は、記憶部１３に保存した更新プログラムΔ１〜Δ３を用いて制御プログラムを更新させるべく、各ＥＣＵ１〜３にリプロモード移行要求をそれぞれ送信する（ステップＳ７）。
【００６１】
リプロモード移行要求を受信すると、各ＥＣＵ１〜３は自身の制御モードを通常モードからリプログラミングモードに切り替える。これにより、各ＥＣＵ１〜３は、更新プログラムΔ１〜Δ３の展開と、現状の制御プログラムを新バージョンの制御プログラムに書き換える処理とが可能な状態となる。
【００６２】
ここで、同時更新する制御プログラムが複数ある場合、ゲートウェイ１０は、記憶部１３に保存した更新プログラムΔ１〜Δ３の送信順序を決定するためのスケジューリング処理を実行する（ステップＳ８）。
【００６３】
更新プログラムΔがＥＣＵに伝送されると、ＥＣＵは、当該更新プログラムが伝送経路で欠損していないか、ＭＤ（Message  Digest）５，ＣＲＣ（Cyclic  Redundancy  Code）等を用いて完全性の確認を実施し、デジタル署名等を用いて元ファイルに所有者の確認を実施し改ざんなきことの確認を実施した上で展開し（書き換え）て旧バージョンに適用する。すなわち、制御プログラムの更新には、ゲートウェイ１０から該当するＥＣＵまでの伝送（第１のタスク）、更新ファイルのチェック（第２のタスク）、およびＥＣＵでの当該プログラムの展開（アップデート）（第３のタスク）の３つのタスクがある。各ＥＣＵでの制御プログラムの更新に要する時間である「更新所要時間」は、上記第１のタスクに要する時間（第１時間）と第２のタスクに要する時間（第２時間）と第３のタスクに要する時間（第３時間）を含む。制御プログラムの更新のための動作が上記第１〜第３のタスクのみである場合には、更新所要時間は、第１〜第３時間を加えたもの（更新所要時間＝第１時間＋第２時間＋第３時間）となる。
【００６４】
複数のＥＣＵそれぞれの複数の制御プログラムを同時に更新する場合、最初の更新プログラムの該当するＥＣＵへの伝送の開始から最後の更新プログラムによって該当するＥＣＵで制御プログラムの書き換えが完了するまでが、同じタイミングで制御プログラムを更新するために要する「同時更新所要時間」となる。言い換えると、同時更新所要時間は、上記複数の更新プログラムのうちの最初にＥＣＵに伝送される更新プログラムの第１時間の開始時から、最後に制御プログラムの書き換えが終了する更新プログラムの第３時間の終了時までの時間である。
【００６５】
同時更新する制御プログラムが複数ある場合、すべての制御プログラムの更新が完了するまで、すべてのＥＣＵではリプロモードが維持される。すなわち、該当する複数のＥＣＵのうち１つでも制御プログラムの更新中であると、複数のＥＣＵすべてのリプロモードが維持される。従って、同時更新所要時間が長くなるとリプロモードから通常モードへの復帰が遅れる。リプロモード中は車両１の使用ができないため、たとえばユーザが運転したいときにリプロモードが長く継続する場合など、ユーザに不都合、不利益を生じさせることになる。そこで、本実施の形態にかかるプログラム更新システムでは、複数の制御プログラムを同時更新する場合に、同時更新所要時間を短くするようにスケジューリング処理が行われる。
【００６６】
スケジューリング処理には、各更新プログラムの上記第１時間〜第３時間、および車載ネットワークのトポロジーが用いられる。各更新プログラムの各タスクに要する時間は管理サーバ５からゲートウェイ１０に渡されてもよい。この場合、管理サーバ５はＤＬサーバ６から更新プログラムに関する情報を得、当該情報に基づいて各タスクに要する時間を計算する。更新プログラムに関する情報は、たとえば、更新プログラムのデータサイズなどである。または、上記第１時間〜第３時間は、ＤＬサーバ６から送信された更新プログラムと、各ＥＣＵ３０から得られる情報、または予め記憶している車両１の各部の情報とを用いて、ゲートウェイ１０において計算されてもよい。ゲートウェイ１０は、ステップＳ８のスケジューリング処理によって決定された送信順序に従って、記憶部１３に保存した更新プログラムを各ＥＣＵに送信する（ステップＳ９，１１，１３）。
【００６７】
すなわち、ゲートウェイ１０は、最初に送信すると決定した更新プログラムΔ１を該当するＥＣＵ１に送信する（ステップＳ９）。
ＥＣＵ１は、受信した更新プログラムΔ１を展開して旧バージョン１．０に適用することにより、制御プログラムを旧バージョン１．０から新バージョン１．２に書き換える。書き換えが完了すると、ＥＣＵ１は、書き換えの完了通知をゲートウェイ１０に送信する（ステップＳ１０）。
【００６８】
次に、ゲートウェイ１０は、次に送信すると決定した更新プログラムΔ２を該当するＥＣＵ２に送信する（ステップＳ１１）。
ＥＣＵ２は、受信した更新プログラムΔ２を展開して旧バージョン１．３に適用することにより、制御プログラムを旧バージョン１．３から新バージョン２．０に書き換える。書き換えが完了すると、ＥＣＵ２は、書き換えの完了通知をゲートウェイ１０に送信する（ステップＳ１２）。
【００６９】
次に、ゲートウェイ１０は、次に送信すると決定した更新プログラムΔ３を該当するＥＣＵ３に送信する（ステップＳ１３）。
ＥＣＵ３は、受信した更新プログラムΔ３を展開して旧バージョン２．０に適用することにより、制御プログラムを旧バージョン２．０から新バージョン２．２に書き換える。書き換えが完了すると、ＥＣＵ３は、書き換えの完了通知をゲートウェイ１０に送信する（ステップＳ１４）。
【００７０】
なお、上記ステップＳ９，１１，１３の、複数のＥＣＵ３０それぞれに対する更新プログラムΔの送信は、上記したように、ステップＳ８のスケジューリング処理によって決定された送信順序に従って行われる。決定された送信順序は、必ずしも複数のＥＣＵ３０１つずつに送信することのみではない。つまり、複数のＥＣＵ３０に同時にそれぞれの更新プログラムΔを送信する送信順序も決定され得る。すなわち、上記ステップＳ９，１１，１３はこの順に実行されることを意味するものではなく、それぞれの処理が、規定された送信順序で行われ、その規定された送信順序によっては同時に実行される場合もあり得る。
【００７１】
ゲートウェイ１０は、すべてのＥＣＵ１〜３から書き換えの完了通知を受信すると、各ＥＣＵ１〜３に通常モード移行要求とリセット要求を送信する（ステップＳ１５）。
通常モード移行要求を受信した各ＥＣＵ１〜３は、自身の制御モードをリプロモードから通常モードに切り替え、リセット要求に応じてシステムを再起動する。これにより、各ＥＣＵ１〜３が、新バージョンの制御プログラムによりそれぞれ動作する。
【００７２】
また、ゲートウェイ１０は、書き換えの完了通知をすべてのＥＣＵ１〜３から受信すると、更新完了通知を管理サーバ５に送信する（ステップＳ１６）。
これにより、管理サーバ５は、車両１の各ＥＣＵ１〜３について、制御プログラムの更新がすべて完了したことを察知する。
【００７３】
〔スケジューリング処理〕
図６は、ステップＳ８のスケジューリング処理の流れを表したフローチャートである。図６のフローチャートに表されたスケジューリング処理は、ゲートウェイ１０のＣＰＵ１１が記憶部１３に記憶されているスケジューリング処理実行用のプログラムをＲＡＭ１２上に読み出して実行することによって実現される。このとき、図２に示されるようにＣＰＵ１１は、該プログラムを実行することによって実現される機能であるスケジューリング部１１１および更新制御部１１２を含む。ＣＰＵ１１がこれら機能を発揮することによってスケジューリング処理が実現される。図６のフローチャートに表された動作は、複数の更新プログラムをＤＬサーバ６から取得し、同時更新する制御プログラムが複数ある場合に開始される。
【００７４】
図６を参照して、ゲートウェイ１０のＣＰＵ１１は、記憶部１３に記憶されている車載ネットワークのトポロジーに基づいてゲートウェイ１０に接続されている複数のメインバスＮＷ１，ＮＷ２を特定し、それぞれに対して並行して以降のスケジューリング処理を実行する（ステップＳ１０１）。
【００７５】
はじめに、ＣＰＵ１１は、同時更新の必要性がある複数の更新プログラムそれぞれの宛先と、記憶部１３に記憶されている車載ネットワークのトポロジーとに基づいて、該複数の更新プログラムにローカルバスに属するＥＣＵ用の更新プログラムが含まれるか否かを判断する。図１の例では、ＣＰＵ１１は、該複数の更新プログラムにＥＣＵ＿ＤまたはＥＣＵ＿Ｅ用の更新プログラムが含まれるか否かを判断する。
【００７６】
同時更新の必要性がある複数の更新プログラムにローカルバスを介して接続されたＥＣＵ用の更新プログラムが含まれる場合（ステップＳ１０３でＹＥＳ）、ＣＰＵ１１は、さらに、メインバスをローカルバスに分岐する分岐ノードであるＥＣＵ（ＥＣＵ＿Ｃ）が更新プログラムの伝送を中継するための中継バッファを使用可能であるか、すなわちバッファ機能を有するか否かを判断する。中継バッファは、メインバスとローカルバスとの伝送能力（伝送速度）差を吸収するために用いられる。図１の例では、ＥＣＵ＿Ｃが中継バッファを使用可能であるか否かを判断する。
【００７７】
分岐ノードであるＥＣＵが中継バッファを使用可能である（バッファ機能を有する）場合には（ステップＳ１０５でＹＥＳ）、ローカルバスでの伝送速度を考慮せずにメインバスにて、ローカルバスに属するＥＣＵの更新プログラムを伝送することができる。この場合、ＣＰＵ１１は、ローカルバスに分岐するメインバス（ＮＷ１）での更新プログラムの伝送が排他的なもの、つまり、同時に複数の伝送のために伝送路を共有できないことを前提として、以降のスケジューリング処理を実行する（ステップＳ１０７）。なお、メインバスとローカルバスとの伝送速度差がない、または、ローカルバスでの伝送速度がメインバスでの伝送速度よりも速い場合には、分岐ノードであるＥＣＵが中継バッファを使用可能である場合と同様のスケジューリング処理を行う。具体的には、ＣＰＵ１１は、ＥＣＵ＿Ｃが中継バッファを使用可能である場合に、メインバスＮＷ１を、同時に複数の更新プログラムの伝送に共有できないものとして、以降のスケジューリング処理を行う。
【００７８】
ローカルバスでの伝送速度がメインバスでの伝送速度よりも遅く、かつ、分岐ノードであるＥＣＵが中継バッファを使用可能でない（バッファ機能を有しない）場合には（ステップＳ１０５でＮＯ）、ローカルバスでの伝送速度を考慮して、つまり、ローカルバスでの伝送速度に応じた速度でメインバスで更新プログラムを伝送する必要がある。この場合、ＣＰＵ１１は、当該メインバス（ＮＷ１）において更新プログラムを並列して伝送可能である、つまり、ローカルバスに属するＥＣＵへの更新プログラムの伝送と他の更新プログラムの伝送とが同時にメインバスを共有可能であることを前提として、以降のスケジューリング処理を実行する（ステップＳ１０９）。具体的には、ＣＰＵ１１は、ローカルバスＮＷ３での伝送速度がメインバスＮＷ１での伝送速度よりも遅く、かつ、ＥＣＵ＿Ｃが中継バッファを使用可能でない場合には、メインバスＮＷ１においては、ローカルバスＮＷ３での更新プログラムの伝送と他の更新プログラムの伝送とを並列に行うことができるものとして、以降のスケジューリング処理を行う。
【００７９】
なお、いずれのスケジューリング処理においても、あるバスでの更新プログラムの伝送が終了した時点で、当該バスに空き帯域を生じないように次の更新プログラムの伝送を開始するものとする。
【００８０】
具体的に、ＣＰＵ１１は、予め規定されている複数のスケジューリング条件それぞれに従って同時更新の必要性がある複数の制御プログラムの送信順序を決定する（ステップＳ１１１〜Ｓ１１５）。たとえば、条件Ａとして「更新時間が長い更新プログラムを優先してスケジューリングする」という条件が規定されている場合、ＣＰＵ１１は、各更新プログラムについて上記の第１時間〜第３時間の総和である更新所要時間の順に基づいて送信順序を決定する（ステップＳ１１１）。条件Ａであるスケジューリング条件に従って決定された送信順序を送信順序Ａとする。
【００８１】
条件Ｂとして「伝送時間が短い更新プログラムを優先してスケジューリングする」という条件が規定されている場合、ＣＰＵ１１は、各更新プログラムについて上記第１時間の順に基づいて送信順序を決定する（ステップＳ１１３）。条件Ｂであるスケジューリング条件に従って決定された送信順序を送信順序Ｂとする。
【００８２】
条件Ｃとして「ＥＣＵに付与された識別情報（たとえば名前やＩＤ等）順でスケジューリングする」という条件が規定されている場合、ＣＰＵ１１は、各更新プログラムについて、当該更新プログラムの該当するＥＣＵのたとえば名前順に基づいて送信順序を決定する（ステップＳ１１５）。条件Ｃであるスケジューリング条件に従って決定された送信順序を送信順序Ｃとする。
【００８３】
ＣＰＵ１１は、予め規定されている複数のスケジューリング条件（条件Ａ〜Ｃ）それぞれに従ってスケジューリング処理を実行し、送信順序を決定した後に、その結果（送信順序Ａ〜Ｃ）を比較して、同時更新所要期間が最も短い送信順序をこれら複数の更新プログラムの送信順序とする（ステップＳ１１７）。ＣＰＵ１１は、以上のスケジューリング処理をメインバスＮＷ１，ＮＷ２それぞれに対して並行して実行して（ステップＳ１１９）、ステップＳ８の一連の処理を終了する。
【００８４】
ステップＳ８で以上のスケジューリング処理を実行した後、ステップＳ９，１１，１３でＣＰＵ１１は、決定した送信順序にて更新プログラムを各ＥＣＵに送信して更新を指示する、更新制御を実行する。上記のスケジューリング処理および更新制御を実行するために、ＣＰＵ１１は、スケジューリング部１１１および更新制御部１１２を含む（図２）。これらは、ＣＰＵ１１が記憶部１３に記憶されているプログラムを読み出してＲＡＭ１２上で実行することによってＣＰＵ１１において実現される機能である。
【００８５】
〔スケジューリング処理の具体例１〕
図７は、同時更新の必要性がある複数の更新プログラムの第１の具体例を表した図である。図７を参照して、第１の例において、第１の更新プログラムΔ１はＥＣＵ＿Ａ用の更新プログラムであって、第１のメインバスＮＷ１でＥＣＵ＿Ａに伝送されて（第１のタスク）、ＥＣＵ＿Ａにおいて更新ファイルのチェックが実行され（第２のタスク）、ＥＣＵ＿Ａで制御プログラムが書き換えられる（第３のタスク）。第１時間〜第３時間は、３０［ｓ（秒）］、１０［ｓ］および３０［ｓ］である。第２の更新プログラムΔ２はＥＣＵ＿Ｆ用の更新プログラムであって、第２のメインバスＮＷ２でＥＣＵ＿Ｆに伝送されて（第１のタスク）、ＥＣＵ＿Ｆにおいて更新ファイルのチェックが実行され（第２のタスク）、ＥＣＵ＿Ｆで制御プログラムが書き換えられる（第３のタスク）。第１時間〜第３時間は、１０［ｓ］、１０［ｓ］および３０［ｓ］である。第３の更新プログラムΔ３はＥＣＵ＿Ｄ用の更新プログラムであって、第１のメインバスＮＷ１でＥＣＵ＿Ｃまで伝送され、ＥＣＵ＿Ｃを介してローカルバスＮＷ３でＥＣＵ＿Ｄに伝送されて（第１のタスク）、ＥＣＵ＿Ｄにおいて更新ファイルのチェックが実行され（第２のタスク）、ＥＣＵ＿Ｄで制御プログラムが書き換えられる（第３のタスク）。第１時間〜第３時間は、６０［ｓ］、１０［ｓ］および３０［ｓ］である。なお、更新プログラムΔ３の伝送（第１のタスク）については、さらに、第１のメインバスＮＷ１での伝送に要する時間は３０［ｓ］およびローカルバスＮＷ３での伝送に要する時間は３０［ｓ］である。また、メインバスＮＷ１からローカルバスＮＷ３への伝送を中継するＥＣＵ＿Ｃは中継バッファを使用可能であって、メインバスＮＷ１からローカルバスＮＷ３への伝送の中継時間が１０［ｓ］である。
【００８６】
同時更新の必要性がある複数の更新プログラムΔ１〜Δ３が図７のものである場合、ゲートウェイ１０のＣＰＵ１１は、上記ステップＳ１０３でＹＥＳ、かつステップＳ１０７でＹＥＳと判断する。そのため、メインバスＮＷ１での更新プログラムの伝送が排他的なものであることを前提として（ステップＳ１０７）、予め規定されている各スケジューリング条件（条件Ａ〜Ｃ）それぞれを用いたスケジューリング処理を実行する。
【００８７】
図８は、ステップＳ８のスケジューリング処理を行わない場合の更新スケジュール（Ａ）と、スケジューリング処理を行った場合の更新スケジュール（Ｂ）とを比較して示した図である。横軸は時間［ｓ］を表して、（Ａ），（Ｂ）の１ブロックが１０［ｓ］を表している。
【００８８】
はじめに（Ａ）を参照して、一例として、ＣＰＵ１１が、更新プログラムの順（Δ１→Δ２→Δ３）に１プログラムずつ更新処理が完了するように更新制御を行った場合、同時更新所要時間は各ＥＣＵでの更新所要時間を加えた時間、つまり、図７に示された各タスクに要する時間を加えた時間である２３０［ｓ］となる。
【００８９】
これに対して、ステップＳ８のスケジュール処理が実行されると、メインバスＮＷ１についてはローカルバスＮＷ３で（分岐して）伝送する更新プログラムΔ３の伝送をローカルバスＮＷ３を用いない（分岐しない）更新プログラムΔ１よりも優先し、更新プログラムΔ３，Δ１を連続してメインバスＮＷ１で伝送するよう送信順序が決定される。また、メインバスＮＷ１と並列して伝送可能なメインバスＮＷ２についてはメインバスＮＷ１での更新プログラムの伝送と並行して更新プログラムΔ２を伝送するよう送信順序が決定される（Ｂ）。これは、車載ネットワークのトポロジーに基づいて、独立するメインバスＮＷ１，ＮＷ２に並行して更新プログラムを伝送し、同一のメインバスについては複数の更新プログラム１つずつ順に伝送せざるを得ないためである。このため、ローカルバスに分岐するメインバス（ＮＷ１）については、さらにローカルバス（ＮＷ３）に分岐して伝送する更新プログラムを先に伝送する。これにより、ローカルバス（ＮＷ３）に分岐して伝送しない更新プログラムのメインバスでの伝送と、ローカルバス（ＮＷ３）での更新プログラムの伝送とを並行して行わせることができる。このようにすることで、同時更新所要時間のうちの伝送に要する時間を、複数の更新プログラムそれぞれの第１時間の合計よりも短くすることができ、その結果、同時更新所要時間を短くすることができる。なお、伝送（第１のタスク）に続く更新ファイルのチェック（第２のタスク）およびアップデート（第３のタスク）は、伝送終了後に連続して実行される。これは、以降のスケジューリング処理の具体例でも同じとする。
【００９０】
同時更新の必要性がある複数の更新プログラムΔ１〜Δ３が図７の場合、ＣＰＵ１１がステップＳ８のスケジューリング処理を実行して図８の（Ｂ）に表されたスケジュールを決定することによって、同時更新所要時間は２３０［ｓ］から１１０［ｓ］に大幅に短縮される。
【００９１】
〔スケジューリング処理の具体例２〕
図９は、同時更新の必要性がある更新プログラムの第２の具体例を表した図である。図９を参照して、第２の例において、第１の更新プログラムΔ１はＥＣＵ＿Ａ用の更新プログラムであって、第１のメインバスＮＷ１でＥＣＵ＿Ａに伝送されて（第１のタスク）、ＥＣＵ＿Ａにおいて更新ファイルのチェックが実行され（第２のタスク）、ＥＣＵ＿Ａで制御プログラムが書き換えされる（第３のタスク）。第１時間〜第３時間は、３０［ｓ］、１０［ｓ］および３０［ｓ］である。第２の更新プログラムΔ２はＥＣＵ＿Ｆ用の更新プログラムであって、第２のメインバスＮＷ２でＥＣＵ＿Ｆに伝送されて（第１のタスク）、ＥＣＵ＿Ｆにおいて更新ファイルのチェックが実行され（第２のタスク）、ＥＣＵ＿Ｆで制御プログラムが書き換えされる（第３のタスク）。第１時間〜第３時間は、１０［ｓ］、１０［ｓ］および３０［ｓ］である。第３の更新プログラムΔ３はＥＣＵ＿Ｄ用の更新プログラムであって、第１のメインバスＮＷ１でＥＣＵ＿Ｃまで伝送され、ＥＣＵ＿Ｃを介してローカルバスＮＷ３でＥＣＵ＿Ｄに伝送されて（第１のタスク）、ＥＣＵ＿Ｄにおいて更新ファイルのチェックが実行され（第２のタスク）、ＥＣＵ＿Ｄで制御プログラムが書き換えられる（第３のタスク）。第１時間〜第３時間は、１２０［ｓ］、１０［ｓ］および２０［ｓ］である。なお、第２の例では、メインバスＮＷ１からローカルバスＮＷ３への伝送を中継するＥＣＵ＿Ｃは中継バッファを使用不可である（バッファ機能を有さない）。そのため、ＥＣＵ＿Ｄ用の更新プログラムΔ３の伝送においては、ローカルバスＮＷ３での伝送速度と同じ速度で第１のメインバスＮＷ１で伝送されるため、第１のメインバスＮＷ１での伝送に要する時間が、ローカルバスＮＷ３での伝送に要する時間と同じ１２０［ｓ］となる。
【００９２】
同時更新の必要性がある複数の更新プログラムΔ１〜Δ３が図９のものである場合、ゲートウェイ１０のＣＰＵ１１は、上記ステップＳ１０３でＹＥＳ、かつステップＳ１０７でＮＯと判断する。そのため、メインバスＮＷ１においてローカルバスＮＷ３に分岐して伝送する更新プログラムに関しては他の更新プログラムを並列して伝送可能であることを前提として（ステップＳ１０９）、予め規定されている各スケジューリング条件（条件Ａ〜Ｃ）を用いたスケジューリング処理を実行する。
【００９３】
図１０は、ステップＳ８のスケジューリング処理を行わない場合の更新スケジュール（Ａ）と、スケジューリング処理を行った場合の更新スケジュール（Ｂ）とを比較して示した図である。横軸は時間［ｓ］を表して、（Ａ），（Ｂ）の１ブロックが１０［ｓ］を表している。
【００９４】
はじめに（Ａ）を参照して、一例として、ＣＰＵ１１が、更新プログラムの順（Δ１→Δ２→Δ３）に１プログラムずつ更新処理が完了するように更新制御を行った場合、同時更新所要時間は各ＥＣＵでの更新所要時間を加えた時間、つまり、図９に示された各タスクに要する時間を加えた時間である２７０［ｓ］となる。
【００９５】
これに対して、ステップＳ８のスケジュール処理が実行されると、メインバスＮＷ１についてはローカルバスＮＷ３に分岐して伝送する更新プログラムΔ３の伝送を優先する。また、メインバスＮＷ１と並列して伝送可能なメインバスＮＷ２についてはメインバスＮＷ１での更新プログラムの伝送と並行して更新プログラムΔ２を伝送するよう送信順序が決定される。これらは、図８に示されたスケジューリング処理の第１の具体例でのスケジューリング処理と同じ思想に基づく。さらに、メインバスＮＷ１については、更新プログラムΔ３の伝送と並行して更新プログラムΔ１を伝送するよう送信順序が決定される（Ｂ）。これは、メインバスＮＷ１で更新プログラムΔ３を伝送する際に、ローカルバスＮＷ３の伝送速度にあわせた伝送速度あるいは伝送タイミングとすることにより、伝送路であるメインバスＮＷ１に生じた空き帯域を更新プログラムΔ１の伝送に用いるようにしたためである。この場合、更新プログラムΔ１の伝送には、更新プログラムΔ３がメインバスＮＷ１で伝送される際のメインバスＮＷ１の空き帯域が用いられる。つまり、メインバスＮＷ１の伝送帯域を更新プログラムΔ１と更新プログラムΔ３とで共有することになる。そのため、通常であれば更新プログラムΔ１の伝送は３０［ｓ］で完了するところ、更新プログラムΔ３と共有によって伝送帯域が半減するために６０［ｓ］が必要となる。このようにすることで、同時更新所要時間のうちの伝送に要する時間を、複数の更新プログラムそれぞれの伝送に要する時間の合計よりも短くすることができ、その結果、同時更新所要時間を短くすることができる。
【００９６】
同時更新の必要性がある複数の更新プログラムΔ１〜Δ３が図９の場合、ＣＰＵ１１がステップＳ８のスケジューリング処理を実行して図１０の（Ｂ）に表されたスケジュールを決定することによって、同時更新所要時間は２７０［ｓ］から１５０［ｓ］に大幅に短縮される。
【００９７】
〔スケジューリング処理の具体例３〕
図１１は、同時更新の必要性がある更新プログラムの第３の具体例を表した図である。図１１を参照して、第３の例において、第１の更新プログラムΔ１はＥＣＵ＿Ａ用の更新プログラムであって、第１のメインバスＮＷ１でＥＣＵ＿Ａに伝送されて（第１のタスク）、ＥＣＵ＿Ａにおいて更新ファイルのチェックが実行され（第２のタスク）、ＥＣＵ＿Ａで制御プログラムが書き換えられる（第３のタスク）。第１時間〜第３時間は、３０［ｓ］、２０［ｓ］および４０［ｓ］である。第２の更新プログラムΔ２はＥＣＵ＿Ｂ用の更新プログラムであって、第１のメインバスＮＷ１でＥＣＵ＿Ｂに伝送されて（第１のタスク）、ＥＣＵ＿Ｂにおいて更新ファイルのチェックが実行され（第２のタスク）、ＥＣＵ＿Ｂで制御プログラムが書き換えられる（第３のタスク）。第１時間〜第３時間は、１０［ｓ］、１０［ｓ］および２０［ｓ］である。第３の更新プログラムΔ３はＥＣＵ＿Ｃ用の更新プログラムであって、第１のメインバスＮＷ１でＥＣＵ＿Ｃに伝送されて（第１のタスク）、ＥＣＵ＿Ｃにおいて更新ファイルのチェックが実行され（第２のタスク）、ＥＣＵ＿Ｃで制御プログラムが書き換えられる（第３のタスク）。第１時間〜第３時間は、２０［ｓ］、１０［ｓ］および５０［ｓ］である。すなわち、これら複数の更新プログラムΔ１〜Δ３は、すべて、第１のメインバスＮＷ１に属するＥＣＵ用であって、メインバスＮＷ１のみで各ＥＣＵに伝送される。
【００９８】
同時更新の必要性がある複数の更新プログラムΔ１〜Δ３が図１１のものである場合、ゲートウェイ１０のＣＰＵ１１は、上記ステップＳ１０３でＮＯと判断するため、上記ステップＳ１０７，Ｓ１０９のいずれも前提とせずに予め規定されている各スケジューリング条件（条件Ａ〜Ｃ）を用いたスケジューリング処理を実行する。
【００９９】
図１２は、ステップＳ８のスケジューリング処理を行わない場合の更新スケジュール（Ａ）と、上記の条件Ａ〜Ｃそれぞれに従ったスケジューリング処理を行った場合の更新スケジュール（Ｂ）〜（Ｄ）とを比較して示した図である。横軸は時間［ｓ］を表して、（Ａ）〜（Ｄ）の１ブロックが１０［ｓ］を表している。
【０１００】
はじめに（Ａ）を参照して、一例として、ＣＰＵ１１が、更新プログラムの順（Δ１→Δ２→Δ３）に１プログラムずつ更新処理が完了するように更新制御を行った場合、同時更新所要時間は各ＥＣＵでの更新所要時間を加えた時間、つまり、図１１に示された各タスクに要する時間を加えた時間である２１０［ｓ］となる。
【０１０１】
これに対して、上記条件Ａに従ってスケジューリング処理が実行されると、第３時間の長い順（Δ３→Δ１→Δ２）に、これら更新プログラムを連続してメインバスＮＷ１で伝送するよう送信順序Ａが決定される（Ｂ）。なお、上記条件Ａを、「受信したＥＣＵでの処理時間が長い更新プログラムを優先してスケジューリングする」と解釈することもできる。受信したＥＣＵでの処理は、更新ファイルのチェック（第２のタスク）および制御プログラムの書き換え（第３のタスク）である。上記解釈を採用すると、送信順序Ａは、これらタスクに要する時間である第２時間と第３時間との合計時間の長い順（Δ１→Δ３→Δ２）に決定されてもよい。この場合、他の更新プログラムが該当するＥＣＵにおいて更新ファイルのチェック（第２のタスク）および制御プログラムの書き換え（第３のタスク）が行われている間に並行してメインバスＮＷ１で伝送されることになる。そして、条件Ａの場合には、第３時間、または第２時間と第３時間との合計時間の長いものほど先に第２のタスクおよび第３のタスクが開始されることになるため、最後の更新プログラムを用いた制御プログラムの更新の完了が早くなる可能性が高い。図１２（Ｂ）の送信順序Ａの場合、同時更新所要時間は１１０［ｓ］となる。
【０１０２】
上記条件Ｂに従ってスケジューリング処理が実行されると、第１時間の短い順（Δ２→Δ３→Δ１）に、これら更新プログラムを連続してメインバスＮＷ１で伝送するよう送信順序Ｂが決定される（Ｃ）。この場合もまた、他の更新プログラムが該当するＥＣＵにおいて更新ファイルのチェック（第２のタスク）および制御プログラムの書き換え（第３のタスク）が行われている間に並行してメインバスＮＷ１で伝送されることになる。そして、条件Ｂの場合には、各更新プログラムについて、伝送（第１のタスク）の後に第２のタスクの開始を最も早くすることができる。図１２（Ｃ）の送信順序Ｂの場合、同時更新所要時間は１２０［ｓ］となる。
【０１０３】
上記条件Ｃに従ってスケジューリング処理が実行されると、対応するＥＣＵの名前順（Δ１→Δ２→Δ３）に、これら更新プログラムを連続してメインバスＮＷ１で伝送するよう送信順序Ｃが決定される（Ｄ）。この場合もまた、他の更新プログラムが該当するＥＣＵにおいて更新ファイルのチェック（第２のタスク）および制御プログラムの書き換え（第３のタスク）が行われている間に並行してメインバスＮＷ１で伝送されることになる。図１２（Ｄ）の送信順序Ｃの場合、同時更新所要時間は１２０［ｓ］となる。
【０１０４】
以上のスケジューリング処理の結果、同時更新の必要性がある複数の更新プログラムΔ１〜Δ３が図１１の場合、上記送信順序Ａ〜Ｃのうちの同時更新所要時間が最も短くなるスケジュール条件は条件Ａであるため、ゲートウェイ１０はステップＳ８で図１２の（Ｂ）に表された送信順序Ａを更新プログラムΔ１〜Δ３の送信順序として決定する。これによって、同時更新所要時間は２１０［ｓ］から１１０［ｓ］に大幅に短縮される。
【０１０５】
＜第１の実施の形態の効果＞
第１の実施の形態にかかるプログラム更新システムによれば、複数のＥＣＵそれぞれの制御プログラムを同時更新する場合に、更新プログラムを提供する車外装置であるＤＬサーバ６からＥＣＵ３０への更新プログラムの送信を中継する中継装置であるゲートウェイ１０において、複数の更新プログラムの送信順序を決定するスケジューリング処理が実行される。
【０１０６】
同時更新する必要性がある複数の更新プログラムに、ゲートウェイ１０に個別に接続された互いに独立する車載ネットワークそれぞれに属するＥＣＵ用の更新プログラムが含まれる場合、ゲートウェイ１０は、これら更新プログラムをメインバス（ＮＷ１，ＮＷ２）に並行して送信する。
【０１０７】
また、同一の車載ネットワークに属する複数のＥＣＵ用の複数の更新プログラムが含まれる場合、ゲートウェイ１０は、予め規定された所定の条件（複数のスケジューリング条件）それぞれに従ってスケジューリング処理を実行する。そして、その結果得られた複数の送信順序のうちの同時更新所要時間を最も短くする送信順序をこれら複数の更新プログラムの送信順序として決定する。たとえば、同一のメインバス（ＮＷ１）で伝送される更新プログラムが複数あり、かつ、その複数の更新プログラムにさらにローカルバスに分岐して伝送されるものが含まれる場合、ゲートウェイ１０は、メインバスに属するＥＣＵに伝送する更新プログラムよりも、当該メインバスに属するＥＣＵを分岐ノードとしてローカルバスに属するＥＣＵに伝送する更新プログラムを優先的に送信する。このとき、ゲートウェイ１０は、分岐ノードであるＥＣＵがバッファ機能を有するか否かに応じて、上記同一のメインバス（ＮＷ１）での更新プログラムの伝送を排他的とするか並列可能とするかのいずれかを前提とする。
これにより、同時更新所要時間を短くすることができる。
【０１０８】
同時更新する複数の制御プログラムの更新処理中は該当するすべてのＥＣＵがリプロモードとなり、すべての更新処理が完了して再起動されるまで通常モードに復帰しない。そのため、同時更新所要期間が長くなるほど、たとえば運転したいタイミングで運転できないなどユーザの不都合、不利益がより生じやすくなる。したがって、上記のようにゲートウェイ１０においてスケジューリング処理が実行されて同時更新所要期間を最も早く終了させる送信順序が決定されることによって、ユーザに生じる不都合、不利益を抑えることができる。
【０１０９】
＜第２の実施の形態＞
なお、上記したスケジューリング処理は、ＤＬサーバ６からＥＣＵ３０へ送信される更新プログラムを中継するいずれの中継装置で行われてもよい。たとえば、ＤＬサーバ６からＥＣＵ３０へ送信される更新プログラムが、ゲートウェイ１０に加えて、図１に示されていないさらなる中継装置によって中継される場合、当該さらなる中継装置において上記のスケジューリング処理が実行されてもよい。または、ゲートウェイ１０と当該さらなる中継装置との協働によってスケジューリング処理が実現されてもよい。
【０１１０】
また、図５に表されたように、ＤＬサーバ６からＥＣＵ３０へ更新プログラムが伝送される際に、管理サーバ５がゲートウェイ１０にダウンロードを要求し（ステップＳ３）、当該要求に従ってゲートウェイ１０がＤＬサーバ６に更新プログラムを要求することによって、ＤＬサーバ６からゲートウェイ１０に更新プログラムが送信される（ステップＳ４）。そして、管理サーバ５がゲートウェイ１０に各ＥＣＵ３０での更新を要求し（ステップＳ６）、当該要求に従ってゲートウェイ１０が各ＥＣＵ３０に更新を要求することによって、ゲートウェイ１０からＥＣＵ３０に更新プログラムが伝送されて制御プログラムが更新される（ステップＳ７，９，１１，１３）。従って、この流れに従うと、管理サーバ５もＤＬサーバ６からＥＣＵ３０への更新プログラムの伝送を中継する中継装置の一部として機能していると言える。
【０１１１】
従って、上記したスケジューリング処理は、中継装置の一種と言える管理サーバ５において実行され、上記ステップＳ４で更新プログラムと共に決定された送信順序を示す情報がゲートウェイ１０に送信されてもよい。あるいは、上記のように管理サーバ５とＤＬサーバ６とは同一のサーバ装置で実現されてもよいため、サーバ５，６の機能を有するサーバにおいてスケジューリング処理が実行されてもよい。この場合、上記のスケジューリング処理を実行するための機能であるスケジューリング部１１１および更新処理部１１２（図２）は、管理サーバ５のＣＰＵ５１がＲＯＭ５２に記憶されているプログラムをＲＡＭ５３上に読み出して実行することによってＣＰＵ５１によって実現される。すなわち、管理サーバ５は、更新プログラムまたは上記の更新プログラムに関する情報をＤＬサーバ６から得て、記憶部５４に記憶する。管理サーバ５のスケジューリング部１１１は、記憶部５４に記憶された更新プログラムに関する情報を用いてスケジューリング処理を行う。更新処理部１１２は、スケジューリング部１１１によって決定された送信順序をゲートウェイ１０に渡してＥＣＵ３０での更新処理を要求する。ゲートウェイ１０の更新処理部１１２は、管理サーバ５から渡された送信順序で更新プログラムを送信して各ＥＣＵ３０に更新処理を要求することによって、同時更新での更新処理を制御する。
【０１１２】
第２の実施の形態にかかるプログラム更新システムにおいても、同時更新の必要性がある更新プログラムが複数ある場合に同時更新所要時間を短くすることができる。これによりユーザに生じる不都合、不利益を抑えることができる。
【０１１３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１４】
１  車両
２  広域通信網
５  管理サーバ（中継装置）
６  ＤＬサーバ
１０  ゲートウェイ（中継装置）
１１  ＣＰＵ
１２  ＲＡＭ
１３  記憶部
１４  車内通信部
１５  無線通信部
３０  ＥＣＵ（制御装置）
３１  ＣＰＵ
３２  ＲＡＭ
３３  記憶部
３４  通信部
３５  起動部
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  記憶部
５５  通信部
ＮＷ１〜ＮＷ３  バス（車載ネットワーク）
１１１  スケジューリング部
１１２  更新制御部
【図１】
2018181377.tif 000003
【図２】
2018181377.tif 000004
【図３】
2018181377.tif 000005
【図４】
2018181377.tif 000006
【図５】
2018181377.tif 000007
【図６】
2018181377.tif 000008
【図７】
2018181377.tif 000009
【図８】
2018181377.tif 000010
【図９】
2018181377.tif 000011
【図１０】
2018181377.tif 000012
【図１１】
2018181377.tif 000013
【図１２】
2018181377.tif 000014
【手続補正書】
【提出日】平成30年8月23日(2018.8.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
車載ネットワークに属する複数の制御装置と通信する中継装置であって、
複数の前記制御装置のそれぞれに対して、互いに重複したタイミングで適用されるべき複数の更新プログラムと、前記車載ネットワークのトポロジーとを記憶する記憶部と、
複数の前記更新プログラムを対応する前記制御装置にそれぞれ送信する車内通信部と、
自装置に個別に接続された互いに独立する複数の前記車載ネットワークに属する前記制御装置に対して、それぞれの前記制御装置に対応する複数の前記更新プログラムを、前記トポロジーに基づき並行して送信するように前記車内通信部を制御する制御部と、を備え、
前記制御部は、１つの前記車載ネットワークに、自装置に直接接続されたメインネットワークと、前記メインネットワークに接続された前記制御装置を分岐ノードとして前記メインネットワークから分岐するローカルネットワークとが含まれる場合は、前記ローカルネットワークに接続された前記制御装置に対する第１更新プログラムの前記ローカルネットワークでの伝送と並行して、前記メインネットワークに接続された前記制御装置に対する第２更新プログラムを前記メインネットワークで送信させ、
前記第１更新プログラムと前記第２更新プログラムとは互いに異なる更新プログラムである、
中継装置。
【請求項２】
前記制御部は、所定の条件に従って複数の前記更新プログラムの送信順序を決定する、請求項１に記載の中継装置。
【請求項３】
前記所定の条件は、各前記制御装置での、下記の第１時間〜第３時間を含む更新所要時間の組み合わせである同時更新所要時間を最も短くするスケジューリング条件よりなり、
前記同時更新所要時間は、前記複数の更新プログラムのうちの最初に前記制御装置に伝送される更新プログラムについての前記第１時間の開始時から、前記複数の更新プログラムの最後に制御プログラムの書き換えが終了する更新プログラムについての前記第３時間の終了時までの時間である、請求項２に記載の中継装置。
第１時間：更新プログラムの伝送時間
第２時間：更新プログラムのチェックに要する時間
第３時間：更新プログラムを用いた制御プログラムの書き換えに要する時間
【請求項４】
前記スケジューリング条件には、
バス型トポロジーである１つの前記車載ネットワークに含まれる複数の前記制御装置について、前記第３時間が長い前記制御装置ほど前記更新プログラムの送信順序を早めることが含まれる、請求項３に記載の中継装置。
【請求項５】
前記スケジューリング条件には、
バス型トポロジーである１つの前記車載ネットワークに含まれる複数の前記制御装置について、前記第１時間が短い前記制御装置ほど前記更新プログラムの送信順序を早めることが含まれる、請求項３または請求項４に記載の中継装置。
【請求項６】
前記スケジューリング条件には、
バス型トポロジーである１つの前記車載ネットワークに含まれる複数の前記制御装置について、前記制御装置に付与された識別情報に基づいて送信順序を決定することが含まれる、請求項３〜請求項５のいずれか１項に記載の中継装置。
【請求項７】
前記スケジューリング条件には、前記ローカルネットワークに接続された前記制御装置への送信順序を、前記メインネットワークに接続された前記制御装置の送信順序よりも早めることが含まれる、請求項３〜請求項６のいずれか１項に記載の中継装置。
【請求項８】
前記制御部は、前記分岐ノードが、前記メインネットワークから前記ローカルネットワークへの前記第１更新プログラムの伝送を中継するためのバッファ機能を有するか否か応じて、前記メインネットワークの伝送速度を決定する、請求項７に記載の中継装置。
【請求項９】
前記分岐ノードは、前記メインネットワークから前記ローカルネットワークへの前記第１更新プログラムの伝送を中継するためのバッファ機能を有する、
請求項１〜請求項８のいずれか１項に記載の中継装置。
【請求項１０】
車載ネットワークに属する複数の制御装置と、前記複数の制御装置と通信する中継装置と、を含むプログラム更新システムであって、
前記中継装置は、
複数の前記制御装置のそれぞれに対して、互いに重複したタイミングで適用されるべき複数の更新プログラムと、前記車載ネットワークのトポロジーとを記憶する記憶部と、
複数の前記更新プログラムを対応する前記制御装置にそれぞれ送信する車内通信部と、
自装置に個別に接続された互いに独立する複数の前記車載ネットワークに属する前記制御装置に対して、それぞれの前記制御装置に対応する複数の前記更新プログラムを、前記トポロジーに基づき並行して送信するように前記車内通信部を制御する制御部と、を備え、
前記制御部は、１つの前記車載ネットワークに、自装置に直接接続されたメインネットワークと、前記メインネットワークに接続された前記制御装置を分岐ノードとして前記メインネットワークから分岐するローカルネットワークとが含まれる場合は、前記ローカルネットワークに接続された前記制御装置に対する第１更新プログラムの前記ローカルネットワークでの伝送と並行して、前記メインネットワークに接続された前記制御装置に対する第２更新プログラムを前記メインネットワークで送信させ、
前記第１更新プログラムと前記第２更新プログラムとは互いに異なる更新プログラムである、
プログラム更新システム。
【請求項１１】
車載ネットワークに属する複数の制御装置と通信する中継装置が実行するプログラム更新方法であって、
複数の前記制御装置のそれぞれに対して、互いに重複したタイミングで適用されるべき複数の更新プログラムと、前記車載ネットワークのトポロジーとを記憶するステップと、
複数の前記更新プログラムを対応する前記制御装置にそれぞれ送信するステップと、を含み、
前記送信するステップは、前記中継装置に個別に接続された互いに独立する複数の前記車載ネットワークに属する前記制御装置に対して、それぞれの前記制御装置に対応する複数の前記更新プログラムを、前記トポロジーに基づき並行して送信することを含み、
前記送信するステップは、１つの前記車載ネットワークに、自装置に直接接続されたメインネットワークと、前記メインネットワークに接続された前記制御装置を分岐ノードとして前記メインネットワークから分岐するローカルネットワークとが含まれる場合は、前記ローカルネットワークに接続された前記制御装置に対する第１更新プログラムの前記ローカルネットワークでの伝送と並行して、前記メインネットワークに接続された前記制御装置に対する第２更新プログラムを前記メインネットワークで送信することを含み、
前記第１更新プログラムと前記第２更新プログラムとは互いに異なる更新プログラムである、
プログラム更新方法。