JP2019164579A - 電子制御装置 - Google Patents
電子制御装置 Download PDFInfo
- Publication number
- JP2019164579A JP2019164579A JP2018051914A JP2018051914A JP2019164579A JP 2019164579 A JP2019164579 A JP 2019164579A JP 2018051914 A JP2018051914 A JP 2018051914A JP 2018051914 A JP2018051914 A JP 2018051914A JP 2019164579 A JP2019164579 A JP 2019164579A
- Authority
- JP
- Japan
- Prior art keywords
- stack area
- stack
- area
- failure
- cpu
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】スタック領域に退避する記憶対象領域の異常を、その退避する際に判定可能な電子制御装置を提供する。【解決手段】不揮発性メモリのROM202と、揮発性メモリのRAM203を有し、ROM202は、演算を実行するプログラムが記憶され、CPU201は、プログラムに従い演算を実行し、演算で使用する演算データを一時的に記憶する複数の演算レジスタを有し、RAM203は、割り込み処理、又はプログラムによるサブルーチンコールが発生した場合に演算レジスタを一時的に記憶するスタック領域を有し、CPU201は、スタック領域の参照先アドレスを記憶するスタックポインタと、複数のコアと、を有し、複数のコア毎にROM202とRAM203が接続されてタスクを実行する。【選択図】図5
Description
本発明は、電子制御装置に関する。
電子制御装置は、CPU(Central Processing Unit)にて演算した結果を格納するRAM(Random Access Memory)を使用する。また、RAMの一部はスタック領域として使用され、このスタック領域は、電子制御装置におけるCPUが処理中の演算データなどを一時的に退避させる場合に使用される。このCPUによる演算データの一時退避は、電子制御装置におけるプログラムのサブルーチンや、割り込みによって引き起こる。その際にスタック領域において退避した演算データが故障すると、復帰した先の処理で不整合が起こる。
上記のような不整合を防ぐ技術が、例えば特許文献1に開示されている。特許文献1では、スタック領域の退避先である参照アドレスを保存するスタックポインタの異常判定のために、そのスタックポインタに記憶された参照アドレスを複数のバックアップ領域に保存することにより、スタックポインタに記憶された参照アドレス、および複数のバックアップ領域それぞれに記憶された参照アドレスそれぞれを比較することで、スタックポインタに記憶された参照アドレスの異常判定を行う。
ところで、上記特許文献1の技術は、スタックポインタの異常判定のために、RAMに複数のバックアップ領域を持っている。また、スタックポインタの異常判定の他にスタック領域に保存される演算データに対しても複数のバックアップ領域を持たせているが、複数のバックアップ領域やスタック領域に共に故障した演算データが保存された場合、比較した結果故障した演算データが採用となり、その故障した演算データを処理に使用することが懸念される。
本発明は、こうした点に鑑みなされたもので、現在使用しているスタック領域が故障した場合に、そのスタック領域の故障箇所を特定すると共に、スタック領域に一時退避すべき演算データを確実に退避および復帰することを目的とする。
上記課題を解決するために、本発明の電子制御装置は、メモリ及びCPUを備えた電子制御装置において、前記メモリは、不揮発性メモリのROMと、揮発性メモリのRAMを有し、前記ROMは、演算を実行するプログラムが記憶され、前記CPUは、前記プログラムに従い演算を実行し、前記演算で使用する演算データを一時的に記憶する複数の演算レジスタを有し、前記RAMは、割り込み処理、又は前記プログラムによるサブルーチンコールが発生した場合に前記演算レジスタを一時的に記憶するスタック領域を有し、前記CPUは、前記スタック領域の参照先アドレスを記憶するスタックポインタと、複数のコアと、を有し、該複数のコア毎に前記メモリが接続されてタスクを実行する。
本発明によれば、現在使用しているスタック領域が故障した場合に、そのスタック領域の故障箇所を特定すると共に、スタック領域に一時退避すべき演算データを確実に退避および復帰することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本実施例は、次のように表現することができる。
メモリ及びCPUを備えた電子制御装置において、前記メモリは、不揮発性メモリのROMと、揮発性メモリのRAMを有し、前記ROMは、演算を実行するプログラムが記憶され、前記CPUは、前記プログラムに従い演算を実行し、前記演算で使用する演算データを一時的に記憶する複数の演算レジスタを有し、前記RAMは、割り込み処理、又は前記プログラムによるサブルーチンコールが発生した場合に前記演算レジスタを一時的に記憶するスタック領域を有し、前記CPUは、前記スタック領域の参照先アドレスを記憶するスタックポインタと、複数のコアと、を有し、該複数のコア毎に前記メモリが接続されてタスクを実行する。
メモリ及びCPUを備えた電子制御装置において、前記メモリは、不揮発性メモリのROMと、揮発性メモリのRAMを有し、前記ROMは、演算を実行するプログラムが記憶され、前記CPUは、前記プログラムに従い演算を実行し、前記演算で使用する演算データを一時的に記憶する複数の演算レジスタを有し、前記RAMは、割り込み処理、又は前記プログラムによるサブルーチンコールが発生した場合に前記演算レジスタを一時的に記憶するスタック領域を有し、前記CPUは、前記スタック領域の参照先アドレスを記憶するスタックポインタと、複数のコアと、を有し、該複数のコア毎に前記メモリが接続されてタスクを実行する。
また、前記CPUは、前記演算レジスタに保持している前記演算データを前記スタック領域に退避するスタック退避手段と、前記スタック領域に退避した前記演算データを前記演算レジスタに復帰するスタック復帰手段とを有する。
また、前記CPUは、前記タスクが実行される前に前記スタック領域の初期化を行うスタック領域初期化手段と、前記スタック領域が正常か異常かを診断するスタック領域診断手段とを有する。
タスクには、電子制御装置の制御目的を達成する通常タスクと、所定の優先度により通常タスクから独立した高優先度タスクをそれぞれに複数備える。例えば通常タスクが正常に動作するか否かを判断し、その制御目的が達成できない様な状態に陥らないことを目的とする安全性確保のタスク等である。
また、CPUはそのタスクが実行される前の初期化状態を備え、スタック領域初期化手段は初期化状態におけるスタック領域の初期化を行う。その初期化診断によって、電子制御装置の動作前に正常起動できるか否かを判断することで安全性を向上させている。
また、前記スタック領域診断手段は、前記割り込み処理と、前記サブルーチンコールと、のいずれか一方又は両方が発生した場合に、前記スタック退避手段が前記演算レジスタに保持している前記演算データを前記スタック領域に退避して、前記スタック領域に退避されている前記演算データと前記演算レジスタに格納されている前記演算データを比較する。
また、前記CPUは、前記スタック領域の故障領域を回避する故障領域回避手段を有し、該故障領域回避手段は、前記スタック領域診断手段により、前記スタック領域に退避されている前記演算データと、前記演算レジスタに格納されている前記演算データとが違うと判断した場合に、前記スタックポインタが記憶している前記参照先アドレスを故障と判断して、前記スタックポインタを次のアドレスに変更して、前記演算レジスタに格納されている前記演算データを前記スタック退避手段によって前記スタック領域に退避する。
また、前記CPUは、前記スタック領域診断手段および前記故障領域回避手段により、前記スタック領域の故障を検知するとともに前記演算データを前記スタック領域に退避する。
例えば、故障領域を判定しない場合、スタック領域に故障演算データが記憶され、割り込み処理または、サブルーチンコールの処理を終えて、元の処理に復帰した場合に、故障演算データを元の処理で使用することになる。例えばその故障演算データがアドレスだった場合は電子制御装置の所定制御が実現不可能な状態に陥る。
この点、この構成の電子制御装置では、スタック領域の故障領域を判別回避することで、安全に演算データをスタック領域に退避することを可能とする。
例えば、故障領域を判定しない場合、スタック領域に故障演算データが記憶され、割り込み処理または、サブルーチンコールの処理を終えて、元の処理に復帰した場合に、故障演算データを元の処理で使用することになる。例えばその故障演算データがアドレスだった場合は電子制御装置の所定制御が実現不可能な状態に陥る。
この点、この構成の電子制御装置では、スタック領域の故障領域を判別回避することで、安全に演算データをスタック領域に退避することを可能とする。
また、前記スタック領域診断手段は、前記故障領域回避手段が前記スタック領域の故障領域の回避を複数回繰り返した場合に、前記スタック領域が全て異常であると診断し、初期化処理を実行する。
これにより、所定の回数スタック領域が連続して故障している場合を判定することで、スタック領域の信頼性が低いと判定し、そのまま処理を続けた場合、電子制御装置の所定制御が実現不可能となる前に、電子制御装置を所定の初期化処理などの安全動作状態へ移行させることが可能となる。
これにより、所定の回数スタック領域が連続して故障している場合を判定することで、スタック領域の信頼性が低いと判定し、そのまま処理を続けた場合、電子制御装置の所定制御が実現不可能となる前に、電子制御装置を所定の初期化処理などの安全動作状態へ移行させることが可能となる。
また、前記RAMは、故障アドレス保持領域を有し、該故障アドレス保持領域は、前記スタック領域診断手段により、前記スタック領域が故障と診断された場合、故障と判断された前記スタック領域の前記参照先アドレスを格納して、前記CPUは、前記故障と判断された前記スタック領域の前記参照先アドレスを前記故障アドレス保持領域に格納する。
また、前記CPUは、前記割り込み処理又は前記サブルーチンコールの処理後に、前記スタック復帰手段によって、前記スタック領域に退避した前記演算データを前記演算レジスタに復帰する場合に、前記故障アドレス保持領域に格納されている前記故障と判断された前記スタック領域の前記参照先アドレスと、前記スタックポインタを比較することで、前記故障と判断された前記スタック領域から故障した前記演算データを復帰させない。
また、前記CPUは、前記故障アドレス保持領域が正常に動作するか否かを監視するRAM診断手段を有する。
これにより、より安全に演算データをスタック領域に退避することを可能とする。
これにより、より安全に演算データをスタック領域に退避することを可能とする。
以下、実施例について図面を用いて説明する。
図1は、実施例に係る火花点火内燃機関とその制御装置の基本構成図である。本説明では以下、筒内噴射式火花点火内燃機関を用いて説明を進めていくが、ポート噴射式火花点火内燃機関や、筒内噴射とポート噴射の両方を備えたデュアル噴射式火花点火内燃機関においても適用可能である。
図において、エンジン1には、ピストン2、吸気バルブ3、排気バルブ4が備えられ、吸気は、空気流量計(AFM)18を通過して絞り弁17に入り、分岐部であるコレクタ14より吸気管10、吸気バルブ3を介してエンジン1の燃焼室19に供給される。燃料は、燃料噴射弁5から、エンジン1の燃焼室19に噴射供給され、点火コイル7、点火プラグ6で点火される。燃焼後の排気ガスは排気バルブ4を介して排気管11に排出され、排気管11には排気ガス浄化のための三元触媒12が備えられている。エンジンコントロールユニット9には、エンジン1のクランク角度センサ15の信号、AFM18の空気量信号、排気ガス中の空燃比を検出する空燃比センサ13の信号、アクセル開度センサ20のアクセル開度等の信号が入力される。エンジンコントロールユニット9はアクセル開度センサ20の信号からエンジンへの要求トルクの算出、アイドル状態の判定等を行ない、エンジン1に必要な吸入空気量を算出し、それに見合った開度信号を絞り弁17に出力する。また燃料噴射弁5へは燃料噴射信号が、点火プラグ6へは点火信号が出力される。
さらにエンジン1に取り付けられたノックセンサ8が、エンジン1の異常燃焼時に発生する異音(ノッキング)を検出し、点火信号をフィードバック制御している。
図2はエンジンコントロールユニット9の構成を示したものである。
センサ類211及びアクチュエータ類212に接続される入出力インタフェース(I/F)205と、外部の通信バス215に接続されエンジンコントロールユニット9との信号送受信を行う外部通信インタフェース(I/F)206と、一時的情報を記憶する揮発性メモリであるRAM(Random Access Memory)203と、制御プログラム及び各種制御設定を記憶する不揮発性メモリであるROM(Read Only Memory)202と、制御用学習値や故障コードを記憶する内部不揮発性メモリ204と、外部不揮発性メモリに接続される内部通信インタフェース(I/F)207と、それらを統括して制御を司るCPU(Central Processing Unit)201とを有し、これらの要素がバス208を介して互いに接続されているマイクロコンピュータ210により構成されている。
不揮発性メモリとしては、EEPROM(Electrically Erasable and Programmable Read Only Memory)209が例示され、内部通信インタフェース207に接続されている。
また、複数の外部装置213〜214は外部の通信バス215に接続され外部通信I/F206を通じてエンジンコントロールユニット9と所定の通信を行う。
CPU201は入出力I/F205を通じてセンサ類211から入力情報を取り込み、ROM202に保存された制御プログラムに従って、各制御および診断等を実行する機能を備えている。演算結果および入力情報はRAM203に一時保管されるとともに、演算結果により、入出力I/F205を通じてアクチュエータ類212の制御に用いられる。
また、CPU201はROM202に保存された診断プログラムに従って、各種制御の診断を行うとともに、診断の結果の故障コードをRAM203と外部EEPROM209に保存する。さらにCPU201はROM202に保存された学習プログラムに従って、各種制御の学習値を演算し、その学習値もRAM203と外部EEPROM209に保存する。加えてCPU201は外部EEPROM209と同様に内部EEPROM204にも故障コードや学習値を保存する。
図3に示すように、CPU201は、演算するデータを一時的に保存する汎用レジスタ301と、RAM203領域の一部に割り当てられたスタック領域を示すスタックポインタ302と、現在実行中のプログラムアドレスを指すプログラムカウンタ303を備えている。また、RAM203は、車両制御データを保存する車両制御RAM領域304と、スタック領域の故障診断した結果、故障と判断されたスタック領域のアドレスを保存する故障アドレス保持領域305と、割り込みまたはサブルーチンコールが発生した場合に汎用レジスタで使用している演算データを一時的に退避するスタック領域306を備えている。
図4に示すようにスタック領域306に故障領域がある場合、(a)スタック退避では、スタック領域診断を実施後の状態を示している。スタックポインタ302は故障領域の次の領域を指し、汎用レジスタ301のデータDを退避しており、故障領域を回避している。(b)スタック復帰では、スタックポインタ302はスタック領域306のデータDが退避された領域を指し、汎用レジスタ301にデータDを復帰する。
図5に動作方法についてフローチャートを用いて説明する。
割り込みまたはサブルーチンコールが発生した時、ステップ501で汎用レジスタの演算データをスタック領域に退避させる。
次にステップ502でスタックに退避した演算データ(以降スタックデータと呼ぶ)と汎用レジスタに保存されている演算データが一致するか否かを比較する。
比較結果が一致と判断された場合、ステップ503に進み、今回スタック領域に退避したアドレスの記憶領域は正常と判断し、ステップ508へ進む。
前述のステップ502の比較結果が不一致と判断された場合、ステップ504へ進み、前述のステップ501で退避した汎用レジスタと同じデータをスタック領域の次アドレスの領域へ退避させる。
次にステップ505では、新たにスタック領域に退避した演算データと、汎用レジスタに保存されている演算データが一致するか否かを比較する。
比較結果が一致と判断された場合、ステップ506へ進み、前回領域、即ち前述の501でスタック領域に退避した領域は故障と判断し、ステップ507へ進み、ステップ506で診断した故障領域のアドレスを故障アドレス保持領域305へ格納する。
その後ステップ508へ進む。前述のステップ505の比較結果が不一致と判断された場合、ステップ509へ進み、不一致が所定の回数以上となったか判定する。
判定結果が成立した場合、ステップ510へ進み、スタック領域が正常に機能しないと判断し診断異常を確定とし、自動車に搭載のインジケータであるMIL(Malfunction Indicator Lamp)等の警告するための通知を行う。
次にステップ511へ進み、システムを安全に動作させるための初期化処理へとジャンプする。
前述のステップ509の判定結果が不成立となった場合、ステップ504へ戻る。
前述のステップ503またはステップ507の次にステップ508へ進み、割り込み時またはサブルーチンコール時の目的処理を実施する。
次にステップ512へ進み、スタックポインタの参照アドレスと故障アドレス保持領域305へ格納された故障アドレスが一致するか否かを比較する。
比較結果が一致と判断された場合、ステップ513へ進み、スタックポインタを次の領域のアドレスに変更して、ステップ512へ戻る。
前述のステップ512の比較結果が不一致と判断された場合、ステップ514へ進み、スタック領域に退避されている演算データと汎用レジスタに復帰させ本処理を終了する。
以上より、スタック領域に記憶された演算データとスタック領域に記憶する対象のレジスタを比較することで、スタック領域に退避する記憶対象領域の異常を、その退避する際に判定し、故障領域を回避することにより、スタック領域に一時退避すべき演算データを確実に退避および復帰することが可能な電子制御装置を提供することができる。
1 エンジン、2 ピストン、3 吸気バルブ、4 排気バルブ、5 燃料噴射弁、6 点火プラグ、7 点火コイル、8 ノックセンサ、9 ECU(エンジンコントロールユニット)、10 吸気管、11 排気管、12 三元触媒、13 空燃比センサ、14 コレクタ、15 クランク角度センサ、16 シグナルプレート、17 絞り弁、18 AFM、19 燃焼室、20 アクセル開度センサ
Claims (10)
- メモリ及びCPUを備えた電子制御装置において、
前記メモリは、不揮発性メモリのROMと、揮発性メモリのRAMを有し、
前記ROMは、演算を実行するプログラムが記憶され、
前記CPUは、前記プログラムに従い演算を実行し、前記演算で使用する演算データを一時的に記憶する複数の演算レジスタを有し、
前記RAMは、割り込み処理、又は前記プログラムによるサブルーチンコールが発生した場合に前記演算レジスタを一時的に記憶するスタック領域を有し、
前記CPUは、
前記スタック領域の参照先アドレスを記憶するスタックポインタと、
複数のコアと、を有し、
該複数のコア毎に前記メモリが接続されてタスクを実行する
ことを特徴とする電子制御装置。 - 前記CPUは、
前記演算レジスタに保持している前記演算データを前記スタック領域に退避するスタック退避手段と、
前記スタック領域に退避した前記演算データを前記演算レジスタに復帰するスタック復帰手段と
を有することを特徴とする、請求項1に記載の電子制御装置。 - 前記CPUは、
前記タスクが実行される前に前記スタック領域の初期化を行うスタック領域初期化手段と、
前記スタック領域が正常か異常かを診断するスタック領域診断手段と
を有することを特徴とする、請求項1〜2のいずれか1項に記載の電子制御装置。 - 前記スタック領域診断手段は、
前記割り込み処理と、前記サブルーチンコールと、のいずれか一方又は両方が発生した場合に、
前記スタック退避手段が前記演算レジスタに保持している前記演算データを前記スタック領域に退避して、
前記スタック領域に退避されている前記演算データと前記演算レジスタに格納されている前記演算データを比較する
ことを特徴とする請求項2に記載の電子制御装置。 - 前記CPUは、前記スタック領域の故障領域を回避する故障領域回避手段を有し、
該故障領域回避手段は、
前記スタック領域診断手段により、前記スタック領域に退避されている前記演算データと、前記演算レジスタに格納されている前記演算データとが違うと判断した場合に、
前記スタックポインタが記憶している前記参照先アドレスを故障と判断して、
前記スタックポインタを次のアドレスに変更して、
前記演算レジスタに格納されている前記演算データを前記スタック退避手段によって前記スタック領域に退避する
ことを特徴とする請求項4に記載の電子制御装置。 - 前記CPUは、前記スタック領域診断手段および前記故障領域回避手段により、前記スタック領域の故障を検知するとともに前記演算データを前記スタック領域に退避する
ことを特徴とする請求項5に記載の電子制御装置。 - 前記スタック領域診断手段は、前記故障領域回避手段が前記スタック領域の故障領域の回避を複数回繰り返した場合に、前記スタック領域が全て異常であると診断し、初期化処理を実行する
ことを特徴とする請求項5に記載の電子制御装置。 - 前記RAMは、故障アドレス保持領域を有し、
該故障アドレス保持領域は、前記スタック領域診断手段により、前記スタック領域が故障と診断された場合、故障と判断された前記スタック領域の前記参照先アドレスを格納して、
前記CPUは、前記故障と判断された前記スタック領域の前記参照先アドレスを前記故障アドレス保持領域に格納する
ことを特徴とする請求項7に記載の電子制御装置。 - 前記CPUは、前記割り込み処理又は前記サブルーチンコールの処理後に、前記スタック復帰手段によって、前記スタック領域に退避した前記演算データを前記演算レジスタに復帰する場合に、前記故障アドレス保持領域に格納されている前記故障と判断された前記スタック領域の前記参照先アドレスと、前記スタックポインタを比較することで、前記故障と判断された前記スタック領域から故障した前記演算データを復帰させないことを特徴とする、請求項8に記載の電子制御装置。
- 前記CPUは、前記故障アドレス保持領域が正常に動作するか否かを監視するRAM診断手段を有することを特徴とする、請求項8に記載の電子制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018051914A JP2019164579A (ja) | 2018-03-20 | 2018-03-20 | 電子制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018051914A JP2019164579A (ja) | 2018-03-20 | 2018-03-20 | 電子制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019164579A true JP2019164579A (ja) | 2019-09-26 |
Family
ID=68065358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018051914A Pending JP2019164579A (ja) | 2018-03-20 | 2018-03-20 | 電子制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019164579A (ja) |
-
2018
- 2018-03-20 JP JP2018051914A patent/JP2019164579A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4618220B2 (ja) | ガスセンサの組み付け状態検出方法及びガスセンサの組み付け状態検出装置 | |
US20030144778A1 (en) | Vehicle electronic control system having fail-safe function | |
EP0926032A2 (en) | Brake booster negative pressure controller | |
GB2142152A (en) | Method of detecting abnormality in input and output units | |
CN107687373B (zh) | 发动机的失效保护装置 | |
JP6306530B2 (ja) | 自動車用電子制御装置 | |
US6216084B1 (en) | Memory check apparatus and method for checking data upon retrieval from memory | |
JP5842783B2 (ja) | 車両用制御装置 | |
JP4008197B2 (ja) | ダイアグノーシス機能を有する車両用制御装置及び記録媒体 | |
JP3923810B2 (ja) | 車両用電子制御装置 | |
JP2019164579A (ja) | 電子制御装置 | |
JP4210940B2 (ja) | 吸気系センサの異常診断装置 | |
KR102250296B1 (ko) | 다기통 내연기관의 기통 편차 모니터링장치 및 그 방법 | |
JPH0893544A (ja) | 診断データ記憶システム | |
US10378473B2 (en) | Vehicle control device | |
JP2679468B2 (ja) | 内燃機関の失火検出装置 | |
JP2007198290A (ja) | 車両の異常診断装置 | |
JP2022045239A (ja) | 電子制御装置 | |
JP3908020B2 (ja) | 車両用電子制御装置 | |
JP6442326B2 (ja) | 車両用制御装置 | |
JP5980112B2 (ja) | 車両情報記憶処理装置および車両情報記憶処理方法 | |
US6675772B1 (en) | Method and system for controlling an internal combustion engine when such engine loses a primary crankshaft position sensor | |
KR100412694B1 (ko) | 산소센서 오체결 체크방법 | |
JP2006242067A (ja) | 吸気系センサの異常診断装置 | |
JPH0953504A (ja) | 車両用電子制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180322 |