JP6471510B2 - Microcomputer - Google Patents

Microcomputer Download PDF

Info

Publication number
JP6471510B2
JP6471510B2 JP2015009548A JP2015009548A JP6471510B2 JP 6471510 B2 JP6471510 B2 JP 6471510B2 JP 2015009548 A JP2015009548 A JP 2015009548A JP 2015009548 A JP2015009548 A JP 2015009548A JP 6471510 B2 JP6471510 B2 JP 6471510B2
Authority
JP
Japan
Prior art keywords
program
asil
microcomputer
memory
stored
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
JP2015009548A
Other languages
Japanese (ja)
Other versions
JP2016134082A (en
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 JP2015009548A priority Critical patent/JP6471510B2/en
Priority to DE102016200413.1A priority patent/DE102016200413A1/en
Publication of JP2016134082A publication Critical patent/JP2016134082A/en
Application granted granted Critical
Publication of JP6471510B2 publication Critical patent/JP6471510B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、プログラムの妥当性を確認した後、プログラムを実行するよう構成されたマイクロコンピュータに関する。   The present invention relates to a microcomputer configured to execute a program after confirming the validity of the program.

従来、複数のCPU(コア)を備えたマイクロコンピュータにおいて、各CPUに同一のプログラムを実行させ、その実行結果を比較することで、CPUの異常を検出することが提案されている(例えば、特許文献1参照)。   2. Description of the Related Art Conventionally, in a microcomputer having a plurality of CPUs (cores), it has been proposed to detect an abnormality of a CPU by causing each CPU to execute the same program and comparing the execution results (for example, patents). Reference 1).

この提案のものは、2つのCPUの一方に異常が生じた際に、その旨を検出することはできるが、例えば、CPUが一つで、メモリに不正なプログラムが記憶されているような場合には、その旨を検出することはできず、CPUが不正なプログラムを実行してしまうことになる。   In this proposal, when an abnormality occurs in one of the two CPUs, that fact can be detected. For example, when there is one CPU and an illegal program is stored in the memory In this case, the fact cannot be detected, and the CPU executes an illegal program.

一方、この問題を防止するには、例えば、メモリへのプログラムの書き込み時に、そのプログラムと同一の記憶エリアに、妥当性確認用のフラグを記憶しておき、プログラムの実行時には、そのフラグが正常であるか否かを判断することが考えられる。   On the other hand, in order to prevent this problem, for example, when a program is written to the memory, a validity check flag is stored in the same storage area as the program, and when the program is executed, the flag is normal. It is conceivable to determine whether or not.

つまり、フラグが正常であれば、同一の記憶エリアに記憶されたプログラムも正常であると判断して、プログラムの実行を許可し、そうでなければ、プログラムの実行を禁止するのである。   That is, if the flag is normal, it is determined that the program stored in the same storage area is also normal, and the execution of the program is permitted. Otherwise, the execution of the program is prohibited.

また、これと同様に、セキュアなプログラム起動を実現するために、メモリに記憶されたプログラム全体を使って妥当性確認用の値を計算し、その計算値が正常値であるか否かを判断することで、プログラムの妥当性を確認することも考えられる。   Similarly, in order to realize secure program startup, a value for validation is calculated using the entire program stored in the memory, and it is determined whether or not the calculated value is a normal value. By doing so, it is possible to confirm the validity of the program.

特開2013−84219号公報JP 2013-84219 A

しかし、前者の方法では、メモリに正規のプログラムが書き込まれていないにもかかわらず、妥当性確認用のフラグが、ビット化け等によって、プログラムの正常を表すものとなっている場合には、妥当性判断を正常に実施することができず、不正なプログラムが実行されることがある。   However, with the former method, it is appropriate if the validity check flag indicates the normality of the program due to bit corruption even though no legitimate program is written in the memory. Sex determination cannot be performed normally and an illegal program may be executed.

また、後者の方法では、プログラム全体で妥当性を判断するので、不正なプログラムが実行されることはないが、妥当性判断に時間がかかることから、マイクロコンピュータの起動後(詳しくはパワーオンリセット解除後)、プログラムが実行されるまでの遅延時間が長くなるという問題がある。   In the latter method, since the validity of the entire program is judged, an illegal program is not executed, but it takes time to judge the validity. There is a problem that the delay time until the program is executed becomes longer after the release.

本発明は、こうした問題に鑑みなされたものであり、マイクロコンピュータにおいて、プログラムの妥当性を正確に判断でき、しかも、その妥当性判断によりプログラムの実行が可能となるまでの遅延時間を短くできるようにすることを目的とする。   The present invention has been made in view of these problems, and allows the microcomputer to accurately determine the validity of the program, and to reduce the delay time until the program can be executed by the validity determination. The purpose is to.

本発明のマイクロコンピュータにおいては、機能安全レベルに応じて分類された複数のプログラムが、そのプログラムの実行を禁止する保護機能を設定した状態で、メモリに記憶される。   In the microcomputer of the present invention, a plurality of programs classified according to the functional safety level are stored in the memory in a state where a protection function for prohibiting the execution of the programs is set.

