(57)【要約】【課題】通信トラフィックを抑制し、車載ＥＣＵのプログラムの更新を効率的に行うことができる車載更新装置等を提供する。【解決手段】車載更新装置は、車載ＥＣＵのプログラム又はデータを更新するための処理を行う車載更新装置であって、前記プログラム又はデータの更新に関する更新情報を受信する受信部と、前記受信部が受信した更新情報に基づいて、前記プログラム又はデータを提供する提供装置から前記プログラム又はデータを取得する取得部と、前記車載ＥＣＵから取得した現状のプログラム又はデータを所定の記憶領域に記憶する記憶部と、該記憶部が前記現状のプログラム又はデータを記憶した後、前記取得部が取得した前記プログラム又はデータを前記車載ＥＣＵに送信する送信部とを備える。【選択図】図２
2019105945.tif 000002
【特許請求の範囲】
【請求項１】
車載ＥＣＵのプログラム又はデータを更新するための処理を行う車載更新装置であって、
前記プログラム又はデータの更新に関する更新情報を受信する受信部と、
前記受信部が受信した更新情報に基づいて、前記プログラム又はデータを提供する提供装置から前記プログラム又はデータを取得する取得部と、
前記車載ＥＣＵから取得した現状のプログラム又はデータを所定の記憶領域に記憶する記憶部と、
該記憶部が前記現状のプログラム又はデータを記憶した後、前記取得部が取得した前記プログラム又はデータを前記車載ＥＣＵに送信する送信部と
を備える車載更新装置。
【請求項２】
前記車載ＥＣＵの負荷又は前記車載ＥＣＵと通信するための車内ネットワークの負荷を検出する負荷検出部を備え、
前記負荷検出部が検出した負荷が所定値以下である場合、前記記憶部は、前記現状のプログラム又はデータを前記記憶領域に記憶する
請求項１に記載の車載更新装置。
【請求項３】
前記現状のプログラム又はデータを所定の記憶領域に記憶している最中に、前記負荷が前記所定値よりも大きくなった場合、前記記憶部は、前記現状のプログラム又はデータの記憶を中断し、該中断後、前記負荷が前記所定値以下となった場合、前記記憶部は、前記現状のプログラム又はデータの記憶を再開する請求項２に記載の車載更新装置。
【請求項４】
前記送信部が前記プログラム又はデータを前記車載ＥＣＵに送信した後に、前記記憶領域に記憶した現状のプログラム又はデータを削除する削除部
を備える請求項１から請求項３のいずれか一つに記載の車載更新装置。
【請求項５】
前記記憶領域は、前記提供装置と通信するための中継装置に設けられている
請求項１から請求項４のいずれか一つに記載の車載更新装置。
【請求項６】
前記記憶領域は、バックアップ用の記憶領域を有する第２車載ＥＣＵに設けられている
請求項１から請求項４のいずれか一つに記載の車載更新装置。
【請求項７】
コンピュータに、
プログラム又はデータの更新に関する更新情報を受信し、
受信した更新情報に基づいて、前記プログラム又はデータを提供する提供装置から前記プログラム又はデータを取得し、
更新対象の車載ＥＣＵから取得した現状のプログラム又はデータを所定の記憶領域に記憶し、
前記現状のプログラム又はデータを記憶した後、取得した前記プログラム又はデータを前記車載ＥＣＵに送信する
処理を実行させるプログラム。
【請求項８】
プログラム又はデータの更新に関する更新情報を受信し、
受信した更新情報に基づいて、前記プログラム又はデータを提供する提供装置から前記プログラム又はデータを取得し、
更新対象の車載ＥＣＵから取得した現状のプログラム又はデータを所定の記憶領域に記憶し、
前記現状のプログラム又はデータを記憶した後、取得した前記プログラム又はデータを前記車載ＥＣＵに送信する
プログラム又はデータの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載更新装置、プログラム及び、プログラム又はデータの更新方法に関する。
【背景技術】
【０００２】
車両には、エンジン制御等のパワー・トレーン系、エアコン制御等のボディ系等の車載機器を制御するためのＥＣＵ（Electronic Control Unit）が搭載されている。ＥＣＵは、ＭＰＵ等の演算処理部、ＲＡＭ等の書き換え可能な不揮発性の記憶部、及び他のＥＣＵと通信するための通信部を含み、記憶部に記憶した制御プログラムを読み込んで実行することにより、車載機器の制御を行う。更に車両には、無線通信の機能を備えた通信機が実装されており、通信機を介して、車外のネットワークに接続されているプログラム提供装置と通信し、当該プログラム提供装置からＥＣＵの制御プログラムをダウンロード（受信）し、当該ＥＣＵの制御プログラムを更新することができる。
【０００３】
ＥＣＵの制御プログラムを更新する際、現状のＥＣＵに記憶されている制御プログラムは、ダウンロードした新しい制御プログラムに上書きされる。制御プログラムの更新に失敗した場合は、元の制御プログラムに戻すリカバリー処理が必要となる。そのため、特許文献１に記載の更新装置（中継装置）は、ＥＣＵの制御プログラムを更新する際、更新するための新しい制御プログラム（新データ）に加え、現状のＥＣＵに記憶されている制御プログラムと同じバージョンの制御プログラム（現データ）をダウンロードするものとしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−９７８５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の更新装置は、プログラム提供装置から新データ及び現データを受信するため、通信トラフィックが増加し、通信コスト及び処理時間が増加するという問題点がある。
【０００６】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、通信トラフィックを抑制し、車載ＥＣＵのプログラムの更新を効率的に行うことができる車載更新装置等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る車載更新装置は、車載ＥＣＵのプログラム又はデータを更新するための処理を行う車載更新装置であって、前記プログラム又はデータの更新に関する更新情報を受信する受信部と、前記受信部が受信した更新情報に基づいて、前記プログラム又はデータを提供する提供装置から前記プログラム又はデータを取得する取得部と、前記車載ＥＣＵから取得した現状のプログラム又はデータを所定の記憶領域に記憶する記憶部と、該記憶部が前記現状のプログラム又はデータを記憶した後、前記取得部が取得した前記プログラム又はデータを前記車載ＥＣＵに送信する送信部とを備える。
【発明の効果】
【０００８】
本開示の一態様によれば、通信トラフィックを抑制し、車載ＥＣＵのプログラムの更新を効率的に行うことができる車載更新装置等を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係る車載更新システムの構成を示す模式図である。
【図２】実施形態１に係る車載更新装置等の構成を示すブロック図である。
【図３】実施形態１に係る制御部の処理を示すフローチャートである。
【図４】実施形態２に係る制御部の処理を示すフローチャートである。
【図５】実施形態３に係る車載更新装置等の構成を示すブロック図である。
【図６】実施形態３に係る制御部の処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
［本発明の実施形態の説明］
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００１１】
（１）本開示の一態様に係る車載更新装置は、車載ＥＣＵのプログラム又はデータを更新するための処理を行う車載更新装置であって、前記プログラム又はデータの更新に関する更新情報を受信する受信部と、前記受信部が受信した更新情報に基づいて、前記プログラム又はデータを提供する提供装置から前記プログラム又はデータを取得する取得部と、前記車載ＥＣＵから取得した現状のプログラム又はデータを所定の記憶領域に記憶する記憶部と、該記憶部が前記現状のプログラム又はデータを記憶した後、前記取得部が取得した前記プログラム又はデータを前記車載ＥＣＵに送信する送信部とを備える。
【００１２】
本態様にあたっては、車載更新装置は、更新対象の車載ＥＣＵの現状のプログラム又はデータを所定の記憶領域に記憶した後に、取得した前記プログラム又はデータを前記車載ＥＣＵに送信する。従って、提供装置から、更新対象の車載ＥＣＵの現状のプログラム又はデータを取得することを不要とし、通信コスト及び処理時間を削減することができる。
【００１３】
（２）前記車載ＥＣＵの負荷又は前記車載ＥＣＵと通信するための車内ネットワークの負荷を検出する負荷検出部を備え、前記負荷検出部が検出した負荷が所定値以下である場合、前記記憶部は、前記現状のプログラム又はデータを前記記憶領域に記憶する構成が好ましい。
【００１４】
本態様にあたっては、負荷検出部が検出した負荷が所定値以下である場合、前記現状のプログラム又はデータを前記記憶領域に記憶する。従って、負荷が高い場合、現状のプログラム又はデータを記憶するための負荷が更にかかることを抑制し、現状のプログラム又はデータを前記記憶領域に記憶する処理を確実に行うことができる。
【００１５】
（３）前記現状のプログラム又はデータを所定の記憶領域に記憶している最中に、前記負荷が前記所定値よりも大きくなった場合、前記記憶部は、前記現状のプログラム又はデータの記憶を中断し、該中断後、前記負荷が前記所定値以下となった場合、前記記憶部は、前記現状のプログラム又はデータの記憶を再開する構成が好ましい。
【００１６】
本態様にあたっては、現状のプログラム又はデータを所定の記憶領域に記憶している最中に、前記負荷が所定値よりも大きくなった場合、前記現状のプログラム又はデータの記憶する処理を中断するので、当該負荷を低減させることができる。記憶する処理を中断後、前記負荷が所定値以下となった場合、前記現状のプログラム又はデータの記憶する処理を再開するので、現状のプログラム又はデータを前記記憶領域に記憶する処理を確実に完了させることができる。
【００１７】
（４）前記送信部が前記プログラム又はデータを前記車載ＥＣＵに送信した後に、前記記憶領域に記憶した現状のプログラム又はデータを削除する削除部を備える構成が好ましい。
【００１８】
本態様にあたっては、プログラム又はデータを前記車載ＥＣＵに送信した後に、前記記憶領域に記憶した現状のプログラム又はデータを削除するので、当該プログラム又はデータが漏洩する虞を低減させることができる。
【００１９】
（５）前記記憶領域は、前記提供装置と通信するための中継装置に設けられている構成が好ましい。
【００２０】
本態様にあたっては、前記記憶領域は、前記提供装置と通信するための中継装置に設けられているので、当該中継装置の記憶領域を有効に活用することができる。
【００２１】
（６）前記記憶領域は、バックアップ用の記憶領域を有する第２車載ＥＣＵに設けられている構成が好ましい。
【００２２】
本態様にあたっては、前記記憶領域は、バックアップ用の記憶領域を有する第２車載ＥＣＵに設けられているので、第２車載ＥＣＵのバックアップ用の記憶領域を有効に活用することができる。
【００２３】
（７）本開示の一態様に係るプログラムは、コンピュータに、プログラム又はデータの更新に関する更新情報を受信し、受信した更新情報に基づいて、前記プログラム又はデータを提供する提供装置から前記プログラム又はデータを取得し、更新対象の車載ＥＣＵから取得した現状のプログラム又はデータを所定の記憶領域に記憶し、前記現状のプログラム又はデータを記憶した後、取得した前記プログラム又はデータを前記車載ＥＣＵに送信する処理を実行させる。
【００２４】
本態様にあたっては、コンピュータを、本開示の一態様の車載更新装置として機能させることができる。
【００２５】
（８）本開示の一態様に係るプログラム又はデータの更新方法は、プログラム又はデータの更新に関する更新情報を受信し、受信した更新情報に基づいて、前記プログラム又はデータを提供する提供装置から前記プログラム又はデータを取得し、更新対象の車載ＥＣＵから取得した現状のプログラム又はデータを所定の記憶領域に記憶し、前記現状のプログラム又はデータを記憶した後、取得した前記プログラム又はデータを前記車載ＥＣＵに送信する。
【００２６】
本態様にあたっては、本態様にあたっては、本実施の車載ＥＣＵの現状のプログラム又はデータを所定の記憶領域に記憶した後に、取得した前記プログラム又はデータを前記車載ＥＣＵに送信する。従って、提供装置から、更新対象の車載ＥＣＵの現状のプログラム又はデータを取得することを不要とし、通信コスト及び処理時間を削減することができるプログラム又はデータの更新方法を提供することができる。
【００２７】
[本発明の実施形態の詳細]
本発明をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載更新装置２を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００２８】
（実施形態１）
以下、実施の形態について図面に基づいて説明する。図１は、実施形態１に係る車載更新システムＳの構成を示す模式図である。車載更新システムＳは、車両Ｃに搭載された車外通信装置１及び車載更新装置２を含み、車外ネットワークＮを介して接続されたプログラム提供装置Ｓ１から取得したプログラム又はデータを、車両Ｃに搭載されている第１車載ＥＣＵ３（Electronic Control Unit）に送信する。
【００２９】
プログラム提供装置Ｓ１は、例えばインターネット又は公衆回線網等の車外ネットワークＮに接続されているサーバ等のコンピュータである。プログラム提供装置Ｓ１には、第１車載ＥＣＵ３の製造メーカ等によって作成された当該第１車載ＥＣＵ３を制御するためのプログラム又はデータが保存されている。当該プログラム又はデータは、後述のごとく車両Ｃに送信され、車両Ｃに搭載されている第１車載ＥＣＵ３のプログラム又はデータを更新するために用いられる。
【００３０】
車両Ｃには、車外通信装置１、車載更新装置２、及び種々の車載機器を制御するための複数の第１車載ＥＣＵ３が搭載されている。車外通信装置１、車載更新装置２及び第１車載ＥＣＵ３は、車内ＬＡＮ４によって通信可能に接続されている。
【００３１】
図２は、実施形態１に係る車載更新装置２等の構成を示すブロック図である。車載更新装置２は、制御部２０、記憶部２１及び車内通信部２３を含む。車載更新装置２は、車外通信装置１が無線通信によってプログラム提供装置Ｓ１から受信したプログラム又はデータを、車内ＬＡＮ４を介して取得し、当該プログラム又はデータを所定の第１車載ＥＣＵ３に送信できるように構成されている。車載更新装置２は、例えば、制御系、安全系及びボディ系等の複数の第１車載ＥＣＵ３の系統のセグメントを統括するセントラルゲートウェイ（ＣＧＷ／中継器）である。又は、車載更新装置２は、車両Ｃ全体をコントロールするボディＥＣＵであってもよい。
【００３２】
制御部２０は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等により構成してあり、記憶部２１に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。制御部２０は、制御プログラムを実行することによって、負荷検出部又は削除部として機能する。制御部２０は、車外通信装置１又は車内通信部２３を介することによって、受信部及び取得部として機能する。制御部２０は、車内通信部２３を介することによって、送信部として機能する。
【００３３】
記憶部２１は、ＲＡＭ（Random Access Memory）等の揮発性のメモリ素子又は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラム及び処理時に参照するデータがあらかじめ記憶してある。記憶部２１に記憶された制御プログラムは、車載更新装置２が読み取り可能な記録媒体２２から読み出された制御プログラムを記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部２１に記憶させたものであってもよい。詳細は後述するが、記憶部２１には、取得したプログラム又はデータが記憶される。
【００３４】
車内通信部２３は、ＣＡＮ（Control Area Network）、ＬＩＮ（Local Interconnect Network）又はEthernet（登録商標）等の通信プロトコルを用いた入出力インタフェースであり、車内ＬＡＮ４に接続されている車外通信装置１、第１車載ＥＣＵ３等の車載機器と相互に通信する。
【００３５】
なお、制御部２０、記憶部２１は、ＣＧＷ及びボディＥＣＵ等の複数の車載機器に分散して構成され、相互に通信して連携又は協働することによって、機能するものであってもよい。
【００３６】
車外通信装置１は、車外通信部１１及び車内通信部１２を含む。車外通信部１１は、３Ｇ、ＬＴＥ、４Ｇ、ＷｉＦｉ等の移動体通信のプロトコルを用いて無線通信をするための入出力インタフェースであり、公衆回線網又はインターネット等の外部ネットワークを介して、プログラム提供装置Ｓ１との通信を行う。
【００３７】
車内通信部１２は、車載更新装置２の車内通信部２３と同様の機能を有し、車内ＬＡＮ４を介して車載更新装置２等と相互に通信する。
【００３８】
本実施形態では、車外通信装置１は、車載更新装置２と別装置とし、車内ＬＡＮ４によってこれら装置を通信可能に接続しているが、これに限定されない。車外通信装置１は、車載更新装置２の一構成部位として、車載更新装置２に内蔵されるものであってもよい。
【００３９】
第１車載ＥＣＵ３は、記憶部３１、制御部３０及び車内通信部３２を含む。記憶部３１は、ＲＡＭ（Random Access Memory）等の揮発性のメモリ素子又は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、当該第１車載ＥＣＵ３のプログラム又はデータが記憶されている。このプログラム又はデータが、車載更新装置２によって更新される対象である。
【００４０】
記憶部３１の記憶容量は、プログラム又はデータのサイズに基づいて設定されている。従って、記憶部３１は、当該プログラム又はデータを記憶するための記憶領域を有しているが、当該プログラム又はデータをバックアップするための記憶領域を有していない。
【００４１】
制御部３０は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等により構成してあり、記憶部３１に予め記憶されたプログラム及びデータを読み出して実行して制御処理等を行い、当該第１車載ＥＣＵ３を含む車載機器又はアクチュエータ等が制御される。詳細は後述するが、制御部３０は、車載更新装置２から送信されたプログラム又はデータを取得し、記憶部３１に記憶されている現プログラム又はデータから、当該取得したプログラム又はデータに更新する処理を行う。制御部３０は、車載更新装置２からの指示に基づいて、記憶部３１に記憶されているプログラム又はデータを、車載更新装置２に送信する。
【００４２】
車内通信部３２は、車載更新装置２の車内通信部２３と同様の機能を有し、車内ＬＡＮ４を介して車載更新装置２等と相互に通信する。
【００４３】
図３は、実施形態１に係る制御部２０の処理を示すフローチャートである。車載更新装置２の制御部２０は、車外通信装置１を介してプログラム提供装置Ｓ１と定期的又は非定期的に通信し以下の処理を実行する。
【００４４】
制御部２０は、更新対象となる第１車載ＥＣＵ３のプログラム等の更新に関する更新情報を取得する（Ｓ１１）。この更新情報とは、プログラム提供装置Ｓ１において、第１車載ＥＣＵ３のプログラム等を更新するための新しいプログラム等（更新プログラム等）が準備された場合、当該更新プログラム等が準備されたことを通知する情報である。制御部２０は、車外通信装置１を介してプログラム提供装置Ｓ１と通信し、第１車載ＥＣＵ３のプログラム等の更新情報を取得する。制御部２０とプログラム提供装置Ｓ１との通信は、例えば、制御部２０が定期的にプログラム提供装置Ｓ１にアクセス（ポーリング）して、更新情報の有無を確認することによって行われる。又は、制御部２０は、プログラム提供装置Ｓ１からの更新情報に関する通知を受信することによって、プログラム等の更新情報を取得してもよい。
【００４５】
制御部２０は、プログラム提供装置Ｓ１から、第１車載ＥＣＵ３のプログラム等（新プログラム等）を取得する（Ｓ１２）。この新プログラム等とは、更新対象の第１車載ＥＣＵ３に適用することによって、第１車載ＥＣＵ３のプログラム等を更新するためのプログラム等（更新プログラム等）である。制御部２０は、取得した新プログラムを記憶部２１に記憶する。
【００４６】
制御部２０は、Ｓ１２の処理に平行して、第１車載ＥＣＵ３の制御部２０の負荷、又は第１車載ＥＣＵ３と通信するための車内ＬＡＮ４のネットワーク負荷等の負荷を検出する（Ｓ１１１）。この負荷を検出するため、制御部２０は、サブプロセスを発生させる。又は、負荷を検出するためのプロセスを予め生成しておき、当該プロセスに対しシグナルを送る等のプロセス間通信を行うことによって、負荷を検出するためのプロセスが処理を行うように活性化させてもよい。
【００４７】
制御部２０は、検出した負荷が所定値以下であるかの判定を行う（Ｓ１１２）。第１車載ＥＣＵ３の制御部２０の負荷を検出する場合、制御部２０は、当該第１車載ＥＣＵ３と車内通信部２３を介して通信し、第１車載ＥＣＵ３のＭＰＵ等の制御部３０の処理の負荷を検出する。車内ＬＡＮ４のネットワーク負荷を検出する場合、制御部２０は、車内ＬＡＮ４のトラフィック等をモニタリングし、ネットワークの使用率等に基づく負荷を検出する。所定値は、例えば、第１車載ＥＣＵ３のＭＰＵ等の制御部２０の周波数性能、又は車内ＬＡＮ４の帯域幅等に基づき適宜決定され、例えば５０％程度を所定値として定める。
【００４８】
検出した負荷が所定値以下である場合（Ｓ１１２：ＹＥＳ）、制御部２０は、第１車載ＥＣＵ３から、第１車載ＥＣＵ３に現在適用されているプログラム等（現プログラム等）を取得し、取得した現プログラム等を記憶部２１に記憶する（Ｓ１１３）。制御部２０は、自装置である車載更新装置２の記憶部２１に現プログラム等を記憶させることによって、当該現プログラム等を確実に所定の記憶領域に保存することができる。
【００４９】
検出した負荷が所定値以下である場合は、車両Ｃのイグニッション電源がオフとなった場合も含む。従って、制御部２０が、第１車載ＥＣＵ３から現プログラム等を取得している間、又は現プログラム等を記憶部２１に記憶している間に車両Ｃのイグニッション電源がオフとなっても、制御部２０は、当該現プログラム等の取得又は記憶部２１に記憶させる処理を続行する。
【００５０】
検出した負荷が所定値以下でない場合（Ｓ１１２：ＮＯ）、すなわち検出した負荷が所定値よりも大きい場合、再度Ｓ１１１の処理を実行すべく、ループ処理を行う。
【００５１】
制御部２０は、Ｓ１２の処理を実行した後、サブプロセスである現プログラム等の記憶が完了したかの判定を行う（Ｓ１３）。制御部２０は、現プログラム等の記憶（Ｓ１１３）が完了した場合、例えば、サブプロセスが送信するシグナルに基づいて当該判定を行う。又は、制御部２０は、記憶部２１に記憶されている現プログラムを読み出すことによって、当該判定を行ってもよい。
【００５２】
現プログラム等の記憶が完了していない場合（Ｓ１３：ＮＯ）、制御部２０は、再度Ｓ１３の判定を行うべくループ処理を行う。当該ループ処理を行うにあたって、制御部２０は、所定時間の待機処理（スリープ）を実行してもよい。
【００５３】
現プログラム等の記憶が完了した場合（Ｓ１３：ＹＥＳ）、制御部２０は、記憶部２１に記憶されている新プログラム等を読み出し、車内通信部２３を介して、第１車載ＥＣＵ３に当該新プログラム等を送信する。
【００５４】
制御部２０は、新プログラム等を送信された第１車載ＥＣＵ３が、当該新プログラム等によって、更新処理を正常に終了したか否かの判定を行う（Ｓ１５）。第１車載ＥＣＵ３は、送信された新プログラム等を受信し、記憶部３１に記憶されている現プログラム等を上書きすることによって、現プログラム等から新プログラム等に更新処理するように構成されている。従って、制御部２０は、例えば、第１車載ＥＣＵ３と通信することによって、更新処理が正常に終了したか否かの判定を行う。
【００５５】
更新処理が正常に終了した場合（Ｓ１５：ＹＥＳ）、制御部２０は、車外通信装置１を介して、プログラム提供装置Ｓ１に更新成功の通知を行う（Ｓ１６）。制御部２０は、更に車内に設けられているスピーカ、ディスプレイ等の報知部（図示せず）を介して、車両Ｃの操作者に更新成功の報知を行ってもよい。
【００５６】
更新処理が正常に終了しなかった場合（Ｓ１５：ＹＥＳ）、すなわち更新処理が異常に終了場合、制御部２０は、記憶部２１に記憶してある現プログラム等を読み出し、第１車載ＥＣＵ３に現プログラム等を送信する（Ｓ１５１）。
【００５７】
制御部２０は、現プログラム等を送信された第１車載ＥＣＵ３が、当該現プログラム等によって、復帰処理を正常に終了したか否かの判定を行う（Ｓ１５２）。第１車載ＥＣＵ３は、送信された現プログラム等を受信し、新プログラム等に更新しようとしている状態から、現プログラム等が適用されていた状態に復帰処理するように構成されている。従って、制御部２０は、例えば、第１車載ＥＣＵ３と通信することによって、復帰処理が正常に終了したか否かの判定を行う。
【００５８】
復帰処理が正常に終了した場合（Ｓ１５２：ＹＥＳ）、制御部２０は、車外通信装置１を介して、プログラム提供装置Ｓ１に更新失敗の通知を行う（Ｓ１５３）。制御部２０は、更に車内に設けられているスピーカ、ディスプレイ等の報知部（図示せず）を介して、車両Ｃの操作者に更新失敗の報知を行ってもよい。更新失敗の通知は、新プログラム等への更新は失敗したが、現プログラム等に復帰される復帰処理は成功したことを意味するものである。
【００５９】
復帰処理が正常に終了しなかった場合（Ｓ１５２：ＮＯ）、制御部２０は、当該復帰処理が所定回数実行されたか否かの判定を行う（Ｓ１５２１）。回数のカウントは、例えば初期値を設定し、ループ回数（リトライ回数）に応じて、初期値を増加させるカウンター処理によって行われる。制御部２０は、復帰処理のリトライ回数をカウントし、当該リトライ回数が予め定められた所定回数に達したか否かによって判定を行う。所定回数は、例えば５回程度として設定される。
【００６０】
復帰処理が所定回数実行されていない場合（Ｓ１５２１：ＮＯ）、制御部２０は、再度Ｓ１５１の処理を実行すべく、ループ処理を行う。
【００６１】
復帰処理が所定回数実行されている場合（Ｓ１５２１：ＹＥＳ）、制御部２０は、車外通信装置１を介して、プログラム提供装置Ｓ１に復帰失敗の通知を行う（Ｓ１５２２）。制御部２０は、更に車内に設けられているスピーカ、ディスプレイ等の報知部（図示せず）を介して、車両Ｃの操作者に復帰失敗の報知を行ってもよい。復帰処理の通知は、新プログラム等への更新は失敗し、かつ現プログラム等に復帰する処理も失敗したことを意味するものである。
【００６２】
制御部２０は、Ｓ１６，Ｓ１５３，Ｓ１５２２の処理を行った後、記憶部２１に記憶してある現プログラム等を消去する（Ｓ１７）。
【００６３】
更新対象の第１車載ＥＣＵ３の現プログラム等を、当該第１車載ＥＣＵ３から取得して、記憶部２１に記憶するため、プログラム提供装置Ｓ１と通信して現プログラム等を取得することを不要とすることができる。従って、プログラム提供装置Ｓ１との通信量を抑制し、通信コスト及び処理時間を削減することができる。
【００６４】
制御部２０は、更新対象の第１車載ＥＣＵ３の負荷、又は第１車載ＥＣＵ３と通信するための車内ＬＡＮ４の負荷を検出し、当該負荷が所定値以下の場合、第１車載ＥＣＵ３から現プログラム等を取得し、記憶部２１に記憶する。従って、負荷が高い場合、現状のプログラム又はデータを記憶するための負荷が更にかかることを抑制し、現状のプログラム又はデータを記憶部２１に記憶する処理を確実に行うことができる。
【００６５】
制御部２０は、更新情報を取得した後、プログラム提供装置Ｓ１から新プログラム等を取得する処理と、第１車載ＥＣＵ３から現プログラム等を取得する処理を並行して行う。従って、処理時間を短くすることができる。
【００６６】
本実施形態において、プログラム提供装置Ｓ１から新プログラム等を取得する処理と、第１車載ＥＣＵ３から現プログラム等を取得する処理を並行して行うとしたがこれに限定されない。制御部２０は、プログラム提供装置Ｓ１から新プログラム等を取得した後に、第１車載ＥＣＵ３から現プログラム等を取得してもよい。また、制御部２０は、第１車載ＥＣＵ３から現プログラム等を取得した後に、プログラム提供装置Ｓ１から新プログラム等を取得してもよい。
【００６７】
（実施形態２）
図４は、実施形態２に係る制御部２０の処理を示すフローチャートである。実施形態２に係る車載更新装置２の制御部２０は、現プログラム等を記憶等している間においても負荷を検出し、当該負荷が所定値以下でなくなった場合、処理を中断する点等において、実施形態１と異なる。以下では、主にかかる相違点を説明する。Ｓ２１からＳ２４の処理は、実施形態１のＳ１１からＳ１４の処理と同様であるため説明を省略する。Ｓ２１１，Ｓ２１２の処理は、実施形態１のＳ１１１，Ｓ１１２と同様であるため説明を省略する。また、Ｓ２４以降の処理は、実施形態１におけるＳ１５以降の処理についても同様であるため、説明を省略する。
【００６８】
検出した負荷が所定値以下である場合（Ｓ２１２：ＹＥＳ）、制御部２０は、第１車載ＥＣＵ３から、第１車載ＥＣＵ３に現在適用されているプログラム等（現プログラム等）を取得し、取得した現プログラム等をブロック単位で記憶部２１に記憶する（Ｓ２１３）。ブロックとは、現プログラム等を所定のデータサイズで分割したデータである。又は、制御部２０は、現プログラム等に含まれるセパレータを抽出し、当該セパレータに基づいて、現プログラム等を分割しブロックとしてもよい。
【００６９】
制御部２０は、記憶したブロックが最後のブロックであるか否かの判定を行う（Ｓ２１４）。記憶したブロックが最後のブロックでない場合（Ｓ２１４：ＮＯ）、制御部２０は、Ｓ２１１の処理と同様に第１車載ＥＣＵ３の制御部３０の負荷、又は第１車載ＥＣＵ３と通信するための車内ＬＡＮ４のネットワーク負荷等の負荷を検出する（Ｓ２１５）。
【００７０】
制御部２０は、検出した負荷が所定値以下であるかの判定を行う（Ｓ２１６）。検出した負荷が所定値以下でない場合（Ｓ２１６：ＮＯ）、すなわち負荷が所定値よりも大きい場合、制御部２０は、現プログラム等を記憶する処理を中断する（Ｓ２１７）。制御部２０は、第１車載ＥＣＵ３から現プログラム等を取得するための通信を中断する。制御部２０は、これら中断を行った後、再度Ｓ２１５の処理を実行すべくループ処理を行う。制御部２０は、このループ処理を行うことによって、当該負荷を検出する処理を継続する。
【００７１】
検出した負荷が所定値以下の場合（Ｓ２１６：ＹＥＳ）、制御部２０は、再度２１３の処理を実行すべくループ処理を行う。既に第１車載ＥＣＵ３との通信及び現プログラム等を記憶する処理が中断されている場合、再度２１３の処理を実行することによって、第１車載ＥＣＵ３との通信及び現プログラム等を記憶する処理が再開される（Ｓ２１３）。
【００７２】
記憶したブロックが最後のブロックである場合（Ｓ２１４：ＹＥＳ）、制御部２０は、現プログラム等の記憶が完了したと判定（Ｓ２３：ＹＥＳ）し、実施形態１と同様にＳ２４以降の処理を行う。
【００７３】
現プログラム等を第１車載ＥＣＵ３から取得し記憶部２１に記憶している間に、第１車載ＥＣＵ３又は車内ＬＡＮ４の負荷に応じて、現プログラム等を記憶する処理等を中断又は再開することによって、第１車載ＥＣＵ３又は車内ＬＡＮ４の負荷が更に増加することを抑制し、現プログラム等を記憶部２１に確実に記憶することができる。現プログラム等の記憶はブロック単位で行うため、記憶を中断した時のブロックのＩＤ等の番号に基づいて、確実に再開することができる。
【００７４】
本実施形態において、現プログラム等の記憶はブロック単位で行った後に、負荷を検出し、検出した負荷に応じて、記憶等の処理の中断又は再開するような逐次処理としているがこれに限定されない。制御部２０は、第１車載ＥＣＵ３から現プログラム等を取得し記憶部２１に記憶される処理に平行して、第１車載ＥＣＵ３及び車内ＬＡＮ４の負荷を監視するサブプロセスを生成してもよい。制御部２０は、生成したサブプロセスによって負荷を監視し、負荷が所定値よりも大きい又は所定値以下となった場合、現プログラム等を記憶するプロセスにシグナルを送信する等のプロセス間通信を行い、現プログラム等を記憶する処理等の中断又は再開を行ってもよい。
【００７５】
（実施形態３）
図５は、実施形態３に係る車載更新システムＳの構成を示す模式図である。図６は、実施形態３に係る制御部２０の処理を示すフローチャートである。実施形態３に係る車載更新装置２の制御部２０は、第１車載ＥＣＵ３の現プログラム等を、第２車載ＥＣＵ５の記憶部５１に記憶する点において、実施形態１と異なる。以下では、主にかかる相違点を説明する。
【００７６】
車載更新システムＳは、実施形態１と同様に車外通信装置１、車載更新装置２、第１車載ＥＣＵ３を含み、更に第２車載ＥＣＵ５を含む。
【００７７】
第２車載ＥＣＵ５は、記憶部５１、制御部５０及び車内通信部５２を含む。記憶部５１は、ＲＡＭ（Random Access Memory）等の揮発性のメモリ素子又は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、当該第２車載ＥＣＵ５のプログラム又はデータが記憶されている。
【００７８】
記憶部５１の記憶容量は、プログラム又はデータを記憶するための容量に加え、更にプログラム又はデータのバックアップを記憶するための容量を含む。従って、記憶部５１は、当該プログラム又はデータが記憶されている記憶領域に加え、当該プログラム又はデータをバックアップするための記憶領域（バックアップ領域）を有している。
【００７９】
制御部５０は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等により構成してあり、記憶部５１に予め記憶されたプログラム及びデータを読み出して実行して制御処理等を行い、当該第２車載ＥＣＵ５を含む車載機器又はアクチュエータ等が制御される。詳細は後述するが、制御部５０は、車載更新装置２から送信された第１車載ＥＣＵ３の現プログラム等を記憶部５１のバックアップ領域に記憶する。
【００８０】
車内通信部５２は、車載更新装置２の車内通信部２３と同様の機能を有し、車内ＬＡＮ４４を介して車載更新装置２等と相互に通信する。
【００８１】
Ｓ３１からＳ３４の処理は、実施形態１のＳ１１からＳ１４の処理と同様であるため説明を省略する。また、Ｓ３４以降の処理は、実施形態１におけるＳ１４以降の処理と同様であるため、説明を省略する。
【００８２】
制御部２０は、第１車載ＥＣＵ３の制御部３０の負荷、第２車載ＥＣＵ５の制御部５０の負荷、又はこれら車載ＥＣＵと通信するための車内ＬＡＮ４のネットワーク負荷等の負荷を検出する（Ｓ３１１）。第２車載ＥＣＵ５の負荷は、実施形態１における第１車載ＥＣＵ３の負荷と同様に検出する。
【００８３】
制御部２０は、実施形態１と同様に負荷が所定値以下であるかの判定を行う（Ｓ３１２）。検出した負荷が所定値以下でない場合（Ｓ３１２：ＮＯ）、すなわち検出した負荷が所定値よりも大きい場合、再度Ｓ３１１の処理を実行すべく、ループ処理を行う。
【００８４】
検出した負荷が所定値以下である場合（Ｓ３１２：ＹＥＳ）、制御部２０は、第１車載ＥＣＵ３から、第１車載ＥＣＵ３に現在適用されているプログラム等（現プログラム等）を取得し、取得した現プログラム等を、第２車載ＥＣＵ５に送信する（Ｓ３１３）。第２車載ＥＣＵ５は、送信された現プログラム等を受信し、当該現プログラム等を第２車載ＥＣＵ５の記憶部５１におけるバックアップ領域に記憶するように構成されている。
【００８５】
制御部２０は、第２車載ＥＣＵ５と通信することによって、第２車載ＥＣＵ５の記憶部５１（バックアップ領域）に現プログラム等が記憶されたことを確認する（Ｓ３１４）。
【００８６】
制御部２０は、実施形態１と同様にＳ３３からＳ３５の処理を実行する。Ｓ３５の処理において、更新処理が正常に終了しなかった場合（Ｓ３５：ＮＯ）、制御部２０は、第２車載ＥＣＵ５から現プログラム等を取得し、第１車載ＥＣＵ３に現プログラム等を送信する（Ｓ３５１）。
【００８７】
制御部２０は、実施形態１のＳ１６，Ｓ１５３，Ｓ１５２２と同様にプログラム提供装置Ｓ１に通知等を行った後、第２車載ＥＣＵ５の記憶部５１に記憶されている現プログラム等を消去する（Ｓ３７）。制御部２０は、第２車載ＥＣＵ５と通信し、第２車載ＥＣＵ５に対し現プログラム等を消去する指示を出力する。第２車載ＥＣＵ５は、制御部２０の指示に基づいて、記憶部５１のバックアップ領域に記憶されている現プログラム等を消去する。
【００８８】
第２車載ＥＣＵ５の記憶部５１におけるバックアップ領域に、更新対象となる第１車載ＥＣＵ３の現プログラム等を記憶することによって、車載更新装置２の記憶部２１の記憶領域が逼迫することを抑制することができる。
【００８９】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９０】
Ｃ  車両
Ｓ  車載更新システム
Ｓ１  プログラム提供装置（提供装置）
１  車外通信装置
１１  車外通信部
１２  車内通信部
２  車載更新装置（中継装置、ＣＧＷ）
２０  制御部（受信部、取得部、送信部、負荷検出部、削除部）
２１  記憶部
２２  記録媒体
２３  車内通信部
３  第１車載ＥＣＵ（車載ＥＣＵ）
３０  制御部
３１  記憶部
３２  車内通信部
４  車内ＬＡＮ（車内ネットワーク）
５  第２車載ＥＣＵ
５０  制御部
５１  記憶部（バックアップ領域）
５２  車内通信部
【図１】
2019105945.tif 000003
【図２】
2019105945.tif 000004
【図３】
2019105945.tif 000005
【図４】
2019105945.tif 000006
【図５】
2019105945.tif 000007
【図６】
2019105945.tif 000008