(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】センタ、更新管理方法、及び更新管理プログラム
(51)【国際特許分類】
H04L 67/10 20220101AFI20240625BHJP
B60R 16/02 20060101ALI20240625BHJP
G06F 8/65 20180101ALI20240625BHJP
【FI】
H04L67/10
B60R16/02 660U
G06F8/65
(21)【出願番号】P 2021035130
(22)【出願日】2021-03-05
【審査請求日】2023-03-23
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】浜崎 隼
【審査官】小林 義晴
(56)【参考文献】
【文献】特開2020-027652(JP,A)
【文献】特開2015-079440(JP,A)
【文献】特開2021-22018(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/00
B60R 16/02
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタであって、
前記OTAマスタから前記電子制御ユニットのソフトウェア
の更新処理の進捗状況を示す通知を受信する通信部と、
前記通信部が受信する前記通知に基づいて前記車両側の更新処理状態を示す更新ステータスを管理する制御部と、を備え、
前記制御部は
、
前記通信部が、第1通知を受信した後、前記第1通知の次に受信が予定される第2通知を受信した場合、前記第2通知に基づいて前記更新ステータスを設定し、
前記通信部が、
前記第1通知を受信した後、前
記第2通知とは異なる第3通知を受信した場合、前記第1通知から前記第3通知までの通知を全て受信したものと見なして前記第3通知に基づいて前記更新ステータスを設定
し、
前記通信部が前記ソフトウェアの更新完了の通知を受信した場合、前記更新ステータスを更新処理完了に設定し、
前記更新処理完了の結果を完成車メーカーに報告する、
センタ。
【請求項2】
前記通信部が受信する前記通知は、前記ソフトウェアのダウンロード完了報告、前記ソフトウェアのインストール完了報告、前記ソフトウェアのアクティベート完了報告、及び前記ソフトウェアの更新完了報告を少なくとも含む、
請求項1に記載のセンタ。
【請求項3】
前記通信部が前記第2通知及び前記第3通知のいずれも受信できない場合の前記第2通知は、前記ソフトウェアのダウンロード承諾結果、前記ソフトウェアのインストール承諾結果、及び前記ソフトウェアのアクティベート承諾結果を少なくとも含む、
請求項
1又は2に記載のセンタ。
【請求項4】
前記通信部は、前記第2通知
、前記第3通知
、及び前記ソフトウェアの更新完了の通知のいずれも受信できない場合、前記OTAマスタから前記電子制御ユニットの状態を示す情報を受信し、
前記制御部は、前記情報に基づい
て前記ソフトウェア更新処理が正常に完了したか否かを判断
して、前記更新ステータスを前記更新処理完了又は更新処理未完了に設定し、前記更新処理完了又は前記更新処理未完了の結果を前記完成車メーカーに報告する、
請求項
1乃至3のいずれか1項に記載のセンタ。
【請求項5】
プロセッサと、メモリとを備え、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタのコンピューターが実行する更新管理方法であって、
前記OTAマスタから前記電子制御ユニットのソフトウェア
の更新処理の進捗状況を示す通知を受信するステップと、
前記通知に基づいて前記車両側の更新処理状態を示す更新ステータスを管理するステップと、を含み、
前記管理するステップは
、
前記受信するステップにおいて、第1通知が受信された後、前記第1通知の次に受信が予定される第2通知が受信された場合、前記第2通知に基づいて前記更新ステータスを設定し、
前記受信するステップにおいて、
前記第1通知が受信された後、前
記第2通知とは異なる第3通知が受信された場合、前記第1通知から前記第3通知までの通知が全て受信されたものと見なして前記第3通知に基づいて前記更新ステータスを設定
し、
前記受信するステップにおいて前記ソフトウェアの更新完了の通知が受信された場合、前記更新ステータスを更新処理完了に設定し、
前記更新処理完了の結果を完成車メーカーに報告する、
更新管理方法。
【請求項6】
プロセッサと、メモリとを備え、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタのコンピューターが実行する更新管理プログラムであって、
前記OTAマスタから前記電子制御ユニットのソフトウェア
の更新処理の進捗状況を示す通知を受信するステップと、
前記通知に基づいて前記車両側の更新処理状態を示す更新ステータスを管理するステップと、を含み、
前記管理するステップは
、
前記受信するステップにおいて、第1通知が受信された後、前記第1通知の次に受信が予定される第2通知が受信された場合、前記第2通知に基づいて前記更新ステータスを設定し、
前記受信するステップにおいて、
前記第1通知が受信された後、前
記第2通知とは異なる第3通知が受信された場合、前記第1通知から前記第3通知までの通知が全て受信されたものと見なして前記第3通知に基づいて前記更新ステータスを設定
し、
前記受信するステップにおいて前記ソフトウェアの更新完了の通知が受信された場合、前記更新ステータスを更新処理完了に設定し、
前記更新処理完了の結果を完成車メーカーに報告する、
更新管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車両に搭載された電子制御ユニットのソフトウェア更新を制御するセンタなどに関する。
【背景技術】
【0002】
車両には、車両の動作を制御するための複数の電子制御ユニットが搭載されている。電子制御ユニットは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部である不揮発性メモリとを備え、プロセッサが不揮発性メモリに記憶されるソフトウェアを実行することにより電子制御ユニットの制御機能を実現する。各電子制御ユニットが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各電子制御ユニットの機能を改善したり、新たな車両制御機能を追加したりすることができる。
【0003】
電子制御ユニットのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネットなどの通信ネットワークとを無線で接続し、車両のソフトウェアの更新処理を担う装置が、無線通信を介してサーバー機能を有するセンタからソフトウェアをダウンロードし、ダウンロードしたソフトウェアを電子制御ユニットにインストールすることにより、電子制御ユニットのソフトウェア更新や追加を行うOTA(Over The Air)技術が知られている。例えば、特許文献1を参照。
【0004】
このOTA技術を用いたソフトウェアの更新処理においては、車両で実施されている処理の状態をセンタが管理できるように、ソフトウェア更新処理の進捗状況を示す情報が所定のタイミング(開始や完了など)でソフトウェアの更新処理を担う装置であるOTAマスタからセンタに通知される。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
OTAマスタから送信されるソフトウェア更新処理の進捗状況を示す通知を、何らかの原因でセンタが受信できなかった場合、車両では正常にソフトウェアの更新処理が進んでいるにもかかわらず、センタではソフトウェアの更新処理に異常が生じていると誤った判断を行ってしまう場合がある。このような判断がなされると、ソフトウェアの更新処理に関して車両が管理する更新ステータスとセンタが管理する更新ステータスとの間にずれが生じてしまい、次回のソフトウェアの更新処理に影響を与えてしまうおそれがある。
【0007】
本開示は、上記課題を鑑みてなされたものであり、OTAマスタから送信されるソフトウェア更新処理の進捗状況を示す通知を正常に受信できなかった場合に、ソフトウェア更新処理に異常が生じていると誤った判断をしてしまうことを抑制できるセンタなど、を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本開示技術の一態様は、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタであって、OTAマスタから電子制御ユニットのソフトウェア更新処理の進捗状況を示す通知を受信する通信部と、通信部が受信する通知に基づいて車両側の更新ステータスを管理する制御部と、を備え、制御部は、通信部が、第1通知を受信した後、第1通知の次に受信が予定される第2通知とは異なる第3通知を受信した場合、第1通知から第3通知までの通知を全て受信したものと見なして第3通知に基づいて更新ステータスを設定する、センタである。
【発明の効果】
【0009】
本開示のセンタなどによれば、OTAマスタから送信されるソフトウェア更新処理の進捗状況を示す通知を正常に受信できなかった場合に、ソフトウェア更新処理に異常が生じていると誤った判断をしてしまうことを抑制することができる。
【図面の簡単な説明】
【0010】
【
図1】一実施形態に係るセンタを含むネットワークシステムの全体構成を示すブロック図
【
図6A】センタで実行される更新ステータス管理処理のフローチャート
【
図6B】センタで実行される更新ステータス管理処理のフローチャート
【
図7】センタがOEMに報告するOTAに関する結果の一例を示す図
【発明を実施するための形態】
【0011】
本開示のセンタは、ソフトウェアの更新処理において、ソフトウェア更新処理の進捗状況を示す通知を正しい順序でOTAマスタから受信できている間は、所定の順序で1つずつ更新ステータスを進めてゆき、ソフトウェア更新処理の進捗状況を示す通知を正しい順序でOTAマスタから受信できなかったときには、直近にOTAマスタから受信した通知に基づいた更新ステータスを設定する。これにより、ソフトウェア更新処理に異常が生じていると誤った判断をしてしまうことを抑制することができる。
以下、本開示の一実施形態について、図面を参照しながら詳細に説明する。
【0012】
<実施形態>
[構成]
図1は、本開示の一実施形態に係るセンタを含むネットワークシステムの全体構成を示すブロック図である。
図1に示すネットワークシステムは、車両に搭載された複数の電子制御ユニット40a~40dのソフトウェアを更新するためのシステムであり、車両外にあるセンタ10と、車両内に構築される車載ネットワーク20と、を備える。
【0013】
(1)センタ
センタ10は、ネットワーク70を介して車載ネットワーク20が備える後述のOTAマスタ30と通信可能であり、電子制御ユニットの更新データの送信や、ソフトウェア更新処理の進捗状況を示す通知の受信などの通信を行って、OTAマスタ30に接続された複数の電子制御ユニット40a~40dのソフトウェア更新を管理することができる。このセンタ10は、いわゆるサーバーとしての機能を有する。
【0014】
図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と通信を行うための装置である。
【0015】
図3は、
図2に示したセンタ10の機能ブロック図である。
図3で示すセンタ10は、記憶部16と、通信部17と、制御部18と、を備える。記憶部16は、
図2に示した記憶装置13によって実現される。通信部17及び制御部18は、
図2に示したCPU11がRAM12を用いて記憶装置13に記憶されるプログラムを実行することによって実現される。
【0016】
記憶部16は、車両に搭載された1つ以上の電子制御ユニットのソフトウェア更新処理に関する情報を記憶する。ソフトウェア更新処理に関する情報として、記憶部16は、車両を識別する車両識別情報(車両のID)ごとに、電子制御ユニットで利用可能なソフトウェアを示す情報を関連付けた更新管理情報と、電子制御ユニットのソフトウェアの更新データと、を記憶する。電子制御ユニットで利用可能なソフトウェアを示す情報として、例えば、複数の電子制御ユニットの各ソフトウェアの最新のバージョン情報の組み合わせが定義される。また、ソフトウェア更新処理に関する情報として、記憶部16は、車両で実施されているソフトウェアの更新処理状態を示す更新ステータスを記憶する。
【0017】
通信部17は、OTAマスタ30からソフトウェアの更新確認要求を受信することが可能である。更新確認要求は、例えば、車両において電源又はイグニッション(IGN)がオンされたときに、OTAマスタ30からセンタ10へと送信される情報であって、後述する車両構成情報に基づいて電子制御ユニットの更新データがあるか否かの確認をセンタ10に要求するための情報である。また、通信部17は、OTAマスタ30からの配信パッケージの送信要求(ダウンロード要求)を受信することが可能である。通信部17は、配信パッケージのダウンロード要求を受信すると、後述の制御部18で生成される電子制御ユニットのソフトウェアの更新データを含む配信パッケージをOTAマスタ30に送信する。
【0018】
制御部18は、通信部17がOTAマスタ30から更新確認要求を受信すると、記憶部16に記憶されている更新管理情報に基づいて、更新確認要求に含まれる車両のIDで特定される車両に搭載された電子制御ユニットについてソフトウェアの更新データがあるか否かを判定する。制御部18は、電子制御ユニットのソフトウェアの更新データがあると判定した場合、OTAマスタ30から配信パッケージのダウンロード要求を受信すると、記憶部16に記憶されている該当の更新データを含む配信パッケージを生成する。
【0019】
(2)車載ネットワーク
車載ネットワーク20は、OTAマスタ30と、複数の電子制御ユニット40a~40dと、通信モジュール50と、を備える。OTAマスタ30と通信モジュール50とは、バス60aを介して接続されている。OTAマスタ30と電子制御ユニット40a及び40bとは、バス60bを介して接続されている。OTAマスタ30と電子制御ユニット40c及び40dとは、バス60cを介して接続されている。
【0020】
OTAマスタ30は、バス60a及び通信モジュール50を介してネットワーク70経由でセンタ10と無線による通信が可能である。また、OTAマスタ30は、バス60b~60dを介して電子制御ユニット40a~40dと有線による通信が可能である。このOTAマスタ30は、OTA状態を管理し、ソフトウェア更新シーケンスを制御して更新対象となる電子制御ユニット(以下「ターゲット電子制御ユニット」という)のソフトウェア更新を実施する機能を有する装置であり、センタ10から取得した更新データに基づいて、電子制御ユニット40a~40dのうちターゲット電子制御ユニットのソフトウェア更新を制御する。OTAマスタ30は、セントラルゲートウェイ(CGW)と称される場合もある。
【0021】
図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~60cを介して、通信モジュール50及び電子制御ユニット40a~40dと通信を行うための装置である。
【0022】
図5は、
図4に示したOTAマスタ30の機能ブロック図である。
図5に示すOTAマスタ30は、記憶部37と、通信部38と、制御部39と、を備える。記憶部37は、
図4に示した記憶装置34によって実現される。通信部38及び制御部39は、
図4に示したCPU31がRAM32を用いてROM33に記憶されるプログラムを実行することによって実現される。
【0023】
記憶部37は、複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリの種別に関する情報(種別情報)などを記憶する。この種別情報は、車載ネットワーク20を構成する複数の電子制御ユニット40a~40dの仕様に基づいて予め作成し、車両の製造時に記憶部37に格納してもよいし、ソフトウェアの更新処理時に、後述する通信部38が車載ネットワーク20内の通信によりターゲット電子制御ユニットから取得してもよい。
【0024】
通信部38は、例えば、車両の電源又はイグニッション(IGN)がオンされたことを契機として、ソフトウェアの更新確認要求をセンタ10に送信する。また、通信部38は、更新確認要求に対する応答としてセンタ10から更新データの有無を示す通知を受信する。電子制御ユニットのソフトウェアの更新データがある場合、通信部38は、配信パッケージのダウンロード要求をセンタ10に送信し、センタ10から送信される配信パッケージを受信する。また、通信部38は、ソフトウェアの更新処理時に、通信によってターゲット電子制御ユニットから不揮発性メモリの種別情報を取得してもよい。
【0025】
制御部39は、通信部38が受信した更新確認要求に対する応答に基づき、電子制御ユニットのソフトウェアの更新データの有無を判定する。また、制御部39は、ソフトウェアの更新データがある場合に通信部38がセンタ10から受信した配信パッケージの真正性の検証や、ダウンロードによって記憶部37に格納された1つ以上の更新データのターゲット電子制御ユニットへの転送を行う。さらに、制御部39は、ターゲット電子制御ユニットに更新データをインストールさせ、インストールの完了後にインストールした更新版のソフトウェアを有効とするように指示を行う。
【0026】
複数の電子制御ユニット40a~40dは、車両の各部の動作を制御するための装置(ECU:Electronic Control Unit)である。
図1においては、4つの電子制御ユニット40a~40dを例示したが、電子制御ユニットの数は特に限定されない。例えば、電子制御ユニット40a~40dのソフトウェアの更新処理時に更新データがあることの表示、車両のユーザーや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、及びソフトウェア更新の結果の表示など、各種の表示を行うための表示装置(HMI)が、OTAマスタ30に接続されてもよい。表示装置としては、カーナビゲーションシステムなどを用いることが可能である。また、電子制御ユニットをOTAマスタ30に接続するバスの数も特に限定されない。例えば、上述の表示装置が、バス60a~60c以外のバスでOTAマスタ30に接続されてもよい。
【0027】
通信モジュール50は、センタ10と車両との通信を制御する機能を持ったユニットであり、車載ネットワーク20をセンタ10に接続するための通信機器である。通信モジュール50は、ネットワーク70経由でセンタ10と無線で接続され、OTAマスタ30による車両の認証や更新データのダウンロードなどが行われる。なお、通信モジュール50は、OTAマスタ30に含まれて構成されてもよい。
【0028】
[ソフトウェア更新処理の概要]
OTAマスタ30は、例えば、車両の電源又はイグニッションがオンされたことを契機として、ソフトウェアの更新確認要求をセンタ10に送信する。更新確認要求は、車両を識別するための車両のIDと、車載ネットワーク20に接続される電子制御ユニット40a~40dのハードウェア及びソフトウェアのバージョンなどの電子制御ユニットの状態(システム構成)に関する情報である車両構成情報と、を含む。車両構成情報は、車載ネットワーク20に接続される電子制御ユニット40a~40dから電子制御ユニットの識別番号(ECU_ID)と、電子制御ユニットのソフトウェアバージョンの識別番号(ECU_Software_ID)を取得することで作成可能である。車両のID及び電子制御ユニット40a~40dのソフトウェアのバージョンは、センタ10が車両IDごとに保持する最新のソフトウェアのバージョンとの比較により、電子制御ユニットのソフトウェアの更新データがあるか否かを判定するために用いられる。また、OTAマスタ30は、更新確認要求に対する応答としてセンタ10から更新データの有無を示す通知を受信する。電子制御ユニットのソフトウェアの更新データがある場合、OTAマスタ30は、配信パッケージのダウンロード要求をセンタ10に送信し、センタ10から送信される配信パッケージを受信する。配信パッケージは、更新データの他に、更新データの真正性を検証するための検証用データや、更新データの数、インストール順、ソフトウェア更新時に用いる各種の制御情報などを含んでいてもよい。
【0029】
OTAマスタ30は、受信した更新確認要求に対するセンタ10からの応答に基づいて、電子制御ユニットのソフトウェアの更新データがあるか否かを判定する。また、OTAマスタ30は、センタ10から受信して記憶装置13に格納した配信パッケージの真正性を検証する。また、OTAマスタ30は、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データをインストールさせる。インストールの完了後、OTAマスタ30は、ターゲット電子制御ユニットに対して、インストールした更新版のソフトウェアを有効とするように指示をする。
【0030】
OTAマスタ30は、承諾要求処理において、ソフトウェア更新に対して承諾が必要である旨の通知やソフトウェア更新を承諾した旨の入力を促す通知を、出力装置に出力させる。出力装置としては、表示による通知を行う表示装置や音声による通知を行う音声出力装置などを利用できる。例えば、承諾要求処理において、表示装置を出力装置として用いる場合、OTAマスタ30は、ソフトウェア更新の承諾を求めるための承諾要求画面を表示装置に表示させ、ユーザー又は管理者が承諾した場合に承諾ボタンを押下するなどの特定の入力操作を促す通知を表示装置に表示させることができる。また、OTAマスタ30は、承諾要求処理において、電子制御ユニットのソフトウェアの更新データがあることを通知する文言やアイコンなどを表示装置に表示させたり、ソフトウェア更新処理の実行中における制限事項などを表示装置に表示させたり、することができる。OTAマスタ30は、ユーザー又は管理者から承諾した旨の入力を受け付けると、上述したインストール及びアクティベートの制御処理を実行し、ターゲット電子制御ユニットのソフトウェアを更新する。
【0031】
ソフトウェアの更新処理は、OTAマスタ30がセンタ10から更新データをダウンロードするフェーズ(ダウンロードフェーズ)、ダウンロードした更新データをOTAマスタ30がターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットの格納領域に更新データをインストールするフェーズ(インストールフェーズ)、及びターゲット電子制御ユニットがインストールした更新版のソフトウェアを有効化するフェーズ(アクティベートフェーズ)からなる。
【0032】
ダウンロードは、OTAマスタ30が、センタ10から配信パッケージによって送信された電子制御ユニットのソフトウェアを更新するための更新データを、受信して記憶装置13に記憶する処理である。ダウンロードフェーズでは、ダウンロードの実行だけでなく、ダウンロードの実行可否判断、更新データの検証など、ダウンロードに関する一連の処理の制御を含む。
【0033】
センタ10からOTAマスタ30に送信される更新データは、電子制御ユニットの更新ソフトウェア、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェア又は圧縮データを分割した分割データのいずれを含んでいてもよい。また、更新データは、ターゲット電子制御ユニットのECU_ID(又はシリアル番号)と、更新前の電子制御ユニットのECU_Software_IDを含んでいてもよい。更新データは、上述した配信パッケージとしてダウンロードされるが、配信パッケージには、単一又は複数の電子制御ユニットの更新データが含まれる。
【0034】
インストールは、OTAマスタ30が、センタ10からダウンロードした更新データに基づいて、ターゲット電子制御ユニットに更新ソフトウェア(更新版のプログラム)を書き込む処理である。インストールフェーズでは、インストールの実行だけでなく、インストールの実行可否判断、更新データの転送及び更新ソフトウェアの検証など、インストールに関する一連の処理の制御を含む。
【0035】
更新データが更新ソフトウェアそのものを含む場合は、インストールフェーズにおいて、OTAマスタ30が更新データ(更新ソフトウェア)をターゲット電子制御ユニットに転送する。また、更新データが更新ソフトウェアの圧縮データ、又は差分データ、あるいは分割データを含む場合は、OTAマスタ30がターゲット電子制御ユニットに更新データを転送し、ターゲット電子制御ユニットが更新データから更新ソフトウェアを生成してもよいし、OTAマスタ30が更新データから更新ソフトウェアを生成してから、更新ソフトウェアをターゲット電子制御ユニットに転送してもよい。ここで、更新ソフトウェアの生成は、圧縮データの解凍、差分データ又は分割データの組み付けにより行うことができる。
【0036】
更新ソフトウェアのインストールは、OTAマスタ30からのインストール要求に基づいて、ターゲット電子制御ユニットが行うことができる。あるいは、更新データを受信したターゲット電子制御ユニットが、OTAマスタ30からの明示の指示を受けることなく、自律的にインストールを行ってもよい。
【0037】
アクティベートは、ターゲット電子制御ユニットが、インストールした更新ソフトウェアを有効化(アクティベート)する処理である。アクティベートフェーズでは、アクティベートの実行だけでなく、アクティベートの実行可否判断、実行結果の検証など、アクティベートに関する一連の制御を含む。
【0038】
更新ソフトウェアのアクティベートは、OTAマスタ30からのアクティベート要求に基づいて、ターゲット電子制御ユニットが行うことができる。あるいは、更新データを受信したターゲット電子制御ユニットが、OTAマスタ30からの明示の指示を受けることなく、インストールの完了後に自律的にアクティベートを行ってもよい。
【0039】
なお、ソフトウェアの更新処理は、複数の電子制御ユニットのそれぞれに対して、連続的あるいは並列的に行うことができる。
【0040】
また、本明細書における「ソフトウェアの更新処理」は、ダウンロード、インストール、及びアクティベートの全てを連続して行う処理だけでなく、ダウンロード、インストール、及びアクティベートのうちの一部のみを行う処理も含む。
【0041】
[処理]
次に、
図6A及び
図6Bをさらに参照して、本実施形態のネットワークシステムにおいて実行される処理を説明する。
図6及び
図6Bは、センタ10によって実行される更新ステータス管理処理の手順を説明するフローチャートである。
図6Aの処理と
図6Bの処理とは、結合子X、Y、及びZで結ばれる。
【0042】
この
図6に示す更新ステータス管理処理は、電子制御ユニットのソフトウェアを更新するキャンペーンが存在する場合に開始される。
【0043】
(ステップS601)
センタ10は、OTAマスタ30から通知を受信したか否かを判断する。センタ10が、キャンペーン存在時にOTAマスタ30から受信する通知としては、(a)ユーザーの指示に基づいたキャンペーン、ダウンロード、インストール、アクティベートの各承諾結果、(b)ダウンロード、インストール、アクティベートの各実行前確認、(c)ダウンロード、インストール、アクティベートの各開始報告、(d)ダウンロード、インストール、アクティベートの各進捗報告、(e)ダウンロード、インストール、アクティベートの各完了報告、及び(f)ソフトウェアの更新完了報告など、を例示できる。これらの通知は限定されるものではなく、これらの通知の一部が省略されてもよいし他の通知が追加されてもよい。このステップS601で判断される通知の受信とは、最初の通知であるキャンペーンの承諾結果の受信、又はある通知に基づいて更新ステータスが設定された後における新たな通知の受信をいう。センタ10がOTAマスタ30から通知を受信した場合は(ステップS601、はい)、ステップS602に処理が進み、センタ10がOTAマスタ30から通知を受信していない場合は(ステップS601、いいえ)、ステップS606に処理が進む。
【0044】
(ステップS602)
センタ10は、OTAマスタ30から受信した通知が「ソフトウェアの更新完了報告」であるか否かを判断する。ソフトウェアの更新完了報告を受信できれば、センタ10は、車両側においてソフトウェアの更新処理が正常に完了したと判断することができる。OTAマスタ30から受信した通知がソフトウェアの更新完了報告である場合は(ステップS602、はい)、ステップS609に処理が進み、OTAマスタ30から受信した通知がソフトウェアの更新完了報告ではない場合は(ステップS602、いいえ)、ステップS603に処理が進む。
【0045】
(ステップS603)
センタ10は、OTAマスタ30から今回受信した通知である今回通知(第2通知又は第3通知)が、OTAマスタ30から前回受信した通知である前回通知(第1通知)の次に受信予定の通知であるか否かを判断する。今回通知が前回通知の次に受信予定の通知であるか否かは、ソフトウェアの更新処理において予め定められた処理シーケンスに則って判断することができる。一例として、「ダウンロード完了報告」の通知の次に受信予定である通知は、「インストール承諾結果」の通知との判断になる。OTAマスタ30からの今回通知が前回通知の次に受信予定の通知である場合(今回通知が第2通知である場合)は(ステップS603、はい)、ステップS604に処理が進み、OTAマスタ30からの今回通知が前回通知の次に受信予定の通知ではない場合(今回通知が第3通知である場合)は(ステップS603、いいえ)、ステップS605に処理が進む。
【0046】
(ステップS604)
センタ10は、自らが管理している更新ステータスを、処理を1つ進めた更新ステータスに設定する。更新ステータスの進行順序は、予め定めておくことができる。一例として、現在の更新ステータスが「インストール開始準備」である場合に、次に受信する予定である「インストール開始報告」の通知を正しく受信できたのであれば、この「インストール開始準備」の1つ先の処理である「インストール中」に更新ステータスが設定される。更新ステータスが設定されると、ステップS601に処理が進む。
【0047】
(ステップS605)
センタ10は、自らが管理している更新ステータスを、OTAマスタ30から受信した今回通知に基づいた更新ステータスに設定する。すなわち、センタ10は、前回通知から今回通知までの通知を全て受信したものと見なして、今回通知に基づく内容に更新ステータスを設定(変更)する。一例として、現在の更新ステータスが「インストール開始準備」である場合に、次に受信する予定ではない「インストール完了報告」の通知が受信されたのであれば、この今回通知に基づいて「インストール完了」に更新ステータスが設定される。更新ステータスが設定されると、ステップS601に処理が進む。
【0048】
(ステップS606)
センタ10は、OTAマスタ30から車両構成情報を取得したか否かを判断する。車両構成情報は、車両の電源又はイグニッションがオンされたことを契機として、OTAマスタ30から送信されるソフトウェアの更新確認要求によって取得される。OTAマスタ30から車両構成情報を取得した場合は(ステップS606、はい)、ステップS607に処理が進み、OTAマスタ30から車両構成情報を取得しない場合は(ステップS606、いいえ)、ステップS601に処理が進む。
【0049】
(ステップS607)
センタ10は、OTAマスタ30から取得した車両構成情報に基づいて、OTAマスタ30から「ソフトウェアの更新完了報告」の通知を受信していないソフトウェアの更新処理が正常に完了したものと判断できるか否かを判断する。この判断は、ソフトウェアの更新処理が正常に完了した場合にターゲット電子制御ユニットが示すソフトウェアバージョンが、車両構成情報に示されたターゲット電子制御ユニットのソフトウェアバージョンと一致するか否かで行われる。ソフトウェアの更新処理が正常に完了したものと判断できる場合は(ステップS607、はい)、ステップS609に処理が進み、ソフトウェアの更新処理が正常に完了したものと判断できない場合は(ステップS607、いいえ)、ステップS608に処理が進む。
【0050】
(ステップS608)
センタ10は、自らが管理している更新ステータスを、ソフトウェアの更新処理が完了していないことを示す「更新処理未完了」に設定する。更新ステータスが設定されると、更新ステータス管理処理が終了する。
【0051】
(ステップS609)
センタ10は、自らが管理している更新ステータスを、ソフトウェアの更新処理が完了していることを示す「更新処理完了」に設定する。更新ステータスが設定されると、更新ステータス管理処理が終了する。
【0052】
センタ10は、上記ステップS608及びステップS609で設定した「更新処理完了」及び「更新処理未完了」の更新ステータスに基づいて、OTAに関する結果を完成車メーカーであるOEM(Original Equipment Manufacturer)などに報告してもよい。
【0053】
図7に、センタ10がOEMに報告するOTAに関する結果(表示画面)の一例を示す。
図7の例では、上図に、市場に流通している更新対象となる全ての車両(更新対象総車両)における、OTA更新を許可している(OTA有効)車両とOTA更新を許可していない(OTA無効)車両との比率を示している。下図に、OTA更新を許可している車両(OTA有効車両)について、ソフトウェアの更新処理の実施割合を示している。更新ステータスが「更新処理完了」となった車両は「更新済み」に含まれ、更新ステータスが「更新処理未完了」となった車両は「未更新」に含まれる。
【0054】
<作用・効果>
以上のように、本開示の一実施形態に係るセンタ10は、ソフトウェアの更新処理において、更新ステータスの通知を正しい順序でOTAマスタ30から受信できている間は、所定の順序で1つずつ更新ステータスを進めてゆき、更新ステータスの通知を正しい順序でOTAマスタ30から受信できなかったときには、直近にOTAマスタ30から受信した通知(今回通知)に基づいた更新ステータスに設定する。これにより、センタ10がソフトウェアの更新処理に異常が生じていると誤った判断をしてしまうことを抑制することができる。
【0055】
また、本実施形態に係るセンタ10は、ソフトウェアの更新処理において、最後の通知であるソフトウェアの更新完了報告を受信できなかったときには、次回車両から車両構成情報が送信されるタイミングで、この車両構成情報に基づいてソフトウェアの更新処理が正常に完了したか否かを判断する。これにより、センタ10がソフトウェアの更新処理に異常が生じていると誤った判断をしてしまうことを抑制することができる。
【0056】
以上、本開示技術の一実施形態を説明したが、本開示は、センタだけでなく、プロセッサとメモリを備えたセンタが実行する更新管理方法、更新管理プログラム、あるいは更新管理プログラムを記憶したコンピューター読み取り可能な非一時的な記憶媒体など、として捉えることが可能である。
【産業上の利用可能性】
【0057】
本開示技術は、電子制御ユニットのソフトウェアを更新するためのネットワークシステムに利用できる。
【符号の説明】
【0058】
10 センタ
11、31 CPU
12、32 RAM
13、34 記憶装置
14、36 通信装置
16、37 記憶部
17、38 通信部
18、39 制御部
20 車載ネットワーク
30 OTAマスタ
33 ROM
35 マイクロコンピューター
40a~40d 電子制御ユニット(ECU)
50 通信モジュール
60a~60c バス
70 ネットワーク