そして、演算処理部がメモリに記憶されたプログラムを実行する際には、まず、機能安全レベルが低いプログラムから順に、プログラムの妥当性を判断する妥当性チェックを実施する。そして、その妥当性チェックにてプログラムに問題がないことを確認すると、そのプログラムに対する保護機能を解除して、そのプログラムの実行を開始する。   When the arithmetic processing unit executes the program stored in the memory, first, a validity check is performed to determine the validity of the program in order from the program having the lowest functional safety level. When the validity check confirms that there is no problem with the program, the protection function for the program is canceled and execution of the program is started.

このため、本発明によれば、演算処理部にて実行すべき全プログラムをメモリに一括して記憶し、妥当性チェックを実施するようにした場合に比べて、マイクロコンピュータの起動後、プログラムが実行されるまでの遅延時間を短くすることができる。   Therefore, according to the present invention, all programs to be executed by the arithmetic processing unit are collectively stored in the memory and the validity check is performed, compared with the case where the program is started after the microcomputer is started. The delay time until execution can be shortened.

また、本発明では、プログラムの妥当性チェックは、機能安全レベルが低いプログラムから順に実行される。従って、例えばプログラムの一部に異常があり、最初の妥当性チェックでは異常を確認できずに、対応するプログラムが実行されたとしても、それにより生じる不具合を最小限に抑えることができる。   In the present invention, the validity check of the program is executed in order from the program with the lowest functional safety level. Therefore, for example, even if a part of the program has an abnormality and the abnormality cannot be confirmed by the first validity check, and the corresponding program is executed, a problem caused by the abnormality can be minimized.

つまり、本発明によれば、プログラムの妥当性チェックを順に実行することで、プログラムの異常を確認し、プログラムの実行を停止したり、フェールセーフ用のサブプログラムを実行したり、することができる。   In other words, according to the present invention, it is possible to check the program abnormality by executing the program validity checks in order, stop the program execution, or execute the fail-safe subprogram. .

よって、本発明によれば、不正なプログラムの実行により安全性が低下するのを抑制しつつ、マイクロコンピュータ起動後、プログラムが実行される迄の遅延時間を短縮することができる。   Therefore, according to the present invention, it is possible to reduce the delay time from the start of the microcomputer to the execution of the program, while suppressing the decrease in safety due to the execution of an unauthorized program.

このため、本発明のマイクロコンピュータは、例えば、車両に搭載される電子制御装置等、各種制御対象を駆動制御するための制御装置に適用すれば、制御対象をより安全に制御することが可能となる。また、この場合、制御装置への電源投入後、マイクロコンピュータのパワーオンリセットが解除されて、制御対象の制御が開始されるまでの遅延時間を短くすることもできる。   For this reason, if the microcomputer of the present invention is applied to a control device for driving and controlling various control objects such as an electronic control device mounted on a vehicle, the control object can be controlled more safely. Become. In this case, the delay time from when the power supply to the control device is turned on to when the power-on reset of the microcomputer is canceled and control of the controlled object is started can be shortened.

実施形態の電子制御装置の構成を表すブロック図である。It is a block diagram showing the structure of the electronic control apparatus of embodiment. マイクロコンピュータのプログラム実行手順を表すフローチャートである。It is a flowchart showing the program execution procedure of a microcomputer. プログラム実行に伴うメモリ保護状態の変化を表すタイムチャートである。It is a time chart showing the change of the memory protection state accompanying a program execution. プログラム毎に実施される妥当性チェックと各プログラムの起動タイミングとの関係を表すタイムチャートである。It is a time chart showing the relationship between the validity check implemented for every program, and the starting timing of each program.

以下に本発明の実施形態を図面と共に説明する。
なお、本発明は、下記の実施形態によって何ら限定して解釈されない。また、下記の実施形態の構成の一部を、課題を解決できる限りにおいて省略した態様も本発明の実施形態である。また、特許請求の範囲に記載した文言のみによって特定される発明の本質を逸脱しない限度において考え得るあらゆる態様も本発明の実施形態である。また、下記の実施形態の説明で用いる符号を特許請求の範囲にも適宜使用しているが、これは本発明の理解を容易にする目的で使用しており、本発明の技術的範囲を限定する意図ではない。
Embodiments of the present invention will be described below with reference to the drawings.
The present invention is not construed as being limited in any way by the following embodiments. An aspect in which a part of the configuration of the following embodiment is omitted as long as the problem can be solved is also an embodiment of the present invention. Moreover, all the aspects which can be considered in the limit which does not deviate from the essence of the invention specified only by the wording described in the claims are embodiments of the present invention. Further, the reference numerals used in the description of the following embodiments are also used in the claims as appropriate, but this is used for the purpose of facilitating the understanding of the present invention, and limits the technical scope of the present invention. Not intended.

図1に示す本実施形態の電子制御装置(ECU)10は、例えば、車両に搭載され、エンジン、トランスミッション等の車載機器を制御対象2として制御するためのものであり、制御用の演算装置として、マイクロコンピュータ(マイコン)20を備える。   An electronic control unit (ECU) 10 according to the present embodiment shown in FIG. 1 is mounted on a vehicle, for example, for controlling an in-vehicle device such as an engine and a transmission as a control object 2, and as a control arithmetic device. And a microcomputer 20.

