JP6589767B2 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP6589767B2
JP6589767B2 JP2016147634A JP2016147634A JP6589767B2 JP 6589767 B2 JP6589767 B2 JP 6589767B2 JP 2016147634 A JP2016147634 A JP 2016147634A JP 2016147634 A JP2016147634 A JP 2016147634A JP 6589767 B2 JP6589767 B2 JP 6589767B2
Authority
JP
Japan
Prior art keywords
memory protection
violation
unit
memory
access
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
JP2016147634A
Other languages
English (en)
Other versions
JP2018018274A (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.)
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 JP2016147634A priority Critical patent/JP6589767B2/ja
Priority to DE102017211568.8A priority patent/DE102017211568B4/de
Publication of JP2018018274A publication Critical patent/JP2018018274A/ja
Application granted granted Critical
Publication of JP6589767B2 publication Critical patent/JP6589767B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2139Recurrent verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、アクセスが認められたメモリ領域外へのアクセスを違反アクセスとして禁止するとともに、違反アクセスが生じた場合にメモリ保護違反割込みを発生させるメモリ保護部を有するマイコンを備えた電子制御装置に関する。
例えば、メモリ保護を行うための技術として、特許文献1に記載された情報処理装置が知られている。特許文献1の情報処理装置は、メモリに記憶された複数のアプリを実行するCPUと、各アプリ毎にメモリへのアクセスを許可するか又は禁止するかの許否情報がアドレスに対応付けて登録されるアクセス監視手段と、を備えている。
さらに、特許文献1の情報処理装置は、アプリを実行するCPUによって禁止されたメモリへのアクセスがなされたことをアクセス監視手段が検出した場合に、CPUがメモリアクセスしたアドレスに記憶されたデータを、そのアドレスと対応付けてメモリから退避領域に退避させるデータ退避手段と、CPUがメモリアクセスしたアドレスへのアクセスが許可されるように、許否情報を変更する許否情報変更手段と、禁止されたメモリへのアクセスを行ったアプリを実行するCPUが、該当するアドレスへのメモリアクセスを行った後に、そのアドレスのデータを当該アドレスと対応付けてメモリからバックアップ領域にバックアップするバックアップ手段と、を有している。そして、バックアップ手段は、CPUが禁止されたメモリアクセスを行ったアプリを次に実行する前に、バックアップ領域のデータを、対応付けられているアドレスに復帰させるように構成されている。なお、バックアップ手段が、バックアップ領域のデータを復帰させる場合には、当該アドレスのデータは、データ退避手段により、退避領域に退避させられる。
一般的なメモリ保護装置では、アクセス違反が生じた場合、例外処理として、メモリ保護違反割込みを発生させ、現行のプロセスを終了(命令の破棄)させて、次のプロセスをCPUに割り付けたり、OSをリスタートさせたりする。この場合、プログラムの実行が制限されてしまうが、特許文献1の情報処理装置によれば、アクセス違反が生じてもプログラム(アプリ)の実行を継続することが可能となる。
特開2014−137734号公報
しかしながら、特許文献1の情報処理装置では、データの退避用及びバックアップ用のメモリ領域を冗長に確保しなければならないという問題がある。さらに、アクセス違反が生じた場合、メモリ保護装置が例外を発生させ、割込みにより、データのバックアップや許否情報の変更処理が行われたり、アプリの切り替え時に、データを退避領域に退避させた上で、バックアップ領域からデータを移したりするため、オーバーヘッドが増加するという問題も生じる。
本発明は、上述した点に鑑みてなされたもので、メモリ領域の冗長化やオーバーヘッドの増加を招くことなく、極力安全にプログラムの実行を継続することが可能な電子制御装置を提供することを目的とする。
上記目的を達成するために、本発明による電子制御装置(10)は、アクセスが認められたメモリ領域外へのアクセスを違反アクセスとして禁止するとともに、違反アクセスが生じた場合にメモリ保護違反割込みを発生させるメモリ保護部(22、24、28)を有するマイコン(12)を備え、さらに、
違反アクセスの回数をカウントするカウント部(S400)と、
カウント部によってカウントされた回数が所定回数以上となった場合に、メモリ保護違反割込みの発生を無効化する無効化部(S300、S320)と、を備える。
このような構成を備えるため、本発明による電子制御装置では、違反アクセスの回数が所定回数以上となると、メモリ保護違反割込みの発生が無効化される。このため、メモリ保護違反割込みの無効化後は、現行のプロセスが終了されたり、OSがリスタートされたりすることなく、プログラムの実行を継続することが可能になる。この場合、メモリ保護違反割込みは無効化されるが、メモリ保護部による、アクセスが認められたメモリ領域外への違反アクセスは継続して禁止されるので、データが不当に書き込まれたり、読み出されたりすることはなく、安全にプログラムの実行を継続させることができる。
上述した電子制御装置において、さらに、
電子制御装置は、所定の制御対象に制御信号を出力して制御するものであり、
無効化部によってメモリ保護違反割込みの発生を無効化してからの無効化時間を計測する計測部(S340)と、
計測部により計測される無効化時間が所定時間に達したとき、制御対象への制御信号の出力を遮断する遮断部(S350、S360)と、を備えるように構成しても良い。
上述したように、違反アクセスは禁止されるが、違反アクセスが継続して発生する状況のまま、無制限にプログラムの実行を継続すると、万一、メモリ保護部に故障が生じた場合、違反アクセスを禁止することができず、不測の事態を招く虞がある。そのため、上述したように、メモリ保護違反割込みの発生を無効化してからの無効化時間が所定時間に達した時に、制御対象への制御信号の出力を遮断して、制御対象に対する制御が行われなくすることが好ましい。
上記括弧内の参照番号は、本発明の理解を容易にすべく、後述する実施形態における具体的な構成との対応関係の一例を示すものにすぎず、なんら本発明の範囲を制限することを意図したものではない。
また、上述した特徴以外の、特許請求の範囲の各請求項に記載した技術的特徴に関しては、後述する実施形態の説明及び添付図面から明らかになる。
実施形態に係る電子制御装置の構成を示すブロック図である。 メモリ保護設定レジスタに設定されたメモリ領域設定用データに基づく、メモリ保護装置によるメモリ保護処理を示すフローチャートである。 エラー制御装置における処理を示すフローチャートである。 メモリ保護違反割込みが無効設定に切り替えられる判定処理、及びメモリ保護違反割込みが無効設定された場合の安全処理を示すフローチャートである。 違反アクセスが発生し、メモリ保護装置にてメモリ保護違反の発生が判定されたときに実行されるエラー処理を示すフローチャートである。 マイコンにおいて実行される各プログラムによる処理の時間的な関係の一例を示したシーケンス図である。 メモリ保護違反カウンタ及び無効化時間のリセット処理を示すフローチャートである。
以下、本発明の実施形態を図に基づいて説明する。本実施形態に係る電子制御装置は、例えば、電子スロットルなどの車載装置を制御するために使用される。図1には、電子スロットル40を制御対象とした場合の電子制御装置(Electronic Control Unit:ECU)10の全体構成の一例を図示している。この場合、ECU10は、アクセルセンサによって検出される運転者のアクセルペダルの操作量に基づき、運転者が求めるエンジン出力を計算し、その計算したエンジン出力が発生するように、電子スロットル40を制御する。
ただし、本発明に係る電子制御装置の制御対象は、電子スロットルに限られる訳ではなく、他の車載機器を制御対象としても良い。さらに、車載機器以外の機器を制御対象としても良い。
図1において、ECU10は、マイコン12、スロットルモータ駆動回路14、及び監視IC16を備えている。マイコン12は、入力回路34を介してアクセルペダルの操作量を検出するアクセルセンサの検出信号を入力する。そして、入力した検出信号に基づいて、運転者が要求するエンジン出力(エンジントルク)を計算する。マイコン12は、計算したエンジン出力を発生させるように電子スロットル40を制御するべく、出力回路36を介してスロットルモータ駆動回路14に駆動出力を与える。スロットルモータ駆動回路14は、マイコン12から与えられた駆動出力に応じて、スロットルモータ(図示せず)を回転させるための駆動電流を出力する。この駆動電流によりスロットルモータが回転することで、電子スロットル40の開度が変化する。
マイコン12は、上述した入力回路34、出力回路36に加えて、CPU20、メモリ保護設定レジスタ22、メモリ保護装置24、メモリ保護違反割込み設定レジスタ26、エラー制御装置28、ROM30、RAM32、及び通信装置38を備えている。CPU20は、ROM30に記憶された各種のプログラムを実行することで、電子スロットル40の開度制御機能、メモリ保護違反が生じたときのエラー処理機能や安全機能などを発揮する。そのため、ROM30には、図1に示すように、少なくとも、電子スロットル40の開度を制御するための制御機能プログラム30A、マイコン12の診断を行ったり、メモリ保護違反が生じたときに、安全を確保するための処置を行ったりする安全機能プログラム30B、エラー制御装置28によるメモリ保護違反割込みが生じたときに実行するエラー処理を規定するエラー処理プログラム30C、及び上述した各アプリケーションプログラムの実行を支援、管理する基本ソフトとしてのOSプログラム30Dが記憶されている。
マイコン12に電源が投入されると、CPU20は、OSプログラム30DをROM30から読み込んで実行する。その他のアプリケーションプログラムも、各々の起床条件が成立したときに、CPU20に読み込まれて実行される。それぞれのプログラムが実行されるときに、その実行に必要な各種のデータを保存しておくため、RAM32には、各プログラムに割り当てられた専用領域が設けられている。各プログラムの専用領域は、原則として、別のプログラムによってアクセスすることができないように、メモリ保護装置24が設けられている。
メモリ保護装置24は、メモリ保護設定レジスタ22に設定されたメモリ領域設定用データに基づき、CPU20によって実行されるプログラムによるメモリアクセス要求に対して、アクセスを許容するか否かを判定する。具体的には、メモリアクセス要求が、アクセスが許可されているメモリ領域に対するものである場合にはアクセスを許容すると判定し、該当するメモリ領域へのアクセスを許可する。一方、メモリアクセス要求が、アクセスが禁止されているメモリ領域に対する違反アクセスであると判定した場合、該当するメモリ領域へのアクセスを禁止するとともに、メモリ保護違反の発生を判定する。これにより、例えば、あるアプリケーションプログラムの実行によって、別のアプリケーションプログラム又はOSプログラムや、それぞれのプログラムによって使用されるデータ等が誤って書き換えられてしまうような事態の発生を防止することができる。
メモリ保護設定レジスタ22に設定されるメモリ領域設定用データは、各アプリケーションプログラムやOSプログラムがアクセス可能なメモリ領域を示すものである。ただし、各プログラムがアクセス不可のメモリ領域をメモリ領域設定用データとしても良い。
メモリ保護設定レジスタ22へのメモリ領域設定用データの格納は、OSプログラムによって行われる。例えば、メモリ領域設定用データは、予めプログラム毎にROM30に保存されている。そして、電源が投入されてマイコン12が起動されると、各プログラムのメモリ領域設定用データは、ROM30から読み出されて、RAM32に保存される。OSプログラムは、RAM32から、実行されるプログラムのメモリ領域設定用データを読み出して、メモリ保護設定レジスタ22へ格納する。
なお、メモリ保護設定レジスタ22は、例えば、複数のレジスタを備えていても良い。この場合、例えば、少なくとも1つのレジスタは、OSプログラムがアクセス可能なメモリ領域を示すメモリ領域設定用データを格納するために使用される。他のレジスタは、アプリケーションプログラムがアクセス可能なメモリ領域を示すメモリ領域設定用データを格納するために使用される。そして、OSプログラムは、実行するアプリケーションプログラムが切り替えられる時に、アプリケーションプログラム用のメモリ領域設定用データを格納するレジスタの内容だけを書き換える。このように、メモリ保護設定レジスタ22として複数のレジスタが設けられていると、メモリ領域設定用データの書き換え頻度を低減することが可能になる。
また、上述したメモリは、主として、各プログラムのワークスペースとして用いられるRAM32を意味するが、さらに、ROM30やレジスタなどを含むものであっても良い。すなわち、メモリは、RAM32、ROM30、レジスタを含み、これらを、一つのアドレス空間として一括管理されるものであっても良い。
エラー制御装置28は、メモリ保護装置24がメモリ保護違反の発生を判定し、その旨の通知を受信したとき、メモリ保護違反割込み設定レジスタ26において、メモリ保護違反割込みが有効設定されている場合、CPU20へメモリ保護違反割込みを出力する。一方、メモリ保護違反割込み設定レジスタ26において、メモリ保護違反割込みが無効設定されている場合には、メモリ保護装置24からメモリ保護違反の発生通知を受信しても、メモリ保護違反割込みを出力しない。CPU20は、エラー制御装置28からのメモリ保護違反割込みを受信すると、所定のエラー処理を実行する。この所定のエラー処理として、メモリ保護違反カウンタによってメモリ保護違反の発生回数をカウントするとともに、例えば無限ループ処理を実行することでマイコン12の出力回路36から監視IC16へのウォッチドッグ信号の出力を停止させる処理を行う。
マイコン12の監視IC16は、マイコン12から所定時間、ウォッチドッグ信号が出力されない場合、マイコン12に対してリセット信号を出力する。このため、メモリ保護違反割込みが有効と設定されている場合には、メモリ保護装置24がメモリ保護違反の発生を判定するごとに、マイコン12がリセットされることになる。なお、メモリ保護違反割込みに応じて、従来と同様に、現行のプロセスを終了(命令の破棄)させて、次のプロセスに遷移したり、OSをリスタートさせたりするようにしても良い。
しかしながら、メモリ保護違反の発生原因がプログラムのバグなど恒久的な異常によるものである場合、マイコン12をリセットしても、メモリ保護違反割込みが繰り返され、実質的に、マイコン12による制御を継続することが困難になる可能性がある。また、メモリ保護違反割込みに応じて、現行のプロセスを終了させて次のプロセスに遷移したり、OSをリスタートさせたりする場合には、プログラムを正常に継続することができなくなる可能性が高い。
そこで、本実施形態では、上述したように、メモリ保護違反割込み設定レジスタ26を設けて、メモリ保護違反割込みを無効と設定することができるようにした。メモリ保護違反割込み設定レジスタ26において、メモリ保護違反割込みが無効と設定されている場合には、メモリ保護装置24からメモリ保護違反の発生通知を受信しても、エラー制御装置28はメモリ保護違反割込みを発生しないようになっている。このため、マイコン12がリセットされたり、現行のプロセスが終了されたり、OSプログラムがリスタートされたりすることなく、プログラムの実行を継続することが可能になる。この場合、メモリ保護違反割込みは無効化されるが、メモリ保護装置24による、アクセスが認められたメモリ領域外への違反アクセスは継続して禁止される。このため、データが不当に書き込まれたり、読み出されたりすることはなく、安全にプログラムの実行を継続させることができる。
上述したメモリ保護の他にも、例えば、CPU20は、安全機能プログラム30Bを実行することにより、マイコン12が正常に動作しているかを確認するための診断処理を行う。この診断処理による診断結果は、通信装置38を介して、監視IC16に送信される。監視IC16は、診断結果に基づき、電子スロットル40に対する制御を正常に実行することができないような重大な異常が発生していると判定した場合、スロットルモータ駆動回路14に対して、シャットダウン出力を与える。スロットルモータ駆動回路14は、シャットダウン出力が与えられると、電子スロットル40を駆動するスロットルモータへの駆動電流を停止する。これにより、マイコン12の異常により電子スロットル40の動作異常が生じて、不測の事態を招くことを未然に防ぐことができる。
本実施形態では、マイコン12の出力回路36からも、スロットルモータ駆動回路14に対してシャットダウン出力を与えることができるように構成されている。マイコン12が、出力回路36を介して、スロットルモータ駆動回路14にシャットダウン出力を与えるのは、例えば、次のような場合である。マイコン12は、メモリ保護違反割込み設定レジスタ26により、メモリ保護違反割込みの発生を無効化してからの無効化時間を計測する。そして、計測された無効化時間が所定時間に達したときに、出力回路36からスロットルモータ駆動回路14へシャットダウン出力を与える。
メモリ保護違反割込みの発生を無効化すると、違反アクセスによるメモリへのアクセスは禁止されるが、違反アクセスそのものが継続して発生可能な状況となり得る。このような状況のまま、無制限にプログラムの実行を継続すると、万一、メモリ保護装置24に故障が生じた場合、メモリへの違反アクセスを禁止することができず、不測の事態を招く虞がある。そのため、上述したように、メモリ保護違反割込みの発生を無効化してからの無効化時間が所定時間に達した時に、出力回路36からスロットルモータ駆動回路14にシャットダウン出力を与えるようにして、電子スロットル40への駆動電流を停止するのである。
次に、メモリ保護に関して、マイコン12のCPU20等において実行される処理について、図2〜5のフローチャートを参照して説明する。なお、図2のフローチャートは、メモリ保護設定レジスタ22に設定されたメモリ領域設定用データに基づく、メモリ保護装置24によるメモリ保護処理を示している。図3のフローチャートは、エラー制御装置28における処理を示している。図4のフローチャートは、メモリ保護違反割込みが無効設定に切り替えられる判定処理、及びメモリ保護違反割込みが無効設定された場合の安全処理を示している。さらに、図5のフローチャートは、エラー制御装置28によってメモリ保護違反割込みが発生されたときに実行されるエラー処理を示している。
図2のフローチャートにおいて、まず、ステップS100では、メモリ保護装置24はメモリへのアクセス要求を受信する。このメモリアクセス要求には、例えば、アクセスしようとしているメモリのアドレス、メモリアクセス要求を出したプログラムの種類、メモリに対する処理内容(読み出し、書き込み)を示す情報が含まれている。
メモリ保護装置24は、ステップS110において、実行中のプログラムがアクセスしようとしているメモリのアドレスが、メモリ保護設定レジスタ22に設定されたアドレス範囲に含まれる正常アクセスであるか、それともアドレス範囲に含まれない違反アクセスであるかを判定する。なお、メモリ保護設定レジスタ22へのメモリ領域設定用データの格納は、実行されるプログラムが切り替えられるときに、OSプログラムによって行われている。そのため、メモリ保護装置24は、メモリへのアクセス要求を受信したときに、メモリ保護設定レジスタ22の内容を参照することで、正常アクセスであるか、違反アクセスであるかを判定することができる。
ステップS110の判定処理において、正常アクセスであると判定した場合には、ステップS120の処理に進んで、メモリへのアクセスを許可する。一方、ステップS110の判定処理において、違反アクセスであると判定した場合には、ステップS130の処理に進んで、メモリへのアクセスを禁止する。さらに、続くステップS140において、メモリ保護違反が発生した旨をエラー制御装置28に通知する。なお、正常アクセスであるか違反アクセスであるかを判定する際、アクセスしようとしているメモリ領域のみでなく、メモリに対する処理内容も考慮するようにしても良い。
次に、エラー制御装置28における処理を図3のフローチャートに基づき説明する。図3のフローチャートでは、まず、ステップS200において、メモリ保護装置24からメモリ保護違反の発生通知を受信したか否かを判定する。受信したと判定した場合、ステップS210の処理に進み、受信していないと判定した場合には、再度ステップS200の処理を実行することで、メモリ保護違反発生通知の受信を待機する。
ステップS210では、メモリ保護違反割込み設定レジスタ26の設定が、違反割込みを有効とする設定となっているか、無効とする設定となっているかを判定する。この判定処理において、違反割込みを有効とする設定となっていると判定すると、ステップS220において、エラー制御装置28はメモリ保護違反割込みを発生する。一方、違反割込みを無効とする設定となっていると判定した場合には、メモリ保護違反割込みを発生することなく、処理を一旦終了する。
次に、図4のフローチャートについて説明する。この図4のフローチャートに示す処理は、所定の周期で繰り返し実行される。まず、ステップS300において、メモリ保護違反カウンタのカウント値が所定値以下であるか否かを判定する。メモリ保護違反カウンタは、後述する図5のフローチャートのステップS300において、インクリメントされるものであり、図5のフローチャートは、エラー制御装置28によってメモリ保護違反割込みが発生された場合に実行されるものである。このため、メモリ保護違反カウンタのカウント値は、違反アクセスの回数、すなわちメモリ保護違反の発生回数を示すものとなる。
ステップS300において、メモリ保護違反カウンタのカウント値が所定値以下であると判定すると、ステップS310の処理に進んで、メモリ保護違反割込み設定レジスタ26における設定として、メモリ保護違反割込みは有効と設定する。一方、メモリ保護違反カウンタのカウント値が所定値より大きいと判定すると、ステップS320の処理に進んで、メモリ保護違反割込みは無効と設定する。従って、メモリ保護違反の発生回数が所定値以下である間は、メモリ保護違反割込みは有効であり、メモリ保護違反の発生の都度、メモリ保護違反割込みが発生する。しかし、メモリ保護違反の発生回数が所定値より大きくなると、メモリ保護違反割込みが無効化されるため、メモリ保護違反が生じても、メモリ保護違反割込みは発生しなくなる。
続くステップS330では、例えば、運転者前方のメータパネル内に設けられた警告灯を点灯することにより、メモリ保護違反が継続的に発生する異常が生じていることを運転者に報知する。ただし、警告灯が点灯した段階では、メモリ保護違反割込みは無効化されているが、メモリ保護装置24によるメモリ保護機能は有効に作動しており、メモリ内のデータが不当に書き換えられたりされることはなく、安全に制御を継続することができる。
続くステップS340では、メモリ保護違反割込みの無効設定後の無効化時間を計測する。そして、ステップS350において、無効化時間が所定時間よりも長くなったか否かを判定する。無効化時間が所定時間よりも長くなったと判定した場合には、ステップS360の処理に進み、出力回路36を介して、スロットルモータ駆動回路14へシャットダウン出力を与える。これにより、メモリ保護違反割込みを無効化した後に、メモリ保護装置24に故障が生じて、違反アクセスを禁止することができず、不測の事態を招いてしまう虞を低減することができる。この際、ステップS330の警告灯とは異なる警告灯を点灯したり、もしくは警告灯を点灯する態様を異ならせたりすることにより、運転者に対し、ECU10が制御対象への制御を停止したことを報知することが望ましい。
メモリ保護違反割込みの発生時に実行される図5のフローチャートに示す処理では、ステップS400において、メモリ保護違反カウンタをインクリメントする。さらに、ステップS410で、例えば無限ループ処理を実行することにより、ウォッチドッグ信号の出力を停止させる。これにより、監視IC16からのマイコンリセット信号によってマイコン12がリセットされるので、メモリアクセス違反が一時的な原因によって生じた場合には、以後、メモリアクセス違反が発生しないようにマイコン12を正常化することができる。
しかし、メモリアクセス違反が恒久的な原因によって生じた場合には、マイコン12のリセットが繰り返され、実質的に、マイコン12が制御を継続することができなくなってしまう。その点、本実施形態では、ステップS210において、メモリ保護違反割込みは無効に設定されていると判定した場合には、メモリ保護違反割込みを発生することなく、図3のフローチャートの処理を一旦終了する。このため、ECU10は、メモリ保護違反が発生しても、制御対象に対する制御を継続することが可能となる。
図6は、マイコン12において実行される各プログラムによる処理の時間的な関係の一例を示したシーケンス図である。図6に示される例によれば、OSプログラムが、メモリ保護違反カウンタのカウント値に基づき、メモリ保護違反割込みの有効もしくは無効を設定した後、制御機能プログラムを呼び出して起動する。この制御機能プログラムの実行中にメモリ保護違反が発生すると、メモリ保護違反割込みが有効設定されている場合には、エラー制御装置28によりメモリ保護違反割込みが発生される。このメモリ保護違反割込みにより、制御機能プログラムは実行を中断されるとともに、エラー処理が開始される。具体的には、メモリ保護違反カウンタをインクリメントし、さらに、ウォッチドッグ信号を停止するための処理を実施する。これにより、ウォッチドッグ信号が停止されるので、マイコン12は監視IC16によってリセットされる。
マイコン12がリセットにより再起動されると、OSプログラムが起動することで、ウォッチドッグ信号が定期的に出力されるようになる(ウォッチドッグ信号の活性化)。そして、OSプログラムは、安全機能プログラムを呼び出して起動する。安全機能プログラムは、マイコン12が正常に動作しているか否かに関する診断を行い、その診断結果を監視IC16に出力する。監視IC16は、診断結果が重大な故障を示す場合、スロットルモータ駆動回路14にシャットダウン出力を与える。
また、安全機能プログラムは、メモリ保護違反カウンタのカウント値が所定値より大きい場合、すなわち、メモリ保護違反割込みが無効設定されている場合、メモリ保護違反割込みの無効化時間を計測するとともに、警告灯を点灯する処理を行う。そして、無効化時間が所定時間よりも長くなったと判定すると、出力回路36を介して、スロットルモータ駆動回路14にシャットダウン出力を与える。
次に、図7のフローチャートを参照して、メモリ保護違反カウンタ及び無効化時間のリセット処理について説明する。図7のフローチャートに示すリセット処理は、車両のイグニッションスイッチがオフされたことが検出されたときに実行される。すなわち、イグニッションスイッチのオンからオフまでを1ドライビングサイクルとすると、図7のフローチャートに示すリセット処理は、各ドライビングサイクルの終了時に実行される。
まず、最初のステップS500では、ドライビングサイクルの終了に合わせて、ドライビングサイクルの更新処理を行う。続くステップS510では、前回のドライビングサイクルにて記憶されたメモリ保護違反カウンタのカウント値を読み出す。なお、メモリ保護違反カウンタのカウント値は、対応するドライビングサイクルと関連付けて、イグニッションスイッチがオフされた後も、記憶内容を保持可能な不揮発性メモリや電源バックアップされたRAM等に保存されている。
続くステップS520では、現在のメモリ保護違反カウンタのカウント値を読み出す。そして、ステップS530において、前回のドライビングサイクルで記憶されたメモリ保護違反カウンタのカウント値と、現在のメモリ保護違反カウンタのカウント値とを比較して、両カウント値が同じであるか否かを判定する。メモリ保護違反カウンタは、上述した図5のフローチャートのステップS400でインクリメントされるか、後述するステップS540にてゼロクリアされるまでは、イグニッションスイッチのオン、オフに係わらず、カウント値を維持する。従って、ステップS530の判定処理において、両カウント値が同じである場合、今回のドライビングサイクルでは、メモリ保護違反は発生しておらず、メモリ保護違反に関する異常は正常復帰したとみなすことができる。そのため、ステップS540に進んで、メモリ保護違反カウンタのカウント値及び無効化時間をゼロクリアする。一方、両カウント値が異なる場合、すなわち、記憶されたカウント値よりも現行のカウント値が大きい場合、ステップS550に進んで、現在のカウント値を更新されたドライビングサイクルに関連付けて保存する。
なお、イグニッションスイッチがオンされて、今回のドライビングサイクルが開始されるときに、初期化処理の一環として、メモリ保護違反割込みが有効設定される。そのため、今回のドライビングサイクルにおいて、メモリ保護違反が発生すると、メモリ保護違反割込みによるエラー処理が実行され、メモリ保護違反カウンタのカウント値がインクリメントされる。一方、今回のドライビングサイクルにてメモリ保護違反が発生していなければ、メモリ保護違反カウンタのカウント値は、前回のドライビングサイクルで記憶されたメモリ保護違反カウンタのカウント値と同一値を維持する。
また、初期化処理の一環として、メモリ保護違反割込みを有効設定した後、少なくとも1回、メモリ保護違反の発生が判定されるまでは、メモリ保護違反カウンタのカウント値に基づく、メモリ保護違反割込みの有効、無効の設定の切り替えは、行われないようになっている。これにより、前回のドライビングサイクルにおいて、メモリ保護違反割込みが無効設定されるまで、メモリ保護違反カウンタのカウント値がインクリメントされていても、今回のドライビングサイクルにおいて、少なくとも1回は、メモリ保護違反カウンタにより、メモリ保護違反の発生をカウントすることができる。
以上、本発明の好ましい実施形態について説明した。しかしながら、本発明は、上述した実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。
例えば、上述した実施形態において、スロットルモータ駆動回路14にシャットダウン出力を与えるタイミングを判定するために、無効化時間と比較される所定時間は、一定時間であっても良いし、可変時間であっても良い。所定時間を可変時間とする場合には、例えばメモリ保護違反割込みの発生時間間隔に応じて、所定時間の長さを可変することができる。具体的には、メモリ保護違反割込みが発生する間隔を測定する間隔測定部を設け、この間隔測定部が測定するメモリ保護違反割込みの発生間隔の平均値が長くなるほど、無効化時間と比較される所定時間が長くなるように設定すれば良い。
また、上述した実施形態では、前回のドライビングサイクルの終了時点のメモリ保護違反カウンタのカウンタ値を記憶しておき、今回のドライビングサイクルの終了時点のメモリ保護違反カウンタのカウンタ値と比較して、メモリ保護違反に関する異常が回復したか否かを判定するものであった。しかしながら、今回のドライビングサイクルにおいて、メモリ保護違反カウンタのカウント値を測定するタイミング(第2のタイミング)は、今回のドライビングサイクルが開始された後に、メモリ保護違反を発生したプログラムが少なくとも1回実行されるに十分な間隔を確保できるタイミングであれば良く、必ずしも、今回のドライビングサイクルの終了時点でなくとも良い。
10 電子制御装置(ECU)
12 マイコン
14 スロットルモータ駆動回路
16 監視IC
20 CPU
22 メモリ保護設定レジスタ
24 メモリ保護装置
26 メモリ保護違反割込み設定レジスタ
28 エラー制御装置
30 ROM
32 RAM

