(57)【特許請求の範囲】
【請求項１】
故障検出のため必要となる機能以外の本来の機能を実行する処理プログラム、及び監視回路とのデータの通信を行う通信手段を有するマイクロコンピュータに、故障検出のための設定部、実行部、判定部を設けるとともに、
前記マイクロコンピュータの故障検出のための演算処理に必要な演算を実行する演算回路部を備えた前記監視回路に、前記マイクロコンピュータとのデータの通信を行う通信手段を設け、
前記マイクロコンピュータの設定手段は、前記マイクロコンピュータの実行部及び通信手段に同一の設定データを与え、その設定データに基づいて、前記実行部では故障検出のための演算を実行し、
一方、前記監視回路では、設定データに基づいて演算回路部に故障検出のための演算を実行させ、前記判定部は、前記マイクロコンピュータの実行部及び前記通信手段を介して得られた前記監視回路の演算結果を比較照合し、その照合差から故障を検出するマイクロコンピュータの故障検出方法。
【請求項２】
上記設定データを故障検出の度ごとにランダムに発生させる請求項１に記載のマイクロコンピュータの故障検出方法。
【請求項３】
上記監視回路に判定回路部を設け、その監視回路の該判定回路部に、前記監視回路及び前記通信手段を介して得られた上記マイクロコンピュータの演算結果の比較照合を行わせることにより、両者の演算結果の照合を前記マイクロコンピュータと前記監視回路の両方で各々独立して行わせる請求項１または２に記載のマイクロコンピュータの故障検出方法。
【請求項４】
上記マイクロコンピュータの作動時に、上記故障検出を所定の周期で繰り返し行わせる請求項１乃至３のいずれかに記載のマイクロコンピュータの故障検出方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、例えばＡＢＳ（アンチロックブレーキシステム）電子制御ユニット等に使用されるマイクロコンピュータの故障検出方法に関するものである。
【０００２】
【従来の技術】
マイクロコンピュータ（以下、マイコン）の故障を検出するひとつの方法として従来、図８に示すように、全く同一のマイコン１を２個使用する方法、いわゆるダブルマイコンがある。この方法では、両マイコン１に外部より同一信号を入力し、それぞれの演算結果として出力される信号を互いにモニタし、自分の出力信号と他方の出力信号とを比較して、一致しない場合に故障として検出するという方法である。
【０００３】
例えば、このような方法を使ったＡＢＳ（アンチロックブレーキシステム）の電子制御ユニットでは、四輪の車輪速度信号を両マイコン１にそれぞれ入力し、それぞれのマイコン１が、その車輪速度を基にＡＢＳ制御演算を行い、その結果得られた油圧制御用ソレノイド出力信号等をそれぞれが比較して故障検出を行なっている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記のダブルマイコンの構成では、故障検出のために同機能のマイコンが２個必要であり、回路規模が大きくなってコスト高になるという問題がある。
【０００５】
そこで、この発明の課題は、同機能のマイコンを２個使用することなく、回路規模も小さく、かつ、低コストで実施できるマイコンの故障検出方法を提供することである。
【０００６】
【課題を解決するための手段】
上記の課題を解決するため、この発明では、故障検出対象のマイクロコンピュータに、故障検出のための演算処理を、マイクロコンピュータの本来の機能（例えば、アンチロックシステムの場合、アンチロック制御処理）とは別に設けるとともに、前記マイクロコンピュータの故障検出のための演算処理を実現するために必要な演算命令を実行することのできる演算回路部を備えた監視回路を設け、前記マイクロコンピュータと監視回路に同一の設定データに基づく同一の演算処理を実行させ、その際、出力される両者の演算結果を比較照合し、その照合差から故障を検出するという方法を採用したのである。
【０００７】
このとき、上記マイクロコンピュータと監視回路とにそれぞれ通信手段を設け、上記故障検出の際、設定データとそのデータに基づく演算結果とをやり取りするという方法を採用したのである。
【０００８】
このとき、上記マイクロコンピュータと監視回路とに演算処理を実行させる際、各回ごとにランダムな設定データに基づく演算処理を実行させ、その際、出力される両者の演算結果を比較照合し、その照合差から故障を検出するという方法を採用したのである。
【０００９】
また、このとき、上記マイクロコンピュータと監視回路の演算結果の比較照合の際、その比較照合をマイクロコンピュータと監視回路の両方で各々独立して行なわせるという方法を採用したのである。
【００１０】
また、上記マイクロコンピュータの作動時に、上記故障検出を所定の周期で繰り返し行なわせるという方法を採用したのである。
【００１１】
【作用】
このように構成されるこの発明では、故障検出対象のマイコンに設けられた監視回路は、故障対象のマイコンと同様の例えば、アキュームレータによるデータの加減算あるいはレジスタ間のデータの転送やレジスタへのデータのストアなど演算命令を行なう演算部を備えることにより、マイコンと同じデータの処理を実行することができるようになっており、前記マイコンと監視回路に同一の設定データに基づく同一の演算処理を実行させると、両者が正常に機能していればその演算結果は同じになるはずである。そのため、両者の演算結果を比較照合したときに差が生じていれば、どちらかに異常が生じていることになり、そのことからマイコンの故障が検出できる。
【００１２】
このとき、故障の検出を演算結果の照合により行っているので、両者の処理は同期している必要はなく、両者の処理速度は同一でなくても故障の検出ができるので、監視回路はマイコンに比べて低速のものを使用することができる。
【００１３】
また、監視回路は、前記のように演算処理ができるものであればよいので、故障検出対象のマイコンと同一のものを使用しなくても故障の検出を行なうことができる。
【００１４】
また、マイコンと監視回路とにそれぞれ通信手段を設け、故障検出の際、設定データとそのデータに基づく演算結果とをやり取りすることにより、マイコンと監視回路の両者間でデータの送受を行って故障の検出が行える。
【００１５】
このとき、故障の検出を行うごとに、設定データをランダムな値になるようにしたことにより、検出のたびごとにデータのビットの状態を変化、すなわち、ビットの、「１」と「０」とを変化させてビットの状態の異なったデータを用いた演算結果の比較照合を行なって、ビット単位のチェックを行なうことができるので、例えば、マイコン内部のアキュムレータ、レジスタ、プログラムカウンタや内部バスなどのビットが「１」または「０」のどちらかに固着した固着故障の検出も行なえる。
【００１６】
このとき、マイクロコンピュータと監視回路の演算結果の比較照合の際、その比較照合をマイクロコンピュータと監視回路の両方で各々独立に行なうことにより、一方のデバイスが故障した場合でも他方の判定により、故障の判定が行える。
【００１７】
このとき、マイクロコンピュータの作動時に、上記故障検出を所定の周期で繰り返し行なわせることにより、マイコンを使用したシステムの作動中の故障を常時検出できる。
【００１８】
【実施例】
以下、この発明を図面に基づいて説明する。
【００１９】
図１にこの発明の第１実施例に係るマイコン１のブロック図を示す。
【００２０】
図１に示すように、この実施例のマイコン１は、マイコン１と監視回路２とからなり、両者は、共通のバス３により接続されて、データの入出力ができるようになっている。
【００２１】
マイコン１は、モニタプログラムまたはＯＳ内に故障検出手段として故障検出用の処理プログラムが内蔵されており、この処理プログラムを起動することにより、故障の検出を行う。
【００２２】
この処理プログラムは、図２に示すように、設定部と実行部及び判定部とで構成され、設定部が初期値データを設定し、実行部がその初期値データに基づいてマイコン１に所定の演算処理を実行させる。同時に、設定部は、設定した初期値データを監視回路２へ出力する。また、判定部は、実行部の演算処理により得られたマイコン１の演算結果のデータと監視回路２から入手した演算結果のデータを照合することにより、故障を検出する。
【００２３】
一方、監視回路２は、入出力回路部と演算回路部及び制御回路部とを備え、入出力回路部は前記バス３と接続され、監視回路２とマイコン１とのデータの授受を行ない、演算回路部は、例えば、アキュムレータ、加減算器、入出力用のレジスタを備え、前記マイコン１と同様の演算命令を実行する。
【００２４】
また、この演算回路部は、前記マイコン１の実行部と同様の処理プログラムをメモリ内に格納した制御回路部によって制御され、前記マイコン１から出力される初期値データに基づいてマイコン１と同じ演算処理を実行するようになっている。
【００２５】
なお、実施例では、監視回路２はマイコン１のバス３上に配置するようにしたが、これに限定されることはなく、例えば、監視回路２をマイコン１のチップ内に設けるようにしてもよい。
【００２６】
この実施例は以上のように構成されており、次に、その作用を述べることにより、第１実施例の故障検出方法を説明する。
【００２７】
このマイコン１では、故障検出手段であるモニタまたはＯＳ内の故障検出用の処理プログラムを起動することにより故障検出を行なう。このとき、起動された処理プログラムは、あらかじめ設定された初期値データに基づきあらかじめ決められた手順に従って演算処理を実行する。同時に、マイコン１は、起動命令と共に、初期値データをバス３を介して監視回路２に出力し、監視回路２を起動して初期値データに基づく演算処理を実行させる。このとき、監視回路２が実行する演算処理は、制御回路部に格納されたマイコン１の実行部と同様の処理プログラムによってマイコン１から入力されたデータの演算処理を行なう。また、こうして監視回路２で演算された結果は、入出力回路部よってマイコン１へ返信され、それを受けたマイコン１は、その演算結果を判定回路部に入力して、マイコン１が演算した結果と比較照合する。このとき、比較照合されるマイコン１と監視回路２との演算結果は、同一のデータに基づく同一の演算処理を行なっており、両者が正常に機能していれば、差は出力されることはない。一方、両者の内いずれか一方、あるいは両方（両方に異常が生じて同じ結果を出力する確率は非常に小さい）に異常が生じていれば、演算結果に差が生じるので、マイコン１の故障を検出できる。
【００２８】
このように、この方法では、マイコン１とマイコン１と同じ命令を実行することのできる演算回路部を備えただけの軽量な監視回路２に、同一のデータに基づく同一の演算処理を実行させることにより、故障の検出を行なっているので、回路規模を大きくすることなく低コストでマイコン１の故障の検出が行なえる。
【００２９】
また、このとき、演算結果を照合して故障の検出を行なっているので、両者の処理は同期している必要はなく、両者の処理速度は同じでなくてもよいので、例えば監視回路２にはマイコン１よりも低速のマイコン１や処理能力の低い下位のマイコン１を使用したりすることもできる。
【００３０】
次に、第２実施例の故障検出方法を説明する。
【００３１】
この実施例は、図３に示すように、第１実施例の図１のマイコン１と監視回路２とを接続するバス接続に代えて、マイコン１と監視回路２とに通信手段としてシリアル伝送用のポート４を設け、そのポート４同士を接続し、故障検出の際、設定データとそのデータに基づく演算結果とをやり取りさせるという方法で、このような方法を用いることにより、バス３のファンアウトの余裕の有無に係わらず監視回路２を設けることができる。
【００３２】
他の作用効果については第１実施例と同様であるので、その説明を省略することにする。
【００３３】
第３実施例の故障検出方法を説明することにする。
【００３４】
この第３実施例は、図４に示すように、第２実施例において、通信手段の通信制御用のプログラムをメインルーチンとそのメインルーチンに従属するサブルーチンとで構成されるものとし、通信のためメインルーチンを起動すると、サブルーチンが起動されるようにするという方法である。
【００３５】
このような方法を行なうことにより、例えば、メインルーチンで通信ポート４のレジスタへの通信データの設定を行い、サブルーチンで通信の起動を行うようにすれば、マイコン１の暴走を引き起こす原因とされるメインルーチンまたはサブルーチンの中で無限ループが発生すると、そのループによりメインルーチンもしくはサブルーチンの処理が実行されなくなり、通信制御用のプログラムが起動できなくなって、設定データや演算結果の送受ができなくなるため、比較照合の際、両者の出力に差が生じ、この差を検出することにより、暴走モードの検出ができる。
【００３６】
他の作用効果については第２実施例と同様であるので、その説明は省略することにする。
【００３７】
第４実施例の故障検出方法を説明する。
【００３８】
この実施例では、第１乃至第２の実施例のマイコン１に図５に示すように、フリーランニングカウンタ５を備え、そのカウンタ５を常時ランさせておき、そのカウンタ５の出力データを故障検出の際に、上記マイコン１と監視回路２の演算処理の初期値データとして用いるという方法で、設定データをランダムな値にすることができるため、例えば検出の度ごとに設定データが固定されることを防ぐことができる。したがって、そのデータによる演算処理を複数回行うと、マイコン内部のアキュームレータ、レジスタ、プログラムカウンタや内部バスなどの各ビットの状態を「１」と「０」とに変化させてその演算結果を比較照合し、ビットのチェックが行なえるので、ビットが「１」や「０」に固着した場合でも、その固着故障を検出できる。
【００３９】
なお、第４実施例では、ランダムな値を得るために、カウンタ５を設けたが、カウンタ５に代えて例えば、マイコン１がソフト的に乱数を発生させてランダム値を算出するようにしてもよい。
【００４０】
また、他の作用効果については、第１乃至第３の実施例と同様であるので、その説明は省略することにする。
【００４１】
第５実施例の故障検出方法を説明する。
【００４２】
この実施例は、第１乃至第４の実施例の監視回路に、例えば図６に示すようにマイコン１と同じ処理を行う判定回路部６を設け、マイコン１の判定部とで相互に授受した演算結果を、各々独立に比較照合するという方法であって、一方のデバイスが故障を起こしたような場合でも他方の判定部の判定により、故障の検出ができるようにするという方法である。その結果、マイコン１の判定部が故障を起こして判定が行なえなくなる事態を減少させて信頼性を向上することができる。
【００４３】
他の作用効果については第１乃至第４の実施例と同様であるので、その説明は省略することにする。
【００４４】
第６実施例の故障検出方法を説明する。
【００４５】
この実施例は、第１乃至第５の実施例において、例えば図７に示すように、マイコン１にタイマ７を設け、そのタイマ７による割り込み処理により所定の周期で故障検出プログラムを起動することにより、故障の検出を、マイコン１を使用したシステムの作動中も常時行なうようにした方法である。そして、その方法を用いた結果、マイコン１を使用したシステムの作動中の故障を常時検出して信頼性の向上を図ることができる。
【００４６】
他の作用効果については、第１乃至第５の実施例と同様なので、省略することにする。
【００４７】
【効果】
このように構成されるこの発明のマイクロコンピュータの故障検出方法では、マイコンと、マイコンと同じ命令を実行することのできる演算部を備えただけの軽量な監視回路に、同一のデータに基づく同一の演算処理を実行させることにより、故障の検出を行なっているので、従来のダブルマイコンの構成のように、回路規模を大きくすることなく低コストでマイコンの故障の検出機能を実現できる。
【００４８】
また、上記発明の効果に加え、上記マイクロコンピュータと監視回路とにそれぞれ通信手段を設け、上記故障検出の際、設定データとそのデータに基づく演算結果とをやり取りするという方法を採用したことにより、バスのファンアウトの余裕の有無に係わらず監視回路を設けることができるという効果を奏することができる。
【００４９】
また、上記発明の効果に加え、例えば、通信手段の通信制御用のプログラムをメインルーチンとそのメインルーチンに従属するサブルーチンとで構成されるものとし、通信のためメインルーチンを起動すると、サブルーチンが起動されるようにすることによって、例えばメインルーチンまたはサブルーチンの中に無限ループが発生すると、そのループにより通信手段が起動しないようにすれば、暴走モードの検出ができるという効果を奏するようにもできる。
【００５０】
また、上記発明の効果に加え、故障の検出を行うごとに、設定データをランダムな値になるようにしたことにより、ビットが「１」や「０」に固着した場合でも、その固着故障を検出できるという効果を奏することができる。
【００５１】
また、上記発明に加え、マイクロコンピュータと監視回路の演算結果の比較照合の際、その比較照合をマイクロコンピュータと監視回路の両方で各々独立に行なうことにより、一方のデバイスが故障を起こした場合でも他方の判定により、故障の検出ができる。その結果、信頼性を向上させることができるという効果がある。
【００５２】
また、上記発明に加え、マイクロコンピュータの作動時に、上記故障検出を所定の周期で繰り返し行なうことにより、マイコンを使用したシステムの作動中の故障を常時検出して信頼性の向上を図ることができる。
【図面の簡単な説明】
【図１】第１実施例のブロック図
【図２】第１実施例を説明するためのフローチャート図
【図３】第２実施例のブロック図
【図４】第３実施例を説明するためのフローチャート図
【図５】第４実施例のブロック図
【図６】第５実施例のブロック図
【図７】第６実施例のブロック図
【図８】従来の故障検出方法を示すブロック図
【符号の説明】
１  マイコン
２  監視回路
３  バス
４  通信ポート
５  フリーランニングカウンタ
６  判定回路
７  タイマ
【図１】
0003729893.tif 000002
【図２】
0003729893.tif 000003
【図３】
0003729893.tif 000004
【図４】
0003729893.tif 000005
【図５】
0003729893.tif 000006
【図６】
0003729893.tif 000007
【図７】
0003729893.tif 000008
【図８】
0003729893.tif 000009