IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

特許7367626ソフトウェア更新装置、方法、プログラムおよび車両
<>
  • 特許-ソフトウェア更新装置、方法、プログラムおよび車両 図1
  • 特許-ソフトウェア更新装置、方法、プログラムおよび車両 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-16
(45)【発行日】2023-10-24
(54)【発明の名称】ソフトウェア更新装置、方法、プログラムおよび車両
(51)【国際特許分類】
   G06F 8/656 20180101AFI20231017BHJP
   B60R 16/02 20060101ALI20231017BHJP
   G06F 21/57 20130101ALI20231017BHJP
【FI】
G06F8/656
B60R16/02 660U
G06F21/57 320
【請求項の数】 14
(21)【出願番号】P 2020117848
(22)【出願日】2020-07-08
(65)【公開番号】P2022015169
(43)【公開日】2022-01-21
【審査請求日】2022-06-22
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】福與 賢
(72)【発明者】
【氏名】石川 智康
(72)【発明者】
【氏名】佐藤 雄介
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特開2009-053920(JP,A)
【文献】特開2019-159399(JP,A)
【文献】特開2020-027670(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/656
B60R 16/02
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
センタに更新データのダウンロードを要求する通信部と、
前記ダウンロードした前記更新データを保存する記憶部と、
前記更新データに基づいて、車載ネットワークを介して接続する複数の電子制御ユニットのうち1つ以上のターゲット電子制御ユニットに更新ソフトウェアをインストールあるいはインストールおよびアクティベートする制御を実行する制御部とを備え、
前記制御部は、
前記複数の電子制御ユニットのソフトウェアバージョンを取得し、取得したソフトウェアバージョンの組み合わせに整合性があるか否かを判定し、整合性がないと判定した場合、前記ソフトウェアバージョンの組み合わせに整合性を得るための処理を行い、
前記整合性を得るための処理として、前記整合性のない原因となった電子制御ユニットを特定し、更新前のソフトウェアを実行バージョンとするよう前記整合性のない原因となった電子制御ユニットを制御する、ソフトウェア更新装置。
【請求項2】
センタに更新データのダウンロードを要求する通信部と、
前記ダウンロードした前記更新データを保存する記憶部と、
前記更新データに基づいて、車載ネットワークを介して接続する複数の電子制御ユニットのうち1つ以上のターゲット電子制御ユニットに更新ソフトウェアをインストールあるいはインストールおよびアクティベートする制御を実行する制御部と、を備え、
前記制御部は、
前記複数の電子制御ユニットのソフトウェアバージョンを取得し、取得したソフトウェアバージョンの組み合わせに整合性があるか否かを判定し、整合性がないと判定した場合、前記ソフトウェアバージョンの組み合わせに整合性を得るための処理を行い、
更新前のソフトウェアを記憶している電子制御ユニットについて、更新前のソフトウェアを実行バージョンとする指定を受け付けた場合、前記複数の電子制御ユニットのソフトウェアのバージョンを取得し、取得したバージョンの組み合わせにおいて、前記指定された電子制御ユニットのソフトウェアのバージョンを、更新前のソフトウェアのバージョンにしても、バージョンの組み合わせに整合性がある場合、前記更新前のソフトウェアを実行バージョンとするよう前記電子制御ユニットを制御する、ソフトウェア更新装置。
【請求項3】
センタに更新データのダウンロードを要求する通信部と、
前記ダウンロードした前記更新データを保存する記憶部と、
前記更新データに基づいて、車載ネットワークを介して接続する複数の電子制御ユニットのうち1つ以上のターゲット電子制御ユニットに更新ソフトウェアをインストールあるいはインストールおよびアクティベートする制御を実行する制御部と、を備え、
前記制御部は、前記複数の電子制御ユニットのソフトウェアバージョンを取得し、取得したソフトウェアバージョンの組み合わせに整合性があるか否かを判定し、整合性がないと判定した場合、前記ソフトウェアバージョンの組み合わせに整合性を得るための処理を行い、
前記制御部の機能は、前記複数の電子制御ユニットのうち、2つ以上の電子制御ユニットのソフトウェアにそれぞれ実装される、または、1つの電子制御ユニットの、更新の対象となるソフトウェアとは別のソフトウェアに実装される、ソフトウェア更新装置。
【請求項4】
前記制御部は、少なくとも前記整合性を得るための処理を行う間、車両の所定の動作を制限する、請求項1~3のいずれかに記載のソフトウェア更新装置。
【請求項5】
前記制御部は、インストールあるいはアクティベートする制御を実行する前に前記車両の所定の動作の制限を開始し、前記整合性を得るための処理の後、前記複数の電子制御ユニットのソフトウェアのバージョンの組み合わせを取得し、取得した組み合わせに整合性が得られた場合、前記車両の所定の動作の制限を解除する、請求項に記載のソフトウェア更新装置。
【請求項6】
前記制御部は、前記整合性を得るための処理として、前記整合性のない原因となった電子制御ユニットを特定し、前記更新データのうち、前記整合性のない原因となった電子制御ユニットのソフトウェアを更新するためのデータに基づいて、前記整合性のない原因となった電子制御ユニットのソフトウェアを更新する、請求項1~3のいずれかに記載のソフトウェア更新装置。
【請求項7】
前記制御部は、前記ソフトウェアバージョンの組み合わせに基づいて前記整合性のない原因となった電子制御ユニットを特定する、請求項に記載のソフトウェア更新装置。
【請求項8】
前記制御部は、前記整合性のない原因となった電子制御ユニットが、更新前のソフトウェアを記憶している場合、記憶している更新前のソフトウェアを実行バージョンとするよう前記整合性のない原因となった電子制御ユニットを制御する、請求項1~3のいずれかに記載のソフトウェア更新装置。
【請求項9】
前記制御部は、前記整合性のない原因となった電子制御ユニットのソフトウェアのバージョンを更新前のバージョンにすると、バージョンの組み合わせに整合性がある場合、更新前のソフトウェアを実行バージョンとするよう前記整合性のない原因となった電子制御ユニットを制御する、請求項1~3のいずれかに記載のソフトウェア更新装置。
【請求項10】
センタに更新データのダウンロードを要求するステップと、
前記ダウンロードした前記更新データを保存するステップと、
前記更新データに基づいて、車載ネットワークを介して接続する複数の電子制御ユニットのうち1つ以上のターゲット電子制御ユニットに更新ソフトウェアをインストールあるいはインストールおよびアクティベートする制御を実行するステップと、
前記複数の電子制御ユニットのソフトウェアバージョンを取得し、取得したソフトウェアバージョンの組み合わせに整合性があるか否かを判定し、整合性がないと判定した場合、前記ソフトウェアバージョンの組み合わせに整合性を得るための処理を行うステップと
前記整合性を得るための処理として、前記整合性のない原因となった電子制御ユニットを特定し、更新前のソフトウェアを実行バージョンとするよう前記整合性のない原因となった電子制御ユニットを制御するステップと、を含む、ソフトウェア更新装置のコンピューターが実行するソフトウェア更新方法。
【請求項11】
センタに更新データのダウンロードを要求するステップと、
前記ダウンロードした前記更新データを保存するステップと、
前記更新データに基づいて、車載ネットワークを介して接続する複数の電子制御ユニットのうち1つ以上のターゲット電子制御ユニットに更新ソフトウェアをインストールあるいはインストールおよびアクティベートする制御を実行するステップと、
前記複数の電子制御ユニットのソフトウェアバージョンを取得し、取得したソフトウェアバージョンの組み合わせに整合性があるか否かを判定し、整合性がないと判定した場合、前記ソフトウェアバージョンの組み合わせに整合性を得るための処理を行うステップと、
更新前のソフトウェアを記憶している電子制御ユニットについて、更新前のソフトウェアを実行バージョンとする指定を受け付けた場合、前記複数の電子制御ユニットのソフトウェアのバージョンを取得し、取得したバージョンの組み合わせにおいて、前記指定された電子制御ユニットのソフトウェアのバージョンを、更新前のソフトウェアのバージョンにしても、バージョンの組み合わせに整合性がある場合、前記更新前のソフトウェアを実行バージョンとするよう前記電子制御ユニットを制御するステップと、を含む、ソフトウェア更新装置のコンピューターが実行するソフトウェア更新方法。
【請求項12】
センタに更新データのダウンロードを要求するステップと、
前記ダウンロードした前記更新データを保存するステップと、
前記更新データに基づいて、車載ネットワークを介して接続する複数の電子制御ユニットのうち1つ以上のターゲット電子制御ユニットに更新ソフトウェアをインストールあるいはインストールおよびアクティベートする制御を実行するステップと、
前記複数の電子制御ユニットのソフトウェアバージョンを取得し、取得したソフトウェアバージョンの組み合わせに整合性があるか否かを判定し、整合性がないと判定した場合、前記ソフトウェアバージョンの組み合わせに整合性を得るための処理を行うステップと
前記整合性を得るための処理として、前記整合性のない原因となった電子制御ユニットを特定し、更新前のソフトウェアを実行バージョンとするよう前記整合性のない原因となった電子制御ユニットを制御するステップと、を含む、ソフトウェア更新装置のコンピューターに実行させるソフトウェア更新プログラム。
【請求項13】
センタに更新データのダウンロードを要求するステップと、
前記ダウンロードした前記更新データを保存するステップと、
前記更新データに基づいて、車載ネットワークを介して接続する複数の電子制御ユニットのうち1つ以上のターゲット電子制御ユニットに更新ソフトウェアをインストールあるいはインストールおよびアクティベートする制御を実行するステップと、
前記複数の電子制御ユニットのソフトウェアバージョンを取得し、取得したソフトウェアバージョンの組み合わせに整合性があるか否かを判定し、整合性がないと判定した場合、前記ソフトウェアバージョンの組み合わせに整合性を得るための処理を行うステップと、
更新前のソフトウェアを記憶している電子制御ユニットについて、更新前のソフトウェアを実行バージョンとする指定を受け付けた場合、前記複数の電子制御ユニットのソフトウェアのバージョンを取得し、取得したバージョンの組み合わせにおいて、前記指定された電子制御ユニットのソフトウェアのバージョンを、更新前のソフトウェアのバージョンにしても、バージョンの組み合わせに整合性がある場合、前記更新前のソフトウェアを実行バージョンとするよう前記電子制御ユニットを制御するステップと、を含む、ソフトウェア更新装置のコンピューターに実行させるソフトウェア更新プログラム。
【請求項14】
請求項1~のいずれかに記載のソフトウェア更新装置を備える車両。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車両に搭載される車載機器のプログラムを更新するソフトウェア更新装置に関する。
【背景技術】
【0002】
車両には、複数のECU(Electronic Control Unit:電子制御ユニット)と呼ばれる車載機器が通信線を介して互いに接続されて構成されたネットワークシステムが搭載されている。各車載機器は、互いにメッセージを送受信して、車両の各機能を分担して実行する。
【0003】
車載機器は、典型的にはプロセッサと、RAMのような一時的な記憶部やフラッシュROMのような不揮発性の記憶部とを備えている。プロセッサが実行するプログラム(ソフトウェア)は、不揮発性の記憶部に記憶される。プログラムをより新しいバージョンに書き変えて更新することにより、車載機器の機能の向上、改善を図ることができる。
【0004】
プログラムの更新には、外部装置(センタ)から無線通信等により更新データを受信するダウンロード、ダウンロードした更新データに基づいて更新プログラム(更新ソフトウェア)を車載機器の記憶部に書き込むインストールのステップがある。インストールには、車載機器の仕様に応じて、ダウンロードした更新プログラムを、記憶部の記憶領域のうち、プログラム記憶用の領域として定められた1つの領域(1面:シングルバンク)に、現在のプログラム(旧プログラム)を上書きして書き込む上書きインストールと、プログラム記憶用の領域として定められた2つの領域(2面:デュアルバンク)のうち、現在のプログラム(旧プログラム)が記憶された領域(一方の面)でないほうの領域(他面)に書き込む他面インストールとがある。
【0005】
他面インストールの場合は、プログラム更新のステップには、ダウンロード、インストールの各ステップに加えて、インストールした更新プログラムを実行バージョンとするよう、更新プログラムの開始アドレス等の設定値をコンフィグレーションするアクティベートのステップがある。
【0006】
ECUのプログラム更新に関連して、特許文献1は、ECUのプログラムを、サーバーから送信されたバージョンアッププログラムで更新するシステムを開示している。特許文献1のシステムでは、ECUのプログラムを更新する際、更新後のプログラムのバージョンが他のECUのプログラムのバージョンと整合性が取れることを確認し、更新によるバージョン不整合を抑制する。
【0007】
特許文献2は、各ECUがプログラムのバックアップ領域を備え、バージョンアッププログラムへの更新を行う前に、現プログラムを旧プログラムとしてバックアップ領域に保存し、バージョンアッププログラムへの更新後にECUに動作不良が発生した場合にはバックアップ領域に保存した旧プログラムを使用することにより、ECUを正常に動作していた更新前の状態に戻すことを開示している。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2009-53920号公報
【文献】特開2016-16835号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ネットワークシステムが正常に機能するためには複数のECUのプログラムのバージョンの組み合わせが、予め動作保証された組み合わせ(整合が取れた組み合わせ)であることが必要である。したがって、プログラム更新に失敗した場合や、ユーザーがダウングレードを望んだ場合に、特定のECUのプログラムのみを旧バージョンに戻すだけでなく、複数の車載機器のプログラム全体のバージョンの整合が取れ、動作保証された状態に遷移させることが望まれる。
【0010】
本開示は、上記課題を鑑みてなされたものであり、車載機器のプログラム更新において、複数の車載機器のプログラム全体のバージョンの整合が取れ、動作保証された状態に遷移させることができるソフトウェア更新装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するために、本開示技術の一局面は、センタに更新データのダウンロードを要求する通信部と、ダウンロードした更新データを保存する記憶部と、更新データに基づいて、車載ネットワークを介して接続する複数の電子制御ユニットのうち1つ以上のターゲット電子制御ユニットに更新ソフトウェアをインストールする制御を実行し、ターゲット電子制御ユニットにおいてインストールされた更新ソフトウェアをアクティベートする制御を実行する制御部とを備え、制御部は、複数の電子制御ユニットのソフトウェアバージョンを取得し、取得したソフトウェアバージョンの組み合わせに整合性があるか否かを判定し、整合性がないと判定した場合、ソフトウェアバージョンの組み合わせに整合性を得るための処理を行う、ソフトウェア更新装置である。
【発明の効果】
【0012】
本開示技術によれば、ソフトウェア更新装置は、車載機器のプログラム更新において、複数の車載機器のプログラムのバージョンの組み合わせに対して整合性を確認するので、複数の車載機器のプログラム全体のバージョンの整合が取れ、ネットワークシステムの動作保証がされた状態に遷移させることができる。
【図面の簡単な説明】
【0013】
図1】一実施形態に係るネットワークシステムの構成図
図2】一実施形態に係る処理を示すフローチャート
【発明を実施するための形態】
【0014】
(実施形態)
<構成>
図1に、本実施形態に係るネットワークシステム1の構成例を示す。ネットワークシステム1は、車両に搭載される。ネットワークシステム1は、ソフトウェア更新装置50を含む。ソフトウェア更新装置(OTAマスタ)50には、複数のバス10、20、30…が接続されている。複数の車載機器(電子制御ユニット)11、12…が、バス10に接続されている。複数の車載機器21、22…が、バス20に接続されている。複数のアクチュエータ31、32…が、バス30に接続されている。図1および以降の説明においては、バスとして、バス10、20、30を例示し、車載機器として、車載機器11、12、21、22を例示し、アクチュエータ31、32を例示するがバスや車載機器、アクチュエータの数は限定されない。
【0015】
ソフトウェア更新装置50は、車外に設置された外部装置100(センタ)と通信可能な通信部(通信モジュール)51、外部装置100から提供される更新データに基づいて各車載機器11、12、21、22のプログラムの更新を制御する制御部52を含む。ソフトウェア更新装置50は、典型的にはフラッシュROMのような不揮発性の記憶部(ストレージ)53と、不揮発性の記憶部からプログラムを読み出して実行することで各種処理を行うプロセッサと、プログラムの一部やデータを記憶するRAMのような一時的な記憶部とを含むコンピューターである。ソフトウェア更新装置50は、また、各バス10、20、30を介して、外部装置100と各車載機器11、12、21、22との間の通信、各車載機器11、12、21、22間の通信、各車載機器11、12、21、22と各アクチュエータ31、32との間の通信の制御や中継を行う。このように、ソフトウェア更新装置50は、通信を中継する中継装置としても機能する。
【0016】
各車載機器11、12、21、22は、互いに通信を行い、車両の制御のための各種処理を行う。これらの車載機器は、更新装置同様、典型的には記憶部(ストレージ)とプロセッサとを備えるコンピューターである。
【0017】
アクチュエータ31、32は、ブレーキ、エンジン、あるいはパワーステアリング装置のような車両やその部品に対して力学的な作用を発生させる機器であり、車載機器11、12、21、22からの指示に基づいて動作する。
【0018】
ソフトウェア更新装置50の制御部52は、車載機器11、12、21、22のそれぞれの記憶部が記憶しているプログラムを更新することができる。すなわち、ソフトウェア更新装置50は、ダウンロードする制御、インストールする制御、あるいはさらにアクティベートする制御を行う。ダウンロードは、外部装置100から送信された車載機器11、12、21、22のいずれかのプログラムを更新するための更新データ(配信パッケージ)を受信して記憶する処理である。ダウンロードする制御は、ダウンロード実行だけでなく、ダウンロードの実行可否判断、更新データの検証等、ダウンロードに関する一連の処理の制御を含みうる。インストールは、ダウンロードした更新データに基づいて、更新対象の車載機器の記憶部に更新版のプログラム(更新ソフトウェア)を書き込む処理である。インストールする制御は、インストール実行だけでなく、インストールの実行可否判断、更新データの転送および更新版のプログラムの検証等、インストールに関する一連の処理の制御を含みうる。アクティベートは、インストールした更新版のプログラムを有効化(アクティベート)する処理である。アクティベートする制御は、アクティベート実行だけでなく、アクティベートの実行可否判断、実行結果の検証等、アクティベートに関する一連の制御を含みうる。
【0019】
インストールする制御においては、更新データが更新プログラム自体を含む場合、制御部52が、更新プログラムを、車載機器に送信することができる。また、更新データが、更新プログラムの圧縮データ、差分データ、あるいは、分割データを含む場合、制御部52が、更新データの展開あるいは組付け等を行って更新プログラムを生成して車載機器に送信してもよい。あるいは、制御部52が、更新データを車載機器に送信し、車載機器が、更新データの展開あるいは組付け等を行って更新プログラムを生成してもよい。
【0020】
更新プログラムを車載機器の第2記憶部に書き込むインストール自体の実行は、制御部52が行ってもよいし、制御部52の指示を受けた車載機器が行ってもよいし、更新データ(あるいは更新プログラム)を受信した車載機器が、制御部52の明示の指示がなくても自律的に行ってもよい。
【0021】
インストールした更新プログラムを有効化するアクティベート自体の実行は、制御部52が行ってもよいし、制御部52の指示を受けた車載機器が行ってもよいし、車載機器が、制御部52の明示の指示がなくても、インストールに引き続いて自律的に行ってもよい。
【0022】
なお、このようなプログラムの更新処理は、複数の車載機器のそれぞれに対して、連続して、あるいは並列的に行うことができる。
【0023】
<処理>
以下に、本実施形態に係る処理の例を説明する。図2は、ソフトウェア更新装置50が行うソフトウェア更新処理の例を示すフローチャートである。本処理は例えばソフトウェア更新装置50が、外部装置100に対して更新データの要求を行うことによって開始される。
【0024】
(ステップS101)
通信部51は、外部装置100から、車両が備える車載機器のうち1つ以上のプログラムを更新するための更新データを受信する。制御部52はソフトウェア更新装置50の記憶部に更新データを記憶する(ダウンロード)。
【0025】
外部装置100は、ソフトウェア更新装置50からの問い合わせに応じて、外部装置100が予め記憶している、あるいは、ソフトウェア更新装置50から取得する、ネットワークシステム1に含まれる車載機器の種別と現在のプログラムのバージョンとに基づいて、これらの車載機器の更新版のプログラムが外部装置100に提供されているプログラムのうちに存在するか否かを判定し、提供されていれば、提供された更新版のプログラムに基づいて更新データを生成してソフトウェア更新装置50に提供する。外部装置100は、更新データに基づいて全てのプログラムの更新に成功すれば、ネットワークシステム1に含まれるすべての車載機器のプログラムのバージョンの整合が取れるように、更新データを生成する。
【0026】
(ステップS102)
制御部52は、車両の動作を制限する。例えば、車載機器が上述の上書きインストールやアクティベートを行う間は、その車載機器の動作に影響が生じ、ネットワークシステム1による車両の制御にも影響が生ずるおそれがある。そのため、本ステップにおいてエンジン駆動等、影響が生ずることが好ましくない動作として定められた車両の所定の動作を停止、禁止し、不測の挙動を抑制してもよい。なお、このような所定の動作の制限および本ステップ以降の処理は、ユーザーの許諾を得るまで待機してもよい。なお、プログラム更新対象の車載機器が全て上述のデュアルバンクタイプであれば、上述の他面インストールを行った後、アクティベートの前に所定の動作の制限を行ってもよい。
【0027】
(ステップS103)
制御部52は通信部51を制御して、プログラム更新対象の車載機器に、更新データに基づいて、車載機器に上述のインストールやアクティベート等を実行させる。すなわち、車載機器が上述のシングルバンクタイプである場合、制御部52は、車載機器に上述した上書きインストールを実行させる。また、車載機器が上述のデュアルバンクタイプである場合、制御部52は、車載機器に上述した他面インストールとアクティベートとをこの順に実行させる。
【0028】
(ステップS104)
制御部52は通信部51を介して、各車載機器から、現在のプログラムのバージョンを表す情報を取得する。
【0029】
(ステップS105)
制御部52は、取得したバージョンの組み合わせの整合性を判定する。例えば、制御部52は取得したバージョンに、更新データに含まれている更新版のプログラムのバージョンがすべて含まれていれば、整合性があると判定でき、そうでなければ、いずれかの車載機器においてプログラムの更新処理またはその後に何らかの原因で異常が発生していると判定できる。更新に成功した場合は、ステップS109に進み、そうでなければステップS106に進む。
【0030】
(ステップS106)
制御部52は、例えば、取得したバージョンの組み合わせと、更新データに含まれている更新版のプログラムのバージョンとを比較して、バージョンの整合性がない原因となった車載機器を特定する。
【0031】
(ステップS107)
制御部52は、整合性がない原因となった各車載機器に対して、ステップS103と同様の処理を繰り返し、更新を再試行する。あるいは、整合性がない原因となった車載機器が、上述の他面インストールを行う車載機器(デュアルバンク)であって、更新前のプログラム(現在まで実行対象であったプログラム)を記憶している場合、更新前のプログラムを継続して実行対象とするようコンフィグレーションする処理(復旧処理)を行わせてもよい。更新前のプログラムであっても他の車載機器のプログラムのバージョンと整合性がとれる場合も多々ある。このような復旧処理をする場合は、制御部52は、複数の車載機器のプログラムのバージョンを取得し、取得したバージョンの組み合わせにおいて、復旧処理する車載機器のプログラムのバージョンを、プログラム更新前のプログラムのバージョンにしても、バージョンの組み合わせに整合性があることを確認してから復旧処理をしてもよい。
【0032】
(ステップS108)
制御部52は、ステップS104と同様にして、各車載機器から、現在のプログラムのバージョンを表す情報を取得し、現在のプログラムのバージョンの組み合わせの整合性を確認する。整合性の確認は、例えば、取得したバージョンに、更新データに含まれている更新版のプログラムのバージョンがすべて含まれていれば、更新に成功したと判定できる。また、いくつかの車載機器が、復旧処理をした場合は、現在のプログラムのバージョンの組み合わせを外部装置100に送信して整合性があるか否かを問い合わせてもよい。外部装置100は、このようにプログラムのバージョンの組み合わせに整合性があるか否かを、予め与えられた整合性の取れたバージョンの複数の組み合わせのテーブルを参照して判定することができる。あるいは、制御部52は、予めこのようなテーブルを更新データとともに外部装置100から取得して記憶しておき、これを参照して、現在のプログラムのバージョンの組み合わせの整合性を確認してもよい。
【0033】
なお、本ステップで、現在のプログラムのバージョンの組み合わせに整合性があることが確認できない場合、確認できるまでステップS107、S108を繰り返してもよい。たとえば、更新の再試行を複数回行って、整合性の確認ができない場合に、復旧処理を行うこととしてもよい。また、所定回数繰り返しても整合性が確認できない場合は、ソフトウェア更新装置50や車載機器に非一時的な異常が発生している可能性があったり、復旧処理をした結果、そのバージョンが他の車載機器の更新後のプログラムのバージョンと整合性がなかったりする場合であるので、ユーザーに異常発生を通知する等の対応を行う。なお、このような異常発生時には、全ての車載機器が更新前のプログラムを記憶している場合、全ての車載機器に復旧処理をさせてもよい。
【0034】
(ステップS109)
制御部52は、ステップS102で行った車両の動作制限を解除する。以上で処理が終了する。なお、上述のインストール処理において、更新データが更新プログラム自体を含む場合、制御部52が、更新プログラムを、車載機器に送信する。また、更新データが、更新プログラムの圧縮データ、差分データ、あるいは、分割データを含む場合、制御部52が、更新データの展開あるいは組付け等を行って更新プログラムを生成して車載機器に送信してもよい。あるいは、制御部52が、更新データを車載機器に送信し、車載機器が、更新データの展開あるいは組付け等を行って更新プログラムを生成してもよい。なお、外部装置100、ソフトウェア更新装置50は、車載機器に対して、インストールやアクティベートを行う指示を明示的に行い、車載機器が指示に基づいて、これらの処理を行ってもよいし、更新データ(あるいは更新プログラム)を受信した車載機器が、明示の指示がなくても、これらの処理を自律的に実行してもよい。
【0035】
以上のように、本実施形態においては、各車載機器のプログラムのバージョンの組み合わせの整合を確認するまで、更新処理を完了させず、車両の動作を制限するので、プログラムの更新に失敗した場合に、車両の不測の挙動を抑制しつつ、バージョンの整合を取ることができる。
【0036】
また、プログラムの更新にいちど失敗しても、更新を再試行することで、最終的に成功する可能性を高めることができる。
【0037】
また、プログラムの更新に失敗しても、各車載機器のプログラムのバージョンの組み合わせの整合性が確認できる前提で更新前のプログラムを使用することができるので、ネットワークシステム1の動作保証をすることができる。
【0038】
なお、プログラムの更新に成功した後、ユーザーが特定の車載機器について、更新前のプログラムに戻すことを希望する場合もありうる。このような場合、制御部52は、ユーザーからの指定を受け付けて、その車載機器の更新前のプログラムに戻してもよい。車載機器が、更新前のプログラムを記憶している場合は、更新前のプログラムを実行バージョンとするようコンフィグレーションすることで、このような処理が可能である。この場合、制御部52は、複数の車載機器のプログラムのバージョンを取得し、取得したバージョンの組み合わせにおいて、指定が行われた車載機器のプログラムのバージョンを、プログラム更新前のプログラムのバージョンにしても、バージョンの組み合わせに整合性があることが確認できた場合に、コンフィグレーションを実行する。これにより、ユーザーに希望に応じて、各車載機器のプログラムのバージョンの組み合わせの整合性が確認できる前提でプログラムのダウングレードが可能となる。なお、この処理の間も、車両の所定の動作を制限して実行し、ステップS108と同様のバージョンの整合性確認ができたのち、制限解除することが好ましい。
【0039】
上述のように、制御部52は、プログラムのインストール(シングルバンクの場合)あるいはインストールおよびアクティベート(デュアルバンクの場合)の実行後に取得したプログラムのバージョンの組み合わせに不整合がある場合、いずれかの車載機器において、プログラムを更新する処理にエラーがある、あるいは、インストールやアクティベートの処理にエラーがなくても、例えば更新版のプログラムとして提供されたプログラムに不備があり、何らかの異常が発生している結果、プログラムのバージョンを制御部52に通知できないと判定し、その車載機器をバージョンの整合性がない原因となった車載機器として特定する。このように、本実施形態は、このようにプログラムを更新する処理だけでなくその後の処理において、車載機器に何らかの異常が発生している結果、バージョンの不整合が発生した場合であっても、例えば、車載機器がデュアルバンクタイプであり更新前のプログラムを記憶していれば、異常が発生していなかった更新前の状態で、かつ、プログラムのバージョンの組み合わせに整合が取れた状態に復帰させることができる。これによって、プログラム更新後に何らかの異常が発生しても、プログラムに不備があるか否かを判定する時間やコストをかけることなく、動作保証がされた正常な状態に確実に速やかに復帰させることができる。また、制御部52は、各車載機器において、プログラムのインストール、アクティベートのエラー、あるいはプログラムの不備等、プログラムの更新に起因または付随して、何らかの異常が発生して、その車載機器がバージョンの整合性がない原因となっているか否かを、プログラムのバージョン以外にも、車載機器の自己診断の結果や制御部52による車載機器の動作監視等、1つ以上の他の方法を用いて判定してもよく、判定方法は限定されない。
【0040】
以上、実施形態の一例を説明したが、制御部52の機能は、いずれかの車載機器に設けられてもよい。例えば、複数の車載機器のうち、2つ以上の車載機器のプログラムにそれぞれ実装されてもよいし、または、1つの車載機器の、更新の対象となるプログラムとは別に設けられたプログラムに実装されてもよい。このようにすると、制御部の機能のための専用の構成を設けなくてよい。また、制御部の機能を複数の車載機器のうち、2つ以上の車載機器のプログラムにそれぞれ実装すると、そのうち一方の車載機器のプログラムを更新する場合、他方の車載機器が制御部の機能を実行できる。または、1つの車載機器の、更新の対象となるプログラムとは別に設けられたプログラムに実装すると、その車載機器のプログラムを更新する場合、その処理に妨げられずに制御部の機能を実行できる。
【0041】
<効果>
以上のように、本実施形態においては、ソフトウェア更新装置は、各車載機器のプログラムのバージョンの組み合わせの整合を確認するので、プログラム更新処理によって、複数の車載機器のプログラム全体のバージョンの整合が取れ、動作保証された状態に遷移させることができる。
【0042】
本開示技術は、ソフトウェア更新装置だけでなく、ソフトウェア更新装置を含むネットワークシステム、およびソフトウェア更新装置が備えるコンピューターが実行する方法、プログラムおよびこれを記憶したコンピューター読み取り可能な非一時的記憶媒体、ソフトウェア更新装置を備えた車両等として捉えることが可能である。
【産業上の利用可能性】
【0043】
本開示技術は、車両に搭載される車載機器のプログラムを更新するソフトウェア更新装置に有用である。
【符号の説明】
【0044】
1 ネットワークシステム
10、20、30 バス
11、12、21、22 車載機器
31、32 アクチュエータ
50 ソフトウェア更新装置
51 通信部
52 制御部
100 外部装置
図1
図2