Claims (5)

  1. アクセスが認められたメモリ領域外へのアクセスを違反アクセスとして禁止するとともに、前記違反アクセスが生じた場合にメモリ保護違反割込みを発生させるメモリ保護部(22、24、28)を有するマイコン(12)を備えた電子制御装置において、
    前記違反アクセスの回数をカウントするカウント部(S400)と、
    前記カウント部によってカウントされた回数が所定回数以上となった場合に、前記メモリ保護違反割込みの発生を無効化する無効化部(S300、S320)と、を備える電子制御装置。
  2. 前記電子制御装置は、所定の制御対象に制御信号を出力して制御するものであり、
    前記無効化部によって前記メモリ保護違反割込みの発生を無効化してからの無効化時間を計測する計測部(S340)と、
    前記計測部により計測される無効化時間が所定時間に達したとき、前記制御対象への前記制御信号の出力を遮断する遮断部(S350、S360)と、を備える請求項1に記載の電子制御装置。
  3. 前記電子制御装置は、車両に搭載された車載機器を制御するものであり、
    前記車両のイグニッションスイッチがオフされる第1のタイミングにおいて、前記カウント部によってカウントされている前記違反アクセスの回数を保存する保存部(S550)と、
    前記車両のイグニッションスイッチがオンされた後の第2のタイミングにおいて、前記カウント部によってカウントされている前記違反アクセスの回数を読み出して、前記保存部に保存されている回数と比較した結果、前記違反アクセスの回数に変化がない場合、前記カウント部によりカウントされた回数をリセットするリセット部(S520、S530、S540)と、を備える請求項1に記載の電子制御装置。
  4. 前記電子制御装置は、車両に搭載された車載機器を制御するものであり、
    前記車両のイグニッションスイッチがオフされる第1のタイミングにおいて、前記カウント部によってカウントされている前記違反アクセスの回数を保存する保存部(S550)と、
    前記車両のイグニッションスイッチがオンされた後の第2のタイミングにおいて、前記カウント部によってカウントされている前記違反アクセスの回数を読み出して、前記保存部に保存されている回数と比較した結果、前記違反アクセスの回数に変化がない場合、前記カウント部によりカウントされた回数及び前記計測部により計測された無効化時間をリセットするリセット部(S520、S530、S540)と、を備える請求項2に記載の電子制御装置。
  5. 前記メモリ保護違反割込みが発生する間隔を測定する間隔測定部を備え、
    前記遮断部は、前記間隔測定部が測定する間隔の平均値が長くなるほど、前記無効化時間と比較される前記所定時間を長く設定する請求項2又は4に記載の電子制御装置。