また、ECU10には、制御対象に設けられた各種センサ4からの検出信号を取り込むための入力回路14、及び、制御対象2に設けられたアクチュエータ6に駆動用の制御信号を出力するための出力回路16が設けられている。   The ECU 10 also has an input circuit 14 for taking in detection signals from various sensors 4 provided on the control target, and an output for outputting a drive control signal to the actuator 6 provided on the control target 2. A circuit 16 is provided.

また、ECU10には、車内LAN等のネットワーク8を介して、他の制御装置若しくは外部サーバとの間で通信を行う通信回路18や、車載バッテリ(図示せず)から電力供給を受けて内部回路駆動用の電源電圧Vccを生成する電源回路12も設けられている。   In addition, the ECU 10 receives power from a communication circuit 18 that communicates with another control device or an external server via a network 8 such as an in-vehicle LAN, or an internal circuit that receives power from an in-vehicle battery (not shown). A power supply circuit 12 that generates a power supply voltage Vcc for driving is also provided.

また、マイコン20は、CPU22、RAM24、フラッシュメモリ26、入出力部28、及び、これら各部を接続するバスライン29を備える。
そして、入力回路14、出力回路16、通信回路18は、マイコン20の入出力部28に接続され、マイコン20は、入力回路14や通信回路18から制御対象2の動作状態等の各種情報を取り込み、制御対象2の制御量を演算する。
The microcomputer 20 includes a CPU 22, a RAM 24, a flash memory 26, an input / output unit 28, and a bus line 29 that connects these units.
The input circuit 14, the output circuit 16, and the communication circuit 18 are connected to the input / output unit 28 of the microcomputer 20, and the microcomputer 20 captures various information such as the operation state of the control target 2 from the input circuit 14 and the communication circuit 18. The control amount of the control object 2 is calculated.

また、マイコン20は、その算出した制御量に応じた制御信号を出力回路16から出力させることで、制御対象2のアクチュエータ6を駆動し、制御対象を所定状態に制御する。   Further, the microcomputer 20 outputs a control signal corresponding to the calculated control amount from the output circuit 16, thereby driving the actuator 6 of the controlled object 2 and controlling the controlled object to a predetermined state.

こうした制御対象2の制御のための制御プログラム等、CPU22が実行すべきプログラムは、データを書換え可能な不揮発性メモリであるフラッシュメモリ26に、機能安全レベルに応じて複数に分類して、プログラム毎に記憶されている。   A program to be executed by the CPU 22 such as a control program for controlling the control target 2 is classified into a plurality of programs according to the functional safety level in the flash memory 26 which is a rewritable nonvolatile memory. Is remembered.

機能安全レベルは、機能性・安全性が求められる重要なプログラム程、高レベルとなるように設定されるものであり、本実施形態では、例えば、産業用の機能安全規格であるIEC61508から派生した自動車向けの機能安全規格「ISO26262」に則って設定されている。   The functional safety level is set such that an important program that requires functionality and safety is set to a higher level. In this embodiment, for example, the functional safety level is derived from IEC61508 which is an industrial functional safety standard. It is set in accordance with the functional safety standard “ISO26262” for automobiles.

この機能安全規格「ISO26262」では、車両の各機能の潜在的なリスクを、ASIL(Automotive Safety Integrity Level) で分類し、QM(品質管理:安全性との関連なし)からASIL_D(安全性との関連性が最大)に至る幅広い分類レベルが割り当てられる。なお、この機能安全レベルの高さ(大きさ)は、下記の通りである。   In this functional safety standard “ISO26262”, the potential risks of each function of the vehicle are classified by ASIL (Automotive Safety Integrity Level), and QIL (quality control: not related to safety) to ASIL_D (with safety). A wide range of classification levels ranging from the most relevant) is assigned. The height (size) of this functional safety level is as follows.

QM < ASIL_A < ASIL_B < ASIL_C < ASIL_D
そして、本実施形態では、マイコン20にて実行されるプログラムの内、制御の安全との関連性が最も低いプログラム(例えば、マイコン20の汎用レジスタの初期設定用のプログラム)が、QMとして、フラッシュメモリ26に記憶される。
QM <ASIL_A <ASIL_B <ASIL_C <ASIL_D
In the present embodiment, a program having the lowest relevance to control safety among programs executed by the microcomputer 20 (for example, a program for initial setting of general-purpose registers of the microcomputer 20) is flashed as a QM. Stored in the memory 26.

また、制御の安全との関連性があるプログラムは、要求される機能安全レベルに応じて、ASIL_A、ASIL_B、…となるように分類されて、フラッシュメモリ26に記憶される。   Further, programs related to control safety are classified into ASIL_A, ASIL_B,... According to the required functional safety level, and stored in the flash memory 26.

なお、図1において、各レベルに付与されている(*)は、プログラムデータであることを表している。
そして、以下の説明において、本実施形態では、CPU22にて実行すべきプログラムが、低レベルのものから順に、QM、ASIL_A、ASIL_Cの3つに分類されているものとする。
In FIG. 1, (*) given to each level represents program data.
In the following description, in this embodiment, it is assumed that the programs to be executed by the CPU 22 are classified into three, QM, ASIL_A, and ASIL_C, in order from the low level.

また、上記のように分類された各プログラムQM、ASIL_A、ASIL_Cには、フラッシュメモリ26に記憶されたプログラムデータが正常か否かの妥当性を判断(妥当性チェック)するための期待値M(図に示すM1、M2、M3)が設定されている。   In addition, each program QM, ASIL_A, ASIL_C classified as described above has an expected value M (a validity check) for determining whether the program data stored in the flash memory 26 is normal (validity check). M1, M2, M3) shown in the figure are set.

