(57)【要約】【課題】電子制御装置にて、マイコンが、給電手段が異常と誤判定するのを防止する。【解決手段】電子制御装置では、ＩＧＳＷ（イグニッションスイッチ）がオンされると、電源電圧が供給されてマイコンが起動し、マイコンは、給電用のリレーをオンさせるための信号を駆動回路に出力することにより、ＩＧＳＷのオフ後も上記リレーがオンし続けて電源供給が続くようにする。そしてマイコンは、ＩＧＳＷのオフの検出後に、フラッシュメモリ内の判定用フラグをオンにし、他の処理を終えると上記信号の出力を止めて動作を停止する。またマイコンは、起動した際に、判定用フラグがオンでないこと（Ｓ３３０：ＮＯ）を条件に上記リレーが異常と判断する（Ｓ３６０）が、ＩＧＳＷのオン中にて、リセットされると判断すると、リセット履歴をオンする。そしてマイコンは、起動した際に、リセット履歴がオンならば（Ｓ３４５：ＹＥＳ）、上記リレーが異常と判断しない。【選択図】図４
2014048070.tif 000002
【特許請求の範囲】
【請求項１】
起動用給電条件と動作継続用給電条件との何れかが成立している場合に、外部電源（１３）からの電源電圧が供給される給電部（１７）と、
前記給電部に前記電源電圧が供給されると、該電源電圧を電力源として動作するマイコン（３１）と、を備え、
前記動作継続用給電条件は、動作状態の前記マイコンから給電要求信号が出力されることであり、
前記マイコンは、動作を開始すると、前記給電要求信号が入力されることで前記給電部に前記電源電圧を供給する給電手段（１５，４５）に対して、前記給電要求信号を出力することを開始し、前記起動用給電条件が非成立になったことを検知した後で特定の処理を終了すると、前記給電要求信号の出力を停止して動作を停止するようになっている、電子制御装置（１１）であって、
前記給電手段の異常の有無を判定するために用いられる判定用情報を記憶するための記憶部として、前記給電部に前記電源電圧が供給されるか否かに拘わらずデータを保存可能な判定用情報記憶部（６３）を備え、
前記マイコンは、前記起動用給電条件が非成立になったことを検知してから前記給電要求信号の出力を停止するまでの間に、前記判定用情報を前記判定用情報記憶部に書き込む第１書込処理（Ｓ２７０，Ｓ２８０）を行い、
前記マイコンは、動作を開始した後、前記判定用情報記憶部に前記判定用情報が記憶されているか否かを判定して、前記判定用情報が記憶されていないことを条件に前記給電手段が異常であると判断する、異常検出処理（Ｓ３３０，Ｓ３５０〜Ｓ３６０）を行い、また、少なくとも前記判定用情報記憶部に前記判定用情報が記憶されていると判定した場合には、前記判定用情報記憶部に前記判定用情報とは異なる情報を書き込む第２書込処理（Ｓ２２０，Ｓ２４０）も行い、
更に、当該電子制御装置は、前記起動用給電条件が成立している場合における前記マイコンのリセットを検出して、前記マイコンがリセットされたことを示すリセット発生情報をリセット記憶部（６５）に記憶するリセット検出手段（３１，Ｓ４１０，Ｓ４２０，Ｓ５２０，Ｓ５３０，Ｓ６１０〜Ｓ６３０）を備え、
前記マイコンは、動作を開始した際に、前記リセット記憶部に前記リセット発生情報が記憶されていた場合には、前記異常検出処理により前記給電手段が異常であると判断することを禁止する（Ｓ３４５）ようになっていること、
を特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記マイコンは、前記起動用給電条件が成立している場合に所定のリセット実施条件が成立すると、当該マイコンをリセットするためのリセット用処理（Ｓ４４０，Ｓ５４０）を行うようになっており、
前記リセット検出手段（３１，Ｓ４１０，Ｓ４２０，Ｓ５２０，Ｓ５３０）は、前記マイコンのリセットとして、前記マイコンにより前記リセット用処理が行われたことを検出すること、
を特徴とする電子制御装置。
【請求項３】
請求項２に記載の電子制御装置において、
前記リセット検出手段は、前記マイコンによって実現され、前記マイコンは、前記リセット用処理（Ｓ４４０，Ｓ５４０）を行う場合に、前記リセット発生情報を前記リセット記憶部に記憶する（Ｓ４１０，Ｓ４２０，Ｓ５２０，Ｓ５３０）こと、
を特徴とする電子制御装置。
【請求項４】
請求項２又は請求項３に記載の電子制御装置において、
前記リセット実施条件は、前記マイコンが実行対象のプログラムを書き換える処理を行ったという条件と、前記マイコンが当該マイコンの異常を検出したという条件との、少なくとも一方であること、
を特徴とする電子制御装置。
【請求項５】
請求項１ないし請求項４の何れか１項に記載の電子制御装置において、
前記給電部に供給される前記電源電圧から、前記マイコンを動作させるための一定の動作用電圧を生成して前記マイコンに出力する電源回路（４１）と、
前記電源回路から出力される前記動作用電圧が、前記マイコンが動作不能となる電圧値よりも高い所定のリセット実施閾値まで低下したことを検知すると、前記マイコンをリセットするリセット制御回路（４７）と、を備え、
前記リセット記憶部（６５）は、前記給電部に前記電源電圧が供給されるか否かに拘わらずデータを保存可能な記憶部であり、
前記リセット検出手段（３１，Ｓ６１０〜Ｓ６３０）は、前記マイコンのリセットとして、前記起動用給電条件が成立している場合における前記リセット制御回路による前記マイコンのリセットを検出すること、
を特徴とする電子制御装置。
【請求項６】
請求項５に記載の電子制御装置において、
前記リセット制御回路（４７）は、前記マイコンをリセットする前の時点であって、前記電源回路から出力される前記動作用電圧が前記リセット実施閾値よりも高いリセット予告閾値まで低下したことを検知した時点で、前記マイコンにリセット予告信号を出力するようになっており、
前記リセット検出手段は、前記マイコンによって実現され、前記マイコンは、前記起動用給電条件が成立している場合に前記リセット予告信号が入力されたことを検出すると、前記リセット発生情報を前記リセット記憶部に記憶する（Ｓ６１０〜Ｓ６３０）こと、
を特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電源電圧を供給する給電手段の異常を検出する機能を備えた電子制御装置に関する。
【背景技術】
【０００２】
例えば、車両のエンジンを制御する電子制御装置としては、車両の使用者によりイグニッションスイッチ（以下、ＩＧＳＷと記載する）がオンされることと、当該装置にバッテリからの電源電圧を供給する給電用リレーをオンさせるためのリレーオン信号を、当該装置内のロジック部が出力することとの、何れかにより、バッテリからの電源電圧が供給されるものがある。つまり、この種の電子制御装置では、ＩＧＳＷのオンという起動用給電条件が成立すると、バッテリからの電源電圧が供給されて、ロジック部が動作を開始し、そのロジック部は、動作を開始すると、上記リレーオン信号の出力を開始して、当該装置への電源供給状態を維持する。そして、ロジック部は、ＩＧＳＷがオフされたことを検知すると、ＩＧＳＷがオフされてから動作を停止するまでの間に実施すべき特定の処理（例えば、データを所定のメモリに退避させるための処理等）を行い、その処理が終了すると、リレーオン信号の出力を停止して給電用リレーをオフさせることにより、当該装置への電源供給を遮断する（例えば、特許文献１参照）。
【０００３】
ここで、給電用リレーや該給電用リレーを駆動する回路等、ＩＧＳＷがオフされた後も電子制御装置に電源電圧を供給するための給電手段が故障していた場合には、ＩＧＳＷがオフされると、すぐに電子制御装置への電源供給が停止されてしまうことから、ロジック部は、ＩＧＳＷのオフ後に実施すべき特定の処理を行うことができなくなる。このため、上記給電手段の異常（故障）を検出して、何等かの処置を行うことが好ましい。
【０００４】
そこで、特許文献１には、ロジック部により上記給電手段の異常を検出するための方法として、下記（１）〜（３）の手順からなる方法が記載されている。
（１）ロジック部は、ＩＧＳＷがオフされたことを検知してからリレーオン信号の出力を停止するまで（延いては、動作を停止するまで）の間に、常時電源供給されたバックアップＲＡＭにデータＡを書き込む書込処理を行う。
【０００５】
（２）ロジック部は、動作を開始すると、バックアップＲＡＭにデータＡが書き込まれているか否かを判定し、データＡが書き込まれていれば、給電手段は正常と判定して、バックアップＲＡＭ内のデータＡをデータＢに書き換える書込処理を行う。
【０００６】
（３）ロジック部は、上記（２）の判定で、バックアップＲＡＭにデータＡが書き込まれていないと判定した場合には、給電手段が異常と判定する。
つまり、ロジック部が起動した時点において、バックアップＲＡＭにデータＡが書き込まれていない場合は、ロジック部が前回の動作停止前に上記（１）の書込処理を行わなかったということであるが、その原因は、給電手段が故障していて、ＩＧＳＷのオフ後すぐに電子制御装置への電源供給が停止されたことにある、と考えられるからである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１−１２９１３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、特許文献１に記載の異常検出方法では、給電手段が正常であっても、ＩＧＳＷのオン中（詳しくは、ＩＧＳＷがオンしている期間中）にロジック部が何等かの要因でリセットされた場合には、ロジック部が、上記（１）の書込処理を行うことなく動作を停止して再起動することとなり、その回の起動時において、バックアップＲＡＭにはデータＢが書き込まれている（即ち、データＡが書き込まれていない）こととなる。よって、起動したロジック部は、上記（２），（３）の判定にて、バックアップＲＡＭにデータＡが書き込まれていないと判定することとなり、その結果、給電手段が異常と誤判定してしまう。
【０００９】
そこで、本発明は、電子制御装置において、起動用給電条件が成立している場合にリセットされたロジック部としてのマイコンが、給電手段が異常と誤判定してしまうことを、防止することを目的としている。
【課題を解決するための手段】
【００１０】
本発明の電子制御装置は、起動用給電条件と動作継続用給電条件との何れかが成立している場合に、外部電源からの電源電圧が供給される給電部と、その給電部に電源電圧が供給されると、該電源電圧を電力源として動作するマイコンと、を備えている。また、動作継続用給電条件は、動作状態のマイコンから給電要求信号が出力されることである。
【００１１】
そして、マイコンは、動作を開始すると、当該マイコンからの給電要求信号が入力されることで前記給電部に電源電圧を供給する給電手段に対して、給電要求信号を出力することを開始し、起動用給電条件が非成立になったことを検知した後で特定の処理を終了すると、その給電要求信号の出力を停止して動作を停止する。
【００１２】
このような電子制御装置では、起動用給電条件が成立して、給電部に電源電圧が供給されると、マイコンが動作を開始して、給電要求信号を出力することとなる。よって、給電手段が正常であれば、起動用給電条件が非成立になっても、給電部には給電手段によって電源電圧が供給し続けられることとなる。そして、マイコンは、起動用給電条件が非成立になったことを検知した後で特定の処理を行い、その特定の処理が終了すると、給電要求信号の出力を停止する。すると、給電手段による給電部への電源電圧の供給が停止されて、マイコンが動作を停止することとなる。
【００１３】
また更に、この電子制御装置は、給電手段の異常の有無を判定するために用いられる判定用情報を記憶するための記憶部として、給電部に電源電圧が供給されるか否かに拘わらずデータを保存可能な判定用情報記憶部を備えている。
【００１４】
そして、マイコンは、給電手段の異常を検出するための処理として、第１書込処理、異常検出処理及び第２書込処理を行う。
即ち、マイコンは、起動用給電条件が非成立になったことを検知してから給電要求信号の出力を停止するまでの間に、「判定用情報を判定用情報記憶部に書き込む第１書込処理」を行う。そして、マイコンは、動作を開始した後、「判定用情報記憶部に判定用情報が記憶されているか否かを判定して、判定用情報が記憶されていないことを条件に給電手段が異常であると判断する、異常検出処理」を行い、また、少なくとも判定用情報記憶部に判定用情報が記憶されていると判定した場合には、「判定用情報記憶部に判定用情報とは異なる情報を書き込む第２書込処理」も行う。
【００１５】
このため、給電手段に異常が生じて、マイコンが給電要求信号を出力していても、起動用給電条件が非成立になるとすぐに給電部への電源電圧の供給が停止されてしまう状態になったならば、マイコンは、起動用給電条件が非成立になると、第１書込処理を行うことなく動作を停止することなる。そして、マイコンが次に起動した際には、判定用情報記憶部に判定用情報が記憶されていないこととなり、その結果、マイコンは、異常検出処理により、給電手段が異常であると判断することとなる。このようにして、給電手段の異常がマイコンにより検出される。
【００１６】
ここで、給電手段が正常であっても、起動用給電条件が成立している場合にマイコンがリセットされたとすると、マイコンは第１書込処理を行うことなく動作を停止して再起動することとなり、その回の起動時においても、判定用情報記憶部には判定用情報が記憶されていないこととなる。よって、起動したマイコンは、異常検出処理にて、判定用情報記憶部に判定用情報が記憶されていないと判定することとなり、その結果、給電手段が異常であるとの誤判定を招くこととなる。
【００１７】
そこで、本発明の電子制御装置には、リセット検出手段が備えられており、そのリセット検出手段は、起動用給電条件が成立している場合におけるマイコンのリセットを検出して、マイコンがリセットされたことを示すリセット発生情報をリセット記憶部に記憶する。
【００１８】
そして、マイコンは、動作を開始した際に、リセット記憶部にリセット発生情報が記憶されていた場合には、異常検出処理により給電手段が異常であると判断することを禁止するようになっている。
【００１９】
このため、起動用給電条件が成立している場合にリセットされたマイコンが、異常検出処理によって給電手段が異常であると誤判定してしまうことを、防止することができ、その結果、給電手段の故障検出精度を向上させることができる。
【００２０】
尚、マイコンは、起動用給電条件が成立している場合に所定のリセット実施条件が成立すると、当該マイコンをリセットするためのリセット用処理を行うようになっていることが考えられる。そして、その場合、リセット検出手段は、マイコンのリセットとして、マイコンによりリセット用処理が行われたことを検出するように構成することができる。このように構成すれば、マイコン自身が引き起こした該マイコンのリセット（つまり、ソフトウェアによって故意に実施したリセット）を検出して、そのリセットに起因する誤判定を防止することができる。
【００２１】
更に、その場合、リセット検出手段を、マイコンによって実現することもでき、具体的には、マイコンは、前記リセット用処理を行う場合に、リセット発生情報をリセット記憶部に記憶するようになっていれば良い。つまり、マイコンがリセット用処理を行う場合に、リセット発生情報をリセット記憶部に記憶すれば、マイコン自身が、リセット用処理が行われたことを検出してリセット発生情報をリセット記憶部に記憶することになる。
【図面の簡単な説明】
【００２２】
【図１】第１実施形態の電子制御装置（ＥＣＵ）の構成図である。
【図２】マイコンが起動してから動作を終了するまでに行う処理を表すフローチャートである。
【図３】時間同期処理を表すフローチャートである。
【図４】イニシャル処理を表すフローチャートである。
【図５】リプログ要求時処理を表すフローチャートである。
【図６】マイコン異常検出時処理を表すフローチャートである。
【図７】ＮＭＩ処理を表すフローチャートである。
【図８】アイドル処理を表すフローチャートである。
【図９】電子制御装置の作用を説明するための第１のタイムチャートである。
【図１０】電子制御装置の作用を説明するための第２のタイムチャートである。
【図１１】電子制御装置の作用を説明するための第３のタイムチャートである。
【図１２】第２実施形態の電子制御装置（ＥＣＵ）の構成図である。
【発明を実施するための形態】
【００２３】
本発明が適用された実施形態の電子制御装置（以下、ＥＣＵという）について説明する。尚、本実施形態のＥＣＵは、例えば、車両に搭載されて、該車両のエンジンを制御するものであるが、制御対象はエンジン以外でも良く、また、用途も車両用以外であっても良い。
【００２４】
［第１実施形態］
図１に示すように、第１実施形態のＥＣＵ１１は、外部電源としてのバッテリ１３の電圧（通常１２Ｖ前後であり、以下、バッテリ電圧という）Ｖｂａｔが給電用のリレーであるメインリレー１５を介して電源電圧ＶＢとして供給される端子１７を備えている。そして、その端子１７には、車両のＩＧＳＷ（イグニッションスイッチ）１９及びダイオード２１を介しても、バッテリ電圧Ｖｂａｔが電源電圧ＶＢとして供給されるようになっている。
【００２５】
更に、ＥＣＵ１１は、バッテリ電圧Ｖｂａｔがバックアップ電源として常時供給される端子２３と、一端にバッテリ電圧Ｖｂａｔが印加されるメインリレー１５のコイル１５ａの他端が接続された端子２５と、ＩＧＳＷ１９がオンすることでバッテリ電圧Ｖｂａｔが供給されるライン２６の電圧が、ＩＧＳＷ１９のオン／オフを表すＩＧＳＷ信号として入力される端子２７と、車両内に配設された通信ライン２８に接続された端子２９と、を備えている。
【００２６】
そして、ＥＣＵ１１は、当該ＥＣＵ１１の動作を司るマイコン３１と、電源制御ＩＣ３３と、入力回路３５と、通信回路３７と、を備えている。
電源制御ＩＣ３３は、端子１７に供給される電源電圧ＶＢから、マイコン３１を動作させるための一定の動作用電圧Ｖｄ（本実施形態では例えば５Ｖ）を生成して、その動作用電圧Ｖｄをマイコン３１に出力する主電源回路４１と、端子２３に供給されるバックアップ電源としてのバッテリ電圧Ｖｂａｔから、一定のスタンバイ電圧Ｖｓ（本実施形態では例えば３Ｖ）を生成して、そのスタンバイ電圧Ｖｓをマイコン３１に出力する副電源回路４３と、メインリレー１５をオンさせるための駆動回路４５と、マイコン３１をリセットする制御を行うリセット制御回路４７と、マイコン３１の動作を監視するウォッチドッグタイマ（ＷＤＴ）４９と、を備えている。
【００２７】
駆動回路４５は、端子２７から入力されるＩＧＳＷ信号がハイ（＝Ｖｂａｔ）の場合、あるいは、マイコン３１から入力される給電要求信号ＳＤがハイ（＝Ｖｄ）の場合に、端子２５をグランドライン（０Ｖのライン）に接続してコイル１５ａに電流を流すことにより、メインリレー１５をオンさせる。
【００２８】
ウォッチドッグタイマ４９は、マイコン３１が正常な場合に該マイコン３１から一定時間以内毎に出力されるクリア信号ＷＤＣによってタイマ値がクリアされる（リセットされる）タイマであり、そのクリア信号ＷＤＣが上記一定時間よりも少し長い値に設定された規定時間以上出力されないと、リセット制御回路４７へリセット要求を出力する。
【００２９】
リセット制御回路４７は、それの機能として、下記の《機能１》〜《機能４》を有している。
《機能１》ウォッチドッグタイマ４９からリセット要求が出力されると、マイコン３１のリセット端子（図１において「ＲＥＳ」と記載）へ、所定時間だけリセット信号ＳＲを出力することにより、マイコン３１をリセットして再起動させる。これは、マイコン３１の正常復帰を試みるためのリセット機能である。
【００３０】
《機能２》主電源回路４１からの動作用電圧Ｖｄが０Ｖから上昇して、マイコン３１が確実に動作すると設計上考えられる正常範囲（例えば４．５Ｖ〜５．５Ｖ）の最小値に達するまでの間、マイコン３１のリセット端子へリセット信号ＳＲを出力する。これは、ＥＣＵ１１への電源投入時において、動作用電圧Ｖｄが正常範囲に上昇するまでマイコン３１をリセットしておく機能（いわゆるパワーオンリセット機能）である。
【００３１】
《機能３》主電源回路４１からの動作用電圧Ｖｄが正常範囲から低下して、マイコン３１が動作不能となる電圧値（例えば３．５Ｖ）よりも高い所定のリセット実施閾値（例えば４Ｖ）まで低下したことを検知すると、その時点から、動作用電圧Ｖｄが上記リセット実施閾値よりも高いリセット解除閾値（例えば４．５Ｖ）に上昇するまでの間、マイコン３１のリセット端子へリセット信号ＳＲを出力する。これは、動作用電圧Ｖｄの低下によるマイコン３１の誤動作を防止するための機能（いわゆる電圧低下リセット機能）である。
【００３２】
《機能４》上記《機能３》によりリセット信号ＳＲを出力する前の時点であって、動作用電圧Ｖｄが上記リセット実施閾値よりも高いリセット予告閾値（例えば４．３Ｖ）まで低下したことを検知した時点で、マイコン３１のノンマスカブル割り込み端子（図１において「ＮＭＩ」と記載）にリセット予告信号ＳＮを出力する。これは、マイコン３１に対して、上記《機能３》によるリセットが間もなく実施されることを予告するための機能である。そして、マイコン３１は、ノンマスカブル割り込み端子にリセット予告信号ＳＮが入力されると、ノンマスカブル割り込みの処理であるＮＭＩ処理を行い、その後リセット信号ＳＲによってリセットされるのを待つこととなる。
【００３３】
また、入力回路３５は、端子２７から入力されるＩＧＳＷ信号（ハイがバッテリ電圧Ｖｂａｔで、ローが０Ｖの信号）を、マイコン３１に入力させることが可能な電圧の信号（ハイが動作用電圧Ｖｄで、ローが０Ｖの信号）にレベルに変換して出力する。そして、入力回路３５から出力されるレベル変換後のＩＧＳＷ信号は、マイコン３１の端子のうち、立ち下がりエッジキャプチャ機能付きの入力端子に入力されるようになっている。
【００３４】
尚、立ち下がりエッジキャプチャ機能付きの入力端子とは、入力される信号に立ち下がりエッジ（ハイからローへの変化）が発生すると、そのことを示す履歴情報がマイコン３１内の特定のレジスタにハードウェアによって記憶されることとなる入力端子である。このため、ＩＧＳＷ１９がオンからオフされて、入力回路３５からマイコン３１に入力されるＩＧＳＷ信号に立ち下がりエッジが生じると、上記特定のレジスタには、履歴情報として、ＩＧＳＷ１９がオンからオフに変化したことを示す情報（以下、ＩＧＳＷオフエッジ履歴という）が記憶されることとなる。尚、その記憶されるＩＧＳＷオフエッジ履歴は、例えば、値が“１”のフラグである。
【００３５】
また、マイコン３１は、プログラムを実行するＣＰＵ５１と、データの書き換えが可能な不揮発性メモリであるフラッシュメモリ５３と、ＣＰＵ５１による演算結果等が記憶されるＲＡＭ５５と、副電源回路４３からのスタンバイ電圧Ｖｓがデータ記憶用の電圧として常時供給されるスタンバイＲＡＭ（ＳＲＡＭ：バックアップＲＡＭとも呼ばれる）５７と、を備えている。
【００３６】
そして、フラッシュメモリ５３は、ＣＰＵ５１によって実行されるプログラム（実行対象のプログラム）を記憶する記憶領域６１と、マイコン３１によってメインリレー１５をオンさせることができなくなる異常（以下、メインリレー異常という）が発生しているか否かを判定するために用いられる判定用フラグを記憶する記憶領域６３と、ＩＧＳＷ１９のオン中にマイコン３１がリセットされたか否かを示すフラグであるリセット履歴を記憶する記憶領域６５と、メインリレー異常が発生しているという判断を確定させるために用いられる異常判定カウンタ（詳しくは、その異常判定カウンタの値）を記憶する記憶領域６７と、を備えている。
【００３７】
一方、通信回路３７は、端子２９を介して車両内の通信ライン２８に接続されており、その通信ライン２８に接続された他の装置とマイコン３１との間で、通信データをやり取りさせる。
【００３８】
また、通信ライン２８には、車両外部の装置として、マイコン３１のプログラム（詳しくは、フラッシュメモリ５３の記憶領域６１に記憶されたプログラム）を書き換えるためのツール５９が接続可能となっている。そして、マイコン３１（詳しくは、マイコン３１内のＣＰＵ５１）は、通信ライン２８に接続されたツール５９からのリプログ要求（リプログは、プログラムの書き換えを意味する「リプログラム」の略）を受信した場合には、フラッシュメモリ５３の記憶領域６１に記憶されているプログラムを、そのツール５９から送信されて来る新たなプログラムに書き換えるリプログ処理を行うこととなる。
【００３９】
次に、マイコン３１が行う処理のうち、主に、メインリレー異常を検出することに関連する処理について、図２〜図８のフローチャートを用い説明する。尚、マイコン３１が行う処理は、実際には、ＣＰＵ５１がプログラムを実行することで実現される処理であり、換言すれば、ＣＰＵ５１がプログラムに従って行う処理である。
【００４０】
図２に示すように、マイコン３１は、動作を開始すると、まずＳ１１０にて、駆動回路４５への給電要求信号ＳＤをハイにすることにより、ＩＧＳＷ１９がオフされてもメインリレー１５のオンが維持されて、該メインリレー１５から端子１７へ電源電圧ＶＢが供給され続けるようにする。
【００４１】
そして次に、マイコン３１は、Ｓ１２０にて、イニシャル処理を行う。
そのイニシャル処理には、例えば、上記特定のレジスタを含む種々の内部レジスタをクリアするレジスタ初期化処理や、ＲＡＭ５５における所定のデータ記憶領域にプログラムで定められた設定値を書き込むデータ初期化処理や、前回の動作中にＲＡＭ５５からフラッシュメモリ５３に保存しておいた（つまり、退避させておいた）データを、フラッシュメモリ５３からＲＡＭ５５に記憶し直すデータ復元処理等が、含まれているが、更に、メインリレー異常を検出することに関連する処理も含まれている。そして、そのイニシャル処理については、後で図４を用いて説明する。また、フラッシュメモリ５３の前述した記憶領域６３，６５，６７に記憶される判定用フラグ、リセット履歴、及び異常判定カウンタの各々は、イニシャル処理における上記データ復元処理によってＲＡＭ５５にコピーされ、その後の処理では、ＲＡＭ５５上で更新されることとなる。
【００４２】
マイコン３１は、イニシャル処理を終了した後、Ｓ１３０にて、後述する図３の時間同期処理を行い、更にＳ１４０にて、後述する図８のアイドル処理を行う。
尚、時間同期処理は、予め決められた一定の時間（例えば１ｍｓや８ｍｓ）毎に行われ、その時間同期処理が終了してから次に開始されるまでの空き時間において、アイドル処理が行われる。また、アイドル処理では、主に、ＲＡＭ５５における上記所定のデータ記憶領域に対して上記データ初期化処理で書き込んだのと同じ設定値を書き込むリフレッシュ処理等が行われる。そのリフレッシュ処理は、データ初期化処理でＲＡＭ５５に書き込んだ設定値が何等かの原因で他の値に変わってしまっても、その設定値を元の値に戻すために行われる。
【００４３】
また、マイコン３１は、時間同期処理内にて、所定のシャットダウン条件が成立したか否かを判定する（Ｓ１５０）。尚、図２では、分かりやすさを優先して、シャットダウン条件が成立したか否かを判定するＳ１５０の判定処理を、時間同期処理とは別の処理として記載しているが、そのＳ１５０の判定処理は、実際には時間同期処理の中で行われる。
【００４４】
また、シャットダウン条件としては、少なくとも、ＩＧＳＷ１９がオフであるという条件が含まれており、他には、例えば、エンジンを制御するための処理を行わなくても良い状態になったという条件も含まれている。
【００４５】
そして、マイコン３１は、シャットダウン条件が成立したと判定したならば（Ｓ１５０：ＹＥＳ）、Ｓ１６０に移行して、シャットダウン前処理を行い、その後、Ｓ１７０にて、シャットダウン処理を行う。
【００４６】
尚、シャットダウン前処理としては、例えば、フラッシュメモリ５３内のデータが正常か否かをサムチェック等の手法で検査するメモリチェック処理等、エンジンの制御を実施している最中には一度に行うことができない比較的時間のかかる処理がある。また、シャットダウン処理としては、例えば、ＲＡＭ５５からフラッシュメモリ５３に、異常の発生を示すダイアグコード（ダイアグは、診断を意味する「ダイアグノーシス」の略）や学習値等の、特定のデータをコピーして退避させるデータ退避処理（データ保存のための処理）がある。
【００４７】
そして、マイコン３１は、シャットダウン処理を終了したなら、Ｓ１８０にて、駆動回路４５への給電要求信号ＳＤをハイからローにする。
すると、その時点において、ＩＧＳＷ１９はオフされているため、給電要求信号ＳＤがローになることでメインリレー１５がオフし、端子１７への電源電圧ＶＢの供給が停止する。その結果、主電源回路４１から動作用電圧Ｖｄが出力されなくなり、マイコン３１は動作を停止することとなる。
【００４８】
尚、もしメインリレー異常が生じていたならば、ＩＧＳＷ１９がオフされた時点で、端子１７への電源電圧ＶＢの供給が停止するため、マイコン３１は、シャットダウン前処理（Ｓ１６０）及びシャットダウン処理（Ｓ１７０）を行う前に、動作用電圧Ｖｄが供給されなくなって動作を停止してしまうこととなる。
【００４９】
次に、時間同期処理について図３を用い説明する。
図３に示すように、マイコン３１は、図２のＳ１３０で時間同期処理を開始すると、まずＳ２１０にて、今回の処理がイニシャル処理を行った後の初回処理であるか否かを判定し、初回処理であれば、Ｓ２２０〜Ｓ２４０の処理を行う。
【００５０】
まずＳ２２０では、ＲＡＭ５５内の判定用フラグをオフにし、次のＳ２３０では、ＲＡＭ５５内のリセット履歴を、リセット無しを示す方のオフにする。尚、本実施形態において、「フラグをオフにする」ということは、そのフラグを例えば“０”にするということであり、逆に「フラグをオンにする」ということは、そのフラグを例えば“１”にするということである。そして、次のＳ２４０にて、上記Ｓ２２０でオフにした判定用フラグを、フラッシュメモリ５３の記憶領域６３に書き込むと共に、上記Ｓ２３０でオフにしたリセット履歴を、フラッシュメモリ５３の記憶領域６５に書き込む書込処理を行う。
【００５１】
つまり、Ｓ２２０〜Ｓ２４０では、記憶領域６３，６５内の判定用フラグとリセット履歴をオフにして、前回の動作での情報を引き継がないようにしている。
また、Ｓ２４０では、後述する図４（イニシャル処理）のＳ３４０又はＳ３５０の処理によりＲＡＭ５５上で更新される異常判定カウンタの現在値を、フラッシュメモリ５３の記憶領域６７に書き込む処理（つまり、記憶領域６７内の異常判定カウンタを更新目的で書き換える処理）も行う。
【００５２】
尚、記憶領域６３内の判定用フラグをオフにする書き込み処理は、後述する図４のＳ３３０で判定用フラグがオンであると判定した場合にだけ行うようにしても良い。つまり、記憶領域６３内の判定用フラグをオフにする書き込み処理は、その記憶領域６３内の判定用フラグがオンであった場合にだけ行うようにしても良い。そして、このようなことは、記憶領域６５内のリセット履歴をオフにする書き込み処理についても同様である。また、Ｓ２２０〜Ｓ２４０の処理は、例えば、イニシャル処理の最後で実施されるようにしても良い。
【００５３】
図３の説明に戻り、マイコン３１は、Ｓ２４０の処理を行った後、Ｓ２５０に進む。
また、マイコン３１は、上記Ｓ２１０にて、今回の処理がイニシャル処理後の初回処理ではないと判定した場合には、Ｓ２２０〜Ｓ２４０の処理を行うことなく、そのままＳ２５０に進む。
【００５４】
Ｓ２５０では、ＩＧＳＷ１９がオフか否かを判定し、ＩＧＳＷ１９がオフでなければ（オンであれば）、Ｓ２５５に進み、一定時間毎に行うべき定期処理を行う。
尚、ＩＧＳＷ１９がオンかオフかは、入力回路３５から入力されるレベル変換後のＩＧＳＷ信号に基づいて判定することができる。また、定期処理としては、エンジンを制御するための処理の他に、例えば、マイコン３１自身の異常を検出するための自己診断処理がある。そして、その自己診断処理としては、例えば、所定時間毎に実行されるべきタスクの実行周期を監視して、その実行周期が異常であれば当該マイコン３１が異常であると判断する、といった処理や、既知の演算対象値に対して所定の演算を行い、その演算結果が予め定められた期待値と一致していないと判定したならば当該マイコン３１が異常であると判断する、といった処理等がある。
【００５５】
そして、マイコン３１は、上記Ｓ２５５で定期処理を行った後、当該時間同期処理を終了する。
一方、マイコン３１は、上記Ｓ２５０でＩＧＳＷ１９がオフであると判定した場合（即ち、ＩＧＳＷ１９がオンからオフされたことを検知した場合）には、Ｓ２６０に進んで、ＩＧＳＷ１９のオフの検出時から所定時間Ｔｄが経過したか否かを判定し、所定時間Ｔｄが経過していなければ、そのまま当該時間同期処理を終了する。また、上記Ｓ２６０にて、所定時間Ｔｄが経過したと判定したならば、Ｓ２７０に進む。
【００５６】
尚、所定時間Ｔｄは、メインリレー異常が生じている場合に、ＩＧＳＷ１９がオフされてからマイコン３１への動作用電圧Ｖｄが供給されなくなって該マイコン３１が動作を停止するまでの、最長時間よりも長い時間に設定されている。このため、図３におけるＳ２７０以降の処理は、メインリレー異常が生じておらず、ＩＧＳＷ３１がオフされた後もマイコン３１が確実に動作している状態で実行されることとなる。逆に言うと、メインリレー異常が生じている場合、Ｓ２７０以降の処理は実行されなくなる。
【００５７】
そして、Ｓ２７０では、ＲＡＭ５５内の判定用フラグをオンにし、次のＳ２８０にて、上記Ｓ２７０でオンにした判定用フラグを、フラッシュメモリ５３の記憶領域６３に書き込む書込処理を行う。
【００５８】
つまり、Ｓ２７０，Ｓ２８０では、記憶領域６３内の判定用フラグをオンにしている。
このようにするのは、当該マイコン３１が次回に起動した際に、その記憶領域６３内の判定用フラグがオンであれば、メインリレー異常が発生していない（即ち、メインリレー１５は正常に機能する）と判定できるようにするためである。
【００５９】
逆に、メインリレー異常が発生している場合には、マイコン３１がＳ２８０の書込処理（記憶領域６３にオンの判定用フラグを書き込む処理）を行う前に電源電圧ＶＢが遮断されてマイコン３１が動作を停止するため、記憶領域６３内の判定用フラグは、Ｓ２４０の書込処理で書き込まれたオフのままとなる。よって、マイコン３１は、後述するように、起動した際のイニシャル処理（図４）にて、記憶領域６３に記憶されている判定用フラグを参照し、その判定用フラグがオフであれば、メインリレー異常が発生していると判定することができる。
【００６０】
図３の説明に戻り、マイコン３１は、Ｓ２８０の処理を行った後、Ｓ２９０に進む。
そして、Ｓ２９０では、前述した特定のレジスタ内のＩＧＳＷオフエッジ履歴をクリアし、次のＳ２９５にて、後述する図８のアイドル処理で参照されるＲＡＭ５５内のフラグであるフェールセーフ状態をオフにする。そして、その後、当該時間同期処理を終了する。尚、Ｓ２９０の処理は省略しても良い。
【００６１】
次に、イニシャル処理について図４を用い説明する。
図４に示すように、マイコン３１は、図２のＳ１２０でイニシャル処理を開始すると、まずＳ３０５にて、前述したデータ初期化処理やデータ復元処理等を行う。
【００６２】
そして、次のＳ３１０にて、ＲＡＭ５５内の故障診断結果情報の１つであるメインリレー診断結果を、「未検出」を示す値に設定し、次のＳ３１５にて、前述したフェールセーフ状態をオフにする。
【００６３】
尚、メインリレー診断結果は、「未検出」を示す値と、「正常」を示す値と、「異常」を示す値との、３通りの何れかに設定される。そして、「未検出」を示す値は、メインリレー異常が発生しているとも発生していないとも判断していないことを表し、「正常」を示す値は、メインリレー異常が発生していない（つまり正常である）と判断したことを表し、「異常」を示す値は、メインリレー異常が発生していると判断したことを表している。
【００６４】
次にＳ３２０にて、ＩＧＳＷ１９がオフか否かを判定し、ＩＧＳＷ１９がオフでなければ（オンであれば）、Ｓ３２５に進む。
Ｓ３２５では、フラッシュメモリ５３が正常状態（詳しくは、データの読み出しを正常に行える状態）であるか否かを判定し、フラッシュメモリ５３が正常状態でないと判定した場合には、そのまま当該イニシャル処理を終了する。
【００６５】
つまり、フラッシュメモリ５３が正常状態でなく、そのフラッシュメモリ５３からデータを読み出せない場合には、記憶領域６３内の判定用フラグに基づきメインリレー異常の有無を判定することができないため、その場合には、メインリレー診断結果を「未検出」の値にしたまま、当該イニシャル処理を終了する。尚、マイコン３１は、例えば、Ｓ３０５のデータ復元処理でフラッシュメモリ５３からデータを読み出せなかった場合に、メモリ異常フラグをオンしておき、Ｓ３２５では、そのメモリ異常フラグを参照して、フラッシュメモリ５３が正常状態か否か判定する。
【００６６】
一方、上記Ｓ３２５にて、フラッシュメモリ５３が正常状態であると判定した場合には、Ｓ３３０に進む。
Ｓ３３０では、データ復元処理により記憶領域６３からＲＡＭ５５にコピーされた判定用フラグが、オンか否かを判定する。尚、このＳ３３０で記憶領域６３から判定用フラグを読み出して、その読み出した判定用フラグがオンか否かを判定しても良い。
【００６７】
そして、このＳ３３０にて、判定用フラグがオンであると判定した場合には、前回の動作中においてＩＧＳＷ１９がオフされてから図３のＳ２７０，Ｓ２８０の処理が行われたということである。よって、この場合には、Ｓ３３５に進み、メインリレー異常が発生していないと判断（即ち、メインリレー１５は正常に機能すると判断）して、メインリレー診断結果を、「正常」を示す値に設定する。更に、次のＳ３４０にて、データ復元処理により記憶領域６３からＲＡＭ５５にコピーされた異常判定カウンタをクリアし（カウンタ値を「０」にし）、その後、当該イニシャル処理を終了する。尚、Ｓ３４０で０にクリアされた異常判定カウンタは、その後に実行される図３のＳ２４０にて、フラッシュメモリ５３の記憶領域６７に書き込まれることとなるが、「０」にされた異常判定カウンタの記憶領域６７への書き込みは、このイニシャル処理において実施しても良い。
【００６８】
また、上記Ｓ３２０にて、ＩＧＳＷ１９がオフと判定した場合にも、Ｓ３３５に進む。
つまり、ＩＧＳＷ１９がオフであるのにマイコン３１が動作しているということは、メインリレー１５による電源電圧ＶＢの供給が行われている、と考えられることから、この場合にも、メインリレー異常が発生していないと判断して、Ｓ３３５及びＳ３４０の処理を行い、その後、当該イニシャル処理を終了する。
【００６９】
一方、上記Ｓ３３０にて、判定用フラグがオンではない（オフである）と判定した場合には、Ｓ３４５に移行する。
Ｓ３４５では、データ復元処理により記憶領域６５からＲＡＭ５５にコピーされたリセット履歴が、オンか否かを判定する。尚、このＳ３４５で記憶領域６５からリセット履歴を読み出して、その読み出したリセット履歴がオンか否かを判定しても良い。
【００７０】
そして、このＳ３４５にて、リセット履歴がオンではない（オフであると）判定した場合には、ＩＧＳＷ１９のオン中にマイコン３１はリセットされていないということであり、判定用フラグがオフであったのは、メインリレー異常が発生していて、前回の動作中にＩＧＳＷ１９がオフされた際に、図３のＳ２７０，Ｓ２８０の処理を行う前に電源電圧ＶＢの供給が遮断されたため、と考えられる。よって、この場合には、Ｓ３５０に進み、メインリレー異常が発生している可能性があると判断して、データ復元処理により記憶領域６３からＲＡＭ５５にコピーされた異常判定カウンタをインクリメントする。尚、このＳ３５０でインクリメントされた異常判定カウンタは、その後に実行される図３のＳ２４０にて、フラッシュメモリ５３の記憶領域６７に書き込まれることとなるが、インクリメントされた異常判定カウンタの記憶領域６７への書き込みは、このイニシャル処理において実施しても良い。
【００７１】
そして、次のＳ３５５にて、インクリメント後の異常判定カウンタが、予め定められた異常判定閾値以上になったか否かを判定し、異常判定閾値以上になっていなければ、そのまま当該イニシャル処理を終了する。よって、この場合は、メインリレー異常が発生している可能性があると判断した状態のままであり、実質的には、メインリレー異常を検出していない状態（即ち、メインリレー診断結果が「未検出」の値になっている状態）となる。
【００７２】
また、上記Ｓ３５５にて、異常判定カウンタが異常判定閾値以上になったと判定した場合には、Ｓ３６０に進み、メインリレー異常が発生していると正式に判断（確定判断）して、メインリレー診断結果を、「異常」を示す値に設定する。この時点で、メインリレー異常を検出したことになる。
【００７３】
そして、次のＳ３６５にて、フェールセーフ状態をオンにし、更に、次のＳ３７０にて、例えば、メインリレー異常が発生したことを示すダイアグコードをＲＡＭ５５等に記憶したり、異常の発生を車両の使用者等に知らせるための警告灯を点灯させたりする、ダイアグ処理を行う。そして、その後、当該イニシャル処理を終了する。
【００７４】
一方、上記Ｓ３４５にて、リセット履歴がオンであると判定した場合には、ＩＧＳＷ１９のオン中にマイコン３１がリセットされたということを意味しており、そのリセットが発生したことにより、前回の動作中に図３のＳ２７０，Ｓ２８０の処理を行うことができなかったと考えられる。よって、この場合には、判定用フラグがオフであっても（Ｓ３３０で「ＮＯ」と判定しても）、Ｓ３５０以降の処理を行わずに（即ち、メインリレー異常が発生していると判断することを禁止して）、そのまま当該イニシャル処理を終了する。
【００７５】
次に、リセット履歴が、どのような場合にオンにされるのかについて説明する。
本実施形態において、リセット履歴は、図５〜図７の各処理によってオンにされる。
〈図５の説明〉
マイコン３１は、ＩＧＳＷ１９のオン中に、前述したツール５９からのリプログ要求を受信すると、図５のリプログ要求時処理を行う。
【００７６】
図５に示すように、マイコン３１は、リプログ要求時処理を開始すると、まずＳ４１０にて、ＲＡＭ５５内のリセット履歴をオンにし、次のＳ４２０にて、上記Ｓ４１０でオンにしたリセット履歴を、フラッシュメモリ５３の記憶領域６５に書き込む書込処理を行う。つまり、Ｓ４１０，Ｓ４２０では、記憶領域６５内のリセット履歴をオンにしている。
【００７７】
そして次に、Ｓ４３０にて、前述のリプログ処理（記憶領域６１内のプログラムを、ツール５９から送信されて来る新たなプログラムに書き換える処理）を行う。
そして、リプログ処理が終わると、次のＳ４４０にて、当該マイコン３１をリセットするためのリセット用処理として、ウォッチドッグタイマ４９に対するクリア信号ＷＤＣの出力を停止する処理を行う。
【００７８】
すると、マイコン３１からクリア信号ＷＤＣが出力されなくなり、その結果、リセット制御回路４７が、前述の《機能１》によってマイコン３１にリセット信号ＳＲを出力するため、マイコン３１はリセットされることとなる。このため、マイコン３１は、Ｓ４４０の次のＳ４５０にて、リセットされるのを待つ状態（例えば、実質的には処理を行わないノンオペレーション命令の実行を繰り返す状態）となる。
【００７９】
このように、マイコン３１は、ＩＧＳＷ１９のオン中にリプログ処理を行うと、リセット実施条件が成立したとして、自らをリセットするリセット用処理（Ｓ４４０）を行い、その後、再起動して書き換え後の新たなプログラムを実行するようになっている。そして、マイコン３１は、このように自らをリセットする自己リセットを行う場合に、当然ながらリセットされると判断して、記憶領域６５内リセット履歴をオンする（Ｓ４１０，Ｓ４２０）。
【００８０】
〈図６の説明〉
また、マイコン３１は、前述の自己診断処理によって当該マイコン３１の異常を検出した場合（当該マイコン３１が異常と判断した場合）に、図６のマイコン異常検出時処理を行う。
【００８１】
図６に示すように、マイコン３１は、マイコン異常検出時処理を開始すると、まずＳ５１０にて、自己診断処理で検出した異常の内容や検出時刻等を示す情報である異常ログを、ＲＡＭ５５等に記憶する処理を行う。
【００８２】
そして次に、Ｓ５２０にて、ＲＡＭ５５内のリセット履歴をオンにし、次のＳ５３０にて、上記Ｓ５２０でオンにしたリセット履歴を、フラッシュメモリ５３の記憶領域６５に書き込む書込処理を行う。つまり、Ｓ５２０，Ｓ５３０では、図５のＳ４１０，Ｓ４２０と同様に、記憶領域６５内のリセット履歴をオンにしている。
【００８３】
そして、次のＳ５４０にて、図５のＳ４４０と同様に、リセット用処理として、ウォッチドッグタイマ４９に対するクリア信号ＷＤＣの出力を停止する処理を行い、その後、Ｓ５５０にて、図５のＳ４５０と同様に、リセット制御回路４７からのリセット信号ＳＲによってリセットされるのを待つ状態となる。
【００８４】
このように、マイコン３１は、ＩＧＳＷ１９のオン中に自己診断処理で異常を検出した場合にも、リセット実施条件が成立したとして、自らをリセットするリセット用処理（Ｓ５４０）を行うようになっている。尚、この場合のリセットは、正常復帰を試みるためのリセットである。そして、マイコン３１は、このような異常検出に伴う正常復帰用の自己リセットを行う場合にも、当然ながらリセットされると判断して、記憶領域６５内リセット履歴をオンする（Ｓ５２０，Ｓ５３０）。
【００８５】
〈図７の説明〉
また、マイコン３１は、リセット制御回路４７が、前述の《機能４》によってリセット予告信号ＳＮを出力すると、図７のＮＭＩ処理を行う。
【００８６】
図７に示すように、マイコン３１は、ＮＭＩ処理を開始すると、まずＳ６１０にて、前述した特定のレジスタにＩＧＳＷオフエッジ履歴が記憶されているか否かを判定し、ＩＧＳＷオフエッジ履歴が記憶されていないと判定した場合には、Ｓ６２０に進む。
【００８７】
そして、Ｓ６２０にて、ＲＡＭ５５内のリセット履歴をオンにし、次のＳ６３０にて、上記Ｓ６２０でオンにしたリセット履歴を、フラッシュメモリ５３の記憶領域６５に書き込む書込処理を行う。
【００８８】
つまり、当該ＮＭＩ処理の開始時にＩＧＳＷオフエッジ履歴が記憶されていなかった場合には（Ｓ６１０：ＮＯ）、ＩＧＳＷ１９がオフされていないのに、例えば電源電圧ＶＢのラインや動作用電圧Ｖｄのラインにノイズが乗ったことにより、動作用電圧Ｖｄがリセット予告閾値まで低下して、リセット制御回路４７からリセット予告信号ＳＮが出力された、と考えられる。よって、この場合、マイコン３１は、間もなく動作用電圧Ｖｄがリセット実施閾値（＜リセット予告閾値）まで低下して、リセット制御回路４７の《機能３》によりリセットされる、と判断し、Ｓ６２０，Ｓ６３０の処理により、記憶領域６５内のリセット履歴をオンにしている。
【００８９】
そして、マイコン３１は、Ｓ６３０の次のＳ６４０にて、リセット制御回路４７によってリセットされるのを待つ状態（例えば、ノンオペレーション命令の実行を繰り返す状態）となる。
【００９０】
このように、マイコン３１は、ノイズにより動作用電圧Ｖｄが低下してリセット制御回路４７によりリセットされることを検知した場合（Ｓ６１０：ＮＯ）にも、記憶領域６５内リセット履歴をオンする（Ｓ６２０，Ｓ６３０）。
【００９１】
尚、メインリレー異常が発生しておらず、ＩＧＳＷ１９がオフされてから、図３のＳ２９０でＩＧＳＷオフエッジ履歴がクリアされ、その後、図２のＳ１８０の処理が行われたことにより、動作用電圧Ｖｄが低下して当該ＮＭＩ処理が行われた場合にも、図７のＳ６１０で「ＮＯ」と判定されて、Ｓ６２０，Ｓ６３０の処理により、リセット履歴がオンにされる。しかし、その場合には、図３のＳ２７０，Ｓ２８０の処理により記憶領域６３内の判定用フラグが既にオンにされており、マイコン３１が次に起動した際に行う図４のイニシャル処理では、Ｓ３３０にて「ＹＥＳ」と判定する（即ち、メインリレー異常が発生していないと判断する）こととなるため、リセット履歴がオンになっていても処理に影響は無い。また、本実施形態において、マイコン３１は、Ｓ６１０の判定により、ＩＧＳＷ１９のオン中にリセット予告信号が入力されたこと、を検出していることとなる。
【００９２】
一方、マイコン３１は、上記Ｓ６１０にて、特定のレジスタにＩＧＳＷオフエッジ履歴が記憶されていると判定した場合には、そのままＳ６４０に移行する。
つまり、この場合には、ＩＧＳＷ１９がオフされた直後に、動作用電圧Ｖｄがリセット予告閾値まで低下して、リセット制御回路４７からリセット予告信号ＳＮが出力された、と考えられ、メインリレー異常が発生している可能性がある。よって、マイコン３１は、リセット履歴をオンにすることなく、リセット制御回路４７によってリセットされるのを待つ。
【００９３】
以上のように、ＩＧＳＷ１９のオン中に起こるマイコン３１のリセットとしては、マイコン３１がリセット用処理（Ｓ４４０，Ｓ５４０）を行うことで起こるリセット（即ち、ソフトウェアによる故意のリセット）と、ノイズによって動作用電圧Ｖｄが瞬間的に低下して起こるリセット（即ち、意図しないリセット）とがある。そして、図５と図６の各処理では、故意のリセットの発生を検出してリセット履歴をオンにしており、図７の処理では、意図しないリセットの発生を検出してリセット履歴をオンにしている。
【００９４】
次に、アイドル処理について、図８を用い説明する。
図８に示すように、マイコン３１は、アイドル処理を開始すると、まずＳ７１０にて、前述したリフレッシュ処理等の、通常の処理を行う。
【００９５】
そして、次のＳ７２０にて、フェールセーフ状態がオンであるか否かを判定し、フェールセーフ状態がオンでなければ（オフであれば）、そのまま当該アイドル処理を終了する。
【００９６】
また、上記Ｓ７２０にて、フェールセーフ状態がオンであると判定した場合には、図４のイニシャル処理によりメインリレー異常が発生していると判断されたということであり、その場合にはＳ７３０に進む。
【００９７】
そして、Ｓ７３０では、メインリレー異常が発生している場合のフェールセーフ処理として、本来ならばＩＧＳＷ１９がオフされた後に行う処理（例えば、図２のＳ１６０で行われるシャットダウン前処理や、図２のＳ１７０で行われるシャットダウン処理であり、特に、例えば後者のシャットダウン処理）を行う。尚、このＳ７３０では、本来ならばＩＧＳＷ１９がオフされた後に行う処理を、制御対象の制御に影響を与えないような処理時間となる量に分けて、少しずつ行う。そして、その後、当該アイドル処理を終了する。
【００９８】
このように、マイコン３１は、メインリレー異常の発生を検出した場合には、本来ならばＩＧＳＷ１９がオフされた後に行う処理を、アイドル処理で行うようにしている。
このため、メインリレー異常が発生していて、ＩＧＳＷ１９がオフされてすぐに端子１７への電源電圧ＶＢの供給が停止されても、ＩＧＳＷ１９がオフされた後に行うはずの処理が全く行われなくなってしまうことを防止することができる。つまり、メインリレー異常による影響を少なくすることができる。例えば、Ｓ７３０のフェールセーフ処理として、シャットダウン処理（データ退避処理）を行うようになっていれば、ＲＡＭ５５からフラッシュメモリ５３への、ダイアグコードや学習値等のデータ保存を行うことができるため、制御への影響を抑えることができる。
【００９９】
次に、以上のようなＥＣＵ１１の作用ついて、図９〜図１１を用い、主にマイコン３１を主体にして説明する。尚、図９〜図１１及び以下の説明において、「トリップ」とは、マイコン３１（延いてはＥＣＵ１１）が連続して動作している期間を意味している。
【０１００】
まず図９は、メインリレー１５が正常に機能する場合の、マイコン３１の動作例を表している。
図９に示すように、トリップ１中の時刻ｔ１でＩＧＳＷ１９がオンからオフされたとすると、マイコン３１は、そのことを図３のＳ２５０で検出し、その検出時点から所定時間Ｔｄが経過した時刻ｔ２になると、図３のＳ２７０，Ｓ２８０により、フラッシュメモリ５３の記憶領域６３にオンの判定用フラグを書き込む。尚、マイコン３１は、起動した際に、図２のＳ１１０により、駆動回路４５への給電要求信号ＳＤをハイにしているため、ＩＧＳＷ１９がオフされても、メインリレー１５がオンし続けて、ＥＣＵ１１への電源電圧ＶＢの供給が継続される。
【０１０１】
そして、その後、マイコン３１は、シャットダウン前処理（図２のＳ１６０）及びシャットダウン処理（図２のＳ１７０）を行い、それらの処理が終了した時刻ｔ３にて、図２のＳ１８０により、駆動回路４５への給電要求信号ＳＤをハイからローにする。すると、メインリレー１５がオフしてＥＣＵ１１への電源電圧ＶＢが遮断され、その結果、マイコン３１が動作を停止する。この時点でトリップ１が終了する。
【０１０２】
その後の時刻ｔ４でＩＧＳＷ１９がオンされると、メインリレー１５がオンする。そして、そのメインリレー１５を介してＥＣＵ１１に電源電圧ＶＢが供給され、マイコン３１が起動して、この時点からトリップ２が始まる。
【０１０３】
尚、メインリレー１５での電圧降下は殆ど無いため、メインリレー１５がオンしていれば、ＩＧＳＷ１９がオンであっても、ダイオード２１に電流は流れない。つまり、ダイオード２１を経由しての電源電圧ＶＢの供給は、ＩＧＳＷ１９がオンで、且つ、メインリレー１５が故障によりオンしない場合に、行われることとなる。
【０１０４】
そして、起動したマイコン３１は、図４のイニシャル処理を行うが、マイコン３１の起動時点において、記憶領域６３内の判定用フラグはオンになっている。
このため、マイコン３１は、図４のＳ３３０にて、判定用フラグがオンであると判定し、図４のＳ３３５にて、メインリレー異常が発生していないと判断して、メインリレー診断結果を、「正常」を示す値に設定することとなる。
【０１０５】
そして、その後、マイコン３１は、図３のＳ２２０，Ｓ２４０により、時刻ｔ５に示すように、記憶領域６３にオフの判定用フラグを書き込む。つまり、記憶領域６３内の判定用フラグを、オンからオフに書き換えて、次回の異常検出に備える。
【０１０６】
次に図１０は、メインリレー異常が発生した場合の、マイコン３１の動作例を表している。尚、この図１０及び図１１の各例において、異常判定閾値は「２」である。
図１０の例では、トリップ１におけるＩＧＳＷ１９のオン中に、メインリレー異常が発生している。
【０１０７】
このため、図１０に示すように、トリップ１中の時刻ｔ１１でＩＧＳＷ１９がオンからオフされたとすると、すぐに、ＥＣＵ１１への電源電圧ＶＢが遮断されて、マイコン３１が動作を停止し、トリップ１が終了する。そして、この場合、マイコン３１は、ＩＧＳＷ１９がオフされた後に図３のＳ２７０，Ｓ２８０の処理を行うことができず、その結果、記憶領域６３にオンの判定用フラグを書き込むことができない。よって、判定用フラグがオフのまま、マイコン３１の動作が停止することとなる。
【０１０８】
尚、メインリレー１５が、マイコン３１からの給電要求信号ＳＤだけでなく、ＩＧＳＷ信号によってもオン不能ならば（つまり、メインリレー１５にオン不能なオフ故障が生じている場合には）、ＩＧＳＷ１９のオン中において、ＥＣＵ１１へは、ＩＧＳＷ１９及びダイオード２１を介して電源電圧ＶＢが供給されることとなる。また、メインリレー異常が発生していても、メインリレー１５がＩＧＳＷ信号でオン可能ならば（つまり、メインリレー１５が、ＩＧＳＷ信号ではオン可能で、マイコン３１からの給電要求信号ＳＤではオン不能な場合には）、ＩＧＳＷ１９のオン中において、ＥＣＵ１１へは、メインリレー１５を介して電源電圧ＶＢが供給されることとなる。
【０１０９】
その後の時刻ｔ１２でＩＧＳＷ１９がオンされると、ＥＣＵ１１に電源電圧ＶＢが供給されて、マイコン３１が起動し、この時点からトリップ２が始まる。
そして、起動したマイコン３１は、図４のイニシャル処理を行うが、マイコン３１の起動時点において、記憶領域６３内の判定用フラグは、オンではなく、オフになっている。
【０１１０】
このため、マイコン３１は、図４のＳ３３０にて、判定用フラグがオフであると判定する。また、この例では、記憶領域６５内のリセット履歴がオフであり、マイコン３１は、図４のＳ３４５にて、リセット履歴がオフであると判定することとなる。よって、マイコン３１は、図４のＳ３５０により、異常判定カウンタをインクリメントする。このため、異常判定カウンタは、「０」から「１」に増加するが、未だ異常判定閾値（＝２）には達しない。
【０１１１】
また、この場合、マイコン３１は、メインリレー診断結果を、図４のＳ３１０で「未検出」を示す値に設定した後、変更しないため、そのメインリレー診断結果は「未検出」を示す値になる。
【０１１２】
そして、その後、マイコン３１は、図３のＳ２２０，Ｓ２４０により、時刻ｔ１３に示すように、記憶領域６３にオフの判定用フラグを書き込むこととなる。よって、判定用フラグはオフのままである。
【０１１３】
その後、トリップ１と同様に、トリップ２中の時刻ｔ１４でＩＧＳＷ１９がオンからオフされたとすると、この場合も、すぐに、ＥＣＵ１１への電源電圧ＶＢが遮断されて、マイコン３１が動作を停止し、トリップ２が終了する。そして、この場合も、マイコン３１は、記憶領域６３にオンの判定用フラグを書き込むことができない。
【０１１４】
そして、その後の時刻ｔ１５でＩＧＳＷ１９がオンされると、ＥＣＵ１１に電源電圧ＶＢが供給されて、マイコン３１が起動し、この時点からトリップ３が始まる。
そして、起動したマイコン３１は、図４のＳ３３０にて、判定用フラグがオフであると判定し、図４のＳ３４５にて、リセット履歴がオフであると判定することとなる。よって、マイコン３１は、図４のＳ３５０により、異常判定カウンタをインクリメントする。このため、異常判定カウンタは、「１」から増加して異常判定閾値（＝２）に達する。
【０１１５】
よって、マイコン３１は、図４のＳ３５５にて、異常判定カウンタが異常判定閾値以上になったと判定し、図４のＳ３６０にて、メインリレー異常が発生していると判断して、メインリレー診断結果を、「異常」を示す値に設定することとなる。更に、マイコン３１は、図４のＳ３６５により、フェールセーフ状態をオンにし、その後は、本来ならばＩＧＳＷ１９がオフされた後に行う処理を、アイドル処理で行うようになる。
【０１１６】
次に図１１は、ＩＧＳＷ１９のオン中にマイコン３１がリセットされた場合の、マイコン３１の動作例を表している。尚、この図１１の例においても、図１０と同様に、トリップ１におけるＩＧＳＷ１９のオン中に、メインリレー異常が発生している。
【０１１７】
まず、図１１において、時刻ｔ１３よりも前（左側）の動作内容は、前述した図１０と同じであるため、説明を省略する。
そして、図１１では、トリップ２中の時刻ｔ２４（この時点でＩＧＳＷ１９はオンのまま）にて、マイコン３１がリセットされた場合を表している。
【０１１８】
ここで、時刻ｔ２４で発生したリセットが、マイコン３１のソフトウェアによる故意のリセットであれば、図５のＳ４１０，Ｓ４２０又は図６のＳ５２０，Ｓ５３０の処理により、記憶領域６５にオンのリセット履歴が書き込まれることとなる。また、時刻ｔ２４で発生したリセットが、ノイズにより動作用電圧Ｖｄが低下して起こるリセットであれば、図７のＳ６２０，Ｓ６３０の処理により、記憶領域６５にオンのリセット履歴が書き込まれることとなる。
【０１１９】
このため、時刻ｔ２４で発生したリセットが時刻２５で解除されて、マイコン３１が再起動した時点（即ち、トリップ３の開始時）では、記憶領域６５内のリセット履歴がオンになっている。そして、時刻２５で起動したマイコン３１は、図４のＳ３３０にて、判定用フラグがオフであると判定し、図４のＳ３４５にて、リセット履歴がオンであると判定することとなる。
【０１２０】
よって、トリップ３において、マイコン３１は、判定用フラグがオフであっても、異常判定カウンタをインクリメントすることなく、図４のイニシャル処理を終了することとなる。このため、異常判定カウンタは、前回のトリップ２における値（＝１）のままとなり、メインリレー異常が発生していると図４のＳ３６０で判断することが禁止されることとなる。
【０１２１】
そして、その後、マイコン３１は、時刻ｔ２６に示すように、図３のＳ２３０，Ｓ２４０により、記憶領域６５内のリセット履歴をオンからオフに書き換えることとなる。また、マイコン３１は、図３のＳ２２０，Ｓ２４０により、記憶領域６３にオフの判定用フラグを書き込むこととなる。
【０１２２】
その後、トリップ３中の時刻ｔ２７でＩＧＳＷ１９がオンからオフされたとすると、この場合も、すぐに、ＥＣＵ１１への電源電圧ＶＢが遮断されて、マイコン３１が動作を停止し、トリップ３が終了する。
【０１２３】
そして、その後の時刻ｔ２８でＩＧＳＷ１９がオンされると、ＥＣＵ１１に電源電圧ＶＢが供給されて、マイコン３１が起動し、この時点からトリップ４が始まる。
そして、起動したマイコン３１は、図４のＳ３３０にて、判定用フラグがオフであると判定し、図４のＳ３４５にて、今度は、リセット履歴がオフであると判定することとなる。よって、マイコン３１は、図４のＳ３５０により、異常判定カウンタをインクリメントし、その結果、異常判定カウンタは異常判定閾値（＝２）に達する。このため、マイコン３１は、図４のＳ３６０にて、メインリレー異常が発生していると判断して、メインリレー診断結果を、「異常」を示す値に設定することとなる。更に、マイコン３１は、図４のＳ３６５により、フェールセーフ状態をオンにし、その後は、本来ならばＩＧＳＷ１９がオフされた後に行う処理を、アイドル処理で行うようになる。つまり、図１１における時刻ｔ２８以降のトリップ４の動作は、図１０における時刻ｔ１５以降のトリップ３の動作と同じである。
【０１２４】
以上のようなＥＣＵ１１によれば、マイコン３１がＩＧＳＷ１９のオン中にリセットされて、記憶領域６３内の判定用フラグがオンにされなかった場合には、そのリセットの発生が検出されてリセット履歴がオンされる。そして、リセットの解除により起動したマイコン３１は、判定用フラグがオフであっても、リセット履歴がオンであれば、図４のイニシャル処理におけるＳ３５０以降の処理を行うことが禁止される（即ち、メインリレー異常が発生していると判断することが禁止される）ようになっている。
【０１２５】
よって、ＩＧＳＷ１９のオン中にリセットされたマイコン３１が、次に起動した際に、メインリレー異常が発生していると誤判定してしまうことを、防止することができ、その結果、メインリレー１５に関する故障検出精度を向上させることができる。
【０１２６】
尚、本実施形態では、ＩＧＳＷ１９がオンであることが、起動用給電条件に相当している。また、メインリレー１５及び駆動回路４５が、給電手段に相当し、メインリレー異常が、給電手段の異常に相当している。また、マイコン３１が給電要求信号ＳＤをハイにすることが、「給電要求信号を出力すること」に相当し、マイコン３１が給電要求信号ＳＤをハイからローにすることが、「給電要求信号の出力を停止すること」に相当している。また、オンの判定用フラグが、判定用情報に相当し、オフの判定用フラグが、判定用情報とは異なる情報に相当している。また、オンのリセット履歴が、リセット発生情報に相当している。
【０１２７】
［第２実施形態］
図１２に示す第２実施形態のＥＣＵ１１では、図１と比較すると、ダイオード２１を経由した電源電圧ＶＢの供給経路が設けられていない、という点が異なっている。
【０１２８】
そして、この構成の場合、マイコン３１は、例えば、当該マイコン３１から駆動回路４５へ給電要求信号ＳＤを出力するための配線の故障（断線又はグランドショート）と、メインリレー１５のオフ故障とのうち、前者の配線故障を、メインリレー異常として検出することとなる。もしメインリレー１５にオフ故障が生じたなら、ＩＧＳＷ１９がオンされても、ＥＣＵ１１に電源電圧ＶＢが供給されず、マイコン３１は動作しなくなるからである。
【０１２９】
一方、第１実施形態のＥＣＵ１１（図１）において、マイコン３１は、メインリレー１５にオフ故障が生じても、ＩＧＳＷ１９のオン中は動作するため、給電要求信号ＳＤの配線故障とメインリレー１５のオフ故障とを、メインリレー異常として検出することとなる。
【０１３０】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１３１】
例えば、駆動回路４５の一部又は全部は、ＥＣＵ１１の外部にあっても良い。
また、起動用給電条件としては、ＩＧＳＷ１９のオンという条件以外でも良く、例えば、他の制御装置から出力される起動用信号がアクティブレベルになったという条件であっても良い。また、起動用給電条件としては、例えば、複数の起動用信号のうちの少なくとも１つがアクティブレベルである、というように、２つ以上の条件の何れかが成立している、という条件あっても良い。
【０１３２】
また、図５〜図７の各処理のうち、何れかが行われない構成であっても良い。また、マイコン３１が、リプログ処理を実施した場合や異常を検出した場合以外の、所定の場合に、リセット用処理を行うのであれば、その所定の場合に、リセット履歴をオンにする処理を行えば良い。
【０１３３】
また、図８のアイドル処理から、Ｓ７２０及びＳ７３０の処理を削除することも可能である。
また、判定用フラグ、リセット履歴、及び異常判定カウンタの保存先は、スタンバイＲＡＭ５７でも良い。
【０１３４】
また、動作用電圧Ｖｄの低下によるリセットを検出せずに、マイコン３１のソフトウェアによる故意のリセットだけを検出するのであれば、リセット履歴の保存先（リセット記憶部）は、例えばＲＡＭ５５でも良い。
【０１３５】
また、データの書き換えが可能な不揮発性メモリとしては、フラッシュメモリに限らず、例えばＥＥＰＲＯＭ等でもよい。
また、異常判定閾値は、図１０，図１１で例示した「２」に限らず、「３」以上であっても良いし、「１」であっても良い。尚、異常判定閾値を「１」にするのであれば、図４におけるＳ３５０，Ｓ３５５の処理等、異常判定カウンタに関する処理は不要となる。
【０１３６】
一方、マイコン３１とは別に、リセット検出手段としてのハードウェアを設けるようにしても良い。
例えば、マイコン３１がリセット用処理（Ｓ４４０，Ｓ５４０）を行う場合に、そのリセット用処理を行うことを示す報知信号を、リセット検出手段及びリセット記憶部としてのラッチ回路に出力し、そのラッチ回路は、報知信号が入力されると、該報知信号をラッチしてセット状態になる、といった構成でも良い。この場合、ラッチ回路がセット状態であることが、リセット記憶部にリセット発生情報が記憶されていること、に相当する。また同様に、上記ラッチ回路が、ＩＧＳＷ１９のオン中にリセット制御回路４７からマイコン３１へリセット信号ＳＲが出力されると、そのリセット信号ＳＲをラッチしてセット状態になる、という構成を採ることもできる。そして、マイコン３１は、図４のＳ３４５にて、上記ラッチ回路がセット状態であるか否か判定すれば良い。
【０１３７】
また例えば、上記報知信号をラッチするラッチ回路と、リセット信号ＳＲをラッチするラッチ回路とを、別々に設けても良く、その場合、マイコン３１は、図４のＳ３４５にて、複数のラッチ回路の少なくとも１つがセット状態であるか否か判定すれば良い。
【符号の説明】
【０１３８】
１１…ＥＣＵ（電子制御装置）、１３…バッテリ、１５…メインリレー、１７…給電部としての端子、１９…ＩＧＳＷ（イグニッションスイッチ）、２１…ダイオード、３１…マイコン、３３…電源制御ＩＣ、４１…主電源回路、４５…駆動回路、４７…リセット制御回路、４９…ウォッチドッグタイマ、５１…ＣＰＵ、５３…フラッシュメモリ、６３…判定用情報記憶部としての記憶領域、６５…リセット記憶部としての記憶領域
【図１】
2014048070.tif 000003
【図２】
2014048070.tif 000004
【図３】
2014048070.tif 000005
【図４】
2014048070.tif 000006
【図５】
2014048070.tif 000007
【図６】
2014048070.tif 000008
【図７】
2014048070.tif 000009
【図８】
2014048070.tif 000010
【図９】
2014048070.tif 000011
【図１０】
2014048070.tif 000012
【図１１】
2014048070.tif 000013
【図１２】
2014048070.tif 000014