(57)【要約】【課題】回路構成又は回路処理の複雑化を抑止しつつ演算異常に対して優れた対応が可能な演算異常判断機能付き演算装置を提供すること。【解決手段】マイクロコンピュータ１の演算異常を判定した場合（Ｓ１０８）にシステムを停止するのではなくリセットをかけて（Ｓ１００）、演算を再実行する。好適には、演算異常が連続して生起する場合にはシステムを停止する。【選択図】図２
2006259935.tif 000002
【特許請求の範囲】
【請求項１】
算術演算装置及び所定数のレジスタを含むCPUと、データ及びプログラムを保持するRAM及びROMを含むメモリと、入出力インターフェイスと、これらＣＰＵ、メモリ及び入出力インターフェイスの間の情報伝達を行うバスとを備えて所定の演算ルーチンを所定インタバルで繰り返し実行するマイクロコンピュータと、前記マイクロコンピュータに内蔵されるかまたは外付けされて前記マイクロコンピュータの演算異常を判定する演算異常判定回路とを備える演算異常判断機能付き演算装置において、
前記演算異常判定回路は、
前記演算異常を検出した場合に前記ＣＰＵを初期状態にリセットする演算異常時リセット回路を有することを特徴とする演算異常判断機能付き演算装置。
【請求項２】
請求項１記載の演算異常判断機能付き演算装置において、
前記演算異常判定回路及び前記演算異常時リセット回路は、
前記マイクロコンピュータに外付けされることを特徴とする演算異常判断機能付き演算装置。
【請求項３】
請求項２記載の演算異常判断機能付き演算装置において、
複数の前記マイクロコンピュータの演算異常判定と演算異常時リセットとを行う所定の診断用マイクロコンピュータを前記演算異常判定回路及び前記演算異常時リセット回路として有し、前記診断用マイクロコンピュータは、交信可能に接続された多数の前記マイクロコンピュータの前記演算異常判定を順次行うとともに、演算異常と判定した前記マイクロコンピュータをリセットすることを特徴とする演算異常判断機能付き演算装置。
【請求項４】
請求項１記載の演算異常判断機能付き演算装置において、
前記マイクロコンピュータに入力される入力データと前記マイクロコンピュータから出力される出力データとに基づいて、前記両データがあらかじめ定められた関係にあるかどうかに基づいて前記演算異常の判定を行うことを特徴とする演算異常判断機能付き演算装置。
【請求項５】
請求項１記載の演算異常判断機能付き演算装置において、
前記演算異常判定回路は、
前記演算ルーチンをｎ回（ｎは１を含む正の整数）実行するごとに前記演算ルーチンと等しい異常判定ルーチンにあらかじめ定められた一定値を入力データとして与えてこの異常判定ルーチンを実行し、
今回実行された前記異常判定ルーチンの演算結果をあらかじめ記憶する前記異常判定ルーチンの正常な演算結果と比較し、
前記両演算結果が異なる場合に、前記所定のサブルーチンの演算結果
は異常と判定して前記演算異常を示す信号を出力することを特徴とする演算異常判断機能付き演算装置。
【請求項６】
請求項１記載の演算異常判断機能付き演算装置において、
前記演算異常判定回路は、
前記演算ルーチンの一部である所定の前記サブルーチンの実施直前又は直後に、前記所定のサブルーチンと等しい異常判定ルーチンにあらかじめ定められた一定値を入力データとして与えてこの異常判定ルーチンを実行し、
今回実行された前記異常判定ルーチンの演算結果をあらかじめ記憶する前記異常判定ルーチンの正常な演算結果と比較し、
前記両演算結果が異なる場合に、前記所定のサブルーチンの演算結果
は異常と判定して前記演算異常を示す信号を出力することを特徴とする演算異常判断機能付き演算装置。
【請求項７】
請求項１記載の演算異常判断機能付き演算装置において、
前記演算異常判定回路は、
前記演算異常が連続して所定回数発生した場合に、前記マイクロコンピュータの作動を少なくとも所定時間停止することを特徴とする演算異常判断機能付き演算装置。
【請求項８】
算術演算装置及び所定数のレジスタを含むCPUと、データ及びプログラムを保持するRAM及びROMを含むメモリと、入出力インターフェイスと、これらＣＰＵ、メモリ及び入出力インターフェイスの間の情報伝達を行うバスとを備えて所定の演算ルーチンを所定インタバルで繰り返し実行するマイクロコンピュータと、前記マイクロコンピュータに内蔵されるかまたは外付けされて前記マイクロコンピュータの演算異常を判定する演算異常判定回路とを備える演算異常判断機能付き演算装置において、
前記演算ルーチンをｎ回（ｎは１を含む正の整数）実行するごとに前記演算ルーチンと等しい異常判定ルーチンにあらかじめ定められた一定値を入力データとして与えてこの異常判定ルーチンを実行し、
今回実行された前記異常判定ルーチンの演算結果をあらかじめ記憶する前記異常判定ルーチンの正常な演算結果と比較し、
前記両演算結果が異なる場合に、前記所定のサブルーチンの演算結果は異常と判定して前記演算異常を示す信号を出力することを特徴とする演算異常判断機能付き演算装置。
【請求項９】
算術演算装置及び所定数のレジスタを含むCPUと、データ及びプログラムを保持するRAM及びROMを含むメモリと、入出力インターフェイスと、これらＣＰＵ、メモリ及び入出力インターフェイスの間の情報伝達を行うバスとを備えて所定の演算ルーチンを所定インタバルで繰り返し実行するマイクロコンピュータと、前記マイクロコンピュータに内蔵されるかまたは外付けされて前記マイクロコンピュータの演算異常を判定する演算異常判定回路とを備える演算異常判断機能付き演算装置において、
前記演算異常判定回路は、
前記演算ルーチンの一部である所定の前記サブルーチンの実施直前又は直後に、前記所定のサブルーチンと等しい異常判定ルーチンにあらかじめ定められた一定値を入力データとして与えてこの異常判定ルーチンを実行し、
今回実行された前記異常判定ルーチンの演算結果をあらかじめ記憶する前記異常判定ルーチンの正常な演算結果と比較し、
前記両演算結果が異なる場合に、前記所定のサブルーチンの演算結果は異常と判定して前記演算異常を示す信号を出力することを特徴とする演算異常判断機能付き演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば車両制御用マイクロコンピュータなどのデジタル演算装置における演算異常の判定技術及びそれへの対応技術に関する。
【背景技術】
【０００２】
モータのトルクアシストによってステアリングの操舵力を補助する電動パワーステアリング装置（EPS）では、検出したステアリングの操舵トルクに応じてモータに通電すべき電流指令値を演算しており、電流指令値を演算するＣＰＵが暴走等により間違った演算結果を出力すると、モータのアシスト量に過不足が生じて安定したステアリング操舵を確保できなくなる。
【０００３】
この問題に対し、下記の特許文献１、２は、ＣＰＵの演算結果が想定範囲を逸脱した場合に演算異常と判定してシステムを停止することを提案している。
【特許文献１】特開２００２−６７９８８号公報
【特許文献２】特開２００３−３３５２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した演算異常対処方法では、演算異常を判定してモータ制御停止を行うと操舵トルクのアシストが急に消失するため、操舵フィーリングが著しく悪化するという問題が発生した。
【０００５】
また、演算結果が前記想定範囲内であっても正常な値となる異常を検出することができず、この場合には操舵フィーリングの異常を解消することが原理的にできなかった。
【０００６】
この種の問題は、ＥＰＳ用制御装置に限らずマイコン装置特にＣＰＵの過熱が生じやすい車載マイコン装置において克服されるべき重要課題となっていた。
【０００７】
本発明は上記問題点に鑑みなされたものであり、演算異常に対して優れた対応が可能な演算異常判断機能付き演算装置を提供することをその目的としている。
【課題を解決するための手段】
【０００８】
上記課題を解決する第１発明の演算異常判断機能付き演算装置は、算術演算装置及び所定数のレジスタを含むCPUと、データ及びプログラムを保持するRAM及びROMを含むメモリと、入出力インターフェイスと、これらＣＰＵ、メモリ及び入出力インターフェイスの間の情報伝達を行うバスとを備えて所定の演算ルーチンを所定インタバルで繰り返し実行するマイクロコンピュータと、前記マイクロコンピュータに内蔵されるかまたは外付けされて前記マイクロコンピュータの演算異常を判定する演算異常判定回路とを備える演算異常判断機能付き演算装置において、前記演算異常判定回路が、前記演算異常を検出した場合に前記ＣＰＵを初期状態にリセットする演算異常時リセット回路を有することを特徴としている。
【０００９】
すなわち、この発明では、所定の判定方法を用いて演算異常を検出した場合にこの異常な演算結果を外部へ出力することなく演算ルーチンを初期状態に戻す。これにより、演算異常を発見した場合にただちに再演算を開始するため、マイクロコンピュータが恒常的に故障したのではなく、過熱や侵入ノイズなどにより一時的な演算異常状態となった場合にはわずかの時間遅れ（演算ルーチンの１サイクル分の遅れ）で正常な結果だけを外部に出力することができる。また、上記した本発明の演算異常排除技術によれば、従来公知の演算異常を判定する回路機能すなわち演算異常判定回路に加えて、すべてのＣＰＵに通常装備されているリセット命令を演算異常判定時に出力する演算異常時リセット回路を追加するだけでよく、回路構成の複雑化もほとんど生じることがなく、簡便であるため、極めて実用性に優れる利点がある。
【００１０】
なお、本発明でいう演算異常判定回路及び演算異常時リセット回路は、マイコンソフトウエア処理で構成されてもよく、あるいはデジタルハードウエア回路で構成されてもよいことは当然である。
【００１１】
また、演算ルーチンは、順次実施される複数のサブルーチンにより構成されることができ、演算異常の判定は各サブルーチンの終了ごとに行うことができる。これにより、演算ルーチンの初期に実施されるサブルーチンの演算異常時には時間遅れを抑止しつつリセット動作を行うことができる。
【００１２】
好適態様において、前記演算異常判定回路及び前記演算異常時リセット回路は、前記マイクロコンピュータに外付けされる。すなわち、この態様では、上記した演算異常の判定が判定されるべきマイクロコンピュータを用いるのではなく、このマイクロコンピュータに外付けされるハードウエア回路を用いて構成される。これにより、判定されるべきマイクロコンピュータ自体が演算異常状態に陥って演算異常判定自体の信頼性が確保されないといった不具合を防止することができ、信頼性を向上することができる。
【００１３】
好適な態様において、複数の前記マイクロコンピュータの演算異常判定と演算異常時リセットとを行う所定の診断用マイクロコンピュータを前記演算異常判定回路及び前記演算異常時リセット回路として有し、前記診断用マイクロコンピュータは、交信可能に接続された多数の前記マイクロコンピュータの前記演算異常判定を順次行う。このようにすれば、多数のマイクロコンピュータの演算異常対策を単一の診断用マイクロコンピュータにて行うことができるため、回路構成を簡素化することができる。たとえば、通常の車載制御系では、各機器を制御するためのローカルマイクロコンピュータと、これら各ローカルマイクロコンピュータに指令を出力する全体制御用のメインマイクロコンピュータとを有することが多い。この場合には、このメインマイクロコンピュータにこの診断用マイクロコンピュータの機能を装備すればよいため回路構成の複雑化を防止することができる。
【００１４】
好適な態様において、前記マイクロコンピュータに入力される入力データと前記マイクロコンピュータから出力される出力データとに基づいて、前記両データがあらかじめ定められた関係にあるかどうかに基づいて前記演算異常の判定を行う。すなわち、この態様では、演算異常は、マイクロコンピュータに今回入力された入力データにより決定される出力データの正常範囲に、マイクロコンピュータから今回出力された出力データの値が所属するかどうかにより判定することができる。なお、入力データの値に関わらずあり得ない出力データの値であれば入力データの値を参照することなく、演算異常と判定することもできる。
【００１５】
好適な態様において、前記演算異常判定回路は、前記演算ルーチンをｎ回（ｎは１を含む正の整数）実行するごとに前記演算ルーチンと等しい異常判定ルーチンにあらかじめ定められた一定値を入力データとして与えてこの異常判定ルーチンを実行し、今回実行された前記異常判定ルーチンの演算結果をあらかじめ記憶する前記異常判定ルーチンの正常な演算結果と比較し、前記両演算結果が異なる場合に、前記所定のサブルーチンの演算結果は異常と判定して前記演算異常を示す信号を出力する。
【００１６】
すなわち、この態様によれば、入力された入力データにもとづいてあらかじめ定められた所定の出力データを演算する演算ルーチンをたとえば１回実施する度に入力データとして特定のデータを用いてこの演算ルーチンを異常判定ルーチンとして再実行し、得られた出力データをあらかじめ記憶している出力データと比較する。これにより、演算ルーチンの演算結果と異常判定ルーチンの演算結果が異なる場合に異常と判定することができる。また、この態様では、演算異常を判定するための特別のプログラムを保持する必要がないため、メモリ規模を減らすことができる。
【００１７】
なお、両演算結果が異なるのは、演算ルーチンの演算異常、異常判定ルーチンの演算異常、両演算結果の判定動作の不良が考えられるが、いずれにせよこれらの演算異常が偶発的に発生する場合には、リセットにより演算ルーチンを遅滞なく再実施することにより問題なく演算を再実施することができる。
【００１８】
好適な態様において、前記演算異常判定回路は、前記演算ルーチンの一部である所定の前記サブルーチンの実施直前又は直後に、前記所定のサブルーチンと等しい異常判定ルーチンにあらかじめ定められた一定値を入力データとして与えてこの異常判定ルーチンを実行し、今回実行された前記異常判定ルーチンの演算結果をあらかじめ記憶する前記異常判定ルーチンの正常な演算結果と比較し、前記両演算結果が異なる場合に、前記所定のサブルーチンの演算結果は異常と判定して前記演算異常を示す信号を出力する。
【００１９】
すなわち、この態様では、演算ルーチンの一部であるサブルーチンごとに演算異常判定を行う。これにより演算ルーチンの初期のサブルーチンにて演算異常を検出した場合には、この演算ルーチンの終了を待つことなく直ちにリセット動作を行って演算ルーチンの演算を最初から再開することができる。また、この態様では、演算異常を判定するための特別のプログラムを保持する必要がないため、メモリ規模を減らすことができる。
【００２０】
好適な態様において、前記演算異常判定回路は、前記演算異常が連続して所定回数発生した場合に、前記マイクロコンピュータの作動を少なくとも所定時間停止する。これにより、たとえばマイクロコンピュータの永続的な故障時にその異常出力が外部に出力されるのを確実に禁止することができる。
【００２１】
上記課題を解決する第２発明の演算異常判断機能付き演算装置は、算術演算装置及び所定数のレジスタを含むCPUと、データ及びプログラムを保持するRAM及びROMを含むメモリと、入出力インターフェイスと、これらＣＰＵ、メモリ及び入出力インターフェイスの間の情報伝達を行うバスとを備えて所定の演算ルーチンを所定インタバルで繰り返し実行するマイクロコンピュータと、前記マイクロコンピュータに内蔵されるかまたは外付けされて前記マイクロコンピュータの演算異常を判定する演算異常判定回路とを備える演算異常判断機能付き演算装置において、前記演算異常判定回路が、前記演算ルーチンをｎ回（ｎは１を含む正の整数）実行するごとに前記演算ルーチンと等しい異常判定ルーチンにあらかじめ定められた一定値を入力データとして与えてこの異常判定ルーチンを実行し、今回実行された前記異常判定ルーチンの演算結果をあらかじめ記憶する前記異常判定ルーチンの正常な演算結果と比較し、前記両演算結果が異なる場合に、前記所定のサブルーチンの演算結果は異常と判定して前記演算異常を示す信号を出力することを特徴とする。これにより、確実に演算異常を判定できるとともに、演算異常を判定するための特別のプログラムを保持する必要がないためメモリ規模を減らすことができる。
【００２２】
上記課題を解決する第３発明の演算異常判断機能付き演算装置は、  好適な態様において、算術演算装置及び所定数のレジスタを含むCPUと、データ及びプログラムを保持するRAM及びROMを含むメモリと、入出力インターフェイスと、これらＣＰＵ、メモリ及び入出力インターフェイスの間の情報伝達を行うバスとを備えて所定の演算ルーチンを所定インタバルで繰り返し実行するマイクロコンピュータと、前記マイクロコンピュータに内蔵されるかまたは外付けされて前記マイクロコンピュータの演算異常を判定する演算異常判定回路とを備える演算異常判断機能付き演算装置において、前記演算異常判定回路が、前記演算ルーチンの一部である所定の前記サブルーチンの実施直前又は直後に、前記所定のサブルーチンと等しい異常判定ルーチンにあらかじめ定められた一定値を入力データとして与えてこの異常判定ルーチンを実行し、今回実行された前記異常判定ルーチンの演算結果をあらかじめ記憶する前記異常判定ルーチンの正常な演算結果と比較し、前記両演算結果が異なる場合に、前記所定のサブルーチンの演算結果は異常と判定して前記演算異常を示す信号を出力することを特徴とする。これにより、確実に演算異常を判定できるとともに、演算異常を判定するための特別のプログラムを保持する必要がないためメモリ規模を減らすことができる。
【発明を実施するための最良の形態】
【００２３】
上記説明した各発明を下記の実施例を用いて具体的に説明する。ただし、本発明は下記の実施例に限定されるものではなく、他の公知技術又はそれと同等の技術の組み合わせにより本発明の技術思想を実現してもよいことは明らかである。
【００２４】
（実施形態１）
実施形態１を行うマイクロコンピュータ（演算異常判断機能付き演算装置）のブロック図を図１に示す。このマイクロコンピュータ１は、算術演算装置（ALU）１１、レジスタ群１２を含むCPU１３と、データ及びプログラムを保持するRAM１４及びROM１５を含むメモリ１６と、入出力インターフェイス１７と、これらＣＰＵ１３、メモリ１６及び入出力インターフェイス１７の間の情報伝達を行うバス１８とを備えるたとえば通常の８ビットマイコン構成を採用しているが、公知の種々のマイコン技法を適用してもよい。
【００２５】
このマイクロコンピュータ１は、入出力インターフェイス１７を通じて不図示のセンサからの入力データに基づいて所定インタバル（この実施例では５ミリ秒）でＲＯＭに記憶する所定のプログラムの演算を繰り返し実行することにより演算結果を求め、この演算結果を入出力インターフェイス１７を通じて不図示のアクチエータに出力データとして定期的に出力する。このマイクロコンピュータの一回の演算ルーチンの例を図２のフローチャートに例示する。
【００２６】
図２のフローチャートでは、電源投入により開始されてまず最初にマイクロコンピュータ１の各部を初期状態に設定するリセット動作を行い（S１００）、その後、入力データを読み込み（S１０２）、次にこの入力データ及び前のサブルーチンで求めたデータを用いて順次ｎ回（ｎは正の整数）のサブルーチンを実行し（S１０4〜S１０ｎ）、最終的に得られたこの演算ルーチンの演算結果を外部に出力して（S１０６）、ステップS１０２に戻る単純な演算ルーチンを例示している。もちろん、本発明は種々の演算ルーチンに対応することができる。たとえば、データの入出力はサブルーチンごとに実行されてもよい。
【００２７】
図２のフローチャートでは特に、順次に実行される第１〜第ｎサブルーチンの実行の後、かつ、演算結果である出力データを外部に出力する前に、演算異常を判定する演算異常判定ルーチン（S１０８）を実行し、演算異常が発生した場合にリセットステップ（S１００）にリターンする点をその特徴としている。
【００２８】
更に説明すると、最終のサブルーチンである第ｎサブルーチンの実行の後、演算異常を判定し（S１０８）、演算異常が発生したと判定した場合にはリセットステップ（S１００）にリターンし、演算異常が発生しなかったと判定した場合には演算ルーチンすなわち直前の第１〜第ｎサブルーチンの実行により得られ外部に出力されるべき演算結果すなわち出力データを外部に送信する（S１１０）し、ステップS１０２にリターンする。
【００２９】
この実施例によれば、従来のように演算結果の異常の発生を検知した場合にシステムすなわちマイクロコンピュータ１の作動を停止させるのではなく、リセットをかけて演算を再実行するため、過熱やサージノイズの入力により生じた偶発的な演算結果の異常の場合には問題なく、次回に正常な出力データを出力することができ、マイクロコンピュータ１の作動停止による障害発生を抑止することができる。なお、ステップS１０８に示す演算異常判定ステップは、本発明でいう演算異常判定回路及び演算異常時リセット回路に相当している。
【００３０】
（実施形態２）
他の実施形態を図３に示すフローチャートを参照して説明する。この実施形態は、図２に示す演算異常判定ステップ（S１０８）を、各サブルーチンの終了ごとに実施し、各サブルーチン終了時点で演算結果の異常を検知した場合にはただちにリセットステップ（Ｓ１００）にジャンプする点をその特徴としている。このようにすれば、演算ルーチンの初期に実施されるサブルーチンたとえば第１サブルーチンで演算結果の異常を判定した場合にはただちにリセットステップ（Ｓ１００）にリターンすることができ、実施例１に比べて演算の遅れを格段に減らすことができる。
【００３１】
なお、この場合、各サブルーチン演算の後で実施される各演算異常判定ステップ（たとえばＳ１０５、S１０ｎ）は、それぞれ直前のサブルーチンの演算結果の良否を判定するため、異なる演算異常判定動作となる。演算異常判定の具体例については後述するものとする。
【００３２】
（実施形態３）
他の実施形態を図４に示すブロック図を参照して参照して説明する。この実施形態は、図１に示すマイクロコンピュータ１に、診断回路２を外付けし、マイクロコンピュータ１の一つの出力ポートと診断回路２の一つの入力ポートを信号線１９で接続し、マイクロコンピュータ１の一つの入力ポートと診断回路２の一つの入力ポートを信号線２０で接続したものである。なお、この実施例では、この診断回路２は、本発明でいう演算異常判定回路及び演算異常時リセット回路を構成するが、必要な演算機能負担が小さいためデジタル回路によるハードウエア構成されるが、診断回路２をマイコン構成としてもよい。
【００３３】
したがって、この実施形態を図２又は図３に相当する演算異常判定とそれによる演算異常時リセット動作を行うには、図２又は図３における演算異常判定ステップ（Ｓ１０８、Ｓ１０５）の代わりに、演算結果を診断回路２に送信するステップと、その後、診断回路２からの診断結果を受信するステップを配置すればよい。なお、診断回路２がその演算異常判定において、マイクロコンピュータ１が演算にて用いた入力データを利用する場合には、診断回路２は前もってマイクロコンピュータ１又は図示しない外部のセンサなどからマイクロコンピュータ１と同一の入力データを読み込んでおく必要がある。
【００３４】
（実施形態４）
他の実施形態を図５に示すブロック図を参照して参照して説明する。この実施形態は、バス３によりデータ授受可能に接続された８つのローカルマイクロコンピュータ１０１〜１０８及びこれらローカルマイクロコンピュータ１０１〜１０８を制御するためのメインECU４とからなる。
【００３５】
各ローカルマイクロコンピュータ１０１〜１０８は、それぞれ図１に示すマイクロコンピュータ１と同等の回路機能を有しており、センサやアクチエータと個別に信号を授受してそれぞれの制御を個別に行っている。たとえばこの実施例ではローカルマイクロコンピュータ１０１はＥＰＳ用制御装置であり、ローカルマイクロコンピュータ１０２はパワーウインド用制御装置である。もちろん、この実施例では、メインＥＣＵ４は、ローカルマイクロコンピュータ１０１〜１０８を通じてセンサ信号を受信したり、アクチエータを制御したりすることもできる。
【００３６】
この実施例では、メインＥＣＵ４が図４に示す外付けの診断回路２を構成している。特に重要な点は、メインＥＣＵ４はすべてのローカルマイクロコンピュータ１０１〜１０８の診断回路２を構成する点である。更に具体的に説明すれば、各ローカルマイクロコンピュータ１０１〜１０８はたとえば図８に示す演算ルーチンを終了する度にステップS１０８にてメインＥＣＵ４に演算結果を出力し、メインＥＣＵ４がその異常を判定してローカルマイクロコンピュータ１０１〜１０８にリセットを指令するか、又は、次の演算を行うべきかを指令し、この指令の受信に従ってローカルマイクロコンピュータ１０１〜１０８は次の動作を決定する。このようにすれば、各ローカルマイクロコンピュータ１０１〜１０８を統制する既存のメインＥＣＵ４により各ローカルマイクロコンピュータ１０１〜１０８の演算異常判定を行うことができるため、各ローカルマイクロコンピュータ１０１〜１０８が異常となっても問題なく演算異常を簡単確実に判定し、演算異常時の対応も容易とすることができる。
【００３７】
（実施形態５）
他の実施形態を図６に示すフローチャートを参照して説明する。図６は、図２で実施する演算異常判定ステップ（S１０８）の一例を示すフローチャートである。この実施例では、外部に出力するべき出力データである演算結果の正常範囲があらかじめ記憶されており、この演算異常判定ステップ（Ｓ１０８）にて第ｎサブルーチンで求められた演算結果の今回値がこの記憶する正常範囲の範囲内かどうかが判定され（Ｓ１２１）、範囲内であれば次の演算ルーチンに進むことを指令し（Ｓ１２２）、範囲外であれば上記演算結果の今回値を消去してリセットステップ（Ｓ１００）へのリターンを指令する。このようにすれば、簡単に演算異常を判定することができる。
【００３８】
なお、この一定範囲比較方式の演算異常判定は、図３に示すフローチャートにおいても同様に実施することができる。この場合には、各サブルーチンの演算結果の正常範囲をそれぞれ記憶しておき、各サブルーチンの演算結果をそれに対応する正常範囲と比べればよい。
【００３９】
（実施形態６）
他の実施形態を図７に示すフローチャートを参照して説明する。図７は、図６に示す演算異常判定ステップ（S１０８）の変形例を示すものである。この実施例では、図２のステップ（Ｓ１０２）でマイクロコンピュータ１に読み込まれた入力データは演算結果とともに異常判定に用いられる。
【００４０】
まず、ステップＳ１３１にて今回用いた入力データに基づいてあらかじめ記憶するマップ（ハードウエア回路により構成されてもよい）から今回の出力データすなわち演算結果の正常範囲が決定される。次に、今回の演算結果とこの正常範囲とを比較し（Ｓ１３２）、演算結果が正常範囲内であれば次の演算を指令し（Ｓ１３３）、正常範囲外であればこの演算結果を消去してリセットステップ（Ｓ１００）にジャンプする。なお、リセットステップ（Ｓ１００）では、当然、上記演算結果を保持するレジスタは０にリセットされるため、上記したリセット動作に先立つ演算結果消去を省略してもよい。
【００４１】
（実施形態７）
他の実施形態を図８に示すフローチャートを参照して説明する。図８は、図６、図７に示す正常範囲比較方式の演算異常判定方式とは異なる異常判定方式を示す異常判定ルーチンを含む演算ルーチンを示す。
【００４２】
まず、ステップＳ１００にてリセットを行い、入力データを読み込む（Ｓ１４１）。次に、この入力データを用いて図２のステップＳ１０４〜Ｓ１０ｎに相当する演算ルーチンを実行し（Ｓ１４２）、この演算ルーチンで求めた演算結果を所定のレジスタに一時的に保持する（Ｓ１４３）。次に、上記入力データとしてあらかじめ定められた値を用いてステップＳ１４２で実行した演算ルーチンと同じルーチンを演算異常判定ルーチンとして再度実行する（Ｓ１４４）。次に、この演算異常判定ルーチンで得た演算結果とあらかじめ記憶する正常な演算結果とを比較し（Ｓ１４５）、演算結果が異なれば、ＣＰＵ過熱又は故障などにより正しい演算結果を期待できないとして所定時間待機した後、ステップＳ１００にリターンし、演算結果が同じであればＣＰＵは正常に動作していると判定してステップＳ１４２で得た演算結果を出力データとして外部に出力する（Ｓ１４６）。
【００４３】
（変形態様）
図８では、複数のサブルーチンで構成される演算ルーチンを全部実施してから、それと同じ演算異常判定ルーチンを再実行したが、図３と同様に各サブルーチンの演算を実施する度にそれと等しい演算異常判定サブルーチンにあらかじめ定められた入力データの値を用いて演算を実行し、演算異常判定サブルーチンの演算結果の良否を上記と同様に判定し、判定結果が不良の場合にリセットをおこなってもよい。
【００４４】
（実施形態８）
他の実施形態を図９に示すフローチャートを参照して説明する。図９は、たとえば図２に示すルーチンにおいて、演算異常判定ステップ（Ｓ１０８）にて演算不良と判定した場合に実施されるものであって、マイクロコンピュータ１又はＣＰＵの永続的な故障に対処するものである。
【００４５】
まず、演算結果不良が今回を含めて所定のM（Mは複数）回連続して発生したかどうかを判定し（Ｓ１５１）、そうでなければステップＳ１００にジャンプしてリセットを行い、演算異常がM回以上連続して発生した場合にはマイクロコンピュータ１は永続的に故障したと判定してマイクロコンピュータ１の動作を停止を指令する。この動作停止の指令は、たとえばマイクロコンピュータ１に指令してもよく、あるいはマイクロコンピュータ１を統制するメインＥＣＵ４（図５参照）に指令してもよい。メインＥＣＵ４はこの信号を受信するとマイクロコンピュータ１の作動停止を含む所定の対応処置を実行することができる。なお、この実施態様でのマイクロコンピュータ１の作動停止は一定時間後に自動又は所定条件にて解除することができる。
【００４６】
（変形態様）
図８で実行した直前（又は直後）の演算ルーチン（又は直前（又は直後）のサブルーチンでもよい）と同じ異常判定ルーチンを実行する代わりに、これら演算ルーチンの実行においてＣＰＵ又はALUの各回路機能を簡単に試験できる特定の回路異常診断ルーチンを採用してもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明の演算異常判断機能付き演算装置をなすマイクロコンピュータの一例を示すブロック図である。
【図２】図１のマイクロコンピュータの動作例を示すフローチャートである。
【図３】図１のマイクロコンピュータの他の動作例を示すフローチャートである。
【図４】図１のマイクロコンピュータにおいて演算異常判定回路及び演算異常時リセット回路をなす診断回路を外付けした場合を示す模式図である。
【図５】図１のマイクロコンピュータを含む多数のマイクロコンピュータを用いたマイクロコンピュータ制御システムを示すブロック図である。
【図６】異常判定ルーチンの一例を示すフローチャートである。
【図７】異常判定ルーチンの他例を示すフローチャートである。
【図８】異常判定ルーチンの他例を示すフローチャートである。
【図９】永続的な演算異常を検出してシステム停止を行うルーチンを示すフローチャートである。
【符号の説明】
【００４８】
１      マイクロコンピュータ
２      診断回路
３      バス
１１      AＬＵ
１２      レジスタ群
１３      ＣＰＵ
１４      ＲＡＭ
１５      ＲＯＭ
１６      メモリ
１７      入出力インターフェイス
１８      バス
１９      信号線
２０      信号線
１０１〜１０８      ローカルマイクロコンピュータ
【図１】
2006259935.tif 000003
【図２】
2006259935.tif 000004
【図３】
2006259935.tif 000005
【図４】
2006259935.tif 000006
【図５】
2006259935.tif 000007
【図６】
2006259935.tif 000008
【図７】
2006259935.tif 000009
【図８】
2006259935.tif 000010
【図９】
2006259935.tif 000011