(57)【要約】【課題】車載装置が記憶するプログラムの更新処理に係るコマンドデータが車載装置に誤送信され、車両が予期せぬ動作を行うことを防ぐことができる車載更新装置を提供する。【解決手段】車載更新装置は、プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、記憶部が記憶したプログラムを更新するための更新用プログラムを外部から取得し、取得した更新用プログラムにて記憶部が記憶するプログラムの更新処理を実行する第１処理回路と、第１処理回路の処理で作成されないデータを作成する処理を実行する第２処理回路とを備え、第１処理回路は、プログラムの更新を車載装置に命令するためのコマンドデータに第２処理回路が作成したデータを付加して通信部から車載装置へ送信させる処理を実行する。【選択図】図７
2020155026.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、
前記プログラムを更新するための更新用プログラムにて前記記憶部が記憶する前記プログラムの更新処理を実行する第１処理回路と、
前記第１処理回路の処理で作成されないデータを作成する処理を実行する第２処理回路と
を備え、
前記第１処理回路は、
前記プログラムの更新に係る処理を前記車載装置に命令するためのコマンドデータに前記第２処理回路が作成した前記データを付加して前記通信部から前記車載装置へ送信させる処理を実行する
車載更新装置。
【請求項２】
前記第１処理回路は乱数データを作成し、作成された前記乱数データを前記第２処理回路に与え、
前記第２処理回路は前記第１処理回路が作成した前記乱数データに基づいて前記データを作成し、作成された前記データを前記第１処理回路に与え、
前記第１処理回路は前記乱数データ及び前記データを前記コマンドデータに付加して前記通信部から前記車載装置へ送信させる
ようにしてある請求項１に記載の車載更新装置。
【請求項３】
前記第２処理回路が作成する前記データは、前記乱数データに基づいて作成される誤り検出データ又はハッシュ値である
請求項２に記載の車載更新装置。
【請求項４】
前記第１処理回路は、
複数の前記車載装置と通信を行う場合、前記車載装置毎に異なる前記乱数データに基づいて作成された前記データを前記コマンドデータに付加して前記複数の車載装置それぞれへ送信する
請求項２又は請求項３に記載の車載更新装置。
【請求項５】
請求項１から請求項４のいずれか１項に記載の車載更新装置と、
前記プログラムを書き換え可能に記憶した前記記憶部を有する前記車載装置と
を備え、
前記車載更新装置は、
前記車載装置の前記プログラムの更新処理を実行する
更新処理システム。
【請求項６】
請求項２から請求項４のいずれか１項に記載の車載更新装置と、
前記プログラムを書き換え可能に記憶した前記記憶部を有する前記車載装置と
を備え、
前記車載装置は、
前記コマンドデータに含まれる前記乱数データと、前記データとが整合している場合、前記コマンドデータに従って更新に係る処理を実行する
更新処理システム。
【請求項７】
プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、前記プログラムを更新するための更新用プログラムにて前記記憶部が記憶する前記プログラムの更新処理を実行する第１処理回路と、第２処理回路とを備えた車載更新装置を用いて前記プログラムを更新する更新処理方法であって、
前記第１処理回路の処理で作成されないデータを、前記第２処理回路に作成させるステップと、
前記プログラムの更新に係る処理を前記車載装置に命令するためのコマンドデータに前記第２処理回路が作成したデータを付加して前記通信部から前記車載装置へ送信させるステップと
を備える更新処理方法。
【請求項８】
プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、前記プログラムを更新するための更新用プログラムにて前記記憶部が記憶する前記プログラムの更新処理を実行する第１処理回路と、第２処理回路とを備えた車載更新装置の前記第１処理回路に、
前記第１処理回路の処理で作成されないデータを、前記第２処理回路に作成させるステップと、
前記プログラムの更新に係る処理を前記車載装置に命令するためのコマンドデータに前記第２処理回路が作成したデータを付加して前記通信部から前記車載装置へ送信させるステップと
を実行させるための処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車載更新装置、更新処理システム、更新処理方法及び処理プログラムに関する。
【背景技術】
【０００２】
車両には複数のＥＣＵ（Electronic Control Unit）などの車載装置が搭載されている。複数のＥＣＵはＣＡＮ（Controller Area Network）バスなどの通信線を介して接続されており、相互に情報の送受信を行うことができる。各ＥＣＵは、フラッシュメモリ又はＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）等の記憶部に記憶されたプログラムをＣＰＵ（Central Processing Unit）などの処理回路が読み出して実行することにより、車両の制御などの種々の処理を行う。ＥＣＵのプログラムは、例えば機能追加、不具合の修正又はバージョンアップ等の必要が生じた場合、新たなプログラムに書き換え又は更新する必要がある。各ＥＣＵのプログラムを更新するための処理を実行する車載更新装置は、更新に係る処理を命令するコマンドデータ、更新用プログラム等を、通信線を介してＥＣＵへ送信することによって、各ＥＣＵのプログラムを更新する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−４５５１５号公報
【特許文献２】特開２０１５−４１３３４号公報
【特許文献３】特開２００７−２０００４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、誤動作により更新処理に係るコマンドデータが車載更新装置から車載装置に送信された場合、車両が予期せぬ動作を行う可能性がある。
【０００５】
本開示の目的は、車載装置が記憶するプログラムの更新処理に係るコマンドデータが車載装置に誤送信され、車両が予期せぬ動作を行うことを防ぐことができる車載更新装置、更新処理システム、更新処理方法及び処理プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本開示に係る車載更新装置は、プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、前記プログラムを更新するための更新用プログラムにて前記記憶部が記憶する前記プログラムの更新処理を実行する第１処理回路と、前記第１処理回路の処理で作成されないデータを作成する処理を実行する第２処理回路とを備え、前記第１処理回路は、前記プログラムの更新に係る処理を前記車載装置に命令するためのコマンドデータに前記第２処理回路が作成した前記データを付加して前記通信部から前記車載装置へ送信させる処理を実行する。
【０００７】
本開示に係る更新処理方法は、プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、前記プログラムを更新するための更新用プログラムにて前記記憶部が記憶する前記プログラムの更新処理を実行する第１処理回路と、第２処理回路とを備えた車載更新装置を用いて前記プログラムを更新する更新処理方法であって、前記第１処理回路の処理で作成されないデータを、前記第２処理回路に作成させるステップと、前記プログラムの更新に係る処理を前記車載装置に命令するためのコマンドデータに前記第２処理回路が作成したデータを付加して前記通信部から前記車載装置へ送信させるステップとを備える。
【０００８】
本開示に係る処理プログラムは、プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、前記プログラムを更新するための更新用プログラムにて前記記憶部が記憶する前記プログラムの更新処理を実行する第１処理回路と、第２処理回路とを備えた車載更新装置の前記第１処理回路に、前記第１処理回路の処理で作成されないデータを、前記第２処理回路に作成させるステップと、前記プログラムの更新に係る処理を前記車載装置に命令するためのコマンドデータに前記第２処理回路が作成したデータを付加して前記通信部から前記車載装置へ送信させるステップとを実行させる。
【０００９】
なお、本願は、このような特徴的な処理部を備える更新処理装置として実現することができるだけでなく、上記の通り、かかる特徴的な処理をステップとする更新処理方法として実現したり、かかるステップをコンピュータに実行させるためのプログラムとして実現したりすることができる。また、更新処理装置の一部又は全部を実現する半導体集積回路として実現したり、更新処理装置を含むその他のシステムとして実現したりすることができる。
【発明の効果】
【００１０】
上記によれば、車載装置が記憶するプログラムの更新処理に係るコマンドデータが車載装置に誤送信され、車両が予期せぬ動作を行うことを防ぐことができる車載更新装置、更新処理システム、更新処理方法及び処理プログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は本実施形態に係る更新処理システムの構成を示す模式図である。
【図２】図２は本実施形態に係る更新処理システム及びゲートウェイの構成を示すブロック図である。
【図３】図３はＥＣＵの構成を示す模式図である。
【図４】図４はプログラム更新処理の手順を示すフローチャートである。
【図５】図５はアクティベーションに係る処理の手順を示すフローチャートである。
【図６】図６はアクティベーションに係る処理の手順を示すフローチャートである。
【図７】図７は再起動コマンドの作成及び送信の方法を示す説明図である。
【発明を実施するための形態】
【００１２】
［本開示の実施形態の説明］
最初に本開示の実施態様を列記して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００１３】
（１）本開示に係る車載更新装置は、プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、前記プログラムを更新するための更新用プログラムにて前記記憶部が記憶する前記プログラムの更新処理を実行する第１処理回路と、前記第１処理回路の処理で作成されないデータを作成する処理を実行する第２処理回路とを備え、前記第１処理回路は、前記プログラムの更新に係る処理を前記車載装置に命令するためのコマンドデータに前記第２処理回路が作成した前記データを付加して前記通信部から前記車載装置へ送信させる処理を実行する。
【００１４】
本開示によれば、第１処理回路は、第２処理回路で作成されるデータが付加されたコマンドデータを車載装置へ送信する。車載装置は、上記データが付加されたコマンドデータを受信した場合、当該コマンドデータに従ってプログラムの更新に係る処理を実行する。
従って、第１処理回路の誤動作によりコマンドデータが車載装置へ送信された場合であっても、第２処理回路で作成されるデータがコマンドデータに付加されていないと、車載装置は動作しない。また、誤動作により第２処理回路が上記データを作成した場合であっても、第１処理回路が正常に動作していると、コマンドデータは車載装置へ送信されない。
従って、誤動作により更新処理に係るコマンドデータが車載装置に送信され、車両が予期せぬ動作を行うことを防ぐことができる。
【００１５】
（２）前記第１処理回路は乱数データを作成し、作成された前記乱数データを前記第２処理回路に与え、前記第２処理回路は前記第１処理回路が作成した前記乱数データに基づいて前記データを作成し、作成された前記データを前記第１処理回路に与え、前記第１処理回路は前記乱数データ及び前記データを前記コマンドデータに付加して前記通信部から前記車載装置へ送信させるようにしてある構成が好ましい。
【００１６】
本開示によれば、第２処理回路は、第１処理回路が作成した乱数データに基づいて、コマンドデータに付加すべき上記データを作成する。第１処理回路は、自身が作成した乱数データと、第２処理回路が当該乱数データに基づいて生成したデータとをコマンドデータに付加する。第１処理回路は、乱数データ及び当該データが付加されたコマンドデータを通信部から車載装置へ送信する。
車載装置は、コマンドデータに付加された乱数データ及び上記データを参照することによって、第１処理回路及び第２処理回路の双方が動作して送信されたコマンドデータであるか否かを確認することができる。車載装置は、上記データが乱数データから第２処理回路によって作成されたものとして矛盾が無いかどうかを確認することによって、正常に作成及び送信されたコマンドデータであるか否かを確認することができる。
従って、誤動作により更新処理に係るコマンドデータが車載装置に送信され、車両が予期せぬ動作を行うことをより効果的に防ぐことができる。
【００１７】
（３）前記第２処理回路が作成する前記データは、前記乱数データに基づいて作成される誤り検出データ又はハッシュ値である構成が好ましい。
【００１８】
本開示によれば、第２処理回路は、第１処理回路が作成した乱数データに基づく誤り検出データ又はハッシュ値を作成する。第１処理回路は、自身が作成した乱数データと、当該乱数データに基づいて作成された誤り検出データ又はハッシュ値をコマンドデータに付加して車載装置へ送信させる。車載装置は、コマンドデータに付加された乱数データと、上記データとが整合しているか否かを判定することによって、正常動作で作成及び送信されたコマンドデータであるか否かを確認することができる。
従って、誤動作により更新処理に係るコマンドデータが車載装置に送信され、車両が予期せぬ動作を行うことをより効果的に防ぐことができる。
【００１９】
（４）前記第１処理回路は、複数の前記車載装置と通信を行う場合、前記車載装置毎に異なる前記乱数データに基づいて作成された前記データを前記コマンドデータに付加して前記複数の車載装置それぞれへ送信する構成が好ましい。
【００２０】
本開示によれば、複数の車載装置それぞれのプログラムを更新する場合、第１処理回路は、車載装置毎に異なるデータが付加されたコマンドデータが車載装置それぞれに送信される。
従って、複数の車載装置が同時的に予期せぬ動作を行う事態を防ぐことができる。
【００２１】
（５）本開示に係る更新処理システムは、態様（１）から態様（４）のいずれか一つの車載更新装置と、前記プログラムを書き換え可能に記憶した前記記憶部を有する前記車載装置とを備え、前記車載更新装置は、前記車載装置の前記プログラムの更新処理を実行する。
【００２２】
本開示によれば、態様（１）同様、誤動作により更新処理に係るコマンドデータが車載装置に送信され、車両が予期せぬ動作を行うことを防ぐことができる。
【００２３】
（６）本開示に係る更新処理システムは、態様（２）から態様（４）のいずれか一つの車載更新装置と、前記プログラムを書き換え可能に記憶した前記記憶部を有する前記車載装置とを備え、前記車載装置は、前記コマンドデータに含まれる前記乱数データと、前記データとが整合している場合、前記コマンドデータに従って更新に係る処理を実行する。
【００２４】
本開示によれば、態様（２）同様、誤動作により更新処理に係るコマンドデータが車載装置に送信されることを防ぐことができる。車載装置は、第１処理回路及び第２処理回路の正常な動作で作成及び送信されたコマンドデータであるか否かを確認することができる。
従って、誤動作により更新処理に係るコマンドデータが車載装置に送信され、車両が予期せぬ動作を行うことをより効果的に防ぐことができる。
【００２５】
（７）本開示に係る更新処理方法は、プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、前記プログラムを更新するための更新用プログラムにて前記記憶部が記憶する前記プログラムの更新処理を実行する第１処理回路と、第２処理回路とを備えた車載更新装置を用いて前記プログラムを更新する更新処理方法であって、前記第１処理回路の処理で作成されないデータを、前記第２処理回路に作成させるステップと、前記プログラムの更新に係る処理を前記車載装置に命令するためのコマンドデータに前記第２処理回路が作成したデータを付加して前記通信部から前記車載装置へ送信させるステップとを備える。
【００２６】
本開示によれば、態様（１）同様、誤動作により更新処理に係るコマンドデータが車載装置に送信され、車両が予期せぬ動作を行うことを防ぐことができる。
【００２７】
（８）本開示に係る処理プログラムは、プログラムを書き換え可能に記憶した記憶部を有する車載装置と通信を行う通信部と、前記プログラムを更新するための更新用プログラムにて前記記憶部が記憶する前記プログラムの更新処理を実行する第１処理回路と、第２処理回路とを備えた車載更新装置の前記第１処理回路に、前記第１処理回路の処理で作成されないデータを、前記第２処理回路に作成させるステップと、前記プログラムの更新に係る処理を前記車載装置に命令するためのコマンドデータに前記第２処理回路が作成したデータを付加して前記通信部から前記車載装置へ送信させるステップとを実行させる。
【００２８】
本開示によれば、態様（１）同様、誤動作により更新処理に係るコマンドデータが車載装置に送信され、車両が予期せぬ動作を行うことを防ぐことができる。
【００２９】
［本開示の実施形態の詳細］
本開示の実施形態に係る車載更新装置、更新処理システム、更新処理方法及び処理プログラムの具体例を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００３０】
以下、本開示をその実施形態を示す図面に基づいて具体的に説明する。
図１は本実施形態に係る更新処理システム１００の構成を示す模式図、図２は本実施形態に係る更新処理システム１００及びゲートウェイ（車載更新装置）１の構成を示すブロック図である。本実施形態に係る更新処理システム１００は、車両Ｃに搭載された複数のＥＣＵ２と、無線通信装置３と、ゲートウェイ１とを備える。
【００３１】
各ＥＣＵ２は、通信線１ａ又は１ｂに接続されており、接続された通信線１ａ又は１ｂを介した通信を行うことができる。ゲートウェイ１は通信線１ａ、１ｂ間の通信を中継し、これにより複数のＥＣＵ２は通信線１ａ、１ｂ及びゲートウェイ１を介して通信を行うことができる。ＥＣＵ２は、例えば車両Ｃのエンジンの動作を制御する車載制御装置、ドアの施解錠を制御する車載制御装置、使用者の認証処理を行う車載制御装置等である。
【００３２】
本実施形態に係る更新処理システム１００では、ゲートウェイ１に通信線１ｃを介して無線通信装置３が接続されている。ゲートウェイ１は、無線通信装置３を介して車両Ｃの外部に設置されたサーバ装置９との通信を行うことができる。
【００３３】
無線通信装置３は、例えば携帯電話通信網又は無線ＬＡＮ（Local Area Network）等の無線通信を行うことによって、車両Ｃの外部に設置されたサーバ装置９との間で通信を行うことができる。無線通信装置３は、ゲートウェイ１及びサーバ装置９の間の通信を中継することができ、ゲートウェイ１から与えられたデータをサーバ装置９へ送信すると共に、サーバ装置９から受信したデータをゲートウェイ１へ与える。
【００３４】
サーバ装置９は、車両Ｃに搭載されるＥＣＵ２にて実行されるプログラム２２ａ（図３参照）を管理及び記憶している。サーバ装置９は、車両Ｃからの問合わせに応じて、各ＥＣＵ２が記憶するプログラム２２ａなどの更新が必要であるか否かを通知すると共に、更新が必要である場合には更新用のプログラム２２ａを車両Ｃへ配信する処理を行う。ゲートウェイ１は、サーバ装置９と通信を行い、ＥＣＵ２が記憶する後述のプログラム２２ａを更新するための更新用プログラムを取得する。ゲートウェイ１は、取得した更新用プログラムをＥＣＵ２へ送信し、更新処理に係る各種コマンドデータをすることによって、ＥＣＵ２のプログラム２２ａを更新させる。
【００３５】
本実施形態に係る更新処理システム１００では、ゲートウェイ１が無線通信装置３を介して定期的にサーバ装置９との通信を行い、ＥＣＵ２が記憶しているプログラム２２ａの更新の有無を確認する。更新がある場合、ゲートウェイ１は、更新用プログラムをサーバ装置９から取得して自身の記憶部１３に記憶する。更新用プログラムの取得が完了した後、ゲートウェイ１は、通信線１ａ、１ｂを介して更新対象のＥＣＵ２へ更新用プログラムを送信することによって、ＥＣＵ２の更新処理を行う。ＥＣＵ２は、ゲートウェイ１から送信された更新用プログラムを受信して自身の記憶部２２に蓄積し、更新用プログラムを全て受信し終えた後に自身の実行するプログラム２２ａを更新用プログラムに変更することによって、プログラム２２ａの更新を行う。
【００３６】
本実施形態に係るゲートウェイ１は、図２に示すように、第１処理回路（第１プロセッサ）１１、第２処理回路（第２プロセッサ）１２、記憶部（ストレージ）１３及び第１ないし第３通信部（トランシーバ）１４ａ、１４ｂ、１４ｃ等を備える。
【００３７】
第１処理回路１１は、例えばＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro-Processing Unit）等の演算処理装置を備える。第１処理回路１１は、記憶部１３に記憶された処理プログラム１３ａを読み出して実行することにより、種々の演算処理を行う。本実施形態において第１処理回路１１は、車内ネットワークの通信線１ａ、１ｂ、１ｃ間のデータ送受信を中継する処理、ＥＣＵ２のプログラム２２ａを更新する処理等に必要な演算処理を行う。
【００３８】
第２処理回路１２は、第１処理回路１１と同様の構成であり、ＣＰＵ又はＭＰＵ等の演算処理装置を備える。第２処理回路１２は、例えばハードウェアセキュリティモジュール（HSM：Hardware Security Module）のプロセッサである。第１処理回路１１と、第２処理回路１２とは、別個のハードウェアである。第１処理回路１１及び第２処理回路１２は独立して個々の処理を実行することができる。第１処理回路１１は、第２処理回路１２との間でデータをやり取りすることができる。例えば第１処理回路１１は、第２処理回路１２に特定の処理を実行し、処理結果を第１処理回路１１に戻す要求を行うことができる。本実施形態では、第２処理回路１２は、第１処理回路１１から与えられた任意のデータに基づいて、当該データの誤り検出データ又はハッシュ値を算出し、算出された誤り検出データ又はハッシュ値を第１処理回路１１に与える処理を実行することができる。
【００３９】
記憶部１３は、フラッシュメモリ又はＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）等の不揮発性のメモリ素子を用いて構成されている。記憶部１３は、第１処理回路１１が実行する各種コンピュータプログラム、及び、第１処理回路１１の処理に必要な各種のデータを記憶する。本実施形態において記憶部１３は、第１処理回路１１が実行する処理プログラム１３ａを記憶している。なお処理プログラム１３ａは、例えばゲートウェイ１の製造段階において記憶部１３に書き込まれてもよく、また例えば図示しないサーバなどが配信するものをゲートウェイ１が通信にて取得してもよく、また例えばメモリカード又は光ディスク等の記録媒体１０１に記録されたものをゲートウェイ１が読み出して記憶部１３に記憶してもよく、記録媒体１０１に記録されたものを書込装置が読み出してゲートウェイ１の記憶部１３に書き込んでもよい。要するに処理プログラム１３ａは、ネットワークを介した配信の態様で提供されてもよく、記録媒体１０１に記録された態様で提供されてもよい。
【００４０】
ゲートウェイ１は、第１通信部１４ａ、第２通信部１４ｂ及び第３通信部１４ｃを備える。第１通信部１４ａ、第２通信部１４ｂ及び第３通信部１４ｃは、車内ネットワークを構成する通信線１ａ、１ｂ、１ｃにそれぞれ接続され、所定の通信プロトコルに従ってＥＣＵ２、サーバ装置９とデータの送受信を行う。本実施形態において、第１ないし第３通信部１４ａ、１４ｂ、１４ｃはＣＡＮの通信規格に基づくデータの送受信を行うものとするが、通信規格はＣＡＮ以外のどのようなものであってもよい。第１ないし第３通信部１４ａ、１４ｂ、１４ｃは、第１処理回路１１から与えられたデータを電気信号に変換して通信線１ａ、１ｂ、１ｃへ出力することによって情報を送信すると共に、通信線１ａ、１ｂ、１ｃの電位をサンプリングして取得することによりデータを受信し、受信したデータを第１処理回路１１へ与える。なおゲートウェイ１が備える４つの第１ないし第３通信部１４ａ、１４ｂ、１４ｃは、それぞれ異なる通信プロトコルに従って通信を行うものであってもよい。
【００４１】
図３はＥＣＵ２の構成を示す模式図である。なお本図においては、車両Ｃに搭載された複数のＥＣＵ２のうち、一のＥＣＵ２の構成を図示しているが、他のＥＣＵ２も同様の構成である。ＥＣＵ２は、制御部（プロセッサ）２１、記憶部（ストレージ）２２及びＥＣＵ通信部（トランシーバ）２３等を備える。制御部２１には、ＥＣＵ２の機能に応じて、各種センサ、アクチュエータ等が接続されている。制御部２１は、例えばＣＰＵ又はＭＰＵ等の演算処理装置を用いて構成され、記憶部２２に記憶されたプログラム２２ａを読み出して実行することにより、種々の演算処理を行う。なお記憶部２２に記憶されるプログラム２２ａは、ＥＣＵ２毎にその内容が異なる。
【００４２】
記憶部２２は、フラッシュメモリ又はＥＥＰＲＯＭ等の不揮発性のメモリ素子を用いて構成されている。記憶部２２は、制御部２１が実行するプログラム２２ａと、このプログラム２２ａの実行に必要なデータとを記憶する。最初期のプログラム２２ａは、例えばＥＣＵ２の製造段階において記憶部２２に書き込まれてもよく、メモリカード又は光ディスク等の記録媒体１０１に記録されたものをＥＣＵ２が読み出して記憶部２２に記憶してもよく、記録媒体１０１に記録されたものを書込装置が読み出してＥＣＵ２の記憶部２２に書き込んでもよい。
また本実施形態においては、ＥＣＵ２が車両Ｃに搭載された後、ゲートウェイ１から通信線１ａを介して送信された更新用プログラムをＥＣＵ２が受信し、受信した更新用プログラムによりＥＣＵ２が記憶部２２のプログラム２２ａを更新する。
【００４３】
本実施形態においてＥＣＵ２の記憶部２２は、プログラム２２ａを記憶するための２つの領域が設けられている。２つの領域は、いずれもプログラム２２ａを記憶する十分な記憶容量を有している。制御部２１は記憶部２２の一方の領域からプログラム２２ａを読み出して処理を行い、ゲートウェイ１から受信した更新用プログラムが記憶部２２の他方の領域に記憶される。ＥＣＵ２は、ゲートウェイ１から更新用プログラムの全ての受信を完了した後、制御部２１がプログラム２２ａを読み出す領域を切り替えることによって、プログラム２２ａの更新を行う。
【００４４】
ＥＣＵ通信部２３は、車内ネットワークを構成する通信線１ａに接続され、例えばＣＡＮの通信プロトコルに従ってデータの送受信を行う。ＥＣＵ通信部２３は、制御部２１から与えられたデータを電気信号に変換して通信線１ａへ出力することによってデータを送信すると共に、通信線１ａの電位をサンプリングして取得することによりデータを受信し、受信したデータを制御部２１へ与える。
【００４５】
図４はプログラム更新処理の手順を示すフローチャートである。ゲートウェイ１の第１処理回路１１は、サーバ装置９から、ＥＣＵ２のプログラム更新を求める更新要求を受信したか否かを判定する（ステップＳ１）。更新要求を受信していないと判定した場合（ステップＳ１：ＮＯ）、第１処理回路１１は、更新要求を受信するまで待機する。
【００４６】
更新要求を受信したと判定した場合（ステップＳ１：ＹＥＳ）、第１処理回路１１は、更新要求の送信元のサーバ装置９から送信される更新用プログラムを受信することにより、更新処理に用いる更新用プログラムを取得する（ステップＳ２）。
【００４７】
第１処理回路１１は、ステップＳ１２で取得した更新用プログラムを、第１通信部１４ａ又は第２通信部１４ｂにてプログラム更新対象のＥＣＵ２へ送信し、当該ＥＣＵ２に更新用プログラムをインストールさせる（ステップＳ３）。
【００４８】
更新用プログラムのインストールが完了した場合、第１処理回路１１は更新用プログラムにてＥＣＵ２を再起動させることによって、更新用プログラムのアクティベーション処理を実行し（ステップＳ４）、処理を終える。
【００４９】
図４は、一のＥＣＵ２が記憶するプログラム２２ａを更新する処理を示したものであるが、更新処理システム１００は、他のＥＣＵ２のプログラム２２ａを更新する際、同様の処理を実行すれば良い。
【００５０】
図５及び図６はアクティベーションに係る処理の手順を示すフローチャート、図７は再起動コマンドの作成及び送信の方法を示す説明図である。図５及び図６に示すフローチャートは、図４に示すアクティベーション処理の詳細を示すものであり、本実施形態に係る更新処理方法を示すものである。ここでは、一のＥＣＵ２のアクティベーション処理を説明する。
【００５１】
サーバ装置９は、ＥＣＵ２のアクティベーションを要求する要求信号を車両Ｃへ送信する（ステップＳ１１）。ゲートウェイ１の第１処理回路１１は、サーバ装置９から送信された当該要求信号を第３通信部１４ｃにて受信する（ステップＳ１２）。アクティベーションの要求信号を受信した第１処理回路１１は、起動面の切り替えを要求する切替要求を第１通信部１４ａ又は第２通信部１４ｂからＥＣＵ２へ送信する（ステップＳ１３）。つまり、第１処理回路１１は、ＥＣＵ２の再起動時にプログラム２２ａが読み出される記憶部２２の領域を、更新用プログラムが書き込まれた領域へ切り替えるための切替要求をＥＣＵ２へ送信する。
【００５２】
ＥＣＵ２は、ゲートウェイ１から送信された起動面の切替要求を受信する（ステップＳ１４）。当該切替要求を受信したＥＣＵ２は起動面を、更新用プログラムを記憶した領域に切り替える（ステップＳ１５）。ＥＣＵ２は、起動面の切り替え結果を第１処理回路１１へ送信する（ステップＳ１６）。
【００５３】
ＥＣＵ２から送信された起動面の切替結果を受信する（ステップＳ１７）。正常に起動面の切り替えが行われたことを確認した第１処理回路１１は、図７中（１）に示すよう、ＥＣＵ２の再起動を命令するためのコマンド前半部を作成する（ステップＳ１８）。ＥＣＵ２はコマンド前半部として、例えば乱数データ又はカウント値データを作成する。カウント値データは、ゲートウェイ１からＥＣＵ２へコマンドデータが送信される都度、値がカウントアップ又はカウントダウンされる数値を示したデータである。乱数データ又はカウント値データは、１２８ビット以上が好ましい。コマンド前半部は乱数データ又はカウント値データであるため、他のＥＣＵ２のプログラム２２ａを更新する処理が実行された場合、ステップＳ１８では異なる値のコマンド前半部が作成される。
【００５４】
次いで、第１処理回路１１は、図７中（２）に示すように、ステップＳ１７で作成した乱数データ又はカウント値データであるコマンド前半部と、コマンド後半部の作成を要求する作成要求を第２処理回路１２へ送信する（ステップＳ１９）。
【００５５】
第２処理回路１２は、コマンド前半部と、コマンド後半部の作成要求を受信する（ステップＳ２０）。第２処理回路１２は、図７中（３）に示すように、第１処理回路１１が作成したコマンド前半部に基づいて、コマンド後半部を作成する（ステップＳ２１）。コマンド後半部は、コマンド前半部の誤り検出データ又はハッシュ値である。
【００５６】
第２処理回路１２は、図７中（４）に示すように、ステップＳ２１で作成したコマンド後半部を第１処理回路１１へ送信する（ステップＳ２２）。第１処理回路１１は、第２処理回路１２が作成したコマンド後半部を受信する（ステップＳ２３）。第１処理回路１１は、図７中（５）に示すように、ＥＣＵ２の再起動を命令する再起動コマンドを作成する（ステップＳ２４）。具体的には、図７に示すように、送信先のＥＣＵ２を識別するための識別子と、ＥＣＵ２の再起動要求とを含むコマンドデータに、第１処理回路１１が作成したコマンド前半部と、第２処理回路１２が作成したコマンド後半部とを付加することによって、再起動コマンドを作成する。
【００５７】
第１処理回路１１は、図７中（６）に示すように、再起動コマンドを第１通信部１４ａ又は第２通信部１４ｂにてＥＣＵ２へ送信する（ステップＳ２５）。ＥＣＵ２は、ゲートウェイ１から送信された再起動コマンドを受信する（ステップＳ２６）。ＥＣＵ２は、図７中（７）に示すように、再起動コマンドを解析し（ステップＳ２７）、コマンド前半部と、コマンド後半部とが整合しているか否かを判定する（ステップＳ２８）。例えば、コマンド後半部が誤り検出データである場合、ＥＣＵ２は、コマンド前半部のデータが、コマンド後半部の誤り検出データに基づいて、誤りなしと判定さたとき、コマンド前半部及びコマンド後半部が整合していると判断する。また、コマンド後半部がハッシュ値である場合、ＥＣＵ２は、コマンド前半部に基づいて算出されるハッシュ値と、コマンド後半部のハッシュ値とが一致しているとき、コマンド前半部及びコマンド後半部が整合していると判断する。
【００５８】
コマンド前半部及びコマンド後半部が整合していると判定した場合（ステップＳ２８：ＹＥＳ）、ＥＣＵ２は再起動を実行する（ステップＳ２９）。起動面を切り替えてＥＣＵ２を再起動することによって、更新用プログラムが読み出され、プログラム２２ａの更新が完了する。ステップＳ２９の処理を終えた場合、又はコマンド前半部及びコマンド後半部が整合していないと判定した場合（ステップＳ２８：ＮＯ）、ＥＣＵ２は、再起動コマンドに従った処理結果をゲートウェイ１へ送信する（ステップＳ３０）。処理結果は、再起動を実行したか否か、正常に再起動処理が完了したか否か等を示すデータである。
【００５９】
ゲートウェイ１の第１処理回路１１は、ＥＣＵ２から送信された処理結果を受信する（ステップＳ３１）。そして、第１処理回路１１は、アクティベーション処理の結果を第３通信部１４ｃにてサーバ装置９へ送信する（ステップＳ３２）。
【００６０】
サーバ装置９は、車両Ｃのゲートウェイ１から送信されたアクティベーション結果を受信し（ステップＳ３３）、アクティベーション処理を終える。
【００６１】
このように構成された本実施形態によれば、ＥＣＵ２が記憶するプログラム２２ａの更新処理に係る再起動コマンドがＥＣＵ２に誤送信され、車両Ｃが予期せぬ動作を行うことを防ぐことができる。
例えば、第１処理回路１１の誤動作により、コマンド後半部の作成要求が第２処理回路１２に送信されたとしても、その後、第１処理回路１１が正常に動作している限り、再起動コマンドはＥＣＵ２に送信されることはない。
また、第１処理回路１１の誤動作により、再起動コマンドがＥＣＵ２に送信されたとしても、第２処理回路１２によってコマンド後半部が作成されていない場合、ＥＣＵ２が再起動することはない。
【００６２】
本実施形態によれば、第２処理回路１２は、第１処理回路１１が作成したコマンド前半部の乱数データ又はカウント値データに基づいて後半部データを作成する。第１処理回路１１は、第１処理回路１１及び第２処理回路１２にて作成されるコマンド前半部及びコマンド後半部が付加された更新コマンドをＥＣＵ２へ送信する。
ＥＣＵ２は、第１処理回路１１及び第２処理回路１２にて作成されたコマンド前半部及びコマンド後半部がコマンドデータに付加されていない限り、コマンドデータに従った処理を実行しない。従って、誤動作により更新処理に係る再起動コマンドがＥＣＵ２に送信され、車両Ｃが予期せぬ動作を行うことをより効果的に防ぐことができる。
【００６３】
本実施形態によれば、第２処理回路１２が作成するコマンド後半部は、コマンド前半部である乱数データ又はカウント値データに基づいて算出される誤り検出データ又はハッシュ値である。従って、ＥＣＵ２は、コマンド前半部及びコマンド後半部の整合性を確認して、ＥＣＵ２を再起動させることができる。従って、誤動作により更新処理に係る再起動コマンドがＥＣＵ２に送信され、車両Ｃが予期せぬ動作を行うことをより効果的に防ぐことができる。
【００６４】
本実施形態によれば、複数のＥＣＵ２それぞれのプログラム２２ａを更新する場合、第１処理回路１１は、ＥＣＵ２毎に異なるコマンド前半部及びコマンド後半部が付加された再起動コマンドをＥＣＵ２それぞれに送信する。
従って、複数のＥＣＵ２が同時的に予期せぬ動作を行う事態を防ぐことができる。
【００６５】
なお、本実施形態では、ＥＣＵ２のプログラム更新処理を制御するリプロマスタ（更新処理装置）をゲートウェイ１として構成する例を説明したが、リプロマスタをゲートウェイ１と別体で構成しても良い。また、ＥＣＵ２のプログラム２２ａを更新する例を説明したが、車内ネットワークに有線接続又は無線接続される任意のリプロスレーブのプログラム２２ａを更新するように構成しても良い。
【００６６】
また、本実施形態では、第１処理回路１１及び第２処理回路１２にて作成したコマンド前半部及びコマンド後半部が付加されたコマンドデータとして、ＥＣＵ２の再起動を命令するコマンドデータを説明したが、特に限定されるものではない。ＥＣＵ２が記憶するプログラム２２ａの更新処理に係る任意のコマンドデータに本発明を適用することができる。
【００６７】
更に、本実施形態では、第１処理回路１１及び第２処理回路１２にて作成されたコマンド前半部及びコマンド後半部をコマンドデータに付加する例を説明したが、第１処理回路１１及び第２処理回路１２双方の処理によって作成されたコマンドであることをＥＣＵ２が確認できる態様であれば、特に本実施形態に係る処理に限定されるものではない。
例えば、第１処理回路１１は、当該第１処理回路１１にて作成されるデータを付加せず、第２処理回路１２にて作成されるデータを、コマンドデータに付加してＥＣＵ２へ送信しても良い。
また、第２処理回路１２が乱数データと、当該乱数データに基づくデータとを算出し、第１処理回路１１に送信しても良い。第１処理回路１１は、第１処理回路１１は、第２処理回路１２で作成された乱数データ及び上記データをコマンドデータに付加し、ＥＣＵ２へ送信することができる。
【００６８】
更にまた、本実施形態では、第２処理回路１２は、コマンド前半部の電子署名をコマンド後半部として作成しても良い。また、第２処理回路１２は、コマンド前半部の暗号化データをコマンド後半部として作成しても良い。更に、第２処理回路１２は、コマンド前半部及びコマンド後半部を暗号化するように構成しても良い。ゲートウェイ１及びＥＣＵ２間の通信の信頼性を向上させることができる。
【符号の説明】
【００６９】
１  ゲートウェイ
１ａ、１ｂ、１ｃ  通信線
２  ＥＣＵ
３  無線通信装置
９  サーバ装置
１１  第１処理回路
１２  第２処理回路
１３  記憶部
１３ａ  処理プログラム
１４ａ  第１通信部
１４ｂ  第２通信部
１４ｃ  第３通信部
２１  制御部
２２  記憶部
２２ａ  プログラム
２３  ＥＣＵ通信部
１００  更新処理システム
１０１  記録媒体
Ｃ  車両
【図１】
2020155026.tif 000003
【図２】
2020155026.tif 000004
【図３】
2020155026.tif 000005
【図４】
2020155026.tif 000006
【図５】
2020155026.tif 000007
【図６】
2020155026.tif 000008
【図７】
2020155026.tif 000009