(57)【要約】【課題】電源が遮断されるタイミングの影響を受けることなくエンジンの運転時間の積算値を正しく得ることができるエンジン運転時間積算値記憶方法を提供する。【解決手段】一定時間が経過する毎に運転時間の積算値をインクリメントして、インクリメントした積算値をバッファメモリに記憶させた後、バッファメモリの記憶内容をＥＥＰＲＯＭの３つのデータ記憶領域に順次書き込む。マイクロプロセッサ１１の電源が投入され、そのイニシャライズが終了した後、３つのデータ記憶領域に記憶されているデータを比較することにより、前回のエンジンの運転時の運転時間の積算値の最終値が正しく記憶されていると見なすことができるデータ記憶領域を判定して、積算値の最終値が正しく記憶されていると見なすことができるデータ記憶領域に記憶されている積算値を今回のエンジンの運転時にバッファメモリに記憶させるデータの初期値とする。【選択図】    図３
2008303776.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサを用いてエンジンの運転時間を計測し、計測された運転時間の積算値を与えるデータを積算データとして、書換えが可能な不揮発性メモリに記憶させるエンジン運転時間積算データ記憶方法であって、
前記エンジンの運転中、一定の時間が経過する毎に前記積算データを一定の増分だけインクリメントして、インクリメントした積算データをバッファメモリに記憶させるようにしておくとともに、前記バッファメモリに記憶されるデータがインクリメントされる毎に該バッファメモリに新たに記憶された積算データを順次書き込む少なくとも３つのデータ記憶領域を前記不揮発性メモリに設定して、該少なくとも３つのデータ記憶領域へのデータの書込み順序を定めておき、
前記マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後、前記少なくとも３つのデータ記憶領域に記憶されている積算データを比較することにより、前回のエンジンの運転時に演算された積算データの最終値が正しく記憶されていると見なすことができるデータ記憶領域を判定して、該最終値が正しく記憶されていると見なすことができるデータ記憶領域に記憶されている積算データの値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とするバッファメモリ初期値設定過程を行なうこと、
を特徴とするエンジン運転時間積算データ記憶方法。
【請求項２】
マイクロプロセッサを用いてエンジンの運転時間を計測し、計測された運転時間の積算値を与えるデータを積算データとして、書き換えが可能な不揮発性メモリに記憶させるエンジン運転時間積算データ記憶方法において、
前記エンジンの運転中、一定の時間が経過する毎に前記積算データを一定の増分だけインクリメントして、インクリメントした積算データをバッファメモリに記憶させるようにしておくとともに、前記バッファメモリに記憶される積算データがインクリメントされる毎に該バッファメモリに新たに記憶された積算データを書き込む第１ないし第３のデータ記憶領域を前記不揮発性メモリに設定して、第１のデータ記憶領域、第２のデータ記憶領域及び第３のデータ記憶領域の順にデータを書き込むように前記第１ないし第３のデータ記憶領域へのデータの書き込み順序を定めておき、
前記マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後、前記第１ないし第３のデータ記憶領域にそれぞれ記憶されている第１ないし第３のデータを比較して、前記第１のデータと第２のデータとが等しいとの第１の判定が成立したときには前記第１のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とし、前記第１のデータと第２のデータとが等しくなく、前記第２のデータが第３のデータに等しく、かつ第１のデータが第２のデータに前記増分を加算した値に等しいとの第２の判定が成立したときには前記第１のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とし、前記第１のデータと第２のデータとが等しくなく、前記第２のデータが第３のデータに等しく、かつ前記第１のデータが第２のデータに前記増分を加算した値に等しくないとの第３の判定が成立したときには前記第２のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とし、前記第１のデータと第２のデータとが等しくなく、かつ前記第２のデータが第３のデータに等しくないとの第４の判定が成立したときには前記第１のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とするバッファメモリ初期値設定過程を行なうこと、
を特徴とするエンジン運転時間積算データ記憶方法。
【請求項３】
エンジンの運転時間を計測する運転時間計測手段と、前記運転時間計測手段により計測された運転時間の積算値を与えるデータを積算データとして不揮発性メモリに記憶させる積算データ記憶手段とをマイクロプロセッサを用いて構成するエンジン運転時間積算データ記憶装置であって、
前記積算データ記憶手段は、
前記運転時間計測手段が計測している運転時間が設定された時間経過する毎にデータ更新タイミングを検出するデータ更新タイミング検出手段と、
前記データ更新タイミングが検出される毎に前記積算データを一定の増分だけインクリメントして、インクリメントした積算データをバッファメモリに記憶させる積算データ一時記憶手段と、
前記バッファメモリに記憶された積算データがインクリメントされる毎に前記バッファメモリに新たに記憶された積算データを、前記不揮発性メモリの少なくとも３つのデータ記憶領域に予め定めた順序で順次書き込むデータ書込み手段と、
前記マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後、前記少なくとも３つのデータ記憶領域に記憶されているデータを比較することにより、前回のエンジンの運転時に演算された積算値の最終値が正しく記憶されていると見なすことができるデータ記憶領域を判定して、該最終値が正しく記憶されていると見なすことができるデータ記憶領域に記憶されているデータの値を今回のエンジンの運転時に前記バッファメモリに積算データの初期値として記憶させるバッファメモリ初期値設定手段と、
を具備してなるエンジン運転時間積算データ記憶装置。
【請求項４】
エンジンの運転時間を計測する運転時間計測手段と、前記運転時間計測手段により計測された運転時間の積算値のデータを不揮発性メモリに記憶させる積算データ記憶手段とをマイクロプロセッサを用いて構成するエンジン運転時間積算データ記憶装置であって、
前記積算データ記憶手段は、
前記運転時間計測手段が計測している運転時間が設定された時間経過する毎にデータ更新タイミングを検出するデータ更新タイミング検出手段と、
前記データ更新タイミングが検出される毎に前記積算値のデータを一定の増分だけインクリメントして、インクリメントしたデータをバッファメモリに記憶させる積算データ一時記憶手段と、
前記バッファメモリに記憶される積算データがインクリメントされる毎に、前記バッファメモリに新たに記憶された積算データを、前記不揮発性メモリの第１ないし第３のデータ記憶領域に、第１のデータ記憶領域、第２のデータ記憶領域及び第３のデータ記憶領域の順に書き込み順序を定めて書き込むデータ書込み手段と、
前記マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後に、前記第１ないし第３のデータ記憶領域にそれぞれ記憶されている第１ないし第３のデータを比較して、前記第１のデータと第２のデータとが等しいとの第１の判定が成立したときには前記第１のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とし、前記第１のデータと第２のデータとが等しくなく、前記第２のデータが第３のデータに等しく、かつ第１のデータが第２のデータに前記増分を加算した値に等しいとの第２の判定が成立したときには前記第１のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とし、前記第１のデータと第２のデータとが等しくなく、前記第２のデータが第３のデータに等しく、かつ前記第１のデータが第２のデータに前記増分を加算した値に等しくないとの第３の判定が成立したときには前記第２のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とし、前記第１のデータと第２のデータとが等しくなく、かつ前記第２のデータが第３のデータに等しくないとの第４の判定が成立したときに前記第１のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とするバッファメモリ初期値設定手段と、
を具備してなるエンジン運転時間積算データ記憶装置。
【請求項５】
前記不揮発性メモリは、シリアルインターフェースを通してデータの読み書きを行なうシリアルＥＥＰＲＯＭである請求項３または４に記載のエンジン運転時間積算データ記憶装置。
【請求項６】
エンジンを回転させるために必要な各種の制御を行なうエンジン制御手段と、エンジンの運転時間を計測する運転時間計測手段と、前記運転時間計測手段により計測された運転時間の積算値を与えるデータを積算データとして不揮発性メモリに記憶させる積算データ記憶手段と、前記積算データ記憶手段により記憶されたエンジンの運転時間の積算値のデータが設定値に達したときに前記エンジンのメンテナンス時期が来たことの報知を行なうメンテナンス時期報知手段とがマイクロプロセッサを用いて構成されたエンジン制御装置において、
前記積算データ記憶手段は、
前記運転時間計測手段が計測している運転時間が設定された時間経過する毎にデータ更新タイミングを検出するデータ更新タイミング検出手段と、
前記データ更新タイミングが検出される毎に前記積算データを一定の増分だけインクリメントして、インクリメントしたデータをバッファメモリに記憶させる積算データ一時記憶手段と、
前記バッファメモリに記憶された積算データがインクリメントされる毎に前記バッファメモリに新たに記憶された積算データを、前記不揮発性メモリの少なくとも３つのデータ記憶領域に予め定めた順序で順次書き込むデータ書込み手段と、
前記マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後、前記少なくとも３つのデータ記憶領域に記憶されているデータを比較することにより、前回のエンジンの運転時に演算された積算値の最終値が正しく記憶されていると見なすことができるデータ記憶領域を判定して、該最終値が正しく記憶されていると見なすことができるデータ記憶領域に記憶されているデータを今回のエンジンの運転時に前記バッファメモリに積算データの初期値として記憶させるバッファメモリ初期値設定手段と、
を具備してなるエンジン制御装置。
【請求項７】
エンジンを回転させるために必要な各種の制御を行なうエンジン制御手段と、エンジンの運転時間を計測する運転時間計測手段と、前記運転時間計測手段により計測された運転時間の積算値を与えるのデータを積算データとして不揮発性メモリに記憶させる積算データ記憶手段と、前記積算データ記憶手段により記憶された積算データが設定値に達したときに前記エンジンのメンテナンス時期が来たことの報知を行なうメンテナンス時期報知手段とがマイクロプロセッサを用いて構成されたエンジン制御装置において、
前記積算データ記憶手段は、
前記運転時間計測手段が計測している運転時間が設定された時間経過する毎にデータ更新タイミングを検出するデータ更新タイミング検出手段と、
前記データ更新タイミングが検出される毎に前記積算データを一定の増分だけインクリメントして、インクリメントしたデータをバッファメモリに記憶させる積算データ一時記憶手段と、
前記バッファメモリに記憶される積算データがインクリメントされる毎に、前記バッファメモリに新たに記憶された積算データを、前記不揮発性メモリの第１ないし第３のデータ記憶領域に、第１のデータ記憶領域、第２のデータ記憶領域及び第３のデータ記憶領域の順に書き込み順序を定めて書き込むデータ書込み手段と、
前記マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後に、前記第１ないし第３のデータ記憶領域にそれぞれ記憶されている第１ないし第３のデータを比較して、前記第１のデータと第２のデータとが等しいとの第１の判定が成立したときには前記第１のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とし、前記第１のデータと第２のデータとが等しくなく、前記第２のデータが第３のデータに等しく、かつ第１のデータが第２のデータに前記増分を加算した値に等しいとの第２の判定が成立したときには前記第１のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とし、前記第１のデータと第２のデータとが等しくなく、前記第２のデータが第３のデータに等しく、かつ前記第１のデータが第２のデータに前記増分を加算した値に等しくないとの第３の判定が成立したときには前記第２のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とし、前記第１のデータと第２のデータとが等しくなく、かつ前記第２のデータが第３のデータに等しくないとの第４の判定が成立したときに前記第１のデータの値に等しい値を今回のエンジンの運転時に前記バッファメモリに記憶させる積算データの初期値とするバッファメモリ初期値設定手段と、
を具備してなるエンジン運転時間積算データ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサを用いてエンジンの運転時間を計測し、計測された運転時間の積算値を与えるデータを積算データとして、書き換えが可能な不揮発性メモリに記憶させるエンジン運転時間積算データ記憶方法及び記憶装置並びにこの記憶装置を備えたエンジン制御装置に関するものである。
【背景技術】
【０００２】
エンジンオイルの交換時期などのメンテナンス時期の管理を行なうために、エンジンの実運転時間を計測して、計測した運転時間の積算値を記憶させる装置が、特許文献１により提案されている。
【０００３】
特許文献１に記載された記憶装置においては、オイルを交換した時からのエンジンの運転時間を計測して、その計測値の積算値をメモリに記憶させ、記憶された運転時間の積算値が設定された値を超えたときにオイルを交換する時期が来たことをユーザに報知するようにしている。特許文献１に記載された記憶装置では、運転時間の積算値を記憶させるメモリとしてＥＥＰＲＯＭ（書換えが可能な不揮発性メモリ）を用いて、エンジンの運転が停止されて電源が落とされた状態でも記憶内容を保持するようにしている。
【特許文献１】特開２００３−１９３９０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された記憶装置では、運転時間の積算値を記憶させるメモリとしてＥＥＰＲＯＭを用いているが、ＥＥＰＲＯＭのような不揮発性メモリは、書込み速度が遅く、メモリへのデータの書込みに要する時間が長いため、メモリにデータを書き込んでいる最中にキースイッチが開かれたり、バッテリが外されたりして電源が遮断されると、メモリに正しいデータが記憶されないおそれがある。
【０００５】
特にコストの低減を図るために、ＥＥＰＲＯＭとして、シリアルインターフェースを用いてデータのやりとりを行なうシリアルＥＥＰＲＯＭを用いる場合には、書込みに要する時間が長くかかるため、データ記憶領域にデータを書き込んでいる途中で電源が遮断される確率が高くなる。データ記憶領域にデータを書き込んでいる途中で電源が遮断されると、ＥＥＰＲＯＭに記憶された運転時間の積算値が不定になるため、次回の運転時に運転時間の積算を開始する際の初期値を正しく定めることができなくなり、記憶された積算値の信頼性が失われる。この場合、メモリに記憶された運転時間の積算値の信憑性が疑わしくなるため、メンテナンスの管理を正しく行なうことができない。
【０００６】
本発明の目的は、書込みに要する時間が長い不揮発性メモリを用いる場合でも、エンジンの運転開始時の運転時間の積算値の初期値を常に適正な値として、運転時間の積算を正確に行なわせることができるエンジン運転時間積算データ記憶方法及びこの記憶方法を実施するために用いる記憶装置を提供することにある。
【０００７】
本発明の他の目的は、エンジンの運転時間の積算データを記憶する記憶装置として、書込みに要する時間が長い不揮発性メモリを用いる場合でも、エンジンの運転時間の積算を正確に行なわせて、運転時間の積算値の信頼性を高め、エンジンのメンテナンス時期の管理を的確に行なうことができるようにしたエンジン制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
本願の請求項１に記載された発明は、マイクロプロセッサを用いてエンジンの運転時間を計測し、計測された運転時間の積算値を与えるデータを積算データとして、書換えが可能な不揮発性メモリに記憶させるエンジン運転時間積算データ記憶方法に係わるものである。
【０００９】
本発明においては、エンジンの運転中、一定の時間が経過する毎に積算データを一定の増分だけインクリメントして、インクリメントしたデータをバッファメモリに記憶させるようにしておくとともに、バッファメモリに記憶されるデータがインクリメントされる毎に該バッファメモリに新たに記憶された積算データを順次書き込む少なくとも３つのデータ記憶領域を不揮発性メモリに設定して、該少なくとも３つのデータ記憶領域へのデータの書込み順序を定めておく。そして、マイクロプロセッサの電源が投入され、マイクロプロセッサのイニシャライズが終了した後に、少なくとも３つのデータ記憶領域に記憶されているデータを比較することにより、前回のエンジンの運転時に演算された積算値の最終値が正しく記憶されていると見なすことができるデータ記憶領域を判定して、該最終値が正しく記憶されていると見なすことができるデータ記憶領域に記憶されているデータの値を今回のエンジンの運転時にバッファメモリに記憶させるデータの初期値とするバッファメモリ初期値設定過程を行なう。
【００１０】
上記のように、運転時間の積算値が更新される毎に、更新された運転時間の積算値を一時的に記憶させておくバッファメモリを設けるとともに、運転時間の積算値を記憶させる不揮発性メモリに、少なくとも３つのデータ記憶領域を設定しておいて、バッファメモリの記憶内容が更新される（積算データがインクリメントされる）毎に、バッファメモリの記憶内容をこれらのデータ記憶領域に予め定めた順序で書き込むようにしておくと、エンジンの運転を停止する際に電源が遮断されるタイミングによっては、一部のデータ記憶領域に記憶されたデータが不定になることがあるが、すべてのデータ記憶領域に記憶されたデータが不定になることはなく、少なくとも一部のデータ記憶領域には、前回の運転の終了時に最後に更新された積算データまたはその直前に更新された積算データが記憶されている。そして、バッファメモリの内容を書き込むデータ記憶領域を少なくとも３つ設けておけば、これらのデータ記憶領域にそれぞれ記憶されているデータを比較することにより、いずれのデータ記憶領域に記憶されているデータが、前回の運転の終了時に最後に更新された積算データであるか、またはその直前に更新された積算データであるかを判定することができる。前回の運転の終了時に最後に更新された積算データまたはその直前に更新された積算データを次回の運転時にバッファメモリに記憶させる積算データの初期値とすることにより、次回の運転時に運転時間の積算値を与える積算データの演算を大きな誤差を生じさせることなく行うことができる。
【００１１】
例えば、前回エンジンの運転を停止させた際に、バッファメモリの内容が更新される前に電源が遮断されたとき、及びバッファメモリの内容の更新が行なわれる過程の途中で電源が遮断されたときには、次回の運転開始時にすべてのデータ記憶領域に記憶されているデータ（積算データ）の値が等しくなっている。この状態では、いずれかのデータ記憶領域に記憶されているデータの値を次回のエンジンの運転における運転時間の計測を行なう際のバッファメモリの記憶内容の初期値とすることにより、次回の運転における運転時間の積算値の演算を正しく開始させることができる。
【００１２】
なおバッファメモリの内容の更新が完了した後、最初にデータが書き込まれるデータ記憶領域へのデータの書込みが開始される前に電源が遮断されたときにも、次回の運転開始時にすべてのデータ記憶領域に記憶されているデータの値が等しくなっている。この場合、バッファメモリでは既に積算データの更新が済んでいるにも拘わらず、不揮発性メモリの各データ記憶領域には１回前の更新時の積算データが記憶されていることになるため、厳密には、すべてのデータ記憶領域に積算データの最終値が記憶されているとはいえないが、この場合、各データ記憶領域に記憶されているデータは、運転終了時直前に演算された積算データであるので、この積算データを最終値と見なして次の運転時にバッファメモリに記憶させる積算データの初期値としても、積算データの演算に大きな誤差は生じない。
【００１３】
また前回の運転停止時に、バッファメモリの内容が更新された後、最初にデータが書き込まれるデータ記憶領域へのデータの書込みが行なわれている途中で電源が遮断されたときには、次回の運転開始時に、最初にデータが書き込まれるデータ記憶領域に記憶されたデータの値は不定であるが、他のデータ記憶領域に記憶されたデータの値は等しくなっている。この場合には、他のデータ記憶領域に記憶されたデータの値を次回の運転時にバッファメモリに記憶させる積算データの初期値とすることにより、次回の運転における運転時間の積算データの演算を大きな誤差を生じさせることなく行わせることができる。
【００１４】
また前回の運転停止時に、バッファメモリの内容が更新され、最初にデータが書き込まれるデータ記憶領域へのデータの書込みが完了した後、２番目にデータが書き込まれるデータ記憶領域へのデータの書込みが開始される前に電源が遮断されたときには、次回の運転開始時に、最初にデータが書き込まれるデータ記憶領域に記憶されているデータの値が、２番目以降にデータが書き込まれるデータ書込み領域に書き込まれているデータの値に一定の増分を加算した値に等しくなっており、２番目以降にデータが書き込まれるデータ書込み領域に書き込まれているデータの値はすべて等しくなっている。この場合は、最初にデータが書き込まれるデータ記憶領域に記憶されているデータの値を次回の運転時にバッファメモリに記憶される積算データの初期値とすることにより、次回の運転における積算データの演算を正しく行わせることができる。
【００１５】
更に前回の運転停止時に、２番目にデータが書き込まれるデータ記憶領域へのデータの書込みが行なわれている最中に電源が遮断されたときには、次回の運転開始時に、２番目にデータが書き込まれるデータ記憶領域に書き込まれているデータは不定であるが、最初にデータが書き込まれるデータ記憶領域に書き込まれているデータの値は、３番目にデータが書き込まれるデータ記憶領域に書き込まれているデータに一定の増分を加算した値に等しくなっている。このときには、最初にデータが書き込まれるデータ記憶領域に記憶されているデータの値を次回の運転時にバッファメモリに記憶される積算データの初期値とすることにより、次回の運転における積算データの演算を正しく行わせることができる。
【００１６】
前回の運転停止時に、２番目にデータが書き込まれるデータ記憶領域へのデータの書込みが完了した後、３番目にデータが書き込まれるデータ記憶領域へのデータの書込みが開始される前に電源が遮断されたときには、次回の運転時に、最初にデータが書き込まれるデータ記憶領域に書き込まれているデータの値と２番目にデータが書き込まれるデータ記憶領域に書き込まれているデータの値とが等しく、かつ最初にデータが書き込まれるデータ記憶領域に書き込まれているデータの値と２番目にデータが書き込まれるデータ記憶領域に書き込まれているデータの値が、３番目にデータが書き込まれるデータ記憶領域に書き込まれているデータの値よりも一定の増分だけ大きくなっている。この場合も、最初にデータが書き込まれるデータ記憶領域に記憶されているデータの値を次回の運転時にバッファメモリに記憶される積算データの初期値とすることにより、次回の運転における積算時間の演算を正しく開始させることができる。
【００１７】
また前回の運転停止時に、３番目にデータが書き込まれるデータ記憶領域へのデータの書込みが行なわれている最中に電源が遮断されたときには、次回の運転時に、最初にデータが書き込まれるデータ記憶領域に書き込まれているデータの値と２番目にデータが書き込まれるデータ記憶領域に書き込まれているデータの値とが等しく、かつ３番目にデータが書き込まれるデータ記憶領域に書き込まれているデータの値は不定となっている。この場合も、最初にデータが書き込まれるデータ記憶領域に記憶されているデータの値を次回の運転時にバッファメモリに記憶される積算データの初期値とすることにより、次回の運転における運転時間の積算値の演算を正しく開始させることができる。
【００１８】
上記のように、本発明によれば、エンジンの運転を開始する際に、前回エンジンの運転を終了した際に計測された運転時間の積算値を与える積算データの最終値または最終値の演算が行われる直前に演算された積算データの値を求めて、この積算データを今回のエンジン運転時にバッファメモリに記憶させる積算データの初期値とするので、前回のエンジン運転停止時に電源が遮断されたタイミングの影響をほとんど受けることなく、エンジンの運転時間の積算値を与える積算データの演算と記憶とを正確に行なわせて、エンジンのメンテナンスを管理するための運転時間の積算値の情報を正確に得ることができる。
【００１９】
本願の請求項２は、上記エンジン運転時間積算データ記憶方法の好ましい態様の構成を記載したもので、この発明においては、エンジンの運転中、一定の時間が経過する毎に前記積算データを一定の増分だけインクリメントして、インクリメントしたデータをバッファメモリに記憶させるようにしておくとともに、バッファメモリに記憶される積算データがインクリメントされる毎に該バッファメモリに新たに記憶された積算データを書き込む第１ないし第３のデータ記憶領域を不揮発性メモリに設定して、第１のデータ記憶領域、第２のデータ記憶領域及び第３のデータ記憶領域の順にデータを書き込むように第１ないし第３のデータ記憶領域へのデータの書き込み順序を定めておく。
【００２０】
そして、マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後、第１ないし第３のデータ記憶領域にそれぞれ記憶されている第１ないし第３のデータを比較して、以下の（ａ）ないし（ｄ）の判定と、バッファメモリへのデータの初期値の書込みとを行なうバッファメモリ初期値設定過程を行なう。
（ａ）第１のデータと第２のデータとが等しいとの第１の判定が成立したときに、第１のデータの値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とする。
（ｂ）第１のデータと第２のデータとが等しくなく、第２のデータが第３のデータに等しく、かつ第１のデータが第２のデータに前記増分を加算した値に等しいとの第２の判定が成立したときには、第１のデータの値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とする。
（ｃ）第１のデータと第２のデータとが等しくなく、第２のデータが第３のデータに等しく、かつ第１のデータが第２のデータに増分を加算した値に等しくないとの第３の判定が成立したときには第２のデータの値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とする。
（ｄ）第１のデータと第２のデータとが等しくなく、かつ第２のデータが第３のデータに等しくないとの第４の判定が成立したときには、第１のデータの値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とする。
【００２１】
本願の請求項３に記載された発明は、エンジンの運転時間を計測する運転時間計測手段と、運転時間計測手段により計測された運転時間の積算値を与えるデータを積算データとして不揮発性メモリに記憶させる積算データ記憶手段とをマイクロプロセッサを用いて構成するエンジン運転時間積算データ記憶装置を対象とする。
【００２２】
本発明においては、上記積算データ記憶手段を、運転時間計測手段が計測している運転時間が設定された時間経過する毎にデータ更新タイミングを検出するデータ更新タイミング検出手段と、データ更新タイミングが検出される毎に積算値のデータを一定の増分だけインクリメントして、インクリメントしたデータをバッファメモリに記憶させる積算データ一時記憶手段と、バッファメモリに記憶された積算データがインクリメントされる毎にバッファメモリに新たに記憶された積算データを、不揮発性メモリの少なくとも３つのデータ記憶領域に予め定めた順序で順次書き込むデータ書込み手段と、マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後、少なくとも３つのデータ記憶領域に記憶されているデータを比較することにより、前回のエンジンの運転時に演算された積算値の最終値が正しく記憶されていると見なすことができるデータ記憶領域を判定して、該最終値が正しく記憶されていると見なすことができるデータ記憶領域に記憶されているデータの値を今回のエンジンの運転時に前記バッファメモリに積算データの初期値として記憶させるバッファメモリ初期値設定手段とを備えた構成とする。
【００２３】
本願の請求項４は、上記エンジン運転時間積算データ記憶装置の好ましい態様の構成を記載したもので、この発明においては、積算データ記憶手段を、運転時間計測手段が計測している運転時間が設定された時間経過する毎にデータ更新タイミングを検出するデータ更新タイミング検出手段と、データ更新タイミングが検出される毎に積算データを一定の増分だけインクリメントして、インクリメントした積算データをバッファメモリに記憶させる積算データ一時記憶手段と、バッファメモリに記憶される積算データがインクリメントされる毎に、バッファメモリに新たに記憶された積算データを、不揮発性メモリの第１ないし第３のデータ記憶領域に、第１のデータ記憶領域、第２のデータ記憶領域及び第３のデータ記憶領域の順に書き込み順序を定めて書き込むデータ書込み手段と、マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後に、第１ないし第３のデータ記憶領域にそれぞれ記憶されている第１ないし第３のデータを比較して、第１のデータと第２のデータとが等しいとの第１の判定が成立したときには第１のデータの値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とし、第１のデータと第２のデータとが等しくなく、第２のデータが第３のデータに等しく、かつ第１のデータが第２のデータに前記増分を加算した値に等しいとの第２の判定が成立したときには第１のデータの値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とし、第１のデータと第２のデータとが等しくなく、第２のデータが第３のデータに等しく、かつ第１のデータが第２のデータに増分を加算した値に等しくないとの第３の判定が成立したときには第２のデータの値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とし、第１のデータと第２のデータとが等しくなく、かつ第２のデータが第３のデータに等しくないとの第４の判定が成立したときに第１のデータの値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とするバッファメモリ初期値設定手段とを備えた構成とする。
【００２４】
上記不揮発性メモリとしては、シリアルインターフェースを通してデータの読み書きを行なうシリアルＥＥＰＲＯＭを用いることができる。不揮発性メモリとして、単価が低いシリアルＥＥＰＲＯＭを用いると、コストの低減を図ることができる。
【００２５】
請求項６に記載された発明は、エンジンを回転させるために必要な各種の制御を行なうエンジン制御手段と、エンジンの運転時間を計測する運転時間計測手段と、運転時間計測手段により計測された運転時間の積算値を与えるデータを積算データとして不揮発性メモリに記憶させる積算データ記憶手段と、積算データ記憶手段により記憶された積算データが設定値に達したときにエンジンのメンテナンス時期が来たことの報知を行なうメンテナンス時期報知手段とがマイクロプロセッサを用いて構成されるエンジン制御装置を対象としたもので、本発明においては、積算データ記憶手段が、請求項３に記載された発明と同様に構成される。
【００２６】
請求項７に記載された発明も請求項６に記載された発明と同様のエンジン制御装置を対象としたもので、本発明においては、積算データ記憶手段が、請求項４に記載された発明と同様に構成される。
【００２７】
なおエンジン制御手段は、エンジンの点火時期の制御、燃料噴射量の制御など、エンジンを回転させるために必要な各種の制御を行なう手段である。
【発明の効果】
【００２８】
以上のように、本発明に係わる運転時間積算データ記憶方法及び記憶装置によれば、エンジンの運転中、一定の時間が経過する毎に運転時間の積算値を与える積算データを一定の増分だけインクリメントして、インクリメントした積算データをバッファメモリに記憶させるとともに、バッファメモリに記憶された積算データがインクリメントされる毎に該バッファメモリに新たに記憶された積算データを不揮発性メモリに設定した少なくとも３つのデータ記憶領域に予め定めた順序で書込むようにしておいて、マイクロプロセッサのイニシャライズが終了した後に、少なくとも３つのデータ記憶領域に記憶されているデータを比較することにより、前回のエンジンの運転停止時にバッファメモリに記憶された積算データの最終値が正しく記憶されていると見なすことができるデータ記憶領域を判定して、該最終値が正しく記憶されていると見なすことができるデータ記憶領域に記憶されているデータの値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とするようにしたので、前回のエンジン運転停止時に電源が遮断されたタイミングの影響を受けることなく、常にエンジンの運転時間の積算値を与える積算データの演算と該積算データの記憶とを正確に行なわせて、エンジンのメンテナンスを管理するための運転時間の積算値の情報を正確に得ることができる。
【００２９】
また本発明に係わるエンジン制御装置によれば、エンジンの運転停止時に電源が遮断されるタイミングの影響をほとんど受けることなく、エンジンの運転時間の積算値を与える積算データの演算と該積算データの記憶とを正確に行なわせて、エンジンの運転時間の積算値についての情報を正確に得ることができるため、エンジンのメンテナンスの管理を的確に行なわせることができる。
【発明を実施するための最良の形態】
【００３０】
以下図１ないし図４を参照して、本発明の好ましい実施形態につき詳細に説明する。図１は、本発明に係わるエンジン制御装置のハードウェアの構成例を示した回路図、図２は、本発明に係わるエンジン運転時間積算データ記憶装置の構成を示したブロック図、図３は、マイクロプロセッサが一定の時間毎に実行する積算時間制御処理のアルゴリズムの一例を示したフローチャート、図４はマイクロプロセッサの電源が投入された際に行なわれるデータ判定・バッファメモリ初期値設定処理のアルゴリズムを示したフローチャートである。
【００３１】
図１において、１は負極端子が接地されたバッテリ、２はバッテリ１の両端の電圧がキースイッチ３とダイオード４とを通して入力された昇圧回路、５は昇圧回路４の入力端子間に接続されたコンデンサである。昇圧回路２は昇圧トランス２０１と発振回路２０２とを備えていて、昇圧トランス２の一次電流を発振回路の発振周波数に同期して断続させることにより、昇圧トランス２の二次コイルに２５０Ｖ程度まで昇圧された電圧を発生させる。
【００３２】
５は一端が共通接続された一次コイル５ａと二次コイル５ｂとを有する点火コイルで、一次コイル５ａの他端は接地されている。点火コイルの一次コイル５ａの一端には点火用コンデンサ６の一端が接続され、点火用コンデンサ６の他端は、カソードを該点火用コンデンサ側に向けたダイオード７を通して昇圧回路２の非接地側出力端子に接続されている。点火コイルの一次コイル５ａの両端にはカソードを接地側に向けたダイオード８が接続され、点火用コンデンサ６の他端と接地間に、放電用スイッチを構成するサイリスタ９がそのカソードを接地側に向けて接続されている。点火コイルの二次コイル５ｂの他端は高電圧コードを通して、エンジンの気筒に取付けられた点火プラグ１０の非接地側端子に接続されている。
【００３３】
１１は各種の制御を行なうマイクロプロセッサ（ＭＰＵ）で、このマイクロプロセッサは、バッテリ１の電圧がキースイッチ３とダイオード１２とを通して入力された電源回路１３から一定の電源電圧Ｖcc（５Ｖ）が与えられて動作する。図示の電源回路１３は３端子レギュレータからなっていて、その入力端子間及び出力端子間にはそれぞれコンデンサ１４及び１５が接続されている。
【００３４】
マイクロプロセッサ１１には、書換えが可能な不揮発性メモリであるシリアルＥＥＰＲＯＭ ＲＭが接続されている。また図示しないエンジンのクランク軸に取り付けられた鉄製のフライホイール１７の外周にリラクタ（誘導子）ｒ1が設けられ、リラクタｒ1の回転方向の前端側エッジ及び後端側エッジをそれぞれ検出して極性が異なるパルス信号Ｖs1及びＶs2を発生するパルサ（パルス信号発生器）１８が設けられている。パルサ１８は、エンジンの点火位置の計測を開始する基準クランク角位置の情報や、エンジンの回転速度の情報など、エンジンの制御に必要な回転情報を得るために設けられたもので、パルサ１８の出力Ｖs1及びＶs2は、波形整形回路１９によりマイクロプロセッサが認識し得る波形の信号ｐ1及びｐ2に変換されて、マイクロプロセッサの所定のポートに入力されている。マイクロプロセッサ１１は、例えばパルサから入力される信号ｐ1の発生周期からエンジンの回転速度を演算し、演算した回転速度と他の制御条件とに対してエンジンの点火位置（点火を行なわせるクランク角位置）を演算する。点火位置は、例えば、エンジンの気筒内のピストンが上死点に達する位置からの進み角の形で演算される。マイクロプロセッサは、エンジンのクランク軸が現在の回転速度で、基準クランク角位置（例えば信号Ｖs1の発生位置）から点火位置まで回転するのに要する時間を点火位置計測用計時データとして演算して、基準クランク角位置が検出されたときにこの計時データを点火タイマにセットしてその計測を開始させる。点火タイマが点火位置計測用計時データの計測を完了すると（演算された点火位置が検出されると）マイクロプロセッサ１１に割り込み指令が与えられる。マイクロプロセッサはこの割り込み処理で点火信号供給回路２０に点火指令信号を与える。点火信号供給回路はマイクロプロセッサから点火指令信号が与えられた時にオン状態になるスイッチを備えていて、マイクロプロセッサから点火指令信号が与えられた時に電源回路１３から与えられる電圧Ｖccを電源電圧として、サイリスタ９のゲートに点火信号Ｓiを供給する。
【００３５】
シリアルＥＥＰＲＯＭ  ＲＭは、電源電圧Ｖccが与えられる電源端子、及び接地端子ＧＮＤの他に、チップセレクト端子ＣＳ、シリアルクロック入力端子ＳＫ、シリアルデータ入力端子ＤＩ、シリアルデータ出力端子ＤＯ等を備えていて、マイクロプロセッサからチップセレクト端子にチップセレクト信号が与えられているときに、マイクロプロセッサからシリアルクロック入力端子ＳＫを通して与えられるクロック信号に同期して、シリアルデータ入力端子ＤＩを通して与えられるアドレスとデータとを1ビットずつ読み込んで、該データを所定のアドレス（データ記憶領域）に書き込む。
【００３６】
この例では、昇圧回路２と、点火コイル５と、点火用コンデンサ６と、サイリスタ９と、ダイオード７及び８とにより、バッテリの出力電圧を昇圧して得た高電圧で点火コイルの一次側に設けられた点火用コンデンサを充電して、該点火用コンデンサに蓄積された電荷を、放電用スイッチ（サイリスタ９）と点火コイルの一次コイルとを通して放電させることにより点火コイルの二次コイル５ｂに点火用の高電圧を誘起させる直流電圧昇圧式のコンデンサ放電式点火回路（ＤＣ−ＣＤＩ回路）が構成されている。
【００３７】
上記点火回路と、ダイオード４及び１２と、電源回路１３及びコンデンサ１４，１５と、マイクロプロセッサ１１と、波形整形回路１９と、シリアルＥＥＰＲＯＭ  ＲＭとがケース２１内に収納されて、ＥＣＵ（電子式制御ユニット）が構成されている。
【００３８】
上記のＥＣＵにおいて、キースイッチ３が閉じられると、昇圧回路２から２５０Ｖ程度まで昇圧されたパルス状の電圧が断続的に出力される。この電圧が発生する毎に点火用コンデンサ６が図示の極性に段階的に充電されていく。点火用コンデンサ６の両端の電圧が設定値に達すると、図示しない制御回路が昇圧回路２の発振回路２０２の発振を停止させ、点火用コンデンサ６の充電を停止させる。マイクロプロセッサ１１が演算した点火位置で点火指令信号を発生すると、点火信号供給回路２０がサイリスタ９に点火信号Ｓiを与えるため、サイリスタ９がオン状態になる。これにより、点火用コンデンサ６に蓄積された電荷がサイリスタ９と点火コイルの一次コイル５ａとを通して放電し、この放電により、点火コイルの一次コイルに高い電圧が誘起する。この電圧は点火コイルの一次、二次間の昇圧比により昇圧されるため、点火プラグ１０に点火用の高電圧が印加される。これにより、点火プラグ１０の放電ギャップに火花が生じ、エンジンが点火される。
【００３９】
図示の例では、ＥＣＵがエンジンの点火位置の制御を行なうように構成されているが、一般にＥＣＵは、エンジンを回転させるために必要な各種の制御を行なうエンジン制御手段を構成する。ＥＣＵに設けられるエンジン制御手段が行なう制御の中には、エンジンの点火位置の制御の他、必要に応じて、エンジンへの燃料の供給の制御などが含まれる。従って、エンジンが燃料噴射装置を備えている場合には、スロットル開度や回転速度などに対して燃料噴射量を制御する手段がＥＣＵ内に更に設けられる。
【００４０】
本実施形態においては、エンジンのメンテナンス時期を管理するため、図２に示すように、ＥＣＵのマイクロプロセッサ１１が、エンジンＥＮＧの運転時間を計測する運転時間計測手段ＴＭと、運転時間計測手段ＴＭにより計測された運転時間の積算値のデータを不揮発性メモリＲＭに記憶させる積算データ記憶手段ＡＭとを構成する。
【００４１】
運転時間計測手段ＴＭは、エンジンの運転時間を計測する手段である。本実施形態では、この運転時間計測手段が、エンジンが運転されていることが検出されているときに、一定時間Δｔ［msec］が経過する毎にカウンタＴｉｍｅ１の計数値を１ずつインクリメントする手段からなっている。本実施形態では、エンジンの回転速度が設定値（例えば１０００rpm）以上であるときにエンジンが運転されているとして、カウンタＴｉｍｅ１の計数値をΔｔ［msec］ステップで１ずつインクリメントする手段により、運転時間計測手段ＴＭが構成されている。Δｔは、運転時間の積算値を演算する処理を行うタスクを実行する間隔に等しく設定されるが、本実施形態では、Δｔ＝３２msecに設定している。即ち、エンジンが運転されていることが検出されているときに３２msecが経過する毎にカウンタＴｉｍｅ１の計数値を１だけインクリメントすることにより、エンジンの運転時間を計測する。
【００４２】
積算データ記憶手段ＡＭは、運転時間の積算値を与える積算データを一定時間ΔＴ（＞Δｔ）毎に一定の増分だけインクリメントして（積算データを更新して）、インクリメントした積算データを不揮発性メモリ（ＥＥＰＲＯＭ）ＲＭに記憶させる手段である。本実施形態においては、この積算データ記憶手段ＡＭが、データ更新タイミング検出手段ＴＤと、積算データ一時記憶手段ＢＭと、データ書込み手段ＤＷと、バッファメモリ初期値設定手段ＩＳとにより構成される。
【００４３】
データ更新タイミング検出手段ＴＤは、運転時間計測手段ＴＭにより計測されている運転時間が設定された時間ΔＴ経過する毎にデータ更新タイミング（積算値をインクリメントするタイミング）を検出する手段であり、積算データ一時記憶手段ＢＭは、データ更新タイミング検出手段ＴＤによりデータ更新タイミングが検出される毎に積算データを一定の増分だけインクリメントして、インクリメントした積算データをバッファメモリＭ0に記憶させる手段である。バッファメモリとしては、マイクロプロセッサに設けられているキャッシュメモリを用いる。バッファメモリに記憶される積算データは、エンジンの運転時間の積算値を与えるデータで、運転時間の積算値そのものでもよいが、本実施形態では、実際の運転時間の積算値をΔＴで除した値を積算データとしている。従って、積算データにΔＴを乗じることにより、実際の運転時間の積算値が求められる。
【００４４】
データ書込み手段ＤＷは、バッファメモリＭ0に記憶された積算データがインクリメントされる毎に、バッファメモリに新たに記憶された積算データを、不揮発性メモリＲＭの少なくとも３つのデータ記憶領域に予め定めた順序で順次書き込む手段である。即ち、本発明においては、不揮発性メモリＲＭの少なくとも３つのデータ記憶領域（アドレス）を、バッファメモリに新たに記憶された積算データを記憶させるデータ記憶領域Ｍ1，Ｍ2，Ｍ3，…として定めておいて、これらのデータ記憶領域にデータを書き込む順序を予め定めておき、バッファメモリに記憶された積算データＤ0がインクリメントされる毎にバッファメモリに新たに記憶された積算データＤ0を一連のデータ記憶境域に順番に書き込んでいく。
【００４５】
バッファメモリ初期値設定手段ＩＳは、エンジンの運転が開始されたときに、上記バッファメモリに記憶させる運転時間の積算値の初期値を定める手段である。このバッファメモリ初期値設定手段ＩＳは、エンジンを運転するためにマイクロプロセッサ１１の電源が投入され（キースイッチ３が閉じられ）、マイクロプロセッサ１１のイニシャライズが終了した後に、不揮発性メモリＲＭの前記少なくとも３つのデータ記憶領域Ｍ1，Ｍ2，…に記憶されているデータを比較することにより、前回のエンジンの運転時にバッファメモリに記憶されたデータの最終値が正しく記憶されていると見なすことができるデータ記憶領域を判定して、最終値が正しく記憶されていると見なすことができるデータ記憶領域に記憶されているデータの値を今回のエンジンの運転時に積算データの初期値としてバッファメモリＭ0に記憶させる。「最終値が正しく記憶されていると見なすことができるデータ記憶領域」とは、前回の運転停止時に最後に演算された積算データ（積算データの最終値）または、該最終値が演算される直前に（最後の演算の１回前に）演算された積算データが記憶されているデータ記憶領域である。
【００４６】
上記のように、運転時間の積算値を与える積算データが更新される毎に、更新された積算データを一時的に記憶させておくバッファメモリＭ0を設けるとともに、積算データを記憶させる不揮発性メモリに、少なくとも３つのデータ記憶領域Ｍ1，Ｍ2，…を設定しておいて、バッファメモリの記憶内容が更新される（インクリメントされる）毎に、バッファメモリに新たに記憶された積算データをこれらのデータ記憶領域に予め定めた順序で書き込むようにしておくと、エンジンの運転を停止する際に電源が遮断されるタイミングによっては、一部のデータ記憶領域に記憶されたデータが不定になる。しかし、すべてのデータ記憶領域に記憶されたデータが不定になることはなく、一部のデータ記憶領域には前回の運転時に最後に演算された（更新された）積算データの最終値またはその直前に更新された積算データが記憶されている。積算データの最終値を演算する直前（１回前）に演算された積算データの値と積算データの最終値との間の差は僅かであるので、積算データの最終値を演算する直前（１回前）に演算された積算データを積算データの最終値と見なしても、次回の運転時の積算データの演算に大きな誤差は生じない。そして、バッファメモリの内容を書き込むデータ記憶領域を少なくとも３つ設けておけば、後記するように、これらのデータ記憶領域にそれぞれ記憶されているデータを比較することにより、前回のエンジンの運転時に演算された積算データの最終値、またはその最終値の演算の直前に演算された積算データが記憶されているデータ記憶領域を、最終値が正しく記憶されていると見なすことができるデータ記憶領域として判定することができる。このようにして、前回のエンジン運転時に演算された積算データの最終値が正しく記憶されていると見なすことができるデータ記憶領域を特定して、そのデータ記憶領域に記憶されているデータの値を今回の運転時にバッファメモリに記憶させる積算データの初期値とすることにより、大きな誤差を生じさせることなく、積算データの演算を行わせることができる。
【００４７】
ここで、判定処理簡単にするために、不揮発性メモリに第１ないし第３のデータ記憶領域Ｍ１，Ｍ2及びＭ3を設定しておき、バッファメモリＭ0の記憶内容が更新された時に、これらのデータ記憶領域Ｍ1ないしＭ3に順次バッファメモリＭ0の記憶内容を書き込むものとする。
【００４８】
この場合、バッファメモリ初期値設定手段ＩＳは、マイクロプロセッサの電源が投入され、該マイクロプロセッサのイニシャライズが終了した後、第１ないし第３のデータ記憶領域Ｍ1ないしＭ3にそれぞれ記憶されている（前回の運転を終了する際に最後に記憶された）第１ないし第３のデータＤ１，Ｄ2及びＤ3を比較して、以下の（ａ）ないし（ｄ）の判定と、バッファメモリへのデータの初期値の書込みとを行なうバッファメモリ初期値設定過程を行なう。
（ａ）第１のデータＤ1と第２のデータＤ2とが等しいとの第１の判定が成立したときに、第１のデータＤ1の値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とする。
（ｂ）第１のデータＤ1と第２のデータＤ2とが等しくなく、第２のデータＤ2が第３のデータＤ3に等しく、かつ第１のデータＤ1が第２のデータＤ2に一定の増分（本実施形態では１）を加算した値に等しいとの第２の判定が成立したときには、第１のデータＤ1の値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とする。
（ｃ）第１のデータＤ1と第２のデータＤ2とが等しくなく、第２のデータＤ2が第３のデータＤ3に等しく、かつ第１のデータＤ1が第２のデータＤ2に増分を加算した値に等しくないとの第３の判定が成立したときには第２のデータＤ2の値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とする。
（ｄ）第１のデータＤ1と第２のデータＤ2とが等しくなく、かつ第２のデータＤ2が第３のデータＤ3に等しくないとの第４の判定が成立したときには、第１のデータＤ1の値に等しい値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とする。
【００４９】
図３は、エンジンの運転中、一定の時間Δｔ(本実施形態ではΔｔ＝３２msec)が経過する毎に、マイクロプロセッサが実施する積算時間制御処理である。この処理においては、ステップＳ１において、パルサ１８の出力信号の発生周期から演算されたエンジンの回転速度Ｎが判定速度１０００rpm以上であるか否かを判定する。この判定の結果、Ｎ≧１０００rpmでないと判定されたときには、エンジンの運転が行なわれていないと判定し、以後何もしないでこの処理から脱ける。
【００５０】
ステップＳ１において、エンジンの回転速度Ｎが判定速度１０００rpm以上であると判定されたときには、エンジンが運転されているとして、カウンタＴｉｍｅ１の計数値を１だけインクリメントする。図３の処理は、３２msec毎に行なわれるため、カウンタＴｉｍｅ１の計数値は３２msec毎に１だけインクリメントされる。カウンタＴｉｍｅ１の計数値をインクリメントした後、ステップＳ３でカウンタＴｉｍｅ１の計数値が３７５０以上であるか否かを判定する。その結果、カウンタＴｉｍｅ１の計数値が３７５０未満である（前回の運転時間の積算値の更新タイミングから２分が経過していない）と判定されたときには、以後何もしないでこの処理から脱ける。ステップＳ３でカウンタＴｉｍｅ１の計数値が３７５０以上である（前回の運転時間の積算値の更新タイミングから２分以上が経過した）と判定されたときには、次いでステップＳ４に進んで、バッファメモリに記憶された積算データＤ0を１だけインクリメントし、この積算データＤ0をステップＳ５でＥＥＰＲＯＭの第１のデータ記憶領域に第１のデータＤ１として書き込む。次いでステップＳ６でバッファメモリに記憶されている積算データＤ0をＥＥＰＲＯＭの第２のデータ記憶領域に第２のデータＤ2として書き込み、ステップＳ７でバッファメモリに記憶されている積算データＤ0をＥＥＰＲＯＭの第３のデータ記憶領域に第３のデータＤ3として書き込む。
【００５１】
図３の処理のステップＳ１ないしステップＳ３により、データ更新タイミング検出手段ＴＤが構成され、ステップＳ４により、積算データ更新値一時記憶手段ＢＭが構成される。またステップＳ５ないしＳ７により、データ書込み手段ＤＷが構成される。
【００５２】
エンジンの運転終了時に不揮発性メモリの第１ないし第３のデータ記憶領域に記憶されるデータは、電源が遮断されるタイミングにより異なる状態をとる。図３のアルゴリズムに従って、不揮発性メモリの第１のデータ記憶領域ないし第３のデータ記憶領域にそれぞれデータを書き込む場合に、エンジンの運転を終了する際に図３に示した電源遮断タイミング１でマイクロプロセッサの電源が遮断されたとする。このときバッファメモリに記憶された積算データのインクリメント（更新）は終了しているが、第１のデータＤ1ないし第３のデータＤ3は更新されていないので、Ｄ1＝Ｄ2＝Ｄ3となっている。この場合、バッファメモリに記憶された積算データのインクリメント（更新）が完了しているにも拘わらず、第１のデータＤ1ないし第３のデータＤ3は更新されていないため、厳密に言えば、第１のデータＤ1ないし第３のデータＤ3は前回の運転時の積算データの最終値として正しいとはいえないが、この場合第１のデータＤ1ないし第３のデータＤ3は、積算データの最終地の演算の１回前の演算で求められた値であるので、次の運転時にバッファメモリに記憶させる運転時間の積算値の初期値を第１のデータＤ1の値に等しい値としても大きな誤差は生じない。
【００５３】
次に電源遮断タイミング２で電源が遮断されたとときには、第１のデータＤ1の値が不定になるが、第２のデータＤ2及び第３のデータＤ3は等しくなっている。この場合、第２のデータＤ2及び第３のデータＤ3は厳密には、運転終了時の運転時間の積算データの最終値であるとはいえないが、運転が終了する直前に演算された値であるとはいえるため、次回の運転開始時に第２のデータＤ2（または第３のデータＤ3）に等しい値をバッファメモリに積算データの初期値として記憶させても、積算データの演算に大きな誤差は生じない。
【００５４】
次に電源遮断タイミング３で電源が遮断された場合には、第１のデータＤ1が正しく更新されているが、第２のデータＤ2及び第３のデータＤ3は更新されていないため、第１のデータＤ1は第２のデータＤ2（＝第３のデータＤ3）に１を加算した値になっており、第２のデータＤ2と第３のデータＤ3とが等しくなっている。この場合は、次回の運転開始時に第１のデータをバッファメモリに積算データの初期値として記憶させることにより、積算データの演算を正しく行なわせることができる。
【００５５】
また電源遮断タイミング４で電源が遮断された場合には、第２のデータが不定となるが、第１のデータＤ１は運転時間の積算値の正しい最終値に等しくなっている。また第１のデータＤ１は、第３のデータＤ3に１を加算した値になっている。この場合も、次回の運転開始時に第１のデータをバッファメモリに積算データの初期値として記憶させることにより、積算データの演算を正しく行なわせることができる。
【００５６】
次に電源遮断タイミング５で電源が遮断された場合には、第１のデータＤ1と第２のデータＤ2の更新が完了しているため、第１のデータＤ1と第２のデータＤ2とが等しくなっており、第１のデータＤ1と第２のデータＤ2とは、第３のデータＤ3に１を加算した値になっている。この場合は、次回の運転開始時に第１のデータ（または第２のデータ）をバッファメモリに積算データの初期値として記憶させることにより、エンジンの運転時間の積算値を与える積算データの演算を正しく行なわせることができる。
【００５７】
電源遮断タイミング６で電源が遮断された場合には、第１のデータＤ1と第２のデータＤ2の更新が完了しているため、第１のデータＤ1と第２のデータＤ2とが等しくなっているが、第３のデータＤ3は不定になっている。この場合は、次回の運転開始時に第１のデータ（または第２のデータ）をバッファメモリに積算データの初期値として記憶させることにより、積算データの演算を正しく行なわせることができる。
【００５８】
電源遮断タイミング７で電源が遮断された場合には、第１のデータＤ1と第２のデータＤ2と第３のデータＤ3との更新が完了しているため、第１のデータＤ1ないし第３のデータＤ3がすべて等しくなっている。この場合は、次回の運転開始時に第１のデータ（または第２のデータ、または第３のデータ）をバッファメモリに積算データの初期値として記憶させることにより、積算データの演算を正しく行なわせることができる。
【００５９】
次に図４は、エンジンの運転開始時にキースイッチがオン状態にされて、マイクロプロセッサ１１に電源電圧が投入され、各部のイニシャライズが終了した後に行なわれるデータ判定・バッファメモリ初期値設定処理のアルゴリズムを示したものである。この処理においては、マイクロプロセッサのイニシャライズが終了した後、ステップＳ０１ないしＳ０３でそれぞれ不揮発性メモリの第１のデータ記憶領域ないし第３のデータ記憶領域にそれぞれ記憶されている第１のデータＤ1ないし第３のデータＤ3をマイクロプロセッサに読み込む。次いでステップＳ０４で第１のデータＤ1が第２のデータＤ2に等しいか否かを判定し、等しい場合（前記第１の判定が成立したとき）には、ステップＳ０５で第１のデータＤ1の値をバッファメモリに運転時間の積算データＤ0の初期値（前回の運転時の積算データの最終値）として記憶する。
【００６０】
ステップＳ０４で第１のデータＤ1が第２のデータＤ2に等しくないと判定されたときには、ステップＳ０６に進んで、第２のデータＤ2と第３のデータＤ3とが等しいか否かを判定する。その結果、第２のデータＤ2と第３のデータＤ3とが等しいと判定されたときには、ステップＳ０７に進んで第１のデータが第１のデータＤ１が第２のデータＤ2に１を加算した値に等しいか否かを判定する。その結果、第１のデータＤ１が第２のデータＤ2に１を加算した値に等しいと判定されたとき（前記第２の判定が成立したとき）には、ステップＳ０８で第１のデータＤ1の値をバッファメモリに積算データＤ0の初期値として記憶する。
【００６１】
ステップＳ０７で第１のデータＤ１が第２のデータＤ2に１を加算した値に等しくないと判定されたとき（前記第３の判定が成立したとき）には、ステップＳ０９に進んで、第２のデータＤ2の値をバッファメモリに積算データＤ0の初期値として記憶する。
【００６２】
またステップＳ０６で第２のデータＤ2と第３のデータＤ3とが等しくないと判定されたとき（前記第４の判定が成立したとき）には、ステップＳ１０に進んで、第１のデータＤ1の値をバッファメモリに積算データＤ0の初期値として記憶する。
【００６３】
図４に示した処理のステップＳ０１ないしＳ１０により、バッファメモリ初期値設定手段ＩＳが構成される。
【００６４】
マイクロプロセッサ１１はまた、不揮発性メモリＲＭに記憶された運転時間の積算値のデータが設定値に達したときに、エンジンのメンテナンス時期(例えばエンジンオイルの交換時期）が来たことの報知を行なうメンテナンス時期報知手段を構成する。
【００６５】
上記のように、エンジンの運転中、一定の時間が経過する毎に積算データを一定の増分だけインクリメントして、インクリメントしたデータをバッファメモリに記憶させるとともに、バッファメモリに記憶されるデータがインクリメントされる毎に該バッファメモリに記憶されたデータを不揮発性メモリに設定した少なくとも３つのデータ記憶領域に予め定めた順序で書込むようにしておくと、マイクロプロセッサのイニシャライズが終了した後に、少なくとも３つのデータ記憶領域に記憶されているデータを比較することにより、前回のエンジンの運転停止時にバッファメモリに記憶された積算データの最終値が正しく記憶されていると見なすことができるデータ記憶領域を判定して、該最終値が正しく記憶されていると見なすことができるデータ記憶領域に記憶されているデータの値を今回のエンジンの運転時にバッファメモリに記憶させる積算データの初期値とするようにしたので、前回のエンジン運転停止時に電源が遮断されたタイミングの影響を受けることなく、エンジンの運転時間の積算値を与える積算データの演算とその記憶とを正確に行なわせて、エンジンのメンテナンスを管理するための運転時間の積算値の情報を正確に得ることができる。
【００６６】
上記の実施形態では、エンジンを制御するＥＣＵ内に設けられているマイクロプロセッサを用いて、エンジン運転時間積算データ記憶装置を構成しているが、エンジンを制御するマイクロプロセッサとは別のマイクロプロセッサを用いて、例えばエンジンのメンテナンスを管理する専用のマイクロプロセッサを別個に設けて、このマイクロプロセッサにより、エンジン運転時間積算データ記憶装置を構成するようにしてもよい。
【図面の簡単な説明】
【００６７】
【図１】本発明に係わるエンジン制御装置のハードウェアの構成例を示した回路図である。
【図２】本発明の実施形態に係わるエンジン運転時間積算データ記憶装置の構成を示したブロック図である。
【図３】本発明の実施形態において、マイクロプロセッサが一定の時間毎に実行する積算時間制御処理のアルゴリズムの一例を示したフローチャートである。
【図４】本発明の実施形態において、マイクロプロセッサの電源が投入された際に行なわれるデータ判定・バッファメモリ初期値設定処理のアルゴリズムを示したフローチャートである。
【符号の説明】
【００６８】
１  バッテリ
２  昇圧回路
３  キースイッチ
５  点火コイル
６  点火用コンデンサ
１１  マイクロプロセッサ
ＲＭ  シリアルＥＥＰＲＯＭ
ＴＭ  運転時間計測手段
ＴＤ  データ更新タイミング検出手段
ＢＭ  積算データ更新値一時記憶手段
ＤＷ  データ書込み手段
ＩＳ  バッファメモリ初期値設定手段  
【図１】
2008303776.tif 000003
【図２】
2008303776.tif 000004
【図３】
2008303776.tif 000005
【図４】
2008303776.tif 000006