JP2023012131A - ソフトウェアの更新を行うシステム - Google Patents

ソフトウェアの更新を行うシステム Download PDF

Info

Publication number
JP2023012131A
JP2023012131A JP2021115603A JP2021115603A JP2023012131A JP 2023012131 A JP2023012131 A JP 2023012131A JP 2021115603 A JP2021115603 A JP 2021115603A JP 2021115603 A JP2021115603 A JP 2021115603A JP 2023012131 A JP2023012131 A JP 2023012131A
Authority
JP
Japan
Prior art keywords
software
update
update data
electronic control
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021115603A
Other languages
English (en)
Inventor
智康 石川
Tomoyasu Ishikawa
俊介 谷森
Shunsuke Tanimori
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2021115603A priority Critical patent/JP2023012131A/ja
Publication of JP2023012131A publication Critical patent/JP2023012131A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

Figure 2023012131000001
【課題】ソフトウェアのインストール又はアクティベートを失敗した場合、この失敗に伴って増加するソフトウェアの更新が完了するまでにかかる時間を抑制することができるシステムを提供する。
【解決手段】車両に搭載された電子制御ユニットのソフトウェアを更新するための更新データを送信するセンタと、センタから受信した更新データに基づいて、電子制御ユニットのソフトウェアの更新処理を制御するOTAマスタを備えた車両と、を含むシステムであって、センタは、第1更新データと、第1更新データに紐付いた第2更新データとを、車両に送信し、OTAマスタは、第1更新データに基づいて電子制御ユニットのソフトウェアの更新処理を行い、第1更新データに基づいた電子制御ユニットのソフトウェアの更新が失敗した場合は、第2更新データに基づくソフトウェアを実行する。
【選択図】図1

Description

