(57)【要約】【課題】不揮発性メモリの記憶容量を増加させることなく、車両の運転回数及び車両制御装置の故障診断回数を記憶する不揮発性メモリの書き換え回数を動作保証回数以下に制限すること。【解決手段】不揮発性メモリ２１の記憶エリアには、車両が所定の運転状態となった回数である運転回数（分母）と、故障診断を行なった回数である故障診断回数（分子）とが記憶される領域１〜５が複数設けられる。そして、所定の運転状態となったことが検出されたとき、及び故障診断が行なわれたとき、運転回数及び故障診断回数を記憶している領域１〜５に対して、その記憶回数が１回分増加するように書き換えを行なう。この書き換えによって運転回数がオーバーフロー判定値に達したとき、運転回数と故障診断回数を記憶する領域１〜５を、他の領域に切り換え、その切り換え先の領域に１／２に減じた運転回数及び故障診断回数を書き込む。【選択図】      図５
2004156590.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された車載機器を制御する車両制御装置であって、
車両が所定の運転状態となったことを検出する検出手段と、
所定の条件が満足された場合に前記車両制御装置における診断対象の故障診断を行なう故障診断手段と、
記憶内容を電気的に書き換え可能な不揮発性メモリと、
前記不揮発性メモリの記憶エリアには、前記車両が所定の運転状態となった回数である運転回数と、前記故障診断を行なった回数である故障診断回数とが記憶される領域がそれぞれ複数設定され、前記所定の運転状態となったことが検出されたとき、もしくは前記故障診断が行なわれたとき、前記運転回数もしくは故障診断回数を記憶している領域に対して、その記憶回数が増加するように書き換えを行なう記憶回数書換手段と、
前記車両制御装置の外部より前記故障診断の実行頻度に関わる情報の出力要求があった際に、前記不揮発性メモリに記憶されている前記運転回数と前記故障診断回数とを出力する、実行頻度に関わる情報出力手段と、
前記運転回数と故障診断回数との少なくとも一方がオーバーフロー判定値に達したとき、前記運転回数を記憶する領域及び前記故障診断回数を記憶する領域を、ともに他の記憶領域に切り換える切換手段とを備え、
前記記憶回数書換手段は、切換後の記憶領域に、初期値として、切換前の記憶領域の記憶回数を１／２に減じた値を書き込むことを特徴とする車両制御装置。
【請求項２】
前記車両制御装置は、車両のエンジンを制御するエンジン制御装置であり、前記診断対象は、前記エンジン制御装置においてエンジンの排気ガス成分に影響を与える構成部品であることを特徴とする請求項１に記載の車両制御装置。
【請求項３】
前記切換手段が前記運転回数を記憶する領域及び前記故障診断回数を記憶する領域を切り換える際、前記記憶回数書換手段は、切換前の領域の記憶回数を変更せずに保持することを特徴とする請求項１に記載の車両制御装置。
【請求項４】
前記運転回数を増加させる所定の運転状態に関する条件より、前記故障診断を行なうための条件が成立しにくく、前記故障診断回数が前記運転回数を上回ることがない場合、前記オーバーフローを判定する対象を運転回数のみとし、運転回数がオーバーフロー判定値に達したとき、前記運転回数を記憶する領域及び前記故障診断回数を記憶する領域を、ともに他の記憶領域に切り換えることを特徴とする請求項１に記載の車両制御装置。
【請求項５】
前記記憶回数書換手段は、前記運転回数を記憶した各記憶領域の記憶回数に基づいて、現在の書換対象となっている記憶領域を特定することを特徴とする請求項４に記載の車両制御装置。
【請求項６】
前記切換手段が前記運転回数を記憶する領域及び前記故障診断回数を記憶する領域を切り換える際、前記記憶回数書換手段は、切換前の領域に切換済みであることを示す情報を書き込むことを特徴とする請求項１に記載の車両制御装置。
【請求項７】
前記切換済みであることを示す情報は、前記運転回数を記憶する領域及び前記故障診断回数を記憶する領域のいずれか一方に書き込まれることを特徴とする請求項６記載の車両制御装置。
【請求項８】
前記切換済みであることを示す情報は、前記オーバーフロー判定値よりも大きい値であることを特徴とする請求項６又は請求項７に記載の車両制御装置。
【請求項９】
車両に搭載された車載機器を制御する車両制御装置であって、
車両が所定の運転状態となったことを検出する検出手段と、
所定の条件が満足された場合に前記車両制御装置における診断対象の故障診断を行なう故障診断手段と、
記憶内容を電気的に書き換え可能な不揮発性メモリと、
前記不揮発性メモリの記憶エリアには、前記車両が所定の運転状態となった回数である運転回数と、前記故障診断を行なった回数である故障診断回数とが記憶される領域がそれぞれ複数設定され、前記所定の運転状態となったことが検出されたとき、もしくは前記故障診断が行なわれたとき、前記運転回数もしくは故障診断回数を記憶している領域に対して、その記憶回数が増加するように書き換えを行なう記憶回数書換手段と、
前記車両制御装置の外部より前記故障診断の実行頻度に関わる情報の出力要求があった際に、前記不揮発性メモリに記憶されている前記運転回数と前記故障診断回数とを出力する、実行頻度に関わる情報出力手段と、
前記運転回数と故障診断回数との少なくとも一方がオーバーフロー判定値に達したとき、前記運転回数を記憶する領域及び前記故障診断回数を記憶する領域を、ともに他の記憶領域に切り換える切換手段とを備え、
前記切換手段によって記憶領域が切り換えられたとき、その切換後の記憶領域には、初期値としてゼロが設定されており、前記記憶回数書換手段による書換により、記憶回数は、その初期値ゼロから増加することを特徴とする車両制御装置。
【請求項１０】
前記車両制御装置は、車両のエンジンを制御するエンジン制御装置であり、前記診断対象は、前記エンジン制御装置においてエンジンの排気ガス成分に影響を与える構成部品であることを特徴とする請求項９に記載の車両制御装置。
【請求項１１】
前記切換手段が前記運転回数を記憶する領域及び前記故障診断回数を記憶する領域を切り換える際、前記記憶回数書換手段は、切換前の領域の記憶回数を変更せずに保持することを特徴とする請求項９に記載の車両制御装置。
【請求項１２】
前記情報出力手段は、外部より故障診断の実行頻度に関わる情報の出力要求があった際に、現在の書換対象領域が２番目以降の記憶領域となっているとき、切換済みの記憶領域の記憶回数と現在の書換対象領域の記憶回数との加算回数が、前記オーバーフロー判定値を超えないように、各記憶回数を所定値で除算した後に加算して、前記運転回数と故障診断回数とをそれぞれ出力することを特徴とする請求項１１に記載の車両制御装置。
【請求項１３】
前記不揮発性メモリの記憶エリアに、前記運転回数と前記故障診断とが記憶される領域がそれぞれ２個ずつ設定されている場合であって、外部より故障診断の実行頻度に関わる情報の出力要求があった際に、１番目の記憶領域が切換済みであり、２番目の記憶領域が現在の書換対象領域となっており、かつ運転回数と故障診断回数の２番目の記憶領域の記憶回数がいずれもオーバーフロー判定値の１／２以下であるときには、１番目の記憶領域に記憶された記憶回数を２で除算した値と、２番目の記憶領域に記憶された記憶回数を示す値とを加算して、前記運転回数と故障診断回数とを出力することを特徴とする請求項１１に記載の車両制御装置。
【請求項１４】
前記運転回数と故障診断回数の２番目の記憶領域の記憶回数の少なくとも１方が、前記オーバーフロー判定値の１／２を超えたとき、前記１番目および２番目の記憶領域の記憶回数をともに２で除算した後に加算して、前記運転回数と故障診断回数とを出力することを特徴とする請求項１３に記載の車両制御装置。
【請求項１５】
前記運転回数を増加させる所定の運転状態に関する条件より、前記故障診断を行なうための条件が成立しにくく、前記故障診断回数が前記運転回数を上回ることがない場合、前記オーバーフローを判定する対象を運転回数のみとし、運転回数がオーバーフロー判定値に達したとき、前記運転回数を記憶する領域及び前記故障診断回数を記憶する領域を、ともに他の記憶領域に切り換えることを特徴とする請求項９に記載の車両制御装置。
【請求項１６】
前記記憶回数書換手段は、前記運転回数を記憶した各記憶領域の記憶回数に基づいて、現在の書換対象となっている記憶領域を特定することを特徴とする請求項１５に記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己診断機能を有し、その診断回数を不揮発性メモリに記憶する車両制御装置に関するものである。
【背景技術】
【０００２】
２００２年に改正されたＯＢＤＩＩ（On Board Diagnosis Version ＩＩ）におけるRate Baseモニタ法（２００５年モデルイヤー車両より適応）によると、車両が運転状態となった運転回数を分母とし、エンジンＥＣＵがＯ２センサ等の故障診断を行なった回数を分子として、その頻度（分子／分母）を所定値以上とすることが求められる。さらに、その運転回数及び故障診断回数を不揮発性メモリ等に記憶して、実際に故障診断を行なった頻度を確認できるようにする必要がある。なお、不揮発性メモリに記憶される運転回数及び故障診断回数は、メモリ内におけるオーバーフロー防止のため、いずれかの記憶回数が６５５３５±２に達したら、それぞれの値を１／２とすることも法規で定められる。
【０００３】
ここで、例えば不揮発性メモリとしてのＥＥＰＲＯＭにおいては、トンネル酸化膜を介してフローティングゲートへ電子を注入したり、引き抜くことによって記憶内容の消去や書き込みが行なわれる。但し、電子の移動時にトンネル酸化膜にストレスが加わってトンネル酸化膜の劣化が生じるので、その書き換え回数は、動作保証回数（例えば１０万回）以下に制限する必要がある。
【０００４】
このように不揮発性メモリは、その書き換え回数が動作保証回数以下の範囲で使用しなければならない。このため、例えば特許文献１には、不揮発性メモリの記憶エリアを複数に分割するとともに、それぞれの記憶エリアにその記憶エリアにおける書き換え回数をカウントして記憶する回数記憶部を設けることが記載されている。そして、１つの記憶エリアにおける書き換え回数が動作保証回数以下の所定回数に達したことを回数記憶部のカウント値から判別すると、記憶エリアを他の記憶エリアに切り換える。
【特許文献１】特公平５−５２０００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、分割された各記憶エリアにおいて、その記憶エリアでの書き換え回数をカウントして記憶する回数記憶部を設けているので、不揮発性メモリの記憶容量が増加するとの問題がある。
【０００６】
本発明は、かかる従来の問題点を鑑みてなされたもので、不揮発性メモリの記憶容量を増加させることなく、上述した車両の運転回数及び故障診断回数を記憶する不揮発性メモリの書き換え回数を動作保証回数以下に制限することが可能な車両制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１に記載の車両制御装置は、
車両が所定の運転状態となったことを検出する検出手段と、
所定の条件が満足された場合に車両制御装置における診断対象の故障診断を行なう故障診断手段と、
記憶内容を電気的に書き換え可能な不揮発性メモリと、
不揮発性メモリの記憶エリアには、車両が所定の運転状態となった回数である運転回数と、前記故障診断を行なった回数である故障診断回数とが記憶される領域がそれぞれ複数設定され、所定の運転状態となったことが検出されたとき、もしくは故障診断が行なわれたとき、運転回数もしくは故障診断回数を記憶している領域に対して、その記憶回数が１回分増加するように書き換えを行なう記憶回数書換手段と、
車両制御装置の外部より故障診断の実行頻度に関わる情報の出力要求があった際に、不揮発性メモリに記憶されている運転回数と故障診断回数とを出力する、実行頻度に関わる情報出力手段と、
運転回数と故障診断回数との少なくとも一方がオーバーフロー判定値に達したとき、運転回数を記憶する領域及び故障診断回数を記憶する領域を、ともに他の記憶領域に切り換える切換手段とを備え、
記憶回数書換手段は、切換後の記憶領域に、初期値として、切換前の記憶領域の記憶回数を１／２に減じた値を書き込むことを特徴とする。
【０００８】
請求項１に記載した車両制御装置では、運転回数もしくは故障診断回数が書き込まれる毎に、その記憶回数が１回分づつ増加されることに着目した。すなわち、この運転回数及び故障診断回数のカウント値を、不揮発性メモリのそれぞれの領域における書き換え回数とみなして、運転回数もしくは故障診断回数がオーバーフロー判定値に達したら、その記憶領域を他の記憶領域に切り換えることとした。これにより、各記憶領域の書き換え回数をカウントした結果を記憶する専用の領域を設ける必要がないため、不揮発性メモリを効率的に使用することができる。
【０００９】
ここで、ＯＢＤＩＩRate Baseモニタ法によれば、不揮発性メモリに記憶される運転回数及び故障診断回数のオーバーフローによるデータの損失を防止するために、その記憶回数がオーバーフロー判定値である６５５３５±２回に達した場合、運転回数及び故障診断回数ともに１／２の値に変更することが定められている。このオーバーフロー判定値は、上述のように６５５３５±２回であるため、不揮発性メモリの通常の動作保証回数を下回っている。そこで、書き換え回数が動作保証回数以下かを判別するために、このオーバーフロー判定値を利用することができる。これにより、その書き換え回数が動作保証回数以下であるか判別することのみを目的として、比較演算処理を行なう必要がなくなり、演算処理の効率化をも図ることができる。
【００１０】
なお、請求項２に記載したように、車両制御装置は、車両のエンジンを制御するエンジン制御装置であり、診断対象は、エンジン制御装置においてエンジンの排気ガス成分に影響を与える構成部品であることが好ましい。なお、排気ガス成分に影響を与える構成部品の具体例は、排気ガス中の酸素濃度を検出するＯ２センサ、排気ガスを浄化する触媒、燃料タンク内で気化した燃料を捕捉し、吸気管に供給する燃料エバポ等である。
【００１１】
請求項３に記載した車両制御装置は、切換手段が運転回数を記憶する領域及び故障診断回数を記憶する領域を切り換える際、記憶回数書換手段は、切換前の領域の記憶回数を変更せずに保持することを特徴とする。
【００１２】
このように、切換前の領域の記憶回数を変更せずに保持しておくと、運転回数を記憶する領域及び故障診断回数を記憶する領域に対して、書き換え対象となっている順に、記憶回数を読み出すことにより、その記憶回数がオーバーフロー判定値に該当すればその領域は切換済みであり、オーバーフロー判定値よりも小さければ、現在の書き換え対象領域であると判断できる。すなわち、切換前の領域の記憶回数を変更せずに保持しておくことにより、現在の書き換え対象領域をポインタ等を用いることなく特定できるようになる。
【００１３】
請求項４に記載した車両制御装置は、運転回数を増加させる所定の運転状態に関する条件より、故障診断を行なうための条件が成立しにくく、故障診断回数が運転回数を上回ることがない場合、オーバーフローを判定する対象を運転回数のみとし、運転回数がオーバーフロー判定値に達したとき、運転回数を記憶する領域及び前記故障診断回数を記憶する領域を、ともに他の記憶領域に切り換えることを特徴とする。上述のように、故障診断回数が運転回数を上回ることがない場合には、オーバーフロー判定対象を運転回数のみとすることにより、比較等の演算処理を簡略化することができる。
【００１４】
また、故障診断回数が運転回数を上回ることがない場合には、現在の書換対象となっている記憶領域を特定する場合にも、請求項５に記載したように、運転回数を記憶した各記憶領域の記憶回数に基づいて行なうことができる。
【００１５】
請求項６に記載した車両制御装置は、切換手段が運転回数を記憶する領域及び故障診断回数を記憶する領域を切り換える際、記憶回数書換手段が、切換前の領域に切換済みであることを示す情報を書き込むことを特徴とする。切換前の領域の記憶回数を変更せずに保持しておく以外に、切換前の領域に切換済みであることを示す情報を書き込むようにしても、各記憶領域に関して切換済みであるのか、現在の書き込み対象領域であるのかを識別することができる。
【００１６】
この場合、請求項７に記載したように、切換済みであることを示す情報は、運転回数を記憶する領域及び故障診断回数を記憶する領域のいずれか一方に書き込まれることが好ましい。このようにすると、現在の書換対象となっている記憶領域を特定するために、運転回数を記憶した領域または故郷診断回数を記憶した領域の一方のみに関して、切換済みであることを示す情報であるか否かを判定すれば良い。従って、現在の書換対象となっている記憶領域を特定するための比較処理等の処理負荷を軽減することができる。
【００１７】
また、請求項８に記載したように、切換済みであることを示す情報は、オーバーフロー判定値よりも大きい値であることが好ましい。ゼロからオーバーフロー判定値までの値は、運転回数や故障診断回数を示す値として用いられるためである。
【００１８】
請求項９に記載の車両制御装置は、
車両が所定の運転状態となったことを検出する検出手段と、
所定の条件が満足された場合に車両制御装置における診断対象の故障診断を行なう故障診断手段と、
記憶内容を電気的に書き換え可能な不揮発性メモリと、
不揮発性メモリの記憶エリアには、車両が所定の運転状態となった回数である運転回数と、故障診断を行なった回数である故障診断回数とが記憶される領域がそれぞれ複数設定され、所定の運転状態となったことが検出されたとき、もしくは故障診断が行なわれたとき、運転回数もしくは故障診断回数を記憶している領域に対して、その記憶回数が増加するように書き換えを行なう記憶回数書換手段と、
車両制御装置の外部より故障診断の実行頻度に関わる情報の出力要求があった際に、不揮発性メモリに記憶されている運転回数と故障診断回数とを出力する、実行頻度に関わる情報出力手段と、
運転回数と故障診断回数との少なくとも一方がオーバーフロー判定値に達したとき、運転回数を記憶する領域及び前記故障診断回数を記憶する領域を、ともに他の記憶領域に切り換える切換手段とを備え、
切換手段によって記憶領域が切り換えられたとき、その切換後の記憶領域には、初期値としてゼロが設定されており、記憶回数書換手段による書換により、記憶回数は、その初期値ゼロから増加することを特徴とする。
【００１９】
このように、切換後の記憶領域に予め初期値としてゼロを設定し、記憶回数書換手段が、記憶回数を、その初期値ゼロから増加するように書き換えることにより、各記憶領域をより有効に使用することができる。すなわち、上述した請求項１の車両制御装置では、切換後の記憶領域に、切換前の記憶領域の記憶回数を１／２に減じた値を初期値として書き込むものであったのに対し、請求項９の車両制御装置では、初期値ゼロから記憶回数を増加させるものであるため、記憶回数がオーバーフロー判定値に達するまでの書換回数を大幅に増加させることができる。
【００２０】
ただし、切換後の記憶領域の初期値をゼロに設定した場合、切換済みの記憶領域の記憶回数と切換後の記憶領域の記憶回数との関連性がなくなってしまうため、故障診断の実行頻度の出力要求があった場合、切換後の記憶領域の記憶回数だけではなく切換済みの記憶領域の記憶回数も含めて出力することが必要になる。ところが、それらの記憶領域の記憶回数をそのまま加算して出力すると、オーバーフローにより、正確な回数を出力できない恐れがある。
【００２１】
そのため、請求項１２の車両制御装置では、情報出力手段が、外部より故障診断の実行頻度に関わる情報の出力要求があった際に、現在の書換対象領域が２番目以降の記憶領域となっているとき、切換済みの記憶領域の記憶回数と現在の書換対象領域の記憶回数との加算回数が、オーバーフロー判定値を超えないように、各記憶回数を所定値で除算した後に加算して、運転回数と故障診断回数とをそれぞれ出力する。これにより、オーバーフローを生ずることなく、切換済みの記憶領域の記憶回数と切換後の記憶領域の記憶回数とを加算でき、正確な故障診断の実行頻度を得ることができる。
【００２２】
また、請求項１３に記載の車両制御装置は、不揮発性メモリの記憶エリアに、前記運転回数と前記故障診断とが記憶される領域がそれぞれ２個ずつ設定されている場合であって、外部より故障診断の実行頻度に関わる情報の出力要求があった際に、１番目の記憶領域が切換済みであり、２番目の記憶領域が現在の書換対象領域となっており、かつ運転回数と故障診断回数の２番目の記憶領域の記憶回数がいずれもオーバーフロー判定値の１／２以下であるときには、１番目の記憶領域に記憶された記憶回数を２で除算した値と、２番目の記憶領域に記憶された記憶回数を示す値とを加算して、前記運転回数と故障診断回数とを出力することを特徴とする
各記憶領域が、ゼロからオーバーフロー判定値までの回数分だけ書き換えが可能であると、２個の記憶領域だけでも、通常の車両の使用状態における書換回数に対しては十分に余裕がある。この場合、上述したように、外部より故障診断の実行頻度に関わる情報の出力要求があった際に、２番目の記憶領域が現在の書換対象領域となっており、かつ運転回数と故障診断回数の２番目の記憶領域の記憶回数がいずれもオーバーフロー判定値の１／２以下であるときには、１番目の記憶領域に記憶された記憶回数を２で除算した値と、２番目の記憶領域に記憶された記憶回数を示す値とを加算して、運転回数と故障診断回数とを出力する。これにより、法規に定められたのと同等の運転回数および故障診断回数を出力することができる。
【００２３】
この場合、請求項１４に記載したように、運転回数と故障診断回数の２番目の記憶領域の記憶回数の少なくとも１方が、オーバーフロー判定値の１／２を超えたときには、１番目および２番目の記憶領域の記憶回数をともに２で除算した後に加算して、運転回数と故障診断回数とを出力することが好ましい。このようにすることにより、運転回数および故障診断回数に関して、加算した回数がオーバーフロー判定値を超えることを防止することができる。
【００２４】
なお、請求項１０，１１，１５，１６は、上述した請求項２，３，４，５と同様であるため、説明を省略する
【発明を実施するための最良の形態】
【００２５】
（第１実施形態）
以下、本発明の実施の形態における車両制御装置に関して、図面に基づいて説明する。なお、本実施形態においては、本発明による車両制御装置を、車両に搭載されたエンジンを制御するエンジン制御装置に適用した例について説明するが、トランスミッション制御装置、ブレーキ制御装置等に適用することも可能である。
【００２６】
図１は、本実施形態に係わるエンジン制御装置の概略構成を示す構成図である。同図に示すように、エンジン１０の吸気管にはインジェクタ１１が取り付けられており、このインジェクタ１１は、図示しないフューエルポンプによって圧送された燃料を吸気管に噴射するものである。インジェクタ１１によって噴射される燃料量や噴射時期は、エンジンＥＣＵ２０によって制御される。
【００２７】
エンジン１０の排気管にはＯ２センサ１２が設けられており、このＯ２センサ１２は排気管内の酸素濃度を検出して、エンジンＥＣＵ２０に出力する。エンジンＥＣＵ２０は、この酸素濃度に基づいて燃料噴射量を制御することにより、エンジンに供給される燃料と空気との比率である空燃比を制御する。
【００２８】
エンジン１０のシリンダブロックには、エンジン１０の冷却水温を検出する水温センサ１３が設けられている。さらに、本実施形態におけるエンジン制御装置は、車両速度を検出する車速センサ１４、外気温度を検出する外気温センサ１５、イグニッションスイッチ１６を有し、それぞれ、エンジンＥＣＵ２０に接続されて、検出信号等をエンジンＥＣＵ２０に出力する。なお、エンジンＥＣＵ２０には、さらにエンジン１０への吸入空気量を検出するエアフローメータやスロットルバルブの開度を検出するスロットルポジションセンサ、排気管の触媒下流側に設けられたセカンダリＯ２センサ等の信号も入力されるが、図示を省略する。
【００２９】
エンジンＥＣＵ２０は、通常のコンピュータとして構成されており、内部には周知のＣＰＵ、ＲＯＭ、ＲＡＭ、入出力回路、及びこれらの構成を接続するバスラインが備えられている。ＲＯＭには、エンジンＥＣＵ２０が実行するためのプログラムが書き込まれており、このプログラムに従ってＣＰＵが所定の演算処理を実行して、エンジン１０における燃焼状態を制御する。
【００３０】
さらに、このエンジンＥＣＵ２０には、例えばＥＥＰＲＯＭからなる不揮発性メモリ２１が設けられている。この不揮発性メモリ２１には、車両が所定の運転状態となった回数である運転回数と、エンジン制御装置２０がＯ２センサ、触媒、燃料エバポ等の、特に排気ガス成分に影響のある構成部品に対して故障診断を行なった回数である故障診断回数とがそれぞれ記憶される。具体的には、図２に示すように、各診断対象となる構成部品毎に、不揮発性メモリ２１の記憶エリアが、例えば領域１〜５に分割され、かつそれぞれの領域１〜５がさらに故障診断回数を記憶する領域と運転回数を記憶する領域とに分割されている。なお、分割された故障診断回数記憶領域と運転回数記憶領域とはそれぞれ２ｂｙｔｅの記憶容量を備えている。
【００３１】
そして、各領域１〜５における書き換え回数、すなわち故障診断回数あるいは運転回数のいずれかがオーバーフロー判定値（６５５３５±２）に達した場合、書き換え対象となる領域１〜５が切り換えられる。このようにして、故障診断回数と運転回数とのオーバーフローを防止するため、不揮発性メモリ２１の各領域１〜５を切り換えながら、故障診断回数と運転回数とを記憶させることができる。この結果、ＯＢＤＩＩ Rate Baseモニタ法に定められた、運転回数を分母とし、故障診断回数を分子として計算されるモニタ頻度がいつでも確認できるようにしている。
【００３２】
エンジンＥＣＵ２０には、ダイアグコネクタ２５を介してツール３０が接続可能になっている。そして、ツール３０からの故障診断に関する出力要求に応じて、エンジンＥＣＵ２０は、その要求に対応した内容のデータを出力する。例えば、故障診断の実行頻度に関わる情報の出力要求があった際、エンジンＥＣＵ２０は不揮発性メモリ２１に記憶されている運転回数と故障診断回数とを出力する。
【００３３】
次に、本実施形態の特徴である不揮発性メモリ２１における運転回数及び故障診断回数の書き換え処理、及びそれに伴う書き換え対象領域１〜５の切り換え処理について、図３及び図４に示すフローチャートに基づいて説明する。
【００３４】
なお、図３及び図４のフローチャートに示す処理は、車両が所定の運転状態ととなったことが検出されたとき、もしくは故障診断が行なわれたときに実行されるものである。車両の所定の運転状態としては、例えばイグニッションスイッチがオンされ、エンジン１０が始動された状態を検出しても良い。さらに、エンジン１０の始動後所定時間経過した状態、所定時間以上の期間車両の速度が所定速度以上に上昇した状態、アイドル回転での運転が所定時間継続した状態、外気温度が所定温度以上である状態等の条件を複合的に組み合わせて、所定の運転状態として検出しても良い。これらの状態を検出するために、図１に示す水温センサ１３，車速センサ１４、外気温センサ１５、ＩＧスイッチ１６の検出信号が用いられる。
【００３５】
一方、故障診断は、例えばＯ２センサに関しては、その出力電圧が正常範囲に含まれるか否か等、所定の検査項目を実行することにより実施される。ただし、Ｏ２センサの出力電圧は、エンジン１０の温度が低下しているときや、車両が加減速等を行なってエンジン回転数が変化している過渡状態においては、正常範囲から逸脱する場合もあるので、各検査項目を実行するのに適した条件が満足された場合に実施される。
【００３６】
上記の所定の運転状態を検出した場合、あるいは故障診断を実施した場合、すぐに図３及び図４に示す処理を実施しても良いし、所定の運転状態の検出あるいは故障診断を実施したことを記憶しておき、ある一定時間毎に、所定の運転状態の検出あるいは故障診断の実施が記憶されているかどうかを判断し、記憶されている場合に図３及び図４に示す処理を実施してもよい。すなわち、後者の場合、上述した所定の運転状態が検出された場合、直ちにエンジンＥＣＵ２０のバックアップＲＡＭに所定の運転状態が検出されたことを示すデータを保存する。同様に、エンジンＥＣＵ２０が故障診断を行なった場合には、故障診断を行なったことを示すデータを直ちにバックアップＲＡＭに保存する。そして、ある一定時間毎（例えば４秒毎）にバックアップＲＡＭの保存データの内容を判定し、バックアップＲＡＭに保存されたデータに基づいて、不揮発性メモリ２１に記憶される運転回数、故障診断回数を書き換える。
【００３７】
また、ある一定時間毎ではなく、車両のエンジンが始動されてから停止されるまでを１サイクルとして、その１サイクル毎にエンジン停止のタイミングにて、バックアップＲＡＭに保存されたデータに基づいて、不揮発性メモリ２１に記憶される運転回数、故障診断回数を書き換えるようにしてもよい。
【００３８】
上記書換では、バックアップＲＡＭに所定の運転状態が検出されたことを示すデータが保存されていれば、運転回数を１回分増加し、故障診断を実行したことを示すデータが保存されていれば、故障診断回数を１回分増加する。そして、故障診断を行なう条件の方が、所定の運転状態を検出するための条件よりも厳しい場合は、運転回数は故障診断回数以上となるので、オーバーフロー判定値に達したか否かの判定は、運転回数のみに対して行なうようにしても良い。
【００３９】
なお、エンジンＥＣＵ２０がセルフシャットリレー回路を備えることにより、イグニッションスイッチがオフされた後も、エンジンＥＣＵ２０が必要な処理を実行する間、エンジンＥＣＵ２０に電源を供給し、その後、エンジンＥＣＵ２０がセルフシャットリレー回路をオープンにすることにより電源の供給を停止させることができる。
【００４０】
以下、図３及び図４のフローチャートについて説明する。
【００４１】
まず、図３のステップＳ１０では、不揮発性メモリ２１のいずれの領域１〜５が現在の書換対象領域すなわち、現在カウント中の故障診断回数と運転回数とを記憶した領域となっているかを検索する。この検索ルーチンの詳細を図４のフローチャートに示す。
【００４２】
図４のステップＳ２００では、書き換え対象領域を示す変数ｉを、初期値として１に設定する。なお、本実施形態では、書き換え対象領域は、記憶している運転回数もしくは故障診断回数がオーバーフロー判定値に達する毎に、領域１から領域５に向かって順次切り換えられるように設定されている。
【００４３】
ステップＳ２１０では、変数ｉが５よりも大きいか否かが判定される。これは、領域１〜５の全ての領域が既に書き換え対象領域となっており、かつ領域５において運転回数もしくは故障診断回数のどちらかがオーバーフロー判定値に達している場合に成立する条件である（詳しくは後述する）。この条件が成立した場合には、書き換え対象領域が存在しないため、ステップＳ２２０に進んで、「書換先＝なし」と設定される。一方、本検索ルーチンの処理開始後、初めてステップＳ２１０が実行された場合等、変数ｉの値が５以下と判定された場合には、ステップＳ２３０に進む。
【００４４】
ステップＳ２３０では、変数ｉによって示される領域ｉの故障診断回数（分子）がオーバーフロー判定値（６５５３５±２）に等しいか、それよりも小さいかが判定される。このとき、故障診断回数がオーバーフロー判定値に達しているとステップＳ２６０に進み、一方、まだオーバーフロー判定値に達していないと判定された場合には、ステップＳ２４０に進む。
【００４５】
ステップＳ２４０では、変数ｉによって示される領域ｉの運転回数（分母）がオーバーフロー判定値に等しいか、それよりも小さいかが判定される。このとき、運転回数がオーバーフロー判定値に達していると判定されるとステップＳ２６０に進む。一方、運転回数がオーバーフロー判定値に達していないと判定された場合には、ステップＳ２５０に進む。
【００４６】
ステップＳ２５０では、分子となる故障診断回数及び分母となる運転回数の両方とも、変数ｉによって示される領域ｉにおいて、まだオーバーフロー判定値に達していないので、この領域ｉを現在の書換対象領域とすべく、「書換先＝ｉ」と設定する。
【００４７】
ステップＳ２６０では、分子である故障診断回数と分母である運転回数との一方がオーバーフロー判定値に達しているので、変数ｉをインクリメントし、すなわち、書換対象領域の検索対象を切り換えて、ステップＳ２１０以降の処理を再度実行する。このような処理を繰り返して領域５が検索対象となり、かつ領域５においても故障診断回数と運転回数との一方がオーバーフロー判定値に達していると判定された場合には、ステップＳ２６０にて変数ｉがインクリメントされ、変数ｉは６になる。そして、引き続き実行されるステップＳ２１０にて、上述したように変数ｉは５よりも大きいと判定される。
【００４８】
上述の検索ルーチンを実行することにより書換先となる書換対象領域が設定されると、図３のステップＳ２０にて、検索ルーチンによって設定された書換先領域を選択する。このとき、図４の検索ルーチンにおいて「書換先＝なし」と設定された場合には、本フローを終了する。一方、ステップＳ２０にて、書換対象領域が領域１〜５のいずれかとして選定された場合には、ステップＳ３０にて分子である故障診断回数の書換を行なうか否かを判定する。本フローチャートは、分子である故障診断回数の書換と分母である運転回数の書換との少なくとも一方を行なう場合に実行される。そのため、ステップＳ３０にて、分子である故障診断回数を書き換えるか否かを判定するのである。
【００４９】
ステップＳ３０にて故障診断回数（分子）を書き換えると判定した場合には、ステップＳ４０に進み、故障診断回数の書換を実行しないと判定した場合には、分母である運転回数の書換えを行なうべく、ステップＳ８０に進む。
【００５０】
ステップＳ４０では、書換対象領域に記憶された故障診断回数（分子）を、その回数に１を加えた回数を新たな故障診断回数として書き換える。ステップＳ５０では、書き換えた故障診断回数（分子）がオーバーフロー判定値に達したか、オーバーフロー判定値よりも小さいか判定する。ステップＳ５０にて、故障診断回数（分子）がオーバーフロー判定値に達したと判定した場合には、ステップＳ６０に進み、一方、オーバーフロー判定値よりも小さいと判定した場合には、ステップＳ７０に進む。
【００５１】
ステップＳ５０にて、故障診断回数（分子）がオーバーフロー判定値に達したと判定された場合には、オーバーフローによる故障診断回数の損失を防止するため、書換対象領域を切り換える必要がある。ただし、現在の書換対象領域が既に領域５となっている場合には、新たな書換先の領域はない。このため、ステップＳ６０では、現在の書換対象領域が領域５に設定されているか否かを判別する。そして、領域５に設定されている場合には、新たな書換先となる領域はないので、本フローチャートによる処理を終了する。一方、現在の書換対象領域が領域５ではなく、切り換えるべき領域がある場合には、ステップＳ１１０に進む。
【００５２】
ステップＳ５０にて、故障診断回数（分子）がオーバーフロー判定値よりも小さいと判定された場合には、現在の領域（領域１〜５のいずれか）において、継続して故障診断回数の書換が可能である。そこで、ステップＳ７０では、さらに、分母である運転回数を書き換える必要があるか否かを判定する。このとき、運転回数（分母）を書き換える必要があると判定した場合には、ステップＳ８０に進み、運転回数（分母）を書き換える必要がないと判定した場合には、本フローチャートによる処理を終了する。
【００５３】
ステップＳ８０では、書換対象領域に記憶された運転回数（分母）を、その回数に１を加えた回数を新たな運転回数として書き換える。ステップＳ９０では、書き換えた運転回数（分母）がオーバーフロー判定値に達したか、オーバーフロー判定値よりも小さいか判定する。ステップＳ９０にて、運転回数（分母）がオーバーフロー判定値に達したと判定した場合には、ステップＳ１００に進み、一方、オーバーフロー判定値よりも小さいと判定した場合には、本フローチャートによる処理を終了する。
【００５４】
ステップＳ１００では、上述したステップＳ６０と同様に、現在の書換対象領域が領域５に設定されているか否かを判別する。そして、領域５に設定されている場合には、新たな書換先となる領域はないので、本フローチャートによる処理を終了する。一方、現在の書換対象領域が領域５ではなく、切り換えるべき領域がある場合には、ステップＳ１１０に進む。
【００５５】
ステップＳ１１０では、現在の書換対象領域における故障診断回数（分子）を１／２に減じた値を、領域番号が１増加した新たな書換対象領域に書き込む。さらにステップＳ１２０では、現在の書換対象領域における運転回数（分母）を１／２に減じた値を、領域番号が１増加した新たな書換対象領域に書き込む。これにより、故障診断回数及び運転回数がオーバーフローを生じることなく保持される。
【００５６】
なお、これらのステップＳ１１０，１２０による書き込み処理では、現在の書換対象領域における故障診断回数（分子）及び運転回数（分母）を変更せずにそのまま保持している。このため、図４のステップＳ２３０及びＳ２４０にて説明したように、故障診断回数（分子）及び運転回数（分母）をオーバーフロー判定値と比較することで、現在の書換対象領域がどの領域１〜５であるのかを、専用のポインタ等を用いることなく判別することが可能になる。
【００５７】
次に、図５の説明図を用いて、書換対象領域が領域１から領域２に切り換えられる例について説明する。
【００５８】
図５（ａ）に示す状態においては、故障診断回数（分子）の値は、４９１５２であり、オーバーフロー判定値まではまだ余裕があるが、運転回数（分母）は６５５３３であり、本実施形態においてオーバーフロー判定値として設定した６５５３４との差は１である。
【００５９】
そして、図５（ｂ）に示すように、運転回数（分母）の値が、図３のフローチャートのステップＳ８０の処理によって１だけ増加された場合、運転回数（分母）がオーバーフロー判定値（６５５３４）に達することになる。この場合、図５（ｃ）に示すように、図３のフローチャートのステップＳ１１０及びＳ１２０の処理により、現在の書換対象領域である領域１の故障診断回数（分子）及び運転回数（分母）が読み出され、それぞれ１／２に減じた値が演算され、その演算値が、新たな書換対象領域となる領域２に書き込まれる。
【００６０】
なお、運転回数（分母）がオーバーフロー判定値に達した場合に、故障診断回数（分子）も同時に１／２の値として領域２に書き込むのは、故障診断を行なう頻度を計算するために、故障診断回数と運転回数とは同時に半減される必要があるとともに、もし半減した故障診断回数（分子）を領域１にそのまま書き換えた場合には、領域１における書換回数と故障診断回数とが一致しなくなるためである。
【００６１】
図６は、故障診断回数（分子）の値がオーバーフロー判定値に達して、書換対象領域を領域２から領域３に切り換える例を示す。すなわち、図６（ａ）、（ｂ）に示すように、故障診断回数が増加されてオーバーフロー判定値に達した場合にも、故障診断回数（分子）及び運転回数（分母）の値がそれぞれ１／２に減じられ、新たな書換対象領域である領域３に書き込まれる。
【００６２】
ただし、上述したように、車両のエンジン１０の始動から停止までを１サイクルとし、その間の所定の運転状態の検出、及び故障診断の実行により、運転回数と故障診断回数をそれぞれ１づつ増加させる場合において、故障診断を行なう条件の方が、所定の運転状態を検出するための条件より厳しいときには、故障診断回数が運転回数を上回ることはない。従って、この場合は、図５（ａ）、（ｂ）、（ｃ）に示すように、運転回数（分母）がオーバーフロー判定値に達したことに基づいて、書換対象領域が切り換えられることになる。このため、オーバーフロー判定値との比較は、運転回数（分母）に対してのみ行なうようにしてもよい。
【００６３】
さらに、この場合、図４のフローチャートに示す、現在の書換対象領域の検索ルーチンにおいて、各記憶領域の運転回数（分母）がオーバーフロー判定値に達しているか否かの判定のみを行なって、現在の書換対象領域を特定するようにしても良い。
【００６４】
上述したように、本実施形態による車両制御装置においては、運転回数及び故障診断回数の値を、不揮発性メモリ２１のそれぞれの領域における書き換え回数として、運転回数もしくは故障診断回数がオーバーフロー判定値（６５５３５±２）に達したら、書換対象領域、すなわち運転回数と故障診断回数の記憶領域を他の領域に切り換えている。これにより、各領域１〜５の書き換え回数をカウントした結果を記憶する専用の領域を設ける必要がないため、不揮発性メモリ２１を効率的に使用することができる。さらに、各領域１〜５の書き換え回数が不揮発性メモリ２１の動作保証回数以下かを判別するために、このオーバーフロー判定値を利用しているので、その書き換え回数が動作保証回数以下であるか判別することのみを目的として、比較演算処理を行なう必要がなくなり。演算処理の効率化をも図ることができる。
【００６５】
（第２実施形態）
次に本発明の第２の実施形態について説明する。本第２実施形態による車両制御装置の構成は、上述した第１実施形態と同様であるため、説明を省略する。
【００６６】
上述した第１実施形態においては、記憶領域が切り換えられても、その切換前の記憶領域の記憶回数が保持され、各記憶領域の記憶回数がオーバーフロー判定値に一致するか否かによって、現在の書換対象となる記憶領域を特定するものであった。それに対して、本第２実施形態においては、記憶領域が切り換えられたときに、切換前の記憶領域を使用済みであることを示す判定値に書き換えることを特徴とするものである。このようにしても、その判定値に基づいて各記憶領域に関して切換済みであるのか、現在の書き込み対象領域であるのかを識別することができる。
【００６７】
図７は、本実施形態による不揮発性メモリ２１における運転回数及び故障診断回数の書き換え処理等を示すフローチャートである。図７に示すように、ステップＳ１０〜ステップＳ１２０までの処理は、上述した第１実施形態と全く同一である。
【００６８】
本実施形態では、運転回数もしくは故障診断回数がオーバーフロー判定値に達して、書換先の記憶領域が切り換えられ、その切換後の記憶領域に切換前の記憶領域の記憶回数を１／２に減じた値が書き込まれた後、すなわちステップＳ１２０が実施された後に、ステップＳ１３０に示す処理を実施する。ステップＳ１３０では、切換前の故障診断回数を記憶する記憶領域に使用済みであることを示す使用済み判定値を書き込む。
【００６９】
この使用済み判定値としては、図９に示すように、オーバーフロー判定値（６５５３４）よりも大きい値（６５５３５）を使用している。なぜならば、ゼロからオーバーフロー判定値までの値は、故障診断回数を示す値として用いられるため、それらの値と識別できるようにするためである。このように、記憶領域が切り換えられる毎に、故障診断回数を記憶する記憶領域に使用済み判定値を書き込むことにより、故障診断回数を記憶する記憶領域の値のみ使用済み判定値であるか否かによって現在の書込対象領域を検索できるので、現在の書込対象領域を検索する処理を簡略化することができる。
【００７０】
図８に、本実施形態における書込対象領域の検索ルーチンのフローチャートを示す。図８に示すように、ステップＳ２３０にて故障診断回数（分子）が使用済み判定値か否かを判定するのみで、運転回数（分母）に関する判定は行なわない。そして、ステップＳ２３０にて、使用済み判定値に一致していると判定されると、ステップＳ２６０に進み、一方、使用済み判定値とは異なると判定された場合には、ステップＳ２５０に進む。
【００７１】
ステップＳ２５０では、故障診断回数の、変数ｉによって示される記憶領域ｉに使用済み判定値が書き込まれていないため、この領域ｉを現在の書換対象領域とすべく、「書換先＝ｉ」と設定する。また、ステップＳ２６０では、故障診断回数の、変数ｉによって示される記憶領域ｉに使用済み判定値が書き込まれているため、変数ｉをインクリメントし、ステップＳ２１０以降の処理を再度実行する。このように、故障診断回数を記憶する記憶領域の値のみから現在の書換対象領域を検索することができるため、第１実施形態に比較して検索処理を簡略化することができる。
【００７２】
なお、上述した例は、使用済み判定値を故障診断回数の記憶領域に書き込むものであったが、運転回数の記憶領域に書き込んで、その運転回数の記憶領域の値から書換対象領域を検索するようにしても良い。さらに、検索処理を簡略にするとの効果は見込めないが、例えば、オーバーフロー判定値に達した運転回数又は故障診断回数の記憶領域に使用済み判定値を書き込んで、第１実施例と同様に、運転回数または故障診断回数の記憶領域の値が使用済み判定値か否かに基づいて書換対象領域を検索しても良い。このようにしても、現在の書換対象領域を検索することは可能である。
【００７３】
（第３実施形態）
次に本発明の第３の実施形態について説明する。本第３実施形態による車両制御装置の構成も、上述した第１実施形態と同様であるため、説明を省略する。
【００７４】
上述した第１実施形態においては、運転回数もしくは故障診断回数の一方がオーバーフロー判定値に達すると、書込対象領域を切り換えて、その切換後の領域に、切換前の領域に記憶された回数を１／２に減じた値を初期値として書き込むものであった。従って、２番目以降の記憶領域に関しては、その初期値として書き込まれた回数分だけ、書換回数が少なくなってしまう。これに対して、本第３実施形態においては、切換後の記憶領域に予め初期値としてゼロを設定し、運転回数および故障診断回数として、その初期値ゼロから増加するように書き換えることにより、各記憶領域をより有効に使用することができるようにしたものである。
【００７５】
図１０は、本実施形態による、不揮発性メモリ２１における運転回数及び故障診断回数の書き換え処理等を示すフローチャートである。図１０に示すように、ステップＳ１０の処理、すなわち、図４に示す処理によって書換先の領域が検索され、特定の領域が書換対象領域として設定されるか、もしくは書換対象領域は存在しないとの設定がなされると、ステップＳ２０に進む。ステップＳ２０では、書換対象領域が存在するか否かを判定して、書換対象領域が存在する場合には、ステップＳ３０に進む。ステップＳ３０では、分子である故障診断回数の書換を行なうか否かを判定する。本フローチャートは、分子である故障診断回数の書換と分母である運転回数の書換との少なくとも一方を行なう場合に実行される。そのため、ステップＳ３０にて、分子である故障診断回数を書き換えるか否かを判定する。
【００７６】
ステップＳ３０にて故障診断回数（分子）を書き換えると判定した場合には、ステップＳ４０に進み、故障診断回数の書換は不要と判定した場合には、分母である運転回数の書換えを行なうべく、ステップＳ８０に進む。ステップＳ４０では、書換対象領域に記憶された故障診断回数（分子）を、その回数に１を加えた回数を新たな故障診断回数として書き換える。その後、ステップＳ７０にて、さらに、分母である運転回数を書き換える必要があるか否かを判定する。このとき、運転回数（分母）を書き換える必要があると判定した場合には、ステップＳ８０に進み、運転回数（分母）を書き換える必要がないと判定した場合には、本フローチャートによる処理を終了する。ステップＳ８０では、書換対象領域に記憶された運転回数（分母）を、その回数に１を加えた回数を新たな運転回数として書き換えて、本フローチャートによる処理を終了する。
【００７７】
このように、本実施形態では、第１実施形態のように、運転回数と故障診断回数のいずれかがオーバーフロー判定値に達した場合に、書込対象領域を切り換えて、切換前の領域の記憶回数の１／２を初期値として書き込む必要がないため、運転回数および故障診断回数の書換処理が大幅に簡略化される。
【００７８】
ただし、切換後の記憶領域の初期値をゼロに設定した場合、切換済みの記憶領域の記憶回数と切換後の記憶領域の記憶回数との関連性がなくなってしまう。このため、故障診断の実行頻度の出力要求があった場合、第１実施形態のように、単に、現在の書換対象となっている領域の運転回数および故障診断回数を出力するだけでは足らず、切換後の記憶領域の記憶回数と切換済みの記憶領域の記憶回数とを含めて出力することが必要になる。ところが、それらの記憶領域の記憶回数をそのまま加算して出力すると、オーバーフローにより、正確な回数を出力できない恐れがある。
【００７９】
そのため、ツール３０からの故障診断に関する出力要求があった場合、エンジンＥＣＵ２０は、図１１に示す処理を実行して、不揮発性メモリ２１に記憶されている運転回数と故障診断回数とを出力する。まず、ステップＳ３００では、不揮発性メモリ２１の運転回数および故障診断回数を記憶するために設けられている記憶領域に記憶された全ての記憶回数を読み出す。
【００８０】
そして、ステップＳ３１０において、読み出した運転回数および故障診断回数に基づいて、現在の書込対象領域が１番目の記憶領域であるのか、２番目以降の記憶領域であるのかを判定する。このとき１番目の記憶領域と判定された場合には、ステップＳ３４０に進んで、１番目の記憶領域に記憶された運転回数と故障診断回数とをそのまま出力する。
【００８１】
一方、現在の書込対象領域が２番目以降の記憶領域であると判定された場合には、切換済みの記憶領域の記憶回数と現在の書換対象領域の記憶回数との加算回数が、オーバーフロー判定値を超えないように、各記憶回数を所定値で除算する。そして、ステップＳ３３０では、各記憶回数の除算結果を加算することによって、故障診断の実行頻度を演算するための運転回数、および故障診断回数を求める。その後、ステップＳ３４０にて、このようにして求めた運転回数および故障診断回数を出力する。
【００８２】
たとえば、図１２（ａ），（ｂ），（ｃ）の例は、１番目の記憶領域において、分母である運転回数がオーバーフロー判定値に達したことにより（図１２（ｂ）参照）、その書換先が２番目の記憶領域に切り換えられ、その２番目の記憶領域において、運転回数が初期値ゼロから１増加された（図１２（ｃ）参照）場合を示す。この例の場合、ツール３０から故障診断の実行頻度の出力要求があったときには、１番目の記憶領域に記憶されたそれぞれの記憶回数を２で除算するとともに、２番目の記憶領域に記憶された記憶回数に関しては、運転回数と故障診断回数とのいずれかがオーバーフロー判定値の１／２に達するまでは、除算結果として、そのままの記憶回数とする（この場合、記憶回数を１で除算するのと等価である）。そして、これらの除算結果を加算して、運転回数と故障診断回数を求める。図１２（ａ），（ｂ），（ｃ）の例では、運転回数は、＄ＦＦＦＥ／２＋＄０００１＝＄８０００となり、故障診断回数は、＄Ｃ０００／２＋＄００００＝＄６０００となる。
【００８３】
しかし、２番目の記憶領域に記憶された運転回数と故障診断回数とのいずれかがオーバーフロー判定値の１／２に達した後は、１／２にされた１番目の記憶領域の記憶回数に、２番面の記憶領域の記憶回数をそのまま加算すると、オーバーフロー判定値を超えてしまう可能性が生じる。この場合には、２番目の記憶領域の記憶回数を例えば２で除算するか、１番目の記憶領域の記憶回数を除算する所定値を増加させる。このようにすれば、除算後の記憶回数を加算しても、その加算回数がオーバーフロー判定値を超えてしまうことを防止することができる。
【００８４】
図１３（ａ），（ｂ），（ｃ）に別の例を示す。図１３（ａ），（ｂ），（ｃ）の例は、１番目の記憶領域において、分母である運転回数がオーバーフロー判定値に達したことにより（図１３（ａ）参照）、その書換先が２番目の記憶領域に切り換えられ、その２番目の記憶領域において、分子である故障診断回数がオーバーフロー判定値に達したことにより（図１３（ｂ）参照）、その書換先が３番目の記憶領域に切り換えられた場合を示す。なお、３番目の記憶領域では、故障診断回数が初期値ゼロから１増加されている（図１３（ｃ）参照）。この場合、３個の記憶領域の記憶回数を加算する必要があるため、除算処理を行なうための所定値をより大きくする必要がある。
【００８５】
例えば、この例の場合、ツール３０から故障診断の実行頻度の出力要求があったときには、１番目の記憶領域に記憶されたそれぞれの記憶回数を４で除算するとともに、２番目の記憶領域に記憶されたそれぞれの記憶回数を２で除算し、３番目の記憶領域に関しては、運転回数と故障診断回数とのいずれかがオーバーフロー判定値の１／４に達するまでは、除算結果として、そのままの記憶回数とする。そして、これらの除算結果を加算して、運転回数と故障診断回数を求める。図１３（ａ），（ｂ），（ｃ）の例では、運転回数は、＄ＦＦＦＥ／４＋＄Ｆ０００／２＋＄００００＝＄Ｂ７ＦＦとなり、故障診断回数は、＄Ｃ０００／４＋＄ＦＦＦＥ／２＋＄０００１＝＄Ｂ０００となる。
【００８６】
ただし、３番目の記憶領域に記憶された運転回数と故障診断回数とのいずれかがオーバーフロー判定値の１／４に達した後は、オーバーフロー判定値を超えてしまう可能性が生じる。この場合には、１番目，２番目，および３番目の記憶領域の記憶回数を除算する所定値の少なくとも１つを増加させて、その除算結果の加算回数がオーバーフロー判定値を超えないようにする。
【００８７】
（変形例）
以上、本発明の好ましい実施形態について説明したが、本発明は上述した各実施形態に制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することができる。
【００８８】
例えば、上述した各実施形態では、不揮発性メモリ２１に、運転回数および故障診断回数を記憶する領域として、それぞれ５個の記憶領域を設定する例について説明したが、その記憶領域は５個に制限されるものではない。
【００８９】
特に、第３実施形態のように、各記憶領域をゼロからオーバーフロー判定値までの回数分だけ書換え可能にした場合には、２個の記憶領域だけでも、通常の車両の使用状態における運転回数および故障診断回数の書換回数に対しては十分に余裕がある。このように、運転回数および故障診断回数を記憶する領域としてそれぞれ２個の記憶領域を設定した場合には、図１２（ａ），（ｂ），（ｃ）の例において説明した手法で、運転回数および故障診断回数を算出すれば良い。
【図面の簡単な説明】
【００９０】
【図１】第１実施形態に係わる車両制御装置としてのエンジン制御装置の概略的な構成を示す構成図である。
【図２】不揮発性メモリの記憶エリアを、複数の領域に分割した状態を示すイメージ図である。
【図３】不揮発性メモリ２１における運転回数及び故障診断回数の書き換え処理、及びそれに伴う書換対象領域の切り換え処理を示すフローチャートである。
【図４】現在の書換対象領域を検索する検索ルーチンを示すフローチャートである。
【図５】（ａ）〜（ｃ）は、運転回数（分母）がオーバーフロー判定値に達することによって、書換対象領域が領域１から領域２に切り換えられる例について説明する説明図である。
【図６】（ａ）、（ｂ）は、故障診断回数（分子）がオーバーフロー判定値に達することによって、書換対象領域が領域２から領域３に切り換えられる例について説明する説明図である。
【図７】第２実施形態による、不揮発性メモリ２１における運転回数及び故障診断回数の書き換え処理等を示すフローチャートである。
【図８】第２実施形態における、書込対象領域の検索ルーチンのフローチャートである。
【図９】第２実施形態における、使用済み判定値を説明するための説明図である。
【図１０】第３実施形態による、不揮発性メモリ２１における運転回数及び故障診断回数の書き換え処理等を示すフローチャートである。
【図１１】第３実施形態において、ツール３０からの故障診断に関する出力要求があった場合に、出力すべき運転回数と故障診断回数とを求めるための処理を示すフローチャートである。
【図１２】（ａ），（ｂ），（ｃ）は、第３実施形態において、出力すべき運転回数と故障診断回数の算出方法を一具体例を用いて説明する説明図である。
【図１３】（ａ），（ｂ），（ｃ）は、第３実施形態において、出力すべき運転回数と故障診断回数の算出方法を他の具体例を用いて説明する説明図である。
【符号の説明】
【００９１】
１０  エンジン
１１  インジェクタ
１２  Ｏ２センサ
１３  水温センサ
１４  車速センサ
１５  外気温センサ
１６  イグニッションスイッチ
２０  エンジンＥＣＵ
２１  不揮発性メモリ
３０  ツール
【図１】
2004156590.tif 000003
【図２】
2004156590.tif 000004
【図３】
2004156590.tif 000005
【図４】
2004156590.tif 000006
【図５】
2004156590.tif 000007
【図６】
2004156590.tif 000008
【図７】
2004156590.tif 000009
【図８】
2004156590.tif 000010
【図９】
2004156590.tif 000011
【図１０】
2004156590.tif 000012
【図１１】
2004156590.tif 000013
【図１２】
2004156590.tif 000014
【図１３】
2004156590.tif 000015