そして、その期待値Mは、各プログラムQM、ASIL_A、ASIL_Cのプログラムデータと共に、フラッシュメモリ26の同一の記憶エリアに記憶されている。
また、本実施形態では、各プログラムQM、ASIL_A、ASIL_Cの妥当性をより正確に判断できるようにするために、対象となるプログラムと、それよりも下位レベルのプログラムとに基づき、妥当性チェックのための判定値を算出するようになっている。
The expected value M is stored in the same storage area of the flash memory 26 together with the program data of each program QM, ASIL_A, ASIL_C.
Further, in the present embodiment, in order to be able to judge the validity of each program QM, ASIL_A, ASIL_C more accurately, the validity check is performed based on the target program and lower level programs. A determination value is calculated for this purpose.

このため、各プログラムに対し設定される期待値Mは、対応するプログラムが最下位レベル(本実施形態ではQM)でなければ、そのプログラムよりも下位レベルのプログラムの内容を含むように設定されている。   For this reason, the expected value M set for each program is set so as to include the contents of a program at a lower level than that program unless the corresponding program is the lowest level (QM in this embodiment). Yes.

なお、この期待値Mや、妥当性チェックの際の判定値は、対象となるプログラムデータから、公知のAES、MISTY等の暗号アルゴリズムを用いて算出される。
また、上記各プログラムQM、ASIL_A、ASIL_Cは、それぞれ、フラッシュメモリ26の各記憶領域に対し設定されたメモリ保護機能により、プログラムの実行が制限(保護)されている。
The expected value M and the determination value at the time of validity check are calculated from the target program data using a known encryption algorithm such as AES or MISTY.
The programs QM, ASIL_A, and ASIL_C are restricted (protected) by the memory protection function set for each storage area of the flash memory 26, respectively.

なお、このメモリ保護機能としては、メモリへの読み書きを保護する一般的なメモリ保護機能を利用してもよく、記憶領域へ実行不可マークの記載することによりプログラムの実行を禁止する保護機能(実行保護)を利用してもよい。また、例えば、オペレーティングシステムやセキュリティソフトウエアを利用したプログラムの実行保護を利用することもできる。   As this memory protection function, a general memory protection function that protects reading and writing to the memory may be used, and a protection function (execution that prohibits execution of a program by writing an inexecutable mark in the storage area) (Protection) may be used. For example, program execution protection using an operating system or security software can be used.

このため、マイコン20の起動後、CPU22は、機能安全レベルが低いプログラム(本実施形態ではQM)から順に、フラッシュメモリ26に記憶された各プログラムが正常であるか否かを判断する妥当性チェックを行う。   For this reason, after the microcomputer 20 is activated, the CPU 22 checks the validity of each program stored in the flash memory 26 in order from the program with the lowest functional safety level (QM in this embodiment). I do.

そして、CPU22は、妥当性チェックによりプログラムが正常であることを確認すると、そのプログラムに対する保護機能を解除して、そのプログラムを実行し、妥当性チェックによりプログラムが異常であると判断すると、所定のフェールセーフ処理を実行する。   When the CPU 22 confirms that the program is normal by the validity check, it releases the protection function for the program, executes the program, and determines that the program is abnormal by the validity check. Perform fail-safe processing.

以下、このように、マイコン20の起動後、CPU22がフラッシュメモリ26に記憶された上記各プログラムを実行する手順を、図2に示すフローチャートに沿って説明する。   Hereinafter, the procedure for the CPU 22 to execute each of the programs stored in the flash memory 26 after the microcomputer 20 is started will be described with reference to the flowchart shown in FIG.

なお、ECU10には、車載バッテリからECU10へ電源が投入されてから、電源回路12にて生成される電源電圧Vccが安定して、マイコン20が正常動作できるようになるまでの間、マイコン20をリセット状態に保持するパワーオンリセット回路19が設けられている。   The ECU 10 is connected to the microcomputer 20 after the power is supplied from the vehicle-mounted battery to the ECU 10 until the power supply voltage Vcc generated by the power supply circuit 12 is stabilized and the microcomputer 20 can operate normally. A power-on reset circuit 19 that holds the reset state is provided.

このため、マイコン20(詳しくはCPU22)は、パワーオンリセット回路19によるパワーオンリセットが解除されたときに、図2に示すプログラム開始判定処理を開始する(図3に示す時点t0参照)。   For this reason, the microcomputer 20 (specifically, the CPU 22) starts the program start determination process shown in FIG. 2 when the power-on reset by the power-on reset circuit 19 is released (see time t0 shown in FIG. 3).

図2に示すように、プログラム開始判定処理では、まずS110にて、各プログラムQM、ASIL_A、ASIL_Cの妥当性の判定値の演算を行う判定値演算処理を開始する。   As shown in FIG. 2, in the program start determination process, first, in S110, a determination value calculation process for calculating the determination value of the validity of each program QM, ASIL_A, ASIL_C is started.

