(57)【特許請求の範囲】
【請求項１】
制御装置（１）であって、
データが記憶される記憶部（１２）と、
前記記憶部の記憶データの誤りを検出した際に異常信号を出力する誤り検出部（１２ａ）と、
前記記憶部の記憶データに基づき演算処理を行う演算部（１１）と、
前記誤り検出部から出力される前記異常信号の受信に基づき前記演算部をリセットするリセット部（１４）と、を備え、
前記演算部は、前記リセット部によるリセットから復帰した際、前記異常信号に基づく前記リセット部のリセット機能を無効化するとともに、前記異常信号に基づく前記リセット部のリセット機能が無効化されている期間に前記記憶部の記憶データの誤りを解消することを特徴とする制御装置。
【請求項２】
前記記憶部には、前記リセット部により前記演算部がリセットされる際に初期化すべきでないデータが記憶される永続データ領域と、初期化してもよいデータが記憶される非永続データ領域とが設けられ、
前記演算部は、前記リセット部によるリセットから復帰した際、前記非永続データ領域を初期化するとともに、前記異常信号に基づく前記リセット部のリセット機能が無効化されている期間に前記永続データ領域における前記記憶部の記憶データの誤りを解消することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記リセット部は、前記記憶部の動作電圧に異常が生じた際に前記記憶部及び前記演算部を共にリセットするものであり、
前記演算部は、リセットされた際、当該リセットの要因が前記記憶部の動作電圧の異常である場合には、前記非永続データ領域及び前記永続データ領域を共に初期化することを特徴とする請求項２に記載の制御装置。
【請求項４】
前記演算部は、前記異常信号に基づく前記リセット部のリセット機能が無効化されている期間に、前記永続データ領域の記憶データを順次読み込むとともに、読み込んだ記憶データのそれぞれについて前記誤り検出部により誤りが検出されるか否かを判定することで誤りの検出された記憶データを特定し、当該特定された記憶データのみを初期化することにより、前記永続データ領域における前記記憶部の記憶データの誤りを解消することを特徴とする請求項２又は３に記載の制御装置。
【請求項５】
前記永続データ領域の記憶データがバックアップされる不揮発性の記憶部（２０）を更に備え、
前記演算部は、前記異常信号に基づく前記リセット部のリセット機能が無効化されている期間に、前記永続データ領域の記憶データを順次読み込むとともに、読み込んだ記憶データのそれぞれについて前記誤り検出部により誤りが検出されるか否かを判定することで誤りの検出された記憶データを特定し、当該特定された記憶データを前記不揮発性の記憶部に記憶されたバックアップデータに基づき復元することにより、前記永続データ領域における前記記憶部の記憶データの誤りを解消することを特徴とする請求項２又は３に記載の制御装置。
【請求項６】
前記演算部は、前記異常信号に基づく前記リセット部のリセット機能が無効化されている期間に前記永続データ領域の全ての記憶データを初期化することにより、前記永続データ領域における前記記憶部の記憶データの誤りを解消することを特徴とする請求項２又は３に記載の制御装置。
【請求項７】
前記永続データ領域の記憶データがバックアップされる不揮発性の記憶部（２０）を更に備え、
前記演算部は、前記異常信号に基づく前記リセット部のリセット機能が無効化されている期間に前記永続データ領域の全ての記憶データを前記不揮発性の記憶部に記憶されたバックアップデータに基づき復元することにより、前記永続データ領域における前記記憶部の記憶データの誤りを解消することを特徴とする請求項２又は３に記載の制御装置。
【請求項８】
前記誤り検出部は、ＥＣＣ機能により前記記憶部の記憶データの誤りを検出することを特徴とする請求項１〜７のいずれか一項に記載の制御装置。
【請求項９】
前記記憶部は、ＲＡＭ（１２）からなることを特徴とする請求項１〜８のいずれか一項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置に関する。
【背景技術】
【０００２】
従来、特許文献１に記載のマイクロコンピュータ（以下、「マイコン」と略記する）がある。特許文献１に記載のマイコンは、各種制御データが記憶されるメモリと、メモリに記憶されたデータに基づき各種演算処理を行う演算部（ＣＰＵ）とを有している。特許文献１に記載のマイコンではメモリにＥＣＣ（Error Check and Correct）機能が搭載されている。ＥＣＣ機能は、データをメモリに記憶する際に、本来のデータに誤り訂正符号を付加してメモリに記憶することにより、誤り訂正又は誤り検出を可能とするものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−５２０６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、マイコンには、何らかの異常が生じた場合、演算部をリセット（再始動）することにより、マイコンの動作を復帰させる機能を有するものがある。このような演算部のリセット機能を特許文献１に記載のマイコンに搭載した場合、演算部のリセットが繰り返されるおそれがある。
【０００５】
具体的には、ＥＣＣ機能によりメモリの記憶データの誤りが検出された際に演算部が初期化された後、復帰した演算部がメモリの記憶データを読み込むと、ＥＣＣ機能によりメモリの記憶データの誤りが再度検出される。そのため、演算部の初期化が再度行われることとなる。以降、ＥＣＣ機能によるメモリの誤り検出と、演算部のリセットとが繰り返し行われる。このような状況が発生すると、マイコンの適切な動作を確保できないおそれがある。
【０００６】
本発明は、こうした実情に鑑みてなされたものであり、その目的は、記憶部の記憶データに誤りが検出された際に、演算部のリセットが繰り返される状況を回避することの可能な制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、制御装置（１）は、データが記憶される記憶部（１２）と、記憶部の記憶データの誤りを検出した際に異常信号を出力する誤り検出部（１２ａ）と、記憶部の記憶データに基づき演算処理を行う演算部（１１）と、誤り検出部から出力される異常信号の受信に基づき演算部をリセットするリセット部（１４）と、を備える。演算部は、リセット部によるリセットから復帰した際、誤り検出部から出力される異常信号に基づくリセット部のリセット機能を無効化するとともに、当該異常信号に基づくリセット部のリセット機能が無効化されている期間に記憶部の記憶データの誤りを解消する。
【０００８】
この構成によれば、記憶部の記憶データに誤りが発生することにより演算部がリセットされた場合、リセットから復帰した演算部は、誤り検出部から出力される異常信号に基づくリセット部のリセット機能が無効化されている期間に記憶部の記憶データの誤りを解消する。これにより、その後に演算部が記憶部の記憶データを読み込んだ際に誤り検出部が記憶部の記憶データの誤りを再度検出することがなくなる。よって、リセット部が演算部を再度リセットすることがなくなるため、演算部のリセットが繰り返される状況を回避することができる。
【発明の効果】
【０００９】
本発明によれば、記憶部の記憶データに誤りが検出された際に、演算部のリセットが繰り返される状況を回避することができる。
【図面の簡単な説明】
【００１０】
【図１】制御装置の第１実施形態についてそのシステム構成を示すブロック図。
【図２】第１実施形態の制御装置についてそのマイクロコンピュータの構成を模式的に示すブロック図。
【図３】第１実施形態のマイクロコンピュータについてそのＲＡＭに記憶されている情報を示す図表。
【図４】第１実施形態のマイクロコンピュータについてＲＡＭへのデータの書き込みの際のＥＣＣ機能部の動作例を模式的に示す模式図。
【図５】第１実施形態のマイクロコンピュータについてＲＡＭからのデータの読み込みの際のＥＣＣ機能部の動作例を模式的に示す模式図。
【図６】第１実施形態のマイクロコンピュータについてそのリセット部により行われるリセット処理の手順を示すフローチャート。
【図７】第１実施形態のマイクロコンピュータについてそのＣＰＵにより実行される処理の手順を示すフローチャート。
【図８】第１実施形態のマイクロコンピュータについてそのＣＰＵにより実行される誤り解消処理の手順を示すフローチャート。
【図９】第１実施形態のマイクロコンピュータの動作例を模式的に示す模式図。
【図１０】制御装置の第２実施形態についてそのＣＰＵにより実行される誤り解消処理の手順を示すフローチャート。
【図１１】制御装置の変形例についてその構成を模式的に示すブロック図。
【図１２】変形例の制御装置についてそのＣＰＵにより実行される誤り解消処理の手順を示すフローチャート。
【図１３】制御装置の他の変形例についてそのＣＰＵにより実行される誤り解消処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１１】
＜第１実施形態＞
以下、制御装置の第１実施形態について説明する。
【００１２】
図１に示されるように、制御装置（以下、「ＥＣＵ」と略記する）１は、車両に搭載されたセンサ２により車両の速度やエンジンの回転速度等の車両情報を取得する。また、ＥＣＵ１は、センサ２を通じて取得される車両情報を表示するように制御対象である表示部３の駆動を制御する、いわゆるメータ制御を実行する。ＥＣＵ１は、マイコン１０を中心に構成されている。
【００１３】
図２に示されるように、マイコン１０は、演算部としてのＣＰＵ１１と、記憶部としてのＲＡＭ（ Random Access Memory）１２及びＲＯＭ（Read Only Memory）１３と、リセット部１４と、電源回路１５とを有している。ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、及びリセット部１４はバス１６を介して互いに通信可能に接続されている。
【００１４】
ＲＡＭ１２には、ＣＰＵ１１の演算結果やセンサ２の検出値等のデータが一時的に記憶される。ＲＡＭ１２の記憶データは、大きくは、永続データと非永続データとに分類可能である。
【００１５】
永続データは、メータ制御を実行する上で継続的に保障する必要のあるデータである。すなわち、永続データは、初期化すべきでないデータである。例えばＲＡＭ１２には、オド情報やトリップ情報等の表示部３の表示値情報が記憶されているが、これが初期化されると、表示部３の表示が急変動するため、好ましくない。このような表示部３の表示値情報等が永続データに該当する。
【００１６】
これに対し、非永続データは、メータ制御を実行する上で継続的に保障する必要のないデータである。すなわち、非永続データは、初期化を行ってもよいデータである。例えばＲＡＭ１２には、センサ２の検出値の情報等が一時的に記憶されているが、仮にその情報が初期化されたとしても、表示部３の表示が急変動することはない。このようなセンサの検出値の情報等が非永続データに該当する。
【００１７】
図３に示されるように、ＲＡＭ１２のデータ領域は、永続データが記憶される永続データ領域ＡＤ１と、非永続データが記憶される非永続データ領域ＡＤ２とに区分されている。永続データ領域ＡＤ１は、例えばアドレスＡ0からアドレスＡmまでのデータ領域として定義されている。非永続データ領域ＡＤ２は、例えばアドレスＡm+1からアドレスＡnまでのデータ領域として定義されている。なお、「ｍ」は０以上の整数であり、「ｎ」は「ｍ」よりも大きい整数である。
【００１８】
図２に示されるように、ＲＡＭ１２は、誤り検出部としてのＥＣＣ（Error Check and Correct）機能部１２ａを有している。ＥＣＣ機能部１２ａは、データをＲＡＭ１２に記憶する際に、本来のデータと共に誤り訂正符号を記憶することにより、誤り訂正又は誤り検出を可能とするものである。
【００１９】
詳しくは、図４に示されるように、ＥＣＣ機能部１２ａは、データＤiをＲＡＭ１２に記憶する際、データＤiに基づき誤り訂正符号（ＥＣＣ値）ＥＣiを生成する。なお、「ｉ」は０以上の任意の整数を表す。ＥＣＣ機能部１２ａは、ＲＡＭ１２の所定のアドレスＡiにデータＤiを記憶する際、データＤiと共に、生成した誤り訂正符号ＥＣiを記憶する。これにより、図３に示されるように、各アドレスにデータと誤り訂正符号とが関連付けられて記憶される。
【００２０】
図５に示されるように、ＥＣＣ機能部１２ａは、ＣＰＵ１１がＲＡＭ１２からデータＤiを読み込む際、データＤiに基づき確認用誤り訂正符号ＥＣi’を再度生成する。ＥＣＣ機能部１２ａは、生成した確認用誤り訂正符号ＥＣi’と、データＤiと共にＲＡＭ１２に記憶されている誤り訂正符号ＥＣiとを照合する。このとき、ＥＣＣ機能部１２ａは、データＤiに付属される誤り訂正符号ＥＣiと、確認用誤り訂正符号ＥＣi’とが一致している場合には、データＤiが正常であると判断する。これに対し、ＲＡＭ１２のデータＤiにデータ化け等が発生した場合、データＤiに付属される誤り訂正符号ＥＣiと、確認用誤り訂正符号ＥＣi’とが一致しなくなる。この場合、ＥＣＣ機能部１２ａは、データＤiに誤りが生じたと判定する。ＥＣＣ機能部１２ａは、データＤiに誤りが生じたと判定した場合、その旨を示すＥＣＣ異常信号をリセット部１４に出力する。このように、ＥＣＣ機能部１２ａは、ＲＡＭ１２の記憶データＤiの誤りを検出する機能と、ＲＡＭ１２の記憶データＤiの誤りを検出した際にそれをリセット部１４に通知する機能とを有している。
【００２１】
ＲＯＭ１３には、各種制御プログラム等が記憶されている。また、ＲＯＭ１３には、ＲＡＭ１２においてアドレスＡ0からアドレスＡmまでのデータが永続データ領域ＡＤ１に該当していること、及びアドレスＡm+1からアドレスＡnまでのデータが非永続データ領域ＡＤ２に該当していることが情報として記憶されている。
【００２２】
電源回路１５は、車載バッテリ等から供給される電源電圧ＶＢに基づきＣＰＵ１１の動作電圧Ｖｃｐｕ、ＲＡＭ１２の動作電圧Ｖｒａｍ、及びＲＯＭ１３の動作電圧Ｖｒｏｍをそれぞれ生成する。電源回路１５は、電源電圧ＶＢから入力される電圧が閾値電圧以上であるか否かを監視している。電源回路１５は、電源電圧ＶＢから入力される電圧が閾値電圧以上である場合には、ＣＰＵ１１、ＲＡＭ１２、及びＲＯＭ１３へ電力を供給する。なお、閾値電圧としては、例えばＲＡＭ１２の動作を維持するために必要なＲＡＭ保持可能電圧値等が用いられる。電源回路１５は、電源電圧ＶＢから入力される電圧がＲＡＭ保持可能電圧値未満である場合には、その旨を示すＲＡＭ電圧異常信号をリセット部１４に出力する。
【００２３】
リセット部１４は、異常を検出した際に、検出した異常に対応するフラグを設定する処理と、ＣＰＵ１１等をリセットする処理とを実行する部分である。例えば、リセット部１４は、ＲＡＭ１２に対する異常検出フラグとして、第１異常検出フラグＦ１と第２異常検出フラグＦ２とを有している。各フラグＦ１，Ｆ２は、初期状態では、オフ状態に設定されている。リセット部１４は、例えば図６に示されるリセット処理を実行する。
【００２４】
図６に示されるように、リセット部１４は、まず、異常信号を受信したか否かを判断する（ステップＳ１）。リセット部１４は、異常信号を受信していない場合には（ステップＳ１：ＮＯ）、当該処理を終了する。
【００２５】
リセット部１４は、異常信号を受信した場合には（ステップＳ１：ＹＥＳ）、受信した異常信号がＲＡＭ電圧異常信号であるか否かを判断する（ステップＳ２）。リセット部１４は、受信した異常信号がＲＡＭ電圧異常信号である場合には（ステップＳ２：ＹＥＳ）、第１異常検出フラグＦ１をオンさせるとともに（ステップＳ３）、ＣＰＵ１１及びＲＡＭ１２を共にリセットする（ステップＳ４）。具体的には、リセット部１４は、ＣＰＵ１１及びＲＡＭ１２のリセット指令信号を電源回路１５に出力する。電源回路１５は、リセット部１４から出力されるＣＰＵ１１及びＲＡＭ１２のリセット指令信号を受信すると、ＣＰＵ１１の動作電圧Ｖｃｐｕ及びＲＡＭ１２の動作電圧Ｖｒａｍを一時的に遮断した後、ＣＰＵ１１及びＲＡＭ１２に動作電圧Ｖｃｐｕ，Ｖｒａｍを付与する。このようにしてＣＰＵ１１及びＲＡＭ１２がリセット（再始動）される。
【００２６】
リセット部１４は、受信した異常信号がＲＡＭ電圧異常信号でない場合には（ステップＳ２：ＮＯ）、受信した異常信号がＥＣＣ異常信号であるか否かを判断する（ステップＳ５）。リセット部１４は、受信した異常信号がＥＣＣ異常信号である場合には（ステップＳ５：ＹＥＳ）、第２異常検出フラグＦ２をオン状態に設定するとともに（ステップＳ６）、ＣＰＵ１１をリセットする（ステップＳ７）。具体的には、リセット部１４は、ＣＰＵ１１のリセット指令信号を電源回路１５に出力する。電源回路１５は、リセット部１４から出力されるＣＰＵ１１のリセット指令信号を受信すると、ＣＰＵ１１の動作電圧Ｖｃｐｕを一時的に遮断した後、ＣＰＵ１１に動作電圧Ｖｃｐｕを付与する。このようにしてＣＰＵ１１がリセットされる。
【００２７】
リセット部１４は、受信した異常信号がＥＣＣ異常信号でない場合には（ステップＳ５：ＮＯ）、当該処理を終了する。
【００２８】
図６に示されるように、リセット部１４により受信された異常信号がＲＡＭ電圧異常信号である場合とＥＣＣ異常信号である場合とでリセット部１４のリセット対象を異ならせている理由は以下の通りである。
【００２９】
電源回路１５からリセット部１４にＲＡＭ電圧異常信号が出力された場合には、ＲＡＭ１２の動作電圧Ｖｒａｍに異常が生じているため、ＲＡＭ１２の記憶データが異常な値になっているおそれがある。そのため、ＲＡＭ１２の永続データ領域ＡＤ１及び非永続データ領域ＡＤ２のそれぞれの記憶データに異常が生じている可能性がある。この場合、ＲＡＭ１２の記憶データに基づいてＣＰＵ１１が演算処理を行うと、ＥＣＵ１が異常な動作を行う可能性がある。そのため、リセット部１４は、受信した異常信号がＲＡＭ電圧異常信号である場合には、ＣＰＵ１１及びＲＡＭ１２を共にリセットすることにより、ＲＡＭ１２の動作電圧Ｖｒａｍの異常の解消を試みる。この場合、リセット後に再始動したＣＰＵ１１は、ＲＡＭ１２の全ての記憶データを初期化する。なお、本実施形態の初期化とは、予め定められた固定値（例えば「０」）を書き込む処理を意味する。なお、記憶データの初期化により、ＲＡＭ１２の記憶データの異常は解消される。
【００３０】
また、ＲＡＭ１２のＥＣＣ機能部１２ａからリセット部１４にＥＣＣ異常信号が出力された場合には、ＲＡＭ１２の記憶データの一部のみに誤りがあると考えられる。より具体的には、永続データ領域ＡＤ１の記憶データの一部、あるいは非永続データ領域ＡＤ２の記憶データの一部に誤りがあると考えられる。この場合、ＲＡＭ１２をリセットしてしまうと、非永続データのみならず、永続データも消えてしまうため、メータ制御を実行する上で不都合がある。そのため、リセット部１４は、受信した異常信号がＥＣＣ異常信号である場合には、ＣＰＵ１１のみをリセットする。
【００３１】
ところで、ＣＰＵ１１のみをリセットした場合、ＲＡＭ１２に記憶されているデータはそのままである。すなわち、ＲＡＭ１２には異常なデータが記憶されたままである。リセット後に再始動したＣＰＵ１１が最初に行う処理は、通常、ＲＡＭ１２の記憶データを読み込み、その内容を確認する処理となることが多い。ＣＰＵ１１がＲＡＭ１２の記憶データを読み込む際、ＥＣＣ機能部１２ａが記憶データの誤りを再度検出するため、リセット部１４がＣＰＵ１１を再度リセットする。以降、ＥＣＣ機能部１２ａによるＲＡＭ１２の記憶データの誤り検出と、ＣＰＵ１１のリセットとが繰り返されるおそれがある。
【００３２】
そこで、本実施形態では、ＥＣＣ異常信号に基づきリセット部１４がＣＰＵ１１をリセットした際、リセット後に再始動したＣＰＵ１１は、ＥＣＣ異常信号に基づくリセット部１４のリセット機能を無効化する。また、ＣＰＵ１１は、ＥＣＣ異常信号に基づくリセット部１４のリセット機能が無効化されている期間にＲＡＭ１２の記憶データの誤りを解消する。
【００３３】
次に、リセット後に再始動したＣＰＵ１１により実行される処理について図７を参照して詳しく説明する。
【００３４】
図７に示されるように、ＣＰＵ１１は、まず、ＲＡＭ１２の非永続データ領域ＡＤ２を初期化する（ステップＳ１０）。次に、ＣＰＵ１１は、リセットの要因を示す異常検出フラグがＲＡＭ１２の動作電圧Ｖｒａｍの異常によるものであるか否かを判断する（ステップＳ１１）。具体的には、ＣＰＵ１１は、リセット部１４の第１異常検出フラグＦ１を読み込み、当該第１異常検出フラグＦ１がオン状態となっている場合には、異常検出フラグがＲＡＭ１２の動作電圧Ｖｒａｍの異常によるものであると判断する（ステップＳ１１：ＹＥＳ）。この場合、ＣＰＵ１１は、ＲＡＭ１２の永続データ領域ＡＤ１を初期化する（ステップＳ１２）。すなわち、ＲＡＭ１２の動作電圧Ｖｒａｍに異常が生じた場合、ＣＰＵ１１は、ＲＡＭ１２の永続データ領域ＡＤ１及び非永続データ領域ＡＤ２を共に初期化する。その後、ＣＰＵ１１は、通常動作に移行する（ステップＳ１３）。
【００３５】
また、ＣＰＵ１１は、異常検出フラグがＲＡＭ１２の動作電圧Ｖｒａｍの異常によるものでない場合には（ステップＳ１１：ＮＯ）、異常検出フラグがＥＣＣ機能部１２ａの異常検出によるものであると判定する。この場合、ＣＰＵ１１は、ＥＣＣ異常信号に基づくリセット機能の無効化指令信号をリセット部１４にバス１６を介して出力することにより、ＥＣＣ異常信号に基づくリセット部１４のリセット機能を無効化する（ステップＳ１４）。これにより、リセット部１４は、ＥＣＣ機能部１２ａから出力されるＥＣＣ異常信号を受信した場合でも、ＣＰＵ１１のリセットを実行しなくなる。
【００３６】
ＣＰＵ１１は、ステップＳ１４の処理に続いて、永続データ領域ＡＤ１における記憶データの誤りを解消する処理を実行する（ステップＳ１５）。
【００３７】
具体的には、図８に示されるように、ＣＰＵ１１は、まず、リセット部１４の第２異常検出フラグＦ２をオフ状態に設定した後（ステップＳ１５０）、ＲＡＭ１２のアドレスＡjのデータＤjを読み込む（ステップＳ１５１）。なお、「ｊ」の初期値は「０」に設定されている。次に、ＣＰＵ１１は、第２異常検出フラグＦ２がオン状態になっているか否かを判断する（ステップＳ１５２）。ＣＰＵ１１は、第２異常検出フラグＦ２がオン状態である場合（ステップＳ１５２：ＹＥＳ）、アドレスＡjのデータＤjに誤りが発生していると判断し、当該データＤjを初期化する（ステップＳ１５３）。
【００３８】
ＣＰＵ１１は、ステップＳ１５３の処理に続いて、永続データ領域ＡＤ１の最終アドレスＡmの値ｍに値ｊが達したか否かを判断する（ステップＳ１５４）。また、ＣＰＵ１１は、ステップＳ１５２の処理で第２異常検出フラグＦ２がオフ状態であると判断した場合にも（ステップＳ１５２：ＮＯ）、すなわちアドレスＡjのデータＤjが正常な場合にも、ステップＳ１５４の処理に移行する。ＣＰＵ１１は、値ｊが値ｍに達していない場合には（ステップＳ１５４：ＮＯ）、値ｊをインクリメントした後（ステップＳ１５５）、ステップＳ１５０の処理に戻る。ＣＰＵ１１は、値ｊが値ｍに達した場合には（ステップＳ１５４：ＹＥＳ）、当該処理を終了する。
【００３９】
図７に示されるように、ＣＰＵ１１は、ステップＳ１５の処理を終えた後、ＥＣＣ異常信号に基づくリセット機能の有効化指令信号をリセット部１４にバス１６を介して出力することにより、ＥＣＣ異常信号に基づくリセット部１４のリセット機能を有効化する（ステップＳ１６）。これにより、リセット部１４は通常の動作状態に戻る。その後、ＣＰＵ１１は、永続データ領域ＡＤ１の記憶データを読み込む等して通常動作に移行する（ステップＳ１３）。
【００４０】
次に、本実施形態のＥＣＵ１の動作例について説明する。
図９に示されるように、ＲＡＭ１２が正常に動作している際に、永続データ領域ＡＤ１のアドレスＡ1のデータＤ1にデータ化けが発生して、アドレスＡ1のデータ内容が異常データＤeに変化したとする。この場合、ＥＣＣ機能部１２ａにより記憶データの誤りが検出されるため、ＣＰＵ１１がリセットされる。リセットから復帰したＣＰＵ１１は、ＥＣＣ異常信号に基づくリセット部１４のリセット機能を無効化する。この段階では、ＣＰＵ１１は、永続データ領域ＡＤ１の記憶データのうち、いずれに誤りが発生したかを特定することができていない。本実施形態のＣＰＵ１１は、ＥＣＣ異常信号に基づくリセット部１４のリセット機能が無効化されている期間に永続データ領域ＡＤ１の記憶データをアドレス順に読み込むことにより、記憶データに誤りが発生した箇所がアドレスＡ1であることを特定する。ＣＰＵ１１は、アドレスＡ1のデータが誤りであることを検出すると、当該アドレスＡ1のデータを初期化して記憶データの誤りを解消した後、ＥＣＣ異常信号に基づくリセット部１４のリセット機能を有効化する。これにより、ＲＡＭ１２のアドレスＡ1に初期データＤsが記憶された状態でＣＰＵ１１が通常動作を開始することとなる。
【００４１】
以上説明した本実施形態のマイコン１０によれば、以下の（１）〜（５）に示される作用及び効果を得ることができる。
【００４２】
（１）図９に示されるように、ＲＡＭ１２のアドレスＡ1に異常データＤeが記憶された際、当該アドレスＡ1に初期データＤsが記憶されることにより、リセット後に復帰したＣＰＵ１１が永続データ領域ＡＤ１の記憶データを読み込む際に、ＥＣＣ機能部１２ａが記憶データの誤りを再度検出することがなくなる。よって、リセット部１４がＣＰＵ１１を再度リセットすることがなくなるため、ＣＰＵ１１のリセットが繰り返される状況を回避することができる。
【００４３】
（２）ＲＡＭ１２の非永続データ領域ＡＤ２の記憶データに誤りが発生している場合には、図７のステップＳ１０の処理を通じて非永続データ領域ＡＤ２が初期化されることにより、非永続データ領域ＡＤ２における記憶データの誤りが解消される。これによりＣＰＵ１１が非永続データ領域ＡＤ２の記憶データを読み込む際に、ＥＣＣ機能部１２ａが記憶データの誤りを再度検出することがなくなる。この場合、非永続データ領域ＡＤ２の記憶データは全て失われるが、そもそも非永続データ領域ＡＤ２の記憶データは初期化を行なってもよいデータであるため、ＣＰＵ１１の演算処理に大きな支障を来すことはない。
【００４４】
（３）ＲＡＭ１２の永続データ領域ＡＤ１の記憶データに誤りが発生した場合には、ＥＣＣ異常信号に基づくリセット部１４のリセット機能が一時的に無効化されている期間に、ＣＰＵ１１が永続データ領域ＡＤ１における記憶データの誤りを解消する。これにより、永続データ領域ＡＤ１の記憶データを保持しつつ、記憶データの誤りを解消することができる。よって、ＣＰＵ１１の演算処理の継続性を向上させることができる。
【００４５】
（４）ＣＰＵ１１は、リセットされた際、異常検出フラグがＲＡＭ１２の動作電圧Ｖｒａｍの異常である場合には、ＲＡＭ１２の非永続データ及び永続データを共に初期化する。これにより、異常なデータに基づきＣＰＵ１１が演算処理を実行することを回避できるため、ＣＰＵ１１の演算処理の信頼性を向上させることができる。
【００４６】
（５）ＣＰＵ１１は、ＲＡＭ１２の永続データ領域ＡＤ１の記憶データに誤りが発生した場合、永続データ領域ＡＤ１の記憶データを順次読み込むことにより誤りの発生した記憶データを特定し、当該特定された記憶データのみを初期化する。これにより、誤りが発生した記憶データを除く記憶データをそのまま残すことができるため、ＣＰＵ１１の演算処理の継続性を更に向上させることができる。
【００４７】
＜第２実施形態＞
次に、マイコン１０の第２実施形態について説明する。以下、第１実施形態との相違点を中心に説明する。
【００４８】
本実施形態のＣＰＵ１１は、図８に示される処理に代えて、図１０に示される処理を実行する点で異なる。すなわち、ＣＰＵ１１は、永続データ領域ＡＤ１における記憶データの誤りを解消する処理として、ＲＡＭ１２の永続データ領域ＡＤ１の全ての記憶データを初期化する処理を実行する（ステップＳ１５６）。
【００４９】
以上説明した本実施形態のマイコン１０によれば、上記の（１）〜（４）の作用及び効果に加え、上記の（５）に代わる作用及び効果として以下の（６）に示される作用及び効果を得ることができる。
【００５０】
（６）ＣＰＵ１１は、ＲＡＭ１２の永続データ領域ＡＤ１の記憶データに誤りが発生した場合、永続データ領域ＡＤ１の全ての記憶データを初期化する。これにより、第１実施形態のように、誤りの発生した記憶データを特定する場合と比較すると、より短時間で永続データ領域ＡＤ１における記憶データの誤りを解消することができる。すなわち、ＣＰＵ１１のリセットが繰り返される状況をより容易に解消することができる。
【００５１】
＜他の実施形態＞
なお、上記各実施形態は、以下の形態にて実施することもできる。
・第１実施形態のＣＰＵ１１は、図８のステップＳ１５３の処理においてデータＤjを初期化する処理を実行したが、これに代えて、例えばデータＤjをバックアップデータに基づき復元する処理を行ってもよい。例えば、図１１に示されるように、ＥＣＵ１に、不揮発性の記憶部として、ＥＥＰＲＯＭ等の不揮発性メモリ２０を設ける。ＣＰＵ１１は、バス１６及び入出力ポート１７を介して不揮発性メモリ２０に対してデータの書き込み及び読み込みを行うことが可能となっている。ＣＰＵ１１は、ＲＡＭ１２の永続データ領域ＡＤ１にデータを書き込む際、同一のデータを不揮発性メモリ２０にバックアップする。そして、図１２に示されるように、ＣＰＵ１１は、図８のステップＳ１５３の処理に代えて、不揮発性メモリ２０のバックアップデータに基づきアドレスＡjのデータＤjを復元する処理を実行する（ステップＳ１５６）。このような構成であれば、より的確に記憶データの誤りを解消することができる。なお、同様の処理を第２実施形態のＣＰＵ１１で実行してもよい。すなわち、図１０のステップＳ１５６の処理に代えて、図１３のステップＳ１５７の処理、すなわち不揮発性メモリ２０のバックアップデータに基づきＲＡＭ１２の永続データ領域ＡＤ１の全ての記憶データを復元する処理を行ってもよい。
【００５２】
・ＣＰＵ１１は、永続データ領域ＡＤ１における記憶データの誤りを解消する方法として、図８及び図１０に示される方法とは別の方法を採用してもよい。例えばＣＰＵ１１は、永続データ領域ＡＤ１の全ての記憶データに対して、読み込む処理と、読み込んだデータをそのまま同じアドレスに書き込む処理とを繰り返し行う。このような方法であれば、異常なデータをそのまま同じアドレスに書き込む際に、ＥＣＣ機能部１２ａにより、異常な記憶データに付属する誤り訂正符号が、異常な記憶データに対応した誤り訂正符号に書き直される。結果的に、ＲＡＭ１２における記憶データの誤りが解消されるため、ＣＰＵ１１がアドレスＡ1の異常データＤeを読み込む際に、ＥＣＣ機能部１２ａにより誤りが検出されることを回避できる。
【００５３】
・上記各実施形態のマイコン１０では、ＥＣＣ機能部１２ａがＲＡＭ１２に搭載されていたが、ＥＣＣ機能部１２ａはＲＡＭ１２とは別に設けられていてもよい。
【００５４】
・上記各実施形態では、ＥＣＣ機能部１２ａに代えて、ＲＡＭ１２の記憶データの誤りを検出する適宜の誤り検出部を採用することが可能である。
【００５５】
・ＥＣＵ１により実行される制御内容、あるいはＣＰＵ１１により実行される演算処理の内容によっては、ＲＡＭ１２のデータ領域を永続データ領域ＡＤ１と非永続データ領域ＡＤ２とに分類することが困難な場合もある。このような場合には、ＣＰＵ１１は、図７におけるステップＳ１０の処理を割愛するとともに、ＲＡＭ１２の全ての記憶データに対して図８に示される処理を実行してもよい。
【００５６】
・上記各実施形態の構成は、ＥＣＣ機能部１２ａを有するＲＡＭ１２に限らず、ＥＣＣ機能部を有する各種記憶部に適用することが可能である。
【００５７】
・上記各実施形態のマイコン１０の構成は、メータ制御を実行するＥＣＵ１に限らず、例えば車両のエアコンを制御対象とするエアコンＥＣＵや、車両のドアウィンドウを開閉させるドアモータを制御対象とするボディーＥＣＵ等にも適用可能である。すなわち、エアコンＥＣＵでは、エアコンの設定値情報がマイコンのＲＡＭに永続データとして記憶されるため、上記各実施形態の構成を採用することが有効である。また、ボディーＥＣＵでは、ドアウィンドウの開閉位置情報がマイコンのＲＡＭに永続データとして記憶されるため、上記各実施形態の構成を採用することが有効である。
【００５８】
・本発明は上記の具体例に限定されるものではない。すなわち、上記の具体例に、当業者が適宜設計変更を加えたものも、本発明の特徴を備えている限り、本発明の範囲に包含される。例えば、前述した各具体例が備える各要素及びその配置や条件等は、例示したものに限定されるわけではなく適宜変更することができる。また、前述した実施形態が備える各要素は、技術的に可能な限りにおいて組み合わせることができ、これらを組み合わせたものも本発明の特徴を含む限り本発明の範囲に包含される。
【符号の説明】
【００５９】
１：制御装置
１１：ＣＰＵ（演算部）
１２：ＲＡＭ（記憶部）
１２ａ：ＥＣＣ機能部（誤り検出部）
１４：リセット部
２０：不揮発性メモリ（不揮発性の記憶部）
【図１】
0006295928.tif 000002
【図２】
0006295928.tif 000003
【図３】
0006295928.tif 000004
【図４】
0006295928.tif 000005
【図５】
0006295928.tif 000006
【図６】
0006295928.tif 000007
【図７】
0006295928.tif 000008
【図８】
0006295928.tif 000009
【図９】
0006295928.tif 000010
【図１０】
0006295928.tif 000011
【図１１】
0006295928.tif 000012
【図１２】
0006295928.tif 000013
【図１３】
0006295928.tif 000014