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

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

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

特許7355061センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両
<>
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図1
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図2
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図3
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図4
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図5
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図6A
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図6B
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図7
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図8
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図9A
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図9B
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図10A
  • 特許-センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両 図10B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-25
(45)【発行日】2023-10-03
(54)【発明の名称】センタ、OTAマスタ、システム、配信方法、配信プログラム、及び車両
(51)【国際特許分類】
   G06F 8/65 20180101AFI20230926BHJP
   B60R 16/02 20060101ALN20230926BHJP
【FI】
G06F8/65
B60R16/02 660U
【請求項の数】 11
(21)【出願番号】P 2021073954
(22)【出願日】2021-04-26
(65)【公開番号】P2022168470
(43)【公開日】2022-11-08
【審査請求日】2022-09-16
【早期審査対象出願】
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】石川 智康
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2021-022018(JP,A)
【文献】特開2020-027627(JP,A)
【文献】特開2020-021142(JP,A)
【文献】寺岡秀敏 ほか,「軽量スクリプト言語を用いた自動車ソフトウェア遠隔更新制御方式の検討」,情報処理学会論文誌コンシューマ・デバイス&システム(CDS),情報処理学会,2018年,第8巻, 第3号,pp. 32-42,ISSN 2186-5728
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/60-8/658
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
車両に搭載された電子制御ユニットのソフトウェアの更新を制御するOTAマスタに、前記ソフトウェアの更新データを配信するセンタであって、
前記車両から取得した情報に基づいて前記ソフトウェアの更新処理の手順に関する情報を取得する制御部と、
前記ソフトウェアの更新データと、前記制御部によって取得した前記ソフトウェアの更新処理の手順に関する情報とを、前記OTAマスタに送信する通信部と、を備える、センタ。
【請求項2】
前記ソフトウェアの更新処理の手順は、前記更新データの検証、インストールの実行、及びアクティベートの実行を含む、請求項1に記載のセンタ。
【請求項3】
前記ソフトウェアの更新データは、1つの格納領域を有する第1種別の不揮発性メモリを搭載した前記電子制御ユニットに向けたソフトウェアの更新データと、2つの格納領域を有する第2種別の不揮発性メモリを搭載した前記電子制御ユニットに向けたソフトウェアの更新データと、を含み、
前記ソフトウェアの更新処理の手順に関する情報は、前記第1種別の不揮発性メモリを搭載した前記電子制御ユニットの前記ソフトウェアの更新処理の手順と、前記第2種別の不揮発性メモリを搭載した前記電子制御ユニットの前記ソフトウェアの更新処理の手順と、を含む、請求項1又は2に記載のセンタ。
【請求項4】
前記ソフトウェアの更新処理の手順に関する情報において、前記第1種別の不揮発性メモリを搭載した前記電子制御ユニットの前記ソフトウェアの更新処理の手順と、前記第2種別の不揮発性メモリを搭載した前記電子制御ユニットの前記ソフトウェアの更新処理の手順とが、異なっている、請求項3に記載のセンタ。
【請求項5】
前記ソフトウェアの更新処理の手順に関する情報は、前記電子制御ユニットごとの前記ソフトウェアの更新処理の手順を含む、請求項1又は2に記載のセンタ。
【請求項6】
前記通信部は、前記ソフトウェアの更新データと前記ソフトウェアの更新処理の手順に関する情報とを含む配信パッケージを、前記OTAマスタに送信する、請求項1乃至5のいずれか1項に記載のセンタ。
【請求項7】
車両に搭載された電子制御ユニットのソフトウェアの更新を制御するOTAマスタであって、
前記車両の情報をセンタに送信し、前記ソフトウェアの更新データと、送信した前記車両の情報に基づいて前記センタにおいて取得された前記ソフトウェアの更新処理の手順に関する情報とを、前記センタから受信する通信部と、
前記ソフトウェアの更新データと前記ソフトウェアの更新処理の手順に関する情報とに基づいて、前記電子制御ユニットのソフトウェアの更新を制御する制御部と、を備える、OTAマスタ。
【請求項8】
車両に搭載された電子制御ユニットのソフトウェアの更新を制御するOTAマスタと、前記OTAマスタに前記ソフトウェアの更新データを配信するセンタと、を備えるシステムであって、
前記センタは、前記ソフトウェアの更新データと、前記車両から取得した情報に基づいて取得した前記ソフトウェアの更新処理の手順に関する情報とを、前記OTAマスタに送信する第1通信部を備え、
前記OTAマスタは、
前記ソフトウェアの更新データと前記ソフトウェアの更新処理の手順に関する情報とを、前記センタから受信する第2通信部と、
前記ソフトウェアの更新データと前記ソフトウェアの更新処理の手順に関する情報とに基づいて、前記電子制御ユニットのソフトウェア更新を制御する制御部と、を備える、システム。
【請求項9】
プロセッサと、メモリとを備え、車両に搭載された電子制御ユニットのソフトウェアの更新を制御するOTAマスタに前記ソフトウェアの更新データを配信するセンタが実行する配信方法であって、
前記車両から取得した情報に基づいて前記ソフトウェアの更新処理の手順に関する情報を取得するステップと、
前記ソフトウェアの更新データと、前記取得した前記ソフトウェアの更新処理の手順に関する情報とを、前記OTAマスタに送信するステップと、を含む、配信方法。
【請求項10】
プロセッサと、メモリとを備え、車両に搭載された電子制御ユニットのソフトウェアの更新を制御するOTAマスタに前記ソフトウェアの更新データを配信するセンタのコンピューターが実行する配信プログラムであって、
前記車両から取得した情報に基づいて前記ソフトウェアの更新処理の手順に関する情報を取得するステップと、
前記ソフトウェアの更新データと、前記取得した前記ソフトウェアの更新処理の手順に関する情報とを、前記OTAマスタに送信するステップと、を含む、配信プログラム。
【請求項11】
請求項に記載のOTAマスタを搭載した、車両。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、電子制御ユニットのソフトウェアの更新を制御するセンタ及びOTAマスタなどに関する。
【背景技術】
【0002】
車両には、車両の動作を制御するための複数の電子制御ユニット(ECU:Electronic Control Unit)が搭載されている。電子制御ユニットは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部である不揮発性メモリとを備え、プロセッサが不揮発性メモリに記憶されるソフトウェアを実行することにより電子制御ユニットの制御機能を実現する。各電子制御ユニットが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各電子制御ユニットの機能を改善したり、新たな車両制御機能を追加したりすることができる。
【0003】
電子制御ユニットのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネットなどの通信ネットワークとを無線で接続し、車両のソフトウェアの更新処理を担う装置が、無線通信を介してサーバからソフトウェアをダウンロードし、ダウンロードしたソフトウェアを電子制御ユニットにインストールすることにより、電子制御ユニットのソフトウェアの更新や追加を行うOTA(Over The Air)技術が知られている。例えば、特許文献1を参照。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2004-326689号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
車両には、他の電子制御ユニットからの影響を受けることなくソフトウェアの更新処理を単独で実行できるものや、他の電子制御ユニットと連携しながらソフトウェアの更新処理を進めていくものなど、様々な仕様の電子制御ユニットが搭載されている。このような電子制御ユニットによる様々な仕様を車両側が全て判断してソフトウェアの更新処理を実行させる場合、車両側のソフトウェアの更新を制御する機器(OTAマスタ)の負担が大きくなり、ソフトウェアの更新処理に時間がかかる又は更新中に制限される機能が増加するなど、ソフトウェアの更新処理を好適に実行できないおそれがあった。
【0006】
本開示は、上記課題を鑑みてなされたものであり、車両側のソフトウェアの更新を制御する機器の負担を軽減して、電子制御ユニットのソフトウェアの更新処理を好適に実行することができる、センタ及びOTAマスタなどを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本開示技術の一態様は、車両に搭載された電子制御ユニットのソフトウェアの更新を制御するOTAマスタに、ソフトウェアの更新データを配信するセンタであって、ソフトウェアの更新データと、ソフトウェアの更新処理の手順を定義した更新シーケンスに関する情報とを、OTAマスタに送信する通信部を備える、センタである。
【発明の効果】
【0008】
本開示によれば、車両側のソフトウェアの更新を制御する機器の負担を軽減して、電子制御ユニットのソフトウェアの更新処理を好適に実行することができる、センタ及びOTAマスタなどを提供できる。
【図面の簡単な説明】
【0009】
図1】実施形態に係るネットワークシステムの全体構成を示すブロック図
図2】センタの概略構成を示すブロック図
図3】センタの機能ブロック図
図4】OTAマスタの概略構成を示すブロック図
図5】OTAマスタの機能ブロック図
図6A】電子制御ユニットの概略構成の一例を示すブロック図
図6B】電子制御ユニットの概略構成の一例を示すブロック図
図7】種別情報の一例を示す図
図8】センタ及びOTAマスタが行うダウンロード処理手順のフローチャート
図9A】OTAマスタ及びターゲット電子制御ユニットが行う具体例1によるインストール及びアクティベートの処理手順のフローチャート
図9B】OTAマスタ及びターゲット電子制御ユニットが行う具体例1によるインストール及びアクティベートの処理手順のフローチャート
図10A】OTAマスタ及びターゲット電子制御ユニットが行う具体例2によるインストール及びアクティベートの処理手順のフローチャート
図10B】OTAマスタ及びターゲット電子制御ユニットが行う具体例2によるインストール及びアクティベートの処理手順のフローチャート
【発明を実施するための形態】
【0010】
本開示の電子制御ユニットのソフトウェアを更新するためのネットワークシステムでは、センタは、ソフトウェアの更新データと、ソフトウェア更新処理の手順を定義した更新シーケンスに関する情報とを、OTAマスタに送信する。そして、OTAマスタは、センタから受信したソフトウェアの更新データと更新シーケンスに関する情報とに基づいて、電子制御ユニットのソフトウェアの更新を制御する。これにより、OTAマスタの負担を軽減して、電子制御ユニットのソフトウェア更新処理を好適に実行することができる。
以下、本開示の一実施形態について、図面を参照しながら詳細に説明する。
【0011】
<実施形態>
[システム構成]
図1は、本開示の一実施形態に係るネットワークシステムの全体構成を示すブロック図である。図1に示すネットワークシステムは、車両に搭載された複数の電子制御ユニット(ECU)50a~50dのソフトウェアを更新するためのシステムであり、車両外にあるセンタ10と、車両内に構築される車載ネットワーク90と、を備える。
【0012】
(1)センタ
センタ10は、ネットワーク100を介して、車載ネットワーク90が備える後述のOTAマスタ30と通信可能であり、電子制御ユニット50a~50dのソフトウェアの更新データ及び更新処理の手順を定義した情報の送信や、ソフトウェア更新処理の進捗状況を示す通知の受信などを行って、OTAマスタ30に接続された複数の電子制御ユニット50a~50dのソフトウェア更新を制御及び管理することができる。このセンタ10は、いわゆるサーバとしての機能を有する。
【0013】
図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と通信を行うための装置である。
【0014】
図3は、図2に示したセンタ10の機能ブロック図である。図3で示すセンタ10は、記憶部16と、通信部17と、制御部18と、を備える。記憶部16は、図2に示した記憶装置13によって実現される。通信部17及び制御部18は、図2に示したCPU11がRAM12を用いて記憶装置13に記憶されるプログラムを実行することによって実現される。
【0015】
記憶部16は、車両に搭載された1つ以上の電子制御ユニットのソフトウェア更新処理に関する情報を記憶する。ソフトウェア更新処理に関する情報として、記憶部16は、車両を識別する車両識別情報(車両ID)ごとに、電子制御ユニット50a~50dで利用可能なソフトウェアを示す情報を関連付けた更新管理情報と、電子制御ユニット50a~50dのソフトウェアの更新データとを、少なくとも記憶する。電子制御ユニット50a~50dで利用可能なソフトウェアを示す情報としては、例えば、複数の電子制御ユニット50a~50dの各ソフトウェアの最新のバージョン情報の組み合わせが定義される。また、ソフトウェア更新処理に関する情報として、記憶部16は、車両で実施されているソフトウェアの更新状態を示す更新ステータスを記憶することができる。また、ソフトウェア更新処理に関する情報として、記憶部16は、OTAマスタ30に対して制御の指示を行うための、ソフトウェア更新処理の手順を示した更新シーケンスに関する情報を記憶する。この更新シーケンスに関する情報は、更新対象となる電子制御ユニットの更新データ(更新ソフトウェア)の検証、インストールの実行、及びアクティベートの実行を少なくとも含むソフトウェア更新処理の手順を、それぞれ定義した情報である。ソフトウェア更新処理の手順は、複数の電子制御ユニット50a~50dについて各電子制御ユニット(のソフトウェア)ごとに定義されてもよいし、後述する電子制御ユニット50a~50dの不揮発性メモリの種別ごとに定義されていてもよい。この更新シーケンスに関する情報は、好適には、電子制御ユニットを識別するための固有の番号であるECU_IDと関連付けて記憶部16に記憶される。
【0016】
通信部17は、OTAマスタ30との間で、データ、情報、及び要求などの送信及び受信を行う送信部及び受信部として機能する。通信部17は、OTAマスタ30からソフトウェアの更新確認要求を受信する(受信部)。更新確認要求は、例えば、車両において電源又はイグニッションがオンされた(以下「電源ON」という)ときに、OTAマスタ30からセンタ10へと送信される情報であって、後述する車両構成情報に基づいて電子制御ユニット50a~50dの更新データがあるか否かの確認をセンタ10に要求するための情報である。また、通信部17は、OTAマスタ30から受信した更新確認要求に応答して、更新データの有無を示す情報をOTAマスタ30に送信する(送信部)。また、通信部17は、OTAマスタ30からの配信パッケージの送信要求(ダウンロード要求)を受信する(受信部)。また、通信部17は、配信パッケージのダウンロード要求を受信すると、後述する制御部18で生成される電子制御ユニット50a~50dのソフトウェアの更新データ及び更新シーケンスに関する情報を含む配信パッケージを、OTAマスタ30に送信する。なお、本実施形態では、ソフトウェアの更新データと更新シーケンスに関する情報とを1つの配信パッケージに含める例を説明するが、更新シーケンスに関する情報は、ソフトウェアの更新データの配信パッケージとは別個の配信パッケージで送信されてもよいし、この別個の配信パッケージがソフトウェア更新処理中における別のタイミングで(例えば、更新データの有無を示す情報と共に)送信されたりしてもよい。
【0017】
制御部18は、通信部17がOTAマスタ30から更新確認要求を受信すると、記憶部16に記憶されている更新管理情報に基づいて、更新確認要求に含まれる車両IDで特定される車両に搭載された電子制御ユニット50a~50dについてソフトウェアの更新データがあるか否かを判定する。制御部18による更新データがあるか否かの判定結果は、通信部17によってOTAマスタ30に送信される。制御部18は、電子制御ユニット50a~50dのソフトウェアの更新データがあると判定した場合、OTAマスタ30から配信パッケージのダウンロード要求を受信すると、記憶部16に記憶されている該当の更新データ及び更新シーケンスに関する情報を含む配信パッケージを生成する。
【0018】
(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を介して接続されている。
【0019】
OTAマスタ30は、バス60a及び通信モジュール80を介してネットワーク100経由でセンタ10と無線による通信が可能である。また、OTAマスタ30は、バス60b~60dを介して電子制御ユニット50a~50d及び表示装置70と有線による通信が可能である。このOTAマスタ30は、OTA状態を管理し、ソフトウェア更新処理の流れである更新シーケンスを制御して更新対象となる電子制御ユニット(以下「ターゲット電子制御ユニット」という)のソフトウェア更新を実施する機能を有する装置である。OTAマスタ30は、センタ10から取得した更新データ及び更新シーケンスに関する情報などに基づいて、電子制御ユニット50a~50dのうちターゲット電子制御ユニットのソフトウェア更新を制御する。OTAマスタ30は、セントラルゲートウェイ(CGW)と称される場合もある。
【0020】
図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のそれぞれと通信を行うための装置である。
【0021】
図5は、図4に示したOTAマスタ30の機能ブロック図である。図5に示すOTAマスタ30は、記憶部37と、通信部38と、制御部39と、を備える。記憶部37は、図4に示した記憶装置34によって実現される。通信部38及び制御部39は、図4に示したCPU31がRAM32を用いてROM33に記憶されるプログラムを実行することによって実現される。
【0022】
記憶部37は、複数の電子制御ユニット50a~50dのソフトウェア更新を実行するためのプログラム(OTAマスタ30の制御用プログラム)や、ソフトウェア更新を実行する際に用いる各種データの他、センタ10からダウンロードしたソフトウェアの更新データ及び更新シーケンスに関する情報などを記憶する。また、記憶部37は、複数の電子制御ユニット50a~50dのそれぞれに搭載される不揮発性メモリの種別に関する情報(後述する)を記憶する。
【0023】
通信部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に送信する(送信部)。
【0024】
制御部39は、通信部38が受信した更新確認要求に対するセンタ10からの応答に基づいて、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定する。また、制御部39は、通信部38がセンタ10から受信(ダウンロード)して記憶部37に格納した配信パッケージの真正性を検証する。また、制御部39は、センタ10から受信(ダウンロード)した更新データを用い、更新シーケンスに関する情報に基づいて、電子制御ユニット50a~50dのソフトウェア更新処理(各種の検証、インストール、アクティベートなど)を制御する。具体的には、制御部39は、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データに基づく更新ソフトウェアをインストールさせる。インストールの完了後、制御部39は、ターゲット電子制御ユニットに対して、インストールした更新ソフトウェアを有効化させるアクティベートを指示する。このソフトウェア更新処理の際、制御部39は、更新シーケンスに関する情報に基づいて、複数の電子制御ユニット50a~50dにおける各種の検証、インストール、アクティベートなどの手順を好適に制御する。
【0025】
複数の電子制御ユニット50a~50dは、車両の各部の動作を制御するための装置(ECU)である。図1においては、車載ネットワーク90が4つの電子制御ユニット50a~50dを備えている例を示したが、電子制御ユニットの個数は特に限定されない。また、電子制御ユニット50a~50dをOTAマスタ30に接続するバスの本数も特に限定されない。電子制御ユニット50a~50dの概略構成の一例を、図6A及び図6Bに示す。
【0026】
図6Aに示す電子制御ユニット50aは、CPU51と、RAM52と、不揮発性メモリ53aと、通信装置54と、を備える。CPU51は、不揮発性メモリ53aから読み出したプログラムを、RAM52を作業領域として用いて実行することにより、電子制御ユニット50aの機能を実現する。不揮発性メモリ53aは、ソフトウェアなどのデータを格納するための1つの格納領域55を有するメモリ(以下「シングルバンクメモリ」という)である。本実施形態においては、シングルバンクメモリである不揮発性メモリ53aのメモリ種別を「第1種別」と記して他と区別することがある。格納領域55には、電子制御ユニット50aの機能を実現するためのソフトウェアの他に、バージョン情報やパラメータデータ、起動用のブートプログラム、ソフトウェア更新用のプログラムなどが格納される場合がある。通信装置54は、OTAマスタ30や車載ネットワーク90に接続される他の電子制御ユニット50b~50dとの通信を行うための装置である。
【0027】
図6Bに示す電子制御ユニット50bは、電子制御ユニット50aと同様に、CPU51と、RAM52と、不揮発性メモリ53bと、通信装置54と、を備える。ただし、電子制御ユニット50bに搭載される不揮発性メモリ53bは、ソフトウェアなどのデータを格納するための2つの格納領域56a及び56bを有するメモリ(以下「デュアルバンクメモリ」という)である。本実施形態においては、デュアルバンクメモリである不揮発性メモリ53bのメモリ種別を「第2種別」と記して他と区別することがある。格納領域56a及び56bには、電子制御ユニット50bの機能を実現するためのソフトウェアの他に、バージョン情報やパラメータデータ、起動用のブートプログラム、ソフトウェア更新用のプログラムなどが格納される場合がある。電子制御ユニット50bのCPU51は、不揮発性メモリ53bが有する2つの格納領域56a及び56bのうち、いずれか一方を読み出し対象の格納領域(運用面)とし、読み出し対象の格納領域に格納されるソフトウェアを実行する。読み出し対象でない他方の格納領域(非運用面)には、読み出し対象の格納領域(運用面)のプログラムを実行中に、バックグラウンドで更新データに基づく更新ソフトウェア(更新版のプログラム)のインストール(書き込み)が可能である。ソフトウェア更新処理におけるアクティベート(更新ソフトウェアの有効化)時には、電子制御ユニット50bのCPU51によってプログラムの読み出し対象の格納領域を切り替えることにより、更新ソフトウェアをアクティベートすることができる。
【0028】
具体例として、デュアルバンクメモリである不揮発性メモリ53bの格納領域56aに現行のソフトウェアが格納されており、格納領域56bに更新ソフトウェアがインストールされた場合を想定する。OTAマスタ30から更新ソフトウェアのアクティベートが指示されると、例えば電子制御ユニット50bは、CPU51の読み出し開始アドレスを、格納領域56aの先頭アドレスから格納領域56bの先頭アドレスに切り替えることにより、このCPU51の読み出し対象(運用面)の格納領域を切り替え、格納領域56bにインストールされた更新ソフトウェアを実行することができる。なお、本開示においては、1つの格納領域を擬似的に2面に区画して、一方の面に格納されたプログラムを実行中に他方の面にプログラムの書き込みを可能にした「1面サスペンドメモリ」と呼ばれる不揮発性メモリの構成も、第2種別のメモリに分類されるものとする。
【0029】
図7に、複数の電子制御ユニット50a~50dのそれぞれに搭載される不揮発性メモリの種別に関する情報である種別情報の一例を示す。図7に例示した種別情報では、電子制御ユニットを識別するための番号であるECU_IDと、その電子制御ユニットに搭載される不揮発性メモリの種別(第1種別(シングルバンク)/第2種別(デュアルバンク))とが、対応付けられている。この種別情報は、OTAマスタ30の記憶部37及びセンタ10の記憶部16の一方又は両方に記憶されて管理される。種別情報は、車載ネットワーク90を構成する電子制御ユニット50a~50dの仕様に基づいて予め作成され、車両の製造時などに記憶部37に格納されてもよいし、ソフトウェアの更新処理時にターゲット電子制御ユニットから車載ネットワーク90内の通信によって取得されてもよい。また、種別情報がセンタ10で管理されている場合には、OTAマスタ30がネットワーク100を介してセンタ10から種別情報を取得してもよい。
【0030】
表示装置70は、電子制御ユニット50a~50dのソフトウェアの更新処理時に更新データがあることの表示、車両のユーザーや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、及びソフトウェア更新の結果の表示など、各種の表示を行うために用いられるヒューマンマシンインタフェース(HMI)である。表示装置70としては、典型的にはカーナビゲーションシステムの表示装置を用いることができるが、ソフトウェアの更新処理時に必要な情報を表示可能なものであれば特に限定されない。なお、図1に示すバス60dには、表示装置70に加えて電子制御ユニットなどがさらに接続されていてもよい。
【0031】
通信モジュール80は、センタ10と車両との通信を制御する機能を持ったユニットであり、車載ネットワーク90をセンタ10に接続するための通信機器である。通信モジュール80は、ネットワーク100経由でセンタ10と無線で接続され、OTAマスタ30による車両の認証や更新データのダウンロードなどが行われる。この通信モジュール80は、OTAマスタ30に含まれて構成されてもよい。
【0032】
[ソフトウェア更新処理の概要]
OTAマスタ30は、例えば、車両の電源ONを契機として、ソフトウェアの更新確認要求をセンタ10に送信する。更新確認要求は、車両を識別するための車両IDと、車載ネットワーク90に接続される電子制御ユニット50a~50dのハードウェア及びソフトウェアの現バージョンなどの電子制御ユニットの状態(システム構成)に関する情報である車両構成情報と、を含む。車両構成情報は、車載ネットワーク90に接続される電子制御ユニット50a~50dから電子制御ユニットの識別番号(ECU_ID)と、電子制御ユニットのソフトウェアバージョンの識別番号(ECU_Software_ID)とを、取得することで作成可能である。車両ID及び電子制御ユニット50a~50dのソフトウェアの現バージョンは、センタ10が車両IDごとに保持するソフトウェアの最新バージョンとの比較により、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定するために用いられる。センタ10は、OTAマスタ30から受信した更新確認要求に対する応答として、更新データの有無を示す通知をOTAマスタ30に送信する。電子制御ユニット50a~50dのソフトウェアの更新データがある場合、OTAマスタ30は、配信パッケージのダウンロード要求をセンタ10に送信する。センタ10は、OTAマスタ30から受信したダウンロード要求に応じて、更新データ及び更新シーケンスに関する情報(各種の検証、インストール、アクティベートなどの順序)を含む配信パッケージをOTAマスタ30に送信する。配信パッケージは、更新データ及び更新シーケンスに関する情報の他に、更新データの真正性を検証するための検証用データや、更新データの数、種別情報、ソフトウェア更新時に用いる各種の制御情報などを含んでいてもよい。
【0033】
OTAマスタ30は、センタ10から受信した更新確認要求に対する応答に基づいて、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定する。また、OTAマスタ30は、センタ10から受信して記憶装置13に格納した配信パッケージの真正性を検証する。また、OTAマスタ30は、配信パッケージに含まれる更新シーケンスに関する情報に基づいて、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データをインストールさせる。インストールの完了後、OTAマスタ30は、配信パッケージに含まれる更新シーケンスに関する情報に基づいて、ターゲット電子制御ユニットに対して、インストールさせた更新版のソフトウェアを有効とするアクティベートを行うように指示をする。
【0034】
また、OTAマスタ30は、承諾要求処理において、ソフトウェア更新に対して承諾が必要である旨の通知やソフトウェア更新を承諾した旨の入力を促す通知を、出力装置に出力させる。出力装置としては、車載ネットワーク90に設けられた表示装置70や、音声による通知を行う音声出力装置(図示せず)などを利用できる。例えば、承諾要求処理において、表示装置70を出力装置として用いる場合、OTAマスタ30は、ユーザー又は管理者にソフトウェア更新の承諾を求めるための承諾要求画面を表示装置70に表示させたり、ユーザー又は管理者が承諾する場合には承諾ボタンを押下するなどの特定の入力操作を促す通知を表示装置70に表示させたり、することができる。また、OTAマスタ30は、承諾要求処理において、電子制御ユニット50a~50dのソフトウェアの更新データがあることを通知する文言やアイコンなどを表示装置70に表示させたり、ソフトウェア更新処理の実行中における制限事項などを表示装置70に表示させたり、することができる。OTAマスタ30は、ユーザー又は管理者から承諾した旨の入力を受け付けると、上述したインストール及びアクティベートの制御処理を実行し、ターゲット電子制御ユニットのソフトウェアを更新する。
【0035】
ここで、ターゲット電子制御ユニットの不揮発性メモリが、シングルバンクメモリである場合は、原則的にインストールとアクティベートとがひと続きに行われるため、インストールの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。なお、シングルバンクメモリのターゲット電子制御ユニットであっても、センタ10から指示される更新シーケンスに関する情報によっては、インストール完了の状態で更新処理を一時的に停止、つまりアクティベートを保留(待機)することが要求されることもあり得る。また、ターゲット電子制御ユニットの不揮発性メモリが、デュアルバンクメモリである場合は、少なくとも、インストールの実行後、かつ、アクティベートの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。なお、ターゲット電子制御ユニットの不揮発性メモリがデュアルバンクメモリである場合には、インストール実行前のソフトウェアの更新に対する承諾要求処理は、行われてもよいし、省略されてもよい。
【0036】
ソフトウェア更新処理は、OTAマスタ30がセンタ10から更新データ及び更新シーケンスに関する情報をダウンロードするフェーズ(ダウンロードフェーズ)、ダウンロードした更新データをOTAマスタ30が更新シーケンスに関する情報に基づいてターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットの格納領域に更新データに基づく更新ソフトウェアをインストールするフェーズ(インストールフェーズ)、及びターゲット電子制御ユニットが更新シーケンスに関する情報に基づいてインストールした更新ソフトウェアを有効化するフェーズ(アクティベートフェーズ)からなる。
【0037】
ダウンロードは、OTAマスタ30が、センタ10から配信パッケージによって送信された電子制御ユニットのソフトウェアを更新するための更新データを、受信して記憶部37に記憶する処理である。ダウンロードによる更新データの受信については、更新を失敗する確率が比較的低い第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載した電子制御ユニットに向けた更新データを優先して受信するようにしてもよいし、第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載した電子制御ユニットに向けた更新データと第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載した電子制御ユニットに向けた更新データとを優劣なく受信するようにしてもよい。ダウンロードフェーズでは、ダウンロードの実行だけでなく、ダウンロードの実行可否判断、更新データの検証など、ダウンロードに関する一連の処理の制御を含む。
【0038】
センタ10からOTAマスタ30に送信される更新データは、電子制御ユニットの更新ソフトウェア(全データ又は差分データ)、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェア又は圧縮データを分割した分割データのいずれを含んでいてもよい。また、更新データは、ターゲット電子制御ユニットのECU_ID(又はシリアル番号)と、更新前のターゲット電子制御ユニットのECU_Software_IDとを、含んでいてもよい。更新データは、上述した配信パッケージとしてダウンロードされるが、配信パッケージには、単一の電子制御ユニット又は複数の電子制御ユニットの更新データが含まれる。
【0039】
インストールは、OTAマスタ30が、センタ10からダウンロードした更新データと更新シーケンスに関する情報とに基づいて、複数のターゲット電子制御ユニットの不揮発性メモリ53a及び/又は53bに更新ソフトウェア(更新版のプログラム)を定められた順序で書き込む処理である。インストールフェーズでは、インストールの実行だけでなく、インストールの実行可否判断、更新データの転送及び更新ソフトウェアの検証など、インストールに関する一連の処理の制御を含む。
【0040】
更新データが更新ソフトウェアそのもの(全データ)を含む場合は、インストールフェーズにおいて、OTAマスタ30が更新データ(更新ソフトウェア)をターゲット電子制御ユニットに転送する。また、更新データが更新ソフトウェアの圧縮データ、又は差分データ、あるいは分割データを含む場合は、OTAマスタ30がターゲット電子制御ユニットに更新データを転送し、ターゲット電子制御ユニットが更新データから更新ソフトウェアを生成してもよいし、OTAマスタ30が更新データから更新ソフトウェアを生成してから、更新ソフトウェアをターゲット電子制御ユニットに転送してもよい。ここで、更新ソフトウェアの生成は、圧縮データの解凍や、差分データ又は分割データの組み付け(統合)により行うことができる。
【0041】
更新ソフトウェアのインストールは、センタ10から取得した更新シーケンスに関する情報に基づいたOTAマスタ30からのインストール要求に基づいて、ターゲット電子制御ユニットが行うことができる。なお、更新データを受信した特定のターゲット電子制御ユニットについては、OTAマスタ30からの明示の指示を受けることなく、自律的にインストールを行ってもよい。
【0042】
アクティベートは、ターゲット電子制御ユニットが、不揮発性メモリ53a及び/又は53bにインストールした更新ソフトウェアを有効化(アクティベート)する処理である。アクティベートフェーズでは、アクティベートの実行だけでなく、アクティベートの実行可否判断、アクティベートに対する車両のユーザー又は管理者への承諾要求、実行結果の検証など、アクティベートに関する一連の制御を含む。
【0043】
更新ソフトウェアのアクティベートは、センタ10から取得した更新シーケンスに関する情報に基づいたOTAマスタ30からのアクティベート要求に基づいて、ターゲット電子制御ユニットが行うことができる。なお、更新データを受信した特定のターゲット電子制御ユニットについては、OTAマスタ30からの明示の指示を受けることなく、インストールの完了後に自律的にアクティベートを行ってもよい。
【0044】
なお、ソフトウェア更新処理は、複数のターゲット電子制御ユニットのそれぞれに対して、連続的あるいは並列的に行うことができる。
【0045】
また、本明細書における「ソフトウェア更新処理」は、ダウンロード、インストール、及びアクティベートの全てを連続して行う処理だけでなく、ダウンロード、インストール、及びアクティベートのうちの一部のみを行う処理も含む。
【0046】
[処理]
次に、図8図9A図9B図10A、及び図10Bをさらに参照して、本実施形態に係るネットワークシステムにおいて実行されるソフトウェア更新処理に関する具体例をいくつか説明する。
【0047】
(1)ダウンロードの具体例
図8は、センタ10及びOTAマスタ30が行うダウンロードの具体例による処理手順を説明するフローチャートである。図8に例示するダウンロードは、センタ10が、OTAマスタ30から配信パッケージのダウンロード要求を受信することによって、開始される。
【0048】
(ステップS801)
センタ10は、ソフトウェアの更新対象となるターゲット電子制御ユニット(以下「ターゲットECU」という)の更新シーケンスに関する情報を取得する。この取得については、センタ10が車両メーカー(OEM)から更新シーケンスに関する情報が提供されることによって行われてもよいし、センタ10がOEMや車両から与えられる各種の情報に基づいて更新シーケンスに関する情報を自ら生成することによって行われてもよい。更新シーケンスに関する情報が取得されると、ステップS802に処理が進む。
【0049】
(ステップS802)
センタ10は、ターゲットECUの更新データ及び更新シーケンスに関する情報などを含む配信パッケージを生成する。ターゲットECUの更新データは、OEMなどから予め提供される。配信パッケージが生成されると、ステップS802に処理が進む。
【0050】
(ステップS803)
センタ10は、生成した配信パッケージをOTAマスタ30に送信する。配信パッケージが送信されると、ステップS804に処理が進む。
【0051】
(ステップS804)
OTAマスタ30は、センタ10から受信した配信パッケージに含まれる更新データなどを、記憶部37に記憶する。これにより、ダウンロード処理が終了する。
【0052】
上記配信処理の具体例では、センタ10が、ターゲットECUの更新データと更新シーケンスに関する情報とを含んだ配信パッケージをOTAマスタ30に送信する。この処理により、OTAマスタ30は、センタ10から与えられる更新シーケンスに関する情報によって定義されたソフトウェア更新処理の手順に従って、各ターゲットECUの更新処理を実施することができる。更新シーケンスに関する情報では、例えば、各ターゲットECUに対してそれぞれに適した更新手順を個別に指示することも可能であるし、協調的な動作が必要な複数のターゲットECUについてECU相互間での更新手順を指示することも可能である。よって、OTAマスタ30は、複数のターゲットECUの機能や関連性などを自ら把握・管理することなく、更新シーケンスに関する情報に基づいてターゲットECUに好適な更新処理を容易に実施することができるので、OTAマスタ30の処理負担が軽減される。
【0053】
なお、更新シーケンスに関する情報として、毎回全てのターゲットECUのソフトウェア更新処理の手順がOTAマスタ30に送信されなくてもよい。例えば、ソフトウェア更新処理が他のターゲットECUからの影響を受けることなく常に同じであるターゲットECUについては、初回の配信パッケージ生成時のみに更新シーケンスに関する情報に含めて定義することができる。OTAマスタ30は、初回の配信パッケージで送信される更新シーケンスに関する情報の一部又は全部を記憶部37に記憶しておき、次回のソフトウェア更新処理時に必要な情報を記憶部37から読み出して利用すればよい。
【0054】
(2)インストール及びアクティベートの具体例1
図9A及び図9Bは、OTAマスタ30及びターゲットECUが行う具体例1によるインストール及びアクティベートの処理手順を説明するフローチャートである。図9Aの処理と図9Bの処理とは、結合子Xで結ばれる。
【0055】
図9A及び図9Bに示す具体例1では、OTAマスタ30がセンタ10から受信する更新シーケンスに関する情報として、第2種別の不揮発性メモリ(デュアルバンクメモリ)を搭載したターゲットECU(以下「第2種別のターゲットECU」という)における更新ソフトウェアのインストールを、第1種別の不揮発性メモリ(シングルバンクメモリ)を搭載したターゲットECU(以下「第1種別のターゲットECU」という)における更新ソフトウェアのインストールよりも優先させる内容が定義されている例を説明する。
【0056】
この具体例1の更新シーケンスに関する情報としては、第1種別のターゲットECUに向けたソフトウェア更新処理の手順「更新データ検証→保留→インストール→アクティベート」、及び第2種別のターゲットECUに向けたソフトウェア更新処理の手順「更新データ検証→インストール→保留→アクティベート」を、例示できる。また、更新シーケンスに関する情報は、第1種別のターゲットECU及び第2種別のターゲットECUそれぞれのソフトウェア更新処理の手順を定義する以外にも、例えば「各更新データ検証→第2種別のターゲットECUのインストール→第1種別のターゲットECUのインストール→第1種別のターゲットECUのアクティベート→第2種別のターゲットECUのアクティベート」のように複数のターゲットECU間の相対的な処理の優先順位を指示する情報であってもよい。
【0057】
この具体例1の処理は、OTAマスタ30によるターゲットECUの更新データ及び更新シーケンスに関する情報を含む配信パッケージのダウンロードが完了した後、かつ、所定の条件(インストール実行可、更新データの検証OKなど)が満足されることによって開始される。
【0058】
(ステップS901)
OTAマスタ30は、配信パッケージに含まれる更新シーケンスに関する情報、及びターゲットECUに搭載される不揮発性メモリの種別(第1種別/第2種別)を取得する。このメモリ種別は、OTAマスタ30が管理している場合には記憶部37に記憶されている種別情報(図7)を参照することによって取得することができ、センタ10が管理している場合には配信パッケージに含めて送信されてきたメモリ種別の情報を参照することによって取得することができる。更新シーケンスに関する情報及びターゲットECUのメモリ種別が取得されると、ステップS902に処理が進む。
【0059】
(ステップS902)
OTAマスタ30及び第2種別のターゲットECUは、更新データと更新シーケンスに関する情報とに基づいて、第2種別のターゲットECUの不揮発性メモリの格納領域に更新ソフトウェアを書き込む処理であるインストールを開始する。本具体例1の更新シーケンスに関する情報では、第1種別のターゲットECUについて「更新データ検証→保留」の手順が、第2種別のターゲットECUについて「更新データ検証→インストール」の手順が、それぞれ定義されている。この手順に従って、各更新データの検証が行われた後、第2種別のターゲットECUにおける更新ソフトウェアのインストールが、第1種別のターゲットECUにおける更新ソフトウェアのインストールよりも優先して開始されることとなる。このインストールの開始は、第2種別のターゲットECUの全てについて、一斉に又は所定の順序で行われる。第2種別のターゲットECUに対するインストールが開始されると、ステップS903に処理が進む。
【0060】
(ステップS903)
OTAマスタ30は、第2種別のターゲットECUにおける更新ソフトウェアのインストールが完了したか否かを判断する。インストールの完了は、全ての第2種別のターゲットECUについて判断されてもよいし、予め定められた一部の第2種別のターゲットECUのみについて判断されてもよい。OTAマスタ30は、インストールの完了を、第2種別のターゲットECUからの完了通知があったことで判断してもよいし、インストールの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えば、各々のインストールに要する最大の時間以上に設定することができる。第2種別のターゲットECUにおける更新ソフトウェアのインストールが完了したと判断されると(ステップS903、はい)、ステップS904に処理が進む。
【0061】
(ステップS904)
OTAマスタ30及び第1種別のターゲットECUは、更新データと更新シーケンスに関する情報とに基づいて、第1種別のターゲットECUの不揮発性メモリの格納領域に更新ソフトウェアを書き込む処理であるインストールを開始する。一方、OTAマスタ30及び第2種別のターゲットECUは、更新シーケンスに関する情報に基づいて、第2種別のターゲットECUの不揮発性メモリの格納領域に書き込まれた更新ソフトウェアを有効化するアクティベートを保留する。本具体例1における更新シーケンスに関する情報では、第1種別のターゲットECUについて「保留→インストール」の手順が、第2種別のターゲットECUについて「インストール→保留」の手順が、それぞれ定義されている。この手順に従って、第2種別のターゲットECUにおける更新ソフトウェアのインストール後、第1種別のターゲットECUにおける更新ソフトウェアのインストールが、第2種別のターゲットECUにおける更新ソフトウェアのアクティベートよりも先に開始されることとなる。このインストールの開始は、第1種別のターゲットECUの全てについて、一斉に又は所定の順序で行われる。第1種別のターゲットECUに対するインストールが開始されると、ステップS905に処理が進む。
【0062】
(ステップS905)
OTAマスタ30は、第1種別のターゲットECUにおける更新ソフトウェアのインストールが完了したか否かを判断する。インストールの完了は、全ての第1種別のターゲットECUについて判断される。OTAマスタ30は、インストールの完了を、第1種別のターゲットECUからの完了通知があったことで判断してもよいし、インストールの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えば、各々のインストールに要する最大の時間以上に設定することができる。第1種別のターゲットECUにおける更新ソフトウェアのインストールが完了したと判断されると(ステップS905、はい)、ステップS906に処理が進む。
【0063】
(ステップS906)
OTAマスタ30及び第1種別のターゲットECUは、第1種別のターゲットECUの不揮発性メモリの格納領域に書き込まれた更新ソフトウェアを有効化するアクティベートを開始する。本具体例1の更新シーケンスに関する情報では、第1種別のターゲットECUについて「インストール→アクティベート」の手順が、第2種別のターゲットECUについて「保留→アクティベート」の手順が、それぞれ定義されている。この手順に従って、第1種別のターゲットECUにおける更新ソフトウェアのインストール後、第1種別のターゲットECUにおける更新ソフトウェアのアクティベートが、第2種別のターゲットECUにおける更新ソフトウェアのアクティベートよりも先に開始される。このアクティベートの開始は、第1種別のターゲットECUの全てについて、一斉に又は所定の順序で行われる。第1種別のターゲットECUにおける更新ソフトウェアのアクティベートが開始されると、ステップS907に処理が進む。
【0064】
(ステップS907)
OTAマスタ30は、第1種別のターゲットECUにおける更新ソフトウェアのアクティベートが完了したか否かを判断する。アクティベートの完了は、全ての第1種別のターゲットECUについて判断される。OTAマスタ30は、アクティベートの完了を、第1種別のターゲットECUからの完了通知があったことで判断してもよいし、アクティベートの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えば、各々のアクティベートに要する最大の時間以上に設定することができる。第1種別のターゲットECUにおける更新ソフトウェアのアクティベートが完了したと判断されると(ステップS907、はい)、ステップS908に処理が進む。
【0065】
(ステップS908)
OTAマスタ30及び第2種別のターゲットECUは、第2種別のターゲットECUの不揮発性メモリの格納領域に書き込まれた更新ソフトウェアを有効化するアクティベートを開始する。本具体例1の更新シーケンスに関する情報では、第2種別のターゲットECUについて「保留→アクティベート」の手順が定義されている。この手順に従って、第1種別のターゲットECUにおける更新ソフトウェアのアクティベート後、第2種別のターゲットECUにおける更新ソフトウェアのアクティベートが開始される。このアクティベートの開始は、第2種別のターゲットECUの全てについて、一斉に又は所定の順序で行われる。第2種別のターゲットECUにおける更新ソフトウェアのアクティベートが開始されると、ステップS909に処理が進む。
【0066】
(ステップS909)
OTAマスタ30は、第2種別のターゲットECUにおける更新ソフトウェアのアクティベートが完了したか否かを判断する。アクティベートの完了は、全ての第2種別のターゲットECUについて判断される。OTAマスタ30は、アクティベートの完了を、第2種別のターゲットECUからの完了通知があったことで判断してもよいし、アクティベートの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えば、各々のアクティベートに要する最大の時間以上に設定することができる。第2種別のターゲットECUにおける更新ソフトウェアのアクティベートが完了したと判断されると(ステップS909、はい)、全てのターゲット電子制御ユニットに対するインストール及びアクティベートが完了し、本処理が終了する。
【0067】
上記具体例1では、第1種別のターゲットECUと第2種別のターゲットECUとが、相手のターゲットECUのソフトウェア更新状況に応じてインストール及びアクティベートの処理を各々進めていく。この処理によって、例えば、更新中に停止制御が不要な第2種別のターゲットECUに対するインストールを最初に開始し、第2種別のターゲットECUのインストール完了を判断した後に、更新中に停止制御が必要な第1種別のターゲットECUに対するインストールを開始することなどが可能となる。従って、OTAマスタ30は、センタ10から指示される更新シーケンスに関する情報に基づいて、車載ネットワーク90内での通信負荷を低減して全ての更新ソフトウェアの書き込み完了までに車両の制御を停止させなければならない時間を短縮するなど、各ターゲットECUに好適なソフトウェア更新処理を容易に実施することができる。
【0068】
(3)インストール及びアクティベートの具体例2
図10A及び図10Bは、OTAマスタ30及びターゲットECUが行う具体例2によるインストール及びアクティベートの処理手順を説明するフローチャートである。図10Aの処理と図10Bの処理とは、結合子Yで結ばれる。
【0069】
図10A及び図10Bに示す具体例2では、OTAマスタ30がセンタ10から受信する更新シーケンスに関する情報として、複数のターゲットECU(-A、-B、-C)について、不揮発性メモリの種別に関わらずターゲットECUごとに好適なソフトウェア更新処理の手順が定義されている例を説明する。
【0070】
この具体例2の更新シーケンスに関する情報としては、ターゲットECU-Aに向けたソフトウェア更新処理の手順「更新データ検証→インストール→アクティベート」、ターゲットECU-Bに向けたソフトウェア更新処理の手順「更新データ検証→インストール→保留→アクティベート」、及びターゲットECU-Cに向けたソフトウェア更新処理の手順「更新データ検証→保留→インストール→アクティベート」を、例示できる。また、更新シーケンスに関する情報は、複数のターゲットECU(-A、-B、-C)それぞれのソフトウェア更新処理の手順を定義する以外にも、例えば「各更新データ検証→ターゲットECU-A&Bのインストール→ターゲットECU-Aのアクティベート&ターゲットECU-Cのインストール→ターゲットECU-Cのアクティベート→ターゲットECU-Bのアクティベート」のように複数のターゲットECU間の相対的な処理の優先順位を指示する情報であってもよい。
【0071】
この具体例2の処理は、OTAマスタ30によるターゲットECUの更新データ及び更新シーケンスに関する情報を含む配信パッケージのダウンロードが完了した後、かつ、所定の条件(インストール実行可、更新データの検証OKなど)が満足されることによって開始される。
【0072】
(ステップS1001)
OTAマスタ30は、配信パッケージから更新シーケンスに関する情報を取得する。更新シーケンスに関する情報が取得されると、ステップS1002に処理が進む。
【0073】
(ステップS1002)
OTAマスタ30、ターゲットECU-A、及びターゲットECU-Bは、更新データと更新シーケンスに関する情報とに基づいて、ターゲットECU-A及びターゲットECU-Bの各不揮発性メモリの格納領域に更新ソフトウェアを書き込む処理であるインストールを開始する。本具体例2の更新シーケンスに関する情報では、ターゲットECU-Aについて「更新データ検証→インストール」の手順が、ターゲットECU-Bについて「更新データ検証→インストール」の手順が、ターゲットECU-Bについて「更新データ検証→保留」の手順が、それぞれ定義されている。この手順に従って、各更新データの検証が行われた後、ターゲットECU-A及びターゲットECU-Bにおける更新ソフトウェアのインストールが、ターゲットECU-Cにおける更新ソフトウェアのインストールよりも優先して開始されることとなる。このインストールの開始は、ターゲットECU-A及びターゲットECU-Bについて一斉に又は所定の順序で行われる。ターゲットECU-A及びターゲットECU-Bに対するインストールが開始されると、ステップS1003に処理が進む。
【0074】
(ステップS1003)
OTAマスタ30は、ターゲットECU-A及びターゲットECU-Bにおける更新ソフトウェアのインストールが完了したか否かを判断する。OTAマスタ30は、インストールの完了を、ターゲットECU-A及びターゲットECU-Bからの完了通知がそれぞれあったことで判断してもよいし、インストールの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えば、各々のインストールに要する最大の時間以上に設定することができる。ターゲットECU-A及びターゲットECU-Bにおける更新ソフトウェアのインストールが完了したと判断されると(ステップS1003、はい)、ステップS1004に処理が進む。
【0075】
(ステップS1004)
OTAマスタ30及びターゲットECU-Aは、更新データと更新シーケンスに関する情報とに基づいて、ターゲットECU-Aの不揮発性メモリの格納領域に書き込まれた更新ソフトウェアを有効化するアクティベートを開始する。また、OTAマスタ30及びターゲットECU-Cは、更新データと更新シーケンスに関する情報とに基づいて、ターゲットECU-Cの不揮発性メモリの格納領域に更新ソフトウェアを書き込む処理であるインストールを開始する。一方、OTAマスタ30及びターゲットECU-Bは、更新シーケンスに関する情報に基づいて、ターゲットECU-Bの不揮発性メモリの格納領域に書き込まれた更新ソフトウェアを有効化するアクティベートを保留する。本具体例2における更新シーケンスに関する情報では、ターゲットECU-Aについて「インストール→アクティベート」の手順が、ターゲットECU-Bについて「インストール→保留」の手順が、ターゲットECU-Cについて「保留→インストール」の手順が、それぞれ定義されている。この手順に従って、ターゲットECU-A及びターゲットECU-Bにおける更新ソフトウェアのインストール後、ターゲットECU-Aにおける更新ソフトウェアのアクティベート及びターゲットECU-Cにおける更新ソフトウェアのインストールが、ターゲットECU-Bにおける更新ソフトウェアのアクティベートよりも先に開始されることとなる。ターゲットECU-Aに対するアクティベート及びターゲットECU-Cに対するインストールが開始されると、ステップS1005に処理が進む。
【0076】
(ステップS1005)
OTAマスタ30は、ターゲットECU-Aにおける更新ソフトウェアのアクティベートが完了したか否かを判断する。OTAマスタ30は、アクティベートの完了を、ターゲットECU-Aからの完了通知があったことで判断してもよいし、アクティベートの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えば、このアクティベートに要する時間以上に設定することができる。ターゲットECU-Aにおける更新ソフトウェアのアクティベートが完了したと判断されると(ステップS1005、はい)、ステップS1006に処理が進む。
【0077】
(ステップS1006)
OTAマスタ30は、ターゲットECU-Cにおける更新ソフトウェアのインストールが完了したか否かを判断する。OTAマスタ30は、インストールの完了を、ターゲットECU-Cからの完了通知があったことで判断してもよいし、インストールの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えば、このインストールに要する時間以上に設定することができる。ターゲットECU-Cにおける更新ソフトウェアのインストールが完了したと判断されると(ステップS1006、はい)、ステップS1007に処理が進む。
【0078】
(ステップS1007)
OTAマスタ30及びターゲットECU-Cは、ターゲットECU-Cの不揮発性メモリの格納領域に書き込まれた更新ソフトウェアを有効化するアクティベートを開始する。本具体例2の更新シーケンスに関する情報では、ターゲットECU-Cについて「インストール→アクティベート」の手順が、ターゲットECU-Bについて「保留→アクティベート」の手順が、それぞれ定義されている。この手順に従って、ターゲットECU-Cにおける更新ソフトウェアのインストール後、ターゲットECU-Cにおける更新ソフトウェアのアクティベートが、ターゲットECU-Bにおける更新ソフトウェアのアクティベートよりも先に開始される。ターゲットECU-Cにおける更新ソフトウェアのアクティベートが開始されると、ステップS1008に処理が進む。
【0079】
(ステップS1008)
OTAマスタ30は、ターゲットECU-Cにおける更新ソフトウェアのアクティベートが完了したか否かを判断する。OTAマスタ30は、アクティベートの完了を、ターゲットECU-Cからの完了通知があったことで判断してもよいし、アクティベートの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えば、このアクティベートに要する時間以上に設定することができる。ターゲットECU-Cにおける更新ソフトウェアのアクティベートが完了したと判断されると(ステップS1008、はい)、ステップS1009に処理が進む。
【0080】
(ステップS1009)
OTAマスタ30及びターゲットECU-Bは、ターゲットECU-Bの不揮発性メモリの格納領域に書き込まれた更新ソフトウェアを有効化するアクティベートを開始する。本具体例2の更新シーケンスに関する情報では、ターゲットECU-Bについて「保留→アクティベート」の手順が定義されている。この手順に従って、ターゲットECU-Cにおける更新ソフトウェアのアクティベート後、ターゲットECU-Bにおける更新ソフトウェアのアクティベートが開始される。ターゲットECU-Bにおける更新ソフトウェアのアクティベートが開始されると、ステップS1010に処理が進む。
【0081】
(ステップS1010)
OTAマスタ30は、ターゲットECU-Bにおける更新ソフトウェアのアクティベートが完了したか否かを判断する。OTAマスタ30は、アクティベートの完了を、ターゲットECU-Bからの完了通知があったことで判断してもよいし、アクティベートの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、このアクティベートに要する時間以上に設定することができる。ターゲットECU-Bにおける更新ソフトウェアのアクティベートが完了したと判断されると(ステップS1010、はい)、全てのターゲット電子制御ユニットに対するインストール及びアクティベートが完了し、本処理が終了する。
【0082】
上記具体例2では、ターゲットECU-Aは、単独でソフトウェア更新処理を進めると共に、ターゲットECU-BとターゲットECU-Cとについては、相手のターゲットECUのソフトウェア更新状況に応じてインストール及びアクティベートの処理を進めていく。この処理によって、例えば、ターゲットECU-Aのソフトウェア更新処理と並行して、ターゲットECU-Bの更新ソフトウェアのインストールを、ターゲットECU-Cの更新ソフトウェアのインストールよりも優先して実行することなどが可能となる。従って、OTAマスタ30は、センタ10から提供(指示)される更新シーケンスに関する情報に基づいて、各ターゲットECUに好適なソフトウェア更新処理を容易に実施することができる。
【0083】
なお、上記具体例2におけるターゲットECU-Aの更新ソフトウェアのインストール完了の判断(ステップS1003)やアクティベート完了の判断(ステップS1005)は、ターゲットECU-Cの更新ソフトウェアのインストール完了の判断(ステップS1006)の後に行ってもよいし、ターゲットECU-Bの更新ソフトウェアのアクティベート完了の判断(ステップS1010)又はターゲットECU-Cの更新ソフトウェアのアクティベート完了の判断(ステップS1008)と共に行ってもよい。
【0084】
また、上記具体例2では、更新シーケンスに関する情報として、不揮発性メモリの種別に関係なくターゲットECUごとに好適なソフトウェア更新処理の手順が定義されている例を説明したが、不揮発性メモリの種別に応じてターゲットECUごとに好適なソフトウェア更新処理の手順が定義されていてもよい。すなわち、センタ10は、ターゲットECUの機能や性能などに加えてさらにターゲットECUに搭載される不揮発性メモリの種別情報に基づいて、そのターゲットECUに好適な更新シーケンスに関する情報を生成してもよい。この場合、例えば、センタ10は、1つのターゲットECUについて、シングルバンクメモリ仕様であるときに適用するソフトウェア更新処理の手順と、デュアルバンクメモリ仕様であるときに適用するソフトウェア更新処理の手順との、2通りの情報を生成することができる。
【0085】
<作用・効果>
以上のように、本開示の一実施形態に係るネットワークシステムによれば、センタは、ソフトウェアの更新データと、ソフトウェア更新処理の手順を定義した更新シーケンスに関する情報とを、OTAマスタに送信する。そして、OTAマスタは、センタから受信したソフトウェアの更新データと更新シーケンスに関する情報とに基づいて、電子制御ユニットのソフトウェアの更新を制御する。
【0086】
この処理によって、センタは、ソフトウェアの更新データを車両へ配信すると共に、車両におけるターゲット電子制御ユニットのソフトウェア更新処理の進行をOTAマスタに働きかけて能動的に制御することができる。一方、OTAマスタは、センタからの指示に基づいて受動的にターゲット電子制御ユニットのソフトウェア更新処理を進めるだけでよいため、ソフトウェア更新処理時において車両に搭載される全ての電子制御ユニットの仕様を把握しておく必要がなくなり、ソフトウェア更新処理の制御に関する負担を軽減できる。例えば、交換によってターゲット電子制御ユニットの不揮発性メモリが、シングルバンクメモリからデュアルバンクメモリに変更された場合、センタが更新シーケンスに関する情報をシングルバンクメモリ用からデュアルバンクメモリ用に切り替えてOTAマスタに送信するだけで、OTAマスタは負担なくソフトウェア更新処理を実行させることができる。
【0087】
以上、本開示技術の一実施形態を説明したが、本開示は、センタだけでなく、プロセッサとメモリを備えたセンタが実行する配信方法、配信プログラム、配信プログラムを記憶したコンピューター読み取り可能な非一時的な記憶媒体、センタと通信可能なOTAマスタ、センタとOTAマスタとを備えるシステム、あるいはOTAマスタを備えた車両など、として捉えることが可能である。
【産業上の利用可能性】
【0088】
本開示技術は、電子制御ユニットのソフトウェアを更新するためのネットワークシステムに利用できる。
【符号の説明】
【0089】
10 センタ
11、31、51 CPU
12、32、52 RAM
13、34 記憶装置
14、36、54 通信装置
16、37 記憶部
17、38 通信部
18、39 制御部
30 OTAマスタ
33 ROM
35 マイクロコンピューター
50a~50d 電子制御ユニット(ECU)
53a、53b 不揮発性メモリ
55、56a、56b 格納領域
60a~60d バス
70 表示装置
80 通信モジュール
90 車載ネットワーク
100 ネットワーク
図1
図2
図3
図4
図5
図6A
図6B
図7
図8
図9A
図9B
図10A
図10B