以下、電子制御装置の幾つかの実施形態について図面を参照しながら説明する。各実施形態間で同一又は類似の構成については、第2実施形態以降について同一又は類似の符号を付すと共に、同一又は類似の処理を行う内容について同一又は類似のステップ番号を付して説明を必要に応じて省略し、第2実施形態以降では特徴部分を中心に説明を行う。
(第1実施形態)
図1から図19は第1実施形態を示す。図1に噴射制御システム1の電気的構成を示す。噴射制御システム1は、燃料噴射演算ECU(以下、演算ECUと称す:演算装置相当)2、及び、燃料噴射駆動ECU(以下、駆動ECUと称す:駆動装置相当)3による複数のECU(Electronic Control Unit)を接続して構成される。各ECU2、3は、通常、ディーゼルエンジン制御に関する各種処理を分担して実施する。
演算ECU2は、例えばCPU4、ROM5、RAM6、I/O(図示せず)などを具備するマイクロコンピュータ(以下、マイコンと略す)7と、通信回路8と、入力回路9とを備える。演算ECU2のマイコン7には、アクセルセンサ10、クランクセンサ11、ブレーキセンサ12などの各種センサのセンサ信号が入力回路9を通じて入力されている。これにより、ブレーキとアクセルの踏込量、及び、内燃機関のエンジン回転数に係る情報を入力できる。
アクセルセンサ10は、所謂アクセルポジションセンサとも称され、アクセルペダル(図示せず)の変位量を電気信号に変換するセンサである。このアクセルセンサ10に代えてエンジンのスロットル開度センサなどを用いても良い。クランクセンサ11は、クランクシャフト(図示せず)の回転角について所定角度を基準として検出し電気信号に変換するセンサであり、当該センサ信号を内燃機関の回転信号として出力する。演算ECU2と駆動ECU3とは、通信線(バス)のネットワークNにより接続されており、例えばCAN(Controller Area Network):登録商標)により通信可能になっている。
駆動ECU3もまた、例えばCPU13、ROM14、RAM15、I/O(図示せず)などを具備するマイクロコンピュータ(以下、マイコンと略す)16と、受信部としての通信回路17と、取得部としての入力回路18と、駆動回路19と、を備える。駆動ECU3の駆動回路19には、例えば4気筒分の燃料噴射弁(インジェクタとも称される)20、圧力調整ポンプ(以下、ポンプと略す)21が接続されており、駆動回路19は、マイコン16からの指令を受けて燃料噴射弁20及びポンプ21を駆動する。ポンプ21にはコモンレール22が接続されている。コモンレール22は、高圧燃料を蓄積する圧力管であり、ポンプ21はコモンレール22の内部圧力を調整するポンプである。
また駆動ECU3の入力回路18には、アクセルセンサ10、及び、クランクセンサ11が接続されている。コモンレール22内の圧力は圧力センサ23により検出され、この圧力検出信号は駆動ECU3の入力回路18を通じてマイコン16に入力される。演算ECU2は、マイコン7がROM5に記憶されたソフトウェア、プログラムを実行することで各種機能を実現する。
駆動ECU3のマイコン16は、ROM14に記憶されたプログラムを実行することで、クランクセンサ11に関する異常を生じたか否かを判定する異常判定部としての機能を備える。このマイコン16は、異常を生じたときに各種処理を実行する異常時処理部、異常判定部により異常を生じたと判定されたときには演算ECU2から正常時に送信される通信メッセージに基づいて駆動しない正常時処理部、としての機能を備える。
上記構成の作用について説明する。内燃機関の各気筒は、例えば4気筒4サイクルエンジンであればクランク角度180°CA毎を単位として単発又は複数回噴射するが、本実施形態では基本的な単発噴射について説明する。以下、通常時における単発噴射時の処理内容と、駆動ECU3がクランクセンサ信号を受信不能になったときの異常時の処理内容とを分けて説明する。
<正常時の処理内容>
演算ECU2のマイコン7は、主に、噴射量の演算処理と、コモンレール22の圧力目標値の演算処理とを実施し、駆動ECU3のマイコン16は、主に、燃料噴射弁20の駆動処理、及び、ポンプ21の駆動処理を実施する。
<演算ECU2の正常モード時の処理>
通常時には、演算ECU2のマイコン7が噴射量の指令値及びポンプ21の目標レール圧の指令値などを演算して駆動ECU3に送信し、駆動ECU3のマイコン16が指令値を受信すると指令値に基づいて噴射処理に関する処理を行う。演算ECU2のマイコン7も、駆動ECU3のマイコン16も、それぞれ入力回路9,18を通じてクランクセンサ11のクランクセンサ信号を入力する。このため、通常時には、演算ECU2も駆動ECU3も、クランクセンサ11のクランクセンサ信号に基づいてクランク角度°CAを算出できる。クランク角度°CAは、上死点(TDC:top dead center)を0°CAとし、当該上死点を基準とした所定角度の前時点(BTDC:before TDC)に同期したタイミングで処理される。
図2は、演算ECU2のマイコン7がBTDC120°CAに同期して実行する処理を示している。まず、演算ECU2のマイコン7は、クランクセンサ11からクランクセンサ信号が入力されているか否かを判定し、これにより、BTDC120°CAに同期する処理を実行するか否かを判定すると共に、クランクセンサ11が正常に動作しているか否かを判定する。演算ECU2は、クランクセンサ11が正常に動作していることを条件として以下のS12〜S17の処理を実行するが、正常に動作していないときには、このBTDC120°CAのタイミングでは処理を行うことなく終了する。S12においてNOと判定したときには、演算ECU2のマイコン7は、所定のフェールセーフ処理を実行するか又は噴射値の指令値等を駆動ECU3に送出しない(何れも図2には図示せず)。このため退避走行もしないことになるが、これらの処理については、本実施形態の特徴には関係しないため説明を省略する。
演算ECU2のマイコン7は、S11においてYESを判定すると、S12において演算ECU2の動作モードが正常モードであるか否かを判定する。演算ECU2の動作モードは、マイコン7の内部にフラグとして記憶されており、通常時にはこのフラグが正常モードに設定されている。
このため、このフラグが正常モードとされている間には、演算ECU2のマイコン7はS12においてYESと判定する。すると演算ECU2は、S13において前述の各種センサ10〜12から取得されたセンサ信号に応じて目標レール圧を算出し、S14において噴射量の指令値、及び、噴射開始角度(クランク角度°CA)を算出し、S15においてCANIDを通常時噴射(INJ_NORMAL_MIDDLE)とし、噴射量(INJ_Q)、噴射開始角度(INJ_T)、及び、目標レール圧(PRS)をデータとして設定してネットワークNに送出する。図3には、演算ECU2から送信するデータの内容を示している。
ネットワークNにはECU2,3の他多数のECU(図示せず)が接続されている。CAN通信方式を用いているため、各種ECU2,3等による通信データの衝突を考慮して、演算ECU2は通信メッセージの優先度を設定する。この通常時噴射における通信メッセージの優先度は、異常時に係る各種処理の通信メッセージの優先度に比較して低い値(例えば、優先度5)に設定される。また後述するが、異常時噴射等の異常時に係る各種設定処理の通信メッセージの優先度は、通常時噴射の通信メッセージの優先度よりも高い値に設定される。
演算ECU2のマイコン7は、S12において動作モードのフラグが異常モードに設定されていると判定したときには、S16において異常モード時のポンプ駆動処理、S17において異常モード時の噴射制御処理、を実行するが、この詳細は後述する。
<駆動ECU3の正常モード時の受信割込処理>
図4は駆動ECU3による受信割込処理を概略的に示している。駆動ECU3の側の通信回路17は、ネットワークNに送出された通信メッセージを受信割込処理により検出している。このとき図4に示すように、駆動ECU3のマイコン16は、動作モードが正常モードであるときにはS21にてNOと判定し、通信回路17によりネットワークNに送出されている通信メッセージのCANIDが通常時噴射(INJ_NORMAL_MIDDLE)であると判断したときには、S22において当該駆動ECU3への通信メッセージであると判断して受信する。
通常時には、前述したように、演算ECU2は、CANIDを通常時噴射(INJ_NORMAL_MIDDLE)とし、噴射量(INJ_Q)、噴射開始角度(INJ_T)、及び、目標レール圧(PRS)のデータをネットワークNに送出しているため、駆動ECU3は、S22においてYESと判定し、この通信メッセージを受信割込により受信する。そして駆動ECU3のマイコン16は、S23において受信したデータ(噴射量(INJ_Q)、噴射開始角度(INJ_T)、及び、目標レール圧(PRS))を変数(Q_tmp、T_tmp、P_tmp)にそれぞれ退避する。
なお、通常時においては、たとえネットワークNにCANIDが異常時圧力(PRS_ERR_HIGH)(S24参照)、又は、異常時噴射(INJ_ERR_HIGH)(S26参照)の通信メッセージが送出されていたとしても、駆動ECU3がこの通信メッセージを受信することはない。異常時には、他の処理S24〜S27を行うが、異常時の詳細説明は後述する。
<駆動ECU3の正常モード時のクランク同期処理>
図5Aは、駆動ECU3のマイコン16がBTDC90°CAに同期して実行する処理を示している。駆動ECU3のマイコン16は、まずS31において駆動ECU3の動作モードが正常モードであるか否かを判定する。この駆動ECU3の動作モードもまた、そのマイコン16の内部にフラグとして記憶されており、通常時にはこのフラグが正常モードに設定されている。このため、このフラグが正常モードとされている間には、駆動ECU3のマイコン16は、S31においてYESと判定する。
すると駆動ECU3のマイコン16は、S32において圧力センサ23からコモンレール圧(燃料圧相当)の情報を入力回路18を通じて取得し、S33においてこの取得されたコモンレール圧の情報、及び、目標レール圧の変数P_tmpに基づいて圧力調整ポンプ21の駆動開始角度、及び、当該ポンプ21の駆動期間を算出し、S34においてクランクセンサ11のクランクセンサ信号、ポンプ21の駆動開始角度、及び、ポンプ21の駆動期間より、圧力調整ポンプ21の駆動開始時刻,駆動終了時刻を算出する。そして、S35において圧力調整ポンプ21の駆動開始時刻、駆動終了時刻をタイマ設定する。S35の圧力調整ポンプ21の駆動処理は、設定時刻が到来したタイミングになったときにタイマ割込処理により実行される。
また、駆動ECU3のマイコン16は、S36において入力回路18から入力されるクランクセンサ11のクランクセンサ信号、及び、噴射開始角度の変数T_tmpの情報に基づいて、燃料噴射弁20の噴射開始時刻を算出し、S37において燃料噴射弁20の噴射開始時刻をタイマ設定する。
S37においてタイマ設定された燃料噴射弁20の噴射開始時刻が到来すると、駆動ECU3のマイコン16は図5Bに示すタイマ割込処理を実行する。図5Bに示すように、駆動ECU3のマイコン16は、S38aにおいて気筒番号(CYLNUM)に対応した現気筒の噴射を開始し、S38bにおいてコモンレール22のコモンレール圧を圧力センサ23から取得し、S38cにおいてコモンレール圧と噴射量の変数Q_tmpにより噴射期間を算出し、S38dにおいて噴射終了時刻を設定する。そして、噴射終了時刻が到来すると、図5Cの噴射終了時刻のタイマ割込処理に示すように、S39において気筒番号(CYLNUM)の現気筒の噴射を終了する。
なお、駆動ECU3のマイコン16は、動作モードが異常モードに設定されているときには、図5AのS31においてNOと判定し、このBTDC90°CAのタイミングでは処理を行うことなく終了する。通常時には、このようにして、燃料噴射弁20の噴射処理及び圧力調整ポンプ21の駆動処理が行われる。
<異常を生じたときの処理内容説明>
例えば、クランクセンサ信号の駆動ECU3のマイコン16への入力経路(例えば、図1では入力回路18へのクランクセンサ信号の入力経路、又は、入力回路18とマイコン16との間の通信経路)に不具合を生じている、又は、生じたときには、マイコン16は、クランクセンサ信号を受信不能になる。この不具合は、例えばハーネスの接触又は接続不良、入力回路18の故障等が原因として挙げられる。このようなとき、演算ECU2及び駆動ECU3は協働して退避走行制御する。本実施形態では、駆動ECU3は、前述した図5に示す通常時の処理内容に加えて、以下の図6に示す処理を定期的に実行する。
<駆動ECU3によるクランクセンサ11の定期的チェック処理及び異常時の処理>
図6に示すように、駆動ECU3のマイコン16は、S41においてクランクセンサ11のクランクセンサ信号を正常に入力しているか否かを定期的に判定し、クランクセンサ信号が正常に入力されていれば、S41でNOと判定し処理を終了するが、クランクセンサ信号が正常に入力されていなければ、S41でYESと判定し、CANIDをクランクセンサ異常(ERR_HIGH)とした通信メッセージをネットワークNに送出する。図7に異常伝達用の通信メッセージの概要を示す。この異常発生伝達メッセージは、全てのメッセージの中でも最重要メッセージとなるため、CANIDの優先度を最も高く(例えば「1」)設定している。そして駆動ECU3のマイコン16は、図6のS43において自身の動作モードを正常モードから異常モードに変更する。
<演算ECU2の異常発生伝達メッセージの受信割込処理>
図8は、演算ECU2の側における受信割込処理を概略的に示している。演算ECU2の通信回路8は、ネットワークNに送出された通信メッセージを受信割込処理により検出している。
図8に示すように、演算ECU2のマイコン7は、S51において自身が異常モードであるか否かを判定し、異常モードでないときにはS51にてNOと判定し、S52にて通信回路8によりネットワークNを参照し、ネットワークNに送出されているメッセージのCANIDがクランクセンサ異常(ERR_HIGH)であるか否かを確認する。演算ECU2は、クランクセンサ異常(ERR_HIGH)の異常発生伝達メッセージを受信するとS52にてYESと判定し、S53において自身の動作モードを異常モードに変更する。これにより演算ECU2はクランクセンサ異常(ERR_HIGH)の異常発生伝達メッセージを受信すると動作モードを異常モードに変更できる。なお、異常モードにおけるコモンレール圧の受信処理S54、S55については後述する。
<演算ECU2による異常モード時のポンプ駆動処理>
演算ECU2が、S53において動作モードを異常モードに設定すると、図2のS12にてNOと判定し、S16にて異常モード時におけるポンプ駆動処理を行い、S17において異常モード時噴射処理を行う。
図9は演算ECU2の側における異常モード時のポンプ駆動処理を概略的に示している。まず、演算ECU2のマイコン7は、S61においてネットワークNを通じて駆動ECU3から異常時レール圧(PRS_RAIL_HIGH)の変数PRS_tmpを取得し、S62においてポンプ21の駆動開始角度及びその駆動期間を算出する。この異常時レール圧(PRS_RAIL_HIGH)の変数PRS_tmpの値は、異常モード時におけるコモンレール22の内部圧力を示しているが、当初異常であるときには、この変数PRS_tmpは、駆動ECU3の側から異常時レール圧(PRS_RAIL_HIGH)により送信されるまで設定されることはない。このため、異常モード時における変数PRS_tmpの初期値は、予め定められた所定値に設定しても良いし、通常時に図4のS23において退避されている値P_tmpを用いて設定しても良い。
このS62において、演算ECU2のマイコン7は、コモンレール22の内部燃料圧力が一定圧力となるように変数PRS_tmpに応じてポンプ21の駆動開始角度、及びポンプ21の駆動期間を算出する。そして、演算ECU2のマイコン7は、S63においてクランクセンサ11のクランクセンサ信号と、ポンプ21の駆動開始角度とによりポンプ21の駆動開始時刻を算出する。そして演算ECU2のマイコン7は、S64においてポンプ21の駆動割込処理の起動時刻を設定してこのルーチンを抜ける。
この起動時刻の設定処理では割込処理を起動するためのタイマをセットするが、このタイマの設定時刻は、ネットワークNの通信処理の遅れ、駆動ECU3の側における演算時間の遅れ、燃料噴射弁20により実際に噴射されるまでの遅れ、を考慮し、この遅延時間を見込んで設定すると良い。すると、これらの実情に合わせて通信メッセージの送信タイミングを設定できる。これらの遅延時間は、予め実験又はシミュレーションなどにより算出された時間を、固定値又は各種車両状態に応じて変化する変数値として設定しても良い。
<演算ECU2による異常モード時の噴射制御処理>
演算ECU2のマイコン7は、図2に示されるS16の異常モード時のポンプ駆動処理を終了すると、S17において異常モード時の噴射制御処理を行う。図10は異常モード時の噴射制御処理を概略的に示している。演算ECU2のマイコン7は、S71において燃料噴射弁20の現気筒(CYLNUM)の噴射量、噴射開始角度を算出し、S72においてクランクセンサ11のクランクセンサ信号及び噴射開始角度により噴射割込処理の起動時刻を算出し、S73において燃料噴射弁20の噴射割込処理の起動時刻を設定してこのルーチンを抜ける。
<ポンプ21の駆動割込処理及び燃料噴射弁20の噴射割込処理>
図9のS64にて設定されたポンプ21の駆動割込処理の起動時刻が到来すると、図11に示すように、演算ECU2のマイコン7は、S81において通信回路8により異常時圧力(PRS_ERR_HIGH)の通信メッセージをネットワークNに送出する。また、図10のS73において燃料噴射弁20の噴射割込処理の起動時刻が設定されると、図12に示すように、演算ECU2のマイコン7は、S91において通信回路8により異常時噴射(INJ_ERR_HIGH)の通信メッセージをネットワークNに送出する。図13に異常時圧力(PRS_ERR_HIGH)の通信メッセージ、図14に異常時噴射(INJ_ERR_HIGH)の通信メッセージの内容を示す。異常時圧力(PRS_ERR_HIGH)の通信メッセージには、ポンプ駆動期間(PRS_PER)のパラメータ(「燃料圧の調整指令期間」相当)が含まれている。
また、異常時噴射(INJ_ERR_HIGH)の通信メッセージには、噴射量(INJ_Q)、気筒番号(CYLNUM)のパラメータが含まれており、演算ECU2が、これらの通信メッセージをネットワークNに送出することで、ポンプ駆動期間(PRS_PER)、噴射量(INJ_Q)、気筒番号(CYLNUM)の指令値の情報を駆動ECU3に送信できる。
これらの図13及び図14に示すように、異常時の通信メッセージの優先度(例えば「2」、「3」)は、通常時の通信メッセージの優先度(例えば「5」)よりも高く設定されている。また、これらの異常時噴射(INJ_ERR_HIGH)及び異常時圧力(PRS_ERR_HIGH)の通信メッセージの優先度(例えば「2」、「3」)は、最重要メッセージとなる前述した異常発生伝達メッセージの優先度(例えば「1」)より低く設定されている。
これらの異常時噴射(INJ_ERR_HIGH)及び異常時圧力(PRS_ERR_HIGH)の通信メッセージは、演算ECU2から駆動ECU3に対して制御指令タイミングを計るための情報である。このため、その優先度は、駆動ECU3から演算ECU2へ送出される他の通信メッセージ(例えば、異常時圧力(PRS_RAIL_HIGH):後述参照)の優先度(例えば「4」)よりも高く設定される。
なお異常時圧力(PRS_ERR_HIGH)の内容は、異常時においてはコモンレール22の目標燃料圧を一定に保つように設定することが望ましい。これにより、演算ECU2のマイコン7は目標燃料圧を演算処理を行うことなく設定できるようになり処理負荷を軽減できる。
<駆動ECU3による異常モード時の受信割込処理>
異常時には図11、図12に示したように、演算ECU2が、異常時圧力(PRS_ERR_HIGH)の通信メッセージ、異常時噴射(INJ_ERR_HIGH)の通信メッセージをネットワークNに送出するが、図4に示したように、駆動ECU3は、異常モードにおいてもネットワークNに送出された通信メッセージを受信割込処理により受信している。
この図4において、駆動ECU3は、異常モードであるときにはS21にてYESと判定し、CANIDがS24にて異常時噴射(INJ_ERR_HIGH)であったり、S26にて異常時圧力(PRS_ERR_HIGH)であったりしたときには、当該駆動ECU3への通信メッセージであると判断して受信し、駆動ECU3がS24にてYESと判定すると、S25において異常モード時における燃料噴射弁20の噴射制御処理を行う。また、駆動ECU3が、S26においてYESと判定すると、S27において異常モード時におけるポンプ21の駆動処理を行う。
<駆動ECU3による異常モード時の噴射制御処理>
図15は、図4のS25の異常モード時における燃料噴射弁20の噴射制御処理を示している。駆動ECU3のマイコン16は、S101において通信メッセージに含まれる異常時噴射(INJ_ERR_HIGH)の噴射量(INJ_Q)と気筒番号(CYLNUM)とをそれぞれ変数Q_tmp、Cyl_tmpに退避させる。そして駆動ECU3のマイコン16は、S102において変数Cyl_tmpに対応した気筒の燃料噴射弁20を即時噴射制御開始する。その後、駆動ECU3は、S103においてコモンレール22のコモンレール圧を圧力センサ23から入力回路18を通じて取得し、S104においてコモンレール圧と噴射量の変数Q_tmpより噴射期間を算出し、S105において燃料噴射弁20の噴射終了時刻(噴射期間)を設定する。なお、ここでは、駆動終了割込処理を起動するためのタイマを設定してこのルーチンを抜ける。
<駆動ECU3による異常モード時のポンプ駆動処理>
図16は、図4のS27の異常モード時におけるポンプ駆動処理を概略的に示している。駆動ECU3は、S111において通信メッセージに含まれる異常時圧力(PRS_ERR_HIGH)のポンプ駆動期間(PRS_PER)を変数Per_tmpに退避し、S112においてポンプ21を即時駆動開始する。演算ECU2による異常時圧力(PRS_ERR_HIGH)の通信メッセージの送信タイミングから駆動ECU3による受信タイミングまでの時間は、ネットワークNの通信処理時間で決定され概ね一定時間となる。このため、演算ECU2は通信メッセージの送信タイミングを調整することでポンプ21の駆動開始タイミングを調整制御できる。
駆動ECU3のマイコン16は、S112にてポンプ21を即時駆動開始した後、S113においてポンプ21の駆動終了時刻をタイマ設定し、S114にて圧力センサ23によるコモンレール圧を入力回路18を通じて取得し、S115においてCANIDを異常時レール圧(PRS_RAIL_HIGH)として通信メッセージをネットワークNに送出してこのルーチンを抜ける。
図17には、異常時レール圧(PRS_RAIL_HIGH)の通信メッセージの内容を概略的に示しているが、この図17に示すように、異常時レール圧(PRS_RAIL_HIGH)の通信メッセージにはコモンレール圧力(PRS_RAIL)が含まれている。また、この異常時レール圧(PRS_RAIL_HIGH)の通信メッセージの優先度(例えば「4」)は、通常時の通信メッセージの優先度(例えば「5」)よりも高く設定されているものの、前述の演算ECU2から駆動ECU3への通信メッセージの優先度(例えば「3」)よりも低く設定されている。
図18は燃料噴射弁20の駆動終了タイマ割込処理を示している。図15のS105にて設定された燃料噴射弁20の噴射終了時刻が経過すると、駆動ECU3は図18に示すタイマ割込処理を実行することでS121にて燃料噴射弁20の噴射を終了する。また、図19はポンプ駆動終了タイマ割込処理を示している。図16のS113にて設定されたポンプ駆動終了時刻が経過すると、駆動ECU3は図19に示すタイマ割込処理を実行することでS122にてポンプ21の駆動を終了する。
演算ECU2は、図8に示す受信割込処理において、S51にてYESと判定し、S54にて異常時レール圧(PRS_RAIL_HIGH)の通信メッセージをネットワークNから受信すると、S54にてYESと判定し、S55において異常時レール圧(PRS_RAIL_HIGH)の通信メッセージに含まれるコモンレール圧力(PRS_RAIL)のデータを変数PRS_tmpに退避する。そして演算ECU2は、図9に示す異常モード時におけるポンプ駆動処理のS61においてこの変数PRS_tmpを入力し、S62〜S64の処理を行う。
これにより、駆動ECU3が取得した異常時のコモンレール圧力の情報を演算ECU2にフィードバックできるようになる。これにより演算ECU2がポンプ21によりコモンレール圧力を主体的に制御できるようになる。このとき、演算ECU2のマイコン7は、目標とする駆動タイミングのクランク角度から、クランクセンサ11から取得される現在のクランクセンサ信号の示すクランク角度を減算し、現在のエンジン回転数に応じてポンプ21の駆動開始タイミングに変換することに応じて、S63においてポンプ21の駆動開始時刻を精度良く算出できるようになり、S64においてポンプ21の駆動割込処理の起動時刻を精度良く設定できる。
このように、たとえクランクセンサ11のクランクセンサ信号が駆動ECU3に入力されない又はされなくなった場合においても、演算ECU2及び駆動ECU3は、ポンプ21の駆動処理、燃料噴射弁20による噴射処理を協働して処理でき、退避走行に関する処理を正常に実行できる。
<本実施形態の概念的なまとめ>
要するに、通常時、正常時(正常モード)においては、駆動ECU3はクランクセンサ11のクランクセンサ信号を取得した角度同期処理にて燃料噴射弁20を噴射制御すると共にポンプ21を駆動処理するが、異常時(異常モード)においては、演算ECU2が駆動ECU3に通信メッセージを送出し駆動ECU3が受信したタイミングで燃料噴射弁20の噴射制御処理及びポンプ21の駆動処理(燃料圧の駆動制御相当)を実行している。
このとき、駆動ECU3は通信メッセージを受信したタイミングで噴射処理に関する処理を行うことになるため、演算ECU2が通信メッセージを送信するタイミングに応じて燃料噴射弁20の噴射制御処理及びポンプ21の駆動処理を行うタイミングを制御できる。このため、演算ECU2が通信メッセージを送信するタイミングを調整することで燃料噴射弁20の噴射制御処理及びポンプ21の駆動処理が行われるタイミングを主体的に制御できるようになり、退避走行に関する処理を正常に実行できる。
駆動ECU3は、クランクセンサ11に関する異常を生じたと判定されたときには、演算ECU2から正常時に送信される通信メッセージに基づいては各種制御(燃料噴射弁20の噴射制御、ポンプ21の駆動処理)を行わないようになっている。このため動作の信頼性を高めることができる。
演算ECU2は異常時には噴射量(INJ_Q)及び気筒を識別する気筒番号(CYLNUM)を駆動ECU3に送信し、駆動ECU3のマイコン16は、これらの噴射量及び気筒番号を受信し当該気筒番号に対応した気筒に対し噴射量を設定するようにしているため、たとえクランクセンサ信号を取得できない異常時においても燃料噴射弁20の各気筒に対応して噴射量を設定できるようになる。
またクランクセンサ異常(ERR_HIGH)の異常発生伝達メッセージは、その優先度が他の通信メッセージより最も高く例えば「1」に設定されているため、他の通信メッセージの通信の影響を受けることなく通信処理できるようになり、ネットワークNの通信遅れの影響を除外でき、駆動ECU3から演算ECU2に異常の発生を素早く伝達できる。
即時処理するための異常時噴射(INJ_ERR_HIGH)及び異常時圧力(PRS_ERR_HIGH)の通信メッセージは、その優先度が他の通信メッセージよりも高く例えば「2」「3」に設定されているため、他の通信メッセージの通信の影響を極力受けることなく通信処理できるようになり、ネットワークNの通信遅れの影響を最小限にできる。
演算ECU2が、通信メッセージの送受信による通信遅れ、および、駆動ECU3が通信メッセージを受信するタイミングから実際に噴射制御するまでの間の処理遅れ、に基づいて通信メッセージの送信タイミングを設定することで、演算ECU2が燃料噴射弁20からの噴射タイミングを正確に制御できる。
異常時において、演算ECU2のマイコン7は目標燃料圧の演算処理を行うことなく駆動ECU3が目標燃料圧を一定とするようにポンプ21を制御する場合には、演算ECU2がコモンレール22の圧力の調整期間を駆動ECU3に伝える必要がなくなりネットワークNの通信負荷を低減できる。しかも演算ECU2、駆動ECU3の処理負荷を軽減できる。
演算ECU2は正常時にはコモンレール22の圧力目標値を送信し、異常時にはポンプ21の駆動期間を送信し、駆動ECU3はポンプ21の駆動期間を設定するようにしているため、たとえクランクセンサ信号を取得できない異常時においてもコモンレール22の内部燃料圧力を制御できるようになる。また駆動ECU3によるポンプ21の駆動期間の算出処理負担が軽減される。
異常モードにおいては、演算ECU2のマイコン7が噴射量(INJ_Q)を算出して駆動ECU3の側に送信し、駆動ECU3がこの噴射量に応じて噴射期間を算出し当該噴射期間に応じて燃料噴射弁20を噴射制御している。これにより、噴射制御に関する処理負担を分担できる。
(第2実施形態)
図20及び図21は第2実施形態の追加説明図を示している。第1実施形態では、クランクセンサ11のクランクセンサ信号が駆動ECU3のマイコン16へ入力異常を生じたときに、内燃機関(エンジン)がストップすることなく退避走行する形態を示しているがエンジンストップする場合もある。本実施形態では、エンジンストップしない場合とエンジンストップする場合とを対比して説明を行う。
図20及び図21は正常時及び異常時の各部の動作状態をタイミングチャートで示している。通常、車両が始動され内燃機関が起動していれば、エンジン回転数が所定のアイドル回転数以上に高く保持されている。このとき、燃料噴射弁20の噴射制御処理及びポンプ21の駆動処理は正常に実行可能な状態となっている。
演算ECU2のマイコン7は、エンストフラグの記憶領域を内部に保持している。演算ECU2のマイコン7は、内燃機関が停止すると当該停止状態が検知されることでエンストフラグがオンされる。このため、マイコン7がこのエンストフラグを検知することでエンジンが停止したことを検知可能となる。
また演算ECU2は、前述実施形態で説明した通常モード及び異常モードの他、始動モードを備えており、エンジンストップ状態(停止状態)でエンストフラグがオンしていることを条件とし、さらに動作モードが異常モードに移行したときに始動モードに移行する。演算ECU2のマイコン7は、始動モードに移行したときにはエンジンを所定の始動手段(例えばセルモータ、セルスタータ:図示せず)を用いて自動的に再始動し、エンジン回転数を所定のアイドル回転数以上となるまで自動的に再上昇可能になっている。
上記構成の作用について説明する。
図20のタイミングt1〜t2に示すように、正常に噴射可能なときには、演算ECU2及び駆動ECU3の動作モードは共に正常モード(通常モード)に設定されており、エンストフラグも始動時モードもオフとされている。また、演算ECU2も駆動ECU3もクランクセンサ11のクランクセンサ信号を正常に受信可能になっている。このため、演算ECU2も駆動ECU3もクランクの回転位置を把握でき、特に駆動ECU3は、何れの気筒の燃料噴射弁20を駆動して良いか把握でき、演算ECU2から指令された噴射量に応じて駆動ECU3が噴射制御処理できる。
クランクセンサ11のクランクセンサ信号が図20のタイミングt2において駆動ECU3に入力されなくなると、駆動ECU3はクランクセンサ11のセンサ信号の入力異常を検出し、動作モードを異常モードに移行させる(図6のS43参照)。CANによるネットワークNの通信処理には遅延があるため、演算ECU2と駆動ECU3とでは動作モードの切替タイミングが異なる。
このため、駆動ECU3が異常モードに移行しても、演算ECU2が正常モードになっていれば、演算ECU2は図20のタイミングt3において噴射指令信号として通常時噴射(INJ_NORMAL_MIDDLE)をネットワークNに送出することもある。しかし、このタイミングt3において、駆動ECU3はすでに異常モードとなっているため、図5AのS31にてNOと判定されることになり、図5AのS32〜S36における処理を実行することがなくなり燃料噴射弁20を噴射制御することはない(図20のt4参照)。これにより、駆動ECU3が異常モードに移行したときには、正常モードの演算ECU2から噴射指令されたとしてもこの指令を無効にでき、予期しない挙動を未然に防ぐことができ、噴射制御処理の信頼性を高めることができる。
駆動ECU3が、図6のS42に示したようにクランクセンサ異常であることを送信すると、演算ECU2は、図8のS52に示したように、このクランクセンサ異常(ERR_HIGH)であることを受信し、図8のS53において、演算ECU2は動作モードを異常モードに移行させる(図20のt5参照)。図20に示しているように、ネットワークNの通信処理等に係る遅延時間や退避走行を開始するまでの処理時間を要するが、実際にクランクセンサ信号の入力異常が発生してから、演算ECU2が、動作モードを異常モードに移行し退避走行を開始するまでの間にもエンジン回転数が低下する。
図20のタイミングt2〜t5に示すように、例えばネットワーク通信処理時間等に多くの時間を必要としなかった場合、エンジン回転数がエンスト閾値Etに低下するまでの間に、演算ECU2が動作モードを通常モードから異常モードに移行して退避走行を開始できれば、タイミングt5以降に示すように、エンジン回転数が再度上昇し例えば所定回転数以上になる。
演算ECU2は、図11のS81、図12のS91において噴射指令信号として異常時圧力(PRS_ERR_HIGH)、異常時噴射(INJ_ERR_HIGH)の通信メッセージをネットワークNに送出することで、駆動ECU3は、ポンプ駆動時間(PRS_PER)、噴射量(INJ_Q)及び気筒番号(CYLNUM)を把握することができ、ネットワークNから当該情報を受信したときに、即時、燃料噴射弁20による噴射処理、ポンプ21の駆動処理を実行できることになる。これにより、内燃機関がストップしなかったときには、始動時処理は不要となり、噴射対象の気筒の判別もできるため、駆動ECU3が異常モードに移行すると直ぐに退避走行を開始できる。
他方、図21には、内燃機関がストップする事例に対応したタイミングチャートを示している。図21のタイミングt2において何らかの影響でクランクセンサ信号が駆動ECU3に入力されなくなると、駆動ECU3は動作モードを異常モードとし、クランクセンサ信号の入力異常であることをネットワークNに送出し、演算ECU2がこの情報を入力する。図21のタイミングt2〜t3aにおいて、ネットワークNの通信処理等に係る遅延時間や退避走行を開始するまでの種々の処理時間を要し、退避走行を開始するまでの間にエンジン回転数が低下する。
図21のタイミングt3bに示すように、通信処理時間等に多くの時間を要し、エンジン回転数がエンスト閾値Etよりも低くなってしまうと、演算ECU2は、エンストフラグがオンされることで内燃機関がストップしたことを把握する。このとき演算ECU2は、内燃機関が回転停止したものと見做すことから、噴射対象の気筒を判別不能であると判定し(気筒判別処理OFF)、噴射指令信号として通常時噴射(INJ_NORMAL_MIDDLE)の通信メッセージの出力を停止する(t3b以降t6まで噴射指令信号を不出力)。
演算ECU2は、タイミングt3bにおいてエンストフラグがオンされた後、ネットワークNを通じてクランクセンサ信号の入力異常であることを駆動ECU3から受信し、図21のタイミングt5aにおいて動作モードを異常モードにする。すると、演算ECU2は、エンジンストップ状態(停止状態)でエンストフラグがオンしており、さらに動作モードが異常モードに移行したため始動モードに移行する。
演算ECU2が、始動モードに移行すると、例えば通常時噴射(INJ_NORMAL_MIDDLE)、異常時噴射(INJ_ERR_HIGH)、異常時圧力(PRS_ERR_HIGH)等の通信メッセージによる各種噴射指令信号をネットワークNに送出することはない。このため、駆動ECU3が噴射制御処理、ポンプ21の駆動処理を行うこともない。
図21のタイミングt5aにおいて、演算ECU2が始動モードに移行すると、演算ECU2は前述の所定の始動手段を用いてエンジンを始動させるため、エンジン回転数が上昇する。エンジン回転数が上昇し、図21のタイミングt3aにおいて、エンジン回転数がエンスト閾値Et以下に設定された気筒判別閾値に達すると、演算ECU2は、入力回路9を通じてマイコン7に入力されたクランクセンサ11のクランクセンサ信号に応じて、噴射対象となる気筒を判別可能になる。
これにより演算ECU2はタイミングt3aの時点から退避走行を開始できる。演算ECU2が退避走行を開始すると、図21のタイミングt6において始動モードをモードオフとして異常モードに移行する。またエンジン回転数がエンスト閾値Etにまで上昇するとエンストフラグがオフされる。これにより異常モードで退避走行可能になる。なお、図21中では、エンストフラグのオフタイミングと始動時モードの解消タイミング(異常モードへの移行タイミング)とをタイミングt6で一致させているが、必ずしも一致していなくても良い。
<本実施形態の概念的なまとめ>
エンジン停止時にエンジン回転数がエンスト閾値Etよりも低下すると、演算ECU2は始動モードに移行してエンジン回転数がエンスト閾値Etに上昇するまで異常モードにおける異常時噴射(INJ_ERR_HIGH)、異常時圧力(PRS_ERR_HIGH)等の通信メッセージによる噴射指令信号を出力しないようにしている。これにより始動モードにおいてはエンジン回転数がエンスト閾値Etに上昇するまで、駆動ECU3が処理を実行することがなくなり動作信頼性を向上できる。
(第3実施形態)
図22Aから図41は第3実施形態の追加説明図を示している。第1及び第2実施形態では、クランクセンサ11の角度180°CA中における噴射発数について特徴とすることなく単発噴射を前提として説明を行ったが、第3実施形態では、多段噴射に適用した形態を示す。以下の説明では、同一処理を行うステップ番号に同一番号を付すと共に類似の処理を行うところに類似のステップ番号(例えば添え字「a」を付す)などして、必要に応じて説明を省略し、異なる処理を行うところには他のステップ番号を付して説明を行う。
例えば、4気筒4サイクルエンジンの場合、上死点TDCを基準とした前後のクランク角度180°CAの範囲において例えば5回だけ多段噴射する。これらの各噴射を、以下、それぞれパイロット噴射F1、プレ噴射F2、メイン噴射F3、アフター噴射F4、ポスト噴射F5と称し、全体の噴射をまとめる又はそれぞれの一部を称するときには、必要に応じて「噴射段」と記載する。
<全体処理の流れの説明>
このような場合、正常時には図22Aに示すように、駆動ECU3は、ネットワークNから各噴射段F1〜F5の噴射開始角度(INJ_PILOT_T、INJ_PRE_T、INJ_MAIN_T、INJ_AFTER_T、INJ_POST_T)、及び、噴射量(INJ_PILOT_Q、INJ_PRE_Q、INJ_MAIN_Q、INJ_AFTER_Q、INJ_POST_Q)を含む通信メッセージを受信し、これらの噴射開始角度及び噴射量に応じて多段噴射制御する。
他方、異常時には図22Bに示すように、駆動ECU3のマイコン16は、ネットワークNから通信メッセージを受信したタイミングでパイロット噴射制御を開始し、この受信タイミングを基準として、パイロット−プレインターバル時間(PILOT_PRE_INT)、パイロット−メインインターバル時間(PILOT_MAIN_INT)、パイロット−アフターインターバル時間(PILOT_AFTER_INT)、パイロット−ポストインターバル時間(PILOR_POST_INT)、を設定し、これらの時間の経過タイミングを、それぞれプレ噴射F2、メイン噴射F3、アフター噴射F4、ポスト噴射F5の噴射制御の開始タイミングとする。
すなわち、演算ECU2は、初段のパイロット噴射F1の噴射制御処理以外の後段の噴射段F2〜F5の噴射制御処理のタイミングを通信メッセージの送信タイミングからの経過時間(PILOT_PRE_INT、PILOT_MAIN_INT、PILOT_AFTER_INT、PILOR_POST_INT)で制御する。そして、駆動ECU3のマイコン16は、演算ECU2から経過時間(PILOT_PRE_INT、PILOT_MAIN_INT、PILOT_AFTER_INT、PILOR_POST_INT)の情報を受信し、通信メッセージの受信タイミングから経過時間の情報を経過したタイミングにおいて後段の噴射段F2〜F5の噴射制御処理を行う。
また駆動ECU3のマイコン16は、演算ECU2から各噴射段F1〜F5の噴射量(INJ_PILOT_Q、INJ_PRE_Q、INJ_MAIN_Q、INJ_AFTER_Q、INJ_POST_Q)を受信し、この噴射量の指令値に応じて多段噴射する。以下では、これらの方法に沿った処理を詳細説明する。
<演算ECU2による正常モード時の処理>
演算ECU2は、第1実施形態の図2に代えて図23に示す処理を行う。演算ECU2のマイコン7は、S12において動作モードが正常モードであるときにはS12にてYESと判定し、S13にて目標レール圧を算出し、S14aにおいて各噴射段F1〜F5の噴射量、噴射開始角度を算出し、S15aにおいてCANIDを通常時噴射(INJ_NORMAL_MIDDLE_1〜3)とした通信メッセージを送出する。また、演算ECU2のマイコン7は、S12において動作モードが異常モードであるときにはNOと判定し、S16において異常モード時のポンプ駆動処理を行い、S17aにおいて異常モード時における多段噴射制御処理を行う。図24〜図26には多段噴射における演算ECU2から駆動ECU3に送信するデータの内容例を示している。
図24に示すように、通常時噴射(INJ_NORMAL_MIDDLE_1)のパラメータは、メイン噴射量(INJ_MAIL_Q)、メイン噴射開始角度(INJ_MAIN_Q)、目標レール圧(PRS)、を含んでいる。また図25に示すように、通常時噴射(INJ_NORMAL_MIDDLE_2)のパラメータは、パイロット噴射量(INJ_PILOT_Q)、パイロット噴射開始角度(INJ_PILOT_T)、プレ噴射量(INJ_PRE_Q)、プレ噴射開始角度(INJ_PRE_Q)を含んでいる。また図26に示すように、通常時噴射(INJ_NORMAL_MIDDLE_3)のパラメータは、アフター噴射量(INJ_AFTER_Q)、アフター噴射開始角度(INJ_AFTER_T)、ポスト噴射量(INJ_POST_Q)、ポスト噴射開始角度(INJ_POST_T)を含んでいる。
このように多段噴射処理の場合、図24〜図26に示す通常時噴射のパラメータは、第1実施形態で説明したパラメータ(図3参照)に比較して多く、このため、演算ECU2が駆動ECU3に送信すべきデータ量が多い。したがって演算ECU2は、複数(例えば3)の通信メッセージのフレームに分けてネットワークNに送出している。なお、後述説明するが、異常時噴射のパラメータ(図33〜図35参照)も同様である。
この図24〜図26に示されるパラメータは、通常時噴射に用いられるパラメータであるため、優先度は異常時噴射に用いられるパラメータよりも低く(例えば、7〜9)設定されている。これらの通常時噴射のパラメータの中では、メイン噴射F3に係るパラメータ(INJ_MAIN_Q、INJ_MAIN_T)やコモンレール22の目標レール圧のパラメータ(PRS)の優先度(例えば7)が最も高く、パイロット噴射F1、プレ噴射F2に係るパラメータの優先度(例えば8)が次に高く、アフター噴射F4、ポスト噴射F5に係るパラメータの優先度(例えば9)が最も低く設定されている。
<駆動ECU3の正常モード時の受信割込処理>
駆動ECU3による受信割込処理を図4に代えて図27に示している。駆動ECU3のマイコン16は、通常モードであるときにはS21においてNOと判定し、CANIDが通常時噴射(INJ_NORMAL_MIDDLE1〜3)の通信メッセージを受信したときには、図27のS22aにおいてYESと判定し、S23aにおいて通常時噴射の噴射段F1〜F5の噴射量(INJ_XX_Q)、噴射開始角度(INJ_XX_T)、目標レール圧(PRS)を、変数Q_XX_tmp、T_XX_tmp、P_tmpに退避する。この噴射段F1〜F5の噴射量(INJ_XX_Q)は、図24〜図26のパイロット噴射量(INJ_PILOT_Q)、メイン噴射量(INJ_MAIN_Q)、プレ噴射量(INJ_PRE_Q)、アフター噴射量(INJ_AFTER_Q)、ポスト噴射量(INJ_POST_Q)に相当するパラメータを示している。また、噴射開始角度(INJ_XX_T)は、パイロット噴射開始角度(INJ_PILOT_Q)、メイン噴射開始角度(INJ_MAIN_T)、プレ噴射開始角度(INJ_PRE_T)、アフター噴射開始角度(INJ_AFTER_T)、ポスト噴射開始角度(INJ_POST_T)、に相当するパラメータを示している。図27のS24〜S29に示す異常時の処理内容は後述する。
<駆動ECU3による正常モード時の角度同期処理>
駆動ECU3のマイコン16が、BTDC90°CAに同期して実行する処理を図5Aに代えて図28Aに示している。駆動ECU3のマイコン16は、まずS31において駆動ECU3の動作モードが正常モードであるか否かを判定し、正常モードとされている間には、S32において圧力センサ23からコモンレール圧の情報を入力回路18を通じて取得し、S33においてこの取得されたコモンレール圧、及び、目標レール圧の変数P_tmpにより、ポンプ21の駆動開始角度及びその駆動期間を算出し、S34においてクランクセンサ11のクランクセンサ信号、ポンプ21の駆動開始角度及びその駆動期間よりポンプ21の駆動開始時刻及び駆動終了時刻を算出する。そして駆動ECU3のマイコン16は、S35においてポンプ21の駆動開始角度、駆動期間よりポンプ21の駆動開始時刻及び駆動終了時刻を設定する。このS35の圧力調整ポンプ21の駆動処理は、設定時刻が到来したタイミングになったときにタイマ割込処理により実行される。
そして、駆動ECU3のマイコン16は、S36aにおいて各噴射段F1〜F5の噴射量の変数Q_XX_tmp、及び、各噴射開始角度の変数T_XX_tmp、及び、入力回路18から入力されるクランクセンサ11のクランクセンサ信号に基づいて燃料噴射弁20の噴射開始時刻を算出し、S37aにおいて各燃料噴射弁20の噴射開始時刻を各噴射段F1〜F5に対応した複数個(ここでは5個)のタイマ(図28BにはタイマTI1〜TI5と記載)に設定する。
図28Bに示すように、各噴射段F1〜F5に対応したタイマTI1〜TI5による割込処理が実行されると、S38aaにおいて気筒番号(CYLNUM)の現気筒の噴射制御を開始し、S38bbにおいて圧力センサ23からコモンレール圧を取得し、S38ccにおいて各噴射量の変数Q_XX_tmpとコモンレール圧により噴射期間を算出し、S38ddにおいて噴射終了時刻を終了用に別に設けられたタイマTI6に設定する。そして図28Cに示すように、このタイマTI6による割込処理が行われるとS38eeにおいて現気筒の噴射制御処理を終了する。
図29は、このときの各タイマTI1〜TI6の計数結果とタイマ割込に応じて行われる各噴射段F1〜F5とを示している。駆動ECU3のマイコン16は、図29のタイミングt11において各噴射段F1〜F5の噴射開始時刻を設定して各タイマTI1〜TI5を一斉にスタートし、各タイマTI1〜TI5が各噴射(パイロット、プレ、メイン、アフター、ポスト)の噴射開始時刻の計数値に達すると各噴射段F1〜F5の噴射制御を実行し、各噴射段F1〜F5の噴射制御を実行開始するタイミングt12、t13、t14、t15、t16においてタイマTI6をスタートさせる。そして、タイマTI6が各噴射の噴射終了時刻の計数値に達するタイミングt22、t23、t24、t25、t26において各噴射段F1〜F5の噴射制御を停止することになる。通常時には、このようにして燃料噴射弁20の噴射制御処理が行われる。
なお、駆動ECU3のマイコン16は、動作モードが異常モードに設定されているときには、図28AのS31においてNOと判定し、このBTDC90°CAのタイミングでは処理を行うことなく終了する。
<駆動ECU3による定期的処理>
本実施形態においても第1実施形態と同様に、駆動ECU3のマイコン16は、前述した図28A〜図28Cに示す通常時の処理内容に加えて、第1実施形態で説明した図6に示す処理を定期的に実行する。これにより、クランクセンサ11のクランクセンサ信号の入力異常を生じたときには、駆動ECU3は、CANIDをクランクセンサ異常(ERR_HIGH)とした異常伝達通信メッセージのフレームをネットワークNに送出する。
図30は、このクランクセンサ信号異常(ERR_HIGH)の通信メッセージを示している。この通信メッセージは、クランクセンサ信号異常(ERR)を含んでいる。この通信メッセージの優先度は、最も高い優先度(例えば「1」)に設定されており、最重要メッセージとして設定されている。このとき演算ECU3のマイコン16は、この通信メッセージのフレームを図8に示した受信割込処理により受信し、S53において異常モードに移行する。
演算ECU2による圧力調整ポンプ21の異常モードの駆動制御処理は、第1実施形態の図9、図11を用いて説明した処理と同様であるため説明を省略する。異常モードにおける多段噴射処理は、以下のように実行される。多段噴射処理の場合、通常時噴射のパラメータ(図24〜図26参照)と同様に異常時噴射のパラメータ(図33〜図35参照)も、演算ECU2が駆動ECU3に送信すべきデータは多くなる。このため、演算ECU2のマイコン7は、図31のS91b、S91c及び図32のS91aに示すように、複数(例えば3)の通信メッセージのフレームに分けてネットワークNに送出する。
図31、図32は、演算ECU2による異常時多段噴射制御処理を図10、図12に対応して示している。図31に示すように、演算ECU2のマイコン7は、異常モードに設定されると、S71aにおいて各噴射段F1〜F5の噴射量、及び、各噴射段F1〜F5の噴射開始角度を算出し、S72aにおいて各噴射段F1〜F5の噴射開始角度、クランクセンサ11のクランクセンサ信号により各噴射段F1〜F5の噴射開始時刻を算出する。そして、演算ECU2のマイコン7は、S91b、S91cにおいてCANIDを異常時噴射(INJ_ERR_HIGH_2)、異常時噴射(INJ_ERR_HIGH_3)とする通信メッセージを順次送出し、その後、S73aにおいてパイロット噴射の噴射割込処理の起動時刻をタイマ設定する。
S91b及びS91cにおいて、これらの異常時噴射(INJ_ERR_HIGH_2、INJ_ERR_HIGH_3)の通信メッセージを先に送出する理由は、後の異常時噴射(INJ_ERR_HIGH_1)の通信メッセージの送出タイミングで駆動ECU3による燃料噴射弁20の多段噴射制御の開始タイミングを計るためである。
ここで、異常時噴射(INJ_ERR_HIGH_1)のパラメータは、図33に示すように、パイロット噴射F1と最も重要なメイン噴射F3、及び、そのパイロット噴射F1とメイン噴射F3の間隔を示す時間(PILOT-MAIN_INT)など、比較的優先度が高い(例えば「2」)通信メッセージのパラメータである。また異常時噴射(INJ_ERR_HIGH_2)、及び、異常時噴射(INJ_ERR_HIGH_3)の通信メッセージは、図34〜図35に示すように、前述の優先度が高い通信メッセージを除いた他の噴射(例えば、プレ噴射F2、アフター噴射F4、ポスト噴射F5)に係る通信メッセージのパラメータを主に示している。
例えば、図33に示すように、異常時噴射(INJ_ERR_HIGH_1)の通信メッセージは、メイン噴射量(INJ_MAIN_Q)、パイロット噴射開始からメイン噴射開始までの時間(PILOT_MAIN_INT)、パイロット噴射量(INJ_PILOT_Q)、気筒番号(CYLNUM)のパラメータを含んでいる。図34に示すように、異常時噴射(INJ_ERR_HIGH_2)の通信メッセージは、プレ噴射量(INJ_PRE_Q)、パイロット噴射開始からプレ噴射開始までのインターバル時間(PILOT_PRE_INT)、アフター噴射量(INJ_AFTER_Q)、気筒番号(CYLNUM)のパラメータを含んでいる。図35に示すように、異常時噴射(INJ_ERR_HIGH_3)の通信メッセージは、パイロット噴射開始からアフター噴射開始までのインターバル時間(PILOT_AFTER_INT)、ポスト噴射量(INJ_POST_Q)、気筒番号(CYLNUM)のパラメータを含んでいる。
これらの異常時噴射に係る情報としては、通常時噴射によるパラメータ情報に比較して、通常時噴射におけるパイロット噴射開始角度(図25参照)が不要であり、気筒番号(CYLNUM)を示す情報が必要となる(図33、図34、図35参照)。
駆動ECU3は、図27の受信割込処理を行うことで、異常モードにおいて異常時噴射(INJ_ERR_HIGH_2〜3)の通信メッセージのフレームを受信すると、S21でYES、S24及びS26でNO、S28でYESと判定し、S29において異常時噴射(INJ_ERR_HIGH_2〜3)の通信メッセージに含まれる噴射量(INJ_XX_Q)、時間(PILOT_PRE_INT、PILOT_AFTER_INT、PILOT_POST_INT)、気筒番号(CYLNUM)をそれぞれ変数(Q_XX_tmp、INT_XX_tmp、Cyl_tmp)に退避させる。
そして演算ECU2は、図31のS73aに示すように、タイマ割込みにより起動時刻が到来したタイミングで、図32のS91aにおいて異常時噴射(INJ_ERR_HIGH_1)の通信メッセージのフレームをネットワークNに送出する。駆動ECU3は、図27の受信割込処理を行うことで、異常モードにおいて異常時噴射(INJ_ERR_HIGH_1)の通信メッセージのフレームを受信すると、S24においてYESと判定し、S25において異常モード時における燃料噴射弁20の噴射制御処理を実行する。
図36から図38は、駆動ECU3による異常モード時における燃料噴射弁20の噴射制御処理を示している。駆動ECU3は、図36のS101aにおいて異常時噴射(INJ_ERR_HIGH_1)の通信メッセージに含まれるメイン噴射量及びパイロット噴射量(INJ_MAIN_Q、INJ_PILOT_Q)とパイロット噴射開始からメイン噴射開始までの時間(PILOT_MAIN_INT)と気筒番号(CYLNUM)とをそれぞれ変数Q_XX_tmp、INT_XX_tmp、Cyl_tmpに退避させる。
そして駆動ECU3は、S102aにおいて変数Cyl_tmpに対応した現気筒の燃料噴射弁20を即時噴射制御開始する。その後、駆動ECU3は、S103においてコモンレール22のレール圧を圧力センサ23から入力回路18を通じて取得し、S104aにおいてプレ噴射F2、メイン噴射F3、アフター噴射F4、ポスト噴射F5に係る噴射開始時刻を設定し、S104bにおいてパイロット噴射量及びコモンレール圧よりパイロット噴射F1の噴射期間を算出し、S105aにおいて噴射終了時刻をタイマTI5に設定する。タイマTI5の割込を発生し噴射終了時刻が到来すると、図38のS109aに示すように、変数Cyl_tmpに対応した現気筒の燃料噴射弁20のパイロット噴射制御処理を終了する。
そして図37に示すように、パイロット噴射F1の後の噴射段F2〜F5に対応したタイマTI1〜TI4による割込処理が実行されると、S106において変数Cyl_tmpに対応した現気筒の噴射制御を開始し、S107において圧力センサ23からコモンレール圧を取得し、S108において各噴射量の変数Q_XX_tmpとコモンレール圧により噴射期間を算出し、S109において噴射終了時刻を終了用に別に設けられたタイマTI5に設定する。そして図38のS109aに示すように、このタイマTI6による割込処理が行われると変数Cyl_tmpに対応した現気筒の燃料噴射弁20の各噴射段F2〜F5の噴射制御処理を終了する。
なお、演算ECU2が駆動ECU3に送信する異常時圧力(PRS_ERR_HIGH)の通信メッセージを図39に示しており、駆動ECU3が演算ECU2に送信する異常時レール圧(PRS_RAIL_HIGH)の通信メッセージを図40に示している。図39に示す異常時圧力(PRS_ERR_HIGH)の通信メッセージは優先度が例えば「3」に設定されている。この異常時圧力(PRS_ERR_HIGH)の通信メッセージの優先度「3」が、異常時噴射(INJ_ERR_HIGH_1)の通信メッセージの優先度(例えば「2」)に続いて比較的高い理由は、演算ECU2により当該通信メッセージが送信されるタイミングが駆動ECU3によりポンプ21を駆動するタイミングに直結するためであり、この通信メッセージが異常モード時におけるポンプ21の駆動タイミングを計るために重要な通信メッセージであるためである。
図40に示す異常時レール圧(PRS_RAIL_HIGH)の通信メッセージは優先度が例えば「6」に設定されている。この異常時レール圧(PRS_RAIL_HIGH)の通信メッセージは、駆動ECU3が、圧力センサ23によるコモンレール圧のセンサ値を演算ECU2に伝達するための通信メッセージであり、その優先度は通常時のメッセージよりも高くする必要があるものの異常モード時の通信メッセージの中では比較的優先度を低くしても良い。
図41には異常モード時における噴射開始時刻及び噴射終了時刻の計測タイミングを示している。まず、この図41のタイミングt31に示すように、図36のS102aにおいてパイロット噴射F1について即時噴射制御開始する。この図41のタイミングt31において、駆動ECU3のマイコン16は全てのタイマTI1〜TI5を起動する。
そして駆動ECU3は、図41のタイミングt41においてタイマTI5によりパイロット噴射F1の終了時刻が到来したことを検知すると、燃料噴射弁20の噴射制御を終了し、タイマTI5をクリアする。その後、駆動ECU3は、図41のタイミングt32においてタイマTI1によりプレ噴射F2の噴射開始時刻が到来したことを検知すると、燃料噴射弁20のプレ噴射F2に係る噴射制御を開始し、タイマTI1をクリアし、プレ噴射F2の噴射制御終了時刻をタイマTI5に設定し再起動する。図41のタイミングt42においてタイマTI5によりプレ噴射F2の噴射制御終了時刻が到来したことを検知すると、プレ噴射F2の噴射制御を終了する。この後の図41の説明は省略するが、これらの処理が、メイン噴射F3、アフター噴射F4、及び、ポスト噴射F5について繰り返される(タイミングt33、t43、t34、t44、t35、t45参照)。
<本実施形態に係る概念的なまとめ>
以上説明したように、多段噴射処理においても退避走行に関する処理を正常に実行できる。
特に、多段噴射する場合には、演算ECU2は、多段噴射のうち初段のパイロット噴射F1に噴射するタイミングを通信メッセージの送信タイミングにて制御し、駆動ECU3のマイコン16は、通信メッセージの受信タイミングにおいてパイロット噴射F1について即時噴射制御するようにしているため、演算ECU2がパイロット噴射F1の噴射制御タイミングを計ることができる。
また、演算ECU2のマイコン7は、初段のパイロット噴射F1の噴射制御処理以外の後段の噴射段F2〜F5の噴射制御処理のタイミングを通信メッセージの送信タイミングからの経過時間(PILOT_PRE_INT、PILOT_MAIN_INT、PILOT_AFTER_INT、PILOR_POST_INT)で制御するように構成され、駆動ECU3のマイコン16は、経過時間の情報を受信し、通信メッセージの受信タイミングから経過時間の情報を経過したタイミングにおいて後段の噴射段F2〜F5の噴射制御処理を行うようにしているため、退避走行に関する処理を正常に実行できる。
特に、通常時には6個のタイマTI1〜TI6を用いて噴射制御処理できると共に異常時には5個のタイマTI1〜TI5を用いて噴射制御処理できるようになる。
(第4実施形態)
図42から図44は第4実施形態の追加説明図を示している。第1実施形態では、異常モードにおいて演算ECU2側において噴射量を算出して駆動ECU3に送信し、駆動ECU3がこの噴射量に応じて噴射期間を算出し当該噴射期間に応じて燃料噴射弁20を噴射制御する形態を説明したが、これに限られるものではない。第4実施形態は、異常モード時において演算ECU2の側で噴射期間を算出し、この噴射期間の情報を駆動ECU3に送信し、駆動ECU3がこの噴射期間に基づいて噴射制御する形態を示している。
<演算ECU2による燃料噴射弁20の噴射制御処理>
図42は、図10に代えて異常モード時の演算ECU2の噴射制御処理の流れをフローチャートにより示している。この図42に示すように、演算ECU2のマイコン7は、S71において噴射量、燃料噴射弁20の噴射開始角度を算出し、S72においてクランクセンサ11のクランクセンサ信号及び噴射開始角度より噴射割込処理の起動時刻を算出し、S74において圧力センサ23によるコモンレール圧と受信した噴射量とを用いて噴射期間を算出し、S73において燃料噴射弁20の噴射割込処理の起動時刻を設定してこのルーチンを抜ける。このとき、コモンレール圧の情報は、図9を参照して前述説明したように、駆動ECU3から異常時レール圧(PRS_RAIL_HIGH)の情報を取得することで行われる。そして、燃料噴射弁20の噴射割込処理の起動時刻が設定されると、演算ECU2のマイコン7は、図12に示すように、S91においてCANIDとして異常時噴射(INJ_ERR_HIGH)の通信メッセージをネットワークNに送出する。
<駆動ECU3による異常モード時の噴射制御処理>
駆動ECU3は図4に示した受信割込処理を実行することで異常時噴射(INJ_ERR_HIGH)の通信メッセージを受信すると、図43に示す駆動ECU3による噴射制御処理を実行する。図43は図15に代わる異常モード時の駆動ECU3の噴射制御処理の流れを示しており、また図44は、図14に代わる異常時噴射(INJ_ERR_HIGH)の通信メッセージのパラメータの説明図を示している。
図44に示すように、異常時噴射(INJ_ERR_HIGH)の通信メッセージは、噴射量(INJ_Q)に代えて噴射期間(INJ_TQ)をパラメータとして含んでいる。駆動ECU3のマイコン16は、図43のS101において通信メッセージに含まれる異常時噴射(INJ_ERR_HIGH)の噴射期間(INJ_TQ)と気筒番号(CYLNUM)とをそれぞれ変数TQ_tmp、Cyl_tmpに退避させる。駆動ECU3のマイコン16は、S102において変数Cyl_tmpに対応した気筒の燃料噴射弁20を即時噴射制御開始する。その後、S105において燃料噴射弁20の噴射終了時刻(噴射期間)を設定する。なおここでは、噴射制御終了割込処理を起動するためのタイマを設定してこのルーチンを抜ける。タイマ割込を生じると燃料噴射弁20を噴射制御終了することになる。これにより、第1実施形態と同様の作用を奏することになる。
本実施形態に示すように、演算ECU2が噴射量(INJ_Q)に代えて噴射期間(INJ_TQ)の情報を駆動ECU3に送信するようにしても良い。
すなわち、通常時に駆動ECU3が負担する噴射期間の演算処理を、異常時に演算ECU2のマイコン7が負担している。具体的に、演算ECU2のマイコン7は、駆動ECU3から圧力センサ23によるコモンレール圧(異常時レール圧(PRS_RAIL_HIGH))の情報を受信し、この圧力センサ23のセンサ値と噴射量の指令値とより噴射期間を演算処理して駆動ECU3に送信するようにしている。これにより駆動ECU3の処理負荷を軽減できるようになる。
(第5実施形態)
図45から図48は第5実施形態の追加説明図を示している。第5実施形態は、各通信メッセージのパラメータの変形例について説明する。
<通常時噴射に係る通信メッセージのパラメータの変形例>
以下、通常時噴射(INJ_NORMAL_MIDDLE_X)の通信メッセージに含まれるパラメータの変形例を説明する。図45は図25に代わる通常時噴射(INJ_NORMAL_MIDDLE_2)の通信メッセージに含まれるパラメータ、図46は図26に代わる通常時噴射(INJ_NORMAL_MIDDLE_3)の通信メッセージに含まれるパラメータ、を示している。なお、図24に示す通常時噴射(INJ_NORMAL_MIDDLE_1)の通信メッセージに含まれるパラメータは変更しないためここでの図示を省略している。
図45に示すように、メイン噴射F3を除いた各噴射段(パイロット、プレ、アフター、ポスト)F1、F2、F4、F5の噴射量(INJ_PILOT_Q,INJ_PRE_Q,INJ_AFTER_Q,INJ_POST_Q)をまとめると共に、図46に示すように、メイン噴射F3を除いた各噴射段F1、F2、F4、F5の噴射開始角度(INJ_PILOT_T,INJ_PRE_T,INJ_AFTER_T,INJ_POST_T)をまとめて送信するようにしても良い。各噴射段F1〜F5では、噴射量と噴射開始角度のパラメータが与えられない限り、噴射制御に係るパラメータが確定しないため駆動ECU3が噴射制御することはできない。このため、各噴射段F1〜F5の噴射量や噴射開始角度のパラメータをそれぞれまとめても良く、また図示はしていないが、これらのパラメータを混在させても良く、同一の通信メッセージの内部であればそのパラメータの順序は問われない。このとき、これらのメッセージの優先度は、図25及び図26と、図45及び図46とを対比して示すと理解し易いが、通常時噴射(INJ_NORMAL_MIDDLE_2)の優先度と通常時噴射(INJ_NORMAL_MIDDLE_3)の優先度とを入れ替えても良い(図中の優先度「8」←→「9」)。ただし、メイン噴射F3に係る通常時噴射(INJ_NORMAL_MIDDLE_1)の通信メッセージは、図24に示したように全噴射段F1〜F5の中で最も重要なため、その通信メッセージの優先度を他の噴射段F1、F2、F4、F5の通信メッセージより高い優先度(例えば「7」)とすることが望ましい。
<異常時噴射に係る通信メッセージのパラメータの変形例>
以下、異常時噴射(INJ_ERR_HIGH_X)の通信メッセージに含まれるパラメータの変形例を説明する。図47は図34に代わる異常時噴射(INJ_ERR_HIGH_2)の通信メッセージに含まれるパラメータ、図48は図35に代わる異常時噴射(INJ_ERR_HIGH_3)の通信メッセージに含まれるパラメータ、を示している。なお、図34に示す異常時噴射(INJ_ERR_HIGH_1)の通信メッセージに含まれるパラメータは変更していないためここでの図示を省略している。
異常時噴射(INJ_ERR_HIGH_X)の通信メッセージも通常時噴射(INJ_NORMAL_MIDDLE_X)の通信メッセージと同様に、駆動ECU3は各噴射段F1〜F5の噴射量と噴射開始角度が入力されない限り噴射制御開始することはない。このため、図47に示すように、パイロット噴射F1及びメイン噴射F3を除いたプレ噴射F2、アフター噴射F4、ポスト噴射F5の噴射量(INJ_PRE_Q,INJ_AFTER_Q,INJ_POST_Q)をまとめると共に、図48に示すように、メイン噴射F3を除いたプレ噴射F2、アフター噴射F4、ポスト噴射F5の噴射開始までのインターバル時間(PILOT-AFTER_INT,PILOT-PRE_INT,PILOT-POST_INT)のパラメータをまとめても良い。また図示はしていないが、これらのパラメータを混在させても良く、同一の通信メッセージの内部であればそのパラメータの順序は問わない。
このときこれらの優先度は、図34及び図35と、図47及び図48とを対比して示すと理解し易いが、異常時噴射(INJ_ERR_HIGH_2)の優先度と異常時噴射(INJ_ERR_HIGH_3)の優先度とを入れ替えても良い(図中の優先度「4」←→「5」)。ただし、パイロット噴射量を含む異常時噴射(INJ_ERR_HIGH_1)の通信メッセージは、当該メッセージの送信タイミングが即時噴射制御する時刻に直結するため、その通信メッセージの優先度を他の噴射段の通信メッセージより高い優先度(例えば「3」)とすることが望ましい。これにより、演算ECU2によるパイロット噴射F1に係る異常時噴射(INJ_ERR_HIGH_1)の通信メッセージの送信タイミングと、駆動ECU3によるパイロット噴射F1の制御開始タイミングとの時間差を最小限に抑えることができる。
(第6実施形態)
図49Aから図58Dは第6実施形態の追加説明図を示している。例えば第2実施形態ではタイマTI1〜TI6を6つ使用して多段噴射する形態を説明したが、第6実施形態はタイマTI1、TI2を2つ使用して多段噴射する場合の形態を説明する。まずタイマTI1、TI2を2つ使用した場合の各噴射段F1〜F5の期間の設定方法について説明する。
<各噴射段F1〜F5の噴射期間及びインターバル期間の設定方法>
図49Aに正常時の流れを示すように、駆動ECU3のマイコン16は、BTDC90°CAのタイミングt51からパイロット噴射F1の噴射開始角度とクランクセンサ信号とにより噴射開始時刻を算出し、パイロット噴射開始時刻においてパイロット噴射F1を実行し、当該パイロット噴射F1以外の各噴射段F2〜F5の噴射開始時刻をその前段F1〜F4の噴射開始時刻からのインターバル時間(PILOT_PRE_INT,PRE_MAIN_INT,MAIN_AFTER_INT,AFTER_POST_INT)として演算ECU2から受信してタイマTI2に設定し、このタイマTI2の割込が発生すると順次噴射段F2〜F5の噴射制御を開始する(タイミングt52〜t56)。このときタイマTI2をクリアすると共にタイマTI1に各噴射段F2〜F5の噴射終了時刻(噴射期間)を設定し、このタイマTI1の割込により噴射制御を終了する(タイミングt52〜t62、t53〜t63、t54〜t64、t55〜t65、t56〜t66)。
また、図49Bに異常時の流れを示すように、駆動ECU3のマイコン16は、演算ECU2からの指令をネットワークNから受信したタイミングt71でパイロット噴射F1に係る噴射制御を開始し、この受信タイミングt71でパイロット噴射期間をタイマTI1に設定すると共に、次回のプレ噴射F2までのパイロット−プレインターバル時間(PILOT_PRE_INT)をタイマTI2に設定する。このパイロット噴射F1はタイミングt81においてタイマTI1の割込により終了する。
そして、駆動ECU3のマイコン16は、タイミングt72でタイマTI2の割込が発生しプレ噴射F2の噴射開始時間が到来するとプレ噴射期間をタイマTI1に設定すると共に、次回のメイン噴射F3までのプレ−メインインターバル時間(PRE_MAIN_INT)をタイマTI2に再設定する。このプレ噴射F2はタイミングt82においてタイマTI1の割込により終了する。
同様に繰り返すが、駆動ECU3のマイコン16は、タイミングt73でタイマTI2の割込が発生しメイン噴射F3の噴射開始時間が到来するとメイン噴射期間をタイマTI1に設定すると共に、次回のアフター噴射F4までのメイン−アフターインターバル時間(MAIN_AFTER_INT)をタイマTI2に再設定する。このメイン噴射F3はタイミングt83においてタイマTI1の割込により終了する。
そして駆動ECU3のマイコン16は、タイミングt74でタイマTI2の割込が発生しアフター噴射F4の噴射開始時間が到来するとアフター噴射期間をタイマTI1に設定すると共に、次回のポスト噴射F5までのアフター−ポストインターバル時間(AFTER_POST_INT)をタイマTI2に再設定する。このアフター噴射F4はタイミングt84においてタイマTI1の割込により終了する。そして駆動ECU3のマイコン16は、タイミングt75でタイマTI2の割込が発生しポスト噴射F5の噴射開始時間が到来するとポスト噴射期間をタイマTI1に設定する。このポスト噴射F5はタイミングt85においてタイマTI1の割込により噴射制御を終了する。
前述したように、タイマTI1、TI2には、各噴射段F1〜F5の噴射期間、及び、インターバル時間(PILOT_PRE_INT,PRE_MAIN_INT,MAIN_AFTER_INT,AFTER_POST_INT)を設定する。噴射期間は、噴射量とコモンレール22の圧力により求めることができるが、本実施形態の通信メッセージのパラメータは第3実施形態等に示したパラメータとは異なるため、以下では通常時噴射及び異常時噴射の通信メッセージの各パラメータを説明する。
図50から図52は、図24から図26に代わる通常時噴射(INJ_NORMAL_MIDDLE_X)の通信メッセージの内容を示している。図50に示すように、図24に示したメイン噴射開始角度(INJ_MAIN_Q)に代えて、プレ噴射開始からメイン噴射開始までのインターバル時間(PRE_MAIN_INT)のパラメータを通常時噴射(INJ_NORMAL_MIDDLE_1)の通信メッセージに含めるように設定している。
また図51に示すように、通常時噴射(INJ_NORMAL_MIDDLE_2)の通信メッセージには、各噴射段F1、F2、F4、F5の噴射量(INJ_PILOT_Q,INJ_PRE_Q,INJ_AFTER_Q,INJ_POST_Q)のパラメータをまとめている。また、図52に示すように、通常時噴射(INJ_NORMAL_MIDDLE_3)の通信メッセージは、パイロット噴射開始角度(INJ_PILOT_T)、パイロット噴射開始からプレ噴射開始までのインターバル時間(PILOT_PRE_INT)、メイン噴射開始からアフター噴射開始までのインターバル時間(MAIN_AFTER_INT)、アフター噴射開始からポスト噴射開始までのインターバル時間(INJ_POST_INT)のパラメータを含んでいる。また、第3実施形態と比較して、図51に示す通常時噴射(INJ_NORMAL_MIDDLE_2)の通信メッセージの優先度と、図51に示す通常時噴射(INJ_NORMAL_MIDDLE_3)の通信メッセージの優先度とを入れ替えている(図中の優先度「8」←→「9」)。
また図53から図55は、図33から図35に代わる異常時噴射(INJ_ERR_HIGH_X)の通信メッセージの内容を示している。図53に示すように、図33に示したパイロット噴射開始からメイン噴射開始までのインターバル時間(PILOT_MAIN_INT)のパラメータに代えて、プレ噴射開始からメイン噴射開始までのインターバル時間(PRE_MAIN_INT)のパラメータを異常時噴射(INJ_ERR_HIGH_1)の通信メッセージに含めるように設定している。また図54に示すように、異常時噴射(INJ_ERR_HIGH_2)の通信メッセージには、各噴射段F2、F4、F5の噴射量(INJ_PRE_Q,INJ_AFTER_Q,INJ_POST_Q)と気筒番号(CYLNUM)のパラメータをまとめている。
また図55に示すように、異常時噴射(INJ_ERR_HIGH_3)の通信メッセージは、メイン噴射開始からアフター噴射開始までのインターバル時間(MAIN_AFTER_INT)、パイロット噴射開始からプレ噴射開始までのインターバル時間(PILOT_PRE_INT)、アフター噴射開始からポスト噴射開始までのインターバル時間(AFTER_POST_INT)、及び、気筒番号(CYLNUM)のパラメータを含んでいる。また、第3実施形態と比較して、図54に示す異常時噴射(INJ_ERR_HIGH_2)の通信メッセージの優先度と、図55に示す異常時噴射(INJ_ERR_HIGH_3)の通信メッセージの優先度とを入れ替えている(図中の優先度「5」←→「4」)。
<正常モード時の処理>
前述実施形態でも示したように、正常モード時には、演算ECU2は通常時噴射(INJ_NORMAL_MIDDLE_X(X=1〜3)))の通信メッセージをネットワークNに送出し、駆動ECU3はこの通信メッセージを受信割込処理により受信する。また、駆動ECU3のマイコン16は、以下に示す角度同期処理をBTDC90°にて実行する。
<駆動ECU3による正常モード時の角度同期処理>
図56Aは駆動ECU3のマイコン16が、BTDC90°CAのタイミングに同期して実行する処理を示しており、図49Aのタイミングt51において実行される。
駆動ECU3のマイコン16は、まずS31において駆動ECU3の動作モードが正常モードであるか否かを判定し、正常モードとされている間には、S32にて圧力センサ23からコモンレール圧の情報を入力回路18を通じて取得し、S33においてこの取得されたコモンレール圧、及び、目標レール圧の変数P_tmpに基づいてポンプ21の駆動開始角度、及びその駆動期間を算出し、S34においてクランクセンサ11のクランクセンサ信号、ポンプ21の駆動開始角度、及び、ポンプ21の駆動期間より、ポンプ21の駆動開始時刻及び駆動終了時刻を算出する。そして、S35においてポンプ21の駆動開始時刻及び駆動終了時刻を設定する。このS35の圧力調整ポンプ21の駆動処理は、設定時刻が到来したタイミングになったときにタイマ割込処理により実行される。
そして、駆動ECU3のマイコン16は、S36bにおいて、まず「現在の噴射段」の変数として最初の「パイロット噴射段F1」を記憶設定する。そして、マイコン16は、S36cにおいて、パイロット噴射開始角度の変数T_PILOT_tmp、及び、入力回路18から入力されるクランクセンサ11のクランクセンサ信号に基づいて、パイロット噴射F1の噴射開始時刻を算出し、S36cにおいてタイマTI2に設定する。そして、マイコン16は、S36zにおいてパイロット噴射F1の噴射量の変数Q_PILOT_tmpとコモンレール圧の情報によりパイロット噴射F1の噴射期間を算出する。
そして、タイマTI2の割込が発生すると、図56B及び図56Cに示すように処理を実行する。これらの図56B及び図56Cに示す処理において、図49Aのタイミングt52に対応してタイマTI2の割込が発生すると、まずS141において現気筒の噴射制御を即時開始し、S142において圧力センサ23によりコモンレール圧を取得した後、S143以降の処理において噴射段F1〜F5を表す変数INJ()に応じて処理を変更している。
すなわち図56Aに示すように、噴射段の変数INJ()が「パイロット噴射F1」とされているときには、S143でYESと判定し、S144においてパイロット噴射F1の噴射量とコモンレール圧より噴射期間を算出し、S145においてパイロット噴射終了時刻をタイマTI1に設定する。そしてS146においてプレ噴射開始時刻をタイマTI2に再設定し、S147において噴射段の変数INJ()を「プレ噴射F2」とする。図49Aのタイミングt62に対応してタイマTI1の割込が発生すると、図56DのS171においてパイロット噴射F1の噴射制御を終了する。
その後、図49Aのタイミングt53に対応して再度タイマTI2の割込が発生したときには、噴射段の変数INJ()が「プレ噴射F2」とされている。このため、図56BのS141で現気筒のプレ噴射F2の制御を即時開始し、S142において圧力センサ23によりコモンレール圧を取得した後、S148でYESと判定し、S149においてプレ噴射F2の噴射量とコモンレール圧により噴射期間を算出し、S150においてプレ噴射終了時刻をタイマTI1に設定する。そしてS151においてメイン噴射開始時刻をタイマTI2に再設定し、S152において現在の噴射段の変数INJ()を「メイン噴射F3」とする。図49Aのタイミングt63に対応してタイマTI1の割込が発生すると、図56DのS171においてプレ噴射F2の噴射制御を終了する。
さらにその後、図49Aのタイミングt54に対応して再度タイマTI2の割込が発生したときには、噴射段の変数INJ()が「メイン噴射F3」とされている。このため、図56BのS141で現気筒のメイン噴射F3の制御を即時開始し、S142において圧力センサ23によりコモンレール圧を取得した後、S153でYESと判定し、S154においてメイン噴射F3の噴射量とコモンレール圧により噴射期間を算出し、S155においてメイン噴射終了時刻をタイマTI1に設定する。そしてS156においてアフター噴射開始時刻をタイマTI2に再設定し、S157において現在の噴射段の変数INJ()を「アフター噴射F4」とする。そして図49Aのタイミングt64に対応してタイマTI1の割込が発生すると、図56DのS171においてメイン噴射F3の噴射制御を終了する。
さらにその後、図49Aのタイミングt55に対応して再度タイマTI2の割込が発生したときには、噴射段の変数INJ()が「アフター噴射F4」とされている。このため、図56BのS141で現気筒のアフター噴射F4の制御を即時開始し、S142において圧力センサ23によりコモンレール圧を取得した後、図56CのS158でYESと判定し、S159においてアフター噴射F4の噴射量とコモンレール圧により噴射期間を算出し、S160においてアフター噴射終了時刻をタイマTI1に設定する。そして、S161においてポスト噴射開始時刻をタイマTI2に再設定し、S162において噴射段の変数INJ()を「ポスト噴射F5」とする。そして図49Aのタイミングt65に対応してタイマTI1の割込が発生すると、図56DのS171においてアフター噴射F4の噴射制御を終了する。
さらにその後、図49Aのタイミングt56に対応して再度タイマTI2の割込が発生したときには、噴射段の変数INJ()が「ポスト噴射F5」とされている。このため、図56BのS141で現気筒のポスト噴射F5の制御を即時開始し、S142において圧力センサ23によりコモンレール圧を取得した後、図56CのS163でYESと判定し、S164においてポスト噴射F5の噴射量とコモンレール圧により噴射期間を算出する。そして、S165において噴射終了時刻をタイマTI1に設定する。そして図49Aのタイミングt66に対応してタイマTI1の割込が発生すると、図56DのS171においてポスト噴射F5の噴射制御を終了する。このような流れで一巡の噴射制御処理を実行できる。
<異常モード時の処理内容>
また異常モード時には、図49Bに示したように、ネットワークNの受信割込を生じたタイミングを基準としてタイマTI1、TI2を使用する。
<駆動ECU3による異常モード時の受信割込処理>
異常時において駆動ECU3は図27に代えて図57に示す受信割込処理を実行する。図57に示すように、異常モード時において、駆動ECU3がCANIDとして異常時噴射(INJ_ERR_HIGH2〜3)の通信メッセージを受信するとS28でYESと判定し、S29で異常時噴射(INJ_ERR_HIGH_2〜3)の通信メッセージに含まれる噴射量(INJ_XX_Q)、時間(MAIN_AFTER_INT、PILOT_PRE_INT、PRE_POST_INT)、気筒番号(CYLNUM)をそれぞれ変数(Q_XX_tmp、INT_XX_tmp、Cyl_tmp)に退避させる。また、駆動ECU3が、異常時噴射(INJ_ERR_HIGH1)の通信メッセージを受信すると、S24でYESと判定し、S25において図36〜図38に代えて図58A〜図58Cに示す異常モード時の噴射制御処理を実行する。
<駆動ECU3による異常モード時の燃料噴射弁20の噴射制御処理>
駆動ECU3のマイコン16は、図58AのS101aにおいて通信メッセージに含まれる異常時噴射(INJ_ERR_HIGH)の噴射量(INJ_Q)と気筒番号(CYLNUM)とをそれぞれ変数Q_tmp、Cyl_tmpに退避させる。そして駆動ECU3のマイコン16は、S102aにおいて変数Cyl_tmpに対応した現気筒の燃料噴射弁20を噴射制御開始する。
その後、駆動ECU3は、S103においてコモンレール22のコモンレール圧を圧力センサ23から入力回路18を通じて取得し、S104bにおいてコモンレール圧と各噴射段F1〜F5の噴射量の変数Q_XX_tmpより噴射期間を算出し、S105bにおいて燃料噴射弁20のパイロット噴射F1の終了時刻(噴射期間)をタイマTI1に設定する(図49Bのタイミングt71参照)。
そして、駆動ECU3のマイコン16は、S181において噴射段の変数INJ()として「プレ噴射F2」を設定し、プレ噴射F2の噴射開始時刻をタイマTI2に設定する。なお、ここでは、パイロット噴射F1の噴射終了時刻の割込処理を起動するためのタイマTI1を設定すると共に、プレ噴射F2の割込処理を起動するためのタイマTI2を設定してこのルーチンを抜ける。図49Bのタイミングt81に対応してタイマTI1の割込が発生すると、図58CのS109aにおいてパイロット噴射F1の噴射制御を終了する。
タイマTI2の割込が発生すると、駆動ECU3は図58Bに示すように処理を実行する。この図58Bに示す処理では、図49Bのタイミングt72に対応してタイマTI2の割込が発生すると、まずS183において燃料噴射弁20を即時制御開始し、S184において圧力センサ23によりコモンレール圧を取得した後、噴射段の変数INJ()に応じて処理を変更している。
すなわち、図58Bに示すように、噴射段の変数INJ()が「プレ噴射F2」とされているときには、S185でYESと判定し、S186においてプレ噴射F2の噴射量とコモンレール圧より噴射期間を算出し、S187においてプレ噴射F2の噴射終了時刻をタイマTI1に設定し、S188においてメイン噴射開始時刻をタイマTI2に再設定する。そして、S189において噴射段の変数INJ()を「メイン噴射F3」とする。その後、図49Bのタイミングt82に対応してタイマTI1の割込が発生すると、図58CのS109aにおいてプレ噴射F2の制御を終了する。
その後、図49Bのタイミングt73に対応して再度タイマTI2の割込が発生したときには、噴射段の変数INJ()が「メイン噴射F3」とされているため、S183で現気筒のメイン噴射F3の噴射制御を即時開始してS184でコモンレール圧を取得した後、S190でYESと判定し、S191においてメイン噴射F3の噴射量とコモンレール圧より噴射期間を算出し、S192においてメイン噴射F3の噴射終了時刻をタイマTI1に設定し、S193においてアフター噴射F4の噴射開始時刻をタイマTI2に再設定する。そして、S194において噴射段の変数INJ()を「アフター噴射F4」とする。その後、図49Bのタイミングt83に対応してタイマTI1の割込が発生すると、図58CのS109aにおいてメイン噴射F3の制御を終了する。
さらにその後、図49Bのタイミングt74に対応して再度タイマTI2の割込が発生したときには、噴射段の変数INJ()が「アフター噴射F4」とされているため、S183で現気筒のアフター噴射F4の噴射制御を即時開始してS184でコモンレール圧を取得した後、S195でYESと判定し、S196においてアフター噴射F4の噴射量とコモンレール圧より噴射期間を算出し、S197においてアフター噴射F4の噴射終了時刻をタイマTI1に設定し、S198においてポスト噴射開始時刻をタイマTI2に再設定する。そして、S199において噴射段の変数INJ()を「ポスト噴射F5」とする。その後、図49Bのタイミングt84に対応してタイマTI1の割込が発生すると、図58CのS109aにおいてアフター噴射F4の制御を終了する。
さらにその後、図49Bのタイミングt75に対応して再度タイマTI2の割込が発生したときには、噴射段の変数INJ()が「ポスト噴射F5」とされているため、S183で現気筒のポスト噴射F5の噴射制御を即時開始してS184でコモンレール圧を取得した後、S200でYESと判定し、S201においてポスト噴射F5の噴射量とコモンレール圧より噴射期間を算出し、S202においてポスト噴射F5の噴射終了時刻をタイマTI1に設定する。その後、図49Bのタイミングt85に対応してタイマTI1の割込が発生すると、図58CのS109aにおいてポスト噴射F5の制御を終了する。このような流れで一巡の噴射制御処理を実行できる。
このようにタイマTI1、TI2を2つだけ用いた場合においても、前述実施形態と同様に、正常モード時及び異常モード時の処理を実行できるようになる。本実施形態によれば、例えば、第3実施形態に比較して、使用するタイマTI1、TI2の個数を削減できる。
(他の実施形態)
本発明は前述実施形態に限定されるものではなく、例えば、以下に示す変形又は拡張が可能である。
前述の第3実施形態では、5段噴射について例を挙げたが、3段、7段、9段噴射、などにも適用できる。
説明の簡略化のため、ポンプ21を駆動制御することで燃料圧を加圧調整する形態を示しているが、減圧弁を調整することで燃料圧を減圧調整する形態に適用しても良い。
CANをネットワークNの通信方式の一例として挙げて説明したが、これに限定されるものではなく、例えば、CAN−FD、LIN、FlexRay(登録商標)、MOST(Media Oriented Systems Transport:登録商標)、のうち何れか一つの方式を適用しても良い。
前述実施形態では、4気筒4サイクルエンジンを例に挙げて説明したが、これに限られるものではない。例えば、6気筒4サイクルエンジンであればクランク角度120°CAを周期として噴射処理がなされるが、この場合も前述実施形態を同様に適用できる。各実施形態(第1〜第5実施形態)の構成は矛盾しない限り互いに組み合わせて適用できる。
特許請求の範囲に記載した括弧内の符号は、本発明の一つの態様として前述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。前述実施形態の一部を、課題を解決できる限りにおいて省略した態様も実施形態と見做すことが可能である。また、特許請求の範囲に記載した文言によって特定される発明の本質を逸脱しない限度において、考え得るあらゆる態様も実施形態と見做すことが可能である。
また本発明は、前述した実施形態に準拠して記述したが、本発明は当該実施形態や構造に限定されるものではないと理解される。本発明は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範畴や思想範囲に入るものである。