なお、この判定値演算処理は、上述したように、プログラム毎に、下位のプログラムを含むプログラムデータから、AES、MISTY等の暗号アルゴリズムを用いて判定値を算出する処理である。   As described above, the determination value calculation process is a process of calculating a determination value for each program from program data including a lower-level program using an encryption algorithm such as AES or MISTY.

次に、S120では、S110にて開始した判定値演算処理にて、機能安全レベルが最も低いプログラムQMの判定値が算出されるのを待ち、その判定値に基づきプログラムQMが正常であるか否かを判定する、妥当性チェックを実施する。   Next, in S120, the process waits until the determination value of the program QM having the lowest functional safety level is calculated in the determination value calculation process started in S110, and whether or not the program QM is normal based on the determination value. Perform a validity check to determine whether or not

つまり、S120では、判定値演算処理にて算出されたプログラムQMの判定値と、プログラムQMと同一の記憶領域に記憶された期待値M1とを照合し、これらが一致している場合に、プログラムQMは正常であると判断する。   That is, in S120, the determination value of the program QM calculated by the determination value calculation process is collated with the expected value M1 stored in the same storage area as the program QM. QM is determined to be normal.

そして、S120にて、プログラムQMは正常である(換言すれば妥当性に問題はない)と判断されると、S130に移行して、フラッシュメモリ26におけるプログラムQMの記憶領域に対するメモリ保護機能を解除する(図3に示す時点t1参照)。   When it is determined in S120 that the program QM is normal (in other words, there is no problem with validity), the process proceeds to S130, and the memory protection function for the storage area of the program QM in the flash memory 26 is released. (Refer to time t1 shown in FIG. 3).

また、続くS140では、メモリ保護機能を解除したフラッシュメモリ26の記憶領域からプログラムQMを読み出し、プログラムQMの実行を開始する。
次に、S140にて、プログラムQMの実行を開始すると、S150に移行して、判定値演算処理にてプログラムASIL_Aの判定値が算出されるのを待ち、その判定値に基づきプログラムASIL_Aの妥当性チェックを実施する。
In subsequent S140, the program QM is read from the storage area of the flash memory 26 from which the memory protection function has been released, and execution of the program QM is started.
Next, when the execution of the program QM is started in S140, the process proceeds to S150, waits for the determination value of the program ASIL_A to be calculated in the determination value calculation process, and the validity of the program ASIL_A is based on the determination value. Check.

S150では、S120と同様に、プログラムASIL_Aの判定値と、プログラムASIL_Aと同一の記憶領域に記憶された期待値M2とを照合し、これらが一致している場合に、プログラムASIL_Aは正常であると判断する。   In S150, as in S120, the determination value of the program ASIL_A and the expected value M2 stored in the same storage area as the program ASIL_A are collated, and if they match, the program ASIL_A is normal. to decide.

そして、S150にて、プログラムASIL_Aは正常であると判断されると、S160に移行して、フラッシュメモリ26におけるプログラムASIL_Aの記憶領域に対するメモリ保護機能を解除する(図3に示す時点t2参照)。   If it is determined in S150 that the program ASIL_A is normal, the process proceeds to S160, and the memory protection function for the storage area of the program ASIL_A in the flash memory 26 is released (see time t2 shown in FIG. 3).

また、続くS170では、メモリ保護機能を解除したフラッシュメモリ26の記憶領域からプログラムASIL_Aを読み出し、プログラムASIL_Aの実行を開始する。
次に、S170にて、プログラムASIL_Aの実行を開始すると、S180に移行して、判定値演算処理にてプログラムASIL_Cの判定値が算出されるのを待ち、その判定値に基づきプログラムASIL_Cの妥当性チェックを実施する。
In subsequent S170, the program ASIL_A is read from the storage area of the flash memory 26 from which the memory protection function has been released, and execution of the program ASIL_A is started.
Next, when the execution of the program ASIL_A is started in S170, the process proceeds to S180, waits for the determination value of the program ASIL_C to be calculated in the determination value calculation process, and the validity of the program ASIL_C is based on the determination value. Check.

S180では、S120、S150と同様に、プログラムASIL_Cの判定値と、プログラムASIL_Cと同一の記憶領域に記憶された期待値M3とを照合し、これらが一致している場合に、プログラムASIL_Cは正常であると判断する。   In S180, as in S120 and S150, the determination value of the program ASIL_C is collated with the expected value M3 stored in the same storage area as the program ASIL_C. If these match, the program ASIL_C is normal. Judge that there is.

そして、S180にて、プログラムASIL_Cは正常であると判断されると、S190に移行して、フラッシュメモリ26におけるプログラムASIL_Cの記憶領域に対するメモリ保護機能を解除する(図3に示す時点t3参照)。   When it is determined in S180 that the program ASIL_C is normal, the process proceeds to S190, and the memory protection function for the storage area of the program ASIL_C in the flash memory 26 is released (see time t3 shown in FIG. 3).

また、続くS200では、メモリ保護機能を解除したフラッシュメモリ26の記憶領域からプログラムASIL_Cを読み出し、プログラムASIL_Cの実行を開始する。
そして、このようにプログラムASIL_Cの実行を開始すると、フラッシュメモリ26に記憶された全てのプログラムに対する保護機能を解除し、全プログラムの実行を開始したことになるので、当該プログラム開始判定処理を終了する。
In subsequent S200, the program ASIL_C is read from the storage area of the flash memory 26 from which the memory protection function has been released, and execution of the program ASIL_C is started.
When the execution of the program ASIL_C is started in this way, the protection function for all the programs stored in the flash memory 26 is released, and the execution of all the programs is started. Therefore, the program start determination process is ended. .

