(57)【要約】【課題】移動体内に設けられる車載ＧＷ装置を介した、移動体で実行されるソフトウェアの更新システムを提供する。【解決手段】実施形態のソフトウェア更新システムは、移動体を制御するための所定のシステムで実行されるソフトウェアを更新するシステムであり、移動体内に設けられ、所定のシステムと接続される車載ＧＷ装置と、ネットワークを介して車載ＧＷ装置に接続されるソフトウェア（ＳＷ）更新装置とを含む。ＳＷ更新装置は、ソフトウェアを車載ＧＷ装置に配信し、車載ＧＷ装置からソフトウェアの受信ＯＫ又は受信ＮＧを受信して配信側ログ情報に記録する。車載ＧＷ装置は、配信側ログ情報に対応した移動体側ログ情報にソフトウェアの受信ＯＫ又は受信ＮＧを記録するとともに、受信結果をＳＷ更新装置に送信する。車載ＧＷ装置は、移動体側ログ情報のソフトウェアの受信履歴が受信ＯＫである場合に、所定のシステムに対するソフトウェアの更新を許可する。【選択図】図９
2018078805.tif 000002
【特許請求の範囲】
【請求項１】
移動体を制御するための所定のシステムで実行されるソフトウェアを更新するソフトウェア更新システムであって、
移動体内に設けられ、前記所定のシステムと接続される車載ゲートウェイ装置と、ネットワークを介して前記車載ゲートウェイ装置に接続されるソフトウェア更新装置と、を含み、
前記ソフトウェア更新装置は、
前記車載ゲートウェイ装置に配信するソフトウェアに関連する配信側ログ情報を記憶する第１記憶部と、
前記ソフトウェアを前記車載ゲートウェイ装置に配信する配信制御を行うとともに、前記車載ゲートウェイ装置から前記ソフトウェアの受信ＯＫ又は受信ＮＧを受信して、前記配信側ログ情報に記録するソフトウェア更新制御部と、を有し、
前記車載ゲートウェイ装置は、
前記配信側ログ情報に対応し、前記ソフトウェア更新装置から配信される前記ソフトウェアの前記受信ＯＫ又は受信ＮＧが記録される移動体側ログ情報を記憶する第２記憶部と、
前記ソフトウェアの受信結果に基づいて、前記移動体側ログ情報に前記受信ＯＫ又は受信ＮＧを記録するとともに、移動体側の前記受信ＯＫ又は受信ＮＧを前記ソフトウェア更新装置に送信するソフトウェア更新管理部と、を有し、
前記ソフトウェア更新管理部は、前記移動体側ログ情報を参照して、前記ソフトウェアの受信履歴が前記受信ＯＫである場合に、前記所定のシステムに対する前記ソフトウェアの更新を許可することを特徴とするソフトウェア更新システム。
【請求項２】
前記ソフトウェアは、複数のプログラムモジュールで構成され、
前記ソフトウェア更新制御部は、前記複数のプログラムモジュールそれぞれを前記車載ゲートウェイ装置に配信するとともに、前記車載ゲートウェイ装置から前記複数のプログラムモジュールそれぞれの前記受信ＯＫ又は前記受信ＮＧを受信して、前記配信側ログ情報に記録し、
前記ソフトウェア更新管理部は、
前記ソフトウェア更新装置から配信される前記複数のプログラムモジュールそれぞれの前記受信ＯＫ又は受信ＮＧを前記移動体側ログ情報に記録するとともに、
前記移動体側ログ情報を参照して、前記ソフトウェアを構成する前記複数のプログラムモジュール全ての受信履歴が前記受信ＯＫである場合に、前記所定のシステムに対する前記ソフトウェアの更新を許可することを特徴とする請求項１に記載のソフトウェア更新システム。
【請求項３】
前記ソフトウェア更新制御部は、
前記車載ゲートウェイ装置から送信される前記移動体側ログ情報と前記配信側ログ情報とをマッチングし、少なくとも１つの前記プログラムモジュールのログ情報の前記受信ＯＫ又は前記受信ＮＧが不一致であるか否かを判別するとともに、
不一致であると判別された場合に、前記配信側ログ情報における不一致と判別された前記プログラムモジュールのログ情報を前記受信ＮＧに書き換えて更新するとともに、前記車載ゲートウェイ装置に対して、前記移動体側ログ情報において不一致と判別される前記プログラムモジュールのログ情報を受信ＮＧに更新するように制御し、
更新された前記配信側ログ情報に基づいて、ログ情報が受信ＮＧの前記プログラムモジュールを前記車載ゲートウェイ装置に配信することを特徴とする請求項２に記載のソフトウェア更新システム。
【請求項４】
前記ソフトウェア更新制御部は、
前記ソフトウェアの前記配信側ログ情報を参照して、少なくとも１つの前記プログラムモジュールのログ情報が前記受信ＮＧであるか否かを判別し、少なくとも１つの前記プログラムモジュールのログ情報が前記受信ＮＧであると判別された場合に、前記車載ゲートウェイ装置に、前記移動体側ログ情報を前記ソフトウェア更新装置に送信させるための送信要求を伝送し、
前記車載ゲートウェイ装置から送信される前記移動体側ログ情報と前記配信側ログ情報とをマッチングし、少なくとも１つの前記プログラムモジュールのログ情報の前記受信ＯＫ又は前記受信ＮＧが不一致であると判別された場合に、前記車載ゲートウェイ装置に、前記移動体側ログ情報を破棄させるための破棄要求を伝送し、
不一致と判別された前記プログラムモジュールのログ情報を前記受信ＮＧに書き換えて更新された前記配信側ログ情報とログ内容を同期させた前記移動体側ログ情報を生成して、前記車載ゲートウェイ装置に送信することを特徴とする請求項３に記載のソフトウェア更新システム。
【請求項５】
前記第１記憶部は、前記所定のシステムで実行される複数の前記ソフトウェア、前記ソフトウェアが適用される複数の移動体を分類する属性、及び複数の移動体がノードとして設定され、各ノードをＴｒｅｅ構造で結び付けたソフトウェア管理情報を記憶し、
前記ソフトウェア更新装置は、前記ソフトウェア管理情報の各ノードに、ノード鍵を割り当てるとともに、上位のノードから下位のノードまでの各ノード鍵を複合化して、前記ソフトウェア更新装置及び移動体で共有される移動体別の固有鍵を生成する鍵管理部をさらに有し、
前記ソフトウェア更新制御部は、複数の移動体に配信する前記ソフトウェアのノード鍵を用いて前記ソフトウェアを暗号化して、前記車載ゲートウェイ装置に配信することを特徴とする請求項１から４のいずれか１つに記載のソフトウェア更新システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、車両などの移動体内に設けられる車載ゲートウェイ装置を介して、移動体で実行されるソフトウェアの更新技術に関する。
【背景技術】
【０００２】
例えば、車両は、車両制御システムによって全体が管理されている。車両制御システムは、複数の制御プログラムを実行して車両を制御している。車両制御システムで使用されるソフトウェア（制御プログラムや制御プログラムの実行に使用されるデータ）は、適宜更新（修正プログラム又は／及び新規プログラムのインストール）することがある。ソフトウェアの更新は、ネットワークを介したデータ通信で行ったり、ディーラーや工場で行ったりすることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２５４１２０号公報
【特許文献２】特開平１１−２３９１２６号公報
【特許文献３】国際公開第２００４／０２８１１２号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
移動体内に設けられる車載ゲートウェイ装置を介した、移動体で実行されるソフトウェアの更新システムを提供する。
【課題を解決するための手段】
【０００５】
実施形態のソフトウェア更新システムは、移動体を制御するための所定のシステムで実行されるソフトウェアを更新するシステムであり、移動体内に設けられ、前記所定のシステムと接続される車載ゲートウェイ装置と、ネットワークを介して前記車載ゲートウェイ装置に接続されるソフトウェア更新装置と、を含んで構成される。前記ソフトウェア更新装置は、前記車載ゲートウェイ装置に配信するソフトウェアに関連する配信側ログ情報を記憶する第１記憶部と、前記ソフトウェアを前記車載ゲートウェイ装置に配信する配信制御を行うとともに、前記車載ゲートウェイ装置から前記ソフトウェアの受信ＯＫ又は受信ＮＧを受信して、前記配信側ログ情報に記録するソフトウェア更新制御部と、を有する。前記車載ゲートウェイ装置は、前記配信側ログ情報に対応し、前記ソフトウェア更新装置から配信される前記ソフトウェアの前記受信ＯＫ又は受信ＮＧが記録される移動体側ログ情報を記憶する第２記憶部と、前記ソフトウェアの受信結果に基づいて、前記移動体側ログ情報に前記受信ＯＫ又は受信ＮＧを記録するとともに、移動体側の前記受信ＯＫ又は受信ＮＧを前記ソフトウェア更新装置に送信するソフトウェア更新管理部と、を有する。前記ソフトウェア更新管理部は、前記移動体側ログ情報を参照して、前記ソフトウェアの受信履歴が前記受信ＯＫである場合に、前記所定のシステムに対する前記ソフトウェアの更新を許可する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態のソフトウェア更新システムの概略図である。
【図２】第１実施形態の車載ゲートウェイ装置が適用された車内及び車外のネットワーク構成図である。
【図３】第１実施形態の車載ゲートウェイ装置の構成ブロックを示す図である。
【図４】第１実施形態のソフトウェア更新装置の構成ブロックを示す図である。
【図５】第１実施形態の複数の移動体に対するＴｒｅｅ構造のソフトウェア管理情報の一例を示す図である。
【図６】第１実施形態のグループ鍵暗号化方式に基づく移動体の固有鍵を説明するための図である。
【図７】第１実施形態のグループ鍵暗号化方式に基づく移動体の固有鍵の登録処理を示すフローチャートである。
【図８】第１実施形態の移動体の固有鍵によるソフトウェアの一斉更新を説明するための図である。
【図９】第１実施形態の配信側ログファイル及び移動体側ログファイルを使用したソフトウェアの配信制御を説明するための図である。
【図１０】第１実施形態の車載ゲートウェイ装置を介したソフトウェア更新処理を示すフローチャートである。
【図１１】第１実施形態の車載ゲートウェイ装置を介したソフトウェア更新処理（差分更新処理）を示すフローチャートである。
【発明を実施するための最良の形態】
【０００７】
以下、実施形態につき、図面を参照して説明する。【０００８】
（第１実施形態）
図１は、第１実施形態のソフトウェア更新システムの概略図である。本実施形態のソフトウェア更新システムは、移動体で実行され、移動体の制御に用いられるソフトウェアの更新システムである。なお、本実施形態では、移動体として車両を一例に説明するが、他の移動体（電車、自動で又は無線により遠隔操作されるロボットや飛行体など）にも適用可能である。【０００９】
移動体には、車載ゲートウェイ装置２００（以下、車載ＧＷ装置と称する）が設けられており、所定のネットワークを介してソフトウェア更新装置１００と接続されている。ソフトウェア更新装置１００は、複数の各移動体に、１つ又は複数のプログラムモジュールで構成されたソフトウェアを配信する。移動体は、ソフトウェア更新装置１００から配信されるソフトウェアを車載ＧＷ装置２００を介して受信し、移動体で実行されるソフトウェアや移動体の制御に用いられるソフトウェアを更新する。【００１０】
なお、移動体に配信されるソフトウェアは、制御プログラムなどのプログラムモジュール以外にも、例えば、各プログラムモジュールの実行を制御するためのパラメータや各種データ、手順などを含むことができる。【００１１】
図２は、車載ＧＷ装置２００が適用された移動体の車内及び車外のネットワーク構成図である。本実施形態では、移動体内に設けられる車載ＧＷ装置２００が、ソフトウェア更新装置１００から配信されるソフトウェアの更新制御（ソフトウェアの受信制御及びソフトウェアの更新実行制御）を行う。【００１２】
＜車載ＧＷ装置２００＞
まず、車載ＧＷ装置２００について説明する。車載ＧＷ装置２００は、車内のデータソースと直接接続されたり、データソースが接続される車載ネットワークと接続されたりする車載器である。車載ＧＷ装置２００は、車外ネットワークと接続することができ、車内と車外を中継するネットワークノードとして構成される。車載ＧＷ装置２００は、アクセスポイントを経由したＷｉ−Ｆｉなどの無線ＬＡＮ規格に準拠する無線通信、及び基地局を中継した３ＧやＬＴＥ（Ｌｏｎｇ Ｔｅｒｍ Ｅｖｏｌｕｔｉｏｎ）などの携帯電話通信の各通信インターフェースを備えている。車載ＧＷ装置２００は、車両外部の車外ネットワークと複数の通信経路（外部通信方式）で接続することができる。【００１３】
車外ネットワークは、例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ）網である。車載ＧＷ装置２００は、ＩＰ網を経由してソフトウェア更新装置１００に接続することができる。車載ＧＷ装置２００は、ソフトウェア更新装置１００との間でデータ通信を行うことができるとともに、後述する移動体側ログファイル（ログファイルに書き込まれる情報を含む）をソフトウェア更新装置１００に送信したりすることができる。また、ソフトウェア更新装置１００以外の外部サービスシステムとの間でデータ通信を行ったり、車内のデータソースから取得した各種データをソフトウェア更新装置１００や所定の外部サービスシステムに送信したりすることもできる。【００１４】
図２に示すように、車載ＧＷ装置２００は、Ｗｉ−Ｆｉや３Ｇ／ＬＴＥの通信インターフェースを備えた携帯情報端末を介して、車外ネットワークと接続することもできる。車載ＧＷ装置２００は、携帯情報端末に対し、ＵＳＢ接続したり、無線通信やＢｌｕｅｔｏｏｔｈ（登録商標）／ＮＦＣなどの規格に基づく近距離通信で接続したりすることができる。携帯情報端末は、スマートフォンなどの多機能携帯電話機、携帯電話機、タブレット端末などの通信機能を備えたモバイル機器である。【００１５】
車載ＧＷ装置２００は、車内のデータソースに、直接または既設の車載ネットワークを介して接続することができる。データソースは、例えば、マイク（集音装置）、人感センサやユーザが装着するバイタルセンサなどのセンサ機器、カメラ（撮影装置）が搭載されたドライブレコーダーや車内を撮影する車内カメラなどの車載カメラ、液晶ディスプレイ装置などの表示手段を備えたナビゲーションシステムなどの車載情報端末、及び車載ＬＡＮなどがある。車載ＬＡＮは、車両制御システム３００やマルチメディア系のオーディオ機器などと接続され、これらがデータソースとなる。【００１６】
車載ＧＷ装置２００は、各データソース又は車載ネットワークが備える通信方式に応じて、データソース毎に異なる通信方式でデータ通信を行う。例えば、センサ機器は、近距離無線通信でデータ通信を行う。車載カメラは、車載ＧＷ装置２００とケーブルで接続されたシリアル（ＵＡＲＴ）通信（ＲＳ２３２Ｃ，ＲＳ４２２，ＲＳ４８５）でデータ通信を行う。車載情報端末は、ＬＡＮケーブルで接続されたＥｔｈｅｒｎｅｔ通信でデータ通信を行う。【００１７】
車載ＬＡＮは、ＣＡＮ（ｃｏｎｔｒｏｌｌｅｒ ａｒｅａ ｎｅｔｗｏｒｋ）、ＦｌｅｘＲａｙ、ＬＩＮ、ＭＯＳＴ（ｍｅｄｉａ ｏｒｉｅｎｔｅｄ ｓｙｓｔｅｍｓ ｔｒａｎｓｐｏｒｔ）などの通信方式で車載ネットワークが組まれている。車載ＧＷ装置２００は、車載ＬＡＮを構成する１つ又は複数の車載ネットワークそれぞれに接続し、各通信方式でデータ通信を行う。【００１８】
図３は、車載ＧＷ装置２００の構成ブロックを示す図である。車載ＧＷ装置２００は、ハードウェア構成として、各データソースや携帯情報端末との間の通信インターフェースを構成する通信デバイス２１０と、車載ＧＷ装置２００全体の制御を行う制御デバイス２２０と、を含んでいる。【００１９】
通信デバイス２１０は、Ｅｔｈｅｒｎｅｔ、ＣＡＮ、ＵＡＲＴ、ＵＳＢ、近距離無線通信などの車内通信（内部通信）インターフェース２１１と、無線通信、携帯電話通信などの車外通信（外部通信）インターフェース２１２と、を含む。なお、車内通信インターフェース２１１は、携帯情報端末との間の無線通信機能やＵＳＢ等の接続インターフェースを含むことができる。【００２０】
制御デバイス２２０は、主にソフトウェアによって動作する各機能部を含んで構成されている。制御デバイス２２０は、まず、各データソースに対する制御を行うことができる。例えば、センサ機器のセンサ制御（動作やデータ検出）、車載カメラの撮影制御（映像出力制御を含む）、車載情報端末の端末制御を行うことができる。【００２１】
したがって、制御デバイス２２０は、車外ネットワークから受信したデータを各データソースに出力したり、受信したデータに基づいて各データソースを制御したりすることができる。また、データソース間で、一方又は双方のデータソースを制御することができる。例えば、センサ機器で取得された検出データや車載カメラで撮影された映像を、車載情報端末のディスプレイに表示する制御を行うこともできる。【００２２】
そして、本実施形態の制御デバイス２２０は、車内通信制御部２２１、車外通信制御部２２２、ゲートウェイ制御部（ＧＷ制御部）２２３、ソフトウェア更新管理部２２４、及び記憶部２２５を含んでいる。【００２３】
車載ＧＷ装置２００は、無線通信や携帯電話通信、ＵＡＲＴ、ＵＳＢ、近距離無線通信等の各デバイスドライバがインストールされている。車内通信制御部２２１及び車外通信制御部２２２は、各デバイスドライバを通じて、車内通信インターフェース２１１及び車外通信インターフェース２１２を介した通信制御を行う。また、車内通信制御部２２１は、デバイスドライバを介さずに、例えば、車載ＬＡＮ（車両制御システム３００）との間の通信制御を行うこともできる。【００２４】
なお、車外通信制御部２２２は、Ｗｉ−Ｆｉなどの無線通信のアクセスポイント登録処理を行うことができる。例えば、車外通信制御部２２２は、車両の物理的な移動に伴って各所のアクセスポイントを検出し、登録することができる。【００２５】
ＧＷ制御部２２３は、ネットワーク制御部２２３Ａと、通信制御部２２３Ｂとを含んで構成されている。ネットワーク制御部２２３Ａは、ルーティング制御部２２３１、プロトコル変換部２２３２及びセキュリティ部２２３３を含んでいる。ルーティング制御部２２３１は、各データソース（車載ＬＡＮを介した車両制御システム３００を含む）から収集されるデータを車外ネットワークに送信する際のルーティング制御、及び車外ネットワークから受信されたデータを各データソースに伝送する際のルーティング制御を行う。また、車内ネットワーク内でのデータソース間でのデータ通信におけるルーティング制御も行う。【００２６】
プロトコル変換部２２３２は、各データソースに対応する異なる通信方式間でのプロトコル変換処理を行う。データソース別の通信方式をプロトコル変換表として予め保持しておくことができ、例えば、車外ネットワークから受信されたデータをデータソースに伝送する際にプロトコル変換を行う。【００２７】
セキュリティ部２２３３は、ＳＳＬ（Ｓｅｃｕｒｅ Ｓｏｃｋｅｔｓ Ｌａｙｅｒ）／ＴＬＳ（Ｔｒａｎｓｐｏｒｔ Ｌａｙｅｒ Ｓｅｃｕｒｉｔｙ）プロトコルの通信設定及び通信処理を行う。ＳＳＬ／ＴＬＳ通信は、データソース毎に設定することができ、セキュリティ部２２３３は、車内ネットワークから車外ネットワークにデータが送信される際に、ＳＳＬ／ＴＬＳの設定有無を確認し、暗号化処理を行うことができる。【００２８】
通信制御部２２３Ｂは、通信状態監視部２２３４、通信経路選択部２２３５、監視制御部２２３６、及びＣｏｎｆｉｇ設定制御部２２３７を含んでいる。通信制御部２２３Ｂは、Ｃｏｎｆｉｇ設定情報に基づいて、通信経路選択制御、データ監視制御、及びデータソースから収集されたデータを車外ネットワークに伝送するデータ伝送制御を行うことができる。【００２９】
通信経路選択部２２３５は、通信接続Ｃｏｎｆｉｇ設定情報に基づいて、通信経路選択制御を行うことができる。通信接続Ｃｏｎｆｉｇ設定情報は、車外ネットワークから車内ネットワークへのデータ受信時の通信経路設定と、車内ネットワークから車外ネットワークへのデータ伝送時の通信経路設定と、が含まれる。【００３０】
本実施形態の車載ＧＷ装置２００は、車両などの移動体に搭載される。このため、例えば、車載ＧＷ装置２００は、ネットワークノードとして動的ＩＰアドレスが割り当てられる。車載ＧＷ装置２００は、データの送受信の際、能動的に車外ネットワークのソフトウェア更新装置１００に接続してコネクションを張る。【００３１】
通信接続の設定内容は、自動設定又は／及び優先設定がある。車載ＧＷ装置２００は、複数の通信方式の経路で、車外ネットワークに接続することができる。例えば、Ｗｉ−Ｆｉ、携帯情報端末経由及び３Ｇ／ＬＴＥの３つの経路の中から１つを選択したり、３つの経路に優先度を設定したりすることができる。また、「自動」の優先度は、例えば、Ｗｉ−ｆｉ＞携帯情報端末経由＞３Ｇ／ＬＴＥのように、予め任意に決めておくことができる。【００３２】
通信接続の設定内容は、受信するデータ種別に設定することもできる。例えば、ソフトウェア更新装置１００から配信されるソフトウェアとそれ以外のシステムから配信されるデータとで通信経路の優先度を変えたり、ソフトウェア更新装置１００から配信されるソフトウェアのデータ容量の大きさで通信経路の優先度を変えたりすることができる。【００３３】
車内ネットワークから車外ネットワークへのデータ伝送時の通信接続についても同様である。例えば、車両制御システム３００から取得される車両情報をアップロードする通信経路や車載カメラで撮影された映像や画像をアップデートする通信経路などにおいても、同様に自動設定又は／及び優先設定を行うことができる。【００３４】
また、通信接続Ｃｏｎｆｉｇ設定には、車外ネットワークの接続先であるソフトウェア更新装置１００のＵＲＬ指定（登録）が含まれる。なお、ソフトウェア更新装置１００は、複数の拠点に、複数設けることもできる。この場合、各拠点のソフトウェア更新装置１００の各ＵＲＬが登録されるように構成することができる。外部サービスシステムについても同様である。【００３５】
さらに、通信接続Ｃｏｎｆｉｇ設定は、車載ＧＷ装置２００が利用する複数の通信経路それぞれの有効／無効の設定が含まれる。Ｗｉ−Ｆｉ通信利用設定、３Ｇ／ＬＴＥ通信利用設定、携帯情報端末通信利用設定の有効（ＯＮ）／無効（ＯＦＦ）を設定することができる。【００３６】
車載ＧＷ装置２００（通信制御部２２３Ｂ）は、起動後、通信接続Ｃｏｎｆｉｇ設定情報を取得し、接続フラグがＯＮの通信経路に対して通信接続処理を行う。接続フラグとは、各通信方式の通信利用設定における有効（ＯＮ）／無効（ＯＦＦ）である。接続フラグがＯＮの通信経路が複数ある場合、複数の通信経路全ての通信接続を維持するように、制御される。すなわち、車載ＧＷ装置２００の監視制御やデータ収集・伝送制御に関係なく、接続フラグがＯＮの複数の通信経路全てに対し、常時接続状態を維持するように制御される。そして、データソース毎に、各通信経路の通信状態に応じてＣｏｎｆｉｇ設定に基づく適切な通信経路選択を行い、車外ネットワークとの間でデータ通信を行う。【００３７】
通信状態監視部２２３４は、接続フラグがＯＮの通信経路の通信状態（接続中／遮断）を監視する。通信状態監視部２２３４は、各通信経路の通信状態を通信制御部２２３Ｂに出力する。次に、通信状態監視部２２３４は、接続状態監視終了信号（例えば、車両のイグニッションスイッチのＯＦＦ信号）の有無を確認する。監視を終了しない場合は、通信制御部２２３Ｂは、接続フラグがＯＮの通信経路が遮断されていないと判別された場合、通信状態の監視を継続する。一方、遮断されていると判別された場合、通信制御部２２３Ｂは、接続フラグがＯＮで、遮断されている通信経路に対し、再度通信接続処理を行う。一方、接続状態監視終了信号の入力があり、監視を終了する場合は、接続中の全ての通信経路の遮断処理を行う。【００３８】
一方で、監視制御部２２３６は、各データソースから出力されるデータを監視することができ、監視制御部２２３６で利用されるＣｏｎｆｉｇ設定情報を設定することもできる。例えば、車載ＬＡＮＣｏｎｆｉｇ設定情報は、車両制御システム３００から取得される車両情報を、車外ネットワーク（外部システム）にアップロードする周期、平均車速閾値、運転時間閾値などの設定情報が含まれる。また、センサ機器は、例えば、ユーザの心拍数、脈拍の間隔、血圧などを測定又は／及び算出して車載ＧＷ装置１００に出力することができる。センサ機器Ｃｏｎｆｉｇ設定情報は、バイタル情報転送（アップロード）周期、心拍数転送閾値、心拍数異常閾値などの設定情報が含まれる。【００３９】
監視制御部２２３６は、例えば、データソース毎に設定されたＣｏｎｆｉｇ設定情報に基づく監視制御を行う。データソースは、時系列に連続したデータを車載ＧＷ装置２００に出力することができる。Ｃｏｎｆｉｇ設定情報に基づく監視制御は、データソースから収集されるデータを監視し、例えば、閾値を超えるデータが検出された場合に異常発生を検知する異常検出制御と、データソースから収集されたデータを、車外ネットワークに伝送するデータ収集・伝送制御とが含まれる。【００４０】
監視制御部２２３６は、データソースから出力されるデータを対象に、データソース毎に異常検出を行い、異常が検出された場合、例えば、車載情報端末に異常が検出された旨を表示する通知処理を行うことができる。【００４１】
なお、監視制御は、通信状態監視と同様に、車両のイグニッションスイッチのＯＦＦ信号などのデータソースの監視制御を終了する信号の有無を確認して、行うことができる。【００４２】
これらのＣｏｎｆｉｇ設定情報は、外部サービスシステム側で予め設定したり、ユーザが外部サービスシステムに接続して設定したりすることができる。車載ＧＷ装置２００は、例えば、車両のイグニッションスイッチのＯＮ／ＯＦＦに連動して、車両のバッテリなどから電力供給を受けて起動することができる。車載ＧＷ装置２００は、起動時に外部サービスシステムに接続して、Ｃｏｎｆｉｇ設定情報を取得することができる。このとき、車載ＧＷ装置２００は、通信接続Ｃｏｎｆｉｇ設定情報に基づいて、通信経路選択処理を行うことができる。【００４３】
Ｃｏｎｆｉｇ設定制御部２２３７は、外部サービスシステムから制御デバイス２２０に入力されたＣｏｎｆｉｇ設定情報を、通信経路選択部２２３５及び監視制御部２２３６が利用できるように記憶部２２５にセット（更新）する。【００４４】
なお、車載ＧＷ装置２００とソフトウェア更新装置１００との間のデータ通信は、予め設定されるユーザの識別ＩＤや車両ＧＷ装置２００の固体識別子（例えば、ＭＡＣアドレス）などを用いて、双方で認証を行うことができる。車載ＧＷ装置２００は、ソフトウェア更新装置１００との間のデータ通信において、固体識別子が含まれるように制御する。【００４５】
記憶部２２５は、ソフトウェア更新管理部２２４を含む制御デバイス２２０で処理される各種データ、各処理のために使用される情報、車外ネットワークから受信したデータや情報などを記憶する。図３の例では、記憶部２２５が車載ＧＷ装置２００に内蔵されているが、例えば、記憶部２２５が車載ＧＷ装置２００に対して外付けされてもよい。【００４６】
＜車載ＧＷ装置２００を介したソフトウェア更新＞
本実施形態では、車載ＧＷ装置２００が、車載ＬＡＮを介して車両制御システム３００に接続され、車両制御システム３００を構成する車両ＥＣＵなどの制御装置で実行されるソフトウェアをソフトウェア更新装置１００から受信する。なお、ソフトウェア更新装置１００は、移動体における既存のソフトウェアの更新用ソフトウェアの配信のみならず、移動体で実行される新たなソフトウェアを配信することもでき、ソフトウェア更新装置１００は、移動体で実行され、移動体の制御に用いられるソフトウェアの配信管理を行う管理装置として位置付けられる。【００４７】
図４は、本実施形態のソフトウェア更新装置１００の構成ブロックを示す図である。ソフトウェア更新装置１００は、通信装置１１０、制御装置１２０及び記憶装置１３０を含んで構成されている。【００４８】
通信装置１１０は、移動体の車載ＧＷ装置２００との間のデータ通信及び接続を制御する。通信装置１１０は、車載ＧＷ装置２００との間で、アクセスポイントを経由したＷｉ−Ｆｉなどの無線ＬＡＮ規格に準拠する無線通信、及び基地局を中継した３ＧやＬＴＥ（Ｌｏｎｇ Ｔｅｒｍ Ｅｖｏｌｕｔｉｏｎ）などの携帯電話通信を行うことができる。ソフトウェア更新装置１００は、移動体の車載ＧＷ装置２００と、複数の通信経路で接続することができ、例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ）網を通じて、更新ソフトウェアを、配信することができる。【００４９】
制御装置１２０は、ソフトウェア管理部（ＳＷ管理部）１２１、鍵管理部１２２及びソフトウェア更新制御部（ＳＷ更新制御部）１２３を含んで構成されている。【００５０】
本実施形態のソフトウェア更新システムは、複数の移動体を対象に、各移動体の制御に用いられるソフトウェアを配信する。図５は、複数の移動体に対するＴｒｅｅ構造のソフトウェア管理情報の一例を示す図である。【００５１】
図５に示すように、例えば、車両制御システムは、複数の制御システムで構成され、各制御システムでソフトウェアによるハードウェアの動作制御などが行われている。これらの制御システムは、例えば、異なる車種間で共通で用いられたり、車両の各年式で共通で用いられたりする。逆に、同じ車種間や同じ年式であっても異なることもある。【００５２】
したがって、車両制御システムの制御に用いられるソフトウェアは、複数の制御システム毎に使用されるソフトウェアの関連付けと、そのソフトウェアが適用される車両との関連付けとが必要となり、車両毎に適用されるソフトウェアの管理は、極めて複雑である。そこで、本実施形態では、図５の例のように、制御システム、制御システムに使用されるソフトウェア、ソフトウェアが適用される車種、年式、車体番号を各ノードとして、各ノードをＴｒｅｅ構造で結び付けたグループ管理を行う。【００５３】
ＳＷ管理部１２１は、複数の各移動体の属性（車種、年式、車体番号など）や各移動体の制御システムで使用される各ソフトウェアに関する情報の入力を受け付け、図５に示した各ノードの設定及び各ノードをＴｒｅｅ構造で結び付けたグループ管理機能を提供する。Ｔｒｅｅ構造のソフトウェア管理情報は、記憶装置１３０に記憶される。また、ＳＷ管理部１２１は、Ｔｒｅｅ構造のソフトウェア管理情報の各ノードにおける更新用ソフトウェアの登録を受け付け、各ノードに関連付けて更新用ソフトウェアを記憶装置１３０に記憶する。【００５４】
一方で、ソフトウェア管理を行う移動体の数が多くなると、ソフトウェアの配信制御も煩雑になる。例えば、セキュリティ上、各移動体それぞれに異なる秘密鍵を設定し、移動体に対して異なる秘密鍵でソフトウェアを暗号化して、対象の移動体それぞれに個別に配信する必要があった。また、車両は、例えば、年間で数万台、数十万台の車両が生産、販売されるため、各車両に一意の秘密鍵を割り当てて管理することは現実的ではない。特に、近年、車種や年式間でのソフトウェア共通化も進んでおり、毎年増え続ける膨大な車両数に対して効率的なソフトウェア管理が必要となる。【００５５】
本実施形態では、Ｔｒｅｅ構造のソフトウェア管理情報の各ノードをグループ管理しつつ、グループ鍵暗号化方式を応用し、配信するソフトウェアを共通のグループ鍵を用いて暗号化して各移動体に送信する。図６は、グループ鍵暗号化方式に基づく移動体の固有鍵を説明するための図である。【００５６】
鍵管理部１２２は、Ｔｒｅｅ構造のソフトウェア管理情報の各ノードに、ノード鍵を割り当てる。ノード鍵は、暗号鍵である。例えば、図４の例と対比して説明すると、エネルギー制御を上位ノードとして、バッテリ制御ソフトウェア、熱マネジメントソフトウェアがその下位ノードとして管理される。そこで、上位ノードにノード鍵「Ｋ０ＸＸＸＸ」を割り当て、その下位ノード「バッテリ制御ソフトウェア」にノード鍵「Ｋ００ＸＸＸ」と、「熱マネジメントソフトウェア」にノード鍵「Ｋ０１ＸＸＸ」を割り当てる。【００５７】
また、ノード「バッテリ制御ソフトウェア」に対して下位ノードである複数の車種に対応するノード鍵「Ｋ０００ＸＸ」、「Ｋ００１ＸＸ」を割り当て、さらに車種の下位ノードである「年式」にノード鍵「Ｋ００００Ｘ」、「Ｋ０００１Ｘ」を割り当てる。そして、最下位のノード、すなわち移動体を一意に識別する車体番号に対して「Ｋ０００００」、「Ｋ００００１」のノード鍵を割り当てる。【００５８】
したがって、移動体は、固有鍵として、例えば、「Ｋ０００００」、「Ｋ００００Ｘ」、「Ｋ０００ＸＸ」、「Ｋ００ＸＸＸ」、「Ｋ０ＸＸＸＸ」の５つの暗号鍵を保有することになる。鍵管理部１２２は、これらの暗号鍵を複合化して各移動体の固有鍵を生成し、登録・管理する。【００５９】
図７は、グループ鍵暗号化方式に基づく移動体の固有鍵の登録処理を示すフローチャートである。ＳＷ管理部１２１は、上述した複数の移動体の属性（車種、年式、車体番号など）や制御システムで使用される各ソフトウェアに関する情報の入力を受け付け、各ノードの設定及び各ノードをＴｒｅｅ構造で結び付けたＴｒｅｅ構造のソフトウェア管理情報を生成し、記憶装置１３０に記憶する（Ｓ１０１）。【００６０】
鍵管理部１２２は、生成されたＴｒｅｅ構造のソフトウェア管理情報の各ノードに、ノード鍵を割り当て（Ｓ１０２）、最上位のノードから最下位のノードまでの各ノード鍵を複合化して、移動体別の固有鍵を生成する（Ｓ１０３）。鍵管理部１２２は、生成された移動体の各固有鍵を記憶装置１３０に記憶すると共に（Ｓ１０４）、ソフトウェア更新装置１００に登録された移動体の固有鍵を、各移動体（車載ＧＷ装置２００）に送信する（Ｓ１０５）。【００６１】
各移動体が保有する固有鍵は、グループ鍵暗号方式に基づく複数のノード鍵を用いて生成され、ソフトウェア更新装置１００と移動体との間で共有される。図８は、本実施形態の固有鍵によるソフトウェアの一斉更新を説明するための図である。図８に示すように、例えば、「バッテリ制御ソフトウェア」を更新する場合、ＳＷ更新制御部１２３は、ソフトウェア管理情報とノード鍵との対応関係から、「バッテリ制御ソフトウェア」のノード鍵「Ｋ００ＸＸＸ」と、上位ノードのノード鍵「Ｋ０ＸＸＸＸ」とを抽出する。ＳＷ更新制御部１２３は、ノード鍵「Ｋ００ＸＸＸ」とノード鍵「Ｋ０ＸＸＸＸ」とを複合化したグループ鍵を用いて配信するソフトウェアを暗号化し、「バッテリ制御ソフトウェア」の下位ノードに属する各移動体に配信する。【００６２】
移動体は、予め各ノード鍵を保有しているので、ソフトウェア更新装置１００から受信した暗号化されたソフトウェアを、ノード鍵「Ｋ００ＸＸＸ」とノード鍵「Ｋ０ＸＸＸＸ」とを複合化したグループ鍵で復号して平文に戻す。【００６３】
このように本実施形態では、「バッテリ制御ソフトウェア」を更新する場合、ノード鍵「Ｋ００ＸＸＸ」を指定するだけで、下位のノード、すなわち、移動体を個別に指定することなく、セキュリティ性が確保されつつ、一斉に複数の移動体を対象としたソフトウェアの配信を行うことができる。【００６４】
また、「バッテリ制御ソフトウェア」の更新を「車種Ａ」だけに行いたい場合、ＳＷ更新制御部１２３は、ソフトウェア管理情報とノード鍵との対応関係から、「車種Ａ」に対応するノード鍵「Ｋ０００ＸＸ」をさらに含むグループ鍵「Ｋ０００ＸＸ」、「Ｋ００ＸＸＸ」、「Ｋ０ＸＸＸＸ」を用いて配信するソフトウェアを暗号化し、「車種Ａ」の下位ノードに属する各移動体に配信することができる。【００６５】
次に、図９から図１１を参照して、本実施形態のソフトウェア更新方法について説明する。本実施形態では、ソフトウェア更新装置１００と移動体（車載ＧＷ装置２００）との間で、ログファイルを共有し、両者を照合（マッチング）することで、移動体へのソフトウェア配信の確実性を向上させている。【００６６】
図９は、配信側ログファイル及び移動体側ログファイルを使用したソフトウェアの配信制御を説明するための図である。まず、配信側ログファイルは、配信するソフトウェア毎に生成されるとともに、配信する対象である移動体の固有鍵（上位ノードのノード鍵を含む）が記録されている。そして、ソフトウェアを構成する複数のプログラムモジュール毎に、配信ＯＫ／ＮＧがそれぞれ記録される。【００６７】
移動体側ログファイルも同様の構成であり、移動体自身の固有鍵（上位ノードのノード鍵を含む）が記録されており、ソフトウェアを構成する複数のプログラムモジュール毎に、受信ＯＫ／ＮＧがそれぞれ記録される。ソフトウェア更新装置１００と移動体とは、同じログファイルをそれぞれ保有している。配信ＯＫ／ＮＧを示す配信履歴は、受信ＯＫ／ＮＧを示す受信履歴と対応しており、配信履歴は、ソフトウェア更新装置１００からソフトウェアを配信しただけでは、配信ＮＧから配信ＯＫには変わらず、あくまでも移動体側の受信履歴（受信した実績）に基づいて配信ＮＧから配信ＯＫに遷移する。【００６８】
なお、本実施形態では、ソフトウェアが複数のプログラムモジュールで構成されている例について説明しているがこれに限らず、例えば、ソフトウェアを複数に分割して配信する態様も含まれる。また、複数のプログラムモジュールで構成されたソフトウェアにおいて、任意のプログラムモジュールを配信したり、１つのプログラムモジュールだけを配信したりすることもできる。【００６９】
図１０は、車載ＧＷ装置２００を介したソフトウェア更新処理を示すフローチャートである。車載ＧＷ装置２００は、移動体の起動、例えば、車両のイグニッションスイッチがオンされたとき、起動信号をソフトウェア更新装置１００に送信する（Ｓ３０１）。ソフトウェア更新装置１００は、車載ＧＷ装置２００から起動信号を受信すると（Ｓ１１１のＹＥＳ）、移動体の固定鍵に関連する配信側ログファイルをチェックする（Ｓ１１２）。【００７０】
例えば、移動体の固定鍵と車載ＧＷ装置２００との対応関係を予め記憶装置１３０に記憶しておくことができる。ＳＷ更新制御部１２３は、車載ＧＷ装置２００から送信される起動信号に含まれる車載ＧＷ装置２００のＭＡＣアドレスや車体番号を用いて、移動体を特定し、該当する配信側ログファイルを抽出することができる。つまり、移動体（車載ＧＷ装置２００）、配信側ログファイル及び固定鍵は、互いに関連付けられている。【００７１】
ＳＷ更新制御部１２３は、抽出された配信側ログファイルを参照し、ログファイル内に配信ＮＧが記憶されているか否かをチェックする（Ｓ１１２）。配信が完了した配信側ログファイルは、各プログラムモジュールの配信履歴が全て配信ＯＫとなっている。配信側ログファイル内に配信ＮＧが記録されていない場合、配信ＮＧのプログラムモジュールがないと判断し（Ｓ１１３）、新たに更新する更新用ソフトウェアが登録されているか否かを判別する（Ｓ１１４）。【００７２】
例えば、ＳＷ管理部１２１は、更新用ソフトウェアの登録を受け付けるが、このとき、配信前の更新用ソフトウェアの更新フラグを「未配信」に設定することができる。ＳＷ更新制御部１２３は、更新フラグを参照して、新たに更新するソフトウェアが登録されていると判別した場合（Ｓ１１４のＹＥＳ）、更新するソフトウェアに関連する配信側ログファイルを生成して、記憶装置１３０に記憶する（Ｓ１１５）。【００７３】
図９に示すように、更新用ソフトウェアに対し、更新用ソフトウェアとそのプログラムモジュール群との組み合わせを含む更新ソフトウェア情報が登録される。ＳＷ更新制御部１２３は、更新ソフトウェア情報を参照し、例えば、更新するソフトウェアＡのプログラムモジュール群を羅列した配信側ログファイルを生成することができる。このとき、各プログラムモジュールそれぞれに配信ＯＫ／ＮＧの記録領域が設定され、初めて配信されるソフトウェアのログファイルでは、全てのプログラムモジュールに対して、「配信ＮＧ」がデフォルトで書き込まれる。【００７４】
配信前の更新用ソフトウェアの更新フラグは「未配信」に設定され、「未配信」の更新フラグを有する更新用ソフトウェアに対して配信側ログファイルが生成された時点で、更新フラグは、「配信中」となり、車載ＧＷ装置２００から送信される受信履歴によって配信側ログファイルの配信履歴が全て配信ＯＫとなった時点で、更新フラグは「配信済」となる。これらのフラグ制御は、ＳＷ管理部１２１又はＳＷ更新制御部１２３によって行われる。【００７５】
ＳＷ更新制御部１２３は、ソフトウェア管理情報とノード鍵との対応関係から、新たに登録されたソフトウェアのグループ鍵を生成して、配信するソフトウェアを暗号化する（Ｓ１１６）。ＳＷ更新制御部１２３は、配信するソフトウェアが複数のプログラムモジュールで構成されている場合、各プログラムモジュールを個別に暗号化して、順次プログラムモジュールを配信することができる。【００７６】
なお、複数のプログラムモジュールの配信順は、任意であり、予め決められた順序で配信してもよい。また、１つプログラムモジュールが移動体側で受信されたことを確認した後（受信ＯＫを受信した後）に、次のプログラムモジュールを配信するように構成してもよい。また、プログラムモジュールが移動体側で受信されたことを確認せずに、各プログラムモジュールを順次配信してもよい。この場合であっても、車載ＧＷ装置２００は、受信した各プログラムモジュール別に受信履歴を移動体側ログファイルに記録するとともに、受信履歴をソフトウェア更新装置１００に送信する。【００７７】
次に、移動体側では、車載ＧＷ装置２００が、更新用ソフトウェアの各プログラムモジュールを受信する。このとき、車載ＧＷ装置２００のソフトウェア更新管理部２２４は、予め記憶部２２５に記憶されている固有鍵を用いて、暗号化されたプログラムモジュールを平文に戻す。つまり、移動体側で固有鍵を用いた鍵認証を行う（Ｓ３０２）。このとき、例えば、公開鍵暗号方式のデジタル署名により、送信元であるソフトウェア更新装置１００を認証するように構成することもできる。【００７８】
ソフトウェア更新管理部２２４は、固有鍵を用いて平文に戻したプログラムモジュールを記憶部２２５に記憶する受信処理を行うと共に（Ｓ３０３）、移動体側ログファイルを生成する（Ｓ３０４）。なお、受信したプログラムモジュールは、記憶部２２５ではなく、車両制御システム３００に設けられた所定の記憶領域に記憶されてもよい。【００７９】
例えば、新たに更新されるソフトウェアを配信するとき、ソフトウェア更新装置１００は、新たな更新用ソフトウェアを表すフラグ等を含ませて配信することができる。この場合、ソフトウェア更新管理部２２４は、更新用ソフトウェアに関連する上述した移動体側ログファイルを新たに生成する。また、更新用ソフトウェアと移動体側ログファイルは、互いに関連付いているので、ソフトウェア更新管理部２２４が、既に生成された移動体側ログファイルを検索して、受信した更新用ソフトウェアに関連する移動体側ログファイルがあるか否かを判別することができる。該当する移動体側ログファイルがないと判別された場合に、新たに移動体側ログファイルを生成することもできる。【００８０】
また、移動体側で一度も受信していない更新用ソフトウェアに対応する移動体側ログファイルは、ソフトウェア更新装置１００から提供することもできる。つまり、ソフトウェア更新装置１００は、配信に伴って配信側ログファイル（全てのログが配信ＮＧであるログファイル）を生成しており、このログファイルを移動体に送信することで、移動体側ログファイルとしてそのまま利用することができる。【００８１】
また、ＳＷ更新制御部１２３は、配信側ログファイルを生成する際に参照した更新ソフトウェア情報を、移動体に配信することもできる。この場合、ソフトウェア更新管理部２２４が、配信側ログファイルと同様に、初めて配信されるソフトウェアのログファイルなので、全てのプログラムモジュールに対して「配信ＮＧ」がデフォルトで書き込まれた移動体側ログファイルを生成することができる。【００８２】
そして、ソフトウェア更新管理部２２４は、受信されるプログラムモジュール毎に、受信ＯＫ／ＮＧを移動体側ログファイルに記録する（Ｓ３０５）。ソフトウェア更新管理部２２４は、移動体側ログファイルに記録される受信履歴（受信ＯＫ／ＮＧ）を、ソフトウェア更新装置１００に送信する（Ｓ３０６）。ソフトウェア更新装置１００は、車載ＧＷ装置２００から受信履歴を受信し、該当するプログラムモジュール毎に配信側ログファイルに配信ＯＫ／ＮＧを記録する（Ｓ１１８）。本実施形態では、車載ＧＷ装置２００から受信履歴を受信しない限り、配信側ログファイルの配信履歴は、「配信ＯＫ」に遷移しない。【００８３】
ソフトウェア更新装置１００は、配信処理が終了するまでステップＳ１１７，Ｓ１１８を繰り返し行う（Ｓ１１９）。また、車載ＧＷ装置２００でも同様に、受信処理が終了するまでステップＳ３０２からステップＳ３０６を繰り返し行う（Ｓ３０７）。なお、配信処理の終了及び受信処理の終了には、通信経路の遮断による配信中断も含まれる。【００８４】
ソフトウェア更新管理部２２４は、受信処理が終了した後、移動体側ログファイルを参照して、全てのプログラムモジュールが「受信ＯＫ」であるか否かを判別する（Ｓ３０８）。ソフトウェア更新管理部２２４は、全てのプログラムモジュールが「受信ＯＫ」である移動体側ログファイルに該当するソフトウェアの更新を許可する。具体的には、ソフトウェア更新管理部２２４は、記憶部２２５に記憶されたソフトウェアを車両制御システム３００に出力するとともに、ソフトウェア更新指示を出力する（Ｓ３０９）。車両制御システム３００は、例えば、車両全体を制御する車両ＥＣＵが、所定のタイミング又はリアルタイムに、ソフトウェア更新を実行する。ソフトウェア更新の実行結果（更新ＯＫ／ＮＧ）は、車両制御システム３００からソフトウェア更新管理部２２４に出力される。ソフトウェア更新管理部２２４は、ソフトウェア更新の実行結果（更新ＯＫ／ＮＧ）をソフトウェア更新管理装置１００に送信することができる。【００８５】
図１１は、車載ＧＷ装置２００を介したソフトウェア更新処理を示すフローチャートであり、図１０のステップＳ１１３で更新用ソフトウェアの配信が未完の状態で終了した後の差分更新処理を示す図である。配信が未完の状態とは、配信側ログファイルが生成されて更新用ソフトウェアの配信が行われたものの（更新フラグが「配信中」）、配信側ログファイルの配信履歴に配信ＮＧが少なくとも１つ含まれている状態である。【００８６】
図１１の例は、更新用ソフトウェアの配信中に途中で通信が遮断されたり、データ容量や配信タイミングの関係から、ソフトウェアの各プログラムモジュールの全て又は一部が移動体側で受信されたか否かが不明なプログラムモジュールを差分配信する処理である。【００８７】
ＳＷ更新制御部１２３は、ステップＳ１１３において、作成済の配信側ログファイル内に配信ＮＧが記録されていると判別された場合、車載ＧＷ装置２００に、移動体側ログファイルをソフトウェア更新装置１００に送信する送信要求を出力する（Ｓ１２１）。車載ＧＷ装置２００は、送信要求に基づいて、該当する移動体側ログファイルをソフトウェア更新装置１００に送信する（Ｓ３２１）。【００８８】
ＳＷ更新制御部１２３は、車載ＧＷ装置２００から受信した移動体側ログファイルと、配信側ログファイルとを照合し、プログラムモジュール毎に配信履歴のＯＫ／ＮＧと受信履歴のＯＫ／ＮＧとをマッチングする（Ｓ１２２）。ＳＷ更新制御部１２３は、配信履歴と受信履歴とで、ＯＫ／ＮＧの不一致であるプログラムモジュールが１つでもある場合（Ｓ１２３のＹＥＳ）、ログファイルの書き換え処理を行う。【００８９】
ＳＷ更新制御部１２３は、車載ＧＷ装置２００に、移動体側ログファイルの破棄要求を車載ＧＷ装置２００に送信する（Ｓ１２４）。車載ＧＷ装置２００は、ソフトウェア更新装置１００から受信したログファイルの破棄要求に基づいて、保存されていた移動体側ログファイルを破棄（削除）する（Ｓ３２３）。【００９０】
ＳＷ更新制御部１２３は、配信側ログファイルの配信履歴において、配信履歴と受信履歴とでＯＫ／ＮＧの不一致のプログラムモジュール特定し（Ｓ１２５）、不一致のログ全てを配信ＮＧに書き換える（Ｓ１２６）。ＳＷ更新制御部１２３は、配信側ログファイルの書き換えと共に、ログファイルの内容を書き換えた配信側ログファイルと同一の移動体側ログファイルを生成して、車載ＧＷ装置２００に送信する（Ｓ１２７）。車載ＧＷ装置２００は、配信側ログファイルと同一の内容のログファイルをソフトウェア更新装置１００から受信して、移動体側ログファイルとして記憶部２２５に記憶する（Ｓ３２４）。【００９１】
つまり、本実施形態では、配信側ログファイルと移動体側ログファイルのログ内容に不一致が生じている場合、不一致のプログラムモジュールに対する配信側ログファイルの配信履歴と移動体側ログファイルの受信履歴の双方をＮＧに書き換え、プログラムモジュールを再送するように制御する。例えば、移動体側ログファイルの受信履歴が受信ＯＫであっても、配信側ログファイルの配信履歴が配信ＮＧの場合や、配信側ログファイルの配信履歴が配信ＯＫであっても、移動体側ログファイルの受信履歴が受信ＮＧの場合、ログファイルの内容を一度リセットし（ＮＧに書き換え）、再送処理を行うようにしている。【００９２】
このように構成することで、ソフトウェアの更新を確実に行うための環境を実現することができる。移動体は、通信環境が変化するため、通信が途中で切断されたりする。つまり、更新用ソフトウェアが移動体側で一括して受信できればよいが、通信環境の変化により、更新用ソフトウェア（プログラムモジュール）全体が完全に受信できないことがある。このような場合、配信側のソフトウェア更新装置１００で管理される配信結果だけでは、移動体側の受信状況を把握できず、更新用ソフトウェアに欠損が生ずるおそれがある。【００９３】
そこで、本実施形態のソフトウェア更新方法は、配信側ログファイルと移動体側ログファイルの双方で配信履歴及び受信履歴を管理し、更新用ソフトウェアの配信が何らかの理由で中断した場合、互いのログファイルを照合して、履歴が不一致なプログラムモジュールについて配信履歴及び受信履歴をＮＧに書き換えてリセットし、再送するように制御する。【００９４】
このように構成することで、移動体に確実に更新用ソフトウェアを配信することができ、移動体側ログファイルを参照して、全てのプログラムモジュールが「受信ＯＫ」であるとき、該当するソフトウェアの更新を許可するので、ソフトウェアの更新を確実に行うことができる。【００９５】
一方、ステップＳ１２３において、ＳＷ更新制御部１２３は、配信履歴と受信履歴とで、ＯＫ／ＮＧの不一致が一つもないと判別された場合、配信側ログファイルを参照して、配信ＮＧのプログラムモジュールを抽出する。その後、ソフトウェア更新装置１００は、ステップＳ１１６以降の処理を行い、グループ鍵に基づく暗号化、配信、車載ＧＷ装置２００から受信した受信履歴のログ記録処理を順次行う。車載ＧＷ装置２００も同様に、ステップＳ３０２以降の処理を順次行い、受信履歴のログ記録処理、ログ記録をソフトウェア更新装置１００に送信する処理等を順次行う。なお、図１１の例は差分更新処理なので、ステップＳ３０４は省略される。また、再送されたプログラムモジュールが重複する場合、ソフトウェア更新管理部２２４は、上書きして保存することができる。【００９６】
以上、本実施形態について説明したが、車載ゲートウェイ装置２００は、車載ゲートウェイシステムとして構成することができる。例えば、通信デバイス２１０及び制御デバイス２２０を個別の装置として構成し、これらを相互に接続した車載ゲートウェイシステムとして構成することができる。また、同様に、制御デバイス２２０の各機能部も、適宜個別の処理装置として構成して、車載ゲートウェイシステムとして構成することもできる。【００９７】
また、ソフトウェア更新装置１００及び車載ゲートウェイ装置２００の制御デバイス２２０の各機能は、プログラムによって実現可能であり、各機能を実現するために予め用意されたコンピュータプログラムが補助記憶装置に格納され、ＣＰＵ等の制御部が補助記憶装置に格納されたプログラムを主記憶装置に読み出し、主記憶装置に読み出された該プログラムを制御部が実行することで、各部の機能を動作させることができる。【００９８】
また、上記プログラムは、コンピュータ読取可能な記録媒体に記録された状態で、車載ＧＷ装置２００に提供することも可能である。コンピュータ読取可能な記録媒体としては、ＣＤ−ＲＯＭ等の光ディスク、ＤＶＤ−ＲＯＭ等の相変化型光ディスク、ＭＯ（Magnet Optical）やＭＤ(Mini Disk)などの光磁気ディスク、フロッピー（登録商標）ディスクやリムーバブルハードディスクなどの磁気ディスク、コンパクトフラッシュ（登録商標）、スマートメディア、SDメモリカード、メモリスティック等のメモリカードが挙げられる。また、本発明の目的のために特別に設計されて構成された集積回路（ICチップ等）等のハードウェア装置も記録媒体として含まれる。また、通信デバイス２１０を介して車外ネットワークから車載ＧＷ装置２００に各部を実現するためのプログラムを提供し、インストールさせることもできる。【００９９】
なお、本発明の実施形態を説明したが、当該実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１００】
１００  ソフトウェア更新装置
１１０  通信装置
１２０  制御装置
１２１  ソフトウェア管理部（ＳＷ管理部）
１２２  鍵管理部
１２３  ソフトウェア更新制御部（ＳＷ更新制御部）
２００  車載ゲートウェイ装置（車載ＧＷ装置）
２１０  通信デバイス
２１１  車内通信インターフェース
２１２  車外通信インターフェース
２２０  制御デバイス
２２１  車内通信制御部
２２２  車外通信制御部
２２３  ゲートウェイ制御部（ＧＷ制御部）
２２３Ａ  ネットワーク制御部
２２３１  ルーティング制御部
２２３２  プロトコル変換部
２２３３  セキュリティ部
２２３Ｂ  通信制御部
２２３４  通信状態監視部
２２３５  通信経路選択部
２２３６  監視制御部
２２３７  Ｃｏｎｆｉｇ設定制御部
２２４  ソフトウェア更新管理部
２２５  記憶部
３００  車両制御システム
【図１】
2018078805.tif 000003
【図２】
2018078805.tif 000004
【図３】
2018078805.tif 000005
【図４】
2018078805.tif 000006
【図５】
2018078805.tif 000007
【図６】
2018078805.tif 000008
【図７】
2018078805.tif 000009
【図８】
2018078805.tif 000010
【図９】
2018078805.tif 000011
【図１０】
2018078805.tif 000012
【図１１】
2018078805.tif 000013
【国際調査報告】
2018078805.tif 000014
2018078805.tif 000015