(57)【特許請求の範囲】
【請求項１】
信号入力部に入力される駆動信号に応じてアクチュエータを駆動する駆動回路と、
ソフトウェアにより入力ポートと出力ポートとに切替可能な入出力ポートを有すると共に、該入出力ポートが前記駆動回路の信号入力部に接続され、通常動作時には、前記入出力ポートを出力ポートに設定して、該出力ポートとしての入出力ポートから前記駆動回路へ前記アクチュエータを駆動するための駆動信号を出力し、リセット端子にリセット信号が与えられて初期化されると、前記入出力ポートが入力ポートになるよう構成された主マイクロコンピュータと、
該主マイクロコンピュータの動作が正常であるか否かを監視する監視手段と、
該監視手段により前記主マイクロコンピュータの動作が異常であると判断されると、前記主マイクロコンピュータのリセット端子に前記リセット信号を継続して与える初期化手段と、
ソフトウェアにより入力ポートと出力ポートとに切替可能な入出力ポートを有すると共に、該入出力ポートが前記主マイクロコンピュータの入出力ポートと前記駆動回路の信号入力部との間の信号経路にワイヤードオア形式で接続され、前記監視手段により前記主マイクロコンピュータの動作が異常であると判断されて前記初期化手段により前記主マイクロコンピュータのリセット端子に前記リセット信号が与えられている間、自己の前記入出力ポートを出力ポートに設定して、該出力ポートとしての入出力ポートから前記駆動回路へ前記アクチュエータを駆動するための駆動信号を出力し、それ以外の場合には、自己の前記入出力ポートを入力ポートに設定する副マイクロコンピュータと、
を備えたことを特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記副マイクロコンピュータは、
前記監視手段により前記主マイクロコンピュータの動作が異常であると判断されていない場合に、前記主マイクロコンピュータから前記駆動回路へ出力されている前記駆動信号を当該副マイクロコンピュータの前記入出力ポートを介して監視すると共に、前記駆動回路から前記アクチュエータに至る電流経路の電圧レベルを当該副マイクロコンピュータの他の入力ポートを介して監視し、前記駆動信号の監視結果と前記電圧レベルの監視結果とに基づき、前記駆動回路及び前記電流経路の異常を検出する駆動系異常検出手段を備えていること、
を特徴とする電子制御装置。
【請求項３】
請求項１又は請求項２に記載の電子制御装置において、
前記初期化手段は、
前記監視手段により前記主マイクロコンピュータの動作が異常であると判断されると、当該電子制御装置への電源供給が遮断されるまでの間、前記主マイクロコンピュータのリセット端子に前記リセット信号を与え続けるよう構成されていること、
を特徴とする電子制御装置。
【請求項４】
請求項１又は請求項２に記載の電子制御装置において、
前記初期化手段は、
前記監視手段により前記主マイクロコンピュータの動作が異常であると判断されると、予め定められた所定時間の間、前記主マイクロコンピュータのリセット端子に前記リセット信号を与え続けるよう構成されていること、
を特徴とする電子制御装置。
【請求項５】
請求項１ないし請求項４の何れかに記載の電子制御装置において、
前記監視手段と前記初期化手段は、前記副マイクロコンピュータに備えられていること、
を特徴とする電子制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主マイクロコンピュータと副マイクロコンピュータとを備え、主マイクロコンピュータに異常が生じた場合に、副マイクロコンピュータが主マイクロコンピュータに代わってアクチュエータを駆動する、バックアップ制御機能を備えた電子制御装置に関する。
【０００２】
【従来の技術、及び発明が解決しようとする課題】
従来より、例えば自動車に搭載される車両制御用の電子制御装置においては、ＣＰＵ，ＲＯＭ，ＲＡＭ，入力ポート，及び出力ポート等を備えたマイクロコンピュータ（以下、マイコンともいう）が搭載され、そのマイコンが、ＲＯＭに格納されたプログラムに従って、アクチュエータを駆動する駆動回路へ駆動信号を出力するようにしている。
【０００３】
そして、この種の電子制御装置では、プログラム暴走によるマイコンの異常な動作を防止するために、図６に例示する如く、マイコン５１がプログラムの実行に伴い所謂ウォッチドックパルスＷＤを定期的に出力するようにしておくと共に、マイコン５１からのウォッチドックパルスＷＤを監視する監視回路５３を設け、マイコン５１からウォッチドックパルスＷＤが出力されなくなると、上記監視回路５３が、マイコン５１の動作が異常であると判断してマイコン５１のリセット端子にリセット信号ＲＳＴを所定時間与え、これにより、マイコン５１の動作を正常復帰させるようにしている。
【０００４】
ところで、マイコン５１へのリセット信号ＲＳＴの付与を解除しても、マイコン５１の動作が正常復帰しないような故障（例えば、プログラム暴走以外のハードウエア上の故障）も考えられる。また近年、この種の電子制御装置に対しては、より高い制御安全性が要求されている。
【０００５】
そこで、制御安全性を一層高めるためには、制御の中枢を成すマイコンを主マイコンとして設けると共に、それとは別のマイコンを副マイコンとして追加し、主マイコンに異常が生じた場合に、副マイコンが主マイコンに代わってアクチュエータを駆動する、所謂バックアップ制御を行うように構成することが考えられている。
【０００６】
そして、その具体的な構成としては、例えば図６に示すものが考えられる。
即ち、まず、主マイコン（メインマイコン）５１における駆動信号の出力ポートＰM と、副マイコン（サブマイコン）５５における駆動信号の出力ポートＰS との何れか一方を、アクチュエータ（この例では、アクチュエータのコイルＬ１〜Ｌ４）を駆動する駆動回路５７の信号入力部５７ａに切り替えて接続する出力切替回路５９を設ける。
【０００７】
そして、例えば、副マイコン５５が、主マイコン５１からのウォッチドックパルスＷＤを監視し、そのウォッチドックパルスＷＤの出力が停止すると、主マイコン５１の動作が異常であると判断して、自己の出力ポートＰS が主マイコン５１の出力ポートＰM に代わって駆動回路５７の信号入力部５７ａと接続されるように出力切替回路５９へ切替信号を出力する。そして更に、その状態で、副マイコン５５が、自己の出力ポートＰS から駆動回路５７へアクチュエータを駆動するための駆動信号を出力するのである。
【０００８】
しかしながら、上記図６のような構成では、出力切替回路５９が不可欠であるため、高い制御安全性を達成することはできるものの、装置の小型化と低コスト化を実現するには不利である。
本発明は、こうした問題に鑑みなされたものであり、主マイクロコンピュータに異常が生じた場合の、アクチュエータに対する副マイクロコンピュータによるバックアップ制御を、簡単な構成で実現することのできる電子制御装置を提供することを目的としている。
【０００９】
【課題を解決するための手段、及び発明の効果】
かかる目的を達成するためになされた請求項１に記載の本発明の電子制御装置においては、ソフトウェアにより入力ポートと出力ポートとに切替可能な入出力ポートを夫々有した主マイクロコンピュータと副マイクロコンピュータとを備えている。
【００１０】
そして、主マイクロコンピュータの入出力ポートは、信号入力部に入力される駆動信号に応じてアクチュエータを駆動する駆動回路の上記信号入力部に接続され、また、副マイクロコンピュータの入出力ポートは、主マイクロコンピュータの入出力ポートと駆動回路の信号入力部との間の信号経路にワイヤードオア形式で接続されている。そして更に、両マイクロコンピュータのうち、少なくとも主マイクロコンピュータは、そのリセット端子にリセット信号が与えられて初期化（リセット）されると、自己の入出力ポートが入力ポートになるものである。
【００１１】
ここで、主マイクロコンピュータは、通常動作時には、自己の入出力ポートを出力ポートに設定して、その出力ポートとしての入出力ポートから駆動回路へ、アクチュエータを駆動するための駆動信号を出力する。
そして、監視手段が、主マイクロコンピュータの動作が正常であるか否かを監視し、この監視手段により主マイクロコンピュータの動作が異常であると判断されると、初期化手段が、主マイクロコンピュータのリセット端子にリセット信号を継続して与える。
【００１２】
また、副マイクロコンピュータは、監視手段により主マイクロコンピュータの動作が異常であると判断されて、初期化手段により主マイクロコンピュータのリセット端子にリセット信号が与えられている間、自己の入出力ポートを出力ポートに設定して、その出力ポートとしての入出力ポートから駆動回路へアクチュエータを駆動するための駆動信号を出力し、それ以外の場合には、自己の入出力ポートを入力ポートに設定する。
【００１３】
このため、監視手段により主マイクロコンピュータの動作が異常であると判断されていない場合（即ち正常時）には、副マイクロコンピュータの入出力ポートが入力ポートに設定されて、主マイクロコンピュータの入出力ポートから出力される駆動信号が、副マイクロコンピュータの入出力ポートに影響されることなく駆動回路の信号入力部に入力され、その結果、アクチュエータは、駆動回路により主マイクロコンピュータからの駆動信号に応じて駆動されることとなる。
【００１４】
一方、監視手段により主マイクロコンピュータの動作が異常であると判断されると、主マイクロコンピュータが初期化手段により継続して初期化（リセット）され、その間、主マイクロコンピュータの入出力ポートは強制的に入力ポートになると共に、副マイクロコンピュータが、自己の入出力ポートを出力ポートに設定して駆動回路へ駆動信号を出力することとなる。
【００１５】
よって、主マイクロコンピュータに異常が生じると、副マイクロコンピュータの入出力ポートから出力される駆動信号が、主マイクロコンピュータの入出力ポートに影響されることなく駆動回路の信号入力部に入力され、その結果、アクチュエータは、駆動回路により副マイクロコンピュータからの駆動信号に応じて駆動されることとなる。
【００１６】
このように本発明の電子制御装置では、主マイクロコンピュータの異常時に、主マイクロコンピュータのリセット端子へリセット信号を継続して与えることにより、主マイクロコンピュータの入出力ポートを強制的に入力ポートとし、更に、その状態で、副マイクロコンピュータが、自己の入出力ポートを出力ポートに切り替えて、そのポートから駆動回路へバックアップ制御用の駆動信号を出力するようにしている。
【００１７】
従って、本発明の電子制御装置によれば、図６に示したような出力切替回路５９を設けることなく、主マイクロコンピュータの入出力ポートと副マイクロコンピュータの入出力ポートとをワイヤードオア形式で接続して、その両マイクロコンピュータからの駆動信号を駆動回路に切り替えて与えることができるため、主マイクロコンピュータに異常が生じた場合のアクチュエータに対する副マイクロコンピュータによるバックアップ制御を、非常に簡単な構成で実現することができる。よって、本発明の電子制御装置によれば、制御安全性と装置の小型化及び低コスト化とを、高次元で両立させることができる。
【００１８】
尚、ソフトウェアにより入力ポートと出力ポートとに切替可能な入出力ポートを有したマイクロコンピュータは、例えば特公昭６０−５４６８２号公報等に記載されているように周知のものである。
具体的には、この種のマイクロコンピュータは、入出力ポートを入力ポートと出力ポートとの何れに設定するかを決めるための入出力設定用レジスタを内蔵しており、ソフトウェアによって（プログラムの実行によって）上記入出力設定用レジスタの値を書き替えることにより、入出力ポートを入力ポートと出力ポートとの何れかに任意に設定することができるようになっている。
【００１９】
また、この種の切替可能な入出力ポートを有するマイクロコンピュータは、一般に、リセット端子にリセット信号が与えられて初期化されると、上記入出力設定用レジスタの値が、入出力ポートを入力ポートに設定する方の値に初期化されるように構成されている。よって、このようなマイクロコンピュータは、リセット端子にリセット信号が与えられると、その入出力ポートが強制的に（ハードウェア的に）入力ポートとなるため、本発明の電子制御装置における主マイクロコンピュータとして用いることができる。
【００２０】
次に、請求項２に記載の電子制御装置では、副マイクロコンピュータが、駆動系異常検出手段を備えている。
そして、この駆動系異常検出手段は、監視手段により主マイクロコンピュータの動作が異常であると判断されていない場合に、主マイクロコンピュータから駆動回路へ出力されている駆動信号を当該副マイクロコンピュータの入出力ポートを介して監視すると共に、駆動回路からアクチュエータに至る電流経路の電圧レベルを当該副マイクロコンピュータの他の入力ポートを介して監視し、更に、前記駆動信号の監視結果と前記電圧レベルの監視結果とに基づき、駆動回路及びその駆動回路からアクチュエータに至る電流経路の異常を検出する。
【００２１】
つまり、請求項２に記載の電子制御装置では、主マイクロコンピュータから駆動回路へ出力されている駆動信号と、駆動回路からアクチュエータに至る電流経路の電圧レベルとに基づき、例えば、駆動信号に応じて前記電圧レベルが変化しているか否かといった手順で、駆動回路及びその駆動回路からアクチュエータに至る電流経路の異常を検出するようにしており、特に、その異常検出を副マイクロコンピュータ側で行うようにしている。
【００２２】
そして、このような請求項２に記載の電子制御装置によれば、主マイクロコンピュータのポート数を節約することができるという点で有利である。
つまり、例えば図６に示すように、主マイコン５１が、駆動回路５７からアクチュエータに至る電流経路の電圧レベル（図６では、駆動回路５７とアクチュエータとを接続する端子Ｊ１〜Ｊ４の電圧レベル）を入力回路６１を介して監視し、その電流経路の電圧レベルと自己の出力ポートＰM から出力している駆動信号とを比較することで、駆動回路５７及び上記電流経路の異常を検出するように構成することも考えられるが、一般に、主マイコン５１は、センサやスイッチなどからの様々な情報を入力する必要がある。
【００２３】
よって、図６のように構成すると、主マイコン５１が上記電流経路の電圧レベルを監視するために用いる入力ポートＰK の分だけ、主マイコン５１でのポート不足を招き易くなるのであるが、請求項２に記載の如く構成すれば、そのような問題を回避することができるのである。
【００２４】
次に、請求項３に記載の電子制御装置では、初期化手段が、監視手段により主マイクロコンピュータの動作が異常であると判断されると、当該電子制御装置への電源供給が遮断されるまでの間、主マイクロコンピュータのリセット端子にリセット信号を与え続けるように構成されている。
【００２５】
このため、請求項３に記載の電子制御装置においては、主マイクロコンピュータの動作に異常が生じると、その後、当該電子制御装置への電源供給が遮断されるまでの間、主マイクロコンピュータがリセットされ続けて、主マイクロコンピュータの入出力ポートが強制的に入力ポートになると共に、副マイクロコンピュータが、自己の入出力ポートを出力ポートに設定して駆動回路へバックアップ制御用の駆動信号を出力し続けることとなる。
【００２６】
よって、この請求項３に記載の電子制御装置によれば、主マイクロコンピュータにリセット信号によるリセット（初期化）をかけても正常復帰しないような故障（例えば、プログラム暴走以外のハードウェア上の故障）が生じた場合でも、副マイクロコンピュータからの駆動信号によって、アクチュエータの異常な動作を確実に防止できるという点で有利である。
【００２７】
一方、請求項４に記載の電子制御装置では、初期化手段が、監視手段により主マイクロコンピュータの動作が異常であると判断されると、予め定められた所定時間の間、主マイクロコンピュータのリセット端子にリセット信号を与え続けるように構成されている。
【００２８】
このため、請求項４に記載の電子制御装置においては、主マイクロコンピュータの動作に異常が生じると、予め定められた所定時間の間だけ、主マイクロコンピュータがリセットされ続けて、主マイクロコンピュータの入出力ポートが強制的に入力ポートになると共に、その間だけ、副マイクロコンピュータが、自己の入出力ポートを出力ポートに設定して駆動回路へ駆動信号を出力することとなる。
【００２９】
よって、このような請求項４に記載の電子制御装置によれば、主マイクロコンピュータに生じた異常が、リセット信号によるリセットを解除すれば正常復帰するような異常（プログラム暴走）であった場合には、主マイクロコンピュータのリセット中にのみ、アクチュエータが副マイクロコンピュータからの駆動信号によってバックアップ制御され、リセットの解除後は、アクチュエータが正常復帰した主マイクロコンピュータからの駆動信号によって制御されることとなり、システム全体の正常復帰を速やかに行うことができるという点で有利である。
【００３０】
ところで、前述した請求項１〜４に記載の電子制御装置において、監視手段と初期化手段は、請求項５に記載のように、副マイクロコンピュータに備えられるように構成することができる。つまり、請求項５に記載の電子制御装置では、副マイクロコンピュータが、プログラムを実行することにより、監視手段と初期化手段との機能を果たすようにしている。
【００３１】
そして、請求項５に記載のように構成すれば、監視手段と初期化手段を副マイクロコンピュータとは別に設けた場合よりも、当該電子制御装置を小型で且つ低コストなものとすることができる。
【００３２】
【発明の実施の形態】
以下、本発明が適用された実施形態について図面を用いて説明する。尚、本発明は、下記の実施形態に限定されることなく、本発明の技術的範囲に属する限り、種々の形態を採り得ることは言うまでもない。
【００３３】
［第１実施形態］
まず図１は、自動車のエンジンを制御する第１実施形態の電子制御装置（以下、ＥＣＵという）１の構成を表す構成図である。尚、本実施形態のＥＣＵ１は、エンジンに対する燃料噴射量及び点火時期や、エンジンの吸気経路に設けられたスロットル弁（延いては、エンジンの吸入空気量）等を制御するものであるが、ここでは、主にスロットル弁の制御に関する部分について説明する。
【００３４】
図１に示すように、ＥＣＵ１は、エンジンを制御するための様々な制御処理を実行する主マイクロコンピュータとしてのメインマイコン３と、メインマイコン３に異常が生じた場合に、メインマイコン３に代わって、少なくとも上記スロットル弁を制御する副マイクロコンピュータとしてのサブマイコン５と、メインマイコン３とサブマイコン５との何れか一方から出力される駆動信号に応じて、上記スロットル弁の開度を調節するアクチュエータとしてのステッピングモータＭを駆動する駆動回路７と、自動車に搭載されたバッテリＢＴのバッテリ電圧ＶB （通常１２Ｖ）がイグニッションスイッチＩＧＳを介して入力され、そのバッテリ電圧ＶB を当該ＥＣＵ１が動作するための電源電圧（本実施形態では５Ｖ）に変換して、上記両マイコン３，５や駆動回路７等に供給する電源回路９とを備えている。
【００３５】
そして、本実施形態においては、上記ステッピングモータＭの４つの励磁コイルＬ１，Ｌ２，Ｌ３，Ｌ４の一端が、ＥＣＵ１の外部でバッテリ電圧ＶB に接続されており、その各励磁コイルＬ１〜Ｌ４のバッテリ電圧ＶB とは反対側の端部が、夫々、ＥＣＵ１に設けられた４つのコネクタ端子Ｊ１，Ｊ２，Ｊ３，Ｊ４を介して駆動回路７の後述する信号出力部４３に接続されている。
【００３６】
また、ＥＣＵ１は、上記コネクタ端子Ｊ１〜Ｊ４の各々に一端が接続され、他端がバッテリＢＴのマイナス側である接地電位（＝０Ｖ）に接続された、４つのプルダウン用抵抗器Ｒ１，Ｒ２，Ｒ３，Ｒ４と、上記各コネクタ端子Ｊ１〜Ｊ４の電圧レベル（即ち、駆動回路７からステッピングモータＭの４つの励磁コイルＬ１〜Ｌ４に至る各電流経路の電圧レベル）を、０Ｖから５Ｖまでの論理信号レベルに夫々変換してサブマイコン５に入力させる入力回路１１とを備えている。
【００３７】
尚、プルダウン用抵抗器Ｒ１〜Ｒ４は、励磁コイルＬ１〜Ｌ４が断線したり、或いは、励磁コイルＬ１〜Ｌ４がコネクタ端子Ｊ１〜Ｊ４から外れた場合に、各コネクタ端子Ｊ１〜Ｊ４の電圧レベルを０Ｖに安定させるためのものである。また、入力回路１１は、各コネクタ端子Ｊ１〜Ｊ４の電圧レベルが５Ｖよりも大きい場合に、その電圧レベルを５Ｖにクランプしてサブマイコン５へ出力する。
【００３８】
ここで、メインマイコン３とサブマイコン５との各々は、ＣＰＵ，ＲＯＭ，及びＲＡＭと、入力専用の入力ポート（入力専用ポート）と、出力専用の出力ポート（出力専用ポート）と、ソフトウェアにより入力ポートと出力ポートとに切替可能な入出力ポートと、その入出力ポートを入力ポートと出力ポートとの何れに設定するかを決めるための入出力設定用レジスタとを備えた周知のシングルチップマイクロコンピュータであり、ソフトウェアにより（プログラムの実行により）上記入出力設定用レジスタの値を書き替えることで、上記入出力ポートを入力ポートと出力ポートとの何れかに任意に設定することができるようになっている。
【００３９】
具体的に説明すると、両マイコン３，５の入出力ポートは、図２に示すように、上記入出力設定用レジスタの値に対応した入出力切替信号ＳC がハイレベルの時（つまり、入出力設定用レジスタの値が「１」の時）に、マイコンの内部で生成された出力信号ＳO を当該ポートの端子Ｐへ出力する出力バッファ２１と、上記入出力切替信号ＳC がロウレベルの時（つまり、入出力設定用レジスタの値が「０」の時）に、当該ポートの端子Ｐに入力される信号をマイコンの内部へ入力信号ＳI として取り込む入力バッファ２３と、その入力バッファ２３と端子Ｐとの間に直列に設けられた入力保護抵抗２５とから構成されている。よって、ソフトウェアによって上記入出力設定用レジスタに「０」を書き込めば、そのレジスタに対応する入出力ポートを入力ポートに設定することができ、また、上記入出力設定用レジスタに「１」を書き込めば、そのレジスタに対応する入出力ポートを出力ポートに設定することができる。
【００４０】
また、少なくともメインマイコン３は、そのリセット端子ＩＮＩＴにロウレベルのリセット信号ＲＳＴが与えられて初期化（リセット）されると、上記入出力設定用レジスタの値が、入出力ポートを入力ポートに設定する方の「０」に初期化されるように構成されている。このため、メインマイコン３では、リセット端子ＩＮＩＴにロウレベルのリセット信号ＲＳＴが与えられると、全ての入出力ポートが強制的に（ハードウェア的に）入力ポートとなる。
【００４１】
そして、本実施形態のＥＣＵ１においては、メインマイコン３の入出力ポートのうち、４つの入出力ポートＰ00，Ｐ01，Ｐ02，Ｐ03が、駆動回路７の後述する信号入力部４１に接続されている。
そして更に、サブマイコン５の入出力ポートのうち、４つの入出力ポートＰ10，Ｐ11，Ｐ12，Ｐ13が、夫々、４つの抵抗器Ｒ５，Ｒ６，Ｒ７，Ｒ８を介して、メインマイコン３の各入出力ポートＰ00，Ｐ01，Ｐ02，Ｐ03に接続されている。つまり、サブマイコン５の入出力ポートＰ10，Ｐ11，Ｐ12，Ｐ13は、メインマイコン３の入出力ポートＰ00，Ｐ01，Ｐ02，Ｐ03と駆動回路７の信号入力部４１との間の信号経路にワイヤードオア形式で接続されている。また、サブマイコン５の入出力ポートのうちの、他の４つの入出力ポートＰ20，Ｐ21，Ｐ22，Ｐ23には、入力回路１１からの信号が入力されている。
【００４２】
一方、駆動回路７は、図３に示すように、電源回路９から供給される電源電圧（５Ｖ）の電源ラインＬV にエミッタが接続されたＰＮＰトランジスタ３１と、電源ラインＬV とＰＮＰトランジスタ３１のベースとの間に接続された誤動作防止用の抵抗器３３と、ＰＮＰトランジスタ３１のベースに一端が接続された電流制限用の抵抗器３５と、エミッタが接地電位に接続された出力用のＮＰＮトランジスタ３７と、接地電位とＮＰＮトランジスタ３７のベースとの間に接続された誤動作防止用の抵抗器３８と、ＰＮＰトランジスタ３１のコレクタとＮＰＮトランジスタ３７のベースとの間に接続された電流制限用の抵抗器３９と、からなる単位駆動回路を、ステッピングモータＭの各励磁コイルＬ１〜Ｌ４に対応して４組備えている。尚、図３では１つの単位駆動回路のみ示している。
【００４３】
そして、駆動回路７では、抵抗器３５のＰＮＰトランジスタ３１とは反対側の端部が、メインマイコン３の入出力ポートＰ00，Ｐ01，Ｐ02，Ｐ03の何れかに接続される信号入力部４１となっており、また、ＮＰＮトランジスタ３７のコレクタが、上記各励磁コイルＬ１〜Ｌ４のバッテリ電圧ＶB とは反対側の端部の何れか（即ち、コネクタ端子Ｊ１〜Ｊ４の何れか）に接続される信号出力部４３となっている。
【００４４】
つまり、駆動回路７では、信号入力部４１にロウレベルの駆動信号が入力されると、ＰＮＰトランジスタ３１とＮＰＮトランジスタ３７がオンして、対応する励磁コイルＬ１〜Ｌ４にＮＰＮトランジスタ３７を介して駆動電流が流れ、逆に、信号入力部４１にハイレベルの駆動信号が入力されると、ＰＮＰトランジスタ３１とＮＰＮトランジスタ３７がオフして、対応する励磁コイルＬ１〜Ｌ４への通電が停止される。
【００４５】
次に、図１にて図示はされていないが、メインマイコン３には、エンジンの回転数を検出する回転数センサ、アクセルペダルの開度を検出するペダル開度センサ、及びエンジンの冷却水温を検出する水温センサ等、エンジンを制御するために必要な様々なセンサからの信号が入力されている。
【００４６】
そして、メインマイコン３は、自己のリセット端子ＩＮＩＴにロウレベルのリセット信号ＲＳＴが与えられていない（入力されていない）通常動作時には、まず動作開始の直後に、自己のＲＯＭに格納されている初期化処理用のプログラムを実行して、上記入出力ポートＰ00〜Ｐ03を前述した手順で出力ポートに設定し、その後、自己のＲＯＭに格納されているエンジン制御用のプログラム（以下、制御プログラムという）を繰り返し実行することにより、上記各センサからの信号に基づきスロットル弁の制御開度を算出して、その算出した制御開度に応じた駆動信号を出力ポートとしての入出力ポートＰ00〜Ｐ03から駆動回路７へ出力する。
【００４７】
また、メインマイコン３は、上記制御プログラムを実行することに伴って、ウォッチドックパルスＷＤ１を定期的（本実施形態では、１６ｍｓ以内毎）に出力するようになっている。
一方、図１に示すように、サブマイコン５には、メインマイコン３からのウォッチドックパルスＷＤ１と、エンジンを始動させるためのスタータスイッチがオンしているか否かを示すスタータ信号ＳＴＡとが入力されている。
【００４８】
そして、サブマイコン５は、後述するフェイルセーフ処理（図４）を実行することにより、駆動回路７及び駆動回路７からステッピングモータＭの各励磁コイルＬ１〜Ｌ４に至る電流経路が正常であるか否かを判断すると共に、メインマイコン３からのウォッチドックパルスＷＤ１を監視して、メインマイコン３の動作が正常であるか否かを判断する。そして更に、サブマイコン５は、上記フェイルセーフ処理の実行により、メインマイコン３の動作が異常であると判断すると、メインマイコン３のリセット端子ＩＮＩＴにリセット信号ＲＳＴを与えるためのハイレベルのリセット指令信号ＲＳＴ２をポートＰR から出力すると共に、メインマイコン３に代わって入出力ポートＰ10〜Ｐ13から駆動回路７へバックアップ制御用の駆動信号を出力する。
【００４９】
このため、図１に示すように、ＥＣＵ１には、上記リセット指令信号ＲＳＴ２に応じてメインマイコン３にリセットをかけるための回路として、コレクタがメインマイコン３のリセット端子ＩＮＩＴに接続され、エミッタが接地電位に接続され、ベースが電流制限用の抵抗器Ｒ９を介してサブマイコン５の上記ポートＰR に接続されたＮＰＮトランジスタＴｒ１と、そのＮＰＮトランジスタＴｒ１のベースと接地電位との間に接続された誤動作防止用の抵抗器Ｒ１０とからなる、レベル反転回路１３が設けられている。
【００５０】
つまり、レベル反転回路１３では、サブマイコン５のポートＰR からハイレベルのリセット指令信号ＲＳＴ２が出力されると、ＮＰＮトランジスタＴｒ１がオンし、これにより、メインマイコン３のリセット端子ＩＮＩＴにロウレベルのリセット信号ＲＳＴが与えられて、メインマイコン３がリセットされる。
【００５１】
また、ＥＣＵ１に設けられた電源回路９は、イグニッションスイッチＩＧＳがオンされてから、自己が供給する５Ｖの電源電圧が安定するまでの間、メインマイコン３とサブマイコン５とにリセットをかける所謂パワーオンリセット機能と、メインマイコン３からウォッチドックパルスＷＤ１が定期的に出力されているか否かを監視して、ウォッチドックパルスＷＤ１の出力が停止すると、メインマイコン３のリセット端子ＩＮＩＴにロウレベルのリセット信号ＲＳＴを微小時間（例えば１００ｍｓ）出力する監視機能とを備えている。つまり、本実施形態において、メインマイコン３の動作は、サブマイコン５と電源回路９との両方によって監視されている。
【００５２】
一方更に、本実施形態のＥＣＵ１では、サブマイコン５も、自己のＲＯＭに格納されたプログラムを実行することに伴って、ウォッチドックパルスＷＤ２を定期的に出力するようになっている。そして、メインマイコン３が、サブマイコン５からウォッチドックパルスＷＤ２が定期的に出力されているか否かを監視して、ウォッチドックパルスＷＤ２の出力が停止すると、サブマイコン５に異常が生じたと判断するようになっている。つまり、メインマイコン３とサブマイコン５は、互いの動作を監視し合うようになっている。
【００５３】
尚、本実施形態では、メインマイコン３において、ウォッチドックパルスＷＤ１を出力するためのポートは出力専用ポートであり、センサからの信号を入力するためのポートと、サブマイコン５からのウォッチドックパルスＷＤ２を入力するためのポートと、サブマイコン５から後述するように出力される報知信号ＣＭＰを入力するためのポートは、入力専用ポートである。また、サブマイコン５において、リセット指令信号ＲＳＴ２を出力するためのポートＰR と、ウォッチドックパルスＷＤ２を出力するためのポートと、上記報知信号ＣＭＰを出力するためのポートは、出力専用ポートであり、メインマイコン３からのウォッチドックパルスＷＤ１を入力するためのポートと、スタータ信号ＳＴＡを入力するためのポートは、入力専用ポートである。
【００５４】
次に、サブマイコン５で実行されるフェイルセーフ処理について、図４に示すフローチャートに沿って説明する。
尚、サブマイコン５は、イグニッションスイッチＩＧＳがオンされて電源回路９からの電源電圧（５Ｖ）を受けると動作を開始し、まず最初に、図示しない初期化処理を実行して、前述した入出力ポートＰ10〜Ｐ13，Ｐ20〜Ｐ23を入力ポートに設定する。そして、その後、図４のフェイルセーフ処理を、メインマイコン３がウォッチドックパルスＷＤ１を出力する最大周期（１６ｍｓ）よりも短い所定時間毎（例えば１ｍｓ毎）に繰り返し実行する。また、サブマイコン５は、図４のフェイルセーフ処理と並行して、メインマイコン３からウォッチドックパルスＷＤ１が出力される時間間隔を計時するための計時処理を実行している。
【００５５】
図４に示すように、サブマイコン５がフェイルセーフ処理の実行を開始すると、まず、ステップ（以下単に「Ｓ」と記す）１００にて、メインマイコン３に対する異常検出動作（後述するＳ１１０の動作）を行うべき条件である異常検出条件が成立しているか否かを判断する。尚、この異常検出条件は、前述したスタータ信号ＳＴＡに基づきスタータスイッチがオン状態からオフ状態に変化したことが検出され、更に、その時点から電源回路９により供給される電源電圧が十分に安定すると見なされる時間が経過している場合に成立する。つまり、バッテリ電圧ＶB 及び電源回路９からの電源電圧が不安定なエンジン始動直後の期間は、メインマイコン３に対する異常検出動作を行わないようにしている。
【００５６】
そして、Ｓ１００にて異常検出条件が成立していると判断した場合には、次のＳ１１０に進んで、前述した計時処理の実行により計時されているウォッチドックパルスＷＤ１の出力時間間隔が１６ｍｓ以内であるか否かを判定することにより、メインマイコン３の動作が正常であるか否かを判断し、ウォッチドックパルスＷＤ１の出力時間間隔が１６ｍｓ以内であれば、メインマイコン３の動作が正常である（異常ではない）と判断して、Ｓ１２０に進む。
【００５７】
また、上記Ｓ１００にて異常検出条件が成立していないと判断した場合には、そのままＳ１２０に移行する。
Ｓ１２０では、入力ポートとして設定されている入出力ポートＰ10〜Ｐ13の入力状態、即ちメインマイコン３の入出力ポートＰ00〜Ｐ03から駆動回路７へ出力されている各駆動信号を読み込む。そして、続くＳ１３０にて、入力ポートとして設定されている入出力ポートＰ20〜Ｐ23の入力状態、即ち各コネクタ端子Ｊ１〜Ｊ４の電圧レベル（駆動回路７から励磁コイルＬ１〜Ｌ４に至る各電流経路の電圧レベル）を０Ｖから５Ｖまでの論理信号レベルに変換した入力回路１１からの各信号を読み込む。そして更に、続くＳ１４０にて、入出力ポートＰ10〜Ｐ13の入力状態と、それに対応する入出力ポートＰ20〜Ｐ23の入力状態とを比較し、次のＳ１５０にて、両入力状態が一致しているか否かを判定する。
【００５８】
ここで、入出力ポートＰ10〜Ｐ13の入力状態と入出力ポートＰ20〜Ｐ23の入力状態とが一致していれば、駆動回路７及び駆動回路７からステッピングモータＭの各励磁コイルＬ１〜Ｌ４に至る電流経路（以下、これらを駆動系ともいう）が正常であると判断して、Ｓ１６０に進み、メインマイコン３へ、駆動系が正常であることを報知するために、前述した報知信号ＣＭＰを一定周期（例えば８ｍｓ）のパルスで出力する。そして、その後、当該フェイルセーフ処理を一旦終了する。
【００５９】
これに対して、入出力ポートＰ10〜Ｐ13の入力状態と入出力ポートＰ20〜Ｐ23の入力状態とが一致していなければ、上記駆動系に異常が生じていると判断して、Ｓ１７０へ移行し、メインマイコン３へ、駆動系が異常であることを報知するために、前述した報知信号ＣＭＰをハイレベル（５Ｖ）で出力する。そして、その後、当該フェイルセーフ処理を一旦終了する。
【００６０】
つまり、本実施形態において、駆動系が正常であれば、駆動回路７の信号入力部４１にロウレベルの駆動信号を出力すると、その信号入力部４１に対応する入力回路１１からの信号もロウレベルとなり、また、駆動回路７の信号入力部４１にハイレベルの駆動信号を出力すると、その信号入力部４１に対応する入力回路１１からの信号もハイレベルとなる。そこで、上記Ｓ１５０では、メインマイコン３から駆動回路７への各駆動信号と、それに夫々対応する入力回路１１からの各信号とが一致しているか否かを判定し、両信号が一致していなければ、駆動系に異常が生じていると判断して、Ｓ１７０の処理により、異常の発生を示すハイレベルの報知信号ＣＭＰをメインマイコン３に出力するようにしている。
【００６１】
尚、上記Ｓ１７０で出力されるハイレベルの報知信号ＣＭＰを受けたメインマイコン３は、エンジンに対する燃料噴射或いは点火の制御を止めて、エンジンを速やか且つ滑らかに停止させる。そして更に、車両の運転者に異常を報知するための警告ランプを点灯させると共に、当該メインマイコン３内に設けられているバックアップＲＡＭ（電源電圧の供給が停止されても記憶内容を保持可能なＲＡＭ）に、駆動系に異常が生じたことを示すコードを記憶する。
【００６２】
一方、上記Ｓ１１０にて、メインマイコン３からのウォッチドックパルスＷＤ１の出力時間間隔が１６ｍｓ以内ではなく、メインマイコン３の動作が異常であると判断した場合には、Ｓ１８０に移行する。
そして、このＳ１８０にて、前述したポートＰR からハイレベルのリセット指令信号ＲＳＴ２を出力して、メインマイコン３のリセット端子ＩＮＩＴにロウレベルのリセット信号ＲＳＴを与える。
【００６３】
すると、メインマイコン３がリセットされて、メインマイコン３の入出力ポートＰ00〜Ｐ03が強制的に入力ポートとなるため、その状態で、次のＳ１９０に進み、自己の入出力ポートＰ10〜Ｐ13を入力ポートから出力ポートに設定する。そして、続くＳ２００にて、上記出力ポートに切り替えた入出力ポートＰ10〜Ｐ13から駆動回路７へ、スロットル弁を速やかに且つ滑らかに閉じるためのバックアップ制御用の駆動信号を出力する、フェイルセーフ出力を実施する。
【００６４】
その後は、イグニッションスイッチＩＧＳがオフされて電源回路９による電源電圧の供給が遮断されるまでの間、上記Ｓ１８０〜Ｓ２００の処理を繰り返す。つまり、本第１実施形態のＥＣＵ１では、サブマイコン５が、メインマイコン３の動作が正常であるか否かを監視し（Ｓ１１０）、メインマイコン３の動作が異常であると判断すると（Ｓ１１０：ＮＯ）、レベル反転回路１３にハイレベルのリセット指令信号ＲＳＴ２を出力して、メインマイコン３のリセット端子ＩＮＩＴにリセット信号ＲＳＴを与え、これにより、メインマイコン３の入出力ポートＰ00〜Ｐ03を強制的に入力ポートとするようにしている（Ｓ１８０）。そして更に、サブマイコン５は、上記リセット指令信号ＲＳＴ２を出力している間、自己の入出力ポートＰ10〜Ｐ13を出力ポートに設定して（Ｓ１９０）、その入出力ポートＰ10〜Ｐ13から駆動回路７へ、ステッピングモータＭをバックアップ制御するための駆動信号を出力するようにしている（Ｓ２００）。
また、サブマイコン５は、上記以外の場合には（Ｓ１００：ＮＯ，Ｓ１１０：ＹＥＳ）、自己の入出力ポートＰ10〜Ｐ13を入力ポートに設定して、メインマイコン３の入出力ポートＰ00〜Ｐ03から出力される駆動信号が、当該サブマイコン５の入出力ポートＰ10〜Ｐ13に影響されることなく駆動回路７の信号入力部４１に入力されるようにしている。
【００６５】
尚、本第１実施形態においては、図４のＳ１１０が監視手段としての処理に相当しており、図４のＳ１８０が初期化手段としての処理に相当している。また、図４のＳ１２０〜Ｓ１５０が駆動系異常検出手段としての処理に相当している。以上詳述したように、本第１実施形態のＥＣＵ１では、メインマイコン３の異常時に、メインマイコン３のリセット端子ＩＮＩＴへリセット信号ＲＳＴを継続して与えることにより、メインマイコン３の入出力ポートＰ00〜Ｐ03を強制的に入力ポートとし、更に、その状態で、サブマイコン５が、自己の入出力ポートＰ10〜Ｐ13を出力ポートに切り替えて、そのポートＰ10〜Ｐ13から駆動回路７へバックアップ制御用の駆動信号を出力するようにしている。
【００６６】
従って、このＥＣＵ１によれば、図６に示したような出力切替回路５９を設けることなく、メインマイコン３の入出力ポートＰ00〜Ｐ03とサブマイコン５の入出力ポートＰ10〜Ｐ13とをワイヤードオア形式で接続して、その両マイコン３，５からの駆動信号を駆動回路７に切り替えて与えることができるため、メインマイコン３に異常が生じた場合のステッピングモータＭに対するサブマイコン５によるバックアップ制御を、非常に簡単な構成で実現することができる。よって、このＥＣＵ１によれば、制御安全性と装置の小型化及び低コスト化とを、高次元で両立させることができる。
【００６７】
また、本第１実施形態のＥＣＵ１では、サブマイコン５が、メインマイコン３の動作が異常であると判断していない場合に（Ｓ１００：ＮＯ，Ｓ１１０：ＹＥＳ）、メインマイコン３から駆動回路７へ出力されている駆動信号を入力ポートとしての入出力ポートＰ10〜Ｐ13を介して監視すると共に（Ｓ１２０）、駆動回路７からステッピングモータＭの励磁コイルＬ１〜Ｌ４に至る各電流経路の電圧レベルを入力ポートとしての他の入出力ポートＰ20〜Ｐ23を介して監視し（Ｓ１３０）、その監視結果に基づいて、ステッピングモータＭの駆動系（駆動回路７及び駆動回路７からステッピングモータＭの各励磁コイルＬ１〜Ｌ４に至る電流経路）の異常を検出するようにしている（Ｓ１４０，Ｓ１５０）。
【００６８】
よって、このＥＣＵ１によれば、駆動系の異常検出を行う上で、メインマイコン３が入力回路１１からの信号を入力して上記各電流経路の電圧レベルを監視する必要が無いため、メインマイコン３のポート数を節約することができるという点で非常に有利である。つまり、メインマイコン３は、様々なセンサからの信号を入力する必要があり、ポートの不足を招き易いのであるが、本実施形態のＥＣＵ１の如く構成すれば、そのような問題を回避することができるのである。
【００６９】
そして更に、本第１実施形態のＥＣＵ１では、メインマイコン３の動作が異常であると判断すると、イグニッションスイッチＩＧＳがオフされて電源回路９による電源電圧の供給が遮断されるまでの間、メインマイコン３のリセット端子ＩＮＩＴにリセット信号ＲＳＴを与え続けるようにしており、その間、サブマイコン５から駆動回路７へバックアップ制御用の駆動信号を継続して出力するようにしている（Ｓ１８０〜Ｓ２００）。
【００７０】
よって、メインマイコン３にリセット信号ＲＳＴによるリセットをかけても正常復帰しないような故障（例えば、プログラム暴走以外のハードウェア上の故障）が生じた場合でも、サブマイコン５からの駆動信号によって、ステッピングモータＭ（延いてはスロットル弁）の異常な動作を確実に防止できるという点で有利である。
【００７１】
また、本第１実施形態のＥＣＵ１では、バックアップ制御用の駆動信号を出力するサブマイコン５が、メインマイコン３の動作の監視と、異常検出時におけるメインマイコン３へのリセット信号ＲＳＴの付与とを行うようにしているため、当該ＥＣＵ１を、一層小型で且つ低コストなものにすることができる。
【００７２】
［第２実施形態］
次に、第２実施形態のＥＣＵについて説明する。
本第２実施形態のＥＣＵは、前述した第１実施形態のＥＣＵ１と比較して、サブマイコン５が実行するフェイルセーフ処理だけが異なっている。
【００７３】
即ち、図５に示すように、第２実施形態のサブマイコン５で実行されるフェイルセーフ処理では、第１実施形態のフェイルセーフ処理（図４）に対して、Ｓ２１０〜Ｓ２３０の処理が追加されており、Ｓ２００でフェイルセーフ出力の実施（駆動回路７へのバックアップ制御用の駆動信号の出力）を開始した後、続くＳ２１０にて、予め定められた所定時間ｔ（例えば５秒間）が経過したか否かを判定する。そして、所定時間ｔが経過していなければＳ１８０に戻る。
【００７４】
また、上記Ｓ２１０で所定時間ｔが経過したと判断すると、Ｓ２２０に進んで、ポートＰR からハイレベルのリセット指令信号ＲＳＴ２を出力することを止めて、メインマイコン３に対するリセットを解除し、続くＳ２３０にて、自己の入出力ポートＰ10〜Ｐ13を出力ポートから入力ポートに戻す。そして、その後、当該フェイルセーフ処理を一旦終了する。
【００７５】
つまり、本第２実施形態のＥＣＵでは、サブマイコン５が、メインマイコン３の動作が異常であると判断すると、所定時間ｔの間だけ、メインマイコン３のリセット端子ＩＮＩＴにリセット信号ＲＳＴを与え続けて、メインマイコン３の入出力ポートＰ00〜Ｐ03を強制的に入力ポートとし、その間だけ、サブマイコン５が、自己の入出力ポートＰ10〜Ｐ13を出力ポートに設定して駆動回路７へ駆動信号を出力するようにしてる。
【００７６】
そして、このような第２実施形態のＥＣＵによれば、メインマイコン３に生じた異常が、リセット信号ＲＳＴによるリセットを解除すれば正常復帰するような異常（プログラム暴走）であった場合には、メインマイコン３のリセット中にのみ、ステッピングモータＭがサブマイコン５からの駆動信号によってバックアップ制御され、リセットの解除後は、ステッピングモータＭが正常復帰したメインマイコン３からの駆動信号によって制御されることとなり、システム全体の正常復帰を速やかに行うことができるという点で有利である。
【００７７】
［その他］
ところで、上記第１及び第２実施形態では、メインマイコン３において、ウォッチドックパルスＷＤ１を出力するためのポートが出力専用ポートであり、センサからの信号を入力するためのポートと、サブマイコン５からのウォッチドックパルスＷＤ２を入力するためのポートと、サブマイコン５からの報知信号ＣＭＰを入力するためのポートとが入力専用ポートであったが、それら各ポートとして、切替可能な入出力ポートを用いても良い。
【００７８】
同様に、上記第１及び第２実施形態では、サブマイコン５において、リセット指令信号ＲＳＴ２を出力するためのポートＰR と、ウォッチドックパルスＷＤ２を出力するためのポートと、報知信号ＣＭＰを出力するためのポートとが出力専用ポートであり、メインマイコン３からのウォッチドックパルスＷＤ１を入力するためのポートと、スタータ信号ＳＴＡを入力するためのポートとが入力専用ポートであったが、それら各ポートとして、切替可能な入出力ポートを用いても良い。
【００７９】
また、上記第１及び第２実施形態では、サブマイコン５において、入力回路１１からの信号を入力するためのポートが入出力ポートＰ20〜Ｐ23であったが、その入出力ポートＰ20〜Ｐ23に代えて、切替不能な入力専用ポートを用いても良い。
【図面の簡単な説明】
【図１】  第１実施形態の電子制御装置（ＥＣＵ）の構成を表す構成図である。
【図２】  入出力ポートの構成を表す回路図である。
【図３】  駆動回路を表す回路図である。
【図４】  第１実施形態の電子制御装置（ＥＣＵ）のサブマイコンで実行されるフェイルセーフ処理を表すフローチャートである。
【図５】  第２実施形態の電子制御装置（ＥＣＵ）のサブマイコンで実行されるフェイルセーフ処理を表すフローチャートである。
【図６】  従来の電子制御装置の構成を表す構成図である。
【符号の説明】
１…電子制御装置（ＥＣＵ）    Ｍ…ステッピングモータ
Ｌ１〜Ｌ４…励磁コイル    ３…メインマイコン（主マイクロコンピュータ）
５…サブマイコン（副マイクロコンピュータ）    ＩＮＩＴ…リセット端子
Ｐ00〜Ｐ03，Ｐ10〜Ｐ13 …入出力ポート    ７…駆動回路    ９…電源回路
１１…入力回路    １３…レベル反転回路    ４１…信号入力部
４３…信号出力部    ＢＴ…バッテリ    ＩＧＳ…イグニッションスイッチ
Ｊ１〜Ｊ４…コネクタ端子
【図１】
0003817855.tif 000002
【図２】
0003817855.tif 000003
【図３】
0003817855.tif 000004
【図４】
0003817855.tif 000005
【図５】
0003817855.tif 000006
【図６】
0003817855.tif 000007