(57)【特許請求の範囲】
【請求項１】
同一の演算を実行する複数のＣＰＵと、
複数の前記ＣＰＵの演算結果を比較し、演算結果の不一致を前記ＣＰＵの異常として検出するコンパレータと、
前記コンパレータが演算結果の不一致を検出すると、演算結果の不一致の回数を示す不一致回数カウント値を割り込み処理によりカウントアップさせるカウント手段と、
前記不一致回数カウント値に基づき、前記ＣＰＵの異常が一時的な異常であるか、恒久的な異常であるかを判別する異常判別手段と、
を備え、
前記コンパレータは複数設けられることを特徴とする電子制御装置。
【請求項２】
前記不一致回数カウント値は、前記コンパレータ毎に複数設定され、
前記カウント手段は、前記コンパレータが演算結果の不一致を検出すると、不一致を検出した前記コンパレータに対応する前記不一致回数カウント値をカウントアップさせ、
前記異常判別手段は、複数の前記不一致回数カウント値のうち少なくとも１つが所定の閾値以上の場合、前記ＣＰＵの異常は恒久的な異常であると判別し、それ以外の場合、一時的な異常であると判別することを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記不一致回数カウント値は、複数の前記コンパレータに対し共通で１つ設定され、
前記カウント手段は、複数の前記コンパレータのうち少なくとも１つが演算結果の不一致を検出すると、前記不一致回数カウント値をカウントアップさせ、
前記異常判別手段は、前記不一致回数カウント値が所定の閾値未満の場合、前記ＣＰＵの異常は一時的な異常であると判別し、前記閾値以上の場合、恒久的な異常であると判別することを特徴とする請求項１に記載の電子制御装置。
【請求項４】
前記異常判別手段が前記ＣＰＵの異常は恒久的な異常であると判別した場合、前記電子制御装置を再起動によりリセットするリセット手段をさらに備えることを特徴とする請求項１〜３のいずれか一項に記載の電子制御装置。
【請求項５】
前記リセット手段が前記電子制御装置をリセットした回数が所定の回数を超えた場合、前記電子制御装置を停止する停止手段をさらに備えることを特徴とする請求項４に記載の電子制御装置。
【請求項６】
前記異常判別手段が前記ＣＰＵの異常は恒久的な異常であると判別した場合、前記電子制御装置を停止する停止手段をさらに備えることを特徴とする請求項１〜５のいずれか一項に記載の電子制御装置。
【請求項７】
請求項１〜６のいずれか一項に記載の電子制御装置と、
前記電子制御装置によって駆動されるモータと、
前記モータの回転をステアリングシャフトに伝達する動力伝達手段と、を備え、
前記ステアリングシャフトに入力される操舵トルクをアシストすることを特徴とする電動パワーステアリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周期的に演算処理が実行される電子制御装置、および、これを用いた電動パワーステアリング装置に関する。
【背景技術】
【０００２】
従来、２つのＣＰＵ（中央演算処理装置）の演算結果を比較し、ＣＰＵの異常を検知する電子制御装置が知られている。例えば特許文献１に開示された電子制御装置は、メインＣＰＵの演算結果とサブＣＰＵの演算結果とをコンパレータによって比較し、演算結果の不一致を検出した場合、メインＣＰＵまたはサブＣＰＵの異常を検知し、メインＣＰＵまたはサブＣＰＵをリセットするフェールセーフ機能を有している。しかしながら、この電子制御装置では、メインＣＰＵまたはサブＣＰＵの一時的な異常と恒久的な異常との差別化がなされておらず、一時的な異常であっても電子制御装置をリセットあるいは停止させてしまう問題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２０９１９７号公報
【特許文献２】特開平４−３６３７２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、特許文献２に開示された電子制御装置では、コンパレータが２つのＣＰＵの演算結果の不一致を検出したときエラー信号を発生し、当該エラー信号を所定の計測インターバルの下カウントしている。そして、当該カウント値が所定の閾値を超えた場合、メインＣＰＵおよびサブＣＰＵを停止させることで、一時的な異常ではメインＣＰＵおよびサブＣＰＵが停止しない仕組みを実現している。しかしながら、この電子制御装置では、計測インターバルに対し極度に長い周期の演算が存在する場合、その演算によるカウント値が閾値を超えたことを検知する前に計測が終了してしまう可能性がある。この場合、ＣＰＵの異常を検知できないおそれがある。
また、上述したような電子制御装置を例えば電動パワーステアリング装置のモータの駆動制御のために用いる場合、ＣＰＵの異常の誤検知は、運転者の操舵に関するフィーリングに大きく影響する。
【０００５】
本発明は、上述の問題に鑑みてなされたものであり、その目的は、ＣＰＵの一時的な異常または恒久的な異常を高精度に判別可能な電子制御装置、および、これを用いた電動パワーステアリング装置を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、ＣＰＵとコンパレータとカウント手段と異常判別手段とを備えている。ＣＰＵは、複数設けられ、それぞれが同一の演算を実行する。コンパレータは、複数のＣＰＵの演算結果を比較し、演算結果の不一致をＣＰＵの異常として検出する。カウント手段は、コンパレータが演算結果の不一致を検出すると、演算結果の不一致の回数を示す不一致回数カウント値を割り込み処理によりカウントアップさせる。異常判別手段は、不一致回数カウント値に基づき、ＣＰＵの異常が一時的な異常であるか、恒久的な異常であるかを判別する。コンパレータは、複数設けられる。
【０００７】
このように、本発明では、複数のＣＰＵの演算結果の不一致回数をカウントすることにより、ＣＰＵの異常が一時的な異常であるか、恒久的な異常であるかを判別することができる。また、複数のＣＰＵの演算結果の不一致回数（不一致回数カウント値）は、割り込み処理によってカウントするため、演算周期の長短にかかわらず、ＣＰＵの異常を検知することができる。したがって、ＣＰＵの一時的な異常または恒久的な異常を高精度に判別することができる。よって、一時的な異常に対する過敏な検出を抑えつつ、恒久的な異常による異常動作を抑制することが可能となる。
【０００９】
請求項２、３に記載の発明は、請求項１に記載の発明をより具体的に例示するものである。
請求項２に記載の発明では、不一致回数カウント値は、コンパレータ毎に複数設定されている。カウント手段は、コンパレータが演算結果の不一致を検出すると、不一致を検出したコンパレータに対応する不一致回数カウント値をカウントアップさせる。異常判別手段は、複数の不一致回数カウント値のうち少なくとも１つが所定の閾値以上の場合、ＣＰＵの異常は恒久的な異常であると判別し、それ以外の場合、一時的な異常であると判別する。
【００１０】
本発明では、コンパレータが複数設けられており、かつ、不一致回数カウント値がコンパレータ毎に複数設定されている。そして、ＣＰＵの演算結果の不一致を検出したコンパレータの数についても、ＣＰＵの異常を判別するための指標としている。したがって、本発明では、ＣＰＵの一時的な異常または恒久的な異常をより高精度に判別することができる。
【００１１】
請求項３に記載の発明では、不一致回数カウント値は、複数のコンパレータに対し共通で１つ設定されている。カウント手段は、複数のコンパレータのうち少なくとも１つが演算結果の不一致を検出すると、不一致回数カウント値をカウントアップさせる。異常判別手段は、不一致回数カウント値が所定の閾値未満の場合、ＣＰＵの異常は一時的な異常であると判別し、前記閾値以上の場合、恒久的な異常であると判別する。
【００１２】
本発明では、コンパレータが複数設けられている。そして、請求項３に記載の発明と同様、ＣＰＵの演算結果の不一致を検出したコンパレータの数についても、ＣＰＵの異常を判別するための指標としている。したがって、本発明では、ＣＰＵの一時的な異常または恒久的な異常をより高精度に判別することができる。
【００１３】
請求項４に記載の発明は、リセット手段をさらに備えている。リセット手段は、異常判別手段がＣＰＵの異常は恒久的な異常であると判別した場合、電子制御装置を再起動によりリセット（初期化）する。これにより、例えばハードウェアまたはソフトウェアの本質的な故障ではなく、ノイズ等によってレジスタ値が一時的に異常値となった場合など、電子制御装置を正常状態に復帰させることができる場合がある。
【００１４】
請求項５に記載の発明は、停止手段をさらに備えている。停止手段は、リセット手段が電子制御装置をリセットした回数が所定の回数を超えた場合、電子制御装置を停止する。このように、本発明では、例えばハードウェアまたはソフトウェアの本質的な故障等により電子制御装置が異常となっていて、リセットによっても電子制御装置を正常状態に復帰させることができない場合等、電子制御装置を停止する。これにより、制御対象が電子制御装置によって異常に制御されるのを防ぐことができる。
【００１５】
請求項６に記載の発明は、停止手段をさらに備えている。停止手段は、異常判別手段がＣＰＵの異常は恒久的な異常であると判別した場合、電子制御装置を停止する。これにより、制御対象が電子制御装置によって異常に制御されるのを防ぐことができる。
【００１６】
請求項７に記載の発明は、請求項１〜６のいずれか一項に記載の電子制御装置と、当該電子制御装置によって駆動されるモータと、当該モータの回転をステアリングシャフトに伝達する動力伝達手段と、を備え、ステアリングシャフトに入力される操舵トルクをアシストする電動パワーステアリング装置の発明である。
【００１７】
ところで、電子制御装置が電動パワーステアリング装置のモータの駆動制御に用いられる場合、電子制御装置によるモータの制御が異常となったり、電子制御装置による制御が停止することでモータの駆動が停止したりすると、運転者の操舵に関するフィーリングに大きく影響する。本発明では、電子制御装置はＣＰＵの一時的な異常または恒久的な異常を高精度に判別することができるため、ＣＰＵの異常の誤検知を抑制できる。したがって、ＣＰＵの異常の誤検知によって運転者の操舵に関するフィーリングが低下するのを抑制することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施形態による電子制御装置を適用した電動パワーステアリング装置を示す概略図。
【図２】本発明の第１実施形態による電子制御装置の概略を示す図。
【図３】本発明の第１実施形態による電子制御装置を詳細に示す図。
【図４】本発明の第１実施形態の電子制御装置による割り込み処理を示すフロー図。
【図５】本発明の第２実施形態による電子制御装置の概略を示す図。
【図６】本発明の第２実施形態による電子制御装置を詳細に示す図。
【図７】本発明の第２実施形態の電子制御装置による割り込み処理を示すフロー図。
【発明を実施するための形態】
【００１９】
自動車等のハンドル操作をアシストするための電動パワーステアリング装置に本発明の電子制御装置（以下「ＥＣＵ」という）を適用した複数の実施形態を図面に基づいて説明する。なお、複数の実施形態において、実質的に同一の構成部位には同一の符号を付し、説明を省略する。
【００２０】
（第１実施形態）
図１は、電動パワーステアリング装置１を備えたステアリングシステム９０の全体構成を示すものである。電動パワーステアリング装置１には、ハンドル９１に接続されたステアリングシャフト９２にトルクセンサ９４が設けられている。トルクセンサ９４は、運転者からハンドル９１（ステアリングシャフト９２）に入力される操舵トルクを検出する。
【００２１】
ステアリングシャフト９２の先端にはピニオンギア９６が設けられており、ピニオンギア９６はラック軸９７に噛み合っている。ラック軸９７の両端には、タイロッド等を介して一対の車輪９８が回転可能に連結されている。
これにより、運転者がハンドル９１を回転させると、ハンドル９１に接続されたステアリングシャフト９２が回転し、ステアリングシャフト９２の回転運動は、ピニオンギア９６によってラック軸９７の直線運動に変換され、ラック軸９７の直線運動変位に応じた角度について一対の車輪９８が操舵される。
【００２２】
電動パワーステアリング装置１は、操舵アシストトルクを発生するモータ８０、モータ８０の回転を減速してステアリングシャフト９２に伝える「動力伝達手段」としての減速ギア８９、および、モータ駆動装置２を備える。モータ８０は３相ブラシレスモータであり、減速ギア８９を正逆回転させる。モータ駆動装置２は、ＥＣＵ１０を備える。モータ駆動装置２は、モータ８０の回転角を検出する回転角センサ８５、上述のトルクセンサ９４、および、車速を検出する車速センサ９５を含む。
この構成により、電動パワーステアリング装置１は、ハンドル９１の操舵を補助するための操舵アシストトルクをモータ８０から発生し、ステアリングシャフト９２に伝達する。
【００２３】
以下、本実施形態で説明するシステム構成は、参考形態とする。図２にＥＣＵ１０のシステム概略図を示す。ＥＣＵ１０は、マイコン１１および駆動回路３０等を備えている。マイコン１１は、上述の回転角センサ８５、トルクセンサ９４および車速センサ９５等から入力した信号に基づいてプログラムを実行し、モータ８０を駆動するための駆動回路３０を制御する。
マイコン１１は、メインモジュール１２、サブモジュール１３、ＲＯＭ１４、ＲＡＭ１５、メインコンパレータ１６、メイン割り込みコントローラ１７およびサブ割り込みコントローラ１８等を備えている。
【００２４】
図３にＥＣＵ１０のシステム詳細図を示す。メインモジュール１２は、ＣＰＵ２１等を有している。また、サブモジュール１３は、ＣＰＵ２２等を有している。ここで、ＣＰＵ２１およびＣＰＵ２２は、特許請求の範囲における「複数のＣＰＵ」に対応している。つまり、本実施形態では、「ＣＰＵ」は２つ設けられている。メインモジュール１２は、信号線により駆動回路３０に接続している。ＣＰＵ２１およびＣＰＵ２２は、それぞれ、プログラムに定義された同一の演算を所定の演算周期で実行する。ＣＰＵ２１は、演算結果に基づき、駆動回路３０を経由してモータ８０を駆動制御する。本実施形態では、ＣＰＵ２２は、ＣＰＵ２１の演算結果が正しいか否か（ＣＰＵ２１が正常であるか異常であるか）を判別するために用いられる。ＣＰＵ２１によるモータ８０の駆動制御（メイン処理）は、例えば自動車のイグニッションキーがオンされることにより開始される。
ＲＯＭ１４は、ＣＰＵ２１およびＣＰＵ２２によって実行される演算が定義されたプログラム等を記憶している。ＲＡＭ１５は、ＣＰＵ２１およびＣＰＵ２２による演算結果等を記憶する。
【００２５】
メインコンパレータ１６は、ＣＰＵ２１の演算結果とＣＰＵ２２の演算結果とを比較する。具体的には、メインコンパレータ１６は、バス比較部２５により、ＣＰＵ２１の演算結果とＣＰＵ２２の演算結果とを比較する。また、メインコンパレータ１６は、ＲＡＭ比較部２３により、ＲＡＭ１５へのＣＰＵ２１によるデータの書き込み結果とＲＡＭ１５へのＣＰＵ２２によるデータの書き込み結果とを比較し、ＲＡＭ１５からのＣＰＵ２１によるデータの読み出し結果とＲＡＭ１５からのＣＰＵ２２によるデータの読み出し結果とを比較する。さらに、メインコンパレータ１６は、ＲＯＭ比較部２４により、ＲＯＭ１４からのＣＰＵ２１によるデータの読み出し結果とＲＯＭ１４からのＣＰＵ２２によるデータの読み出し結果とを比較する。このように、メインコンパレータ１６が比較する演算結果には、バス上を流れるＣＰＵ２１およびＣＰＵ２２の演算結果（データ）に限らず、ＲＡＭ１５およびＲＯＭ１４に対するＣＰＵ２１およびＣＰＵ２２の書き込み結果または読み出し結果も含まれる。
【００２６】
そして、メインコンパレータ１６は、バス比較部２５、ＲＡＭ比較部２３およびＲＯＭ比較部２４で、ＣＰＵ２１の演算結果とＣＰＵ２２の演算結果との不一致を異常として検出すると、当該不一致に関する情報をフェイル情報としてレジスタに書き込むとともに、メイン割り込みコントローラ１７およびサブ割り込みコントローラ１８に対し、不一致（異常）を検出したことを示す信号である不一致検出信号を送信する。
メイン割り込みコントローラ１７およびサブ割り込みコントローラ１８は、メインコンパレータ１６から不一致検出信号を受信すると、それぞれ、ＣＰＵ２１、ＣＰＵ２２に対し割り込み発生信号を送信する。
【００２７】
ＣＰＵ２１およびＣＰＵ２２は、メイン割り込みコントローラ１７、サブ割り込みコントローラ１８から割り込み発生信号を受信すると、割り込み処理により、ＣＰＵ２１の演算結果とＣＰＵ２２の演算結果との不一致の回数を示す不一致回数カウント値をカウントアップ（増加）させる。本実施形態では、不一致回数カウント値は、メインコンパレータ１６に対し１つ設定されている。また、例えば不一致回数カウント値の初期値は０であり、カウントアップ１回あたりの増加量は１である。ここで、ＣＰＵ２１、ＣＰＵ２２、メイン割り込みコントローラ１７およびサブ割り込みコントローラ１８は、特許請求の範囲における「カウント手段」として機能する。
【００２８】
そして、ＣＰＵ２１およびＣＰＵ２２は、不一致回数カウント値の値が所定の閾値未満であった場合、ＣＰＵ２１またはＣＰＵ２２の異常（演算結果の不一致）は一時的な異常であると判定する。一方、不一致回数カウント値の値が前記閾値以上であった場合、ＣＰＵ２１またはＣＰＵ２２の異常（演算結果の不一致）は恒久的な異常であると判定する。すなわち、ＣＰＵ２１およびＣＰＵ２２は、不一致回数カウント値に基づき、ＣＰＵ２１またはＣＰＵ２２の異常が一時的な異常であるか、恒久的な異常であるかを判別する。ここで、ＣＰＵ２１およびＣＰＵ２２は、特許請求の範囲における「異常判別手段」として機能する。
【００２９】
ＣＰＵ２１およびＣＰＵ２２は、「ＣＰＵ２１またはＣＰＵ２２の異常は恒久的な異常である」と判別した場合、ＥＣＵ１０を再起動によりリセットする。ここで、ＣＰＵ２１およびＣＰＵ２２は、特許請求の範囲における「リセット手段」として機能する。例えばハードウェアまたはソフトウェアの本質的な故障ではなく、ノイズ等によってレジスタ値が一時的に異常値となった場合などに「恒久的な異常である」と判別されたときは、ＥＣＵ１０を再起動によりリセット（初期化）することで、正常状態に復帰させることができる場合がある。
【００３０】
ＥＣＵ１０をリセットしても正常状態に復帰しなかった場合、リセット手段によりＥＣＵ１０のリセットが繰り返されることがある。そこで、ＣＰＵ２１およびＣＰＵ２２は、ＥＣＵ１０をリセットした回数が所定の回数を超えた場合、ＥＣＵ１０を停止する。ここで、ＣＰＵ２１およびＣＰＵ２２は、特許請求の範囲における「停止手段」として機能する。ＥＣＵ１０が停止すると、当然のことながらＥＣＵ１０によるモータ８０の駆動制御も停止する。これにより、ＥＣＵ１０が異常状態の中、モータ８０（電動パワーステアリング装置１）がＥＣＵ１０によって異常に制御されるのを防ぐことができる。
【００３１】
なお、ＣＰＵ２１およびＣＰＵ２２は、ＥＣＵ１０をリセットまたは停止させるとき、ＣＰＵ２１およびＣＰＵ２２の異常に関する情報をダイアグ情報として記憶手段に記憶したり、ＣＰＵ２１またはＣＰＵ２２（電動パワーステアリング装置１）が異常であることを運転者に通知したりすることとしてもよい。
【００３２】
次に、上述のＣＰＵ２１およびＣＰＵ２２による割り込み処理に関し、図４に基づき説明する。
図４に示す一連の処理Ｓ１００は、ＣＰＵ２１およびＣＰＵ２２がメイン割り込みコントローラ１７、サブ割り込みコントローラ１８から割り込み発生信号を受信すると開始される。Ｓ１００は、割り込み処理のため、ＣＰＵ２１によるモータ８０の駆動制御に関するメイン処理の演算周期と関係なく、割り込み発生信号を受信し次第、メイン処理に割り込むようにして実行される。
【００３３】
Ｓ１０１では、レジスタに書き込まれたフェイル情報を読み出す。その後、処理はＳ１０２へ移行する。
Ｓ１０２では、フェイル情報が書き込まれているレジスタをクリア（データ消去）する。その後、処理はＳ１０３へ移行する。
Ｓ１０３では、不一致回数カウント値をカウントアップ（１増加）させる。その後、処理はＳ１０４に移行する。
【００３４】
Ｓ１０４では、不一致回数カウント値が所定の閾値以上か否かを判別する。不一致回数カウント値は閾値以上であると判別した場合（Ｓ１０４：ＹＥＳ）、ＣＰＵ２１またはＣＰＵ２２の異常（演算結果の不一致）は恒久的な異常であると判定し、処理はＳ１０５へ移行する。一方、不一致回数カウント値は閾値未満であると判別した場合（Ｓ１０４：ＮＯ）、ＣＰＵ２１またはＣＰＵ２２の異常（演算結果の不一致）は一時的な異常であると判定し、処理はメイン処理へ戻る（リターンする）。
【００３５】
Ｓ１０５では、ＥＣＵ１０を再起動によりリセットする。ＥＣＵ１０が再起動すると、不一致回数カウント値の値等、ＥＣＵ１０のレジスタ等が保持する種々のデータがクリア（初期化）され、その後、モータ８０の駆動制御に関するメイン処理が再開される。
【００３６】
以上説明したように、本実施形態では、複数のＣＰＵ（ＣＰＵ２１およびＣＰＵ２２）の演算結果の不一致回数をカウントすることにより、ＣＰＵの異常が一時的な異常であるか、恒久的な異常であるかを判別することができる。また、複数のＣＰＵの演算結果の不一致回数（不一致回数カウント値）は、割り込み処理によってカウントするため、演算周期の長短にかかわらず、ＣＰＵの異常を検知することができる。したがって、ＣＰＵの一時的な異常または恒久的な異常を高精度に判別することができる。よって、一時的な異常に対する過敏な検出を抑えつつ、恒久的な異常による異常動作を抑制することが可能となる。
【００３７】
また、本実施形態では、コンパレータは単数（メインコンパレータ１６）である。また、不一致回数カウント値は、メインコンパレータ１６に対し１つ設定されている。異常判別手段は、不一致回数カウント値が所定の閾値未満の場合、ＣＰＵの異常は一時的な異常であると判別し、前記閾値以上の場合、恒久的な異常であると判別する。このように、コンパレータが１つであっても、ＣＰＵの一時的な異常または恒久的な異常を判別することができる。本実施形態では、部材点数（コンパレータの個数）を抑えることができるため、製造コストを低減することができる。
【００３８】
また、本実施形態は、リセット手段をさらに備えている。リセット手段は、異常判別手段が「ＣＰＵの異常は恒久的な異常である」と判別した場合、ＥＣＵ１０を再起動によりリセット（初期化）する。これにより、例えばハードウェアまたはソフトウェアの本質的な故障ではなく、ノイズ等によってレジスタ値が一時的に異常値となった場合など、ＥＣＵ１０を正常状態に復帰させることができる場合がある。
【００３９】
また、本実施形態は、停止手段をさらに備えている。停止手段は、リセット手段がＥＣＵ１０をリセットした回数が所定の回数を超えた場合、ＥＣＵ１０を停止する。このように、本実施形態では、例えばハードウェアまたはソフトウェアの本質的な故障等により電子制御装置が異常となっていて、リセットによってもＥＣＵ１０を正常状態に復帰させることができない場合等、ＥＣＵ１０を停止する。これにより、制御対象としてのモータ８０（電動パワーステアリング装置１）がＥＣＵ１０によって異常に制御されるのを防ぐことができる。
【００４０】
また、本実施形態による電動パワーステアリング装置１は、上述のＥＣＵ１０と、当該ＥＣＵ１０によって駆動されるモータ８０と、当該モータ８０の回転をステアリングシャフト９２に伝達する減速ギア８９と、を備え、ステアリングシャフト９２に入力される操舵トルクをアシストする。
【００４１】
ところで、電子制御装置（ＥＣＵ）が電動パワーステアリング装置のモータの駆動制御に用いられる場合、電子制御装置によるモータの制御が異常となったり、電子制御装置による制御が停止することでモータの駆動が停止したりすると、運転者の操舵に関するフィーリングに大きく影響する。本実施形態では、ＥＣＵ１０はＣＰＵの一時的な異常または恒久的な異常を高精度に判別することができるため、ＣＰＵの異常の誤検知を抑制できる。したがって、ＣＰＵの異常の誤検知によって運転者の操舵に関するフィーリングが低下するのを抑制することができる。
【００４２】
（第２実施形態）
本発明の第２実施形態によるＥＣＵ１０を図５〜７に基づき説明する。第２実施形態は、コンパレータの数等が第１実施形態と異なる。
【００４３】
図５および６に示すように、第２実施形態では、メインコンパレータ１６の他にサブコンパレータ１９が設けられている。すなわち、本実施形態では、コンパレータは複数（２つ）設けられている。サブコンパレータ１９は、メインコンパレータ１６と同様、メインモジュール１２、サブモジュール１３、ＲＯＭ１４、ＲＡＭ１５、メイン割り込みコントローラ１７およびサブ割り込みコントローラ１８に対する入出力経路を有し、当該経路を経由して各種データおよび信号を送受信する。
【００４４】
メインコンパレータ１６は、第１実施形態と同様、ＣＰＵ２１の演算結果とＣＰＵ２２の演算結果とを比較する。具体的には、メインコンパレータ１６は、バス比較部２５により、ＣＰＵ２１の演算結果とＣＰＵ２２の演算結果とを比較する。また、メインコンパレータ１６は、ＲＡＭ比較部２３により、ＲＡＭ１５へのＣＰＵ２１によるデータの書き込み結果とＲＡＭ１５へのＣＰＵ２２によるデータの書き込み結果とを比較し、ＲＡＭ１５からのＣＰＵ２１によるデータの読み出し結果とＲＡＭ１５からのＣＰＵ２２によるデータの読み出し結果とを比較する。さらに、メインコンパレータ１６は、ＲＯＭ比較部２４により、ＲＯＭ１４からのＣＰＵ２１によるデータの読み出し結果とＲＯＭ１４からのＣＰＵ２２によるデータの読み出し結果とを比較する。
【００４５】
サブコンパレータ１９は、メインコンパレータ１６と同様、メインコンパレータ１６と同時にＣＰＵ２１の演算結果とＣＰＵ２２の演算結果とを比較する。具体的には、サブコンパレータ１９は、バス比較部２８により、ＣＰＵ２１の演算結果とＣＰＵ２２の演算結果とを比較する。また、サブコンパレータ１９は、ＲＡＭ比較部２６により、ＲＡＭ１５へのＣＰＵ２１によるデータの書き込み結果とＲＡＭ１５へのＣＰＵ２２によるデータの書き込み結果とを比較し、ＲＡＭ１５からのＣＰＵ２１によるデータの読み出し結果とＲＡＭ１５からのＣＰＵ２２によるデータの読み出し結果とを比較する。さらに、サブコンパレータ１９は、ＲＯＭ比較部２７により、ＲＯＭ１４からのＣＰＵ２１によるデータの読み出し結果とＲＯＭ１４からのＣＰＵ２２によるデータの読み出し結果とを比較する。
このように、メインコンパレータ１６およびサブコンパレータ１９が比較する演算結果には、バス上を流れるＣＰＵ２１およびＣＰＵ２２の演算結果（データ）に限らず、ＲＡＭ１５およびＲＯＭ１４に対するＣＰＵ２１およびＣＰＵ２２の書き込み結果または読み出し結果も含まれる。
【００４６】
そして、メインコンパレータ１６およびサブコンパレータ１９は、それぞれ、バス比較部２５、ＲＡＭ比較部２３およびＲＯＭ比較部２４、もしくは、バス比較部２８、ＲＡＭ比較部２６およびＲＯＭ比較部２７で、ＣＰＵ２１の演算結果とＣＰＵ２２の演算結果との不一致を異常として検出すると、当該不一致に関する情報をフェイル情報としてレジスタに書き込むとともに、メイン割り込みコントローラ１７およびサブ割り込みコントローラ１８に対し、不一致（異常）を検出したことを示す信号である不一致検出信号を送信する。
メイン割り込みコントローラ１７およびサブ割り込みコントローラ１８は、メインコンパレータ１６またはサブコンパレータ１９から不一致検出信号を受信すると、それぞれ、ＣＰＵ２１、ＣＰＵ２２に対し割り込み発生信号を送信する。
【００４７】
本実施形態では、ＣＰＵ２１の演算結果とＣＰＵ２２の演算結果との不一致の回数を示す不一致回数カウント値は、メインコンパレータ１６およびサブコンパレータ１９のそれぞれに対し１つずつ設定されている。つまり、不一致回数カウント値は、コンパレータ（メインコンパレータ１６およびサブコンパレータ１９）毎に複数設定されており、本実施形態では計２つ設定されている。
【００４８】
ＣＰＵ２１およびＣＰＵ２２は、メイン割り込みコントローラ１７、サブ割り込みコントローラ１８から割り込み発生信号を受信すると、割り込み処理により、不一致検出信号を送信したコンパレータ（メインコンパレータ１６またはサブコンパレータ１９）に対応する不一致回数カウント値をカウントアップ（増加）させる。
なお、メインコンパレータ１６に対応する不一致回数カウント値（以下、「メイン側不一致回数カウント値」とする。）、および、サブコンパレータ１９に対応する不一致回数カウント値（以下、「サブ側不一致回数カウント値」とする。）の初期値は０であり、カウントアップ１回あたりの増加量は１である。
【００４９】
そして、ＣＰＵ２１およびＣＰＵ２２は、メイン側不一致回数カウント値およびサブ側不一致回数カウント値の値がいずれも所定の閾値未満であった場合、ＣＰＵ２１またはＣＰＵ２２の異常（演算結果の不一致）は一時的な異常であると判定する。一方、メイン側不一致回数カウント値またはサブ側不一致回数カウント値の少なくとも一方の値が前記閾値以上であった場合、ＣＰＵ２１またはＣＰＵ２２の異常（演算結果の不一致）は恒久的な異常であると判定する。すなわち、ＣＰＵ２１およびＣＰＵ２２は、メイン側不一致回数カウント値またはサブ側不一致回数カウント値に基づき、ＣＰＵ２１またはＣＰＵ２２の異常が一時的な異常であるか、恒久的な異常であるかを判別する。
【００５０】
本実施形態では、ＣＰＵ２１およびＣＰＵ２２は、第１実施形態と同様、「ＣＰＵ２１またはＣＰＵ２２の異常は恒久的な異常である」と判別した場合、ＥＣＵ１０を再起動によりリセットする。また、ＣＰＵ２１およびＣＰＵ２２は、ＥＣＵ１０をリセットした回数が所定の回数を超えた場合、ＥＣＵ１０を停止する。
【００５１】
次に、上述のＣＰＵ２１およびＣＰＵ２２による割り込み処理に関し、図７に基づき説明する。
図７に示す一連の処理Ｓ２００は、ＣＰＵ２１およびＣＰＵ２２がメイン割り込みコントローラ１７、サブ割り込みコントローラ１８から割り込み発生信号を受信すると開始される。Ｓ２００は、割り込み処理のため、ＣＰＵ２１によるモータ８０の駆動制御に関するメイン処理の演算周期と関係なく、割り込み発生信号を受信し次第、メイン処理に割り込むようにして実行される。
【００５２】
Ｓ２０１では、レジスタに書き込まれたフェイル情報を読み出す。その後、処理はＳ２０２へ移行する。
Ｓ２０２では、フェイル情報が書き込まれているレジスタをクリア（データ消去）する。その後、処理はＳ２０３へ移行する。
【００５３】
Ｓ２０３では、メインコンパレータ１６が不一致を検出したか否かを判定する。メインコンパレータ１６が不一致を検出した（メインコンパレータ１６から不一致検出信号が送信された）と判定した場合（Ｓ２０３：ＹＥＳ）、処理はＳ２０４へ移行する。一方、メインコンパレータ１６は不一致を検出していないと判定した場合（Ｓ２０３：ＮＯ）、処理はＳ２０５へ移行する。
【００５４】
Ｓ２０４では、メイン側不一致回数カウント値（メインコンパレータ１６に対応する不一致回数カウント値）をカウントアップ（１増加）させる。その後、処理はＳ２０５に移行する。
【００５５】
Ｓ２０５では、サブコンパレータ１９が不一致を検出したか否かを判定する。サブコンパレータ１９が不一致を検出した（サブコンパレータ１９から不一致検出信号が送信された）と判定した場合（Ｓ２０５：ＹＥＳ）、処理はＳ２０６へ移行する。一方、サブコンパレータ１９は不一致を検出していないと判定した場合（Ｓ２０５：ＮＯ）、処理はＳ２０７へ移行する。
【００５６】
Ｓ２０６では、サブ側不一致回数カウント値（サブコンパレータ１９に対応する不一致回数カウント値）をカウントアップ（１増加）させる。その後、処理はＳ２０７に移行する。
【００５７】
Ｓ２０７では、メイン側不一致回数カウント値またはサブ側不一致回数カウント値の少なくとも一方が所定の閾値以上か否かを判別する。メイン側不一致回数カウント値またはサブ側不一致回数カウント値の少なくとも一方は閾値以上であると判別した場合（Ｓ２０７：ＹＥＳ）、ＣＰＵ２１またはＣＰＵ２２の異常（演算結果の不一致）は恒久的な異常であると判定し、処理はＳ２０８へ移行する。一方、「メイン側不一致回数カウント値またはサブ側不一致回数カウント値の少なくとも一方は閾値以上」ではない（メイン側不一致回数カウント値およびサブ側不一致回数カウント値はいずれも閾値未満）と判別した場合（Ｓ２０７：ＮＯ）、ＣＰＵ２１またはＣＰＵ２２の異常（演算結果の不一致）は一時的な異常であると判定し、処理はメイン処理へ戻る（リターンする）。
【００５８】
Ｓ２０８では、ＥＣＵ１０を再起動によりリセットする。ＥＣＵ１０が再起動すると、メイン側不一致回数カウント値およびサブ側不一致回数カウント値の値等、ＥＣＵ１０のレジスタ等が保持する種々のデータがクリア（初期化）され、その後、モータ８０の駆動制御に関するメイン処理が再開される。
【００５９】
以上説明したように、本実施形態では、コンパレータは複数（メインコンパレータ１６およびサブコンパレータ１９）設けられている。また、不一致回数カウント値は、コンパレータ毎に複数（メイン側不一致回数カウント値およびサブ側不一致回数カウント値）設定されている。ＣＰＵ２１およびＣＰＵ２２は、コンパレータ（メインコンパレータ１６またはサブコンパレータ１９）が演算結果の不一致を検出すると、不一致を検出したコンパレータに対応する不一致回数カウント値をカウントアップさせる。ＣＰＵ２１およびＣＰＵ２２は、複数の不一致回数カウント値（メイン側不一致回数カウント値およびサブ側不一致回数カウント値）の少なくとも１つが所定の閾値以上の場合、ＣＰＵの異常は恒久的な異常であると判別し、それ以外（メイン側不一致回数カウント値およびサブ側不一致回数カウント値のいずれもが閾値未満）の場合、ＣＰＵの異常は一時的な異常であると判別する。
【００６０】
本実施形態では、コンパレータが複数設けられており、かつ、不一致回数カウント値がコンパレータ毎に複数設定されている。そして、ＣＰＵ（ＣＰＵ２１およびＣＰＵ２２）の演算結果の不一致を検出したコンパレータの数についても、ＣＰＵの異常を判別するための指標としている。したがって、本実施形態では、ＣＰＵの一時的な異常または恒久的な異常をより高精度に判別することができる。
【００６１】
（他の実施形態）
本発明の他の実施形態では、電子制御装置（ＥＣＵ）は、ＣＰＵを３つ以上備えることとしてもよい。また、コンパレータも３つ以上備えることとしてもよい。
【００６２】
上述の第２実施形態では、複数の不一致回数カウント値（メイン側不一致回数カウント値およびサブ側不一致回数カウント値）の少なくとも１つが所定の閾値以上の場合、ＣＰＵの異常は恒久的な異常であると判別し、それ以外（メイン側不一致回数カウント値およびサブ側不一致回数カウント値のいずれもが閾値未満）の場合、ＣＰＵの異常は一時的な異常であると判別する例を示した。これに対し、本発明の他の実施形態では、複数の不一致回数カウント値のすべてが所定の閾値以上の場合、ＣＰＵの異常は恒久的な異常であると判別し、それ以外（複数の不一致回数カウント値のうち少なくとも１つが閾値未満）の場合、ＣＰＵの異常は一時的な異常であると判別することとしてもよい。あるいは、複数の不一致回数カウント値のうち所定の閾値以上となっているものの割合（コンパレータの総数に対する数）に基づき、ＣＰＵの異常に関し恒久的な異常または一時的な異常を判別することとしてもよい。
【００６３】
また、上述の第２実施形態では、不一致回数カウント値がコンパレータ毎に複数設定される例を示した。これに対し、本発明の他の実施形態では、不一致回数カウント値は、複数のコンパレータに対し共通で１つ設定することとしてもよい。この構成では、カウント手段は、複数のコンパレータのうち少なくとも１つが演算結果の不一致を検出すると、（１つの）不一致回数カウント値をカウントアップさせる。異常判別手段は、不一致回数カウント値が所定の閾値未満の場合、ＣＰＵの異常は一時的な異常であると判別し、前記閾値以上の場合、恒久的な異常であると判別する。すなわち、この構成では、第２実施形態と同様、ＣＰＵの演算結果の不一致を検出したコンパレータの数についても、ＣＰＵの異常を判別するための指標としている。したがって、本発明では、ＣＰＵの一時的な異常または恒久的な異常をより高精度に判別することができる。このように、不一致回数カウント値が複数のコンパレータに対し共通で１つ設定される構成であっても、ＣＰＵの異常が一時的な異常であるか、恒久的な異常であるかを判別することができる。
【００６４】
上述の実施形態では、異常判別手段がＣＰＵの異常は恒久的な異常であると判別した場合、電子制御装置を再起動によりリセット（初期化）し、電子制御装置をリセットした回数が所定の回数を超えた場合、電子制御装置を停止する例を示した。これに対し、本発明の他の実施形態では、異常判別手段がＣＰＵの異常は恒久的な異常であると判別した場合、電子制御装置をリセットするのではなく、停止することとしてもよい。
【００６５】
また、上述の実施形態では、異常検出対象であるＣＰＵにより、不一致回数カウント値のカウントアップ、電子制御装置のリセットおよび停止等を行う例を示した。これに対し、本発明の他の実施形態では、不一致回数カウント値のカウントアップ、電子制御装置のリセットおよび停止等を、異常検出対象であるＣＰＵ以外の例えば周辺装置等により行うこととしてもよい。この構成では、不一致回数カウント値のカウントアップ、電子制御装置のリセットおよび停止等を精度よく行うことができる。
【００６６】
また、上述の実施形態では、メインモジュール１２のみが駆動回路３０に接続する例を示した。これに対し、本発明の他の実施形態では、メインモジュール１２に加え、サブモジュール１３も駆動回路３０に接続する構成としてもよい。
本発明の電子制御装置は、電動パワーステアリング装置の他、例えば、ＶＧＲＳ（ギア比可変ステアリング）、ＡＲＳ（アクティブリアステアリング）等、様々な用途に適用することができる。
このように、本発明は上述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の形態で実施可能である。
【符号の説明】
【００６７】
１０  ・・・ＥＣＵ（電子制御装置）
２１、２２  ・・・ＣＰＵ（カウント手段、異常判別手段）
１６  ・・・メインコンパレータ（コンパレータ）
１７  ・・・メイン割り込みコントローラ（カウント手段）
１８  ・・・サブ割り込みコントローラ（カウント手段）
１９  ・・・サブコンパレータ（コンパレータ）
【図１】
0005569752.tif 000002
【図２】
0005569752.tif 000003
【図３】
0005569752.tif 000004
【図４】
0005569752.tif 000005
【図５】
0005569752.tif 000006
【図６】
0005569752.tif 000007
【図７】
0005569752.tif 000008