(57)【特許請求の範囲】
【請求項１】
ロータの回転に同期して複数のパルス信号を出力するエンコーダが設けられたモータを回転駆動するものであり、パルス信号のカウント値に基づいて前記ロータの回転位置を検出し、検出結果に基づいて前記モータの通電相を切り換えることで前記ロータを目標位置まで回転駆動制御するモータ制御装置であって、
前記エンコーダは、各パルス信号に対応した出力系を備え、前記モータを回転駆動制御するために必要な複数のパルス信号（ｍ個、ｍは２以上の自然数）と、予備のパルス信号（ｐ個、ｐは１以上の自然数）との全てのパルス信号（ｎ個、ｎはｍ＋ｐ）を所定の位相差となるように出力するものであり、
前記エンコーダが出力する全ての前記パルス信号が入力されるものであり、各パルス信号を個別にカウントするカウント部と、
前記カウント部によるカウント結果に基づいて、パルス信号毎に異常があるか否かを診断する異常診断部と、
前記異常診断部による診断結果に基づいて、正常であると診断されたパルス信号を出力する前記出力系の中から、前記モータを回転駆動制御するために必要なｍ個の前記出力系を選択するとともに、選択した当該出力系から出力されるパルス信号の位相情報を出力する選択部と、
前記選択部にて選択された前記出力系から出力されたｍ個のパルス信号を前記カウント部、前記異常診断部、及び前記選択部を介さずに直接出力する出力部と、
前記出力部から出力された前記パルス信号が入力されるｍ個のポートを備え、当該パルス信号が流れるｍ個の第１信号線を介して前記ポートが前記出力部と電気的に接続されており、ｍ個の前記ポートに入力されたｍ個のパルス信号をそれぞれカウントして、自身でカウントしたカウント値と前記選択部から出力された位相情報とに基づいて前記ロータを目標位置まで回転駆動制御するＣＰＵと、
を備えることを特徴とするモータ制御装置。
【請求項２】
請求項１に記載のモータ制御装置は、外部装置から出力された回転駆動制御の開始を示す開始信号に応じて、前記ロータの回転位置と前記モータへの通電相とを対応させる初期駆動を行った後に、前記カウント値と前記位相情報とに基づいて回転駆動制御するものであり、
前記カウント部は、初期駆動時に各パルス信号を個別にカウントし、
前記異常診断部は、初期駆動時にパルス信号毎に異常があるか否かを診断し、
前記選択部は、初期駆動時にｍ個の前記出力系を選択するとともに、前記位相情報を出力し、
前記出力部は、回転駆動制御時には、前記選択部にて初期駆動時に選択された前記出力系から出力されたｍ個のパルス信号を直接出力し、
前記ＣＰＵは、
初期駆動時には、自身でカウントした前記カウント値に関係なく前記モータへの通電相を順次切り換えるものであり、
回転駆動制御時には、回転駆動制御時に自身でカウントした前記カウント値と、前記選択部から初期駆動時に出力された位相情報とに基づいて回転駆動制御することを特徴とする。
【請求項３】
前記カウント部は、回転駆動制御時にも各パルス信号を個別にカウントするものであり、
前記異常診断部は、回転駆動制御時にもパルス信号毎に異常があるか否かを診断し、
前記選択部は、回転駆動制御時にもｍ個の前記出力系を選択するとともに、前記位相情報を出力し、
前記出力部は、回転駆動制御時に前記選択部にてｍ個の前記出力系が選択された場合は、当該選択部にて回転駆動制御時に選択された前記出力系から出力されたｍ個のパルス信号を直接出力し、
前記ＣＰＵは、回転駆動制御時に前記位相情報が出力された場合は、当該位相情報と、回転駆動制御時に自身でカウントした前記カウント値とに基づいて回転駆動制御することを特徴とする請求項２に記載のモータ制御装置。
【請求項４】
前記出力部は、各出力系と電気的に接続されたｎ個の第２信号線と、前記ＣＰＵに電気的に接続されたｍ個の前記第１信号線とを接続及び接続を解除するスイッチを備え、当該スイッチによって、前記選択部にて選択された前記出力系に電気的に接続された前記第２信号線と前記ＣＰＵに電気的に接続された前記第１信号線とを電気的に接続することによって、パルス信号を前記カウント部、前記異常診断部、及び前記選択部を介さずに直接出力することを特徴とする請求項１乃至３のいずれか一項に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロータの回転に同期してパルス信号を出力するエンコーダが設けられたモータを回転駆動するものであり、パルス信号のカウント値に基づいてロータの回転位置を検出し、検出結果に基づいてモータの通電相を切り換えることでロータを目標位置まで回転駆動制御するモータ制御装置に関するものである。
【背景技術】
【０００２】
従来、エンコーダが設けられたモータの一例が特許文献１に開示されている。このモータに設けられたエンコーダは、例えば磁気式のロータリエンコーダにより構成されており、モータにおけるロータの回転に同期してＡ相とＢ相のパルス信号（エンコーダ信号）をＥＣＵに出力するように構成されている。なお、Ａ相のパルス信号（Ａ相信号）とＢ相のパルス信号（Ｂ相信号）とは、所定の位相差（例えば、９０°や１２０°）が設定されている。
【０００３】
また、ＥＣＵは、エンコーダから出力されたＡ相信号とＢ相信号のパルス数をカウントする。そして、ＥＣＵは、このＡ相信号のカウント値とＢ相信号のカウント値とに基づき、モータドライバを介してモータの通電相を所定の順序で切り換えることでモータを回転駆動制御する。更に、ＥＣＵは、Ａ相信号とＢ相信号とに基づいて、エンコーダの異常の有無を監視する（すなわち、モータの故障診断を行う）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２００９−２８１４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常、Ａ相信号及びＢ相信号は、ＥＣＵ内に設けられたＣＰＵに入力される。そして、このＣＰＵがＡ相信号とＢ相信号とに基づいて演算処理を実行することで、モータの回転駆動制御を行う。また、ＣＰＵは、Ａ相信号とＢ相信号とに基づいて、エンコーダの異常の有無を監視する。すなわち、モータに設けられたエンコーダ自身又はエンコーダからＣＰＵまでの信号経路（信号線など）の故障診断を行う。
【０００６】
ところで、上述の特許文献１の段落番号００２９にも記載されているように、モータの回転駆動制御の信頼性を向上させるためには、エンコーダを多重系構成にすることが考えられる。つまり、モータの回転駆動制御に最低限必要なエンコーダの他に、予備のエンコーダを追加する構成が考えられる。このようにすることによって、一つのエンコーダが故障したり、又は、そのエンコーダからＣＰＵまでの信号線が断線などした場合、予備のエンコーダを用いてモータの回転駆動制御や故障診断を行うことができる。
【０００７】
しかしながら、このようにエンコーダを多重系構成にする場合、エンコーダ信号の総数ｎは、モータの回転駆動制御に最低限必要なエンコーダ信号数ｍに対して、予備のエンコーダが出力するエンコーダ信号の数（予備エンコーダ信号数）ｐが追加される（ｎ＝ｍ＋ｐ個、ｍ，ｐは０でない整数）。よって、エンコーダとＣＰＵとを電気的に接続するための信号線、及び、ＣＰＵにおけるエンコーダ信号が入力されるポート（信号線が接続されるポート）が、モータの回転駆動制御に最低限必要な数よりも増加する。なお、エンコーダを多重系にした場合の信号線総数及びポート総数はｎに対応し、モータの回転駆動制御に最低限必要な信号線数及びポート数はｍに対応し、予備の信号線数及びポート数はｐに対応する。
【０００８】
例えば、特許文献１の場合、モータの回転駆動制御のために最低限必要なエンコーダは、Ａ相信号とＢ相信号（例えば、Ａ相信号とＢ相信号の位相差９０°）を出力するものが一つあればよい。つまり、エンコーダとＣＰＵとを電気的に接続するための信号線は２本、ＣＰＵにおけるエンコーダ信号が入力されるポートは２個あればよい。これに対して、エンコーダを２個設けた場合（２重系にした場合）は、信号線は４本、ポートは４個に増加する。このように、エンコーダを多重系構成にする場合、信号線数及びポート数が増加して、コストが高くなるという問題がある。
【０００９】
また、エンコーダを多重系構成にする場合、ＣＰＵは、Ａ相信号とＢ相信号とを常時インプットキャプチャして、エンコーダの異常の有無を監視（モータの故障診断）すると共に、予備のエンコーダからのパルス信号（例えば、位相差が９０°のＡ１相信号とＢ１相信号）とを常時インプットキャプチャして、エンコーダの異常の有無を監視（モータの故障診断）する必要がある。このように、エンコーダを多重系構成にする場合、ＣＰＵの処理負荷が増大するという問題があった。
【００１０】
本発明は、上記問題点に鑑みなされたものであり、モータの回転駆動制御の信頼性を高めつつ、コストが高くなること及びＣＰＵの処理負荷が増大することを抑制することができるモータ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために請求項１に記載のモータ制御装置は、ロータの回転に同期して複数のパルス信号を出力するエンコーダが設けられたモータを回転駆動するものであり、パルス信号のカウント値に基づいてロータの回転位置を検出し、検出結果に基づいてモータの通電相を切り換えることでロータを目標位置まで回転駆動制御するモータ制御装置であって、
エンコーダは、各パルス信号に対応した出力系を備え、モータを回転駆動制御するために必要な複数のパルス信号（ｍ個、ｍは２以上の自然数）と、予備のパルス信号（ｐ個、ｐは１以上の自然数）との全てのパルス信号（ｎ個、ｎはｍ＋ｐ）を所定の位相差となるように出力するものであり、
エンコーダが出力する全てのパルス信号が入力されるものであり、各パルス信号を個別にカウントするカウント部と、
カウント部によるカウント結果に基づいて、パルス信号毎に異常があるか否かを診断する異常診断部と、
異常診断部による診断結果に基づいて、正常であると診断されたパルス信号を出力する出力系の中から、モータを回転駆動制御するために必要なｍ個の出力系を選択するとともに、選択した出力系から出力されるパルス信号の位相情報を出力する選択部と、
選択部にて選択された出力系から出力されたｍ個のパルス信号をカウント部、異常診断部、及び選択部を介さずに直接出力する出力部と、
出力部から出力されたパルス信号が入力されるｍ個のポートを備え、パルス信号が流れるｍ個の第１信号線を介してポートが出力部と電気的に接続されており、ｍ個のポートに入力されたｍ個のパルス信号をそれぞれカウントして、自身でカウントしたカウント値と選択部から出力された位相情報とに基づいてロータを目標位置まで回転駆動制御するＣＰＵと、
を備えることを特徴とする。
【００１２】
このようにすることによって、モータを回転駆動制御するために必要な複数のパルス信号（ｍ個）と予備のパルス信号（ｐ個）の全てのパルス信号（ｎ個）に関して異常診断を行うことができる。そして、診断した全てのパルス信号のうち、正常であると診断されたｍ個のパルス信号に基づいて回転駆動制御を行うことができる。例えば、モータを回転駆動制御するために必要なパルス信号の一つが異常であった場合でも、この異常であるパルス信号の代替手段として予備のパルス信号（正常）を用いて回転駆動制御を行うことができる。つまり、モータを回転駆動制御するために必要なパルス信号と予備のパルス信号のうち、いずれかのパルス信号が異常であった場合でも、その他のパルス信号（正常）に基づいて回転駆動制御を行うことができる。よって、モータの回転駆動制御の信頼性を高めることができる。
【００１３】
また、このようにモータを回転駆動制御するために必要な複数のパルス信号と予備のパルス信号の全てのパルス信号に関して異常診断を行いつつも、ＣＰＵに入力されるパルス信号の数は、モータを回転駆動制御するために必要な数だけとすることができる。つまり、ＣＰＵにおけるパルス信号が入力されるポートの数、及びこのポートに接続される信号線の数は、モータを回転駆動制御するために必要なパルス信号の数（ｍ個）だけでよい。よって、信頼性を高めつつ、コストが高くなることを抑制することができる。
【００１４】
さらに、カウント部と異常診断部とで、エンコーダが出力する全てのパルス信号の異常診断を行うため、ＣＰＵは異常診断を行う必要がない。よって、信頼性を高めつつ、ＣＰＵの処理負荷が増大することを抑えることができる。
【００１５】
また、請求項２に示すように、請求項１に記載のモータ制御装置は、外部装置から出力された回転駆動制御の開始を示す開始信号に応じて、ロータの回転位置とモータへの通電相とを対応させる初期駆動を行った後に、カウント値と位相情報とに基づいて回転駆動制御するものであり、
カウント部は、初期駆動時に各パルス信号を個別にカウントし、
異常診断部は、初期駆動時にパルス信号毎に異常があるか否かを診断し、
選択部は、初期駆動時にｍ個の出力系を選択するとともに、位相情報を出力し、
出力部は、回転駆動制御時には、選択部にて初期駆動時に選択された出力系から出力されたｍ個のパルス信号を直接出力し、
ＣＰＵは、
初期駆動時には、自身でカウントしたカウント値に関係なくモータへの通電相を順次切り換えるものであり、
回転駆動制御時には、回転駆動制御時に自身でカウントしたカウント値と、選択部から初期駆動時に出力された位相情報とに基づいて回転駆動制御するようにしてもよい。
【００１６】
このように、初期駆動時に各パルス信号を個別にカウントして異常診断を行うとともに、位相情報を出力し、回転駆動制御時には、カウント値と初期駆動時に選択部から出力された位相情報とに基づいて回転駆動制御することによって、回転駆動制御時の信頼性を高めることができる。つまり、回転駆動制御時には、既に正常であると診断されたｍ個のパルス信号に基づいて回転駆動制御を行うことができるため、回転駆動制御時の信頼性を高めることができる。
【００１７】
また、請求項３に示すように、カウント部は、回転駆動制御時にも各パルス信号を個別にカウントするものであり、
異常診断部は、回転駆動制御時にもパルス信号毎に異常があるか否かを診断し、
選択部は、回転駆動制御時にもｍ個の出力系を選択するとともに、位相情報を出力し、
出力部は、回転駆動制御時に選択部にてｍ個の出力系が選択された場合は、選択部にて回転駆動制御時に選択された出力系から出力されたｍ個のパルス信号を直接出力し、
ＣＰＵは、回転駆動制御時に位相情報が出力された場合は、位相情報と、回転駆動制御時に自身でカウントしたカウント値とに基づいて回転駆動制御するようにしてもよい。
【００１８】
このようにすることによって、回転駆動制御時においてＣＰＵに出力しているパルス信号に異常が生じた場合でも、別の正常なパルス信号に基づいて回転駆動制御することができるので、信頼性をより一層高めることができる。
【００１９】
また、請求項４に示すように、出力部は、各出力系と電気的に接続されたｎ個の第２信号線と、ＣＰＵに電気的に接続されたｍ個の第１信号線とを接続及び接続を解除するスイッチを備え、このスイッチによって、選択部にて選択された出力系に電気的に接続された第２信号線とＣＰＵに電気的に接続された第１信号線とを電気的に接続することによって、パルス信号をカウント部、異常診断部、及び選択部を介さずに直接出力するにしてもよい。
【００２０】
このように、出力部は、エンコーダから出力されたパルス信号をＣＰＵに出力する際に、スイッチによる信号線同士の接続及び接続の解除を行うだけなので、ＣＰＵに出力されるパルス信号の遅延を抑制でき、高速な回転駆動制御を行うことができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態におけるモータ制御装置の概略構成を示すブロック図である。
【図２】本発明の実施の形態におけるモータ制御装置の処理動作を示すフローチャートである。
【図３】本発明の実施の形態におけるカウント部の概略構成を示すブロック図である。
【図４】本発明の実施の形態における異常診断ロジック回路の異常診断に用いられる真理値表である。
【図５】異常診断ロジック回路の異常診断に用いられる真理値表の変形例１である。
【図６】（ａ）は本発明の実施の形態におけるスルー出力回路の概略構成を示す回路図であり、（ｂ）は正常信号ｍ択ロジック回路の正常信号選択に用いられる真理値表である。
【図７】（ａ）は本発明の実施の形態における通信Ｉ／Ｆの概略構成を示す回路図であり、（ｂ）は異常診断結果における各状態と各位相情報との関係を示すグラフである。
【図８】（ａ）は変形例２における通信Ｉ／Ｆの概略構成を示す回路図であり、（ｂ）は異常診断結果における各状態と各スイッチＡ〜Ｃのオン・オフとの関係を示す表である。
【図９】変形例３における通信Ｉ／Ｆの概略構成を示す回路図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態を図に基づいて説明する。
【００２３】
本発明のモータ制御装置は、図１に示すように、カウント部３０、異常診断ロジック回路（異常診断部）４０、選択出力部５０、ＣＰＵ６０などを備えて構成されている。そして、モータ制御装置は、ロータの回転に同期してパルス信号（以下、エンコーダ信号とも称する）を出力するエンコーダが設けられたモータ１０を回転駆動するものであり、パルス信号のカウント値に基づいてロータの回転位置を検出し、検出結果に基づいてモータ１０の通電相を切り換えることでロータを目標位置まで回転駆動制御（位置制御）するものである。なお、このモータ制御装置は、例えば電子制御による自動変速機のシフトレンジを切り換えるシフトバイワイヤシステムの駆動部などに適用することができる。
【００２４】
また、本実施形態においては、モータ１０を回転駆動制御するために必要な複数のパルス信号の数はｍ個（ｍは２以上の自然数）とする。また、予備のパルス信号はｐ個（ｐは１以上の自然数）とする。そして、後ほど説明するエンコーダ信号部２０（出力端子２１）から出力される全てのパルス信号はｎ個（ｎはｍ＋ｐ）とする。なお、具体的には、主に、ｎ＝３、ｍ＝２、ｐ＝１を一例として採用して説明する。つまり、図１に示すモータ制御装置は、ｎ個のエンコーダ信号１〜エンコーダ信号ｎから、選択されたｍ個の正常なエンコーダ信号１〜エンコーダ信号ｍをＣＰＵ６０へ出力する構成図である。より詳細には、ｎ個のエンコーダ信号１〜エンコーダ信号ｎを異常診断し、この異常診断の結果に基づいてｍ個の正常なエンコーダ信号１〜エンコーダ信号を選択し、選択したｍ個の正常なエンコーダ信号１〜エンコーダ信号をＣＰＵ６０へスルー出力する構成図である。これによって、ｎ個のエンコーダ信号１〜エンコーダ信号ｎを異常診断しつつも、ＣＰＵ６０へのエンコーダ信号の入力は、回転駆動制御に必要な最小限のｍ個に限定することが出来る。なお、この点に関しては、後ほど詳しく説明する。
【００２５】
制御対象のモータ１０は、例えばＳＲ（switched reluctance、スイッチド・リラクタンス）モータを採用することができる。よって、本実施形態においては、モータ１０としてＳＲモータを採用して説明する（以下、ＳＲモータ１０とも称する）。このＳＲモータ１０は、可変磁気抵抗モータとも呼ばれ、永久磁石やブラシが不要であり、構造が簡単で安価なモータである。
【００２６】
ＳＲモータ１０は、ステータとロータが共に突極構造（突極部）を有している。ＳＲモータ１０のロータは、径方向外側に突出する突極部（例えば８個）を周方向へ等間隔に複数有している。つまり、ロータの外周部には突極部が等間隔に形成されている。
【００２７】
一方、ＳＲモータ１０のステータは、径方向内側に突出する突極部（例えば１２個）を周方向へ等間隔に複数有している。つまり、円筒状のステータの内周部には突極部が等間隔に形成されている。そして、ロータの回転に伴い、ロータの各突極部がステータの各突極部と微小ギャップを介して順番に対向するようになっている。また、ステータの突極部には巻線が順番に巻回されている。例えば、ステータの１２個の突極部には、Ｕ相、Ｖ相、Ｗ相の合計６個の巻線と、Ｕ’相、Ｖ’相、Ｗ’相の合計６個の巻線が順番に巻回されて、２系統のモータ励磁部を構成するように結線してもよい。なお、ステータとロータの突極構造の数は適宜変更しても良いことは言うまでもない。
【００２８】
また、ＳＲモータ１０には、ロータの回転位置を検出するためのエンコーダが設けられている。このエンコーダは、例えば磁気式のロータリエンコーダにより構成されている。その具体的な構成は、Ｎ極とＳ極が円周方向に交互に等ピッチで着磁された円環状のロータリマグネットがロータの側面に同軸状に固定され、このロータリマグネットに対向する位置に、ホールＩＣ等の磁気検出素子がｎ個配置された構成となっている。
【００２９】
さらに、エンコーダは、各磁気検出素子によるエンコーダ信号（パルス信号）を出力するものであり、複数（例えばｎ個）のスイッチング素子やｎ個の出力端子２１（以下、単に端子２１とも称する）などを備えたエンコーダ信号部２０を含むものである。なお、本発明における出力系とは、このエンコーダ信号部２０におけるエンコーダ信号を出力する出力端子２１、又は磁気検出素子、又は磁気検出素子から出力端子２１までの信号経路のいずれかを示すものである。つまり、エンコーダは、各パルス信号に対応した出力系を備える。
【００３０】
また、各出力端子２１からは、一つのパルス信号が出力される。よって、エンコーダ（エンコーダ信号部２０）は、ｎ個のパルス信号を出力する。つまり、エンコーダ（エンコーダ信号部２０）は、モータ１０を回転駆動制御するために必要なｍ個のパルス信号とｐ個の予備のパルス信号とからなるｎ個のパルス信号を出力する。このように、本実施形態におけるモータ制御装置においては、エンコーダ信号部２０から出力されるエンコーダ信号は、モータ１０を回転駆動制御するために必要なエンコーダ信号の数よりも多く設定されている。よって、後ほど詳しく説明するが、本実施形態におけるモータ制御装置においては、モータ１０を回転駆動制御するために必要なエンコーダ信号の数（ｍ個）よりも多いエンコーダ信号（ｎ個）の異常診断を行うものである。すなわち、エンコーダは多重系に構成されている。
【００３１】
また、エンコーダ（エンコーダ信号部２０）は、ｎ個を所定の位相差となるように出力する。例えば、ｎ＝３、ｍ＝２、ｐ＝１の場合、エンコーダ（エンコーダ信号部２０）は、３個のエンコーダ信号（例えば、エンコーダ信号１〜エンコーダ信号３）を、それぞれ１２０°の位相差となるように出力する。つまり、エンコーダ信号１は、エンコーダ信号２と１２０°の位相差である。そして、エンコーダ信号３は、エンコーダ信号１及びエンコーダ信号２のそれぞれと１２０°の位相差である。
【００３２】
なお、本実施形態においては、位相差１２０°のエンコーダ信号を採用するが（ｎ＝３、ｍ＝２、ｐ＝１）、本発明はこれに限定されるものではない。例えば、それぞれのエンコーダ信号の位相差を９０°を採用することもできる。この場合、ｎ＝４、ｍ＝２、ｐ＝１となる。そして、エンコーダ（エンコーダ信号部２０）は、４個のエンコーダ信号（例えば、エンコーダ信号１〜エンコーダ信号４）を、それぞれ９０°の位相差となるように出力する。
【００３３】
また、エンコーダ信号部２０の各端子２１は、パルス信号が流れる信号線を介してカウンタ部３０における各カウンタ回路３１と電気的に接続されている。つまり、エンコーダ信号部２０とカウンタ部３０とは、パルス信号が流れるｎ個の信号線を介して電気的に接続されている。さらに、エンコーダ信号部２０の各端子２１は、パルス信号が流れる信号線（Ｌ１〜Ｌｎ）を介してスルー出力回路部５２における複数のスイッチＳＷと電気的に接続されている。つまり、エンコーダ信号部２０とスルー出力回路部５２とは、パルス信号が流れるｎ個の信号線Ｌ１〜Ｌｎを介して電気的に接続されている。
【００３４】
なお、このＳＲモータ１０（エンコーダを含む）の構造及びに基本的な動作に関しては、本出願人による特開２００４−１２９４５１号公報などに開示されているものを採用することができるため、その詳しい説明を省略する。また、モータ制御装置をシフトバイワイヤシステムの駆動部などに適用した場合の構成及び基本的な動作に関しても、特開２００４−１２９４５１号公報などに開示されているものを採用することができるため、その詳しい説明を省略する。
【００３５】
次に、図３に基づいて、カウンタ部３０に関して説明する。図３に示すように、カウンタ部３０は、ｎ個のカウンタ回路３１（第１カウンタ回路３１〜第ｎカウンタ回路３１）を備えて構成されている。上述のように、各カウンタ回路３１は、信号線を介してエンコーダ信号部２０の各出力端子２１と電気的に接続されている。そして、第１カウンタ回路３１〜第ｎカウンタ回路３１は、それぞれ異なる端子２１から出力されたパルス信号（エンコーダ信号１〜エンコーダ信号ｎ）のパルス数をカウントして、そのカウント値（カウント計数値）Ｌ_１〜Ｌ_ｎを出力する。換言すると、カウンタ部３０は、エンコーダが出力する全てのパルス信号が入力されるものであり、各パルス信号を個別にカウントする。つまり、カウンタ部３０は、ｎ個のエンコーダ信号１〜エンコーダ信号ｎの各々を計数するカウンタ回路である。
【００３６】
つまり、第ｎカウンタ回路３１はエンコーダ信号ｎ（パルス信号）のパルス数をカウントしてカウント値Ｌ_ｎを出力する。具体的には、例えば、第１カウンタ回路３１はエンコーダ信号１（パルス信号）のパルス数をカウントしてカウント値Ｌ_１を出力し、第２カウンタ回路３１はエンコーダ信号２（パルス信号）のパルス数をカウントしてカウント値Ｌ_２を出力する。このカウント値Ｌ_１〜Ｌ_ｎは、それぞれ個別に異常診断ロジック回路４０に出力される。なお、本実施形態においては、各カウンタ回路３１は、複数のＴ−ＦＦ（Toggle Flip-Flop）を直列に接続したものを採用する。なお、各カウンタ回路３１におけるＴ−ＦＦの数は、カウントする数に応じて予め設定されるものである。また、通常、カウンタ部３０（各カウンタ回路３１）では、エンコーダが故障（断線、ショート）した場合は、パルスがカウントされない。
【００３７】
次に、図４に基づいて、異常診断ロジック回路（異常診断部）４０に関して説明する。図４は、異常診断ロジック回路の異常診断に用いられる真理値表の一例である。なお、ここでは、ｎ＝３、ｍ＝２（すなわち、ｐ＝１）である場合を採用する。
【００３８】
異常診断ロジック回路４０は、各カウンタ回路３１から出力されたカウント値Ｌ_１〜Ｌ_ｎ（ここでは、Ｌ_１〜Ｌ_３）を元に、それらの相互比較により異常相（異常なエンコーダ信号）を判定する。つまり、各エンコーダ信号１〜ｎ（ここではエンコーダ信号１〜３）のカウント値を元に、それらの相互比較により異常相（異常なエンコーダ信号）を判定する。換言すると、カウント部３０によるカウント結果に基づいて、パルス信号毎に異常があるか否かを診断する。具体的には、各カウント値の差分の絶対値と所定値（Ｋ１）との関係によって診断する。そして、異常の状態を示す状態１〜状態５を診断する。すなわち、異常エンコーダ信号としてエンコーダ信号１〜ｎのいずれか一つ、異常無し、複数異常のｎ＋２個のうちのひとつに診断し（各異常エンコーダ信号判定値を決定し）する。
【００３９】
例えば、エンコーダ信号１〜３の全てが異常なしの場合、｜Ｌ_１-Ｌ_２｜、｜Ｌ_１-Ｌ_３｜、｜Ｌ_２-Ｌ_３｜が全てＫ１以下であり、ΣＬ（カウント値Ｌ_１〜Ｌ_ｎ（ここでは、Ｌ_１〜Ｌ_３）の総和）が所定値（Ｋ０）より大きくなる。この場合は、状態１とし、異常エンコーダ信号判定値は異常なしとする。よって、正常エンコーダ信号として、エンコーダ信号１、２を採用する。なお、エンコーダ信号１、２は、デフォルト（default）値である。また、エンコーダ信号１が異常の場合、｜Ｌ_１-Ｌ_２｜と｜Ｌ_１-Ｌ_３｜がＫ１より大きく、｜Ｌ_２-Ｌ_３｜がＫ１以下であり、ΣＬがＫ０より大きくなる。この場合、状態２とし、異常エンコーダ信号判定値はエンコーダ信号１とする。よって、正常エンコーダ信号として、エンコーダ信号２、３を採用する。また、エンコーダ信号２が異常の場合、｜Ｌ_１-Ｌ_２｜と｜Ｌ_２-Ｌ_３｜がＫ１より大きく、｜Ｌ_１-Ｌ_３｜がＫ１以下であり、ΣＬがＫ０より大きくなる。この場合、状態３とし、異常エンコーダ信号判定値はエンコーダ信号２とする。よって、正常エンコーダ信号として、エンコーダ信号１、３を採用する。また、エンコーダ信号３が異常の場合、｜Ｌ_１-Ｌ_３｜と｜Ｌ_２-Ｌ_３｜がＫ１より大きく、｜Ｌ_１-Ｌ_２｜がＫ１以下であり、ΣＬがＫ０より大きくなる。この場合、状態４とし、異常エンコーダ信号判定値はエンコーダ信号３とする。よって、正常エンコーダ信号として、エンコーダ信号１、２を採用する。また、エンコーダ信号１〜３のうち複数が異常の場合は、状態５とし、異常エンコーダ信号判定値はエンコーダ複数故障とする。よって、正常エンコーダ信号として、採用なしとする。
【００４０】
なお、ここでの演算数は、｛ｎ！/（ｎ-１）！｝+１であり、ｎが大きくなると演算数が増大するが、ｎ数が少ない場合にはより高精度な異常検出が可能になる。
【００４１】
また、異常診断は、この真理値表に基づくものに限定されない。例えば、図５に示す、異常診断ロジック回路（異常診断部）４０の変形例（変形例１）を採用してもよい。変形例１においては、上述の場合と同様に、異常診断ロジック回路４０は、各カウンタ回路３１から出力されたカウント値Ｌ_１〜Ｌ_ｎ（ここでは、Ｌ_１〜Ｌ_３）を元に、それらの相互比較により異常相（異常なエンコーダ信号）を判定する。つまり、各エンコーダ信号１〜ｎ（ここではエンコーダ信号１〜３）のカウント値を元に、それらの相互比較により異常相（異常なエンコーダ信号）を判定する。しかしながら、変形例１においては、異常診断ロジック回路４０は、ΣＬを用いて、各々のエンコーダ信号のカウント値との差を求める。
【００４２】
例えば、エンコーダ信号１〜３の全てが異常なしの場合、｜ΣＬ-Ｌ_１｜、｜ΣＬ-Ｌ_２｜、｜ΣＬ-Ｌ_３｜が全て所定値（Ｋ２）以下であり、ΣＬが所定値（Ｋ０）より大きくなる。この場合は、状態１とし、異常エンコーダ信号判定値は異常なしとする。よって、正常エンコーダ信号として、エンコーダ信号１、２を採用する。なお、エンコーダ信号１、２は、デフォルト（default）値である。また、エンコーダ信号１が異常の場合、｜ΣＬ-Ｌ_１｜がＫ２より大きく、｜ΣＬ-Ｌ_２｜と｜ΣＬ-Ｌ_３｜がＫ２以下であり、ΣＬがＫ０より大きくなる。この場合、状態２とし、異常エンコーダ信号判定値はエンコーダ信号１とする。よって、正常エンコーダ信号として、エンコーダ信号２、３を採用する。また、エンコーダ信号２が異常の場合、｜ΣＬ-Ｌ_２｜がＫ２より大きく、｜ΣＬ-Ｌ_１｜と｜ΣＬ-Ｌ_３｜がＫ２以下であり、ΣＬがＫ０より大きくなる。この場合、状態３とし、異常エンコーダ信号判定値はエンコーダ信号２とする。よって、正常エンコーダ信号として、エンコーダ信号１、３を採用する。また、エンコーダ信号３が異常の場合、｜ΣＬ-Ｌ_３｜がＫ２より大きく、｜ΣＬ-Ｌ_１｜と｜ΣＬ-Ｌ_２｜がＫ２以下であり、ΣＬがＫ０より大きくなる。この場合、状態４とし、異常エンコーダ信号判定値はエンコーダ信号３とする。よって、正常エンコーダ信号として、エンコーダ信号１、２を採用する。また、エンコーダ信号１〜３のうち複数が異常の場合は、状態５とし、異常エンコーダ信号判定値はエンコーダ複数故障とする。よって、正常エンコーダ信号として、採用なしとする。
【００４３】
このようにしても、カウント部３０によるカウント結果に基づいて、パルス信号毎に異常があるか否かを診断することができる。また、このようにすることによって、ｎ数が多い場合には、上述の場合よりも演算数を低減でき、異常判定を高速化できるメリットがある。
【００４４】
次に、図１，図６に基づいて、選択出力部５０に関して説明する。選択出力部５０は、図１に示すように、異常エンコーダ信号判定値を元に、正常かつモータ１０の回転駆動制御に必要なエンコーダ信号をｍ個選択する正常信号ｍ択ロジック回路５１（選択部、以下、単に選択部５１とも称する）と、このｍ個のエンコーダ信号をＣＰＵ６０へスルー出力するスルー出力回路５２（出力部、以下、単に出力部５２とも称する）とを備えて構成されている。図６（ａ）は本発明の実施の形態におけるスルー出力回路（出力部）５２の概略構成を示す回路図であり、（ｂ）は正常信号ｍ択ロジック回路（選択部）５１の正常信号選択に用いられる真理値表である。なお、ここでは、ｎ＝３、ｍ＝２（すなわち、ｐ＝１）である場合を採用する。
【００４５】
出力部５２は、選択部５１にて選択された出力系から出力されたｍ個（ここでは２個）のパルス信号をカウント部３０、異常診断ロジック回路４０、及び選択部５１を介さずに直接出力する。この出力部５２は、図１に示すように、ｎ個（ここでは３個）のエンコーダ信号１〜エンコーダ信号ｎが入力されると共に、ｍ個のエンコーダ信号１〜エンコーダ信号ｍを出力する。よって、出力部５２は、エンコーダ信号部２０の各端子２１から出力された各パルス信号（すなわち、エンコーダ信号１〜エンコーダ信号ｎ）が入力されるｎ個の入力端子ＩＮ１〜ＩＮｎ（ここでは入力端子ＩＮ１〜ＩＮ３）と、ｍ個のエンコーダ信号１〜エンコーダ信号ｍを出力するｍ個の出力端子ＯＵＴ１〜ＯＵＴｍ（ここでは出力端子ＯＵＴ１〜ＯＵＴ２）とを備える。よって、この出力部５２における各入力端子ＩＮ１〜ＩＮｎは、信号線（第２信号線）Ｌ１〜Ｌｎを介してエンコーダ信号部２０における各端子２１と電気的に接続されている。一方、出力部５２における各出力端子ＯＵＴ１〜ＯＵＴｍは、信号線（第１信号線）Ｓ１〜Ｓｍを介してＣＰＵ６０における各キャプチャ用ポート（すなわちインプットキャプチャポート）６２１〜６２ｍと電気的に接続されている。
【００４６】
さらに、出力部５２は、エンコーダ信号部２０の各端子２１と電気的に接続されたｎ個の信号線Ｌ１〜Ｌｎと、ＣＰＵ６０の各キャプチャ用ポート６２に電気的に接続されたｍ個の信号線Ｓ１〜Ｓｍとを接続及び接続を解除するスイッチＳＷ（ここでは、スイッチＳＷ１〜ＳＷ４）を備えている。つまり、出力部５２は、このスイッチＳＷをオン（ＯＮ、接続）及びオフ（ＯＦＦ、接続の解除）することによって、信号線Ｌ１〜Ｌｎと信号線Ｓ１〜Ｓｍとの接続の組み合わせを変更する。なお、後ほど説明するが、この各スイッチＳＷのオン及びオフは、図６（ｂ）に示す選択部５１の真理値表によって決定される。
【００４７】
そして、出力部５２は、この各スイッチＳＷによって、選択部５１にて選択された出力系に電気的に接続された信号線（Ｌ１〜Ｌｎのうちのｍ個）とＣＰＵ６０に電気的に接続された信号線Ｓ１〜Ｓｍとを電気的に接続する。このようにして、選択部５１にて選択された出力系から出力されたｍ個のパルス信号をカウント部３０、異常診断ロジック回路４０、及び選択部５１を介さずにＣＰＵ６０に直接出力する。つまり、出力部５２は、正常なエンコーダ信号をスルー出力する。なお、このスイッチＳＷ１〜ＳＷ４として、ＭＯＳＦＥＴやバイポーラトランジスタなどを採用することができる。
【００４８】
このように、出力部５２は、エンコーダから出力されたパルス信号をＣＰＵ６０に出力する際に、スイッチＳＷによる信号線同士の接続及び接続の解除を行うだけなので、ＣＰＵ６０に出力されるパルス信号の遅延を抑制できる。よって、モータ制御装置は、高速な回転駆動制御を行うことができる。
【００４９】
選択部５１は、異常診断ロジック回路４０による診断結果に基づいて、正常であると診断されたパルス信号を出力する出力系の中から、モータ１０を回転駆動制御するために必要なｍ個（ここでは２個）の出力系を選択するとともに、選択した出力系から出力されるパルス信号の位相情報を出力する。
【００５０】
選択部５１における正常信号選択ロジックは、異常診断ロジック回路４０の診断結果（選定された異常エンコーダ信号判定値）と、図６（ｂ）に示す真理値表を用いて行われる。例えば、選択部５１は、異常診断ロジック回路４０での異常診断の結果（異常エンコーダ信号判定値）が「エンコーダ信号１」であった場合、スイッチＳＷ２とスイッチＳＷ４をオン、スイッチＳＷ１とスイッチＳＷ３をオフにする。これによって、出力部５２の出力端子ＯＵＴ１、ＯＵＴ２から出力すべき正常なエンコーダ信号として、エンコーダ信号２、３が選択される。また、選択部５１は、異常診断ロジック回路４０での異常診断の結果（異常エンコーダ信号判定値）が「エンコーダ信号２」であった場合、スイッチＳＷ１とスイッチＳＷ４をオン、スイッチＳＷ２とスイッチＳＷ３をオフにする。これによって、出力部５２の出力端子ＯＵＴ１、ＯＵＴ２から出力すべき正常なエンコーダ信号として、エンコーダ信号１、３が選択される。また、選択部５１は、異常診断ロジック回路４０での異常診断の結果（異常エンコーダ信号判定値）が「エンコーダ信号３」であった場合、スイッチＳＷ１とスイッチＳＷ３をオン、スイッチＳＷ２とスイッチＳＷ４をオフにする。これによって、出力部５２の出力端子ＯＵＴ１、ＯＵＴ２から出力すべき正常なエンコーダ信号として、エンコーダ信号１、２が選択される。また、選択部５１は、異常診断ロジック回路４０での異常診断の結果（異常エンコーダ信号判定値）が「異常なし」であった場合、スイッチＳＷ１とスイッチＳＷ３をオン、スイッチＳＷ２とスイッチＳＷ４をオフにする。これによって、出力部５２の出力端子ＯＵＴ１、ＯＵＴ２から出力すべき正常なエンコーダ信号として、エンコーダ信号１、２が選択される。なお、選択部５１は、異常診断ロジック回路４０での異常診断の結果（異常エンコーダ信号判定値）が「エンコーダ複数異常」であった場合、全てのスイッチＳＷ１〜ＳＷ４をオフにする。これによって、出力部５２の出力端子ＯＵＴ１、ＯＵＴ２からエンコーダ信号を出力することを一時的に中止する。
【００５１】
このようにして、選択出力部５０は、異常エンコーダ信号判定値に従い、図６の真理値表のようなロジックにて複数個のスイッチＳＷ（ここではスイッチＳＷ１〜ＳＷ４）を切り替え、出力部５２にて正常なｍ個のエンコーダ信号を選択的に出力する。
【００５２】
なお、位相情報とは、選択された出力系から出力されるｍ個のパルス信号（エンコーダ信号）同士、すなわち、ＣＰＵ６０に入力されたｍ個のパルス信号（エンコーダ信号）同士の位相関係（位相差）を示す情報である。この位相情報は、ＣＰＵ６０にてモータ１０の回転方向を判定する際に用いられるものである。
【００５３】
例えば、ここでは、位相情報として、状態１〜状態５の各状態を示す情報を採用する。この場合、ＣＰＵ６０は、例えばメモリなどに、状態１〜状態５の各状態と状態１〜状態５の各状態のときに各キャプチャ用ポート６２１〜６２ｍに入力されるエンコーダ信号とが関連付けて記憶されているとともに、各出力系から出力されるエンコーダ信号同士の位相差が記憶されている。これによって、ＣＰＵ６０は、位相情報（状態１〜状態５のいずれか）を取得すると、自身に入力されるエンコーダ信号の位相差を把握することができる。
【００５４】
なお、状態５は、エンコーダ複数故障を示すものである。よって、ここでは、位相情報には、エンコーダ複数故障を示す情報を含む例を採用している。しかしながら、この状態５が示すようなエンコーダ複数故障を示す情報は含まなくてもよい。
【００５５】
選択部５１から出力された位相情報は、通信Ｉ／Ｆ７０及びＣＰＵ６０の汎用ポート６１を介して、ＣＰＵ６０の通信Ｉ／Ｆ６４に入力される。の通信Ｉ／Ｆ７０と通信Ｉ／Ｆ６４は、図７（ａ）に示すようにシリアル通信Ｉ／Ｆを採用することができる。つまり、通信Ｉ／Ｆ７０としてＤ／Ａ変換器７０１を採用し、通信Ｉ／Ｆ６４としてＡ／Ｄ変換器６４１を採用してもよい。このＤ／Ａ変換器７０１とＡ／Ｄ変換器６４１とは、１本の通信ラインで（すなわち、信号線及び一つの汎用ポート６１を介して）電気的に接続される。つまり、通信Ｉ／Ｆ７０としてＤ／Ａ変換器７０１は、選択部５１からの位相情報（選択された状態）をアナログ電圧値でＣＰＵ６０に伝達する。ＣＰＵ６０は、図７（ｂ）に示すようなアナログ信号である位相情報と状態（デジタル信号）との関係に基づいて、上述の状態１〜５を判定する。このようにすることによって、選択部５１とＣＰＵ６０との信号線を最小限に抑えることができる。よって、ＣＰＵ６０における位相情報が入力される汎用ポート６１を最小限に抑えることができる。
【００５６】
なお、通信Ｉ／Ｆ７０と通信Ｉ／Ｆ６４は、これに限定されるものではない。例えば、その他の変形例（変形例２）として、図８（ａ）に示すようなデジタル通信Ｉ／Ｆを採用してもよい。つまり、通信Ｉ／Ｆ７０として、複数のスイッチＳＷ（ここではスイッチＳＷ−Ａ〜スイッチＳＷ−Ｃ）を含むスイッチング回路７０２を採用してもよい。この場合ＣＰＵ６０側の通信Ｉ／Ｆ６４は必要ない。
【００５７】
このスイッチ回路７０２の各スイッチＳＷ−Ａ〜スイッチＳＷ−Ｃは、ＣＰＵ６０の対応する汎用ポート６１に電気的に接続されている。そして、通信Ｉ／Ｆ７０としてのスイッチング回路７０２は、図８（ｂ）に示すようなマップに基づいて、スイッチング回路７０２に含まれるスイッチＳＷ−Ａ〜スイッチＳＷ−Ｃのオン（ＯＮ）とオフ（ＯＦＦ）を切り換える。一方、ＣＰＵ６０には、各汎用ポート６１にオン又はオフを示す信号が入力される。そして、ＣＰＵ６０は、図８（ｂ）に示すようなマップに基づいて、各汎用ポート６１のオン又はオフによって、上述の状態１〜５を判定する。例えば、ＣＰＵ６０は、全てのスイッチＳＷ−Ａ〜スイッチＳＷ−Ｃに対応する汎用ポート６１でオフの場合は状態１と判定する。また、スイッチＳＷ−Ａに対応する汎用ポート６１でオンであり、且つ、スイッチＳＷ−Ｂ，スイッチＳＷ−Ｃに対応する汎用ポート６１でオンの場合は状態２と判定する。以下、同様にして状態３〜状態５に関しても判定する。
【００５８】
また、例えば、その他の変形例（変形例３）として、図９に示すようなシリアル通信Ｉ／Ｆを採用してもよい。つまり、通信Ｉ／Ｆ７０としてシリアル通信Ｉ／Ｆ７０３を採用し、通信Ｉ／Ｆ６４としてシリアル通信Ｉ／Ｆ６４３を採用してもよい。この場合は、シリアル通信Ｉ／Ｆ７０３とシリアル通信Ｉ／Ｆ６４３とは、汎用ポート６１を介して電気的に接続されている。
【００５９】
ＣＰＵ６０は、図１に示すように、出力部５２から出力されたエンコーダ信号（パルス信号）が入力されるｍ個のキャプチャ用ポート６２１〜６２ｍを備え、エンコーダ信号（パルス信号）が流れるｍ個の信号線Ｓ１〜Ｓｍを介してキャプチャ用ポート６２１〜６２ｍが出力部５２と電気的に接続されている。このように、ＣＰＵ６０に設けられたキャプチャ用ポート６２１〜６２ｍの数（ｍ個）は、エンコーダ信号部が出力するエンコーダ信号の数（ｎ個）よりも少ない。また、このキャプチャ用ポート６２１〜６２ｍは、単に信号のオン又はオフが入力される汎用ポート６１とは異なり、パルス信号が入力されるものであり、ＣＰＵ６０内でパルス数をカウントするためのポートである。
【００６０】
また、ＣＰＵ６０は、上述のように、位相情報が入力される汎用ポート６１を備えている。なお、上述の図７〜９に示したように、ＣＰＵ６０は、選択部５１が出力する位相情報を受信する際には、汎用ポート６１を使うことができる。つまり、ＣＰＵ６０は、エンコーダ信号を受信するにはキャプチャ用ポート６２１〜６２ｍを用いる必要があるが、位相情報を受信する場合はキャプチャ用ポート６２１〜６２ｍを用いる必要がない。
【００６１】
また、ＣＰＵ６０は、モータ１０の各相（Ｕ，Ｖ，Ｗ）と電気的に接続され、各相を通電するための（すなわち、駆動信号を出力するための）モータ用ポート６３を備える。さらに、ＣＰＵ６０は、機能ブロックとして、入力回路部６５とモータ駆動演算部６６などを備える。
【００６２】
そして、ＣＰＵ６０（入力回路部６５）は、ｍ個のキャプチャ用ポート６２１〜６２ｍに入力されたｍ個のエンコーダ信号（パルス信号）をそれぞれカウントする。そして、ＣＰＵ６０（モータ駆動演算部６６）は、自身でカウントしたカウント値と選択部５１から出力された位相情報とに基づいて駆動信号を演算する。さらに、ＣＰＵ６０（モータ駆動演算部６６）は、この駆動信号をモータのロータを目標位置まで回転駆動制御する。なお、この回転駆動制御に関しては、周知技術であるため詳しい説明は省略する。
【００６３】
ここで、図２に基づいて、モータ制御装置の処理動作に関して説明する。この図２に示すフローチャートは、モータ制御装置の外部に設けられた外部装置から出力された回転駆動制御の開始を示す開始信号に応じてスタートするものである。例えば、車両に設けられたイグニッションスイッチがオン（すなわち、開始信号）になるとスタートする。また、モータ制御装置は、イグニッションスイッチがオンになると、ロータの回転位置とモータへの通電相とを対応させる初期駆動を行った後に、カウント値と位相情報とに基づいてロータを目標位置まで回転駆動する回転駆動制御（通常制御）を行う。なお、図２に示すステップＳ１０，Ｓ１１は、ロータの回転位置とモータへの通電相とを対応させる処理と並行して行われる処理である。換言すると、図２に示すステップＳ１０，Ｓ１１は、初期駆動が開始されると行われる処理である。また、ロータの回転位置とモータへの通電相とを対応させる処理に関しては、本出願人による特開２００４−１２９４５１号公報などに開示されているものを採用することができるため、その詳しい説明を省略する。
【００６４】
まず、ステップＳ１０では、エンコーダ信号部２０から出力されたｎ個のエンコーダ信号の異常診断を行う。なお、ＣＰＵ６０は、初期駆動時には、自身でカウントしたカウント値に関係なくモータ１０への通電相を順次切り換えるものである。モータ制御装置は、このようにしてモータ１０が回転駆動されたことによってエンコーダ信号部２０から出力されたｎ個のエンコーダ信号の異常診断を行う。
【００６５】
このとき、カウント部３０は、ｎ個のエンコーダ信号１〜エンコーダ信号ｎ（例えばｎが３個のときはエンコーダ信号１〜エンコーダ信号３）を個別にカウントする。そして、異常診断ロジック回路４０は、上述のように図４又は図５に示すような真理値表とカウント部３０がカウントしたカウント値とに基づいて、エンコーダ信号毎に異常があるか否かを診断する。
【００６６】
次に、ステップＳ１１では、正常なエンコーダ信号の位相情報（すなわち、選択部５１で選択したエンコーダ信号の位相情報）をＣＰＵ６０へ出力する。このとき、選択部５１は、異常診断ロジック回路４０で正常と診断されたエンコーダ信号を出力する出力系の中から、モータ１０の回転駆動制御に必要なｍ個（例えば２個）の出力系を選択するとともに、この選択した出力系から出力されるｍ個のエンコーダ信号における位相情報をＣＰＵ６０へ出力する。
【００６７】
その後、モータ駆動制御部は通常制御を行う。つまり、モータ駆動制御部は、初期駆動が終了すると通常制御（回転駆動制御）を行う。なお、ＣＰＵ６０は、回転駆動制御時には、回転駆動制御時に自身でカウントしたカウント値と、選択部５１から初期駆動時に出力された位相情報とに基づいてロータを目標位置まで回転駆動する。つまり、ＣＰＵ６０は、初期駆動時に既にｍ個のエンコーダ信号の位相情報が送信されているため、回転駆動制御時には、ｍ個のエンコーダ信号の位相情報に準じた通電タイミングを設定してモータを制御することができる。
【００６８】
このように、初期駆動時に各エンコーダ信号を個別にカウントして異常診断を行うとともに、位相情報を出力し、回転駆動制御時には、ＣＰＵ６０がカウントしたカウント値と初期駆動時に選択部５１から出力された位相情報とに基づいて回転駆動制御することによって、回転駆動制御時の信頼性を高めることができる。つまり、回転駆動制御時には、既に正常であると診断されたｍ個のエンコーダ信号に基づいて回転駆動制御を行うことができるため、回転駆動制御時の信頼性を高めることができる。
【００６９】
なお、図２に示すステップＳ１２〜Ｓ１４は、ロータを目標位置まで回転駆動する制御と並行して行われる処理である。換言すると、図２に示すステップＳ１２〜Ｓ１４は、通常制御が開始されると行われる処理である。
【００７０】
まず、ステップＳ１２では、異常診断ロジック回路４０によって正常と診断されたエンコーダ信号のうち、ｍ個の正常なエンコーダ信号をＣＰＵ６０へ直接出力する。このとき、出力部５２は、選択部５１にて初期駆動時に選択された出力系から出力されたｍ個のエンコーダ信号を、カウント部３０、異常診断ロジック回路４０、及び選択部５１を介さずにＣＰＵ６０に直接出力する。
【００７１】
また、ステップＳ１３では、上述のステップＳ１０と同様に、エンコーダ信号部２０から出力されたｎ個のエンコーダ信号の異常診断を行う。つまり、異常診断ロジック回路４０は、回転駆動制御時にもエンコーダ信号毎に異常があるか否かを診断する。
【００７２】
そして、ステップＳ１４では、異常診断ロジック回路４０がエンコーダ信号に異常有りと判定した場合はステップＳ１１へ戻り、エンコーダ信号に異常なしと判定した場合はステップＳ１２へ戻る。
【００７３】
このように、テップＳ１４からステップＳ１１に戻った場合、選択部５１は、回転駆動制御時にもｍ個の出力系を選択するとともに、位相情報を出力する。このとき、選択部５１は、ステップＳ１３において異常診断ロジック回路４０で正常と診断されたエンコーダ信号を出力する出力系の中から、モータ１０の回転駆動制御に必要なｍ個（例えば２個）の出力系を選択しなおすとともに、この選択した出力系から出力されるｍ個のエンコーダ信号における位相情報をＣＰＵ６０へ出力する。
【００７４】
つまり、出力部５２は、回転駆動制御時に選択部５１にてｍ個の出力系が選択された場合は、選択部５１にて回転駆動制御時に選択された出力系から出力されたｍ個のエンコーダ信号をＣＰＵ６０に直接出力する。このとき、出力部５２は、選択部５１にて初期駆動時に選択された出力系から出力されたｍ個のエンコーダ信号を、カウント部３０、異常診断ロジック回路４０、及び選択部５１を介さずにＣＰＵ６０に直接出力する。その後、再度ステップＳ１２に戻る。
【００７５】
このようにすることによって、回転駆動制御時においてＣＰＵ６０に出力しているエンコーダ信号に異常が生じた場合でも、別の正常なエンコーダ信号に基づいて回転駆動制御することができるので、信頼性をより一層高めることができる。
【００７６】
なお、ＣＰＵ６０は、回転駆動制御時に位相情報が出力された場合は、この位相情報と、回転駆動制御時に自身でカウントしたカウント値とに基づいてロータを目標位置まで回転駆動する。
【００７７】
このようにすることによって、モータ１０を回転駆動制御するために必要な複数のパルス信号（ｍ個）と予備のエンコーダ信号（ｐ個）の全てのエンコーダ信号（ｎ個）に関して異常診断を行うことができる。つまり、エンコーダを多重系にすることができる。そして、診断した全てのエンコーダ信号のうち、正常であると診断されたｍ個のエンコーダ信号に基づいて回転駆動制御を行うことができる。例えば、モータを回転駆動制御するために必要なエンコーダ信号の一つが異常であった場合でも、この異常であるエンコーダ信号の代替手段として予備のエンコーダ信号（正常）を用いて回転駆動制御を行うことができる。つまり、モータ１０を回転駆動制御するために必要なエンコーダ信号と予備のエンコーダ信号のうち、いずれかのエンコーダ信号が異常であった場合でも、その他のエンコーダ信号（正常）に基づいて回転駆動制御を行うことができる。よって、モータ１０の回転駆動制御の信頼性を高めることができる。
【００７８】
特に、このモータ制御装置をシフトバイワイヤシステムの駆動部などに適用した場合には、モータ１０の通常制御中にエンコーダ故障が起きモータ１０が回転しなくなった場合でも、正常な通常制御へ復帰させることができるので、信頼性だけでなくモータ１０の応答性が良いという商品性向上にもつながる。
【００７９】
また、このようにモータ１０を回転駆動制御するために必要な複数のエンコーダ信号と予備のエンコーダ信号の全てのエンコーダ信号に関して異常診断を行いつつも、ＣＰＵ６０に入力されるエンコーダ信号の数は、モータ１０を回転駆動制御するために必要な数（ｍ個）だけとすることができる。つまり、ＣＰＵ６０におけるエンコーダ信号が入力されるキャプチャ用ポート６２１〜６２ｍの数、及びこのキャプチャ用ポート６２１〜６２ｍに接続される信号線Ｓ１〜Ｓｍの数は、モータ１０を回転駆動制御するために必要（最小限必要）なパルス信号の数（ｍ個）だけでよい。よって、信頼性を高めつつ、コストが高くなることを抑制することができる。
【００８０】
また、カウント部３０と異常診断ロジック回路４０とで、エンコーダ信号部２０が出力する全てのエンコーダ信号（ｎ個のエンコーダ信号１〜エンコーダ信号ｎ）の異常診断を行うため、ＣＰＵ６０は異常診断を行う必要がない。よって、信頼性を高めつつ、ＣＰＵ６０の処理負荷が増大することを抑えることができる。
【００８１】
さらに、高応答性のモータの回転駆動制御を実現するためには、そもそもエンコーダ入力信号の遅延は極力あってはならない。これに対して、本実施形態においては、エンコーダ信号をスルー出力する構成（出力部５２）を備えるため、モータ１０の高速制御の観点でも優れている。
【００８２】
また、本実施形態においては、エンコーダ単品の故障だけでなく、エンコーダ信号のコネクタやハーネスの地絡、断線、天絡故障時にも有効であるため、システム全体の信頼性を高めることができる。
【００８３】
なお、本実施形態においては、初期駆動時及び回転駆動制御時の両方において、エンコーダ信号の異常診断を行う例を採用しているが、本発明はこれに限定されるものではない。初期駆動時及び回転駆動制御時のいずれか一方だけでも本発明の目的は達成できるものである。
【００８４】
以上、本発明の好ましい実施形態について説明したが、本発明は上述した実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。
【符号の説明】
【００８５】
１０  モータ、２０  エンコーダ信号部、３０  カウント部、３１  第１〜第ｎカウンタ回路、４０  異常診断ロジック回路（異常診断部）、５０  選択出力部、５１  正常信号ｍ択ロジック回路（選択部）、５２  スルー出力回路（出力部）、６０  ＣＰＵ、６１  汎用ポート、６２１〜９２ｍ  キャプチャ用ポート、６３  モータ用ポート、６４  通信Ｉ／Ｆ、６５  入力回路部、６６  モータ駆動演算部、７０  通信Ｉ／Ｆ
【図１】
0005659958.tif 000002
【図２】
0005659958.tif 000003
【図３】
0005659958.tif 000004
【図４】
0005659958.tif 000005
【図５】
0005659958.tif 000006
【図６】
0005659958.tif 000007
【図７】
0005659958.tif 000008
【図８】
0005659958.tif 000009
【図９】
0005659958.tif 000010