JP4864056B2 - Control device - Google Patents

Control device Download PDF

Info

Publication number
JP4864056B2
JP4864056B2 JP2008226764A JP2008226764A JP4864056B2 JP 4864056 B2 JP4864056 B2 JP 4864056B2 JP 2008226764 A JP2008226764 A JP 2008226764A JP 2008226764 A JP2008226764 A JP 2008226764A JP 4864056 B2 JP4864056 B2 JP 4864056B2
Authority
JP
Japan
Prior art keywords
program
control device
initialization
microcontroller
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.)
Expired - Fee Related
Application number
JP2008226764A
Other languages
Japanese (ja)
Other versions
JP2010061419A (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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems 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 Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2008226764A priority Critical patent/JP4864056B2/en
Publication of JP2010061419A publication Critical patent/JP2010061419A/en
Application granted granted Critical
Publication of JP4864056B2 publication Critical patent/JP4864056B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Microcomputers (AREA)
  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To avoid a failure in system boot even when an abnormality occurs in initialization processing during a system reset. <P>SOLUTION: A controller with a plurality of function achieving means for achieving the same function includes a switching means for selecting, by switching, the function achieving means, wherein the switching means selects through a switching operation the function achieving means to be used from among the plurality of function achieving means during booting and during rebooting after occurrence of an abnormality, and selects a different function achieving means during next booting if any abnormality in the selected function achieving means is found. The function achieving means may be a program executed by a microcontroller provided in the controller, or a core of a CPU provided in the microcontroller. <P>COPYRIGHT: (C)2010,JPO&amp;INPIT

Description

本発明は、アクチュエータを制御するシステムの制御装置に係わり、特に、マイクロコントローラを内蔵する制御装置に関する。   The present invention relates to a control device of a system that controls an actuator, and more particularly, to a control device incorporating a microcontroller.

自動車のエンジン制御装置においては、クランク角センサ信号などの入力を基に、燃料の量や噴射タイミングを制御する。エンジン制御には、高機能化にともない、多くの情報を基にした高度な制御が要求される。近年、エンジン制御装置は、マイクロコントローラ(以下、「マイコン」と称する)が内蔵され、あらかじめ処理の手順が記されたプログラムがROM(読み出し専用メモリ)に記憶されている。さらに、マイコンが複数個搭載されたり、マイコンに内蔵されるCPU(中央処理装置)コアが複数になったりすると、処理を並列に実行できるようになり、性能向上や冗長性を活かした高信頼機能が実現できるようになる。   In an automobile engine control apparatus, the amount of fuel and the injection timing are controlled based on an input such as a crank angle sensor signal. Engine control requires advanced control based on a large amount of information as it becomes more sophisticated. In recent years, an engine control device has a built-in microcontroller (hereinafter referred to as “microcomputer”), and a program in which processing procedures are written in advance is stored in a ROM (read only memory). In addition, when multiple microcomputers are installed, or when there are multiple CPU (central processing unit) cores built into the microcomputer, processing can be executed in parallel, and high-reliability functions that take advantage of improved performance and redundancy Can be realized.

システムの高信頼性機能を実現する技術として、特許文献1には、メモリを二重化する技術が記載されている。この技術は、エラー検出回路を備えるシステムにおいて、メモリとシステムバスを二重化し、メモリから読み出したデータにエラーがないことをエラー検出回路でチェックするものである。   As a technique for realizing a high-reliability function of a system, Patent Document 1 describes a technique for duplicating a memory. In this technique, a memory and a system bus are duplicated in a system including an error detection circuit, and the error detection circuit checks that there is no error in data read from the memory.

特開平8−16484号公報JP-A-8-16484

マイコンを搭載した制御装置は、ROMに記憶したプログラムに従って処理を実現する。システム起動時には、制御装置は、あらかじめ決められたプログラム番地から処理を開始する。このシステム起動時に実行するプログラムが格納されているROM内の領域に異常が発生した場合は、システムが動作しなくなり、システムダウンとなる。また、CPUコアを複数搭載したマイコンにおいても、1つのCPUコアが故障した場合、それがシステム起動時に使用されるものであれば、この場合もシステムが動作しなくなり、システムダウンとなる。   A control device equipped with a microcomputer realizes processing according to a program stored in a ROM. When the system is activated, the control device starts processing from a predetermined program address. If an abnormality occurs in an area in the ROM that stores a program to be executed when the system is started, the system stops operating and the system goes down. Further, even in a microcomputer equipped with a plurality of CPU cores, if one CPU core fails, if it is used at system startup, the system will not operate in this case, and the system will be down.

特許文献1に記載の技術は、CPUコアの故障時については言及がなく、また、エラー検出回路を備え、メモリだけでなくシステムバスやシステムバス制御装置も二重化するので、システムの規模が大きくなり、コストの上昇や運用・管理の煩雑さが予想される。   The technology described in Patent Document 1 does not mention when the CPU core is faulty, and has an error detection circuit, and not only the memory but also the system bus and system bus control device are duplicated, so the scale of the system increases. Increase in cost and complexity of operation and management are expected.

本発明は、ROMなどのメモリやCPUコアをはじめとするハードウェアに異常が発生した場合でも、異常を回避しシステムダウンを防止することのできる制御装置を、簡易な構成で提供することを目的としている。   An object of the present invention is to provide a control device capable of avoiding an abnormality and preventing a system down even if an abnormality occurs in hardware such as a memory such as a ROM or a CPU core, with a simple configuration. It is said.

本発明の制御装置は、上記課題を解決するために、次のような特徴を有する。   In order to solve the above problems, the control device of the present invention has the following characteristics.

同じ機能を実現する複数の機能実現手段を有する制御装置であって、前記機能実現手段を切替により選択する切替手段を有し、起動時および異常発生後の再起動時に、前記切替手段は、複数の前記機能実現手段の中から使用対象となるべき機能実現手段を切替動作によって選択し、機能実現手段に異常があった場合、次回の起動時には異なる機能実現手段を選択することを特徴とする。   A control device having a plurality of function realization means for realizing the same function, comprising a switching means for selecting the function realization means by switching, and at the time of starting and restarting after occurrence of an abnormality, The function realization means to be used is selected from among the function realization means by switching operation, and when there is an abnormality in the function realization means, a different function realization means is selected at the next activation.

また、同じ機能を実現する複数の機能実現手段を有する制御装置において、前記制御装置の起動時および再起動時に所定の割当て手順に従って、使用対象となる機能実現手段を複数の前記機能実現手段の中から切替により選択する切替手段を有し、この切替手段は、選択された機能実現手段に異常が生じた場合には、異常が生じた機能実現手段を前記割当て手順から除外して割当て手順を再編し、以後の再起動時の機能実現手段を切替により選択することを特徴とする。   Further, in the control apparatus having a plurality of function realizing means for realizing the same function, the function realizing means to be used is selected from among the plurality of function realizing means according to a predetermined allocation procedure at the time of starting and restarting the control apparatus. Switching means for selecting by switching, and when the selected function realizing means has an abnormality, the switching means excludes the function realizing means in which the abnormality has occurred from the assignment procedure and reorganizes the assignment procedure. The function realizing means at the time of subsequent restart is selected by switching.

上記の機能実現手段とは、制御装置が備えるマイクロコントローラが実行するプログラム、またはこのマイクロコントローラが備えるCPUのコアである。   The function realization means is a program executed by a microcontroller included in the control device or a CPU core included in the microcontroller.

本発明によれば、マイコンを搭載した制御装置において、同じ機能を実現するハードウェアを複数備え、マイコンの起動時やリセット(再起動)時毎にこれらのハードウェアを切り替えて動作させることで、システムダウンを回避することができる。   According to the present invention, in a control device equipped with a microcomputer, it is provided with a plurality of hardware that realizes the same function, and by switching and operating these hardware each time the microcomputer is started or reset (restarted), System down can be avoided.

本発明は、マイコンの起動時やリセット(再起動)時毎にハードウェアを所定の割当て手順、例えばローテーションに従って切り替えることを特徴とするものであり、以下の実施例では、切り替えるハードウェアの例として、メモリの番地、CPUコア、およびメモリの番地とCPUコアの両者の場合について説明する。マイコンは、システムの稼動時にリセットされるものとする。なお、本実施例では、電源投入後のマイコンの起動もリセットと称し、CPUコアのことを単に「CPU」と称する。   The present invention is characterized in that the hardware is switched in accordance with a predetermined allocation procedure, for example, rotation every time the microcomputer is started or reset (restarted). In the following embodiments, as an example of hardware to be switched, The case of the memory address, the CPU core, and both the memory address and the CPU core will be described. The microcomputer is reset when the system is in operation. In this embodiment, the activation of the microcomputer after the power is turned on is also referred to as reset, and the CPU core is simply referred to as “CPU”.

実施例1は、同じ初期化処理プログラムをメモリ内に2つ持つことにより、初期化処理プログラムを格納したメモリ領域に異常が発生した場合でもシステムダウンを回避できることを示す例である。本実施例では、マイコンのリセット毎にプログラムの開始番地を切り替えることにより、メモリ内の初期化処理プログラムを切り替える。   The first embodiment is an example showing that by having two identical initialization processing programs in a memory, a system down can be avoided even if an abnormality occurs in a memory area storing the initialization processing program. In this embodiment, the initialization processing program in the memory is switched by switching the start address of the program every time the microcomputer is reset.

図1は、本発明の一実施形態を示す制御装置の構成図である。制御装置1は、1つまたは複数のセンサ3および1つまたは複数のアクチュエータ2に接続され、また、ネットワーク4を介して他の制御装置5と通信し、システムを制御する。さらに、制御装置1は、マイコンA11、マイコンB12、および1つまたは複数の周辺IC(集積回路)13を搭載する。   FIG. 1 is a configuration diagram of a control device showing an embodiment of the present invention. The control device 1 is connected to one or more sensors 3 and one or more actuators 2 and communicates with other control devices 5 via the network 4 to control the system. Further, the control device 1 includes a microcomputer A11, a microcomputer B12, and one or more peripheral ICs (integrated circuits) 13.

マイコンA11は、マイコンB12、および周辺IC13と接続されている。また、マイコンA11は、制御装置1が制御を実行するのに必要なプログラムやデータが格納されたFlashROM(フラッシュメモリ)112、RAM(ランダムアクセスメモリ)113、プログラム起動制御部111、DMA(ダイレクトメモリアクセス)コントローラ115、例外発生識別子格納部117、CPU(中央処理装置)114、および周辺モジュール116から構成される。CPU114は、起動時にプログラム起動制御部111に格納された起動識別子に従い、FlashROM112に格納されたプログラムの処理を指定番地から開始し、制御装置1の制御を実施する。   The microcomputer A11 is connected to the microcomputer B12 and the peripheral IC 13. Further, the microcomputer A11 includes a flash ROM (flash memory) 112, a RAM (random access memory) 113, a program activation control unit 111, a DMA (direct memory) in which programs and data necessary for the control device 1 to execute control are stored. (Access) controller 115, exception occurrence identifier storage unit 117, CPU (central processing unit) 114, and peripheral module 116. The CPU 114 starts processing of the program stored in the flash ROM 112 from a specified address according to the activation identifier stored in the program activation control unit 111 at the time of activation, and performs control of the control device 1.

マイコンB12は、マイコンA11と同様の構成でもよいし、他の任意の構成でもよい。以下では、マイコンA11に着目し、マイコンA11での処理について説明する。   The microcomputer B12 may have the same configuration as the microcomputer A11, or may have any other configuration. In the following, focusing on the microcomputer A11, processing in the microcomputer A11 will be described.

図2は、プログラム起動制御部111の構成図である。プログラム起動制御部111は、起動識別子格納部1111と起動テーブル1112とから構成される。   FIG. 2 is a configuration diagram of the program activation control unit 111. The program activation control unit 111 includes an activation identifier storage unit 1111 and an activation table 1112.

起動識別子格納部1111は、プログラム起動を行う起動識別子が格納されている。電源投入時は、起動識別子は不定値となる。   The activation identifier storage unit 1111 stores an activation identifier for starting a program. When the power is turned on, the activation identifier is an indefinite value.

起動テーブル1112は、起動識別子、開始番地、および開始許可が記録されているテーブルであり、先に述べた所定のローテーション(割当て手順)が記録されている。プログラムは、起動識別子に従い、指定されている開始番地から実行を開始する。開始番地とは、プログラムを開始するメモリの番地であり、開始許可に従い、該当する開始番地からプログラムが開始される。   The activation table 1112 is a table in which an activation identifier, a start address, and a start permission are recorded, and the predetermined rotation (allocation procedure) described above is recorded. The program starts executing from the designated start address according to the activation identifier. The start address is the address of the memory where the program is started, and the program is started from the corresponding start address in accordance with the start permission.

開始許可は、該当する開始番地からプログラムを開始することの許可/禁止を設定するためのものであり、プログラムは、「許可」に設定された開始番地から開始されるが、「禁止」に設定された開始番地からは開始されない。すなわち、「禁止」に設定された開始番地は、ローテーションから除外される。ローテーションは、このような開始許可の許可/禁止の設定により再編される。なお、開始許可が「許可」に設定されている起動識別子が1つだけの場合も、ローテーションに含める。   The start permission is for setting permission / prohibition to start the program from the corresponding start address, and the program is started from the start address set to “permitted”, but set to “prohibited”. It does not start from the specified start address. That is, the start address set to “prohibited” is excluded from the rotation. The rotation is reorganized by such setting of permission / prohibition of start permission. In addition, the case where only one activation identifier whose start permission is set to “permitted” is included in the rotation.

図2の起動テーブル1112の例では、起動識別子が起動_0の場合は、開始番地が0x0000で開始許可が「許可」であるので、プログラムは0x0000番地から開始する。起動識別子が起動_1の場合は、開始番地が0x2000で開始許可が「許可」であるので、プログラムは0x2000番地から開始する。   In the example of the activation table 1112 in FIG. 2, when the activation identifier is activation_0, the start address is 0x0000 and the start permission is “permitted”, so the program starts from the address 0x0000. When the activation identifier is activation_1, since the start address is 0x2000 and the start permission is “permitted”, the program starts from the address 0x2000.

開始許可が「禁止」、すなわち開始が禁止されている場合には、該当する起動識別子は選択されず、起動識別子格納部1111に格納されない。例えば、起動_1の開始許可が「禁止」に設定された場合、0x2000番地からプログラムがスタートするケースはない。プログラムは、開始許可が「許可」と設定されている開始番地だけから開始する。図2の例で起動_1の開始許可が「禁止」に設定された場合は、常に起動_0の0x0000番地からプログラムがスタートすることになる。開始許可が「許可」と設定されている開始番地が複数ある場合は、プログラムの開始番地は、起動テーブル1112に記録されている順に切り替わる。   When the start permission is “prohibited”, that is, when the start is prohibited, the corresponding activation identifier is not selected and stored in the activation identifier storage unit 1111. For example, when the start permission of the activation_1 is set to “prohibited”, there is no case where the program starts from address 0x2000. The program starts only from the start address where the start permission is set to “permitted”. In the example of FIG. 2, when the start permission of start — 1 is set to “prohibited”, the program always starts from address 0x0000 of start — 0. If there are a plurality of start addresses for which the start permission is set to “permitted”, the start addresses of the programs are switched in the order recorded in the activation table 1112.

図3は、マイコンA11のリセット時からプログラム開始までの処理フローを示した図である。図2のプログラム起動制御部111の構成図を用いて、本処理フローを説明する。なお、電源投入後の起動時の処理は、起動識別子の値が不定であること以外は、リセット時の処理と同様である。以下では、電源投入後の起動時の処理も、リセット時の処理に含めて説明する。   FIG. 3 is a diagram showing a processing flow from the reset of the microcomputer A11 to the start of the program. This processing flow will be described with reference to the configuration diagram of the program activation control unit 111 in FIG. It should be noted that the processing at startup after power-on is the same as the processing at reset except that the value of the startup identifier is indefinite. In the following description, processing at startup after power-on is included in processing at reset.

まず処理191で、マイコンA11がリセット(電源投入時は起動)される。   First, in process 191, the microcomputer A11 is reset (activated when the power is turned on).

処理192では、起動識別子格納部1111に格納してある起動識別子が有効な値であるか、すなわち不定値でないかを判別する。これは、電源投入時には、起動識別子が不定値になっているためである。なお、起動識別子格納部1111は、システム電源が保持されている場合は、リセットが発生しても初期化されないため、前回のリセット時にセットされた値が保持されている。   In process 192, it is determined whether the activation identifier stored in the activation identifier storage unit 1111 is a valid value, that is, an indefinite value. This is because the activation identifier is an indefinite value when the power is turned on. Note that the activation identifier storage unit 1111 is not initialized when the system power is held, even if a reset occurs, and thus the value set at the previous reset is held.

処理192で判定がYES、すなわち起動識別子が有効な値である場合、処理193を実施する。処理193は、起動テーブル1112に記録されている起動識別子のうち、開始許可が「許可」と設定されている起動識別子であって、現在、起動識別子格納部1111に保存してある起動識別子の次に記録されているものを起動識別子格納部1111に格納する。例えば図2の例では、現在の起動識別子が起動_0であれば、起動_1を格納する。このとき、現在の起動識別子は上書きされ、新たに格納された起動識別子である起動_1だけが起動識別子格納部1111に保存される。もし、現在の起動識別子が起動テーブル1112の最後に記録されている起動識別子であれば、最上位に記録されている起動識別子に戻って、開始許可が「許可」と設定されている起動識別子を格納する。   If the determination in process 192 is YES, that is, if the activation identifier is a valid value, process 193 is performed. The process 193 is an activation identifier whose start permission is set to “permitted” among the activation identifiers recorded in the activation table 1112, and is next to the activation identifier currently stored in the activation identifier storage unit 1111. Are stored in the activation identifier storage unit 1111. For example, in the example of FIG. 2, if the current activation identifier is activation_0, activation_1 is stored. At this time, the current activation identifier is overwritten, and only activation_1, which is the newly stored activation identifier, is stored in the activation identifier storage unit 1111. If the current activation identifier is the activation identifier recorded at the end of the activation table 1112, the activation identifier recorded at the top is returned to the activation identifier whose start permission is set to “permitted”. Store.

処理192で判定がNO、すなわち起動識別子が不定値である場合は、処理194を実施する。処理194では、起動テーブル1112の最上位に記録されている起動識別子である起動_0を、デフォルトの起動識別子として保存する。もし、最上位に記録されている起動識別子の開始許可が「禁止」である場合は、その起動識別子を飛ばし、開始許可が「許可」である次の起動識別子を保存する。   If the determination in process 192 is NO, that is, if the activation identifier is an indefinite value, process 194 is performed. In the process 194, the activation_0 that is the activation identifier recorded at the top of the activation table 1112 is stored as a default activation identifier. If the start permission of the activation identifier recorded at the highest level is “prohibited”, the activation identifier is skipped, and the next activation identifier whose start permission is “permitted” is stored.

以上のように、本処理フローでは、開始許可が「禁止」であるものを除いて、起動識別子を起動識別子格納部1111に順に保存する。   As described above, in this processing flow, the activation identifier is stored in the activation identifier storage unit 1111 in order, except for the case where the start permission is “prohibited”.

処理193または処理194が終了したら、処理195に進む。処理195では、起動識別子格納部1111に格納してある起動識別子に対応する開始番地にジャンプして、プログラムの処理を開始する。例えば、起動_1が起動識別子格納部1111に保存されている場合、起動テーブル1112に従い0x2000番地から処理を開始する。   When the process 193 or the process 194 is completed, the process proceeds to the process 195. In the process 195, the program jumps to the start address corresponding to the activation identifier stored in the activation identifier storage unit 1111 and starts the processing of the program. For example, when activation_1 is stored in the activation identifier storage unit 1111, processing is started from address 0x2000 according to the activation table 1112.

このようにして、マイコンA11は、リセット毎にプログラムの開始番地を切り替えることができる。   In this way, the microcomputer A11 can switch the start address of the program every reset.

図4は、マイコンのリセット毎に起動識別子が切り替わる様子を示したチャート図である。図2と図3を用いて、本チャート図を説明する。   FIG. 4 is a chart showing how the activation identifier is switched every time the microcomputer is reset. The chart will be described with reference to FIGS. 2 and 3.

図4の上図は、通常ケースであり、システムが正常に稼動している場合の例である。   The upper diagram of FIG. 4 is a normal case, and is an example when the system is operating normally.

時刻t1801で電源が投入(パワーON)されシステムが稼動(システムON)されると、マイコンA11のリセットが発生し、図3の処理フローに従ってプログラム開始処理が実施される。このとき、起動識別子格納部1111には、不定値が入っているため、起動_0が格納され、プログラムは、起動_0に対応する開始番地0x0000から開始される。   When the power is turned on at time t1801 (power is turned on) and the system is operated (system is turned on), the microcomputer A11 is reset, and the program start processing is performed according to the processing flow of FIG. At this time, since the activation identifier storage unit 1111 contains an indefinite value, activation_0 is stored, and the program is started from the start address 0x0000 corresponding to the activation_0.

時刻t1802でシステムが停止(システムOFF)した後、時刻t1803でシステムがONになると、マイコンA11のリセットが発生し、図3の処理フローに従ってプログラム開始処理が実施される。このときは、起動識別子格納部1111に起動_0が既に格納されているので、次の起動識別子である起動_1が格納され、プログラムは、起動_1に対応する開始番地0x2000から開始される。   After the system is stopped (system OFF) at time t1802, when the system is turned on at time t1803, the microcomputer A11 is reset, and the program start processing is performed according to the processing flow of FIG. At this time, since activation_0 is already stored in the activation identifier storage unit 1111, activation_1 as the next activation identifier is stored, and the program is started from the start address 0x2000 corresponding to the activation_1.

以後、システムがOFFした後、システムがONになりマイコンA11のリセットが発生する度に、起動テーブル1112に記録されている順に従って、起動識別子が起動識別子格納部1111に格納される。プログラムの開始番地も、起動テーブル1112に記録されている順に従って切り替わる。図2の例では、起動_0と起動_1が順に切り替わって起動識別子格納部1111に格納される。従って、プログラムは、開始番地0x0000と0x2000が交互に切り替わって開始される。   Thereafter, after the system is turned off, each time the system is turned on and the microcomputer A11 is reset, activation identifiers are stored in the activation identifier storage unit 1111 in the order recorded in the activation table 1112. The start address of the program is also switched according to the order recorded in the activation table 1112. In the example of FIG. 2, activation_0 and activation_1 are sequentially switched and stored in the activation identifier storage unit 1111. Therefore, the program is started by alternately switching the start addresses 0x0000 and 0x2000.

図4の下図は、異常ケースの例であり、FlashROM112の0x0000番地またはその付近の番地に異常が発生したため、起動_0による動作が異常となるケースである。   The lower diagram of FIG. 4 is an example of an abnormal case. In this case, an abnormality occurs at the address 0x0000 of the FlashROM 112 or an address in the vicinity thereof, and the operation due to the start_0 becomes abnormal.

時刻t1811にパワーONとシステムONになると、通常ケースと同様に、マイコンA11のリセットが発生し、起動_0が選択される。プログラムは、起動_0に対応する開始番地0x0000から開始される。   When the power is turned on and the system is turned on at time t1811, the microcomputer A11 is reset and the activation_0 is selected as in the normal case. The program is started from the start address 0x0000 corresponding to the start_0.

このとき、0x0000番地またはその付近のメモリが異常なため、時刻t1812でプログラムが誤動作する。マイコンA11は、この誤動作による例外を処理するとリセットが発生する。このリセットにより、次に起動_1が割り当てられる。   At this time, since the memory at address 0x0000 or in the vicinity thereof is abnormal, the program malfunctions at time t1812. When the microcomputer A11 processes an exception due to this malfunction, a reset occurs. This reset then assigns activation_1.

時刻t1813でシステムがOFFとなった後、時刻t1814でシステムがONになると、マイコンA11のリセットが発生する。このリセットでは、再度、起動_0が割り当てられるが、時刻t1811のシステムON時と同様にプログラムの誤動作が起こり、例外処理により時刻t1815でリセットが発生する。   When the system is turned on at time t1814 after the system is turned off at time t1813, the microcomputer A11 is reset. In this reset, activation_0 is assigned again, but a malfunction of the program occurs in the same way as when the system is turned on at time t1811, and reset occurs at time t1815 due to exception processing.

このときのリセットで、起動_0でプログラム開始時の誤動作によるリセットが2回連続で発生したため、例外処理により、起動_0での起動は異常が発生するとマイコンA11が判断し、起動テーブル1112の起動_0の開始を「禁止」と設定する(図4下図内の起動テーブル1112参照)。これ以降のリセット時は、起動_0によりプログラムが開始されることはなく、起動_0以外の起動識別子が選択される。図4の起動テーブル1112の例では、起動_1のみが繰り返し選択される(図4の時刻t1817)。これにより、メモリ異常によるプログラムの誤動作発生を回避するとともに、システムダウンも回避することができる。例外処理の詳細については、後述する。   At this time, since the reset due to the malfunction at the start of the program occurred twice at the start_0, the microcomputer A11 determines that the start at the start_0 is abnormal by the exception processing, and the start_0 of the start table 1112 Is set to “prohibited” (see the activation table 1112 in the lower diagram of FIG. 4). At the subsequent reset, the program is not started by the activation_0, and an activation identifier other than the activation_0 is selected. In the example of the activation table 1112 in FIG. 4, only activation_1 is repeatedly selected (time t1817 in FIG. 4). Thereby, it is possible to avoid the malfunction of the program due to the memory abnormality and to avoid the system down. Details of the exception processing will be described later.

なお、上記の例では、プログラムの誤動作によるリセットが2回連続で発生したときに異常が発生したと判断したが、連続でなくても累積で2回リセットが発生したときに、異常が発生したと判断するようにしてもよい。また、異常が発生したと判断するリセットの回数は、2回に限るものではなく、例えば3回以上でもよい。この回数は、あらかじめ規定しておくことができる。   In the above example, it was determined that an abnormality occurred when resets due to program malfunctions occurred twice in succession, but abnormalities occurred when resets occurred twice cumulatively even if not consecutively. You may make it judge. Further, the number of resets for determining that an abnormality has occurred is not limited to two, and may be three or more, for example. This number of times can be defined in advance.

図5は、FlashROM112に格納されているプログラムのメモリ上の配置図である。FlashROM112内の0x0000番地と0x2000番地には、それぞれ初期化処理(#0)1121と初期化処理(#1)1122とが配置されている。初期化処理1121と1122の内容は同じである。また、0x3000番地には、メイン処理1123が配置されている。   FIG. 5 is a layout diagram of programs stored in the flash ROM 112 on the memory. An initialization process (# 0) 1121 and an initialization process (# 1) 1122 are arranged at addresses 0x0000 and 0x2000 in the FlashROM 112, respectively. The contents of the initialization processes 1121 and 1122 are the same. A main process 1123 is arranged at address 0x3000.

初期化処理1121と1122は、システムを起動するとともにシステムダウンを避けるための必要最低限の処理であり、システムに応じて異なる。図2の起動テーブル1112に示したように、起動識別子が起動_0の場合は0x0000番地に格納されている初期化処理1121が、起動_1の場合は0x2000番地に格納されている初期化処理1122が、それぞれ実行される。プログラムが開始され、初期化処理1121または初期化処理1122が終了すると、メイン処理1123に移り、システムのメイン処理が実行される。   The initialization processes 1121 and 1122 are the minimum necessary processes for starting the system and avoiding the system down, and differ depending on the system. As shown in the activation table 1112 of FIG. 2, when the activation identifier is activation_0, the initialization process 1121 stored at address 0x0000 is performed. When the activation identifier is activation_1, the initialization process 1122 stored at address 0x2000 is performed. , Respectively. When the program is started and the initialization process 1121 or the initialization process 1122 ends, the process proceeds to the main process 1123 to execute the main process of the system.

なお、図4の異常ケースに示したように、起動_0に異常が発生した場合は、時刻t1812からt1813まで、および時刻t1815以降は、初期化処理(#1)1122が実施された後に、メイン処理1123が実施される。時刻t1811と時刻t1814のリセット時では、初期化処理(#0)1121で異常が発生するため、メイン処理1123は実施されない。   As shown in the abnormal case of FIG. 4, when an abnormality occurs in the start_0, the initialization process (# 1) 1122 is performed after the initialization process (# 1) 1122 from time t1812 to t1813 and after time t1815. Processing 1123 is performed. At the time of resetting at time t1811 and time t1814, an abnormality occurs in the initialization process (# 0) 1121, and thus the main process 1123 is not performed.

このように、起動時に実施する初期化処理のプログラムを格納したメモリ領域に異常が発生しても、メモリ内に初期化処理を複数備えてそれらを切り替えて実施することで、メモリの異常を回避し、プログラムの誤動作やシステムダウンを避けることができる。   In this way, even if an error occurs in the memory area that stores the initialization process program that is executed at startup, a memory error can be avoided by providing multiple initialization processes in the memory and switching between them. In addition, malfunction of the program and system down can be avoided.

異常発生時の例外処理を、図6に示した異常発生時の例外処理フロー図を用いて説明する。   Exception processing when an abnormality occurs will be described with reference to the exception processing flowchart when an abnormality occurs shown in FIG.

異常により例外が発生した後、処理171では、起動識別子格納部1111に格納してある起動識別子を、例外発生識別子格納部117(図1参照)に保存する。   After an exception has occurred due to an abnormality, in a process 171, the activation identifier stored in the activation identifier storage unit 1111 is stored in the exception occurrence identifier storage unit 117 (see FIG. 1).

処理172で、例外処理ハンドラを起動し、例外を処理してプログラムを続行する。   In process 172, an exception handling handler is activated to handle the exception and continue the program.

処理173では、例外発生識別子格納部117に保存された起動識別子を読み出し、過去に同じ起動識別子で例外が発生していないか、発生している場合は発生の連続回数または累積回数を調べる。例外発生の連続回数または蓄積回数が規定以上の場合は、その起動識別子を異常と判定する。図4の異常ケースの例では、起動_0が2回連続して例外を発生しており、その時点で起動_0を異常と判定している。   In the process 173, the activation identifier stored in the exception occurrence identifier storage unit 117 is read, and if an exception has not occurred with the same activation identifier in the past, if it has occurred, the number of consecutive occurrences or the cumulative number is checked. If the number of consecutive exception occurrences or the number of accumulations exceeds a specified value, the activation identifier is determined to be abnormal. In the example of the abnormal case in FIG. 4, activation_0 has generated an exception twice in succession, and at that time, activation_0 is determined to be abnormal.

処理173で異常と判定した場合は、処理174に進み、起動テーブル1112の該当起動識別子の開始許可を「禁止」に設定する。これにより、起動_0によるプログラム開始を回避することができる。   If it is determined in step 173 that there is an abnormality, the process proceeds to step 174, where the start permission of the corresponding activation identifier in the activation table 1112 is set to “prohibited”. Thereby, it is possible to avoid the start of the program due to the start_0.

処理173または処理174が終了したら、処理175に進んでマイコンのリセットを発生させ、図4のチャート図に示したように処理を続行する。   When the process 173 or the process 174 is completed, the process proceeds to a process 175 to reset the microcomputer, and the process is continued as shown in the chart of FIG.

実施例1では、1つのCPUを搭載し、同じ初期化処理プログラムを2つ持つことにより、初期化処理に異常が発生した場合でもシステムダウンに至らないことを示した。実施例2では、複数のCPUコア(CPU)を搭載するマイコンにおいて本発明を実施した場合を示す。本実施例は、マイコンのリセット毎にCPUを切り替えるものである。   In the first embodiment, it is shown that the system is not brought down even if an abnormality occurs in the initialization process by installing one CPU and having two identical initialization process programs. The second embodiment shows a case where the present invention is implemented in a microcomputer equipped with a plurality of CPU cores (CPUs). In this embodiment, the CPU is switched every time the microcomputer is reset.

図7は、本実施例における制御装置の構成図である。制御装置6は、1つまたは複数のセンサ8および1つまたは複数のアクチュエータ7に接続され、また、ネットワーク9を介して他の制御装置10と通信し、システムを制御する。さらに、制御装置6は、マイコンA61、マイコンB62、および1つまたは複数の周辺IC63を搭載する。   FIG. 7 is a configuration diagram of the control device in the present embodiment. The control device 6 is connected to one or more sensors 8 and one or more actuators 7 and communicates with other control devices 10 via the network 9 to control the system. Further, the control device 6 includes a microcomputer A61, a microcomputer B62, and one or more peripheral ICs 63.

マイコンA61は、マイコンB62、および周辺IC63と接続されている。また、マイコンA61は、制御装置6が制御を実行するのに必要なプログラムやデータが格納されたFlashROM612、RAM613、プログラム起動制御部611、DMAコントローラ615、例外発生識別子格納部617、および周辺モジュール616から構成される。さらに、マイコンA61は、3つのCPU、すなわちCPU(0)614a、CPU(1)614b、およびCPU(2)614cを搭載する。CPU(0)614a、CPU(1)614b、およびCPU(2)614cは、起動時にプログラム起動制御部611に従い、FlashROM612に格納されたプログラムの処理をそれぞれの指定番地から開始し、制御装置6の制御を実施する。なお、本実施例では3つのCPUがマイコンA61に搭載されているが、CPUの数はこれに限るものではなく、複数であればよい。   The microcomputer A61 is connected to the microcomputer B62 and the peripheral IC 63. In addition, the microcomputer A61 includes a flash ROM 612, a RAM 613, a program activation control unit 611, a DMA controller 615, an exception occurrence identifier storage unit 617, and a peripheral module 616 that store programs and data necessary for the control device 6 to execute control. Consists of Further, the microcomputer A61 includes three CPUs, that is, a CPU (0) 614a, a CPU (1) 614b, and a CPU (2) 614c. The CPU (0) 614a, the CPU (1) 614b, and the CPU (2) 614c start the processing of the program stored in the flash ROM 612 from the respective designated addresses according to the program activation control unit 611 at the time of activation. Implement control. In the present embodiment, three CPUs are mounted on the microcomputer A61. However, the number of CPUs is not limited to this and may be plural.

実施例1と同様に、マイコンB62は、マイコンA61と同様の構成でもよいし、他の任意の構成でもよい。以下では、マイコンA61に着目し、マイコンA61での処理について説明する。   As in the first embodiment, the microcomputer B62 may have the same configuration as the microcomputer A61 or any other configuration. Hereinafter, focusing on the microcomputer A61, processing in the microcomputer A61 will be described.

図8は、プログラム起動制御部611の構成図である。プログラム起動制御部611は、CPU割当テーブル6111とCPUプログラム起動テーブル6112とから構成される。   FIG. 8 is a configuration diagram of the program activation control unit 611. The program activation control unit 611 includes a CPU allocation table 6111 and a CPU program activation table 6112.

CPU割当テーブル6111には、物理CPU、論理CPU、LOCK、および開始許可のデータが格納されており、先に述べた所定のローテーションが記録されている。物理CPUは、CPUそのものを物理的に識別する識別子であり、マイコンA61が備えるCPUに対するデータである。論理CPUは、論理的にCPUを識別する識別子であり、CPUプログラム起動テーブル6112により、プログラムを開始するメモリ上の番地(開始番地)が決まっている。電源投入時は、論理CPUは不定値となる。   The CPU allocation table 6111 stores physical CPU, logical CPU, LOCK, and start permission data, and records the predetermined rotation described above. The physical CPU is an identifier for physically identifying the CPU itself, and is data for the CPU included in the microcomputer A61. The logical CPU is an identifier that logically identifies the CPU, and an address (start address) on the memory at which the program is started is determined by the CPU program activation table 6112. When the power is turned on, the logical CPU becomes an indefinite value.

LOCKは、物理CPUと論理CPUとの対応(割当て)を切り替えずに、現在の設定を固定にしておくために設けられたフラグである。LOCKの値が「unlock」の場合は、マイコンA61のリセット毎に論理CPUに割り当てられる物理CPUが切り替わり、「lock」の場合は、切り替わらず割当てがロックされる。   LOCK is a flag provided to fix the current setting without switching the correspondence (allocation) between the physical CPU and the logical CPU. When the value of LOCK is “unlock”, the physical CPU assigned to the logical CPU is switched every time the microcomputer A61 is reset. When the value is “lock”, the assignment is locked without being switched.

開始許可は、該当するCPUに対してプログラムを開始することの許可/禁止を設定するためのものである。LOCKの値が「unlock」であると開始許可は「許可」であり、「lock」であると開始許可は「禁止」となる。「許可」に設定されたCPUのみが処理を実行し、「禁止」に設定されたCPUは実行しない。すなわち、「禁止」に設定されたCPUは、ローテーションから除外される。ローテーションは、このような開始許可の許可/禁止の設定により再編される。なお、開始許可が「許可」に設定されているCPUが1つだけの場合も、ローテーションに含める。   The start permission is for setting permission / prohibition of starting a program for the corresponding CPU. When the value of LOCK is “unlock”, the start permission is “permitted”, and when it is “lock”, the start permission is “prohibited”. Only the CPU set to “permitted” executes the process, and the CPU set to “prohibited” does not execute. That is, CPUs set to “prohibited” are excluded from rotation. The rotation is reorganized by such setting of permission / prohibition of start permission. Note that the case where only one CPU is set to “permitted” for start permission is also included in the rotation.

これらのテーブル情報により、CPUに故障が発生した場合は、そのCPUの動作そのものを停止することができる。また、プログラムを格納するメモリ領域に異常が発生した場合には、そのプログラムを実行する論理CPUを開始禁止にすることで、メモリの異常領域に格納されたプログラムの実行を回避することもできる。   With these table information, when a failure occurs in a CPU, the operation of the CPU itself can be stopped. Further, when an abnormality occurs in the memory area storing the program, the execution of the program stored in the abnormal area of the memory can be avoided by prohibiting the start of the logical CPU that executes the program.

図9は、マイコンA61のリセット時からプログラム開始までの処理フローを示した図である。図8のプログラム起動制御部611の構成図を用いて、本処理フローを説明する。なお本実施例でも、電源投入後の起動時の処理は、論理CPUの値が不定であること以外は、リセット時の処理と同様である。以下では、電源投入後の起動時の処理も、リセット時の処理に含めて説明する。   FIG. 9 is a diagram showing a processing flow from the reset of the microcomputer A61 to the start of the program. This processing flow will be described with reference to the configuration diagram of the program activation control unit 611 in FIG. In this embodiment as well, the process at the start-up after power-on is the same as the process at reset except that the value of the logical CPU is indefinite. In the following description, processing at startup after power-on is included in processing at reset.

まず処理691で、マイコンA61がリセット(電源投入時は起動)される。   First, in process 691, the microcomputer A61 is reset (activated when the power is turned on).

処理692では、CPU割当テーブル6111に格納してある、物理CPU(CPU(0))に該当する論理CPUが有効な値であるか、すなわち不定値でないかを判別する。これは、電源投入時には、論理CPUの値が不定になっているためである。なお、CPU割当テーブル6111は、システム電源が保持されている場合は、リセットが発生しても初期化されないため、前回のリセット時にセットされた値が保持されている。   In process 692, it is determined whether the logical CPU corresponding to the physical CPU (CPU (0)) stored in the CPU allocation table 6111 is a valid value, that is, not an indefinite value. This is because the value of the logical CPU is indefinite when the power is turned on. Note that the CPU allocation table 6111 is not initialized even if a reset occurs when the system power supply is held, and thus the value set at the previous reset is held.

処理692で判定がYES、すなわち論理CPUが有効な値である場合、処理693を実施する。処理693は、CPU割当テーブル6111で最上位に記録されている物理CPUに対応させる(割り当てる)論理CPUを切り替える。例えば、現在、物理CPUであるCPU(0)に割り当てられている論理CPUがCPU_Aであれば、この割当てを変更し、CPU_Cを割り当てる。この割当ては、CPUプログラム起動テーブル6112に記録されている順(本実施例では下から上へ)に従って行うことができる。   If the determination in process 692 is YES, that is, if the logical CPU is a valid value, process 693 is performed. The process 693 switches the logical CPU to be associated (allocated) with the physical CPU recorded at the highest level in the CPU allocation table 6111. For example, if the logical CPU currently assigned to the CPU (0), which is a physical CPU, is CPU_A, this assignment is changed and CPU_C is assigned. This allocation can be performed in the order recorded in the CPU program activation table 6112 (from the bottom to the top in this embodiment).

この際、CPU割当テーブル6111の最上位に記録されている物理CPUのLOCKの値が「lock」であれば、この物理CPUは、論理CPUの割当てが変更されない。この場合、その物理CPUを飛ばし、次のLOCKの値が「unlock」である物理CPUに対し、割り当てる論理CPUを切り替える。   At this time, if the LOCK value of the physical CPU recorded at the top of the CPU allocation table 6111 is “lock”, the logical CPU allocation is not changed for this physical CPU. In this case, the physical CPU is skipped, and the logical CPU to be assigned is switched to the physical CPU whose next LOCK value is “unlock”.

処理692で判定がNO、すなわち論理CPUが不定値の場合は、処理694を実施する。処理694では、論理CPUが不定値であるので、あらかじめ規定したデフォルトの論理CPUを物理CPUのCPU(0)に設定する。本実施例では、デフォルトの論理CPUをCPU_Aとしている。   If the determination in process 692 is NO, that is, if the logical CPU is an indefinite value, process 694 is performed. In process 694, since the logical CPU is an indefinite value, a predefined default logical CPU is set as the CPU (0) of the physical CPU. In this embodiment, the default logical CPU is CPU_A.

処理693または処理694が終了したら、処理695に進む。処理695では、CPU(0)に対する論理CPUの割当てを基準に、CPU(1)以降の論理CPUの割当てを実施する。上記の例では、CPU(0)にはCPU_Aが割り当てられているので、CPU(1)とCPU(2)には、それぞれCPU_BとCPU_Cが割り当てられる。   When the process 693 or the process 694 ends, the process proceeds to the process 695. In process 695, logical CPUs subsequent to CPU (1) are assigned on the basis of logical CPU assignment to CPU (0). In the above example, CPU_A is assigned to CPU (0), so CPU_B and CPU_C are assigned to CPU (1) and CPU (2), respectively.

この際、CPU割当テーブル6111でLOCKの値が「lock」である物理CPUに関しては、割当てが変更されない。この場合、その物理CPUを飛ばし、次のLOCKの値が「unlock」である物理CPUに対し、割り当てる論理CPUを切り替える。   At this time, the allocation is not changed for the physical CPU whose LOCK value is “lock” in the CPU allocation table 6111. In this case, the physical CPU is skipped, and the logical CPU to be assigned is switched to the physical CPU whose next LOCK value is “unlock”.

処理696では、各論理CPUは、CPUプログラム起動テーブル6112に従って開始番地にジャンプし、プログラムの処理を開始する。このとき、開始許可が「禁止」に設定されているCPUは、処理を実行しない。   In process 696, each logical CPU jumps to the start address in accordance with the CPU program activation table 6112 and starts program processing. At this time, the CPU whose start permission is set to “prohibited” does not execute the process.

このようにして、マイコンA61は、リセット毎に物理CPUと論理CPUの割当てを変更することで、物理CPUが処理するプログラムが格納されているメモリ上の番地、すなわち、物理CPUが実際に処理するプログラムの内容を切り替えることができる。また、物理CPUが処理を実行できなくすることもできる。   In this way, the microcomputer A61 changes the allocation of the physical CPU and the logical CPU at each reset, so that the address on the memory in which the program processed by the physical CPU is stored, that is, the physical CPU actually processes it. The contents of the program can be switched. In addition, the physical CPU can be disabled.

図10は、マイコンのリセット毎に物理CPUと論理CPUの割当てが切り替わる様子を示したチャート図である。図8と図9を用いて、本チャート図を説明する。なお、図10では簡略化のために、時刻t6801の後はマイコンがリセットされる時刻のみを示したが、図4と同様に、システムが停止(システムOFF)した後、システムが稼動(システムON)してマイコンのリセットが発生する。   FIG. 10 is a chart showing how the assignment of the physical CPU and the logical CPU is switched every time the microcomputer is reset. The chart will be described with reference to FIGS. 8 and 9. For simplification, FIG. 10 shows only the time when the microcomputer is reset after time t6801, but, similar to FIG. 4, after the system is stopped (system OFF), the system is activated (system ON). ) And a microcomputer reset occurs.

図10の上図は、通常ケースであり、システムが正常に稼動している場合の例である。   The upper diagram in FIG. 10 is a normal case, and is an example when the system is operating normally.

時刻t6801で電源が投入(パワーON)されてシステムONになると、マイコンA61のリセットが発生し、図9の処理フローに従ってプログラム開始処理が実施される。   When the power is turned on at time t6801 (power is turned on) and the system is turned on, the microcomputer A61 is reset, and the program start processing is performed according to the processing flow of FIG.

このとき、CPU割当テーブル6111の論理CPUには不定値が入っているため、デフォルトの論理CPU(CPU_A)が物理CPUであるCPU(0)に設定される。また、CPU(1)とCPU(2)には、CPU_BとCPU_Cがそれぞれ割り当てられる。   At this time, since an indefinite value is entered in the logical CPU of the CPU allocation table 6111, the default logical CPU (CPU_A) is set to the CPU (0) which is the physical CPU. CPU_B and CPU_C are assigned to CPU (1) and CPU (2), respectively.

以後、時刻t6802、t6803、およびt6804でマイコンA61のリセットが発生する度に、CPUプログラム起動テーブル6112に記録されている順(本実施例では下から上へ)に従って、物理CPUと論理CPUとの割当てが切り替わる。従って、各物理CPUが処理するプログラムの内容も切り替わる。   Thereafter, each time the microcomputer A61 is reset at times t6802, t6803, and t6804, the physical CPU and the logical CPU are in accordance with the order recorded in the CPU program activation table 6112 (from bottom to top in this embodiment). The assignment is switched. Accordingly, the contents of the program processed by each physical CPU are also switched.

図10の下図は、異常ケースの例であり、CPU(1)が故障して動作が異常となるケースである。   The lower diagram of FIG. 10 is an example of an abnormal case, in which the CPU (1) fails and the operation becomes abnormal.

時刻t6811にパワーONとシステムONになると、通常ケースと同様に、マイコンA61のリセットが発生し、CPU(1)にはCPU_Bが割り当てられる。このとき、CPU(1)は故障しているため、マイコンA61がプログラムを実行すると、CPU_Bに異常が発生する。   When the power is turned on and the system is turned on at time t6811, the microcomputer A61 is reset as in the normal case, and CPU_B is assigned to the CPU (1). At this time, since the CPU (1) is out of order, when the microcomputer A61 executes the program, an abnormality occurs in the CPU_B.

このCPU_Bの異常発生により、マイコンA61は例外を処理し、時刻t6812でリセットが発生する。このリセットにより、故障しているCPU(1)にはCPU_Aが割り当てられる。このときは、マイコンA61がプログラムを続行すると、CPU_Aに異常が発生する。   Due to the occurrence of an abnormality in CPU_B, the microcomputer A61 processes an exception, and a reset occurs at time t6812. By this reset, CPU_A is assigned to the failed CPU (1). At this time, if the microcomputer A61 continues the program, an abnormality occurs in the CPU_A.

このように、CPU(1)が割り当てられている論理CPUの異常によるリセットが2回連続して発生したため、例外処理により、CPU(1)は、異常と判定され、論理CPUがCPU_Cに割り当てられるとともに、LOCKの値が「lock」に、開始許可が「禁止」に設定される(図10下図内のCPU割当テーブル6111参照)。これにより、異常が発生したCPU(1)では、プログラムが実行されなくなる。また、CPU_Cが実行されないため、開始番地0x4000に格納されたプログラムは開始されない。   As described above, since the reset due to the abnormality of the logical CPU to which the CPU (1) is assigned has occurred twice in succession, the CPU (1) is determined to be abnormal by the exception processing, and the logical CPU is assigned to the CPU_C. At the same time, the LOCK value is set to “lock” and the start permission is set to “prohibited” (see the CPU allocation table 6111 in the lower diagram of FIG. 10). As a result, the program is not executed on the CPU (1) where the abnormality has occurred. Further, since CPU_C is not executed, the program stored at the start address 0x4000 is not started.

時刻t6813以降は、マイコンA61のリセット毎に、CPU(0)とCPU(2)のみに対して、CPU_AとCPU_Bの割当てを切り替えることになる。従って、プログラムは、物理CPUはCPU(0)とCPU(2)だけで、論理CPUはCPU_AとCPU_Bだけで、実行される。これにより、CPUの異常によるプログラムの誤動作発生を回避するとともに、システムダウンも回避することができる。例外処理の詳細については、後述する。   After time t6813, every time the microcomputer A61 is reset, the assignment of CPU_A and CPU_B to only the CPU (0) and the CPU (2) is switched. Therefore, the program is executed only by the CPUs (0) and (2) as physical CPUs and only by CPU_A and CPU_B as logical CPUs. Thereby, it is possible to avoid the malfunction of the program due to the abnormality of the CPU and to avoid the system down. Details of the exception processing will be described later.

なお、上記の例では、リセットが2回連続して発生したときにCPUに異常が発生したと判断したが、実施例1と同様に、連続でなくても累積で2回リセットが発生したときに、異常が発生したと判断するようにしてもよい。また、この異常が発生したと判断するリセットの回数も実施例1と同様に、2回に限るものではなく、例えば3回以上でもよい。この回数は、あらかじめ規定しておくことができる。   In the above example, it is determined that an abnormality has occurred in the CPU when resets occur twice in succession. However, as in the case of the first embodiment, when resets occur twice in a cumulative manner even if they are not continuous. In addition, it may be determined that an abnormality has occurred. Further, the number of resets for determining that this abnormality has occurred is not limited to two as in the first embodiment, and may be three or more, for example. This number of times can be defined in advance.

図11は、FlashROM612に格納されているプログラムのメモリ上の配置図である。FlashROM612内の0x0000番地、0x2000番地、および0x4000番地には、各論理CPU、すなわちCPU_A、CPU_B、CPU_Cにより開始されるプログラムが格納されている。それぞれの論理CPUが開始するプログラムの内容については、例えばメイン処理はCPU_Aで実行し、メイン処理に先立つ初期化処理など補助的な処理はCPU_BおよびCPU_Cで実行するというように決めておく。複数の論理CPU(例えばCPU_BおよびCPU_C)で実行される補助的な処理は、同一のものにすることができる。   FIG. 11 is a layout diagram of programs stored in the FlashROM 612 on the memory. A program started by each logical CPU, that is, CPU_A, CPU_B, and CPU_C is stored at addresses 0x0000, 0x2000, and 0x4000 in the FlashROM 612. Regarding the contents of the programs started by the respective logical CPUs, for example, the main process is executed by CPU_A, and auxiliary processes such as an initialization process prior to the main process are executed by CPU_B and CPU_C. Ancillary processes executed by a plurality of logical CPUs (for example, CPU_B and CPU_C) can be the same.

補助的な処理を実行するCPUの1つが故障したとき、故障した物理CPUをCPU_CまたはCPU_Bに割り当てて開始禁止にする。このようにすると、補助的な処理を実行するCPUが1つ故障したとしても、他のCPUで初期化処理などの補助的な処理を実行でき、引き続いてメイン処理も実行できるようになるので、プログラムの誤動作やシステムダウンを避けることができる。   When one of the CPUs performing the auxiliary process fails, the failed physical CPU is assigned to CPU_C or CPU_B to prohibit the start. In this way, even if one CPU that executes auxiliary processing fails, auxiliary processing such as initialization processing can be executed by another CPU, and subsequently main processing can also be executed. Program malfunction and system down can be avoided.

異常発生時の例外処理を、図12に示した異常発生時の例外処理フロー図を用いて説明する。   Exception processing when an abnormality occurs will be described with reference to the exception processing flowchart when an abnormality occurs shown in FIG.

異常により例外が発生した後、処理671では、CPU割当テーブル6111に格納してある物理CPUのうち、例外を発生させた物理CPUを例外発生識別子格納部617に保存する。   After an exception has occurred due to an abnormality, in a process 671, among the physical CPUs stored in the CPU allocation table 6111, the physical CPU that generated the exception is stored in the exception occurrence identifier storage unit 617.

処理672で、例外処理ハンドラを起動し、例外を処理してプログラムを続行する。   In process 672, an exception handling handler is activated to handle the exception and continue the program.

処理673では、例外発生識別子格納部617に保存された物理CPUを読みだし、過去に同じ物理CPUで例外が発生していないか、発生している場合は発生の連続回数または累積回数を調べる。例外発生の連続回数または蓄積回数が規定以上の場合は、その物理CPUを異常と判定する。図10の異常ケースの例では、CPU(1)が2回連続して例外を発生しており、その時点でCPU(1)を異常と判定している。   In the process 673, the physical CPU stored in the exception occurrence identifier storage unit 617 is read, and if an exception has not occurred in the same physical CPU in the past, the number of consecutive occurrences or the cumulative number is checked. If the number of consecutive exception occurrences or the number of accumulations exceeds a specified value, the physical CPU is determined to be abnormal. In the example of the abnormal case of FIG. 10, CPU (1) has generated an exception twice in succession, and CPU (1) is determined to be abnormal at that time.

処理673で異常と判定した場合は、処理674に進む。この処理では、該当物理CPUがメイン処理を実行する論理CPU(図11の説明で用いた例ではCPU_A)に現在割り当てられているかどうかを判定する。この判定をここで行うのは、もし、該当物理CPUがメイン処理を担当する論理CPUに割り当てられている場合に、次の処理675で行う、CPU割当テーブル6111のLOCKを「lock」に設定し開始許可を「禁止」に設定する処理を実施すると、この論理CPU(CPU_A)で行うメイン処理が実行できなくなるからである。   If it is determined that the process 673 is abnormal, the process proceeds to process 674. In this process, it is determined whether or not the corresponding physical CPU is currently assigned to a logical CPU (CPU_A in the example used in the description of FIG. 11) that executes the main process. This determination is made here by setting the LOCK of the CPU allocation table 6111 to “lock” to be performed in the next process 675 if the corresponding physical CPU is allocated to the logical CPU in charge of the main process. This is because if the process of setting the start permission to “prohibited” is performed, the main process performed by this logical CPU (CPU_A) cannot be executed.

これを回避するために、この時点でのCPU割当テーブル6111のLOCKや開始許可の設定は避け、次回以降に該当物理CPU(CPU(1))がメイン処理を行わない論理CPUに割り当たったときに、LOCKを「lock」に、開始許可を「禁止」に設定する。このようにして、メイン処理を実行する論理CPUが常時処理を実行できるようにする。   In order to avoid this, the setting of LOCK and start permission of the CPU allocation table 6111 at this point is avoided, and when the corresponding physical CPU (CPU (1)) is assigned to a logical CPU that does not perform main processing after the next time. LOCK is set to “lock” and start permission is set to “prohibited”. In this way, the logical CPU that executes the main process can always execute the process.

処理674で該当物理CPUがメイン処理を実行する論理CPUに割り当てられていないと判定した場合は、処理675に進む。この処理では、CPU割当テーブル6111における該当物理CPUのLOCKを「lock」に設定し、開始許可を「禁止」に設定する。こうすることにより、該当物理CPU(CPU(1))によるプログラム開始を回避することができる。   If it is determined in process 674 that the corresponding physical CPU is not assigned to the logical CPU that executes the main process, the process proceeds to process 675. In this process, the LOCK of the corresponding physical CPU in the CPU allocation table 6111 is set to “lock”, and the start permission is set to “prohibited”. By doing so, it is possible to avoid the start of the program by the corresponding physical CPU (CPU (1)).

処理673、処理674、または処理675が終了したら、処理676に進んでマイコンのリセットを発生させ、図10のチャート図に示したように処理を続行する。   When the process 673, the process 674, or the process 675 is completed, the process proceeds to a process 676 to generate a reset of the microcomputer, and the process is continued as shown in the chart of FIG.

実施例1では、プログラムの開始番地を切り替える実施例を示し、実施例2では、プログラムを実行するCPUを切り替える実施例を示した。本実施例は、上記2つの実施例での処理を並行して実行し、所定のローテーションに従って、プログラムを実行するCPUを切り替えるとともに、その各CPUでもプログラムの開始番地を切り替える例である。すなわち、実施例2で記載したように論理CPUを切り替えたときに、その論理CPU毎に、実施例1で記載したように実行するプログラムの開始番地を切り替える。   In the first embodiment, an example in which the start address of the program is switched is shown, and in the second embodiment, the CPU that executes the program is switched. The present embodiment is an example in which the processes in the above two embodiments are executed in parallel, the CPU that executes the program is switched according to a predetermined rotation, and the start address of the program is also switched in each CPU. That is, when the logical CPU is switched as described in the second embodiment, the start address of the program to be executed is switched as described in the first embodiment for each logical CPU.

本実施例における制御装置の構成図は、実施例2で示した図7と同様である。マイコンA61は、複数のCPUを搭載する。ただし、プログラム起動制御部611は、実施例1の図2に示した起動識別子格納部1111および起動テーブル1112、ならびに実施例2の図8に示したCPU割当テーブル6111およびCPUプログラム起動テーブル6112を備える。   The configuration diagram of the control device in this embodiment is the same as FIG. 7 shown in the second embodiment. The microcomputer A61 is equipped with a plurality of CPUs. However, the program activation control unit 611 includes the activation identifier storage unit 1111 and the activation table 1112 illustrated in FIG. 2 of the first embodiment, and the CPU allocation table 6111 and the CPU program activation table 6112 illustrated in FIG. 8 of the second embodiment. .

FlashROM112に格納されているプログラムのメモリ上の配置も、実施例1(図5)と実施例2(図11)とを合わせたものである。すなわち、図11のように各CPUにプログラムが割り当てられるが、その割り当てられるプログラムは、図5のように各CPUに対し複数(図5の例では2つ)である。   The arrangement of the programs stored in the flash ROM 112 on the memory is also a combination of the first embodiment (FIG. 5) and the second embodiment (FIG. 11). That is, a program is assigned to each CPU as shown in FIG. 11, but there are a plurality of assigned programs (two in the example of FIG. 5) for each CPU as shown in FIG.

マイコンA61の処理内容も、実施例1と実施例2とを合わせたものである。まず、実施例2のように所定のローテーションに従ってCPUを切り替えた後、それぞれのCPUに対して、実施例1のように所定のローテーションに従ってプログラムの開始番地を切り替える処理を行う。処理フローやチャートは、実施例1と実施例2とで用いたものを利用することができる。   The processing content of the microcomputer A61 is also a combination of the first and second embodiments. First, after the CPU is switched according to a predetermined rotation as in the second embodiment, a process of switching the start address of the program according to the predetermined rotation as in the first embodiment is performed for each CPU. The processing flow and the chart used in the first and second embodiments can be used.

本実施例により、実施例2で記載したCPU故障時のシステムダウンの回避と、実施例1で記載したプログラム故障によるシステムダウンの回避との両方を実施することができる。   According to the present embodiment, both the avoidance of the system down at the time of the CPU failure described in the second embodiment and the avoidance of the system down due to the program failure described in the first embodiment can be performed.

本発明は、自動車制御をはじめとして、マイコンを内蔵した制御装置に適用可能である。   The present invention can be applied to a control device incorporating a microcomputer, including automobile control.

本発明の一実施形態(実施例1)を示す制御装置の構成図である。It is a block diagram of the control apparatus which shows one Embodiment (Example 1) of this invention. 実施例1におけるプログラム起動制御部の構成図である。FIG. 3 is a configuration diagram of a program activation control unit according to the first embodiment. 実施例1におけるリセット時の処理フローを示した図である。It is the figure which showed the processing flow at the time of reset in Example 1. FIG. 実施例1における起動識別子が切り替わる様子を示したチャート図である。It is the chart which showed a mode that the starting identifier in Example 1 switched. 実施例1におけるFlashROM内のプログラムの配置図である。FIG. 3 is a layout diagram of programs in the FlashROM according to the first embodiment. 実施例1における異常発生時の例外処理フロー図である。FIG. 10 is a flowchart of exception processing when an abnormality occurs in the first embodiment. 本発明の別の実施形態(実施例2)を示す制御装置の構成図である。It is a block diagram of the control apparatus which shows another embodiment (Example 2) of this invention. 実施例2におけるプログラム起動制御部の構成図である。FIG. 10 is a configuration diagram of a program activation control unit according to a second embodiment. 実施例2におけるリセット時の処理フローを示した図である。It is the figure which showed the processing flow at the time of reset in Example 2. FIG. 実施例2におけるCPUの割当てが切り替わる様子を示したチャート図である。It is the chart which showed a mode that the allocation of CPU in Example 2 changed. 実施例2におけるFlashROM内のプログラムの配置図である。FIG. 10 is a layout diagram of programs in the FlashROM according to the second embodiment. 実施例2における異常発生時の例外処理フロー図である。FIG. 10 is a flowchart of exception processing when an abnormality occurs in the second embodiment.

符号の説明Explanation of symbols

1…制御装置、2、7…アクチュエータ、3、8…センサ、4、9…ネットワーク、5、10…制御装置、6…制御装置、11…マイコンA、12、62…マイコンB、13、63…周辺IC、61…マイコンA、111…プログラム起動制御部、112…FlashROM、113、613…RAM、114…CPU、115、615…DMAコントローラ、116、616…周辺モジュール、117…例外発生識別子格納部、611…プログラム起動制御部、612…FlashROM、614a…CPU(0)、614b…CPU(1)、614c…CPU(2)、617…例外発生識別子格納部、1111…起動識別子格納部、1112…起動テーブル、6111…CPU割当テーブル、6112…CPUプログラム起動テーブル、1121…初期化処理(#0)、1122…初期化処理(#1)、1123…メイン処理。   DESCRIPTION OF SYMBOLS 1 ... Control apparatus, 2, 7 ... Actuator, 3, 8 ... Sensor, 4, 9 ... Network, 5, 10 ... Control apparatus, 6 ... Control apparatus, 11 ... Microcomputer A, 12, 62 ... Microcomputer B, 13, 63 ... peripheral IC, 61 ... microcomputer A, 111 ... program start control unit, 112 ... FlashROM, 113, 613 ... RAM, 114 ... CPU, 115, 615 ... DMA controller, 116, 616 ... peripheral module, 117 ... exception occurrence identifier storage 611... Program start control unit, 612... FlashROM, 614 a... CPU (0), 614 b... CPU (1), 614 c... CPU (2), 617. ... Startup table, 6111 ... CPU allocation table, 6112 ... CPU program start table, 121 ... initialization process (# 0), 1122 ... initialization process (# 1), 1123 ... main process.

Claims (16)

マイクロコントローラを備える制御装置において、
前記マイクロコントローラの起動時および再起動時に実行される初期化処理プログラムを複数格納したメモリと、前記初期化処理プログラムを切替により選択する切替手段と、を有し、
前記切替手段は、前記マイクロコントローラの起動時および前記マイクロコントローラの再起動時に、複数の前記初期化処理プログラムの中から使用対象となるべき初期化処理プログラム、所定の割当て手順に従って切替動作によって選択し、前記マイクロコントローラの再起動時には、前記マイクロコントローラが前回起動したときに実行された初期化処理プログラムと異なる初期化処理プログラム前記切替動作により選択することを特徴とする制御装置。
In a control device comprising a microcontroller ,
A memory storing a plurality of initialization processing programs to be executed at the time of starting and restarting the microcontroller, and switching means for selecting the initialization processing program by switching,
Said switching means, said microcontroller startup and restart of the microcontroller, the initialization program to be used from among the initialization program of the multiple, by the switching operation according to a predetermined assignment procedure selected, wherein the time of restart of the microcontroller, the control apparatus characterized by selecting the microcontroller is different from the initialization program executed when the last started initialization program by the switching operation.
マイクロコントローラを備える制御装置において、
前記マイクロコントローラの起動時および再起動時に実行される初期化処理プログラムを実行する複数の演算処理手段と、前記演算処理手段が実行する処理を切替により選択する切替手段と、を有し、
前記切替手段は、前記マイクロコントローラの起動時および前記マイクロコントローラの再起動時に、複数の前記演算処理手段のそれぞれが実行する処理を、所定の割当て手順に従って切替動作によって選択し、前記マイクロコントローラの再起動時には、複数の前記演算処理手段のそれぞれが、前記マイクロコントローラが前回起動したときに実行した処理とは異なる処理を実行するように前記切替動作を行うことを特徴とする制御装置。
In a control device comprising a microcontroller ,
A plurality of arithmetic processing means for executing an initialization processing program executed at the time of starting and restarting the microcontroller, and a switching means for selecting processing to be executed by the arithmetic processing means by switching,
Said switching means, said microcontroller startup and restart of the microcontroller, the process that each execution of said operation processing means multiple, selected by the switching operation according to a predetermined assignment procedure, the microcontroller during restart, each of the plurality of arithmetic processing means, the microcontroller control device and performs the switching operation to perform processing different from that performed when the last started.
マイクロコントローラを備える制御装置において、
前記マイクロコントローラの起動時および再起動時に実行される初期化処理プログラムを複数格納したメモリと、前記初期化処理プログラムを実行する複数の演算処理手段と、前記演算処理手段が実行する処理を切替により選択するとともに前記初期化処理プログラムを切替により選択する切替手段と、を有し、
前記切替手段は、前記マイクロコントローラの起動時および前記マイクロコントローラの再起動時に、複数の前記演算処理手段のそれぞれが実行する処理と、複数の前記初期化処理プログラムの中から使用対象となるべき初期化処理プログラムと、所定の割当て手順に従って切替動作によって選択し、前記マイクロコントローラの再起動時には、複数の前記演算処理手段のそれぞれが、前記マイクロコントローラが前回起動したときに実行した処理とは異なる処理を実行するように前記切替動作を行い、その後、複数の前記演算処理手段のうち前記初期化処理プログラムを実行する演算処理手段が、前記マイクロコントローラが前回起動したときに実行した初期化処理プログラムとは異なる初期化処理プログラムを実行するように前記切替動作を行うことを特徴とする制御装置。
In a control device comprising a microcontroller ,
A memory for stores a plurality of initialization processing program executed upon start-up and restart of the microcontroller, and a plurality of arithmetic processing means for executing the initialization program, by switching the processing in which the arithmetic processing means executes Switching means for selecting and selecting the initialization processing program by switching,
It said switching means, said microcontroller startup and restart of the microcontroller, should be a process that each execution of said operation processing means multiple, and used from among a plurality of said initialization program The initialization processing program is selected by a switching operation according to a predetermined allocation procedure, and when the microcontroller is restarted , each of the plurality of arithmetic processing means is the processing executed when the microcontroller was last started An initialization process that is performed when the processing unit that executes the initialization process program among the plurality of the processing units and then executes the initialization process program is executed when the microcontroller is started last time. the switching to perform different initialization program from the program Control device and performs the work.
請求項1記載の制御装置において、
前記切替手段は、選択された初期化処理プログラムを格納したメモリ領域に異常が生じた場合には、異常が生じたメモリ領域を前記割当て手順から除外して割当て手順を再編し、以後の前記マイクロコントローラの再起動時の初期化処理プログラムを、前記切替動作により選択することを特徴とする制御装置。
The control device according to claim 1,
Said switching means, when an abnormality occurs in the memory area storing the selected initialization program, a memory area abnormality occurs excluded from the allocation procedure reorganized allocation procedure, subsequent the micro A control apparatus , wherein an initialization processing program at the time of restarting a controller is selected by the switching operation .
請求項2記載の制御装置において、
前記切替手段は、前記演算処理手段に異常が生じた場合には、異常が生じた演算処理手段を前記割当て手順から除外して割当て手順を再編し、以後の前記マイクロコントローラの再起動時に前記演算処理手段のそれぞれが実行する処理を、前記切替動作により選択することを特徴とする制御装置。
The control device according to claim 2, wherein
Said switching means, when an abnormality in the arithmetic processing unit has occurred, the abnormality has occurred processing means is excluded from the allocation procedure reorganized allocation procedure, the restart time of subsequent said microcontroller A control device , wherein the processing executed by each of the arithmetic processing means is selected by the switching operation .
請求項3記載の制御装置において、
前記切替手段は、選択された初期化処理プログラムを格納したメモリ領域に異常が生じた場合には、異常が生じたメモリ領域を前記割当て手順から除外して割当て手順を再編し、以後の前記マイクロコントローラの再起動時の初期化処理プログラムを、前記切替動作により選択し、前記演算処理手段に異常が生じた場合には、異常が生じた演算処理手段を前記割当て手順から除外して割当て手順を再編し、以後の前記マイクロコントローラの再起動時に前記演算処理手段のそれぞれが実行する処理を、前記切替動作により選択することを特徴とする制御装置。
The control device according to claim 3,
Said switching means, when an abnormality occurs in the memory area storing the selected initialization program, a memory area abnormality occurs excluded from the allocation procedure reorganized allocation procedure, subsequent the micro An initialization processing program at the time of restarting the controller is selected by the switching operation , and when an abnormality occurs in the arithmetic processing means, the arithmetic processing means in which the abnormality has occurred is excluded from the assignment procedure and the assignment procedure is performed. A control apparatus that performs reorganization and selects a process to be executed by each of the arithmetic processing means when the microcontroller is restarted thereafter by the switching operation .
請求項記載の制御装置において、
前記制御装置は、前記初期化処理プログラムの実行を禁止する機能を有し、前記切替手段は、実行が禁止されていない初期化処理プログラムに切り替える制御装置。
The control device according to claim 1 ,
Wherein the control device has a function of inhibiting the execution of the initialization program, said switching means, a control device for switching the initialization program execution is not prohibited.
請求項2記載の制御装置において、
前記制御装置は、前記演算処理手段が実行する処理を固定する機能を有し、前記切替手段は、実行する処理が固定されていない演算処理手段の処理を切り替える制御装置。
The control device according to claim 2, wherein
The control device has a function of fixing processing executed by the arithmetic processing means , and the switching means switches processing of arithmetic processing means whose processing to be executed is not fixed .
請求項記載の制御装置において、
前記制御装置は、前記初期化処理プログラムの実行を禁止する機能と、前記演算処理手段が実行する処理を固定する機能と、を有し、前記切替手段は、実行が禁止されていない初期化処理プログラムに切り替えるとともに、実行する処理が固定されていない演算処理手段の処理を切り替える制御装置。
The control device according to claim 3 ,
The control device has a function of prohibiting execution of the initialization processing program and a function of fixing processing executed by the arithmetic processing means, and the switching means is an initialization process whose execution is not prohibited. A control device that switches to a program and switches processing of an arithmetic processing means whose processing to be executed is not fixed .
請求項記載の制御装置において、
前記制御装置は、実行中に例外が発生した前記初期化処理プログラムを識別できる情報を記憶する例外発生記憶部を備える制御装置。
The control device according to claim 1 ,
The said control apparatus is a control apparatus provided with the exception generation | occurrence | production memory | storage part which memorize | stores the information which can identify the said initialization process program which exception generate | occur | produced during execution.
請求項2記載の制御装置において、
前記制御装置は、実行中に例外が発生した前記演算処理手段を識別できる情報を記憶する例外発生記憶部を備える制御装置。
The control device according to claim 2, wherein
The said control apparatus is a control apparatus provided with the exception generation | occurrence | production memory | storage part which memorize | stores the information which can identify the said arithmetic processing means in which exception generate | occur | produced during execution.
請求項記載の制御装置において、
前記制御装置は、実行中に例外が発生した前記初期化処理プログラムと前記演算処理手段を識別できる情報を記憶する例外発生記憶部を備える制御装置。
The control device according to claim 3 ,
The control device includes an exception generation storage unit that stores information that can identify the initialization processing program in which an exception has occurred during execution and the arithmetic processing unit .
請求項記載の制御装置において、
前記切替手段は、選択された前記初期化処理プログラムの実行中に例外が発生したとき、この初期化処理プログラムに対し、例外発生回数があらかじめ定めた回数以上の場合は、前記割当て手順から除外する制御装置。
The control device according to claim 1 ,
When an exception occurs during execution of the selected initialization process program , the switching means excludes the exception process from the allocation procedure if the number of exception occurrences exceeds a predetermined number. Control device.
請求項2記載の制御装置において、
前記切替手段は、選択された前記演算処理手段の処理の実行中に例外が発生したとき、この演算処理手段に対し、例外発生回数があらかじめ定めた回数以上の場合は、前記割当て手順から除外する制御装置。
The control device according to claim 2, wherein
When an exception occurs during the execution of the processing of the selected arithmetic processing means , the switching means excludes the arithmetic processing means from the allocation procedure if the number of exception occurrences exceeds a predetermined number. Control device.
請求項記載の制御装置において、
前記切替手段は、選択された前記初期化処理プログラムの実行中、または選択された前記演算処理手段の処理の実行中に例外が発生したとき、この初期化処理プログラムまたは演算処理手段に対し、例外発生回数があらかじめ定めた回数以上の場合は、前記割当て手順から除外する制御装置。
The control device according to claim 3 ,
The switching means, when an exception occurs during execution of the selected initialization processing program or execution of the processing of the selected arithmetic processing means, with respect to the initialization processing program or arithmetic processing means A control device that is excluded from the assignment procedure when the number of occurrences is greater than or equal to a predetermined number.
マイクロコントローラを備える制御装置において、
前記マイクロコントローラは、切替手段とメモリとCPUとを備え
前記メモリは、前記マイクロコントローラの起動時および再起動時に実行される初期化処理プログラムを複数格納し、これらの初期化処理プログラムは同じプログラムであり、
前記CPUは、前記初期化処理プログラムを実行するコアを1つまたは複数備え、
前記切替手段は、1つまたは複数の前記コアと複数の前記初期化処理プログラムを格納した前記メモリの番地とを対応させ、前記マイクロコントローラの起動時および再起動時にはこの対応関係を切り替えることを特徴とする制御装置。
In a control device comprising a microcontroller ,
The microcontroller includes switching means, a memory, and a CPU ,
The memory stores a plurality of initialization processing programs to be executed at the time of starting and restarting the microcontroller, and these initialization processing programs are the same program ,
The CPU includes one or more cores that execute the initialization processing program ,
It said switching means, characterized in that the addresses of the memory storing one or more of the core and a plurality of said initialization program in correspondence, said microcontroller startup and restart switches this correspondence to the control device.
JP2008226764A 2008-09-04 2008-09-04 Control device Expired - Fee Related JP4864056B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008226764A JP4864056B2 (en) 2008-09-04 2008-09-04 Control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008226764A JP4864056B2 (en) 2008-09-04 2008-09-04 Control device

Publications (2)

Publication Number Publication Date
JP2010061419A JP2010061419A (en) 2010-03-18
JP4864056B2 true JP4864056B2 (en) 2012-01-25

Family

ID=42188150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008226764A Expired - Fee Related JP4864056B2 (en) 2008-09-04 2008-09-04 Control device

Country Status (1)

Country Link
JP (1) JP4864056B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314421B (en) 2010-06-29 2014-12-10 中兴通讯股份有限公司 Self-rescuing method and self rescuing device for file system after being damaged
JP2015106226A (en) * 2013-11-29 2015-06-08 三菱電機株式会社 Dual system
WO2016132432A1 (en) * 2015-02-16 2016-08-25 三菱電機株式会社 Processor and microcomputer

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216855A (en) * 1992-02-04 1993-08-27 Fujitsu Ltd Multi-cpu control system
JPH11136427A (en) * 1997-10-27 1999-05-21 Ricoh Co Ltd Facsimile equipment
JP3250522B2 (en) * 1998-07-23 2002-01-28 日本電気株式会社 Firmware replacement device and replacement method
JP2007286859A (en) * 2006-04-17 2007-11-01 Ricoh Co Ltd Control unit and image forming device

Also Published As

Publication number Publication date
JP2010061419A (en) 2010-03-18

Similar Documents

Publication Publication Date Title
KR101110490B1 (en) Information processing device, processor and memory management method
US7750676B2 (en) Embedded system and control method therefor
CN107077407B (en) Vehicle control device
WO2016101519A1 (en) Method and device for realizing restart of operating system
JPWO2011016115A1 (en) Reset method and monitoring device
JP4864056B2 (en) Control device
US10108469B2 (en) Microcomputer and microcomputer system
JP2007323631A (en) Cpu runaway determination circuit
KR100894251B1 (en) Memory module system with multiple SPD ROM and boothing method of the memory module system
JP2004338883A (en) Elevator controller
JP2006099704A (en) Information processor and startup control method
TWI750215B (en) Bios switching device
US7475212B2 (en) Method for reallocation of a memory of a subsystem, and subsystem
JP2007172096A (en) Information processor and start control method
JP2002049509A (en) Data processing system
JP6822203B2 (en) Firmware Execution Device, Driver Execution Device, Driver Management Device, Firmware Management Device, Computer Device, Method and Program
JP4853620B2 (en) Multiprocessor system and initial startup method and program
JP2006079230A (en) Semiconductor circuit device and runaway detecting method
JP2009025967A (en) Backup system of duplicated firmware, method and operating system
JP2008140124A (en) Data processor
JP4114004B2 (en) Semiconductor integrated circuit
JP4482515B2 (en) Image forming apparatus
JP6699591B2 (en) Engine controller
JP6596455B2 (en) Electronic control unit for automobile
JP6072521B2 (en) Computer start system, computer start program, computer, and computer start method

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110818

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111108

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4864056

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees