(57)【特許請求の範囲】
【請求項１】
エンジンのクランク軸に応動して回転しかつ所定の角度毎に被検出部を有し、その被検出部のうちの少なくとも１つの被検出部が欠落した回転体と、
前記回転体の外周近傍に配置され前記被検出部が通過する毎にパルスを生成するピックアップと、
前記ピックアップから出力されるパルスを検出してそのパルスの時間的間隔を測定する間隔検出手段と、
欠落した被検出部に対して１８０度だけ前に位置する被検出部及びその前後の被検出部によって生成されたパルスの時間的間隔の割合を検出する割合検出手段と、
前記割合検出手段によって検出された割合に応じて前記欠落した被検出部によるパルスの時間的間隔を推定する推定手段と、を備えたことを特徴とするクランク角検出装置。
【請求項２】
エンジンのクランク軸に応動して回転しかつ所定の角度毎に被検出部を有し、その被検出部のうちの少なくとも１つの被検出部が欠落した回転体と、
前記回転体の外周近傍に１８０度の角度差をもって配置され前記被検出部が通過する毎に第１及び第２パルスを生成する第１及び第２ピックアップと、
前記第１ピックアップから出力される第１パルスを検出してその第１パルスの生成時刻を測定する第１生成時刻検出手段と、
前記第２ピックアップから出力される第２パルスを検出してその第２パルスの生成時刻を測定する第２生成時刻検出手段と、
前記第１生成時刻検出手段によって測定された生成時刻の今回値と前回値との差から第１パルスの時間的間隔を検出し、欠落した被検出部の後の最初の被検出部に対して前記第１ピックアップから生成された第１パルスを検出したときには前記第２生成時刻検出手段によって測定された生成時刻を用いて前記欠落した被検出部による第１パルスの時間的間隔を推定する間隔検出手段と、を備えたことを特徴とするクランク角検出装置。
【請求項３】
前記間隔検出手段は、欠落した被検出部の後の最初の被検出部に対して前記第１ピックアップから生成された第１パルスを検出したとき前記第２生成時刻検出手段によって測定された生成時刻の今回値と前記第１生成時刻検出手段によって測定された生成時刻の今回値との差から前記欠落した被検出部による第１パルスの後側の時間的間隔を推定し、前記第２生成時刻検出手段によって測定された生成時刻の今回値と前記第２生成時刻検出手段によって測定された生成時刻の前回値との差から前記欠落した被検出部による第１パルスの前側の時間的間隔を推定することを特徴とする請求項２記載のクランク角検出装置。
【請求項４】
前記間隔検出手段は、前記欠落した被検出部の前の最後の被検出部に対して前記第１ピックアップから生成された第１パルスの消滅時点から前記欠落した被検出部の後の最初の被検出部に対して前記第１ピックアップから生成された第１パルスの生成時点までの期間に前記第２ピックアップから所定数以上の第２パルスが生成されたときには前記第２生成時刻検出手段によって測定された生成時刻の今回値と前回値との差から第１パルスの後側の時間的間隔を推定することを特徴とする請求項２又は３記載のクランク角検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンジンのクランク軸の角度を検出するクランク角検出装置に関する。
【０００２】
【従来の技術】
エンジンへ燃料をインジェクタによって噴射供給するための燃料噴射タイミングや点火プラグに火花放電させる点火タイミングを制御する場合に、エンジンのクランク軸の基準位置から回転角度位置、すなわちクランク角を検出し、そのクランク角に基づいてそれらのタイミングが設定される（例えば、特開昭６３−２６３２６９号公報及び特公平５−１１５６２号公報）。
【０００３】
エンジンのクランク軸の角度を検出するクランク角検出装置においては、クランク軸の回転に応じて回転する円板状の回転体とその外周近傍に配置された電磁ピックアップとが用いられている。この回転体の外周或いは外周近傍に複数の磁性材からなる凸部が被検出部として所定の角度毎に設けられ、それには少なくとも１個の凸部の欠落がある。クランク軸に連動して回転体が回転すると凸部が電磁ピックアップ近傍を通過したとき電磁ピックアップからはパルスが生成されるのである。凸部の欠落によってパルスが生成しない比較的長い期間が生じ、その期間を検出することにより、次に生成するパルスをクランク軸の基準位置を示すものとし、その基準位置に基づいて各気筒の行程を特定することが行なわれる。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のクランク角検出装置においては、凸部の欠落のために欠落を含むクランク軸の角度範囲ではクランク軸の所定の角度毎の間隔を特定することができないので、その欠落を含むクランク軸の角度範囲においては燃料噴射タイミングや点火タイミング等のエンジン制御タイミングを正確に得ることができないという問題点があった。
【０００５】
そこで、本発明の目的は、クランク軸の基準位置を定めるために回転体に凸部等の被検出部の欠落を含むクランク軸の角度範囲でも所定の角度毎の間隔を特定することができるクランク角検出装置を提供することである。
【０００６】
【課題を解決するための手段】
本発明のクランク角検出装置は、エンジンのクランク軸に応動して回転しかつ所定の角度毎に被検出部を有し、その被検出部のうちの少なくとも１つの被検出部が欠落した回転体と、回転体の外周近傍に配置され被検出部が通過する毎にパルスを生成するピックアップと、ピックアップから出力されるパルスを検出してそのパルスの間隔を測定する間隔検出手段と、欠落した被検出部に対して１８０度だけ前に位置する被検出部及びその前後の被検出部によって生成されたパルスの間隔の割合を検出する割合検出手段と、割合検出手段によって検出された割合に応じて欠落した被検出部によるパルスの時間的間隔を推定する推定手段と、を備えたことを特徴としている。
【０００７】
また、本発明のクランク角検出装置は、エンジンのクランク軸に応動して回転しかつ所定の角度毎に被検出部を有し、その被検出部のうちの少なくとも１つの被検出部が欠落した回転体と、回転体の外周近傍に１８０度の角度差をもって配置され被検出部が通過する毎に第１及び第２パルスを生成する第１及び第２ピックアップと、第１ピックアップから出力される第１パルスを検出してその第１パルスの生成時刻を測定する第１生成時刻検出手段と、第２ピックアップから出力される第２パルスを検出してその第２パルスの生成時刻を測定する第２生成時刻検出手段と、第１生成時刻検出手段によって測定された生成時刻の今回値と前回値との差からパルスの時間的間隔を検出し、欠落した被検出部の後の最初の被検出部に対して第１ピックアップから生成された第１パルスを検出したときには第２生成時刻検出手段によって測定された生成時刻を用いて欠落した被検出部による第１パルスの時間的間隔を推定する間隔検出手段と、を備えたことを特徴としている。
【０００８】
【発明の実施の形態】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
図１は本発明によるクランク角検出装置を示している。このクランク角検出装置は、４気筒の４サイクルエンジンのクランク軸（図示せず）に設けられた円盤状の回転体１を有し、クランク軸の回転に連動して回転体１が回転するようになっている。回転体１の外周には磁性材からなる凸部２が被検出部として３０度間隔で１０個だけ連続して設けられ、破線Ａで示すように２個の凸部が欠落している。回転体１の外周近傍には電磁ピックアップ３が配置されている。回転体１が回転すると凸部２が電磁ピックアップ３近傍を通過したとき電磁ピックアップ３からは負極性のパルスが生成されるようになっている。
【０００９】
電磁ピックアップ３の出力にはＥＣＵ(Electric Control Unit：電子制御ユニット)４が接続されている。ＥＣＵ４は、ＣＰＵ５、ＲＡＭ６，ＲＯＭ７、入力インターフェース（Ｉ／Ｆ）回路８，出力インターフェース回路１０，１１及びＡ／Ｄ変換器１２を備えている。入力インターフェース回路８は電磁ピックアップ３から出力されたパルスを波形整形してＣＰＵ５に出力する。ＣＰＵ５は入力インターフェース回路８から出力された波形整形後のパルスの立ち下がりによって割り込み処理を行ってカウンタ（図示せず）のカウント値を１だけ増加させる。また、ＣＰＵ５は、後述する動作を行なってクランク角を検出する。なお、ＣＰＵ５、ＲＡＭ６，ＲＯＭ７、入力インターフェース回路８，出力インターフェース回路１０，１１及びＡ／Ｄ変換器１２は共にバスに共通接続されている。
【００１０】
出力インターフェース回路１０はＣＰＵ５からのインジェクタ駆動指令に応じてインジェクタ１３を駆動する。インジェクタ１３は内燃エンジンの吸気管の吸気ポート近傍に設けられ、駆動されたとき燃料を噴射する。出力インターフェース回路１１はＣＰＵ５からの点火時期信号に応じて点火装置１４を活性化させる。
【００１１】
Ａ／Ｄ変換器１２はエンジン制御において必要な吸気管内圧ＰB、冷却水温ＴＷ、スロットル開度θth、排気ガス中の酸素濃度Ｏ2等のエンジン運転パラメータを検出する複数のセンサからのアナログ信号をディジタル信号に変換するために設けられている。
かかる構成の本発明によるクランク角検出装置においては、エンジンのクランク軸の回転に連動して回転体１が回転し、これにより凸部２が電磁ピックアップ３近傍を通過し、このとき電磁ピックアップ３からはパルスが生成される。このパルスは入力インターフェース回路８によって波形整形された後、ＣＰＵ５に供給される。
【００１２】
図２はその波形整形された負極性のパルスを示している。回転体１に形成された凸部２が２個分だけ欠けているので、この欠けた部分（符号ａ）の次に来るパルスを基準にして気筒判別が行なわれ、ＣＰＵ５内のカウンタは欠けた部分の次に来るパルスによって０にリセットされる。このカウンタのカウント値はＦＩＳＴＧで示されており、回転体１が３０度回転する毎に１だけ増加され、＃０から＃９まで計数することにより回転体１が１回転する３６０度の期間を表している。「＃」は３６０度毎にその間の番目のパルス、すなわちパルスナンバという意味を表し、＃０がクランク軸の基準位置に対応する。また、カウンタはカウント値が変化する時点から次に変化する時点までの期間、すなわち１のパルスの生成から次のパルスの生成までのパルス間隔ＭＥをクロックパルスを計数することにより出力する。すなわち、パルス間隔ＭＥは１のパルスの立ち下がりから次のパルスの立ち下がりまでの期間である。なお、図２において、＃１，４ＴＤＣは第１及び第４気筒のビストンが上死点にあり、＃２，３ＴＤＣは第２及び第３気筒のビストンが上死点にあることを示している。
【００１３】
ＣＰＵ５は、図３に示すように、カウンタのカウント値ＦＩＳＴＧを読み取り（ステップＳ１）、ＦＩＳＴＧ＝＃４であるか否かを判別する（ステップＳ２）。ＦＩＳＴＧ＝＃４であるときには、カウンタからＦＩＳＴＧ＝＃３からのパルス間隔ＭＥをＭＥ０１として得てＲＡＭ６に記憶させる（ステップＳ３）。ＦＩＳＴＧ≠＃４のときにはＦＩＳＴＧ＝＃５であるか否かを判別する（ステップＳ４）。ＦＩＳＴＧ＝＃５であるときには、カウンタからＦＩＳＴＧ＝＃４からのパルス間隔ＭＥをＭＥ１２として得てＲＡＭ６に記憶させる（ステップＳ５）。ＦＩＳＴＧ≠＃５のときにはＦＩＳＴＧ＝＃６であるか否かを判別する（ステップＳ６）。また、ＦＩＳＴＧ＝＃６であるときには、カウンタからＦＩＳＴＧ＝＃５からのパルス間隔ＭＥをＭＥ２３として得てＲＡＭ６に記憶させる（ステップＳ７）。
【００１４】
このようにステップＳ１〜Ｓ７までの実行により、パルス間隔ＭＥ０１，ＭＥ１２及びＭＥ２３が得られると、ＣＰＵ５は、次にそれらパルス間隔ＭＥ０１，ＭＥ１２及びＭＥ２３の総和ＴＯＴＡＬを求める（ステップＳ８）。そして、総和ＴＯＴＡＬに対するパルス間隔ＭＥ０１の割合ＲＡＴＥ１＝ＭＥ０１／ＴＯＴＡＬを算出する（ステップＳ９）。同様に、総和ＴＯＴＡＬに対するパルス間隔ＭＥ１２の割合ＲＡＴＥ２＝ＭＥ１２／ＴＯＴＡＬを算出し（ステップＳ１０）、総和ＴＯＴＡＬに対するパルス間隔ＭＥ２３の割合ＲＡＴＥ３＝ＭＥ２３／ＴＯＴＡＬを算出する（ステップＳ１１）。
【００１５】
ステップＳ６にてＦＩＳＴＧ≠＃６と判別した場合には、ＦＩＳＴＧ＝＃０であるか否かを判別する（ステップＳ１２）。ＦＩＳＴＧ＝＃０であるときには、ＦＩＳＴＧ＝＃０からのパルス間隔ＭＥをＭＥ０３として得る（ステップＳ１３）。このパルス間隔ＭＥ０３は凸部２が２個分だけ欠けた部分である。このパルス間隔ＭＥ０３は、パルス間隔ＭＥ０１，ＭＥ１２及びＭＥ２３とはクランク角では１８０度ずれている。４サイクルエンジンの場合には、１行程分の差であり、角速度の変動も一定と見なせる。
【００１６】
ステップＳ１３の実行後、ＣＰＵ５は、パルス間隔ＭＥ０３と割合ＲＡＴＥ１とからパルス間隔ＭＥ０１＝ＭＥ０３×ＲＡＴＥ１を算出してＲＡＭ６に記憶させる（ステップＳ１４）。同様に、パルス間隔ＭＥ０３と割合ＲＡＴＥ２とからパルス間隔ＭＥ１２＝ＭＥ０３×ＲＡＴＥ２を算出してＲＡＭ６に記憶させ（ステップＳ１５）、パルス間隔ＭＥ０３と割合ＲＡＴＥ３とからパルス間隔ＭＥ２３＝ＭＥ０３×ＲＡＴＥ３を算出してＲＡＭ６に記憶させる（ステップＳ１６）。このステップＳ１４〜Ｓ１６で得られたパルス間隔ＭＥ０１，ＭＥ１２及びＭＥ２３は、パルス間隔ＭＥ０３において凸部２が存在してパルスが生成された場合に得られるパルス間隔を推定したものである。
【００１７】
この推定したパルス間隔は、例えば、点火時期制御や燃料噴射制御において用いられる。次に、点火時期制御の場合の例を示す。
点火時期制御において、ＣＰＵ５は、図５に示すように、カウンタのカウント値ＦＩＳＴＧを読み取ってそのカウント値ＦＩＳＴＧが２であるか否かを判別する（ステップＳ２１）。ＦＩＳＴＧ＝＃２の場合には、タイマカウント値ＴＩＧＦを算出する（ステップＳ２２）。タイマカウント値ＴＩＧＦの算出のためにはＲＡＭ６からそのとき記憶されているパルス間隔ＭＥ２３を読み出し、パルス間隔ＭＥ２３に予め定められた係数ＩGCを乗算することが行なわれる。
【００１８】
ステップＳ２２の実行後、カウンタのカウント値ＦＩＳＴＧを読み取ってそのカウント値ＦＩＳＴＧが＃４に変化したか否かを判別する（ステップＳ２３）。ＦＩＳＴＧ＝＃４に変化した場合には、ＣＰＵ５内の図示しないタイマにタイマカウント値ＴＩＧＦをセットして計数を開始させる（ステップＳ２４）。そのタイマがタイマカウント値ＴＩＧＦの計数を終了したか否かを判別する（ステップＳ２５）。タイマカウント値ＴＩＧＦの計数を終了したならば、点火装置１４に対して点火指令を発生する（ステップＳ２６）。
【００１９】
図２に示したように、ＦＩＳＴＧ＝＃４に対応するパルスの立ち下がり時点からＴＩＧＦだけの時間経過後に点火指令が発生される。
図６は更に、本発明の実施例を示している。このクランク角検出装置においては、回転体１の外周近傍には２つの電磁ピックアップ３ａ，３ｂが配置されている。電磁ピックアップ３ａ，３ｂの配置位置は互いに１８０度のクランク角度差を有している。電磁ピックアップ３ａ，３ｂ各々は、回転体１が回転すると凸部２がその近傍を通過したときパルスが生成するようになっている。
【００２０】
電磁ピックアップ３ａ，３ｂの出力にはＥＣＵ４が接続されている。ＥＣＵ４は、図１と同様に、ＣＰＵ５、ＲＡＭ６、ＲＯＭ７、出力インターフェース回路１０，１１及びＡ／Ｄ変換器１２の他に、電磁ピックアップ３ａ，３ｂに対応するために入力インターフェース回路８ａ，８ｂを備えている。入力インターフェース回路８ａは電磁ピックアップ３ａから出力されたパルスを波形整形してＣＰＵ５に出力し、入力インターフェース回路８ｂは電磁ピックアップ３ｂから出力されたパルスを波形整形してＣＰＵ５に出力する。ＣＰＵ５には入力インターフェース回路８ａ，８ｂから出力された波形整形後のパルスを計数するカウンタがプログラム処理により形成される。その他の構成は図１の装置と同様である。
【００２１】
かかる構成のクランク角検出装置においては、エンジンのクランク軸の回転に連動して回転体１が回転し、これにより各凸部２が電磁ピックアップ３ａ，３ｂ近傍を通過し、このとき電磁ピックアップ３ａ，３ｂ各々からパルスが生成される。図７に示すように、電磁ピックアップ３ａ，３ｂから生成される第１及び第２パルスＮＥ１，ＮＥ２は１８０度の位相差を有しており、入力インターフェース回路８ａ，８ｂによって波形整形された後、ＣＰＵ５に供給される。第１及び第２パルスＮＥ１，ＮＥ２は、凸部の欠落で生成しない場合を除き、電磁ピックアップ３ａ，３ｂの取り付け誤差、ＥＣＵ４内のタイミング遅れ等の要因でクランク軸の同一角度で生成すべき場合でもいずれが先にＣＰＵ５に供給されるか特定することはできない。
【００２２】
ＣＰＵ５は第１パルスＮＥ１の立ち下がりによってＮＥ１割り込み動作を開始する。ＮＥ１割り込み動作においては、図８に示すように、第１パルスＮＥ１の立ち下がりが検出されたことを示すために第１パルスフラグＦＰ１を１に等しくし（ステップＳ３１）、そのときの時間値ＣＣ０１をキャプチャ値ＮＥ１ＣＡＰに記憶させる（ステップＳ３２）。そして、第２パルスカウント値ＣＮＴＰ２が＃２であるか否かを判別する（ステップＳ３３）。ＣＮＴＰ２≠＃２であるならば、第２パルスフラグＦＰ２が１に等しいか否かを判別する（ステップＳ３４）。ＦＰ２＝１は第２パルスＮＥ２の立ち下がりが検出されたことを示し、このフラグＦＰ２は後述のＮＥ２割り込み動作においてセットされる。ＦＰ２＝０ならば、そのフラグはＮＥ２割り込み動作にてセットされていないので、ＦＩＳＴＧに１を加算し（ステップＳ３５）、そのＦＩＳＴＧが＃１０より大であるか否かを判別する（ステップＳ３６）。ＦＩＳＴＧ≦＃１０ならば、後述のステップＳ４７に移行する。ＦＩＳＴＧ＞＃１０ならば、それはあり得ないことであるので、ノイズ検知フラグＦＦＳＤ０４Ｂを１に等しくさせ（ステップＳ３７）、気筒頭出しのためにＦＩＳＴＧを＃０に等しくさせる（ステップＳ３８）。
【００２３】
ステップＳ３３にてＣＮＴＰ２＝＃２と判別したならば、１つの第１パルスＮＥ１が消滅してから次の第１パルスＮＥ１が生成するまでに第２パルスＮＥ２が３度生成した場合であり、この場合には第２パルスフラグＦＰ２を０にリセットする（ステップＳ３９）。
ステップＳ３４にてＦＰ２＝１と判別したならば、第１パルスＮＥ１が消滅してから第２パルスＮＥ２が少なくとも１回生成した後、再び第１パルスＮＥ１が生成した場合を意味する。よって、この場合もステップＳ３９に進んで第２パルスフラグＦＰ２を０にリセットする。
【００２４】
ステップＳ３９の実行後、キャプチャ値ＮＥ１ＣＡＰとＮＥ２ＣＡＰとの差の絶対値を入力時刻差ＤＣＡＰとして算出し（ステップＳ４０）、その入力時刻差ＤＣＡＰが所定値ＤＣＡＰＤＡＴより大であるか否かを判別する（ステップＳ４１）。ＤＣＡＰ＞ＤＣＡＰＤＡＴならば、電磁ピックアップ３ｂは回転体１の凸部２が欠けた部分に対向し第２パルスＮＥ２が生成せず、その間に第１パルスＮＥ１が検出された訳で、この場合には第２パルスカウント値ＣＮＴＰ２を＃０に等しくさせ（ステップＳ４２）、その後、カウント値ＦＩＳＴＧが＃９に等しいか否かを判別する（ステップＳ４３）。ＦＩＳＴＧ＝＃９ならば、ステップＳ３８に進んでＦＩＳＴＧを＃０に等しくさせる。ＦＩＳＴＧ≠＃９ならば、ステップＳ３７に進んでノイズ検知フラグＦＦＳＤ０４Ｂを１に等しくさせた後、ステップＳ３８に進む。
【００２５】
ステップＳ４１にてＤＣＡＰ≦ＤＣＡＰＤＡＴならば、第１パルスＮＥ１及び第２パルスＮＥ２が交互に連続的に検出されたので、第１パルスフラグＦＰ１を０にリセットし（ステップＳ４４）、カウント値ＣＮＴＰ２が＃２であるか否かを判別する（ステップＳ４５）。ＣＮＴＰ２＝＃２であるならば、回転体１の凸部２が欠けた部分の後の第１パルスの生成であるので、ステップＳ４２に進んでカウント値ＣＮＴＰ２を＃０に等しくさせ、更に、上記のように結果的にステップＳ３８で気筒頭出しのためにＦＩＳＴＧを＃０に等しくさせる。ＣＮＴＰ２≠＃２であるならば、回転体１の凸部２が欠けた部分に対応せずに第１パルスＮＥ１及び第２パルスＮＥ２が交互に連続的に検出されたので、カウント値ＣＮＴＰ２を＃０にさせ（ステップＳ４６）、ステップＳ３５に進んでそれ以降のステップを実行することになる。
【００２６】
図９に示すステップＳ４７はステップＳ４６の実行後に行なわれると共にステップＳ３６にてＦＩＳＴＧ≦＃１０と判別された場合に行なわれる。ＣＰＵ５はこのステップＳ４７では今回の時刻値Ｔ１nを前回の時刻値Ｔ１n-1とし、キャプチャ値ＮＥ１ＣＡＰを今回の時刻値Ｔ１nとする（ステップＳ４８）。ステップＳ４８の実行後、ＣＰＵ５はカウント値ＦＩＳＴＧが０であるか否かを判別する（ステップＳ４９）。ＦＩＳＴＧ≠＃０ならば、今回の時刻値Ｔ１nと前回の時刻値Ｔ１n-1との差を今回のパルス間隔ＭＥとして算出する（ステップＳ５０）。このパルス間隔ＭＥは今回のカウント値ＦＩＳＴＧが＃１ならばＭＥ０１であり、＃２ならばＭＥ１２であり、それ以降のカウント値について同様である。
【００２７】
ＣＰＵ５はステップＳ４９にてＦＩＳＴＧ＝＃０と判別した場合には、ＣＮＴＰ２≧＃２とする判別が行なわれたか否かを判別する（ステップＳ５１）。上述のステップＳ３３又はＳ４５にてＣＮＴＰ２＝＃２と判別された場合には、第２パルスによる今回の時刻値Ｔ２nと前回の時刻値Ｔ２n-1との差をパルス間隔ＭＥ２３として算出し（ステップＳ５２）、第２パルスによる前回の時刻値Ｔ２n-1と２回前の時刻値Ｔ２n-2との差をパルス間隔ＭＥ１２として算出し（ステップＳ５３）、２回前の時刻値Ｔ２n-2と３回前の時刻値Ｔ２n-3との差をパルス間隔ＭＥ０１として算出する（ステップＳ５４）。一方、ＣＮＴＰ２＜＃２と判別された場合には、第２パルスによる今回の時刻値Ｔ２nと第１パルスによる今回の時刻値Ｔ１nとの差をパルス間隔ＭＥ２３として算出し（ステップＳ５５）、第２パルスによる今回の時刻値Ｔ２nと前回の時刻値Ｔ２n-1との差をパルス間隔ＭＥ１２として算出し（ステップＳ５６）、第２パルスによる前回の時刻値Ｔ２n-1と２回前の時刻値Ｔ２n-2との差をパルス間隔ＭＥ０１として算出する（ステップＳ５７）。
【００２８】
ＣＰＵ５は第２パルスＮＥ２の立ち下がりによってＮＥ２割り込み動作を開始する。ＮＥ２割り込み動作においては、図１０に示すように、先ず、第２パルスフラグＦＰ２が１に等しいか否かを判別する（ステップＳ６１）。ＦＰ２＝０であるということは、第２パルスが生成した後、第１パルスが生成し、そして新たに第２パルスが生成した場合を意味する。この場合には第２パルスフラグＦＰ２に１をセットする（ステップＳ６２）。ＦＰ２＝１であるということは、第２パルスが生成した後、第１パルスが生成することなく新たに第２パルスが生成した場合を意味する。この場合には、第２パルスカウント値ＣＮＴＰ２に＃１を加算し（ステップＳ６３）、そしてステップＳ６２に進む。
【００２９】
ステップＳ６２の実行後、そのときの時間値ＣＣ００をキャプチャ値ＮＥ２ＣＡＰに記憶させる（ステップＳ６４）。そして、第１パルスフラグＦＰ１が１に等しいか否かを判別する（ステップＳ６５）。ＦＰ１＝０ならば、後述のステップＳ７１に移行する。ＦＰ１＝１ならば、第１パルスの生成後に第２パルスが生成した場合であり、キャプチャ値ＮＥ１ＣＡＰとＮＥ２ＣＡＰとの差の絶対値を入力時刻差ＤＣＡＰとして算出し（ステップＳ６６）、その入力時刻差ＤＣＡＰが所定値ＤＣＡＰＤＡＴより大であるか否かを判別する（ステップＳ６７）。ＤＣＡＰ＞ＤＣＡＰＤＡＴならば、電磁ピックアップ３ａは回転体１の凸部２が欠けた部分に対向し第１パルスＮＥ１が生成せず、その間に第２パルスＮＥ２が検出された訳で、後述のステップＳ７１に移行する。一方、ＤＣＡＰ≦ＤＣＡＰＤＡＴならば、第１パルスＮＥ１及び第２パルスＮＥ２が交互に連続的に検出されたので、第１パルスフラグＦＰ１を０にリセットし（ステップＳ６８）、第２パルスフラグＦＰ２を０にリセットし（ステップＳ６９）、第２パルスカウント値ＣＮＴＰ２を＃０に等しくさせる（ステップＳ７０）。
【００３０】
ステップＳ７１はステップＳ７０の実行後に、ステップＳ６５にてＦＰ１≠＃０と判別された場合、又はステップＳ６７にてＤＣＡＰ＞ＤＣＡＰＤＡＴと判別された場合に行なわれる。ＣＰＵ５は、このステップＳ７１では２回前の時刻値Ｔ２n-2を３回前の時刻値Ｔ２n-3とし、前回の時刻値Ｔ２n-1を２回前の時刻値Ｔ２n-2とし（ステップＳ７２）、今回の時刻値Ｔ２nを前回の時刻値Ｔ２n-1とし（ステップＳ７３）、更に、キャプチャ値ＮＥ２ＣＡＰを今回の時刻値Ｔ２nとする（ステップＳ７４）。
【００３１】
この推定したパルス間隔ＭＥ０１，ＭＥ１２及びＭＥ２３が、例えば、点火時期制御や燃料噴射制御において用いられることは図１の装置の場合と同様である。
図１２〜図１９は第１パルスＮＥ１、第２パルスＮＥ２、第１パルスフラグＦＰ１、第２パルスフラグＦＰ２及び第２パルスカウント値ＣＮＴＰ２の関係を各々示している。第１及び第２パルスＮＥ１，ＮＥ２は、上記したように、電磁ピックアップ３ａ，３ｂの取り付け誤差、ＥＣＵ４内のタイミング遅れ等の要因でクランク軸の同一角度で生成すべき場合でもいずれが先にＣＰＵ５に供給されるか特定することはできない。なお、波線で示された第１及び第２パルスＮＥ１，ＮＥ２は欠落した凸部に対応するパルスである。
【００３２】
図１２は、クランク軸の同一角度で第１パルスＮＥ１、そして第２パルスＮＥ２の順に常にＣＰＵ５に供給される場合を示しており、ＣＰＵ５では第１パルスＮＥ１の入力に応答してステップＳ３１で第１パルスフラグＦＰ１が１にセットされると共にステップＳ３２でキャプチャ値ＮＥ１ＣＡＰに現在時刻が記憶される。また、第２パルスＮＥ２の入力に応答してステップＳ６２で第２パルスフラグＦＰ２が１にセットされ、ステップＳ６４でキャプチャ値ＮＥ２ＣＡＰに現在時刻が記憶される。しかしながら、キャプチャ値ＮＥ１ＣＡＰ，ＮＥ２ＣＡＰの差の絶対値ＤＣＡＰがステップＳ６６で算出され、第１パルスＮＥ１及び第２パルスＮＥ２がその順に交互に生成されている場合にはステップＳ６７ではＤＣＡＰが所定値ＤＣＡＰＤＡＴ以下と判別されるので、ステップＳ６５〜Ｓ７０にてＦＰ１＝０、ＦＰ２＝０、ＣＮＴＰ２＝＃０とされる。よって、ステップＳ３４ではＦＰ２＝０と判別されるので、ステップＳ３５でカウント値ＦＩＳＴＧが１だけ加算される。
【００３３】
図１２において、凸部が欠落した部分のため第１パルスＮＥ１が生成しない期間にはその期間の最初の第２パルスＮＥ２の入力に応答してステップＳ６２で第２パルスフラグＦＰ２が１にセットされ、よって、２番目の第２パルスＮＥ２の入力に応答してステップＳ６３でカウント値ＣＮＴＰ２は＃１となる。その期間の終了により第１パルスＮＥ１が供給されると、ステップＳ３９で第２パルスフラグＦＰ２は０にリセットされた後、ステップＳ４１ではＤＣＡＰが所定値ＤＣＡＰＤＡＴより大と判別される。よって、ステップＳ４２でカウント値ＣＮＴＰ２もリセットされ、ステップＳ３８でカウント値ＦＩＳＴＧにクランク軸の基準位置を示す＃０が設定される。
【００３４】
図１３は、クランク軸の同一角度で第２パルスＮＥ２、そして第１パルスＮＥ１の順に常にＣＰＵ５に供給される場合を示しており、ＣＰＵ５では第２パルスＮＥ２の入力に応答してステップＳ６２で第２パルスフラグＦＰ２が１にセットされ、ステップＳ６４でキャプチャ値ＮＥ２ＣＡＰに現在時刻が記憶される。第１パルスＮＥ１の入力に応答してステップＳ３１で第１パルスフラグＦＰ１が１にセットされ、ステップＳ３２でキャプチャ値ＮＥ１ＣＡＰに現在時刻が記憶され、更に、ステップＳ３９で第２パルスフラグＦＰ２は０にリセットされる。また、キャプチャ値ＮＥ１ＣＡＰ，ＮＥ２ＣＡＰの差の絶対値ＤＣＡＰがステップＳ４０で算出される。第２パルスＮＥ２及び第１パルスＮＥ１がその順に交互に生成されている場合にはステップＳ４１ではＤＣＡＰが所定値ＤＣＡＰＤＡＴ以下と判別されるので、ステップＳ４４で第１パルスフラグＦＰ１が０にリセットされるので、図１３のＦＰ１に示すように結果として０のままである。
【００３５】
図１３において凸部が欠落した部分のため第１パルスＮＥ１が生成しない期間には、第２パルスフラグＦＰ２が１のままとなり、ＣＰＵ５では第２パルスＮＥ２の入力に応答してステップＳ６３で第２パルスカウント値ＣＮＴＰ２に＃１が加算される。第２パルスカウント値ＣＮＴＰ２が＃２になった場合には、その第１パルスＮＥ１が生成しない期間が終了して第１パルスＮＥ１が生成すると、ステップＳ４１ではＤＣＡＰが所定値ＤＣＡＰＤＡＴ以下と判別されてもステップＳ４５ではＣＮＴＰ２＝＃２と判別されるので、ステップＳ４２でカウント値ＣＮＴＰ２はリセットされ、ステップＳ３８でカウント値ＦＩＳＴＧにクランク軸の基準位置を示す＃０が設定される。
【００３６】
図１４は、クランク軸の同一角度で第１パルスＮＥ１及び第２パルスＮＥ２がＣＰＵ５に供給される順が一定でない場合の一例を示している。この例では、図１３の場合と同様に、凸部が欠落した部分のため第１パルスＮＥ１が生成しない期間には、第２パルスフラグＦＰ２が１のままとなり、ＣＰＵ５では第２パルスＮＥ２の入力に応答してステップＳ６３で第２パルスカウント値ＣＮＴＰ２に＃１が加算される。第２パルスカウント値ＣＮＴＰ２が＃２になった場合には、その第１パルスＮＥ１が生成しない期間が終了して第１パルスＮＥ１が生成すると、ステップＳ４１ではＤＣＡＰが所定値ＤＣＡＰＤＡＴ以下と判別されてもステップＳ４５ではＣＮＴＰ２＝＃２と判別されるので、ステップＳ４２でカウント値ＣＮＴＰ２はリセットされ、ステップＳ３８でカウント値ＦＩＳＴＧにクランク軸の基準位置を示す＃０が設定される。
【００３７】
図１５は、クランク軸の同一角度で第１パルスＮＥ１及び第２パルスＮＥ２がＣＰＵ５に供給される順が一定でない場合の他の例を示している。この例では、図１２の場合と同様に、凸部が欠落した部分のため第１パルスＮＥ１が生成しない期間にはその期間の最初の第２パルスＮＥ２の入力に応答してステップＳ６２で第２パルスフラグＦＰ２が１にセットされ、よって、２番目の第２パルスＮＥ２の入力に応答してステップＳ６３で第２パルスカウント値ＣＮＴＰ２は＃１となる。その期間の終了により第１パルスＮＥ１が供給されると、ステップＳ３９で第２パルスフラグＦＰ２は０にリセットされた後、ステップＳ４１ではＤＣＡＰが所定値ＤＣＡＰＤＡＴより大と判別される。よって、ステップＳ４２でカウント値ＣＮＴＰ２もリセットされ、ステップＳ３８でカウント値ＦＩＳＴＧにクランク軸の基準位置を示す＃０が設定される。
【００３８】
図１６は、クランク軸の同一角度で第１パルスＮＥ１、そして第２パルスＮＥ２の順に常にＣＰＵ５に供給される場合を示し、図１７は、クランク軸の同一角度で第２パルスＮＥ２、そして第１パルスＮＥ１の順に常にＣＰＵ５に供給される場合を示し、図１８及び図１９はクランク軸の同一角度で第１パルスＮＥ１及び第２パルスＮＥ２がＣＰＵ５に供給される順が一定でない場合を示している。これら図１６〜図１９の例では、第２パルスカウント値ＣＮＴＰ２が＃２に達せず、またＤＣＡＰが所定値ＤＣＡＰＤＡＴより大とならないので、カウント値ＦＩＳＴＧにクランク軸の基準位置を示す＃０が設定されない。
【００３９】
なお、所定値ＤＣＡＰＤＡＴの設定は図２０に示すように行なわれる。すなわち、ＣＰＵ５は、先ず、ＭＥ６Ｎを２で割り算してＤＣＡＰＸを求め（ステップＳ８１）、冷却水温ＴＷに対応する係数ＴＷＤＣＡＰを図示しないテーブルから検索し（ステップＳ８２）、ＤＣＡＰＸに係数ＴＷＤＣＡＰを乗算して所定値ＤＣＡＰＤＡＴを得る（ステップＳ８３）。なお、ＭＥ６Ｎは最新のパルス間隔である。
【００４０】
上記した実施例においては、ピックアップ３，３ａ，３ｂは磁気的に凸部を検出しているが、ピックアップによって光学的に凸部を検出することもできる。更に、被検出部としては凸部に限らず、回転体に埋め込んだ磁性材でも良いし、回転体外周に光学的に検出可能なマークを設けても良い。また、回転体の外周でなく外周近傍に被検出部を設けることもできる。
【００４１】
更に、上記した実施例においては、回転体の複数の凸部のうちの連続する２つの凸部が欠落しているが、１つの凸部の欠落であっても良いし、３以上の凸部の欠落であっても良い。
また、上記した実施例は、４気筒の４サイクルエンジンに本発明を適用したものであるが、６気筒の４サイクルエンジン等の多気筒エンジンに本発明を適用することができる。
【００４２】
【発明の効果】
以上の如く、本発明によれば、回転体の被検出部が通過する毎にピックアップから出力されるパルスを検出してそのパルスの間隔を測定し、回転体の欠落した被検出部に対して１８０度だけ前に位置する被検出部及びその前後の被検出部に対して生成されたパルスの間隔の割合を検出し、検出した割合に応じて欠落した被検出部によるパルスの間隔を推定するので、凸部等の被検出部の欠落のために欠落に対応するクランク軸の角度範囲でも所定の角度毎の間隔を特定することができる。
【００４３】
また、本発明によれば、回転体の被検出部が通過する毎に第１ピックアップから出力される第１パルスを検出してその第１パルスの生成時刻を測定し、その測定した生成時刻の今回値と前回値との差から第１パルスの間隔を検出し、第１ピックアップとは回転体の外周近傍近傍に１８０度の角度差をもって配置された第２ピックアップから出力される第２パルスを検出してその第２パルスの生成時刻を測定し、欠落した被検出部の後の最初の被検出部に対して第１ピックアップから生成された第１パルスを検出したときには第２パルスの生成時刻を用いて欠落した被検出部による第１パルスの間隔を推定するので、凸部等の被検出部の欠落のために欠落に対応するクランク軸の角度範囲でも所定の角度毎の間隔を特定することができる。
【００４４】
よって、本発明によるクランク角検出装置を用いれば、被検出部の欠落に対応する角度範囲においても燃料噴射タイミングや点火タイミング等のエンジン制御タイミングを正確に得ることができる。
【図面の簡単な説明】
【図１】本発明の実施例を示すブロック図である。
【図２】波形整形されたパルスを示す図である。
【図３】パルス間隔検出動作を示すフローチャートである。
【図４】図３のパルス間隔検出動作の続き部分を示すフローチャートである。
【図５】点火時期制御動作を示すフローチャートである。
【図６】本発明の実施例を示すブロック図である。
【図７】波形整形された第１及び第パルスを示す図である。
【図８】ＮＥ１割り込み動作を示すフローチャートである。
【図９】図８のＮＥ１割り込み動作の続き部分を示すフローチャートである。
【図１０】ＮＥ２割り込み動作を示すフローチャートである。
【図１１】図１０のＮＥ２割り込み動作の続き部分を示すフローチャートである。
【図１２】図６の装置の動作例をＮＥ１、ＮＥ２、ＦＰ１、ＦＰ２及びＣＮＴＰ２の関係によって示す図である。
【図１３】図６の装置の動作例をＮＥ１、ＮＥ２、ＦＰ１、ＦＰ２及びＣＮＴＰ２の関係によって示す図である。
【図１４】図６の装置の動作例をＮＥ１、ＮＥ２、ＦＰ１、ＦＰ２及びＣＮＴＰ２の関係によって示す図である。
【図１５】図６の装置の動作例をＮＥ１、ＮＥ２、ＦＰ１、ＦＰ２及びＣＮＴＰ２の関係によって示す図である。
【図１６】図６の装置の動作例をＮＥ１、ＮＥ２、ＦＰ１、ＦＰ２及びＣＮＴＰ２の関係によって示す図である。
【図１７】図６の装置の動作例をＮＥ１、ＮＥ２、ＦＰ１、ＦＰ２及びＣＮＴＰ２の関係によって示す図である。
【図１８】図６の装置の動作例をＮＥ１、ＮＥ２、ＦＰ１、ＦＰ２及びＣＮＴＰ２の関係によって示す図である。
【図１９】図６の装置の動作例をＮＥ１、ＮＥ２、ＦＰ１、ＦＰ２及びＣＮＴＰ２の関係によって示す図である。
【図２０】ＤＣＡＰＤＡＴの算出動作を示すフローチャートである。
【主要部分の符号の説明】
１  回転体
２  凸部
３，３ａ，３ｂ  ピックアップ
４  ＥＣＵ
５  ＣＰＵ
８，８ａ，８ｂ  入力インターフェース回路
１０，１１  出力インターフェース回路
【図１】
0003805874.tif 000002
【図２】
0003805874.tif 000003
【図３】
0003805874.tif 000004
【図４】
0003805874.tif 000005
【図５】
0003805874.tif 000006
【図６】
0003805874.tif 000007
【図７】
0003805874.tif 000008
【図８】
0003805874.tif 000009
【図９】
0003805874.tif 000010
【図１０】
0003805874.tif 000011
【図１１】
0003805874.tif 000012
【図１２】
0003805874.tif 000013
【図１３】
0003805874.tif 000014
【図１４】
0003805874.tif 000015
【図１５】
0003805874.tif 000016
【図１６】
0003805874.tif 000017
【図１７】
0003805874.tif 000018
【図１８】
0003805874.tif 000019
【図１９】
0003805874.tif 000020
【図２０】
0003805874.tif 000021