(57)【特許請求の範囲】
【請求項１】
自動車に搭載されたマイクロコンピュータと、このマイクロコンピュータとの間で信号を送受信するタイマ回路と、前記マイクロコンピュータの動作電源電圧を供給するメイン電源と、このメイン電源のオフ中でも前記タイマ回路の動作電源電圧を供給するサブ電源と、イグニッションスイッチの操作信号又は前記マイクロコンピュータ若しくは前記タイマ回路から出力される信号に基づいて前記メイン電源をオン／オフするメイン電源オン／オフ手段とを備  え、
前記タイマ回路は、前記イグニッションスイッチのオフ操作時に前記マイクロコンピュータから出力される計時動作許可信号によって計時動作を開始するタイムカウンタを有すると共に、このタイムカウンタの計測時間が設定時間に達する毎に起動信号を前記メイン電源オン／オフ手段に出力して前記メイン電源をオンして前記マイクロコンピュータを起動し、
前記マイクロコンピュータは、前記タイマ回路からの前記起動信号により起動される毎に、該マイクロコンピュータのオフ中でも記憶データを保持するメモリに前記起動信号の出力回数又はそれを時間に換算したデータをエンジン停止時間の情報として記憶すると共に、前記タイマ回路に対して計時動作許可信号を出力して前記タイムカウンタに計時動作を繰り返させ、必要に応じてその他の処理を行った後、電源オフ信号を出力して前記メイン電源をオフすることを特徴とする自動車用制御装置。
【請求項２】
前記マイクロコンピュータは、前記イグニッションスイッチのオン操作による前記メイン電源のオンによって起動されたときに、その時点における前記タイムカウンタの計測時間を読み取り、この計測時間と、前記メモリの記憶データとに基づいてエンジン停止時間を演算することを特徴とする請求項１に記載の自動車用制御装置。
【請求項３】
前記マイクロコンピュータは、エンジン停止中に前記イグニッションスイッチがオン位置からスタート位置に操作されたとき又はエンジン始動が完了したときに、その時点における前記タイムカウンタの計測時間を読み取り、この計測時間と、前記メモリの記憶データとに基づいてエンジン停止時間を演算し、エンジン停止中に前記イグニッションスイッチがオン位置に操作されただけでは、エンジン始動とは判断せず、前記タイムカウンタによるエンジン停止時間の計測を継続させることを特徴とする請求項１に記載の自動車用制御装置。
【請求項４】
前記マイクロコンピュータは、車両状態のデータ又は実行しようとする処理内容に応じて前記タイムカウンタの設定時間を変更することを特徴とする請求項１乃至３のいずれかに記載の自動車用制御装置。
【請求項５】
前記マイクロコンピュータは、車両状態のデータ又は実行しようとする処理内容に応じて前記タイムカウンタの初期値を変更することを特徴とする請求項１乃至３のいずれかに記載の自動車用制御装置。
【請求項６】
前記マイクロコンピュータは、車両状態のデータ又は実行しようとする処理内容に応じてエンジン停止時間計測の可否及び／又はエンジン停止中の前記マイクロコンピュータの起動回数を決定することを特徴とする請求項１乃至５のいずれかに記載の自動車用制御装置。
【請求項７】
前記マイクロコンピュータは、前記タイマ回路からの前記起動信号により起動される毎に、車両状態を検出して、そのデータを前記メモリに記憶することを特徴とする請求項１乃至６のいずれかに記載の自動車用制御装  置。
【請求項８】
前記マイクロコンピュータは、エンジン運転中に所定期間毎に車両状態を検出して、そのデータを前記メモリに記憶することを特徴とする請求項１乃至７のいずれかに記載の自動車用制御装置。
【請求項９】
前記車両状態のデータには、エンジン回転情報、前記イグニッションスイッチの状態、冷却水温、吸気温度、バッテリ容量情報、車速、ナビゲーションシステムの位置情報の少なくとも１つを含むことを特徴とする請求項４乃至８のいずれかに記載の自動車用制御装置。
【請求項１０】
前記マイクロコンピュータは、前記バッテリ容量情報をバッテリ電流及び車両状態に基づいて推定することを特徴とする請求項９に記載の自動車用制御装置。
【請求項１１】
燃料タンク内の蒸発燃料を処理する蒸発燃料処理装置を搭載した自動車に適用され、
前記マイクロコンピュータは、エンジン停止中に前記タイマ回路の起動信号の出力回数が所定回数に達したとき又は該起動信号の出力回数から換算したエンジン停止時間が所定時間に達したときに、前記蒸発燃料処理装置の漏れを診断する処理を開始することを特徴とする請求項１乃至１０のいずれかに記載の自動車用制御装置。
【請求項１２】
前記マイクロコンピュータは、前記蒸発燃料処理装置の漏れ診断が行われた頻度に応じて前記タイムカウンタの設定時間又は初期値を変更することを特徴とする請求項１１に記載の自動車用制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンジン停止時間を計測するタイムカウンタを備えた自動車用制御装置に関するものである。
【０００２】
【従来の技術】
エンジン停止時間を計測する場合、エンジン停止中でも所定の電源電圧を発生するサブ電源（バックアップ電源）で動作するタイムカウンタを設け、イグニッションスイッチのオフ操作によりエンジンが停止したときに、タイムカウンタの計時動作を開始させて、エンジン停止時間を計測するようにしたものがある。
【０００３】
【発明が解決しようとする課題】
一般に、エンジン停止時間は長時間になることが多いが、このような長時間をタイムカウンタで計測するためには、ビット数のかなり大きいカウンタや多段カウンタを用いる必要があり、タイムカウンタの構成が複雑となって、製造コストが高くなるという欠点があった。
【０００４】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、エンジン停止時間を計測するためのタイムカウンタの構成を簡単化することができて、低コスト化の要求を満たすことができる自動車用制御装置を提供することにある。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１の自動車用制御装置は、自動車に搭載されたマイクロコンピュータと、このマイクロコンピュータとの間で信号を送受信するタイマ回路と、前記マイクロコンピュータの動作電源電圧を供給するメイン電源と、このメイン電源のオフ中でも前記タイマ回路の動作電源電圧を供給するサブ電源と、イグニッションスイッチの操作信号又は前記マイクロコンピュータ若しくは前記タイマ回路から出力される信号に基づいて前記メイン電源をオン／オフするメイン電源オン／オフ手段とを備え、前記タイマ回路は、前記イグニッションスイッチのオフ操作時に前記マイクロコンピュータから出力される計時動作許可信号によって計時動作を開始するタイムカウンタを有すると共に、このタイムカウンタの計測時間が設定時間に達する毎に起動信号を前記メイン電源オン／オフ手段に出力して前記メイン電源をオンして前記マイクロコンピュータを起動し、前記マイクロコンピュータは、前記タイマ回路からの前記起動信号により起動される毎に、該マイクロコンピュータのオフ中でも記憶データを保持するメモリに前記起動信号の出力回数又はそれを時間に換算したデータをエンジン停止時間の情報として記憶すると共に、前記タイマ回路に対して計時動作許可信号を出力して前記タイムカウンタに計時動作を繰り返させ、必要に応じてその他の処理を行った後、電源オフ信号を出力して前記メイン電源をオフするように構成したものである。この場合、エンジン停止時間の情報を記憶するメモリは、マイクロコンピュータに内蔵させても良いし、マイクロコンピュータの外部に設けても良く、また、タイマ回路に設けても良い。
【０００６】
この構成では、エンジン停止中にタイムカウンタの計測時間が設定時間に達して起動信号が出力される毎に、その起動信号の出力回数又はそれを時間に換算したデータをエンジン停止時間の情報として書換え可能な不揮発性のメモリ又はバックアップメモリに記憶して、その後、再びタイムカウンタに計時動作を繰り返させることで、エンジン停止時間の計測を継続させることができるので、タイムカウンタのビット数を増加させたり、多段カウンタを用いたりする必要がなくなり、エンジン停止時間を計測するためのタイムカウンタの構成を簡単化することができて、低コスト化の要求を満たすことができる。
【０００７】
この場合、請求項２のように、マイクロコンピュータは、イグニッションスイッチのオン操作によるメイン電源のオンによって起動されたときに、その時点におけるタイムカウンタの計測時間を読み取り、この計測時間と、前記メモリの記憶データとに基づいてエンジン停止時間を演算するようにしても良い。このようにすれば、イグニッションスイッチがオフされてエンジンが停止されてから、次にイグニッションスイッチがオンされるまでのエンジン停止時間を正確に計測することができる。
【０００８】
ところで、エンジン停止中に運転者がイグニッションスイッチをオン位置に操作して、パワーウインドウを操作したり、ラジオをかけたりすることがあるが、イグニッションスイッチをオン位置に操作したたけでは、エンジンは始動されず、イグニッションスイッチをオン位置からスタート位置に操作したときに、初めてスタータがオンされてエンジンが始動される。従って、エンジン停止中に、運転者がイグニッションスイッチをオン位置に操作しただけでエンジン始動と判断して、エンジン停止時間の計測を終了してリセット処理等を行うと、実際にエンジンが始動されなかった場合に、エンジン停止時間の計測を継続して行うことができない。
【０００９】
そこで、請求項３のように、マイクロコンピュータは、エンジン停止中にイグニッションスイッチがオン位置からスタート位置に操作されたとき又はエンジン始動が完了したときに、その時点におけるタイムカウンタの計測時間を読み取り、この計測時間と、前記メモリの記憶データとに基づいてエンジン停止時間を演算し、エンジン停止中にイグニッションスイッチがオン位置に操作されただけでは、エンジン始動とは判断せず、前記タイムカウンタによるエンジン停止時間の計測を継続させるようにしても良い。このようにすれば、エンジン停止中に運転者がイグニッションスイッチをオン位置に操作して、パワーウインドウを操作したり、ラジオをかけたりした場合でも、実際にエンジンが始動されなければ、エンジン停止時間の計測が終了されないので、実際にエンジン始動が行われるまでのエンジン停止時間を正確に計測することができる。
【００１０】
この際、イグニッションスイッチがオン位置からスタート位置に操作されても、エンジン始動に失敗して再びエンジン停止状態になることがあるため、実際にエンジン始動が完了するまで、エンジン停止時間の計測を継続させるようにすれば、仮に、エンジン始動に失敗して再びエンジン停止状態になった場合に、エンジン停止時間の計測を継続させることができ、実際のエンジン停止時間を正確に計測することができる。
【００１１】
この場合、タイムカウンタの設定時間は、タイムカウンタのビット数等から決まる固定値としても良いが、請求項４のように、車両状態のデータ又は実行しようとする処理内容に応じてタイムカウンタの設定時間を変更するようにしても良い。このようにすれば、車両状態のデータ又は実行しようとする処理内容に応じてマイクロコンピュータの起動タイミングを適宜変更することができて、エンジン停止中に常に最適なタイミングでマイクロコンピュータを起動することができる。
【００１２】
或は、請求項５のように、車両状態のデータ又は実行しようとする処理内容に応じてタイムカウンタの初期値を変更するようにしても良い。このように、タイムカウンタの初期値を変更すれば、タイムカウンタのカウント値が初期値から設定時間に達するまでの所要時間が変わるため、タイムカウンタの設定時間を変更する場合と同様の作用効果を得ることができる。
【００１３】
また、請求項６のように、車両状態のデータ又は実行しようとする処理内容に応じてエンジン停止時間計測の可否及び／又はエンジン停止中のマイクロコンピュータの起動回数を決定するようにしても良い。このようにすれば、車両状態が悪化している状態（例えばバッテリ容量低下）のときにマイクロコンピュータの起動を禁止したり、実行しようとする処理内容によっては不必要なマイクロコンピュータの起動を避けることができる。
【００１４】
また、請求項７のように、タイマ回路からの起動信号によりマイクロコンピュータが起動される毎に、車両状態を検出して、そのデータを前記メモリに記憶するようにしても良い。このようにすれば、エンジン停止中の車両状態の経時的変化のデータをメモリに記憶することができ、そのデータを各種の制御に利用することができる。
【００１５】
また、請求項８のように、エンジン運転中に所定期間毎に車両状態を検出して、そのデータを前記メモリに記憶するようにしても良い。このようにすれば、エンジン停止中にマイクロコンピュータが起動された時に実行する制御にエンジン運転中の車両状態のデータを利用することができると共に、万一、車両事故が発生した場合に、メモリの記憶データから事故前の車両運転状況を解析することができる。
【００１６】
この場合、請求項９のように、記憶する車両状態のデータには、エンジン回転情報、イグニッションスイッチの状態、冷却水温、吸気温度、バッテリ容量情報、車速、ナビゲーションシステムの位置情報の少なくとも１つを含むようにすると良い。これらのデータは、エンジン停止中の制御や始動後の制御に役立つ有用な情報となる。
【００１７】
ここで、バッテリ容量情報は、エンジン始動時等のバッテリ電圧を検出して推定しても良いが、請求項１０のように、バッテリ容量情報をバッテリ電流及び車両状態に基づいて推定するようにしても良い。このようにすれば、バッテリ容量情報を精度良く推定することができる。
【００１８】
また、燃料タンク内の蒸発燃料（エバポガス）を処理する蒸発燃料処理装置（エバポガスパージシステム）を搭載した自動車に本発明を適用する場合は、請求項１１のように、エンジン停止中にタイマ回路の起動信号の出力回数が所定回数に達したとき又は該起動信号の出力回数から換算したエンジン停止時間が所定時間に達したときに蒸発燃料処理装置の漏れを診断する処理を開始するようにすると良い。このようにすれば、エンジン停止後の経過時間が予め設定された一定時間に達したときに、蒸発燃料処理装置の漏れ診断を自動的に開始することができる。しかも、漏れ診断を開始するまでのエンジン停止時間が長くなっても、バッテリ上がりを起こさずに、漏れ診断を開始するまでのエンジン停止時間を計測することができる。
【００１９】
この場合、請求項１２のように、蒸発燃料処理装置の漏れ診断が行われた頻度に応じてタイムカウンタの設定時間又は初期値を変更するようにしても良い。このようにすれば、蒸発燃料処理装置の漏れ診断が行われた頻度に応じて、エンジン停止から漏れ診断を開始するまでのエンジン停止時間を変更することができるので、蒸発燃料処理装置の漏れ診断の頻度が適正な頻度よりも少ない場合は、エンジン停止から漏れ診断を開始するまでのエンジン停止時間を短くして、漏れ診断の頻度を増やすことができ、反対に、漏れ診断の頻度が必要以上に多い場合は、エンジン停止から漏れ診断を開始するまでのエンジン停止時間を長くして、漏れ診断の頻度を適正な頻度まで少なくして、バッテリの消耗を少なくすることができる。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態の一例について説明する。まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。エンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側には、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、スロットルバルブ１５が設けられ、このスロットルバルブ１５の開度がスロットル開度センサ１６によって検出される。
【００２１】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７に、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料噴射弁２０が取り付けられている。また、エンジン１１の各気筒のシリンダヘッドには、点火プラグ２１が取り付けられ、エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２２や、エンジン回転速度を検出するクランク角センサ２３が取り付けられている。その他、吸気温度を検出する吸気温度センサ（図示せず）、車速を検出する車速センサ（図示せず）等が設けられている。
【００２２】
次に、燃料タンク２４内の蒸発燃料（エバポガス）を処理する蒸発燃料処理装置であるエバポガスパージシステム２５の構成を説明する。燃料タンク２４には、エバポ通路２６を介してキャニスタ２７が接続されている。このキャニスタ２７内には、エバポガスを吸着する活性炭等の吸着体（図示せず）が収容されている。このキャニスタ２７と吸気管１２のスロットルバルブ１５の下流側との間には、キャニスタ２７内の吸着体に吸着されているエバポガスを吸気管１２内にパージ（放出）するためのパージ通路２８が設けられ、このパージ通路２８の途中に、パージ流量を制御するパージ制御弁２９が設けられている。このパージ制御弁２９は、常閉型の電磁弁により構成され、通電をデューティ制御することで、キャニスタ２７から吸気管１２へのエバポガスのパージ流量を制御するようになっている。
【００２３】
また、キャニスタ２７には電動エアポンプ３０が組み付けられている。この電動エアポンプ３０は、エバポガスパージシステム２５の漏れ診断（リーク診断）を行う際に、燃料タンク２４を含む密閉したエバポ系内に大気をキャニスタ２７から導入してエバポ系の内圧を上昇させるのに用いられる。尚、この電動エアポンプ３０には、エバポ系の内圧を検出する圧力センサ（図示せず）と、キャニスタ２７の大気連通孔を開閉する大気開閉弁（図示せず）とが一体的に組み付けられてモジュール化されている。
【００２４】
上述した各種のセンサの出力は、エンジン制御用のマイクロコンピュータ３１に入力される。このマイクロコンピュータ３１は、エンジン運転中に上述した各種のセンサ出力からエンジン運転状態を検出して燃料噴射弁２０の燃料噴射量や点火プラグ２１の点火時期を制御すると共に、パージ制御弁２９への通電をデューティ制御することで、キャニスタ２７から吸気管１２へのエバポガスのパージ流量を制御する。
【００２５】
このマイクロコンピュータ３１には、エンジン停止時間を計測するためのタイマ回路３２が接続されている。以下、これらの回路構成を図２に基づいて説明する。マイクロコンピュータ３１は、水晶振動子４２を共振させて所定周波数のクロックパルスを発生する発振回路３３、ＣＰＵ３４、ＲＡＭ３５、ＲＯＭ３６、タイマ３７、入力ポート３８、出力ポート３９、シリアル通信ポート４０等を備えている。更に、このマイクロコンピュータ３１には、後述する起動信号ＴＳＷの出力回数をエンジン停止時間に換算したデータや車両状態のデータを記憶するメモリとして、例えばＳＲＡＭ４１が内蔵されている。尚、このＳＲＡＭ４１はマイクロコンピュータ３１の外部に設けても良く、また、タイマ回路３２に設けても良い。
【００２６】
一方、タイマ回路３２は、タイマＩＣ４３と発振回路５２とから構成されている。タイマＩＣ４３には、発振回路５２の発振周波数を分周して比較的低い周波数のクロックパルスを発生するクロック分周回路４４と、クロックパルスをカウントするタイムカウンタ４５と、シリアル通信ポート４６とが設けられている。タイムカウンタ４５のカウント値（計測時間）が設定値（設定時間）に達すると、タイムカウンタ４５は、起動信号ＴＳＷを後述するＯＲ回路４９とマイクロコンピュータ３１に出力する。そして、タイマＩＣ４３は、マイクロコンピュータ３１のシリアル通信ポート４０から送信されてくるリセット信号（計時動作許可信号）をシリアル通信ポート４６で受信する毎に、タイムカウンタ４５をリセットスタートさせて計時動作を開始する。
【００２７】
次に、マイクロコンピュータ３１及びタイマＩＣ４３に電源電圧を供給する回路構成を説明する。マイクロコンピュータ３１の動作電源電圧Ｖｏｍを供給するメイン電源４７は、メインリレー４８のリレースイッチ４８ａを介してバッテリ電源端子ＢＡＴＴに接続されている。このメイン電源４７は、バッテリ電圧（例えば１４Ｖ）を例えば５Ｖの直流電源電圧Ｖｏｍに変換する。
【００２８】
このメイン電源４７をオン／オフするメイン電源オン／オフ手段として、三端子型のＯＲ回路４９が設けられ、このＯＲ回路４９の出力によってメインリレー４８の駆動コイル４８ｂのオン／オフが切り換えられる。ＯＲ回路４９の３つの入力端子には、イグニッションスイッチ５０の操作信号と、タイマＩＣ４３から出力される起動信号ＴＳＷと、マイクロコンピュータ３１の出力ポート３９から出力される電源オン／オフ信号とが入力され、これら３つの信号のうちのいずれか１つでもハイレベルの信号があれば、ＯＲ回路４９の出力がハイレベルに維持されて、メインリレー４８の駆動コイル４８ｂに通電されてリレースイッチ４８ａがオン状態に維持され、メイン電源４７がオン状態に維持されて、マイクロコンピュータ３１の動作電源電圧Ｖｏｍがオン状態に維持される。
【００２９】
一方、タイマＩＣ４３の動作電源電圧Ｖｏｓを供給するサブ電源５１は、メインリレー４８を介さずにバッテリ電源端子ＢＡＴＴに接続されている。これにより、サブ電源５１は、メイン電源５１のオン／オフを問わず、常にオン状態に維持され、エンジン停止中でもタイマＩＣ４３に電源電圧Ｖｏｓを供給し続けることができるようになっている。更に、このサブ電源５１の電圧Ｖｏｓは、マイクロコンピュータ３１内のＳＲＡＭ４１にも供給され、マイクロコンピュータ３１のオフ中（メイン電源４７のオフ中）でも、ＳＲＡＭ４１の記憶状態を保持できるようになっている。
【００３０】
尚、ＳＲＡＭ４１等のバックアップ電源の必要なメモリに代えて、ＥＥＰＲＯＭ、フラッシュメモリ等の電気的に書き換え可能な不揮発性メモリを用いても良く、この不揮発性メモリに対してはサブ電源５１の電圧Ｖｏｓを供給する必要はない。
【００３１】
［第１実施例］
次に、エンジン停止時間の計測方法に関する第１実施例を図３のタイムチャートを用いて説明する。
【００３２】
エンジン運転中に、運転者がイグニッションスイッチ５０をオフ操作してエンジン１１を停止させる際に、マイクロコンピュータ３１は、リセット信号（計時動作許可信号）をタイマＩＣ４３に出力した後、ＯＲ回路４９に出力する電源オン／オフ信号をローレベルに反転させてメイン電源４７をオフさせる。これにより、マイクロコンピュータ３１の電源電圧Ｖｏｍがオフされると同時に、タイマＩＣ４３のタイムカウンタ４５が初期値（例えば０）にリセットされてから計時動作を開始する。
【００３３】
この後、タイムカウンタ４５は、クロック分周回路４４からクロックパルスが入力される毎にカウント値を１ずつ増加させ、そのカウント値（計測時間）が設定値（設定時間）に達した時点で、タイムカウンタ４５から起動信号ＴＳＷをマイクロコンピュータ３１の入力ポート３８とＯＲ回路４９に出力する。これにより、メイン電源４７がオンしてマイクロコンピュータ３１が起動されると、マイクロコンピュータ３１は、エンジン停止中の起動信号ＴＳＷの出力回数から換算したエンジン停止時間のデータをＳＲＡＭ４１に記憶すると共に、必要に応じてその他の処理（例えば車両状態のデータをセンサ等で検出してＳＲＡＭ４１に記憶する処理等）を行った後、上述したイグニッションスイッチ５０のオフ操作時の処理と同じく、マイクロコンピュータ３１からリセット信号（計時動作許可信号）をタイマＩＣ４３に出力した後、マイクロコンピュータ３１からＯＲ回路４９に出力する電源オン／オフ信号をローレベルに反転させてメイン電源４７をオフさせる。これにより、マイクロコンピュータ３１の電源電圧Ｖｏｍがオフされると同時に、タイマＩＣ４３のタイムカウンタ４５が再びリセットスタートされる。
【００３４】
以後、エンジン停止中は、タイムカウンタ４５のカウント値（計測時間）が設定値（設定時間）に達する毎に、タイムカウンタ４５から起動信号ＴＳＷを出力してメイン電源４７をオンしてマイクロコンピュータ３１を起動し、エンジン停止中の起動信号ＴＳＷの出力回数から換算したエンジン停止時間のデータをＳＲＡＭ４１に記憶すると共に、必要に応じてその他の処理（例えば車両状態のデータをセンサ等で検出してＳＲＡＭ４１に記憶する処理等）を行って、再びタイムカウンタ４５をリセットスタートさせてメイン電源４７をオフするという処理を繰り返す。
【００３５】
このエンジン停止中に、運転者がイグニッションスイッチ５０をオン操作すると、メイン電源４７がオンしてマイクロコンピュータ３１が起動される。これにより、マイクロコンピュータ３１は、エンジン始動と判断し、その時点におけるタイムカウンタ４５の計測時間を読み取り、ＳＲＡＭ４１に記憶された起動信号ＴＳＷの出力回数から換算したエンジン停止時間に上記タイムカウンタ４５の計測時間を加算して、エンジン始動までのエンジン停止時間を求める。
【００３６】
ところで、タイムカウンタ４５の設定時間は、タイムカウンタ４５のビット数等から決まる固定値としても良いが、第１実施例では、マイクロコンピュータ３１がバッテリ容量等の車両状態のデータに応じてタイムカウンタ４５の設定時間を変更するようにしている。これにより、バッテリ容量等の車両状態のデータに応じてマイクロコンピュータ３１の起動タイミングを適宜変更することができ、エンジン停止中にその時点のバッテリ容量等の車両状態を悪化させないようなタイミングでマイクロコンピュータ３１を起動することができる。
【００３７】
更に、第１実施例では、バッテリ容量等の車両状態のデータに基づいてエンジン停止時間の計測を許可するか否か（エンジン停止中のマイクロコンピュータ３１の起動を許可するか否か）を判定し、バッテリ上がり等の弊害が予想される場合には、エンジン停止時間の計測を禁止して、エンジン停止中のマイクロコンピュータ３１の起動（メイン電源４７のオン）を禁止するようにしている。これにより、バッテリ容量等の車両状態が悪化している状態でマイクロコンピュータ３１を起動することを避けることができ、バッテリ上がり等を未然に防止することができる。
【００３８】
以上説明した第１実施例のエンジン停止時間の計測は、マイクロコンピュータ３１が図４乃至図６の各ルーチンによって実行する。以下、これら各ルーチンの処理内容を説明する。
【００３９】
図４のタイムカウンタリセットスタート処理ルーチンは、マイクロコンピュータ３１の動作中（メイン電源４７のオン中）に所定周期で繰り返し起動される。本ルーチンが起動されると、まずステップ１０１で、イグニッションスイッチ５０がオフされているか否かを判定する。
【００４０】
イグニッションスイッチ５０のオン中は、メイン電源４７がオン状態に維持されるため、本ルーチンが所定周期で起動されるが、その都度、ステップ１０１で「Ｎｏ」と判定され、何もせずに本ルーチンを終了する。
【００４１】
その後、エンジン運転中に運転者がイグニッションスイッチ５０をオフ操作してエンジン１１を停止させる際に、本ルーチンが起動されると、ステップ１０１で「Ｙｅｓ」と判定される。また、エンジン停止中（イグニッションスイッチ５０のオフ中）に、タイマＩＣ４３から出力される起動信号ＴＳＷによってマイクロコンピュータ３１が起動された場合も、ステップ１０１で「Ｙｅｓ」と判定される。
【００４２】
このステップ１０１で「Ｙｅｓ」と判定された場合は、ステップ１０２に進み、バッテリ容量等の車両状態のデータに基づいてエンジン停止時間の計測を許可するか否か（エンジン停止中のマイクロコンピュータ３１の起動を許可するか否か）を判定する。この際、バッテリ容量は、現在のバッテリ電圧又は予めエンジン始動時等の特定の運転条件で検出したバッテリ電圧から推定しても良いが、予めエンジン始動時等の特定の運転条件でバッテリ電流を検出して、そのバッテリ電流と車両運転状態に基づいてバッテリ容量を推定するようにしても良い。尚、エンジン停止時間の計測の許可／禁止は、バッテリ容量のみに基づいて判定しても良いが、バッテリ容量と冷却水温等の他のデータとに基づいて判定するようにしても良く、要は、バッテリ上がり等の弊害が発生する可能性を予想するのに適したデータに基づいて判定するようにすれば良い。
【００４３】
上記ステップ１０２で、エンジン停止時間の計測を許可すると判定された場合は、ステップ１０３に進み、マイクロコンピュータ３１からリセット信号（計時動作許可信号）をタイマＩＣ４３へ出力してタイマＩＣ４３のタイムカウンタ４５をリセットスタートさせる。この後、ステップ１０４に進み、図５、図６のルーチンやその他の処理（例えば車両状態のデータをセンサ等で検出してＳＲＡＭ４１に記憶する処理等）を終了したか否かを判定し、まだ終了していない処理があれば、その処理が終了するまで待機する。そして、全ての処理が終了した時点で、ステップ１０５に進み、マイクロコンピュータ３１からメインリレー４８側のＯＲ回路４９に出力する電源オン／オフ信号をローレベルに反転させてメイン電源４７をオフさせて、本ルーチンを終了する。
【００４４】
一方、ステップ１０２で「Ｎｏ」と判定された場合は、バッテリ上がり等の弊害を避けるために、エンジン停止時間の計測が禁止され（エンジン停止中のマイクロコンピュータ３１の起動が禁止され）、ステップ１０３のリセット信号出力処理を行わずに、ステップ１０４に進み、全ての処理を終了させてから、ステップ１０５に進み、メイン電源４７をオフさせて、本ルーチンを終了する。
【００４５】
図５の設定時間送信処理ルーチンは、マイクロコンピュータ３１の動作中に図４のルーチンが実行される毎に起動される。本ルーチンが起動されると、まずステップ１１１で、リセット信号が出力されたか否か（つまり図４のステップ１０３の処理を実行したか否か）を判定し、リセット信号が出力されていなければ、何もせずに本ルーチンを終了する。
【００４６】
これに対し、ステップ１０１で、リセット信号が出力されたと判定されれば、ステップ１１２に進み、バッテリ容量等の車両状態のデータに基づいてタイムカウンタ４５の設定時間ＡＬＥＶをマップ又は数式等によって設定する。これにより、例えば、バッテリ容量が少ないときに、設定時間ＡＬＥＶを設定可能な範囲内で長く設定して、エンジン停止中のマイクロコンピュータ３１の起動回数を少なくすることで、バッテリ上がりを未然に防止する。そして、次のステップ１１３で、設定時間ＡＬＥＶの情報をタイマＩＣ４３へ出力して本ルーチンを終了する。
【００４７】
尚、タイムカウンタ４５の設定時間ＡＬＥＶは、タイムカウンタ４５のビット数等から決まる固定値としても良く、この場合は、図５の設定時間送信処理ルーチンは不要となる。
【００４８】
図６のエンジン停止時間演算処理ルーチンは、マイクロコンピュータ３１が起動される毎に１回だけ起動される。本ルーチンが起動されると、まずステップ１２１で、タイマＩＣ４３から出力された起動信号ＴＳＷによってマイクロコンピュータ３１が起動されたか否かを判定し、起動信号ＴＳＷで起動された場合は、ステップ１２２に進み、ＳＲＡＭ４１に記憶されたエンジン停止時間ＭＳＣＮＴにタイムカウンタ４５の設定時間ＡＬＥＶを加算して、現時点までのエンジン停止時間ＭＳＣＮＴを求め、ＳＲＡＭ４１のエンジン停止時間ＭＳＣＮＴの記憶データを更新する（ＭＳＣＮＴ＝ＭＳＣＮＴ＋ＡＬＥＶ）。従って、現時点までの起動信号ＴＳＷの出力回数（マイクロコンピュータ３１の起動回数）がＮ回の場合は、設定時間ＡＬＥＶをＮ倍した時間（ＡＬＥＶ×Ｎ）が現時点までのエンジン停止時間ＭＳＣＮＴとしてＳＲＡＭ４１に記憶される。このＳＲＡＭ４１の記憶データは、マイクロコンピュータ３１のオフ中でも保持される。尚、ＳＲＡＭ４１に記憶されたエンジン停止時間ＭＳＣＮＴの初期値は０である。
【００４９】
エンジン停止時間ＭＳＣＮＴの更新後、ステップ１２３に進み、車両状態のデータ［例えばバッテリ容量、冷却水温、外気温（吸気温）、エバポ系の内圧、燃料タンク２４内の温度、イグニッションスイッチ５０のオン／オフの状態、ナビゲーションシステムの位置情報等］をＳＲＡＭ４１に記憶して本ルーチンを終了する。このＳＲＡＭ４１に記憶された車両状態のデータから車両の放置状況が分かり、例えば、エンジン停止時間の計測の許可／禁止（マイクロコンピュータ３１の起動の許可／禁止）をバッテリ容量、冷却水温等に基づいて判定したり、エンジン停止中の燃料タンク２４内の温度をエンジン停止直後（又は直前）の冷却水温とエンジン停止時間等に基づいて推定する際に、燃料タンク２４内の温度推定値を冷却水温や外気温で補正したりするのに使用される。また、ナビゲーションシステムの位置情報は、例えば、駐車中の車両がレッカー移動されたか否かを判定するのに用いられる。
【００５０】
これに対し、ステップ１２１で「Ｎｏ」と判定された場合、すなわちイグニッションスイッチ５０のオン操作によってメイン電源４７がオンされてマイクロコンピュータ３１が起動された場合は、エンジン始動と判断して、ステップ１２４に進み、現時点におけるタイムカウンタ４５の計測時間ＳＣＮＴを読み取り、次のステップ１２５で、この計測時間ＳＣＮＴをＳＲＡＭ４１に記憶されたエンジン停止時間ＭＳＣＮＴに加算して、最終的なエンジン停止時間ＴＳＣＮＴを求める（ＴＳＣＮＴ＝ＭＳＣＮＴ＋ＳＣＮＴ）。このようにして演算されたエンジン停止時間ＴＳＣＮＴは、前回のイグニッションスイッチ５０のオフ操作から今回のイグニッションスイッチ５０のオン操作までのエンジン停止時間である。その後、ステップ１２６に進み、ＳＲＡＭ４１に記憶されたエンジン停止時間ＭＳＣＮＴを初期値（例えば０）にリセットして、本ルーチンを終了する。
【００５１】
尚、上記ステップ１２２では、エンジン停止中の起動信号ＴＳＷの出力回数Ｎをエンジン停止時間ＭＳＣＮＴに換算してＳＲＡＭ４１に記憶するようにしたが、エンジン停止中の起動信号ＴＳＷの出力回数ＮをそのままＳＲＡＭ４１に記憶するようにしても良い。この場合は、ステップ１２４で、タイムカウンタ４５の設定時間ＡＬＥＶと、ＳＲＡＭ４１に記憶された起動信号ＴＳＷの出力回数Ｎと、現時点におけるタイムカウンタ４５の計測時間ＳＣＮＴとを用いて、次式によってエンジン停止時間ＴＳＣＮＴを演算すれば良い。
ＴＳＣＮＴ＝ＡＬＥＶ×Ｎ＋ＳＣＮＴ
【００５２】
以上説明した第１実施例では、エンジン停止中にタイムカウンタ４５の計測時間が設定時間ＡＬＥＶに達して起動信号ＴＳＷが出力される毎に、その起動信号ＴＳＷの出力回数Ｎをエンジン停止時間ＭＳＣＮＴに換算したデータ（又は起動信号ＴＳＷの出力回数Ｎ）をＳＲＡＭ４１に記憶して、その後、再びタイムカウンタ４５に計時動作を繰り返させることで、エンジン停止時間の計測を継続させることができるので、タイムカウンタ４５のビット数を増加させたり、多段カウンタを用いたりする必要がなくなり、エンジン停止時間を計測するためのタイムカウンタ４５の構成を簡単化することができて、低コスト化の要求を満たすことができる。
【００５３】
しかも、マイクロコンピュータ３１は、イグニッションスイッチ５０のオン操作によって起動されたときに、その時点におけるタイムカウンタ４５の計測時間ＳＣＮＴを読み取り、この計測時間ＳＣＮＴと、ＳＲＡＭ４１の記憶データＭＳＣＮＴとに基づいてエンジン停止時間ＴＳＣＮＴを演算するようにしたので、前回のイグニッションスイッチ５０のオフ操作から今回のイグニッションスイッチ５０のオン操作までのエンジン停止時間を正確に計測することができる。
【００５４】
尚、エンジン停止中の車両状態のデータの記憶が不要な場合は、図６のエンジン停止時間演算処理ルーチンにおいて、ステップ１２３の処理（車両状態のデータをＳＲＡＭ４１に記憶する処理）を省略すれば良い。
【００５５】
また、第１実施例では、エンジン停止中にタイマＩＣ４３から出力される起動信号ＴＳＷによってマイクロコンピュータ３１が起動される毎に、図４のタイムカウンタリセットスタート処理ルーチンのステップ１０２で、バッテリ容量等の車両状態のデータに基づいてエンジン停止時間の計測（マイクロコンピュータ３１の起動）を許可するか禁止するかを判定するようにしたが、イグニッションスイッチ５０のオフ操作によりエンジン１１が停止する際に、バッテリ容量等の車両状態のデータに基づいてエンジン停止中のマイクロコンピュータ３１の起動回数（計測可能な最長のエンジン停止時間）を決定するようにしても良い。これにより、バッテリ容量が少なくなるほど、エンジン停止中のマイクロコンピュータ３１の起動回数を少なくして、バッテリ上がりを避けることができる。
【００５６】
また、第１実施例では、エンジン停止中にタイマＩＣ４３から出力される起動信号ＴＳＷによってマイクロコンピュータ３１が起動されると、マイクロコンピュータ３１からメインリレー４８側のＯＲ回路４９に出力される電源オン／オフ信号をハイレベルに反転させることで、起動信号ＴＳＷがローレベルに反転した後もメイン電源４７をオン状態に維持し、その間に、マイクロコンピュータ３１がタイマＩＣ４３へのリセット信号の出力や車両状態のデータの記憶等の処理を行った後、マイクロコンピュータ３１からメインリレー４８側のＯＲ回路４９に出力する電源オン／オフ信号をローレベルに反転させてメイン電源４７をオフさせるようにしたが、これ以外の方法でメイン電源４７をオフさせるようにしても良い。
【００５７】
例えば、タイマＩＣ４３から出力される起動信号ＴＳＷをローレベルに反転させるタイミングを、マイクロコンピュータ３１からタイマＩＣ４３に出力する制御信号によって制御できる構成とし、エンジン停止中にタイマＩＣ４３から出力される起動信号ＴＳＷによってマイクロコンピュータ３１が起動される毎に、マイクロコンピュータ３１がタイマＩＣ４３へのリセット信号の出力や車両状態のデータの記憶等の処理を行った後、マイクロコンピュータ３１から起動信号ＴＳＷをローレベルに反転させる制御信号をタイマＩＣ４３へ出力して起動信号ＴＳＷをローレベルに反転させて、メイン電源４７をオフさせるようにしても良い。この場合は、マイクロコンピュータ３１からメインリレー４８側のＯＲ回路４９に電源オン／オフ信号を出力する信号線は不要となる。
【００５８】
また、タイムカウンタ４５は、カウントアップ動作するアップカウンタに限定されず、カウントダウン動作するダウンカウンタを用いても良いことは言うまでもない。
【００５９】
［第２実施例］
ところで、エンジン停止中に運転者がイグニッションスイッチ５０をオン位置に操作して、パワーウインドウ（図示せず）を操作したり、ラジオ（図示せず）をかけたりすることがあるが、イグニッションスイッチ５０をオン位置に操作したたけでは、エンジン１１は始動されず、イグニッションスイッチ５０をオン位置からスタート位置に操作したときに、初めてスタータ（図示せず）がオンされてエンジン１１が始動される。従って、前記第１実施例のように、エンジン停止中に運転者がイグニッションスイッチ５０をオン位置に操作しただけでエンジン始動と判断して、エンジン停止時間の計測を終了してＳＲＡＭ４１のリセット処理を行うと、実際にエンジンが始動されなかった場合に、エンジン停止時間の計測を継続して行うことができない。
【００６０】
そこで、第２実施例では、図７に示すように、エンジン停止中にイグニッションスイッチ５０がオン位置に操作されただけでは、エンジン始動とは判断せず、タイムカウンタ４５によるエンジン停止時間の計測を継続させて、ＳＲＡＭ４１のリセット処理を行わない。そして、エンジン停止中にイグニッションスイッチ５０がオン位置からスタート位置に操作されたとき又はエンジン始動が完了したときに、その時点におけるタイムカウンタ４５の計測時間ＳＣＮＴを読み取り、この計測時間ＳＣＮＴと、ＳＲＡＭ４１の記憶データＭＳＣＮＴとに基づいてエンジン停止時間ＴＳＣＮＴを演算する。
【００６１】
以上説明した第２実施例のエンジン停止時間の計測は、マイクロコンピュータ３１が図８、図９の各ルーチンによって実行する。尚、タイムカウンタ４５の設定時間ＡＬＥＶを送信する処理については、前記第１実施例と同じく、図５の設定時間送信処理ルーチンが用いられる。
【００６２】
図８のタイムカウンタリセットスタート処理ルーチンは、前記第１実施例で説明した図４のタイムカウンタリセットスタート処理ルーチンのステップ１０１とステップ１０２との間にステップ１０１ａの処理を追加したものであり、それ以外の処理は同じである。
【００６３】
また、図９のエンジン停止時間演算処理ルーチンは、前記第１実施例で説明した図６のエンジン停止時間演算処理ルーチンのステップ１２１とステップ１２４との間にステップ１２１ａの処理を追加したものであり、それ以外の処理は同じである。
【００６４】
エンジン停止中（イグニッションスイッチ５０のオフ中）に、イグニッションスイッチ５０がオン位置に操作されると、メイン電源４７がオンされてマイクロコンピュータ３１が起動される。これにより、図８のタイムカウンタリセットスタート処理ルーチンが起動されると、ステップ１０１で「Ｎｏ」と判定されるため、何もせずに本ルーチンを終了する。イグニッションスイッチ５０のオン中は、メイン電源４７がオン状態に維持されるため、本ルーチンが所定周期で起動されるが、その都度、ステップ１０１で「Ｎｏ」と判定され、何もせずに本ルーチンを終了する。
【００６５】
その後、イグニッションスイッチ５０がオフされた直後（メイン電源４７のオフ前）に本ルーチンが起動されると、ステップ１０１で「Ｙｅｓ」と判定されて、ステップ１０１ａに進み、イグニッションスイッチ５０のオン中にエンジン１１が運転されていたか否かを判定する。このとき、図７に示すように、エンジン停止中にイグニッションスイッチ５０がオン位置に操作されただけで、エンジン１１が運転されていなければ、上記ステップ１０１ａで「Ｎｏ」と判定されて、ステップ１０４に進み、全ての処理を終了させてから、ステップ１０５に進み、メイン電源４７をオフさせて、本ルーチンを終了する。従って、イグニッションスイッチ５０をオン位置からオフ位置に操作しても、それ以前にエンジン１１が運転されていなければ、マイクロコンピュータ３１からリセット信号がタイマＩＣ４３へ出力されず、タイムカウンタ４５がリセットされないため、タイムカウンタ４５の計時動作を継続させることができる。
【００６６】
また、エンジン停止中（イグニッションスイッチ５０のオフ中）に、イグニッションスイッチ５０のオン操作によりマイクロコンピュータ３１が起動されると、図９のエンジン停止時間演算処理ルーチンも起動されるが、イグニッションスイッチ５０のオン操作で起動された場合は、ステップ１２１で「Ｎｏ」と判定されて、ステップ１２１ａに進み、エンジン始動が完了したか否かを判定し、まだ、エンジン始動が完了していなければ、エンジン始動が完了するまで待機する。従って、エンジン停止中にイグニッションスイッチ５０がオン位置に操作されただけで、エンジン始動が完了していなければ、ステップ１２４〜１２６のエンジン停止時間の計測終了処理が行われず、タイムカウンタ４５によるエンジン停止時間の計測を継続させて、ＳＲＡＭ４１の記憶データをリセットしない。
【００６７】
その後、エンジン始動が完了した時点で、ステップ１２４に進み、現時点におけるタイムカウンタ４５の計測時間ＳＣＮＴを読み取り、次のステップ１２５で、この計測時間ＳＣＮＴをＳＲＡＭ４１に記憶されたエンジン停止時間ＭＳＣＮＴに加算して、最終的なエンジン停止時間ＴＳＣＮＴを求めた後、ステップ１２６に進み、ＳＲＡＭ４１に記憶されたエンジン停止時間ＭＳＣＮＴを初期値（０）にリセットして、本ルーチンを終了する。
【００６８】
以上説明した第２実施例では、エンジン停止中にイグニッションスイッチ５０がオン位置に操作されただけで、エンジン１１が始動されなければ、タイムカウンタ４５によるエンジン停止時間の計測を継続させるようにしたので、エンジン停止中に運転者がイグニッションスイッチ５０をオン位置に操作して、パワーウインドウを操作したり、ラジオをかけたりした場合でも、タイムカウンタ４５によるエンジン停止時間の計測を継続させることができ、実際にエンジン始動が行われるまでのエンジン停止時間を正確に計測することができる。
【００６９】
尚、図９のエンジン停止時間演算処理ルーチンでは、エンジン始動が完了したか否かで、エンジン停止時間の計測を終了するか否かを判定するようにしたが、イグニッションスイッチ５０がオン位置からスタート位置に操作されたか否かでエンジン停止時間の計測を終了するか否かを判定するようにしても良い。
【００７０】
［第３実施例］
エンジン停止中に、エンジン停止時間が所定時間に達した時点（起動信号ＴＳＷの出力回数が所定回数に達した時点）で、エバポガスパージシステム２５の漏れ診断を開始する。この漏れ診断は、燃料タンク２４を含む密閉したエバポ系内に電動エアポンプ３０によって大気を導入してエバポ系の内圧を上昇させ、その内圧上昇量に基づいて漏れの有無を判定する。
【００７１】
このエバポガスパージシステム２５の漏れ診断は、マイクロコンピュータ３１によって前記第１実施例又は第２実施例の方法でエンジン停止時間を計測しながら、図１０及び図１１の漏れ診断ルーチンによって実行される。図１０及び図１１の漏れ診断ルーチンは、エンジン停止中にタイマＩＣ４３から出力される起動信号ＴＳＷによってマイクロコンピュータ３１が起動される毎に、図６又は図９のエンジン停止時間演算処理ルーチンを実行した後に起動される。この漏れ診断ルーチンが起動されると、まずステップ２０１で、図６又は図９のステップ１２２で演算されたエンジン停止時間ＭＳＣＮＴが所定時間か否か（起動信号ＴＳＷの出力回数が所定回数か否か）を判定し、エンジン停止時間ＭＳＣＮＴが所定時間でなければ、何もせずに本ルーチンを終了する。
【００７２】
その後、本プログラムが起動されたときに、エンジン停止時間ＭＳＣＮＴが所定時間に達していれば、ステップ２０１で「Ｙｅｓ」と判定されて、ステップ２０２に進み、ＳＲＡＭ４１に記憶されているバッテリ容量と冷却水温（又は外気温）とに基づいて図１２のマップ等から漏れ診断が許可されているか否かを判定する。エンジン停止中にバッテリ容量が少ないときに漏れ診断を実行すると、バッテリ上がりが発生する可能性があるため、漏れ診断を実行しても、バッテリ上がりが発生しないバッテリ容量が残っている場合に漏れ診断が許可される。尚、冷却水温（又は外気温）が低くなるほど、バッテリ上がりが発生しやすくなることを考慮して、図１２のマップは、バッテリ容量と冷却水温（又は外気温）とに基づいて漏れ診断の許可／禁止を判定するようにしたが、演算処理の簡略化のために、バッテリ容量のみに基づいて漏れ診断の許可／禁止を判定するようにしても良いことは言うまでもない。
【００７３】
また、ＳＲＡＭ４１に記憶されているエンジン停止中の冷却水温、燃料タンク２４内の温度推定値（又は温度検出値）等の経時的変化を判定して燃料タンク２４内の温度が安定しているか、変化途中であるかを判定し、燃料タンク２４内の温度が安定している場合のみ、漏れ診断を許可し、燃料タンク２４内の温度が変化途中である場合は、漏れ診断を禁止するようにしても良い。これは、エバポ系を密閉して漏れ診断を行っている期間中に、燃料タンク２４内の温度が変化すると、その温度変化によりエバポ系の内圧が変化するため、その内圧変化の要因が微小な漏れによるものか温度変化によるものかを判別できないためである。
【００７４】
上記ステップ２０２で、漏れ診断が許可されていないと判定されれば、ステップ２０３以降の漏れ診断の処理を行わずに本ルーチンを終了して、バッテリ上がりを未然に防止する。
【００７５】
これに対し、ステップ２０２で、漏れ診断が許可されていると判定されれば、ステップ２０３以降の漏れ診断の処理を次のようにして実行する。まず、ステップ２０３で、燃料タンク２４を含む密閉したエバポ系の内圧Ｐ１を電動エアポンプ３０に組み付けられた圧力センサ（図示せず）で測定する。エンジン停止中は、キャニスタ２７の大気開閉弁（図示せず）が開弁状態に維持されてエバポ系が大気に連通した状態に維持されるため、ステップ２０３でも、大気に連通したエバポ系の内圧Ｐ１を測定することになる。また、エンジン停止中は、起動信号ＴＳＷによりメイン電源４７がオンされても、パージ制御弁２９は閉弁状態（非通電状態）に維持される。
【００７６】
そして、次のステップ２０４で、キャニスタ２７の大気開閉弁を閉弁して、パージ制御弁２９から燃料タンク２４までのエバポ系を密閉した状態にする。この後、ステップ２０５に進み、電動エアポンプ３０を所定時間作動させてエバポ系内に所定量の大気を導入してエバポ系の内圧を上昇させた後、ステップ２０６に進み、再び、エバポ系の内圧Ｐ１を圧力センサで測定する。
【００７７】
この後、図１１のステップ２０７に進み、電動エアポンプ３０の作動によるエバポ系の内圧上昇量（Ｐ２−Ｐ１）を算出して、この内圧上昇量（Ｐ２−Ｐ１）を予め設定した漏れ判定値Ｋと比較し、この内圧上昇量（Ｐ２−Ｐ１）が漏れ判定値Ｋ以下であれば、ステップ２０８に進み、エバポ系の漏れ有りと判定して、ステップ２０９に進み、警告ランプ（図示せず）を点灯又は点滅させて運転者に警告すると共に、漏れ有りを意味する異常コードをＳＲＡＭ４１に記憶する。この後、ステップ２１０に進み、キャニスタ２７の大気開閉弁を開弁してエバポ系を大気に連通させ、本ルーチンを終了する。
【００７８】
これに対し、ステップ２０７で、内圧上昇量（Ｐ２−Ｐ１）が漏れ判定値Ｋよりも大きいと判定されれば、ステップ２１０に進み、エバポ系の漏れ無しと判定して、ステップ２１０に進み、キャニスタ２７の大気開閉弁を開弁してエバポ系を大気に連通させ、本ルーチンを終了する。
【００７９】
尚、ステップ２０７で用いる漏れ判定値Ｋは、演算処理の簡略化のために、予め設定した固定値としても良いが、ＳＲＡＭ４１に記憶されたエンジン停止中の車両状態のデータ（例えば冷却水温、外気温、燃料タンク２４内の温度等）に基づいて漏れ判定値Ｋをマップ又は数式等により算出するようにしても良い。
【００８０】
以上説明した第３実施例のように、エンジン停止中に、エンジン停止時間が所定時間に達した時点（起動信号ＴＳＷの出力回数が所定回数に達した時点）で漏れ診断を開始する場合は、タイムカウンタ４５の設定時間ＡＬＥＶの整数倍が漏れ診断を開始するまでのエンジン停止時間となるように設定すれば良い。従って、漏れ診断を開始するまでのエンジン停止時間を常に一定時間にする場合は、タイムカウンタ４５の設定時間ＡＬＥＶを一定時間に設定すれば良く、図５の設定時間送信処理ルーチンは不要となる。
【００８１】
また、バッテリ容量等の車両状態のデータに応じてタイムカウンタ４５の設定時間ＡＬＥＶを変更する場合は、変更した設定時間ＡＬＥＶの整数倍が漏れ診断を開始するまでのエンジン停止時間と一致しなくなると思われるが、この場合は、エンジン停止中にタイマＩＣ４３から出力される起動信号ＴＳＷによってマイクロコンピュータ３１が起動される毎に、漏れ診断を開始するまでの残り時間を算出し、その残り時間がタイムカウンタ４５の設定時間ＡＬＥＶの変更範囲内になった時点で、タイムカウンタ４５の設定時間ＡＬＥＶを当該残り時間に変更するようにすれば良い。このようにすれば、漏れ診断を開始するまでのエンジン停止時間を車両状態のデータ等に応じて変更する場合でも、常に目標とするエンジン停止時間で漏れ診断を開始することができる。
【００８２】
また、バッテリ容量等の車両状態のデータに応じてタイムカウンタ４５の設定時間ＡＬＥＶを変更する場合は、図１０のステップ２０１で、起動信号ＴＳＷの出力回数が設定回数に達したか否かで、漏れ診断を開始するか否かを判定するようにしても良い。この場合は、バッテリ容量等の車両状態のデータに応じてタイムカウンタ４５の設定時間ＡＬＥＶが変更されるのに伴い、漏れ診断を開始するまでのエンジン停止時間も変更されることになる。
【００８３】
ところで、漏れ診断を開始するまでのエンジン停止時間は、燃料タンク２４内のエバポガスの発生やガソリン給油の影響による誤診断を避けるために、数時間程度の長い時間に設定することが望ましいが、漏れ診断を開始するまでのエンジン停止時間を長い時間に設定すると、車両の使用状況によっては、漏れ診断の頻度が適正な頻度よりも少なくなる可能性がある。
【００８４】
そこで、エンジン始動時に、エンジン停止中に漏れ診断を実行したか否かを判定して、それまでの所定走行距離当たりの漏れ診断の実行回数、又は所定エンジン停止回数当たりの漏れ診断の実行回数を漏れ診断の頻度としてＳＲＡＭ４１に記憶しておき、図５の設定時間送信処理ルーチンのステップ１１２でタイムカウンタ４５の設定時間ＡＬＥＶを設定する際に、漏れ診断の頻度に応じてタイムカウンタ４５の設定時間ＡＬＥＶをマップ又は数式等により設定して、図１０のステップ２０１で、起動信号ＴＳＷの出力回数（マイクロコンピュータ３１の起動回数）が設定回数に達したか否かで、漏れ診断を開始するか否かを判定するようにしても良い。
【００８５】
この場合、漏れ診断の頻度が適正な頻度よりも少ない場合は、タイムカウンタ４５の設定時間ＡＬＥＶを短くすれば、漏れ診断を開始するまでのエンジン停止時間を短くすることができるので、漏れ診断の頻度を増やすことができる。反対に、漏れ診断の頻度が必要以上に多い場合は、タイムカウンタ４５の設定時間ＡＬＥＶを長くすれば、漏れ診断を開始するまでのエンジン停止時間を長くすることができるので、漏れ診断の頻度を適正な頻度まで少なくすることができ、バッテリの消耗を少なくすることができる。
【００８６】
また、バッテリ容量等の車両状態のデータや漏れ診断の頻度に応じてタイムカウンタ４５の設定時間ＡＬＥＶを変更する代わりに、バッテリ容量等の車両状態のデータや漏れ診断の頻度に応じてタイムカウンタ４５の初期値を変更するようにしても良い。つまり、タイムカウンタ４５の設定時間ＡＬＥＶを±α時間分だけ変更する代わりに、タイムカウンタ４５の初期値を±α時間分だけ変更しても良く、それによって、設定時間ＡＬＥＶを変更するのと全く同様の効果を得ることができる。
【００８７】
また、起動信号ＴＳＷの出力回数（マイクロコンピュータ３１の起動回数）が設定回数に達したか否かで、漏れ診断を開始するか否かを判定する場合は、バッテリ容量等の車両状態のデータや漏れ診断の頻度に応じて設定回数を変更するようにしても良い。この際、漏れ診断の頻度が少なすぎる場合は、設定回数を１回に設定しても良く、この場合は、タイムカウンタ４５の計時動作が１回終了した時点で、漏れ診断を開始することになる。
【００８８】
また、エバポガスパージシステム２５の漏れ診断方法は上記第３実施例に限定されず、例えば特開平１０−９０１０７号公報に示すように、電動エアポンプ３０の消費電流値を検出して、この消費電流値からエバポ系内へのエア供給流量を推定し、電動エアポンプ３０の作動開始時のエア供給流量と、所定時間経過後のエア供給流量とを比較して、エバポ系の漏れの有無を判定するようにしても良い。この場合は、エバポ系の内圧を検出する圧力センサは不要となる。
【００８９】
或は、電動エアポンプ３０を省略して、エンジン停止中の所定時間経過後に、エバポ系を密閉してエバポ系の内圧を圧力センサで検出し、このエバポ系の密閉期間中のエバポ系内圧の変化具合からエバポ系の漏れの有無を判定するようにしても良い。
【００９０】
また、エンジン停止中にマイクロコンピュータ３１が起動されたときに実行する処理は、車両状態のデータの記憶やエバポガスパージシステム２５の漏れ診断に限定されず、これ以外の処理を行うようにしても良い。
【００９１】
この場合、エンジン停止中に実行しようとする処理内容に応じてタイムカウンタ４５の設定時間又は初期値を設定するようにしても良い。このようにすれば、実行しようとする処理内容に応じてマイクロコンピュータ３１の起動タイミングを適宜変更することができ、エンジン停止中に実行しようとする処理内容に応じた適切なタイミングでマイクロコンピュータ３１を起動することができる。
【００９２】
また、実行しようとする処理内容に応じて、エンジン停止時間計測の可否や、エンジン停止中のマイクロコンピュータ３１の起動回数を決定するようにしても良い。例えば、エバポガスパージシステム２５の漏れ診断を行う場合は、漏れ診断を開始した時点で、エンジン停止時間の計測を終了し、漏れ診断終了後のマイクロコンピュータ３１の起動を禁止するようにしても良い。このようにすれば、不必要なエンジン停止時間の計測を行わずに済み、バッテリの消耗を避けることができる。
【００９３】
また、エンジン運転中に所定期間毎に車両状態（例えばエンジン回転情報、冷却水温、吸気温度、バッテリ容量情報、車速、ナビゲーションシステムの位置情報等）を検出して、そのデータをＳＲＡＭ４１に記憶するようにしても良い。このようにすれば、エンジン停止中にマイクロコンピュータ３１が起動された時に実行する制御にエンジン運転中の車両状態のデータを利用することができると共に、万一、車両の事故が発生した場合にＳＲＡＭ４１の記憶データから事故前の車両運転状況を解析することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態を示すエンジン制御システム全体の概略構成図
【図２】マイクロコンピュータとタイマ回路の電気的構成を示す回路図
【図３】第１実施例のエンジン停止時間の計測方法を説明するタイムチャート
【図４】第１実施例のタイムカウンタリセットスタート処理ルーチンの処理の流れを示すフローチャート
【図５】第１実施例の設定時間送信処理ルーチンの処理の流れを示すフローチャート
【図６】第１実施例のエンジン停止時間演算処理ルーチンの処理の流れを示すフローチャート
【図７】第２実施例のエンジン停止時間の計測方法を説明するタイムチャート
【図８】第２実施例のタイムカウンタリセットスタート処理ルーチンの処理の流れを示すフローチャート
【図９】第２実施例のエンジン停止時間演算処理ルーチンの処理の流れを示すフローチャート
【図１０】第３実施例の漏れ診断ルーチンの処理の流れを示すフローチャート（その１）
【図１１】第３実施例の漏れ診断ルーチンの処理の流れを示すフローチャート（その２）
【図１２】漏れ診断許可／禁止を判定するマップの一例を示す図
【符号の説明】
１１…エンジン、１４…エアフローメータ、１５…スロットルバルブ、２４…燃料タンク、２５…エバポガスパージシステム（蒸発燃料処理装置）、２６…エバポ通路、２７…キャニスタ、２８…パージ通路、２９…パージ制御弁、３０…電動エアポンプ、３１…マイクロコンピュータ、３２…タイマ回路、４１…ＳＲＡＭ（メモリ）、４３…タイマＩＣ、４５…タイムカウンタ、４７…メイン電源、４８…メインリレー、４９…ＯＲ回路（メイン電源オン／オフ手段）、５０…イグニッションスイッチ、５１…サブ電源。
【図１】
0004349605.tif 000002
【図２】
0004349605.tif 000003
【図３】
0004349605.tif 000004
【図４】
0004349605.tif 000005
【図５】
0004349605.tif 000006
【図６】
0004349605.tif 000007
【図７】
0004349605.tif 000008
【図８】
0004349605.tif 000009
【図９】
0004349605.tif 000010
【図１０】
0004349605.tif 000011
【図１１】
0004349605.tif 000012
【図１２】
0004349605.tif 000013