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

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

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

<>
  • 特許-車両 図1
  • 特許-車両 図2
  • 特許-車両 図3
  • 特許-車両 図4
  • 特許-車両 図5
  • 特許-車両 図6
  • 特許-車両 図7
  • 特許-車両 図8
  • 特許-車両 図9
  • 特許-車両 図10
  • 特許-車両 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-23
(45)【発行日】2025-01-07
(54)【発明の名称】車両
(51)【国際特許分類】
   B60R 16/02 20060101AFI20241224BHJP
   G06F 8/65 20180101ALI20241224BHJP
【FI】
B60R16/02 660U
G06F8/65
【請求項の数】 5
(21)【出願番号】P 2023034036
(22)【出願日】2023-03-06
(62)【分割の表示】P 2021116214の分割
【原出願日】2017-11-06
(65)【公開番号】P2023075222
(43)【公開日】2023-05-30
【審査請求日】2023-03-06
【前置審査】
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】石川 智康
(72)【発明者】
【氏名】中村 翔
【審査官】菅 和幸
(56)【参考文献】
【文献】特開2012-091755(JP,A)
【文献】特開2004-086769(JP,A)
【文献】特開2011-096087(JP,A)
【文献】特開2016-218932(JP,A)
【文献】特開2017-157004(JP,A)
【文献】特開2017-059210(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60R 16/02
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
複数の電子制御装置と、
前記複数の電子制御装置にプログラムの更新を要求する要求部と、
前記複数の電子制御装置から通知される前記プログラムの更新結果を記憶する更新結果記憶部と
前記更新結果記憶部に記憶された前記更新結果が、前記複数の電子制御装置における前記プログラムの更新が完了したことを示す場合更新後のプログラムによる所定の制御の開始を要求する第1の開始要求を、前記複数の電子制御装置に通知し、
前記更新結果が前記複数の電子制御装置における前記プログラムの更新の少なくとも一部が失敗したことを示す場合、更新前のプログラムへの切替要求を前記複数の電子制御装置に通知して、前記複数の電子制御装置から前記切替要求に応じた切り替えが完了したことを示す完了通知を受信すると、前記更新前のプログラムによる所定の制御の開始を要求する第2の開始要求を前記複数の電子制御装置に通知する更新管理装置と、
を備える車両であって、
前記複数の電子制御装置の各々が、
前記更新管理装置からの要求に応じて、前記更新後のプログラムを記憶する記憶部と、
前記更新後のプログラムを用いて起動する起動部と、
前記更新後のプログラムの少なくとも一部の記憶に失敗した場合に、前記更新後のプログラムの記憶の失敗を示す通知を行う通知部と、
記更新管理装置から通知される前記第1の開始要求に応じて、前記更新後のプログラムによる前記所定の制御を開始させ、かつ
前記複数の電子制御装置のうちの何れかが前記通知を行った場合、自装置において前記更新後のプログラムの記憶に成功している場合であっても、前記第2の開始要求に基づいて前記更新前のプログラムを実行する実行部と、
を備える車両。
【請求項2】
前記実行部は、前記更新管理装置から通知される前記開始要求を受付するまで、前記更新後のプログラムによる前記所定の制御を禁止する、請求項に記載の車両。
【請求項3】
前記複数の電子制御装置は、
前記車両に搭載され、前記車両のイグニッション電源が供給される第1の電子制御装置と、
前記車両に搭載され、前記車両の常時供給電源が供給される第2の電子制御装置と、
を含む、請求項1又は2に記載の車両。
【請求項4】
前記第2の電子制御装置は、前記記憶部に前記更新後のプログラムを記憶した後の前記車両のイグニッションオンに応じて、前記更新後のプログラムを用いて前記第2の電子制御装置を再起動させる起動制御部を有する、請求項に記載の車両。
【請求項5】
前記第1の電子制御装置、及び前記第2の電子制御装置は、前記記憶部に前記更新後のプログラムを記憶した後に、前記更新管理装置から通知される切替指示に応じて、前記更新後のプログラムを用いて、自装置を再起動させる起動制御部を有する、請求項に記載の車両。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に関する。
【背景技術】
【0002】
複数のコンピュータを含む計算機システムにおいて、複数のコンピュータ間におけるファームウェアのバージョンの不一致を防止する技術が知られている。
【0003】
例えば、特許文献1には、計算機システムにおいて、2つのコンピュータに稼動系及び待機系の2つの記憶媒体を持たせ、システムの電源がオフされるときに、一方のコンピュータの待機系に記憶されたファームウェアを他方のコンピュータの待機系にロードする。また、計算機システムの電源がオンされるときに、2つのコンピュータの稼動系と待機系とを切替え、2つのコンピュータを待機系に記憶したファームウェアで起動させる。これにより、計算機システムの電源がオンされるまで、2つのコンピュータの稼働系と待機系との切替えが行われないので、2つのコンピュータにおけるファームウェアのバージョンの不一致を防止することができること等が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2011-86150号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、自動車等の車両には、所定の制御を行う複数の電子制御装置が搭載されている。これらの電子制御装置は、例えば、イグニッション電源、常時供給電源、アクセサリ電源等、異なる電源系統に接続され、起動又は再起動されるタイミングが電子制御装置によって異なる。
【0006】
特許文献1に開示された技術では、例えば、車両のように、起動又は再起動されるタイミングが異なる複数の電子制御装置を含むシステムにおいて、複数の電子制御装置が実行するプログラムを更新する際に、バージョンの不整合を防止することは困難である。
【0007】
本発明の実施の形態は、上記の問題点に鑑みてなされたものであって、起動又は再起動されるタイミングが異なる複数の電子制御装置が実行するプログラムを更新する車両において、プログラムのバージョンの不整合を防止する。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明の一実施形態に係る車両は、複数の電子制御装置と、前記複数の電子制御装置にプログラムの更新を要求する要求部と、前記複数の電子制御装置にプログラムの更新を要求し、前記複数の電子制御装置から通知される前記プログラムの更新結果を記憶する更新結果記憶部と、前記更新記憶部に記憶された前記更新結果が、前記複数の電子制御装置における前記プログラムの更新が完了したことを示す場合、更新後のプログラムによる所定の制御の開始を要求する第1の開始要求を、前記複数の電子制御装置に通知し、前記更新結果が前記複数の電子制御装置における前記プログラムの更新の少なくとも一部が失敗したことを示す場合、更新前のプログラムへの切替要求を前記複数の電子制御装置に通知して、前記複数の電子制御装置から前記切替要求に応じた切り替えが完了したことを示す完了通知を受信すると、前記更新前のプログラムによる所定の制御の開始を要求する第2の開始要求を前記複数の電子制御装置に通知する更新管理装置と、を備える車両であって、前記複数の電子制御装置の各々が、前記更新管理装置からの要求に応じて、前記更新後のプログラムを記憶する記憶部と、前記更新後のプログラムを用いて起動する起動部と、前記更新後のプログラムの少なくとも一部の記憶に失敗した場合に、前記更新後のプログラムの記憶の失敗を示す通知を行う通知部と、前記更新管理装置から通知される前記第1の開始要求に応じて、前記更新後のプログラムによる前記所定の制御を開始させ、かつ、前記複数の電子制御装置のうちの何れかが前記通知を行った場合、自装置において前記更新後のプログラムの記憶に成功している場合であっても、前記第2の開始要求に基づいて前記更新前のプログラムを実行する実行部と、を備える。

【発明の効果】
【0009】
本発明の実施の形態によれば、起動又は再起動されるタイミングが異なる複数の電子制御装置が実行するプログラムを更新する車両において、プログラムのバージョンの不整合を防止することができる。
【図面の簡単な説明】
【0010】
図1】一実施形態に係る更新システムのシステム構成の例を示す図である。
図2】一実施形態に係る更新管理装置、及びECUのハードウェア構成の例を示す図である。
図3】第1の実施形態に係る更新管理装置、及びECUの機能構成の例を示す図である。
図4】第1の実施形態に係る更新結果記憶部に記憶される更新結果の例を示す図である。
図5】第1の実施形態に係るブート情報について説明するための図である。
図6】第1の実施形態に係る更新管理装置の処理の例を示すフローチャートである。
図7】第1の実施形態に係るECUの処理の例を示すフローチャートである。
図8】第1の実施形態に係る更新システムの処理の例を示すシーケンス図(1)である。
図9】第1の実施形態に係る更新システムの処理の例を示すシーケンス図(2)である。
図10】第2の実施形態に係るECUの構成のイメージを示す図である。
図11】第2の実施形態に係る更新システムの処理の例を示すシーケンス図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して発明を実施するための形態について説明する。
【0012】
<システム構成>
図1は、一実施形態に係る更新システムのシステム構成の例を示す図である。更新システム1は、所定の制御を行う複数のECU(電子制御装置:Electronic Control Unit)111a、111b、111c、112a、112bと、複数のECUにおけるプログラムの更新を管理する更新管理装置100とを含む。
【0013】
図1の例では、複数のECU、及び更新管理装置100は、自動車等の車両10に搭載され、車載ネットワーク140を介して、互いに通信可能に接続されている。また、複数のECUには、車両10のイグニッション電源(IG電源)に接続されるECU111a、111b、111c、・・・と、常時供給電源(+B電源)に接続されるECU112a、112b、・・・とが含まれる。
【0014】
なお、以下の説明の中で、ECU111a、111b、111c、・・・のうち、イグニッション電源に接続される任意のECUを示す場合、「ECU111」を用いる。また、ECU112a、112b、・・・のうち、常時供給電源に接続される任意のECUを示す場合、「ECU112」を用いる。
【0015】
ECU111(第1の電子制御装置)は、例えば、車両10のエンジンやブレーキ等を制御する車両制御系のECUであり、車両10のイグニッションオン(以下、IG-ONと呼ぶ)に応じて起動して、エンジン制御、ブレーキ制御等の所定の制御を行う。また、ECU111は、例えば、車両10のイグニッションオフ(以下、IG-OFFと呼ぶ)により停止する。
【0016】
ECU(第2の電子制御装置)112は、例えば、キーレスエントリや、ドア等を制御するボディー系のECUであり、車両10の常時供給電源を用いて、例えば、車両10がイグニッションオフの状態であっても、動作を継続する。
【0017】
このように、車両10(及び更新システム1)には、起動や、再起動されるタイミングが異なる複数のECU111、及びECU112が含まれる。さらに、車両10には、アクセサリ電源を用いて動作するマルチメディア系のECU等も含まれるが、ここでは、説明を容易にするため、車両10には、ECU111とECU112が搭載されているものとして、以下の説明を行う。
【0018】
更新管理装置100は、例えば、複数の通信プロトコルに対応するマルチプロトコルゲートウェイ等の電子制御装置である。更新管理装置100は、複数のECU111、112と所定の通信プロトコルを用いて通信可能であるとともに、通信装置150を用いて、管理サーバ20と通信可能である。ここで、通信装置150は、車両10、又は通信装置150等に搭載されたアンテナ151を用いて無線通信40を行い、通信ネットワーク30に接続するための装置であり、例えば、DCM(Data Communication Module)等によって実現される。
【0019】
上記の構成において、更新管理装置100は、通信装置150を介して、管理サーバ20から、車両10に搭載された複数のECUにおけるプログラム(ファームウェア、ソフトウェア等)の更新情報を取得する。この更新情報には、例えば、更新対象となるECUを識別する識別情報や、更新後のプログラム等が含まれる。
【0020】
更新管理装置100は、管理サーバ20から取得した更新情報に従って、プログラムの更新対象となるECU111、112に、プログラムの更新を要求する更新要求を通知する。この更新要求には、例えば、更新後のプログラム(又はプログラムの取得先を示す情報等)が含まれる。
【0021】
ECU111、112は、更新前のプログラムを記憶する第1の記憶領域と、更新後のプログラムを記憶する第2の記憶領域とを有しており、更新管理装置100からの更新要求に応じて、更新後のプログラムを第2の記憶領域に記憶する。また、ECU111、及びECU112は、起動、又は再起動の際に、更新後のプログラムを用いて処理を開始する。
【0022】
ただし、前述したように、ECU111とECU112とは、電源系統が異なり、起動、再起動のタイミングが異なるので、ECU111とECU112とが、それぞれのタイミングで所定の制御を開始してしまうと、バージョンの不整合が発生する。この場合、車両10全体として、正常な制御が行われずに、最悪の場合、車両10の挙動等に悪影響を及ぼす恐れもある。
【0023】
そこで、更新管理装置100は、更新対象となる複数のECUから通知されるプログラムの更新結果を記憶部に記憶する。また、更新管理装置100は、例えば、IG-ONの際に、記憶部に記憶した更新結果を確認し、複数のECUにおけるプログラムの更新が完了している場合、複数のECUに、更新後のプログラムによる制御の開始を要求する。
【0024】
好ましくは、更新管理装置100は、例えば、IG-ONの際に、記憶部に記憶した更新結果を確認し、複数のECUにおけるプログラムの更新が完了していない場合、複数のECUに、更新前のプログラムによる制御への切替えを要求する。
【0025】
一方、ECU111、112は、第2の記憶領域に更新後のプログラムを記憶した後に、起動、又は再起動を行うと、更新後のプログラムによる所定の制御を禁止(又は保留)する。さらに、ECU111、112は、更新管理装置100から、更新後のプログラムによる制御の開始を要求された場合、更新後のプログラムによる制御を開始する。
【0026】
好ましくは、ECU111、112は、更新後のプログラムを用いて起動、又は再起動した後に、更新管理装置100から、更新前のプログラムによる制御への切替えを要求された場合、更新前のプログラムを用いて再起動する。
【0027】
このように、更新システム1は、更新対象となる全てのECU111、112におけるプログラムの更新が完了した場合、ECU111、112は、更新後のプログラムを用いて、所定の制御を行う。
【0028】
これにより、本実施形態に係る更新システム1によれば、起動又は再起動されるタイミングが異なる複数のECU111、及びECU112が実行するプログラムを更新する更新システム1において、プログラムのバージョンの不整合を防止することができる。
【0029】
さらに、更新システム1では、更新対象となる全てのECU111、112におけるプログラムの更新が完了していない場合、ECU111、112は、更新前のプログラムを用いて再起動し、所定の制御を行う。
【0030】
これにより、本実施形態による更新システム1によれば、更新対象となる全てのECU111、112におけるプログラムの更新が完了していない場合でも、ECU111、112は、所定の制御を行うことができる。
【0031】
なお、図1に示す更新システム1のシステム構成は一例である。例えば、ECU111、及びECU112は、車両10に搭載されるECUに限られず、起動又は再起動されるタイミングが異なる複数の電子制御装置を含む他の情報処理システムであっても良い。
【0032】
また、更新管理装置100の機能は、管理サーバ20が有していても良い。例えば、図1において、車両10は、更新管理装置100に代えて、管理サーバ20と、複数のECUとの間の通信を中継するマルチプロトコルゲートウェイを有し、管理サーバ20が、更新管理装置の機能を実行するものであっても良い。
【0033】
<ハードウェア構成>
(更新管理装置、及びECUのハードウェア構成)
更新管理装置100、及びECU111、112は、一般的なコンピュータの構成を有しており、例えば、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、ストレージデバイス204、通信I/F(Interface)205、外部接続I/F206、及びシステムバス207等を含む。
【0034】
CPU201は、ROM203やストレージデバイス204等に格納されたプログラムやデータ等をRAM202上に読み出し、処理を実行することで、更新管理装置100(又はECU111、112)の各機能を実現する演算装置である。RAM202は、CPU201のワークエリア等として用いられる揮発性のメモリである。ROM203は、電源を切ってもプログラムやデータを保持する不揮発性のメモリである。ストレージデバイス204は、例えば、フラッシュROM等の大容量の記憶装置であり、OS(Operating System)、プログラム、及び各種データ等を記憶する。
【0035】
通信I/F205は、更新管理装置100(又はECU111、112)を、CAN(Controller Area Network)等の車載ネットワークに接続し、他のECU等と通信するための通信インタフェースである。
【0036】
外部接続I/F206は、更新管理装置100(又はECU111、112)に外部装置を接続するためのインタフェースである。外部機器には、例えば、記憶媒体、通信装置150、又は各ECU111、112が制御するアクチュエータ等が含まれ得る。システムバス207は、上記の各構成要素に共通に接続され、例えば、アドレス信号、データ信号、及び各種制御信号等を伝達する。
【0037】
[第1の実施形態]
<機能構成>
図3は、第1の実施形態に係る更新管理装置、及びECUの機能構成の例を示す図である。なお、図3において、ECU112は、ECU111と同様の機能構成を有しているものとする。
【0038】
(更新管理装置の機能構成)
更新管理装置100は、例えば、更新情報取得部311、通信部312、更新要求部313、更新結果記憶部314、及び切替制御部315等を有する。
【0039】
更新管理装置100は、例えば、図2に示すストレージデバイス204、ROM203等に記憶した所定のプログラムを、CPU201で実行することにより、上記の各機能構成を実現している。また、上記の各機能構成のうち、少なくとも一部はハードウェアによって実現されるものであっても良い。
【0040】
更新情報取得部311は、通信装置150を介して、管理サーバ20と通信を行い、更新対象となるECU111、112の更新情報を取得する。例えば、更新情報取得部311は、管理サーバ20に対して、車両10に搭載される複数のECU111、112における更新情報の有無を問合せし、更新情報があれば取得する。或いは、更新情報取得部311は、例えば、管理サーバ20から自動的に通知される更新情報を取得するものであっても良い。なお、更新情報取得部311が、管理サーバ20から取得する更新情報には、例えば、更新対象となるECU111、112を識別する識別情報や、更新後のプログラム等が含まれる。
【0041】
通信部312は、例えば、図2の通信I/F205を用いて、更新管理装置100を車載ネットワーク140に接続し、ECU111、112等と通信を行う。
【0042】
更新要求部(要求部)313は、更新情報取得部311が更新情報を取得した場合、通信部312を介して、更新対象となるECU111、112に、プログラムの更新を要求する更新要求を通知する。この更新要求には、例えば、更新後のプログラム、及び更新後のプログラムに関する情報(例えば、バージョン情報等)が含まれる。
【0043】
更新結果記憶部(記憶部)314は、例えば、CPU201で実行されるプログラム、及びストレージデバイス204等によって実現され、更新対象となるECU111、112から通知される更新結果を記憶する。
【0044】
図4は、第1の実施形態に係る更新結果記憶部に記憶される更新結果の例を示す図である。例えば、図4(a)に示すように、更新結果記憶部314に記憶される更新結果401には、「ECU」、「更新有無」、「更新結果」等の情報が含まれる。
【0045】
「ECU」は、ECU111、112を識別するためのECU名、識別情報等の情報である。
【0046】
「更新有無」は、更新情報取得部311が取得した更新情報の有無を示す情報であり、更新情報がある場合「あり」、更新情報がない場合「なし」が設定される。例えば、更新情報取得部311は、更新情報の有無を確認し、ECU111a~111c、及びECU112a、112bに対応する更新情報がない場合、図4(a)に示すように、各ECUに対応する「更新有無」に「なし」を設定する。また、更新情報取得部311は、更新情報の有無を確認し、ECU111a~111c、及びECU112a、112bに対応する更新情報がある場合、図4(b)の更新情報402に示すように、各ECUに対応する「更新有無」に「あり」を設定する。
【0047】
「更新結果」は、更新対象となるECU111、112における更新結果を示す情報であり、更新が完了した場合「完了」が、更新が完了していない場合「更新中」が設定される。例えば、更新要求部313は、更新対象となるECU111、112に更新要求を通知するとき、更新対象となるECU111、112に対応する「更新結果」に「更新中」を設定する。また、更新結果記憶部314は、更新対象となるECU111、112から、更新が完了したことを示す更新結果を受付すると、更新が完了したECU111、112に対応する「更新結果」に「完了」を設定する。
【0048】
図4(c)に示す更新結果403の例では、ECU111a、ECU111b、及びECU112bの更新が完了したことが示されている。また、更新対象となるECU111a~111c、及びECU112a、112bの更新が完了すると、例えば、図4(d)の更新結果404のように、各ECUの「更新結果」が「完了」となる。これにより、更新管理装置100は、更新対象となるECU111a~111c、及びECU112a、112bにおけるプログラムの更新が完了したと判断することができる。
【0049】
ここで、図3に戻り、更新管理装置100の機能構成の説明を続ける。
【0050】
切替制御部315は、例えば、IG-ON時(所定のタイミングの一例)に、更新結果記憶部314に記憶された更新結果を確認し、更新対象となる複数のECU111、112における「更新結果」が「完了」になっているか否かを判断する。
【0051】
更新対象となる複数のECU111、112の「更新結果」が全て「完了」である場合、切替制御部315は、更新対象となるECU111、112に、更新後のプログラムによる所定の制御の開始を要求する開始要求を通知する。
【0052】
一方、更新対象となるECU111、112の「更新結果」に「更新中」が含まれる場合、切替制御部315は、更新対象となるECU111、112に、更新前のプログラムへの切替を要求する切替要求を通知する。また、切替制御部315は、更新対象となるECU111、112における更新前のプログラムへの切替えが完了すると、更新対象となるECU111、112に、更新前のプログラムによる所定の制御の開始を要求する制御開始要求を通知する。
【0053】
(ECUの機能構成)
ECU111は、例えば、図2に示すCPU201で実行されるプログラムにより、通信部321、更新部322、切替部323、起動制御部324、機能制御部325、及び記憶部326等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。また、ここでは、ECU111の機能構成について説明するが、ECU112は、前述したようにECU111と同様の機能構成を有している。
【0054】
通信部321は、例えば、図2の通信I/F205を用いて、ECU111を車載ネットワーク140に接続して、更新管理装置100等と通信を行う。
【0055】
更新部322は、更新管理装置100から通知される更新要求を受付すると、更新要求に含まれる更新後のプログラムを、記憶部326に記憶する。
【0056】
なお、記憶部326には、図3に示すように、更新前のプログラムを記憶する第1の記憶領域332、更新後のプログラムを記憶する第2の記憶領域333、及びブート情報531等が含まれる。
【0057】
例えば、プログラムの更新がない場合、ECU111は、第1の記憶領域332に記憶したプログラム(更新前のプログラム)を用いて起動し、図3に示すようなECU111の機能構成を実現する。また、プログラムの更新がある場合、ECU111の更新部322は、更新後のプログラムを第2の記憶領域333に記憶し、例えば、次回の起動時に、更新後のプログラムを用いて起動するようにブート情報331を更新する。
【0058】
さらに、更新部322は、例えば、IG-ON時(所定のタイミングの一例)に、更新後のプログラムで起動すると、プログラムの更新が完了したことを示す完了通知を、更新管理装置に通知する。
【0059】
図5は、第1の実施形態に係るブート情報について説明するための図である。図5(a)は、ECU111が、更新管理装置100から更新要求を受け付ける前のブート情報331aの例を示している。例えば、図5(a)に示すように、ブート情報には、更新前の「開始アドレス」及び「バージョン」、更新後の「開始アドレス」及び「バージョン」、「機能制限」等の情報が含まれる。
【0060】
更新前の「開始アドレス」は、更新前のプログラムを記憶する第1の記憶領域332の開始アドレスを示す情報である。更新前の「バージョン」は、更新前のプログラムの版数等を示す情報である。更新後の「開始アドレス」は、更新後のプログラムを記憶する第2の記憶領域333の開始アドレスを示す情報である。更新後の「バージョン」は、更新後のプログラムの版数等を示す情報である。「機能制限」は、ECU111による所定の制御を禁止するか、許可するかを示す情報であり、所定の制御を禁止する場合「オン」、所定の制御を許可する場合「オフ」が設定される。
【0061】
例えば、ECU111の更新部322は、更新管理装置100から更新要求を受付すると、図5(b)に示すブート情報331bのように、「機能制限」を「オン」に設定し、第2の記憶領域333への更新後のプログラムの記憶を開始する。また、更新部322は、更新後のプログラムの記憶が完了すると、図5(b)に示すブート情報331bのように、更新後の「開始アドレス」、及び「バージョン」を記憶する。
【0062】
ここで、図3に戻り、ECU111の機能構成の説明を続ける。
【0063】
起動制御部324は、ECU111の起動、又は再起動の際に、ブート情報331を参照して、第1の記憶領域332に記憶した更新前のプログラム、又は第2の記憶領域333に記憶した更新後のプログラムを用いて、ECU111(自装置)を起動させる。
【0064】
例えば、図5(a)に示すブート情報331aのように、更新後の「開始アドレス」が記憶されていない場合、起動制御部324は、更新前の「開始アドレス」を用いて、第1の記憶領域332に記憶されたプログラムを用いて、ECU111を起動させる。
【0065】
また、図5(b)に示すブート情報331bのように、更新後の「開始アドレス」が記憶されている場合、起動制御部324は、更新後の「開始アドレス」を用いて、第2の記憶領域333に記憶された更新後のプログラムを用いて、ECU111を起動させる。この場合、ECU111は、第2の記憶領域333に記憶された更新後のプログラムを実行することにより、図3に示すようなECU111の各機能構成を実現する。
【0066】
好ましくは、起動制御部324は、例えば、図2のROM203等に記憶されたIPL(Initial Program Loader)等によって実現される。
【0067】
切替部323は、ECU111が、更新後のプログラムを用いて起動した後、更新管理装置100の更新結果記憶部314に記憶された、更新対象となる複数のECU111、112の更新結果に応じて、ECU111の動作を切替える。
【0068】
例えば、ECU111が、更新後のプログラムを用いて起動したとき、図5(b)に示すブート情報331bのように、「機能制限」は「オン」に設定されている。この場合、切替部323は、ECU111による所定の制御(例えば、エンジン制御、ブレーキ制御等)を禁止する。
【0069】
また、例えば、図4(d)に示す更新結果404のように、更新結果記憶部314に記憶された更新結果が、更新対象となる複数のECUの更新が完了したことを示す場合、更新管理装置100は、更新対象となる複数のECUに、前述した開始要求を送信する。この場合、ECU111の切替部323は、この開始要求に応じて、例えば、図5(c)に示すブート情報331cのように、「機能制限」を「オフ」に設定し、ECU111による所定の制御を許可する。
【0070】
一方、例えば、図4(c)に示す更新結果403のように、更新結果記憶部314に記憶された更新結果が、更新が完了していないECUがあることを示す場合、更新管理装置100は、更新対象となる複数のECUに、前述した切替要求を送信する。この場合、ECU111の切替部323は、例えば、図5(b)に示すブート情報331bのように、「機能制限」を「オン」に維持したまま、更新前の「開始アドレス」に従って、更新前のプログラムを用いて、ECU111を再起動する。さらに、切替部323は、更新前のプログラムで再起動したことを更新管理装置100に通知し、更新管理装置100から送信される制御開始要求を受付すると、更新前のプログラムによる所定の制御を許可する。
【0071】
機能制御部325は、ECU111毎に異なる所定の制御(例えば、エンジン制御、ブレーキ制御等)を実行する。また、機能制御部325は、所定の制御に必要な設定値、学習値等のデータを、記憶部326の制御情報334に記憶して管理する。
【0072】
<処理の流れ>
続いて、第1の実施形態に係る更新管理方法の処理の流れについて説明する。
【0073】
(更新管理装置の処理)
図6は、第1の実施形態に係る更新管理装置の処理の例を示すフローチャートである。
【0074】
図6(a)に示す処理は、更新管理装置100による更新処理の例を示している。この処理は、例えば、ユーザによる操作、所定の時間間隔、又は管理サーバ20からの更新通知等に応じて実行される。
【0075】
ステップS611において、更新情報取得部311は、通信装置150を介して、管理サーバ20から、車両10に搭載される複数のECU111、112におけるプログラムの更新情報を取得する。
【0076】
ステップS612において、更新管理装置100は、更新情報取得部311が取得した更新情報の有無(更新の有無)に応じて、処理を分岐させる。
【0077】
例えば、更新情報取得部311が更新情報を取得できなかった場合、すなわち、プログラムの更新がない場合、更新管理装置100は、更新情報の確認処理を終了させる。一方、更新情報取得部311が更新情報を取得できた場合、すなわち、プログラムの更新がある場合、更新管理装置100は、処理をステップS613に移行させる。
【0078】
ステップS613に移行すると、更新要求部313は、更新対象となる複数のECU111、112に対して、更新後のプログラムを含む更新要求を送信(通知)する。
【0079】
ステップS614において、更新結果記憶部314は、更新対象となる複数のECU111、112から通知される更新結果を記憶する。
【0080】
なお、ステップS614に示す処理はオプションであり、必須ではない。例えば、更新対象となる全てのECU111、112が、図6(b)に示すように、IG-ONに応じて更新結果を通知するように構成されている場合、ステップS614の処理は省略することができる。
【0081】
図6(b)に示す処理は、更新管理装置100が、車両10のイグニッションオン(IG-ON)の際に実行する処理の例を示している。
【0082】
ステップS621において、例えば、ユーザの操作等により、車両10がIG-ONされると、更新管理装置100は、ステップS622以降の処理を実行する。
【0083】
ステップS622において、更新結果記憶部314は、例えば、IG-ONされてから所定の期間、更新対象となる複数のECU111、112から通知される更新結果を受付し、記憶する。
【0084】
ステップS623において、切替制御部315は、更新結果記憶部314に記憶された更新対象となる複数のECU111、1123の更新結果を確認する。
【0085】
ステップS624において、切替制御部315は、更新対象となる複数のECU111、112の更新が完了しているか否かに応じて、処理を分岐させる。例えば、図4(d)に示す更新結果404のように、更新有無が「あり」となっている全てのECUの更新結果が「完了」となっている場合、切替制御部315は、更新が完了していると判断する。一方、例えば、図4(c)に示す更新結果403のように、更新有無が「あり」となっているECUの中に、更新結果が「更新中」となっているECUが含まれる場合、切替制御部315は、更新が完了していないと判断する。
【0086】
更新対象となる複数のECU111、112の更新が完了している場合、切替制御部315は、処理をステップS625に移行させる。一方、更新が完了していない場合、切替制御部315は、処理をステップS626に移行させる。
【0087】
ステップS624からステップS625に移行すると、切替制御部315は、更新対象となる複数のECU111、112に、更新後のプログラムによる制御の開始を要求する開始要求を通知する。
【0088】
ステップS624からステップS626に移行すると、切替制御部315は、更新対象となる複数のECU111、112に、更新前のプログラムへの切替を要求する切替要求を送信する。
【0089】
ステップS627において、切替制御部315は、切替要求を送信した複数のECU111、112から送信される切替完了通知を受付し、切替が完了したと判断すると、処理をステップS628に移行させる。
【0090】
ステップS628に移行すると、切替制御部315は、更新対象となる複数のECU111、112に、更新前のプログラムによる制御の開始を要求する制御開始要求を送信する。
【0091】
(ECUの処理)
図7は、第1の実施形態に係るECUの処理の例を示すフローチャートである。この処理は、図6に示す更新管理装置100の処理に対応する、ECU111、112側の処理の例を示している。
【0092】
図7(a)は、図6(a)に示す更新管理装置100の更新処理に対応する、ECU111、112側の更新処理の例を示している。
【0093】
ステップ711において、ECU111、112は、更新管理装置100から通知される更新要求を受付すると、ステップS712以降の処理を実行する。
【0094】
ステップS712において、ECU111、112の更新部322は、ブート情報331の「機能制限」を「オン」に設定する。
【0095】
ステップS713において、ECU111、112の更新部322は、第2の記憶領域333に、更新管理装置100から受付した更新要求に含まれる更新後のプログラムを記憶する。
【0096】
ステップS714において、ECU111、112の更新部322は、更新後のプログラムの記憶が完了すると、ブート情報331の更新後の「開始アドレス」、及び「バージョン」等の情報を更新する。
【0097】
上記の処理により、例えば、図5(a)に示すように、更新後の「開始アドレス」、及び「バージョン」が記憶されていないブート情報331aには、図5(b)に示すブート情報331bのように、更新後の「開始アドレス」、及び「バージョン」が記憶される。
【0098】
一方、例えば、図5(c)に示すように、既に更新後の「開始アドレス」、及び「バージョン」が記憶されているブート情報331cは、図5(d)に示すブート情報331dのように情報が更新される。例えば、ブート情報331cに記憶されていた更新後の「開始アドレス」、及び「バージョン」は、ブート情報331dの更新前の「開始アドレス」、及び「バージョン」に記憶される。また、ブート情報331dの更新後の「開始アドレス」、及び「バージョン」には、第2の記憶領域333に記憶された更新後のプログラムの開始アドレス、及びバージョンが記憶される。
【0099】
図7(b)は、ECU111、112が、車両10のIG-ONの際に実行する処理の例を示している。
【0100】
ステップS721において、例えば、ユーザの操作等により、車両10がIG-ONされると、ECU111、112は、ステップS722以降の処理を実行する。
【0101】
ステップS722において、ECU111、112は、ブート情報331に従って起動、又は再起動する。例えば、図1に示すように、IG-ON時に電源が供給されるIG電源に接続されているECU111は、IG-ONに応じて起動する。一方、常時供給電源(+B電源)に接続されているECU112の起動制御部324は、IG-ONに応じて、ECU112を再起動させる。
【0102】
このとき、ECU111、112は、ブート情報331に記憶されている更新前の「開始アドレス」、及び更新後の「開始アドレス」に従って、起動(又は再起動)に用いるプログラムを選択する。
【0103】
例えば、図5(a)に示すブート情報331aのように、更新前の「開始アドレス」のみが記憶されている場合、ECU111、112は、更新前の「開始アドレス」に従って、起動、又は再起動に用いるプログラムを選択する。すなわち、この場合、ECU111、112は、第1の記憶領域332に記憶された更新前のプログラムを用いて起動、又は再起動する。
【0104】
また、図5(b)、(c)、(d)に示すブート情報331b、331c、331dのように、更新後の「開始アドレス」が記憶されている場合、ECU111、112は、更新後の「開始アドレス」に従って、起動、又は再起動に用いるプログラムを選択する。すなわち、この場合、ECU111、112は、第2の記憶領域333に記憶された更新後のプログラムを用いて起動、又は再起動する。
【0105】
ステップS723において、切替部323は、ブート情報331の「機能制限」が「オンであるか否かに応じて処理を分岐させる。
【0106】
ブート情報331の「機能制限」が「オン」でない場合、すなわち「機能制限」が「オフ」である場合、ECU111、112は、IG-ON時の処理を終了し、機能制御部325による所定の制御を行う。一方、ブート情報331の「機能制限」が「オン」である場合、ECU111、112は、ステップS724以降の処理を実行する。なお、ブート情報331の「機能制限」が「オン」であるということは、図7(a)に示す更新処理が実行されたことを示している。
【0107】
ステップS724において、ECU111、112の切替部323は、機能制御部325による所定の制御を禁止する。なお、ECU111、112のプログラムが、更新管理装置100からの開始要求、又は制御開始要求を受付するまで、所定の制御を開始しないように予め作成されている場合、ステップS724の処理は省略することができる。
【0108】
ステップS725において、ECU111、112の更新部322は、図7(a)に示した更新処理の更新結果を、更新管理装置100に通知する。
【0109】
例えば、図7(a)に示す更新処理が正常に完了した場合、ブート情報331には、図5(b)に示すブート情報331bのように、「機能制限」に「オン」が設定され、更新後の「開始アドレス」、及び「バージョン」が正しく記憶されている。この場合、更新部322は、更新処理が正常に完了したことを示す更新結果(OK)を、更新管理装置100に通知する。
【0110】
ステップS726において、ECU111、112の切替部323は、図7(a)に示した更新処理によりプログラムの更新に成功したか否かに応じて、処理を分岐させる。例えば、プログラムの更新に成功していない場合、切替部323は、処理をステップS732に移行させる。一方、プログラムの更新に成功した場合、切替部323は、処理をステップS727に移行させる。
【0111】
ステップS727に移行すると、ECU111、112の切替部323は、更新管理装置100から、更新後のプログラムによる所定の制御の開始を要求する開始要求を受付したか否かを判断する。開始要求を受付した場合、切替部323は、処理をステップS728に移行させる。一方、開始要求を受付していない場合、切替部323は、処理をステップS730に移行させる。
【0112】
ステップS727からステップS728に移行すると、ECU111、112の切替部323は、ブート情報331の「機能制限」を「オフ」に設定する。
【0113】
ステップS729において、ECU111、112の切替部323は、更新後のプログラムによる制御を開始させる。これにより、更新後のプログラムで起動、又は再起動したECU111、112は、機能制御部325による所定の制御を開始する。
【0114】
ステップS727からステップS730に移行すると、ECU111、112の切替部323は、更新管理装置100から、更新前のプログラムへの切替えを要求する切替要求を受付したか否かを判断する。切替要求を受付していない場合、切替部323は、処理をステップS727に戻して、同様の処理を再実行する。一方、切替要求を受付した場合、切替部323は、処理をステップS731に移行させる。
【0115】
ステップS731に移行すると、ECU111、112の切替部323は、起動制御部324を用いて、ECU111、112を、第1の記憶領域332に記憶された更新前のプログラムで再起動させる。また、切替部323は、更新前のプログラムへの切替えが完了したことを示す切替完了通知を、更新管理装置100に通知する。
【0116】
ステップS732に移行すると、ECU111、112の切替部323は、更新管理装置100から通知される制御開始要求を待ち、制御開始要求を受付するとステップS733において、更新前のプログラムによる制御を開始させる。これにより、更新前のプログラムで起動、又は再起動したECU111、112は、機能制御部325による所定の制御を開始する。
【0117】
続いて、更新システム1における全体の処理の流れについて、図8、9を用いて説明する。
【0118】
(更新システムの処理1)
図8は第1の実施形態に係る更新システムの処理の例を示すシーケンス図(1)である。この処理は、ECU111、112の更新情報があり、かつECU111、112のプログラムの更新が正常に完了する場合の処理の例を示している。なお、図8に示す処理の開始時点において、ECU111、及びECU112は、更新前のプログラムにより所定の制御820を実行しているものとする。また、図8に示す各処理は、図6、7に示す各処理に対応しているので、ここでは詳細な説明は省略する。
【0119】
ステップS801、S802において、更新管理装置100の更新情報取得部311は、管理サーバ20から更新情報を取得する。この処理は、図6(a)のステップ611の処理に対応している。
【0120】
なお、ここでは、更新情報取得部311が、ECU111、及びECU112の更新情報を取得したものとして、以下の説明を行う。
【0121】
ステップS803a、S803bにおいて、更新管理装置100の更新要求部313は、更新対象となるECU111、ECU112に、プログラムの更新を要求する更新要求を通知する。この処理は、図6(a)のステップS613の処理に対応している。
【0122】
ステップS804a、S804bにおいて、ECU111、及びECU112の更新部322は、更新管理装置100から通知される更新要求に含まれる更新後のプログラムを、第2の記憶領域に記憶する。また、ステップS805a、S805bにおいて、ECU111、及びECU112の更新部322は、ブート情報を更新する。この処理は、図7(a)のステップS712~S714の処理に対応している。
【0123】
ステップS806において、例えば、ユーザのオフ操作により、車両10がIG-OFFの状態830に移行する。
【0124】
このとき、イグニッション電源(IG電源)に接続されているECU111は、更新前のプログラムによる所定の制御820を停止し、次回の起動時には、更新後のプログラムで起動する。つまり、イグニッション電源に接続されているECU111において、更新前のプログラムから、更新後のプログラムへの切替えが行われる。
【0125】
一方、常時供給電源(+B電源)に接続されているECU112は、更新前のプログラムによる所定の制御820を継続する。
【0126】
ステップS807において、例えば、ユーザのオン操作により、車両10がIG-ONの状態840に移行する。
【0127】
ステップS808において、更新管理装置100は、例えば、IG-ONに応じて起動し、図6(b)に示す処理を開始する。
【0128】
ステップS809において、イグニッション電源に接続されているECU111は、IG-ONに応じて、図7(b)に示す処理を開始し、更新後のプログラムで起動する。
【0129】
ステップS810において、常時供給電源に接続されているECU112は、IG-ONに応じて、図7(b)に示した処理を開始し、更新後のプログラムで再起動する。これにより、常時供給電源に接続されているECU112は、更新前のプログラムによる所定の制御820を停止し、更新前のプログラムから更新後のプログラムへプログラムの切替えが行われる。
【0130】
なお、この時点では、ECU111、及びECU112は、更新後のプログラムによる所定の制御850を開始しない。例えば、ECU111、及びECU112は、図7(b)のステップS724の処理により、所定の制御が禁止されている。或いは、ECU111、及びECU112の更新後のプログラムは、更新管理装置100からの開始要求に応じて、所定の制御を開始するように予め構成されているものであっても良い。
【0131】
ステップS811a、811bにおいて、ECU111、及びECU112の更新部322は、更新後のプログラムへの更新が完了したことを示す更新結果(完了)を、更新管理装置100に通知する。この処理は、図7(b)のステップS725の処理に対応している。
【0132】
ステップS812において、更新管理装置100の切替制御部315は、更新対象となるECU111、及びECU112において、更新後のプログラムへの更新が完了したことを確認する。この処理は、図6(b)のステップS623、S624の処理に対応している。
【0133】
ステップS813a、S813bにおいて、更新管理装置100の切替制御部315は、更新対象となるECU111、及びECU112に対して、更新後のプログラムによる所定の制御の開始を要求する開始要求を通知する。この処理は、図6(b)のステップS625の処理に対応している。
【0134】
ステップS814a、S814bにおいて、ECU111、及びECU112の切替部323は、機能制御部325による所定の制御を開始させる。これにより、ECU111、及びECU112は、更新後のプログラムによる所定の制御850を実行する。この処理は、図7(b)のステップS727~S729の処理に対応している。
【0135】
上記の処理により、更新システム1では、図8に示すように、ECU111による、更新前のプログラムによる所定の制御820と、ECU112による、更新後のプログラムによる所定の制御850とが同時に実行されることがないように管理される。また、更新システム1では、ECU111による、更新後のプログラムによる所定の制御850と、ECU112による、更新前のプログラムによる所定の制御820とが同時に実行されることがないように管理される。
【0136】
(更新システムの処理2)
図9は第1の実施形態に係る更新システムの処理の例を示すシーケンス図(2)である。この処理は、ECU111、112の更新情報があり、かつECU111におけるプログラムの更新が失敗した場合の処理の例を示している。
【0137】
なお、図9の処理の開始時点において、更新管理装置100、ECU111、及びECU112は、図8のステップS801~S805a、S805bの処理を実行し、ステップS806のオフ操作により、ECU111のプログラムの更新に失敗したものとする。例えば、ECU111が、図8のステップS804aにおいて、第2の記憶領域333に更新後のプログラムを記憶しているとき、又は、ステップS805aにおいてブート情報を更新する前に、車両10がIG-OFFの状態に移行したものとする。
【0138】
また、図9のステップS807、S808、S810、S811bに示す処理は、図8に示す処理と同様なので、ここでは、図8に示す処理との相違点を中心に説明を行う。
【0139】
ステップS901において、イグニッション電源に接続されているECU111は、IG-ONに応じて、図7(b)に示した処理を開始するが、ここでは、プログラムの更新が完了していないので、更新前のプログラムで起動する。
【0140】
ステップS902において、プログラムの更新に失敗したECU111の更新部322は、プログラムの更新に失敗したことを示す更新結果(未完了又は失敗)を、更新管理装置100に通知する。この処理は、図7(b)のステップS725の処理に対応している。
【0141】
ステップS903において、更新管理装置100の切替制御部315は、更新対象となるECU111、及びECU112のうち、ECU111におけるプログラムの更新が完了していないことを確認する。この処理は、図6(b)のステップS623、S624の処理に対応している。
【0142】
ステップS904a、S904bにおいて、更新管理装置100の切替制御部315は、更新対象となるECU111、及びECU112に対して、更新前のプログラムへの切替えを要求する切替要求を通知する。この処理は、図6(b)のステップS626の処理に対応している。
【0143】
ステップS905において、更新後のプログラムを実行中のECU112は、更新前のプログラムで再起動し、ステップS907において、プログラムの切替えが完了したことを示す切替完了通知を、更新管理装置100に通知する。この処理は、図7(b)のステップS731の処理に対応している。
【0144】
一方、更新前のプログラムを実行中のECU111は、更新管理装置100から送信される切替要求を、例えば、無視する。また、別の一例として、ECU111は、更新前のプログラムを実行中であることを示す切替完了通知を、更新管理装置100に通知するものであっても良い。
【0145】
ステップS907において、更新管理装置100の切替制御部315は、更新後のプログラムを実行していたECU112における、更新前のプログラムへの切替えが完了したことを確認する。この処理は、例えば、図6(b)のステップS627の処理に対応している。
【0146】
ステップS908a、S908bにおいて、更新管理装置100の切替制御部315は、ECU111、及びECU112に対して、更新前のプログラムによる所定の制御の開始を要求する制御開始要求を通知する。この処理は、図6(b)ステップS628の処理に対応している。
【0147】
ステップS909a、S909bにおいて、ECU111、及びECU112の切替部323は、更新前のプログラムによる所定の制御820を開始させる。この処理は、図7(b)のステップS732、S733の処理に対応している。
【0148】
上記の処理により、更新システム1では、更新対象となるECUの中に、更新が完了していないECUがある場合には、更新前のプログラムに切り戻しを行い、車両10の制御を実行する。
【0149】
以上、本実施形態によれば、起動又は再起動されるタイミングが異なる複数のECU111、112が実行するプログラムを更新する更新システム1において、プログラムのバージョンの不整合を防止することができる。
【0150】
[第2の実施形態]
第1の実施形態では、車両10のIG-OFF、及びIG-ONのタイミングで、ECU111、112の起動、又は再起動を行い、更新前のプログラムから更新後のプログラムへの切替えを行う場合の例について説明を行った。ただし、これは好適な一例であり、ECU111、112のプログラムの更新を行うタイミングは、IG-ON以外のタイミングであっても良い。
【0151】
第2の実施形態では、IG-ON後の所定のタイミングで(例えば、更新対象となる全てのECUの更新が完了したとき等に)、プログラムの更新を行う場合の例について説明する。
【0152】
<ECUの構成>
図10は、第2の実施形態に係るECUの構成のイメージを示す図である。第2の実施形態に係るECU111、112は、例えば、図10に示すように、第1のCPU1001、及び第2のCPU1002を有している。
【0153】
第1のCPU1001は、第1の所定のプログラムを実行することにより、例えば、図3の通信部321、更新部322、及び切替部323等を実現している。また、第2のCPU1002は、第2の所定のプログラムを実行することにより、例えば、図3の起動制御部324、及び機能制御部325等を実現している。
【0154】
上記の構成により、第1のCPU1001は、更新管理装置100からの通知に応じて、第1の実施形態と同様に、第2の記憶領域333に更新後のプログラムを記憶し、ブート情報を更新する。また、第1のCPU1002は、更新管理装置100から、プログラムの更新タイミングを指示する切替指示を受付すると、第2のCPU1002をソフトウェアリセットし、第2の記憶領域333に記憶した更新後のプログラムを用いて再起動させる。
【0155】
第2のCPU1002は、第1の記憶領域に記憶された更新前のプログラムを用いて起動(又は再起動)し、第1のCPU1001からの再起動要求に応じて、第2の記憶領域333に記憶された更新後のプログラムを用いて、再起動する。
【0156】
なお、第2の実施形態に係るECU111、112の機能構成は、図3に示す第1の実施形態に係るECU111、112の機能構成と同様で良い。
【0157】
<処理の流れ>
続いて、第2の実施形態に係る更新システム1の更新管理方法の処理の流れについて説明する。
【0158】
図11は、第2の実施形態に係る更新システムの処理の例を示すシーケンス図である。なお、図11に示す処理の開始時点において、ECU111、及びECU112は、図8のステップS801~S805a、S805bの処理により、第2の記憶領域333への更新後のプログラムの記憶、及びブート情報331の更新が正常に完了しているものとする。
【0159】
ステップS1101において、例えば、ユーザのオフ操作により、車両10がIG-OFFの状態に移行する。これにより、イグニッション電源に接続されているECU11は動作を停止する。一方、常時供給電源に接続されているECU112の第2のCPU1002は、更新前のプログラムによる所定の制御820を継続する。
【0160】
ステップS1102において、例えば、ユーザのオン操作により、車両10がIG-ONの状態に移行する。これにより、ステップS1103において、更新管理装置100が起動し、ステップS1104において、ECU111が起動する。このとき、本実施形態に係るECU111の第2のCPU1002は、起動前のプログラムを用いて起動し、更新前のプログラムによる所定の制御820を再開するものとする。
【0161】
ステップS1105a、S1005bにおいて、更新管理装置100は、所定のタイミングで、ECU111、及びECU112に、更新前のプログラムから更新後のプログラムへの切替えを指示する切替指示を通知する。
【0162】
一例として、更新管理装置100は、IG-ONに応じて起動したときに、ECU111、及びECU112に切替指示を通知する。これにより、第1の実施形態と同様に、車両10のIG-ONに応じて、更新後のプログラムによる所定の制御850を開始させることができる。
【0163】
また、別の一例として、更新管理装置100は、図6(a)のステップS614の処理により、更新対象となるECU111、及びECU112の更新が完了したことを確認したときに、ECU111、及びECU112に切替指示を通知するものであっても良い。さらに、更新管理装置100は、上記以外のタイミングで、ECU111、及びECU112に切替指示を送信するものであっても良い。
【0164】
ステップS1106a、S1106bにおいて、ECU111、及びECU112の第1のCPU1001で実現される切替部323は、第2のCPU1002をソフトウェアリセットする。これにより、ECU111、及びECU112の第2のCPU1002で実現される起動制御部324は、第2の記憶領域333に記憶された更新後のプログラムを用いて、第2のCPU1002を再起動させる。これにより、ECU111、及びECU112において、更新前のプログラムから更新後のプログラムへの切替えが行われる。
【0165】
ステップS1107a、S1007bにおいて、ECU111、及びECU112の第1のCPU1001で実現される更新部322は、プログラムの更新が完了したことを示す更新結果(完了)を、更新管理装置100に通知する。
【0166】
ステップS1108において、更新管理装置100の切替制御部315は、更新対象となるECU111、及びECU112における、更新後のプログラムへの更新が完了したことを確認する。
【0167】
ステップS1109a、S1109bにおいて、更新管理装置100の切替制御部315は、ECU111、及びECU112に対して、更新後のプログラムによる所定の制御の開始を要求する開始要求を通知する。
【0168】
ステップS1110a、S1110bにおいて、ECU111、及びECU112の第1のCPU1001で実現される切替部323は、第2のCPU1002に、更新後のプログラムによる所定の制御850を開始させる。
【0169】
上記の処理により、第2の実施形態に係る更新システム1は、IG-ON時とは異なる所定のタイミングで、更新対象となるECU111、及びECU112における、更新前のプログラムから更新後のプログラムへの切替えを行うことができるようになる。
【0170】
以上、本発明の実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、様々な変形や変更が可能である。
【符号の説明】
【0171】
1 更新システム
10 車両
100 更新管理装置
111 ECU(第1の電子制御装置、電子制御装置)
112 ECU(第2の電子制御装置、電子制御装置)
313 更新要求部(要求部)
314 更新結果記憶部(記憶部)
315 切替制御部
322 更新部
323 切替部
324 起動制御部
332 第1の記憶領域
333 第2の記憶領域
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11