JP2009205528A - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP2009205528A
JP2009205528A JP2008048442A JP2008048442A JP2009205528A JP 2009205528 A JP2009205528 A JP 2009205528A JP 2008048442 A JP2008048442 A JP 2008048442A JP 2008048442 A JP2008048442 A JP 2008048442A JP 2009205528 A JP2009205528 A JP 2009205528A
Authority
JP
Japan
Prior art keywords
special function
function register
value
cpu core
electronic control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008048442A
Other languages
English (en)
Inventor
Koji Suzuki
弘二 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2008048442A priority Critical patent/JP2009205528A/ja
Publication of JP2009205528A publication Critical patent/JP2009205528A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】より広範な特殊機能レジスタに対し固着の発生を検出することのできる電子制御装置を提供する。
【解決手段】マイコン10を構成するCPUコア11は、RAM14に割り当てられた特殊機能レジスタ領域SFR1〜SFRmに格納された各格納値V1〜Vmが当初の各設定値E1〜Emにそれぞれ一致しない場合に再書込み処理をそれぞれ繰り返し実行し、再書き込み処理の各繰り返し実行回数C1〜Cmが各既定回数F1〜Fmにそれぞれ達することをもって特殊機能レジスタ領域SFR1〜SFRmに固着が生じた旨を判断する。
【選択図】図1

Description