一方、S120、S150、又はS180の妥当性チェックにて、プログラムQM、ASIL_A、又はASIL_Cは正常ではないと判断された場合には、S210に移行する。   On the other hand, if it is determined in the validity check in S120, S150, or S180 that the program QM, ASIL_A, or ASIL_C is not normal, the process proceeds to S210.

そして、S210では、制御対象2を安全に制御できるように、所定のフェールセーフ処理の実行を開始し、当該プログラム開始判定処理を終了する。
以上説明したように、本実施形態のマイコン20においては、フラッシュメモリ26内に、機能安全レベルに応じて分類された複数のプログラムQM、ASIL_A、ASIL_Cが、保護機能を設定した状態で記憶されている。
In S210, execution of a predetermined fail-safe process is started so that the controlled object 2 can be safely controlled, and the program start determination process is ended.
As described above, in the microcomputer 20 of the present embodiment, the plurality of programs QM, ASIL_A, and ASIL_C classified according to the functional safety level are stored in the flash memory 26 in a state where the protection function is set. Yes.

そして、CPU22がフラッシュメモリ26内のプログラムを実行する際には、図3に示すように、機能安全レベルが低いプログラムQMから、プログラムASIL_A、ASIL_Cへと順に正常であるか否かを判定する。   When the CPU 22 executes the program in the flash memory 26, as shown in FIG. 3, it is determined whether or not the program QM having a low functional safety level is in order from the program ASIL_A to ASIL_C.

また、CPU22は、各プログラムQM、ASIL_A、ASIL_Cが正常であると判定する度に(時点t1,t2,t3)、対応するプログラムに対する保護機能を解除して、そのプログラムの実行を開始する。   Each time the CPU 22 determines that each of the programs QM, ASIL_A, and ASIL_C is normal (time points t1, t2, and t3), it releases the protection function for the corresponding program and starts executing the program.

このため、本実施形態のマイコン20によれば、実行すべきプログラムをメモリに一括して記憶し、そのプログラム全体の妥当性チェックを実施するようにした場合に比べて、マイコン20の起動後、プログラムが実行されるまでの遅延時間を短くすることができる。   For this reason, according to the microcomputer 20 of the present embodiment, the program to be executed is stored in the memory in a lump, and the validity check of the entire program is performed. The delay time until the program is executed can be shortened.

また、CPU22は、各プログラムQM、ASIL_A、ASIL_Cの妥当性チェックのための判定値を算出する際には、チェック対象となるプログラムのデータだけでなく、そのプログラムよりも機能安全レベルが低いプログラムのデータを用いる。   The CPU 22 calculates not only the data of the program to be checked but also the program whose function safety level is lower than that program when calculating the determination value for the validity check of each program QM, ASIL_A, ASIL_C. Use data.

このため、機能安全レベルが高いプログラムの妥当性チェックには、そのプログラムよりも機能安全レベルが低い全てのプログラムが利用されることになり、プログラムの妥当性チェックをより正確に実行することができる。   For this reason, the validity check of a program with a high functional safety level uses all programs with a lower functional safety level than that program, and the validity check of the program can be executed more accurately. .

一方、機能安全レベルが高いプログラムの判定値の演算時間は、そのプログラムよりも機能安全レベルが低いプログラムの判定値の演算時間よりも長くなる。これは、判定値の演算に用いるデータ量が多くなるからである。   On the other hand, the calculation time of the determination value of the program having a high functional safety level is longer than the calculation time of the determination value of a program having a lower functional safety level than that program. This is because the amount of data used for calculating the determination value increases.

しかし、各プログラムQM、ASIL_A、ASIL_Cの判定値は、マイコン20の起動直後に開始される判定値演算処理にて演算される。そして、図4に示すように、機能安全レベルが高いプログラムの判定値の演算は、そのプログラムよりも機能安全レベルが低いプログラムの実行中にも継続される。   However, the determination values of the programs QM, ASIL_A, and ASIL_C are calculated by a determination value calculation process that is started immediately after the microcomputer 20 is activated. As shown in FIG. 4, the calculation of the determination value of the program having a high functional safety level is continued even during execution of the program having a lower functional safety level than that program.

このため、機能安全レベルが高いプログラムの判定値を算出するのに、そのプログラムよりも機能安全レベルが低いプログラムのデータを利用するようにしても、マイコン20の起動後の判定値の演算時間が長くなって、プログラムの起動が遅れるのを防止できる。   For this reason, even if the data of the program having a lower functional safety level than that program is used to calculate the determination value of the program having a higher functional safety level, the calculation time of the determination value after the activation of the microcomputer 20 is increased. The program can be prevented from being delayed until the program starts.

以上、本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内にて、種々の態様をとることができる。
例えば、上記実施形態では、フラッシュメモリ26に記憶されたプログラムの妥当性チェック用の判定値を算出する際には、対象となるプログラムのデータと、そのプログラムよりも機能安全レベルが低いプログラムのデータを用いるものとして説明した。
As mentioned above, although one Embodiment of this invention was described, this invention is not limited to the said embodiment, A various aspect can be taken in the range which does not deviate from the summary of this invention.
For example, in the above embodiment, when calculating the determination value for checking the validity of the program stored in the flash memory 26, the data of the target program and the data of the program whose functional safety level is lower than that program It explained as using.

