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