(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】OTAマスタ、センタ、システム、方法、プログラム、及び車両
(51)【国際特許分類】
G06F 8/65 20180101AFI20240925BHJP
B60R 16/02 20060101ALI20240925BHJP
【FI】
G06F8/65
B60R16/02 660U
(21)【出願番号】P 2021024111
(22)【出願日】2021-02-18
【審査請求日】2022-12-08
【前置審査】
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】石川 智康
(72)【発明者】
【氏名】谷森 俊介
【審査官】福西 章人
(56)【参考文献】
【文献】特開2020-027628(JP,A)
【文献】特開2020-144682(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/77
9/44-9/455
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタであって、
1つの格納領域を有する第1種別の不揮発性メモリを搭載した前記電子制御ユニットに向けた更新データと、2つの格納領域を有する第2種別の不揮発性メモリを搭載した前記電子制御ユニットに向けた更新データと、前記更新データの数とを、含む配信パッケージをセンタから受信し、
前記電子制御ユニットに搭載される不揮発性メモリの種別を前記電子制御ユニットに通知し、
前記電子制御ユニットが搭載する不揮発性メモリの種別が前記通知された不揮発性メモリの種別と一致するか否かの判断結果を、前記電子制御ユニットから通知として受信する、通信部を備える、OTAマスタ。
【請求項2】
前記電子制御ユニットが搭載した不揮発性メモリが前記第1種別か前記第2種別かを示す種別情報に基づいて、前記通信部が受信した前記更新データを更新対象となる前記電子制御ユニットに転送する制御部をさらに備える、請求項
1に記載のOTAマスタ。
【請求項3】
前記通信部は、前記種別情報を前記センタから取得する、請求項
2に記載のOTAマスタ。
【請求項4】
前記種別情報を記憶する記憶部をさらに備える、請求項
2又は3に記載のOTAマスタ。
【請求項5】
前記制御部は、前記種別情報に基づいて、前記第2種別の不揮発性メモリを搭載した前記電子制御ユニットの更新データを、前記第1種別の不揮発性メモリを搭載した前記電子制御ユニットの更新データよりも優先させて、更新対象となる前記電子制御ユニットに転送する、請求項
2乃至4のいずれか1項に記載のOTAマスタ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、電子制御ユニットのソフトウェアの更新を制御するOTAマスタなどに関する。
【背景技術】
【0002】
車両には、車両の動作を制御するための複数の電子制御ユニットが搭載されている。電子制御ユニットは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部である不揮発性メモリとを備え、プロセッサが不揮発性メモリに記憶されるソフトウェアを実行することにより電子制御ユニットの制御機能を実現する。各電子制御ユニットが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各電子制御ユニットの機能を改善したり、新たな車両制御機能を追加したりすることができる。
【0003】
電子制御ユニットのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネットなどの通信ネットワークとを無線で接続し、車両のソフトウェアの更新処理を担う装置が、無線通信を介してサーバからソフトウェアをダウンロードし、ダウンロードしたソフトウェアを電子制御ユニットにインストールすることにより、電子制御ユニットのソフトウェア更新や追加を行うOTA(Over The Air)技術が知られている。例えば、特許文献1を参照。
【0004】
電子制御ユニットに搭載される不揮発性メモリの種別として、ソフトウェアなどのデータを格納するための1つの格納領域を有するメモリ(シングルバンクメモリ)と、ソフトウェアなどのデータを格納するための2つの格納領域を有するメモリ(デュアルバンクメモリ)とがあり、電子制御ユニットの仕様などに応じて使い分けられる場合がある。デュアルバンクメモリを搭載した電子制御ユニットは、2つの格納領域に新旧2つのバージョンのデータをそれぞれ格納することができる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
車両に対してソフトウェア更新を行うイベントであるキャンペーンにおいて、シングルバンクメモリを搭載した電子制御ユニットとデュアルバンクメモリを搭載した電子制御ユニットとの両方が、ソフトウェアを更新する対象である電子制御ユニットとなる場合がある。このシングルバンクメモリを搭載した電子制御ユニットと、デュアルバンクメモリを搭載した電子制御ユニットとでは、メモリの構造上、更新を失敗したときのリカバリー方法が異なる。
【0007】
このため、シングルバンクメモリを搭載した電子制御ユニットとデュアルバンクメモリを搭載した電子制御ユニットとが更新対象となる電子制御ユニットとして混在するキャンペーンを車両に適用する場合には、更新対象となる電子制御ユニットのメモリ構造に応じてダウンロード及びインストールを実行しないと、ソフトウェア更新後の電子制御ユニットを正常に起動させるまでに時間が掛かるおそれがある。
【0008】
本開示は、上記課題を鑑みてなされたものであり、シングルバンクメモリ及びデュアルバンクメモリに適応したソフトウェア更新を実行することができるOTAマスタなどを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本開示技術の一態様は、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタであって、1つの格納領域を有する第1種別の不揮発性メモリを搭載した電子制御ユニットに向けた更新データと、2つの格納領域を有する第2種別の不揮発性メモリを搭載した電子制御ユニットに向けた更新データとを、含む配信パッケージをセンタから受信する通信部を備える、OTAマスタである。
【発明の効果】
【0010】
本開示によれば、シングルバンクメモリ及びデュアルバンクメモリに適応したソフトウェア更新を実行することができるOTAマスタなどを提供できる。
【図面の簡単な説明】
【0011】
【
図1】実施形態に係るネットワークシステムの全体構成を示すブロック図
【
図4A】電子制御ユニットの概略構成の一例を示すブロック図
【
図4B】電子制御ユニットの概略構成の一例を示すブロック図
【
図8】センタ及びOTAマスタが行う具体例1によるダウンロード処理手順のフローチャート
【
図9】センタ及びOTAマスタが行う具体例2によるダウンロード処理手順のフローチャート
【
図10】OTAマスタ及びターゲット電子制御ユニットが行う具体例3によるインストール処理手順のフローチャート
【
図11A】OTAマスタ及びターゲット電子制御ユニットが行う具体例4によるインストール処理手順のフローチャート
【
図11B】OTAマスタ及びターゲット電子制御ユニットが行う具体例4によるインストール処理手順のフローチャート
【
図12】センタ、OTAマスタ、及びターゲット電子制御ユニットが行う具体例5によるダウンロード/インストール処理手順のフローチャート
【発明を実施するための形態】
【0012】
本開示の電子制御ユニットのプログラムを更新するためのネットワークシステムでは、センタとOTAマスタとの間で、シングルバンクメモリ搭載の電子制御ユニット向け更新データとデュアルバンクメモリ搭載の電子制御ユニット向け更新データとが混在した配信パッケージを送受信する。これにより、例えば、センタが配信パッケージを生成する際にターゲット電子制御ユニットのメモリ種別と更新データとの整合性を確認したり、デュアルバンクメモリ搭載のターゲット電子制御ユニットに対するインストールをシングルバンクメモリ搭載のターゲット電子制御ユニットに対するインストールよりも優先して実行したり、することができる。
以下、本開示の一実施形態について、図面を参照しながら詳細に説明する。
【0013】
<実施形態>
[構成]
図1は、本開示の一実施形態に係るネットワークシステムの全体構成を示すブロック図である。
図1に示すネットワークシステムは、車両に搭載された複数の電子制御ユニット40a~40dのソフトウェアを更新するためのシステムであり、車両外にあるセンタ10と、車両内に構築される車載ネットワーク20と、を備える。
【0014】
(1)センタ
センタ10は、ネットワーク70を介して、車載ネットワーク20が備える後述のOTAマスタ30と通信可能であり、OTAマスタ30に接続された複数の電子制御ユニット40a~40dのソフトウェア更新を管理することができる。このセンタ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は、ネットワーク70を介してOTAマスタ30と通信を行うための装置である。
【0016】
(2)車載ネットワーク
車載ネットワーク20は、OTAマスタ30と、複数の電子制御ユニット40a~40dと、通信モジュール50と、を備える。OTAマスタ30と通信モジュール50とは、バス60aを介して接続されている。OTAマスタ30と電子制御ユニット40a及び40bとは、バス60bを介して接続されている。OTAマスタ30と電子制御ユニット40c及び40dとは、バス60cを介して接続されている。
【0017】
OTAマスタ30は、通信モジュール50を介してセンタ10と無線による通信が可能である。このOTAマスタ30は、OTA状態を管理し、ソフトウェア更新シーケンスを制御して更新対象となる電子制御ユニット(以下「ターゲット電子制御ユニット」という)のソフトウェア更新を実施する機能を有する装置であり、センタ10から取得した更新データに基づいて、電子制御ユニット40a~40dのうちターゲット電子制御ユニットのソフトウェア更新を制御する。OTAマスタ30は、セントラルゲートウェイ(CGW)と称される場合もある。
【0018】
複数の電子制御ユニット40a~40dは、車両の各部の動作を制御するための装置(ECU:Electronic Control Unit)である。
図1においては、4つの電子制御ユニット40a~40dを例示したが、電子制御ユニットの数は特に限定されない。例えば、電子制御ユニット40a~40dのソフトウェアの更新処理時に更新データがあることの表示、車両のユーザや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、及びソフトウェア更新の結果の表示など、各種の表示を行うための表示装置(HMI)が、OTAマスタ30に接続されてもよい。表示装置としては、カーナビゲーションシステムなどを用いることが可能である。また、電子制御ユニットをOTAマスタ30に接続するバスの数も特に限定されない。例えば、上述の表示装置が、バス60a~60c以外のバスでOTAマスタ30に接続されてもよい。
【0019】
通信モジュール50は、センタ10と車両との通信を制御する機能を持ったユニットであり、車載ネットワーク20をセンタ10に接続するための通信機器である。この通信モジュール50は、OTAマスタ30に含まれて構成されてもよい。
【0020】
図3は、
図1におけるOTAマスタ30の概略構成を示すブロック図である。
図3で示すように、OTAマスタ30は、CPU31と、RAM32と、ROM(Read-Only Memory)33と、記憶装置34と、通信装置36と、を備える。CPU31、RAM32、ROM33、及び記憶装置34は、マイクロコンピューター35を構成する。OTAマスタ30において、CPU31は、ROM33から読み出したプログラムを、RAM32を作業領域として用いて実行することにより、ソフトウェア更新に関する所定の処理を実行する。通信装置36は、
図1に示したバス60a~60cを介して、通信モジュール50及び電子制御ユニット40a~40dと通信を行うための装置である。
【0021】
図4A及び
図4Bは、電子制御ユニットの概略構成の一例をそれぞれ示すブロック図である。
【0022】
図4Aに示す電子制御ユニット40aは、CPU41と、RAM42と、不揮発性メモリ43aと、通信装置44と、を備える。CPU41は、不揮発性メモリ43aから読み出したプログラムを、RAM42を作業領域として用いて実行することにより、電子制御ユニット40aの機能を実現する。不揮発性メモリ43aは、ソフトウェアを格納するための1つの格納領域45を有するメモリ(シングルバンクメモリ)である。以下、この1つの格納領域45を有する構成の不揮発性メモリ43aのメモリ種別を「第1種別」という。格納領域45には、電子制御ユニット40aの機能を実現するためのソフトウェアの他に、バージョン情報やパラメータデータ、起動用のブートプログラム、ソフトウェア更新用のプログラムなどが格納される場合がある。通信装置44は、OTAマスタ30や車載ネットワーク20に接続される他の電子制御ユニット40b~40dとの通信を行うための装置である。
【0023】
図4Bに示す電子制御ユニット40bは、電子制御ユニット40aと同様に、CPU41と、RAM42と、不揮発性メモリ43bと、通信装置44と、を備える。ただし、電子制御ユニット40bに搭載される不揮発性メモリ43bは、プログラムを格納するための2つの格納領域46a及び46bを有するメモリ(デュアルバンクメモリ)である。以下、この2つの格納領域46a及び46bを有する構成の不揮発性メモリ43bの種別を「第2種別」という。格納領域46a及び46bには、電子制御ユニット40bの機能を実現するためのソフトウェアの他に、バージョン情報やパラメータデータ、起動用のブートプログラム、ソフトウェア更新用のプログラムなどが格納される場合がある。電子制御ユニット40bのCPU41は、不揮発性メモリ43bが有する2つの格納領域46a及び46bのうち、いずれか一方を読み出し対象の格納領域(運用面)とし、読み出し対象の格納領域に格納されるソフトウェアを実行する。読み出し対象でない他方の格納領域(非運用面)には、読み出し対象の格納領域(運用面)のプログラムを実行中に、バックグラウンドで更新データに基づく更新ソフトウェア(更新版のプログラム)のインストール(書き込み)が可能である。ソフトウェア更新処理におけるアクティベート(更新ソフトウェアの有効化)時には、電子制御ユニット40bのCPU41によってプログラムの読み出し対象の格納領域を切り替えることにより、更新ソフトウェアをアクティベートすることができる。
【0024】
具体例として、格納領域46aに現行のソフトウェアが格納されており、格納領域46bに更新ソフトウェアがインストールされた場合を想定する。OTAマスタ30から更新ソフトウェアのアクティベートが指示されると、例えば、電子制御ユニット40bのCPU41の読み出し開始アドレスを、格納領域46aの先頭アドレスから格納領域46bの先頭アドレスに切り替えることにより、このCPU41の読み出し対象(運用面)の格納領域を切り替え、格納領域46bにインストールされた更新ソフトウェアを実行することができる。なお、本開示においては、1つの格納領域を擬似的に2面に区画し、一方の面に格納されたプログラムを実行中に他方の面にプログラムの書き込みを可能にした「1面サスペンドメモリ」と呼ばれる構成も、第2種別のメモリに分類されるものとする。
【0025】
図5は、
図2に示したセンタ10の機能ブロック図である。
図5で示すセンタ10は、記憶部16と、通信部17と、制御部18と、を備える。記憶部16は、
図2に示した記憶装置13によって実現される。通信部17及び制御部18は、
図2に示したCPU11がRAM12を用いて記憶装置13に記憶されるプログラムを実行することによって実現される。
【0026】
記憶部16は、車両に搭載された1つ以上の電子制御ユニットのソフトウェア更新処理に関する情報を記憶する。ソフトウェア更新処理に関する情報として、記憶部16は、車両を識別する車両識別情報(車両ID)毎に、電子制御ユニットで利用可能なソフトウェアを示す情報を関連付けた更新管理情報と、電子制御ユニットのソフトウェアの更新データと、を記憶する。電子制御ユニットで利用可能なソフトウェアを示す情報として、例えば、複数の電子制御ユニットの各ソフトウェアの最新のバージョン情報の組み合わせが定義される。
【0027】
通信部17は、OTAマスタ30からソフトウェアの更新確認要求を受信することが可能である。更新確認要求は、例えば、車両において電源又はイグニッション(IGN)がオンされたときに、OTAマスタ30からセンタ10へと送信される情報であって、電子制御ユニットの更新データがあるか否かの確認をセンタ10に要求するための情報である。また、通信部17は、OTAマスタ30からの配信パッケージの送信要求(ダウンロード要求)を受信することが可能である。通信部17は、配信パッケージのダウンロード要求を受信すると、後述の制御部18で生成される電子制御ユニットのソフトウェアの更新データを含む配信パッケージをOTAマスタ30に送信する。
【0028】
制御部18は、通信部17がOTAマスタ30から更新確認要求を受信すると、記憶部16に記憶されている更新管理情報に基づいて、更新確認要求に含まれる車両IDで特定される車両に搭載された電子制御ユニットについてソフトウェアの更新データがあるか否かを判定する。制御部18は、電子制御ユニットのソフトウェアの更新データがあると判定した場合、OTAマスタ30から配信パッケージのダウンロード要求を受信すると、記憶部16に記憶されている該当の更新データを含む配信パッケージを生成する。
【0029】
この制御部18は、第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載した電子制御ユニットに向けた更新データだけの配信パッケージと、第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載した電子制御ユニットに向けた更新データだけの配信パッケージとを、個別に生成してもよい。また、制御部18は、第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載した電子制御ユニットに向けた更新データと、第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載した電子制御ユニットに向けた更新データとを、含んだ配信パッケージを生成してもよい。後述する種別情報が記憶部16に予め格納されていれば、制御部18は、種別の異なる複数の更新データが混在する配信パッケージを意図的に生成することが可能である。このような種別の異なる複数の更新データが混在する配信パッケージを生成することによって、第1種別の不揮発性メモリを搭載した電子制御ユニットに向けた更新データと、第2種別の不揮発性メモリを搭載した電子制御ユニットに向けた更新データとを、含む配信パッケージをセンタ10(の通信部17)からOTAマスタ30に向けて送信することができる。
【0030】
図6は、
図2に示したOTAマスタ30の機能ブロック図である。
図6に示すOTAマスタ30は、記憶部37と、通信部38と、制御部39と、を備える。記憶部37は、
図3に示した記憶装置34によって実現される。通信部38及び制御部39は、
図3に示したCPU31がRAM32を用いてROM33に記憶されるプログラムを実行することによって実現される。
【0031】
記憶部37は、複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリの種別に関する情報(以下「種別情報」という)を記憶する。
図7に、種別情報の一例を示す。
図7に例示した種別情報では、電子制御ユニットを識別するための番号であるECU_IDと、その電子制御ユニットに搭載される不揮発性メモリの種別(第1種別又は第2種別)とが、対応付けられている。
【0032】
この種別情報は、車載ネットワーク20を構成する電子制御ユニットの仕様に基づいて予め作成し、車両の製造時に記憶部37に格納してもよい。又は、種別情報は、ソフトウェアの更新処理時に、後述する通信部38が、ターゲット電子制御ユニットから不揮発性メモリの種別を車載ネットワーク20内の通信によって取得してもよい。ソフトウェアの更新処理を実施する度にターゲット電子制御ユニットから不揮発性メモリの種別を取得するようにすれば、OTAマスタ30が車両に搭載された複数の電子制御ユニットに搭載された不揮発性メモリの種別を一元管理することができ、電子制御ユニットの交換などによって不揮発性メモリの種別が変更になった場合でも適切に対応することができる。あるいは、種別情報は、センタ10からネットワーク70を介した通信によって取得してもよい。この場合には、車両に搭載された電子制御ユニットの不揮発性メモリの種別がセンタ10によって予め管理されている。
【0033】
通信部38は、例えば、車両の電源又はイグニッション(IGN)がオンされたことを契機として、ソフトウェアの更新確認要求をセンタ10に送信する。更新確認要求は、車両を識別するための車両IDと、車載ネットワーク20に接続される電子制御ユニット40a~40dのソフトウェアのバージョンとを含む。車両ID及び電子制御ユニット40a~40dのソフトウェアのバージョンは、センタ10が車両ID毎に保持する最新のソフトウェアのバージョンとの比較により、電子制御ユニットのソフトウェアの更新データがあるか否かを判定するために用いられる。また、通信部38は、更新確認要求に対する応答としてセンタ10から更新データの有無を示す通知を受信する。電子制御ユニットのソフトウェアの更新データがある場合、通信部38は、配信パッケージのダウンロード要求をセンタ10に送信し、センタ10から送信される配信パッケージを受信する。配信パッケージは、更新データの他に、更新データの真正性を検証するための検証用データや、更新データの数、インストール順、種別情報、ソフトウェア更新時に用いる各種の制御情報などを含んでいてもよい。また、ソフトウェアの更新処理時に種別情報をターゲット電子制御ユニットから取得する場合は、通信部38がターゲット電子制御ユニットとの通信により種別情報を取得する。
【0034】
制御部39は、通信部38が受信した更新確認要求に対するセンタ10からの応答に基づいて、電子制御ユニットのソフトウェアの更新データがあるか否かを判定する。また、制御部39は、通信部38がセンタ10から受信して記憶部37に格納した配信パッケージの真正性を検証する。また、制御部39は、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データに基づく更新ソフトウェアをインストールさせる。インストールの完了後、制御部39は、ターゲット電子制御ユニットに対して、インストールした更新ソフトウェアを有効とするように指示をする。
【0035】
ここで、電子制御ユニットの不揮発性メモリが第1種別(シングルバンクメモリ)である場合は、インストールとアクティベートとがひと続きに行われるため、インストールの実行前に、ソフトウェア更新に対する車両のユーザ又は管理者の承諾を要求する承諾要求処理が行われる。電子制御ユニットの不揮発性メモリが第2種別(デュアルバンクメモリ)である場合は、少なくとも、インストールの実行後、かつ、アクティベートの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。なお、電子制御ユニットの不揮発性メモリが第2種別のメモリである場合には、インストール実行前のソフトウェアの更新に対する承諾要求処理は、行われてもよいし、省略されてもよい。
【0036】
制御部39は、承諾要求処理において、ソフトウェア更新に対して承諾が必要である旨の通知やソフトウェア更新を承諾した旨の入力を促す通知を、出力装置に出力させる。出力装置としては、表示による通知を行う表示装置や音声による通知を行う音声出力装置などを利用できる。例えば、承諾要求処理において、表示装置を出力装置として用いる場合、制御部39は、ソフトウェア更新の承諾を求めるための承諾要求画面を表示装置に表示させ、ユーザ又は管理者が承諾した場合に承諾ボタンを押下するなどの特定の入力操作を促す通知を表示装置に表示させることができる。また、制御部39は、承諾要求処理において、電子制御ユニットのソフトウェアの更新データがあることを通知する文言やアイコンなどを表示装置に表示させたり、ソフトウェア更新処理の実行中における制限事項などを表示装置に表示させたり、することができる。
【0037】
制御部39は、種別情報に基づいて、ターゲット電子制御ユニットのメモリ種別に応じたタイミングで承諾要求処理を行う。そして、制御部39は、ユーザ又は管理者から承諾した旨の入力を受け付けると、上述したインストール及びアクティベートの制御処理を実行し、ターゲット電子制御ユニットのソフトウェアを更新する。
【0038】
ソフトウェアの更新処理は、OTAマスタ30がセンタ10から更新データをダウンロードするフェーズ(ダウンロードフェーズ)、ダウンロードした更新データをOTAマスタ30がターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットの格納領域に更新データに基づく更新ソフトウェアをインストールするフェーズ(インストールフェーズ)、及びターゲット電子制御ユニットがインストールした更新ソフトウェアを有効化するフェーズ(アクティベートフェーズ)からなる。
【0039】
ダウンロードは、OTAマスタ30が、センタ10から配信パッケージによって送信された電子制御ユニットのソフトウェアを更新するための更新データを、受信して記憶部37に記憶する処理である。ダウンロードによる更新データの受信については、更新を失敗する確率が比較的低い第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載した電子制御ユニットに向けた更新データを優先して受信するようにしてもよいし、第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載した電子制御ユニットに向けた更新データと第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載した電子制御ユニットに向けた更新データとを優劣なく受信するようにしてもよい。ダウンロードフェーズでは、ダウンロードの実行だけでなく、ダウンロードの実行可否判断、更新データの検証など、ダウンロードに関する一連の処理の制御を含む。
【0040】
センタ10からOTAマスタ30に送信される更新データは、電子制御ユニットの更新ソフトウェア、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェア又は圧縮データを分割した分割データのいずれを含んでいてもよい。また、更新データは、ターゲット電子制御ユニットの番号(ECU_ID)と、更新前の電子制御ユニットのソフトウェアを識別するための番号(ECU_Software_ID)を含んでいてもよい。更新データは、上述した配信パッケージとしてダウンロードされるが、配信パッケージには、単一又は複数の電子制御ユニットの更新データが含まれる。
【0041】
インストールは、OTAマスタ30が、センタ10からダウンロードした更新データに基づいて、ターゲット電子制御ユニットに更新ソフトウェア(更新版のプログラム)を書き込む処理である。インストールフェーズでは、インストールの実行だけでなく、インストールの実行可否判断、更新データの転送及び更新ソフトウェアの検証など、インストールに関する一連の処理の制御を含む。
【0042】
更新データが更新ソフトウェアそのものを含む場合は、インストールフェーズにおいて、OTAマスタ30が更新データ(更新ソフトウェア)をターゲット電子制御ユニットに転送する。また、更新データが更新ソフトウェアの圧縮データ、又は差分データ、あるいは分割データを含む場合は、OTAマスタ30がターゲット電子制御ユニットに更新データを転送し、ターゲット電子制御ユニットが更新データから更新ソフトウェアを生成してもよいし、OTAマスタ30が更新データから更新ソフトウェアを生成してから、更新ソフトウェアをターゲット電子制御ユニットに転送してもよい。ここで、更新ソフトウェアの生成は、圧縮データの解凍、差分データ又は分割データの組み付け(統合)により行うことができる。
【0043】
更新ソフトウェアのインストールは、OTAマスタ30からのインストール要求に基づいて、ターゲット電子制御ユニットが行うことができる。あるいは、更新データを受信したターゲット電子制御ユニットが、OTAマスタ30からの明示の指示を受けることなく、自律的にインストールを行ってもよい。
【0044】
アクティベートは、ターゲット電子制御ユニットが、インストールした更新ソフトウェアを有効化(アクティベート)する処理である。アクティベートフェーズでは、アクティベートの実行だけでなく、アクティベートの実行可否判断、実行結果の検証など、アクティベートに関する一連の制御を含む。
【0045】
更新ソフトウェアのアクティベートは、OTAマスタ30からのアクティベート要求に基づいて、ターゲット電子制御ユニットが行うことができる。あるいは、更新データを受信したターゲット電子制御ユニットが、OTAマスタ30からの明示の指示を受けることなく、インストールの完了後に自律的にアクティベートを行ってもよい。
【0046】
なお、ソフトウェアの更新処理は、複数の電子制御ユニットのそれぞれに対して、連続的あるいは並列的に行うことができる。
【0047】
また、本明細書における「ソフトウェアの更新処理」は、ダウンロード、インストール、及びアクティベートの全てを連続して行う処理だけでなく、ダウンロード、インストール、及びアクティベートのうちの一部のみを行う処理も含む。
【0048】
[処理]
次に、
図8、
図9、
図10、
図11A、
図11B、及び
図12をさらに参照して、本実施形態に係るネットワークシステムにおいて実行されるソフトウェアの更新処理に関する具体例をいくつか説明する。
【0049】
(1)具体例1
図8は、センタ10及びOTAマスタ30が行う具体例1によるダウンロードの処理手順を説明するフローチャートである。この具体例1は、センタ10が、複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリのメモリ種別を管理している場合、すなわち記憶部16が種別情報を記憶している場合の例である。なお、OTAマスタ30の記憶部37においても、同じ種別情報を記憶していてもよい。
図8に示す処理は、センタ10が、OTAマスタ30から配信パッケージのダウンロード要求を受信することによって開始される。
【0050】
(ステップS801)
センタ10は、ソフトウェアの更新対象となるターゲット電子制御ユニットの更新データを含む配信パッケージを生成する。このとき、センタ10は、記憶部16が記憶している種別情報を参照して、ターゲット電子制御ユニットが搭載する不揮発性メモリのメモリ種別を属性として更新データに付した配信パッケージを生成する。配信パッケージが生成されると、ステップS802に処理が進む。
【0051】
(ステップS802)
OTAマスタ30は、センタ10から送信される配信パッケージを受信する。配信パッケージが受信されると、ステップS803に処理が進む。
【0052】
(ステップS803)
OTAマスタ30は、センタ10から受信した配信パッケージに含まれる更新データ及び更新データに属性として付されたメモリ種別を、記憶部37に記憶する。これにより、ダウンロード処理が終了する。
【0053】
具体例1のように、センタ10が種別情報を管理している場合には、配信パッケージを生成する際に、メモリ種別に関するターゲット電子制御ユニットと更新データとの整合性を確認することができる。このため、ダウンロード後にOTAマスタ30において整合性がないことが判明するといった事態を回避することができる。よって、配信パッケージの再送信の発生を防止し、センタ10とOTAマスタ30との間の通信量(通信負荷)の増加を抑制することができる。
【0054】
(2)具体例2
図9は、センタ10及びOTAマスタ30が行う具体例2によるダウンロードの処理手順を説明するフローチャートである。この具体例2は、OTAマスタ30が、複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリのメモリ種別を管理している場合、すなわちセンタ10の記憶部16は種別情報を記憶していない場合の例である。
図9に示す処理は、センタ10が、OTAマスタ30から配信パッケージのダウンロード要求を受信することによって開始される。
【0055】
(ステップS901)
センタ10は、ソフトウェアの更新対象となるターゲット電子制御ユニットの更新データを含む配信パッケージを生成する。このとき、センタ10は、第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載した電子制御ユニットに向けた更新データと、第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載した電子制御ユニットに向けた更新データとが、配信パッケージに含まれているか否かを把握していなくてもよい。配信パッケージが生成されると、ステップS902に処理が進む。
【0056】
(ステップS902)
OTAマスタ30は、センタ10から送信される配信パッケージを受信する。配信パッケージが受信されると、ステップS903に処理が進む。
【0057】
(ステップS903)
OTAマスタ30は、センタ10から受信した配信パッケージに含まれる更新データを記憶部37に記憶する。これにより、ダウンロード処理が終了する。
【0058】
具体例2では、OTAマスタ30が種別情報を管理しているので、電子制御ユニットの交換などによって不揮発性メモリのメモリ種別が変更になった場合には、車両(車載ネットワーク20)内でOTAマスタ30が管理する種別情報を素早く更新することが可能となる。
【0059】
(3)具体例3
図10は、OTAマスタ30及びターゲット電子制御ユニットが行う具体例3によるインストールの処理手順を説明するフローチャートである。この具体例3は、OTAマスタ30が、ターゲット電子制御ユニットに搭載される不揮発性メモリのメモリ種別に従って、更新データのインストール順序を制御する場合の例である。この場合、複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリのメモリ種別は、センタ10及びOTAマスタ30のいずれで管理されていてもよい。
図10に示す処理は、更新データのダウンロードが完了した後、かつ、所定の条件(インストール実行可、更新ソフトウェアの検証など)が満足されることによって開始される。
【0060】
(ステップS1001)
OTAマスタ30は、ターゲット電子制御ユニット(ターゲットECU)に搭載される不揮発性メモリのメモリ種別(第1種別/第2種別)を取得する。このメモリ種別は、OTAマスタ30が管理している場合には記憶部37に記憶されている種別情報を参照することによって、センタ10が管理している場合には配信パッケージに含めて送信されてきたメモリ種別の情報を参照することによって、取得することができる。ターゲット電子制御ユニットのメモリ種別が取得されると、ステップS1002に処理が進む。
【0061】
(ステップS1002)
OTAマスタ30及び第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載したターゲット電子制御ユニット(ターゲットECU)は、更新データに基づいて格納領域に更新ソフトウェアを書き込む処理であるインストールを実行する。このインストールは、第2種別の不揮発性メモリを搭載したターゲット電子制御ユニットの全てについて、連続的又は並列的に実行される(第1処理)。全ての第2種別の不揮発性メモリを搭載したターゲット電子制御ユニットに対するインストールの実行が終了すると、ステップS1003に処理が進む。
【0062】
(ステップS1003)
OTAマスタ30及び第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載したターゲット電子制御ユニット(ターゲットECU)は、更新データに基づいて格納領域に更新ソフトウェアを書き込む処理であるインストールを実行する。このインストールは、第1種別の不揮発性メモリを搭載したターゲット電子制御ユニットの全てについて、連続的又は並列的に実行される(第2処理)。全ての第1種別の不揮発性メモリを搭載したターゲット電子制御ユニットに対するインストールの実行が終了すると、全てのターゲット電子制御ユニットに対するインストールが完了し、インストール処理が終了する。
【0063】
具体例3では、更新中に停止制御が不要なデュアルバンクメモリを搭載したターゲット電子制御ユニットに対するインストールを、更新中に停止制御が必要なシングルバンクメモリを搭載したターゲット電子制御ユニットに対するインストールよりも優先して実行する。この処理により、更新ソフトウェアの書き込み状況をリアルタイムに把握できるOTAマスタ30は、デュアルバンクメモリを搭載したターゲット電子制御ユニットから先行して格納領域に更新ソフトウェアを書き込んでゆき、その書き込みが完了しそうなタイミングでシングルバンクメモリを搭載したターゲット電子制御ユニットの格納領域への更新ソフトウェアの書き込みを開始することが可能となる。これにより、車両(車載ネットワーク20)内での通信負荷を低減でき、全ての更新ソフトウェアの書き込み完了までに車両の制御を停止させなければならない時間を短縮することができる。
【0064】
(4)具体例4
図11A及び
図11Bは、OTAマスタ30及びターゲット電子制御ユニットが行う具体例4によるインストールの処理手順を説明するフローチャートである。
図11Aの処理と
図11Bの処理とは、結合子Xで結ばれる。この具体例4は、ターゲット電子制御ユニットに搭載される不揮発性メモリのメモリ種別と種別情報で管理するメモリ種別との整合を図りつつ、OTAマスタ30が、ターゲット電子制御ユニットに搭載される不揮発性メモリのメモリ種別に従って、更新データのインストール順序を制御する場合の例である。この場合、複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリのメモリ種別は、センタ10及びOTAマスタ30のいずれで管理されていてもよい。
図11A及び
図11Bに示す処理は、更新データのダウンロードが完了した後、かつ、所定の条件(インストール実行可、更新ソフトウェアの検証など)が満足されることによって開始される。
【0065】
(ステップS1101)
OTAマスタ30は、ターゲット電子制御ユニット(ターゲットECU)に搭載される不揮発性メモリのメモリ種別(第1種別/第2種別)を取得する。このメモリ種別は、OTAマスタ30が管理している場合には記憶部37に記憶されている種別情報を参照することによって、センタ10が管理している場合には配信パッケージに含めて送信されてきたメモリ種別の情報を参照することによって、取得することができる。ターゲット電子制御ユニットのメモリ種別が取得されると、ステップS1102に処理が進む。
【0066】
(ステップS1102)
OTAマスタ30及び第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載したターゲット電子制御ユニット(ターゲットECU)は、更新データに基づいて格納領域に更新ソフトウェアを書き込む処理であるインストールを実行する。このとき、OTAマスタ30は、ステップS1101で取得したメモリ種別を、インストールを実行したターゲット電子制御ユニットに通知する。第2種別の不揮発性メモリを搭載したターゲット電子制御ユニットに対するインストールの実行及びメモリ種別の通知が行われると、ステップS1103に処理が進む。
【0067】
(ステップS1103)
インストールを実行したターゲット電子制御ユニットは、自ら搭載する不揮発性メモリのメモリ種別がOTAマスタ30から通知されるメモリ種別と一致するか否かを判断する。すなわち、インストールを実行したターゲット電子制御ユニットは、OTAマスタ30から通知されるメモリ種別が第2種別であるか否かを判断する。双方のメモリ種別が一致する場合は(ステップS1103、はい)、ステップS1102に処理が進み、双方のメモリ種別が一致しない場合は(ステップS1103、いいえ)、ステップS1104に処理が進む。
【0068】
(ステップS1104)
第2種別の不揮発性メモリを搭載したターゲット電子制御ユニットは、OTAマスタ30から通知されるメモリ種別が自ら搭載する不揮発性メモリのメモリ種別と一致しないことを、OTAマスタ30に通知する。複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリのメモリ種別をセンタ10が管理している場合、この通知はOTAマスタ30からセンタ10へ送信される。メモリ種別の不一致が通知されると、ステップS1102に処理が進む。
【0069】
上述したステップS1102乃至S1104による第1処理は、第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載したターゲット電子制御ユニットの全てについて、連続的又は並列的に実行される。
【0070】
(ステップS1105)
OTAマスタ30及び第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載したターゲット電子制御ユニット(ターゲットECU)は、更新データに基づいて格納領域に更新ソフトウェアを書き込む処理であるインストールを実行する。このとき、OTAマスタ30は、ステップS1101で取得したメモリ種別を、インストールを実行したターゲット電子制御ユニットに通知する。第1種別の不揮発性メモリを搭載したターゲット電子制御ユニットに対するインストールの実行及びメモリ種別の通知が行われると、ステップS1106に処理が進む。
【0071】
(ステップS1106)
インストールを実行したターゲット電子制御ユニットは、自ら搭載する不揮発性メモリのメモリ種別がOTAマスタ30から通知されるメモリ種別と一致するか否かを判断する。すなわち、インストールを実行したターゲット電子制御ユニットは、OTAマスタ30から通知されるメモリ種別が第1種別であるか否かを判断する。双方のメモリ種別が一致する場合は(ステップS1106、はい)、ステップS1105に処理が進み、双方のメモリ種別が一致しない場合は(ステップS1106、いいえ)、ステップS1107に処理が進む。
【0072】
(ステップS1107)
第1種別の不揮発性メモリを搭載したターゲット電子制御ユニットは、OTAマスタ30から通知されるメモリ種別が自ら搭載する不揮発性メモリのメモリ種別と一致しないことを、OTAマスタ30に通知する。複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリのメモリ種別をセンタ10が管理している場合、この通知はOTAマスタ30からセンタ10へ送信される。メモリ種別の不一致が通知されると、ステップS1105に処理が進む。
【0073】
上述したステップS1105乃至S1107による第2処理は、第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載したターゲット電子制御ユニットの全てについて、連続的又は並列的に実行される。
【0074】
全ての第2種別の不揮発性メモリを搭載したターゲット電子制御ユニットに対するインストールの実行(第1処理)が完了し、及び全ての第1種別の不揮発性メモリを搭載したターゲット電子制御ユニットに対するインストールの実行(第2処理)が完了すると、インストール処理が終了する。
【0075】
具体例4では、更新中に停止制御が不要なデュアルバンクメモリを搭載したターゲット電子制御ユニットに対するインストールを、更新中に停止制御が必要なシングルバンクメモリを搭載したターゲット電子制御ユニットに対するインストールよりも優先して実行すること(具体例3)に加えて、ターゲット電子制御ユニットに搭載される不揮発性メモリのメモリ種別と種別情報で管理するメモリ種別との整合をチェックする。この処理により、センタ10又はOTAマスタ30が管理する種別情報のメモリ種別がターゲット電子制御ユニットの実態と乖離していた場合には、実態に合った更新ソフトウェアをあらためてインストールすることが可能となる。また、必要に応じて、センタ10又はOTAマスタ30が管理する種別情報のメモリ種別を書き換えて更新することができる。
【0076】
(5)具体例5
図12は、センタ10、OTAマスタ30、及びターゲット電子制御ユニットが行う具体例5によるダウンロード及びインストールの処理手順を説明するフローチャートである。この具体例5は、第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載したターゲット電子制御ユニットの更新データと第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載したターゲット電子制御ユニットの更新データとを含む配信パッケージが、センタ10から送信される場合の例である。複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリのメモリ種別は、センタ10によって管理されている。
図12に示す処理は、センタ10が、OTAマスタ30から配信パッケージのダウンロード要求を受信することによって開始される。
【0077】
(ステップS1201)
センタ10は、第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載した電子制御ユニットに向けた更新データと、第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載した電子制御ユニットに向けた更新データとを、含む配信パッケージを生成する。このとき、センタ10は、記憶部16が記憶している種別情報を参照して、第1種別向けの更新データと第2種別向けの更新データとを混在させた配信パッケージを生成する。メモリ種別は、属性として更新データに付されてもよい。配信パッケージが生成されると、ステップS1202に処理が進む。
【0078】
(ステップS1202)
OTAマスタ30は、センタ10から送信される配信パッケージを受信する。配信パッケージが受信されると、ステップS1203に処理が進む。
【0079】
(ステップS1203)
OTAマスタ30は、センタ10から受信した配信パッケージに含まれる更新データ及び更新データのメモリ種別を記憶部37に記憶する。更新データ及び更新データのメモリ種別が記憶されると、ステップS1204に処理が進む。
【0080】
(ステップS1204)
OTAマスタ30及びターゲット電子制御ユニット(ターゲットECU)は、更新データに基づいて格納領域に更新ソフトウェアを書き込む処理であるインストールを実行する。このとき、第1種別の不揮発性メモリを搭載したターゲット電子制御ユニットに対するインストールと、第2種別の不揮発性メモリを搭載したターゲット電子制御ユニットに対するインストールとが、並列的に実行される。全てのターゲット電子制御ユニットに対するインストールの実行が終了すると、本処理が終了する。
【0081】
具体例5のように、センタ10が種別情報を管理している場合には、配信パッケージを生成する際に、メモリ種別に関するターゲット電子制御ユニットと更新データとの整合性を確認することができる。このため、ダウンロード後にOTAマスタ30において整合性がないことが判明するといった事態を回避することができる。よって、配信パッケージの再送信の発生を防止し、センタ10とOTAマスタ30との間の通信量(通信負荷)の増加を抑制することができる。また、シングルバンクメモリを搭載したターゲット電子制御ユニットに対するインストールとデュアルバンクメモリを搭載したターゲット電子制御ユニットに対するインストールとを、並列的に実行できるため、シングルバンクメモリを搭載したターゲット電子制御ユニットとデュアルバンクメモリを搭載したターゲット電子制御ユニットとの両方を構成に含むシステムのソフトウェア更新処理を早期に完了させることができる。
【0082】
<作用・効果>
以上のように、本開示の一実施形態に係るネットワークシステムによれば、センタとOTAマスタとの間では、シングルバンクメモリ(第1種別の不揮発性メモリ)を搭載した電子制御ユニットに向けた更新データと、デュアルバンクメモリ(第2種別の不揮発性メモリ)を搭載した電子制御ユニットに向けた更新データとを含んだ配信パッケージ、すなわち種別の異なる複数の更新データが混在した配信パッケージを、送受信することができる。
【0083】
これにより、例えば、車両に搭載された複数の電子制御ユニットのそれぞれに搭載される不揮発性メモリのメモリ種別に関する種別情報をセンタが管理している場合には、配信パッケージを生成する際に、メモリ種別に関するターゲット電子制御ユニットと更新データとの整合性を確認することができる。このため、ダウンロード後にOTAマスタにおいて整合性がないことが判明するといった事態を回避することができる。よって、配信パッケージの再送信の発生を防止し、センタとOTAマスタとの間の通信量(通信負荷)の増加を抑制することができる。また、OTAマスタが種別情報を管理している場合には、電子制御ユニットの交換などによって不揮発性メモリのメモリ種別が変更になった場合には、車両(車載ネットワーク)内でOTAマスタが管理する種別情報を素早く更新することが可能となる。
【0084】
また、OTAマスタが、シングルバンクメモリ搭載の電子制御ユニットの更新データとデュアルバンクメモリ搭載の電子制御ユニットの更新データとを含んだ配信パッケージを受信できるので、OTAマスタとターゲット電子制御ユニットとの間では、更新中に停止制御が不要なデュアルバンクメモリ搭載のターゲット電子制御ユニットに対するインストールを、更新中に停止制御が必要なシングルバンクメモリ搭載のターゲット電子制御ユニットに対するインストールよりも優先して実行することができる。
【0085】
これにより、OTAマスタは、デュアルバンクメモリ搭載のターゲット電子制御ユニットから先行して格納領域に更新ソフトウェアを書き込んでゆき、その書き込みが完了しそうなタイミングでシングルバンクメモリ搭載のターゲット電子制御ユニットの格納領域への更新ソフトウェアの書き込みを開始することが可能となる。これにより、車両(車載ネットワーク)内での通信負荷を低減でき、全ての更新ソフトウェアの書き込み完了までに車両の制御を停止させなければならない時間を短縮することができる。
【0086】
あるいは、OTAマスタは、シングルバンクメモリ搭載のターゲット電子制御ユニットに対するインストールとデュアルバンクメモリ搭載のターゲット電子制御ユニットに対するインストールとを、並列的に実行することも可能であり、この場合には、シングルバンクメモリ搭載のターゲット電子制御ユニットとデュアルバンクメモリ搭載のターゲット電子制御ユニットとの両方を構成に含むシステムのソフトウェア更新処理を早期に完了させることが期待できる。
【0087】
以上、本開示技術の一実施形態を説明したが、本開示は、OTAマスタだけでなく、プロセッサとメモリを備えたOTAマスタが実行する更新方法、更新プログラム、更新プログラムを記憶したコンピューター読み取り可能な非一時的な記憶媒体、OTAマスタを通信可能なセンタ、センタとOTAマスタとを備えるシステム、あるいはOTAマスタを備えた車両など、として捉えることが可能である。
【産業上の利用可能性】
【0088】
本開示技術は、電子制御ユニットのプログラムを更新するためのネットワークシステムに利用できる。
【符号の説明】
【0089】
10 センタ
11、31、41 CPU
12、32、42 RAM
13、34 記憶装置
14、36、44 通信装置
16、37 記憶部
17、38 通信部
18、39 制御部
20 車載ネットワーク
30 OTAマスタ
33 ROM
35 マイクロコンピューター
40a~40d 電子制御ユニット(ECU)
43a、43b 不揮発性メモリ
45、46a、46b 格納領域
50 通信モジュール
60a~60c バス
70 ネットワーク