本発明は、例えば車両に搭載されて有益な電子制御装置に関する。
一般に、車両には、複数個の車載用ECU(Electronic Control Unit)が搭載されており、これら複数の車載用ECUによって例えば車載エンジンや各種車載機器等が制御される。各車載用ECUの構成は、詳しくは、少なくとも1つのMCU(Micro Control Unit、以下マイコンと記載)を有しており、そうしたマイコンは、基本的に、例えば四則演算や論理演算等の各種演算(主機能)及び周辺機能の制御を行うCPUコアと、このCPUコアが各種演算を行う際に使用される複数個の汎用レジスタと、CPUコアが周辺機能を動作・停止させたり、動作モードを設定したり、あるいは、その動作状態を確認したりする際に使用される複数個の特殊機能レジスタとを有して構成されている。
ちなみに、こうした特殊機能レジスタは、その格納値に変化があるとマイコンの動作に影響する(例えば周辺機能が動作・停止されたり、周辺機能の動作モードが変更されたりする等)特殊機能レジスタと、その格納値に変化があったとしてもマイコンの動作に影響しない(例えばCANのメッセージBOX関連レジスタ(通信開始前)のようにデータの格納領域として使用される等)特殊機能レジスタとに分類される。さらに、格納値の変化がマイコンの動作に影響する特殊機能レジスタは、マイコンの動作開始時に格納値が一旦設定されると、マイコンの動作終了時まで格納値が不変な特殊機能レジスタ(例えば上記周辺機能の動作モードを設定するための特殊機能レジスタ等)、及び、マイコン動作中に格納値が変化する特殊機能レジスタ(例えば周辺機能を動作・停止するための特殊機能レジスタ等)に分類される。一方、格納値の変化がマイコンの動作に影響しない特殊機能レジスタにおいては、マイコンの動作中、基本的に、格納値は変化する。
ところで、特殊機能レジスタの格納値は、例えば外来ノイズ等の様々な要因によって、当初設定された値(設定値)とは異なる値に値化けすることがある。上記特殊機能レジスタのうち後者の特殊機能レジスタの格納値にそうした値化けが発生しても、マイコンの動作に影響はないものの、上記特殊機能レジスタのうち前者の特殊機能レジスタの格納値に値化けが発生すると、マイコンの動作に影響し、誤動作が生じてしまうことがある。そのため、前者の特殊機能レジスタの格納値が当初の設定値と異なるとき、設定値を再書込み(テストアンドライト)する、いわゆるレジスタリフレッシュ機能が知られている。これにより、マイコンの動作を回復することができるようになる。
しかしながら、上記レジスタリフレッシュ機能によって、マイコンの動作を確実に回復することができるとは限らない。上記前者の特殊機能レジスタの格納値に生じた値化けが一時的なものではなく、例えば当初の設定値とは異なる値に格納値が固着してしまった場合、設定値を何度も再書込みしたところで格納値は設定値にならない。すなわち、格納値が固着してしまった場合にあっては、特殊機能レジスタの再書込みが繰り返し実行されるだけでマイコンの動作は正常に回復せず、ひいては、ECU稼働率の低い状況が継続してしまう。
これに対し、例えば特許文献1に記載の技術に見られるように、こうした特殊機能レジスタの格納値の固着を検出する固着チェック機能も知られている。具体的には、固着チェック機能とは、まず、周辺機能の動作に通常なんら関係がなく、各ビットが読み書き可能であるか否かを判断するに適した所定パターンを特殊機能レジスタに書き込む。所定パターン値を書き込んだ後に読み込み、その読み込んだ値が書き込んだはずのパターン値に一致するか否かを確認することを複数回繰り返す。そして、これら値が一致しない場合には、特殊機能レジスタの格納値に固着が生じたと判断する。これにより、特殊機能レジスタの格納値に固着が生じたことを検出することができるようになり、例えば車両整備者等がダイアグノーシス機能を通じてその旨を認識し、ECUを交換するなどのきっかけを与えることができるようになる。
特開平9−170931号公報
ただし、こうした固着チェック機能では、固着の有無を判断するべく、特殊機能レジスタのうち上記前者の特殊機能レジスタに上記所定パターン値を書き込むと、その所定パターンに対応して周辺機能が動作する。既述したように所定パターンは周辺機能の動作になんら関係のない値が採用されているため、周辺機能が意図せず動作を開始したり、意図せず動作を停止したりするなど、周辺機能に、ひいては、マイコンに、誤動作が生じることが懸念される。したがって、上記固着チェック機能は、特殊機能レジスタのうちの上記後者の特殊機能レジスタ(あるいはRAMなど)に適用することができるにすぎず、実行可能な特殊機能レジスタは限定されている。
本発明は、上記実情に鑑みてなされたものであって、その目的は、より広範な特殊機能レジスタに対し固着の発生を検出することのできる電子制御装置を提供することにある。
こうした目的を達成するため、請求項1に記載の発明では、周辺機能の制御を行うCPUコアと、前記周辺機能の動作が格納値に対応付けられているとともに前記周辺機能の制御を行う際に前記CPUコアが使用する特殊機能レジスタとを有するマイクロコントローラユニットを備え、前記特殊機能レジスタの格納値が前記周辺機能の動作開始時に設定された設定値と異なるとき、前記特殊機能レジスタに前記設定値を再び書き込む再書き込み処理を実行する電子制御装置であって、前記CPUコアは、前記格納値が前記設定値に一致しない場合は前記再書込み処理を繰り返し実行し、前記再書き込み処理の繰り返し実行回数が既定回数に達することをもって前記特殊機能レジスタに固着が生じた旨を判断することを特徴とする。
電子制御装置としてのこのような構成では、まず、特殊機能レジスタの格納値が読み込まれ、周辺機能の動作開始時に設定された設定値と一致するか否か判断される。そして、格納値が設定値に一致しない場合には再書込み処理が繰り返し実行され、再書き込み処理の繰り返し実行回数が既定回数に達することをもって特殊機能レジスタに固着が生じた旨が判断される。すなわち、周辺機能の動作と関係のある設定値が特殊機能レジスタに書き込まれることによって固着の有無が判断される。そのため、上記構成によれば、格納値に変化があったとしてもマイコンの動作に影響しない特殊機能レジスタだけでなく、格納値に変化があるとマイコンの動作に影響する特殊機能レジスタにも適用することが可能となり、より広範な特殊機能レジスタに対し固着の発生を検出することができるようになる。
上記請求項1に記載の構成において、例えば請求項2に記載の発明のように、前記マイクロコントローラユニットは、複数個の前記特殊機能レジスタを備えており、前記CPUコアは、これら複数個の特殊機能レジスタ毎に前記繰り返し実行回数を記憶保持しカウントすることで、前記複数個の特殊機能レジスタ毎に前記既定回数に達したか否かを判断することが望ましい。これにより、固着が生じた特殊機能レジスタを特定することができるようになる。そして、ひいては、固着が生じた特殊機能レジスタに応じた方法にて当該電子制御装置を復旧することができるようになる。
なお、前記既定回数は、複数個の特殊機能レジスタ全てに共通する任意の回数に定められていることとしてもよく、また、請求項3に記載の発明のように、前記既定回数は、前記複数個の特殊機能レジスタ毎に定められていることとしてもよい。
また、上記請求項2または3に記載の構成において、請求項4に記載の発明のように、当該電子制御装置は、固着が生じた特殊機能レジスタとして特定された特殊機能レジスタに応じたフェイルセーフ処理を実行することとしてもよい。
以下、本発明に係る電子制御装置の一実施の形態について、図1〜図9を参照しつつ説明する。なお、図1は、本実施の形態の電子制御装置について、全体構成を示すブロック図であり、図2(a)及び(b)はそれぞれ、本実施の形態の電子制御装置を構成するMCUのハードウエア構成を示すブロック図及びその周辺機能の一覧を示す図である。はじめに、これら図1並びに図2(a)及び(b)を参照して、本実施の形態の電子制御装置のハードウエア構成について説明する。
一般に、車両には、複数個の車載用ECU(Electronic ControlUnit)が搭載されており、これら複数の車載用ECUによって例えば車載エンジンや各種車載機器等が制御される。本実施の形態の電子制御装置は、そうした複数の車載用ECUのうちの1つとして具体化される。
図1に示されるように、車載用ECU1は、マイクロコントロールユニット(MCU:Micro Control Unit、以下マイコンと記載)10を少なくとも1つ有しており、このマイコン10は、複数個の外部デバイスD1〜Dnに接続されている。なお、これら外部デバイスD1〜Dnの種類や回路構成は任意である。
図2(a)に示されるように、マイコン10は、CPUコア11、フラッシュメモリ(Flash Memory)12及びROM(Read Only Memory)13、RAM(Random Access Memory)14、各種周辺機能モジュール15a〜15j及びI/Oバス16等々を備える。
このうち、CPUコア11は、その主機能として、例えば四則演算や論理演算等の各種演算によって、当該車載用ECU1の制御対象とする外部デバイスに対する命令を生成する。なお、CPUコア11は、図示しない複数個の汎用レジスタを内部に有しており、上記命令を生成するための各種演算を実行する際に複数個の汎用レジスタを使用する。
また、CPUコア11は、その周辺機能(特殊機能)として、図2(b)に一覧にて示す各種周辺機能モジュール15a〜15jを有しており、これら各種周辺機能モジュール15を制御する。具体的には、各種周辺モジュール15a〜15jはそれぞれ特殊機能レジスタ(Special Function Register:SFR)を複数個有しており、CPUコア11は各種周辺機能モジュール15a〜15jを特殊機能レジスタを介して動作・停止させたり、動作モードを設定したり、あるいは、その動作状態を確認したりする。RAM14は、CPUコア11がプログラムを実行する際に、一時的にデータを記憶保持するためのモジュールである。
ちなみに、DMAコントローラ(略称DMAC)15aは、他の各種周辺機能モジュール15b〜15j間においてCPUコア11を介することなく直接にI/Oバス16にてデータを転送するに際し、その通信の制御を行うモジュールである。また、クロック発生器(略称CLK)15bは、CPUコア11その他各種周辺機能モジュール15の動作基準となるクロックを発生するモジュールであり、PWMモジュール15c(略称PWM)は、CPUコア11の命令等をPWMにて出力するためのモジュールである。また、タイマ(略称TM)15dは、クロック発生器15bによって発生されるクロックを基準として所定時間経過時にCPUコア11に対し割り込みを発生させたり、所定時間間隔で割り込みを発生させたりするモジュールである。また、割り込みコントローラ(略称INTC)15eは、CPUコア11がある処理の実行中に別の処理を実行するための割り込みを制御するモジュールであり、A/Dコンバータ(略称ADC)15fは、図示しない各種センサ等のアナログ信号をデジタル信号に変換するためのアナログデジタル変換器を制御するモジュールである。また、UARTモジュール15g(略称UART)及びCSIモジュール15h(略称CSI)は、それぞれ、各種周辺機能モジュール間におけるクロック非同期シリアル通信及びクロック同期シリアル通信を制御するためのモジュールである。また、CANコントローラ15i(略称CAN)は、複数の車載用ECU間におけるシリアル通信を制御するためのモジュールである。なお、これら各種周辺機能モジュールについては公知であるため、ここでのこれ以上の詳しい説明を割愛する。
これら各種周辺機能モジュール15を制御するに際し、CPUコア11は、各種周辺機能モジュール毎の所定の動作に対応付けられた設定値を、その周辺機能モジュール用に割り当てられた特殊機能レジスタ領域に書き込む。
ここで、A/Dコンバータ15fを例に採り詳しく説明する。A/Dコンバータ15f用に割り当てられた特殊機能レジスタ領域に設定される設定値は、例えば次のような値によって構成されている。すなわち、設定値は、予め決められた複数のA/D変換クロック(周期)の中から実際にA/D変換するA/D変換クロックを指定する値、予め決められた複数の入力端子の中から実際にA/D変換する入力端子を指定するための値、及び、A/Dコンバータ15fによるA/D変換を開始または停止するための値等々を含んで構成される。したがって、CPUコア11は、A/Dコンバータ15fの所定の動作に対応する設定値をA/Dコンバータ15f用に割り当てられた特殊機能レジスタ領域に格納することで、A/Dコンバータ15fを動作させることができるようになる。
なお、RAM14には、後述の特殊機能レジスタ再書き込み処理の繰り返し実行回数を記憶保持するための繰り返し実行回数カウンタを特殊機能レジスタ領域と同一数だけ割り当てられている。
図3に、本実施の形態のソフトウエア構成とハードウエア構成との関係を概念的に示す。この図3を参照して、本実施の形態の車載用ECU1のソフトウエア構成及びハードウエア構成との関係を説明する。
ソフトウエア構成として図3に示されるように、上記CPUコア11によって実行されるプログラムPは、上記各種周辺機能モジュール15a〜15jを各別に制御するための小規模なプログラムであるドライバDr1〜Dr4と、後述する特殊機能レジスタの再書き込み処理のプログラムP1と、これらドライバDr1〜Dr4及びプログラムP1並びに図示しない他のドライバ及びプログラム等を有機的に利用して特定の処理を実現する大規模なプログラムであるアプリケーションAp1〜Ap4とを含んでいる。なお、図示の便宜上、上記各種周辺機能モジュール15a〜15jの数はドライバDr1〜Dr4の数と一致していないが、プログラムPは、通常、各種周辺機能モジュール15と同一数のドライバを含んでいる。
ここで、アプリケーションAp1〜Ap4は、そうしたドライバDr1〜Dr4よりも大規模なプログラムであり、上記各種周辺機能モジュール15a〜15jのうち1つまたは複数に異常が生じても当該車載用ECU1の搭載される車両を安全側に制御するフェイルセーフ処理や当該車載用ECU1の搭載される車両の異常個所を診断するダイアグノーシス処理、あるいは、システム管理処理などのプログラムに相当する。なお、こうしたアプリケーションの数や種類は任意である。
一方、ハードウエア構成として図3に示されるように、また既述したように、RAM14には、上記各種周辺機能モジュール15a〜15j用に、複数の特殊機能レジスタ領域SFR1〜SFRmが割り当てられている。なお、各種周辺機能モジュールに対し割り当てられる特殊機能レジスタ領域SFRの数は、その周辺機能モジュールによって異なっている。
ここで、CPUコア11は、図3において破線で示すように、sfr変数定義体を介して、特殊機能レジスタ領域SFR1〜SFRmに格納する値を操作する。詳しくは、CPUコア11によるプログラムP1の実行に伴って、例えば変数sfr1にある値が代入されると、この変数sfr1に対応するRAM14に割り当てられた特殊機能レジスタ領域SFR1にはその値が実際に格納されるようになっている。逆に、特殊機能レジスタ領域SFR1に実際に格納されている値が変化すると、変数sfr1の値も変化する。すなわち、変数sfr1の値と、特殊機能レジスタ領域SFR1の格納値とは1対1に対応付けられる。
なお、既述したように、特殊機能レジスタ領域SFR1〜SFRmとして使用される記憶領域がRAM14に割り当てられるだけでなく、後述の特殊機能レジスタ再書き込み処理の繰り返し実行回数C1〜Cmを記憶保持するための繰り返し実行回数カウンタCnt1〜CntmもRAM14に割り当てられている。そのため、図4に概念的に示すように、上記プログラムP1をCPUコア11によって実行するに伴い構成されるアドレス空間において、繰り返し実行回数カウンタCnt1〜Cntmは、特殊機能レジスタ領域SFR1〜SFRmと同一数となっている。
ところで、例えばA/Dコンバータ15f用に割り当てられた特殊機能レジスタ領域の格納値は、外来ノイズ等の様々な要因によって、CPUコア11によって当初設定された設定値とは異なる値に値化けすることがある。このような値化けがあると、例えばA/D変換クロックが変更されてしまったり、所望の入力端子とは異なる入力端子を指定してしまったり、A/D変換を意図せず開始あるいは停止してしまったりする等して、A/Dコンバータ15fは、その動作に影響を受け、誤動作をしてしまうことがある。A/Dコンバータ15fが誤動作すると、マイコン10自体の誤動作、ひいては、車載用ECU1の誤動作を招いてしまうことが懸念される。
このような、格納値に変化があるとマイコン10の動作に影響する特殊機能レジスタ領域に対し、その格納値が当初の設定値と異なるとき、設定値を再書込み(テストアンドライト)する、いわゆるレジスタリフレッシュ機能が知られている。このレジスタリフレッシュ機能により設定値が再書込みされれば、通常、特殊レジスタ領域に設定値が格納されることになる。しかしながら、値化けが一時的なものではなく、例えば設定値とは異なる値に格納値が固着してしまった場合には、設定値を何度も再書込みしたところで格納値は設定値にならない。すなわち、格納値が固着してしまった場合にあっては、特殊機能レジスタ領域の再書込みが繰り返し実行されるだけでマイコン10の動作は正常に回復せず、ひいては、車載用ECU1の稼働率が低い状況が継続してしまう。
これに対し、特殊機能レジスタ領域の格納値の固着を検出する固着チェック機能も知られてはいる。固着チェック機能とは、まず、周辺機能の動作に通常なんら関係がなく、各ビットが読み書き可能であるか否かを判断するに適した所定パターンを特殊機能レジスタ領域に書き込む(格納する)。所定パターン値を書き込んだ後に読み込み、その読み込んだ値が書き込んだはずのパターン値に一致するか否かを確認することを複数回繰り返す。そして、これら値が一致しない場合には、特殊機能レジスタ領域の格納値に固着が生じたと判断する。これにより、特殊機能レジスタ領域の格納値に固着が生じたことを検出することができるようになり、例えば車両整備者等がダイアグノーシス機能を通じてその旨を認識し、車載用ECU1を交換するなどのきっかけを与えることができるようになる。
ただし、こうした固着チェック機能では、固着の有無を判断するべく特殊機能レジスタ領域に上記所定パターン値を書き込むため、その所定パターンに対応して周辺機能が動作してしまうことが多い。既述したように、所定パターンは周辺機能の動作になんら関係のない値が採用されるため、上記値化け時と同様に、周辺機能が意図せず動作を開始したり、意図せず動作を停止したりするなど、周辺機能モジュールに、ひいては、マイコン10及び車載用ECU1に、誤動作が生じることが懸念される。
ちなみに、特殊機能レジスタ領域には、上記A/Dコンバータ15f用に割り当てられた特殊機能レジスタ領域のように、格納値に変化があるとマイコン10の動作に影響する特殊機能レジスタ領域もあれば、格納値に変化があったところでマイコン10の動作には影響しない特殊機能レジスタ領域もある。具体的には、上記CANコントローラ15i用に割り当てられた特殊機能レジスタ領域のうちメッセージBOX関連レジスタ領域には、当該車載用ECU1のCANコントローラ15iの状態に対応する値が格納される。こうした特殊機能レジスタ領域にあっては、その通信開始前において、格納値に変化があったとしても、当該周辺機能が動作していなければ、当該車載用ECU1のマイコン10の動作にはなんら影響しない。したがって、上記固着チェック機能は、格納値に変化があったとしてもマイコン10の動作には影響しない特殊機能レジスタ領域にのみ、しかも、当該車載用ECU1の特定状態(例えば初期化時等)においてのみ、適用することができ、実行可能な特殊機能レジスタ領域は限定されている。
そこで、本実施の形態では、CPUコア11は、特殊機能レジスタ領域SFR1〜SFRmに格納された各格納値V1〜Vmが当初の各設定値E1〜Emにそれぞれ一致しない場合に再書込み処理をそれぞれ繰り返し実行し、再書き込み処理の各繰り返し実行回数C1〜Cmが各既定回数F1〜Fmにそれぞれ達することをもって特殊機能レジスタ領域SFR1〜SFRmに固着が生じた旨を判断している。
詳しくは、図5〜図9のフローチャートを参照しつつ説明する。なお、図5は、車載用ECU1によって実行される特殊機能レジスタ領域のリフレッシュ処理について、全体の処理手順を示すフローチャートである。
この図5に示されるように、特殊機能レジスタ領域のリフレッシュ処理が開始されると、車載用ECU1(正確にはCPUコア11)は、まず、ステップS10の処理として、繰り返し実行回数カウンタの初期化処理を実行する。図6に、この初期化処理の処理手順を示す。この図6に示されるように、ステップS10の処理が開始されると、CPUコア11は、まず、ステップS11の処理として、nを「1」に設定する。このステップS11の処理を終えると、CPUコア11は、続くステップS12の処理として、繰り返し実行回数カウンタCntnを初期化(記憶保持されている値を零にする)し、続くステップS13の処理として、nをインクリメントする。そして、CPUコア11は、続くステップS14の判断処理として、全ての繰り返し実行回数カウンタCntnを初期化したか否か(nがmとなっているか否かを判断)する。このステップS14の判断処理において、全ての繰り返し実行回数カウンタCntnを初期化していないと判断した場合(「No」)、初期化されていない繰り返し実行回数カウンタが残されているため、先のステップS12の処理に移行する。一方、このステップS14の判断処理において、全ての繰り返し実行回数カウンタを初期化したと判断した場合(「Yes」)、初期化されていない繰り返し実行回数カウンタは残されていないため、先の図5に示すステップS20に移行する。このように、CPUコア11は、繰り返し実行回数カウンタCnt1〜Cntmを「繰り返し実行回数カウンタCnt1→繰り返し実行回数カウンタCnt2→・・・→繰り返し実行回数カウンタCntm−1→繰り返し実行回数カウンタCntm」といった順序にて順次初期化し、繰り返し実行回数カウンタCnt1〜Cntmを全て初期化する。なお、CPUコア11は、当該車載用ECU1の電源投入直後に1度のみステップS10の処理を実行し、ステップS10の処理を実行後にあっては、後述のステップS20の処理を所定時間毎に繰り返し実行する。
次に、ステップS20の処理である特殊機能レジスタ領域の再書き込み処理を説明する。図7に、そうした再書き込み処理の処理手順を示す。この図7に示されるように、ステップS20の処理が開始されると、CPUコア11は、まず、ステップS21の処理として、nを「1」に設定する。このステップS21の処理を終えると、CPUコア11は、続くステップS22の処理として、特殊機能レジスタ領域SFRnの再書き込み処理を実行する。なお、このステップS22の再書き込み処理については、図8を参照しつつ後述する。ちなみに、この処理においては、戻り値Returnが使用されており、特殊機能レジスタ領域SFRnの格納値Vnが各設定値Enに一致していない場合には、戻り値Returnに異常を示す値が代入されている。一方、特殊機能レジスタ領域SFRnの格納値Vnが各設定値Enに一致している場合には、戻り値Returnに正常を示す値が代入されている。
ステップS22の処理を終えると、CPUコア11は、次に、ステップS23の判断処理を実行する。ここで、戻り値Returnに代入された値が異常を示す値であると判断されるとき(ステップS22の判断処理で「Yes」)、特殊機能レジスタ領域SFRnの格納値Vnが設定値Enに一致していないため、対応する周辺機能モジュールに、ひいてはマイコン10に、誤動作が生じるおそれがある。そのため、CPUコア11は、続くステップS24の処理として、特殊機能レジスタ領域SFRnの異常時処理を実行し、さらに、続くステップS25の処理として、nをインクリメントする。一方、戻り値Returnに代入された値が正常を示す値であったと判断されるとき(ステップS23の判断処理で「No」)、特殊機能レジスタ領域SFRnの格納値Vnは各設定値Enに一致するため、CPUコア11は、続くステップS25の処理として、nをインクリメントする。なお、ステップS24の処理は、図9を参照しつつ後述する。
そして、CPUコア11は、続くステップS26の判断処理として、すべての特殊機能レジスタ領域に対し再書き込み処理を実行したか否か(nがmとなっているか否か)を判断する。このステップS26の判断処理において、すべての特殊機能レジスタ領域に対しリフレッシュ処理を実行していないと判断される場合(「No」)、リフレッシュ処理が実行されていない特殊機能レジスタ領域が残されているため、先のステップS22の処理に移行する。一方、このステップS26の判断処理において、すべての特殊機能レジスタ領域に対しリフレッシュ処理を実行したと判断される場合(「Yes」)、再書き込み処理が実行されていない特殊機能レジスタ領域は残されていないため、先の図5に示すステップS20を終え、当該特殊レジスタ領域のリフレッシュ処理を終了する。このように、CPUコア11は、「特殊機能レジスタ領域SFR1→特殊機能レジスタ領域SFR2→・・・→特殊機能レジスタ領域SFRm−1→特殊機能レジスタ領域SFRm」といった順序にて、順次1度ずつリフレッシュ処理を実行する。
ここで、先のステップS22の再書き込み処理について図8を参照しつつ詳述する。なお、図8は、特殊機能レジスタ領域SFR1〜SFRnの格別につき実行される。
この図8に示されるように、CPUコア11は、まず、ステップS221の処理として、上記戻り値Returnに正常を示す値を代入しておくとともに、続くステップS222の処理として、上記各種周辺機能モジュール15a〜15j等からの割り込みを禁止する。そして、CPUコア11は、続くステップS223の判断処理として、特殊機能レジスタ領域SFRnの格納値Vnが設定値Enに一致するか否かを判断する。なお、設定値En(E1〜Em)は、各種周辺機能モジュール15a〜15jの動作開始時にそれぞれ設定される値である。各種周辺機能モジュール15a〜15jの動作開始時とは、例えば当該車載用ECU1の電源投入時であり、設定値EnはROM13に記憶されているデフォルト値である。また、こうした設定値En(E1〜Em)は、車載用ECU1の電源投入時におけるデフォルト値に限らず、各種周辺機能モジュール15a〜15jに対しCPUコア11によって動作開始命令が生成されるときに同時に生成する値としてもよい。その場合には、設定値En(E1〜Em)は、RAM14に記憶保持されることになる。
上記ステップS223の判断処理において、格納値Vnが設定値Enに一致するとき(「Yes」)、対応する周辺機能モジュールに誤動作、ひいては、マイコン10に誤動作が生じるおそれはないため、続くステップS226の処理に移行して割り込みを許可したのち、先のステップS23(図7)に移行する。なお、このとき、上記戻り値Returnには正常を示す値が代入されている。
一方、上記ステップS223の判断処理において、格納値Vnが設定値Enに一致しないと判断されるとき(「No」)、対応する周辺機能に誤動作、ひいては、マイコン10に誤動作が生じるおそれがあるため、CPUコア11は、続くステップS224の処理として、特殊機能レジスタ領域SFRnに設定値Enを再書き込みする。この再書き込み処理を終えると、CPUコア11は、続くステップS225の処理として、上記戻り値Returnに異常を示す値を代入する。そして、CPUコア11は、続くステップS226の処理として割り込みを許可したのち、先のステップS23(図7)へ移行する。
このようにして、CPUコア11は、格納値Vnが設定値Enに一致しない場合に再書き込み処理を実行する。
次に、先のステップS24の異常時処理について図9を参照して詳述する。なお、図9は、上記再書き込み処理(図8)において、異常が生じた特殊機能レジスタに対し個別に実行される異常時処理の処理手順を示すフローチャートである。
この図9に示されるように、CPUコア11は、まず、ステップS241の処理として、繰り返し実行回数カウンタCntnに記憶保持される繰り返し実行回数Cnをインクリメントする。なお、繰り返し実行回数Cnは、ステップS10(図6)において、当該車載用ECU1の電源投入直後に1度のみ初期化されている。
ステップS241の処理を終えると、CPUコア11は、続くステップS242の判断処理として、繰り返し実行回数Cnが既定回数Fnに一致するするか否かを判断する。なお、既定回数Fn(F1〜Fm)は、各繰り返し実行回数カウンタCntn毎に定められる値である。また、こうした既定回数Fn(F1〜Fm)は、繰り返し実行回数カウンタCntn全てに共通する任意の回数に定められていることとしてもよく、各繰り返し実行回数カウンタCntn毎に定められていることとしてもよい。
上記ステップS242の判断処理において、繰り返し実行回数Cnが既定回数Fnに一致すると判断されるとき(「Yes」)、格納値Vnに生じた値化けが一時的なものではなく、特殊機能レジスタ領域SFRnに固着が生じた可能性が高い。そのため、CPUコア11は、続くステップS243の処理として、特殊機能レジスタ領域SFRnに固着が生じた旨を判断する。その旨判断すると、CPUコア11は、続くステップS244の処理として、各種フェイルセーフ処理を実行する。詳しくは、特殊機能レジスタ領域SFRnに固着が生じた旨が上記プログラムP1(図3)によって判断されると、プログラムP1は、上記アプリケーションAp1〜Ap4に、いずれの特殊機能レジスタ領域SFRnに固着が生じたかに関する情報とともにその旨を通知する。そして、通知を受けたアプリケーションAp1〜Ap4によって、固着が生じた特殊機能レジスタとして特定された特殊機能レジスタに応じたフェイルセーフ処理が実行されることになる。
一方、上記ステップS242の判断処理において、繰り返し実行回数Cnが既定回数Fnに一致しないとき(「No」)、格納値Vnに生じた値化けが一時的なものである可能性がある。そのため、CPUコア11は、当該異常時処理を終えて、先のステップS25(図7)に移行する。
このようにして、CPUコア11は、再書き込み処理(ステップS22)の各繰り返し実行回数C1〜Cmが各既定回数F1〜Fmにそれぞれ達することをもって特殊機能レジスタ領域SFR1〜SFRmに固着が生じた旨を判断している。
以上説明した本実施の車載用ECU1(電子制御装置)では、CPUコア11は、特殊機能レジスタ領域SFR1〜SFRmに格納された各格納値V1〜Vmが当初の各設定値E1〜Emにそれぞれ一致しない場合に再書込み処理をそれぞれ繰り返し実行し、再書き込み処理の各繰り返し実行回数C1〜Cmが各既定回数F1〜Fmにそれぞれ達することをもって特殊機能レジスタ領域SFR1〜SFRmに固着が生じた旨を判断することとした。これにより、従来の固着チェック機能とは異なり、各種周辺機能モジュール15a〜15jの動作と関係のある設定値E1〜Emが特殊機能レジスタ領域SFR1〜SFRmに書き込まれることによって固着の有無が判断される。そのため、格納値V1〜Vmに変化があったとしてもマイコン10の動作に影響しない特殊機能レジスタ領域SFR1〜SFRmだけでなく、格納値V1〜Vmに変化があるとマイコン10の動作に影響する特殊機能レジスタ領域SFR1〜SFRmにも適用することが可能となり、より広範な特殊機能レジスタに対し固着の発生を検出することができるようになる。
また、本実施の形態の車載用ECU1では、先の図4に示すように、特殊機能レジスタ再書き込み処理(ステップS224)の繰り返し実行回数C1〜Cmを記憶保持するための繰り返し実行回数カウンタCnt1〜Cntmが、特殊機能レジスタ領域と同一数だけRAM14に割り当てられてられていた。これにより、繰り返し実行回数カウンタCnt1〜Cntmと特殊機能レジスタ領域SFR1〜SFRmとが1対1に対応するため、固着が生じた特殊機能レジスタ領域を容易に特定することができるようになる。さらに、固着が生じた特殊機能レジスタに応じた方法にて当該車載用ECU1を復旧することができるようになる。
なお、本発明に係る電子制御装置は、上記実施の形態にて例示した構成に限定されるものではなく、本発明の趣旨を逸脱しない範囲において、種々に変形して実施することが可能である。すなわち、上記実施の形態を適宜変更した例えば次の形態として実施することもできる。
上記実施の形態では、先の図2に示したように、車載用ECU1は、単一のCPUコアを有するシングルコア構成のマイコンを採用していたが、これに限らない。2個のCPUコアを有するデュアルコア構成のマイコンを採用してもよく、複数個のCPUコアを有するマルチコア構成のマイコンを採用してもよい。
上記実施の形態(変形例を含む)では、先の図9に示すように、CPUコア11は、特殊機能レジスタ領域SFRnに固着が生じた旨を判断すると、固着が生じた特殊機能レジスタとして特定された特殊機能レジスタに応じたフェイルセーフ処理を実行していたが、これに限らない。他に例えば、CPUコア11は、特殊機能レジスタ領域SFR1〜SFRnのいずれかに固着が生じた旨を判断すると、当該車載用ECU1自体が自発的に再起動することとしてもよい。
上記実施の形態(変形例を含む)では、既定回数Fn(F1〜Fm)は、特殊機能レジスタ領域SFRn(SFR1〜SFRn)毎に定められていることとしたが、これに限らない。他に例えば、特殊機能レジスタ領域SFRn(SFR1〜SFRm)全てに共通する任意の回数に定められていることとしてもよい。
上記実施の形態(変形例を含む)では、CPUコア11の制御対象である各種周辺機能モジュールとして、特殊機能レジスタ領域の格納値に変化があるとマイコン10の動作に影響する特殊機能レジスタ領域を有する周辺機能モジュール、及び、特殊機能レジスタ領域の格納値に変化があってもマイコン10の動作に影響しない特殊機能レジスタ領域を有する周辺機能モジュールの双方ともを採用していたがこれに限らない。CPUコア11の制御対象である各種周辺機能モジュールとして、特殊機能レジスタ領域の格納値に変化があるとマイコン10の動作に影響する特殊機能レジスタ領域を有する周辺機能モジュールのみを採用してもよい。
上記実施の形態(変形例を含む)では、特殊機能レジスタ再書き込み処理の繰り返し実行回数を記憶保持するための繰り返し実行回数カウンタを、特殊機能レジスタ領域と同一数だけRAM14に割り当てていたが、これにも限らない。各種周辺機能モジュールのうち、特殊機能レジスタ領域に固着が生じやすい周辺機能モジュールに対してのみ、繰り返し実行回数を記憶保持するための繰り返し実行カウンタをRAM14に割り当てることとしてもよい。これにより、有限なメモリリソースを有効に活用することができるようになる。
上記実施の形態(変形例を含む)では、車載用ECUとして電子制御装置を具体化していたがこれに限られない。車両用に限らず広く適用することができる。
本発明に係る電子制御装置の一実施の形態について、全体構成を示すブロック図。 本実施の形態を構成するマイクロコントロールユニットについて、(a)は、そのハードウエア構成を示すブロック図。(b)は、その周辺機能の一覧を示す図。 本実施の形態のソフトウエア構成を概念的に示すブロック図。 本実施の形態のアドレス空間を概念的に示す図。 同実施の形態の電子制御装置によって実行される、特殊機能レジスタのリフレッシュ処理について、全体の処理手順を示すフローチャート。 上記リフレッシュ処理において実行される繰り返し実行回数カウンタの初期化処理について、その処理手順を示すフローチャート。 上記リフレッシュ処理において実行される特殊機能レジスタの再書き込み処理について、その処理手順を示すフローチャート。 上記再書き込み処理において、各特殊機能レジスタにつき実行される再書き込み処理の処理手順を示すフローチャート。 上記再書き込み処理において、固着が生じた特殊機能レジスタに対し個別に実行される異常時処理の処理手順を示すフローチャート。
符号の説明
1…電子制御装置(車載用ECU)、10…マイクロコントロールユニット(MCU)、11…CPUコア、12…フラッシュメモリ、13…ROM、14…RAM(特殊機能レジスタ)、15…各種周辺機能モジュール、15a…DMAコントローラ(DMA)、15b…クロック発生器(CLK)、15c…PWMモジュール(PWM)、15d…タイマ(TM)、15e…割り込みコントローラ(INTC)、15f…A/Dコンバータ(ADC)、15g…UARTポート(UART)、15h…CSIポート(CSI)、15i…CANコントローラ(CAN)、15j…I/Oポート、16…I/Oバス、D1〜Dn…デバイス。

