(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】センタ、管理方法および管理プログラム
(51)【国際特許分類】
G06F 8/65 20180101AFI20240702BHJP
B60R 16/02 20060101ALI20240702BHJP
【FI】
G06F8/65
B60R16/02 660U
(21)【出願番号】P 2021004358
(22)【出願日】2021-01-14
【審査請求日】2023-02-23
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】酒井 義和
【審査官】北川 純次
(56)【参考文献】
【文献】特開2020-124223(JP,A)
【文献】特開2009-146119(JP,A)
【文献】米国特許出願公開第2020/0174779(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
B60R 16/02
A01B 69/00
(57)【特許請求の範囲】
【請求項1】
車両に搭載された、複数の電子制御ユニットのソフトウェア更新を制御するOTAマスタと、ネットワークを介して通信可能なセンタであって、
前記OTAマスタから、前記複数の電子制御ユニットに実装されているソフトウェアのバージョンを示す識別情報を受信する通信部と、
前記複数の電子制御ユニットについて、実装されている
ものとして管理しているソフトウェアのバージョンである実装管理バージョンが実装されているか否かを判定可能とする適否判定情報を記憶する記憶部と、
前記識別情報および前記適否判定情報に基づいて、前記複数の電子制御ユニットについて、前記実装管理バージョンのソフトウェアが実装されているか否かを判定する適否判定を行う判定部と、
前記判定部により前記実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、前記OTAマスタと通信を行うことにより、ソフトウェアのバージョンを前記実装管理バージョンに戻すための復元制御を行う制御部とを備える、センタ。
【請求項2】
前記制御部は、前記識別情報に基づいて、前記複数の電子制御ユニットについて、実装されたソフトウェアのバージョンの履歴を示す履歴情報を作成し、
前記記憶部は、前記履歴情報を記憶し、
前記判定部は、前記履歴情報を前記適否判定情報として用いて前記適否判定を行い、
前記制御部は、前記判定部により前記実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、前記履歴情報を用いて前記復元制御を行う、請求項1に記載のセンタ。
【請求項3】
前記記憶部は、前記複数の電子制御ユニットに実装されるソフトウェアのバージョンの適正な組み合わせを定義した整合構成情報を予め記憶し、
前記判定部は、前記整合構成情報および前記履歴情報を用いて、前記履歴情報が示すソフトウェアのバージョンの最新の組み合わせが適正か否かを判定し、
前記制御部は、
前記判定部により前記最新の組み合わせが適正でないと判定された場合、前記判定部により前記実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、前記復元制御を行い、
前記判定部により前記最新の組み合わせが適正であると判定された場合、前記判定部により前記実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、前記復元制御を行わない、請求項2に記載のセンタ。
【請求項4】
前記制御部は、
前記判定部により前記最新の組み合わせが適正でないと判定された場合、前記履歴情報が示す前記履歴から、ソフトウェアのバージョンの直近の適正な組み合わせを特定し、
前記複数の電子制御ユニットのソフトウェアのバージョンの組み合わせを、前記直近の適正な組み合わせに戻すための制御を行うことにより、前記復元制御を行う、請求項3に記載のセンタ。
【請求項5】
前記適否判定情報は、前記実装管理バージョンを示す情報であり、
前記制御部は、前記判定部により前記実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、前記適否判定情報を用いて前記復元制御を行う、請求項1に記載のセンタ。
【請求項6】
前記識別情報には、部品交換により前記車両に搭載された電子制御ユニットに実装され
ているソフトウェアのバージョンを示す識別情報が含まれる、請求項1~5の何れかに記載のセンタ。
【請求項7】
プロセッサと、メモリと、車両に搭載された、複数の電子制御ユニットのソフトウェア更新を制御するOTAマスタとネットワークを介して通信可能な通信装置とを備えるコンピュータが実行する管理方法であって、
前記OTAマスタから、前記複数の電子制御ユニットに実装されているソフトウェアのバージョンを示す識別情報を受信するステップと、
前記複数の電子制御ユニットについて、実装されている
ものとして管理しているソフトウェアのバージョンである実装管理バージョンが実装されているか否かを判定可能とする適否判定情報を記憶するステップと、
前記識別情報および前記適否判定情報に基づいて、前記複数の電子制御ユニットについて、前記実装管理バージョンのソフトウェアが実装されているか否かを判定する適否判定を行うステップと、
前記
適否判定により前記実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、前記OTAマスタと通信を行うことにより、ソフトウェアのバージョンを前記実装管理バージョンに戻すための復元制御を行うステップとを備える、管理方法。
【請求項8】
プロセッサと、メモリと、車両に搭載された、複数の電子制御ユニットのソフトウェア更新を制御するOTAマスタとネットワークを介して通信可能な通信装置とを備えるコンピュータ
に、
前記OTAマスタから、前記複数の電子制御ユニットに実装されているソフトウェアのバージョンを示す識別情報を受信するステップと、
前記複数の電子制御ユニットについて、実装されている
ものとして管理しているソフトウェアのバージョンである実装管理バージョンが実装されているか否かを判定可能とする適否判定情報を記憶するステップと、
前記識別情報および前記適否判定情報に基づいて、前記複数の電子制御ユニットについて、前記実装管理バージョンのソフトウェアが実装されているか否かを判定する適否判定を行うステップと、
前記
適否判定により前記実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、前記OTAマスタと通信を行うことにより、ソフトウェアのバージョンを前記実装管理バージョンに戻すための復元制御を行うステップとを
実行させる、管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ECU(電子制御ユニット)のソフトウェアの更新を制御するためのセンタ、管理方法および管理プログラム等に関する。
【背景技術】
【0002】
車両には、車両の動作を制御するための複数のECU(電子制御ユニット)が搭載されている。ECUは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部とを備え、プロセッサが不揮発性の記憶部に記憶されるソフトウェアを実行することによりECUの制御機能を実現する。各ECUが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各ECUの機能を改善したり、新たな車両制御機能を追加したりすることができる。
【0003】
ECUのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネット等の通信ネットワークとを無線で接続し、無線通信を介してOTAセンタ(単に「センタ」という場合がある)からソフトウェアをダウンロードし、ダウンロードしたソフトウェアをインストールすることによりECUのプログラム更新や追加を行うOTA(Over The Air)技術が知られている(例えば、特許文献1参照)。
【0004】
OTAによるソフトウェアの更新は、ソフトウェア更新を行うイベントであるキャンペーンがサーバに登録された後、車両がOTAセンタに更新データの有無の確認を要求したことを契機として行われる。キャンペーンがある場合、車両は、更新データのダウンロード、更新データのインストール及び更新版のソフトウェアのアクティベートを順次行うことにより、更新対象のECUであるターゲットECUのソフトウェアを更新する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
車両のECUが交換(部品交換)された場合、交換後のECUに実装されているソフトウェアのバージョンが、交換前のECUに実装されているソフトウェアのバージョンと異なることがある。車両に搭載された複数のECUのソフトウェア間のバージョンの組み合わせには、車両が適切に動作しない可能性のある組み合わせ(不整合のバージョン組み合わせ)が存在する場合があり、ECUが交換されて不整合のバージョン組み合わせとなった場合には対処が必要となる。
【0007】
それ故に、本開示は、上記した課題を解決するものであり、ECUの交換前後においてECUに実装されているソフトウェアのバージョンを同一にすることができるセンタ、管理方法および管理プログラム等を提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示に係るセンタは、車両に搭載された、複数の電子制御ユニットのソフトウェア更新を制御するOTAマスタと、ネットワークを介して通信可能なセンタであって、OTAマスタから、複数の電子制御ユニットに実装されているソフトウェアのバージョンを示す識別情報を受信する通信部と、複数の電子制御ユニットについて、実装されているべきソフトウェアのバージョンである実装管理バージョンが実装されているか否かを判定可能とする適否判定情報を記憶する記憶部と、識別情報および適否判定情報に基づいて、複数の電子制御ユニットについて、実装管理バージョンのソフトウェアが実装されているか否かを判定する適否判定を行う判定部と、判定部により実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、OTAマスタと通信を行うことにより、ソフトウェアのバージョンを実装管理バージョンに戻すための復元制御を行う制御部とを備える。
【0009】
本開示に係る管理方法は、プロセッサと、メモリと、車両に搭載された、複数の電子制御ユニットのソフトウェア更新を制御するOTAマスタとネットワークを介して通信可能な通信装置とを備えるコンピュータが実行する管理方法であって、OTAマスタから、複数の電子制御ユニットに実装されているソフトウェアのバージョンを示す識別情報を受信するステップと、複数の電子制御ユニットについて、実装されているべきソフトウェアのバージョンである実装管理バージョンが実装されているか否かを判定可能とする適否判定情報を記憶するステップと、識別情報および適否判定情報に基づいて、複数の電子制御ユニットについて、実装管理バージョンのソフトウェアが実装されているか否かを判定する適否判定を行うステップと、判定部により実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、OTAマスタと通信を行うことにより、ソフトウェアのバージョンを実装管理バージョンに戻すための復元制御を行うステップとを備える。
【0010】
本開示に係る管理プログラムは、プロセッサと、メモリと、車両に搭載された、複数の電子制御ユニットのソフトウェア更新を制御するOTAマスタとネットワークを介して通信可能な通信装置とを備えるコンピュータが実行する管理プログラムであって、OTAマスタから、複数の電子制御ユニットに実装されているソフトウェアのバージョンを示す識別情報を受信するステップと、複数の電子制御ユニットについて、実装されているべきソフトウェアのバージョンである実装管理バージョンが実装されているか否かを判定可能とする適否判定情報を記憶するステップと、識別情報および適否判定情報に基づいて、複数の電子制御ユニットについて、実装管理バージョンのソフトウェアが実装されているか否かを判定する適否判定を行うステップと、判定部により実装管理バージョンのソフトウェアが実装されていないと判定された電子制御ユニットについて、OTAマスタと通信を行うことにより、ソフトウェアのバージョンを実装管理バージョンに戻すための復元制御を行うステップとを備える。
【発明の効果】
【0011】
本開示によれば、ECUの交換前後においてECUに実装されているソフトウェアのバージョンを同一にすることができるセンタ、管理方法および管理プログラム等を提供できる。
【図面の簡単な説明】
【0012】
【
図1】第1の実施形態に係るネットワークシステムの全体構成の一例を示すブロック図
【
図2】
図1に示したOTAセンタの概略構成の一例を示すブロック図
【
図3】
図1に示したOTAマスタの概略構成の一例を示すブロック図
【
図4】
図1に示したECUの概略構成の例を示すブロック図
【
図5】
図1に示したOTAセンタの一例を示す機能ブロック図
【
図6】
図1に示したOTAマスタの一例を示す機能ブロック図
【
図7】第1の実施形態に係るOTAマスタが実行する制御処理の一例を示すフローチャート
【
図8】
図5に示したOTAセンタに予め記憶される整合構成情報の一例を説明するための図
【
図9】
図5に示したOTAセンタに記憶される履歴情報の一例を説明するための図
【
図10】
図5に示したOTAセンタに記憶される履歴情報の一例を説明するための図
【
図11】
図7に示したロールバック処理の一例を示すフローチャート
【
図12】第2の実施形態に係るOTAマスタが実行する制御処理の一例を示すフローチャート
【発明を実施するための形態】
【0013】
(第1の実施形態)
図1は、第1の実施形態に係るネットワークシステムの全体構成の一例を示すブロック図である。
図2は、
図1に示したOTAセンタの概略構成の一例を示すブロック図である。
図3は、
図1に示したOTAマスタの概略構成の一例を示すブロック図である。
図4は、
図1に示したECUの概略構成の例を示すブロック図である。
【0014】
図1に示すネットワークシステムは、車両に搭載されたECU(Electronic Control Unit;電子制御ユニット)13a~13dのソフトウェアを更新するためのシステムであり、OTAセンタ(例えば、サーバ;単に「センタ」という場合がある)1と、車両に搭載される車載ネットワーク2とを備える。
【0015】
OTAセンタ1は、インターネット等の通信ネットワーク5を介して車両に搭載されたOTAマスタ11と無線等で通信可能であり、車両に搭載されたECU13a~13dのソフトウェア更新を管理する。
【0016】
図2に示すように、OTAセンタ1は、CPU21と、RAM22と、記憶装置23と、通信装置24とを備える。記憶装置23は、ハードディスクやSSD等の読み書き可能な記憶媒体を備え、ソフトウェアの更新管理を実行するためのプログラムや、更新管理に用いる情報、ECUの更新データを記憶する。CPU21は、記憶装置23から読み出したプログラムを、RAM22を作業領域として用いて実行することにより、制御処理を実行する。通信装置24は、通信ネットワーク5を介してOTAマスタ11と通信を行う。
【0017】
図1に示すように、車載ネットワーク2は、OTAマスタ11と、通信モジュール12と、複数のECU13a~13dと、HMI(Human Machine Interface;例えば、入力操作が可能なカーナビゲーションシステムの表示装置)14とを備える。OTAマスタ11は、バス15aを介して通信モジュール12と接続され、バス15bを介してECU13a及び13bと接続され、バス15cを介してECU13c及び13dと接続され、バス15dを介してHMI14と接続されている。OTAマスタ11は、通信モジュール12を介してOTAセンタ1と無線での通信が可能である。OTAマスタ11は、OTAセンタ1から取得した更新データに基づいて、ECU13a~13dのうちの更新対象のECU(「ターゲットECU」という場合がある)のソフトウェア更新を制御する。通信モジュール12は、車載ネットワーク2とOTAセンタ1とを接続する通信機器である。ECU13a~13dは、車両の各部の動作を制御する。HMI14は、ECU13a~13dのソフトウェアの更新処理の際に、更新データがあることの表示や、ユーザや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、更新結果の表示等の各種表示を行うために用いられる。なお、
図1では、4つのECU13a~13dを例示したが、ECUの数は限定されない。
【0018】
図4に示すように、ECU13は、CPU41と、RAM42と、不揮発性メモリ43と、通信装置45とを備える。CPU41は、不揮発性メモリ43(データ格納領域44)から読み出したソフトウェア(プログラム)を、RAM42を作業領域として用いて実行し、又、通信装置45を用いて必要に応じてバスを介して他の機器と通信することにより、ECU13の機能を実現する。
【0019】
ここで、ECU13には、ソフトウェアを格納するための1つのデータ格納領域(バンク)44aを有するタイプのシングルバンクメモリECU(
図4(1))と、ソフトウェアを格納するための2つのデータ格納領域(バンク)44b及び44cを有するタイプのダブルバンクメモリECU(
図4(2))とがある。ECU13のデータ格納領域44には、ECUの機能を実現するためのソフトウェアの他に、バージョン情報やパラメータデータ、起動用のブートプログラム、ソフトウェア更新用のプログラム等が格納される場合がある。シングルバンクメモリECUにおいては、データ格納領域44aに更新データをインストールしてアクティベート(有効化)することにより、ECUのソフトウェアに影響が生じる。一方、ダブルバンクメモリECUにおいては、2つのデータ格納領域(44b、44c)のうち、いずれか一方を読み出し対象の格納領域(運用面)とし、読み出し対象の格納領域に格納されるソフトウェアを実行する。読み出し対象でない他方の格納領域(非運用面)には、読み出し対象の格納領域(運用面)のプログラムの実行中に、バックグラウンドで更新データを書き込み可能である。ソフトウェア更新処理におけるアクティベート時には、CPU41によるプログラムの読み出し対象の格納領域を切り替えることにより、更新版のソフトウェアをアクティベート(有効化)することができる。シングルバンクメモリECU及びダブルバンクメモリECUにおいて、ソフトウェアのアクティベートが完了してこのソフトウェアでECUが動作できる状態は、このソフトウェアがECUに実装された状態と言える。
【0020】
なお、本開示において、ダブルバンクメモリECUには、不揮発性メモリが有する1面のデータ格納領域を擬似的に2面に区画し、一方の面のプログラムを実行中に他方の面にプログラムを書き込み可能にした「1面サスペンドメモリ」と呼ばれる構成のメモリを備えたECUと、1面のデータ格納領域を有する不揮発性メモリに加え、1面のデータ格納領域を有する拡張不揮発性メモリを備え、これら2つの不揮発性メモリを運用面及び非運用面として使用可能なECUも含まれる。
【0021】
図3に示すように、OTAマスタ11は、CPU31と、RAM32と、ROM33と、記憶装置34とを備えるマイクロコンピュータ35と、通信装置36とを備える。CPU31は、ROM33から読み出したプログラムを、RAM32を作業領域として用いて実行することにより、制御処理を実行する。通信装置36は、
図1に示したバス15a~15dを介して、通信モジュール12、ECU13a~13d、HMI14と通信を行う。
【0022】
ここで、ソフトウェアの更新処理は、OTAセンタ1から更新データをダウンロードするフェーズと、ダウンロードした更新データを更新対象であるターゲットECUに転送し、ターゲットECUの記憶領域に更新データをインストールするフェーズと、ターゲットECUにおいてインストールした更新版のソフトウェアを有効化するアクティベートのフェーズとからなる。
【0023】
ダウンロードは、OTAセンタ1から送信された、ECUのソフトウェアを更新するための更新データを受信して、記憶装置34に記憶する処理である。ダウンロードのフェーズは、更新データの受信だけでなく、ダウンロードの実行可否判断、更新データの検証等、ダウンロードに関する一連の処理の制御を含む。インストールは、ダウンロードした更新データに基づいて、更新対象であるターゲットECUの不揮発性メモリに更新版のプログラム(更新ソフトウェア)を書き込む処理である。インストールのフェーズは、インストールの実行だけでなく、インストールの実行可否判断、更新データの転送および更新版のプログラムの検証等、インストールに関する一連の処理の制御を含む。アクティベートは、インストールした更新版のプログラムをアクティベート(有効化)する処理である。アクティベートのフェーズは、アクティベートの実行だけでなく、アクティベートの実行可否判断、実行結果の検証等、アクティベートに関する一連の制御を含む。
【0024】
OTAセンタ1からOTAマスタ11に送信される更新データは、ECUの更新ソフトウェア、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェアまたは圧縮データを分割した分割データのいずれを含んでいても良い。また、更新データは、更新対象であるターゲットECUを識別する識別子(ECU ID)と、更新前のソフトウェアを識別する識別子(ECU ソフトウェア ID)を含んでいても良い。更新データは、配信パッケージとしてダウンロードされるが、配信パッケージには、単一または複数のECUの更新データが含まれる。
【0025】
更新データが更新ソフトウェアそのものを含む場合は、インストールのフェーズにおいて、OTAマスタ11が更新データ(つまり、更新ソフトウェア)をターゲットECUに転送する。また、更新データが更新ソフトウェアの圧縮データ、差分データあるいは分割データを含む場合、OTAマスタ11がターゲットECUに更新データを転送し、ターゲットECUが更新データから更新ソフトウェアを生成しても良いし、OTAマスタ11が更新データから更新ソフトウェアを生成してから、更新ソフトウェアをターゲットECUに転送しても良い。ここで、更新ソフトウェアの生成は、圧縮データの解凍、差分データまたは分割データの組み付けにより行うことができる。
【0026】
更新ソフトウェアのインストールは、OTAマスタ11からのインストール要求に基づき、ターゲットECUが行うことができる。または、更新データを受信したターゲットECUが、OTAマスタ11からの明示の指示を受けることなく、自律的にインストールを行っても良い。
【0027】
更新ソフトウェアのアクティベートは、OTAマスタ11からのアクティベート要求に基づき、ターゲットECUが行うことができる。または、更新データを受信したターゲットECUが、OTAマスタ11からの明示の指示を受けることなく、自律的にアクティベートを行っても良い。
【0028】
図5は、
図1に示したOTAセンタ1の機能ブロック図の一例である。
図5に示すように、OTAセンタ1は、記憶部26と、通信部27と、判定部28と、制御部29とを備える。通信部27、判定部28及び制御部29は、
図2に示したCPU21がRAM22を用いて記憶装置23に記憶されるプログラムを実行することにより実現される。記憶部26は、
図2に示した記憶装置23により実現される。
【0029】
図6は、
図1に示したOTAマスタ11の機能ブロック図の一例である。
図6に示すように、OTAマスタ11は、記憶部37と、通信部38と、制御部39とを備える。通信部38及び制御部39は、
図3に示したCPU31がRAM32を用いてROM33に記憶されるプログラムを実行することにより実現される。記憶部37は、
図3に示した記憶装置34によって実現される。
【0030】
図7は、本実施形態に係るOTAセンタ1が実行する制御処理の一例を示すフローチャートである。以下では、
図7に示すフローチャートに沿って、本実施形態に係る制御処理について説明する。
【0031】
図7に示す処理は、OTAマスタ11から送信された車両構成情報を通信部27が受信することで開始される。
【0032】
ここで、車両に搭載されたOTAマスタ11は、所定の条件が成立(典型的には、車両のイグニッションがONにされたことを検出)すると、車両の全てのECUから、それぞれ、ECUの種別を識別可能とするECU IDと、ソフトウェア(「SW」という場合がある)の種別及びバージョンを識別可能とするECUソフトウェアIDと取得する。そして、OTAマスタ11は、取得したECU ID及びECUソフトウェアIDと、車両を識別可能とするVIN(Vehicle identification Number;車両識別番号)とを含んだ車両構成情報を作成して、OTAセンタ1に送信する。この処理によって、例えばイグニッションがONにされる度に、OTAマスタ11によって車両構成情報が作成されてOTAセンタ1に送信されるので、OTAセンタ1は、各車両のECUについてハードウェア構成およびソフトウェア構成を把握することができる。
【0033】
図7のステップS1において、制御部29は、通信部27により受信された車両構成情報からVIN及びECUソフトウェアID(識別情報)を取得する。その後、処理はステップS2に移る。
【0034】
ステップS2において、判定部28は、ステップS1で取得したVINが示す車両に搭載されたECUについて、ソフトウェアのバージョンが不適正に変化したか否かを判定する。以下、具体的に説明する。
【0035】
記憶部26には、各車両について、OTAセンタ1がECUに実装されているものとして管理しているソフトウェアのバージョン(以下「実装管理バージョン」という場合がある)を示す実装管理バージョン情報(適否判定情報)が記憶されている。言い換えると、実装管理バージョン情報は、ECUに実装されているべきソフトウェアのバージョン(実装管理バージョン)を示す情報である。実装管理バージョン情報は、
図9を用いて具体的に後述するが、例えば、VINが1001の車両(ECU1~4が搭載された車両)において、ECU1にはECU1用のソフトウェアであってバージョン2.2のソフトウェアが実装されており、ECU2にはECU2用のソフトウェアであってバージョン2.4のソフトウェアが実装されており、ECU3にはECU3用のソフトウェアであってバージョン2.2のソフトウェアが実装されており、ECU4にはECU4用のソフトウェアであってバージョン2.5のソフトウェアが実装されていることを示す情報である。また、実装管理バージョン情報は、適宜更新される。例えば、OTAセンタ1から送信されたソフトウェアの更新データに基づいてOTAマスタ11が更新制御を行ってECUのソフトウェアが更新されて(バージョンアップして)、更新完了の通知がOTAマスタ11からOTAセンタ1に行われた場合、更新後のソフトウェアのバージョンで実装管理バージョン情報が更新される。
【0036】
ステップS2において、判定部28は、ステップS1で取得したVINが示す車両に搭載されたECUについて、それぞれ、ステップS1で取得したECUソフトウェアID(識別情報)が示すソフトウェアのバージョンと、記憶部26に記憶されている実装管理バージョン情報が示す実装管理バージョンとを比較する。そして、判定部28は、ECUソフトウェアIDが示すソフトウェアのバージョンと実装管理バージョン情報が示す実装管理バージョンとが一致しない場合、ソフトウェアのバージョンが不適正に変化したと判定する。ここで、車両に搭載されたECUが交換(部品交換)された場合、上記のようにECUソフトウェアIDが示すソフトウェアのバージョンと実装管理バージョン情報が示す実装管理バージョンとが一致しなくなる場合が多く、その場合、判定部28は、ソフトウェアのバージョンが不適正に変化したと判定する。その後、処理はステップS3に移る。
【0037】
ステップS3において、制御部29は、ステップS2においてソフトウェアのバージョンが不適正に変化した(ソフトウェアのバージョンの不適正変化があった)と判定された場合は、処理をステップ4に進め、そうでない場合は
図7の処理を終了する。
【0038】
ステップS4において、判定部28は、ステップS1で取得したVINが示す車両に搭載されている複数のECUについて、ソフトウェアのバージョン間の整合性(バージョンの組み合わせの適正性)を判定する。以下、具体的に説明する。
【0039】
図8は、車両に搭載された複数のECUに実装されるソフトウェアの整合する(適切な)全てのバージョン組み合わせを定義した整合構成情報を説明するための図である。
図8に示すように、例えばVINが1001の車両(ECU1~4が搭載された車両)に係る整合構成情報には、ECU1~4に実装されるソフトウェアの整合する(適切な)全てのバージョン組み合わせが定義されている。言い換えると、整合構成情報に無いソフトウェアのバージョン組み合わせは、不整合のバージョン組み合わせであり、不適切なバージョン組み合わせと言える。不整合のバージョン組み合わせである場合、ECUが適切に動作しない可能性があり、車両が適切に動作しない可能性がある。
【0040】
ステップS4において、判定部28は、ステップS1で取得したVINが示す車両に搭載された複数のECUについて、ステップS1で取得したECUソフトウェアIDが示すソフトウェアのバージョンの組み合わせが、記憶部26に予め記憶されている整合管理情報が示すソフトウェアのバージョン組み合わせのうちの何れかと一致するか否かを判定する。そして、判定部28は、何れかと一致すると判定した場合はソフトウェアのバージョン間の整合性があると判定し、何れとも一致しないと判定した場合はソフトウェアのバージョン間の整合性が無いと判定する(つまり、不整合と判定する)。その後、処理はステップS5に移る。
【0041】
ステップS5において、制御部29は、ステップS1で取得したECUソフトウェアIDが示すソフトウェアのバージョンの履歴を、記憶部26に記憶されたソフトウェアバージョン履歴情報(以下、単に「履歴情報」という場合がある)に書き込む。以下、具体的に説明する。
【0042】
図9は、ソフトウェアバージョン履歴情報を説明するための図である。
図9に示すように、例えばVINが1001の車両(ECU1~4が搭載された車両)に係る履歴情報には、ECU1~4に実装されたソフトウェアのバージョン履歴が書き込まれている。
【0043】
ステップS5において、制御部29は、例えば
図9示す履歴情報の履歴NO.12として、ステップS1で取得したECUソフトウェアIDが示すソフトウェアのバージョン(ECU1のSWバージョン2.2、ECU2のSWバージョン2.5、ECU3のSWバージョン1.5、及びECU4のSWバージョン2.5)を書き込む。
【0044】
また、ステップS5において、制御部29は、ステップS4でソフトウェアのバージョン間の整合性が無いと判定された場合は、履歴情報が示す履歴に整合性が無いこと(不整合であること)を示す情報(例えばフラグによる情報)を付加する。
図9の例では、履歴NO.12のソフトウェアのバージョン組み合わせが
図8の整合構成情報に存在せず不整合であるため、履歴NO.12の「整合判定」の列に、不整合であることを示す情報(×印)が付加されている。また、ステップS5において、制御部29は、ステップS4でソフトウェアのバージョン間の整合性が有ると判定された場合は、履歴情報が示す履歴に整合性が有ることを示す情報を付加する。
図9の例では、履歴NO.1~11のソフトウェアのバージョン組み合わせが
図8の整合構成情報に存在し整合するものであるため、履歴NO.1~11の「整合判定」の列に、整合するものであることを示す情報(〇印)が付加されている。
【0045】
図10は、
図9の履歴情報に対して、履歴NO.12のECU3のソフトウェアバージョンが「2.3」である場合を示している。
図10の場合には、履歴NO.12のソフトウェアのバージョン組み合わせは、
図8に示す整合構成情報のNO.36が示すソフトウェアのバージョン組み合わせと一致するので、整合するバージョン組み合わせである。このため、
図10の例では、履歴NO.12の「整合判定」の列に、整合するバージョン組み合わせ(適切なバージョン組み合わせ)であることを示す情報(〇印)が付加されている。
【0046】
なお、本実施形態では、制御部29は、ECUに実装されているものとして管理しているソフトウェアのバージョン(実装管理バージョン)を示す実装管理バージョン情報を履歴情報に付加し(含ませ)、又、実装管理バージョン情報を適宜更新する。
図9及び
図10の例では、履歴NO.11のソフトウェアのバージョン組み合わせ(各ECUのソフトウェアのバージョン)に、実装管理バージョンであることを示す情報(〇印)を付加することで、実装管理バージョン情報が履歴情報に付加されている。このようにすることで、ステップS2のSWバージョン不適正変化判定の処理で使用される実装管理バージョン情報が記憶部26に記憶されることとなる。
【0047】
ステップS6において、制御部29は、ステップS4でソフトウェアのバージョン間の整合性が無い(つまり、不整合)と判定された場合は処理をステップS7に進め、ステップS4で整合性があると判定された場合は
図7の処理を終了する。なお、ステップS4で整合性があると判定されて
図7の処理を終了する場合、制御部29は、整合性があると判定されたソフトウェアのバージョン組み合わせを実装管理バージョンに設定して実装管理バージョン情報を更新する。
図10の例では、履歴NO.11のソフトウェアのバージョン組み合わせに付加されている実装管理バージョンであることを示す情報(〇印)が削除されて、この情報(〇印)が履歴NO.12のソフトウェアのバージョン組み合わせに付加された状態に更新される。
【0048】
ステップS7において、制御部29は、履歴情報を用いて直近のソフトウェアのバージョン整合構成を特定する。
図9の例では、制御部29は、履歴NO.11のソフトウェアのバージョン組み合わせを、直近のソフトウェアのバージョン整合構成として特定することとなる。その後、処理はステップS8に移る。
【0049】
ステップS8において、制御部29は、ECUに実装されているソフトウェアのバージョン組み合わせが、ステップS7で特定した直近のソフトウェアのバージョン整合構成に戻るように、ソフトウェアのバージョンを戻すロールバック処理(復元処理)の実行対象となるソフトウェアを特定する。
図9の例では、制御部29は、ECU2及びECU3のソフトウェアを、ロールバック処理(復元処理)の実行対象となるソフトウェアとして特定することとなる。その後、処理はステップS9に移る。
【0050】
ステップS9において、制御部29は、ECUに実装されているソフトウェアのバージョンを、以前のバージョンに戻すロールバック処理を行う。
【0051】
図11は、ステップS9のロールバック処理の一例を示すフローチャートである。
図11のステップS11において、制御部29は、ステップS7で特定した直近のソフトウェアのバージョン整合構成に戻るように、ステップS8で特定したロールバック処理の実行対象のソフトウェアのうちの1つに対して、バージョンをロールバックさせるためのデータ(ロールバックデータ)及びロールバック指示を決定する。その後、処理はステップS12に移る。
【0052】
ステップS12において、制御部29は、ステップS8で特定した全てのロールバック対象のソフトウェアについてステップS11の決定を行ったか否かを判定する。ステップS12での判定がYESの場合、処理はステップS13に移り、この判定がNOの場合、処理はステップS11に戻る。このことによって、ステップS8で特定した全てのロールバック対象のソフトウェアのバージョンがロールバック(復元)されることとなる。
【0053】
ステップS13において、制御部29は、ステップS11で決定したロールバックデータ及びロールバック指示を、通信部27によりOTAマスタ11に送信する。その後、
図11のロールバック処理は終了し、
図7の処理も終了する。
【0054】
なお、
図7のステップS9のロールバック処理が終了してロールバック対象のソフトウェアのバージョンのロールバックが完了すると、OTAマスタ11は、ロールバック完了通知をOTAセンタ1に送信する。OTAセンタ1(制御部29)は、ロールバック完了通知を受信すると、ステップS7で特定した直近のソフトウェアのバージョン整合構成(つまり、ロールバック後のソフトウェアのバージョン組み合わせ)を、最新の履歴として履歴情報に書き込む。その際に、OTAセンタ1(制御部29)は、書き込んだ最新の履歴に、バージョンの整合性が有ることを示す情報を付加する。また、OTAセンタ1(制御部29)は、書き込んだ最新の履歴が示すソフトウェアのバージョン組み合わせが実装管理バージョンとなるように、実装管理バージョン情報を更新する。
図9の例では、履歴NO.11と同じ内容の情報が最新の履歴NO.13として履歴情報に書き込まれ、履歴NO.11の「実装管理バージョン」の列の〇印が削除されることとなる。
【0055】
(第2の実施形態)
図12は、第2の実施形態に係るOTAセンタ1が実行する制御処理の一例を示すフローチャートである。
図12のフローチャートは、第1の実施形態に係る
図7のフローチャートに対して、ステップS7及びS8の処理をステップS71の処理に置き換えたものである。第2の実施形態では、ソフトウェアのバージョンが不整合となった場合(ステップS6でYESの場合)において、第1の実施形態のように直近のソフトウェアのバージョン整合構成を特定してそのバージョン構成に戻す処理を行うのではなく、実装管理バージョン情報が示す実装管理バージョン(ECUに実装されているものとしてOTAセンタ1が管理しているソフトウェアのバージョン)に戻す処理を行う。なお、以下では、主に第1の実施形態の処理と異なる部分について説明する。
【0056】
図12のステップS6でYESと判定された場合、ステップS71において、制御部29は、ステップS1で取得したVINが示す車両に搭載されたECUについて、不適正変化前のソフトウェアのバージョンにロールバックすることを決定する。具体的には、制御部29は、記憶部26に記憶されている実装管理バージョン情報が示す実装管理バージョンを参照して、ステップS1で取得したVINが示す車両に搭載されたECUについて、ソフトウェアのバージョンを実装管理バージョンにロールバック(復元)することを決定する。
図9の例では、制御部29は、実装管理バージョンである履歴NO.11のソフトウェアのバージョン組み合わせにロールバックすることを決定する。その後、処置はステップS9に移りロールバック対象のソフトウェアのバージョンがロールバック(復元)されて、実装管理バージョンである履歴NO.11のソフトウェアのバージョン組み合わせにロールバックされることとなる。
【0057】
以上に
図7及び
図12等を用いて説明したように、第1及び第2の実施形態に係るOTAセンタ1は、ECUの交換(部品交換)によりECUのソフトウェアのバージョンが不適正に切り替わった場合、不適正に切り替わったECUのソフトウェアを実装管理バージョンに復元することができる。これにより、ECU交換(部品交換)の前後においてソフトウェアのバージョンを同一に保つことができ、ECU交換後において適正なソフトウェアのバージョンに戻すことができる。
【0058】
ここで、部品交換後のECUが
図4(2)を用いて説明したダブルバンクメモリECUである場合には、ソフトウェアの読み出し対象ではないデータ格納領域(非運用面)にどのようなソフトウェア(ソフトウェアのバージョン)が格納されているのかが不明である(又、非運用面にソフトウェアが格納されていない場合もある)。このため、部品交換後のECUがダブルバンクメモリECUである場合であっても、同様に、上記したようにOTAセンタ1の制御によって実装管理バージョンに復元する必要がある。
【0059】
また、以上に
図7及び
図12等を用いて説明したように、第1及び第2の実施形態に係るOTAセンタ1は、OTAマスタ11からECUソフトウェアIDを取得してECUのソフトウェアのバージョン履歴情報を作成して管理し、その履歴情報を用いて不適正に切り替わったECUのソフトウェアバージョンを実装管理バージョンに復元することができる。これにより、履歴情報を用いてソフトウェアバージョンを復元することができ、又、履歴にあるソフトウェアバージョン(基本的にユーザが承諾したソフトウェアバージョン)に復元することができる。
【0060】
また、以上に
図7等を用いて説明したように、第1の実施形態に係るOTAセンタ1は、ECUのソフトウェアバージョンが不適正に切り替わった場合において、車両に搭載された複数のECUに実装されたソフトウェアのバージョンが不整合(適正な組み合わせではない)と判定された場合には、履歴情報を用いて直近のソフトウェアバージョンの整合構成に復元することができる。これにより、ソフトウェアバージョンの整合構成に確実に復元することができ、又、整合構成のうち最新のものに復元できるので合理的である。一方、第1の実施形態に係るOTAセンタ1は、ECUのソフトウェアのバージョンが不適正に切り替わった場合において、車両に搭載された複数のECUに実装されたソフトウェアのバージョンが整合する(適正な組み合わせである)と判定された場合には、ソフトウェアのバージョン不整合による問題は発生しないので、ソフトウェアバージョンを復元する処理は行わない。これにより、処理負荷を軽減できる。なお、このように複数のECUに実装されたソフトウェアのバージョンが整合する(適正な組み合わせである)と判定された場合においても、履歴情報を用いて直近のソフトウェアバージョンの整合構成に復元する制御構成としても良い。このように制御することで、履歴にあるソフトウェアバージョン(ユーザが承諾したソフトウェアバージョン)に復元することができる。
【0061】
また、以上に
図12を用いて説明したように、第2の実施形態に係るOTAセンタ1は、ECUのソフトウェアのバージョンが不適正に切り替わった場合において、ECUのソフトウェアのバージョンを、実装管理バージョン情報が示す実装管理バージョンに直接的に復元することができる。これにより、簡潔な処理でソフトウェアバージョンを整合構成に復元することができる。
【0062】
なお、上記した第2の実施形態において(
図12参照)、ソフトウェアバージョンの整合性判定を行う処理(ステップS4及びS6)を実行しない制御構成としても良い。つまり、ソフトウェアバージョン不適正変化を検知した場合には(
図9及び
図10の太枠部分参照)、ソフトウェアバージョンの整合性の有無を考慮することなく、ソフトウェアバージョンを実装管理バージョンに復元する処理としても良い。ここで、実装管理バージョンは、通常、ソフトウェアバージョンの整合性が有るので、このような簡潔な処理とすることで処理負荷を軽減できる。
【0063】
また、上記した第1及び第2の実施形態において、実装管理バージョンを示す実装管理バージョン情報が履歴情報に含められて(付加されて)記憶されている例を挙げた(
図9及び
図10参照)。しかし、実装管理バージョン情報は、履歴情報とは別個に記憶されても良い。
【0064】
また、上記の実施形態で例示したOTAセンタ1の機能は、プロセッサ(CPU)とメモリと通信装置とを備えるコンピュータが実行する管理方法、あるいは、当該コンピュータに実行させる管理プログラム、管理プログラムを記憶したコンピュータ読み取り可能な非一時的記憶媒体として実現することも可能である。同様に、上記の実施形態として例示したOTAマスタ11の機能は、プロセッサ(CPU)とメモリと通信装置とを備える、車載されたコンピュータが実行する制御方法、あるいは、当該車載されたコンピュータに実行させる制御プログラム、制御プログラムを記憶したコンピュータ読み取り可能な非一時的記憶媒体として実現することも可能である。
【産業上の利用可能性】
【0065】
本開示技術は、ECU(電子制御ユニット)のプログラムを更新するためのネットワークシステムに利用できる。
【符号の説明】
【0066】
1 OTAセンタ
2 車載ネットワーク
5 通信ネットワーク
11 OTAマスタ
12 通信モジュール
13a~13d ECU
14 HMI
15a~15d バス
26、37 記憶部
27、38 通信部
28 判定部
29、39 制御部