以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図1は、本実施形態に係る電子制御装置が適用される、自動車用エンジンのシステム構成を示している。
エンジン10は、例えば、直列4気筒ガソリンエンジンであり、各気筒に吸気(吸入空気)を導入するための吸気管12には、エンジン10の負荷の一例としての吸気流量Qを検出する吸気流量センサ14が取り付けられている。吸気流量センサ14としては、例えば、エアフローメータなどの熱線式流量計を使用することができる。なお、エンジン10の負荷としては、吸気流量Qに限らず、例えば、吸気負圧、過給圧力、スロットル開度、アクセル開度など、トルクと密接に関連する状態量を使用することができる。
各気筒の燃焼室16に吸気を導入する吸気ポート18には、その開口を開閉する吸気弁20が配設されている。吸気弁20の吸気上流に位置する吸気管12には、吸気ポート18に向けて燃料を噴射する燃料噴射弁22が取り付けられている。燃料噴射弁22は、電磁コイルへの通電によって磁気吸引力が発生すると、スプリングによって閉弁方向に付勢されている弁体がリフトして開弁して燃料を噴射する、電磁式の噴射弁である。燃料噴射弁22には、その開弁時間に比例した燃料が噴射されるように、所定圧力に調圧された燃料が供給されている。
燃料噴射弁22から噴射された燃料は、吸気ポート18と吸気弁20との隙間を介して燃焼室16に吸気と共に導入され、点火プラグ24の火花点火によって着火燃焼し、その燃焼による圧力がピストン26をクランクシャフト(図示省略)に向けて押し下げることで、クランクシャフトを回転駆動させる。
また、燃焼室16から排気を導出する排気ポート28には、その開口を開閉する排気弁30が配設され、排気弁30が開弁することで、排気ポート28と排気弁30との隙間を介して、排気が排気管32へと排出される。排気管32には、触媒コンバータ34が配設されており、排気中の有害物質は、触媒コンバータ34によって無害成分に浄化された後、排気管32の終端開口から大気中に放出される。ここで、触媒コンバータ34としては、例えば、排気中のCO(一酸化炭素),HC(炭化水素)及びNOx(窒素酸化物)を同時に浄化する三元触媒を使用することができる。
吸気弁20を開閉駆動する吸気カムシャフト36の端部には、クランクシャフトに対する吸気カムシャフト36の回転位相を変化させることで、吸気弁20のバルブタイミングを変更するVTC38が取り付けられている。VTC38は、図2に示すように、クランクシャフトの回転駆動力を伝達するカムチェーン(図示省略)が巻き回されるカムスプロケット38Aと一体化され、減速機が内蔵された電動モータ38B(電動アクチュエータ)により、カムスプロケット38Aに対して吸気カムシャフト36を相対回転させることで、バルブタイミングを進角又は遅角させる。ここで、図2において符号38Cで示すものは、電動モータ38Bへ電力を供給するハーネスを接続するためのコネクタである。
なお、VTC38としては、図2に示す構成のものに限らず、油圧モータなどの各種アクチュエータによりバルブタイミングを変更可能であれば如何なる構成をなしていてもよい。また、VTC38は、吸気弁20に限らず、吸気弁20及び排気弁30の少なくとも一方に備え付けられていればよい。
燃料噴射弁22,点火プラグ24及びVTC38は、マイクロコンピュータを内蔵した電子制御装置40によって制御される。電子制御装置40は、各種センサからの信号を入力し、予め記憶された制御プログラムに従って、燃料噴射弁22,点火プラグ24及びVTC38の各操作量を決定して出力する。燃料噴射弁22による燃料噴射制御においては、例えば、各気筒の吸気行程に合わせて個別の燃料噴射を行う、いわゆる「シーケンシャル噴射制御」が行われる。なお、VTC38の制御は、電子制御装置40とは異なる別体の電子制御装置で行うようにしてもよい。
電子制御装置40には、吸気流量センサ14の出力信号に加え、エンジン10の冷却水温度(水温)Twを検出する水温センサ42、エンジン10の回転速度Neを検出する回転速度センサ44、クランクシャフトの回転角度(基準位置からの角度)θCRKを検出するクランク角度センサ46、吸気カムシャフト36の回転角度θCAMを検出するカム角度センサ48の各出力信号が入力されている。
VTC38の電動モータ38Bには、その出力軸が所定角度回転するたびにローレベル又はハイレベルに変化する矩形波を出力する回転角度センサ50が取り付けられており、その出力信号が電子制御装置40に入力されている。従って、回転角度センサ50は、減速機で減速される前の電動モータ38Bの出力軸の回転角度θVTCを検出し、電子制御装置40が減速比などを考慮して回転角度θVTCからバルブタイミングの変更角度を高精度に演算することができる。回転角度センサ50の出力信号は、図3に示すように、電子制御装置40の内部において第1の系統MAS1及び第2の系統MAS2に分割し、マイクロコンピュータに読み込まれる。なお、回転角度センサ50の出力信号は、電子制御装置40に導かれる前に途中で分割されて、電子制御装置40の異なる入力ポートに入力されていてもよい。
また、電子制御装置40には、スタータスイッチのON/OFF信号を入力可能なように、例えば、CAN(Controller Area Network)などの車載ネットワークを介して、エンジン10を電子制御するエンジン制御装置52と接続されている。なお、エンジン10の制御で使用する、吸気流量Q、水温Tw、回転速度Ne、クランクシャフトの回転角度θCRK及び吸気カムシャフト36の回転角度θCAMは、各センサから読み込む代わりに、エンジン制御装置52から読み込むようにしてもよい。
電子制御装置40は、VTC38の制御に加え、次のように、燃料噴射弁22及び点火プラグ24を制御する。即ち、電子制御装置40は、吸気流量センサ14及び回転速度センサ44から吸気流量Q及び回転速度Neを夫々読み込み、これらに基づいてエンジン運転状態に応じた基本燃料噴射量を演算する。また、電子制御装置40は、水温センサ42から水温Twを読み込み、基本燃料噴射量を水温Twなどで補正した燃料噴射量を演算する。そして、電子制御装置40は、エンジン運転状態に応じたタイミングで、燃料噴射量に応じた燃料を燃料噴射弁22から噴射し、点火プラグ24を適宜作動させて燃料と吸気との混合気を着火燃焼させる。このとき、電子制御装置40は、図示省略の空燃比センサから空燃比を読み込み、排気中の空燃比が理想空燃比に近づくように、燃料噴射弁22をフィードバック制御する。
図4は、電子制御装置40が起動されたことを契機として、電子制御装置40(具体的には、そのマイクロコンピュータ)が実行する制御対象の制御の一例として、VTC38の電動モータ38Bのデューティ比を演算するタイミングチャートを示している。本実施形態では、電動モータ38Bのデューティ比として、回転角度センサ50から出力された矩形波の1周期におけるローレベルの割合を演算しているが、1周期におけるハイレベルの割合を演算してもよい。また、本実施形態では、第1の系統MAS1の出力信号の処理が、第2の系統MAS2の出力信号の処理より先に実行されることを前提としている。なお、図面においては、表現を簡潔にするため、回転角度センサ50を「MAS(Motor Angle Sensor)」と表すものとする。
電子制御装置40は、矩形波を出力する回転角度センサ50の出力信号を第1の系統MAS1及び第2の系統MAS2に分割して読み込んで監視する。電子制御装置40は、矩形波がローレベルからハイレベルに立ち上がったことを契機とする割り込み処理によって、第1の系統MAS1において、例えば、タイマ機能により測定した前周期のローレベル時間をタイマレジスタ(MAS1レジスタ)に格納して更新すると共に、割り込み要求レジスタをセットする。割り込み要求レジスタをセットすると、これより優先度が低い割り込み処理が禁止されると共に、割り込みジョブが発生する。ここで、MAS1レジスタは、初期状態では0に初期化され、起動後の最初の周期では不定(x)となっている。従って、電子制御装置40は、起動後の2回目の周期以降において、その前周期のローレベル時間を測定して更新することができる。なお、ローレベル時間は、矩形波のローレベル時間を保持する変数にコピーして使用してもよい。
電子制御装置40は、矩形波がローレベルからハイレベルに立ち上がったことを契機とする割り込み処理によって、第2の系統MAS2において、例えば、タイマ機能により測定した前周期の周期をタイマレジスタ(MAS2レジスタ)に格納して更新する。また、電子制御装置40は、周期の更新後、割り込み要求レジスタのセットにより発生した割り込みジョブに応答して、前周期のローレベル時間と周期とに応じてデューティ比を演算する。その後、電子制御装置40は、割り込み要求レジスタをリセット(クリア)する。ここで、MAS2レジスタは、初期状態では0に初期化され、起動後の最初の周期では不定(x)となっている。従って、電子制御装置40は、起動後の2回目の周期以降において、その前周期の周期を測定して更新することができる。なお、周期は、矩形波の周期を保持する変数にコピーして使用してもよい。
このようなデューティ比の演算は、次のようにして実現することができる。
図5は、回転角度センサ50から出力された矩形波がローレベルからハイレベルに立ち上がったことを契機とした割り込み処理によって、電子制御装置40のマイクロコンピュータが実行する、第1の系統MAS1の出力信号を処理する第1系統処理の一例を示している。
ステップ1(図では「S1」と略記する。以下同様。)では、電子制御装置40のマイクロコンピュータが、タイマ機能によって計測した前周期のローレベル時間をMAS1レジスタに格納して更新する。ここで、電子制御装置40のマイクロコンピュータは、起動直後の場合、前周期のローレベル時間が計測されていないので、MAS1レジスタに0又は不定であることを示すデータを格納することができる。電子制御装置40のマイクロコンピュータは、MAS1レジスタのローレベル時間を更新すると、これを参照することで任意のタイミングでローレベル時間を取得することができる。
ステップ2では、電子制御装置40のマイクロコンピュータが、割り込み要求レジスタをセットする。その後、電子制御装置40のマイクロコンピュータは、第1系統処理を終了させる。
図6は、回転角度センサ50から出力された矩形波がローレベルからハイレベルに立ち上がったことを契機とした割り込み処理によって、電子制御装置40のマイクロコンピュータが実行する、第2の系統MAS2の出力信号を処理する第2系統処理の一例を示している。
ステップ11では、電子制御装置40のマイクロコンピュータが、タイマ機能によって計測した前周期の周期をMAS2レジスタに格納して更新する。ここで、電子制御装置40のマイクロコンピュータは、起動直後の場合、前周期の周期が計測されていないので、MAS2レジスタに0又は不定であることを示すデータを格納することができる。電子制御装置40のマイクロコンピュータは、MAS2レジスタの周期を更新すると、これを参照することで任意のタイミングで周期を取得することができる。
ステップ12では、電子制御装置40のマイクロコンピュータが、割り込みレジスタのセットにより発生した割り込みジョブに応答して、MAS1レジスタ及びMAS2レジスタを参照し、前周期のローレベル時間及び周期に応じて、回転角度センサ50の検出対象であるVTC38の電動モータ38Bのデューティ比を演算する。具体的には、電子制御装置40のマイクロコンピュータは、「(周期-ローレベル時間)/周期」という演算式にローレベル時間及び周期を代入して、電動モータ38Bのデューティ比を演算する。
ステップ13では、電子制御装置40のマイクロコンピュータが、電動モータ38Bのデューティ比の演算が終了したので、割り込み要求レジスタをリセットする。その後、電子制御装置40のマイクロコンピュータは、第2系統処理を終了させる。
このようにすれば、電子制御装置40において、回転角度センサ50の出力信号を処理する割り込み処理よりも優先度の高い割り込み処理が発生しても、電動モータ38Bのデューティ比の演算への影響を軽減することができる。
具体的な事例を想定してこれを説明すると、回転角度センサ50の出力信号を処理する割り込み処理が正常に実行される場合、図4に関して上述したように、VTC38の電動モータ38Bのデューティ比が正常に演算される。
次に、第1の事例として、クランク角度センサ46やカム角度センサ48の出力信号を処理する割り込み処理によって、図7に示すように、矩形波の立ち下がりから立ち上がりまで、回転角度センサ50の出力信号を処理する割り込み処理が禁止された場合を考察する。この場合、回転角度センサ50の出力信号を受けるレジスタが1つであることから、矩形波がハイレベルからローレベルに変化したことを検知することができない。そして、割り込み処理の禁止が解除されると、矩形波のローレベルからハイレベルへの変化が検知されるので、多少の遅れを伴って第1系統処理及び第2系統処理が実行され、矩形波のローレベル時間及び周期が更新される。その後、割り込みジョブに応答して、VTC38の電動モータ38Bのデューティ比が演算される。従って、ローレベル時間及び周期の更新並びにデューティ比の演算が多少の遅れをもって行われるものの、デューティ比の演算が問題なく行われるため、制御対象であるVTC38への影響を軽減することができる。
第2の事例として、クランク角度センサ46やカム角度センサ48の出力信号を処理する割り込み処理によって、図8に示すように、矩形波の立ち上がりから立ち下がりまで、回転角度センサ50の出力信号を処理する割り込み処理が禁止された場合を考察する。この場合、回転角度センサ50の出力信号を受けるレジスタが1つであることから、矩形波がローレベルからハイレベルに変化したことを検知することができない。そして、割り込み処理の禁止が解除されると、矩形波のハイレベルからローレベルへの変化が検知されるので、第1の事例より大きな遅れを伴って第1系統処理及び第2系統処理が実行され、矩形波のローレベル時間及び周期が更新される。その後、割り込みジョブに応答して、VTC38の電動モータ38Bのデューティ比が演算される。従って、第1の事例と同様に、ローレベル時間及び周期の更新並びにデューティ比の演算が遅れをもって行われるものの、デューティ比の演算が問題なく行われるため、制御対象であるVTC38への影響を軽減することができる。
第3の事例として、クランク角度センサ46やカム角度センサ48の出力信号を処理する割り込み処理によって、図9に示すように、矩形波の立ち下がりから次の立ち下がりまで、回転角度センサ50の出力信号を処理する割り込み処理が禁止された場合を考察する。この場合、回転角度センサ50の出力信号を受けるレジスタが1つであることから、矩形波がハイレベルからローレベルに変化したこと、矩形波がローレベルからハイレベルに変化したことを検知することができない。そして、割り込み処理の禁止が解除されると、矩形波のハイレベルからローレベルへの変化が検知されるので、第2の事例と同等な遅れを伴って第1系統処理及び第2系統処理が実行され、矩形波のローレベル時間及び周期が更新される。その後、割り込みジョブに応答して、VTC38の電動モータ38Bのデューティ比が演算される。従って、第2の事例と同様に、制御対象であるVTC38への影響を軽減することができる。
第4の事例として、クランク角度センサ46やカム角度センサ48の出力信号を処理する割り込み処理によって、図10に示すように、矩形波の立ち上がりから次の立ち上がりまで、回転角度センサ50の出力信号を処理する割り込み処理が禁止された場合を考察する。この場合、回転角度センサ50の出力信号を受けるレジスタが1つであることから、矩形波がローレベルからハイレベルに変化したこと、矩形波がハイレベルからローレベルに変化したことを検知することができない。このため、周期T2について、矩形波のローレベル時間及び周期の更新抜けが生じると共に、割り込みジョブが発生しないことからデューティ比の演算抜けが生じてしまう。しかし、割り込み処理の禁止が解除されると、矩形波のローレベルからハイレベルへの変化が検知されるので、多少の遅れを伴って第1系統処理及び第2系統処理が実行され、周期T3について矩形波のローレベル時間及び周期が更新される。その後、割り込みジョブに応答して、VTC38の電動モータ38Bのデューティ比が演算される。従って、デューティ比の演算抜けが生じた間には、それ以前に演算されたデューティ比がそのまま使用されるので、制御対象であるVTC38への影響を軽減することができる。
但し、設計段階において、回転角度センサ50から出力される矩形波の1周期以上に亘って割り込み処理が禁止されないようにマイクロコンピュータの能力などを選定するため、実際の動作ではこのような現象が生じることは極めて稀である。なお、これは、矩形波の立ち上がりから次の立ち上がりの直前まで、割り込み処理が禁止される場合についても同様である。
上記第1の事例~第4の事例から理解できるように、割り込み処理の禁止期間の許容限界が広くなり、エンジン10の低回転域から処理負荷が高い高回転域まで、制御対象たるVTC38への影響を軽減することができる。また、エンジン10の負荷状態などに応じて、負荷優先の1入力(第1の系統MAS1又は第2の系統MAS2の一方)、又は、精度優先の2入力(第1の系統MAS1及び第2の系統MAS2の両方)を切り替えることもできる。
上記実施形態においては、第1の系統MAS1の出力信号の処理が第2の系統MAS2の出力信号の処理より先に実行されることを前提としたが、何らかの原因によって、第2の系統MAS2の出力信号の処理が先になってしまうことが考えられる。これに対処するためには、割り込みジョブに応答するとき、割り込み要求レジスタを参照し、これがセットされていればデューティ比の演算及び割り込み要求レジスタのリセットを行うようにすればよい。
電子制御装置40のマイクロコンピュータは、次のような故障判定処理を併せて実行することで、回転角度センサ50から電子制御装置40への信号伝達経路、即ち、第1の系統MAS1及び第2の系統MAS2に断線や固着などの故障が発生しているか否かを判定することができる。なお、故障判定処理は、第1系統処理及び第2系統処理とは異なるタイミングで繰り返し発生する割り込み処理によって実行することができる。
図11~図14は、電子制御装置40が起動されたことを契機として、電子制御装置40のマイクロコンピュータが実行する故障判定処理の一例を示している。
ステップ21では、電子制御装置40のマイクロコンピュータが、割り込みジョブが発生しているか否かを判定する。そして、電子制御装置40のマイクロコンピュータは、割り込みジョブが発生していると判定すると、処理をステップ22へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、割り込みジョブが発生していないと判定すると、処理をステップ39へと進める(No)。
ステップ22では、電子制御装置40のマイクロコンピュータが、MAS1レジスタを参照し、ローレベル時間が更新されているか否かを判定する。ここで、電子制御装置40のマイクロコンピュータは、例えば、以前のローレベル時間を一時的に揮発性メモリに格納しておき、これとMAS1レジスタに格納されたローレベル時間とを比較することで、ローレベル時間が更新されているか否かを判定することができる。そして、電子制御装置40のマイクロコンピュータは、ローレベル時間が更新されていると判定すれば、処理をステップ24へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、ローレベル時間が更新されていないと判定すれば、処理をステップ23へと進める(No)。
ステップ23では、電子制御装置40のマイクロコンピュータが、割り込み要求レジスタがセットされているか否かを判定する。そして、電子制御装置40のマイクロコンピュータは、割り込み要求レジスタがセットされていると判定すれば、処理をステップ24へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、割り込み要求レジスタがセットされていないと判定すれば、処理をステップ35へと進める(No)。
ステップ24では、電子制御装置40のマイクロコンピュータが、MAS2レジスタを参照し、ここに格納されている周期が正常範囲内であるか否かを判定する。ここで、正常範囲としては、例えば、回転角度センサ50の出力信号が正常であれば、これから求められる周期の最大値と最小値とから画定される最大範囲とすることができる。そして、電子制御装置40のマイクロコンピュータは、周期が正常範囲内であると判定すれば、処理をステップ25へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、周期が正常範囲内でない、要するに、周期が正常範囲を逸脱していると判定すれば、処理をステップ31へと進める(No)。
ステップ25では、電子制御装置40のマイクロコンピュータが、MAS1レジスタを参照し、ここに格納されているローレベル時間が正常範囲内であるか否かを判定する。ここで、正常範囲としては、例えば、回転角度センサ50の出力信号が正常であれば、これから求められるローレベル時間の最大値と最小値とから画定される最大範囲とすることができる。そして、電子制御装置40のマイクロコンピュータは、ローレベル時間が正常範囲内であると判定すれば、処理をステップ26へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、ローレベル時間が正常範囲内でない、要するに、ローレベル時間が正常範囲を逸脱していると判定すれば、処理をステップ27へと進める(No)。
ステップ26では、電子制御装置40のマイクロコンピュータが、第1の系統MAS1及び第2の系統MAS2が正常であると判定し、故障判定処理を終了させる。
ステップ27では、電子制御装置40のマイクロコンピュータが、少なくとも第1の系統MAS1が故障していると判定し、回転角度センサ50の出力信号を第2の系統MAS2のみで受け取るように切り替える。第2の系統MAS2のみに切り替えた後には、電子制御装置40のマイクロコンピュータは、第2の系統MAS2において第1系統処理を併せて実行する。なお、第2の系統MAS2のみへの切り替えは、論理的に行うことができる。
ステップ28では、電子制御装置40のマイクロコンピュータが、第2の系統MAS2のみに切り替えた結果、ローレベル時間が正常範囲内であるか否かを判定する。そして、電子制御装置40のマイクロコンピュータは、ローレベル時間が正常範囲内であると判定すれば、処理をステップ29へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、ローレベル時間が正常範囲内でないと判定すれば、処理をステップ30へと進める(No)。
ステップ29では、電子制御装置40のマイクロコンピュータが、第1の系統MAS1に故障が発生していると判定する。この場合、電子制御装置40のマイクロコンピュータは、インストルメントパネルのMIL(Malfunction Indicator Lamp)を点灯させたり、不揮発性メモリに第1の系統MAS1の故障情報を格納したりすることができる(以下同様)。その後、電子制御装置40のマイクロコンピュータは、故障判定処理を終了させる。なお、第2の系統MAS2が正常であることから、VTC38の制御は支障なく継続することができる。
ステップ30では、電子制御装置40のマイクロコンピュータが、第1の系統MAS1及び第2の系統MAS2の両方に故障が発生していると判定する。この場合、電子制御装置40のマイクロコンピュータは、MILを点灯させたり、不揮発性メモリに第1の系統MAS1及び第2の系統MAS2の故障情報を格納したりすることができる(以下同様)。また、電子制御装置40のマイクロコンピュータは、第1の系統MAS1及び第2の系統MAS2に故障が発生してることから、VTC38の制御をフェイルセイフ制御に移行してもよい。その後、電子制御装置40のマイクロコンピュータは、故障判定処理を終了させる。なお、VTC38の制御がフェイルセイフ制御に移行した後、第1の系統MAS1及び第2の系統MAS2の故障が検知できなくなった場合、フェイルセイフ制御から復帰するようにしてもよい(以下同様)。
ステップ31では、電子制御装置40のマイクロコンピュータが、少なくとも第2の系統MAS2が故障していると判定し、回転角度センサ50の出力信号を第1の系統MAS1のみで受け取るように切り替える。第1の系統MAS1のみに切り替えた後には、電子制御装置40のマイクロコンピュータは、第1の系統MAS1において第2系統処理を併せて実行する。なお、第1の系統MAS1のみへの切り替えは、論理的に行うことができる。
ステップ32では、電子制御装置40のマイクロコンピュータが、MAS2レジスタを参照し、そこに格納されている周期が正常範囲内であるか否かを判定する。そして、電子制御装置40のマイクロコンピュータは、周期が正常範囲内であると判定すれば、処理をステップ33へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、周期が正常範囲内でないと判定すれば、処理をステップ34へと進める(No)。
ステップ33では、電子制御装置40のマイクロコンピュータが、第2の系統MAS2に故障が発生していると判定する。この場合、電子制御装置40のマイクロコンピュータは、MILを点灯させたり、不揮発性メモリに第2の系統MAS2の故障情報を格納したりすることができる(以下同様)。その後、電子制御装置40のマイクロコンピュータは、故障判定処理を終了させる。なお、第1の系統MAS1が正常であることから、VTC38の制御は支障なく継続することができる。
ステップ34では、電子制御装置40のマイクロコンピュータが、第1の系統MAS1及び第2の系統MAS2の両方に故障が発生していると判定する。また、電子制御装置40のマイクロコンピュータは、第1の系統MAS1及び第2の系統MAS2に故障が発生してることから、VTC38の制御をフェイルセイフ制御に移行してもよい。その後、電子制御装置40のマイクロコンピュータは、故障判定処理を終了させる。
ステップ35では、電子制御装置40のマイクロコンピュータが、第1の系統MAS1に断線や固着などの故障が発生していると判定する。
ステップ36では、電子制御装置40のマイクロコンピュータが、MAS1レジスタを参照し、そこに格納されているローレベル時間が正常範囲内であるか否かを判定する。そして、電子制御装置40のマイクロコンピュータは、ローレベル時間が正常範囲内であると判定すれば、処理をステップ37へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、ローレベル時間が正常範囲内でないと判定すれば、処理をステップ38へと進める(No)。
ステップ37では、電子制御装置40のマイクロコンピュータが、第1の系統MAS1に断線や固着などの故障が発生していると判定したため、回転角度センサ50の出力信号を第2の系統MAS2のみで受け取るように切り替える。第2の系統MAS2のみに切り替えた後には、電子制御装置40のマイクロコンピュータは、第2の系統MAS2において第1系統処理を併せて実行する。その後、電子制御装置40のマイクロコンピュータは、故障判定処理を終了させる。
ステップ38では、電子制御装置40のマイクロコンピュータが、第1の系統MAS1及び第2の系統MAS2の両方に故障が発生していると判定する。また、電子制御装置40のマイクロコンピュータは、第1の系統MAS1及び第2の系統MAS2に故障が発生してることから、VTC38の制御をフェイルセイフ制御に移行してもよい。その後、電子制御装置40のマイクロコンピュータは、故障判定処理を終了させる。
ステップ39では、電子制御装置40のマイクロコンピュータが、ステップ22と同様に、ローレベル時間が更新されているか否かを判定する。そして、電子制御装置40のマイクロコンピュータは、ローレベル時間が更新されていると判定すれば、処理をステップ41へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、ローレベル時間が更新されていないと判定すれば、処理をステップ42へと進める(No)。
ステップ40では、電子制御装置40のマイクロコンピュータが、割り込み要求レジスタがセットされているか否かを判定する。そして、電子制御装置40のマイクロコンピュータは、割り込み要求レジスタがセットされていると判定すれば、処理をステップ41へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、割り込み要求レジスタがセットされていないと判定すれば、処理をステップ45へと進める(No)。
ステップ41では、電子制御装置40のマイクロコンピュータが、第2の系統MAS2に断線や固着などの故障が発生していると判定する。
ステップ42では、電子制御装置40のマイクロコンピュータが、MAS1レジスタを参照し、そこに格納されているローレベル時間が正常範囲内であるか否かを判定する。そして、電子制御装置40のマイクロコンピュータは、ローレベル時間が正常範囲内であると判定すれば、処理をステップ43へと進める(Yes)。一方、電子制御装置40のマイクロコンピュータは、ローレベル時間が正常範囲内でないと判定すれば、処理をステップ44へと進める(No)。
ステップ43では、電子制御装置40のマイクロコンピュータが、第2の系統MAS2に故障が発生しているので、回転角度センサ50の出力信号を第1の系統MAS1のみで受け取るように切り替える。第1の系統MAS1のみに切り替えた後には、電子制御装置40のマイクロコンピュータは、第1の系統MAS1において第2系統処理を併せて実行する。なお、第1の系統MAS1のみへの切り替えは、論理的に行うことができる。その後、電子制御装置40のマイクロコンピュータは、故障判定処理を終了させる。
ステップ44では、電子制御装置40のマイクロコンピュータが、第1の系統MAS1及び第2の系統MAS2の両方に故障が発生していると判定する。また、電子制御装置40のマイクロコンピュータは、第1の系統MAS1及び第2の系統MAS2に故障が発生してることから、VTC38の制御をフェイルセイフ制御に移行してもよい。その後、電子制御装置40のマイクロコンピュータは、故障判定処理を終了させる。
ステップ46では、電子制御装置40のマイクロコンピュータが、第1の系統MAS1及び第2の系統MAS2の両方に断線や固着などの故障が発生していると判定する。また、電子制御装置40のマイクロコンピュータは、第1の系統MAS1及び第2の系統MAS2に故障が発生してることから、VTC38の制御をフェイルセイフ制御に移行してもよい。その後、電子制御装置40のマイクロコンピュータは、故障判定処理を終了させる。
かかる故障判定処理によれば、割り込みジョブが発生し、ローレベル時間が更新されるか割り込み要求レジスタがセットされ、周期が正常範囲内かつローレベル時間が正常範囲内であれば、第1の系統MAS1及び第2の系統MAS2の両方が正常であると判定する。
割り込みジョブが発生し、ローレベル時間が更新されるか割り込み要求レジスタがセットされ、周期が正常範囲内、かつ、ローレベル時間が正常範囲外であれば、第2の系統MAS2のみに切り替える。そして、第2の系統MAS2のみに切り替えた結果、ローレベル時間が正常範囲内にあれば、第1の系統MAS1が故障していると判定する。このとき、第2の系統MAS2のみに切り替えても、ローレベル時間が正常範囲外であれば、第1の系統MAS1及び第2の系統MAS2の両方が故障していると判定する。
割り込みジョブが発生し、ローレベル時間が更新されるか割り込み要求レジスタがセットされ、周期が正常範囲外であれば、第1の系統MAS1のみに切り替える。そして、第1の系統MAS1のみに切り替えた結果、周期が正常範囲内にあれば、第2の系統MAS2が故障していると判定する。このとき、第1の系統MAS1のみに切り替えても、周期が正常範囲外であれば、第1の系統MAS1及び第2の系統MAS2の両方が故障していると判定する。
割り込みジョブが発生し、ローレベル時間が更新されず、かつ、割り込み要求レジスタがリセットされていれば、第1の系統MAS1に断線や固着などの故障が発生していると判定する。そして、上記条件に加えて、ローレベル時間が正常範囲外であれば、第1の系統MAS1及び第2の系統MAS2の両方が故障していると判定する。
割り込みジョブが発生せず、周期が正常範囲内、かつ、ローレベル時間が更新されるか割り込み要求レジスタがセットされていれば、第2の系統MAS2に断線や固着などの故障が発生していると判定する。そして、上記条件に加えて、ローレベル時間が正常範囲外であれば、第1の系統MAS1及び第2の系統MAS2の両方が故障していると判定する。
割り込みジョブが発生せず、ローレベル時間が更新されず、かつ、割り込みレジスタがリセットされていれば、第1の系統MAS1及び第2の系統MAS2の両方に断線や固着などの故障が発生していると判定する。
要するに、電子制御装置40のマイクロコンピュータは、割り込みジョブの発生の有無、割り込み要求レジスタの状態、ローレベル時間の更新の有無、ローレベル時間が正常範囲内であるか否か、及び、周期が正常範囲内であるか否かに応じて、第1の系統MAS1及び第2の系統MAS2の故障を診断する。
そして、第1の系統MAS1及び第2の系統MAS2の一方に故障が発生していると判定された場合、それらの他方のみを使用してVTC38の制御を継続する。この場合、電子制御装置40のマイクロコンピュータに余裕がなければ、機能を限定してVTC38の制御を継続すればよい(以下同様)。また、第1の系統MAS1及び第2の系統MAS2の両方に故障が発生していると判定された場合、VTC38を正常に制御できないことから、その制御をフェイルセイフ制御へと移行する。従って、第1の系統MAS1及び第2の系統MAS2の両方に故障が発生しない限り、VTC38の制御に対する影響を軽減することができる。
なお、当業者であれば、様々な上記実施形態の技術的思想について、その一部を省略したり、その一部を適宜組み合わせたり、その一部を置換したりすることで、新たな実施形態を生み出せることを容易に理解できるであろう。