(57)【要約】【課題】マイコンのリセット端子へリセット信号を供給するリセットラインに、異常が生じていることを検出する。【解決手段】マイコン１１と、マイコン１１が異常と判定すると、マイコン１１のリセット端子２０へ、アクティブレベル（この例ではハイ）のリセット信号を、ライン１５を介して出力して、マイコン１１をリセットする監視手段１２と、を備える装置１において、マイコン１１は、リセット端子２０へのリセット信号が有効時間以上ハイになれば当該マイコン１１のリセット回路２６を動作させ、リセット信号のハイ時間が有効時間未満ならばリセット回路２６を動作させない手段２７を備え、監視手段１２は、ハイ時間が有効時間よりも短い診断用パルスをリセット端子２０へライン１５を介して出力する手段を備え、マイコン１１は、診断手段１２からの診断用パルスがリセット端子２０に入力されたか否かを判定することで、ライン１５の正常／異常を判定する。【選択図】図１
2015072568.tif 000002
【特許請求の範囲】
【請求項１】
マイコン（１１〈１２〉）と、
前記マイコンの動作を監視して、前記マイコンが異常であると判定すると、前記マイコンのリセット端子（２０〈３０〉）へ、アクティブレベルのリセット信号を、リセットライン（１５〈１６〉）を介して出力することにより、前記マイコンをリセットする監視手段（１２〈１１〉）と、
を備える電子制御装置において、
前記マイコンは、
前記リセット端子に入力される前記リセット信号が所定の有効時間以上アクティブレベルになった場合に、当該マイコンをリセット状態にするリセット回路（２６〈３６〉）を動作させ、前記リセット信号がアクティブレベルになる時間が前記有効時間未満である場合には、前記リセット回路を動作させない有効時間生成手段（２７〈３７〉）を備え、
前記監視手段は、
前記マイコンの前記リセット端子へ、前記有効時間よりも短い時間アクティブレベルとなるリセット信号である診断用パルスを、前記リセットラインを介して出力するパルス出力手段（３３，Ｓ２４０，Ｓ４１０，Ｓ４２０，Ｓ７３０，Ｓ７４０〈２３，Ｓ１４０，Ｓ３１０，Ｓ３２０，Ｓ７３０，Ｓ７４０〉）を備え、
更に、前記マイコンは、
前記パルス出力手段により出力された前記診断用パルスが前記リセット端子に入力されたか否かを判定することにより、前記リセットラインが正常か否かを判定する判定手段（２３，Ｓ１５０，Ｓ５００〜Ｓ５３０，Ｓ８２０〜Ｓ８６０〈３３，Ｓ２５０，Ｓ６００〜Ｓ６３０，Ｓ８２０〜Ｓ８６０〉）を備えること、
を特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記判定手段は、
前記診断用パルスが前記パルス出力手段による当該診断用パルスの出力予定時刻において前記リセット端子に入力されたか否かを判定し、前記診断用パルスが入力されないと判定した場合に、前記リセットラインが異常であると判定すること、
を特徴とする電子制御装置。
【請求項３】
請求項２に記載の電子制御装置において、
前記判定手段は、
前記診断用パルスが前記出力予定時刻において前記リセット端子に入力されたか否かとして、前記診断用パルスが前記出力予定時刻を含む所定の期間において前記リセット端子に入力されたか否か、を判定すること、
を特徴とする電子制御装置。
【請求項４】
請求項２又は請求項３に記載の電子制御装置において、
前記マイコンは、
前記監視手段に前記診断用パルスの前記出力予定時刻を指示する時刻指示手段（２３，Ｓ１６０〈３３，Ｓ２２０〉）を備え、
前記監視手段の前記パルス出力手段（３３，Ｓ２４０，Ｓ４１０，Ｓ４２０〈２３，Ｓ１４０，Ｓ３１０，Ｓ３２０〉）は、
前記時刻指示手段により指示された前記出力予定時刻になると前記診断用パルスを出力し、
前記マイコンの前記判定手段（２３，Ｓ１５０，Ｓ５００〜Ｓ５３０〈３３，Ｓ２５０，Ｓ６００〜Ｓ６３０〉）は、
前記診断用パルスが前記時刻指示手段により指示された前記出力予定時刻において前記リセット端子に入力されたか否かを判定すること、
を特徴とする電子制御装置。
【請求項５】
請求項２又は請求項３に記載の電子制御装置において、
前記監視手段は、
前記マイコンに前記診断用パルスの前記出力予定時刻を通知する時刻通知手段（３３，Ｓ７２０〈２３，Ｓ７２０〉）を備え、
前記監視手段の前記パルス出力手段（３３，Ｓ７３０，Ｓ７４０〈２３，Ｓ７３０，Ｓ７４０〉）は、
前記時刻通知手段により通知された前記出力予定時刻になると前記診断用パルスを出力し、
前記マイコンの前記判定手段（２３，Ｓ８２０〜Ｓ８６０〈３３，Ｓ８２０〜Ｓ８６０〉）は、
前記診断用パルスが前記時刻通知手段により通知された前記出力予定時刻において前記リセット端子に入力されたか否かを判定すること、
を特徴とする電子制御装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載の電子制御装置において、
前記判定手段によって前記リセットラインが異常であると判定された後は、前記パルス出力手段が前記診断用パルスを出力しないようにする出力禁止手段（３３，Ｓ７１０，Ｓ９２０〈２２，Ｓ７１０，Ｓ９２０〉）を備えること、
を特徴とする電子制御装置。
【請求項７】
請求項１ないし請求項６の何れか１項に記載の電子制御装置において、
前記判定手段によって前記リセットラインが異常であると判定された後は、前記判定手段が、前記診断用パルスが前記リセット端子に入力されたか否かの判定を実施しないようにする判定禁止手段（３３とＳ７１０，２２とＳ１０２０〈２２とＳ７１０，３３とＳ１０２０〉）を備えること、
を特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイコン（マイクロコンピュータ）を備えた電子制御装置に関する。
【背景技術】
【０００２】
制御対象を制御する電子制御装置には、制御のための処理を行うマイコンと、マイコンを監視して、異常を検出したときにマイコンにリセット信号を供給する監視回路とが、備えられる。また、監視回路としては、監視対象のマイコンとは別のマイコンが用いられることもある。また、２つのマイコンが、互いに相手の異常を監視する構成も知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２８２３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、監視回路からマイコンのリセット端子へリセット信号を供給するためのリセットラインに断線等の異常が生じていると、マイコンが異常になったときに監視回路がリセット信号を出力しても、マイコンをリセットして正常復帰させることができない。しかし、従来の電子制御装置では、リセットラインの異常を検出することができなかった。
【０００５】
そこで、本発明は、マイコンのリセット端子へリセット信号を供給するためのリセットラインに異常が生じていることを、検出できるようにすることを目的としている。
【課題を解決するための手段】
【０００６】
第１発明の電子制御装置は、マイコンと、監視手段とを備える。監視手段は、マイコンの動作を監視して、マイコンが異常であると判定すると、マイコンのリセット端子へ、アクティブレベルのリセット信号を、リセットラインを介して出力することにより、マイコンをリセットする。
【０００７】
そして、この電子制御装置において、マイコンは、有効時間生成手段と、判定手段とを備える。また、監視手段は、パルス出力手段を備える。
マイコンにおいて、有効時間生成手段は、リセット端子に入力されるリセット信号が所定の有効時間以上アクティブレベルになった場合に、当該マイコンをリセット状態にするリセット回路を動作させるが、リセット信号がアクティブレベルになる時間が有効時間未満である場合には、リセット回路を動作させない。
【０００８】
そして、監視手段において、パルス出力手段は、マイコンのリセット端子へ、前記有効時間よりも短い時間アクティブレベルとなるリセット信号である診断用パルスを、前記リセットラインを介して出力する。このため、リセットラインが正常であれば、パルス出力手段により出力された診断用パルスはマイコンのリセット端子に入力されるが、マイコンはリセットされない。
【０００９】
そこで、マイコンにおいて、判定手段は、パルス出力手段により出力された診断用パルスが当該マイコンのリセット端子に入力されたか否かを判定することにより、前記リセットラインが正常か否かを判定する。
【００１０】
以上の構成により、監視対象のマイコンをリセットしてしまうことなく、監視対象のマイコンにて、リセットラインの異常を検出することができるようになる。つまり、リセットラインの異常をマイコンの動作中に任意のタイミングで検出することができるようになる。
【００１１】
尚、特許請求の範囲に記載した括弧「（）」内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。また、特許請求の範囲に記載した括弧「（）」内において、括弧「〈〉」内ではない符号は、後述する実施形態に記載のメインマイコンとサブマイコンとのうち、メインマイコンの方を監視される側のマイコンとし、サブマイコンの方を監視手段とした場合の、具体的手段との対応関係を示すものである。逆に、括弧「〈〉」内の符号は、サブマイコンの方を監視される側のマイコンとし、メインマイコンの方を監視手段とした場合の、具体的手段との対応関係を示すものである。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態の電子制御装置の構成を表す構成図である。
【図２】有効時間生成回路の作用を説明する説明図である。
【図３】第１実施形態のメインマイコンとサブマイコンとが行う各処理を表すフローチャートである。
【図４】第２実施形態のメインマイコンとサブマイコンとが行う第１処理を表すフローチャートである。
【図５】第２実施形態のメインマイコンとサブマイコンとが行う第２処理を表すフローチャートである。
【図６】第３実施形態のメインマイコンとサブマイコンとが行うパルス出力禁止処理を表すフローチャートである。
【図７】第３実施形態のメインマイコンとサブマイコンとが行う判定禁止処理を表すフローチャートである。
【発明を実施するための形態】
【００１３】
本発明が適用された実施形態の電子制御装置について説明する。尚、本実施形態の電子制御装置（以下、ＥＣＵという）は、例えば、自動車のエンジンを制御するものである。
［第１実施形態］
図１に示すように、本実施形態のＥＣＵ１は、主にエンジンを制御するための処理を行うメインマイコン（以下単に、マイコンともいう）１１と、メインマイコン１１の動作を監視すると共に、メインマイコン１１によって動作が監視されるサブマイコン（以下単に、マイコンともいう）１２と、メインマイコン１１から出力される制御信号に応じて、エンジンを動作させるためのアクチュエータ（例えばスロットルの開度を調節するスロットルモータやインジェクタ等）１３を駆動する出力回路１４と、を備えている。尚、駆動対象のアクチュエータ１３は２つ以上でも良い。
【００１４】
メインマイコン１１とサブマイコン１２との間には、サブマイコン１２の出力端子３１から出力されるリセット信号をメインマイコン１１のリセット端子２０へ供給するための信号線であるリセットライン１５と、メインマイコン１１の出力端子２１から出力されるリセット信号をサブマイコン１２のリセット端子３０へ供給するための信号線であるリセットライン１６と、両マイコン１１，１２間で通信するための通信線１７とが、配設されている。尚、通信線１７は、メインマイコン１１の通信用端子２２とサブマイコン１２の通信用端子３２との間に設けられている。また、他の構成例として、メインマイコン１１とサブマイコン１２が、２系統の通信線を介して双方向に通信するようになっていても良い。
【００１５】
メインマイコン１１は、プログラムを実行するＣＰＵ２３と、実行対象のプログラムや固定データなどが記憶されたＲＯＭ２４と、ＣＰＵ２３による演算結果などが記憶されるＲＡＭ２５と、信号の入出力を行うための入出力ポート（図示省略）等を備える。同様に、サブマイコン１２も、ＣＰＵ３３と、ＲＯＭ３４と、ＲＡＭ３５と、入出力ポート（図示省略）等を備える。
【００１６】
更に、メインマイコン１１は、リセット回路２６と、有効時間生成回路２７と、インプットキャプチャ部２８と、を備える。
インプットキャプチャ部２８は、リセット端子２０への入力信号Ｓｉ（即ち、サブマイコン１２からのリセット信号）に有効エッジ（この例では立ち上がりエッジ）が生じたことを検出する。そして、インプットキャプチャ部２８は、入力信号Ｓｉに有効エッジが生じたことを検出すると、当該インプットキャプチャ部２８が有するレジスタ（いわゆるインプットキャプチャレジスタ）２８ａに記憶されるエッジ検出履歴としてのフラグをセットする（具体的には“１”にする）。レジスタ２８ａは、ＣＰＵ２３からリード／ライトの両方のアクセスが可能である。
【００１７】
リセット回路２６には、有効時間生成回路２７の出力信号Ｓｒが、動作指令として入力される。そして、リセット回路２６は、有効時間生成回路２７の出力信号Ｓｒがアクティブレベル（この例ではハイ）になると、当該メインマイコン１１をリセット状態にする。
【００１８】
有効時間生成回路２７は、遅延回路２７ａとアンド回路２７ｂとを備える。
遅延回路２７ａは、図２における１段目及び２段目又は４段目及び５段目に示すように、リセット端子２０への入力信号Ｓｉを所定の有効時間Ｔｅ（例えば数ｍｓ）だけ遅延して出力する。
【００１９】
そして、アンド回路２７ｂは、遅延回路２７ａの出力信号Ｓｄと、リセット端子２０への入力信号Ｓｉとの、論理積信号を、当該有効時間生成回路２７の出力信号Ｓｒとして、リセット回路２６に出力する。
【００２０】
このため、図２における１段目〜３段目に示すように、リセット端子２０への入力信号Ｓｉがハイになる時間が、有効時間Ｔｅ未満である場合には、入力信号Ｓｉと遅延回路２７ａの出力信号Ｓｄとの両方が同時にハイになる期間が生じず、出力信号Ｓｒはローのままとなる。これに対して、図２における４段目〜６段目に示すように、リセット端子２０への入力信号Ｓｉがハイになる時間が、有効時間Ｔｅ以上であれば、入力信号Ｓｉと遅延回路２７ａの出力信号Ｓｄとの両方が同時にハイになる期間が生じ、その期間において出力信号Ｓｒがハイになる。
【００２１】
よって、有効時間生成回路２７は、サブマイコン１２からリセット端子２０に入力されるリセット信号が有効時間Ｔｅ以上ハイになった場合に、リセット回路２６を動作させる（つまり、リセット回路２６に当該メインマイコン１１をリセットさせる）こととなる。逆に、リセット端子２０へのリセット信号がハイになる時間が、有効時間Ｔｅ未満である場合には、有効時間生成回路２７は、リセット回路２６を動作させないため、メインマイコン１１はリセットされない。
【００２２】
また、図１に示すように、サブマイコン１２も、リセット回路３６と、有効時間生成回路３７と、インプットキャプチャ部３８とを備える。それらは、メインマイコン１１側のリセット回路２６、有効時間生成回路２７及びインプットキャプチャ部２８の各々と同様のものであるため、詳細な説明は省略する。
【００２３】
このため、サブマイコン１２においても、リセット端子３０への入力信号Ｓｉ（即ち、メインマイコン１１からのリセット信号）に有効エッジ（この例では立ち上がりエッジ）が生じると、インプットキャプチャ部３８におけるレジスタ３８ａ内のフラグ（エッジ検出履歴）がセットされる。また、メインマイコン１１からリセット端子３０に入力されるリセット信号が有効時間Ｔｅ以上ハイになった場合に、有効時間生成回路３７が、リセット回路３６を動作させて、該リセット回路３６に当該サブマイコン１２をリセットさせる。逆に、リセット端子３０へのリセット信号がハイになる時間が、有効時間Ｔｅ未満である場合には、有効時間生成回路３７は、リセット回路３６を動作させないため、サブマイコン１２はリセットされない。
【００２４】
次に、各マイコン１１，１２の動作内容について説明する。尚、以下に説明するメインマイコン１１の動作や処理内容は、ＣＰＵ２３がＲＯＭ２４内のプログラムを実行することで実現され、同様に、以下に説明するサブマイコン１２の動作や処理内容は、ＣＰＵ３３がＲＯＭ３４内のプログラムを実行することで実現される。
【００２５】
メインマイコン１１は、制御対象としてのエンジンを制御するための制御処理と、サブマイコン１２に動作を監視されるための応答処理（サブマイコン１２に対する応答処理）と、サブマイコン１２の動作を監視するための監視処理（サブマイコン１２の監視処理）とを行う。各処理の内容は、例えば下記の通りである。
【００２６】
〈制御処理〉
メインマイコン１１は、自動車の運転者によるアクセル操作量、エンジン回転数、エンジンの冷却水温等の制御情報を入力し、その制御情報に基づいて制御演算を行う。そして、メインマイコン１１は、その制御演算の結果に基づいて、出力回路１４に制御信号を出力することにより、アクチュエータ１３を動作させてエンジンを制御する。例えば、アクチュエータ１３がスロットルモータであれば、エンジンの出力が制御される。
【００２７】
〈サブマイコン１２に対する応答処理〉
メインマイコン１１は、例えば、一定時間毎に、ＲＯＭ２４内に用意されたダミーデータを演算対象の入力データとして、所定のテスト演算を行い、そのテスト演算の演算結果データをサブマイコン１２に送信する。本実施形態では、例えば、複数のテスト番号毎にダミーデータとテスト演算が決められており、メインマイコン１１は、その複数のテスト番号について、テスト演算を行うと共に、各テスト番号と、そのテスト番号に対応する演算結果データとを、対応付けてサブマイコン１２に送信する。
【００２８】
〈サブマイコン１２の監視処理〉
メインマイコン１１は、サブマイコン１２の動作を監視し、サブマイコン１２が異常であると判定すると、サブマイコン１２をリセットするためのリセット信号を、出力端子２１から出力する。
【００２９】
例えば、メインマイコン１１は、サブマイコン１２から通信線１７を介して送られてくるデータ値（後述する処理実行カウンタの値）が、一定時間以内に増加したか否かを判定し、そのデータ値が増加しなければ、サブマイコン１２が異常であると判定して、出力端子２１からリセット信号を出力する。
【００３０】
尚、本実施形態において、リセット信号のアクティブレベルは、前述の通り、ハイである。そして、メインマイコン１１は、サブマイコン１２の監視処理では、前述の有効時間Ｔｅ以上ハイになるリセット信号を、出力端子２１から出力する。すると、その出力されるリセット信号は、リセットライン１６を介して、サブマイコン１２のリセット端子３０に入力され、その結果、サブマイコン１２はリセットされる。
【００３１】
一方、サブマイコン１２は、メインマイコン１１の動作を監視するための監視処理（メインマイコン１１の監視処理）と、メインマイコン１１に動作を監視されるための応答処理（メインマイコン１１に対する応答処理）とを行う。各処理の内容は、例えば下記の通りである。
【００３２】
《メインマイコン１１の監視処理》
サブマイコン１２のＲＯＭ３４には、メインマイコン１１が前述の応答処理を行うことで送信してくる演算結果データの期待値が、テスト番号毎に記憶されている。
【００３３】
そして、サブマイコン１２は、メインマイコン１１から受信した演算結果データと、その演算結果データに対応するテスト番号についてＲＯＭ３４に記憶されている期待値（即ち、演算結果データの正しい値）とを比較することにより、メインマイコン１１からの演算結果データが正しいか否かを判定し、演算結果データが正しくないと判定したならば、異常カウンタをインクリメントする。そして更に、サブマイコン１２は、例えば、所定時間における異常カウンタの増加量が所定値以上になったら、メインマイコン１１が異常であると判定して、メインマイコン１１をリセットするためのリセット信号を、出力端子３１から出力する。
【００３４】
尚、サブマイコン１２も、メインマイコン１１の監視処理では、前述の有効時間Ｔｅ以上ハイになるリセット信号を、出力端子３１から出力する。すると、その出力されるリセット信号は、リセットライン１５を介して、メインマイコン１１のリセット端子２０に入力され、その結果、メインマイコン１１はリセットされる。
【００３５】
《メインマイコン１１に対する応答処理》
サブマイコン１２は、メインマイコン１１の監視処理を実行する毎に、前述の処理実行カウンタをインクリメントし、その処理実行カウンタの値をメインマイコン１１に送信する。
【００３６】
このため、サブマイコン１２が異常になって、サブマイコン１２からメインマイコン１１に送信される処理実行カウンタの値が増加しなくなると、メインマイコン１１からサブマイコン１１のリセット端子３０へ、有効時間Ｔｅ以上ハイのリセット信号がリセットライン１６を介して出力され、サブマイコン１２がリセットされる。
【００３７】
また、メインマイコン１１が異常になって、メインマイコン１１からサブマイコン１２に送信されるテスト演算の演算結果データが正しくなくなると、サブマイコン１２からメインマイコン１１のリセット端子２０へ、有効時間Ｔｅ以上ハイのリセット信号がリセットライン１５を介して出力され、メインマイコン１１がリセットされる。
【００３８】
ところで、リセットライン１５，１６は、断線するか、グランド電位（即ち、リセット信号の非アクティブ側の電位）にショートすると、アクティブレベル（この例ではハイ）のリセット信号を伝達することができなくなる。
【００３９】
そして、リセットライン１５に、アクティブレベルのリセット信号を伝達不能な異常（以下単に、異常という）が生じると、メインマイコン１１が異常になった場合に、その異常なメインマイコン１１をサブマイコン１２によってリセットすることができなくなる。同様に、リセットライン１６に異常が生じると、サブマイコン１２が異常になった場合に、その異常なサブマイコン１２をメインマイコン１１によってリセットすることができなくなる。
【００４０】
このため、ＥＣＵ１では、各マイコン１１，１２が、図３に示す処理を行うことにより、リセットライン１５，１６の診断（異常の検出）を実施する。
図３に示すように、メインマイコン１１は、例えば一定時間毎に、リセット診断準備モードになる（Ｓ１１０）。尚、他の例として、メインマイコン１１は、例えば所定のイベントの発生時毎に、リセット診断準備モードになっても良い。
【００４１】
そして、メインマイコン１１は、リセット診断準備モードになると、サブマイコン１２へリセット診断実施要求を送信する（Ｓ１２０）。すると、サブマイコン１２も、リセット診断準備モードになる（Ｓ２１０）。
【００４２】
サブマイコン１２は、リセット診断準備モードになると、メインマイコン１１へ、出力端子２１からの診断用パルスの出力予定時刻を指示する情報として、出力端子２１から診断用パルスを出力する時までの時間Ｔｓを示す時刻情報を送信する（Ｓ２２０）。尚、診断用パルスは、ハイになる時間が有効時間Ｔｅ未満のリセット信号であり、実際にはリセット信号として機能しない信号である。
【００４３】
メインマイコン１１は、サブマイコン１２からの時刻情報を受信すると、リセット診断準備モードからリセット診断実施モードに移行する（Ｓ１３０）。そして、メインマイコン１１は、出力端子２１から診断用パルスを出力するためのタイマ処理に対し、診断用パルスの出力時刻として、サブマイコン１２から指示された出力予定時刻（具体的には、時刻情報の受信時から該時刻情報が示す上記時間Ｔｓだけ後の時刻）を設定する（Ｓ１４０）。更に、メインマイコン１１は、インプットキャプチャ部２８のレジスタ２８ａ内のエッジ検出履歴（フラグ）を“０”にクリアする（Ｓ１５０）。そして、メインマイコン１１は、サブマイコン１２へ、出力端子３１からの診断用パルスの出力予定時刻を指示する情報として、出力端子３１から診断用パルスを出力する時までの時間Ｔｍを示す時刻情報を送信する（Ｓ１６０）。
【００４４】
サブマイコン１２は、メインマイコン１１からの時刻情報を受信すると、リセット診断準備モードからリセット診断実施モードに移行する（Ｓ２３０）。そして、サブマイコン１２は、出力端子３１から診断用パルスを出力するためのタイマ処理に対し、診断用パルスの出力時刻として、メインマイコン１１から指示された出力予定時刻（具体的には、時刻情報の受信時から該時刻情報が示す上記時間Ｔｍだけ後の時刻）を設定する（Ｓ２４０）。更に、サブマイコン１２は、インプットキャプチャ部３８のレジスタ３８ａ内のエッジ検出履歴（フラグ）を“０”にクリアする（Ｓ２５０）。このＳ２５０の処理は、サブマイコン１２がＳ２２０でメインマイコン１１に指示した診断用パルスの出力予定時刻よりも、前のタイミングで実行される。
【００４５】
その後、サブマイコン１２は、当該サブマイコン１２における上記タイマ処理により、診断用パルスの出力時刻になるまで待ち（Ｓ４１０）、その出力時刻（即ち、メインマイコン１１から指示された出力予定時刻）になったと判断すると、出力端子３１から診断用パルスを出力する（Ｓ４２０）。
【００４６】
また、メインマイコン１１も、上記Ｓ１６０の処理を行った後は、当該メインマイコン１１における上記タイマ処理により、診断用パルスの出力時刻になるまで待ち（Ｓ３１０）、その出力時刻（即ち、サブマイコン１２から指示された出力予定時刻）になったと判断すると、出力端子２１から診断用パルスを出力する（Ｓ３２０）。
【００４７】
更に、メインマイコン１１は、上記Ｓ１６０の処理を行った後、上記Ｓ３１０，Ｓ３２０の処理を含む他の処理と例えばマルチタスクのかたちで並行して、Ｓ５００〜Ｓ５５０の処理を行う。
【００４８】
メインマイコン１１は、Ｓ５００では、上記Ｓ１６０でサブマイコン１２へ時刻情報（Ｔｍ）を送信してから、その時刻情報が示す時間Ｔｍに所定の余裕時間Ｔαを加えた待機時間Ｔｍα（＝Ｔｍ＋Ｔα）が経過するまで待つ。尚、余裕時間Ｔαは、待機時間Ｔｍαが経過する時が、サブマイコン１２がＳ４２０で診断用パルスを出力する時よりも後になる範囲で、できるだけ短い時間に設定されている。
【００４９】
そして、メインマイコン１１は、上記待機時間Ｔｍαが経過したと判断すると、サブマイコン１２からの診断用パルスの出力予定時刻（Ｓ１６０でサブマイコン１２に指示した出力予定時刻でもある）が経過したと判断し、Ｓ５１０に進む。メインマイコン１１は、Ｓ５１０にて、インプットキャプチャ部２８のレジスタ２８ａからエッジ検出履歴を読み出し、そのエッジ検出履歴から、リセット端子２０に有効エッジが入力されたか否かを判定する。つまり、リセット端子２０にサブマイコン１２からの診断用パルスが入力されたか否かを判定する。具体的には、Ｓ１５０で“０”にクリアしておいたエッジ検出履歴が“１”であれば、リセット端子２０に診断用パルスが入力されたと判定する。
【００５０】
メインマイコン１１は、Ｓ５１０にて、リセット端子２０に診断用パルスが入力されたと判定した場合には、Ｓ５２０にて、リセットライン１５は正常と判定し、Ｓ５４０に進む。また、メインマイコン１１は、Ｓ５１０にて、リセット端子２０に診断用パルスが入力されないと判定した場合には、Ｓ５３０にて、リセットライン１５は異常と判定し、Ｓ５４０に進む。
【００５１】
そして、メインマイコン１１は、Ｓ５４０にて、サブマイコン１２へ、リセットライン１５の診断結果（即ち、正常か異常かの判定結果）を送信する。
また、メインマイコン１１は、サブマイコン１２が後述するＳ６４０で送信してくるリセットライン１６の診断結果を受信すると、Ｓ５５０にて、その受信したリセットライン１６の診断結果と、当該メインマイコン１１によるリセットライン１５の診断結果とを、ＲＯＭ２４内のソフトウェアに対して公開する。具体的には、ソフトウェアが参照する（実際にはＣＰＵ２３がソフトウェアを実行することで参照する）ＲＡＭ２５の診断結果格納用領域に、最新の診断結果を更新記憶する（上書きする）。そして、メインマイコン１１において、診断結果を参照するソフトウェアは、リセットライン１５，１６の何れかが異常である場合には、所定のフェールセーフ処理が実施されるように構成されている。フェールセーフ処理としては、例えば、アクチュエータ１３の駆動を中止したり、アクチュエータ１３への電源供給経路を遮断したり、警告灯を点灯させたりする処理等が考えられる。
【００５２】
一方、サブマイコン１２も、上記Ｓ２５０の処理を行った後、上記Ｓ４１０，Ｓ４２０の処理を含む他の処理と例えばマルチタスクのかたちで並行して、Ｓ６００〜Ｓ６５０の処理を行う。Ｓ６００〜Ｓ６５０の処理は、メインマイコン１１で行われるＳ５００〜Ｓ５５０の処理と同様の処理である。
【００５３】
サブマイコン１２は、Ｓ６００では、上記Ｓ２２０でメインマイコン１１へ時刻情報（Ｔｓ）を送信してから、その時刻情報が示す時間Ｔｓに所定の余裕時間Ｔβを加えた待機時間Ｔｓβ（＝Ｔｓ＋Ｔβ）が経過するまで待つ。尚、余裕時間Ｔβは、待機時間Ｔｓβが経過する時が、メインマイコン１１がＳ３２０で診断用パルスを出力する時よりも後になる範囲で、できるだけ短い時間に設定されている。
【００５４】
そして、サブマイコン１２は、上記待機時間Ｔｓβが経過したと判断すると、メインマイコン１１からの診断用パルスの出力予定時刻（Ｓ２２０でメインマイコン１１に指示した出力予定時刻でもある）が経過したと判断し、Ｓ６１０に進む。サブマイコン１２は、Ｓ６１０にて、インプットキャプチャ部３８のレジスタ３８ａからエッジ検出履歴を読み出し、そのエッジ検出履歴から、リセット端子３０に有効エッジが入力されたか否かを判定する。つまり、リセット端子３０にメインマイコン１１からの診断用パルスが入力されたか否かを判定する。具体的には、Ｓ２５０で“０”にクリアしておいたエッジ検出履歴が“１”であれば、リセット端子３０に診断用パルスが入力されたと判定する。
【００５５】
サブマイコン１２は、Ｓ６１０にて、リセット端子３０に診断用パルスが入力されたと判定した場合には、Ｓ６２０にて、リセットライン１６は正常と判定し、Ｓ６４０に進む。また、サブマイコン１２は、Ｓ６１０にて、リセット端子３０に診断用パルスが入力されないと判定した場合には、Ｓ６３０にて、リセットライン１６は異常と判定し、Ｓ６４０に進む。
【００５６】
そして、サブマイコン１２は、Ｓ６４０にて、メインマイコン１１へ、リセットライン１６の診断結果（即ち、正常か異常かの判定結果）を送信する。
また、サブマイコン１２は、メインマイコン１１が前述のＳ５４０で送信してくるリセットライン１５の診断結果を受信すると、Ｓ６５０にて、その受信したリセットライン１５の診断結果と、当該サブマイコン１２によるリセットライン１６の診断結果とを、ＲＯＭ３４内のソフトウェアに対して公開する。具体的には、ソフトウェアが参照する（実際にはＣＰＵ３３がソフトウェアを実行することで参照する）ＲＡＭ３５の診断結果格納用領域に、最新の診断結果を更新記憶する。そして、サブマイコン１２においても、診断結果を参照するソフトウェアは、リセットライン１５，１６の何れかが異常である場合には、所定のフェールセーフ処理が実施されるように構成されている。
【００５７】
図３の処理では、メインマイコン１１側のＳ１５０，Ｓ１６０，Ｓ５００〜Ｓ５４０と、サブマイコン１２側のＳ２４０，Ｓ４１０，Ｓ４２０との各処理が、メインマイコン１１のリセットライン１５を診断するための処理になっている。
【００５８】
また、サブマイコン１２側のＳ２２０，Ｓ２５０，Ｓ６００〜Ｓ６４０と、メインマイコン１１側のＳ１４０，Ｓ３１０，Ｓ３２０との各処理が、サブマイコン１２のリセットライン１６を診断するための処理になっている。
【００５９】
ここで、以下では、メインマイコン１１の方を、監視される側の監視対象マイコンとし、サブマイコン１２の方を、監視する側の監視マイコン（監視手段に相当）として、ＥＣＵ１の作用を説明する。
【００６０】
メインマイコン１１は、サブマイコン１２がＳ４２０の処理で出力した診断用パルスがリセット端子２０に入力されたか否かを、Ｓ５１０の処理で判定する。
そして、リセットライン１５が正常であれば、サブマイコン１２からの診断用パルスがリセット端子２０に入力されるため、メインマイコン１１は、リセット端子２０に診断用パルスが入力されたと判定して（Ｓ５１０：ＹＥＳ）、リセットライン１５は正常と判定することとなる（Ｓ５２０）。この場合、診断用パルスのハイ時間は有効時間Ｔｅ未満であるため、メインマイコン１１は、リセットされずに動作する。
【００６１】
また、リセットライン１５に異常が生じていると、サブマイコン１２からの診断用パルスがリセット端子２０に入力されないため、メインマイコン１１は、リセット端子２０に診断用パルスが入力されないと判定して（Ｓ５１０：ＮＯ）、リセットライン１５は異常と判定することとなる（Ｓ５３０）。
【００６２】
このようにＥＣＵ１によれば、メインマイコン１１をリセットしてしまうことなく、メインマイコン１１にて、リセットライン１５の異常を検出することができる。このため、リセットライン１５の異常を、メインマイコン１１の動作中において、任意のタイミングで（例えば一定時間毎や所定のイベントの発生時毎に）検出することができるようになる。
【００６３】
比較例として、例えばＥＣＵの起動時や動作終了時において、マイコンを故意にリセットしてみることにより、リセットラインの正常／異常を診断することも考えられるが、そのように構成すると、ＥＣＵの起動時間や動作終了時間が長くなってしまう。これに対して、本実施形態のＥＣＵ１によれば、通常動作中にリセットラインの診断を実施することができるため有利である。
【００６４】
また、メインマイコン１１は、Ｓ１５０，Ｓ５００〜Ｓ５３０の処理により、診断用パルスが、サブマイコン１２からの当該診断用パルスの出力予定時刻において、リセット端子２０に入力されたか否かを判定しており、診断用パルスが入力されないと判定した場合に、リセットライン１５が異常と判定している。
【００６５】
このため、メインマイコン１１において、サブマイコン１２から出力された診断用パルスがリセット端子２０に入力されたか否かを、精度良く判定することができ、延いては、リセットライン１５の正常／異常を精度良く判定することができる。例えば、サブマイコン１２から診断用パルスが出力されるはずのない期間において、リセット端子２０に診断用パルスが入力されないからといって、リセットライン１５が異常と誤判定してしまうことを防止することができる。また、サブマイコン１２から診断用パルスが出力されるはずのない期間において、リセット端子２０に診断用パルスと同様のノイズが入力されてしまった場合でも、リセット端子２０にサブマイコン１２からの診断用パルスが入力されたと誤判定（延いては、リセットライン１５が正常と誤判定）してしまうことを防止することができる。
【００６６】
尚、メインマイコン１１は、例えば、サブマイコン１２からの診断用パルスの出力予定時刻が到来したと判断した時に、リセット端子２０への入力信号を読み取って、その入力信号がハイであれば、サブマイコン１２からの診断用パルスがリセット端子２０に入力された、と判定するように構成することもできる。そして、その場合、メインマイコン１１は、例えば、Ｓ１６０でサブマイコン１２へ時刻情報（Ｔｍ）を送信してから、その時刻情報が示す時間Ｔｍに、サブマイコン１２との間の通信遅れ時間や、サブマイコン１２側で診断用パルスの出力時刻を設定するまでの処理遅れ時間等加えた時間が経過した時に、診断用パルスの出力予定時刻が到来したと判断することができる。但し、このように構成すると、リセット端子２０に入力された診断用パルスを見逃してしまう可能性が生じる。
【００６７】
そこで、メインマイコン１１は、Ｓ１５０，Ｓ５００〜Ｓ５３０の処理では、診断用パルスがサブマイコン１２からの当該診断用パルスの出力予定時刻においてリセット端子２０に入力されたか否かとして、診断用パルスが出力予定時刻を含む所定の期間においてリセット端子２０に入力されたか否か、を判定している。その所定の期間とは、Ｓ１５０の処理でエッジ検出履歴をクリアした時から、Ｓ５１０でレジスタ２８ａからエッジ検出履歴を読み出す時までの期間である。つまり、その期間中に、インプットキャプチャ部２８によってリセット端子２０への有効エッジが検出された場合に、診断用パルスが出力予定時刻においてリセット端子２０に入力された、と判定するようになっている。このようにすることで、メインマイコン１１は、サブマイコン１２からリセット端子２０に入力された診断用パルスを見逃してしまうことがない。
【００６８】
また、メインマイコン１１は、サブマイコン１２に対して、診断用パルスの出力予定時刻を指示し（Ｓ１６０）、サブマイコン１２は、その指示された出力予定時刻になると診断用パルスを出力するようになっている（Ｓ２４０，Ｓ４１０，Ｓ４２０）。そして、メインマイコン１１は、サブマイコン１２に指示した出力予定時刻を、サブマイコン１２からの診断用パルスの出力予定時刻として、診断用パルスが入力されたか否かの判定を行っている。
【００６９】
このため、メインマイコン１１は、自身における処理負荷が小さくなる時を狙って、サブマイコン１２に診断用パルスを出力してもらうことができ、延いては、リセットライン１５が正常か否かを判定するための処理（Ｓ１５０，Ｓ５００〜Ｓ５３０）を、自身の処理負荷が小さい場合に実施することができるようになる。
【００７０】
尚、サブマイコン１２の方を、監視される側の監視対象マイコンとし、メインマイコン１１の方を、監視する側の監視マイコン（監視手段に相当）とした場合、サブマイコン１２側のＳ２２０の処理は、メインマイコン１１側のＳ１６０の処理に相当し、メインマイコン１１側のＳ１４０，Ｓ３１０，Ｓ３２０の各処理は、サブマイコン１２側のＳ２４０，Ｓ４１０，Ｓ４２０の各処理に相当している。そして、サブマイコン１２側のＳ２５０，Ｓ６００〜Ｓ６５０の各処理は、メインマイコン１１側のＳ１５０，Ｓ５００〜Ｓ５５０の各処理に相当している。このため、ＥＣＵ１の作用に関する上記説明の内容は、サブマイコン１２の方を監視対象マイコンとし、メインマイコン１１の方を監視マイコンとしても、同様に言えることである。
【００７１】
［第２実施形態］
次に、第２実施形態のＥＣＵについて説明するが、ＥＣＵの符号としては、第１実施形態と同じ“１”を用いる。また、第１実施形態と同様の構成要素や処理についても、第１実施形態と同じ符号を用いる。そして、このことは、後述する他の実施形態についても同様である。
【００７２】
第２実施形態のＥＣＵ１は、第１実施形態のＥＣＵ１と比較すると、各マイコン１１，１２が、図３に示した処理に代えて、図４の第１処理と図５の第２処理とを行う点が異なる。
【００７３】
図４の第１処理は、他のマイコンを監視する側の監視マイコンが行う処理であり、図５の第２処理は、監視される側の監視対象マイコンが行う処理である。
前述の通り、ＥＣＵ１において、メインマイコン１１とサブマイコン１２は、互いに監視し合うため、監視マイコンと監視対象マイコンとの双方として機能する。しかし、以下では、分かりやすくするために、サブマイコン１２の方を監視マイコンとし、メインマイコン１１の方を監視対象マイコンとして説明する。このため、サブマイコン１２が図４の第１処理を行い、メインマイコン１１が図５の第２処理を行うものとして、各処理及びＥＣＵ１の作用を説明する。
【００７４】
サブマイコン１２は、図４の第１処理を、例えば一定時間毎に実行する。尚、他の例として、サブマイコン１２は、例えば所定のイベントの発生時毎に、図４の第１処理を実行しても良い。
【００７５】
図４に示すように、サブマイコン１２は、第１処理を開始すると、Ｓ７１０にて、監視対象のメインマイコン１１から、リセットライン１５の異常が既に通知されているか否かを判定する。具体的には、メインマイコン１１から送信されるリセットライン１５の診断結果のうち、リセットライン１５の異常を示す診断結果を既に受信しているか否かを判定する。尚、リセットライン１５の診断結果は、後述する図５のＳ８７０でメインマイコン１１からサブマイコン１２に送信される。
【００７６】
そして、サブマイコン１２は、リセットライン１５の異常が既に通知されていると判定した場合には（Ｓ７１０：ＹＥＳ）、そのまま当該第１処理を終了する。
また、サブマイコン１２は、リセットライン１５の異常が通知されていないと判定した場合には（Ｓ７１０：ＮＯ）、リセットライン１５の診断を行うために、Ｓ７２０に進む。
【００７７】
サブマイコン１２は、Ｓ７２０では、メインマイコン１１へ、出力端子３１からの診断用パルスの出力予定時刻を通知する情報として、出力端子３１から診断用パルスを出力する時までの時間Ｔｏを示す出力通知情報を送信する。
【００７８】
そして、サブマイコン１２は、次のＳ７３０にて、メインマイコン１１に通知した出力予定時刻まで待つ。具体的には、Ｓ７２０の処理を行ってから、メインマイコン１１に送信した出力通知情報が示す時間Ｔｏだけ待つ。
【００７９】
サブマイコン１２は、出力予定時刻になったと判断すると、Ｓ７４０にて、出力端子３１から診断用パルスを出力する。
その後、サブマイコン１２は、Ｓ７５０にて、メインマイコン１１が送信してくるリセットライン１５の診断結果を受信し、その受信した診断結果を、前述したＲＡＭ３５の診断結果格納用領域に更新記憶する。そして、その後、サブマイコン１２は、当該第１処理を終了する。
【００８０】
尚、ＲＡＭ３５の診断結果格納用領域に記憶されたリセットライン１５の診断結果（メインマイコン１１からの診断結果）は、次回の上記Ｓ７１０で参照される。また、第１実施形態と同様に、サブマイコン１２は、当該サブマイコン１２が判定したリセットライン１６の診断結果も、ＲＡＭ３５の診断結果格納用領域に更新記憶する。
【００８１】
一方、メインマイコン１１は、図５の第２処理を、例えばサブマイコン１２との通信を実施する毎に実行する。
図５に示すように、メインマイコン１１は、第２処理を開始すると、Ｓ８１０にて、サブマイコン１２からの出力通知情報を受信したか否かを判定する。
【００８２】
そして、メインマイコン１１は、出力通知情報を受信していないと判定した場合には（Ｓ８１０：ＮＯ）、そのまま当該第２処理を終了するが、出力通知情報を受信したと判定した場合には（Ｓ８１０：ＹＥＳ）、Ｓ８２０に進む。
【００８３】
メインマイコン１１は、Ｓ８２０では、インプットキャプチャ部２８のレジスタ２８ａ内のエッジ検出履歴（フラグ）を“０”にクリアする。
そして、メインマイコン１１は、次のＳ８３０にて、出力通知情報によって通知された出力予定時刻が過ぎるまで待つ。具体的には、出力通知情報を受信してから、その出力通知情報が示す時間Ｔｏが経過するまで待つ。尚、他の例として、Ｓ８３０では、出力通知情報を受信してから、上記時間Ｔｏに所定の余裕時間Ｔγを加えた時間（Ｔｏ＋Ｔγ）が経過するまで待つようにしても良い。
【００８４】
そして、メインマイコン１１は、出力予定時刻が過ぎたと判断すると、Ｓ８４０にて、インプットキャプチャ部２８のレジスタ２８ａからエッジ検出履歴を読み出し、そのエッジ検出履歴から、リセット端子２０に有効エッジが入力されたか否かを判定する。つまり、サブマイコン１２が図４のＳ７４０で出力した診断パルスが、リセット端子２０に入力されたか否かを判定する。具体的には、Ｓ８２０で“０”にクリアしておいたエッジ検出履歴が“１”であれば、リセット端子２０に診断用パルスが入力されたと判定する。
【００８５】
メインマイコン１１は、Ｓ８４０にて、リセット端子２０に診断用パルスが入力されたと判定した場合には、Ｓ８５０にて、リセットライン１５は正常と判定し、Ｓ８７０に進む。また、メインマイコン１１は、Ｓ８４０にて、リセット端子２０に診断用パルスが入力されないと判定した場合には、Ｓ８６０にて、リセットライン１５は異常と判定し、Ｓ８７０に進む。
【００８６】
そして、メインマイコン１１は、Ｓ８７０にて、サブマイコン１２へ、リセットライン１５の診断結果（Ｓ８５０又はＳ８６０の判定結果）を送信し、その後、当該第２処理を終了する。
【００８７】
以上のような第２実施形態のＥＣＵ１では、サブマイコン１２が、監視対象のメインマイコン１１に、診断用パルスの出力予定時刻を通知して（Ｓ７２０）、その通知した出力予定時刻になると診断用パルスを出力するようになっている（Ｓ７３０，Ｓ７４０）。そして、メインマイコン１１は、サブマイコン１２から通知された出力予定時刻を用いて、診断用パルスがリセット端子２０に入力されたか否かの判定を行っている（Ｓ８２０〜Ｓ８６０）。
【００８８】
このため、監視する側のサブマイコン１２は、自身における処理負荷が小さくなる時を狙って、監視対象のメインマイコン１１に診断用パルスを出力することができる。
また、メインマイコン１１は、Ｓ８２０〜Ｓ８６０の処理により、第１実施形態と同様に、診断用パルスが、サブマイコン１２からの当該診断用パルスの出力予定時刻において、リセット端子２０に入力されたか否かを判定している。よって、第１実施形態と同様に、メインマイコン１１は、サブマイコン１２から出力された診断用パルスがリセット端子２０に入力されたか否かを、精度良く判定することができる。
【００８９】
尚、メインマイコン１１は、以下のようにして、診断用パルスの入力有無を判定するように構成しても良い。例えば、メインマイコン１１は、サブマイコン１２からの出力予定情報を受信してから、その出力予定情報が示す時間Ｔｏが経過した時、あるいは、その時間Ｔｏよりもサブマイコン１２との間の通信遅れ時間だけ短い時間が経過した時に、診断用パルスの出力予定時刻が到来したと判断する。そして、メインマイコン１１は、出力予定時刻が到来したと判断すると、リセット端子２０への入力信号を読み取り、その入力信号がハイであれば、サブマイコン１２からの診断用パルスがリセット端子２０に入力された、と判定するように構成することもできる。
【００９０】
但し、このように構成すると、リセット端子２０に入力された診断用パルスを見逃してしまう可能性が生じる。
そこで、本第２実施形態においても、メインマイコン１１は、Ｓ８２０〜Ｓ８６０の処理では、診断用パルスがサブマイコン１２からの当該診断用パルスの出力予定時刻においてリセット端子２０に入力されたか否かとして、診断用パルスが出力予定時刻を含む所定の期間においてリセット端子２０に入力されたか否か、を判定している。その所定の期間とは、Ｓ８２０の処理でエッジ検出履歴をクリアした時から、Ｓ８４０でレジスタ２８ａからエッジ検出履歴を読み出す時までの期間である。そして、このようにすることで、メインマイコン１１は、サブマイコン１２からリセット端子２０に入力された診断用パルスを見逃してしまうことがない。
【００９１】
また、本第２実施形態のＥＣＵ１において、メインマイコン１１は、リセットライン１５が異常であると判定したことを、リセットライン１５の診断結果として、サブマイコン１２に通知する（Ｓ８７０）。そして、サブマイコン１２は、メインマイコン１１から、リセットライン１５の異常が既に通知されている場合には（Ｓ７１０：ＹＥＳ）、図４の第１処理におけるＳ７２０以降を実施せず、その結果、診断用パルスを出力しないようになっている。このため、メインマイコン１１によってリセットライン１５が異常であると判定された後は、サブマイコン１２がメインマイコン１１に診断用パルスを出力しなくなり、延いては、サブマイコン１２における処理負荷を低減することができる。
【００９２】
また、サブマイコン１２は、メインマイコン１１から、リセットライン１５の異常が既に通知されている場合には（Ｓ７１０：ＹＥＳ）、メインマイコン１１への出力予定情報の送信もしない。このため、メインマイコン１１は、図５のＳ８６０でリセットライン１５が異常と判定した場合、その後は、診断用パルスがリセット端子２０に入力されたか否かの判定（以下、診断用パルスの入力有無判定ともいう）と診断結果の送信とを行う処理（図５におけるＳ８２０〜Ｓ８７０の処理）を実施しなくなる。よって、メインマイコン１１における処理負荷も低減することができる。
【００９３】
本第２実施形態において、サブマイコン１２が、図４のＳ７１０で「ＹＥＳ」と判定して、図４におけるＳ７２０以降を実施しないことは、当該サブマイコン１２が診断用パルスを出力しないようにすることと、メインマイコン１１が診断用パルスの入力有無判定を実施しないようにすることとの、両方として機能している。
【００９４】
尚、第２実施形態のＥＣＵ１の作用に関する上記説明の内容は、サブマイコン１２の方を監視対象マイコンとし、メインマイコン１１の方を監視マイコンとしても、同様に言えることである。
【００９５】
［第３実施形態］
第３実施形態のＥＣＵ１は、第１実施形態のＥＣＵ１と比較すると、各マイコン１１，１２が、図６のパルス出力禁止処理と図７の判定禁止処理とを、更に行う点が異なる。
【００９６】
図６の処理は、他のマイコンを監視する側の監視マイコンが行う処理であり、図７の処理は、監視される側の監視対象マイコンが行う処理である。
前述の通り、メインマイコン１１とサブマイコン１２は、監視マイコンと監視対象マイコンとの双方として機能するが、以下では、分かりやすくするために、サブマイコン１２の方を監視マイコンとし、メインマイコン１１の方を監視対象マイコンとして説明する。このため、サブマイコン１２が図６の処理を行い、メインマイコン１１が図７の処理を行うものとして、各処理及びＥＣＵ１の作用を説明する。
【００９７】
サブマイコン１２は、図６のパルス出力禁止処理を、例えば一定時間毎に実行する。尚、他の例として、サブマイコン１２は、例えばリセット診断準備モード又はリセット診断実行モードになった時毎に、図６のパルス出力禁止処理を実行しても良い。
【００９８】
図６に示すように、サブマイコン１２は、パルス出力禁止処理を開始すると、Ｓ９１０にて、監視対象のメインマイコン１１から、リセットライン１５の異常が既に通知されているか否かを判定する。具体的には、メインマイコン１１から送信されるリセットライン１５の診断結果のうち、リセットライン１５の異常を示す診断結果を既に受信しているか否かを判定する。尚、リセットライン１５の診断結果は、図３のＳ５４０でメインマイコン１１からサブマイコン１２に送信される。
【００９９】
そして、サブマイコン１２は、リセットライン１５の異常が通知されていないと判定した場合には（Ｓ９１０：ＮＯ）、そのまま当該パルス出力禁止処理を終了する。
また、サブマイコン１２は、リセットライン１５の異常が既に通知されていると判定した場合には（Ｓ９１０：ＹＥＳ）、Ｓ９２０にて、出力端子３１からの診断用パルスの出力を、実施しないようにする処理を行い、その後、当該パルス出力禁止処理を終了する。尚、Ｓ９２０で行う処理は、例えば、図３におけるＳ２４０の処理（即ち、診断用パルスの出力時刻を設定する処理）を実施しないようにする処理で良いが、他の例として、例えば、図３におけるＳ４２０の処理（即ち、診断用パルスを出力する処理）自体を実施しないようにする処理でも良い。
【０１００】
一方、メインマイコン１１は、図７の判定禁止処理を、例えば一定時間毎に実行する。尚、他の例として、メインマイコン１１は、例えばリセット診断準備モード又はリセット診断実行モードになった時毎に、図７の判定禁止処理を実行しても良い。
【０１０１】
図７に示すように、メインマイコン１１は、判定禁止処理を開始すると、Ｓ１０１０にて、リセットライン１５が異常であると既に判定しているか否かを判定し、リセットライン１５が異常であると判定していない場合には、そのまま当該判定禁止処理を終了する。
【０１０２】
また、メインマイコン１１は、リセットライン１５が異常であると既に判定している場合には（Ｓ１０１０：ＹＥＳ）、Ｓ１０２０にて、診断用パルスの入力有無判定を実施しないようにする処理を行い、その後、当該判定禁止処理を終了する。尚、Ｓ１０２０で行う処理は、例えば、図３におけるＳ５００〜Ｓ５４０の処理を実施しないようにする処理で良いが、更に図３におけるＳ１５０の処理（エッジ検出履歴をクリアする処理）を実施しないようにする処理を加えても良い。
【０１０３】
以上のような第３実施形態のＥＣＵ１によっても、第２実施形態のＥＣＵ１と同様に、メインマイコン１１によってリセットライン１５が異常であると判定された後は、サブマイコン１２がメインマイコン１１に診断用パルスを出力しなくなり（Ｓ９２０）、メインマイコン１１も診断用パルスの入力有無判定を実施しなくなる（Ｓ１０２０）。よって、両マイコン１１，１２の処理負荷を低減することができる。
【０１０４】
尚、第１の変形例として、メインマイコン１１は、図７のＳ１０２０では、当該メインマイコン１１が診断用パルスの入力有無判定を実施しないようにする処理に加えて、サブマイコン１２が診断用パルスを出力しないようにするための処理を行っても良い。その処理としては、例えば、図３のＳ１６０にて、サブマイコン１２へ、前述の時刻情報の代わりに、リセット診断実行モードへ移行させるが、図３におけるＳ２４０，Ｓ４１０，Ｓ４２０の処理（即ち、診断用パルスを出力するための処理）は行わないことを指示する情報を、送信するように変更する処理を行えば良い。この変形例の場合、サブマイコン１２は、図６の処理を実行しなくても良くなる。
【０１０５】
また、第２の変形例として、サブマイコン１２は、図６のＳ９２０では、当該サブマイコン１２が診断用パルスの出力を実施しないようにする処理に加えて、メインマイコン１１が診断用パルスの入力有無判定を実施しないようにするための処理を行っても良い。その処理としては、例えば、図３のＳ２２０にて、メインマイコン１１へ、前述の時刻情報に加えて、Ｓ１５０，Ｓ５００〜Ｓ５４０の処理は行わないことを指示する情報を、送信するように変更する処理を行えば良い。この変形例の場合、メインマイコン１１は、図７の処理を実行しなくても良くなる。
【０１０６】
一方、第３実施形態のＥＣＵ１の作用に関する上記説明の内容と、上記各変形例の内容は、サブマイコン１２の方を監視対象マイコンとし、メインマイコン１１の方を監視マイコンとしても、同様に言えることである。
【０１０７】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述した数値も一例である。
例えば、第１，第３実施形態において、メインマイコン１１は、診断用パルスの入力有無判定のために、図３のＳ５００〜Ｓ５３０の処理に代えて、以下の処理を行っても良い。
【０１０８】
まず、メインマイコン１１は、リセット端子２０への入力信号に有効エッジが生じたことをインプットキャプチャ部２８が検出した時に発生する割り込み（いわゆるインプットキャプチャ割り込み）の処理にて、現在の時刻が、サブマイコン１２からの診断用パルスの出力予定時刻であるか否かを判定する。例えば、現在の時刻が、出力予定時刻として許容できる所定の範囲に入っていれば、現在の時刻が出力予定時刻であると判定することができる。そして、現在の時刻が出力予定時刻であるいうことは、診断用パルスが、それの出力予定時刻においてリセット端子２０に入力されたということである。このため、メインマイコン１１は、現在の時刻が出力予定時刻であると判定した場合には、リセットライン１５が正常と判定する。また、メインマイコン１１は、図３のＳ１６０でサブマイコン１２へ時刻情報を送信してから、その時刻情報が示す時間Ｔｍよりも長い制限時間が経過しても、インプットキャプチャ割り込みが発生しない場合には、診断用パルスがリセット端子２０に入力されないと判定し、延いては、リセットライン１５が異常と判定する。
【０１０９】
そして、このような判定方法の変形は、第１，第３実施形態におけるサブマイコン１２にも適用することができ、第２実施形態の各マイコン１１，１２にも適用することができる。
【０１１０】
また、第１，第３実施形態において、メインマイコン１１とサブマイコン１２とが時刻を共有しているのであれば、各マイコン１１，１２が行う図３の処理のうち、相手に時刻情報を送信する処理を省くことができる。その場合、各マイコン１１，１２は、例えば、一定時間毎に、Ｓ１５０，Ｓ２５０の処理を行うと共に、その後すぐにＳ３２０，Ｓ４２０の処理を行い、更にその後、Ｓ５１０〜Ｓ５５０，Ｓ６１０〜Ｓ６５０の処理を行うように構成することができる。そして、このような変形は、第２実施形態の各マイコン１１，１２にも適用することができる。
【０１１１】
また、上記各実施形態において、各マイコン１１，１２がエッジ検出履歴をクリアするタイミングは、相手のマイコンが診断用パルスを出力するタイミングよりも前であれば、前述したＳ１５０，Ｓ２５０，Ｓ８２０のタイミング以外でも良い。但し、エッジ検出履歴をクリアするタイミングは、相手のマイコンから診断用パルスが出力されるタイミングにできるだけ近い方が好ましい。
【０１１２】
また、上記各実施形態の各マイコン１１，１２において、リセット端子２０，３０への入力信号にエッジが生じたことを検出するために、インプットキャプチャ部２８，３８とは別のラッチ回路を設けても良い。
【０１１３】
また、第１，第３実施形態において、例えばメインマイコン１１は、図３におけるＳ５１０の判定により、リセット端子２０に診断用パルスが入力されないと判定した連続回数を計数し、その回数が所定値に達した場合に、リセットライン１５が異常と判定しても良い。そして、このような変形は、第１，第３実施形態におけるサブマイコン１２にも適用することができ、第２実施形態の各マイコン１１，１２にも適用することができる。
【０１１４】
また、上記各実施形態において、各マイコン１１，１２は、リセットライン１５，１６の診断結果を、書き換え可能な不揮発性メモリに記憶しても良い。
また、上記各実施形態のＥＣＵ１において、例えば、メインマイコン１１がサブマイコン１２の動作監視及びリセットを実施しない構成にすることもできる。また例えば、サブマイコン１２の代わりに、サブマイコン１２と同様の役割を果たす監視回路を設けても良い。その場合、メインマイコン１１は、監視回路の動作を監視しなくても良い。
【０１１５】
一方、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を、課題を解決できる限りにおいて省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。
【０１１６】
尚、特許請求の範囲に記載した文言によって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述したＥＣＵの他、当該ＥＣＵを構成要素とするシステム、当該ＥＣＵのマイコンが実行するプログラム、このプログラムを記録した媒体、リセットラインの診断方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【０１１７】
１１…メインマイコン、１２…サブマイコン、１５，１６…リセットライン、２０，３０…リセット端子、２３，３３…ＣＰＵ、２６，３６…リセット回路、２７，３７…有効時間生成回路
【図１】
2015072568.tif 000003
【図２】
2015072568.tif 000004
【図３】
2015072568.tif 000005
【図４】
2015072568.tif 000006
【図５】
2015072568.tif 000007
【図６】
2015072568.tif 000008
【図７】
2015072568.tif 000009