JP2004318672A - 処理装置 - Google Patents
処理装置 Download PDFInfo
- Publication number
- JP2004318672A JP2004318672A JP2003114182A JP2003114182A JP2004318672A JP 2004318672 A JP2004318672 A JP 2004318672A JP 2003114182 A JP2003114182 A JP 2003114182A JP 2003114182 A JP2003114182 A JP 2003114182A JP 2004318672 A JP2004318672 A JP 2004318672A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- processing
- recorded
- identifier
- value
- 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.)
- Granted
Links
Images
Landscapes
- Testing And Monitoring For Control Systems (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】処理装置としてのエンジンECU1が、所定の順序で動作するよう定められた処理i本体(ステップ330)(i=1、2、…、N)と、これら処理i本体のうち、所定の順序に異常があった際の処理手段を特定する情報を記録する処理(ステップ310、320)とを備える。
徴とする請求項1に記載の処理装置。
【選択図】 図3
Description
【発明の属する技術分野】
本発明は、一連の処理があらかじめ決められた順番通りに行われていることをチェックする技術に関するもので、エンジンECU等の制御装置に用いて好適である。
【0002】
【従来の技術】
従来、ソフトウェアにおいて、一連の制御処理があらかじめ決められた順番通りに動作していることを検証するものとして、例えば、特許文献1では、一連の処理において特定の処理の通過点を通過するたびに、交換律が成立することのない演算をし、その最終演算結果があらかじめ設定しておいた規定値に対して不一致のときに動作異常と診断する技術を開示している。この技術では、上記演算の交換律が成立しないゆえに、演算が正常な順序で行われなければ演算結果が規定値と食い違う。したがって、この食い違いによって処理の順序が異常であることを検出できる。
【0003】
【特許文献1】
特公平7−97331号公報
【0004】
【発明が解決しようとする課題】
しかし上記技術では、一連の処理のうち、どこで処理の順序が異常となったかを特定することができない。
【0005】
本発明は上記点に鑑みて、一連の処理があらかじめ決められた順番通りに行われていることをチェックする技術において、処理の順序に異常があった場合、どこでその異常が発生したかを特定できるようにすることを目的とする。
【0006】
【課題を解決するための手段】
上記目的を達成するための請求項1に記載の発明は、所定の順序で動作するよう定められた複数の処理手段(330、430)と、前記処理手段のうち、前記所定の順序による動作に異常があった際の処理手段を特定する情報を記録する記録手段(310、320、410、420、605、640、650、740、750、760、770、980)と、を備えた処理装置である。
【0007】
これによって、記録手段が所定の順序に異常があった際の処理手段を特定する情報を記録するので、一連の処理があらかじめ決められた順番通りに行われていることをチェックする技術において、処理の順序に異常があった場合、どこでその異常が発生したかを特定できる。
【0008】
また、請求項2に記載の発明は、請求項1に記載の処理装置において、前記記録手段は、前記複数の処理手段のうち、前記所定の順序における最初の処理手段(430)が動作する際、この処理手段の識別子を第1の変数として記録し、前記複数の処理手段のそれぞれが動作する際、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されているときに、今回の処理手段の識別子を前記第1の変数として記録し、また前記複数の処理手段のそれぞれが動作する際、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときに、前記第1の変数の値を保持することを特徴とする。
【0009】
このような記録手段の動作により、所定の順序通りに処理手段が動作する場合、今回の処理手段が動作する際は、第1の変数として直前の処理手段の識別子が記録されているので、今回の処理手段の識別子が第1の変数として記録される。この繰り返しにより、各処理手段の動作が全て終了した段階では、第1の変数には最後の処理手段の識別子が記録されている。
【0010】
また、所定の順序通りに処理手段が動作しない場合、動作の順序に異常があった直後に動作する処理手段が動作する際、第1の変数には所定の順序では当該処理手段の直前に動作するはずの処理手段の識別子ではなく、現に直前に動作した処理手段の識別子が記録されているので、第1の変数の値は保持される。また、以後に動作する処理においても、その動作の際には第1の変数には所定の順序では当該処理手段の直前に動作するはずの処理手段の識別子ではなく、現に直前に動作した処理手段の識別子が記録されているので、第1の変数の値は保持される。この繰り返しにより、各処理手段の動作が全て終了した段階では、第1の変数には動作の順序に異常があった直前の処理手段の識別子が記録されている。
【0011】
このように、記録手段は、所定の順序に異常があった際の処理手段を特定する情報を記録することができる。
【0012】
なお、第1の変数の値を保持するとは、第1の変数の値を第1の変数として保持すること、および第1の変数の値を他の変数として保持することを含む概念である。また、第1の変数の値そのものではなく、実質的に第1の変数の値が特定できる値を保持することも含む概念である。
【0013】
また、請求項3に記載の発明は、請求項1または2に記載の処理装置において、前記記録手段は、前記複数の処理手段のうち、前記所定の順序における最初の処理手段が動作する前に、この処理手段の識別子を第1の変数として記録し、前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されているときに、今回の処理手段の識別子を前記第1の変数として記録し、また前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときに、前記第1の変数の値を保持することを特徴とする。
【0014】
これは、請求項2に記載の発明において、「動作する際」を、下位概念の「動作する前に」に置き換えたものである。このようにすることによって、複数の処理手段の1つについて、その処理手段が途中から動作を開始してしまった場合でも、第1の変数に当該処理手段の識別子が記録されないので、処理手段の動作が途中から始まるという異常についても、その異常があった際の処理手段を特定する情報を記録することができる。
【0015】
また、請求項4に記載の発明は、請求項2ないし3のいずれか1つに記載の処理装置において、前記記録手段は、前記複数の処理手段のそれぞれが動作する前に、第1の所定の値を第2の変数として記録し、前記処理手段が終了すると、前記第1の所定の値が前記第2の変数として記録されていれば、前記第2の変数として記録されている値を、前記第1の所定の値と異なる第2の所定の値にすることを特徴とする。
【0016】
これによって、複数の処理手段の1つについて、その処理手段が正常に動作した場合は、動作終了後には第2の変数は第2の所定の値となる。しかし、その処理手段が途中から開始された場合、あるいはその処理手段の動作途中に中断されて他の処理手段が動作する場合には、第2の変数は第2の所定の値とならないので、処理手段がその途中から動作したり、その途中で動作が終了したりする場合の異常があったことを検出できる。
【0017】
また、請求項5に記載の発明は、請求項3または4のいずれか1つに記載の処理装置において、前記記録手段は、前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときは、前記直前の処理手段を動作させ、その後前記識別子が第1の変数として記録されているか否かを判定し、その第1変数判定結果を記録することを特徴とする。
【0018】
これによって、処理手段の動作の順序に異常が発生したとき、所定の順序なら直前に動作していたはずの処理手段を動作させ、その結果第1の変数が当該直前の処理手段の識別子とならないなら、当該直前の処理手段自体に異常の原因があることになり、第1の変数が当該直前の処理手段の識別子となるなら、当該直前の処理手段の動作以外の部分に異常の原因があることになる。記録手段がこの第1の変数についての判定結果を記録することで、順序の異常が当該直前の処理手段によるものかそうでないかを直ちに確認することができる。
【0019】
また、請求項6に記載の発明は、請求項5に記載の処理装置において、前記記録手段は、前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときは、前記第1変数判定結果に基づいてフェイルセーフ処理を行うことを特徴とする。
【0020】
また、請求項7に記載の発明は、請求項5または6に記載の処理装置において、前記記録手段は、前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときは、前記第1変数判定結果が当該処理手段の識別子が第1の変数として記録されていないことを示している場合、当該処理手段の動作の結果得られるようになっている値を所定のデフォルト値に設定することを特徴とする。
【0021】
また、請求項8に記載の発明は、請求項5ないし7のいずれか1つに記載の処理装置において、前記複数の処理手段のそれぞれについての前記第1変数判定結果が、当該それぞれの処理手段の識別子が第1の変数として記録されていることを示している場合、当該処理手段の動作において前記所定の順序に異常があったときの方法で当該処理手段の動作が開始することを禁止する禁止手段(990)を備えたことを特徴とする。
【0022】
なお、上記各手段の括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示すものである。
【0023】
【発明の実行の形態】
(第1実施形態)
図1に、本発明の第1実施形態に係る処理装置としてのエンジンECU1の構成を示す。エンジンECU1は、CPU11、RAM12、書き込み可能な不揮発性メモリであるEEPROM13、およびROM14を有している。EEPROM13は、独自のバッテリから電力の供給を受け続ける限り記録した情報を保持し続けるバックアップRAMであってもよい。
【0024】
CPU11は、ROM14からプログラムを読み出して実行し、そのプログラムに記述された処理内容に基づいて動作し、その動作において、RAM12、EEPROM13、およびROM14から情報を読み出し、またRAM12およびEEPROM13に情報を書き込む。またCPU11は、その動作中にエンジンの水温を検出して出力する水温センサ、アクセルペダルの踏み込み量を検出して出力するアクセルペダルセンサ等の各種センサからの信号を入力し、またエンジンのスロットル開度を制御する信号を出力する。
【0025】
図2に、このCPU11がROM14から読み出して実行するプログラムの1つである、目標スロットル開度制御プログラムを示す。このプログラムは、10ミリ秒程度の周期で繰り返し実行されるよう、同じくCPU11がROM14から読み出して実行する、各種プログラムの実行のタイミングを管理するためのスケジューリングプログラムによって管理されている。
【0026】
この目標スロットル開度制御プログラム中、スロットル開度の制御のための主要部分は、ステップ210〜240に代表的に示した処理1、…、Nである。
【0027】
ステップ210では、アクセルペダルの踏み込み量に応じたスロットル開度を算出するための処理1(アクセル要求開度算出)をcallする。処理をcallするとは、その処理の実行を開始することをいう。
【0028】
ステップ220では、エンジンの水温、負荷入力等の状態に応じたスロットル開度を算出するための処理2(ISC要求開度算出)をcallする。
【0029】
ステップ230では、スロットルセンサの全閉学習値に基づいて開度補正値を算出するための処理3(スロットルセンサ全閉補正)をcallする。
【0030】
ステップ240では、処理1、…、N−1によって算出された要求開度および補正値に基づいて、最終的な目標スロットル開度を算出するための処理N(目標スロットル開度算出)をcallする。
【0031】
このような処理が繰り返し行われることにより、エンジンECU1は、走行状況に応じた電子スロットル開度の制御を行うことができる。
【0032】
なお、ステップ210〜240の処理は、このフローチャートの並び通りの順序、すなわち所定の順序で動作するよう、目標スロットル開度制御プログラムによって定められている。本実施形態のエンジンECU1では、以下詳述する様に、この所定の順序通りに処理が実行されるか否かをチェックすることができるよう、目標スロットル開度制御プログラムが構成されている。
【0033】
この目標スロットル開度制御プログラムは、まずステップ205で、処理順序をチェックするための変数C1(第1の変数に相当する)の値をゼロにクリアする。
【0034】
そして、ステップ210〜240によってcallされる処理i(i=1、2、…、N)は、それぞれ図3に示すような構成となっている。
【0035】
まず、ステップ310では、変数C1がi−1であるか否かを判定し、i−1であれば処理はステップ320に進み、i−1でなければ処理はcall元の次の処理に進む。call元の次の処理とは、例えばステップ220で処理2がcallされた場合は、ステップ220がcall元であり、ステップ230がcall元の次の処理である。
ステップ320では、C1に値iを代入する。そしてステップ330では、上記したアクセル要求開度算出、ISC要求開度算出、スロットルセンサ全閉補正、目標スロットル開度算出の処理の本体部分である処理i本体(処理手段に相当する)を実行する。なお、処理i本体は、値iをその識別子とする。ステップ330の後に、処理はcall元の次の処理に進む。
【0036】
このような処理によって、処理2、…、N本体のそれぞれ(図3においてはステップ330)が動作する前に、所定の順序における直前の処理(図3においては処理i−1本体)の識別子(図3においてはi−1)が変数C1として記録されているときに、今回の処理手段(図3においてはステップ330)の識別子(図3においてはi)の値をC1に設定し、また所定の順序における直前の処理の識別子がC1として記録されていないときに、ステップ320の処理を実行しないことにより、変数C1の値を保持する。
【0037】
また、図3においてi=1とした場合の処理1は、図4のような構成となる。
【0038】
このような処理によって、処理1本体(図4におけるステップ430)が動作する前に、所定の初期値(図4においては0)が変数C1として記録されているときに、今回の処理手段(図4におけるステップ430)の識別子(図4においては1)の値をC1に設定し、また所定初期値C1として記録されていないときに、ステップ420の処理を実行しないことにより、変数C1の値を保持する。
【0039】
このような記録手段の動作により、所定の順序通りに処理1…N本体が動作する場合、処理iが動作する前に、変数C1に値i−1が記録されているので、処理i本体の識別子iが変数C1に代入される。この繰り返しにより、各処理本体の動作が全て終了した段階では、変数C1には所定順序における最後の処理である処理N本体の識別子Nが記録されている。
【0040】
また、所定の順序通りに処理1、…、N本体が動作しない場合、動作の順序に異常があった直後に動作する処理i本体が動作する前に、変数C1には所定の順序なら処理i本体の直前に動作するはずの処理i−1本体の識別子i−1ではなく、現に直前に動作した処理本体の識別子が記録されているので、変数C1の値は保持される。また、以後に動作する処理本体においても、その動作の前には変数C1には所定の順序なら処理本体の直前に動作するはずの処理本体の識別子ではなく、現に直前に動作した処理手段の識別子が記録されているので、変数C1の値は保持される。この繰り返しにより、各処理本体の実行が全て終了した段階では、変数C1には動作の順序に異常があった直前の処理本体の識別子が記録されている。これは、順序に異常があった際の処理を特定する情報である。
【0041】
ステップ240の後、ステップ260では、C1の値がNか否かを判定し、Nであれば、ステップ270で処理順序が正常である旨の情報としてC1の値をEEPROM13に書き込み、Nでなければ、ステップ280で、C1の値に1を加えた値を識別子として有する処理について処理順序が異常である旨の情報として、C1の値をEEPROM13に書き込む。ステップ270、280の後には、処理は終了する。
【0042】
このような、EEPROM13に記録されたC1の結果を後に外部の診断ツール等を用いて調べることにより、処理の終了後、C1の値がNとなっていれば、処理は所定の順序通りに実行されて終了したことが判る。また、C1がN以外の値i−1であれば、処理iのcallに異常があった、処理本体iの途中に処理が他にジャンプしてしまった等、異常があった際の処理が処理i本体であることが判る。
【0043】
これによって、所定の順序に異常があった際の処理手段を特定する情報がC1として記録されるので、一連の処理があらかじめ決められた順番通りに行われていることをチェックする技術において、処理の順序に異常があった場合、どこでその異常が発生したかを特定できる。
【0044】
また、ステップ320の変数C1の設定処理が、ステップ330の処理i本体よりも先に実行されるので、処理i本体が途中から動作を開始してしまった場合でも、変数C1に処理i本体の識別子iが記録されないので、処理i本体の動作が途中から始まるという異常についても、その異常があった際の処理i本体を特定する情報を記録することができる。
【0045】
(第2実施形態)
次に、本発明の第2実施形態について示す。本実施形態が第1実施形態と異なる部分は、目標スロットル開度制御プログラムの構成が、図5のようになっていることである。ステップ205、260、270、および280は、図2において同一のステップ番号が付された処理と同等の処理である。ただし、ステップ205では、C1に加え後述する配列変数C2の全ての値をゼロにクリアする。
【0046】
ステップ510〜540は、この目標スロットル開度制御プログラムにおけるスロットル開度の制御のための主要部分である。この処理i(i=1、2、…、N)によってcallされる処理を図6に示す。
【0047】
図6中、ステップ310、320、および330は、図3において同一のステップ番号が付された処理と同等の処理である。
【0048】
ステップ605では、配列変数C2(第2の変数に相当)の第i成分に第1の所定の値であり、処理i本体(ステップ330)の識別子である値iを代入する。
【0049】
ステップ310〜330の処理の後、ステップ640では、配列変数C2の第i成分がiであるか否かを判定する。
【0050】
配列変数C2の第i成分がiなら、処理はステップ650に進み、配列変数C2の第i成分に1…Nとは異なる第2の所定の値Qを代入し、その後処理はcall元の次の処理に進む。
【0051】
配列変数C2の第i成分がiでないなら、処理はcall元の次の処理に進む。
【0052】
これによって、所定の値iが配列変数C2の第i成分として記録されている場合は、その第i成分の値をQとし、所定の値i以外の値が記録されている場合は、値をそのまま保持するので、この2つの場合で、配列変数C2の第i成分として記録される値が異なるものとなる。
【0053】
これによって、処理i本体について、その処理手段が正常に動作した場合は、動作終了後にはC2の第i成分はQとなる。しかし、その処理手段が途中から開始された場合、あるいはその処理手段の動作途中に中断されて他の処理手段が動作する場合には、C2の第i成分はQとならない。
図5のステップ545、550の処理は、iを1からNまで順に変化させながら繰り返し実行される。
【0054】
ステップ545では、C2の第i成分がQであるか否かを判定し、Qであればそのままiを次の値に変化させて処理はステップ545に戻る。ただし、iがNであれば処理はステップ260に進む。また、C2の第i成分がQでなければ、ステップ550で、上記した処理の異常があった旨の情報として、C2のi成分の値をEEPROM13に書き込み、その後iを次の値に変化させて処理はステップ545に戻る。ただし、iがNであれば処理はステップ260に進む。
【0055】
このような、EEPROM13に記録されたC2の値を後に外部の診断ツール等を用いて調べることにより、処理の終了後、C2の第i成分の値がQとなっていれば、処理i本体は正常に実行されて終了したことが判る。また、C2の第i成分がQ以外であれば、処理i本体が途中から始まった、処理本体iの途中に処理が他にジャンプしてしまった等、異常があった際の処理が処理i本体であることが判る。したがって、第1実施形態の効果に加え、処理手段がその途中から動作したり、その途中で動作が終了したりする場合の異常があったことを検出できる。
【0056】
(第3実施形態)
次に、本発明の第3実施形態について説明する。本発明が第1実施形態と異なるのは、図2に示した目標スロットル開度制御プログラム中の、ステップ210〜240によってcallされる処理i(i=1、2、…、N)が図7のような構成となっていることである。
【0057】
図7中、ステップ310、320、および330は、図3において同一のステップ番号が付された処理と同等の処理である。ただし、ステップ310で変数C1が値i−1と異なる場合は、処理はステップ740に進む。
【0058】
ステップ740では、処理i−1をcallする。そしてステップ750では、そのcallの結果、変数C1の値がi−1となったか否かを判定する。
【0059】
変数C1が値i−1となったなら、処理はステップ760に進み、処理i−1のcall元異常である旨の情報をEEPROM13に書き込む。これは、ステップ740で処理i−1をcallした結果、C1が正常な値i−1に戻ったということは、処理i−1自体には異常はなく、例えばその処理をcallする命令にアドレス等の誤りが発生した等、処理i−1をcallすべきcall元に異常がある可能性が高いからである。
【0060】
変数C1が値i−1でないなら、処理はステップ770に進み、処理i−1自体が異常である旨の情報をEEPROM13に書き込む。これは、これは、ステップ740で処理i−1をcallしたにもかかわらず、C1が正常な値i−1に戻らないということは、処理i−1そのものに異常がある可能性が高いからである。
【0061】
ステップ760、770の処理の後、処理は処理iのcall元の次の処理に進む。
【0062】
このように、処理の順序が異常であると判定した際に、異常と判定された処理を再度実行し、それが正しく実行されるかどうかを判定することで、処理の順序に異常が発生したとき、所定の順序なら直前に動作していたはずの処理本体を動作させ、その結果変数C1が当該直前の処理本体の識別子とならないなら、当該直前の処理本体自体に異常の原因があることになり、変数C1が当該直前の処理本体の識別子となるなら、当該直前の処理本体の動作以外、例えばcall元の部分に異常の原因があることになる。この判定を異常検出直後に行うことで、順序の異常が当該直前の処理手段によるものかそうでないかを直ちに確認することができる。
【0063】
(第4実施形態)
次に、本発明の第4実施形態について説明する。本実施形態が第3実施形態と異なるのは、順序の異常があると判定した際に、フェイルセーフ処理を直ちに実行する点である。
【0064】
従来のフェイルセーフ処理としては、図8に示す目標スロットル開度制御プログラムのステップ890、895のように、図5と同様のステップ205〜280の一連の処理が終了した後、処理順序の異常であるか否かを判定し(ステップ890)、異常であれば無限ループに入ることでウオッチドッグタイマを停止してエンジンECU1をリセットすることが考えられるが、このようなものでは異常発生からフェイルセーフまでに遅れが生じ、またフェイルセーフとしても、リセットという過剰なものとなってしまう懸念がある。
【0065】
本実施形態においては迅速で過剰でないフェイルセーフを実現するため、図2に示した目標スロットル開度制御プログラム中の、ステップ210〜240によってcallされる処理i(i=1、2、…、N)が図9のような構成となっている。
【0066】
ステップ310〜330、740〜770は、図7において同一のステップ番号が付された処理と同等の処理である。ただし、ステップ760の後には処理はステップ320に進み、ステップ770の後には処理はステップ980に進む。
【0067】
ステップ980では、処理i−1本体を実行した場合に得られる値を擬似的にRAM12に記録する。すなわち、当該処理の代替値としてあらかじめ定められたデフォルト値を出力してRAM12に記録する。この所定のデフォルト値は、ROM14に記録されている。
そしてステップ980の後、処理はステップ320、330の処理i本体の実行を行う。ステップ750で変数C1が値i−1でないと判定された場合は、処理(i−1)本体そのものに異常がある可能性が高いので、その場合には、上記のようにすることで、代替のデフォルト値を用いたフェイルセーフ処理を行うことができる。
【0068】
デフォルト値としては、例えばアクセル要求開度算出の処理を代替する場合は、アイドル開度、すなわち全閉値に微小量αを加えた値をアクセル開度のデフォルト値として記録する。また、ISC要求開度算出を代替する場合は、水温に応じた最小開度をアクセル開度のデフォルト値として記録する。また、スロットルセンサ全閉補正処理を代替する場合は、全閉基準値をデフォルト値として記録する。また、目標スロットル開度算出処理を代替する場合は、運転モード(エンジン回転数、車速など)に基づいた退避走行可能な開度をデフォルト値として記録する。
【0069】
また、ステップ変数C1が値i−1であると判定された場合は、処理(i−1)そのものに異常は無いと考えられ、さらにステップ740で既にその処理(i−1)本体が実行されているので、その場合には、代替のデフォルト値を用いずともステップ740の実行結果を用いてフェールセーフ処理を行うことができる。
【0070】
また、このステップ変数C1が値i−1であると判定された場合は、処理(i−1)のcall元に異常がある可能性が高いので、目標スロットル開度制御プログラムの周期的な繰り返しにおいて、規定の順序によって処理(i−1)のcallを実現するために設けられた部分を実行しないようにする。図10に、これを実現するための、本実施形態に係る目標スロットル開度制御プログラムを示す。このプログラムが第1実施形態の目標スロットル開度制御プログラムと異なる点は、処理(i−1)をcallするステップ995の前に、処理(i−1)のcall元が異常となっているか否かを判定するステップ990があることである。
【0071】
このステップ990の判定は、具体的にはステップ760の処理によって、EEPROM13に処理i−1のcall元異常である旨の情報が書き込まれているか否かによって行う。そして、call元異常であるなら、ステップ995の処理を行わず、call元異常でないなら、ステップ995の処理を行う。
【0072】
このように、デフォルト値を出力した場合は、エンジンECU1をリセットする場合に比べエンジンECU1の機能を大幅に低下させることなくフェイルセーフ機能を実現することができる。一方、call元の異常と判定した場合は、元々のcall場所からの当該処理の呼び出し、すなわち所定の順序に異常があったときの方法での当該処理の呼び出しを禁止し、次の処理iの先頭部にあるステップ740によって前処理を行うように切り替えることにより、正常時と何ら変わらない処理順序が実現される。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るエンジンECU1の構成を示す図である。
【図2】第1実施形態に係る目標スロットル開度制御プログラムのフローチャートである。
【図3】ステップ210〜240によってcallされる処理iのフローチャートである。
【図4】図3においてi=1とした場合の処理1のフローチャートである。
【図5】第2実施形態に係る目標スロットル開度制御プログラムのフローチャートである。
【図6】第2実施形態に係る目標スロットル開度制御プログラムのステップ510〜540によってcallされる処理iのフローチャートである。
【図7】第3実施形態に係る目標スロットル開度制御プログラムのステップ210〜240によってcallされる処理iのフローチャートである。
【図8】従来のフェイルセーフ処理を示すフローチャートである。
【図9】第4実施形態に係るフェイルセーフ処理等を示すフローチャートである。
【図10】第4実施形態に係る目標スロットル開度制御プログラムのフローチャートである。
【符号の説明】
1…エンジンECU、11…CPU、12…RAM、13…EEPROM、
14…ROM。
Claims (8)
- 所定の順序で動作するよう定められた複数の処理手段(330、430)と、
前記処理手段のうち、前記所定の順序による動作に異常があった際の処理手段を特定する情報を記録する記録手段(310、320、410、420、605、640、650、740、750、760、770、980)と、を備えた処理装置。 - 前記記録手段は、
前記複数の処理手段のうち、前記所定の順序における最初の処理手段(430)が動作する際、この処理手段の識別子を第1の変数として記録し、
前記複数の処理手段のそれぞれが動作する際、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されているときに、今回の処理手段の識別子を前記第1の変数として記録し、
また前記複数の処理手段のそれぞれが動作する際、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときに、前記第1の変数の値を保持することを特徴とする請求項1に記載の処理装置。 - 前記記録手段は、
前記複数の処理手段のうち、前記所定の順序における最初の処理手段が動作する前に、この処理手段の識別子を第1の変数として記録し、
前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されているときに、今回の処理手段の識別子を前記第1の変数として記録し、
また前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときに、前記第1の変数の値を保持することを特徴とする請求項1または2に記載の処理装置。 - 前記記録手段は、前記複数の処理手段のそれぞれが動作する前に、第1の所定の値を第2の変数として記録し、前記処理手段が終了すると、前記第1の所定の値が前記第2の変数として記録されていれば、前記第2の変数として記録されている値を、前記第1の所定の値と異なる第2の所定の値にすることを特徴とする請求項2ないし3のいずれか1つに記載の処理装置。
- 前記記録手段は、前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときは、前記直前の処理手段を動作させ、その後前記識別子が第1の変数として記録されているか否かを判定し、その第1変数判定結果を記録することを特徴とする請求項3または4のいずれか1つに記載の処理装置。
- 前記記録手段は、前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときは、前記第1変数判定結果に基づいてフェイルセーフ処理を行うことを特徴とする請求項5に記載の処理装置。
- 前記記録手段は、前記複数の処理手段のそれぞれが動作する前に、前記所定の順序における直前の処理手段の識別子が第1の変数として記録されていないときは、前記第1変数判定結果が当該処理手段の識別子が第1の変数として記録されていないことを示している場合、当該処理手段の動作の結果得られるようになっている値を所定のデフォルト値に設定することを特徴とする請求項5または6に記載の処理装置。
- 前記複数の処理手段のそれぞれについての前記第1変数判定結果が、当該それぞれの処理手段の識別子が第1の変数として記録されていることを示している場合、当該処理手段の動作において前記所定の順序に異常があったときの方法で当該処理手段の動作が開始することを禁止する禁止手段(990)を備えたことを特徴とする請求項5ないし7のいずれか1つに記載の処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003114182A JP4288999B2 (ja) | 2003-04-18 | 2003-04-18 | 処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003114182A JP4288999B2 (ja) | 2003-04-18 | 2003-04-18 | 処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004318672A true JP2004318672A (ja) | 2004-11-11 |
JP4288999B2 JP4288999B2 (ja) | 2009-07-01 |
Family
ID=33473854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003114182A Expired - Fee Related JP4288999B2 (ja) | 2003-04-18 | 2003-04-18 | 処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4288999B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006323494A (ja) * | 2005-05-17 | 2006-11-30 | Fujitsu Ten Ltd | 障害復旧方法およびマイクロコンピュータ |
US7612464B2 (en) | 2005-06-23 | 2009-11-03 | Denso Corporation | Electronic control system with malfunction monitor |
US7826962B2 (en) | 2005-06-23 | 2010-11-02 | Denso Corporation | Electronic control apparatus |
US8464203B2 (en) | 2007-11-09 | 2013-06-11 | Denso Corporation | System and program product for executing program to thereby test the program |
JP2016091413A (ja) * | 2014-11-07 | 2016-05-23 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
JP2018129059A (ja) * | 2018-03-09 | 2018-08-16 | 日本精工株式会社 | 車載用電子機器の制御装置及び制御方法 |
-
2003
- 2003-04-18 JP JP2003114182A patent/JP4288999B2/ja not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006323494A (ja) * | 2005-05-17 | 2006-11-30 | Fujitsu Ten Ltd | 障害復旧方法およびマイクロコンピュータ |
US7612464B2 (en) | 2005-06-23 | 2009-11-03 | Denso Corporation | Electronic control system with malfunction monitor |
US7826962B2 (en) | 2005-06-23 | 2010-11-02 | Denso Corporation | Electronic control apparatus |
US8464203B2 (en) | 2007-11-09 | 2013-06-11 | Denso Corporation | System and program product for executing program to thereby test the program |
JP2016091413A (ja) * | 2014-11-07 | 2016-05-23 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
JP2018129059A (ja) * | 2018-03-09 | 2018-08-16 | 日本精工株式会社 | 車載用電子機器の制御装置及び制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4288999B2 (ja) | 2009-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4803168B2 (ja) | 車両用情報記憶装置 | |
JP4491967B2 (ja) | 自己診断機能を備えた車両用制御装置及び記録媒体 | |
JP3610915B2 (ja) | 処理実行装置及びプログラム | |
JP7327188B2 (ja) | 電子制御装置 | |
US6430709B1 (en) | Apparatus and method for diagnosing microcomputer memory | |
US20180259577A1 (en) | Electronic control apparatus and method | |
US6694241B2 (en) | Shift control method and system for automatic transmission | |
JP2004318672A (ja) | 処理装置 | |
JP2009506445A (ja) | 記憶装置構成およびその駆動方法 | |
JP2013143095A (ja) | 電子制御装置、メモリ検査方法 | |
JP2006090356A (ja) | 車両制御装置、および処理負荷制御プログラム。 | |
JP2006259935A (ja) | 演算異常判断機能付き演算装置 | |
JP2000112837A (ja) | メモリチェック装置及びチェック方法 | |
JP2003222053A (ja) | 車両用電子制御装置 | |
CN103473153B (zh) | 用于检测微控制器中的潜在故障的方法和系统 | |
JP2003294129A (ja) | 車両用電子制御装置 | |
JPH11141391A (ja) | 自動車用制御装置 | |
JP2019190324A (ja) | 車両用のデータ記録装置およびデータ記録方法 | |
JPH0742609A (ja) | 車両用制御装置のメモリチェック装置 | |
JP6466269B2 (ja) | 電子制御装置及びスタック領域の使用監視方法 | |
WO2017002939A1 (ja) | 電子制御装置及びスタック使用方法 | |
JP2004137919A (ja) | 車両制御装置 | |
JP2004156590A (ja) | 車両制御装置 | |
JP2009083777A (ja) | 車両制御装置およびプログラム | |
WO2023233611A1 (ja) | 電子制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050517 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081014 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090218 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090310 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090323 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120410 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120410 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140410 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |