(57)【要約】【課題】制御プログラムの更新機会を確保する。【解決手段】プログラム更新装置（１３）は、車両（１）が備える制御装置（１１１）によって実行される制御プログラムを更新する更新手段と、車両が、制御プログラムの正常な更新を妨げる可能性に応じて区分される複数種類の状態レベルのうちのいずれにあるかを判定する判定手段とを備え、更新手段は、制御プログラムの正常な更新を妨げる可能性が低くなるほど制御プログラムの更新が中止されにくくなるように、判定手段が判定した状態レベルに応じて、制御プログラムの更新態様を変更する。【選択図】図２
2018097571.tif 000002
【特許請求の範囲】
【請求項１】
無線通信を介して車両の外部から送信された更新用データに基づいて、前記車両が備える制御装置によって実行される制御プログラムを更新する更新手段と、
前記車両が、前記制御プログラムの正常な更新を妨げる可能性に応じて区分される複数種類の状態レベルのうちのいずれにあるかを判定する判定手段と
を備え、
前記更新手段は、前記制御プログラムの正常な更新を妨げる可能性が低くなるほど前記制御プログラムの更新が中止されにくくなるように、前記判定手段が判定した前記状態レベルに応じて、前記制御プログラムの更新態様を変更する
ことを特徴とするプログラム更新装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、車両が備える制御装置によって実行される制御プログラムを、無線通信を介して制御装置に送信された更新用データを用いて更新するプログラム更新装置の技術分野に関する。
【背景技術】
【０００２】
特許文献１には、車両が備える制御装置（例えば、ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ））によって実行される制御プログラムを、無線通信を介して制御装置に送信された更新用データを用いて更新するプログラム更新装置が記載されている。特に、特許文献１に記載されたプログラム更新装置は、複数の制御装置を接続する車両ネットワークを介したデータの送受信を担保しながら制御プログラムを更新するために、車両ネットワークに送信されるデータの送信状況に適応させて更新用データを制御装置に送信している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１７８０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
制御プログラムが更新されている間には、車両の状態は適宜変わる可能性がある。この場合、車両の状態が、制御プログラムの正常な更新を妨げる可能性がある状態となる場合には、フェールセーフの観点から、プログラム更新装置は、制御プログラムの更新を中止することが好ましい。しかしながら、車両の状態が制御プログラムの正常な更新を妨げる可能性がゼロではないものの極めて低い状態にある場合であっても、車両の状態が制御プログラムの正常な更新を妨げる可能性が極めて高い状態にある場合と同様に、一律に制御プログラムの更新が中止されてしまう。従って、制御プログラムの正常な更新を妨げる可能性が少しでもある場合に一律に制御プログラムの更新が中止されると、制御プログラムの更新機会が必要以上に減ってしまうという技術的問題が生ずる。
【０００５】
本発明が解決しようとする課題には上記のようなものが一例として挙げられる。本発明は、車両が備える制御装置を制御するための制御プログラムを更新する際に、更新機会を相応に確保可能なプログラム更新装置を提供することを課題とする。
【課題を解決するための手段】
【０００６】
本発明のプログラム更新装置は、無線通信を介して車両の外部から送信された更新用データに基づいて、前記車両が備える制御装置によって実行される制御プログラムを更新する更新手段と、前記車両が、前記制御プログラムの正常な更新を妨げる可能性に応じて区分される複数種類の状態レベルのうちのいずれにあるかを判定する判定手段とを備え、前記更新手段は、前記制御プログラムの正常な更新を妨げる可能性が低くなるほど前記制御プログラムの更新が中止されにくくなるように、前記判定手段が判定した前記状態レベルに応じて、前記制御プログラムの更新態様を変更する。
【０００７】
本発明のプログラム更新装置によれば、制御プログラムの正常な更新を妨げる可能性が相対的に低い状態レベルに車両がある場合には、制御プログラムの正常な更新を妨げる可能性が相対的に高い状態レベルに車両がある場合と比較して、制御プログラムの更新が中止されにくくなる。このため、プログラム更新装置は、車両が備える制御装置を制御するための制御プログラムを更新する際に、更新機会を相応に確保可能である。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施形態の車両の構成を示すブロック図である。
【図２】図２は、更新装置が制御プログラムを更新する動作の全体の流れを示すフローチャートである。
【図３】図３は、車両の警戒レベルが警戒レベル１であると判定された場合に行われる第１更新動作の流れを示すフローチャートである。
【図４】図４は、車両の警戒レベルが警戒レベル２であると判定された場合に行われる第２更新動作の流れを示すフローチャートである。
【図５】図５は、車両の警戒レベルが警戒レベル３であると判定された場合に行われる第３更新動作の流れを示すフローチャートである。
【図６】図６は、車両の警戒レベルが警戒レベル４であると判定された場合に行われる第４更新動作の流れを示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明のプログラム更新装置の実施形態について説明する。尚、以下では、本発明のプログラム更新装置の実施形態が搭載された車両１について説明する。
【００１０】
（１）車両１の構成
はじめに、図１を参照しながら、本実施形態の車両１の構成について説明する。図１は、本実施形態の車両１の構成を示すブロック図である。
【００１１】
図１に示すように、車両１は、ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）群１１と、通信装置１２と、更新装置（言い換えれば、リプログラミング装置）１３と、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）機器１４を備えている。ＥＣＵ群１１、通信装置１２、更新装置１３及びＵＩ機器１４は、データバス等の車載ネットワーク１５を介して通信可能である。
【００１２】
ＥＣＵ群１１は、車両１を制御するための少なくとも一つのＥＣＵ１１１を含む。ＥＣＵ１１１は、ＥＣＵ１１１に割り当てられた（言い換えれば、配置された）制御プログラムを実行することで、車両１を制御するための制御動作を行う。
【００１３】
図１に示す例では、ＥＣＵ群１１は、７個のＥＣＵ１１１を備えている。例えば、図１に示す例では、ＥＣＵ群１１は、動力源ＥＣＵ１１１ａと、ブレーキＥＣＵ１１１ｂと、操舵ＥＣＵ１１１ｃと、表示ＥＣＵ１１１ｄと、周辺環境情報管理ＥＣＵ１１１ｅと、車両情報管理ＥＣＵ１１１ｆと、更新ランク監視ＥＣＵ１１１ｇとを含む。動力源ＥＣＵ１１１ａは、車両１が備える動力源（例えば、エンジンやモータジェネレータ）を制御する。ブレーキＥＣＵ１１１ｂは、車両１が備えるブレーキ装置を制御する。操舵ＥＣＵ１１１ｃは、車両１が備える操舵装置を制御する。表示ＥＣＵ１１１ｄは、ＵＩ機器１４に含まれるディスプレイを制御する。車両情報管理ＥＣＵ１１１ｅは、車両１に関する情報を管理する。周辺環境情報管理ＥＣＵ１１１ｆは、車両１の周辺環境に関する情報を管理する。尚、車両１に関する情報や、周辺環境に関する情報は、例えば、車両１が備える検出装置（例えば、センサやカメラやレーダ等）から取得されてもよいし、路上に設置された路側機から取得されてもよい。更新ランク監視ＥＣＵ１１１ｇは、各ＥＣＵ１１１に割り当てられた（つまり、各ＥＣＵ１１１が実行する）制御プログラムを更新する際に生ずるリスクに応じて各ＥＣＵ１１１に個別に設定される（言い換えれば、各ＥＣＵ１１１に割り当てられた制御プログラムに個別に設定される）パラメータである更新ランクを管理する。
【００１４】
通信装置１２は、車両１の外部に設置されたセンタ装置２と、無線の通信回線３を介して通信可能である。本実施形態では特に、通信装置１２は、更新装置１３の制御下で、各ＥＣＵ１１１に割り当てられた制御プログラムを更新する（言い換えれば、書き換える又はリプログラミングする）ための更新用データをセンタ装置２から受信する。
【００１５】
更に、通信装置１２は、車両１のユーザが備えるユーザ端末（例えば、スマートフォンやタブレットやパソコン等）４と、無線の通信回線５を介して通信可能である。本実施形態では特に、通信装置１２は、更新装置１３の制御下で、制御プログラムの更新についてユーザと更新装置１３との間で情報をやり取りする必要がある場合に、ユーザ端末４との間で当該情報を送受信可能である。
【００１６】
更新装置１３は、通信装置１２が受信した更新用データを用いて、制御プログラムを更新する。例えば、更新装置１３は、ＵＩ機器１４が表示したプログラム選択用のＵＩを介したユーザの指示に応じて、ユーザが選択した制御プログラムを更新する。
【００１７】
ＵＩ機器１４は、車両１とユーザとの間で情報をやりとりすることが可能なＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）機器である。ＵＩ機器１４は、例えば、ナビゲーション装置（特に、ナビゲーション装置が備えるディスプレイ、タッチパネル及び操作ボタンの少なくとも一つ）を含んでいる。但し、上述したユーザ端末４（特に、ユーザ端末４が備えるディスプレイ、タッチパネル及び操作ボタンの少なくとも一つ）がＵＩ機器１４として用いられてもよい。ユーザ端末４がＵＩ機器１４として用いられる場合には、車両１自身がＵＩ機器１４を備えていなくてもよい。
【００１８】
尚、ＥＣＵ群１１は、複数のＥＣＵ１１１のうちの少なくとも２つのＥＣＵ１１１に代えて、当該少なくとも２つのＥＣＵ１１１が行う２種類の制御動作を行うことが可能な単一のＥＣＵ１１１を含んでいてもよい。複数のＥＣＵ１１１のうちの少なくとも一つは、図１に示すように車載ネットワーク１５を介して通信装置１２に接続されていてもよいし、他のＥＣＵ１１１を介して通信装置１２に接続されていてもよい。更新ランク監視ＥＣＵ１１１ｇは、車両１の制御に関する情報を管理するＣＧＷ（Ｃｅｎｔｒａｌ  Ｇａｔｅ  Ｗａｙ）の少なくとも一部であってもよいし、ＣＧＷから独立したＥＣＵ１１１であってもよいし、ナビゲーション装置の一部（例えば、ナビゲーション装置を制御するＣＰＵの一部）であってもよい。
【００１９】
（２）制御プログラムを更新する動作の流れ
続いて、更新装置１３が制御プログラムを更新する動作の流れについて説明する。センタ装置２は、制御プログラムを更新するための更新用データの車両１への配信の準備が整うと、通信回線３を介して、車両１（特に、更新装置１３）に対して制御プログラムの更新を促す更新要求を送信する。具体的には、制御プログラムの更新はＥＣＵ１１１毎に行われるため、センタ装置２は、どのＥＣＵ１１１を更新するかを示す更新要求を送信する。更新要求を受信した更新装置１３は、通信装置１２及び通信回線３を介して、センタ装置２から更新用データを受信する。その後、更新装置１３は、受信した更新用データを用いて、更新要求が示すＥＣＵ１１１に割り当てられた制御プログラムを更新する。以下、図２から図６を参照しながら、更新装置１３が制御プログラムを更新する動作の流れについて更に詳細に説明する。
【００２０】
（２−１）制御プログラムを更新する動作の全体の流れ
初めに、図２を参照しながら、更新装置１３が制御プログラムを更新する動作の全体の流れについて説明する。図２は、更新装置１３が制御プログラムを更新する動作の全体の流れを示すフローチャートである。尚、図２に示す動作は、更新装置１３がセンタ装置２からの更新要求を受信した場合に、更新装置１３によって開始される。
【００２１】
図２に示すように、更新要求を受信した更新装置１３は、まず、更新要求が示すＥＣＵ１１１に割り当てられた制御プログラムの更新を行うことが可能か否かを判定する（ステップＳ１１）。一例として、更新装置１３は、更新しようとしている制御プログラムの更新ランクａに基づいて、制御プログラムの更新を行うことが可能か否かを判定する。
【００２２】
具体的には、上述したように、各ＥＣＵ１１１が実行する制御プログラムには、制御プログラムを更新する際に生ずるリスクに応じた更新ランクが設定されている。更新ランクは、制御プログラムを更新する際に生ずるリスクが大きくなるほど大きな値を有する指標である。一例として、本実施形態では、制御プログラムには、更新ランクとして、１から２０の値が設定されるものとする。尚、更新ランクは、更新ランク監視ＥＣＵ１１１ｇによって各制御プログラムに設定される。
【００２３】
更に、更新装置１３は、制御プログラムを更新するにあたって、実施可能な更新ランク（以降、“実施可能ランクｂ”と称する）を設定する。実施可能ランクｂは、車両１において更新することが許容された制御プログラムに設定された更新ランクの上限値を示す指標である。つまり、実施可能ランクｂは、車両１において更新することが許容された制御プログラムに設定された更新ランクと、車両１において更新することが許容されていない制御プログラムに設定された更新ランクとを区別するための閾値である。制御プログラムの更新は、当該制御プログラムが本来行うべき制御動作に影響を与えることのない範囲で行われる。つまり、制御プログラムの更新は、当該制御プログラムが本来行うべき制御動作に影響を与えてしまう場合には、行われないことが好ましい。更に、制御プログラムが本来行うべき制御動作は、車両１の状態（例えば、車両１が停止しているか否か、車両１が加速しているか否か、車両１がどのような路面を走行しているか、車両１が備える各種装置（特に、ＥＣＵ１１１）が機能しているか否か等）によっても変わり得る。従って、実施可能ランクｂは、車両１の状態に応じて、制御プログラムが本来行うべき制御動作に影響を与えることなく更新することができる程度にリスクが小さい制御プログラムの更新ランクと、制御プログラムが本来行うべき制御動作に影響を与えることなく更新することができないほどにリスクが大きい制御プログラムの更新ランクとを区別可能な値に設定される。
【００２４】
更新装置１３は、更新ランクａが実施可能ランクｂ以下である場合には、制御プログラムの更新を行うことが可能であると判定する。他方で、更新装置１３は、更新ランクａが実施可能ランクｂより大きい場合には、制御プログラムの更新を行うことが可能でないと判定する。
【００２５】
ステップＳ１１の判定の結果、制御プログラムの更新を行うことが可能でないと判定された場合には（ステップＳ１１：Ｎｏ）、更新装置１３は、図２に示す動作を終了する。他方で、ステップＳ１１の判定の結果、制御プログラムの更新を行うことが可能であると判定された場合には（ステップＳ１１：Ｙｅｓ）、更新装置１３は、車両１の電源状態を確認し（ステップＳ２１）、電源状態を、更新対象のＥＣＵ１１１への安定的な電力供給か可能な状態に遷移させる（ステップＳ２２）。
【００２６】
ステップＳ２１の動作の一例として、車両１の電源状態を示す変数ｃを、現在の電源状態に合致した値に設定する（言い換えれば、更新する）動作があげられる。例えば、更新装置１３は、ＡＣＣ（アクセサリ）電源がオフ状態にあり且つＩＧ（イグニション）電源がオフ状態にある場合には、変数ｃを０に設定する。例えば、更新装置１３は、ＡＣＣ電源がオン状態にあり且つＩＧ電源がオフ状態にある場合には、変数ｃを１に設定する。例えば、更新装置１３は、ＩＧ電源がオン状態にあり且つ動力源が駆動していない（例えば、エンジンが駆動していない又はモータジェネレータがレディ状態にない）場合には、変数ｃを２に設定する。例えば、更新装置１３は、ＩＧ電源がオン状態にあり且つ動力源が駆動している（例えば、エンジンが駆動している又はモータジェネレータがレディ状態にある）場合には、変数ｃを３に設定する。
【００２７】
ステップＳ２２の動作の一例として、変数ｃが２又は３となるように電源状態を変更する動作があげられる。具体的には、更新装置１３は、ステップＳ２１で設定した変数ｃが０又は１である場合には、変数ｃが２又は３となるように電源状態を変更する。一方で、ステップＳ２１で設定した変数ｃが２又は３である場合には、更新装置１３は、電源状態を変更しなくてもよい。つまり、更新装置１３は、少なくともＩＧ電源がオン状態となるように電源状態を変更する。
【００２８】
その後、更新装置１３は、センタ装置２から受信した更新用データを用いて、更新対象のＥＣＵ１１１に割り当てられた制御プログラム（つまり、更新対象の制御プログラム）の更新を開始する（ステップＳ２３）。
【００２９】
制御プログラムの更新が開始された後は、更新装置１３は、ドライバの指示に基づいて行われる車両１の制御の少なくとも一部を制限する（ステップＳ２４）。ドライバの指示に基づいて車両１が制御される（例えば、車両１が発進される、加速される又は減速される）と、実施可能ランクｂが変動する可能性がある。なぜならば、ドライバの指示に基づいて車両１が制御されると、車両１の状態が変わり、車両１の状態が変わると、上述したように実施可能ランクｂが変動する可能性があるからである。このため、更新装置１３は、実施可能ランクｂを更新ランクａよりも小さくしてしまう可能性がある制御を要求するドライバの指示を制限する。つまり、更新装置１３は、実施可能ランクｂを更新ランクａよりも小さくしてしまう可能性がある制御が行われないように、ＥＣＵ群１１等を制御する。更新装置１３は、ドライバの指示に基づいて行われる車両１の制御の少なくとも一部を制限する動作を、制御プログラムの更新が完了するまで継続する。
【００３０】
制御プログラムの更新が開始された後には更に、更新装置１３は、車両１が、制御プログラムの更新を正常に完了することが可能な正常な状態にあるか否かを判定する（ステップＳ３１）。例えば、更新装置１３は、更新ランクａが実施可能ランクｂよりも大きくなってしまった場合には、車両１が正常な状態にないと判定してもよい。例えば、更新装置１３は、更新ランクａが設定された制御プログラムの更新中には想定されていない制御が車両１に対して行われた場合には、車両１が正常な状態にないと判定してもよい。例えば、更新装置１３は、実施可能ランクｂが設定されている状況下では想定されていない制御が車両１に対して行われた場合には、車両１が正常な状態にないと判定してもよい。例えば、更新装置１３は、車両１に何らかの異常が発生している場合には、車両１が正常な状態にないと判定してもよい。例えば、更新装置１３は、ＵＩ機器１４及びユーザ端末４の少なくとも一方を介してユーザが制御プログラムの更新の中止を要求している場合には、車両１が正常な状態にないと判定してもよい。その他の場合には、更新装置１３は、車両１が正常な状態にあると判定してもよい。
【００３１】
ステップＳ３１の判定の結果、車両１が正常な状態にあると判定された場合には（ステップＳ３１：Ｙｅｓ）、更新装置１３は、制御プログラムの更新を継続する（ステップＳ４）。以降、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで（ステップＳ９）、更新装置１３は、ステップＳ３１以降の処理を繰り返す。
【００３２】
他方で、ステップＳ３１の判定の結果、車両１が正常な状態にないと判定された場合には（ステップＳ３１：Ｎｏ）、車両１が正常な状態にないことに起因して、制御プログラムの正常な更新が妨げられる可能性があると推定される。この場合、更新装置１３は、車両１が、制御プログラムの正常な更新が妨げられる可能性（つまり、度合い）に応じて区分される複数種類の警戒レベルのうちのいずれの警戒レベルにあるかを特定する（ステップＳ３２）。つまり、更新装置１３は、車両１の状態に基づいて、制御プログラムの正常な更新が妨げられる可能性を示す指標である警戒レベルを特定する（ステップＳ３２）。尚、本実施形態の「警戒レベル」は、上述した「状態レベル」の一具体例である。
【００３３】
例えば、車両１に一過性の異常が新たに発生したことに起因して車両１が正常な状態にないと判定された場合には、更新装置１３は、車両１は、制御プログラムの正常な更新が即座に妨げられる状態にはないもの、今後の正常な更新が妨げられる状態へと遷移する可能性があると判定してもよい。この場合、更新装置１３は、車両１が警戒レベル１にあると特定してもよい。このような警戒レベル１に対応する異常の一例として、ドアロックが意図せず開錠される異常や、窓が意図せず開かれる異常や、エンジンルームが意図せず開かれる（典型的には、ボンネットが開かれる）異常や、バッテリの電圧が低下する異常等があげられる。
【００３４】
例えば、車両１に既に発生していた一過性の異常がそのまま解消されていない（或いは、進行した）ことに起因して車両１が正常な状態にないと判定された場合には、更新装置１３は、車両１は、制御プログラムの正常な更新が妨げられる可能性がある状態にあると判定してもよい。この場合、更新装置１３は、車両１が、警戒レベル１よりも制御プログラムの正常な更新が妨げられる可能性が高いことを示す警戒レベル２にあると特定してもよい。このような警戒レベル２に対応する異常の一例として、ドアロックが意図せず開錠された後に車内にユーザ（或いは、その他の何らかの物体）が侵入する異常や、窓が意図せず開かれた後に動力源を始動するための操作（例えば、スタートボタンを押す操作）が行われる異常等があげられる。
【００３５】
例えば、車両１に不可逆性の異常（つまり、一過性ではない異常）が新たに発生したことに起因して車両１が正常な状態にないと判定された場合には、更新装置１３は、車両１は、制御プログラムの正常な更新が妨げられる可能性がより一層高い状態にあると判定してもよい。この場合、更新装置１３は、車両１が、警戒レベル２よりも制御プログラムの正常な更新が妨げられる可能性が高いことを示す警戒レベル３にあると特定してもよい。このような警戒レベル３に対応する異常の一例として、バッテリの電圧が急激に低下する異常や、車内が浸水する異常や、更新対象のＥＣＵ１１１に対する不正アクセスが行われる異常等があげられる。
【００３６】
例えば、ユーザが制御プログラムの更新の中止を要求したことに起因して車両１が正常な状態にないと判定された場合には、更新装置１３は、車両１は、制御プログラムの正常な更新を中止するべき状態にあると判定してもよい。この場合、更新装置１は、車両１が、警戒レベル３よりも制御プログラムの正常な更新が妨げられる可能性が高い（具体的には、制御プログラムの正常な更新が確実に中止される）ことを示す警戒レベル４にあると特定してもよい。
【００３７】
尚、ここで説明した警戒レベルはあくまで一例に過ぎず、その他の警戒レベルが用いられてもよい。例えば、３段階以下に又は５段階以上に区分される警戒レベルが用いられてもよい。例えば、制御プログラムの正常な更新が妨げられる可能性を段階的な値として示す警戒レベルが用いられてもよいし、制御プログラムの正常な更新が妨げられる可能性を連続的な値として示す警戒レベルが用いられてもよい。
【００３８】
その後、更新装置１３は、ステップＳ３２で特定した警戒レベルに応じて、制御プログラムの更新態様を変更する（ステップＳ３３からステップＳ８）。具体的には、更新装置１３は、ステップＳ３２で特定した警戒レベルに応じて、制御プログラムの更新を継続するか又は制御プログラムの更新を中止するかを決定し、その決定内容に合わせて制御プログラムの更新を継続するか又は制御プログラムの更新を中止する（ステップＳ３３からステップＳ８）。特に、更新装置１３は、制御プログラムの正常な更新が妨げられる可能性が低くなるほど（つまり、警戒レベルが低くなるほど）制御プログラムの更新が中止されにくくなるように、制御プログラムの更新態様を変更する。言い換えれば、更新装置１３は、制御プログラムの正常な更新が妨げられる可能性が高くなるほど（つまり、警戒レベルが高くなるほど）制御プログラムの更新が中止されやすくなるように、制御プログラムの更新態様を変更する。以下、車両１が警戒レベル１から警戒レベル４のいずれかにあるかが特定される上述した一例を用いて、制御プログラムの更新態様の変更動作の一例について更に説明を進める。
【００３９】
更新装置１３は、車両１の警戒レベルが警戒レベル１であるか否かを判定する（ステップＳ３３）。ステップＳ３３の判定の結果、車両１の警戒レベルが警戒レベル１であると判定された場合には（ステップＳ３３：Ｙｅｓ）、更新装置１３は、後に図３を参照しながら説明する第１更新動作を行う（ステップＳ５）。第１更新動作が行われた後には、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで（ステップＳ９）、更新装置１３は、ステップＳ３１以降の処理を繰り返す。
【００４０】
他方で、ステップＳ３３の判定の結果、車両１の警戒レベルが警戒レベル１でないと判定された場合には（ステップＳ３３：Ｎｏ）、更新装置１３は、車両１の警戒レベルが警戒レベル２であるか否かを判定する（ステップＳ３４）。ステップＳ３４の判定の結果、車両１の警戒レベルが警戒レベル２であると判定された場合には（ステップＳ３４：Ｙｅｓ）、更新装置１３は、後に図４を参照しながら説明する第２更新動作を行う（ステップＳ６）。第２更新動作が行われた後には、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで（ステップＳ９）、更新装置１３は、ステップＳ３１以降の処理を繰り返す。
【００４１】
他方で、ステップＳ３４の判定の結果、車両１の警戒レベルが警戒レベル２でないと判定された場合には（ステップＳ３４：Ｎｏ）、更新装置１３は、車両１の警戒レベルが警戒レベル３であるか否かを判定する（ステップＳ３５）。ステップＳ３５の判定の結果、車両１の警戒レベルが警戒レベル３であると判定された場合には（ステップＳ３５：Ｙｅｓ）、更新装置１３は、後に図５を参照しながら説明する第３更新動作を行う（ステップＳ７）。第３更新動作が行われた後には、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで（ステップＳ９）、更新装置１３は、ステップＳ３１以降の処理を繰り返す。
【００４２】
他方で、ステップＳ３５の判定の結果、車両１の警戒レベルが警戒レベル３でないと判定された場合には（ステップＳ３５：Ｎｏ）、車両１の警戒レベルが警戒レベル４であると推定される。この場合には、更新装置１３は、後に図６を参照しながら説明する第４更新動作を行う（ステップＳ８）。第４更新動作が行われた後には、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで（ステップＳ９）、更新装置１３は、ステップＳ３１以降の処理を繰り返す。
【００４３】
（２−２）第１更新動作
続いて、図３を参照しながら、車両１の警戒レベルが警戒レベル１であると判定された場合に行われる第１更新動作の流れについて説明する。図３は、車両１の警戒レベルが警戒レベル１であると判定された場合に行われる第１更新動作の流れを示すフローチャートである。
【００４４】
図３に示すように、更新装置１３は、現在行われている制御プログラムの更新をこのまま継続した場合に生ずる更新継続リスクを特定する（ステップＳ５１）。
【００４５】
例えば、更新装置１３は、更新対象の制御プログラムの更新ランクａに基づいて、更新継続リスクを特定してもよい。具体的には、更新装置１３は、更新ランクａが第１範囲に収まる値である（例えば、０以上且つ３以下の値である）場合には、更新継続リスクがゼロであると特定してもよい。更新装置１３は、更新ランクａが第１範囲に属する値よりも大きな値が属する第２範囲に収まる値である（例えば、４以上且つ９以下の値である）場合には、更新継続リスクが低い（例えば、ゼロよりも大きく且つ第１所定量以下である）と特定してもよい。更新装置１３は、更新ランクａが第２範囲に属する値よりも大きな値が属する第３範囲に収まる値である（例えば、１０以上且つ１５以下の値である）場合には、更新継続リスクがやや高い（例えば、第１所定量よりも大きく且つ第２所定量（但し、第２所定量＞第１所定量）以下である）と特定してもよい。更新装置１３は、更新ランクａが第３範囲に属する値よりも大きな値が属する第４範囲に収まる値である（例えば、１６以上且つ１８以下の値である）場合には、更新継続リスクが高い（例えば、第２所定量よりも大きく且つ第３所定量（但し、第３所定量＞第２所定量）以下である）と特定してもよい。更新装置１３は、更新ランクａが第４範囲に属する値よりも大きな値が属する第５範囲に収まる値である（例えば、１９以上且つ２０以下の値である）場合には、更新継続リスクが最も高い（例えば、第３所定量よりも大きく、制御プログラムの更新を直ちに中止するべきであるほどに高い）と特定してもよい。
【００４６】
例えば、更新装置１３は、更新対象の制御プログラムの更新ランクａと実施可能ランクｂとの差分Δ（＝ａ−ｂ）に基づいて、更新継続リスクを特定してもよい。具体的には、更新装置１３は、差分Δが第６範囲に収まる値である（例えば、１０以上の値である）場合には、更新継続リスクがゼロであると特定してもよい。更新装置１３は、差分Δが第６範囲に属する値よりも小さな値が属する第７範囲に収まる値である（例えば、６以上且つ９以下の値である）場合には、更新継続リスクが低いと特定してもよい。更新装置１３は、差分Δが第７範囲に属する値よりも小さな値が属する第８範囲に収まる値である（例えば、３以上且つ５以下の値である）場合には、更新継続リスクがやや高いと特定してもよい。更新装置１３は、差分Δが第８範囲に属する値よりも小さな値が属する第９範囲に収まる値である（例えば、０以上且つ２以下の値である）場合には、更新継続リスクが高いと特定してもよい。更新装置１３は、差分Δが第９範囲に属する値よりも小さな値が属する第１０範囲に収まる値である（例えば、０未満の値である）場合には、更新継続リスクが最も高いと特定してもよい。
【００４７】
例えば、更新装置１３は、更新対象のＥＣＵ１１１が機能しなくなった場合のリスクに基づいて、更新継続リスクを特定してもよい。具体的には、更新装置１３は、更新対象のＥＣＵ１１１が機能しなくなった場合であってもその影響を無視できる場合には、更新継続リスクがゼロであると特定してもよい。更新装置１３は、更新対象のＥＣＵ１１１が機能しなくなった場合にそれほど多くのユーザが不満を感じない（言い換えれば、少数のユーザのみが不満を感じる）場合には、更新継続リスクが低いと特定してもよい。更新装置１３は、更新対象のＥＣＵ１１１が機能しなくなった場合に多くのユーザが不満を感じる場合には、更新継続リスクがやや高いと特定してもよい。更新装置１３は、更新対象のＥＣＵ１１１が機能しなくなった場合に車両１が走行不可能になる可能性がある場合には、更新継続リスクが高いと特定してもよい。更新装置１３は、更新対象のＥＣＵ１１１が機能しなくなった場合に車両１の危険度が増加する可能性がある場合には、更新継続リスクが最も高いと特定してもよい。
【００４８】
その後、更新装置１３は、更新継続リスクがゼロであるか否かを判定する（ステップＳ５２１）。ステップＳ５２１の判定の結果、更新継続リスクがゼロであると判定される場合には（ステップＳ５２１：Ｙｅｓ）、更新装置１３は、車両１に何らかの異常が発生している（つまり、車両１が正常な状態にない）旨をユーザに通知する（ステップＳ５３）。例えば、ユーザが車両１に乗車している場合には、更新装置１３は、ＵＩ機器１４及びユーザ端末４の少なくとも一方を介して、ユーザに異常が発生している旨を通知してもよい。例えば、ユーザが車外にいる場合には、更新装置１３は、ユーザ端末４を介して、ユーザに異常が発生している旨を通知してもよい。その後、更新装置１３は、制御プログラムの更新を継続する（ステップＳ５４）。
【００４９】
他方で、ステップＳ５２１の判定の結果、更新継続リスクがゼロであると判定されない場合には（ステップＳ５２１：Ｎｏ）、更新装置１３は、更新継続リスクが低いか否かを判定する（ステップＳ５２２）。ステップＳ５２２の判定の結果、更新継続リスクが低いと判定される場合には（ステップＳ５２２：Ｙｅｓ）、更新装置１３は、異常が発生している旨をユーザに通知した上で（ステップＳ５３）、制御プログラムの更新を継続する（ステップＳ５４）。
【００５０】
他方で、ステップＳ５２２の判定の結果、更新継続リスクが低いと判定されない場合には（ステップＳ５２２：Ｎｏ）、更新装置１３は、更新継続リスクがやや高いか否かを判定する（ステップＳ５２３）。ステップＳ５２３の判定の結果、更新継続リスクがやや高いと判定される場合には（ステップＳ５２３：Ｙｅｓ）、更新装置１３は、更新対象の制御プログラムの更新が必須であるか否かを判定する（ステップＳ５５）。例えば、更新対象の制御プログラムの更新が、今すぐ行う必要がある更新である場合には、更新装置１３は、更新対象の制御プログラムの更新が必須であると判定してもよい。今すぐ行う必要がある更新の一例として、制御プログラムのバグを修正するための更新や、車両１の不快な挙動を修正するための更新や、法規に対応するための更新があげられる。他方で、例えば、更新対象の制御プログラムを今すぐ更新する必要がない場合には、更新装置１３は、更新対象の制御プログラムの更新が必須でないと判定してもよい。
【００５１】
ステップＳ５５の判定の結果、更新対象の制御プログラムの更新が必須であると判定される場合には（ステップＳ５５：Ｙｅｓ）、更新装置１３は、異常が発生している旨をユーザに通知した上で（ステップＳ５３）、制御プログラムの更新を継続する（ステップＳ５４）。
【００５２】
他方で、ステップＳ５５の判定の結果、更新対象の制御プログラムの更新が必須でないと判定される場合には（ステップＳ５５：Ｎｏ）、更新装置１３は、車両１に発生している異常（つまり、車両１が正常な状態にないと判定される原因となった異常）が、復旧可能な異常であるか否かを判定する（ステップＳ５６）。例えば、異常の復旧は、車両１（特に、ＥＣＵ群１１）によって自動的に行われることがある。この場合、異常が復旧された後に車両１の走行に支障が生じない場合には、更新装置１３は、車両１に発生している異常が、復旧可能な異常であると判定してもよい。他方で、異常が復旧された後に車両１の走行に支障が生じる可能性がある場合には、更新装置１３は、車両１に発生している異常が、復旧可能な異常でないと判定してもよい。或いは、例えば、異常の復旧は、ＵＩ機器１４及びユーザ端末４の少なくとも一方を介してユーザに復旧の確認を行った後に行われることがある。この場合、ユーザが異常の復旧に同意した場合には、更新装置１３は、車両１に発生している異常が、復旧可能な異常であると判定してもよい。他方で、ユーザが異常の復旧に同意しなかった場合には、更新装置１３は、車両１に発生している異常が、復旧可能な異常でないと判定してもよい。
【００５３】
ステップＳ５６の判定の結果、車両１に発生している異常が復旧可能な異常であると判定される場合には（ステップＳ５６：Ｙｅｓ）、更新装置１３は、異常を復旧させた上で（ステップＳ５７）、制御プログラムの更新を継続する（ステップＳ５４）。他方で、ステップＳ５６の判定の結果、車両１に発生している異常が復旧可能な異常でないと判定される場合には（ステップＳ５６：Ｎｏ）、更新装置１３は、制御プログラムの更新を中止する（ステップＳ５８）。更に、更新装置１３は、制御プログラムの更新を中止した旨を、ＵＩ機器１４及びユーザ端末４の少なくとも一方を介してユーザに通知する（ステップＳ５９）。
【００５４】
他方で、ステップＳ５２３の判定の結果、更新継続リスクがやや高いと判定されない場合には（ステップＳ５２３：Ｎｏ）、更新装置１３は、更新継続リスクが高いか否かを判定する（ステップＳ５２４）。ステップＳ５２４の判定の結果、更新継続リスクが高いと判定される場合には（ステップＳ５２４：Ｙｅｓ）、更新装置１３は、既に説明済みのステップＳ５６以降の処理を行う。
【００５５】
他方で、ステップＳ５２４の判定の結果、更新継続リスクが高いと判定されない場合には（ステップＳ５２４：Ｎｏ）、更新継続リスクが最も高いと推定される。この場合には、更新装置１３は、制御プログラムの更新を中止し（ステップＳ５８）、制御プログラムの更新を中止した旨をユーザに通知する（ステップＳ５９）。
【００５６】
このように、第１更新動作によれば、（ｉ）更新継続リスクが最も高い場合、（ｉｉ）更新継続リスクが高く且つ車両１に発生している異常が復旧可能な異常でない場合、及び、（ｉｉｉ）更新継続リスクがやや高く、制御プログラムの更新が必須でなく且つ車両１に発生している異常が復旧可能な異常でない場合に、制御プログラムの更新が中止される。
【００５７】
（２−３）第２更新動作
続いて、図４を参照しながら、車両１の警戒レベルが警戒レベル２であると判定された場合に行われる第２更新動作の流れについて説明する。図４は、車両１の警戒レベルが警戒レベル２であると判定された場合に行われる第２更新動作の流れを示すフローチャートである。
【００５８】
図４に示すように、更新装置１３は、更新継続リスクを特定する（ステップＳ６１）。その後、更新装置１３は、更新継続リスクがゼロであるか否かを判定する（ステップＳ６２１）。
【００５９】
更新継続リスクがゼロであると判定される場合には（ステップＳ６２１：Ｙｅｓ）、更新装置１３は、異常が発生している旨をユーザに通知した上で（ステップＳ６３）、制御プログラムの更新を継続する（ステップＳ６４）。他方で、更新継続リスクがゼロであると判定されない場合には（ステップＳ６２１：Ｙｅｓ）、更新装置１３は、更新継続リスクが低いか否かを判定する（ステップＳ６２２）。
【００６０】
更新継続リスクが低いと判定される場合には（ステップＳ６２２：Ｙｅｓ）、更新装置１３は、更新対象の制御プログラムの更新が必須であるか否かを判定する（ステップＳ６５１）。更新対象の制御プログラムの更新が必須であると判定される場合には（ステップＳ６５１：Ｙｅｓ）、更新装置１３は、異常が発生している旨をユーザに通知した上で（ステップＳ６３）、制御プログラムの更新を継続する（ステップＳ６４）。他方で、更新対象の制御プログラムの更新が必須でないと判定される場合には（ステップＳ６５１：Ｎｏ）、更新装置１３は、車両１に発生している異常が、復旧可能な異常であるか否かを判定する（ステップＳ６６）。車両１に発生している異常が復旧可能な異常であると判定される場合には（ステップＳ６６：Ｙｅｓ）、更新装置１３は、異常を復旧させた上で（ステップＳ６７）、制御プログラムの更新を継続する（ステップＳ６４）。他方で、車両１に発生している異常が復旧可能な異常でないと判定される場合には（ステップＳ６６：Ｎｏ）、更新装置１３は、制御プログラムの更新を中止し（ステップＳ６８）、制御プログラムの更新を中止した旨をユーザに通知する（ステップＳ６９）。他方で、更新継続リスクが低いと判定されない場合には（ステップＳ６２２：Ｎｏ）、更新装置１３は、更新継続リスクがやや高いか否かを判定する（ステップＳ６２３）。
【００６１】
更新継続リスクがやや高いと判定される場合には（ステップＳ６２３：Ｙｅｓ）、更新装置１３は、更新対象の制御プログラムの更新が必須であるか否かを判定する（ステップＳ６５２）。更新対象の制御プログラムの更新が必須であると判定される場合には（ステップＳ６５２：Ｙｅｓ）、既に説明済みのステップＳ６６以降の処理を行う。他方で、更新対象の制御プログラムの更新が必須でないと判定される場合には（ステップＳ６５２：Ｎｏ）、更新装置１３は、制御プログラムの更新を中止し（ステップＳ６８）、制御プログラムの更新を中止した旨をユーザに通知する（ステップＳ６９）。他方で、更新継続リスクがやや高いと判定されない場合には（ステップＳ６２３：Ｎｏ）、更新継続リスクは、高い又は最も高いと推定される。この場合には、更新装置１３は、制御プログラムの更新を中止し（ステップＳ６８）、制御プログラムの更新を中止した旨をユーザに通知する（ステップＳ６９）。
【００６２】
このように、第２更新動作によれば、（ｉ）更新継続リスクが最も高い場合、（ｉｉ）更新継続リスクが高い場合、（ｉｉｉ）更新継続リスクがやや高く且つ制御プログラムの更新が必須でない場合、（ｉｖ）更新継続リスクがやや高く、制御プログラムの更新が必須であり且つ車両１に発生している異常が復旧可能な異常でない場合、及び、（ｖ）更新継続リスクが低く、制御プログラムの更新が必須でなく且つ車両１に発生している異常が復旧可能な異常でない場合に、制御プログラムの更新が中止される。従って、第２更新動作では、第１更新動作よりも制御プログラムの更新が中止されやすい。つまり、第１更新動作では、第２更新動作よりも制御プログラムの更新機会が多く確保される。
【００６３】
尚、図４におけるステップＳ６１の動作は、上述した図３におけるステップＳ５１の動作と同一である。図４におけるステップＳ６２１からステップＳ６２３の動作は、上述した図３におけるステップＳ５２１からステップＳ５２３の動作と夫々同一である。図４におけるステップＳ６３からステップＳ６４の動作は、上述した図３におけるステップＳ５３からステップＳ５４の動作と夫々同一である。図４におけるステップＳ６５１及びステップＳ６５２の夫々の動作は、上述した図３におけるステップＳ５５の動作と夫々同一である。図４におけるステップＳ６６からステップＳ６９の動作は、上述した図３におけるステップＳ５６からステップＳ５９の動作と夫々同一である。
【００６４】
（２−４）第３更新動作
続いて、図５を参照しながら、車両１の警戒レベルが警戒レベル３であると判定された場合に行われる第３更新動作の流れについて説明する。図５は、車両１の警戒レベルが警戒レベル３であると判定された場合に行われる第３更新動作の流れを示すフローチャートである。
【００６５】
図５に示すように、更新装置１３は、更新継続リスクを特定する（ステップＳ７１）。その後、更新装置１３は、更新継続リスクがゼロであるか否かを判定する（ステップＳ７２１）。
【００６６】
更新継続リスクがゼロであると判定される場合には（ステップＳ７２１：Ｙｅｓ）、車両１に発生している異常が、復旧可能な異常であるか否かを判定する（ステップＳ７６）。車両１に発生している異常が復旧可能な異常であると判定される場合には（ステップＳ７６：Ｙｅｓ）、更新装置１３は、異常を復旧させた上で（ステップＳ７７）、制御プログラムの更新を継続する（ステップＳ７４）。他方で、車両１に発生している異常が復旧可能な異常でないと判定される場合には（ステップＳ７６：Ｎｏ）、更新装置１３は、制御プログラムの更新を中止し（ステップＳ７８）、制御プログラムの更新を中止した旨をユーザに通知する（ステップＳ７９）。他方で、更新継続リスクがゼロであると判定されない場合には（ステップＳ７２１：Ｎｏ）、更新装置１３は、更新継続リスクが低いか否かを判定する（ステップＳ７２２）。
【００６７】
更新継続リスクが低いと判定される場合には（ステップＳ７２２：Ｙｅｓ）、更新装置１３は、更新対象の制御プログラムの更新が必須であるか否かを判定する（ステップＳ７５）。更新対象の制御プログラムの更新が必須であると判定される場合には（ステップＳ７５：Ｙｅｓ）、更新装置１３は、既に説明済みのステップＳ７６以降の動作を行う。他方で、更新対象の制御プログラムの更新が必須でないと判定される場合には（ステップＳ７５：Ｎｏ）、更新装置１３は、制御プログラムの更新を中止し（ステップＳ７８）、制御プログラムの更新を中止した旨をユーザに通知する（ステップＳ７９）。他方で、更新継続リスクが低いと判定されない場合には（ステップＳ７２２：Ｎｏ）、更新継続リスクは、やや高い、高い又は最も高いと推定される。この場合には、更新装置１３は、制御プログラムの更新を中止し（ステップＳ７８）、制御プログラムの更新を中止した旨をユーザに通知する（ステップＳ７９）。
【００６８】
このように、第３更新動作によれば、（ｉ）更新継続リスクが最も高い場合、（ｉｉ）更新継続リスクが高い場合、（ｉｉｉ）更新継続リスクがやや高い場合、（ｉｖ）更新継続リスクが低く且つ制御プログラムの更新が必須でない場合、及び、（ｖ）更新継続リスクがゼロであり且つ車両１に発生している異常が復旧可能な異常でない場合に、制御プログラムの更新が中止される。従って、第３更新動作では、第２更新動作よりも制御プログラムの更新が中止されやすい。つまり、第２更新動作では、第３更新動作よりも制御プログラムの更新機会が多く確保される。
【００６９】
尚、図５におけるステップＳ７１の動作は、上述した図３におけるステップＳ５１の動作と同一である。図５におけるステップＳ７２１からステップＳ７２２の動作は、上述した図３におけるステップＳ５２１からステップＳ５２２の動作と夫々同一である。図５におけるステップＳ７４からステップＳ７９の動作は、上述した図３におけるステップＳ５４からステップＳ５９の動作と夫々同一である。
【００７０】
（２−５）第４更新動作
続いて、図６を参照しながら、車両１の警戒レベルが警戒レベル４であると判定された場合に行われる第４更新動作の流れについて説明する。図６は、車両１の警戒レベルが警戒レベル４であると判定された場合に行われる第４更新動作の流れを示すフローチャートである。
【００７１】
図６に示すように、更新装置１３は、更新対象の制御プログラムの現在の更新状況を、ＵＩ機器１４及びユーザ端末４の少なくとも一方を介して、ユーザに通知する（ステップＳ８０１）。この場合、更新装置１３は、制御プログラムの更新を即座に中止することに同意するか否かを改めて確認するようにユーザに促しながら、制御プログラムの現在の更新状況を通知する。ユーザは、ＵＩ機器１４及びユーザ端末４の少なくとも一方を介して、制御プログラムの更新を即座に中止することに同意するか否かを、更新装置１３に対して通知する。
【００７２】
その後、制御プログラムの現在の更新状況が通知されたユーザが、制御プログラムの更新を即座に中止することに同意する場合には（ステップＳ８０２：Ｙｅｓ）、更新装置１３は、制御プログラムの更新を中止する（ステップＳ８８）。他方で、制御プログラムの現在の更新状況が通知されたユーザが、制御プログラムの更新を即座に中止することに同意しない場合には（ステップＳ８０２：Ｎｏ）、更新装置１３は、制御プログラムの更新の中止のユーザによる要求（つまり、車両１の警戒レベルが警戒レベル４であると特定された原因となるユーザからの要求）を取り消す（ステップＳ８０３）。その後、更新装置１３は、制御プログラムの更新を継続する（ステップＳ８４）。
【００７３】
このように、第４更新動作によれば、更新継続リスクがどのような場合であっても、ユーザが制御プログラムの更新に同意すれば、制御プログラムの更新が中止される。従って、第４更新動作では、第３更新動作よりも制御プログラムの更新が中止されやすい。つまり、第３更新動作では、第４更新動作よりも制御プログラムの更新機会が多く確保される。
【００７４】
尚、図６におけるステップＳ８４及びステップＳ８８の動作は、上述した図３におけるステップＳ５４及びステップＳ５８の動作と夫々同一である。
【００７５】
（３）技術的効果
以上説明したように、本実施形態では、警戒レベルに応じて制御プログラムの更新態様が変更される。特に、警戒レベルが低くなればなるほど（つまり、制御プログラムの正常な更新が妨げられる可能性が低くなるほど）、制御プログラムの更新が中止されにくくなる。このため、制御プログラムの正常な更新が妨げられる可能性が少しでもある場合には一律に制御プログラムの更新を中止する比較例の更新装置と比較して、更新装置１３は、制御プログラムの更新機会を相応に確保可能である。
【００７６】
本発明は、上述した実施形態に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴うプログラム更新装置もまた本発明の技術的範囲に含まれるものである。
【符号の説明】
【００７７】
１  車両
１１  ＥＣＵ群
１１１  ＥＣＵ
１２  通信装置
１３  更新装置
２  センタ装置
【図１】
2018097571.tif 000003
【図２】
2018097571.tif 000004
【図３】
2018097571.tif 000005
【図４】
2018097571.tif 000006
【図５】
2018097571.tif 000007
【図６】
2018097571.tif 000008