これに対し、フラッシュメモリ26に記憶された各プログラムの判定値は、対象となるプログラムのデータだけを用いて算出するようにしてもよい。なお、この場合、各プログラムの記憶領域に格納する期待値についても、対象となるプログラムのデータだけを用いて設定するようにすればよい。   On the other hand, the determination value of each program stored in the flash memory 26 may be calculated using only the data of the target program. In this case, the expected value stored in the storage area of each program may be set using only the data of the target program.

また、上記実施形態では、フラッシュメモリ26に記憶されたプログラムの妥当性チェック用の判定値は、マイコン20の起動直後に開始される判定値演算処理にて、プログラム毎に並列に算出されるものとして説明した。   In the above-described embodiment, the determination value for checking the validity of the program stored in the flash memory 26 is calculated in parallel for each program in the determination value calculation process started immediately after the microcomputer 20 is started. As explained.

これに対し、フラッシュメモリ26に記憶された各プログラムの判定値は、妥当性チェックと同様、機能安全レベルが低いプログラムから順に実行するようにしてもよい。
なおこの場合、機能安全レベルが低いプログラムのデータを含めて判定値を算出するようにすると、マイコン20の起動後、機能安全レベルが高いプログラムの妥当性チェックを実施するのに要する時間が長くなる。従って、この場合、各プログラムの判定値は、対象となるプログラムのデータだけを用いて算出するようにするとよい。
On the other hand, the determination value of each program stored in the flash memory 26 may be executed in order from the program with the lowest functional safety level, as in the validity check.
In this case, if the determination value is calculated including the data of the program having a low functional safety level, it takes a long time to execute the validity check of the program having a high functional safety level after the microcomputer 20 is started. . Therefore, in this case, the determination value of each program may be calculated using only the data of the target program.

また、上記実施形態では、マイコン20は、車両に搭載されるECU10に組み込まれ、車載機器を制御するのに用いられるものとして説明したが、本発明は、車両以外の制御対象を制御するのに用いられるものであってもよい。また、例えば、事務処理用の所定の演算処理を実行するのに用いられるものであってもよい。   Further, in the above embodiment, the microcomputer 20 is described as being incorporated in the ECU 10 mounted on the vehicle and used to control the on-vehicle device. However, the present invention controls the control target other than the vehicle. It may be used. Further, for example, it may be used to execute a predetermined calculation process for office work.

つまり、本発明は、実行プログラムを機能安全レベルに応じて複数に分類し得るマイクロコンピュータであれば、上記実施形態と同様に適用して、同様の効果を得ることができる。   That is, the present invention can be applied in the same manner as in the above-described embodiment and can obtain the same effect as long as it is a microcomputer that can classify an execution program into a plurality according to the functional safety level.

2…制御対象、4…センサ、6…アクチュエータ、8…ネットワーク、10…ECU、12…電源回路、14…入力回路、16…出力回路、18…通信回路、19…パワーオンリセット回路、20…マイコン、22…CPU、24…RAM、26…フラッシュメモリ、28…入出力部、29…バスライン。   DESCRIPTION OF SYMBOLS 2 ... Control object, 4 ... Sensor, 6 ... Actuator, 8 ... Network, 10 ... ECU, 12 ... Power supply circuit, 14 ... Input circuit, 16 ... Output circuit, 18 ... Communication circuit, 19 ... Power-on reset circuit, 20 ... Microcomputer, 22 ... CPU, 24 ... RAM, 26 ... flash memory, 28 ... input / output unit, 29 ... bus line.

Claims (3)

