(57)【要約】【課題】更新プログラムを複数の車両に配信する際のサーバの処理負荷を抑えつつ、該複数の車両に確実に更新プログラムを配信できるプログラム配信システムを提供する。【解決手段】車両に搭載された対象機器を制御する車載制御装置であるＥＣＵの更新プログラムを、複数の車両それぞれのゲートウェイ１０Ａ〜１０Ｃに対して配信する際に、更新プログラムのダウンロードを制御する管理サーバ５はスケジューリング処理を実行し（ステップＳ２）、複数のゲートウェイに対して、更新プログラムのダウンロード処理の優先順位を決定する。そして、管理サーバは、決定された優先順位に従ってダウンロード処理を開始する（Ｓ３Ａ〜３Ｃ）。【選択図】図５
2018005894.tif 000002
【特許請求の範囲】
【請求項１】
車載機器を制御する車載制御装置を搭載した車両において、前記車載制御装置と車内通信回線で接続されて、車外装置と前記車載制御装置との通信を中継する中継装置と、
サーバから前記中継装置に対する、前記車載制御装置の更新プログラムのダウンロードを制御する制御装置と、を備え、
前記制御装置は、
複数の車両それぞれの前記中継装置に対して、前記更新プログラムのダウンロード処理の優先順位を決定する処理部と、
決定された前記優先順位に従って前記ダウンロード処理を開始するダウンロード制御部と、を含む、プログラム配信システム。
【請求項２】
前記処理部は、前記複数の車両それぞれの走行履歴に基づいて予測される走行パターンに基づいて前記優先順位を決定する、請求項１に記載のプログラム配信システム。
【請求項３】
前記処理部は、前記複数の車両それぞれの利用状況に基づいて前記優先順位を決定する、請求項１に記載のプログラム配信システム。
【請求項４】
前記利用状況は、当該車両の利用頻度、前記車載制御装置の制御プログラムのバージョン、および前記車載機器についての設定のうちの少なくとも１つを含む、請求項３に記載のプログラム配信システム。
【請求項５】
前記処理部は、複数の前記中継装置それぞれと前記サーバとの通信状態を示す通信指標に基づいて前記優先順位を決定する、請求項１に記載のプログラム配信システム。
【請求項６】
前記処理部は、前記更新プログラムのダウンロード期間中における前記車両の通信状態に基づいて前記優先順位を決定する、請求項５に記載のプログラム配信システム。
【請求項７】
前記処理部は、複数の前記中継装置それぞれと前記サーバとの通信状態に相関する相関情報に基づいて前記優先順位を決定する、請求項１に記載のプログラム配信システム。
【請求項８】
前記処理部は、前記複数の車両それぞれについて予め設定されている属性に基づいて前記優先順位を決定する、請求項１に記載のプログラム配信システム。
【請求項９】
前記処理部は、前記複数の車両それぞれに搭載されている前記車載制御装置および／または前記中継装置の属性に基づいて前記優先順位を決定する、請求項１に記載のプログラム配信システム。
【請求項１０】
前記処理部は、前記複数の車両それぞれの走行履歴に基づいて予測される走行パターンをスケジューリング条件として用いて前記優先順位を決定する、請求項１に記載のプログラム配信システム。
【請求項１１】
前記ダウンロードは、前記車載制御装置が起動中に実行可能であって、
前記中継装置は、
前記サーバから前記ダウンロードのスケジュールの通知を受信する通信部と、
前記スケジュールに基づいたタイミングに、前記車載制御装置を起動する処理を実行する処理部と、を含む、請求項１〜請求項１０のいずれか一項に記載のプログラム配信システム。
【請求項１２】
前記処理部は、前記更新プログラムの種別が例外的な種別ではない場合に前記優先順位を決定する、請求項１〜請求項１１のいずれか一項に記載のプログラム配信システム。
【請求項１３】
前記例外的な種別は、前記更新プログラムの重要性や緊急性が高いことを示す種別である、請求項１２に記載のプログラム配信システム。
【請求項１４】
車載機器を制御する車載制御装置を搭載した車両において、前記車載制御装置と車内通信回線で接続されて、車外装置と前記車載制御装置との通信を中継する中継装置に対して、前記車載制御装置の更新プログラムをダウンロードするサーバであって、
複数の車両それぞれの前記中継装置に対して、前記更新プログラムのダウンロード処理の優先順位を決定する処理部と、
決定された前記優先順位に従って前記ダウンロード処理を開始するダウンロード制御部と、を含む、サーバ。
【請求項１５】
前記処理部は、前記優先順位に基づいて前記中継装置に対する前記ダウンロードのスケジュールを決定し、
前記スケジュールを前記中継装置に通知する通信部をさらに備える、請求項１４に記載のサーバ。
【請求項１６】
車両に搭載された対象機器を制御する車載制御装置の更新プログラムを、複数の車両に対して配信する方法であって、
複数の車両に対して、前記更新プログラムのダウンロード処理の優先順位を決定するステップと、
決定された前記優先順位に従って前記ダウンロード処理を開始するダウンロード制御部と、を備える、プログラム配信方法。
【請求項１７】
複数の車両に対する、前記複数の車両それぞれに搭載された対象機器を制御する車載制御装置の更新プログラムのダウンロードを制御する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、前記コンピュータを、
複数の車両それぞれの前記中継装置に対して、前記更新プログラムのダウンロード処理の優先順位を決定する処理部、および
決定された前記優先順位に従って前記ダウンロード処理を開始するダウンロード制御部、として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はプログラム配信システム、サーバ、プログラム配信方法、およびコンピュータプログラムに関し、特に、車載制御装置の更新プログラムを、複数の車両に対して配信するプログラム配信システム、サーバ、プログラム配信方法、およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、自動車の技術分野においては、車両の高機能化が進行しており、多種多様な車載機器が車両に搭載されている。従って、車両には、各車載機器を制御するための制御装置である、所謂ＥＣＵ（Electronic  Control  Unit）が多数搭載されている。
ＥＣＵの種類には、例えば、アクセル、ブレーキ、ハンドルの操作に対してエンジンやブレーキ、ＥＰＳ（Electric  Power  Steering）等の制御を行う走行系に関わるもの、乗員によるスイッチ操作に応じて車内照明やヘッドライトの点灯／消灯と警報器の吹鳴等の制御を行うボディ系ＥＣＵ、運転席近傍に配設されるメータ類の動作を制御するメータ系ＥＣＵなどがある。
【０００３】
一般的にＥＣＵは、マイクロコンピュータ等の演算処理装置によって構成されており、ＲＯＭ（Read  Only  Memory）に記憶した制御プログラムを読み出して実行することにより、車載機器の制御が実現される。
ＥＣＵの制御プログラムは、車両の仕向け地やグレードなど応じて異なることがあり、制御プログラムのバージョンアップに対応して、旧バージョンの制御プログラムを新バージョンの制御プログラムに書き換える必要がある。
【０００４】
たとえば、特許文献１には、車載通信機などのゲートウェイが管理サーバから更新プログラムを受信し、受信した更新プログラム用いてＥＣＵが制御プログラムを旧バージョンから新バージョンに書き換えることにより、車両の各ＥＣＵに対するプログラム更新を無線通信によって遠隔で実行する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−６５８５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の開示によれば、プログラム提供装置が車両の車種に応じた車両制御プログラムを、車両の車種ごとに一括して送信するものである。しかしながら、車種によっては車両の台数が膨大な場合もあり、一括して更新プログラムを配信すると配信用のサーバの処理負荷が過大になる可能性がある。
【０００７】
本発明のある局面における目的は、更新プログラムを複数の車両に配信する際のサーバの処理負荷を抑えつつ、該複数の車両に確実に更新プログラムを配信できるプログラム配信システム、サーバ、プログラム配信方法、およびコンピュータプログラムを提供することである。
【課題を解決するための手段】
【０００８】
ある実施の形態に従うと、プログラム配信システムは、車載機器を制御する車載制御装置を搭載した車両において、車載制御装置と車内通信回線で接続されて、車外装置と車載制御装置との通信を中継する中継装置と、サーバから中継装置に対する、車載制御装置の更新プログラムのダウンロードを制御する制御装置と、を備え、制御装置は、複数の車両それぞれの中継装置に対して、更新プログラムのダウンロード処理の優先順位を決定する処理部と、決定された優先順位に従ってダウンロード処理を開始するダウンロード制御部と、を含む。
【０００９】
他の実施の形態に従うと、サーバは、車載機器を制御する車載制御装置を搭載した車両において、車載制御装置と車内通信回線で接続されて、車外装置と車載制御装置との通信を中継する中継装置に対して、車載制御装置の更新プログラムをダウンロードするサーバであって、複数の車両それぞれの中継装置に対して、更新プログラムのダウンロード処理の優先順位を決定する処理部と、決定された優先順位に従ってダウンロード処理を開始するダウンロード制御部と、を含む。
【００１０】
他の実施の形態に従うと、プログラム配信方法は車両に搭載された対象機器を制御する車載制御装置の更新プログラムを複数の車両に対して配信する方法であって、複数の車両に対して、更新プログラムのダウンロード処理の優先順位を決定するステップと、決定された優先順位に従ってダウンロード処理を開始するダウンロード制御部と、を備える。
【００１１】
他の実施の形態に従うと、コンピュータプログラムは、複数の車両に対する、複数の車両それぞれに搭載された対象機器を制御する車載制御装置の更新プログラムのダウンロードを制御する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータを、複数の車両それぞれの中継装置に対して、更新プログラムのダウンロード処理の優先順位を決定する処理部と、決定された優先順位に従ってダウンロード処理を開始するダウンロード制御部と、して機能させる。
【発明の効果】
【００１２】
この発明によると、更新プログラムを配信するサーバの処理負荷を抑えつつ、確実に更新プログラムを配信できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るプログラム更新システムの全体構成図である。
【図２】ゲートウェイの内部構成を示すブロック図である。
【図３】ＥＣＵの内部構成を示すブロック図である。
【図４】管理サーバの内部構成を示すブロック図である。
【図５】ＥＣＵの制御プログラムの更新の一例を示すシーケンス図である。
【図６】図５のステップＳ２のスケジューリング処理の流れの一例を表したフローチャートである。
【図７】管理サーバの機能構成の具体例を示したブロック図である。
【図８】車両の走行モデルの具体例の表した図である。
【図９】車両の走行モデルの具体例の表した図である。
【図１０】第５の実施の形態にかかるゲートウェイの内部構成を示すブロック図である。
【図１１】第５の実施の形態にかかるプログラム更新システムでの、ＥＣＵの制御プログラムの更新の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１４】
［実施の形態の説明］
本実施の形態には、少なくとも以下のものが含まれる。
すなわち、本実施の形態に含まれるプログラム配信システムは、車載機器を制御する車載制御装置を搭載した車両において、車載制御装置と車内通信回線で接続されて、車外装置と車載制御装置との通信を中継する中継装置と、サーバから中継装置に対する、車載制御装置の更新プログラムのダウンロードを制御する制御装置と、を備え、制御装置は、複数の車両それぞれの中継装置に対して、更新プログラムのダウンロード処理の優先順位を決定する処理部と、決定された優先順位に従ってダウンロード処理を開始するダウンロード制御部と、を含む。
この構成によれば、複数の中継装置それぞれに対してダウンロード処理の開始が一時に集中せず、決定された優先順位に従って開始される。つまり、ダウンロード処理の開始が複数の中継装置の間で分散される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置それぞれに確実に更新プログラムを配信することができる。
【００１５】
好ましくは、処理部は、複数の車両それぞれの走行履歴に基づいて予測される走行パターンに基づいて優先順位を決定する。
これにより、たとえば制御プログラムの更新に適した走行パターンほど早くダウンロード処理が開始される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置に適した順に更新プログラムを配信することができる。
【００１６】
好ましくは、処理部は、複数の車両それぞれの利用状況に基づいて優先順位を決定する。
これにより、利用状況に応じた順にダウンロード処理が開始される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置に適した順に更新プログラムを配信することができる。
【００１７】
好ましくは、利用状況は、当該車両の利用頻度、車載制御装置の制御プログラムのバージョン、および車載機器についての設定のうちの少なくとも１つを含む。
これにより、サーバの処理負荷の増大を抑えつつ、複数の中継装置に適した順に更新プログラムを配信することができる。
【００１８】
好ましくは、処理部は、複数の中継装置それぞれとサーバとの通信状態を示す通信指標に基づいて優先順位を決定する。
これにより、通信指標に基づいた順にダウンロード処理が開始される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置に適した順に更新プログラムを配信することができる。
【００１９】
好ましくは、処理部は、更新プログラムのダウンロード期間中における車両の通信状態に基づいて優先順位を決定する。
これにより、ダウンロード期間中における車両の通信状態に基づいた順にダウンロード処理が開始される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置に適した順に更新プログラムを配信することができる。
【００２０】
好ましくは、処理部は、複数の中継装置それぞれとサーバとの通信状態に相関する相関情報に基づいて優先順位を決定する。
これにより、相関情報に基づいた順にダウンロード処理が開始される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置に適した順に更新プログラムを配信することができる。
【００２１】
好ましくは、処理部は、複数の車両それぞれについて予め設定されている属性に基づいて優先順位を決定する。
これにより、車両の属性に基づいた順にダウンロード処理が開始される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置に適した順に更新プログラムを配信することができる。
【００２２】
好ましくは、処理部は、複数の車両それぞれに搭載されている車載制御装置および／または中継装置の属性に基づいて優先順位を決定する。
これにより、車両それぞれに搭載されている車載制御装置および／または中継装置の属性に基づいた順にダウンロード処理が開始される。属性に基づいた順は、たとえば、メモリの空き容量の多い順、などである。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置に適した順に更新プログラムを配信することができる。
【００２３】
好ましくは、処理部は、複数の車両それぞれの走行履歴に基づいて予測される走行パターンをスケジューリング条件として用いて優先順位を決定する。
この構成によっても、複数の車両それぞれの中継装置に対してダウンロード処理の開始が一時に集中せず、複数の中継装置の間で分散される。
【００２４】
好ましくは、ダウンロードは、車載制御装置が起動中に実行可能であって、中継装置は、サーバからダウンロードのスケジュールの通知を受信する通信部と、スケジュールに基づいたタイミングに、車載制御装置を起動する処理を実行する処理部と、を含む。
車載制御装置への更新プログラムのダウンロードのスケジュールに基づいたタイミングを、少なくともダウンロードのスケジュールより前のタイミングとすることによって、ダウンロードの開始時に車載制御装置を起動状態とすることができる。そのため、当該スケジュールに従ってダウンロードを実行することが可能になる。
【００２５】
好ましくは、処理部は、更新プログラムの種別が例外的な種別ではない場合に優先順位を決定する。
これにより、サーバの処理負荷の軽減と更新プログラムのダウンロードの必要性とを両立させることができる。
【００２６】
好ましくは、例外的な種別は、更新プログラムの重要性や緊急性が高いことを示す種別である。
これにより、サーバの処理負荷の軽減と更新プログラムの重要性や緊急性とを両立させることができる。
【００２７】
本実施の形態に含まれるサーバは、車載機器を制御する車載制御装置を搭載した車両において、車載制御装置と車内通信回線で接続されて、車外装置と車載制御装置との通信を中継する中継装置に対して、車載制御装置の更新プログラムをダウンロードするサーバであって、複数の車両それぞれの中継装置に対して、更新プログラムのダウンロード処理の優先順位を決定する処理部と、決定された優先順位に従ってダウンロード処理を開始するダウンロード制御部と、を含む。
この構成によれば、複数の中継装置それぞれに対してダウンロード処理の開始が一時に集中せず、決定された優先順位に従って開始される。つまり、ダウンロード処理の開始が複数の中継装置の間で分散される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置それぞれに確実に更新プログラムを配信することができる。
【００２８】
好ましくは、処理部は、優先順位に基づいて中継装置に対するダウンロードのスケジュールを決定し、サーバは、スケジュールを中継装置に通知する通信部をさらに備える。
決定されたスケジュールが中継装置に通知されることによって、中継装置は、たとえば上記のスケジュールに基づいたタイミングに車載制御装置を起動する処理などの、ダウンロードのスケジュールに応じた所定の処理を実行することができる。
【００２９】
本実施の形態に含まれるプログラム配信方法は、車両に搭載された対象機器を制御する車載制御装置の更新プログラムを、複数の車両に対して配信する方法であって、複数の車両に対して、更新プログラムのダウンロード処理の優先順位を決定するステップと、決定された優先順位に従ってダウンロード処理を開始するダウンロード制御部と、を備える。
この構成によれば、複数の中継装置それぞれに対してダウンロード処理の開始が一時に集中せず、決定された優先順位に従って開始される。つまり、ダウンロード処理の開始が複数の中継装置の間で分散される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置それぞれに確実に更新プログラムを配信することができる。
【００３０】
本実施の形態に含まれるコンピュータプログラムは、複数の車両に対する、複数の車両それぞれに搭載された対象機器を制御する車載制御装置の更新プログラムのダウンロードを制御する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータを、複数の車両それぞれの中継装置に対して、更新プログラムのダウンロード処理の優先順位を決定する処理部、および、決定された優先順位に従ってダウンロード処理を開始するダウンロード制御部、として機能させる。
この構成によれば、複数の中継装置それぞれに対してダウンロード処理の開始が一時に集中せず、決定された優先順位に従って開始される。つまり、ダウンロード処理の開始が複数の中継装置の間で分散される。そのため、サーバの処理負荷の増大を抑えつつ、複数の中継装置それぞれに確実に更新プログラムを配信することができる。
【００３１】
［実施の形態の詳細］
以下に、図面を参照しつつ、好ましい実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００３２】
＜第１の実施の形態＞
〔システムの全体構成〕
図１は、本発明の実施形態にかかるプログラム更新システムの全体構成図である。
図１に示すように、本実施形態のプログラム更新システムは、広域通信網２を介して通信可能な複数台の車両１、管理サーバ５およびＤＬ（ダウンロード）サーバ６を含む。
管理サーバ５およびＤＬサーバ６は、たとえば、車両１のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両１と通信可能である。
【００３３】
各車両１には、ゲートウェイ１０と、無線通信部１５と、複数のＥＣＵ３０と、各ＥＣＵ３０によりそれぞれ制御される各種の車載機器（図示せず）とが搭載されている。
各車両１には、共通の車内通信線にバス接続された複数のＥＣＵ３０による通信グループが存在し、ゲートウェイ１０は、通信グループ間の通信を中継している。このため、ゲートウェイ１０には、複数の車内通信線が接続されている。
【００３４】
無線通信部１５は、携帯電話網などの広域通信網２に通信可能に接続され、車内通信線によりゲートウェイ１０に接続されている。ゲートウェイ１０は、広域通信網２を通じて管理サーバ５およびＤＬサーバ６などの車外装置から無線通信部１５が受信した情報を、ＥＣＵ３０に送信する。
ゲートウェイ１０は、ＥＣＵ３０から取得した情報を無線通信部１５に送信し、無線通信部１５は、その情報を管理サーバ５などの車外装置に送信する。
【００３５】
車両１に搭載される無線通信部１５としては、たとえば、ユーザが所有する携帯電話機、スマートフォン、タブレット型端末、ノートＰＣ（Personal  Computer）等の装置が考えられる。
図１では、ゲートウェイ１０が無線通信部１５を介して車外装置と通信を行う場合が例示されているが、ゲートウェイ１０が無線通信の機能を有する場合には、ゲートウェイ１０自身が管理サーバ５などの車外装置と無線通信を行う構成としてもよい。
【００３６】
また、図１のプログラム更新システムでは、管理サーバ５とＤＬサーバ６とが別個のサーバで構成されているが、これらのサーバ５，６を１つのサーバ装置で構成してもよい。
【００３７】
〔ゲートウェイの内部構成〕
図２は、ゲートウェイ１０の内部構成を示すブロック図である。
図２に示すように、ゲートウェイ１０は、ＣＰＵ（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）またはＲＳ２３２Ｃ等の規格に応じた通信ケーブルが接続されるコネクタを有し、通信ケーブルを介して接続された別の通信装置と有線通信を行う。
別の通信装置と管理サーバ５等の車外装置とが広域通信網２を通じた無線通信が可能である場合には、車外装置→別の通信装置→有線通信部→ゲートウェイ１０の通信経路により、車外装置とゲートウェイ１０とが通信可能になる。
【００４３】
〔ＥＣＵの内部構成〕
図３は、ＥＣＵ３０の内部構成を示すブロック図である。
図３に示すように、ＥＣＵ３０は、ＣＰＵ３１、ＲＡＭ３２、記憶部３３、および通信部３４などを備える。ＥＣＵ３０は、車両１に搭載された対象機器を個別に制御する車載制御装置である。ＥＣＵ３０の種類には、たとえば、エンジン制御ＥＣＵ、ステアリング制御ＥＣＵ、およびドアロック制御ＥＣＵなどがある。
【００４４】
ＣＰＵ３１は、記憶部３３に予め記憶された一または複数のプログラムをＲＡＭ３２に読み出して実行することにより、自身が担当する対象機器の動作を制御する。
ＲＡＭ３２は、ＳＲＡＭまたはＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ３１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００４５】
記憶部３３は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置等により構成されている。
記憶部３３が記憶する情報には、たとえば、車内の制御対象である対象機器を制御するための情報処理をＣＰＵ３１に実行させるためのコンピュータプログラム（以下、「制御プログラム」という。）が含まれる。
【００４６】
通信部３４には、車両１に配設された車内通信線を介してゲートウェイ１０が接続されている。第１通信部３４は、たとえばＣＡＮ、Ｅｔｈｅｒｎｅｔ、またはＭＯＳＴ等の規格に応じて、ゲートウェイ１０との通信を行う。
通信部３４は、ＣＰＵ３１から与えられた情報をゲートウェイ１０へ送信するとともに、ゲートウェイ１０から受信した情報をＣＰＵ３１に与える。第１通信部３４は、上記の通信規格だけなく、車載ネットワークに用いる他の通信規格によって通信してもよい。
【００４７】
ＥＣＵ３０のＣＰＵ３１には、当該ＣＰＵ３１による制御モードを、「通常モード」または「リプログラミングモード」（以下、「リプロモード」ともいう。）のいずれかに切り替える起動部３５が含まれる。
ここで、通常モードとは、ＥＣＵ３０のＣＰＵ３１が、対象機器に対する本来的な制御（たとえば、燃料エンジンに対するエンジン制御や、ドアロックモータに対するドアロック制御など）を実行する制御モードのことである。
【００４８】
リプログラミングモードとは、対象機器の制御に用いる制御プログラムを更新する制御モードである。
すなわち、リプログラミングモードは、ＣＰＵ３１が、記憶部３３のＲＯＭ領域に対して、制御プログラムの消去や書き換えを行う制御モードのことである。ＣＰＵ３１は、この制御モードのときにのみ、記憶部３３のＲＯＭ領域に格納された制御プログラムを新バージョンに更新することが可能となる。
【００４９】
リプロモードにおいてＣＰＵ３１が新バージョンの制御プログラムを記憶部３３に書き込むと、起動部３５は、ＥＣＵ３０をいったん再起動（リセット）させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
起動部３５は、上記のベリファイ処理の完了後に、ＣＰＵ３１を更新後の制御プログラムによって動作させる。
【００５０】
〔管理サーバの内部構成〕
図４は、管理サーバ５の内部構成を示すブロック図である。
図４に示すように、管理サーバ５は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、記憶部５４、および通信部５５などを備える。
【００５１】
ＣＰＵ５１は、ＲＯＭ５２に予め記憶された一または複数のプログラムをＲＡＭ５３に読み出して実行することにより、各ハードウェアの動作を制御し、管理サーバ５をゲートウェイ１０と通信可能な車外装置として機能させる。
ＲＡＭ５３は、ＳＲＡＭまたはＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ５１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００５２】
記憶部５４は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、または、ハードディスクなどの磁気記憶装置等により構成されている。
通信部５５は、所定の通信規格に則って通信処理を実行する通信装置よりなり、携帯電話網等の広域通信網２に接続されて当該通信処理を実行する。通信部５５は、ＣＰＵ５１から与えられた情報を、広域通信網２を介して外部装置に送信するとともに、広域通信網２を介して受信した情報をＣＰＵ５１に与える。
【００５３】
〔制御プログラムの更新シーケンス〕
図５は、本実施形態のプログラム更新システムにおいて実行される、ＥＣＵに対する制御プログラムの更新の一例を示すシーケンス図である。更新プログラムは車両１のカーメーカーなどによってＤＬサーバ６に置かれ、管理サーバ５に対して更新プログラムが配信可能な状態となったことが設定される。
【００５４】
好ましくは、管理サーバ５は、制御プログラムを配信可能な状態となると、更新プログラムが格納されているＤＬサーバ５から、更新プログラムに関する情報である更新情報を取得する（ステップＳ１）。更新情報は、たとえば、更新プログラムの配信先に関する情報やデータサイズに関する情報などである。
【００５５】
管理サーバ５は、更新プログラムを配信可能な状態になるとスケジューリング処理を実行する（ステップＳ２）。スケジューリング処理は、複数の車両１それぞれのゲートウェイ１０Ａ〜１０Ｃ間で更新プログラムのダウンロードの開始時間を分散するように、更新プログラムの配信スケジュールを決定するための処理である。そして、管理サーバ５は、決定したスケジュールに従った順番でゲートウェイ１０Ａ〜１０Ｃに対して、ＥＣＵ３０の更新プログラムの更新を要求する（ステップＳ３Ａ〜Ｓ３Ｃ）。ステップＳ３Ａ〜Ｓ３Ｃで管理サーバ５は、たとえば、更新プログラムの保存先ＵＲＬとダウンロード要求とを該当する車両１のゲートウェイ１０宛てに送信する。
これにより、各ゲートウェイ１０は、上記要求の順番に従った順番で、ＥＣＵ３０のための更新プログラムをＤＬサーバ６からダウンロードする（ステップＳ４Ａ〜Ｓ４Ｃ）。
【００５６】
更新プログラムがダウンロードされると、各ゲートウェイ１０では、ダウンロードしてメモリに保存した更新プログラムを用いて制御プログラムを更新させるべく、更新処理を実行する（ステップＳ５Ａ〜Ｓ５Ｃ）。ステップＳ５Ａ〜Ｓ５Ｃの更新処理では、一例として、ゲートウェイ１０は、該当するＥＣＵ３０に制御プログラムの更新を要求する。これにより、当該ＥＣＵ３０の制御モードが通常モードからリプロモードに切り替わり、当該ＥＣＵは制御プログラムの更新処理が可能な状態となる。ＥＣＵ３０は、ゲートウェイ１０から受信した更新プログラムを展開して旧バージョンの制御プログラムに適用することにより、制御プログラムを旧バージョンから新バージョンに書き換える。
【００５７】
［スケジューリング処理］
図６は、図５のステップＳ２のスケジューリング処理の具体的な内容を表したフローチャートである。図６のフローチャートに表された処理は、管理サーバ５のＣＰＵ５１がＲＯＭ５２に記憶されたプログラムをＲＡＭ５３上に読み出して実行することによって、主にＣＰＵ５１により実現される。なお、本実施の形態においては図６のステップＳ１０３以降の動作が行われるものとする。図６中のステップＳ１０１については第２の実施の形態において説明する。
【００５８】
図６を参照して、管理サーバ５のＣＰＵ５１はスケジューリング処理に用いるための情報であるスケジューリング情報を取得する（ステップＳ１０３）。ＣＰＵ５１は、取得したスケジューリング情報を用いて、ゲートウェイ１０Ａ〜１０Ｃ間のダウンロードの優先順位を決定する（ステップＳ１０５）。ステップＳ１０５の決定方法については後述する。ＣＰＵ５１は、決定された優先順位に従って、該当する車両１のゲートウェイ１０に対してダウンロードを要求する（ステップＳ１０７）。これにより、当該するゲートウェイ１０に対する更新プログラムのダウンロードが開始される。
【００５９】
［管理サーバの機能構成］
図７は、上記のスケジューリング処理を行うための、管理サーバ５の機能構成の具体例を示したブロック図である。図７の各機能は、管理サーバ５のＣＰＵ５１がＲＯＭ５１に記憶されているプログラムをＲＡＭ５２上に読み出して実行することによって、主にＣＰＵ５１によって実現される。
【００６０】
詳しくは、図７を参照して、管理サーバ５のＣＰＵ５１は、スケジューリング情報を取得するためのスケジューリング情報取得部５１１と、スケジュールを決定するためのスケジューリング部５１２と、ダウンロード処理を制御するためのＤＬ制御部５１３と、更新情報を取得するための更新情報取得部５１４と、を含む。なお、図７に示された判断部５１５については、第２の実施の形態において説明する。
【００６１】
ダウンロード処理は、たとえば、更新プログラムのダウンロードをゲートウェイ１０に要求（必要な情報の通知）する処理（ステップＳ３）である。また、先述のように管理サーバ５とＤＬサーバ６とが１つのサーバ装置で構成されている場合、ダウンロード処理は、ゲートウェイ１０への更新プログラムの送信（ダウンロード）の開始であってもよい。また、ダウンロードに失敗し、再度のダウンロード（リトライ）の開始であってもよい。
【００６２】
（スケジューリング方法１）
スケジューリング部５１２においてダウンロードの優先順位を決定し、スケジュールを決定する第１の方法として、車両１の走行モデルを用いて各車両１の走行状態を予測（走行予測）し、予測される走行パターンに基づいて優先順位を決定する方法が挙げられる。走行モデルは、車両１の走行状態の蓄積（走行履歴）に基づいて生成される、車両１の走行パターンのモデルである。走行モデルは、たとえば、曜日、時間ごとの走行パターンを含む。
【００６３】
スケジューリング情報取得部５１１は走行予測を行うための走行予測部５１６を含む。走行予測部５１６は、現在日時と車両１ごとの走行モデルとを取得する。好ましくは、スケジューリング情報取得部５１１は学習部５１８をさらに含む。また、記憶部５４には、学習部５１８によって生成された車両１ごとの走行モデルを記憶するモデルマップ記憶部５４１が用意される。学習部５１８およびモデルマップ記憶部５４１は、走行モデルを取得する走行モデル取得部の一例である。走行予測部５１６は、一例としてモデルマップ記憶部５４１から該当する車両１の走行モデルを読み出す。
【００６４】
学習部５１８は、所定期間の走行状態の蓄積に基づいて車両１ごとの走行モデルを生成する。一例として、学習部５１８は、通信部５５で該当する車両１のゲートウェイ１０と通信することによって、当該車両１のＥＣＵ３０や図示しないスマートフォンなどのユーザの携帯端末装置やカーナビゲーション装置などから得られる車両１の走行状態を示す情報を所定期間、収集する。車両１の走行状態を示す情報は、たとえば、車両１の走行位置や、エンジンのＯＮ／ＯＦＦ状態、稼働状況や、電源のＯＮ／ＯＦＦ状態などを含む。学習部５１８は所定期間のこれら情報を統計処理することによって、時間帯ごとや曜日ごとや季節ごとなどの当該車両１ごとの走行パターンを生成し、走行モデルとしてモデル化する。走行パターンを生成するために用いられる統計処理の方法は特定方法に限定されず、あらゆる方法が採用され得る。
【００６５】
走行モデル取得部は他の例として、各車両１のゲートウェイ１０によって生成され、当該ゲートウェイ１０の記憶部１３に記憶されている走行モデルを、当該ゲートウェイ１０から取得するものであってもよい。
【００６６】
図８および図９は、それぞれ、ある車両１の走行モデルの具体例の表した図である。図８は、車両１が通勤に用いられる場合の走行モデルの具体例を表している。図９は、車両１が主に休日（土曜日および日曜日）に用いられる場合の走行モデルの具体例を表している。
【００６７】
この場合、学習部５１８は、所定期間にわたって、一定の時間間隔など所定のタイミングで当該車両１の走行状態（走行中か、停車中か、等）や日時情報を取得する。そして、一例として、学習部５１８は、曜日ごと、時間帯ごとに走行状態を集計してその傾向を把握することによって当該車両１の走行パターンを生成し、モデル化する。
【００６８】
一例として、走行モデルは図８および図９に示されたようなマップ形式の情報であるモデルマップＭＭとして生成される。学習部５１８は、生成したモデルマップＭＭを、車両１ごとにモデルマップ記憶部５４１に格納する。
【００６９】
走行予測部５１６は、走行モデルに表された現在日時の後の走行パターン（走行位置、走行経路）を、当該車両１の走行パターンと予測する。たとえば、ある車両１についてのモデルマップＭＭが図８の走行モデルを表すものであったとする。現在日時が平日の午前９時の直前であったとすると、走行予測部５１６は図８の走行モデルに基づいて、当該判定時点の後に当該車両１が外出先で駐車される可能性が高いと予測する。また、現在日時が木曜日の１８時３０分であったとすると、走行予測部５１６は図８の走行モデルに基づいて、当該判定時点の後もしばらく当該車両１の走行が継続すると予測する。
【００７０】
なお、走行予測部５１６は、他の例として、該当する車両１のゲートウェイ１０などの他の装置による走行予測の結果を当該他の装置から取得するものであってもよい。
【００７１】
第１のスケジューリング方法において、スケジューリング部５１２は、走行パターンと優先順位との対応をスケジューリング条件Ｃとして予め記憶している。スケジューリング条件Ｃは、もうすぐ駐車と予測される車両についてはダウンロードの優先順位を高くする、しばらく走行が継続すると予測される車両についてはダウンロードの優先順位を低くする、などの対応を含む。なお、ダウンロードの優先順位は、１台または複数台の車両１をランク分けするものであってもよく、上記対応は、具体的なランクとの対応であってもよい。これは、制御プログラムの更新中には該当するＥＣＵ３０の制御モードが通常モードからリプロモードに切り替わり、通常の走行ができなくなるためである。そのため、駐停車する車両ほど制御プログラムの更新が可能な状態となる可能性が高く、走行を継続する車両ほど制御プログラムの更新が可能な状態となる可能性が低い。スケジューリング部５１２は、各車両１の走行パターンに基づいて、スケジューリング条件Ｃに含まれる上記対応関係に従って、車両１ごとにダウンロードの優先順位を決定する。
【００７２】
上記の第１の方法に従ってダウンロードの優先順位が決定されることによって、複数のゲートウェイ１０Ａ〜１０Ｃの間においてダウンロードの開始が分散されると共に、更新プログラムが該当する車両１の走行予測に応じて効率的にダウンロードされる。
【００７３】
（スケジューリング方法２−１）
スケジュールを決定する第２の方法として、各車両１の利用状況に基づいて優先順位を決定する方法が挙げられる。利用状況は、車両１の利用頻度を含む。
【００７４】
スケジューリング情報取得部５１１は、車両１ごとの利用頻度を取得する。利用頻度は、たとえば、ゲートウェイ１０を介して当該車両１の走行を制御するＥＣＵと通信することによって得ることができる。または、上記の車両１ごとの走行モデルをモデルマップ記憶部５４１から読み出すことによって利用頻度が得られてもよい。
【００７５】
スケジューリング部５１２は、車両１ごとの利用頻度と優先順位との対応をスケジューリング条件Ｃとして予め記憶している。スケジューリング条件Ｃは、たとえば、一週間の走行時間が１０時間未満である（利用頻度が低い）場合にはダウンロードの優先順位を高くする、一週間の走行時間が３０時間以上である（利用頻度が高い）場合にはダウンロードの優先順位を低くする、などの対応を含む。これは、制御プログラムの更新中には該当する車両１の電源がＯＮ状態である必要があるためである。そのため、利用頻度の高い車両ほど制御プログラムの更新が可能な状態となる可能性が高く、利用頻度の低い車両ほど制御プログラムの更新が可能な状態となる可能性が低い。スケジューリング部５１２は、各車両１の利用頻度に基づいて、スケジューリング条件Ｃに含まれる上記対応関係に従って、車両１ごとにダウンロードの優先順位を決定する。
【００７６】
上記の第２の方法に従ってダウンロードの優先順位が決定されることによって、複数のゲートウェイ１０Ａ〜１０Ｃの間においてダウンロードの開始が分散されると共に、更新プログラムが該当する車両１の利用頻度に応じて効率的にダウンロードされる。
【００７７】
（スケジューリング方法２−２）
利用状況は、該当するＥＣＵ３０の制御プログラムのバージョン情報を含み、バージョン情報に基づいて優先順位が決定されてもよい。
【００７８】
スケジューリング情報取得部５１１は、車両１ごとの該当するＥＣＵ３０の制御プログラムのバージョン情報を、当該車両１のゲートウェイ１０と通信することによって取得する。
【００７９】
スケジューリング部５１２は、ＥＣＵ３０の制御プログラムのバージョンと優先順位との対応をスケジューリング条件Ｃとして予め記憶している。スケジューリング条件Ｃは、たとえば、ＥＣＵ３０の制御プログラムのバージョンが古いほどダウンロードの優先順位を高くする、などの対応を含む。これは、制御プログラムのバージョンが古いほど現在の（最新の）バージョンへの更新が急がれるためである。スケジューリング部５１２は、各車両１の該当するＥＣＵ３０の制御プログラムのバージョンに基づいて、スケジューリング条件Ｃに含まれる上記対応関係に従って、車両１ごとにダウンロードの優先順位を決定する。
【００８０】
上記の第２の方法に従ってダウンロードの優先順位が決定されることによって、複数のゲートウェイ１０Ａ〜１０Ｃの間においてダウンロードの開始が分散されると共に、更新プログラムが更新の必要性に応じてダウンロードされる。
【００８１】
（スケジューリング方法２−３）
利用状況は、該当するＥＣＵ３０が制御する機能のＯＮ／ＯＦＦ設定を含み、該設定に基づいて優先順位が決定されてもよい。
【００８２】
スケジューリング情報取得部５１１は、車両１ごとの該当するＥＣＵ３０が制御する機能のＯＮ／ＯＦＦ設定を示す情報を、当該車両１のゲートウェイ１０と通信することによって取得する。
【００８３】
スケジューリング部５１２は、ＥＣＵ３０のＯＮ／ＯＦＦ設定と優先順位との対応をスケジューリング条件Ｃとして予め記憶している。スケジューリング条件Ｃは、ＥＣＵ３０が制御する機能がＯＮ設定されている場合にはダウンロードの優先順位を高くし、ＯＦＦ設定されている場合にはダウンロードの優先順位を低くする、などの対応を含む。これは、ＥＣＵ３０が制御する機能がＯＦＦ設定されている場合には利用する可能性が低いために当該ＥＣＵ３０の制御プログラムの更新の必要性は低く、ＯＮ設定されている場合には利用する可能性が高く更新の必要性が高いためである。スケジューリング部５１２は、各車両１の該当するＥＣＵ３０が制御する機能のＯＮ／ＯＦＦ設定に基づいて、スケジューリング条件Ｃに含まれる上記対応関係に従って、車両１ごとにダウンロードの優先順位を決定する。
【００８４】
上記の第２の方法に従ってダウンロードの優先順位が決定されることによって、複数のゲートウェイ１０Ａ〜１０Ｃの間においてダウンロードの開始が分散されると共に、更新プログラムが更新の必要性の高さに応じてダウンロードされる。
【００８５】
なお、上記の第２の方法を組み合わせてダウンロードの優先順位が決定されてもよい。すなわち、当該車両の利用頻度、制御プログラムのバージョン、およびＥＣＵについての設定の少なくとも１つを用いてダウンロードの優先順位が決定されてもよい。つまり、当該車両の利用頻度、制御プログラムのバージョン、およびＥＣＵについての設定のうちの２つまたは３つが組み合わされて優先順位が決定されてもよい。
【００８６】
（スケジューリング方法３）
スケジュールを決定する第３の方法として、各車両１のＤＬサーバ６との間の通信状態を示す通信指標に基づいて優先順位を決定する方法が挙げられる。通信指標は、たとえば、車両１のＤＬサーバ６との間の広域通信網２にて伝送されるパケット数や通信量や通信速度の測定値（指標値）、または当該実測値から算出される値（指標値）である。
【００８７】
スケジューリング情報取得部５１１は、車両１ごとの通信指標を取得する。パケット数や通信量などは、たとえば、広域通信網２を管理する通信事業者によって測定され、測定値がウェブサイトなどで提供されることが想定される。スケジューリング情報取得部５１１は、当該ウェブサイトのＵＲＬを予め記憶しておき、当該ウェブサイトから測定値を取得することができる。実測値から算出される値を指標として用いる場合、スケジューリング情報取得部５１１は、上記ウェブサイトから実測値を取得し、その実測値を用いて指標値を算出する。実測値から算出される指標値は、たとえば回線の使用率である。スケジューリング情報取得部５１１は、一例として、広域通信網２での伝送可能な最大パケット数を記憶しておき、実測されたパケット数を伝送可能な最大パケット数で除して回線の使用率を算出する。
【００８８】
スケジューリング部５１２は、車両１ごとの指標値と優先順位との対応をスケジューリング条件Ｃとして予め記憶している。スケジューリング条件Ｃは、使用率が７０％未満の場合にはダウンロードの優先順位を高くする、使用率が７０％以上である場合にはダウンロードの優先順位を低くする、などの対応を含む。これは、更新プログラムのダウンロードに用いる通信回線が混雑している可能性が高い車両１に対してはダウンロードを後とし、該通信回線の通信状態がよい可能性の高い車両１ほどダウンロードを先にするためである。スケジューリング部５１２は、各車両１の指標値に基づいて、スケジューリング条件Ｃに含まれる上記対応関係に従って、車両１ごとにダウンロードの優先順位を決定する。
【００８９】
上記の第３の方法に従ってダウンロードの優先順位が決定されることによって、複数のゲートウェイ１０Ａ〜１０Ｃの間においてダウンロードの開始が分散されると共に、更新プログラムが各車両１に確実に配信される。
【００９０】
（スケジューリング方法４）
スケジュールを決定する第４の方法として、各車両１のＤＬサーバ６との間の通信状態に相関する相関情報に基づいて優先順位を決定する方法が挙げられる。相関情報は、通信回路を逼迫させる通信アクセス数の原因となり得る原因事象であるイベントに関する情報である。上記イベントは、一例として、時間的および地理的に特定されるイベントであって、たとえば、スポーツイベント（試合、運動会等）、音楽イベント（コンサート等）、および祭事などの興行イベント、爆発事故、公共交通事故、およびテロ攻撃などの大規模人災、ならびに、異常気象（台風、局地的豪雨、洪水等）や自然災害（地震、津波等）などの自然現象、などを含む。相関情報は、当該イベントの発生期間および影響範囲を含む。
【００９１】
スケジューリング情報取得部５１１は、上記相関情報の少なくとも一部を予め記憶している。また、スケジューリング情報取得部５１１は、上記の相関情報の少なくとも一部を提供する図示しないサーバにアクセスして取得してもよい。たとえば、イベントが地震である相関情報については、スケジューリング情報取得部５１１は、気象庁のサイトにアクセスすることによって地震の発生位置および発生日時を取得することができる。この場合、スケジューリング情報取得部５１１は、相関情報の一部として、たとえば、発生期間を発生日時から１週間、影響範囲を発生位置を含む都道府県に隣接する都道府県、などと記憶している。
【００９２】
スケジューリング情報取得部５１１は、さらに、各車両１の現在位置を取得する。車両１の現在位置は、たとえば、該当する車両１のゲートウェイ１０と通信することによって取得される。ゲートウェイ１０は、たとえば、図示しないナビゲーション装置と通信したり、ＧＰＳ（Global  Positioning  System）と通信したりすることで車両１の位置情報を得ることができる。
【００９３】
スケジューリング部５１２は、車両１ごとのイベントとの関連と優先順位との対応をスケジューリング条件Ｃとして予め記憶している。たとえば、スケジューリング条件Ｃは、現在の日時が当該イベントの発生期間に含まれ、かつ、現在位置が当該イベントの影響範囲に含まれる場合にはダウンロードの優先順位を低くする、そうでない場合にはダウンロードの優先順位を高くする、などの対応を含む。これは、更新プログラムのダウンロードに用いる通信回線が混雑している可能性が高い車両１に対してはダウンロードを後とし、該通信回線の通信状態がよい可能性の高い車両１ほどダウンロードを先にするためである。スケジューリング部５１２は、各車両１のイベントとの関連に基づいて、スケジューリング条件Ｃに含まれる上記対応関係に従って、車両１ごとにダウンロードの優先順位を決定する。
【００９４】
上記の第４の方法に従ってダウンロードの優先順位が決定されることによって、複数のゲートウェイ１０Ａ〜１０Ｃの間においてダウンロードの開始が分散されると共に、更新プログラムが各車両１に確実に配信される。
【００９５】
（スケジューリング方法５）
スケジュールを決定する第５の方法として、ダウンロード期間（ＤＬ期間）における車両１の無線通信部１５の通信状態に基づいて優先順位が決定する方法が挙げられる。ＤＬ期間は、ＤＬサーバ６からゲートウェイ１０の無線通信部１５までの無線通信において更新プログラムの伝送が開始されてから無線通信部１５での受信が完了するまでの期間を指す。ＤＬ期間中の車両１の通信状態の良否は、車両１が通行すると予測される走行経路が、通信状態が不良な不感エリアに含まれるか否かにより判定できる。
【００９６】
この場合、スケジューリング情報取得部５１１は不感エリアを含むエリアマップを取得する。エリアマップは、たとえば、山間部は−１００［ｄＢｍ］、トンネルや地下は−１２０［ｄＢｍ］、などのように、位置または範囲ごとに、当該位置または範囲における通信強度を示す情報である。エリアマップは、たとえば、無線通信部１５の行う無線通信を管理する通信会社などによって生成されて、ウェブサイトなどで提供されることが想定される。スケジューリング情報取得部５１１は当該ウェブサイトのＵＲＬを予め記憶しておき、当該ウェブサイトからエリアマップを取得することができる。
【００９７】
また、スケジューリング情報取得部５１１は走行経路を取得する。スケジューリング情報取得部５１１は、一例として、ゲートウェイ１０を介して車両１に搭載された図示しないナビゲーション装置と通信することで、ナビゲーション装置から走行経路を取得する。ナビゲーション装置で生成される走行経路は、走行経路と各位置を通過するまでの時間とを含む。従って、走行予測部５１６は、ナビゲーション装置で生成される走行経路を車両１の走行経路と予測する。
【００９８】
また、スケジューリング情報取得部５１１は、他の例として、車両１の走行履歴を取得し、走行履歴から走行経路を予測する。走行履歴は、たとえば、曜日、時間などの所定期間ごとの車両１の走行位置（たとえば緯度経度）を統計処理したもので、所定期間ごとの走行パターンのモデルと言える。統計処理は、一例として、所定期間ごとに走行している可能性の最も高い位置を特定して当該期間の走行位置と決定する処理である。たとえば、月曜日から金曜日まで出勤に車両１が使用されている場合、通勤時間帯（たとえば朝８時から８時３０分まで）の走行履歴は自宅から会社までの走行経路を示す。統計処理の方法は特定方法に限定されず、あらゆる方法が採用され得る。走行履歴が各車両１で生成され、ゲートウェイ１０の記憶部１３に記憶されている場合、スケジューリング情報取得部５１１はゲートウェイ１０と通信することで走行履歴を取得する。管理サーバ５が各車両１の走行位置を取得し、蓄積して走行履歴を生成する場合、スケジューリング情報取得部５１１は記憶部５４から走行履歴を取得する。走行予測部５１６は、各車両１の走行履歴に基づいて当該車両１の走行経路を予測する。たとえば、スケジューリング情報取得部５１１は、現在日時に対応した期間の走行履歴を読み出して、予測される走行経路とする。現在日時に対応した期間の走行履歴は、車両１が走行する経路であると予測される。
【００９９】
スケジューリング部５１２は、予測される走行経路とエリアマップとを比較し、予測される走行経路の少なくとも一部でも不感エリアに含まれるか否かにより通信状態の良否を判定する。すなわち、車両１の予測される走行経路が不感エリアを通過しない場合に、スケジューリング部５１２は当該車両１の通信状態が良好であると判定する。そうでない場合、またはそうでない車両１については、スケジューリング部５１２は通信状態が良好であると判定しない。
【０１００】
スケジューリング部５１２は、車両１ごとの通信状態の判定結果と優先順位との対応をスケジューリング条件Ｃとして予め記憶している。スケジューリング条件Ｃは、たとえば、通信状態がよいと判定される場合にはダウンロードの優先順位を高くする、そうでない場合にはダウンロードの優先順位を低くする、などの対応を含む。これは、ＤＬ期間中に無線通信部１５の通信状態が悪くなる可能性が高い車両１に対してはダウンロードを後とし、ＤＬ期間中の無線通信部１５の通信状態が良好な可能性の高い車両１ほどダウンロードを先にするためである。スケジューリング部５１２は、各車両１の通信状態の判定結果に基づいて、スケジューリング条件Ｃに含まれる上記対応関係に従って、車両１ごとにダウンロードの優先順位を決定する。
【０１０１】
上記の第５の方法に従ってダウンロードの優先順位が決定されることによって、複数のゲートウェイ１０Ａ〜１０Ｃの間においてダウンロードの開始が分散されると共に、更新プログラムが各車両１に確実に配信される。
【０１０２】
（スケジューリング方法の他の例）
管理サーバ５が各車両１のゲートウェイ１０に対して更新プログラムがあることを通知し、ゲートウェイ１０からのリクエストに応じてＤＬサーバ６のアクセス情報などのダウンロードに必要な情報を通知してもよい。ダウンロードに必要な情報を通知する処理は、ダウンロード処理に含まれる。この場合、スケジューリング部５１２は、ゲートウェイ１０からのリクエスト順に基づいてダウンロードの優先順位を決定してもよい。リクエストが分散されている場合、ダウンロードの開始も分散される。
【０１０３】
また他の例として、スケジューリング部５１２は乱数生成機能を有して、当該乱数を利用して複数のゲートウェイ１０Ａ〜１０Ｃに対してランダムにダウンロードの優先順位を決定してもよい。このようなスケジューリング方法によっても、ダウンロードの開始が分散される。
【０１０４】
また他の例として、スケジューリング部５１２は、予め設定されている各車両１の属性に基づいてダウンロードの優先順位を決定してもよい。車両の属性は、予め設定されている車両のランクや車両のユーザのランクなどであって、たとえばカーメーカーやユーザ自身などによって管理サーバ５に登録されていてもよい。この場合、スケジューリング情報取得部５１１は記憶部５４から車両の属性を読出す。スケジューリング部５１２は、ランクの高い車両ほどダウンロードの優先順位を高くする、などの対応を含む、車両の属性と優先順位との対応をスケジューリング条件Ｃとして予め記憶し、当該対応関係に従って車両１ごとにダウンロードの優先順位を決定する。複数の車両１のランクが分散している場合、ダウンロードの開始が分散される。
【０１０５】
［第１の実施の形態の効果］
第１の実施の形態にかかるプログラム更新システムによれば、ＥＣＵの更新プログラムのダウンロードの開始が、当該更新プログラムのダウンロード先である複数のゲートウェイ１０Ａ〜１０Ｃの間において分散される。これにより、ＤＬサーバ６の処理負荷の増大を抑えることができる。
【０１０６】
また、第１の実施の形態にかかるプログラム更新システムでは、ダウンロードの開始を分散するために、車両１ごとの走行パターンの予測や、利用頻度、制御プログラムのバージョン、または機能のＯＮ／ＯＦＦ設定などの利用状況、ＤＬサーバ６との間の通信状態を示す通信指標、該通信状態に相関する相関情報、もしくは通信指標の予測値に基づいてダウンロードの優先順位が決定される。これにより、ＤＬサーバ６の処理負荷の増大を抑えつつ、適切な順で確実に更新プログラムを配信できる。
【０１０７】
＜第２の実施の形態＞
第２の実施の形態にかかるプログラム更新システムでは、ダウンロード対象の更新プログラムの更新情報に例外的な種別であることを示す種別情報が含まれる場合に、スケジューリング処理を行うことなくダウンロード処理が実行される。例外的な種別は、更新プログラムの重要性や更新の緊急性などの種別を表わす情報を含み、たとえば、重要フラグや緊急フラグなどのフラグ情報を含む。一例として、セキュリティホールへの対処などの情報セキュリティに関する更新プログラム、走行上の安全を確保するために必要な更新プログラム、自動運転モード用に用いられる地図情報などの更新の緊急性が高い更新プログラム、などである。更新プログラムの重要性や更新の緊急性などである上記例外的な種別は、当該更新プログラムを提供するカーメーカーなどによって設定されている。
【０１０８】
すなわち、図６を参照して、第２の実施の形態にかかるプログラム更新システムにおいて、管理サーバ５は、スケジューリング処理を実行する際に種別情報を参照して、スケジューリング処理の要否を判定する（ステップＳ１０１）。そして、スケジューリング処理が必要と判定された場合に（ステップＳ１０１でＹＥＳ）、ステップＳ１０３以降の処理を実行する。
【０１０９】
第２の実施の形態にかかる管理サーバ５のＣＰＵ５１は、図７に示されたように、スケジューリング処理の要否を判断するための判断部５１５をさらに含む。判断部５１５は、更新情報を参照してスケジューリング処理の要否を判断する。ＤＬ制御部５１３は、更新情報に上記の例外的な種別を示す種別情報が含まれている場合には、カーメーカーによって設定されたタイミングなどに、複数のゲートウェイ１０Ａ〜１０Ｃに対して一斉にダウンロードを要求する。つまり、重要性や緊急性の高い更新プログラムについてはＤＬサーバ６の処理負荷が増大する場合であっても送信され、そうでない更新プログラムは分散して配信される。これにより、ＤＬサーバ６の処理負荷の軽減と、更新プログラムの重要性、緊急性とを両立させることができる。
【０１１０】
例外的な種別は、データサイズが規定サイズ以下であることを含んでもよい。更新プログラムのデータサイズは、たとえば、当該更新プログラムを提供するカーメーカーなどによって更新情報として更新プログラムに付加される。判断部５１５、スケジューリング処理を必要としない処理量の閾値を予め記憶している。処理量は、たとえば、更新プログラムのデータサイズにダウンロード先の数を乗じたものである。処理量の閾値は、ＤＬサーバ６に大きな処理負荷を与えない程度の処理量である。判断部５１５は、更新プログラムのデータサイズにダウンロード先の数を乗じて処理量を算出し、閾値と比較する。そして、判断部５１５は、算出された処理量が閾値より大きい場合にスケジューリング処理を行うと判断する。これにより、処理量が閾値よりも小さい更新プログラムについては分散されずに配信され、処理量が閾値よりも大きい更新プログラムについては分散して配信される。これにより、効率的にＤＬサーバ６の処理負荷の軽減を図ることができる。
【０１１１】
＜第３の実施の形態＞
第１、第２の実施の形態にかかるプログラム更新システムでは、更新プログラムのダウンロード処理を実行する制御装置である管理サーバ５においてスケジューリング処理が実行される。他の例として、更新プログラムをダウンロードするＤＬサーバ６もダウンロード処理を実行する制御装置として機能して、スケジューリング処理を実行してもよい。すなわち、この場合、図７の各機能はＤＬサーバ６の図示しないＣＰＵが有する。
【０１１２】
＜第４の実施の形態＞
上記の、車両の属性に基づいたスケジューリング処理における車両の属性は、他の例として、制御プログラムをダウンロードするＥＣＵ３０（対象ＥＣＵとも称する）およびゲートウェイ１０の両装置の属性、または、対象ＥＣＵとゲートウェイ１０との少なくとも一方の装置の属性であってもよい。属性は、たとえばメモリの空き容量などである。この場合、スケジューリング情報取得部５１１は、各車両のゲートウェイ１０から、当該車両１の対象ＥＣＵ３０および／またはゲートウェイ１０のメモリの空き容量を取得する。スケジューリング部５１２は、対象ＥＣＵ３０および／またはゲートウェイ１０のメモリの空き容量の多い車両ほどダウンロードの優先順位を高くする、などの対応を含む、車両の属性と優先順位との対応をスケジューリング条件Ｃとして予め記憶し、当該対応関係に従って車両１ごとにダウンロードの優先順位を決定する。複数の車両１における対象ＥＣＵ３０および／またはゲートウェイ１０のメモリの空き容量が分散している場合、ダウンロードの開始が分散される。
【０１１３】
＜第５の実施の形態＞
第１〜第４の実施の形態にかかるプログラム更新システムでは、車両１が電源ＯＮ状態（起動中）であるときに当該車両１のゲートウェイ１０に対する更新プログラムのダウンロードが可能であるものとしている。そのため、スケジューリング処理では、複数の車両１それぞれが電源ＯＮ状態であるタイミングを予測して、そのタイミングに基づいて、ダウンロードの優先順位を決定している。
【０１１４】
しかしながら、決定された優先順位にしたがったタイミングに更新プログラムのダウンロードを実行しても、そのタイミングに対象の車両１が電源ＯＮ状態でなかった場合には、ダウンロードが成功しない。
【０１１５】
そこで、第５の実施の形態にかかるプログラム更新システムでは、第１〜第４の実施の形態にかかるプログラム更新システムでの処理に加えて、少なくともダウンロードの開始の際に対象の車両１を電源ＯＮ状態とする（起動させる）処理であるウェイクアップ処理を実行する。
【０１１６】
図１０は、第５の実施の形態にかかるゲートウェイ１０の内部構成を示すブロック図である。図１０を参照して、ゲートウェイ１０のＣＰＵ１１はタイマ１１１を含む。また、ゲートウェイ１０のＣＰＵ１１は、ウェイクアップ処理を実行するための機能であるウェイクアップ処理部１１２を含む。この機能は、ＣＰＵ１１が記憶部１３に記憶されている１つまたは複数のプログラムを読み出して実行することによって、ＣＰＵ１１において実現される機能である。しかしながら、少なくとも一部が、電子回路などのハードウェアによって実現されてもよい。
【０１１７】
ウェイクアップ処理部１１２は、ＥＣＵ３０を電源ＯＮ状態とさせるメッセージを生成し、車内通信部１４に該当するＥＣＵ３０に送信させる。これにより、該当するＥＣＵ３０が電源ＯＮ状態となる。ウェイクアップ処理部１１２は、車両１に搭載されるすべてのＥＣＵ３０についての電源状態を確認し、電源ＯＦＦ状態のＥＣＵ３０を電源ＯＮ状態とする。これにより、簡易な処理で、車両１に搭載されているすべてのＥＣＵ３０を電源ＯＮ状態とすることができる。
【０１１８】
好ましくは、ウェイクアップ処理部１１２は、制御プログラムの更新対象のＥＣＵ３０および当該更新ならびに更新プログラムのダウンロードに必要なＥＣＵ３０のみについての電源状態を確認し、この中で電源ＯＦＦ状態のＥＣＵ３０のみ電源ＯＮ状態とさせる。更新プログラムのダウンロードに必要なＥＣＵ３０は、たとえば、ゲートウェイ１０と更新対象のＥＣＵ３０とを接続する車内通信線に接続されている他のＥＣＵ３０や、ゲートウェイ１０と更新対象のＥＣＵ３０との接続を中継する他のＥＣＵ３０などである。これにより、消費電力を抑えることができる。更新プログラムのダウンロードに必要なＥＣＵ３０は、制御プログラムの更新対象とするＥＣＵ３０ごとに予め記憶されていてもよいし、図１に示された車載ネットワークの構成を記憶しておいて、当該ネットワーク構成から特定してもよい。
【０１１９】
図１１は、第５の実施の形態にかかるプログラム更新システムにおいて実行される、ＥＣＵに対する制御プログラムの更新の一例を示すシーケンス図である。図１１において、図５のシーケンス図と同じステップ番号が付されている処理は、図５のシーケンス図に示された処理と共通する。
【０１２０】
図１１を参照して、第５の実施の形態にかかるプログラム更新システムでは、管理サーバ５におけるスケジューリング処理によって各ゲートウェイに対する更新プログラムのダウンロードのスケジュールが決定される（ステップＳ２’）。ステップＳ２’で管理サーバ５は、上記のスケジューリング処理を実行して優先順位を決定し、当該優先順位に基づいて各ゲートウェイ１０に対するダウンロードのタイミング（スケジュール）をそれぞれ決定する。たとえば、優先順位の最上位のゲートウェイ１０のダウンロードのタイミングをスケジューリング処理完了直後とし、その後、規定の時間間隔で、優先順位順に各ゲートウェイ１０のダウンロードのタイミングとすることができる。
【０１２１】
第５の実施の形態にかかるプログラム更新システムでは、管理サーバ５でダウンロードのスケジュールが決定されると、管理サーバ５から対象のゲートウェイ１０に対して、当該ゲートウェイ１０に対する更新プログラムのダウンロードのスケジュールが通知される（ステップＳ１１）。ステップＳ１１での通知は、少なくとも、ダウンロードが開始されるタイミングが特定可能な情報を含む。ダウンロードが開始されるタイミングが特定可能な情報は、たとえば、当該通知からスケジューリング処理によって決定されたダウンロードが開始するまでの期間ｔ１を示す情報である。ダウンロードが開始されるタイミングが特定可能な情報の他の例は、スケジューリング処理によって決定されたダウンロードが開始する日時を示す情報であってもよい。
【０１２２】
当該通知を受けたゲートウェイ１０は、期間ｔ１に基づいて、当該通知を受けてから後述するウェイクアップ処理を実行するまでの期間ｔ２を計時するためのタイマを設定する（ステップＳ１２）。期間ｔ２は期間ｔ１以下の期間であって、期間ｔ１に基づいて規定される期間である。ゲートウェイ１０は期間ｔ１と期間ｔ２との関係を予め記憶していて、期間ｔ１に基づいて期間ｔ２を特定する。期間ｔ１と期間ｔ２との関係は、たとえば、ｔ２＝α×ｔ１（αはたとえば０．８などの係数）や、ｔ２＝ｔ１−β（βはたとえば１［ｍｓ］などの定数）などである。
【０１２３】
タイマによって期間ｔ２が計時されると、ゲートウェイ１０はウェイクアップ処理を実行する（ステップＳ１３）。
【０１２４】
ステップＳ１３のウェイクアップ処理によって車両１が電源ＯＮ状態となった後に、管理サーバ５は、決定したスケジュールに従って当該ゲートウェイ１０に対して、ＥＣＵ３０の更新プログラムの更新を要求する（ステップＳ３）。これにより、当該ゲートウェイ１０は、更新プログラムをＤＬサーバ６からダウンロードする。
【０１２５】
第５の実施の形態にかかるプログラム更新システムでは、少なくともスケジューリング処理によって決定された更新プログラムのダウンロードの開始時には、少なくとも制御プログラムの更新に必要なＥＣＵ３０を電源ＯＮ状態とすることができる。このため、当該タイミングで更新プログラムのダウンロードを実行することができる。
【０１２６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２７】
１  車両
２  広域通信網
５  管理サーバ（制御装置）
６  ＤＬサーバ
１０  ゲートウェイ（制御装置）
１１  ＣＰＵ
１２  ＲＡＭ
１３  記憶部
１４  車内通信部
１５  無線通信部
３０  ＥＣＵ（車載制御装置）
３１  ＣＰＵ
３２  ＲＡＭ
３３  記憶部
３４  通信部
３５  起動部
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  記憶部
５５  通信部
１１１  タイマ
１１２  ウェイクアップ処理部（処理部）
５１１  スケジューリング情報取得部
５１２  スケジューリング部
５１３  ＤＬ制御部
５１４  更新情報取得部
５１５  判断部
５１６  走行予測部
５１８  学習部
５４１  モデルマップ記憶部
【図１】
2018005894.tif 000003
【図２】
2018005894.tif 000004
【図３】
2018005894.tif 000005
【図４】
2018005894.tif 000006
【図５】
2018005894.tif 000007
【図６】
2018005894.tif 000008
【図７】
2018005894.tif 000009
【図８】
2018005894.tif 000010
【図９】
2018005894.tif 000011
【図１０】
2018005894.tif 000012
【図１１】
2018005894.tif 000013