JP2016147634A 2016-07-27 2016-07-27 電子制御装置 Active JP6589767B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016147634A JP6589767B2 (ja) 2016-07-27 2016-07-27 電子制御装置
DE102017211568.8A DE102017211568B4 (de) 2016-07-27 2017-07-06 Elektronische steuereinheit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016147634A JP6589767B2 (ja) 2016-07-27 2016-07-27 電子制御装置

Publications (2)

Publication Number Publication Date
JP2018018274A JP2018018274A (ja) 2018-02-01
JP6589767B2 true JP6589767B2 (ja) 2019-10-16

Family

ID=60951528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016147634A Active JP6589767B2 (ja) 2016-07-27 2016-07-27 電子制御装置

Country Status (2)

Country Link
JP (1) JP6589767B2 (ja)
DE (1) DE102017211568B4 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006235924A (ja) * 2005-02-24 2006-09-07 Denso Corp プログラムの実行アドレス異常を検出する電子制御装置
US8566940B1 (en) 2009-11-25 2013-10-22 Micron Technology, Inc. Authenticated operations and event counters
JP5942778B2 (ja) * 2012-10-22 2016-06-29 トヨタ自動車株式会社 情報処理装置
JP5842833B2 (ja) 2013-01-17 2016-01-13 トヨタ自動車株式会社 情報処理装置、プログラム
JP5975923B2 (ja) * 2013-03-29 2016-08-23 日立オートモティブシステムズ株式会社 車両用制御装置
JP6323235B2 (ja) * 2014-07-29 2018-05-16 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
DE102017211568B4 (de) 2022-04-28
JP2018018274A (ja) 2018-02-01
DE102017211568A1 (de) 2018-02-01

