(57)【特許請求の範囲】
【請求項１】
プログラムを実行するＣＰＵと、
エンジンのクランク軸の回転に対応した所定角度間隔毎のパルスのパルス列をイベントパルス列として入力し、前記ＣＰＵに接続されたタイマ部と、を有し、
前記タイマ部は、所定のイベントパルス列のパルス間隔毎に初期値から計数動作を行う第１カウンタと、
第１参照値が設定される第１カウントレジスタと、
前記所定のイベントパルス列のパルス間隔毎に計数量が前記第１カウンタの複数倍になるように初期値から計数動作を行う第２カウンタと、
前記所定のイベントパルス列のパルス間隔毎に前記第１カウンタの計数値をホールドする第２カウントレジスタと、
前記第１カウンタによる前記パルス間隔毎の計数値が前記第１カウントレジスタに設定された第１参照値以上になる第１状態と、前記第２カウンタによる前記パルス間隔毎の計数値が前記第２カウントレジスタがホールドしている値以下になる第２状態と、の何れも検出可能な検出回路と、を備え、
前記ＣＰＵは、前記検出回路による検出結果に基づいて前記クランク軸の定位置を前記パルス列のパルス間隔の相違に基づいて判別する、半導体データ処理装置。
【請求項２】
請求項１において、前記検出回路は、前記第１状態の成立を検出する第１検出モードと、前記第２状態の成立を検出する第２検出モードと、の何れも選択可能である、半導体データ処理装置。
【請求項３】
請求項２において、前記検出回路は、更に、前記第１状態及び前記第２状態の双方が成立する第３状態を検出する第３検出モードを選択可能である、半導体データ処理装置。
【請求項４】
請求項１において、前記検出回路は、前記第１状態及び前記第２状態の双方の成立を検出する第３検出モードを選択可能である、半導体データ処理装置。
【請求項５】
請求項１、２又は４において、前記第２カウンタにおける前記第１カウンタの計数量の複数倍である倍数を指定する倍数設定レジスタを有する、半導体データ処理装置。
【請求項６】
請求項２において、前記第１検出モード、又は前記第２検出モードのいずれを選択するかを指示する検出モードレジスタを有する、半導体データ処理装置。
【請求項７】
請求項３において、前記第１検出モード、又は前記第２検出モード、又は前記第３検出モードのいずれを選択するかを指示する検出モードレジスタを有する、半導体データ処理装置。
【請求項８】
請求項５，６、又は７において、前記倍数設定レジスタ及び前記検出モードレジスタは前記ＣＰＵのアドレス空間に配置されたレジスタである、半導体データ処理装置。
【請求項９】
請求項５において、前記第２カウンタは前記第１カウンタによる＋１のインクリメント毎に、直前の計数値に前記倍数設定レジスタの設定値を加算するインクリメント動作を行う、半導体データ処理装置。
【請求項１０】
請求項２において、前記タイマ部からの割り込み要求に応答して前記ＣＰＵへの割り込みを制御する割込み制御部を更に有し、
前記検出回路は、前記第１検出モードが指定されているとき前記第１状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力し、前記第２検出モードが指定されているとき前記第２状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力する、半導体データ処理装置。
【請求項１１】
請求項３において、前記タイマ部からの割り込み要求に応答して前記ＣＰＵへの割り込みを制御する割込み制御部を更に有し、
前記検出回路は、前記第１検出モードが指定されているとき前記第１状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力し、前記第２検出モードが指定されているとき前記第２状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力し、前記第３検出モードが指定されているとき前記第３状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力する、半導体データ処理装置。
【請求項１２】
クランク角センサの出力を受けて、エンジンのクランク軸の回転に対応した所定角度間隔毎のパルスのパルス列を出力するインタフェース部と、
前記インタフェース部から出力される前記パルス列を入力し、前記クランク軸の定位置を前記パルス列のパルス間隔の相違に基づいて判別するデータ処理部と、を有する電子制御装置であって、
前記データ処理部は、所定のイベントパルス列のパルス間隔毎に初期値から計数動作を行う第１カウンタと、
第１参照値が設定される第１カウントレジスタと、
前記所定のイベントパルス列のパルス間隔毎に計数量が前記第１カウンタの複数倍になるように初期値から計数動作を行う第２カウンタと、
前記所定のイベントパルス列のパルス間隔毎に前記第１カウンタの計数値をホールドする第２カウントレジスタと、
前記クランク軸の定位置を判別するために、前記第１カウンタによる前記パルス間隔毎の計数値が前記第１カウントレジスタに設定された第１参照値以上になる第１状態と、前記第２カウンタによる前記パルス間隔毎の計数値が前記第２カウントレジスタがホールドしている値以下になる第２状態と、の何れも検出可能な検出回路と、
前記検出回路による検出結果に基づいてエンジン制御を行う制御回路と、を有する、エンジン制御装置。
【請求項１３】
請求項１２において、前記クランク軸の定位置を判別するための検出モードが設定される検出モードレジスタを更に有し、
前記検出回路は、前記クランク軸の定位置を判別するために、前記検出モードレジスタの状態に従って、前記第１状態の成立を検出する第１検出モード、又は前記第２状態の成立を検出する第２検出モードの何れかの検出モードに設定される、エンジン制御装置。
【請求項１４】
請求項１２において、前記クランク軸の定位置を判別するための検出モードが設定される検出モードレジスタを更に有し、
前記検出回路は、前記クランク軸の定位置を判別するために、前記検出モードレジスタの状態に従って、前記第１状態の成立を検出する第１検出モード、前記第２状態の成立を検出する第２検出モード、又は前記第１状態及び前記第２状態の双方の成立を検出する第３検出モードの何れかの検出モードに設定される、エンジン制御装置。
【請求項１５】
請求項１２において、前記検出回路は、前記クランク軸の定位置を判別するための検出モードとして、前記第１状態及び前記第２状態の双方の成立を検出する第３検出モードが設定される、エンジン制御装置。
【請求項１６】
請求項１３又は１４において、前記第２カウンタにおける前記第１カウンタの計数量の複数倍である倍数が指定される倍数設定レジスタを更に有する、エンジン制御装置。
【請求項１７】
請求項１６において、前記第２カウンタは前記第１カウンタによる＋１のインクリメント毎に、直前の計数値に前記倍数設定レジスタの設定値を加算するインクリメント動作を行う、エンジン制御装置。
【請求項１８】
請求項１６又は１７において、前記データ処理部はＣＰＵを有し、
前記倍数設定レジスタ及び前記検出モードレジスタは前記ＣＰＵのアドレス空間に配置されたレジスタである、エンジン制御装置。
【請求項１９】
請求項１８において、前記データ処理部は半導体集積回路によって構成されたマイクロコンピュータである、エンジン制御装置。
【請求項２０】
請求項１６において、前記エンジンのクランク軸の回転に対応した所定角度間隔は第１角度と前記第１角度の複数倍の第２角度であり、
前記パルス列のパルス間隔は、前記第１角度に対応する第１パルス間隔と、前記第２角度に対応する第２パルス間隔であり、
前記倍数設定レジスタに設定可能な倍数は、前記第２角度に対する第１角度の前記複数倍の倍数に対応する値よりも小さく、且つ１よりも大きな値である、エンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体データ処理装置におけるパルス検出技術、エンジン制御装置におけるクランク軸の回転に応ずるパルス検出技術に関し、例えばガソリン自動車やハイブリッド型自動車のエンジン制御に適用して有効な技術に関する。
【背景技術】
【０００２】
従来より、エンジン制御装置では、クランク軸センサ，水温センサ，空気温センサ等の各種センサからの信号を入力して最適な燃料噴射制御や点火時期制御を行っている。ここで、クランク軸センサからの信号であるクランク信号は、エンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列をなしている。そして、エンジン制御装置は、例えばそのクランク信号の逓倍に周波数を有する逓倍クロック（周期がクランク信号の周期の逓倍数分の１であるクロック）を生成すると共に、その逓倍クロックにより、クランク軸の回転角度（いわゆるクランク角）を表すクランクカウンタをカウントアップさせ、そのクランクカウンタの値に基づきエンジン回転に同期した制御を行うようにしたものがある。このようにすることで、元のクランク信号よりも細かい分解能でクランク角を把握できるようになる。
【０００３】
ここで、クランク信号はそのパルス列の途中にパルスを抜いた欠歯部（基準位置部分）を有する。例えばクランク信号は６０パルス毎に２パルス抜ける欠歯構成になっているとき、この欠歯部はエンジン１サイクル（クランク回転角度７２０度）中に２箇所、即ちクランク回転角度３６０度ごとに１箇所現れる。エンジン制御ではエンジンサイクルに同期した制御を行うためにクランク信号のパルス列に対して欠歯部の検出を行う。
【０００４】
欠歯部を検出するには、例えばクランク信号の逓倍の周波数を持つ逓倍クロック信号をクランク信号のパルス毎に計数することによってクランク信号のパルス間隔を測定する。そして、今回測定中のパルス間隔の計数値が、欠歯のないパルス間隔の計数値を所定の欠歯判定比倍した参照値以上になると、当該今回計測中のパルス間隔が欠歯部であると判定する。クランク信号のパルス列に対する欠歯検出動作などは特許文献１乃至４に記載がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１３３６１４号公報
【特許文献２】特開２００１−２７１７００号公報
【特許文献３】特開２００６−１２５２４０号公報
【特許文献４】特開２０１０−０２５０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明者は欠歯検出について検討したところ以下の課題を見出した。
【０００７】
第１に、クランクはピストンの死点直後に対応する位置で加速度が大きくなるので、上死点で燃焼工程に入るピストンの上死点直後の位置で欠歯部を検出することになる場合には、欠歯部のパルス間隔の計数値が前記参照値にならないことが予想され、これによって欠歯検出を誤る虞のあることが見出された。
【０００８】
第２に、第１の問題点を解決するために、前後のパルス間隔の実際の計数値の大小関係によって欠歯検出同さえを行えばよいが、その場合には前後の計数値を実際に計測して、除算を行ってその比率が閾値を超えているか否かを判別しなければならず、処理に時間を要し、エンジン制御のリアルタイム性に問題のあることが明らかにされた。
【０００９】
第３に、ハイブリッド自動車のようにモータ駆動で走行しながらエンジンを始動するような場合には低速走行時にエンジンや回転センサの振動が大きくなってパルス間隔の計数値に対して誤差が大きくなり、第１の場合と同様に欠歯検出を誤る虞のあることが見出された。
【００１０】
このような課題を解決するための手段等を以下に説明するが、その他の課題と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される実施の形態のうち代表的ものの概要を簡単に説明すれば下記の通りである。
【００１２】
すなわち、所定のイベントパルス列のパルス間隔毎に第１カウンタで初期値からクロック信号を計数すると共に、前記パルス間隔毎に前記第１カウンタの計数値をレジスタにホールドし、更に、前記パルス間隔毎に計数量が前記第１カウンタの複数倍になるように第２カウンタで初期値からクロック信号を計数する。この動作を通じて、第１カウンタの計数値が第１参照値以上になる第１状態と、パルス間隔毎に第２カウンタの計数値が前記レジスタのホールド値以下になる第２状態と、の何れも検出可能とするタイマ機能を採用する。
【発明の効果】
【００１３】
本願において開示される実施の形態のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、前記第１状態によって前の小さなパルス間隔を基準に後に大きなパルス間隔があることを、第２状態によって前の大きなパルス間隔を基準に後に小さなパルス間隔があることを判別可能になり、欠歯検出の信頼性を向上させることが可能になる。
【図面の簡単な説明】
【００１５】
【図１】図１はタイマ部の一例を示すブロック図である。
【図２】図２はエンジン制御システムを例示するブロック図である。
【図３】図３はマイクロコンピュータの一例を示すブロック図である。
【図４】図４は図１のタイマにおける欠歯検出処理動作の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１６】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１７】
〔１〕＜ハード的に短イベントパルス基準の長イベントパルス検出とその逆検出＞
代表的な実施の形態に係る半導体データ処理装置（１１）は、プログラムを実行するＣＰＵと、前記ＣＰＵに接続されたタイマ部（３１）とを有する。前記タイマ部は、所定のイベントパルス列のパルス間隔毎に初期値から計数動作を行う第１カウンタ（１０２）と、第１参照値が設定される第１カウントレジスタ（１０４）とを有する。更に、前記所定のイベントパルス列のパルス間隔毎に計数量が前記第１カウンタの複数倍になるように初期値から計数動作を行う第２カウンタ（１０３）と、前記所定のイベントパルス列のパルス間隔毎に前記第１カウンタの計数値をホールドする第２カウントレジスタ（１０５）とを有する。更に、前記第１カウンタによる前記パルス間隔毎の計数値が前記第１カウントレジスタに設定された第１参照値以上になる第１状態と、前記第２カウンタによる前記パルス間隔毎の計数値が前記第２カウントレジスタがホールドしている値以下になる第２状態と、の何れも検出可能な検出回路（１０６，１０７，１０８）を備える。
【００１８】
これによれば、第１状態の判別により、第１カウンタによる参照値よりも小さな計数値に応ずるパルス間隔（小さなパルス間隔）に対して、第１カウンタによる参照値以上の計数値に応ずるパルス間隔（大きなパルス間隔）を判別することが可能になる。第２状態の判別により、第１カウンタの計数量の複数倍の計数を行う第２カウンタによる計数値が一つ前のパルス間隔における第１カウンタの計数値よりも小さいこと、即ち、第１カウンタによる大きなパルス間隔の計数値に比べて、第２カウンタによる小さなパルス間隔の計数値の方が小さいことを判別可能になる。要するに、前記第１状態を検出することによって前の小さなパルス間隔を基準に後に大きなパルス間隔があることを、第２状態を検出することによって前の大きなパルス間隔を基準に後に小さなパルス間隔があることを判別可能になる。欠歯部を含む複数パルス間隔の各計数値が小さくなる事態の発生が予想されるとき、第１状態の検出では欠歯検出精度が低くなると考えられるパルス検出用途では、第２状態の検出を行うことにより、欠歯検出を確実に行うことができるようになる。第１状態及び第２状態の検出は共にカウンタによる計数動作とカウンタ値とレジスタ値との比較動作とによってハードウェア的に実行されるので、前後のパルス間隔から得られるカウント値を除算する場合に比べて処理時間の短縮が実現される。
【００１９】
〔２〕＜短イベントパルス基準の長イベントパルス検出結果とその逆検出結果の論理和＞
項１において、前記検出回路は、前記第１状態の成立を検出する第１検出モードと、前記第２状態の成立を検出する第２検出モードと、の何れも選択可能である。
【００２０】
これによれば、適用先のパルス検出の事情に応じて何れか一方の検出モードを選択可能になる。
【００２１】
〔３〕＜短イベントパルス基準の長イベントパルス検出とその逆検出結果の論理積＞
項２において、前記検出回路は、更に、前記第１状態及び前記第２状態の双方の成立を検出する第３検出モードを選択可能である。
【００２２】
これによれば、第１検出と第２検出の論理積によってパルス検出精度の最も高い第３検出モードを容易に備えることができる。
【００２３】
〔４〕＜短イベントパルス基準の長イベントパルス検出とその逆検出結果の論理積＞
項１において、前記検出回路は、前記第１状態及び前記第２状態の双方の成立を検出する第３検出モードを選択可能である。
【００２４】
これによれば、第１検出と第２検出の論理積によってパルス検出精度の最も高い第３検出モードを容易に備えることができる。
【００２５】
〔５〕＜倍数設定レジスタ＞
項１、２又は４において、前記第２カウンタにおける前記第１カウンタの計数量の複数倍である倍数を指定する倍数設定レジスタ（１１０）を有する。
【００２６】
これによれば、倍数をプログラマブル且つ容易に設定する事ができる。
【００２７】
〔６〕＜検出モードレジスタ＞
項２において、前記第１検出モード、又は前記第２検出モードのいずれを選択するかを指示する検出モードレジスタ（１１１）を有する。
【００２８】
これによれば、検出モードをプログラマブル且つ容易に設定する事ができる。
【００２９】
〔７〕＜検出モードレジスタ＞
項３において、前記第１検出モード、又は前記第２検出モード、又は前記第３検出モードのいずれを選択するかを指示する検出モードレジスタ（１１１）を有する。
【００３０】
これによれば、検出モードをプログラマブル且つ容易に設定する事ができる。
【００３１】
〔８〕＜倍数設定レジスタ、検出モードレジスタをCPU空間に配置＞
項５，６、又は７において、前記倍数設定レジスタ及び前記検出モードレジスタは前記ＣＰＵのアドレス空間に配置されたレジスタである。
【００３２】
これによれば、前記倍数設定レジスタ及び前記検出モードレジスタの設定をＣＰＵを用いて容易に行うことができる。
【００３３】
〔９〕＜設定倍数値の加算＞
項５において、前記第２カウンタは前記第１カウンタが計数する＋１のインクリメント毎に、直前の計数値に前記倍数設定レジスタの設定値を加算するインクリメント動作を行う。
【００３４】
これによれば、計数するクロックの周波数を倍数値に応じて逓倍する構成に比べて、計数量を前記第１カウンタの複数倍とする構成を容易に実現することができる。
【００３５】
〔１０〕＜割込み＞
項２において、前記タイマ部からの割り込み要求（ＩＲＱ）に応答して前記ＣＰＵへの割り込みを制御する割込み制御部（３０）を更に有する。このとき、前記検出回路は、前記第１検出モードが指定されているとき前記第１状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力し、前記第２検出モードが指定されているとき前記第２状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力する。
【００３６】
これによれば、ＣＰＵは第１検出モード又は第２検出モードに応じた検出結果に応答した割込み処理に移行することができる。
【００３７】
〔１１〕＜割込み＞
項３において、前記タイマ部からの割り込み要求（ＩＲＱ）に応答して前記ＣＰＵへの割り込みを制御する割込み制御部（３０）を更に有する。前記検出回路は、前記第１検出モードが指定されているとき前記第１状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力し、前記第２検出モードが指定されているとき前記第２状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力する、前記第３検出モードが指定されているとき前記第３状態の成立を検出することによって前記割込み制御部に割込み要求信号を出力する。
【００３８】
これによれば、ＣＰＵは第１検出モード、第２検出モード、又は第３検出モードに応じた検出結果に応答した割込み処理に移行することができる。
【００３９】
〔１２〕＜エンジン制御用ECU＞
代表的な別の実施の形態に係るエンジン制御装置（２）は、クランク角センサ（３）の出力を受けて、エンジンのクランク軸の回転に対応した所定角度間隔毎のパルスのパルス列を出力するインタフェース部（１０）と、前記インタフェース部から出力される前記パルス列を入力し、前記クランク軸の定位置を前記パルス列のパルス間隔の相違に基づいて判別するデータ処理部（１１）と、を有する。前記データ処理部は、所定のイベントパルス列のパルス間隔毎に初期値から計数動作を行う第１カウンタ（１０２）と、第１参照値が設定される第１カウントレジスタ（１０４）とを有する。また、前記所定のイベントパルス列のパルス間隔毎に計数量が前記第１カウンタの複数倍になるように初期値から計数動作を行う第２カウンタ（１０３）と、前記所定のイベントパルス列のパルス間隔毎に前記第１カウンタの計数値をホールドする第２カウントレジスタ（１０５）とを有する。更に、前記クランク軸の定位置を判別するために、前記第１カウンタによる前記パルス間隔毎の計数値が前記第１カウントレジスタに設定された第１参照値以上になる第１状態と、前記第２カウンタによる前記パルス間隔毎の計数値が前記第２カウントレジスタがホールドしている値以下になる第２状態と、の何れも検出可能な検出回路（１０６，１０７，１０８）と、前記検出回路による検出結果に基づいてエンジン制御を行う制御回路（２０，２１，２２）とを有する。
【００４０】
これによれば、第１状態の判別により、第１カウンタによる参照値よりも小さな計数値に応ずるパルス間隔（小さなパルス間隔）に対して、第１カウンタによる参照値以上の計数値に応ずるパルス間隔（大きなパルス間隔）を判別することが可能になる。第２状態の判別により、第１カウンタの計数量の複数倍の計数を行う第２カウンタによる計数値が一つ前のパルス間隔における第１カウンタの計数値よりも小さいこと、即ち、第１カウンタによる大きなパルス間隔の計数値が、第２カウンタによる小さなパルス間隔の計数値よりも小さいことを判別可能になる。要するに、前記第１状態を検出することによって前の小さなパルス間隔を基準に後に大きなパルス間隔があることを、前記第２状態を検出することによって前の大きなパルス間隔を基準に後に小さなパルス間隔があることを判別可能になり、その判別結果に基づいたエンジン制御を行うことができる。欠歯部を含む複数パルス間隔の各計数値が小さくなる事態の発生が予想されるとき、第１状態の検出では欠歯検出精度が低くなると考えられるパルス検出用途では、第２状態の検出を行うことにより、欠歯検出を確実に行うことができるようになる。第１状態及び第２状態の検出は共にカウンタによる計数動作とカウンタ値とレジスタ値との比較動作とによってハードウェア的に実行されるので、前後のパルス間隔から得られるカウント値を除算する場合に比べて処理時間の短縮が実現される。
【００４１】
〔１３〕＜短イベントパルス基準の長イベントパルス検出結果とその逆検出結果の論理和＞
項１２において、前記検出回路は、前記クランク軸の定位置を判別するために、検出モードレジスタ（１１１）の状態に従って、前記第１状態の成立を検出する第１検出モード、又は前記第２状態の成立を検出する第２検出モードの何れかの検出モードに設定される。
【００４２】
これによれば、適用先のパルス検出の事情に応じて何れか一方の検出モードを選択可能になる。
【００４３】
〔１４〕＜短イベントパルス基準の長イベントパルス検出とその逆検出結果の論理積＞
項１２において、前記検出回路は、前記クランク軸の定位置を判別するために、検出モードレジスタ（１１１）の状態に従って、前記第１状態の成立を検出する第１検出モード、前記第２状態の成立を検出する第２検出モード、又は前記第１状態及び前記第２状態の双方の成立を検出する第３検出モードの何れかの検出モードに設定される。
【００４４】
これによれば、第１検出と第２検出の論理積によってパルス検出精度の最も高い第３検出モードを容易に備えることができる。
【００４５】
〔１５〕＜短イベントパルス基準の長イベントパルス検出とその逆検出結果の論理積＞
項１２において、前記検出回路は、前記クランク軸の定位置を判別するための検出モードとして、前記第１状態及び前記第２状態の双方の成立を検出する第３検出モードが設定される。
【００４６】
これによれば、第１検出と第２検出の論理積によってパルス検出精度の最も高い第３検出モードを容易に備えることができる。
【００４７】
〔１６〕＜倍数設定レジスタ＞
項１２乃至１５の何れか１項において、前記第２カウンタにおける前記第１カウンタの計数量の複数倍である倍数が指定される倍数設定レジスタ（１１０）を有する。
【００４８】
これによれば、倍数をプログラマブル且つ容易に設定する事ができる。
【００４９】
〔１７〕＜設定倍数値の加算＞
項１６において、前記第２カウンタは前記第１カウンタによる＋１のインクリメント毎に、直前の計数値に前記倍数設定レジスタの設定値を加算するインクリメント動作を行う。
【００５０】
これによれば、計数するクロックの周波数を倍数値に応じて逓倍する構成に比べて、計数量を前記第１カウンタの複数倍とする構成を容易に実現することができる。
【００５１】
〔１８〕＜倍数設定レジスタ、検出モードレジスタをCPU空間に配置＞
項１２乃至１７の何れか１項において、前記データ処理部はＣＰＵ（２０）を有し、前記倍数設定レジスタ及び前記検出モードレジスタは前記ＣＰＵのアドレス空間に配置されたレジスタである。
【００５２】
これによれば、前記倍数設定レジスタ及び前記検出モードレジスタの設定をＣＰＵを用いて容易に行うことができる。
【００５３】
〔１９〕＜マイクロコンピュータ＞
項１８において、前記データ処理部は半導体集積回路によって構成されたマイクロコンピュータ（１１）である。
【００５４】
データ処理部におけるパルス判別及びエンジン制御をプログラム制御を用いて容易に支援することができる。
【００５５】
〔２０〕＜１＜倍数≦長パルス回転角に対する短パルス回転角の倍数値＞
項１２において、前記パルス列のパルス間隔は、エンジンのクランク軸の１回転中における第１回転角度に対応する第１パルス間隔と、前記第１角度の複数倍の第２角度に対応する第２パルス間隔である。このとき、前記倍数設定レジスタに設定可能な倍数は、前記第２角度に対する第１角度の前記複数倍の倍数に対応する値よりも小さく、且つ１よりも大きな値である。
【００５６】
これにより、第２状態の判別結果に対する高い信頼性保証を容易に実現可能になる。
【００５７】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００５８】
図２には一実施の形態に係るエンジン制御システムが例示される。エンジン制御システムは、例えば３，６，４，又は８気筒などの所定の気筒数を有するレシプロエンジン１に対する燃料噴射、燃料点火、排気などのタイミング制御を電子制御装置としてのエンジン制御装置（ＥＣＵ）２によって行うシステムである。エンジン制御装置２は適宜の車載ネットワーク（ＭＮＥＴ）５を介してその他の電子制御装置などとインタフェースされる。ここではエンジン制御に必要な情報を取得するセンサとしてクランク角センサ（ＣＡＳ）３が代表的に示されている。エンジン１のクランク軸４には例えば外周に多数の歯が形成された円板が設けられ、クランク角センサ３はその歯の間隔に応じてパルスを出力する磁気コイル又はフォトダイオードなどが設けられて構成される。円板の外周における所定位置には、歯が複数個分欠損した欠歯部が設けられている。尚、図２ではレシプロエンジン１はその１気筒分の概略が縦断面によって模式的に示されている。
【００５９】
エンジン制御装置２はクランク角センサ３で検出したパルスをインタフェース部としてのセンサインタフェース（ＳＩＦ）１０から入力してクランク信号ＰＯＳを形成し、このクランク信号ＰＯＳなどを入力するデータ処理部としてのマイクロコンピュータ（ＭＣＵ）１１がエンジン制御を行う。クランク信号ＰＯＳは、エンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列をなしている。マイクロコンピュータ１１は、例えばそのクランク信号の逓倍の周波数を有する逓倍クロック（周期がクランク信号の周期の逓倍数分の１であるクロック）を生成すると共に、その逓倍クロックにより、クランク軸の回転角度（いわゆるクランク角）を表すクランクカウンタをカウントアップさせ、そのクランクカウンタの値に基づいてエンジン回転に同期した制御を行う。このようにすることで、元のクランク信号ＰＯＳよりも細かい分解能でクランク角を把握できるようになる。
【００６０】
ここで、クランク信号ＰＯＳはそのパルス列の途中にパルスを抜いた欠歯部（基準位置部分）を有する。例えばクランク信号ＰＯＳは６０パルス毎に２パルス抜ける欠歯構成になっているとき、この欠歯部はエンジン１サイクル（クランク回転角度７２０度）中に２箇所、即ちクランク回転角度３６０度ごとに１箇所現れる。エンジン制御ではエンジンサイクルに同期した制御を行うためにクランク信号ＰＯＳのパルス列に対して欠歯部を検出する処理（欠歯部検出処理）を行う。欠歯部検出処理は前記クランク軸ＰＯＳの欠歯部をクランク信号ＰＯＳのパルス列のパルス間隔の相違に基づいて判別するデータ処理部で行う。データ処理部はマイクロコンピュータ１１によって実現される。
【００６１】
図３にはマイクロコンピュータ１１が例示される。マイクロコンピュータ１１は、特に制限されないが、制御回路として、プログラムを実行するＣＰＵ（中央処理装置）２０、ＣＰＵ２０が実行するプログラムなどが格納さされるＲＯＭ２１、及びＣＰＵ２０のワーク領域などに用いられるＲＡＭ２２を備え、それらは相対的に転送速度の速い内部バス（ＩＢＵＳ）２３に共通接続される。
【００６２】
内部バス２３は相対的に転送速度の遅い周辺バス（ＰＢＵＳ）２５にバスブリッジ回路２４を介してインタフェースされる。
【００６３】
周辺バス２５には、ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）２６、入出力ポート（ＰＲＴ）２７、外部から入力されるアナログ信号をディジタルデータに変換するアナログディジタル変換回路（ＡＤＣ）２８、ＣＰＵの暴走検知を行うためのウォッチドッグタイマ（ＷＤＴ）２９、割込みコントローラ（ＩＮＴＣ）３０、及びタイマ部（ＴＵ）３１などが接続される。
【００６４】
ＣＰＵ１１はプロセッサコアとして把握してもよい。その場合にプロセッサコアはディジタル信号処理プロセッサなどのアクセラレータ、キャッシュメモリ、仮想記憶のためのアドレス変換バッファなどを含んでよい。
【００６５】
割込みコントローラ３０はタイマ部３１などのマイクロコンピュータ１１内部の回路モジュールからの割込み要求やマイクロコンピュータ１１の外部からの割込み要求に対して割込み優先制御や要因判定などを行い、受け付けた割込み要求に応答する割込み信号をＣＰＵに発行する制御を行う。
【００６６】
タイマ部３１は、特に制限されないが、インプットキャプチャ、フリーランニング、パルス間隔計測などのタイマ機能を備えると共に、上記欠歯検出処理機能を備える。以下、欠歯検出処理について詳細な説明を行う。
【００６７】
図１にはタイマ部の構成が例示される。ここでは欠歯検出処理機能を主眼としてその構成が例示される。タイマ部３１は前記クランク信号ＰＯＳを所定のイベントパルス列として入力し、そのパルスの立ち上がりエッジをクランクパルスイベントとして把握して、これに基づいて上記欠歯検出処理のためのタイマ動作を制御するタイマ制御回路１００を有する。
【００６８】
タイマ部３１は欠歯検出処理のためのタイマ動作に用いるカウンタとして、前段カウンタ（ＰＲＣＯＵＮＴ）１０１、第１カウンタ（ＦＣＯＵＮＴ）１０２及び第２カウンタ（ＳＣＯＵＮＴ）１０３を有し、夫々のカウンタ１０２，１０３の計数値との比較データを格納する第１カウントレジスタ（ＦＣＲＥＧ）１０４及び第２カウントレジスタ（ＳＣＲＥＧ）１０５を有する。
【００６９】
前段カウンタ１０１は、図示を省略するクロックパルスジェネレータで生成されたクロック信号ＣＬＫを初期値からダウンカウントする。前段カウンタ１０１の初期値はタイマ制御回路１００がクランクパルスイベントの検出に応答してリロードする。
【００７０】
第１カウンタ１０２は、前段カウンタ１０１による初期値から値０へのカウントアウトパルスをアップカウントする。第１カウンタ１０１の値はタイマ制御回路１００がクランクパルスイベントの検出に応答して初期値０にクリアする。第１カウントレジスタ１０４にはＣＰＵ２０の制御に基づいてタイマ制御回路１００が第１の参照値を設定する。上述のように、クランク信号ＰＯＳの欠歯部はクランク回転角度３６０度毎に２パルス抜ける欠歯構成になっているとすると、第１参照値には、例えばイベントパルスサイクルの２サイクル分に対応する第１カウンタ１０２による計数値を採用する。理論的にはイベントパルスサイクルの１サイクル分に対応する第１カウンタ１０２による計数値よりも大きな値を採用すればよい。したがって、クランクパルスイベントの間隔がクランク信号ＰＯＳの欠歯部に対応したとき、第１カウント１０２の計数値が第１カウントレジスタ１０４の設定値を超えることになり、この状態（第１状態）によって第１コンパレータ（ＦＣＭＰ）１０６の比較出力φＦＣはローレベルからハイレベルに反転される。クランクパルスイベントの間隔がクランク信号ＰＯＳの欠歯部以外に対応しているときは、第１カウンタ１０２の計数値は第１カウントレジスタ１０４の設定値を超えることはないので、第１コンパレータ１０６の出力φＦＣはローレベルに維持される。この第１状態によって、第１カウンタ１０２による第１カウントレジスタ１０４の参照値よりも小さな計数値に応ずるパルス間隔（小さなパルス間隔）に対して、第１カウンタ１０２による第１カウントレジスタ１０４の参照値以上の計数値に応ずるパルス間隔（大きなパルス間隔）を判別することが可能になる。
【００７１】
特に制限されないが、第１カウントレジスタ１０４に設定される第１参照値は適用されるエンジンシステム、若しくはエンジン制御モードが決まれば、特定の値にされる。したがって、クランク信号のパルス周期に応じて逓倍の周波数を有するクロック信号ＣＬＫの周波数はエンジンの回転数に応じて変化されることになる。このとき、第１カウンタ１０２の前段カウンタ１０１をダウンカウンタとして、そのカウントアウトパルスを第１カウンタ１０２でカウントする構成を採用することにより、エンジンの回転数に応じてクロック信号ＣＬＫの周波数を頻繁に変化させなくても、前段カウンタ１０１にリロードするプリセット値によって対処可能になる。これはクロックパルスジェネレータで選択可能な周波数の種類が少なくて済むことを意味する。
【００７２】
第２カウンタ１０３は前段カウンタ１０１による初期値から値０へのカウントアウトパルスをアップカウントする。但し、前段カウンタ１０１のカウントアウトパルス毎のアップカウント値は第１カウンタ１０３のアップカウウント値の複数倍とされ、例えば、倍率設定レジスタ１１０の設定とされる。即ち、第２カウンタ１０３は、第１カウンタ１０１による＋１のインクリメント毎に、直前の計数値に倍数設定レジスタ１１０の設定値を加算するインクリメント動作を行う。倍率設定レジスタ１１０に対する値の書き込みは例えばＣＰＵ２０が行う。上述のように、クランク信号ＰＯＳの欠歯部はクランク回転角度３６０度毎に２パルス抜ける欠歯構成になっているとすると、倍率設定レジスタ１１０の設定値は、理論上、値１より大きく値３よりも小さい値であればよい。ここでは例えば値２．５を採用する。したがって、第２カウンタ１０３の計数値は第１カウンタ１０１の２．５倍になる。
【００７３】
第２カウントレジスタ１０５には、タイマ制御回路１００がクランクパルスイベントの検出に応答して、第１カウンタ１０２の計数値をクリアする前にその値をロードする。したがって第２カウウントレジスタ１０５はロードされた値を、次のクランクパルスイベントの検出があるまでホールドする。第２コンパレータ（ＳＣＭＰ）１０７は第２カウンタ１０３の計数値と第２カウントレジスタ１０５の値とを比較することになるが、その比較の意味は、今回のイベントパルスサイクルにおける第２カウンタ１０３の値とその直前のイベントパルスサイクルにおける第１カウンタ１０３の値との比較となる。したがって、直前のイベントパルスサイクルが欠歯部に対応していなければ第２カウントレジスタ１０５がホールドする値は欠歯部に対応しないイベントパルス１サイクル分に対応する第１カウンタ１０２による計数値になる。よって、今回のイベントパルスサイクルが欠歯部で在ろうと無かろうと、その２．５倍の計数値を出力する第２カウンタ１０３の値が常に大きくなり、第２コンパレータ１０７の比較出力φＳＣはローレベルに維持される。これに対して、直前のイベントパルスサイクルが欠歯部に対応していれば第２カウントレジスタ１０５がホールドする値は欠歯部に対応するイベントパルス３サイクル分に対応する第１カウンタ１０２による計数値になる。よって、今回のイベントパルスサイクルが欠歯部でないときイベントパルス１サイクル分に対応する計数値を出力する第２カウンタ１０３の値が小さくなる。この状態（第２状態）によって、第１カウンタ１０２の計数量の複数倍例えば２．５倍の計数を行う第２カウンタ１０３による計数値が一つ前のイベントパルス間隔における第１カウンタ１０２の計数値よりも小さいこと、即ち、第１カウンタ１０２による大きなパルス間隔（欠歯部に対応）に対する計数値よりも、第２カウンタ１０３による小さなパルス間隔に対する２．５倍の計数値の方が小さいことを判別可能になる。
【００７４】
割り込み処理回路１０８は前記比較結果信号φＦＣ，φＳＣの状態と、検出モードレジスタ１１１に対するＣＰＵ２０によるモード設定状態に応じて、割り込み制御回路３０に割り込み要求信号ＩＲＱｉを出力する。割り込み処理回路１０８は前記コンパレータ１０７，１０７と共に、前記第１状態と第２状態の何れも検出可能な検出回路の一例を成す。
【００７５】
欠歯検出処理において設定可能にされる欠歯検出処理モードは、特に制限されないが、短いイベントパルス基準で長いイベントパルスを検出する、前記第１状態の成立を信号φＦＣを用いて検出する第１検出モードと、長いイベントパルス基準で短いイベントパルスを検出する、前記第２状態の成立を信号φＳＣを用いて検出する第２検出モードと、前記第１状態及び前記第２状態の双方の成立を検出する第３検出モードと、の何れかとされる。モードの指定は夫々識別可能なコマンドコードで行われ、タイマ制御回路１００がそれを解読して割り込み処理回路１０８に指示する。
【００７６】
図４には欠歯処理の動作タイミングが例示される。ここでは時刻t(n-1)〜時刻t(n)に欠歯部が存在する。欠歯部の直前の時刻t(n-2)のイベントパルスが発生すると、第１カウンタ１０２及び第２カウンタ１０３が２．５倍の差でインクリメント動作を行う。次の時刻t(n-1)でイベントパルスが発生したとき、第１カウンタ１０２の値が第２カウントレジスタ１０５にロードされ、第１カウンタ１０２及び第２カウンタ１０３が初期化され、同じく２．５倍の差でインクリメント動作が開始される。時刻t(n-1)ではFCREG≧FCOUNTであるからφFC＝L（ローレベル）、SCOUNT≧SCREGであるからφSC＝L（ローレベル）にされる。
【００７７】
時刻t(n-1)から時刻t(n)の間では、時刻t(m)にFCOUNT≧FCREGとされ、φFC＝H（ハイレベル）になるが、SCOUNT≧SCREG(n-1)のままであるからφSC＝L（ローレベル）に維持されている。この状態は時刻t(n)のイベントパルスの発生に応答して確定され、割込み処理回路１０８で把握される。割込み処理回路は第１検出モードが指示されている場合には、次の時刻t(n+1)のイベントパルスの発生に同期して割込み要求信号ＩＲＱをＣＰＵ２０に出力する。
【００７８】
時刻t(n)でイベントパルスが発生したとき、第１カウンタ１０２の値が第２カウントレジスタ１０５にロードされ、第１カウンタ１０２及び第２カウンタ１０３が初期化され、同じく相互に２．５倍の差でインクリメント動作が開始される。このとき第２カウントレジスタ１０５にロードされる値は前回の値の３倍になる。時刻t(n+1)ではSCREG(n)≧SCOUNTであるからφSC＝H（ハイレベル）にされる。尚、FCREG≧FCOUNTであるからφFC＝L（ローレベル）のままである。φSC＝H（ハイレベル）の状態は時刻t(n+1)のイベントパルスの発生に応答して確定され、割込み処理回路１０８に把握される。割込み処理回路は第２検出モードが指示されている場合には、次の時刻t(n+2)のイベントパルスの発生に同期して割込み要求信号ＩＲＱをＣＰＵ２０に出力する。割込み処理回路に第３検出モードが指示されている場合には、連続する時刻t(n)でφFC=Hの確定、時刻t(n+1)でφSC＝Hの確定を検出することにより、換言すれば、連続する時刻におけるφFC=Hの確定と、φSC＝Hの確定の論理積条件を満足することによって、次の時刻t(n+2)のイベントパルスの発生に同期して割込み要求信号ＩＲＱをＣＰＵ２０に出力する。
【００７９】
上述より明らかなように、第１カウンタ１０２による参照値よりも小さな計数値に応ずるパルス間隔（小さなパルス間隔）に対して、第１カウンタ１０２による参照値以上の計数値に応ずるパルス間隔（大きなパルス間隔）を判別することが可能になる。また、第１カウンタ１０２の計数量の複数倍の計数を行う第２カウンタ１０３による計数値が一つ前のパルス間隔における第１カウンタ１０２の計数値（第２カウントレジスタ１０５のホールド値）よりも小さいこと、即ち、第１カウンタ１０２による大きなパルス間隔の計数値に比べて、第２カウンタ１０３による小さなパルス間隔の計数値の方が小さいことを判別可能になる。要するに、信号φFCにより前記第１状態を検出することによって前の小さなパルス間隔を基準に後に大きなパルス間隔があることを、信号φSCにより第２状態を検出することによって前の大きなパルス間隔を基準に後に小さなパルス間隔があることを判別可能になる。
【００８０】
したがって、上死点近傍で欠歯部の検出が行われる場合などのように欠歯部を含む複数パルス間隔の各計数値が小さくなる事態の発生が予想されるとき、また、ハイブリッド自動車の低速走行時などのような機械的振動の多い環境下での第１状態の検出では欠歯検出精度が低くなると考えられるパルス検出用途では、第２状態の検出を行うことにより、欠歯検出を確実に行うことができるようになる。
【００８１】
第１状態及び第２状態の検出は共にカウンタによる計数動作とカウンタ値とレジスタ値との比較動作とによってハードウェア的に実行されるので、前後のパルス間隔から得られるカウント値を除算する場合に比べて処理時間の短縮が実現され、エンジン制御のリアルタイム性に資することができる。
【００８２】
前記第１状態及び前記第２状態の双方の成立を検出する第３検出モードを採用することにより欠歯検出精度を最も高くすることができる。第１検出モード、第２検出モードもそれぞれ単独指定可能にされているので、欠歯検出に対する上位互換を達成することが容易である。
【００８３】
本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００８４】
例えば、欠歯検出結果に対する処理はＣＰＵ割り込みに限定されない。その他のハードロジックやアクセラレータを用いる構成を採用することも可能である。
【００８５】
また、欠歯検出結果に対してＣＰＵ負担軽減のためにタイマ部に専用ハードウェアを採用することも可能である。要するに、欠歯検出結果に対する処理をタイマ自らが行う。タイマ部をプログラム処理回路を用いてインテリジェント化する、或いは、専用ロジック回路を設けて実現することができる。その場合に、レジスタ設定もCPUではなく、データ転送制御装置を用いて行ってもよい。
【００８６】
第２カウンタの計数量複数倍のカウントは設定倍数値の加算に限定されず、第１カウンタのクロック周波数を倍数値に応じて逓倍してもよい。但し、クロック逓倍回路が必要になって回路規模増大する。
【００８７】
第１カウンタ１０２及び第２カウンタ１０３は相互に共通の前段カウンタ１０１を配置した構成に限定されず、適宜変更可能である。
【００８８】
本実施の形態に係るエンジン制御システム若しくはマイクロコンピュータはガソリン自動車、ディーゼル自動車、ハイブリッド自動車に限定されず、電車、汽車、船舶など、エンジンを用いる機械装置に広く適用することができる。
【００８９】
欠歯検出処理における欠歯判別モードは第１検出モード、第２検出モード、第３検出モードの何れも設定可能な構成に限定されない。第１検出モードと第２検出モードのみ選択可能であってもよいし、第３検出モードのみ選択可能であってもよい。
【符号の説明】
【００９０】
１  レシプロエンジン
２  エンジン制御装置（ＥＣＵ）
５  車載ネットワーク（ＭＮＥＴ）
３  クランク角センサ（ＣＡＳ）
４  クランク軸
１０  センサインタフェース（ＳＩＦ）
ＰＯＳ  クランク信号
１１  マイクロコンピュータ（ＭＣＵ）
２０  ＣＰＵ（中央処理装置）
２１  ＲＯＭ
２２  ＲＡＭ
２３  内部バス（ＩＢＵＳ）
２５  周辺バス（ＰＢＵＳ）
３０  割込みコントローラ（ＩＮＴＣ）
３１  タイマ部（ＴＵ）
１００  タイマ制御回路
１０１  前段カウンタ（ＰＲＣＯＵＮＴ）
１０２  第１カウンタ（ＦＣＯＵＮＴ）
１０３  第２カウンタ（ＳＣＯＵＮＴ）
１０４  第１カウントレジスタ（ＦＣＲＥＧ）
１０５  第２カウントレジスタ（ＳＣＲＥＧ）
１０６  第１コンパレータ（ＦＣＭＰ）
１０７  第２コンパレータ（ＳＣＭＰ）
φＦＣ，φＳＣ  比較結果信号
１０８  割込み処理回路
ＩＲＱ  割込み要求信号
ＩＮＴ  割込み信号
１１０  倍率設定レジスタ
１１１  検出モードレジスタ
【図１】
0005984508.tif 000002
【図２】
0005984508.tif 000003
【図３】
0005984508.tif 000004
【図４】
0005984508.tif 000005