(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】センタ、配信制御方法、及び配信制御プログラム
(51)【国際特許分類】
G06F 8/60 20180101AFI20240910BHJP
H04L 67/00 20220101ALI20240910BHJP
【FI】
G06F8/60
H04L67/00
(21)【出願番号】P 2021064671
(22)【出願日】2021-04-06
【審査請求日】2023-03-23
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】長光 翔一
【審査官】北川 純次
(56)【参考文献】
【文献】特開2020-027634(JP,A)
【文献】特開2018-180948(JP,A)
【文献】特開2016-170740(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/60-8/65
H04L 67/00
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
複数の電子制御ユニットを備えた車両に前記電子制御ユニットのソフトウェアの更新データを配信するセンタであって、
相互に制御機能の整合を取る必要がある前記電子制御ユニットである複数の第1電子制御ユニットのソフトウェアの最新バージョンの組み合わせを含む、更新管理情報を記憶する記憶部と、
前記複数の電子制御ユニットのソフトウェアの現バージョンを前記車両から受信する受信部と、
前記記憶部が記憶する前記更新管理情報と前記受信部が受信した前記ソフトウェアの現バージョンとに基づいて、少なくとも1つの前記第1電子制御ユニットのソフトウェアの更新が必要であるか否かを判定する判定部と、
前記第1電子制御ユニットのソフトウェアの更新が必要であると前記判定部が判定した場合、前記更新が必要な第1電子制御ユニットのソフトウェアに基づいて、前記複数の第1電子制御ユニットの全てのソフトウェアに関するバージョン間の差分データを含むパッケージ及び前記更新が必要な第1電子制御ユニットのソフトウェアの最新バージョンの全データを含むパッケージのいずれかを、配信パッケージとして決定する制御部と、
前記車両からの要求に基づいて、前記制御部が決定した前記配信パッケージを前記車両に送信する送信部と、を備える、センタ。
【請求項2】
前記制御部は、前記更新が必要な第1電子制御ユニットのソフトウェアの現バージョンと、前記更新が必要な第1電子制御ユニットのソフトウェアの最新バージョンとの差が、所定値を超える場合、前記更新が必要な第1電子制御ユニットのソフトウェアの最新バージョンの全データを含むパッケージを前記配信パッケージとして決定する、請求項1に記載のセンタ。
【請求項3】
前記更新管理情報は、前記複数の第1電子制御ユニットと制御機能の整合を取る必要がない前記電子制御ユニットである1以上の第2電子制御ユニットのソフトウェアの最新バージョンをさらに含み、
前記判定部は、前記記憶部が記憶する前記更新管理情報と前記受信部が受信した前記ソフトウェアの現バージョンとに基づいて、少なくとも1つの前記第2電子制御ユニットのソフトウェアの更新が必要である否かを判定し、
前記制御部は、前記第2電子制御ユニットのソフトウェアの更新が必要であると前記判定部が判定した場合、前記更新が必要な第2電子制御ユニットのソフトウェアに基づいて、前記第2電子制御ユニットのソフトウェアに関するバージョン間の差分データを含むパッケージ及び前記更新が必要な第2電子制御ユニットのソフトウェアの最新バージョンの全データを含むパッケージのいずれかを、配信パッケージとして決定する、請求項1又は2に記載のセンタ。
【請求項4】
前記制御部は、前記更新が必要な第2電子制御ユニットのソフトウェアの最新バージョンのみを含むパッケージのデータ量が、前記車両が有するデータ格納領域の容量を超える場合、前記第2電子制御ユニットのソフトウェアに関するバージョン間の差分データを含むパッケージを前記配信パッケージとして決定する、請求項3に記載のセンタ。
【請求項5】
前記制御部は、前記更新が必要な第2電子制御ユニットのソフトウェアの最新バージョンの全データを含むパッケージのデータ量が、前記車両が備えるデータ格納領域の容量以下である場合、ソフトウェアの更新が完了するまでの予想時間が少ない方の前記パッケージを前記配信パッケージとして決定する、請求項4に記載のセンタ。
【請求項6】
前記制御部は、前記更新が必要な第2電子制御ユニットのソフトウェアの最新バージョンの全データを含むパッケージのデータ量が、前記車両が備えるデータ格納領域の容量以下である場合、前記データ量が少ない方の前記パッケージを前記配信パッケージとして決定する、請求項4に記載のセンタ。
【請求項7】
プロセッサと、メモリと、記憶装置とを備え、複数の電子制御ユニットを備えた車両に前記電子制御ユニットのソフトウェアの更新データを配信するセンタのコンピューターが実行する、配信制御方法であって、
相互に制御機能の整合を取る必要がある前記電子制御ユニットである複数の第1電子制御ユニットのソフトウェアの最新バージョンの組み合わせを含む、更新管理情報を記憶するステップと、
前記複数の電子制御ユニットのソフトウェアの現バージョンを前記車両から受信するステップと、
前記更新管理情報と前記ソフトウェアの現バージョンとに基づいて、少なくとも1つの前記第1電子制御ユニットのソフトウェアの更新が必要であるか否かを判定するステップと、
前記第1電子制御ユニットのソフトウェアの更新が必要であると判定した場合、前記更新が必要な第1電子制御ユニットのソフトウェアに基づいて、前記複数の第1電子制御ユニットの全てのソフトウェアに関するバージョン間の差分データを含むパッケージ及び前記更新が必要な第1電子制御ユニットのソフトウェアの最新バージョンの全データを含むパッケージのいずれかを、配信パッケージとして決定するステップと、
前記車両からの要求に基づいて、前記決定した配信パッケージを前記車両に送信するステップと、を含む、配信制御方法。
【請求項8】
プロセッサと、メモリと、記憶装置とを備え、複数の電子制御ユニットを備えた車両に前記電子制御ユニットのソフトウェアの更新データを配信するセンタのコンピューターが実行する、配信制御プログラムであって、
相互に制御機能の整合を取る必要がある前記電子制御ユニットである複数の第1電子制御ユニットのソフトウェアの最新バージョンの組み合わせを含む、更新管理情報を記憶するステップと、
前記複数の電子制御ユニットのソフトウェアの現バージョンを前記車両から受信するステップと、
前記更新管理情報と前記ソフトウェアの現バージョンとに基づいて、少なくとも1つの前記第1電子制御ユニットのソフトウェアの更新が必要であるか否かを判定するステップと、
前記第1電子制御ユニットのソフトウェアの更新が必要であると判定した場合、前記更新が必要な第1電子制御ユニットのソフトウェアに基づいて、前記複数の第1電子制御ユニットの全てのソフトウェアに関するバージョン間の差分データを含むパッケージ及び前記更新が必要な第1電子制御ユニットのソフトウェアの最新バージョンの全データを含むパッケージのいずれかを、配信パッケージとして決定するステップと、
前記車両からの要求に基づいて、前記決定した配信パッケージを前記車両に送信するステップと、を
前記コンピューターに実行させる、配信制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタなどに関する。
【背景技術】
【0002】
車両には、車両の動作を制御するための複数の電子制御ユニット(ECU:Electronic Control Unit)が搭載されている。電子制御ユニットは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部とを備え、プロセッサが記憶部に記憶されるソフトウェアを実行することにより電子制御ユニットの制御機能を実現する。各電子制御ユニットが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各電子制御ユニットの機能を改善したり、新たな車両制御機能を追加したりすることができる。
【0003】
電子制御ユニットのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネットなどの通信ネットワークとを無線で接続し、車両のソフトウェアの更新処理を担う装置が、無線通信を介してサーバー機能を有するセンタからソフトウェアをダウンロードし、ダウンロードしたソフトウェアを電子制御ユニットにインストールすることにより、電子制御ユニットのソフトウェア更新や追加を行うOTA(Over The Air)技術が知られている。
【0004】
このOTA技術を用いたソフトウェアの更新処理は、車両の電源又はイグニッションがONの時に、車両のソフトウェアの更新処理を担う装置であるOTAマスタが、車載通信機器を介して、電子制御ユニットのソフトウェアのバージョン情報をセンタに送信すること(更新確認)を契機として開始することができる(例えば、特許文献1を参照)。OTAマスタは、センタから更新データをOTAによりダウンロードすると、車内の表示装置などに表示を行うことにより、更新データがあることをユーザーに通知し、ボタンなどの入力装置の操作によってユーザーの承諾を受け付けたことを契機として、更新データのインストール及びアクティベートを実施する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
車両に設けられた制御機能の中には、例えば自動運転のように、複数の電子制御ユニット(あるいはアクチュエータ)が協調的に動作することにより実現されるものがある。自動運転機能を正常に機能させるためには、自動運転を実現する複数の電子制御ユニットのソフトウェアの制御機能が互いに整合している必要があり、自動運転を実現するいずれかの電子制御ユニットのソフトウェアの機能が更新される場合、この機能更新に併せて自動運転を実現する他の電子制御ユニットのソフトウェアの機能更新も行う必要がある。相互に制御機能の整合を取る必要がある複数の電子制御ユニットのソフトウェアは、通常はセットで更新が行われる。また、センタから車両への送信データ量を低減するため、ソフトウェアの更新データは、更新前後の差分データとして提供される。すなわち、相互に制御機能の整合を取る必要がある複数の電子制御ユニットのソフトウェアは、各ソフトウェアの差分データを含んだ配信パッケージの形態でセンタに登録される。この配信パッケージは、ソフトウェアの改ざんなどを防ぐため、センタでは開封できない仕様となっており、配信パッケージから1つのソフトウェアの更新データのみを抽出することは困難である。
【0007】
故障などによって電子制御ユニットが交換された場合、電子制御ユニットのソフトウェアのバージョンが交換前後で変わる可能性がある。交換された電子制御ユニットが、自動運転機能を実現する電子制御ユニットのように、相互に制御機能の整合を取る必要がある複数の電子制御ユニットの1つである場合、交換された電子制御ユニットのソフトウェアは、差分データの配信パッケージとして登録された更新データをダウンロードして最新の状態まで更新する必要がある。しかしながら、交換後の電子制御ユニットのソフトウェアのバージョンが最新のソフトウェアのバージョンと大きく異なる場合、差分データの配信パッケージのダウンロードや、差分データの配信パッケージを用いたインストール及びアクティベート、ユーザーの承諾要求処理などを何度も繰り返し行うことになり、ソフトウェア更新の効率が悪化してしまう場合があった。
【0008】
本開示は、上記課題を鑑みてなされたものであり、相互に制御機能の整合を取る必要がある複数の電子制御ユニットのソフトウェアの更新処理において、更新処理の効率が悪化してしまうことを抑制できるようにしたセンタなど、を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本開示技術の一態様は、複数の電子制御ユニットを備えた車両に電子制御ユニットのソフトウェアの更新データを配信するセンタであって、相互に制御機能の整合を取る必要がある電子制御ユニットである複数の第1電子制御ユニットのソフトウェアの最新バージョンの組み合わせを含む、更新管理情報を記憶する記憶部と、複数の電子制御ユニットのソフトウェアの現バージョンを車両から受信する受信部と、記憶部が記憶する更新管理情報と受信部が受信したソフトウェアの現バージョンとに基づいて、少なくとも1つの第1電子制御ユニットのソフトウェアの更新が必要であるか否かを判定する判定部と、第1電子制御ユニットのソフトウェアの更新が必要であると判定部が判定した場合、更新が必要な第1電子制御ユニットのソフトウェアに基づいて、複数の第1電子制御ユニットの全てのソフトウェアに関するバージョン間の差分データを含むパッケージ及び更新が必要な第1電子制御ユニットのソフトウェアの最新バージョンの全データを含むパッケージのいずれかを、配信パッケージとして決定する制御部と、車両からの要求に基づいて、制御部が決定した配信パッケージを車両に送信する送信部と、を備える、センタである。
【発明の効果】
【0010】
本開示のセンタなどによれば、更新が必要なソフトウェアに基づいて、バージョン間の差分データを含むパッケージで配信するのか最新バージョンの全データを含むパッケージで配信するのかを決定するので、ソフトウェアの更新処理の効率が悪化してしまうことを抑制できる。
【図面の簡単な説明】
【0011】
【
図1】実施形態に係るネットワークシステムの全体構成を示すブロック図
【
図7A】センタが記憶するパッケージ化された差分データの一例
【
図7B】センタが記憶するパッケージ化された全データの一例
【
図8】センタが実行する配信制御処理のフローチャート
【
図9】センタが実行する第1ECU向け配信パッケージ決定処理のフローチャート
【
図10】センタが実行する第2ECU向け配信パッケージ決定処理のフローチャート
【
図11】第1ECU向け配信パッケージ決定処理の具体例
【
図12】第2ECU向け配信パッケージ決定処理の具体例
【
図13】OTAマスタが実行するソフトウェア更新制御処理のフローチャート
【発明を実施するための形態】
【0012】
本開示のセンタは、車両の電子制御ユニットにソフトウェアの更新データを配信するにあたり、ソフトウェアバージョン間の差分データを含むパッケージで配信するのか、ソフトウェアの最新バージョンの全データを含むパッケージで配信するのかを、更新が必要なソフトウェアに基づいて決定する。この更新データの配信パッケージ決定手法によって、ソフトウェア更新処理の効率が悪化してしまうことを抑制する。
以下、本開示の一実施形態について、図面を参照しながら詳細に説明する。
【0013】
<実施形態>
[システムの構成]
図1は、本開示の一実施形態に係るネットワークシステムの全体構成を示すブロック図である。
図1に示すネットワークシステムは、車両に搭載された複数の電子制御ユニット(ECU)50a~50dのソフトウェアを更新するためのシステムであり、車両外にあるセンタ10と、車両内に構築される車載ネットワーク90と、を備える。
【0014】
(1)センタ
センタ10は、ネットワーク100を介して、車載ネットワーク90が備える後述するOTAマスタ30と通信可能であり、電子制御ユニット50a~50dの更新データの送信や、ソフトウェア更新処理の進捗状況を示す通知の受信などを行って、OTAマスタ30に接続された複数の電子制御ユニット50a~50dのソフトウェア更新を管理することができる。このセンタ10は、いわゆるサーバーとしての機能を有する。
【0015】
図2は、
図1におけるセンタ10の概略構成を示すブロック図である。
図2で示すように、センタ10は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、記憶装置13と、通信装置14と、を備える。記憶装置13は、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの読み書き可能な記憶媒体を備えた装置であり、ソフトウェアの更新管理を実行するためのプログラム、ソフトウェアの更新管理に用いる情報、及び各電子制御ユニットの更新データなどを記憶する。センタ10において、CPU11は、記憶装置13から読み出したプログラムを、RAM12を作業領域として用いて実行することにより、ソフトウェア更新に関する所定の処理を実行する。通信装置14は、ネットワーク100を介してOTAマスタ30と通信を行うための装置である。
【0016】
図3は、
図2に示したセンタ10の機能ブロック図である。
図3で示すセンタ10は、記憶部15と、通信部16と、制御部17と、判定部18と、を備える。記憶部15は、
図2に示した記憶装置13によって実現される。通信部16、制御部17、及び判定部18は、
図2に示したCPU11がRAM12を用いて記憶装置13に記憶されるプログラムを実行することによって実現される。
【0017】
記憶部15は、車両に搭載された1つ以上の電子制御ユニット50a~50dのソフトウェア更新処理に関する情報を記憶する。ソフトウェア更新処理に関する情報として、記憶部15は、車両を識別する車両識別情報(車両ID)ごとに、電子制御ユニット50a~50dで利用可能なソフトウェアを示す情報を関連付けた更新管理情報と、電子制御ユニット50a~50dのソフトウェアの更新データとを、少なくとも記憶する。また、ソフトウェア更新処理に関する情報として、記憶部15は、車両で実施されているソフトウェアの更新状態を示す更新ステータスを記憶する。
【0018】
記憶部15が記憶する車両管理情報には、電子制御ユニットで利用可能なソフトウェアを示す情報として、相互に制御機能の整合を取る必要がある電子制御ユニット(以下「第1電子制御ユニット」という)について複数の第1電子制御ユニットの各ソフトウェアの最新バージョンの組み合わせが定義される。また、電子制御ユニット50a~50dで利用可能なソフトウェアを示す情報として、相互に制御機能の整合を取る必要がない電子制御ユニット(以下「第2電子制御ユニット」という)について第2電子制御ユニットのソフトウェアの最新バージョンが記される。車両管理情報の一例を
図6に示す。
図6の例では、車両IDが「AB01」の車両について、電子制御ユニットECU-A、ECU-B、及びECU-Cが相互に制御機能の整合を取る必要がある第1電子制御ユニットであり、これら第1電子制御ユニットの全てがバージョン4.0であることが最新バージョンの組み合わせとして定義されている。また、電子制御ユニットECU-Dの最新バージョンが5.0であること、及び電子制御ユニットECU-Eの最新バージョンが3.0であることが記されている。なお、車両管理情報は、
図6のように第1電子制御ユニットと第2電子制御ユニットとを混在させた1つの情報として記憶してもよいし、第1電子制御ユニットの情報と第2電子制御ユニットの情報とを別々に記憶してもよい。
【0019】
記憶部15が記憶する更新データとしては、電子制御ユニットのソフトウェアに関するバージョン間の差分データと、電子制御ユニットのソフトウェアの最新バージョンの全データとを、例示できる。差分データは、全ての第1電子制御ユニットのソフトウェアを少なくとも1つにパッケージ化して生成されている。パッケージ化された差分データの一例を、
図7Aに示す。
図7Aの例では、車両ID_AB01の車両に向けた差分データパッケージとして6つのパッケージ(1.0~6.0)が用意されている。パッケージ1.0は、電子制御ユニットECU-A、ECU-B、ECU-C、ECU-D、及びECU-Eのそれぞれについて、各ソフトウェアをバージョン0からバージョン1.0に更新するための差分データを含む。なお、バージョン0とは、ソフトウェア自体が存在しないことを意味するため、パッケージ1.0の差分データはすなわちソフトウェアの全データに相当する。このパッケージ1.0による更新データのサイズ(データ量)は、2000MBであることが記されている。また、パッケージ2.0は、電子制御ユニットECU-D及びECU-Eのそれぞれについて、各ソフトウェアをバージョン1.0からバージョン2.0に更新するための差分データを含む。なお、電子制御ユニットECU-A、ECU-B、及びECU-Cについては、パッケージ2.0によるソフトウェアのバージョン更新がないため、これらの電子制御ユニットに関するソフトウェアの差分データはパッケージ2.0に含まれていない。このパッケージ2.0による更新データのサイズ(データ量)は、150MBであることが記されている。パッケージ3.0~6.0についてもそれぞれ同様に、バージョン更新がある各電子制御ユニットのソフトウェアの差分データを含む。この差分データパッケージは、相互に制御機能の整合を取る必要がある第1電子制御ユニットのソフトウェアを同一のパッケージに含めればよく、第1電子制御ユニットのソフトウェアと第2電子制御ユニットのソフトウェアとの組み合わせについては特に限定されない。
【0020】
また、
図7Bに、電子制御ユニットのソフトウェアの全データをそれぞれパッケージ化した一例を示す。
図7Bの例では、車両ID_AB01の車両に向けた全データパッケージとして複数のパッケージが用意されている。例えば、電子制御ユニットECU-Dについて、各バージョン1.0~5.0のソフトウェアの全データがパッケージとしてそれぞれ用意されており、パッケージごとに更新データのサイズ(データ量)が示されている。なお、記憶部15には、全データのパッケージを全てのバージョンについて記憶しておく必要はなく、記憶部15の格納容量やバージョンの利用頻度などに応じて、例えば最新バージョンのみなど一部のパッケージが記憶されていてもよい。なお、
図7Bでは、単一のソフトウェアの全データを1つのパッケージとする例を示したが、複数のソフトウェアの全データを1つのパッケージとしても構わない。例えば、電子制御ユニットECU-Aのソフトウェアについて、バージョン1.0の全データとバージョン2.0の全データとを1つのパッケージにしたり、電子制御ユニットECU-Cのソフトウェアのバージョン5.0の全データと電子制御ユニットECU-Eのソフトウェアのバージョン3.0の全データとを1つのパッケージにしたりしてもよい。
【0021】
通信部16は、OTAマスタ30との間で、データ、情報、及び要求などの送信及び受信を行う送信部及び受信部として機能する。通信部16は、OTAマスタ30からソフトウェアの更新確認要求を受信する(受信部)。更新確認要求は、例えば、車両において電源又はイグニッションがオンされた(以下「電源ON」という)時に、OTAマスタ30からセンタ10へと送信される情報であって、後述する車両構成情報に基づいて電子制御ユニット50a~50dの更新データがあるか否かの確認をセンタ10に要求するための情報である。また、通信部16は、OTAマスタ30から受信した更新確認要求に応答して、更新データの有無を示す情報をOTAマスタ30に送信する(送信部)。また、通信部16は、OTAマスタ30からの配信パッケージの送信要求(ダウンロード要求)を受信する(受信部)。また、通信部16は、配信パッケージのダウンロード要求を受信すると、更新が必要な電子制御ユニットのソフトウェアに基づいて、後述する制御部17で決定される配信パッケージをOTAマスタ30に送信する(送信部)。
【0022】
判定部18は、通信部16が受信した更新確認要求に含まれる車両構成情報から、車両IDで特定される車両に搭載された複数の電子制御ユニット50a~50dの各ソフトウェアの現在のバージョン(現バージョン)を取得する。そして、判定部18は、記憶部15に記憶されている更新管理情報と車両から取得した各ソフトウェアの現バージョンとに基づいて、少なくとも1つの電子制御ユニットのソフトウェアの更新が必要であるか否かを判定する。より具体的には、車両から取得した各ソフトウェアの現バージョンが、センタ10が車両管理情報として管理する当該車両における各ソフトウェアの最新バージョンと一致するか否かを判定する。
【0023】
制御部17は、少なくとも1つの電子制御ユニットのソフトウェアの更新が必要であると判定部18が判定した場合、記憶部15に記憶されているソフトウェア更新処理に関する情報に基づいて、更新が必要なソフトウェアの更新データがあるか否かを判定する。制御部17による更新データがあるか否かの判定結果は、通信部16によってOTAマスタ30に送信される。そして、制御部17は、更新が必要な電子制御ユニット50a~50dのソフトウェアの更新データがあると判定した場合、OTAマスタ30から配信パッケージのダウンロード要求を受信すると、更新が必要な電子制御ユニットのソフトウェアに基づいて、更新データとして車両に送信する配信パッケージを決定する。この配信パッケージの決定方法については、後述する。
【0024】
(2)車載ネットワーク
車載ネットワーク90は、OTAマスタ30と、複数の電子制御ユニット50a~50dと、表示装置70と、通信モジュール80と、を備える。OTAマスタ30と通信モジュール80とは、バス60aを介して接続されている。OTAマスタ30と電子制御ユニット50a及び50bとは、バス60bを介して接続されている。OTAマスタ30と電子制御ユニット50c及び50dとは、バス60cを介して接続されている。OTAマスタ30と表示装置70とは、バス60dを介して接続されている。
【0025】
OTAマスタ30は、バス60a及び通信モジュール80を介してネットワーク100経由でセンタ10と無線による通信が可能である。また、OTAマスタ30は、バス60b~60dを介して電子制御ユニット50a~50d及び表示装置70と有線による通信が可能である。このOTAマスタ30は、OTA状態を管理し、ソフトウェア更新シーケンスを制御して更新対象となる電子制御ユニット(以下「ターゲット電子制御ユニット」という)のソフトウェア更新を実施する機能を有する装置であり、センタ10から通信によって取得した更新データなどに基づいて、電子制御ユニット50a~50dのうちターゲット電子制御ユニットのソフトウェア更新を制御する。OTAマスタ30は、セントラルゲートウェイ(CGW)と称される場合もある。
【0026】
図4は、
図1におけるOTAマスタ30の概略構成を示すブロック図である。
図4で示すように、OTAマスタ30は、CPU31と、RAM32と、ROM(Read-Only Memory)33と、記憶装置34と、通信装置36と、を備える。CPU31、RAM32、ROM33、及び記憶装置34は、マイクロコンピューター35を構成する。OTAマスタ30において、CPU31は、ROM33から読み出したプログラムを、RAM32を作業領域として用いて実行することにより、ソフトウェア更新に関する所定の処理を実行する。通信装置36は、
図1に示したバス60a~60dを介して、通信モジュール80、電子制御ユニット50a~50d、及び表示装置70と通信を行うための装置である。
【0027】
図5は、
図4に示したOTAマスタ30の機能ブロック図である。
図5に示すOTAマスタ30は、記憶部37と、通信部38と、制御部39と、を備える。記憶部37は、
図4に示した記憶装置34によって実現される。通信部38及び制御部39は、
図4に示したCPU31がRAM32を用いてROM33に記憶されるプログラムを実行することによって実現される。
【0028】
記憶部37は、複数の電子制御ユニット50a~50dのソフトウェア更新を実行するためのプログラム(OTAマスタ30の制御用プログラム)や、ソフトウェア更新を実行する際に用いる各種データの他、センタ10から配信パッケージによってダウンロードしたソフトウェアの更新データを記憶する。
【0029】
通信部38は、センタ10との間で、データ、情報、及び要求などの送信及び受信を行う送信部及び受信部として機能する。通信部38は、例えば、車両の電源ONを契機として、ソフトウェアの更新確認要求をセンタ10に送信する(送信部)。更新確認要求は、例えば、車両を識別するための車両IDと、車載ネットワーク90に接続される電子制御ユニット50a~50dのソフトウェアの現バージョンに関する情報とを含む。車両ID及び電子制御ユニット50a~50dのソフトウェアの現バージョンは、センタ10が車両IDごとに記憶するソフトウェアの最新バージョンとの比較により、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否か、及び更新データがある場合にどの配信パッケージを採用するか否か、を判定するために用いられる。また、通信部38は、更新確認要求に対する応答としてセンタ10から更新データの有無を示す通知を受信する(受信部)。電子制御ユニット50a~50dのソフトウェアの更新データがある場合、通信部38は、更新データを含む配信パッケージのダウンロード要求をセンタ10に送信し(送信部)、センタ10から送信される配信パッケージを受信(ダウンロード)する(受信部)。また、通信部38は、電子制御ユニット50a~50dが送信するソフトウェアの更新状態を、センタ10に送信する(送信部)。
【0030】
制御部39は、通信部38が受信した更新確認要求に対するセンタ10からの応答に基づいて、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定する。また、制御部39は、通信部38がセンタ10から受信(ダウンロード)して記憶部37に格納した配信パッケージの真正性を検証する。また、制御部39は、センタ10から受信(ダウンロード)した更新データを用いて、電子制御ユニット50a~50dのソフトウェアの更新処理(インストール、アクティベート)を制御する。具体的には、制御部39は、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データに基づく更新ソフトウェアをインストールさせる。インストールの完了後、制御部39は、ターゲット電子制御ユニットに対して、インストールした更新ソフトウェアを有効とするアクティベートを指示する。
【0031】
複数の電子制御ユニット50a~50dは、車両の各部の動作を制御するための装置(ECU)である。
図1においては、4つの電子制御ユニット50a~50dを例示したが、電子制御ユニットの数は特に限定されない。また、電子制御ユニットをOTAマスタ30に接続するバスの数も特に限定されない。
【0032】
表示装置70は、電子制御ユニット50a~50dのソフトウェアの更新処理時に更新データがあることの表示、車両のユーザーや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、及びソフトウェア更新の結果の表示など、各種の表示を行うために用いられるヒューマンマシンインタフェース(HMI)である。表示装置70としては、典型的にはカーナビゲーションシステムの表示装置を用いることができるが、ソフトウェアの更新処理時に必要な情報を表示可能なものであれば特に限定されない。なお、
図1に示すバス60dには、表示装置70に加えて電子制御ユニットなどがさらに接続されていてもよい。
【0033】
通信モジュール80は、センタ10と車両との通信を制御する機能を持ったユニットであり、車載ネットワーク90をセンタ10に接続するための通信機器である。通信モジュール80は、ネットワーク100経由でセンタ10と無線で接続され、OTAマスタ30による車両の認証や更新データのダウンロードなどが行われる。なお、この通信モジュール80は、OTAマスタ30に含まれて構成されてもよい。
【0034】
[ソフトウェアの更新処理の概要]
OTAマスタ30は、例えば、車両の電源ONを契機として、ソフトウェアの更新確認要求をセンタ10に送信する。更新確認要求は、車両を識別するための車両IDと、車載ネットワーク90に接続される電子制御ユニット50a~50dのハードウェア及びソフトウェアの現バージョンなどの電子制御ユニットの状態(システム構成)に関する情報である車両構成情報と、を含む。車両構成情報は、車載ネットワーク90に接続される電子制御ユニット50a~50dから電子制御ユニットの識別番号(ECU_ID)と、電子制御ユニットのソフトウェアバージョンの識別番号(ECU_Software_ID)とを、取得することで作成可能である。車両ID及び電子制御ユニット50a~50dのソフトウェアの現バージョンは、センタ10が車両IDごとに保持するソフトウェアの最新バージョンとの比較により、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定するために用いられる。また、OTAマスタ30は、更新確認要求に対する応答としてセンタ10から更新データの有無を示す通知を受信する。電子制御ユニット50a~50dのソフトウェアの更新データがある場合、OTAマスタ30は、配信パッケージのダウンロード要求をセンタ10に送信し、センタ10から送信される配信パッケージを受信する。配信パッケージは、更新データの他に、更新データの真正性を検証するための検証用データや、更新データの数、インストール順、アクティベート順、種別情報、ソフトウェア更新時に用いる各種の制御情報などを含んでいてもよい。
【0035】
OTAマスタ30は、受信した更新確認要求に対するセンタ10からの応答に基づいて、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定する。また、OTAマスタ30は、センタ10から受信して記憶装置13に格納した配信パッケージの真正性を検証する。また、OTAマスタ30は、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データをインストールさせる。インストールの完了後、OTAマスタ30は、ターゲット電子制御ユニットに対して、インストールした更新版のソフトウェアを有効とするように指示をする。
【0036】
OTAマスタ30は、承諾要求処理において、ソフトウェア更新に対して承諾が必要である旨の通知やソフトウェア更新を承諾した旨の入力を促す通知を、出力装置に出力させる。出力装置としては、車載ネットワーク90に設けられた表示装置70や、音声による通知を行う音声出力装置などを利用できる。例えば、承諾要求処理において、表示装置70を出力装置として用いる場合、OTAマスタ30は、ソフトウェア更新の承諾を求めるための承諾要求画面を表示装置70に表示させ、ユーザー又は管理者が承諾した場合に承諾ボタンを押下するなどの特定の入力操作を促す通知を表示装置70に表示させることができる。また、OTAマスタ30は、承諾要求処理において、電子制御ユニット50a~50dのソフトウェアの更新データがあることを通知する文言やアイコンなどを表示装置70に表示させたり、ソフトウェア更新処理の実行中における制限事項などを表示装置70に表示させたり、することができる。OTAマスタ30は、ユーザー又は管理者から承諾した旨の入力を受け付けると、上述したインストール及びアクティベートの制御処理を実行し、ターゲット電子制御ユニットのソフトウェアを更新する。
【0037】
ここで、電子制御ユニットの不揮発性メモリが、制御用プログラムや更新データなどを格納するための1つの格納領域を有するシングルバンクメモリである場合は、インストールとアクティベートとがひと続きに行われるため、インストールの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。電子制御ユニットの不揮発性メモリが、制御用プログラムや更新データなどを格納するための2つの格納領域を有するデュアルバンクメモリである場合は、少なくとも、インストールの実行後、かつ、アクティベートの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。なお、電子制御ユニットの不揮発性メモリがデュアルバンクメモリである場合には、インストール実行前のソフトウェアの更新に対する承諾要求処理は、行われてもよいし、省略されてもよい。
【0038】
ソフトウェアの更新処理は、OTAマスタ30がセンタ10から更新データをダウンロードするフェーズ(ダウンロードフェーズ)、ダウンロードした更新データをOTAマスタ30がターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットの格納領域に更新データをインストールするフェーズ(インストールフェーズ)、及びターゲット電子制御ユニットがインストールした更新版のソフトウェアを有効化するフェーズ(アクティベートフェーズ)からなる。
【0039】
ダウンロードは、OTAマスタ30が、センタ10から配信パッケージによって送信された電子制御ユニット50a~50dのソフトウェアを更新するための更新データを、受信して記憶装置34に記憶する処理である。ダウンロードフェーズでは、ダウンロードの実行だけでなく、ダウンロードの実行可否判断、ダウンロードに対する車両のユーザー又は管理者への承諾要求、更新データの検証など、ダウンロードに関する一連の処理の制御を含む。
【0040】
センタ10からOTAマスタ30に送信される更新データは、電子制御ユニット50a~50dの更新ソフトウェア(全データ)、更新ソフトウェアの差分データ、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェア又は差分データあるいは圧縮データを分割した分割データのいずれを含んでいてもよい。また、更新データは、ターゲット電子制御ユニットのECU_ID(又はシリアル番号)と、更新前の電子制御ユニットのECU_Software_IDとを、含んでいてもよい。更新データは、上述した配信パッケージとしてダウンロードされるが、配信パッケージには、単一又は複数の電子制御ユニットの更新データが含まれる。
【0041】
インストールは、OTAマスタ30が、センタ10からダウンロードした更新データに基づいて、ターゲット電子制御ユニットに更新ソフトウェア(更新版のプログラム)を書き込む処理である。インストールフェーズでは、インストールの実行だけでなく、インストールの実行可否判断、インストールに対する車両のユーザー又は管理者への承諾要求、更新データの転送及び更新ソフトウェアの検証など、インストールに関する一連の処理の制御を含む。
【0042】
更新データが更新ソフトウェアそのもの(全データ)を含む場合は、インストールフェーズにおいて、OTAマスタ30が更新データ(更新ソフトウェア)をターゲット電子制御ユニットに転送する。また、更新データが更新ソフトウェアの圧縮データ、又は差分データ、あるいは分割データを含む場合は、OTAマスタ30がターゲット電子制御ユニットに更新データを転送し、ターゲット電子制御ユニットが更新データから更新ソフトウェアを生成してもよいし、OTAマスタ30が更新データから更新ソフトウェアを生成してから、更新ソフトウェアをターゲット電子制御ユニットに転送してもよい。ここで、更新ソフトウェアの生成は、圧縮データの解凍や、差分データ又は分割データの組み付け(統合)により行うことができる。
【0043】
更新ソフトウェアのインストールは、OTAマスタ30(又はセンタ10)からのインストール要求(又は指示)に基づいて、ターゲット電子制御ユニットが行うことができる。あるいは、更新データを受信したターゲット電子制御ユニットが、OTAマスタ30からの明示の指示を受けることなく、自律的にインストールを行ってもよい。
【0044】
アクティベートは、ターゲット電子制御ユニットが、インストールした更新ソフトウェアを有効化(アクティベート)する処理である。アクティベートフェーズでは、アクティベートの実行だけでなく、アクティベートの実行可否判断、アクティベートに対する車両のユーザー又は管理者への承諾要求、実行結果の検証など、アクティベートに関する一連の制御を含む。
【0045】
更新ソフトウェアのアクティベートは、OTAマスタ30(又はセンタ10)からのアクティベート要求(又は指示)に基づいて、ターゲット電子制御ユニットが行うことができる。あるいは、更新データを受信したターゲット電子制御ユニットが、OTAマスタ30からの明示の指示を受けることなく、インストールの完了後に自律的にアクティベートを行ってもよい。
【0046】
なお、ソフトウェアの更新処理は、複数の電子制御ユニットのそれぞれに対して、連続的あるいは並列的に行うことができる。
【0047】
また、本明細書における「ソフトウェアの更新処理」は、ダウンロード、インストール、及びアクティベートの全てを連続して行う処理だけでなく、ダウンロード、インストール、及びアクティベートのうちの一部のみを行う処理も含む。
【0048】
[処理]
次に、
図8乃至
図12をさらに参照して、本実施形態に係るネットワークシステムにおいて実行される処理を説明する。
【0049】
図8は、センタ10の各構成が実行する配信制御処理の一例を説明するフローチャートである。この
図8に示す配信制御処理は、OTAマスタ30が送信する更新確認要求を、センタ10が受信することによって開始される。
【0050】
(ステップS801)
通信部16は、OTAマスタ30からソフトウェアの更新確認要求があったか否かを判断する。更新確認要求があった場合は(ステップS801、はい)、ステップS802に処理が進み、更新確認要求がない場合は(ステップS801、いいえ)、ステップS804に処理が進む。
【0051】
(ステップS802)
制御部17は、更新が必要なソフトウェアの有無をチェックする。このチェックは、通更新確認要求に含まれる車両構成情報から判定部18が取得した車両に搭載される各電子制御ユニット50a~50dのソフトウェアの現バージョンと、記憶部15に記憶されている各ソフトウェアの最新バージョンとに、基づいて行われる。更新が必要なソフトウェアの有無のチェックが行われると、ステップS803に処理が進む。
【0052】
(ステップS803)
制御部17は、記憶部15に記憶されている更新管理情報に基づいて、更新確認要求に含まれる車両に搭載された電子制御ユニット50a~50dについてソフトウェアの更新データがあるか否かを判断し、判断結果に基づいて更新データの有無を示す情報をOTAマスタ30に送信する。更新データの有無が送信されると、ステップS804に処理が進む。
【0053】
(ステップS804)
通信部16は、OTAマスタ30から配信パッケージのダウンロード要求があったか否かを判断する。ダウンロード要求があった場合は(ステップS804、はい)、ステップS805に処理が進み、ダウンロード要求がない場合は(ステップS804、いいえ)、ステップS801に処理が進む。
【0054】
(ステップS805)
制御部17は、更新が必要なソフトウェア(以下「更新対象ソフトウェア」という)を有する電子制御ユニット(ECU)が、相互に制御機能の整合を取る必要がある第1電子制御ユニットか、相互に制御機能の整合を取る必要がない第2電子制御ユニットかを、判断する。更新対象ソフトウェアを有する電子制御ユニットが第1電子制御ユニットである場合は(ステップS805、第1ECU)、ステップS806に処理が進み、更新対象ソフトウェアを有する電子制御ユニットが第2電子制御ユニットである場合は(ステップS805、第2ECU)、ステップS807に処理が進む。
【0055】
(ステップS806)
制御部17は、第1電子制御ユニットのソフトウェアの更新データの配信パッケージを決定する処理(第1ECU向け配信パッケージ決定処理)を実行する。第1ECU向け配信パッケージ決定処理の実行が終了すると、ステップS808に処理が進む。
【0056】
(ステップS807)
制御部17は、第2電子制御ユニットのソフトウェアの更新データの配信パッケージを決定する処理(第2ECU向け配信パッケージ決定処理)を実行する。第2ECU向け配信パッケージ決定処理の実行が終了すると、ステップS808に処理が進む。
【0057】
(ステップS808)
通信部16は、制御部17が決定した配信パッケージをOTAマスタ30に送信する。配信パッケージが送信されると、ステップS801に処理が進む。
【0058】
図9を参照して、
図8のステップS806で示した第1ECU向け配信パッケージ決定処理を説明する。
図9は、センタ10の制御部17が実行する第1ECU向け配信パッケージ決定処理の一例を説明するフローチャートである。
【0059】
(ステップS901)
制御部17は、更新対象ソフトウェアのバージョン差が所定値を超えるか否かを判断する。更新対象ソフトウェアのバージョン差は、記憶部15に記憶されているソフトウェアの最新バージョンと車両から取得したソフトウェアの現バージョンとの差である。この判断は、ソフトウェアの現バージョンが最新バージョンと大きく異なっている(両バージョンの乖離が大きい)か否かを判断するために行われる。例えば、最新バージョンが4.0であり、現バージョンが3.0である場合、そのソフトウェアのバージョン差は1.0となる。所定値は、全データを用いて一気にバージョンアップした場合と、差分データを用いて段階的にバージョンアップした場合とを比較したときの、データ量や更新時間などに基づく更新効率などに基づいて設定することができる。更新対象ソフトウェアのバージョン差が所定値を超える場合は(ステップS901、はい)、ステップS902に処理が進み、更新対象ソフトウェアのバージョン差が所定値以下である場合は(ステップS901、いいえ)、ステップS903に処理が進む。
【0060】
(ステップS902)
制御部17は、更新対象ソフトウェアの最新バージョンの全データを少なくとも含むパッケージ(すなわち、全データパッケージ)を配信パッケージとして決定する。配信パッケージが決定されると、本第1ECU向け配信パッケージ決定処理が終了する。
【0061】
(ステップS903)
制御部17は、第1電子制御ユニットの全てのソフトウェアに関するバージョン間の差分データを含むパッケージ(すなわち、差分データパッケージ)を配信パッケージとして決定する。配信パッケージが決定されると、本第1ECU向け配信パッケージ決定処理が終了する。
【0062】
ここで、
図6、
図7A、
図7B、及び
図11を参照して、第1ECU向け配信パッケージ決定処理の具体例を説明する。なお、バージョン差の所定値は、2.0であるものとする。
図11の(a)では、更新が必要な第1電子制御ユニットECU-A、ECU-B、及びECU-Cの各ソフトウェアの現バージョン3.0は、最新バージョンの4.0(
図6を参照)よりも所定値を超えるバージョン差ではない。よって、センタ10は、ダウンロード要求の応答として、差分データパッケージ6.0(
図7Aを参照)を配信パッケージとしてOTAマスタ30に送信する。
図11の(b)では、更新が必要な第1電子制御ユニットECU-Cのソフトウェアの現バージョン3.0は、最新バージョンの4.0よりも所定値を超えるバージョン差ではない。よって、センタ10は、ダウンロード要求の応答として、差分データパッケージ6.0を配信パッケージとしてOTAマスタ30に送信する。
図11の(c)では、更新が必要な第1電子制御ユニットECU-Cのソフトウェアの現バージョン1.0は、最新バージョンの4.0よりも所定値を超えるバージョン差がある。よって、センタ10は、ダウンロード要求の応答として、第1電子制御ユニットECU-Cのソフトウェアの最新バージョン4.0の全データパッケージ(
図7Bを参照)を、配信パッケージとしてOTAマスタ30に送信する。
【0063】
次に、
図10を参照して、
図8のステップS807で示した第2ECU向け配信パッケージ決定処理を説明する。
図10は、センタ10の制御部17が実行する第2ECU向け配信パッケージ決定処理の一例を説明するフローチャートである。
【0064】
(ステップS1001)
制御部17は、更新対象ソフトウェアの全データのサイズが所定サイズを超えるか否かを判断する。ソフトウェアの全データのサイズ(データ量)は、記憶部15に予め記憶されている(
図7Bを参照)。更新対象ソフトウェアが複数である場合は、複数の全データを合計した値となる。所定サイズは、更新対象ソフトウェアの全データを車両がダウンロードできるかに基づいて設定される値であり、例えば車両の記憶部37においてダウンロードに利用可能なデータ格納領域の容量以下の任意の値とすることができる。更新対象ソフトウェアの全データのサイズが所定サイズを超える場合は(ステップS1001、はい)、ステップS1004に処理が進み、更新対象ソフトウェアの全データのサイズが所定サイズ以下である場合は(ステップS1001、いいえ)、ステップS1002に処理が進む。
【0065】
(ステップS1002)
制御部17は、更新対象ソフトウェアの更新完了までの予想時間が、全データを用いた更新処理の方が少ないのか差分データを用いた更新処理の方が少ないのかを判断する。ソフトウェアの更新完了までの時間は、例えば、通信帯域の混み具合、ソフトウェアの現バージョン、及び電子制御ユニットの処理能力や不揮発性メモリの種別などに基づいて、予想することが可能である。全データを用いた更新処理の方が更新対象ソフトウェアの更新完了までの予想時間が少ない場合は(ステップS1002、全データ)、ステップS1003に処理が進み、差分データを用いた更新処理の方が更新対象ソフトウェアの更新完了までの予想時間が少ない場合は(ステップS1002、差分データ)、ステップS1004に処理が進む。
【0066】
(ステップS1003)
制御部17は、更新対象ソフトウェアの最新バージョンの全データを少なくとも含むパッケージ(すなわち、全データパッケージ)を配信パッケージとして決定する。配信パッケージが決定されると、本第2ECU向け配信パッケージ決定処理が終了する。
【0067】
(ステップS1004)
制御部17は、更新対象ソフトウェアに関するバージョン間の差分データを少なくとも含むパッケージ(すなわち、差分データパッケージ)を配信パッケージとして決定する。配信パッケージが決定されると、本第2ECU向け配信パッケージ決定処理が終了する。
【0068】
ここで、
図6、
図7A、
図7B、及び
図12を参照して、第2ECU向け配信パッケージ決定処理の具体例を説明する。なお、所定サイズは、550MBであるものとする。
図12の(a)では、現バージョン2.0の第2電子制御ユニットECU-Eのソフトウェアを最新バージョンの3.0(
図6を参照)にアップグレードするために必要な全データ=600MB(
図7Bを参照)が所定サイズを超える。よって、センタ10は、ダウンロード要求の応答として、サイズが190MBである差分データパッケージ5.0(
図7Aを参照)を配信パッケージとしてOTAマスタ30に送信する。
図12の(b)では、現バージョン3.0の第2電子制御ユニットECU-Dのソフトウェアを最新バージョンの5.0(
図6を参照)にアップグレードするために必要な全データ=540MB(
図7Bを参照)が所定サイズ以下である。ここで、この例では、差分データでバージョンを3.0→4.0→5.0と段階的に更新させてゆく方が、全データで一気に3.0→5.0と更新させるよりも時間が掛からないと想定されている。よって、この想定においては、センタ10は、ダウンロード要求の応答として、差分データパッケージ5.0及び6.0(
図7Aを参照)を配信パッケージとしてOTAマスタ30に送信する。
図12の(c)では、現バージョン1.0の第2電子制御ユニットECU-Dのソフトウェアを最新バージョンの5.0にアップグレードするために必要な全データ=540MBが所定サイズ以下である。ここで、この例では、全データで一気に1.0→5.0と更新させる方が、差分データでバージョンを1.0→2.0→3.0→4.0→5.0と段階的に更新させてゆくよりも時間が掛からないと想定されている。よって、この想定においては、センタ10は、ダウンロード要求の応答として、第2電子制御ユニットECU-Dのソフトウェアの最新バージョン5.0の全データパッケージ(
図7Bを参照)を、配信パッケージとしてOTAマスタ30に送信する。
【0069】
なお、上記実施形態では、ステップS805において、更新対象ソフトウェアを有する電子制御ユニット(ECU)が、第1電子制御ユニット及び第2電子制御ユニットのいずれか一方であるように説明した。しかし、第1電子制御ユニットのソフトウェアと第2電子制御ユニットのソフトウェアとが同時に更新対象となる場合もあり得る。このような場合には、第1ECU向け配信パッケージ決定処理(
図9)と第2ECU向け配信パッケージ決定処理(
図10)とを並列的に実施して、それぞれ抽出したパッケージを1つ配信パッケージとして決定すればよい。
【0070】
図13は、OTAマスタ30の各構成が実行するソフトウェア更新制御処理の一例を説明するフローチャートである。この
図13に示すソフトウェア更新制御処理は、例えば、車両の電源ONを契機として実行される。
【0071】
(ステップS1301)
通信部38は、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かの確認要求を、センタ10に送信する。この確認要求には、車両IDと、電子制御ユニット50a~50dのソフトウェアの現バージョンとが、含まれる。確認要求がセンタ10に送信されると、ステップS1302に処理が進む。
【0072】
(ステップS1302)
通信部38は、センタ10から更新データの確認要求に対する確認結果を受信する。確認結果が受信されると、ステップS1303に処理が進む。
【0073】
(ステップS1303)
制御部39は、通信部38が受信した更新データの確認要求に対する確認結果に基づいて、電子制御ユニット50a~50dのうち少なくとも1つに対するソフトウェアの更新データがあるか否かを判断する。ソフトウェアの更新データが少なくとも1つある場合は(ステップS1303、はい)、ステップS1304に処理が進み、ソフトウェアの更新データが全くない場合は(ステップS1303、いいえ)、本ソフトウェア更新制御処理が終了する。
【0074】
(ステップS1304)
制御部39は、更新データのダウンロードを行う。より詳細には、通信部38がセンタ10に更新データを含む配信パッケージのダウンロード要求を送信し、通信部38がダウンロード要求に応答してセンタ10から送信される配信パッケージを受信する。通信部38は、受信した配信パッケージを記憶部37に格納する。更新データのダウンロードが行われると、ステップS1305に処理が進む。
【0075】
(ステップS1305)
制御部39は、ターゲット電子制御ユニットに対してインストール処理を実行する。より詳細には、制御部39は、ターゲット電子制御ユニットに配信パッケージに含まれる更新データを転送し、インストールを指示する。ターゲット電子制御ユニットは、OTAマスタ30から受信した更新データをデータ格納領域に書き込む。インストール処理が実行されると、ステップS1306に処理が進む。
【0076】
(ステップS1306)
制御部39は、ターゲット電子制御ユニットに対してアクティベート処理を実行する。より詳細には、制御部39は、更新データをデータ格納領域に書き込んだターゲット電子制御ユニットに対して、更新版のソフトウェアのアクティベートを指示する。ターゲット電子制御ユニットは、電源OFFなどの特定の入力操作が行われたことを契機として、再起動し、更新後のソフトウェアを実行する。アクティベート処理が実行されると、本ソフトウェア更新制御処理が終了する。
【0077】
<効果>
以上のように、本開示の一実施形態に係るネットワークシステムによれば、センタ10は、更新データとして、相互に制御機能の整合を取る必要がある複数の電子制御ユニット(第1電子制御ユニット)の全ソフトウェアに関するバージョン間の差分データを含むパッケージと、電子制御ユニット(第1電子制御ユニット、第2電子制御ユニット)のソフトウェアの最新バージョンの全データを含むパッケージとを、予め記憶している。そして、センタ10は、車両(OTAマスタ30)から受信する車両に搭載された電子制御ユニット50a~50dのソフトウェアの現バージョンと自身が記憶するソフトウェアの最新バージョンとに基づいて、更新が必要なソフトウェアの更新データのパッケージ仕様を動的に変更する。これにより、更新データの配信方法の自由度が向上し、ソフトウェアの更新処理の効率が悪化してしまうことを抑制できる。
【0078】
また、センタ10は、更新が必要なソフトウェアのバージョン差、更新データのデータ量、更新完了までの予想時間などに基づいて、バージョン間の差分データを含むパッケージと最新バージョンの全データを含むパッケージとのいずれを配信パッケージとするかを好適に決定する。よって、ソフトウェアの更新処理の効率が悪化してしまうことを効果的に抑制できる。
【0079】
以上、本開示技術の一実施形態を説明したが、本開示は、センタだけでなく、プロセッサとメモリと記憶装置とを備えたセンタが実行する配信制御方法、配信制御プログラム、あるいは配信制御プログラムを記憶したコンピューター読み取り可能な非一時的な記憶媒体など、として捉えることが可能である。
【産業上の利用可能性】
【0080】
本開示技術は、電子制御ユニットのソフトウェアを更新するためのネットワークシステムに利用できる。
【符号の説明】
【0081】
10 センタ
11、31 CPU
12、32 RAM
13、34 記憶装置
14、36 通信装置
15、37 記憶部
16、38 通信部
17、39 制御部
18 判定部
30 OTAマスタ
33 ROM
35 マイクロコンピューター
50a~50d 電子制御ユニット(ECU)
60a~60d バス
70 表示装置
80 通信モジュール
90 車載ネットワーク
100 ネットワーク