(57)【要約】【課題】欠歯部の誤判定とクランクカウンタ値の誤補正を抑制【解決手段】パルス間隔Ｔ３≧２．４×パルス間隔Ｔ４の条件で欠歯部Ｋであると判定されると（時刻ｔ１）、パルス間隔Ｔ０〜Ｔ５を用い判定結果が正しいか検証する。判定結果が正しい場合に、欠歯部Ｋと判定された時（時刻ｔ１）のクランクカウンタ（以下ＣＣと略す）の値（時刻ｔ１以後の欠歯時カウンタ値記憶レジスタを参照）と、欠歯部Ｋと判定された時のＣＣの正しい値として設定された値との差（以下、カウンタ補正値という）を算出する（時刻ｔ３以後の補正値記憶レジスタを参照）。その後に、カウンタ補正値とＣＣの現在値と、書換タイミングに基づき設定された値（＋１）とに基づき、補正後カウンタ値（時刻ｔ５以後の補正後カウンタ値格納バッファを参照）が算出され、その後クランク信号の最初の立ち上がり時に補正後カウンタ値に書き換えられる（時刻ｔ６のＣＣを参照）。【選択図】図６
2010025017.tif 000002
【特許請求の範囲】
【請求項１】
エンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列のクランク信号を入力し、前記クランク軸の回転角度を表すクランクカウンタをカウントアップさせるエンジン制御装置において、
前記クランク信号の有効エッジ同士の間隔であるパルス間隔を計測するパルス間隔計測手段と、
前記パルス間隔計測手段により計測された連続する２つの前記パルス間隔をそれぞれ、新しい順に第１パルス間隔および第２パルス間隔として、前記第１パルス間隔を示す値を前記第２パルス間隔を示す値で除算した値である第１パルス間隔除算値が、前記パルス間隔のうち前記所定角度間隔毎のパルスが所定数だけ故意に抜かれたパルス間隔である欠歯部のパルス間隔に基づいて予め設定された第１判定値以上であるか否かを判断し、前記第１パルス間隔除算値が前記第１判定値以上である場合に、前記欠歯部が検出されたと判断する欠歯部判断手段と、
前記欠歯部判断手段により前記欠歯部が検出されたと判断されたときの前記クランクカウンタの値と、前記欠歯部における前記クランクカウンタの値として予め設定された値である欠歯部カウンタ設定値との差であるカウンタ差値を算出する差値算出手段と、
前記欠歯部判断手段により前記欠歯部が検出されたと判断された場合に、該判断が正しいか否かを、前記パルス間隔計測手段により計測された前記パルス間隔に基づいて判断する欠歯部判断検証手段と、
前記欠歯部判断手段による判断が正しいと前記欠歯部判断検証手段により判断された場合に、前記差値算出手段により算出された前記カウンタ差値と、前記クランクカウンタの現在の値と、前記クランクカウンタの値を書き換える書換タイミングに基づいて予め設定されたカウンタ調整値とに基づいて、前記クランクカウンタの値を補正するための補正後カウンタ値を算出する補正値算出手段と、
前記補正値算出手段により前記補正後カウンタ値が算出された後に、前記書換タイミングで前記クランクカウンタの値を前記補正後カウンタ値に書き換えるカウンタ書換手段と
を備えることを特徴とするエンジン制御装置。
【請求項２】
前記欠歯部判断検証手段は、
前記第１パルス間隔除算値が、前記第１判定値より大きくなるように予め設定された第２判定値未満である場合に、前記欠歯部判断手段による判断が正しいと判断する
ことを特徴とする請求項１に記載のエンジン制御装置。
【請求項３】
前記欠歯部判断検証手段は、さらに、
前記パルス間隔計測手段により計測された連続する２つのパルス間隔であって、前記第１パルス間隔および前記第２パルス間隔よりも新しいパルス間隔をそれぞれ、新しい順に第３パルス間隔および第４パルス間隔として、前記第３パルス間隔を示す値を前記第４パルス間隔を示す値で除算した値である第２パルス間隔除算値が、１より小さくなるように予め設定された第３判定値以上である場合に、前記欠歯部判断手段による判断が正しいと判断する
ことを特徴とする請求項２に記載のエンジン制御装置。
【請求項４】
前記欠歯部判断検証手段は、
前記パルス間隔計測手段により計測された連続する２つのパルス間隔であって、前記第２パルス間隔に連続し且つ前記第２パルス間隔よりも古いパルス間隔を第５パルス間隔として、前記第２パルス間隔を示す値を前記第５パルス間隔を示す値で除算した値である第３パルス間隔除算値が、１より小さくなるように予め設定された第４判定値以上である場合に、前記欠歯部判断手段による判断が正しいと判断する
ことを特徴とする請求項１に記載のエンジン制御装置。
【請求項５】
前記欠歯部判断検証手段は、
前記パルス間隔計測手段により計測されたパルス間隔であって、前記第１パルス間隔に連続し且つ前記第１パルス間隔よりも新しいパルス間隔を第６パルス間隔として、前記第６パルス間隔を示す値を前記第１パルス間隔を示す値で除算した値である第４パルス間隔除算値が、１より小さくなるように予め設定された第５判定値未満である場合に、前記欠歯部判断手段による判断が正しいと判断する
ことを特徴とする請求項１に記載のエンジン制御装置。
【請求項６】
前記パルス間隔計測手段および前記欠歯部判断手段の少なくとも一方は、ハードウェアで構成される
ことを特徴とする請求項１〜請求項５の何れかに記載のエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン制御装置に関するものである。
【背景技術】
【０００２】
従来、エンジン制御装置は、エンジンのクランク軸の回転に応じてクランク軸センサから出力されるクランク信号と、クランク軸の回転に対して１／２の比率で回転するエンジンのカム軸の回転に応じてカム軸センサから出力される気筒判別信号（Ｇ信号）とに基づいて、クランク軸の回転角度を検出し、燃料噴射制御や点火時期制御などを行っている。
【０００３】
クランク軸センサは、例えば、エンジンのクランク軸に固定されたロータと、ロータの外周に１０°ＣＡの間隔で形成された歯の通過を検出するピックアップコイルとからなる。また、クランク軸のロータの外周には歯が２個欠損した欠歯部が設けられている。
【０００４】
このためクランク信号は、クランク軸が１０℃Ａ回転する毎にパルス状に発生するとともに、クランク軸の回転位置が特定位置となった際には、そのパルス間隔が３倍（すなわち、３０℃Ａ）となる。そしてクランク信号は、パルス間隔が長くなる期間が３６０℃Ａ毎に発生する。
【０００５】
またカム軸センサは、例えば、クランク軸の回転に対し１／２の比率で回転するエンジンのカム軸に固定されたロータと、ロータの外周の１箇所に形成された歯の通過を検出するピックアップコイルとからなる。このためＧ信号は、カム軸のロータが１回転する毎（即ち７２０℃Ａ毎）にパルス状に発生する。
【０００６】
そしてエンジン制御装置は、クランク信号に基づいて、クランク軸の回転角度（いわゆるクランク角）を表すクランクカウンタをカウントアップさせ、そのクランクカウンタの値に基づきエンジン回転に同期した制御を行う。
【０００７】
さらにエンジン制御装置は、クランク信号に欠歯部が現れたか否かを判定する欠歯判定を行い、その欠歯判定で欠歯部が現れたと判定したときのＧ信号のレベルから、クランク位置を特定する。例えば、Ｇ信号がハイレベルならば、現在のクランク位置が特定のクランク位置（ここではＸ°ＣＡとする）であると特定し、Ｇ信号がローレベルならば、現在のクランク位置がＸ°ＣＡから３６０°ＣＡだけ進んだクランク位置であると特定する。
【０００８】
そしてエンジン制御装置は、欠歯判定で欠歯部が現れたと判定する毎に、クランクカウンタの値を、特定されたクランク位置に対応する予め設定されたカウンタ値（以下、基準カウンタ値ともいう）に設定する（例えば、特許文献１を参照）。これにより、クランクカウンタのカウンタ値が実際のクランク位置とずれてしまった場合であっても、欠歯判定で欠歯部が現れたと判定する毎に、クランクカウンタのカウンタ値を、実際のクランク位置に対応した正しい値に補正することができる。
【特許文献１】特開２００５−１３３６１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に記載のエンジン制御装置では、図７に示すように、今回計測中のパルス間隔Ｔａが、前回計測したパルス間隔Ｔｂを所定の欠歯判定比倍（図７では２．４倍）した長さ以上になると、その今回計測中のパルス間隔Ｔａが欠歯部であると判定する（パルスＰＫ１を参照）。
【００１０】
このため、クランク信号にノイズＰＮが重畳してパルス間隔が狭くなる状況が発生すると（パルス間隔Ｔｃを参照）、その直後のパルス間隔Ｔｄが、前回計測したパルス間隔Ｔｃを所定の欠歯判定比倍した長さ以上になり、欠歯部であると誤判定してしまう（パルスＰＫ２を参照）ために、エンジンを適正に制御できなくなるという問題があった。
【００１１】
この問題を解決するためには、「今回計測中のパルス間隔が、前回計測したパルス間隔を所定の欠歯判定比倍した長さ以上になる」という簡便な判定方法ではなく、より詳細な判定方法を採用することが有効である。ここで、詳細な判定方法をハードウェアで構成すると回路設計が複雑になるため、ソフトウェアで構成することが望ましい。
【００１２】
しかし、欠歯部判定をソフトウェアで構成すると、以下に示すような問題があった。
図８に示すように、欠歯部ＫＨが現れて、所定時間（図８では、欠歯部が現れてクランク信号の立ち上がりエッジが５回検出されるまで）が経過した後に（図９の時刻ｔ１１を参照）、クランクカウンタの値を基準カウンタ値に設定しようとする。しかし、欠歯部判定よりも優先度が高いソフト処理の実行のために、基準カウンタ値の設定が完了するまでに（図８の時刻ｔ１２を参照）、遅れＤＬが生じることがある。
【００１３】
そして、優先度が高いソフト処理の処理時間が長かったり、エンジン回転速度が高くクランク信号のパルス間隔が短かったりすると、図９に示すように、カウント値を補正しようとした時刻ｔ２１から、カウント値の補正が完了した時刻ｔ２２までの間に、クランク信号の次のパルスが入力して、クランクカウンタの値が変化してしまうことがある。このため、補正すべきタイミングで補正することができず、クランクカウンタのカウンタ値を、実際のクランク位置に対応した正しい値に補正することができなくなるという問題があった。
【００１４】
本発明は、こうした問題に鑑みなされたものであり、欠歯部の誤判定を抑制するとともに、クランクカウンタの値の誤補正を抑制して、適正なエンジン制御を可能とするエンジン制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するためになされた請求項１に記載のエンジン制御装置では、パルス間隔計測手段が、クランク信号の有効エッジ同士の間隔であるパルス間隔を計測する。そして欠歯部判断手段が、パルス間隔計測手段により計測された連続する２つのパルス間隔をそれぞれ、新しい順に第１パルス間隔および第２パルス間隔として、第１パルス間隔を示す値を第２パルス間隔を示す値で除算した値である第１パルス間隔除算値が、パルス間隔のうち所定角度間隔毎のパルスが所定数だけ故意に抜かれたパルス間隔である欠歯部のパルス間隔に基づいて予め設定された第１判定値以上であるか否かを判断し、第１パルス間隔除算値が第１判定値以上である場合に、欠歯部が検出されたと判断する。
【００１６】
その後に差値算出手段が、欠歯部判断手段により欠歯部が検出されたと判断されたときのクランクカウンタの値と、欠歯部におけるクランクカウンタの値として予め設定された値である欠歯部カウンタ設定値との差であるカウンタ差値を算出する。また欠歯部判断検証手段が、欠歯部判断手段により欠歯部が検出されたと判断された場合に、この判断が正しいか否かを、パルス間隔計測手段により計測されたパルス間隔に基づいて判断する。
【００１７】
そして補正値算出手段が、欠歯部判断手段による判断が正しいと欠歯部判断検証手段により判断された場合に、差値算出手段により算出されたカウンタ差値と、クランクカウンタの現在の値と、クランクカウンタの値を書き換える書換タイミングに基づいて予め設定されたカウンタ調整値とに基づいて、クランクカウンタの値を補正するための補正後カウンタ値を算出する。
【００１８】
さらにカウンタ書換手段が、補正値算出手段により補正後カウンタ値が算出された後に、書換タイミングでクランクカウンタの値を補正後カウンタ値に書き換える。
このように構成された請求項１に記載のエンジン制御装置では、欠歯部判断手段により欠歯部が検出されたときのクランクカウンタの正しい値が欠歯部カウンタ設定値として設定されている。このため、欠歯部が検出されたときのクランクカウンタの値に基づいて、クランクカウンタの値の本来の値からのズレ、すなわち上記のカウンタ差値を算出することができる。
【００１９】
そして欠歯部判断検証手段により、欠歯部判断手段の判断が正しいか否かが判断される。すなわち、欠歯部判断手段の「第１パルス間隔除算値が第１判定値以上であるか否か」という条件だけではなく、その他の条件を加えて欠歯部を検出することができる。このため、欠歯部の検出精度を向上させることができる。
【００２０】
また補正値算出手段により、カウンタ差値と、クランクカウンタの現在の値と、書換タイミングに基づいて予め設定されたカウンタ調整値とに基づいて、補正後カウンタ値を算出され、さらにカウンタ書換手段により、書換タイミングでクランクカウンタの値が補正後カウンタ値に書き換えられる。
【００２１】
ここで書換タイミングは、例えば、補正後カウンタ値を算出してから最初にクランクカウンタの立ち上がりエッジを検出した場合が挙げられる。そして、この場合を書換タイミングに設定すると、カウンタ調整値は「１」に設定される。つまりカウンタ調整値は、補正値算出手段が補正後カウンタ値を算出してから、カウンタ書換手段がクランクカウンタの値を書き換えるまでのクランクカウンタの値の増加を調整するために設けられている。
【００２２】
したがって補正値算出手段は、補正後カウンタ値を算出する時点でのクランクカウンタの値と、カウンタ差値を用いて補正後カウンタ値を算出する。このため、欠歯部判断検証手段がソフトウェアで構成されている場合において、欠歯部判断検証手段よりも優先度が高いソフト処理の実行のために、欠歯部判断検証手段による処理が遅れた場合であっても、補正値算出手段は、カウンタ書換手段がクランクカウンタの値を書き換える時点での正しい補正後カウンタ値を算出することができる。
【００２３】
以上より、欠歯部の誤判定を抑制するとともに、クランクカウンタの値の誤補正を抑制することができる。
また請求項１に記載のエンジン制御装置では、請求項２に記載のように、欠歯部判断検証手段は、第１パルス間隔除算値が、第１判定値より大きくなるように予め設定された第２判定値未満である場合に、欠歯部判断手段による判断が正しいと判断するようにするとよい。
【００２４】
このように構成されたエンジン制御装置によれば、エンストのために、欠歯部判断手段の「第１パルス間隔除算値が第１判定値以上である」という条件（以下、第１欠歯判断条件ともいう）が成立した場合に、欠歯部判断手段による判断が正しくないと判断される。エンストすると、第１パルス間隔が第２パルス間隔に比べて非常に大きくなるからである。したがって、エンストによる欠歯部判断手段の誤判断を検証することができる。
【００２５】
また請求項２に記載のエンジン制御装置では、請求項３に記載のように、欠歯部判断検証手段は、さらに、パルス間隔計測手段により計測された連続する２つのパルス間隔であって、第１パルス間隔および第２パルス間隔よりも新しいパルス間隔をそれぞれ、新しい順に第３パルス間隔および第４パルス間隔として、第３パルス間隔を示す値を第４パルス間隔を示す値で除算した値である第２パルス間隔除算値が、１より小さくなるように予め設定された第３判定値以上である場合に、欠歯部判断手段による判断が正しいと判断するようにするとよい。
【００２６】
このように構成されたエンジン制御装置によれば、エンスト後のエンジンの再始動により、欠歯部判断手段の第１欠歯判断条件と、欠歯部判断検証手段の「第１パルス間隔除算値が第２判定値未満である」という条件が成立した場合に、欠歯部判断手段による判断が正しくないと判断される。再始動ではエンジンは急加速状態となり、第３パルス間隔は第４パルス間隔より十分小さくなるからである。したがって、エンスト後の再始動による欠歯部判断手段の誤判断を検証することができる。
【００２７】
また請求項１に記載のエンジン制御装置では、請求項４に記載のように、欠歯部判断検証手段は、パルス間隔計測手段により計測された連続する２つのパルス間隔であって、第２パルス間隔に連続し且つ第２パルス間隔よりも古いパルス間隔を第５パルス間隔として、第２パルス間隔を示す値を第５パルス間隔を示す値で除算した値である第３パルス間隔除算値が、１より小さくなるように予め設定された第４判定値以上である場合に、欠歯部判断手段による判断が正しいと判断するようにするとよい。
【００２８】
このように構成されたエンジン制御装置によれば、クランク信号にノイズが重畳して第１欠歯判断条件が成立した場合に、欠歯部判断手段による判断が正しくないと判断される。ノイズが重畳すると、第２パルス間隔が第５パルス間隔に比べてかなり小さくなる場合があるからである。したがって、ノイズの重畳による欠歯部判断手段の誤判断を検証することができる。
【００２９】
また請求項１に記載のエンジン制御装置では、請求項５に記載のように、欠歯部判断検証手段は、パルス間隔計測手段により計測されたパルス間隔であって、第１パルス間隔に連続し且つ第１パルス間隔よりも新しいパルス間隔を第６パルス間隔として、第６パルス間隔を示す値を第１パルス間隔を示す値で除算した値である第４パルス間隔除算値が、１より小さくなるように予め設定された第５判定値未満である場合に、欠歯部判断手段による判断が正しいと判断するようにするとよい。
【００３０】
このように構成されたエンジン制御装置によれば、エンジンの急減速により、欠歯部判断手段の第１欠歯判断条件が成立した場合に、欠歯部判断手段による判断が正しくないと判断される。急減速では、第６パルス間隔が第１パルス間隔に比べてかなり大きくなるからである。したがって、エンジンの急減速による欠歯部判断手段の誤判断を検証することができる。
【００３１】
また請求項１〜請求項５の何れかに記載のエンジン制御装置では、請求項６に記載のように、パルス間隔計測手段および欠歯部判断手段の少なくとも一方は、ハードウェアで構成されるようにするとよい。
【００３２】
このように構成されたエンジン制御装置によれば、パルス間隔計測手段および欠歯部判断手段の少なくとも一方による処理がハードウェアで実行される分、ソフトウェアで実行される処理の負荷を低減することができる。
【発明を実施するための最良の形態】
【００３３】
以下に本発明の実施形態について図面をもとに説明する。
図１は本発明が適用されたエンジン制御装置１の全体構成図、図２はカウンタ処理部１５の主要部を示す構成図、図３はカウンタ補正回路４１の構成の概略を示す図、図４は欠歯データ取得部４２の構成の概略を示す図、図５はカウンタ補正値算出処理を示すフローチャート、図６はクランクカウンタ１１の値を書き換える動作を説明するタイムチャートである。
【００３４】
エンジン制御装置１は、車両に搭載された４サイクルの内燃機関型エンジンを制御するものであり、図１に示すように、マイコン（マイクロコンピュータ）３と、入力回路５と、出力回路６とを備えている。
【００３５】
これらのうちマイコン３は、クランク軸センサ７からのクランク信号、カム軸センサ９からの気筒判別用信号（以下、Ｇ信号という）、水温センサやスロットル開度センサ等からの他の各種センサ信号、及びトランスミッションのシフトポジションスイッチやエアコンスイッチ等からの各種スイッチ信号を入力回路５を介して取り込み、それら各種信号に基づいて、インジェクタへ出力回路６を介して駆動信号（噴射指令信号）を出力する燃料噴射制御や、点火装置へ出力回路６を介して駆動信号（点火指令信号）を出力する点火時期制御等のエンジン回転に同期した制御を実施している。
【００３６】
特にマイコン３は、クランク角（クランク軸の回転角度）を表すクランクカウンタ１１をクランク信号に基づきカウントアップさせ、そのカウント値をエンジン回転に同期した制御に使用している。例えば、クランクカウンタ１１の値（以下、クランクカウンタ値ともいう）が或る値から他の或る値になるまで駆動信号を出力するとか、クランクカウンタ１１の値が或る値になってから一定時間が経過するまで駆動信号を出力するといった具合に、クランクカウンタ１１の値を使用する。
【００３７】
なお、クランク軸センサ７からマイコン３に入力されるクランク信号は、図６に示すように、エンジンのクランク軸の回転位置が予め定められた基準位置に来ていない場合には、クランク軸が１０°回転する毎（１０°ＣＡ毎）にロー→ハイ→ローといった具合にパルス状に変化し、クランク軸の回転位置が基準位置に来たときには、立ち上がりの間隔が整数倍（本実施形態では３倍）長くなる。つまり、クランク信号は、クランク軸の回転位置が基準位置に来ていない場合には、１０°ＣＡ毎のパルス列となり、クランク軸の回転位置が基準位置に来たときには、１０°ＣＡ毎のパルスが所定数（本実施形態では２個）抜けることで立ち上がり間隔が３０°ＣＡ分の長さになった欠歯部Ｋとなる。また、カム軸センサ９からマイコン３に入力されるＧ信号は、クランク軸の回転に対し１／２の比率で回転するエンジンのカム軸の回転位置が特定位置に来たときに、ロー→ハイ→ローといった具合にパルス状に変化する信号である。このため、Ｇ信号の立ち上がりエッジは７２０°ＣＡ毎に発生することとなる。
【００３８】
ここでマイコン３は、図１に示すように、クランク信号とＧ信号とを入力してクランクカウンタ１１に関する信号処理を行う信号処理部１３を備えている。そして信号処理部１３は、クランク信号に基づいてクランクカウンタ１１をカウントアップさせる処理を主に行うカウンタ処理部１５と、クランク信号の各パルス間隔（本実施形態では、立ち上がりエッジ同士の間隔である）について、そのパルス間隔が欠歯部Ｋであるか否かを判定する欠歯判定部１７と、クランクカウンタ１１のカウント値に基づき信号を出力するための信号出力部１９と、クランクカウンタ１１とは別にクランク信号によってカウントアップされる第２カウンタ２１とを備えている。
【００３９】
さらにマイコン３は、エンジンを制御するための各種処理を実行するＣＰＵ２３と、ＣＰＵ２３によって実行されるプログラムなどが格納されたＲＯＭ２５と、ＣＰＵ２３による演算結果を一時記憶するＲＡＭ２７と、入力回路５を介して入力されるアナログの信号をデジタルデータに変換して取り込むためのＡＤ変換器２９と、入力回路５を介して入力されるデジタルの信号（ハイ又はローの二値信号）を取り込むとともに、本マイコン３の外部へ信号を出力するためのＩ／Ｏポート３１とを備えている。
【００４０】
これらのうち欠歯判定部１７は、クランク信号のパルス間隔を計測するとともに、今回計測中のパルス間隔が、前回計測したパルス間隔を所定の欠歯判定比倍（本実施形態では、２．４倍）した長さ以上になると、その今回計測中のパルス間隔が欠歯部Ｋであると判定して、図６に示すように、その判定時点から次のクランク信号の立ち上がりエッジ（つまり、欠歯部Ｋの終了タイミングに相当するクランク信号の立ち上がりエッジ）までの間、ハイレベルの欠歯検出信号を出力する動作を行う。
【００４１】
次にカウンタ処理部１５は、クランクカウンタ１１の他に、図２に示すように、クランクカウンタ１１の値を補正するカウンタ補正回路４１と、欠歯部Ｋを検出するためのデータを取得する欠歯データ取得部４２と、クランクカウンタ１１を分周する分周カウンタ４３と、欠歯部Ｋが検出されたときのクランクカウンタ１１の値を記憶するための欠歯時カウンタ値記憶レジスタ４４と、欠歯検出信号が入力した時点でのクランクカウンタ１１の値を取得して欠歯時カウンタ値記憶レジスタ４４に記憶する欠歯時カウンタ値取得部４５とを備えている。
【００４２】
これらのうちカウンタ補正回路４１は、図３に示すように、クランクカウンタ１１の値を補正するための補正値（以下、カウンタ補正値という。図５のＳ４０を参照）を記憶するための補正値記憶レジスタ５１と、クランクカウンタ１１の値と補正値記憶レジスタ５１に記憶された値とに基づいて、補正された後のクランクカウンタ１１の値（以下、補正後カウンタ値ともいう）を演算する補正値演算回路５２と、補正値演算回路５２で演算された補正後カウンタ値を格納する補正後カウンタ値格納バッファ５３と、補正値演算回路５２による演算の実行を指示するための補正フラグ５４と、補正フラグ５４をセットおよびクリアを行うフラグ制御部５５とを備え、補正値演算回路５２による補正後カウンタ値の算出の完了後、クランク信号の最初の立ち上がり時に、補正後カウンタ値格納バッファ５３に格納された補正後カウンタ値をクランクカウンタ１１に書き込むように構成されている。
【００４３】
そして補正値演算回路５２は、補正フラグ５４がセットされると、演算処理を実行するように構成され、クランクカウンタ１１の値と、補正値記憶レジスタ５１に記憶された値と「＋１」（以下、この「＋１」をカウンタ調整値ともいう）とを加算した値を算出する加算器５６と、加算器５６で算出された値が予め設定された上限値（本実施形態では７１）を越えている場合には、（上限値＋１）を減算した値を出力する上限値超え判定部５７とを備える。上限値超え判定部５７は、加算器５６で算出された値が例えば「７０」，「７２」，「７４」であるときには、それぞれ「７０」，「０」，「２」を出力する。
【００４４】
またフラグ制御部５５は、補正値記憶レジスタ５１に値が格納されると補正フラグ５４をセットし、補正後カウンタ値格納バッファ５３に格納された値がクランクカウンタ１１にセットされると補正フラグ５４をクリアする。
【００４５】
次に欠歯データ取得部４２は、図４に示すように、エッジ検出部６１と、ＡＮＤゲート６２と、パルス間隔計測部６３と、比較器６４と、ラッチ回路６５と、パルス間隔保持レジスタ６６と、内部カウンタコンペアレジスタ６７とを備えている。
【００４６】
これらのうちエッジ検出部６１は、クランク信号を入力して、クランク信号の立ち上がりエッジを検出し、その旨を示すエッジ検出信号を出力する。
また内部カウンタコンペアレジスタ６７は、パルス間隔計測部６３による計測を一旦停止させるタイミングを規定するために予め設定されたクランクカウンタ値を格納する。
【００４７】
また比較器６４は、第２カウンタ２１の値と、内部カウンタコンペアレジスタ６７の値とを比較して、両者が等しい場合にパルス信号を出力する。
またラッチ回路６５は、比較器６４の出力をラッチする。
【００４８】
またＡＮＤゲート６２は、エッジ検出部６１からのエッジ検出信号と、ラッチ回路６５から出力される信号を論理反転した信号との論理積演算を行う。すなわちＡＮＤゲート６２は、ラッチ回路６５がラッチ信号を出力していないときに、クランク信号の立ち上がるタイミングでパルス信号を出力する。
【００４９】
またパルス間隔計測部６３は、ＡＮＤゲート６２から出力されるパルス信号の時間間隔、すなわち、クランク信号のパルス間隔を計測し、その計測結果をパルス間隔保持レジスタ６６に格納する。
【００５０】
またパルス間隔保持レジスタ６６は、パルス間隔計測部６３により計測されたパルス間隔を示す値を、新しい順に予め設定された所定保持数（本実施形態では６）格納する。
次にＣＰＵ２３は、カウンタ補正値を算出するためのカウンタ補正値算出処理を実行する。このカウンタ補正値算出処理は、第２カウンタ２１の値と内部カウンタコンペアレジスタ６７の値とが一致したときに実行される処理である。
【００５１】
このカウンタ補正値算出処理が実行されると、ＣＰＵ２３は、図５に示すように、まずＳ１０にて、欠歯判定部１７により欠歯部Ｋであると判定された判定結果が正しいか否かを確定するための欠歯確定処理を行う。
【００５２】
この欠歯確定処理は、具体的には、パルス間隔保持レジスタ６６に格納された６つのパルス間隔を示す値を、図６に示すように、新しい順にＴ０，Ｔ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５として、式（１）〜式（５）が成立した場合に、欠歯判定部１７の判定結果が正しいと確定する。
【００５３】
Ｔ３／Ｔ４  ＜  ｎ１        ・・・（１）
Ｔ１／Ｔ２  ≧  ｎ２        ・・・（２）
Ｔ０／Ｔ１  ≧  ｎ３        ・・・（３）
Ｔ４／Ｔ５  ≧  ｎ４        ・・・（４）
Ｔ２／Ｔ３  ＜  ｎ５        ・・・（５）
なお、欠歯判定部１７により欠歯部Ｋであると判定されるのは、式（６）が成立した場合である。
【００５４】
Ｔ３／Ｔ４  ≧  ｎ０        ・・・（６）
ここで、式（１）〜式（６）の定数ｎ０〜ｎ５は予め設定された判定値である。本実施形態では、定数ｎ０，ｎ１，ｎ２，ｎ３，ｎ４，ｎ５はそれぞれ、「２．４」，「６．０」，「０．６５」，「０．６５」，「０．６７」，「０．７」である。
【００５５】
式（１）は、エンストのために式（６）が成立した場合を除外するための条件である。エンストすると、パルス間隔Ｔ３がパルス間隔Ｔ４に比べて非常に大きくなるからである。
【００５６】
式（２）及び式（３）は、エンスト後に再始動したときに式（６）及び式（１）が成立した場合を除外するための条件である。再始動ではパルス間隔Ｔ２からパルス間隔Ｔ０の範囲で急加速状態となり、式（２）及び式（３）が不成立となるからである。
【００５７】
式（４）は、クランク信号にノイズが混入して式（６）が成立した場合を除外するための条件である。ノイズが混入すると、パルス間隔Ｔ４がパルス間隔Ｔ５に比べてかなり小さくなる場合があるからである。
【００５８】
式（５）は、急減速のために式（６）が成立した場合を除外するための条件である。急減速では、パルス間隔Ｔ２がパルス間隔Ｔ３に比べてかなり大きくなるからである。
そしてＳ１０の欠歯確定処理が終了すると、Ｓ２０にて、Ｓ１０の処理で欠歯判定部１７の判定結果が正しいと確定されたか否かを判断する。ここで、欠歯判定部１７の判定結果が正しいと確定されなかった場合には（Ｓ２０：ＮＯ）、カウンタ補正値算出処理を終了する。
【００５９】
一方、欠歯判定部１７の判定結果が正しいと確定された場合には（Ｓ２０：ＹＥＳ）、Ｓ３０にて、比較器６４の出力のラッチを解除するためのラッチクリア信号をラッチ回路６５に対して出力する。これにより、ラッチ回路６５がラッチを解除するため、ＡＮＤゲート６２は、パルス間隔計測部６３へのパルス信号の出力を再開する。つまり、パルス間隔計測部６３がパルス間隔の計測を再開する。
【００６０】
その後Ｓ４０にて、欠歯時カウンタ値記憶レジスタ４４の値から、欠歯判定部１７により欠歯部Ｋが検出されたときのクランクカウンタ１１の正しい値として予め設定されたクランクカウンタ基準値（本実施形態では６７）を減算し、さらに、この減算値の正負符号を変更し、この符号を変更した値を上述のカウンタ補正値とする。そしてＳ５０にて、Ｓ４０で算出されたカウンタ補正値を補正値記憶レジスタ５１に記憶して、カウンタ補正値算出処理を終了する。
【００６１】
このように構成されたエンジン制御装置１では、パルス間隔計測部６３によりパルス間隔が計測される。そして欠歯判定部１７により、今回計測中のパルス間隔が、前回計測したパルス間隔を所定の欠歯判定比倍（本実施形態では、２．４倍）した長さ以上になると、その今回計測中のパルス間隔が欠歯部Ｋであると判定される。
【００６２】
さらに、今回計測中のパルス間隔が欠歯部Ｋであると欠歯判定部１７により判定される（以下、「欠歯判定部１７により欠歯部Ｋが検出される」ともいう）と、カウンタ処理部１５の欠歯時カウンタ値取得部４５により、欠歯判定部１７により欠歯部Ｋが検出されたときのクランクカウンタ１１の値が欠歯時カウンタ値記憶レジスタ４４に記憶される（図６の時刻ｔ１を参照）。
【００６３】
その後、第２カウンタ２１の値と内部カウンタコンペアレジスタ６７の値（本実施形態では３）とが一致すると（図６の時刻ｔ２を参照）、欠歯判定部１７により欠歯部Ｋであると判定された判定結果が正しいか否かを確定するための欠歯確定処理が行われる（Ｓ１０）。そして、欠歯判定部１７の判定結果が正しいと確定された場合には（Ｓ２０：ＹＥＳ）、欠歯時カウンタ値記憶レジスタ４４の値からクランクカウンタ基準値を減算し、この減算値の正負符号を変更した値がカウンタ補正値として補正値記憶レジスタ５１に記憶（図６の時刻ｔ３を参照）される（Ｓ４０，Ｓ５０）。
【００６４】
そして、補正値記憶レジスタ５１にカウンタ補正値が記憶されると、補正フラグ５４がセットされて（図６の時刻ｔ４を参照）、補正値演算回路５２による演算が実行されることにより、補正後カウンタ値格納バッファ５３に補正後カウンタ値が格納される（図６の時刻ｔ５を参照）。さらに、補正値演算回路５２による補正後カウンタ値の算出の完了後、クランク信号の最初の立ち上がり時に、補正後カウンタ値格納バッファ５３に格納された補正後カウンタ値がクランクカウンタ１１に書き込まれる（図６の時刻ｔ６を参照）。
【００６５】
このように構成されたエンジン制御装置１では、今回計測中のパルス間隔が欠歯部Ｋであると欠歯判定部１７により判定されたときの正しいクランクカウンタ値がクランクカウンタ基準値（本実施形態では６７）として設定されている。このため、欠歯判定部１７により欠歯部Ｋが検出されたときのクランクカウンタ値に基づいて、クランクカウンタ値の本来の値からのズレ、すなわちカウンタ補正値を算出することができる。
【００６６】
そして欠歯確定処理（Ｓ１０）により、欠歯判定部１７の判定が正しいか否かが判断される。すなわち、欠歯判定部１７の「今回計測中のパルス間隔が、前回計測したパルス間隔を所定の欠歯判定比倍した長さ以上」という条件だけではなく、その他の条件を加えて欠歯部Ｋを検出することができる。このため、欠歯部Ｋの検出精度を向上させることができる。
【００６７】
また補正値演算回路５２により、カウンタ補正値と、クランクカウンタ１１の現在の値と、クランクカウンタ値を書き換える書換タイミングに基づいて予め設定されたカウンタ調整値とに基づいて、補正後カウンタ値が算出され、さらに、カウンタ補正回路４１により、補正後カウンタ値の算出の完了後、クランク信号の最初の立ち上がり時（書換タイミング）に、クランクカウンタ値が補正後カウンタ値に書き換えられる。
【００６８】
したがって補正値演算回路５２は、補正後カウンタ値を算出する時点でのクランクカウンタ値と、カウンタ補正値を用いて補正後カウンタ値を算出する。このため、欠歯確定処理（Ｓ１０）がソフトウェアで構成されている場合において、欠歯確定処理（Ｓ１０）が遅れた場合であっても、補正値演算回路５２は、クランクカウンタ値を書き換える時点での正しい補正後カウンタ値を算出することができる。
【００６９】
以上より、欠歯部Ｋの誤判定を抑制するとともに、クランクカウンタ値の誤補正を抑制することができる。
また、パルス間隔計測部６３及び欠歯判定部１７がハードウェアで構成されている。このため、パルス間隔計測部６３及び欠歯判定部１７による処理がハードウェアで実行される分、エンジン制御装置１においてソフトウェアで実行される処理の負荷を低減することができる。
【００７０】
以上説明した実施形態において、パルス間隔計測部６３は本発明におけるパルス間隔計測手段、欠歯判定部１７は本発明における欠歯部判断手段、Ｓ４０の処理は本発明における差値算出手段、Ｓ１０の処理は本発明における欠歯部判断検証手段、補正値演算回路５２は本発明における補正値算出手段、カウンタ補正回路４１は本発明におけるカウンタ書換手段である。
【００７１】
また、クランクカウンタ基準値は本発明における欠歯部カウンタ設定値、カウンタ補正値は本発明におけるカウンタ差値、式（１）のパルス間隔Ｔ３は本発明における第１パルス間隔、式（１）のパルス間隔Ｔ４は本発明における第２パルス間隔、式（２）のパルス間隔Ｔ１及び式（３）のパルス間隔Ｔ０は本発明における第３パルス間隔、式（２）のパルス間隔Ｔ２及び式（３）のパルス間隔Ｔ１は本発明における第４パルス間隔、式（４）のパルス間隔Ｔ５は本発明における第５パルス間隔、式（５）のパルス間隔Ｔ２は本発明における第６パルス間隔である。
【００７２】
また、欠歯判定比および定数ｎ０は本発明における第１判定値、定数ｎ１は本発明における第２判定値、定数ｎ２，ｎ３は本発明における第３判定値、定数ｎ４は本発明における第４判定値、定数ｎ５は本発明における第５判定値である。
【００７３】
以上、本発明の一実施例について説明したが、本発明は上記実施例に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば、上記実施形態においては、カウンタ調整値が「＋１」であるものを示したが、これに限られるものではなく、書換タイミングに応じてカウンタ調整値を変更する必要がある。例えば、補正後カウンタ値の算出の完了後、クランク信号の２回目の立ち上がり時にクランクカウンタ値を書き換えるようにする場合には、カウンタ調整値は「＋２」となる。
【図面の簡単な説明】
【００７４】
【図１】エンジン制御装置１の全体構成図である。
【図２】カウンタ処理部１５の主要部を示す構成図である。
【図３】カウンタ補正回路４１の構成の概略を示す図である。
【図４】欠歯データ取得部４２の構成の概略を示す図である。
【図５】カウンタ補正値算出処理を示すフローチャートである。
【図６】クランクカウンタ値を書き換える動作を説明するタイムチャートである。
【図７】欠歯部の誤判定の動作を説明するタイムチャートである。
【図８】ソフトウェアによるクランクカウンタ値の書き換え動作を説明するタイムチャートである。
【図９】ソフトウェアによるクランクカウンタ値の誤補正の動作を説明するタイムチャートである。
【符号の説明】
【００７５】
１…エンジン制御装置、３…マイコン、５…入力回路、６…出力回路、７…クランク軸センサ、９…カム軸センサ、１１…クランクカウンタ、１３…信号処理部、１５…カウンタ処理部、１７…欠歯判定部、１９…信号出力部、２１…第２カウンタ、２３…ＣＰＵ、２５…ＲＯＭ、２７…ＲＡＭ、２９…ＡＤ変換器、３１…Ｉ／Ｏポート、４１…カウンタ補正回路、４２…欠歯データ取得部、４３…分周カウンタ、４４…欠歯時カウンタ値記憶レジスタ、４５…欠歯時カウンタ値取得部、５１…補正値記憶レジスタ、５２…補正値演算回路、５３…補正後カウンタ値格納バッファ、５４…補正フラグ、５５…フラグ制御部、５６…加算器、５７…上限値超え判定部、６１…エッジ検出部、６２…ＡＮＤゲート、６３…パルス間隔計測部、６４…比較器、６５…ラッチ回路、６６…パルス間隔保持レジスタ、６７…内部カウンタコンペアレジスタ
【図１】
2010025017.tif 000003
【図２】
2010025017.tif 000004
【図３】
2010025017.tif 000005
【図４】
2010025017.tif 000006
【図５】
2010025017.tif 000007
【図６】
2010025017.tif 000008
【図７】
2010025017.tif 000009
【図８】
2010025017.tif 000010
【図９】
2010025017.tif 000011