JP7414667B2 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP7414667B2
JP7414667B2 JP2020143194A JP2020143194A JP7414667B2 JP 7414667 B2 JP7414667 B2 JP 7414667B2 JP 2020143194 A JP2020143194 A JP 2020143194A JP 2020143194 A JP2020143194 A JP 2020143194A JP 7414667 B2 JP7414667 B2 JP 7414667B2
Authority
JP
Japan
Prior art keywords
area
stack area
stack
electronic control
information
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.)
Active
Application number
JP2020143194A
Other languages
English (en)
Other versions
JP2022038602A (ja
Inventor
聡志 秋山
剛 蔡
忠敬 森川
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2020143194A priority Critical patent/JP7414667B2/ja
Publication of JP2022038602A publication Critical patent/JP2022038602A/ja
Application granted granted Critical
Publication of JP7414667B2 publication Critical patent/JP7414667B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、マイクロコンピュータ(マイコン)を備えた車両用の電子制御装置に関する。
自動車には、機能安全と呼ばれる制御の安全を担保するための機能が存在する。機能安全の制御は、原則として通常制御に干渉してはならないことが義務付けられている。このため、車両用の電子制御装置では、安全管理部分がそれ以外の部分からの影響を受けていないことを確認する必要がある。従来の診断方法では、レベル分けした構造に対する処理に対応していないものがあるため、独自に安全管理を実施しなければならない。
例えば、電子制御装置に搭載されているマイコンのメモリは、使用する範囲を機能毎にユーザが設定しているが、実行される制御が一時的に膨大になるなどの特定の条件においては、設計者の意図に反し、設定した範囲を超えて別の領域を書き換えてしまうことがある。このような、スタック領域のオーバーライトは、マイコンの暴走やリセットを引き起こすため、個別の検証と対処が必要となる。
そこで、特許文献1では、タイマ機能による割り込みハンドラを用いて一定周期毎にオーバライトチェックを行うことにより、各タスクのディスパッチとは非同期に、かつ動的に各タスクのスタックオーバーライトを検出している。
特開2004-157662号公報
しかしながら、上記特許文献1に記載されている動的スタックオーバーライトのモニタ方法では、検証時にシステムがリセットされることがある。車両の走行中におけるシステムリセットは、意図しない車両挙動が発生する可能性があるため、たとえ一時的とはいえ好ましいものではない。
本発明は上記のような事情に鑑みてなされたもので、その目的とするところは、マイクロコンピュータを備えた車両用の電子制御装置において、機能安全に対応したスタック領域のオーバーライトの発生を抑制できる電子制御装置を提供することにある。
本発明の一態様に係る電子制御装置は、マイクロコンピュータを備える車両用の電子制御装置であって、スタック領域の使用量を監視し、スタック領域の余剰領域が所定範囲よりも少なくなった場合に、当該スタック領域の情報を外部記憶装置に記憶し、再起動の際に前記外部記憶装置に記憶した情報に基づきスタック領域を移動する、ことを特徴とする。
本発明では、スタック領域の使用量を監視してオーバーライトの可能性を評価し、オーバーライトする可能性ありとした領域をより安全な位置に移動するので、マイクロコンピュータを備えた車両用の電子制御装置において、機能安全に対応したスタック領域のオーバーライトを未然に防ぎ、プログラムの暴走を抑制することができる。
本発明の実施形態に係る車両用の電子制御装置の概略構成を示すブロック図である。 既存のソフトウェアのスタック構成について説明するための図である。 本発明の実施形態に係る電子制御装置におけるソフトウェアのスタック構成について説明するための図である。 ローカルRAM領域の空き領域について説明するための図である。 本発明の実施形態に係る電子制御装置における機能安全に対応したスタック領域のオーバーライト対策の動作を示すフローチャートである。 図5に続く動作を示すフローチャートである。 本発明の実施形態に係る電子制御装置における機能安全に対応したスタック領域のオーバーライト対策によるスタック構成の変化を示す図である。 図7における閾値の設定について説明するための図である。 図7における拡張領域の演算について説明するための図である。 図7における情報を外部記憶装置に記憶する動作について説明するための図である。 図7における初期化処理に組み込む内容について説明するための図である。 本発明の変形例について説明するためのもので、マイコンがメモリを2面搭載している場合のスタック領域の移動例を示す図である。
以下、本発明の実施形態について図面を参照して説明する。
図1は、本発明の実施形態に係る車両用の電子制御装置の概略構成を示している。車両10に搭載されたエンジン(内燃機関)20には、各種のセンサ31が設けられており、これらセンサ31で検出された信号がECM(Engine Control Module)30に入力される。センサ31は、例えば吸入空気量センサ、クランク角センサ、アクセル開度センサ、水温センサ、カム角センサ、空燃比センサ、及び油温センサなどである。また、ECM30には、エンジン20の運転及び停止のメインスイッチであるイグニッションスイッチ(図示せず)からの信号が入力される。
ECM30は、これら各種のセンサ31及びイグニッションスイッチからの信号に基づいて、予め記憶された制御プログラムに従って演算処理を行い、例えば燃料噴射弁、VTC(Variable Timing Control)機構及び点火モジュールなどの各種装置の操作量あるいは制御量を算出し、これらの装置や装置を駆動するアクチュエータ32などに制御信号を出力して制御する。
このECM30は、CPU(Central Processing Unit)などのプロセッサ33と、揮発性メモリの一例としてのRAM(Random Access Memory)34と、制御プログラム及び各種データを記憶する不揮発性メモリの一例としてのROM(Read Only Memory)35と、車両情報(故障や異常の情報)及び学習値などを記憶する不揮発性メモリの一例としてのEEPROM(Electrically Erasable and Programmable Read Only Memory)36と、入力と出力のインターフェースを行うための入出力インターフェース(入出力I/F)37と、外部装置と通信を行うための外部通信インターフェース(外部通信I/F)38と、バス39とを備えている。
プロセッサ33、RAM34、ROM35、EEPROM36、入出力I/F37及び外部通信I/F38は、バス39によって相互に接続されている。また、外部通信I/F38は、ケーブル40を着脱可能に接続するコネクタ38aを有する。このコネクタ38aには、外部記憶装置50がケーブル40を介して接続される。
図2は、既存のソフトウェアのスタック構成を示しており、通常制御で使っているスタック領域と機能安全で使っているスタック領域以外にローカルRAM領域が存在し、このローカルRAM領域には空き領域(未使用)が存在する。すなわち、RAM34の記憶領域100は、ローカルRAM領域(領域固定)110とその空き領域(未使用)110a、QM(Quality Management)スタック領域120、及びASIL(Automotive Safety Integrity Level)スタック領域130を有している。ローカルRAM領域110と空き領域110aは、車種によって変動するものである。QMスタック領域120のスタート位置は、アドレスが固定値で設定されている。また、ASILスタック領域130のスタート位置も、アドレスが固定値で設定されている。
ここで、ASILは、自動車向け機能安全規格ISO26262の安全度水準であり、QMは、ASILより安全度水準が低くなっている。そして、QMスタック領域に記憶されたソフトウェアが暴走した場合でも、安全度水準の高いASILスタック領域のソフトウェアの動作を阻害するのを抑制し、システムに影響を及ぼすのを防ぐようになっている。
上記スタック領域120,130は、使用する領域を機能毎にユーザが設定しており、制御が実行されるほど使用量が多くなり、制御が終わるたびにクリアされる。実行される制御が一時的に膨大になるなどの特定の条件を満たすと、設計者の意図に反し、設定範囲を超えて別の領域を書き換えてしまう、いわゆるオーバーライトが発生する可能性がある。
図3は、本発明に係るソフトウェアのスタック構成を示しており、図2に示した既存のソフトウェアと同様に、通常制御で使っているスタック領域と機能安全で使っているスタック領域以外にローカルRAM領域が存在し、ローカルRAM領域には空き領域(未使用)が存在する。すなわち、RAM34の記憶領域200は、ローカルRAM領域(領域固定)210と空き領域(未使用)210a、QMスタック領域220、及びASILスタック領域230を有している。
本実施形態では、スタック領域220,230のスタートアドレスを固定値で設定していたのを変数に変更し、プログラムの処理によってスタック領域220,230を可変できるようにしている。また、ASILスタック領域230に閾値を設定しており、QMスタック領域220の使用量が、この閾値を超えるか否かでオーバーライトを検知する。そして、空き領域210aの割合を演算し、使用していない分をASILスタック領域230に移行する。
すなわち、QMスタック領域220のスタート位置は、アドレスが変数に変更されている。また、ASILスタック領域230のスタート位置も、アドレスが変数に変更されている。更に、ASILスタック領域230に、破線で示すようにオーバーライトを検知するための閾値を設定している。
なお、ローカルRAM領域210と空き領域210aは、車種によって変動する。
図4は、ローカルRAMに空き領域が存在する理由について説明するための図である。図4(a)に示すように、開発時においては、ローカルRAM領域210の空き領域210aは、ローカルRAM領域として定義されているが、実際には使用されていない領域を表す。このため、図4(b)に示すように、出荷時においては、空き領域210aをQMスタック領域220として用いる。ローカルRAM領域210は、制御が増えるとともに増加し、使用範囲はプログラム毎に異なるため、図4(c)に示すように、空き領域310aが少ないと別車種には適用できなくなるので、一番使用量が多いものに対応可能にする必要がある。すなわち、汎用性や流用性を考慮し、ローカルRAM領域210にマージン(空き領域210a)を設けている。
図5及び図6はそれぞれ、本発明の実施形態に係る電子制御装置における機能安全に対応したスタック領域のオーバーライト対策の動作を示すフローチャートである。図5はキーオン状態からキーオフしたときの動作を示しており、図6はキーオフ状態からキーオンしたときの動作を示している。
図5に示すように、まず、QMスタック領域220の使用量が増加して、ASILスタック領域230の閾値を超えているか否かを判断し(ステップS1)、超えていると判断するとスタック領域拡張フラグを外部記憶装置50にセットして(ステップS2)、拡張領域演算を実行する(ステップS3)。
一方、ステップS1で、ASILスタック領域230の閾値を超えていないと判断した場合には、通常制御を実行する(ステップS4)。
その後、キーオフ(Key-OFF)されると(ステップS5)、外部記憶装置50に拡張経験フラグセット情報を格納し(ステップS6)、外部記憶装置50に演算結果を格納して(ステップS7)終了する。
図6に示すように、キーオン(Key-ON)されると(ステップS8)、外部記憶装置50の演算結果をスタック領域の初期位置に反映し(ステップS9)、閾値に演算結果を加算する(ステップS10)。
図7は、機能安全に対応したスタック領域のオーバーライト対策について説明するためのもので、上述した手順の動作によるスタック構成の変化を示している。図7(a)に示すようにQMスタック領域220の使用量が増加し、破線で示すオーバーライトを検知する閾値を超えると、スタック拡張フラグをセットする。
次に、使用量の増加分を空き領域210aに書き込むために、空き領域210aにおいて拡張する範囲を演算する。
そして、マイコンの電源オフ時に外部記憶装置50に拡張フラグ情報を記憶する。
次のマイコンの電源オン時に、図7(a)に示すようにQMスタック領域220を移動し、ASILスタック領域230を拡張する。
このように、初期化処理でスタック領域220,230の移動と拡張をそれぞれ行うことで、空き領域210aの一部(ΔA)をQMスタック領域220として利用することで、機能同士が干渉し合うことなく機能安全規格を遵守できる。
図8は、ASILスタック領域230における閾値の設定について説明するためのもので、ASILスタック領域230内の所定範囲ΔB内で可変設定できるようにしている。この所定範囲ΔBは複数段階に設定され、各段階の範囲に応じた領域の移動判断を行う。
上記閾値の設定には様々な態様が考えられ、例えば定数設定にすることで、ユーザが任意の値を設定できるようにしてもよい。また、段階的にいくつか閾値を設けて、より詳細な情報を得られるようにしてもよい。更に、閾値を超えた際にセットするフラグの情報は、診断制御に組み込んで診断NGとして扱ってもよい。閾値を超えたときに、故障警告灯(MIL)を点灯し、ユーザに知らせるようにしてもよい。
既存の制御では、スタック領域のオーバーライトが発生した場合、プログラムの暴走を防ぐためにマイコンのリセットを行っている。しかし、マイコンのリセットの原因は多数存在し、実際にオーバーライトによってリセットが起こっても原因の特定は難しい。閾値を超えた際にセットするフラグの情報を利用すれば、マイコンリセットの原因早期発見も見込まれ、フラグ情報を残すことで原因究明にも利用できる。
図9は、拡張領域の演算について説明するための図である。拡張する領域は、ローカルRAM領域210の最終アドレスと、QMスタック領域220の開始アドレスから空き領域210aを算出し、ユーザが設定した割合分拡張する。
例えば、図9(a)に示すように、ユーザが空き領域210a(ΔA1+ΔA2)のうち50%(ΔA2)を割り当てるように設定している場合には、QMスタック領域220の最終アドレスがASILスタック領域230の破線で示す閾値を超えてフラグがセットされた場合に演算を実施する。そして、図9(a)に示すように、ASILスタック領域230に空き領域210aのうち50%(ΔA2)を割り当てる。
図10は、情報を外部記憶装置50に記憶する動作について説明するための図である。RAM34の情報は、揮発性メモリであるためマイコンの電源がオフ(Key-OFF)になるとすべて消失してしまう。このため、初期化処理でスタック領域230の拡張を行う場合、マイコンの電源がOFFであっても消去されない不揮発性メモリに記憶させる必要がある。一方、マイコンの電源がオン(Key-ON)になると、外部記憶装置50からRAM34に情報を読み込む。
外部記憶装置50に記憶させる情報としては、スタックの使用量が閾値を超えたことを表す情報と、拡張させる領域を表す演算結果がある。これら以外に、フラグがセットされた際の自動車の挙動データを取得してもよい。これによって、オーバーライト時の挙動が分かるため、ソフトウェアの改良による対策を早期に実装可能になる。また、診断NGとして扱う場合には、フリーズフレームデータ(FFD)として自動車の情報が記録される。
図11は、初期化処理時に組み込む内容について説明するための図である。マイコンの電源投入時、外部記憶装置50からフラグセット情報や拡張領域の演算結果が読み込まれた場合、スタック領域の開始アドレスに演算結果分を加算することでQMスタック領域220の移動とASILスタック領域230の拡張を行う。すなわち、QMスタック領域220の開始アドレス(初期値アドレス「0xXXXXXXXX」)に演算結果を加算し、ASILスタック領域230の開始アドレス(初期値アドレス「0xYYYYYYYY」)に演算結果を加算する。また、破線で示す閾値の初期閾値アドレス「0xZZZZZZZZ」)に演算結果を加算する。
図12は、本発明の変形例について説明するためのもので、マイコンがメモリを2面搭載している場合のスタック領域の移動例を示している。図12(a),(b)に示すように、マイコンがメモリを2面搭載している場合には、例えば1面のQMスタック領域220を2面の空き領域410aのような全く違う位置に移動してもよい。
このように、固定値となっていた領域の指定値を変数とすることで、スタック領域そのものの移動がソフトウェア内で可能になる。
ここで、上述した実施形態から把握し得る技術的思想について、以下にその効果と共に記載する。
電子制御装置は、その一つの態様において、
マイクロコンピュータと、外部記憶装置とを備える車両用の電子制御装置であって、
前記マイクロコンピュータは、
プログラムの実行中にスタック領域の使用量を監視し、
前記スタック領域の使用量が予め設定した閾値を超えた場合に、閾値を超えたことを表す情報を保持し、
電源がオフになる際に、前記保持した情報を前記外部記憶装置に記憶し、
再度電源がオンされた際に、当該マイクロコンピュータの初期化制御内で、前記外部記憶装置の情報を利用してオーバーライトされそうなスタック領域を移動する、
ことを特徴とする。
上記構成によると、スタック領域の使用量をマージン付きの閾値で監視し、結果を記録することでオーバーライト可能性を評価し、オーバーする可能性ありとした領域をより安全な位置に移動するようにしている。これによって、マイクロコンピュータを備えた車両用の電子制御装置において、機能安全に対応したスタック領域のオーバーライトを未然に防ぎ、プログラムの暴走を抑制することができる。
なお、本発明は、上述した実施形態に限定されるものではない。この実施形態で説明した構成は、本発明が理解及び実施できる程度に概略的に示したものに過ぎない。従って、本発明は、特許請求の範囲に示される技術的思想の範囲を逸脱しない範囲で様々な形態に変更することができる。
例えば、上述した実施形態では、外部記憶装置50に情報を記憶する場合を例に取って説明したが、RAM34以外の不揮発性メモリであれば良く、ECM30内のEEPROM36に記憶しても実質的に同様な作用効果が得られる。
10…車両、20…エンジン、30…ECM(電子制御装置)、31…センサ、32…アクチュエータ、33…プロセッサ、34…RAM、35…ROM、36…EEPROM(不揮発性メモリ)、37…入出力インターフェース、38…外部通信インターフェース、39…バス、40…ケーブル、50…外部記憶装置、200…RAMの記憶領域、210…ローカルRAM領域、210a…空き領域、220…QMスタック領域、230…ASILスタック領域

