(57)【要約】【課題】車載制御装置のプログラムの更新を行うにあたり、自装置の記憶部の記憶容量が不足することを防止することができる車載更新装置を提供する。【解決手段】車載更新装置は、車外の外部サーバから送信される更新プログラムを取得し、車載制御装置のプログラムを更新する車載更新装置であって、記憶部と制御部とを備え、前記記憶部は、前記更新プログラムが記憶されるものであり、前記制御部は、更新対象の車載制御装置への前記更新プログラムの送信を制御するものであり、前記制御部は、前記外部サーバから前記更新プログラムを取得する場合、前記記憶部に記憶されている退避データのデータ種別に基づき、前記退避データを前記外部サーバ又は、前記更新対象の車載制御装置以外の非更新対象の車載制御装置に送信し、送信した前記退避データが記憶されていた前記記憶部の領域に前記外部サーバから取得した前記更新プログラムの少なくとも一部を記憶する。【選択図】図２
2020152154.tif 000002
【特許請求の範囲】
【請求項１】
車外の外部サーバから送信される更新プログラムを取得し、車両に搭載される車載制御装置のプログラムを更新するための処理を行う車載更新装置であって、記憶部と制御部とを備え、
前記記憶部は、前記更新プログラムが記憶されるものであり、
前記制御部は、更新対象の車載制御装置への前記更新プログラムの送信を制御するものであり、
前記制御部は、前記外部サーバから前記更新プログラムを取得する場合、前記記憶部に記憶されている退避データのデータ種別に基づき、前記退避データを前記外部サーバ又は、前記更新対象の車載制御装置以外の非更新対象の車載制御装置に送信し、
送信した前記退避データが記憶されていた前記記憶部の領域に前記外部サーバから取得した前記更新プログラムの少なくとも一部を記憶する
車載更新装置。
【請求項２】
前記外部サーバに送信する退避データは、前記非更新対象の車載制御装置に送信する退避データよりも、自装置又は前記車両における重要度が低い
請求項１に記載の車載更新装置。
【請求項３】
前記記憶部には、前記退避データのデータ種別夫々と重要度夫々とが関連付けて記憶されている
請求項２に記載の車載更新装置。
【請求項４】
前記制御部は、
前記更新プログラムを取得する前に前記更新プログラムのデータ総容量を前記外部サーバから取得し、
前記記憶部の空き容量及び前記外部サーバに送信する退避データのデータ総容量の合計値が、前記更新プログラムのデータ総容量よりも小さい場合、前記外部サーバに送信する退避データ以外の退避データを前記非更新対象の車載制御装置に送信する
請求項１から請求項３のいずれか１項に記載の車載更新装置。
【請求項５】
前記制御部は、
前記更新プログラムを取得する前に前記更新プログラムのデータ総容量を前記外部サーバから取得し、
前記記憶部の空き容量、前記外部サーバに送信する退避データのデータ総容量及び前記非更新対象の車載制御装置に送信する退避データの合計値が、前記更新プログラムのデータ総容量よりも大きい場合、前記退避データのデータ種別に基づき、前記退避データを前記外部サーバ及び前記非更新対象の車載制御装置に送信する
請求項１から請求項４のいずれか１項に記載の車載更新装置。
【請求項６】
前記制御部は、
前記外部サーバから前記更新プログラムの取得中に、前記退避データを前記外部サーバに送信し、
前記更新プログラムの取得中における前記記憶部の空き容量が、所定値以下となった場合、前記外部サーバに送信する退避データ以外の退避データを前記非更新対象の車載制御装置に送信する
請求項１から請求項３のいずれか１項に記載の車載更新装置。
【請求項７】
前記車両には、複数の前記車載制御装置が搭載されており、
前記複数の車載制御装置夫々と通信するための車内通信部を複数個備え、
前記制御部は、異なる前記車内通信部夫々に接続される前記非更新対象の車載制御装置夫々へ、前記退避データの送信を並行して行う
請求項１から請求項６のいずれか１項に記載の車載更新装置。
【請求項８】
コンピュータに、
記憶部に記憶されている退避データのデータ種別に基づき、前記退避データを外部サーバ又は、車両に搭載される更新対象の車載制御装置以外の非更新対象の車載制御装置に送信し、
送信した前記退避データが記憶されていた前記記憶部の領域に、前記外部サーバから取得した更新プログラムを記憶し、
記憶した前記更新プログラムを前記更新対象の車載制御装置へ送信する
処理を実行させるための更新処理プログラム。
【請求項９】
記憶部に記憶されている退避データのデータ種別に基づき、前記退避データを外部サーバ又は、車両に搭載される更新対象の車載制御装置以外の非更新対象の車載制御装置に送信し、
送信した前記退避データが記憶されていた前記記憶部の領域に、前記外部サーバから取得した更新プログラムを記憶し、
記憶した前記更新プログラムを前記更新対象の車載制御装置へ送信する
プログラムの更新方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載更新装置、更新処理プログラム及び、プログラムの更新方法に関する。
【背景技術】
【０００２】
車両には、エンジン制御等のパワー・トレーン系、エアコン制御等のボディ系等の車載機器を制御するための車載ＥＣＵ（Electronic Control 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）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラム及び処理時に参照するデータがあらかじめ記憶してある。記憶部２１に記憶された制御プログラムは、車載更新装置２が読み取り可能な記録媒体２２から読み出された制御プログラムを記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部２１に記憶させたものであってもよい。更に、記憶部２１には、車両Ｃに搭載される全ての車載ＥＣＵ３の構成情報（車両構成情報）、外部サーバＳ１から取得した更新プログラム、及び車載ＥＣＵ３に更新プログラムを送信する際の進捗状況に関する情報（更新処理のログデータ）が、記憶される。更に、記憶部２１には、車内ＬＡＮに流れる通信のログデータ、車両における異常発生時に車内ＬＡＮに流れている全データ（フリーズフレームデータ）を含む退避データが、記憶される。
【００３９】
記憶部２１に記憶される車載ＥＣＵ３夫々の構成情報（車両構成情報）例えば、車載ＥＣＵ３の製造番号（シリアル番号）、ＥＣＵ部番（型番）、Ｓｏｆｔｗａｒｅ部番、プログラムの現バージョン、旧バージョン、動作面数、動作面、ＭＡＣ（Media Access Control）アドレス、ＩＰアドレス、前回更新完了日時、リプロステータス及びＶＩＮ（車両識別番号）を含む。また、車載ＥＣＵ３がＣＡＮによって接続される場合、車載ＥＣＵ３の構成情報は、当該車載ＥＣＵ３がメッセージを送信する際に用いる（含める）ＣＡＮ−ＩＤを含むものであってよい。これら車両構成情報は、個々の車載ＥＣＵ３において重複しないように設定された連番等によるＥＣＵ−ＩＤに関連付けられて管理され、例えばテーブル形式のデータとして記憶部２１に記憶される。制御部２０は、車両の起動及び停止を行うＩＧスイッチがオン又はオフにされた場合等の所定のタイミングにて、定常的に車両Ｃに搭載されている全ての車載ＥＣＵ３又は特定の車載ＥＣＵ３から、車載ＥＣＵ３夫々の構成情報を取得し、記憶部２１に記憶する。又、車両構成情報には、車載ＥＣＵ３夫々の記憶部３１の記憶容量及び現時点における空き容量が含まれるものであってもよい。記憶部２１に記憶されている車両構成情報に含まれる車載ＥＣＵ３の製造番号（シリアル番号）、ＥＣＵ部番（型番）、動作面数、動作面、記憶容量及び現時点における空き容量に基づいて、制御部２０は、車載ＥＣＵ３のハードウェア構成を認識し、当該車載ＥＣＵ３の記憶部３１の非動作面、記憶容量及び現時点における空き容量を導出することができる。
【００４０】
制御部２０は、記憶部２１に記憶されている制御プログラムを実行することにより、外部サーバＳ１から送信された更新プログラムを、車外通信装置１を介して取得する更新プログラム取得部に相当する。制御部２０は、記憶部２１に記憶されている制御プログラムを実行することにより、外部サーバＳ１から送信された更新情報（キャンペーンデータ）に基づき、外部サーバＳ１から取得する更新プログラムのデータ総容量を導出するデータ総容量導出部に相当する。制御部２０は、記憶部２１に記憶されている制御プログラムを実行することにより、外部サーバＳ１又は非更新対象の車載ＥＣＵ３に送信することができる退避データの容量（退避可能データ容量）夫々を導出する退避データ容量導出部に相当する。制御部２０は、記憶部２１に記憶されている制御プログラムを実行することにより、導出した更新プログラムのデータ総容量と、現状における自装置の記憶部２１の空き容量とに基づき、外部サーバＳ１又は非更新対象の車載ＥＣＵ３への退避データの送信の要否を判定する判定部に相当する。制御部２０は、記憶部２１に記憶されている制御プログラムを実行することにより、判定部の判定結果に基づき退避データを外部サーバＳ１又は非更新対象の車載ＥＣＵ３へ送信する退避データ送信部に相当する。制御部２０は、記憶部２１に記憶されている制御プログラムを実行することにより、外部サーバＳ１から取得した更新プログラムを、更新対象の車載ＥＣＵ３に送信する更新プログラム送信部に相当する。
【００４１】
車内通信部２３は、ＣＡＮ（Control Area Network）又はＥｔｈｅｒｎｅｔ（登録商標）等の通信プロトコルを用いた入出力インターフェイスであり、制御部２０は、車内通信部２３を介して車内ＬＡＮ４に接続されている車載ＥＣＵ３又は他の中継装置等の車載機器と相互に通信する。車内通信部２３は、複数個（図面上では３つ）設けられており、車内通信部２３夫々に、車内ＬＡＮ４を構成する通信線（ＣＡＮバス又はＥｔｈｅｒｎｅｔケーブル）が接続されている。このように車内通信部２３を複数個設けることにより、車内ＬＡＮ４は複数個のセグメントに分けられ、各セグメント夫々に車載ＥＣＵを、当該車載ＥＣＵの機能（制御系機能、安全系機能、ボディ系機能）に応じて接続する。又は、車両Ｃが自動運転機能（認知系機能、判断系機能、操作系機能）を有する場合、車載ＥＣＵ３は、当該車載ＥＣＵ３の機能（認知系機能、判断系機能、操作系機能）に応じて各セグメントに接続されるものであってもよい。
【００４２】
車載ＥＣＵ３は、制御部３０、記憶部３１及び車内通信部３２を含む。記憶部３１は、ＲＡＭ（Random Access Memory）等の揮発性のメモリ素子又は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、車載ＥＣＵ３のプログラム又はデータが記憶されている。このプログラム又はデータが、車載更新装置２から送信される更新プログラムによって更新される対象である。
【００４３】
記憶部３１は、第１記憶領域（第１面）３１１及び第２記憶領域（第２面）３１２を含む。記憶部３１には、現状において車載ＥＣＵ３が実行（適用）しているプログラム（現バージョン）及び、現バージョンの以前に適用されていたプログラム（旧バージョン）の２つのプログラムが記憶されている。これら現バージョンのプログラムと、旧バージョンのプログラムとは、第１記憶領域３１１又は第２記憶領域３１２のいずれかの記憶領域に分かれて、記憶されている。すなわち、第１記憶領域３１１に現バージョンのプログラムが記憶されている場合、第２記憶領域３１２に旧バージョンのプログラムが記憶されている。第１記憶領域３１１に旧バージョンのプログラムが記憶されている場合、第２記憶領域３１２に現バージョンのプログラムが記憶されている。このように現バージョン及び旧バージョンの２つのプログラムを、所謂２面持ちとして記憶することにより、万が一現バージョンのプログラムに問題が生じた場合であっても、制御部３０は、以前に適用して正常に動作していた旧バージョンのプログラムを読み込み実行する（切替える）ことで、車載ＥＣＵ３（２面持ちの車載ＥＣＵ３）の信頼性を担保することができる。
【００４４】
記憶部３１には、現バージョン及び旧バージョンの２つのプログラム夫々のバージョンに関する情報、及び現在実行（適用）しているプログラムが記憶されている領域（動作面）に関する情報が記憶されている。すなわち、現状において第１記憶領域（第１面）３１１に記憶されているプログラムを実行している場合、記憶部３１には、動作面は第１記憶領域（第１面）３１１であると記憶される。現状において第２記憶領域（第２面）３１２に記憶されているプログラムを実行している場合、記憶部３１には、動作面は第２記憶領域（第２面）３１２であると記憶される。記憶部３１には、プログラム（現バージョン及び旧バージョン）のバージョン情報及び動作面に関する情報を含め、自ＥＣＵの構成情報と、車載更新装置２から更新プログラムを受信する際の進捗状況に関する情報とが、記憶される。
【００４５】
制御部３０は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等により構成してあり、記憶部３１（動作面）に記憶されたプログラム及びデータを読み出し実行して制御処理等を行い、当該車載ＥＣＵ３を含む車載機器又はアクチュエータ等が制御される。
【００４６】
車載ＥＣＵ３の制御部３０は、車載更新装置２から送信される更新プログラムを、車内通信部３２を介して受信し、当該更新プログラムを取得する。従って、車載ＥＣＵ３の制御部３０は、外部サーバＳ１から送信された更新プログラムを、車外通信装置１及び車載更新装置２を介して取得する。制御部３０は、取得した更新プログラムを、動作面でない記憶領域（第１記憶領域３１１又は第２記憶領域３１２）に記憶する。すなわち、制御部３０は、車載更新装置２から送信された更新プログラムを取得するにあたり、当該取得の準備処理として、動作面でない記憶領域（非動作面）に記憶されているプログラムを削除する。通常、動作面でない記憶領域に記憶されているプログラムは、現バージョンのプログラムの以前に実行された旧バージョンのプログラムであるため、車載ＥＣＵ３における車載装置への制御機能を停止させることなく、当該旧バージョンを削除することができる。制御部３０は、動作面でない記憶領域（非動作面）に記憶されている旧バージョンのプログラムを削除し、車載更新装置２から送信された更新プログラムを、当該非動作面に記憶する。
【００４７】
車載ＥＣＵ３の制御部３０は、更新プログラムの受信を正常終了した後、動作面の切替えを行い、受信した更新プログラムを現バージョンのプログラムとして適用して実行する。車載ＥＣＵ３の制御部３０は、更新プログラムの受信を正常終了し、動作面の切替えを正常に行った場合、プログラムの更新が完了（正常終了）したことを記憶部３１に記憶し、更に車載更新装置２に送信（通知）する。動作面の切替えが正常に行われた場合、制御部３０は、プログラムの更新が完了（正常終了）したと判定するため、当該判定の精度を担保することができる。
【００４８】
又は、車載ＥＣＵ３の制御部３０は、更新プログラムの受信を正常終了し動作面の切替えを行った後、当該車載ＥＣＵ３の機能に基づいた自己診断処理を行う。車載ＥＣＵ３の機能に基づいた自己診断処理を行うための自己診断処理プログラムは、車載ＥＣＵ３夫々の記憶部に３１に予め記憶されている。又は、自己診断処理プログラムは、更新プログラムに含まれ、更新プログラムと一緒に車載更新装置２から送信されるものであってもよい。
【００４９】
制御部３０は、切替えた更新プログラムに対する自己診断処理の結果が正常である場合、プログラムの更新が完了（正常終了）したことを記憶部３１に記憶し、更に車載更新装置２に送信（通知）してもよい。自己診断処理の結果が正常である場合、制御部３０は、プログラムの更新が完了（正常終了）したと判定するため、当該判定の精度を更に向上させることができる。
【００５０】
又は、車載ＥＣＵ３の制御部３０は、更新プログラムの受信を正常終了し動作面の切替えを行う前に、非動作面の記憶領域に記憶されている更新プログラムに対し、自己診断処理を行い、更新プログラムに対する自己診断処理の結果が正常である場合、プログラムの更新が完了（正常終了）したことを記憶部３１に記憶し、更に車載更新装置２に送信（通知）する。更新プログラムの受信を正常終了し動作面の切替えを行う前、すなわち更新プログラムを適用する前に、制御部３０は、非動作面の記憶領域に記憶されている更新プログラムに対し自己診断処理を行うため、車載ＥＣＵ３が現在実行している車載装置に対する制御機能の動作に影響を与えることなく、更新プログラムによる更新の正否について判定することができる。
【００５１】
車載ＥＣＵ３の制御部３０は、更新プログラムへの切替えが失敗した場合、又は更新プログラムに対する自己診断処理の結果が異常である場合、ロールバック処理、すなわち更新プログラムの前バージョン（旧バージョン）のプログラムが記憶されている非動作面の記憶領域を、動作面の記憶領域として切替え（ロールバック）、当該前バージョンのプログラムを実行（適用）する。車載ＥＣＵ３の制御部３０は、更新プログラムへの切替えが失敗した場合、又は更新プログラムに対する自己診断処理の結果が異常である場合、更新が失敗（異常終了）したことを記憶部３１に記憶し、更に車載更新装置２に送信（通知）してもよい。
【００５２】
更新プログラムの前バージョンのプログラムは、更新プログラムが送信される際に実行していたプログラムであるため、動作実績を有するプログラムである。従って、制御部３０は、更新プログラムの更新に失敗した場合であっても、ロールバック処理を行うことにより、動作実績を有するプログラムに戻して（動作面を切替え）、当該プログラムを実行するため、車載装置に対する制御機能を継続することができる。
【００５３】
車載ＥＣＵ３の制御部３０による更新プログラムによる更新の成否の判定は、当該更新プログラムへの切替え（動作面の切替え）又は自己診断処理の結果に基づき判定するものとしたが、これに限定されない。車載ＥＣＵ３の制御部３０は、更新プログラムに切替え当該更新プログラムを実行した後、例えば、所定期間の経過、車両Ｃの累積動作時間、トリップ回数、又は運転距離等が所定値以上となるまでの間に、当該更新プログラムに起因する異常を検知しなかった場合、更新は成功したと判定してもよい。
【００５４】
表示装置５は、例えばカーナビゲーションのディスプレイ等のＨＭＩ（Human Machine Interface）装置である。表示装置５は、車載更新装置２の入出力Ｉ／Ｆ２４とシリアルケーブル等のハーネスにより通信可能に接続されている。表示装置５には、車載更新装置２の制御部２０から入出力Ｉ／Ｆ２４を介して出力されたデータ又は情報が表示される。表示装置５と車載更新装置２との接続形態は、入出力Ｉ／Ｆ２４等による接続形態に限定されず、表示装置５と車載更新装置２とは、車内ＬＡＮ４を介した接続形態であってもよい。
【００５５】
図３は、記憶部２１に記憶される退避データの一態様を例示する説明図である。図３においては、退避データとして外部サーバＳ１又は車載ＥＣＵ３に送信される各種データに対し、当該データの重要度、データ種別及び送信先となる退避場所（送信先）を設定したデータを表形式（テーブル形式）で例示したものである。
【００５６】
車載更新装置２の記憶部２１には、上述のごとく、自装置の制御を行うための制御プログラム又はデータに加え、車載ＥＣＵ３夫々から取得した車載構成情報、及び車載ＥＣＵ３の更新処理に関する更新プログラムが記憶されている。更に、車載更新装置２の記憶部２１には、車両Ｃの動作状態に関する各種ログデータ、すなわち動作状態を示す情報が時系列のデータとして記憶されている。
【００５７】
車載更新装置２が外部サーバＳ１又は非更新対象に車載ＥＣＵ３に送信する退避データは、主には車両Ｃの動作状態に関する各種ログデータにより構成される。図３に示すごとく、退避データとして取り扱われる各種ログデータは、例えばフリーズフレームデータ、更新処理のログデータ及び通信のログデータを含む。
【００５８】
車載更新装置２の制御部２０は、車載ＥＣＵ３間の通信の中継制御をするにあたり、これら車載ＥＣＵ３夫々から送信されたデータを受信し、当該データに含まれる故障異常コードを抽出し、記憶部２１に記憶する。車載更新装置２の制御部２０は、制御プログラムを実行することにより、例えば、自装置の自己診断機能（ＯＢＤ／On-board diagnostics）を発揮し、自己診断の診断結果に基づき出力した故障異常コードを自装置の動作状態に関するログデータとして、記憶部２１に記憶する。車載更新装置２の制御部２０は、これら故障異常コードを記憶した場合、その時点において車内ＬＡＮ４に流れているＣＡＮメッセージ又はイーサネットフレーム等のデータを取得し、当該データをフリーズフレームデータとして記憶部２１に記憶する。車載更新装置２の制御部２０は、更新対象の車載ＥＣＵ３に更新プログラムを送信し、当該車載ＥＣＵ３の更新処理（リプロ処理）を行った際の処理履歴を更新処理のログデータとして記憶部２１に記憶する。車載更新装置２の制御部２０は、車載ＥＣＵ３間の通信の中継制御をするにあたり、各セグメントにおける単位時間あたりの送受信データ量、トラフィック量、各メッセージ種別の送受信数等の通信のログデータを記憶部２１に記憶する。
【００５９】
車載更新装置２の記憶部２１に記憶された各種ログデータ等による退避データは、車載更新装置２の使用又は車両Ｃの走行等に対する重要度が設定されており、当該重要度に基づき、送信先（退避場所）が決定されている。重要度が低度の退避データは外部サーバＳ１に送信され、重要度が中度の退避データは非更新対象の車載ＥＣＵ３に送信される。すなわち、外部サーバＳ１に送信される退避データは、非更新対象の車載ＥＣＵ３に送信される退避データよりも、車載更新装置２又は車両Ｃにとって、重要度が低いデータとなる。このように車載更新装置２又は車両Ｃにとって重要度が比較的に高い退避データを、車両Ｃ内（自車内）に退避することにより、当該退避データを確実に保存することができる。
【００６０】
車両Ｃの動作状態に関する各種ログデータであっても、例えば故障異常コード、セキュリティ情報等の車載更新装置２を使用するにあたり重要なデータは、退避不可のデータとして、外部サーバＳ１又は非更新対象に車載ＥＣＵ３への送信を禁止するものであってもよい。
【００６１】
退避データは、車両Ｃの動作状態に関する各種ログデータであるとして説明したが、これに限定されない。車載更新装置２の制御部２０は、自装置の記憶部２１に記憶されている種々データにおいて、当該データの重要度に基づき、外部サーバＳ１又は非更新対象の車載ＥＣＵ３のいずれかの退避場所（送信先の装置）へ、当該データを退避データとして送信し、退避するものであってもよい。
【００６２】
図４は、車載更新装置２による更新の一態様を例示する説明図（シーケンス図）である。図４において、車載更新装置２が、更新プログラムを外部サーバＳ１から取得する際、自装置の記憶部２１に記憶されている退避データを、外部サーバＳ１又は非更新対象の車載ＥＣＵ３に送信して、当該退避データを退避する処理に関し、外部サーバＳ１及び車載ＥＣＵ３の処理を含むシーケンス図を用いて説明する。
【００６３】
車載更新装置２は、更新情報（キャンペーン情報）を取得する（Ｓ１）。車載更新装置２は、例えば定常的、定期的に又は、車両Ｃを起動するＩＧスイッチがオンにされた場合、外部サーバＳ１にアクセスし、自車に搭載される車載ＥＣＵ３の更新の要否に関する更新情報の有無を確認し、更新情報があれば当該更新情報を外部サーバＳ１から取得する。当該更新情報には、例えば、更新対象の車載ＥＣＵ３の型番、プログラムのバージョン、プログラムを含むアーカイブファイルのファイル名及びサイズに関する情報が含まれる。当該更新情報には、車載更新装置２から外部サーバＳ１に送信することができる退避データの最大容量を含むものであってもよい。当該退避データの最大容量とは、車載更新装置２が退避データを保存場所として利用することができる外部サーバＳ１の記憶部Ｓ１１の記憶領域のサイズ（クォータ）を意味する。
【００６４】
車載更新装置２は、更新プログラムのデータ総容量を導出する（Ｓ２）。車載更新装置２は、取得した更新情報に基づき、更新プログラムのデータ総容量を導出する。更新プログラムが複数のファイルにより構成されている場合、更新プログラムのデータ総容量は、当該複数のファイルのサイズ（データ容量）の合計値であることは、言うまでもない。
【００６５】
車載更新装置２は、外部サーバＳ１に退避データを送信する（Ｓ３）。車載更新装置２は、記憶部２１を参照し、外部サーバＳ１に送信して退避することができる重要度の退避データを特定し、当該特定した退避データを外部サーバＳ１に送信する。当該特定は、図３に示すような、退避データのデータ種別を示すテーブルを参照して行うものであってもよい。
【００６６】
車載更新装置２は、非更新対象の車載ＥＣＵ３に退避データを送信する（Ｓ４）。車載更新装置２は、記憶部２１に記憶してある車載構成情報を参照し、退避データの送信先となる非更新対象の車載ＥＣＵ３を特定する。車載更新装置２は、例えば、２面持ちの車載ＥＣＵ３を抽出し、かつロールバック処理が不要であり非動作面に記憶されている前バージョンのプログラムを削除することができる車載ＥＣＵ３を、退避データの送信先となる非更新対象の車載ＥＣＵ３として特定するものであってもよい。車載更新装置２は、退避データの送信先として、単一の非更新対象の車載ＥＣＵ３を特定するものに限定されず、複数の非更新対象の車載ＥＣＵ３（非更新対象の車載ＥＣＵ３群）を特定するものであってもよい。
【００６７】
車載更新装置２は、複数の車載ＥＣＵ３を非更新対象の車載ＥＣＵ３群として特定する場合、これら複数の非更新対象の車載ＥＣＵ３夫々は、異なる車内通信部２３に接続されていることが望ましい。退避データの送信先となる非更新対象の車載ＥＣＵ３夫々を、異なる車内通信部２３に接続することにより、車載ＥＣＵ３夫々は別個のセグメントに接続されるものなる。従って、車載更新装置２は、異なる車内通信部２３に接続される車載ＥＣＵ３夫々へ、退避データを送信する処理を並行して行った場合であっても、各車載ＥＣＵ３が接続されるセグメントのトラフィックが増加することを抑制し、効率的に退避データを各車載ＥＣＵ３に送信することができる。
【００６８】
車載更新装置２は、記憶部２１を参照し、非更新対象の車載ＥＣＵ３に送信して退避することができる重要度の退避データを特定し、当該特定した退避データを非更新対象の車載ＥＣＵ３に送信する。上述のごとく、非更新対象の車載ＥＣＵ３に送信して退避することができる退避データは、外部サーバＳ１に送信して退避することができる退避データよりも、車載更新装置２又は車両Ｃにとって重要度が高いデータである。
【００６９】
外部サーバＳ１への送信及び非更新対象の車載ＥＣＵ３への送信は、順次に行われる場合に限定されず、車載更新装置２は、外部サーバＳ１及び非更新対象の車載ＥＣＵ３に対し、退避データ夫々を並行して送信するものであってもよい。
【００７０】
外部サーバＳ１は、自装置の記憶部Ｓ１１に退避データを記憶する（Ｓ５）。非更新対象の車載ＥＣＵ３は、自装置の記憶部３１（非動作面の記憶領域）に退避データを記憶する（Ｓ６）。外部サーバＳ１及び非更新対象の車載ＥＣＵ３が、車載更新装置２から送信された退避データを記憶することにより、これら退避データの退避が完了するものとなる。車載更新装置２から送信された全ての退避データの記憶を完了した外部サーバＳ１及び非更新対象の車載ＥＣＵ３は、送信された退避データの退避が完了した旨に関する情報を、車載更新装置２に出力（送信、通知）するものであってもよい。
【００７１】
車載更新装置２は、外部サーバＳ１又は非更新対象の車載ＥＣＵ３に送信した退避データを削除する（Ｓ７）。外部サーバＳ１又は、外部サーバＳ１及び非更新対象の車載ＥＣＵ３への退避データの送信を完了した車載更新装置２は、当該送信を完了した退避データを削除する。当該退避データを削除することにより、車載更新装置２の記憶部２１における空き容量を増加させることができる。
【００７２】
車載更新装置２は、更新プログラムを取得し（Ｓ８）、送信した退避データが記憶されていた記憶領域に記憶する（Ｓ９）。車載更新装置２は、退避データを削除することにより確保した空き領域（記憶領域）又は、退避データを削除することにより確保した空き領域及び退避データを削除する前の空き領域に、外部サーバＳ１から取得（受信）した更新プログラムを記憶する。更新プログラムを記憶する記憶領域は、退避データを削除することにより確保した空き領域としたが、これに限定されない。車載更新装置２は、退避データを削除することなく、退避データが記憶されている記憶領域に、更新プログラムを上書きして記憶するものであってもよい。
【００７３】
車載更新装置２は、更新プログラムを更新対象の車載ＥＣＵ３に送信する（Ｓ１０）。車載更新装置２は、自装置の記憶部２１に記憶されている更新プログラムを更新対象の車載ＥＣＵ３に送信し、以降、当該更新対象の車載ＥＣＵ３に対し、更新処理を開始するための更新処理開始信号を出力するものであってもよい。
【００７４】
更新対象の車載ＥＣＵ３は、更新プログラムを記憶部３１の非動作面に記憶し（Ｓ１１）、所定のタイミングで更新プログラムへの切替を実施する。更新対象の車載ＥＣＵ３は、更新プログラムへの切替を実施し、更新処理（リプロ処理）が完了した場合、更新処理の完了に関する情報を車載更新装置２に出力（送信、通知）するものであってもよい。
【００７５】
車載更新装置２は、記憶部２１に記憶した更新プログラムを削除する（Ｓ１２）。車載更新装置２は、送信が完了した後、又は更新対象の車載ＥＣＵ３から更新処理の完了に関する情報を取得（受信）した場合、更新プログラムを削除する。
【００７６】
車載更新装置２は、外部サーバＳ１及び更新対象の車載ＥＣＵ３から退避したデータを取得する（Ｓ１３，１４）。車載更新装置２は、更新プログラムの削除により確保した記憶部２１の空き領域に、退避先となった外部サーバＳ１、又は外部サーバＳ１及び非更新対象の車載ＥＣＵ３から取得した退避データを記憶する。
【００７７】
図５は、車載更新装置２の制御部２０の処理を例示するフローチャートである。車載更新装置２の制御部２０は、車両Ｃが起動状態（ＩＧスイッチがオン）又は、停止状態（ＩＧスイッチがオフ）であっても車載更新装置２の蓄電装置（図示せず）の充電量が所定値以上である場合、車外通信装置１を介して定常的又は定期的にプログラム提供装置と通信し、以下の処理を行う。
【００７８】
車載更新装置２の制御部２０は、更新情報を取得する（Ｓ１０１）。制御部２０は、車外通信装置１を介して外部サーバＳ１と定期的に通信して更新情報の有無を確認し、更新情報があれば、外部サーバＳ１から取得する。
【００７９】
車載更新装置２の制御部２０は、更新プログラムのデータ総容量を導出する（Ｓ１０２）。制御部２０は、例えば、取得した更新情報に含まれる更新プログラムのデータ総容量を抽出し、当該データ総容量を導出する。
【００８０】
車載更新装置２の制御部２０は、データ総容量は、記憶部２１の空き容量よりも小さいか否かを判定する（Ｓ１０３）。制御部２０は、自装置の記憶部２１の空き容量を確認し、導出したデータ総容量と、空き容量とを比較し、データ総容量は、記憶部２１の空き容量よりも小さいか否かを判定する。
【００８１】
データ総容量が記憶部２１の空き容量よりも小さい場合（Ｓ１０３：ＹＥＳ）、車載更新装置２の制御部２０は、更新プログラムを取得し、記憶する（Ｓ１０４）。取得する更新プログラムのデータ総容量が記憶部２１の空き容量よりも小さい場合、退避データを削除することなく、制御部２０は、当該更新プログラムを記憶（保存）することができる。
【００８２】
車載更新装置２の制御部２０は、更新プログラムを更新対象の車載ＥＣＵ３に送信する（Ｓ１０５）。更新プログラムを取得（受信）した更新対象の車載ＥＣＵ３は、所定のタイミングで当該更新プログラムを適用し、更新処理を実行する。
【００８３】
データ総容量が記憶部２１の空き容量よりも小さくない場合（Ｓ１０３：ＮＯ）、すなわちデータ総容量が記憶部２１の空き容量よりも大きい場合、車載更新装置２の制御部２０は、データ総容量は記憶部２１の空き容量及び外部サーバＳ１に退避できる容量の合計値よりも小さいか否かを判定する（Ｓ１０６）。制御部２０は、例えば、取得した更新情報に含まれる外部サーバＳ１における使用可能な記憶領域の容量（外部サーバＳ１に送信することができる退避データの最大容量）を抽出する。又は、制御部２０は、外部サーバＳ１と通信し、外部サーバＳ１における使用可能な記憶領域の容量を取得するものであってもよい。制御部２０は、当該外部サーバＳ１における使用可能な記憶領域の容量を、外部サーバＳ１に退避できる容量として、記憶部２１の空き容量及び外部サーバＳ１に退避できる容量の合計値を算出し、データ総容量と比較する。
【００８４】
データ総容量は記憶部２１の空き容量及び外部サーバＳ１に退避できる容量の合計値よりも小さい場合（Ｓ１０６：ＹＥＳ）、車載更新装置２の制御部２０は、退避データを外部サーバＳ１に送信し、削除する（Ｓ１０７）。更新プログラムのデータ総容量が、記憶部２１の空き容量及び外部サーバＳ１に退避できる容量の合計値よりも小さい場合、非更新対象の車載ＥＣＵ３に退避データを送信することは不要である。従って、制御部２０は、退避データを外部サーバＳ１に送信し、送信が完了した退避データを削除する。
【００８５】
データ総容量が記憶部２１の空き容量及び外部サーバＳ１に退避できる容量の合計値よりも小さくない場合（Ｓ１０６：ＮＯ）、車載更新装置２の制御部２０は、データ総容量は、記憶部２１の空き容量、外部サーバＳ１及び非更新対象の車載ＥＣＵ３への退避量の合計値よりも小さいか否かを判定する（Ｓ１０６１）。データ総容量が記憶部２１の空き容量及び外部サーバＳ１に退避できる容量の合計値よりも小さくない場合、すなわちデータ総容量が記憶部２１の空き容量及び外部サーバＳ１に退避できる容量の合計値よりも大きい場合、外部サーバＳ１に送信した退避データを削除しても、更新プログラムの全データを記憶するための記憶領域を確保できない。そこで、制御部２０は、例えば、記憶部２１に記憶してある車載構成情報を参照し、退避データの送信先として利用できる２面持ちの非更新対象の車載ＥＣＵ３を特定する。制御部２０は、単数又は複数の非更新対象の車載ＥＣＵ３を特定してもよい。制御部２０は、車載構成情報を参照し、又は特定した非更新対象の車載ＥＣＵ３夫々と通信することにより、非更新対象の車載ＥＣＵ３夫々の非動作面の記憶部３１の記憶容量を取得する。制御部２０は、取得した記憶容量夫々の合計値に基づき、非更新対象の車載ＥＣＵ３への退避量の合計値を算出し、データ総容量と比較する。
【００８６】
データ総容量は、記憶部２１の空き容量、外部サーバＳ１及び非更新対象の車載ＥＣＵ３への退避量の合計値よりも小さい場合（Ｓ１０６１：ＹＥＳ）、車載更新装置２の制御部２０は、退避データを外部サーバＳ１及び非更新対象の車載ＥＣＵ３に送信し、削除する（Ｓ１０６２）。更新プログラムのデータ総容量が、記憶部２１の空き容量、外部サーバＳ１及び非更新対象の車載ＥＣＵ３への退避量の合計値よりも小さい場合、外部サーバＳ１及び非更新対象の車載ＥＣＵ３へ退避データを退避（送信し、削除）することにより、更新プログラムの全データを記憶するための記憶領域を確保できる。
【００８７】
データ総容量が、記憶部２１の空き容量、外部サーバＳ１及び非更新対象の車載ＥＣＵ３への退避量の合計値よりも小さくない場合（Ｓ１０６１：ＮＯ）、車載更新装置２の制御部２０は、更新プログラムを取得し更新対象の車載ＥＣＵ３に送信する一連の処理を終了（中止）する。更新プログラムのデータ総容量が、記憶部２１の空き容量、外部サーバＳ１及び非更新対象の車載ＥＣＵ３への退避量の合計値よりも小さくない場合、すなわちデータ総容量が当該合計値よりも大きい場合、退避データの記憶領域を用いても、更新プログラムの全データを記憶するための記憶領域を確保できない。従って、制御部２０は、更新プログラムを取得及び当該更新プログラムを更新対象の車載ＥＣＵ３に送信する一連の処理を中止する。制御部２０は、当該一連の処理を中止した旨に関する情報を記憶部２１に記憶し、外部サーバＳ１、表示装置５又は双方に出力するものであってもよい。更新プログラムの取得等に関する一連の処理を中止した旨に関する情報を、車両Ｃの操作者又は外部サーバＳ１の管理者に報知することができる。
【００８８】
車載更新装置２の制御部２０は、Ｓ１０７又はＳ１０６２の処理の実行後、Ｓ１０４の処理と同様に更新プログラムを取得し、記憶する（Ｓ１０８）。更新プログラムが記憶される記憶部２１の領域は、送信した退避データが記憶されていた領域又は、退避データを送信する前の空き領域（Ｓ１０３の処理における空き容量に対応する空き領域）及び送信した退避データが記憶されていた領域となる。すなわち、制御部２０は、更新プログラムの少なくとも一部又は全部を、送信した退避データが記憶されていた領域に記憶する。
【００８９】
車載更新装置２の制御部２０は、Ｓ１０５の処理と同様に更新プログラムを更新対象の車載ＥＣＵ３に送信する（Ｓ１０９）。
【００９０】
車載更新装置２の制御部２０は、更新プログラムを削除する（Ｓ１１０）。車載更新装置２の制御部２０は、送信した退避データを取得する（Ｓ１１１）。制御部２０は、更新プログラムを削除することにより確保した記憶部２１の空き領域に、外部サーバＳ１又は、外部サーバＳ１及び非更新対象の車載ＥＣＵ３に送信（退避）した退避データを記憶することができる。
【００９１】
車載更新装置２の制御部２０は、Ｓ１０５又はＳ１１１の処理を行った後、本フローチャートの処理を終了する。又は、制御部２０は、Ｓ１０５又はＳ１１１の処理を行った後、再度Ｓ１０１の処理を実行すべくループ処理を行うものであってもよい。
【００９２】
車載更新装置２の制御部２０は、本フローチャートの処理における判定（Ｓ１０３、Ｓ１０６、Ｓ１０６１）に関する判定結果を記憶部２１に記憶し、表示装置５又は外部サーバＳ１に出力し、これら情報を車両Ｃの操作者又は外部サーバＳ１の管理者に報知するものであってもよい。
【００９３】
本実施形態において、車載更新装置２の制御部２０は、一連の各処理を行うものとして記載したが、これに限定されない。車載更新装置２の制御部２０は、例えば車載ＥＣＵ３又は外部サーバＳ１等の車載更新装置２以外の装置との間でプロセス間通信又はリダイレクト処理を行い、これら装置と協働して当該各処理を行うものであってもよい。又は、車載更新装置２の制御部２０は、自装置に含まれるＦＰＧＡ又はＡＳＩＣ等の回路により構成されるハードウェア処理部と協働して当該各処理を行うものであってもよい。
【００９４】
車載更新装置２は、外部サーバＳ１から更新プログラムを取得する際、記憶部２１の空き領域の容量が、更新プログラムのデータ総容量よりも小さい場合であっても、記憶部２１に記憶されている退避データを外部サーバＳ１又は非更新対象の車載ＥＣＵ３に送信して退避することにより、更新プログラムを記憶することができる。従って、車載更新装置２に含まれる記憶部２１の記憶容量が増大することを抑制し、記憶部２１を構成するための部品コストを低減することができる。
【００９５】
車載更新装置２は、退避データを外部サーバＳ１又は非更新対象の車載ＥＣＵ３に送信して退避する際、退避データの重要度に応じて、送信先を決定する。外部サーバＳ１に送信する退避データの重要度は、非更新対象の車載ＥＣＵ３に送信する退避データの重要度よりも低いため、重要度が比較的に高い退避データは、自車両Ｃ内となる非更新対象の車載ＥＣＵ３に送信されるものとなり、確実な保存を図ることができる。
【００９６】
車載更新装置２の記憶部２１の空き容量を確保するにあたり、まずは優先度が比較的に低い退避データを外部サーバＳ１に送信するため、重要度が比較的に高い退避データを不必要に退避することを抑制することができる。
【００９７】
車載更新装置２は、退避データの送信先として複数の非更新対象の車載ＥＣＵ３と特定し、当該複数の非更新対象の車載ＥＣＵ３夫々は、異なる車内通信部２３に接続され、異なるセグメントに接続される。従って、車載更新装置２が、これら複数の非更新対象の車載ＥＣＵ３夫々に同時に退避データを送信する、すなわちこれら車載ＥＣＵ３夫々へ送信処理を並行して行う場合であっても、特定のセグメントのトラフィックが増加することを抑制し、当該送信処理を短時間で行うことができる。異なる車内通信部２３に接続された車載ＥＣＵ３夫々へ送信処理を並行して行うことにより、これら通信部及びセグメントにて決定される個々の帯域幅（送信速度）の合計値を、車載更新装置２から車載ＥＣＵ３夫々へ送信する際の実質的な帯域幅として使用することができる。
【００９８】
（実施形態２）
図６は、実施形態２に係る車載更新装置２の制御部２０の処理を例示するフローチャートである。実施形態２に係る車載更新装置２の制御部２０は、外部サーバＳ１から更新プログラムの取得中に退避データを外部サーバＳ１に送信し、現時点における記憶部２１の空き容量が所定値以下となった場合、外部サーバＳ１に送信する退避データ以外の退避データを非更新対象の車載制御装置に送信する点で実施形態１と異なる。
【００９９】
実施形態２の車載更新装置２の制御部２０は、実施形態１の車載更新装置２の制御部２０と同様に車両Ｃが起動状態（ＩＧスイッチがオン）又は、停止状態（ＩＧスイッチがオフ）であっても車載更新装置２の蓄電装置（図示せず）の充電量が所定値以上である場合、車外通信装置１を介して定常的又は定期的にプログラム提供装置と通信し、以下の処理を行う。
【０１００】
車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１０１、Ｓ１０２、Ｓ１０３）と同様に、Ｓ２０１、Ｓ２０２及びＳ２０３の処理を行う。
【０１０１】
データ総容量が記憶部２１の空き容量よりも小さい場合（Ｓ２０３：ＹＥＳ）、車載更新装置２の制御部２０は、実施形態１の処理（Ｓ１０４，Ｓ１０５）と同様に、車載更新装置２の制御部２０は、更新プログラムを取得及び記憶し（Ｓ２０４）、更新プログラムを更新対象の車載ＥＣＵ３に送信する（Ｓ２０５）。
【０１０２】
データ総容量が記憶部２１の空き容量よりも小さくない場合（Ｓ２０３：ＮＯ）、車載更新装置２の制御部２０は、更新プログラムを取得し、記憶する（Ｓ２０６）。制御部２０は、実施形態１の処理（Ｓ１０８）と同様に、Ｓ２０６の処理を行う。更に、車載更新装置２の制御部２０は、退避データをサーバに送信し、削除する（Ｓ２０７）。制御部２０は、実施形態１の処理（Ｓ１０７）と同様に、Ｓ２０７の処理を行う。更に、車載更新装置２の制御部２０は、更新プログラムの取得中における現時点での記憶部２１の空き容量は、所定値以下か否かの判定を行う（Ｓ２０８）。車載更新装置２の制御部２０は、データ総容量が記憶部２１の空き容量よりも小さくない場合、すなわちデータ総容量が記憶部２１の空き容量よりも大きい場合、Ｓ２０６、Ｓ２０７及びＳ２０８の処理を並行して行う。
【０１０３】
制御部２０は、これらＳ２０６、Ｓ２０７及びＳ２０８の処理を並行して行うにあたり、例えば、メインプロセスからサブプロセスを２つ発生させ、これら３つのプロセスにおいてプロセス間通信を行うことにより、処理の同期を図るものであってもよい。制御部２０が複数のＣＰＵ又はコアにより構成されるマルチＣＰＵ又はマルチコアである場合、制御部２０は、これら３つを別個のＣＰＵ又はコアで実行させるものであってもよい。
【０１０４】
外部サーバＳ１からの更新プログラムの取得、すなわち外部サーバＳ１からの更新プログラムの送信（転送、ダウンロード）は、当該更新プログラムのファイルが所定のサイズに分割されたブロック単位で行われる。従って、更新プログラムの取得の処理が開始された後、時刻の経過に伴って、取得したブロックの数は増加し、これらブロック夫々のデータサイズの合計値、すなわち取得途中の更新プログラムのデータ量は増加し、記憶部２１の空き領域が減少する。
【０１０５】
外部サーバＳ１に送信する退避データは、個々のログデータを記憶する際に生成された複数のファイルから構成されている。車載更新装置２の制御部２０は、退避データを構成する複数のファイル夫々を、順次に外部サーバＳ１に送信し、送信が完了したファイルを順次に削除する。従って、退避データの外部サーバＳ１への送信が開始された後、時刻の経過に伴って、送信が完了したファイルを順次に削除することにより、記憶部２１の空き領域が増加する。
【０１０６】
車載更新装置２の制御部２０は、更新プログラムの取得及び退避データの送信を並行処理することにより、更新プログラムの取得による記憶部２１の空き領域が減少しても、送信が完了した退避データのファイルを削除することによって、更新プログラムを記憶するための記憶領域を確保することができる。しかしながら、外部サーバＳ１における使用可能な記憶領域の容量に制限があり、又は外部サーバＳ１に送信できる重要度が比較的に低い退避データの総容量が、更新プログラムの総容量よりも小さい場合など、外部サーバＳ１への退避だけでは、更新プログラムを記憶するための記憶領域を確保することができない場合がある。そこで、車載更新装置２の制御部２０は、自装置の記憶部２１における現時点の空き容量を確認する処理を、更新プログラムの取得及び退避データの送信の処理に並行して継続的に実行する。すなわち、制御部２０は、更新プログラムの取得及び退避データの送信の処理の実行中において、記憶部２１の空き容量を監視する処理を行う。
【０１０７】
車載更新装置２の制御部２０は、記憶部２１の空き容量を継続的に監視し、現時点の記憶部２１の空き容量が所定値以下でない場合（Ｓ２０８：ＮＯ）、再度Ｓ２０８の処理を実行することにより、記憶部２１の空き容量を監視及び所定値以下となったかの判定する処理を継続する。
【０１０８】
車載更新装置２の制御部２０は、記憶部２１の空き容量を継続的に監視し、現時点の記憶部２１の空き容量が所定値以下となった場合（Ｓ２０８：ＹＥＳ）、制御部２０は、実施形態１の処理（Ｓ１０６２）と同様に退避データを非更新対象の車載ＥＣＵ３に送信し、送信が完了した退避データを削除する（Ｓ２０９）。所定値とは、例えば車載更新装置２の記憶部２１の記憶容量に対する割合で決定され、当該記憶容量の１０％として決定することができ、当該所定値は、車載更新装置２の記憶部２１に記憶されている。又は、制御部２０は、当該所定値を例えば１００Ｍｂｙｔｅとして、記憶部２１に記憶してもよい。
【０１０９】
車載更新装置２の制御部２０は、Ｓ２０６、Ｓ２０７及びＳ２０９の処理の実行後、実施形態１の処理（Ｓ１０９，Ｓ１１０、Ｓ１１１）と同様に、Ｓ２１０、Ｓ２１１及びＳ２１２の処理を行う。Ｓ２０８の処理において、現時点の記憶部２１の空き容量が所定値以下でない状態（Ｓ２０８：ＮＯ）が継続した場合、制御部２０は、Ｓ２０８の処理（記憶部２１の空き容量を監視及び判定）を継続（ループ処理）するものとなる。これに対し、制御部２０は、更新プログラムの全データ（全ブロック）を取得して記憶部２１に記憶した後、Ｓ２０８の処理を中断（Ｓ２０８の処理を行うサブプロセスを終了）させるものであってもよい。
【０１１０】
車載更新装置２の制御部２０は、実施形態１と同様に、Ｓ２０５又はＳ２１２の処理を行った後、本フローチャートの処理を終了する。又は、制御部２０は、Ｓ２０５又はＳ２１２の処理を行った後、再度Ｓ２０１の処理を実行すべくループ処理を行うものであってもよい。
【０１１１】
車載更新装置２の制御部２０は、本フローチャートの処理における判定（Ｓ２０３、Ｓ２０８）に関する判定結果を記憶部２１に記憶し、表示装置５又は外部サーバＳ１に出力し、これら情報を車両Ｃの操作者又は外部サーバＳ１の管理者に報知するものであってもよい。
【０１１２】
車載更新装置２は、外部サーバＳ１から更新プログラムの取得中に退避データを外部サーバＳ１に送信、すなわち更新プログラムの取得する処理及び退避データを外部サーバＳ１に送信する処理を並行（並行処理）して行う。従って、更新プログラムの取得のための準備作業を不要とし、更新対象の車載ＥＣＵ３の更新の一連の処理の所要時間を短縮することができる。
【０１１３】
車載更新装置２は、更に記憶部２１の空き容量を監視する処理も、更新プログラムの取得する処理及び退避データを外部サーバＳ１に送信する処理に並行して行い、かつ当該空き容量に基づき非更新対象の車載ＥＣＵ３に退避データへの送信の要否を判定する。そして、非更新対象の車載ＥＣＵ３に退避データへの送信が要と判定した場合、車載更新装置２は、更新プログラムの取得する処理、退避データを外部サーバＳ１に送信する処理、及び退避データを非更新対象の車載ＥＣＵ３に送信する処理を並行して行う。従って、更新プログラムを取得するにあたり、当該更新プログラムを記憶するための領域を確保するための時間を短縮することができる。
【０１１４】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本開示の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１５】
Ｃ  車両
Ｓ  車載更新システム
Ｓ１  外部サーバ
Ｓ１１  記憶部
１  車外通信装置
１１  車外通信部
１２  入出力Ｉ／Ｆ
１３  アンテナ
２  車載更新装置
２０  制御部
２１  記憶部
２２  記録媒体
２３  車内通信部
２４  入出力Ｉ／Ｆ
３  車載ＥＣＵ（車載制御装置）
３０  制御部
３１  記憶部
３１１  第１記憶領域（第１面）
３１２  第２記憶領域（第２面）
３２  車内通信部
４  車内ＬＡＮ
５  表示装置
【図１】
2020152154.tif 000003
【図２】
2020152154.tif 000004
【図３】
2020152154.tif 000005
【図４】
2020152154.tif 000006
【図５】
2020152154.tif 000007
【図６】
2020152154.tif 000008