"エンジンの回転部と一体的に回転せしめられるシグナルプレート及び該シグナルプレートの外周に近接配置された検知器からなる一つ又は複数の回転角センサを備えた筒内噴射型エンジンの気筒判定装置であって、前記センサから得られる信号に基づいて気筒判定を行う制御手段を備え、前記シグナルプレートの外周には、歯,突起,凹部,凸部,孔の少なくともいずれかからなる第1の被検知部が等角度間隔で所定角度範囲にわたって配列された等間隔部と、少なくとも2個の前記第1の被検知部が前記等間隔部より大きな角度間隔で配列された不等間隔部とが設けられて、前記検知器からは各気筒の所定工程における同一クランク角度位置をあらわす信号Aが得られるようにされると共に、上記とは別に、前記シグナルプレートの外周には、歯,突起,凹部,凸部,孔の少なくともいずれかからなる複数の第2の被検知部が不等間隔で設けられて、前記検知器からは各気筒の所定工程における異なるクランク角度位置をあらわす信号Bが得られるようにされ、前記信号Aの前記等間隔部より大きな角度間隔で配列された不等間隔部の検出周期を計測し、前記第2の被検知部があらわすクランク角度位置には気筒数と同数のエリアに分割され、それぞれ所定の角度位置に被検出部が設置されて、該被検出部が発生する2値化ビット情報の組合せが気筒毎に全て異なるように設定されていることを特徴とするエンジンの気筒判定装置。請求項1に記載されたエンジンの気筒判定装置において、少なくとも前記クランク角度位置信号の異常を判定する異常判定手段を備え、前記気筒判別手段は、前記クランク角度位置信号の異常が判定された場合に、前記第2のシグナルプレートに設置された被検出部の配列に応じて気筒判定を行うことを特徴とするエンジンの気筒判定装置。請求項1又は2に記載されたエンジンの気筒判定装置において、前記異常判定手段は、前記気筒判別信号が所定のクランク角度にわたって検出されない場合に、前記クランク角度位置信号を異常と判定することを特徴とするエンジンの気筒判定装置。請求項1又は2に記載されたエンジンの気筒判定装置において、前記異常判定手段は、前記基準クランク角度位置により限定される所定角度の間に前記クランク角度位置信号が所定数だけ検出されない場合に、前記クランク角度位置信号を異常と判定することを特徴とするエンジンの気筒判定装置。請求項1又は請求項2に記載されたエンジンの気筒判定装置において、前記異常判定手段にて、前記クランク角センサが異常と判定された場合には、前記第2の被検知部があらわすクランク角度位置を基準位置に戻すことを特徴とするエンジンの気筒判定装置。請求項1又は請求項2に記載されたエンジンの気筒判定装置において、前記異常判定手段にて、前記クランク角センサが異常と判定された場合には、前記第2の被検知部があらわすクランク角度位置の検出数に応じて、気筒グループを判定することを特徴とするエンジンの気筒判定装置。しかしながら、前記従来提案の気筒判定装置では、燃料供給によって発生する初爆によって気筒判定を行う場合、最悪時は点火プラグがくすぶってしまい、始動不能に至る可能性がある。本発明は、上記した従来の問題点を解決をしようとしてなされたもので、その目的とするところは、一つのセンサから得られる信号が異常である場合に、残りの正常なセンサから得られる信号だけで、誤りなくかつ燃料噴射をしなくても気筒判定を行うことができ、更に点火時期や燃料噴射時期等の制御を支障なく適切に行えるようにされたエンジンの気筒判定装置を提供することにある。上記の課題を解決するために、本発明のエンジンの気筒判定装置は、エンジンのクランクシャフトと一体的に回転せしめられるクランクシグナルプレートと該クランクシグナルプレートの外周に近接配置された検知器からなる一つ又は複数のクランク角センサと、前記エンジンのカムシャフトと一体的に回転せしめられるカムシグナルプレートと該カムシグナルプレートの外周に近接配置された検知器からなる一つまたは複数のカム角センサとを備えて、該クランク角センサと該カム角センサから得られる信号に基づいて気筒判定を行う制御手段を備えたエンジンの気筒判定装置であって、前記クランクシグナルプレートの外周には、歯,突起,凹部,凸部,孔等からなる多数の被検知部が、等角度間隔で所定角度範囲にわたって配列された等間隔部と、該等間隔部よりも大きな角度間隔であって、その大きさが異なる少なくとも2種類の不等間隔部であって、該不等間隔部が720°を気筒数で除した数だけ設置され、該不等間隔に対応する発生信号Aは、同一行程における同一クランク角度位置で発生するように配置された不等間隔部を有し、同時に、前記カムシグナルプレートの外周には、歯,突起,凹部,凸部,孔等からなる複数の被検知部が設置され、前記カムシグナルプレートは気筒数と同数のエリアに分割され、それぞれ所定の角度位置に被検出部が設置されて、該被検出部が発生する2値化ビット情報の組合せが気筒毎に全て異なるように設定されていることを特徴とする。また、本発明のエンジンの気筒判定装置は、前記クランク角センサが異常で前記カム角センサが正常の場合には、前記カムシグナルプレートに設置された被検出部の配列に応じて気筒判定を行うことを特徴とする。また、本発明のエンジンの気筒判定装置は、前記クランク角センサが異常で前記カム角センサが正常の場合には、前記カムシグナルプレートに設けられた前記領域γのカム角信号に基づいて、燃料噴射タイミングと点火通電開始タイミングを設定することを特徴とする。本発明に係る気筒判定装置は、一つの回転角センサから得られる信号が異常である場合に、残りの正常な回転角センサから得られる信号だけで誤りなく気筒判定を行うことができる。そのため、点火時期制御や燃料噴射時期の制御を、適切に行うことが可能である。本発明のエンジンの気筒判定装置の実施形態を、以下、図面を参照しながら説明する。図1は、本発明に係る気筒判定装置の一実施形態を、車載用直列4気筒エンジンに適用した概略構成図である。図1において、エンジン1は、4つの気筒1~4が設けられたシリンダと各気筒に摺動自在に嵌挿されたピストンとを備え、ピストン上方の燃焼室には、点火プラグイグニッションコイルに接続16が臨設されるとともに、吸気弁及び排気弁が設けられている。また、吸気系吸気管7を含む吸気通路にはエアクリーナ31,吸気管圧力を計測するエアフローセンサ2,吸入空気量を調整するスロットル弁を備えたスロットルボディ4,スロットル弁の開度を検出するスロットルセンサ6,アイドルスピードコントロールバルブISCバルブ3等が適宜に配置され、吸気管7には、電子制御式の燃料噴射弁8が設けられている。また、排気系には、空燃比センサ15や排気浄化用触媒コンバータ等が設けられている。燃料供給経路は、図示していないが燃料ポンプにより吸い出され、燃料配管を経てプレッシャーレギュレータで調圧されて前記燃料噴射弁8に導かれ、該燃料噴射弁8から吸気ポートに向けて噴射される。また、エンジン1には、後で詳述するように、気筒判定に使用されるクランク角センサ18,カム角センサ29、及びコントロールユニットECU100が備えられている。コントロールユニット100には、エアフローセンサ2,スロットルセンサ6,空燃比センサ15,水温センサ17,クランク角センサ18及びカム角センサ29等からの信号が入力され、コントロールユニット100は、それらの信号に基づいて、燃料噴射弁8による燃料噴射制御,点火プラグ16による点火時期の制御等を行うようになっている。クランク角センサ18は、クランク軸と一体的に回転せしめられるクランク軸用シグナルプレート及び該シグナルプレートの外周に近接配置されたクランク軸用検知器から成るホール式のものとされ、前記クランク軸用シグナルプレートの外周部には、歯,突起,凹部,凸部又は孔等からなる多数の被検知部が等角度間隔ここでは、10°CAで所定角度範囲にわたって配列された等間隔部と、少なくとも2個の前記被検知部が前記等間隔部より大きな角度間隔ここでは、30°CAと40°CAで配列された不等間隔部歯欠け部とが、エンジン1の気筒数の1/2ここでは、2だけ交互に設けられている。それゆえ、クランク軸が2回転する間に前記歯欠け部をあらわす信号が4回到来する。前記クランク軸用検知器は、前記被検知部がその真向かいを通過する毎に発生する磁界の変化をとらえ被検知部を検知、内部処理回路で信号としてのパルスを生成し、これをコントロールユニット100に供給する。そのため、前記クランク軸用検知器クランク角センサ18からは、図3に示されるように、各気筒の所定工程における同一クランク角度位置をあらわす信号基準信号が得られる。カム角センサ29は、カム軸と一体的に回転せしめられるカム軸用シグナルプレート及び該シグナルプレートの外周に近接配置されたカム軸用検知器から成る磁気式のものであり、前記カム軸用シグナルプレートの外周部には歯,突起,凹部,凸部又は孔等からなる複数の被検知部が不等間隔で設けられている。前記カム軸用検知器カム角センサ29は、前記被検知部がその真向かいを通過する毎に発生する磁界の変化をとらえ被検知部を検知、内部処理回路で信号としてのパルスを生成し、これをコントロールユニット100に供給する。そのため、カム角センサ29からは、図3に示されるように、各気筒の所定工程における異なるクランク角度位置をあらわす信号が得られる。図2はコントロールユニット100の内部構成を示したものである。コントロールユニット100は、入力回路191,A/D変化部192,中央演算部193,ROM194,RAM195、及び出力回路196を含んだマイクロコンピュータにより構成されている。入力回路191は、入力信号190がアナログ信号の場合例えば、水温センサ17,スロットルセンサ6等からの信号、入力信号からノイズ成分の除去等を行ってA/D変換部192に出力するものである。中央演算部193は、A/D変換結果を取り込み、ROM194等の媒体に記憶された燃料噴射制御プログラムやその他の制御プログラムを実行することによって、前記各制御及び診断等を実行する機能を備えている。なお、演算結果、及び、前記A/D変換結果は、RAM195に一時保管され、また、この演算結果は、出力回路196を通じて制御信号197として出力され、燃料噴射弁,点火コイル等の制御に用いられる。一方、クランク角センサ18とカム角センサ29の信号は、入力回路191で信号の有無を識別し、High/Low信号として、信号線198により、中央演算部193へ送られる。中央演算部193では、信号線198の電圧レベルが、LowからHighに変化したとき、つまり、図3及び図4のクランク角センサ信号、及びカム角センサ信号の立下りのタイミングで割り込み処理が行われる構成となっている。図3及び図4は、本実施形態の気筒判定装置により気筒判定を行う際の各部の動作状態、すなわち、各気筒1~4の行程,クランク角センサ信号及びカム角センサ信号の発生到来状態並びにクランク角センサ信号とカム角センサ信号の発生到来位置関係からの気筒判定データのビットパターン生成状態を示した図である。以下、図3から図6を参照しながら、クランク角センサ18の信号とカム角センサ29の信号が正常である場合の気筒判定について説明する。図3は、エンジン2回転におけるクランク角センサ信号,カム角信号,直列4気筒エンジンの各行程の関係を示した図である。図4は、クランク軸用シグナルプレート18aとカム軸用シグナルプレート29aの信号配置例である。これらのシグナルプレートの外周には、図3に示した通りの信号を発生させる多数の凸部からなる被検知部が配置されている。図5は、気筒判別するためのクランク角信号とカム角信号の位置関係の一例である。図6は、図5に示された関係により、カム角信号を用いた気筒判別の識別例直列4気筒の例である。そして、気筒判別の手順は、クランク角センサ18の信号情報で基準クランク角度発生信号Aを検出し、発生信号Aから所定クランク角度内に検出されたカム角信号情報に基づき気筒判別を行う。次に、まず基準クランク角度である発生信号Aの判別について説明する。クランク角信号は、クランク角度10°毎の等間隔部と、信号間隔が30°または40°の不等間隔部歯欠け部がある。この不等間隔部は、図5に示されているように、BTDC30°を起点として、クランク角信号CRのBTDC60~30°とBTDC70~30°の2通りがある。そして、このBTDC30°が基準クランク角度発生信号Aに該当する。基準クランク角度であるBTDC30°を判定する、換言すると、不等間隔部を判定するために、クランク角センサ信号検出毎に、クランク角センサの信号間隔の時間時間間隔を計測する。一回前のクランク角センサ信号の時間CRT2と今回のクランク角センサ信号間の時間間隔CRT1を比較する。そして、CRT2×係数例えば2<CTR1が成立した場合に、不等間隔と判定し、BTDC30°信号発生信号Aを特定することができる。発生信号Aを特定できたら、すぐに気筒判定を開始する。気筒判定は、図5と図6に示したように、基準クランク角度に対し、カム角信号がどのタイミングで入力したかのパターン識別で判定する。図5に示したように、基準クランク角度はBTDC30°起点なので、そこから所定角度本例では、30°までのクランク角度領域をαBTDC30°~TDCまで、α終点から所定角度本例では、30°までのクランク角度領域をβTDC~ATDC30°と定義する。またα,β以外をγとする。そして、気筒判別用信号は、図4に示したようにカム軸用シグナルプレート29aのαとβの領域に設置されることを特徴とするもので、本例では、α領域のBTDC10°の位置に、β領域のBTDC160°ATDC20°の位置に設置される。そして、図6に示したとおり、基準クランク角度を検出後、α領域のBTDC10°のカム角信号の2値、すなわちBTDC10°信号の有無と、β領域のBTDC160°ATDC20°のカム角信号の2値、すなわち信号の有無を判定し、これらの組合せパターンで気筒判別を行う。図5を使って説明すると、BTDC10°信号とBTDC160°信号を両方検出した場合は、3番気筒が圧縮行程にあると判定される。このようにα領域とβ領域におけるカム角センサ信号の2値情報の関係から気筒を特定する。次に、図7を参照しながら、クランク角センサ18は正常だが、カム角センサ29が異常の場合における対応について説明する。この場合、クランク角センサ信号情報だけで気筒を特定することは不可能であるため、気筒群やグループ判別を行って対応する。図3,図4から判るように、クランク軸用シグナルプレート18a上に設置されたクランク角信号は、180°毎に異なる不等間隔部、前記のとおり、BTDC60°~BTDC30°までの30°間隔と、BTDC70°~BTDC30°までの40°間隔部の2箇所の不等間隔部を有する。ここでは、4サイクルエンジンの2回転の角度である720°を気筒数4で除した数である180°毎に不等間隔部が設けられるのである。このようにして設けた不等間隔部を識別することにより、気筒群やグループ判別を行うが、本例では、クランク角センサ信号検出毎に、クランク角センサの信号間隔の時間時間間隔を計測し、一回前のクランク角センサ信号の時間間隔CRT2と今回のクランク角センサ信号間の時間間隔CRT1を比較する。そして、CRT2×係数例えば2<CTR1が成立した場合に、不等間隔と判定し、それ以外の場合は等間隔と判定する。そして、基準クランク角度であるBTDC30°信号発生信号Aまでの等間隔の信号数をカウントCNTRする。なお、不等間隔は30°と40°の2種類であるので、それぞれの検出数の違いで判別できる。図7に示した動作状態を示す例では、基準クランク角信号を検出時に、等間隔の信号数をリセットして、不等間隔を検出するまで順次カウントアップしている。そして、不等間隔40°を検出するまで計測する場合、カウンタは14となる。一方、不等間隔30°を検出するまで計測する場合には、カウンタは15となる。こうして、カウント数が14→0になった時点で、3番気筒又は2番気筒の圧縮BTDC30°と判り、グループ判別できる。次に、クランク角センサ18が異常時、カム角センサ29による気筒判別方法について説明する。クランク角センサが正常時は、上記のとおり、カム角センサの信号位置の発生位置をクランク角信号領域αやβで識別して気筒判別を行うが、クランク角センサが故障した場合には、この判定方法を用いることができない。そこで、図8に示したカム角信号の配置と図9に示したビットパターンを用いて気筒判別を行う。図8は、カム角信号の配置の一例である。カム角信号は、クランク角センサが正常時に用いる気筒判別用信号を前記の領域αとβに設置している。しかし、クランク角センサが異常時は、領域αとβに設置した気筒判別用のカム角信号は、意味を持たない。それは、これらαやβ領域の信号だけで気筒判別しても、気筒判別後の燃料噴射時期や点火時期の制御を実行するのが非常に困難なためである。これは、図6に示したように1番気筒が圧縮行程と判定できるのは、α領域とβ領域に信号が無い場合であるが、クランク角の情報が無いためαやβ領域を特定できない。したがって、いつ1番気筒の行程になったか判定できない。もし判定できたとしても、点火時期を設定するのに適切なカム信号情報が無いため、点火時期の不適により発生する過進角によるノッキングや過遅角による触媒過熱を誘発し、エンジン破損に至る可能性が高い。そこで、本例では、前記した各気筒の領域γに、燃料噴射制御や点火制御用の基準信号を併設することで、この問題を解消している。具体的には、図8に示したように、燃料噴射制御の基準信号は各気筒のBTDC100°CAに設置、点火時期用の基準信号は各気筒のBTDC70°CAにカム角信号を設置した。この結果、本例ではカム軸用シグナルプレート29aに12個の信号が配置されている。そして、このカム角信号による気筒判別は、カム角信号の間隔時間間隔を計測し、その比率情報を用いて以下のように判別する。一回前のカム角センサ信号の時間間隔CAMT2図8のA点とB点と、今回のカム角センサ信号間の時間間隔CAMT1図8のB点とC点を比較し、長短を決定する。例えば、CAMT2×KK:係数=05>CAMT1が成立した場合には短、不成立時は長とし、短=1,長=0とする。これらの1と0の情報を8個連続して取り込み図9に示したような関係に基づいて気筒判定を行う。具体的には、No12となる2気筒のBTDC70°信号から3番気筒のBTDC10°信号までの連続8個のBit情報を用いると1010101010進数で170になる。この8つのBit並びは、他の11パターンと比較すると全て異なっている。それゆえ、10101010の並びは、3番気筒の圧縮行程BTDC10°と特定できる。このようにカム角信号を設置することによって、カム角センサの信号だけで気筒判定ができ、更に燃料や点火を高精度に制御することが可能となる。上記したのは直列4気筒エンジンの例ではあるが、本発明は、水平対向エンジンやV型エンジン等の種々様々なエンジンに適用可能である。その例を図10から図13に示す。図10と図11は、水平対向4気筒エンジンへの適用例を示し、図12と図13はV型6気筒エンジンへの適用例を示す。水平対向4気筒エンジンの2回転におけるクランク角センサ信号,カム角信号,各気筒の各行程は、図10に示された関係となる。右バンクと左バンクの吸気側にカム角信号が設置されている。クランク角には、前記した直列4気筒エンジンと同じクランク角信号が設置されている。クランク角度10°毎の等間隔部と、信号間隔が30°又は40°の不等間隔部歯欠け部がある。この不等間隔部は、図5について前記したとおりBTDC30°を起点として、クランク角信号CRのBTDC60~30°とBTDC70~30°の2通りが設置され、このBTDC30°が基準クランク角度発生信号Aに該当する。そして、図11に示したように、左右バンクのCAMカム角信号とクランク角信号の不等間隔部歯欠け部の関係により、気筒を特定できる。仮に、右バンクのカムセンサ異常のときは、クランク角信号の不等間隔30°間隔BTDC60°~BTDC30°を検出後にBTDC165°信号を検出することで圧縮行程3番気筒を認識できる。左バンクのカムセンサ異常のときも同様に、クランク角信号の不等間隔30°間隔BTDC60°~BTDC30°を検出後にBTDC165°信号を検出した場合、圧縮行程4番気筒を認識できる。両方のカム角センサが故障した場合は、図7についての前記したのと同様のクランク角信号による方法で対応できる。また、クランク角センサ異常でも、左右のカム信号の組合せで気筒を特定することができる。具体的には、図8と同様に、一回前のカム角センサ信号の時間間隔CAMT2と、今回のカム角センサ信号間の時間間隔CAMT1を比較し、CAMT2×KK:係数=15>CAMT1が成立した場合に短=1とする。この場合、右バンクなら圧縮4のBTDC165~圧縮1BTDC15°クランク角度間隔330°と圧縮1のBTDC15~圧縮3のBTDC15°クランク角度間隔180°の時だけ1となり、3番気筒圧縮行程BTDC15°信号を認識できる。これによって気筒判別が完了し、各バンクの各気筒に設置したBTDC15°信号を着火タイミング点火時期固定とすることで、極端なエンジントルクの低下を防止できる。V型6気筒エンジンでの2回転におけるクランク角センサ信号とカム角信号と各行程は図12に示された関係となる。右バンクと左バンクの吸気側にカム角信号が設置されている。クランク角には、前記の4気筒エンジンと同様に、クランク角度10°毎の等間隔部と、信号間隔が30°又は40°の不等間隔部歯欠け部がある。この不等間隔部は、4気筒と異なるBTDC50°を起点とし、クランク角信号CRのBTDC100~50°,BTDC90~50°,BTDC80~50°の3通りが設置され、このBTDC50°が基準クランク角度発生信号Aに該当する。そして前記した図8と同様に、基準クランク角度信号に対する気筒判定領域α,βに対し、左右バンクのCAMカム角に設置されたBTDC35°信号,BTDC5°信号,クランク角信号の3つの不等間隔部歯欠け部の関係から、図13に示すように、気筒を特定できる。仮に右バンクのカムセンサ異常の場合、クランク角信号の不等間隔40°間隔BTDC90°~BTDC50°を検出後に、気筒判定領域αのBTDC35°信号と、領域βのBTDC5°信号を検出すれば、圧縮行程3番気筒と認識でき、その後にクランク角の不等間隔30°間隔BTDC80°~BTDC50°を検出すれば、圧縮行程3番気筒のBTDC50°と特定できる。また、仮に左バンクのカムセンサ異常の場合のときも同様に、クランク角信号の不等間隔40°間隔BTDC90°~BTDC50°を検出後にBTDC35°信号とBTDC5°信号を検出した場合、圧縮行程6番気筒と認識でき、その後クランク角の不等間隔30°間隔BTDC80°~BTDC50°を検出すれば、圧縮行程6番気筒のBTDC50°と特定できる。両方のカム角センサが故障した場合は、前記の図7と同様に、クランク角信号の不等間隔の信号数情報で、3と6,1と4,2と5のグループ分けができる。また、クランク角センサ異常でも、左右のカム信号の組合せで気筒を特定することができる。具体的には、図8と同様に、一回前のカム角センサ信号の時間間隔CAMT2と、今回のカム角センサ信号間の時間間隔CAMT1を比較し、CAMT2×KK:係数=05>CAMT1が成立した場合に短=1とする。この場合、右バンクなら圧縮3のBTDC35~圧縮1BTDC35°クランク角度間隔240°と圧縮1のBTDC35~圧縮1のBTDC5°クランク角度間隔30°の時のだけ1となり、1番気筒圧縮行程BTDC5°信号を認識できる。これによって気筒判別が完了する。次に、コントロールユニット100が前記の如くの気筒判定を行う際に実行する処理を図14,図15,図16のフローチャートを参照しながら説明する。図14はクランク角センサとカム角センサが正常時に行うルーチンである。ステップ101では、クランク角センサの信号を読み取り、現在と前回一回前のクランク角センサ信号間CRT1とCRT2を計測する。そしてステップ103で不等間隔部を判定し、基準クランク角度であるBTDC30°信号の判定を行う。BTDC30°信号と判定されたら、ステップ104で気筒判定前半領域αと判定し、カム角信号の読み取りを行う。気筒判定前半領域α終了までにカム角信号が入力された場合は、ステップ105に移りBTDC10°信号が入力されたので、α領域でのカム信号入力状態を示すフラグ10が1にセットされる。一方、信号未入力の場合にはフラグ10が0となる。気筒判定前半領域αが終了したら、ステップ108にて気筒判定後半エリアβに移行する。気筒判定前半領域β終了までにカム角信号が入力された場合は、ステップ109に移りBTDC160°信号が入力されたので、β領域でのカム信号入力状態を示すフラグ160を1にセットする。一方、信号未入力の場合には、ステップ111にてフラグ160を0とする。そして、ステップ112において、フラグ10とフラグ160の結果を図6に示したマトリックスに基づいて気筒判定を実行し、本フローを終了する。図15と図16は、クランク角センサ信号が異常時に、カム角信号だけで気筒判定する場合の具体例のフローチャートを示す。図15は、図16のステップ301のBitパターン認識方法の一例である。ステップ201ではカム角信号を入力する。ステップ202で、最新の時間間隔判定結果をBit0の位置に入力できるように、前回のBit情報をBitシフトしてBit1に入れ替えておく。そして、ステップ203で、最新のカム角信号の入力に伴い、前記のCAMT2×KK:係数=05>CAMT1が成立するか否かを判定し、成立時にはステップ204で短=1、不成立時はステップ205で長=0として処理し、ステップ301の処理を終了する。ステップ302では、図9に示された全12パターンのいずれが成立しているのかを判定する処理である。本例では、図8に示した3番気筒の圧縮行程BTDC10°CA信号を示すBitパターン10101010が成立するか否かを判定する。不成立の場合は、ステップ305にて気筒判定未完了とする。一方、成立した場合には、ステップ303で3番気筒の圧縮行程BTDC10°CAと判定され、ステップ304にて気筒判定とクランク角判定の完了処理を行う。なお、本例では、1つのBitパターンを使って説明したが、ステップ302の処理において全12パターンについて、どこかに該当するか否かという方法もある。図17は、カム角センサが異常時に、クランク角信号だけで気筒グループ判定する場合のフローチャートの一例を示す。ステップ401にてクランク角センサの信号を読み取り、現在と前回1回前のクランク角センサ信号間CRT1とCRT2を計測する。ステップ402では、不等間隔部を判定し、基準クランク角度であるBTDC30°信号の判定を行う。BTDC30°信号と判定されない場合には、ステップ404にてクランク角信号の入力数カウンタCNTRをインクリメントしていく。一方、BTDC30°信号と判定される場合は、ステップ403にてクランク角信号の入力数カウンタCNTRを0にクリアする。ステップ405において、クランク角信号の入力数カウンタCNTR=15かどうかを判定する。CNTR=15の時は、ステップ406にて気筒GrA1番気筒か4番気筒の圧縮行程を判定できる。以上により、カム角センサやカム角センサのいずれかが異常であっても、気筒判定や気筒グループの判定が可能となり、かつ、燃料や点火について、正常時と同等の制御を行うことが可能となる。以上、本発明の一実施形態について、詳述したが、本発明は、前記した実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の精神を逸脱することなく、設計上、種々の変更ができるものである。"