Claims (3)

  1. マイクロコンピュータを備える車両用の電子制御装置であって、
    スタック領域の使用量を監視し、スタック領域の余剰領域が所定範囲よりも少なくなった場合に、当該スタック領域の情報を外部記憶装置に記憶し、再起動の際に前記外部記憶装置に記憶した情報に基づきスタック領域を移動する、ことを特徴とする電子制御装置。
  2. 前記所定範囲は複数段階に設定され、各段階の範囲に応じた領域の移動判断を行う、ことを特徴とする請求項1に記載の電子制御装置。
  3. 前記マイクロコンピュータに搭載されたRAMの空き領域に応じて前記スタック領域の配置を変更することを特徴とする請求項1に記載の電子制御装置。
JP2020143194A 2020-08-27 2020-08-27 電子制御装置 Active JP7414667B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020143194A JP7414667B2 (ja) 2020-08-27 2020-08-27 電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020143194A JP7414667B2 (ja) 2020-08-27 2020-08-27 電子制御装置

Publications (2)

Publication Number Publication Date
JP2022038602A JP2022038602A (ja) 2022-03-10
JP7414667B2 true JP7414667B2 (ja) 2024-01-16

Family

ID=80497999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020143194A Active JP7414667B2 (ja) 2020-08-27 2020-08-27 電子制御装置

