(57)【特許請求の範囲】
【請求項１】
エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号が入力され、前記クランク軸の回転位置であるクランク位置を前記所定角度よりも小さい分解能で表す角度信号を、前記回転信号に基づいて生成する角度信号生成手段（１０，１１，３０，４０，Ｓ１１０〜Ｓ１８０，Ｓ２１０〜Ｓ２８０）、を備え、
前記角度信号生成手段により生成した前記角度信号に基づいて、前記エンジンの制御を実施するエンジン制御装置（１）において、
前記回転信号は、前記パルスエッジの列の途中に、前記パルスエッジの間隔が不等な基準位置部を有し、
前記回転信号における前記基準位置部は、
前記パルスエッジがＮ回（Ｎは１以上の整数）発生しないことにより、前記パルスエッジの間隔が他の前記パルスエッジの間隔よりも長くなる欠け歯部（Ｐａ）であり、
前記欠け歯部は、
前記エンジンが有する複数の気筒のうち、所定の気筒の上死点位置から所定の角度だけ進角側のクランク位置では現れるが、前記所定の気筒とは異なる特定の気筒の上死点位置から前記所定の角度だけ進角側のクランク位置では現れず、
前記角度信号生成手段は、
前記回転信号における前記パルスエッジのうちの特定のパルスエッジであって、前記特定の気筒の上死点位置からみて、前記所定の気筒の上死点位置と前記欠け歯部との相対位置関係と同じ位置関係にあるクランク位置の範囲（Ｐｂ）で発生するＮ個の特定のパルスエッジは使用せずに、前記角度信号を生成すること、
を特徴とするエンジン制御装置。
【請求項２】
エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号が入力され、前記クランク軸の回転位置であるクランク位置を前記所定角度よりも小さい分解能で表す角度信号を、前記回転信号に基づいて生成する角度信号生成手段（１０，１１，３０，４０，Ｓ２３０，Ｓ２５０〜Ｓ２８０）、を備え、
前記角度信号生成手段により生成した前記角度信号に基づいて、前記エンジンの制御を実施するエンジン制御装置（１）において、
前記回転信号は、前記パルスエッジの列の途中に、前記パルスエッジの間隔が不等な基準位置部を有し、
前記回転信号における前記基準位置部は、
前記所定角度毎のパルスエッジの列の途中に余分なパルスエッジである余分歯が挿入されることで、前記パルスエッジの間隔が不等になる部分であり、
前記余分歯は、
前記エンジンが有する複数の気筒のうち、所定の気筒の上死点位置から所定の角度だけ進角側のクランク位置では発生しないが、前記所定の気筒とは異なる特定の気筒の上死点位置から前記所定の角度だけ進角側のクランク位置では発生し、
前記角度信号生成手段は、
前記回転信号における前記パルスエッジのうちの特定のパルスエッジである前記余分歯は使用せずに、前記角度信号を生成すること、
を特徴とするエンジン制御装置。
【請求項３】
請求項１に記載のエンジン制御装置において、
前記角度信号生成手段（１０，１１，３０，４０，Ｓ１１０〜Ｓ１８０）は、
前記回転信号が入力される第１手段（３０）と、
前記第１手段の動作を変更するための第２手段（１１，４０，Ｓ１１０〜Ｓ１８０）と、を備え、
前記第１手段は、
当該第１手段に入力される前記回転信号における前記パルスエッジの間隔を逐次計測する計測手段（３２）と、
前記計測手段による最新の計測値を所定の逓倍数で割った時間毎に、その時間を１周期とする逓倍クロックを出力する逓倍クロック出力手段（３４）と、
前記逓倍クロックの周期でカウント動作するカウンタであって、そのカウント値を表す信号が、前記角度信号となる角度カウンタ（３８）と、を備え、
前記第２手段は、
前記回転信号における前記パルスエッジのうち、前記特定のパルスエッジが前記計測手段に入力されるのを禁止する禁止手段（１１，４０，Ｓ１１０〜Ｓ１４０）と、
前記回転信号における前記パルスエッジのうち、前記欠け歯部の終了に該当するパルスエッジが発生したときと、前記特定のパルスエッジの次のパルスエッジが発生したときとの、各々において、前記計測手段による今回の前記計測値を「前記Ｎ＋１」分の１の値に補正する補正手段（１１，Ｓ１８０）と、を備えること、
を特徴とするエンジン制御装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載のエンジン制御装置において、
前記回転信号は、
前記クランク軸と共に回転するロータの外周に形成された複数の歯を検出することによって前記パルスエッジを発生させるクランクセンサ（２１）からのクランク信号であること、
を特徴とするエンジン制御装置。
【請求項５】
請求項２に記載のエンジン制御装置において、
前記回転信号は、
前記エンジンのカム軸と共に回転するロータの外周に形成された複数の歯を検出することによって前記パルスエッジを発生させるカムセンサ（２３）からのカム信号であること、
を特徴とするエンジン制御装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載のエンジン制御装置において、
前記角度信号生成手段（１０，１１，３０，４０，Ｓ２１０〜Ｓ２８０）は、
前記回転信号における前記パルスエッジのうち、前記特定のパルスエッジ以外の所定のパルスエッジも使用せずに、前記角度信号を生成すること、
を特徴とするエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン制御装置に関する。
【背景技術】
【０００２】
車両のエンジン制御装置では、エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号（一般には、クランクセンサから出力されるクランク信号）に基づいて、クランク軸の回転位置であるクランク位置（いわゆるクランク角）を把握している。そして、把握したクランク位置に基づいて、エンジンの制御（燃料噴射や点火等）を実施している。
【０００３】
具体的には、クランク信号におけるパルスエッジの間隔を計測して、その計測値を所定の逓倍数分の１にした周期の逓倍クロックを生成し、クランク位置を表す角度カウンタのカウント値を、上記逓倍クロックを用いてカウントアップさせる。そして、角度カウンタのカウント値が、クランク位置を上記所定角度よりも小さい分解能（上記所定角度／逓倍数の分解能）で表す角度信号となる。このため、角度信号の値（角度カウンタのカウント値）に基づいて、燃料噴射や点火等を実施する。例えば、角度信号の値が目標のクランク位置に該当する設定値と一致したときに、点火や燃料噴射が実施されるようにする（例えば、特許文献１参照）。
【０００４】
そして、従来のエンジン制御装置では、クランク信号における全てのパルスエッジを用いて、角度信号を生成している。また、クランク信号において、パルスエッジの列の途中には、パルスエッジの間隔が不等な基準位置部がある。その基準位置部の代表的なものとしては、パルスエッジが所定回数発生しない欠け歯部や、追加のパルスエッジが挿入されたことによるものが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２００７４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クランク信号が上記基準位置部を有する場合、クランク信号におけるパルスエッジの間隔が全て同じにはならないため、パルスエッジとして、以下のような特定のパルスエッジが存在することとなる。
【０００７】
その特定のパルスエッジとは、エンジンの複数の気筒のうち、所定の気筒の上死点位置から所定角度だけ進角側のクランク位置では発生しないが、その所定の気筒とは異なる特定の気筒の上死点位置から前記所定角度だけ進角側のクランク位置では発生する、というパルスエッジである。
【０００８】
気筒毎に見ると、上死点位置から進角側の同じ相対角度のクランク位置で、クランク信号にパルスエッジが発生する気筒と、パルスエッジが発生しない気筒とが存在することになる。
【０００９】
ここで、上記特定の気筒を、「特定パルス有り気筒」と言い、上記所定の気筒を、「特定パルス無し気筒」と言うことにする。また、上記特定のパルスエッジの直前と直後との、２つのパルスエッジ間に対応するクランク位置の範囲を、「特定範囲」と言い、特定パルス無し気筒の上死点位置を基準にして、特定パルス有り気筒の上死点位置と特定範囲との相対位置関係と同じ位置関係にあるクランク位置の範囲を、「特定相当範囲」と言う。
【００１０】
特定範囲では、上記特定のパルスエッジが発生するのに対して、特定相当範囲では、パルスエッジが発生しない。
このため、クランク信号における全てのパルスエッジを用いて角度信号を生成する従来のエンジン制御装置では、特定範囲と特定相当範囲とで、角度信号の増加のしかたに違いが生じることとなる。特定範囲では、その範囲において発生する特定のパルスエッジに基づいて、角度信号の増加の度合いが更新されるのに対して、特定相当範囲では、パルスエッジが発生しないため、角度信号の増加の度合いが更新されないためである。
【００１１】
このことから、特定パルス有り気筒と、特定パルス無し気筒とで、角度信号に基づく制御の動作が、ばらついてしまうこととなる。
そこで、本発明は、エンジン制御装置において、気筒間での制御動作のばらつきを抑制することができるようにすることを目的としている。
【課題を解決するための手段】
【００１２】
第１発明のエンジン制御装置は、角度信号生成手段を備える。角度信号生成手段は、エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号が入力され、クランク軸の回転位置であるクランク位置を前記所定角度よりも小さい分解能で表す角度信号を、前記回転信号に基づいて生成する。そして、このエンジン制御装置は、角度信号生成手段により生成した角度信号に基づいて、エンジンの制御を実施する。
【００１３】
ここで、前記回転信号は、パルスエッジの列の途中に、パルスエッジの間隔が不等な基準位置部を有する。
そして、このエンジン制御装置において、角度信号生成手段は、前記回転信号におけるパルスエッジのうちの特定のパルスエッジであって、エンジンが有する複数の気筒のうち、所定の気筒の上死点位置から所定角度だけ進角側のクランク位置では発生しないが、前記所定の気筒とは異なる特定の気筒の上死点位置から前記所定角度だけ進角側のクランク位置では発生する特定のパルスエッジは使用せずに、前記角度信号を生成する。
【００１４】
このため、角度信号生成手段は、前述の特定範囲において、特定のパルスエッジを使用せずに角度信号を生成することとなる。よって、その特定範囲と、前述の特定相当範囲とで、角度信号の増加のしかたに違いが生じることを回避することができ、その結果、上記特定の気筒（特定パルス有り気筒）と、上記所定の気筒（特定パルス無し気筒）とで、角度信号に基づく制御の動作がばらついてしまうことを、抑制することができる。
【００１５】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態のエンジン制御装置（ＥＣＵ）の構成図である。
【図２】クランク信号及び第１実施形態の作用を説明するタイムチャートである。
【図３】ハードクランクの構成図である。
【図４】点火の制御を説明するタイムチャートである。
【図５】第１実施形態の切換処理を表すフローチャートである。
【図６】比較例を説明するタイムチャートである。
【図７】第２実施形態の切換処理を表すフローチャートである。
【図８】第１変形例を説明する説明図である。
【図９】第２変形例を説明する説明図である。
【発明を実施するための形態】
【００１７】
本発明が適用された実施形態のエンジン制御装置（以下、ＥＣＵという）について説明する。尚、本実施形態のＥＣＵは、例えば、車両に搭載された４気筒のガソリンエンジンを制御する。
【００１８】
［第１実施形態］
図１に示すように、ＥＣＵ１は、マイコン（マイクロコンピュータ）１０と、入出力回路２０とを備える。
【００１９】
マイコン１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、Ａ／Ｄ変換器（ＡＤＣ）１４、入出力インターフェイス（Ｉ／Ｏ）１５及びタイマモジュール１６等を備えており、それらの構成要素は、データバスにて相互にデータのやり取りができるように接続されている。
【００２０】
入出力回路２０は、ＥＣＵ１の外部から入力されるセンサやスイッチ等からの信号を、マイコン１０に入力させると共に、マイコン１０からの信号に従って、インジェクタ（燃料噴射弁）へ駆動信号を出力する。また、入出力回路２０は、マイコン１０から出力される各気筒についての点火パルスを、各気筒の点火装置に増幅して出力する。
【００２１】
マイコン１０のＣＰＵ１１は、センサやスイッチ等からの信号を、入出力回路２０と入出力インターフェイス１５を介して取り込み、これらの信号に基づいて各種の演算を行う。そして、ＣＰＵ１１は、その演算結果に基づき、入出力インターフェイス１５と入出力回路２０を介してインジェクタや点火装置を駆動制御する。ＣＰＵ１１の動作は、ＣＰＵ１１がＲＯＭ１２内のプログラムを実行することで実現される。
【００２２】
また、ＥＣＵ１に入力される信号としては、クランクセンサ２１からのクランク信号や、カムセンサ２３からのカム信号もがある。
図２に示すように、クランク信号は、エンジンのクランク軸が所定角度（この例では１０°）回転する毎にパルスエッジが発生する信号である。図２では、エンジンの１サイクルである７２０°ＣＡ分（ＣＡは「クランク角」の略）のクランク信号を示している。
【００２３】
クランク信号における所定角度毎のパルスエッジ（以下、クランクエッジともいう）は、立ち下がりエッジと立ち上がりエッジとの一方又は両方であり、本実施形態では例えば立ち下がりエッジであるが、図２においては、便宜上、縦線で表現している。この表現については他の図においても同様である。クランクセンサ２１は、エンジンのクランク軸と共に回転するロータの外周に形成された複数の歯を検出することによって、パルスエッジを発生させる。
【００２４】
また、クランク信号は、パルスエッジ（クランクエッジ）の列の途中に、パルスエッジの間隔（以下、クランクエッジ間隔ともいう）が不等な基準位置部を有している。本実施形態において、基準位置部は、クランクエッジがＮ回（Ｎは１以上の整数であり、この例では２）発生しないことにより、クランクエッジ間隔が他のクランクエッジ間隔よりも「Ｎ＋１」倍に長くなる（この例では３倍の長さになる）欠け歯部Ｐａである。
【００２５】
本実施形態におけるクランク信号は、３４パルス毎に２パルス抜ける構成となっており、その２パルス抜けた３０°ＣＡ分の期間が、欠け歯部Ｐａである。このため、欠け歯部Ｐａは、７２０°ＣＡで２箇所現れる（３６０°ＣＡ毎に現れる）。
【００２６】
また、本実施形態において、欠け歯部Ｐａの終了タイミングでのクランク位置（詳しくは、欠け歯部Ｐａの終了に該当するクランクエッジが発生するクランク位置であり、以下、欠け歯部終了位置という）は、エンジンの第２気筒＃２と第３気筒＃３との、各ＴＤＣ位置（ＴＤＣは上死点の略）となっている。このため、欠け歯部Ｐａは、第２気筒＃２のＢＴＤＣ３０°ＣＡからＴＤＣまでの期間と、第３気筒＃３のＢＴＤＣ３０°ＣＡからＴＤＣまでの期間とに、現れることとなる。尚、ＢＴＤＣは、上死点前の略であり、例えばＢＴＤＣ３０°ＣＡとは、ＴＤＣ位置よりも３０°ＣＡだけ前のクランク位置である。
【００２７】
このようなクランク信号は、入出力回路２０を介してマイコン１０に入力され、マイコン１０においては、後述する切換回路４０（図３参照）を介してタイマモジュール１６のハードクランク３０に入力される。
【００２８】
一方、図示は省略するが、カム信号は、例えば、エンジンの１サイクルにおける特定のクランク位置でパルスエッジが発生する信号である。カムセンサ２３は、エンジンのカム軸と共に回転するロータの外周に形成された歯を検出することによって、パルスエッジを発生させる。
【００２９】
カム信号も、入出力回路２０を介して、マイコン１０に入力される。そして、マイコン１０において、ＣＰＵ１１は、クランク信号とカム信号との組み合わせにより、周知手法で気筒判別を行う。尚、以下では、カム信号におけるパルスエッジのことを、カムエッジという。また、この例において、カムエッジは、エンジンの１サイクル中に１回発生する。
【００３０】
具体例を挙げると、例えば、ＣＰＵ１１は、クランクエッジ間隔に基づいて、クランク信号における欠け歯部Ｐａを検出し、欠け歯部Ｐａを検出してから所定個数のクランクエッジが発生するまでの期間中に、カム信号にカムエッジが発生したか否かを判定する。そして、カムエッジが発生したなら、今回検出した欠け歯部Ｐａが、第２気筒＃２と第３気筒＃３とのうち、例えば第３気筒＃３の方のＴＤＣに対応する欠け歯部Ｐａであると判定し、逆に、カムエッジが発生しなければ、今回検出した欠け歯部Ｐａが、例えば第２気筒＃２の方のＴＤＣに対応する欠け歯部Ｐａであると判定する。尚、ＣＰＵ１１は、後述するハードクランク３０から出力される欠け歯検出信号により、欠け歯部Ｐａの発生を検知しても良い。
【００３１】
そして、ＣＰＵ１１は、こうした気筒判別により、現在のクランク位置を特定することとなり、エンジンの１サイクルにおける１０°ＣＡ毎のクランク位置を表すソフト上のクランクカウンタに、特定したクランク位置に対応する値をセットする。そして、ＣＰＵ１１は、以後は、クランクエッジが発生する毎に、クランクカウンタを１ずつカウントアップさせると共に、欠け歯部Ｐａの終了タイミングでは、クランクカウンタの値に３を加算する。そして、ＣＰＵ１１は、クランクカウンタの値が７２０°ＣＡ分に相当する最大値になると、クランクカウンタの値を０に戻す。
【００３２】
このため、クランクカウンタの値は、０から７２０°ＣＡ分の最大値（この例では７１）までの間で、ラップラウンドされることとなる。よって、クランクカウンタの値により、１サイクルにおける１０°ＣＡ毎のクランク位置が分かる。
【００３３】
また、マイコン１０では、クランク信号を処理する処理部としてのハードクランク３０により、クランク位置をクランクエッジの発生間隔である１０°ＣＡよりも小さい分解能で表す角度信号と、欠け歯部Ｐａを検出したことを示す欠け歯検出信号とを、生成して出力するようになっている。
【００３４】
図３に示すように、ハードクランク３０は、分周回路３１と、エッジ時間計測カウンタ３２と、エッジ時間記憶レジスタ３３と、逓倍カウンタ３４と、ガード用カウンタ３５と、欠け歯判定カウンタ３６と、基準カウンタ３７と、角度カウンタ３８とを備える。
【００３５】
マイコン１０内のプリスケーラ（図示省略）から出力される一定周波数（例えば２０ＭＨｚ）のクロックＰφは、分周回路３１で分周され、分周後のクロック（以下、分周クロックという）が、エッジ時間計測カウンタ３２と、逓倍カウンタ３４とに送られる。また、クロックＰφは、そのまま角度カウンタ３８に送られる。
【００３６】
一方、マイコン１０には、クランク信号をハードクランク３０に入力するか否かを、ＣＰＵ１１からの制御信号に従って切り換える切換回路４０が備えられている。そして、ハードクランク３０においては、切換回路４０を介して入力されるクランク信号が、エッジ時間計測カウンタ３２と、ガード用カウンタ３５と、欠け歯判定カウンタ３６とに送られる。
【００３７】
エッジ時間計測カウンタ３２は、クランクエッジ間隔を、分周回路３１からの分周クロックによって計測するカウンタである。つまり、エッジ時間計測カウンタ３２は、クランクエッジが発生してから次のクランクエッジが発生するまでの間に発生した分周クロックの数を、クランクエッジ間隔として計測する。尚、分周クロックの周期は、クランクエッジ間隔の最小値よりも十分に小さい。
【００３８】
エッジ時間計測カウンタ３２がクランクエッジ間隔の計測を完了する毎に、その最新の計測値は、所定の逓倍数（ｎ）分の１にされて、エッジ時間記憶レジスタ３３に記憶され、更に、そのエッジ時間記憶レジスタ３３に記憶された値（以下、逓倍周期値という）は逓倍カウンタ３４に転送される。尚、本実施形態では、生成する角度信号の分解能を、例えば１°ＣＡとしており、このため逓倍数ｎは１０に設定されている。
【００３９】
逓倍カウンタ３４は、分周クロックによって逓倍周期値からダウンカウントするカウンタであり、カウント値が０になる毎に、逓倍クロックを出力すると共に、エッジ時間記憶レジスタ３３内の逓倍周期値がリロード（初期値として再設定）される。このため、逓倍カウンタ３４は、エッジ時間計測カウンタ３２により計測された今回のクランクエッジ間隔を基にして、次のクランクエッジが発生するまで、周期が今回のクランクエッジ間隔の１／ｎである逓倍クロックを生成して出力する。
【００４０】
基準カウンタ３７は、逓倍クロックによりカウントアップする。
ガード用カウンタ３５は、図２に示すように、クランクエッジによりカウントアップする。そして、ガード用カウンタ３５は、クランクエッジが入力された時に、カウントアップ直前の値を逓倍数（ｎ）倍した値を、基準カウンタ３７に転送して該基準カウンタ３７にセットする。この基準カウンタ３７にセットされる値は、クランクエッジの発生時における基準カウンタ３７及び角度カウンタ３８の値の期待値である。
【００４１】
また、基準カウンタ３７には、ガード用カウンタ３５の値を逓倍数（ｎ）倍した値が、ガート値として与えられる。そして、基準カウンタ３７のカウント値は、そのガード値を上回ることはできないようになっている。ガード値は、次のクランクエッジの発生時における基準カウンタ３７及び角度カウンタ３８の値の期待値である。
【００４２】
角度カウンタ３８は、クロックＰφによりカウントアップするカウンタであるが、それのカウント値が基準カウンタ３７のカウント値よりも小さい時にだけ、カウントアップする。
【００４３】
このため、角度カウンタ３８は、下記（１）〜（３）のように動作することとなる（図２参照）。
（１）直近のクランクエッジ間隔に基づいた逓倍クロックの周期でカウント動作（この例ではカウントアップ）する。
【００４４】
（２）クランクエッジの発生時において、ガード用カウンタ３５から基準カウンタ３７にセットされる前述の期待値よりもカウント値が小さければ、その期待値までクロックＰφにより最速でカウントアップする。このため、クランク軸の回転速度が上昇していく場合（即ち、クランクエッジ間隔が前回よりも短くなる加速時）において、角度カウンタ３８のカウント値が期待値よりも不足してしまうことが防止される。
【００４５】
（３）次のクランクエッジが発生する前に、カウント値が上記ガード値（ガード用カウンタの値のｎ倍値）に到達した場合には、カウントアップを停止する。このため、クランク軸の回転速度が低下していく場合（即ち、クランクエッジ間隔が前回よりも長くなる減速時）において、角度カウンタ３８の余分なカウントアップが防止される。
【００４６】
そして、ハードクランク３０では、角度カウンタ３８のカウントアップに同期して角度信号が生成される。つまり、角度カウンタ３８は、そのカウント値がクランク位置を「１０°ＣＡ／逓倍数」の分解能（この例では１°ＣＡの分解能）で表すカウンタであり、この角度カウンタ３８のカウント値を表す複数ビットの信号が、角度信号となる。
【００４７】
尚、角度カウンタ３８は、それのカウント値が基準カウンタ３７のカウント値と同じになるように、周期が逓倍クロックよりも十分小さいクロックＰφによってカウントアップされる。このため、角度カウンタ３８も、基本的には、基準カウンタ３７と同様に、逓倍クロックによってカウントアップすることとなるが、そのカウントアップタイミングは、逓倍クロックにより基準カウンタ３７の値が変化してから次のクロックＰφの出力タイミングとなる。つまり、角度カウンタ３８は、基準カウンタ３７に対して、カウント値の変化タイミングをクロックＰφに同期させたものである。このため、角度信号の値の変化タイミングをクロックＰφに同期させる必要がないのであれば、基準カウンタ３７のカウント値を表す信号を、角度信号とすることも可能である。
【００４８】
また、ハードクランク３０において、欠け歯判定カウンタ３６は、クランクエッジによって０にクリアされ、逓倍クロックによりカウントアップする。そして、欠け歯判定カウンタ３６は、自身のカウント値が所定の欠け歯判定値に到達すると、欠け歯検出信号を出力する。欠け歯判定値は、前回のクランクエッジ間でのカウント値を所定数倍（例えば２．５倍）した値である。
【００４９】
このため、クランク信号に欠け歯部Ｐａが生じて、クランクエッジの入力が一定時間以上ない時には、欠け歯判定カウンタ３６のカウント値が欠け歯判定値に到達し、欠け歯検出信号が出力される。
【００５０】
尚、欠け歯検出信号は、マイコン１０内において、例えば割り込み信号として使用される。また、欠け歯判定カウンタ３６は、例えば、自身のカウント値が欠け歯判定値と等しくなった後のクランクエッジの発生タイミング（即ち、欠け歯部終了位置のタイミング）で、欠け歯検出信号を出力する。よって、本実施形態では、第２気筒＃２と第３気筒＃３との各ＴＤＣ位置（図２参照）で、欠け歯検出信号が出力されることとなる。
【００５１】
一方、マイコン１０において、例えばＣＰＵ１１は、欠け歯判定カウンタ３６が欠け歯検出信号を出力したタイミング（欠け歯部終了位置のタイミング）から、クランクエッジが所定回数発生したタイミングにて、ガード用カウンタ３５、基準カウンタ３７及び角度カウンタ３８に初期値をセットする。
【００５２】
本実施形態では、図２に示すように、ＣＰＵ１１は、欠け歯部終了位置のタイミングから、クランクエッジが１２回発生したタイミングにて、基準カウンタ３７及び角度カウンタ３８に初期値として０をセットすると共に、次のクランクエッジ発生時までのガード値（即ち、ガード値の初期値）を逓倍数（ｎ）とするために、ガード用カウンタ３５に初期値として１をセットする。尚、こうしたカウンタ３５，３７，３８の初期化（初期値戻し）は、ＣＰＵ１１とは別のハードウェアによって実施しても良い。また、エンジンの１サイクルに１回（７２０°ＣＡ毎に）実施するようになっていても良い。
【００５３】
ところで、欠け歯部Ｐａでは、クランクエッジが２発抜けるため、クランクエッジ間隔が通常の３倍になる。
このため、欠け歯部終了位置において、何も処置をしないと、エッジ時間記憶レジスタ３３には、通常値の３倍の値（即ち、３０°ＣＡ分の時間を計測した値を逓倍数ｎで割った値）が記憶されることとなり、その結果、逓倍カウンタ３４から出力される逓倍クロックの周期が、通常の３倍になってしまう。
【００５４】
また、欠け歯部Ｐａの開始タイミングでのクランク位置（詳しくは、欠け歯部Ｐａの開始に該当するクランクエッジが発生するクランク位置であり、以下、欠け歯部開始位置という）において、何も処置をしないと、欠け歯部Ｐａの期間におけるガード値は、通常と同様に、前回のガード値から１０°ＣＡ分に相当する値（＝逓倍数ｎ）しか増えないこととなる。このため、欠け歯部Ｐａの期間において、基準カウンタ３７及び角度カウンタ３８の各値は、本当ならば３０°ＣＡ分に相当する値だけ増加するべきなのに、１０°ＣＡ分に相当する値しか増加しなくなる。
【００５５】
このため、ＣＰＵ１１は、下記（Ａ），（Ｂ）の補正処理を行う。
（Ａ）ＣＰＵ１１は、前述のクランクカウンタの値に基づいて、今回発生したクランクエッジが欠け歯部開始位置でのクランクエッジであると判定すると、ガード用カウンタ３５の値に２を加える。この処理により、欠け歯部Ｐａの期間におけるガード値は、前回のガード値から３０°ＣＡ分に相当する値（＝逓倍数ｎ×３）だけ増えた値となる（図２参照）。
【００５６】
（Ｂ）ＣＰＵ１１は、前述のクランクカウンタの値に基づいて、今回発生したクランクエッジが欠け歯部終了位置でのクランクエッジであると判定すると、今回のエッジ時間計測カウンタ３２による計測値を１／３にし、その１／３にした値をエッジ時間記憶レジスタ３３に記憶させる。換言すれば、欠け歯部終了位置から次のクランクエッジまでの期間において逓倍クロックを生成するための逓倍数を、通常値（＝ｎ）の３倍にする。
【００５７】
このような補正処理により、欠け歯部Ｐａの期間においても、角度カウンタ３８の値は、図２に示すように、欠け歯部Ｐａ以外の期間と同様の傾きで増加することとなる。
また、マイコン１０では、ハードクランク３０によって生成した角度信号の値（角度カウンタ３８の値）を用いて、各気筒に対する燃料噴射や点火を実施する。
【００５８】
ここで、図４を参照しつつ、気筒に対する点火の制御について説明する。尚、図４では、第３気筒＃３に点火する場合を例に挙げて表しているが、他の気筒についても同様である。
【００５９】
図４に示すように、本実施形態では、気筒のＢＴＤＣ６０°ＣＡのタイミングが、その気筒に関する点火パルス設定タイミングになっている。
そして、ＣＰＵ１１は、前述のクランクカウンタ又は角度カウンタ３８の値に基づいて、気筒のＢＴＤＣ６０°ＣＡのタイミングであることを検知すると、以下の処理を行う。  まず、ＣＰＵ１１は、点火タイミングを表す情報として、ＴＤＣからどれだけ前のクランク角のタイミングで点火装置への点火パルスをハイからローに変化させるかを表すオフアングルＯＡを算出する。この例においては、点火パルスのハイからローへの変化タイミング（立ち下がりタイミング）が、点火装置による点火タイミングとなる。また、本実施形態において、点火タイミングは、各気筒のＢＴＤＣ３０°ＣＡからＴＤＣ位置までの間に設定される。
【００６０】
そして、ＣＰＵ１１は、点火パルス設定タイミングからＴＤＣまでのクランク角（この例では６０°ＣＡ）であるセットアングルＳＡから、オフアングルＯＡを引いた値である差分角度（＝ＳＡ−ＯＡ）を算出する。
【００６１】
また、ＣＰＵ１１は、点火タイミングよりも前のタイミング（図４の例では、ＢＴＤＣ３０°ＣＡのタイミング）で点火パルスがハイになるように、点火パルスをハイにするための内部タイマをセットする。
【００６２】
更に、ＣＰＵ１１は、ＢＴＤＣ６０°ＣＡのタイミングにおける角度カウンタ３８の値に、差分角度（＝ＳＡ−ＯＡ）を加算した値を、コンペアレジスタにセットする。そして、マイコン１０では、角度信号の値（角度カウンタ３８の値）が上記コンペアレジスタの値と一致すると、点火パルスの出力レベルがハイからローに変化し、そのタイミングで点火装置による点火が行われる。このように、各気筒の点火は、角度信号に基づいて実施される。
【００６３】
次に、ハードクランク３０に角度信号を適切に発生させるために、ＣＰＵ１１が行う切換処理について、図５を用い説明する。この切換処理は、上記（Ａ），（Ｂ）の補正処理を含んでおり、クランクエッジが発生する毎に実行される。
【００６４】
尚、以下の説明において、欠け歯部開始相当位置とは、気筒＃１〜＃４のうち、ＴＤＣ位置よりも進角側に欠け歯部Ｐａが現れない気筒＃１，＃４のＴＤＣ位置を基準にして、気筒＃２，＃３のＴＤＣ位置と欠け歯部開始位置との相対位置関係と同じ位置関係にあるクランク位置である。本実施形態では、気筒＃２，＃３のＢＴＤＣ３０°ＣＡの位置が、欠け歯部開始位置であるため、気筒＃１，＃４のＢＴＤＣ３０°ＣＡの位置が、欠け歯部開始相当位置である。
【００６５】
同様に、欠け歯部終了相当位置とは、気筒＃１，＃４のＴＤＣ位置を基準にして、気筒＃２，＃３のＴＤＣ位置と欠け歯部終了位置との相対位置関係と同じ位置関係にあるクランク位置である。本実施形態では、気筒＃２，＃３のＴＤＣ位置が、欠け歯部終了位置であるため、気筒＃１，＃４のＴＤＣ位置が、欠け歯部終了相当位置である。
【００６６】
また、欠け歯部終了相当位置の１歯前位置とは、欠け歯部終了相当位置よりも１つ前のクランクエッジに対応するクランク位置であり、本実施形態では、気筒＃１，＃４のＢＴＤＣ１０°ＣＡの位置である。
【００６７】
図５に示すように、ＣＰＵ１１は、切換処理を開始すると、まずＳ１１０にて、前述のクランクカウンタの値に基づき、現在のクランク位置が欠け歯部開始相当位置であるか否かを判定し、現在のクランク位置が欠け歯部開始相当位置であればＳ１２０に進む。
【００６８】
そして、ＣＰＵ１１は、Ｓ１２０にて、切換回路４０（図３参照）を制御することにより、クランク信号のハードクランク３０への入力を禁止し、その後、Ｓ１５０に進む。尚、Ｓ１２０によるクランク信号の入力禁止状態は、後述するＳ１４０で許可されるまで継続する。
【００６９】
また、ＣＰＵ１１は、上記Ｓ１１０にて、現在のクランク位置が欠け歯部開始相当位置ではないと判定した場合には、Ｓ１３０に進む。そして、ＣＰＵ１１は、Ｓ１３０にて、前述のクランクカウンタの値に基づき、現在のクランク位置が欠け歯部終了相当位置の１歯前位置であるか否かを判定し、現在のクランク位置が欠け歯部終了相当位置の１歯前位置であればＳ１４０に進む。
【００７０】
そして、ＣＰＵ１１は、Ｓ１４０にて、切換回路４０を制御することにより、クランク信号のハードクランク３０への入力を許可し（換言すれば、禁止を解除し）、その後、Ｓ１５０に進む。
【００７１】
また、ＣＰＵ１１は、上記Ｓ１３０にて、現在のクランク位置が欠け歯部終了相当位置の１歯前位置ではないと判定した場合（即ち、現在のクランク位置が、欠け歯部開始相当位置と、欠け歯部終了相当位置の１歯前位置との、何れでもない場合）には、そのままＳ１５０に進む。
【００７２】
ＣＰＵ１１は、Ｓ１５０では、前述のクランクカウンタの値に基づき、現在のクランク位置が欠け歯部開始位置と欠け歯部開始相当位置との何れかであるか否かを判定し、現在のクランク位置が欠け歯部開始位置と欠け歯部開始相当位置との何れかであれば、Ｓ１６０に進む。
【００７３】
そして、ＣＰＵ１１は、Ｓ１６０にて、ガード用カウンタ３５の値に２を加え、その後、当該切換処理を終了する。尚、クランク位置が欠け歯部開始位置の場合に行われるＳ１６０の処理が、前述した（Ａ）の補正処理である。
【００７４】
また、ＣＰＵ１１は、上記Ｓ１５０にて、現在のクランク位置が欠け歯部開始位置と欠け歯部開始相当位置との何れでもないと判定した場合には、Ｓ１７０に進む。
そして、ＣＰＵ１１は、Ｓ１７０にて、前述のクランクカウンタの値に基づき、現在のクランク位置が欠け歯部終了位置と欠け歯部終了相当位置との何れかであるか否かを判定し、現在のクランク位置が欠け歯部終了位置と欠け歯部終了相当位置との何れかであれば、Ｓ１８０に進む。
【００７５】
そして、ＣＰＵ１１は、Ｓ１８０にて、今回のエッジ時間計測カウンタ３２による計測値を１／３にし、その１／３にした値をエッジ時間記憶レジスタ３３に記憶させる。そして、その後、当該切換処理を終了する。尚、クランク位置が欠け歯部終了位置の場合に行われるＳ１８０の処理が、前述した（Ｂ）の補正処理である。
【００７６】
一方、ＣＰＵ１１は、上記Ｓ１７０にて、現在のクランク位置が欠け歯部終了位置と欠け歯部終了相当位置との何れでもないと判定した場合には、そのまま当該切換処理を終了する。
【００７７】
このような切換処理では、Ｓ１１０〜Ｓ１４０の処理により、クランクエッジのうち、図２において「×」印を付けたクランクエッジが、ハードクランク３０に入力されることを禁止している。
【００７８】
ハードクランク３０への入力が禁止されるクランクエッジは、欠け歯部開始相当位置から欠け歯部終了相当位置までのクランク位置の範囲（以下、欠け歯部相当範囲Ｐｂという）で発生する２つ連続のクランクエッジであり、気筒＃１，＃４のＢＴＤＣ２０°ＣＡとＢＴＤＣ１０°ＣＡとで発生するクランクエッジ（以下、特定クランクエッジという）である。つまり、気筒＃１，＃４のＴＤＣ位置からみて、気筒＃２，＃３のＴＤＣ位置と欠け歯部Ｐａとの相対位置関係と同じ位置関係にある欠け歯部相当範囲Ｐｂで発生する特定クランクエッジを、ハードクランク３０に入力させないようにしている。
【００７９】
そして、このため、切換処理では、欠け歯部開始相当位置になったときも、欠け歯部開始位置になったときと同様にＳ１６０の処理（（Ａ）の補正処理）を行い、欠け歯部終了相当位置になったときも、欠け歯部終了位置になったときと同様にＳ１８０の処理（（Ｂ）の補正処理）を行っている。
【００８０】
よって、図２に示すように、気筒＃１，＃４のＢＴＤＣ３０°ＣＡからＴＤＣまでの欠け歯部相当範囲Ｐｂの期間においても、欠け歯部Ｐａの期間と同じ規則で１°ＣＡ分解能の角度信号が生成される（換言すれば、角度カウンタ３８の値が更新される）。
【００８１】
以上のように、マイコン１０は、クランクエッジのうち、欠け歯部相当範囲Ｐｂで発生する特定クランクエッジは故意に使用せずに、角度信号を生成している。その理由について説明する。
【００８２】
まず、仮に、図５の切換処理を変更して、Ｓ１１０〜Ｓ１４０の処理を行わないようにする（つまり、クランク信号のハードクランク３０への入力を禁止しないようにする）と共に、Ｓ１６０の処理は欠け歯部開始位置のときにだけ行い、Ｓ１８０の処理は欠け歯部終了位置のときにだけ行うようにしたとする。
【００８３】
その場合には、図６に示すように、全てのクランクエッジを使用して（つまり、特定クランクエッジも使用して）角度信号を生成することとなる。
すると、欠け歯部Ｐａの期間においては、角度カウンタ３８がカウントアップされる傾き（即ち、逓倍クロックの周期）が、直前のクランクエッジ間隔に基づいた値で更新されないのに対し、欠け歯部相当範囲Ｐｂの期間においては、角度カウンタ３８がカウントアップされる傾きが、特定クランクエッジの発生により１０°ＣＡ毎に更新されることとなる。よって、欠け歯部Ｐａの期間と欠け歯部相当範囲Ｐｂの期間とでは、各気筒のＴＤＣ位置からみて同じ相対位置の期間であるのに、角度信号の増加のしかたに違いが生じることとなる。
【００８４】
より具体的に説明すると、エンジン回転数が一定と見なされる状況であっても、細かく見れば、クランク軸の回転速度は変動している。例えば、クランク軸の回転速度は、クランク位置が、点火が実施された気筒のＴＤＣ位置を過ぎると増加傾向となり、その後、クランク位置が、次に点火を実施する気筒のＴＤＣ位置に近づくにつれて減少する。図２，図４，図６において、１０°ＣＡ毎のクランクエッジの間隔が一定でないのは、このためである。
【００８５】
よって、欠け歯部相当範囲Ｐｂの期間において、最初の特定クランクエッジが発生するときまでの逓倍クロックの周期を「Ｔ１」とし、最初の特定クランクエッジが発生してから２つ目の特定クランクエッジが発生するときまでの逓倍クロックの周期を「Ｔ２」とし、２つ目の特定クランクエッジが発生してから次のクランクエッジが発生するときまでの逓倍クロックの周期を「Ｔ３」とすると、Ｔ１は、欠け歯部Ｐａの期間における逓倍クロックの周期と同じになると考えられるが、Ｔ２，Ｔ３は、Ｔ１よりも大きくなると考えられる。例えば、「Ｔ１＜Ｔ２＜Ｔ３」の大小関係になると考えられる。
【００８６】
このため、欠け歯部Ｐａの期間と欠け歯部相当範囲Ｐｂの期間とでは、欠け歯部相当範囲Ｐｂの期間の方が、逓倍クロックの周期が大きくなり、角度カウンタ３８のカウントアップが遅く進むこととなる。
【００８７】
すると、図４で説明した手法によって点火タイミングを設定する場合、図６に示すように、欠け歯部Ｐａの期間と欠け歯部相当範囲Ｐｂの期間とでは、欠け歯部相当範囲Ｐｂの期間の方が、実際の点火タイミングが遅くなる（ＴＤＣ位置に近づく）。図６の例では、気筒＃２，＃３の点火タイミングよりも、気筒＃１，＃４の点火タイミングの方が遅くなる。このことは、全ての気筒で点火タイミングの設定値（前述のオフアングルＯＡ）が同じであっても、実際の点火タイミングが気筒間でばらついてしまうことを意味する。
【００８８】
これに対し、本実施形態のＥＣＵ１において、マイコン１０は、欠け歯部相当範囲Ｐｂの期間では、その期間に発生する２つの特定クランクエッジを使用せずに、欠け歯部Ｐａの期間と同じ規則で角度信号を生成する。このため、図２に示すように、欠け歯部Ｐａの期間と欠け歯部相当範囲Ｐｂの期間とで、角度信号の増加のしかたが同じになる。よって、図２における「点火パルス」の段に示すように、各気筒の点火タイミングを合わせることができる。
【００８９】
尚、図２における「点火パルス」の段において、点線で示したパルスは、図６における気筒＃１，＃４の点火パルスを比較用に重ねて記載したものである。また、ここでは、点火の制御を例に挙げて効果を説明したが、クランク位置と同期させるために角度信号を用いる他の制御（例えば燃料噴射の制御）についても、同様の効果（即ち、気筒間での制御動作のばらつきを抑制できるという効果）が期待できる。
【００９０】
また、本実施形態のＥＣＵ１では、角度信号を生成するためのクランク信号が、気筒判別用の基準位置部として、欠け歯部Ｐａを有する信号であるため、汎用性が高いという利点がある。
【００９１】
また、マイコン１０のＣＰＵ１１は、クランクエッジのうち、欠け歯部相当範囲Ｐｂで発生する特定クランクエッジがハードクランク３０（延いては、エッジ時間計測カウンタ３２）に入力されるのを、切換回路４０を制御することで禁止している。そして更に、ＣＰＵ１１は、欠け歯部Ｐａの終了に該当するクランクエッジ（欠け歯部終了位置でのクランクエッジ）が発生したときと、特定クランクエッジの次のクランクエッジ（欠け歯部終了相当位置でのクランクエッジ）が発生したときとの、各々において、エッジ時間計測カウンタ３２による今回の計測値を１／３に補正し、その補正後の値が逓倍クロックの生成に使用されるようにしている。
【００９２】
このため、全てのクランクエッジを用いて角度信号を生成するためのハードウェア回路（この例ではハードクランク３０）を用いて、特定クランクエッジを使用しない角度信号の生成を、実現することができる。
【００９３】
尚、本実施形態においては、特定クランクエッジが、特定のパルスエッジに該当している。そして、ＴＤＣ位置の直前に欠け歯部Ｐａが現れない気筒＃１，＃４が、前述の「特定の気筒」及び「特定パルス有り気筒」に該当し、ＴＤＣ位置の直前に欠け歯部Ｐａが現れる気筒＃２，＃３が、前述の「所定の気筒」及び「特定パルス無し気筒」に該当している。また、欠け歯部相当範囲Ｐｂが、前述の「特定範囲」に該当し、欠け歯部Ｐａが、前述の「特定相当範囲」に該当している。
【００９４】
［第２実施形態］
次に、第２実施形態のＥＣＵについて説明するが、ＥＣＵの符号としては、第１実施形態と同じ“１”を用いる。また、第１実施形態と同様の構成要素や処理についても、第１実施形態と同じ符号を用いる。
【００９５】
第２実施形態のＥＣＵ１は、第１実施形態のＥＣＵ１と比較すると、クランクエッジのうち、前述の特定クランクエッジ以外の所定のクランクエッジも使用せずに、角度信号を生成する。
【００９６】
この例では、クランクエッジのうち、欠け歯部開始位置、欠け歯部終了位置、欠け歯部開始相当位置、及び欠け歯部終了相当位置の、各々でのクランクエッジを含む３０°ＣＡ毎のクランクエッジ（即ち、この例では各気筒のＴＤＣ位置を基準にして３０°ＣＡ毎のクランクエッジ）だけを使用して、角度信号を生成する。つまり、その３０°ＣＡ毎のクランクエッジ間で発生するクランクエッジ（特定クランクエッジを含む）は、角度信号の生成に使用しない。
【００９７】
このため、ＣＰＵ１１は、図５の切換処理に代えて、図７の切換処理を行う。尚、以下の第２実施形態に関する説明において、３０°ＣＡ毎位置とは、各気筒のＴＤＣ位置を基準にして３０°ＣＡ毎のクランク位置である。また、３０°ＣＡ毎位置の１歯前位置とは、３０°ＣＡ毎位置よりも１０°ＣＡ前のクランクエッジに対応するクランク位置である。また、第１実施形態と同様に、ＣＰＵ１１は、図７の切換処理においては、前述のクランクカウンタの値に基づいて、現在のクランク位置を判別する。
【００９８】
図７に示すように、ＣＰＵ１１は、切換処理を開始すると、まずＳ２１０にて、現在のクランク位置が３０°ＣＡ毎位置であるか否かを判定し、現在のクランク位置が３０°ＣＡ毎位置であれば、Ｓ２２０に進む。
【００９９】
そして、ＣＰＵ１１は、Ｓ２２０では、現在のクランク位置が欠け歯部開始位置であるか否かを判定し、現在のクランク位置が欠け歯部開始位置でなければ、Ｓ２３０に進む。
ＣＰＵ１１は、Ｓ２３０では、切換回路４０を制御することにより、クランク信号のハードクランク３０への入力を禁止し、その後、Ｓ２６０に進む。尚、Ｓ２３０によるクランク信号の入力禁止状態は、後述するＳ２５０で許可されるまで継続する。また、Ｓ２３０の処理は、３０°ＣＡ毎のクランクエッジ間で発生する２つのクランクエッジ（つまり、今回発生したクランクエッジの１回後と、２回後の各クランクエッジ）がハードクランク３０に入力されるのを禁止するための処理である。
【０１００】
また、ＣＰＵ１１は、上記Ｓ２１０にて、現在のクランク位置が３０°ＣＡ毎位置ではないと判定した場合には、Ｓ２４０に進む。そして、ＣＰＵ１１は、Ｓ２４０にて、現在のクランク位置が３０°ＣＡ毎位置の１歯前位置であるか否かを判定し、現在のクランク位置が３０°ＣＡ毎位置の１歯前位置であれば、Ｓ２５０に進む。そして、ＣＰＵ１１は、Ｓ２５０にて、切換回路４０を制御することにより、クランク信号のハードクランク３０への入力を許可し（換言すれば、禁止を解除し）、その後、Ｓ２６０に進む。
【０１０１】
また、ＣＰＵ１１は、上記Ｓ２２０にて、現在のクランク位置が欠け歯部開始位置であると判定した場合にも、Ｓ２５０に進んで、クランク信号のハードクランク３０への入力を許可し、その後、Ｓ２６０に進む。
【０１０２】
また、ＣＰＵ１１は、上記Ｓ２４０にて、現在のクランク位置が３０°ＣＡ毎位置の１歯前位置ではないと判定した場合には、そのままＳ２６０に進む。
上記Ｓ２１０〜Ｓ２５０の処理により、クランクエッジのうち、３０°ＣＡ毎のクランクエッジだけが、ハードクランク３０に入力されることとなる。
【０１０３】
ＣＰＵ１１は、Ｓ２６０では、現在のクランク位置が３０°ＣＡ毎位置であるか否かを判定し、現在のクランク位置が３０°ＣＡ毎位置でなければ、そのまま当該切換処理を終了するが、現在のクランク位置が３０°ＣＡ毎位置であれば、Ｓ２７０に進む。
【０１０４】
そして、ＣＰＵ１１は、Ｓ２７０にて、図５のＳ１６０と同様に、ガード用カウンタ３５の値に２を加え、次のＳ２８０にて、図５のＳ１８０と同様に、今回のエッジ時間計測カウンタ３２による計測値を１／３にし、その１／３にした値をエッジ時間記憶レジスタ３３に記憶させる。そして、その後、当該切換処理を終了する。
【０１０５】
上記Ｓ２７０，Ｓ２８０の処理により、ハードクランク３０に１０°ＣＡ毎のクランクエッジが入力される場合と比較して、実質的な逓倍数とガード値とが３倍の値に変更されることとなる。
【０１０６】
以上の切換処理をＣＰＵ１１が行うことにより、ハードクランク３０は、クランクエッジのうち、３０°ＣＡ毎のクランクエッジだけを使用して、角度信号を生成することとなる。そして、このような第２実施形態のＥＣＵ１によっても、第１実施形態のＥＣＵ１と同様の効果が得られる。
【０１０７】
［第１変形例］
第１，第２実施形態において、クランク信号における気筒判別用の基準位置部は、所定角度毎のパルスエッジが抜ける欠け歯部Ｐａであったが、基準位置部としては、他のパルス配列規則によるものでも良い。例えば、基準位置部としては、所定角度毎のパルスエッジの列の途中に余分なパルスエッジ（いわゆる余分歯）が挿入されることで、パルスエッジの間隔が不等になる部分でも良い。
【０１０８】
一例を示すと、図８に示すクランク信号では、パルスエッジ（クランクエッジ）が、各気筒のＴＤＣ位置を含む３０°ＣＡ毎に発生するが、更に、気筒＃２，＃３のＢＴＤＣ１０°ＣＡにて、余分歯としてのパルスエッジ（以下単に、余分歯という）が発生するようになっている。このため、クランク信号において、気筒＃２，＃３のＢＴＤＣ３０°ＣＡ〜ＢＴＤＣ１０°ＣＡの部分、あるいは、気筒＃２，＃３のＢＴＤＣ１０°ＣＡ〜ＴＤＣの部分が、パルスエッジの間隔が不等な基準位置部となる。
【０１０９】
そして、マイコン１０にて、図８のようなクランク信号から角度信号を生成する場合、パルスエッジのうち、余分歯を使用せずに、例えば３０°ＣＡ毎のパルスエッジだけを用いて、角度信号を生成すれば良い。
【０１１０】
その場合、ＣＰＵ１１は、図７の切換処理を下記のように変更した処理を行えば良い。
即ち、図７におけるＳ２１０，Ｓ２２０，Ｓ２４０の判定内容を変更して、余分歯のハードクランク３０への入力を禁止するために、気筒＃２，＃３のＢＴＤＣ３０°ＣＡのタイミングでＳ２３０の処理を行い、気筒＃２，＃３のＴＤＣのタイミングで、Ｓ２５０の処理を行うようにすれば良い。尚、Ｓ２６０〜Ｓ２８０の処理をそのまま行えば良い。
【０１１１】
図８の例においては、余分歯が、特定のパルスエッジに該当することとなる。そして、ＴＤＣ直前の３０°ＣＡ期間に余分歯が発生する気筒＃２，＃３が、前述の「特定の気筒」及び「特定パルス有り気筒」に該当し、ＴＤＣ直前の３０°ＣＡ期間に余分歯が発生しない気筒＃１，＃４が、前述の「所定の気筒」及び「特定パルス無し気筒」に該当する。また、気筒＃２，＃３のＢＴＤＣ３０°ＣＡからＴＤＣまでの範囲が、前述の「特定範囲」に該当し、気筒＃１，＃４のＢＴＤＣ３０°ＣＡからＴＤＣまでの範囲が、前述の「特定相当範囲」に該当することとなる。
【０１１２】
［第２変形例］
角度信号を生成するために用いる回転信号としては、クランク信号に限らず、例えばカムセンサ２３が出力するカム信号でも良い。前述の通り、カムセンサ２３は、カム軸と共に回転するロータの外周に形成された歯を検出することによって、パルスエッジ（カムエッジ）を発生させるが、カム軸はクランク軸と同期して回転する回転体であるため、カムセンサ２３からのカム信号も、クランク軸が所定角度回転する毎にパルスエッジが発生する回転信号となる。
【０１１３】
一例を示すと、図９に示すカム信号では、パルスエッジ（カムエッジ）が、各気筒のＴＤＣ位置を含む９０°ＣＡ毎に発生するが、更に、何れかの気筒（この例では＃２）のＢＴＤＣ３０°ＣＡにて、気筒判別用の余分歯（余分歯としてのパルスエッジ）が発生するようになっている。このため、カム信号において、気筒＃２のＢＴＤＣ９０°ＣＡ〜ＢＴＤＣ３０°ＣＡの部分、あるいは、気筒＃２のＢＴＤＣ３０°ＣＡ〜ＴＤＣの部分が、パルスエッジの間隔が不等な基準位置部となる。
【０１１４】
そして、マイコン１０にて、図９のようなカム信号から角度信号を生成する場合、パルスエッジのうち、余分歯を使用せずに、例えば９０°ＣＡ毎のパルスエッジだけを用いて、角度信号を生成すれば良い。また、例えば、１８０°ＣＡ毎のパルスエッジだけを用いて、角度信号を生成しても良い。
【０１１５】
図９の例においては、余分歯が、特定のパルスエッジに該当することとなる。そして、ＢＴＤＣ３０°ＣＡで余分歯が発生する気筒＃２が、前述の「特定の気筒」及び「特定パルス有り気筒」に該当し、他の気筒＃１，＃３，＃４が、前述の「所定の気筒」及び「特定パルス無し気筒」に該当する。また、気筒＃２のＢＴＤＣ９０°ＣＡからＴＤＣまでの範囲が、前述の「特定範囲」に該当し、気筒＃１，＃３，＃４のＢＴＤＣ９０°ＣＡからＴＤＣまでの範囲が、前述の「特定相当範囲」に該当することとなる。
【０１１６】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述の数値も一例であり他の値でも良い。
例えば、ハードクランク３０への回転信号（クランク信号又はカム信号）の入力禁止／許可の切り換えは、ＣＰＵ１１によって（換言すればソフトウェア）によって実施することに限らず、ハードウェアによって実施するように構成しても良い。そのように構成すれば、ＣＰＵ１１の処理負荷を減らすことができる。更に、図５におけるＳ１６０，Ｓ１８０や図７におけるＳ２７０，Ｓ２８０のような補正処理も、ハードウェアによって実施するように構成すれば、ＣＰＵ１１の処理負荷を更に減らすことができる。
【０１１７】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を、課題を解決できる限りにおいて省略してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述したＥＣＵの他、当該ＥＣＵを構成要素とするシステム、当該ＥＣＵとしてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、角度信号の生成方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【０１１８】
１…ＥＣＵ（エンジン制御装置）、１０…マイコン、１１…ＣＰＵ、３０…ハードクランク、４０…切換回路
【図１】
0006003869.tif 000002
【図２】
0006003869.tif 000003
【図３】
0006003869.tif 000004
【図４】
0006003869.tif 000005
【図５】
0006003869.tif 000006
【図６】
0006003869.tif 000007
【図７】
0006003869.tif 000008
【図８】
0006003869.tif 000009
【図９】
0006003869.tif 000010