(57)【特許請求の範囲】
【請求項１】
所定の演算時期において所定の制御対象の制御実行時間を演算する制御実行時間演算手段と、演算した前記制御実行時間から制御開始時期を演算し、該制御開始時期と前記演算時期との間の時間に基づいて制御カウンターのカウンター値を設定する制御カウンター値設定手段と、前記カウンター値を設定値まで減算または加算するカウント実行手段と、前記カウンター値が前記設定値に達した時に前記制御対象の制御を実行する制御実行手段を備えたエンジンの制御装置であって、前記制御実行時間演算手段による前記制御時間の演算開始から演算終了までに要した時間を計測する演算時間計測手段と、計測された前記時間に応じて前記カウンター値を補正するカウンター値補正手段を設けたことを特徴とするエンジンの制御装置。
【請求項２】
所定の演算時期において所定の制御対象の制御実行時間を演算する制御実行時間演算手段と、演算した前記制御実行時間と予め設定した制御終了時期とから制御開始時期を演算し、該制御開始時期と前記演算時期との間の時間に基づいて制御カウンターのカウンター値を設定する制御カウンター値設定手段と、前記カウンター値を設定値まで減算または加算するカウント実行手段と、前記カウンター値が前記設定値に達した時に前記制御対象の制御を実行する制御実行手段を備えたエンジンの制御装置であって、前記制御実行時間演算手段による前記制御時間の演算開始から演算終了までに要した時間を計測する演算時間計測手段と、計測された前記時間に応じて前記カウンター値を補正するカウンター値補正手段を設けたことを特徴とするエンジンの制御装置。
【請求項３】
所定の演算時期において燃料噴射時期制御の制御実行時間を演算する制御実行時間演算手段と、演算した前記制御実行時間と予め設定した制御終了時間とから制御開始時期を演算し、該制御開始時期と前記演算時期との間の時間に基づいて制御カウンターのカウンター値を設定する制御カウンター値設定手段と、前記カウンター値を設定値まで減算または加算するカウント実行手段と、前記カウンター値が前記設定値に達した時に燃料噴射時期制御を実行する制御実行手段を備えたエンジンの制御装置であって、前記制御実行時間演算手段による前記制御時間の演算中に割り込まれた他の優先処理の時間を含む演算開始から演算終了までに要した時間を計測する演算時間計測手段と、計測された前記時間に応じて前記カウンター値を補正するカウンター値補正手段と、前記演算時期において該演算時期とその時期以降の予め設定された分割噴射に関する制御時期との間の時間を推定する時間推定手段と、前記時間推定手段による推定時間に基づいて２分割噴射を実行するか否かの決定を行う２分割噴射決定手段、前記演算時間に応じて前記推定時間を補正する推定時間補正手段を設けた請求項２記載のエンジンの制御装置。
【請求項４】
前記制御対象が燃料噴射時期制御である請求項１または２記載のエンジンの制御装置。
【請求項５】
前記制御対象が点火時期制御である請求項１または２記載のエンジンの制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、燃料噴射時期制御，点火時期制御等の制御を行うエンジンの制御装置に関する。
【０００２】
【従来の技術】
エンジンの制御では、例えば燃料噴射時期制御の場合に、特開昭５９−２９７３３号公報に記載されているように、燃料噴射終了時期が所定のクランク角度となるよう要求燃料噴射時間から逆算して燃料噴射開始時期を演算するといった制御が行われている。この制御は、具体的には、例えば回転信号を基準として設定した演算時期において要求噴射量に相当する噴射時間（パルス幅）を演算し、演算した噴射時間が例えば吸気行程中に終了するよう噴射開始時期を演算して、演算時期から噴射開始時期までの時間に基づいた制御カウンター値を設定し、カウントを開始して、カウンター値が設定値に達したら噴射を実行するというものである。また、それとは別に、燃料噴射時期制御において、要求噴射量が大きくて吸気行程中に噴射を終了しない場合に、燃料噴射をリーディング噴射とトレーリング噴射に２分割することが従来から行われている。
【０００３】
【発明が解決しようとする課題】
燃料噴射時期制御は、噴射時期を制御することによって所謂リーンリミットを高めることを目的とするものであって、実噴射時期を演算した要求時期に正確に一致させることが要求される。ところが、従来の制御では、燃料噴射時期を決定する制御カウンター値の演算中にＡＴ（自動変速機）のタービンセンサの検出処理やＥＧＲ（排気ガス再循環），蒸発燃料パージ等のデューティー出力処理などの優先度の高い割り込み処理が入ると、ＣＰＵの演算に遅れが生じ、そのために、カウンター値の設定が遅れることになって、実噴射時期が要求時期よりも後ろにずれてしまい、実質燃料の供給不足が生じて失火とかの不具合が発生し所期のリーンリミットを確保できなくなるという問題があった。
【０００４】
また、分割噴射は、インジェクタによる正確な調量を確保するためにはリーディング噴射とトレーリング噴射との間に所定の休止時間を確保しなければならないので、休止可能時間を予測して、規定時間を確保できない場合にはリーディング噴射だけで要求噴射量を噴くという制御を行い、また、分割噴射はトレーリング側のタイミングで噴いただけでは吸気行程中に燃料を噴き終えることができない場合に実行するものであって、その実行判定のために吸気行程中の噴射可能時間というものを予測するが、その場合に、ＣＰＵの演算遅れが生ずると、休止可能時間および噴射可能時間の実際値が予測値よりも小さくなってしまい、そのために、インジェクタの調量にずれが生じ、あるいは燃料の実質供給量にずれが生じて、空燃比が要求値からずれることがあり、そのためにエミッション悪化等の問題が生じていた。
【０００５】
本発明は、上記問題を解決するためのものであって、燃料噴射時期制御等のエンジン制御の制御カウンター値を演算する処理の途中に他の優先処理の割り込みがあって演算遅れが生じた場合でも、実際の制御開始時期が要求時期からずれないようにすることを目的とする。
【０００６】
【課題を解決するための手段】
本発明の請求項１によるエンジンの制御装置は、図１に示すように、所定の演算時期において所定の制御対象の制御実行時間を演算する制御実行時間演算手段と、演算した前記制御実行時間から制御開始時期を演算し、該制御開始時期と前記演算時期との間の時間に基づいて制御カウンターのカウンター値を設定する制御カウンター値設定手段と、前記カウンター値を設定値まで減算または加算するカウント実行手段と、前記カウンター値が前記設定値に達した時に前記制御対象の制御を実行する制御実行手段を備えたエンジンの制御装置であって、前記制御実行時間演算手段による前記制御時間の演算開始から演算終了までに要した時間を計測する演算時間計測手段と、計測された前記時間に応じて前記カウンター値を補正するカウンター値補正手段を設けたものである。
【０００７】
また、請求項２によるエンジンの制御装置は、所定の演算時期において所定の制御対象の制御実行時間を演算する制御実行時間演算手段と、演算した前記制御実行時間と予め設定した制御終了時間とから制御開始時期を演算し、該制御開始時期と前記演算時期との間の時間に基づいて制御カウンターのカウンター値を設定する制御カウンター値設定手段と、前記カウンター値を設定値まで減算または加算するカウント実行手段と、前記カウンター値が前記設定値に達した時に前記制御対象の制御を実行する制御実行手段を備えたエンジンの制御装置であって、前記制御実行時間演算手段による前記制御時間の演算開始から演算終了までに要した時間を計測する演算時間計測手段と、計測された前記時間に応じて前記カウンター値を補正するカウンター値補正手段を設けたものである。
【０００８】
また、請求項３によるエンジンの制御装置は、図２に示すように、所定の演算時期において燃料噴射時期制御の制御実行時間を演算する制御実行時間演算手段と、演算した前記制御実行時間と予め設定した制御終了時期とから制御開始時期を演算し、該制御開始時期と前記演算時期との間の時間に基づいて制御カウンターのカウンター値を設定する制御カウンター値設定手段と、前記カウンター値を設定値まで減算または加算するカウント実行手段と、前記カウンター値が前記設定値に達した時に燃料噴射時期制御を実行する制御実行手段を備えたエンジンの制御装置であって、前記制御実行時間演算手段による前記制御時間の演算中に割り込まれた他の優先処理の時間を含む演算開始から演算終了までに要した時間を計測する演算時間計測手段と、計測された前記時間に応じて前記カウンター値を補正するカウンター値補正手段と、前記演算時期において該演算時期とその時期以降の予め設定された分割噴射に関する制御時期との間の時間を推定する時間推定手段と、前記時間推定手段による推定時間に基づいて２分割噴射を実行するか否かの決定を行う２分割噴射決定手段、前記演算時間に応じて前記推定時間を補正する推定時間補正手段を設けたものである。
【０００９】
上記構成の制御装置において、制御対象は、例えば燃料噴射時期制御であり、また、点火時期制御であり得る。
【００１０】
【作用】
本発明のエンジンの制御装置によれば、回転信号等を割り込み信号として、所定の演算時期に、燃料噴射時期制御における要求噴射パルス（噴射時間）とか、点火時期制御におけるドウエル時間（コイル通電時間）といった、制御対象の制御実行時間が演算され、演算された制御実行時間から、あるいは、この演算された制御実行時間と予め設定した制御終了時期とから、噴射開始時期とか通電開始時期といった制御開始時期が演算される。そして、演算時期から制御開始時期までの時間に基づいたカウンター値が設定され、そのカウンター値が減算または加算によって設定値に達した時をもって制御開始時期とされ、噴射時期制御とか点火時期制御といった制御対象の制御が実行される。また、その際、制御実行時間の演算に要した時間が計測されて、その計測された時間に応じてカウンター値が補正され、それにより、ＣＰＵの演算遅れによる制御開始時期のずれが防止される。
【００１１】
また、本発明の請求項３によるエンジンに制御装置によれば、所定の演算時期に、燃料噴射時期制御の制御実行時間（要求噴射パルス）が演算され、演算された制御実行時間と予め設定した制御終了時期（要求噴射終了時期）とから設定開始時期（噴射開始時期）が演算される。そして、演算時期から制御開始時期までの時間に基づいてカウンター値が設定され、そのカウンター値が減算または加算によって設定値に達した時をもって制御開始時期とされ、燃料噴射時期制御が実行される。その際、制御実行時間の演算に要した時間が計測されて、その計測された時間に応じてカウンター値が補正され、それにより、ＣＰＵの演算遅れによる制御開始時期のずれが防止される。また、前記演算時期と要求噴射終了時期等の分割噴射に関する制御時期との間の時間の推定が行われ、その推定時間に基づいて２分割噴射を実行するか否かが決定される。そして、その際に、制御実行時間の演算に要した時間の計測値に応じて前記推定時間が補正される。その結果、ＣＰＵの演算遅れによる推定時間のずれによってインジェクタ休止時間が不足して調量ずれが生じたり、トレーリング側で実際には燃料が入り切らないで空燃比がずれるといった不具合の発生が防止される。
【００１２】
【実施例】
実施例１．
図３は本発明の実施例１の全体システム図である。この実施例において、エンジン１は例えば４気筒であって、吸気通路２にはサージタンク２ａの上流部に上流側にから順に、吸入空気量を検出するエアフローセンサ３と、吸気量を調整するスロットル弁４が設けられ、サージタンク２ａの下流の独立吸気通路部には気筒毎に燃料噴射用のインジェクタ５が配設されている。また、吸気通路２にはスロットル弁４をバイパスするバイパス通路６が形成され、該バイパス通路６には電磁弁で構成されたＩＳＣ（アイドルスピードコントロール）バルブ７が配設されている。また、エンジン１の排気通路８には排気ガス浄化のための触媒装置９が設けられ、該触媒装置９の上流側には、空燃比フィードバック制御のため排気ガス中の酸素濃度からエンジンの空燃比を検出するＯ２センサ１０が配設されている。そして、エンジンの燃焼室１１には点火プラグ１２が配設され、点火プラグ１２はディストリビュータ１３を介してイグナイタ１４に接続されている。
【００１３】
上記エンジン１では、マイクロコンピュータで構成されたコントロールユニット１５により、空燃比，点火時期，アイドル回転数等の制御が行われる。そのため、コントロールユニット１５には、エアフローセンサ３から吸入空気量信号が、ディストリビュータ１３に付設されたクランク角センサおよび回転センサからクランク角信号および回転信号が情報として入力され、エンジン１に付設された水温センサ１６からエンジン水温信号が入力され、スロットル弁４に付設されたスロットルセンサからスロットル開度信号が入力され、Ｏ２センサ１０から空燃比信号が入力され、その他、車速信号等、各種信号が入力される。
【００１４】
コントロールユニット１５はこれら入力情報に基づいて燃料噴射量，点火時期，ＩＳＣ制御量等の演算を行い、インジェクタ５，イグナイタ１４およびＩＳＣバルブ７にそれぞれの制御信号を出力する。そして、空燃比の制御では、エンジン水温が所定値以上のときにマップに基づいた目標空燃比に収束するよう燃料噴射量による空燃比のフィードバック制御が行われる。また、点火時期の制御では、エンジン回転数と吸気充填量をパラメータとするマップによって点火時期が設定され、点火信号がイグナイタ１４に出力される。また、ＩＳＣの制御では、エンジン水温をパラメータとするマップによってバイパスエア量が設定されＩＳＣバルブ７が制御される。
【００１５】
また、燃料噴射時期は燃料噴射終了時期が所定のクランク角度となるよう燃料噴射開始時期が制御される。この制御は、トレーリング側のタイミングで回転信号の立ち下がりエッジを基準（演算時期）として要求噴射量に相当する噴射時間（パルス幅）を演算し、演算した噴射時間が例えば吸気行程中に終了するよう噴射開始時期を演算して、演算時期から噴射開始時期までの時間に基づいた制御カウンター値を設定し、カウントを開始して、カウンター値が設定値に達したら噴射を実行するというものである。また、要求噴射時間がトレーリング側における吸気行程中の噴射可能時間よりも大きいときには分割噴射制御となり、１サイクルにつきリーディング側とトレーリング側の２回に分けて所定タイミングで各インジェクタ５から噴射される。
【００１６】
また、燃料噴射時期制御では、制御カウンター値の演算中に他の優先度の高い割り込み処理が入ることによってＣＰＵの演算に遅れが生じた場合でも、実噴射時期が要求時期からずれることがなくて所期のリーンリミットを確保できるよう、ＣＰＵの演算遅れに応じて制御カウンター値を補正している。
【００１７】
また、リーディング噴射とトレーリング噴射との間に所定の休止時間を確保できるよう、休止可能時間を予測して、規定時間を確保できない場合には分割噴射を行わず、リーディング噴射だけで要求噴射量を噴くという制御を行っている。そして、その休止可能時間の予測に際しても上記ＣＰＵの演算遅れに応じた補正を行うことで、インジェクタの休止時間が足りないことによる調量ずれの発生を防止している。
【００１８】
また、分割噴射実行の判定のため上記のように吸気行程中の噴射可能時間というものを予測するが、その際に、ＣＰＵの演算遅れに応じて予測値を補正することで、実噴射時間が噴射可能時間からずれるのを防止している。
【００１９】
図４は上記燃料噴射時期制御を実行するＣＰＵのハード構成を示している。図において、２１は、ＣＰＵの動作クロックに応じた値でカウントを実行するＦＲＣ（フリー・ランニング・カウンター）であり、２２は、割り込み信号が入ってきたときにＦＲＣの値を読み込んで記憶保持するＩＣＲ（インプット・キャプチャ・レジスタ）であり、２３は、噴射開始時期の演算値を記憶保持するＯＣＲ（アウトプット・コンペア・レジスタ）であり、２４はＦＲＣ２１の出力（ＦＲＣ）とＯＣＲ２３の出力（ＯＣＲ）を比較し、ＦＲＣとＯＣＲが一致したときに０（ゼロ）のＯＬＶＬ（アウトプットレベル）２５をインジェクタ５に出力する比較器である。
【００２０】
つぎに、図５および図６のタイムチャートと、図７〜図９に示すフローチャートを参照して上記燃料噴射時期制御を具体的に説明する。
【００２１】
燃料噴射時期制御は、図５に示すＳＧＴ（回転信号）の立ち下がりエッジを割り込み信号としてスタートする。すなわち、この割り込み信号がくると、割り込み要因１が発生し、図７〜図８のフローチャートにおいて、まず、Ｓ（ステップ）１０１で現在（演算時期）の時刻ｔ1をＩＣＲに保持する。
【００２２】
つぎに、気筒判別のステップに移り、まず、Ｓ１０２で気筒判別用カウント値Ｃをカウトアップする。そして、Ｓ１０３でＣが所定値ηより大かどうかを見て、Ｃ≦ηならそのままで、Ｃ＞ηになったらＳ１０４でＣを０に戻し、Ｓ１０５へ進む。そして、Ｓ１０５でＣの値に応じて気筒判別を行う。
【００２３】
つぎに、燃料噴射量演算のステップに入り、まず、Ｓ１０６で吸入空気量をエンジン回転数で割って吸気充填効率Ｃｅを求める。そして、Ｓ１０７でＣｅに予測係数ｒｖｅｆを掛けて予測充填効率Ｃｅｆを求め、Ｓ１０８でＣｅｆに定数Ｋ１を掛けて要求噴射量ｔａを求め、Ｓ１０９へ進む。
【００２４】
Ｓ１０９では、Ｓ１０８で求めた要求噴射量ｔａから、その気筒Ｘ（Ｘ＝１〜４）の同じサイクルでリーディング噴射した量ｔｅｌ［ＸＴ］を引いて、その値ないしは０（ゼロ）の大きい方をトレーリング噴射量（要求量）ｔｅｔ［ＸＴ］とする。そして、Ｓ１１０でｔｅｔ［ＸＴ］にインジェクタの無効噴射時間ｔｖを加えたものをトレーリング噴射パルスｔｉｔとする。但し、ｔｅｔ［ＸＴ］＝０のときはｔｉｔ＝０とする。そして、Ｓ１１１に進む。
【００２５】
Ｓ１１１では、演算時期ｔ1から吸気行程中に噴射を終了するための要求噴射終了角ｔｈｅｄまでの時間Ｔｔを求める。具体的には、クランク角１８０度に相当する時間をｔｓｇｔとして、Ｔｔ＝（ｔｈｅｄ／１８０）×ｔｓｇｔとする。そして、Ｓ１１２で、演算が終了した時点のＦＲＣを見て、その値を現在時刻ｔ2とし、Ｓ１１３へ進んで、現在時刻ｔ2からトレーリング噴射開始時期までの時間ｔｍを設定する。ここで、ｔｍは、上記Ｔｔからまずトレーリング噴射パルスの要求値ｔｉｔを引き、さらに、処理に入った時刻ｔ1と現在時刻ｔ2との差を引く形でＣＰＵの遅れ時間による補正を加えた値を所定値αを上限として設定する。そして、Ｓ１１４でトレーリング噴射を実行するためのアウトプットレベルＯＬＶＬ［ＸＴ］を、インジェクタをオンするための値０（ゼロ）とする処理を行う。そして、Ｓ１１５で、トレーリング噴射開始時期設定の制御カウンター値ＯＣＲ［ＸＴ］＝０をＯＣＲ２３に入れる。
【００２６】
以上でトレーリング噴射のためのカウンター値設定までの処理が完了する。
【００２７】
つぎに、Ｓ１１６では、分割噴射を実行した場合のインジェクタ休止可能時間τRSTを推定する。ここで、τRSTは、リーディング側の処置開始時期から要求噴射終了角ｔｈｅｄまでの時間を（１８０＋ｔｈｅｄ）×ｔｓｇｔ／１８０で求めて、この時間から要求噴射量（時間）ｔａを引き、さらに、インジェクタの無効噴射時間ｔｖと、ＣＰＵの遅れ時間（ｔ2−ｔ1）に調整係数β1を加えたものをリーディング側とトレーリング側について１回ずつで計２回引いた値とする。
【００２８】
つぎに、Ｓ１１７でこの推定した休止可能時間τRSTがインジェクタの規格から決まる設定値τRST0より大きいか否かを判定する。そしてτRST＞τRST0のときはＳ１１８へ進む。
【００２９】
Ｓ１１８では、トレーリング側での吸気行程噴射可能時間ｔａｐｏｓｔを推定する。ここで、ｔａｐｏｓｔは、上記Ｔｔから、ＣＰＵの遅れ時間（ｔ2−ｔ1）に調整係数β2を加えたものを引いた値とする。
【００３０】
つぎに、Ｓ１１９で推定した上記ｔａｐｏｓｔよりも要求噴射量ｔａが大きいか否かを判定する。そして、ｔａｐｏｓｔ＜ｔａのときは、分割噴射を実行するということで、Ｓ１２０へ進み、トレーリング側で噴き切れない分（ｔａ−ｔａｐｏｓｔ）をリーディング噴射要求量ｔｅｌ［ＸＬ］とする。そして、Ｓ１２１でｔｅｌ［ＸＬ］に無効噴射時間ｔｖを加えてリーディング噴射パルスｔｉｌを設定し、Ｓ１２２でリーディング噴射を実行するためのアウトプットレベルＯＬＶＬ［ＸＬ］を、インジェクタをオンとするための値０（ゼロ）とする処理を行い、また、Ｓ１２３で、リーディング噴射開始時期設定の制御カウンター値ＯＣＲ［ＸＬ］＝αをＯＣＲ２３に入れる。ここで、ＯＣＲ［ＸＬ］＝αは、即噴射実行を意味する。
【００３１】
また、Ｓ１１９でｔａｐｏｓｔ≧ｔａというときは、トレーリング噴射だけで十分であるので、Ｓ１２４でリーディング噴射要求量ｔｅｌ［ＸＬ］を０（ゼロ）とし、Ｓ１２５でリーディング噴射パルスｔｉｌを０（ゼロ）とする。
【００３２】
また、Ｓ１１７でτRST≦τRST0というときは、休止時間が足りないということで、リーディング噴射だけで全要求量を噴射するため、Ｓ１２６でリーディング噴射要求量ｔｅｌ［ＸＬ］＝ｔａとし、Ｓ１２１〜Ｓ１２３と進む。
【００３３】
割り込み要因１による処理が進み、時間が経過して各気筒Ｘ（Ｘ＝１〜４）についてのＯＣＲ２３およびＦＲＣ［Ｘ］の値であるＯＣＲ［Ｘ］とＦＲＣ［Ｘ］とが一致するタイミングになると、ハードとしてはＯＬＶＬ＝０がインジェクタ５に出力されて噴射が実行され、同時に割り込み要因２が発生して、図９のフローチャートによる処理が行われる。
【００３４】
割り込み要因２の処理では、まず、ステップＳ２０１で各気筒のアウトプットレベルＯＬＶＬ［Ｘ］を見て、ＯＬＶＬ［Ｘ］が０でなければなにもしないが、ＯＬＶＬ［Ｘ］が０（ゼロ）であれば、インジェクタがオンしているということであるから、今度はインジェクタ５をオフする処理をする。そのため、まず、Ｓ２０２でトレーリング噴射パルスｔｉｔがでているかどうかを見て、ｔｉｔがでていなければ、Ｓ２０３でリーディング噴射パルスｔｉｌがでているかどうかを見る。
【００３５】
ｔｉｌがでていればリーディング噴射について、また、ｔｉｔがでていればトレーリング噴射についてＳ２０４でＯＬＶＬ＝１（噴射停止）を入れ、Ｓ２０５でその気筒のＯＣＲ２３の値ＯＣＲ［Ｘ］をセットする。ここでは、ｔｉｌとｔｉｔの大きい方に現在のＦＲＣを加えた値と所定値αとを比較して小さい方の値をＯＣＲ［Ｘ］とする。そして、この処理が終わったらＳ２０６でｔｉｌとｔｉｔをいずれも０（ゼロ）に戻しておく。
【００３６】
図６に上記実施例１におけるリーディング噴射パルス，演算時間カウンタ（計測値），噴射開始タイマー（制御カウンター値）およびトレーリング噴射パルスの一例をタイムチャートで示す。
【００３７】
実施例２．
つぎに、点火時期制御に適用した実施例２を図１０〜図１３によって説明する。この実施例２も全体システムは先の実施例１と同様である。また、この場合のＣＰＵのハード構成は図１０に示す通りで、実施例１の場合と同様にＦＲＣ２１とＩＣＲ２２とＯＣＲ２３と比較器２４とからなり、比較器２４においてＦＲＣ２１の出力（ＦＲＣ）をＯＣＲ２３の出力（ＯＣＲ）を比較し、ＦＲＣとＯＣＲが一致したときに０（ゼロ）のＯＬＶＬ（アウトプットレベル）２５をイグナイタ１４に出力するよう構成されている。
【００３８】
図１１はこの実施例２の点火時期制御を示すタイムチャートであり、図１２および図１３はその制御を実行するフローチャートである。
【００３９】
点火時期制御は、図１１に示すＳＧＴの立ち上がりエッジを割り込み信号としてスタートする。すなわち、この割り込み信号がくると、割り込み要因１が発生したとして、図１２のフローチャートにおいてＳ（ステップ）３０１で現在（演算時期）の時刻ｔ1をＩＣＲに保持する。
【００４０】
つぎに、Ｓ３０２でエンジン回転数Ｎｅと吸気充填効率Ｃｅを入力し、次いで、Ｓ３０３でエンジン回転数Ｎｅとバッテリ電圧Ｖｂのマップからドウエル時間（コイル通電時間）ｔｄｗｌを求め、また、Ｓ３０４でエンジン回転数Ｎｅと充填効率ＣｅのマップからＴＤＣ（上死点）基準の目標点火時期ｔｈｔｉｇを求める。
【００４１】
つぎに、Ｓ３０５で、上記演算が終了した時点のＦＲＣを見て、その値を現在時刻ｔ２とする。そして、Ｓ３０６へ進んで、現在時刻ｔ２から目標点火時期ｔｈｔｉｇまでの時間を制御カウンター値ｔｉｇｌとして設定する。ここで、ｔｉｇｌは、ＳＧＴの信号巾がクランク角７０度でその立ち下がりエッジがＢＴＤＣ７度である場合に、クランク角１８０度に相当する時間をｔｓｇｔとして、｛（７７−ｔｈｔｉｇ）／１８０｝×ｔｓｇｔからドウエル時間ｔｄｗｌおよびＣＰＵの遅れ時間（ｔ2−ｔ1）を引いた値とし、所定値αを上限として設定する。そして、Ｓ３０７で、アウトプットレベルＯＬＶＬを点火を実行するための値０（ゼロ）とする処理を行い、Ｓ３０８で、制御カウンター値ｔｉｇｌに現在のＦＲＣを加えた値をＯＣＲ２３に入れる。
【００４２】
割り込み要因１による処理が進み、時間が経過して各気筒のＯＣＲ２３およびＦＲＣ［Ｘ］の値であるＯＣＲ［Ｘ］とＦＲＣ［Ｘ］とが一致するタイミングになると、ハードとしてはＯＬＶＬ＝０がイグナイタ１４に出力され、同時に割り込み要因２が発生して、図１３のフローチャートによる処理が行われる。
【００４３】
割り込み要因２の処理では、まず、ステップＳ４０１でアウトプットレベルＯＬＶＬを見て、ＯＬＶＬが０でなければなにもしないが、ＯＬＶＬが０（ゼロ）であれば、イグナイタ１４がオンしているということであるから、今度はイグナイタ１４をオフする処理ということで、Ｓ４０２でＯＬＶＬ＝１（通電停止）を入れ、Ｓ４０３でＯＣＲをセットする。ここでは、ＦＲＣにｔｄｗｌを加えた値を所定値αを上限としてＯＣＲとする。
【００４４】
なお、本発明は上記実施例に限定されるものではなく、また、燃料噴射時期制御，点火時期制御以外の他のエンジン制御にも適用できることは勿論である。
【００４５】
【発明の効果】
本発明のエンジンの制御装置は以上のように構成されているので、エンジンの各種制御において、制御実行時間の演算に要した時間に応じて制御カウンター値を補正することにより、他の優先処理の割り込みによる演算遅れによって制御開始時期がずれるのを防止するようにできる。
【００４６】
また、本発明のエンジンに制御装置によれば、燃料噴射時期制御において、他の優先処理の割り込みによる制御開始時期のずれを防止してリーンリミットの低下を防止するとともに、分割噴射実行の判定条件となる推定時間についても、制御実行時間の演算に要した時間に応じてこれを補正することにより、演算遅れによるずれによってトレーリング側で実燃料供給量が少なくなり空燃比がずれるといった不具合を防止できる。
【図面の簡単な説明】
【図１】  本発明の請求項１，２，４および５に係るエンジンの制御装置の全体構成図
【図２】  本発明の請求項３に係るエンジンの制御装置の全体構成図
【図３】  本発明の実施例１の全体システム図
【図４】  本発明の実施例１におけるＣＰＵのハード構成図
【図５】  本発明の実施例１における燃料噴射時期制御を説明するタイムチャート
【図６】  本発明の実施例１における分割噴射の一例を示すタイムチャート
【図７】  本発明の実施例１における燃料噴射時期制御の割り込み要因１によるフローチャート（前段）
【図８】  本発明の実施例１における燃料噴射時期制御の割り込み要因１によるフローチャート（後段）
【図９】  本発明の実施例１における燃料噴射時期制御の割り込み要因２によるフローチャート
【図１０】  本発明の実施例２におけるＣＰＵのハード構成図
【図１１】  本発明の実施例２における点火時期制御を説明するタイムチャート
【図１２】  本発明の実施例２における点火時期制御の割り込み要因１によるフローチャート
【図１３】  本発明の実施例２における点火時期制御の割り込み要因２によるフローチャート
【符号の説明】
１  エンジン
５  インジェクタ
１２  点火プラグ
１４  イグナイタ
１５  コントロールユニット
２１  ＦＲＣ（フリー・ランニング・カウンター）
２２  ＩＣＲ（インプット・キャプチャ・レジスタ）
２３  ＯＣＲ（アウトプット・コンペア・レジスタ）
２４  比較器
２５  ＯＬＶＬ（アウトプットレベル）
【図１】
0003727671.tif 000002
【図２】
0003727671.tif 000003
【図３】
0003727671.tif 000004
【図４】
0003727671.tif 000005
【図５】
0003727671.tif 000006
【図６】
0003727671.tif 000007
【図７】
0003727671.tif 000008
【図８】
0003727671.tif 000009
【図９】
0003727671.tif 000010
【図１０】
0003727671.tif 000011
【図１１】
0003727671.tif 000012
【図１２】
0003727671.tif 000013
【図１３】
0003727671.tif 000014