JP2023170941A - 更新制御装置、更新制御方法、及び更新制御プログラム - Google Patents
更新制御装置、更新制御方法、及び更新制御プログラム Download PDFInfo
- Publication number
- JP2023170941A JP2023170941A JP2022083059A JP2022083059A JP2023170941A JP 2023170941 A JP2023170941 A JP 2023170941A JP 2022083059 A JP2022083059 A JP 2022083059A JP 2022083059 A JP2022083059 A JP 2022083059A JP 2023170941 A JP2023170941 A JP 2023170941A
- Authority
- JP
- Japan
- Prior art keywords
- update
- software
- control device
- file
- updating
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000015654 memory Effects 0.000 claims description 115
- 238000003860 storage Methods 0.000 claims description 90
- 238000004891 communication Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 description 33
- 238000005192 partition Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 238000012986 modification Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 238000005096 rolling process Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 240000006829 Ficus sundaica Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000011265 semifinished product Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
【課題】基本ソフトウェアの更新実行後にアプリケーションソフトウェアを更新することで、アプリケーションソフトウェアが正常に動作しなくなるのを防ぐ更新制御装置及び方法を提供する。【解決手段】更新制御装置10は、第1のソフトウェアを更新するための第1の更新ファイル及び第2のソフトウェアを更新するための第2の更新ファイルを取得するファイル取得部101と、第1の更新ファイルがアプリケーションソフトウェアである第1のソフトウェアを更新するための更新ファイルであり、第2の更新ファイルが基本ソフトウェアである第2のソフトウェアを更新するための更新ファイルである場合、第1のソフトウェアの更新実行後に第2のソフトウェアの更新を実行するとの更新順序を決定する更新順序決定部103と、決定した更新順序で第1のソフトウェアの更新及び第2のソフトウェアの更新を実行することを指示する更新指示部104と、を備える。【選択図】図3
Description
本発明は、主として車載の電子制御装置に搭載されたソフトウェアの更新を制御する装置である更新制御装置、更新制御装置で実現する方法、及び更新制御装置で実行可能なプログラムに関する。
自動車においては、車載ネットワークで接続された様々な電子制御装置が搭載されている。近年の自動運転技術の発展に伴い自動車に求められる機能が複雑になりつつあり、自動車に搭載される電子制御装置の数は増加しつつある。
電子制御装置の数が増加すると、電子制御装置のソフトウェアの更新が必要となった場合、それぞれの電子制御装置のソフトウェアを更新する工程も複雑になる。例えば、特許文献1には、車載装置において、ゲートウェイである車載更新装置を設け、車載更新装置が各車載ECUに更新プログラムを配信することが開示されている。
ここで、本発明者は、詳細な検討の結果、以下の課題を見出した。
電子制御システムを構成する複数の電子制御装置の更新実行中にエラーが発生し、一部の電子制御装置の更新が完了しなかった場合、電子制御システム内には更新が完了した電子制御装置と、更新が完了していない電子制御装置とが混在することとなる。このような場合、協働する電子制御装置のバージョンが異なることによって、正常に処理が実行できないおそれがある。そのため、電子制御装置の更新が失敗した場合には、全ての電子制御装置について更新前のバージョンに戻す、いわゆるロールバック処理を行うことが望ましい。ところが、更新対象のソフトウェアの種別や、電子制御装置の構成によって、ロールバックのし易さは異なる。
電子制御システムを構成する複数の電子制御装置の更新実行中にエラーが発生し、一部の電子制御装置の更新が完了しなかった場合、電子制御システム内には更新が完了した電子制御装置と、更新が完了していない電子制御装置とが混在することとなる。このような場合、協働する電子制御装置のバージョンが異なることによって、正常に処理が実行できないおそれがある。そのため、電子制御装置の更新が失敗した場合には、全ての電子制御装置について更新前のバージョンに戻す、いわゆるロールバック処理を行うことが望ましい。ところが、更新対象のソフトウェアの種別や、電子制御装置の構成によって、ロールバックのし易さは異なる。
そこで、本発明は、ロールバック処理が簡易なソフトウェアから更新処理を実行するように更新制御を行う装置を提供することを目的とする。
本開示の一態様による更新制御装置は、第1のソフトウェアが搭載された第1の電子制御装置、及び第2のソフトウェアが搭載された第2の電子制御装置に通信ネットワークを介して接続される更新制御装置であって、前記第1のソフトウェアを更新するための第1の更新ファイル、及び前記第2のソフトウェアを更新するための第2の更新ファイルを取得するファイル取得部(101)と、前記第1の更新ファイルが、アプリケーションソフトウェアである前記第1のソフトウェアを更新するための更新ファイルであり、前記第2の更新ファイルが、アプリケーションソフトウェアが動作する基礎となる基本ソフトウェアである前記第2のソフトウェアを更新するための更新ファイルである場合、前記第1のソフトウェアの更新実行後に前記第2のソフトウェアの更新を実行するとの更新順序を決定する更新順序決定部(103)と、前記更新順序で、前記第1の更新ファイルを用いた前記第1のソフトウェアの更新及び前記第2の更新ファイルを用いた前記第2のソフトウェアの更新を実行することを指示する更新指示部(104)と、を備える。
なお、特許請求の範囲、及び本項に記載した発明の構成要件に付した括弧内の番号は、本発明と後述の実施形態との対応関係を示すものであり、本発明を限定する趣旨ではない。
以上の構成によれば、ロールバック処理を考慮した順序で電子制御装置の更新処理を実行することにより、複数の電子制御装置の更新を実行している途中で、一部の電子制御装置の更新が失敗した場合であっても、ロールバック処理を容易に実行することが可能となる。
以下、本発明の実施形態について、図面を参照して説明する。
なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語句は、特許請求の範囲又は課題を解決するための手段の項に記載された語句を意味し、同じく以下の実施形態に限定されるものではない。
特許請求の範囲の従属項に記載の構成及び方法は、特許請求の範囲の独立項に記載の発明において任意の構成及び方法である。従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明において任意の構成及び方法である。特許請求の範囲の記載が実施形態の記載よりも広い場合における実施形態に記載の構成及び方法も、本発明の構成及び方法の例示であるという意味で、本発明において任意の構成及び方法である。いずれの場合も、特許請求の範囲の独立項に記載することで、本発明の必須の構成及び方法となる。
実施形態に記載した効果は、本発明の例示としての実施形態の構成を有する場合の効果であり、必ずしも本発明が有する効果ではない。
複数の実施形態がある場合、各実施形態に開示の構成は各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。例えば一の実施形態に開示の構成を、他の実施形態に組み合わせてもよい。また、複数の実施形態それぞれに開示の構成を集めて組み合わせてもよい。
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の構成及び方法と共に発明の進歩性を肯定する事実である。
1.各実施形態に共通の構成
(1)更新制御装置10と電子制御システムSの配置
図1は、各実施形態の更新制御装置10の配置を説明する図である。例えば、図1(a)に示すように、更新制御装置10が電子制御システムSとともに「移動体」である車両に「搭載」されている場合と、図1(b)に示すように、電子制御システムSが「移動体」である車両に「搭載」され、更新制御装置10が車両の外部に配置されたサーバ装置で実現する場合と、が想定される。
(1)更新制御装置10と電子制御システムSの配置
図1は、各実施形態の更新制御装置10の配置を説明する図である。例えば、図1(a)に示すように、更新制御装置10が電子制御システムSとともに「移動体」である車両に「搭載」されている場合と、図1(b)に示すように、電子制御システムSが「移動体」である車両に「搭載」され、更新制御装置10が車両の外部に配置されたサーバ装置で実現する場合と、が想定される。
ここで、「移動体」とは、移動可能な物体をいい、移動速度は任意である。また移動体が停止している場合も当然含む。例えば、自動車、自動二輪車、自転車、歩行者、船舶、航空機、及びこれらに搭載される物を含み、またこれらに限らない。
「搭載」される、とは、移動体に直接固定されている場合の他、移動体に固定されていないが移動体と共に移動する場合も含む。例えば、移動体に乗った人が所持している場合、移動体に載置された積荷に搭載されている場合、が挙げられる。
「搭載」される、とは、移動体に直接固定されている場合の他、移動体に固定されていないが移動体と共に移動する場合も含む。例えば、移動体に乗った人が所持している場合、移動体に載置された積荷に搭載されている場合、が挙げられる。
更新制御装置10は、電子制御システムSを構成する複数の電子制御装置(以下、ECU(Electronic Control Unit)と称する)に搭載されたソフトウェアの更新を制御する装置である。図2は、電子制御システムSの構成例を示す図である。電子制御システムSは、複数のECU20から構成されている。図2は3つのECU(ECU20a~ECU20c)を例示しているが、当然のことながら、電子制御システムSは任意の数のECUから構成される。
図1(a)の場合、更新制御装置10と各ECU20とは、例えばCAN(Controller Area Network)、LIN(Local Interconnect Network)といった車載通信ネットワークを介して「接続」されている。あるいは、Ethernet(登録商標)やWi-Fi(登録商標)、Bluetooth(登録商標)等、有線無線を問わず任意の通信方式を用いて接続されてもよい。別の例として、電子制御システムSを構成するECU20の少なくとも一つに、更新制御装置10の機能を内蔵することもできる。
ここで、「接続」とは、データのやり取りが可能な状態をいい、異なるハードウェアが有線又は無線の通信ネットワークを介して接続されている場合はもちろん、同一のハードウェア上で実現された仮想マシン同士が仮想的に接続されている場合も含む。
例えば、電子制御システムSを構成する複数のECU20のうち、電子制御システムSの外部と通信を行う機能を有する外部通信ECU20が、更新制御装置10の機能を内蔵する。この場合、後述する更新制御装置10のファイル取得部101は、電子制御システムSの外部(例えば、サーバ装置)から、ソフトウェアを更新するためのファイルを取得する。なお、電子制御システムSの外部からファイルを取得するファイル取得部101は、AUTOSAR(AUTomotive Open System ARchitecture)仕様においてOTA(Over The Air)クライアントと称される。
別の例では、電子制御システムSを構成する複数のECU20のうち、外部通信ECUではないECU20が更新制御装置10の機能を内蔵する。この場合、後述する更新制御装置10のファイル取得部101は、外部通信ECU20を介して、電子制御システムSの外部からファイルを取得する。なお、図1(a)における更新制御装置10は、AUTOSAR仕様においてUCM(Update and Configuration Management)マスタと称される。
図1(b)の場合、更新制御装置10と電子制御システムSを構成する各ECU20とは、例えば、IEEE802.11(Wi-Fi(登録商標))やIEEE802.16(WiMAX(登録商標))、W-CDMA(Wideband Code Division Multiple Access)、HSPA(High Speed Packet Access)、LTE(Long Term Evolution)、LTE-A(Long Term Evolution Advanced)、4G、5G等の無線通信方式といった通信ネットワークを介して「接続」されている。あるいは、DSRC(Dedicated Short Range Communication)を用いることができる。車両が駐車場に駐車されていたり、修理工場に収容されている場合は、無線通信方式に代えて、有線通信方式を用いることができる。例えば、LAN(Local Area Network)やインターネット、固定電話回線を用いることができる。
図1(b)の場合、サーバ装置である更新制御装置10は、車両に搭載された電子制御システムSを構成する各ECU20に搭載されたソフトウェアの更新を車両の外部から制御する。
(2)更新制御装置10の構成
図3を用いて、更新制御装置10の構成例を説明する。更新制御装置10は、ファイル取得部101、メモリ情報取得部102、更新順序決定部103、及び更新指示部104を備える。
図3を用いて、更新制御装置10の構成例を説明する。更新制御装置10は、ファイル取得部101、メモリ情報取得部102、更新順序決定部103、及び更新指示部104を備える。
ファイル取得部101は、更新ファイルを取得する。図1(a)に示すように、更新制御装置10が移動体に搭載されている場合、ファイル取得部101は、電子制御システムSの外部に設けられたサーバ装置等からOTA(Over The Air)又は有線通信を用いて更新ファイルを取得する。図1(b)に示すように、更新制御装置10がサーバ装置で実現する場合、更新制御装置10はサーバ装置で生成された更新ファイルを取得する。
ファイル取得部101が取得する更新ファイルは、各ECU20に搭載された「ソフトウェア」を更新するための更新ファイルを含み、例えば、複数のソフトウェアを更新するための複数の更新ファイルを含む更新ファイル群であってもよい。あるいは、ファイル取得部101が取得する更新ファイルは、一の更新ファイルが複数に分割されたファイルであってもよい。ファイル取得部101が取得するファイルはさらに、更新すべきソフトウェアを搭載しているECUを特定する情報や、それぞれの更新ファイルのデータ量を示す情報を含んでもよい。以下、更新ファイルを用いて更新すべきソフトウェアを更新対象ソフトウェアと称する。
ここで、電子制御装置に搭載される「ソフトウェア」とは、OS(Operating System)上で動作するソフトウェアはもちろん、電子制御装置そのものを動作させるミドルウェア(例えば、OS)も含む。
メモリ情報取得部102は、各ECU20が有するメモリに関するメモリ情報を取得する。メモリ情報は、例えば、各ECU20が有するメモリの空き容量や、メモリが有する保存領域に関する情報を示している。なお、メモリ情報取得部102は後述する実施形態2、3で使用される構成であり、実施形態1の更新制御装置10は必ずしもメモリ情報取得部102を備えていなくともよい。
更新順序決定部103は、ファイル取得部101が取得した更新ファイルを用いて各ECU20に搭載されたソフトウェアの更新を実行する順序、すなわち、更新順序を決定する。更新順序決定部103が更新順序を決定する手法は各実施形態で詳述する。
なお、各実施形態で説明する更新順序は、一のソフトウェアの更新が「完了」した後に、次のソフトウェアの更新を実行するものとして説明する。例えば、後述する実施形態3では、保存領域の切り替えが完了したことを以って更新の完了とする。一のソフトウェアの更新が完了してから次のソフトウェアの更新を実行することで、先のソフトウェア更新が失敗した場合に、ロールバック処理を行う対象のソフトウェアを先のソフトウェアに限定することができ、次のソフトウェアについてはロールバック処理を実行せずにすむ。
ここで、更新が「完了」する、とは、例えば、更新処理が正常に終了することの他、更新処理を実行したソフトウェアが起動することであってもよい。
しかしながら、更新順序は、一のソフトウェアの更新実行後に、次のソフトウェアの更新を実行するものであればよく、一のソフトウェアの更新が完了する前に次のソフトウェアの更新処理を開始するような更新順序を決定してもよい。この場合、複数のECU20の更新処理が並行して実行されることがある。
更新指示部104は、更新順序決定部103が決定した更新順序で、更新ファイルを用いたソフトウェアの更新を実行することを「指示する」。図1(a)に示すように、更新制御装置10が移動体に搭載されている場合、更新指示部104は、車載通信ネットワークを介して各ECU20に更新の実行を指示する。図1(b)に示すように、更新制御装置10がサーバ装置で実現する場合、更新制御装置10は、OTA又は有線通信を用いて、外部通信ECU20を介して各ECUに更新の実行を指示する。更新指示部104は、更新指示とともに、ファイル取得部101が取得した更新ファイルを送信してもよい。
ここで、更新順序で実行することを「指示する」とは、順番通りに更新を実行することが指示できればよく、その方法は問わない。例えば、更新を実行する順番を明確に指示することはもちろん、更新を実行する順番にファイルを並べ替えることによって順序を指示するものであってもよい。また、更新の「指示」は、更新を実行する電子制御装置に対して直接指示をする場合はもちろん、他の電子制御装置を介して間接的に指示する場合も含む。
例えば、更新指示部104は、更新順序決定部103が決定した更新順序で、各ECUに対して更新実行を順次指示する。具体的には、更新指示部104は、一のECU20に対して更新実行を指示し、当該ECU20から更新が完了したことを示す更新完了通知を受信すると、次のECU20に対して更新実行を指示する。あるいは、更新指示部104は、ECU20に対して一斉に更新実行を指示する。ただし、更新順序決定部103が決定した更新順序で各ECU20が更新を実行するように、更新指示部104は各ECU20が更新処理を実行する時間を指定して、更新実行を指示する。
さらに別の例では、更新指示部104は、ファイル取得部101が取得した更新ファイルを、更新順序決定部103が決定した更新順序に並び変える。図1(b)に示すように、更新制御装置10がサーバ装置で実現する場合、更新指示部104は、更新実行の指示とともに、更新順序に並んだ複数の更新ファイルを電子制御システムSに送信する。
更新指示部104はさらに、各ECU20でのソフトウェアの更新が失敗した場合に、更新ファイルを用いた更新を実行する前の状態に戻すことを指示する。具体的には、更新指示部104は、一のECU20に対して更新実行を指示し、当該ECU20から更新が失敗したことを示す更新失敗通知を受信すると、当該ECU20よりも前にソフトウェア更新を実行したECU20に対して、更新を実行する前の状態に戻すことを指示する。以下、更新実行前の状態に戻す指示をロールバック指示と称する。更新指示部104はさらに、ソフトウェア更新が失敗したECU20に対してロールバック指示をしてもよい。
別の例では、更新指示部104は、ブロードキャストで各ECU20に対してロールバック指示をしてもよい。この場合、ロールバック指示を受信したECU20のうち、ソフトウェア更新が実行されたECU20のみがロールバック処理を行い、ソフトウェア更新が実行されていないECU20はロールバック処理を行わない。
なお、更新指示部104は、ロールバック指示とともに、ロールバック処理に必要なデータ、すなわち、更新前のソフトウェアのデータを送信してもよい。この場合、更新前のソフトウェアのデータは、更新制御装置10のメモリ(図示せず)に保存されていてもよく、あるいは、ファイル取得部101が新たに取得してもよい。
更新指示部104はさらに、更新が失敗したソフトウェアの後に更新が実行される予定であったソフトウェアの「更新停止」を指示する。更新指示部104が、ECU20に対してソフトウェアの更新実行を指示していない場合は、更新停止を指示することにより、更新指示の送信を取りやめる。あるいは、更新指示部104が、ECU20に対して既に更新実行の指示をしている場合は、更新実行を取り消す指示を送信することで、更新停止を指示する。
ここで、「更新停止」の指示とは、既に送信した更新指示を取り消す場合の他、更新指示の送信を取りやめることも含む。
(3)電子制御システムS及びECU20
図2を用いて電子制御システムSを説明する。図2に示すとおり、電子制御システムSは複数のECU20から構成される。各ECU20は、ソフトウェアの更新を実行する更新部201及びメモリ202を有する。図2及び以下の説明では、各ECU20及び各ECU20が有する構成を区別するために、それぞれの符号にa~cを付している。
図2を用いて電子制御システムSを説明する。図2に示すとおり、電子制御システムSは複数のECU20から構成される。各ECU20は、ソフトウェアの更新を実行する更新部201及びメモリ202を有する。図2及び以下の説明では、各ECU20及び各ECU20が有する構成を区別するために、それぞれの符号にa~cを付している。
更新部201は、更新指示部104からの指示に基づき、更新ファイルを用いたソフトウェアの更新処理を行う。更新部201は、AUTOSAR仕様においてUCMサブオーディネイトとも称される。
更新部201は、ソフトウェアの更新処理が完了すると、更新制御装置10に更新が完了したこと示す更新完了通知を送信する。また、ソフトウェアの更新処理が失敗すると、更新制御装置10に更新が失敗したこと示す更新失敗通知を送信する。
更新部201はさらに、更新指示部104からロールバック指示を受信した場合、ソフトウェアを更新前の状態に戻すためのロールバック処理を行う。ロールバック処理を行うためには、更新前のソフトウェアのデータが必要となる。メモリ202が更新前のソフトウェアのデータを保存している場合には、更新部201はメモリ202に保存されているデータを用いてロールバック処理を行う。また、メモリ202が更新前のソフトウェアのデータを保存していない場合には、更新指示部104から更新前のソフトウェアのデータを取得する。
メモリ202は、ROM、フラッシュメモリ、又はハードディスク等の不揮発性メモリであり、各ECUに搭載されたソフトウェア及び更新ファイルを保存する。図2には図示していないが、メモリ202は複数の保存領域を有していてもよい。
本実施形態の各ECU20は例えば、AUTOSAR仕様においてAdaptive Platform(以下、AP)と呼ばれる、動的な機能の拡張が可能なプラットフォームをベースとしたECUである。APは主に、自動運転用のECUに適したプラットフォームである。あるいは、これらのECUは例えば、AUTOSAR仕様においてClassic Platform(以下、CP)と呼ばれる、静的な機能を最適化したプラットフォームをベースとしたECUであってもよい。なお、CPは主に、車両制御用のECUに適したプラットフォームである。
(4)電子制御システムS及び更新制御装置10の動作
図4を用いて本実施形態の更新制御装置10の動作を、図5を用いて電子制御システムS全体の動作を、それぞれ説明する。なお、図4に示す動作は、更新制御装置10で実行される更新制御方法を示すだけでなく、更新制御装置10で実行可能な更新制御プログラムの処理手順を示すものである。そして、これらの処理は、図4で示した順序には限定されない。すなわち、あるステップでその前段のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。図5、及び後述する図6、図7についても同様である。
図4を用いて本実施形態の更新制御装置10の動作を、図5を用いて電子制御システムS全体の動作を、それぞれ説明する。なお、図4に示す動作は、更新制御装置10で実行される更新制御方法を示すだけでなく、更新制御装置10で実行可能な更新制御プログラムの処理手順を示すものである。そして、これらの処理は、図4で示した順序には限定されない。すなわち、あるステップでその前段のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。図5、及び後述する図6、図7についても同様である。
更新制御装置10のファイル取得部101は、各ECU20に搭載されたソフトウェアを更新するための更新ファイルを取得する(S101)。図4、図5の例では、更新制御装置10は、ECU20aに搭載されたソフトウェアaを更新するための更新ファイルa、ECU20bに搭載されたソフトウェアbを更新するための更新ファイルb、及びECU20cに搭載されたソフトウェアcを更新するための更新ファイルcを取得するものとする。
更新順序決定部103は、S101で取得した更新ファイルを用いたソフトウェアの更新を実行する更新順序を決定する(S102)。図5では、ソフトウェアa、ソフトウェアb、ソフトウェアcの順序で更新を実行するとの更新順序を決定するものとする。
更新指示部104は、S102で決定した更新順序でソフトウェアの更新を実行することを指示する(S103)。ここで、図5の例では、更新が完了したECUから更新完了通知を受信した場合に、次のECUに対して更新実行の指示をするものとする。したがって、更新指示部104は、まずECU20aに対して更新実行を指示する。
更新制御装置10から更新実行指示を受信したECU20aの更新部201aは、更新処理を実行する(S201)。そして、更新処理が完了すると、更新制御装置10に対して更新完了通知を送信する。
更新制御装置10は、ECU20aから更新完了通知を受信(S104、S105:N)すると、次に更新すべきソフトウェアbを搭載するECU20bに対して更新実行を指示する(S103)。
更新制御装置10から更新実行指示を受信したECU20bの更新部201bは、更新処理を実行する(S201)。ここで、更新部201bによる更新処理が失敗すると、ECU20bは更新制御装置10に対して更新失敗通知を送信する。
更新制御装置10は、ECU20bから更新失敗通知を受信(S104、S105:Y)すると、更新が失敗したECU20b、及び、既に更新が完了しているECU20aに対して、ロールバック指示を送信する(S106)。
更新制御装置10からロールバック指示を受信したECU20a、20bの更新部201a、201bはロールバック処理を実行する(S202)。なお、図5の例では、更新制御装置10はECU20cに対して更新実行を指示していないため、ECU20cに対してロールバック指示を送信する必要はない。そして、ECU20cに対する更新指示の送信を取りやめる。これにより、ECU20a、ECU20b、ECU20cのいずれも、更新処理を実行する前の状態となる。
図6、図7は、図5とは異なる電子制御システムSの動作を説明する図である。図5とは異なり、図6では、更新制御装置10は、ECU20a、ECU20b、ECU20cに対して一斉に更新実行を指示する(S103)。ただし、更新順序決定部103が決定した順序でECU20a、ECU20b、ECU20cが更新処理を実行するように、例えば、更新処理を実行する時間を指定して更新実行を指示する。
図6に示す更新制御装置10では、ECU20bから更新失敗通知を受信(S104)すると、更新実行を指示した全てのECU20a~20cに対してロールバック指示を送信する(S106)。すなわち、図5ではロールバック指示を送信していないECU20cに対してもロールバック指示を送信する。ただし、ECU20cでは更新処理が実行されていないため、ECU20cではロールバック指示を受信してもロールバック処理は実行されない。
図7は、更新が失敗したECU20bは、更新制御装置10からロールバック指示を受けることなく、自律的にロールバック処理を行う例を示している。図5、図6と同様、更新制御装置10から更新実行の指示を受信したECU20bは更新処理を行い(S201)、更新処理が失敗すると、更新失敗通知を更新制御装置10に送信する。そして、ECU20bは、ロールバック処理を行う(S202)。すなわち、図7では、更新処理が失敗したECU20よりも前に更新処理が完了したECU20aに対してのみ、ロールバック指示を送信する。
2.第1の実施形態
(1)更新順序の決定手法
本実施形態は、ECU20に搭載された更新対象ソフトウェアの更新種別に応じて、更新順序を決定するものである。すなわち、更新種別が、イメージ更新(image update)であるか、アプリケーション更新(application update)であるか、に応じて、更新順序を決定する。
(1)更新順序の決定手法
本実施形態は、ECU20に搭載された更新対象ソフトウェアの更新種別に応じて、更新順序を決定するものである。すなわち、更新種別が、イメージ更新(image update)であるか、アプリケーション更新(application update)であるか、に応じて、更新順序を決定する。
イメージ更新とは、メモリ202のパーティション単位でソフトウェアを書き換える更新をいう。パーティション(partition)は、面(bank)あるいは保存領域とも呼ばれる。パーティションとしては、論理的なパーティション(logical partition)の他、物理的なメモリを単位したパーティションが挙げられる。イメージ更新は、更新後のパーティションのイメージデータをパーティションに書込むことで実施できる。このイメージデータが、ファイル取得部101が車両外から取得するイメージ更新のための更新ファイルの一例である。ファイル取得部101が車両外から取得するイメージ更新のための更新ファイルは、更新後のパーティションのソフトウェアとの差分を示すファイルであってもよい。この場合、差分を示すファイルと、更新対象ECUのパーティションに格納されているソフトウェアと、から、車両内において、書込みに用いるイメージデータを生成する。イメージ更新は、典型的には、OSやAUTOSARプラットフォーム(以下、PF)そのものを更新する際に使用される。一のパーティションに記憶されているソフトウェアが、OSやAUTOSAR PFに加えて、OSやAUTOSAR PF上で動作するアプリケーションを含む場合、イメージ更新においてOSやAUTOSAR PFと共に、OSやAUTOSAR PF上で動作するアプリケーションの更新も一緒に行うことが出来る。以上であるから、イメージ更新は、「基本ソフトウェア」の更新とも称することができる。
ここで、「基本ソフトウェア」には、OSはもちろん、電子制御装置に仮想マシンを構成するソフトウェアや、電子制御装置にプラットフォームを構成するソフトウェアが挙げられる。
アプリケーション更新は、メモリ202のパーティションに格納されているソフトウェアをアプリケーション単位で書き込む、あるいは書き換える更新を言う。ここで言うアプリケーションとしては、OSやAUTOSAR AP上で動作するアプリケーションの他、AUTOSAR APのFunctional Clusterと呼ばれるプラットフォームを構成するソフトウェア部品、アプリケーションが利用するパラメタ等などのデータセットが挙げられる。なお、アプリケーションの一例としてはPOSIXOS等のOS上で動作する実行形式ファイルが挙げられる。アプリケーション更新は、アプリケーションソフトウェアの更新とも称することができる。
例えば、ファイル取得部101が、図2に示すECUのうち、ECU20a(「第1の電子制御装置」に相当)に搭載されたソフトウェアa(「第1のソフトウェア」に相当)を更新するための更新ファイルaと、ECU20b(「第2の電子制御装置」に相当)に搭載されたソフトウェアb(「第2のソフトウェア」に相当)を更新するための更新ファイルbとを取得した場合を例に挙げて説明する。
本実施形態の更新順序決定部103は、ファイル取得部101が取得した更新ファイルa、更新ファイルbがそれぞれ、アプリケーションソフトウェア又は基本ソフトウェアのいずれを更新するためのソフトウェアであるかを判定する。更新ファイルa(「第1の更新ファイル」に相当)がアプリケーションソフトウェアを更新するための更新ファイルであり、更新ファイルb(「第2の更新ファイル」に相当)が基本ソフトウェアを更新するための更新ファイルである場合、更新順序決定部103は、ソフトウェアaの更新実行後に、ソフトウェアbの更新を実行するとの更新順序を決定する。すなわち、アプリケーションソフトウェアの更新実行後に、基本ソフトウェアの更新を実行することを決定する。なお、ここでは、アプリケーションソフトウェアの更新と、基本ソフトウェアの更新と、が、別のECUに対する更新であることを想定しているが、一のECUの別パーティションに対する更新であってもよい。アプリケーションソフトウェアの更新と、基本ソフトウェアの更新と、が、一のECUの別パーティションに対する更新としてなされるのは、例えば、一のECUが、OSやPFを格納するパーティションを、そのOSやPF上で動作するアプリケーションを格納するパーティションとは別に有している場合である。
基本ソフトウェアは、アプリケーションソフトウェアが動作する基礎となるソフトウェアであるため、基本ソフトウェアの更新を実行している間、基本ソフトウェア上で動作するアプリケーションソフトウェアの機能、あるいはECU20自体の機能が停止するおそれがある。基本ソフトウェアのロールバック処理を実行している間も、同様のことが起こりうる。つまり、基本ソフトウェアのロールバック処理は、複数のアプリケーションソフトウェアの機能停止を伴うおそれがある。また、基本ソフトウェアをロールバックする処理は、ECUの再起動を伴う場合が多い。これに対し、アプリケーションソフトウェアでは、更新処理及びロールバック処理を実行している間、同じECU20に搭載された他のアプリケーションソフトウェアを動作させることができる。アプリケーションソフトウェアをロールバックする処理は、基本ソフトウェアをロールバックする処理と比べて、ECUの起動状態を継続したまま実施できる場合が多い。アプリケーションソフトウェアのロールバックは、基本ソフトウェアをロールバックよりも容易であると言える。また、基本ソフトウェアのロールバック処理よりも、アプリケーションソフトウェアのロールバック処理の方が、他のアプリケーションソフトウェアに与える影響は少ない場合が多い。
そこで、本実施形態では、アプリケーションソフトウェアの更新実行後に、基本ソフトウェアの更新を実行するとの更新順序を決定する。すなわち、ロールバック容易なものから順に更新を実行するとの更新順序とを決定する。これにより、ECU20の更新が失敗し、ロールバック処理が必要となった場合であっても、基本ソフトウェアのロールバック処理が行われる可能性を低減することができる。
(2)変形例
上述した実施形態では、ECUの同じパーティションに保存されたソフトウェアの更新が、アプリケーションソフトウェア又は基本ソフトウェアのいずれか一方であることを前提として、更新順序を決定する例を説明した。しかしながら、一のECU20の同じパーティションに保存された基本ソフトウェア及びアプリケーションソフトウェアの双方について更新が必要となることがある。
上述した実施形態では、ECUの同じパーティションに保存されたソフトウェアの更新が、アプリケーションソフトウェア又は基本ソフトウェアのいずれか一方であることを前提として、更新順序を決定する例を説明した。しかしながら、一のECU20の同じパーティションに保存された基本ソフトウェア及びアプリケーションソフトウェアの双方について更新が必要となることがある。
例えば、ECU20aのアプリケーションソフトウェアであるソフトウェアa1、ECU20aの基本ソフトウェアであるソフトウェアa2、及びECU20bのアプリケーションソフトウェアであるソフトウェアbの更新を実行する場合、上述した実施形態1によれば、更新順序決定部103は、ECU20aのソフトウェアa1及びECU20bのソフトウェアbの更新実行後に、ECU20aのソフトウェアa2の更新を実行するとの更新順序を決定する。
ところが、アプリケーションソフトウェアでは、当該ソフトウェアが動作する基礎となる基本ソフトウェアのバージョンが指定されていることがある。このような場合、基本ソフトウェアの更新前にアプリケーションソフトウェアの更新を実行すると、アプリケーションソフトウェアのバージョンと基本ソフトウェアのバージョンとが異なることとなり、アプリケーションソフトウェアは正常に動作しないことが起こりうる。
そこで、一のECUにおいて、基本ソフトウェア及びアプリケーションソフトウェアの双方の更新が必要な場合には、基本ソフトウェアの更新を実行してからアプリケーションソフトウェアの更新を実行してもよい。
例えば、ECU20aのアプリケーションソフトウェアであるソフトウェアa1、ECU20aの基本ソフトウェアであるソフトウェアa2、及びECU20bのアプリケーションソフトウェアであるソフトウェアbの更新を実行する場合、本変形例の更新順序決定部103は、ECU20bのソフトウェアbの更新実行後に、ECU20aのソフトウェアa2の更新を実行し、その後にECU20aのソフトウェアa1の更新を実行するとの更新順序を決定する。
以上のとおり、本変形によれば、一のECUにおいて基本ソフトウェア及びアプリケーションソフトウェアの双方の更新を行う場合には、基本ソフトウェアの更新実行後にアプリケーションソフトウェアの更新を実行する。これにより、アプリケーションソフトウェアと基本ソフトウェアのバージョンが異なることで、アプリケーションソフトウェアが正常に動作しなくなるのを防ぐことができる。
3.第2の実施形態
本実施形態は、更新ファイルのデータ量及びECUのメモリの空き容量に応じて、更新順序を決定するものである。なお、メモリの空き容量とは、更新対象ソフトウェアを保存しているメモリ、すなわち、更新ファイルの書き込み先であるメモリのパーティションの空き容量と同義である。
本実施形態は、更新ファイルのデータ量及びECUのメモリの空き容量に応じて、更新順序を決定するものである。なお、メモリの空き容量とは、更新対象ソフトウェアを保存しているメモリ、すなわち、更新ファイルの書き込み先であるメモリのパーティションの空き容量と同義である。
本実施形態では、メモリ情報取得部102は、各ECU20が有するメモリの空き容量を示すメモリ情報を取得する。
更新順序決定部103は、ファイル取得部101が取得したそれぞれの更新ファイルのデータ量、及び、メモリ情報取得部102が取得した各ECU20のメモリの空き容量に基づき、更新順序を決定する。具体的には、データ量が空き容量よりも小さい更新ファイルを用いたソフトウェアの更新実行後に、データ量が空き容量よりも大きい更新ファイルを用いたソフトウェアの更新を実行するとの更新順序を決定する。
例えば、ファイル取得部101が、図2に示す複数のECU20のうち、ECU20a(「第1の電子制御装置」に相当)に搭載されたソフトウェアa(「第1のソフトウェア」に相当)を更新するための更新ファイルa(「第1の更新ファイル」に相当)と、ECU20c(「第3の電子制御装置」に相当)に搭載されたソフトウェアc(「第3のソフトウェア」に相当)を更新するための更新ファイルc(「第3の更新ファイル」に相当)とを取得した場合を例に挙げて説明する。ここで、更新ファイルa、更新ファイルcはいずれも、アプリケーションソフトウェアを更新するための更新ファイルであるものとする。
メモリ情報取得部102は、ECU20aのメモリ202a(「第1のメモリ」に相当)の空き容量(「第1の空き容量」に相当)、及びECU20cのメモリ202c(「第2のメモリ」に相当)の空き容量(「第2の空き容量」に相当)を示すメモリ情報をそれぞれ取得する。
そして、更新順序決定部103は、更新ファイルaのデータ量(「第1のデータ量」に相当)がメモリ202aの空き容量よりも大きいか否か、及び、更新ファイルcのデータ量(「第2のデータ量」に相当)がメモリ202cの空き容量よりも大きいか否か、を判定する。ここで、更新ファイルaのデータ量がメモリ202aの空き容量よりも小さく、更新ファイルcのデータ量がメモリ202cの空き容量よりも大きいと判定した場合、更新順序決定部103は、ソフトウェアaの更新実行後に、ソフトウェアcの更新を実行するとの更新順序を決定する。すなわち、本実施形態では、メモリの空き容量よりも小さいデータ量の更新ファイルを先に実行することを決定する。
更新ファイルのデータ量がメモリの空き容量よりも大きい場合、更新前のソフトウェアを削除又は上書きして更新ファイルを書き込むことで、更新処理を実行する。そのため、仮に更新部201での更新が失敗してロールバック処理を実行する場合、更新前のソフトウェアのデータを再度取得しなければ、ロールバック処理をすることができない。これに対し、更新ファイルのデータ量がメモリの空き容量がよりも小さい場合、更新部201は、メモリ202の空き容量に更新ファイルを書き込み、元のソフトウェアをメモリ202に残しておくことができる。すなわち、更新部201は、メモリ202に、更新前のソフトウェア及び更新後のソフトウェアを保存する。そして、更新処理が完了すると、実行するソフトウェアを、更新前のソフトウェアから更新後のソフトウェアに切り替える。また、更新部201での更新が失敗した場合であっても、メモリ202に残された更新前のソフトウェアを使用することで、容易にロールバック処理を行うことが可能となる。
なお、上述したとおり、基本ソフトウェアの更新、すなわち、イメージ更新はパーティション単位で書き込み又は書き換えを実施するため、1つのパーティション全体が、更新前及び更新後の何れかとなる。したがって、上述した構成は、イメージ更新とアプリケーション更新とのうち、パーティションに格納されているソフトウェアをアプリケーション単位で書き込み又は書き換えるアプリケーション更新にのみ適用することができる。
次に、更新順序決定部103は、更新ファイルa、更新ファイルcのデータ量がいずれも、メモリ202a、メモリ202cそれぞれの空き容量よりも小さい場合、又は大きい場合を説明する。この場合、更新順序決定部103は、更新ファイルのデータ量が小さいものから順に更新を実行するとの更新順序を決定する。例えば、更新ファイルaのデータ量が10MBであり、更新ファイルcのデータ量が20MBの場合、更新ファイルaを用いたソフトウェアaの更新実行後に、更新ファイルcを用いたソフトウェアcの更新を実行するとの更新順序を決定する。
更新ファイルのデータ量が小さいほど、ロールバック処理に要する時間及び処理負荷は少ない。そこで、データ量が小さい更新ファイルを用いたソフトウェアの更新を先に実行することで、ロールバック処理が必要となった場合であっても、処理負荷が大きいソフトウェアのロールバック処理が行われる可能性を低減することができる。
4.第3の実施形態
(1)更新順序の決定手法
本実施形態は、各ECU20が有するメモリ202の保存領域の数に応じて、更新順序を決定するものである。
(1)更新順序の決定手法
本実施形態は、各ECU20が有するメモリ202の保存領域の数に応じて、更新順序を決定するものである。
本実施形態では、メモリ情報取得部102は、各ECU20が有するメモリの保存領域の数を示すメモリ情報を取得する。
更新順序決定部103は、メモリ情報取得部102が取得した、各ECU20が有するメモリ202の「保存領域の数」に基づき、更新順序を決定する。具体的には、複数の保存領域を有するメモリ202を有するECU20に搭載されたソフトウェアの更新実行後に、1つの保存領域を有するメモリ202を有するECU20に搭載されたソフトウェアの更新を実行するとの更新順序を決定する。上述したとおり、メモリ202の保存領域とは、メモリ202のパーティション又は面とも称される。
ここで、「保存領域の数」とは、メモリ内にデータを格納できる領域の数である。「保存領域の数」が複数とは、物理的に2つのメモリが存在することによって保存領域が複数となる場合はもちろん、物理的に1つのメモリにおいて、複数のアドレスを用いて保存領域を区切ることで、保存領域を複数とする場合も含む。
メモリ202が複数の保存領域を有する場合、複数の保存領域のうち1つの領域が、ECU20が運用する保存領域となり、他の保存領域は運用しない保存領域となる。すなわち、メモリ202が複数の保存領域を有するとは、運用保存領域と非運用保存領域とを有することを意味する。なお、ECU20の運用保存領域と非運用保存領域とは適宜切り替えることが可能である。例えば、ECU20が2つの保存領域(保存領域A、B)を有する場合、保存領域Aを運用保存領域として使用している間、保存領域Bは非運用保存領域となる。保存領域Aが運用保存領域である間、ECU20は保存領域Aに保存されているソフトウェアを使用することができ、保存領域Bに保存されているソフトウェアは使用することはできない。そして、運用保存領域を保存領域Aから保存領域Bに切り替えることで、使用するソフトウェアも切り替えることができる。
以下に、ファイル取得部101が、図2に示す複数のECU20のうち、ECU20aに搭載されたソフトウェアaを更新するための更新ファイルaと、ECU20cに搭載されたソフトウェアcを更新するための更新ファイルcとを取得した場合を例に挙げて説明する。ここで、更新ファイルa、更新ファイルcはいずれも、基本ソフトウェアを更新するための更新ファイルであるものとする。
メモリ情報取得部102は、ECU20aのメモリ202a(「第1のメモリ」に相当)の保存領域の数と、ECU20cのメモリ202c(「第2のメモリ」に相当)の保存領域の数とを示すメモリ情報をそれぞれ取得する。
そして、更新順序決定部103は、メモリ202aの保存領域の数、及びメモリ202cの保存領域の数をそれぞれ判定する。ここで、メモリ202aが複数の保存領域を有し、メモリ202cが1つの保存領域を有する場合、更新順序決定部103は、ソフトウェアaの更新実行後に、ソフトウェアcの更新を実行するとの更新順序を決定する。すなわち、本実施形態では、複数の保存領域を有するメモリを搭載するECUのソフトウェアの更新を先に実行することを決定する。
メモリ202が複数の保存領域を有している場合、一の保存領域に更新前のソフトウェアを残したまま、別の保存領域に更新後のソフトウェアを保存することができる。例えば、更新部201は、メモリ202の運用保存領域に更新前のソフトウェアを残したまま、非運用保存領域に更新後のソフトウェアを保存する。そして、更新処理が完了した後、運用する保存領域を切り替えることにより、ECU20は更新後のソフトウェアを実行することが可能となる。なお、更新前のソフトウェアは、全てのECU20における更新が完了後に削除してもよい。
メモリ202が複数の保存領域を有している場合、更新部201によるソフトウェア更新が失敗した場合であっても、他方の保存領域に残された更新前のソフトウェアの使用を継続することができる。
なお、本実施形態は、基本ソフトウェアの更新を例示して説明したが、本実施形態はアプリケーションソフトウェアにも適用することが可能である。すなわち、一の保存領域に更新前のアプリケーションソフトウェアを残したまま、別の保存領域に更新後のソフトウェアを保存することができる。
ただし、アプリケーションソフトウェアについては、更新後のアプリケーションソフトウェアのバージョンと、OSやプラットフォームのバージョンとが異なる場合、更新後のアプリケーションソフトウェアが正常に動作しないことがある。この場合、更新後のアプリケーションソフトウェアを保存する保存領域は、当該アプリケーションソフトウェアと同じバージョンの基本ソフトウェアが保存された保存領域に限定される。
例えば、更新後のアプリケーションソフトウェアのバージョンが、運用保存領域に保存されたOSのバージョンと同じであって、非運用保存領域に保存されたOSのバージョンとは異なる場合、更新後のアプリケーションソフトウェアは運用保存領域に保存しなければ正常に動作しない可能性がある。この場合、アプリケーションソフトウェアは運用保存領域に保存される。なお、更新制御装置10は、各保存領域のバージョンを考慮して、いずれの保存領域にアプリケーションソフトウェアを保存するかを指示してもよい。
5.実施形態1~3の組み合わせ
更新順序決定部103は、上述した実施形態1~3の更新順序の決定手法を組み合わせて、各ECU20に搭載されたソフトウェアの更新順序を決定してもよい。以下に、実施形態1乃至3を組み合わせた場合の更新順序の決定を説明する。ただし、上述した実施形態1~3のうち2つの実施形態の更新順序の決定手法を組み合わせてもよい。
更新順序決定部103は、上述した実施形態1~3の更新順序の決定手法を組み合わせて、各ECU20に搭載されたソフトウェアの更新順序を決定してもよい。以下に、実施形態1乃至3を組み合わせた場合の更新順序の決定を説明する。ただし、上述した実施形態1~3のうち2つの実施形態の更新順序の決定手法を組み合わせてもよい。
図8は、更新対象ソフトウェアが、アプリケーションソフトウェア又は基本ソフトウェアのいずれであるか、更新ファイルのデータ量がメモリの空き容量よりも大きいか否か、及び、メモリの保存領域が1又は複数のいずれであるかに基づき、更新順序決定部103が決定した順序を示している。
更新順序決定部103は、以下の更新順序で更新処理を実行することを決定する。
・メモリ202が複数の保存領域を有しているECU20のアプリケーションソフトウェアであって、且つ、更新ファイルのデータ量がメモリ202の空き容量よりも小さいソフトウェアの更新
・メモリ202が1つの保存領域を有しているECU20のアプリケーションソフトウェアであって、且つ、更新ファイルのデータ量がメモリ202の空き容量よりも小さいソフトウェアの更新
・メモリ202が複数の保存領域を有しているECU20のアプリケーションソフトウェアであって、且つ、更新ファイルのデータ量がメモリ202の空き容量よりも大きいソフトウェアの更新
・メモリ202が1つの保存領域を有しているECU20のアプリケーションソフトウェアであって、且つ、更新ファイルのデータ量がメモリ202の空き容量よりも大きいソフトウェアの更新
・メモリ202が複数の保存領域を有しているECU20の基本ソフトウェアの更新
・メモリ202が1つの保存領域を有しているECU20の基本ソフトウェアの更新
・メモリ202が複数の保存領域を有しているECU20のアプリケーションソフトウェアであって、且つ、更新ファイルのデータ量がメモリ202の空き容量よりも小さいソフトウェアの更新
・メモリ202が1つの保存領域を有しているECU20のアプリケーションソフトウェアであって、且つ、更新ファイルのデータ量がメモリ202の空き容量よりも小さいソフトウェアの更新
・メモリ202が複数の保存領域を有しているECU20のアプリケーションソフトウェアであって、且つ、更新ファイルのデータ量がメモリ202の空き容量よりも大きいソフトウェアの更新
・メモリ202が1つの保存領域を有しているECU20のアプリケーションソフトウェアであって、且つ、更新ファイルのデータ量がメモリ202の空き容量よりも大きいソフトウェアの更新
・メモリ202が複数の保存領域を有しているECU20の基本ソフトウェアの更新
・メモリ202が1つの保存領域を有しているECU20の基本ソフトウェアの更新
実施形態1において説明したように、基本ソフトウェアのロールバック処理は、アプリケーションソフトウェアの機能停止を伴うおそれがある。そのため、アプリケーションソフトウェアの更新実行後に基本ソフトウェアの更新を実行する。
さらに、実施形態2において説明したように、更新ファイルのデータ量がメモリ202の空き容量よりも小さい場合、更新前のアプリケーションソフトウェアのデータを保存領域に残しておくことができるため、更新前のアプリケーションソフトウェアのデータを新たに取得せずに、ロールバック処理を実行することができる。そのため、メモリの空き容量よりも小さいデータ量の更新ファイルを用いたソフトウェアの更新実行後に、メモリの空き容量よりも大きいデータ量の更新ファイルを用いたソフトウェアの更新を実行する。
さらに、実施形態3において説明したように、メモリ202が複数の保存領域を有する場合、更新前のソフトウェアのデータを非運用保存領域に残しておくことができるため、更新前のソフトウェアのデータを新たに取得せずに、ロールバック処理を実行することができる。そのため、複数の保存領域を有するメモリ202を搭載したECU20のソフトウェアの更新実行後に、1つの保存領域を有するメモリ202を搭載したECU20のソフトウェアの更新を実行する。
なお、ECU20に搭載されたソフトウェアのうち、一部のソフトウェアでは複数の保存領域を使用し、一部のソフトウェアでは一つの保存領域を使用することがある。例えば、OSでは1つの保存領域のみを使用し、アプリケーションでは複数の保存領域を使用することがある。このような場合、複数の保存領域を有しているECU20のアプリケーションソフトウェアの更新を実行し、その後、1つの保存領域を有しているECU20の基本ソフトウェアの更新を実行することとなる。
6.各実施形態の変形例
上述した実施形態では、電子制御システムSを構成する各ECU20がそれぞれ異なるハードウェアであることを前提として説明した。また、図1(a)に示すように、更新制御装置10が移動体に搭載されている場合には、更新制御装置10と各ECU20とが異なるハードウェアであることを前提として説明した。しかしながら、図1(a)における更新制御装置10及び各ECU20は、それぞれ異なるハードウェアである構成に限定されるものではない。
上述した実施形態では、電子制御システムSを構成する各ECU20がそれぞれ異なるハードウェアであることを前提として説明した。また、図1(a)に示すように、更新制御装置10が移動体に搭載されている場合には、更新制御装置10と各ECU20とが異なるハードウェアであることを前提として説明した。しかしながら、図1(a)における更新制御装置10及び各ECU20は、それぞれ異なるハードウェアである構成に限定されるものではない。
図9を用いて、本変形例の電子制御システムSの一例を説明する。図9は、電子制御システムSを構成するECUとして、2つのECU100a、100bを図示しているが、当然のことながら電子制御システムSは任意の数のECUから構成される。電子制御システムSを構成するECUは、それぞれ仮想マシン(図面上は、VM(Virtual Machine)と略する。)を有する。
ECU100aは、仮想マシン10、20a、ハイパーバイザ(図面上は、HV(Hypervisor)と略する。)110、及び実ストレージ120を備える。ハイパーバイザ110は、ECU100aを仮想化するソフトウェアである。図9の例では、仮想マシン10、20aはハイパーバイザ110上に構築されている。ハイパーバイザ110上に構築された仮想マシン同士はそれぞれ仮想的に接続されている。
ECU100bは、ECU100aと通信ネットワークを介して接続されたECUであり、仮想マシン20b、ハイパーバイザ210、及び実ストレージ220を備える。ECU100aと同様、ハイパーバイザ210はECU100bを仮想化するソフトウェアであり、仮想マシン20bはハイパーバイザ210上に構築されている。
実ストレージ120、220はいずれもハードウェアのメモリであり、SRAMやDRAMといった揮発性メモリ、ROM、フラッシュメモリ、又はハードディスク等の不揮発性メモリである。各仮想マシン20aの保存部202aは実ストレージ120の保存領域を仮想化して実現される仮想メモリである。保存部202bも同様である。
本変形例の仮想マシン10は、ファイル取得部101、メモリ情報取得部102、更新順序決定部103、及び更新指示部104を実現する。本変形例のファイル取得部101、メモリ情報取得部102、更新順序決定部103、及び更新指示部104の機能及び動作は各実施形態と同じである。すなわち、本変形例の仮想マシン10は、上述した実施形態1~3の更新制御装置10として機能する。
また、本実施形態の仮想マシン20a、20bはそれぞれ、各実施形態のECU20a、ECU20bと同様、更新部(201a、201b)、及びメモリ(202a、202b)を実現する。本変形例の更新部201a、201b、及びメモリ202a、202bの機能及び動作は各実施形態と同じである。すなわち、本変形例の仮想マシン20a、20bは、上述した実施形態1~3のECU20a~20cとして機能する。
7.総括
以上、本発明の各実施形態における更新制御装置の特徴について説明した。
以上、本発明の各実施形態における更新制御装置の特徴について説明した。
各実施形態で使用した用語は例示であるので、同義の用語、あるいは同義の機能を含む用語に置き換えてもよい。
実施形態の説明に用いたブロック図は、装置の構成を機能毎に分類及び整理したものである。それぞれの機能を示すブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
各実施形態に記載した処理、フロー、及び方法として把握できる機能ブロック、については、一のステップでその前段の他のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
各実施形態、及び特許請求の範囲で使用する、第1、第2、乃至、第N(Nは整数)、の用語は、同種の2以上の構成や方法を区別するために使用しており、順序や優劣を限定するものではない。
各実施形態の更新制御装置は、車両に搭載される車載システムを構成する電子制御装置の更新を制御するための装置であることを前提としているが、本発明の更新制御装置は、特許請求の範囲で特に限定する場合を除き、任意の電子制御装置の更新を制御する装置に適用される。
また、本発明の装置の形態の例として、以下のものが挙げられる。
部品の形態として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えばビデオカメラ、スチルカメラ、カーナビゲーションシステムが挙げられる。
部品の形態として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えばビデオカメラ、スチルカメラ、カーナビゲーションシステムが挙げられる。
また各装置に、アンテナや通信用インターフェースなど、必要な機能を追加してもよい。
加えて、本発明は、各実施形態で説明した構成及び機能を有する専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記録媒体に記録した本発明を実現するためのプログラム、及びこれを実行可能な専用又は汎用CPU及びメモリ等を有する汎用のハードウェアとの組み合わせとしても実現できる。
専用や汎用のハードウェアの非遷移的実体的記録媒体(例えば、外部記憶装置(ハードディスク、USBメモリ、CD/BD等)、又は内部記憶装置(RAM、ROM等))に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して、専用又は汎用のハードウェアに提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
本開示は、主として自動車に搭載される車載用電子制御装置用の更新制御装置として説明したが、自動二輪車、船舶、鉄道、航空機等、移動する移動体全般に適用することが可能である。また、移動体に限らず、マイクロコンピュータを包含する製品全般に適用可能である。
10 更新制御装置、101 ファイル取得部、102 メモリ情報取得部、103 更新順序決定部、104 更新指示部
Claims (13)
- 第1のソフトウェアが搭載された第1の電子制御装置、及び第2のソフトウェアが搭載された第2の電子制御装置に通信ネットワークを介して接続される更新制御装置であって、
前記第1のソフトウェアを更新するための第1の更新ファイル、及び前記第2のソフトウェアを更新するための第2の更新ファイルを取得するファイル取得部(101)と、
前記第1の更新ファイルが、アプリケーションソフトウェアである前記第1のソフトウェアを更新するための更新ファイルであり、前記第2の更新ファイルが、アプリケーションソフトウェアが動作する基礎となる基本ソフトウェアである前記第2のソフトウェアを更新するための更新ファイルである場合、前記第1のソフトウェアの更新実行後に前記第2のソフトウェアの更新を実行するとの更新順序を決定する更新順序決定部(103)と、
前記更新順序で、前記第1の更新ファイルを用いた前記第1のソフトウェアの更新及び前記第2の更新ファイルを用いた前記第2のソフトウェアの更新を実行することを指示する更新指示部(104)と、
を備える、更新制御装置(10)。 - 前記更新順序決定部は、前記第1のソフトウェアの更新が完了した後に、前記第2のソフトウェアの更新を実行するとの前記更新順序を決定する、
請求項1記載の更新制御装置。 - 当該更新制御装置はさらに、
第3のソフトウェアが搭載された第3の電子制御装置に前記通信ネットワークを介して接続され、
前記第1の電子制御装置が有する第1のメモリの空き容量である第1の空き容量、及び前記第3の電子制御装置が有する第2のメモリの空き容量である第2の空き容量を示すメモリ情報を取得するメモリ情報取得部(102)を備えており、
前記ファイル取得部はさらに、アプリケーションソフトウェアである前記第3のソフトウェアを更新するための第3の更新ファイルを取得し、
前記更新順序決定部は、前記第1の更新ファイルのデータ量である第1のデータ量、前記第3の更新ファイルのデータ量である第2のデータ量、前記第1の空き容量、及び前記第2の空き容量に基づき、前記第1のソフトウェア及び前記第3のソフトウェアの更新順序を決定する、
請求項1記載の更新制御装置。 - 前記第1のデータ量が前記第1の空き容量よりも小さく、前記第2のデータ量が前記第2の空き容量よりも大きい場合、前記更新順序決定部は、前記第1のソフトウェアの更新実行後に前記第3のソフトウェアの更新を実行するとの前記更新順序を決定する、
請求項3記載の更新制御装置。 - 前記第1のデータ量が前記第1の空き容量よりも小さく、前記第2のデータ量が前記第2の空き容量よりも小さく且つ前記第1のデータ量よりも大きい場合、前記更新順序決定部は、前記第1のソフトウェアの更新実行後に前記第3のソフトウェアの更新を実行するとの前記更新順序を決定する、
請求項3記載の更新制御装置。 - 前記更新順序決定部はさらに、前記第1のメモリが有する保存領域の数及び前記第2のメモリが有する保存領域の数に基づき、前記更新順序を決定する、
請求項3記載の更新制御装置。 - 前記第1のメモリが複数の保存領域を有し、前記第2のメモリが1つの保存領域を有する場合、前記更新順序決定部は、前記第1のソフトウェアの更新実行後に前記第3のソフトウェアの更新を実行するとの前記更新順序を決定する、
請求項6記載の更新制御装置。 - 前記更新指示部は、前記第2の更新ファイルを用いた前記第2のソフトウェアの更新が失敗した場合に、前記第1のソフトウェアを、前記第1の更新ファイルを用いた更新を実行する前の状態に戻すことを指示する、
請求項1記載の更新制御装置。 - 前記更新指示部は、前記第1の更新ファイルを用いた前記第1のソフトウェアの更新が失敗した場合に、前記第2の更新ファイルを用いた前記第2のソフトウェアの更新停止を指示する、
請求項1記載の更新制御装置。 - 当該更新制御装置は、前記第1の電子制御装置及び前記第2の電子制御装置とともに移動体に搭載されている、
請求項1~9のいずれかに記載の更新制御装置。 - 前記第1の電子制御装置及び前記第2の電子制御装置は移動体に搭載されており、
当該更新制御装置は、前記移動体の外部に配置されている、
請求項1~9のいずれかに記載の更新制御装置。 - 第1のソフトウェアが搭載された第1の電子制御装置、及び第2のソフトウェアが搭載された第2の電子制御装置に通信ネットワークを介して接続される更新制御装置で実行される更新制御方法であって、
前記第1のソフトウェアを更新するための第1の更新ファイル、及び前記第2のソフトウェアを更新するための第2の更新ファイルを取得し、
前記第1の更新ファイルが、アプリケーションソフトウェアである前記第1のソフトウェアを更新するための更新ファイルであり、前記第2の更新ファイルが、アプリケーションソフトウェアが動作する基礎となる基本ソフトウェアである前記第2のソフトウェアを更新するための更新ファイルである場合、前記第1のソフトウェアの更新実行後に前記第2のソフトウェアの更新を実行するとの更新順序を決定し、
前記更新順序で、前記第1の更新ファイルを用いた前記第1のソフトウェアの更新及び前記第2の更新ファイルを用いた前記第2のソフトウェアの更新を実行することを指示する、
更新制御方法。 - 第1のソフトウェアが搭載された第1の電子制御装置、及び第2のソフトウェアが搭載された第2の電子制御装置に通信ネットワークを介して接続される更新制御装置で実行可能な更新制御プログラムであって、
前記第1のソフトウェアを更新するための第1の更新ファイル、及び前記第2のソフトウェアを更新するための第2の更新ファイルを取得し、
前記第1の更新ファイルが、アプリケーションソフトウェアである前記第1のソフトウェアを更新するための更新ファイルであり、前記第2の更新ファイルが、アプリケーションソフトウェアが動作する基礎となる基本ソフトウェアである前記第2のソフトウェアを更新するための更新ファイルである場合、前記第1のソフトウェアの更新実行後に前記第2のソフトウェアの更新を実行するとの更新順序を決定し、
前記更新順序で、前記第1の更新ファイルを用いた前記第1のソフトウェアの更新及び前記第2の更新ファイルを用いた前記第2のソフトウェアの更新を実行することを指示する、
更新制御プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022083059A JP2023170941A (ja) | 2022-05-20 | 2022-05-20 | 更新制御装置、更新制御方法、及び更新制御プログラム |
US18/317,127 US20230376298A1 (en) | 2022-05-20 | 2023-05-15 | Update control device, update control method, and non-transitory computer readable storage medium |
DE102023112740.3A DE102023112740A1 (de) | 2022-05-20 | 2023-05-15 | Aktualisierungssteuervorrichtung, aktualisierungssteuerverfahren und aktualisierungssteuerprogramm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022083059A JP2023170941A (ja) | 2022-05-20 | 2022-05-20 | 更新制御装置、更新制御方法、及び更新制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023170941A true JP2023170941A (ja) | 2023-12-01 |
Family
ID=88599971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022083059A Pending JP2023170941A (ja) | 2022-05-20 | 2022-05-20 | 更新制御装置、更新制御方法、及び更新制御プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230376298A1 (ja) |
JP (1) | JP2023170941A (ja) |
DE (1) | DE102023112740A1 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7111030B2 (ja) | 2019-03-04 | 2022-08-02 | 株式会社オートネットワーク技術研究所 | 車載更新装置、更新処理プログラム及び、プログラムの更新方法 |
-
2022
- 2022-05-20 JP JP2022083059A patent/JP2023170941A/ja active Pending
-
2023
- 2023-05-15 DE DE102023112740.3A patent/DE102023112740A1/de active Pending
- 2023-05-15 US US18/317,127 patent/US20230376298A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230376298A1 (en) | 2023-11-23 |
DE102023112740A1 (de) | 2023-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10509674B2 (en) | Software component assigning system for vehicle | |
JP6902722B2 (ja) | プログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラム | |
US11836475B2 (en) | Electronic control unit, software update method, software update program product and electronic control system | |
CN110622130B (zh) | 可配置的本地异构计算环境中的高容量、低延迟数据处理 | |
CN111104148A (zh) | 集成有Linux和android两系统的芯片平台的升级方法、系统及可读存储介质 | |
JP2013508839A5 (ja) | ||
JP2023168511A (ja) | 制御装置、方法、プログラム、および車両 | |
WO2018119662A1 (zh) | 内核更新方法和装置、计算机设备 | |
CN111052073B (zh) | 用于更新用于运行车辆装置的软件的方法和设备以及车辆 | |
US10545885B2 (en) | Information processing device, information processing method, and computer program product | |
JP2023170941A (ja) | 更新制御装置、更新制御方法、及び更新制御プログラム | |
CN106462550B (zh) | 用于共享嵌入式硬件资源的方法、设备和装置 | |
JP2023170662A (ja) | 電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム | |
US20220171613A1 (en) | Electronic control unit, software update method, software update program product and electronic control system | |
JP7220397B2 (ja) | 情報処理装置および情報処理方法 | |
JP2024024553A (ja) | 更新制御装置、更新制御方法、及び更新制御プログラム | |
JP7266216B2 (ja) | 情報処理装置および情報処理方法 | |
JP2018160208A (ja) | 車載制御装置、及び、プログラム更新ソフトウェア | |
JP2023170887A (ja) | 電子制御装置、ソフトウェア更新方法、及びソフトウェア更新プログラム | |
US11836476B2 (en) | Electronic control unit, software update method, software update program product and electronic control system | |
JP2022085862A (ja) | 電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム | |
JP7344109B2 (ja) | リソース割当システム、サーバ、演算装置 | |
US20240211239A1 (en) | Electronic control unit | |
US20240134556A1 (en) | Efficient memory partition management with apparent redundancy | |
US20240231665A9 (en) | Efficient memory partition management with apparent redundancy |