(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-07
(45)【発行日】2023-11-15
(54)【発明の名称】ソフトウェア更新装置、更新制御方法、更新制御プログラム、サーバ、OTAマスタ及びセンタ
(51)【国際特許分類】
G06F 8/65 20180101AFI20231108BHJP
B60R 16/02 20060101ALI20231108BHJP
【FI】
G06F8/65
B60R16/02 660U
(21)【出願番号】P 2020123929
(22)【出願日】2020-07-20
【審査請求日】2022-06-22
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】長光 翔一
【審査官】多賀 実
(56)【参考文献】
【文献】特開2020-027638(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65-8/658
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
電子制御ユニットのソフトウェア更新を制御するソフトウェア更新装置であって、
更新対象の電子制御ユニットが有する不揮発性メモリの種別に
基づいて決定される、前記更新対象の電子制御ユニットのソフトウェア更新処理の承諾要求の実行タイミングに関する情報をサーバから受信し、前記実行タイミングに関する情報に基づいて前記承諾要求を実行する制御部を備える、ソフトウェア更新装置。
【請求項2】
前記制御部は、
更新対象
の電子制御ユニットに搭載される不揮発性メモリが
1つの格納領域を有する第1種別のメモリである場合、前記不揮発性メモリの格納領域に更新データがインストールされる前に、前記承諾要
求を実行し、
更新対象の電子制御ユニットに搭載される不揮発性メモリが
2つの格納領域を有する第2種別のメモリである場合、前記不揮発性メモリの読み出し対象でない格納領域に更新データがインストールされた後、かつ、更新データが書き込まれた格納領域が読み出し対象としてアクティベートされる前に、前記承諾要
求を実行する、
請求項1に記載のソフトウェア更新装置。
【請求項3】
更新対象の車載機器に搭載される不揮発性メモリが、
前記第1種別のメモリであるか、
前記第2種別のメモリであるかを判定する判定部を備え、
前記制御部は、
前記サーバから受信した情報と前記判定部による判定結果
とに基づいて、前記承諾要
求を実行する処理、請求項2に記載のソフトウェア更新装置。
【請求項4】
前記電子制御ユニットに搭載される不揮発性メモリの種別を記憶する記憶部を備え、
前記判定部は、
前記サーバから受信した情報と前記記憶部に記憶される不揮発性メモリの種別
とに基づいて、更新対象の電子制御ユニットの不揮発性メモリの種別を判定する、請求項3に記載のソフトウェア更新装置。
【請求項5】
電子制御ユニットに搭載される不揮発性メモリの種別をサーバから受信する通信部と、
受信した不揮発性メモリの種別を記憶する記憶部とを備え、
前記判定部は、
前記サーバから受信した情報と前記記憶部に記憶される不揮発性メモリの種別
とに基づいて、更新対象の電子制御ユニットの不揮発性メモリの種別を判定する、請求項3に記載のソフトウェア更新装置。
【請求項6】
更新対象の電子制御ユニットが有する不揮発性メモリの種別に基づいて、前記承諾要
求の実行タイミング
に関する情報を
前記サーバから受信する通信部を備
える、請求項2に記載のソフトウェア更新装置。
【請求項7】
前記制御部は、前記承諾要
求において、ソフトウェア更新に対する承諾を要求する画面を表示装置に表示させる、請求項1~6のいずれかに記載のソフトウェア更新装置。
【請求項8】
プロセッサと、メモリと、記憶装置とを備えるコンピュータが、電子制御ユニットのソフトウェア更新を制御するために実行する更新制御方法であって、
更新対象の電子制御ユニットが有する不揮発性メモリの種別に
基づいて決定される、前記更新対象の電子制御ユニットのソフトウェア更新処理の承諾要求の実行タイミングに関する情報をサーバから受信し、前記実行タイミングに関する情報に基づいて前記承諾要求を実行するステップを含む、更新制御方法。
【請求項9】
プロセッサと、メモリと、記憶装置とを備えるコンピュータが、電子制御ユニットのソフトウェア更新を制御するために実行する更新制御プログラムであって、
更新対象の電子制御ユニットが有する不揮発性メモリの種別に
基づいて決定される、前記更新対象の電子制御ユニットのソフトウェア更新処理の承諾要求の実行タイミングに関する情報をサーバから受信し、前記実行タイミングに関する情報に基づいて前記承諾要求を実行するステップを含む、更新制御プログラム。
【請求項10】
車両を識別する車両識別情報毎に、前記車両に搭載された電子制御ユニットが有する不揮発性メモリの種別を記憶する記憶部と、
前記車両から車両識別情報を含む確認要求を受信する通信部と、
前記通信部が前記確認要求を受信すると、前記確認要求に含まれる車両識別情報で識別される車両のソフトウェアの更新データがあるか否かを判定する制御部とを備え、
前記制御部が前記車両のソフトウェアの更新データがあると判定した場合、前記通信部は、更新対象の電子制御ユニットが有する不揮発性メモリの種別に基づいて、
前記更新対象の電子制御ユニットのソフトウェア更新処理の承諾要求の実行タイミングを指示する指示情報を前記車両に送信する、サーバ。
【請求項11】
電子制御ユニットのソフトウェア更新を制御するOTAマスタであって、
更新対象の電子制御ユニットが有する不揮発性メモリの種別に
基づいて決定される、前記更新対象の電子制御ユニットのソフトウェア更新処理の承諾要求の実行タイミングに関する情報をサーバから受信し、前記実行タイミングに関する情報に基づいて前記承諾要求を実行する制御部を備える、OTAマスタ。
【請求項12】
車両を識別する車両識別情報毎に、前記車両に搭載された電子制御ユニットが有する不揮発性メモリの種別を記憶する記憶部と、
前記車両から車両識別情報を含む確認要求を受信する通信部と、
前記通信部が前記確認要求を受信すると、前記確認要求に含まれる車両識別情報で識別される車両のソフトウェアの更新データがあるか否かを判定する制御部とを備え、
前記制御部が前記車両のソフトウェアの更新データがあると判定した場合、前記通信部は、更新対象の電子制御ユニットが有する不揮発性メモリの種別に基づいて、
前記更新対象の電子制御ユニットのソフトウェア更新処理の承諾要求の実行タイミングを指示する指示情報を前記車両に送信する、センタ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、電子制御ユニットのソフトウェアの更新を制御するためのソフトウェア更新装置、更新制御方法、更新制御プログラム、サーバ、OTAマスタ及びセンタに関する。
【背景技術】
【0002】
車両には、車両の動作を制御するための複数の電子制御ユニット(ECU)が搭載されている。ECUは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部とを備え、プロセッサが不揮発性の記憶部に記憶されるソフトウェアを実行することによりECUの制御機能を実現する。各ECUが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各ECUの機能を改善したり、新たな車両制御機能を追加したりすることができる。
【0003】
ECUのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネット等の通信ネットワークとを無線で接続し、無線通信を介してサーバからソフトウェアをダウンロードし、ダウンロードしたソフトウェアをインストールすることによりECUのプログラム更新や追加を行うOTA(Over The Air)技術が知られている(例えば、特許文献1参照)。
【0004】
ECUに搭載される不揮発性のメモリ(記憶部)として、ソフトウェアを格納するための1つの格納領域を有するメモリ(1面メモリ)と、ソフトウェアを格納するための2つの格納領域を有するメモリ(2面メモリ)とがあり、ECUの仕様等に応じて使い分けられる。2面メモリを搭載したECUは、2つの格納領域に新旧2バージョンのプログラムを格納することができる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
OTAによるソフトウェアの更新処理は、ソフトウェア更新装置がサーバから更新データをダウンロードするフェーズと、ダウンロードした更新データを更新対象の電子制御ユニットに転送し、更新対象の電子制御ユニットの格納領域に更新データをインストールするフェーズと、更新対象の電子制御ユニットにおいて更新後のソフトウェアをアクティベートするフェーズとを含む。
【0007】
上述した2面メモリを搭載したECUでは、一方の格納領域に格納された現行のソフトウェアを維持しつつ、他方の格納領域に更新版のソフトウェアをインストールすることができる。これに対して、これに対して、上述した1面メモリを搭載したECUでは、更新版のソフトウェアのインストールにより、格納領域に記憶された現行のソフトウェアが、更新版のソフトウェアによって書き換えられる。
【0008】
OTAによるソフトウェア更新を行う場合、ソフトウェア更新により変更される車両機能や、ソフトウェアの更新過程で生じる機能制限等をユーザや管理者に通知し、ユーザや管理者の承諾を求める必要がある。
【0009】
しかしながら、更新対象の電子制御ユニットに影響が生じるタイミングは、上記の通り、電子制御ユニットに搭載される不揮発性メモリの仕様によって異なるため、承諾を求めるタイミングについて検討の余地がある。
【0010】
それ故に、本開示は、ソフトウェア更新時における承諾タイミングを電子制御ユニットの仕様に応じて変更できるソフトウェア更新装置、更新制御方法、更新制御プログラム、サーバ、OTAマスタ及びセンタを提供することを目的とする。
【課題を解決するための手段】
【0011】
本開示に係るソフトウェアの更新処理は、電子制御ユニットのソフトウェア更新を制御する装置であって、更新対象の電子制御ユニットが有する不揮発性メモリの種別に基づいて決定される、更新対象の電子制御ユニットのソフトウェア更新処理の承諾要求の実行タイミングに関する情報をサーバから受信し、実行タイミングに関する情報に基づいて承諾要求を実行する制御部を備える。
【0012】
本開示に係る更新制御方法は、プロセッサと、メモリと、記憶装置とを備えるコンピュータが、電子制御ユニットのソフトウェア更新を制御するために実行する方法であって、更新対象の電子制御ユニットが有する不揮発性メモリの種別に基づいて決定される、更新対象の電子制御ユニットのソフトウェア更新処理の承諾要求の実行タイミングに関する情報をサーバから受信し、実行タイミングに関する情報に基づいて承諾要求を実行するステップを含む。
【0013】
本開示に係る更新制御プログラムは、プロセッサと、メモリと、記憶装置とを備えるコンピュータが、電子制御ユニットのソフトウェア更新を制御するために実行するプログラムであって、更新対象の電子制御ユニットが有する不揮発性メモリの種別に基づいて決定される、更新対象の電子制御ユニットのソフトウェア更新処理の承諾要求の実行タイミングに関する情報をサーバから受信し、実行タイミングに関する情報に基づいて承諾要求を実行するステップを含む。
【発明の効果】
【0014】
本開示によれば、ソフトウェア更新時におけるユーザ承諾タイミングを電子制御ユニットの仕様に応じて変更できるソフトウェア更新装置、更新制御方法、更新制御プログラム、サーバ、OTAマスタ及びセンタを提供できる。
【図面の簡単な説明】
【0015】
【
図1】実施形態に係るネットワークシステムの全体構成を示すブロック図
【
図2】
図1に示したサーバの概略構成を示すブロック図
【
図3】
図1に示したソフトウェア更新装置の概略構成を示すブロック図
【
図4A】電子制御ユニットの概略構成を示すブロック図
【
図4B】電子制御ユニットの概略構成を示すブロック図
【
図6】
図1に示したソフトウェア更新装置の機能ブロック図
【
図7】第1の実施形態に係るサーバが実行する制御処理の一例を示すフローチャート
【
図8】第1の実施形態に係るソフトウェア更新装置が実行する制御処理の一例を示すフローチャート
【
図9】
図8に示すインストール/アクティベート処理の詳細を示すフローチャート
【
図10】第2の実施形態に係るサーバが実行する制御処理の一例を示すフローチャート
【
図11】第2の実施形態に係るソフトウェア更新装置が実行する制御処理の一例を示すフローチャート
【発明を実施するための形態】
【0016】
(第1の実施形態)
図1は、実施形態に係るネットワークシステムの全体構成を示すブロック図であり、
図2は、
図1に示したサーバの概略構成を示すブロック図であり、
図3は、
図1に示したソフトウェア更新装置の概略構成を示すブロック図である。
【0017】
図1に示すネットワークシステムは、車両に搭載された電子制御ユニット13a~13dのソフトウェアを更新するためのシステムであり、サーバ1(センタ)と、車両に搭載される車載ネットワーク2とを備える。
【0018】
サーバ1は、ネットワーク5を介して車両に搭載されたソフトウェア更新装置11と通信可能であり、車両に搭載された電子制御ユニット13a~13dのソフトウェア更新を管理する。
【0019】
図2に示すように、サーバ1は、CPU21と、RAM22と、記憶装置23と、通信装置24とを備える。記憶装置23は、ハードディスクやSSD等の読み書き可能な記憶媒体を備え、ソフトウェアの更新管理を実行するためのプログラムや、更新管理に用いる情報、電子制御ユニットの更新データを記憶する。サーバ1において、CPU21は、記憶装置23から読み出したプログラムを、RAM22を作業領域として用いて実行することにより、後述する制御処理を実行する。通信装置24は、ネットワークを介してソフトウェア更新装置11と通信を行う機器である。
【0020】
車載ネットワーク2は、ソフトウェア更新装置11(OTAマスタ)と、通信モジュール12と、複数の電子制御ユニット13a~13dと、表示装置14とを備える。ソフトウェア更新装置11は、バス15aを介して通信モジュール12と接続され、バス15bを介して電子制御ユニット13a及び13bと接続され、バス15cを介して電子制御ユニット13c及び13dと接続され、バス15dを介して表示装置14と接続されている。ソフトウェア更新装置11は、通信モジュール12を介してサーバ1と無線での通信が可能である。ソフトウェア更新装置11は、サーバ1から取得した更新データに基づいて、電子制御ユニット13a~13dのうちの更新対象の電子制御ユニットのソフトウェア更新を制御する。ソフトウェア更新装置11は、セントラルゲートウェイと称される場合もある。通信モジュール12は、車載ネットワーク2とサーバ1とを接続する通信機器である。電子制御ユニット13a~13dは、車両の各部の動作を制御するECUである。表示装置14(HMI)は、電子制御ユニット13a~13dのソフトウェアの更新処理時に、更新データがあることの表示や、ユーザや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、更新結果の表示等の各種表示を行うために用いられる。表示装置14としては、典型的にはカーナビゲーションシステムの表示装置を用いることができるが、プログラムの更新処理時に必要な情報を表示可能なものであれば特に限定されない。尚、
図1においては、4つの電子制御ユニット13a~13dを例示したが、電子制御ユニットの数は特に限定されない。また、
図1に示すバス15dには、表示装置14以外の電子制御ユニットが更に接続されていても良い。
【0021】
図3に示すように、ソフトウェア更新装置11は、CPU31と、RAM32と、ROM33と、記憶装置34とを備えるマイクロコンピュータ35と、通信装置36とを備える。ソフトウェア更新装置11において、マイクロコンピュータ35のCPU31は、ROM33から読み出したプログラムを、RAM32を作業領域として用いて実行することにより、後述する制御処理を実行する。通信装置36は、
図1に示したバス15a~15dを介して、通信モジュール12、電子制御ユニット13a~13d、表示装置14と通信を行う機器である。
【0022】
図4A及び
図4Bは、電子制御ユニットの概略構成を示すブロック図である。
【0023】
図4Aに示す電子制御ユニット13aは、CPU41と、RAM42と、不揮発性メモリ43aと、通信装置44とを備える。CPU41は、不揮発性メモリ43aから読み出したプログラムを、RAM42を作業領域として用いて実行することにより、電子制御ユニット13aの機能を実現する。不揮発性メモリ43aは、ソフトウェアを格納するための1つの格納領域45を有する。以下、この構成の不揮発性メモリ43aの種別を「第1種別」という。格納領域45には、電子制御ユニット13aの機能を実現するためのソフトウェアの他に、バージョン情報やパラメータデータ、起動用のブートプログラム、ソフトウェア更新用のプログラム等が格納される場合がある。通信装置44は、ソフトウェア更新装置11や車載ネットワーク2に接続される他の電子制御ユニット13b~13d、表示装置14との通信を行う機器である。
【0024】
図4Bに示す電子制御ユニット13bは、電子制御ユニット13aと同様に、CPU41と、RAM42と、不揮発性メモリ43bと、通信装置44とを備える。ただし、電子制御ユニット13bに搭載される不揮発性メモリ43bは、プログラムを格納するための2つの格納領域46a及び46bを有する。以下、この構成の不揮発性メモリ43bの種別を「第2種別」という。格納領域46a及び46bには、電子制御ユニット13aの機能を実現するためのソフトウェアの他に、バージョン情報やパラメータデータ、起動用のブートプログラム、ソフトウェア更新用のプログラム等が格納される場合がある。電子制御ユニット13bのCPU41は、不揮発性メモリ43bが有する2つの格納領域46a及び46bのうち、何れか一方を読み出し対象の格納領域(運用面)とし、読み出し対象の格納領域に格納されるソフトウェアを実行する。読み出し対象でない他方の格納領域(非運用面)には、読み出し対象の格納領域(運用面)のプログラムの実行中に、バックグラウンドで更新データを書き込み可能である。ソフトウェア更新処理におけるアクティベート時には、CPU41によるプログラムの読み出し対象の格納領域を切り替えることにより、更新版のソフトウェアをアクティベートすることができる。具体例として、格納領域46aに現行のソフトウェアが格納されており、格納領域46bに更新版のソフトウェアがインストールされた場合を想定する。ソフトウェア更新装置11から更新版のソフトウェアのアクティベートが指示されると、例えば、CPU41の読み出し開始アドレスを、格納領域46aの先頭アドレスから格納領域46bの先頭アドレスに切り替えることにより、CPU41の読み出し対象(運用面)の格納領域を切り替え、格納領域46bにインストールされた更新版のソフトウェアを実行することができる。尚、本開示においては、1面の格納領域を擬似的に2面に区画し、一方の面のプログラムを実行中に他方の面にプログラムを書き込み可能にした「1面サスペンドメモリ」と呼ばれる構成も第2種別のメモリに分類されるものとする。
【0025】
図5は、
図1に示したサーバの機能ブロック図である。
【0026】
サーバ1は、記憶部26と、通信部27と、制御部28とを備える。通信部27及び制御部28は、
図2に示したCPU21がRAM22を用いて記憶装置23に記憶されるプログラムを実行することにより実現され、記憶部26は、
図2に示した記憶装置23により実現される。
【0027】
記憶部26は、車両を識別する車両識別情報(車両ID)毎に、車両に搭載された1以上の電子制御ユニットで利用可能なソフトウェアを示す情報とを関連付けた更新管理情報と、電子制御ユニットのソフトウェアの更新データとを記憶する。電子制御ユニットで利用可能なソフトウェアを示す情報として、例えば、複数の電子制御ユニットのそれぞれのソフトウェアの最新のバージョン情報の組み合わせが定義される。
【0028】
通信部27は、ソフトウェア更新装置11からソフトウェアの更新確認要求を受信可能である。更新確認要求は、例えば、車両において電源またはイグニッションがオンされたときに、ソフトウェア更新装置11からサーバ1へと送信される情報であって、電子制御ユニットの更新データがあるか否かの確認をサーバ1に要求するための情報である。また、通信部27は、ソフトウェア更新装置11からの配信パッケージの送信要求(ダウンロード要求)を受信する。通信部27は、配信パッケージのダウンロード要求を受信すると、電子制御ユニットのソフトウェアの更新データを含む配信パッケージをソフトウェア更新装置11に送信する。
【0029】
制御部28は、通信部27が更新確認要求を受信すると、記憶部26に記憶される更新管理情報に基づいて、更新確認要求に含まれる車両IDで特定される車両のソフトウェアの更新データがあるか否かを判定する。制御部28は、電子制御ユニットの更新データがあると判定した場合、ソフトウェア更新装置11から配信パッケージのダウンロード要求を受信すると、記憶部26に記憶される更新データを含む配信パッケージを生成する。
【0030】
図6は、
図1に示したソフトウェア更新装置の機能ブロック図である。
【0031】
ソフトウェア更新装置11は、記憶部37と、判定部38と、通信部39と、制御部40とを備える。記憶部37は、
図3に示した記憶装置34によって実現され、判定部38と、通信部39と、制御部40とは、
図3に示したCPU31がRAM32を用いてROM33に記憶されるプログラムを実行することにより実現される。
【0032】
記憶部37は、電子制御ユニット13a~13dのそれぞれに搭載される不揮発性メモリの種別が第1種別及び第2種別のいずれであるかを記憶する。電子制御ユニットに搭載される不揮発性メモリの種別に関する情報(種別情報)は、車載ネットワーク2を構成する電子制御ユニットの仕様に基づいて予め作成し、車両の製造時に記憶部37に格納しても良い。あるいは、ソフトウェアの更新処理時に、後述する通信部39が、更新対象の電子制御ユニットの不揮発性メモリの種別を車載ネットワーク2内の通信により取得しても良い。
【0033】
判定部38は、ソフトウェアの更新処理時に、更新対象の電子制御ユニットに搭載される不揮発性メモリが、1つの格納領域を有する第1種別のメモリであるか、2つの格納領域を有する第2種別のメモリであるかを判定する。判定部38による不揮発性メモリの種別の判定は、記憶部37に記憶される不揮発性メモリの種別情報に基づいて行うことができる。上述したように、記憶部37に記憶される不揮発性の種別情報は、車両の製造時等に予め作成されたものであっても良いし、ソフトウェアの更新処理時に更新対象の電子制御ユニットから取得した不揮発性メモリの種別に基づいて作成されたものであっても良い。
【0034】
通信部39は、例えば、車両の電源またはイグニッションがオンされたことを契機として、ソフトウェアの更新確認要求をソフトウェア更新装置11に送信する。更新確認要求は、車両を識別するための車両IDと、車載ネットワーク2に接続される電子制御ユニット13a~13dのソフトウェアのバージョンとを含む。車両ID及び電子制御ユニット13a~13dのソフトウェアのバージョンは、サーバ1が車両ID毎に保持する最新のソフトウェアのバージョンとの比較により、電子制御ユニットのソフトウェアの更新データがあるか否かを判定するために用いられる。また、通信部39は、更新確認要求に対する応答としてサーバ1から更新データの有無を示す通知を受信する。電子制御ユニットのソフトウェアの更新データがある場合、通信部39は、配信パッケージのダウンロード要求をサーバ1に送信し、サーバ1から送信される配信パッケージを受信する。配信パッケージは、更新データの他に、更新データの真正性を検証するための検証用データや、更新データの数、インストール順、ソフトウェア更新時に用いる各種制御情報等を含んでいても良い。また、ソフトウェアの更新処理時に電子制御ユニットの不揮発性メモリの種別情報を更新対象の電子制御ユニットから取得する場合は、通信部39が更新対象の電子制御ユニットとの通信により種別情報を取得する。
【0035】
制御部40は、通信部39が受信した更新確認要求に対する応答に基づき、電子制御ユニットのソフトウェアの更新データの有無を判定する。制御部40は、通信部39がサーバ1から受信して記憶部37に格納した配信パッケージの真正性を検証する。制御部40は、ダウンロードした1以上の更新データを更新対象の電子制御ユニットに転送し、更新対象の電子制御ユニットに更新データをインストールさせる。インストールの完了後、制御部40は、更新対象の電子制御ユニットに対して、インストールした更新版のソフトウェアを有効とするよう指示する。
【0036】
ここで、電子制御ユニットの不揮発性メモリが第1種別のメモリである場合、インストールとアクティベートとが一続きに行われるため、インストールの実行前に、ソフトウェア更新に対するユーザまたは管理者の承諾を要求する承諾要求処理を行う。電子制御ユニットの不揮発性メモリが第2種別のメモリである場合、少なくとも、インストールの実行後、かつ、アクティベートの実行前に、ソフトウェア更新に対する承諾要求処理を行う。電子制御ユニットの不揮発性メモリが第2種別のメモリである場合、インストールの実行前に、ソフトウェアの更新に対する承諾要求処理を行っても良いし、省略しても良い。
【0037】
制御部40は、承諾要求処理において、ソフトウェア更新に対して承諾が必要である旨の通知や、ソフトウェア更新を承諾した旨の入力を促す通知を出力装置に出力させる。出力装置としては、車載ネットワーク2に設けられた表示装置14や、音声による通知を行う音声出力装置等を利用できる。例えば、承諾要求処理において、表示装置14を出力装置として用いる場合、制御部40は、ソフトウェア更新の承諾を求めるための承諾要求画面を表示装置14に表示させ、ユーザまたは管理者が承諾した場合に承諾ボタンを押下する等の特定の入力操作を促す通知を表示装置14に表示させる。また、制御部40は、承諾要求処理において、電子制御ユニットのソフトウェアの更新データがあることを通知する文言やアイコン等を表示装置14に表示させたり、ソフトウェア更新処理の実行中における制限事項等を表示装置14に表示させたりする。
【0038】
制御部40は、更新対象の電子制御ユニットのメモリ種別に応じたタイミングで承諾要求処理を行い、ユーザまたは管理者から承諾した旨の入力を受け付けると、上述したインストール及びアクティベートの制御処理を実行し、更新対象の電子制御ユニットのソフトウェアを更新する。
【0039】
ここで、ソフトウェアの更新処理は、サーバ1から更新データをダウンロードするフェーズと、ダウンロードした更新データを更新対象の電子制御ユニットに転送し、更新対象の電子制御ユニットの記憶領域に更新データをインストールするフェーズと、更新対象の電子制御ユニットにおいてインストールした更新版のソフトウェアを有効化するアクティベートのフェーズとからなる。
【0040】
ダウンロードは、サーバ1から送信された、電子制御ユニットのソフトウェアを更新するための更新データを受信して記憶する処理である。ダウンロードのフェーズでは、更新データの受信だけでなく、ダウンロードの実行可否判断、更新データの検証等、ダウンロードに関する一連の処理の制御を含む。インストールは、ダウンロードした更新データに基づいて、更新対象の電子制御ユニットに車載機器の記憶部に更新版のプログラム(更新ソフトウェア)を書き込む処理である。インストールのフェーズでは、インストール実行だけでなく、インストールの実行可否判断、更新データの転送および更新版のプログラムの検証等、インストールに関する一連の処理の制御を含む。アクティベートは、インストールした更新版のプログラムを有効化(アクティベート)する処理である。アクティベートする制御は、アクティベート実行だけでなく、アクティベートの実行可否判断、実行結果の検証等、アクティベートに関する一連の制御を含む。
【0041】
サーバ1からソフトウェア更新装置11に送信される更新データは、電子制御ユニットの更新ソフトウェア、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェアまたは圧縮データを分割した分割データのいずれを含んでいても良い。また、更新データは、更新対象の電子制御ユニットを識別する識別子(ECU ID)と、更新前のソフトウェアを識別する識別子(ECU ソフトウェア ID)を含んでいても良い。更新データは、上述した配信パッケージとしてダウンロードされるが、配信パッケージには、単一または複数の電子制御ユニットの更新データが含まれる。
【0042】
更新データが更新ソフトウェアそのものを含む場合は、インストールのフェーズにおいて、ソフトウェア更新装置が更新データ(更新ソフトウェア)を更新対象の電子制御ユニットに転送する。また、更新データが更新ソフトウェアの圧縮データ、差分データあるいは分割データを含む場合、ソフトウェア更新装置11が更新対象の電子制御ユニットに更新データを転送し、更新対象の電子制御ユニットが更新データから更新ソフトウェアを生成しても良いし、ソフトウェア更新装置11が更新データから更新ソフトウェアを生成してから、更新ソフトウェアを更新対象の電子制御ユニットに転送しても良い。ここで、更新ソフトウェアの生成は、圧縮データの解凍、差分データまたは分割データの組み付けにより行うことができる。
【0043】
更新ソフトウェアのインストールは、ソフトウェア更新装置11からのインストール要求に基づき、更新対象の電子制御ユニットが行うことができる。あるいは、更新データを受信した更新対象の電子制御ユニットが、ソフトウェア更新装置11からの明示の指示を受けることなく、自律的にインストールを行っても良い。
【0044】
更新ソフトウェアのアクティベートは、ソフトウェア更新装置11からのアクティベート要求に基づき、更新対象の電子制御ユニットが行うことができる。あるいは、更新データを受信した更新対象の電子制御ユニットが、ソフトウェア更新装置11からの明示の指示を受けることなく、自律的にアクティベートを行っても良い。
【0045】
尚、ソフトウェアの更新処理は、複数の電子制御ユニットのそれぞれに対して、連続的あるいは並列的に行うことができる。
【0046】
また、本明細書における「プログラム更新処理」は、ダウンロード・インストール・アクティベートの全てを連続して行う処理だけでなく、ダウンロード・インストール・アクティベートの一部のみを行う処理も含む。
【0047】
図7は、第1の実施形態に係るサーバが実行する制御処理の一例を示すフローチャートである。
図7に示す制御処理は、例えば所定の時間間隔で繰り返し実行される。
【0048】
ステップS1において、通信部27は、ソフトウェア更新装置11から更新確認要求を受信したか否かを判定する。ステップS1の判定がYESの場合、処理はステップS2に進み、それ以外の場合、処理はステップS3に進む。
【0049】
ステップS2において、通信部27は、更新確認要求を送信した車両に対して、電子制御ユニットのソフトウェアの更新データがあるか否かを示す情報を送信する。更新データの有無は、例えば、制御部28が、更新確認要求に含まれる車両IDに関連付けて更新管理情報に記憶されているソフトウェアのバージョンの組み合わせと、更新確認要求に含まれる現在のソフトウェアのバージョンの組み合わせとを比較し、更新確認要求に含まれる現在のソフトウェアのバージョンの組み合わせが、更新管理情報に記憶されているバージョンの組み合わせより古い場合に、更新データがあると判定することができる。その後、処理はステップS3に進む。
【0050】
ステップS3において、通信部27は、配信パッケージのダウンロード要求をソフトウェア更新装置11から受信したか否かを判定する。ステップS3の判定がYESの場合、処理はステップS4に進み、それ以外の場合、処理はステップS1に進む。
【0051】
ステップS4において、通信部27は、ソフトウェアの更新データを含む配信パッケージをソフトウェア更新装置11に送信する。その後、処理はステップS1に進む。
【0052】
図8は、第1の実施形態に係るソフトウェア更新装置が実行する制御処理の一例を示すフローチャートである。
図8に示す制御処理は、例えば、車両の電源またはイグニッションがオンされたことを契機として実行される。
【0053】
ステップS11において、通信部39は、車両IDと電子制御ユニットのソフトウェアのバージョンの組み合わせとを含む更新確認要求をサーバ1に送信する。その後、処理はステップS12に進む。
【0054】
ステップS12において、通信部39は、サーバ1から確認結果を受信する。その後、処理はステップS13に進む。
【0055】
ステップS13において、制御部40は、ステップS1で送信した更新確認要求に対するサーバ1からの応答に基づいて、電子制御ユニット13a~13dのソフトウェアの更新データがあるか否かを判定する。ステップS13の判定がYESの場合、処理はステップS14に進み、それ以外の場合、処理を終了する。
【0056】
ステップS14において、通信部39は、ダウンロード処理を実行する。より詳細には、通信部39は、サーバ1に配信パッケージのダウンロード要求を送信し、ダウンロード要求に応答して送信される配信パッケージを受信し、受信した配信パッケージを記憶部37に格納する。制御部40は、受信した配信パッケージに含まれる更新データの真正性を検証する。ステップS14において、ダウンロードの実行可否の判定や、サーバ1に対してダウンロードが完了したことの通知を行っても良い。その後、処理はステップS15に進む。
【0057】
ステップS15において、判定部38は、更新対象の電子制御ユニットが有する不揮発性メモリのメモリ種別を判定し、承諾要求処理の実行タイミングを決定する。電子制御ユニットの各々に搭載される不揮発性メモリのメモリ種別を含む種別情報が予め記憶部37に記憶されている場合、判定部38は、記憶部に記憶される種別情報に基づいて、更新対象の電子制御ユニットのメモリ種別を判定する。また、ステップS15において、通信部39が更新対象の電子制御ユニットとの通信によりメモリ種別を取得して記憶部37に格納する処理を行い、通信部39が記憶部37に格納した種別情報に基づいて、判定部38が、更新対象の電子制御ユニットのメモリ種別を判定しても良い。更新対象の電子制御ユニットの少なくとも1つが第1種別のメモリを有する場合は、インストール前の承諾が必須であるため、判定部38は、少なくともインストール前に承諾要求処理を実行すると決定する。この場合、判定部38は、予め登録された設定等に基づき、インストール前に加えて、アクティベート前にも承諾要求処理を実行することを決定しても良い。一方、更新対象の全ての電子制御ユニットが第2種別のメモリを有する場合は、アクティベート前の承諾が必須であるため、判定部38は、少なくともアクティベート前に承諾要求処理を実行すると決定する。この場合、判定部38は、予め登録された設定等に基づき、アクティベート前に加えて、インストール前にも承諾要求処理を実行することを決定しても良い。その後、処理はステップS16に進む。
【0058】
ステップS16において、制御部40は、更新対象の電子制御ユニットに対してインストール処理及びアクティベート処理を実行し、処理を終了する。
【0059】
図9は、
図8に示すインストール/アクティベート処理の詳細を示すフローチャート
である。
【0060】
ステップS21において、制御部40は、
図8のステップS15で判定部38が決定した承諾要求処理の実行タイミングに基づいて、インストールの実行前の承諾要求処理諾が必要であるか否かを判定する。ステップS21の判定がYESの場合、処理はステップS22に進み、それ以外の場合、処理はステップS24に進む。
【0061】
ステップS22において、制御部40は、インストールに対する承諾要求処理を実行する。例えば、制御部40は、電子制御ユニットのソフトウェア更新を開始する旨の表示と、ソフトウェア更新に対するユーザの承諾を要求する旨の表示と、必要に応じて、更新データのインストールに要する時間や、インストール中の制限事項や注意事項の表示を行い、タッチパネルや操作ボタン等の入力手段を用いたユーザによる操作入力を受け付ける。その後、処理はステップS23に進む。
【0062】
ステップS23において、制御部40は、ソフトウェア更新(インストール)を承諾する旨の操作入力が行われた否かを判定する。インストールを承諾する旨の操作入力は、例えば、表示装置14に表示された「承諾する」あるいは「更新を開始する」等のボタンが押下されたか否かに基づいて判定することができる。また、ユーザがソフトウェアの更新開始(インストール)をすぐに承諾せず、後でソフトウェアの更新開始(インストール)を行うことを希望する場合は、「後で行う」等のボタンを押下することによりその旨を受け付けることができ、この場合、制御部40はステップS24でNOと判定する。ステップS23の判定がYESの場合、処理はステップS24に進み、それ以外の場合、処理を終了する。
【0063】
ステップS24において、制御部40は、更新対象の電子制御ユニットに、更新データを転送し、インストールを指示する。その後、処理はステップS25に進む。更新対象のデン制御ユニットは、ソフトウェア更新装置11から受信した更新データをソフトウェア格納領域に書き込む。
【0064】
ステップS25において、制御部40は、
図8のステップS15で判定部38が決定した承諾要求処理の実行タイミングに基づいて、アクティベート前の承諾要求処理が必要であるか否かを判定する。ステップS25の判定がYESの場合、処理はステップS26に進み、それ以外の場合、処理はステップS27に進む。
【0065】
ステップS26において、制御部40は、アクティベートに対する承諾要求処理を実行する。例えば、制御部40は、例えば、電子制御ユニットのソフトウェア更新の準備が整い、電源またはイグニッションOFF等の特定の操作を行うことによりプログラムが更新される旨の表示と、必要に応じて、アクティベートに要する時間や、アクティベート中の制限事項や注意事項の表示を行い、タッチパネルや操作ボタン等の入力手段を用いたユーザによる操作入力を受け付ける。その後、処理はステップS27に進む。
【0066】
ステップS27において、制御部40は、ソフトウェア更新(アクティベート)を承諾する旨の操作入力が行われたか否かを判定する。アクティベートを承諾する旨の操作入力は、例えば、表示装置14に表示された「承諾する」あるいは「更新する」等のボタンが押下されたか否かに基づいて判定することができる。また、ユーザがソフトウェア更新(アクティベート)をすぐに承諾せず、後でソフトウェア更新を行うことを希望する場合は、「後で行う」等のボタンを押下することによりその旨を受け付けることができ、この場合、制御部40はステップS27でNOと判定する。ステップS27の判定がYESの場合、処理はステップS28に進み、それ以外の場合、処理を終了する。
【0067】
ステップS28において、制御部40は、更新対象の電子制御ユニットに対して、更新版のソフトウェアの有効化を指示する。その後、処理を終了する。尚、更新対象の電子制御ユニットは、電源またはイグニッションOFFにより等の特定の操作が行われたことを契機として、再起動し、更新後のソフトウェアを実行する。これにより、電子制御ユニットのソフトウェア更新(機能更新)が完了する。
【0068】
上述の通り、更新対象の電子制御ユニットに搭載された不揮発性メモリが第1種別のメモリである場合、更新データをインストールすることにより現行のソフトウェアが上書きされるため、更新データのインストールの段階で更新対象の電子制御ユニットに影響が生じる。そこで、更新対象の電子制御ユニットの中に、第1種別のメモリが搭載された電子制御ユニットが含まれる場合、更新データが書き込まれる前に、承諾を求める承諾要求処理を行うことが必須であり、承諾を受け付けることがインストール開始の条件である。これに対して、更新対象の電子制御ユニットに搭載された不揮発性メモリが第2種別のメモリである場合、更新データのインストールの段階ではなく、インストール後に更新版のソフトウェアをアクティベートする段階で更新対象の電子制御ユニットに影響が生じる。そこで、更新対象の電子制御ユニットの全てが第2種別のメモリが搭載された電子制御ユニットである場合、更新データのインストール後、かつ、更新版のソフトウェアのアクティベート前に、ユーザに承諾を求める承諾要求画面を表示装置14に表示させることが必須であり、プログラム更新(更新プログラムの有効化)に対するユーザの承諾があることが、承諾を求める承諾要求処理を行うことが必須であり、承諾を受け付けることがアクティベート開始の条件である。
【0069】
本実施形態に係るソフトウェア更新装置11は、更新対象の電子制御ユニットの不揮発性メモリの種別に応じて、ソフトウェア更新時における承諾要求処理の実行タイミングを変化させる。したがって、本実施形態に係るソフトウェア更新装置によれば、更新対象の電子制御ユニットの仕様に応じて、適切なタイミングで承諾を要求することができる。
【0070】
具体的には、更新対象の少なくとも1つ電子制御ユニットに搭載される不揮発性メモリが第1種別のメモリである場合、不揮発性メモリの格納領域に更新プログラムが書き込まれる前に、承諾要求画面を表示画面に表示させる。一方、更新対象の電子制御ユニットに搭載される不揮発性メモリが全て第2種別のメモリである場合、不揮発性メモリの読み出し対象でない格納領域に更新データがインストールされた後、かつ、更新版のソフトウェアが書き込まれた格納領域がアクティベートされる前に、承諾要求表示を表示画面に表示させる。したがって、本実施形態に係るソフトウェア更新装置11によれば、更新対象の電子制御ユニットに搭載された不揮発性メモリが有する格納領域の数に応じて、適切なタイミングで承諾要求処理を行うことができる。
【0071】
(第1の実施形態の変形例)
上記の例では、ソフトウェア更新装置11が、予め記憶部37に格納された電子制御ユニットのメモリ種別、または、更新対象の電子制御ユニットから通信により取得したメモリ種別に基づいて、承諾要求処理を決定する例を説明した。車両に搭載されている電子制御ユニットの構成(種類やメモリ種別)はサーバ1によって管理されているため、更新対象の電子制御ユニットの不揮発性メモリの種別を通信部39が通信によりサーバ1から取得して記憶部37に格納しても良い。このように構成する場合、
図7のステップS4において、サーバ1の通信部27が、更新データと更新対象の電子制御ユニットのメモリ種別を示す情報とを配信パッケージに含めて車両に送信する。ソフトウェア更新装置11においては、
図8のステップS14で通信部39が受信した配信パッケージに含まれる、更新対象の電子制御ユニットのメモリ種別を示す情報に基づいて、制御部40がステップS15の処理を実行することにより、承諾要求処理の実行タイミングを決定することができる。
【0072】
(第2の実施形態)
上記の第1の実施形態では、ソフトウェア更新装置11が電子制御ユニットのメモリ種別を記憶する記憶部を備え、記憶部に予め記憶される電子制御ユニットのメモリ種別、もしくは、ソフトウェア更新装置11が通信により電子制御ユニットまたはサーバ1から取得したメモリ種別に基づいて、承諾要求処理の実行タイミングを制御する構成を説明した。これに対して、本実施形態では、電子制御ユニットに搭載された不揮発性メモリの種別をサーバ1が記憶部26に保持しており、サーバ1から車両のソフトウェア更新装置11へと、承諾要求処理の実行タイミングを指示する指示情報を送信する。以下、本実施形態と第1の実施形態との相違点を中心に説明する。
【0073】
図10は、第2の実施形態に係るサーバが実行する制御処理の一例を示すフローチャートである。
図10に示す制御処理は、
図7に示した制御処理のステップS4をステップS4’に置き換えたものである。
【0074】
ステップS3において、通信部27が配信パッケージのダウンロード要求をソフトウェア更新装置11から受信すると、ステップS4’において、通信部27は、電子制御ユニットのソフトウェアの更新データと、指示情報とを含む配信パッケージをソフトウェア更新装置11に送信する。指示情報は、ソフトウェア更新装置11がソフトウェアの更新処理を行う際における承諾要求処理の実行タイミングを指示するための情報であり、更新対象の電子制御ユニットに搭載された不揮発性メモリの種別に応じて生成される。例えば、指示情報は、制御部28が以下の手順を行うことにより生成することができる。
【0075】
まず、制御部28は、ステップS3で受信したダウンロード要求に含まれる車両IDで特定される車両に関して、ステップS2で更新データがあると判定した電子制御ユニットとそのメモリ種別とを特定する。各車両に搭載されている電子制御ユニットの種類やメモリ種別は、製造時等に予めサーバ1の記憶部26に登録されている。したがって、制御部28は、予め登録された情報に基づいて、ステップS2で判定した更新対象の電子制御ユニット(すなわち、更新データがある電子制御ユニット)のそれぞれのメモリ種別を取得することができる。次に、制御部28は、更新対象の電子ユニットに搭載された不揮発性メモリのメモリ種別に応じて、指示情報を生成する。具体的に、更新対象の電子制御ユニットに第1種別のメモリを搭載した電子制御ユニットが含まれる場合、制御部28は、更新対象の電子制御ユニットに実質的な影響を及ぼすインストール前に承諾要求処理を行うよう指示する情報を生成する。また、更新対象の電子制御ユニットの全てが第2種別のメモリを搭載した電子制御ユニットである場合、制御部28は、更新対象の電子制御ユニットに実質的な影響を及ぼすアクティベート前に承諾要求処理を行うよう指示する情報を生成する。通信部27は、更新対象の電子制御ユニットの更新データと共に制御部28が生成した指示情報を配信パッケージに含めて、ダウンロード要求を送信した車両に送信する。
【0076】
図11は、第2の実施形態に係るソフトウェア更新装置が実行する制御処理の一例を示すフローチャートである。
図11に示す制御処理は、
図8に示した制御処理のステップS15をステップS15’に置き換えたものである。
【0077】
ソフトウェア更新装置11において、通信部39が配信パッケージを受信すると(ステップS14)、ステップS15’において、制御部40は、配信パッケージに含まれる指示情報に基づいて、承諾要求処理の実行タイミングを決定する。ステップS16のインストール/アクティベート処理(
図9)においては、ステップS15において決定された実行タイミングに基づいて、
図9に示すステップS21及びステップS25の判定が行われる。
【0078】
本実施形態のように、サーバ1において承諾要求処理の実行タイミングを指示する指示情報を生成して車両に送信する構成であれば、ソフトウェア更新装置11において更新対象の電子制御ユニットのメモリ種別を判定する必要がないため、ソフトウェア更新装置11の制御処理をより簡易なものとすることができる。
【0079】
上記の各実施形態で例示したサーバ1の機能は、プロセッサ(CPU)とメモリと記憶装置とを備えるコンピュータが実行する更新管理方法、あるいは、当該コンピュータに実行させる更新管理プログラム、更新管理プログラムを記憶したコンピュータ読み取り可能な非一時的記憶媒体として実現することも可能である。同様に、実施形態として例示したソフトウェア更新装置11の機能は、プロセッサ(CPU)とメモリと記憶装置とを備える、車載されたコンピュータが実行する更新制御方法、あるいは、当該車載されたコンピュータに実行させる更新制御プログラム、更新制御プログラムを記憶したコンピュータ読み取り可能な非一時的記憶媒体として実現することも可能である。
【0080】
上記の各実施形態では、車両側において、車載ネットワークに設けられたソフトウェア更新装置11が、マスタ装置として、全ての電子制御ユニット13a~13dのプログラム更新を制御する例を説明したが、ソフトウェア更新装置11を設ける代わりに、電子制御ユニット13a~13dのいずれか1つが
図8及び
図9に示した更新制御機能を有しており、他の電子制御ユニットのプログラム更新を制御しても良い。また、ソフトウェア更新装置11を設ける代わりに、
図8及び
図9に示した更新制御機能を、車載ネットワーク2に有線で接続可能な外部機器に設け、この外部機器を用いて電子制御ユニット13a~13dのプログラム更新処理を行うことも可能である。
【産業上の利用可能性】
【0081】
本開示技術は、電子制御ユニットのプログラムを更新するためのネットワークシステムに利用できる。
【符号の説明】
【0082】
1 サーバ
2 車載ネットワーク
5 ネットワーク
11 ソフトウェア更新装置
13a~13d 電子制御ユニット
37 記憶部
38 判定部
39 通信部
40 更新部
48 表示制御部