Claims (4)

  1. 周辺機能の制御を行うCPUコアと、前記周辺機能の動作が格納値に対応付けられているとともに前記周辺機能の制御を行う際に前記CPUコアが使用する特殊機能レジスタとを有するマイクロコントローラユニットを備え、前記特殊機能レジスタの格納値が前記周辺機能の動作開始時に設定された設定値と異なるとき、前記特殊機能レジスタに前記設定値を再び書き込む再書き込み処理を実行する電子制御装置であって、
    前記CPUコアは、前記格納値が前記設定値に一致しない場合は前記再書込み処理を繰り返し実行し、前記再書き込み処理の繰り返し実行回数が既定回数に達することをもって前記特殊機能レジスタに固着が生じた旨を判断することを特徴とする電子制御装置。
  2. 前記マイクロコントローラユニットは、複数個の前記特殊機能レジスタを備えており、
    前記CPUコアは、これら複数個の特殊機能レジスタ毎に前記繰り返し実行回数を記憶保持しカウントすることで、前記複数個の特殊機能レジスタ毎に前記既定回数に達したか否かを判断することを特徴とする請求項1に記載の電子制御装置。
  3. 前記既定回数は、前記複数個の特殊機能レジスタ毎に定められていることを特徴とする請求項2に記載の電子制御装置。
  4. 当該電子制御装置は、固着が生じた特殊機能レジスタとして特定された特殊機能レジスタに応じたフェイルセーフ処理を実行することを特徴とする請求項2または3に記載の電子制御装置。
