JP4864056B2 - Control device - Google Patents
Control device Download PDFInfo
- 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
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
- Microcomputers (AREA)
- Stored Programmes (AREA)
Abstract
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,
マイコンを搭載した制御装置は、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
本発明は、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
マイコン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
マイコン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
起動識別子格納部1111は、プログラム起動を行う起動識別子が格納されている。電源投入時は、起動識別子は不定値となる。
The activation
起動テーブル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
図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
まず処理191で、マイコンA11がリセット(電源投入時は起動)される。
First, in
処理192では、起動識別子格納部1111に格納してある起動識別子が有効な値であるか、すなわち不定値でないかを判別する。これは、電源投入時には、起動識別子が不定値になっているためである。なお、起動識別子格納部1111は、システム電源が保持されている場合は、リセットが発生しても初期化されないため、前回のリセット時にセットされた値が保持されている。
In
処理192で判定がYES、すなわち起動識別子が有効な値である場合、処理193を実施する。処理193は、起動テーブル1112に記録されている起動識別子のうち、開始許可が「許可」と設定されている起動識別子であって、現在、起動識別子格納部1111に保存してある起動識別子の次に記録されているものを起動識別子格納部1111に格納する。例えば図2の例では、現在の起動識別子が起動_0であれば、起動_1を格納する。このとき、現在の起動識別子は上書きされ、新たに格納された起動識別子である起動_1だけが起動識別子格納部1111に保存される。もし、現在の起動識別子が起動テーブル1112の最後に記録されている起動識別子であれば、最上位に記録されている起動識別子に戻って、開始許可が「許可」と設定されている起動識別子を格納する。
If the determination in
処理192で判定がNO、すなわち起動識別子が不定値である場合は、処理194を実施する。処理194では、起動テーブル1112の最上位に記録されている起動識別子である起動_0を、デフォルトの起動識別子として保存する。もし、最上位に記録されている起動識別子の開始許可が「禁止」である場合は、その起動識別子を飛ばし、開始許可が「許可」である次の起動識別子を保存する。
If the determination in
以上のように、本処理フローでは、開始許可が「禁止」であるものを除いて、起動識別子を起動識別子格納部1111に順に保存する。
As described above, in this processing flow, the activation identifier is stored in the activation
処理193または処理194が終了したら、処理195に進む。処理195では、起動識別子格納部1111に格納してある起動識別子に対応する開始番地にジャンプして、プログラムの処理を開始する。例えば、起動_1が起動識別子格納部1111に保存されている場合、起動テーブル1112に従い0x2000番地から処理を開始する。
When the
このようにして、マイコン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
時刻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
以後、システムが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
図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
時刻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
初期化処理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
なお、図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.
このように、起動時に実施する初期化処理のプログラムを格納したメモリ領域に異常が発生しても、メモリ内に初期化処理を複数備えてそれらを切り替えて実施することで、メモリの異常を回避し、プログラムの誤動作やシステムダウンを避けることができる。 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
処理172で、例外処理ハンドラを起動し、例外を処理してプログラムを続行する。
In
処理173では、例外発生識別子格納部117に保存された起動識別子を読み出し、過去に同じ起動識別子で例外が発生していないか、発生している場合は発生の連続回数または累積回数を調べる。例外発生の連続回数または蓄積回数が規定以上の場合は、その起動識別子を異常と判定する。図4の異常ケースの例では、起動_0が2回連続して例外を発生しており、その時点で起動_0を異常と判定している。
In the
処理173で異常と判定した場合は、処理174に進み、起動テーブル1112の該当起動識別子の開始許可を「禁止」に設定する。これにより、起動_0によるプログラム開始を回避することができる。
If it is determined in
処理173または処理174が終了したら、処理175に進んでマイコンのリセットを発生させ、図4のチャート図に示したように処理を続行する。
When the
実施例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
マイコン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
実施例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
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
まず処理691で、マイコンA61がリセット(電源投入時は起動)される。
First, in
処理692では、CPU割当テーブル6111に格納してある、物理CPU(CPU(0))に該当する論理CPUが有効な値であるか、すなわち不定値でないかを判別する。これは、電源投入時には、論理CPUの値が不定になっているためである。なお、CPU割当テーブル6111は、システム電源が保持されている場合は、リセットが発生しても初期化されないため、前回のリセット時にセットされた値が保持されている。
In
処理692で判定がYES、すなわち論理CPUが有効な値である場合、処理693を実施する。処理693は、CPU割当テーブル6111で最上位に記録されている物理CPUに対応させる(割り当てる)論理CPUを切り替える。例えば、現在、物理CPUであるCPU(0)に割り当てられている論理CPUがCPU_Aであれば、この割当てを変更し、CPU_Cを割り当てる。この割当ては、CPUプログラム起動テーブル6112に記録されている順(本実施例では下から上へ)に従って行うことができる。
If the determination in
この際、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
処理693または処理694が終了したら、処理695に進む。処理695では、CPU(0)に対する論理CPUの割当てを基準に、CPU(1)以降の論理CPUの割当てを実施する。上記の例では、CPU(0)にはCPU_Aが割り当てられているので、CPU(1)とCPU(2)には、それぞれCPU_BとCPU_Cが割り当てられる。
When the
この際、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
このようにして、マイコン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
補助的な処理を実行する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
処理672で、例外処理ハンドラを起動し、例外を処理してプログラムを続行する。
In
処理673では、例外発生識別子格納部617に保存された物理CPUを読みだし、過去に同じ物理CPUで例外が発生していないか、発生している場合は発生の連続回数または累積回数を調べる。例外発生の連続回数または蓄積回数が規定以上の場合は、その物理CPUを異常と判定する。図10の異常ケースの例では、CPU(1)が2回連続して例外を発生しており、その時点でCPU(1)を異常と判定している。
In the
処理673で異常と判定した場合は、処理674に進む。この処理では、該当物理CPUがメイン処理を実行する論理CPU(図11の説明で用いた例ではCPU_A)に現在割り当てられているかどうかを判定する。この判定をここで行うのは、もし、該当物理CPUがメイン処理を担当する論理CPUに割り当てられている場合に、次の処理675で行う、CPU割当テーブル6111のLOCKを「lock」に設定し開始許可を「禁止」に設定する処理を実施すると、この論理CPU(CPU_A)で行うメイン処理が実行できなくなるからである。
If it is determined that the
これを回避するために、この時点での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
処理673、処理674、または処理675が終了したら、処理676に進んでマイコンのリセットを発生させ、図10のチャート図に示したように処理を続行する。
When the
実施例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
FlashROM112に格納されているプログラムのメモリ上の配置も、実施例1(図5)と実施例2(図11)とを合わせたものである。すなわち、図11のように各CPUにプログラムが割り当てられるが、その割り当てられるプログラムは、図5のように各CPUに対し複数(図5の例では2つ)である。
The arrangement of the programs stored in the
マイコン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…制御装置、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
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.
前記切替手段は、選択された初期化処理プログラムを格納したメモリ領域に異常が生じた場合には、異常が生じたメモリ領域を前記割当て手順から除外して割当て手順を再編し、以後の前記マイクロコントローラの再起動時の初期化処理プログラムを、前記切替動作により選択することを特徴とする制御装置。 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 .
前記切替手段は、前記演算処理手段に異常が生じた場合には、異常が生じた演算処理手段を前記割当て手順から除外して割当て手順を再編し、以後の前記マイクロコントローラの再起動時に前記演算処理手段のそれぞれが実行する処理を、前記切替動作により選択することを特徴とする制御装置。 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 .
前記切替手段は、選択された初期化処理プログラムを格納したメモリ領域に異常が生じた場合には、異常が生じたメモリ領域を前記割当て手順から除外して割当て手順を再編し、以後の前記マイクロコントローラの再起動時の初期化処理プログラムを、前記切替動作により選択し、前記演算処理手段に異常が生じた場合には、異常が生じた演算処理手段を前記割当て手順から除外して割当て手順を再編し、以後の前記マイクロコントローラの再起動時に前記演算処理手段のそれぞれが実行する処理を、前記切替動作により選択することを特徴とする制御装置。 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.
前記制御装置は、前記演算処理手段が実行する処理を固定する機能を有し、前記切替手段は、実行する処理が固定されていない演算処理手段の処理を切り替える制御装置。 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.
前記制御装置は、実行中に例外が発生した前記演算処理手段を識別できる情報を記憶する例外発生記憶部を備える制御装置。 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.
前記切替手段は、選択された前記演算処理手段の処理の実行中に例外が発生したとき、この演算処理手段に対し、例外発生回数があらかじめ定めた回数以上の場合は、前記割当て手順から除外する制御装置。 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.
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)
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)
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 |
-
2008
- 2008-09-04 JP JP2008226764A patent/JP4864056B2/en not_active Expired - Fee Related
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 |