(57)【要約】【課題】記憶するプログラムの容量をあまり増大させることなく、車両制御用プログラムが正常に更新されなかった場合においても、車両を適切に制御することができる車両の制御装置および車両制御用プログラムの更新装置を提供する。【解決手段】書換可能エリアARPに記憶された車両制御用プログラムPRNと、書換不能エリアARIPに記憶されたブートプログラムPRN、および車両制御用プログラムよりも容量が小さいフェールセーフ制御用プログラムPRFと、車両制御用プログラムを更新する車両制御用プログラム更新手段15と、制御装置2が起動されたときにブートプログラムPRBを実行するとともに、車両制御用プログラムの更新が正常に行われたと判定されたときに、車両制御用プログラムを実行し、更新が正常に行われていないと判定されたときに、フェールセーフ制御用プログラムPRFを実行する制御手段15と、を備える。【選択図】図3
2009042850.tif 000002
【特許請求の範囲】
【請求項１】
書換可能エリアおよび書換不能エリアを有する不揮発性メモリと、
前記書換可能エリアに記憶され、車両を通常制御するための車両制御用プログラムと、
前記書換不能エリアに記憶され、前記車両制御用プログラムの更新が正常に行われたか否かを判定するためのブートプログラムと、
前記書換不能エリアに記憶されるとともに、前記車両制御用プログラムよりも容量が小さく、前記車両をフェールセーフ制御するためのフェールセーフ制御用プログラムと、
前記車両制御用プログラムを更新する車両制御用プログラム更新手段と、
制御装置が起動されたときに前記ブートプログラムを実行するとともに、その実行による判定結果に応じ、前記車両制御用プログラムの更新が正常に行われたと判定されたときに、前記車両制御用プログラムを実行し、前記車両制御用プログラムの更新が正常に行われていないと判定されたときに、前記フェールセーフ制御用プログラムを実行する制御手段と、
を備えることを特徴とする車両の制御装置。
【請求項２】
車両を制御する車両の制御装置と、
前記車両に搭載され、更新用プログラムを取得するとともに、前記制御装置と通信可能に構成された書換装置と、を備え、
前記制御装置は、
書換可能エリアおよび書換不能エリアを有する不揮発性メモリと、
前記書換可能エリアに記憶され、前記車両を通常制御するための車両制御用プログラムと、
前記書換不能エリアに記憶され、前記車両制御用プログラムの更新が正常に行われたか否かを判定するためのブートプログラムと、
前記書換不能エリアに記憶されるとともに、前記車両制御用プログラムよりも容量が小さく、前記車両をフェールセーフ制御するためのフェールセーフ制御用プログラムと、
前記車両制御用プログラムを、前記書換装置から送信された前記更新用プログラムに書き換えることにより、前記車両制御用プログラムを更新する車両制御用プログラム更新手段と、
前記制御装置が起動されたときに前記ブートプログラムを実行するとともに、その実行による判定結果に応じ、前記車両制御用プログラムの更新が正常に行われたと判定されたときに、前記車両制御用プログラムを実行し、前記車両制御用プログラムの更新が正常に行われていないと判定されたときに、前記フェールセーフ制御用プログラムを実行する制御手段と、を有することを特徴とする車両制御用プログラムの更新装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両を制御する車両の制御装置、および当該制御装置に用いられる車両制御用プログラムの更新装置に関する。
【背景技術】
【０００２】
従来の車両の制御装置として、例えば特許文献１に開示されたものが知られている。この制御装置は、初期状態において通信用プログラムが記憶された不揮発性のフラッシュメモリと、揮発性のＲＡＭを有するマイコンと、マイコンに電力を供給する電源を備えており、通信端末に接続されている。通信端末には、車両を制御するためのアプリケーションプログラムが記憶されており、このアプリケーションプログラムは、マイコンに転送される。マイコンは、このアプリケーションプログラムをフラッシュメモリに書き込み、記憶させるとともに、実行することによって、車両を制御する。このフラッシュメモリへのアプリケーションプログラムの書き込みは、以下のようにして行われる。
【０００３】
まず、フラッシュメモリに記憶された通信用プログラムに基づいて、通信端末とのシリアル通信を可能な状態にした後、通信端末から通信用プログラム、書換ソフト、通信異常判定ソフトおよび退避ソフトを受信し、ＲＡＭに記憶させる。次に、書換ソフトに基づいて、フラッシュメモリに記憶された通信用プログラムを含むすべてのプログラムを消去した後、通信端末からアプリケーションプログラムを順次受信し、フラッシュメモリに書き込む。このとき、通信異常判定ソフトに基づいて、通信端末との通信異常が発生しているか否かを判定し、通信異常の場合には、退避ソフトに基づいて、通信用プログラムをフラッシュメモリに送信し、記憶させる。以上により、アプリケーションプログラムの受信中に、通信異常が発生した場合、マイコンへの電力を遮断しても、フラッシュメモリに通信用プログラムが記憶されるので、その後、電力を供給したときに、通信用プログラムに基づいて通信端末との通信が可能になり、アプリケーションプログラムの転送および書き込みが再度、行われる。
【０００４】
しかし、上述した従来の制御装置では、通信端末とマイコンの間で通信異常の発生時には、アプリケーションプログラムをフラッシュメモリに送信し、記憶させることができないので、アプリケーションプログラムを実行することも、それに基づいて車両を制御することもできない。その結果、例えば運転者などが車両を移動させたくても、移動させることができない。また、この制御装置では、通信異常の発生後、正常な状態に復帰したとしても、アプリケーションプログラムの書き込みが完了するまでの間、車両をやはり制御することはできない。特に、アプリケーションプログラムの容量が大きいときには、プログラムの書き込みに長い時間が必要になるため、その間、車両を制御できなくなる。
【０００５】
また、基地局を制御する制御装置として、例えば特許文献２に開示されたものが知られている。この制御装置は、メモリカードおよびダウンロード格納エリアなどを備えており、上位局に接続されている。メモリカードは、第１メモリ部と第２メモリ部で構成されており、これらのメモリ部には基地局を制御するための制御プログラムが記憶されている。第１メモリ部に記憶された制御プログラムは、第２メモリ部よりも１世代前の制御プログラムである。また、第１および第２メモリ部にはそれぞれ、制御プログラムの更新が正常に行われたか否かを示す判定ビット領域が設けられている。
【０００６】
この制御装置では、上位局から更新用の制御プログラム（以下、「更新プログラム」という）が転送されたときに、メモリカードの第２メモリ部の制御プログラムを、更新プログラムに書き換え、更新する。具体的には、上位局からの更新プログラムをダウンロード格納エリアに記憶させる。次に、メモリカードの第２メモリ部の判定ビット領域の情報を無効に書き換えた後、ダウンロード格納エリアから更新プログラムを第２メモリ部に転送し、記憶させる。これにより、第２メモリ部の制御プログラムが更新される。また、制御プログラムの更新が正常に行われたときには、第２メモリ部の判定ビット領域の情報を有効に書き換える一方、更新が正常に行われないときには、判定ビット領域の情報は書き換えられることなく、無効のまま保持される。
【０００７】
また、この制御装置では、第２メモリ部の判定ビット領域が有効の場合には、第２メモリ部の制御プログラムに基づいて基地局を制御する。一方、第２メモリ部の判定ビット領域が無効の場合には、第１メモリ部の判定ビット領域を判定し、それが有効のときに、第１メモリ部の制御プログラムに基づいて基地局を制御する。以上のように、第２メモリ部の制御プログラムの更新が正常に行われない場合には、第１メモリ部の制御プログラムに基づいて基地局が制御される。
【０００８】
しかし、この従来の制御装置では、更新前後の制御プログラムが第１メモリ部および第２メモリ部にそれぞれ記憶されるので、記憶すべき容量が個々の制御プログラムのほぼ２倍になり、非常に大きな容量のメモリカードが必要になる。また、第２メモリ部の制御プログラムの更新に伴って、第１メモリ部の制御プログラムを更新する場合、例えば、第１メモリ部と第２メモリ部にそれぞれ割り当てられたアドレスを、それぞれのアドレス空間に対応させて互いに入れ換えることが必要になり、その処理が非常に複雑化する。
【０００９】
本発明は、このような課題を解決するためになされたものであり、記憶するプログラムの容量をあまり増大させることなく、車両制御用のプログラムが正常に更新されなかった場合においても、車両を適切に制御することができる車両の制御装置および車両制御用プログラムの更新装置を提供することを目的とする。
【００１０】
【特許文献１】特開平１１−７３８１号公報
【特許文献２】特許第２９８４６４９号公報
【発明の開示】
【課題を解決するための手段】
【００１１】
上記の目的を達成するため、請求項１の発明に係る車両の制御装置は、書換可能エリアＡＲＰおよび書換不能エリアＡＲＩＰを有する不揮発性メモリ（実施形態における（以下、本項において同じ）フラッシュＲＯＭ１４）と、書換可能エリアＡＲＰに記憶され、車両Ｖを通常制御するための車両制御用プログラム（通常制御用プログラムＰＲＮ）と、書換不能エリアＡＲＩＰに記憶され、車両制御用プログラムの更新が正常に行われたか否かを判定するためのブートプログラムＰＲＢと、書換不能エリアＡＲＩＰに記憶されるとともに、車両制御用プログラムよりも容量が小さく、車両Ｖをフェールセーフ制御するためのフェールセーフ制御用プログラムＰＲＦと、車両制御用プログラムを更新する車両制御用プログラム更新手段（ＣＰＵ１５、図３のステップ２、図４のステップ１４，１５）と、制御装置（ＥＣＵ２）が起動されたときにブートプログラムＰＲＢを実行するとともに、その実行による判定結果に応じ、車両制御用プログラムの更新が正常に行われたと判定されたときに、車両制御用プログラムを実行し、車両制御用プログラムの更新が正常に行われていないと判定されたときに、フェールセーフ制御用プログラムＰＲＦを実行する制御手段（ＣＰＵ１５、図３のステップ３〜５）と、を備えることを特徴とする。
【００１２】
この車両の制御装置は、不揮発性メモリを備えており、この不揮発性メモリの書換可能エリアには、車両制御用プログラムが記憶され、書換不能エリアには、ブートプログラムと、車両制御用プログラムよりも容量が小さいフェールセーフ制御用プログラムが記憶されている。これらのプログラムは、制御手段による制御によって実行される。車両制御用プログラムは、制御装置の作動時に、車両制御用プログラム更新手段によって更新される。
【００１３】
また、制御装置が起動されたときには、まずブートプログラムが実行され、それにより、車両制御用プログラムの更新が正常に行われたか否かが判定される。この判定結果に応じ、車両制御用プログラムの更新が正常に行われたと判定されたときには、車両制御用プログラムを実行することによって、車両が通常制御される。一方、車両制御用プログラムの更新が正常に行われていないと判定されたときには、フェールセーフ制御用プログラムを実行することによって、車両がフェールセーフ制御される。
【００１４】
フェールセーフ制御用プログラムは、書換不能エリアに記憶されていて、書き換えられたり消去されたりすることがないので、車両制御用プログラムの更新が正常に行われなかったために、車両制御用プログラムに基づいて車両を制御できない場合であっても、フェールセーフ制御用プログラムを実行することによって、車両を適切に制御することができ、例えば運転者が車両を安全な状態で移動させることができる。また、制御装置の起動時に、ブートプログラムが優先して実行され、車両制御用プログラムの更新の正否が判定されるので、その更新を正常に行えなかった場合に、車両のフェールセーフ制御を即座にかつ確実に実行することができる。
【００１５】
また、フェールセーフ制御用プログラムは、車両制御用プログラムよりも容量が小さいので、記憶されるプログラムの容量を削減することができる。さらに、フェールセーフ制御用プログラムは、車両のフェールセーフを目的とするので、車両の移動や安全を確保するのに必要な最小限のプログラム内容で足りるため、そのようなプログラム内容とすることにより、小容量化しても、それに基づくフェールセーフ制御を支障なく行うことができる。
【００１６】
請求項２の発明に係る車両制御用プログラムの更新装置は、車両Ｖを制御する車両Ｖの制御装置（ＥＣＵ２）と、車両Ｖに搭載され、更新用プログラムＰＲＵを取得するとともに、制御装置と通信可能に構成された書換装置９と、を備え、制御装置は、書換可能エリアＡＲＰおよび書換不能エリアＡＲＩＰを有する不揮発性メモリ（フラッシュＲＯＭ１４）と、書換可能エリアＡＲＰに記憶され、車両Ｖを通常制御するための車両制御用プログラム（通常制御用プログラムＰＲＮ）と、書換不能エリアＡＲＩＰに記憶され、車両制御用プログラムの更新が正常に行われたか否かを判定するためのブートプログラムＰＲＢと、書換不能エリアＡＲＩＰに記憶されるとともに、車両制御用プログラムよりも容量が小さく、車両Ｖをフェールセーフ制御するためのフェールセーフ制御用プログラムＰＲＦと、車両制御用プログラムを、書換装置９から送信された更新用プログラムＰＲＵに書き換えることにより、車両制御用プログラムを更新する車両制御用プログラム更新手段（ＣＰＵ１５、図３のステップ２、図４のステップ１４，１５）と、制御装置が起動されたときにブートプログラムＰＲＢを実行するとともに、その実行による判定結果に応じ、車両制御用プログラムの更新が正常に行われたと判定されたときに、車両制御用プログラムを実行し、車両制御用プログラムの更新が正常に行われていないと判定されたときに、フェールセーフ制御用プログラムＰＲＦを実行する制御手段（ＣＰＵ１５、図３のステップ３〜５）と、を有することを特徴とする。
【００１７】
この車両制御用プログラムの更新装置では、制御装置が不揮発性メモリを備えており、不揮発性メモリの書換可能エリアには、車両制御用プログラムが記憶されている。車両に搭載された書換装置は、車両制御用プログラムを更新するための更新用プログラムを取得する。車両制御用プログラムは、制御装置の作動時に、車両制御用プログラム更新手段によって、書換装置から送信された更新用プログラムに書き換えることにより、更新される。
【００１８】
また、請求項１の制御装置と同様、制御装置の起動時に、書換不能エリアに記憶されたブートプログラムが優先的に実行され、それにより、車両制御用プログラムの更新の正否が判定される。その更新が正常に行われたときには、車両制御用プログラムを実行することにより、車両が通常制御される一方、車両制御用プログラムが正常に更新されなかったときには、書換不能エリアに記憶されたフェールセーフ制御用プログラムを実行することによって、車両がフェールセーフ制御される。したがって、請求項１と同様、車両制御用プログラムが正常に更新されなかった場合に、フェールセーフ制御用プログラムの実行によって、車両のフェールセーフ制御を即座にかつ確実に行うことができる。例えば、修理工場から遠い場合でも、修理工場まで車両を安全に移動させることができる。
【００１９】
また、請求項１の場合と同様、フェールセーフ制御用プログラムの小容量化によって、記憶されるプログラムの容量を削減できるとともに、フェールセーフ制御を支障なく行える。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照しながら、本発明の好ましい実施形態を詳細に説明する。図１は、本発明の実施形態による更新装置１を、これを適用した内燃機関（以下「エンジン」という）３を搭載した車両Ｖとともに、概略的に示している。エンジン３は、例えば４つの気筒３ａ（１つのみ図示）を有する直列４気筒のガソリンエンジンである。各気筒３ａのピストン３ｂとシリンダヘッド３ｃとの間には、燃焼室３ｄが形成されている。
【００２１】
シリンダヘッド３ｃには、燃料噴射弁（以下「インジェクタ」という）５および点火プラグ６が、燃焼室３ｄに臨むように取り付けられている。エンジン３の燃料噴射量および燃料噴射時期は、後述するＥＣＵ２（制御装置）からの駆動信号でインジェクタ５の開弁時間および開弁タイミングを、制御することによって制御される。また、点火時期、すなわち点火プラグ６の放電タイミングと、点火プラグ６への通電時間は、ＥＣＵ２からの駆動信号で点火プラグ６の放電タイミングを制御することによって制御される。
【００２２】
エンジン３の吸気管４には、エアフローメータ２１が設けられている。エアフローメータ２１は、吸気量ＱＡを検出し、その検出信号をＥＣＵ２に出力する。
【００２３】
エンジン３本体には、水温センサ２２が設けられている。水温センサ２２は、エンジン３のシリンダブロック（図示せず）内を循環する冷却水の温度（以下「エンジン水温」という）ＴＷを検出し、その検出信号をＥＣＵ２に出力する。
【００２４】
ＥＣＵ２には、エンジン回転数センサ２３からエンジン回転数ＮＥを表す検出信号が、車速センサ２４から車速ＶＰを表す検出信号が、アクセル開度センサ２５からアクセルペダル（図示せず）の操作量（以下「アクセル開度」という）ＡＰを表す検出信号が、ポジションセンサ２６から変速機（図示せず）のギヤ段を表す検出信号が、吸気温センサ２７から吸気温ＴＡを表す検出信号が、それぞれ出力される。
【００２５】
更新装置１は、エンジン３を介して車両Ｖを通常制御する通常制御用プログラムＰＲＮ（車両制御用プログラム）を更新するためのものであり、車両Ｖに搭載されたＥＣＵ２および書換装置９を備えている。これらのＥＣＵ２および書換装置９は、イグニッションスイッチ７を介してバッテリ８に接続されており、イグニッションスイッチ７がＯＮされたときに、バッテリ８から電力が供給されることによって、起動する。なお、書換装置９は、車両Ｖと別個に構成してもよい。
【００２６】
書換装置９は、ＥＣＵ２と通信可能に構成されており、通常制御用プログラムＰＲＮを更新する更新用プログラムＰＲＵを取得し、ＥＣＵ２に送信するためのものである。書換装置９には、更新用プログラムＰＲＵなどを記録した記録媒体（図示せず）が装着されるようになっている。書換装置９は、この記録媒体から更新用プログラムＰＲＵをブロック単位で読み出すことによって、更新用プログラムＰＲＵを取得するとともに、取得した更新用プログラムＰＲＵをブロック単位でＥＣＵ２に送信する。なお、この記録媒体には、更新用プログラムＰＲＵの他、ＥＣＵ２のＩＤ番号を表す情報、更新用プログラムＰＲＵのバージョンを表す情報、および更新用プログラムＰＲＵのブロック数を表す情報が、ＩＤ情報として記録されている。
【００２７】
この書換装置９では、更新用プログラムＰＲＵの送信に先立ち、書換信号ＳＲＷおよびＩＤ情報をＥＣＵ２に送信する。具体的には、記録媒体を装着した状態でイグニッションスイッチ７がＯＮされたときに、書換信号ＳＲＷと、記録媒体から読み出したＩＤ情報を、ＥＣＵ２に順次、送信する。
【００２８】
ＥＣＵ２は、Ｉ／Ｏインターフェース、ＲＡＭ（いずれも図示せず）、通信用インターフェース（「通信用Ｉ／Ｆ」と図示）１１、ＥＥＰＲＯＭ１２およびマイコン１３で構成されており、前述した各種のセンサ２１〜２７からの検出信号は、Ｉ／ＯインターフェースでＡ／Ｄ変換や整形がなされた後、マイコン１３の後述するＣＰＵ１５に入力される。ＲＡＭは、ＣＰＵ１５による後述する更新処理時の作業領域として使用される。
【００２９】
通信用インターフェース１１は、書換装置９とマイコン１３の間でＣＡＮ通信を行うためのものであり、書換信号ＳＲＷ、ＩＤ情報および更新用プログラムＰＲＵを受信し、マイコン１３に送信する。
【００３０】
マイコン１３は、上述したＣＰＵ１５とフラッシュＲＯＭ１４（不揮発性メモリ）などで構成されている。
【００３１】
フラッシュＲＯＭ１４は、シングルポートタイプのものであり、図２に示すように、書換可能に構成された書換可能エリアＡＲＰと、書換不能に構成された書換不能エリアＡＲＩＰを備えている。
【００３２】
書換可能エリアＡＲＰには、前述した通常制御用プログラムＰＲＮが記憶されている。通常制御用プログラムＰＲＮは、燃料噴射量制御プログラムＰＲＱＩＮＪ、燃料噴射時期制御プログラムＰＲＴＩＮＪ、および点火時期制御プログラムＰＲＴＩＧなどで構成されている。燃料噴射量制御プログラムＰＲＱＩＮＪおよび燃料噴射時期制御プログラムＰＲＴＩＮＪは、燃料噴射量および燃料噴射時期をそれぞれ設定するものであり、それらの設定を行うための吸気量ＱＡやエンジン水温ＴＷ、吸気温ＴＡなどをパラメータとする所定のマップをそれぞれ有している。また、点火時期制御プログラムＰＲＴＩＧは、点火時期および通電時間を設定するものであり、それらの設定を行うためのエンジン回転数ＮＥなどをパラメータとする所定のマップを有している。
【００３３】
これらの燃料噴射量制御プログラムＰＲＱＩＮＪ、燃料噴射時期制御プログラムＰＲＴＩＮＪおよび点火時期制御プログラムＰＲＴＩＧは、書換可能エリアＡＲＰに割り当てられたアドレスによって指定されるアドレス空間にブロック単位でそれぞれ記憶されており、各アドレスはＥＥＰＲＯＭ１２に記憶されている。
【００３４】
また、書換不能エリアＡＲＩＰには、通常制御用プログラムＰＲＮの更新が正常に行われたか否かを判定するためのブートプログラムＰＲＢと、エンジン３をフェールセーフ制御するためのフェールセーフ制御用プログラムＰＲＦが記憶されている。
【００３５】
フェールセーフ制御用プログラムＰＲＦは、フェールセーフ制御用の燃料噴射量制御プログラムＰＲＱＩＮＦ、燃料噴射時期制御プログラムＰＲＴＩＮＦおよび点火時期制御プログラムＰＲＴＩＧＦなどで構成されている。これらの燃料噴射量制御プログラムＰＲＱＩＮＦおよび燃料噴射時期制御プログラムＰＲＴＩＮＦは、上述した通常制御用のものと同様、燃料噴射量および燃料噴射時期を吸気量ＱＡやエンジン水温ＴＷ、吸気温ＴＡに応じて設定するための所定のマップをそれぞれ有している。なお、フェールセーフ制御用のマップは、通常制御用のマップと比較し、吸気量ＱＡなどに対する格子点の数が少なく設定されている。点火時期制御プログラムＰＲＴＩＧＦは、エンジン回転数ＮＥに応じて通電時間を設定するための所定のマップを有している。このマップは、通常制御用のマップと比較して、エンジン回転数ＮＥに対する格子点の数が少なく設定されている。また、この点火時期制御プログラムＰＲＴＩＧＦでは、点火時期は固定値、例えば最遅角位置に設定されている。
【００３６】
以上のように、フェールセーフ制御用プログラムＰＲＦでは、フェールセーフ制御用のマップ格子点の数を少なくすることによって、フェールセーフの制御処理が簡略化されている。それに応じて、フェールセーフ制御用プログラムＰＲＦが縮小され、その分、記憶されるプログラムの容量が削減されている。
【００３７】
これらのブートプログラムＰＲＢ、フェールセーフ制御用の燃料噴射量制御プログラムＰＲＱＩＮＦ、燃料噴射時期制御プログラムＰＲＴＩＮＦおよび点火時期制御プログラムＰＲＴＩＧＦは、書換不能エリアＡＲＩＰに割り当てられたアドレスによって指定されるアドレス空間にブロック単位でそれぞれ記憶されており、各アドレスはＥＥＰＲＯＭ１２に記憶されている。
【００３８】
また、ＥＥＰＲＯＭ１２には、書換装置９から受信したＩＤ情報、ＥＣＵ２が所有するＩＤ番号、書換可能エリアＡＲＰに記憶された通常制御用プログラムＰＲＮのバージョン情報、および後述する判定コードの「有効」または「無効」を表す情報が記憶されており、バージョン情報および判定コード情報は、ＣＰＵ１５によって更新される。なお、判定コードの初期値は「有効」に設定されている。
【００３９】
ＣＰＵ１５は、通常制御用プログラムＰＲＮまたはフェールセーフ制御用プログラムＰＲＦを実行することによって、エンジン３の燃料噴射制御および点火時期制御などを実行する。また、ＣＰＵ１５は、ＥＣＵ２の起動時、すなわちイグニッションスイッチ７がＯＮされたときに、ブートプログラムＰＲＢを実行する。なお、本実施形態では、ＣＰＵ１５が車両制御用プログラム更新手段および制御手段に相当する。
【００４０】
図３は、ブートプログラムＰＲＢによって実行されるブート処理を示す。本処理は、ＥＣＵ２の起動時に、エンジン３が停止されている状態で１回のみ実行される。本処理ではまず、ステップ１（「Ｓ１」と図示。以下同じ）において、書換装置９から書換信号ＳＲＷを受信したか否かを判別する。この判別結果がＹＥＳで、書換装置９に記録媒体が装着されているときには、通常制御用プログラムＰＲＮを更新した（ステップ２）後、本処理を終了する。
【００４１】
図４は、この更新処理のサブルーチンを示している。本処理ではまず、ステップ１１において、書換装置９から受信したＩＤ情報のうちのＩＤ番号が、ＥＣＵ２のＩＤ番号と一致しているか否かを判別する。この判別結果がＮＯのときには、図３のステップ３に進む一方、ＹＥＳのときには、通常制御用プログラムＰＲＮの更新を開始するものとして、書換可能エリアＡＲＰに記憶された通常制御用プログラムＰＲＮの内容を全部消去した（ステップ１２）後、ＥＥＰＲＯＭ１２に記憶された判定コードを「無効」に書き換える（ステップ１３）。
【００４２】
次に、書換装置９から更新用プログラムＰＲＵをブロック単位で受信する（ステップ１４）。次いで、受信した更新用プログラムＰＲＵを、書換可能エリアＡＲＰの対応するアドレス空間にブロック単位で書き込む（ステップ１５）。これにより、通常制御用プログラムＰＲＮが順次、更新される。次に、この通常制御用プログラムＰＲＮの更新に異常が発生しているか否かを判別する（ステップ１６）。具体的には、ＥＣＵ２と書換装置９の間で通信異常が発生したときや、フラッシュＲＯＭ１４への更新用プログラムＰＲＵの書き込みが正常に行えなかったときに、更新異常が発生していると判別される。なお、後者の書込み異常は、例えばベリファイ処理を行うことによって判別され、具体的には、受信した更新用プログラムＰＲＵと書き込んだ更新用プログラムＰＲＵをブロック単位で比較し、両者が一致していないときに、書込み異常と判別される。
【００４３】
前記ステップ１６の判別結果がＮＯのときには、通常制御用プログラムＰＲＮの更新が完了したか否かを判別する（ステップ１７）。具体的には、前記ステップ１４で受信した更新用プログラムＰＲＵのブロック数が、ＥＥＰＲＯＭ１２に記憶された更新用プログラムＰＲＵのブロック数と一致したときに、更新が完了したと判別される。この判別結果がＮＯのときには、前記ステップ１４に戻り、ステップ１４以降の処理内容を繰り返し実行する。
【００４４】
一方、前記ステップ１７の判別結果がＹＥＳのときには、更新用プログラムＰＲＵの書き込みが最後のブロックまで正常に行われたとして、通常制御用プログラムＰＲＮの更新が正常に行われたと判定し、そのことを表すために判定コードを「有効」に書き換えた（ステップ１８）後、本処理を終了する。一方、前記ステップ１６の判別結果がＹＥＳで、通常制御用プログラムＰＲＮの更新異常が発生していると判別されたときには、それ以降の更新を行うことなく、そのまま本処理を終了する。その結果、判定コードは、「有効」に書き換えられることなく、前記ステップ１３で書き換えられた「無効」に維持される。
【００４５】
以上のような更新処理が終了すると、通常制御用プログラムＰＲＮの更新の完了または更新の異常が表示され、この表示を受けて書換装置９から記録媒体が取り外される。これにより、書換装置９からの書換信号ＳＲＷの送信が停止される。その結果、次回のＥＣＵ２の起動時には、図３の前記ステップ１の判別結果がＮＯになり、その場合には、ステップ３に進む。
【００４６】
このステップ３では、ＥＥＰＲＯＭ１２に記憶された判定コードが「有効」であるか否かを判別する。この判別結果がＹＥＳのときには、通常制御用プログラムＰＲＮの更新が正常に行われたとして、エンジン３の制御モードを通常制御に設定し（ステップ４）、本処理を終了する。このように通常制御に設定されると、書換可能エリアＡＲＰに記憶された更新された通常制御用プログラムＰＲＮに基づいて、エンジン３の燃料噴射および点火時期の通常制御が実行される。
【００４７】
一方、前記ステップ３の判別結果がＮＯで、通常制御用プログラムＰＲＮの更新異常が発生していると判定されたときには、エンジン３の制御モードをフェールセーフ制御に設定し（ステップ５）、本処理を終了する。このようにフェールセーフ制御に設定されると、書換不能エリアＡＲＩＰに記憶されたフェールセーフ制御用プログラムＰＲＦに基づいて、エンジン３の燃料噴射および点火時期のフェールセーフ制御が実行される。
【００４８】
以上のように、本実施形態によれば、ＥＣＵ２の起動直後に、書換不能エリアＡＲＩＰに記憶されたブートプログラムＰＲＢが優先的に実行され、判定コードに基づいて通常制御用プログラムＰＲＮの更新の正否が判定される。また、その更新が正常に行われたときには、通常制御用プログラムＰＲＮに基づいて、エンジン３が通常制御される一方、通常制御用プログラムＰＲＮの更新異常のときには、書換不能エリアＡＲＩＰに記憶されたフェールセーフ制御用プログラムＰＲＦに基づいて、エンジン３がフェールセーフ制御される。したがって、通常制御用プログラムＰＲＮが正常に更新されなかった場合に、エンジン３のフェールセーフ制御を即座にかつ確実に行うことができ、修理工場から遠い場合でも、修理工場まで車両Ｖを安全に移動させることができる。
【００４９】
また、フェールセーフ制御用プログラムＰＲＦは、通常制御用プログラムＰＲＮと比較して、マップの格子点の数が少なく、小容量化されているので、記憶されるプログラムの容量を削減することができる。
【００５０】
次に、図５を参照しながら更新装置１の変形例を説明する。この変形例は、通常制御用プログラムＰＲＮの更新を、エンジン３の運転時にも実行できるようにしたものである。このため、この変形例では、フラッシュＲＯＭ１４としてデュアルポートタイプのものを用い、フラッシュＲＯＭ１４からのフェールセーフ制御用プログラムＰＲＦの読み出しと、フラッシュＲＯＭ１４への更新用プログラムＰＲＵの書き込みを同時に行えるようにしている。
【００５１】
また、図５に示す更新処理は、図４の更新処理と比較し、通常制御用プログラムＰＲＮの更新中に、エンジン３のフェールセーフ制御を実行する点のみが異なる。具体的には、書換装置９からの書換信号ＳＲＷの受信後、ＩＤ情報のうちのＩＤ番号が、ＥＣＵ２のＩＤ番号と一致しているときには（ステップ１１：ＹＥＳ）、ステップ２１において、図３のステップ５と同様、エンジン３の制御モードをフェールセーフ制御に設定する。これにより、書換不能エリアＡＲＩＰに記憶されたフェールセーフ制御用プログラムＰＲＦに基づいて、エンジン３の燃料噴射および点火時期のフェールセーフ制御が実行される。それ以降の処理内容は、図４と同じであり、書換可能エリアＡＲＰに記憶された通常制御用プログラムＰＲＮの全部を消去する（ステップ１２）とともに、判定コードを「無効」に書き換えた（ステップ１３）、通常制御用プログラムＰＲＮを更新する（ステップ１４，１５）。この通常制御用プログラムＰＲＮの更新が正常に行われたと判定されたときには、判定コードを「有効」に書き換えた後、更新異常が発生していると判定されたときには、判定コードを「無効」に維持したまま、本処理を終了する（ステップ１６〜１８）。
【００５２】
以上のように、この変形例によれば、通常制御用プログラムＰＲＮの更新中に、エンジン３のフェールセーフ制御を実行するので、通常制御用プログラムＰＲＮを更新しながら車両Ｖを移動させることができる。
【００５３】
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、実施形態では、通常制御用プログラムＰＲＮの更新を制御するための更新制御プログラム（図４または図５の更新処理を実行するプログラム）は、ブートプログラムＰＲＢに組み込まれているが、ブートプログラムと別個に構成してもよく、その場合には、フラッシュＲＯＭの書換不能エリアまたはＥＥＰＲＯＭに記憶される。
【００５４】
また、実施形態は、更新装置１による更新の対象が、エンジン３の制御プログラムの例であるが、これに限らず、車両Ｖを制御するためのエンジン以外の制御プログラム、例えばトランスミッションの制御プログラムやメータ情報を表示するためのプログラムでもよい。この場合のフェールセーフ制御用プログラムは、例えば、前者については、トランスミッションのギヤ段を車速に応じて第２速または第４速に変速するように構成され、後者については、車両の走行に最低限必要とされる車速、ギヤ段および故障情報のみを表示するように構成される。あるいは、スロットル弁の制御プログラムに適用してもよく、その場合、フェールセーフ制御用プログラムは、例えばアクセル開度に応じてスロットル弁を全閉位置と半開位置の間で制御するように構成される。
【００５５】
さらに、実施形態では、ＩＤ番号が一致した場合に通常制御用プログラムＰＲＮの更新を行っているが、これに加え、書換装置９から送信されたバージョン情報とＥＥＰＲＯＭ１２に記憶されたバージョン情報を比較し、書換装置９からのバージョン情報の方が新しいときに通常制御用プログラムＰＲＮの更新を行うようにしてもよい。
【００５６】
また、実施形態では、書換装置９による更新用プログラムＰＲＮの取得を、書換装置９に着脱される記録媒体を介して行っているが、他の適当な手段、例えば無線通信によって行ってもよい。
【００５７】
さらに、実施形態では、通常制御用プログラムＰＲＮの更新を、更新異常が１回発生したときに直ちに中断しているが、更新異常の発生後、更新動作を繰り返し、更新異常の発生が所定回数、確認されたときに中断してもよい。
【００５８】
また、実施形態では、通常制御用プログラムＰＲＮおよびフェールセーフ制御用プログラムＰＲＦのアドレスを、ＥＥＰＲＯＭ１２に記憶しているが、これに限らず、例えばブートプログラムに組み込んでもよい。さらに、実施形態では、更新処理時の作業領域として、ＲＡＭを用いているが、フラッシュＲＯＭを用いてもよい。
【００５９】
また、実施形態は、本発明をエンジンを搭載した車両に適用した例であるが、本発明は、これに限らず、電気モータを用いた電気自動車や、エンジンおよび電気モータを併用したハイブリッド車両に適用してもよい。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。
【図面の簡単な説明】
【００６０】
【図１】本発明の更新装置を、これを適用した内燃機関を搭載した車両とともに、概略的に示す図である。
【図２】フラッシュＲＯＭの構成を示すブロック図である。
【図３】ブートプログラムによって実行されるブート処理を示すフローチャートである。
【図４】通常制御用プログラムの更新処理のサブルーチンである。
【図５】通常制御用プログラムの更新処理の変形例を示すサブルーチンである。
【符号の説明】
【００６１】
１  更新装置
２  ＥＣＵ（制御装置）
９  書換装置
１４  フラッシュＲＯＭ（不揮発性メモリ）
１５  ＣＰＵ（車両制御用プログラム更新手段および制御手段）
Ｖ  車両
ＡＲＰ  書換可能エリア
ＡＲＩＰ  書換不能エリア
ＰＲＢ  ブートプログラム
ＰＲＵ  更新用プログラム
ＰＲＮ  通常制御用プログラム（車両制御用プログラム）
ＰＲＦ  フェールセーフ制御用プログラム
【図１】
2009042850.tif 000003
【図２】
2009042850.tif 000004
【図３】
2009042850.tif 000005
【図４】
2009042850.tif 000006
【図５】
2009042850.tif 000007