プログラムが、当該プログラムの実行を禁止する保護機能を設定した状態で記憶されたメモリ(26)と、
前記メモリに記憶された前記プログラムの妥当性を判断する妥当性チェックを実施し、該妥当性チェックにて前記プログラムに問題ないことを確認すると、前記保護機能を解除して前記プログラムを実行する演算処理部(22)と、
を備え、
前記メモリには、機能安全レベルに応じて分類された複数のプログラム(QM、ASIL_A、ASIL_C)が、前記保護機能を設定した状態で記憶されており、
前記演算処理部は、前記複数のプログラムの妥当性チェックを、前記機能安全レベルが低いプログラムから順に実施し(S120、S150、S180)、該妥当性チェックにて当該プログラムに問題がないことを確認する度に、当該プログラムに対する前記保護機能を解除して(S130、S160、S190)、当該プログラムの実行を開始する(S140、S170、S200)と共に、当該プログラムの実行中に、他のプログラムに対する前記妥当性チェックを実施する、ことを特徴とするマイクロコンピュータ。
A memory (26) in which a program is stored in a state where a protection function prohibiting the execution of the program is set;
An operation for executing the validity check for judging the validity of the program stored in the memory and canceling the protection function when the validity check confirms that there is no problem with the program. A processing unit (22);
With
In the memory, a plurality of programs (QM, ASIL_A, ASIL_C) classified according to the functional safety level are stored in a state where the protection function is set,
The arithmetic processing unit performs validity checks of the plurality of programs in order from the program with the lowest functional safety level (S120, S150, S180), and confirms that there is no problem with the programs in the validity check. every time that, by releasing the protection function for the program (S130, S160, S190), and starts the execution of the program (S140, S170, S200), during the execution of the program, the relative other programs A microcomputer that performs a validity check .
前記演算処理部は、
前記各プログラムの妥当性チェックを、チェック対象となるプログラムが記憶された前記メモリの記憶領域内のデータと、チェック対象となるプログラムに比べて前記機能安全レベルが低いプログラムが記憶された前記メモリの記憶領域内のデータとを基に所定演算を行い、該演算結果と前記メモリに記憶されている期待値とを照合することにより、実施することを特徴とする請求項1に記載のマイクロコンピュータ。
The arithmetic processing unit includes:
The validity check of each program is performed on the data in the storage area of the memory in which the program to be checked is stored and the memory in which the program having a lower functional safety level than the program to be checked is stored. The microcomputer according to claim 1, wherein the microcomputer is implemented by performing a predetermined calculation based on data in a storage area and collating the calculation result with an expected value stored in the memory.
前記演算処理部は、
前記プログラムの妥当性チェックの結果、前記プログラムに問題があると判断すると、前記プログラムに対する前記保護機能を保持した状態で、所定のフェールセーフ処理(S210)を実行することを特徴とする請求項1又は請求項2に記載のマイクロコンピュータ。
The arithmetic processing unit includes:
The predetermined fail-safe process (S210) is executed in a state in which the protection function for the program is retained when it is determined that there is a problem with the program as a result of the validity check of the program. Or the microcomputer of Claim 2 .
JP2015009548A 2015-01-21 2015-01-21 Microcomputer Active JP6471510B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015009548A JP6471510B2 (en) 2015-01-21 2015-01-21 Microcomputer
DE102016200413.1A DE102016200413A1 (en) 2015-01-21 2016-01-15 MICROCOMPUTER

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015009548A JP6471510B2 (en) 2015-01-21 2015-01-21 Microcomputer

Publications (2)

Publication Number Publication Date
JP2016134082A JP2016134082A (en) 2016-07-25
JP6471510B2 true JP6471510B2 (en) 2019-02-20

Family

ID=56293207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015009548A Active JP6471510B2 (en) 2015-01-21 2015-01-21 Microcomputer

Country Status (2)

Country Link
JP (1) JP6471510B2 (en)
DE (1) DE102016200413A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3500940A4 (en) * 2016-08-22 2020-03-18 Peloton Technology, Inc. Automated connected vehicle control system architecture
JP2019160107A (en) * 2018-03-16 2019-09-19 日立オートモティブシステムズ株式会社 Transmission controller
DE102021125672A1 (en) 2021-10-04 2023-04-06 Bayerische Motoren Werke Aktiengesellschaft Processor system for a vehicle and method for monitoring a process state after a remote software update

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242957A (en) * 1993-02-16 1994-09-02 Fujitsu Ltd Program execution controller
JPH06348501A (en) * 1993-06-14 1994-12-22 Tokyo Electric Co Ltd Program downloading method
US7802110B2 (en) * 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
JP2010079579A (en) * 2008-09-25 2010-04-08 Toshiba Corp Resume method and information processing apparatus
JP5699896B2 (en) 2011-10-12 2015-04-15 トヨタ自動車株式会社 Information processing apparatus and abnormality determination method
JP2013143095A (en) * 2012-01-12 2013-07-22 Toyota Motor Corp Electronic control device, and memory check method
JP2013218427A (en) * 2012-04-05 2013-10-24 Of Networks:Kk Information processing apparatus and method

Also Published As

Publication number Publication date
DE102016200413A1 (en) 2016-07-21
JP2016134082A (en) 2016-07-25

Similar Documents

Publication Publication Date Title
JP5867495B2 (en) Electronic control unit
CN107949847B (en) Electronic control unit for vehicle
JP6471510B2 (en) Microcomputer
JP6659180B2 (en) Control device and control method
US9477542B2 (en) Electronic control unit
JP5187387B2 (en) Vehicle data storage device, controller, and vehicle data recording system
JP5835160B2 (en) Electronic control unit
JP6512065B2 (en) Electronic control unit
US20190355188A1 (en) Method for authenticating a diagnostic trouble code generated by a motor vehicle system of a vehicle
JP5942778B2 (en) Information processing device
JP7062927B2 (en) Vehicle electronics
JP6668226B2 (en) Electronic control unit
JP2012174198A (en) Abnormality detection device and abnormality detection program
JP2016126692A (en) Electronic control device
JP6466269B2 (en) Electronic control device and stack area usage monitoring method
CN108073489B (en) Method for ensuring operation of calculator
JP2007283788A (en) Vehicular electronic control device
JP6771272B2 (en) In-vehicle electronic control device and stack usage
JP6597489B2 (en) Vehicle control device
US12108255B2 (en) Control system
JP7200883B2 (en) electronic controller
JP2006146583A (en) Electronic controller and identification code generation method thereof
JP6699591B2 (en) Engine controller
JP2023088706A (en) Electronic control device
KR101967755B1 (en) Electronic Control Unit booting system preventing for using a copied flash

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180522

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190107

R151 Written notification of patent or utility model registration

Ref document number: 6471510

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250