"クランク信号のエッジ間隔に基づいて、逓倍の角度クロックを生成する角度クロック生成部と、前記角度クロックに基づいて動作し、欠歯検出タイミングでリセットする角度カウンタと、欠歯検出タイミングでの前記角度カウンタのカウンタ値であって、リセットされる前のカウンタ値が、所定範囲内にないとき、前記角度カウンタのカウンタ値の異常を検出する監視部とを含むことを特徴とする、エンジン制御装置。クランク信号のエッジ間隔に基づいて、逓倍の角度クロックを生成する角度クロック生成部と、前記角度クロックに基づいて動作し、欠歯検出タイミングでリセットする角度カウンタと、前記角度カウンタのカウンタ値に基づいて立ち上がりエッジ及び立下りエッジのタイミングが決定される信号を出力する出力部と、欠歯検出タイミングを基準とした所定期間における前記信号の立ち上がりエッジ及び立下りエッジの発生状態に基づいて、前記角度カウンタのカウンタ値の異常を検出する監視部とを含むことを特徴とする、エンジン制御装置。前記監視部の機能は、エンジンの回転数が所定回転数以下である場合に無効化される、請求項1又は2に記載のエンジン制御装置。ところで、一般的なエンジン制御装置では、エンジンのクランク軸センサからの出力信号とエンジンのカム軸センサからの出力信号からの出力信号とに基づいて、クランク軸の回転角度を逐次計測し、角度カウンタを稼動させることによって、燃料噴射制御や点火時期制御などのタイミング生成を行っており、角度カウンタの動作安定性がエンジン制御における重要な要素である。ここで、エンジンの噴射/点火を司るマイコン回路の異常検出方法としては、クランク信号からの噴射/点火信号をソフトウェア処理又は外部ICで監視する方法が考えられる。通常の4サイクルエンジン制御としては、クランク軸2回転の720クランクアングル以下、単にCAとするのあるタイミングで、噴射/点火が行われており、この720CAに一度の割合で噴射/点火が行われていることを確認する必要があるが、この720CAはエンジンの回転数によって単位時間が変動する。従って、クランク軸の回転速度を考慮した監視が必要となるので、ソフトウェア処理又は外部ICでの監視では構成が非常に複雑となるという問題がある。例えば、ソフトウェア処理による監視の対象としては、マイコン機能として角度カウンタ部、タイマ部、汎用出力部等があり、ソフトウェアでのポーリング監視が考えられるが、監視イベントをクランク信号の受信イベントとすると、36歯の場合は10CAとなり、エンジン回転数が10krpmとすると約150μs毎に監視ソフトウェアが起動されることになり、ソフトウェア処理のCPU負荷に大きな影響を与える。また、外部ICの場合、クランク信号からの角度算出が必要となるため、非常に大きな回路規模となってしまう。そこで、本発明は、エンジンの噴射/点火を司るマイコン回路の異常を少オーバヘッドとなる方式で検出することができるエンジン制御装置の提供を目的とする。上記目的を達成するため、本発明の一局面によれば、クランク信号のエッジ間隔に基づいて、逓倍の角度クロックを生成する角度クロック生成部と、前記角度クロックに基づいて動作し、欠歯検出タイミングでリセットする角度カウンタと、欠歯検出タイミングでの前記角度カウンタのカウンタ値であって、リセットされる前のカウンタ値が、所定範囲内にないとき、前記角度カウンタのカウンタ値の異常を検出する監視部とを含むことを特徴とする、エンジン制御装置が提供される。本発明によれば、エンジンの噴射/点火を司るマイコン回路の異常を少オーバヘッドとなる方式で検出することができるエンジン制御装置が得られる。以下、図面を参照して、本発明を実施するための最良の形態の説明を行う。図1は、本発明の一実施例によるエンジン制御装置1の要部構成の一例を示すである。エンジン制御装置1は、図1に示すように、入力回路200と、統合IC202と、マイコンマイクロコンピューター100とを含む。統合IC202の波形整形部202aは、入力回路200を介して入力されるクランク軸センサ図示せずからの出力信号を整形して、クランク信号としてマイコン100に入力する。尚、マイコン100には、他の信号例えばカム軸センサからの出力信号が同様に入力されてよい。マイコン100は、図1に示すように、主に、クランク信号を処理し、噴射/点火信号を出力するように構成される。マイコン100は、汎用出力部20と、CPU26と、クランクタイマ28とを含む。図2は、マイコン100におけるクランク信号処理の一例実施例1を示すブロック図である。クランクタイマ28は、運用系102と、監視系104とを含む。運用系102は、エッジ検出部10と、角度クロック生成部12と、欠歯検出部14と、角度カウンタ部16と、タイマ部18とを含む。監視系104は、監視トリガ生成部30と、角度カウンタ判定部32とを含む。エッジ検出部10は、入力されるクランク信号のエッジを検出し、エッジ間隔を計測する。クランク信号は、クランク軸の角度位置を表す信号であり、例えば、所定のクランク角度例えば、6CA,10CA毎にエッジが発生する信号パルス列であってよい。尚、クランク軸の角度位置を示すためにクランクロータパルサロータの基準位置として数歯分例えば2歯分の欠歯が設定されている。従って、クランク信号は、そのパルス列の途中に所定パルス分例えば2パルス分のパルスが欠落する欠歯イベント以下、単に、欠歯ともいうが現れる。欠歯が現れる間隔は360°CA間隔である。角度クロック生成部12は、クランク信号のエッジ間隔に従い、所定の逓倍値の角度クロックを生成する。即ち、角度クロック生成部12は、クランク信号のエッジ間隔に同期した角度クロックであって、クランク信号よりも逓倍値の倍率だけ分解能が高い角度クロックを生成する。例えば、クランク信号が10CA毎のパルス列を発生し、逓倍値が10である場合は、角度クロックは、クランク信号と同期した1CA毎のパルス列を形成する。欠歯検出部14は、クランク信号のエッジ間隔に基づいて、欠歯を検出する。欠歯の検出方法は、多種多様であり、任意の方法が使用されてもよい。例えば、今回のエッジ間隔τbと前回のエッジ間隔τaとの比τb/τaが所定閾値Nthより大きい場合に、欠歯を検出してもよい。例えば、欠歯区間で2パルスが欠落される構成の場合、所定閾値Nthは、2付近の値例えば2.5であってよい。角度カウンタ部16は、角度クロックをソースとして動作するフリーランカウンタを含む。角度カウンタ部16は、角度クロックでカウントアップし、欠歯検出部14により欠歯が検出された場合に、リセットクリアする。尚、角度カウンタ部16は、360CA毎リセットするものであってもよいし、気筒情報に基づいて、720CA毎リセットするものであってもよい。タイマ部18は、角度カウンタ部16のカウンタ値角度カウンタ値ともいうに基づくコンペアマッチタイマ機能を有する。例えば、タイマ部18は、角度カウンタ部16のカウンタ値が、所定の設定値と一致した場合コンペアマッチに、割り込みを発生する。これにより、燃料の噴射タイミングや点火タイミング等がクランク角度に同期される。汎用出力部20は、タイマ部18からのコンペアマッチ時の割り込みやCPU26からの指示に基づいて、各種信号噴射/点火信号等を発生する。これにより、燃料の噴射や点火等が実行される。CPU26は、各種ソフトウェアに基づいて、欠歯検出時やコンペアマッチ時の割り込み等での各種処理を行う。監視トリガ生成部30及び角度カウンタ判定部32の動作については、図3を参照して説明する。図3は、監視トリガ生成部30及び角度カウンタ判定部32の動作を説明するためのタイムチャートである。図3には、上から順に、クランク信号、角度クロック、角度カウンタ値、監視トリガ、角度カウンタ値ラッチの状態が示される。監視トリガ生成部30は、角度クロック生成部12及び角度カウンタ部16を監視する監視トリガを発生する。監視トリガ生成部30は、図3に示すように、欠歯検出部14により欠歯が検出されたタイミングで監視トリガを発生する。即ち、監視トリガ生成部30は、欠歯検出イベントに応答して監視トリガを発生する。角度カウンタ判定部32は、監視トリガ生成部30からの監視トリガの発生時に、角度カウンタ部16のカウンタ値をラッチし、そのカウンタ値が所定範囲内であるか否かを判定する。尚、監視トリガの発生時にラッチされる角度カウンタ部16のカウンタ値は、監視トリガをもたらす欠歯検出イベントによりリセットされる前の角度カウンタ部16のカウンタ値である。角度カウンタ判定部32の判定結果は、角度クロック生成部12及び角度カウンタ部16の状態を表す。具体的には、角度カウンタ部16のカウンタ値が所定範囲内である場合には、角度クロック生成部12及び角度カウンタ部16に異常が無いことになり、角度カウンタ部16のカウンタ値が所定範囲外である場合には、角度クロック生成部12及び/又は角度カウンタ部16に異常があることになる又は異常の可能性があることになる。この場合、CPU割り込み通知などの異常処理が実行されてもよい。尚、所定範囲は、1点1つ値のみで規定されてもよいが、クランク信号へのノイズ重畳やパルス抜けを考慮して、ある範囲で規定される。角度カウンタ部16が各欠歯検出イベント発生時にリセットする構成の場合即ち、360CA毎にリセットする構成の場合、クランク軸1周分の角度カウンタ値は360が正しい値であるが、所定範囲は、ノイズ重畳やパルス抜けを考慮して、355~364といった幅を有する範囲であってよい。角度カウンタ部16が1回おきの欠歯検出イベント発生時にリセットする構成の場合即ち、720CA毎にリセットする構成の場合、クランク軸2周分の角度カウンタ値は720が正しい値であるが、所定範囲は、ノイズ重畳やパルス抜けを考慮して、715~724といった幅を有する範囲であってよい。このように本実施例によれば、外部ICによるコスト増加やCPUの処理負荷の増加を回避しつつ、マイコン簡易回路だけの低コストとなる構成で、角度カウンタ部16のカウンタ値の異常を検出することができる。図4は、監視トリガ生成部30の内部機能の一例を示す図である。図5は、図4に示す監視トリガ生成部30の動作例を示すタイミングチャートである。監視トリガ生成部30は、図4に示すように、エンジン回転数保護部30aと、監視トリガ出力部30bとを含む。エンジン回転数保護部30aは、エンジンが低回転域にある場合例えば、1000rpm未満である場合、監視イネーブルを無効状態とする。監視トリガ出力部30bは、監視イネーブルが無効状態Loレベルとされると、監視トリガを出力させない図5のY部参照。即ち、監視トリガが本来発生すべき場合欠歯検出イベントでも、監視イネーブルが無効状態である場合には、監視トリガが角度カウンタ判定部32へと入力されない。このようにして、エンジン数が低回転域にある場合に、角度カウンタ判定部32による監視機能が無効化され、エンジン数が低回転域を越えた場合のみ、監視イネーブルが有効とされて、欠歯検出イベントに応じて監視トリガが生成出力される図5参照。これは、エンジンの低回転域は、回転数の変動が激しいため、ハードウェア回路での欠歯検出の簡易的なアルゴリズムでは、欠歯を誤検出してしまう可能性が高くなるためである。ここで、クランク信号のエッジ間のクロック数=[クランク信号のエッジ間隔]/[マクロクロック周期]=[1/{エンジン回転数}/{クランク軸ロータ歯数}]/[1/{マクロ動作周波数}]の関係が成り立つ。この関係に基づいて、例えばエンジン回転数が低回転域にある場合のエッジ間のクロック数の範囲を導出換算しておき、ドラバソフトウェアによりクランク信号のエッジ間隔から算出されたエッジ間のクロック数に基づいて、エンジン回転数が低回転域にあるか否かが判定されてもよい。尚、クランク軸ロータ歯数は、エンジン構造から既知であり、マクロ動作周波数マクロクロック周期はマイコン100の構成から既知である。図6は、マイコン100におけるクランク信号処理の他の一例実施例2を示すブロック図である。図6に示す例では、図2に示した例に対して、角度カウンタ判定部32に代えて角度クロック判定部34を有し、クランクタイマ28Aにおいて、角度クロック生成部12により生成される角度クロックが、角度クロック判定部34に入力される点が主に異なる。角度クロック判定部34は、角度クロックをソースとして動作するフリーランカウンタ角度カウンタを含む。角度カウンタ部16は、角度クロックでカウントアップし、欠歯検出部14により欠歯が検出された場合に、リセットクリアする。角度クロック判定部34は、角度カウンタ判定部32と同様、監視トリガ生成部30からの監視トリガの発生時に、角度カウンタ部16のカウンタ値をラッチし、そのカウンタ値が所定範囲内であるか否かを判定する。角度クロック判定部34は、更に、監視トリガ生成部30からの監視トリガの発生時に、自身の角度カウンタのカウンタ値が、所定範囲内であるか否かを判定する。これらの所定範囲は、互いに同じであってよく、それぞれ、1つ値のみで規定されてもよいが、クランク信号へのノイズ重畳やパルス抜けを考慮して、ある範囲で規定される。例えば、同様に、角度カウンタ部16が各欠歯検出イベント発生時にリセットする構成の場合即ち、360CA毎にリセットする構成の場合、クランク軸1周分の角度カウンタ値は360が正しい値であるが、所定範囲は、ノイズ重畳やパルス抜けを考慮して、355~364といった幅を有する範囲であってよい。角度カウンタ部16が1回おきの欠歯検出イベント発生時にリセットする構成の場合即ち、720CA毎にリセットする構成の場合、クランク軸2周分の角度カウンタ値は720が正しい値であるが、所定範囲は、ノイズ重畳やパルス抜けを考慮して、715~724といった幅を有する範囲であってよい。図6に示す例によれば、監視系104Aにおいても角度カウンタを実装して監視を行うことで、角度カウンタ部16のカウンタ値の異常発生時の要因が、角度クロック生成部12にあるのか、又は、角度カウンタ部16にあるのかを特定することが可能となる。具体的には、角度カウンタ部16のカウンタ値が所定範囲外であり、且つ、角度クロック判定部34の角度カウンタのカウンタ値が所定範囲外である場合には、角度クロック生成部12の逓倍機能に異常がある可能性が高いと判断することができる。この場合、CPU割り込み通知などの異常処理が実行されてもよい。例えば、角度クロック生成部12の逓倍機能に異常がある場合、逓倍率を変更することで最低限の噴射/点火の動作を継続させることが可能である。また、角度カウンタ部16のカウンタ値が所定範囲外であり、且つ、角度クロック判定部34の角度カウンタのカウンタ値が所定範囲内である場合には、角度カウンタ部16に異常がある可能性が高いと判断することができる。この場合、CPU割り込み通知などの異常処理が実行されてもよい。例えば、角度カウンタ部16の角度カウンタに代えて、監視系104Aの角度カウンタを運用系に切り替えることで、噴射/点火の動作を継続させることが可能である。このように図6に示す例では、監視系104Aはマイコンの完全二重系ではなく、実質的に角度カウンタのみを実装するので、回路規模を増大させることなく、低コストでの機能安全対応が可能となる。尚、図6に示す例においても、監視トリガ生成部30は、図4に示した構成エンジン回転数保護機能を有してもよい。この場合、角度クロック判定部34による監視機能は、エンジンが低回転域にある場合に無効化され、エンジンが低回転域を超えた場合のみ、有効化される。図7は、マイコン100におけるクランク信号処理の他の一例実施例3を示すブロック図である。図7に示す例では、図2に示した例に対して、監視系104Bにおいて角度カウンタ判定部32に代えてポート出力判定部38を有し、クランクタイマ28Bにおいて、角度カウンタ部16のカウンタ値がポート出力判定部38に入力されず、汎用出力部20の出力がポート出力判定部38に入力される点が主に異なる。図8は、ポート出力判定部38によるポート出力監視に関連した各種信号のタイミングチャートである。図8には、上から順に、クランク信号、欠歯イベント、角度カウンタ、4気筒エンジンの場合の噴射信号、点火信号及び基準信号の波形が示される。尚、クランク信号は、概略的に示されており、パルスは1本の縦線で表されている。また、図8に示す例では、角度カウンタは、720CA毎リセットする態様で示されている。尚、クランク信号における欠歯イベント間のパルスの数は、実際とは異なりうる適当な数で図示されている。噴射信号、点火信号及び基準信号は、汎用出力部20のポート出力として出力される。基準信号は、噴射信号及び点火信号と同様、角度カウンタ部16のカウンタ値が、それぞれの所定の設定値と一致した場合ライズエッジコンペアマッチに、立ち上がり、角度カウンタ部16のカウンタ値が、それぞれの所定の設定値と一致した場合フォールエッジコンペアマッチに、立ち下がるパルス出力である。尚、基準信号は、他の制御装置ECUで使用されるクランク回転の基準位置例えば上死点:TDCTopDeadCenterを表す信号等であってよい。図8に示すように、各気筒の噴射/点火信号は、角度カウンタ部16のカウンタ値に基づいて、720CA毎に一度のハルス出力であり、基準信号は、角度カウンタ部16のカウンタ値に基づいて、360CA毎に一度のハルス出力である。ポート出力判定部38は、以下で詳説するように、このクランク軸の角度回転周期をベースとして、ポート出力の監視を行う。ポート出力判定部38は、汎用出力部20のポート出力を監視し、噴射信号等が、クランク軸の角度回転周期毎に、正常に出力されているか否かを判定する。ここで、上述の如く、噴射信号等は、クランク軸の所定角度回転周期毎720CA毎又は360CA毎に、1度出力されるが、これは、角度カウンタ部16のカウンタ値が正常であることが前提である。角度カウンタ部16のカウンタ値に異常がある場合には、例えば汎用出力部20から噴射信号が出力されなかったり、立ち上がりだけして立ち下がらないパルスとして出力されうる。従って、ポート出力判定部38は、汎用出力部20のポート出力を監視することで、角度カウンタ部16のカウンタ値の異常を検出することができる。図9は、ポート出力判定部38の動作を説明するブロック図であり、正常時の状態を示す図である。図10は、ポート出力判定部38の動作を説明するブロック図であり、異常時の状態を示す図である。図11は、ポート出力判定部38による異常検出処理の流れを示すフローチャートである。図9及び図10には、上から順に、クランク信号、角度クロック、角度カウンタ、監視対象のポート出力、監視フラグライズ、監視フラグフォール、監視トリガ及び監視周期の波形が示される。ここでは、一例として、角度カウンタは、360CA毎リセットする態様で示されている。監視周期は、監視対象のポート出力の周期720CA毎又は360CA毎に応じて設定される。例えば、360CA毎1度出力されるポート出力に対しては、360CA毎に監視を行う必要があり、監視周期は、360CA毎に毎回設定される。他方、720CA毎1度出力されるポート出力に対しては、720CA毎に監視を行う必要があり、監視周期は、360CA毎に一回おきに設定される。尚、図9及び図10に示す例では、720CA毎1度出力されるポート出力に対する監視が想定されており、監視周期は、360CA毎に一回おきに設定されている即ち、360CA毎に、監視対象周期と、監視非対称周期とを交互に繰り返す。この場合、監視対象周期は、720CAの前半区間と後半区間0CAから360CAまでを前半区間、360CAから720CAまでを後半区間のうちの監視対象となるポート出力が発生する区間に設定される。監視周期は、ソフトウェアにより設定されてよい。また、監視対象のポート出力は、噴射信号、点火信号及び基準信号等のいずれかであってもよいし、いずれか複数全てを含むのそれぞれであってもよい。ポート出力判定部38は、汎用出力部20のポート出力の変化点立ち上がりエッジ及び立下りエッジの両エッジを履歴保持するフラグを有する。具体的には、ポート出力判定部38は、汎用出力部20のポート出力の立ち上がりエッジを履歴保持する監視フラグライズと、汎用出力部20の同ポート出力の立下りエッジを履歴保持する監視フラグフォールとを有する。監視フラグライズは、図9に示すように、汎用出力部20のポート出力の立ち上がりエッジの発生時、即ち角度カウンタ部16のカウンタ値が、当該ポート出力に対応した所定の設定値オン用の設定値と一致した場合ライズエッジコンペアマッチに、オンとなり、監視トリガの立下り時にオフとなる。また、監視フラグフォールは、図9に示すように、汎用出力部20のポート出力の立下りエッジの発生時、即ち角度カウンタ部16のカウンタ値が、当該ポート出力に対応した所定の設定値オフ用の設定値と一致した場合フォールエッジコンペアマッチに、オンとなり、監視トリガの立下り時にオフとなる。図11に示すように、ポート出力判定部38は、監視トリガの立ち上がり時図11のステップ1100に、監視フラグの状態をチェックする図11のステップ1102。監視フラグライズと監視フラグフォールとが、0,0である場合、即ち双方のフラグがゼロである場合は、ステップ1104に進み、0,1である場合、ステップ1106に進み、1,0である場合、ステップ1108に進み、1,1である場合、ステップ1110に進む。ここで、角度カウンタ部16のカウンタ値が正常である場合、図9に示すように、ライズエッジコンペアマッチ及びフォールエッジコンペアマッチが順次発生し、汎用出力部20のポート出力が正常に出力されるので、監視トリガの発生時は、監視フラグライズと監視フラグフォールとが共にオンとなる即ち、1,1となる。従って、図11のステップ1110では、ポート出力判定部38は、正常動作であると判定する。尚、その後、監視トリガの立下がり時に監視フラグがクリアされる。他方、角度カウンタ部16のカウンタ値が異常である場合、監視トリガの発生時は、監視フラグライズと監視フラグフォールの少なくともいずれかがオフとなる。例えば、図10に示す例では、角度カウンタ部16のカウンタ値は、ライズエッジコンペアマッチとなった後に、図10でX1にて示すように、異常により飛び上がっている。これにより、図10でX2にて示すように、正常時にはその後に生じるはずのフォールエッジコンペアマッチが発生せず非マッチ、監視フラグフォールがオフのまま、監視トリガが発生する。即ち、この場合、監視トリガの発生時は、監視フラグライズがオンとなり、監視フラグフォールがオフとなる即ち、1,0となる。従って、図11のステップ1108では、ポート出力判定部38は、異常動作であると判定する。この場合、異常処理として、ポート出力が強制的にネゲートされる図10のX3参照。これにより、フォールエッジコンペアマッチとならず、ポート出力がオン状態を維持するのを防止することができる。また、図11のステップ1104及び1106では、ポート出力判定部38は、監視機能に異常の可能性があると判断して、監視機能の初期化を行う。但し、監視機能を初期化しても依然としてステップ1104に至る場合には、ポート出力判定部38は、運用系102の異常角度カウンタ部16のカウンタ値の異常を含むの可能性があると判断してもよい。尚、図7以降に示す例実施例3では、コンペアマッチの条件は、角度カウンタ部16のカウンタ値が、所定の設定値と一致することであるが、角度カウンタ部16のカウンタ値が、所定の設定値以上であることであってもよい。この場合、監視周期を適切に設定することで、角度カウンタ部16のカウンタ値の異常を同様に検出することができる。また、図7以降に示す例実施例3においても、監視トリガ生成部30は、図4に示した構成エンジン回転数保護機能を有してもよい。この場合、ポート出力判定部38による監視機能は、エンジンが低回転域にある場合に無効化され、エンジンが低回転域を超えた場合のみ、有効化される。ところで、上述した実施例3においては、監視対象周期毎に、監視対象のポート出力が少なくとも1回は正常に出力されていることを監視できるものの、監視対象のポート出力が角度カウンタ部16のカウンタ値の異常に起因して複数回出力されている場合を検出することができない。例えば、本来、360CA毎に1回出力されるはずのポート出力が、360CA毎に2回出力される場合でも、監視トリガの発生時は、監視フラグライズと監視フラグフォールとが共にオンとなり、正常とみなされる。そこで、かかる異常を検出するための構成が追加されてもよい。具体的には、監視フラグライズがオンであるときに、ポート出力がオンとなった場合に、角度カウンタ部16のカウンタ値の異常の可能性を検出することとしてもよい。以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなく、上述した実施例に種々の変形及び置換を加えることができる。例えば、上述した実施例では、エンジンが低回転域にある場合に、監視トリガを出力しないように構成されているが、かかる機能図4に示したエンジン回転数保護部30aは省略されてもよい。即ち、エンジンの回転数に無関係に、監視トリガが生成出力されてもよい。例えば、ソフトウェアで欠歯判定を行う場合や、ハードウェア回路として複雑な欠歯判定のアルゴリズムに対応する場合等であって、エンジンが低回転域においても精度良く欠歯を検出できる構成であれば、図4に示したエンジン回転数保護部30aが省略されてもよい。また、上述した実施例では、ポート出力のアウトプットコンペア動作については、角度カウンタが例示されているが、時間カウンタが使用されてもよい。カウンタの動作ソース自体は任意であってよい。"