Similar Documents

Publication Publication Date Title
JP5244981B2 (ja) マイクロコンピュータ及びその動作方法
WO2019058607A1 (ja) 車載電子制御装置およびその異常時処理方法
JP5094777B2 (ja) 車載用電子制御装置
JP2008033890A (ja) マイクロコンピュータシステム
JP6589767B2 (ja) 電子制御装置
JP4812699B2 (ja) 電源制御装置
JP7155902B2 (ja) 電子制御装置
JP2004338883A (ja) エレベーターの制御装置
JP5579257B2 (ja) 主記憶装置における情報を復元するための装置及び方法
JP5880411B2 (ja) 情報処理装置
JP7024582B2 (ja) 車載制御装置
JP5842833B2 (ja) 情報処理装置、プログラム
JP4856023B2 (ja) リアルタイムウォッチ装置及びその方法
JP2005250854A (ja) 制御装置
JP6172040B2 (ja) 電子制御装置
JP2016203764A (ja) 車両の電子制御装置
JP2007283788A (ja) 車両用電子制御装置
JP6799404B2 (ja) 情報処理装置および情報処理方法
JP2017007539A (ja) 制御装置
WO2013073009A1 (ja) マイコンシステム、監視マイコン
JP7200883B2 (ja) 電子制御装置
KR101548924B1 (ko) 차량용 ecu 및 튜닝 보호 기능 해제 방법
JP7091853B2 (ja) 電子制御装置
US12050691B2 (en) Security processing device
WO2023119652A1 (ja) 電子制御装置、及びアクセス制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190619

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190902

R151 Written notification of patent or utility model registration

Ref document number: 6589767

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250