(57)【特許請求の範囲】
【請求項１】
演算処理を含む所定の制御処理を繰り返し実行する演算手段と、
ハイレベル及びローレベルの２つの信号状態を取るランパルス信号を出力するランパルス生成手段と、
前記ランパルス生成手段が出力する前記ランパルス信号の信号状態を切り替えるようにランパルスフラグの値を設定する監視手段とを備え、
前記演算手段は、前記制御処理を所定の処理時間内に実行できたか否かを判定し、
前記ランパルス生成手段は、前記処理時間内に実行できたことを示す判定結果が得られた場合は、前記ランパルスフラグの値に対応する信号状態の前記ランパルス信号を出力し、前記処理時間内に実行できなかったことを示す判定結果が得られた場合は、前記ランパルス信号の出力を停止し、
前記監視手段は、
前記演算手段によって演算可能な所定の演算問題を所定の監視周期毎に前記演算手段に演算させてその演算結果を取得し、
前記演算結果と、前記演算問題に対して予め設定された答えとを照合することで前記演算処理が正常に実行されたか否かを判定し、
前記演算処理が正常に実行されたときには、前記ランパルス信号の前記信号状態を前記監視周期の自然数倍からなる切替周期で切り替えるように前記ランパルスフラグの値を設定することを特徴とする演算装置。
【請求項２】
前記演算問題として、その演算問題に対する正しい答えが設定された第１演算問題と、その演算問題に対する誤った答えが設定された第２演算問題とが用いられ、
前記監視手段は、
前記第１演算問題に対する演算結果がその答えに一致するか否か、又は、前記第２演算問題に対する演算結果がその答えに一致しないか否かによって前記演算処理が正常に実行されたか否かを判定することを特徴とする請求項１に記載の演算装置。
【請求項３】
前記監視手段は、
前記第１演算問題と前記第２演算問題とを交互に前記演算手段に演算させ、
前記第１演算問題に対する演算結果がその答えに一致するときと、前記第２演算問題に対する演算結果がその答えに一致しないときに、前記ランパルス信号の前記信号状態を前記監視周期で切り替えるように前記ランパルスフラグの値を設定することを特徴とする請求項２に記載の演算装置。
【請求項４】
前記演算手段及びランパルス生成手段は、第１コンピュータからなり、
前記監視手段は、第２コンピュータからなることを特徴とする請求項１〜請求項３のいずれか一項に記載の演算装置。
【請求項５】
前記ランパルス信号の前記信号状態が前記切替周期で切り替わらなかったときには前記演算手段に前記制御処理の実行を中止させる演算制御手段を備えていることを特徴とする請求項１〜請求項４のいずれか一項に記載の演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演算装置に関するものである。
【０００２】
【従来の技術】
従来、車両において例えば電動パワーステアリング装置のモータ制御等を行う電子制御装置では、そのマイクロコンピュータが所定の制御ルーチンを一定の制御周期内で正常に実行しているか否かをウォッチドッグタイマ回路を用いて監視している。
【０００３】
マイクロコンピュータは、制御ルーチンを実行する過程で、この制御ルーチンの各制御処理に対応して設けられている判定フラグを正常状態又は異常状態のいずれかに設定する。そして、１回又は数回の制御ルーチンを実行する毎に周期的に実行する制御監視ルーチンにおいて各判定フラグの状態を判定し、全ての判定フラグが正常状態であったときには、ウォッチドッグタイマ回路に接続されたウォッチドッグ端子の信号状態（ハイレベル又はローレベル）を切り替える。このため、ウォッチドッグタイマ回路に制御監視ルーチンの周期で切り替わるランパルス信号（ウォッチドッグパルス）が出力され、ウォッチドッグタイマ回路がマイクロコンピュータの作動を許容する。
【０００４】
一方、マイクロコンピュータは、制御監視ルーチンにおいて、少なくとも１つの判定フラグが異常状態であったときには、ウォッチドッグ端子の信号状態を前回のままとし、あるいは、ランパルス信号の出力自体を停止する。このため、制御監視ルーチンの周期で切り替わるランパルス信号が入力されなくなることから、ウォッチドッグタイマ回路がマイクロコンピュータをリセットする。その結果、マイクロコンピュータが制御ルーチンを所定の制御時間内に実行できなかったときには、制御ルーチンの実行が外部から中止される。
【０００５】
【発明が解決しようとする課題】
ところが、マイクロコンピュータを構成するＣＰＵの演算回路（ＡＬＵ）や、ＲＯＭあるいはＲＡＭのメモリが何らかの理由で正常に機能しないことがある。例えば、ＲＡＭへのデータ書き換えができないことがある。この場合、制御ルーチンで実行する演算処理において誤った演算結果が出されるにも拘らず、制御ルーチンは所定の制御時間内に実行される。従って、各判定フラグは正常状態に設定され、ランパルス信号が制御監視ルーチンの周期で切り替わる。その結果、マイクロコンピュータがウォッチドッグタイマ回路によってリセットされず、間違った演算結果に基づく制御が実行されることになる。
【０００６】
本発明は、上記課題を解決するためになされたものであって、その目的は、演算装置の演算処理が正常に実行されず演算結果が誤っている可能性があるときに演算処理の実行を中止することができる演算装置を提供することにある。
【０００７】
【課題を解決するための手段】
上記課題を解決するため、請求項１に記載の発明は、演算処理を含む所定の制御処理を繰り返し実行する演算手段と、ハイレベル及びローレベルの２つの信号状態を取るランパルス信号を出力するランパルス生成手段と、前記ランパルス生成手段が出力する前記ランパルス信号の信号状態を切り替えるようにランパルスフラグの値を設定する監視手段とを備え、前記演算手段は、前記制御処理を所定の処理時間内に実行できたか否かを判定し、前記ランパルス生成手段は、前記処理時間内に実行できたことを示す判定結果が得られた場合は、前記ランパルスフラグの値に対応する信号状態の前記ランパルス信号を出力し、前記処理時間内に実行できなかったことを示す判定結果が得られた場合は、前記ランパルス信号の出力を停止し、前記監視手段は、前記演算手段によって演算可能な所定の演算問題を所定の監視周期毎に前記演算手段に演算させてその演算結果を取得し、前記演算結果と、前記演算問題に対して予め設定された答えとを照合することで前記演算処理が正常に実行されたか否かを判定し、前記演算処理が正常に実行されたときには、前記ランパルス信号の前記信号状態を前記監視周期の自然数倍からなる切替周期で切り替えるように前記ランパルスフラグの値を設定することを特徴とする。
【０００８】
請求項１に記載の発明によれば、演算手段が演算処理を正常に実行できない可能性があるときには、ランパルス生成手段が出力するランパルス信号の信号状態が所定の切替周期で切り替わらなくなる。従って、ランパルス信号を外部で監視し、演算処理が正常に実行できない可能性があるときに演算手段に演算処理を外部から中止させることが可能となる。その結果、演算装置の演算処理が正常に実行されず演算結果が誤っている可能性があるときに演算処理の実行を中止することができる。さらに、制御処理が処理時間内に実行できなかったときにはランパルス信号の出力が停止される。従って、ランパルス信号を外部で監視し、演算手段が演算処理を所定の処理時間内に実行できなかったときに演算手段の演算処理を外部から中止させることが可能となる。その結果、演算装置の演算処理が処理時間内に実行されなかったときに演算処理の実行を中止することができる。
【００１１】
請求項２に記載の発明は、請求項１に記載の発明において、前記演算問題として、その演算問題に対する正しい答えが設定された第１演算問題と、その演算問題に対する誤った答えが設定された第２演算問題とが用いられ、前記監視手段は、前記第１演算問題に対する演算結果がその答えに一致するか否か、又は、前記第２演算問題に対する演算結果がその答えに一致しないか否かによって前記演算処理が正常に実行されたか否かを判定することを特徴とする。
【００１２】
請求項２に記載の発明によれば、請求項１に記載の発明の作用に加えて、演算装置が演算処理を正常に実行しない可能性があるときに、その演算処理の実行をより確実に中止することができる。
【００１３】
請求項３に記載の発明は、請求項２に記載の発明において、前記監視手段は、前記第１演算問題と前記第２演算問題とを交互に前記演算手段に演算させ、前記第１演算問題に対する演算結果がその答えに一致するときと、前記第２演算問題に対する演算結果がその答えに一致しないときに、前記ランパルス信号の信号状態を前記監視周期で切り替えるように前記ランパルスフラグの値を設定することを特徴とする。
【００１４】
請求項３に記載の発明によれば、請求項２に記載の発明の作用に加えて、演算手段が演算処理を正常に実行できない可能性があるときには、ランパルス生成手段が出力するランパルス信号の信号状態が監視周期で切り替わらなくなる。従って、ランパルス信号の信号状態を監視周期の２倍以上の自然数倍からなる切替周期で切り替える場合に比較して、演算処理が正常に実行できない可能性があるときにより早い時点で演算手段に演算処理を外部から中止させることが可能となる。
【００１５】
請求項４に記載の発明は、請求項１〜請求項３のいずれか一項に記載の発明において、前記演算手段及びランパルス生成手段は、第１コンピュータからなり、前記監視手段は、第２コンピュータからなることを特徴とする。
【００１６】
請求項４に記載の発明によれば、請求項１〜請求項３のいずれか一項に記載の発明の作用に加えて、第１コンピュータが実行する演算処理が正常であるか否かが第２コンピュータによって監視される。従って、演算処理を行う第１コンピュータの負荷を増大させることなく、第２コンピュータによって第１コンピュータが実行する演算処理を監視することができる。
【００１７】
請求項５に記載の発明は、請求項１〜請求項４のいずれか一項に記載の発明において、前記ランパルス信号の前記信号状態が前記切替周期で切り替わらなかったときには前記演算手段に前記制御処理の実行を中止させる演算制御手段を備えていることを特徴とする。
【００１８】
請求項５に記載の発明によれば、請求項１〜請求項４のいずれか一項に記載の発明の作用に加えて、演算手段が演算処理を正常に実行できない可能性があるときには、演算手段が実行する制御処理が演算制御手段によって中止される。
【００１９】
【発明の実施の形態】
（第１実施形態）
以下、本発明を車両用の電子制御装置に具体化した第１実施形態を図１〜図５に従って説明する。
【００２０】
本実施形態の演算装置としての電子制御装置１０は、車両において例えば電動パワーステアリング装置のモータ制御御等の車両制御を行うためのものである。図２に示すように、電子制御装置１０は、同一の図示しない回路基板上に実装されたメインマイクロコンピュータ（以下、メインマイコンという。）１１、サブマイクロコンピュータ（以下、サブマイコンという。）１２、ウォッチドッグタイマ１３等によって構成されている。尚、メインマイコン１１及びサブマイコン１２は、それぞれ１チップマイコンである。本実施形態では、メインマイコン１１が演算手段、ランパルス生成手段及び第１コンピュータであり、サブマイコン１２が監視手段及び第２コンピュータである。また、ウォッチドッグタイマ１３が演算制御手段である。
【００２１】
メインマイコン１１は前記車両制御を行うためのものであって、メインＣＰＵ１４、ＲＯＭ１５、ＲＡＭ１６等から構成されている。メインマイコン１１は、車両制御を行うためのメイン制御ルーチンを所定の処理周期（例えば５００μｓｅｃ．）のタイマ割り込みで繰り返し実行する。
【００２２】
メイン制御ルーチンは、図４に示すように、順次実行されるｎ個の制御処理プログラムを備えている。各制御処理プログラムに従って実行される第１処理〜第ｎ処理は、それぞれ予め設定された処理時間内に実行されるように設定されている。即ち、各処理は通常それぞれの処理時間内に実行されるようになっているが、何らかの問題があると処理時間内に実行できないことがある。この状態を検出するため、各制御処理プログラムにはそれぞれに判定フラグＦＬＧ１，ＦＬＧ２，…，ＦＬＧｎが設けられている。各判定フラグＦＬＧ１〜ＦＬＧｎは、対応する制御処理がその処理時間内で実行できたか否かをその制御処理の実行毎に判定して記録するために設けられている。
【００２３】
メイン制御ルーチンに従って実行するメイン制御処理として、メインＣＰＵ１４は、図４に示すように、先ずＳ１１で各判定フラグＦＬＧ１〜ＦＬＧｎを「１」に設定した後、Ｓ１２〜Ｓｎで、各制御処理プログラムに従う制御処理を順次実行する。各制御処理において、メインＣＰＵ１４は、図示しないセンサ等の出力値や、他の電子制御装置から送信されるデータ等の入力情報を入力変数とする所定の演算処理を実行し、演算結果に基づく制御情報を各種制御機器あるいは他の電子制御装置に出力する。そして、メインＣＰＵ１４は、各制御処理を実行する毎に、実行した制御処理がその処理時間内で終了したときにはその制御処理に対応する判定フラグＦＬＧ１〜ＦＬＧｎを「０」に設定する。反対に、各制御処理がその処理時間内で終了しなかったときには対応する判定フラグＦＬＧ１〜ＦＬＧｎを「１」に設定する。メインＣＰＵ１４は、全ての制御処理を実行するとメイン制御ルーチンを終了する。
【００２４】
また、メインＣＰＵ１４は、メイン制御ルーチンの各制御処理プログラムをそれぞれ所定の処理時間内で実行できたか否かを判定するためのランパルス生成ルーチンを所定の判定周期毎に繰り返し実行する。本実施形態では、判定周期は、メイン制御ルーチンの処理周期の２倍の長さ（１ｍｓｅｃ．）に設定されている。
【００２５】
ランパルス生成ルーチンに従って実行するランパルス生成処理として、メインＣＰＵ１４は、図５に示すように、Ｓ２１〜Ｓ（２０＋ｎ）で、各判定フラグＦＬＧ１〜ＦＬＧｎが「０」であるか否かを順次判定する。そして、全ての判定フラグＦＬＧ１〜ＦＬＧｎが「０」であったときには、Ｓ（２１＋ｎ）で、サブマイコン１２が設定するランパルスフラグＲＰＦＬＧに基づいて設定した信号状態をランパルス信号ＳＲＰの信号状態としてウォッチドッグタイマ１３に出力する。詳述すると、ランパルスフラグＲＰＦＬＧが「１」であるときには、信号状態を「Ｈ」レベルとして出力し、また、ランパルスフラグＲＰＦＬＧが「０」であるときには、信号状態を「Ｌ」レベルとして出力する。即ち、メインマイコン１１は、「Ｈ」及び「Ｌ」レベルの２つの信号状態を取るランパルス信号ＳＲＰを出力する。
【００２６】
一方、Ｓ２１〜Ｓ（２０＋ｎ）のいずれかのステップＳｊ（２１≦ｊ≦２０＋ｎ、ｎは自然数）で判定フラグＦＬＧｋが「１」であったときにはＳ（２２＋ｎ）でランパルス信号ＳＲＰの出力を停止する。
【００２７】
即ち、メインＣＰＵ１４は、ランパルス生成処理として、実行したメイン制御ルーチンの各制御処理がそれぞれの処理時間内に実行できたときには、サブＣＰＵ１７が設定するランパルスフラグＲＰＦＬＧに基づいて信号状態が設定されるランパルス信号ＳＲＰをウォッチドッグタイマ１３に出力する。一方、実行したメイン制御ルーチンの制御処理がそれぞれの処理時間内に実行できなかったときには、ランパルスフラグＲＰＦＬＧの状態に関係なくランパルス信号ＳＲＰの出力を停止する。
【００２８】
サブマイコン１２はメインマイコン１１がメイン制御ルーチンの各制御処理で実行する演算処理が正常に実行されているか否かを監視するためのものであって、メインマイコン１１よりも処理能力が低いサブＣＰＵ１７と、ＲＯＭ１８及びＲＡＭ１９等から構成されている。サブマイコン１２は、メインマイコン１１の演算内容を監視するための演算監視ルーチンのみをメイン制御ルーチンよりも長い所定の監視周期（例えば、５ｍｓｅｃ．）で繰り返し実行する。
【００２９】
演算監視ルーチンに従って実行する演算監視処理として、サブＣＰＵ１７は、図１に示すように、Ｓ３１〜Ｓ３５で、予め順序付けてＲＯＭ１８に記憶されている一連の演算問題Ｑ１，Ｑ２，…，Ｑｋ，…，Ｑ１０（１≦ｋ≦１０、ｋは自然数）をその順序で１つずつ順次読み出し、読み出した演算問題Ｑｋをメインマイコン１１に送って演算させる。そして、Ｓ３６でその演算結果Ｍ１，Ｍ２，…，Ｍｋ，…，Ｍ１０をメインＣＰＵ１４から取得する。なお、本実施形態では１０個の演算問題Ｑ１〜Ｑ１０を順次メインマイコン１１に演算させているが、一連の演算問題Ｑｋの数は１０でなくてもよい。
【００３０】
ＲＯＭ１８に記憶されている各演算問題Ｑｋは、メインマイコン１１がメイン制御処理の各制御処理で実行する演算処理において実行する関数に入力される複数の変数ａｋ，ｂｋ，ｃｋからなる。そして、サブＣＰＵ１７は、この各変数ａｋ，ｂｋ，ｃｋをメインマイコン１１に前記関数にて演算処理させ、その演算結果Ｍｋを取得する。
【００３１】
さらに、ＲＯＭ１８には、各演算問題Ｑｋに対する答えＡ１，Ａ２，…，Ａｋ，…，Ａ１０が予め記憶されている。各答えＡ１〜Ａ１０は、その問題Ｑｋに対するメインマイコン１１の演算結果Ｍｋと照合するためのものである。各答えＡ１〜Ａ１０は、図３に示すように、メインマイコン１１に順次実行させる演算問題Ｑ１（即ち、変数ａ１，ｂ１，ｃ１）〜Ｑｋ（ａｋ，ｂｋ，ｃｋ）〜Ｑ１０（ａ１０，ｂ１０，ｃ１０）の順番ｋに対して、１つずつ順に正誤が切り替わるように設定されている。即ち、１番目の演算問題Ｑ１に対してはその演算問題Ｑ１に対する正しい答えＡ１が設定され、２番目の演算問題Ｑ２に対してはその演算問題Ｑ２に対する誤った答えＡ２が設定されている。同様に、順序が奇数番の各演算問題Ｑ３，Ｑ５，Ｑ７，Ｑ９に対してはその演算問題Ｑｋに対する正しい答えＡ３，Ａ５，Ａ７，Ａ９が設定され、順序が偶数番の各演算問題Ｑ４，Ｑ６，Ｑ８，Ｑ１０に対してはその演算問題Ｑｋに対する誤った答えＡ４，Ａ６，Ａ８，Ａ１０が設定されている。そして、サブＣＰＵ１７は、１０個の演算問題Ｑ１〜Ｑ１０を、その答えＡｋが交互に正誤となるようにメインＣＰＵ１４に演算問題Ｑｋを順番ｋで順次演算させる。なお、各演算問題Ｑ２，Ｑ４，Ｑ６，Ｑ８，Ｑ１０に対して設定される誤った答えＡ２，Ａ４，Ａ６，Ａ８，Ａ１０は、各演算問題Ｑ２，Ｑ４，Ｑ６，Ｑ８，Ｑ１０に対して得られる可能性がある１つの誤った演算結果であってもよく、また、複数の誤った演算結果であってもよい。本実施形態では、演算問題Ｑ１，Ｑ３，Ｑ５，Ｑ７，Ｑ９がそれぞれ第１演算問題であり、演算問題Ｑ２，Ｑ４，Ｑ６，Ｑ８，Ｑ１０がそれぞれ第２演算問題である。
【００３２】
次に、サブＣＰＵ１７は、Ｓ３７〜Ｓ４１で、今回実行する処理でメインＣＰＵ１４に実行させた演算問題Ｑｋの順番ｋと、その演算結果Ｍｋとに基づいて、ランパルス生成ルーチンでメインＣＰＵ１４が出力するランパルス信号ＳＲＰの信号状態をランパルスフラグＲＰＦＬＧとして設定する。
【００３３】
詳述すると、Ｓ３７で、今回演算させた演算問題Ｑｋの順番ｋが偶数番であるか否かを判定し、偶数番であったときには、Ｓ３８で、取得した演算結果Ｍｋがその演算問題Ｑｋに対する答えＡｋと一致しないか否かを判定する。そして、Ｓ３８で演算結果Ｍｋが答えＡｋと一致しないときには、Ｓ３９でランパルスフラグＲＰＦＬＧを「０」とし、このランパルスフラグＲＰＦＬＧをメインマイコン１１に出力して本処理を終了する。一方、Ｓ３８で演算結果Ｍｋが答えＡｋと一致したときには、Ｓ４０でランパルスフラグＲＰＦＬＧを「１」とし、このランパルスフラグＲＰＦＬＧをメインマイコン１１に出力して本処理を終了する。
【００３４】
また、サブＣＰＵ１７は、Ｓ３７で今回演算させた問題Ｑｋの順番ｋが奇数番であったときには、Ｓ４１で、取得した演算結果Ｍｋが、その問題Ｑｋに対する答えＡｋと一致するか否かを判定する。そして、Ｓ４１で演算結果Ｍｋが答えＡｋと一致したときには、Ｓ４０で、ランパルスフラグＲＰＦＬＧを「１」とし、このランパルスフラグＲＰＦＬＧをメインマイコン１１に出力して本処理を終了する。一方、Ｓ４１で演算結果Ｍｋが答えＡｋと一致しなかったときには、Ｓ３９でランパルスフラグＲＰＦＬＧを「０」とし、このランパルスフラグＲＰＦＬＧをメインマイコン１１に出力して本処理を終了する。
【００３５】
即ち、サブＣＰＵ１７は、Ｓ３７〜Ｓ４１で、正しい答えＡ１，Ａ３，Ａ５，Ａ７，Ａ９が設定されている演算問題Ｑ１，Ｑ３，Ｑ５，Ｑ７，Ｑ９に対するメインマイコン１１の演算結果Ｍ１，Ｍ３，Ｍ５，Ｍ７，Ｍ９が、各答えＡ１，Ａ３，Ａ５，Ａ７，Ａ９に一致したときに、メインマイコン１１が正常な演算処理を行っていると判定する。同様に、誤った答えＡ２，Ａ４，Ａ６，Ａ８，Ａ１０が設定されている問題Ｑ２，Ｑ４，Ｑ６，Ｑ８，Ｑ１０に対するメインマイコン１１の演算結果Ｍ２，Ｍ４，Ｍ６，Ｍ８，Ｍ１０が、各答えＡ２，Ａ４，Ａ６，Ａ８，Ａ１０に一致しないときに、メインマイコン１１が正常な演算処理を行っていると判定する。そして、サブＣＰＵ１７は、監視周期毎に順番ｋに従ってメインマイコン１１に実行させる各演算問題Ｑｋに対する演算結果Ｍｋが正しいときに、メインマイコン１１に出力するランパルスフラグＲＰＦＬＧを監視周期毎に切り替える。即ち、サブＣＰＵ１７は、メインマイコン１１が出力するランパルス信号ＳＲＰの信号状態を、監視周期の１倍（最小自然数）の長さの切替周期で切り替えるように設定する。
【００３６】
ウォッチドッグタイマ１３は公知の電子回路であり、ランパルス信号ＳＲＰの信号状態が監視周期で切り替わらなかったときには、リセット信号ＲＳＴをメインＣＰＵ１４に出力してリセットし、メイン制御処理の実行を中止させる。
【００３７】
次に、以上のように構成された本実施形態の作用について説明する。
メインマイコン１１は、処理周期毎に繰り返し実行するべきメイン制御処理において制御処理の１つが所定の処理時間内に実行できなかったときには、判定周期毎に実行するランパルス生成処理においてランパルス信号ＳＲＰの出力を停止する。すると、ランパルス信号ＳＲＰが入力されなくなったウォッチドッグタイマ１３がメインマイコン１１をリセットする。
【００３８】
従って、メインマイコン１１がメイン制御処理を所定の処理時間で実行されているか否かがウォッチドッグタイマ１３によって監視され、処理時間内に実行できなかったときにはメイン制御ルーチンの実行が中止される。
【００３９】
また、サブマイコン１２は、監視周期毎に実行する演算監視処理において、メインマイコン１１に演算させた演算問題Ｑｋの演算結果Ｍｋと、その演算問題Ｑｋに対する答えＡｋとを照合することによって、メインマイコン１１がメイン制御処理の各制御処理において実行する演算処理が正常に実行されるか否かを監視する。そして、演算処理が正常に実行されない可能性があるときには、メインマイコン１１が出力するランパルス信号ＳＲＰの信号状態を設定するランパルスフラグＲＰＦＬＧを監視周期で切り替えないようにする。すると、メインマイコン１１がランパルスフラグＲＰＦＬＧに基づいて出力するランパルス信号ＳＲＰの信号状態が監視周期で切り替わらない状態が発生し、ウォッチドッグタイマ１３がメインマイコン１１をリセットする。
【００４０】
従って、メインマイコン１１がメイン制御処理の各制御処理で演算処理を正常に実行しているか否かが監視され、各制御処理がその処理時間内に実行されている状態においても、演算処理が正常に実行されなかった可能性があるときにはメイン制御処理の実行が中止される。
【００４１】
次に、以上詳述した本実施形態によって得られる各効果を列挙する。
（１）  メインマイコン１１がメイン制御処理の各制御処理を処理時間内で実行している状態においても、各制御処理で演算処理が正常に実行されない可能性があるときにはメイン制御処理の実行が中止される。その結果、メインマイコン１１が正常な演算処理をしなかったことによる誤った演算結果に基づく制御を防止することができる。
【００４２】
（２）  メインマイコン１１に演算させる問題Ｑｋとして、正しい答えＡ１，Ａ３，Ａ５，Ａ７，Ａ９が設定された第１演算問題Ｑ１，Ｑ３，Ｑ５，Ｑ７，Ｑ９と、誤った答えＡ２，Ａ４，Ａ６，Ａ８，Ａ１０が設定された第２演算問題Ｑ２，Ｑ４，Ｑ６，Ｑ８，Ｑ１０とが用いられる。そして、第１演算問題Ｑｋに対する演算結果Ｍｋが正しい答えＡｋに一致するか否か、又は、第２演算問題Ｑｋに対する演算結果Ｑｋが誤った答えＡｋに一致しないか否かによって演算処理が正常に実行されているか否かが判定される。その結果、メインマイコン１１が正常な演算処理をしなかったことによる誤った演算結果に基づく制御をより確実に防止することができる。
【００４３】
（３）  正しい答えＡ１，Ａ３，Ａ５，Ａ７，Ａ９が設定された第１演算問題Ｑ１，Ｑ３，Ｑ５，Ｑ７，Ｑ９と、誤った答えＡ２，Ａ４，Ａ６，Ａ８，Ａ１０が設定された第２演算問題Ｑ２，Ｑ４，Ｑ６，Ｑ８，Ｑ１０とを交互にメインマイコン１１に演算させている。そして、第１演算問題Ｑｋに対する演算結果Ｍｋが正しい答えＱｋに一致するときと、第２演算問題Ｑｋに対する演算結果Ｍｋが誤った答えＡｋに一致しないときに、ランパルス信号ＳＲＰの信号状態を監視周期の１倍の切替周期毎に切り替えている。このため、ランパルス信号ＳＲＰの信号状態を監視周期の２倍以上の自然数倍の長さの切替周期毎に切り替えるようにした場合に比較して、メインマイコン１１が演算処理を正常に実行でなくなったときにランパルス信号ＳＲＰの信号状態がより早い時点で切り替わらなくなる。
【００４４】
従って、メインマイコン１１が実行するメイン制御処理において演算処理が正常に実行できなくなった可能性があるときに、より早い時点でメイン制御処理の実行を中止することができる。
【００４５】
（４）  メイン制御処理を実行するメインマイコン１１が、サブマイコン１２が実行する演算監視処理によって設定されるランパルスフラグＲＰＦＬＧに基づいて信号状態が設定されるランパルス信号ＳＲＰを出力する。このため、メインマイコン１１が実行するメイン制御処理での演算処理が正常であるか否かが、メイン制御処理を実行しないサブマイコン１２によって監視される。
【００４６】
従って、メイン制御処理を実行するメインマイコン１１の負荷を増大させることがなく、より簡易な構成のサブマイコン１２によってメインマイコン１１が実行するメイン制御処理を監視することができる。また、サブマイコン１２が監視結果に基づいて設定するランパルスフラグＲＰＦＬＧに基づいてメインマイコン１１がランパルス信号ＳＲＰを出力するので、演算処理を監視するサブマイコン１２の負荷が増大しない。その結果、簡易機能のサブマイコン１２を従来の電子制御装置に追加するだけで本実施形態の電子制御装置１０を構成することができる。
（第２実施形態）
次に、本発明を第１実施形態と同様の電子制御装置に具体化した第２実施形態を図６に従って説明する。
【００４７】
図６に示すように、本実施形態の演算装置としての電子制御装置２０は、メインマイコン２１、サブマイコン２２、第１ウォッチドッグタイマ２３及び第２ウォッチドッグタイマ２４等によって構成されている。本実施形態では、メインマイコン２１が演算手段、ランパルス生成手段及び第１コンピュータであり、サブマイコン２２が監視手段及び第２コンピュータである。
【００４８】
メインマイコン２１は前記第１実施形態のメインマイコン１１と同一の構成であって、前記処理周期でメイン制御ルーチンを繰り返し実行し、また、前記判定周期でランパルス制御ルーチンを繰り返し実行する。そして、メイン制御処理の各制御処理をその処理時間内で実行できたときにランパルス信号ＳＲＰ１を第１ウォッチドッグタイマ２３に出力可能となる。一方、各制御処理をその処理時間内で実行できなかったときにはランパルス信号ＳＲＰ１の第１ウォッチドッグタイマ２３への出力を停止する。
【００４９】
一方、サブマイコン２２は、前記第１実施形態でサブマイコン１２が監視周期で繰り返し実行する演算監視ルーチンを実行する。そして、各演算監視処理毎に、演算問題Ｑｋをメインマイコン２１に演算させてその演算結果Ｍｋを取得し、この演算結果Ｍｋを答えＡｋに照合することで、メインマイコン２１が演算処理を正常に実行できるか否かを判定する。次いで、メインマイコン２１が演算処理を正常に実行できたときには、ランパルス信号ＳＲＰ１の信号状態を監視周期で切り替えるようにランパルスフラグＲＰＦＬＧを設定してメインマイコン２１に出力する。
【００５０】
メインマイコン２１は、ランパルス生成処理においてメイン制御処理の各制御処理がその処理時間内に実行できたときに、サブマイコン２２が演算監視処理で設定したランパルスフラグＲＰＦＬＧの状態に基づいてランパルス信号ＳＲＰ１の信号状態を設定し、この信号状態でランパルス信号ＳＲＰ１を出力する。
【００５１】
また、本実施形態では、サブマイコン２２は、演算監視ルーチンに加え、メインマイコン２１が実行するランパルス生成ルーチンと同様のランパルス生成ルーチンを実行する。このランパルス生成ルーチンは、例えば演算監視ルーチンと同じ監視周期で繰り返し実行される。
【００５２】
このルーチンで実行するランパルス生成処理としてサブマイコン２２は、実行した演算監視ルーチンの各制御処理がその処理時間内に実行できたか否かを判定し、この判定結果に基づいてランパルス信号ＳＲＰ２を第２ウォッチドッグタイマ２４に出力する。出力するランパルス信号ＳＲＰ２の信号状態は、演算監視ルーチンの各制御処理がその処理時間内に実行できたときには、前回の処理で設定した信号状態から切り替えられる。一方、各制御処理がその処理時間内に実行できなかったときには出力が停止される。
【００５３】
即ち、サブマイコン２２は、演算監視処理の各制御処理をその処理時間内に実行できているときには、監視周期で信号状態が切り替わるランパルス信号ＳＲＰ２を出力する。反対に、各制御処理をその処理時間内に実行できなかったときにはランパルス信号ＳＲＰ２の出力自体を停止させる。
【００５４】
第１ウォッチドッグタイマ２３は、メインマイコン２１から出力されるランパルス信号ＳＲＰ１の信号状態が監視周期で切り替わらなかったときに、メインマイコン２１及びサブマイコン２２を共にリセットする。
【００５５】
第２ウォッチドッグタイマ２４は、サブマイコン２２から出力されるランパルス信号ＳＲＰ２の信号状態が監視周期で切り替わらなかったときに、メインマイコン２１及びサブマイコン２２を共にリセットする。
【００５６】
以上のように構成された本実施形態は、前記第１実施形態の作用に加えて次のような作用を有する。
メインマイコン１１は、処理周期毎に繰り返し実行するべきメイン制御処理において制御処理の１つが所定の処理時間内に実行できなかったときには、判定周期毎に実行するランパルス生成処理においてランパルス信号ＳＲＰ１の出力を停止する。すると、ランパルス信号ＳＲＰ１が入力されなくなった第１ウォッチドッグタイマ２３がメインマイコン２１及びサブマイコン２２を共にリセットする。
【００５７】
従って、メインマイコン１１がメイン制御処理を所定の処理時間で実行されているか否かが第１ウォッチドッグタイマ２３によって監視され、処理時間内に実行できなかったときにはメイン制御ルーチンの実行が、サブマイコン２２の演算監視処理の実行と共に中止される。
【００５８】
また、サブマイコン２２が監視周期毎に繰り返し実行する演算監視処理が処理時間内に実行できなかったときには、同じ監視周期毎に実行するランパルス生成処理においてランパルス信号ＳＲＰ２の出力を停止する。すると、ランパルス信号ＳＲＰ２が入力されなくなった第２ウォッチドッグタイマ２４がメインマイコン２１及びサブマイコン２２を共にリセットする。
【００５９】
従って、サブマイコン２２が演算監視処理を所定の処理時間内に実行しているかる否かが第２ウォッチドッグタイマ２４によって外部から監視され、処理時間内に実行できなかったときにはメインマイコン２１によるメイン制御処理と共にその実行が中止される。
【００６０】
以上詳述した本実施形態によれば、前記第１実施形態の（１）〜（４）に記載した各効果の他に下記の効果を得ることができる。
（１）  サブマイコン２２が実行する演算監視処理が所定の処理時間内に実行できたか否かが自己診断され、実行できなかったときにはメインマイコン２１が実行するメイン制御処理と共に演算監視処理の実行が中止される。
【００６１】
従って、メインマイコン２１がメイン制御処理で実行する演算処理が正常に実行されているか否かをサブマイコン２２が演算監視処理によって正常に監視できなくなったときにはメイン制御処理の実行が中止される。このため、メインマイコン２１がメイン制御処理で実行する演算処理が正常に実行されているか否かをより確実に監視し、正常に実行されない可能性があるときにメイン制御処理の実行を中止することができる。
【００６２】
次に、上記各実施形態以外の実施形態を列挙する。
・  上記第１実施形態で、メインマイコン１１が、メイン制御ルーチンをランパルス生成ルーチンと共に判定周期で実行する構成とする。この場合にも、上記実施形態の（１）〜（４）の各効果を得ることができる。第２実施形態においても同様である。
【００６３】
・  上記第１実施形態で、サブマイコン１２が実行する演算監視処理においてメインマイコン１１に演算させる演算問題Ｑｋに対する答えＡｋが、演算問題Ｑｋの順序に対して、２つ毎あるいは３つ毎のように複数個毎に正誤が切り替わるように設定された構成とする。例えば、２つ毎に正誤を切り替える場合には、１，２番目の各演算問題Ｑ１，Ｑ２に対しては正しい答えＡ１，Ａ２を設定し、３，４番目の各演算問題Ｑ３，Ｑ４に対しては誤った答えＡ３，Ａ４を設定するといったように正誤を設定する。そして、演算監視処理において１，２番目の演算問題Ｑ１，Ｑ２に対するメインマイコン１１の演算結果Ｍ１，Ｍ２が正しい答えＡ１，Ａ２に一致するときには、ランパルスフラグＲＰＦＬＧを２回連続して「０」に設定する。また、３，４番目の演算問題Ｑ３，Ｑ４に対する演算結果Ｍ３，Ｍ４が誤った答えＡ３，Ａ４に一致しないときにはランパルスフラグＲＰＦＬＧを２回連続して「１」に設定する。このようにランパルスフラグＲＰＦＬＧを設定することで、メインマイコン１１が出力するランパルス信号ＳＲＰの信号状態を、監視周期の２倍（自然数倍）の長さの切替周期で切り替えるように設定する。この場合には、上記実施形態の（１），（２），（４）に記載した各効果を得ることができる。但し、ランパルス信号ＳＲＰの信号状態を監視周期で切り替えるように設定する前記実施形態と比較して、メインマイコン１１が実行する演算処理が正常に実行されなくなったときに演算処理を中止するタイミングが遅くなる。第２実施形態においても同様である。
【００６４】
・  上記第１実施形態で、サブマイコン１２が、メインマイコン１１の演算監視処理だけでなく、車両の例えばエンジン制御、トランスミッション制御等のパワートレイン制御や、サスペンション制御、パワーステアリング制御、スキッド制御等の車体制御等の制御処理をも実行する構成とする。この場合には、上記実施形態の（１），（２），（３）に記載した各効果を得ることができる。第２実施形態においても同様である。
【００６５】
・  上記第２実施形態で、メインマイコン２１がサブマイコン２２に一連の演算問題Ｑｋを順次演算させることで、サブマイコン２２が実行する演算処理が正常に実行されているか否かを外部から監視し、異常時にランパルス信号ＳＲＰ２の信号状態を異常状態とする構成とする。即ち、両マイコン２１，２２が、それぞれ制御処理で実行する演算処理が正常に行われているか否かを互いに監視する構成とする。このような構成によれば、第１実施形態の（１）〜（４）に記載したの各効果と第２実施形態の（１）に記載した効果に加え、サブマイコン２２が演算監視処理で実行する演算処理が正常に実行されているか否かを監視することができる。
【００６６】
・  上記第１実施形態では、それぞれが１チップマイコンであるメインマイコン１１及びサブマイコン１２が回路基板に実装された電子制御装置１０に具体化したが、同一の半導体チップにメインマイクロコンピュータ１１とサブマイクロコンピュータ１２とが形成された電子制御装置１０に具体化してもよい。第２実施形態も同様である。
【００６７】
また、メインマイコン１１あるいはサブマイコン１２の構成要素が別々の半導体チップに形成されたマルチチップマイコンであってもよく、メインＣＰＵ１４あるいはサブＣＰＵ１７だけが半導体チップに形成されたマイクロプロセッサを構成要素とするマイコンであってもよい。第２実施形態も同様である。
【００６８】
・  図７（ａ）に示すように、演算手段を第１コンピュータとしてのメインマイクロコンピュータ３０とし、ランパルス生成手段及び演算監視手段を第２コンピュータとしてのサブマイクロコンピュータ３１とする。そして、メインマイコン３０が実行するメイン制御処理の各制御処理で設定された判定フラグＦＬＧ１〜ＦＬＧｎに基づき、サブマイコン３１が実行するランパルス生成処理で出力するランパルス信号ＳＲＰの信号状態を切り替えるとともに、演算監視処理での照合結果に基づいてランパルス信号ＳＲＰの信号状態を設定する。このサブマイコン３１が生成するランパルス信号ＳＲＰを入力するウォッチドッグタイマ３２が、メインマイコン３０が実行するメイン制御処理での演算処理が正常でなかったときにメインマイコン３０及びサブマイコン３１を共にリセットする構成とする。このような構成では、上記第１実施形態の（１）〜（４）に記載した各効果を得ることができる上に、メインマイコン１１の負荷をより小さくすることができる。
【００６９】
・  図７（ｂ）に示すように、演算手段、ランパルス生成手段及び監視手段を、同一のマイクロコンピュータ４０とし、このマイコン４０が、メイン制御ルーチン及びランパルス生成ルーチンに加えて、演算監視ルーチンをも実行する構成とする。そして、メイン制御処理の各制御処理で実行する演算処理が正常に実行されているか否かを演算監視処理によって自己診断し、その診断結果に基づいて設定する信号状態をランパルス生成ルーチンで生成するランパルス信号の信号状態とする構成とする。このランパルス信号に基づいてウォッチドッグタイマ４１が、マイコン４０をリセットする。この場合には、メイン制御処理を実行するマイクロコンピュータ４０自らが、自身で行う演算処理が正常に実行されているか否かを判定し、その結果に基づいてメイン制御処理の実行を外部から中止することができる。このような構成では、上記実施形態の（１）〜（３）の各効果を得ることができる。
【００７０】
・  本発明を実施する演算装置は、車両制御を行う電子制御装置に限らず、演算処理を行う演算手段を備えた各種測定装置、各種遊戯装置等の電子機器であってもよい。
【００７１】
以下、前述した各実施形態から把握される技術的思想をその効果とともに列挙する。
（１）  請求項４に記載の発明において、前記第２コンピュータ（図６に示すサブマイコン２２）は、２つの信号状態を取るランパルス信号を出力するとともに、前記監視周期毎に演算問題を前記演算手段に演算させてその演算結果を取得したときにランパルス信号の信号状態を切り替える副ランパルス生成手段（同じくサブマイコン２２）を備えていることを特徴とする演算装置（同じく電子制御装置２０）。
【００７２】
このような構成によれば、第１コンピュータ（同じくメインマイコン２１）に加え、第２コンピュータが所定の処理時間で演算処理を実行しているか否かを監視し、実行できない可能性があったときに外部から演算処理の実行を中止させることが可能となる。
【００７３】
（２）  請求項１〜請求項３のいずれか一項に記載の発明において、前記演算手段、ランパルス生成手段及び監視手段は、第１コンピュータ（メインマイコン２１）が具備するとともに第２コンピュータ（サブマイコン２２）も具備し、前記第２コンピュータの監視手段は前記第１コンピュータの演算処理が正常に実行されたか否かを監視し、第１コンピュータの監視手段は第２コンピュータの演算処理が正常に実行されたか否かを監視することを特徴とする演算装置。
【００７４】
このような構成によれば、それぞれが制御処理を実行する２つのコンピュータ同士で互いに演算処理が正常に実行されているか否かを監視して、演算処理の実行を中止させることが可能となる。
【００７５】
（３）  請求項１〜請求項３のいずれか一項に記載の発明において、前記演算手段は第１コンピュータ（図７（ａ）におけるメインマイコン３０）からなり、前記ランパルス生成手段及び監視手段は第２コンピュータ（同じくサブマイコン３１）からなることを特徴とする演算装置。
【００７６】
このような構成によれば、演算処理を行う第１コンピュータの負荷を増大させることなく、第２コンピュータによって第１コンピュータが実行する演算処理を監視することができる。
【００７７】
（４）  請求項１〜請求項３のいずれか一項に記載の発明において、前記演算手段、ランパルス生成手段及び監視手段は同一のコンピュータ（図７（ｂ）におけるマイクロコンピュータ４０）からなることを特徴とする演算装置。
【００７８】
このような構成によれば、コンピュータが実行する演算処理が正常であるか否かをコンピュータ自身で監視し、演算処理が正常でない可能性があるときに演算処理の実行を外部から中止することが可能となる。
【００７９】
【発明の効果】
請求項１〜請求項５に記載の発明によれば、演算装置の演算処理が所定の処理時間内に実行されている状態においても、正常に実行されず演算結果が誤っている可能性があるときには演算処理の実行を中止することができる。
【図面の簡単な説明】
【図１】  第１実施形態の電子制御装置でサブマイコンが実行する演算監視ルーチンのフローチャート。
【図２】  電子制御装置の構成を示すブロック図。
【図３】  演算監視ルーチンでメインマイコンに演算させる演算問題を示す表。
【図４】  メインマイコンが実行するメイン制御ルーチンのフローチャート。
【図５】  メインマイコンが実行するランパルス生成ルーチンのフローチャート。
【図６】  第２実施形態における電子制御装置の構成を示すブロック図。
【図７】  （ａ），（ｂ）は共にその他の実施形態における電子制御装置の構成を示すブロック図。
【符号の説明】
１０…演算装置としての電子制御装置、１１…演算装置を構成する演算手段、ランパルス生成手段及び第１コンピュータとしてのメインマイクロコンピュータ、１２…演算装置を構成する監視手段及び第２コンピュータとしてのサブマイクロコンピュータ、１３…演算装置を構成する演算制御手段としてのウォッチドッグタイマ、２０…演算装置としての電子制御装置、２１…演算装置を構成する演算手段、ランパルス生成手段及び第１コンピュータとしてのメインマイクロコンピュータ、２２…演算装置を構成する監視手段、第２コンピュータ及び副ランパルス生成手段としてのサブマイクロコンピュータ、３０…演算手段及び第１コンピュータとしてのメインマイクロコンピュータ、３１…ランパルス生成手段、監視手段及び第２コンピュータとしてのサブマイコン、４０…演算手段、ランパルス生成手段、監視手段としてのマイクロコンピュータ、Ａ１〜Ａ１０…答え、Ｍ１〜Ｍ１０…演算結果、Ｑ１，Ｑ３，Ｑ５，Ｑ７，Ｑ９…演算問題としての第１演算問題、Ｑ２，Ｑ４，Ｑ６，Ｑ８，Ｑ１０…演算問題としての第２演算問題、ＳＲＰ…ランパルス信号、ＳＲＰ１…ランパルス信号、ＳＲＰＰ２…ランパルス信号。
【図１】
0004003420.tif 000002
【図２】
0004003420.tif 000003
【図３】
0004003420.tif 000004
【図４】
0004003420.tif 000005
【図５】
0004003420.tif 000006
【図６】
0004003420.tif 000007
【図７】
0004003420.tif 000008