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