(57)【特許請求の範囲】
【請求項１】
エンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列の途中に基準位置部を有するクランク信号を入力してパルス間隔を計測するパルス間隔計測手段と、
前記パルス間隔計測手段による今回のパルス間隔を基にして次のパルスまでに整数倍の周波数の逓倍信号を生成する逓倍信号生成手段と、
前記逓倍信号に基づいてカウント動作する角度カウンタと、
前記角度カウンタのカウント値に基づいてエンジン制御のための処理を実行するエンジン制御手段と、
補正処理を実施したい前記基準位置部の前後の特定区間においてのみ前記エンジン制御手段におけるエンジン制御処理よりも優先度の高い前記角度カウンタの補正のための割り込み処理を実行可能とする切替手段と
を備えたことを特徴とするエンジン制御装置。
【請求項２】
エンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列のクランク信号を入力してパルス間隔を計測するパルス間隔計測手段と、
前記パルス間隔計測手段による今回のパルス間隔を基にして次のパルスまでに整数倍の周波数の逓倍信号を生成する逓倍信号生成手段と、
前記逓倍信号に基づいてカウント動作する角度カウンタと、
前記角度カウンタのカウント値に基づいて第１の周期にてエンジン制御のための処理を実行するエンジン制御手段と、
補正処理を実施したい特定期間を検出し、当該特定期間だけ前記第１の周期よりも短い第２の周期にて前記角度カウンタの補正処理を行う補正手段と
を備えたことを特徴とするエンジン制御装置。
【請求項３】
前記クランク信号は、所定角度間隔毎のパルス列の途中に基準位置部を有するものであり、
前記角度カウンタの補正は、クランク信号の基準位置部を検出して当該基準位置部において前記角度カウンタのカウント値を初期化することである請求項２に記載のエンジン制御装置。
【請求項４】
前記クランク信号は、所定角度間隔毎のパルス列の途中に３６０°ＣＡ毎の基準位置部を有するものであり、
前記角度カウンタの補正は、クランク信号の基準位置部を検出して、当該基準位置部が７２０°ＣＡ毎の表の基準位置部か７２０°ＣＡ毎の裏の基準位置部かを判定して前記角度カウンタのカウント値を再設定することである請求項２に記載のエンジン制御装置。
【請求項５】
前記クランク信号は、所定角度間隔毎のパルス列の途中にパルス間隔が不等な基準位置部を有するものであり、
前記逓倍信号生成手段におけるクランク信号のパルス間での前記逓倍信号の波数をカウントして逓倍数となったら、角度カウンタのカウント動作を強制的に停止させるガード手段を備え、
前記角度カウンタの補正は、前記クランク信号の基準位置部において前記ガード手段のガード値を補正することである請求項２に記載のエンジン制御装置。
【請求項６】
前記逓倍信号生成手段におけるクランク信号のパルス間での前記逓倍信号の波数をカウントして逓倍数となったら、角度カウンタのカウント動作を強制的に停止させるガード手段を備え、
前記角度カウンタの補正は、前記クランク信号の基準位置部において前記ガード手段のガード値を補正することである請求項１に記載のエンジン制御装置。
【請求項７】
エンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列の途中に３６０°ＣＡ毎の基準位置部を有するクランク信号を入力してパルス間隔を計測するパルス間隔計測手段と、
前記パルス間隔計測手段による今回のパルス間隔を基にして次のパルスまでに整数倍の周波数の逓倍信号を生成する逓倍信号生成手段と、
前記逓倍信号に基づいてカウント動作する角度カウンタと、
前記角度カウンタのカウント値に基づいてエンジン制御のための処理を実行するエンジン制御手段と、
補正処理を実施したい特定期間を検出し、当該特定期間だけ前記エンジン制御手段におけるエンジン制御処理よりも優先度の高い前記角度カウンタの補正のための割り込み処理を実行可能とする切替手段と
を備え、前記角度カウンタの補正は、クランク信号の基準位置部を検出して、当該基準位置部が７２０°ＣＡ毎の表の基準位置部か７２０°ＣＡ毎の裏の基準位置部かを判定して前記角度カウンタのカウント値を再設定することであるエンジン制御装置。
【請求項８】
エンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列の途中にパルス間隔が不等な基準位置部を有するクランク信号を入力して前記パルス間隔を計測するパルス間隔計測手段と、
前記パルス間隔計測手段による今回のパルス間隔を基にして次のパルスまでに整数倍の周波数の逓倍信号を生成する逓倍信号生成手段と、
前記逓倍信号に基づいてカウント動作する角度カウンタと、
前記角度カウンタのカウント値に基づいてエンジン制御のための処理を実行するエンジン制御手段と、
補正処理を実施したい特定期間を検出し、当該特定期間だけ前記エンジン制御手段におけるエンジン制御処理よりも優先度の高い前記角度カウンタの補正のための割り込み処理を実行可能とする切替手段と、
前記逓倍信号生成手段におけるクランク信号のパルス間での前記逓倍信号の波数をカウントして逓倍数となったら、角度カウンタのカウント動作を強制的に停止させるガード手段と
を備え、前記角度カウンタの補正は、前記クランク信号の基準位置部において前記ガード手段のガード値を補正することであるエンジン制御装置。
【請求項９】
前記クランク信号の基準位置部は、所定角度間隔毎のパルス列の途中に当該パルスを抜いた欠け歯部であり、
前記角度カウンタの補正は、前記クランク信号の欠け歯部において前記ガード手段のガード値を、抜いたパルス分だけ持ち上げることである請求項５または６または８に記載のエンジン制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はエンジン制御装置に関するものである。
【０００２】
【従来の技術】
エンジン制御装置は燃料噴射制御や点火時期制御やアイドル回転数制御などの制御を行う装置であって、エンジンを最適な状態で運転させるものである。つまり、クランクセンサやエンジン水温センサ等のエンジン運転状態を検出する各種センサからの信号をＥＣＵ（電子制御ユニット）に入力して最適な燃料噴射量、噴射時期、点火時期などを制御する。
【０００３】
点火制御や噴射制御等のエンジン回転と同期した制御、つまり、クランク角に同期した制御は、クランクエッジ（クランク信号のエッジ）からのオフセット時間が経過した時に点火パルス等の信号を発生させることにより行ってきた。
【０００４】
【発明が解決しようとする課題】
しかし、角度から時間への変換のための演算を行う必要があり、処理負荷を低減するとともに、精度を向上したいという要求がある。
【０００５】
本発明はこのような背景の下になされたものであり、その目的は、処理負荷の低減及び精度向上を図り、しかも、精度の確保と処理負荷の増加抑制を両立させることができるエンジン制御装置を提供することにある。
【０００６】
【課題を解決するための手段】
請求項１に記載の発明によれば、エンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列の途中に基準位置部を有するクランク信号に対し、パルス間隔計測手段によりパルス間隔が計測され、逓倍信号生成手段により、パルス間隔計測手段による今回のパルス間隔を基にして次のパルスまでに整数倍の周波数の逓倍信号が生成される。そして、角度カウンタにより逓倍信号に基づいたカウント動作が行われ、エンジン制御手段により、角度カウンタのカウント値に基づいてエンジン制御のための処理が実行される。このように、所定の角度間隔で逓倍信号を生成してエンジン回転と同期をとるシステムとすることで、角度から時間への変換のための演算を不要にでき、処理負荷の低減及び精度向上を図ることができる。
【０００７】
また、切替手段により、補正処理を実施したい基準位置部の前後の特定区間においてのみエンジン制御手段におけるエンジン制御処理よりも優先度の高い角度カウンタの補正のための割り込み処理が実行可能とされる。その結果、角度カウンタの精度の確保と処理負荷の増加抑制を両立させることができる。
【０００８】
請求項２に記載の発明によれば、エンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列のクランク信号に対し、パルス間隔計測手段によりパルス間隔が計測され、逓倍信号生成手段により、パルス間隔計測手段による今回のパルス間隔を基にして次のパルスまでに整数倍の周波数の逓倍信号が生成される。そして、角度カウンタにより逓倍信号に基づいたカウント動作が行われ、エンジン制御手段により、角度カウンタのカウント値に基づいて第１の周期にてエンジン制御のための処理が実行される。このように、所定の角度間隔で逓倍信号を生成してエンジン回転と同期をとるシステムとすることで、角度から時間への変換のための演算を不要にでき、処理負荷の低減及び精度向上を図ることができる。
【０００９】
また、補正手段により、補正処理を実施したい特定期間が検出され、当該特定期間だけ第１の周期よりも短い第２の周期にて角度カウンタの補正処理が行われる。その結果、角度カウンタの精度の確保と処理負荷の増加抑制を両立させることができる。
【００１０】
請求項３に記載のように、クランク信号は、所定角度間隔毎のパルス列の途中に基準位置部を有するものであり、角度カウンタの補正は、クランク信号の基準位置部を検出して当該基準位置部において角度カウンタのカウント値を初期化することとすると、実用上好ましい。
【００１１】
また、請求項４，７に記載のように、クランク信号は、所定角度間隔毎のパルス列の途中に３６０°ＣＡ毎の基準位置部を有するものであり、角度カウンタの補正は、クランク信号の基準位置部を検出して、当該基準位置部が７２０°ＣＡ毎の表の基準位置部か７２０°ＣＡ毎の裏の基準位置部かを判定して角度カウンタのカウント値を再設定することとすると、実用上好ましい。
【００１２】
一方、請求項５，６，８に記載の発明によれば、ガード手段により、逓倍信号生成手段におけるクランク信号のパルス間での逓倍信号の波数がカウントされて逓倍数となったら、角度カウンタのカウント動作が強制的に停止させられる。このように、逓倍信号の波数が逓倍数に到達したら、次のクランク信号のパルスを入力するまで角度カウンタのカウント動作を逓倍値でガードすることによって、エンストやクランク信号系の断線時に角度カウンタのカウント動作を停止させることができ、クランク信号のパルス間隔が長くなってもエンジン制御を適正に行うことが可能となる。
【００１３】
このシステムにおいて、クランク信号は所定角度間隔毎のパルス列の途中にパルス間隔が不等な基準位置部を有しており、角度カウンタの補正として、クランク信号の基準位置部においてはガード手段のガード値が補正される。このように、ガード手段のガード値を補正することにより、ガード機能を正しく働かせて基準位置部でも適正なる角度カウンタのカウント動作を行わせることができる。
【００１４】
ここで、請求項９に記載のように、請求項５，６，８に記載の発明における前記クランク信号の基準位置部を、所定角度間隔毎のパルス列の途中に当該パルスを抜いた欠け歯部とし、角度カウンタの補正により、クランク信号の欠け歯部においてガード手段のガード値を、抜いたパルス分だけ持ち上げるようにすると、実用上好ましいものとなる。
【００１５】
【発明の実施の形態】
以下、この発明を具体化した実施の形態を図面に従って説明する。
本実施の形態においては自動車用多気筒ガソリンエンジンの制御装置に具体化している。図１には、本実施形態におけるエンジン制御ＥＣＵ１の構成を示す。エンジンは５気筒４サイクルエンジンである。
【００１６】
エンジン制御ＥＣＵ１はマイクロコンピュータ（以下、マイコンという）１０と電源回路２０と入出力回路３０とＥＥＰＲＯＭ４０を備えている。電源回路２０はバッテリ２から電力の供給を受けて所定の電圧をＥＣＵ１内の各機器に供給する。マイコン１０はＣＰＵ１１とＲＯＭ１２とＲＡＭ１３とＡ／Ｄ変換器１４と入出力インターフェイス１５とタイマモジュール１６を備えており、これらの各部材間はデータバスにて相互にデータのやり取りが行われる。また、入出力インターフェイス１５にはＥＥＰＲＯＭ４０が接続され、入出力インターフェイス１５を介してＥＥＰＲＯＭ４０とデータのやり取りが行われる。入出力回路３０はセンサおよびスイッチ等からの信号を入力するとともに、インジェクタ（燃料噴射弁）や点火装置に対し駆動信号を出力する。さらに、入出力回路３０には通信ライン３が接続され、入出力回路３０を介して他のＥＣＵとデータのやり取りが行われる。マイコン１０のＣＰＵ１１はセンサ・スイッチ等からの信号（データ）及び通信ライン３からのデータを入出力回路３０と入出力インターフェイス１５を介して取り込むとともに、これらデータを基にして各種の演算を行い、入出力インターフェイス１５と入出力回路３０を介してインジェクタ等を駆動制御する。
【００１７】
ここで、エンジン制御ＥＣＵ１が取り込む信号に、クランクセンサからのクランク信号とカムセンサからのカム信号がある。図２には、エンジン１サイクル（７２０°ＣＡ）分のクランク信号とカム信号を示す。
【００１８】
クランクセンサで発生するクランク信号は、４サイクルエンジンのクランク軸の回転に対応した所定角度間隔毎のパルス列よりなり、このパルス列の途中にパルスを抜いた欠け歯部（基準位置部）を有する。本実施形態でのクランク信号は６０パルス毎に２パルス抜ける欠け歯の構成となっている（６０−２歯構造）。つまり、パルス列のパルス間隔が６°ＣＡであり、このパルス列の途中にパルスを抜いた欠け歯部を３６０°ＣＡ毎に有し、そのうちの一方（７２０°ＣＡ毎の欠け歯）が表欠け歯であり、他方（他の７２０°ＣＡ毎の欠け歯）が裏欠け歯である。このように、欠け歯部が７２０°ＣＡで二箇所現れる。また、カムセンサで発生するカム信号は、エンジンのカム軸の回転に同期しており、気筒位置を特定する気筒判別信号であり、立ち下がりエッジは１４４°ＣＡ間隔である。このカム信号はクランク信号の表欠け歯直後の立ち下がりエッジ（ｔ１０のタイミング）ではカム信号がＬレベルであり、裏欠け歯直後の立ち下がりエッジ（ｔ２０のタイミング）ではカム信号がＨレベルである。つまり、欠け歯位置でカム信号レベルがＬならば表欠け歯であると判定でき、Ｈならば裏欠け歯であると判定できる。
【００１９】
クランク信号が図１のタイマモジュール１６のハードクランク１００に入力される。また、カム信号は入出力回路３０を介してマイコン１０に取り込まれる。一方、図１のタイマモジュール１６に備えられたハードクランク１００は、クランク信号をハード的に処理する機能部である。このハードクランク１００により、図２のクランク信号の処理（クランクエッジ間時間を分割した角度信号の生成）をハード的に行うことができる。
【００２０】
図３には、ハードクランク１００の構成を示す。
図３において、プリスケーラ１０１と分周回路１０２とエッジ時間計測カウンタ１０３と逓倍レジスタ（エッジ時間記憶レジスタ）１０４と逓倍カウンタ１０５とイベントカウンタ１０６とアウトプットコンペアレジスタ（ＯＣＲ）１０７とガード用カウンタ１０８と基準カウンタ１０９と追従カウンタ（角度カウンタ）１１０と点火・噴射用角度カウンタ１１１とフリーランカウンタ１１２を備えている。プリスケーラ１０１からの信号Ｐφは分周回路１０２を介してエッジ時間計測カウンタ１０３に送られる。また、信号Ｐφは追従カウンタ（角度カウンタ）１１０に送られる。さらに、クランク信号がエッジ時間計測カウンタ１０３とイベントカウンタ１０６とガード用カウンタ１０８に送られる。
【００２１】
図４には、アングルクロック（角度信号）発生のタイムチャートを示す。図４には、入力するクランク信号、エッジ時間計測カウンタ１０３のカウント値、逓倍レジスタ１０４の記憶値、逓倍カウンタ１０５のカウント値、逓倍カウンタ１０５の出力信号（逓倍クロック）、ガード用カウンタ１０８の値のｎ倍値、基準カウンタ１０９のカウント値、追従カウンタ１１０のカウント値、点火・噴射用角度カウンタ１１１のカウント値を示す。
【００２２】
図３のエッジ時間計測カウンタ１０３は、クランク信号を入力してクランクエッジ間の時間（パルス間隔）を計測する。詳しくは、パルス間隔計測手段としてのエッジ時間計測カウンタ１０３は、図４のように時間同期でカウントアップするカウンタであって、クランクエッジ間（クランク信号の立ち下がりエッジ間）の時間を計測する。計測した値は１／ｎ倍に逓倍され、エッジ入力時に逓倍レジスタ１０４に転送される。転送されたデータはダウンカウンタである逓倍カウンタ１０５の初期値となる。逓倍値（ｎ値）として、例えば「３２」を挙げることができる。
【００２３】
図３の逓倍カウンタ１０５は、エッジ時間計測カウンタ１０３により計測されたクランクエッジ間時間を使って、クランクエッジ時間を１／ｎした逓倍クロックを生成する。詳しくは、逓倍カウンタ１０５は、図４のように時間同期でダウンカウントされ、アンダーフローすると逓倍クロックを発生するとともにカウント値が初期値に戻される動作を繰り返す。次のクランクエッジ（クランク信号の立ち下がりエッジ）が入力されると、逓倍レジスタ１０４の値及び逓倍カウンタ１０５の初期値が最新値に更新される。このように、逓倍信号生成手段としての逓倍カウンタ１０５は、エッジ時間計測カウンタ１０３による今回のパルス間隔を基にして次のパルスまでに整数倍の周波数の逓倍信号（逓倍クロック）を生成する。
【００２４】
図３の基準カウンタ１０９は、図４に示すように、逓倍クロックによりカウントアップ動作する。図３の追従カウンタ１１０は時間同期クロックによりカウントアップする（内部クロックでカウント動作する）。ガード用カウンタ１０８は、クランク信号の立ち下がりエッジ入力毎にカウントアップするカウンタであって、クランクエッジ入力時に同時にカウントアップ前の値のｎ倍（逓倍）の値を基準カウンタ１０９に転送する。
【００２５】
ここで、図４のように、基準カウンタ１０９のカウント値は、クランクエッジ入力時にガード用カウンタ１０８から転送された値（カウント値のｎ倍値）を上回ることはできない。また、追従カウンタ１１０は、基準カウンタ１０９のカウント値より小さい時のみカウントアップする。この追従カウンタ１１０のカウントアップに同期してアングルクロック（角度信号）が生成される。このように、３つのカウンタ１０８，１０９，１１０によりアングルクロックが生成される。
【００２６】
本実施形態では、内部クロック（プリスケーラからの信号Ｐφ）を２０ＭＨｚとしており、追従カウンタ１１０は他のカウンタと比べ高速で動作可能である。図４において、減速時には、基準カウンタ１０９と追従カウンタ１１０のカウント動作として、クランクエッジの入力より先に基準カウンタ１０９の値がガード用カウンタ１０８の値のｎ倍値に達してしまうため、追従カウンタ１１０のカウントアップが禁止される。このようにしてガード用カウンタ１０８により基準カウンタ１０９と追従カウンタ１１０のカウントアップ動作が逓倍数で停止する。その結果、減速時には追従カウンタ１１０のカウント動作が停止して、一定値以上のアングルクロックの発生を防止する。図３の点火・噴射用角度カウンタ（角度タイマ）１１１は追従カウンタ１１０からのアングルクロックを入力してカウントアップする（図４参照）。
【００２７】
点火・噴射用角度カウンタ１１１のカウント値に基づいてコンペアレジスタを用いて点火・噴射制御がクランク角同期にて行われる。つまり、点火・噴射用角度カウンタ１１１により点火・噴射等の制御をクランク角同期でハード制御することができる。このように、所定の角度間隔で逓倍信号（逓倍クロック）を生成してエンジン回転と同期をとるシステムとすることで、角度から時間への変換のための演算を不要にでき、処理負荷の低減及び精度向上（ｎ＝３２ならばＬＳＢ＝０．１８７５°ＣＡ）を図ることができることとなる。
【００２８】
ここで、ガード手段としてのガード用カウンタ１０８は、前述したように、逓倍カウンタ１０５におけるクランク信号のパルス間での逓倍クロックの波数をカウントして逓倍数となったら逓倍クロックの生成に応じて出力していたアングルクロックの出力を停止させることにより、点火・噴射用角度カウンタ１１１のカウント動作を強制的に停止させる。このように、クランク信号は、所定角度間隔毎のパルス列の途中に欠け歯（パルス間隔が不等な基準位置部）を有するものであり、ガード用カウンタ１０８により逓倍クロックの波数が逓倍数に到達したら、次のクランク信号のパルスを入力するまで角度カウンタ１１１のカウント動作を逓倍値でガードすることによって、急減速時に、クランク信号の次のパルスを入力した後に発生すべきアングルクロックがパルス入力前に発生することが回避でき、また、エンストやクランク信号系の断線時に角度カウンタ１１１のカウント動作を停止させることができ、クランク信号のパルス間隔が長くなってもエンジン制御を適正に行うことができる。
【００２９】
また、図２においてクランク信号の表欠け歯側がシステム初期化場所である。このシステム初期化場所は第４気筒のＢＴＤＣ６°ＣＡの位置であり、この位置で追従カウンタ１１０のカウント値が１サイクルガード値に到達すると同カウンタ１１０が初期化される。そして、この初期化に伴い点火・噴射用角度カウンタ１１１に対してリセット信号が送られ、このリセット信号で点火・噴射用角度カウンタ１１１が初期化されて同期がとられる。
【００３０】
図３のイベントカウンタ１０６はクランク信号のパルスでの立ち下がりエッジでカウントアップするとともに、このカウント値とアウトプットコンペアレジスタ（ＯＣＲ）１０７の値とを比較してクランクエッジを６個入力する毎（３６°ＣＡ毎）にコンペアマッチ信号（角度周期割り込み信号）を出力する。ＣＰＵ１１はイベントカウンタ１０６のカウント値（エッジ入力数）からクランク信号の欠け歯位置を検出することができる。なお、イベントカウンタ１０６のカウント値はエンジン１サイクル（７２０°ＣＡ）で初期化される。
【００３１】
また、図３のフリーランカウンタ１１２はイベントカウンタ１０６のコンペアマッチ信号（角度周期割り込み信号）で起動して、計時動作を行い所定の時間が経過すると角度周期割り込み信号を発生する。そして、この３６°ＣＡ割り込み信号にてエンジン制御が行われる。つまり、エンジン制御手段としてのＣＰＵ１１は、逓倍クロックに基づいてカウント動作する角度カウンタ１１１のカウント値に基づいて３６°ＣＡ毎に（第１の周期にて）エンジン制御のための処理を実行する。詳しくは、例えば、エンジン運転状態に応じた点火時期や噴射量の演算、点火時期等のコンペアレジスタへのセット処理等を行う。この制御用の３６°ＣＡ割り込みは、タイマ割り込みの他にも、インプットキャプチャ割り込み等を利用して実施してもよい。
【００３２】
このようにハード機能で角度タイマ（点火・噴射用角度カウンタ１１１）を作成して点火・噴射等の角度制御を行うシステムにおいて、角度タイマの１サイクルを作成するために角度カウンタ１１１をリセットしたり、４サイクルシステムは７２０°ＣＡが１周期なので表裏判定が必要で、これらの処理はソフト処理で実施しなければならない。また、欠け歯をもつシステムは、欠け歯のクランクエッジ間隔が長く不連続になるので、角度タイマ１１１を補正する必要があるが、この欠け歯の補正もソフトで実施しなければならない。そのために、ソフト処理で欠け歯期間において角度タイマ１１１のリセット等を行う必要がある。この補正処理を行うために、常にクランクエッジ入力毎にソフト割り込みを実施すると処理負荷が増加してしまう。また、補正処理の優先度を落とすと、角度タイマ１１１の補正処理が遅れたり処理が抜けたりする可能性が考えられ、角度タイマ１１１が正常に動作しない。
【００３３】
詳しい説明を図５を用いて行う。図５は、欠け歯時の角度カウンタ補正の内容を示すタイムチャートである。
本実施形態の欠け歯期間は欠け歯以外のクランクエッジ間隔の３倍の間隔がある。しかし、ハードクランク１００は欠け歯期間に対する補正機能を持っていない。また、角度カウンタ補正を正しく行うために、基準カウンタ１０９及び追従カウンタ１１０がエンスト時や断線時にカウントアップしたり、減速時に本来次のクランクエッジ入力後にカウントアップすべきものがクランクエッジ入力前にカウントアップすることを防ぐために、ガード用カウンタ１０８の値で基準カウンタ１０９及び追従カウンタ１１０をクランクエッジ毎に逓倍数でガードしている。そのため、欠け歯期間は、基準カウンタ１０９及び追従カウンタ１１０が欠け歯時にガード用カウンタ１０８で停止しないように、欠け歯直前でガード用カウンタ１０８を欠け歯分持ち上げなければ角度カウンタ１１１を正常に動作させることができない。よって、この持ち上げ処理が遅れたり抜けたりしないようにしなければならない。
【００３４】
また、１周期（７２０°ＣＡ）を作成するために角度タイマ１１１をシステム初期化位置でリセットする必要がある。そのために、システム初期化位置の一つ前のクランクエッジ（図５のｔ４のタイミング）で、ソフトでガード用カウンタ１０８を「０」にする。すると、次のシステム初期化位置にあたるクランクエッジ（図５のｔ５のタイミング）で、基準カウンタ１０９にはガード用カウンタ１０８の値「０」がロードされる。この時に追従カウンタ１１０のカウント値が１サイクルガード値に到達したら（図２のｔ１１のタイミング）、追従カウンタ１１０がハード的にリセットされる。よって、システム初期化位置と一つ前のクランクエッジの間で確実にガード用カウンタ１０８を「０」にリセットしないと追従カウンタ１１０が１サイクルガード値に張り付いてしまう。よって、このリセット処理が遅れたり抜けたりしないようにしなければならない。
【００３５】
以上のことを考慮して、角度タイマ精度確保とソフト全体の処理負荷を最小限に抑えることを両立させつつ角度カウンタ１１１の補正処理を実施すべく、次のような構成を採用している。
【００３６】
本実施形態では、角度タイマ１１１と点火・噴射時期等との角度一致でハード出力しているシステムにおいて、補正処理を実施したい欠け歯前後の特定区間のみ他の割り込みより優先度の高い最優先割り込みで角度タイマ１１１の補正処理を実施し、それ以外の角度同期制御や他の割り込み処理を下位の割り込みで実施することにより角度タイマ１１１の精度確保と処理負荷の増加を最小限に抑えることを両立させている。
【００３７】
以下、詳しく説明していく。
まず、クランク信号の欠け歯直前の３６°ＣＡ割り込みで６°ＣＡ割り込みを起動する。この６°ＣＡ割り込みを発生させるべく、例えば、図３のエッジ時間計測カウンタ１０３として、図６に示す構成を採用する。図６において、カウンタ１０３ａとインプットキャプチャレジスタ（ＩＣＲ）１０３ｂを備え、カウンタ１０３ａはクランクエッジ間の時間をカウントし、カウント値はクランクエッジの入力にてリセットされる。インプットキャプチャレジスタ（ＩＣＲ）１０３ｂは、クランクエッジを入力する毎に、カウンタ１０３ａによるパルス間隔（カウント値）を取り込み、この値（計測した値）を１／ｎ倍に逓倍して逓倍レジスタ１０４に転送する。また、インプットキャプチャレジスタ（ＩＣＲ）１０３ｂは、クランクエッジを入力する毎（６°ＣＡ毎）に、６°ＣＡ割り込み信号を出力する。
【００３８】
そして、図５のｔ３のタイミングで示すように、欠け歯直前の６°ＣＡ割り込みでガード用カウンタ１０８の値を欠け歯分持ち上げて、追従カウンタ１１０の停止を防止する。次に、本実施形態はシステム初期化位置が表欠け歯から２つ目であるので、図５のｔ５のタイミング、即ち、システムリセット位置（表欠け歯から２つ目のクランクエッジ）で追従カウンタ１１０をハード的にリセットするために、図３の欠け歯判定カウンタ１１３により欠け歯直後のクランクエッジで欠け歯検出割り込みを発生させて、ガード用カウンタ１０８を「０」にリセットして、６°ＣＡ割り込みを禁止する。
【００３９】
図３の欠け歯判定カウンタ１１３に関してより詳しくは、欠け歯判定カウンタ１１３は逓倍クロックによりカウントアップし、クランクエッジ入力で０クリアされる。また、同カウンタ１１３はカウント値を欠け歯判定値と比較している。そして、図７に示すように、欠け歯でクランクエッジの入力が一定時間以上ない時は欠け歯判定値に到達し、欠け歯割り込み信号を発生する。詳しくは、欠け歯判定カウンタ１１３はそのカウント値と欠け歯判定値を比較してカウント値が欠け歯判定値と等しくなった後のクランクエッジで欠け歯割り込み信号を発生する。本実施形態では欠け歯判定値を前回のクランクエッジ時間の２．５倍としている。
【００４０】
なお、ガード用カウンタ１０８のリセット処理は欠け歯割り込みでなく、欠け歯直後の６°ＣＡ割り込みで行ってもよい。例えば、欠け歯未検出時等は欠け歯割り込みが発生しないため、この場合は６°ＣＡ割り込みで行う。また、システム初期化位置が欠け歯から離れた位置にあり、３６°ＣＡ割り込み発生位置でないシステムでリセット処理を行う場合は、例えば、初期化位置直前の３６°ＣＡ割り込みより６°ＣＡ割り込みを発生させてシステム初期化位置直前の６°ＣＡ割り込みでガード用カウンタ１０８を「０」にリセットする。
【００４１】
このように本実施形態では欠け歯期間前後の割り込み処理を角度タイマ補正処理として、通常の割り込みより上位の割り込みに設定する。つまり、６°ＣＡ割り込みを起動する３６°ＣＡ割り込み（基準３６°ＣＡ割り込み）を角度同期処理の基準として、欠け歯前後以外はエンジン制御用の３６°ＣＡ割り込みを起動するのみで、欠け歯直前では６°ＣＡ割り込みを起動してから、制御用３６°ＣＡ割り込みを起動する。このように、角度タイマ１１１の補正処理が必要な特定区間のみ最優先の割り込みを発生させて角度タイマ１１１の補正処理を実施することで角度タイマ１１１の精度を確保でき、かつ角度タイマ１１１の補正処理による処理を最小限に抑えることによりシステム全体の処理負荷の増大を防ぐことができる。
【００４２】
図９〜図１２に、フローチャートを示し、詳細を説明する。図８は図５のタイムチャートに対応した各種の処理を説明するためのタイムチャートである。
図９は基準３６°ＣＡ割り込み処理のフローチャートで、この割り込みは図３のイベントカウンタ１０６のコンペアマッチ信号で起動する。
【００４３】
まず、ＣＰＵ１１はステップ１００でシステムリセット位置の第４気筒のＢＴＤＣ６°ＣＡである欠け歯直後の３６°ＣＡ位置であるか否か判断する。そして、欠け歯直後の場合には（図５，８のｔ５のタイミング）、ＣＰＵ１１は、ステップ１０６，１０７で、図８に示すごとくイベントカウンタ１０６とコンペア一致用のＯＣＲ１０７を初期化する。
【００４４】
一方、ステップ１００において欠け歯直後でない場合には、ＣＰＵ１１は、ステップ１０１で、欠け歯直前の３６°ＣＡ位置であるか否か判断する。そして、欠け歯直前の３６°ＣＡ位置である場合は（図５，８のｔ１のタイミング）、ＣＰＵ１１は欠け歯直前のクランクエッジでガード用カウンタ１０８の値を欠け歯分持ち上げるために、ステップ１０２で６°ＣＡ割り込みを起動し、さらに、ステップ１０３で、欠け歯直前のクランクエッジを判断するための６°ＣＡ計測カウンタを初期化する（図８参照）。その後、ＣＰＵ１１はステップ１０４で、次回の３６°ＣＡ割り込みを発生させるためにＯＣＲ１０７の値を＋６する（図８参照）。最後に、ＣＰＵ１１はステップ１０５で、制御用３６°ＣＡ割り込みを許可する。
【００４５】
３６°ＣＡ割り込みで６°ＣＡ割り込みを許可すると、次のクランクエッジ入力で、即ち、図５，８のｔ２のタイミングで６°ＣＡ割り込みが発生する。そして、ＣＰＵ１１は図１０のステップ２００，２０３で６°ＣＡ計測カウンタが「１」又は「２」か否か判定する。ここで、図８のタイミングｔ１での「０」リセット後のｔ２のタイミングでは６°ＣＡ計測カウンタが「０」であるので、ステップ２０２に移行して６°ＣＡ計測カウンタをカウントアップする。次回のクランクエッジ入力において（図５，８のｔ３のタイミングで）６°ＣＡ割り込みが発生して、図１０のステップ２００において６°ＣＡ計測カウンタが「１」であると、欠け歯直前の３６°ＣＡ割り込みから２つ目のクランクエッジであるとして、ステップ２０１に移行してガード用カウンタ１０８の値を持ち上げる（図５参照）。その後、ＣＰＵ１１はステップ２０２で６°ＣＡ計測カウンタをカウントアップする。
【００４６】
マイコン１０（欠け歯判定カウンタ１１３）が欠け歯を検出したら（図５，８のｔ４のタイミング）、欠け歯検出割り込みが発生し、ＣＰＵ１１は図１１のステップ３００で、欠け歯の表裏の判別（気筒判別）を実施して、ステップ３０１で表の欠け歯か否か判定する。そして、表欠け歯の時は、ＣＰＵ１１は角度タイマ１１１をシステムリセット位置で初期化するために、ステップ３０２でガード用カウンタ１０８を「０」にリセットし（図５参照）、さらに、ノイズ等でクランクパルスが多発した時等を考慮して、ステップ３０３で基準カウンタ１０９を表欠け歯値に再セットする。そして次のクランクエッジ（図５のｔ５のタイミング）にてガード用カウンタ１０８の値「０」が基準カウンタ１０９にロードされるとともに、追従カウンタ１１０がリセットされて点火・噴射用角度カウンタ１１１にリセット信号が送られることとなる。
【００４７】
一方、図１１のステップ３０１において裏欠け歯の時は、ＣＰＵ１１は角度タイマ１１１がノイズ等でずれていた時を考慮して、ステップ３０６，３０７でガード用カウンタ１０８、基準カウンタ１０９を裏欠け歯値に再セットする。
【００４８】
最後に、ＣＰＵ１１はステップ３０４，３０５でイベントカウンタ１０６を＋２するとともに、欠け歯補正処理が終了したとして６°ＣＡ割り込みを禁止する。つまり、イベントカウンタ１０６に関し、図８に示すように、ｔ４のタイミングでクランクエッジ入力に伴い「１」インクリメントしたイベントカウンタ１０６に対し欠け歯分の「２」を加算する。
【００４９】
また、欠け歯判定カウンタ１１３にて欠け歯検出割り込みが発生しない時（例えば、加速時）及び欠け歯検出割り込みを禁止した時（例えば、エンジン始動時、エンスト時）は、角度タイマ継続のため、ＣＰＵ１１は図１０のステップ２０３からステップ２０４に移行して欠け歯検出割り込みで実施する処理を行う。
【００５０】
ＣＰＵ１１は図９のステップ１０５で３６°ＣＡ割り込みを許可すると（あるいは、イベントカウンタ１０６のコンペアマッチが起きると）、図１２の制御用３６°ＣＡ割り込みを行う（制御用３６°ＣＡ割り込みが発生する）。まず、ＣＰＵ１１はステップ４００で３６°ＣＡ基準カウンタをカウントアップし、ステップ４０１で角度制御の基準時間である３６°ＣＡ時間の算出を行い、ステップ４０２で点火・噴射のための演算やその出力値設定等の角度同期処理を実施する。ステップ４０１での３６°ＣＡ時間計測は、例えば点火信号の通電時間の計算の基となる。
【００５１】
このように、本実施の形態は下記の特徴を有する。
（イ）エンジン制御手段および切替手段としてのＣＰＵ１１は、点火・噴射用角度カウンタ１１１のカウント値に基づいてエンジン制御のための処理を実行するとともに、図９の処理にて補正処理を実施したい特定期間を検出し、図９のステップ１０２において当該特定期間だけエンジン制御処理よりも優先度の高い点火・噴射用角度カウンタ１１１の補正のための割り込み処理を実行可能とする。このとき、エンジン制御手段および補正手段としてのＣＰＵ１１は、点火・噴射用角度カウンタ１１１のカウント値に基づいて図１２に示すごとく３６°ＣＡ毎に（第１の周期にて）エンジン制御のための処理を実行するとともに、図９の処理にて補正処理を実施したい特定期間を検出し、当該特定期間だけ図１０，１１に示すごとく６°ＣＡ毎に（第１の周期よりも短い第２の周期にて）点火・噴射用角度カウンタ１１１の補正処理を行う。
【００５２】
つまり、補正処理を実施したい特定区間のみ他の割り込みより優先度の高い最優先割り込みで角度カウンタ１１１の補正処理を実施してそれ以外の処理（角度同期処理や他の割り込み処理）を下位の割り込みで実施する、あるいは、補正処理を実施したい特定区間だけ短い周期による補正を行う。その結果、角度カウンタ１１１の精度の確保と処理負荷の増加抑制を両立させることができることとなる。
（ロ）クランク信号は、所定角度間隔毎のパルス列の途中に基準位置部を有するものであり、角度カウンタ１１１の補正は、図１１のように、クランク信号の基準位置部を検出して当該基準位置部において図１１のステップ３０２の処理にて角度カウンタ１１１のカウント値を初期化することとした。
（ハ）クランク信号は、所定角度間隔毎のパルス列の途中に３６０°ＣＡ毎の基準位置部を有するものであり、角度カウンタ１１１の補正は、クランク信号の基準位置部を検出して、図１１のステップ３０１において当該基準位置部が７２０°ＣＡ毎の表の基準位置部か７２０°ＣＡ毎の裏の基準位置部かを判定してステップ３０３，３０７において角度カウンタ１１１のカウント値を再設定することとした。
（ニ）ガード用カウンタ１０８を備えたシステムにおいて、ガード用カウンタ１０８のガード値を補正することにより、ガード機能を正しく働かせて基準位置部でも適正なる角度カウンタ１１１のカウント動作を行わせることができる。即ち、角度カウンタ１１１の補正は、図１０のステップ２０１で、クランク信号の基準位置部においてガード用カウンタ１０８のガード値を補正することであるとした。詳しくは、クランク信号の基準位置部は、所定角度間隔毎のパルス列の途中に当該パルスを抜いた欠け歯部であり、角度カウンタ１１１の補正として、クランク信号の欠け歯部においてガード用カウンタ１０８のガード値を、抜いたパルス分だけ持ち上げる。
【００５３】
この（ロ）〜（ニ）の補正を、（イ）に記載にした手法により精度の確保と処理負荷の増加抑制を両立させつつ行うことができる。
なお、これまでの説明ではクランク信号の基準位置部は、パルス列の途中においてパルスを抜いた欠け歯部であったが、これに限ることなく、他の構造（パルス列の途中にパルスを挿入する等の構造）にて所定角度間隔毎のパルス列の途中においてパルス間隔が不等な基準位置部を構成してもよい。そして、クランク信号の基準位置部においてガード用カウンタ１０８のガード値を補正することによりガード機能を正しく働かせて基準位置部でも適正数の角度信号を出力させることができる。
【図面の簡単な説明】
【図１】実施の形態におけるエンジン制御ＥＣＵの構成図。
【図２】エンジン１サイクル分（７２０°ＣＡ）のタイムチャート。
【図３】ハードクランクの構成図。
【図４】ハードクランクによるアングルクロックの生成を説明するためのタイムチャート。
【図５】欠け歯時の角度カウンタの補正処理を説明するためのタイムチャート。
【図６】エッジ時間計測カウンタの構成例を示す図。
【図７】欠け歯時の動作を説明するためのタイムチャート。
【図８】欠け歯時の角度カウンタの補正処理を説明するためのタイムチャート。
【図９】基準３６°ＣＡ割り込み処理を説明するためのフローチャート。
【図１０】６°ＣＡ割り込み処理を説明するためのフローチャート。
【図１１】欠け歯検出割り込み処理を説明するためのフローチャート。
【図１２】制御用３６°ＣＡ割り込み処理を説明するためのフローチャート。
【符号の説明】
１…エンジン制御ＥＣＵ、１０…マイコン、１１…ＣＰＵ、１６…タイマモジュール、１００…ハードクランク、１０３…エッジ時間計測カウンタ、１０４…逓倍レジスタ、１０５…逓倍カウンタ、１０８…ガード用カウンタ、１０９…基準レジスタ、１１０…追従カウンタ、１１１…点火・噴射用角度カウンタ。
【図１】
0003539336.tif 000002
【図２】
0003539336.tif 000003
【図３】
0003539336.tif 000004
【図４】
0003539336.tif 000005
【図５】
0003539336.tif 000006
【図６】
0003539336.tif 000007
【図７】
0003539336.tif 000008
【図８】
0003539336.tif 000009
【図９】
0003539336.tif 000010
【図１０】
0003539336.tif 000011
【図１１】
0003539336.tif 000012
【図１２】
0003539336.tif 000013