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

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

▶ 株式会社デンソーの特許一覧

特許7494712電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム
<>
  • 特許-電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム 図1
  • 特許-電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム 図2
  • 特許-電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム 図3
  • 特許-電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム 図4
  • 特許-電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム 図5
  • 特許-電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-27
(45)【発行日】2024-06-04
(54)【発明の名称】電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システム
(51)【国際特許分類】
   G06F 8/65 20180101AFI20240528BHJP
   G06F 9/455 20180101ALI20240528BHJP
   B60R 16/02 20060101ALI20240528BHJP
【FI】
G06F8/65
G06F9/455 150
B60R16/02 660U
【請求項の数】 13
(21)【出願番号】P 2020197510
(22)【出願日】2020-11-27
(65)【公開番号】P2022085703
(43)【公開日】2022-06-08
【審査請求日】2023-02-15
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】230120499
【弁護士】
【氏名又は名称】藤江 和典
(74)【代理人】
【識別番号】100201385
【弁理士】
【氏名又は名称】中安 桂子
(72)【発明者】
【氏名】後藤 史英
【審査官】多賀 実
(56)【参考文献】
【文献】特開2020-107355(JP,A)
【文献】特開2013-223094(JP,A)
【文献】特開2020-164113(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65-8/658
G06F 9/455
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
第1の仮想マシン(130)を有する電子制御装置であって、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)と、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)に送信する送信部(135)と、
前記第2の仮想マシンの属性情報である第2の属性情報を、前記第2の仮想マシンから受信する受信部(136)と、
前記第1の属性情報及び前記第2の属性情報に基づき、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動するか否かを決定する起動決定部(137)と、
前記起動決定部が前記更新管理機能を起動すると決定した場合に、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する更新指示部(138)と、を有する、
電子制御装置(10)。
【請求項2】
さらに、前記起動決定部が前記更新管理機能を起動しないと決定した場合に、前記更新管理機能を休止させる休止制御部(140)を有する、
請求項1記載の電子制御装置。
【請求項3】
さらに、前記更新ファイルを用いて前記第1の仮想マシンのソフトウェアを更新する更新部(133)を有する、
請求項1記載の電子制御装置。
【請求項4】
前記第1の属性情報には、前記第1の仮想マシンのソフトウェアの更新の要否を示す更新要否情報が含まれており、
前記更新要否情報が前記第1の仮想マシンのソフトウェアの更新が不要であることを示している場合、前記起動決定部は前記更新管理機能を起動しないと決定する、
請求項1記載の電子制御装置。
【請求項5】
第1の仮想マシン(130)を有する電子制御装置であって、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)と、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記ファイル取得部に送信する送信部(135)と、
前記第1の属性情報、及び前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)の属性情報である第2の属性情報を受信した前記ファイル取得部が、前記第1の属性情報及び前記第2の属性情報に基づき生成した、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動する起動命令を受信する受信部(136)と、
前記受信部が前記起動命令を受信した場合、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する更新指示部(138)と、を有する、
電子制御装置(10)。
【請求項6】
さらに、前記受信部が前記起動命令を受信した場合、前記第2の仮想マシンの更新管理機能を休止させる休止命令を生成する休止制御部(140)と、
記休止命令を前記第2の仮想マシンに配信する配信部(139,131)と、を有する、
請求項5記載の電子制御装置。
【請求項7】
当該電子制御装置は移動体に搭載されている、
請求項1~6記載の電子制御装置。
【請求項8】
第1の仮想マシンを有する電子制御装置で実行されるソフトウェア更新方法あって、
前記電子制御装置は、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)を有し、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記第1の仮想マシンに接続された第2の仮想マシンに送信し(S101)、
前記第2の仮想マシンの属性情報である第2の属性情報を、前記第2の仮想マシンから受信し(S102)、
前記第1の属性情報及び前記第2の属性情報に基づき、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動するか否かを決定し(S103)、
前記更新管理機能を起動すると決定した場合に、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する(S107)、
ソフトウェア更新方法。
【請求項9】
第1の仮想マシンを有する電子制御装置で実行されるソフトウェア更新方法であって、
前記電子制御装置は、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)を有し、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記ファイル取得部に送信し(S201)、
前記第1の属性情報、及び前記第1の仮想マシンに接続された第2の仮想マシンの属性情報である第2の属性情報を受信した前記ファイル取得部が、前記第1の属性情報及び前記第2の属性情報に基づき生成した、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動する起動命令を受信し(S203)、
前記起動命令を受信した場合、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する(S208)、
ソフトウェア更新方法。
【請求項10】
第1の仮想マシンを有する電子制御装置で実行可能なソフトウェア更新プログラムあって、
前記電子制御装置は、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)を有し、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記第1の仮想マシンに接続された第2の仮想マシンに送信し(S101)、
前記第2の仮想マシンの属性情報である第2の属性情報を、前記第2の仮想マシンから受信し(S102)、
前記第1の属性情報及び前記第2の属性情報に基づき、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動するか否かを決定し(S103)、
前記更新管理機能を起動すると決定した場合に、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する(S107)、
ソフトウェア更新プログラム。
【請求項11】
第1の仮想マシンを有する電子制御装置で実行可能なソフトウェア更新プログラムであって、
前記電子制御装置は、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)を有し、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記ファイル取得部に送信し(S201)、
前記第1の属性情報、及び前記第1の仮想マシンに接続された第2の仮想マシンの属性情報である第2の属性情報を受信した前記ファイル取得部が、前記第1の属性情報及び前記第2の属性情報に基づき生成した、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動する起動命令を受信し(S203)、
前記起動命令を受信した場合、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する(S208)、
ソフトウェア更新プログラム。
【請求項12】
第1の仮想マシンを有する第1の電子制御装置(10)と、第2の仮想マシンを有する第2の電子制御装置(20)とを有する電子制御システムであって、
前記第1の仮想マシンは、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)と、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記第1の仮想マシンに接続された第2の仮想マシンに送信する送信部(135)と、
前記第2の仮想マシンの属性情報である第2の属性情報を、前記第2の仮想マシンから受信する受信部(136)と、
前記第1の属性情報及び前記第2の属性情報に基づき、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動するか否かを決定する起動決定部(137)と、
前記起動決定部が前記更新管理機能を起動すると決定した場合に、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する更新指示部(138)と、を有し、
第2の仮想マシンは、
前記第1の仮想マシンから指示された前記更新ファイルを用いてソフトウェアの更新を行う更新部(232)を有する、
電子制御システム(1)。
【請求項13】
第1の仮想マシンを有する第1の電子制御装置と、第2の仮想マシンを有する第2の電子制御装置とを有する電子制御システムであって、
前記第1の仮想マシンは、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)と、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記ファイル取得部に送信する送信部(135)と、
前記第1の属性情報、及び前記第1の仮想マシンに接続された前記第2の仮想マシンの属性情報である第2の属性情報を受信した前記ファイル取得部が、前記第1の属性情報及び前記第2の属性情報に基づき生成した、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動する起動命令を受信する受信部(136)と、
前記受信部が前記起動命令を受信した場合、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する更新指示部(138)と、を有し、
第2の仮想マシンは、
前記第1の仮想マシンから指示された前記更新ファイルを用いてソフトウェアの更新を行う更新部(232)を有する、
電子制御システム(1)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子制御装置に関するものであり、主として車両用の電子制御装置、電子制御装置で実現する方法、電子制御装置で実行可能なプログラム、及び複数の電子制御装置からなる電子制御システムに関する。
【背景技術】
【0002】
自動車においては、車載ネットワークで接続された様々な電子制御装置が搭載されている。近年の自動運転技術の発展に伴い自動車に求められる機能が複雑になりつつあり、自動車に搭載される電子制御装置の数は増加しつつある。
【0003】
電子制御装置の数が増加すると、電子制御装置のソフトウェアの更新が必要となった場合、それぞれの電子制御装置のソフトウェアを更新する工程も複雑になる。
【0004】
例えば、特許文献1には、車載装置において、ゲートウェイである車載更新装置を設け、車載更新装置が各車載ECUに更新プログラムを配信することが開示されている。
また、特許文献2には、通信装置同士が衝突しないように、マスタ機器とスレーブ機器を決定する処理が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2020-142565号公報
【文献】特開2007-215240号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ここで、本発明者は、以下の課題を見出した。
車両に搭載される電子制御装置を、仮想化技術を用いた仮想マシン上で実現する場合、ソフトウェアを更新するファイルの配信・管理を行う更新管理機能をどこに置くかの自由度は高くなる。しかし、自由度が高くなると、複数の更新管理機能が設定される可能性がある。複数の更新管理機能が設定された場合、ソフトウェア更新状態の管理ができなくなったり、ファイル更新が複数回実行されてしまうという問題が生じる可能性がある。
【0007】
そこで、本発明は、仮想マシンにおける更新管理機能の起動を制御することを目的とする。
【課題を解決するための手段】
【0008】
本開示の一態様による電子制御装置は、
第1の仮想マシン(130)を有する電子制御装置(10)であって、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)と、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)に送信する送信部(135)と、
前記第2の仮想マシンの属性情報である第2の属性情報を、前記第2の仮想マシンから受信する受信部(136)と、
前記第1の属性情報及び前記第2の属性情報に基づき、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動するか否かを決定する起動決定部(137))と、
前記起動決定部が前記更新管理機能を起動すると決定した場合に、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する更新指示部(138)と、を有する。
【0009】
本開示の他の態様による電子制御装置は、
第1の仮想マシン(130)を有する電子制御装置(10)であって、
ソフトウェアを更新するための更新ファイルを当該電子制御装置の外部から取得するファイル取得部(131)と、
前記第1の仮想マシンの属性情報である第1の属性情報を、前記ファイル取得部に送信する送信部(135)と、
前記第1の属性情報、及び前記第1の仮想マシンに接続された第2の仮想マシン(150,160,230)の属性情報である第2の属性情報を受信した前記ファイル取得部が、前記第1の属性情報及び前記第2の属性情報に基づき生成した、前記第1の仮想マシン及び前記第2の仮想マシンのソフトウェア更新のための更新管理機能を起動する起動命令を受信する受信部(136)と、
前記受信部が前記起動命令を受信した場合、前記ファイル取得部から転送された前記更新ファイルを用いた更新を前記第2の仮想マシンに指示する更新指示部(138)と、を有する。
【0010】
なお、特許請求の範囲、及び本項に記載した発明の構成要件に付した括弧内の番号は、本発明と後述の実施形態との対応関係を示すものであり、本発明を限定する趣旨ではない。
【発明の効果】
【0011】
本開示の電子制御装置、ソフトウェア更新方法、ソフトウェア更新プログラム、及び電子制御システムによれば、仮想マシンにおける更新管理機能の起動を制御することが可能となる。
より具体的には、電子制御装置又は電子制御システムにおいて、設定される更新管理機能を1つに限定することにより、更新管理機能同士が抵触することを防止することができる。
【図面の簡単な説明】
【0012】
図1】実施形態1、2の電子制御装置、及び当該電子制御装置を備える電子制御システムを説明する図
図2】実施形態1、2の電子制御装置の更新管理部132の構成を説明する図
図3】実施形態1の電子制御システム全体の動作を説明する図
図4】実施形態1の電子制御装置の動作を説明する図
図5】実施形態2の電子制御システム全体の動作を説明する図
図6】実施形態2の電子制御装置の動作を説明する図
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について、図面を参照して説明する。
【0014】
なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語句は、特許請求の範囲又は課題を解決するための手段の項に記載された語句を意味し、同じく以下の実施形態に限定されるものではない。
【0015】
特許請求の範囲の従属項に記載の構成及び方法は、特許請求の範囲の独立項に記載の発明において任意の構成及び方法である。従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明において任意の構成及び方法である。特許請求の範囲の記載が実施形態の記載よりも広い場合における実施形態に記載の構成及び方法も、本発明の構成及び方法の例示であるという意味で、本発明において任意の構成及び方法である。いずれの場合も、特許請求の範囲の独立項に記載することで、本発明の必須の構成及び方法となる。
【0016】
実施形態に記載した効果は、本発明の例示としての実施形態の構成を有する場合の効果であり、必ずしも本発明が有する効果ではない。
【0017】
複数の実施形態がある場合、各実施形態に開示の構成は各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。例えば一の実施形態に開示の構成を、他の実施形態に組み合わせても良い。また、複数の実施形態それぞれに開示の構成を集めて組み合わせても良い。
【0018】
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の構成及び方法と共に発明の進歩性を肯定する事実である。
【0019】
1.各実施形態に共通する構成
図1及び図2を用いて、各実施形態の電子制御装置、及び当該電子制御装置を備える電子制御システムを説明する。各実施形態の電子制御装置及び電子制御システムは、「移動体」である車両に「搭載されている」車載装置及び車載システムを想定しているが、これらに限定されるものではない。
【0020】
ここで、「移動体」とは、移動可能な物体をいい、移動速度は任意である。また移動体が停止している場合も当然含む。例えば、自動車、自動二輪車、自転車、歩行者、船舶、航空機、及びこれらに搭載される物を含み、またこれらに限らない。
また、「搭載されている」、とは、移動体に直接固定されている場合の他、移動体に固定されていないが移動体と共に移動する場合も含む。例えば、移動体に乗った人が所持している場合、移動体に載置された積荷に搭載されている場合、が挙げられる。
【0021】
電子制御システム1は、複数の「電子制御装置」(以下、ECU:Electronic Control Unit)から構成されるシステムである。図1は、2つのECU(ECU10、ECU20)を備える電子制御システム1を示しているが、任意の数のECUから構成される。ECU10及びECU20は、例えば、CAN(Controller Area Network)やLIN(Local Interconnect Network)といった車載ネットワーク、イーサネット(登録商標)、又は無線通信ネットワークを介して接続されている。
【0022】
ここで、「電子制御装置」は、例えば、主に半導体装置で構成され、CPU(Central Processing Unit)、およびRAM(Random Access Memory)等の揮発性記憶部を有する、いわゆる情報処理装置として構成されていてもよい。この場合、情報処理装置はさらに、フラッシュメモリ等の不揮発性記憶部、通信ネットワーク等に接続されるネットワークインターフェース部等を有していてもよい。さらに、このような情報処理装置はパッケージ化された半導体装置(素子)であっても、配線基板において各半導体装置が配線接続された構成であってもよい。
【0023】
ECU10は例えば、Adaptive Platform(AP)と呼ばれる、動的な機能の拡張が可能なプラットフォームをベースとしたECUである。APは主に、自動運転用のECUに適したプラットフォームである。また、ECU20は例えば、Classic Platform(CP)と呼ばれる、静的な機能を最適化したプラットフォームをベースとしたECUである。CPは主に、車両制御用のECUに適したプラットフォームである。
【0024】
電子制御システム1を構成するECU10、ECU20はいずれも、ハイパーバイザによって管理される1以上の仮想マシン(図面上は、VM(Virtual Machine)と略する。)を有する。以下に、ECU10、ECU20、及び各ECUに搭載される仮想マシンの構成を説明する。
【0025】
(1)ECU10について
ECU10(「電子制御装置」又は「第1の電子制御装置」に相当)は、ハイパーバイザ(HV)110、ハイパーバイザ110によって管理される複数の仮想マシン(130、150、160)、並びにハードウェアである実ストレージ120を備える。
【0026】
ハイパーバイザ110は、ECU10を仮想化するソフトウェアである。図1の例では、仮想マシン130、仮想マシン150、仮想マシン160はハイパーバイザ110上に構築されている。ハイパーバイザ上に構築された仮想マシン同士はそれぞれ仮想的に接続されている。また、後述のECU20に搭載された仮想マシン230とも接続されている。
【0027】
実ストレージ120は、ハードウェアのメモリであり、SRAMやDRAMといった揮発性メモリ、ROM、フラッシュメモリ、又はハードディスク等の不揮発性メモリである。後述する仮想マシン130、仮想マシン150、及び仮想マシン160の仮想ストレージは、実ストレージ120の保存領域を仮想化して実現される。実ストレージ120は、ECU10のハイパーバイザ110が管理する保存領域である。
【0028】
(i)仮想マシン130について
ハイパーバイザ110によって管理される仮想マシン130(「第1の仮想マシン」に相当)は、ファイル取得部131、更新管理部132、更新部133、及び仮想ストレージ134を有する。
【0029】
ファイル取得部131は、車両制御システム1の外部に設けられたサーバ装置からOTA(over the Air)又は有線通信を用いてファイルを取得する。ファイル取得部131が取得するファイルは、仮想マシンのソフトウェアを更新するための更新ファイルを含み、例えば、複数の仮想マシンを更新するための複数の更新ファイルを含む更新ファイル群であってもよい。ファイルはさらに、ソフトウェアを更新すべき対象の仮想マシンを特定する情報を含んでもよい。ファイル取得部131は、取得した更新ファイル群を更新管理部132に転送する。ファイル取得部131は、OTAクライアントとも称される。
【0030】
更新管理部132は、ファイル取得部131から転送されたファイルを更新対象の仮想マシンに配信するために必要な一連の処理を行う。更新管理部132は、図2に示す通り、送信部135、受信部136、起動決定部137、更新指示部138、配信部139、及び休止制御部140を実現する。更新管理部132は、UCM(Update and Configuration Management)マスタとも称される。
【0031】
送信部135は、更新管理部132の外部に、仮想マシン130の「属性情報」(「第1の属性情報」に相当)を送信する。送信先は、後述の実施形態1では、仮想マシン130に「接続」された仮想マシン150、仮想マシン160、及び仮想マシン230(以上、それぞれ「第2の仮想マシン」に相当)である。後述の実施形態2では、ファイル取得部131である。属性情報の例として、仮想マシンやそれに含まるデバイスの識別情報、仮想マシンやそれに含まれるデバイスのIPアドレス、プロセッサの種類や性能及び稼働率、搭載するメモリの性能や容量、接続されているインターフェースの種類や数、電源供給状態、などが挙げられる。また、属性情報にソフトウェアの更新の要否の情報である更新要否情報を含めるようにしてもよい。
【0032】
ここで、「属性情報」とは、「第1の仮想マシン」又は「第2の仮想マシン」を特定する情報の他、「第1の仮想マシン」又は「第2の仮想マシン」が有する性質、特徴、又は状態を示す情報をいう。
また、「接続」とは、仮想マシン同士でデータのやり取りが可能な状態をいい、同一のハードウェア上で実現された仮想マシン同士が仮想的に接続されている場合の他、異なるハードウェア上で実現された仮想マシン同士がネットワーク等を介して接続されている場合も含む。また、データのやり取りが可能な状態とは、必ずしも実際にデータのやり取りが可能である必要はない。例えば、一方の仮想マシンが何らかのトラブルで一時的に停止していたり、スリープ状態にある場合であってもデータのやり取りが可能な状態である。
【0033】
受信部136は、更新管理部132の外部から、情報又は命令を受信する。後述の実施形態1では、仮想マシン150、仮想マシン160、及び仮想マシン230から、それぞれの「属性情報」(「第2の属性情報」に相当)を受信する。後述の実施形態2では、ファイル取得部131から起動命令を受信する。詳細は各実施形態で説明する。
【0034】
起動決定部137は、仮想マシン130の属性情報、並びに仮想マシン150、仮想マシン160、及び仮想マシン230のそれぞれの属性情報に基づき、仮想マシン130、仮想マシン150、仮想マシン160、及び仮想マシン230のソフトウェア更新のための更新管理機能を起動するか否かを決定する。更新管理機能とは、本実施形態では、更新指示部138、及び配信部139をいう。なお、実施形態2では、起動決定部137は必ずしも必要ではない。
【0035】
更新指示部138は、ソフトウェアの更新対象の各仮想マシンに対して仮想マシンのソフトウェアの更新を指示する。各仮想マシンが更新対象かどうかは、ファイル取得部131から転送された更新ファイル群に含まれる、更新対象の仮想マシンを特定する情報に基づいて判定することができる。あるいは、特定の条件を満たす仮想マシンを更新対象とすることができる。
【0036】
更新指示部138の更新指示は、更新ファイルの保存先を示すアドレスを示すものであってもよい。例えば、更新指示が、更新ファイルの保存先のアドレスを示すことにより、更新ファイルを用いて仮想マシンのソフトウェアを更新することを間接的に指示することができる。また、更新指示が、更新ファイルを保存した実ストレージ120のアドレスを示すことにより、実ストレージ120にアクセスすることにより実ストレージ120に保存されている更新ファイルを用いて仮想マシンのソフトウェアを更新することを間接的に指示することができる。更新指示はさらに、仮想マシンに更新ファイルを配信するかどうかを示す情報を含んでもよい。
【0037】
配信部139は、ファイル取得部131から転送された更新ファイルを、仮想マシン150、仮想マシン160、及び仮想マシン230に配信する。すなわち、更新ファイルを通信やメモリ間転送を用いて送信する。後述の実施形態1では、起動決定部137がファイル管理機能を起動すると決定した場合に配信する。後述の実施形態2では、受信部136がファイル取得部131から受信した起動命令に基づき配信する。詳細は各実施形態で説明する。
【0038】
休止制御部140は、更新管理機能である更新指示部138及び配信部139を「休止」させる。又は、休止制御部140は、他の仮想マシンの更新管理機能である更新指示部及び配信部を「休止」させる。後述の実施形態1では、起動決定部137が更新管理機能を起動しないと決定した場合に、休止制御部140は仮想マシン130の更新管理機能である更新指示部138及び配信部139を「休止」させる。後述の実施形態2では、休止制御部140は、仮想マシン150、仮想マシン160、又は仮想マシン230の更新管理機能を「休止」させる休止命令を生成し、配信部139から配信する。詳細は各実施形態で説明する。
【0039】
ここで、「休止」とは、少なくとも更新管理機能が動作しない状態であればよい。例えば、アイドル状態、スリープ状態、などと表現されることもある。
【0040】
更新部133は、更新指示部138からの指示に基づき、更新ファイルを用いて仮想マシン130のソフトウェアを更新する。更新部133は、仮想マシン130のソフトウェアの更新処理が完了すると、更新管理部133に更新が完了したことを通知する。更新部133及び後述する他の仮想マシンの更新部152、162、232は、UCMサブオーディネイトとも称される。
【0041】
仮想ストレージ134は、実ストレージ120の保存領域を仮想化することで、仮想マシン130に仮想的に設けられた保存領域である。そのため、仮想ストレージ134に保存されたファイルは、実ストレージ120に保存されたファイルであるとも観念される。以下に説明する仮想マシン150の仮想ストレージ153、仮想マシン160の仮想ストレージ163についても同様である。
【0042】
(ii)仮想マシン150、仮想マシン160について
仮想マシン150及び仮想マシン160(それぞれ「第2の仮想マシン」に相当)は、仮想マシン130と同様、ハイパーバイザ110によって管理される仮想マシンである。仮想マシン150は、更新管理部151、更新部152、及び仮想ストレージ153を有する。仮想マシン160は、更新管理部161、更新部162、及び仮想ストレージ163を有する。
【0043】
更新管理部151及び更新管理部161は、更新管理部132と同様の構成を有している。更新管理部151及び更新管理部161は、後述の実施形態1では、これらが有する起動決定部が更新管理機能を起動しないと決定した場合に休止制御部が更新管理機能を休止させるので、更新管理部151及び更新管理部161は休止している。後述の実施形態2では、仮想マシン130から配信された休止命令により、更新管理部151及び更新管理部161は休止している。
【0044】
更新部152及び更新部162は、それぞれ更新管理部151及び更新管理部161が休止しているので、仮想マシン130の更新指示部138からの更新指示に基づいて、それぞれの仮想マシンのソフトウェアの更新を行う。更新部152及び更新部162は、ソフトウェアの更新処理が完了すると、第1の仮想マシン130の更新管理部132に更新が完了したことを通知する。
【0045】
仮想ストレージ153及び仮想ストレージ163は、仮想マシン150及び仮想マシン160にそれぞれ仮想的に設けられた保存領域である。仮想マシン130の配信部139から更新ファイルが配信される場合、更新ファイルはそれぞれの仮想ストレージ153及び仮想ストレージ163に保存される。
【0046】
(2)ECU20について
ECU20(「第2の電子制御装置」に相当)は、ハイパーバイザ210、ハードウェアである実ストレージ220、及びハイパーバイザ210によって管理される仮想マシン230(「第2の仮想マシン」に相当)を備える。
【0047】
ECU10とECU20とは、例えば車載ネットワークで接続されており、ECU10が有する仮想マシン130と、ECU20が有する仮想マシン230とは、車載ネットワークを介して仮想的に接続されている。
【0048】
ハイパーバイザ210は、ECU20を仮想化するソフトウェアである。仮想マシン230はハイパーバイザ210上に構築される。
【0049】
実ストレージ220は、ECU10の実ストレージ120と同様、ハードウェアのメモリであり、SRAMやDRAMといった揮発性メモリ、ROM、フラッシュメモリ、又はハードディスク等の不揮発性メモリである。
【0050】
ECU20が有する仮想マシン230は、上述した仮想マシン150及び仮想マシン160と同様、更新管理部231、更新部232、及び仮想ストレージ233を有する。なお、本実施形態では、ECU20の仮想マシン230が更新管理機能を有する例を示しているが、更新管理部231を有しないように構成してもよい。
【0051】
更新管理部231は、更新管理部132と同様の構成を有している。後述の実施形態1では、更新管理部231が有する起動決定部が更新管理機能を起動しないと決定した場合に休止制御部が更新管理機能を休止させるので、更新管理部231は休止している。後述の実施形態2では、仮想マシン130から配信された休止命令により、更新管理部231は休止している。
【0052】
更新部232は、更新管理部231が休止しているので、仮想マシン130の更新指示部138からの更新指示に基づいて仮想マシン230のソフトウェアの更新を行い、ソフトウェアの更新処理が完了すると仮想マシン130の更新管理部132に更新が完了したことを通知する。
【0053】
仮想ストレージ233は、実ストレージ220に仮想的に設けられた保存領域である。配信部139から更新ファイルが配信された場合、更新ファイルを仮想ストレージ233に保存してもよい。
【0054】
(3)小括
以上、実施形態1、2に共通する電子制御装置、及び電子システムの構成を説明した。
なお、図1は、ECU10が1つのハイパーバイザ110を有する例を示しているが、複数のハイパーバイザを有していてもよい。また、ハイパーバイザ上に構築される仮想マシンの数についても任意である。
【0055】
2.実施形態1
本実施形態は、ECU10である電子制御装置、又はECU10及びECU20からなる電子制御システム1において、各仮想マシンの更新管理部同士で調停を行うことにより、同時に稼働する更新管理機能を1つに限定するものである。すなわち、各仮想マシンが属性情報を交換し合い、各仮想マシンが自身で更新管理機能を起動するか否かを決定するものである。
以下、図3及び図4を用いて説明する。図3は電子制御システム1全体の動作を示す図である。図4は、仮想マシン130の更新管理部132の動作を示す図である。図3に示す符号と、図4に示す符号はそれぞれ対応しており、同じ符号は同じ処理を示している。
【0056】
なお、図4に示す更新管理部132の動作とは、ECU10の動作であるとも観念できる。また、ECU10の動作は、電子制御装置で実行されるソフトウェア更新方法を示すだけでなく、電子制御装置で実行可能なソフトウェア更新プログラムの処理手順を示すものである。そして、これらの処理は、図3及び図4で示した順序には限定されない。すなわち、あるステップでその前段のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。実施形態2の図5及び図6についても同様である。
【0057】
仮想マシン130の更新管理部132の送信部135は、仮想マシン130の属性情報を、仮想マシン130に接続された仮想マシン150、仮想マシン160、及び仮想マシン230に送信する(S101)。送信部135の送信方法は、送信先を指定したユニキャスト送信/マルチキャスト送信、送信先を指定しないブロードキャスト送信、のいずれでもよい。
【0058】
仮想マシン130の更新管理部132の受信部136は、仮想マシン150、仮想マシン160、及び仮想マシン230から送信されたそれぞれの仮想マシンの属性情報を受信する(S102)。
【0059】
すなわち、それぞれの仮想マシンは、自らの属性情報を他の仮想マシンに送信するとともに、他の仮想マシンから属性情報を受信しているので、それぞれの仮想マシンは接続されている全ての仮想マシンの属性情報を取得していることになる。
【0060】
仮想マシン130の更新管理部132の起動決定部137は、仮想マシン130の属性情報、並びに仮想マシン150、仮想マシン160、及び仮想マシン230のそれぞれの属性情報に基づき、仮想マシン130のソフトウェア更新のための更新管理機能を起動するか否かを決定する(S103)。
【0061】
起動決定部137の決定方法として、以下の例が挙げられる。
・各更新管理部のIDが最大/最小
・各更新管理部のIPアドレスが最大/最小
・各仮想マシンに割り当てられたハードウェアの性能(マシンマニュフェストとも称される。)例えば、以下の通り。
プロセッサの種類や性能及び稼働率
搭載するメモリの性能や容量
接続されているインターフェースの種類及び数
・各更新管理部の機能安全度
・電源供給状態
【0062】
仮想マシン130の属性情報にソフトウェアの更新の要否の情報である更新要否情報が含まれている場合であって、仮想マシンのソフトウェアの更新が不要であることを「示している」場合は、起動決定部137は、仮想マシン130のソフトウェア更新のための更新管理機能を起動しないと決定してもよい。このような決定をすることにより、自装置のソフトウェア更新が不要な仮想マシンが更新管理機能を起動することを防止することができ、ひいては起動する電子制御装置や仮想マシンの数を削減することができる。
【0063】
ここで、「示している」とは、更新の要否を直接示している場合の他、更新の要否が特定できるような間接事実が示されている場合も含む。
【0064】
図3においては、仮想マシン130の起動決定部137が、更新管理機能を起動すると決定している。これに対し、仮想マシン150、仮想マシン160、及び仮想マシン230の起動決定部は、更新管理機能を起動しないと決定している。
【0065】
更新管理機能の起動を決定した仮想マシン130の送信部135は、仮想マシン130の更新管理機能が起動したことを示す起動通知をファイル取得部131に送信する(S104)。
【0066】
これに対し、更新管理機能を起動しないことを決定した仮想マシン150、仮想マシン160、及び仮想マシン230の休止制御部は、それぞれの更新管理機能を休止させる(S105)。例えば、仮想マシン150、仮想マシン160、及び仮想マシン230のそれぞれの更新指示部及び配信部を休止させる。
【0067】
更新管理機能の起動を決定した仮想マシン130の受信部136は、ファイル取得部131から転送されたファイル更新リクエスト及び更新ファイルを受信する(S106)。
【0068】
更新管理機能の起動を決定した仮想マシン130の更新指示部138は、更新管理機能を休止した仮想マシン150、仮想マシン160、及び仮想マシン230に対し、更新指示を送信する(S107)。この際、仮想マシン130の更新部133にも更新指示を送信してもよい。また、仮想マシン130の配信部139は、仮想マシン150、仮想マシン160、及び仮想マシン230に対し、更新ファイルを配信する(S108)。
【0069】
なお、S104で、仮想マシン130がファイル取得部131に対し起動通知を送信することにより、ファイル取得部131において更新管理機能を起動している仮想マシンを認識することとなるが、これに代えて、ファイル取得部131が、仮想マシン130、仮想マシン150、仮想マシン160、及び仮想マシン230に更新管理機能が起動していることを問い合わせる検索信号を送信し、これに対する応答信号を送信した仮想マシンを更新管理機能が起動している仮想マシンと認識するようにしてもよい。
【0070】
以上、本実施形態によれば、仮想マシンの更新管理部同士が調停を行うことにより、起動する更新管理機能を1つに制限することができるので、更新管理機能同士の抵触を防止し、ソフトウェアの更新管理を正確かつ効率よく実行することができる。
【0071】
3.実施形態2
本実施形態は、ECU10である電子制御装置、又はECU10及びECU20からなる電子制御システム1において、ファイル取得部131が更新管理機能を起動する仮想マシンを決定することにより、同時に稼働する更新管理機能を1つに限定するものである。すなわち、ファイル取得部131が各仮想マシンの属性情報を取得し、どの仮想マシンの更新管理機能を起動するかを決定するものである。
以下、図5及び図6を用いて説明する。図5は電子制御システム1全体の動作を示す図である。図6は、仮想マシン130の更新管理部132の動作を示す図である。図5に示す符号と、図6に示す符号はそれぞれ対応しており、同じ符号は同じ処理を示している。
【0072】
仮想マシン130の更新管理部132の送信部135は、仮想マシン130の属性情報を、ファイル取得部131に送信する(S201)。送信部135の送信方法は、送信先を指定したユニキャスト送信/マルチキャスト送信、送信先を指定しないブロードキャスト送信、のいずれでもよい。ブロードキャスト送信の場合は、仮想マシン130の属性情報はファイル取得部131だけでなく、仮想マシン130と接続された仮想マシン150、仮想マシン160、及び仮想マシン230にも送信されるので、実施形態1と実質的に同じとなる。
【0073】
仮想マシン150、仮想マシン160、及び仮想マシン230の送信部も同様に、それぞれの属性情報をファイル取得部131に送信する(S201)。
【0074】
ファイル取得部131は、仮想マシン130の属性情報、並びに仮想マシン150、仮想マシン160、及び仮想マシン230の属性情報に基づき、ソフトウェア更新のための更新管理機能を起動する起動命令を生成する(S202)。起動命令には、どの仮想マシンを起動するかの情報を含めてもよい。この場合は、起動命令を、送信先を特定しないブロードキャスト送信で送信することができる。どの仮想マシンを起動するかは、実施形態1の起動決定部137の決定方法と同じ方法を用いることができる。本実施形態では、仮想マシン130を起動すると決定したとする。
【0075】
仮想マシン130の更新管理部132の受信部136は、ファイル取得部131から送信された起動命令を受信する(S203)。
【0076】
起動命令を受信した仮想マシン130の更新管理部132の休止制御部140は、仮想マシン150、仮想マシン160、及び仮想マシン230の更新管理機能を休止させる休止命令を生成する(S204)。そして、配信部139は、休止命令を仮想マシン150、仮想マシン160、及び仮想マシン230に配信する(S205)。
【0077】
休止命令を受信した仮想マシン150、仮想マシン160、及び仮想マシン230の休止制御部は、それぞれの更新管理機能を休止させる(S206)。
【0078】
仮想マシン130の受信部136は、ファイル取得部131から転送されたファイル更新リクエスト及び更新ファイルを受信する(S207)。
【0079】
仮想マシン130の更新指示部138は、更新管理機能を休止した仮想マシン150、仮想マシン160、及び仮想マシン230に対し、更新指示を送信する(S208)。この際、仮想マシン130の更新部133にも更新指示を送信してもよい。また、仮想マシン130の配信部139は、仮想マシン150、仮想マシン160、及び仮想マシン230に対し、更新ファイルを配信する(S209)。
【0080】
なお、S205で、休止命令は配信部139から配信したが、これに代えて、休止命令をファイル取得部131から配信するようにしてもよい。
【0081】
以上、本実施形態によれば、ファイル取得部131が更新管理機能を起動する仮想マシンを決定することにより、起動する更新管理機能を1つに制限することができるので、更新管理機能同士の抵触を防止し、ソフトウェアの更新管理を正確かつ効率よく実行することができる。
【0082】
4.総括
以上、本発明の各実施形態における電子制御装置、及び当該電子制御装置を備える電子制御システムの特徴について説明した。
【0083】
各実施形態で使用した用語は例示であるので、同義の用語、あるいは同義の機能を含む用語に置き換えてもよい。
【0084】
実施形態の説明に用いたブロック図は、装置の構成を機能毎に分類及び整理したものである。それぞれの機能を示すブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
【0085】
各実施形態に記載した処理、フロー、及び方法として把握できる機能ブロック、については、一のステップでその前段の他のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
【0086】
各実施形態、及び特許請求の範囲で使用する、第1、第2、乃至、第N(Nは整数)、の用語は、同種の2以上の構成や方法を区別するために使用しており、順序や優劣を限定するものではない。
【0087】
各実施形態の電子制御装置は、車両に搭載される車載装置を構成する電子制御装置であることを前提としているが、本発明の電子制御装置は、特許請求の範囲で特に限定する場合を除き、任意の電子制御システムに適用される。
【0088】
また、本発明の装置の形態の例として、以下のものが挙げられる。
部品の形態として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えばビデオカメラ、スチルカメラ、カーナビゲーションシステムが挙げられる。
【0089】
また各装置に、アンテナや通信用インターフェースなど、必要な機能を追加してもよい。
【0090】
加えて、本発明は、各実施形態で説明した構成及び機能を有する専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記録媒体に記録した本発明を実現するためのプログラム、及びこれを実行可能な専用又は汎用CPU及びメモリ等を有する汎用のハードウェアとの組み合わせとしても実現できる。
【0091】
専用や汎用のハードウェアの非遷移的実体的記録媒体(例えば、外部記憶装置(ハードディスク、USBメモリ、CD/BD等)、又は内部記憶装置(RAM、ROM等))に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して、専用又は汎用のハードウェアに提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
【産業上の利用可能性】
【0092】
本発明の電子制御装置は、主として自動車に搭載される車載用電子制御装置として説明したが、自動二輪車、船舶、鉄道、航空機等、移動する移動体全般に適用することが可能である。また、移動体に限らず、マイクロコンピュータを包含する製品全般に適用可能である。
【符号の説明】
【0093】
1 電子制御システム、10,20 電子制御装置、130 第1の仮想マシン、131 ファイル取得部、133,232 更新部、135 送信部、136 受信部、137 起動決定部、139 配信部、140 休止制御部、150,160,230 第2の仮想マシン
図1
図2
図3
図4
図5
図6