[A.一実施形態]
1.全体及び各部の構成
(1)全体構成
図1は、この発明の一実施形態に係る車両用プログラム書換えシステム10(以下「書換えシステム10」又は「システム10」という。)の概略的な構成図である。書換えシステム10は、データ伝達システム12と、管理サーバ14(以下「サーバ14」という。)と、複数の車両16とを有する。
システム10では、各車両16の電子制御装置56a〜56d(以下「ECU56a〜56d」という。)に記憶されたプログラムを書き換える(更新する)際に使用する書換えデータ(プログラム)は、データ伝達システム12を介して管理サーバ14から各車両16に伝達する。なお、以下では、ECU56a〜56dをECU56と総称する。
(2)データ伝達システム12
データ伝達システム12は、読取り専用のコンパクト・ディスク22(以下「CD−ROM22」という。)と、衛星放送網24と、移動通信網26とを有する。
CD−ROM22は、書換えデータ(プログラム)を記憶している。CD−ROM22は、輸送業者(郵便、宅配便)による輸送手段(トラック、貨物列車など)を介して車両16のメーカから各ユーザに送付される。
衛星放送網24は、放送衛星28を用いた衛星放送により書換えデータ(プログラム)を配信することができる。ここでの衛星放送としては、例えば、移動体向けの衛星デジタル音声放送(北米におけるシリウスXMラジオ等)を用いることができる。
移動通信網26は、携帯電話86を用いた通信を可能とする通信網である。移動通信網26は、携帯電話86との間の通信により書換えデータ(プログラム)を車両16に送信することができる。
本実施形態では、CD−ROM22、衛星放送網24又は移動通信網26を用いて、書換えデータ(プログラム)を各車両16に伝達することができる。
(3)管理サーバ14
管理サーバ14は、通信装置32と、入力装置34と、モニタ36と、演算装置38と、記憶装置40と、書換えプログラムデータベース42(以下「書換えプログラムDB42」又は「プログラムDB42」という。)とを有する。管理サーバ14の管理者又はこれに準ずる者(以下「管理者等」という。)は、書換えデータ(プログラム)を作成すると、入力装置34を介して当該書換えデータ(プログラム)をプログラムDB42に記憶する。
そして、衛星放送網24を用いて書換えデータ(プログラム)を配信する場合、管理者等は、放送衛星28等を介して書換えデータ(プログラム)を配信する。
移動通信網26を用いて書換えデータ(プログラム)を送信する場合、管理者等は、サーバ14において、新たな書換えデータ(プログラム)をアップロードする。そして、車両16に設置された携帯電話86から書換えデータ(プログラム)の送信要求があった場合、サーバ14は、通信装置32及び移動通信網26を介して書換えデータ(プログラム)を携帯電話86に送信する。
CD−ROM22を用いて書換えデータ(プログラム)を伝達する場合、管理者等は、CD−ROM22に書換えデータ(プログラム)を記憶し、輸送業者を介してCD−ROM22を各ユーザに送付する。このため、厳密には、CD−ROM22は、管理サーバ14から送付されない場合があるが、以下では、CD−ROM22が管理サーバ14から送付されない場合を、CD−ROM22が管理サーバ14から送付される場合を含めて説明する。
(4)車両16
(a)車両16の構成
各車両16は、受信装置52と、プログラム書換え装置54(以下「書換え装置54」という。)と、複数のECU56と、バッテリ58と、バッテリセンサ60と、オルタネータ62と、イグニションスイッチ64(以下「IGSW64」という。)と、ドアロック/乗員検知ユニット66(以下「検知ユニット66」という。)とを備える。本実施形態における車両16は、ガソリン車であるが、これに限らず、例えば、ディーゼル車又は電気自動車(燃料電池車及びハイブリッド車を含む。)であってもよい。
車両16では、データ伝達システム12を介して管理サーバ14から伝達される書換えデータ(プログラム)を受信装置52で受信する。そして、受信装置52が受信した書換えデータ(プログラム)は、書換え装置54により、対象となるECU56に書き込まれる。
なお、図1では、右側の車両16のみ内部構成を示し、その他の車両16については内部構成の記載を省略している。
(b)受信装置52
受信装置52は、データ受信部72と、表示部74と、入力部76と、演算部78と、記憶部80とを有する。
データ受信部72は、無線アンテナ82と、モデム84と、携帯電話86と、携帯電話86用のコネクタ88と、CD−ROMドライブ90(以下「ドライブ90」という。)とを有する。
衛星放送網24を介して書換えデータ(プログラム)が配信される場合、受信装置52は、無線アンテナ82とモデム84とを用いて書換えデータ(プログラム)を受信する。移動通信網26を介して書換えデータ(プログラム)が送信される場合、受信装置52は、携帯電話86を用いて書換えデータ(プログラム)を受信する。CD−ROM22を介して書換えデータ(プログラム)が伝達される場合、CD−ROM22をドライブ90に挿入し、CD−ROM22から書換えデータ(プログラム)を読み出すことにより、受信装置52は、プログラムを受信する。なお、携帯電話86は、ユーザが日頃持ち歩いているものを、車両16の走行時にコネクタ88に接続して用いる。或いは、携帯電話86は、車両16専用に用いるものとし、常時コネクタ88に接続しておいてもよい。
表示部74は、ユーザに対する種々の表示を行う。入力部76は、ユーザの操作に応じた入力を受け付ける。本実施形態では、表示部74及び入力部76を、例えば、タッチパネルにより構成することができる。
演算部78は、受信装置52の各部を制御する。記憶部80は、図示しない揮発性メモリ及び不揮発性メモリを有し、受信装置52用の制御プログラムを記憶すると共に、ECU56のプログラムを書き換えるための書換えデータ(プログラム)を記憶する。
なお、受信装置52には、ナビゲーション装置としての機能を持たせることができる。換言すると、従前のナビゲーション装置に、本実施形態における受信装置52の機能を持たせてもよい。
(c)書換え装置54
書換え装置54は、各ECU56においてプログラムの書換えを行うものであり、入出力部92と、演算部94と、記憶部96とを有する。書換え装置54の機能及び動作の詳細は後述する。
(d)各ECU56
ECU56は、車両16の各部を制御するものであり、ECU56には、例えば、図示しないエンジンの出力を制御するエンジン電子制御装置56a(以下「ENG ECU56a」という。)と、図示しないブレーキシステムの制御を行うアンチロックブレーキシステム電子制御装置56b(以下「ABS ECU56b」という。)と、図示しないエアバッグの制御を行う補助拘束システム電子制御装置56c(以下「SRS ECU56c」という。)と、図示しないイモビライザ装置の制御を行うイモビライザ電子制御装置56d(以下「イモビライザECU56d」という。)とが含まれる。上記のように、これらのECU56a〜56dを含め、各ECUをECU56と総称する。
各ECU56は、入出力部102と、演算部104と、記憶部106とを有する。なお、図1では、ENG ECU56aの入出力部102、演算部104及び記憶部106のみ図示し、その他のECU56b〜56dについては入出力部102、演算部104及び記憶部106の図示を省略している。
また、ENG ECU56aは、エンジン回転数Ne[rpm]を検出するエンジン回転数センサ108と、車両16の車速V[km/h]を検出する車速センサ110とに接続されている。
(e)バッテリ58
バッテリ58は、受信装置52、書換え装置54及び各ECU56に電力を供給する。このうち受信装置52については、基本的には、IGSW64を介して電力供給の有無を切り換えるが、書換え装置54からの指令(起動信号Son)に応じて電力供給の有無を切り換えることもできる。書換え装置54は、バッテリ58と常に接続されている。各ECU56については、IGSW64を介して電力供給の有無を切り換えることができる。詳細は、図2を参照して後述する。
さらに、バッテリ58は、図示しないエンジンの作動(制御系の動作等)のためにも電力を供給する。
(f)バッテリセンサ60
バッテリセンサ60は、バッテリ58の充電率(以下「SOC」という。)、内部抵抗R、電圧(以下「バッテリ電圧Vbat」という。)、消費電流(放電電流)(以下「バッテリ電流Ibat」という。)及び液温(以下「バッテリ液温Tbat」という。)を検出する。
なお、SOCは、例えば、バッテリ電流Ibatの積分値とバッテリ58の開放電圧(以下「OCV」という。)から検知する。内部抵抗Rは、エンジン始動時の大電流放電によるバッテリ電圧Vbatの降下から検知する。バッテリ液温Tbatは、バッテリセンサ60内の雰囲気温度と充電電流及びバッテリ58の容積から推定する。バッテリセンサ60は、SOC[%]の代わりに、残容量[Ah]を検出してもよい。
(g)オルタネータ62
オルタネータ62は、図示しないエンジンと接続され、エンジンの動力に基づいて発電を行う。オルタネータ62が生成した電力は、バッテリ58に充電されると共に、図示しない補機に供給される。
(h)IGSW64
本実施形態のIGSW64は、ロータリ式であり、図示しないインスツルメントパネルに向かって左側から「オフ」、「ACC」(アクセサリ)及び「オン」の位置を選択可能である。また、IGSW64は、「オン」の位置から更に右側(時計回り)に回すと、「ST」(エンジンスタート)の位置となり、エンジンが始動する。
本実施形態では、IGSW64が「オフ」の位置にあるとき、バッテリ58から受信装置52及び各ECU56への電力供給は、基本的に停止される。
なお、後述するように、車両16がいわゆるスマートスタート機能を有している場合、IGSW64は、いわゆるスマートスタート機能で用いるプッシュスイッチであってもよい。
(i)ドアロック/乗員検知ユニット66
検知ユニット66は、ドアロック122の解錠/施錠状態及びシートセンサ124の動作状態を検知し、書換え装置54に出力信号Sh(図2)を送信する。シートセンサ124は、シート内部に配置された圧力センサであり、その検出値により乗員の有無を判定可能である。乗員がいないとき、シートセンサ124の検出値はゼロである。出力信号Shは、ドアロック122の解錠/施錠状態と、シートセンサ124が配置された座席における乗員の有無とを示す。
2.電力供給構成
図2には、車両16における電力の供給及び信号の入出力の様子を説明する図が示されている。
図2に示すように、バッテリ58からの電力(以下「バッテリ電力Pbat」という。)[W]は、受信装置52、書換え装置54及び検知ユニット66に直接供給される。このため、受信装置52、書換え装置54及び検知ユニット66は、IGSW64の位置にかかわらず、動作可能である。
但し、受信装置52については、通常、本実施形態では、受信装置52は、IGSW64の位置が「ACC」又は「オン」であるとき、バッテリ電力Pbatを利用して電源オンとなり、IGSW64の位置が「オフ」であるとき、バッテリ電力Pbatを利用せず、電源オフとなる。例外的に、受信装置52が書換え装置54から起動信号Sonを受信したときは、IGSW64の位置が「オフ」であっても、受信装置52は、書換え装置54から解除指令を受けるまで、バッテリ電力Pbatを利用して電源オンとなる。
また、バッテリ電力Pbatは、IGSW64を介して各ECU56に供給される。より具体的には、IGSW64の位置が「オン」であるとき、バッテリ電力Pbatが各ECU56に供給される。一方、IGSW64の位置が「オフ」又は「ACC」であるとき、バッテリ電力Pbatは各ECU56に供給されない。
さらに、検知ユニット66から書換え装置54には、ドアロック122の解錠/施錠状態及び所定のシートにおける乗員の有無を示す出力信号Sh(ドアロック信号、ドアアンロック信号、乗員検知信号)が出力される。書換え装置54は、出力信号Shに基づいて車両16内におけるユーザ(乗員)の有無を判定し、処理に用いる(詳細は後述する。)。
3.プログラムの書換え
(1)CD−ROM22を介して伝達された書換えデータ(プログラム)の場合
(a)書換え処理の概要
図3は、CD−ROM22を介して伝達された書換えデータ(プログラム)でECU56のプログラムを書き換える際の処理の概要を示すフローチャートである。
ステップS1において、ユーザによりCD−ROM22が受信装置52のドライブ90に挿入されると、受信装置52は、書換えデータ(プログラム)をCD−ROM22から読み出す。
ステップS2において、車両16では、プログラムの書換えの準備を行う。当該準備の中には、バッテリ58の状態の確認が含まれる(詳細は後述する。)。
ステップS3において、車両16では、プログラムの書換えの準備完了をユーザに通知する。ステップS4において、車両16は、ユーザからプログラムの書換え処理の許可を受け付ける。
ステップS5において、車両16は、IGSW64の位置を「オフ」にするようユーザに要求する。この際、IGSW64の位置が「オフ」になっても受信装置52を電源オンのままにするよう設定する。ステップS6において、車両16は、ユーザがIGSW64の位置を「オフ」にしたことに伴う各ECU56の電源オフを確認する。なお、受信装置52はオンのままである。
ステップS7において、車両16は、ユーザにIGSW64の位置を「オン」にするよう要求する。ステップS8において、車両16は、ユーザがIGSW64の位置を「オン」にしたことに伴う各ECU56の再起動(電源オン)を確認する。
ステップS9において、車両16では、プログラムの書換え処理を実行する。但し、後述するように、ステップS9においては、プログラムの書換えの可否を判定し、書換え不可と判定した場合、書換えは行わない。
なお、ステップS1〜S5の間は、車両16は走行が可能である一方、ステップS6〜S9の間は、エンジンが停止し、車両16は走行できない。また、ステップS1〜S3の間は、ドライブ90に別のCD−ROM22(例えば、音楽用)を挿入することはできない。
(b)書換え処理の詳細
図4〜図11は、CD−ROM22を介して伝達された書換えデータ(プログラム)でECU56のプログラムを書き換える際の処理の詳細を示すフローチャートである。図12は、図8〜図9のフローチャートの一部に対応した表示部74の画面の移り変わりの一例を示す画面遷移図である。
なお、ステップS11〜S13は、図3のステップS1に対応し、ステップS14〜S34は、ステップS2に対応する。ステップS35は、ステップS3に対応し、ステップS36〜S37は、ステップS4に対応する。ステップS38〜S39は、ステップS5に対応し、ステップS40〜S41は、ステップS6に対応する。ステップS42は、ステップS7に対応し、ステップS43は、ステップS8に対応する。ステップS44〜S67は、ステップS9に対応する。
ステップS11において、受信装置52のドライブ90にCD−ROM22が挿入される。ステップS12において、受信装置52は、挿入されたCD−ROM22が、ECU56の書換えデータ(プログラム)であるか否かを判定する。挿入されたCD−ROM22が書換えデータ(プログラム)でない場合(S12:NO)、今回の処理を終了する。挿入されたCD−ROM22が書換えデータ(プログラム)である場合(S12:YES)、ステップS13において、受信装置52は、書換えデータ(プログラム)をCD−ROM22から読み込む。書換えデータ(プログラム)を読み込んでいる際、受信装置52は、表示部74にCD−ROM22から書換えデータ(プログラム)を読込み中である旨を表示する。例えば、「書換え用データを読込み中です。走行は可能ですが、CD−ROMドライブは使用できません。」というメッセージを表示部74に表示する。
書換えデータ(プログラム)の読込みが完了すると、ステップS14において、受信装置52から書換え装置54に書換えデータ(プログラム)の読込みが完了したことを通知する。
ステップS15において、書換え装置54は、前回の書換え処理が完了しているか否かを判定する。例えば、書換え装置54は、別の書換えデータ(プログラム)を記憶しているものの、当該書換えデータ(プログラム)を用いた書換え処理が行われていない場合、前回の書換え処理は完了していない。
ステップS16において、書換え装置54は、ステップS15の結果を受信装置52に通知する。
図5のステップS17において、受信装置52は、書換え装置54からの通知に基づき、前回の書換え処理が完了しているか否かを確認する。前回の書換え処理が完了している場合(S17:YES)、ステップS18に進む。前回の書換え処理が完了していない場合(S17:NO)、前回の書換え処理の完了を優先させる。このため、車両16では、今回の書換え処理を終える。なお、この場合、受信装置52は、前回の書換え処理を実行するよう促すメッセージを表示部74に表示してもよい。また、受信装置52の記憶部80又は書換え装置54の記憶部96の容量に空きがある場合、今回受信した書換えデータ(プログラム)を記憶しておくことも可能である。
ステップS18において、受信装置52は、書換え装置54に書換えデータ(プログラム)を転送する。
ステップS19において、書換え装置54は、書換えデータ(プログラム)が正常であるか否かを判定する。当該判定は、例えば、書換えデータ(プログラム)のデータ構造が正しいか否か及び書換えデータ(プログラム)のハッシュ値が正常であるか否かに基づいて行う。
書換えデータ(プログラム)が正常でない場合(S19:NO)、ステップS20において、書換え装置54は、受信装置52にエラーを通知する。ステップS21において、受信装置52は、表示部74にエラー表示をすると共に、記憶部80に記憶していた書換えデータ(プログラム)を消去し、今回の処理を終える。前記エラー表示としては、例えば、書換えデータ(プログラム)に異常があるため、ディーラに連絡すべき旨の表示を用いることができる。
書換えデータ(プログラム)が正常である場合(S19:YES)、ステップS22において、書換え装置54は、書換えデータ(プログラム)を記憶部96に記憶する。
図6のステップS23において、書換え装置54は、記憶部96に記憶した書換えデータ(プログラム)で書換えを行うECU56(以下「対象ECU56tar」という。)に対し、現在の(すなわち、書換え前の)プログラムのバージョンなどの内容が識別できるプログラム識別情報(以下「プログラムID」という。)を要求する。
ステップS24において、ECU56は、現在のプログラムのプログラムIDを書換え装置54に送信する。
ステップS25において、書換え装置54は、対象ECU56tarから受信したプログラムIDが示すプログラムと、受信した書換えデータ(プログラム)との間に互換性があるか否かを判定する。当該判定は、例えば、プログラムID同士を比較することにより行う。互換性がない場合(S26:NO)、ステップS27において、書換え装置54は、受信装置52にエラーを通知する。ステップS28において、受信装置52は、表示部74にエラー表示をすると共に、記憶部80に記憶していた書換えデータ(プログラム)を消去し、今回の処理を終える。
互換性がある場合(S26:YES)、ステップS29において、書換え装置54は、所定のECU56(本実施形態では、ENG ECU56a)に対し、現在のSOC及びバッテリ電流Ibatを要求する。なお、現在のSOC及びバッテリ電流Ibatを取得可能であれば、当該要求は、その他の構成要素(例えば、バッテリセンサ60)に要求してもよい。
ステップS30において、ENG ECU56aは、現在のSOC及びバッテリ電流Ibatを書換え装置54に送信する。
図7のステップS31において、書換え装置54は、書換えデータ(プログラム)の書換え後に車両16(特に、エンジン)の再始動が可能であるか否かを判定する。当該判定は、現在のSOC[%]及びバッテリ電流Ibat[A]に基づいて行う。より具体的には、次の式(1)が満たされるか否かを判定する。
SOC−(Ibat×Tre×K)>THsoc (1)
上記式(1)において、Treは、プログラムの書換えに要する予定処理時間[秒]で、Kは、書換えで消費する電力をSOCに変換する定数[%/A・秒]で、THsoc[%]は、車両16の再始動に必要なSOCの閾値(最低値)である。
予定処理時間Treは、書換えデータ(プログラム)のデータ量Sdに基づいて設定されるものであり、例えば、書換えデータ(プログラム)に含まれる。或いは、データ量Sdに基づいて書換え装置54の演算部94が算出してもよい。
閾値THsocは、実測値又はシミュレーション値であり、書換えデータ(プログラム)に含まれる。或いは、事前に書換え装置54の記憶部96に記憶しておいてもよい。閾値THsocは、単一の固定値であってもよいが、車両16の外気温Tc[℃]、エンジン冷却水温Tw[℃]及びバッテリ58の内部抵抗R[Ω]のうち少なくとも1つに応じて設定することもできる。外気温Tcを用いる場合、外気温Tcが低いほど、閾値THsocを高く設定する。同様に、エンジン冷却水温Twを用いる場合、エンジン冷却水温Twが低いほど、閾値THsocを高く設定する。内部抵抗Rを用いる場合、内部抵抗Rが高いほど、閾値THsocを高く設定する。
ステップS32において、書換え装置54は、ステップS31の結果を受信装置52に通知する。ステップS31の結果が再始動不可である場合(S33:NO)、ステップS34において、受信装置52は、表示部74にエラー表示を行う。例えば、受信装置52は、バッテリ58の容量が不足しているため、バッテリ58を充電した後に再度書換え処理を実行すべき旨を表示部74に表示する。ステップS31の結果が再始動可である場合(S33:YES)、ステップS35において、受信装置52は、対象ECU56tarの書換えを行うため、車両16を安全な場所へ移動し、移動後に書換えを承諾するためのボタン画像(図示せず)及び当該ボタンを押すことを要求するメッセージを表示部74に表示する。
前記ボタン画像へのタッチ操作がなく、ユーザからの承諾が得られない場合(S36:NO)、ステップS35に戻る。前記ボタン画像へのタッチ操作があり、ユーザからの承諾が得られた場合(S36:YES)、ステップS37において、受信装置52は、書換え装置54に対し、ユーザの承諾が得られた旨を通知する。
図8のステップS38において、書換え装置54は、受信装置52に対し、起動信号Sonを送信し、電源オフの禁止を要求する。これにより、IGSW64の位置がオフにされても、受信装置52は電源オンのまま継続する。
ステップS39において、受信装置52は、ユーザに対し、IGSW64の位置をオフにするよう求めるメッセージを表示部74に表示する。当該メッセージは、例えば、図12の画面132のように、「イグニションスイッチをオフにして下さい」とすることができる。また、当該メッセージは、ECU56がオフにされた旨の通知を受信装置52が、書換え装置54から受信するまで継続される。
ステップS40において、書換え装置54は、IGSW64の位置を読み込み、ユーザがIGSW64をオフにしたか否か判断する。ユーザによるIGSW64の操作がなく、オフが検出されない場合(S40:NO)、ステップS40を繰り返す。ユーザがIGSW64を操作しオフが検出された場合(S40:YES)、ステップS41において、書換え装置54は、受信装置52に対し、IGSW64がオフにされた旨(すなわち、ECU56がオフにされた旨)を通知する。なお、IGSW64がオフにされたか否かの判定は、書換え装置54から特定(1つ又は複数)のECU56に対して応答要求を送信し、応答の有無に応じて行ってもよい。この場合、特定のECU56から応答があった場合、IGSW64がオフにされていないと判断し、応答がない場合、IGSW64がオフにされたと判断する。
ステップS42において、受信装置52は、ユーザに対し、IGSW64の再オン及びエンジンの始動の禁止を求めるメッセージを表示部74に表示する。当該メッセージは、例えば、図12の画面134のように、「イグニションスイッチをオンにして下さい(エンジンは始動しないで下さい)」とすることができる。また、当該メッセージは、ステップS43において、IGSW64がオンされたと書換え装置54が判断するまで表示される。
ステップS43において、書換え装置54は、IGSW64の位置を読み込み、ユーザがIGSW64をオンしたか否かを判断する。或いは、ステップS40と同様に特定のECU56に対して応答要求を送信することで、IGSW64のオンオフの判断を行ってもよい。ユーザによるIGSW64の操作がなく、オフが検出されない場合(S43:NO)、ステップS43を繰り返す。ユーザがIGSW64を操作しオンが検出された場合(S43:YES)、ステップS44に進む。
図9のステップS44において、書換え装置54は、いくつかのECU56に対し、車両16の状態を要求する。ここにいう車両16の状態とは、例えば、エンジン回転数Neと、車速Vと、シフトポジションと、各ECU56の温度と、イモビライザECU56dの作動状態と、エアコンディショナの作動状態と、リアガラスの熱線の作動状態と、ヘッドライトの作動状態と、座席の加熱装置の作動状態とを含めることができる。本実施形態では、上記車両16の各状態は、種々のECU56から取得するが、各種のセンサから直接取得することもできる。
ステップS45において、各ECU56は、車両16の状態を書換え装置54に送信する。
ステップS46において、書換え装置54は、車両16が、プログラムを書換え可能な状態にあるか否かを判定する。当該判定は、例えば、次の条件(i)〜(v)が全て満たされているか否かにより行う。
(i) エンジン回転数Neが0[rpm]であること
(ii) 車速Vが0[km/h]であること
(iii) シフトポジションが「P」(パーキング)であること
(iv) 対象ECU56tarの温度が書換え可能な温度(閾値THe)以下であること
(v) イモビライザECU56dが、正規キーが装着されていると判断していること
上記において、条件(i)〜(iii)は、車両16が停止していることを確認するためのものである。条件(iv)は、ECU56の動作異常を判定するためのものである。条件(v)は、正規ユーザが車両16を使用していることを確認するためのものである。
また、この際、次の条件(vi)〜(ix)のいずれかが満たされているか否かも判定する。
(vi) エアコンディショナがオフになっていること
(vii) リアガラスの熱線がオフになっていること
(viii) ヘッドライトがオフになっていること
(ix) 座席の加熱装置がオフになっていること
上記条件(vi)〜(ix)は、バッテリ電力Pbatの消費状態を判定し、ユーザに電力消費の抑制を求めるために用いる。条件(vi)〜(ix)が満たされていなくても、書換え不可とはならないが、後述するステップS50において、ユーザに対してこれらについて警告が行われる。
ステップS47において、書換え装置54は、ステップS46の結果を受信装置52に通知する。条件(i)〜(v)のいずれかが満たされないことにより「書換え不可」である場合(S48:NO)、ステップS49において、受信装置52は、条件(i)〜(v)のうち満たされていない条件を指摘する警告メッセージを表示部74に表示し、ユーザに改善を促す。その後、ステップS44に戻る。
但し、「書換え不可」の場合であっても、受信装置52から書換え装置54に対して特別の信号を送らなくてよい。換言すると、ステップS46で、書換え装置54が「書換え不可」と判定した場合、書換え装置54は、ステップS47で結果を受信装置52に通知した後、ステップS44に戻ればよい。
ステップS48において、「書換え可」である場合(S48:YES)、ステップS50において、受信装置52は、書換え処理の開始の承諾を確認する操作画面(書換え開始承諾確認表示)を表示部74に表示する。当該操作画面としては、例えば、図12の画面136のように、「プログラムの書換えを開始してよろしいですか?」とのメッセージと、書換えの開始を承諾するボタン(「YES」)と、書換えの開始を承諾しないボタン(「NO」)とを含むものを用いることができる。また、この際、上記条件(vi)〜(ix)のいずれかが成立していない場合、その旨を警告するメッセージを併せて表示することができる。
前記操作画面への操作がなく、ユーザからの承諾が得られない場合(S51:NO)、ステップS50に戻る。前記操作画面への操作があり、ユーザからの承諾が得られた場合(S51:YES)、ステップS52において、受信装置52は、プログラムの書換え中であることを知らせるメッセージを表示部74に表示する。例えば、「プログラムを書換え中です。イグニションスイッチをオフにしないで下さい。」と表示する。なお、図示していないが、書換えの開始を承諾しないボタン(「NO」)が押された場合、書換えを行わずに処理を終了する。そして、次に、IGSW64がオンにされたとき、ステップS29から開始する。
ステップS53において、受信装置52は、書換え装置54に対し、ユーザの承諾が得られた旨を通知する。
図10のステップS54において、書換え装置54は、各ECU56との間で通信を行って各ECU56のセキュリティを解除する。
ステップS55において、書換え装置54は、ECU56に対し、ECU56相互間で行う故障診断の停止を要求する。ステップS56において、各ECU56は、前記故障診断を停止する。
ステップS57において、書換え装置54は、各ECU56に対し、ECU56間での通信の停止を要求する。ステップS58において、各ECU56は、相互の通信を停止する。
ステップS59において、書換え装置54は、対象ECU56tarについて、プログラムの書換えを実行する。
ステップS60において、書換え装置54は、対象ECU56tarのプログラム書換えが終了したら、対象ECU56tarに対し、現在の(すなわち、書換え後の)プログラムのバージョンなどの内容が識別できるプログラムIDを要求する。
ステップS61において、ECU56は、現在のプログラムのプログラムIDを書換え装置54に送信する。
ステップS62において、書換え装置54は、対象ECU56tarから受信したプログラムIDを確認することで書換えの成否を確認する。書換えが成功し、正常に終了した場合(S63:YES)、ステップS64において、書換え装置54は、受信装置52に正常終了を通知し、書換え処理を終了する。
ステップS65において、受信装置52は、プログラムの書換えの正常終了を通知するメッセージを表示部74に表示する。当該メッセージには、例えば、プログラムの書換えが終了した旨、IGSW64をオフにすべき旨並びに書換えの終了を示すコード番号(具体的な数値等)、当該コード番号をメーカに連絡すべき旨及びその連絡先を含めることができる。従って、当該メッセージを読んだユーザは、メーカに当該コード番号を知らせることで、メーカは、プログラムの書換えの終了を確認することができる。なお、コード番号の通知は、電話、電子メール、ホームページにおける入力画面への入力等の方法により行うことができる。
なお、書換えが失敗し、正常に終了しなかった場合(S63:NO)、ステップS66において、書換え装置54は、受信装置52にエラーを通知する。ステップS67において、受信装置52は、IGSW64をオフにし、ディーラに連絡することを求めるメッセージを表示部74に表示する。例えば、「プログラムの書込みが異常終了しました。イグニションスイッチをオフにし、ディーラに連絡して下さい。」というメッセージを表示部74に表示する。
(c)プログラムの書換え中にIGSW64の位置がオフにされた場合の処理
図13〜図15には、プログラムの書換え中にIGSW64の位置がオフにされた場合の処理のフローチャートが示されている。図16は、図13のフローチャートの一部に対応した表示部74の画面の移り変わりの一例を示す画面遷移図である。
図13〜図15では図示していないが、書換え装置54は、対象ECU56tarの書換え実行(図10のS59)開始前に、受信装置52に対して起動信号Sonを送信し、IGSW64の位置をオフした場合も受信装置52の電源オンを継続することを要求しておく(図8のS38)。
また、プログラムの書換え中は、例えば、図16の画面142のように、書換え作業中である旨及び残り時間を表示する。
ステップS101において、ユーザが誤ってIGSW64の位置をオフにすると、書換え装置54は、IGSW64の位置がオフにされたことを検出する。ステップS102において、書換え装置54は、IGSW64がオフにされたことを受信装置52に通知する。受信装置52は、事前に起動信号Sonを受信しており、IGSW64の位置がオフにされているにもかかわらず、電源オンを継続する。
ステップS103において、IGSW64がオフされたことの通知を受信した受信装置52は、IGSW64の位置をオフにしたことにより書換え作業が中断した旨のメッセージを表示部74に表示する。当該メッセージは、例えば、図16の画面144のように、「イグニションスイッチのオフにより、書換え作業が中断しました」とすることができる。
ステップS104において、書換え装置54は、車両16内にユーザ(乗員)が存在するか否かを判定する。当該判定は、ドアロック/乗員検知ユニット66からの出力信号Shに基づいて行う。上記のように、出力信号Shは、ドアロック122の解錠/施錠状態と、圧力センサとしてのシートセンサ124の検出値とを示す。ドアロック122が施錠され、且つシートセンサ124の検出値がゼロであるとき、乗員がいないと判定可能である。
車両16内に乗員が存在しない場合(S104:NO)、ステップS105において、書換え装置54は、次回の起動予約を記憶部96に記憶する。起動予約とは、次回、IGSW64の位置がオンにされたとき、プログラムの書換えを再開することの設定であり、フラグにより規定する。続くステップS106において、書換え装置54は、書換えに失敗したプログラムのプログラムIDを記憶する。
ステップS107において、書換え装置54は、受信装置52に対し、表示部74の表示の中止を要求する信号(解除要求信号)を出力する。車両16内に乗員がいなければ、表示部74の表示を見る者もいない。このため、表示部74の表示を中止することにより、消費電力を抑制することができる。なお、当該要求には、受信装置52の電源オフの要求を含めることができる。ステップS108において、当該要求を受けた受信装置52は、表示部74の表示を中止する(表示部74をオフにする。)。
ステップS104に戻り、車両16内に乗員が存在する場合(S104:YES)、ステップS109において、書換え装置54は、IGSW64の位置を読み込み、IGSW64の状態を判断する。或いは、書換え装置54は、特定(1つまたは複数)のECU56に対して応答要求を送信し、その応答の有無によりIGSW64の状態を判断してもよい。この場合、特定のECU56から応答があった場合、IGSW64がオン状態と判断し、応答がない場合、IGSW64がオフ状態と判断する。
ステップS109において、IGSW64がオフ状態であった場合(S109:NO)、ステップS110において、書換え装置54は、その旨を受信装置52に通知する。
ステップS111において、受信装置52は、IGSW64の位置をオンに戻すことを求めるメッセージを表示部74に表示する。当該メッセージとしては、例えば、図16の画面146のように、「書換えが中断しています。エンジンを始動せずにイグニションスイッチをオンにして下さい。(再書換えを実施します)」を用いることができる。ステップS111の後は、ステップS104に戻る。
ステップS109において、IGSW64がオン状態であった場合(S109:YES)、ステップS112において、書換え装置54は、図示しないタイマをスタートさせる。
図14のステップS113において、書換え装置54は、プログラムの書換えを中断したECU56に対し、プログラムIDを要求する。送信先のECU56がオンしている場合、当該ECU56は、ステップS114において、書換え装置54に対してプログラムIDを送信する。
ステップS115において、書換え装置54は、プログラムIDの返信があったか否かを判定する。返信がなかった場合(S115:NO)、ステップS116において、書換え装置54は、所定時間(例えば、5秒)が経過したか否かを判定する。
所定時間が経過していない場合(S116:NO)、ステップS113に戻る。所定時間が経過した場合(S116:YES)、無限ループを避けるため、ステップS117において、書換え装置54は、受信装置52に対してその旨(エラー)を通知する。ステップS118において、受信装置52は、IGSW64をオフにし、ディーラに連絡することを求めるメッセージを表示部74に表示する。例えば、「プログラムの書込みが異常終了しました。イグニションスイッチをオフにし、ディーラに連絡して下さい。」というメッセージを表示部74に表示する。
ステップS115において、返信があった場合(S115:YES)、図10のステップS55〜S58と同様のステップS119〜S122を行う。次いで、図9のステップS44〜S45と同様のステップS123〜S124(図15)を行う。その後、図9のステップS46に進む。
(d)プログラムの書換え中にIGSW64の位置がオフにされ車両16内にユーザ(乗員)がいなくなった後、ユーザが再乗車してきた場合の処理
図17〜図19は、プログラムの書換え中にIGSW64の位置がオフにされ、車両16内にユーザ(乗員)がいなくなった後、ユーザが再乗車してきた場合の処理のフローチャートである。図20は、図17〜図19のフローチャートの一部に対応した表示部74の画面の移り変わりの一例を示す画面遷移図である。
ステップS201において、ドアロック122が解除されると、ドアロック/乗員検知ユニット66からの出力信号Shにより書換え装置54にその旨が通知され、書換え装置54は、ドアロック122の解除を検出する。
ステップS202において、書換え装置54は、起動予約(図13のS105)があるか否かを判定する。起動予約がない場合(S202:NO)、今回の処理を終了する。起動予約がある場合(S202:YES)、ステップS203において、書換え装置54は、受信装置52に対して起動信号Sonを送信し、起動(電源オン)を要求する。ステップS204において、受信装置52は、起動する。
ステップS205〜S211は、図13のステップS104〜S110と同様である。但し、ドアロック122が解除された後、ユーザが車両16内に入り込むまでの時間を考慮する。
ステップS212において、受信装置52は、IGSW64の位置がオフにされたことによりプログラムの書換え処理が中断していることを示すメッセージを表示部74に表示する。当該メッセージは、例えば、図20の画面152のように、「イグニションスイッチのオフにより、プログラムの書換え作業が中断した状態です」とすることができる。
ステップS213において、受信装置52は警告音を出力する。
ステップS214において、受信装置52は、IGSW64の位置をオンにすることを求めるメッセージを表示部74に表示する。当該メッセージとしては、例えば、図20の画面154のように、「プログラムの書換えが中断しています。エンジンを始動せずにイグニションスイッチをオンにして下さい。(再書換えを実施します)」を用いることができる。ステップS214の後は、ステップS205に戻る。
ステップS210において、IGSW64がオン状態であった場合(S210:YES)、図17〜図19のステップS215〜S229を実行する。このうちステップS215〜S221は、図13及び図14のステップS112〜S118と同様であり、ステップS222〜S225は、図10のステップS55〜S58と同様であり、ステップS226〜S227は、図9のステップS44〜S45と同様である。
ステップS228において、書換え装置54は、受信装置52に対し、プログラムの書換えを再開する旨及びそのために車両状態をチェックする旨のメッセージの表示を要求する。ステップS229において、受信装置52は、当該メッセージを表示部74に表示する。当該メッセージは、例えば、図20の画面156のように、「プログラムの書換えを再開します。車両状態をチェックします」とすることができる。ステップS229の次は、図9のステップS46に続く。
(2)衛星放送網24を介して伝達されたプログラムの場合
(a)書換え処理の概要
図21は、衛星放送網24を介して伝達された書換えデータ(プログラム)でECU56のプログラムを書き換える際の処理の概要を示すフローチャートである。
ステップS301において、受信装置52は、衛星放送網24を介して書換えデータ(プログラム)を受信する。
ステップS302〜S309は、図3のステップS2〜S9と同様である。
なお、ステップS301〜S305の間は、車両16は走行が可能である一方、ステップS306〜S309の間は、エンジンが停止し、車両16は走行できない。
(b)書換え処理の詳細
図22〜図24は、衛星放送網24を介して伝達された書換えデータ(プログラム)でECU56のプログラムを書き換える際の処理の詳細を示すフローチャートである。なお、CD−ROM22を介して伝達された書換えデータ(プログラム)で書き換える際の処理(図4〜図11)と共通する処理については、図4〜図11を参照して説明する。
ステップS311〜S314は、図21のステップS301に対応する。
ステップS311において、受信装置52は、衛星放送網24を介して車両情報を受信する。具体的には、図示しない放送局を介してサーバ14が車両情報を送信すると、この車両情報は、放送衛星28で中継された後、受信装置52の無線アンテナ82に受信される。無線アンテナ82に受信された車両情報は、モデム84で復調されて演算部78に出力される。
ステップS312において、受信装置52は、受信した車両情報が、車両16(自車両)に合致したものであるかどうかを判定する。車両情報が車両16に合致する場合(S312:YES)、ステップS313に進む。車両情報が車両16に合致しない場合(S312:NO)、今回の処理を終える。
ステップS313において、受信装置52は、衛星放送網24を介して書換えデータ(プログラム)を受信する。具体的な受信方法は、ステップS311と同様である。また、書換えデータ(プログラム)の内容は、CD−ROM22の場合(図4〜図11)と同様である。
ステップS314において、受信装置52は、書換えデータ(プログラム)の受信が完了したか否かを判定する。受信が完了していない場合(S314:NO)、ステップS313に戻る。受信が完了した場合(S314:YES)、ステップS315に進む。
ステップS315において、受信装置52から書換え装置54に書換えデータ(プログラム)の受信を通知する。
図22〜図24のステップS316〜S329は、図4〜図6のステップS15〜S28と同様である。対象ECU56tarとの互換性がある場合(S327:YES)、ステップS330において、書換え装置54は、互換性の確認が終了した旨を受信装置52に通知する。その後、図6のステップS29に続く。
(3)移動通信網26を介して伝達された書換えデータ(プログラム)の場合
(a)書換え処理の概要
図25は、移動通信網26を介して伝達された書換えデータ(プログラム)でECU56のプログラムを書き換える際の処理の概要を示すフローチャートである。
ステップS401において、受信装置52は、移動通信網26を介して書換えデータ(プログラム)を受信する。なお、移動通信網26を介して書換えデータ(プログラム)を受信する場合、携帯電話86を事前にコネクタ88に接続しておく。
ステップS402〜S409は、図3のステップS2〜S9及び図21のステップS302〜S309と同様である。
なお、ステップS401〜S405の間は、車両16は走行が可能である一方、ステップS406〜S409の間は、エンジンが停止し、車両16は走行できない。
(b)書換え処理の詳細
図26は、移動通信網26を介して伝達された書換えデータ(プログラム)でECU56のプログラムを書き換える際の処理の詳細を示すフローチャートである。なお、衛星放送網24を介して伝達された書換えデータ(プログラム)でECU56のプログラムを書き換える際の処理(図22〜図24)と共通する処理については、図22〜図24を参照して説明する。
ステップS411において、ユーザは、携帯電話86をコネクタ88に接続する。
ステップS412において、受信装置52の携帯電話86は、サーバ14との間で通信を確立する。当該通信の確立は、サーバ14からの書換えデータ(プログラム)の転送がされたときに行われる。或いは、事前に設定された所定のタイミング(例えば、携帯電話86とコネクタ88の接続時、当該接続時から所定間隔又は所定時刻)で携帯電話86及び移動通信網26を介してサーバ14に対して新たな書換えデータ(プログラム)の有無を問い合わせることもできる。
ステップS413〜S417は、図22のステップS313〜S317と同様である。その後、図23のステップS318に続く。
4.本実施形態における効果
以上のような実施形態によれば、ECU56のプログラムを書き換えた後に車両16を再始動可能であるか否かを書換え後のバッテリ58の予測状態に基づいて判定し、再始動可能な場合、プログラムの書換えを実行する。従って、プログラムの書換え後に、確実に車両16を再始動することができる。
本実施形態では、書換え装置54は、車両16の外気温Tc、エンジン冷却水の水温Tw及びバッテリ58の内部抵抗Rに応じて閾値THsocを変化させる。これにより、再始動可能な条件をより適切に設定することが可能となる。
本実施形態において、書換え装置54は、プログラムの書換え開始時におけるSOC及びバッテリ電流Ibatと、プログラムの書換えの予定処理時間Treとに基づいて、プログラムの書換え後のSOCを予測し、予測したSOCが閾値THsocより大きい場合に、プログラムの書換えを実行する。これにより、プログラムの書換え後のバッテリ58の充電状態を簡易に予測し、これを用いることが可能となる。
また、本実施形態によれば、図27のような場合でも、プログラムの書換え前に、ECU56がオフにされることを確実にすることが可能となる。
図27には、IGSW64の出力信号Sigと各ECU56の認識との関係を示す図が示されている。図27では、時点t1においてIGSW64の位置が「オン」から「オフ」に切り換えられた後、時点t5において「オン」に切り換えられている。時点t1から時点t5までの時間は非常に短く、例えば、数百msである。
また、図27の例では、各ECU56は、それぞれで出力信号Sigを読み込むタイミングは異なる。また、各ECU56は、チャタリングの影響を排除するため、出力信号Sigが2つの制御周期で同じレベル(ハイ又はロー)であるとき、その内容を取り込む。
例えば、第1ECUは、時点t2においてIGSW64がオフであることを検知するが、直ぐにはオフであるとは認識せず、時点t2及び時点t4においてIGSW64がオフであると検知して初めてIGSW64がオフであると認識する。一方、第2ECUは、時点t3でIGSW64がオフであると検知するが、時点t6ではIGSW64がオンであると検知する。このため、第2ECUは、IGSW64がオフであると2回続けて検知していないため、第2ECUは、IGSW64がオンのままであると認識してしまう。
上記のような場合でも、本実施形態によれば、プログラムの書換えのためには、IGSW64の位置をオフにしECU56が電源オフになった後、IGSW64の位置がオンに戻されることを必要とする。また、ユーザに対するIGSW64をオンの位置に戻す操作の指示は、IGSW64の位置がオフになったことに連動してECU56がオフにされたことを検出してから表示される。このため、プログラムの書換え前に、ECU56がオフにされることを確実にすることが可能となる。
よって、ECU56による処理が継続されたままの状態においてプログラムの書換えが行われることを防止することが可能となる。
本実施形態によれば、プログラムの書換え中に、IGSW64の位置が誤ってオフにされ、プログラムの書換えができなくなると、IGSW64の位置をオンに戻す操作の指示を表示部74に表示させる。このため、ユーザ(乗員)に誤操作を伝え、正常な状態に戻すことを促すことが可能となる。従って、ユーザが車内にいる場合であっても、プログラムの書換えが可能となり、当該書換えをより好適に行うことが可能となる。
本実施形態において、書換え装置54は、IGSW64の位置をオンに戻す操作の指示を表示部74に表示させている状態で、ユーザの降車を検出すると、プログラムの書換えの中断に関する情報としての起動予約を記録し、電源オンの継続の解除を求める解除要求信号を受信装置52に出力する。
これにより、プログラムの書換え中にIGSW64の位置が誤ってオフにされたままユーザが降車した場合、プログラムの書換えの中断に関する情報を残しておくことが可能となる。従って、当該情報を用いて改めてプログラムの書換えを行うことができる。また、受信装置52の電源オンを解除することにより、表示部74における操作の指示を中止させる。従って、表示部74における不要な電力消費を回避することが可能となる。
本実施形態において、書換え装置54は、検知ユニット66の出力信号Shに基づいてユーザの降車を検出する。出力信号Shを用いることにより、簡易にユーザの降車を判定することが可能となる。
本実施形態において、書換え装置54は、ユーザの乗車を検出すると、起動予約が記録されているか否かを確認し、起動予約が記録されている場合、表示部74にIGSW64の位置をオンにする操作の指示を表示させる。これにより、プログラムの書換えの中断が起こった場合に、書換えの再開を行う際に好適な表示を行うことが可能となる。
本実施形態において、書換え装置54は、検知ユニット66の出力信号Shに基づいてユーザの再乗車を検出する。出力信号Shを用いることにより、簡易にユーザの乗車を判定することが可能となる。
[B.この発明の応用]
なお、この発明は、上記実施形態に限らず、この明細書の記載内容に基づき、種々の構成を採り得ることはもちろんである。例えば、以下に示す構成を採ることができる。
1.プログラム書換えシステム10
上記実施形態では、システム10を車両用に用いたが、これに限らず、例えば、再始動時に電力を要する移動体(飛行機、船舶、ヘリコプタ等)であってもよい。
2.データ伝達システム12
上記実施形態では、書換えデータ(プログラム)の伝達を、CD−ROM22、衛星放送網24及び移動通信網26を用いて行ったが、いずれか1つ又は2つを用いてもよい。或いは、これら以外の方法{例えば、放送衛星又は携帯電話を用いない無線通信(例えば、道路脇に設置された光ビーコンとの間の無線通信)}により書換えデータ(プログラム)を伝達させてもよい。また、CD−ROM22の代わりに別の記憶媒体(DVD−ROM、フラッシュメモリ等)を用いることもできる。
3.車両16
上記実施形態では、車両16をガソリン車としたが、これに限らず、例えば、再始動時に電力を要する駆動源を有する車両{電気自動車(ハイブリッド車及び燃料電池車を含む。)、ディーゼル車等}であってもよい。
4.ECU56
上記実施形態では、ECU56として、ENG ECU56a、ABS ECU56b、SRS ECU56c及びイモビライザECU56dを挙げたが、ECU56の数及び種類はこれに限らない。
5.IGSW64
上記実施形態では、IGSW64としてロータリ式のスイッチを用いたが、これに限らない。例えば、車両16が、いわゆるスマートスタート機能を備える場合、プッシュ動作により「オフ」、「アクセサリ」及び「オン」を順番に切り換えるプッシュスイッチをIGSW64として用いることもできる。
6.再始動の可否の判定
(1)書換え後のバッテリ58の状態の推定
上記実施形態では、プログラムの書換え後のバッテリ58の状態を推定するために、SOC、バッテリ電流Ibat及び予定処理時間Treを用いたが{上記式(1)参照}、書換え後のバッテリ58の状態を推定することができれば、これに限らない。例えば、所定充電状態から現時点までのバッテリ58の放電電力量ΔAH1[A・h]と、現時点からプログラムの書換え後までの予想放電電力量ΔAH2[A・h]とに基づいて行うこともできる。所定充電状態とは、例えば、フル充電状態、SOC80%、SOC75%等、適宜設定可能なものである。
より具体的には、次の式(2)が満たされるか否かを判定する。
ΔAH1+ΔAH2<TH_ΔAH (2)
上記式(2)において、閾値TH_ΔAHは、車両16の再始動を可能とする所定充電状態からの放電電力量の閾値(最大値)である。閾値TH_ΔAHは、実測値又はシミュレーション値であり、例えば、書換えデータ(プログラム)に含まれる。なお、予想放電電力量ΔAH2は、現時点におけるバッテリ電流Ibatと、プログラムの書換えに要する予定処理時間Treの積として計算される。
上記のような判定方法によっても、プログラムの書換え後のバッテリ58の状態を簡易に予測し、これを用いることが可能となる。
さらに、特開2008−155892号公報に記載の方法によって、プログラムの書換え後のバッテリ58の状態を予測することもできる。
(2)プログラムの書換えを不可とする条件
上記実施形態では、プログラムの書換えを不可とする条件として、例えば、図7のステップS31では、バッテリ58が、プログラムの書換え後に車両16の再始動が可能であることを用いた。また、例えば、図9のステップS46では、(i)エンジン回転数Neが0[rpm]であること、(ii)車速Vが0[km/h]であること、(iii)シフトポジションが「P」(パーキング)であること、(iv)対象ECU56tarの温度が閾値THe以下であること、及び(v)イモビライザECUが、正規キーが装着されていると判断していることを用いた。
しかし、プログラムの書換えを不可とする条件は、これに限らない。例えば、プログラムの書換え開始時のバッテリ電流Ibatが閾値THi[A]より大きい場合、書換えを不可としてもよい。閾値THiは、プログラム書換え時には不要な電気負荷が高いことを示す電流値を設定することができる。
また、プログラムの書換え開始時のバッテリ58の内部抵抗Rが閾値THr[Ω]より大きい場合、書換えを不可とすることもできる。閾値THrは、バッテリ58の劣化が過度に進んだことを判定するための閾値であり、実測値又はシミュレーション値を用いることができる。
図28は、上記式(1)による判定に加え、閾値THi、THrを用いて書換えの可否を判定するフローチャートである。このフローチャートは、例えば、図7のステップS31で用いることができる。
ステップS501において、書換え装置54は、ENG ECU56a又はバッテリセンサ60から現在のSOC、バッテリ電流Ibat及び内部抵抗Rを取得する。
ステップS502において、書換え装置54は、内部抵抗Rが閾値THrより大きいか否かを判定する。内部抵抗Rが閾値THrより大きい場合(S502:YES)、ステップS503において、書換え装置54は、プログラムの書換え後の再始動ができない可能性があるため、プログラムの書換えは不可であると判定する。内部抵抗Rが閾値THr以下の場合(S502:NO)、ステップS504に進む。
ステップS504において、書換え装置54は、バッテリ電流Ibatが閾値THiより大きいか否かを判定する。バッテリ電流Ibatが閾値THiより大きい場合(S504:YES)、ステップS503において、書換え装置54は、不要な電気負荷が高いため、プログラムの書換えは不可であると判定する。バッテリ電流Ibatが閾値THi以下の場合(S504:NO)、ステップS505に進む。
ステップS505において、書換え装置54は、プログラムの書換え後のSOCの予測値SOCre[%]を算出する。予測値SOCreは、上記式(1)における「SOC−(Ibat×Tre×K)」と等しい。
ステップS506において、書換え装置54は、予測値SOCreが閾値THsocよりも大きいか否かを判定する。予測値SOCreが閾値THsoc以下である場合(S506:NO)、ステップS503において、書換え装置54は、プログラムの書換えは不可であると判定する。予測値SOCreが閾値THsocより大きい場合(S506:YES)、ステップS507において、書換え装置54は、プログラムの書換えは可であると判定する。
一般に、内部抵抗Rは、バッテリ58の劣化状況を反映する。このため、内部抵抗Rが閾値THrより大きい場合、プログラムの書換え後のバッテリ58の充電状態を正確に予測することが困難になる。また、バッテリ電流Ibatが大きい場合もプログラムの書換え後のバッテリ58の充電状態を正確に予測することが困難になる。図28のフローチャートによれば、書換え装置54は、予測値SOCreが閾値THsocより大きい場合でも、プログラムの書換え開始時の内部抵抗Rが閾値THrより大きい場合又はバッテリ電流Ibatが閾値THiより大きい場合は、プログラムの書換えを中止する。このため、予測の精度が低い場合、プログラムの書換えを中止することで、車両16の再始動ができなくなる可能性を低減することが可能となる。
なお、図28のステップS505、S506の代わりに、上述した式(2)を用いる判定を行ってもよい。
7.ECU56の電源オフの判定
上記実施形態において、書換え装置54は、IGSW64の位置を読み込み、又は、ECU56に対して応答要求を送信し、ECU56から応答が無い場合に、ECU56の電源オフを検出したが、ECU56の電源オフを検出する方法はこれに限らない。例えば、プログラムIDを要求し、その応答の有無によってECU56の電源オフを検出することもできる。或いは、IGSW64の位置を読み込み、オフを検出してから所定時間後又は送信した応答要求にECU56からの応答が無いことによりECU56が電源オフにされたとみなすことも可能である。
8.ユーザの降車及び再乗車の検出
上記実施形態では、ドアロック/乗員検知ユニット66からの出力、すなわち、ドアロック122及びシートにかかる圧力により、ユーザの降車及び再乗車を検知したが、いずれか一方のみを用いてもよい。或いは、その他の方法(例えば、シートに設置した荷重センサ又は運転席付近の赤外線を検知する赤外線センサ)を用いてユーザの降車及び再乗車(車両16内における乗員の有無)を検知することもできる。