(58)【調査した分野】(Int.Cl.,DB名)
前記判定手段は更に、前記制御プログラムの更新を開始する前に、前記制御プログラムを更新する際に生ずるリスクに応じて前記制御プログラムに設定されている更新ランクが、前記車両において更新することが許容された前記制御プログラムに設定された前記更新ランクの上限値を示す実施可能ランクよりも小さいか否かを判定し、
前記更新手段は、前記実施可能ランクよりも小さい前記更新ランクが設定された前記制御プログラムを更新し、前記実施可能ランクよりも大きい前記更新ランクが設定された前記制御プログラムを更新しない
請求項1に記載のプログラム更新装置。
【発明を実施するための形態】
【0009】
以下、本発明のプログラム更新装置の実施形態について説明する。尚、以下では、本発明のプログラム更新装置の実施形態が搭載された車両1について説明する。
【0010】
(1)車両1の構成
はじめに、
図1を参照しながら、本実施形態の車両1の構成について説明する。
図1は、本実施形態の車両1の構成を示すブロック図である。
【0011】
図1に示すように、車両1は、ECU(Electronic Control Unit)群11と、通信装置12と、更新装置(言い換えれば、リプログラミング装置)13と、UI(User Interface)機器14を備えている。ECU群11、通信装置12、更新装置13及びUI機器14は、データバス等の車載ネットワーク15を介して通信可能である。
【0012】
ECU群11は、車両1を制御するための少なくとも一つのECU111を含む。ECU111は、ECU111に割り当てられた(言い換えれば、配置された)制御プログラムを実行することで、車両1を制御するための制御動作を行う。
【0013】
図1に示す例では、ECU群11は、7個のECU111を備えている。例えば、
図1に示す例では、ECU群11は、動力源ECU111aと、ブレーキECU111bと、操舵ECU111cと、表示ECU111dと、周辺環境情報管理ECU111eと、車両情報管理ECU111fと、更新ランク監視ECU111gとを含む。動力源ECU111aは、車両1が備える動力源(例えば、エンジンやモータジェネレータ)を制御する。ブレーキECU111bは、車両1が備えるブレーキ装置を制御する。操舵ECU111cは、車両1が備える操舵装置を制御する。表示ECU111dは、UI機器14に含まれるディスプレイを制御する。車両情報管理ECU111eは、車両1に関する情報を管理する。周辺環境情報管理ECU111fは、車両1の周辺環境に関する情報を管理する。尚、車両1に関する情報や、周辺環境に関する情報は、例えば、車両1が備える検出装置(例えば、センサやカメラやレーダ等)から取得されてもよいし、路上に設置された路側機から取得されてもよい。更新ランク監視ECU111gは、各ECU111に割り当てられた(つまり、各ECU111が実行する)制御プログラムを更新する際に生ずるリスクに応じて各ECU111に個別に設定される(言い換えれば、各ECU111に割り当てられた制御プログラムに個別に設定される)パラメータである更新ランクを管理する。
【0014】
通信装置12は、車両1の外部に設置されたセンタ装置2と、無線の通信回線3を介して通信可能である。本実施形態では特に、通信装置12は、更新装置13の制御下で、各ECU111に割り当てられた制御プログラムを更新する(言い換えれば、書き換える又はリプログラミングする)ための更新用データをセンタ装置2から受信する。
【0015】
更に、通信装置12は、車両1のユーザが備えるユーザ端末(例えば、スマートフォンやタブレットやパソコン等)4と、無線の通信回線5を介して通信可能である。本実施形態では特に、通信装置12は、更新装置13の制御下で、制御プログラムの更新についてユーザと更新装置13との間で情報をやり取りする必要がある場合に、ユーザ端末4との間で当該情報を送受信可能である。
【0016】
更新装置13は、通信装置12が受信した更新用データを用いて、制御プログラムを更新する。例えば、更新装置13は、UI機器14が表示したプログラム選択用のUIを介したユーザの指示に応じて、ユーザが選択した制御プログラムを更新する。
【0017】
UI機器14は、車両1とユーザとの間で情報をやりとりすることが可能なHMI(Human Machine Interface)機器である。UI機器14は、例えば、ナビゲーション装置(特に、ナビゲーション装置が備えるディスプレイ、タッチパネル及び操作ボタンの少なくとも一つ)を含んでいる。但し、上述したユーザ端末4(特に、ユーザ端末4が備えるディスプレイ、タッチパネル及び操作ボタンの少なくとも一つ)がUI機器14として用いられてもよい。ユーザ端末4がUI機器14として用いられる場合には、車両1自身がUI機器14を備えていなくてもよい。
【0018】
尚、ECU群11は、複数のECU111のうちの少なくとも2つのECU111に代えて、当該少なくとも2つのECU111が行う2種類の制御動作を行うことが可能な単一のECU111を含んでいてもよい。複数のECU111のうちの少なくとも一つは、
図1に示すように車載ネットワーク15を介して通信装置12に接続されていてもよいし、他のECU111を介して通信装置12に接続されていてもよい。更新ランク監視ECU111gは、車両1の制御に関する情報を管理するCGW(Central Gate Way)の少なくとも一部であってもよいし、CGWから独立したECU111であってもよいし、ナビゲーション装置の一部(例えば、ナビゲーション装置を制御するCPUの一部)であってもよい。
【0019】
(2)制御プログラムを更新する動作の流れ
続いて、更新装置13が制御プログラムを更新する動作の流れについて説明する。センタ装置2は、制御プログラムを更新するための更新用データの車両1への配信の準備が整うと、通信回線3を介して、車両1(特に、更新装置13)に対して制御プログラムの更新を促す更新要求を送信する。具体的には、制御プログラムの更新はECU111毎に行われるため、センタ装置2は、どのECU111を更新するかを示す更新要求を送信する。更新要求を受信した更新装置13は、通信装置12及び通信回線3を介して、センタ装置2から更新用データを受信する。その後、更新装置13は、受信した更新用データを用いて、更新要求が示すECU111に割り当てられた制御プログラムを更新する。以下、
図2から
図6を参照しながら、更新装置13が制御プログラムを更新する動作の流れについて更に詳細に説明する。
【0020】
(2−1)制御プログラムを更新する動作の全体の流れ
初めに、
図2を参照しながら、更新装置13が制御プログラムを更新する動作の全体の流れについて説明する。
図2は、更新装置13が制御プログラムを更新する動作の全体の流れを示すフローチャートである。尚、
図2に示す動作は、更新装置13がセンタ装置2からの更新要求を受信した場合に、更新装置13によって開始される。
【0021】
図2に示すように、更新要求を受信した更新装置13は、まず、更新要求が示すECU111に割り当てられた制御プログラムの更新を行うことが可能か否かを判定する(ステップS11)。一例として、更新装置13は、更新しようとしている制御プログラムの更新ランクaに基づいて、制御プログラムの更新を行うことが可能か否かを判定する。
【0022】
具体的には、上述したように、各ECU111が実行する制御プログラムには、制御プログラムを更新する際に生ずるリスクに応じた更新ランクが設定されている。更新ランクは、制御プログラムを更新する際に生ずるリスクが大きくなるほど大きな値を有する指標である。一例として、本実施形態では、制御プログラムには、更新ランクとして、1から20の値が設定されるものとする。尚、更新ランクは、更新ランク監視ECU111gによって各制御プログラムに設定される。
【0023】
更に、更新装置13は、制御プログラムを更新するにあたって、実施可能な更新ランク(以降、“実施可能ランクb”と称する)を設定する。実施可能ランクbは、車両1において更新することが許容された制御プログラムに設定された更新ランクの上限値を示す指標である。つまり、実施可能ランクbは、車両1において更新することが許容された制御プログラムに設定された更新ランクと、車両1において更新することが許容されていない制御プログラムに設定された更新ランクとを区別するための閾値である。制御プログラムの更新は、当該制御プログラムが本来行うべき制御動作に影響を与えることのない範囲で行われる。つまり、制御プログラムの更新は、当該制御プログラムが本来行うべき制御動作に影響を与えてしまう場合には、行われないことが好ましい。更に、制御プログラムが本来行うべき制御動作は、車両1の状態(例えば、車両1が停止しているか否か、車両1が加速しているか否か、車両1がどのような路面を走行しているか、車両1が備える各種装置(特に、ECU111)が機能しているか否か等)によっても変わり得る。従って、実施可能ランクbは、車両1の状態に応じて、制御プログラムが本来行うべき制御動作に影響を与えることなく更新することができる程度にリスクが小さい制御プログラムの更新ランクと、制御プログラムが本来行うべき制御動作に影響を与えることなく更新することができないほどにリスクが大きい制御プログラムの更新ランクとを区別可能な値に設定される。
【0024】
更新装置13は、更新ランクaが実施可能ランクb以下である場合には、制御プログラムの更新を行うことが可能であると判定する。他方で、更新装置13は、更新ランクaが実施可能ランクbより大きい場合には、制御プログラムの更新を行うことが可能でないと判定する。
【0025】
ステップS11の判定の結果、制御プログラムの更新を行うことが可能でないと判定された場合には(ステップS11:No)、更新装置13は、
図2に示す動作を終了する。他方で、ステップS11の判定の結果、制御プログラムの更新を行うことが可能であると判定された場合には(ステップS11:Yes)、更新装置13は、車両1の電源状態を確認し(ステップS21)、電源状態を、更新対象のECU111への安定的な電力供給か可能な状態に遷移させる(ステップS22)。
【0026】
ステップS21の動作の一例として、車両1の電源状態を示す変数cを、現在の電源状態に合致した値に設定する(言い換えれば、更新する)動作があげられる。例えば、更新装置13は、ACC(アクセサリ)電源がオフ状態にあり且つIG(イグニション)電源がオフ状態にある場合には、変数cを0に設定する。例えば、更新装置13は、ACC電源がオン状態にあり且つIG電源がオフ状態にある場合には、変数cを1に設定する。例えば、更新装置13は、IG電源がオン状態にあり且つ動力源が駆動していない(例えば、エンジンが駆動していない又はモータジェネレータがレディ状態にない)場合には、変数cを2に設定する。例えば、更新装置13は、IG電源がオン状態にあり且つ動力源が駆動している(例えば、エンジンが駆動している又はモータジェネレータがレディ状態にある)場合には、変数cを3に設定する。
【0027】
ステップS22の動作の一例として、変数cが2又は3となるように電源状態を変更する動作があげられる。具体的には、更新装置13は、ステップS21で設定した変数cが0又は1である場合には、変数cが2又は3となるように電源状態を変更する。一方で、ステップS21で設定した変数cが2又は3である場合には、更新装置13は、電源状態を変更しなくてもよい。つまり、更新装置13は、少なくともIG電源がオン状態となるように電源状態を変更する。
【0028】
その後、更新装置13は、センタ装置2から受信した更新用データを用いて、更新対象のECU111に割り当てられた制御プログラム(つまり、更新対象の制御プログラム)の更新を開始する(ステップS23)。
【0029】
制御プログラムの更新が開始された後は、更新装置13は、ドライバの指示に基づいて行われる車両1の制御の少なくとも一部を制限する(ステップS24)。ドライバの指示に基づいて車両1が制御される(例えば、車両1が発進される、加速される又は減速される)と、実施可能ランクbが変動する可能性がある。なぜならば、ドライバの指示に基づいて車両1が制御されると、車両1の状態が変わり、車両1の状態が変わると、上述したように実施可能ランクbが変動する可能性があるからである。このため、更新装置13は、実施可能ランクbを更新ランクaよりも小さくしてしまう可能性がある制御を要求するドライバの指示を制限する。つまり、更新装置13は、実施可能ランクbを更新ランクaよりも小さくしてしまう可能性がある制御が行われないように、ECU群11等を制御する。更新装置13は、ドライバの指示に基づいて行われる車両1の制御の少なくとも一部を制限する動作を、制御プログラムの更新が完了するまで継続する。
【0030】
制御プログラムの更新が開始された後には更に、更新装置13は、車両1が、制御プログラムの更新を正常に完了することが可能な正常な状態にあるか否かを判定する(ステップS31)。例えば、更新装置13は、更新ランクaが実施可能ランクbよりも大きくなってしまった場合には、車両1が正常な状態にないと判定してもよい。例えば、更新装置13は、更新ランクaが設定された制御プログラムの更新中には想定されていない制御が車両1に対して行われた場合には、車両1が正常な状態にないと判定してもよい。例えば、更新装置13は、実施可能ランクbが設定されている状況下では想定されていない制御が車両1に対して行われた場合には、車両1が正常な状態にないと判定してもよい。例えば、更新装置13は、車両1に何らかの異常が発生している場合には、車両1が正常な状態にないと判定してもよい。例えば、更新装置13は、UI機器14及びユーザ端末4の少なくとも一方を介してユーザが制御プログラムの更新の中止を要求している場合には、車両1が正常な状態にないと判定してもよい。その他の場合には、更新装置13は、車両1が正常な状態にあると判定してもよい。
【0031】
ステップS31の判定の結果、車両1が正常な状態にあると判定された場合には(ステップS31:Yes)、更新装置13は、制御プログラムの更新を継続する(ステップS4)。以降、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで(ステップS9)、更新装置13は、ステップS31以降の処理を繰り返す。
【0032】
他方で、ステップS31の判定の結果、車両1が正常な状態にないと判定された場合には(ステップS31:No)、車両1が正常な状態にないことに起因して、制御プログラムの正常な更新が妨げられる可能性があると推定される。この場合、更新装置13は、車両1が、制御プログラムの正常な更新が妨げられる可能性(つまり、度合い)に応じて区分される複数種類の警戒レベルのうちのいずれの警戒レベルにあるかを特定する(ステップS32)。つまり、更新装置13は、車両1の状態に基づいて、制御プログラムの正常な更新が妨げられる可能性を示す指標である警戒レベルを特定する(ステップS32)。尚、本実施形態の「警戒レベル」は、上述した「状態レベル」の一具体例である。
【0033】
例えば、車両1に一過性の異常が新たに発生したことに起因して車両1が正常な状態にないと判定された場合には、更新装置13は、車両1は、制御プログラムの正常な更新が即座に妨げられる状態にはないもの、今後の正常な更新が妨げられる状態へと遷移する可能性があると判定してもよい。この場合、更新装置13は、車両1が警戒レベル1にあると特定してもよい。このような警戒レベル1に対応する異常の一例として、ドアロックが意図せず開錠される異常や、窓が意図せず開かれる異常や、エンジンルームが意図せず開かれる(典型的には、ボンネットが開かれる)異常や、バッテリの電圧が低下する異常等があげられる。
【0034】
例えば、車両1に既に発生していた一過性の異常がそのまま解消されていない(或いは、進行した)ことに起因して車両1が正常な状態にないと判定された場合には、更新装置13は、車両1は、制御プログラムの正常な更新が妨げられる可能性がある状態にあると判定してもよい。この場合、更新装置13は、車両1が、警戒レベル1よりも制御プログラムの正常な更新が妨げられる可能性が高いことを示す警戒レベル2にあると特定してもよい。このような警戒レベル2に対応する異常の一例として、ドアロックが意図せず開錠された後に車内にユーザ(或いは、その他の何らかの物体)が侵入する異常や、窓が意図せず開かれた後に動力源を始動するための操作(例えば、スタートボタンを押す操作)が行われる異常等があげられる。
【0035】
例えば、車両1に不可逆性の異常(つまり、一過性ではない異常)が新たに発生したことに起因して車両1が正常な状態にないと判定された場合には、更新装置13は、車両1は、制御プログラムの正常な更新が妨げられる可能性がより一層高い状態にあると判定してもよい。この場合、更新装置13は、車両1が、警戒レベル2よりも制御プログラムの正常な更新が妨げられる可能性が高いことを示す警戒レベル3にあると特定してもよい。このような警戒レベル3に対応する異常の一例として、バッテリの電圧が急激に低下する異常や、車内が浸水する異常や、更新対象のECU111に対する不正アクセスが行われる異常等があげられる。
【0036】
例えば、ユーザが制御プログラムの更新の中止を要求したことに起因して車両1が正常な状態にないと判定された場合には、更新装置13は、車両1は、制御プログラムの正常な更新を中止するべき状態にあると判定してもよい。この場合、更新装置1は、車両1が、警戒レベル3よりも制御プログラムの正常な更新が妨げられる可能性が高い(具体的には、制御プログラムの正常な更新が確実に中止される)ことを示す警戒レベル4にあると特定してもよい。
【0037】
尚、ここで説明した警戒レベルはあくまで一例に過ぎず、その他の警戒レベルが用いられてもよい。例えば、3段階以下に又は5段階以上に区分される警戒レベルが用いられてもよい。例えば、制御プログラムの正常な更新が妨げられる可能性を段階的な値として示す警戒レベルが用いられてもよいし、制御プログラムの正常な更新が妨げられる可能性を連続的な値として示す警戒レベルが用いられてもよい。
【0038】
その後、更新装置13は、ステップS32で特定した警戒レベルに応じて、制御プログラムの更新態様を変更する(ステップS33からステップS8)。具体的には、更新装置13は、ステップS32で特定した警戒レベルに応じて、制御プログラムの更新を継続するか又は制御プログラムの更新を中止するかを決定し、その決定内容に合わせて制御プログラムの更新を継続するか又は制御プログラムの更新を中止する(ステップS33からステップS8)。特に、更新装置13は、制御プログラムの正常な更新が妨げられる可能性が低くなるほど(つまり、警戒レベルが低くなるほど)制御プログラムの更新が中止されにくくなるように、制御プログラムの更新態様を変更する。言い換えれば、更新装置13は、制御プログラムの正常な更新が妨げられる可能性が高くなるほど(つまり、警戒レベルが高くなるほど)制御プログラムの更新が中止されやすくなるように、制御プログラムの更新態様を変更する。以下、車両1が警戒レベル1から警戒レベル4のいずれかにあるかが特定される上述した一例を用いて、制御プログラムの更新態様の変更動作の一例について更に説明を進める。
【0039】
更新装置13は、車両1の警戒レベルが警戒レベル1であるか否かを判定する(ステップS33)。ステップS33の判定の結果、車両1の警戒レベルが警戒レベル1であると判定された場合には(ステップS33:Yes)、更新装置13は、後に
図3を参照しながら説明する第1更新動作を行う(ステップS5)。第1更新動作が行われた後には、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで(ステップS9)、更新装置13は、ステップS31以降の処理を繰り返す。
【0040】
他方で、ステップS33の判定の結果、車両1の警戒レベルが警戒レベル1でないと判定された場合には(ステップS33:No)、更新装置13は、車両1の警戒レベルが警戒レベル2であるか否かを判定する(ステップS34)。ステップS34の判定の結果、車両1の警戒レベルが警戒レベル2であると判定された場合には(ステップS34:Yes)、更新装置13は、後に
図4を参照しながら説明する第2更新動作を行う(ステップS6)。第2更新動作が行われた後には、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで(ステップS9)、更新装置13は、ステップS31以降の処理を繰り返す。
【0041】
他方で、ステップS34の判定の結果、車両1の警戒レベルが警戒レベル2でないと判定された場合には(ステップS34:No)、更新装置13は、車両1の警戒レベルが警戒レベル3であるか否かを判定する(ステップS35)。ステップS35の判定の結果、車両1の警戒レベルが警戒レベル3であると判定された場合には(ステップS35:Yes)、更新装置13は、後に
図5を参照しながら説明する第3更新動作を行う(ステップS7)。第3更新動作が行われた後には、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで(ステップS9)、更新装置13は、ステップS31以降の処理を繰り返す。
【0042】
他方で、ステップS35の判定の結果、車両1の警戒レベルが警戒レベル3でないと判定された場合には(ステップS35:No)、車両1の警戒レベルが警戒レベル4であると推定される。この場合には、更新装置13は、後に
図6を参照しながら説明する第4更新動作を行う(ステップS8)。第4更新動作が行われた後には、制御プログラムの更新が完了するまで又は後述するように制御プログラムの更新が中止されるまで(ステップS9)、更新装置13は、ステップS31以降の処理を繰り返す。
【0043】
(2−2)第1更新動作
続いて、
図3を参照しながら、車両1の警戒レベルが警戒レベル1であると判定された場合に行われる第1更新動作の流れについて説明する。
図3は、車両1の警戒レベルが警戒レベル1であると判定された場合に行われる第1更新動作の流れを示すフローチャートである。
【0044】
図3に示すように、更新装置13は、現在行われている制御プログラムの更新をこのまま継続した場合に生ずる更新継続リスクを特定する(ステップS51)。
【0045】
例えば、更新装置13は、更新対象の制御プログラムの更新ランクaに基づいて、更新継続リスクを特定してもよい。具体的には、更新装置13は、更新ランクaが第1範囲に収まる値である(例えば、0以上且つ3以下の値である)場合には、更新継続リスクがゼロであると特定してもよい。更新装置13は、更新ランクaが第1範囲に属する値よりも大きな値が属する第2範囲に収まる値である(例えば、4以上且つ9以下の値である)場合には、更新継続リスクが低い(例えば、ゼロよりも大きく且つ第1所定量以下である)と特定してもよい。更新装置13は、更新ランクaが第2範囲に属する値よりも大きな値が属する第3範囲に収まる値である(例えば、10以上且つ15以下の値である)場合には、更新継続リスクがやや高い(例えば、第1所定量よりも大きく且つ第2所定量(但し、第2所定量>第1所定量)以下である)と特定してもよい。更新装置13は、更新ランクaが第3範囲に属する値よりも大きな値が属する第4範囲に収まる値である(例えば、16以上且つ18以下の値である)場合には、更新継続リスクが高い(例えば、第2所定量よりも大きく且つ第3所定量(但し、第3所定量>第2所定量)以下である)と特定してもよい。更新装置13は、更新ランクaが第4範囲に属する値よりも大きな値が属する第5範囲に収まる値である(例えば、19以上且つ20以下の値である)場合には、更新継続リスクが最も高い(例えば、第3所定量よりも大きく、制御プログラムの更新を直ちに中止するべきであるほどに高い)と特定してもよい。
【0046】
例えば、更新装置13は、更新対象の制御プログラムの更新ランクaと実施可能ランクbとの差分Δ(=a−b)に基づいて、更新継続リスクを特定してもよい。具体的には、更新装置13は、差分Δが第6範囲に収まる値である(例えば、10以上の値である)場合には、更新継続リスクがゼロであると特定してもよい。更新装置13は、差分Δが第6範囲に属する値よりも小さな値が属する第7範囲に収まる値である(例えば、6以上且つ9以下の値である)場合には、更新継続リスクが低いと特定してもよい。更新装置13は、差分Δが第7範囲に属する値よりも小さな値が属する第8範囲に収まる値である(例えば、3以上且つ5以下の値である)場合には、更新継続リスクがやや高いと特定してもよい。更新装置13は、差分Δが第8範囲に属する値よりも小さな値が属する第9範囲に収まる値である(例えば、0以上且つ2以下の値である)場合には、更新継続リスクが高いと特定してもよい。更新装置13は、差分Δが第9範囲に属する値よりも小さな値が属する第10範囲に収まる値である(例えば、0未満の値である)場合には、更新継続リスクが最も高いと特定してもよい。
【0047】
例えば、更新装置13は、更新対象のECU111が機能しなくなった場合のリスクに基づいて、更新継続リスクを特定してもよい。具体的には、更新装置13は、更新対象のECU111が機能しなくなった場合であってもその影響を無視できる場合には、更新継続リスクがゼロであると特定してもよい。更新装置13は、更新対象のECU111が機能しなくなった場合にそれほど多くのユーザが不満を感じない(言い換えれば、少数のユーザのみが不満を感じる)場合には、更新継続リスクが低いと特定してもよい。更新装置13は、更新対象のECU111が機能しなくなった場合に多くのユーザが不満を感じる場合には、更新継続リスクがやや高いと特定してもよい。更新装置13は、更新対象のECU111が機能しなくなった場合に車両1が走行不可能になる可能性がある場合には、更新継続リスクが高いと特定してもよい。更新装置13は、更新対象のECU111が機能しなくなった場合に車両1の危険度が増加する可能性がある場合には、更新継続リスクが最も高いと特定してもよい。
【0048】
その後、更新装置13は、更新継続リスクがゼロであるか否かを判定する(ステップS521)。ステップS521の判定の結果、更新継続リスクがゼロであると判定される場合には(ステップS521:Yes)、更新装置13は、車両1に何らかの異常が発生している(つまり、車両1が正常な状態にない)旨をユーザに通知する(ステップS53)。例えば、ユーザが車両1に乗車している場合には、更新装置13は、UI機器14及びユーザ端末4の少なくとも一方を介して、ユーザに異常が発生している旨を通知してもよい。例えば、ユーザが車外にいる場合には、更新装置13は、ユーザ端末4を介して、ユーザに異常が発生している旨を通知してもよい。その後、更新装置13は、制御プログラムの更新を継続する(ステップS54)。
【0049】
他方で、ステップS521の判定の結果、更新継続リスクがゼロであると判定されない場合には(ステップS521:No)、更新装置13は、更新継続リスクが低いか否かを判定する(ステップS522)。ステップS522の判定の結果、更新継続リスクが低いと判定される場合には(ステップS522:Yes)、更新装置13は、異常が発生している旨をユーザに通知した上で(ステップS53)、制御プログラムの更新を継続する(ステップS54)。
【0050】
他方で、ステップS522の判定の結果、更新継続リスクが低いと判定されない場合には(ステップS522:No)、更新装置13は、更新継続リスクがやや高いか否かを判定する(ステップS523)。ステップS523の判定の結果、更新継続リスクがやや高いと判定される場合には(ステップS523:Yes)、更新装置13は、更新対象の制御プログラムの更新が必須であるか否かを判定する(ステップS55)。例えば、更新対象の制御プログラムの更新が、今すぐ行う必要がある更新である場合には、更新装置13は、更新対象の制御プログラムの更新が必須であると判定してもよい。今すぐ行う必要がある更新の一例として、制御プログラムのバグを修正するための更新や、車両1の不快な挙動を修正するための更新や、法規に対応するための更新があげられる。他方で、例えば、更新対象の制御プログラムを今すぐ更新する必要がない場合には、更新装置13は、更新対象の制御プログラムの更新が必須でないと判定してもよい。
【0051】
ステップS55の判定の結果、更新対象の制御プログラムの更新が必須であると判定される場合には(ステップS55:Yes)、更新装置13は、異常が発生している旨をユーザに通知した上で(ステップS53)、制御プログラムの更新を継続する(ステップS54)。
【0052】
他方で、ステップS55の判定の結果、更新対象の制御プログラムの更新が必須でないと判定される場合には(ステップS55:No)、更新装置13は、車両1に発生している異常(つまり、車両1が正常な状態にないと判定される原因となった異常)が、復旧可能な異常であるか否かを判定する(ステップS56)。例えば、異常の復旧は、車両1(特に、ECU群11)によって自動的に行われることがある。この場合、異常が復旧された後に車両1の走行に支障が生じない場合には、更新装置13は、車両1に発生している異常が、復旧可能な異常であると判定してもよい。他方で、異常が復旧された後に車両1の走行に支障が生じる可能性がある場合には、更新装置13は、車両1に発生している異常が、復旧可能な異常でないと判定してもよい。或いは、例えば、異常の復旧は、UI機器14及びユーザ端末4の少なくとも一方を介してユーザに復旧の確認を行った後に行われることがある。この場合、ユーザが異常の復旧に同意した場合には、更新装置13は、車両1に発生している異常が、復旧可能な異常であると判定してもよい。他方で、ユーザが異常の復旧に同意しなかった場合には、更新装置13は、車両1に発生している異常が、復旧可能な異常でないと判定してもよい。
【0053】
ステップS56の判定の結果、車両1に発生している異常が復旧可能な異常であると判定される場合には(ステップS56:Yes)、更新装置13は、異常を復旧させた上で(ステップS57)、制御プログラムの更新を継続する(ステップS54)。他方で、ステップS56の判定の結果、車両1に発生している異常が復旧可能な異常でないと判定される場合には(ステップS56:No)、更新装置13は、制御プログラムの更新を中止する(ステップS58)。更に、更新装置13は、制御プログラムの更新を中止した旨を、UI機器14及びユーザ端末4の少なくとも一方を介してユーザに通知する(ステップS59)。
【0054】
他方で、ステップS523の判定の結果、更新継続リスクがやや高いと判定されない場合には(ステップS523:No)、更新装置13は、更新継続リスクが高いか否かを判定する(ステップS524)。ステップS524の判定の結果、更新継続リスクが高いと判定される場合には(ステップS524:Yes)、更新装置13は、既に説明済みのステップS56以降の処理を行う。
【0055】
他方で、ステップS524の判定の結果、更新継続リスクが高いと判定されない場合には(ステップS524:No)、更新継続リスクが最も高いと推定される。この場合には、更新装置13は、制御プログラムの更新を中止し(ステップS58)、制御プログラムの更新を中止した旨をユーザに通知する(ステップS59)。
【0056】
このように、第1更新動作によれば、(i)更新継続リスクが最も高い場合、(ii)更新継続リスクが高く且つ車両1に発生している異常が復旧可能な異常でない場合、及び、(iii)更新継続リスクがやや高く、制御プログラムの更新が必須でなく且つ車両1に発生している異常が復旧可能な異常でない場合に、制御プログラムの更新が中止される。
【0057】
(2−3)第2更新動作
続いて、
図4を参照しながら、車両1の警戒レベルが警戒レベル2であると判定された場合に行われる第2更新動作の流れについて説明する。
図4は、車両1の警戒レベルが警戒レベル2であると判定された場合に行われる第2更新動作の流れを示すフローチャートである。
【0058】
図4に示すように、更新装置13は、更新継続リスクを特定する(ステップS61)。その後、更新装置13は、更新継続リスクがゼロであるか否かを判定する(ステップS621)。
【0059】
更新継続リスクがゼロであると判定される場合には(ステップS621:Yes)、更新装置13は、異常が発生している旨をユーザに通知した上で(ステップS63)、制御プログラムの更新を継続する(ステップS64)。他方で、更新継続リスクがゼロであると判定されない場合には(ステップS621:Yes)、更新装置13は、更新継続リスクが低いか否かを判定する(ステップS622)。
【0060】
更新継続リスクが低いと判定される場合には(ステップS622:Yes)、更新装置13は、更新対象の制御プログラムの更新が必須であるか否かを判定する(ステップS651)。更新対象の制御プログラムの更新が必須であると判定される場合には(ステップS651:Yes)、更新装置13は、異常が発生している旨をユーザに通知した上で(ステップS63)、制御プログラムの更新を継続する(ステップS64)。他方で、更新対象の制御プログラムの更新が必須でないと判定される場合には(ステップS651:No)、更新装置13は、車両1に発生している異常が、復旧可能な異常であるか否かを判定する(ステップS66)。車両1に発生している異常が復旧可能な異常であると判定される場合には(ステップS66:Yes)、更新装置13は、異常を復旧させた上で(ステップS67)、制御プログラムの更新を継続する(ステップS64)。他方で、車両1に発生している異常が復旧可能な異常でないと判定される場合には(ステップS66:No)、更新装置13は、制御プログラムの更新を中止し(ステップS68)、制御プログラムの更新を中止した旨をユーザに通知する(ステップS69)。他方で、更新継続リスクが低いと判定されない場合には(ステップS622:No)、更新装置13は、更新継続リスクがやや高いか否かを判定する(ステップS623)。
【0061】
更新継続リスクがやや高いと判定される場合には(ステップS623:Yes)、更新装置13は、更新対象の制御プログラムの更新が必須であるか否かを判定する(ステップS652)。更新対象の制御プログラムの更新が必須であると判定される場合には(ステップS652:Yes)、既に説明済みのステップS66以降の処理を行う。他方で、更新対象の制御プログラムの更新が必須でないと判定される場合には(ステップS652:No)、更新装置13は、制御プログラムの更新を中止し(ステップS68)、制御プログラムの更新を中止した旨をユーザに通知する(ステップS69)。他方で、更新継続リスクがやや高いと判定されない場合には(ステップS623:No)、更新継続リスクは、高い又は最も高いと推定される。この場合には、更新装置13は、制御プログラムの更新を中止し(ステップS68)、制御プログラムの更新を中止した旨をユーザに通知する(ステップS69)。
【0062】
このように、第2更新動作によれば、(i)更新継続リスクが最も高い場合、(ii)更新継続リスクが高い場合、(iii)更新継続リスクがやや高く且つ制御プログラムの更新が必須でない場合、(iv)更新継続リスクがやや高く、制御プログラムの更新が必須であり且つ車両1に発生している異常が復旧可能な異常でない場合、及び、(v)更新継続リスクが低く、制御プログラムの更新が必須でなく且つ車両1に発生している異常が復旧可能な異常でない場合に、制御プログラムの更新が中止される。従って、第2更新動作では、第1更新動作よりも制御プログラムの更新が中止されやすい。つまり、第1更新動作では、第2更新動作よりも制御プログラムの更新機会が多く確保される。
【0063】
尚、
図4におけるステップS61の動作は、上述した
図3におけるステップS51の動作と同一である。
図4におけるステップS621からステップS623の動作は、上述した
図3におけるステップS521からステップS523の動作と夫々同一である。
図4におけるステップS63からステップS64の動作は、上述した
図3におけるステップS53からステップS54の動作と夫々同一である。
図4におけるステップS651及びステップS652の夫々の動作は、上述した
図3におけるステップS55の動作と夫々同一である。
図4におけるステップS66からステップS69の動作は、上述した
図3におけるステップS56からステップS59の動作と夫々同一である。
【0064】
(2−4)第3更新動作
続いて、
図5を参照しながら、車両1の警戒レベルが警戒レベル3であると判定された場合に行われる第3更新動作の流れについて説明する。
図5は、車両1の警戒レベルが警戒レベル3であると判定された場合に行われる第3更新動作の流れを示すフローチャートである。
【0065】
図5に示すように、更新装置13は、更新継続リスクを特定する(ステップS71)。その後、更新装置13は、更新継続リスクがゼロであるか否かを判定する(ステップS721)。
【0066】
更新継続リスクがゼロであると判定される場合には(ステップS721:Yes)、車両1に発生している異常が、復旧可能な異常であるか否かを判定する(ステップS76)。車両1に発生している異常が復旧可能な異常であると判定される場合には(ステップS76:Yes)、更新装置13は、異常を復旧させた上で(ステップS77)、制御プログラムの更新を継続する(ステップS74)。他方で、車両1に発生している異常が復旧可能な異常でないと判定される場合には(ステップS76:No)、更新装置13は、制御プログラムの更新を中止し(ステップS78)、制御プログラムの更新を中止した旨をユーザに通知する(ステップS79)。他方で、更新継続リスクがゼロであると判定されない場合には(ステップS721:No)、更新装置13は、更新継続リスクが低いか否かを判定する(ステップS722)。
【0067】
更新継続リスクが低いと判定される場合には(ステップS722:Yes)、更新装置13は、更新対象の制御プログラムの更新が必須であるか否かを判定する(ステップS75)。更新対象の制御プログラムの更新が必須であると判定される場合には(ステップS75:Yes)、更新装置13は、既に説明済みのステップS76以降の動作を行う。他方で、更新対象の制御プログラムの更新が必須でないと判定される場合には(ステップS75:No)、更新装置13は、制御プログラムの更新を中止し(ステップS78)、制御プログラムの更新を中止した旨をユーザに通知する(ステップS79)。他方で、更新継続リスクが低いと判定されない場合には(ステップS722:No)、更新継続リスクは、やや高い、高い又は最も高いと推定される。この場合には、更新装置13は、制御プログラムの更新を中止し(ステップS78)、制御プログラムの更新を中止した旨をユーザに通知する(ステップS79)。
【0068】
このように、第3更新動作によれば、(i)更新継続リスクが最も高い場合、(ii)更新継続リスクが高い場合、(iii)更新継続リスクがやや高い場合、(iv)更新継続リスクが低く且つ制御プログラムの更新が必須でない場合、及び、(v)更新継続リスクがゼロであり且つ車両1に発生している異常が復旧可能な異常でない場合に、制御プログラムの更新が中止される。従って、第3更新動作では、第2更新動作よりも制御プログラムの更新が中止されやすい。つまり、第2更新動作では、第3更新動作よりも制御プログラムの更新機会が多く確保される。
【0069】
尚、
図5におけるステップS71の動作は、上述した
図3におけるステップS51の動作と同一である。
図5におけるステップS721からステップS722の動作は、上述した
図3におけるステップS521からステップS522の動作と夫々同一である。
図5におけるステップS74からステップS79の動作は、上述した
図3におけるステップS54からステップS59の動作と夫々同一である。
【0070】
(2−5)第4更新動作
続いて、
図6を参照しながら、車両1の警戒レベルが警戒レベル4であると判定された場合に行われる第4更新動作の流れについて説明する。
図6は、車両1の警戒レベルが警戒レベル4であると判定された場合に行われる第4更新動作の流れを示すフローチャートである。
【0071】
図6に示すように、更新装置13は、更新対象の制御プログラムの現在の更新状況を、UI機器14及びユーザ端末4の少なくとも一方を介して、ユーザに通知する(ステップS801)。この場合、更新装置13は、制御プログラムの更新を即座に中止することに同意するか否かを改めて確認するようにユーザに促しながら、制御プログラムの現在の更新状況を通知する。ユーザは、UI機器14及びユーザ端末4の少なくとも一方を介して、制御プログラムの更新を即座に中止することに同意するか否かを、更新装置13に対して通知する。
【0072】
その後、制御プログラムの現在の更新状況が通知されたユーザが、制御プログラムの更新を即座に中止することに同意する場合には(ステップS802:Yes)、更新装置13は、制御プログラムの更新を中止する(ステップS88)。他方で、制御プログラムの現在の更新状況が通知されたユーザが、制御プログラムの更新を即座に中止することに同意しない場合には(ステップS802:No)、更新装置13は、制御プログラムの更新の中止のユーザによる要求(つまり、車両1の警戒レベルが警戒レベル4であると特定された原因となるユーザからの要求)を取り消す(ステップS803)。その後、更新装置13は、制御プログラムの更新を継続する(ステップS84)。
【0073】
このように、第4更新動作によれば、更新継続リスクがどのような場合であっても、ユーザが制御プログラムの更新に同意すれば、制御プログラムの更新が中止される。従って、第4更新動作では、第3更新動作よりも制御プログラムの更新が中止されやすい。つまり、第3更新動作では、第4更新動作よりも制御プログラムの更新機会が多く確保される。
【0074】
尚、
図6におけるステップS84及びステップS88の動作は、上述した
図3におけるステップS54及びステップS58の動作と夫々同一である。
【0075】
(3)技術的効果
以上説明したように、本実施形態では、警戒レベルに応じて制御プログラムの更新態様が変更される。特に、警戒レベルが低くなればなるほど(つまり、制御プログラムの正常な更新が妨げられる可能性が低くなるほど)、制御プログラムの更新が中止されにくくなる。このため、制御プログラムの正常な更新が妨げられる可能性が少しでもある場合には一律に制御プログラムの更新を中止する比較例の更新装置と比較して、更新装置13は、制御プログラムの更新機会を相応に確保可能である。
【0076】
本発明は、上述した実施形態に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴うプログラム更新装置もまた本発明の技術的範囲に含まれるものである。