本開示は、車両に搭載された電子制御ユニットのソフトウェアの更新を行うシステムに関する。
車両には、車両の動作を制御するための複数の電子制御ユニット(ECU:Electronic Control Unit)が搭載されている。電子制御ユニットは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部である不揮発性メモリとを備え、プロセッサが不揮発性メモリに記憶されるソフトウェアを実行することにより電子制御ユニットの制御機能を実現する。各電子制御ユニットが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各電子制御ユニットの機能を改善したり、新たな車両制御機能を追加したりすることができる。
電子制御ユニットのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネットなどの通信ネットワークとを無線で接続し、車両のソフトウェアの更新処理を担う装置が、無線通信を介してサーバーからソフトウェアをダウンロードし、ダウンロードしたソフトウェアを電子制御ユニットに書き込んでインストールし、インストールしたソフトウェアを有効化するアクティベートを行うことにより、電子制御ユニットのソフトウェアの更新や追加を行うOTA(Over The Air)技術が知られている。例えば、特許文献1を参照。
特開2017-149323号公報
ダウンロードしたソフトウェアを電子制御ユニットに書き込む途中で異常などが発生してインストールが失敗した場合、最初からインストールをやり直す(再インストールを行う)必要がある。また、電子制御ユニットに書き込まれたソフトウェアを有効化する途中で異常などが発生してアクティベートが失敗した場合、再度アクティベートを行う必要がある。このように、ソフトウェアのインストール以降の更新処理を失敗してしまうと、ソフトウェアの更新が完了するまでに時間がかかる。
本開示は、上記課題を鑑みてなされたものであり、ソフトウェアのインストール又はアクティベートを失敗した場合、この失敗に伴って増加するソフトウェアの更新が完了するまでにかかる時間を抑制することができるシステムを、提供することを目的とする。
上記課題を解決するために、本開示技術の一態様は、車両に搭載された電子制御ユニットのソフトウェアを更新するための更新データを送信するセンタと、センタから受信した更新データに基づいて、電子制御ユニットのソフトウェアの更新処理を制御するOTAマスタを備えた車両と、を含むシステムであって、センタは、第1更新データと、第1更新データに紐付いた第2更新データとを、車両に送信し、OTAマスタは、第1更新データに基づいて電子制御ユニットのソフトウェアの更新処理を行い、第1更新データに基づいた電子制御ユニットのソフトウェアの更新が失敗した場合は、第2更新データに基づくソフトウェアを実行する、システムである。
本開示のシステムによれば、メインデータによるソフトウェアのインストール又はアクティベートを失敗した場合、サブデータによるソフトウェアを素早く実行させることができるので、この失敗に伴って増加するソフトウェアの更新が完了するまでの時間を抑制することができる。
実施形態に係るシステムの全体構成を示すブロック図 センタの概略構成を示すブロック図 センタの機能ブロック図 OTAマスタの概略構成を示すブロック図 OTAマスタの機能ブロック図 センタが行うダウンロード処理手順のフローチャート OTAマスタ及びターゲット電子制御ユニットが行う具体例1によるインストール及びアクティベートの処理手順のフローチャート OTAマスタ及びターゲット電子制御ユニットが行う具体例2によるインストール及びアクティベートの処理手順のフローチャート OTAマスタ及びターゲット電子制御ユニットが行う具体例2によるインストール及びアクティベートの処理手順のフローチャート
本開示による電子制御ユニットのソフトウェアの更新を行うシステムでは、メインデータによるソフトウェアのインストール又はアクティベートを失敗した場合、サブデータによるソフトウェアを素早く実行させることができる。よって、ソフトウェアの更新が完了するまでの時間を抑制することができる。
以下、本開示の一実施形態について、図面を参照しながら詳細に説明する。
<実施形態>
[システム構成]
図1は、本開示の一実施形態に係るネットワークで繋がるシステムの全体構成を示すブロック図である。図1に示すシステムは、車両に搭載された複数の電子制御ユニット(ECU)50a~50dのソフトウェアを更新するためのシステムであり、車両外にあるセンタ10と、車両内に構築される車載ネットワーク90と、車両外にある表示装置95と、を備える。
(1)センタ
センタ10は、ネットワーク100を介して、車載ネットワーク90が備える後述のOTAマスタ30と通信可能であり、電子制御ユニット50a~50dのソフトウェアの更新データ及び更新処理の手順を定義した情報の送信や、ソフトウェア更新処理の進捗状況を示す通知の受信などを行って、OTAマスタ30に接続された複数の電子制御ユニット50a~50dのソフトウェア更新を制御及び管理することができる。このセンタ10は、いわゆるサーバーとしての機能を有する。また、センタ10は、ネットワーク100を介して、表示装置95と通信可能であり、電子制御ユニット50a~50dのソフトウェア更新の情報を通知することができる。
図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や表示装置95と通信を行うための装置である。
図3は、図2に示したセンタ10の機能ブロック図である。図3で示すセンタ10は、記憶部16と、通信部17と、制御部18と、HMI機能部19と、を備える。記憶部16は、図2に示した記憶装置13によって実現される。通信部17、制御部18、及びMI機能部19は、図2に示したCPU11がRAM12を用いて記憶装置13に記憶されるプログラムを実行することによって実現される。
記憶部16は、車両に搭載された1つ以上の電子制御ユニットのソフトウェア更新処理に関する情報を記憶する。ソフトウェア更新処理に関する情報として、記憶部16は、車両を識別する車両識別情報(車両ID)ごとに、電子制御ユニット50a~50dで利用可能なソフトウェアを示す情報を関連付けた更新管理情報と、電子制御ユニット50a~50dのソフトウェアの更新データとを、少なくとも記憶する。電子制御ユニット50a~50dで利用可能なソフトウェアを示す情報としては、例えば、複数の電子制御ユニット50a~50dの各ソフトウェアの最新のバージョン情報の組み合わせが定義される。記憶部16に記憶される更新データには、更新によってソフトウェアに提供される機能の全てに対応した「第1更新データ」と、この第1更新データに紐付いたデータであって、更新によってソフトウェアに提供される機能の一部のみに対応した「第2更新データ」とがある。一例として、第1更新データを、ソフトウェアに必須機能A、必須機能B、及び任意機能C(全ての制御)を提供するデータとし、第2更新データを、ソフトウェアに必須機能A及び必須機能Bのみ(最低限の機能に制限した縮退制御など)を提供するデータとすることができる。また、ソフトウェア更新処理に関する情報として、記憶部16は、車両で実施されているソフトウェアの更新状態を示す更新ステータスを記憶することができる。また、ソフトウェア更新処理に関する情報として、記憶部16は、OTAマスタ30に対して制御の指示を行うための、ソフトウェア更新処理の手順を示した更新シーケンスに関する情報を記憶することができる。
通信部17は、OTAマスタ30との間や表示装置95との間で、データ、情報、及び要求などの送信及び受信を行う送信部及び受信部として機能する。通信部17は、OTAマスタ30からソフトウェアの更新確認要求を受信する(受信部)。更新確認要求は、例えば、車両において電源又はイグニッションがオンされた(以下「電源ON」という)ときに、OTAマスタ30からセンタ10へと送信される情報であって、後述する車両構成情報に基づいて電子制御ユニット50a~50dの更新データがあるか否かの確認をセンタ10に要求するための情報である。また、通信部17は、OTAマスタ30から受信した更新確認要求に応答して、更新データの有無を示す情報をOTAマスタ30に送信する(送信部)。また、通信部17は、OTAマスタ30からの配信パッケージの送信要求(ダウンロード要求)を受信する(受信部)。また、通信部17は、配信パッケージのダウンロード要求を受信すると(受信部)、後述する制御部18で生成される電子制御ユニット50a~50dのソフトウェアの更新データなどを含む配信パッケージを、OTAマスタ30に送信する(送信部)。また、通信部17は、HMI機能部19の指示に基づいて、表示装置95にソフトウェアの更新状態を通知することができる。
制御部18は、通信部17がOTAマスタ30から更新確認要求を受信すると、記憶部16に記憶されている更新管理情報に基づいて、更新確認要求に含まれる車両IDで特定される車両に搭載された電子制御ユニット50a~50dについてソフトウェアの更新データがあるか否かを判定する。制御部18による更新データがあるか否かの判定結果は、通信部17によってOTAマスタ30に送信される。制御部18は、電子制御ユニット50a~50dのソフトウェアの更新データがあると判定した場合、OTAマスタ30から配信パッケージのダウンロード要求を受信すると、記憶部16に記憶されている該当する更新データ(第1更新データ及び/又は第2更新データ)などを含む1つ又は複数の配信パッケージを生成する。
HMI機能部19は、通信部17を介して、車両に搭載された電子制御ユニット50a~50dのソフトウェアの更新状態などの情報を、必要に応じて表示装置95に通知する処理を行う。表示装置95は、車両のユーザーや管理者が所有するスマートフォンなどの装置であり、情報の表示などを行うために用いられるヒューマンマシンインタフェース(HMI)である。
(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を介して接続されている。
OTAマスタ30は、バス60a及び通信モジュール80を介してネットワーク100経由でセンタ10及び表示装置95と無線による通信が可能である。また、OTAマスタ30は、バス60b~60dを介して電子制御ユニット50a~50d及び表示装置70と有線による通信が可能である。このOTAマスタ30は、OTA状態を管理し、ソフトウェア更新処理の流れである更新シーケンスを制御して更新対象となる電子制御ユニット(以下「ターゲット電子制御ユニット」という)のソフトウェア更新を実施する機能を有する装置である。OTAマスタ30は、センタ10から取得した更新データなどに基づいて、電子制御ユニット50a~50dのうちターゲット電子制御ユニットのソフトウェア更新を制御する。OTAマスタ30は、セントラルゲートウェイ(CGW)と称される場合もある。
図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のそれぞれと通信を行うための装置である。
図5は、図4に示したOTAマスタ30の機能ブロック図である。図5に示すOTAマスタ30は、記憶部37と、通信部38と、制御部39と、判定部40と、を備える。記憶部37は、図4に示した記憶装置34によって実現される。通信部38、制御部39、及び判定部40は、図4に示したCPU31がRAM32を用いてROM33に記憶されるプログラムを実行することによって実現される。
記憶部37は、複数の電子制御ユニット50a~50dのソフトウェア更新を実行するためのプログラム(OTAマスタ30の制御用プログラム)や、ソフトウェア更新を実行する際に用いる各種データの他、センタ10からダウンロードしたソフトウェアの更新データ(第1更新データ及び第2更新データ)などを記憶する。また、記憶部37は、複数の電子制御ユニット50a~50dのそれぞれに搭載される不揮発性メモリの種別に関する情報を記憶することができる。
通信部38は、センタ10との間や表示装置95との間で、データ、情報、及び要求などの送信及び受信を行う送信部及び受信部として機能する。通信部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に送信する(送信部)。また、通信部38は、制御部39の指示に基づいて、表示装置70や表示装置95にソフトウェアの更新状態を通知することができる。
制御部39は、通信部38が受信した更新確認要求に対するセンタ10からの応答に基づいて、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定する。また、制御部39は、通信部38がセンタ10から配信パッケージで受信(ダウンロード)して記憶部37に格納した更新データ(第1更新データ及び第2更新データ)の真正性を検証する。また、制御部39は、センタ10から受信(ダウンロード)した更新データを用い、電子制御ユニット50a~50dのソフトウェア更新処理(インストール、アクティベートなど)を制御する。具体的には、制御部39は、ダウンロードした更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データに基づく更新ソフトウェアをインストールさせる。インストールの完了後、制御部39は、ターゲット電子制御ユニットに対して、インストールした更新ソフトウェアを有効化させるアクティベートを指示する。このソフトウェア更新処理の際、制御部39は、後述する判定部40の判定結果に基づいて、第1更新データ及び第2更新データのいずれに基づくソフトウェアを実行すべきかを判断する。
複数の電子制御ユニット50a~50dは、車両の各部の動作を制御するための装置(ECU)である。図1においては、車載ネットワーク90が4つの電子制御ユニット50a~50dを備えている例を示したが、電子制御ユニットの個数は特に限定されない。また、電子制御ユニット50a~50dをOTAマスタ30に接続するバスの本数も特に限定されない。
表示装置70は、電子制御ユニット50a~50dのソフトウェアの更新処理時に更新データがあることの表示、車両のユーザーや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、及びソフトウェア更新の結果や状態の表示など、各種の表示を行うために用いられるヒューマンマシンインタフェース(HMI)である。表示装置70としては、典型的にはカーナビゲーションシステムの表示装置を用いることができるが、ソフトウェアの更新処理時に必要な情報を表示可能なものであれば特に限定されない。なお、図1に示すバス60dには、表示装置70に加えて電子制御ユニットなどがさらに接続されていてもよい。
通信モジュール80は、センタ10と車両との通信を制御する機能を持ったユニットであり、車載ネットワーク90をセンタ10や表示装置95に接続するための通信機器である。通信モジュール80は、ネットワーク100経由でセンタ10と無線で接続され、OTAマスタ30による車両の認証や更新データのダウンロードなどが行われる。また、通信モジュール80は、ネットワーク100経由で表示装置95と無線で接続され、ソフトウェアの更新状態などの通知が行われる。この通信モジュール80は、OTAマスタ30に含まれて構成されてもよい。
[ソフトウェア更新処理の概要]
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から受信したダウンロード要求に応じて、更新データ(第1更新データ及び第2更新データ)などを含む配信パッケージをOTAマスタ30に送信する。配信パッケージは、更新データの他に、更新データの真正性を検証するための検証用データや、更新データの数、種別情報、ソフトウェア更新時に用いる各種の制御情報などを含んでいてもよい。
OTAマスタ30は、センタ10から受信した更新確認要求に対する応答に基づいて、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定する。また、OTAマスタ30は、センタ10から受信して記憶装置13に格納した配信パッケージの真正性を検証する。また、OTAマスタ30は、配信パッケージでダウンロードした更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データをインストールさせる。インストールの完了後、OTAマスタ30は、ターゲット電子制御ユニットに対して、インストールさせた更新版のソフトウェアを有効とするアクティベートを行うように指示をする。
また、OTAマスタ30は、承諾要求処理において、ソフトウェア更新に対して承諾が必要である旨の通知やソフトウェア更新を承諾した旨の入力を促す通知を、出力装置に出力させる。出力装置としては、車載ネットワーク90に設けられた表示装置70や、音声による通知を行う音声出力装置(図示せず)などを利用できる。例えば、承諾要求処理において、表示装置70を出力装置として用いる場合、OTAマスタ30は、ユーザー又は管理者にソフトウェア更新の承諾を求めるための承諾要求画面を表示装置70に表示させたり、ユーザー又は管理者が承諾する場合には承諾ボタンを押下するなどの特定の入力操作を促す通知を表示装置70に表示させたり、することができる。また、OTAマスタ30は、承諾要求処理において、電子制御ユニット50a~50dのソフトウェアの更新データがあることを通知する文言やアイコンなどを表示装置70に表示させたり、ソフトウェア更新処理の実行中における制限事項などを表示装置70に表示させたり、することができる。OTAマスタ30は、ユーザー又は管理者から承諾した旨の入力を受け付けると、上述したインストール及びアクティベートの制御処理を実行し、ターゲット電子制御ユニットのソフトウェアを更新する。
ここで、ターゲット電子制御ユニットの不揮発性メモリが、ソフトウェアなどのデータを格納するための1つの格納領域を有するシングルバンクメモリである場合は、原則的にインストールとアクティベートとがひと続きに行われるため、インストールの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。なお、シングルバンクメモリのターゲット電子制御ユニットであっても、センタ10から指示される更新シーケンスに関する情報によっては、インストール完了の状態で更新処理を一時的に停止、つまりアクティベートを保留(待機)することが要求されることもあり得る。また、ターゲット電子制御ユニットの不揮発性メモリが、ソフトウェアなどのデータを格納するための2つの格納領域を有するデュアルバンクメモリである場合は、少なくとも、インストールの実行後かつアクティベートの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。なお、ターゲット電子制御ユニットの不揮発性メモリがデュアルバンクメモリである場合には、インストール実行前のソフトウェアの更新に対する承諾要求処理は、行われてもよいし、省略されてもよい。
ソフトウェア更新処理は、OTAマスタ30がセンタ10から更新データをダウンロードするフェーズ(ダウンロードフェーズ)、ダウンロードした更新データをOTAマスタ30がターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットの格納領域に更新データに基づく更新ソフトウェアをインストールするフェーズ(インストールフェーズ)、及びターゲット電子制御ユニットがインストールした更新ソフトウェアを有効化するフェーズ(アクティベートフェーズ)からなる。
ダウンロードは、OTAマスタ30が、センタ10から配信パッケージによって送信された電子制御ユニットのソフトウェアを更新するための更新データ(第1更新データ及び第2更新データ)を、受信して記憶部37に記憶する処理である。ダウンロードによる更新データの受信については、ダウンロードフェーズでは、ダウンロードの実行だけでなく、ダウンロードの実行可否判断、更新データの検証など、ダウンロードに関する一連の処理の制御を含む。
センタ10からOTAマスタ30に送信される更新データは、電子制御ユニットの更新ソフトウェア(全データ又は差分データ)、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェア又は圧縮データを分割した分割データのいずれを含んでいてもよい。また、更新データは、ターゲット電子制御ユニットのECU_ID(又はシリアル番号)と、更新前のターゲット電子制御ユニットのECU_Software_IDとを、含んでいてもよい。更新データは、上述した配信パッケージとしてダウンロードされるが、配信パッケージには、単一の電子制御ユニット又は複数の電子制御ユニットの更新データが含まれる。
インストールは、OTAマスタ30が、センタ10からダウンロードした更新データに基づいて、ターゲット電子制御ユニットの不揮発性メモリに更新ソフトウェア(更新版のプログラム)を書き込む処理である。本実施形態のインストールフェーズでは、第1更新データに基づくソフトウェアのインストールの成功の可否によって、電子制御ユニットの更新内容を異ならせることを行う(後述する)。このインストールフェーズでは、インストールの実行だけでなく、インストールの実行可否判断、更新データの転送及び更新ソフトウェアの検証など、インストールに関する一連の処理の制御を含む。
更新データが更新ソフトウェアそのもの(全データ)を含む場合は、インストールフェーズにおいて、OTAマスタ30が更新データ(更新ソフトウェア)をターゲット電子制御ユニットに転送する。また、更新データが更新ソフトウェアの圧縮データ、又は差分データ、あるいは分割データを含む場合は、OTAマスタ30がターゲット電子制御ユニットに更新データを転送し、ターゲット電子制御ユニットが更新データから更新ソフトウェアを生成してもよいし、OTAマスタ30が更新データから更新ソフトウェアを生成してから、更新ソフトウェアをターゲット電子制御ユニットに転送してもよい。ここで、更新ソフトウェアの生成は、圧縮データの解凍や、差分データ又は分割データの組み付け(統合)により行うことができる。
更新ソフトウェアのインストールは、OTAマスタ30からのインストール要求に基づいて、ターゲット電子制御ユニットが行うことができる。なお、更新データを受信した特定のターゲット電子制御ユニットについては、OTAマスタ30からの明示の指示を受けることなく、自律的にインストールを行ってもよい。
アクティベートは、ターゲット電子制御ユニットが、自身の不揮発性メモリにインストールした更新ソフトウェアを有効化(アクティベート)する処理である。本実施形態のアクティベートフェーズでは、第1更新データに基づくソフトウェアのアクティベートの成功の可否によって、電子制御ユニットの更新内容を異ならせることを行う(後述する)。アクティベートフェーズでは、アクティベートの実行だけでなく、アクティベートの実行可否判断、アクティベートに対する車両のユーザー又は管理者への承諾要求、実行結果の検証など、アクティベートに関する一連の制御を含む。
更新ソフトウェアのアクティベートは、OTAマスタ30からのアクティベート要求に基づいて、ターゲット電子制御ユニットが行うことができる。なお、更新データを受信した特定のターゲット電子制御ユニットについては、OTAマスタ30からの明示の指示を受けることなく、インストールの完了後に自律的にアクティベートを行ってもよい。
なお、ソフトウェア更新処理は、複数のターゲット電子制御ユニットのそれぞれに対して、連続的あるいは並列的に行うことができる。
また、本明細書における「ソフトウェア更新処理」は、ダウンロード、インストール、及びアクティベートの全てを連続して行う処理だけでなく、ダウンロード、インストール、及びアクティベートのうちの一部のみを行う処理も含む。
[処理]
次に、図6、図7、図8A、及び図8Bをさらに参照して、本実施形態に係るシステムにおいて実行されるソフトウェア更新処理に関する具体例をいくつか説明する。
(1)ダウンロードの具体例
図6は、センタ10の各構成が実行するダウンロードの具体例を説明するフローチャートである。この図6に示すダウンロード処理は、OTAマスタ30が送信する更新確認要求を、センタ10が受信することによって開始される。
(ステップS601)
センタ10の通信部17は、OTAマスタ30からソフトウェアの更新確認要求があったか否かを判断する。更新確認要求があった場合は(ステップS601、はい)、ステップS602に処理が進み、更新確認要求がない場合は(ステップS601、いいえ)、ステップS604に処理が進む。
(ステップS602)
センタ10の制御部18は、更新が必要なソフトウェアの有無をチェックする。このチェックは、更新確認要求に含まれる車両構成情報から取得する車両に搭載される各電子制御ユニット50a~50dのソフトウェアの現バージョンと、センタ10の記憶部16に記憶されている各ソフトウェアの最新バージョンとに、基づいて行われる。更新が必要なソフトウェアの有無のチェックが行われると、ステップS603に処理が進む。
(ステップS603)
センタ10の制御部18は、センタ10の記憶部16に記憶されている更新管理情報に基づいて、更新確認要求に含まれる車両に搭載された電子制御ユニット50a~50dについてソフトウェアの更新データがあるか否かを判断し、判断結果に基づいて更新データの有無を示す情報をOTAマスタ30に送信する。更新データの有無が送信されると、ステップS604に処理が進む。
(ステップS604)
センタ10の通信部17は、OTAマスタ30から配信パッケージのダウンロード要求があったか否かを判断する。ダウンロード要求があった場合は(ステップS604、はい)、ステップS605に処理が進み、ダウンロード要求がない場合は(ステップS604、いいえ)、ステップS601に処理が進む。
(ステップS605)
センタ10の制御部18は、ソフトウェアの更新データがあると判断した電子制御ユニットであるターゲット電子制御ユニット(以下「ターゲットECU」という)について、第1更新データ及び第2更新データなどを含んだ配信パッケージを生成する。なお、第1更新データと第2更新データとは、同一の配信パッケージに含めずに、個別の配信パッケージに含められてもよい。配信パッケージが生成されると、ステップS606に処理が進む。
(ステップS606)
センタ10の通信部17は、配信パッケージをOTAマスタ30に送信する。配信パッケージが送信されると、ステップS601に処理が進む。
(2)インストール及びアクティベートの具体例1
図7は、OTAマスタ30及びターゲットECUが行う具体例1によるインストール及びアクティベートの処理手順を説明するフローチャートである。この具体例1による更新処理は、第2更新データに基づくソフトウェアをOTAマスタ30が実行する場合の例である。
この具体例1の処理は、OTAマスタ30によるターゲットECUの第1更新データ及び第2更新データを含む配信パッケージのセンタ10からのダウンロードが完了した後に開始される。
(ステップS701)
OTAマスタ30の制御部39は、センタ10から配信パッケージによって取得した第1更新データ及び第2更新データを記憶部37に記憶する。第1更新データ及び第2更新データが記憶されると、ステップS702に処理が進む。
(ステップS702)
OTAマスタ30の制御部39は、記憶部37に記憶した更新データ(第1更新データ及び第2更新データ)の検証を行う。更新データの検証が成功した場合は(ステップS702、成功)、ステップS703に処理が進み、更新データの検証が失敗した場合は(ステップS702、失敗)、インストールを開始することなく本インストール及びアクティベートの処理を終了する。
(ステップS703)
OTAマスタ30の制御部39及びターゲットECUは、第1更新データに基づくソフトウェアを、ターゲットECUの不揮発性メモリの格納領域に書き込む処理であるインストールを実行する。ターゲットECUが複数ある場合には、一斉に又は所定の順序でインストールが行われる。ターゲットECUに対するインストールが実行されると、ステップS704に処理が進む。
(ステップS704)
OTAマスタ30の判定部40は、ターゲットECUにおける第1更新データに基づくソフトウェアのインストールが完了したか否かを判定する。OTAマスタ30は、インストールの完了を、ターゲットECUからの完了通知がそれぞれあったことで判断してもよいし、インストールの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えばインストールに要する最大の時間以上に設定することができる。第1更新データに基づくソフトウェアのインストールが完了したと判定された場合は(ステップS704、成功)、ステップS705に処理が進む。一方、エラーを検知したなど、第1更新データに基づくソフトウェアのインストールが正常に完了していないと判定された場合は(ステップS704、失敗)、ステップS708に処理が進む。この場合、OTAマスタ30から更新制御の途中であるターゲットECUに対して、更新制御の停止/中止を指示してもよい。
(ステップS705)
OTAマスタ30の制御部39及びターゲットECUは、ターゲットECUの不揮発性メモリの格納領域に書き込まれた第1更新データに基づくソフトウェアを有効化するアクティベートを実行する。ターゲットECUが複数ある場合には、一斉に又は所定の順序でアクティベートが行われる。ターゲットECUに対するアクティベートが実行されると、ステップS706に処理が進む。
(ステップS706)
OTAマスタ30の判定部40は、ターゲットECUにおける第1更新データに基づくソフトウェアのアクティベートが完了したか否かを判定する。OTAマスタ30は、アクティベートの完了を、ターゲットECUからの完了通知があったことで判断してもよいし、アクティベートの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えばアクティベートに要する時間以上に設定することができる。ターゲットECUにおける第1更新データに基づくソフトウェアのアクティベートが完了したと判定された場合は(ステップS706、成功)、ステップS707に処理が進む。一方、エラーを検知したなど、ターゲットECUにおける第1更新データに基づくソフトウェアのアクティベートが正常に完了していないと判定された場合は(ステップS706、失敗)、ステップS708に処理が進む。この場合、OTAマスタ30から更新制御の途中であるターゲットECUに対して、更新制御の停止/中止を指示してもよい。
(ステップS707)
ターゲットECUは、不揮発性メモリの格納領域に書き込まれ、かつ、アクティベートが完了した第1更新データに基づくソフトウェアを実行する。これにより、ターゲットECUに対するソフトウェアの更新が完了し、本インストール及びアクティベートの処理が終了する。
(ステップS708)
OTAマスタ30の制御部39は、記憶部37に記憶した第2更新データに基づくソフトウェアを実行する。この第2更新データに基づくソフトウェアの実行に際し、OTAマスタ30は、車両に搭載された表示装置70や、ネットワーク100で接続されるユーザー所有の車両に搭載されていない表示装置95などに、第2更新データに基づくソフトウェアを実行する旨(一部の制御が利用できないことなど)を通知してもよい。表示装置95の通知にあたっては、OTAマスタ30が直接行ってもよいし、センタ10がOTAマスタ30から取得する情報に基づいて間接的に行ってもよい。また、OTAマスタ30は、各電子制御ユニット50a~50dに対して、第2更新データに基づくソフトウェアの実行に伴う通信ネットワーク90の通信仕様(CANなど)の変更を実施してもよい。これにより、ターゲットECUに対するソフトウェアの簡易的な更新が完了し、本インストール及びアクティベートの処理が終了する。なお、ターゲットECUに対する簡易的なソフトウェアの更新は、再度実施される第1更新データに基づくソフトウェアの更新が正常に完了するまでの一時的な措置として用いられる。
(3)インストール及びアクティベートの具体例2
図8A及び図8Bは、OTAマスタ30及びターゲットECUが行う具体例2によるインストール及びアクティベートの処理手順を説明するフローチャートである。図8Aの処理と図8Bの処理とは、結合子X、Y、及びZでそれぞれ結ばれる。この具体例2による更新処理は、第2更新データに基づくソフトウェアをターゲットECUが実行する場合の例である。
この具体例2の処理は、OTAマスタ30によるターゲットECUの第1更新データ及び第2更新データを含む配信パッケージのセンタ10からのダウンロードが完了した後に開始される。
(ステップS801)
OTAマスタ30の制御部39は、センタ10から配信パッケージによって取得した第1更新データ及び第2更新データを記憶部37に記憶する。第1更新データ及び第2更新データが記憶されると、ステップS802に処理が進む。
(ステップS802)
OTAマスタ30の制御部39は、記憶部37に記憶した更新データ(第1更新データ及び第2更新データ)の検証を行う。更新データの検証が成功した場合は(ステップS802、成功)、ステップS803に処理が進み、更新データの検証が失敗した場合は(ステップS802、失敗)、インストールを開始することなく本インストール及びアクティベートの処理を終了する。
(ステップS803)
OTAマスタ30の制御部39及びターゲットECUは、第1更新データに基づくソフトウェアを、ターゲットECUの不揮発性メモリの格納領域に書き込む処理であるインストールを実行する。ターゲットECUが複数ある場合には、一斉に又は所定の順序でインストールが行われる。ターゲットECUに対する第1更新データに基づくソフトウェアインストールが実行されると、ステップS804に処理が進む。
(ステップS804)
OTAマスタ30の判定部40は、ターゲットECUにおける第1更新データに基づくソフトウェアのインストールが完了したか否かを判定する。OTAマスタ30は、インストールの完了を、ターゲットECUからの完了通知がそれぞれあったことで判断してもよいし、インストールの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えばインストールに要する最大の時間以上に設定することができる。第1更新データに基づくソフトウェアのインストールが完了したと判定された場合は(ステップS804、成功)、ステップS805に処理が進む。一方、エラーを検知したなど、第1更新データに基づくソフトウェアのインストールが正常に完了していないと判定された場合は(ステップS804、失敗)、ステップS807に処理が進む。この場合、OTAマスタ30から更新制御の途中であるターゲットECUに対して、更新制御の停止/中止を指示してもよい。
(ステップS805)
OTAマスタ30の制御部39及びターゲットECUは、ターゲットECUの不揮発性メモリの格納領域に書き込まれた第1更新データに基づくソフトウェアを有効化するアクティベートを実行する。ターゲットECUが複数ある場合には、一斉に又は所定の順序でアクティベートが行われる。ターゲットECUに対する第1更新データに基づくソフトウェアのアクティベートが実行されると、ステップS806に処理が進む。
(ステップS806)
OTAマスタ30の判定部40は、ターゲットECUにおける第1更新データに基づくソフトウェアのアクティベートが完了したか否かを判定する。OTAマスタ30は、アクティベートの完了を、ターゲットECUからの完了通知があったことで判断してもよいし、アクティベートの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えばアクティベートに要する時間以上に設定することができる。ターゲットECUにおける第1更新データに基づくソフトウェアのアクティベートが完了したと判定された場合は(ステップS806、成功)、ステップS811に処理が進む。一方、エラーを検知したなど、ターゲットECUにおける第1更新データに基づくソフトウェアのアクティベートが正常に完了していないと判定された場合は(ステップS806、失敗)、ステップS807に処理が進む。この場合、OTAマスタ30から更新制御の途中であるターゲットECUに対して、更新制御の停止/中止を指示してもよい。
(ステップS807)
OTAマスタ30の制御部39及びターゲットECUは、第2更新データに基づくソフトウェアを、ターゲットECUの不揮発性メモリの格納領域に書き込む処理であるインストールを実行する。ターゲットECUが複数ある場合には、一斉に又は所定の順序でインストールが行われる。ターゲットECUに対する第2更新データに基づくソフトウェアのインストールが実行されると、ステップS808に処理が進む。
(ステップS808)
OTAマスタ30の判定部40は、ターゲットECUにおける第2更新データに基づくソフトウェアのインストールが完了したか否かを判定する。OTAマスタ30は、インストールの完了を、ターゲットECUからの完了通知がそれぞれあったことで判断してもよいし、インストールの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えばインストールに要する最大の時間以上に設定することができる。第2更新データに基づくソフトウェアのインストールが完了したと判定された場合は(ステップS808、成功)、ステップS809に処理が進み、第2更新データに基づくソフトウェアのインストールが正常に完了していないと判定された場合は(ステップS808、失敗)、本インストール及びアクティベートの処理を終了する。
(ステップS809)
OTAマスタ30の制御部39及びターゲットECUは、ターゲットECUの不揮発性メモリの格納領域に書き込まれた第2更新データに基づくソフトウェアを有効化するアクティベートを実行する。ターゲットECUが複数ある場合には、一斉に又は所定の順序でアクティベートが行われる。ターゲットECUに対する第2更新データに基づくソフトウェアのアクティベートが実行されると、ステップS810に処理が進む。
(ステップS810)
OTAマスタ30の判定部40は、ターゲットECUにおける第2更新データに基づくソフトウェアのアクティベートが完了したか否かを判定する。OTAマスタ30は、アクティベートの完了を、ターゲットECUからの完了通知があったことで判断してもよいし、アクティベートの開始から所定の時間が経過後したことで判断してもよい。所定の時間は、例えばアクティベートに要する時間以上に設定することができる。ターゲットECUにおける第2更新データに基づくソフトウェアのアクティベートが完了したと判定された場合は(ステップS810、成功)、ステップS811に処理が進み、ターゲットECUにおける第2更新データに基づくソフトウェアのアクティベートが正常に完了していないと判定された場合は(ステップS810、失敗)、本インストール及びアクティベートの処理を終了する。
(ステップS811)
ターゲットECUは、不揮発性メモリの格納領域に書き込まれ、かつ、アクティベートが完了した第1更新データに基づくソフトウェア(ステップS806で成功)又は第2更新データに基づくソフトウェア(ステップS810で成功)を実行する。これにより、ターゲットECUに対するソフトウェアの更新又は簡易的な更新が完了し、本インストール及びアクティベートの処理が終了する。
なお、OTAマスタ30は、第2更新データに基づくソフトウェアを実行する際には、車両に搭載された表示装置70や、ネットワーク100で接続されるユーザー所有の車両に搭載されていない表示装置95などに、第2更新データに基づくソフトウェアを実行する旨(一部の制御が利用できないことなど)を通知してもよい。表示装置95の通知にあたっては、OTAマスタ30が直接行ってもよいし、センタ10がOTAマスタ30から取得する情報に基づいて間接的に行ってもよい。また、OTAマスタ30は、各電子制御ユニット50a~50dに対して、第2更新データに基づくソフトウェアの実行に伴う通信ネットワーク90の通信仕様(CANなど)の変更を実施してもよい。
また、ターゲットECUの不揮発性メモリがソフトウェアなどのデータを格納するための2つの格納領域を有するデュアルバンクメモリである場合は、ターゲットECUにおける第2更新データに基づくソフトウェアの運用は、運用していない格納領域側に第1更新データに基づくソフトウェアの再インストール及び再アクティベートが正常に完了するまでの一時的な措置とすることが好ましい。
<作用・効果>
以上のように、本開示の一実施形態に係るシステムによれば、センタ10は、更新によってソフトウェアに提供される機能の全てに対応した第1更新データと、第1更新データに紐付く更新によってソフトウェアに提供される機能の一部のみに対応した第2更新データとを、OTAセンタ30に送信する。そして、OTAマスタは、第1更新データに基づいてターゲット電子制御ユニットのソフトウェアの更新処理をまず行い、第1更新データに基づいたターゲット電子制御ユニットのソフトウェアの更新が失敗した場合は、第2更新データに基づくソフトウェアを実行する。
これにより、第1更新データに基づくソフトウェアのインストール以降の更新処理を失敗した場合、第2更新データに基づくソフトウェアを代替して素早く実行させることができるので、ソフトウェアの更新が完了するまでの時間を抑制することができる。また、ソフトウェアの更新に失敗した際にも安全な制御が可能となる。
本開示技術は、車両に搭載された電子制御ユニットのソフトウェアを更新するためのシステムに利用できる。
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 マイクロコンピューター
40 判定部
50a~50d 電子制御ユニット(ECU)
53a、53b 不揮発性メモリ
55、56a、56b 格納領域
60a~60d バス
70、95 表示装置
80 通信モジュール
90 車載ネットワーク
100 ネットワーク

Claims (1)

  1. 車両に搭載された電子制御ユニットのソフトウェアを更新するための更新データを送信するセンタと、
    前記センタから受信した前記更新データに基づいて、前記電子制御ユニットのソフトウェアの更新処理を制御するOTAマスタを備えた車両と、
    を含むシステムであって、
    前記センタは、第1更新データと、前記第1更新データに紐付いた第2更新データとを、前記車両に送信し、
    前記OTAマスタは、前記第1更新データに基づいて前記電子制御ユニットのソフトウェアの更新処理を行い、前記第1更新データに基づいた前記電子制御ユニットのソフトウェアの更新が失敗した場合は、前記第2更新データに基づくソフトウェアを実行する、
    システム。
JP2021115603A 2021-07-13 2021-07-13 ソフトウェアの更新を行うシステム Pending JP2023012131A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021115603A JP2023012131A (ja) 2021-07-13 2021-07-13 ソフトウェアの更新を行うシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021115603A JP2023012131A (ja) 2021-07-13 2021-07-13 ソフトウェアの更新を行うシステム

Publications (1)

Publication Number Publication Date
JP2023012131A true JP2023012131A (ja) 2023-01-25

Family

ID=85381579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021115603A Pending JP2023012131A (ja) 2021-07-13 2021-07-13 ソフトウェアの更新を行うシステム

Country Status (1)

Country Link
JP (1) JP2023012131A (ja)

Similar Documents

Publication Publication Date Title
US20230359454A1 (en) Software update device, update control method, and non-transitory storage medium
US20240069906A1 (en) Server, software update system, distribution method, and non-transitory storage medium
US20220391194A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20220391192A1 (en) Ota master, center, system, method, non-transitory storage medium, and vehicle
US20220318003A1 (en) Center, distribution control method, and non-transitory storage medium
US20220035620A1 (en) Software update device, update control method, non-transitory storage medium, and server
JP2023012131A (ja) ソフトウェアの更新を行うシステム
JP7405033B2 (ja) サーバ、更新管理方法、更新管理プログラム、ソフトウェア更新装置、サーバ及びソフトウェア更新装置を備えるシステム、センタ、otaマスタ、センタ及びotaマスタを備えるシステム
JP2022135372A (ja) センタ、更新管理方法、及び更新管理プログラム
US11954480B2 (en) Center, OTA master, system, method, non-transitory storage medium, and vehicle
JP2023002161A (ja) センタ、otaマスタ、方法、プログラム、及び車両
JP7355061B2 (ja) センタ、otaマスタ、システム、配信方法、配信プログラム、及び車両
JP7484791B2 (ja) Otaマスタ、更新制御方法、及び更新制御プログラム
US20220391193A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
JP2023019048A (ja) センタ、方法、及びプログラム
US20220405080A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20220405083A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
JP2023023616A (ja) ソフトウェアの更新を制御するセンタ
JP2023019099A (ja) 車両用のシステム、センタ、方法、及びプログラム
JP2022126194A (ja) Otaマスタ、センタ、システム、方法、プログラム、及び車両
JP2022154449A (ja) Otaマスタ、更新制御方法、及び更新制御プログラム
JP2022160125A (ja) センタ、配信制御方法、及び配信制御プログラム
JP2023019042A (ja) 車両用のシステム、センタ、方法、及びプログラム
JP2023166016A (ja) 制御装置、方法、プログラム、及び車両
JP2023008241A (ja) センタ、otaマスタ、方法、プログラム、及び車両

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240212