Country Status (1)

Country Link
JP (1) JP7414667B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155677A (ja) 1998-11-19 2000-06-06 Nec Corp プログラムの暴走防止方法、そのためのコンピューターシステムと暴走防止プログラムを記録した記録媒体
JP2002082820A (ja) 2000-09-07 2002-03-22 Fuji Electric Co Ltd プロセッサ暴走防止用コンピュータシステム
JP2017016410A (ja) 2015-07-01 2017-01-19 日立オートモティブシステムズ株式会社 電子制御装置及びスタック領域の使用監視方法
JP2019159655A (ja) 2018-03-12 2019-09-19 日立オートモティブシステムズ株式会社 車両用制御装置
CN111506472A (zh) 2020-04-03 2020-08-07 华夏龙晖(北京)汽车电子科技股份有限公司 堆栈监测方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155677A (ja) 1998-11-19 2000-06-06 Nec Corp プログラムの暴走防止方法、そのためのコンピューターシステムと暴走防止プログラムを記録した記録媒体
JP2002082820A (ja) 2000-09-07 2002-03-22 Fuji Electric Co Ltd プロセッサ暴走防止用コンピュータシステム
JP2017016410A (ja) 2015-07-01 2017-01-19 日立オートモティブシステムズ株式会社 電子制御装置及びスタック領域の使用監視方法
JP2019159655A (ja) 2018-03-12 2019-09-19 日立オートモティブシステムズ株式会社 車両用制御装置
CN111506472A (zh) 2020-04-03 2020-08-07 华夏龙晖(北京)汽车电子科技股份有限公司 堆栈监测方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
浅田 佳司 ほか,割り込みスケジューラーREMONにおけるスタックオーバーフローの検出とその防止手法の提案,第55回 システム制御情報学会 研究発表講演会講演論文集,2011年,pp. 563-564

