(57)【特許請求の範囲】
【請求項１】
内燃機関のクランク軸の所定クランク角度毎に発生されるクランク信号を検出するクランクセンサと、
前記内燃機関のカム軸のカム角度に従って、前記クランク信号の発生間隔に対して倍数の関係にて発生されるカム信号を検出するカムセンサと、
前記クランク信号に応じた所定のクランク角度毎に前記内燃機関に対する燃料噴射制御処理、点火時期制御処理、またはその他の制御処理を実行するための起動タイミングを生成する起動タイミング生成手段と、
前記クランクセンサの異常を検出する異常検出手段と、
前記異常検出手段で前記クランクセンサの異常が検出されたときには、前記カム信号の発生間隔を分周して前記起動タイミングに代わる疑似起動タイミングを生成する疑似起動タイミング生成手段と、
前記起動タイミングまたは前記疑似起動タイミングに応じて燃料噴射制御処理、点火時期制御処理またはその他の制御処理を実行する制御手段と
を具備することを特徴とする内燃機関用制御装置。
【請求項２】
前記疑似起動タイミング生成手段は、前記カム信号の発生間隔の分周に対応する所定回数の前記疑似起動タイミングが生成できないときには、所定の重み付けによる補正によって前記所定回数の前記疑似起動タイミングを生成することを特徴とする請求項１に記載の内燃機関用制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の回転角位置を検出し、各気筒における各種制御処理を実行する内燃機関用制御装置に関するものである。
【０００２】
【従来の技術】
従来、内燃機関用制御装置に関連する先行技術文献としては、特開平７−３１０５８２号公報にて開示されたものが知られている。このものでは、内燃機関の回転角位置を検出するクランクセンサが異常となったときに、カムセンサからのカム信号の通過走行時間を所定の周波数で求め、予め記憶されたクランク角度で割ることにより、クランク信号の最小単位毎のクロックパルス数を求める。このクロックパルス数からクランク信号を模擬する技術が示されている。
【０００３】
【発明が解決しようとする課題】
ところで、前述のものをハードウェアで実現するには、クランク角に対する最小単位クロックパルスを生成するための周波数発振器、計数器、波形生成回路等が必要となり回路構成が複雑で高価なものとなる。一方、ソフトウェアで実現するには、クランク信号の発生によるＨｉ（高）／Ｌｏ（低）信号を出力するためのタイマセット処理の連続となり、内燃機関の高回転時に処理遅れが生じ、クランク信号を忠実に再現することは無理であった。
【０００４】
そこで、この発明はかかる不具合を解決するためになされたもので、クランクセンサの異常でクランク信号の発生がないときにカム信号からクランク信号を模擬するのではなく、単にカム信号の発生間隔の分周による割込を発生させ、内燃機関に対する各種制御処理を実行することで複雑な処理をしなくても退避走行が可能な内燃機関用制御装置の提供を課題としている。
【０００５】
【課題を解決するための手段】
請求項１の内燃機関用制御装置によれば、クランクセンサからのクランク信号が正常に発生されているときには起動タイミング生成手段で生成された通常の起動タイミングにて所定のクランク角度毎に内燃機関に対する燃料噴射制御処理、点火時期制御処理、またはその他の制御処理が実行され、異常検出手段でクランクセンサの異常が検出されると疑似起動タイミング生成手段でカム信号の発生間隔が分周されて生成された疑似起動タイミングに応じて同様に各種制御処理が実行される。これにより、クランクセンサの異常時でクランク信号の入力がなくてもカム信号の入力がありさえすれば、疑似起動タイミングにて内燃機関に対して必要な各種制御処理が実行されることで退避走行が可能となる。
【０００６】
請求項２の内燃機関用制御装置では、クランクセンサの異常時でクランク信号の入力がないときに内燃機関の運転状態が急変されカム信号の発生間隔が大きく変化してしまうと、カム信号の発生間隔の分周に対応する所定回数の疑似起動タイミングが生成できないため、疑似起動タイミング生成手段によってカム信号の発生間隔の変化量に基づきその発生間隔に対する所定の重み付けによる補正が実行される。これにより、クランクセンサの異常時でクランク信号の入力がなくても、より適切な疑似起動タイミングが生成でき退避走行時における内燃機関の運転状態を安定させることができる。
【０００７】
【発明の実施の形態】
以下、本発明の実施の形態を実施例に基づいて説明する。
【０００８】
図１は本発明の実施の形態の一実施例にかかる内燃機関用制御装置を示す概略構成図である。
【０００９】
図１において、１は４サイクルＶ型８気筒からなる内燃機関（図示略）のクランク軸、２はクランク軸１に取付けられた回転体である。この回転体２の外周にはクランク角判定用として１０°ＣＡ（Crank Angle:クランク角）毎、但し欠歯部は２０°ＣＡからなる３５（３６−１）個の突起が形成されている。１０は回転体２の外周に形成された各突起に対向し、それら突起によるクランク信号（クランク軸１の角度位置）を検出する電磁ピックアップからなるクランクセンサである。
【００１０】
また、１１は内燃機関のＶ型の一方のシリンダブロックにおける４つの気筒群に対応するカム１軸、１２はカム１軸１１に取付けられた回転体である。この回転体１２の外周にはカム角判定用として４個の突起が形成されている（突起間の角度については図１参照）。２０は回転体１２の外周に形成された各突起に対向し、それら突起によるカム１信号（カム１軸１１の角度位置）を検出する電磁ピックアップからなるカム１センサである。
【００１１】
そして、２１は内燃機関のＶ型の他方のシリンダブロックにおける４つの気筒群に対応するカム２軸、２２はカム２軸２１に取付けられた回転体である。この回転体２２の外周にはカム角判定用として４個の突起が形成されている（突起間の角度については図１参照）。３０は回転体２２の外周に形成された各突起に対向し、それら突起によるカム２信号（カム１軸２１の角度位置）を検出する電磁ピックアップからなるカム２センサである。
【００１２】
したがって、図１に示すような回転体１２，２２の突起位置によって、カム１センサ２０からのカム１信号及びカム２センサ３０からのカム２信号は回転体１２，２２の何れか１つに対応して４５°毎に発生される。ここで、クランク軸１の２回転（７２０°ＣＡ）に対してカム１軸１１及びカム２軸２１はそれぞれ１回転（３６０°）される。即ち、クランクセンサ１０からのクランク信号の発生間隔は１０°ＣＡ毎であるのに対して、カム１センサ２０からのカム１信号及びカム２センサ３０からのカム２信号の発生間隔はクランク角換算で９０°ＣＡ毎の９倍となる。なお、本実施例の内燃機関では、クランク信号発生の３回（３０°ＣＡ）毎に後述の点火時期制御処理、燃料噴射制御処理等が実行され、即ち、カム１センサ２０からのカム１信号及びカム２センサ３０からのカム２信号の発生間隔で後述の点火時期制御処理、燃料噴射制御処理等が３回ずつ実行される。
【００１３】
４０はＥＣＵ（Electronic Control Unit:電子制御ユニット）であり、クランクセンサ１０からのクランク信号、カム１センサ２０からのカム１信号、カム２センサ３０からのカム２信号はＥＣＵ４０を構成する波形整形回路４１介してマイクロコンピュータ５０に入力される。マイクロコンピュータ５０ではクランク信号、カム１信号及びカム２信号の発生タイミングに基づき図示しない各種センサからの信号による内燃機関の運転状態に応じた制御量が演算され、その演算結果に応じた駆動信号がＥＣＵ４０を構成する噴射出力ドライバ４２及び点火出力ドライバ４３に出力される。なお、噴射出力ドライバ４２からの信号は内燃機関の各インジェクタ（図示略）、点火出力ドライバ４３からの信号は内燃機関の各イグナイタ（図示略）にそれぞれ出力される。
【００１４】
マイクロコンピュータ５０は、周知の中央処理装置としてのＣＰＵ５１、制御プログラムを格納したＲＯＭ５２、各種データを格納するＲＡＭ５３、Ｂ／Ｕ（バックアップ）ＲＡＭ５４、入出力回路５５及びそれらを接続するバスライン５６等からなる論理演算回路として構成されている。
【００１５】
次に、本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１におけるクランクセンサ１０からのクランク信号が正常時の各種制御の処理手順を示す図２及び図３のフローチャートに基づいて説明する。ここで、図３は図２のステップＳ１０４の処理を示すフローチャートである。なお、これら制御ルーチンのうち図２は１０°ＣＡ毎、但し欠歯時は２０°ＣＡ、図３は３０°ＣＡ毎でそれぞれＣＰＵ５１にて繰返し実行される。なお、以下の説明ではカム１センサ２０からのカム１信号及びカム２センサ３０からのカム２信号はそれぞれ正常に出力されているものとする。
【００１６】
図２において、ステップＳ１０１で気筒判別処理が実行される。ここでは、後述の点火時期制御、燃料噴射制御で必要な３０°ＣＡ時間（Ｔ３０）、９０°ＣＡ時間（Ｔ９０）、３０°ＣＡ毎にカウントアップされ基準気筒タイミングで所定値にセットされるクランク角カウンタＣＣＲＮＫ、クランク信号による３０°ＣＡタイミング毎の割込時刻ＺＴＮＥ等が算出される。次にステップＳ１０２に移行して、退避走行モードであることを表す退避走行モードフラグＸＣＬＩＭＰが「１」であるかが判定される。ここで、退避走行モードとは、クランクセンサ１０の異常発生と同時に内燃機関を停止させることなく、その異常発生の場所から修理工場等までの安全な自力走行を可能とする機能をいう。ステップＳ１０２の判定条件が成立せず、即ち、退避走行モードフラグＸＣＬＩＭＰが「０」で退避走行モードでないときにはステップＳ１０３に移行し、３０°ＣＡタイミングであるかが判定される。ステップＳ１０３の判定条件が成立、即ち、３０°ＣＡタイミングであるときにはステップＳ１０４に移行し、後述の３０°ＣＡ割込によるＩＳＮ３０Ｓ処理が実行され、本ルーチンを終了する。ここで、ステップＳ１０３の判定条件が成立せず、即ち、３０°ＣＡタイミングでないときには何もすることなく本ルーチンを終了する。
【００１７】
一方、ステップＳ１０２の判定条件が成立、即ち、退避走行モードフラグＸＣＬＩＭＰが「１」で退避走行モードであるときにはステップＳ１０５に移行し、クランクセンサ１０の異常判定フラグＸＯＣＮＴＦが「０」であるかが判定される。ステップＳ１０５の判定条件が成立、即ち、クランクセンサ１０の異常発生による退避走行モードからクランクセンサ１０が正常復帰したときにはステップＳ１０６に移行し、３０°ＣＡタイミングであるかが判定される。ステップＳ１０６の判定条件が成立、即ち、３０°ＣＡタイミングであるときにはステップＳ１０７に移行し、退避走行モードフラグＸＣＬＩＭＰが「０」にクリアされ通常走行モードに復帰される。そして、ステップＳ１０４に移行し、後述の３０°ＣＡ割込によるＩＳＮ３０Ｓ処理が実行され、本ルーチンを終了する。一方、ステップＳ１０５の判定条件が成立せず、即ち、異常判定フラグＸＯＣＮＴＦが「１」でありクランクセンサ１０が異常であるとき、またはステップＳ１０６の判定条件が成立せず、即ち、３０°ＣＡタイミングでないときには何もすることなく本ルーチンを終了する。
【００１８】
次に、図２のステップＳ１０４における３０°ＣＡ割込によるＩＳＮ３０Ｓ処理手順を示す図３のフローチャートについて説明する。図３のステップＳ１１１では、後述の３０°ＣＡ割込による点火時期制御処理が実行される。次にステップＳ１１２に移行して、後述の３０°ＣＡ割込による燃料噴射制御処理が実行される。次にステップＳ１１３に移行して、３０°ＣＡ割込による他の制御処理が実行され、本ルーチンを終了する。
【００１９】
次に、本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１における点火時期制御の処理手順を示す図４及び図５のフローチャートに基づいて説明する。なお、これら制御ルーチンのうち図４は各気筒毎の３０°ＣＡ割込、図５は通電開始割込でそれぞれＣＰＵ５１にて繰返し実行される。
【００２０】
図４において、まず、ステップＳ２０１でＴＤＣ(Top Dead Center：上死点）から１５０°ＣＡ前であるかが判定される。ステップＳ２０１の判定条件が成立、即ち、ＴＤＣから１５０°ＣＡ前であるときにはステップＳ２０２に移行し、通電開始までのクランク角〔°ＣＡ〕が算出される。次にステップＳ２０３に移行して、ステップＳ２０２で算出されたクランク角〔°ＣＡ〕が現在の機関回転数ＮＥに基づき通電開始時期タイマＣＡＴのタイマ時間に換算される。次にステップＳ２０４に移行して、通電開始時期タイマＣＡＴがセットされたのち本ルーチンを終了する。
【００２１】
一方、ステップＳ２０１の判定条件が成立せず、即ち、ＴＤＣから１５０°ＣＡ前でないときにはステップＳ２０５に移行し、ＴＤＣから１２０°ＣＡ前または９０°ＣＡ前または６０°ＣＡ前であるかが判定される。ステップＳ２０５の判定条件が成立、即ち、ＴＤＣから１２０°ＣＡ前または９０°ＣＡ前または６０°ＣＡ前であるときにはステップＳ２０６に移行し、そのときの加速状態に応じた通電開始時期タイマＣＡＴに対する加速補正が実行される。次にステップＳ２０７に移行して、ステップＳ２０６で加速補正された通電開始時期タイマＣＡＴが再セットされたのち本ルーチンを終了する。
【００２２】
一方、ステップＳ２０５の判定条件が成立せず、即ち、ＴＤＣから１２０°ＣＡ前または９０°ＣＡ前または６０°ＣＡ前でもないときにはステップＳ２０８に移行し、ＴＤＣから３０°ＣＡ前または０°ＣＡ前であるかが判定される。ステップＳ２０８の判定条件が成立、即ち、ＴＤＣから３０°ＣＡ前または０°ＣＡ前であるときにはステップＳ２０９に移行し、通電中であるかが判定される。ステップＳ２０９の判定条件が成立せず、即ち、未だイグナイタから点火コイル（図示略）への通電中でないときには上述のステップＳ２０６に移行し、同様の処理が実行される。一方、ステップＳ２０９の判定条件が成立、即ち、このときイグナイタから点火コイルへの通電中であるときにはステップＳ２１０に移行し、後述の点火時期タイマが再セットされ本ルーチンを終了する。一方、ステップＳ２０８の判定条件が成立せず、即ち、ＴＤＣから３０°ＣＡ前または０°ＣＡ前でもないときには何もすることなく本ルーチンを終了する。
【００２３】
次に、図４でセットされた通電開始時期タイマＣＡＴがタイムアップすると通電開始割込処理である図５のフローチャートが起動される。図５のステップＳ２１１では、通電時間分としての点火時期タイマがセットされ、本ルーチンを終了する。
【００２４】
次に、本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１における燃料噴射制御の処理手順を示す図６及び図７のフローチャートに基づいて説明する。なお、これら制御ルーチンのうち図６は各気筒毎の３０°ＣＡ割込、図７は噴射開始割込でそれぞれＣＰＵ５１にて繰返し実行される。
【００２５】
図６において、まず、ステップＳ３０１で噴射開始時期演算として各気筒のＴＤＣからどれだけクランク角〔°ＣＡ〕前で噴射開始するかが求められる。次にステップＳ３０２に移行して、インジェクタからの燃料噴射量ＴＡＵが算出される。次にステップＳ３０３に移行して、噴射開始時期タイマＤＧＩＮＪＳＤのセットタイミングであるかが判定される。ステップＳ３０３の判定条件が成立、即ち、噴射開始時期タイマＤＧＩＮＪＳＤのセットタイミングであるときにはステップＳ３０４に移行し、噴射開始時期タイマＤＧＩＮＪＳＤがセットされ本ルーチンを終了する。一方、ステップＳ３０３の判定条件が成立せず、即ち、噴射開始時期タイマＤＧＩＮＪＳＤのセットタイミングでないときには何もすることなく本ルーチンを終了する。
【００２６】
次に、図６の処理で噴射開始されると噴射開始割込である図７のフローチャートが起動される。図７のステップＳ３１１では、燃料噴射量ＴＡＵ分としての噴射終了時期タイマがセットされ、本ルーチンを終了する。
【００２７】
次に、本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１におけるクランクセンサ１０の異常判定の処理手順を示す図８、図９及び図１０のフローチャートに基づき、図１１を参照して説明する。ここで、図１１はクランク信号とタイマカウンタＣＣＴとの関係を示すタイムチャートである。なお、これら異常判定ルーチンのうち図８は１６ｍｓ毎、図９は８ｍｓ毎、図１０は１０°ＣＡ割込でそれぞれＣＰＵ５１にて繰返し実行される。
【００２８】
図８において、ステップＳ４０１では、機関回転数ＮＥが６００ｒｐｍを越えているかが判定される。ステップＳ４０１の判定条件が成立、即ち、機関回転数ＮＥが６００ｒｐｍを越えエンスト気味でなく安定状態であるときには、ステップＳ４０２に移行し、タイマカウンタＣＣＴが８ｍｓ以下であるかが判定される。ステップＳ４０２の判定条件が成立、即ち、タイマカウンタＣＣＴが８ｍｓ以下と短いときにはステップＳ４０３に移行し、クランクセンサ１０からのクランク信号が正常に出力されているとして異常判定フラグＸＯＣＮＴＦが「０」とされ、本ルーチンを終了する。
【００２９】
一方、ステップＳ４０２の判定条件が成立せず、即ち、タイマカウンタＣＣＴが８ｍｓを越えているときにはステップＳ４０４に移行し、更に、タイマカウンタＣＣＴが１００ｍｓ以上であるかが判定される。ステップＳ４０４の判定条件が成立、即ち、図１１にＮＧとして示すように、タイマカウンタＣＣＴが１００ｍｓ以上と長くなったときにはステップＳ４０５に移行し、クランクセンサ１０に異常（断線等）が発生しクランク信号が出力されていないとして異常判定フラグＸＯＣＮＴＦが「１」とされ、本ルーチンを終了する。一方、ステップＳ４０１の判定条件が成立せず、即ち、機関回転数ＮＥが６００ｒｐｍ以下とエンスト気味であるとき、またはステップＳ４０４の判定条件が成立せず、即ち、タイマカウンタＣＣＴが８ｍｓを越えてはいるが１００ｍｓ未満であるときには何もすることなく本ルーチンを終了する。なお、ステップＳ４０４における異常判定時間１００ｍｓは現在の負荷（機関回転数ＮＥ）に応じて可変してもよい。
【００３０】
図９のフローチャートにて図８におけるタイマカウンタＣＣＴの処理が８ｍｓ毎に起動される。図９のステップＳ４１１では、タイマカウンタＣＣＴがカウントアップされ、本ルーチンを終了する。また、図１０のフローチャートにて図８におけるタイマカウンタＣＣＴの処理が１０°ＣＡ割込で起動される。図１０のステップＳ４２１では、図１１に示すように、１０°ＣＡ毎に出力されるクランク信号によりタイマカウンタＣＣＴが「０」にクリアされ、本ルーチンを終了する。
【００３１】
次に、本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１におけるクランクセンサ１０の異常時のカム１センサ２０からのカム１信号及びカム２センサ３０からのカム２信号を用いたフェイルセーフの処理手順を示す図１２、図１３、図１４及び図１５のフローチャートに基づいて説明する。なお、これらフェイルセーフルーチンのうち図１２はカム１信号割込、図１３はカム２信号割込、図１４及び図１５は図１２または図１３の処理ののちそれぞれＣＰＵ５１にて繰返し実行される。
【００３２】
カム１センサ２０からのカム１信号が入力されると、図１２の割込処理が実行される。ステップＳ５０１では、フラグＸＣＣＡＶＴが「１」とされ、カム１信号の入力有りとされたのち、ステップＳ５０２に移行し、後述のフェイルセーフ処理としてのＩＣＣＧＦ処理が起動される。
【００３３】
一方、カム２センサ３０からのカム２信号が入力されると、図１３の割込処理が実行される。ステップＳ５１１では、フラグＸＣＶＴが「１」とされ、カム２信号の入力有りとされたのち、ステップＳ５１２に移行し、後述のフェイルセーフ処理としてのＩＣＣＧＦ処理が起動される。
【００３４】
次に、フェイルセーフ処理としてのＩＣＣＧＦ処理について図１４及び図１５のフローチャートに基づき、図１６を参照して説明する。ここで、図１６はクランクセンサ１０からのクランク信号異常時における各種信号等の遷移状態を示すタイミングチャートである。
【００３５】
図１４において、ステップＳ５２１では、フラグＸＣＣＡＶＴが「１」であるかが判定される。ステップＳ５２１の判定条件が成立、即ち、フラグＸＣＣＡＶＴが「１」でありカム１センサ２０によるカム１信号が入力されているときにはステップＳ５２２に移行し、そのカム１信号の割込時刻が所定のメモリ領域にＤＡＳＭとして記憶される。一方、ステップＳ５２１の判定条件が成立せず、即ち、フラグＸＣＣＡＶＴが「０」であるときにはカム２センサ３０によるカム２信号が入力されているとしてステップＳ５２３に移行し、カム２センサ３０によるカム２信号の割込時刻が所定のメモリ領域にＤＡＳＭとして記憶される。
【００３６】
ステップＳ５２２またはステップＳ５２３の処理ののちステップＳ５２４に移行し、カム信号間隔の時間Ｔ９０Ｗが次式（１）にて算出される。ここで、ＤＡＳＭＯは所定のメモリ領域に記憶されている前回のカム１信号またはカム２信号の割込時刻である。
【００３７】
【数１】
Ｔ９０Ｗ＝｜ＤＡＳＭ−ＤＡＳＭＯ｜                      ・・・（１）
次にステップＳ５２５に移行して、今回のカム１信号またはカム２信号の割込時刻ＤＡＳＭがＤＡＳＭＯとされ更新される。次にステップＳ５２６に移行して、図１６に示すカウンタＣＣＧＦが「２」、かつカム１センサ２０によるカム１信号の入力有りでフラグＸＣＣＡＶＴが「１」となるタイミングであるかが判定される。ステップＳ５２６の判定条件が成立しないときにはステップＳ５２７に移行し、カウンタＣＣＧが「１」カウントアップされる（図１６参照）。一方、ステップＳ５２６の判定条件が成立するときにはステップＳ５２８に移行し、カウンタＣＣＧが「０」にクリアされる（図１６参照）。このようにして、カム１センサ２０からのカム１信号またはカム２センサ３０からのカム２信号により気筒基準位置を示すカウンタＣＣＧの値が求められる。
【００３８】
次にステップＳ５２９に移行して、フラグＸＣＣＡＶＴが「１」であるかが判定される。ステップＳ５２９の判定条件が成立、即ち、カム１センサ２０によるカム１信号の入力が有るときにはステップＳ５３０に移行し、カウンタＣＣＧＦが「０」にクリアされる（図１６参照）。一方、ステップＳ５２９の判定条件が成立しないときにはステップＳ５３０がスキップされる。次にステップＳ５３１に移行して、フラグＸＣＶＴが「１」であるかが判定される。ステップＳ５３１の判定条件が成立、即ち、カム２センサ３０によるカム２信号の入力が有るときにはステップＳ５３２に移行し、カウンタＣＣＧＦがカウントアップされる（図１６参照）。一方、ステップＳ５３１の判定条件が成立しないときにはステップＳ５３２がスキップされる。
【００３９】
次にステップＳ５３３に移行して、異常判定フラグＸＯＣＮＴＦが「１」であるかが判定される。ステップＳ５３３の判定条件が成立、即ち、異常判定フラグＸＯＣＮＴＦが「１」であるときにはステップＳ５３４に移行し、クランクセンサ１０に異常（断線等）が発生しクランク信号が出力されていないため退避走行モードフラグＸＣＬＩＭＰが「１」にセットされる。一方、ステップＳ５３３の判定条件が成立しないときにはステップＳ５３４がスキップされる。次にステップＳ５３５に移行して、退避走行モードフラグＸＣＬＩＭＰが「１」であるかが判定される。ステップＳ５３５の判定条件が成立せず、即ち、退避走行モードフラグＸＣＬＩＭＰが「０」でありクランクセンサ１０からのクランク信号が正常に出力されているときには、本ルーチンを終了する。
【００４０】
一方、ステップＳ５３５の判定条件が成立、即ち、退避走行モードフラグＸＣＬＩＭＰが「１」でありクランクセンサ１０が異常であるときには退避走行モードを実行するためステップＳ５３６に移行し、上述の点火時期制御や燃料噴射制御で必要な３０°ＣＡ時間として上式（１）で算出されたカム信号間隔の時間Ｔ９０Ｗの１／３がクランク信号間隔の時間Ｔ３０とされ、カム信号間隔の時間Ｔ９０Ｗが所定のメモリ領域にカム信号間隔の時間Ｔ９０として記憶される。つまり、クランクセンサ１０が異常であるときには、１０°ＣＡ毎のクランク信号が発生されなくて３０°ＣＡタイミングが生成できないため、カム１信号及びカム２信号による９０°ＣＡ間隔が利用され、その１／３間隔で疑似３０°ＣＡタイミングが生成されるのである。また、退避走行モード中では、今回のカム１信号またはカム２信号の割込時刻ＤＡＳＭが、点火・噴射タイマセット基準となる所定のメモリ領域に割込時刻ＺＴＮＥとして記憶される。
【００４１】
次に、図１５のステップＳ５３７に移行し、カウンタＣＣＧが「０」であるかが判定される。ステップＳ５３７の判定条件が成立、即ち、カウンタＣＣＧが「０」であるときには退避走行モード中における気筒基準位置であるとしてステップＳ５３８に移行し、カム１センサ２０及びカム２センサ３０による気筒判別済フラグＸＣＶＶＴＪが「１」にセットされる。次にステップＳ５３９に移行して、このタイミングに一致するクランク角カウンタＣＣＲＮＫの値として「１３」がセットされる（図１６参照）。一方、ステップＳ５３７の判定条件が成立せず、即ち、カウンタＣＣＧが「０」でないときには退避走行モード中における気筒基準位置でないとしてステップＳ５４０に移行し、気筒判別済フラグＸＣＶＶＴＪが「１」であるかが判定される。ステップＳ５４０の判定条件が成立せず、即ち、気筒判別済フラグＸＣＶＶＴＪが「０」でありカム１センサ２０及びカム２センサ３０による気筒判別が済んでいないときには何もすることなく本ルーチンを終了する。なお、本実施例では、カウンタＣＣＧが「０」であるとき気筒基準位置としているが、これに限定されるものではなく、カウンタＣＣＧがカウントされるタイミングならどこでもよい。
【００４２】
一方、ステップＳ５４０の判定条件が成立、即ち、気筒判別済フラグＸＣＶＶＴＪが「１」でありカム１センサ２０及びカム２センサ３０による気筒判別が済んでいるときにはステップＳ５４１に移行し、カウンタＣＣ３０ＴＪが「２」であるかが判定される。ここで、カウンタＣＣ３０ＴＪは、図１６に示すように、クランクセンサ１０が正常時には「０」であり、退避走行モードフラグＸＣＬＩＭＰが「１」、かつカム１信号またはカム２信号が入力されると「２」に初期設定され、疑似３０°ＣＡ処理の実行毎にカウントダウンされるカウンタである。ステップＳ５４１の判定条件が成立、即ち、退避走行モード中の加速により９０°ＣＡの間に疑似３０°ＣＡ処理の実行がないときにはステップＳ５４２に移行し、退避走行モード中における気筒基準位置に適合させるためクランク角カウンタＣＣＲＮＫが「３」カウントアップされる。一方、ステップＳ５４１の判定条件が成立せず、即ち、カウンタＣＣ３０ＴＪが「２」でないときにはステップＳ５４３に移行し、カウンタＣＣ３０ＴＪが「１」であるかが判定される。ステップＳ５４３の判定条件が成立、即ち、退避走行モード中の加速により９０°ＣＡの間に疑似３０°ＣＡ処理の実行が１回だけあるときにはステップＳ５４４に移行し、退避走行モード中における気筒基準位置に適合させるためクランク角カウンタＣＣＲＮＫが「２」カウントアップされる。一方、ステップＳ５４３の判定条件が成立せず、即ち、カウンタＣＣ３０ＴＪが「１」でもないときにはステップＳ５４５に移行し、退避走行モード中の９０°ＣＡの間に疑似３０°ＣＡ処理の実行が正常時と同じ２回あるとして退避走行モード中における気筒基準位置に適合させるためクランク角カウンタＣＣＲＮＫが「１」カウントアップされる。
【００４３】
ステップＳ５３９、ステップＳ５４２、ステップＳ５４４またはステップＳ５４５の処理ののちステップＳ５４６に移行し、カウンタＣＣ３０ＴＪが「２」に初期設定される。次にステップＳ５４７に移行して、後述の疑似３０°ＣＡ割込によるＩＣ３０Ｗ処理を要求するタイマセット（タイマ＝ＺＴＮＥ＋Ｔ９０Ｗ／３）が実行される。次にステップＳ５４８に移行して、図３に示す３０°ＣＡ割込によるＩＳＮ３０Ｓ処理が実行されたのち本ルーチンを終了する。
【００４４】
次に、本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１における疑似３０°ＣＡ割込によるＩＣ３０Ｗの処理手順を示す図１７のフローチャートに基づいて説明する。
【００４５】
図１７において、ステップＳ６０１では、退避走行モードフラグＸＣＬＩＭＰが「１」であるかが判定される。ステップＳ６０１の判定条件が成立せず、即ち、退避走行モードフラグＸＣＬＩＭＰが「０」でありクランクセンサ１０が正常であるときにはステップＳ６０２に移行し、カウンタＣＣ３０ＴＪが「０」にセットされたのち本ルーチンを終了する。一方、ステップＳ６０１の判定条件が成立、即ち、退避走行モードフラグＸＣＬＩＭＰが「１」でありクランクセンサ１０が異常であるときには退避走行モードを実行するためステップＳ６０３に移行し、クランク角カウンタＣＣＲＮＫが「１」カウントアップされる。
【００４６】
次にステップＳ６０４に移行して、割込時刻ＺＴＮＥにカム信号間隔の時間Ｔ９０Ｗの１／３が加算される。次にステップＳ６０５に移行して、カウンタＣＣ３０ＴＪが「２」であるかが判定される。ステップＳ６０５の判定条件が成立、即ち、カウンタＣＣ３０ＴＪが「２」であり１回目の疑似３０°ＣＡ割込が完了しているときにはステップＳ６０６に移行し、２回目の疑似３０°ＣＡ割込によるＩＣ３０Ｗ処理を要求するタイマセット（タイマ＝ＺＴＮＥ＋Ｔ９０Ｗ／３）が実行される。一方、ステップＳ６０５の判定条件が成立しないときにはステップＳ６０７に移行し、カウンタＣＣ３０ＴＪが「１」であるかが判定される。ステップＳ６０７の判定条件が成立せず、即ち、カウンタＣＣ３０ＴＪが「１」でもないときには上述のステップＳ６０２に移行し、同様にカウンタＣＣ３０ＴＪが「０」にセットされたのち本ルーチンを終了する。
【００４７】
ステップＳ６０６の処理ののち、またはステップＳ６０７の判定条件が成立、即ち、カウンタＣＣ３０ＴＪが「１」であり２回目の疑似３０°ＣＡ割込が完了しているときにはステップＳ６０８に移行し、図３に示す３０°ＣＡ割込によるＩＳＮ３０Ｓ処理が実行される。次にステップＳ６０９に移行して、カウンタＣＣ３０ＴＪが「１」カウントダウンされたのち本ルーチンを終了する。
【００４８】
このように、本実施例の内燃機関用制御装置は、内燃機関のクランク軸１の所定クランク角度として１０°ＣＡ毎（但し、欠歯時は２０°ＣＡ）に発生されるクランク信号を検出するクランクセンサ１０と、内燃機関のカム１軸１１及びカム２軸２１のカム角度に従って、クランク信号の発生間隔に対して９倍の関係にて発生されるカム信号を検出するカム１センサ２０及びカム２センサ３０と、クランク信号に応じた３０°ＣＡ毎に内燃機関に対する燃料噴射制御処理、点火時期制御処理、またはその他の制御処理を実行するための起動タイミングを生成するＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１にて達成される起動タイミング生成手段と、クランクセンサ１０の異常を検出するＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１にて達成される異常検出手段と、前記異常検出手段でクランクセンサ１０の異常が検出されたときには、カム信号の発生間隔を分周して起動タイミングに代わる疑似起動タイミングを生成するＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１にて達成される疑似起動タイミング生成手段と、起動タイミングまたは疑似起動タイミングに応じて燃料噴射制御処理、点火時期制御処理またはその他の制御処理を実行するＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１にて達成される制御手段とを具備するものである。
【００４９】
したがって、クランクセンサ１０からのクランク信号が正常に発生されているときには通常の起動タイミングにて３０°ＣＡ毎に内燃機関に対する燃料噴射制御処理、点火時期制御処理、またはその他の制御処理が実行される。一方、クランクセンサ１０の異常（断線等）でクランク信号が出力されなくなったときにはカム信号の発生間隔が１／３分周されて生成された疑似起動タイミングに応じて同様に各種制御処理が実行される。これにより、クランクセンサ１０の異常時でクランク信号の入力がなくてもカム信号の入力がありさえすれば、疑似起動タイミングにて内燃機関に対して必要な各種制御処理が実行されることで退避走行が可能となる。
【００５０】
次に、本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１におけるクランクセンサ異常時のフェイルセーフ及び疑似３０°ＣＡ割込によるＩＣ３０Ｗの処理手順を示す図１４、図１５及び図１７の変形例を示す図１８のフローチャートに基づいて説明する。なお、本変形例では変更されている処理手順のみについて説明し、重複する処理手順についてはその説明を省略する。
【００５１】
本変形例では、図１８（ａ）に示すステップＳ７０１が上述の実施例における図１４のステップＳ５２４に相当している。図１８（ａ）において、ステップＳ７０１では、前回のカム信号間隔時間Ｔ９０ＷがＴ９０ＷＯとして所定のメモリ領域に記憶され、上式（１）にて今回のカム信号間隔時間Ｔ９０Ｗが算出され、加減速比率ＤＬＴＡ９０が次式（２）にて算出される。ここで、Ｋ0 は車両適合値である。
【００５２】
【数２】
ＤＬＴＡ９０＝（Ｔ９０Ｗ／Ｔ９０ＷＯ）×Ｋ0             ・・・（２）
このようにして、図１８（ａ）のステップＳ７０１で算出された加減速比率ＤＬＴＡ９０に基づき次の９０°ＣＡ間隔が予測され、更に、その間隔の１／３分周による疑似３０°ＣＡに重み付けが実施される。また、図１８（ｂ）に示すステップＳ７０２〜ステップＳ７０５が上述の実施例における図１５のステップＳ５４７に相当している。図１８（ｂ）において、ステップＳ７０２では、加減速比率ＤＬＴＡ９０が０未満であるかが判定される。ステップＳ７０２の判定条件が成立、即ち、加速時であるときにはステップＳ７０３に移行し、１回目の疑似３０°ＣＡ時間ＴＩＭ１及び２回目の疑似３０°ＣＡ時間ＴＩＭ２が次式（３）にて算出される。ここで、Ｋ1 ，Ｋ2 は車両適合値であり、Ｋ1 ＞Ｋ2 である。
【００５３】
【数３】
ＴＩＭ１＝Ｔ９０Ｗ×ＤＬＴＡ９０×Ｋ1
ＴＩＭ２＝Ｔ９０Ｗ×ＤＬＴＡ９０×Ｋ2                   ・・・（３）
一方、ステップＳ７０２の判定条件が成立せず、即ち、減速時であるときにはステップＳ７０４に移行し、１回目の疑似３０°ＣＡ時間ＴＩＭ１及び２回目の疑似３０°ＣＡ時間ＴＩＭ２が次式（４）にて算出される。ここで、Ｋ3 ，Ｋ4 は車両適合値であり、Ｋ3 ＜Ｋ4 である。
【００５４】
【数４】
ＴＩＭ１＝Ｔ９０Ｗ×ＤＬＴＡ９０×Ｋ3
ＴＩＭ２＝Ｔ９０Ｗ×ＤＬＴＡ９０×Ｋ4                   ・・・（４）
ステップＳ７０３またはステップＳ７０４の処理ののちステップＳ７０５に移行し、１回目の疑似３０°ＣＡ割込によるＩＣ３０Ｗ処理を要求するタイマセットが実行される。このときのタイマとしては割込時刻ＺＴＮＥ（＝ＤＡＳＭ）に１回目の疑似３０°ＣＡ時間ＴＩＭ１が加算されたものとなる。
【００５５】
また、本変形例では、図１８（ｃ）に示すステップＳ７０６〜ステップＳ７１０が上述の実施例における図１７のステップＳ６０４〜ステップＳ６０７に相当している。図１８（ｃ）において、ステップＳ７０６では、カウンタＣＣ３０ＴＪが「２」であるかが判定される。ステップＳ７０６の判定条件が成立、即ち、カウンタＣＣ３０ＴＪが「２」であり１回目の疑似３０°ＣＡ割込が完了しているときにはステップＳ７０７に移行し、割込時刻ＺＴＮＥに１回目の疑似３０°ＣＡ時間ＴＩＭ１が加算され、割込時刻ＺＴＮＥをその処理時点の時刻に合わせる処理が実行される。次にステップＳ７０８に移行して、２回目の疑似３０°ＣＡ割込によるＩＣ３０Ｗ処理を要求するタイマセットが実行される。このときのタイマとしては割込時刻ＺＴＮＥに２回目の疑似３０°ＣＡ時間ＴＩＭ２が加算されたものとなる。
【００５６】
一方、ステップＳ７０６の判定条件が成立せず、即ち、カウンタＣＣ３０ＴＪが「２」でないときにはステップＳ７０９に移行し、カウンタＣＣ３０ＴＪが「１」であるかが判定される。ステップＳ７０９の判定条件が成立、即ち、カウンタＣＣ３０ＴＪが「１」であり２回目の疑似３０°ＣＡ割込が完了しているときにはステップＳ７１０に移行し、割込時刻ＺＴＮＥに２回目の疑似３０°ＣＡ時間ＴＩＭ２が加算され、割込時刻ＺＴＮＥをその処理時点の時刻に合わせる処理が実行される。一方、ステップＳ７０９の判定条件が成立せず、即ち、カウンタＣＣ３０ＴＪが「１」でないときには上述のステップＳ６０２に移行し、同様の処理が実行される。
【００５７】
このように、本変形例の内燃機関用制御装置は、ＥＣＵ４０のマイクロコンピュータ５０内のＣＰＵ５１にて達成される疑似起動タイミング生成手段がカム１信号またはカム２信号の発生間隔（クランク角換算で９０°ＣＡ）の１／３分周に対応する疑似３０°ＣＡによる２回の疑似起動タイミングが生成できないときには、所定の重み付けによる補正によって２回の疑似起動タイミングを生成するものである。つまり、前回の９０°ＣＡ間隔によって予測された９０°ＣＡ間隔が急加速によって短くなると前回の９０°ＣＡ間隔によって予測された１／３分周に対応する疑似３０°ＣＡが長過ぎることとなり疑似３０°ＣＡによる割込処理が１回または０回となくなってしまうこととなる。一方、前回の９０°ＣＡ間隔によって予測された９０°ＣＡ間隔が減速によって長くなると前回の９０°ＣＡ間隔によって予測された１／３分周に対応する疑似３０°ＣＡが短過ぎることとなり疑似３０°ＣＡによる割込処理が適切なタイミングで実行されないこととなる。これに対処するため、疑似３０°ＣＡ割込発生用タイマに対して加減速の程度に応じた所定の重み付けによる補正が行われる。これにより、カム信号のみによる疑似３０°ＣＡ割込が適切なタイミングで実行され、退避走行モードであっても内燃機関の運転状態をより安定させることが可能となる。
【００５８】
ところで、上記実施例では、４サイクルＶ型８気筒の内燃機関で２つのカム軸に各カムセンサを有し２つのカム信号が発生されるものについて述べたが、本発明を実施する場合には、これに限定されるものではなく、内燃機関としては４サイクル直列４気筒等でカム信号は１つであっても複数であってもよく、要は、カム信号が内燃機関に対する各種制御処理の起動タイミングの倍数毎に発生され、かつ気筒判別ができればよい。
【図面の簡単な説明】
【図１】図１は本発明の実施の形態の一実施例にかかる内燃機関用制御装置を示す概略構成図である。
【図２】図２は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおけるクランクセンサ正常時の各種制御の処理手順を示すフローチャートである。
【図３】図３は図２の３０°ＣＡ割込の処理手順を示すフローチャートである。
【図４】図４は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおける点火時期制御の処理手順を示すフローチャートである。
【図５】図５は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおける点火時期制御の通電開始割込の処理手順を示すフローチャートである。
【図６】図６は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおける燃料噴射制御の処理手順を示すフローチャートである。
【図７】図７は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおける点火時期制御の噴射開始割込の処理手順を示すフローチャートである。
【図８】図８は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおけるクランクセンサ異常判定の処理手順を示すフローチャートである。
【図９】図９は図８のタイマカウンタに対する８ｍｓ毎の処理手順を示すフローチャートである。
【図１０】図１０は図８のタイマカウンタに対する１０°ＣＡ割込の処理手順を示すフローチャートである。
【図１１】図１１は図８におけるタイマカウンタとクランク信号との関係を示すタイムチャートである。
【図１２】図１２は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおけるクランクセンサ異常時のカム１信号割込の処理手順を示すフローチャートである。
【図１３】図１３は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおけるクランクセンサ異常時のカム２信号割込の処理手順を示すフローチャートである。
【図１４】図１４は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおけるクランクセンサ異常時のフェイルセーフの処理手順を示すフローチャートである。
【図１５】図１５は図１４に続くクランクセンサ異常時のフェイルセーフの処理手順を示すフローチャートである。
【図１６】図１６は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で用いられているクランクセンサからのクランク信号異常時における各種信号等の遷移状態を示すタイミングチャートである。
【図１７】図１７は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおける疑似３０°ＣＡ割込制御の処理手順を示すフローチャートである。
【図１８】図１８は本発明の実施の形態の一実施例にかかる内燃機関用制御装置で使用されているＥＣＵのマイクロコンピュータ内のＣＰＵにおけるクランクセンサ異常時のフェイルセーフ及び疑似３０°ＣＡ割込制御の処理手順の変形例を示すフローチャートである。
【符号の説明】
１  クランク軸
１０  クランクセンサ
１１  カム１軸
２０  カム１センサ
２１  カム２軸
３０  カム２センサ
４０  ＥＣＵ（電子制御ユニット）
５０  マイクロコンピュータ
５１  ＣＰＵ
【図１】
0003543637.tif 000002
【図２】
0003543637.tif 000003
【図３】
0003543637.tif 000004
【図４】
0003543637.tif 000005
【図５】
0003543637.tif 000006
【図６】
0003543637.tif 000007
【図７】
0003543637.tif 000008
【図８】
0003543637.tif 000009
【図９】
0003543637.tif 000010
【図１０】
0003543637.tif 000011
【図１１】
0003543637.tif 000012
【図１２】
0003543637.tif 000013
【図１３】
0003543637.tif 000014
【図１４】
0003543637.tif 000015
【図１５】
0003543637.tif 000016
【図１６】
0003543637.tif 000017
【図１７】
0003543637.tif 000018
【図１８】
0003543637.tif 000019