(57)【要約】【課題】噴射量の制御精度を良好にする。【解決手段】燃料噴射制御装置では、燃料噴射弁の燃料圧を示す燃料圧信号がマイコン内のＡ／Ｄ変換器に入力され、そのマイコンでは、ＣＰＵが、所定クランク角毎のＮＥパルス割込処理にて、噴射セットタイミングならば、燃料噴射弁を開弁させるための通電パルスのオン時刻ｔｐｏｎを、通電パルス出力用のタイマにセットする（ａ）と共に、その時刻ｔｐｏｎで噴射終了セット用割込処理の割込要求が発生するように内部設定し（ｂ）、更にセットされたＡ／Ｄ変換時刻でＡ／Ｄ変換器を起動させる制御回路に対して、今回の実際の噴射開始時刻ｔｉｏｎの直前時刻をＡ／Ｄ変換時刻としてセットする（ｃ）。その後ＣＰＵは、噴射終了セット用割込処理にて、上記セットされた時刻でのＡ／Ｄ変換値を取得し、該Ａ／Ｄ変換値と要求噴射量とオン時刻ｔｐｏｎとから通電パルスのオフ時刻ｔｐｏｆｆを算出して上記タイマに設定する（ｄ）。【選択図】図４
2011021489.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
前記ＣＰＵにより開弁動作開始時刻と閉弁動作開始時刻とが設定され、前記開弁動作開始時刻が到来すると、エンジンの燃料噴射弁を開弁させる動作を開始して該燃料噴射弁を開弁させ、前記閉弁動作開始時刻が到来すると、前記燃料噴射弁を閉弁させる動作を開始して該燃料噴射弁を閉弁させる駆動手段と、
燃料ポンプから前記燃料噴射弁に圧送される燃料の圧力を検出する燃料圧センサからのアナログ信号である燃料圧信号が入力されると共に、前記ＣＰＵによりＡ／Ｄ変換時刻が設定され、そのＡ／Ｄ変換時刻にて前記燃料圧信号をＡ／Ｄ変換して、そのＡ／Ｄ変換値を記憶する燃料圧取得記憶手段とを備え、
前記ＣＰＵは、
前記エンジンのクランク軸の回転に同期して起動される第１の処理ルーチンにより、前記駆動手段に対して前記開弁動作開始時刻を設定すると共に、前記燃料圧取得記憶手段に対して前記Ａ／Ｄ変換時刻を設定し、
前記第１の処理ルーチンが終了した後に起動される第２の処理ルーチンにより、前記第１の処理ルーチンで前記駆動手段に設定した開弁動作開始時刻と、前記エンジンの運転状態に応じた要求噴射量と、前記燃料圧取得記憶手段に記憶されたＡ／Ｄ変換値とに基づき、前記開弁動作開始時刻の到来により開弁する前記燃料噴射弁に前記要求噴射量だけの燃料を噴射させるための前記閉弁動作開始時刻を算出し、その算出した閉弁動作開始時刻を前記駆動手段に設定すること、
を特徴とする燃料噴射制御装置。
【請求項２】
請求項１に記載の燃料噴射制御装置において、
前記燃料圧取得記憶手段は、前記ＣＰＵにより、前記Ａ／Ｄ変換時刻として、Ａ／Ｄ変換の開始時刻が設定され、そのＡ／Ｄ変換の開始時刻から一定時間毎に、前記燃料圧信号を２回以上の所定回数Ａ／Ｄ変換すると共に、その各Ａ／Ｄ変換値を記憶すること、
を特徴とする燃料噴射制御装置。
【請求項３】
請求項２に記載の燃料噴射制御装置において、
前記ＣＰＵは、前記第２の処理ルーチンでは、前記燃料圧取得記憶手段に記憶された複数のＡ／Ｄ変換値の少なくとも一部の平均値を算出し、その平均値を用いて前記閉弁動作開始時刻を算出すること、
を特徴とする燃料噴射制御装置。
【請求項４】
請求項３に記載の燃料噴射制御装置において、
前記ＣＰＵは、前記第２の処理ルーチンでは、前記燃料圧取得記憶手段に記憶された複数のＡ／Ｄ変換値の中から、前記燃料噴射弁による燃料の噴射と前記燃料ポンプによる燃料の圧送との何れかに起因して前記燃料圧信号に生じる脈動の周期のｎ分の１（ｎは２以上の偶数）の間隔でＡ／Ｄ変換された「ｎ×Ｎ」個（Ｎは１以上の整数）のＡ／Ｄ変換値を選別し、その選別したＡ／Ｄ変換値の平均値を用いて前記閉弁動作開始時刻を算出すること、
を特徴とする燃料噴射制御装置。
【請求項５】
請求項３に記載の燃料噴射制御装置において、
前記一定時間は、前記燃料噴射弁による燃料の噴射と前記燃料ポンプによる燃料の圧送との何れかに起因して前記燃料圧信号に生じる脈動の周期のｎ分の１（ｎは２以上の偶数）の時間であり、
前記ＣＰＵは、前記第２の処理ルーチンでは、前記燃料圧取得記憶手段に記憶された「ｎ×Ｎ」個（Ｎは１以上の整数）のＡ／Ｄ変換値の平均値を算出し、その平均値を用いて前記閉弁動作開始時刻を算出すること、
を特徴とする燃料噴射制御装置。
【請求項６】
請求項２ないし請求項５の何れか１項に記載の燃料噴射制御装置において、
前記燃料圧取得記憶手段は、前記各Ａ／Ｄ変換値と対応付けて、そのＡ／Ｄ変換値のＡ／Ｄ変換実施時刻を特定可能な時刻情報も記憶すること、
を特徴とする燃料噴射制御装置。
【請求項７】
請求項１に記載の燃料噴射制御装置において、
前記ＣＰＵは、前記第１の処理ルーチンにより設定した前記Ａ／Ｄ変換時刻よりも前に、前記第２の処理ルーチンを実行する場合、その第２の処理ルーチンでは、前回の燃料噴射の閉弁動作開始時刻を算出するために前記燃料圧取得記憶手段によりＡ／Ｄ変換された燃料圧信号のＡ／Ｄ変換値を用いて、今回の燃料噴射の閉弁動作開始時刻を算出すること、
を特徴とする燃料噴射制御装置。
【請求項８】
請求項７に記載の燃料噴射制御装置において、
前記ＣＰＵは、前記第１の処理ルーチンにより設定した前記Ａ／Ｄ変換時刻よりも前に、前記第２の処理ルーチンを実行する場合、その第２の処理ルーチンでは、前回の燃料噴射の閉弁動作開始時刻を算出するために前記燃料圧取得記憶手段によりＡ／Ｄ変換された燃料圧信号のＡ／Ｄ変換値から、今回の燃料噴射の開始時において前記燃料噴射弁に圧送されている燃料の圧力を推定し、その推定値を用いて、今回の燃料噴射の閉弁動作開始時刻を算出すること、
を特徴とする燃料噴射制御装置。
【請求項９】
請求項８に記載の燃料噴射制御装置において、
前記ＣＰＵは、前記第２の処理ルーチンでは、当該第２の処理ルーチンの前に実行した第１の処理ルーチンにより設定した前記Ａ／Ｄ変換時刻が過ぎているか否かを判定し、そのＡ／Ｄ変換時刻が過ぎていなければ、前回の燃料噴射の閉弁動作開始時刻を算出するために前記燃料圧取得記憶手段によりＡ／Ｄ変換された燃料圧信号のＡ／Ｄ変換値から、今回の燃料噴射の開始時において前記燃料噴射弁に圧送されている燃料の圧力を推定し、その推定値を用いて、今回の燃料噴射の閉弁動作開始時刻を算出すること、
を特徴とする燃料噴射制御装置。
【請求項１０】
請求項１ないし請求項９の何れか１項に記載の燃料噴射制御装置において、
前記燃料圧センサは、前記燃料ポンプにより圧送される燃料を貯留するコモンレールから前記燃料噴射弁に至る燃料供給経路に取り付けられて、該燃料供給経路から前記燃料噴射弁に供給される燃料の圧力を検出するものであること、
を特徴とする燃料噴射制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料噴射弁の開弁時間を調整することによりエンジンへの燃料噴射量を制御する燃料噴射制御装置に関する。
【背景技術】
【０００２】
エンジンの燃料噴射制御装置において、燃料噴射弁から実際に噴射される燃料量（実際の噴射量）を、エンジンの運転状態に応じて決定される要求噴射量と一致させるためには、燃料噴射弁に圧送されている燃料の圧力（以下、燃料圧ともいう）を噴射開始前に検出し、その燃料圧に基づいて噴射時間（即ち、燃料噴射弁の開弁時間）を決定する必要がある。燃料圧が違えば、噴射時間が同じでも実際の噴射量は変わるからである。また、噴射時間は、できるだけ噴射開始直前の燃料圧を基に決定することが望ましい。
【０００３】
ここで、燃料圧から噴射時間を決定する技術手法として、以下のようなものがある。
まず、第１の技術手法として、燃料噴射制御装置に設けられたＣＰＵ（中央処理装置）が、エンジンのクランク軸の回転に同期して起動される割込処理により、噴射セットタイミングか否かを判定して、噴射セットタイミングならば、Ａ／Ｄ変換器を作動させて燃料圧センサからのアナログ信号（以下、燃料圧信号という）をＡ／Ｄ変換し、更に、そのＡ／Ｄ変換値（即ち、燃料圧の検出値）と要求噴射量とから噴射時間を算出し、その算出した噴射時間に基づいて、噴射パルスのオンタイミングとオフタイミングとを噴射パルス出力用のタイマに設定する、というものがある（例えば、特許文献１の図２参照）。
【０００４】
尚、噴射パルスとは、燃料噴射弁を駆動するための駆動信号のことであり、通電パルスとも呼ばれる。そして、一般に、この種の燃料噴射制御装置では、噴射パルス出力用のタイマに設定されたオンタイミングになると、燃料噴射弁を駆動する駆動回路への噴射パルスがアクティブレベルになって、その駆動回路により燃料噴射弁が開弁され、上記タイマに設定されたオフタイミングになると、駆動回路への噴射パルスが非アクティブレベルに戻って、その駆動回路により燃料噴射弁が閉弁される。
【０００５】
また、第２の技術手法として、燃料噴射制御装置のＣＰＵが、噴射パルスのオンタイミングが到来したとき（即ち、駆動回路による燃料噴射弁の開弁駆動が開始されたとき）に起動される割込処理により、Ａ／Ｄ変換器を作動させて、燃料圧センサからの燃料圧信号をＡ／Ｄ変換し、更に、そのＡ／Ｄ変換値と要求噴射量とから噴射時間を算出して、噴射パルスのオンタイミングからその噴射時間だけ進んだ時刻を、噴射パルスのオフタイミングとして噴射パルス出力用のタイマに設定する、というものがある（例えば、特許文献１の図３、特許文献２の図２参照）。尚、特許文献１，２では、噴射時間のことを、噴射期間と称している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２４８７２１号公報
【特許文献２】特開２００２−３０３１９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記第１の技術手法では、噴射時間を算出するための燃料圧として、噴射パルスのオンタイミングよりもだいぶ前の燃料圧しか検出できない。また特に、同一の気筒に対して複数回の燃料噴射を連続して行う場合（いわゆる多段噴射を行う場合）には、噴射パルスのオンタイミング及びオフタイミングをタイマに設定する割込処理の実行期間が、前回の燃料噴射中の期間と重なる可能性が高くなり、そうなると、今回の噴射時間を算出するための燃料圧として、前回の燃料噴射中の燃料圧を検出してしまう可能性が生じる。このため、噴射量の制御精度が低くなってしまう。
【０００８】
一方、上記第２の技術手法によれば、噴射開始直前の燃料圧から噴射時間を算出できる可能性はあるものの、今回の燃料噴射が始まった後の（即ち、燃料噴射中の）低下した燃料圧から噴射時間を算出してしまう可能性もある。
【０００９】
なぜなら、上記割込処理の実行開始が、それ以上の優先順位を有した他の処理の実行等によって遅れ、噴射パルスのオンタイミングから燃料圧信号のＡ／Ｄ変換が完了するまでの時間が、噴射パルスのオンタイミングから燃料噴射弁が実際に開弁するまでの遅れ時間よりも長くなってしまうと、Ａ／Ｄ変換によるＡ／Ｄ変換値は、燃料噴射が始まった後の燃料圧を示すものになってしまうからである。このため、上記第２の技術手法でも、噴射量の制御精度を確保するには十分でない。
【００１０】
そこで、本発明は、噴射量の制御精度を良好にすることができる燃料噴射制御装置の提供を目的としている。
【課題を解決するための手段】
【００１１】
請求項１の燃料噴射制御装置は、ＣＰＵと、駆動手段と、燃料圧取得記憶手段とを備えている。
駆動手段は、ＣＰＵにより開弁動作開始時刻と閉弁動作開始時刻とが設定され、開弁動作開始時刻が到来すると、エンジンの燃料噴射弁を開弁させる動作を開始して該燃料噴射弁を開弁させ、閉弁動作開始時刻が到来すると、燃料噴射弁を閉弁させる動作を開始して該燃料噴射弁を閉弁させる。
【００１２】
また、燃料圧取得記憶手段は、燃料ポンプから燃料噴射弁に圧送される燃料の圧力（燃料圧）を検出する燃料圧センサからのアナログ信号である燃料圧信号が入力されると共に、ＣＰＵによりＡ／Ｄ変換時刻が設定され、そのＡ／Ｄ変換時刻にて燃料圧信号をＡ／Ｄ変換して、そのＡ／Ｄ変換値を記憶する。
【００１３】
そして、この燃料噴射制御装置において、ＣＰＵは、エンジンのクランク軸の回転に同期して起動される第１の処理ルーチンにより（詳しくは、その第１の処理ルーチンを実行することにより）、駆動手段に対して開弁動作開始時刻を設定すると共に、燃料圧取得記憶手段に対してＡ／Ｄ変換時刻を設定する。
【００１４】
尚、その第１の処理ルーチンによって設定された開弁動作開始時刻になると、駆動手段が燃料噴射弁を開弁させる動作を開始し、また、その第１の処理ルーチンによって設定されたＡ／Ｄ変換時刻になると、燃料圧取得記憶手段が燃料圧信号をＡ／Ｄ変換して、そのＡ／Ｄ変換値を記憶する。
【００１５】
そして、ＣＰＵは、第１の処理ルーチンが終了した後に起動される第２の処理ルーチンにより（詳しくは、その第２の処理ルーチンを実行することにより）、第１の処理ルーチンで駆動手段に設定した開弁動作開始時刻と、エンジンの運転状態に応じた要求噴射量と、燃料圧取得記憶手段に記憶されたＡ／Ｄ変換値とに基づき、前記開弁動作開始時刻の到来により開弁する燃料噴射弁に前記要求噴射量だけの燃料を噴射させるための閉弁動作開始時刻を算出し、その算出した閉弁動作開始時刻を駆動手段に設定する。
【００１６】
尚、その第２の処理ルーチンによって設定された閉弁動作開始時刻になると、駆動手段が燃料噴射弁を閉弁させる動作を開始する。また、閉弁動作開始時刻を算出する手順の具体例を説明すると、第２の処理ルーチンでは、まず、燃料噴射弁から噴射すべき要求噴射量と、燃料圧取得記憶手段に記憶されたＡ／Ｄ変換値（即ち、燃料圧の検出値）とに基づいて、燃料噴射弁に要求噴射量だけの燃料を噴射させるための噴射時間を算出し、開弁動作開始時刻から、その算出した噴射時間だけ進んだ時刻を、閉弁動作開始時刻として算出する。
【００１７】
つまり、請求項１の燃料噴射制御装置では、駆動手段に開弁動作開始時刻を設定する第１の処理ルーチンと、その後に起動されて閉弁動作開始時刻を算出し駆動手段に設定する第２の処理ルーチンとの、何れにおいても、燃料圧信号のＡ／Ｄ変換は実施せず、第１の処理ルーチンにて、燃料圧取得記憶手段にＡ／Ｄ変換時刻を設定しておき、第２の処理ルーチンでは、燃料圧取得記憶手段に記憶されたＡ／Ｄ変換値を用いて、閉弁動作開始時刻を算出するようになっている。
【００１８】
そして、この燃料噴射制御装置によれば、第１の処理ルーチンにて、燃料圧信号のＡ／Ｄ変換時刻として、前回の実際の噴射終了時刻から今回の実際の噴射開始時刻までの間の任意の時刻（好ましくは、今回の実際の噴射開始時刻の直前の時刻）を設定することができ、第２の処理ルーチンにて、そのＡ／Ｄ変換時刻でのＡ／Ｄ変換値を用いて、閉弁動作開始時刻を算出することができるようになる。
【００１９】
尚、図１０に示すように、実際の噴射開始時刻とは、開弁動作開始時刻ｔｐｏｎから、駆動手段の動作によって燃料噴射弁が実際に開弁し始めるまでの開弁遅れ時間Ｔｄ１が経過した時刻（図１０のｔｉｏｎ）であり、その開弁遅れ時間Ｔｄ１は、燃料噴射弁及び駆動手段の特性により決まる。よって、実際の噴射開始時刻ｔｉｏｎは、開弁動作開始時刻ｔｐｏｎに開弁遅れ時間Ｔｄ１を加えた値として算出することができる。同様に、実際の噴射終了時刻とは、閉弁動作開始時刻ｔｐｏｆｆから、駆動手段の動作によって燃料噴射弁が実際に閉弁するまでの閉弁遅れ時間Ｔｄ２が経過した時刻（図１０のｔｉｏｆｆ）であり、その閉弁遅れ時間Ｔｄ２も、燃料噴射弁及び駆動手段の特性により決まる。よって、実際の噴射終了時刻ｔｉｏｆｆは、閉弁動作開始時刻ｔｐｏｆｆに閉弁遅れ時間Ｔｄ２を加えた値として算出することができる。
【００２０】
このため、請求項１の燃料噴射制御装置によれば、閉弁動作開始時刻（結局は、噴射時間）を、燃料噴射中の燃料圧に基づいて算出してしまうことを防止することができる。
例えば、第１の処理ルーチンの実行期間が前回の燃料噴射中の期間と重なったとしても、また、第２の処理ルーチンの実際の実行開始タイミングが、今回の実際の噴射開始時刻の後まで遅れてしまったとしても、第２の処理ルーチンでは、前回の実際の噴射終了時刻から今回の実際の噴射開始時刻までの間の時刻での燃料圧に基づいて、今回の燃料噴射の閉弁動作開始時刻を算出することができるようになる。よって、前述した従来の技術手法よりも、噴射量の制御精度を良好にすることができる。
【００２１】
また、第２の処理ルーチンでは、Ａ／Ｄ変換を実施しないので、その分、第２の処理ルーチンの実行所要時間を短くすることができる。このため、噴射時間が短くなる場合であって、第２の処理ルーチンの実行開始時から閉弁動作開始時刻までの残り時間が短くなる場合でも、その閉弁動作開始時刻の駆動手段への設定が間に合わなくなる、という状況の発生を回避し易くなる。
【００２２】
次に、請求項２の燃料噴射制御装置では、請求項１の燃料噴射制御装置において、燃料圧取得記憶手段は、ＣＰＵにより、Ａ／Ｄ変換時刻として、Ａ／Ｄ変換の開始時刻が設定され、そのＡ／Ｄ変換の開始時刻から一定時間Ｔｓ毎に、燃料圧信号を２回以上の所定回数Ａ／Ｄ変換すると共に、その各Ａ／Ｄ変換値を記憶する。
【００２３】
この燃料噴射制御装置によれば、例えば、ＣＰＵは、第２の処理ルーチンにて、燃料圧取得記憶手段に記憶されたＡ／Ｄ変換値の中から、今回の実際の噴射開始時刻よりも前で、且つ、今回の実際の噴射開始時刻に最も近い時刻にＡ／Ｄ変換されたＡ／Ｄ変換値（即ち、今回の噴射開始直前のＡ／Ｄ変換値）を１つ選択し、その選択したＡ／Ｄ変換値を用いて、閉弁動作開始時刻を算出するように構成することができる。そして、このように構成しても、今回の噴射開始直前における燃料圧の検出値を用いて閉弁動作開始時刻を算出することを、実現することができる。尚、各Ａ／Ｄ変換値がＡ／Ｄ変換された時刻は、Ａ／Ｄ変換の開始時刻と、上記一定時間Ｔｓと、各Ａ／Ｄ変換値がＡ／Ｄ変換された順番とから、計算することができる。
【００２４】
また、請求項２の燃料噴射制御装置は、例えば請求項３に記載の如く構成することもできる。即ち、ＣＰＵは、第２の処理ルーチンでは、燃料圧取得記憶手段に記憶された複数のＡ／Ｄ変換値の少なくとも一部の平均値を算出し、その平均値を用いて閉弁動作開始時刻を算出するように構成することができる。
【００２５】
そして、そのように構成した請求項３の燃料噴射制御装置によれば、燃料圧信号に重畳するノイズや、燃料圧信号に生じる脈動の影響を抑えて、噴射量の制御精度を向上させることができる。燃料圧信号に生じる脈動としては、例えば、燃料噴射弁による燃料の噴射に起因する脈動がある。つまり、燃料噴射弁が噴射状態から閉弁したときに燃料の慣性で衝撃が発生して燃料圧が振動し、その振動が燃料圧信号に現れて該燃料圧信号の脈動となる。また、燃料圧信号に生じる脈動としては、燃料ポンプによる燃料の圧送に起因する脈動もある。
【００２６】
尚、請求項３の燃料噴射制御装置において、第１の処理ルーチンでは、Ａ／Ｄ変換時刻（即ち、Ａ／Ｄ変換の開始時刻）として、所定回数のＡ／Ｄ変換が、前回の実際の噴射終了時刻から今回の実際の噴射開始時刻までの間（以下、今回噴射前の非噴射期間という）に全て実施されることとなる時刻を設定すれば良い。
【００２７】
また、所定回数のＡ／Ｄ変換が今回噴射前の非噴射期間に全て実施されなくても、第２の処理ルーチンにて、燃料圧取得記憶手段に記憶された複数のＡ／Ｄ変換値の中から、今回噴射前の非噴射期間にＡ／Ｄ変換されたＡ／Ｄ変換値を選択し、その選択したＡ／Ｄ変換値の平均値を用いて閉弁動作開始時刻を算出すれば、問題はない。
【００２８】
ところで、もし、前述した従来の第２の技術手法において、噴射パルスのオフタイミングをタイマに設定する割込処理にて、燃料圧信号のＡ／Ｄ変換を複数回実施すると共に、その複数回分のＡ／Ｄ変換値を平均化するように構成したならば、その割込処理の実行所要時間が長くなりすぎて、噴射パルスのオフタイミングの設定が間に合わなくなる可能性が非常に大きくなってしまう。これに対して、請求項３の燃料噴射制御装置によれば、第２の処理ルーチンでＡ／Ｄ変換を行うわけではないため、その第２の処理ルーチンの実行所要時間が長くならず問題はない。
【００２９】
次に、請求項４の燃料噴射制御装置では、請求項３の燃料噴射制御装置において、ＣＰＵは、第２の処理ルーチンでは、燃料圧取得記憶手段に記憶された複数のＡ／Ｄ変換値の中から、燃料噴射弁による燃料の噴射と燃料ポンプによる燃料の圧送との何れかに起因して燃料圧信号に生じる脈動の周期のｎ分の１（ｎは２以上の偶数）の間隔でＡ／Ｄ変換された「ｎ×Ｎ」個（Ｎは１以上の整数）のＡ／Ｄ変換値を選別し、その選別したＡ／Ｄ変換値の平均値を用いて閉弁動作開始時刻を算出する。
【００３０】
そして、この燃料噴射制御装置によれば、上記脈動の周期の整数（Ｎ）倍分の個数のＡ／Ｄ変換値について、平均値を算出することとなり、その平均値が上記脈動の影響を受けない値になり易い。このため、噴射量の制御精度を一層向上させることができる。
【００３１】
また、請求項５の燃料噴射制御装置では、請求項３の燃料噴射制御装置において、燃料圧取得記憶手段によるＡ／Ｄ変換間隔である一定時間Ｔｓは、燃料噴射弁による燃料の噴射と燃料ポンプによる燃料の圧送との何れかに起因して燃料圧信号に生じる脈動の周期のｎ分の１（ｎは２以上の偶数）の時間であり、ＣＰＵは、第２の処理ルーチンでは、燃料圧取得記憶手段に記憶された「ｎ×Ｎ」個（Ｎは１以上の整数）のＡ／Ｄ変換値（より詳しくは、Ａ／Ｄ変換順序が連続した「ｎ×Ｎ」個のＡ／Ｄ変換値）の平均値を算出し、その平均値を用いて閉弁動作開始時刻を算出する。
【００３２】
そして、この燃料噴射制御装置によっても、請求項４の燃料噴射制御装置について述べた効果と同じ効果が得られる。
次に、請求項６の燃料噴射制御装置では、請求項２〜５の燃料噴射制御装置において、燃料圧取得記憶手段は、前記各Ａ／Ｄ変換値と対応付けて、そのＡ／Ｄ変換値のＡ／Ｄ変換実施時刻を特定可能な時刻情報も記憶する。尚、時刻情報としては、Ａ／Ｄ変換値のＡ／Ｄ変換実施時刻そのものでも良いし、例えば、Ａ／Ｄ変換値を記憶した時刻でも良い。
【００３３】
この構成によれば、燃料圧取得記憶手段に記憶された時刻情報により、各Ａ／Ｄ変換値がいつの燃料圧を示しているかを、容易に判別することができる。
このため、第２の処理ルーチンにて、燃料圧取得記憶手段に記憶されたＡ／Ｄ変換値のうち、今回の実際の噴射開始時刻よりも前で、且つ、今回の実際の噴射開始時刻にできるだけ近い時刻にＡ／Ｄ変換されたＡ／Ｄ変換値を用いて、閉弁動作開始時刻を算出するように構成するのに有利である。
【００３４】
例えば、請求項３〜５の燃料噴射制御装置ならば、ＣＰＵが、第２の処理ルーチンにて、燃料圧取得記憶手段に記憶されたＡ／Ｄ変換値の中から、平均化する対象として、今回の実際の噴射開始時刻よりも前で、且つ、今回の実際の噴射開始時刻にできるだけ近い時刻にＡ／Ｄ変換された複数のＡ／Ｄ変換値を選択するように構成することができるが、上記時刻情報があれば、平均化対象のＡ／Ｄ変換値を選択するための処理が容易になる。
【００３５】
また例えば、請求項２の燃料噴射制御装置において、前述したように、ＣＰＵが、第２の処理ルーチンにて、燃料圧取得記憶手段に記憶されたＡ／Ｄ変換値の中から、今回の噴射開始直前のＡ／Ｄ変換値を１つ選択するように構成する場合にも、上記時刻情報があれば、その選択のための処理が容易になる。
【００３６】
一方、請求項７の燃料噴射制御装置では、請求項１の燃料噴射制御装置において、ＣＰＵは、第１の処理ルーチンにより設定したＡ／Ｄ変換時刻よりも前に、第２の処理ルーチンを実行する場合、その第２の処理ルーチンでは、前回の燃料噴射の閉弁動作開始時刻を算出するために燃料圧取得記憶手段によりＡ／Ｄ変換された燃料圧信号のＡ／Ｄ変換値（換言するならば、前回の当該第２の処理ルーチンの前に実行された第１の処理ルーチンにより設定されたＡ／Ｄ変換時刻で燃料圧取得記憶手段によりＡ／Ｄ変換された燃料圧信号のＡ／Ｄ変換値であり、以下、前回のＡ／Ｄ変換値という）を用いて、今回の燃料噴射の閉弁動作開始時刻を算出する。
【００３７】
この構成によれば、第２の処理ルーチンが、第１の処理ルーチンで設定したＡ／Ｄ変換時刻よりも前に実行される場合でも、前回のＡ／Ｄ変換値を用いて、今回の燃料噴射の閉弁動作開始時刻を確実に算出することができるようになる。
【００３８】
尚、第２の処理ルーチンが、第１の処理ルーチンで設定したＡ／Ｄ変換時刻よりも前に実行される場合としては、第２の処理ルーチンの起動要求タイミングが、開弁動作開始時刻よりも前に設定される場合が考えられる。そして更に、その場合としては、噴射時間が非常に短くなる場合であって、開弁動作開始時刻が到来してから第２の処理ルーチンを開始したのでは、閉弁動作開始時刻の設定が間に合わなくなる（つまり、算出される閉弁動作開始時刻よりも、それを駆動手段に設定するタイミングの方が後になってしまう）ことが予測される場合である。
【００３９】
次に、請求項８の燃料噴射制御装置では、請求項７の燃料噴射制御装置において、ＣＰＵは、第１の処理ルーチンにより設定したＡ／Ｄ変換時刻よりも前に、第２の処理ルーチンを実行する場合、その第２の処理ルーチンでは、上記前回のＡ／Ｄ変換値から、今回の燃料噴射の開始時において燃料噴射弁に圧送されている燃料の圧力を推定し、その推定値を用いて、今回の燃料噴射の閉弁動作開始時刻を算出する。
【００４０】
この構成によれば、前回のＡ／Ｄ変換値をそのまま用いるよりも、噴射量の制御精度を良好にすることができる。
尚、上記推定値（即ち、今回の燃料噴射開始時の燃料圧）は、例えば、前回の開弁動作開始時刻から今回の開弁動作開始時刻までの時間、前回の要求噴射量（つまり、前回の燃料噴射量）、前回の開弁動作開始時刻から今回の開弁動作開始時刻までの間の、燃料ポンプからの燃料圧送量及び燃料噴射弁のリーク量等を加味して算出することができる。
【００４１】
また、請求項８の燃料噴射制御装置の具体的構成としては、例えば請求項９に記載のものが考えられる。即ち、ＣＰＵは、第２の処理ルーチンでは、当該第２の処理ルーチンの前に実行した第１の処理ルーチンにより設定したＡ／Ｄ変換時刻が過ぎているか否かを判定し、そのＡ／Ｄ変換時刻が過ぎていなければ、上記前回のＡ／Ｄ変換値から、今回の燃料噴射の開始時において燃料噴射弁に圧送されている燃料の圧力を推定し、その推定値を用いて、今回の燃料噴射の閉弁動作開始時刻を算出する。
【００４２】
一方、燃料圧センサとしては、燃料ポンプにより圧送される燃料を貯留して燃料噴射弁に供給するコモンレールに取り付けられて、そのコモンレール内の燃料圧（コモンレール圧と呼ばれる）を検出するコモンレール圧センサが考えられる。また、燃料圧センサとしては、コモンレールから燃料噴射弁に至る燃料供給経路に取り付けられて、その燃料供給経路から燃料噴射弁に供給される燃料の圧力（インレット圧と呼ばれる）を検出するインレット圧センサも考えられる。
【００４３】
ところで、コモンレールよりも上記燃料供給経路の方が容積が小さいため、図１０に示すように、コモンレール圧よりもインレット圧の方が、燃料噴射に伴う変動が大きくなる。よって、燃料圧センサとして、コモンレール圧センサを用いた場合よりも、インレット圧センサを用いた場合の方が、燃料噴射に伴う燃料圧信号の変動が大きくなり、従来技術の問題が顕著になる。燃料噴射中の燃料圧信号のＡ／Ｄ変換値を用いて噴射時間及び閉弁動作開始時刻を算出してしまった場合に、実際の燃料噴射量と要求噴射量との差が一層大きくなるからである。
【００４４】
そこで特に、請求項１〜９の燃料噴射制御装置において、請求項１０に記載の如く、燃料圧センサが上記インレット圧センサであれば、従来技術と比較して、噴射量制御精度の向上効果が一層大きくなる。つまり、本発明の有利性が大きくなる。
【図面の簡単な説明】
【００４５】
【図１】実施形態の燃料噴射制御装置を表す構成図である。
【図２】第１実施形態のＮＥパルス割込処理を表すフローチャートである。
【図３】第１実施形態の噴射終了セット用割込処理を表すフローチャートである。
【図４】第１実施形態の作用を説明するタイムチャートである。
【図５】第２実施形態のＮＥパルス割込処理を表すフローチャートである。
【図６】第２実施形態の噴射終了セット用割込処理を表すフローチャートである。
【図７】第２実施形態の作用を説明するタイムチャートである。
【図８】第３実施形態を説明するタイムチャートである。
【図９】第３実施形態の噴射終了セット用割込処理を表すフローチャートである。
【図１０】実際の噴射開始時刻及び実際の噴射終了時刻を説明すると共に、燃料噴射に伴うコモンレール圧とインレット圧との変動の差を説明する説明図である。
【発明を実施するための形態】
【００４６】
以下に、本発明が適用された実施形態の燃料噴射制御装置について説明する。
図１に示すように、本実施形態の燃料噴射制御装置（以下、ＥＣＵという）１１は、車載ディーゼルエンジン１３の各気筒（本実施形態では４つの気筒）＃１〜＃４に設けられている燃料噴射弁（インジェクタ）Ｉ１〜Ｉ４を駆動して、そのエンジン１３への燃料噴射を制御するものである。尚、本実施形態において、燃料噴射弁Ｉ１〜Ｉ４は、コイルへの通電によって開弁する電磁弁式のものである。
【００４７】
各燃料噴射弁Ｉ１〜Ｉ４には、燃料の蓄圧室であるコモンレール１５から燃料供給経路１７を介して燃料が供給される。また、コモンレール１５には、車両の燃料タンク１９に貯留された燃料が、燃料ポンプ２１によって圧送される。燃料ポンプ２１は、例えば、エンジン１３のクランク軸の回転により駆動されてポンプ動作を行う機関駆動式の高圧ポンプである。
【００４８】
また、コモンレール１５から各燃料噴射弁Ｉ１〜Ｉ４への燃料供給経路１７において、燃料噴射弁Ｉ１〜Ｉ４側の端（即ち、燃料噴射弁Ｉ１〜Ｉ４の燃料入口）には、その燃料噴射弁Ｉｘ（ｘは１〜４の何れか）に供給される燃料の圧力（燃料圧）を検出する燃料圧センサ（インレット圧センサ）ＰＳが設けられている。
【００４９】
そして、その各燃料噴射弁Ｉ１〜Ｉ４の燃料圧センサＰＳから出力されるアナログの燃料圧信号や、エンジン１３の運転状態を検出するための他の各種センサ信号が、ＥＣＵ１１に入力される。他のセンサ信号としては、例えば、周知のクランク角センサ２３からのクランク角信号や、エンジン１３への吸入空気量を検出する吸気量センサからの信号や、水温センサからの信号や、アクセル踏み込み量センサからの信号や、空燃比センサからの信号等がある。
【００５０】
一方、ＥＣＵ１１は、マイコン３１と、波形整形回路３３と、入力回路３５と、駆動回路３７とを備えている。
そして、クランク角センサ２３からのクランク角信号は、波形整形回路３３により矩形波に波形整形されてマイコン３１に入力される。尚、波形整形後のクランク角信号は、エンジン１３のクランク軸が所定角度回転する毎に立ち上がりエッジが生じるパルス信号（以下、ＮＥパルスという）となり、そのＮＥパルスがマイコン３１に入力される。
【００５１】
また、各燃料噴射弁Ｉ１〜Ｉ４の燃料圧センサＰＳからの燃料圧信号や、他のアナログのセンサ信号は、入力回路３５を介してマイコン３１に入力され、そのマイコン３１が備えるＡ／Ｄ変換器（以下、ＡＤＣという）４１によってＡ／Ｄ変換される。
【００５２】
駆動回路３７は、図１では１つのみ示しているが、燃料噴射弁Ｉ１〜Ｉ４の各々について設けられている。そして、駆動回路３７は、マイコン３１から出力される通電パルスがアクティブレベル（本実施形態ではハイレベル）になると、駆動対象の燃料噴射弁Ｉｘのコイルに通電して該燃料噴射弁Ｉｘを開弁させ、通電パルスが非アクティブレベル（本実施形態ではローレベル）に戻ると、上記コイルへの通電を停止して燃料噴射弁Ｉｘを閉弁させる。
【００５３】
マイコン３１は、ＡＤＣ４１に加えて、ＣＰＵ（中央処理装置）４２、ＣＰＵ４２により実行されるプログラムが格納されたＲＯＭ４３、ＣＰＵ４２による演算結果等を記憶するＲＡＭ４４、フリーランタイマ４５、エッジ時刻キャプチャ部４６、ＡＤＣ制御回路４７、ＤＭＡコントローラ（Direct Memory Access Controller、以下、ＤＭＡＣという）４８、及びタイマ４９も備えており、それらは、マイコン３１内のバス５０を介して接続されている。
【００５４】
エッジ時刻キャプチャ部４６は、ＮＥパルスに立ち上がりエッジが生じる毎に、その時のフリーランタイマ４５の値をエッジ発生時刻として記憶すると共に、割込要求（以下、ＮＥ割込要求という）を発生する。
【００５５】
ＡＤＣ制御回路４７は、ＣＰＵ４２の動作とは独立してＡＤＣ４１を作動させる回路であり、動作モードとして、単発のタイマトリガＡ／Ｄ変換モードと、連続のタイマトリガＡ／Ｄ変換モードとを有している。
【００５６】
まず、単発のタイマトリガＡ／Ｄ変換モードにおいて、ＡＤＣ制御回路４７は、ＣＰＵ４２により、Ａ／Ｄ変換時刻（Ａ／Ｄ変換を行う時刻）と、Ａ／Ｄ変換対象チャンネル（Ａ／Ｄ変換対象の入力チャンネル）とが設定される。そして、ＡＤＣ制御回路４７は、ＣＰＵ４２により設定されたＡ／Ｄ変換時刻の到来を検知すると、ＡＤＣ４１を起動して、該ＡＤＣ４１にＡ／Ｄ変換対象チャンネルへの入力信号をＡ／Ｄ変換させると共に、ＤＭＡＣ４８に、そのＡＤＣ４１によるＡ／Ｄ変換値をＲＡＭ４４へＤＭＡ転送させる。
【００５７】
次に、連続のタイマトリガＡ／Ｄ変換モードにおいて、ＡＤＣ制御回路４７は、ＣＰＵ４２により、Ａ／Ｄ変換時刻と、Ａ／Ｄ変換対象チャンネルとに加え、更に、Ａ／Ｄ変換周期Ｔａｄと、２以上のＡ／Ｄ変換回数Ｎａｄとが設定される。そして、ＡＤＣ制御回路４７は、ＣＰＵ４２により設定されたＡ／Ｄ変換時刻の到来を検知した時と、その時点からＡ／Ｄ変換周期Ｔａｄが経過した時毎に、ＡＤＣ４１を、その起動回数がＡ／Ｄ変換回数Ｎａｄに達するまで繰り返し起動して、該ＡＤＣ４１にＡ／Ｄ変換対象チャンネルへの入力信号をＡ／Ｄ変換させ、更に、Ａ／Ｄ変換が完了した時毎に、ＤＭＡＣ４８に、ＡＤＣ４１による今回のＡ／Ｄ変換値をＲＡＭ４４へＤＭＡ転送させる。
【００５８】
尚、ＡＤＣ制御回路４７は、現在時刻を示すフリーランタイマ４５の値と、ＣＰＵ４２により設定されたＡ／Ｄ変換時刻とを比較する比較器を備えており、その比較器により、Ａ／Ｄ変換時刻の到来を検知する。また同様に、フリーランタイマ４５の値に基づき、Ａ／Ｄ変換周期Ｔａｄの経過を検知する。
【００５９】
また更に、ＡＤＣ制御回路４７が連続のタイマトリガＡ／Ｄ変換モードである場合、ＤＭＡＣ４８は、各Ａ／Ｄ変換値をＲＡＭ４４にＤＭＡ転送する時に、その時の時刻であるフリーランタイマ４５の値（即ち、Ａ／Ｄ変換値のＲＡＭ４４へのＤＭＡ転送時刻であり、Ａ／Ｄ変換値をＲＡＭ４４に記憶した時刻）も、ＲＡＭ４４に記憶する。
【００６０】
ここで、ＲＡＭ４４には、複数のＡ／Ｄ変換値を記憶するためのＡ／Ｄ変換値記憶領域と、その複数のＡ／Ｄ変換値のＤＭＡ転送時刻を記憶するためのＤＭＡ転送時刻記憶領域とが設定されている。
【００６１】
そして、上記単発のタイマトリガＡ／Ｄ変換モードの場合には、ＲＡＭ４４のＡ／Ｄ変換値記憶領域のうちの特定の記憶領域（以下、特定領域という）に、ＡＤＣ４１によるＡ／Ｄ変換値が更新記憶される。よって、ＣＰＵ４２は、ＲＡＭ４４の上記特定領域から、ＡＤＣ制御回路４７に設定したＡ／Ｄ変換時刻でのＡ／Ｄ変換値を読み取ることができる。
【００６２】
また、上記連続のタイマトリガＡ／Ｄ変換モードの場合、各Ａ／Ｄ変換値は、Ａ／Ｄ変換値記憶領域の先頭アドレスから順に記憶され、各ＤＭＡ転送時刻も、ＤＭＡ転送時刻記憶領域の先頭アドレスから順に記憶されるようになっている。このため、各ＤＭＡ転送時刻は、それに該当するＡ／Ｄ変換値と対応付けて記憶される（つまり、それがどのＡ／Ｄ変換値に対応するものかが分かるように記憶される）こととなる。よって、ＣＰＵ４２は、ＲＡＭ４４から、各Ａ／Ｄ変換値を読み取ることができると共に、その各Ａ／Ｄ変換値のＤＭＡ転送時刻も読み取ることもできる。
【００６３】
尚、Ａ／Ｄ変換値のＤＭＡ転送時刻は、そのＡ／Ｄ変換値のＡ／Ｄ変換実施時刻とほぼ同じであるが、Ａ／Ｄ変換が実施されてからＡ／Ｄ変換値がＲＡＭ４４にＤＭＡ転送されるまでの時間差分を、ＤＭＡ転送時刻から引けば、より正確なＡ／Ｄ変換実施時刻を求めることができる。また、ＤＭＡＣ４８が、時刻情報として、ＤＭＡ転送時刻ではなく、各Ａ／Ｄ変換値のＡ／Ｄ変換実施時刻を、ＲＡＭ４４に記憶するようになっていても良い。
【００６４】
タイマ４９は、駆動回路３７と同様に、図１では１つのみ示しているが、燃料噴射弁Ｉ１〜Ｉ４の各々について設けられている。
そして、タイマ４９は、燃料噴射弁Ｉｘを駆動するための通電パルスのオン時刻（開弁動作開始時刻に相当）とオフ時刻（閉弁動作開始時刻に相当）とが、ＣＰＵ４２によって設定され、オン時刻の到来を検知すると、対応する駆動回路３７への通電パルスをハイレベルにし、その後、オフ時刻の到来を検知すると、対応する駆動回路３７への通電パルスをローレベルに戻す。このため、タイマ４９に設定されたオン時刻が到来すると、駆動回路３７により燃料噴射弁Ｉｘを開弁させる動作が開始され、タイマ４９に設定されたオフ時刻が到来すると、駆動回路３７により燃料噴射弁Ｉｘを閉弁させる動作が開始されることとなる。
【００６５】
尚、タイマ４９は、現在時刻を示すフリーランタイマ４５の値とＣＰＵ４２により設定されたオン時刻とを比較する第１の比較器と、フリーランタイマ４５の値とＣＰＵ４２により設定されたオフ時刻とを比較する第２の比較器と、を備えている。そして、第１の比較器によりオン時刻の到来を検知し、第２の比較器によりオフ時刻の到来を検知する。一方、１つのタイマ４９を、４つの燃料噴射弁Ｉ１〜Ｉ４の駆動に共用するようになっていても良い。
【００６６】
次に、マイコン３１のＣＰＵ４２が燃料噴射制御のために実行する処理について説明する。尚、以下に説明する処理のプログラムは、ＲＯＭ４３に記憶されている。
［第１実施形態の処理］
第１実施形態では、マイコン３１内のＡＤＣ制御回路４７を、単発のタイマトリガＡ／Ｄ変換モードで動作させる。そして、ＣＰＵ４２は、図２と図３の処理を行う。
【００６７】
まず、図２は、通電パルスのオン時刻と燃料圧信号のＡ／Ｄ変換時刻を設定するためのＮＥパルス割込処理を表すフローチャートである。そして、このＮＥパルス割込処理は、ＮＥパルスに立ち上がりエッジが生じた時に発生するＮＥ割込要求によって起動される。よって、ＮＥパルス割込処理は、エンジン１３のクランク軸が所定角度（例えば１０度）回転する毎に起動される。
【００６８】
図２に示すように、ＣＰＵ４２がＮＥパルス割込処理の実行を開始すると、Ｓ１１０にて、噴射セットタイミングであるか否かを判定する。噴射セットタイミングとは、何れかの気筒に燃料噴射するために、タイマ４９に通電パルスのオン時刻をセット（設定）するべきクランク角のタイミングであり、例えば、各気筒のＴＤＣ（上死点）より所定クランク角だけ前のタイミングである。
【００６９】
そして、噴射セットタイミングでなければ、当該ＮＥパルス割込処理を終了するが、噴射セットタイミングであれば、Ｓ１１５に進む。尚、以下では、今回の噴射対象気筒が＃ｘであり、その気筒＃ｘに対応するタイマ４９にオン時刻を設定する場合を例に挙げて説明する。
【００７０】
Ｓ１１５では、タイマ４９にセットすべき通電パルスのオン時刻を算出する。
具体的には、エッジ時刻キャプチャ部４６に記憶されているＮＥパルスのエッジ発生時刻（即ち、噴射セットタイミングの時刻）と、クランク軸の回転速度（エンジン回転数）とから、燃料噴射を開始すべきクランク角となる予測時刻を算出し、その予測時刻よりも燃料噴射弁Ｉｘの開弁遅れ時間Ｔｄ１だけ前の時刻を、通電パルスのオン時刻として算出する。
【００７１】
尚、このＳ１１５で算出されたオン時刻は、後述するＳ１４０でタイマ４９にセットされる。また、開弁遅れ時間Ｔｄ１は、図１０を用いて説明した通り、タイマ４９にセットした通電パルスのオン時刻が到来してから燃料噴射弁Ｉｘが実際に開弁し始めるまでの遅れ時間であり、ここでは、予め実験又は計算で求めた固定値を用いる。また、クランク軸の回転速度は、図示しない他の処理（例えば、当該ＮＥパルス割込処理におけるＳ１１０よりも前の処理）により、ＮＥパルスの立ち上がり間隔に基づいて算出されている。
【００７２】
そして、次のＳ１２０にて、燃料圧Ａ／Ｄ変換の予約処理を行う。具体的には、ＡＤＣ制御回路４７に対して、Ａ／Ｄ変換時刻と、Ａ／Ｄ変換対象チャンネルとを設定する。
その際に、Ａ／Ｄ変換対象チャンネルとしては、ＡＤＣ４１の入力チャンネルのうち、今回の噴射対象気筒＃ｘに設けられた燃料噴射弁Ｉｘの燃料圧信号（詳しくは、その燃料噴射弁Ｉｘに対して設けられた燃料圧センサＰＳからの燃料圧信号）が入力されている入力チャンネルを設定する。
【００７３】
また、Ａ／Ｄ変換時刻としては、噴射対象気筒＃ｘの前回の実際の噴射終了時刻から今回の実際の噴射開始時刻までの間（今回噴射前の非噴射期間）の時刻を設定すれば良いが、特に本実施形態では、今回の実際の噴射開始時刻の直前の時刻を設定する。詳しく説明すると、図１０を用いて説明したように、今回の実際の噴射開始時刻ｔｉｏｎは、上記Ｓ１１５で算出した通電パルスのオン時刻ｔｐｏｎに、燃料噴射弁Ｉｘの開弁遅れ時間Ｔｄ１を加えた値として算出する。そして、その噴射開始時刻ｔｉｏｎ（＝ｔｐｏｎ＋Ｔｄ１）から、開弁遅れ時間Ｔｄ１よりも小さい一定時間Ｔｂ（図４参照）だけ前の時刻を、Ａ／Ｄ変換時刻として設定する。
【００７４】
次に、Ｓ１３０にて、図３の噴射終了セット用割込処理の起動予約を行う。
ここで、噴射終了セット用割込処理は、当該図２の処理によってオン時刻をセットした通電パルスのオフ時刻を決定し、そのオフ時刻をタイマ４９にセットするための処理である。そして、Ｓ１３０では、噴射終了セット用割込処理を起動させるための割込要求（以下、噴射終了セット用割込要求ともいう）が、上記Ｓ１１５で算出した通電パルスのオン時刻で発生するように、当該マイコン３１の内部設定を行う。
【００７５】
例えば、噴射終了セット用割込処理が、タイマ割込の処理であれば、そのタイマ割込の割込要求を発生させるための割込用タイマに、通電パルスのオン時刻と同じ時刻をセットすれば良い。また例えば、噴射終了セット用割込処理が、通電パルスが立ち上がることで発生する割込要求によって起動される割込処理ならば、その割込を許可する設定を、マイコン３１内の割込制御用レジスタ（図示省略）に対して行えば良い。尚、その割込を許可する設定を、予め起動時等に行うのであれば、Ｓ１３０の処理は省略することができる。
【００７６】
そして、次のＳ１４０にて、上記Ｓ１１５で算出した通電パルスのオン時刻を、噴射対象気筒＃ｘに対応するタイマ４９にセットし、その後、当該ＮＥパルス割込処理を終了する。
【００７７】
このため、図４に示すように、噴射セットタイミングになると、図２のＮＥパルス割込処理におけるＳ１１５〜Ｓ１４０の処理が実行される。そして、タイマ４９に通電パルスのオン時刻ｔｐｏｎがセットされる（Ｓ１１５，Ｓ１４０：図４の（ａ））と共に、噴射終了セット用割込処理を起動させるための噴射終了セット用割込要求をオン時刻ｔｐｏｎで発生させるための設定が行われ（Ｓ１３０：図４の（ｂ））、更に、そのオン時刻ｔｐｏｎから予測算出される実際の噴射開始時刻ｔｉｏｎ（＝ｔｐｏｎ＋Ｔｄ１）の直前の時刻が、Ａ／Ｄ変換時刻としてＡＤＣ制御回路４７に設定される（Ｓ１２０：図４の（ｃ））。
【００７８】
そして、その後、タイマ４９にセットされたオン時刻ｔｐｏｎが到来すると、タイマ４９から駆動回路３７への通電パルスがハイレベルになって、その駆動回路３７による燃料噴射弁Ｉｘの開弁駆動動作が開始されると共に、噴射終了セット用割込要求が発生する。更に、その後、ＡＤＣ制御回路４７に設定されたＡ／Ｄ変換時刻が到来すると、ＡＤＣ４１が起動して、燃料噴射弁Ｉｘの燃料圧信号がＡ／Ｄ変換されると共に、そのＡ／Ｄ変換値がＲＡＭ４４の上記特定領域に記憶されることとなる。
【００７９】
尚、図４における一点鎖線の矢印は、その矢印先のタイミングをＣＰＵ４２が割込処理で設定していることを示している。そして、このことは、後述する図７，図８についても同様である。
【００８０】
ここで、噴射終了セット用割込要求が発生すると、ＣＰＵ４２は、図３に示す噴射終了セット用割込処理の実行を開始する。
そして、ＣＰＵ４２は、まずＳ２１０にて、図４における二点鎖線の矢印で示すように、ＲＡＭ４４の上記特定領域から、Ａ／Ｄ変換時刻でのＡ／Ｄ変換値（燃料圧Ａ／Ｄ変換結果）を読み取る。
【００８１】
尚、本実施形態において、Ａ／Ｄ変換時刻は、通電パルスのオン時刻ｔｐｏｎから、そのＡ／Ｄ変換時刻が到来してＡ／Ｄ変換値のＤＭＡ転送が完了するまでの時間（図４における「Ｔｄ１−Ｔｂ」にＤＭＡ転送所要時間を加えた時間）が、噴射終了セット用割込要求の発生タイミングから噴射終了セット用割込処理の実行が開始されるまでの最小遅れ時間よりも小さくなるように設定される。このため、Ｓ２１０の処理が行われる時点では、Ａ／Ｄ変換時刻が過ぎており、ＡＤＣ４１による燃料圧信号のＡ／Ｄ変換及びＡ／Ｄ変換値のＲＡＭ４４へのＤＭＡ転送は完了している。
【００８２】
次に、Ｓ２２０にて、エンジン１３の運転状態に応じた要求噴射量をＲＡＭ４４から取得する。ここで、要求噴射量は、燃料噴射弁Ｉｘから噴射するべき燃料量であり、例えば一定時間毎に実行される他の噴射量算出処理（図示省略）により、前述した各種センサ信号による検出結果（即ち、エンジン１３の運転状態）に基づいて算出されている。尚、要求噴射量の算出手順自体は、既に様々なものが知られており、また本発明とは直接関係がないため、説明を省略する。
【００８３】
次に、Ｓ２３０にて、今回の噴射時間を算出し、更に、その噴射時間から、タイマ４９にセットすべき通電パルスのオフ時刻を算出する。
具体的に説明すると、まず、Ｓ２１０で取得したＡ／Ｄ変換値（燃料圧の検出値）と、Ｓ２２０で取得した要求噴射量とから、燃料噴射弁Ｉｘに要求噴射量だけの燃料を噴射させるための該燃料噴射弁Ｉｘの開弁時間を、噴射時間として算出する。そして、直前のＮＥパルス割込処理のＳ１４０でタイマ４９にセットしたオン時刻から、その算出した噴射時間だけ進んだ時刻を、通電パルスのオフ時刻として算出する。
【００８４】
尚、噴射時間の算出値は、要求噴射量が大きい場合ほど、また、燃料圧の検出値が小さい場合ほど、長くなる。また、ここでは、燃料噴射弁Ｉｘの開弁遅れ時間Ｔｄ１と、閉弁遅れ時間（通電パルスのオフ時刻が到来してから燃料噴射弁Ｉｘが実際に閉弁するまでの遅れ時間）Ｔｄ２とが、等しいとして説明している。もし、Ｔｄ１とＴｄ２の差を考慮するのであれば、算出した噴射時間を、「Ｔｄ２−Ｔｄ１」の値だけ短い時間に補正し、通電パルスのオン時刻から、その補正した噴射時間だけ進んだ時刻を、オフ時刻とすれば良い。
【００８５】
次に、Ｓ２４０にて、上記Ｓ２３０で算出した通電パルスのオフ時刻ｔｐｏｆｆを、噴射対象気筒＃ｘに対応するタイマ４９にセットし（図４の（ｄ）参照）、その後、当該噴射終了セット用割込処理を終了する。
【００８６】
そして、その後、タイマ４９にセットされたオフ時刻ｔｐｏｆｆが到来すると、図４に示すように、タイマ４９から駆動回路３７への通電パルスがローレベルになり、その駆動回路３７による燃料噴射弁Ｉｘへの通電が停止して、該燃料噴射弁Ｉｘが閉弁する。
【００８７】
以上のような第１実施形態のＥＣＵ１１では、タイマ４９に通電パルスのオン時刻を設定するＮＥパルス割込処理と、その後に起動されて通電パルスのオフ時刻を算出しタイマ４９に設定する噴射終了セット用割込処理との、何れにおいても、燃料圧信号のＡ／Ｄ変換は実施せず、ＮＥパルス割込処理にて、ＡＤＣ制御回路４７にＡ／Ｄ変換時刻を設定しておき、噴射終了セット用割込処理では、ＲＡＭ４４の特定領域に記憶された上記Ａ／Ｄ変換時刻でのＡ／Ｄ変換値を用いて、通電パルスのオフ時刻（噴射時間）を算出するようになっている。
【００８８】
このため、ＮＥパルス割込処理にて、燃料圧信号のＡ／Ｄ変換時刻として、前回の実際の噴射終了時刻から今回の実際の噴射開始時刻までの間の任意の時刻（本実施形態では、実際の噴射開始時刻の直前の時刻）を設定し、噴射終了セット用割込処理にて、そのＡ／Ｄ変換時刻でのＡ／Ｄ変換値を用いて、通電パルスのオフ時刻を算出することができる。
【００８９】
よって、図４に示すように、噴射終了セット用割込処理の実行開始タイミングが、それ以上の優先順位を有した他の処理の実行等によって遅れ、今回の実際の噴射開始時刻ｔｉｏｎより後になってしまったとしても、噴射終了セット用割込処理では、今回の実際の噴射開始時刻ｔｉｏｎの直前で燃料圧信号をＡ／Ｄ変換したＡ／Ｄ変換値を用いて、今回の通電パルスのオフ時刻ｔｐｏｆｆを算出することができるようになる。よって、通電パルスのオフ時刻（結局は、噴射時間）を、燃料噴射中の低下した燃料圧の検出値を用いて算出してしまう、ということを容易に回避でき、従来の技術手法よりも、噴射量の制御精度を良好にすることができる。
【００９０】
また仮に、噴射終了セット用割込処理の直前のＮＥパルス割込処理（即ち、噴射セットタイミングでのＮＥ割込要求によって起動したＮＥパルス割込処理）が、前回の燃料噴射中に実行されたとしても、そのＮＥパルス割込処理中でＡ／Ｄ変換を実施するわけではないため、上記の効果が得られることとなる。
【００９１】
更に、噴射終了セット用割込処理においてもＡ／Ｄ変換は実施しないので、その分、噴射終了セット用割込処理の実行所要時間を短くすることができる。このため、噴射時間が短くなる場合であって、噴射終了セット用割込処理の実行開始時から通電パルスのオフ時刻ｔｐｏｆｆまでの残り時間が短くなる場合でも、そのオフ時刻ｔｐｏｆｆのタイマ４９へのセットが間に合わなくなる、という状況の発生を回避し易くなる。
【００９２】
尚、図３の噴射終了セット用割込処理は、ＡＤＣ４１による燃料圧信号のＡ／Ｄ変換が完了することで発生するＡ／Ｄ変換完了割込要求によって起動される割込処理であっても良い。その場合、図２におけるＳ１３０では、その割込を許可する設定を行えば良く、また、その割込を許可する設定を、予め起動時等に行うのであれば、Ｓ１３０の処理は省略することができる。
【００９３】
一方、本第１実施形態では、タイマ４９と駆動回路３７が、駆動手段に相当し、ＡＤＣ制御回路４７、ＡＤＣ４１、ＤＭＡＣ４８及びＲＡＭ４４が、燃料圧取得記憶手段に相当している。そして、図２のＮＥパルス割込処理（詳しくは、そのうちのＳ１１５〜Ｓ１４０の処理）が、第１の処理ルーチンに相当し、図３の噴射終了セット用割込処理が、第２の処理ルーチンに相当している。
［第２実施形態の処理］
次に、第２実施形態について、第１実施形態と異なる点を説明する。
【００９４】
第２実施形態では、マイコン３１内のＡＤＣ制御回路４７を、連続のタイマトリガＡ／Ｄ変換モードで動作させる。つまり、ＡＤＣ４１による燃料圧信号のＡ／Ｄ変換を、複数回連続して実施する。
【００９５】
そして、ＣＰＵ４２は、図２のＮＥパルス割込処理に代えて、図５のＮＥパルス割込処理を実行し、図３の噴射終了セット用割込処理に代えて、図６の噴射終了セット用割込処理を行う。
【００９６】
まず、図５のＮＥパルス割込処理では、図２のＮＥパルス割込処理と比較すると、Ｓ１２０に代えて、Ｓ１２５の処理を行う。
そして、そのＳ１２５では、燃料圧Ａ／Ｄ変換の予約処理として、ＡＤＣ制御回路４７に対し、Ａ／Ｄ変換の開始時刻としてのＡ／Ｄ変換時刻ｔｓｔと、Ａ／Ｄ変換対象チャンネルと、Ａ／Ｄ変換周期Ｔａｄと、Ａ／Ｄ変換回数Ｎａｄとを設定する（図７参照）。そして更に、ＲＡＭ４４のＡ／Ｄ変換値記憶領域とＤＭＡ転送時刻記憶領域とをクリアする。
【００９７】
このＳ１２５で設定するＡ／Ｄ変換対象チャンネルは、第１実施形態で述べた通りである。
また、Ａ／Ｄ変換時刻（Ａ／Ｄ変換の開始時刻）ｔｓｔとしても、噴射対象気筒＃ｘの前回の実際の噴射終了時刻から今回の実際の噴射開始時刻までの間の時刻を設定するが、本第２実施形態では、図７に示すように、Ａ／Ｄ変換時刻ｔｓｔとＡ／Ｄ変換周期Ｔａｄは、そのＡ／Ｄ変換時刻ｔｓｔから今回の実際の噴射開始時刻ｔｉｏｎまでの間に、２回以上の目標回数のＡ／Ｄ変換が実施できる値を設定する。そして、その目標回数と同じ値か、それよりも大きい値を、Ａ／Ｄ変換回数Ｎａｄとして設定する。
【００９８】
尚、図７は、上記目標回数が６で、Ａ／Ｄ変換回数Ｎａｄが８に設定された場合を例示している。また、Ａ／Ｄ変換周期Ｔａｄ（請求項２に記載の一定時間Ｔｓに相当）と、Ａ／Ｄ変換回数Ｎａｄ（請求項２に記載の所定回数に相当）との、両方又は一方が、可変ではなく固定値になっている構成でも良い。
【００９９】
次に、図６の噴射終了セット用割込処理では、まずＳ３１０にて、図５のＳ１１５で算出してＳ１４０でタイマ４９にセットした通電パルスのオン時刻ｔｐｏｎを、ＲＡＭ４４又はタイマ４９から取得し（読み込み）、次のＳ３２０にて、そのオン時刻ｔｐｏｎに燃料噴射弁Ｉｘの開弁遅れ時間Ｔｄ１を加えることで、今回の実際の噴射開始時刻ｔｉｏｎを算出する。
【０１００】
そして、次のＳ３３０にて、ＲＡＭ４４のＡ／Ｄ変換値記憶領域に記憶されているＡ／Ｄ変換値の中から、上記Ｓ３２０で算出した噴射開始時刻ｔｉｏｎよりも前にＡ／Ｄ変換されたＡ／Ｄ変換値を、後述のＳ３４０で平均化する対象として選択し取得する。
【０１０１】
具体的に説明すると、本実施形態では、図７における二点鎖線の矢印で示すように、ＲＡＭ４４のＤＭＡ転送時刻記憶領域に記憶されているＤＭＡ転送時刻の中から、噴射開始時刻ｔｉｏｎよりも前のＤＭＡ転送時刻を選択し、ＲＡＭ４４のＡ／Ｄ変換値記憶領域から、その選択したＤＭＡ転送時刻に対応する各Ａ／Ｄ変換値を、平均化対象として選択し取得する。尚、図７は、６個のＡ／Ｄ変換値を取得した場合を例示している。
【０１０２】
そして、次のＳ３４０にて、上記Ｓ３３０で取得したＡ／Ｄ変換値の平均値（以下、燃料圧平均値という）を算出する。
次に、Ｓ３５０にて、図３のＳ２２０と同様に、エンジン１３の運転状態に応じた要求噴射量をＲＡＭ４４から取得する。
【０１０３】
そして、次のＳ３６０にて、図３のＳ２３０と同様の手順で、今回の噴射時間を算出すると共に、その噴射時間から、タイマ４９にセットすべき通電パルスのオフ時刻を算出する。但し、このＳ３６０では、燃料圧の検出値として、Ｓ３４０で算出した燃料圧平均値を用いて、噴射時間及びオフ時刻を算出する。
【０１０４】
次に、Ｓ３７０にて、上記Ｓ３６０で算出した通電パルスのオフ時刻を、噴射対象気筒＃ｘに対応するタイマ４９にセットし、その後、当該噴射終了セット用割込処理を終了する。
【０１０５】
以上のような第２実施形態のＥＣＵ１１によれば、第１実施形態と同様の効果が得られる上に、複数のＡ／Ｄ変換値の平均値を用いて通電時間及びオフ時刻を算出するため、燃料圧信号に重畳するノイズや、燃料圧信号に生じる脈動の影響を抑えて、噴射量の制御精度を向上させることができる。尚、燃料圧信号に生じる脈動としては、前述したように、燃料噴射弁による燃料の噴射に起因する脈動と、燃料ポンプ２１による燃料の圧送に起因する脈動とがある。また、複数回のＡ／Ｄ変換（詳しくは、複数回のＡＤＣ４１の起動）を噴射終了セット用割込処理で行うわけではないため、その噴射終了セット用割込処理の実行所要時間が長くならず、噴射パルスのオフ時刻の設定が間に合わなくなる可能性を低くすることができる。
【０１０６】
また、上記第２実施形態では、ＲＡＭ４４に、各Ａ／Ｄ変換値と対応付けて、そのＡ／Ｄ変換値のＤＭＡ転送時刻（又はＡ／Ｄ変換実施時刻）も記憶するようになっている。
このため、図６のＳ３３０にて、ＲＡＭ４４から平均化対象のＡ／Ｄ変換値を選択する処理が容易になる。つまり、各Ａ／Ｄ変換値のＡ／Ｄ変換実施時刻は、Ａ／Ｄ変換の開始時刻であるＡ／Ｄ変換時刻ｔｓｔと、Ａ／Ｄ変換周期Ｔａｄと、各Ａ／Ｄ変換値のＡ／Ｄ変換順とから、計算して求めることもできるが、そのような計算を省くことができるからである。
【０１０７】
尚、本第２実施形態では、図５のＮＥパルス割込処理（詳しくは、そのうちのＳ１１５〜Ｓ１４０の処理）が、第１の処理ルーチンに相当し、図６の噴射終了セット用割込処理が、第２の処理ルーチンに相当している。
【０１０８】
一方、第２実施形態は、下記の各変形例のように変形することができる。
＜変形例１＞
上記第２実施形態では、Ａ／Ｄ変換回数Ｎａｄを上記目標回数よりも大きい値に設定したため、図６のＳ３４０では、ＲＡＭ４４のＡ／Ｄ変換値記憶領域に記憶されるＡ／Ｄ変換回数Ｎａｄ分のＡ／Ｄ変換値のうち、最大でも、始めの目標回数分のＡ／Ｄ変換値について平均値を算出することになる。つまり、上記第２実施形態では、Ａ／Ｄ変換回数ＮａｄのＡ／Ｄ変換が今回噴射前の非噴射期間に全て実施されないが、噴射終了セット用割込処理にて、ＲＡＭ４４のＡ／Ｄ変換値記憶領域に記憶されたＡ／Ｄ変換値の中から、今回噴射前の非噴射期間にＡ／Ｄ変換されたＡ／Ｄ変換値を選択し、その選択したＡ／Ｄ変換値の平均値を用いて噴射時間及びオフ時刻を算出している。
【０１０９】
これに対して、Ａ／Ｄ変換回数Ｎａｄを上記目標回数と同じ値に設定しても良い。その場合、図７のように、図６の噴射終了セット用割込処理におけるＳ３３０のタイミングが噴射開始時刻ｔｉｏｎよりも後になったならば、図６のＳ３４０では、ＲＡＭ４４のＡ／Ｄ変換値記憶領域に記憶された全てのＡ／Ｄ変換値の平均値を算出することとなる。
＜変形例２＞
図６のＳ３３０では、平均化対象として、噴射開始時刻ｔｉｏｎよりも前にＡ／Ｄ変換された全てのＡ／Ｄ変換値を選択するのではなく、そのＡ／Ｄ変換値のうちで、噴射開始時刻ｔｉｏｎにできるだけ近い時刻にＡ／Ｄ変換された２つ以上の所定数のＡ／Ｄ変換値（つまり、Ａ／Ｄ変換された時刻がｔｉｏｎに近い順の所定数のＡ／Ｄ変換値）を選択するように構成しても良い。
＜変形例３＞
上記第２実施形態では、図５のＳ１２５で設定するＡ／Ｄ変換時刻ｔｓｔが、前回の実際の噴射終了時刻よりも後の時刻であったため、図６のＳ３３０では、必然的に、前回の実際の噴射終了時刻よりも後にＡ／Ｄ変換されたＡ／Ｄ変換値を、平均化対象として選択することとなる。
【０１１０】
これに対し、図６のＳ３２０にて、前回の実際の噴射終了時刻も算出し、Ｓ３３０では、Ｓ３２０で算出された前回の実際の噴射終了時刻から今回の実際の噴射開始時刻までの間にＡ／Ｄ変換された全てのＡ／Ｄ変換値を、平均化対象として選択するか、あるいは更に、その全てのＡ／Ｄ変換値の中から、今回の実際の噴射開始時刻にできるだけ近い時刻にＡ／Ｄ変換された２つ以上の所定数のＡ／Ｄ変換値を、平均化対象として選択するように構成しても良い。このように構成すれば、図５のＳ１２５にて、仮にＡ／Ｄ変換時刻ｔｓｔとして、前回の実際の噴射終了時刻よりも前の時刻を設定したとしても、燃料噴射中のＡ／Ｄ変換値が平均化対象として選択されることはない。
【０１１１】
尚、前回の実際の噴射終了時刻は、前回設定したオフ時刻に、燃料噴射弁Ｉｘの閉弁遅れ時間Ｔｄ２を加えた値として算出することができる。
＜変形例４＞
図６のＳ３３０では、今回の実際の噴射開始時刻ｔｉｏｎよりも前で、且つ、その噴射開始時刻ｔｉｏｎに最も近い時刻にＡ／Ｄ変換された１つのＡ／Ｄ変換値（つまり、噴射開始時刻ｔｉｏｎの直前にＡ／Ｄ変換されたＡ／Ｄ変換値）だけを選択すると共に、Ｓ３４０の処理を削除し、Ｓ３６０では、そのＳ３３０で選択した１つのＡ／Ｄ変換値を用いて、噴射時間及びオフ時刻を算出するように構成しても良い。尚、この場合も、図５のＳ１２５にて、仮にＡ／Ｄ変換時刻ｔｓｔとして、前回の実際の噴射終了時刻よりも前の時刻を設定したとしても問題はない。
＜変形例５＞
上記第２実施形態及び変形例１〜３において、Ａ／Ｄ変換周期Ｔａｄを、燃料噴射弁による燃料の噴射と燃料ポンプ２１による燃料の圧送との何れかに起因して燃料圧信号に生じる脈動（以下、信号脈動という）の周期のｍ分の１（ｍは４以上の偶数）の時間に設定する。
【０１１２】
そして、図６のＳ３３０では、ＲＡＭ４４のＡ／Ｄ変換値記憶領域に記憶されているＡ／Ｄ変換値の中から、前回の実際の噴射終了時刻から今回の実際の噴射開始時刻までの間にＡ／Ｄ変換され、且つ、信号脈動の周期のｎ分の１（ｎは上記ｍよりも小さい２以上の偶数）の間隔でＡ／Ｄ変換された「ｎ×Ｎ」個（Ｎは１以上の整数）のＡ／Ｄ変換値を、平均化対象として選別する。例えば、ｍ＝８，ｎ＝２，Ｎ＝３等の設定が考えられる。
【０１１３】
つまり、Ａ／Ｄ変換周期ＴａｄでＡ／Ｄ変換された各Ａ／Ｄ変換値の中から、「ｍ÷ｎ」個に１個の割合で、且つ、信号脈動のＮ周期分に相当する数だけ、平均化対象としてのＡ／Ｄ変換値を間引いて選択する。
【０１１４】
そして、このように構成すれば、信号脈動の周期の整数（Ｎ）倍分の個数のＡ／Ｄ変換値について、平均値を算出することとなり、その平均値が信号脈動の影響を受けない値になり易い。このため、噴射量の制御精度を一層向上させることができる。
＜変形例６＞
上記第２実施形態及び変形例１〜３において、Ａ／Ｄ変換周期Ｔａｄ自体を、信号脈動の周期のｎ分の１（ｎは２以上の偶数）の時間に設定する。
【０１１５】
そして、図６のＳ３３０では、ＲＡＭ４４のＡ／Ｄ変換値記憶領域に記憶されているＡ／Ｄ変換値の中から、前回の実際の噴射終了時刻から今回の実際の噴射開始時刻までの間にＡ／Ｄ変換され、且つ、Ａ／Ｄ変換順序が連続した「ｎ×Ｎ」個のＡ／Ｄ変換値（好ましくは、今回の実際の噴射開始時刻にできるだけ近い時刻にＡ／Ｄ変換されたもの）を、平均化対象として選択する。このように構成しても、変形例５と同様の効果が得られる。
［第３実施形態の処理］
次に、第３実施形態について、第１実施形態と異なる点を説明する。
【０１１６】
第１の相違点として、図２のＮＥパルス割込処理におけるＳ１３０では、噴射終了セット用割込処理の起動予約処理として、下記の処理を行う。
まず、今回の燃料噴射（即ち、今から行う燃料噴射であり、今回のＳ１４０でタイマ４９にセットするオン時刻が起因となる燃料噴射）が、短時間噴射であるか否かを判定する。その短時間噴射とは、『通電パルスのオン時刻で噴射終了セット用割込要求を発生させたのでは、タイマ４９にオフ時刻をセットする処理が、そのオフ時刻の到来前に実施できなくなる程に、噴射時間が短くなる燃料噴射』のことである。
【０１１７】
そして、短時間噴射であるか否かは、例えば下記（１）〜（４）の手順で判定する。
（１）まず、現在が噴射対象気筒＃ｘの燃料噴射中（即ち、多段噴射における前回の燃料噴射中）か否かを判定する。具体的には、現在のフリーランタイマ４５の値を、現在時刻として取得し、その現在時刻が、前回の実際の噴射開始時刻から前回の実際の噴射終了時刻までの期間内に入っているか否かを判定し、その期間内であれば燃料噴射中であると判定する。尚、前回の実際の噴射開始時刻は、前回設定したオン時刻に燃料噴射弁Ｉｘの開弁遅れ時間Ｔｄ１を加えた値として算出することができ、前回の実際の噴射終了時刻は、前回設定したオフ時刻に、燃料噴射弁Ｉｘの閉弁遅れ時間Ｔｄ２を加えた値として算出することができる。
（２）上記（１）の判定で、燃料噴射中であると判定したならば、前回の当該ＮＥパルス割込処理のＳ１２０でＡＤＣ制御回路４７に設定したＡ／Ｄ変換時刻でのＡ／Ｄ変換値をＲＡＭ４４の特定領域から取得し、そのＡ／Ｄ変換値と、今回の要求噴射量とから、図３のＳ２３０と同様の手順で、燃料噴射弁Ｉｘに要求噴射量だけの燃料を噴射させるための噴射時間を算出する。尚、ここで算出する噴射時間は、後の噴射終了セット用割込処理で正式に算出される噴射時間の予想値である。
（３）また、上記（１）の判定で燃料噴射中ではないと判定したならば、ＡＤＣ４１に、噴射対象気筒＃ｘに設けられた燃料噴射弁Ｉｘの燃料圧信号をＡ／Ｄ変換させて、そのＡ／Ｄ変換値を取得する。そして、そのＡ／Ｄ変換値と、今回の要求噴射量とから、図３のＳ２３０と同様の手順で、燃料噴射弁Ｉｘに要求噴射量だけの燃料を噴射させるための噴射時間を算出する。ここで算出する噴射時間も、後の噴射終了セット用割込処理で正式に算出される噴射時間の予想値である。尚、この（３）の場合、ＡＤＣ４１によるＡ／Ｄ変換値は、ＲＡＭ４４にＤＭＡ転送されず、ＡＤＣ４１内のレジスタに記憶されるため、ＣＰＵ４２は、そのＡＤＣ４１内のレジスタからＡ／Ｄ変換値を取得する。
（４）そして、上記（２）又は（３）の処理で算出した噴射時間の予想値が所定値よりも短いか否かを判定し、所定値よりも短ければ、今回の燃料噴射が短時間噴射であると判定する。
【０１１８】
一方、多段噴射における特定段目の燃料噴射が短時間噴射になることが、予め分かっているのであれば、その特定段目の燃料噴射についてのオン時刻を設定する場合に、今回の燃料噴射が短時間噴射であると判定するように構成することもできる。
【０１１９】
そして、今回の燃料噴射が短時間噴射であると判定した場合には、図８における（Ｙ１）の一点鎖線矢印で示すように、Ｓ１１５で今回算出したオン時刻ｔｐｏｎ２よりも前の時刻で噴射終了セット用割込要求が発生するように、マイコン３１の内部設定を行う。
【０１２０】
尚、図８において、ｔｐｏｎ２は、今回のＮＥパルス割込処理（Ａ２）でタイマ４９にセットされたオン時刻であり、ｔｐｏｆｆ２は、今回の噴射終了セット用割込処理（Ｂ２）でタイマ４９にセットされたオフ時刻である。そして、ｔｐｏｎ１は、前回の噴射終了セット用割込処理（Ｂ１）の前に実行されたＮＥパルス割込処理（Ａ１）でタイマ４９にセットされたオン時刻であり、ｔｐｏｆｆ１は、前回の噴射終了セット用割込処理（Ｂ１）でタイマ４９にセットされたオフ時刻である。
【０１２１】
また、今回の燃料噴射が短時間噴射でないと判定した場合には、図２のＳ１３０と同様に、Ｓ１１５で算出した通電パルスのオン時刻で噴射終了セット用割込要求が発生するように、当該マイコン３１の内部設定を行う。
【０１２２】
尚、図８における噴射終了セット用割込処理（Ｂ１）は、それより前のＮＥパルス割込処理（Ａ１）における当該Ｓ１３０で、「今回の燃料噴射が短時間噴射でない」と判定されて、図４における噴射終了セット用割込処理と同様に、通電パルスのオン時刻ｔｐｏｎ１で発生するよう設定された噴射終了セット用割込要求により起動されたものである。
【０１２３】
次に、第２の相違点として、ＣＰＵ４２は、図３の噴射終了セット用割込処理に代えて、図９の噴射終了セット用割込処理を行う。
そして、図９の噴射終了セット用割込処理では、まずＳ４１０にて、直前のＮＥパルス割込処理のＳ１２０でＡＤＣ制御回路４７に設定したＡ／Ｄ変換時刻（今回の燃料圧Ａ／Ｄ変換時刻）を、ＲＡＭ４４又はＡＤＣ制御回路４７から取得する。
【０１２４】
次に、Ｓ４２０にて、現在のフリーランタイマ４５の値を、現在時刻として取得する。
次に、Ｓ４３０にて、上記Ｓ４２０で取得した現在時刻と、上記Ｓ４１０で取得したＡ／Ｄ変換時刻とを比較して、現在時刻がＡ／Ｄ変換時刻よりも後であるか否か、即ち、そのＡ／Ｄ変換時刻が過ぎているか否かを判定する。
【０１２５】
そして、Ａ／Ｄ変換時刻が過ぎていれば（Ｓ４３０：ＹＥＳ）、Ｓ４４０に進んで、図３のＳ２１０と同じ処理を行う。つまり、ＲＡＭ４４の特定領域から、Ａ／Ｄ変換時刻でのＡ／Ｄ変換値（燃料圧Ａ／Ｄ変換結果）を取得する。
【０１２６】
尚、この場合に取得されるＡ／Ｄ変換値は、直前のＮＥパルス割込処理のＳ１２０でＡＤＣ制御回路４７に設定されたＡ／Ｄ変換時刻でのＡ／Ｄ変換値であり、今回の燃料噴射の噴射時間及びオフ時刻を算出するためにＡ／Ｄ変換された燃料圧信号のＡ／Ｄ変換値である。そして以下、このＡ／Ｄ変換値のことを、今回のＡ／Ｄ変換値という。
【０１２７】
次に、Ｓ４５０にて、図３のＳ２２０と同じ処理を行う。つまり、エンジン１３の運転状態に応じた要求噴射量をＲＡＭ４４から取得する。
次に、Ｓ４６０にて、図３のＳ２３０と同様の手順で、今回の噴射時間及び通電パルスのオフ時刻を算出する。即ち、Ｓ４４０で取得した今回のＡ／Ｄ変換値（燃料圧の検出値）と、Ｓ４５０で取得した要求噴射量とから、燃料噴射弁Ｉｘに要求噴射量だけの燃料を噴射させるための噴射時間を算出し、直前のＮＥパルス割込処理のＳ１４０でタイマ４９にセットしたオン時刻から、その算出した噴射時間だけ進んだ時刻を、通電パルスのオフ時刻として算出する。
【０１２８】
そして、次のＳ４７０にて、上記Ｓ４６０で算出した通電パルスのオフ時刻を、噴射対象気筒＃ｘに対応するタイマ４９にセットし、その後、当該噴射終了セット用割込処理を終了する。
【０１２９】
一方、上記Ｓ４３０にて、Ａ／Ｄ変換時刻が過ぎていないと判定した場合（Ｓ４８０：ＮＯ）には、今回の燃料噴射の噴射時間及びオフ時刻を算出するためのＡ／Ｄ変換が未だ完了していないということであり、この場合にはＳ４８０に移行する。
【０１３０】
Ｓ４８０では、Ｓ４４０と同様に、ＲＡＭ４４の特定領域からＡ／Ｄ変換値を取得するが、この場合に取得されるＡ／Ｄ変換値は、前回の当該噴射終了セット用割込処理の前に実行されたＮＥパルス割込処理のＳ１２０でＡＤＣ制御回路４７に設定されたＡ／Ｄ変換時刻でのＡ／Ｄ変換値であり、前回の燃料噴射の噴射時間及びオフ時刻を算出するためにＡ／Ｄ変換された燃料圧信号のＡ／Ｄ変換値である。尚、ここでは、このＡ／Ｄ変換値のことを、前回のＡ／Ｄ変換値という。
【０１３１】
そして、次のＳ４９０にて、前回のＡ／Ｄ変換値から、今回の燃料噴射の開始時において燃料噴射弁Ｉｘに圧送されている燃料の圧力（以下、噴射開始時燃料圧という）を推定する。
【０１３２】
本実施形態では、具体的には、下記の式１により、噴射開始時燃料圧の推定値Ｐｅｓｔを算出する。
Ｐｅｓｔ＝Ｐｏ−ΔＰｉｎｊ−ΔＰｌｅａｋ＋ΔＰｐｕｍｐ  …式１
ここで、Ｐｏは、前回のＡ／Ｄ変換値である。
【０１３３】
また、ΔＰｉｎｊは、前回の燃料噴射による燃料圧降下量であり、下記の式から求められる。
ΔＰｉｎｊ＝「（前回の燃料噴射量＋動リーク量）×体積弾性係数÷コモンレール容積」
尚、動リーク量とは、燃料噴射による燃料噴射弁からの燃料リークのことであり、体積弾性係数とは、燃料の圧力変化により燃料の体積が変化する状態を数値で表した係数である。
【０１３４】
また、ΔＰｌｅａｋは、静リーク（燃料噴射によらない燃料噴射弁からの燃料リーク）による燃料圧降下量であり、下記の式から求められる。
ΔＰｌｅａｋ＝「単位時間当たりの静リーク量×（今回の実際の噴射開始時刻−前回の実際の噴射開始時刻）×体積弾性係数÷コモンレール容積」
また、ΔＰｐｕｍｐは、燃料ポンプ２１の圧送による燃料圧上昇量であり、下記の式から求められる。
【０１３５】
ΔＰｐｕｍｐ＝「単位時間当たりのポンプ圧送燃料量×（今回の実際の噴射開始時刻−前回の実際の噴射開始時刻）×体積弾性係数÷コモンレール容積」
尚、ΔＰｌｅａｋとΔＰｐｕｍｐとを求める各式において、「今回の実際の噴射開始時刻−前回の実際の噴射開始時刻」の部分は、「今回の通電パルスのオン時刻−前回の通電パルスのオン時刻」に置き換えても良い。
【０１３６】
そして、上記Ｓ４９０の次にＳ４５０へ移行して、Ｓ４５０〜Ｓ４７０の処理を行うが、Ｓ４６０では、燃料圧の検出値として、今回のＡ／Ｄ変換値ではなく、上記Ｓ４９０で算出した噴射開始時燃料圧の推定値Ｐｅｓｔを用いて、今回の噴射時間及び通電パルスのオフ時刻を算出する。
【０１３７】
以上のような第３実施形態のＥＣＵ１１によれば、第１実施形態と同様の効果が得られる上に、図８に示すように、噴射終了セット用割込処理（Ｂ２）が、それの直前のＮＥパルス割込処理（Ａ２）で設定されたＡ／Ｄ変換時刻よりも前に実行される場合（今回の燃料噴射が前述の短時間噴射である場合）でも、前回のＡ／Ｄ変換値から推定した今回の噴射開始時燃料圧を用いて、今回の燃料噴射の噴射時間及びオフ時刻ｔｐｏｆｆ２を算出することができ、噴射量の制御精度を良好にすることができる。
【０１３８】
特に、図８に示すように、ＮＥパルス割込処理（Ａ２）におけるＳ１３０にて、通電パルスのオン時刻ｔｐｏｎ２よりも前に噴射終了セット用割込要求が発生するように設定される場合には、その割込要求で起動される噴射終了セット用割込処理（Ｂ２）の実行期間、及びＮＥパルス割込処理（Ａ２）の実行期間が、前回の実際の燃料噴射期間と重なる可能性が高い。しかし、そのような場合でも、本第３実施形態によれば、燃料噴射中の低下した燃料圧から噴射時間及びオフ時刻を算出してしまうことがなく、従来の技術手法よりも噴射量の制御精度を向上させることができる。
【０１３９】
一方、第３実施形態は、下記の変形例７〜９のように変形することもできる。
＜変形例７＞
図２のＮＥパルス割込処理では、前述のＳ１３０にて、今回の燃料噴射が短時間噴射であると判定した場合であって、Ｓ１１５で今回算出したオン時刻よりも前の時刻で噴射終了セット用割込要求が発生するように設定した場合には、Ｓ１２０で今回設定したＡ／Ｄ変換時刻よりも前に噴射終了セット用割込処理が実行されることになる（あるいはその可能性が高い）と判断できるため、そのことを示すフラグをセットする。
【０１４０】
そして、図９の噴射終了セット用割込処理では、Ｓ４１０〜Ｓ４３０の処理に代えて、上記フラグがセットされているか否かを判定し、フラグがセットされていなければＳ４４０へ進み、フラグがセットされていればＳ４８０に進む。
【０１４１】
つまり、この変形例７では、ＮＥパルス割込処理にて、今回設定するＡ／Ｄ変換時刻よりも前に噴射終了セット用割込処理が実行されると判定した場合には、フラグをセットする。そして、噴射終了セット用割込処理では、上記フラグを参照することで、直前のＮＥパルス割込処理で設定されたＡ／Ｄ変換時刻が過ぎているか否かを判定することとなる。
＜変形例８＞
図９の噴射終了セット用割込処理において、Ｓ４９０を削除すると共に、Ｓ４８０からＳ４５０へ移行し、その場合のＳ４６０では、燃料圧の検出値として、Ｓ４８０で取得した前回のＡ／Ｄ変換値をそのまま用いて、今回の燃料噴射の噴射時間及びオフ時刻を算出するように構成しても良い。
【０１４２】
そして、このように変形しても、燃料噴射中の低下した燃料圧から噴射時間及びオフ時刻を算出してしまうことを回避できるため、上記第３実施形態よりは劣るものの、従来の技術手法よりは噴射量の制御精度を向上させることができる。
＜変形例９＞
また、本実施形態では、ＲＡＭ４４の特定領域に記憶されるＡ／Ｄ変換値が、次のＡ／Ｄ変換時刻でのＡ／Ｄ変換が実施されるまで保持されるため、上記第３実施形態において、図９の処理ではなく、図３の噴射終了セット用割込処理を実行するように構成しても、結局は上記変形例８と同じになる。
【０１４３】
つまり、図３の噴射終了セット用割込処理におけるＳ２１０では、もし当該噴射終了セット用割込処理が、それの直前のＮＥパルス割込処理で設定されたＡ／Ｄ変換時刻よりも前に実行された場合には、ＲＡＭ４４の特定領域から、結果的に、前回のＡ／Ｄ変換値を取得することとなり、Ｓ２３０では、その前回のＡ／Ｄ変換値を用いて、今回の燃料噴射の噴射時間及びオフ時刻を算出することになるからである。
【０１４４】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１４５】
例えば、第１実施形態において、Ａ／Ｄ変換時刻でのＡ／Ｄ変換値をＲＡＭ４４にＤＭＡ転送することは実施せず、ＣＰＵ４２は、図３のＳ２１０にて、ＡＤＣ４１内のレジスタから、そのＡ／Ｄ変換時刻でのＡ／Ｄ変換値を読み取るようにしても良い。
【０１４６】
一方、第１又は第３実施形態において、Ａ／Ｄ変換時刻でのＡ／Ｄ変換値が、最新のものからＭ個（Ｍは２以上の整数）だけ、それらのＡ／Ｄ変換順序（つまり、どれが最新のＡ／Ｄ変換値で、どれが何回前のＡ／Ｄ変換値であるか）が分かるように、ＲＡＭ４４のＡ／Ｄ変換値記憶領域に記憶（ＤＭＡ転送）されるように構成しても良い。
【０１４７】
また、燃料噴射弁としては、電磁弁式に限らず、ピエゾアクチュエータによって開閉弁するタイプのものでも良い。
また、燃料圧センサとしては、インレット圧センサに限らず、例えば、コモンレール１５内の燃料圧（コモンレール圧）を検出するコモンレール圧センサでも良い。
【０１４８】
但し、前述したように、燃料圧センサとして、コモンレール圧センサを用いた場合よりも、インレット圧センサを用いた場合の方が、燃料噴射に伴う燃料圧信号の変動が大きくなり、従来技術の問題が顕著になるため、上記各実施形態の構成が一層有利になる。
【０１４９】
また、第１及び第２の処理ルーチンとしては、割込処理に限らず、例えばタスクの処理であっても良い。
【符号の説明】
【０１５０】
１１…ＥＣＵ（燃料噴射制御装置）、１３…エンジン（車載ディーゼルエンジン）、１５…コモンレール、１７…燃料供給経路、１９…燃料タンク、２１…燃料ポンプ、２３…クランク角センサ、３１…マイコン、３３…波形整形回路、３５…入力回路、３７…駆動回路、４１…ＡＤＣ（Ａ／Ｄ変換器）、４２…ＣＰＵ、４３…ＲＯＭ、４４…ＲＡＭ、４５…フリーランタイマ、４６…エッジ時刻キャプチャ部、４７…ＡＤＣ制御回路、４８…ＤＭＡＣ（ＤＭＡコントローラ）、４９…タイマ、５０…バス、Ｉ１〜Ｉ４（Ｉｘ）…燃料噴射弁、ＰＳ…燃料圧センサ
【図１】
2011021489.tif 000003
【図２】
2011021489.tif 000004
【図３】
2011021489.tif 000005
【図５】
2011021489.tif 000006
【図６】
2011021489.tif 000007
【図９】
2011021489.tif 000008
【図１０】
2011021489.tif 000009
【図４】
2011021489.tif 000010
【図７】
2011021489.tif 000011
【図８】
2011021489.tif 000012