(57)【要約】【課題】より広範な特殊機能レジスタに対し固着の発生を検出することのできる電子制御装置を提供する。【解決手段】マイコン１０を構成するＣＰＵコア１１は、ＲＡＭ１４に割り当てられた特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍに格納された各格納値Ｖ１〜Ｖｍが当初の各設定値Ｅ１〜Ｅｍにそれぞれ一致しない場合に再書込み処理をそれぞれ繰り返し実行し、再書き込み処理の各繰り返し実行回数Ｃ１〜Ｃｍが各既定回数Ｆ１〜Ｆｍにそれぞれ達することをもって特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍに固着が生じた旨を判断する。【選択図】図１
2009205528.tif 000002
【特許請求の範囲】
【請求項１】
周辺機能の制御を行うＣＰＵコアと、前記周辺機能の動作が格納値に対応付けられているとともに前記周辺機能の制御を行う際に前記ＣＰＵコアが使用する特殊機能レジスタとを有するマイクロコントローラユニットを備え、前記特殊機能レジスタの格納値が前記周辺機能の動作開始時に設定された設定値と異なるとき、前記特殊機能レジスタに前記設定値を再び書き込む再書き込み処理を実行する電子制御装置であって、
前記ＣＰＵコアは、前記格納値が前記設定値に一致しない場合は前記再書込み処理を繰り返し実行し、前記再書き込み処理の繰り返し実行回数が既定回数に達することをもって前記特殊機能レジスタに固着が生じた旨を判断することを特徴とする電子制御装置。
【請求項２】
前記マイクロコントローラユニットは、複数個の前記特殊機能レジスタを備えており、
前記ＣＰＵコアは、これら複数個の特殊機能レジスタ毎に前記繰り返し実行回数を記憶保持しカウントすることで、前記複数個の特殊機能レジスタ毎に前記既定回数に達したか否かを判断することを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記既定回数は、前記複数個の特殊機能レジスタ毎に定められていることを特徴とする請求項２に記載の電子制御装置。
【請求項４】
当該電子制御装置は、固着が生じた特殊機能レジスタとして特定された特殊機能レジスタに応じたフェイルセーフ処理を実行することを特徴とする請求項２または３に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば車両に搭載されて有益な電子制御装置に関する。
【背景技術】
【０００２】
一般に、車両には、複数個の車載用ＥＣＵ（Electronic Control Unit）が搭載されており、これら複数の車載用ＥＣＵによって例えば車載エンジンや各種車載機器等が制御される。各車載用ＥＣＵの構成は、詳しくは、少なくとも１つのＭＣＵ（Micro Control Unit、以下マイコンと記載）を有しており、そうしたマイコンは、基本的に、例えば四則演算や論理演算等の各種演算（主機能）及び周辺機能の制御を行うＣＰＵコアと、このＣＰＵコアが各種演算を行う際に使用される複数個の汎用レジスタと、ＣＰＵコアが周辺機能を動作・停止させたり、動作モードを設定したり、あるいは、その動作状態を確認したりする際に使用される複数個の特殊機能レジスタとを有して構成されている。
【０００３】
ちなみに、こうした特殊機能レジスタは、その格納値に変化があるとマイコンの動作に影響する（例えば周辺機能が動作・停止されたり、周辺機能の動作モードが変更されたりする等）特殊機能レジスタと、その格納値に変化があったとしてもマイコンの動作に影響しない（例えばＣＡＮのメッセージＢＯＸ関連レジスタ（通信開始前）のようにデータの格納領域として使用される等）特殊機能レジスタとに分類される。さらに、格納値の変化がマイコンの動作に影響する特殊機能レジスタは、マイコンの動作開始時に格納値が一旦設定されると、マイコンの動作終了時まで格納値が不変な特殊機能レジスタ（例えば上記周辺機能の動作モードを設定するための特殊機能レジスタ等）、及び、マイコン動作中に格納値が変化する特殊機能レジスタ（例えば周辺機能を動作・停止するための特殊機能レジスタ等）に分類される。一方、格納値の変化がマイコンの動作に影響しない特殊機能レジスタにおいては、マイコンの動作中、基本的に、格納値は変化する。
【０００４】
ところで、特殊機能レジスタの格納値は、例えば外来ノイズ等の様々な要因によって、当初設定された値（設定値）とは異なる値に値化けすることがある。上記特殊機能レジスタのうち後者の特殊機能レジスタの格納値にそうした値化けが発生しても、マイコンの動作に影響はないものの、上記特殊機能レジスタのうち前者の特殊機能レジスタの格納値に値化けが発生すると、マイコンの動作に影響し、誤動作が生じてしまうことがある。そのため、前者の特殊機能レジスタの格納値が当初の設定値と異なるとき、設定値を再書込み（テストアンドライト）する、いわゆるレジスタリフレッシュ機能が知られている。これにより、マイコンの動作を回復することができるようになる。
【０００５】
しかしながら、上記レジスタリフレッシュ機能によって、マイコンの動作を確実に回復することができるとは限らない。上記前者の特殊機能レジスタの格納値に生じた値化けが一時的なものではなく、例えば当初の設定値とは異なる値に格納値が固着してしまった場合、設定値を何度も再書込みしたところで格納値は設定値にならない。すなわち、格納値が固着してしまった場合にあっては、特殊機能レジスタの再書込みが繰り返し実行されるだけでマイコンの動作は正常に回復せず、ひいては、ＥＣＵ稼働率の低い状況が継続してしまう。
【０００６】
これに対し、例えば特許文献１に記載の技術に見られるように、こうした特殊機能レジスタの格納値の固着を検出する固着チェック機能も知られている。具体的には、固着チェック機能とは、まず、周辺機能の動作に通常なんら関係がなく、各ビットが読み書き可能であるか否かを判断するに適した所定パターンを特殊機能レジスタに書き込む。所定パターン値を書き込んだ後に読み込み、その読み込んだ値が書き込んだはずのパターン値に一致するか否かを確認することを複数回繰り返す。そして、これら値が一致しない場合には、特殊機能レジスタの格納値に固着が生じたと判断する。これにより、特殊機能レジスタの格納値に固着が生じたことを検出することができるようになり、例えば車両整備者等がダイアグノーシス機能を通じてその旨を認識し、ＥＣＵを交換するなどのきっかけを与えることができるようになる。
【特許文献１】特開平９−１７０９３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ただし、こうした固着チェック機能では、固着の有無を判断するべく、特殊機能レジスタのうち上記前者の特殊機能レジスタに上記所定パターン値を書き込むと、その所定パターンに対応して周辺機能が動作する。既述したように所定パターンは周辺機能の動作になんら関係のない値が採用されているため、周辺機能が意図せず動作を開始したり、意図せず動作を停止したりするなど、周辺機能に、ひいては、マイコンに、誤動作が生じることが懸念される。したがって、上記固着チェック機能は、特殊機能レジスタのうちの上記後者の特殊機能レジスタ（あるいはＲＡＭなど）に適用することができるにすぎず、実行可能な特殊機能レジスタは限定されている。
【０００８】
本発明は、上記実情に鑑みてなされたものであって、その目的は、より広範な特殊機能レジスタに対し固着の発生を検出することのできる電子制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
こうした目的を達成するため、請求項１に記載の発明では、周辺機能の制御を行うＣＰＵコアと、前記周辺機能の動作が格納値に対応付けられているとともに前記周辺機能の制御を行う際に前記ＣＰＵコアが使用する特殊機能レジスタとを有するマイクロコントローラユニットを備え、前記特殊機能レジスタの格納値が前記周辺機能の動作開始時に設定された設定値と異なるとき、前記特殊機能レジスタに前記設定値を再び書き込む再書き込み処理を実行する電子制御装置であって、前記ＣＰＵコアは、前記格納値が前記設定値に一致しない場合は前記再書込み処理を繰り返し実行し、前記再書き込み処理の繰り返し実行回数が既定回数に達することをもって前記特殊機能レジスタに固着が生じた旨を判断することを特徴とする。
【００１０】
電子制御装置としてのこのような構成では、まず、特殊機能レジスタの格納値が読み込まれ、周辺機能の動作開始時に設定された設定値と一致するか否か判断される。そして、格納値が設定値に一致しない場合には再書込み処理が繰り返し実行され、再書き込み処理の繰り返し実行回数が既定回数に達することをもって特殊機能レジスタに固着が生じた旨が判断される。すなわち、周辺機能の動作と関係のある設定値が特殊機能レジスタに書き込まれることによって固着の有無が判断される。そのため、上記構成によれば、格納値に変化があったとしてもマイコンの動作に影響しない特殊機能レジスタだけでなく、格納値に変化があるとマイコンの動作に影響する特殊機能レジスタにも適用することが可能となり、より広範な特殊機能レジスタに対し固着の発生を検出することができるようになる。
【００１１】
上記請求項１に記載の構成において、例えば請求項２に記載の発明のように、前記マイクロコントローラユニットは、複数個の前記特殊機能レジスタを備えており、前記ＣＰＵコアは、これら複数個の特殊機能レジスタ毎に前記繰り返し実行回数を記憶保持しカウントすることで、前記複数個の特殊機能レジスタ毎に前記既定回数に達したか否かを判断することが望ましい。これにより、固着が生じた特殊機能レジスタを特定することができるようになる。そして、ひいては、固着が生じた特殊機能レジスタに応じた方法にて当該電子制御装置を復旧することができるようになる。
【００１２】
なお、前記既定回数は、複数個の特殊機能レジスタ全てに共通する任意の回数に定められていることとしてもよく、また、請求項３に記載の発明のように、前記既定回数は、前記複数個の特殊機能レジスタ毎に定められていることとしてもよい。
【００１３】
また、上記請求項２または３に記載の構成において、請求項４に記載の発明のように、当該電子制御装置は、固着が生じた特殊機能レジスタとして特定された特殊機能レジスタに応じたフェイルセーフ処理を実行することとしてもよい。
【発明を実施するための最良の形態】
【００１４】
以下、本発明に係る電子制御装置の一実施の形態について、図１〜図９を参照しつつ説明する。なお、図１は、本実施の形態の電子制御装置について、全体構成を示すブロック図であり、図２（ａ）及び（ｂ）はそれぞれ、本実施の形態の電子制御装置を構成するＭＣＵのハードウエア構成を示すブロック図及びその周辺機能の一覧を示す図である。はじめに、これら図１並びに図２（ａ）及び（ｂ）を参照して、本実施の形態の電子制御装置のハードウエア構成について説明する。
【００１５】
一般に、車両には、複数個の車載用ＥＣＵ（Electronic ControlUnit）が搭載されており、これら複数の車載用ＥＣＵによって例えば車載エンジンや各種車載機器等が制御される。本実施の形態の電子制御装置は、そうした複数の車載用ＥＣＵのうちの１つとして具体化される。
【００１６】
図１に示されるように、車載用ＥＣＵ１は、マイクロコントロールユニット（MCU：Micro Control Unit、以下マイコンと記載）１０を少なくとも１つ有しており、このマイコン１０は、複数個の外部デバイスＤ１〜Ｄｎに接続されている。なお、これら外部デバイスＤ１〜Ｄｎの種類や回路構成は任意である。
【００１７】
図２（ａ）に示されるように、マイコン１０は、ＣＰＵコア１１、フラッシュメモリ(Flash Memory)１２及びＲＯＭ(Read Only Memory)１３、ＲＡＭ(Random Access Memory)１４、各種周辺機能モジュール１５ａ〜１５ｊ及びＩ／Ｏバス１６等々を備える。
【００１８】
このうち、ＣＰＵコア１１は、その主機能として、例えば四則演算や論理演算等の各種演算によって、当該車載用ＥＣＵ１の制御対象とする外部デバイスに対する命令を生成する。なお、ＣＰＵコア１１は、図示しない複数個の汎用レジスタを内部に有しており、上記命令を生成するための各種演算を実行する際に複数個の汎用レジスタを使用する。
【００１９】
また、ＣＰＵコア１１は、その周辺機能（特殊機能）として、図２（ｂ）に一覧にて示す各種周辺機能モジュール１５ａ〜１５ｊを有しており、これら各種周辺機能モジュール１５を制御する。具体的には、各種周辺モジュール１５ａ〜１５ｊはそれぞれ特殊機能レジスタ（Special Function Register：ＳＦＲ）を複数個有しており、ＣＰＵコア１１は各種周辺機能モジュール１５ａ〜１５ｊを特殊機能レジスタを介して動作・停止させたり、動作モードを設定したり、あるいは、その動作状態を確認したりする。ＲＡＭ１４は、ＣＰＵコア１１がプログラムを実行する際に、一時的にデータを記憶保持するためのモジュールである。
【００２０】
ちなみに、ＤＭＡコントローラ（略称ＤＭＡＣ）１５ａは、他の各種周辺機能モジュール１５ｂ〜１５ｊ間においてＣＰＵコア１１を介することなく直接にＩ／Ｏバス１６にてデータを転送するに際し、その通信の制御を行うモジュールである。また、クロック発生器（略称ＣＬＫ）１５ｂは、ＣＰＵコア１１その他各種周辺機能モジュール１５の動作基準となるクロックを発生するモジュールであり、ＰＷＭモジュール１５ｃ（略称ＰＷＭ）は、ＣＰＵコア１１の命令等をＰＷＭにて出力するためのモジュールである。また、タイマ（略称ＴＭ）１５ｄは、クロック発生器１５ｂによって発生されるクロックを基準として所定時間経過時にＣＰＵコア１１に対し割り込みを発生させたり、所定時間間隔で割り込みを発生させたりするモジュールである。また、割り込みコントローラ（略称ＩＮＴＣ）１５ｅは、ＣＰＵコア１１がある処理の実行中に別の処理を実行するための割り込みを制御するモジュールであり、Ａ／Ｄコンバータ（略称ＡＤＣ）１５ｆは、図示しない各種センサ等のアナログ信号をデジタル信号に変換するためのアナログデジタル変換器を制御するモジュールである。また、ＵＡＲＴモジュール１５ｇ（略称ＵＡＲＴ）及びＣＳＩモジュール１５ｈ（略称ＣＳＩ）は、それぞれ、各種周辺機能モジュール間におけるクロック非同期シリアル通信及びクロック同期シリアル通信を制御するためのモジュールである。また、ＣＡＮコントローラ１５ｉ（略称ＣＡＮ）は、複数の車載用ＥＣＵ間におけるシリアル通信を制御するためのモジュールである。なお、これら各種周辺機能モジュールについては公知であるため、ここでのこれ以上の詳しい説明を割愛する。
【００２１】
これら各種周辺機能モジュール１５を制御するに際し、ＣＰＵコア１１は、各種周辺機能モジュール毎の所定の動作に対応付けられた設定値を、その周辺機能モジュール用に割り当てられた特殊機能レジスタ領域に書き込む。
【００２２】
ここで、Ａ／Ｄコンバータ１５ｆを例に採り詳しく説明する。Ａ／Ｄコンバータ１５ｆ用に割り当てられた特殊機能レジスタ領域に設定される設定値は、例えば次のような値によって構成されている。すなわち、設定値は、予め決められた複数のＡ／Ｄ変換クロック（周期）の中から実際にＡ／Ｄ変換するＡ／Ｄ変換クロックを指定する値、予め決められた複数の入力端子の中から実際にＡ／Ｄ変換する入力端子を指定するための値、及び、Ａ／Ｄコンバータ１５ｆによるＡ／Ｄ変換を開始または停止するための値等々を含んで構成される。したがって、ＣＰＵコア１１は、Ａ／Ｄコンバータ１５ｆの所定の動作に対応する設定値をＡ／Ｄコンバータ１５ｆ用に割り当てられた特殊機能レジスタ領域に格納することで、Ａ／Ｄコンバータ１５ｆを動作させることができるようになる。
【００２３】
なお、ＲＡＭ１４には、後述の特殊機能レジスタ再書き込み処理の繰り返し実行回数を記憶保持するための繰り返し実行回数カウンタを特殊機能レジスタ領域と同一数だけ割り当てられている。
【００２４】
図３に、本実施の形態のソフトウエア構成とハードウエア構成との関係を概念的に示す。この図３を参照して、本実施の形態の車載用ＥＣＵ１のソフトウエア構成及びハードウエア構成との関係を説明する。
【００２５】
ソフトウエア構成として図３に示されるように、上記ＣＰＵコア１１によって実行されるプログラムＰは、上記各種周辺機能モジュール１５ａ〜１５ｊを各別に制御するための小規模なプログラムであるドライバＤｒ１〜Ｄｒ４と、後述する特殊機能レジスタの再書き込み処理のプログラムＰ１と、これらドライバＤｒ１〜Ｄｒ４及びプログラムＰ１並びに図示しない他のドライバ及びプログラム等を有機的に利用して特定の処理を実現する大規模なプログラムであるアプリケーションＡｐ１〜Ａｐ４とを含んでいる。なお、図示の便宜上、上記各種周辺機能モジュール１５ａ〜１５ｊの数はドライバＤｒ１〜Ｄｒ４の数と一致していないが、プログラムＰは、通常、各種周辺機能モジュール１５と同一数のドライバを含んでいる。
【００２６】
ここで、アプリケーションＡｐ１〜Ａｐ４は、そうしたドライバＤｒ１〜Ｄｒ４よりも大規模なプログラムであり、上記各種周辺機能モジュール１５ａ〜１５ｊのうち１つまたは複数に異常が生じても当該車載用ＥＣＵ１の搭載される車両を安全側に制御するフェイルセーフ処理や当該車載用ＥＣＵ１の搭載される車両の異常個所を診断するダイアグノーシス処理、あるいは、システム管理処理などのプログラムに相当する。なお、こうしたアプリケーションの数や種類は任意である。
【００２７】
一方、ハードウエア構成として図３に示されるように、また既述したように、ＲＡＭ１４には、上記各種周辺機能モジュール１５ａ〜１５ｊ用に、複数の特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍが割り当てられている。なお、各種周辺機能モジュールに対し割り当てられる特殊機能レジスタ領域ＳＦＲの数は、その周辺機能モジュールによって異なっている。
【００２８】
ここで、ＣＰＵコア１１は、図３において破線で示すように、ｓｆｒ変数定義体を介して、特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍに格納する値を操作する。詳しくは、ＣＰＵコア１１によるプログラムＰ１の実行に伴って、例えば変数ｓｆｒ１にある値が代入されると、この変数ｓｆｒ１に対応するＲＡＭ１４に割り当てられた特殊機能レジスタ領域ＳＦＲ１にはその値が実際に格納されるようになっている。逆に、特殊機能レジスタ領域ＳＦＲ１に実際に格納されている値が変化すると、変数ｓｆｒ１の値も変化する。すなわち、変数ｓｆｒ１の値と、特殊機能レジスタ領域ＳＦＲ１の格納値とは１対１に対応付けられる。
【００２９】
なお、既述したように、特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍとして使用される記憶領域がＲＡＭ１４に割り当てられるだけでなく、後述の特殊機能レジスタ再書き込み処理の繰り返し実行回数Ｃ１〜Ｃｍを記憶保持するための繰り返し実行回数カウンタＣｎｔ１〜ＣｎｔｍもＲＡＭ１４に割り当てられている。そのため、図４に概念的に示すように、上記プログラムＰ１をＣＰＵコア１１によって実行するに伴い構成されるアドレス空間において、繰り返し実行回数カウンタＣｎｔ１〜Ｃｎｔｍは、特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍと同一数となっている。
【００３０】
ところで、例えばＡ／Ｄコンバータ１５ｆ用に割り当てられた特殊機能レジスタ領域の格納値は、外来ノイズ等の様々な要因によって、ＣＰＵコア１１によって当初設定された設定値とは異なる値に値化けすることがある。このような値化けがあると、例えばＡ／Ｄ変換クロックが変更されてしまったり、所望の入力端子とは異なる入力端子を指定してしまったり、Ａ／Ｄ変換を意図せず開始あるいは停止してしまったりする等して、Ａ／Ｄコンバータ１５ｆは、その動作に影響を受け、誤動作をしてしまうことがある。Ａ／Ｄコンバータ１５ｆが誤動作すると、マイコン１０自体の誤動作、ひいては、車載用ＥＣＵ１の誤動作を招いてしまうことが懸念される。
【００３１】
このような、格納値に変化があるとマイコン１０の動作に影響する特殊機能レジスタ領域に対し、その格納値が当初の設定値と異なるとき、設定値を再書込み（テストアンドライト）する、いわゆるレジスタリフレッシュ機能が知られている。このレジスタリフレッシュ機能により設定値が再書込みされれば、通常、特殊レジスタ領域に設定値が格納されることになる。しかしながら、値化けが一時的なものではなく、例えば設定値とは異なる値に格納値が固着してしまった場合には、設定値を何度も再書込みしたところで格納値は設定値にならない。すなわち、格納値が固着してしまった場合にあっては、特殊機能レジスタ領域の再書込みが繰り返し実行されるだけでマイコン１０の動作は正常に回復せず、ひいては、車載用ＥＣＵ１の稼働率が低い状況が継続してしまう。
【００３２】
これに対し、特殊機能レジスタ領域の格納値の固着を検出する固着チェック機能も知られてはいる。固着チェック機能とは、まず、周辺機能の動作に通常なんら関係がなく、各ビットが読み書き可能であるか否かを判断するに適した所定パターンを特殊機能レジスタ領域に書き込む（格納する）。所定パターン値を書き込んだ後に読み込み、その読み込んだ値が書き込んだはずのパターン値に一致するか否かを確認することを複数回繰り返す。そして、これら値が一致しない場合には、特殊機能レジスタ領域の格納値に固着が生じたと判断する。これにより、特殊機能レジスタ領域の格納値に固着が生じたことを検出することができるようになり、例えば車両整備者等がダイアグノーシス機能を通じてその旨を認識し、車載用ＥＣＵ１を交換するなどのきっかけを与えることができるようになる。
【００３３】
ただし、こうした固着チェック機能では、固着の有無を判断するべく特殊機能レジスタ領域に上記所定パターン値を書き込むため、その所定パターンに対応して周辺機能が動作してしまうことが多い。既述したように、所定パターンは周辺機能の動作になんら関係のない値が採用されるため、上記値化け時と同様に、周辺機能が意図せず動作を開始したり、意図せず動作を停止したりするなど、周辺機能モジュールに、ひいては、マイコン１０及び車載用ＥＣＵ１に、誤動作が生じることが懸念される。
【００３４】
ちなみに、特殊機能レジスタ領域には、上記Ａ／Ｄコンバータ１５ｆ用に割り当てられた特殊機能レジスタ領域のように、格納値に変化があるとマイコン１０の動作に影響する特殊機能レジスタ領域もあれば、格納値に変化があったところでマイコン１０の動作には影響しない特殊機能レジスタ領域もある。具体的には、上記ＣＡＮコントローラ１５ｉ用に割り当てられた特殊機能レジスタ領域のうちメッセージＢＯＸ関連レジスタ領域には、当該車載用ＥＣＵ１のＣＡＮコントローラ１５ｉの状態に対応する値が格納される。こうした特殊機能レジスタ領域にあっては、その通信開始前において、格納値に変化があったとしても、当該周辺機能が動作していなければ、当該車載用ＥＣＵ１のマイコン１０の動作にはなんら影響しない。したがって、上記固着チェック機能は、格納値に変化があったとしてもマイコン１０の動作には影響しない特殊機能レジスタ領域にのみ、しかも、当該車載用ＥＣＵ１の特定状態（例えば初期化時等）においてのみ、適用することができ、実行可能な特殊機能レジスタ領域は限定されている。
【００３５】
そこで、本実施の形態では、ＣＰＵコア１１は、特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍに格納された各格納値Ｖ１〜Ｖｍが当初の各設定値Ｅ１〜Ｅｍにそれぞれ一致しない場合に再書込み処理をそれぞれ繰り返し実行し、再書き込み処理の各繰り返し実行回数Ｃ１〜Ｃｍが各既定回数Ｆ１〜Ｆｍにそれぞれ達することをもって特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍに固着が生じた旨を判断している。
【００３６】
詳しくは、図５〜図９のフローチャートを参照しつつ説明する。なお、図５は、車載用ＥＣＵ１によって実行される特殊機能レジスタ領域のリフレッシュ処理について、全体の処理手順を示すフローチャートである。
【００３７】
この図５に示されるように、特殊機能レジスタ領域のリフレッシュ処理が開始されると、車載用ＥＣＵ１（正確にはＣＰＵコア１１）は、まず、ステップＳ１０の処理として、繰り返し実行回数カウンタの初期化処理を実行する。図６に、この初期化処理の処理手順を示す。この図６に示されるように、ステップＳ１０の処理が開始されると、ＣＰＵコア１１は、まず、ステップＳ１１の処理として、ｎを「１」に設定する。このステップＳ１１の処理を終えると、ＣＰＵコア１１は、続くステップＳ１２の処理として、繰り返し実行回数カウンタＣｎｔｎを初期化（記憶保持されている値を零にする）し、続くステップＳ１３の処理として、ｎをインクリメントする。そして、ＣＰＵコア１１は、続くステップＳ１４の判断処理として、全ての繰り返し実行回数カウンタＣｎｔｎを初期化したか否か（ｎがｍとなっているか否かを判断）する。このステップＳ１４の判断処理において、全ての繰り返し実行回数カウンタＣｎｔｎを初期化していないと判断した場合（「Ｎｏ」）、初期化されていない繰り返し実行回数カウンタが残されているため、先のステップＳ１２の処理に移行する。一方、このステップＳ１４の判断処理において、全ての繰り返し実行回数カウンタを初期化したと判断した場合（「Ｙｅｓ」）、初期化されていない繰り返し実行回数カウンタは残されていないため、先の図５に示すステップＳ２０に移行する。このように、ＣＰＵコア１１は、繰り返し実行回数カウンタＣｎｔ１〜Ｃｎｔｍを「繰り返し実行回数カウンタＣｎｔ１→繰り返し実行回数カウンタＣｎｔ２→・・・→繰り返し実行回数カウンタＣｎｔｍ−１→繰り返し実行回数カウンタＣｎｔｍ」といった順序にて順次初期化し、繰り返し実行回数カウンタＣｎｔ１〜Ｃｎｔｍを全て初期化する。なお、ＣＰＵコア１１は、当該車載用ＥＣＵ１の電源投入直後に１度のみステップＳ１０の処理を実行し、ステップＳ１０の処理を実行後にあっては、後述のステップＳ２０の処理を所定時間毎に繰り返し実行する。
【００３８】
次に、ステップＳ２０の処理である特殊機能レジスタ領域の再書き込み処理を説明する。図７に、そうした再書き込み処理の処理手順を示す。この図７に示されるように、ステップＳ２０の処理が開始されると、ＣＰＵコア１１は、まず、ステップＳ２１の処理として、ｎを「１」に設定する。このステップＳ２１の処理を終えると、ＣＰＵコア１１は、続くステップＳ２２の処理として、特殊機能レジスタ領域ＳＦＲｎの再書き込み処理を実行する。なお、このステップＳ２２の再書き込み処理については、図８を参照しつつ後述する。ちなみに、この処理においては、戻り値Ｒｅｔｕｒｎが使用されており、特殊機能レジスタ領域ＳＦＲｎの格納値Ｖｎが各設定値Ｅｎに一致していない場合には、戻り値Ｒｅｔｕｒｎに異常を示す値が代入されている。一方、特殊機能レジスタ領域ＳＦＲｎの格納値Ｖｎが各設定値Ｅｎに一致している場合には、戻り値Ｒｅｔｕｒｎに正常を示す値が代入されている。
【００３９】
ステップＳ２２の処理を終えると、ＣＰＵコア１１は、次に、ステップＳ２３の判断処理を実行する。ここで、戻り値Ｒｅｔｕｒｎに代入された値が異常を示す値であると判断されるとき（ステップＳ２２の判断処理で「Ｙｅｓ」）、特殊機能レジスタ領域ＳＦＲｎの格納値Ｖｎが設定値Ｅｎに一致していないため、対応する周辺機能モジュールに、ひいてはマイコン１０に、誤動作が生じるおそれがある。そのため、ＣＰＵコア１１は、続くステップＳ２４の処理として、特殊機能レジスタ領域ＳＦＲｎの異常時処理を実行し、さらに、続くステップＳ２５の処理として、ｎをインクリメントする。一方、戻り値Ｒｅｔｕｒｎに代入された値が正常を示す値であったと判断されるとき（ステップＳ２３の判断処理で「Ｎｏ」）、特殊機能レジスタ領域ＳＦＲｎの格納値Ｖｎは各設定値Ｅｎに一致するため、ＣＰＵコア１１は、続くステップＳ２５の処理として、ｎをインクリメントする。なお、ステップＳ２４の処理は、図９を参照しつつ後述する。
【００４０】
そして、ＣＰＵコア１１は、続くステップＳ２６の判断処理として、すべての特殊機能レジスタ領域に対し再書き込み処理を実行したか否か（ｎがｍとなっているか否か）を判断する。このステップＳ２６の判断処理において、すべての特殊機能レジスタ領域に対しリフレッシュ処理を実行していないと判断される場合（「Ｎｏ」）、リフレッシュ処理が実行されていない特殊機能レジスタ領域が残されているため、先のステップＳ２２の処理に移行する。一方、このステップＳ２６の判断処理において、すべての特殊機能レジスタ領域に対しリフレッシュ処理を実行したと判断される場合（「Ｙｅｓ」）、再書き込み処理が実行されていない特殊機能レジスタ領域は残されていないため、先の図５に示すステップＳ２０を終え、当該特殊レジスタ領域のリフレッシュ処理を終了する。このように、ＣＰＵコア１１は、「特殊機能レジスタ領域ＳＦＲ１→特殊機能レジスタ領域ＳＦＲ２→・・・→特殊機能レジスタ領域ＳＦＲｍ−１→特殊機能レジスタ領域ＳＦＲｍ」といった順序にて、順次１度ずつリフレッシュ処理を実行する。
【００４１】
ここで、先のステップＳ２２の再書き込み処理について図８を参照しつつ詳述する。なお、図８は、特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｎの格別につき実行される。
【００４２】
この図８に示されるように、ＣＰＵコア１１は、まず、ステップＳ２２１の処理として、上記戻り値Ｒｅｔｕｒｎに正常を示す値を代入しておくとともに、続くステップＳ２２２の処理として、上記各種周辺機能モジュール１５ａ〜１５ｊ等からの割り込みを禁止する。そして、ＣＰＵコア１１は、続くステップＳ２２３の判断処理として、特殊機能レジスタ領域ＳＦＲｎの格納値Ｖｎが設定値Ｅｎに一致するか否かを判断する。なお、設定値Ｅｎ（Ｅ１〜Ｅｍ）は、各種周辺機能モジュール１５ａ〜１５ｊの動作開始時にそれぞれ設定される値である。各種周辺機能モジュール１５ａ〜１５ｊの動作開始時とは、例えば当該車載用ＥＣＵ１の電源投入時であり、設定値ＥｎはＲＯＭ１３に記憶されているデフォルト値である。また、こうした設定値Ｅｎ（Ｅ１〜Ｅｍ）は、車載用ＥＣＵ１の電源投入時におけるデフォルト値に限らず、各種周辺機能モジュール１５ａ〜１５ｊに対しＣＰＵコア１１によって動作開始命令が生成されるときに同時に生成する値としてもよい。その場合には、設定値Ｅｎ（Ｅ１〜Ｅｍ）は、ＲＡＭ１４に記憶保持されることになる。
【００４３】
上記ステップＳ２２３の判断処理において、格納値Ｖｎが設定値Ｅｎに一致するとき（「Ｙｅｓ」）、対応する周辺機能モジュールに誤動作、ひいては、マイコン１０に誤動作が生じるおそれはないため、続くステップＳ２２６の処理に移行して割り込みを許可したのち、先のステップＳ２３（図７）に移行する。なお、このとき、上記戻り値Ｒｅｔｕｒｎには正常を示す値が代入されている。
【００４４】
一方、上記ステップＳ２２３の判断処理において、格納値Ｖｎが設定値Ｅｎに一致しないと判断されるとき（「Ｎｏ」）、対応する周辺機能に誤動作、ひいては、マイコン１０に誤動作が生じるおそれがあるため、ＣＰＵコア１１は、続くステップＳ２２４の処理として、特殊機能レジスタ領域ＳＦＲｎに設定値Ｅｎを再書き込みする。この再書き込み処理を終えると、ＣＰＵコア１１は、続くステップＳ２２５の処理として、上記戻り値Ｒｅｔｕｒｎに異常を示す値を代入する。そして、ＣＰＵコア１１は、続くステップＳ２２６の処理として割り込みを許可したのち、先のステップＳ２３（図７）へ移行する。
【００４５】
このようにして、ＣＰＵコア１１は、格納値Ｖｎが設定値Ｅｎに一致しない場合に再書き込み処理を実行する。
【００４６】
次に、先のステップＳ２４の異常時処理について図９を参照して詳述する。なお、図９は、上記再書き込み処理（図８）において、異常が生じた特殊機能レジスタに対し個別に実行される異常時処理の処理手順を示すフローチャートである。
【００４７】
この図９に示されるように、ＣＰＵコア１１は、まず、ステップＳ２４１の処理として、繰り返し実行回数カウンタＣｎｔｎに記憶保持される繰り返し実行回数Ｃｎをインクリメントする。なお、繰り返し実行回数Ｃｎは、ステップＳ１０（図６）において、当該車載用ＥＣＵ１の電源投入直後に１度のみ初期化されている。
【００４８】
ステップＳ２４１の処理を終えると、ＣＰＵコア１１は、続くステップＳ２４２の判断処理として、繰り返し実行回数Ｃｎが既定回数Ｆｎに一致するするか否かを判断する。なお、既定回数Ｆｎ（Ｆ１〜Ｆｍ）は、各繰り返し実行回数カウンタＣｎｔｎ毎に定められる値である。また、こうした既定回数Ｆｎ（Ｆ１〜Ｆｍ）は、繰り返し実行回数カウンタＣｎｔｎ全てに共通する任意の回数に定められていることとしてもよく、各繰り返し実行回数カウンタＣｎｔｎ毎に定められていることとしてもよい。
【００４９】
上記ステップＳ２４２の判断処理において、繰り返し実行回数Ｃｎが既定回数Ｆｎに一致すると判断されるとき（「Ｙｅｓ」）、格納値Ｖｎに生じた値化けが一時的なものではなく、特殊機能レジスタ領域ＳＦＲｎに固着が生じた可能性が高い。そのため、ＣＰＵコア１１は、続くステップＳ２４３の処理として、特殊機能レジスタ領域ＳＦＲｎに固着が生じた旨を判断する。その旨判断すると、ＣＰＵコア１１は、続くステップＳ２４４の処理として、各種フェイルセーフ処理を実行する。詳しくは、特殊機能レジスタ領域ＳＦＲｎに固着が生じた旨が上記プログラムＰ１（図３）によって判断されると、プログラムＰ１は、上記アプリケーションＡｐ１〜Ａｐ４に、いずれの特殊機能レジスタ領域ＳＦＲｎに固着が生じたかに関する情報とともにその旨を通知する。そして、通知を受けたアプリケーションＡｐ１〜Ａｐ４によって、固着が生じた特殊機能レジスタとして特定された特殊機能レジスタに応じたフェイルセーフ処理が実行されることになる。
【００５０】
一方、上記ステップＳ２４２の判断処理において、繰り返し実行回数Ｃｎが既定回数Ｆｎに一致しないとき（「Ｎｏ」）、格納値Ｖｎに生じた値化けが一時的なものである可能性がある。そのため、ＣＰＵコア１１は、当該異常時処理を終えて、先のステップＳ２５（図７）に移行する。
【００５１】
このようにして、ＣＰＵコア１１は、再書き込み処理（ステップＳ２２）の各繰り返し実行回数Ｃ１〜Ｃｍが各既定回数Ｆ１〜Ｆｍにそれぞれ達することをもって特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍに固着が生じた旨を判断している。
【００５２】
以上説明した本実施の車載用ＥＣＵ１（電子制御装置）では、ＣＰＵコア１１は、特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍに格納された各格納値Ｖ１〜Ｖｍが当初の各設定値Ｅ１〜Ｅｍにそれぞれ一致しない場合に再書込み処理をそれぞれ繰り返し実行し、再書き込み処理の各繰り返し実行回数Ｃ１〜Ｃｍが各既定回数Ｆ１〜Ｆｍにそれぞれ達することをもって特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍに固着が生じた旨を判断することとした。これにより、従来の固着チェック機能とは異なり、各種周辺機能モジュール１５ａ〜１５ｊの動作と関係のある設定値Ｅ１〜Ｅｍが特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍに書き込まれることによって固着の有無が判断される。そのため、格納値Ｖ１〜Ｖｍに変化があったとしてもマイコン１０の動作に影響しない特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍだけでなく、格納値Ｖ１〜Ｖｍに変化があるとマイコン１０の動作に影響する特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍにも適用することが可能となり、より広範な特殊機能レジスタに対し固着の発生を検出することができるようになる。
【００５３】
また、本実施の形態の車載用ＥＣＵ１では、先の図４に示すように、特殊機能レジスタ再書き込み処理（ステップＳ２２４）の繰り返し実行回数Ｃ１〜Ｃｍを記憶保持するための繰り返し実行回数カウンタＣｎｔ１〜Ｃｎｔｍが、特殊機能レジスタ領域と同一数だけＲＡＭ１４に割り当てられてられていた。これにより、繰り返し実行回数カウンタＣｎｔ１〜Ｃｎｔｍと特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｍとが１対１に対応するため、固着が生じた特殊機能レジスタ領域を容易に特定することができるようになる。さらに、固着が生じた特殊機能レジスタに応じた方法にて当該車載用ＥＣＵ１を復旧することができるようになる。
【００５４】
なお、本発明に係る電子制御装置は、上記実施の形態にて例示した構成に限定されるものではなく、本発明の趣旨を逸脱しない範囲において、種々に変形して実施することが可能である。すなわち、上記実施の形態を適宜変更した例えば次の形態として実施することもできる。
【００５５】
上記実施の形態では、先の図２に示したように、車載用ＥＣＵ１は、単一のＣＰＵコアを有するシングルコア構成のマイコンを採用していたが、これに限らない。２個のＣＰＵコアを有するデュアルコア構成のマイコンを採用してもよく、複数個のＣＰＵコアを有するマルチコア構成のマイコンを採用してもよい。
【００５６】
上記実施の形態（変形例を含む）では、先の図９に示すように、ＣＰＵコア１１は、特殊機能レジスタ領域ＳＦＲｎに固着が生じた旨を判断すると、固着が生じた特殊機能レジスタとして特定された特殊機能レジスタに応じたフェイルセーフ処理を実行していたが、これに限らない。他に例えば、ＣＰＵコア１１は、特殊機能レジスタ領域ＳＦＲ１〜ＳＦＲｎのいずれかに固着が生じた旨を判断すると、当該車載用ＥＣＵ１自体が自発的に再起動することとしてもよい。
【００５７】
上記実施の形態（変形例を含む）では、既定回数Ｆｎ（Ｆ１〜Ｆｍ）は、特殊機能レジスタ領域ＳＦＲｎ（ＳＦＲ１〜ＳＦＲｎ）毎に定められていることとしたが、これに限らない。他に例えば、特殊機能レジスタ領域ＳＦＲｎ（ＳＦＲ１〜ＳＦＲｍ）全てに共通する任意の回数に定められていることとしてもよい。
【００５８】
上記実施の形態（変形例を含む）では、ＣＰＵコア１１の制御対象である各種周辺機能モジュールとして、特殊機能レジスタ領域の格納値に変化があるとマイコン１０の動作に影響する特殊機能レジスタ領域を有する周辺機能モジュール、及び、特殊機能レジスタ領域の格納値に変化があってもマイコン１０の動作に影響しない特殊機能レジスタ領域を有する周辺機能モジュールの双方ともを採用していたがこれに限らない。ＣＰＵコア１１の制御対象である各種周辺機能モジュールとして、特殊機能レジスタ領域の格納値に変化があるとマイコン１０の動作に影響する特殊機能レジスタ領域を有する周辺機能モジュールのみを採用してもよい。
【００５９】
上記実施の形態（変形例を含む）では、特殊機能レジスタ再書き込み処理の繰り返し実行回数を記憶保持するための繰り返し実行回数カウンタを、特殊機能レジスタ領域と同一数だけＲＡＭ１４に割り当てていたが、これにも限らない。各種周辺機能モジュールのうち、特殊機能レジスタ領域に固着が生じやすい周辺機能モジュールに対してのみ、繰り返し実行回数を記憶保持するための繰り返し実行カウンタをＲＡＭ１４に割り当てることとしてもよい。これにより、有限なメモリリソースを有効に活用することができるようになる。
【００６０】
上記実施の形態（変形例を含む）では、車載用ＥＣＵとして電子制御装置を具体化していたがこれに限られない。車両用に限らず広く適用することができる。
【図面の簡単な説明】
【００６１】
【図１】本発明に係る電子制御装置の一実施の形態について、全体構成を示すブロック図。
【図２】本実施の形態を構成するマイクロコントロールユニットについて、（ａ）は、そのハードウエア構成を示すブロック図。（ｂ）は、その周辺機能の一覧を示す図。
【図３】本実施の形態のソフトウエア構成を概念的に示すブロック図。
【図４】本実施の形態のアドレス空間を概念的に示す図。
【図５】同実施の形態の電子制御装置によって実行される、特殊機能レジスタのリフレッシュ処理について、全体の処理手順を示すフローチャート。
【図６】上記リフレッシュ処理において実行される繰り返し実行回数カウンタの初期化処理について、その処理手順を示すフローチャート。
【図７】上記リフレッシュ処理において実行される特殊機能レジスタの再書き込み処理について、その処理手順を示すフローチャート。
【図８】上記再書き込み処理において、各特殊機能レジスタにつき実行される再書き込み処理の処理手順を示すフローチャート。
【図９】上記再書き込み処理において、固着が生じた特殊機能レジスタに対し個別に実行される異常時処理の処理手順を示すフローチャート。
【符号の説明】
【００６２】
１…電子制御装置（車載用ＥＣＵ）、１０…マイクロコントロールユニット（ＭＣＵ）、１１…ＣＰＵコア、１２…フラッシュメモリ、１３…ＲＯＭ、１４…ＲＡＭ（特殊機能レジスタ）、１５…各種周辺機能モジュール、１５ａ…ＤＭＡコントローラ（ＤＭＡ）、１５ｂ…クロック発生器（ＣＬＫ）、１５ｃ…ＰＷＭモジュール（ＰＷＭ）、１５ｄ…タイマ（ＴＭ）、１５ｅ…割り込みコントローラ（ＩＮＴＣ）、１５ｆ…Ａ／Ｄコンバータ（ＡＤＣ）、１５ｇ…ＵＡＲＴポート（ＵＡＲＴ）、１５ｈ…ＣＳＩポート（ＣＳＩ）、１５ｉ…ＣＡＮコントローラ（ＣＡＮ）、１５ｊ…Ｉ／Ｏポート、１６…Ｉ／Ｏバス、Ｄ１〜Ｄｎ…デバイス。
【図１】
2009205528.tif 000003
【図２】
2009205528.tif 000004
【図３】
2009205528.tif 000005
【図４】
2009205528.tif 000006
【図５】
2009205528.tif 000007
【図６】
2009205528.tif 000008
【図７】
2009205528.tif 000009
【図８】
2009205528.tif 000010
【図９】
2009205528.tif 000011