(57)【要約】【課題】エンジン制御システムの異常検出時の安全性を向上させる。【解決手段】ＥＣＵ２１は、スロットルモータ１１への電源供給を遮断する第一の遮断器２４と燃料噴射弁１５への電源供給を遮断する第二の遮断器２５を備え、異常検出時にＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３の両方から第一の遮断器２４や第二の遮断器２５へ駆動信号を出力して、スロットル開度の固定や燃料カット等のフェイルセーフ処理を実行する。更に、異常検出時にその異常の度合や内容に応じて、異常なセンサの出力（故障信号）の使用禁止、使用するセンサの切替、ブレーキ状態に応じたアクセル操作量の補正、スロットル開度の変化速度又は変化量の制限、スロットル開度の固定、燃料カット、リセット要求信号の出力等のフェイルセーフ処理を段階的に実行するようにして、安全上必要な最小限のフェイルセーフ処理を実行する。【選択図】図１
2008088885.tif 000002
【特許請求の範囲】
【請求項１】
アクセルペダルの操作量を検出する複数のアクセルセンサのうちの少なくとも１つの出力と、スロットルバルブの開度を検出する複数のスロットル開度センサのうちの少なくとも１つの出力とに基づいて、該スロットルバルブの開度を調整するスロットルモータを制御する内燃機関の制御装置であって、
前記スロットルモータへの電源供給を遮断することで前記スロットル開度を所定開度に戻す第一の遮断手段と、
燃料噴射弁の燃料噴射と点火装置の点火動作のうちの少なくとも一方を停止させる第二の遮断手段と、
前記スロットルモータを含む内燃機関駆動機器へ制御信号を出力すると共に前記第一及び第二の遮断手段へ駆動信号を出力する第一の集積回路と、
前記第一の集積回路と協動して前記第一及び第二の遮断手段へ駆動信号を出力する第二の集積回路と、
前記内燃機関駆動機器の制御に関連するセンサ系及びアクチェータ系の異常の有無を診断する入出力系異常診断手段と、
前記第一及び第二の集積回路の異常の有無を診断する制御系異常診断手段と、
前記入出力系異常診断手段又は前記制御系異常診断手段により異常有りと診断されたときに所定のフェイルセーフ処理を実行するフェイルセーフ制御手段とを備え、
前記フェイルセーフ制御手段は、前記入出力系異常診断手段と前記制御系異常診断手段のうちの少なくとも一方の異常診断結果に応じて前記第一及び第二の遮断手段への駆動信号の出力と前記第一及び第二の集積回路へのリセット要求信号の出力とを制御することを特徴とする内燃機関の制御装置。
【請求項２】
前記制御系異常検出手段は、
前記第一の集積回路に内蔵されて該第一の集積回路の制御系の異常の有無を自己診断する第一の自己診断手段と、
前記第一の集積回路に内蔵されて前記第二の集積回路の動作異常の有無を診断する第一の相互診断手段と、
前記第二の集積回路に内蔵されて該第二の集積回路の異常の有無を自己診断する第二の自己診断手段と、
前記第二の集積回路に内蔵されて前記第一の集積回路の動作異常の有無を診断する第二の相互診断手段と
を備えていることを特徴とする請求項１に記載の内燃機関の制御装置。
【請求項３】
前記第一及び第二の自己診断手段は、それぞれ自己の集積回路の異常の有無を診断する複数の診断手段を有し、それらの診断結果を他方の集積回路へ伝達し、
前記第一及び第二の相互診断手段は、それぞれ他方の集積回路から伝達された診断結果に基づいて他方の集積回路の動作異常の有無を診断することを特徴とする請求項２に記載の内燃機関の制御装置。
【請求項４】
前記第一の自己診断手段と前記第二の相互診断手段は、前記第一の集積回路の点火制御部、燃料制御部、空気制御部等の各制御部に対応したメモリの領域毎に診断範囲を分割して異常診断することを特徴とする請求項２又は３に記載の内燃機関の制御装置。
【請求項５】
前記第一の自己診断手段と前記第二の相互診断手段は、前記第一の集積回路の機能毎に及び／又は周辺機器毎に診断範囲を分割して異常診断することを特徴とする請求項２乃至４のいずれかに記載の内燃機関の制御装置。
【請求項６】
前記フェイルセーフ制御手段は、前記第一及び第二の集積回路の両方に内蔵され、前記第一及び第二の遮断手段の制御信号を他方の集積回路にも伝達して両方の集積回路から前記第一及び第二の遮断手段へ駆動信号を出力することを特徴とする請求項１乃至５のいずれかに記載の内燃機関の制御装置。
【請求項７】
前記第一の集積回路は、複数のアナログデジタル変換器（以下「Ａ／Ｄ変換器」と表記する）を備え、これらの複数のＡ／Ｄ変換器のうちのメインセンサ用のＡ／Ｄ変換器に前記複数のアクセルセンサのうちのメインアクセルセンサの出力と前記複数のスロットル開度センサのうちのメインスロットル開度センサの出力が入力されると共に、前記複数のＡ／Ｄ変換器のうちのサブセンサ用のＡ／Ｄ変換器に前記複数のアクセルセンサのうちのサブアクセルセンサの出力と前記複数のスロットル開度センサのうちのサブスロットル開度センサの出力が入力され、
前記入出力系異常診断手段は、前記メインセンサ用のＡ／Ｄ変換器の異常の有無を診断すると共に前記サブセンサ用のＡ／Ｄ変換器の異常の有無を診断することを特徴とする請求項１乃至６のいずれかに記載の内燃機関の制御装置。
【請求項８】
前記第二の集積回路は、内燃機関の回転速度、負荷、車速、前記アクセルペダルの操作量、前記スロットルバルブの開度等の車両運転状態を反映した信号のうちの少なくも１つに応じて前記遮断手段へ駆動信号を出力することを特徴とする請求項１乃至７のいずれかに記載の内燃機関の制御装置。
【請求項９】
前記第二の遮断手段は、前記燃料噴射弁への電源供給及び／又は燃料供給を遮断することで前記燃料噴射弁の燃料噴射を停止させることを特徴とする請求項１乃至８のいずれかに記載の内燃機関の制御装置。
【請求項１０】
前記第二の遮断手段は、前記点火装置への制御信号及び／又は電源供給を遮断することで前記点火装置の点火動作を停止させることを特徴とする請求項１乃至９のいずれかに記載の内燃機関の制御装置。
【請求項１１】
内燃機関の空燃比をリーンに制御するリーン制御を実行するシステムに適用されることを特徴とする請求項１乃至１０のいずれかに記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセルセンサの出力とスロットル開度センサの出力に基づいてスロットルモータを制御してスロットルバルブの開度を調整する内燃機関の制御装置に関する発明である。
【背景技術】
【０００２】
近年、車両に搭載される内燃機関においては、例えば、特許文献１（特開２００３−３４３３２６号公報）に記載されているように、スロットル開度（スロットルバルブの開度）を電子制御する電子スロットル制御システムを採用したものがある。この電子スロットル制御システムは、スロットルバルブの開度を調整するスロットルモータと、スロットル開度を検出するスロットル開度センサと、アクセル操作量（アクセルペダルの操作量）を検出するアクセルセンサとを備え、アクセルセンサで検出したアクセル操作量等に基づいて目標スロットル開度を算出し、スロットル開度センサで検出した実スロットル開度を目標スロットル開度に一致させるようにスロットルモータを制御するようにしている。
【０００３】
このような電子スロットル制御システムでは、上記特許文献１に記載されているように、異常時の安全性を確保しながら退避走行に必要な吸入空気量を確保するために、スロットルバルブを所定開度（いわゆるオープナ開度）に付勢するリターンスプリングと、スロットルモータへの電源供給を遮断する負荷リレーとを設け、異常検出時に負荷リレーによってスロットルモータへの電源供給を遮断してリターンスプリングによってスロットル開度を強制的に所定開度に戻すようにしたものがある。
【０００４】
更に、上記特許文献１では、内燃機関を制御する電子制御装置に、第一の集積回路素子と第二の集積回路素子を設け、第一の集積回路素子でスロットル開度、燃料噴射量、点火時期等を制御すると共に、第一の集積回路素子と第二の集積回路素子の両方から負荷リレーに駆動信号を出力可能な構成とし、第一の集積回路素子が異常状態になった場合でも、第二の集積回路素子から負荷リレーに駆動信号を出力してスロットル開度を所定開度に戻すことができるようにしている。
【特許文献１】特開２００３−３４３３２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１では、第一の集積回路素子が異常状態になった場合に、第二の集積回路素子から負荷リレーに駆動信号を出力してスロットル開度を所定開度に戻すことで所定の吸入空気量（退避走行可能な吸入空気量）を確保することができるが、この場合、第一の集積回路素子の異常により燃料噴射量や点火時期を正常に制御できない状態になると、それに対するフェイルセーフ処理を実行することができず、異常検出時の安全性を十分に確保することができないという問題がある。
【０００６】
しかも、上記特許文献１のように、異常検出時に一律にスロットル開度を所定開度に固定して所定の吸入空気量（退避走行可能な吸入空気量）を確保するだけのフェイルセーフ処理では、次のような問題が発生する可能性がある。
【０００７】
例えば、車両が高速（例えば１００ｋｍ／ｈ以上）で走行中に異常検出したときに、直ちにスロットル開度を所定開度に戻すと、車両が急減速して走行状態が不安定になる可能性がある。
【０００８】
また、車両が町から遠く離れた山奥や砂漠、寒冷地等を走行中に異常検出した場合に、スロットル開度を所定開度に固定して所定の吸入空気量（退避走行可能な吸入空気量）を確保しただけの走行性能では、峠や悪路等の難所を越えて町まで戻ることが困難になる可能性がある。
【０００９】
また、内燃機関の空燃比をリーンに制御するリーン制御や点火時期を遅角する点火遅角制御を実行するシステムでは、リーン制御を実行するリーン運転領域や点火遅角制御を実行する点火遅角運転領域で異常検出したときに、スロットル開度を所定開度に固定して吸入空気量を所定量に固定すると、安定した走行性能が得られなくなる可能性がある。
【００１０】
本発明は、これらの事情を考慮してなされたものであり、従って本発明の目的は、異常検出時の安全性を向上させることができる内燃機関の制御装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１に係る発明は、アクセルペダルの操作量を検出する複数のアクセルセンサのうちの少なくとも１つの出力と、スロットルバルブの開度を検出する複数のスロットル開度センサのうちの少なくとも１つの出力とに基づいて、該スロットルバルブの開度を調整するスロットルモータを制御する内燃機関の制御装置であって、スロットルモータへの電源供給を遮断することでスロットル開度を所定開度に戻す第一の遮断手段と、燃料噴射弁の燃料噴射と点火装置の点火動作のうちの少なくとも一方を停止させる第二の遮断手段と、スロットルモータを含む内燃機関駆動機器へ制御信号を出力すると共に第一及び第二の遮断手段へ駆動信号を出力する第一の集積回路と、第一の集積回路と協動して第一及び第二の遮断手段へ駆動信号を出力する第二の集積回路と、内燃機関駆動機器の制御に関連するセンサ系及びアクチェータ系の異常の有無を診断する入出力系異常診断手段と、第一及び第二の集積回路の異常の有無を診断する制御系異常診断手段と、入出力系異常診断手段又は制御系異常診断手段により異常有りと診断されたときに所定のフェイルセーフ処理を実行するフェイルセーフ制御手段とを備え、フェイルセーフ制御手段は、入出力系異常診断手段と制御系異常診断手段のうちの少なくとも一方の異常診断結果に応じて第一及び第二の遮断手段への駆動信号の出力と第一及び第二の集積回路へのリセット要求信号の出力とを制御する構成としたものである。
【００１２】
この構成では、第二の集積回路からも第一及び第二の遮断手段へ駆動信号を出力することができるため、第一の集積回路の異常により燃料噴射量や点火時期を正常に制御できない状態になっても、異常検出時に第二の集積回路から第二の遮断手段へ駆動信号を出力して、燃料噴射や点火動作を停止するフェイルセーフ処理を実行することができ、異常検出時の安全性を十分に確保することができる。
【００１３】
しかも、入出力系異常診断手段や制御系異常診断手段の異常診断結果に応じて、第一及び第二の遮断手段への駆動信号の出力と第一及び第二の集積回路へのリセット要求信号の出力とを制御することができるため、異常検出時にその異常の度合や内容に応じてスロットル開度の固定、燃料噴射の停止、点火動作の停止、リセット要求信号の出力等のフェイルセーフ処理を段階的に実行するようにして、安全上必要な最小限のフェイルセーフ処理を実行することができ、異常検出時に一律にスロットル開度を固定する従来技術の問題を解決することができる。
【００１４】
この場合、請求項２のように、制御系異常検出手段は、第一の集積回路に内蔵されて該第一の集積回路の制御系の異常の有無を自己診断する第一の自己診断手段と、第一の集積回路に内蔵されて第二の集積回路の動作異常の有無を診断する第一の相互診断手段と、第二の集積回路に内蔵されて該第二の集積回路の異常の有無を自己診断する第二の自己診断手段と、第二の集積回路に内蔵されて第一の集積回路の動作異常の有無を診断する第二の相互診断手段とを備えた構成にすると良い。このようにすれば、第一の集積回路と第二の集積回路に、それぞれ自己診断機能と相互診断機能を持たせることができる。
【００１５】
また、請求項３のように、第一及び第二の自己診断手段は、それぞれ自己の集積回路の異常の有無を診断する複数の診断手段を有し、それらの診断結果を他方の集積回路へ伝達し、第一及び第二の相互診断手段は、それぞれ他方の集積回路から伝達された診断結果に基づいて他方の集積回路の動作異常の有無を診断するようにしても良い。このようにすれば、第一及び第二の相互診断手段で、それぞれ他方の集積回路の動作異常の有無を確実に診断することができる。
【００１６】
更に、請求項４のように、第一の自己診断手段と第二の相互診断手段は、第一の集積回路の点火制御部、燃料制御部、空気制御部等の各制御部に対応したメモリの領域毎に診断範囲を分割して異常診断するようにしても良い。このようにすれば、第一の集積回路の点火制御部、燃料制御部、空気制御部等の各制御部毎に異常診断（自己診断や相互診断）を行うことができる。
【００１７】
また、請求項５のように、第一の自己診断手段と第二の相互診断手段は、第一の集積回路の機能毎に及び／又は周辺機器毎に診断範囲を分割して異常診断するようにしても良い。このようにすれば、第一の集積回路の機能毎や周辺機器毎に異常診断（自己診断や相互診断）を行うことができる。
【００１８】
また、請求項６のように、フェイルセーフ制御手段は、第一及び第二の集積回路の両方に内蔵され、第一及び第二の遮断手段の制御信号を他方の集積回路にも伝達して両方の集積回路から第一及び第二の遮断手段へ駆動信号を出力するようにしても良い。このようにすれば、システムの冗長性を向上させることができる。
【００１９】
また、請求項７のように、第一の集積回路は、複数のＡ／Ｄ変換器を備え、メインセンサ用のＡ／Ｄ変換器にメインアクセルセンサの出力とメインスロットル開度センサの出力が入力されると共に、サブセンサ用のＡ／Ｄ変換器にサブアクセルセンサの出力とサブスロットル開度センサの出力が入力され、入出力系異常診断手段は、メインセンサ用のＡ／Ｄ変換器の異常の有無を診断すると共にサブセンサ用のＡ／Ｄ変換器の異常の有無を診断するようにしても良い。このようにすれば、メインセンサ用のＡ／Ｄ変換器の異常の有無とサブセンサ用のＡ／Ｄ変換器の異常の有無を個別に診断することができる。
【００２０】
また、請求項８のように、第二の集積回路は、内燃機関の回転速度、負荷、車速、アクセルペダルの操作量、スロットルバルブの開度等の車両運転状態を反映した信号のうちの少なくとも１つに応じて遮断手段へ駆動信号を出力するようにしても良い。このようにすれば、異常検出時に車両の運転状態に応じて燃料噴射や点火動作を停止させることができる。
【００２１】
また、第二の遮断手段で燃料噴射弁の燃料噴射を停止させる場合には、請求項９のように、燃料噴射弁への電源供給及び／又は燃料供給を遮断することで燃料噴射弁の燃料噴射を停止させるようにすると良い。更に、第二の遮断手段で点火装置の点火動作を停止させる場合には、請求項１０のように、第二の遮断手段は、前記点火装置への制御信号及び／又は電源供給を遮断することで点火装置の点火動作を停止させるようにすると良い。
【００２２】
また、請求項１１のように、本発明は、内燃機関の空燃比をリーンに制御するリーン制御を実行するシステムに適用すると良い。リーン制御を実行するシステムでは、リーン制御を実行するリーン運転領域で異常検出したときに一律にスロットル開度を所定開度に固定して吸入空気量を所定量に固定すると、安定した走行性能が得られなくなる可能性があるが、本発明を適用すれば、異常検出時にその異常の度合や内容に応じてフェイルセーフ処理を段階的に実行するようにして、安全上必要な最小限のフェイルセーフ処理を実行することができ、安定した信頼性の高い走行性能を得ることができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明を実施するための最良の形態を具体化した一実施例を説明する。
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関であるエンジンの吸気管には、スロットルモータ１１によって開度調節されるスロットルバルブ１２と、このスロットルバルブ１２の開度（スロットル開度）を検出するメインスロットル開度センサ１３とサブスロットル開度センサ１４が設けられている。更に、スロットルバルブ１２には、該スロットルバルブ１２を所定のオープナ開度（退避走行に必要最少限の吸入空気量か又はそれよりも少し多い吸入空気量に相当するスロットル開度）に付勢するリターンスプリング（図示せず）が設けられている。
【００２４】
また、エンジンの各気筒の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁１５が取り付けられている。エンジンのシリンダヘッドには、各気筒毎に点火プラグ１６が取り付けられ、点火装置１７で発生した高電圧を点火プラグ１６に印加して火花放電を発生させることで筒内の混合気に着火される。
【００２５】
また、エンジンのシリンダブロックには、クランク軸が所定クランク角回転する毎にパルス信号を出力するクランク角センサ１８が取り付けられ、このクランク角センサ１８の出力信号に基づいてクランク角やエンジン回転速度が検出される。更に、アクセルペダルの近傍には、アクセルペダルの操作量（アクセル操作量）を検出するメインアクセルセンサ１９とサブアクセルセンサ２０が設けられている。
【００２６】
これら各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）２１に入力される。このＥＣＵ２１は、ＣＰＵ２２（第一の集積回路）やＩＣ２３（第二の集積回路）等を備えたマイクロコンピュータを主体として構成され、ＣＰＵ２２で各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じてスロットル開度や燃料噴射量や点火時期を制御する。
【００２７】
また、ＥＣＵ２１には、スロットルモータ１１への電源供給を遮断する第一の遮断器２４（第一の遮断手段）と、燃料噴射弁１５への電源供給を遮断する第二の遮断器２５（第二の遮断手段）が設けられている。第一の遮断器２４でスロットルモータ１１への電源供給を遮断することでリターンスプリングによってスロットル開度をオープナ開度に戻して固定するフェイルセーフ処理を実行することができ、第二の遮断器２５で燃料噴射弁１５への電源供給を遮断することで燃料噴射弁１５の燃料噴射を停止させて燃料カットするフェイルセーフ処理を実行することができるようになっている。尚、第二の遮断器２５で燃料噴射弁１５への燃料供給を遮断して燃料カットを実行するようにしたり、或は、第二の遮断器２５で燃料噴射弁１５への電源供給と燃料供給を両方とも遮断して燃料カットを実行するようにしても良い。
【００２８】
ＣＰＵ２２には、メインセンサ用のＡ／Ｄ変換器２６（アナログデジタル変換器）と、サブセンサ用のＡ／Ｄ変換器２７と、デジタル入力器２８が設けられている。メインセンサ用のＡ／Ｄ変換器２６に、メインアクセルセンサ１９の出力とメインスロットル開度センサ１３の出力が入力されると共に、サブセンサ用のＡ／Ｄ変換器２７に、サブアクセルセンサ２０の出力とサブスロットル開度センサ１４の出力が入力され、デジタル入力器２８に、クランク角センサ１８の出力（エンジン回転速度の情報）が入力される。
【００２９】
ＣＰＵ２２は、空気制御部２９で、メインアクセルセンサ１９やサブアクセルセンサ２０で検出したアクセル操作量等に基づいて目標スロットル開度を算出し、メインスロットル開度センサ１３やサブスロットル開度センサ１４で検出した実スロットル開度を目標スロットル開度に一致させるようにスロットルモータ１１へ制御信号を出力してスロットル開度を制御する。更に、燃料制御部３０で、エンジン運転状態（例えばエンジン回転速度や吸入空気量等）に応じて燃料噴射弁１５へ制御信号を出力して燃料噴射量を制御すると共に、点火制御部３１で、エンジン運転状態（例えばエンジン回転速度や吸入空気量等）に応じて点火装置１７へ制御信号を出力してを点火プラグ１６の点火時期を制御する。尚、所定のリーン運転領域では、空燃比をリーンに制御するリーン制御を実行し、所定の点火遅角運転領域では、点火時期を遅角する点火遅角制御を実行する。
【００３０】
また、ＣＰＵ２２には、センサ系の異常の有無を診断する入力系異常診断部３２と、アクチェータ系の異常の有無を診断する出力系異常診断部３３が内蔵されていると共に、ＣＰＵ２２の制御系の異常の有無を自己診断する第一の自己診断部３４（第一の自己診断手段）と、ＩＣ２３の動作異常の有無を診断する第一の相互診断部３５（第一の相互診断手段）が内蔵され、ＣＰＵ２２に自己診断機能と相互診断機能を持たせるようにしている。更に、ＣＰＵ２２には、診断部３２〜３５により異常有りと診断されたときに所定のフェイルセーフ処理を実行するフェイルセーフ制御部３６が内蔵され、このフェイルセーフ制御部３６で、診断部３２〜３５の異常診断結果に応じて第一の遮断出力部３７や第二の遮断出力部３８を制御して第一の遮断器２４や第二の遮断器２５への駆動信号の出力を制御すると共に、ＩＣ２３へのリセット要求信号の出力を制御する。
【００３１】
一方、ＩＣ２３は、シリアル／パラレルインターフェースを介してＣＰＵ２２と接続され、デジタル入力器４６に、クランク角センサ１８の出力（エンジン回転速度の情報）が入力される。このＩＣ２３には、入力系異常診断部３９と出力系異常診断部４０が内蔵されていると共に、ＩＣ２３の異常の有無を自己診断する第二の自己診断部４１（第二の自己診断手段）と、ＣＰＵ２２の動作異常の有無を診断する第二の相互診断部４２（第二の相互診断手段）が内蔵され、ＩＣ２３に自己診断機能と相互診断機能を持たせるようにしている。更に、ＩＣ２３には、診断部３９〜４２により異常有りと診断されたときに所定のフェイルセーフ処理を実行するフェイルセーフ制御部４３が内蔵され、このフェイルセーフ制御部４３で、診断部３９〜４２の異常診断結果に応じて第一の遮断出力部４４や第二の遮断出力部４５を制御して第一の遮断器２４や第二の遮断器２５への駆動信号の出力を制御すると共に、ＣＰＵ２２へのリセット要求信号の出力を制御する。
【００３２】
この場合、ＣＰＵ２２の入力系異常診断部３２と出力系異常診断部３３が入出力系異常診断手段としての役割を果たし、ＣＰＵ２２の第一の自己診断部３４と第一の相互診断部３５及びＩＣ２３の第二の自己診断部４１と第二の相互診断部４２が制御系異常検出手段としての役割を果たす。更に、ＣＰＵ２２のフェイルセーフ制御部３６及びＩＣ２３のフェイルセーフ制御部４３がフェイルセーフ制御手段としての役割を果たす。
【００３３】
また、ＣＰＵ２２のフェイルセーフ制御部３６は、第一の遮断器２４や第二の遮断器２５に駆動信号を出力するときに、第一の遮断出力部３７や第二の遮断出力部３８への制御信号（つまり第一の遮断器２４や第二の遮断器２５の制御信号）をＩＣ２３にも伝達して、ＣＰＵ２２とＩＣ２３の両方から第一の遮断器２４や第二の遮断器２５に駆動信号を出力する。更に、ＩＣ２３のフェイルセーフ制御部４３は、第一の遮断器２４や第二の遮断器２５に駆動信号を出力するときに、第一の遮断出力部４４や第二の遮断出力部４５への制御信号（つまり第一の遮断器２４や第二の遮断器２５の制御信号）をＣＰＵ２２にも伝達して、ＩＣ２３とＣＰＵ２２の両方から第一の遮断器２４や第二の遮断器２５に駆動信号を出力する。これにより、システムの冗長性を向上させるようになっている。
【００３４】
次に、ＥＣＵ２１（ＣＰＵ２２とＩＣ２３）で実行する異常診断について説明する。
ＣＰＵ２２の入力系異常診断部３２は、メインアクセルセンサ１９とサブアクセルセンサ２０について、それぞれ異常の有無を診断する。その結果、メインアクセルセンサ１９の異常有りと判定された場合には、メインアクセルセンサ異常フラグＸＭＡＰＳＮＧを「１」にセットし、サブアクセルセンサ２０の異常有りと判定された場合には、サブアクセルセンサ異常フラグＸＳＡＰＳＮＧを「１」にセットする。
【００３５】
また、ＣＰＵ２２の入力系異常診断部３２は、メインスロットル開度センサ１３とサブスロットル開度センサ１４について、それぞれ異常の有無を診断する。その結果、メインスロットル開度センサ１３の異常有りと判定された場合には、メインスロットル開度センサ異常フラグＸＭＴＰＳＮＧを「１」にセットし、サブスロットル開度センサ１４の異常有りと判定された場合には、サブスロットル開度センサ異常フラグＸＳＴＰＳＮＧを「１」にセットする。
【００３６】
更に、ＣＰＵ２２の入力系異常診断部３２は、メインセンサ用のＡ／Ｄ変換器２６とサブセンサ用のＡ／Ｄ変換器２７とデジタル入力器２８について、それぞれ異常の有無を個別に診断する。その結果、メインセンサ用のＡ／Ｄ変換器２６の異常有りと判定された場合には、メインＡ／Ｄ変換器異常フラグＸＭＡＤＮＧを「１」にセットし、サブセンサ用のＡ／Ｄ変換器２７の異常有りと判定された場合には、サブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧを「１」にセットする。
【００３７】
一方、ＣＰＵ２２の出力系異常診断部３３は、スロットルモータ１１と燃料噴射弁１５と点火装置１７について、それぞれ異常の有無を診断する。その結果、スロットルモータ１１の異常有りと判定された場合には、スロットルモータ異常フラグＸＳＥＲＶＯＮＧを「１」にセットする。燃料噴射弁１５の異常有りと判定された場合には、燃料噴射弁異常フラグＸＩＮＪＮＧを「１」にセットする。点火装置１７の異常有りと判定された場合には、点火装置異常フラグＸＩＧＮＮＧを「１」にセットする。
【００３８】
また、ＣＰＵ２２の第一の自己診断部３４とＩＣ２３の第二の相互診断部４２は、ＣＰＵ２２の空気制御部２９、燃料制御部３０、点火制御部３１、入力系異常診断部３２、出力系異常診断部３３等の各制御部や各異常診断部に対応したメモリの領域毎に診断範囲を分割して次のように異常診断する。尚、ＣＰＵ２２の機能毎や周辺機器毎に診断範囲を分割して異常診断するようにしても良い。
【００３９】
まず、ＩＣ２３の第二の相互診断部４２は、診断要求に対応したコードNO. をＣＰＵ２２の第一の自己診断部３４へ送信する。例えば、各コードNO. は、それぞれ次の診断要求を意味する。
【００４０】
コードNO.1：入力系異常診断部３２のＲＯＭチェック
コードNO.2：入力系異常診断部３２のＲＡＭチェック
コードNO.3：入力系異常診断部３２のインストラクションチェック
コードNO.4：空気制御部２９のＲＯＭチェック
コードNO.5：空気制御部２９のＲＡＭチェック
コードNO.6：空気制御部２９のインストラクションチェック
コードNO.7：燃料制御部３０のＲＯＭチェック
コードNO.8：燃料制御部３０のＲＡＭチェック
コードNO.9：燃料制御部３０のインストラクションチェック
コードNO.10 ：点火制御部３１のＲＯＭチェック
コードNO.11 ：点火制御部３１のＲＡＭチェック
コードNO.12 ：点火制御部３１のインストラクションチェック
コードNO.13 ：出力系異常診断部３３のＲＯＭチェック
コードNO.14 ：出力系異常診断部３３のＲＡＭチェック
コードNO.15 ：出力系異常診断部３３のインストラクションチェック
【００４１】
ＩＣ２３の第二の相互診断部４２は、これらのコードNO.1〜15に対応した全ての診断を所定周期内に終了するようにＣＰＵ２２の第一の自己診断部３４へコードNO.1〜15をランダムに送信する。
【００４２】
ＣＰＵ２２の第一の自己診断部３４は、ＩＣ２３の第二の相互診断部４２から送信されたコードNO. に対応する診断を順に実行し、空気制御部２９、燃料制御部３０、点火制御部３１、入力系異常診断部３２、出力系異常診断部３３について、それぞれＲＯＭチェックのチェック結果（例えばサム値）とＲＡＭチェックのチェック結果（例えばサム値）とインストラクションチェックのチェック結果（例えば演算結果値）をＩＣ２３の第二の相互診断部４２へ返信する。
【００４３】
更に、ＣＰＵ２２の第一の自己診断部３４は、空気制御部２９、燃料制御部３０、点火制御部３１、入力系異常診断部３２、出力系異常診断部３３について、それぞれＲＯＭチェックのチェック結果とＲＡＭチェックのチェック結果とインストラクションチェックのチェック結果を所定の判定値と比較して異常の有無を自己診断する。
【００４４】
また、ＩＣ２３の第二の相互診断部４２は、空気制御部２９、燃料制御部３０、点火制御部３１、入力系異常診断部３２、出力系異常診断部３３について、それぞれＣＰＵ２２の第一の自己診断部３４から返信されたＲＯＭチェックのチェック結果とＲＡＭチェックのチェック結果とインストラクションチェックのチェック結果を所定の判定値と比較して異常の有無を診断する。
【００４５】
その結果、ＣＰＵ２２の第一の自己診断部３４又はＩＣ２３の第二の相互診断部４２で、空気制御部２９のＲＯＭ又はＲＡＭの軽度の異常有りと判定された場合には、空気制御部軽度異常フラグＸＣＰＵＳＥＲＶＯＬＮＧを「１」にセットする。燃料制御部３０のＲＯＭ又はＲＡＭの軽度の異常有りと判定された場合には、燃料制御部軽度異常フラグＸＣＰＵＩＮＪＬＮＧを「１」にセットする。点火制御部３１のＲＯＭ又はＲＡＭの軽度の異常有りと判定された場合には、点火制御部軽度異常フラグＸＣＰＵＩＧＮＬＮＧを「１」にセットする。また、ＣＰＵ２２の制御系（空気制御部２９、燃料制御部３０、点火制御部３１等）の重度の異常有りと判定された場合には、制御系重度異常フラグＸＣＰＵＨＮＧを「１」にセットする。
【００４６】
一方、ＩＣ２３の第二の自己診断部４１とＣＰＵ２２の第一の相互診断部３５は、ＩＣ２３の入力系異常診断部３９、出力系異常診断部４０等を次のように異常診断する。
【００４７】
まず、ＩＣ２３の第二の自己診断部４１は、入力系異常診断部３９と出力系異常診断部４０のカウンタ値やハイ／ローステート（ハイ／ロー状態）等の情報をＣＰＵ２２の第一の相互診断部３５に送信すると共に、入力系異常診断部３９、出力系異常診断部４０について、それぞれカウンタ値の変化やハイ／ローステート等に基づいて異常の有無を診断する。
【００４８】
ＣＰＵ２２の第一の相互診断部３５は、入力系異常診断部３９、出力系異常診断部４０について、それぞれＩＣ２３の第二の自己診断部４１から送信されたカウンタ値の変化やハイ／ローステート等に基づいて異常の有無を診断する。
【００４９】
次に、図２を用いてＥＣＵ２１（ＣＰＵ２２とＩＣ２３）で異常検出時に実行するフェイルセーフ処理について説明する。
【００５０】
（ａ）メインアクセルセンサ１９の異常有りと判定された場合（メインアクセルセンサ異常フラグＸＭＡＰＳＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、第一及び第二の遮断器２４，２５への駆動信号の出力を禁止して、第一及び第二の遮断器２４，２５を両方とも作動させない（スロットル開度の固定と燃料カットを両方とも実施しない）。そして、メインアクセルセンサ１９の出力（故障信号）の使用を禁止して、アクセル操作量を検出するセンサをメインアクセルセンサ１９からサブアクセルセンサ２０に切り替え、ブレーキ踏込時（ブレーキスイッチのオン時）にはアクセル全閉扱い（アクセル操作量＝０）とする。
【００５１】
（ｂ）サブアクセルセンサ２０の異常有りと判定された場合（サブアクセルセンサ異常フラグＸＳＡＰＳＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、第一及び第二の遮断器２４，２５への駆動信号の出力を禁止して、第一及び第二の遮断器２４，２５を両方とも作動させない（スロットル開度の固定と燃料カットを両方とも実施しない）。そして、ブレーキ踏込時（ブレーキスイッチのオン時）にはアクセル全閉扱い（アクセル操作量＝０）とする。
【００５２】
（ｃ）メインスロットル開度センサ１３の異常有りと判定された場合（メインスロットル開度センサ異常フラグＸＭＴＰＳＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、第一及び第二の遮断器２４，２５への駆動信号の出力を禁止して、第一及び第二の遮断器２４，２５を両方とも作動させない（スロットル開度の固定と燃料カットを両方とも実施しない）。そして、メインスロットル開度センサ１３の出力（故障信号）の使用を禁止して、スロットル開度を検出するセンサをメインスロットル開度センサ１３からサブスロットル開度センサ１４に切り替え、目標スロットル開度の変化速度（又は変化量）を所定のガード値で制限して実スロットル開度の変化速度（又は変化量）を制限する。
【００５３】
（ｄ）サブスロットル開度センサ１４の異常有りと判定された場合（サブスロットル開度センサ異常フラグＸＳＴＰＳＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、第一及び第二の遮断器２４，２５への駆動信号の出力を禁止して、第一及び第二の遮断器２４，２５を両方とも作動させない（スロットル開度の固定と燃料カットを両方とも実施しない）。そして、目標スロットル開度の変化速度（又は変化量）を所定のガード値で制限して実スロットル開度の変化速度（又は変化量）を制限する。
【００５４】
（ｅ）メインセンサ用のＡ／Ｄ変換器２６の異常有りと判定された場合（メインＡ／Ｄ変換器異常フラグＸＭＡＤＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、第一及び第二の遮断器２４，２５への駆動信号の出力を禁止して、第一及び第二の遮断器２４，２５を両方とも作動させない（スロットル開度の固定と燃料カットを両方とも実施しない）。そして、メインアクセルセンサ１９の出力（故障信号）の使用を禁止して、アクセル操作量を検出するセンサをメインアクセルセンサ１９からサブアクセルセンサ２０に切り替え、ブレーキ踏込時（ブレーキスイッチのオン時）にはアクセル全閉扱い（アクセル操作量＝０）とする。更に、メインスロットル開度センサ１３の出力（故障信号）の使用を禁止して、スロットル開度を検出するセンサをメインスロットル開度センサ１３からサブスロットル開度センサ１４に切り替え、目標スロットル開度の変化速度（又は変化量）を所定のガード値で制限して実スロットル開度の変化速度（又は変化量）を制限する。
【００５５】
（ｆ）サブセンサ用のＡ／Ｄ変換器２７の異常有りと判定された場合（サブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、第一及び第二の遮断器２４，２５への駆動信号の出力を禁止して、第一及び第二の遮断器２４，２５を両方とも作動させない（スロットル開度の固定と燃料カットを両方とも実施しない）。そして、ブレーキ踏込時（ブレーキスイッチのオン時）にはアクセル全閉扱い（アクセル操作量＝０）とする。更に、目標スロットル開度の変化速度（又は変化量）を所定のガード値で制限して実スロットル開度の変化速度（又は変化量）を制限する。
【００５６】
（ｇ）スロットルモータ１１の異常有りと判定された場合（スロットルモータ異常フラグＸＳＥＲＶＯＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、第一の遮断器２４に駆動信号を出力して第一の遮断器２４を作動させることで、スロットルモータ１１への電源供給を遮断してスロットル開度をオープナ開度に固定する。尚、第二の遮断器２５への駆動信号の出力は禁止して第二の遮断器２５は作動させない（燃料カットは実施しない）。
【００５７】
（ｈ）燃料噴射弁１５の異常有りと判定された場合（燃料噴射弁異常フラグＸＩＮＪＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、異常状態（例えば異常度合や異常の発生した気筒数）によって決まる運転状態（例えばエンジン回転速度）に応じて第二の遮断器２５に駆動信号を出力して第二の遮断器２５を作動させることで、運転状態に応じて燃料噴射弁１５への電源供給や燃料供給を遮断して燃料カットを実施する。尚、第一の遮断器２４への駆動信号の出力は禁止して第一の遮断器２４は作動させない（スロットル開度の固定は実施しない）。
【００５８】
（ｉ）点火装置１７の異常有りと判定された場合（点火装置異常フラグＸＩＧＮＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、異常状態（例えば異常度合や異常の発生した気筒数）によって決まる運転状態（例えばエンジン回転速度）に応じて第二の遮断器２５に駆動信号を出力して第二の遮断器２５を作動させることで、運転状態に応じて燃料噴射弁１５への電源供給や燃料供給を遮断して燃料カットを実施する。尚、第一の遮断器２４への駆動信号の出力は禁止して第一の遮断器２４は作動させない（スロットル開度の固定は実施しない）。
【００５９】
（ｊ）空気制御部２９のＲＯＭ又はＲＡＭの軽度の異常有りと判定された場合（空気制御部軽度異常フラグＸＣＰＵＳＥＲＶＯＬＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、第一の遮断器２４に駆動信号を出力して第一の遮断器２４を作動させることで、スロットルモータ１１への電源供給を遮断してスロットル開度をオープナ開度に固定する。尚、第二の遮断器２５への駆動信号の出力は禁止して第二の遮断器２５は作動させない（燃料カットは実施しない）。
【００６０】
（ｋ）燃料制御部３０のＲＯＭ又はＲＡＭの軽度の異常有りと判定された場合（燃料制御部軽度異常フラグＸＣＰＵＩＮＪＬＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、運転状態（例えばエンジン回転速度）に応じて第二の遮断器２５に駆動信号を出力して第二の遮断器２５を作動させることで、運転状態に応じて燃料噴射弁１５への電源供給や燃料供給を遮断して燃料カットを実施する。尚、第一の遮断器２４への駆動信号の出力は禁止して第一の遮断器２４は作動させない（スロットル開度の固定は実施しない）。
【００６１】
（ｌ）点火制御部３１のＲＯＭ又はＲＡＭの軽度の異常有りと判定された場合（点火制御部軽度異常フラグＸＣＰＵＩＧＮＬＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、運転状態（例えばエンジン回転速度）に応じて第二の遮断器２５に駆動信号を出力して第二の遮断器２５を作動させることで、運転状態に応じて燃料噴射弁１５への電源供給や燃料供給を遮断して燃料カットを実施する。尚、第一の遮断器２４への駆動信号の出力は禁止して第一の遮断器２４は作動させない（スロットル開度の固定は実施しない）。
【００６２】
（ｍ）ＣＰＵ２２の制御系（空気制御部２９、燃料制御部３０、点火制御部３１等）の重度の異常有りと判定された場合（制御系重度異常フラグＸＣＰＵＨＮＧ＝１の場合）には、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３は、第一の遮断器２４に駆動信号を出力して第一の遮断器２４を作動させることで、スロットルモータ１１への電源供給を遮断してスロットル開度をオープナ開度に固定すると共に、第二の遮断器２５に駆動信号を出力して第二の遮断器２５を作動させることで、燃料噴射弁１５への電源供給や燃料供給を遮断して燃料カットを実施する。更に、ＣＰＵ２２からＩＣ２３へリセット要求信号を出力すると共に、ＩＣ２３からＣＰＵ２２へリセット要求信号を出力して、エンジンを停止させる。
【００６３】
このようにして、異常検出時にその異常の度合や内容に応じて、異常なセンサの出力（故障信号）の使用禁止、使用するセンサの切替、ブレーキ状態に応じたアクセル操作量の補正、実スロットル開度の変化速度（又は変化量）の制限、スロットル開度の固定、燃料カット、リセット要求信号の出力等のフェイルセーフ処理を段階的に実行するようにして、安全上必要な最小限のフェイルセーフ処理を実行する。
【００６４】
以上説明したフェイルセーフ処理は、ＥＣＵ２１によって図３乃至図１１の各プログラムに従って実行される。以下、これらの各プログラムの処理内容を説明する。
【００６５】
［フェイルセーフ処理プログラム］
図３に示すフェイルセーフ処理プログラムは、ＥＣＵ２１の電源オン中に所定周期で実行される。本プログラムが起動されると、まず、ステップ１０１で、後述する図４及び図５のアクセル関連処理プログラムを実行することで、メインアクセルセンサ１９、サブアクセルセンサ２０、メインセンサ用のＡ／Ｄ変換器２６、サブセンサ用のＡ／Ｄ変換器２７等のアクセル関連の異常検出時に、その異常の内容に応じたフェイルセーフ処理を実行する。
【００６６】
この後、ステップ１０２に進み、後述する図６及び図７のスロットル関連処理プログラムを実行することで、メインスロットル開度センサ１３、サブスロットル開度センサ１４、メインセンサ用のＡ／Ｄ変換器２６、サブセンサ用のＡ／Ｄ変換器２７等のスロットル関連の異常検出時に、その異常の内容に応じたフェイルセーフ処理を実行する。
【００６７】
この後、ステップ１０３に進み、後述する図８及び図９の遮断処理要求プログラムを実行することで、ＣＰＵ２２の制御系（空気制御部２９、燃料制御部３０、点火制御部３１等）、スロットルモータ１１、燃料噴射弁１５、点火装置１７等の異常検出時に、その異常の度合（重大度）に応じた遮断処理要求を設定した後、ステップ１０４に進み、後述する図１０及び図１１の遮断処理プログラムを実行することで、遮断処理要求に応じたフェイルセーフ処理を実行する。
【００６８】
［アクセル関連処理プログラム］
図４及び図５に示すアクセル関連処理プログラムは、前記図３のフェイルセーフ処理プログラムのステップ１０１で実行されるサブルーチンである。本プログラムが起動されると、まず、ステップ２０１で、メインアクセルセンサ異常フラグＸＭＡＰＳＮＧとメインＡ／Ｄ変換器異常フラグＸＭＡＤＮＧのうちの少なくとも一方が「１」にセットされているか否かを判定する。
【００６９】
このステップ２０１で、メインアクセルセンサ異常フラグＸＭＡＰＳＮＧとメインＡ／Ｄ変換器異常フラグＸＭＡＤＮＧが両方とも「０」であると判定された場合、つまり、メインアクセルセンサ１９とメインセンサ用のＡ／Ｄ変換器２６が両方とも正常であると判定された場合には、ステップ２０２に進み、メインアクセルセンサ使用禁止フラグＸＭＡＰＳＵＳを「０」にリセットする。
【００７０】
この後、ステップ２０３に進み、サブアクセルセンサ異常フラグＸＳＡＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧのうちの少なくとも一方が「１」にセットされているか否かを判定する。
【００７１】
このステップ２０３で、サブアクセルセンサ異常フラグＸＳＡＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧが両方とも「０」であると判定された場合、つまり、サブアクセルセンサ２０とサブセンサ用のＡ／Ｄ変換器２７が両方とも正常であると判定された場合には、ステップ２０６に進み、サブアクセルセンサ使用禁止フラグＸＳＡＰＳＵＳを「０」にリセットした後、ステップ２０９に進み、ブレーキ補正フラグＸＢＲを「０」にリセットする。
【００７２】
一方、上記ステップ２０３で、サブアクセルセンサ異常フラグＸＳＡＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧのうちの少なくとも一方が「１」にセットされていると判定された場合、つまり、サブアクセルセンサ２０とサブセンサ用のＡ／Ｄ変換器２７のうちの少なくとも一方が異常であると判定された場合には、ステップ２０７に進み、サブアクセルセンサ使用禁止フラグＸＳＡＰＳＵＳを「１」にセットした後、ステップ２１０に進み、ブレーキ補正フラグＸＢＲを「１」にセットする。
【００７３】
また、上記ステップ２０１で、メインアクセルセンサ異常フラグＸＭＡＰＳＮＧとメインＡ／Ｄ変換器異常フラグＸＭＡＤＮＧのうちの少なくとも一方が「１」にセットされていると判定された場合、つまり、メインアクセルセンサ１９とメインセンサ用のＡ／Ｄ変換器２６のうちの少なくとも一方が異常であると判定された場合には、ステップ２０４に進み、メインアクセルセンサ使用禁止フラグＸＭＡＰＳＵＳを「１」にセットする。
【００７４】
この後、ステップ２０５に進み、サブアクセルセンサ異常フラグＸＳＡＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧのうちの少なくとも一方が「１」にセットされているか否かを判定する。
【００７５】
このステップ２０５で、サブアクセルセンサ異常フラグＸＳＡＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧが両方とも「０」であると判定された場合、つまり、サブアクセルセンサ２０とサブセンサ用のＡ／Ｄ変換器２７が両方とも正常であると判定された場合には、ステップ２０８に進み、サブアクセルセンサ使用禁止フラグＸＳＡＰＳＵＳを「０」にリセットした後、ステップ２１０に進み、ブレーキ補正フラグＸＢＲを「１」にセットする。
【００７６】
一方、上記ステップ２０５で、サブアクセルセンサ異常フラグＸＳＡＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧのうちの少なくとも一方が「１」にセットされていると判定された場合、つまり、サブアクセルセンサ２０とサブセンサ用のＡ／Ｄ変換器２７のうちの少なくとも一方が異常であると判定された場合には、ステップ２０７に進み、サブアクセルセンサ使用禁止フラグＸＳＡＰＳＵＳを「１」にセットした後、ステップ２１０に進み、ブレーキ補正フラグＸＢＲを「１」にセットする。
【００７７】
この後、図５のステップ２１１に進み、メインアクセルセンサ使用禁止フラグＸＭＡＰＳＵＳが「０」であるか否かを判定し、メインアクセルセンサ使用禁止フラグＸＭＡＰＳＵＳが「０」であると判定された場合には、ステップ２１３に進み、メインアクセルセンサ１９の出力の使用を許可して、メインアクセルセンサ１９の検出値をアクセル操作量として採用する。
【００７８】
これに対して、上記ステップ２１１で、メインアクセルセンサ使用禁止フラグＸＭＡＰＳＵＳが「１」であると判定された場合には、ステップ２１２に進み、サブアクセルセンサ使用禁止フラグＸＳＡＰＳＵＳが「０」であるか否かを判定する。
【００７９】
このステップ２１２で、サブアクセルセンサ使用禁止フラグＸＳＡＰＳＵＳが「０」であると判定された場合には、ステップ２１４に進み、メインアクセルセンサ１９の出力（故障信号）の使用を禁止して、アクセル操作量を検出するセンサをメインアクセルセンサ１９からサブアクセルセンサ２０に切り替え、サブアクセルセンサ２０の検出値をアクセル操作量として採用する。
【００８０】
一方、上記ステップ２１１でメインアクセルセンサ使用禁止フラグＸＭＡＰＳＵＳが「１」であると判定され、且つ、上記ステップステップ２１２でサブアクセルセンサ使用禁止フラグＸＳＡＰＳＵＳが「１」であると判定された場合には、ステップ２１５に進み、メインアクセルセンサ１９とサブアクセルセンサ２０の両方の出力（故障信号）の使用を禁止して、アクセル操作量を固定値にセットする。
【００８１】
この後、ステップ２１６に進み、ブレーキ補正フラグＸＢＲが「１」であるか否かを判定し、ブレーキ補正フラグＸＢＲが「０」であると判定されれば、そのまま本プログラムを終了する。
【００８２】
一方、上記ステップ２１６で、ブレーキ補正フラグＸＢＲが「１」であると判定された場合には、ステップ２１７に進み、ブレーキが踏み込まれたか否かをブレーキスイッチがオンされたか否かによって判定する。
【００８３】
このステップ２１７で、ブレーキが踏み込まれたと判定された場合には、ステップ２１８に進み、アクセル操作量をアクセル全閉値（例えば０）にセットし、上記ステップ２１７で、ブレーキが踏み込まれていないと判定された場合には、ステップ２１９に進み、ブレーキの戻し量のなまし値を今回のアクセル操作量として採用する。
【００８４】
［スロットル関連処理プログラム］
図６及び図７に示すスロットル関連処理プログラムは、前記図３のフェイルセーフ処理プログラムのステップ１０２で実行されるサブルーチンである。本プログラムが起動されると、まず、ステップ３０１で、メインスロットル開度センサ異常フラグＸＭＴＰＳＮＧとメインＡ／Ｄ変換器異常フラグＸＭＡＤＮＧのうちの少なくとも一方が「１」にセットされているか否かを判定する。
【００８５】
このステップ３０１で、メインスロットル開度センサ異常フラグＸＭＴＰＳＮＧとメインＡ／Ｄ変換器異常フラグＸＭＡＤＮＧが両方とも「０」であると判定された場合、つまり、メインスロットル開度センサ１３とメインセンサ用のＡ／Ｄ変換器２６が両方とも正常であると判定された場合には、ステップ３０２に進み、メインスロットル開度センサ使用禁止フラグＸＭＴＰＳＵＳを「０」にリセットする。
【００８６】
この後、ステップ３０３に進み、サブスロットル開度センサ異常フラグＸＳＴＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧのうちの少なくとも一方が「１」にセットされているか否かを判定する。
【００８７】
このステップ３０３で、サブスロットル開度センサ異常フラグＸＳＴＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧが両方とも「０」であると判定された場合、つまり、サブスロットル開度センサ１４とサブセンサ用のＡ／Ｄ変換器２７が両方とも正常であると判定された場合には、ステップ３０６に進み、サブスロットル開度センサ使用禁止フラグＸＳＴＰＳＵＳを「０」にリセットした後、ステップ３０９に進み、実スロットル開度の変化速度や変化量には制限を設けない。
【００８８】
一方、上記ステップ３０３で、サブスロットル開度センサ異常フラグＸＳＴＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧのうちの少なくとも一方が「１」にセットされていると判定された場合、つまり、サブスロットル開度センサ１４とサブセンサ用のＡ／Ｄ変換器２７のうちの少なくとも一方が異常であると判定された場合には、ステップ３０７に進み、サブスロットル開度センサ使用禁止フラグＸＳＴＰＳＵＳを「１」にセットした後、ステップ３１０に進み、目標スロットル開度の変化速度（又は変化量）を所定のガード値で制限して実スロットル開度の変化速度（又は変化量）を制限する。
【００８９】
また、上記ステップ３０１で、メインスロットル開度センサ異常フラグＸＭＴＰＳＮＧとメインＡ／Ｄ変換器異常フラグＸＭＡＤＮＧのうちの少なくとも一方が「１」にセットされていると判定された場合、つまり、メインスロットル開度センサ１３とメインセンサ用のＡ／Ｄ変換器２６のうちの少なくとも一方が異常であると判定された場合には、ステップ３０４に進み、メインスロットル開度センサ使用禁止フラグＸＭＴＰＳＵＳを「１」にセットする。
【００９０】
この後、ステップ３０５に進み、サブスロットル開度センサ異常フラグＸＳＴＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧのうちの少なくとも一方が「１」にセットされているか否かを判定する。
【００９１】
このステップ３０５で、サブスロットル開度センサ異常フラグＸＳＴＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧが両方とも「０」であると判定された場合、つまり、サブスロットル開度センサ１４とサブセンサ用のＡ／Ｄ変換器２７が両方とも正常であると判定された場合には、ステップ３０８に進み、サブスロットル開度センサ使用禁止フラグＸＳＴＰＳＵＳを「０」にリセットした後、ステップ３１０に進み、目標スロットル開度の変化速度（又は変化量）を所定のガード値で制限して実スロットル開度の変化速度（又は変化量）を制限する。
【００９２】
一方、上記ステップ３０５で、サブスロットル開度センサ異常フラグＸＳＴＰＳＮＧとサブＡ／Ｄ変換器異常フラグＸＳＡＤＮＧのうちの少なくとも一方が「１」にセットされていると判定された場合、つまり、サブスロットル開度センサ１４とサブセンサ用のＡ／Ｄ変換器２７のうちの少なくとも一方が異常であると判定された場合には、ステップ３０７に進み、サブスロットル開度センサ使用禁止フラグＸＳＴＰＳＵＳを「１」にセットした後、ステップ３１０に進み、目標スロットル開度の変化速度（又は変化量）を所定のガード値で制限して実スロットル開度の変化速度（又は変化量）を制限する。
【００９３】
この後、図７のステップ３１１に進み、メインスロットル開度センサ使用禁止フラグＸＭＴＰＳＵＳが「０」であるか否かを判定し、メインスロットル開度センサ使用禁止フラグＸＭＴＰＳＵＳが「０」であると判定された場合には、ステップ３１３に進み、メインスロットル開度センサ１３の使用を許可して、メインスロットル開度センサ１３の検出値を実スロットル開度として採用した後、ステップ３１６に進み、両スロットル系異常フラグＸＴＰＳＢＮＧを「０」にリセットする。
【００９４】
これに対して、上記ステップ３１１で、メインスロットル開度センサ使用禁止フラグＸＭＴＰＳＵＳが「１」であると判定された場合には、ステップ３１２に進み、サブスロットル開度センサ使用禁止フラグＸＳＴＰＳＵＳが「０」であるか否かを判定する。
【００９５】
このステップ３１２で、サブスロットル開度センサ使用禁止フラグＸＳＴＰＳＵＳが「０」であると判定された場合には、ステップ３１４に進み、メインスロットル開度センサ１３の出力（故障信号）の使用を禁止して、スロットル開度を検出するセンサをメインスロットル開度センサ１３からサブスロットル開度センサ１４に切り替え、サブスロットル開度センサ１４の検出値を実スロットル開度として採用した後、ステップ３１６に進み、両スロットル系異常フラグＸＴＰＳＢＮＧを「０」にリセットする。
【００９６】
一方、上記ステップ３１１でメインスロットル開度センサ使用禁止フラグＸＭＴＰＳＵＳが「１」であると判定され、且つ、上記ステップ３１２でサブスロットル開度センサ使用禁止フラグＸＳＴＰＳＵＳが「１」であると判定された場合には、ステップ３１５に進み、メインスロットル開度センサ１３とサブスロットル開度センサ１４の両方の出力（故障信号）の使用を禁止して、実スロットル開度を固定値（例えばオープナ開度）にセットした後、ステップ３１７に進み、両スロットル系異常フラグＸＴＰＳＢＮＧを「１」にセットする。
【００９７】
［遮断処理要求プログラム］
図８及び図９に示す遮断処理要求プログラムは、前記図３のフェイルセーフ処理プログラムのステップ１０３で実行されるサブルーチンである。本プログラムが起動されると、まず、ステップ４０１で、制御系重度異常フラグＸＣＰＵＨＮＧが「１」にセットされているか否かを判定し、制御系重度異常フラグＸＣＰＵＨＮＧが「１」にセットされている判定された場合、つまり、ＣＰＵ２２の制御系（空気制御部２９、燃料制御部３０、点火制御部３１等）の重度の異常有りと判定された場合には、ステップ４０５に進み、異常レベルＮＧＬＥＶＥＬを「４」にセットする。
【００９８】
また、ステップ４０２で、燃料制御部軽度異常フラグＸＣＰＵＩＮＪＬＮＧと点火制御部軽度異常フラグＸＣＰＵＩＧＮＬＮＧのうちの少なくとも一方が「１」にセットされていると判定された場合、つまり、ＣＰＵ２２の燃料制御部３０の軽度の異常有りと判定された場合や、ＣＰＵ２２の点火制御部３１の軽度の異常有りと判定された場合には、ステップ４０６に進み、異常レベルＮＧＬＥＶＥＬを「３」にセットする。
【００９９】
また、ステップ４０３で、燃料噴射弁異常フラグＸＩＮＪＮＧと点火装置異常フラグＸＩＧＮＮＧのうちの少なくとも一方が「１」にセットされていると判定された場合、つまり、燃料噴射弁１５の異常有りと判定された場合や、点火装置１７の異常有りと判定された場合には、ステップ４０７に進み、異常レベルＮＧＬＥＶＥＬを「２」にセットする。      
【０１００】
また、ステップ４０４で、スロットルモータ異常フラグＸＳＥＲＶＯＮＧと空気制御部軽度異常フラグＸＣＰＵＳＥＲＶＯＬＮＧと両スロットル系異常フラグＸＴＰＳＢＮＧのうちの少なくとも１つが「１」にセットされていると判定された場合、つまり、スロットルモータ１１の異常有りと判定された場合や、ＣＰＵ２２の空気制御部２９の軽度の異常有りと判定された場合や、メインスロットル開度センサ１３とメインセンサ用のＡ／Ｄ変換器２６のうちの少なくとも一方が異常であると判定され且つサブスロットル開度センサ１４とサブセンサ用のＡ／Ｄ変換器２７のうちの少なくとも一方が異常であると判定された場合には、ステップ４０８に進み、異常レベルＮＧＬＥＶＥＬを「１」にセットする。      
【０１０１】
また、上記ステップ４０４で、スロットルモータ異常フラグＸＳＥＲＶＯＮＧと空気制御部軽度異常フラグＸＣＰＵＳＥＲＶＯＬＮＧと両スロットル系異常フラグＸＴＰＳＢＮＧが全て「０」であると判定された場合には、ステップ４０９に進み、異常レベルＮＧＬＥＶＥＬを「０」にセットする。
【０１０２】
この後、図９のステップ４１０に進み、異常レベルＮＧＬＥＶＥＬが「４」以上であるか否かを判定し、異常レベルＮＧＬＥＶＥＬが「４」以上であると判定された場合には、ステップ４１４に進み、第一の遮断器作動フラグＸＯＵＴ１と第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌを全て「１」にセットする。
【０１０３】
また、ステップ４１１で、異常レベルＮＧＬＥＶＥＬが「３」であると判定された場合には、ステップ４１５に進み、第一の遮断器作動フラグＸＯＵＴ１を「０」にリセットし、第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌを両方とも「１」にセットする。
【０１０４】
また、ステップ４１２で、異常レベルＮＧＬＥＶＥＬが「２」であると判定された場合には、ステップ４１６に進み、第一の遮断器作動フラグＸＯＵＴ１と第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈを両方とも「０」にリセットし、第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌを「１」にセットする。
【０１０５】
また、ステップ４１３で、異常レベルＮＧＬＥＶＥＬが「１」であると判定された場合には、ステップ４１７に進み、第一の遮断器作動フラグＸＯＵＴ１を「１」にセットし、第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌを両方とも「０」にリセットする。
【０１０６】
また、上記ステップ４１３で、異常レベルＮＧＬＥＶＥＬが「０」であると判定された場合には、ステップ４１８に進み、第一の遮断器作動フラグＸＯＵＴ１と第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌを全て「０」にリセットする。
【０１０７】
［遮断処理プログラム］
図１０及び図１１に示す遮断処理プログラムは、前記図３のフェイルセーフ処理プログラムのステップ１０４で実行されるサブルーチンである。本プログラムが起動されると、まず、ステップ５０１で、第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌのうちの少なくとも一方が「１」にセットされているか否かを判定する。
【０１０８】
このステップ５０１で、第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌが両方とも「０」であると判定された場合には、ステップ５０５に進み、燃料噴射の許可をＩＣ２３に要求した後、ステップ５０６に進み、ＣＰＵ２２で燃料噴射を許可する。この場合、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３が両方とも、第二の遮断器２５への駆動信号の出力を禁止して、第二の遮断器２５を作動させない（燃料カットを実施しない）。
【０１０９】
これに対して、上記ステップ５０１で、第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌのうちの少なくとも一方が「１」にセットされていると判定された場合には、ステップ５０２に進み、エンジン回転速度が低回転側所定値Ｌ（例えば２０００ｒｐｍ）よりも低いか否かを判定し、エンジン回転速度が低回転側所定値Ｌよりも低いと判定された場合には、ステップ５０５に進み、燃料噴射の許可をＩＣ２３に要求した後、ステップ５０６に進み、ＣＰＵ２２で燃料噴射を許可する。この場合、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３が両方とも、第二の遮断器２５への駆動信号の出力を禁止して、第二の遮断器２５を作動させない（燃料カットを実施しない）。
【０１１０】
一方、上記ステップ５０２で、エンジン回転速度が低回転側所定値Ｌ以上であると判定された場合には、ステップ５０３に進み、第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈが「０」であるか否かを判定し、第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈが「０」であると判定された場合、つまり、第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌが「１」にセットされている場合には、ステップ５０７に進み、燃料噴射の禁止をＩＣ２３に要求した後、ステップ５０８に進み、ＣＰＵ２２で燃料噴射を禁止する。この場合（つまり第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌ＝１でエンジン回転速度が低回転側所定値Ｌ以上の場合）、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３が両方とも、第二の遮断器２５へ駆動信号を出力して第二の遮断器２５を作動させることで、燃料噴射弁１５への電源供給や燃料供給を遮断して燃料カットを実施する。
【０１１１】
また、上記ステップ５０３で、第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈが「１」にセットされている判定された場合には、ステップ５０４に進み、エンジン回転速度が高回転側所定値Ｈ（例えば５０００ｒｐｍ）よりも低いか否かを判定し、エンジン回転速度が高回転側所定値Ｈよりも低いと判定された場合には、ステップ５０５に進み、燃料噴射の許可をＩＣ２３に要求した後、ステップ５０６に進み、ＣＰＵ２２で燃料噴射を許可する。この場合、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３が両方とも、第二の遮断器２５への駆動信号の出力を禁止して、第二の遮断器２５を作動させない（燃料カットを実施しない）。
【０１１２】
一方、上記ステップ５０４で、エンジン回転速度が高回転側所定値Ｈ以上であると判定された場合には、ステップ５０７に進み、燃料噴射の禁止をＩＣ２３に要求した後、ステップ５０８に進み、ＣＰＵ２２で燃料噴射を禁止する。この場合（つまり第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈ＝１でエンジン回転速度が高回転側所定値Ｈ以上の場合）、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３が両方とも、第二の遮断器２５へ駆動信号を出力して第二の遮断器２５を作動させることで、燃料噴射弁１５への電源供給や燃料供給を遮断して燃料カットを実施する。
【０１１３】
この後、図１１のステップ５０９に進み、第一の遮断器作動フラグＸＯＵＴ１と第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌが全て「１」にセットされているか否かを判定する。
【０１１４】
このステップ５０９で、第一の遮断器作動フラグＸＯＵＴ１と第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌが全て「１」にセットされていると判定された場合（つまり異常レベルＮＧＬＥＶＥＬが「４」の場合）には、ステップ５１０に進み、ＣＰＵ２２からＩＣ２３へリセット要求信号を出力すると共に、ＩＣ２３からＣＰＵ２２へリセット要求信号を出力して、エンジンを停止させる。
【０１１５】
一方、上記ステップ５０９で、第一の遮断器作動フラグＸＯＵＴ１と第二の遮断器高回転側作動フラグＸＯＵＴ２Ｈと第二の遮断器低回転側作動フラグＸＯＵＴ２Ｌのうちの少なくとも１つが「０」であると判定された場合には、ステップ５１１に進み、第一の遮断器作動フラグＸＯＵＴ１が「１」にセットされているか否かを判定する。
【０１１６】
このステップ５１１で、第一の遮断器作動フラグＸＯＵＴ１が「０」であると判定された場合には、ステップ５１２に進み、ＣＰＵ２２でスロットル開度制御を許可した後、ステップ５１３に進み、スロットル開度制御の許可をＩＣ２３に要求する。この場合、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３が両方とも、第一の遮断器２４への駆動信号の出力を禁止して、第一の遮断器２４を作動させない（スロットル開度の固定を実施しない）。
【０１１７】
一方、上記ステップ５１１で、第一の遮断器作動フラグＸＯＵＴ１が「１」にセットされていると判定された場合には、ステップ５１４に進み、ＣＰＵ２２でスロットル開度制御を禁止した後、ステップ５１５に進み、スロットル開度制御の禁止をＩＣ２３に要求する。この場合、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３が両方とも、第一の遮断器２４へ駆動信号を出力して第一の遮断器２４を作動させることで、スロットルモータ１１への電源供給を遮断してスロットル開度をオープナ開度に固定する。
【０１１８】
以上説明した本実施例では、ＣＰＵ２２から第一及び第二の遮断器２４，２５へ駆動信号を出力可能にすると共に、ＩＣ２３からも第一及び第二の遮断器２４，２５へ駆動信号を出力可能な構成にしたので、ＣＰＵ２２の異常により燃料噴射量や点火時期を正常に制御できない状態になっても、異常検出時にＩＣ２３から第二の遮断器２５へ駆動信号を出力して、燃料カットを実施するフェイルセーフ処理を実行することができ、異常検出時の安全性を十分に確保することができる。
【０１１９】
しかも、異常検出時にその異常の度合や内容に応じて、異常なセンサの出力（故障信号）の使用禁止、使用するセンサの切替、ブレーキ状態に応じたアクセル操作量の補正、実スロットル開度の変化速度（又は変化量）の制限、スロットル開度の固定、燃料カット、リセット要求信号の出力等のフェイルセーフ処理を段階的に実行するようにして、安全上必要な最小限のフェイルセーフ処理を実行するようにしたので、異常検出時に一律にスロットル開度を固定する従来技術の問題を解決することができる。
【０１２０】
また、本実施例では、ＣＰＵ２２のフェイルセーフ制御部３６とＩＣ２３のフェイルセーフ制御部４３が、互いに第一の遮断器２４や第二の遮断器２５の制御信号を伝達してＣＰＵ２２とＩＣ２３の両方から第一の遮断器２４や第二の遮断器２５に駆動信号を出力するようにしたので、システムの冗長性を向上させることができるという利点もある。
【０１２１】
また、エンジンの空燃比をリーンに制御するリーン制御や点火時期を遅角する点火遅角制御を実行するシステムでは、リーン制御を実行するリーン運転領域や点火遅角制御を実行する点火遅角運転領域で異常検出したときに、一律にスロットル開度を所定開度に固定して吸入空気量を所定量に固定すると、安定した走行性能が得られなくなる可能性があるが、本実施例では、異常検出時にその異常の度合や内容に応じてフェイルセーフ処理を段階的に実行するようにして、安全上必要な最小限のフェイルセーフ処理を実行するようにしたので、安定した走行性能を得ることが可能となる。
【０１２２】
尚、上記実施例では、第二の遮断器２５で燃料噴射弁１５への燃料供給や電源供給を遮断して燃料カットを実行する構成としたが、第二の遮断器２５で点火装置１７への制御信号や電源供給を遮断して点火装置１７の点火動作を停止させる構成としても良い。或は、第二の遮断器２５で燃料噴射弁１５への燃料供給や電源供給を遮断して燃料カットを実行すると共に、点火装置１７への制御信号や電源供給を遮断して点火装置１７の点火動作を停止させる構成としても良い。
【０１２３】
また、上記実施例では、燃料噴射弁１５や点火装置１７の異常有りと判定された場合や、燃料制御部３０や点火制御部３１のＲＯＭ又はＲＡＭの軽度の異常有りと判定された場合に、エンジン回転速度に応じて第二の遮断器２５に駆動信号を出力して燃料カットを実行するようにしたが、これに限定されず、エンジン回転速度、エンジン負荷、車速、アクセル操作量、スロットル開度等の車両運転状態を反映した信号のうちの少なくも１つに応じて第二の遮断器２５に駆動信号を出力して燃料カットや点火動作の停止を実行するようにしても良い。
【図面の簡単な説明】
【０１２４】
【図１】本発明の一実施例におけるエンジン制御システムの概略構成を示すブロック図である。
【図２】異常検出時のフェイルセーフ処理を説明するための図である。
【図３】フェイルセーフ処理プログラムの処理の流れを説明するフローチャートである。
【図４】アクセル関連処理プログラムの処理の流れを説明するフローチャート（その１）である。
【図５】アクセル関連処理プログラムの処理の流れを説明するフローチャート（その２）である。
【図６】スロットル関連処理プログラムの処理の流れを説明するフローチャート（その１）である。
【図７】スロットル関連処理プログラムの処理の流れを説明するフローチャート（その２）である。
【図８】遮断処理要求プログラムの処理の流れを説明するフローチャート（その１）である。
【図９】遮断処理要求プログラムの処理の流れを説明するフローチャート（その２）である。
【図１０】遮断処理プログラムの処理の流れを説明するフローチャート（その１）である。
【図１１】遮断処理プログラムの処理の流れを説明するフローチャート（その２）である。
【符号の説明】
【０１２５】
１１…スロットルモータ、１２…スロットルバルブ、１３…メインスロットル開度センサ、１４…サブスロットル開度センサ、１５…燃料噴射弁、１６…点火プラグ、１７…点火装置、１９…メインアクセルセンサ、２０…サブアクセルセンサ、２１…ＥＣＵ、２２…ＣＰＵ（第一の集積回路）、２３…ＩＣ（第二の集積回路）、２４…第一の遮断器（第一の遮断手段）、２５…第二の遮断器（第二の遮断手段）、２６…メインセンサ用のＡ／Ｄ変換器、２７…サブセンサ用のＡ／Ｄ変換器、２９…空気制御部、３０…燃料制御部、３１…点火制御部、３２…入力系異常診断部（入出力系異常診断手段）、３３…出力系異常診断部（入出力系異常診断手段）、３４…第一の自己診断部（第一の自己診断手段）、３５…第一の相互診断部（第一の相互診断手段）、３６…フェイルセーフ制御部（フェイルセーフ制御手段）、４１…第二の自己診断部（第二の自己診断手段）、４２…第二の相互診断部（第二の相互診断手段）、４３…フェイルセーフ制御部（フェイルセーフ制御手段）
【図１】
2008088885.tif 000003
【図２】
2008088885.tif 000004
【図３】
2008088885.tif 000005
【図４】
2008088885.tif 000006
【図５】
2008088885.tif 000007
【図６】
2008088885.tif 000008
【図７】
2008088885.tif 000009
【図８】
2008088885.tif 000010
【図９】
2008088885.tif 000011
【図１０】
2008088885.tif 000012
【図１１】
2008088885.tif 000013