JP2008048442A 2008-02-28 2008-02-28 電子制御装置 Pending JP2009205528A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008048442A JP2009205528A (ja) 2008-02-28 2008-02-28 電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008048442A JP2009205528A (ja) 2008-02-28 2008-02-28 電子制御装置

Publications (1)

Publication Number Publication Date
JP2009205528A true JP2009205528A (ja) 2009-09-10

Family

ID=41147700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008048442A Pending JP2009205528A (ja) 2008-02-28 2008-02-28 電子制御装置

Country Status (1)

Country Link
JP (1) JP2009205528A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011127947A (ja) * 2009-12-16 2011-06-30 Nissan Motor Co Ltd 故障診断装置
JP2013055593A (ja) * 2011-09-06 2013-03-21 Denso Corp 通信装置
JP2017211812A (ja) * 2016-05-25 2017-11-30 日立オートモティブシステムズ株式会社 車載用制御装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011127947A (ja) * 2009-12-16 2011-06-30 Nissan Motor Co Ltd 故障診断装置
JP2013055593A (ja) * 2011-09-06 2013-03-21 Denso Corp 通信装置
JP2017211812A (ja) * 2016-05-25 2017-11-30 日立オートモティブシステムズ株式会社 車載用制御装置

Similar Documents

Publication Publication Date Title
US11210161B2 (en) Processing system, related integrated circuit, device and method
CN105988400B (zh) 微控制器单元
EP4068101A1 (en) Processing system, related integrated circuit, device and method
JP2009205528A (ja) 電子制御装置
US9043046B2 (en) Data processing device, microcontroller, and self-diagnosis method of data processing device
US9400708B2 (en) Integrated circuit and method of detecting a data integrity error
JP2015035121A (ja) 半導体集積回路装置
JP5295251B2 (ja) 給電電圧監視されるマイクロコントローラを有する車両制御ユニット、および関連の方法
EP3629176B1 (en) Fault detection circuit with progress register and status register
JP5699896B2 (ja) 情報処理装置、異常判定方法
JP2015171853A (ja) 自動車用電子制御装置
IT202100007475A1 (it) Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
JP6183251B2 (ja) 電子制御装置
JP5251662B2 (ja) ソフトエラー検出回路を備える制御装置
US20230398955A1 (en) In-vehicle use control system
US20230349969A1 (en) Processing system, related integrated circuit, device and method
JP2001175494A (ja) マイクロプロセッサの演算処理の正常性を二重に診断する方式及びその方法
JP2013058228A (ja) 保安処理装置
US8145953B2 (en) Programmable unit
US20230314506A1 (en) Processing system, related integrated circuit, device and method
CN116893936A (zh) 处理系统、相关集成电路、设备和方法
JP6596455B2 (ja) 自動車用電子制御装置
JP5128972B2 (ja) 保安処理装置
JP3433824B2 (ja) パルス入出力回路の故障検出装置
JP2020004448A (ja) 自動車用電子制御装置