(57)【特許請求の範囲】
【請求項１】
高圧ポンプ（１１）から圧送される燃料を蓄える貯留部（２１）と、
前記貯留部から供給される燃料を内燃機関（３）の気筒に噴射する燃料噴射弁（２３）と、
前記燃料噴射弁に供給される燃料の圧力である燃圧を検出して、該燃圧を表すセンサ信号を出力する燃圧センサ（２５）と、
を備える燃料噴射システム（１）に用いられ、前記燃料噴射弁を駆動することで燃料噴射制御を行う燃料噴射制御装置において、
前記燃料噴射弁の駆動開始タイミングを算出する第１算出手段（３１，５６）と、
前記センサ信号を読み取ることで前記燃圧を取得し、前記第１算出手段により算出される駆動開始タイミングからの前記燃料噴射弁の駆動時間を、前記取得した燃圧に基づいて算出する第２算出手段（３１，Ｓ２１０〜Ｓ２４０）と、
前記第１算出手段により算出された駆動開始タイミングから、前記第２算出手段により算出された最新の駆動時間が経過するまでの間、前記燃料噴射弁を駆動する駆動手段（３５）と、
前記第１算出手段により算出された駆動開始タイミングからみて所定の期間だけ前のタイミングから、特定のタイミングまでの許可期間においてだけ、前記第２算出手段を作動させる算出制御手段（３１，Ｓ１１０〜Ｓ１４０，Ｓ３１０〜Ｓ３４０，Ｓ４１０，Ｓ４２０）と、を備え、
前記算出制御手段は、
前記許可期間の開始タイミングにおいて前記第２算出手段を作動させる第１制御手段（３１，Ｓ１１０〜Ｓ１４０）と、
前記第１制御手段が前記第２算出手段を作動させてから前記許可期間の終了時まで、前記第２算出手段を定期的なタイミングが到来する毎に作動させる第２制御手段（３１，Ｓ３１０〜Ｓ３４０，Ｓ４１０，Ｓ４２０）と、を備えること、
を特徴とする燃料噴射制御装置。
【請求項２】
請求項１に記載の燃料噴射制御装置において、
前記許可期間の開始タイミングは、そのタイミングから前記駆動開始タイミングが到来するまでに、前記第２算出手段による前記駆動時間の算出を少なくとも１回は完了することが可能なタイミングであること、
を特徴とする燃料噴射制御装置。
【請求項３】
請求項１又は請求項２に記載の燃料噴射制御装置において、
前記第２制御手段は、
前記許可期間において、前記定期的なタイミングが到来する毎に、前記高圧ポンプが前記燃料を圧送しているか否かを判定し、前記高圧ポンプが前記燃料を圧送していると判定した場合には、前記第２算出手段を作動させ、前記高圧ポンプが前記燃料を圧送していないと判定した場合には、前記第２算出手段を作動させることを止めること（Ｓ３１５，Ｓ３２０）、
を特徴とする燃料噴射制御装置。
【請求項４】
請求項３に記載の燃料噴射制御装置において、
前記第２制御手段は、
前記高圧ポンプが前記燃料を圧送していないと判定した場合であっても、前回の前記定期的なタイミングにおいて前記高圧ポンプが前記燃料を圧送していると判定していれば、前記第２算出手段を作動させること（３１，Ｓ３１５〜Ｓ３４０）、
を特徴とする燃料噴射制御装置。
【請求項５】
請求項１ないし請求項４の何れか１項に記載の燃料噴射制御装置において、
前記許可期間の開始タイミングを、前記内燃機関の回転数に応じて、該回転数が高いほど、早くなるように変更する変更手段（３１）、を備えること、
を特徴とする燃料噴射制御装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載の燃料噴射制御装置において、
前記特定のタイミングは、前記算出された駆動開始タイミングであること、
を特徴とする燃料噴射制御装置。
【請求項７】
請求項１ないし請求項５の何れか１項に記載の燃料噴射制御装置において、
前記特定のタイミングは、前記駆動手段が前記燃料噴射弁の駆動を終了したタイミングであること、
を特徴とする燃料噴射制御装置。
【請求項８】
高圧ポンプ（１１）から圧送される燃料を蓄える貯留部（２１）と、
前記貯留部から供給される燃料を内燃機関（３）の気筒に噴射する燃料噴射弁（２３）と、
前記燃料噴射弁に供給される燃料の圧力である燃圧を検出して、該燃圧を表すセンサ信号を出力する燃圧センサ（２５）と、
を備える燃料噴射システム（１）に用いられ、前記燃料噴射弁を駆動することで燃料噴射制御を行う燃料噴射制御装置において、
前記燃料噴射弁の駆動開始タイミングを算出する第１算出手段（３１，５６）と、
前記センサ信号を読み取ることで前記燃圧を取得し、前記第１算出手段により算出される駆動開始タイミングからの前記燃料噴射弁の駆動時間を、前記取得した燃圧に基づいて算出する第２算出手段（３１，Ｓ２１０〜Ｓ２４０）と、
前記第１算出手段により算出された駆動開始タイミングから、前記第２算出手段により算出された最新の駆動時間が経過するまでの間、前記燃料噴射弁を駆動する駆動手段（３５）と、
前記第１算出手段により算出された駆動開始タイミングからみて所定の期間だけ前のタイミングから、特定のタイミングまでの許可期間においてだけ、前記第２算出手段を作動させる算出制御手段（３１，Ｓ１１０〜Ｓ１４０，Ｓ３１０〜Ｓ３４０，Ｓ４１０，Ｓ４２０）と、
前記許可期間の開始タイミングを、前記内燃機関の回転数に応じて、該回転数が高いほど、早くなるように変更する変更手段（３１）と、を備えること、
を特徴とする燃料噴射制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料噴射制御装置に関する。
【背景技術】
【０００２】
内燃機関の気筒への燃料噴射量を精度良く制御するための技術として、特許文献１に記載の技術がある。
特許文献１に記載の技術では、高圧ポンプから圧送されて燃料噴射弁に供給される燃料の圧力（以下、燃圧という）を、各気筒の燃料噴射期間中に取得する。そして、各気筒について、次回以降の燃料噴射時における燃圧を、同じ気筒について取得した過去の燃圧に基づいて予測し、その予測値に基づいて燃料噴射弁の駆動時間（つまり、燃料噴射弁に燃料を噴射させる噴射時間）を設定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２４８７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記技術は、燃料噴射弁の駆動時間（以下、噴射時間ともいう）を決定するための燃圧を、過去の燃料噴射時の燃圧から予測するため、ある気筒の燃料噴射時の燃圧が、前回から大きく変わる状況（以下、過渡状況という）では、燃料噴射量の制御精度が低下する。
【０００５】
例えば、ある気筒への燃料噴射後に、高圧ポンプによって燃圧を増加させる燃圧増加制御が開始されたとすると、その気筒の次回の燃料噴射時における燃圧は、前回の燃料噴射時における燃圧とは大きく異なることとなる。よって、その場合には、燃圧の予測値が実際の燃圧から大きく乖離してしまい、その結果、設定される噴射時間が、目標の燃料噴射量を実現するための噴射時間から大きくずれてしまう。
【０００６】
また例えば、内燃機関が可変バルブタイミング機構を備えたものである場合には、その可変バルブタイミング機構が作動することにより、同じ気筒であっても、燃料噴射期間と高圧ポンプによる燃料の圧送期間との相対関係（位相）が変動する。このため、燃圧増加制御が実施されていなくても、可変バルブタイミング機構が作動することにより、ある気筒の前回の燃料噴射時における燃圧と、次回の燃料噴射時における燃圧とが大きく異なる状況が生じる。よって、その場合にも、燃圧の予測値が実際の燃圧から大きく乖離してしまい、その結果、設定される噴射時間が、目標の燃料噴射量を実現するための噴射時間から大きくずれてしまう。
【０００７】
なお、このような過渡状況における燃料噴射量の制御精度低下を回避するために、例えば、今回の燃料噴射期間中に取得した燃圧を、今回の噴射時間を算出するのに用いることが考えられる。しかし、単にそのようにしたのでは、燃料噴射の終了時までに噴射時間の算出を確実に完了させる、ということを保証するのが困難となる。一方例えば、燃圧を取得して噴射時間を算出する演算処理を、単に定期的に行う方法もある。しかし、燃料噴射の開始時にできるだけ近い時の燃圧を取得して、その燃圧に基づき噴射時間を算出することにより、燃料噴射量の制御精度を向上させるためには、演算処理の実行頻度を増大させる必要があり、処理負荷が過大になってしまう。
【０００８】
そこで、本発明は、燃料噴射制御装置において、燃料噴射量の制御精度の向上を、処理負荷を軽減しつつ実現することを目的としている。
【課題を解決するための手段】
【０００９】
第１発明の燃料噴射制御装置が用いられる燃料噴射システムは、高圧ポンプから圧送される燃料を蓄える貯留部と、貯留部から供給される燃料を内燃機関の気筒に噴射する燃料噴射弁と、燃料噴射弁に供給される燃料の圧力である燃圧を検出して、該燃圧を表すセンサ信号を出力する燃圧センサと、を備える。
【００１０】
第１発明の燃料噴射制御装置は、前記燃料噴射弁を駆動することで燃料噴射制御を行う装置であり、第１算出手段と、第２算出手段と、駆動手段と、算出制御手段と、を備える。
【００１１】
第１算出手段は、燃料噴射弁の駆動開始タイミングを算出する。第２算出手段は、燃圧センサが出力するセンサ信号を読み取ることで燃圧を取得し、第１算出手段により算出される駆動開始タイミングからの燃料噴射弁の駆動時間を、取得した燃圧に基づいて算出する。駆動手段は、第１算出手段により算出された駆動開始タイミングから、第２算出手段により算出された最新の駆動時間が経過するまでの間、燃料噴射弁を駆動する。
【００１２】
そして、算出制御手段は、第１算出手段により算出された駆動開始タイミングからみて所定の期間だけ前のタイミングから、特定のタイミングまでの許可期間においてだけ、第２算出手段を作動させる。
【００１３】
第１発明の燃料噴射制御装置では、算出制御手段を備えるため、燃料噴射弁の駆動開始タイミング（つまり、燃料噴射の開始タイミング）の直前における燃圧に基づいて、その回の燃料噴射における燃料噴射弁の駆動時間（つまり、噴射時間）を算出することができる。よって、今回の噴射時間を今回の燃圧に基づいて算出することとなり、前述した過渡状況においても、燃料噴射量の制御精度が低下することがない。また、高圧ポンプのプランジャを往復運動させるカム山の数と内燃機関の気筒数とが異なる場合等、気筒毎の噴射時における燃圧に差がある場合でも、燃料噴射量の制御精度が低下することがない。
【００１４】
更に、第２算出手段は、前記許可期間においてだけ作動するため、燃圧の取得及び駆動時間（噴射時間）の算出のための処理負荷を軽減することができる。よって、燃料噴射量の制御精度の向上を、処理負荷を軽減しつつ実現することができる。
【００１５】
また、前記許可期間の開始タイミング（即ち、駆動開始タイミングからみて所定の期間だけ前のタイミング）を、適宜決定することで、燃料噴射の開始前に噴射時間の算出を確実に完了させることができる。
【００１６】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態の燃料噴射システムを表す構成図である。
【図２】燃圧、燃料の圧送期間、及び各気筒の噴射期間を表す説明図である。
【図３】第１実施形態の燃料噴射制御装置におけるソフトウェアの機能を説明する説明図である。
【図４】第１実施形態における更新開始判定タスクを表すフローチャートである。
【図５】第１実施形態における噴射パルス幅算出モジュールの処理を表すフローチャートである。
【図６】第１実施形態における定期タスクを表すフローチャートである。
【図７】第１実施形態における噴射パルスオン割り込みの処理を表すフローチャートである。
【図８】第１実施形態の作用を説明する説明図である。
【図９】高圧ポンプの燃圧増加制御に伴う過渡状況を説明する説明図である。
【図１０】可変バルブタイミング機構の作動に伴う過渡状況を説明する説明図である。
【図１１】比較例の説明図である。
【図１２】第２実施形態における圧送開始時割り込みの処理を表すフローチャートである。
【図１３】第２実施形態における圧送終了時割り込みの処理を表すフローチャートである。
【図１４】第２実施形態における定期タスクを表すフローチャートである。
【図１５】第２実施形態の作用を説明する説明図である。
【図１６】第３実施形態における定期タスクを表すフローチャートである。
【図１７】第３実施形態における噴射パルスオン割り込みの処理を表すフローチャートである。
【図１８】第３実施形態の作用を説明する説明図である。
【発明を実施するための形態】
【００１８】
以下に、本発明が適用された実施形態の燃料噴射システムについて説明する。
［第１実施形態］
図１に示すように、第１実施形態の燃料噴射システム１は、例えば車両（自動車）に搭載されたエンジン（内燃機関）３の各気筒への燃料噴射（以下単に、噴射ともいう）を実施するシステムである。エンジン３の気筒数は４であるものとして説明する。
【００１９】
図１に示すように、燃料噴射システム１では、車両の燃料タンク５から低圧ポンプ７によって燃料が汲み上げられ、その汲み上げられた燃料は、燃料配管９を通して、高圧ポンプ１１に供給される。
【００２０】
高圧ポンプ１１は、内部に設けられているポンプ室（ポンプシリンダ）内でプランジャ（ピストン）が往復運動することで燃料を吸入／吐出するものであり、この例ではエンジン３に取り付けられている。
【００２１】
高圧ポンプ１１のプランジャは、エンジン３のカム軸１３によって回転されるカム１５により、上記ポンプ室内で往復運動するように駆動される。
高圧ポンプ１１は、当該高圧ポンプ１１の燃料吐出量（以下単に、吐出量ともいう）を制御するための電磁弁である調量弁１７を備えている。調量弁１７は、例えば、通電により（詳しくはコイルへの通電により）閉弁する常開型電磁弁である。
【００２２】
そして、高圧ポンプ１１の吸入行程（プランジャの下降時）においては、調量弁１７が開弁していることで、燃料タンク５からの燃料がポンプ室内に吸入され、高圧ポンプ１１の加圧行程（プランジャの上昇時）においては、調量弁１７が通電駆動されて閉弁することで、ポンプ室内の燃料が吐出される。
【００２３】
このため、高圧ポンプ１１の加圧行程における調量弁１７への通電時間（閉弁時間）を制御することで、高圧ポンプ１１からの燃料吐出量を制御することができる。この例において、調量弁１７が閉弁する期間は、高圧ポンプ１１による燃料の圧送期間（以下、燃料圧送期間ともいう）であり、その期間を長くすれば、燃料吐出量が多くなる。
【００２４】
高圧ポンプ１１から吐出される燃料（加圧燃料）は、高圧燃料配管１９を通して燃料分配管（いわゆるフューエルデリバリパイプ）２１に送られる。燃料分配管２１は、高圧ポンプ１１から圧送される燃料を蓄える貯留部として機能する。そして、エンジン３の各気筒に設けられている燃料噴射弁としてのインジェクタ２３に、その燃料分配管２１から燃料が供給される。尚、図１及び後述の図３では、インジェクタ２３を１つだけ図示している。
【００２５】
インジェクタ２３は、駆動により開弁して、燃料分配管２１から供給される燃料を自身に対応する気筒に噴射する。インジェクタ２３は、例えば、内蔵されたコイルへの通電によって開弁する電磁式のインジェクタであるが、他のタイプのインジェクタ（例えば、内蔵されたピエゾアクチュエータへの充電によって開弁するタイプのインジェクタ）であっても良い。
【００２６】
また、燃料分配管２１には、その燃料分配管２１内の燃料圧力（インジェクタ２３に供給される燃料の圧力でもあり、以下、燃圧ともいう）を検出するための燃圧センサ２５が設けられている。燃圧センサ２５は、例えば、検出対象の燃圧に応じた電圧のアナログ信号をセンサ信号として出力する。
【００２７】
そして、燃料噴射システム１は、高圧ポンプ１１及びインジェクタ２３を制御する燃料噴射制御装置としての電子制御装置（以下、ＥＣＵという）２７と、ＥＣＵ２７から出力される気筒毎の噴射パルスに従って各気筒のインジェクタ２３を駆動する電子駆動装置（以下、ＥＤＵという）２９と、を備える。
【００２８】
噴射パルスは、例えばハイアクティブの信号である。噴射パルスを出力する、ということは、噴射パルスをアクティブレベル（この例ではハイ）にする、ということである。そして、ＥＤＵ２９は、何れかの気筒の噴射パルスが出力されている間、その噴射パルスに対応する気筒のインジェクタ２３を駆動する（開弁させる）。
【００２９】
ＥＣＵ２７は、当該ＥＣＵ２７の動作を司るマイコン（マイクロコンピュータ）３０を備える。マイコン３０は、プログラムを実行するＣＰＵ３１と、ＣＰＵ３１によって実行されるプログラムやプログラムの実行時に参照されるデータ等が記憶されたＲＯＭ３２と、ＣＰＵ３１による演算結果等が記憶されるＲＡＭ３３と、Ａ／Ｄ変換器（ＡＤＣ）３４と、噴射パルスを出力するためのタイマ３５と、を備える。
【００３０】
タイマ３５は、各気筒について、噴射パルスの出力開始タイミングである噴射パルス出力タイミングと、そのタイミングからの噴射パルスの出力継続時間である噴射パルス幅とがセットされる。噴射パルス出力タイミングは、換言すれば、インジェクタ２３の駆動開始タイミングであり、噴射開始タイミングである。本実施形態において、噴射パルス出力タイミングとしては、クランク角度が用いられるが、時刻が用いられても良い。また、噴射パルス幅は、換言すれば、インジェクタ２３の駆動時間であり、噴射時間である。
【００３１】
そして、タイマ３５は、各気筒について、セットされた噴射パルス出力タイミングが到来すると、噴射パルスの出力を開始し、その時点から、セットされた噴射パルス幅が経過すると、噴射パルスの出力を終了する（つまり、噴射パルスをローにする）。
【００３２】
また、タイマ３５は、セットされた最新の噴射パルス幅に従って噴射パルスを出力する。このため、タイマ３５は、噴射パルスの出力中において、セットされる噴射パルス幅が更新された場合には、その更新後の噴射パルス幅に従って噴射パルスを出力する。例えば、タイマ３５は、噴射パルスの出力開始時からの経過時間が、更新後の噴射パルス幅に未だ達していなければ、噴射パルスの出力開始時から更新後の噴射パルス幅が経過するまで噴射パルスを出力し続ける。また、タイマ３５は、噴射パルスの出力開始時からの経過時間が、更新後の噴射パルス幅を超えていたなら、即座に噴射パルスの出力を止める。
【００３３】
タイマ３５によって噴射パルスが出力されるとインジェクタ２３が駆動されるため、タイマ３５は、セットされた噴射パルス出力タイミングから、セットされた最新の噴射パルス幅が経過するまでの間、インジェクタ２３を駆動する手段として機能することとなる。
【００３４】
また、図示は省略しているが、ＥＣＵ２７は、ＥＣＵ２７の外部からの信号をマイコン３０に入力させるための入力回路や、マイコン３０から出力される信号を当該ＥＣＵ２７の外部へ出力するための出力回路等も備える。
【００３５】
上記出力回路は、マイコン３０からのポンプ駆動信号に応じて、高圧ポンプ１１の調量弁１７に該調量弁１７を閉弁させるための駆動電流を出力したり、マイコン３０からの噴射パルスをＥＤＵ２９に出力したりする。尚、調量弁１７の駆動も、ＥＤＵ２９を介して実施されるように構成しても良い。
【００３６】
上記入力回路は、燃圧センサ２５からのセンサ信号や他の信号を、マイコン３０に入力させる。他の信号としては、例えば、エンジン３のクランク角度を検出するためのクランク角センサからの信号や、エンジン３の冷却水温を検出する水温センサからの信号や、エンジン３への吸気量を検出する吸気量センサからの信号や、車両の運転者によるアクセルペダルの操作量を検出するアクセルセンサからの信号等がある。それらの信号は、エンジン３の運転状態を表す信号であり、エンジン３の制御に使用される。
【００３７】
尚、図１において、符号「４１」はエンジン３の吸気弁であり、符号「４２」はエンジン３の排気弁であり、符号「４３」はエンジン３のシリンダであり、符号「４４」はエンジン３のピストンであり、符号「４５」は点火プラグである。また、ＥＣＵ２７は、点火プラグ４５による点火時期の制御も実施するが、発明とは直接関係がないため、説明を省略する。
【００３８】
一方、本実施形態では、図２に示すように、高圧ポンプ１１を駆動する（詳しくは、高圧ポンプ１１のプランジャを往復運動させる）カム１５の山の数（この例では３）と、エンジン３の気筒数（この例では４）とは異なっている。
【００３９】
図２において、「燃圧」の段（１段目）の波形は、燃圧センサ２５によって検出される燃圧を表しており、「高圧ポンプ」の段（２段目）の三角波形は、高圧ポンプ１１のプランジャのリフト量を表している。また、「高圧ポンプ」の段において、斜線を付した矢印の期間は、高圧ポンプ１１による燃料の圧送期間（調量弁１７の閉弁期間）を表している。また、図２において、「気筒＃１」〜「気筒＃４」の各段は、各気筒＃１〜＃４の周期における各行程（吸気、圧縮、燃焼、排気）を表しており、白抜き矢印の期間は、各気筒＃１〜＃４の噴射期間（各インジェクタ２３の駆動期間）を表している。そして、これらのことは、後述する他の図についても同様である。
【００４０】
次に、ＥＣＵ２７におけるソフトウェア（詳しくは、マイコン３０のＣＰＵ３１が実行するプログラム）の機能について説明する。
図３に示すように、ＥＣＵ２７におけるソフトウェアは、機能面で分けると、燃圧取得部５１と、噴射制御部５２と、噴射パルス幅算出制御部５３と、ポンプ制御部５４と、を含む。そして、噴射制御部５２は、噴射量演算部５５と、噴射タイミング演算部５６と、噴射パルス幅演算部５７と、を含む。マイコン３０のＣＰＵ３１は、ＲＯＭ３２内のプログラムを実行することにより、図３の各部５１〜５７として機能する。各部５１〜５７の処理内容を、各部５１〜５７を主語にして説明する。
【００４１】
燃圧取得部５１は、燃圧センサ２５が出力するセンサ信号の電圧値（以下、燃圧センサ電圧値という）をＡ／Ｄ変換器３４によりＡ／Ｄ変換して読み取り、その読み取った電圧値を燃圧の値に変換することで、現在の燃圧を取得する処理を行う。
【００４２】
噴射制御部５２は、燃料噴射のための制御処理を行う。
噴射制御部５２の噴射量演算部５５は、アクセルペダルの操作量等のユーザ要求や、エンジン回転数、冷却水温等のエンジン３の運転状態に基づいて、気筒毎の燃料噴射量を算出する処理を行う。
【００４３】
噴射制御部５２の噴射タイミング演算部５６は、アクセルペダルの操作量等のユーザ要求や、エンジン回転数、冷却水温等のエンジン３の運転状態に基づいて、噴射パルス出力タイミングを算出すると共に、算出した噴射パルス出力タイミングを前述のタイマ３５にセットする処理を行う。これらの処理は、気筒毎に行われる。
【００４４】
噴射制御部５２の噴射パルス幅演算部５７は、噴射量演算部５５で算出された燃料噴射量（即ち、目標の燃料噴射量）を実現するための噴射パルス幅を、燃圧取得部５１で取得した燃圧に基づいて算出すると共に、算出した噴射パルス幅を前述のタイマ３５にセットする処理を行う。これらの処理も、気筒毎に行われる。
【００４５】
ポンプ制御部５４は、高圧ポンプ１１を制御するための制御処理を行う。
具体的には、ポンプ制御部５４は、燃圧取得部５１と同様に、燃圧センサ電圧値をＡ／Ｄ変換器３４によりＡ／Ｄ変換して、実際の燃圧を取得する処理を行う。そして、ポンプ制御部５４は、取得した実際の燃圧を目標燃圧にするための燃料圧送期間を算出すると共に、その算出した燃料圧送期間の間、高圧ポンプ１１の調量弁１７を駆動する処理を行う。
【００４６】
噴射パルス幅算出制御部５３は、燃圧取得部５１及び噴射パルス幅演算部５７の作動／非作動を制御する。噴射パルス幅算出制御部５３は、噴射パルス出力タイミングに基づいて、噴射パルス幅算出についての許可期間を設定し、その許可期間において燃圧取得部５１及び噴射パルス幅演算部５７を作動させ、許可期間以外では燃圧取得部５１及び噴射パルス幅演算部５７を作動させない。尚、後述する第２実施形態においては、図３における点線で示すように、噴射パルス幅算出制御部５３は、ポンプ制御部５４によって算出される燃料圧送期間の情報も用いて、燃圧取得部５１及び噴射パルス幅演算部５７の作動／非作動を制御する。
【００４７】
次に、ＥＣＵ２７において、マイコン３０のＣＰＵ３１が実行する主な処理について、図４〜図７を用い説明する。図４〜図７の処理は気筒毎に行われるものとする。
ＣＰＵ３１は、一定のクランク角度毎（本実施形態では例えば３０°ＣＡ毎）に、図４に示す更新開始判定タスクを実行する。尚、「°ＣＡ」は、それが付された数値がクランク角度であることを表す。
【００４８】
図４に示すように、ＣＰＵ３１は、更新開始判定タスクを開始すると、Ｓ１１０にて、下記の更新開始条件が成立しているか否かを判定する。
「０＜Ｄｉｎｊ−Ｄｎｏｗ＜Ｄｓｔａ」…更新開始条件
この更新開始条件は、今回の燃料噴射の噴射パルス幅を算出して更新することを開始する条件である。
【００４９】
Ｄｉｎｊは、前述の噴射タイミング演算部５６により算出されてタイマ３５にセットされた今回の噴射パルス出力タイミングであり、本実施形態では、前述の通り、燃料噴射を開始するクランク角度である。そして、Ｄｎｏｗは、現在のクランク角度を示している。尚、各気筒についてのＤｉｎｊとＤｎｏｗの値は、例えば、該当する気筒の吸気行程前の上死点（つまり排気行程の上死点）を基準にして、その上死点後のクランク角度で表される。
【００５０】
このため、更新開始条件における「Ｄｉｎｊ−Ｄｎｏｗ」は、今回の噴射開始タイミングであるクランク角度と現在のクランク角度との差であり、換言すれば、現在のクランク角度から今回の噴射開始タイミングまでの、残りのクランク角度である。更新開始判定タスクは３０°ＣＡ周期で実行されるため、現在のクランク角度であるＤｎｏｗは容易に求めることができる。このため、Ｓ１１０の判定は、単純な減算と比較によって実現することができる。
【００５１】
Ｄｓｔａは、噴射パルス幅の更新を開始するタイミングを決める判定値である。そして、Ｄｓｔａは、Ｓ１１０で更新開始条件が成立していると判定されてから、Ｄｉｎｊのタイミング（即ち、噴射パルス出力タイミング）が到来するまでに、後述する噴射パルス幅算出モジュールの処理（図５）を少なくとも１回は完了することが可能、という時間条件を満たす値に設定されている。本実施形態において、Ｄｓｔａは、その時間条件を満たす値のうちで、できる限り小さい値に設定されている。
【００５２】
具体的には、更新開始判定タスクの実行サイクルであるクランク角度（この例では３０°ＣＡ）を「Ｄｃ」とすると、Ｄｓｔａは、Ｄｃよりも大きい。そして、Ｓ１１０で更新開始条件が成立していると判定されてから、Ｄｉｎｊのタイミングまでのクランク角度を「Ｄｂ」とすると、そのＤｂの範囲は、「Ｄｓｔａ−Ｄｃ≦Ｄｂ＜Ｄｓｔａ」となる。このため、Ｄｓｔａは、Ｓ１１０で更新開始条件が成立していると判定されてから、後述するＳ１３０で噴射パルス幅算出モジュールの処理（図５）を完了するまでの時間よりも、「Ｄｓｔａ−Ｄｃ」の最小時間（即ち、Ｄｂの最小時間）の方が大きくなるように設定されている。例えば、本実施形態では、Ｄｓｔａを４０°ＣＡとしている。
【００５３】
尚、噴射パルス幅算出モジュールは、図３における燃圧取得部５１及び噴射パルス幅演算部５７に相当する。このため、噴射パルス幅算出モジュールの処理（図５）は、前述した燃圧取得部５１と噴射パルス幅演算部５７との処理に相当する。また、Ｓ１１０の実行時において、今回の噴射パルス出力タイミングが過ぎていて、次回の噴射パルス出力タイミングが決定されていない場合には、「Ｄｉｎｊ−Ｄｎｏｗ」が負の値になる。よって、その場合のＳ１１０では、更新開始条件が成立していないと判定することとなる。
【００５４】
図４の説明に戻る。ＣＰＵ３１は、Ｓ１１０にて、更新開始条件が成立していないと判定した場合には、そのまま当該更新開始判定タスクを終了するが、Ｓ１１０にて、更新開始条件が成立していると判定した場合には、Ｓ１２０に進む。
【００５５】
ＣＰＵ３１は、Ｓ１２０では、更新開始フラグがオフ（本実施形態では例えば“０”）であるか否かを判定し、更新開始フラグがオフでなければ（即ちオンであれば）、そのまま当該更新開始判定タスクを終了するが、更新開始フラグがオフであれば、Ｓ１３０に進む。
【００５６】
ＣＰＵ３１は、Ｓ１３０では、図５に示す噴射パルス幅算出モジュールの処理をコールして起動する。具体的には、噴射パルス幅算出モジュールの処理へジャンプして、その噴射パルス幅算出モジュールの処理を実行する。そして、ＣＰＵ３１は、噴射パルス幅算出モジュールの処理を完了すると、次のＳ１４０にて、更新開始フラグをオンする（本実施形態では例えば“１”にする）。そして、その後、当該更新開始判定タスクを終了する。
【００５７】
ＣＰＵ３１は、上記Ｓ１３０で噴射パルス幅算出モジュールの処理を開始すると、図５に示すように、まずＳ２１０にて、燃圧センサ電圧値をＡ／Ｄ変換器３４によりＡ／Ｄ変換して取得する。Ｓ２１０の処理は、燃圧センサ２５からのセンサ信号を読み取ることに相当する。そして、ＣＰＵ３１は、次のＳ２２０にて、Ｓ２１０で取得した電圧値を燃圧の値に変換する。この変換により、燃圧を取得することとなる。Ｓ２１０及びＳ２２０の処理は、燃圧取得部５１の処理に相当する。
【００５８】
ＣＰＵ３１は、次のＳ２３０にて、噴射パルス幅の補正値を、Ｓ２２０で取得した燃圧に基づいて算出する。補正値は、例えば、補正値算出用のデータマップを用いて算出される。また、補正値は、燃圧の値が小さい場合ほど、噴射パルス幅を大きい値に補正する値となるように算出される。
【００５９】
ＣＰＵ３１は、次のＳ２４０にて、前述の噴射量演算部５５で算出された目標の燃料噴射量に対応する標準の噴射パルス幅を算出し、その標準の噴射パルス幅を、Ｓ２３０で算出した補正値で補正することにより、インジェクタ２３を駆動するのに用いる噴射パルス幅を算出する。標準の噴射パルス幅は、例えば、噴射パルス幅算出用のデータマップを用いて算出される。また、Ｓ２４０では、例えば、標準の噴射パルス幅に補正値を加算することで、噴射パルス幅を算出する。
【００６０】
そして、ＣＰＵ３１は、次のＳ２５０にて、Ｓ２４０で算出した噴射パルス幅を、タイマ３５にセットし、その後、当該噴射パルス幅算出モジュールの処理を終了する。Ｓ２３０〜Ｓ２５０の処理は、噴射パルス幅演算部５７の処理に相当する。
【００６１】
また、ＣＰＵ３１は、一定時間毎（本実施形態では例えば１ｍｓ毎）に、図６に示す定期タスクを実行する。
図６に示すように、ＣＰＵ３１は、定期タスクを開始すると、Ｓ３１０にて、更新開始フラグがオンか否かを判定し、更新開始フラグがオンでなければ（即ちオフであれば）、そのまま当該定期タスクを終了するが、更新開始フラグがオンであれば、Ｓ３２０に進む。そして、ＣＰＵ３１は、Ｓ３２０では、図４のＳ１３０と同様に、噴射パルス幅算出モジュールの処理（図５）をコールして、その処理を実行し、その後、当該定期タスクを終了する。
【００６２】
また、ＣＰＵ３１は、タイマ３５にセットされた噴射パルス出力タイミングが到来すると、図７に示す噴射パルスオン割り込みの処理を実行する。
図７に示すように、ＣＰＵ３１は、噴射パルスオン割り込みの処理では、Ｓ４１０にて、更新開始フラグをオフし、その後、当該噴射パルスオン割り込みの処理を終了する。
【００６３】
図７のＳ４１０で更新開始フラグがオフされると、その後、図４のＳ１１０で「ＹＥＳ」と判定（更新開始条件が成立していると判定）されるまで、図６の定期タスクでは、Ｓ３１０で「ＮＯ」と判定される。よって、噴射パルス幅算出モジュールの処理（図５）は実行されない。図４，図６，図７の処理は、噴射パルス幅算出制御部５３の処理に相当する。
【００６４】
次に、図４〜図７の処理による作用について、図８を用い説明する。尚、図８において、縦長楕円の印を付けた縦線の各タイミングは、図４の更新開始判定タスクが実行される３０°ＣＡ毎のタイミングである。また、図８において、縦の点線のタイミングは、１ｍｓ毎のタイミングであり、その１ｍｓ毎の各タイミングで図６の定期タスクが実行される。また、図８において、上記３０°ＣＡ毎のタイミングの時間間隔（例えば１ｍｓの間隔との差）は、あくまで一例である。また、図８において、三角印（△）は、噴射パルス幅算出モジュールの処理（図５）が実行されるタイミングを示している。そして、これらのことは、後述する図１５，図１８についても同様である。
【００６５】
図８の例では、時刻ｔ１よりも３０°ＣＡだけ前のタイミングから、気筒＃１の噴射開始タイミング（噴射パルス出力タイミング）までのクランク角度は、前述のＤｓｔａ以上であり、時刻ｔ１から気筒＃１の噴射開始タイミングまでのクランク角度は、Ｄｓｔａ未満である。
【００６６】
このため、時刻ｔ１よりも前のタイミングで、図４の更新開始判定タスクが実行された場合には、Ｓ１１０で「ＮＯ」と判定されて、噴射パルス幅算出モジュールの処理は実行されない。
【００６７】
一方、時刻ｔ１で図４の更新開始判定タスクが実行された場合には、Ｓ１１０で「ＹＥＳ」と判定される。そして、この時点で更新開始フラグはオフであるため、図４のＳ１２０では「ＹＥＳ」と判定されて、図４のＳ１３０にて、噴射パルス幅算出モジュールの処理が実行され、図４のＳ１４０にて、更新開始フラグがオンされる。
【００６８】
尚、前述したように、図４のＳ１１０で「ＹＥＳ」と判定されるタイミング（この例では時刻ｔ１）は、今回の噴射パルス出力タイミングが到来するまでに、噴射パルス幅算出モジュールの処理を少なくとも１回は完了することが可能なタイミングである。このため、燃料噴射の開始前に、燃圧に基づく噴射パルス幅の算出を１回は完了することができる。よって、燃圧に応じた噴射制御を確実に実施することができ、延いては、システムに要求される噴射量精度を確保することができる。
【００６９】
その後、時刻ｔ２にて、図６の定期タスクが実行されると、この時点で更新開始フラグはオンであるため、Ｓ３１０で「ＹＥＳ」と判定され、Ｓ３２０にて、噴射パルス幅算出モジュールの処理が実行される。同様に、時刻ｔ３にて、図６の定期タスクが実行された場合も、Ｓ３１０で「ＹＥＳ」と判定され、Ｓ３２０にて、噴射パルス幅算出モジュールの処理が実行される。気筒＃１の噴射パルス幅は、時刻ｔ１で最初に算出されるが、時刻ｔ２，ｔ３で実行される噴射パルス幅算出モジュールの処理によって更新されることとなる。
【００７０】
そして、時刻ｔ３の直後において、気筒＃１の噴射パルス出力タイミングが到来すると、図７の噴射パルスオン割り込みの処理が実行されて、更新開始フラグがオフされる（Ｓ４１０）。このため、その後は、図６の定期タスクが実行されても、Ｓ３１０で「ＮＯ」と判定されて、噴射パルス幅算出モジュールの処理は実行されない。
【００７１】
また、噴射パルス出力タイミングが過ぎてから、次回の噴射パルス出力タイミングが決定されてタイマ３５にセットされるまでの間は、図４の更新開始判定タスクでは、前述した更新開始条件の「Ｄｉｎｊ−Ｄｎｏｗ」が負の値になる。このため、図４の更新開始判定タスクでは、Ｓ１１０で「ＮＯ」と判定されて、噴射パルス幅算出モジュールの処理は実行されない。
【００７２】
つまり、噴射パルス出力タイミングが到来した後は、次回の噴射パルス出力タイミングが決定されて、図４の更新開始判定タスクのＳ１１０で再び「ＹＥＳ」と判定されるまで、噴射パルス幅算出モジュールの処理は実行されない（その処理の実行が禁止される）。
【００７３】
尚、この例では、図４〜図７の処理を、気筒毎に行うことを想定していため、次回の噴射パルス出力タイミングとは、同じ気筒の次回の噴射パルス出力タイミングである。一方、図４〜図７の処理の対象気筒が順次切り換わる構成にしても良く、その場合、次回の噴射パルス出力タイミングとは、噴射順序が次の気筒の噴射パルス出力タイミング、ということになる。
【００７４】
また、気筒＃１以外の各気筒＃２〜＃４についても、気筒＃１について説明した処理と同様の処理が行われる。
例えば、図８では、時刻ｔ４よりも３０°ＣＡだけ前のタイミングから、気筒＃３の噴射開始タイミングまでのクランク角度は、前述のＤｓｔａ以上であり、時刻ｔ４から気筒＃３の噴射開始タイミングまでのクランク角度は、Ｄｓｔａ未満である。
【００７５】
このため、時刻ｔ４で図４の更新開始判定タスクが実行された場合には、Ｓ１１０で「ＹＥＳ」と判定される。そして、この時点で更新開始フラグはオフであるため、図４のＳ１２０では「ＹＥＳ」と判定されて、図４のＳ１３０にて、噴射パルス幅算出モジュールの処理が実行され、図４のＳ１４０にて、更新開始フラグがオンされる。
【００７６】
その後、時刻ｔ５にて、図６の定期タスクが実行されると、この時点で更新開始フラグはオンであるため、Ｓ３１０で「ＹＥＳ」と判定され、Ｓ３２０にて、噴射パルス幅算出モジュールの処理が実行される。同様に、時刻ｔ６，ｔ７の各々にて、図６の定期タスクが実行された場合も、Ｓ３１０で「ＹＥＳ」と判定され、Ｓ３２０にて、噴射パルス幅算出モジュールの処理が実行される。尚、時刻ｔ６と時刻ｔ７との間の３０°ＣＡ毎のタイミングで、図４の更新開始判定タスクが実行された場合には、更新開始フラグが既にオンであるため、Ｓ１２０で「ＮＯ」と判定され、噴射パルス幅算出モジュールの処理は実行されない。
【００７７】
そして、時刻ｔ７の直後において、気筒＃３の噴射パルス出力タイミングが到来すると、図７の噴射パルスオン割り込みの処理が実行されて、更新開始フラグがオフされる（Ｓ４１０）。その後は、次回の噴射パルス出力タイミングが決定されて、図４の更新開始判定タスクのＳ１１０で再び「ＹＥＳ」と判定されるまで、噴射パルス幅算出モジュールの処理は実行されない。
【００７８】
以上のようなＥＣＵ２７では、各気筒について、噴射パルス出力タイミングからみて、「Ｄｓｔａ−Ｄｃ」以上、Ｄｓｔａ未満のクランク角度分の期間だけ前のタイミングから、噴射パルス出力タイミング（特定のタイミングに相当）までの許可期間においてだけ、噴射パルス幅算出モジュールの処理が実行される。尚、図８の例では、時刻ｔ１から気筒＃１の噴射パルス出力タイミングまでの期間と、時刻ｔ４から気筒＃３の噴射パルス出力タイミングまでの期間とが、許可期間に該当している。
【００７９】
このＥＣＵ２７によれば、各気筒について、噴射開始タイミングの直前における燃圧に基づいて、その回の燃料噴射における噴射パルス幅（つまり、噴射時間）を算出することができる。よって、今回の噴射パルス幅を今回の最新の燃圧に基づいて算出することとなり、ある気筒の燃料噴射時の燃圧が前回から大きく変わる過渡状況においても、燃料噴射量の制御精度が低下することがない。
【００８０】
例えば、図９は、気筒＃１の図中における１回目の噴射後に、高圧ポンプ１１によって燃圧を増加させる燃圧増加制御が開始された場合の燃圧変動を表している。この場合、例えば、気筒＃１の図中における１回目の噴射時と２回目の噴射時とでは、燃圧自体や燃圧の変化状態が大きく異なっている。
【００８１】
また例えば、図１０は、図中における時刻ｔ１から時刻ｔ２までの間に、エンジン３の可変バルブタイミング機構（図示省略）が作動した場合を表している。この場合、同じ気筒であっても、噴射期間と高圧ポンプ１１による燃料圧送期間との相対関係（位相）が変わる。例えば、図１０においても、気筒＃１の図中における１回目の噴射時と２回目の噴射時とでは、燃圧自体や燃圧の変化状態が大きく異なっている。
【００８２】
図９や図１０のような場合に、例えば、気筒＃１の噴射時における燃圧を、気筒＃１の過去の噴射時における燃圧から予測する構成では、燃圧の予測値が実際の燃圧から大きく乖離してしまう。よって、予測した燃圧に基づき算出される噴射パルス幅は、目標の燃料噴射量を実現するための値から大きくずれてしまう。
【００８３】
これに対して、ＥＣＵ２７では、燃圧を予測するのではなく、各気筒について、今回の噴射パルス幅を今回の最新の燃圧に基づいて算出するため、図９，図１０に例示したような過渡状況においても、目標の燃料噴射量を実現するための噴射パルス幅を精度良く算出することができる。
【００８４】
また、図２に示すように、燃圧増加制御が実施されていない定常時（即ち、高圧ポンプ１１による燃料圧送期間の長さが一定の場合）であっても、前述したカム１５の山の数と気筒数とが異なる場合には、気筒毎の噴射時における燃圧に差が生じる。しかし、ＥＣＵ２７では、各気筒について、噴射開始タイミングの直前における燃圧に基づいて噴射パルス幅を算出するため、気筒毎の燃圧差に影響を受けることがなく、つまりは、燃料噴射量の制御精度が低下することはない。
【００８５】
一方、比較例について、図１１を用い説明する。図１１の例では、噴射パルス幅算出モジュールの処理（図５）を、ただ単に定期的（この例では６０°ＣＡ毎）に実行している。図１１においても、三角印（△）は、噴射パルス幅算出モジュールの処理が実行されるタイミングを示している。
【００８６】
例えば、図１１の時刻ｔ１で取得される燃圧は、高圧ポンプ１１によって燃料が圧送され始める前の燃圧である。一方、実際の噴射開始時の燃圧は、時刻ｔ１での燃圧よりも高くなっている。よって、時刻ｔ１で算出される噴射パルス幅は、目標の燃料噴射量を実現するための値からずれてしまう。また、図１１の時刻ｔ２で燃圧を取得して噴射パルス幅を更新する場合、噴射終了時までに更新の演算を完了できない可能性がある。演算が完了しなかった場合、その回の噴射時間は、時刻ｔ１で算出された噴射パルス幅となり、燃料噴射量の制御精度が低くなる。
【００８７】
このため、燃圧の取得及び噴射パルス幅の算出を定期的に行うシステムにおいて、精度良く燃料を噴射するためには、燃圧の取得及び噴射パルス幅の算出を行う頻度を、高くする必要がある。つまり、図１１の例では、噴射パルス幅算出モジュールの処理を実行する頻度を上げる必要がある、しかしながら、処理の実行頻度を高くすると、処理負荷が増大してしまう。
【００８８】
これに対して、ＥＣＵ２７では、前述の許可期間においてだけ、噴射パルス幅算出モジュールの処理が実行されるため、燃圧の取得及び噴射パルス幅の算出のための処理負荷を軽減することができる。よって、燃料噴射量の制御精度の向上を、処理負荷を軽減しつつ実現することができる。
【００８９】
また、許可期間の開始タイミングは、そのタイミングから噴射パルス出力タイミングが到来するまでに、噴射パルス幅算出モジュールの処理（図５）を少なくとも１回は完了することが可能なタイミングである。このため、燃料噴射の開始前に、燃圧に基づく噴射パルス幅の算出を１回は完了することができる。よって、燃圧を用いた噴射制御を確実に実施することができる。
【００９０】
また、ＥＣＵ２７では、許可期間の開始タイミングにて、噴射パルス幅算出モジュールの処理を実行する（図４のＳ１３０）と共に、更新開始フラグをオンする（図４のＳ１４０）。また、許可期間の終了タイミングにて、更新開始フラグをオフする（図７のＳ４１０）。よって、更新開始フラグは、許可期間の間、オンされる。そして、図６の定期タスクでは、更新開始フラグがオンであると判定した場合に、噴射パルス幅算出モジュールの処理を実行する（図６のＳ３２０）。
【００９１】
このため、ＥＣＵ２７では、許可期間の開始タイミングにおいて、噴射パルス幅算出モジュールの処理を実行し（図４のＳ１３０）、その後、許可期間の終了時まで、噴射パルス幅算出モジュールの処理を定期的なタイミングが到来する毎に実行することとなる（図６のＳ３２０）。よって、許可期間において、燃圧に基づく噴射パルス幅を１回算出するだけでなく、更新することができ、燃料噴射量の制御精度を向上させることができる。尚、本実施形態において、許可期間の終了時は、噴射パルス出力タイミングであり、定期的なタイミングは、１ｍｓ毎のタイミングである。
【００９２】
［第２実施形態］
次に、第２実施形態の燃料噴射システムについて説明するが、ハードウェア構成は第１実施形態と同じであるため、燃料噴射システム及び各構成要素の符号は、第１実施形態と同じものを用いる。また、第１実施形態と同様の処理についても、第１実施形態と同じ符号を用いる。これらのことは、後述する他の実施形態についても同様である。
【００９３】
第２実施形態の燃料噴射システム１は、第１実施形態と比較すると、ＥＣＵ２７が下記［１］〜［３］の点で異なる。
［１］ＥＣＵ２７において、マイコン３０のＣＰＵ３１は、高圧ポンプ１１による燃料圧送期間の開始時に、図１２に示す圧送開始時割り込みの処理を実行する。図１２に示すように、ＣＰＵ３１は、圧送開始時割り込みの処理では、Ｓ５１０にて、燃料圧送期間中であることを示す圧送開始フラグをオンし（本実施形態では例えば“１”にし）、その後、当該圧送開始時割り込みの処理を終了する。尚、燃料圧送期間は、前述したポンプ制御部５４の処理によって算出される。また、圧送開始フラグの初期値はオフである。
【００９４】
［２］マイコン３０のＣＰＵ３１は、高圧ポンプ１１による燃料圧送期間の終了時に、図１３に示す圧送終了時割り込みの処理を実行する。図１３に示すように、ＣＰＵ３１は、圧送終了時割り込みの処理では、Ｓ５２０にて、圧送開始フラグをオフし（本実施形態では例えば“０”にし）、その後、当該圧送終了時割り込みの処理を終了する。
【００９５】
［３］マイコン３０のＣＰＵ３１は、図６の定期タスクに代えて、図１４の定期タスクを実行する。そして、図１４の定期タスクは、図６の定期タスクと比較すると、Ｓ３１５が追加されている。
【００９６】
図１４に示すように、ＣＰＵ３１は、定期タスクでは、Ｓ３１０にて、更新開始フラグがオンであると判定した場合には、Ｓ３１５に進み、圧送開始フラグがオンであるか否かを判定する。圧送開始フラグは、燃料圧送期間の間、オンされるため、Ｓ３１５では、燃料圧送期間中であるか否か（換言すれば、高圧ポンプ１１が燃料を圧送しているか否か）を判定していることになる。そして、ＣＰＵ３１は、Ｓ３１５にて圧送開始フラグがオンである（即ち、燃料圧送期間中である）と判定した場合には、Ｓ３２０に進むが、Ｓ３１５にて圧送開始フラグがオンではない（即ち、燃料圧送期間中ではない）と判定した場合には、そのまま当該定期タスクを終了する。
【００９７】
このため、ＣＰＵ３１は、更新開始フラグがオンになっている前述の許可期間において、定期的なタイミング（この例では１ｍｓ毎のタイミング）が到来する毎に、燃料圧送期間中であるか否かを判定することとなる（図１４のＳ３１５）。そして、ＣＰＵ３１は、燃料圧送期間中であると判定した場合には（図１４のＳ３１５：ＹＥＳ）、噴射パルス幅算出モジュールの処理を行うが（図１４のＳ３２０）、燃料圧送期間中ではないと判定した場合には（図１４のＳ３１５：ＮＯ）、噴射パルス幅算出モジュールの処理を行うことを止める。
【００９８】
尚、本第２実施形態では、図４，図１４，図７の処理が、噴射パルス幅算出制御部５３の処理に相当する。また、圧送開始フラグが、図３において点線で示した燃料圧送期間の情報に相当する。
【００９９】
次に、第２実施形態のＥＣＵ２７の作用について、図１５を用い説明する。尚、図１５は、図８と同じ状況を表しており、図１５におけるｔ１〜ｔ７は、図８におけるｔ１〜ｔ７と同じ時刻である。ここでは、図８を用いて説明した動作内容との相違点を説明する。
【０１００】
第２実施形態のＥＣＵ２７においても、図１５の時刻ｔ１で、図４の更新開始判定タスクが実行されると、Ｓ１１０とＳ１２０とで「ＹＥＳ」と判定され、その結果、噴射パルス幅算出モジュールの処理（図５）が実行されると共に、更新開始フラグがオンされる。
【０１０１】
そして、時刻ｔ２にて、図１４の定期タスクが実行されると、この時点で更新開始フラグはオンであるため、Ｓ３１０で「ＹＥＳ」と判定されるが、燃料圧送期間中ではないため、Ｓ３１５で「ＮＯ」と判定される。よって、時刻ｔ２では、噴射パルス幅算出モジュールの処理が実行されない。
【０１０２】
時刻ｔ２の直後において、燃料圧送期間の開始タイミングが到来すると、図１２の圧送開始時割り込みの処理が実行されて、圧送開始フラグがオンされる（Ｓ５１０）。
このため、燃料圧送期間中の時刻ｔ３にて、図１４の定期タスクが実行されると、Ｓ３１５で「ＹＥＳ」と判定され、Ｓ３２０にて、噴射パルス幅算出モジュールの処理が実行される。
【０１０３】
そして、時刻ｔ３の直後において、気筒＃１の噴射パルス出力タイミングが到来すると、図７の噴射パルスオン割り込みの処理が実行されて、更新開始フラグがオフされる（Ｓ４１０）。よって、その後は、次回の噴射パルス出力タイミングが決定されて、図４の更新開始判定タスクのＳ１１０で「ＹＥＳ」と判定されるまで、噴射パルス幅算出モジュールの処理は実行されない。また、燃料圧送期間の終了タイミングが到来すると、図１３の圧送終了時割り込みの処理が実行されて、圧送開始フラグがオフされる（Ｓ５２０）。
【０１０４】
また、図１５の時刻ｔ４で、図４の更新開始判定タスクが実行された場合にも、Ｓ１１０とＳ１２０とで「ＹＥＳ」と判定され、その結果、噴射パルス幅算出モジュールの処理が実行されると共に、更新開始フラグがオンされる。
【０１０５】
そして、時刻ｔ５にて、図１４の定期タスクが実行されると、この時点で更新開始フラグはオンであるため、Ｓ３１０で「ＹＥＳ」と判定されるが、燃料圧送期間中ではないため、Ｓ３１５で「ＮＯ」と判定される。よって、時刻ｔ５では、噴射パルス幅算出モジュールの処理が実行されない。同様に、時刻ｔ６，ｔ７の各々にて、図１４の定期タスクが実行された場合も、燃料圧送期間中ではないため、Ｓ３１５で「ＮＯ」と判定され、その結果、噴射パルス幅算出モジュールの処理は実行されない。
【０１０６】
そして、時刻ｔ７の直後において、気筒＃３の噴射パルス出力タイミングが到来すると、図７の噴射パルスオン割り込みの処理が実行されて、更新開始フラグがオフされる（Ｓ４１０）。その後は、次回の噴射パルス出力タイミングが決定されて、図４の更新開始判定タスクのＳ１１０で再び「ＹＥＳ」と判定されるまで、噴射パルス幅算出モジュールの処理は実行されない。
【０１０７】
第２実施形態のＥＣＵ２７では、更新開始フラグがオンになっている許可期間中であっても、燃料圧送期間中でなければ、噴射パルス幅算出モジュールの処理を実行しないようになっている。つまり、燃料圧送期間中でなければ、燃圧の変化がない（変化があったとしても非常に小さい）と考えられるため、燃圧に基づく噴射パルス幅の更新を実施しないように構成している。
【０１０８】
よって、第２実施形態のＥＣＵ２７によれば、第１実施形態と比較すると、燃料噴射量の制御精度を維持したまま処理負荷を軽減することができる。図１５の例では、図８と比較すると、時刻ｔ１からみて燃圧に変化がない時刻ｔ２における処理と、時刻ｔ４からみて燃圧に変化がない時刻ｔ５，ｔ６，ｔ７の各々における処理とを、減らすことができる。図８の例において７回実施していた噴射パルス幅の算出を、図１５の例では３回に減らすことができる。
【０１０９】
［第３実施形態］
第３実施形態の燃料噴射システム１は、第２実施形態と比較すると、ＥＣＵ２７が下記［４］，［５］の点で異なる。
【０１１０】
［４］ＥＣＵ２７において、マイコン３０のＣＰＵ３１は、図１４の定期タスクに代えて、図１６の定期タスクを実行する。そして、図１６の定期タスクは、図１４の定期タスクと比較すると、Ｓ３１７，Ｓ３３０，Ｓ３４０が追加されている。
【０１１１】
図１６に示すように、ＣＰＵ３１は、定期タスクでは、Ｓ３１５にて、圧送開始フラグがオンであると判定した場合には、Ｓ３１７に進む。そして、ＣＰＵ３１は、Ｓ３１７にて、直近１ｍｓ圧送フラグをオンし（本実施形態では例えば“１”にし）、その後、Ｓ３２０に進む。直近１ｍｓ圧送フラグは、前回の当該定期タスクのＳ３１５にて、圧送開始フラグがオンである（換言すれば、燃料圧送期間中である）と判定したことを示すフラグである。
【０１１２】
また、ＣＰＵ３１は、Ｓ３１５にて圧送開始フラグがオンではないと判定した場合には、Ｓ３３０に進む。
ＣＰＵ３１は、Ｓ３３０では、直近１ｍｓ圧送フラグがオンであるか否かを判定し、直近１ｍｓ圧送フラグがオンであると判定した場合には、Ｓ３４０にて、直近１ｍｓ圧送フラグをオフする（本実施形態では例えば“０”にする）。そして、その後、Ｓ３２０に進む。
【０１１３】
また、ＣＰＵ３１は、Ｓ３３０にて、直近１ｍｓ圧送フラグがオンではない（即ち、オフである）と判定した場合には、そのまま当該定期タスクを終了する。
［５］マイコン３０のＣＰＵ３１は、図７の噴射パルスオン割り込みの処理に代えて、図１７の噴射パルスオン割り込みの処理を実行する。そして、図１７の処理は、図７の処理と比較すると、Ｓ４２０が追加されている。
【０１１４】
図１７に示すように、ＣＰＵ３１は、噴射パルスオン割り込みの処理では、Ｓ４１０にて、更新開始フラグをオフした後、Ｓ４２０にて、直近１ｍｓ圧送フラグをオフする。そして、その後、当該噴射パルスオン割り込みの処理を終了する。
【０１１５】
第３実施形態のＥＣＵ２７では、定期タスクのＳ３１５にて、燃料圧送期間中でないと判定した場合であっても、前回の定期タスクのＳ３１５で燃料圧送期間中であると判定していれば（Ｓ３３０：ＹＥＳ）、Ｓ３２０にて噴射パルス幅算出モジュールの処理を実行するようになっている。尚、本第３実施形態では、図４，図１６，図１７の処理が、噴射パルス幅算出制御部５３の処理に相当する。
【０１１６】
次に、第３実施形態のＥＣＵ２７の作用について、図１８を用い説明する。尚、第１〜第３実施形態において、高圧ポンプ１１を駆動するカム１５の山の数とエンジン３の気筒数とは同じでも良い。そして、図１８において、「高圧ポンプ」の段（２段目）の三角波形は、カム１５の山の数がエンジン３の気筒数と同じ４である場合を表している。
【０１１７】
図１８の例では、時刻ｔ１で、図４の更新開始判定タスクが実行され、Ｓ１１０とＳ１２０とで「ＹＥＳ」と判定されて、噴射パルス幅算出モジュールの処理（図５）が実行されると共に（Ｓ１３０）、更新開始フラグがオンされている（Ｓ１４０）。
【０１１８】
そして、時刻ｔ１の直後において、燃料圧送期間の開始タイミングが到来すると、図１２の圧送開始時割り込みの処理により、圧送開始フラグがオンされる（Ｓ５１０）。
このため、その後、燃料圧送期間中における時刻ｔ２，ｔ３，ｔ４の各々にて、図１６の定期タスクが実行されると、Ｓ３１０とＳ３１５とで「ＹＥＳ」と判定され、直近１ｍｓ圧送フラグがオンされると共に（Ｓ３１７）、噴射パルス幅算出モジュールの処理が実行される（Ｓ３２０）。
【０１１９】
そして、時刻ｔ４の直後において、燃料圧送期間の終了タイミングが到来すると、図１３の圧送終了時割り込みの処理により、圧送開始フラグがオフされる（Ｓ５２０）。
このため、時刻ｔ５において、図１６の定期タスクが実行されると、Ｓ３１０で「ＹＥＳ」と判定されるが、Ｓ３１５では「ＮＯ」と判定される。
【０１２０】
ここで、直近１ｍｓ圧送フラグは時刻ｔ４での定期タスクにおいてオンされている。このため、時刻ｔ５での定期タスクにおいて、Ｓ３１５で「ＮＯ」と判定されても、Ｓ３３０では「ＹＥＳ」と判定され、その結果、直近１ｍｓ圧送フラグがオフされると共に（Ｓ３４０）、噴射パルス幅算出モジュールの処理が実行される（Ｓ３２０）。時刻ｔ５での定期タスクにおいて、噴射パルス幅算出モジュールの処理がコールされることが、第２実施形態との相違である。
【０１２１】
尚、図１８において、時刻ｔ５は、図４の更新開始判定タスクが実行される３０°ＣＡ毎のタイミングでもある。このため、時刻ｔ５では、定期タスクの前あるいは後に、図４の更新開始判定タスクが実行されるが、この時点で更新開始フラグはオンであるため、図４のＳ１２０では「ＮＯ」と判定される。よって、時刻ｔ５において、噴射パルス幅算出モジュールの処理は、更新開始判定タスクによってはコールされない。
【０１２２】
そして、時刻ｔ５の直後において、気筒＃１の噴射パルス出力タイミングが到来すると、図１７の噴射パルスオン割り込みの処理が実行されて、更新開始フラグがオフされ（Ｓ４１０）、直近１ｍｓ圧送フラグもオフされる（Ｓ４２０）。よって、その後は、次回の噴射パルス出力タイミングが決定されて、図４の更新開始判定タスクのＳ１１０で「ＹＥＳ」と判定されるまで、噴射パルス幅算出モジュールの処理は実行されない。
【０１２３】
このような第３実施形態のＥＣＵ２７によれば、第２実施形態と比較すると、燃料噴射量の制御精度を向上させることができる。
第２実施形態のＥＣＵ２７では、図１８の時刻ｔ５にて、図１４の定期タスクが実行された場合に、その時点では燃料圧送期間が終了していて圧送開始フラグがオフであることから、Ｓ３１５で「ＮＯ」と判定されて、噴射パルス幅算出モジュールの処理は実行されない。一方、第３実施形態のＥＣＵ２７では、時刻ｔ５での定期タスクにより、噴射パルス幅算出モジュールの処理が実行される。このため、燃料圧送期間中における最後の定期タスクの実行タイミングである時刻ｔ４から、燃料圧送期間が終了するまでに、燃圧が変動しても、その燃圧変動分を今回の燃料噴射の噴射パルス幅に反映することができる。
【０１２４】
［他の実施形態］
〈変形例１の説明〉
上記各実施形態では、噴射パルス出力タイミングからみて、「Ｄｓｔａ−Ｄｃ」以上、Ｄｓｔａ未満のクランク角度分の期間だけ前のタイミングを、許可期間の開始タイミングとしていた。つまり、許可期間の開始タイミングを、クランク角度で指定していた。このため、許可期間の開始タイミングが到来したか否かの判定（具体的には図４におけるＳ１１０の判定）を、クランク角度により簡単に行うことができた。
【０１２５】
一方、変形例１として、許可期間の開始タイミングは、時間で指定しても良い。その場合、例えば、図４の更新開始判定タスクを、一定時間毎に実行されるタスクとし、図４のＳ１１０で判定する更新開始条件において、Ｄｉｎｊは、噴射パルス出力タイミングの時刻とし、Ｄｎｏｗは、現在時刻とし、Ｄｓｔａは、時間とすれば良い。このように変形した場合、更新開始判定タスクが実行される時間間隔を「Ｔｃ」とすると（但し、Ｔｃ＜Ｄｓｔａ）、噴射パルス出力タイミングからみて、「Ｄｓｔａ−Ｔｃ」以上、Ｄｓｔａ未満の時間だけ前のタイミングが、許可期間の開始タイミングとなる。
【０１２６】
そして、許可期間の開始タイミングを時間で指定するように構成すれば、許可期間の開始タイミングから噴射パルス出力タイミングまでの時間が、エンジン回転数によって変わらない。このため、許可期間の開始タイミングの適切化が容易となる。
【０１２７】
〈変形例２の説明〉
変形例２として、マイコン３０のＣＰＵ３１は、許可期間の開始タイミングをエンジン回転数に応じて変更する変更手段として機能するように構成しても良い。
【０１２８】
例えば、第１〜第３実施形態において、ＣＰＵ３１は、図４のＳ１１０で判定する更新開始条件におけるＤｓｔａを、エンジン回転数に応じて変更する処理を行うように構成することができる。その場合、例えば、エンジン回転数が高い場合ほど、Ｄｓｔａを大きい値に変更するように構成すれば良い。エンジン回転数が高くなっても、Ｄｓｔａを大きい値に変更すれば、許可期間の開始タイミングから噴射パルス出力タイミングまでの時間が、燃料噴射制御に必要な最小時間よりも短くなってしまうことを防ぐことができる。また、エンジン回転数が低い場合に、許可期間の開始タイミングから噴射パルス出力タイミングまでの時間が、必要以上に長くなってしまうことも防止することができる。尚、Ｄｓｔａは、少なくとも２段階に変更すれば良く、無段階に変更するように構成しても良い。
【０１２９】
また、変形例１のように、Ｄｓｔａが時間の値であっても、そのＤｓｔａをエンジン回転数に応じて変更することは有益である。一般に、燃料噴射制御装置としてのＥＣＵでは、エンジン回転数が高くなると、ＣＰＵの処理負荷が大きくなるため、噴射パルス幅算出モジュールの処理を実行するのに要する時間が長くなる可能性がある。このため、ＥＣＵ２７において、ＣＰＵ３１は、例えば、エンジン回転数が高い場合ほど、時間の値のＤｓｔａを大きい値に変更する処理を行うと良い。エンジン回転数が高くなってＣＰＵ３１の処理負荷が大きくなった場合に、許可期間の開始タイミングから噴射パルス出力タイミングまでの時間を長くすることができ、噴射パルス出力タイミングまでに噴射パルス幅算出モジュールの処理を１回は完了することを、実現し易くなる。
【０１３０】
〈変形例３の説明〉
上記各実施形態では、許可期間の終了タイミングである特定のタイミングが、噴射パルス出力タイミング（インジェクタ２３の駆動開始タイミング）であるため、燃料噴射の開始前に噴射パルス幅を確定することができる。このことは、常に燃料噴射の開始直前の燃圧に基づいて噴射パルス幅を決定することができるということであり、制御の規則として安定しているという利点がある。
【０１３１】
一方、変形例３として、許可期間の終了タイミングは、タイマ３５が噴射パルスの出力を終了したタイミング（つまり、インジェクタ２３の駆動を終了したタイミング）としても良い。その場合、ＣＰＵ３１が、図７又は図１７に示した処理を、噴射パルス出力タイミングではなく、タイマ３５が噴射パルスの出力を終了したタイミングで実行するように変更すれば良い。そのようにすれば、燃圧に基づく噴射パルス幅の更新機会が増えるため、燃料噴射量の制御精度を向上させることができる。
【０１３２】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述の数値も一例であり他の値でも良い。
例えば、噴射パルスを出力するタイマ３５の機能は、ＣＰＵ３１がプログラムを実行することによって（つまり、ソフトウェアによって）実現しても良い。
【０１３３】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言によって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述したＥＣＵの他、当該ＥＣＵを構成要素とするシステム、当該ＥＣＵとしてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、燃料噴射制御方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【０１３４】
１…燃料噴射システム、３…エンジン、１１…高圧ポンプ、２１…燃料分配管、２３…インジェクタ、２５…燃圧センサ、２７…ＥＣＵ、３１…ＣＰＵ
【図１】
0006287685.tif 000002
【図２】
0006287685.tif 000003
【図３】
0006287685.tif 000004
【図４】
0006287685.tif 000005
【図５】
0006287685.tif 000006
【図６】
0006287685.tif 000007
【図７】
0006287685.tif 000008
【図８】
0006287685.tif 000009
【図９】
0006287685.tif 000010
【図１０】
0006287685.tif 000011
【図１１】
0006287685.tif 000012
【図１２】
0006287685.tif 000013
【図１３】
0006287685.tif 000014
【図１４】
0006287685.tif 000015
【図１５】
0006287685.tif 000016
【図１６】
0006287685.tif 000017
【図１７】
0006287685.tif 000018
【図１８】
0006287685.tif 000019