(57)【特許請求の範囲】
【請求項１】
各気筒の筒内に燃料を直接噴射して燃焼させる筒内直噴式多気筒エンジンにおいて、
１つの気筒の高圧用の燃料噴射弁に対して通電を開始するに際し他の気筒の燃料噴射弁に対する開弁用プルアップ電流の通電が終了したかを判断するプルアップ電流終了判別手段と、
他の気筒のいずれかの燃料噴射弁に対してプルアップ電流を通電中のときには、この気筒のプルアップ電流の通電が終了した後に、該プルアップ電流の通電期間のみが重複しないように上記１つの気筒の燃料噴射弁に対して通電を開始する燃料噴射弁通電制御手段と
を備えたことを特徴とする筒内直噴式多気筒エンジンの制御装置。
【請求項２】
前記請求項１記載の筒内直噴式多気筒エンジンの制御装置において、
エンジン運転状態に基づき成層燃焼の選択を判断する成層燃焼判別手段と、
上記成層燃焼の選択時、上記１つの気筒の燃料噴射弁に対する通電開始の変更に対応して当該気筒の点火時期を遅角する点火時期変更手段と
を更に備えたことを特徴とする筒内直噴式多気筒エンジンの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、筒内直噴用燃料噴射弁に対する駆動用電源の負担を軽減する筒内直噴式多気筒エンジンの制御装置に関する。
【０００２】
【従来の技術】
従来から、高圧に加圧された燃料（ガソリン）を気筒内に直接噴射して火花点火させることで出力を得る筒内直噴エンジンが知られている。この種の筒内直噴エンジンでは、短い噴射時間で多量の燃料を噴射しなければならないため、燃料噴射弁は応答性良く設定する必要があり、特に開弁時には、大電流（以下、「プルアップ電流」）を流して、噴射弁開弁時の立上がり特性を確保している。
【０００３】
また筒内直噴エンジンでは、成層燃焼による希薄燃焼が可能であるが、成層燃焼時には余剰空気が多く、その分排気ガス温度が低くなり易いので、触媒が活性化し難くなる。
【０００４】
成層燃焼時の排気ガス温度を上昇させて触媒の活性化を促す手段として、例えば、特開平４−２７２４４８号公報では、燃焼直後に後噴射を追加し、この後噴射による燃焼で触媒を通過する排気ガス温度を上昇させるようにしている。
【０００５】
【発明が解決しようとする課題】
しかし、１サイクル中１回噴射では、燃焼方式が一定であれば燃料噴射弁に対する通電期間が気筒間で重複することはないが、上述のように、後噴射を追加すると、ある気筒の後噴射に要する通電期間と他の気筒の通常噴射時の通電期間とが重複する場合がある。
【０００６】
また、運転中の負荷変動に応じて燃焼方式を、成層燃焼から均一燃焼へ切換える制御を行う筒内直噴エンジンでは、燃焼方式が切換わるときに噴射タイミングが大幅に変わるので、燃料噴射弁に対する通電が気筒間で重なる場合がある。
【０００７】
この燃料噴射弁に対する通電期間が重なると、消費電流が過大になり、駆動用電源の電圧が降下して、上記燃料噴射弁のニードルのリフトが不充分となったり、動作不良となり、適正な燃料噴射量が得られず、燃焼の悪化、或いは失火を生じる不都合がある。特に、燃料噴射弁開弁のためのプルアップ電流は、大電流であるため、このプルアップ電流が気筒間で重複すると、燃料噴射弁の動作不良はより顕著になる。
【０００８】
これに対処するには、駆動用電源の容量をアップすることも考えられるが、コスト高になり、しかも容量アップにより耐久性が相対的に低下してしまう不具合がある。
【０００９】
本発明は、上記事情に鑑みてなされたもので、燃料噴射弁を駆動する電源の負担を軽減して、常に適正な燃料噴射量を供給することができ、その上、駆動用電源の容量をアップすることなく、低コストでしかも耐久性に優れた筒内直噴式多気筒エンジンの制御装置を提供することを目的としている。
【００１０】
【課題を解決するための手段】
上記目的を達成するため請求項１に記載の発明は、図１に示すように、各気筒の筒内に燃料を直接噴射して燃焼させる筒内直噴式多気筒エンジンにおいて、１つの気筒の高圧用の燃料噴射弁に対して通電を開始するに際し他の気筒の燃料噴射弁に対する開弁用プルアップ電流の通電が終了したかを判断するプルアップ電流終了判別手段と、他の気筒のいずれかの燃料噴射弁に対してプルアップ電流を通電中のときには、この気筒のプルアップ電流の通電が終了した後に、該プルアップ電流の通電期間のみが重複しないように上記１つの気筒の燃料噴射弁に対して通電を開始する燃料噴射弁通電制御手段とを備えたことを特徴とする。
【００１１】
請求項２記載の発明は、前記請求項１に記載の筒内直噴式多気筒エンジンの制御装置において、エンジン運転状態に基づき成層燃焼の選択を判断する成層燃焼判別手段と、上記成層燃焼の選択時、上記１つの気筒の燃料噴射弁に対する通電開始の変更に対応して当該気筒の点火時期を遅角する点火時期変更手段とを更に備えたことを特徴とする。
【００１２】
すなわち、請求項１記載の発明では、１つの気筒である今回の燃料噴射対象気筒の燃料噴射弁に対して通電を開始する際に、他の気筒で燃料噴射弁を開弁させるためのプルアップ電流が通電中かを判断し、他の気筒の燃料噴射弁に対してプルアップ電流を通電中のときには、他の気筒の燃料噴射弁に対するプルアップ電流の通電が終了した後に、プルアップ電流の通電期間のみが重複しないように今回の燃料噴射対象気筒の燃料噴射弁に対して通電を開始する。その結果、燃料噴射弁駆動用電源では、大電流を必要とするプルアップ電流の通電期間が気筒間で重複しないので、負担が軽減される。
【００１３】
請求項２記載の発明では、請求項１記載の発明において、燃焼形態として成層燃焼が選択されているときには、当該気筒の燃料噴射弁に対する通電開始の変更に対応して当該気筒の点火時期を遅角する。その結果、駆動用電源の負担が軽減されると共に、成層燃焼時において必要とする燃料噴射終了時期と点火時期との間隔が常に適正に保持される。
【００１４】
【発明の実施の形態】
以下、図面に基づいて本発明の参考例、及び実施の形態を説明する。
【００１５】
図２〜図２９に本発明の参考例を示す。まず、図１８に基づいて燃料供給系を含む筒内直噴式多気筒エンジンの全体的な概略について説明する。
【００１６】
本参考例に示す筒内直噴式多気筒エンジン（以下、単に「エンジン」と称する）１は、２サイクル４気筒ガソリンエンジンであり、このエンジン１のシリンダヘッド２とシリンダブロック３とピストン４とで形成される各気筒燃焼室５毎に、点火コイル６ａの二次側に接続された点火プラグ７と、燃料噴射弁である高圧用インジェクタ８とが臨まされ、上記点火コイル６ａの一次側に、イグナイタ６ｂが接続されている。
【００１７】
また、上記シリンダブロック３に、掃気ポート３ａと排気ポート３ｂとが形成され、上記シリンダブロック３に形成した冷却水通路３ｃに、水温センサ９が臨まされている。上記掃気ポート３ａには給気管１０が連通され、この給気管１０には、上流側にエアクリーナ１１が取付けられており、また中途に掃気ポンプ１２が介装されている。この掃気ポンプ１２はクランクシャフト１ａに連動するエンジン駆動式であり、この掃気ポンプ１２の動作により燃焼室５へ新気が強制的に供給されると共に、この燃焼室５内を掃気する。
【００１８】
また、上記給気管１０には、上記掃気ポンプ１２をバイパスするバイパス通路１３が接続されており、さらに、このバイパス通路１３の流入ポート上流の上記給気管１０にスロットル弁１５ａが介装されており、このスロットル弁１５ａを操作するアクセルペダル１４にアクセル開度（＝スロットル開度）αを検出するアクセル開度センサ１６が連設されている。一方、上記バイパス通路１３には、上記掃気ポンプ１２の掃気圧を制御するバイパス制御弁１５ｂが介装されている。
【００１９】
また、上記排気ポート３ｂには、上記クランクシャフト１ａの回転に同期して開閉することで、排気タイミングを制御する排気ロータリ弁１７が設けられ、この排気ロータリ弁１７を介して排気管１８が連通されている。さらに、この排気管１８に触媒１９が介装されていると共に、下流端にマフラ２０が接続されている。
【００２０】
また、図１９に示すように、上記クランクシャフト１ａにはクランク角検出用クランクロータ２１ａと気筒判別用クランクロータ２１ｂとが、所定間隔を開けて軸着されており、この両クランクロータ２１ａ，２１ｂの外周上に所定の間隙Ｓを有して電磁ピックアップ等からなるクランク角センサ２２ａと気筒判別センサ２２ｂとが対設されている。
【００２１】
図２０に示すように、上記クランク角検出用クランクロータ２１ａには、複数のクランク角検出用突起２１ｃが形成されている。本参考例に示すエンジン１は２サイクル４気筒エンジンで、しかも等間隔燃焼であれば、各気筒の上死点ＴＤＣは９０°ＣＡ毎に設定され、点火順序を＃１→＃４→＃３→＃２とすれば、この各気筒の上死点ＴＤＣから進角方向（図の反時計回り方向）へクランク角θ１〜θ３の位置に上記クランク角検出用突起２１ｃがそれぞれ形成されている。上記各クランク角検出用突起の位置は、例えばθ１＝ＢＴＤＣ（上死点前）７５°ＣＡ、θ２＝ＢＴＤＣ４５°ＣＡ、θ３＝ＢＴＤＣ１５°ＣＡであり、すなわち、各クランク角検出用突起２１ｃはＢＴＤＣ１５°ＣＡの位置から円周上に３０°ＣＡの等ピッチで形成されている。
【００２２】
また、図２１に示すように、上記気筒判別用クランクロータ２１ｂの外周には気筒判別用突起２１ｄが形成されている。本参考例では、３個の気筒判別用突起２１ｄが形成されており、そのうちの２個の気筒判別用突起２１ｄが、＃１気筒の上死点ＴＤＣを基準として、進角方向へθ４，θ５の位置に形成されている。また、他の気筒判別用突起２１ｄが＃３気筒の上死点ＴＤＣを基準として進角方向へθ６の位置に形成されている。本参考例では、各気筒判別用突起２１ｄのクランク位置は、例えばθ４＝ＢＴＤＣ６０°ＣＡ、θ５＝ＢＴＤＣ３０°ＣＡ、θ６＝ＢＴＤＣ６０°ＣＡである。
【００２３】
そして、上記クランク角検出用クランクロータ２１ａの上死点ＴＤＣを示す位置に上記クランク角センサ２２ａが対設され、一方、上記気筒判別用クランクロータ２１ｂの上死点ＴＤＣを示す位置に上記気筒判別センサ２２ｂが対設されており、クランクシャフト１ａの回転により上記クランク角検出用クランクロータ２１ａのクランク角検出用突起２１ｃが上記クランク角センサ２２ａに対向位置し、或いは、上記気筒判別用クランクロータ２１ｂの気筒判別用突起２１ｄが上記気筒判別センサ２２ｂに対向位置したとき、図１９に示すように、この各センサ２２ａ，２２ｂと上記各クランクロータ２１ａ，２１ｂの突起２１ｃ，２１ｄの頂部との間隙Ｓは、例えば、０．８±０．４（mm）に設定される。
【００２４】
なお、図１８に示すように、上記両センサ２２ａ，２２ｂは所定の挟み角を有して配設されているが、図１９〜図２１では、説明を容易にするために両クランクロータ２１ａ，２１ｂの互いの上死点を対応させた状態で示す。
【００２５】
また、クランクシャフト１ａの回転に同期して上記各クランクロータ２１ａ，２１ｂの突起２１ｃ，２１ｄを上記各センサ２２ａ，２２ｂで検出し、上記各センサ２２ａ，２２ｂから出力されるクランクパルス及び気筒判別パルスの出力タイミングは、図２７〜図２９のタイミングチャートに示す通りで、＃１気筒のＢＴＤＣθ４の気筒判別パルス（以下、「θ４パルス」と略称）は＃１気筒のＢＴＤＣθ１のクランクパルス（以下、「θ１パルス」と略称）とＢＴＤＣθ２のクランクパルス（以下、「θ２パルス」と略称）との間に割込まれ、またＢＴＤＣθ５の気筒判別パルス（以下、「θ５パルス」と略称）は＃１気筒のθ２パルスとθ３パルスとの間に割込まれる。さらに、＃３気筒のＢＴＤＣθ６の気筒判別パルス（以下、「θ６パルス」と略称）は＃３気筒のθ１パルスとθ２パルスとの間に割込まれる。従って、上記気筒判別センサ２２ｂで上記θ４パルスとθ５パルスとを検出した後のクランクパルスは、＃１気筒のθ３パルスであることが判別でき、また上記気筒判別センサ２２ｂでθ６パルスを検出し、その後、上記クランク角センサ２２ａで検出するθ２パルスとθ３パルスとの間に気筒判別パルスが割込まれなければ、上記θ３パルスは＃３気筒のＢＴＤＣθ３を示すものであることが判別できる。
【００２６】
なお、図２７のタイミングチャートは始動時の燃料噴射及び点火を示し、図２８のタイミングチャートは始動後の通常時の燃料噴射及び点火を示し、図２９のタイミングチャートは、燃焼方式が成層燃焼から均一燃焼に切換わった際に気筒間の燃料噴射が重複したときの燃料噴射タイミングの補正状態を示す。また、上記θ１パルスは、始動時のドエル開始タイミングタイマスタートの基準クランク角となり、始動後は噴射開始タイミングタイマスタートの基準クランク角となる。またθ２パルスが始動後の点火時期タイマスタートの基準クランク角となる。さらに、θ３パルスが、始動時は燃料噴射開始の基準点及び、点火時期タイマスタートの基準クランク角になり、また始動後はドエル開始タイミングタイマスタートの基準クランク角になる。
【００２７】
なお、４サイクル４気筒エンジンでは、上記気筒判別用クランクロータ２１ｂをカムシャフトに軸着したカムロータとし、上記気筒判別センサ２２ｂを、このカムロータに対設させるようにしても良い。
【００２８】
次に、燃料系の構成について説明する。
【００２９】
図１８の符号２３は燃料ラインで、この燃料ライン２３の中途に高圧用燃料ポンプ２８が介装され、さらに、この高圧用燃料ポンプ２８の下流側に高圧用電磁式プレッシャレギュレータ３３が介装されている。また、この燃料ライン２３の上記高圧用燃料ポンプ２８の上流側が、燃料タンク２４から燃料を送出する低圧デリバリライン２３ａを構成し、この高圧用燃料ポンプ２８の下流側と上記高圧用電磁式プレッシャレギュレータ３３との間が上記低圧デリバリライン２３ａからの燃料を昇圧して高圧用インジェクタ８に供給する高圧ライン２３ｂを構成し、さらに、この高圧用電磁式プレッシャレギュレータ３３から下流側が低圧リターンライン２３ｃを構成している。
【００３０】
上記高圧用電磁式プレッシャレギュレータ３３は常開式であり、デューティ制御あるいは、電流制御により弁開度を制御し、デューティ制御では、デューティ比を０〜１００％の間で制御し、例えば、デューティ比≧８０％で全閉となる。また電流制御では、制御電流が高くなるに従って、次第に閉弁される。上記高圧用電磁式プレッシャレギュレータ３３では、上記高圧ライン２３ｂの燃料リリーフ量を制御することで、この高圧ライン２３ｂの燃料圧力を保持制御し、燃焼室５へ供給する燃料量を高圧用インジェクタ８の開弁時間により正確に計量できるようにしたものである。
【００３１】
また、上記低圧デリバリライン２３ａと上記低圧リターンライン２３ｃとが燃料バイパス通路２３ｄを介して連通され、この燃料バイパス通路２３ｄに、上記低圧デリバリライン２３ａの燃料圧力を調圧する低圧用ダイヤフラム式プレッシャレギュレータ２７が介装されている。
【００３２】
上記低圧デリバリライン２３ａでは、上記燃料タンク２４内の燃料を、フィードポンプ２５により送出し、燃料フィルタ２６を経て上記低圧用ダイヤフラム式プレッシャレギュレータ２７により調圧された状態で上記高圧用燃料ポンプ２８へ供給する。
【００３３】
上記高圧ライン２３ｂは、いわゆるライン圧力保持型高圧噴射システムを構成し、上記低圧デリバリライン２３ａから供給される燃料を上記高圧用燃料ポンプ２８によって加圧し、上記高圧用電磁式プレッシャレギュレータ３３で調圧した所定の高圧燃料を、高圧燃料フィルタ３０、脈動圧を緩衝するアキュムレータ３１、燃料圧力を検出する燃料圧力センサ３２を併設する燃料供給路を経て各気筒の高圧用インジェクタ８に供給する。
【００３４】
上記高圧用燃料ポンプ２８はエンジン駆動式のプランジャポンプであり、吸入口及び吐出口に、それぞれ逆止弁が設けられ、エンジン停止時には、低圧デリバリライン２３ａからの燃料が通過可能になる。
【００３５】
次に、図２２に基づき、燃料圧力制御、燃料噴射制御、及び点火制御等を行う制御装置４０について説明する。
【００３６】
この制御装置４０は、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、バックアップＲＡＭ４４、及びＩ／Ｏインターフェース４５等がバスライン４６を介して互いに接続されたマイクロコンピュータを中心として構成され、その他、安定化電圧を各部に供給する定電圧回路４７、上記Ｉ／Ｏインターフェース４５の出力ポートからの信号によりアクチュエータ類を駆動する駆動回路４８等の周辺回路が組み込まれている。
【００３７】
また、上記定電圧回路４７、及び駆動回路４８は電源リレー４９のリレー接点を介して駆動用電源としてのバッテリ５０に並列接続され、また、この電源リレー４９のリレーコイルがイグニッションスイッチ５１を介してバッテリ５０に接続されている。また、上記定電圧回路４７は、直接、上記バッテリ５０に接続されており、上記イグニッションスイッチ５１がＯＮされ、上記電源リレー４９の接点が閉となったとき、上記バッテリ５０からの電圧を安定化して制御装置４０の各部に供給し、また、上記イグニッションスイッチ５１のＯＮ，ＯＦＦに拘らず、常時、上記バックアップＲＡＭ４４にバックアップ用の電源を供給する。また、上記バッテリ５０にはフィードポンプ２５がフィードポンプリレー５４のリレー接点を介して接続されている。
【００３８】
また、上記Ｉ／Ｏインターフェース４５の入力ポートには、バッテリ５０が接続されて、バッテリ電圧がモニタされると共に、クランク角センサ２２ａ、気筒判別センサ２２ｂ、アクセル開度センサ１６、水温センサ９、燃料圧力センサ３２、及びスタータスイッチ５３が接続されている。
【００３９】
一方、上記Ｉ／Ｏインターフェース４５の出力ポートには、気筒毎に配設された点火コイル６ａを駆動するイグナイタ６ｂが接続され、さらに、上記駆動回路４８を介して高圧用電磁式プレッシャレギュレータ３３及びフィードポンプリレー５４のリレーコイルが接続されていると共に、この駆動回路４８に備えた各インジェクタ駆動回路４８ａを介して各気筒毎に配設された高圧用インジェクタ８がそれぞれ接続されている。
【００４０】
上記ＲＯＭ４２には、エンジン制御プログラムや各種テーブル等の固定データが記憶されており、また、上記ＲＯＭ４３には、上記各種センサ類、スイッチ類の出力信号を処理した後のデータ、及び上記ＣＰＵ４１で演算処理したデータが格納される。また、上記バックアップＲＡＭ４４には、各種学習値マップ、制御用データ等がストアされ、上記イグニッションスイッチ５１がＯＦＦのときにもデータが保持される。
【００４１】
上記ＣＰＵ４１では、上記ＲＯＭ４２に記憶されている制御プログラムに従い燃料噴射量、点火時期等の各種制御量を所定周期毎に演算し、燃料噴射制御、点火時期制御等の各種制御を行い、燃料噴射対象気筒の高圧用インジェクタ８に対し通電を開始する際、他の気筒のインジェクタに対する通電が行われているときには、このインジェクタに対する通電終了後に当該燃料噴射対象気筒のインジェクタ８に対する通電を開始させることで、各気筒間のインジェクタに対する通電が重複しないようにし、インジェクタに対する駆動用電源の電圧降下を防止して電圧降下に伴うインジェクタ８の動作不良を防止する。
【００４２】
すなわち、上記制御装置４０は、通電終了判別手段、及び燃料噴射弁通電制御手段としての機能を有し、一般的な燃料噴射制御に加え、今回の燃料噴射対象気筒のインジェクタ８に対して通電を開始する際に、他の気筒のインジェクタに対して通電中かを判断し、他の気筒のインジェクタに対して通電中のときには、他の気筒のインジェクタに対する通電終了後に今回の燃料噴射対象気筒のインジェクタに対して通電を開始させ、インジェクタへの電源供給が気筒間で重複するのを防止しインジェクタ駆動用電源の負担を軽減する。
【００４３】
また、上記制御装置４０は、成層燃焼判別手段、点火時期変更手段としての機能も備え、インジェクタへの電源供給が気筒間で重複するのを防止するため今回の燃料噴射対象気筒のインジェクタに対する通電が変更されたときにおいて、成層燃焼が選択されているとき、当該気筒のインジェクタに対する通電開始の変更に対応して当該気筒の点火時期を遅角させ、成層燃焼時に必要とする燃料噴射時期と点火時期との間隔を常に適正に保つ。さらに、他の気筒のインジェクタに対する通電終了後、今回の燃料噴射対象気筒のインジェクタに対し通電を開始する際、他の気筒のインジェクタに対する通電が終了してから設定時間経過後に当該燃料噴射対象気筒のインジェクタに対する通電を開始させ、上記設定時間により定まる遅延時間によりインジェクタ駆動用電源の電圧回復後、インジェクタに対する通電を開始するようにし、インジェクタによる燃料調量精度を向上し制御性を向上させる。
【００４４】
以下、上記制御装置４０による燃料噴射制御、及び点火時期制御に係わる処理について図２〜図１７のフローチャートに従って説明する。
【００４５】
イグニッションスイッチ５１のＯＮにより制御装置４０に電源が投入されると、システムがイニシャライズ（フローチャート中の各フラグ、各カウント値がクリア）され、その後、各フローチャートに示されたルーチンが所定タイミング毎に実行される。
【００４６】
図２に示すフローチャートは、クランクパルス入力毎に割込み起動される気筒判別・エンジン回転数算出ルーチンである。
【００４７】
イグニッションスイッチ５１をＯＮ後、エンジン回転に伴いクランク角センサ２２ａから出力されるクランクパルスが入力されると、本ルーチンが起動し、先ずステップＳ１で、今回入力したクランクパルスがθ１〜θ３の何れであるのかを、気筒判別センサ２２ｂからの気筒判別パルスの割込みパターンに基づき識別し、ステップＳ２で、上記気筒判別パルスの割込みパターンから、次の上死点ＴＤＣを迎える気筒＃ｉを判別する。
【００４８】
すなわち、図２７〜図２９のタイミングチャートに示すように、本参考例では、燃料噴射及び点火順序を＃１→＃４→＃３→＃２とし、θ４パルスが＃１気筒の上死点前を示す上記θ１パルスとθ２パルスとの間に割込まれ、続いて、θ２パルスとθ３パルスとの間にθ５パルスが割込まれるように設定されており、さらに＃３気筒の上死点前を示すθ１パルスとθ２パルスとの間にθ６パルスが割込まれるように設定されている。
【００４９】
従って、少なくとも前々回のクランクパルスと前回のクランクパルスとの間に気筒判別パルスの割込みがなく、しかも前回のクランクパルスと今回のクランクパルスとの間に気筒判別パルスが割込まれたときには、今回のクランクパルスは、θ２パルスであることが識別できる。また、気筒判別は、前回と前々回のクランクパルスの間に気筒判別パルスの割込みがあり、しかも、前回と今回のクランクパルスの間にも気筒判別パルスが割込まれた場合には、今回のクランクパルスは＃１気筒のＢＴＤＣθ３パルスであることが識別できる。一方、前回と前々回のクランクパルスの間に気筒判別パルスの割込みがあり、前回と今回のクランクパルスの間には気筒判別パルスの割込みがない場合には、今回のクランクパルスは＃３気筒のＢＴＤＣθ３パルスであることが識別できる。その結果、このθ３パルスの入力により、次の上死点ＴＤＣを迎える気筒＃ｉを判別することができる。
【００５０】
その後、ステップＳ３で、前回のクランクパルスが入力されてから今回のクランクパルスが入力された間のパルス入力間隔時間Ｔθ（図２８参照）、すなわち、前回ルーチン実行時から今回ルーチン実行までの時間を検出する。なお、本参考例（図２０参照）のように、クランク再検出用クランクロータ２１ａの周囲に突起２１ｃが等間隔で形成されている場合には、パルス入力間隔時間Ｔθは実時間で設定することができる。
【００５１】
次いで、ステップＳ４で、上記パルス入力間隔時間Ｔθからエンジン回転数Ｎを算出し、ＲＡＭ４３の所定アドレスに回転数データとしてストアしてルーチンを抜ける。この回転数データは、後述する始動判定ルーチン（図３参照）、燃料噴射パルス幅・噴射開始タイミング設定サブルーチン（図５〜図７参照）、及び点火時期・通電開始時間設定ルーチン（図８，図９参照）で読込まれる。
【００５２】
次に、運転状態に応じエンジン始動時制御あるいは始動後制御を選択するための始動判定ルーチンについて、図３のフローチャートに従って説明する。このルーチンは、イグニッションスイッチ５１がＯＮされて、制御装置４０が通電されている間、１０msec毎のタイマ割込みにより起動され、まず、ステップＳ１１，Ｓ１２で始動判定を行う。本参考例では、ステップＳ１１でスタータスイッチ５３がＯＮと判断され、且つステップＳ１２で、エンジン回転数Ｎが始動判定回転数ＮST（本参考例ではＮST＝４５０rpm)以下と判断された場合、始動時と判断する。なお、上記始動判定回転数ＮSTは搭載するエンジンの特性等に基づいて適宜設定する。
【００５３】
そして、上記ステップＳ１１，Ｓ１２でエンジン始動時と判断されてステップＳ１３へ進むと、始動判別フラグＦSTをセットしてルーチンを抜ける。一方、上記ステップＳ１１でスタータスイッチ５３がＯＦＦ、或いはステップＳ１２で、Ｎ＞ＮSTと判断された場合には、始動準備中、或いは始動後と判断してステップＳ１４へ分岐して上記始動判別フラグＦSTをクリアしてルーチンを抜ける。
【００５４】
次に、上記始動判別フラグＦSTにより示される運転状態に応じ、燃料噴射量及び燃料噴射時期を設定する燃料噴射パルス幅・噴射開始タイミング設定ルーチン、及び点火時期、ドエル開始時期を設定する点火時期・通電開始時間設定ルーチンを、それぞれ図４〜図７，図８〜図９のフローチャートに従って説明する。この両ルーチンは、θ２パルスの入力により演算が開始され、エンジン始動時は、燃料噴射パルス幅・噴射開始タイミング設定ルーチンが、点火時期・通電開始時間設定ルーチンに優先して実行され、エンジン始動後は逆の優先順位で実行される。
【００５５】
この両ルーチンでは、気筒判別により得られた、これから上死点ＴＤＣを迎える気筒の２つ後の気筒を、今回の燃料噴射・点火対象気筒＃ｉとし、この気筒＃ｉに対する燃料噴射パルス幅、噴射開始タイミング、及び点火時期、通電開始時間を気筒毎に設定するもので、図２７〜図２９のタイミングチャートに示すように、噴射・点火順序を＃１→＃４→＃３→＃２とした場合、例えば、これから上死点ＴＤＣを迎える気筒が＃３気筒であれば、＃３気筒の上死点前ＢＴＤＣθ２パルスの割込みで起動されたルーチンの演算結果は、＃１気筒に対する燃料噴射及び点火に対して適用される。
【００５６】
まず、燃料噴射パルス幅・噴射開始タイミング設定ルーチンについて説明する。
【００５７】
図４に示すように、このルーチンのステップＳ２１では、現在のエンジン運転状態が始動時か始動後かを、始動判別フラグＦSTの値を参照して判断する。この始動判別フラグＦSTは、前述の始動判定ルーチン（図３参照）で設定され、ＦST＝１の場合には始動時であるため、ステップＳ２２へ進み始動時制御を実行し、一方、ＦST＝０の場合には始動後であるため、ステップＳ２６へ分岐して始動後制御を実行する。
【００５８】
まず、始動時制御について説明する。上記ステップＳ２１で始動時と判断されてステップＳ２２へ進むと、水温センサ９で検出した冷却水温ＴW に基づいて始動時噴射量ＧＦST〔ｇ〕をテーブルを補間計算付で参照して設定する。このテーブルはＲＯＭ４２の一連のアドレスで構成され、各領域には主に冷態時の始動性能を確保するための噴射量が予め実験等から求めて格納されており、ステップ内に示すように、冷却水温ＴW が低いほど上記始動時噴射量ＧＦSTは高い値に設定されている。
【００５９】
次いで、ステップＳ２３で燃料圧力センサ３２で検出した高圧ライン２３ｂ中の燃料圧力ＰS 〔kpa 〕に基づいて燃料圧力係数ＫS と、無効噴射時間ＴS 〔msec〕とをＲＯＭ４２にデータとして格納されているテーブルを補間計算付で参照して設定する。このステップ内に示すように、上記テーブルには上記燃料圧力ＰS を格子として上記燃料圧力係数ＫS と無効噴射時間ＴS とが予め実験或いは設計等により求めて設定されている。燃料圧力係数ＫS は上記燃料圧力ＰS によって変化する高圧用インジェクタ８の噴射特性であり、上記始動時噴射量ＧＦSTを燃料圧力ＰS に応じて補正すると共に、この始動時噴射量ＧＦST〔ｇ〕を時間換算する。また上記無効噴射時間ＴS は上記燃料圧力ＰS によって変化する高圧用インジェクタ８の作動遅れを補償するものである。
【００６０】
次いで、ステップＳ２４へ進むと、上記始動時噴射量ＧＦST〔ｇ〕に上記燃料圧力係数ＫS を乗算して時間換算し、その値に上記無効噴射時間ＴS を加算して、始動時の燃料噴射時間により燃料噴射量を定める燃料噴射パルス幅Ｔｉを算出し、ステップＳ２５へ進んで、上記燃料噴射パルス幅Ｔｉを、今回の噴射・点火対象気筒＃ｉの燃料噴射タイマにセットしてルーチンを抜ける。そして、このステップＳ２５でセットされた始動時の燃料噴射タイマは、図１２のフローチャートに示すθ３パルス入力毎に実行されるルーチンでスタートされる（詳細については後述する）。
【００６１】
一方、エンジンの始動が完了すると、図３のフローチャートに示す始動判定ルーチンのステップＳ１４で、上記始動判別フラグＦSTがクリアされる。すると、燃料噴射パルス幅・噴射開始タイミング設定ルーチンでは、上記ステップＳ２１からステップＳ２６へ分岐されて、始動後制御へ移行する。なお、上述したように、エンジンが始動状態から始動後へ移行すると、ルーチンの優先順位が反転し、この燃料噴射パルス幅・噴射開始タイミング設定ルーチンの前に、後述する点火時期・通電開始時間設定ルーチンが実行される。
【００６２】
上記ステップＳ２６では、通常制御時の燃料噴射パルス幅・噴射開始タイミング設定サブルーチンが実行される。
【００６３】
この燃料噴射パルス幅・噴射開始タイミング設定サブルーチンは、図５〜図７に示すフローチャートに従って実行される。
【００６４】
まず、ステップＳ３１で、アクセル開度センサ１６で検出したアクセル開度（＝スロットル開度）αとエンジン回転数Ｎとに基づいて、ステップ内に示すテーブルを補間計算付で参照して、吸入空気量に相当する基本給気比Ｌ０を設定する。なお、このテーブルの各領域には、アクセル開度αとエンジン回転数Ｎとに応じて最適な基本給気比Ｌ０が予め実験等から求めて格納されている。
【００６５】
次いで、ステップＳ３２へ進み、燃料圧力センサ３２で検出した高圧ライン２３ｂ中の燃料圧力ＰS に基づいて、始動後の燃料圧力係数ＫS 、及び無効噴射時間ＴS を設定する。この燃料圧力係数ＫS 、及び無効噴射時間ＴS は、前述のステップＳ２３（図４参照）中に示したテーブルを補間計算付で参照して設定する。
【００６６】
その後、ステップＳ３３で上記エンジン回転数Ｎに基づいて、均一・成層燃焼切換判定値ＬS2を設定する。この燃焼切換判定値ＬS2は、このステップＳ３３内に示す特性に基づいてテーブル化されており、このテーブルを補間計算付で参照して設定する。
【００６７】
この均一・成層燃焼切換判定値ＬS2は、エンジン負荷に応じて燃焼形態を切換える際の基準となる判定値で、本参考例ではエンジン負荷として上記基本給気比Ｌ０を取入れ、また、燃焼形態は均一燃焼方式と、成層燃焼方式とに切換え設定する。すなわち、エンジンが高負荷運転のときは（Ｌ０＞ＬS2）、均一燃焼方式を採用し、中，低負荷運転のときは（Ｌ０≦ＬS2）、成層燃焼方式を採用する。なお、この各燃焼方式は燃料噴射タイミング、及び点火時期を変更することで切換える。
【００６８】
ここで、本参考例が採用する各燃焼方式について説明する。
【００６９】
均一燃焼は、燃料を早い時期に噴射し、筒内で均一に混合した後に点火する燃焼方式で、空気利用率が高いので高負荷運転時に適している。この均一燃焼の混合気形成及び燃焼過程を、図２３の燃料噴射・点火タイミング線図に基づき、図２４の均一燃焼行程図に従って説明する。
【００７０】
まず、図２３に示す噴射開始タイミングＩＪSTを排気ロータリ弁１７の閉弁後の早い時期に設定する（図２４（ａ））。ここで噴射開始タイミングは早い程良いが、排気ロータリ弁１７による排気ポート３ｂの閉弁時期よりも早く燃料噴射を開始すると、上記排気ポート３ｂを介して排気通路へ燃料が吹抜ける不都合を生じるため、噴射開始タイミングは上記排気ポート３ｂの閉弁後に設定する。そして、噴射終了した後（同図（ｂ））、ピストン４の上昇による圧縮混合で均一混合気とし（同図（ｃ））、所定点火進角度で点火させる（同図（ｄ））。すると、火炎が燃焼室５内を伝播して燃焼する（同図（ｅ））。
【００７１】
一方、成層燃焼は、燃料噴射を点火直前に終了し、燃料噴霧の後端部に火花点火させる燃焼方式で、燃料周辺の空気しか利用しないので、充填空気量に比べて極めて少ない燃料量で安定した燃焼を得ることができるため低，中負荷運転に適している。この成層燃焼による燃焼過程を、図２５の燃料噴射・点火タイミング線図に基づき、図２６の成層燃焼行程図に従って説明する。まず、図２５に示す噴射開始タイミングＩＪSTを、点火のやや直前で燃料噴射が終了するように設定し（図２６（ａ））、噴射中の燃料が空気を取込みながら点火プラグ７近傍に濃混合気を形成すると共に、その周囲に希薄混合気を層状に形成する（同図（ｂ））。そして、噴射終了後の上記濃混合気に点火すると（同図（ｃ））、この濃混合気に着火した火炎が周囲の希薄混合気に伝播して、この希薄混合気を燃焼させる（同図（ｄ））。
【００７２】
上記ステップＳ３３で、今回の運転状態に適応する燃焼方式を決定するために、均一・成層燃焼切換判定値ＬS2を設定した後、ステップＳ３４へ進むと、上記基本給気比Ｌ０（＝エンジン負荷）と、上記均一・成層燃焼切換判定値ＬS2とを比較する。例えば、アイドル等の低負荷運転、定常走行等の中負荷運転時には、このステップＳ３４で、Ｌ０≦ＬS2と判断されて、ステップＳ３５へ進む。一方、Ｌ０＞ＬS2の高負荷運転と判断された場合には、図７のステップＳ４１へ分岐する。
【００７３】
まず、低，中負荷運転時の制御ルーチンについて説明する。低，中負荷運転と判断されてステップＳ３４からステップＳ３５へと進むと、燃焼方式判別フラグＦ１をクリアする。この燃焼方式判別フラグＦ１は、Ｆ１＝０が成層燃焼方式を表し、またＦ１＝１が均一燃焼方式を表す。
【００７４】
そして、エンジン始動後の燃焼方式が、上記ステップＳ３５でＦ１＝０の成層燃焼方式にセットされると、ステップＳ３６へ進み、上記基本給気比Ｌ０とエンジン回転数Ｎとに基づいて、テーブルを補間計算付で参照して、燃料噴射量ＧＦ〔ｇ〕を設定する。その後、ステップＳ３７で、上記基本給気比Ｌ０とエンジン回転数Ｎとに基づいてテーブルを補間計算付で参照して点火前何°ＣＡで燃料噴射を終了させるのかを定める噴射エンドタイミングＩＪET（図２８（ｂ）参照）を設定する。成層燃焼で最適な燃焼を得るためには、点火時に点火プラグ７の周囲に濃混合気を形成させなければならないため（図２６（ｂ），（ｃ）参照）、噴射終了と点火との時間間隔を管理する必要がある。本参考例では、この成層燃焼時の噴射エンドタイミングＩＪETを予め実験的に求めて基本給気比Ｌ０とエンジン回転数Ｎとをパラメータとするテーブルとして格納されている。なお、この噴射エンドタイミングＩＪETの単位は、点火前〔msec〕である。
【００７５】
次いで、上記ステップＳ３７からステップＳ３８へ進むと、上記ステップＳ３６で設定した噴射量ＧＦ〔ｇ〕に、上記燃料圧力係数ＫS を乗算して時間換算し、その値に上記無効噴射時間ＴS を加算して、燃料噴射パルス幅Ｔｉを算出する（Ｔｉ←ＫS ×ＧＦ＋Ｔｓ）。
【００７６】
そして、ステップＳ３９で、成層燃焼の際の噴射開始タイミングＩＪSTを次式から算出する。
【００７７】
ＩＪST←ＴθM1−（ＴADV ＋ＩＪET＋Ｔｉ）
ここで、ＴθM1は、噴射開始タイミングを設定する際の基準となるクランクパルス入力から該当噴射・点火対象気筒＃ｉの上死点ＴＤＣに到達するまでの時間で、本参考例では、図２８のタイミングチャートに示すようにθ１パルス入力を基準クランク角として設定される。なお、このθ１パルス入力を基準クランク角とした場合の上記ＴθM1は、
ＴθM1＝２．５×Ｔθにより算出される。また、ＴADV は点火進角時間換算値で、図８，図９の点火時期・通電開始時間設定ルーチンで算出される。
【００７８】
その後、ステップＳ４０へ進み、今回の燃料噴射対象気筒＃ｉの噴射開始タイミングタイマに、上記ステップＳ３９で算出した噴射開始タイミングＩＪSTをセットして、前記ステップＳ２５（図４参照）へ戻り、今回の噴射対象気筒＃ｉの燃料噴射タイマに、上記ステップＳ３８で算出した燃料噴射パルス幅Ｔｉをセットしてルーチンを抜ける。
【００７９】
一方、加速運転等の過渡時、或いは高速運転時等で、上記ステップＳ３４において、上記ステップＳ３１で設定した基本給気比Ｌ０と上記ステップＳ３３で設定した均一・成層燃焼切換判定値ＬS2とを比較した結果、Ｌ０＞ＬS2の高負荷運転のときには、ステップＳ４１へ分岐し、均一燃焼方式を示すため上記燃焼方式判別フラグＦ１をセットして、ステップＳ４２で、上記基本給気比Ｌ０とエンジン回転数Ｎとに基づいて、テーブルを補間計算付で参照して均一燃焼時の燃料噴射量ＧＦ〔ｇ〕を設定し、ステップＳ４３で、上記燃料噴射量ＧＦにステップＳ３２で設定した燃料圧力係数ＫS を乗算して時間換算し、その値に上記無効噴射時間ＴS を加算して、均一燃焼時の燃料噴射パルス幅Ｔｉを算出する（Ｔｉ←ＫS ×ＧＦ＋Ｔｓ）。
【００８０】
次いで、ステップＳ４４で上記基本給気比Ｌ０とエンジン回転数Ｎとに基づいて、テーブルを補間計算付で参照して均一燃焼時における今回の噴射・点火対象気筒＃ｉに対する噴射開始タイミングを定める上死点前の噴射開始角度ＩＪsa〔°ＣＡ〕を設定する。本参考例では、この噴射開始角度ＩＪsaは、今回の噴射・点火対象気筒＃ｉの上死点ＴＤＣを基準に設定されている（図２８（ｃ）参照）。均一燃焼では、燃料噴射をなるべく早い時期に終了させて新気と充分に混合させることが望ましいが、燃料噴射を排気ポート３ｂが閉弁する時期よりも早く開始すると、燃料の吹抜けが生じるため、この燃料噴射開始時期をクランク角で管理し、排気ポート３ｂが閉弁した後の早い時期に燃料噴射を開始させる。
【００８１】
次いで、ステップＳ４５へ進むと、上記噴射開始角度ＩＪsa〔°ＣＡ〕に対応する噴射開始タイミングＩＪSTを、次式から算出する。
【００８２】
ＩＪST←ＴθM2−（Ｔθ／θｓ）×ＩＪsa
上記ＴθM2は噴射開始タイミングを設定する際の基準となるクランクパルス入力から今回の噴射・点火対象気筒＃ｉの上死点ＴＤＣに到達するまでの時間で、図２８のタイミングチャートに示すように、本参考例では１気筒前のθ１パルス入力を基準クランク角として設定しており、
ＴθM2＝５．５×Ｔθにより算出される。また、θｓはクランクパルス間角度で、本参考例では３０°ＣＡである。従って、
（Ｔθ／θｓ）×ＩＪsaにより、１°ＣＡ回転当りの時間から噴射開始角度を時間換算し、この値を上記ＴθM2から減算することで、１気筒前のθ１パルス入力を基準クランク角とする噴射開始タイミングＩＪSTが算出される（図２８（ｃ）参照）。
【００８３】
その後、ステップＳ４０へ戻り、上記ステップＳ４５で算出した噴射開始タイミングＩＪSTを今回の噴射・点火対象気筒＃ｉの噴射開始タイミングタイマにセットする。そして、上記ステップＳ２５（図４参照）へ戻り、今回の噴射・点火対象気筒＃ｉの燃料噴射タイマに、上記ステップＳ４３で算出した燃料噴射パルス幅Ｔｉをセットしてルーチンを抜ける。
【００８４】
次に、図８，図９に示すフローチャートに基づき、点火時期・通電開始時間設定ルーチンについて説明する。上述のように、このルーチンは、エンジン始動時は上述の燃料噴射パルス幅・噴射開始タイミング設定ルーチンの後に実行され、エンジン始動後は、この燃料噴射パルス幅・噴射開始タイミング設定ルーチンに優先して実行される。
【００８５】
まず、ステップＳ５１では、現在の運転状態が始動時か始動後かを、始動判別フラグＦSTの値を参照して判断する。この始動判別フラグＦSTは、前述の図３の始動判定ルーチンで設定され、ＦST＝１の場合にはエンジン始動時であるため、ステップＳ５２へ進み始動時制御を実行し、一方、ＦST＝０の場合には始動後であるため、ステップＳ５７へ分岐して始動後制御を行う。
【００８６】
まず、始動時制御について説明し、続いて始動後制御について説明する。
【００８７】
上記ステップＳ５１で、ＦST＝１の始動時と判断されてステップＳ５２へ進むと、バッテリ電圧ＶB に基づいて通電時間ＤWL〔msec〕を、テーブルから補間計算付で参照して設定する。このテーブルの一連のアドレスには、ステップ中に示すようにバッテリ電圧ＶB が高い程、通電時間ＤWL〔msec〕を短く設定した特性を、データ化して格納されている。
【００８８】
次いで、ステップＳ５３へ進み、点火時期ＩＧt を次式から求める。
【００８９】
ＩＧt ←Ｔｉ＋ＩＧST
ＩＧST：噴射終了より点火までの予め設定された時間〔msec〕（ＲＯＭデータとして格納されている）この点火時期ＩＧt は、特定の基準クランクパルス入力後、何msec後に点火するのかを定めるもので、本参考例では、図２７（ｂ）に示すように、始動時の燃料噴射パルス幅Ｔｉをθ３パルスを基準クランク角として噴射開始するように設定し、この燃料噴射パルス幅Ｔｉによる燃料噴射が終了してから上記設定時間ＩＧST経過後に点火するように設定されている。
【００９０】
その後、ステップＳ５４でドエル開始タイミングＤWLSTを次式から算出する。
【００９１】
ＤWLST←（ＴθM3＋ＩＧt ）−ＤWL
ＴθM3：ドエル開始タイミングを設定する際の基準となるクランクパルス入力から点火時期設定基準となるクランクパルス入力までの時間図２７（ｂ）のタイミングチャートに示すように、本参考例では、始動時のドエル開始の基準クランク角をθ１パルスとし、点火時期設定の際の基準クランク角をθ３パルスとしている。従って、上記ＴθM3は、
ＴθM3＝２×Ｔθにより算出することができる。
【００９２】
その後、ステップＳ５５で、今回の噴射・点火対象気筒＃ｉの点火時期タイマに上記点火時期ＩＧt をセットし、ステップＳ５６でドエル開始タイミングＤWLSTをドエル開始タイミングタイマにセットしてルーチンを抜ける。
【００９３】
始動時において上記ステップＳ５６でセットされた当該噴射・点火対象気筒＃ｉのドエル開始タイミングタイマは、上死点前ＢＴＤＣθ１パルスを基準クランク角としてスタートされ、一方、上記ステップＳ５５でセットされた点火時期タイマは、上死点前ＢＴＤＣθ３パルスを基準クランク角としてスタートされる（詳細については後述する）。
【００９４】
一方、エンジンの始動が完了すると、前述の図３に示す始動判定ルーチンのステップＳ１４で、上記始動判別フラグＦSTがクリアされるため、この点火時期・通電開始時間設定ルーチンでは、上記ステップＳ５１から図９に示すステップＳ５７へ分岐して、始動後制御を行う。なお、上述したように、エンジンが始動状態から始動後へ移行すると、ルーチンの優先順位が反転し、この点火時期・通電開始時間設定ルーチンは、前述の燃料噴射パルス幅・噴射開始タイミング設定ルーチンの前に実行される。
【００９５】
そして、上記ステップＳ５７で、最新の基本給気比Ｌ０及びエンジン回転数Ｎを読み出す。次いで、ステップＳ５８で、本参考例において採用する各燃焼方式に応じた点火時期を定める進角値ＡＤＶ〔°ＣＡ〕を設定するため、まず、燃焼方式判別フラグＦ１の値を参照して現在選択されている燃焼方式を判別する。この燃焼方式判別フラグＦ１は、前述の燃料噴射パルス幅・噴射開始タイミング設定ルーチンで、エンジン負荷に応じて設定されており、Ｆ１＝０が成層燃焼方式を表し、またＦ１＝１が均一燃焼方式を表す。
【００９６】
上記ステップＳ５８で、現在の燃焼方式がＦ１＝０の成層燃焼と判断されると、ステップＳ５９へ進み、成層燃焼時の点火進角値ＡＤＶ〔°ＣＡ〕を、上記ステップＳ５７で読み出した基本給気比Ｌ０とエンジン回転数Ｎとに基づいてテーブルを補間計算付で参照して設定する。上記点火進角値ＡＤＶは、上死点前何°ＣＡに点火するのかを定めるものであり、基本給気比Ｌ０及びエンジン回転数ＮをパラメータとしたテーブルとしてＲＯＭ４２に格納されており、このテーブルには、予め実験等により求めた基本給気比Ｌ０とエンジン回転数Ｎとにより区分される領域毎に、成層燃焼に適応する点火進角値ＡＤＶがストアされている。なお、ＲＯＭ４２の一連のアドレスには、成層燃焼時の点火進角値ＡＤＶを格納するテーブル以外に、後述する均一燃焼時の各点火進角値ＡＤＶが予め実験等から求めて格納されている。
【００９７】
その後、ステップＳ６０で、バッテリ電圧ＶB に基づいて通電時間ＤWLを、前述と同様にテーブルを補間計算付で参照して設定し、ステップＳ６１で、１〔°ＣＡ〕回転当りの時間から、上記ステップＳ５９で設定した成層燃焼時の点火進角値ＡＤＶ〔°ＣＡ〕を時間に換算する点火進角時間換算値ＴADV を次式に基づいて算出する。
【００９８】
ＴADV ←（Ｔθ／θｓ）×ＡＤＶ
Ｔθ：最新のクランクパルス入力間隔時間
θｓ：クランクパルス間角度（本参考例では、３０°ＣＡ）その後、ステップＳ６２で、上記点火進角時間換算値ＴADV に基づいて点火時期ＩＧt を次式から算出する。
【００９９】
ＩＧt ←ＴθM4−ＴADV
上記ＴθM4は、点火時期〔msec〕を設定する際の基準となるクランクパルス入力から今回の噴射・点火対象気筒＃ｉの上死点ＴＤＣに到達するまでの時間で、本参考例においては、噴射・点火対象気筒＃ｉの上死点前ＢＴＤＣθ２パルスを基準クランクパルスとしており、図２８のタイミングチャートに示すように、ＴθM4＝１．５×Ｔθにより算出される。
【０１００】
次いで、ステップＳ６３で、点火時期に対応するドエル開始タイミングＤWLSTを次式に基づいて算出する。
【０１０１】
ＤWLST←ＴθM5−（ＤWL＋ＴADV ）
ここで、ＴθM5はドエル開始タイミングを設定する際の基準となるクランクパルス入力から今回の噴射・点火対象気筒＃ｉの上死点ＴＤＣに達するまでの時間で、本参考例では、１気筒前の気筒の上死点前ＢＴＤＣθ３パルスを基準クランクパルスとしており、図２８のタイミングチャートに示すように、
ＴθM5＝３．５×Ｔθにより算出される。
【０１０２】
そして、上記ステップＳ５５へ戻り、今回の噴射・点火対象気筒＃ｉの点火時期タイマに上記点火時期ＩＧt をセットし、ステップＳ５６で上記ドエル開始タイミングＤWLSTをドエル開始タイミングタイマにセットしてルーチンを抜ける。
【０１０３】
一方、上記ステップＳ５８で、今回の燃焼方式が、Ｆ１＝１の均一燃焼と判断されると、ステップＳ６４へ進み、均一燃焼時の点火進角値ＡＤＶ〔°ＣＡ〕を、ステップＳ５７で読み出した基本給気比Ｌ０とエンジン回転数Ｎとに基づいてテーブルを補間計算付で参照して設定する。そして、ステップＳ６０へ戻り、バッテリ電圧ＶB に基づいて通電時間ＤWLを、テーブル参照により設定し、ステップＳ６１で、上記ステップＳ６４で設定した均一燃焼時の点火進角値ＡＤＶ〔°ＣＡ〕を時間に換算する点火進角時間換算値ＴADV を算出し（ＴADV ←（Ｔθ／θｓ）＋ＡＤＶ）、ステップＳ６２で、上記点火進角時間換算値ＴADV に基づいて点火時期ＩＧt を算出し（ＩＧt ←ＴθM4−ＴADV ）、ステップＳ６３で、ドエル開始タイミングＤWLSTを算出する（ＤWLST←ＴθM5−（ＤWL＋ＴADV)）。そして、上記ステップＳ５５へ戻り、今回の噴射・点火対象気筒＃ｉの点火時期タイマに、均一燃焼時の点火時期ＩＧt をセットし、ステップＳ５６で上記ドエル開始タイミングＤWLSTをドエル開始タイミングタイマにセットしてルーチンを抜ける。
【０１０４】
次に、上記各ルーチンでセットされた各タイマを起動させるルーチンについて、図１０〜図１７のフローチャートに基づいて各々説明する。
【０１０５】
まず、始動時において、θ１パルスが入力されると、図１０のフローチャートに示す始動時ドエル開始タイミングタイマ・始動後噴射開始タイミングタイマスタートルーチンが起動される。
【０１０６】
そして、ステップＳ７１で、始動判別フラグＦSTの値を参照して、現在の運転状態が始動時か否かを判断する。エンジン始動時は、ＦST＝１であるため、ステップＳ７２へ進み、ドエル開始タイミングＤWLSTがセットされた今回の噴射・点火対象気筒＃ｉのドエル開始タイミングタイマをスタートさせてルーチンを抜ける。その結果、上記ドエル開始タイミングタイマにセットされたドエル開始タイミングＤWLST〔msec〕の計時が開始され（図２７（ｂ）参照）、計時が終了したとき、図１５のフローチャートに示すドエル開始ルーチンが割込み起動され、ステップＳ１４１で、イグナイタ６ｂを介して、今回の噴射・点火対象気筒＃ｉの点火コイル６ａに対するドエルを開始してルーチンを抜ける。
【０１０７】
次いで、θ２パルスが入力されると、図１１のフローチャートに示す始動後点火時期タイマスタートルーチンが起動され、ステップＳ１０１で、上記始動判別フラグＦSTの値を参照し、現在の運転状態がＦST＝１の始動時の場合は、そのままルーチンを抜ける。
【０１０８】
続いて、θ３パルスが入力されると、図１２のフローチャートに示す始動時噴射開始タイマ及び点火時期タイマ・始動後ドエル開始タイミングタイマスタートルーチンが起動され、ステップＳ１１１で、上記始動判別フラグＦSTの値を参照して、現在の運転状態がＦST＝１の始動時の場合、ステップＳ１１２へ進み、始動時における今回の噴射・点火対象気筒＃ｉの燃料噴射タイマをスタートさせる。すると、この燃料噴射タイマにセットされた燃料噴射パルス幅Ｔｉの計時が開始され（図２７（ｂ）参照）、その間、該当気筒＃ｉの高圧用インジェクタ８に噴射信号が出力され、このインジェクタ８で所定に計量された燃料が筒内に直接噴射される。
【０１０９】
次いで、ステップＳ１１３へ進むと、当該気筒＃ｉの点火時期タイマをスタートさせて、ルーチンを抜ける。すると、この点火時期タイマにセットされた点火時期ＩＧt 〔msec〕の計時が開始され（図２７（ｂ）参照）、この計時が終了したとき、図１６のフローチャートに示す点火制御ルーチンが割込み起動される。
【０１１０】
そして、この点火制御ルーチンのステップＳ１５１で始動判別フラグＦSTの値を参照し、ＦST＝１の始動時はステップＳ１５２へ進み、イグナイタ６ｂを介しての噴射・点火対象気筒＃ｉの点火コイル６ａに対するドエルをカットしてルーチンを抜ける。その結果、点火プラグ７の火花点火により燃焼が開始され、エンジンが始動する。
【０１１１】
そして、エンジン始動後に、θ１パルスが入力されて、図１０のフローチャートに示すルーチンが起動されると、ステップＳ７１で、ＦST＝０の始動後と判断されてステップＳ７３へ分岐し、現在の燃焼方式が、均一燃焼か否かを、燃焼方式判別フラグＦ１の値を参照して判断する。
【０１１２】
本参考例においては、図２８（ｂ）のタイミングチャートに示すように、成層燃焼では噴射開始タイミングタイマを噴射・点火対象気筒＃ｉの上死点前ＢＴＤＣのθ１パルス入力でスタートさせるように設定されており、一方、同図（ｃ）に示すように、均一燃焼では、噴射開始タイミングタイマを今回の噴射・点火対象気筒＃ｉの１つ前の気筒の上死点前ＢＴＤＣのθ１パルス入力でスタートするように設定されている。
【０１１３】
従って、噴射開始タイミングタイマをスタートさせる噴射・点火対象気筒＃ｉを判別するために、上記ステップＳ７３で、現在設定されている燃焼方式を判断するのである。
【０１１４】
上記ステップＳ７３で、Ｆ１＝０の成層燃焼が選択されているときは、ステップＳ７４へ進み、これから上死点ＴＤＣを迎える気筒、すなわち現在の気筒を今回の噴射・点火対象気筒＃ｉとして設定し、ステップＳ７５で、当該噴射・点火対象気筒＃ｉの噴射開始タイミングタイマをスタートさせてルーチンを抜ける。
【０１１５】
一方、ステップＳ７３でＦ１＝１の均一燃焼が選択されているときには、ステップＳ７６へ分岐し、これから上死点を迎える気筒の一つ後の気筒を今回の噴射・点火対象気筒＃ｉとして設定して上記ステップＳ７５で当該気筒＃ｉの噴射開始タイミングタイマをスタートさせ、ルーチンを抜ける。
【０１１６】
すなわち、図２８のタイミングチャートに示すように、例えば、噴射・点火対象気筒＃ｉを＃１気筒とした場合、成層燃焼が選択されているときには、同図（ｂ）に示すように、上記噴射開始タイミングタイマは、当該＃１気筒の上死点前ＢＴＤＣθ１パルス入力でスタートされ、また、均一燃焼時には、同図（ｃ）に示すように、一つ前の＃２気筒の上死点前ＢＴＤＣθ１パルス入力でスタートされる。
【０１１７】
そして、この噴射開始タイミングタイマにセットした噴射開始タイミングＩＪST〔msec〕の計時が終了したとき、図１３のフローチャートに示す噴射開始タイミングルーチンが割込み起動される。このルーチンでは、各気筒の燃料噴射期間、すなわち、各気筒のインジェクタ８の通電期間が重ならないように、噴射開始時期を制御する。
【０１１８】
まず、ステップＳ１２１で、他気筒において燃料噴射中か否かを、他気筒の燃料噴射タイマが計時中か否かにより判断する。他気筒のいずれかの燃料噴射タイマが計時中であるとき、今回の噴射・点火対象気筒＃ｉの燃料噴射を開始すると、複数のインジェクタ８に対する通電が重なり、インジェクタ駆動回路４８ａを介してインジェクタ８を開弁駆動するための電源の負担が大きくなるため、ステップＳ１２２へ進み、ステップＳ１２２ないしＳ１２６の処理により、他気筒の燃料噴射終了後、すなわち、他気筒のインジェクタに対する通電終了後、今回の噴射・点火対象気筒＃ｉのインジェクタに対する通電を開始するよう当該気筒＃ｉの燃料噴射開始時期を遅延させる。
【０１１９】
ステップＳ１２２では、上記計時中の他気筒の燃料噴射タイマの計時値ＴＭanを読み出す。ここで、本参考例においては、カウントダウン式の燃料噴射タイマを採用しており、上記計時値ＴＭanは、他気筒の燃料噴射終了、すなわち他気筒のインジェクタ８に対する通電終了までの時間を表している。
【０１２０】
そして、ステップＳ１２３で、上記計時値ＴＭanに設定時間ＴＭs を加算して今回の噴射・点火対象気筒＃ｉに対する燃料噴射開始時期を遅延させるための当該気筒噴射開始遅延時間ＴＭt#i を設定する。上記設定時間ＴＭs は、インジェクタ駆動用電源の電圧回復を与える時間であり、他気筒の高圧用インジェクタ８に対する通電が終了してから、さらに設定時間経過後に当該気筒＃ｉのインジェクタ８に対する通電を開始させることで、インジェクタ駆動用電源の電圧回復後、当該気筒＃ｉのインジェクタ８に対する通電を開始させ、インジェクタ８による燃料調量精度の向上を図るためのものである。なお、この設定時間ＴＭs は必ずしも必要とするものではなく、上記計時値ＴＭanをそのまま噴射開始遅延時間ＴＭt#i としても良い。また、本参考例においてはカウントダウン式の燃料噴射タイマを採用しているので、タイマの計時値ＴＭanを他気筒の燃料噴射が終了するまでの時間として用いているが、燃料噴射タイマが０からＴｉまでカウントするカウントアップ式の場合には、燃料噴射中の他気筒の燃料噴射パルス幅からタイマの計時値を減算した値を他気筒噴射終了までの時間として採用する。
【０１２１】
次いで、ステップＳ１２４で、上記当該気筒噴射開始遅延時間ＴＭt#i を今回の噴射・点火対象気筒＃ｉの噴射開始タイミングタイマに再セットし、ステップＳ１２５で、成層燃焼が選択されているときに今回の噴射・点火対象気筒＃ｉの燃料噴射開始時期遅延に対応して当該気筒＃ｉの点火時期を遅延させるため点火時期変更フラグＦD#i をセットし、ステップＳ１２６で、当該気筒＃ｉの噴射開始タイミングタイマを再スタートさせて、ルーチンを抜ける。
【０１２２】
そして、この噴射開始タイミングタイマにセットした噴射開始遅延時間ＴＭt#i 〔msec〕の計時が終了したとき、図１４のフローチャートに示す噴射開始ルーチンが割込み起動され、ステップＳ１３１で、今回の噴射・点火対象気筒＃ｉの燃料噴射タイマをスタートさせて、ルーチンを抜ける。
【０１２３】
その結果、今回の噴射・点火対象気筒＃ｉの高圧用インジェクタ８に対して、上記噴射開始遅延時間ＴＭt#i の経過後に、当該気筒＃ｉの燃料噴射タイマにセットされた燃料噴射パルス幅（時間）Ｔｉの計時が開始され、当該気筒＃ｉの燃料噴射タイマの計時値ＴＭanがＴｉから０になるまでの間、今回の噴射・点火対象気筒＃ｉの高圧用インジェクタ８へインジェクタ駆動回路５５ａから噴射信号が出力されて燃料噴射される。
【０１２４】
すなわち、図２９のタイミングチャートに示すように、今回の噴射・点火対象気筒＃ｉを＃１気筒とした場合、この＃１気筒に対する燃料噴射を開始する際に、その前の気筒である＃２気筒の燃料噴射が未だ終了していない場合、そのときの＃２気筒の噴射終了までの時間ＴＭanと設定値ＴＭs とを加算した噴射開始遅延時間ＴＭt#i 経過後に、＃１気筒の燃料噴射が開始されることになるため、各インジェクタ駆動回路４８ａを介しての各インジェクタ８における通電が重複せず、従って、このインジェクタ駆動用電源の負担が軽減される。ところで、図２９に示すように、燃料噴射が気筒間で重複する場合、後から噴射する気筒の燃料噴射開始タイミングが正規の噴射タイミングよりもやや遅れることになるが、各気筒の燃料噴射が重複する期間は、同図に示すように、例えば、燃焼方式が成層燃焼から均一燃焼へ切換わるときに生じる。この均一燃焼では、噴射開始時期をやや遅らせても、点火までには充分な時間があるため燃焼に大きな影響を及ぼすことはない。
【０１２５】
また、このとき、後述する点火時期制御では、点火時期を上記燃料噴射開始時期の変更に関係なく、正規の点火時期で点火させている。すなわち、図２９に示すように、均一燃焼では噴射開始から点火まで充分に余裕があり、且つ点火時期をずらすと燃焼状態が悪化してしまうからである。
【０１２６】
一方、成層燃焼時においては、前述したように点火時に点火プラグ７の周囲に濃混合気を形成する必要があり、燃料噴射終了と点火との時間間隔を管理する必要がある。
【０１２７】
従って、成層燃焼において各気筒間のインジェクタ８の通電の重複を回避すべく今回の噴射・点火対象気筒＃ｉの燃料噴射時期を上記噴射開始遅延時間ＴＭt#i により遅延させた場合には、これに対応して当該気筒＃ｉの点火時期を遅延、すなわち遅角させなければならない。このため、当該気筒＃ｉの燃料噴射時期を遅延させたときには、前記燃料噴射開始タイミングルーチン（図１３）のステップＳ１２５で当該気筒＃ｉに対する点火時期変更フラグＦD#i をセットすることで、詳しくは後述するが、図１６に示す点火制御ルーチンで、当該気筒＃ｉの点火時期を当該気筒噴射開始遅延時間ＴＭt#i に対応して遅角化させる。
【０１２８】
なお、本参考例では、噴射・点火対象気筒＃ｉに対する燃料系（燃料噴射時期、燃料噴射量）の演算、及び点火系（ドエル開始タイミング、点火時期）の演算は、前述のようにその２つ前の気筒の上死点前ＢＴＤＣθ２パルスが入力されたときに割込み起動されるルーチンで行われる。
【０１２９】
一方、上記図１３の噴射開始タイミングルーチンのステップＳ１２１において、他の全ての気筒の燃料噴射タイマが駆動していない場合は、燃料噴射中の気筒はなく今回の噴射・点火対象気筒＃ｉのインジェクタ８を通電しても他気筒のインジェクタの通電と重複することがなくインジェクタ駆動用電源の負担超過がないと判断して、ステップＳ１２７へ進み、ステップＳ１２７，Ｓ１２８で、当該気筒＃ｉの点火時期変更フラグＦD#i 、及び噴射開始遅延時間ＴＭt#i をクリアし、ステップＳ１２９で今回の噴射・点火対象気筒＃ｉの燃料噴射タイマをスタートして、ルーチンを抜ける。
【０１３０】
すると、今回の噴射・点火対象気筒＃ｉの高圧用インジェクタ８に対し、上記燃料噴射タイマにセットされた燃料噴射パルス幅Ｔｉの計時が行われている間、インジェクタ駆動回路４８ａを介して噴射信号が出力され、高圧用インジェクタ８の開弁により当該気筒＃ｉに燃料が噴射される。
【０１３１】
従って、各気筒間の燃料噴射時期が重複せず、各気筒間のインジェクタ通電が重複しないときには、今回の噴射・点火対象気筒＃ｉに対し当初の噴射開始タイミングで燃料噴射が行われる。
【０１３２】
また、エンジン始動後の点火時期制御は、図２８のタイミングチャートに示すように、今回の噴射・点火対象気筒＃ｉの１つ前の気筒の上死点前ＢＴＤＣθ３パルス入力で、ドエル開始タイミングＤWLSTが計時されるように設定されるため、まず、図１２のフローチャートに示すθ３パルス入力により割込み起動されるルーチンから説明する。
【０１３３】
θ３パルスが入力されて、図１２のフローチャートに示すルーチンが起動されると、まず、ステップＳ１１１で、現在の運転状態がＦST＝０の始動後と判断されて、ステップＳ１１４へ分岐し、今回の噴射・点火対象気筒＃ｉのドエル開始タイミングタイマをスタートさせる。
【０１３４】
すると、このドエル開始タイミングタイマにセットしたドエル開始タイミングＤWLSTの計時が開始され、この計時が終了したとき、図１５のフローチャートに示すドエル開始ルーチンが割込み起動される。そして、このドエル開始ルーチンのステップＳ１４１で、今回の噴射・点火対象気筒＃ｉのドエルをセットしてルーチンを抜ける。その結果、イグナイタ６ｂを介して今回の噴射・点火対象気筒＃ｉの点火コイル６ａに対するドエルが開始される。
【０１３５】
上記ドエル開始ルーチンでセットされた当該噴射・点火対象気筒＃ｉのドエルは、図１６のフローチャートに示す点火制御ルーチン、或いは、図１７に示す点火ルーチンが起動されたときにカットされる（詳細については後述する）。
【０１３６】
その後、θ２パルスが入力されて、図１１に示す点火時期タイマスタートルーチンが割込み起動されると、ステップＳ１０１で、始動判別フラグＦSTの値を参照し、現在の運転状態がＦST＝０の始動後のときは、ステップＳ１０２へ分岐し、今回の噴射・点火対象気筒＃ｉの点火時期タイマをスタートさせてルーチンを抜ける。
【０１３７】
すると、この点火時期タイマにセットされた点火時期ＩＧt 〔msec〕が計時され、計時終了時に、図１６のフローチャートに示す点火制御ルーチンが割込み起動される。そして、ステップＳ１５１で、始動判別フラグＦSTの値を参照し、ＦST＝０のエンジン始動後は、ステップＳ１５３へ分岐して、ステップＳ１５３，Ｓ１５４で当該気筒＃ｉの点火時期を燃料噴射時期の遅延に対応して遅角させるか否かを判断する。
【０１３８】
すなわち、成層燃焼において各気筒間のインジェクタ８の通電の重複を回避すべく今回の噴射・点火対象気筒＃ｉの燃料噴射時期が遅延されたときには、これに対応して当該気筒＃ｉの点火時期を遅延、すなわち遅角させなければならない。そのため、ステップＳ１５３で、燃焼方式判別フラグＦ１の値を参照して現在の燃焼方式が、成層燃焼が選択されているか均一燃焼が選択されているかを判断し、Ｆ１＝０の成層燃焼が選択されているときのみステップＳ１５４へ進み、当該気筒＃ｉの点火時期変更フラグＦD#i がセットされているかを判断する。
【０１３９】
そして、Ｆ１＝０の成層燃焼が選択されているとき、且つ当該気筒＃ｉの点火時期変更フラグＦD#iがＦD#i ＝１で当該気筒＃ｉに対して燃料噴射時期の遅延に伴い点火時期遅角が指示されているときには、ステップＳ１５５へ進み、当該気筒＃ｉの噴射開始遅延時間ＴＭt#i を読み出して、ステップＳ１５６で、この噴射開始遅延時間ＴＭt#i を今回の噴射・点火対象気筒＃ｉの点火時期タイマに再セットして当該点火時期タイマを再スタートさせ、ルーチンを抜ける。
【０１４０】
そして、この点火時期タイマにセットした遅延時間ＴＭt#i 〔msec〕の計時が終了したとき、図１７のフローチャートに示す点火ルーチンが割込み起動され、ステップＳ１６１で、今回の噴射・点火対象気筒＃ｉに対するドエルをカットしてルーチンを抜ける。
【０１４１】
その結果、成層燃焼時、当該気筒＃ｉに対して燃料噴射時期が遅延されているときには、これに対応して点火時期が遅延され、当初設定した点火時期ＩＧt に対し遅延時間ＴＭt#i 経過後、イグナイタ６ｂを介して当該気筒＃ｉの点火コイル６ａに対するドエルがカットされ、当該気筒＃ｉが点火される。
【０１４２】
従って、成層燃焼時、各気筒間のインジェクタ８の通電の重複を回避すべく、当該気筒＃ｉの燃料噴射時期が噴射開始遅延時間ＴＭt#i により遅延されているときには、これに対応して当該気筒＃ｉの点火時期が遅延されるので、点火時に点火プラグ７の周囲に濃混合気を形成しなければならない成層燃焼時は、常に、燃料噴射終了と点火との時間間隔が適正に管理されることになる。
【０１４３】
一方、上述の図１６の点火制御ルーチンにおいて、ステップＳ１５３でＦ１＝１であり、均一燃焼が選択されているときには燃料噴射時期の遅延の有無に拘らず点火時期を遅角される必要がなく、また、Ｆ１＝０の成層燃焼時であってもステップＳ１５４でＦD#i ＝０であって当該気筒＃ｉの燃料噴射時期が遅延されておらず点火時期の遅角が指示されていないときには、ステップＳ１５２へ進み、当該気筒＃ｉに対するドエルをカットしてルーチンを抜ける。
【０１４４】
従って、このときには、今回の噴射・点火対象気筒＃ｉに対し当初の点火時期ＩＧt で点火が行われる。
【０１４５】
このように本参考例によれば、今回の噴射・点火対象気筒＃ｉの高圧用インジェクタ８に対して通電を開始するときに、他の気筒でインジェクタ８に対し通電中の気筒があるときには、この気筒の通電が終了した後に、今回の噴射・点火対象気筒＃ｉのインジェクタ８に対して通電を開始するようにしたので、インジェクタ駆動用電源の負担が軽減されて電圧降下が防止される。その結果、高圧用インジェクタ８のニードルのリフトが不充分になる等の動作不良が生じることがなく、常に、適正な燃料量を供給することができる。
【０１４６】
また、各気筒間のインジェクタ通電の重複を回避するため今回の噴射・点火対象気筒＃ｉの燃料噴射時期を遅延させたときには、成層燃焼が選択されているとき、燃料噴射時期の遅延に対応して当該気筒＃ｉの点火時期が遅延されるので、成層燃焼時は、常に燃料噴射終了と点火との時間間隔が適正に管理されて、点火時に点火プラグ７の周囲に濃混合気が形成され、燃料噴射時期の変更に伴う着火性の悪化を確実に防止することができる。
【０１４７】
また、各気筒間のインジェクタ通電の重複を回避するため今回の噴射・点火対象気筒＃ｉの燃料噴射時期を遅延させる際、他気筒の高圧用インジェクタ８に対する通電が終了してから更に設定時間ＴＭs 経過後に当該気筒＃ｉのインジェクタ８に対する通電を開始させるので、インジェクタ駆動用電源の電圧回復後、当該気筒＃ｉのインジェクタ８に対する通電が開始され、インジェクタ８による燃料調量精度を向上することが可能となる。
【０１４８】
次に、図３０〜図３５に基づき、本発明の実施の形態を説明する。
【０１４９】
上述の参考例では、各気筒間の高圧用インジェクタ８に対する通電が重複しないように制御しているが、本実施の形態においては、各気筒の高圧用インジェクタ８に対する通電初期のプルアップ通電期間のみが重複しないように制御するものである。
【０１５０】
なお、エンジンの構成、及び制御系の構成は前記参考例と同じである。
【０１５１】
ここで、前記制御装置４０は、参考例における通電終了判別手段に代えて、プルアップ電流終了判別手段としての機能を有し、今回の燃料噴射対象気筒のインジェクタに対して通電を開始する際に、他の気筒のインジェクタに対してプルアップ電流通電中の気筒があるのかを判断し、他の気筒のインジェクタに対してプルアップ電流通電中のときには、他の気筒のインジェクタに対するプルアップ電流の通電終了後に今回の燃料噴射対象気筒のインジェクタに対して通電を開始させることで、大電流を必要とするプルアップ電流通電期間のみ各気筒間のインジェクタ通電の重複を回避し、燃料噴射時期の遅延を最小限とする。
【０１５２】
具体的には、参考例に対し、図１４に示す噴射開始ルーチンを廃し、プルアップ電流の通電状態を表すプルアップフラグＦPUL をプルアップ電流通電状態に応じてセット、或いはクリアするために図３２，図３３に示すルーチンを追加し、さらに、図１３に示す噴射開始タイミングルーチンに代えて、図３４に示す噴射開始タイミングルーチンを採用し、今回の噴射・点火対象気筒＃ｉに対するインジェクタ８への通電を開始、すなわち燃料噴射を開始する際に、上記プルアップフラグＦPUL の値により他気筒のインジェクタに対してプルアップ電流通電中かを判断し、他気筒のインジェクタに対してプルアップ電流通電中のときには、このプルアップ電流の通電終了後に当該気筒＃ｉのインジェクタ８に対して通電を開始させる。
【０１５３】
本実施の形態による燃料噴射開始タイミングを制御する手順を説明する前に、インジェクタ駆動回路４８ａの動作について簡単に説明する。
【０１５４】
インジェクタ駆動回路４８ａは高圧用インジェクタ８毎に対応して設けられており、各インジェクタ駆動回路４８ａでは、燃料噴射を指示する噴射パルス信号が入力されたとき、まず高圧用インジェクタ８の弁体を高速で開弁させるために大電流（いわゆるプルアップ電流）を微小時間通電し、その後、この通電を一旦停止して通電電流値を下げ、上記高圧用インジェクタ８に対する通電電流を検知して、上記弁体の開弁状態を保持させるのに必要な保持電流となるように、閉ループで制御する。
【０１５５】
この保持電流はプルアップ電流と比較して小さく、この保持電流が気筒間で重複しても、インジェクタ駆動用電源にかかる負担は少ない。従って、本実施の形態では、このプルアップ通電期間のみが重複しないように気筒間の高圧用インジェクタ８に対する通電開始時期を調整している。
【０１５６】
ここで、本実施の形態によるプルアップ通電期間を検出する具体例を、図３０に示すインジェクタ駆動回路４８ａの回路例に基づいて説明する。
【０１５７】
図に示すインジェクタ駆動回路４８ａは、タイミング信号発生回路１５１、フライホイール回路制御信号発生回路１５１ａ、ＤＣ−ＤＣコンバータ等からなる昇圧電源回路６０、電流制御回路７０、電流検出回路８０、フライホイール回路９０で構成され、上記昇圧電流回路６０及び電流制御回路７０に駆動用電源ＶBが印加される。
【０１５８】
上記タイミング信号発生回路１５１は、昇圧電源回路６０及び電流制御回路７０への開弁時電流印加時間パルス信号ＳD を発生するワンショットマルチバイブレータ１５２と、フライホイール回路９０の制御タイミングを決定する信号ＳCを発生するワンショットマルチバイブレータ１５３、ＥＸ−ＯＲゲート１５４、ＯＲゲート１５５等からなるフライホイール回路制御信号発生回路１５１ａとを備えている。
【０１５９】
また、上記各ワンショットマルチバイブレータ１５２，１５３は、出力パルス幅を決定するためのＣＲを接続する外付け端子ＣX ，ＲX と、２つのトリガ入力端子Ａ，Ｂとを有する再トリガ可能なタイプであり、信号の立ち上がりでトリガするための各トリガ入力端子Ｂに噴射パルス信号がそれぞれ入力され、信号の立ち下がりでトリガするための各トリガ入力端子Ａはそれぞれ接地されている。
【０１６０】
また、上記ワンショットマルチバイブレータ１５２の外付け端子ＣX には、コンデンサ１５６の負極側が接続され、このコンデンサ１５６の正極側と抵抗１５７の一端が外付け端子ＲX に接続されて、この抵抗１５７の他端が定電圧電源ＶCCに接続されている。同様に、前記ワンショットマルチバイブレータ１５３の外付け端子ＣX に、コンデンサ１５８の負極側が接続され、このコンデンサ１５８の正極側と抵抗１５９の一端が外付け端子ＲX に接続されて、この抵抗１５９の他端が定電圧電源ＶCCに接続されている。さらに、上記ワンショットマルチバイブレータ１５３の非反転出力端子Ｑが、上記ＥＸ−ＯＲゲート１５４の一方の入力端子に接続され、また、上記ＥＸ−ＯＲゲート１５４の他方の入力端子に、噴射パルス信号が入力される。
【０１６１】
本実施の形態では、上記ワンショットマルチバイブレータ１５３の非反転出力端子ＱをＩ／Ｏインターフェース４５の割込端子に接続し、この非反転出力端子Ｑからの出力信号によりプルアップ電流通電期間を検出している。
【０１６２】
また、上記ワンショットマルチバイブレータ１５２の非反転出力端子Ｑは、上記電流制御回路７０に接続されると共に上記ＯＲゲート１５５の一方の入力端子に接続され、このＯＲゲート１５５の他方の入力端子に、上記ＥＸ−ＯＲゲート１５４の出力端子が接続されている。そして、上記ＯＲゲート１５５の出力端子が上記フライホイール回路９０に接続され、フライホイール回路制御信号ＳE が出力される。
【０１６３】
なお、各ワンショットマルチバイブレータ１５２，１５３の反転出力端子＊Ｑは未使用のため、開放状態となっている。
【０１６４】
制御装置４０のＩ／Ｏインターフェース４５からハイレベルの噴射パルス信号が、インジェクタ駆動回路４８ａへ出力されると、その立ち上がりのエッジで各ワンショットマルチバイブレータ１５２，１５３がトリガされ、各非反転出力端子Ｑから一定パルス幅（ハイレベル）の信号ＳD ，ＳC がそれぞれ出力される。
【０１６５】
このワンショットマルチバイブレータ１５２から出力される信号ＳD のパルス幅は、外付けのコンデンサ１５６及び抵抗１５７によって定められ、上記高圧用インジェクタ８に開弁時の大電流（いわゆるプルアップ電流）を通電する期間（数百μsec 程度）を決定する。そして、この信号ＳD が開弁時電流印加時間パルス信号として、昇圧電源回路６０及び電流制御回路７０に出力され、この昇圧電源回路６０では上記信号ＳD の出力を受けて、１２Ｖの駆動用電源ＶR を７５Ｖに昇圧した高電圧を上記電流制御回路７０へ出力する。この電流制御回路７０では、上記高電圧を用いて大電流のプルアップ電流を出力し、高圧用インジェクタ８を高速開弁させて高圧燃料をエンジン１の燃焼室５内に直接噴射させる。
【０１６６】
一方、ワンショットマルチバイブレータ１５３から出力される信号ＳC のパルス幅は、上記ワンショットマルチバイブレータ１５２から出力される信号ＳD よりもパルス幅が長くなるよう、外付けのコンデンサ１５８及び抵抗１５９の値が設定されており、この信号ＳC がＥＸ−ＯＲゲート１５４に入力されると、このＥＸ−ＯＲゲート１５４から、ハイレベルの噴射パルス信号と信号ＳC との排他的論理和により信号ＳC を反転した波形となる信号が出力される。
【０１６７】
図３１に示すように、上記信号ＳD とＥＸ−ＯＲゲート１５４からの信号とが入力されるＯＲゲート１５５の出力信号すなわちフライホイール回路制御信号ＳE は、信号ＳC を反転した信号と信号ＳD とを合成した信号となり、信号ＳC のパルス幅の立ち下がりエッジが、高圧用インジェクタ８の電流を開弁時の大電流（プルアップ電流）から減少させて保持電流制御を開始する際にフライホイール回路９０を作動させるタイミングとなる。
【０１６８】
次に、本実施の形態の燃料噴射開始タイミング制御手順について説明する。
【０１６９】
図３２のフローチャートに示すＩ／Ｏ入力電圧レベルＬ→Ｈ割込みルーチンは、上記各インジェクタ駆動回路４８ａから上記Ｉ／Ｏインターフェース４５の割込端子に入力される信号ＳC の電圧レベルがローレベルからハイレベルに切換わったときに割込み起動されるルーチンで、また、図３３のフローチャートに示すＩ／Ｏ入力電圧レベルＨ→Ｌ割込みルーチンは、上記割込端子に入力される信号ＳC の電圧レベルがハイレベルからローレベルに切換わったときに割込み起動されるルーチンである。
【０１７０】
図３１に示すように、ある気筒のインジェクタ駆動回路４８ａに噴射パルス信号が入力されると、このインジェクタ駆動回路４８ａのワンショットマルチバイブレータ１５３の非反転出力端子Ｑからハイレベルの信号Ｓｃが出力されて、上記図３２に示すルーチンが割込み起動されると、ステップＳ１７１でプルアップ電流通電中を示すプルアップフラグＦPUL をセットしてルーチンを抜ける。
【０１７１】
次いで、上記非反転出力端子Ｑから出力される信号Ｓｃがローレベルに切換わると、図３３のフローチャートに示すルーチンが割込み起動され、まず、ステップＳ１８１で、プルアップ電流の通電終了によりプルアップフラグＦPUL をクリアし、ステップＳ１８２で噴射遅延フラグＦINJ の値を参照して、ＦINJ ＝１の場合には、ステップＳ１８３へ進み、ＦINJ ＝０の場合にはそのままルーチンを抜ける。この噴射遅延フラグＦINJ は、後述する図３４のフローチャートに示す噴射開始タイミングルーチンで設定され、ＦINJ ＝１の場合には、プルアップ通電期間が重複するために噴射待機中の気筒があることを示し、ＦINJ ＝０の場合には、待機中の気筒はないことを示す。
【０１７２】
そして、ＦINJ ＝１の噴射待機中の気筒が存在するときには、ステップＳ１８３へ進み、待機中の気筒＃ｉの燃料噴射タイマをスタートさせて当該気筒＃ｉの燃料噴射、すなわち当該気筒＃ｉのインジェクタ８に対するプルアップ電流の通電を開始し、ステップＳ１８４で、計時中の当該気筒＃ｉの噴射開始遅延時間ＴＭt#i の計時をストップする。この噴射開始遅延時間ＴＭt#i は、後述する図３４の噴射開始タイミングルーチンで計時が開始され、上記ステップＳ１８４で計時がストップされることで、各気筒間の高圧用インジェクタ８のプルアップ電流通電期間の重複を回避すべく当該気筒＃ｉの燃料噴射時期を遅延させた時間を表し、この噴射開始遅延時間ＴＭt#i の値が前述の図１６の点火制御ルーチンのステップＳ１５５で読み出され、成層燃焼時において燃料噴射時期が遅延されたときには、これに対応して、参考例と同様に当該気筒＃ｉの点火時期が遅延される。
【０１７３】
次いで、ステップＳ１８５で、上記噴射遅延フラグＦINJ をクリアしてルーチンを抜ける。
【０１７４】
一方、前記参考例の図１０に示すθ１パルスの入力で割込み起動される始動時ドエル開始タイミングタイマ・始動後噴射開始タイミングタイマスタートルーチンのステップＳ７５でスタートされた噴射開始タイミングタイマにセットした噴射開始タイミングＩＪST〔msec〕の計時が終了したとき、図３４のフローチャートに示す噴射開始タイミングルーチンが割込み起動される。そして、ステップＳ１９１で今回の噴射・点火対象気筒＃ｉの噴射開始遅延時間計時値ＴＭt#i をクリアした後、ステップＳ１９２へ進み、プルアップフラグＦPUL の値を参照して他の気筒のインジェクタに対してプルアップ電流通電中か否かを判断し、ＦPUL ＝０でプルアップ通電中の気筒がない場合は、ステップＳ１９３，Ｓ１９４で、当該気筒＃ｉの点火時期変更フラグＦD#i 、噴射遅延フラグＦINJ をそれぞれクリアし、ステップＳ１９５で、当該気筒＃ｉの燃料噴射タイマをスタートさせてルーチンを抜ける。
【０１７５】
従って、今回の噴射・点火対象気筒＃ｉの燃料噴射を開始する際に、他の気筒のインジェクタに対してプルアップ電流の通電が行われていないときには、当初の噴射開始タイミングＩＪSTで、当該気筒＃ｉに対し直ちに燃料噴射が行われる。
【０１７６】
一方、上記ステップＳ１９２においてＦPUL ＝１で、今回の噴射・点火対象気筒＃ｉの燃料噴射を開始する際に、他の気筒のインジェクタに対してプルアップ電流の通電中のときには、ステップＳ１９６へ分岐し、当該気筒＃ｉの燃料噴射開始時期を遅延させ、且つこれに対応して当該気筒＃ｉの点火時期を遅延させるために、ステップＳ１９６で、当該気筒＃ｉの点火時期変更フラグＦD#i をセットし、ステップＳ１９７で、当該気筒＃ｉに対する噴射開始遅延時間ＴＭt#i の計時を開始すると共に、ステップＳ１９８で噴射遅延フラグＦINJ をセットして、ルーチンを抜ける。
【０１７７】
その結果、今回の噴射・点火対象気筒＃ｉに対して燃料噴射を開始する際に、他の気筒のインジェクタに対してプルアップ電流の通電中のときには燃料噴射開始時期が遅延される。そして、他の気筒のインジェクタに対するプルアップ電流の通電が終了すると、図３１のＩ／Ｏ入力電圧レベルＨ→Ｌ割込みルーチンが前述のように起動され、このとき上記ステップＳ１９８で噴射遅延フラグＦINJ がセットされていることで、Ｉ／Ｏ入力電圧レベルＨ→Ｌ割込みルーチンではステップＳ１８２からステップＳ１８３へ進み、当該気筒＃ｉの燃料噴射タイマがスタートされ、他の気筒のインジェクタに対するプルアップ電流の通電終了後、今回の噴射・点火対象気筒＃ｉの高圧用インジェクタ８にプルアップ電流の通電が開始され、燃料噴射タイマにセットされた燃料噴射パルス幅Ｔｉの計時中、インジェクタ駆動回路４８ａを介して当該気筒＃ｉの高圧用インジェクタ８に噴射信号が出力されて当該気筒＃ｉに対し燃料噴射が行われる。
【０１７８】
従って、例えば図３５に示すように、燃焼方式が成層燃焼から均一燃焼に切換わったとき、最初の噴射・点火対象気筒である＃１気筒の正規の噴射開始タイミングでは、＃２気筒のインジェクタ８に対するプルアップ電流通電期間に重複するときには、当該＃１気筒のインジェクタ８に対する通電は、このプルアップ電流の通電終了後に開始されることになる。このプルアップ電流の通電期間は、極く微小時間（数百μsec 程度）であるため、燃料噴射開始時期の遅延を最小限に抑えることができる。
【０１７９】
なお、本実施の形態においても、前述の参考例と同様に、他の気筒のインジェクタに対するプルアップ電流の通電終了後、さらに設定時間ＴＭs 経過後、今回の噴射・点火対象気筒＃ｉに対する燃料噴射、すなわち、当該気筒＃ｉのインジェクタに対する通電を開始するようにしても良い。また、本発明は上記実施の形態に限るものではなく、例えば昇圧電源回路６０を用いず、１２Ｖ電源を用いてプルアップ電流を制御するようにしても良い。また、本出願人が先に出願した特願平７−９５３６２号に示すように１サイクル当り後燃焼を追加するために二回噴射する場合は、参考例では、この後噴射と主噴射とが気筒間で重複したときに、この両噴射の期間を重複しないように制御し、また実施の形態では、上記主噴射と後噴射とのプルアップ電流通電期間が重複しないように制御する。
【０１８０】
【発明の効果】
以上説明したように請求項１記載の発明によれば、今回の燃料噴射対象気筒の高圧用の燃料噴射弁に対する通電を開始する際に、他の気筒の燃料噴射弁に対する開弁用プルアップ電流の通電状態を判断し、他の気筒の燃料噴射弁に対してプルアップ電流を通電中のときには、他の気筒の燃料噴射弁に対するプルアップ電流の通電が終了した後、このプルアップ電流の通電期間のみが重複しないように、今回の燃料噴射対象気筒の燃料噴射弁に対する通電を開始するので、各気筒間の燃料噴射弁に対するプルアップ電流の通電の重複がなくなり、従って、燃料噴射弁駆動用電源の負担が軽減して、電圧降下による燃料噴射弁の動作不良等が回避され、常に適正な燃料噴射量を供給することができ耐久性に優れ、また、従来のエンジン及び制御装置の構造を変更することなく、単にソフトウェアの変更のみで対処できるため低コストで実現することができる。
【０１８１】
しかも、このプルアップ電流の通電期間は極く微小時間のため、燃料噴射開始時期の遅延を最小限に抑えることができ、燃料噴射開始時期の遅延に伴う燃焼性の悪化を生じることなく実現できる。
【０１８２】
また、請求項２記載の発明では、上記効果に加え、成層燃焼が選択されているときには、当該気筒の燃料噴射弁に対する通電開始の変更、すなわち燃料噴射時期の遅延に対応して当該気筒の点火時期を遅角させるので、燃料噴射時期を遅延しても成層燃焼時は、燃料噴射終了時期と点火時期との間隔が常に適正に保持されて、点火時に点火プラグの周囲に濃混合気が形成され、燃料噴射時期の変更に伴う着火性の悪化を確実に防止することができる。
【図面の簡単な説明】
【図１】  本発明の基本構成図
【図２】  本発明の参考例に係わり、気筒判別・エンジン回転数算出ルーチンを示すフローチャート
【図３】  同上、始動判定ルーチンを示すフローチャート
【図４】  同上、燃料噴射パルス幅・噴射開始タイミング設定ルーチンを示すフローチャート
【図５】  同上、燃料噴射パルス幅・噴射開始タイミング設定サブルーチンを示すフローチャート
【図６】  同上、燃料噴射パルス幅・噴射開始タイミング設定サブルーチンを示すフローチャート（続き）
【図７】  同上、燃料噴射パルス幅・噴射開始タイミング設定サブルーチンを示すフローチャート（続き）
【図８】  同上、点火時期・通電開始時間設定ルーチンを示すフローチャート
【図９】  同上、点火時期・通電開始時間設定ルーチンを示すフローチャート（続き）
【図１０】  同上、始動時ドエル開始タイミングタイマ・始動後噴射開始タイミングタイマスタートルーチンを示すフローチャート
【図１１】  同上、始動後点火時期タイマスタートルーチンを示すフローチャート
【図１２】  同上、始動時燃料噴射タイマ及び点火時期タイマ・始動後ドエル開始タイミングタイマスタートルーチンを示すフローチャート
【図１３】  同上、噴射開始タイミングルーチンを示すフローチャート
【図１４】  同上、噴射開始ルーチンを示すフローチャート
【図１５】  同上、ドエル開始ルーチンを示すフローチャート
【図１６】  同上、点火制御ルーチンを示すフローチャート
【図１７】  同上、点火ルーチンを示すフローチャート
【図１８】  同上、筒内直噴式多気筒エンジンの全体概略図
【図１９】  同上、クランクシャフトに軸着したクランク角検出用クランクロータと気筒判別用クランクロータ、及びこれらに対設する各センサの側面図
【図２０】  同上、クランク角検出用クランクロータと、このクランクロータに対設するクランク角センサの正面図
【図２１】  同上、気筒判別用クランクロータと、このクランクロータに対設する気筒判別センサの正面図
【図２２】  同上、電子制御系の回路構成図
【図２３】  同上、均一燃焼時の燃料噴射、及び点火タイミング線図
【図２４】  同上、均一燃焼時の行程図
【図２５】  同上、成層燃焼時の燃料噴射、及び点火タイミング線図
【図２６】  同上、成層燃焼時の行程図
【図２７】  同上、始動時の燃料噴射、及び点火を示すタイミングチャート
【図２８】  同上、始動後の燃料噴射、及び点火を示すタイミングチャート
【図２９】  同上、気筒間の燃料噴射が重複したときの燃料噴射タイミングの補正状態を示すタイミングチャート
【図３０】  本発明の実施の形態に係わり、インジェクタ駆動回路の回路図
【図３１】  同上、インジェクタ駆動回路の各部の信号波形図
【図３２】  同上、Ｉ／Ｏ入力電圧レベルＬ→Ｈ割込みルーチンを示すフローチャート
【図３３】  同上、Ｉ／Ｏ入力電圧レベルＨ→Ｌ割込みルーチンを示すフローチャート
【図３４】  同上、噴射開始タイミングルーチンを示すフローチャート
【図３５】  同上、気筒間のプルアップ電流通電期間が重複したときの燃料噴射開始タイミングの補正状態を示すタイミングチャート
【符号の説明】
１ 筒内直噴式多気筒エンジン６ａ イグナイタ６ｂ 点火コイル７ 点火プラグ８ 高圧用インジェクタ（燃料噴射弁）４０ 制御装置４８ａ インジェクタ駆動回路５０ バッテリ（燃料噴射弁駆動用電源）
【図１】
0003872121.tif 000002
【図２】
0003872121.tif 000003
【図３】
0003872121.tif 000004
【図４】
0003872121.tif 000005
【図５】
0003872121.tif 000006
【図６】
0003872121.tif 000007
【図７】
0003872121.tif 000008
【図８】
0003872121.tif 000009
【図９】
0003872121.tif 000010
【図１０】
0003872121.tif 000011
【図１１】
0003872121.tif 000012
【図１２】
0003872121.tif 000013
【図１３】
0003872121.tif 000014
【図１４】
0003872121.tif 000015
【図１５】
0003872121.tif 000016
【図１６】
0003872121.tif 000017
【図１７】
0003872121.tif 000018
【図１８】
0003872121.tif 000019
【図１９】
0003872121.tif 000020
【図２０】
0003872121.tif 000021
【図２１】
0003872121.tif 000022
【図２２】
0003872121.tif 000023
【図２３】
0003872121.tif 000024
【図２４】
0003872121.tif 000025
【図２５】
0003872121.tif 000026
【図２６】
0003872121.tif 000027
【図２７】
0003872121.tif 000028
【図２８】
0003872121.tif 000029
【図２９】
0003872121.tif 000030
【図３０】
0003872121.tif 000031
【図３１】
0003872121.tif 000032
【図３２】
0003872121.tif 000033
【図３３】
0003872121.tif 000034
【図３４】
0003872121.tif 000035
【図３５】
0003872121.tif 000036