Also Published As

Publication number Publication date
JP2022038602A (ja) 2022-03-10

Similar Documents

Publication Publication Date Title
JP5867495B2 (ja) 電子制御装置
JP4636118B2 (ja) 電子機器及びプログラム
US8195885B2 (en) Electronic unit for saving state of task to be run in stack
US20090013217A1 (en) Multicore abnormality monitoring device
JP3969278B2 (ja) 電子制御装置
JP4248624B2 (ja) 内燃機関用電子制御装置。
WO2017078093A1 (ja) 電子制御装置及び電子制御方法
KR100335714B1 (ko) 마이크로컴퓨터
JP5533789B2 (ja) 車載電子制御装置
JP7414667B2 (ja) 電子制御装置
US6804752B2 (en) Event data protection method for a flash programmable microprocessor-based control module
JP6306530B2 (ja) 自動車用電子制御装置
JP2013143095A (ja) 電子制御装置、メモリ検査方法
US6168321B1 (en) Electronic control unit having user breakable function
JP2007062632A (ja) 電子制御ユニットおよび異常発生時記憶用データの記憶方法
US7293148B2 (en) Method for reliably verifying a memory area of a microcontroller in a control unit and control unit having a protected microcontroller
JP2019049928A (ja) 電子制御装置及び電子制御装置の制御方法
JP6466269B2 (ja) 電子制御装置及びスタック領域の使用監視方法
US7313703B2 (en) Method for protecting a microcomputer system against manipulation of data stored in a storage assembly
JP6771272B2 (ja) 車載電子制御装置及びスタック使用方法
JP3741872B2 (ja) Ramの診断装置
JPH0325813B2 (ja)
JP5942904B2 (ja) 処理装置
JP7486460B2 (ja) 電子制御装置及び故障情報の消去方法
JP7226064B2 (ja) 電子制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231122

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: 20231205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231228

R150 Certificate of patent or registration of utility model

Ref document number: 7414667

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150