(57)【要約】【課題】車載ＥＣＵのプログラムの更新を複数回連続して行う際に更新の成否を判定することにより、複数回連続して行う更新に適切に対応することができる車載更新装置等を提供する。【解決手段】車載更新装置は、車外の外部サーバから送信される複数回の更新に関する更新情報及び更新プログラムを取得し車載ＥＣＵのプログラムを更新するための処理を行う車載更新装置であって、車載ＥＣＵと通信可能に接続され車載ＥＣＵへの更新プログラムの送信を制御する制御部とを備え、制御部は、更新情報に基づき複数回の更新夫々に対応する更新プログラム夫々の車載ＥＣＵへの送信順番を決定し、決定した送信順番に基づき複数回の更新の内の一の更新に対応する更新プログラムを車載ＥＣＵに送信し、車載ＥＣＵにおける一の更新の成否を判定し一の更新が成功したと判定した場合、一の更新に対応する更新プログラムの次の送信順番の更新プログラムを車載ＥＣＵに送信する。【選択図】図２
2020062936.tif 000002
【特許請求の範囲】
【請求項１】
車外の外部サーバから送信される複数回の更新に関する更新情報及び更新プログラムを取得し、車両に搭載される車載ＥＣＵのプログラムを更新するための処理を行う車載更新装置であって、
前記車載ＥＣＵと通信可能に接続され、前記車載ＥＣＵへの前記更新プログラムの送信を制御する制御部とを備え、
前記制御部は、
前記更新情報に基づき、前記複数回の更新夫々に対応する更新プログラム夫々の前記車載ＥＣＵへの送信順番を決定し、
決定した前記送信順番に基づき、前記複数回の更新の内の一の更新に対応する更新プログラムを前記車載ＥＣＵに送信し、
前記車載ＥＣＵにおける前記一の更新の成否を判定し、
前記一の更新が成功したと判定した場合、前記一の更新に対応する更新プログラムの次の送信順番の更新プログラムを前記車載ＥＣＵに送信する
車載更新装置。
【請求項２】
前記制御部は、
前記一の更新が失敗したと判定した場合、前記次の送信順番の更新プログラムを前記車載ＥＣＵに送信せず、前記複数回の更新を中止する
請求項１に記載の車載更新装置。
【請求項３】
前記車載ＥＣＵの記憶部は、現在実行している現バージョンのプログラム及び過去実行していた旧バージョンのプログラムを記憶する２つの記憶領域を含み、
前記車載ＥＣＵは、前記制御部から送信された前記更新プログラムを、前記旧バージョンのプログラムを記憶する記憶領域に記憶し、該記憶領域に記憶された前記更新プログラムを前記現バージョンのプログラムとして切替え、該切替え結果に関する情報を送信し、
前記制御部は、前記車載ＥＣＵから送信される前記切替え結果に関する情報に基づき、前記車載ＥＣＵにおける前記一の更新の成否を判定する
請求項１又は請求項２に記載の車載更新装置。
【請求項４】
前記一の更新に対応する更新プログラムが送信される前記車載ＥＣＵは、複数あり、
前記制御部は、前記一の更新に対応する更新プログラムが送信される全ての前記車載ＥＣＵから送信される前記切替え結果が正常である場合、前記一の更新が成功したと判定する
請求項３に記載の車載更新装置。
【請求項５】
前記車載ＥＣＵの記憶部は、現在実行している現バージョンのプログラム及び過去実行していた旧バージョンのプログラムを記憶する２つの記憶領域を含み、
前記車載ＥＣＵは、前記制御部から送信された前記更新プログラムを、前記旧バージョンのプログラムを記憶する記憶領域に記憶し、該記憶領域に記憶された前記更新プログラムに対する自己診断結果に関する情報を送信し、
前記制御部は、前記車載ＥＣＵから送信される前記自己診断結果に関する情報に基づき、前記車載ＥＣＵにおける前記一の更新の成否を判定する
請求項１又は請求項２に記載の車載更新装置。
【請求項６】
前記一の更新に対応する更新プログラムが送信される前記車載ＥＣＵは、複数あり、
前記制御部は、前記一の更新に対応する更新プログラムが送信される全ての前記車載ＥＣＵから送信される前記自己診断結果が正常である場合、前記一の更新が成功したと判定する
請求項５に記載の車載更新装置。
【請求項７】
コンピュータに、
車外の外部サーバから送信される複数回の更新に関する更新情報及び更新プログラムを取得し、
前記更新情報に基づき、前記複数回の更新夫々に対応する更新プログラム夫々の車載ＥＣＵへの送信順番を決定し、
決定した前記送信順番に基づき、記複数回の更新の内の一の更新に対応する更新プログラムを前記車載ＥＣＵに送信し、
前記車載ＥＣＵにおける前記一の更新の成否を判定し、
前記一の更新が成功したと判定した場合、前記一の更新に対応する更新プログラムの次の送信順番の更新プログラムを前記車載ＥＣＵに送信する
処理を実行させる更新処理プログラム。
【請求項８】
車外の外部サーバから送信される複数回の更新に関する更新情報及び更新プログラムを取得し、
前記更新情報に基づき、前記複数回の更新夫々に対応する更新プログラム夫々の車載ＥＣＵへの送信順番を決定し、
決定した前記送信順番に基づき、記複数回の更新の内の一の更新に対応する更新プログラムを前記車載ＥＣＵに送信し、
前記車載ＥＣＵにおける前記一の更新の成否を判定し、
前記一の更新が成功したと判定した場合、前記一の更新に対応する更新プログラムの次の送信順番の更新プログラムを前記車載ＥＣＵに送信する
プログラムの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載更新装置、更新処理プログラム及び、プログラムの更新方法に関する。
【背景技術】
【０００２】
車両には、エンジン制御等のパワー・トレーン系、エアコン制御等のボディ系等の車載機器を制御するための車載ＥＣＵ（Electronic Control Unit）が搭載されている。車載ＥＣＵは、ＭＰＵ（Micro Processing Unit）等の演算処理部、ＲＡＭ等の書き換え可能な不揮発性の記憶部、及び他の車載ＥＣＵと通信するための通信部を含み、記憶部に記憶した制御プログラムを読み込んで実行することにより、車載機器の制御を行う。更に車両には、無線通信の機能を備えた中継装置が実装されており、中継装置を介して、車外のネットワークに接続されているプログラム提供装置と通信し、当該プログラム提供装置から車載ＥＣＵの制御プログラムをダウンロード（受信）し、当該車載ＥＣＵの制御プログラムを更新することができる（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−９７８５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の中継装置は、車載ＥＣＵの制御プログラムの更新を複数回連続して行う場合が考慮されていないため、更新を複数回連続して行う際に更新が失敗した場合、更新を開始する時点にて動作していた制御プログラムに戻すことが困難となる問題点がある。
【０００５】
本発明の目的は、車載ＥＣＵのプログラムの更新を複数回連続して行う際に更新の成否を判定することにより、複数回連続して行う更新に適切に対応することができる車載更新装置等を提供する。
【課題を解決するための手段】
【０００６】
本開示の一態様に係る車載更新装置は、車外の外部サーバから送信される複数回の更新に関する更新情報及び更新プログラムを取得し、車両に搭載される車載ＥＣＵのプログラムを更新するための処理を行う車載更新装置であって、前記車載ＥＣＵと通信可能に接続され、前記車載ＥＣＵへの前記更新プログラムの送信を制御する制御部とを備え、前記制御部は、前記更新情報に基づき、前記複数回の更新夫々に対応する更新プログラム夫々の前記車載ＥＣＵへの送信順番を決定し、決定した前記送信順番に基づき、前記複数回の更新の内の一の更新に対応する更新プログラムを前記車載ＥＣＵに送信し、前記車載ＥＣＵにおける前記一の更新の成否を判定し、前記一の更新が成功したと判定した場合、前記一の更新に対応する更新プログラムの次の送信順番の更新プログラムを前記車載ＥＣＵに送信する。
【発明の効果】
【０００７】
本開示の一態様によれば、車載ＥＣＵのプログラムの更新を複数回連続して行う際に更新の成否を判定することにより、複数回連続して行う更新に適切に対応することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態１に係る車載更新システムの構成を例示する模式図である。
【図２】車載更新装置等の構成を例示するブロック図である。
【図３】車載ＥＣＵの動作面の切替えの一態様を例示する説明図である。
【図４】車載更新装置の制御部の処理（車載ＥＣＵが単数）を例示するフローチャートである。
【図５】実施形態２の車載更新装置の制御部の処理（車載ＥＣＵが複数）を例示するフローチャートである。
【発明を実施するための形態】
【０００９】
［本発明の実施形態の説明］
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００１０】
（１）本開示の一態様に係る車載更新装置は、車外の外部サーバから送信される複数回の更新に関する更新情報及び更新プログラムを取得し、車両に搭載される車載ＥＣＵのプログラムを更新するための処理を行う車載更新装置であって、前記車載ＥＣＵと通信可能に接続され、前記車載ＥＣＵへの前記更新プログラムの送信を制御する制御部とを備え、前記制御部は、前記更新情報に基づき、前記複数回の更新夫々に対応する更新プログラム夫々の前記車載ＥＣＵへの送信順番を決定し、決定した前記送信順番に基づき、前記複数回の更新の内の一の更新に対応する更新プログラムを前記車載ＥＣＵに送信し、前記車載ＥＣＵにおける前記一の更新の成否を判定し、前記一の更新が成功したと判定した場合、前記一の更新に対応する更新プログラムの次の送信順番の更新プログラムを前記車載ＥＣＵに送信する。
【００１１】
本態様にあたっては、制御部は、複数回の更新を連続的に実施する場合であっても、一の更新の都度、当該更新の成否を判定した上で、次の更新を行う。従って、一の更新が成功した場合、制御部は、一の更新に対応する更新プログラムの次の送信順番の更新プログラムを前記車載ＥＣＵに送信するため、当該次の送信順番の更新プログラムに問題が生じた場合であっても、当該車載ＥＣＵは、前回成功した一の更新によるプログラム（一の更新に対応する更新プログラム）に戻すことができる。又、一の更新が失敗した場合に次の送信順番の更新プログラムにより、一の更新を開始する時点にて動作していたプログラムが削除されて、当該次の送信順番の更新プログラムが当該車載ＥＣＵの記憶部に記憶されることを防止することができる。従って、車載ＥＣＵのプログラムの更新を複数回連続して行う際に更新の成否を判定することにより、複数回連続して行う更新に適切に対応することができる。
【００１２】
（２）本開示の一態様に係る車載更新装置は、前記制御部は、前記一の更新が失敗したと判定した場合、前記次の送信順番の更新プログラムを前記車載ＥＣＵに送信せず、前記複数回の更新を中止する。
【００１３】
本態様にあたっては、制御部は、複数回の更新を連続的に実施する場合であっても、一の更新の都度、当該更新の成否を判定した上で次の更新を行うものとし、一の更新が失敗した場合、制御部は、次の送信順番の更新プログラムを車載ＥＣＵに送信せず、複数回連続して行う更新を中止する。従って、一の更新が失敗したにもかかわらず次の送信順番の更新プログラムが車載ＥＣＵに送信され、一の更新を開始する時点にて動作していたプログラムが削除されて、当該次の送信順番の更新プログラムが当該車載ＥＣＵの記憶部に記憶されることを防止することができる。すなわち、当該車載ＥＣＵの記憶部にて、一の更新を行う時点で動作していたバージョンのプログラムを保持する領域を確実に確保することができる。従って、連続して行われる複数回の更新において、一の更新が失敗した場合、当該車載ＥＣＵは、確実に当該一の更新を行う時点で動作していたバージョンのプログラムに戻すことができるため、複数回連続して行う更新に適切に対応することができる
【００１４】
（３）本開示の一態様に係る車載更新装置は、前記車載ＥＣＵの記憶部は、現在実行している現バージョンのプログラム及び過去実行していた旧バージョンのプログラムを記憶する２つの記憶領域を含み、前記車載ＥＣＵは、前記制御部から送信された前記更新プログラムを、前記旧バージョンのプログラムを記憶する記憶領域に記憶し、該記憶領域に記憶された前記更新プログラムを前記現バージョンのプログラムとして切替え、該切替え結果に関する情報を送信し、前記制御部は、前記車載ＥＣＵから送信される前記切替え結果に関する情報に基づき、前記車載ＥＣＵにおける前記一の更新の成否を判定する。
【００１５】
本態様にあたっては、制御部は、車載ＥＣＵから送信される切替え結果に関する情報に基づき、車載ＥＣＵにおける一の更新の成否を判定するため、当該判定の精度を向上させることができる。車載ＥＣＵの記憶部は、現在実行している現バージョンのプログラム及び過去実行していた旧バージョンのプログラムを記憶する２つの記憶領域を含み、制御部から送信された更新プログラムは、旧バージョンのプログラムを記憶する記憶領域に記憶される。制御部から送信された更新プログラムへの切替えが失敗した場合、次の送信順番の更新プログラムが送信されないため、現バージョン（一の更新を開始する時点にて動作していたプログラム）のプログラムが記憶されている状態を維持することができる。車載ＥＣＵは、一の更新にて失敗した更新プログラムから、一の更新を開始する時点にて動作していたプログラム（現バージョンのプログラム）に戻して動作することができる。
【００１６】
（４）本開示の一態様に係る車載更新装置は、前記一の更新に対応する更新プログラムが送信される前記車載ＥＣＵは、複数あり、前記制御部は、前記一の更新に対応する更新プログラムが送信される全ての前記車載ＥＣＵから送信される前記切替え結果が正常である場合、前記一の更新が成功したと判定する。
【００１７】
本態様にあたっては、一の更新に対応する更新プログラムが送信される車載ＥＣＵが複数ある場合、当該複数の全ての車載ＥＣＵのプログラムを更新する必要がある。このような場合であっても、制御部は、一の更新に対応する更新プログラムが送信される車載ＥＣＵの全てから送信される切替え結果が、正常である場合、当該一の更新が成功したと判定するため、当該複数の全ての車載ＥＣＵのプログラムを更新することができる。
【００１８】
（５）本開示の一態様に係る車載更新装置は、前記車載ＥＣＵの記憶部は、現在実行している現バージョンのプログラム及び過去実行していた旧バージョンのプログラムを記憶する２つの記憶領域を含み、前記車載ＥＣＵは、前記制御部から送信された前記更新プログラムを、前記旧バージョンのプログラムを記憶する記憶領域に記憶し、該記憶領域に記憶された前記更新プログラムに対する自己診断結果に関する情報を送信し、前記制御部は、前記車載ＥＣＵから送信される前記自己診断結果に関する情報に基づき、前記車載ＥＣＵにおける前記一の更新の成否を判定する。
【００１９】
本態様にあたっては、制御部は、車載ＥＣＵから送信される自己診断結果に関する情報に基づき、車載ＥＣＵにおける一の更新の成否を判定するため、当該判定の精度を向上させることができる。
【００２０】
（６）本開示の一態様に係る車載更新装置は、前記一の更新に対応する更新プログラムが送信される前記車載ＥＣＵは、複数あり、前記制御部は、前記一の更新に対応する更新プログラムが送信される全ての前記車載ＥＣＵから送信される前記自己診断結果が正常である場合、前記一の更新が成功したと判定する。
【００２１】
本態様にあたっては、一の更新に対応する更新プログラムが送信される車載ＥＣＵが複数ある場合、当該複数の全ての車載ＥＣＵのプログラムを更新する必要がある。このような場合であっても、制御部は、一の更新に対応する更新プログラムが送信される車載ＥＣＵの全てから送信される自己診断結果が、正常である場合、当該一の更新が成功したと判定するため、当該複数の全ての車載ＥＣＵプログラムを更新することができる。
【００２２】
（７）本開示の一態様に係る更新処理プログラムは、コンピュータに、車外の外部サーバから送信される複数回の更新に関する更新情報及び更新プログラムを取得し、前記更新情報に基づき、前記複数回の更新夫々に対応する更新プログラム夫々の車載ＥＣＵへの送信順番を決定し、決定した前記送信順番に基づき、記複数回の更新の内の一の更新に対応する更新プログラムを前記車載ＥＣＵに送信し、前記車載ＥＣＵにおける前記一の更新の成否を判定し、前記一の更新が成功したと判定した場合、前記一の更新に対応する更新プログラムの次の送信順番の更新プログラムを前記車載ＥＣＵに送信する処理を実行させる。
【００２３】
本態様にあたっては、コンピュータを車載更新装置として機能させることができる。
【００２４】
（８）本開示の一態様に係るプログラムの更新方法は、車外の外部サーバから送信される複数回の更新に関する更新情報及び更新プログラムを取得し、前記更新情報に基づき、前記複数回の更新夫々に対応する更新プログラム夫々の車載ＥＣＵへの送信順番を決定し、決定した前記送信順番に基づき、記複数回の更新の内の一の更新に対応する更新プログラムを前記車載ＥＣＵに送信し、前記車載ＥＣＵにおける前記一の更新の成否を判定し、前記一の更新が成功したと判定した場合、前記一の更新に対応する更新プログラムの次の送信順番の更新プログラムを前記車載ＥＣＵに送信する。
【００２５】
本態様にあたっては、車載ＥＣＵのプログラムの更新を複数回連続して行う際に更新の成否を判定することにより、複数回連続して行う更新に適切に対応することができる。
【００２６】
[本発明の実施形態の詳細]
本発明をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載更新装置２を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００２７】
（実施形態１）
以下、実施の形態について図面に基づいて説明する。図１は、実施形態１に係る車載更新システムの構成を例示する模式図である。図２は、車載更新装置２等の構成を例示するブロック図である。車載更新システムＳは、車両Ｃに搭載された車外通信装置１及び車載更新装置２を含み、車外ネットワークＮを介して接続されたプログラム提供装置Ｓ１から取得したプログラム又はデータを、車両Ｃに搭載されている車載ＥＣＵ３（Electronic Control Unit）に送信する。
【００２８】
プログラム提供装置Ｓ１は、例えばインターネット又は公衆回線網等の車外ネットワークＮに接続されているサーバ等のコンピュータであり、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）又はハードディスク等による記憶部Ｓ１１を備え、車外の外部サーバに相当する。プログラム提供装置Ｓ１の記憶部Ｓ１１には、車載ＥＣＵ３の製造メーカ等によって作成された当該車載ＥＣＵ３を制御するためのプログラム又はデータが保存されている。当該プログラム又はデータは、更新プログラムとして、後述のごとく車両Ｃに送信され、車両Ｃに搭載されている車載ＥＣＵ３のプログラム又はデータを更新するために用いられる。このように構成されたプログラム提供装置Ｓ１（外部サーバ）は、ＯＴＡ（Over The Air）サーバとも称される。車両Ｃに搭載される車載ＥＣＵ３は、プログラム提供装置Ｓ１から無線通信により送信された更新プログラムを取得し、当該更新プログラムを実行するプログラムとして適用することにより、自ＥＣＵが実行するプログラムを更新（リプロ）することができる。
【００２９】
以降、プログラムは、車載ＥＣＵ３が処理を行うための制御構文等を含むプログラムコード及び、当該プログラムコードを実行するにあたり参照するデータが記載される外部ファイルを含むものとして説明する。更新プログラムの送信時において、これらプログラムコード及びデータが記載される外部ファイルは、例えば暗号化されたアーカイブファイルとして、プログラム提供装置Ｓ１から送信される。
【００３０】
車両Ｃには、車外通信装置１、車載更新装置２、表示装置５、及び種々の車載機器を制御するための複数の車載ＥＣＵ３が搭載されている。車外通信装置１と車載更新装置２とは、例えばシリアルケーブル等のハーネスにより通信可能に接続されている。車載更新装置２及び車載ＥＣＵ３は、ＣＡＮ（Control Area Network／登録商標）又はＥｔｈｅｒｎｅｔ（登録商標）等の通信プロトコルに対応した車内ＬＡＮ４によって通信可能に接続されている。
【００３１】
車外通信装置１は、車外通信部１１及び、車載更新装置２と通信するための入出力Ｉ／Ｆ（インターフェイス）１２を含む。車外通信部１１は、３Ｇ、ＬＴＥ、４Ｇ、ＷｉＦｉ等の移動体通信のプロトコルを用いて無線通信をするための通信装置であり、車外通信部１１に接続されたアンテナ１３を介してプログラム提供装置Ｓ１とデータの送受信を行う。車外通信装置１とプログラム提供装置との通信は、例えば公衆回線網又はインターネット等の外部ネットワークを介して行われる。
【００３２】
入出力Ｉ／Ｆ１２は、車載更新装置２と、例えばシリアル通信するための通信インターフェイスである。車外通信装置１と車載更新装置２とは、入出力Ｉ／Ｆ１２及び入出力Ｉ／Ｆ１２に接続されたシリアルケーブル等のハーネスを介して相互に通信する。本実施形態では、車外通信装置１は、車載更新装置２と別装置とし、入出力Ｉ／Ｆ１２等によってこれら装置を通信可能に接続しているが、これに限定されない。車外通信装置１は、車載更新装置２の一構成部位として、車載更新装置２に内蔵されるものであってもよい。
【００３３】
車載更新装置２は、制御部２０、記憶部２１及び車内通信部２３を含む。車載更新装置２は、車外通信装置１が無線通信によってプログラム提供装置Ｓ１から受信した更新プログラムを、車外通信装置１から取得し、車内ＬＡＮ４を介して当該更新プログラムを所定の車載ＥＣＵ３（更新対象の車載ＥＣＵ３）に送信するように構成されている。車載更新装置２は、例えば、制御系の車載ＥＣＵ３、安全系の車載ＥＣＵ３及び、ボディ系の車載ＥＣＵ３等の複数の系統のセグメントを統括し、これらセグメント間での車載ＥＣＵ３同士の通信を中継するゲートウェイ（中継器）である。又は、車載更新装置２は、車両Ｃ全体をコントロールするボディＥＣＵの一機能部として構成されるものであってもよい。
【００３４】
制御部２０は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等により構成してあり、記憶部２１に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。制御部２０は、プログラム提供装置Ｓ１から送信された更新プログラムを、車外通信装置１を介して取得する取得部に相当する。
【００３５】
記憶部２１は、ＲＡＭ（Random Access Memory）等の揮発性のメモリ素子又は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラム及び処理時に参照するデータがあらかじめ記憶してある。記憶部２１に記憶された制御プログラムは、車載更新装置２が読み取り可能な記録媒体２２から読み出された制御プログラムを記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部２１に記憶させたものであってもよい。更に、記憶部２１には、車両Ｃに搭載される全ての車載ＥＣＵ３の構成情報、プログラム提供装置Ｓ１から取得した更新プログラム、及び車載ＥＣＵ３に更新プログラムを送信する際の進捗状況に関する情報が、記憶される。
【００３６】
車内通信部２３は、ＣＡＮ（Control Area Network）又はＥｔｈｅｒｎｅｔ（登録商標）等の通信プロトコルを用いた入出力インターフェイスであり、制御部２０は、車内通信部２３を介して車内ＬＡＮ４に接続されている車載ＥＣＵ３又は他の中継装置等の車載機器と相互に通信する。車内通信部２３は、複数個（図面上では３つ）設けられており、車内通信部２３夫々に、車内ＬＡＮ４を構成する通信線が接続されている。このように車内通信部２３を複数個設けることにより、車内ＬＡＮ４は複数個のセグメントに分けられ、各セグメント夫々に車載ＥＣＵを、当該車載ＥＣＵの機能（制御系機能、安全系機能、ボディ系機能）に応じて接続する。
【００３７】
車載ＥＣＵ３は、制御部３０、記憶部３１及び車内通信部３２を含む。記憶部３１は、ＲＡＭ（Random Access Memory）等の揮発性のメモリ素子又は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、車載ＥＣＵ３のプログラム又はデータが記憶されている。このプログラム又はデータが、車載更新装置２から送信される更新プログラムによって更新される対象である。
【００３８】
記憶部３１は、第１記憶領域（第１面）３１１及び第２記憶領域（第２面）３１２を含む。記憶部３１には、現状において車載ＥＣＵ３が実行（適用）しているプログラム（現バージョン）及び、現バージョンの以前に適用されていたプログラム（旧バージョン）の２つのプログラムが記憶されている。これら現バージョンのプログラムと、旧バージョンのプログラムとは、第１記憶領域３１１又は第２記憶領域３１２のいずれかの記憶領域に分かれて、記憶されている。すなわち、第１記憶領域３１１に現バージョンのプログラムが記憶されている場合、第２記憶領域３１２に旧バージョンのプログラムが記憶されている。第１記憶領域３１１に旧バージョンのプログラムが記憶されている場合、第２記憶領域３１２に現バージョンのプログラムが記憶されている。このように現バージョン及び旧バージョンの２つのプログラムを、所謂２面持ちとして記憶することにより、万が一現バージョンのプログラムに問題が生じた場合であっても、制御部３０は、以前に適用して正常に動作していた旧バージョンのプログラムを読み込み実行する（切替える）ことで、車載ＥＣＵ３の信頼性を担保することができる。
【００３９】
記憶部３１には、現バージョン及び旧バージョンの２つのプログラム夫々のバージョンに関する情報、及び現在実行（適用）しているプログラムが記憶されている領域（動作面）に関する情報が記憶されている。すなわち、現状において第１記憶領域（第１面）３１１に記憶されているプログラムを実行している場合、記憶部３１には、動作面は第１記憶領域（第１面）３１１であると記憶される。現状において第２記憶領域（第２面）３１２に記憶されているプログラムを実行している場合、記憶部３１には、動作面は第２記憶領域（第２面）３１２であると記憶される。記憶部３１には、プログラム（現バージョン及び旧バージョン）のバージョン情報及び動作面に関する情報を含め、自ＥＣＵの構成情報と、車載更新装置２から更新プログラムを受信する際の進捗状況に関する情報とが、記憶される。
【００４０】
制御部３０は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等により構成してあり、記憶部３１（動作面）に記憶されたプログラム及びデータを読み出し実行して制御処理等を行い、当該車載ＥＣＵ３を含む車載機器又はアクチュエータ等が制御される。
【００４１】
車載ＥＣＵ３の制御部３０は、車載更新装置２から送信される更新プログラムを、車内通信部３２を介して受信し、当該更新プログラムを取得する。従って、車載ＥＣＵ３の制御部３０は、プログラム提供装置Ｓ１から送信された更新プログラムを、車外通信装置１及び車載更新装置２を介して取得する。制御部３０は、取得した更新プログラムを、動作面でない記憶領域（第１記憶領域３１１又は第２記憶領域３１２）に記憶する。すなわち、制御部３０は、車載更新装置２から送信された更新プログラムを取得するにあたり、当該取得の準備処理として、動作面でない記憶領域（非動作面）に記憶されているプログラムを削除する。通常、動作面でない記憶領域に記憶されているプログラムは、現バージョンのプログラムの以前に実行された旧バージョンのプログラムであるため、車載ＥＣＵ３における車載装置への制御機能を停止させることなく、当該旧バージョンを削除することができる。制御部３０は、動作面でない記憶領域（非動作面）に記憶されている旧バージョンのプログラムを削除し、車載更新装置２から送信された更新プログラムを、当該非動作面に記憶する。
【００４２】
車載ＥＣＵ３の制御部３０は、更新プログラムの受信を正常終了した後、動作面の切替えを行い、受信した更新プログラムを現バージョンのプログラムとして適用して実行する。車載ＥＣＵ３の制御部３０は、更新プログラムの受信を正常終了し、動作面の切替えを正常に行った場合、プログラムの更新が完了（正常終了）したことを記憶部３１に記憶し、更に車載更新装置２に送信（通知）する。動作面の切替えが正常に行われた場合、制御部３０は、プログラムの更新が完了（正常終了）したと判定するため、当該判定の精度を担保することができる。
【００４３】
又は、車載ＥＣＵ３の制御部３０は、更新プログラムの受信を正常終了し動作面の切替えを行った後、当該車載ＥＣＵ３の機能に基づいた自己診断処理を行う。車載ＥＣＵ３の機能に基づいた自己診断処理を行うための自己診断処理プログラムは、車載ＥＣＵ３夫々の記憶部に３１に予め記憶されている。又は、自己診断処理プログラムは、更新プログラムに含まれ、更新プログラムと一緒に車載更新装置２から送信されるものであってもよい。
【００４４】
制御部３０は、切替えた更新プログラムに対する自己診断処理の結果が正常である場合、プログラムの更新が完了（正常終了）したことを記憶部３１に記憶し、更に車載更新装置２に送信（通知）してもよい。自己診断処理の結果が正常である場合、制御部３０は、プログラムの更新が完了（正常終了）したと判定するため、当該判定の精度を更に向上させることができる。
【００４５】
又は、車載ＥＣＵ３の制御部３０は、更新プログラムの受信を正常終了し動作面の切替えを行う前に、非動作面の記憶領域に記憶されている更新プログラムに対し、自己診断処理を行い、更新プログラムに対する自己診断処理の結果が正常である場合、プログラムの更新が完了（正常終了）したことを記憶部３１に記憶し、更に車載更新装置２に送信（通知）する。更新プログラムの受信を正常終了し動作面の切替えを行う前、すなわち更新プログラムを適用する前に、制御部３０は、非動作面の記憶領域に記憶されている更新プログラムに対し自己診断処理を行うため、車載ＥＣＵ３が現在実行している車載装置に対する制御機能の動作に影響を与えることなく、更新プログラムによる更新の正否について判定することができる。
【００４６】
車載ＥＣＵ３の制御部３０は、更新プログラムへの切替えが失敗した場合、又は更新プログラムに対する自己診断処理の結果が異常である場合、ロールバック処理、すなわち更新プログラムの前バージョン（旧バージョン）のプログラムが記憶されている非動作面の記憶領域を、動作面の記憶領域として切替え（ロールバック）、当該前バージョンのプログラムを実行（適用）する。車載ＥＣＵ３の制御部３０は、更新プログラムへの切替えが失敗した場合、又は更新プログラムに対する自己診断処理の結果が異常である場合、更新が失敗（異常終了）したことを記憶部３１に記憶し、更に車載更新装置２に送信（通知）してもよい。
【００４７】
更新プログラムの前バージョンのプログラムは、更新プログラムが送信される際に実行していたプログラムであるため、動作実績を有するプログラムである。従って、制御部３０は、更新プログラムの更新に失敗した場合であっても、ロールバック処理を行うことにより、動作実績を有するプログラムに戻して（動作面を切替え）、当該プログラムを実行するため、車載装置に対する制御機能を継続することができる。
【００４８】
車載ＥＣＵ３の制御部３０による更新プログラムによる更新の成否の判定は、当該更新プログラムへの切替え（動作面の切替え）又は自己診断処理の結果に基づき判定するものとしたが、これに限定されない。車載ＥＣＵ３の制御部３０は、更新プログラムに切替え当該更新プログラムを実行した後、例えば、所定期間の経過、車両Ｃの累積動作時間、トリップ回数、又は運転距離等が所定値以上となるまでの間に、当該更新プログラムに起因する異常を検知しなかった場合、更新は成功したと判定してもよい。
【００４９】
表示装置５は、例えばカーナビゲーションのディスプレイ等のＨＭＩ（Human Machine Interface）装置である。表示装置５は、車載更新装置２の入出力Ｉ／Ｆ２４とシリアルケーブル等のハーネスにより通信可能に接続されている。表示装置５には、車載更新装置２の制御部２０から入出力Ｉ／Ｆ２４を介して出力されたデータ又は情報が表示される。表示装置５と車載更新装置２との接続形態は、入出力Ｉ／Ｆ２４等による接続形態に限定されず、表示装置５と車載更新装置２とは、車内ＬＡＮ４を介した接続形態であってもよい。
【００５０】
図３は、車載ＥＣＵ３の動作面の切替えの一態様を例示する説明図である。図３における車載ＥＣＵ３の動作面の切替えの一態様は、更新プログラムが複数個（図では、２つ）あり、これら複数個の更新プログラムによる複数回の更新を連続して行う場合について説明するものである。
【００５１】
プログラム提供装置Ｓ１には、車載ＥＣＵ３に対する更新プログラムとして、Ｖｅｒ２のプログラム及びＶｅｒ３のプログラムによる２つの更新プログラムが用意されている。車載更新装置２は、プログラム提供装置Ｓ１から取得した更新情報に基づき、更新プログラムの個数及び当該更新プログラムを送信する車載ＥＣＵ３を特定し、当該車載ＥＣＵ３への更新プログラム夫々の送信順番を決定する。車載更新装置２は、例えば、更新プログラム夫々のバージョン番号又は更新プログラム夫々がプログラム提供装置Ｓ１に保存された日時等により、最も古い更新プログラムから順に送信するように、送信順番を決定する。図３においては、車載更新装置２は、Ｖｅｒ２のプログラムを最初に送信し、次にＶｅｒ３のプログラムを送信するとして送信順番を決定している。
【００５２】
車載ＥＣＵ３の初期状態（Ａ状態）は、Ｖｅｒ１のプログラムが動作面となる第１記憶領域３１１に記憶されており、非動作面となる第２記憶領域３１２は、なにも記憶されていない空の状態となっている。車載ＥＣＵ３は、車載更新装置２から送信（中継）された更新プログラムとなるＶｅｒ２のプログラムを受信して取得し、Ｖｅｒ２のプログラムを非動作面である第２記憶領域３１２に記憶する。
【００５３】
車載ＥＣＵ３は、動作面を第１記憶領域３１１から第２記憶領域３１２に切替え、第２記憶領域３１２に記憶したＶｅｒ２のプログラム（更新プログラム）を現バージョンのプログラムとして実行することにより、連続して行う複数回の更新における最初の一の更新を完了する（Ｂ状態）。車載ＥＣＵ３は、一の更新が完了（正常終了）した旨を車載更新装置２に通知する。
【００５４】
車載ＥＣＵ３から更新が完了した通知を取得した車載更新装置２は、次の送信順番となるＶｅｒ３のプログラムを車載ＥＣＵ３に送信し、連続して行う複数回の更新における次の一の更新を開始する。車載ＥＣＵ３は、車載更新装置２から送信された更新プログラムとなるＶｅｒ３のプログラムを受信して取得し、Ｖｅｒ３のプログラムを非動作面である第１記憶領域３１１に記憶する（Ｃ状態）。
【００５５】
車載ＥＣＵ３は、動作面を第２記憶領域３１２から第１記憶領域３１１に切替え、第１記憶領域３１１に記憶したＶｅｒ３のプログラム（更新プログラム）を現バージョンのプログラムとして実行することにより、連続して行う複数回の更新における次の一の更新を完了する（Ｄ状態）。車載ＥＣＵ３は、一の更新が完了（正常終了）した旨を車載更新装置２に通知する。
【００５６】
更新プログラムが複数個存在し、複数回の更新を連続して行う状況は、例えば、車両Ｃの操作者が長期間にわたり当該車両Ｃを運転しなかった場合、当該車両Ｃが長期間にわたりプログラム提供装置Ｓ１と無線通信できなかった場合、又は操作者が複数の更新を許容しなかった場合等に発生する。更新プログラムの適用は、プログラム自体を全て入れ替えて適用する場合に加え、プログラムの一部を入れ替えるものとして、前バージョンのプログラムとの差分を適用する場合とがある。従って、例えばＶｅｒ１のプログラムから、Ｖｅｒ２及びＶｅｒ３のプログラムを適用するにあたり、Ｖｅｒ２のプログラムを適用することなく、Ｖｅｒ３のプログラムを適用することができない場合があるため、複数回の更新を連続して行う必要が発生する。
【００５７】
これに対し、上述のごとく複数回の更新を行う場合であっても、個々の更新（一の更新）を行う都度、車載更新装置２は、個々の更新（一の更新）の正否を判定し、成功した場合は、次の一の更新（次の送信順番となる更新プログラムの送信）を開始するものとしている。従って、一の更新が失敗したにもかかわらず次の送信順番の更新プログラムが車載ＥＣＵ３に送信され、当該次の送信順番の更新プログラムが、非動作面の記憶領域に記憶されることを防止することができる。当該非動作面の記憶領域には、一の更新を行う時点で動作していたバージョンのプログラム、すなわち当該一の更新の直前の更新にて更新成功と判定したプログラムが、記憶（保持）されている。これにより、一の更新が失敗した場合であっても、当該車載ＥＣＵ３は、失敗した一の更新の直前の更新にて、更新成功と判定したプログラムに戻すこと（ロールバック）ができる。
【００５８】
図４は、車載更新装置２の制御部２０の処理（車載ＥＣＵ３が単数）を例示するフローチャートである。車載更新装置２の制御部２０は、車両Ｃが起動状態（ＩＧスイッチがオン）又は、停止状態（ＩＧスイッチがオフ）であっても車載更新装置２の蓄電装置（図示せず）の充電量が所定値以上である場合、車外通信装置１を介して定常的にプログラム提供装置Ｓ１と通信し、以下の処理を行う。
【００５９】
車載更新装置２の制御部２０は、更新情報及び更新プログラムを取得する（Ｓ１０）。車載更新装置２の制御部２０は、車外通信装置１を介してプログラム提供装置Ｓ１と通信し、更新情報の有無を確認し、更新情報があれば対応する更新プログラムを取得する。制御部２０は、取得した更新情報に基づき、更新対象の車載ＥＣＵ３を特定する。更新情報が複数個存在する場合、更新プログラムが複数存在するものとなる。更新情報には、例えば、更新プログラムのバージョン番号、更新プログラムがプログラム提供装置Ｓ１に保存された日時、適用する車載ＥＣＵ３に関する情報、及びプログラムのファイルサイズ等が含まれる。更新情報は、更新プログラムとは別個のデータファイルである場合に限定されない。更新情報は、更新プログラムのデータファイルに、例えばヘッダー情報として含まれるものであってもよい。制御部２０は、更新情報を参照して、又はプログラム提供装置Ｓ１に保存されている更新プログラムの個数に基づき、複数の更新プログラムが存在する場合は、複数の更新に関する更新情報及び更新プログラムをプログラム提供装置Ｓ１から取得する。
【００６０】
車載更新装置２の制御部２０は、複数の更新プログラムの送信順番を決定する（Ｓ１１）。制御部２０は、取得した複数の更新に関する更新情報又は更新プログラムに基づき、当該複数の更新プログラムの送信順番を決定する。更新情報には、取得した複数の更新プログラム夫々のバージョン番号、又はプログラム提供装置Ｓ１に保存された日時が、含まれている。制御部２０は、例えば、バージョン番号又は日時が古い更新プログラムから順次送信するように、複数の更新プログラムの送信順番を決定する。例えば、バージョン番号として、ｖｅｒ２、ｖｅｒ２．１ａ、及びｖｅｒ３の３つの更新プログラムを取得した場合、制御部２０は、送信順番として、ｖｅｒ２の更新プログラムを１番目に送信し、ｖｅｒ２．１ａのプログラムを２番目に送信し、ｖｅｒ３のプログラムを３番目に送信するとして決定する。制御部２０は、決定した送信順番と更新プログラムのバージョン番号とを関連づけて、記憶部２１に記憶する。
【００６１】
車載更新装置２の制御部２０は、一の更新プログラムを送信する（Ｓ１２）。制御部２０は、Ｓ１１で決定した送信順番に基づき、一の更新プログラムの送信を開始する。複数回の更新を連続して行うにあたり、車載ＥＣＵ３に送信すべき更新プログラムは複数個存在するが、制御部２０は、送信順番に基づき一の更新プログラムを送信する。一の更新プログラムとは、連続して行う複数回の更新の内の一の更新に対応した更新プログラムである。制御部２０は、一の更新プログラムの送信を行うにあたり、当該一の更新プログラムが送信状態であることを記憶部２１に記憶する。
【００６２】
制御部２０は、更新プログラムの送信を開始するにあたり、送信先となる車載ＥＣＵ３とセッションを確立するものであってもよい。Ｓ１０の処理において、制御部２０は、取得した更新情報に基づき、更新対象の車載ＥＣＵ３を特定するとしたが、これに限定されない。制御部２０は、例えば、更新情報に基づき生成した所定のパケット又はメッセージをマルチキャストで車両Ｃに搭載される全ての車載ＥＣＵ３に送信する。そして、制御部２０は、当該マルチキャストに対し自ＥＣＵの構成情報（識別情報）を含めて返信して応答した車載ＥＣＵ３を更新対象の車載ＥＣＵ３として特定し、当該車載ＥＣＵ３の更新を開始すること（当該車載ＥＣＵ３が更新中であること）を記憶部２１に記憶してもよい。
【００６３】
車載更新装置２の制御部２０は、車載ＥＣＵ３から更新結果に関する情報を取得する（Ｓ１３）。Ｓ１２で送信した一の更新プログラムを車載ＥＣＵ３が受信（取得）し、車載ＥＣＵ３は、取得した更新プログラムによる更新を成功した場合、更新が成功したことを車載更新装置２に送信（通知）する。車載ＥＣＵ３は、取得した更新プログラムによる更新を失敗した場合、更新が失敗したことを車載更新装置２に送信（通知）する。車載ＥＣＵ３は、例えば、更新プログラムへの切替えの成否、又は更新プログラムに対する自己診断処理の結果により、更新の成否を判定する。
【００６４】
車載更新装置２の制御部２０は、車載ＥＣＵ３の更新の成否を判定する（Ｓ１４）。制御部２０は、車載ＥＣＵ３から更新が成功したことを示す送信（通知）がされた場合、
今回送信した一の更新プログラムにより、車載ＥＣＵ３の更新が成功したと判定する。制御部２０は、車載ＥＣＵ３から更新が成功したことを示す送信（通知）がされなかった場合、今回送信した一の更新プログラムにより、車載ＥＣＵ３の更新が失敗したと判定する。
【００６５】
車載ＥＣＵ３の更新が成功したと判定した場合（Ｓ１４：ＹＥＳ）、車載更新装置２の制御部２０は、全ての更新プログラムを送信したかを判定する（Ｓ１５）。制御部２０は、車載ＥＣＵ３の更新が成功したと判定した場合、記憶部２１に記憶してある更新プログラムの状態を、送信中から送信完了に変更する。制御部２０は、例えば、最後の送信順番となっている更新プログラムが送信完了の状態となったことにより、連続して行う複数回の更新に対応した複数の更新プログラムの全てを送信したと判定する。
【００６６】
全ての更新プログラムを送信したと判定した場合（Ｓ１５：ＹＥＳ）、車載更新装置２の制御部２０は、複数回の更新が成功したことを記憶し、出力する（Ｓ１６）。制御部２０は、複数回の更新に対応した複数の更新プログラムの全てを送信したと判定した場合、連続して行う複数回の更新が成功したことを記憶部２１に記憶し、プログラム提供装置Ｓ１又は表示装置５に、連続して行う複数回の更新が成功したことを出力（送信）する。連続して行う複数回の更新が成功したことをプログラム提供装置Ｓ１又は表示装置５に出力（送信）することにより、プログラム提供装置Ｓ１の管理者又は車両Ｃの操作者に、連続して行う複数回の更新が成功したことを報知することができる。
【００６７】
全ての更新プログラムを送信していないと判定した場合（Ｓ１５：ＮＯ）、すなわち複数回の更新を連続して行うにあたり、複数回の更新に対応する全ての更新プログラムの送信が完了していない場合、車載更新装置２の制御部２０は、再度Ｓ１２の処理を実行すべく、ループ処理を行う。制御部２０は、ループ処理により再度Ｓ１２の処理を実行するにあたり、直前に送信した更新プログラムの次の送信順番となる更新プログラムを送信する。車載更新装置２の制御部２０は、送信が完了した更新プログラム、すなわち車載ＥＣＵ３において更新に成功した更新プログラムの状態を送信完了として記憶部２１に記憶してある。制御部２０は、記憶部２１を参照し、送信が完了していない更新プログラムを、送信順番に基づき車載ＥＣＵ３に送信する。このようにループ処理を行うことにより、更新プログラムが複数個ある場合であっても、当該複数の更新プログラムを、Ｓ１１で決定した送信順番に基づき、順次に車載ＥＣＵ３に送信することができる。
【００６８】
車載ＥＣＵ３の更新が失敗したと判定した場合（Ｓ１４：ＮＯ）、車載更新装置２の制御部２０は、更新プログラムの送信を中止する（Ｓ１４１）。車載ＥＣＵ３の更新が失敗したと判定した場合、制御部２０は、車載ＥＣＵ３への更新プログラムの送信を中止する。すなわち、車載ＥＣＵ３の更新が失敗したと判定した場合、制御部２０は、車載ＥＣＵ３へ、次の送信順番となる更新プログラムの送信をせず、連続して行う複数回の更新を中止する。制御部２０は車載ＥＣＵ３への更新プログラムの送信を中止するため、車載ＥＣＵ３の第１記憶領域３１１又は第２記憶領域３１２には、当該更新が失敗したと判定された更新プログラムの送信が開始される時点にて、車載ＥＣＵ３の記憶部３１の動作面に記憶されているプログラムが記憶（保持）されている。従って、車載ＥＣＵ３は、送信された更新プログラムによる更新が失敗した場合であっても、当該更新プログラムが送信される時点にて、実行していたプログラムに戻す（ロールバック）ことにより、車載装置への制御機能を継続することができる。
【００６９】
制御部２０は、更新プログラムの送信を中止するにあたり、記憶部２１に記憶してある更新情報及び更新プログラムを削除してもよい。制御部２０は、記憶部２１に記憶してある更新情報及び更新プログラムを削除することにより、当該記憶部２１の空き容量が逼迫することを抑制することができる。
【００７０】
車載更新装置２の制御部２０は、複数回の更新が失敗したことを記憶し、出力する（Ｓ１４２）。制御部２０は、連続して行う複数回の更新が失敗したことを記憶部２１に記憶し、プログラム提供装置Ｓ１又は表示装置５に出力（送信）する。制御部２０は、複数回の更新が失敗したことに関する情報に、更新対象である車載ＥＣＵ３に関する識別情報等の情報（構成情報）、更新に成功した更新プログラムに関する情報、更新に失敗した更新プログラムに関する情報、又はこれら全ての情報を含めるものであってもよい。複数回の更新が失敗したことをプログラム提供装置Ｓ１又は表示装置５に出力（送信）することにより、プログラム提供装置Ｓ１の管理者又は車両Ｃの操作者に、連続して行う複数回の更新が失敗したことを報知することができる。
【００７１】
（実施形態２）
図５は、実施形態２の車載更新装置２の制御部２０の処理（車載ＥＣＵ３が複数）を例示するフローチャートである。実施形態２における車載更新装置２の制御部２０の処理は、複数の更新対象の車載ＥＣＵ３に対応する点で、実施形態１と異なる。
【００７２】
車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１０）と同様に、更新情報及び更新プログラムを取得する（Ｓ２０）。
【００７３】
車載更新装置２の制御部２０は、更新対象の複数の車載ＥＣＵ３を特定する（Ｓ２１）。更新情報には、例えば、更新プログラムのバージョン番号、更新プログラムがプログラム提供装置Ｓ１に保存された日時、適用する車載ＥＣＵ３に関する情報、及びプログラムのファイルサイズ等が含まれており、制御部２０は、更新対象の複数の車載ＥＣＵ３を特定する。
【００７４】
複数の車載ＥＣＵ３が協働して動作する場合、これら複数の車載ＥＣＵ３が実行するプログラム同士のバージョン番号が、同一又は同世代となるように、これらプログラム同士の相関性が確保される必要がある。従って、複数回の更新を連続して行う場合、個々の更新（一の更新）夫々において、更新対象となる車載ＥＣＵ３が複数となる場合がある。そこで、制御部２０は、取得した更新情報に基づき、複数回の更新を連続して行うにあたり、更新対象となる複数の車載ＥＣＵ３を特定し、特定した複数の車載ＥＣＵ３を識別するための識別情報を記憶部に記憶する。車載ＥＣＵ３を識別するための識別情報は、例えば、当該車載ＥＣＵ３の製造時に付与されるシリアル番号、又は当該車載ＥＣＵ３の車内通信部３２がＥｔｈｅｒｎｅｔである場合、ＭＡＣ（Media Access Control）アドレスである。
【００７５】
車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１１）と同様に、複数の更新プログラムの送信順番を決定する（Ｓ２２）。例えば、相互に協働する３つの車載ＥＣＵ３に対し、連続して複数回の更新を行う場合、個々の更新（夫々の一の更新）において、当該３つの車載ＥＣＵ３夫々に対応した更新プログラムを送信する必要がある。制御部２０は、個々の更新（夫々の一の更新）において、更新対象の複数の車載ＥＣＵ３夫々に送信する更新プログラムを更新プログラム群として定義して記憶部２１に記憶し、当該更新プログラム群に対し、送信順番を決定してもよい。
【００７６】
車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１２）と同様に、一の更新プログラムの送信する（Ｓ２３）。制御部２０は、送信順番に基づき、複数の更新対象の車載ＥＣＵ３夫々に対し、一の更新に対応した更新プログラム夫々（一の更新プログラム）を送信する。この一の更新に対応した更新プログラム夫々は、上述のごとく、更新プログラム群として定義されている。
【００７７】
車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１３）と同様に、車載ＥＣＵ３夫々から更新結果に関する情報を取得する（Ｓ２４）。更新プログラムの送信は、複数の車載ＥＣＵ３に行われており、制御部２０は、更新プログラムが送信された複数の車載ＥＣＵ３夫々から、更新結果に関する情報を取得する。更新プログラムが送信された複数の車載ＥＣＵ３夫々は、実施形態１と同様に取得した更新プログラムによる更新の成否に関する情報を、車載更新装置２に送信（通知）する。
【００７８】
車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１４）と同様に、車載ＥＣＵ３夫々の更新の成否を判定する（Ｓ２５）。制御部２０は、一の更新プログラム（一の更新プログラム群）を送信した全ての車載ＥＣＵ３（更新対象の全ての車載ＥＣＵ３）から、更新が成功したことを示す送信（通知）がされた場合、今回送信した一の更新プログラムにより、更新対象の全ての車載ＥＣＵ３の更新が成功したと判定する。
【００７９】
制御部２０は、一の更新プログラム（一の更新プログラム群）を送信した全ての車載ＥＣＵ３（更新対象の全ての車載ＥＣＵ３）から、更新が成功したことを示す送信（通知）がされなかった場合、今回送信した一の更新プログラムにより、更新対象の全ての車載ＥＣＵ３の更新が成功しなかった判定する。すなわち、更新対象の複数の車載ＥＣＵ３において、いずれか一つの車載ＥＣＵ３のみから、更新が成功したことを示す送信（通知）がされなかった場合であっても、制御部２０は、当該一の更新プログラム（一の更新プログラム群）による更新は成功しなかった、すなわち失敗したと判定する。
【００８０】
個々の更新（夫々の一の更新）において、更新対象となる複数の車載ＥＣＵ３に送信された更新プログラム（更新プログラム群）毎に、当該更新の成否の判定を行うため、複数の車載ＥＣＵ３夫々のプログラム同士の相関性を確保しつつ、複数回の更新を連続して行うことができる。
【００８１】
更新対象の全ての車載ＥＣＵ３の更新が成功したと判定した場合（Ｓ２５：ＹＥＳ）、車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１５）と同様に、全ての更新プログラムを送信したかを判定する（Ｓ２６）。すなわち、制御部２０は、更新対象の複数の車載ＥＣＵ３に対し複数回の更新を連続して行うにあたり、全ての更新プログラム群を送信したかを判定する。
【００８２】
全ての更新プログラム（更新プログラム群）を送信したと判定した場合（Ｓ２６：ＹＥＳ）の場合、車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１６）と同様に、複数回の更新が成功したことを記憶し、出力する（Ｓ２７）。
【００８３】
全ての更新プログラム（更新プログラム群）を送信していないと判定した場合（Ｓ２６：ＮＯ）の場合、すなわち複数回の更新を連続して行うにあたり、複数回の更新に対応する全ての更新プログラム（更新プログラム群）の送信が完了していない場合、車載更新装置２の制御部２０は、再度Ｓ２３の処理を実行すべく、ループ処理を行う。
【００８４】
制御部２０は、実施形態１と同様に更新プログラム単位、又は更新プログラム群単位での送信の状態に関し、例えば、送信中又は送信完了として、記憶部２１に記憶してある。制御部２０は、送信順番に基づき、送信が完了していない更新プログラム（更新プログラム群）を車載ＥＣＵ３に送信する。このようにループ処理を行うことにより、複数の車載ＥＣＵ３に対し、複数回の更新を連続して行う場合であっても、個々の更新にて当該複数の車載ＥＣＵ３に送信する更新プログラム群を、Ｓ２２で決定した送信順番に基づき、順次に車載ＥＣＵ３に送信することができる。
【００８５】
更新対象の全ての車載ＥＣＵ３の更新が成功しなかったと判定した場合（Ｓ２５：ＮＯ）、すなわちいずれかの車載ＥＣＵ３の更新が成功しなかったと判定した場合、車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１４１）と同様に、更新プログラムの送信を中止する（Ｓ２５１）。いずれかの車載ＥＣＵ３の更新が失敗したと判定した場合、制御部２０は、複数の車載ＥＣＵ３への更新プログラム（更新プログラム群）の送信を中止、すなわち更新プログラム（更新プログラム群）を送信せず、連続して行う複数回の更新を中止する。
【００８６】
車載更新装置２の制御部２０は、更新対象の複数の車載ＥＣＵ３に送信中止を通知する（Ｓ２５２）。制御部２０は、更新対象の複数の車載ＥＣＵ３のうち、いずれかの車載ＥＣＵ３において更新が失敗したことにより、以降の更新プログラムの送信を中止とすることを示す情報を、当該更新対象の複数の車載ＥＣＵ３に送信（通知）する。車載更新装置２からの送信中止の通知を取得（受信）した複数の車載ＥＣＵ３夫々の第１記憶領域３１１及び第２記憶領域３１２には、失敗と判定された一の更新にて送信された更新プログラムと、当該更新プログラムの送信時点にて実行していたプログラムが、記憶されている。当該更新プログラムは、動作面の記憶領域に記憶されている。当該更新プログラムの送信時点にて実行していたプログラム（当該更新プログラムの前バージョンのプログラムに相当）は、非動作面の記憶領域に記憶されている。車載更新装置２からの送信中止の通知を取得した複数の車載ＥＣＵ３夫々は、動作面の切替えを行い、失敗と判定された一の更新の更新プログラムの送信時点にて実行していたプログラムに戻し（ロールバック）、当該プログラムを実行する。
【００８７】
従って、一の更新において、更新対象の複数の車載ＥＣＵ３夫々に更新プログラム（更新プログラム群）が送信され、いずれかの車載ＥＣＵ３のみが、当該更新プログラムによる更新が失敗した場合であっても、更新対象の全ての車載ＥＣＵ３が、当該更新プログラムが送信された時点に実行していたプログラムに戻す（ロールバック）処理を行う。更新対象の全ての車載ＥＣＵ３が、ロールバック処理を行うことにより、車載ＥＣＵ３夫々のプログラム同士の相関性を確保することができる。
【００８８】
車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１４２）と同様に、複数回の更新が失敗したことを記憶し、出力する（Ｓ２５３）。
【００８９】
実施形態１及び実施形態２において、車載更新装置２の制御部２０は、連続して行う複数回の更新において、個々の更新プログラムによる更新（一の更新）の成否を、車載ＥＣＵ３から送信される更新結果に基づき判定するとしたが、これに限定されない。車載更新装置２の制御部２０は、個々の更新プログラムの送信を行った後に、所定期間の経過、車両Ｃの累積動作時間、トリップ回数又は運転距離等が所定値以上となるまでの間に、当該更新プログラムが送信された車載ＥＣＵ３から、更新失敗に関する通知がされなかった場合、当該更新プログラムによる更新は成功したと判定してもよい。車載更新装置２の制御部２０は、当該更新失敗に関する通知がされた場合、当該更新プログラムによる更新は成功しなかった判定してもよい。更新プログラムを適用した際、更新失敗に関する通知のみを行う車載ＥＣＵ３についても、車載更新装置２の制御部２０は、対応することができる。
【００９０】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９１】
Ｃ  車両
Ｓ  車載更新システム
Ｓ１  プログラム提供装置（外部サーバ）
Ｓ１１  記憶部
１  車外通信装置
１１  車外通信部
１２  入出力Ｉ／Ｆ
１３  アンテナ
２  車載更新装置
２０  制御部
２１  記憶部
２２  記録媒体
２３  車内通信部
２４  入出力Ｉ／Ｆ
３  車載ＥＣＵ
３０  制御部
３１  記憶部
３１１  第１記憶領域（第１面）
３１２  第２記憶領域（第２面）
３２  車内通信部
４  車内ＬＡＮ
５  表示装置
【図１】
2020062936.tif 000003
【図２】
2020062936.tif 000004
【図３】
2020062936.tif 000005
【図４】
2020062936.tif 000006
【図５】
2020062936.tif 000007