(57)【要約】【課題】電源の瞬断によって、運転回数と故障診断回数のいずれが不揮発性メモリに未書き込みであるか判別すること。【解決手段】バックアップＲＡＭに記憶された運転回数、故障診断回数を不揮発性メモリ２１に書き込む際、運転回数を分母とし故障診断回数を分子とする故障診断頻度を演算し、この故障診断頻度を最初に書き込む。そして、不揮発性メモリ２１から読み出した運転回数と故障診断回数とから演算される演算故障診断頻度と、不揮発性メモリ２１に記憶された記憶故障診断頻度とを比較する。両者が不一致である場合、最初に書き込まれた記憶故障診断頻度が書き込み処理によって更新され、後に書込予定の運転回数と故障診断回数の少なくとも一方が電源の瞬断によって未書き込みであると推測できる。そして、記憶故障診断頻度が正しいので、未書き込みであるのが、運転回数か、故障診断回数か、もしくは両方であるのかを判別できる。【選択図】　　　図３
2004137919.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された車載機器を制御する車両制御装置であって、
車両が所定の運転状態となったことを検出する検出手段と、
前記車両が所定の運転状態となった回数である運転回数を記憶する第１記憶手段と、
前記検出手段によって車両が所定の運転状態となったことが検出される毎に、前記第１記憶手段に記憶される運転回数を１回分増加する運転回数更新手段と、
所定の条件が満足された場合に前記車両制御装置における診断対象の故障診断を実施する故障診断手段と、
前記故障診断手段によって故障診断が実施された回数である故障診断回数を記憶する第２記憶手段と、
前記故障診断手段によって前記故障診断が実施される毎に、前記第２記憶手段に記憶される故障診断回数を１回分増加する故障診断回数更新手段と、
前記第１記憶手段に記憶された前記運転回数を分母とし、前記第２記憶手段に記憶された前記故障診断回数を分子として、故障診断頻度を演算する演算手段と、
記憶内容を電気的に書き換え可能な不揮発性メモリと、
前記第１記憶手段及び第２記憶手段にそれぞれ記憶された前記運転回数及び前記故障診断回数と、前記演算手段によって演算された前記故障診断頻度とを前記不揮発性メモリに書き込む書込手段と、
前記不揮発性メモリに書き込んで記憶された前記運転回数と前記故障診断回数とから故障診断頻度を演算し、この演算故障診断頻度と前記不揮発性メモリに書き込んで記憶された記憶故障診断頻度とを比較することにより、前記不揮発性メモリに記憶されている前記運転回数及び故障診断回数の適否を判別する判別手段とを備えることを特徴とする車両制御装置。
【請求項２】
前記車両制御装置は、車両のエンジンを制御するエンジン制御装置であり、前記診断対象は、前記エンジン制御装置においてエンジンの排気ガス成分に影響を与える構成部品であることを特徴とする請求項１に記載の車両制御装置。
【請求項３】
前記書込手段が、前記運転回数、前記故障診断回数、及び前記故障診断頻度を前記不揮発性メモリに書き込む際、前記故障診断頻度を最初に書き込むことを特徴とする請求項１に記載の車両制御装置。
【請求項４】
前記判別手段による判別結果に基づいて、前記第１及び第２記憶手段に記憶される運転回数及び故障診断回数を補正する補正手段を備えることを特徴とする請求項３に記載の車両制御装置。
【請求項５】
前記補正手段による前記運転回数及び前記故障診断回数の補正は、前記車両制御装置が起動されたことを契機として実施されることを特徴とする請求項４に記載の車両制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自己診断機能を有し、その診断回数等を不揮発性メモリに記憶する車両制御装置に関するものである。
【０００２】
【従来の技術】
２００２年に改定されたＯＢＤＩＩ（Ｏｎ　Ｂｏａｒｄ　Ｄｉａｇｎｏｓｉｓ　Ｖｅｒｓｉｏｎ　ＩＩ）におけるＲａｔｅ　Ｂａｓｅモニタ法（２００５年モデルイヤー車両より適応）によると、車両が所定の運転状態となった運転回数を分母とし、エンジンＥＣＵがＯ２センサ等の故障診断を行なった故障診断回数を分子として、その頻度（分子／分母）を所定値以上とすることが求められる。さらに、その運転回数及び故障診断回数を不揮発性メモリ等に記憶して、実際に故障診断を行なった頻度を車両外部のツールにて車両を診断する者が確認できるようにすることも必要である。
【０００３】
そのため、例えば不揮発性メモリとしてのＥＥＰＲＯＭに、運転回数及び故障診断回数を書き込んで、記憶させておく必要がる。しかし、その書き込み処理中に、例えばエンジンＥＣＵにおいて電源の瞬断が生じると、その瞬断によってエンジンＥＣＵがリセットされてしまい、それ以降の書き込み処理がおこなえなくなってしまう。
【０００４】
従来は、例えば、データの書き込みが電源の瞬断によらず、正常に行なわれたか否かを検証するために、チェックバイトを用いていた。このチェックバイトを用いる方法では、書き込み処理の最初に、不揮発性メモリに記憶され、通常は所定値を取るチェックバイトの値を、他の値に書き換える（チェックバイト破壊）。その後、所定のデータを不揮発性メモリに書き込む。そのデータの書き込みの終了後に、上述したチェックバイトの値を所定値に戻す。このような手順に従って書き込み処理を行なうことにより、不揮発性メモリの記憶内容を参照したときに、チェックバイトが破壊されたままである場合には、データの書き込み中に電源の瞬断が生じて、書き込み処理が途中で中断してしまったことがわかる。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した従来技術では、データの書き込み処理中における電源瞬断の発生の有無は検証できるが、不揮発性メモリに記憶されているデータの中で、どのデータが正常に書き込まれ、どのデータが未書き込みであるのか、識別することができない。
【０００６】
ここで、上述した運転回数及び故障診断回数は、故障診断を行なった頻度を演算する上で基礎となるものであり、書き込み処理によって正常にその回数が更新されたか否かを判別することは非常に重要である。さらに、書き込み処理の中断によって運転回数及び／または故障診断回数が未更新である場合には、その未更新の運転回数及び／または故障診断回数を正しい値に補正することが好ましい。
【０００７】
本発明は、かかる従来の問題点を鑑みてなされたもので、電源の瞬断によって運転回数及び故障診断回数が未更新であるか否かを検証することが可能な車両制御装置を提供することを第１の目的とする。また、運転回数と故障診断回数のいずれが未更新であるか判別することが可能な車両制御装置を提供することを第２の目的とする。さらに、運転回数と故障診断回数のいずれが未更新であるか判別した場合に、それを正しい値に補正することが可能な車両制御装置を提供することを第３の目的とする。
【０００８】
【課題を解決するための手段】
上記第１の目的を達成するために、請求項１に記載の車両制御装置は、車両に搭載された車載機器を制御する車両制御装置であって、
車両が所定の運転状態となったことを検出する検出手段と、
車両が所定の運転状態となった回数である運転回数を記憶する第１記憶手段と、
検出手段によって車両が所定の運転状態となったことが検出される毎に、第１記憶手段に記憶される運転回数を１回分増加する運転回数更新手段と、
所定の条件が満足された場合に車両制御装置における診断対象の故障診断を実施する故障診断手段と、
故障診断手段によって故障診断が実施された回数である故障診断回数を記憶する第２記憶手段と、
故障診断手段によって故障診断が実施される毎に、第２記憶手段に記憶される故障診断回数を１回分増加する故障診断回数更新手段と、
第１記憶手段に記憶された前記運転回数を分母とし、第２記憶手段に記憶された故障診断回数を分子として、故障診断頻度を演算する演算手段と、
記憶内容を電気的に書き換え可能な不揮発性メモリと、
第１記憶手段及び第２記憶手段にそれぞれ記憶された運転回数及び故障診断回数と、演算手段によって演算された故障診断頻度とを不揮発性メモリに書き込む書込手段と、
不揮発性メモリに書き込んで記憶された運転回数と故障診断回数とから故障診断頻度を演算し、この演算故障診断頻度と不揮発性メモリに書き込んで記憶された記憶故障診断頻度とを比較することにより、不揮発性メモリに記憶されている運転回数及び故障診断回数の適否を判別する判別手段とを備えることを特徴とする。
【０００９】
上記したように、運転回数及び故障診断回数に加えて、故障診断頻度をも不揮発性メモリに書き込んで記憶することにより、不揮発性メモリに記憶されている運転回数及び故障診断回数の適否を判別することが可能になる。すなわち、不揮発性メモリに記憶されている運転回数、故障診断回数、及び故障診断頻度のいずれかが未更新であると、その運転回数と故障診断回数とから演算される故障診断頻度（演算故障診断頻度）と不揮発性メモリに記憶されている故障診断頻度（記憶故障診断頻度）とが不一致となる。このように、請求項１に記載の車両制御装置では、運転回数及び故障診断回数に加えて、故障診断頻度を不揮発性メモリに書き込むだけで、運転回数及び故障診断回数の適否を判別することができる。
【００１０】
さらに、不揮発性メモリから記憶データを外部ツールにて読み出す場合、例えばノイズ等の影響によって、誤った記憶データが外部ツールに読み出されても、運転回数、故障診断回数、及び故障診断頻度を記憶していることにより、外部ツールに読み出された記憶データが正しいか否かを判別することができ、記憶データの信頼性を高めることができる。
【００１１】
なお、請求項２に記載したように、車両制御装置は、車両のエンジンを制御するエンジン制御装置であり、診断対象は、エンジン制御装置においてエンジンの排気ガス成分に影響を与える構成部品であることが好ましい。なお、排気ガス成分に影響を与える構成部品の具体例は、排気ガス中の酸素濃度を検出するＯ２センサ、排気ガスを浄化する触媒、燃料タンク内で気化した燃料を捕捉し、吸気管に供給する燃料エバポ等である。
【００１２】
また、上記第２の目的を達成するために、請求項３に記載の車両制御装置は、書込手段が、運転回数、故障診断回数、及び故障診断頻度を不揮発性メモリに書き込む際、故障診断頻度を最初に書き込むことを特徴とする。このように、故障診断頻度を最初に書き込むことにより、演算故障診断頻度と記憶故障診断頻度とが不一致である場合、最初に不揮発性メモリに書き込まれた記憶故障診断頻度が書き込み処理によって更新され、後に書込予定の運転回数と故障診断回数の少なくとも一方が未更新であると推測できる。そして、記憶故障診断頻度が正しい場合には、未更新であるのが、運転回数であるか、故障診断回数であるか、もしくは両方であるのかを容易に判別することができる。
【００１３】
上記第３の目的を達成するために、請求項４に記載の車両制御装置は、判別手段による判別結果に基づいて、第１及び第２記憶手段に記憶される運転回数及び故障診断回数を補正する補正手段を備えることを特徴とする。
【００１４】
このように、補正手段を備えることにより、例え電源の瞬断が生じた場合でも、不揮発性メモリに記憶される運転回数及び故障診断回数を、正しい値に更新することができる。
【００１５】
請求項５に記載したように、補正手段による運転回数及び故障診断回数の補正は、車両制御装置（例えばエンジンＥＣＵ）が起動されたことを契機として実施されることが好ましい。これにより、運転回数や故障診断回数をカウントする前に、不揮発性メモリに記憶した運転回数及び故障診断回数を正しい値に更新することができる。そして、更新後の運転回数及び故障診断回数を第１記憶手段及び第２記憶手段に設定することにより、車両制御装置が起動されてから停止されるまでに、所定の運転状態が検出された場合には、第１記憶手段に記憶される運転回数が１回分増加され、故障診断手段が故障診断を実施した場合には、第２記憶手段に記憶される故障診断回数が１回分増加される。このように、車両制御装置の起動を契機として運転回数及び故障診断回数を補正することにより、過去の書き込み処理の影響を確実に排除して、不揮発性メモリに記憶される運転回数及び故障診断回数の信頼性を高めることができる。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態における車両制御装置に関して、図面に基づいて説明する。なお、本実施形態においては、本発明による車両制御装置を、車両に搭載されたエンジンを制御するエンジン制御装置に適用した例について説明するが、トランスミッション制御装置、ブレーキ制御装置等に適用することも可能である。
【００１７】
図１は、本実施形態に係わるエンジン制御装置の概略構成を示す構成図である。同図に示すように、エンジン１０の吸気管にはインジェクタ１１が取り付けられており、このインジェクタ１１は、図示しないフューエルポンプによって圧送された燃料を吸気管に噴射する。インジェクタ１１によって噴射される燃料量や噴射時期は、エンジンＥＣＵ２０によって制御される。
【００１８】
エンジン１０の排気管にはＯ２センサ１３が設けられており、このＯ２センサ１３は排気管内の酸素濃度を検出して、エンジンＥＣＵ２０に出力する。エンジンＥＣＵ２０は、この酸素濃度に基づいて燃料噴射量を制御することにより、エンジンに供給される燃料と空気との比率である空燃比を制御する。
【００１９】
エンジン１０のシリンダブロックには、エンジン１０の冷却水温を検出する水温センサ１３が設けられている。さらに、本実施形態におけるエンジン制御装置は、車両速度を検出する車速センサ１４、外気温度を検出する外気温センサ１５、イグニッションスイッチ１６を有し、それぞれ、エンジンＥＣＵ２０に接続されて、検出信号等をエンジンＥＣＵ２０に出力する。なお、エンジンＥＣＵ２０には、さらにエンジン１０への吸入空気量を検出するエアフローメータやスロットルバルブの開度を検出するスロットルポジションセンサ、排気管の触媒下流側に設けられたセカンダリＯ２センサの信号も入力されるが、図示を省略する。
【００２０】
エンジンＥＣＵ２０は、通常のコンピュータとして構成されており、内部には周知のＣＰＵ、ＲＯＭ、ＲＡＭ、入出力回路、及びこれらの構成を接続するバスラインが備えられている。ＲＯＭには、エンジンＥＣＵ２０が実行するためのプログラムが書き込まれており、このプログラムに従ってＣＰＵが所定の演算処理を実行して、エンジン１０における燃焼状態を制御する。また、エンジンＥＣＵ２０はＲＡＭの一種として、車両のバッテリ（図示せず）から直接電源が供給され、イグニッションスイッチ１６をオフしても記憶内容が保持されるバックアップＲＡＭも備えている。
【００２１】
さらに、このエンジンＥＣＵ２０には、例えばＥＥＰＲＯＭからなる不揮発性メモリ２１が設けられている。この不揮発性メモリ２１には、車両が所定の運転状態となった回数である運転回数と、エンジン制御装置２０がＯ２センサ、触媒、燃料エバポ等の、特に排気ガス成分に影響のある構成部品に対して故障診断を行なった回数である故障診断回数と、運転回数を分母とし、故障診断回数を分子とする故障診断頻度とがそれぞれ記憶される。このように、不揮発性メモリ２１に運転回数と故障診断回数とを記憶させることにより、ＯＢＤＩＩ　Ｒａｔｅ　Ｂａｓｅモニタ法に定められた、運転回数を分母とし、故障診断回数を分子として計算される故障診断頻度がいつでも確認できるようにしている。
【００２２】
エンジンＥＣＵ２０には、ダイアグコネクタ２５を介してツール３０が接続可能になっている。そして、ツール３０からの故障診断に関する出力要求に応じて、エンジンＥＣＵ２０は、その要求に対応した内容のデータを出力する。例えば、故障診断の実行頻度に関わる情報の出力要求があった際、エンジンＥＣＵ２０は不揮発性メモリ２１に記憶されている運転回数と故障診断回数とを出力する。
【００２３】
さらに、故障診断頻度自身も不揮発性メモリ２１に記憶させることにより、運転回数、故障診断回数、及び故障診断頻度の不揮発性メモリ２１への書き込み時に、エンジンＥＣＵ２０の電源（図示せず）が瞬断した場合、書き込みが行なわれなかった、すなわち未更新のデータを判別するとともに、正しい値への補正を可能にしている。この点については後に詳細に説明する。
【００２４】
次に、本実施形態の特徴である不揮発性メモリ２１への運転回数、故障診断回数、故障診断頻度の書き込み処理、及び不揮発性メモリ２１に記憶された運転回数及び故障診断回数の読出・補正処理について、図２及び図３に示すフローチャート及び図４に示すタイムチャートに基づいて説明する。なお、図２のフローチャートは運転回数、故障診断回数、故障診断頻度の書き込み処理を示し、図３のフローチャートは、運転回数及び故障診断回数の読出・補正処理を示す。
【００２５】
書き込み処理及び読出・補正処理について、それぞれのフローチャートに基づいて詳しく説明する前に、まず、図４のタイムチャートに沿って、各処理についての概略を説明する。
【００２６】
図４（ａ）に示すように、イグニッションキーによりイグニッションスイッチ１６がオンされると、図４（ｂ）に示すようにエンジンＥＣＵ２０が作動を開始する。そして、その作動を開始した際の各種の変数等の初期設定を行なうイニシャル処理において、上述した運転回数及び故障診断回数の読出・補正処理が行なわれる。
【００２７】
次に、車両のエンジン１０が始動されてから停止されるまでの間に、車両が所定の運転状態となったことを検出すると、図４（ｃ）に示すようにバックアップＲＡＭに記憶される運転回数を更新する（Ｎ→Ｎ＋１）。ここで、車両の所定の運転状態としては、エンジン１０の始動後所定時間経過した状態、所定時間以上の期間、車両の速度が所定速度以上に上昇した状態、アイドル回転での運転が所定時間継続した状態、外気温度が所定温度以上である状態等の条件を複合的に組み合わせて、所定の運転状態として検出される。これらの状態を検出するために、図１に示す水温センサ１３，車速センサ１４、外気温センサ１５、ＩＧスイッチ１６の検出信号が用いられる。
【００２８】
一方、エンジンＥＣＵ２０による故障診断は、例えばＯ２センサに関しては、その出力電圧が正常範囲に含まれるか否か等の所定の検査項目を実行することにより実施される。ただし、Ｏ２センサの出力電圧は、エンジン１０の温度が低下しているときや、車両が加減速等を行なってエンジン回転数が変化している過渡状態においては、正常範囲から逸脱する場合もあるので、各検査項目を実行するのに適した条件が満足された場合に実施される。そして、エンジンＥＣＵ２０が故障診断を実施すると、図４（ｄ）に示すようにバックアップＲＡＭに記憶される故障診断回数を更新する（Ｍ→Ｍ＋１）。なお、この故障診断回数は、エンジン制御装置における個々の診断対象となる構成部品毎に、バックアップＲＡＭに記憶される。
【００２９】
このように、運転回数及び故障診断回数は、車両のエンジンが始動されてから停止されるまでを１サイクルとして、その１サイクル中に、上述した所定の運転状態が１度でも検出された場合及びエンジンＥＣＵ２０が１度でも故障診断を実施した場合には、それぞれ１回分増加される。換言すると、１サイクル中で、車両が所定の運転状態となったことが複数回検出されても、運転回数の増加分は１である。これは故障診断回数についても同様である。
【００３０】
このようにして、バックアップＲＡＭに記憶・更新される運転回数及び故障診断回数、さらにはバックアップＲＡＭに記憶された運転回数と故障診断回数とから演算される故障診断頻度は、図４（ｂ）、（ｅ）に示すように、イグニッションスイッチ１６がオフされたタイミングで、不揮発性メモリ２１に書き込まれる。
【００３１】
なお、故障診断を行なう条件の方が、所定の運転状態を検出するための条件よりも厳しいため、原則として、運転回数は故障診断回数以上となる。
【００３２】
また、エンジンＥＣＵ２０がセルフシャットリレー回路を備えることにより、イグニッションスイッチ１６がオフされた後も、エンジンＥＣＵ２０が必要な処理を実行する間、エンジンＥＣＵ２０に電源を供給し、その後、エンジンＥＣＵ２０がセルフシャットリレー回路をオープンにすることにより電源の供給を停止させることができる。
【００３３】
次に、図２のフローチャートに基づいて、運転回数、故障診断回数、及び故障診断頻度の書き込み処理について説明する。
【００３４】
まず、図２のステップＳ１０では、バックアップＲＡＭに記憶された運転回数を分母とし、故障診断回数を分子とする故障診断頻度を演算する。そして、ステップＳ２０にて、ステップＳ１０で演算した故障診断頻度を不揮発性メモリ２１に書き込む。
【００３５】
ステップＳ３０では、バックアップＲＡＭに記憶されている運転回数（分母）を不揮発性メモリ２１に書き込み、ステップＳ４０では、バックアップＲＡＭに記憶されている故障診断回数（分子）を不揮発性メモリ２１に書き込む。
【００３６】
このように、本実施形態における書き込み処理では、最初に、運転回数と故障診断回数とに基づいて故障診断頻度を演算し、演算した故障診断頻度を不揮発性メモリ２１に書き込む。その後、順次、運転回数及び故障診断回数を不揮発性メモリ２１に書き込んでいる。
【００３７】
この書き込み処理中に、エンジンＥＣＵ２０の電源瞬断が生じた場合について、図５を用いて説明する。なお、図５は、故障診断頻度が書き込まれた後で、運転回数あるいは故障診断回数を書き込む前に瞬断が生じた場合であって、運転回数及び／又は故障診断回数が前回値と同等または変化した各ケースにおいて、不揮発性メモリ２１から読み出された運転回数と故障診断回数とから演算した故障診断回数（演算故障診断回数）と不揮発性メモリ２１に記憶された故障診断回数（記憶故障診断回数）との大小関係、及び各ケースにおける補正内容を示す表である。
【００３８】
図５のケースＮｏ．１は、電源の瞬断が生じたタイミングが、故障診断頻度が書き込まれた後で、運転回数（分母）が書き込まれる前であり、書き込むべき運転回数（分母）及び故障診断回数（分子）が、前回値Ｎ、Ｍと同じ場合である。すなわち、図４に示すように、エンジン１０の始動から停止までのサイクルにおいて、車両が１度も所定の運転状態にはならず、かつエンジンＥＣＵ２０が故障診断を１度も実施しなかった場合である。この場合、電源の瞬断により、不揮発性メモリ２１に記憶されている運転回数は前回値Ｎのままであり、故障診断回数は前回値Ｍのままである。しかし、書き込み処理時においてバックアップＲＡＭにも同様に運転回数Ｎ及び故障診断回数Ｍが記憶されていたため、それらに基づいて不揮発性メモリ２１に書き込まれた故障診断頻度（記憶故障診断頻度）ＭＯＮＩと、不揮発性メモリ２１に記憶されている運転回数Ｎ及び故障診断回数Ｍとから演算された故障診断頻度（演算故障診断頻度）とは等しくなる。従って、この場合には、不揮発性メモリ２１に記憶された運転回数（分母）及び故障診断回数（分子）とも補正は不要となる。
【００３９】
ケースＮｏ．２は、ケースＮｏ．１と瞬断のタイミングのみ異なる場合である。すなわち、瞬断は、運転回数（分母）の書き込み後で、故障診断回数（分子）の書き込み前に生じた場合である。この場合、故障診断回数のみ正常に不揮発性メモリ２１に書き込めなかったのであるが、上述した通り、故障診断回数が前回値Ｍと同様であるため、演算故障診断頻度と記憶故障診断頻度ＭＯＮＩとは等しくなる。従って、この場合も、運転回数（分母）及び故障診断回数（分子）の補正は不要である。
【００４０】
ケースＮｏ．３は、電源の瞬断が生じたタイミングが、故障診断頻度が書き込まれた後で、運転回数（分母）が書き込まれる前であり、書き込むべき運転回数（分母）が前回値Ｎから１回分増加し（Ｎ＋１）、故障診断回数（分子）は、前回値Ｍと同じ場合である。すなわち、エンジン１０の始動から停止までのサイクルにおいて、車両は少なくとも１度は所定の運転状態となったが、エンジンＥＣＵ２０は故障診断を１度も実施しなかった場合である。この場合、電源の瞬断により、不揮発性メモリ２１に記憶されている運転回数及び故障診断回数は前回値Ｎ、Ｍのままである。しかし、書き込み処理時においてバックアップＲＡＭに記憶されていた運転回数はＮ＋１、故障診断回数はＭである。従って、運転回数Ｎ＋１と故障診断回数Ｍとに基づいて演算され、不揮発性メモリ２１に書き込まれた故障診断頻度（記憶故障診断頻度）ＭＯＮＩと、不揮発性メモリ２１に記憶されている運転回数Ｎ及び故障診断回数Ｍとから演算された故障診断頻度（演算故障診断頻度）とは不一致となる。より詳細には、記憶故障診断頻度ＭＯＮＩは、分母に１が加えられているため、演算故障診断頻度の方が記憶故障診断頻度ＭＯＮＩよりも大きくなる。従って、この場合には、不揮発性メモリ２１に記憶された運転回数（分母）に１を加える補正を行なうことで、運転回数（分母）を正しい値にすることができる。
【００４１】
ケースＮｏ．４は、ケースＮｏ．３と瞬断のタイミングのみ異なる場合である。すなわち、瞬断は、運転回数（分母）の書き込み後で、故障診断回数（分子）の書き込み前に生じた場合である。この場合、故障診断回数のみ正常に不揮発性メモリ２１に書き込めない。しかし、故障診断回数は前回値Ｍと同様であるため、演算故障診断頻度と記憶故障診断頻度ＭＯＮＩとは等しくなる。従って、この場合、運転回数（分母）及び故障診断回数（分子）の補正は不要となる。
【００４２】
ケースＮｏ．５及びＮｏ．６は、瞬断のタイミングは異なるが、ともに運転回数が前回値Ｎのままで、故障診断回数のみ前回値Ｍから１回分増加した場合である。しかし、上述したように、エンジンＥＣＵ２０が故障診断を行なう条件の方が、所定の運転状態を検出するための条件よりも厳しいため、ケースＮｏ．５やケースＮｏ．６のような状況は、発生しえない。
【００４３】
ケースＮｏ．７は、電源の瞬断が生じたタイミングが、故障診断頻度が書き込まれた後で、運転回数（分母）が書き込まれる前であり、書き込むべき運転回数（分母）及び故障診断回数（分子）がともに前回値Ｎ、Ｍから１回分増加した（Ｎ＋１、Ｍ＋１）場合である。すなわち、エンジン１０の始動から停止までのサイクルにおいて、車両は少なくとも１度は所定の運転状態となり、エンジンＥＣＵ２０も少なくとも１度は故障診断を実施した場合である。この場合、電源の瞬断により、不揮発性メモリ２１に記憶されている運転回数及び故障診断回数は前回値Ｎ、Ｍのままである。しかし、書き込み処理時においてバックアップＲＡＭに記憶されていた運転回数はＮ＋１、故障診断回数はＭ＋１である。従って、運転回数Ｎ＋１と故障診断回数Ｍ＋１とに基づいて演算され、不揮発性メモリ２１に書き込まれた故障診断頻度（記憶故障診断頻度）ＭＯＮＩと、不揮発性メモリ２１に記憶されている運転回数Ｎ及び故障診断回数Ｍとから演算された故障診断頻度（演算故障診断頻度）とは不一致となる。より詳細には、原則として運転回数（分母）＞故障診断回数（分子）との関係において、記憶故障診断頻度ＭＯＮＩは、分母及び分子にそれぞれ１が加えられているため、演算故障診断頻度の方が記憶故障診断頻度ＭＯＮＩよりも小さくなる。従って、この場合には、不揮発性メモリ２１に記憶された運転回数（分母）及び故障診断回数（分子）にそれぞれ１を加える補正を行なうことで、運転回数（分母）及び故障診断回数（分子）を正しい値にすることができる。
【００４４】
ケースＮｏ．８は、ケースＮｏ．７と瞬断のタイミングのみ異なる場合である。すなわち、瞬断は、運転回数（分母）の書き込み後で、故障診断回数（分子）の書き込み前に生じた場合である。この場合、故障診断回数のみ正常に不揮発性メモリ２１に書き込めない。従って、記憶故障診断頻度ＭＯＮＩは分子がＭ＋１となるのに対し、演算故障診断頻度は、分子がＭとなるため、演算故障診断頻度の方が記憶故障診断頻度ＭＯＮＩよりも小さくなる。従って、この場合、故障診断回数（分子）に１を加える補正を行なうことにより、故障診断回数（分子）を正しい値にすることができる。
【００４５】
なお、ケースＮｏ．７とケースＮｏ．８とはともに演算故障診断頻度の方が記憶故障診断頻度ＭＯＮＩよりも小さくなるが、演算故障診断頻度の演算において分子に１を加えて再計算した演算故障診断頻度と記憶故障診断頻度ＭＯＮＩとが等しくなるか否かによってケースＮｏ．７とケースＮｏ．８とを判別することができる。すなわち、再計算した演算故障診断頻度と記憶故障診断頻度ＭＯＮＩとが等しくなればケースＮｏ．８に該当し、演算故障診断頻度が記憶故障診断頻度ＭＯＮＩよりも大きくなるとケースＮｏ．７に該当すると判別できる。
【００４６】
上述した、演算故障診断頻度と記憶故障診断頻度との比較や、不揮発性メモリ２１に記憶された運転回数（分母）及び故障診断回数（分子）の補正は、図３のフローチャートに示される読出・補正処理によって実施される。以下、図３のフローチャートについて説明する。
【００４７】
まず、図３のステップＳ１００では、不揮発性メモリ２１にそれぞれ記憶されている運転回数、故障診断回数、及び故障診断頻度を読み出す。そして、ステップＳ１１０にて、不揮発性メモリ２１から読み出した運転回数を分母とし、故障診断回数を分子とする演算値（演算故障診断頻度）を算出する。
【００４８】
ステップＳ１２０では、その演算故障診断頻度と不揮発性メモリ２１に記憶されていた故障診断頻度（記憶故障診断頻度）との比較を行なう。この比較において、演算故障診断頻度が、記憶故障診断頻度よりも大きいと判定された場合、ステップＳ１５０に進む。ステップＳ１５０では、演算故障診断頻度が記憶故障診断頻度よりも大きいのであるから、図５のケースＮｏ．３に該当するものとして、不揮発性メモリ２１に記憶された運転回数（分母）に１を加える補正を行なう。
【００４９】
一方、ステップＳ１２０において、演算故障診断頻度は記憶故障診断頻度以下であると判定された場合には、さらにステップＳ１３０にて、演算故障診断頻度が記憶故障診断頻度と等しいか、それよりも小さいかを判定する。このとき、演算故障診断頻度と記憶故障診断頻度とが等しいと判定された場合には、書き込み処理中に電源の瞬断がなかったか、もしくは、電源の瞬断があっても、補正は不要のケース（ケースＮｏ．１、２，４）に該当する。従って、この場合には、不揮発性メモリ２１の運転回数（分母）及び故障診断回数（分子）を補正することなく、本フローチャートの処理を終了する。
【００５０】
ステップＳ１３０にて、演算故障診断頻度が記憶故障診断頻度よりも小さいと判定された場合には、さらにステップＳ１４０にて、不揮発性メモリ２１に記憶されている故障診断回数（分子）に１を加えた上で、演算故障診断頻度を再計算し、記憶故障診断頻度と比較する。このとき、再計算した演算故障診断頻度と記憶故障診断頻度とが等しいと判定されれば、図５のケースＮｏ．８に該当するので、ステップＳ１６０にて、不揮発性メモリ２１に記憶されている故障診断回数（分子）に１を加える補正を行なう。
【００５１】
一方、ステップＳ１４０にて、再計算した演算故障診断頻度と記憶故障診断頻度とが等しくないと判定された場合、図５のケースＮｏ．７に該当するので、ステップＳ１７０にて、不揮発性メモリ２１に記憶された運転回数（分母）及び故障診断回数（分子）にそれぞれ１を加える補正を行なう。
【００５２】
上述した、読出・補正処理により、不揮発性メモリ２１への書き込み処理中に電源の瞬断が発生し、書き込み処理が中断した場合でも、運転回数及び／又は故障診断回数を正しい値に補正することができる。
【００５３】
なお、バックアップＲＡＭは車両のバッテリから直接電源を供給されているため、図５では、イグニッションスイッチのオン・オフによらず更新された運転回数及び故障診断回数を記憶しているように示されている。しかし、バッテリ上がりが生じたり、バッテリが車両から取り外された場合のことを考慮し、上述した読出・補正処理が完了したタイミングで、不揮発性メモリ２１に記憶されている運転回数及び故障診断回数をバックアップＲＡＭに設定することが好ましい。これにより、不揮発性メモリ２１において正しい値に補正された運転回数及び故障診断回数を、バックアップＲＡＭにも反映させることができる。
【００５４】
（変形例）
上述した実施形態においては、書き込み処理時に、まずバックアップＲＡＭに記憶された運転回数と故障診断回数とから演算される故障診断頻度を不揮発性メモリ２１に書き込んだ後に、順次、運転回数と故障診断回数とを書き込んでいた。しかしながら、最初に故障診断頻度を書き込んだ後は、故障診断回数、運転回数の順で不揮発性メモリ２１に書き込んでも良い。この場合の演算故障診断頻度と記憶故障診断頻度との大小関係、及び各ケースにおける補正内容を図６の表に示す。
【００５５】
また、上述した実施形態では、セルフシャットリレー回路にて、イグニッションスイッチ１６のオフ後のエンジンＥＣＵ２０に電源供給されている間に、バックアップＲＡＭに記憶されている運転回数と故障診断回数から、故障診断頻度、運転回数、及び故障診断回数を不揮発性メモリ２１に記憶させていた。しかしながら、エンジン１０の始動から停止までの１サイクルで所定の運転状態が始めて検出された時に、ならびに故障診断を始めて実施した時に、それぞれ一旦バックアップＲＡＭに記憶するとともに、その所定の運転状態が検出された時から、ならびに故障診断を実施した時からそれぞれ所定時間内（例えば１０秒以内）に不揮発性メモリ２１に故障診断頻度とともに、運転回数、故障診断回数を書き込むようにしても良い。この場合も、最初に故障診断頻度を書き込む点は同様である。
【図面の簡単な説明】
【図１】実施形態に係わる車両制御装置としてのエンジン制御装置の概略的な構成を示す構成図である。
【図２】不揮発性メモリに対する運転回数、故障診断回数、及び故障診断頻度の書き込み処理を示すフローチャートである。
【図３】不揮発性メモリから運転回数等を読出し、演算故障診断頻度と記憶故障診断頻度との比較により、未書き込みのデータを判別して補正する読出・補正処理を示すフローチャートである。
【図４】（ａ）〜（ｆ）は、書き込み処理、読出・補正処理を行なうタイミングを示すタイムチャートである。
【図５】故障診断頻度が書き込まれた後で、運転回数あるいは故障診断回数を書き込む前に瞬断が生じた場合であって、運転回数及び／又は故障診断回数が前回値と同等または変化した各ケースにおける、演算故障診断回数と記憶故障診断回数との大小関係、及び補正内容を示す表である。
【図６】不揮発性メモリへの書き込み順を、故障診断頻度、故障診断回数、運転回数とした場合において、図５と同様に、各ケースにおける演算故障診断回数と記憶故障診断回数との大小関係、及び補正内容を示す表である。
【符号の説明】
１０　エンジン
１１　インジェクタ
１２　Ｏ２センサ
１３　水温センサ
１４　車速センサ
１５　外気温センサ
１６　イグニッションスイッチ
２０　エンジンＥＣＵ
２１　不揮発性メモリ
３０　ツール
【図１】
2004137919.tif 000003
【図２】
2004137919.tif 000004
【図３】
2004137919.tif 000005
【図４】
2004137919.tif 000006
【図５】
2004137919.tif 000007
【図６】
2004137919.tif 000008