(57)【要約】  車載制御装置と車内通信線を含む伝送路を介して通信する通信部と、下記の対象装置が制御プログラムの更新処理を実行できない場合に、下記の非対象装置である代替装置に更新処理の一部の代替を要求する要求メッセージを、通信部に送信させる制御部と、を備える、更新制御装置。    対象装置：制御プログラムの更新対象である車載制御装置    非対象装置：制御プログラムの更新対象ではない車載制御装置
2018230084.tif 000002
【特許請求の範囲】
【請求項１】
車載制御装置と車内通信線を含む伝送路を介して通信する通信部と、
下記の対象装置が制御プログラムの更新処理を実行できない場合に、下記の非対象装置である代替装置に前記更新処理の一部の代替を要求する要求メッセージを、前記通信部に送信させる制御部と、を備える、更新制御装置。
対象装置：制御プログラムの更新対象である車載制御装置
非対象装置：制御プログラムの更新対象ではない車載制御装置
【請求項２】
前記制御部は、
前記代替の可否を問い合わせる前記非対象装置宛の問い合わせメッセージを前記通信部に送信させ、前記非対象装置からの応答メッセージの内容に応じて、前記非対象装置を前記代替装置とするか否かを決定する、請求項１に記載の更新制御装置。
【請求項３】
前記制御部は、
複数の前記非対象装置に、優先度に従って前記代替の可否を問い合わせる、請求項２に記載の更新制御装置。
【請求項４】
前記制御部は、
動的な処理能力が所定値以上であることを含む前記応答メッセージを受信した場合は、当該応答メッセージの送信元の前記非対象装置を前記代替装置と決定する、請求項２または３に記載の更新制御装置。
【請求項５】
前記制御部は、
前記応答メッセージの送信元の複数の前記非対象装置から優先度に従って前記代替装置を決定する、請求項４に記載の更新制御装置。
【請求項６】
前記通信部に複数の前記車内通信線が終端し、かつ、前記通信部が前記車内通信線に接続された機器を選択的に起動する機能を有しない場合は、前記制御部は、
前記対象装置と同じ前記車内通信線に繋がる前記非対象装置を、前記対象装置と異なる前記車内通信線に繋がる前記非対象装置よりも高優先とする、請求項２〜請求項５のいずれか一項に記載の更新制御装置。
【請求項７】
前記制御部は、車両走行に無関係な制御機能を担う前記非対象装置を、その他の機能を担う前記非対象装置よりも高優先とする、請求項２〜請求項６のいずれか一項に記載の更新制御装置。
【請求項８】
前記更新処理は複数のプロセスを含み、
前記制御部は、前記複数のプロセスのうちの前記代替装置に代替を要求するプロセスを決定する、請求項１〜請求項７のいずれか一項に記載の更新制御装置。
【請求項９】
車載制御装置と車内通信線を含む伝送路を介して通信する更新制御装置での制御方法であって、
下記の対象装置が制御プログラムの更新処理を実行できない場合に、下記の非対象装置である代替装置に前記更新処理の一部の代替を要求する要求メッセージを送信するステップを備える、制御方法。
対象装置：制御プログラムの更新対象である車載制御装置
非対象装置：制御プログラムの更新対象ではない車載制御装置
【請求項１０】
車載制御装置と車内通信線を含む伝送路を介して通信する更新制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
車載制御装置と車内通信線を含む伝送路を介して通信する通信部と、
下記の対象装置が制御プログラムの更新処理を実行できない場合に、下記の非対象装置である代替装置に前記更新処理の一部の代替を要求する要求メッセージを、前記通信部に送信させる制御部と、として機能させる、コンピュータプログラム。
対象装置：制御プログラムの更新対象である車載制御装置
非対象装置：制御プログラムの更新対象ではない車載制御装置
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は更新制御装置、制御方法、およびコンピュータプログラムに関する。
本出願は、２０１７年６月１３日出願の日本出願第２０１７−１１６１０９号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
【背景技術】
【０００２】
近年、自動車の技術分野においては、車両の高機能化が進行しており、多種多様な車載機器が車両に搭載されている。従って、車両には、各車載機器を制御するための制御装置である、所謂ＥＣＵ（Electronic  Control  Unit）が多数搭載されている。
ＥＣＵの種類には、例えば、アクセル、ブレーキ、ハンドルの操作に対してエンジンやブレーキ、ＥＰＳ（Electric  Power  Steering）等の制御を行う走行系に関わるもの、乗員によるスイッチ操作に応じて車内照明やヘッドライトの点灯／消灯と警報器の吹鳴等の制御を行うボディ系ＥＣＵ、運転席近傍に配設されるメータ類の動作を制御するメータ系ＥＣＵなどがある。【０００３】
一般的にＥＣＵは、マイクロコンピュータ等の演算処理装置によって構成されており、ＲＯＭ（Read  Only  Memory）に記憶した制御プログラムを読み出して実行することにより、車載機器の制御が実現される。
ＥＣＵの制御プログラムは、機能向上や防犯対策などを目的とした制御プログラムのバージョンアップに対応して、旧バージョンの制御プログラムを新バージョンの制御プログラムに書き換える必要がある。また、たとえば地図情報や制御用のパラメータなど、制御プログラムの実行に必要なデータも書き換える必要がある。【０００４】
たとえば、特許文献１には、ネットワークを介して更新用プログラムをダウンロードし、プログラムの更新を行う技術（オンライン更新機能）が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−３７９３８号公報
【発明の概要】
【０００６】
ある実施の形態に従うと、更新制御装置は、車載制御装置と車内通信線を含む伝送路を介して通信する通信部と、下記の対象装置が制御プログラムの更新処理を実行できない場合に、下記の非対象装置である代替装置に更新処理の一部の代替を要求する要求メッセージを、通信部に送信させる制御部と、を備える、更新制御装置。
対象装置：制御プログラムの更新対象である車載制御装置
非対象装置：制御プログラムの更新対象ではない車載制御装置
【０００７】
他の実施の形態に従うと、制御方法は、車載制御装置と車内通信線を含む伝送路を介して通信する更新制御装置での制御方法であって、下記の対象装置が制御プログラムの更新処理を実行できない場合に、下記の非対象装置である代替装置に更新処理の一部の代替を要求する要求メッセージを送信するステップを備える、制御方法。
対象装置：制御プログラムの更新対象である車載制御装置
非対象装置：制御プログラムの更新対象ではない車載制御装置
【０００８】
他の実施の形態に従うと、コンピュータプログラムは、車載制御装置と車内通信線を含む伝送路を介して通信する更新制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータを、車載制御装置と車内通信線を含む伝送路を介して通信する通信部と、下記の対象装置が制御プログラムの更新処理を実行できない場合に、下記の非対象装置である代替装置に更新処理の一部の代替を要求する要求メッセージを、通信部に送信させる制御部と、として機能させる、コンピュータプログラム。
対象装置：制御プログラムの更新対象である車載制御装置
非対象装置：制御プログラムの更新対象ではない車載制御装置
【図面の簡単な説明】
【０００９】
【図１】図１は、プログラム更新システムの全体構成図である。
【図２】図２は、ゲートウェイの内部構成を示すブロック図である。
【図３】図３は、ＥＣＵの内部構成を示すブロック図である。
【図４】図４は、管理サーバの内部構成を示すブロック図である。
【図５】図５は、比較例のプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。
【図６】図６は、第１の実施の形態にかかるプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。
【図７】図７は、更新制御処理の具体的な内容を表したフローチャートである。
【図８】図８は、図７のステップＳ１０３の決定処理の流れを表したフローチャートである。
【図９】図９は、第２の実施の形態にかかるプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。
【図１０】図１０は、第３の実施の形態にかかるプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
＜本開示が解決しようとする課題＞
特許文献１に開示されているようなオンライン更新では、制御プログラムの更新を指示されたＥＣＵが更新を実行できない状態である場合には、ネットワークを介してダウンロードされた更新用プログラムはゲートウェイなどの制御装置にいったん保存され、更新を実行できる状態になると、制御装置から転送されて更新が開始されることが想定される。制御プログラムの更新を実行できない状態とは、たとえば、対象のＥＣＵが走行に関わる機能を制御するＥＣＵであって、車両が走行中の状態や、対象のＥＣＵが起動していない状態などである。
【００１１】
この場合、制御装置は更新用プログラムをメモリに保存するために、メモリが圧迫される。特に、昨今のＥＣＵの高機能化に鑑みると、更新用プログラムのサイズが大きかったり、同じタイミングに更新が必要なＥＣＵが複数であったりするため、メモリが大きく圧迫されるおそれがある。
【００１２】
また、対象のＥＣＵが更新を実行できる状態となるのを待って制御装置が更新用プログラムを転送して当該ＥＣＵにおいて更新が開始されると、当該ＥＣＵが更新を実行できる状態となってから更新が完了するまでの期間が長くなる。特に、同じタイミングに更新が必要なＥＣＵが複数ある場合には、それぞれのＥＣＵが更新を実行できる状態となってから更新が開始されるために、すべてのＥＣＵの更新が完了するまでの期間が長くなる。
【００１３】
本開示のある局面における目的は、車載制御装置が制御プログラムの更新ができない状態である場合における当該車載制御装置での更新を制御する更新制御装置、制御方法、およびコンピュータプログラムを提供することである。
【００１４】
＜本開示の効果＞
この開示によると、車載制御装置が制御プログラムの更新ができない状態である場合における当該車載制御装置での更新を制御することができる。
【００１５】
［実施の形態の説明］
本実施の形態には、少なくとも以下のものが含まれる。すなわち、
（１）本実施の形態に含まれる更新制御装置は、車載制御装置と車内通信線を含む伝送路を介して通信する通信部と、下記の対象装置が制御プログラムの更新処理を実行できない場合に、下記の非対象装置である代替装置に更新処理の一部の代替を要求する要求メッセージを、通信部に送信させる制御部と、を備える。
対象装置：制御プログラムの更新対象である車載制御装置
非対象装置：制御プログラムの更新対象ではない車載制御装置
これにより、更新対象の車載制御装置が制御プログラムの更新処理を実行できない状態であっても、代替装置によって更新処理の少なくとも一部が実行される。そのため、更新対象の車載制御装置が制御プログラムの更新処理実行できる状態になるまで１台の装置で更新用プログラムを保存しておく場合と比較して、更新用プログラムの保存先を分散することができ、当該１台の装置のメモリの圧迫を回避することができる。また、更新制御処理の開始を早めることができ、その結果、更新対象の車載制御装置での更新完了の遅延を抑えることができる。
【００１６】
（２）好ましくは、制御部は、代替の可否を問い合わせる非対象装置宛の問い合わせメッセージを通信部に送信させ、非対象装置からの応答メッセージの内容に応じて、非対象装置を代替装置とするか否かを決定する。
これにより、非対象装置の応答内容に応じて代替装置を決定することができる。
【００１７】
（３）好ましくは、制御部は、複数の非対象装置に、優先度に従って代替の可否を問い合わせる。
これにより、優先度の高い車載制御装置を代替装置と決定することができる。
【００１８】
（４）好ましくは、制御部は、動的な処理能力が所定値以上であることを含む応答メッセージを受信した場合は、当該応答メッセージの送信元の非対象装置を代替装置と決定する。
これにより、動的な処理能力が高い車載制御装置を代替装置と決定することができる。その結果、代替装置と決定された車載制御装置の過負荷を回避できる。
【００１９】
（５）好ましくは、制御部は、応答メッセージの送信元の複数の非対象装置から優先度に従って代替装置を決定する。
これにより、適切な車載制御装置を代替装置と決定することができる。
【００２０】
（６）好ましくは、通信部に複数の車内通信線が終端し、かつ、通信部が車内通信線に接続された機器を選択的に起動する機能を有しない場合は、制御部は、対象装置と同じ車内通信線に繋がる非対象装置を、対象装置と異なる車内通信線に繋がる非対象装置よりも高優先とする。
通信部が車内通信線に接続された機器を選択的に起動する機能を有しない場合、１つの車内通信線でデータを転送すると当該車内通信線に接続されたすべての車載制御装置が起動する。この場合に、更新対象の車載制御装置と異なる車内通信線に接続された車載制御装置を代替装置とすることによって当該代替装置と同一の車内通信線に接続された他の車載制御装置が起動していない場合にも起動させてしまう、という事態を回避できる。
【００２１】
（７）好ましくは、制御部は、車両走行に無関係な制御機能を担う非対象装置を、その他の機能を担う非対象装置よりも高優先とする。
これにより、非対象装置が代替する更新処理の一部が、当該非対象装置が本来実行する処理に影響を及ぼす可能性がある場合であっても、車両走行への当該影響を防止できる。
【００２２】
（８）好ましくは、更新処理は複数のプロセスを含み、制御部は、複数のプロセスのうちの代替装置に代替を要求するプロセスを決定する。
これにより、代替車載制御処理の過負荷を抑えながら、更新対象の車載制御装置での更新の完了を早めることができる。
【００２３】
（９）本実施の形態に含まれる制御方法は、（１）〜（８）のいずれか１つに記載の更新制御装置において、車載制御装置での制御プログラムの更新を制御する方法である。
かかる制御方法は、上記（１）〜（８）の更新制御装置と同様の効果を奏する。
【００２４】
（１０）本実施の形態に含まれるコンピュータプログラムは、コンピュータを、（１）〜（８）のいずれか１つに記載の更新制御装置として機能させる。
かかるコンピュータプログラムは、上記（１）〜（８）の更新制御装置と同様の効果を奏する。
【００２５】
［実施の形態の詳細］
以下に、図面を参照しつつ、好ましい実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００２６】
＜第１の実施の形態＞
〔システムの全体構成〕
図１は、実施形態にかかるプログラム更新システムの全体構成図である。
図１に示すように、本実施形態のプログラム更新システムは、一例として広域通信網２である通信ネットワークを介して通信可能な車両１、管理サーバ５およびＤＬ（ダウンロード）サーバ６を含む。
管理サーバ５は、車両１の更新情報を管理する。ＤＬサーバ６は、更新用プログラムを保存する。管理サーバ５およびＤＬサーバ６は、たとえば、車両１のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両１と通信可能である。
【００２７】
車両１には、車内通信線１６で接続された複数のＥＣＵ３０とゲートウェイ１０とを含む車内ネットワーク（通信ネットワーク）４と、無線通信部１５と、各ＥＣＵ３０によりそれぞれ制御される各種の車載機器（図示せず）と、が搭載されている。
車内ネットワーク４は複数の車内通信線１６Ａ，１６Ｂを有する。車内ネットワーク４は、車内通信線１６Ａにバス接続されたＥＣＵ３０Ａ〜３０Ｃ、車内通信線１６Ｂにバス接続されたＥＣＵ３０Ｄ，３０Ｅである、複数の通信グループを含む。ゲートウェイ１０は、通信グループ間の通信を中継している。このため、ゲートウェイ１０には車内通信線１６Ａ，１６Ｂが接続されている。車内通信線１６Ａ，１６Ｂを車内通信線１６とも総称する。
【００２８】
無線通信部１５は、携帯電話網などの広域通信網２に通信可能に接続され、車内通信線によりゲートウェイ１０に接続されている。ゲートウェイ１０は、広域通信網２を通じて管理サーバ５およびＤＬサーバ６などの車外装置から無線通信部１５が受信した情報を、車内通信線を介してＥＣＵ３０に送信する。
ゲートウェイ１０は、ＥＣＵ３０から取得した情報を無線通信部１５に送信し、無線通信部１５は、その情報を管理サーバ５などの車外装置に送信する。
また、ＥＣＵ３０同士は、車内通信線を介して情報を送受信する。
【００２９】
車両１に搭載される無線通信部１５としては、車載の専用通信端末の他に、たとえば、ユーザが所有する携帯電話機、スマートフォン、タブレット型端末、ノートＰＣ（Personal  Computer）等の装置が考えられる。
図１では、ゲートウェイ１０が無線通信部１５を介して車外装置と通信を行う場合が例示されているが、ゲートウェイ１０が無線通信の機能を有する場合には、ゲートウェイ１０自身が管理サーバ５などの車外装置と無線通信を行う構成としてもよい。
【００３０】
また、図１のプログラム更新システムでは、管理サーバ５とＤＬサーバ６とが別個のサーバで構成されているが、これらのサーバ５，６を１つのサーバ装置で構成してもよい。また、管理サーバ５およびＤＬサーバ６は、いずれも、複数の装置からなるものであってもよい。
【００３１】
なお、プログラム更新システムには、ＤＬサーバ６に替えて（または加えて）、更新用プログラムを保存し、ゲートウェイ１０と有線または無線通信で通信可能な車外装置が含まれてもよい。
【００３２】
〔ゲートウェイの内部構成〕
図２は、ゲートウェイ１０の内部構成を示すブロック図である。
図２に示すように、ゲートウェイ１０は、ＣＰＵ１１、ＲＡＭ（Random  Access  Memory）１２、記憶部１３、および車内通信部１４などを備える。ゲートウェイ１０は、無線通信部１５と車内通信線を介して接続されているが、これらは一つの装置で構成してもよい。
【００３３】
ＣＰＵ１１は、記憶部１３に記憶された一または複数のプログラムをＲＡＭ１２に読み出して実行することにより、ゲートウェイ１０を各種情報の中継装置として機能させる。
ＣＰＵ１１は、たとえば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。なお、ＣＰＵ１１は複数のＣＰＵ群を代表するものであってもよい。この場合、ＣＰＵ１１の実現する機能は、複数のＣＰＵ群が協働して実現するものである。ＲＡＭ１２は、ＳＲＡＭ（Static  ＲＡＭ）またはＤＲＡＭ（Dynamic  ＲＡＭ）等のメモリ素子で構成され、ＣＰＵ１１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００３４】
ＣＰＵ１１が実現するコンピュータプログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの周知の記録媒体に記録した状態で譲渡することもできるし、サーバコンピュータなどのコンピュータ装置からの情報伝送によって譲渡することもできる。
この点は、後述のＥＣＵ３０のＣＰＵ３１（図３参照）が実行するコンピュータプログラム、および、後述の管理サーバ５のＣＰＵ５１（図４参照）が実行するコンピュータプログラムについても同様である。
なお、以降の説明において、上位装置が下位装置にデータを転送（送信）することを「ダウンロードする」ともいう。
【００３５】
記憶部１３は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子などにより構成されている。記憶部１３は、ＣＰＵ１１が実行するプログラムおよび実行に必要なデータ等を記憶するとともに、ＤＬサーバ６から受信した、ダウンロード対象の各ＥＣＵ３０の更新用プログラムなどを記憶する。
【００３６】
車内通信部１４には、車両１に配設された車内通信線１６を介して複数のＥＣＵ３０が接続されている。車内通信部１４は、たとえばＣＡＮ（Controller  Area  Network）の規格に応じて、ＥＣＵ３０との通信を行う。車内通信部１４の採用する通信規格はＣＡＮに限定されず、ＣＡＮＦＤ（ＣＡＮ  with  Flexible  Data  Rate）、ＬＩＮ（Local  Interconnect  Network）、Ｅｔｈｅｒｎｅｔ（登録商標）、またはＭＯＳＴ（Media  Oriented  Systems  Transport：ＭＯＳＴは登録商標）等の規格であってもよい。複数の車内通信線１６Ａ，１６Ｂの中には、通信規格の異なるものが含まれていてもよい。
車内通信部１４は、ＣＰＵ１１から与えられた情報を対象のＥＣＵ３０へ送信するとともに、ＥＣＵ３０から受信した情報をＣＰＵ１１に与える。車内通信部１４は、上記の通信規格だけでなく、車内ネットワーク４に用いる他の通信規格によって通信してもよい。
【００３７】
無線通信部１５は、アンテナと、アンテナからの無線信号の送受信を実行する通信回路とを含む無線通信機よりなる。無線通信部１５は、携帯電話網等の広域通信網２に接続されることにより車外装置との通信が可能である。
無線通信部１５は、図示しない基地局により形成される広域通信網２を介して、ＣＰＵ１１から与えられた情報を管理サーバ５等の車外装置に送信するとともに、車外装置から受信した情報をＣＰＵ１１に与える。
【００３８】
図２に示す無線通信部１５に代えて、車両１内の中継装置として機能する通信部を採用してもよい。この通信部は、ＵＳＢ（Universal  Serial  Bus）またはＲＳ２３２Ｃ等の規格に応じた通信ケーブルが接続されるコネクタを有し、通信ケーブルを介して接続された別の通信装置と有線通信を行ってもよい。また、この通信部は、Ｂｌｕｅｔｏｏｔｈ（登録商標）またはＷｉ−Ｆｉ（Wireless  Fidelity：登録商標）等の規格に応じたインタフェースを有し、近距離無線を介して接続された別の通信装置と無線通信を行ってもよい。
別の通信装置と管理サーバ５等の車外装置とが広域通信網２を通じた無線通信が可能である場合には、車外装置→別の通信装置→通信部→ゲートウェイ１０の通信経路により、車外装置とゲートウェイ１０とが通信可能になる。
【００３９】
〔ＥＣＵの内部構成〕
図３は、ＥＣＵ３０の内部構成を示すブロック図である。
図３に示すように、ＥＣＵ３０は、ＣＰＵ３１、ＲＡＭ３２、記憶部３３、および通信部３４などを備える。ＥＣＵ３０は、車両１に搭載された対象機器を個別に制御する車載制御装置である。ＥＣＵ３０の種類には、たとえば、電源制御ＥＣＵ、エンジン制御ＥＣＵ、ステアリング制御ＥＣＵ、およびドアロック制御ＥＣＵなどがある。
【００４０】
ＣＰＵ３１は、記憶部３３に予め記憶された一または複数のプログラムをＲＡＭ３２に読み出して実行することにより、自身が担当する対象機器の動作を制御する。ＣＰＵ３１もまた複数のＣＰＵ群を代表するものであってもよく、ＣＰＵ３１による制御は、複数のＣＰＵ群が協働することによる制御であってもよい。
ＲＡＭ３２は、ＳＲＡＭまたはＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ３１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００４１】
記憶部３３は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置等により構成されている。
記憶部３３は、ＣＰＵ３１が読み出して実行するプログラムを格納する。記憶部３３が記憶する情報には、たとえば、車内の制御対象である対象機器を制御するための情報処理をＣＰＵ３１に実行させるためのコンピュータプログラムや、パラメータや地図情報などの、当該プログラムを実行する際に用いるデータである制御プログラムが含まれる。
【００４２】
通信部３４には、車両１に配設された車内通信線を介してゲートウェイ１０が接続されている。通信部３４は、たとえばＣＡＮ、Ｅｔｈｅｒｎｅｔ、またはＭＯＳＴ等の規格に応じて、ゲートウェイ１０との通信を行う。
通信部３４は、ＣＰＵ３１から与えられた情報をゲートウェイ１０へ送信するとともに、ゲートウェイ１０から受信した情報をＣＰＵ３１に与える。通信部３４は、上記の通信規格だけなく、車載ネットワークに用いる他の通信規格によって通信してもよい。
【００４３】
ＥＣＵ３０のＣＰＵ３１には、当該ＣＰＵ３１による制御モードを、「通常モード」または「リプログラミングモード」（以下、「リプロモード」ともいう。）のいずれかに切り替える起動部３５が含まれる。
ここで、通常モードとは、ＥＣＵ３０のＣＰＵ３１が、対象機器に対する本来的な制御（たとえば、燃料エンジンに対するエンジン制御や、ドアロックモータに対するドアロック制御など）を実行する制御モードのことである。
【００４４】
リプログラミングモードとは、対象機器の制御に用いる制御プログラムを更新する制御モードである。
すなわち、リプログラミングモードは、ＣＰＵ３１が、記憶部３３のＲＯＭ領域に対して、制御プログラムのデータの消去や書き換えを行う制御モードのことである。ＣＰＵ３１は、この制御モードのときにのみ、記憶部３３のＲＯＭ領域に格納された制御プログラムを新バージョンに更新することが可能となる。
【００４５】
リプロモードにおいてＣＰＵ３１が新バージョンの制御プログラムを記憶部３３に書き込むと、起動部３５は、ＥＣＵ３０をいったん再起動（リセット）させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
起動部３５は、上記のベリファイ処理の完了後に、ＣＰＵ３１を更新後の制御プログラムによって動作させる。
ＤＬサーバ６からゲートウェイ１０を介してＥＣＵ３０に更新用プログラムがダウンロードされ、当該更新用プログラムを用いて制御プログラムを更新することを、オンライン更新とも称する。
【００４６】
〔管理サーバの内部構成〕
図４は、管理サーバ５の内部構成を示すブロック図である。
図４に示すように、管理サーバ５は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、記憶部５４、および通信部５５などを備える。
【００４７】
ＣＰＵ５１は、ＲＯＭ５２に予め記憶された一または複数のプログラムをＲＡＭ５３に読み出して実行することにより、各ハードウェアの動作を制御し、管理サーバ５をゲートウェイ１０と通信可能な車外装置として機能させる。ＣＰＵ５１もまた複数のＣＰＵ群を代表するものであってもよく、ＣＰＵ５１の実現する機能は、複数のＣＰＵ群が協働して実現するものであってもよい。
ＲＡＭ５３は、ＳＲＡＭまたはＤＲＡＭ等のメモリ素子で構成され、ＣＰＵ５１が実行するプログラムおよび実行に必要なデータ等が一時的に記憶される。
【００４８】
記憶部５４は、フラッシュメモリ若しくはＥＥＰＲＯＭ等の不揮発性のメモリ素子、または、ハードディスクなどの磁気記憶装置等により構成されている。
通信部５５は、所定の通信規格に則って通信処理を実行する通信装置よりなり、携帯電話網等の広域通信網２に接続されて当該通信処理を実行する。通信部５５は、ＣＰＵ５１から与えられた情報を、広域通信網２を介して外部装置に送信するとともに、広域通信網２を介して受信した情報をＣＰＵ５１に与える。
【００４９】
〔比較例の制御プログラムの更新シーケンス〕
図５は、比較例のプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。比較例の制御プログラムの更新シーケンスおよび後述する実施の形態にかかる制御プログラムの更新シーケンスでは、いずれも、図１に示されたＥＣＵ３０Ａの制御プログラムを更新するＥＣＵ（対象ＥＣＵとも称する）とする場合を例に説明する。対象ＥＣＵが図１に示された他のＥＣＵ３０である場合も、同じ動作が行われる。ＤＬサーバ６に１または複数の更新用プログラムが格納され、一例として、管理サーバ５が、予め登録された車両１について、当該車両１のＥＣＵの制御プログラムを更新するタイミングを決定する。更新のタイミングは、たとえば、車両１のカーメーカーなどによって設定されてもよい。
【００５０】
なお、制御プログラムは、プログラムそのもののみならず、パラメータや地図情報などの、当該プログラムを実行する際に用いるデータも含む。それらを代表させて「制御プログラム」と表現している。そのため、更新用プログラムは、プログラムの更新用のプログラムのみならず、当該プログラムを実行する際に用いるデータの更新用のデータを含む。
【００５１】
制御プログラムを更新するタイミングに達すると、管理サーバ５は、該当する車両１のゲートウェイ１０宛てに、更新を通知する。管理サーバ５から更新の通知を受信したゲートウェイ１０は、ＤＬサーバ６に対して更新用プログラムのダウンロードを要求する。ゲートウェイ１０からダウンロードが要求されたＤＬサーバ６は、ダウンロード対象の更新用プログラムをゲートウェイ１０に送信する（ステップＳ１）。
【００５２】
ゲートウェイ１０は、更新用プログラムをダウンロードすると、記憶部１３にいったん記憶する(ステップＳ２）。その後、対象ＥＣＵであるＥＣＵ３０Ａ（この説明において対象ＥＣＵ３０Ａと略する）に制御プログラムの更新が可能な状態であるか否かの状態を問い合わせる（ステップＳ３Ａ）。
【００５３】
この説明において、期間Ｔ１は、対象ＥＣＵ３０Ａが制御プログラムの更新を実行できない状態（不可状態とも称する）である期間を指し、期間Ｔ２は、対象ＥＣＵ３０Ａが更新を実行できる状態（可状態とも称する）である期間を指す。期間Ｔ１は、たとえば、車両１が走行中の期間であり、期間Ｔ２は、たとえば、車両１が停車中の期間である。
【００５４】
期間Ｔ１内にステップＳ３Ａの問い合わせがあった場合、対象ＥＣＵ３０Ａは不可状態を回答する（ステップＳ３Ｂ）。この場合、ゲートウェイ１０は、更新用プログラムを記憶部１３に保持して、所定の間隔で対象ＥＣＵ３０Ａへの更新の要求を繰り返す。
【００５５】
期間Ｔ１が終了して期間Ｔ２となると、対象ＥＣＵ３０Ａは可状態になるため、その期間に問い合わせがあった場合、対象ＥＣＵ３０Ａは可状態を回答する。対象ＥＣＵ３０Ａから可状態の回答を得たゲートウェイ１０は、対象ＥＣＵ３０Ａに更新用プログラムを送信して、制御プログラムの更新を要求する（ステップＳ４）。この要求に応じて、対象ＥＣＵ３０Ａでは更新処理が実行され（ステップＳ５）、制御プログラムが更新される。
【００５６】
ＥＣＵ３０において実行される更新処理は、ゲートウェイ１０から更新用プログラムを受信してから開始され、記憶部３３の制御プログラムの保存領域に更新後（新バージョン）の制御プログラムが完了して終了する、一連の処理を指し、当該処理の開始から終了までの間に複数プロセスを含む。一例として、次の５つのプロセスを含む。更新処理に含まれる複数のプロセスは下のプロセス＃１〜＃５に限定されない。
プロセス＃１：ファイル（更新用プログラム）を記憶部３３に保存する
プロセス＃２：暗号化されたファイルを復号処理して圧縮ファイルを取得する
プロセス＃３：復号後の、圧縮ファイルを解凍処理して更新用プログラムを取得する
プロセス＃４：更新前（旧バージョン）の制御プログラムに更新用プログラムを適用して、更新後（新バージョン）の制御プログラムを構築する
プロセス＃５：記憶部３３の制御プログラムの保存領域に新バージョンの制御プログラムを上書きすることで、旧バージョンの制御プログラムを書き換える
【００５７】
ステップＳ４で更新の要求を受けた対象ＥＣＵ３０Ａは、プロセス＃１から処理を開始して、プロセス＃５まで順に実行して、更新処理を完了する。期間Ｔ１が期間Ｔ２に移行して対象ＥＣＵ３０Ａが可状態となってから対象ＥＣＵ３０Ａにおいて更新処理が完了するまでの期間、つまり、対象ＥＣＵ３０Ａにおいて更新処理を行っていた期間を処理時間Ｄとすると、比較例の処理時間Ｄ１は、期間Ｔ１が期間Ｔ２に移行したタイミングｔ１から対象ＥＣＵ３０ＡでステップＳ５の更新処理が完了するタイミングｔ２までの時間（ｔ２−ｔ１）となる。
【００５８】
[実施の形態の制御プログラムの更新シーケンス]
図６は、第１の実施の形態にかかるプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。図６において、図５の比較例のオンライン更新の流れと同じ動作については、同じステップ番号で表されている。
【００５９】
図６を参照して、実施の形態にかかるプログラム更新システムでは、ゲートウェイ１０が、対象ＥＣＵ３０Ａでの制御プログラムの更新を制御する更新制御装置として機能する。ゲートウェイ１０は、期間Ｔ１内のステップＳ３Ａの問い合わせに対して対象ＥＣＵ３０Ａから不可状態の回答を得ると（ステップＳ３Ｂ）、対象ＥＣＵ３０Ａでの制御プログラムの更新を制御するために更新制御処理を実行する（ステップＳ２０）。
【００６０】
更新制御処理は、対象ＥＣＵ３０Ａが不可状態である場合に、当該更新用プログラムを用いた更新処理の少なくとも一部を、対象ＥＣＵ３０Ａとは異なるＥＣＵ（代替ＥＣＵとも称する）に代替させるための処理である。図６の例では、代替ＥＣＵが図１に示されたＥＣＵ３０Ｂであるものとしている。特に限定されない場合には代替ＥＣＵはＥＣＵ３０Ｂに限定されず、対象ＥＣＵ以外のいずれのＥＣＵ３０であってもよい。これは、後述する第２の実施の形態および第３の実施の形態にかかるプログラム更新システムの動作（図９、図１０）でも同様である。他のＥＣＵ３０が代替ＥＣＵとなる場合であっても、図６と同じ動作が行われる。具体的には、図６を参照して、ゲートウェイ１０は、代替ＥＣＵであるＥＣＵ３０Ｂ（この説明において代替ＥＣＵ３０Ｂと略する）に更新処理の実行の可否を問い合わせ（ステップＳ２１Ａ）、代替ＥＣＵ３０Ｂから可状態の回答を得ると(ステップＳ２１Ｂ）、代替ＥＣＵ３０Ｂに更新用プログラムを送信して、プロセス＃１〜＃５の少なくとも一部の更新処理である第１の更新処理を要求する（ステップＳ２２）。この要求に応じて、代替ＥＣＵ３０Ｂでは、第１の更新処理が実行される（ステップＳ２３）。第１の更新処理の処理結果は、代替ＥＣＵ３０Ｂの記憶部３３に保存される。
【００６１】
期間Ｔ１が終了して期間Ｔ２となって対象ＥＣＵ３０Ａから可状態の回答を得ると、ゲートウェイ１０は、代替ＥＣＵ３０Ｂに対して第１の更新処理の処理結果の送信を要求し（ステップＳ２４）、代替ＥＣＵ３０Ｂから第１の更新処理の処理結果を取得する(ステップＳ２５）。ゲートウェイ１０は、対象ＥＣＵ３０Ａに第１の更新処理の処理結果を送信して、プロセス＃１〜＃５の残りの更新処理である第２の更新処理を要求する（ステップＳ４’）。この要求に応じて、対象ＥＣＵ３０Ａでは第２の更新処理が実行され（ステップＳ５’）、制御プログラムが更新される。
【００６２】
本実施の形態にかかるプログラム更新システムの対象ＥＣＵ３０Ａでの処理時間Ｄ２は、期間Ｔ１が期間Ｔ２に移行したタイミングｔ１から対象ＥＣＵ３０ＡでステップＳ５’の更新処理が完了するタイミングｔ３までの時間（ｔ３−ｔ１）となる。実施の形態の制御プログラムの更新シーケンスでは、期間Ｔ１のうちの代替ＥＣＵ３０Ｂにおいて更新処理の一部が実行されるため、対象ＥＣＵ３０Ａでの処理時間Ｄ２は比較例における対象ＥＣＵ３０Ａでの処理時間Ｄ１よりも短くできる。
【００６３】
［ゲートウェイの機能構成］
図２を参照して、ゲートウェイ１０のＣＰＵ１１は、更新制御処理を実行するための機能として更新制御部１１１を含む。更新制御処理は、決定処理を含む。そこで、更新制御部１１１は、決定処理を実行するための機能として決定部１１２を含む。これらの機能は、ＣＰＵ１１が記憶部１３に記憶されている１つまたは複数のプログラムを読み出して実行することによって、ＣＰＵ１１において実現される機能である。しかしながら、これら機能の少なくとも一部が、電子回路などのハードウェアによって実現されてもよい。
【００６４】
（決定処理）
決定処理は、代替ＥＣＵを決定する第１の処理と、当該代替ＥＣＵが代替するプロセスを決定する第２の処理と、を含む。決定部１１２は、第１の処理において、対象ＥＣＵ以外の非対象装置である複数のＥＣＵ３０のうち、動的な処理能力が所定値以上ある、たとえば、ＣＰＵ３１の使用率が閾値以下であるＥＣＵ３０を代替ＥＣＵに決定する。これにより、代替ＥＣＵでの過負担を回避できる。
【００６５】
第１の処理のために、決定部１１２は、各ＥＣＵ３０のＣＰＵ３１の使用率を取得する。一例として、決定部１１２は、各ＥＣＵ３０に更新処理の可否として、ＣＰＵ３１の使用率を問い合わせる。決定部１１２は、ＣＡＮ通信における送信情報のフォーマットであるフレームに問い合わせコマンドを含めた問い合わせ用のフレーム（メッセージ）を生成し、車内通信線１４から各ＥＣＵ３０に送信させる。
【００６６】
決定部１１２は、一例として、複数のＥＣＵ３０のうちのＣＰＵ３１の使用率が最も低いＥＣＵ３０を代替ＥＣＵに決定する。これにより、動的な処理能力が最も大きいＥＣＵ３０が代替ＥＣＵとされる。
【００６７】
他の例として、決定部１１２は、ＣＰＵ３１の使用率が閾値以下の複数のＥＣＵ３０の中から優先度に従って代替ＥＣＵに決定する。優先度は、一例として、車載メディアプレイヤーなどの走行に関連しない機能を制御するＥＣＵの方が、そうでない機能を制御するＥＣＵよりも高く設定されている。代替ＥＣＵが更新処理の一部を代替する場合、その更新処理の一部が当該ＥＣＵが本来実行する処理に影響を及ぼす可能性がある場合もある。この場合、代替ＥＣＵが車両走行に関連する機能を制御するものである場合、車両走行に当該影響が生じるおそれもある。そのため、車両走行に関連する機能を制御するＥＣＵを高優先とすることによって、車両走行への当該影響を防止できる。
【００６８】
また、優先度は、他の例として、ゲートウェイ１０と対象ＥＣＵとを繋ぐ車内通信線１６と同一の車載通信線１６に接続されたＥＣＵの方が、異なる車内通信線１６に接続されたＥＣＵよりも高く設定されている。具体的には、車内ネットワーク４が図１の構成であって、対象ＥＣＵがＥＣＵ３０Ａである場合、ＥＣＵ３０Ａと同じ車内通信線１６Ａに接続されているＥＣＵ３０Ｂ，３０Ｃの方が、異なる車内通信線１６Ｂに接続されている３０Ｄ，３０Ｅよりも優先度が高く設定されている。車内通信がＣＡＮ通信であって、いわゆるパーシャルネットワークと呼ばれる機能である、各車載通信線１６に接続された複数の機器を選択的に起動する機能（いわゆるパーシャルウェイクアップ機能）を有さない場合、１つの車内通信線１６でデータを転送すると当該車内通信線１６に接続されたすべてのＥＣＵが起動する。そのため、対象ＥＣＵと異なる車内通信線１６に接続されたＥＣＵ３０を代替ＥＣＵとすると、当該代替ＥＣＵと同一の車内通信線１６に接続されたＥＣＵ３０が起動していない場合にも起動させることになるためである。
【００６９】
なお、図６、および後述する図９ならびに図１０では、代替ＥＣＵが一例としてＥＣＵ３０Ｂである例が示されている。これは、ＥＣＵ３０Ｄ，３０Ｅよりも高優先度であるためにＥＣＵ３０Ｂが代替ＥＣＵに決定されたためとも言える。なお、代替ＥＣＵ３０が優先度の低いＥＣＵＤ，３０Ｅであった場合であっても、これら図で説明された動作と同じ動作が行われる。
【００７０】
決定部１１２は、車両１に搭載されているすべてのＥＣＵ３０のうちの対象ＥＣＵ（たとえばＥＣＵ３０Ａ）以外のすべてに問い合わせてもよい。これにより、最適な代替ＥＣＵを決定することができる。または、決定部１１２は、対象ＥＣＵ以外のＥＣＵのうちの優先度の高い（たとえば所定優先度以上の）ＥＣＵのみに問い合わせてもよい。これにより、効率的に代替ＥＣＵを決定できる。
【００７１】
決定部１１２は、第２の処理において、更新処理の複数のプロセス（＃１〜＃５）のうちの代替ＥＣＵに代替させる１つ以上のプロセスを決定する。そのために、決定部１１２は、プロセスごとに必要な処理量と、代替ＥＣＵの動的な処理能力とを比較する。そして、決定部１１２は、プロセス＃１から順に、処理量が代替ＥＣＵの動的な処理能力の規定範囲内であるまでのプロセスを、代替ＥＣＵに代替させるプロセスと決定する。
【００７２】
プロセスごとの処理量は更新用プログラムのデータサイズに依存するため、一例として、データサイズと処理量との対応を予め記憶しておくことで、データサイズに基づいて算出することができる。更新用プログラムのデータサイズは、ＤＬサーバ６から取得することができる。
【００７３】
更新制御部１１１は、代替ＥＣＵに第１の更新処理を要求するために、決定したプロセスの実行を要求するコマンドを含んだフレーム（メッセージ）を生成し、車内通信部１４に当該フレームを代替ＥＣＵに送信させる。
【００７４】
［更新制御処理］
図７は、更新制御処理の具体例を表したフローチャートである。図７のフローチャートに表された処理は、ゲートウェイ１０のＣＰＵ１１が、記憶部１３に記憶された１つまたは複数のプログラムをＲＡＭ１２上に読み出して実行することによって決定部１１２および更新制御部１１１の機能を実現することで実行される。図７の処理は、ゲートウェイ１０がＤＬサーバ６から更新用プログラムをダウンロードすると開始される。
【００７５】
図７を参照して、ＣＰＵ１１は、当該更新用プログラムを用いて制御プログラムを更新する対象ＥＣＵ（たとえばＥＣＵ３０Ａ）に状態を問い合わせ、可状態が不可状態かを特定する。対象ＥＣＵが可状態である場合には(ステップＳ１０１でＹＥＳ）、ＣＰＵ１１は、対象ＥＣＵに更新用プログラムを送信し、更新を要求する（ステップＳ１０２）。
【００７６】
対象ＥＣＵが不可状態であった場合（ステップＳ１０１でＮＯ）、ＣＰＵ１１は決定処理を実行する（ステップＳ１０３）。そして、ＣＰＵ１１は、決定した代替ＥＣＵ（たとえばＥＣＵ３０Ｂ）に、更新用プログラムを送信し、当該更新用プログラムを用いた更新処理のうちの決定されたプロセスの処理である第１の更新処理の実行を指示する（ステップＳ１０５）。ステップＳ１０５でＣＰＵ１１は、必要なフレームを生成し、車内通信部１４に当該フレームを代替ＥＣＵに対して送信させる。
【００７７】
ＣＰＵ１１は、その後も、対象ＥＣＵの状態を問い合わせる。そして、可状態となると（ステップＳ１０７でＹＥＳ）、ＣＰＵ１１は、代替ＥＣＵに対して第１の更新処理の処理結果を要求し、取得した処理結果を対象ＥＣＵに送信して残りの更新処理である第２の更新処理を要求する（ステップＳ１０９）。ステップＳ１０９でＣＰＵ１１は、必要なフレームを生成し、車内通信部１４に当該フレームを代替ＥＣＵに対して送信させる。
【００７８】
図８は、図７のステップＳ１０３の決定処理の流れを表したフローチャートである。始めに、ＣＰＵ１１は、決定処理の第１の処理（ステップＳ２０１〜Ｓ２０５）を実行して、代替ＥＣＵを決定する。図８を参照して、ＣＰＵ１１は、対象ＥＣＵ以外の複数のＥＣＵ３０に対して、動的な処理能力（ＣＰＵ３１の使用率）を問い合わせる（ステップＳ２０１）。ステップＳ２０１でＣＰＵ１１は、必要なフレームを生成し、車内通信部１４に当該フレームを対象ＥＣＵ以外の複数のＥＣＵ３０対して送信させる。好ましくは、ＣＰＵ１１は、対象ＥＣＵ以外の複数のＥＣＵに対して、予め記憶している優先度に応じて問い合わせる。
【００７９】
ステップＳ２０１の問い合わせに対して回答したＥＣＵ３０があった場合（ステップＳ２０３でＹＥＳ）、ＣＰＵ１１は、動的な処理能力を回答したＥＣＵ３０を代替ＥＣＵに決定する（ステップＳ２０５）。
【００８０】
代替ＥＣＵが決定されると、ＣＰＵ１１は、決定処理の第２の処理を実行して、当該代替ＥＣＵが代替するプロセスを決定する（ステップＳ２０７）。
【００８１】
［第１の実施の形態の効果］
第１の実施の形態にかかるプログラム更新システムでは、ゲートウェイ１０がＤＬサーバ６から更新用プログラムをダウンロードした際に、対象ＥＣＵが更新処理が不可状態であった場合に、他のＥＣＵ３０が当該更新用プログラムを受信し、更新処理の少なくとも一部のプロセスを代替する。
【００８２】
比較例のプログラム更新システムでは、期間Ｔ１が経過し、対象ＥＣＵが更新処理が可状態となるまで、ゲートウェイ１０が更新用プログラムを保持する。そのため、期間Ｔ１が長くなるほどゲートウェイ１０のメモリが圧迫される。特に、複数のＥＣＵ用の複数の更新用プログラムがダウンロードされ、当該複数の対象ＥＣＵがいずれも不可状態である場合には、ゲートウェイ１０のメモリの圧迫が深刻になる。
【００８３】
これに対して、第１の実施の形態にかかるプログラム更新システムでは、期間Ｔ１内ではゲートウェイ１０から他のＥＣＵに更新用プログラムが送信される。つまり、更新用プログラムが分散して保存される。そのため、ゲートウェイ１０でのメモリの圧迫を回避できる。
【００８４】
また、比較例のプログラム更新システムでは、期間Ｔ１が期間Ｔ２に移行して、対象ＥＣＵが可状態となってから更新処理が開始されるため、対象ＥＣＵでの処理時間Ｄ１が長くなる。その結果、オンライン更新の完了が遅延する。
【００８５】
これに対して、第１の実施の形態にかかるプログラム更新システムでは、期間Ｔ１内で代替ＥＣＵにおいて更新処理の少なくとも一部（第１の更新処理）が行われる。そして、期間Ｔ１の経過後、対象ＥＣＵにおいて残りの更新処理（第２の更新処理）が行われる。そのため、対象ＥＣＵでの処理時間Ｄ２は処理時間Ｄ１に比べて短い。その結果、オンライン更新の完了の遅延を抑えることができる。
【００８６】
＜変形例１＞
なお、図６の例では、対象ＥＣＵが可状態となると、ゲートウェイ１０が代替ＥＣＵでの第１の更新処理の処理結果を取得して対象ＥＣＵに送信するものとしている。対象ＥＣＵへの処理結果の送信は、この方法に限定されない。ゲートウェイ１０は、代替ＥＣＵに対して対象ＥＣＵに第１の更新処理の処理結果を送信することを指示してもよい。これにより、データ送信を効率化することができる。これは、以降の実施の形態でも同様である。
【００８７】
＜変形例２＞
代替ＥＣＵは、複数のＥＣＵであってもよい。つまり、決定部１１２は、決定処理の第１の処理において、ＣＰＵ３１の使用率が閾値以下である複数のＥＣＵを代替ＥＣＵに決定してもよい。この場合、決定部１１２は、第２の処理において、複数の代替ＥＣＵそれぞれが代替するプロセスを決定する。そして、更新制御部１１１は、プロセスの順に従って、当該プロセスを代替する代替ＥＣＵに、先のプロセスを実行した代替ＥＣＵでの処理結果を送信して、処理を要求する。
【００８８】
複数のＥＣＵを代替ＥＣＵとすることで、代替ＥＣＵそれぞれの処理の負担を軽減させることができる。
【００８９】
＜第２の実施の形態＞
第１の実施の形態にかかるプログラム更新システムでは、ゲートウェイ１０が更新制御装置として機能して、上記の更新制御処理を実行する。しかしながら、更新制御装置はゲートウェイ１０に限定されない。他の例として、対象ＥＣＵが更新制御処理として機能して、自身が更新を制御するための更新制御処理を実行してもよい。この場合、対象ＥＣＵのＣＰＵ３１は、図３に表されたように、更新制御処理を実行するために更新制御部１１１に相当する更新制御部３１１を含む。さらに、更新制御部３１１は、決定部１１２に相当する決定部３１２を含む。
【００９０】
図９は、第２の実施の形態にかかるプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。図９において、図６のオンライン更新の流れと同じ動作については、同じステップ番号で表されている。
【００９１】
図９を参照して、第２の実施の形態にかかるプログラム更新システムでは、ゲートウェイ１０は、ＤＬサーバ６から更新用プログラムをダウンロードすると（ステップＳ１）、対象ＥＣＵに更新用プログラムを送信して更新を要求する（ステップＳ１’）。
【００９２】
対象ＥＣＵは、受信した更新用プログラムを記憶部３３に保存する（ステップＳ２）。対象ＥＣＵは、期間Ｔ１において更新制御処理を実行する（ステップＳ３０）。すなわち、第２の実施の形態では、対象ＥＣＵが他のＥＣＵ３０に動的な処理能力（ＣＰＵ３１の使用率）を問い合わせ（ステップＳ３１Ａ）、回答を得ると（ステップＳ３１Ｂ）、その中から代替ＥＣＵを決定する。また、代替ＥＣＵに処理を要求するプロセスを決定する。そして、対象ＥＣＵは代替ＥＣＵに対して更新用プログラムを送信して、第１の更新処理を要求する（ステップＳ３３）。
【００９３】
期間Ｔ２となって可状態となると、対象ＥＣＵは、代替ＥＣＵに第１の更新処理の処理結果を要求し（ステップＳ３７）、処理結果を取得する（ステップＳ３９）。対象ＥＣＵは、代替ＥＣＵから取得した処理結果を用いて第２の更新処理を実行する（ステップＳ５’）。
【００９４】
第２の実施の形態にかかるプログラム更新システムでは、対象ＥＣＵにおいて、不可状態から可状態になるまで更新用プログラムを記憶しておく場合と比較して、対象ＥＣＵでのメモリの圧迫を回避できる。また、第１の実施の形態にかかるプログラム更新システムと同様に対象ＥＣＵでの処理時間を短くすることができるため、オンライン更新の完了の遅延を抑えることができる。
【００９５】
＜第３の実施の形態＞
更新制御装置のさらに他の例として、管理サーバ５が更新制御装置として機能してもよい。このため、第３の実施の形態にかかるプログラム更新システムでは、管理サーバ５のＣＰＵ５１は、図４に表わされたように、更新制御処理を実行するために更新制御部１１１に相当する更新制御部５１１を含む。さらに、更新制御部５１１は、決定部１１２に相当する決定部５１２を含む。
【００９６】
図１０は、第３の実施の形態にかかるプログラム更新システムにおいて実行される、制御プログラムのオンライン更新の流れの一例を示すシーケンス図である。図１０において、図６のオンライン更新の流れと同じ動作については、同じステップ番号で表されている。
【００９７】
図１０を参照して、第３の実施の形態にかかるプログラム更新システムでは、ゲートウェイ１０は、ＤＬサーバ６から更新用プログラムをダウンロードすると（ステップＳ１）、第１の実施の形態のオンライン更新と同様に、対象ＥＣＵに状態を問い合わせる（ステップＳ３Ａ）。この問い合わせは、管理サーバ５からの要求に応じて行われてもよい。対象ＥＣＵが不可状態である場合（ステップＳ３Ｂ）、ゲートウェイ１０は、対象ＥＣＵが不可状態であることを管理サーバ５に通知する（ステップＳ４１）。
【００９８】
ゲートウェイ１０から通知を受けた管理サーバ５は、更新制御処理を実行する（ステップＳ３０）。管理サーバ５は、ゲートウェイ１０に動的な処理能力の問い合わせを要求する（ステップＳ４２）。ゲートウェイ１０は、要求に従って対象ＥＣＵ以外のＥＣＵに、動的な処理能力（ＣＰＵ３１の使用率）を問い合わせる（ステップＳ４３Ａ）。そして、回答が得られると、ゲートウェイ１０は管理サーバ５に通知する（ステップＳ４４）。
【００９９】
管理サーバ５は、ゲートウェイ１０からの通知に基づいて決定処理の第１の処理を実行し、代替ＥＣＵを決定する。また、管理サーバ５は、決定処理の第２の処理を実行し、代替ＥＣＵに処理を要求するプロセスを決定する。そして、管理サーバ５は、ゲートウェイ１０に、当該ＥＣＵ３０を代替ＥＣＵとして第１の更新処理を要求することを要求する（ステップＳ４５）。ゲートウェイ１０は、要求に従って代替ＥＣＵに更新用プログラムを送信して、第１の更新処理を要求する（ステップＳ４６）。
【０１００】
期間Ｔ２となって対象ＥＣＵから可状態の回答を得ると、ゲートウェイ１０は、管理サーバ５に通知する（ステップＳ４８）。この通知を受けた管理サーバ５は、ゲートウェイ１０に、対象ＥＣＵに第２の更新処理を要求することを要求する（ステップＳ４５）。ゲートウェイ１０は、管理サーバ５の要求に従って代替ＥＣＵに処理結果を要求し（ステップＳ５０）、代替ＥＣＵから処理結果を取得する（ステップＳ５１）。ゲートウェイ１０は、対象ＥＣＵに当該処理結果を送信して、第２の更新処理を要求する（ステップＳ４’）。これにより、対象ＥＣＵにおいて、第２の更新処理が実行される（ステップＳ５’）。
【０１０１】
第３の実施の形態にかかるプログラム更新システムでも、比較例のオンライン更新と比較して、ゲートウェイ１０でのメモリの圧迫を回避できる。また、第１の実施の形態にかかるプログラム更新システムと同様に対象ＥＣＵでの処理時間を短くすることができるため、オンライン更新の完了の遅延を抑えることができる。
【０１０２】
開示された特徴は、１つ以上のモジュールによって実現される。たとえば、当該特徴は、回路素子その他のハードウェアモジュールによって、当該特徴を実現する処理を規定したソフトウェアモジュールによって、または、ハードウェアモジュールとソフトウェアモジュールとの組み合わせによって実現され得る。
【０１０３】
上述の動作をコンピュータに実行させるための、１つ以上のソフトウェアモジュールの組み合わせであるプログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０１０４】
なお、本開示にかかるプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本開示にかかるプログラムに含まれ得る。
【０１０５】
また、本開示にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本開示にかかるプログラムに含まれ得る。提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１０６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０７】
１  車両
２  広域通信網
４  車内ネットワーク
５  管理サーバ
６  ＤＬサーバ
１０  ゲートウェイ
１１  ＣＰＵ
１２  ＲＡＭ
１３  記憶部
１４  車内通信部
１５  無線通信部
１６，１６Ａ，１６Ｂ  車内通信線
３０  ＥＣＵ
３１  ＣＰＵ
３２  ＲＡＭ
３３  記憶部
３４  通信部
３５  起動部
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  記憶部
５５  通信部
１１１  更新制御部
１１２  決定部
３１１  更新制御部
３１２  決定部
５１１  更新制御部
５１２  決定部
【図１】
2018230084.tif 000003
【図２】
2018230084.tif 000004
【図３】
2018230084.tif 000005
【図４】
2018230084.tif 000006
【図５】
2018230084.tif 000007
【図６】
2018230084.tif 000008
【図７】
2018230084.tif 000009
【図８】
2018230084.tif 000010
【図９】
2018230084.tif 000011
【図１０】
2018230084.tif 000012
【手続補正書】
【提出日】令和1年11月26日(2019.11.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
第１の処理のために、決定部１１２は、各ＥＣＵ３０のＣＰＵ３１の使用率を取得する。一例として、決定部１１２は、各ＥＣＵ３０に更新処理の可否として、ＣＰＵ３１の使用率を問い合わせる。決定部１１２は、ＣＡＮ通信における送信情報のフォーマットであるフレームに問い合わせコマンドを含めた問い合わせ用のフレーム（メッセージ）を生成し、車内通信部１４から各ＥＣＵ３０に送信させる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
他の例として、決定部１１２は、ＣＰＵ３１の使用率が閾値以下の複数のＥＣＵ３０の中から優先度に従って代替ＥＣＵに決定する。優先度は、一例として、車載メディアプレイヤーなどの走行に関連しない機能を制御するＥＣＵの方が、そうでない機能を制御するＥＣＵよりも高く設定されている。代替ＥＣＵが更新処理の一部を代替する場合、その更新処理の一部が当該ＥＣＵが本来実行する処理に影響を及ぼす可能性がある場合もある。この場合、代替ＥＣＵが車両走行に関連する機能を制御するものである場合、車両走行に当該影響が生じるおそれもある。そのため、車両走行に関連しない機能を制御するＥＣＵを高優先とすることによって、車両走行への当該影響を防止できる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
なお、図６、および後述する図９ならびに図１０では、代替ＥＣＵが一例としてＥＣＵ３０Ｂである例が示されている。これは、ＥＣＵ３０Ｄ，３０Ｅよりも高優先度であるためにＥＣＵ３０Ｂが代替ＥＣＵに決定されたためとも言える。なお、代替ＥＣＵ３０が優先度の低いＥＣＵ３０Ｄ，３０Ｅであった場合であっても、これら図で説明された動作と同じ動作が行われる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
＜第２の実施の形態＞
第１の実施の形態にかかるプログラム更新システムでは、ゲートウェイ１０が更新制御装置として機能して、上記の更新制御処理を実行する。しかしながら、更新制御装置はゲートウェイ１０に限定されない。他の例として、対象ＥＣＵが更新制御装置として機能して、自身が更新を制御するための更新制御処理を実行してもよい。この場合、対象ＥＣＵのＣＰＵ３１は、図３に表されたように、更新制御処理を実行するために更新制御部１１１に相当する更新制御部３１１を含む。さらに、更新制御部３１１は、決定部１１２に相当する決定部３１２を含む。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
期間Ｔ２となって対象ＥＣＵから可状態の回答を得ると、ゲートウェイ１０は、管理サーバ５に通知する（ステップＳ４８）。この通知を受けた管理サーバ５は、ゲートウェイ１０に、対象ＥＣＵに第２の更新処理を要求することを要求する（ステップＳ４９）。ゲートウェイ１０は、管理サーバ５の要求に従って代替ＥＣＵに処理結果を要求し（ステップＳ５０）、代替ＥＣＵから処理結果を取得する（ステップＳ５１）。ゲートウェイ１０は、対象ＥＣＵに当該処理結果を送信して、第２の更新処理を要求する（ステップＳ４’）。これにより、対象ＥＣＵにおいて、第２の更新処理が実行される（ステップＳ５’）。
【国際調査報告】
2018230084.tif 000013
2018230084.tif 000014