(57)【要約】【課題】リプロを行う場合に、ユーザの不便さを解消することができるプログラム更新装置、プログラム更新システム、プログラム更新方法、およびプログラム更新プログラムを提供すること。【解決手段】実施形態に係るプログラム更新装置は、取得部と、判定部と、更新部とを備える。取得部は、車両の制御プログラムを取得する。判定部は、制御プログラムを実行する車両の制御装置に制御プログラムの書き込みを行う前に、車両の制御装置に対してチェックを行い制御プログラムの更新が正常に行えるか否かを判定する。更新部は、判定部によって更新が正常に行えると判定される場合に、制御装置によって記憶されている制御プログラムを取得部によって取得される制御プログラムに更新する。【選択図】図１
2020004245.tif 000002
【特許請求の範囲】
【請求項１】
車両の制御プログラムを取得する取得部と、
前記制御プログラムを実行する前記車両の制御装置に前記制御プログラムの書き込みを行う前に、前記車両の制御装置に対してチェックを行い前記制御プログラムの更新が正常に行えるか否かを判定する判定部と、
前記判定部によって前記更新が正常に行えると判定される場合に、前記制御装置によって記憶されている制御プログラムを前記取得部によって取得される前記制御プログラムに更新する更新部と
を備えることを特徴とするプログラム更新装置。
【請求項２】
前記判定部は、
前記チェックとして、前記制御装置の記憶部の複数個所に分散して設けられたテストエリアへ正常に情報を書き込めるか否かの書き込み試験を行う
ことを特徴とする請求項１に記載のプログラム更新装置。
【請求項３】
前記判定部によるチェックで前記記憶部が前記制御プログラムの更新が正常に行える状態でないと判定された場合に、前記制御プログラムの提供装置へ前記制御装置の異常を通知する通知部
を備えることを特徴とする請求項２に記載のプログラム更新装置。
【請求項４】
前記判定部は、
前記車両の状況が前記制御プログラムの更新を完遂できる状況か否かを判定し、完遂できると判定した場合に、前記チェックを行う
ことを特徴とする請求項１〜３のいずれか一つに記載のプログラム更新装置。
【請求項５】
前記判定部は、
前記車両に搭載されるバッテリ残量が所定量以上の場合に、前記更新を完遂できる状況であると判定する
ことを特徴とする請求項４に記載のプログラム更新装置。
【請求項６】
前記取得部は、
前記車両周辺の天候に関する情報を取得し、
前記判定部は、
前記車両周辺の天候が前記制御プログラムの更新に適した天候である場合に、前記更新を完遂できる状況であると判定する
ことを特徴とする請求項４または請求項５に記載のプログラム更新装置。
【請求項７】
前記取得部は、
前記車両の停車位置を取得し、
前記判定部は、
前記停車位置が前記更新に要する時間以上の停車が予想される位置である場合に、前記更新を完遂できる状況であると判定する
ことを特徴とする請求項４〜６のいずれか一つに記載のプログラム更新装置。
【請求項８】
前記取得部は、
無線で車両の前記制御プログラムをセンタから取得する
ことを特徴とする請求項１〜７のいずれか一つに記載のプログラム更新装置。
【請求項９】
車両の制御プログラムを提供する提供装置と、
前記提供装置から前記制御プログラムを取得する取得部と、
前記制御プログラムを実行する前記車両の制御装置に前記制御プログラムの書き込みを行う前に、前記車両の制御装置に対してチェックを行い前記制御プログラムの更新が正常に行えるか否かを判定する判定部と、
前記判定部によって前記更新が正常に行えると判定される場合に、前記制御装置によって記憶されている制御プログラムを前記取得部によって取得される前記制御プログラムに更新する更新部と
を備えるプログラム更新装置と
を含むことを特徴とするプログラム更新システム。
【請求項１０】
コンピュータが実行するプログラム更新方法であって、
車両の制御プログラムを取得する取得工程と、
前記制御プログラムを実行する前記車両の制御装置に前記制御プログラムの書き込みを行う前に、前記車両の制御装置に対してチェックを行い前記制御プログラムの更新が正常に行えるか否かを判定する判定工程と、
前記判定工程によって前記更新が正常に行えると判定される場合に、前記制御装置によって記憶されている制御プログラムを前記取得工程によって取得される前記制御プログラムに更新する更新工程と
を含むことを特徴とするプログラム更新方法。
【請求項１１】
車両の制御プログラムを取得する取得手順と、
前記制御プログラムを実行する前記車両の制御装置に前記制御プログラムの書き込みを行う前に、前記車両の制御装置に対してチェックを行い前記制御プログラムの更新が正常に行えるか否かを判定する判定手順と、
前記判定手順によって前記更新が正常に行えると判定される場合に、前記制御装置によって記憶されている制御プログラムを前記取得手順によって取得される前記制御プログラムに更新する更新手順と
をコンピュータに実行させることを特徴とするプログラム更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、プログラム更新装置、プログラム更新システム、プログラム更新方法、およびプログラム更新プログラムに関する。
【背景技術】
【０００２】
従来、車載装置に新たな車両制御機能を追加する場合や、車両制御の不具合を解消する場合に、車載装置に記憶された車両の制御プログラムを最新の制御プログラムに更新するプログラム更新装置がある（例えば、特許文献１参照）。
【０００３】
プログラム更新装置は、例えば、車両の所有者によって整備工場へ持ち込まれる車両の車載装置とコネクタを介して有線で接続された状態で制御プログラムの更新、所謂リプログラミング（以下、「リプロ」と記載する）を行うことが一般的である。
【０００４】
また、近年では、車両を整備工場に持ち込まなくても、車載装置と、例えば、インターネット等の通信ネットワークを介して接続し、ユーザが車両を使用している合間に、無線通信によって遠隔地から車載装置に対してリプロを行うプログラム更新装置がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−１０３１５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
無線通信によってリプロを行う等、車両を整備工場に持ち込まれていない状態でリプロを行うプログラム更新装置は、基本的にユーザが車両を使用している合間の、車両のエンジンが停止され、且つイグニッションスイッチがＯＮにされた状態にあるときにリプロを行う。
【０００７】
このため、例えば、リプロを行う際の電源ＯＮ／ＯＦＦをユーザが実施する必要がある車両の場合、リプロを行う間、ユーザに車内に居てもらいリプロ完了後にイグニッションスイッチをＯＦＦしてもらう必要があり、例えば、リプロに失敗して再度リプロを試行することになると、ユーザを長時間車内に拘束することになる。
【０００８】
また、例えば、リプロを行う際の電源ＯＮ／ＯＦＦを自動で実施することが可能な車両の場合でも、リプロに失敗して再度リプロを試行することになると、ユーザが車両を使用したいと思っても使用できない状態が長時間続くことになる。
【０００９】
実施形態の一態様は、上記に鑑みてなされたものであって、リプロを行う場合に、ユーザの不便さを解消することができるプログラム更新装置、プログラム更新システム、プログラム更新方法、およびプログラム更新プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施形態の一態様に係るプログラム更新装置は、取得部と、判定部と、更新部とを備える。取得部は、車両の制御プログラムを取得する。判定部は、前記制御プログラムを実行する前記車両の制御装置に前記制御プログラムの書き込みを行う前に、前記車両の制御装置に対してチェックを行い前記制御プログラムの更新が正常に行えるか否かを判定する。更新部は、前記判定部によって前記更新が正常に行えると判定される場合に、前記制御装置によって記憶されている制御プログラムを前記取得部によって取得される前記制御プログラムに更新する。
【発明の効果】
【００１１】
実施形態の一態様に係るプログラム更新装置、プログラム更新システム、プログラム更新方法、およびプログラム更新プログラムは、リプロを行う場合に、ユーザの不便さを解消することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施形態に係るプログラム更新方法の概要を示す説明図である。
【図２】図２は、実施形態に係るプログラム更新システムの構成の一例を示す説明図である。
【図３】図３は、実施形態に係る仮リプロ判定の説明図である。
【図４】図４は、実施形態に係るリプロ機能試験の手順の一例を示す説明図である。
【図５】図５は、実施形態に係る仮リプロ失敗処置の説明図である。
【図６】図６は、実施形態に係るプログラム更新装置の制御部が実行する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して、プログラム更新装置、プログラム更新システム、プログラム更新方法、およびプログラム更新プログラムの実施形態を詳細に説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【００１４】
図１は、実施形態に係るプログラム更新方法の概要を示す説明図である。図１（ａ）に示すように、例えば、車両Ｃのメーカが運営するセンタＢは、車両Ｃに新たな車両制御機能を追加する場合や、車両制御の不具合を解消する必要がある場合に、プログラム提供装置１０によって車両の最新の制御プログラムを提供する。
【００１５】
車両Ｃに搭載されるプログラム更新装置１は、無線通信を介してセンタ等に設けられているプログラム提供装置１０から最新の制御プログラムを取得する（ステップＳ１）。プログラム更新装置１は、車両Ｃに搭載される複数の制御装置（以下、「ＥＣＵ：Electronic  Control  Unit」２と記載する）に記憶されている制御プログラムを、取得した最新の制御プログラムに書き換えて更新する。以下では、制御プログラムの書き換え処理、所謂リプログラミングを略してリプロと称する。
【００１６】
このように、プログラム更新装置１は、無線通信によってプログラム提供装置１０から最新の制御プログラムを取得してＥＣＵのリプロを行うので、ユーザが車両Ｃをメーカやディーラ、整備工場等へ持ち込まなくても任意の場所でリプロが可能である。
【００１７】
ただし、プログラム更新装置１は、リプロの実行に電力が必要であり、例えば、エンジンＥＣＵのリプロを行う場合には、エンジンが停止されている必要がある。このため、プログラム更新装置１は、車両Ｃのエンジンが停止され、且つイグニッションスイッチ（以下、「ＩＧ」と記載する）がＯＮにされた状態でリプロを行う。
【００１８】
したがって、車両Ｃのユーザは、リプロが完了してＩＧをＯＦＦにするまで車両Ｃを離れることができないので、この間、車両Ｃ内に拘束されることになる。このとき、プログラム更新装置１は、何等かの内的要因または外的要因によってリプロを完遂することができなかった場合、リプロを再試行する。
【００１９】
かかる場合、プログラム更新装置１は、ユーザを長時間車両Ｃ内に拘束することになり、ユーザに不便を掛けることになる。そこで、図１（ｂ）に示すように、プログラム更新装置１は、リプロを実行する前に、ＥＣＵ２が正常にリプロを行うことができるか否かの仮リプロ判定を行う（ステップＳ２）。
【００２０】
このとき、プログラム更新装置１は、仮リプロ判定として、車両Ｃがリプロを完遂できる状況か否かの判定、およびＥＣＵ２のリプロ機能が正常か否かの判定を行う。ここでの仮リプロ判定は、本番のリプロを開始する前に行う、リプロが正常に行えるかをチェックする事前チェック処理ともいえる。なお、仮リプロ判定の具体例については、図３および図４を参照して後述する。
【００２１】
そして、プログラム更新装置１は、仮リプロ判定の結果、リプロ実行可能と判定した場合に限り（ステップＳ３）、図１（ｃ）に示すように、ＥＣＵ２のリプロを実行する（ステップＳ４）。
【００２２】
これにより、プログラム更新装置１は、リプロが正常に完遂できないような場合には、リプロを行うことがないので、リプロの中断や失敗によるリプロの再試行を行うことがない。したがって、プログラム更新装置１は、リプロを行う場合に、ユーザの拘束時間を短縮することによって不便さを解消することができる。
【００２３】
また、リプロを行う際の電源ＯＮ／ＯＦＦを自動で実施することが可能な車両では、プログラム更新装置１は、ユーザ操作によるＩＧスイッチがＯＦＦされても、リプロ要求がある場合には、ＩＧの電源ラインをＩＧスイッチと並列で設けられたリレーで保持してリプロ対象のＥＣＵに電源供給する。リプロが完了するとリレーをＯＦＦして電源ＯＦＦ状態に移行する。
【００２４】
かかる構成の場合にも、プログラム更新装置１は、リプロが正常に完遂できないような場合にリプロを行うことがないので、リプロに失敗してリプロを再試行することにより、ユーザが車両を使用したいときに使用できない状態となることを防止することができる。
【００２５】
また、プログラム更新装置１は、図１（ｂ）に示すように、リプロ実行不可能と判定した場合（ステップＳ５）、仮リプロ失敗処置を行う。例えば、プログラム更新装置１は、ＥＣＵ２のリプロ機能が異常をきたしており、リプロ実行不可能と判定した場合には、図１（ｄ）に示すように、ＥＣＵ２の異常をプログラム提供装置１０へ通知する（ステップＳ６）。なお、仮リプロ失敗処置の具体例については、図４を参照して後述する。
【００２６】
このように、プログラム更新装置１は、仮リプロ判定を行うことによって、例えば、ＥＣＵ２の異常を早期に発見することができるので、ＥＣＵ２の異常による事故の発生を未然に防止することができる。
【００２７】
また、センタＢは、プログラム更新装置１からＥＣＵ２の異常が通知された場合、例えば、異常があることや異常への対処を車両Ｃに設けられたランプやディスプレイ等を用いて報知したり、また、車両ＣのＥＣＵ２に問題があることをディーラへ連絡し、ディーラから車両Ｃのユーザへ車両Ｃの点検を勧めたりすることができる。これにより、センタＢは、ＥＣＵ２の異常による事故の発生を未然に防止することができる。
【００２８】
次に、図２を参照し、実施形態に係るプログラム更新システム１００の構成の一例について説明する。図２は、実施形態に係るプログラム更新システム１００の構成の一例を示す説明図である。図２に示すように、プログラム更新システム１００は、プログラム提供装置１０と、車両Ｃに搭載されるプログラム更新装置１とを含む。
【００２９】
プログラム更新装置１とプログラム提供装置１０とは、例えば、インターネット等の通信ネットワークＮを介して双方向に無線通信可能に接続される。また、車両Ｃには、カーナビゲーション装置（以下、「カーナビ５」と記載する）、ＢＭＳ（Battery  Management  System）６、および複数のＥＣＵ２が搭載される。
【００３０】
カーナビ５は、例えば、車両Ｃのユーザによって入力される目的地までの経路案内を行う装置である。カーナビ５は、地図情報を記憶しており、ＧＰＳ（Global  Positioning  System）によって車両Ｃの停車位置を含む地図情報をプログラム更新装置１へ出力する。
【００３１】
また、カーナビ５は、通信ネットワークＮを介して天候情報提供装置と接続し、天候情報提供装置から車両Ｃの停車位置における天候情報を取得する機能を備える。天候情報には、天気、気温、および湿度等の情報が含まれる。カーナビ５は、取得した天候情報をプログラム更新装置１へ出力する。
【００３２】
ＢＭＳ６は、車両Ｃに搭載されるバッテリの充放電状態を監視する装置である。ＢＭＳ６は、バッテリに充電されている電力の残量（以下、「バッテリ残量」と記載する）を示す情報をプログラム更新装置１へ出力する。なお、プログラム更新装置１は、ＢＭＳ６によって監視されるバッテリを電源として動作する。
【００３３】
各ＥＣＵ２は、制御部２１と、記憶部２２とを備える。記憶部２２は、例えば、書き替え可能な不揮発性メモリであるデータフラッシュ等の情報記憶デバイスであり、制御プログラム２３を記憶する。制御部２１は、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）などを有するマイクロコンピュータや各種の回路を含む。
【００３４】
制御部２１は、ＣＰＵが記憶部２２に記憶された制御プログラムを実行することによって、各ＥＣＵ２が制御を担当する制御対象の動作制御を行う。ＥＣＵ２の制御対象は、例えば、エンジン、トランスミッション、ハイブリッドシステム、自動ブレーキ、および同一車線自動運転サポート等、多岐にわたる。なお、制御部２１は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェアで構成されてもよい。
【００３５】
プログラム更新装置１は、かかるＥＣＵ２が記憶している制御プログラムの更新が必要となった場合に、リプロの実施管理を行う装置である。プログラム更新装置１は、制御部３と記憶部４とを備える。
【００３６】
制御部３は、ＣＰＵ、ＲＯＭ、ＲＡＭなどを有するマイクロコンピュータや各種の回路を含む。制御部３は、ＣＰＵがＲＯＭに記憶されたプログラム更新プログラム（後述する制御プログラムの更新制御を行うためのプログラム）を、ＲＡＭを作業領域として使用して実行することにより機能する取得部３１、判定部３２、更新部３３、および通知部３４を備える。
【００３７】
なお、制御部３は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェアで構成されてもよい。記憶部４は、例えば、書き替え可能な不揮発性メモリであるデータフラッシュ等の情報記憶デバイスであり、最新制御プログラム４１と、試験情報４２とを記憶する。
【００３８】
最新制御プログラム４１は、ＥＣＵ２に実行させる最新の制御プログラムである。試験情報４２は、ＥＣＵ２のリプロ機能が正常か否かの試験が行われる場合に、ＥＣＵ２の記憶部２２に書込まれる試験用の情報である。
【００３９】
取得部３１は、プログラム提供装置１０から通信ネットワークＮを介して最新制御プログラム４１を取得し、取得した最新制御プログラム４１を記憶部４に記憶させる。また、取得部３１は、最新制御プログラム４１を記憶部４に記憶させたことを示す情報を判定部３２へ出力する。
【００４０】
また、取得部３１は、カーナビ５から車両Ｃの停車位置を含む地図情報と、車両Ｃの停車位置における天候情報を取得し、取得した地図情報および天候情報を判定部３２へ出力する。さらに、取得部３１は、ＢＭＳ６からバッテリ残量を示す情報を取得し、取得したバッテリ残量を示す情報を判定部３２へ出力する。
【００４１】
判定部３２は、取得部３１によって最新制御プログラム４１が取得された場合、または記憶部４に最新制御プログラム４１が記憶されている場合に、ＥＣＵ２の仮リプロ判定を行う。判定部３２は、仮リプロ判定を行うことによって、更新部３３がリプロを完遂できるか否かを判定する。
【００４２】
そして、更新部３３は、仮リプロ判定の結果、判定部３２によってリプロを完遂できると判定された場合に、ＥＣＵ２の記憶部２２に記憶されている制御プログラム２３を最新制御プログラム４１に書換えさせることによってリプロを実行する。
【００４３】
ここで、図３および図４を合わせて参照しながら、判定部３２が行う仮リプロ判定の具体例について説明する。図３は、実施形態に係る仮リプロ判定の説明図である。図４は、実施形態に係るリプロ機能試験の手順の一例を示す説明図である。
【００４４】
判定部３２は、図３に示す実施順序に従って、各項目についてのチェック（仮リプロ判定）を行う。判定部３２は、まず、実施順序１番目〜３番目までの各項目のチェック（リプロ実施の前提条件チェック）を行うことにより、車両Ｃの状況がリプロを完遂できる状況か否かを判定し、３項目のチェックで全て完遂できると判定した場合に、４番目のチェック（メモリ等のリプロ機能チェック）を行う。なお、１番目〜３番目までの項目のチェックの実施順序は、図３に記載の実施順序に限定されるものではない。
【００４５】
このように、判定部３２は、他のチェックよりも時間を要するメモリへの書き込みや読み出し等を行うリプロ機能チェックを他のチェック項目よりも後にすることで、無駄なリプロ機能チェックの実施を減らすことにより、リプロ実行不可と判定される場合のチェックに要する時間を短縮することができる。
【００４６】
そして、更新部３３は、４番目のチェックでリプロ実行可能条件を満たすと判定部３２によって判定される場合に、リプロを実行する。これにより、更新部３３は、１番目〜３番目までの項目のチェックで、いずれか一つでもリプロ実行可能条件が満たされない場合に、無駄に４番目のチェックを実行することを防止することができる。
【００４７】
また、更新部３３は、４番目の項目のチェックでリプロ実行可能条件が満たされない場、リプロを実行することがない。これにより、更新部３３は、リプロの完遂に失敗する可能性があるにも関わらず、リプロを実行した結果、リプロに失敗してリプロを再試行することにより、ユーザを長時間車両Ｃ内に拘束することを防止することができる。
【００４８】
具体的には、判定部３２は、仮リプロ判定を開始すると、まず、バッテリチェックを行う。ここでは、判定部３２は、バッテリチェックの実施項目に記載されているように、ＢＭＳ６から入力されるバッテリ残量を示す情報に基づいてバッテリ残量を確認する。
【００４９】
そして、判定部３２は、バッテリ残量がリプロ実施可能条件を満たすか否かを判定する。判定部３２は、リプロを完遂可能なバッテリ残量がある場合に、バッテリ残量がリプロ実施可能条件を満たし、リプロを完遂可能な状況であると判定する。
【００５０】
このため、更新部３３は、リプロを完遂するだけのバッテリ残量がない場合には、リプロを実行しない。これにより、更新部３３は、バッテリ残量不足により、リプロの完遂に失敗することを防止することができる。
【００５１】
続いて、判定部３２は、天候チェックを行う。ここでは、判定部３２は、天候チェックの実施内容に記載されているように、カーナビ５から天候情報（湿度を含む）を取得する。そして、判定部３２は、車両Ｃ周辺の天候がリプロ実施可能条件を満たすか否かを判定する。
【００５２】
判定部３２は、例えば、天候が晴れまたは曇り且つ湿度が閾値以下の場合に、リプロ実施可能条件を満たし、リプロに適した天候であるとしてリプロを完遂可能な状況であると判定する。
【００５３】
このため、更新部３３は、車両Ｃ周辺の天候がリプロに適した天候でない場合には、リプロを実行しない。これにより、更新部３３は、例えば、天候が雨や湿度が閾値よりも高い場合に、水滴による漏電や雷による電源瞬断等によってリプロの完遂に失敗することを防止することができる。
【００５４】
続いて、判定部３２は、ロケーションチェックを行う。ここでは、判定部３２は、ロケーションチェックの実施内容に記載されているように、カーナビ５から車両Ｃの停車位置を取得する。そして、判定部３２は、停車位置がリプロ実施可能条件を満たすか否かを判定する。
【００５５】
判定部３２は、停車位置がリプロに要する時間以上停車される位置である場合に、リプロ実施可能条件を満たし、リプロを完遂可能な状況であると判定する。このため、更新部３３は、例えば、車両Ｃが路上停車している場合や、コンビニエンスストア、駅、および高速道路のサービスエリアの駐車場等、比較的短時間で走行を再開する場所に停車している場合には、リプロを実行しない。
【００５６】
これにより、更新部３３は、リプロを開始した後、リプロを完遂する前に車両Ｃのエンジンが始動されてリプロの完遂に失敗することを防止することができる。判定部３２は、上記３項目のチェックで全てリプロ実施可能条件を満たすと判定した場合に、４項目目のリプロ機能チェックを行う。
【００５７】
ここでは、判定部３２は、リプロ機能チェックの実施内容に記載されているように、ＥＣＵのリプロ機能試験として、ＥＣＵ２の制御部２１によって記憶部２２への試験情報４２の書き込み、記憶部２２からの試験情報４２の読出しを行わせる。
【００５８】
このとき、判定部３２は、プログラム更新装置１の記憶部４から試験情報４２を読出して、ＥＣＵ２の制御部２１へ出力する。制御部２１は、判定部３２から入力される試験情報４２をＥＣＵ２の記憶部２２に書込み、その後、記憶部２２から書込んだ試験情報４２を読出し、判定部３２へ出力する。
【００５９】
そして、判定部３２は、リプロ機能試験の結果がリプロ実施可能条件を満たすか否かを判定する。判定部３２は、記憶部２２に書込むために予め用意された書込み用の試験情報４２と、この試験情報４２を記憶部２２に書込んだ後、記憶部２２から読み出した試験情報４２とが一致する場合に、リプロ実施可能条件を満たすと判定する。
【００６０】
このとき、判定部３２は、例えば、図４（ａ）に示すように、ＥＣＵ２の記憶部２２における制御プログラム２３が記憶される記憶領域の先頭、中盤、および末尾の３か所にＥＣＵ２の制御部２１によって試験領域２４ａ，２４ｂ，２４ｃを確保させる。
【００６１】
制御部２１は、制御プログラム２３（前半）の前、制御プログラム２３（前半）と制御プログラム２３（後半）との間、および制御プログラム（後半）の後に、試験領域２４ａ，２４ｂ，２４ｃを確保する。これら３つの試験領域２４ａ，２４ｂ，２４ｃは、制御プログラム２３の記憶領域としては使用されない領域である。
【００６２】
そして、制御部２１は、例えば、図４（ｂ）に示すように、先頭の試験領域２４ａにテスト００１、中盤の試験領域２４ｂにテスト００２、末尾の試験領域２４ｃにテスト００３という試験情報４２をそれぞれ書込む。その後、制御部２１は、各試験領域２４ａ，２４ｂ，２４ｃから書込んだ試験情報４２を読出してプログラム更新装置１の判定部３２へ出力する。
【００６３】
判定部３２は、図４（ｃ）に示すように、テスト００１，００２，００３（読出し）とテスト００１，００２，００３（書込み）とが全て一致する場合に、図４（ｄ）に示すように、リプロ機能を正常と判定する。
【００６４】
このように、判定部３２は、ＥＣＵ２が制御プログラム２３を記憶する記憶部２２へ正常に試験情報４２を書込めるか否か、つまり、リプロ機能が正常か否かのベリファイチェックを行う。これにより、判定部３２は、リプロが実行される前に、ＥＣＵ２の制御部２１の異常を早期に検知することができる。
【００６５】
なお、リプロ機能が正常か否かのチェック（メモリのチェック）方法は、上記した方法に限定されるものではない。メモリのチェック方法は、例えば、メモリへのデータの書き込み後に読み出したデータの合計値を確認するチェックサム方式等、一般的に知られている様々なメモリチェック方法を適用可能である。
【００６６】
また、メモリチェック方法として、制御プログラムを書き込む領域（現在使用中の制御プログラムが書き込まれた領域）に対する読み出しチェックを現在使用中の制御プログラムが書き込まれた領域の一部領域または全領域について行うようにしてもよい。
【００６７】
この方法での読み出しチェックは、チェック時の書き込みは行わず、予め領域にデータとともに誤り検出データ（パリティ等のデータ）を埋め込んでおき、読み出したデータを誤り検出データに基づいてチェックすることで異常検出する。
【００６８】
更新部３３は、リプロ機能が正常と判定されたことを示す判定結果が判定部３２から入力される場合に、リプロを実行する。このため、更新部３３は、リプロ機能が正常であることを示す判定結果が入力されない限りリプロを実行しない。これにより、更新部３３は、ＥＣＵ２の制御部２１に問題がある場合に、リプロを実行することによるＥＣＵ２の誤動作の発生を未然に防止することができる。
【００６９】
なお、判定部３２は、仮リプロ判定の４項目のチェックでリプロ実行可能条件が満たされなかった場合、その旨を示す判定結果を更新部３３へ出力する。更新部３３は、リプロ実行可能条件が満たされなかったことを示す判定結果が判定部３２から入力される場合に、仮リプロ失敗処置を行う。
【００７０】
ここで、図５を参照し、仮リプロ失敗処置の具体例について説明する。図５は、実施形態に係る仮リプロ失敗処置の説明図である。図５に示すように、更新部３３は、バッテリチェック、天候チェック、およびロケーションチェックのうち、いずれか一つでもリプロ実行可能条件が満たされなかった場合、仮リプロ失敗処置として、次回、車両ＩＧがＯＦＦされるまでリプロを延期する。
【００７１】
これにより、更新部３３は、リプロの完遂に失敗する可能性があるにも関わらず、リプロを実行した結果、リプロに失敗してリプロを再試行することにより、ユーザを長時間車両Ｃ内に拘束することを防止することができる。
【００７２】
また、リプロが延期されることで、次回、車両ＣのＩＧがＯＦＦされたときに、バッテリ残量、天候、およびロケーション等がリプロに適した状態になることも期待できる。したがって、更新部３３は、後に、バッテリ残量、天候、およびロケーション等がリプロに適した状態になった場合に、リプロを行うことによりリプロを正常に完遂することができる。
【００７３】
また、更新部３３は、リプロ機能チェックでリプロ実行可能条件が満たされなかった場合、ＥＣＵ２のリプロ機能が異常である旨を通知部３４によってプログラム提供装置１０へ通知させる。
【００７４】
これにより、プログラム提供装置１０が設置されているセンタＢは、車両Ｃのユーザへ車両Ｃの点検を勧める等の措置をとることによって、ＥＣＵ２の異常による事故の発生を未然に防止することができる。
【００７５】
なお、更新部３３は、リプロの完遂に成功した場合には、その旨を示す結果を通知部３４によってプログラム提供装置１０へ通知させる。これにより、センタＢでは、車両ＣのＥＣＵ２が最新制御プログラム４１を実行して動作していることを確認することができる。
【００７６】
次に、図６を参照し、実施形態に係るプログラム更新装置１の制御部３が実行する処理について説明する。図６は、実施形態に係るプログラム更新装置１の制御部３が実行する処理の一例を示すフローチャートである。
【００７７】
制御部３は、車両ＣからＩＧがＯＦＦにされることを示す情報が入力される場合に、図６に示す処理を実行する。具体的には、図６に示すように、制御部３は、まず、未取得の制御プログラム（最新制御プログラム４１）があるか否かを判定する（ステップＳ１０１）。
【００７８】
制御部３は、未取得の最新制御プログラム４１があると判定した場合（ステップＳ１０１，Ｙｅｓ）、最新制御プログラム４１をプログラム提供装置１０から取得して記憶部４に記憶させ（ステップＳ１０２）、処理をステップＳ１０３へ移す。
【００７９】
また、制御部３は、未取得の最新制御プログラム４１がないと判定した場合（ステップＳ１０１，Ｎｏ）、記憶部４に最新制御プログラム４１を記憶済であるか否かを判定する（ステップＳ１１２）。
【００８０】
制御部３は、最新制御プログラム４１を記憶済でないと判定した場合（ステップＳ１１２，Ｎｏ）、処理をステップＳ１１１へ移す。また、制御部３は、最新制御プログラム４１を記憶済であると判定した場合（ステップＳ１１２，Ｙｅｓ）、処理をステップＳ１０３へ移す。
【００８１】
ステップＳ１０３において、制御部３は、車両Ｃのバッテリ残量に問題なしか否かを判定する。制御部３は、バッテリ残量に問題ありと判定した場合（ステップＳ１０３，Ｎｏ）、処理をステップＳ１１１へ移す。
【００８２】
また、制御部３は、バッテリ残量に問題なしと判定した場合（ステップＳ１０３，Ｙｅｓ）、天候に問題なしか否かを判定する（ステップＳ１０４）。制御部３は、車両Ｃ周辺の天候に問題ありと判定した場合（ステップＳ１０４，Ｎｏ）、処理をステップＳ１１１へ移す。
【００８３】
また、制御部３は、天候に問題なしと判定した場合（ステップＳ１０４，Ｙｅｓ）、車両Ｃが停車しているロケーションに問題なしか否かを判定する（ステップＳ１０５）。制御部３は、ロケーションに問題ありと判定した場合（ステップＳ１０５，Ｎｏ）、処理をステップＳ１１１へ移す。
【００８４】
また、制御部３は、ロケーションに問題なしと判定した場合（ステップＳ１０５，Ｙｅｓ）、上記したリプロ機能チェックであるＥＣＵ２のリプロ機能試験を行う（ステップＳ１０６）。その結果、制御部３は、ＥＣＵ２のリプロ機能に問題なしか否かを判定する（ステップＳ１０７）。
【００８５】
制御部３は、リプロ機能に問題ありと判定した場合（ステップＳ１０７，Ｎｏ）、処理をステップＳ１１０へ移し、その旨をプログラム提供装置１０へ通知する。また、制御部３は、リプロ機能に問題なしと判定した場合（ステップＳ１０７，Ｙｅｓ）、車両Ｃのユーザへリプロを開始することを示すリプロ通知を行う（ステップＳ１０８）。
【００８６】
その後、制御部３は、リプロを実行してリプロを完遂させ（ステップＳ１０９）、リプロの完遂に成功した向けをプログラム提供装置１０へ通知する（ステップＳ１１０）。最後に、制御部３は、車両ＣのＩＧをＯＦＦにし（ステップＳ１１１）、処理を終了する。
【００８７】
なお、上述した実施形態では、プログラム更新装置１の制御部３は、図６に示すステップＳ１０８で車両Ｃのユーザへリプロを開始することを示すリプロ通知を行ってからリプロを実行したが、ユーザにリプロを希望するか否かを確認する処理を追加してもよい。
【００８８】
かかる場合、制御部３は、例えば、仮リプロ判定を開始する直前（図６に示すステップＳ１０３の直前）にユーザに確認してもよいし、仮リプロ判定で問題なしと判定した直後（図６に示すステップＳ１０８の直前）にユーザに確認してもよい。
【００８９】
前者の場合、制御部３は、ユーザがリプロを希望しなければ、その直後に車両ＣのＩＧをＯＦＦにする。これにより、制御部３は、ユーザを車両Ｃ内に拘束する時間を最短時間にすることができる。
【００９０】
一方、後者の場合、制御部３は、ユーザへリプロを希望するか否か確認する前に、仮りリプロ判定を完了しておくことができるため、ユーザがリプロを希望すれば、ユーザにとっての待ち時間がリプロを実行している時間だけになる。これにより、制御部３は、ユーザが感じるリプロの待ち時間を最小限に抑えることができる。
【００９１】
また、上述した実施形態では、制御部３は、図３に示す実施順序で仮リプロ判定を行ったが、リプロ機能チェックを行った後に、バッテリチェック、天候チェック、およびロケーションチェックを順次行ってもよい。
【００９２】
これにより、制御部３は、例えば、リプロ機能チェックでＥＣＵ２のリプロ機能に問題があると判定した場合、その後のバッテリチェック、天候チェック、およびロケーションチェックを行う必要がないので、処理負荷を低減することができる。
【００９３】
また、制御部３は、リプロ機能チェックを仮リプロ判定の最初に行うことによって、ＥＣＵ２のリプロ機能に問題がある場合、いち早くＥＣＵ２の異常を検出してプログラム提供装置１０へ通知することができる。
【００９４】
なお、制御部３は、リプロ機能チェックを行う場合、制御プログラム２３の先頭、中盤、末尾のプログラムが実際に記憶されている領域に試験情報４２を書込んでリプロ機能チェックを行ってもよい。
【００９５】
この際、制御部３が制御プログラム２３を使用しないで動作可能である場合には、制御部３は、ＥＣＵ２に記憶されている制御プログラム２３の先頭、中盤、末尾のプログラムを一旦、別の記憶領域に退避して記憶させてから、試験情報４２の書き込みを行わせてリプロ機能チェックを行う。
【００９６】
これにより、制御部３は、実際に制御プログラム２３が記憶され、リプロの際に最新制御プログラム４１が書込まれる領域を使用してリプロ機能チェックを行うことができるので、的確なリプロ機能チェックを行うことができる。
【００９７】
そして、制御部３は、リプロ機能チェックを行った後、退避させたプログラムを元の領域に戻す。また、制御部３が制御プログラム２３を使用しないでの動作が難しい場合には、制御プログラム２３を記憶している領域内に、予め制御プログラム２３が記憶されていない試験用の領域を設けておき、この領域に対して試験情報４２の書き込みを行わせてリプロ機能チェックを行ってもよい。
【００９８】
これにより、ＥＣＵ２は、例えば、次回、車両ＣのＩＧがＯＦＦにされるまで、制御プログラム２３を実行して、それまでどおりの動作を行うことができる。なお、制御部３は、仮リプロ判定の最初にリプロ機能チェックを行う場合であっても、リプロ機能に問題ありと判定する場合には、即座にプログラム提供装置１０へその旨を通知する。
【００９９】
また、上述した実施形態では、基本的に、ＥＣＵ２の記憶部２２内に、制御プログラム２３の記憶領域としては使用されない試験領域２４ａ，２４ｂ，２４ｃを確保しておく実施形態を説明したが、これも一例であり種々の変形が可能である。
【０１００】
例えば、制御部３は、ＥＣＵ２が２つのＲＯＭを備える場合、１つ目のＲＯＭには現在記憶中の制御プログラム２３を記憶させたまま、２つ目のＲＯＭにおける最新制御プログラム４１記憶用の領域に試験情報４２を書込ませてリプロ機能チェックを行ってもよい。
【０１０１】
この場合、制御部３は、２つ目のＲＯＭにおける最新制御プログラム４１の先頭、中盤、末尾のプログラムが実際に書込まれる領域に、試験情報４２を書込ませてリプロ機能チェックを行う。
【０１０２】
そして、制御部３は、リプロ機能チェックで問題なしと判定した場合に、２つ目のＲＯＭに最新制御プログラム４１を書込ませてＥＣＵ２に実行させる。その後、制御部３は、再度リプロが必要になる場合には、１つ目のＲＯＭを使用してリプロ機能チェックを行う。
【０１０３】
このように、制御部３は、実際に最新制御プログラム４１が書込まれる領域を使用してＥＣＵ２のリプロ機能チェックを行うことにより、より的確なリプロ機能チェックを行うことができる。
【０１０４】
また、制御部３は、ＥＣＵ２が１つのＲＯＭの記憶領域を予め複数の領域に分割しておき、一部の領域を上記した１つ目のＲＯＭ、他の領域を上記した２つ目のＲＯＭとして使用し、２つのＲＯＭを備える場合と同様のリプロ機能チェックを行うことも可能である。
【０１０５】
なお、制御部３は、２つ目のＲＯＭを使用してリプロ機能チェックを行う場合、最新制御プログラム４１が書込まれる領域のうち、毎回ランダムに選択した領域を使用してリプロ機能チェックを行うこともできる。
【０１０６】
これにより、制御部３は、最新制御プログラム４１が書込まれる予定の任意の領域に対する情報の書込み機能をチェックすることができる。かかる構成の場合、制御部３は、プログラムが書き込まれる全領域について書き込みチェックを行うようにしてもよい。
【０１０７】
また、制御部３は、複数のＥＣＵ２のリプロを行うが、複数のＥＣＵ２のうちリプロが不可能なＥＣＵ２がある場合、リプロが可能なＥＣＵ２のみ、または、リプロが不可能なＥＣＵ２と動作上依存関係がないＥＣＵ２のみリプロを行う。これにより、制御部３は、リプロによる問題が発生しない範囲で可及的に多くのＥＣＵ２のリプロを行うことができる。
【０１０８】
また、上述した実施形態では、ＩＧオフ時にリプロを行う構成を記載しているが、カーナビゲーション装置等、ＡＣＣオン時に電源ＯＮになる装置のリプロを行う際には、ＡＣＣオフ時にリプロを行うように構成してもよい。
【０１０９】
また、プログラム更新装置１が行う更新プログラムの取得方法は無線での入手に限定されない。例えば、プログラム更新装置１は、ＥＶ（Electric  Vehicle）やプラグインＨＶ（Hybrid  Electric  Vehicle）等の車両において、充電時の電源プラグの接続時に有線で更新プログラムを入手する構成や、ユーザが更新プログラムを記憶した記憶媒体を車両に接続することで入手する構成であってもよい。
【０１１０】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【０１１１】
１００  プログラム更新システム
１  プログラム更新装置
２  ＥＣＵ
２１  制御部
２２  記憶部
２３  制御プログラム
３  制御部
３１  取得部
３２  判定部
３３  更新部
３４  通知部
４  記憶部
４１  最新制御プログラム
４２  試験情報
５  カーナビ
６  ＢＭＳ
【図１】
2020004245.tif 000003
【図２】
2020004245.tif 000004
【図３】
2020004245.tif 000005
【図４】
2020004245.tif 000006
【図５】
2020004245.tif 000007
【図６】
2020004245.tif 000008