(57)【要約】【課題】カムセンサの信号により、気筒判別を行えるようにした内燃機関用電子制御装置を提供する。【解決手段】内燃機関に設けられるクランクセンサ４、吸気カムセンサ５、排気カムセンサ６の検出信号は、ＥＣＵ１のマイコン２に入力される。マイコン２は、クランクセンサ４と吸気カムセンサ５により気筒判別を行う。マイコン２は、クランクセンサ４の異常あるいはバッテリ電圧ＶＢの低下を判断すると、吸気カムセンサ５と排気カムセンサ６の信号から気筒判別を行う。マイコン２は、連続する４個の信号の立ち上がり／立ち下がりエッジの変化パターンを判別パターンとして設定し、この順に信号が入力されるのを検出した時点で気筒判別をするので、正確かつ迅速に判別をすることができる。【選択図】図１
2015094221.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のクランク軸の回転に応じて動作するカムの信号を出力する２個以上のセンサ（５、６、５ａ、５ｂ、６ａ、６ｂ）と、
前記クランク軸の回転に伴い出力される前記２個以上のセンサの信号の変化する順序をあらかじめ判別パターンとして記憶した制御回路（２）とを備え、
前記制御回路は、前記２個以上のセンサの信号を入力してその変化するパターンが前記判別パターンと一致する場合に気筒判別をする判別処理を実行することを特徴とする内燃機関用電子制御装置。
【請求項２】
請求項１に記載の内燃機関用電子制御装置において、
前記制御回路は、前記２個以上のセンサの信号の変化を入力する毎に前記判別パターンと比較して不一致の場合には前記判別処理を終了することを特徴とする内燃機関用電子制御装置。
【請求項３】
請求項１または２に記載の内燃機関用電子制御装置において、
前記クランク軸の回転位置を検出するクランクセンサ（４）を備え、
前記制御回路は、前記判別処理を前記クランクセンサの出力が正常でないときに実行し、前記クランクセンサが正常であるときにはこのセンサ出力と前記２個のセンサの一方の信号に基いて気筒判別をすることを特徴とする内燃機関用電子制御装置。
【請求項４】
請求項３に記載の内燃機関用電子制御装置において、
駆動用電源としてのバッテリ（８）の端子電圧を検出する電圧検出回路（９）を備え、
前記制御回路は、前記クランクセンサが正常である場合でも、前記電圧検出回路により検出される前記バッテリの端子電圧が所定電圧よりも低いときに前記判別処理を実行することを特徴とする内燃機関用電子制御装置。
【請求項５】
請求項１から４のいずれか一項に記載の内燃機関用電子制御装置において、
前記制御回路は、前記気筒判別をした後においても前記判別処理を実行してタイミングのずれを修正することを特徴とする内燃機関用電子制御装置。
【請求項６】
請求項１ないし５のいずれか一項に記載の内燃機関用電子制御装置において、
前記内燃機関が４気筒の場合に前記センサを２個備え、
前記制御回路は、前記判別パターンとして前記２個のセンサの信号の変化に対応したパターンが記憶され、前記２個のセンサの信号の変化を検出して前記判別処理を実行することを特徴とする内燃機関用電子制御装置。
【請求項７】
請求項６に記載の内燃機関用電子制御装置において、
前記判別パターンは、前記２個のセンサを第１センサ（５）および第２センサ（６）としたときに、第１センサ、第１センサ、第２センサ、第１センサの順に信号が変化するパターンを設定することを特徴とする内燃機関用電子制御装置。
【請求項８】
請求項７に記載の内燃機関用電子制御装置において、
前記制御回路は、前記第１センサおよび第２センサからの信号が、第１センサ、第２センサ、第１センサの順に信号が変化する場合に、その時点で前記判別パターンにしたがった前記判別処理を終了することを特徴とする内燃機関用電子制御装置。
【請求項９】
請求項１ないし５のいずれか一項に記載の内燃機関用電子制御装置において、
前記内燃機関が６気筒の場合に前記センサを３個以上備え、
前記制御回路は、前記判別パターンとして３個以上の前記センサのうちの少なくとも３個の信号に対応したパターンが記憶され、前記センサの信号の変化を検出して前記判別処理を実行することを特徴とする内燃機関用電子制御装置。
【請求項１０】
請求項９に記載の内燃機関用電子制御装置において、
前記センサ（５ａ、５ｂ、６ａ、６ｂ）を４個備え、
前記判別パターンは、前記４個のセンサを第１センサ（５ａ）、第２センサ（５ｂ）、第３センサ（６ａ）、第４センサ（６ｂ）としたときに、そのうちの第１センサ、第２センサ、第４センサ、第２センサの順に信号が変化するパターンを設定することを特徴とする内燃機関用電子制御装置。
【請求項１１】
請求項１０に記載の内燃機関用電子制御装置において、
前記制御回路は、前記第１センサから第４センサからの信号が、第１センサの後に、第３センサまたは第４センサの信号が変化する場合に、その時点で前記判別パターンにしたがった前記判別処理を終了することを特徴とする内燃機関用電子制御装置。
【請求項１２】
請求項１１に記載の内燃機関用電子制御装置において、
前記制御回路は、前記第１センサから第４センサからの信号が、第１センサの後の３回の信号のうち１回でも第３センサの信号が変化する場合に、その時点で前記判別パターンにしたがった前記判別処理を終了することを特徴とする内燃機関用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関用電子制御装置に関する。
【背景技術】
【０００２】
内燃機関においては、気筒判別をするための構成として、クランクセンサおよびＶＶＴ（variable valve timing; 可変バルブタイミング）センサとして設けられるカムセンサを利用するものがある。この場合、クランクセンサが異常を来した場合に、退避走行をするための制御としてＶＶＴセンサを利用することが行われている。
【０００３】
しかしながら、一般にカムセンサは、クランクセンサと異なり、歯数が少ない。したがって、カムセンサの信号の間隔から所定の比率で基準位置を特定する場合に、回転変動の影響を受けて検出精度が低くなる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２７７７４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記事情を考慮してなされたもので、その目的は、クランクセンサが故障などで正常な信号が入力されない状態となったときに、２個以上のカムセンサからの信号を検出することにより正確且つ迅速に気筒判別を行えるようにした内燃機関用電子制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載の内燃機関用電子制御装置は、内燃機関のクランク軸の回転に応じて動作するカムの信号を出力する２個以上のセンサと、前記クランク軸の回転に伴い出力される前記２個以上のセンサの信号の変化する順序をあらかじめ判別パターンとして記憶した制御回路とを備え、前記制御回路は、前記２個以上のセンサの信号を所定個数入力してその変化するパターンが前記判別パターンと一致する場合に気筒判別をする判別処理を実行することを特徴とする。
【０００７】
上記構成を採用することにより、内燃機関のクランク軸の回転に応じて動作する例えば２個のセンサからの信号は、クランク軸の回転に伴って所定の順序で立ち上がりあるいは立ち下がりの信号として出力される。このうち、これら２個のセンサの出力の特定のパターンを選択して判別パターンとすることで、その判別パターンと一致する信号が入力された時点がクランク軸の所定の回転角度に相当する信号として捉えることができる。これにより、制御回路により、実際に２個のセンサの信号を入力して判別パターンと比較して一致することを検出できれば気筒判別をすることができる。この場合、気筒判別をセンサからの信号が判別パターンと一致した時点で行えるので、短時間で且つ正確に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態を示すブロック構成図
【図２】処理プログラムのフローチャート
【図３】クランクセンサの動作状態判定処理のフローチャート
【図４】バッテリ電圧の判定処理のフローチャート
【図５】前提条件判定処理のフローチャート
【図６】カムセンサの出力信号と状態遷移を示すタイムチャート
【図７】第２実施形態を示すブロック構成図
【図８】処理プログラムのフローチャート
【図９】カムセンサの出力信号と状態遷移を示すタイムチャート
【発明を実施するための形態】
【０００９】
（第１実施形態）
以下、本発明の第１実施形態について、図１〜図６を参照して説明する。なお、この実施形態では、気筒判別を行うための構成を主体として示し、作用効果と直接関係がなく説明を省略する部分については、一般的な内燃機関を備えた車両が備える同様の構成を備えているものとする。
【００１０】
内燃機関用電子制御装置としてのＥＣＵ（electronic control unit）１は、制御回路としてのマイコン２およびマイコン２に入力する信号の波形を整形するための波形整形回路３を備えている。図示しない内燃機関であるエンジンには４つの気筒が設けられている。そして、クランク軸の回転を検出するクランクセンサ４が設けられる。ＶＶＴセンサであり、第１センサとしての吸気カムセンサ５、第２センサとしての排気カムセンサ６が設けられている。これらクランクセンサ４、吸気カムセンサ５、排気カムセンサ６の検出信号は波形整形回路３を介してマイコン２に入力される。
【００１１】
マイコン２は、クランクセンサ４と１個のＶＶＴセンサ（吸気センサ５もしくは排気センサ６）の信号に基いて気筒判別を行い、エンジン制御用の図示しないＥＣＵに信号を送信する。これにより、エンジンに設けられる複数の気筒の点火タイミングやバルブの開閉タイミングが制御される。ＥＣＵ７は、クランクセンサ４、吸気カムセンサ５および排気カムセンサ６の動作状態をチェックする。ＥＣＵ７は、いずれかのセンサ４〜６が異常を来たしている場合にはその状態を異常信号によりマイコン２に通知する。
【００１２】
マイコン２は、クランクセンサ４が異常を来たし、且つ吸気カムセンサ５および排気カムセンサ６が正常に動作する場合には、これらの信号に基づいて後述するように気筒判別を行う。また、このようにクランクセンサ４が異常を来たしている場合には、マイコン２により気筒判別の動作が実施可能な場合には、走行制御を行うＥＣＵによって退避走行の制御が行われる。
【００１３】
また、車両に設けられるバッテリ８は、バッテリ電圧検出回路９により端子電圧ＶＢがバッテリ電圧として検出され、マイコン２に検出信号が入力される。マイコン２は、バッテリ電圧ＶＢが所定レベルを下回る場合にも、後述するようにして、吸気カムセンサ５および排気カムセンサ６からの信号に基づいて気筒判別を行うように構成されている。これは、バッテリ電圧ＶＢの低下によってクランク軸の回転にむらが生じて気筒判別が難しくなる場合に本実施形態による気筒判別を行うものである。
【００１４】
次に、図２〜図６も参照して、マイコン２による吸気カムセンサ５および排気カムセンサ６の信号に基づく気筒判別の処理動作について説明する。図２〜図５はこの処理動作を実行するプログラムのフローチャートを示している。また、図６は、エンジンのクランク軸の回転に伴って吸気カムセンサ５および排気カムセンサ６が出力する信号の変化の状態を示している。
【００１５】
まず、図６を参照して、エンジンのクランク軸の回転に伴って吸気カムセンサ５および排気カムセンサ６が出力する信号の変化について説明する。図６（ａ）はＮＥ信号を示し、エンジンの回転数を示す信号である。この信号はクランクセンサ４により検出される３０°毎の信号である。第１気筒の上死点（ＴＤＣ;top dead center）を基準位置として、１８０°毎に第３気筒、第４気筒、第２気筒の各上死点（ＴＤＣ）となる。この信号に同期して吸気カムセンサ５の検出信号および排気カムセンサ６の検出信号が図６（ｃ）、（ｄ）に示すように変化する。これら吸気カムセンサ５および排気カムセンサ６の出力信号の変化に応じて図６（ｂ）に示すように状態遷移を規定している。また、クランクセンサ４の出力信号により第１気筒の上死点の角度が基準位置として検出され、図６（ｅ）に示すようにクランクカウンタの値が「０」にセットされる。クランクカウンタの値は３０°毎にカウントアップされクランク軸が２回転つまり「２３」（７２０°）になるまでカウントされる。そして、再び第１気筒の上死点の角度でクランクカウンタは「０」にセットされる。図６中（ｆ）はクランクカウンタの値の推移を図示したものである。
【００１６】
上記したクランクカウンタの値「０」〜「２３」の間に、吸気カムセンサ５および排気カムセンサ６の信号変化として、次のような第１〜第４の一連のパターンがあり、これは、他の部分では現れないので、この一連のパターンを判別パターンとして設定することができる。
【００１７】
第１パターン（Ｐ１）    ：吸気カムセンサ５の信号の立ち上がりエッジ
：クランクカウンタ「０」
第２パターン（Ｐ２）    ：吸気カムセンサ５の信号の立ち下がりエッジ
：クランクカウンタ「２」
第３パターン（Ｐ３）    ：排気カムセンサ６の信号の立ち上がりエッジ
：クランクカウンタ「５」
第４パターン（Ｐ４）    ：吸気カムセンサ５の信号の立ち上がりエッジ
：クランクカウンタ「８」
【００１８】
上記の一連のパターン（Ｐ１）〜（Ｐ４）を判別パターンとして設定することで、第４パターン（Ｐ４）を検出したタイミングでクランクカウンタ「８」の回転状態を特定することができ、気筒判別を行うことができる。この場合、例えば、吸気カムセンサ５の信号の立ち上がりエッジ（エッジ信号）は、クランク軸が２回転する間に３回発生するが、他のいずれの信号の立ち上がりにおいても第２パターン（Ｐ２）として吸気カムセンサ５の信号の立ち下がりエッジを検出することができない。
【００１９】
例えば、吸気カムセンサ５の２回目の信号の立ち上がりエッジは、上記の第４パターン（Ｐ４）に対応しているが、この時点を第１パターン（Ｐ１）として検出した場合には、第２パターン（Ｐ２）が検出される前に排気カムセンサ６の信号の立ち下がりエッジが検出されてしまう。また、吸気カムセンサ５の３回目の信号の立ち上がりエッジ（Ｑ１）を、第１パターン（Ｐ１）として検出した場合には、第２パターンが検出される前に排気カムセンサ６の信号の立ち下がりエッジ（Ｑ２）が検出されるため、これも判別パターンと異なる。
【００２０】
判別パターンの検出処理に際しては、第１パターン（Ｐ１）〜第４パターン（Ｐ４）に至るまでの各状態を次のように設定している。第１パターン（Ｐ１）が検出される前の状態は「ＥＮＤ」、検出後は「ＲＥＡＤＹ」（Ｒ）である。第２パターン（Ｐ２）が検出されると「ＣＨＥＣＫ１」（Ｃ１）、第３パターン（Ｐ３）が検出されると「ＣＨＥＣＫ２」（Ｃ２）である。そして、最後に第４パターン（Ｐ４）が検出されると「ＥＮＤ」に戻る。以上の状態が順次検出されて第４パターン（Ｐ４）が検出された時点で判別パターンと一致した検出が行われたこととなり、この時点で気筒判別が可能となる。
【００２１】
次に、図２〜図５を参照して、クランクセンサ４が故障あるいは異常を来した場合や、バッテリ電圧ＶＢが低下して通常の制御による気筒判別が出来ない状態となった場合の制御について説明する。この場合には、通常のエンジン制御が難しくなるので、マイコン２は、以下に説明する吸気カムセンサ５および排気カムセンサ６の信号変化を検出することにより気筒判別が行えるか否かを判断する。そして、気筒判別が行える場合には、マイコン２は、判別パターンの検出により気筒判別を行って退避走行の制御を行う。
【００２２】
マイコン２は、図２〜図５に示されるフローチャートのプログラムを、吸気カムセンサ５あるいは排気カムセンサ６のいずれかから入力信号が変化してエッジが検出される毎に実行する。つまり、クランクセンサ４が故障したり異常となったりする場合に備えて、正常に動作している時においても実行するプログラムである。
【００２３】
マイコン２は、まず、図２のプログラムを開始すると、クランクセンサ４が異常であるか否かを判断する（Ａ１）。クランクセンサ４はＥＣＵ７によって動作状態がチェックされており、故障などで異常な状態である場合にはマイコン２に異常信号が入力されている。マイコン２はＥＣＵ７からの信号に基いてクランクセンサ４の動作状態を判断する。そして、クランクセンサ４の動作状態に異常がなく、正常フラグがセットされている場合（Ａ１でＮＯ）には、続いてバッテリ電圧ＶＢが異常であるか否かを判断する（Ａ２）。バッテリ８はバッテリ電圧検出回路９によってバッテリ電圧ＶＢが検出されており、検出されたバッテリ電圧ＶＢの値がマイコン２に入力される。マイコン２はバッテリ電圧ＶＢの信号に基いてバッテリ８が正常状態であるか否かを判断する。そして、バッテリ８の状態に異常がなく、正常フラグがセットされている場合（Ａ２でＮＯ）には、プログラムを終了する。
【００２４】
次に、マイコン２によるクランクセンサ４の動作状態の判定（Ａ１）およびバッテリ８の状態判定（Ａ２）について具体的に説明する。マイコン２は、図３に示すプログラムを別途適宜のタイミングあるいは時間間隔で実行している。まず、マイコン２は、クランクセンサ４の動作状態が正常であるか否かをＥＣＵ７からの信号に基づいて判断する（Ｂ１）。マイコン２は、クランクセンサ４が正常である場合（Ｂ２でＹＥＳ）には、クランクセンサの正常フラグをセットし（Ｂ３）、正常でない場合（Ｂ２でＮＯ）にはクランクセンサの異常フラグをセットし（Ｂ４）、プログラムを終了する。
【００２５】
一方、バッテリ８の電圧の判定では、マイコン２は、図４に示すプログラムを別途適宜のタイミングあるいは時間間隔で実行している。まず、マイコン２は、バッテリ電圧検出回路９からの検出信号を入力しバッテリ電圧ＶＢを検出する（Ｃ１）。マイコン２は、バッテリ電圧ＶＢが動作が確保できるための比較基準電圧ＶＲを超えているか否かを判断する（Ｃ２）。マイコン２は、ステップＣ２で、ＹＥＳの場合つまり正常である場合にはバッテリ電圧の正常フラグをセットする（Ｃ３）。また、マイコン２は、ステップＣ２で、ＮＯの場合つまり正常でない場合にはバッテリ電圧の異常フラグをセットして（Ｃ４）、プログラムを終了する。
【００２６】
次に、上記した図２の処理動作のプログラムにおいて、マイコン２は、ステップＡ１あるいはステップＡ２のいずれかでＹＥＳの場合には、吸気カムセンサ５および排気カムセンサ６による気筒判別の処理に移行する。すなわち、クランクセンサ４が異常であることを示す異常フラグがセットされている場合、あるいはバッテリ電圧が異常である異常フラグがセットされている場合である。
【００２７】
この場合、２個のカムセンサ５、６による気筒判別を行う前提条件として、次の判定を行う。すなわち、マイコン２は、前提条件が成立しているか否かを判断する（Ａ３）。ここでは、異常フラグが発生する前に図５に示す前提条件の判定処理を行った結果に基いて判断する。
【００２８】
マイコン２は、図５のプログラムを別途適宜のタイミングあるいは時間間隔で実行している。まず、マイコン２は、吸気カムセンサ５および排気カムセンサ６の初期位置の学習が完了しているかを判断する（Ｄ１、Ｄ２）。マイコン２は、学習が完了している場合（Ｄ１およびＤ２でいずれもＹＥＳ）には、続いて、吸気カムセンサ５および排気カムセンサ６の検出信号のエッジ入力の順序関係が正常パターンとなっているか否かを判断する（Ｄ３）。マイコン２は、正常パターンとなっている場合（Ｄ３でＹＥＳ）には、前提条件成立を記憶する（Ｄ４）。また、マイコン２は、上記したステップＤ１〜Ｄ３のいずれかにおいてＮＯと判断した場合には、前提条件不成立を記憶してプログラムを終了する。
【００２９】
マイコン２は、上記した処理をあらかじめ実行した結果、前提条件不成立の記憶状態である場合には、図２のステップＡ３でＮＯと判断してクランクカウンタを未確定にしてプログラムを終了する。また、マイコン２は、前提条件成立の記憶状態である場合には、吸気カムセンサ５および排気カムセンサ６による気筒判別の処理に移行する。
【００３０】
この処理では、マイコン２は、吸気カムセンサ５および排気カムセンサ６からの信号変化を示すエッジ信号の入力により、図２の気筒判別の処理プログラムを実行する。マイコン２は、ステップＡ５〜Ａ９を経て、現在の状態が「ＲＥＡＤＹ」、「ＣＨＥＣＫ１」、「ＣＨＥＣＫ２」、「ＥＲＲＯＲ」、「ＥＮＤ」のうちのいずれの状態であるかを判断する。これは、吸気カムセンサ５および排気カムセンサ６のそれぞれから入力される信号の立ち上がりエッジおよび立ち下がりエッジの特徴的なパターンを前述したように判別パターンとして設定し、これに対応する状態の遷移を順次判定するためのものである。
【００３１】
図６は、吸気カムセンサ５および排気カムセンサ６からの信号の変化に対する各部の状態を示すものである。クランク軸が２回転すなわち７２０°回転する間において、上記した第１パターン（Ｐ１）〜第４パターン（Ｐ４）の信号変化が生じた時点で、クランクカウンタ値が「８」となる関係を利用して、これを判別パターンとして設定するものである。つまり、吸気カムセンサ５および排気カムセンサ６が出力する信号の変化が上記した第１パターン（Ｐ１）〜第４パターン（Ｐ４）の一連のパターンからなる判別パターンであることを検出して気筒判別を行うのである。
【００３２】
このため、第１パターン（Ｐ１）から第４パターン（Ｐ４）に至る状態の推移を図２のステップＡ５以下のフローで判定していく。そして、「ＥＮＤ」状態から判別パターンの検出を開始し、第１パターン（Ｐ１）が検出されると、「ＲＥＡＤＹ」（図６（ｂ）中「Ｒ」で記載の区間）状態に遷移する。次に、他の信号変化が検出されることなく（Ｐ２）が検出されると「ＣＨＥＣＫ１」（図６（ｂ）中「Ｃ１」で記載の区間）状態に遷移する。さらに、他の信号変化が検出されることなく（Ｐ３）が検出されると「ＣＨＥＣＫ２」（図６（ｂ）中「Ｃ２」で記載の区間）状態に遷移する。この後、他の信号変化が検出されることなく（Ｐ４）が検出されると「ＥＮＤ」状態に遷移して気筒判別をする。
【００３３】
上記の状態遷移を検出する処理を説明するにあたり、現在が「ＥＮＤ」状態にあることを前提とする。図２において、マイコン２は、前述の状態（ステップＡ１〜Ａ３を経てステップＡ５に進んだ状態）から、ステップＡ５〜Ａ９を経て、Ａ９でＹＥＳと判断すると入力された信号が吸気カムセンサ５の立ち上がりエッジを示す信号であるか否かを判断する（Ａ１０）。マイコン２は、吸気カムセンサ５から立ち上がりエッジを示す信号が入力されるとステップＡ１０でＹＥＳと判断し、状態を「ＲＥＡＤＹ」に遷移させる（Ａ１１）。また、マイコン２は、それ以外の信号が入力される場合には、ＮＯと判断してプログラムを終了し、以下、上記のステップを繰り返し実行し、吸気カムセンサ５から立ち上がりエッジを示す信号が入力されるのを待機する。
【００３４】
この後、マイコン２は、吸気カムセンサ５あるいは排気カムセンサ６のいずれかからのエッジ信号の検出によりプログラムを実行する。そして、マイコン２は、現在の状態が「ＲＥＡＤＹ」状態にあることから、ステップＡ５でＹＥＳと判断して入力が吸気カム５の立ち下がりエッジを示す信号であるか否かを判断する（Ａ１２）。マイコン２は、ステップＡ１２でＹＥＳの場合（第２パターン（Ｐ２））には状態を「ＣＨＥＣＫ１」状態に遷移させる（Ａ１３）。また、マイコン２は、ステップＡ１２でＮＯの場合には状態を「ＥＲＲＯＲ」状態に遷移させ（Ａ１４）、プログラムを終了する。
【００３５】
マイコン２は、上記と同様にして、プログラムを実行すると、ステップＡ１（またはＡ２）、Ａ３、Ａ５、Ａ６と進んでここでＹＥＳと判断する。マイコン２は、入力された信号が排気カムセンサ６からの立ち上がりエッジを示す信号であるか否かを判断し（Ａ１５）、ＹＥＳの場合（第３パターン（Ｐ３））には状態を「ＣＨＥＣＫ２」に遷移させ（Ａ１６）、ＮＯの場合には状態を「ＥＲＲＯＲ」に遷移させて（Ａ１７）プログラムを終了する。
【００３６】
次に、マイコン２は、上記と同様にしてプログラムを実行すると、ステップＡ１（またはＡ２）、Ａ３、Ａ５、Ａ６、Ａ７と進んでここでＹＥＳと判断する。マイコン２は、入力された信号が吸気カムセンサ５からの立ち上がりエッジを示す信号であるか否かを判断し（Ａ１８）、ＹＥＳの場合（第４パターン（Ｐ４））には、判別パターンに一致した場合であるとしてこのときのクランクカウンタの値を「８」にセットし（Ａ１９）、気筒判別を行う。この後、マイコン２は、状態を「ＥＮＤ」に遷移させて（Ａ２０）からプログラムを終了する。一方、マイコン２は、入力された信号が吸気カムセンサ５からの立ち上がりエッジを示す信号ではなかった場合には、ステップＡ１８でＮＯと判断して状態を「ＥＲＲＯＲ」に遷移させて（Ａ２１）プログラムを終了する。
【００３７】
これにより、マイコン２により、第１パターン（Ｐ１）から第４パターン（Ｐ４）に至る一連の判別パターンが検出されることで、吸気カムセンサ５および排気カムセンサ６の信号変化から気筒判別を行うことができる。
【００３８】
上記の処理において、図６に示す吸気カムセンサ５の立ち上がりエッジを示す２個目の信号としてＱ１で示すパターンが入力された場合について説明する。この場合には、マイコン２は、上述したステップＡ１０でＹＥＳと判断して状態を「ＲＥＡＤＹ」に遷移させる（Ａ１１）。この後、排気カムセンサ６の立ち下がりエッジを示す信号Ｑ２が入力された時点で、マイコン２は、プログラムを実行してステップＡ５をＹＥＳで進んでステップＡ１２に進むと、ここでＮＯと判断して状態を「ＥＲＲＯＲ」に遷移させる。
【００３９】
マイコン２は、この後次の信号が入力された時点でプログラムを実行し、現在の状態が「ＥＲＲＯＲ」であることから、ステップＡ８でＹＥＳと判断して状態を「ＥＮＤ」に遷移させてプログラムを終了し、判別パターンの処理状態から脱するようになる。したがって、この場合には、Ｑ１が入力された時点からＱ３が入力された時点までが判別パターンの検出動作を実行する時間となる。マイコン２は、この後、状態が「ＥＮＤ」であるから、信号が入力されてプログラムを実行すると、入力された信号が吸気カムセンサの立ち上がりエッジを示す信号である場合にステップＡ９でＹＥＳと判断して判別パターンとの照合処理に移行するが、それ以外の信号である場合にはＮＯと判断してプログラムを終了する。
【００４０】
また、気筒判別が可能となった以降において、図６に示しているように、マイコン２により上記のような判別パターンの検出（（Ｐ１）〜（Ｐ４））を繰り返し行うことができる。クランク軸の回転変動や速度の変動などに起因してクランク軸の回転に伴うクランクカウンタの値が変動することがあり、サイクルを繰り返すうちに誤差が生ずる場合がある。このような場合でも、繰り返し判別パターンの検出を行うことで、サイクル毎に正確なカウンタ値に修正することができ、より正確な制御動作を行うことができるようになる。
【００４１】
このような第１実施形態によれば、マイコン２により、吸気カムセンサ５および排気カムセンサ６の信号変化を検出することで判別パターンに一致することを検出した時点で気筒判別を行うようにした。これにより、４気筒のエンジンを搭載する車両において、クランクセンサ４の検出動作に異常を来たしたり、クランクセンサ４へのノイズの影響やバッテリ電圧低下などで正常に信号が入力されなくなったりした場合でも、気筒判別を迅速且つ正確に行える。この結果、退避走行時の制御を精度良く実施することができる。
【００４２】
また、退避走行時の制御では、繰り返し判別パターンの検出を行うことで、クランクカウンタの値のずれを修正することができ、マイコン２による正確な制御動作を実行することができる。
【００４３】
また、マイコン２により、判別パターンと一致しないときにはその時点で判別動作を終了して次の判別パターンの判定動作に移行するので、サイクル途中で非判別パターンの検出動作を長引かせることなく、迅速に次の判別動作に移行することができる。
【００４４】
上記実施形態では、判別パターンを第１パターンＰ１〜第４パターンＰ４を設定して、これらを順次検出したときに気筒判別するようにしたが、これに限らず、判別パターンは種々のパターンを設定することができる。また、立ち上がりエッジあるいは立ち下がりエッジのタイミングが異なる場合には、これに応じて適宜判別パターンを設定することができる。判別パターンは、４つのパターンに設定することに限らず、これよりも多いパターンを判別パターンとしても良いし、判別可能であればこれよりも少ないパターンを判別パターンとして設定することができる。
【００４５】
吸気カムセンサ５と排気カムセンサ６の検出信号に基づいて判別パターンを設定したが、これ以外にも、吸気カムセンサを複数設ける場合には複数の吸気カムセンサの検出信号で判別パターンを設定しても良い。同様に、複数の排気カムセンサを設ける場合には複数の排気カムセンサの検出信号で判別パターンを設定しても良い。さらに、３個以上のカムセンサの信号により判別パターンを設定することもできる。
【００４６】
判別パターンが検出された時点で、クランクカウンタの値を設定することで気筒判別を行うようにしたが、直接気筒判別を行っても良い。
ＥＣＵ７あるいはバッテリ電圧検出回路９は、別途設ける構成として示したが、これに限らず、いずれか一方あるいは両方共にＥＣＵ１内に設けても良い。
【００４７】
（第２実施形態）
図７から図９は、第２実施形態を示すもので、第１実施形態とは内燃機関が６気筒の構成であるところである。以下、第１実施形態と異なる部分について説明する。
【００４８】
図７において、この構成では、ＶＶＴ制御を行うためのＶＶＴセンサである吸気カムセンサは、第１センサとしてＲ吸気カムセンサ５ａ、第２センサとしてＬ吸気カムセンサ５ｂを備える。また、排気カムセンサは、第３センサとしてＲ排気カムセンサ６ａ、第４センサとしてＬ排気カムセンサ６ｂを備える。
【００４９】
他の構成は第１実施形態とほぼ同じである。マイコン２は、気筒判別を行うためのプログラムとして図８に示すフローチャートに従った動作を行う。また、そのマイコン２により実行されるプログラムは、エンジンの各気筒の上死点ＴＤＣのタイミングと４つのカムセンサ５ａ、５ｂ、６ａ、６ｂが検出する信号の変化に応じて設定される判別パターンを参照して行われる。判別パターンは、図９に示すように、エンジンのクランク軸の回転に伴って４つのカムセンサ５ａ、５ｂ、６ａ、６ｂが出力する信号の変化に基いて設定されている。
【００５０】
まず、図９を参照して、エンジンのクランク軸の回転に伴って４つのカムセンサ５ａ、５ｂ、６ａ、６ｂが出力する信号の変化について説明する。図９（ａ）のＮＥ信号はエンジンの回転数を示す信号であり、クランクセンサ４により検出される３０°毎の信号である。第１気筒の上死点（ＴＤＣ;top dead center）を基準位置として、１２０°毎に第５気筒、第３気筒、第６気筒、第２気筒、第４気筒の上死点（ＴＤＣ）となる。
【００５１】
この信号に同期してＲ吸気カムセンサ５ａの検出信号、Ｌ吸気カムセンサ５ｂの検出信号、Ｒ排気カムセンサ６ａの検出信号およびＬ排気カムセンサ６ｂの検出信号が、それぞれ図９（ｃ）〜（ｆ）に示すように変化する。これら４個のカムセンサ５ａ、５ｂ、６ａ、６ｂの出力信号の変化に応じて図９（ｂ）に示すように状態遷移を規定している。
【００５２】
また、クランクセンサ４の出力信号に基いて、第１気筒の上死点の角度が基準位置として検出され、クランクカウンタの値（ｇ）が「０」にセットされる。クランクカウンタの値は３０°毎にカウントアップされクランク軸が２回転つまり「２３」（７２０°）になるまでカウントされる。そして、再び第１気筒の上死点の角度でクランクカウンタは「０」にセットされる。図９（ｈ）はクランクカウンタの値の推移を図示したものである。
【００５３】
上記したクランクカウンタの値「０」〜「２３」の間に、４個のカムセンサ５ａ、５ｂ、６ａ、６ｂの信号変化として、次のような第１パターン（Ｓ１）〜第４パターン（Ｓ４）の一連のパターンがある。
【００５４】
第１パターン（Ｓ１）    ：Ｒ吸気カムセンサ５ａの信号の立ち下がりエッジ
：クランクカウンタ「６」
第２パターン（Ｓ２）    ：Ｌ吸気カムセンサ５ｂの信号の立ち上がりエッジ
：クランクカウンタ「８」
第３パターン（Ｓ３）    ：Ｌ排気カムセンサ６ｂの信号の立ち下がりエッジ
：クランクカウンタ「９」
第４パターン（Ｓ４）    ：Ｌ吸気カムセンサ５ｂの信号の立ち下がりエッジ
：クランクカウンタ「１０」
【００５５】
この一連のパターンの信号変化は、他の部分では現れないので、この一連のパターンを判別パターンとして設定することができる。上記の第１パターン（Ｓ１）〜第４パターン（Ｓ４）を判別パターンとして設定することで、第４パターン（Ｓ４）を検出したタイミングでクランクカウンタ「１０」の回転状態を特定することができ、気筒判別を行うことができる。
【００５６】
この場合、例えば、Ｒ吸気カムセンサ５ａの信号の立ち上がりエッジは、クランク軸が２回転する間に３回発生する。しかし、最初の立ち上がりエッジ（Ｓ１）以外の他のいずれの立ち上がりエッジにおいても第４パターン（Ｓ４）まで経過する間に異なるパターンの信号が入力されるので、最初の立ち上がりエッジ（Ｓ１）からの一連のパターンを他のパターンと識別できる判別パターンとして設定することができる。
【００５７】
例えば、Ｒ吸気カムセンサ５の２回目の立ち下がりエッジ（Ｔ１）を第１パターン（Ｓ１）として検出した場合には、続いて第２パターン（Ｓ２）が検出されず、Ｒ排気カムセンサ６ａの立ち上がりエッジ（Ｔ２）あるいはＬ排気カムセンサ６ｂの立ち上がりエッジ（Ｔ３）が検出されてしまう。これにより、判別パターンと異なる信号のエッジが検出されたことが判定される。
【００５８】
また、Ｒ吸気カムセンサ５ａの３回目の立ち下がりエッジ（Ｒ１）を、第１パターン（Ｓ１）として検出した場合には、ほぼ同時にＬ吸気カムセンサ５ｂの立ち上がりエッジ（Ｒ２）が検出されるのでこれが第２パターン（Ｓ２）として判断される。しかし、この後、Ｒ排気カムセンサ６ａの立ち上がりエッジ（Ｒ３）とＬ排気カムセンサ６ｂの立ち下がりエッジ（Ｒ４）が検出される。先にＲ排気カムセンサ６ａの立ち上がりエッジ（Ｒ３）が検出された場合には、この時点で判別パターンと異なる状態が判定される。また、先にＬ排気カムセンサ６ｂの立ち下がりエッジ（Ｒ４）が検出された場合には、これが第３パターン（Ｓ３）として判定されるが、直後にＲ排気カムセンサ６ａの立ち上がりエッジ（Ｒ３）が検出さることで判別パターンと異なることが判定される。
【００５９】
判別パターンの検出処理に際しては、第１パターン（Ｓ１）〜第４パターン（Ｓ４）に至るまでの各状態を次のように設定している。第１パターン（Ｓ１）が検出される前の状態は「ＥＮＤ」、検出後は「ＲＥＡＤＹ」（Ｒ）である。第２パターン（Ｓ２）が検出されると「ＣＨＥＣＫ１」（Ｃ１）、第３パターン（Ｓ３）が検出されると「ＣＨＥＣＫ２」（Ｃ２）である。そして、最後に第４パターン（Ｓ４）が検出されると「ＥＮＤ」に戻る。以上の状態が順次検出されて第４パターン（Ｓ４）が検出された時点で判別パターンと一致した検出が行われたこととなり、この時点で気筒判別が可能となる。
【００６０】
次に、図８を参照して、クランクセンサ４が故障あるいは異常を来したり、バッテリ電圧ＶＢが低下したりするなどで、通常の制御による気筒判別が出来ない状態となった場合の制御について説明する。この場合には、第１実施形態と同様に、通常のエンジン制御が難しくなるので、マイコン２は、以下に説明するように、４個のカムセンサ５ａ、５ｂ、６ａ、６ｂのうち判別パターンに関係するＲ吸気カムセンサ５ａ、Ｌ吸気カムセンサ５ｂおよびＬ排気カムセンサ６ｂの信号変化を検出することにより気筒判別が行えるか否かを判断し、退避走行の制御を行えるようにクランクカウンタを制御する。
【００６１】
マイコン２は、図８に示されるフローチャートのプログラムを、４個のカムセンサ５ａ、５ｂ、６ａ、６ｂのいずれかからの信号が変化する毎に実行する。つまり、クランクセンサ４が故障したりバッテリ電圧ＶＢの低下により異常となったりする場合に備えて、正常に動作している時においても実行するプログラムである。
【００６２】
マイコン２は、まず、図８のプログラムを開始すると、クランクセンサ４が異常であるか否かを判断する（Ｅ１）。クランクセンサ４はＥＣＵ７によって動作状態がチェックされており、故障などで異常な状態である場合には第１実施形態と同様にしてマイコン２に異常信号が入力されている。マイコン２はＥＣＵ７からの信号に基いてクランクセンサ４の動作状態を判断する。そして、マイコン２は、クランクセンサ４の動作状態に異常がなく、正常フラグがセットされている場合（Ｅ１でＮＯ）には、続いてバッテリ電圧ＶＢが異常であるか否かを判断する（Ｅ２）。第１実施形態と同様にして、バッテリ８はバッテリ電圧検出回路９によってバッテリ電圧ＶＢが検出されており、検出されたバッテリ電圧ＶＢの値がマイコン２に入力される。マイコン２はバッテリ電圧ＶＢの信号に基いてバッテリ８が正常状態であるか否かを判断する。そして、マイコン２は、バッテリ８の状態に異常がなく、正常フラグがセットされている場合（Ｅ２でＮＯ）には、プログラムを終了する。
【００６３】
次に、上記した図２の処理動作のプログラムにおいて、マイコン２は、ステップＥ１あるいはＥ２でＹＥＳの場合には、４つのカムセンサ５ａ、５ｂ、６ａ、６ｂによる気筒判別の処理に移行する。すなわち、クランクセンサ４が異常であることを示す異常フラグがセットされている場合、あるいはバッテリ電圧が異常であることを示す異常フラグがセットされている場合に気筒判別の処理に移行する。この場合、４個のカムセンサ５ａ、５ｂ、６ａ、６ｂによる気筒判別を行う前提条件として、第１実施形態と同様に前提条件が成立しているか否かを判断する（Ｅ３）。
【００６４】
マイコン２は、前提条件不成立の記憶状態である場合には、ステップＥ３でＮＯと判断してクランクカウンタを未確定にしてプログラムを終了する。また、マイコン２は、前提条件成立の記憶状態である場合には、判別パターンを検出するための４個のカムセンサ５ａ、５ｂ、６ａ、６ｂによる気筒判別の処理に移行する。
【００６５】
マイコン２は、Ｅ５〜Ｅ９のステップを経て、現在の状態が「ＲＥＡＤＹ」、「ＣＨＥＣＫ１」、「ＣＨＥＣＫ２」、「ＥＲＲＯＲ」、「ＥＮＤ」のうちのいずれの状態であるかを判断する。これは、３個のカムセンサ５ａ、５ｂ、６ｂのそれぞれから入力される信号の立ち上がりエッジおよび立ち下がりエッジの特徴的なパターン（（Ｓ１）〜（Ｓ４））を前述したように判別パターンとして設定し、これに対応する状態の遷移を順次判定するためのものである。
【００６６】
クランク軸が２回転すなわち７２０°回転する間において、上記した第１パターン（Ｓ１）〜第４パターン（Ｓ４）の信号変化が生じた時点で、クランクカウンタ値が「１０」となる関係を利用して、これを判別パターンとして設定するものである。つまり、吸気カムセンサ５および排気カムセンサ６が出力する信号の変化が、上記した第１パターン（Ｓ１）〜第４パターン（Ｓ４）の判別パターンとなることを検出して気筒判別を行うのである。
【００６７】
このため、マイコン２は、第１パターン（Ｓ１）から第４パターン（Ｓ４）に至る状態の推移を図８のステップＥ５以下のフローで判定していく。そして、「ＥＮＤ」状態から判別パターンの検出を開始し、第１パターン（Ｅ１）が検出されると、「ＲＥＡＤＹ」（図９（ｂ）中「Ｒ」で記載の区間）状態に遷移する。次に、他の信号変化が検出されることなく第２パターン（Ｓ２）が検出されると「ＣＨＥＣＫ１」（図９（ｂ）中「Ｃ１」で記載の区間）状態に遷移する。さらに、他の信号変化が検出されることなく第３パターン（Ｓ３）が検出されると「ＣＨＥＣＫ２」（図９（ｂ）中「Ｃ２」で記載の区間）状態に遷移する。この後、他の信号変化が検出されることなく第４パターン（Ｓ４）が検出されると気筒判別する。
【００６８】
上記の状態遷移を検出する処理を説明するにあたり、現在が「ＥＮＤ」状態にあることを前提とする。図８において、マイコン２は、前述の状態（ステップＥ１〜Ｅ３を経てステップＥ５に進んだ状態）から、ステップＥ５〜Ｅ９を経て、ステップＥ９でＹＥＳと判断すると入力された信号がＲ吸気カムセンサ５ａの立ち下がりエッジを示す信号であるか否かを判断する（Ｅ１０）。マイコン２は、Ｒ吸気カムセンサ５ａから立ち下がりエッジを示す信号が入力されるとステップＥ１０で第１パターン（Ｓ１）であることからＹＥＳと判断し、状態を「ＲＥＡＤＹ」に遷移させる（Ｅ１１）。また、マイコン２は、それ以外の信号が入力される場合には、ステップＥ１０でＮＯと判断してプログラムを終了し、以下、信号が入力される毎に上記のステップを繰り返し実行し、吸気カムセンサ５ａから立ち下がりエッジを示す信号すなわち第１パターン（Ｓ１）の信号が入力されるのを待機する。
【００６９】
この後、マイコン２は、４個のカムセンサ５ａ、５ｂ、６ａ、６ｂのいずれかからエッジ信号が入力されてプログラムを実行すると、現在の状態が「ＲＥＡＤＹ」状態にあることから、ステップＥ５でＹＥＳと判断して入力が第２パターン（Ｓ２）に相当するＬ吸気カム５の立ち上がりエッジを示す信号であるか否かを判断する（Ｅ１２）。マイコン２は、ステップＥ１２でＹＥＳの場合（第２パターン（Ｓ２））には状態を「ＣＨＥＣＫ１」状態に遷移させ（Ｅ１３）、ＮＯの場合には状態を「ＥＲＲＯＲ」状態に遷移させ（Ｅ１４）、プログラムを終了する。
【００７０】
マイコン２は、上記と同様にして、４個のカムセンサ５ａ、５ｂ、６ａ、６ｂのいずれかからエッジ信号が入力されてプログラムを実行すると、ステップＥ１（またはＥ２）、Ｅ３、Ｅ５、Ｅ６と進んでここでＹＥＳと判断する。マイコン２は、入力された信号が第３パターン（Ｓ３）に相当するＬ排気カムセンサ６ｂからの立ち下がりエッジを示す信号であるか否かを判断する（Ｅ１５）。マイコン２は、ステップＥ１５で、ＹＥＳの場合（第３パターン（Ｓ３））には状態を「ＣＨＥＣＫ２」に遷移させ（Ｅ１６）、ＮＯの場合には状態を「ＥＲＲＯＲ」に遷移させて（Ｅ１７）プログラムを終了する。
【００７１】
次に、マイコン２は、上記と同様にしてプログラムを実行すると、ステップＥ１（またはＥ２）、Ｅ３、Ｅ５、Ｅ６、Ｅ７と進んでここでＹＥＳと判断する。マイコン２は、入力された信号が、第４パターン（Ｓ４）に相当するＬ吸気カムセンサ５ｂからの立ち下がりエッジを示す信号であるか否かを判断する（Ｅ１８）。マイコン２は、ステップＥ１８でＹＥＳの場合（第４パターン（Ｓ４））には、判別パターンに一致した場合であるとしてこのときのクランクカウンタの値を「１０」にセットし（Ｅ１９）、この後気筒判別を行う。この後、マイコン２は、状態を「ＥＮＤ」に遷移させて（Ｅ２０）からプログラムを終了する。一方、マイコン２は、入力されたエッジ信号がＬ吸気カムセンサ５ｂからの立ち下がりエッジを示す信号ではなかった場合には、ステップＥ１８でＮＯと判断して状態を「ＥＲＲＯＲ」に遷移させて（Ｅ２１）プログラムを終了する。
【００７２】
したがって、マイコン２により、第１パターン（Ｓ１）から第４パターン（Ｓ４）に至る一連の判別パターンを、Ｒ吸気カムセンサ５ａ、Ｌ吸気カムセンサ５ｂおよびＬ排気カムセンサ６ｂのエッジ信号から検出することができ、これによって気筒判別を行うことができる。
【００７３】
上記の処理において、図９に示すＲ吸気カムセンサ５ａの立ち下がりエッジを示す信号として図中（Ｔ１）で示すパターンが入力された場合について説明する。この場合には、マイコン２は、上述したステップＥ１０でＹＥＳと判断して状態を「ＲＥＡＤＹ」に遷移させる（Ｅ１１）。この後、Ｒ排気カムセンサ６ａの立ち上がりエッジを示す信号（Ｔ２）あるいはＬ排気カムセンサ６ｂの立ち上がりエッジを示す信号（Ｔ３）が入力された時点で、マイコン２は、プログラムを実行してステップＥ５をＹＥＳで進んでステップＥ１２に進むと、ここでＮＯと判断して状態を「ＥＲＲＯＲ」に遷移させる（Ｅ１４）。
【００７４】
マイコン２は、この後、殆ど同時に入力された他方の信号（（Ｔ３）または（Ｔ２））が入力された時点でプログラムを実行し、現在の状態が「ＥＲＲＯＲ」であることから、ステップＥ８でＹＥＳと判断して状態を「ＥＮＤ」に遷移させて（Ｅ２２）プログラムを終了し、判別パターンの処理状態から脱するようになる。したがって、この場合には、エッジ信号（Ｔ１）が入力された時点からエッジ信号（Ｔ２）または（Ｔ３）のうちの遅い方の信号が入力された時点までが判別パターンの検出動作を実行する時間となる。
【００７５】
マイコン２は、この後、状態が「ＥＮＤ」であるから、信号が入力されてプログラムを実行すると、入力された信号が第１パターン（Ｓ１）に相当するＲ吸気カムセンサ５ａの立ち下がりエッジを示す信号である場合に、ステップＥ１０でＹＥＳと判断して状態を「ＲＥＡＤＹ」に遷移させることで判別パターンとの照合処理に移行する。また、マイコン２は、第１パターン（Ｓ１）に相当する信号以外の信号である場合には、ステップＥ１０でＮＯと判断してプログラムを終了する。
【００７６】
同様に、上記の処理において、図９に示すＲ吸気カムセンサ５ａの立ち下がりエッジを示す二番目の信号（Ｒ１）が入力された場合について説明する。この場合には、殆ど同時にＬ吸気カムセンサ５ｂの立ち上がりエッジを示す信号（Ｒ２）が入力されている。各カムの進角状態によっては入力が前後することがある。以下に、信号（Ｒ１）、（Ｒ２）のいずれかが先に入力された場合の動作についてそれぞれ説明する。
【００７７】
（１）Ｒ吸気カムセンサ５ａの立ち下がりエッジを示す信号（Ｒ１）が先に検出された場合（図９（ｂ）の上段の遷移パターン）
マイコン２は、ステップＥ１０でＹＥＳと判断して状態を「ＲＥＡＤＹ」に遷移させる（Ｅ１１）。続いてＬ吸気カムセンサ５ｂの立ち上がりエッジを示す信号（Ｒ２）が検出されると、マイコン２は、ステップＥ１２でＹＥＳと判断して状態を「ＣＨＥＣＫ１」に遷移させる（Ｅ１３）。
【００７８】
この後、マイコン２は、Ｒ排気カムセンサ６ａの立ち上がりエッジを示す信号（Ｒ３）およびＬ排気カムセンサ６ｂの立ち下がりエッジを示す信号（Ｒ４）をほぼ同時に検出する。先にＲ排気カムセンサ６ａの立ち上がりエッジを示す信号（Ｒ３）を検出した場合には、マイコン２は、ステップＥ１５でＮＯと判断して状態を「ＥＲＲＯＲ」に遷移させる（Ｅ１７）。これにより、続いてＬ排気カムセンサ６ｂの立ち下がりエッジを示す信号（Ｒ４）を検出した時点で、マイコン２は、ステップＥ８でＹＥＳと判断して状態を「ＥＮＤ」に遷移させる（Ｅ２２）。
【００７９】
また、先にＬ排気カムセンサ６ｂの立ち下がりエッジを示す信号（Ｒ４）を検出した場合には、マイコン２は、ステップＥ１５でＹＥＳと判断して状態を「ＣＨＥＣＫ２」に遷移させる（Ｅ１６）。続いてＲ排気カムセンサ６ａの立ち上がりエッジを示す信号（Ｒ３）を検出すると、マイコン２は、ステップＥ１８でＮＯと判断して状態を「ＥＲＲＯＲ」に遷移させる（Ｅ２１）。これにより、続いて次の信号を検出した時点で、マイコン２は、ステップＥ８でＹＥＳと判断して状態を「ＥＮＤ」に遷移させる（Ｅ２２）。
【００８０】
（２）Ｌ吸気カムセンサ５ｂの立ち上がりエッジを示す信号（Ｒ２）が先に入力された場合（図９（ｂ）の下段の遷移パターン）
マイコン２は、この信号（Ｒ２）について判別パターンの第１パターン（Ｓ１）ではないことから、ステップＥ１０においＹＥＳとならず、「ＲＥＡＤＹ」状態に遷移することはない。そして、この直後にＲ吸気カムセンサ５ａの立ち下がりエッジを示す信号（Ｒ１）が検出されると、マイコン２は、ステップＥ１０でＹＥＳと判断して状態を「ＲＥＡＤＹ」に遷移させる（Ｅ１１）。この後、Ｒ排気カムセンサ６ａの立ち上がりエッジを示す信号（Ｒ３）またはＬ排気カムセンサ６ｂの立ち下がりエッジを示す信号（Ｒ４）が検出されると、いずれの場合においても判別パターンの第２パターン（Ｓ２）ではないことから、ステップＥ１２でＮＯと判断して状態を「ＥＲＲＯＲ」に遷移させる（Ｅ１４）。
【００８１】
以上のようにして、「ＥＮＤ」状態において、Ｒ吸気カムセンサ５ａの立ち下がりエッジを示す信号が検出される場合でも、判別パターンの第１パターン（Ｓ１）のタイミングの信号以外の場合には、続く信号が判別パターンに一致しなくなることで確実に判別パターンに対応した第１パターン（Ｓ１）〜第４パターン（Ｓ４）までが連続して検出される時点を判別することができる。
【００８２】
また、気筒判別が可能となった以降においても、第１実施形態と同様に、図９に示しているように、マイコン２により上記のような判別パターン（（Ｓ１）〜（Ｓ４））の検出を繰り返し行うことで、クランクカウンタの値がずれている場合でも、サイクル毎に正確なカウンタ値に修正することができ、より正確な制御動作を行うことができるようになる。
【００８３】
このような第２実施形態によれば、マイコン２により、４つのカムセンサのうちのＲ吸気カムセンサ５ａ、Ｌ吸気カムセンサ５ｂおよびＬ排気カムセンサ６ｂのエッジ信号を検出することで判別パターンに一致することを検出した時点で気筒判別を行うようにした。これにより、６気筒のエンジンを搭載する車両において、クランクセンサ４の検出動作に異常を来たしたり、ノイズの妨害やバッテリ電圧低下などで正常に信号が入力されなくなったりした場合でも、気筒判別を迅速且つ正確に行える。この結果、退避走行時の制御を精度良く実施することができる。
【００８４】
また、退避走行時の制御では、繰り返し判別パターン（（Ｓ１）〜（Ｓ４））の検出を行うことで、クランクカウンタの値のずれを修正することができ、マイコン２による正確な制御動作を実行することができる。
【００８５】
上記実施形態では、判別パターンを第１パターン（Ｓ１）〜第４パターン（Ｓ４）を設定して、これらを順次検出したときに気筒判別するようにしたが、これに限らず、判別パターンは種々のパターンを設定することができる。また、立ち上がりあるいは立ち下がりエッジを示す信号のタイミングが異なる場合には、これに応じて適宜判別パターンを設定することができる。判別パターンは、４つのパターンに設定することに限らず、これよりも多いパターンを判別パターンとしても良いし、判別可能であればこれよりも少ないパターンを判別パターンとして設定することができる。
【００８６】
なお、本発明は、上述した一実施形態のみに限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【符号の説明】
【００８７】
図面中、１はＥＣＵ（内燃機関用電子制御装置）、２はマイコン（制御回路）、４はクランクセンサ、５は吸気カムセンサ（第１センサ）、５ａはＲ吸気カムセンサ（第１センサ）、５ｂはＬ吸気カムセンサ（第２センサ）、６は排気カムセンサ（第２センサ）、６ａはＲ排気カムセンサ（第３センサ）、６ｂはＬ排気カムセンサ（第４センサ）、７はＥＣＵ、８はバッテリ、９はバッテリ電圧検出回路（電圧検出回路）である。
【図１】
2015094221.tif 000003
【図２】
2015094221.tif 000004
【図３】
2015094221.tif 000005
【図４】
2015094221.tif 000006
【図５】
2015094221.tif 000007
【図６】
2015094221.tif 000008
【図７】
2015094221.tif 000009
【図８】
2015094221.tif 000010
【図９】
2015094221.tif 000011