(57)【特許請求の範囲】
【請求項１】
マイコン（２５）と、前記マイコンの動作を監視し、前記マイコンが異常と判断すると前記マイコンにリセット信号を出力する監視手段（２９，３１）と、を備えた電子制御装置において、
前記マイコンは、
当該マイコンの外部から時間情報を取得する取得手段（４１，Ｓ２４０）と、
当該マイコンが起動すると、当該マイコンが不明な原因により動作を停止していたか否かを判定する判定手段（４１，Ｓ１１０）と、
前記判定手段により肯定判定された場合には、当該マイコンが動作を停止する前に前記取得手段が取得した時間情報と、当該マイコンが今回起動してから前記取得手段が取得した時間情報とから、当該マイコンが動作を停止していた時間を表す停止時間情報を算出し、その算出した停止時間情報を時間記憶部（４４ｃ）に記憶する時間算出手段（４１，Ｓ２６０）と、を備え、
前記マイコンは、電源スイッチ（１９）がオンされると電源電圧（Ｖｄ）が供給されて起動し、前記電源スイッチがオフされたことを検知すると動作を停止するようになっており、
更に、前記マイコンは、
前記電源スイッチがオンかオフかを定期的に判定して、その判定結果を示す履歴情報を履歴記憶部（４４ａ）に記憶する履歴記憶手段（４１，Ｓ２１０〜Ｓ２３０）を備え、
前記判定手段は、当該マイコンが起動すると、前記履歴記憶部に記憶されている前記履歴情報が前記電源スイッチのオンを示すか否かを判定し、前記履歴情報が前記電源スイッチのオンを示す場合に、当該マイコンが不明な原因により動作を停止していたと判定すること、
を特徴とする電子制御装置。
【請求項２】
マイコン（２５）と、前記マイコンの動作を監視し、前記マイコンが異常と判断すると前記マイコンにリセット信号を出力する監視手段（２９，３１）と、を備えた電子制御装置において、
前記マイコンは、
当該マイコンの外部から時間情報を取得する取得手段（４１，Ｓ２４０）と、
当該マイコンが起動すると、当該マイコンが不明な原因により動作を停止していたか否かを判定する判定手段（４１，Ｓ１１０）と、
前記判定手段により肯定判定された場合には、当該マイコンが動作を停止する前に前記取得手段が取得した時間情報と、当該マイコンが今回起動してから前記取得手段が取得した時間情報とから、当該マイコンが動作を停止していた時間を表す停止時間情報を算出し、その算出した停止時間情報を時間記憶部（４４ｃ）に記憶する時間算出手段（４１，Ｓ２６０）と、
前記時間算出手段により前記停止時間情報が算出されると、その後、当該マイコンが正常に動作を終了した回数が所定回数以上になるまで、前記時間算出手段が動作することを禁止する禁止手段（４１，Ｓ３１０〜Ｓ３３０）と、を備えること、
を特徴とする電子制御装置。
【請求項３】
請求項１に記載の電子制御装置において、
前記マイコンは、
前記時間算出手段により前記停止時間情報が算出されると、その後、当該マイコンが正常に動作を終了した回数が所定回数以上になるまで、前記時間算出手段が動作することを禁止する禁止手段（４１，Ｓ３１０〜Ｓ３３０）を備えること、
を特徴とする電子制御装置。
【請求項４】
請求項２又は請求項３に記載の電子制御装置において、
前記マイコンは、
前記時間算出手段により算出された前記停止時間情報が示す時間が所定値以下であるか否かを判定し、前記時間が前記所定値以下でなければ、前記禁止手段の機能を無効にする禁止無効化手段（４１，Ｓ３４０）を備えること、
を特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイコン（マイクロコンピュータ）を備えた電子制御装置に関する。
【背景技術】
【０００２】
一般に、マイコンを備える電子制御装置では、マイコンとは別に、マイコンの動作を監視する監視回路を設けており、その監視回路は、マイコンが異常と判断すると、マイコンにリセット信号を出力してマイコンの正常復帰を試みる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１５２６７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明者は、マイコンの機能として、例えば高処理負荷によるタスク抜けやプログラムカウンタ異常などの、内部異常を検出する機能と、内部異常を検出した場合に、異常内容を示すエラーコードをメモリに記憶して、その後、故意にリセットされるための機能と、を設けることを考えた。このようにすれば、例えば、電子制御装置の機能に不具合が発生した場合に、上記メモリからエラーコードを読み出すことで、その不具合の原因（マイコンがリセットされた原因）を特定することができる。
【０００５】
但し、マイコンのリセットを招く原因としては、例えば、リセット信号ラインへのノイズ混入や、マイコンの動作クロックを発生するための発振子の異常など、マイコン自身が認識できないものもある。そして、マイコンが認識不能な原因によってリセットされた場合には、マイコンは、原因が分からないまま突然動作を停止することになるため、上記のようなエラーコードを記憶することはできない。よって、その場合には、マイコンがリセットされた原因（リセット原因）を分析することができない。
【０００６】
そこで、本発明は、電子制御装置において、マイコンのリセット原因の分析に役立つ情報が得られるようにすることを目的としている。
【課題を解決するための手段】
【０００７】
第１発明の電子制御装置は、マイコンと監視手段とを備える。監視手段は、マイコンの動作を監視し、マイコンが異常と判断するとマイコンにリセット信号を出力する。そして、この電子制御装置において、マイコンは、取得手段と判定手段と時間算出手段とを備える。
【０００８】
取得手段は、当該マイコンの外部から時間情報を取得する。判定手段は、当該マイコンが起動すると、当該マイコンが不明な原因により動作を停止していたか否かを判定する。時間算出手段は、判定手段により肯定判定された場合（即ち、当該マイコンが不明な原因により動作を停止していたと判定された場合）に動作する。そして、時間算出手段は、当該マイコンが動作を停止する前に取得手段が取得した時間情報と、当該マイコンが今回起動してから取得手段が取得した時間情報とから、当該マイコンが動作を停止していた時間を表す停止時間情報を算出し、その算出した停止時間情報を時間記憶部に記憶する。
【０００９】
このような電子制御装置では、マイコンが、当該マイコンにとって不明な原因（即ち、判定手段により肯定判定されることとなる何等かの原因）によりリセットされて、その後、起動した場合には、マイコンが動作を停止していた時間（以下、動作停止時間ともいう）を表す停止時間情報が、時間記憶部に記憶される。このため、時間記憶部に記憶されている停止時間情報から、マイコンのリセットによる動作停止時間を知ることができ、その動作停止時間から、マイコンのリセット原因を分析することができるようになる。リセットによる動作停止時間はリセット原因によって変わるからである。
【００１０】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態の電子制御装置（ＥＣＵ）を表す構成図である。
【図２】第１実施形態の起動時処理を表すフローチャートである。
【図３】第１実施形態の定期処理を表すフローチャートである。
【図４】第１実施形態の作用を説明する説明図である。
【図５】第２実施形態の定期処理を表すフローチャートである。
【図６】第３実施形態の定期処理を表すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本発明が適用された実施形態の電子制御装置（以下、ＥＣＵという）について説明する。尚、本実施形態のＥＣＵは、車両に搭載されて、例えば車両のエンジンを制御するものであるが、制御対象はエンジン以外でも良い。
【００１３】
［第１実施形態］
図１に示すように、第１実施形態のＥＣＵ１１は、車両のバッテリ１３の電圧（通常１２Ｖ前後であり、以下、バッテリ電圧という）Ｖｂａｔが電源リレーであるメインリレー１５を介して電源電圧ＶＢとして供給される、給電部としての端子１７を備える。メインリレー１５のコイル１５ａの一端には、バッテリ電圧Ｖｂａｔが供給されている。
【００１４】
そして、ＥＣＵ１１は、メインリレー１５のコイル１５ａの下流側（バッテリ電圧Ｖｂａｔが供給される側とは反対側）が接続された端子１８と、電源スイッチ１９がオンされることでバッテリ電圧Ｖｂａｔが供給される電源ライン２１の電圧が、電源スイッチ１９のオン／オフを表すスイッチ信号として入力される端子２３と、を備える。尚、本実施形態において、電源スイッチ１９は、例えば車両のイグニッションスイッチである。
【００１５】
更に、ＥＣＵ１１は、当該ＥＣＵ１１の動作を司るマイコン２５と、マイコン２５の動作クロックを発生するための発振子２６と、メインリレー１５をオン／オフさせるメインリレー駆動回路２７と、マイコン２５の動作を監視する機能を有した電源回路２９と、マイコン２５の動作を監視する監視回路３１と、入力回路３３と、を備える。
【００１６】
電源回路２９は、端子１７に供給される電源電圧ＶＢから、マイコン２５を動作させるための一定の電源電圧Ｖｄ（本実施形態では例えば５Ｖ）を生成して、その電源電圧Ｖｄをマイコン２５に出力する。また、電源電圧Ｖｄは、例えばメインリレー駆動回路２７やＥＣＵ１１内の他の回路にも電源として供給される。
【００１７】
更に、電源回路２９には、マイコン２５が正常な場合に定期的にレベル反転させるウォッチドッグパルス（以下、ＷＤＰと記載する）が入力される。そして、電源回路２９は、ＷＤＰのレベル変化エッジによってクリアされるウォッチドッグタイマ（ＷＤＴ）２９ａを備えており、ウォッチドッグタイマ２９ａは、マイコン２５からＷＤＰが出力されない時間（ＷＤＰがレベル変化しない時間）が規定時間Ｔ１以上になると、オーバーフローする。電源回路２９は、ウォッチドッグタイマ２９ａがオーバーフローすると、マイコン２５が異常と判断したことになり、マイコン２５へリセット信号を出力する。一例を挙げると、例えば、マイコン２５は、ＷＤＰの出力レベル（ハイ又はロー）を４ｍｓ毎に反転させるようになっており、異常判定用の上記規定時間Ｔ１は、４ｍｓよりも長い時間であって例えば４０ｍｓに設定されている。尚、本実施形態において、リセット信号は例えばローアクティブの信号である。
【００１８】
また、電源回路２９は、出力する電源電圧Ｖｄが０Ｖから上昇して正常範囲（例えば４．５Ｖ〜５．５Ｖ）に達すると考えられる所定時間の間、マイコン２５へリセット信号を出力する、いわゆるパワーオンリセット機能も備える。
【００１９】
監視回路３１は、マイコン２５と通信線３５を介して通信し、マイコン２５から正しいデータを受信できない継続時間（データの受信自体ができない時間も含む）が規定時間Ｔ２以上になると、マイコン２５が異常と判断して、マイコン２５へリセット信号を出力する。この例では、監視回路３１からのリセット信号と、電源回路２９からのリセット信号とは、ワイヤードオアでマイコン２５のリセット端子（図示省略）に入力される。尚、上記規定時間Ｔ２は、電源回路２９での上記規定時間Ｔ１よりも長く、例えば１００ｍｓである。
【００２０】
また、マイコン２５からのＷＤＰは監視回路３１にも入力される。そして、監視回路３１は、ＷＤＰが正しく出力されていたか否かの履歴を記憶する。例えば、監視回路３１は、マイコン２５から正しいデータを受信できない継続時間を計測している最中に、ＷＤＰが出力されたか否かを監視し、リセット信号を出力した場合に、ＷＤＰの監視結果を内部の不揮発性メモリに記憶する。尚、監視回路３１も、電源回路２９と同様に、マイコン２５からＷＤＰが出力されない時間が規定時間以上になると、マイコン２５が異常と判断して、マイコン２５へリセット信号を出力するようになっていても良い。このように構成すれば、ＷＤＰによるマイコン２５の監視に関して二重化され、信頼性が向上する。
【００２１】
入力回路３３は、端子２３から入力されるスイッチ信号（ハイがバッテリ電圧Ｖｂａｔで、ローが０Ｖの信号）を、マイコン２５が入力可能な電圧の信号（ハイが電源電圧Ｖｄで、ローが０Ｖの信号）にレベルに変換してマイコン２５に出力する。
【００２２】
マイコン２５は、プログラムを実行するＣＰＵ４１と、ＣＰＵ４１によって実行されるプログラムや固定のデータが記憶されたＲＯＭ４２と、ＣＰＵ４１による演算結果等が記憶されるＲＡＭ４３と、電源が常時供給されるバックアップＲＡＭ４４と、データの書き換えが可能な不揮発性メモリ（例えばフラッシュメモリやＥＥＰＲＯＭ等）４５と、を備える。バックアップＲＡＭ４４は、マイコン２５に電源電圧Ｖｄが供給されない場合でもデータを保持可能という点において、不揮発性メモリ４５と同様の不揮発性メモリであると言える。また、バックアップＲＡＭ４４は、マイコン２５がリセットされてもデータを保持する（つまりデータのクリアはされない）メモリであり、この点においても不揮発性メモリ４５と同じである。
【００２３】
メインリレー駆動回路２７は、オンすることで端子１８をグランドラインに導通させてコイル１５ａに電流を流すトランジスタ５１と、オア回路５３と、を備える。
オア回路５３は、端子２３から入力されるスイッチ信号と、マイコン２５から出力されるハイアクティブの電源制御信号Ｓｃとの、論理和信号を、トランジスタ５１に駆動信号として出力する。そして、オア回路５３の出力がハイの場合にトランジスタ５１がオンする。尚、オア回路５３は、電源回路２９から電源電圧Ｖｄが出力されていない場合（つまり、メインリレー１５がオフの場合）でも、スイッチ信号がハイ（＝Ｖｂａｔ）になれば、そのスイッチ信号によってトランジスタ５１をオンさせる。そして、トランジスタ５１がオンすることで、コイル１５ａに電流が流れてメインリレー１５がオンする。
【００２４】
このため、メインリレー駆動回路２７は、スイッチ信号がハイの場合（つまり、電源スイッチ１９がオンの場合）、あるいは、マイコン２５からの電源制御信号Ｓｃがハイの場合に、メインリレー１５をオンさせることとなる。
【００２５】
よって、車両の使用者により電源スイッチ１９がオンされて、スイッチ信号がハイになると、メインリレー１５がオンして、ＥＣＵ１１の端子１７に電源電圧ＶＢが供給され、その結果、電源回路２９からマイコン２５に電源電圧Ｖｄが供給されて、マイコン２５が起動する。
【００２６】
そして、マイコン２５は、起動すると、電源制御信号Ｓｃをハイにする。このため、その後に電源スイッチ１９がオフされても、メインリレー１５はオンし続けることとなる。その後、マイコン２５は、入力回路３３を介して入力されるスイッチ信号に基づいて、電源スイッチ１９がオフされたことを検知すると、電源スイッチ１９のオフ後に実施すべき処理を行い、その処理を終了したなら電源制御信号Ｓｃをハイからローにする。すると、その時点でスイッチ信号はローであるため、メインリレー１５がオフして、マイコン２５は動作を停止することとなる。このようなマイコン２５の動作停止は、正常な動作停止（正常な動作の終了）である。
【００２７】
また、ＥＣＵ１１には、他のＥＣＵ５５から時間情報が入力され、その時間情報は、マイコン２５に入力されるようになっている。例えば、他のＥＣＵ５５は、ナビゲーション装置であり、時間情報としては、一定時間毎にカウントアップされるカウンタ値がマイコン２５に入力される。そのカウンタ値としては、例えば、他のＥＣＵ５５に備えられているマイコンのフリーランタイマの値を用いることができる。また、他の例として、他のＥＣＵ５５からマイコン２５に入力される時間情報としては、例えば絶対時刻の情報（時刻データ）でも良い。
【００２８】
次に、マイコン２５が行う処理について、図２及び図３を用い説明する。尚、マイコン２５が行う処理は、実際には、ＣＰＵ４１がＲＯＭ４２内のプログラムを実行することで行う処理である。
【００２９】
マイコン２５は、リセットが解除されて起動すると、図２に示す起動時処理を実行する。
図２に示すように、マイコン２５は、起動時処理を開始すると、まずＳ１１０にて、バックアップＲＡＭ４４における所定の記憶領域４４ａ（図１参照）に記憶されるＰＭＯＮが、オンであるか否かを判定する。
【００３０】
ＰＭＯＮは、当該マイコン２５が前回動作を停止した時点での、電源スイッチ１９のオン／オフ状態を示す履歴情報としてのフラグであり、後述する図３のＳ２２０又はＳ２３０にて、オン又はオフに設定される。ＰＭＯＮは、例えば“１”であることが、電源スイッチ１９のオンを示す方のオンであり、“０”であることが、電源スイッチ１９のオフを示す方のオフである。
【００３１】
そして、マイコン２５が起動した際に、ＰＭＯＮがオフであることは、当該マイコン２５が前回動作を停止した時に電源スイッチ１９がオフであったことを意味し、要するに、マイコン２５が電源スイッチ１９のオフに伴って正常に動作を停止した（正常に動作を終了した）ことを意味する。
【００３２】
一方、マイコン２５が起動した際に、ＰＭＯＮがオンであることは、当該マイコン２５が前回動作を停止した時に電源スイッチ１９がオンであったことを意味し、要するに、電源スイッチ１９のオン中にマイコン２５が動作を停止したことを意味する。このことは、本実施形態では、マイコン２５が動作中に不明な原因（マイコン２５が認識していない原因）によって突然リセットされたことを意味する。
【００３３】
このことを踏まえて、マイコン２５は、Ｓ１１０にて、ＰＭＯＮがオンではない（オフである）と判定した場合には、そのまま当該起動時処理を終了するが、Ｓ１１０にて、ＰＭＯＮがオンであると判定した場合には、当該マイコン２５が不明な原因により動作を停止していたと判定して、Ｓ１２０に進む。
【００３４】
マイコン２５は、Ｓ１２０では、バックアップＲＡＭ４４における所定の記憶領域４４ｂ（図１参照）であるＴＣＮＴに記憶されている値を、例えばＲＡＭ４３又はバックアップＲＡＭ４４における所定の記憶領域であるＴＣＮＴＰに、コピーして退避させる。
【００３５】
当該マイコン２５の前回の動作中において、ＴＣＮＴには、他のＥＣＵ５５からの時間情報が定期的に更新記憶されている。このため、マイコン２５の起動時において、ＴＣＮＴには、当該マイコン２５が前回動作を停止する前に他のＥＣＵ５５から取得した最終の時間情報が記憶されていることとなり、その時間情報（即ち、マイコン２５の動作停止時の時間情報）が、Ｓ１２０の処理によりＴＣＮＴＰに退避される。尚、ＴＣＮＴへの時間情報の更新記憶は、後述する図３のＳ２４０で行われる。
【００３６】
そして、マイコン２５は、次のＳ１３０にて、例えばＲＡＭ４３内のフラグであるＲＨＩＳをオンにし、その後、当該起動時処理を終了する。ＲＨＩＳは、当該マイコン２５が動作中にリセットされたか否かを示すリセット履歴としてのフラグであり、オンであることは、リセット有りを意味する。また、ＲＨＩＳは、例えば“１”であることがオンであり、“０”であることがオフである。
【００３７】
尚、図２では図示を省略しているが、前述したように、マイコン２５は、起動するとメインリレー駆動回路２７への電源制御信号Ｓｃをハイにする。
マイコン２５は、起動時処理を終了した後、図３に示す定期処理を一定時間毎に実行する。
【００３８】
図３に示すように、マイコン２５は、定期処理を開始すると、まずＳ２１０にて、電源スイッチ１９がオンであるか否かを判定する。電源スイッチ１９のオン／オフは、スイッチ信号によって判別することができる。
【００３９】
マイコン２５は、Ｓ２１０にて、電源スイッチ１９がオンであると判定した場合には、Ｓ２２０にて、前述のＰＭＯＮをオンにし、その後、Ｓ２４０に進む。また、マイコン２５は、Ｓ２１０にて、電源スイッチ１９がオンではない（オフである）と判定した場合には、Ｓ２３０にて、ＰＭＯＮをオフにし、その後、Ｓ２４０に進む。
【００４０】
Ｓ２１０〜Ｓ２３０の処理は、電源スイッチ１９がオンかオフかを定期的に判定して、その判定結果を示す履歴情報としてのＰＭＯＮを、記憶領域４４ａに記憶する処理である。そして、定期処理において、Ｓ２１０〜Ｓ２３０の処理が行われるため、もし電源スイッチ１９のオン中にマイコン２５が何等かの原因でリセットされた場合には、マイコン２５の次回の起動時において、ＰＭＯＮがオンになっている（電源スイッチ１９のオンを示している）こととなり、前述の起動時処理では、Ｓ１１０で「ＹＥＳ」と判定されてＳ１２０，Ｓ１３０の処理が行われることとなる。
【００４１】
マイコン２５は、Ｓ２４０では、他のＥＣＵ５５から時間情報を取得して、その取得した時間情報を前述のＴＣＮＴ（記憶領域４４ｂ）に記憶する。定期処理において、Ｓ２４０の処理が行われるため、マイコン２５の動作中において、ＴＣＮＴには、他のＥＣＵ５５からの時間情報が一定時間毎に更新記憶される。
【００４２】
マイコン２５は、次のＳ２５０にて、前述したリセット履歴としてのフラグであるＲＨＩＳがオンであるか否か（即ち、図２のＳ１１０で「ＹＥＳ」と判定されたか否か）を判定する。
【００４３】
そして、マイコン２５は、Ｓ２５０にて、ＲＨＩＳがオンではない（オフである）と判定した場合には、そのまま当該定期処理を終了するが、ＲＨＩＳがオンであると判定した場合には、Ｓ２６０に進む。
【００４４】
マイコン２５は、Ｓ２６０では、ＴＣＮＴに記憶されている時間情報（即ち、当該マイコン２５が今回起動してからＳ２４０の処理で最初に取得した時間情報）と、ＴＣＮＴＰに記憶されている時間情報（即ち、当該マイコン２５が前回動作を停止する前にＳ２４０の処理で取得した最終の時間情報）とから、当該マイコン２５の動作停止時間を表す停止時間情報としてのＲＴＩＭＥを算出する。具体的には、マイコン２５は、ＴＣＮＴに記憶されている時間情報から、ＴＣＮＴＰに記憶されている時間情報を引いた値を、ＲＴＩＭＥとして算出する。更に、マイコン２５は、Ｓ２６０では、算出したＲＴＩＭＥを、例えばバックアップＲＡＭ４４における所定の記憶領域４４ｃ（図１参照）に記憶する（書き込む）。
【００４５】
前述したように、本実施形態では、他のＥＣＵ５５から時間情報が、一定時間Ｔｃ毎にカウントアップされるカウンタ値であるため、Ｓ２６０で算出されるＲＴＩＭＥは、マイコン２５の動作停止時間を上記一定時間Ｔｃで割った値となる。一方、例えば、他のＥＣＵ５５からの時間情報が、絶対時刻の情報であるならば、Ｓ２６０で算出されるＲＴＩＭＥは、マイコン２５の動作停止時間をそのまま表すこととなる。
【００４６】
そして、マイコン２５は、次のＳ２７０にて、ＲＨＩＳをオフにし、その後、当該定期処理を終了する。
尚、マイコン２５は、Ｓ２３０の処理を行った場合には、その回の定期処理を終了した後、電源スイッチ１９のオフ後に実施すべき処理（動作を停止する前に実施すべき処理でもある）を行い、その後、電源制御信号Ｓｃをハイからローにする。すると、メインリレー１５がオフし、その結果、マイコン２５は動作を停止する。電源スイッチ１９のオフ後に実施すべき処理としては、例えば、ＲＡＭ４３やバックアップＲＡＭ４４に記憶されている所定のデータを、不揮発性メモリ４５にコピーして退避させるデータ保存用処理がある。そのデータ保存用処理により、例えばＲＴＩＭＥは不揮発性メモリ４５にも記憶される。
【００４７】
また、図３では図示を省略しているが、マイコン２５は、図３の定期処理の中で、ＷＤＰを出力する処理（具体的にはＷＤＰをレベル反転させる処理）を行う。他の例として、ＷＤＰを出力する処理は、図３の定期処理とは別の定期処理内で行われるようになっていても良い。
【００４８】
次に、以上のようなＥＣＵ１１の作用の一例について、図４を用い説明する。
尚、図４では、電源スイッチ１９がオフからオンされると、マイコン２５のリセット信号が即座にローからハイになるように図示しているが、実際には、電源回路２９のパワーオンリセット機能により、リセット信号は、電源スイッチ１９のオンから所定時間はローのままになり、その所定時間が経過するとハイになる。また、図４の最上段において、「起動時」と記載した矢印の期間は、図２の起動時処理が実行される期間であり、「定期」と記載した矢印の期間は、図３の定期処理が一定時間毎に実行される期間である。また、図４の例では、時刻ｔ１の時点において、ＰＭＯＮはオフになっている。つまり、時刻ｔ１よりも前に動作したマイコン２５は、図３のＳ２３０の処理を行ってから正常に動作を終了している。また、図４の例では、電源スイッチ１９がオフされる毎に、他のＥＣＵ５５からの時間情報が０に初期化されるが、他のＥＣＵ５５からの時間情報は、電源スイッチ１９のオフ中も値が増加していくようになっていても良い。
【００４９】
図４に示すように、時刻ｔ１で電源スイッチ１９がオンされると、マイコン２５が起動して、起動時処理を実行する。マイコン２５は、その回の起動時処理では、ＰＭＯＮがオンではないと判定する（Ｓ１１０：ＮＯ）。
【００５０】
そして、時刻ｔ２に示すように、マイコン２５は、起動後最初の定期処理において、電源スイッチ１９がオンであると判定して（Ｓ２１０：ＹＥＳ）、ＰＭＯＮをオンにし（Ｓ２２０）、更に、他のＥＣＵ５５からの時間情報をＴＣＮＴに更新記憶する（Ｓ２４０）。この時点で、他のＥＣＵ５５側の時間情報とＴＣＮＴ内の時間情報とが一致する。
【００５１】
そして、マイコン２５は、電源スイッチ１９がオンされている間、定期処理を実行する毎に、他のＥＣＵ５５からの時間情報をＴＣＮＴに更新記憶する（Ｓ２４０）。
その後、時刻ｔ３にて、電源スイッチ１９がオフされると、マイコン２５は、電源スイッチ１９がオフであると判定して（Ｓ２１０：ＮＯ）、ＰＭＯＮをオフにし（Ｓ２３０）、更に、その場合も、他のＥＣＵ５５からの時間情報をＴＣＮＴに更新記憶する（Ｓ２４０）。尚、図４の例では、電源スイッチ１９がオフされると、他のＥＣＵ５５からの時間情報が０に初期化されるため、電源スイッチ１９がオフされた後のＳ２４０の処理により、ＴＣＮＴ内の時間情報も０になる。
【００５２】
そして、マイコン２５は、その後、電源スイッチ１９のオフ後に実施すべき処理を行い、電源制御信号Ｓｃをローにして動作を停止する。
その後、時刻ｔ４で再び電源スイッチ１９がオンされると、マイコン２５が起動して、起動時処理を実行し、マイコン２５は、その回の起動時処理でも、ＰＭＯＮがオンではないと判定する（Ｓ１１０：ＮＯ）。
【００５３】
そして、時刻ｔ５に示すように、マイコン２５は、起動後最初の定期処理において、電源スイッチ１９がオンであると判定して（Ｓ２１０：ＹＥＳ）、ＰＭＯＮをオンにし（Ｓ２２０）、更に、他のＥＣＵ５５からの時間情報をＴＣＮＴに更新記憶する（Ｓ２４０）。この時点で、再び他のＥＣＵ５５側の時間情報とＴＣＮＴ内の時間情報とが一致する。そして、マイコン２５は、電源スイッチ１９がオンされている間、定期処理を実行する毎に、他のＥＣＵ５５からの時間情報をＴＣＮＴに更新記憶する（Ｓ２４０）。
【００５４】
ここで、時刻ｔ６から時刻ｔ７までの期間に示すように、電源スイッチ１９のオン中において、マイコン２５へのリセット信号が何等かの原因でアクティブレベル（この例ではロー）になり、マイコン２５がリセットされたとする。すると、マイコン２５において、ＴＣＮＴには、当該マイコン２５が動作を停止する時刻ｔ６の前に他のＥＣＵ５５から取得した最終の時間情報が記憶されていることとなる。
【００５５】
そして、マイコン２５は、時刻ｔ７でリセット信号がローからハイに戻ると起動するが、その回の起動時処理では、ＰＭＯＮがオンであると判定して（Ｓ１１０：ＹＥＳ）、ＴＣＮＴに記憶されている時間情報をＴＣＮＴＰにコピーすると共に（Ｓ１２０）、ＲＨＩＳをオンにする（Ｓ１３０）。
【００５６】
このため、マイコン２５は、時刻ｔ８にて起動後最初の定期処理を実行した場合には、やはり、他のＥＣＵ５５からの時間情報をＴＣＮＴに更新記憶するが（Ｓ２４０）、この場合には、ＲＨＩＳがオンであると判定して（Ｓ２５０：ＹＥＳ）、Ｓ２６０の処理を行うこととなる。つまり、マイコン２５は、他のＥＣＵ５５から今回のＳ２４０で取得したＴＣＮＴ内の時間情報から、起動時処理のＳ１２０でＴＣＮＴＰにコピーした時間情報を引いた値を、ＲＴＩＭＥとして算出し、その算出したＲＴＩＭＥを記憶領域４４ｃに記憶する。そして、マイコン２５は、その後、ＲＨＩＳをオフにする（Ｓ２７０）。
【００５７】
このようなＥＣＵ１１では、マイコン２５が、当該マイコン２５にとって不明な原因（即ち、起動時処理のＳ１１０で「ＹＥＳ」と判定されることとなる何等かの原因）によりリセットされて、その後、起動した場合には、マイコン２５の動作停止時間を表す停止時間情報としてのＲＴＩＭＥが、記憶領域４４ｃに記憶される。
【００５８】
このため、記憶領域４４ｃに記憶されているＲＴＩＭＥから、マイコン２５のリセットによる動作停止時間を知ることができ、その動作停止時間から、マイコン２５のリセット原因を分析することができるようになる。マイコン２５のリセットによる動作停止時間はリセット原因（異常内容）によって変わるからである。
【００５９】
例えば、マイコン２５へのリセット信号のラインにノイズが混入してマイコン２５がリセットされた場合には、マイコン２５の動作停止時間は、マイコン２５の起動時間と概ね同じになる。ここで言うマイコン２５の起動時間とは、マイコン２５が、リセットの解除時（リセット信号がハイになった時）から処理を正常に行う状態になるまでの時間であって、例えば定期処理を正常に実行するまでの時間であり、例えば１００ｍｓである。
【００６０】
また例えば、発振子２６に一時的な異常が生じて、マイコン２５の動作が停止し、マイコン２５からＷＤＰが出力されないことにより、マイコン２５が電源回路２９によってリセットされた場合には、マイコン２５の動作停止時間は、「前述の規定時間Ｔ１（例えば４０ｍｓ）＋マイコン２５の起動時間」と概ね同じになる。尚、ここでは、電源回路２９によるリセット時間（リセット信号をローにする時間で、例えば数ｍｓ）は無視している。
【００６１】
また例えば、通信線３５に異常が生じて、マイコン２５からの通信データが監視回路３１に入力されないことにより、マイコン２５が監視回路３１によってリセットされた場合には、マイコン２５の動作停止時間は、「前述の規定時間Ｔ２（例えば１００ｍｓ）＋マイコン２５の起動時間」と概ね同じになる。尚、ここでは、監視回路３１によるリセット時間（例えば数ｍｓ）は無視している。
【００６２】
このように、ＲＴＩＭＥにより、マイコン２５の動作停止時間が概ねでも分かれば、どの回路からマイコン２５にリセットがかけられたのかや、どの部分が異常になったためにマイコン２５がリセットされたのかなど、マイコン２５のリセット原因を分析することができるようになる。また、発生したマイコン２５のリセットが、単発リセットと連続リセットとの何れであるかの識別もできるようになる。
【００６３】
単発リセットとは、マイコン２５が１回リセットされて、そのリセットの解除後に正常復帰した場合の、その１回のリセットのことである。単発リセットが発生した場合には、上記のように、異常の内容によってマイコン２５の動作停止時間が変わる。
【００６４】
連続リセットとは、電源回路２９又は監視回路３１が、マイコン２５が異常であると判断して、マイコン２５をリセットし、それでもマイコン２５が正常復帰せずに再びマイコン２５をリセットする、という状態が繰り返された場合の、複数回のリセットのことである。連続リセットが発生した場合、マイコン２５は、異常になってから複数回目のリセットによって正常復帰するまで継続して動作を停止することとなるため、動作停止時間は、単発リセットの場合の動作停止時間と比べて格段に長くなり得る。
【００６５】
尚、記憶領域４４ｃに記憶されたＲＴＩＭＥは、例えば前述のデータ保存用処理によって不揮発性メモリ４５にも記憶されるため、その不揮発性メモリ４５から読み出すことも可能である。また例えば、ＥＣＵ１１に通信線を介して接続される外部装置としての診断ツールにより、バックアップＲＡＭ４４又は不揮発性メモリ４５からデータを読み出すことができるように構成してあれば、マイコン２５が算出したＲＴＩＭＥをＥＣＵ１１の外部へと簡単に読み出すことができる。
【００６６】
また、記憶領域４４ｃは、ＲＴＩＭＥを複数記憶可能な領域であっても良いし、ＲＴＩＥを１つだけ記憶可能な領域であっても良い。前者の場合、マイコン２５は、定期処理のＳ２６０では、算出したＲＴＩＭＥを、記憶領域４４ｃのうちの空いている領域に書き込めば良く、また、空いている領域がなければ最も古いＲＴＩＭＥに上書きすれば良い。後者の場合、マイコン２５は、定期処理のＳ２６０では、その処理が２回目以降であれば、必然的にＲＴＩＭＥの上書きを行うこととなる。
【００６７】
また、ＥＣＵ１１において、マイコン２５は、電源スイッチ１９がオンされると電源電圧Ｖｄが供給されて起動し、電源スイッチ１９がオフされたことを検知すると動作を停止するようになっている。そして、マイコン２５は、定期処理により、電源スイッチ１９がオンかオフかを定期的に判定して、その判定結果を示すＰＭＯＮを記憶領域４４ａに記憶している（Ｓ２１０〜Ｓ２３０）。そして更に、マイコン２５は、起動時処理により、記憶領域４４ａ内のＰＭＯＮが電源スイッチ１９のオンを示すか否かを判定し（Ｓ１１０）、ＰＭＯＮが電源スイッチ１９のオンを示す場合に、当該マイコン２５が不明な原因により動作を停止していたと判定して（Ｓ１１０：ＹＥＳ）、その場合にＲＴＩＭＥを算出するようになっている。
【００６８】
このため、マイコン２５は、自身が動作中に不明な原因によって突然リセットされたことを正しく判定することができ、その突然のリセットが発生したと判定した場合に、ＲＴＩＭＥを算出して保存することができる。
【００６９】
尚、記憶領域４４ａ，４４ｂは、マイコン２５がリセットされてもデータを保持可能な記憶領域であれば良く、バックアップＲＡＭ４４に限らず、例えば不揮発性メモリ４５の記憶領域でも良い。また、算出したＲＴＩＭＥを記憶領域４４ｃから不揮発性メモリ４５にも保存するのであれば、Ｓ２６０でＲＴＩＭＥを書き込む記憶領域４４ｃは、ＲＡＭ４３の記憶領域としても良い。また、Ｓ２６０でＲＴＩＭＥを書き込む記憶領域４４ｃは、不揮発性メモリ４５の記憶領域としても良い。
【００７０】
［第２実施形態］
次に、第２実施形態のＥＣＵについて説明するが、ＥＣＵの符号としては、第１実施形態と同じ“１１”を用いる。また、第１実施形態と同様の構成要素や処理についても、第１実施形態と同じ符号を用いる。そして、このことは、後述する他の実施形態についても同様である。
【００７１】
第２実施形態のＥＣＵ１１は、第１実施形態のＥＣＵ１１と比較すると、マイコン２５が、図３の定期処理に代えて、図５の定期処理を実行する点が異なる。そして、図５の定期処理は、図３の定期処理に対してＳ３１０、Ｓ３２０及びＳ３３０が追加されている。
【００７２】
図５に示すように、マイコン２５は、定期処理では、前述のＳ２１０にて、電源スイッチ１９がオンではないと判定した場合（即ち、マイコン２５が電源スイッチ１９のオフに伴って正常に動作を終了する場合）には、Ｓ３１０に進む。そして、マイコン２５は、Ｓ３１０にて、メモリ上のカウンタであるＰＣＮＴをインクリメントし、その後、前述のＳ２３０に進む。ＰＣＮＴは、当該マイコン２５が正常に動作を終了した回数を計数するためのカウンタであり、例えばバックアップＲＡＭ４４又は不揮発性メモリ４５に記憶される。また、ＰＣＮＴの初期値は、後述するＳ３２０での大小比較に用いられる所定値Ｎ１よりも大きい値（例えばＰＣＮＴの最大値）に設定されている。また、ＰＣＮＴが最大値になっている状態でＳ３１０でのインクリメントが行われても、ＰＣＮＴは最大値のままとなる。
【００７３】
また、マイコン２５は、前述のＳ２５０にて、ＲＨＩＳがオンであると判定した場合には、Ｓ３２０に進み、ＰＣＮＴが所定値Ｎ１（例えば２０）以上であるか否かを判定する。マイコン２５は、Ｓ３２０にて、ＰＣＮＴが所定値Ｎ１以上であると判定した場合には、前述のＳ２６０に進んでＲＴＩＭＥの算出及び記憶を行い、その後、Ｓ３３０にて、ＰＣＮＴを０にクリアした後、前述のＳ２７０に進み、ＲＨＩＳをオフにして、当該定期処理を終了する。
【００７４】
一方、マイコン２５は、Ｓ３２０にて、ＰＣＮＴが所定値Ｎ１以上ではないと判定した場合には、Ｓ２６０及びＳ３３０をスキップして、前述のＳ２７０に進む。
前述したように、ＰＣＮＴの初期値は所定値Ｎ１よりも大きいため、マイコン２５は、Ｓ２５０からＳ３２０に最初に進んだ場合、その回のＳ３２０では「ＹＥＳ」と判定してＳ２６０の処理を行う。そして、マイコン２５は、Ｓ２６０でＲＴＩＭＥの算出及び記憶を行うと、次のＳ３３０でＰＣＮＴを０にクリアする。このため、その後は、ＰＣＮＴがＳ３１０でインクリメントされて所定値Ｎ１以上になるまでは、マイコン２５は、たとえＳ２５０で「ＹＥＳ」と判定しても、Ｓ３２０で「ＮＯ」と判定して、ＲＴＩＭＥの算出を行わないこととなる。
【００７５】
つまり、マイコン２５は、Ｓ２６０でＲＴＩＭＥの算出及び記憶を行うと、その後、当該マイコン２５が正常に動作を終了した回数が所定回数（Ｎ１）以上になるまで、Ｓ２６０の処理を禁止するようになっている。
【００７６】
このような第２実施形態によれば、マイコン２５の原因不明のリセットが頻繁に発生した場合に、頻発したリセットのうち、最初のリセットによる動作停止時間を表すＲＴＩＭＥ（以下、最初のＲＴＩＭＥという）だけを記憶領域４４ｃに保存することができる。
【００７７】
リセットが頻発した場合、最初のリセットの原因は、２回目以降のリセットの原因と同じか関連している可能性が高い。このため、最初のＲＴＩＭＥから、最初のリセットの原因を分析して特定あるいは推定することができれば、後のリセットの原因も推定できる可能性が高い。よって、最初のＲＴＩＭＥだけを記憶領域４４ａに保存すことにより、記憶領域４４ａの必要容量（リソース）を低減しつつ、十分な効果が得られると考えられる。特に、記憶領域４４ｃの容量を、ＲＴＩＥを１つだけ記憶可能な容量に設定した場合に、最初のＲＴＩＭＥを上書きしてしまうことなく保存することができるようになる。勿論、記憶領域４４ｃの容量が、ＲＴＩＭＥをｎ個（ｎは２以上の整数）記憶可能な容量であったとしても、同様の効果が得られる。つまり、ｎを超える回数のリセットが発生した場合でも、最初のＲＴＩＭＥを上書きしてしまうことなく保存することができるようになる。
【００７８】
また、マイコン２５の正常な動作終了の回数が所定回数（Ｎ１）以上になれば、ＲＴＩＭＥの算出及び記憶の禁止が解除される。よって、その後に、マイコン２５の原因不明のリセットが発生したならば、そのリセットによる動作停止時間を表すＲＴＩＭＥが再び算出されて記憶領域４４ｃに記憶される。このため、正常状態が続いた後の最新のＲＴＩＭＥを記憶領域４４ｃに残すこともできる。尚、記憶領域４４ｃに既に記憶されていたＲＴＩＭＥが、最新のＲＴＩＭＥに上書きされたとしても、その最新のＲＴＩＭＥは、正常状態が続いた後の異常による動作停止時間を表すものであるため、故障解析の面では、その最新のＲＴＩＭＥの方が重要と考えられる。
【００７９】
［第３実施形態］
第３実施形態のＥＣＵ１１は、第２実施形態のＥＣＵ１１と比較すると、マイコン２５が、図５の定期処理に代えて、図６の定期処理を実行する点が異なる。
【００８０】
そして、図６の定期処理は、図５の定期処理に対してＳ３４０が追加されている。
図６に示すように、マイコン２５は、定期処理では、前述のＳ２６０にてＲＴＩＭＥの算出及び記憶を行った後、Ｓ３４０に進み、今回算出したＲＴＩＭＥが所定値Ｎ２以下であるか否かを判定する。そして、マイコン２５は、ＲＴＩＭＥが所定値Ｎ２以下であれば、前述のＳ３３０に進んでＰＣＮＴを０にクリアするが、ＲＴＩＭＥが所定値Ｎ２以下でなければ、Ｓ３３０をスキップして前述のＳ２７０に進む。
【００８１】
つまり、マイコン２５は、Ｓ２６０で算出したＲＴＩＭＥが所定値Ｎ２以下でない場合には（Ｓ３４０：ＮＯ）、ＰＣＮＴを０に戻さないことにより、「当該マイコン２５が正常に動作を終了した回数が所定回数（Ｎ１）以上になるまでＳ２６０の処理を禁止する禁止機能」を、無効にしている。逆に言えば、Ｓ２６０で算出したＲＴＩＭＥが所定値Ｎ２以下であった場合に限定して、上記禁止機能を有効にしている。
【００８２】
そして、上記所定値Ｎ２は、単発リセットとして考えられるリセットが発生した場合の、ＲＴＩＭＥの最大値に設定している。
このような第３実施形態によれば、連続リセットが発生したことにより、Ｓ２６０の処理が行われた場合には、上記禁止機能が無効となる。よって、その後に単発リセットが発生すれば、その単発リセットに関するＲＴＩＭＥ（単発リセットによる動作停止時間を表すＲＴＩＭＥ）を算出して記憶領域４４ａに記憶することができる。
【００８３】
このため、連続リセットと単発リセットとのうち、故障解析に有効な方の単発リセットに関するＲＴＩＭＥを優先して記憶領域４４ｃに残すことができる。単発リセットの場合には、異常内容によって動作停止時間が変わるため、ＲＴＩＭＥからリセット原因（異常内容）を分析することができる。これに対して、連続リセットの場合には、ＲＴＩＭＥから、異常状態がどのくらい継続したかは分かるものの、リセット原因を分析することまでは難しいと考えられるからである。
【００８４】
以上、本発明の実施形態（変形例を含む）について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述の数値も一例であり他の値でも良い。
【００８５】
例えば、マイコン２５の機能として、前述したように、高処理負荷によるタスク抜けやプログラムカウンタ異常などの内部異常を検出する第１の機能と、内部異常を検出した場合に、異常内容を示すエラーコードをバックアップＲＡＭ４４又は不揮発性メモリ４５に記憶する第２の機能と、エラーコードを記憶した後、故意にリセットされるための処理（例えばＷＤＰの出力を止める処理）を行う第３の機能と、を設けても良い。その場合、マイコン２５は、図２の起動時処理におけるＳ１１０で「ＹＥＳ」と判定した場合に、上記第３の機能による故意のリセット後の起動であるか否かを判定し、故意のリセット後の起動であると判定した場合には、Ｓ１２０及びＳ１３０をスキップするようになっていても良い。
【００８６】
また例えば、マイコン２５は、時間情報を、ＥＣＵ１１内に設けられている他の装置（他のマイコンや回路等）から取得するようになっていても良い。また、監視回路３１は、例えば他のマイコンであっても良い。また、電源回路２９と監視回路３１との一方だけに、マイコン２５の動作を監視する機能が備えられる構成であっても良い。
【００８７】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を、課題を解決できる限りにおいて省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言によって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述したＥＣＵの他、当該ＥＣＵを構成要素とするシステム、当該ＥＣＵのマイコンが実行するプログラム、このプログラムを記録した媒体、マイコンのリセット原因分析用情報の保存方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００８８】
２５…マイコン、２９…電源回路、３１…監視回路、４１…ＣＰＵ、４４ｃ…バックアップＲＡＭの記憶領域
【図１】
0005962697.tif 000002
【図２】
0005962697.tif 000003
【図３】
0005962697.tif 000004
【図４】
0005962697.tif 000005
【図５】
0005962697.tif 000006
【図６】
0005962697.tif 000007