(57)【要約】【課題】独立した複数の巻線組を有するモータを継続的に動作させることを可能にする。【解決手段】モータ駆動装置１００は、第１の駆動制御回路（ＭＣＵ１０Ａ、駆動回路１１Ａ、入力回路１２Ａ、電源ＩＣ１３Ａ）と、第２の駆動制御回路（ＭＣＵ１０Ｂ、駆動回路１１Ｂ、入力回路１２Ｂ、電源ＩＣ１３Ｂ）とを含む。第１の駆動制御回路および第２の駆動制御回路は、モータ５の巻線組５１，５２のうちの対応する巻線組を駆動するように構成され、対応する巻線組の駆動に同期した同期トリガ信号を出力するマスタモードと、入力された同期トリガ信号に対応する巻線組の駆動を同期させるスレーブモードとを有する。マスタモードでの第１の駆動制御回路の動作に関する異常が発生した場合に、第２の駆動制御回路は、第２の駆動制御回路の動作モードを、スレーブモードからマスタモードへと切り替える。【選択図】図２
2019193388.tif 000002
【特許請求の範囲】
【請求項１】
独立した複数の巻線組を有するブラシレスモータを駆動するモータ駆動装置であって、
前記複数の巻線組のうちの対応する巻線組をそれぞれ駆動するように構成され、かつ、マスタモードとスレーブモードとを動作モードとして有する第１の駆動制御回路および第２の駆動制御回路を備え、
前記第１の駆動制御回路の前記動作モードが前記マスタモードに設定され、
前記第２の駆動制御回路の前記動作モードが前記スレーブモードに設定され、
前記マスタモードにおいて、前記第１の駆動制御回路は、前記対応する巻線組の駆動に同期した同期トリガ信号を前記第２の駆動制御回路に出力し、
前記スレーブモードにおいて、前記第２の駆動制御回路は、前記第１の駆動制御回路から前記同期トリガ信号を受信して、前記対応する巻線組の駆動を前記同期トリガ信号に同期させ、
前記マスタモードでの前記第１の駆動制御回路の動作に関する異常が発生した場合に、前記第２の駆動制御回路は、前記第２の駆動制御回路の前記動作モードを、前記スレーブモードから前記マスタモードへと切り替える、モータ駆動装置。
【請求項２】
前記同期トリガ信号を受信すべき時点に前記第２の駆動制御回路が前記同期トリガ信号を受信できない場合には、前記第２の駆動制御回路は、タイムアウト時間が経過するまでに前記同期トリガ信号を受信できるかどうかを判定し、
前記タイムアウト時間が経過した場合には、前記第２の駆動制御回路は、前記第１の駆動制御回路の前記異常を判定して、前記動作モードを、前記スレーブモードから前記マスタモードへと切り替える、請求項１に記載のモータ駆動装置。
【請求項３】
前記第２の駆動制御回路は、前記同期トリガ信号の送信に関する前記異常を示す通知を前記第１の駆動制御回路に送信し、
前記第１の駆動制御回路は、前記通知を受信して、前記マスタモードから前記スレーブモードへと前記動作モードを切り替える、請求項２に記載のモータ駆動装置。
【請求項４】
前記第１の駆動制御回路の前記異常が、前記対応する巻線組の駆動に関する異常である場合には、前記第１の駆動制御回路は、前記対応する巻線組の駆動を停止するとともに、前記対応する巻線組の前記駆動に関する前記異常を示す通知を前記第２の駆動制御回路に送信し、
前記第２の駆動制御回路は、前記通知を受信して、前記動作モードを、前記スレーブモードから前記マスタモードへと切り替える、請求項１に記載のモータ駆動装置。
【請求項５】
前記第１の駆動制御回路は、
前記対応する巻線組として第１の巻線組を駆動する第１の駆動回路と、
前記第１の駆動回路を制御する第１の制御回路と、
第１の電源に接続されて、前記第１の制御回路に電源電圧を供給する第１の電源制御回路とを含み、
前記第２の駆動制御回路は、
前記対応する巻線組として第２の巻線組を駆動する第２の駆動回路と、
前記第２の駆動回路を制御する第２の制御回路と、
第２の電源に接続されて、前記第２の制御回路に電源電圧を供給する第２の電源制御回路とを含み、
前記第１の電源制御回路および前記第２の電源制御回路の各々は、対応する制御回路の動作が異常であるときに、前記第１の制御回路および前記第２の制御回路にリセット信号を送信して、前記対応する制御回路の前記動作をリセットし、
前記第２の制御回路は、前記第１の制御回路の前記動作をリセットするための前記リセット信号を受信することにより、前記第２の駆動制御回路の前記動作モードを前記スレーブモードから前記マスタモードに切り替える、請求項１に記載のモータ駆動装置。
【請求項６】
前記第１の制御回路は、前記リセット信号を受信することにより、前記第１の駆動制御回路の前記動作モードを前記マスタモードから前記スレーブモードに切り替えるとともに、前記第１の駆動回路を正常に制御可能な場合には、前記同期トリガ信号に同期して前記第１の駆動回路を制御する、請求項５に記載のモータ駆動装置。
【請求項７】
前記第１の駆動制御回路および前記第２の駆動制御回路の各々の前記動作モードの設定が完了した後に、前記第１の駆動制御回路および前記第２の駆動制御回路は、前記リセット信号による前記スレーブモードから前記マスタモードへの前記動作モードの切り替えを行う、請求項６に記載のモータ駆動装置。
【請求項８】
前記第１の駆動制御回路は前記対応する巻線組に接続され、
前記第２の駆動制御回路と前記対応する巻線組との間の接続および前記第２の駆動制御回路と前記対応する巻線組との間の非接続を切り替えるゲート回路をさらに備え、
前記第１の駆動制御回路の前記動作モードが前記マスタモードであるときに、前記ゲート回路は、前記第２の駆動制御回路を前記対応する巻線組から切り離し、
前記第１の駆動制御回路の前記異常が、前記対応する巻線組の駆動に関する異常である場合、
前記第１の駆動制御回路が、前記対応する巻線組の駆動を停止するとともに、前記対応する巻線組の前記駆動に関する前記異常を示す通知を前記第２の駆動制御回路に送信し、かつ、
前記ゲート回路が、前記第２の駆動制御回路を前記対応する巻線組に接続し、かつ、
前記第２の駆動制御回路が、前記通知を受信して、前記動作モードを、前記スレーブモードから前記マスタモードへと切り替える、請求項１に記載のモータ駆動装置。
【請求項９】
前記同期トリガ信号を受信すべき時点に前記第２の駆動制御回路が前記同期トリガ信号を受信できない場合には、
前記第２の駆動制御回路は、タイムアウト時間が経過するまでに前記同期トリガ信号を受信できるかどうかを判定し、
前記タイムアウト時間が経過した場合には、前記第２の駆動制御回路は、前記第１の駆動制御回路の前記異常を判定して、前記動作モードを、前記スレーブモードから前記マスタモードへと切り替え、前記同期トリガ信号の送信に関する前記異常を示す通知を前記第１の駆動制御回路に送信し、
前記第１の駆動制御回路は、前記通知を受信して、前記マスタモードから前記スレーブモードへと前記動作モードを切り替える、請求項８に記載のモータ駆動装置。
【請求項１０】
前記第１の駆動制御回路および前記第２の駆動制御回路は、初期設定時に乱数値を発生させて、前記乱数値を比較して、各々の前記動作モードを前記マスタモードと前記スレーブモードとの間で排他的に決定する、請求項１に記載のモータ駆動装置。
【請求項１１】
前記第２の駆動制御回路の前記動作モードが前記スレーブモードである時に、前記第２の駆動制御回路による前記対応する巻線組の駆動に関する異常が発生した場合には、前記第２の駆動制御回路は、前記対応する巻線組の駆動を停止する、請求項１に記載のモータ駆動装置。
【請求項１２】
前記第１の駆動制御回路が前記異常から復帰した場合には、前記第１の駆動制御回路は、前記第１の駆動制御回路の前記動作モードを前記スレーブモードに設定する、請求項１に記載のモータ駆動装置。
【請求項１３】
前記第１の駆動制御回路および前記第２の駆動制御回路は、相互にデータを送信する通信チェック処理を、前記ブラシレスモータの制御とは独立に実行して、前記第１の駆動制御回路から前記第２の駆動制御回路への前記データの送信にエラーが発生した場合に、前記第２の駆動制御回路の前記動作モードを、前記スレーブモードから前記マスタモードへと切り替える、請求項１に記載のモータ駆動装置。
【請求項１４】
独立した複数の巻線組を有するブラシレスモータを第１の駆動制御回路および第２の駆動制御回路によって駆動するモータ駆動方法であって、
前記第１の駆動制御回路の動作モードをマスタモードに設定するステップと、
前記第２の駆動制御回路の動作モードをスレーブモードに設定するステップと、
前記第１の駆動制御回路が前記複数の巻線組のうちの対応する巻線組を駆動するとともに、前記対応する巻線組の駆動と同期した同期トリガ信号を出力するステップと、
前記第２の駆動制御回路が、前記複数の巻線組のうちの対応する巻線組を、前記同期トリガ信号に同期して駆動するステップと、
前記マスタモードでの前記第１の駆動制御回路の動作に関する異常が発生した場合に、前記第２の駆動制御回路の前記動作モードを前記スレーブモードから前記マスタモードに切り替えるステップとを備える、モータ駆動方法。
【請求項１５】
前記切り替えるステップは、
前記同期トリガ信号を受信すべき時点に前記第２の駆動制御回路が前記同期トリガ信号を受信できない場合には、前記第２の駆動制御回路が、タイムアウト時間が経過するまでに前記同期トリガ信号を受信できるかどうかを判定するステップと、
前記タイムアウト時間が経過した場合に、前記第２の駆動制御回路は、前記第１の駆動制御回路の前記異常を判定するステップとを含む、請求項１４に記載のモータ駆動方法。
【請求項１６】
前記切り替えるステップは、
前記第２の駆動制御回路が、前記第１の駆動制御回路に、前記同期トリガ信号の送信に関する前記異常を示す通知を送信するステップと、
前記第１の駆動制御回路が前記通知を受信することにより、前記動作モードを前記マスタモードから前記スレーブモードへと切り替えるステップとをさらに含む、請求項１５に記載のモータ駆動方法。
【請求項１７】
前記切り替えるステップは、
前記第１の駆動制御回路による前記対応する巻線組の駆動に異常が発生したことを検知するステップと、
前記第１の駆動制御回路が前記第２の駆動制御回路に、前記対応する巻線組の駆動に関する前記異常を通知するステップとを含む、請求項１４に記載のモータ駆動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、モータ駆動装置およびモータ駆動方法に関し、たとえばブラシレスモータを駆動する装置に好適に利用できるものである。
【背景技術】
【０００２】
自動車の自動運転機能の開発において、「走る、曲がる、止まる」といった自動車の動作に関する各種の制御システムには、フェールオペレーショナルであることが求められている。すなわち、これらの制御システムに故障が発生した場合にも、安全に動作を継続可能であることが要求される。
【０００３】
たとえば電動パワーステアリングに関して、二重系の制御システムが提案されている。国際公開第２０１６／１３５８４０号（特許文献１）は、複数のマイクロプロセッサを有する電動駆動装置、および、その電動駆動装置を含む電動パワーステアリング装置を開示する。電動駆動装置は、電動モータと、電動モータを駆動する制御ユニットを備える。電動モータは、単一のロータと、独立した２組のステータ巻線群を備えたステータとを有する。制御ユニットは、互いに通信可能に構成された２つのマイクロプロセッシングユニット（ＭＰＵ）を備える。
【０００４】
特許文献１によれば、２つのＭＰＵの一方のＣＰＵにはプルアップ抵抗が外部接続され、他方のＣＰＵにはプルダウン抵抗が外部接続されて、親ＣＰＵと子ＣＰＵとが一意に設定される。システム起動時に、親ＣＰＵは同期トリガ信号を出力し、子ＣＰＵはその同期トリガ信号を受信するまで待機する。これにより、親ＣＰＵと子ＣＰＵとの間で、センサ情報の入力、制御量の演算、およびモータ制御を同期させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１６／１３５８４０号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された構成によれば、親ＣＰＵ側のシステムに何らかの故障が発生した場合に、親ＣＰＵが同期トリガ信号を出力できなくなる可能性がある。子ＣＰＵは親ＣＰＵからの同期トリガ信号を受信するまで待機するため、子ＣＰＵ側のシステムが正常であっても電動モータを駆動できないことが起こり得る。したがって特許文献１に開示されたシステムでは、親ＣＰＵ側のシステムに何らかの故障が発生した場合に、冗長化システムとして電動モータを継続的に動作させることができない。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施形態によるモータ駆動装置は、独立した複数の巻線組を有するブラシレスモータを駆動するモータ駆動装置であって、マスタモードとスレーブモードとを有する第１の駆動制御回路および第２の駆動制御回路を含む。マスタモードでの第１の駆動制御回路の動作に関する異常が発生した場合に、第２の駆動制御回路は、第２の駆動制御回路の動作モードを、スレーブモードからマスタモードへと切り替える。
【０００９】
一実施形態によるモータ駆動方法は、独立した複数の巻線組を有するブラシレスモータを第１の駆動制御回路および第２の駆動制御回路によって駆動するモータ駆動方法である。モータ駆動方法は、マスタモードでの第１の駆動制御回路の動作に関する異常が発生した場合に、第２の駆動制御回路の動作モードをスレーブモードからマスタモードに切り替えるステップを備える。
【発明の効果】
【００１０】
一実施形態によれば、独立した複数の巻線組を有するモータを継続して駆動することができる。
【図面の簡単な説明】
【００１１】
【図１】この実施形態に従うモータ駆動装置を含む制御システムの１つの応用例を示した模式図である。
【図２】実施の形態１に係るモータ駆動装置の概略的な構成を示したブロック図である。
【図３】実施の形態１に係るモータ駆動装置の動作を模式的に説明した図である。
【図４】実施の形態１に係るモータ駆動装置の各システムの状態遷移を表す状態遷移図である。
【図５】システムの起動時に実行される初期化処理のフローを示したフローチャートである。
【図６】初期診断処理のフローを示したフローチャートである。
【図７】マスタ／スレーブ設定処理のフローを示したフローチャートである。
【図８】モータ制御処理のフローを示した第１のフローチャートである。
【図９】図８に示したフローに続くモータ制御処理のフローを示した第２のフローチャートである。
【図１０】通信チェック処理のフローを示したフローチャートである。
【図１１】対向システムから自システムへの即時通知の処理のフローを示したフローチャートである。
【図１２】マスタおよびスレーブがともに正常である場合におけるモータ５の同期制御を説明するためのタイミングチャートである。
【図１３】マスタ側の駆動系に異常が発生した場合における、第１の実施の形態に係るモータ駆動装置の制御を説明するためのタイミングチャートである。
【図１４】マスタ側の通信系に異常が発生した場合における、第１の実施の形態に係るモータ駆動装置の制御を説明するためのタイミングチャートである。
【図１５】実施の形態２に係るモータ駆動装置の概略的な構成を示したブロック図である。
【図１６】対向システムからのリセット信号の受信時における、自システムの制御のフローを示したフローチャートである。
【図１７】モータ制御中にマスタ側のＭＣＵに異常が生じた場合における、第２の実施の形態に係るモータ駆動装置の制御を説明するためのタイミングチャートである。
【図１８】実施の形態３に係るモータ駆動装置の概略的な構成を示したブロック図である。
【図１９】マスタ側の駆動系に異常が発生した場合における、第３の実施の形態に係るモータ駆動装置の制御を説明するためのタイミングチャートである。
【図２０】マスタ側の通信系に異常が発生した場合における、第３の実施の形態に係るモータ駆動装置の制御を説明するためのタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下、各実施形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１３】
図１は、この実施形態に従うモータ駆動装置を含む制御システムの１つの応用例を示した模式図である。図１に示すように、車両制御システム１０００は、電動パワーステアリングシステム１を含む。電動パワーステアリングシステム１は、ステアリングホイール２と、ステアリングシャフト３と、減速ギア４と、モータ５と、外部センサ８と、モータ駆動装置１００とを含む。
【００１４】
図１では、各実施の形態に係るモータ駆動装置を「１００（１００Ａ，１００Ｂ）」との符号により示している。モータ駆動装置１００は、実施の形態１に係るモータ駆動装置である。モータ駆動装置１００Ａは実施の形態２に係るモータ駆動装置であり、モータ駆動装置１００Ｂは実施の形態３に係るモータ駆動装置である。モータ駆動装置１００，１００Ａ，１００Ｂの各々は、たとえばＥＣＵ（Electronic Control Unit）の形態で実現される。
【００１５】
代表的に、モータ駆動装置１００を備える電動パワーステアリングシステム１について以下に説明する。ステアリングホイール２は、ステアリングシャフト３の一端に固定される。運転者がステアリングホイール２を操作することによって発生した操舵力がステアリングシャフト３に伝達される。減速ギア４はステアリングシャフト３に連結されて、モータ５の回転をステアリングシャフト３に伝達する。
【００１６】
外部センサ８は、電動パワーステアリングシステム１の動作を検出する。外部センサ８は、たとえばモータ５の回転速度を検出するための回転速度センサ、操舵トルクを検出するトルクセンサ、操舵角を検出する操舵角センサ等を含むことができる。外部センサ８の情報はモータ駆動装置１００に送られる。
【００１７】
モータ駆動装置１００は、外部センサ８からの情報に基づいて、モータ５を駆動するための制御量を演算する。モータ駆動装置１００は、その制御量に従って、モータ５を駆動するための電流を制御する。以下に各実施の形態を詳細に説明する。
【００１８】
＜実施の形態１＞
図２は、実施の形態１に係るモータ駆動装置１００の概略的な構成を示したブロック図である。図２に示すように、モータ５は、ロータ５Ａと、ステータ５Ｂとを含む。ステータ５Ｂは、独立した複数の巻線組を含む。一例ではモータ５は、６相ブラシレスモータであり、ステータ５Ｂは、第１の巻線組５１および第２の巻線組５２を含む。第１の巻線組５１と第２の巻線組５２とは互いに独立している。各々の巻線組は、３つの相（Ｕ相、Ｖ相、Ｗ相）にそれぞれ対応する３つの相巻線を含む。
【００１９】
バッテリ６は直流電源であり、モータ駆動装置１００の端子Ｔ１に接続される。スイッチ７は、バッテリ６と、モータ駆動装置１００の端子Ｔ２との間に接続される。たとえば、上述の電動パワーステアリングシステム１において、バッテリ６は、車両に搭載されたバッテリであり、スイッチ７は、車両のイグニッションスイッチである。
【００２０】
外部センサ８は、上述のように、電動パワーステアリングシステム１（図１に示す）の動作を検出する。外部センサ８は、二重化された構成を有し、二重のセンサ情報を出力する。外部センサ情報８Ａは、二重のセンサ情報のうちの第１のセンサ情報であり、外部センサ情報８Ｂは、二重のセンサ情報のうちの第２のセンサ情報である。たとえば回転速度センサ、トルクセンサ、操舵角センサの各々が二重化されている。したがって二重のセンサ（２つの同種のセンサ）のうちの一方が故障しても、正常な他方のセンサは検出動作を継続することができる。なお、上述の各種のセンサは冗長化されていればよく、同種のセンサの数は２より多くてもよい。
【００２１】
外部センサ情報８Ａおよび外部センサ情報８Ｂの各々は、外部センサ８に含まれる複数のセンサからそれぞれ出力された複数のセンサ情報を含む。したがって、モータ駆動装置１００は、複数のセンサ情報をそれぞれ受けるための複数の端子を備える。図示が煩雑になるのを避けるために、図２では、総括的に、外部センサ情報８Ａを受ける端子Ｔ３と、外部センサ情報８Ｂを受ける端子Ｔ４とを示す。
【００２２】
モータ駆動装置１００は、二重化された駆動制御系統を有する。「駆動制御系統」とは、モータ５の巻線組を駆動するための駆動回路および、その駆動回路を制御するための制御回路とを含む駆動制御回路である。以下では、駆動制御系統を「システム」と呼ぶ。
【００２３】
第１のシステムは、ＭＣＵ(Micro Control Unit）１０Ａと、駆動回路１１Ａと、入力回路１２Ａと、電源ＩＣ(Integrated Circuit）１３Ａとを含む。第２のシステムは、ＭＣＵ１０Ｂと、駆動回路１１Ｂと、入力回路１２Ｂと、電源ＩＣ１３Ｂとを含む。図示しないが、モータ駆動装置１００の内部の各回路および機能ブロックは、入力および出力のための端子を有している。
【００２４】
駆動回路１１Ａ，１１Ｂの各々は三相インバータ回路である。駆動回路１１Ａ，１１Ｂは、端子Ｔ１に接続されて、バッテリ６からの直流電圧ＶＢ１を三相の交流電圧に変換する。駆動回路１１Ａ，１１Ｂの各々は、モータ５の複数の巻線組のうちの対応する巻線組を駆動する。具体的には、駆動回路１１Ａは、端子群Ｔ１１を通じてモータ５の第１の巻線組５１に駆動電流を供給する。駆動回路１１Ｂは、端子群Ｔ１２を通じてモータ５の第２の巻線組５２に駆動電流を供給する。
【００２５】
電源ＩＣ１３Ａ，１３Ｂは端子Ｔ１に接続されるとともに、端子Ｔ２に接続される。スイッチ７がオフ状態であるときには、バッテリ６から直流電圧ＶＢ１が端子Ｔ１に供給されるとともに、電源ＩＣ１３Ａ，１３Ｂはスタンバイ状態になる。スイッチ７がオンされると、バッテリ６から直流電圧ＶＢ１が端子Ｔ１および端子Ｔ２に供給されて、電源ＩＣ１３Ａ，１３ＢはＭＣＵ１０Ａ，１０Ｂのそれぞれに電源電圧を供給する。電源ＩＣ１３Ａ，１３Ｂは、それぞれ第１の電源制御回路および第２の電源制御回路である。
【００２６】
入力回路１２Ａは、端子Ｔ３に接続されて、外部センサ情報８Ａを、端子Ｔ３を介して受ける。入力回路１２Ｂは、端子Ｔ４に接続されて、外部センサ情報８Ｂを、端子Ｔ４を介して受ける。
【００２７】
入力回路１２Ａ，１２Ｂの各々は、各種センサの情報を受信するように構成されている。センサからの信号がアナログ信号である場合、入力回路１２Ａ，１２Ｂの各々は、そのアナログ信号を受けるためのディスクリート部品を含むことができる。アナログ信号の送信には、たとえばＳＥＮＴ(Single Edge Nibble Transmission)通信を適用することができる。たとえばＣＡＮ(Controller Area Network)によりセンサ情報が送信される場合、入力回路１２Ａ，１２Ｂの各々は、その情報を受信するためのＣＡＮトランシーバＩＣを含む。
【００２８】
なお、図２では、入力回路１２Ａおよび入力回路１２ＢがＭＣＵ１０ＡおよびＭＣＵ１０Ｂとは分けて記載されている。しかし、入力回路１２Ａの少なくとも一部がＭＣＵ１０Ａに統合されてもよい。同様に、入力回路１２Ｂの少なくとも一部がＭＣＵ１０Ｂに統合されてもよい。
【００２９】
ＭＣＵ１０Ａ，ＭＣＵ１０Ｂは、半導体集積回路によって実現される制御回路である。ＭＣＵ１０Ａ，ＭＣＵ１０Ｂは、それぞれ第１のＭＣＵおよび第２のＭＣＵである。
【００３０】
ＭＣＵ１０Ａ，ＭＣＵ１０Ｂは、駆動回路１１Ａ，１１Ｂをそれぞれ制御してモータ５を制御する。詳細には、ＭＣＵ１０Ａは、入力回路１２Ａから入力された外部センサ情報８Ａに基づいて、駆動回路１１Ａを制御する。ＭＣＵ１０Ｂは、入力回路１２Ｂから入力された外部センサ情報８Ｂに基づいて、駆動回路１１Ｂを制御する。
【００３１】
ＭＣＵ１０Ａ，１０Ｂは同一の構成を有する。ＭＣＵ１０Ａは、演算部２１Ａと、制御部２２Ａと、通信部２３Ａと、通信部２４Ａとを備える。ＭＣＵ１０Ｂは、演算部２１Ｂと、制御部２２Ｂと、通信部２３Ｂと、通信部２４Ｂとを備える。
【００３２】
演算部２１Ａは、外部センサ情報８Ａから、駆動回路１１Ａを制御するための制御量を算出する。制御部２２Ａは、その制御量に基づいて駆動回路１１Ａを制御するための制御信号ＤＲＶ１を生成して、その制御信号ＤＲＶ１を駆動回路１１Ａに出力する。演算部２１Ａおよび制御部２２Ａによる制御の方式には、ＰＷＭ(Pulse width modulation)制御を適用することができる。
【００３３】
演算部２１Ａによる制御量の演算のために、駆動回路１１Ａは、フィードバック電流ＦＣ１をＭＣＵ１０Ａに供給する。モータ５の回転方向として正回転および逆回転の両方を考慮すると、制御部２２Ａから各相の制御のためには２本の信号線が必要である。したがって、制御部２２Ａが３相を制御するためには、制御部２２Ａと駆動回路１１Ａとを接続する６本の信号線および、その６本の信号線により制御部２２Ａから駆動回路１１Ａに送られる６つの信号が必要である。ただし、図２では、制御部２２Ａから駆動回路１１Ａに送られる６つの信号を制御信号ＤＲＶ１として総括的に示す。
【００３４】
制御部２２Ａは、制御信号ＤＲＶ１に加えて、駆動回路１１Ａの動作を有効または無効にするためのイネーブル信号ＥＮＢ１を駆動回路１１Ａに出力する。イネーブル信号ＥＮＢ１は、モータ５の制御開始時点までに活性化される。イネーブル信号ＥＮＢ１が活性化されることにより、駆動回路１１Ａからの出力が許可される。一方、駆動回路１１Ａが正常に動作できない場合、制御部２２Ａは、イネーブル信号ＥＮＢ１を非活性化する。これにより駆動回路１１Ａがシャットダウンする。たとえば、イネーブル信号ＥＮＢ１は、駆動回路１１Ａと電源（バッテリ６）とを接続するか否かを切り替える電源リレー（図示せず）を制御する信号である。
【００３５】
通信部２３Ａは、ＭＣＵ１０ＡとＭＣＵ１０Ｂとの通信のためのインターフェイス回路である。ＭＣＵ１０ＡとＭＣＵ１０Ｂとの間の通信には、たとえばＳＰＩ(Serial Peripheral Interface)などのシリアル通信を用いることができる。これにより、ＭＣＵ１０ＡとＭＣＵ１０Ｂとの間で、定期的に互いのＭＣＵに関する情報を共有することができる。一方のシステムに故障が発生した場合、そのシステムのＭＣＵが故障を検出するとともに、他方のシステムに故障（エラー）を通知する。
【００３６】
通信部２４Ａは、ＭＣＵ１０Ａと電源ＩＣ１３Ａとの間の通信のためのインターフェイス回路である。ＭＣＵ１０Ａは通信部２４Ａを介して電源ＩＣ１３Ａにデータを書き込むことができるとともに、電源ＩＣ１３Ａからデータを読み出すことができる。ＭＣＵ１０Ａはデータを用いて、電源ＩＣ１３Ａの状態を検知するとともに電源ＩＣ１３Ａの機能を設定する。電源ＩＣ１３Ａが有する機能の１つは、たとえばウォッチドッグタイマ機能である。電源ＩＣ１３Ａは、ウォッチドッグタイマ機能等によりＭＣＵ１０Ａの状態を監視する。ＭＣＵ１０Ａに異常（たとえばプログラムの暴走）が発生した場合には、電源ＩＣ１３Ａはその異常を検出して、ＭＣＵ１０Ａに対してリセット信号ＲＳＴ１を出力する。
【００３７】
ＭＣＵ１０Ａは自システム内の故障を検知することができる。ＭＣＵ１０Ａは、駆動回路１１Ａにおける電圧あるいは電流の上下限値を監視してもよい。電圧あるいは電流の検出値が上限値あるいは下限値を超えた場合にＭＣＵ１０Ａは、駆動回路１１Ａに異常が生じたと判断してもよい。通信系に関して、ＭＣＵ１０Ａは、送受信のタイムアウトを監視して、タイムアウトが発生した場合に異常と判断してもよい。入力系に関して、ＭＣＵ１０Ａは電圧の上下限値を監視し、その値を超えた場合に異常と判断してもよい。上記の故障あるいは異常の検知は一例であり、検知の手段あるいは対象を限定するものではない。
【００３８】
ＭＣＵ１０Ｂは、駆動回路１１Ｂおよび電源ＩＣ１３Ｂに対して、ＭＣＵ１０Ａによる駆動回路１１Ａおよび電源ＩＣ１３Ａに対する制御と同じ制御を実行する。制御部２２Ｂは、駆動回路１１Ｂを制御するための制御信号ＤＲＶ２を駆動回路１１Ｂに出力する。駆動回路１１Ｂは、フィードバック電流ＦＣ２をＭＣＵ１０Ｂに供給する。制御部２２Ｂは、制御信号ＤＲＶ２に加えて、駆動回路１１Ｂの動作を有効または無効にするためのイネーブル信号ＥＮＢ２を駆動回路１１Ｂに出力する。ＭＣＵ１０Ｂに異常が発生した場合には、電源ＩＣ１３Ｂはその異常を検出して、ＭＣＵ１０Ｂに対してリセット信号ＲＳＴ２を出力する。
【００３９】
モータ駆動装置１００は、通信回路１５および端子Ｔ１３をさらに有する。通信回路１５は、ＭＣＵ１０Ａ，１０ＢとＥＣＵ２０との間の通信のためのインターフェイス回路である。ＥＣＵ２０は、車両に搭載された他のユニットである。
【００４０】
モータ駆動装置１００とＥＣＵ２０との間の通信にＣＡＮが用いられる場合には、通信回路１５は、ＣＡＮトランシーバＩＣである。たとえばモータ５の制御に必要な情報がＥＣＵ２０から端子Ｔ１３に入力される。この情報は、たとえば車速の情報である。ＭＣＵ１０Ａ，１０Ｂは、センサ情報に加えて車速の情報からモータ５の目標制御量を演算することができる。
【００４１】
図３は、実施の形態１に係るモータ駆動装置１００の動作を模式的に説明した図である。図３に示すように、モータ５のステータ５Ｂにおいて、６つの相巻線が、ロータ５Ａの中心から見て６０°ごとに配置される。駆動回路１１Ａは、Ｕ相巻線５１Ｕ、Ｖ相巻線５１ＶおよびＷ相巻線５１Ｗを駆動する。駆動回路１１Ｂは、Ｕ相巻線５２Ｕ、Ｖ相巻線５２ＶおよびＷ相巻線５２Ｗを駆動する。Ｕ相巻線５１Ｕ、Ｖ相巻線５１ＶおよびＷ相巻線５１Ｗは第１の巻線組５１を構成し、Ｕ相巻線５２Ｕ、Ｖ相巻線５２ＶおよびＷ相巻線５２Ｗを構成する（図２を参照）。
【００４２】
電動パワーステアリングシステム１の動作時において、モータ５から出力されるトルクは大きいことが要求される。一方では、ロータ５Ａの滑らかな動きのため、トルクのリップルが小さいことが要求される。このために、たとえば６相モータが採用される。独立した２つのシステムによって６相モータを細かく制御するために、２つのシステムは、モータ５の巻線組の駆動を互いに同期させる。
【００４３】
本実施の形態では、システムの起動時（初期化処理の実行時）に、システムの一方がマスタモードに設定され、他方のシステムがスレーブモードに設定される。すなわち２つのシステムが、それぞれマスタおよびスレーブに設定される。たとえばＭＣＵ１０Ａの制御モードがマスタモードに設定され、ＭＣＵ１０Ｂの制御モードがスレーブモードに設定される。マスタのＭＣＵ（ＭＣＵ１０Ａ）は、制御の開始点を示す同期トリガ信号をスレーブのＭＣＵ（ＭＣＵ１０Ｂ）に送信する。これにより、スレーブは、マスタによるモータ５の駆動制御に同期してモータ５を制御することができる。
【００４４】
マスタに異常が発生した場合、マスタは、スレーブにマスタの異常を通知する。スレーブは、その通知によりマスタの異常を検知する。スレーブのＭＣＵは、制御モードをマスタモードに切り替える。
【００４５】
「マスタに異常が発生する」とは、マスタモードでのモータ５の駆動を維持できない場合に相当する。このような場合として、スレーブによるモータ５の駆動を、マスタによるモータ５の駆動に同期させることができない場合、および、マスタによるモータ５の駆動そのものに異常が発生した場合がある。スレーブがマスタから同期トリガ信号を受信できない場合、スレーブによるモータ５の駆動を、マスタによるモータ５の駆動に同期させることができない。この場合、スレーブは、マスタに、同期トリガ信号の送信が異常であることを通知する。したがってマスタのＭＣＵ（ＭＣＵ１０Ａ）は、制御モードをスレーブモードに切り替える。これにより、２つのシステムの間でマスタとスレーブとが入れ替わる。新しいマスタ（ＭＣＵ１０Ｂ）は新しいスレーブ（ＭＣＵ１０Ａ）に同期トリガ信号を送り、新しいスレーブ（ＭＣＵ１０Ａ）は、その同期信号を受信する。新しいマスタの駆動系および新しいスレーブの駆動系はいずれも正常である。したがって同期制御を継続させることができる。
【００４６】
一方、マスタによるモータ５の駆動に異常が発生した場合とは、たとえば駆動回路が故障した場合である。このような場合、マスタはモータ５の駆動を停止する。スレーブが新しいマスタとなり、新しいマスタは単独制御によりモータ５を駆動する。したがってモータ５の駆動を継続できる。
【００４７】
以上説明するように、ＭＣＵ１０Ａ，１０Ｂの各々は、制御モードとしてマスタモードとスレーブモードとを有し、かつ、マスタモードとスレーブモードとを動的に切り替え可能である。したがって一方のＭＣＵの制御に異常が発生した場合にも、他方のＭＣＵによって、モータ５を継続して駆動することができる。
【００４８】
図４は、実施の形態１に係るモータ駆動装置１００の各システムの状態遷移を表す状態遷移図である。モータ駆動装置１００が起動されることによって状態が開始される。２つのシステムの各々は、初期化処理状態１１０に遷移する。初期化処理状態１１０は、初期状態１１１、第１のモード判定状態１１２、および第２のモード判定状態１１３から成り立つ。
【００４９】
初期状態１１１では、駆動系についての自己診断（たとえば駆動回路の診断）が実行される。駆動系の異常が検出された場合には、自己診断が終了し、システムは終了状態に遷移する。駆動系が正常である場合、第１のモード判定状態１１２において、２つのシステムの状態が確認される。２つのシステムの一方を「自システム」と呼び、「自システム」に対する他のシステムを「対向システム」と呼ぶ。自システムおよび対向システムの両方が正常である場合には、第２のモード判定状態１１３において、自システムは乱数値を取得して、その乱数値を、対向システムが取得した乱数値と比較する。２つの乱数値の比較が終了すると、２つのシステムの各々は、システム動作中状態１２０に遷移する。各システムが乱数値を発生させることにより、２つのシステムの一方が常にマスタ（あるいはスレーブ）に設定されることが防がれる。
【００５０】
システム動作中状態１２０は、マスタモード状態１２１と、スレーブモード状態１２２とから成り立っている。たとえば自システムにおいて取得した乱数値が対向システムの乱数値よりも大きい場合、自システムがマスタモード状態１２１となり、対向システムがスレーブモード状態１２２となる。逆に、自システムにおいて取得した乱数値が対向システムの乱数値よりも小さい場合、自システムがスレーブモード状態１２２となり、対向システムがマスタモード状態１２１となる。
【００５１】
マスタモード状態１２１にあるシステムは、モータ５の制御時に、同期トリガ信号を対向システムに出力する。一方、スレーブモード状態１２２にあるシステムは、同期トリガ信号を受信して、モータ５を制御する。自システムがマスタモード状態１２１にある間に異常が発生した場合、自システムはスレーブモード状態１２２に遷移する。一方、自システムがスレーブモード状態１２２にある間に対向システムに異常が発生した場合、自システムはマスタモード状態１２１に遷移する。
【００５２】
第１のモード判定状態１１２において、対向システムの異常が検知された場合には、自システムは、マスタモード状態１２１に遷移する。一方、第１のモード判定状態１１２において、自システムのデータ送信の異常（通信の異常）が検知された場合には、自システムは、スレーブモード状態１２２に遷移する。自システムがスレーブモード状態１２２であるときに自システムのＭＣＵが異常になった場合には、自システムは、モータ５の制御を停止する。
【００５３】
次に図４に示した各状態においてシステムが実行する処理を説明する。以下に説明する処理は、主として各システムのＭＣＵにより実行される。以下の説明では、ＭＣＵ１０ＡおよびＭＣＵ１０Ｂを特定する必要が無い場合には、ＭＣＵ１０ＡおよびＭＣＵ１０Ｂを「ＭＣＵ」との記載により総称する。
【００５４】
図５は、システムの起動時に実行される初期化処理のフローを示したフローチャートである。初期化処理はシステム起動時に１回のみ実行され、それ以降は、次のシステム起動まで実行されない。
【００５５】
図５に示すように、初期化処理（ステップＳ１）が実行される。初期化処理では、メモリの初期化および初期設定などの基本的な処理に加えて、乱数値を取得する処理が実行される。乱数値の取得については種々の方法を採用することができる。一例では、電源ＩＣによって生成した乱数値をＭＣＵが取得する。
【００５６】
次に初期診断（ステップＳ２）が実行される。初期診断のフローは図６を参照して後に詳細に説明する。
【００５７】
ステップＳ３において、初期診断の結果が判断される。システムが正常と判断された場合（ステップＳ３においてＹＥＳ）には、ステップＳ４において、マスタ／スレーブの設定が実行される。これにより、システムの状態は、マスタモード状態およびスレーブモード状態のいずれかに排他的に設定される。
【００５８】
初期診断の結果、システムが異常と判断された場合（ステップＳ３においてＮＯ）には初期化処理が終了する。以後、システムのモータ制御は禁止される。
【００５９】
図６は、初期診断処理のフローを示したフローチャートである。初期診断処理において、まず制御系の自己診断が実行される（ステップＳ１１）。自己診断では、たとえばＭＣＵの各端子、ＭＣＵの内部レジスタ、およびＭＣＵの周辺のＩＣについて故障の有無を診断する。
【００６０】
ＭＣＵは自己診断の結果に基づいて、システムが正常か否かを判定する（ステップＳ１２）。システムに異常が認められた場合（ステップＳ１２においてＮＯ）、ＭＣＵは異常時処理を実行する（ステップＳ１３）。すなわちモータの制御が禁止される。
【００６１】
システムが正常である場合（ステップＳ１２においてＹＥＳ）、通信チェック処理が実行される（ステップＳ１４）。通信チェック処理では、ＭＣＵ１０Ａ，１０Ｂが両者の間の通信経路を診断する。ＭＣＵ１０Ａ，１０Ｂの間の通信経路とは、ＭＣＵ１０Ａ，１０Ｂの間の通信に関わる部分全体であり、各ＭＣＵの通信部（図２に示す通信部２３Ａ，２３Ｂ）および、通信部２３Ａ，２３Ｂの間の配線パターン、コネクタ等を含む。ＭＣＵ１０Ａ，１０Ｂとの間では双方向のデータ通信が実現されていればよく、データ送受信のための方法、およびその方法を実行するために必要な信号線の本数は特に限定されない。たとえばＭＣＵ１０Ａ，１０Ｂの間の通信にＳＰＩを適用する場合には、一方のＭＣＵのＳＤＯと他方のＭＣＵのＳＤＩとが接続されている。２つのＭＣＵの間では、クロックに同期してデータの送信および受信を同時に実行することができる。
【００６２】
ＭＣＵは、データの送受信が完了したかどうかを判定する（ステップＳ１５）。データの送受信が完了すれば、ＭＣＵ１０Ａ，１０Ｂの間の通信経路は正常である。しかし、何らかの異常が発生した場合は、データの送受信が完了しない。この場合には、タイムアウト時間を設定して、ＭＣＵ１０Ａ，１０Ｂの通信経路に異常があるかどうかが判断される。通信経路の異常としては、たとえば、端子の断線、配線パターンの断線、コネクタの断線等がある。
【００６３】
タイムアウトが発生した場合（ステップＳ１５においてＮＯ）、対向システムの送信が異常であると判定される（ステップＳ１６）。ＭＣＵ１０Ａ，１０Ｂは、通信経路のステータスに関する情報を互いに送信する（ステップＳ１７）。この場合、対向システムの送信の異常を示す情報が、ＭＣＵ１０Ａ，１０Ｂの間で共有される。
【００６４】
図７は、マスタ／スレーブ設定処理のフローを示したフローチャートである。最初にＭＣＵは、自システムが異常から復帰したかどうかを確認する（ステップＳ２１）。この処理については後に詳細に説明する。自システムが異常から復帰した場合には、ＭＣＵはスレーブ設定を行う（ステップＳ２２）。すなわちＭＣＵの制御モードはスレーブモードに設定され、自システムはスレーブモードになる。そうでない場合には、ＭＣＵは対向システムからステータスの情報を取得し（ステップＳ２３）、対向システムが正常か否かを確認する（ステップＳ２４）。
【００６５】
対向システムの駆動系に故障が発生している場合（ステップＳ２４においてＮＯ）、ＭＣＵはマスタ設定を行う（ステップＳ２５）。ＭＣＵの制御モードはマスタモードに設定され、正常である自システムはマスタモードになる。
【００６６】
対向システムが正常である場合（ステップＳ２４においてＹＥＳ）、自システムのＭＣＵは通信チェックの結果を確認して、自システムの送信が異常であるか否かを確認する。自システムの送信が異常である場合、すなわち自システムのデータの送信が異常であると対向システムが判断した場合（ステップＳ２６においてＹＥＳ）、自システムのＭＣＵはスレーブ設定を行う（ステップＳ２７）。自システムの送信が正常である場合（ステップＳ２６においてＮＯ）、自システムの制御系および通信系は正常である。この場合、互いのシステムは初期化処理で取得した乱数値の大小を比較することによってマスタ／スレーブの設定を実施する（ステップＳ２８〜Ｓ３４）。
【００６７】
まず、自システムおよび対向システムは、比較用データである乱数値を互いに確認する（ステップＳ２８）。一方のＭＣＵは、自身の乱数値が他のＭＣＵの乱数値と異なるかどうかを判定する（ステップＳ２９）。２つの乱数値が同じである場合（ステップＳ２９においてＮＯ）、ＭＣＵ１０Ａ，１０Ｂの各々は、比較用データとして乱数値を再取得する（ステップＳ３０）。ＭＣＵ１０Ａ，１０Ｂの各々は、取得した乱数値を他方のＭＣＵに送信するとともに、他方のＭＣＵから乱数値を受信（ステップＳ３１）して、ステップＳ２９の判定処理を実行する。なお、ＭＣＵ１０Ａ，１０Ｂの各々が、予め複数の乱数値を取得しておいて、１番目のデータが互いに同じであれば２番目のデータ同士を比較する、といった方法を採ってもよい。
【００６８】
２つの乱数値が異なる場合（ステップＳ２９においてＹＥＳ）、自ＭＣＵは自分の乱数値と他ＭＣＵの乱数値との大小関係を判定する（ステップＳ３２）。自ＭＣＵの乱数値が他ＭＣＵの乱数値より大きい場合（ステップＳ３２においてＹＥＳ）、自ＭＣＵはマスタ設定を行う（ステップＳ３３）。自ＭＣＵの乱数値が他ＭＣＵの乱数値より小さい場合（ステップＳ３２においてＮＯ）、自ＭＣＵはスレーブ設定を行う（ステップＳ３４）。
【００６９】
ＭＣＵ１０Ａ，１０Ｂの各々の制御モードが設定されることにより、システムのモードが設定されて、モータ５の制御が実行される。図８は、モータ制御処理のフローを示した第１のフローチャートである。図９は、図８に示したフローに続くモータ制御処理のフローを示した第２のフローチャートである。図８および図９に示した処理は、一定の周期で繰り返して実行される。
【００７０】
図８および図９を参照して、ＭＣＵは入力回路を通じて外部センサ８から外部センサ情報を取得する（ステップＳ４１）。ＭＣＵはその外部センサ情報に基づいて目標制御量を演算する（ステップＳ４２）。目標制御量の演算は、ＭＣＵの演算部において実行される。
【００７１】
次にＭＣＵは、モータ５が制御可能であるかどうかを確認する（ステップＳ４３）。すでに自システムが異常と判断されている場合（ステップＳ４３においてＮＯ）、このフローに示す処理は終了する。モータ５が制御可能である場合（ステップＳ４３においてＹＥＳ）、ＭＣＵは、モータ５が駆動中かどうかを確認する（ステップＳ４４）。すなわちＭＣＵは、今回の制御周期が初回の制御周期であるかどうかを確認する。初回の制御周期の場合（ステップＳ４４においてＮＯ）、ＭＣＵの制御モードがマスタモードに設定されているかどうかを判定する（ステップＳ４５）。ＭＣＵの制御モードがマスタモードである場合（ステップＳ４５においてＹＥＳ）、ＭＣＵは、同期トリガ信号を出力してモータ制御を開始する（ステップＳ４６）。
【００７２】
一方、ＭＣＵの制御モードがスレーブモードに設定されている場合（ステップＳ４５においてＮＯ）、自システムのＭＣＵは、同期トリガ信号の受信を待つ状態となる（ステップＳ４７，Ｓ４８）。対向システムのＭＣＵマスタからの同期トリガ信号を正常に受信した場合（ステップＳ４８においてＹＥＳ）、ＭＣＵは同期トリガ信号をトリガとして、モータ制御を開始する（ステップＳ４９）。ステップＳ４６，Ｓ４９の処理によって、マスタとスレーブとによるモータ５の同期制御が実現される。
【００７３】
ＭＣＵが同期トリガ信号を受信できない場合（ステップＳ４８においてＮＯ）、ＭＣＵは受信タイムアウトの時間を設定して、タイムアウトが発生したかどうかを確認する（ステップＳ５０）。同期トリガ信号を受信できないためにタイムアウト時間が満了した場合（ステップＳ５０においてＹＥＳ）、ＭＣＵは、送信異常を対向システム（マスタ）に通知するとともに、マスタ設定を行う（ステップＳ５１）。この場合、ＭＣＵは、マスタモードに設定されてモータ制御を開始する（ステップＳ４９）。受信タイムアウトが発生した場合（ステップＳ５０においてＮＯ）、モータ制御を終了する。なお、システム動作中に、マスタのＭＣＵが、マスタのＭＣＵの送信異常をスレーブのＭＣＵから受信した場合には、マスタのＭＣＵはモータ制御を停止する。これにより、モータ制御がマスタからスレーブへと適切なタイミングで切り替わることができる。
【００７４】
モータ５の制御が開始された状態において、ＭＣＵは駆動系の異常を診断する（ステップＳ５２）。処理はステップＳ５３に進み、図９を参照して、システムが正常であるか否かが確認される（ステップＳ５４）。システムが正常である場合（ステップＳ５４においてＹＥＳ）、システムの制御量が目標制御量に到達したかどうかが判定される（ステップＳ５５）、システムの制御量が目標制御量に到達した場合（ステップＳ５５においてＹＥＳ）、ＭＣＵはモータ制御を停止（ステップＳ５６）して、モータ制御処理は終了する。システムの制御量が目標制御量にまだ到達していない場合（ステップＳ５５においてＮＯ）、モータ制御処理は、ステップＳ４１から繰り返される。
【００７５】
一方、システムが正常でない場合（ステップＳ５４においてＮＯ）、ＭＣＵは異常を判定するとともにモータ制御を禁止する（ステップＳ５７）。そしてＭＣＵは自システムの異常を対向システムに通知する（ステップＳ５８）。
【００７６】
ＭＣＵは、図８および図９に示すモータ制御処理とは独立に通信チェック処理を定期的に実行する。図１０は、通信チェック処理のフローを示したフローチャートである。図１０を参照して、自システムのＭＣＵは対向システムのＭＣＵとの間でデータを共有する処理を実行（ステップＳ６１）して、データの送信が完了したか否かを判定する（ステップＳ６２）。データの送信が完了している場合（ステップＳ６２においてＹＥＳ）、システム間の通信は正常である。一方、データの送信が完了しない場合（ステップＳ６２においてＮＯ）、自システムのＭＣＵ（たとえばＭＣＵ１０Ｂ）は、対向システムのＭＣＵ（たとえばＭＣＵ１０Ａ）の送信に異常があると判定して、対向システムに送信エラーを通知する（ステップＳ６３，Ｓ６４）。
【００７７】
図１０に示した処理は、異常の有無にかかわらず、互いのステータスを共有し終わるまで継続する。この処理によって異常と判断されたシステムは、データを相手に送信できないため、動作を継続させるシステムとして適していない。したがって、データを送信できるほうのシステムのＭＣＵ（たとえばＭＣＵ１０Ｂ）が、制御モードをスレーブモードからマスタモードへと切り替える。
【００７８】
さらに、対向システムに異常が発生した場合に、その情報が対向システムから自システムに即時に通知される。図１１は、対向システムから自システムへの即時通知の処理のフローを示したフローチャートである。本実施の形態では以下の２種類の即時通知が存在する。
【００７９】
（１）自システムがマスタであり、対向システムがスレーブであり、かつ、対向システム（スレーブ）が自システム（マスタ）からの同期トリガ信号を一定期間受信できなかった場合における、対向システムから自システムへの即時通知。
【００８０】
（２）モータ制御を禁止しなければならない故障が対向システムに発生したことを対向システムが検出した場合における、対向システムから自システムへの即時通知。
【００８１】
即時通知の処理は、割り込み等の機能を用いて、対向システムからの通知があった場合にのみ自システムにおいて実行される。図１１に示すように、自システムのＭＣＵは対向システムから即時通知を受信したかどうかを判定する（ステップＳ７１）。自システムが対向システムから即時通知を受信していない場合（ステップＳ７１においてＮＯ）、処理は終了する。自システムが対向システムから即時通知を受信した場合（ステップＳ７１においてＹＥＳ）、自システムのＭＣＵは、その即時通知が、自システムによる同期トリガ信号の送信の異常を示す通知であるかどうかを判定する（ステップＳ７２）。
【００８２】
自システムによる同期トリガ信号の送信が異常である場合（ステップＳ７２においてＹＥＳ）、自システムのＭＣＵは、モータ制御を停止してスレーブ設定を行う（ステップＳ７３）。この場合には、対向システムがマスタとなり、自システムがスレーブとなる。新しいマスタは新しいスレーブに同期トリガ信号を送ることができるとともに、新しいスレーブは、その同期信号を受信することができる。新しいマスタの駆動系および新しいスレーブの駆動系はともに正常であるので同期制御を継続できる。
【００８３】
即時通知が自システムによる同期トリガ信号の送信の異常を示す通知ではない場合（ステップＳ７２においてＮＯ）、自システムは、その即時通知が、対向システムの異常を示す通知であるかどうかを判定する（ステップＳ７４）。対向システムに異常がある場合（ステップＳ７４においてＹＥＳ）、自システムは、対向システムがモータ５の同期制御を実施できないと判断する。したがって自システムのＭＣＵは、マスタ設定を行う（ステップＳ７５）。この場合には自システムのみでモータ５の制御を継続することができる。
【００８４】
図１２は、マスタおよびスレーブがともに正常である場合におけるモータ５の同期制御を説明するためのタイミングチャートである。図１２を参照して、システムが起動されると、図５、図６および図７に示す初期化処理が時刻ｔ１から開始されて、初期診断およびモード選択処理が実行される。初期化処理は時刻ｔ２において終了する。以下の説明では、ＭＣＵ１０Ａがマスタモードに設定され、ＭＣＵ１０Ｂがスレーブモードに設定されたものとする。
【００８５】
図８および図９に示すモータ制御処理が所定の周期で繰り返して実行される。時刻ｔ３において、ＭＣＵ１０Ａは、図８に示したステップＳ４５，Ｓ４６の処理を実行する。ＭＣＵ１０Ａは、制御の開始点を示す同期トリガ信号を出力するとともに駆動回路１１Ａをオンする。ＭＣＵ１０Ｂは、図８に示したステップＳ４７，Ｓ４８，Ｓ４９の処理を実行する。ＭＣＵ１０Ｂは、同期トリガ信号に応答して駆動回路１１Ｂをオンする。「駆動回路をオンする」とは、ＭＣＵ１０Ａ，１０Ｂの各々が対応する駆動回路の制御を開始することを意味する。
【００８６】
ＭＣＵ１０Ａ，ＭＣＵ１０Ｂによる制御は時刻ｔ４において終了し、駆動回路１１Ａ，１１Ｂは時刻ｔ４においてオフにされる。したがってモータ５は一旦停止する。時刻ｔ５において、上述のモータ制御が再び開始される。ＭＣＵ１０Ａは、時刻ｔ５において、同期トリガ信号を出力するとともに駆動回路１１Ａをオンする。ＭＣＵ１０Ｂは、同期トリガ信号に応答して駆動回路１１Ｂをオンする。
【００８７】
図１３は、マスタ側の駆動系に異常が発生した場合における、第１の実施の形態に係るモータ駆動装置１００の制御を説明するためのタイミングチャートである。時刻ｔ３およびそれ以前における処理は、図１２を参照して説明したので以後の説明は繰り返さない。
【００８８】
時刻ｔ３ａにおいて、マスタ側の駆動系（たとえば駆動回路１１Ａ）に故障が発生する。この場合、ＭＣＵ１０Ａは、図８に示すステップＳ５２、図９に示すステップＳ５３，Ｓ５４，Ｓ５７の処理を実行する。これによりマスタによるモータ制御が禁止される。また、Ｓ５８の処理を実行することにより、ＭＣＵ１０ＡはＭＣＵ１０Ｂにシステム異常を通知する。モードを示す値は、初期値に戻される。
【００８９】
時刻ｔ３ａから時刻ｔ４までの間、モータ制御は停止する。駆動回路１１Ａは時刻ｔ４においてオフされると、以後、オフ状態のままである。
【００９０】
ＭＣＵ１０Ｂは、図１１に示すステップＳ７１，Ｓ７２，Ｓ７４，Ｓ７５の処理を実行する。これにより、ＭＣＵ１０Ｂは、制御モードをスレーブモードからマスタモードへと切り替える。次の制御が時刻ｔ５に開始される。新しいマスタであるＭＣＵ１０Ｂは、制御の開始点を示す同期トリガ信号を出力するとともに駆動回路１１Ｂをオンする。この場合、新しいマスタのみによってモータ５が制御される。
【００９１】
図１４は、マスタ側の通信系に異常が発生した場合における、第１の実施の形態に係るモータ駆動装置１００の制御を説明するためのタイミングチャートである。図１４を参照して、時刻ｔ２ａにおいて、ＭＣＵ１０ＡからＭＣＵ１０Ｂへのデータの送信に異常が発生する。この場合、ＭＣＵ１０Ａが同期トリガを出力しても、ＭＣＵ１０Ｂは同期トリガ信号を受信できない。ＭＣＵ１０Ｂは、制御周期の開始時刻である時刻ｔ３からタイムアウト期間として設定された期間の間、同期トリガ信号を待つ。しかしながら時刻ｔ３ｂにおいてタイムアウトが発生する。ＭＣＵ１０Ｂでは、図８に示すステップＳ４７，Ｓ４８，Ｓ５０，Ｓ５１の処理を実行する。これによりＭＣＵ１０Ｂは、制御モードをスレーブモードからマスタモードへと切り替える。さらにＭＣＵ１０Ｂは、ＭＣＵ１０Ａに、通信系の異常を通知する。
【００９２】
ＭＣＵ１０Ａは、図１１に示すステップＳ７１，Ｓ７２，Ｓ７３の処理を実行する。これにより、ＭＣＵ１０Ａは、制御モードをマスタモードからスレーブモードへと切り替える。
【００９３】
ＭＣＵ１０Ｂは、時刻ｔ３ｂにおいて図８に示したステップＳ４９の処理を実行する。したがって、駆動回路１１Ｂがオンされてモータ制御が開始される。
【００９４】
時刻ｔ５において、次の制御周期が開始される。新しいマスタであるＭＣＵ１０Ｂが同期トリガ信号を出力するとともに駆動回路１１Ｂをオンする。ＭＣＵ１０ＡがＭＣＵ１０Ｂからデータを受信するための経路は正常である。したがってＭＣＵ１０ＡはＭＣＵ１０Ｂからの同期トリガ信号を受信することができる。ＭＣＵ１０ＡはＭＣＵ１０Ｂからの同期トリガ信号に応答して駆動回路１１Ａをオンする。これにより、時刻ｔ５以後も、同期制御が継続される。
【００９５】
マスタとスレーブとを固定した場合、マスタに異常が発生するとモータ５の制御を継続できない。第１の実施の形態に係るモータ駆動装置１００によれば、マスタ側のＭＣＵが同期トリガを出力できない場合、スレーブ側のＭＣＵにおいて、マスタの送信異常を検知する。スレーブ側のＭＣＵは、マスタの送信異常をマスタ側のＭＣＵに通知する。この場合、適切なタイミングでマスタとスレーブとを入れ替えることができる。元のマスタの駆動系に異常がない場合には、元のマスタは新しいスレーブとなり、モータ制御を実行できる。したがってマスタとスレーブとが互いに入れ替わった後にもモータ５の同期制御を継続できる。
【００９６】
マスタおよびスレーブの一方のシステムの駆動系がモータを駆動できない場合には、他方のシステムによってモータ５を継続して駆動できる。したがって第１の実施の形態に係るモータ駆動装置１００は、二重系の駆動システムを実現することができる。
【００９７】
あるいはマスタが一時的な故障から復帰する可能性が考えられる。マスタとスレーブとを固定した場合、スレーブによるモータ制御は、正しく継続できる。マスタが復帰することによって、マスタは、制御開始時に再度同期トリガ信号を出力する。したがって安全に同期制御を復帰させるためには、同期のための処理を再開する必要がある。しかし、スレーブ側のモータ制御を一旦停止する必要が生じ得る。第１の実施の形態によれば、このような場合に、モータ制御可能、かつ同期トリガ出力可能な他方のシステムがスレーブからマスタに切り換わる。異常が発生したシステムは、異常からの復帰時にスレーブに設定される（図７のステップＳ２１，Ｓ２２を参照）。これにより、モータの同期制御を正常に復帰させることができる。たとえば図１に示す車両制御システムにおいて、車両挙動への影響を小さくすることができる。
【００９８】
＜実施の形態２＞
図１５は、実施の形態２に係るモータ駆動装置の概略的な構成を示したブロック図である。図２に示した構成と共通する構成の説明は繰り返さない。図１５に示すように実施の形態２では、２つのシステムにそれぞれ対応してバッテリおよびスイッチが設けられる。したがって、ＭＣＵ１０Ａ、駆動回路１１Ａ、および電源ＩＣ１３Ａのための電源系統と、ＭＣＵ１０Ｂ、駆動回路１１Ｂおよび電源ＩＣ１３Ｂのための電源系統とが独立している。
【００９９】
モータ駆動装置１００Ａは、モータ駆動装置１００の構成に加えて端子Ｔ５，Ｔ６を有する。バッテリ６Ａは端子Ｔ６に接続される。スイッチ７Ａは、バッテリ６Ａと、端子Ｔ５との間に接続される。駆動回路１１Ｂが端子Ｔ６に接続され、電源ＩＣ１３Ｂが端子Ｔ５に接続される。
【０１００】
スイッチ７Ａは、スイッチ７に連動して動作する。たとえばユーザ（車両の運転者）がスイッチ７をオンすると、スイッチ７Ａが連動してオンする。これにより、バッテリ６Ａから電源ＩＣ１３Ｂに直流電圧ＶＢ２が供給される。スイッチ７のオン状態およびオフ状態と、スイッチ７Ａのオン状態およびオフ状態とは一致する。また、駆動回路１１Ｂは、バッテリ６Ａからの直流電圧ＶＢ２を三相の交流電圧に変換する。
【０１０１】
実施の形態２では、電源ＩＣから出力されるリセット信号が、自システムのＭＣＵおよび対向システムのＭＣＵに入力される。すなわち、リセット信号ＲＳＴ１，ＲＳＴ２の各々は、ＭＣＵ１０Ａ，１０Ｂの両方に入力される。対向システムからのリセット信号により、自システムは、対向システムがリセットされたことを検知する。なお、各ＭＣＵは、自システムのためのリセット信号を受ける端子と、対向システムのためのリセット信号を受ける端子とを有する。別々の端子にリセット信号が入力されることによって、対向システムのためのリセット信号によって自システムがリセットされることが防がれる。
【０１０２】
実施の形態２に係るモータ駆動装置１００Ａの基本的な動作は、実施の形態１に係るモータ駆動装置１００の動作と同じである（図４〜図１４を参照）。各ＭＣＵは、基本的には自システムの異常を検出することができる。しかしながら、ＭＣＵの暴走等の理由によって、ＭＣＵが自システムの異常を正しく検出できない可能性がある。
【０１０３】
さらに、実施の形態１に係る構成では、バッテリ６とモータ駆動装置１００との間の電源供給線が断線した場合には、モータ駆動装置１００の内部の２つのシステムの両方に電源が供給されない。すなわち１つの故障に対してモータ５の動作の継続を保証できない。
【０１０４】
実施の形態２によれば、システムごとにバッテリを設置することによって、２つのシステム間で電源系統を独立させる。これにより、一方のシステムに異常が発生しても他方のシステムによりモータ５の制御を継続できる。
【０１０５】
また、システムに異常が発生した場合、ＭＣＵをリセットするためのリセット信号が電源ＩＣから出力される。実施の形態２では、自システムは、対向システムからのリセット信号を受信することにより、対向システムに異常が発生したことを検知する。自システムのモードがスレーブモードである場合には、対向システムからのリセットの受信により、自システムのモードがマスタモードに切り換わる。これにより、モータ５の制御を継続することができる。
【０１０６】
図１６は、対向システムからのリセット信号の受信時における、自システムの制御のフローを示したフローチャートである。この処理は、たとえば一定の周期で実行される。図１６に示すように、ステップＳ８１において、ＭＣＵは、対向システムからのリセット信号を受信したかどうかを判定する。ＭＣＵが対向システムからのリセット信号を受信していない場合（ステップＳ８１においてＮＯ）、全体の処理は終了する。対向システムからのリセット信号を受信した場合（ステップＳ８１においてＹＥＳ）、ＭＣＵは、マスタ設定を行う（ステップＳ８２）。自システムが既にマスタモードに設定されている場合には、ステップＳ８２において、自システムのモードを確認して処理を終了してもよい。
【０１０７】
リセット信号を受信するケースとして、故障以外にも電源投入／切断時のシステムのリセットも存在する。システムは、マスタ／スレーブ設定処理が完了するまで、図１６に示した処理が実行されないように構成される。マスタ／スレーブ設定処理が完了した後の特定期間内に発生したリセット信号に応じて図１６に示した処理を実行するように、ＭＣＵを構成することが好ましい。
【０１０８】
リセットされたＭＣＵは図５に示す初期化処理フローを実行する。初期化処理が正常に完了した場合、ＭＣＵは、図７に示すマスタ／スレーブ設定処理を実行する。この場合、システムは異常から復帰しているので、処理はステップＳ２１，Ｓ２２に進み、スレーブ設定が実行される。異常からの復帰であるかどうかの確認は、たとえばリセットがパワーオンリセットであるか否かを確認することで判断できる。なお、異常からの復帰を確認するための方法および手段は限定されない。
【０１０９】
図１７は、モータ制御中にマスタ側のＭＣＵに異常が生じた場合における、第２の実施の形態に係るモータ駆動装置１００Ａの制御を説明するためのタイミングチャートである。図１７を参照して、モータ制御中の期間（時刻ｔ３から時刻ｔ４までの期間）中に、たとえばプログラムの暴走等によりＭＣＵ１０Ａ（第１のＭＣＵ）の動作に異常が発生する（時刻ｔ３ｃ）。電源ＩＣ１３Ａ（電源ＩＣ１）は、リセット信号ＲＳＴ１を出力する。ＭＣＵ１０Ｂ（第２のＭＣＵ）は、リセット信号ＲＳＴ１の受信により、マスタ設定を行う。これによりＭＣＵ１０Ｂの制御モードがマスタモードに設定される。
【０１１０】
時刻ｔ３ｄにおいて、ＭＣＵ１０Ａは、初期診断およびモード選択処理を実行する。時刻ｔ４ａにおいて、ＭＣＵ１０Ａの制御モードがスレーブモードに設定される。
【０１１１】
時刻ｔ５において、次の制御周期が開始される。ＭＣＵ１０Ｂ（第２のＭＣＵ）が同期トリガ信号を出力するとともに駆動回路１１Ｂをオンする。ＭＣＵ１０Ａ（第１のＭＣＵ）は同期トリガ信号を受信可能である。したがってＭＣＵ１０Ａが駆動回路１１Ａを制御可能な場合には、ＭＣＵ１０Ａは同期トリガ信号に応答して駆動回路１１Ａをオンする。この場合、同期制御を継続できる。
【０１１２】
実施の形態２によれば、一方のシステムにおいてバッテリとの間に断線が生じた場合にも、他方のシステムによりモータの制御を継続できる。あるいは、実施の形態２によれば、対向システムのＭＣＵが暴走等により機能しなくなるといった異常が発生した場合にも、そのＭＣＵの動作をリセットすることによりモータ制御を継続することができる。駆動系に異常がない場合には、ＭＣＵのリセット後に同期制御を再開することができる。
【０１１３】
＜実施の形態３＞
図１８は、実施の形態３に係るモータ駆動装置の概略的な構成を示したブロック図である。実施の形態３に係るモータ駆動装置１００Ｂは、図２に示した構成に加えて、ＭＣＵ１０Ｃ、駆動回路１１Ｃ、入力回路１２Ｃ、電源ＩＣ１３Ｃ、およびゲート回路１６Ａ，１６Ｂを備える。ゲート回路１６Ａ，１６Ｂにより、駆動回路１１Ａ、または駆動回路１１Ｂに故障が発生した場合に、その故障した駆動回路を駆動回路１１Ｃに置き換えることができるので、二重系の制御系統を維持することができる。
【０１１４】
入力回路１２Ｃは、外部センサ情報８Ａおよび外部センサ情報８Ｂの両方を受信する。入力回路１２Ｃによって受信された情報はＭＣＵ１０Ｃに送信される。
【０１１５】
第３のＭＣＵであるＭＣＵ１０Ｃは、ＭＣＵ１０Ａ，１０Ｂの各々と同じ動作を実行することができる。ＭＣＵ１０Ｃは、演算部２１Ｃと、制御部２２Ｃと、通信部２３Ｃ，２４Ｃ，２５Ｃとを備える。
【０１１６】
通信部２３Ｃは、ＭＣＵ１０Ａとの通信のためのインターフェイス回路である。通信部２５Ｃは、ＭＣＵ１０Ｂとの通信のためのインターフェイス回路である。制御部２２Ｃは制御信号ＤＲＶ３を駆動回路１１Ｃに送信して駆動回路１１Ｃを制御する。さらに制御部２２Ｃは、駆動回路１１Ｃの動作を有効および無効にするためのイネーブル信号ＥＮＢ３を駆動回路１１Ｃに出力する。
【０１１７】
駆動回路１１Ｃは、駆動回路１１Ａ，１１Ｂと同じ構成を有する三相インバータ回路であり、バッテリ６から端子Ｔ１を介して供給された直流電力を交流電力に変換する。駆動回路１１Ｃは、フィードバック電流ＦＣ３を演算部２１Ｃに供給する。
【０１１８】
ゲート回路１６Ａは、イネーブル信号ＥＮＢ１に応答して、駆動回路１１Ｃをモータ５の第１の巻線組５１に接続するか否かを切り替える。ゲート回路１６Ｂは、イネーブル信号ＥＮＢ２に応答して、駆動回路１１Ｃを、モータ５の第２の巻線組５２に接続するか否かを切り替える。詳細には、イネーブル信号ＥＮＢ１が非活性化されている場合には、ゲート回路１６Ａは、第１の巻線組５１と駆動回路１１Ｃとを接続する。一方、イネーブル信号ＥＮＢ１が活性化されている場合には、ゲート回路１６Ａは、駆動回路１１Ｃを第１の巻線組５１から切り離す。同様に、イネーブル信号ＥＮＢ２が非活性化されている場合には、ゲート回路１６Ｂは、第２の巻線組５２と駆動回路１１Ｃとを接続する。一方、イネーブル信号ＥＮＢ２が活性化されている場合には、ゲート回路１６Ｂは、駆動回路１１Ｃを第２の巻線組５２から切り離す。この実施の形態では、駆動回路１１Ａ，１１Ｂがともに正常であれば、イネーブル信号ＥＮＢ１およびイネーブル信号ＥＮＢ２がともに活性化される。駆動回路１１Ａ，１１Ｂのうちの一方が異常であり、かつ他方が正常である場合には、イネーブル信号ＥＮＢ１およびイネーブル信号ＥＮＢ２のうち、異常が生じた駆動回路に送られるイネーブル信号が非活性化され、正常な駆動回路に送られるイネーブル信号が活性化される。
【０１１９】
システムの起動時（初期化処理の実行時）には、ＭＣＵ１０Ｃの制御モードがスレーブモードに設定される。ＭＣＵ１０Ａ，ＭＣＵ１０Ｂの一方の制御モードがマスタモードに設定され、ＭＣＵ１０Ａ，ＭＣＵ１０Ｂの他方の制御モードがスレーブモードに設定される。ＭＣＵ１０Ａ，ＭＣＵ１０Ｂにより、同期制御が実行される。ＭＣＵ１０Ａ，ＭＣＵ１０Ｂによる同期制御については、実施の形態１および実施の形態２と同じであるので以後の説明を繰り返さない。
【０１２０】
マスタ側のシステムに異常が発生した場合に、ＭＣＵ１０Ｃは、制御モードをマスタモードに切り替える。この場合、ＭＣＵ１０Ｃは、入力回路１２Ｃからの情報に基づいて制御量を演算して、その制御量に従って駆動回路１１Ｃを制御する。これにより、モータ５の同期制御を継続することができる。
【０１２１】
ＭＣＵ１０Ａがマスタモードで動作しているときにＭＣＵ１０Ａに異常が発生した場合、ＭＣＵ１０Ａはゲート回路１６Ａを制御できない可能性がある。そのような場合に備えて、ゲート回路１６Ａは、ゲート回路１６Ａの有効および無効を切り替えるためのプルアップ回路（またはプルダウン回路）を備えていてもよい。同様に、ゲート回路１６Ｂも、ゲート回路１６Ｂの有効および無効を切り替えるためのプルアップ回路（またはプルダウン回路）を備えていてもよい。
【０１２２】
プルアップ回路（またはプルダウン回路）は、高電位ノードと低電位ノードとの間に直列に接続された抵抗およびスイッチ（たとえばＮ型トランジスタ）を備える。たとえばプルアップ回路を用いることにより、ＭＣＵの制御部からの制御信号がロー（Low)のときにゲート回路を有効にすることができる。プルダウン回路を用いることにより、ＭＣＵの制御部からの制御信号がハイ（High)のときにゲート回路を有効にすることができる。
【０１２３】
図１９は、マスタ側の駆動系に異常が発生した場合における、第３の実施の形態に係るモータ駆動装置１００Ｂの制御を説明するためのタイミングチャートである。最初にＭＣＵ１０Ａの制御モードがマスタモードに設定され、ＭＣＵ１０ＢおよびＭＣＵ１０Ｃの制御モードがスレーブモードに設定されたとする。ＭＣＵ１０Ｃ側の駆動回路１１Ｃは、時刻ｔ３において、同期トリガ信号によりオンする。しかしながらゲート回路１６Ａが駆動回路１１Ａをモータ５の第１の巻線組５１に接続しているため、駆動回路１１Ｃからは駆動電流は出力されない。
【０１２４】
時刻ｔ３ａにおいて、マスタ側の駆動回路（駆動回路１１Ａ）に故障が発生する。この場合、ＭＣＵ１０Ａは、図８に示すステップＳ５２、図９に示すステップＳ５３，Ｓ５４，Ｓ５７の処理を実行する。これによりモータ制御が禁止される。さらに、ＭＣＵ１０Ａは、システム異常をＭＣＵ１０Ｃに通知して、制御モードを示す値を初期値に戻す。
【０１２５】
ＭＣＵ１０Ｃは、ＭＣＵ１０Ａからの通知に応じて、図１１に示すステップＳ７１，Ｓ７２，Ｓ７４，Ｓ７５の処理を実行する。これによりＭＣＵ１０Ｃの制御モードが、スレーブモードからマスタモードへと切り替わる。駆動回路１１Ａは時刻ｔ４においてオフされる。ＭＣＵ１０Ａは、イネーブル信号ＥＮＢ１を非活性化する。これにより、ゲート回路１６Ａは駆動回路１１Ｃをモータ５の第１の巻線組５１に接続する。
【０１２６】
時刻ｔ５において、ＭＣＵ１０Ｃは、駆動回路１１Ｃをオンするとともに、同期トリガ信号を出力する。ＭＣＵ１０Ｂは、同期トリガ信号に応答して駆動回路１１Ｂをオンする。ＭＣＵ１０ＣおよびＭＣＵ１０Ｂによる同期制御が継続される。
【０１２７】
図２０は、マスタ側の通信系に異常が発生した場合における、第３の実施の形態に係るモータ駆動装置１００Ｂの制御を説明するためのタイミングチャートである。図２０を参照して、時刻ｔ２ａにおいて、マスタ側の通信系（ＭＣＵ１０Ａ）に故障が発生する。ＭＣＵ１０Ｃは、制御周期の開始時刻である時刻ｔ３からタイムアウト期間として設定された期間の間、同期トリガ信号を待つ。しかしながら時刻ｔ３ｂにおいてタイムアウトが発生する。ＭＣＵ１０Ｃは、図８に示すステップＳ４７，Ｓ４８，Ｓ５０，Ｓ５１の処理を実行して、制御モードをスレーブモードからマスタモードへと切り替える。さらに、ＭＣＵ１０Ｃは、ＭＣＵ１０Ａに通信系の異常を通知する。ＭＣＵ１０Ａは、図１１に示すステップＳ７１，Ｓ７２，Ｓ７３の処理を実行する。これによりＭＣＵ１０Ａの制御モードはマスタモードからスレーブモードへと切り替わる。
【０１２８】
時刻ｔ３ｂにおいて、ＭＣＵ１０Ｂは駆動回路１１Ｂをオンしてモータ制御を開始する。ＭＣＵ１０Ｃは、駆動回路１１Ｃをオンする。しかしゲート回路１６Ａは、駆動回路１１Ａをモータ５の第１の巻線組５１に接続している。したがって駆動回路１１Ｃから第１の巻線組５１に駆動電流は供給されない。
【０１２９】
時刻ｔ４において、駆動回路１１Ｂおよび駆動回路１１Ｃがオフされる。時刻ｔ５において、ＭＣＵ１０Ｃは、駆動回路１１Ｃをオンするとともに、同期トリガを出力する。しかし、ゲート回路１６Ａが駆動回路１１Ａをモータ５の第１の巻線組５１に接続したままである。すなわち、ＭＣＵ１０Ａがスレーブモードで駆動回路１１Ａを制御し続ける。ＭＣＵ１０Ａによる駆動回路１１Ａの制御は正常であるので、ＭＣＵ１０Ａを有効に活用することができる。
【０１３０】
ＭＣＵ１０Ｃは、マスタモードに設定されているので、同期トリガ信号を与えるトリガ回路として機能する。ＭＣＵ１０Ｃからの同期トリガに応答してＭＣＵ１０Ａ，１０Ｂは、駆動回路１１Ａ，１１Ｂをそれぞれ制御する。これにより同期制御を継続することができる。
【０１３１】
実施の形態３によれば、実施の形態１および実施の形態２に比べて、モータ制御のシステムの冗長性をより高めることができる。
【０１３２】
なお、上記の実施の形態において、６相モータを例示した。しかし、モータの構成はこのように限定されない。少なくとも３以上の相巻線およびステータを含むブラシレスモータに対して本実施の形態を適用できる。つまり相の数が３以上であればよい。本実施の形態を適用可能な最小の構成を有するモータは３相モータである。なお、モータの制御が３相制御である場合、モータの相巻線の数は３の倍数となる。モータの制御が４相制御である場合、モータの相巻線の数は４の倍数である。
【０１３３】
マスタおよびスレーブの設定に用いられる乱数値は電源ＩＣで生成されると限定されない。たとえば乱数値の取得および乱数値同士の比較は以下の方法によっても取得可能である。
【０１３４】
（１）初期化処理時にＭＣＵがＡ／Ｄ変換を実施して、変換後のデジタル値どうしを比較してもよい。
【０１３５】
（２）ＭＣＵは、初期状態のメモリにおいて、任意のアドレスへアクセスして、そのアドレスのメモリセルに記憶された値どうしを比較してもよい。
【０１３６】
（３）ＭＣＵは、タイマカウント開始後、一度通信して完了した際のタイマ値どうしを比較してもよい。
【０１３７】
（４）ＭＣＵの型番が異なる場合、型番値どうしを比較してもよい。
また、図７に示したマスタ／スレーブ設定処理では乱数値が大きいほうのＭＣＵがマスタに設定されるが、乱数値の低いほうのＭＣＵをマスタに設定してもよい。
【０１３８】
乱数値によるマスタおよびスレーブの決定方法は一例である。マスタおよびスレーブを一意に決めることができる方法であれば本実施の形態に適用し得る。したがって、マスタおよびスレーブの決定方法は乱数値を用いる方法に限定されない。
【０１３９】
上述の実施の形態の各々に係るモータ駆動装置は、さらに、モータ駆動装置に異常が発生したことを運転者に通知するように構成されることができる。運転者への通知のための手段および方法は特に限定されない。たとえば、モータ駆動装置に異常が発生した際に、警告ランプを点灯させることにより運転者に異常の発生を通知してもよい。
【０１４０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【０１４１】
１  電動パワーステアリングシステム、２  ステアリングホイール、３  ステアリングシャフト、４  減速ギア、５  モータ、５Ａ  ロータ、５Ｂ  ステータ、６，６Ａ  バッテリ、７，７Ａ  スイッチ、８  外部センサ、８Ａ，８Ｂ  外部センサ情報、１１Ａ，１１Ｂ，１１Ｃ  駆動回路、１２Ａ，１２Ｂ，１２Ｃ  入力回路、１３Ａ，１３Ｂ  電源ＩＣ、１５  通信回路、１６Ａ，１６Ｂ  ゲート回路、２０  ＥＣＵ、２１Ａ，２１Ｂ，２１Ｃ  演算部、２２Ａ，２２Ｂ，２２Ｃ  制御部、２３Ａ，２３Ｂ，２３Ｃ，２４Ａ，２４Ｂ，２４Ｃ，２５Ｃ  通信部、５１  第１の巻線組、５１Ｕ，５１Ｖ，５１Ｗ，５２Ｕ，５２Ｖ，５２Ｗ  巻線、５２  第２の巻線組、１００，１００Ａ，１００Ｂ  モータ駆動装置、１１０  初期化処理状態、１１１  初期状態、１１２  第１のモード判定状態、１１３  第２のモード判定状態、１２０  システム動作中状態、１２１  マスタモード状態、１２２  スレーブモード状態、１０００  車両制御システム、ＤＲＶ１，ＤＲＶ２，ＤＲＶ３  制御信号、ＥＮＢ１，ＥＮＢ２，ＥＮＢ３  イネーブル信号、ＦＣ１，ＦＣ２，ＦＣ３  フィードバック電流、ＲＳＴ１，ＲＳＴ２  リセット信号、Ｓ１〜Ｓ５，Ｓ１１〜Ｓ１７，Ｓ２１〜Ｓ３４，Ｓ４１〜Ｓ５８，Ｓ６１〜Ｓ６４，Ｓ７１〜Ｓ７５，Ｓ８１，Ｓ８２  ステップ、Ｔ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５，Ｔ６，Ｔ１３  端子、Ｔ１１，Ｔ１２  端子群、ＶＢ１，ＶＢ２  直流電圧、ｔ１，ｔ２，ｔ２ａ，ｔ３ａ，ｔ３，ｔ３ｃ，ｔ３ｄ，ｔ３ｂ，ｔ４，ｔ４ａ，ｔ５  時刻。
【図１】
2019193388.tif 000003
【図２】
2019193388.tif 000004
【図３】
2019193388.tif 000005
【図４】
2019193388.tif 000006
【図５】
2019193388.tif 000007
【図６】
2019193388.tif 000008
【図７】
2019193388.tif 000009
【図８】
2019193388.tif 000010
【図９】
2019193388.tif 000011
【図１０】
2019193388.tif 000012
【図１１】
2019193388.tif 000013
【図１２】
2019193388.tif 000014
【図１３】
2019193388.tif 000015
【図１４】
2019193388.tif 000016
【図１５】
2019193388.tif 000017
【図１６】
2019193388.tif 000018
【図１７】
2019193388.tif 000019
【図１８】
2019193388.tif 000020
【図１９】
2019193388.tif 000021
【図２０】
2019193388.tif 000022