(57)【要約】【課題】相数が異なるステッピングモータに対して同様に用いることが可能なモータ駆動装置を提供する。【解決手段】本発明のモータ駆動装置(10)が備えるＦＰＧＡ(40)は、出力端子(11)に対応して設けられるアドレスカウンタ(61a〜61e)と、「ｉ×ｓｉｎθ」で表される電流基準値のデータが０°≦θ＜３６０°の範囲で格納されているＲＯＭ(72)と、ＲＯＭ(72)からアドレスに対応する電流基準値を出力端子(11)ごとに格納する電流基準値レジスタ(73a〜73e)と、三角波発生部(41)と、電流基準値、電流検出値及び三角波を用いて出力端子(11)ごとのＰＷＭ制御信号を出力する複数のＰＷＭ処理部(91a〜91e)とを有し、各出力端子(11)は、ＰＷＭ制御信号により、正弦波の位相差に相当する比率で電流値が異なる電流を出力する。【選択図】図１
2019088064.tif 000002
【特許請求の範囲】
【請求項１】
複数のコイル(1a〜1e,2a,2b,2c,3a,3b)を備えたステッピングモータ(1,2,3) を駆動させるモータ駆動装置(10)であって、
前記ステッピングモータ(1,2,3) の前記コイル(1a〜1e,2a,2b,2c,3a,3b)に電流を出力する複数の出力端子(11)と、
前記出力端子(11)ごとに２つずつ配されるスイッチング素子(21)、及び前記スイッチング素子(21)を駆動するゲートドライバ(22)を備える出力段(20)と、
外部から入力される外部指令パルスに従って前記出力段(20)に制御信号を出力するＦＰＧＡ(40)と、
前記出力端子(11)ごとに配され、各出力端子(11)の電流を検出して電流検出値を前記ＦＰＧＡ(40)に出力する複数の電流検出部(30)とを有し、
前記ＦＰＧＡ(40)は、各出力端子(11)に対応して設けられるとともにアドレスを管理する複数のアドレスカウンタ(61a〜61e)と、電流基準値のデータが格納されているＲＯＭ(72)と、前記ＲＯＭ(72)から各アドレスカウンタ(61a〜61e)の前記アドレスに対応する前記電流基準値を単位周期ごとに読み出して前記出力端子(11)ごとに格納する複数の電流基準値レジスタ(73a〜73e)と、前記単位周期ごとに三角波を生成する三角波発生部(41)と、前記電流基準値レジスタ(73a〜73e)に格納された前記電流基準値と前記電流検出部(30)で検出された前記電流検出値とから前記単位周期ごとに演算される誤差及び前記三角波を用いて前記出力端子(11)ごとのＰＷＭ制御信号を前記出力段(20)にそれぞれ出力する複数のＰＷＭ処理部(91a〜91e)とを有し、
各アドレスカウンタ(61a〜61e)は、前記アドレスカウンタ(61a〜61e)間に前記出力端子(11)の個数に応じたギャップを設けて、前記出力端子(11)ごとにぞれぞれのアドレスを管理し、
前記電流基準値のデータは、単位電流値を「ｉ」として、「ｉ×ｓｉｎθ」で表され、
前記ＲＯＭ(72)に、前記θが０°≦θ＜３６０°の範囲に相当する前記電流基準値のデータが格納され、
各出力端子(11)は、前記ＰＷＭ制御信号による前記出力段(20)の制御により、正弦波における前記ギャップに対応した位相差に相当する比率で電流値が異なる前記電流をそれぞれ出力してなる、
ことを特徴とするモータ駆動装置。
【請求項２】
前記ＰＷＭ処理部(91a〜91e)は、前記単位周期ごとに前記誤差を演算するとともに、移動平均処理を用いて当該単位周期の２点平均誤差と、１つ前の単位周期の２点平均誤差との差分を演算し、当該単位周期の前記誤差と前記差分との和を前記三角波と比較することにより前記ＰＷＭ制御信号を生成する請求項１記載のモータ駆動装置。
【請求項３】
前記ＦＰＧＡ(40)における前記アドレスカウンタ(61a〜61e)、前記電流基準値レジスタ(73a〜73e)、及び前記ＰＷＭ処理部(91a〜91e)は、前記出力端子(11)と同じ個数で設けられてなる請求項１又は２記載のモータ駆動装置。
【請求項４】
少なくとも５つの前記出力端子(11a〜11e)を有してなる請求項１〜３のいずれかに記載のモータ駆動装置。
【請求項５】
駆動させる前記ステッピングモータ(1,2,3) の種類を、前記コイル(1a〜1e,2a,2b,2c,3a,3b)の数に応じて選択する相数セレクトスイッチを有してなる請求項１〜４のいずれかに記載のモータ駆動装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコイルを備えたステッピングモータを駆動させるモータ駆動装置に関し、特に、相数（コイル数）の異なるステッピングモータを駆動させることが可能なモータ駆動装置に関する。
【背景技術】
【０００２】
ステッピングモータは、幅広い分野で使われており、例えばプリンタや複写機などのＯＡ機器、工作機械や組み立て機械のような産業用機械装置、様々な精密検査装置、光関連装置、医用分析装置、学術研究用の精密測定装置などに用いられている。特に、ステッピングモータは、簡単な回路構成で正確な位置決めが可能であるため、高精度な制御が求められる精密機械装置や測定装置などに多く用いられている。
【０００３】
ステッピングモータは、モータ電流が流れる複数の相（励磁相）を有しており、２つの相を有するものを２相ステッピングモータと言い、５つの相を有するものを５相ステッピングモータと言う。現在では、２相、３相、及び５相のステッピングモータが実用化されている。
【０００４】
例えば装置の種類によって、２相ステッピングモータしか使用していない装置もあれば、５相ステッピングモータしか使用していない装置もある。また、装置によっては２相ステッピングモータと５相ステッピングモータとを混在させているものもあり、装置の軸の用途によって２相と５相を使い分けていることもある。
【０００５】
通常、ステッピングモータを回転駆動する場合、ステッピングモータ用のコントローラからモータ駆動装置（一般にドライバと言う）に対して指令パルスを入力し、ドライバは、その入力された指令パルスに従って、ステッピングモータにおける複数のコイルにモータ電流を順番に流して励磁相を切り替えることにより、ステッピングモータのロータ（モータ回転子）を回転させる。この場合、指令パルスの入力速度（周波数）を制御することにより、ステッピングモータの回転速度を変化させることができる。
【０００６】
従来のステッピングモータに用いられるドライバは、電流を流すコイルを切り換えるために、相数の異なる２相ステッピングモータ、３相ステッピングモータ、及び５相ステッピングモータに対して、相数別にそれぞれ専用に開発され、また、２相用、３相用、及び５相用として別々に製造販売されている。
【０００７】
例えば、特開２０１１−１５５８１０号公報（特許文献１）には、２相ステッピングモータに用いられるドライバのマイクロステップ駆動方法に関する発明が記載されている。また、特開２００４−２６６９７４号公報（特許文献２）及び特開２００８−６１４３９号公報（特許文献３）には、３相ステッピングモータ及び５相ステッピングモータのマイクロステップ駆動に関する発明がそれぞれ記載されている。特に、特許文献２の３相ステッピングモータをドライバでステップ駆動する場合や、特許文献３の５相ステッピングモータをドライバでステップ駆動する場合には、各ステップ位置でそのステップ位置に対応したトルクベクトルが得られるようにステッピングモータのコイルを励磁する励磁パターンを用いてモータの駆動制御をしている。
【０００８】
ここで、励磁パターンとは、励磁状態にある励磁相と、各励磁相における励磁電流方向との組合せを示すデータであり、ステッピングモータのモータ回転軸を電気角で一周（３６０°）回転させる分の複数種類の励磁パターンが、ドライバに内蔵されたメモリに格納されている。このような励磁パターンに従ってステッピングモータのコイルを順番に励磁することによって、ステッピングモータを円滑にステップ駆動させることができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１１−１５５８１０号公報
【特許文献２】特開２００４−２６６９７４号公報
【特許文献３】特開２００８−６１４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述のように、従来では２相ステッピングモータ、３相ステッピングモータ、及び５相ステッピングモータに対して、それぞれの専用のドライバを開発して製造することが常識となっている。しかし、ステッピングモータの相数ごとに専用のドライバが必要であると、ドライバ開発費の増大を招くため、ドライバの価格を高める要因の一つとなっていた。また、ドライバを製造するためには、部材調達、製造、検査、管理といったそれぞれの工程を、相数の異なる専用のドライバごとにそれぞれ行わなければならないため、大きな負担となっていた。
【００１１】
更に、ステッピングモータを使用するユーザー側においても、２相、３相、及び５相の各ステッピングモータに対して、それぞれ専用のドライバを選択して別々に準備することが必要となる。この場合、コストの増大を招くだけでなく、それぞれのドライバの特性、相性、形状等によってステッピングモータの選択範囲が狭められることや、装置設計が制限されることもあった。
【００１２】
また、仕様変更や設計変更が生じて、装置に既に設置されているステッピングモータを新しいものに取り換える場合、ステッピングモータと一緒にドライバも変更する必要があることや、電源の設計や配線の設計なども見直す必要があることもある。このため、多くのステッピングモータを同時に交換する場合、作業が煩雑になるとともに多額の費用を要し、また、ドライバの変更に伴うリスクも大きかった。
【００１３】
その上、稼働している装置には定期的なメンテナンスや不具合発生時のメンテナンスが必要となるが、相数が異なるステッピングモータが設置されていると、メンテナンスのための部品管理やメンテナンス作業の負担を大幅に増大させるという問題もあった。
【００１４】
本発明は上記従来の課題に鑑みてなされたものであって、その目的は、２相ステッピングモータや５相ステッピングモータ等の相数が異なるステッピングモータに対して同様に用いることが可能なモータ駆動装置（ドライバ）を提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明により提供されるモータ駆動装置は、複数のコイルを備えたステッピングモータを駆動させるモータ駆動装置であって、前記ステッピングモータの前記コイルに電流を出力する複数の出力端子と、前記出力端子ごとに２つずつ配されるスイッチング素子、及び前記スイッチング素子を駆動するゲートドライバを備える出力段と、外部から入力される外部指令パルスに従って前記出力段に制御信号を出力するＦＰＧＡと、前記出力端子ごとに配され、各出力端子の電流を検出して電流検出値を前記ＦＰＧＡに出力する複数の電流検出部とを有し、前記ＦＰＧＡは、各出力端子に対応して設けられるとともにアドレスを管理する複数のアドレスカウンタと、電流基準値のデータが格納されているＲＯＭと、前記ＲＯＭから各アドレスカウンタの前記アドレスに対応する前記電流基準値を単位周期ごとに読み出して前記出力端子ごとに格納する複数の電流基準値レジスタと、前記単位周期ごとに三角波を生成する三角波発生部と、前記電流基準値レジスタに格納された前記電流基準値と前記電流検出部で検出された前記電流検出値とから前記単位周期ごとに演算される誤差及び前記三角波を用いて前記出力端子ごとのＰＷＭ制御信号を前記出力段にそれぞれ出力する複数のＰＷＭ処理部とを有し、各アドレスカウンタは、前記アドレスカウンタ間に前記出力端子の個数に応じたギャップを設けて、前記出力端子ごとにぞれぞれのアドレスを管理し、前記電流基準値のデータは、単位電流値を「ｉ」として、「ｉ×ｓｉｎθ」で表され、前記ＲＯＭに、前記θが０°≦θ＜３６０°の範囲に相当する前記電流基準値のデータが格納され、各出力端子は、前記ＰＷＭ制御信号による前記出力段の制御により、正弦波における前記ギャップに対応した位相差に相当する比率で電流値が異なる前記電流をそれぞれ出力してなることを最も主要な特徴とするものである。
【００１６】
このような本発明に係るモータ駆動装置において、前記ＰＷＭ処理部は、前記単位周期ごとに前記誤差を演算するとともに、移動平均処理を用いて当該単位周期の２点平均誤差と、１つ前の単位周期の２点平均誤差との差分を演算し、当該単位周期の前記誤差と前記差分との和を前記三角波と比較することにより前記ＰＷＭ制御信号を生成することが好ましい。
【００１７】
また本発明に係るモータ駆動装置において、前記ＦＰＧＡにおける前記アドレスカウンタ、前記電流基準値レジスタ、及び前記ＰＷＭ処理部は、前記出力端子と同じ個数で設けられていることが好ましい。
【００１８】
更に、本発明のモータ駆動装置は、少なくとも５つの前記出力端子を有することが好ましい。
更にまた、本発明のモータ駆動装置は、駆動させる前記ステッピングモータの種類を、前記コイルの数に応じて選択する相数セレクトスイッチを有することが好ましい。
【発明の効果】
【００１９】
本発明に係るステッピングモータ用のモータ駆動装置は、ステッピングモータに電流を出力する複数の出力端子と、出力段と、外部から入力される外部指令パルスに従って出力段に制御信号を出力するＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）と、出力端子ごとに配される複数の電流検出部とを有する。
【００２０】
また、ＦＰＧＡは、各出力端子に対応して設けられる複数のアドレスカウンタと、電流基準値のデータが格納されているＲＯＭと、ＲＯＭから各アドレスカウンタの対応する電流基準値を単位周期ごとに読み出して格納する複数の電流基準値レジスタと、単位周期ごとに三角波を生成する三角波発生部と、電流基準値レジスタに格納された電流基準値と電流検出部で検出された電流検出値とを用いて出力端子ごとのＰＷＭ制御信号を出力する複数のＰＷＭ処理部とを有する。この場合、上述の単位周期は、例えばＦＰＧＡに設けられるサイクルカウンタで管理されている。
【００２１】
また本発明のモータ駆動装置において、ＦＰＧＡに設けられる各アドレスカウンタは、複数のアドレスカウンタ間に出力端子の個数に応じたギャップを設けて、出力端子ごとにぞれぞれのアドレス（基数とも言う）を管理する。また、ＲＯＭに記憶される電流基準値のデータは、単位電流値を「ｉ」として、「ｉ×ｓｉｎθ」で表されるものであり、ＦＰＧＡのＲＯＭには、θが０°≦θ＜３６０°の範囲に相当する電流基準値のデータ（言い換えると、電気角一周分に相当する電流基準値のデータ）が格納されている。このＲＯＭから、各電流基準値レジスタは、対応するそれぞれのアドレスカウンタのアドレスに対応した電流基準値を単位周期ごとに読み出して格納する。
【００２２】
そして、ＦＰＧＡのＰＷＭ処理部が、電流基準値レジスタの電流基準値、電流検出部で検出された電流検出値、及び三角波に基づいて出力端子ごとのＰＷＭ制御信号を、出力端子ごとに独立した処理で個別に生成し、更に、その生成した各出力端子のＰＷＭ制御信号を、単位周期のサイクルで出力段に対して同時に出力する。また、出力段では、ＰＷＭ制御信号に従って、出力端子ごとに２つずつ配されるスイッチング素子のＯＮ／ＯＦＦを切り換える。この場合、ＰＷＭ制御信号に基づくタイミングで一方のスイッチング素子をＯＮにし、且つ、他方のスイッチング素子をＯＦＦにする。
【００２３】
上述のような本発明のモータ駆動装置では、ＦＰＧＡに複数のアドレスカウンタ、複数の電流基準値レジスタ、及び複数のＰＷＭ処理部が設けられており、マイコン等と異なり、ＦＰＧＡ内で複数の処理を並列的に行うことができる。また、本発明のモータ駆動装置では、ＦＰＧＡに出力端子に対応する複数のアドレスカウンタが設けられているとともに、複数のアドレスカウンタ間でステッピングモータの相数（例えば２相、３相、５相）に対応するギャップ（ずれ）を意図的に設けて、各アドレスカウンタでそれぞれのアドレスを管理している。
【００２４】
これによって、出力端子ごとに設けられる各ＰＷＭ処理部からは、相互にステッピングモータの相数（言い換えるとアドレスカウンタのギャップ）に対応する正弦波の位相差が設けられた個別のＰＷＭ制御信号を出力段にそれぞれ同時に出力し、出力段ではそのＰＷＭ制御信号に従って、出力端子ごとにスイッチング素子のＯＮ時間（ＯＮ幅）とＯＦＦ時間（ＯＦＦ幅）が制御される。その結果、モータ駆動装置の各出力端子においては、スイッチング素子のＯＮ／ＯＦＦに従って、電流値が正弦波の前記位相差に相当する比率で互いに異なる電流をそれぞれ流すことができ、それによって、ステッピングモータでは、各出力端子に流れる電流に従って、電気角位置に対応するトルクベクトルが単位周期毎に得られるように、対応するコイルを適切なタイミングで励磁することができる。
【００２５】
すなわち、本発明のモータ駆動装置（以下、ドライバと言う）では、例えば前述の特許文献２及び特許文献３等の従来のドライバのような「励磁パターン」を用いてモータの駆動制御を行うのではなく、「正弦波の位相差」を利用してモータの駆動制御を行う。これにより、例えばドライバに５相ステッピングモータが接続される場合には、各出力端子から、５つの相に対応した正弦波の位相差がもたらす比率の電流をそれぞれ出力でき、また、３相ステッピングモータ又は２相ステッピングモータが接続される場合には、各出力端子から、それぞれ３つの相又は２つの相に対応した比率（正弦波の位相差がもたらす比率）の電流をそれぞれ出力できる。このため、本発明では、１つのドライバを、相数が異なるステッピングモータに対して同様に用いることができる。
【００２６】
このようにステッピングモータが２相でも、３相でも、５相でもステップ駆動させることが可能なドライバであれば、１つのドライバが適用できるステッピングモータの範囲（種類）を大幅に拡大できる。すなわち、ドライバの種類を１つに統一した上で、ステッピングモータを自由に選択することができる。
【００２７】
これにより、ドライバに要する費用が抑えられるとともに、用途に応じてより最適なステッピングモータを選択することが可能となる。更に具体的に説明すると、本発明のドライバでは、ステッピングモータの相数が異なってもステッピングモータの駆動方法は実質的に同じであるため、例えば相数の違いによるステッピングモータの機械的な特性の違いは生じるものの、ドライバの駆動に起因する特性の違いは生じない。その結果、ドライバの駆動がもたらす特性差を考慮することなく、ステッピングモータの選択を、モータ形状、トルク、コスト等によって単純明快に行うことができ、またそれによって、装置設計の自由度を格段に拡げることができる。
【００２８】
更に、ドライバが１つに統一されることにより、形状、コネクタの向き、スイッチの位置等も当然に同じになるため、ドライバが配置される制御ボックス内の設計が行い易くなるとともに、制御ボックス内を整然と綺麗に仕上げることができる。また仕様変更や設計変更が生じて、装置に既設されているステッピングモータを新しいものに取り換える場合にドライバを変更しなくても良くなり、その結果、労力、費用、時間の削減を図ることができるとともに、ドライバの変更に伴うリスクをなくすことができる。またドライバが１つに統一されることにより、装置のメンテナンスのための部品管理に要する負担が軽減されるとともに、メンテナンス作業の精確性や効率を向上させることができる。
【００２９】
更にまた、ドライバが１つに統一されることにより、ステッピングモータの相数の違いによるドライバ開発費の分散を防止できる。また、ドライバ製造における部材調達、製造、検査、及び管理上の負担も軽減され、その結果、ドライバをより安価に提供することが可能となる。
【００３０】
このような本発明のモータ駆動装置において、ＦＰＧＡに設けられるＰＷＭ処理部は、サイクルカウンタで管理される単位周期ごとに、電流基準値レジスタに格納された電流基準値と電流検出部で検出された電流検出値との誤差を出力端子ごとに演算するとともに、当該単位周期の誤差と、その一つ前の単位周期の誤差との間の差分を演算する。更に、ＰＷＭ処理部は、当該単位周期の誤差と、上述の誤差の差分との和を演算し、その和の値と三角波と比較して、例えば「和の値＜三角波」の関係（又は「和の値≧三角波」の関係）が成立する場合に、出力端子ごとに配される一組のスイッチング素子のうちの一方をＯＮにし、且つ、他方をＯＦＦにするＰＷＭ制御信号を生成して出力する。これにより、各出力端子から、正弦波の位相差がもたらす比率を相互に備えた所定の電流をそれぞれ安定して出力することができる。
【００３１】
また本発明のモータ駆動装置において、ＦＰＧＡには、アドレスカウンタ、電流基準値レジスタ、及びＰＷＭ処理部が、出力端子と同じ個数で設けられていることにより、ＦＰＧＡにおいて各出力端子ごとの処理をそれぞれ独立させて個別に且つ並列して行うことができる。このため、各出力端子に、互いに正弦波の位相差が設けられた所定の比率の電流を安定して流すことができる。
【００３２】
更に、本発明のモータ駆動装置が、少なくとも５つの出力端子を有することにより、本発明のモータ駆動装置を、少なくとも５相ステッピングモータ、３相ステッピングモータ、及び２相ステッピングモータに対して適用することができる。
【００３３】
更にまた、本発明のモータ駆動装置は、駆動させるステッピングモータの種類を、コイルの数に応じて選択する相数セレクトスイッチを有する。この場合、相数セレクトスイッチからＦＰＧＡに信号が入力されることによって、ＦＰＧＡにおける複数のアドレスカウンタが、アドレスカウンタ間に、ステッピングモータの相数に対応するギャップ（ずれ）を正確に設けることができる。それによって、モータ駆動装置の各出力端子から、正弦波の位相差がもたらす比率の電流をそれぞれ安定して出力することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明に係るモータ駆動装置（ドライバ）の内部構成を示すブロック図である。
【図２】５相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図である。
【図３】５相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。
【図４】５相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図である。
【図５】ＰＷＭ回路における比較とスイッチング素子のＯＮ／ＯＦＦに関する概念図を示す。
【図６】５相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率（正弦波の位相差）を示す図である。
【図７】５相ステッピングモータの基本角位置が０°のときの電流の比率について説明する説明図である。
【図８】５相ステッピングモータの基本角位置が３６°のときの電流の比率について説明する説明図である。
【図９】３相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図である。
【図１０】３相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。
【図１１】３相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図である。
【図１２】３相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率（正弦波の位相差）を示す図である。
【図１３】２相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図である。
【図１４】２相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。
【図１５】２相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図である。
【図１６】２相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率（正弦波の位相差）を示す図である。
【発明を実施するための形態】
【００３５】
以下に、本発明の好適な実施形態について、実施例を挙げて図面を参照しながら詳細に説明する。なお、本発明は、以下で説明する実施例に何ら限定されるものではなく、本発明と実質的に同一な構成を有し、かつ、同様な作用効果を奏しさえすれば、多様な変更が可能である。
【００３６】
例えば、以下の実施例１〜３では、ドライバに５つの出力端子が設けられている場合について説明するが、本発明においてドライバに設けられる出力端子の数は５つに限定されるものではなく、任意に変更することが可能であるが、少なくとも５つの出力端子がドライバに設けられることが好ましい。また、出力端子の数が変更される場合、ドライバに設けられる後述のスイッチング素子、ゲートドライバ、及び電流検出部の数、並びに、後述のＦＰＧＡに設けられるアドレスカウンタ、電流基準値レジスタ、電流検出値レジスタ、及びＰＷＭ処理部の数も、出力端子の数に対応してそれぞれ変更される。
【実施例１】
【００３７】
図１は、ドライバの内部構成を示すブロック図である。図２は、５相ステッピングモータのコイルと、各コイルに流すモータ電流の方向とを定義する模式図であり、図３は、５相ステッピングモータのコイルにモータ電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。図４は、５相ステッピングモータに対して各出力端子から出力する電流の電気角一周分の比率を示す模式図であり、図６は、基本角位置において各出力端子から出力する電流の比率（正弦波の位相差）を示す図である。
【００３８】
図１に示すモータ駆動装置（ドライバ）１０は、ステッピングモータ１に接続され、コントローラ等の図示しない外部機器からの外部指令パルスが入力されることにより、ステッピングモータ１をステップ駆動させる。本実施例１では、図１のドライバ１０が、ペンダゴン結線方式のＨＢ型５相ステッピングモータ１に接続されている場合について説明する。
【００３９】
ここで、ペンタゴン結線方式を採用した５相ステッピングモータ１に関して、図２に示すように、ステッピングモータ１に配される５つのコイル（励磁コイル）を、第１コイル１ａ，第２コイル１ｂ，第３コイル１ｃ，第４コイル１ｄ，第５コイル１ｅとそれぞれ定義する。また、第１コイル１ａ〜第５コイル１ｅのそれぞれに流れるモータ電流を、それぞれモータ電流Ａ，ａ；モータ電流Ｂ，ｂ；モータ電流Ｃ，ｃ；モータ電流Ｄ，ｄ；モータ電流Ｅ，ｅで表す。また、第１コイル１ａ〜第５コイル１ｅに接続されるドライバ１０の後述する第１出力端子１１ａ〜第５出力端子１１ｅの位置も図２に示すように設定される。
【００４０】
この場合、モータ電流Ａ，Ｂ，Ｃ，Ｄ，Ｅと、モータ電流ａ，ｂ，ｃ，ｄ，ｅとは、互いに対応するアルファベットについて、第１コイル１ａ〜第５コイル１ｅのそれぞれにおいて反対の向きに流れる電流を示す。また、例えば第１コイル１ａにモータ電流Ａを流したときを励磁コイル（励磁相）Ａと表し、反対向きのモータ電流ａを流したときを励磁コイル（励磁相）ａと表す。第２コイル１ｂ〜第５コイル１ｅについても、第１コイル１ａの場合と同様とする。
【００４１】
更に、図３に示すように、５相ステッピングモータ１の第１コイル１ａ〜第５コイル１ｅに、モータ電流Ａ，ａ；Ｂ，ｂ；Ｃ，ｃ；Ｄ，ｄ；Ｅ，ｅがそれぞれ流れたときに生成されるトルクベクトルを、モータ電流の各アルファベットに対応させて、それぞれトルクベクトルＶＡ，Ｖａ；ＶＢ，Ｖｂ；ＶＣ，Ｖｃ；ＶＤ，Ｖｄ；ＶＥ，Ｖｅと定義する。すなわち、第１コイル１ａにモータ電流Ａが流れたときに生じるトルクベクトルＶＡと、モータ電流ａが流れたときに生じるトルクベクトルＶａとは、互いに逆方向のベクトルとなる。
【００４２】
図１のドライバ１０には、外部指令パルスとして、ＣＷＰ（Ｃｌｏｃｋ Ｗｉｓｅ Ｐｕｌｓｅ）方向の指令パルス又はＣＣＷＰ（Ｃｏｕｎｔｅｒ Ｃｌｏｃｋ Ｗｉｓｅ Ｐｕｌｓｅ）方向の指令パルスが図示しない外部機器から入力される。ここで、ＣＷＰ方向の指令パルスは、ステッピングモータ１のモータ回転軸（ロータ）を時計回りに正転させるための指令パルスであり、ＣＣＷＰ方向の指令パルスは反時計回りに逆転させるための指令パルスである。
【００４３】
また、ドライバ１０には、図示しない分解能セレクトスイッチと相数セレクトスイッチとが設けられており、分解能セレクトスイッチの位置によって、ステッピングモータ１をマイクロステップ駆動させるときの分解能（フルステップ角の分割数）を決定する分解能指令が、後述するＦＰＧＡ４０に入力される。また、相数セレクトスイッチの位置によって、複数の出力端子１１の中から、ステッピングモータ１に電流を出力する出力端子１１を決定する指令がＦＰＧＡ４０に入力される。
【００４４】
図１のドライバ１０は、ステッピングモータ１に接続される５つの出力端子１１と、各スイッチング素子２１のＯＮ／ＯＦＦにより各出力端子１１に所望の電流を流すことが可能な出力段２０と、出力段２０に後述するＰＷＭ制御信号を出力するＦＰＧＡ４０と、外部指令パルス（ＣＷＰ方向の指令パルス及びＣＣＷＰ方向の指令パルス）を受け付けてＦＰＧＡ４０に入力するフォトカプラインターフェイス回路１５と、出力端子１１ごとに配されるとともに各出力端子１１の電流を検出する５つの電流検出部（電流検出回路）３０とを有する。また、ドライバ１０には電圧が入力され、この入力電圧は、ステッピングモータ１に印加するモータ駆動電圧ＤＶと、ＦＰＧＡ４０の電源（３．３Ｖ）及び電流検出部３０の電源（５Ｖ）とを含むコントロール電源とに用いられる。また、コントロール電源は、フォトカプラインターフェイス回路１５にも使われる。
【００４５】
このドライバ１０は、出力端子１１として、第１出力端子１１ａ〜第５出力端子１１ｅを有しており、本実施例１では、第１出力端子１１ａ〜第５出力端子１１ｅの全てが、５相ステッピングモータ１の５つのコイル１ａ〜１ｅに接続されるとともに、相数セレクトスイッチでの５相の選択により、第１出力端子１１ａ〜第５出力端子１１ｅから、それぞれ制御された電流を出力可能に設定されている。
【００４６】
ドライバ１０の出力段２０は、第１出力端子１１ａ〜第５出力端子１１ｅごとに２つ一組で配されるスイッチング素子（パワーＭＯＳ  ＦＥＴ）２１と、一組のスイッチング素子２１を駆動するゲートドライバ２２とを備えている。スイッチング素子２１は、出力端子１１ごとに、電源側に接続される上側（ハイサイド）のスイッチング素子２１と、接地側に接続される下側（ローサイド）のスイッチング素子２１とを有する。
【００４７】
出力段２０のゲートドライバ２２は、ＦＰＧＡ４０と一組のスイッチング素子２１とを接続しており、一組のスイッチング素子２１は、ゲートドライバ２２を介して、ＦＰＧＡ４０から出力されるＰＷＭ制御信号に基づいて、そのＯＮ／ＯＦＦが切り換えられる。この出力段２０では、上側のスイッチング素子２１をＯＮにすることにより、その出力端子１１からステッピングモータ１に電流が流れ、下側のスイッチング素子２１をＯＮにすることにより、ステッピングモータ１から出力端子１１に電流を戻すことができる。
【００４８】
また本実施形態において、第１出力端子１１ａ〜第５出力端子１１ｅごとに配される一組のスイッチング素子２１は、一方のスイッチング素子２１（例えば上側のスイッチング素子２１）をＯＮにした場合には他方のスイッチング素子２１（例えば下側のスイッチング素子２１）をＯＦＦにし、他方のスイッチング素子２１をＯＮにした場合には一方のスイッチング素子２１をＯＦＦにするように制御される。このため、各出力端子１１ａ〜１１ｅにそれぞれ配される一組のスイッチング素子２１の両方を同時にＯＮにすることも、ＯＦＦにすることもない。
【００４９】
電流検出部３０は、第１出力端子１１ａ〜第５出力端子１１ｅのそれぞれに設けられており、各出力端子１１の電流を単位周期毎に検出可能に形成されている。各電流検出部３０は、下側（ローサイド）のスイッチング素子２１のソースに設けられたセンシング抵抗（シャント抵抗）３１と、センシング抵抗３１を介して検出されるアナログ電圧を増幅して出力する差動増幅回路３２とを有しており、各出力端子１１で下側のスイッチング素子２１がＯＮの状態のときの下側のスイッチング素子２１に流れる電流を検出する。各電流検出部３０の出力（アナログ電圧）は、Ａ／Ｄコンバータ３３によってデジタル変換されて、Ａ／Ｄコンバータ３３からシリアル通信によってＦＰＧＡ４０に入力される。なお、Ａ／Ｄコンバータ３３とＦＰＧＡ４０との間の通信方式には、シリアル通信ではなく、パラレル通信を用いることも可能である。
【００５０】
ＦＰＧＡ４０は、周期タイミングブロック５０と、アドレスブロック６０と、電流基準データブロック７０と、電流検出データブロック８０と、ＰＷＭ出力ブロック９０とを有する。
周期タイミングブロック５０は、一定の時間の単位周期を管理するサイクルカウンタ５１を有しており、各ブロック間のデータ処理のタイミングや、各ブロック内のデータ処理のタイミングは、サイクルカウンタ５１における単位周期のカウンタ値によって定められる。また、ＦＰＧＡ４０には、時間軸に沿って左右対称的な三角形状の三角波をサイクルカウンタ５１の単位周期で生成する三角波発生回路（三角波発生部）４１が設けられている。この三角波発生回路４１で生成される三角波は、ＰＷＭ出力ブロック９０に出力される。この場合、サイクルカウンタ５１で管理される単位周期は、ＰＷＭサイクルと呼ばれることもある。
【００５１】
ＦＰＧＡ４０のアドレスブロック６０は、第１出力端子１１ａ〜第５出力端子１１ｅに対応して設けられる第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅを有しており、本実施例１の場合は、相数セレクトスイッチにて上述のように５相に選択されているため、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅの全てが使用される。また、アドレスブロック６０の第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅは、それぞれ電気角位置（ステップ位置）に対応するアドレスを管理しており、管理されるアドレスの数は、マイクロステップの分解能に応じて設定される。
【００５２】
例えば本実施例１の場合、５相ステッピングモータ１における電気角一周（３６０°）は、機械角（モータ回転軸の回転角）の７．２°に相当し、電気角一周を５０回繰り返すことにより、機械角を１周（モータ回転軸の１回転）させることができる。
【００５３】
また、ＣＷＰ方向の指令パルスが入力される場合、５相ステッピングモータ１で単位周期毎に励磁されるコイル（励磁相）は、例えば図６に示すように、励磁相ＡＢＣＤ（０°の電気角位置）→ＢＣＤＥ（３６°の電気角位置）→ＣＤＥａ（７２°の電気角位置）→ＤＥａｂ（１０８°の電気角位置）→Ｅａｂｃ（１４４°の電気角位置）→ａｂｃｄ（１８０°の電気角位置）→ｂｃｄｅ（２１６°の電気角位置）→ｃｄｅＡ（２５２°の電気角位置）→ｄｅＡＢ（２８８°の電気角位置）→ｅＡＢＣ（３２４°の電気角位置）の順序で１０回切り換えて変更される。これによって、５相ステッピングモータ１のモータ回転軸を機械角で０．７２°（電気角で３６°）ずつ１０回ステップ駆動（歩進）させて、電気角一周となる７．２°の機械角を回転（正転）させる。
【００５４】
この場合、機械角の０．７２°（＝電気角の３６°）が基本角ステップ（フルステップとも言う）となり、基本角ステップの１０回の歩進を５０回繰り返すことにより（基本角ステップの１０回×５０）、上述のようにモータ回転子を機械角で３６０°、すなわち機械角で１回転させることができる。なお、ＣＣＷＰ方向の指令パルスが入力されるときは、５相ステッピングモータ１の励磁コイルが上記とは逆方向の順序で変更され、それによって、モータ回転子を逆転させることができる。
【００５５】
また本実施例１では、ステッピングモータ１における基本角ステップの分解能が、後述するように基本角ステップの角度（機械角の０．７２°＝電気角の３６°）を１００分割する「１／１００」に設定される。この場合、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅで管理されるアドレス（基数）の数は、電気角一周分となる「０００」〜「９９９」の１０００個（５相ステッピングモータ１の基本角ステップ１０回分×マイクロステップ分割数１００）に設定される。
【００５６】
すなわち、５相ステッピングモータ１の場合、ＣＷＰ方向の指令パルスが１０００回入力されることにより、モータ回転軸を、電気角一周の７．２°回転させることができ、更に、ＣＷＰ方向の指令パルスが５００００回（電気角一周×５０回）入力されることにより、モータ回転軸を、機械角で３６０°（１回転）回転させることができる。なお、本実施例１のドライバ１０において、基本角ステップの分解能は、上述した分解能セレクトスイッチを切り換えることにより、ユーザーが所定の範囲で任意に設定することが可能であり、その設定された分解能に基づいて、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅにおいてアドレス（基数）の数がそれぞれ設定される。
【００５７】
このアドレスブロック６０では、ドライバ１０の電源が入れられたときにイニシャライズ処理として、ＦＰＧＡ４０が相数セレクトスイッチの選択位置を読み取ることによって、相数セレクトスイッチで選択されたステッピングモータ１の相数に対する出力端子１１の数に応じたギャップを、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅ間に設け、その上で、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅが各アドレスの管理を行う。
【００５８】
例えば本実施例１の場合、ステッピングモータ１の相数は「５」であるため、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅ間において、各アドレスカウンタ６１ａ〜６１ｅが管理する「１０００」のアドレス数を出力端子１１の数である「５」で除した「２００」のギャップが、第１アドレスカウンタ６１ａと第２アドレスカウンタ６１ｂの間、第２アドレスカウンタ６１ｂと第３アドレスカウンタ６１ｃの間、第３アドレスカウンタ６１ｃと第４アドレスカウンタ６１ｄの間、第４アドレスカウンタ６１ｄと第５アドレスカウンタ６１ｅの間、及び第５アドレスカウンタ６１ｅと第１アドレスカウンタ６１ａの間にそれぞれ設けられた上で、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅがそれぞれアドレスの管理を行う。このため、例えば第１アドレスカウンタ６１ａのアドレスの数値が「０００」の場合、第２アドレスカウンタ６１ｂ〜第５アドレスカウンタ６１ｅのアドレスの数値は、それぞれ「２００」、「４００」、「６００」、「８００」となり、互いに「２００」のギャップずつずらされたものとなる。
【００５９】
更に、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅは、ＣＷＰ方向の指令パルスが入力される毎に、それぞれが管理するアドレスの数値をインクリメントし、また、ＣＣＷＰ方向の指令パルスが入力される毎に、それぞれが管理するアドレスの数値をデクリメントする。また、アドレスブロック６０では、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅのそれぞれで管理されているアドレスの数値が、サイクルカウンタ５１が指定するタイミングで、すなわち、サイクルカウンタ５１で管理されている単位周期（ＰＷＭサイクル）毎に、電流基準データブロック７０により読み出される。
【００６０】
電流基準データブロック７０は、アドレスブロック６０で管理されているアドレスを格納するアドレスレジスタ７１と、電流基準値のデータが予め格納されているＲＯＭ７２と、アドレスレジスタ７１に取り込まれたアドレスが示す電流基準値のデータをＲＯＭ７２から読み出して格納する第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅとを有する。
【００６１】
この電流基準データブロック７０では、アドレスブロック６０の第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅで管理されているそれぞれのアドレスを、サイクルカウンタ５１の単位周期毎に同時に取り込んで、アドレスレジスタ７１に格納する。
【００６２】
電流基準データブロック７０のＲＯＭ７２には、単位電流値を「ｉ」とし、電気角を「θ」としたときに「ｉ×ｓｉｎθ」で表される電流基準値のデータが、アドレスブロック６０で管理されるアドレスの数値と関連付けが可能な形式で格納されている。この場合、単位電流値「ｉ」は、ステッピングモータ１の定格電流値に応じて設定される。例えば電流を設定するダイアル（不図示）がドライバ１０に設けられている場合、そのダイアルの位置によって、定格電流値に基づく大きさ（倍率）の単位電流値「ｉ」が設定される。また、単位電流値「ｉ」の倍率の変更により、後述する電流値のサインカーブにおける振幅を変えることができる。
【００６３】
このＲＯＭ７２には、第１出力端子１１ａ〜第５出力端子１１ｅのそれぞれから電流をｓｉｎカーブの一周分で出力可能なデータが、言い換えると、「ｉ×ｓｉｎθ」表される電流基準値の電気角一周分（θが０°≦θ＜３６０°の範囲）に相当するデータが格納されている。この場合、ＲＯＭ７２には、０°≦θ＜３６０°の範囲の少なくとも１／４の範囲（例えば０°≦θ＜９０°の範囲）における電流基準値のデータが格納されていれば、電気角一周分に相当する電流基準値のデータをＲＯＭ７２から読み出すことが可能である。
【００６４】
電流基準データブロック７０の第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅは、それぞれ第１出力端子１１ａ〜第５出力端子１１ｅに対応して設けられている。この電流基準データブロック７０では、ＦＰＧＡ４０が相数セレクトスイッチの選択位置を読み取ることによって、第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅにおけるどの電流基準値レジスタを使用するかが選択される。本実施例１の場合、第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅの５つの使用が選択される。
【００６５】
電流基準データブロック７０では、アドレスレジスタ７１に保持されている第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅのそれぞれのアドレスが示す電流基準値のデータ「ｉ×ｓｉｎθ」をＲＯＭ７２からそれぞれ読み出して、その読み出した各電流基準値のデータを、対応する第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅにそれぞれ同時にセットする。また、第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅにセットされる各電流基準値のデータは、サイクルカウンタ５１で管理されている単位周期（ＰＷＭサイクル）毎に更新される。
【００６６】
この場合、第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅに同時にセットされる各電流基準値のデータには、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅ間に設けたアドレスのギャップ（すなわち、「２００」分のギャップ）に対応した正弦波の位相差が、第１電流基準値レジスタ７３ａと第２電流基準値レジスタ７３ｂの間、第２電流基準値レジスタ７３ｂと第３電流基準値レジスタ７３ｃの間、第３電流基準値レジスタ７３ｃと第４電流基準値レジスタ７３ｄの間、第４電流基準値レジスタ７３ｄと第５電流基準値レジスタ７３ｅの間、及び第５電流基準値レジスタ７３ｅと第１電流基準値レジスタ７３ａの間にそれぞれ設けられている。
【００６７】
ＦＰＧＡ４０の電流検出データブロック８０は、第１出力端子１１ａ〜第５出力端子１１ｅに対応する第１電流検出値レジスタ８１ａ〜第５電流検出値レジスタ８１ｅと、Ａ／Ｄコンバータ３３からの入力を受け付けるＡ／Ｄコンバータインターフェイス回路８２とを有する。
【００６８】
この電流検出データブロック８０では、電流検出部３０で検出された第１出力端子１１ａ〜第５出力端子１１ｅの各電流検出値（電流検出部３０の出力）が、Ａ／Ｄコンバータ３３によってＡ／Ｄ変換されて入力されるため、その入力された第１出力端子１１ａ〜第５出力端子１１ｅの各電流検出値を、対応する第１電流検出値レジスタ８１ａ〜第５電流検出値レジスタ８１ｅにそれぞれ格納する。この場合、第１電流検出値レジスタ８１ａ〜第５電流検出値レジスタ８１ｅに格納される各電流検出値のデータは、サイクルカウンタ５１で管理されている単位周期毎に更新される。
【００６９】
ＦＰＧＡ４０のＰＷＭ出力ブロック９０は、第１出力端子１１ａ〜第５出力端子１１ｅに対応する第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅを有する。第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅでは、それぞれ個別に且つ並列的に処理が行われており、各ＰＷＭ処理部９１ａ〜９１ｅにおいて、第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅにそれぞれ格納されている電流基準値と、第１電流検出値レジスタ８１ａ〜第５電流検出値レジスタ８１ｅにそれぞれ格納されている電流検出値とを対応させて単位周期（ＰＷＭサイクル）毎に比較し、両者の誤差を演算（減算）する。
【００７０】
また、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅのそれぞれには、２点移動平均フィルタ９２が設けられており、この２点移動平均フィルタ９２で移動平均処理を行うことによって電流基準値と電流検出値との２点平均誤差を演算し、更に、当該単位周期における２点平均誤差と、１つ前の２点平均誤差との差分を計算した上で、電流基準値と電流検出値との誤差と、２点平均誤差の差分との和を演算する。
【００７１】
具体的に説明すると、例えば、当該単位周期での電流基準値と電流検出値との誤差を「ｅ１（ｔ）」とし、１つ前の単位周期での電流基準値と電流検出値との誤差を「ｅ１（ｔ−１）」とし、２つ前の単位周期での電流基準値と電流検出値との誤差を「ｅ１（ｔ−２）」とした場合、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅは、単位周期（ＰＷＭサイクル）毎に、対応する電流基準値と電流検出値との誤差ｅ１（ｔ−２），ｅ１（ｔ−１），ｅ１（ｔ）を演算する。
【００７２】
また、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅは、それぞれの２点移動平均フィルタ９２で移動平均処理を行うことにより、当該単位周期における２点平均誤差として、「｛ｅ１（ｔ）＋ｅ１（ｔ−１）｝／２」を演算する。更に、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅの各差分演算回路９３において、２点移動平均フィルタ９２で演算した当該単位周期における２点平均誤差「｛ｅ１（ｔ）＋ｅ１（ｔ−１）｝／２」と、１つ前の単位周期の際に移動平均フィルタで演算した２点平均誤差「｛ｅ１（ｔ−１）＋ｅ１（ｔ−２）｝／２」との差分を演算する。この場合、上述の差分は、｛ｅ１（ｔ）＋ｅ１（ｔ−１）｝／２−｛ｅ１（ｔ−１）＋ｅ１（ｔ−２）｝／２＝｛ｅ１（ｔ）−ｅ１（ｔ−２）｝／２、となる。
【００７３】
更に、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅは、各差分演算回路９３で演算した２点平均誤差の差分「｛ｅ１（ｔ）−ｅ１（ｔ−２）｝／２」の演算結果を増幅回路９４で増幅し、その増幅した２点平均誤差の差分と、当該単位周期での電流基準値と電流検出値との誤差「ｅ１（ｔ）」との和を演算し、その上で、その演算された和と、三角波発生回路４１で生成されて第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅに入力された三角波とを、それぞれのＰＷＭ回路９５で比較する。このように２点平均誤差の差分を利用することにより、第１コイル１ａ〜第５コイル１ｅのインダクタンス成分による誤差の影響を小さくしている。
【００７４】
そして、ＰＷＭ回路９５では、例えば図５にＰＷＭ回路における比較とスイッチング素子のＯＮ／ＯＦＦに関する概念図を示すように、上記比較の結果、当該単位周期での誤差と２点平均誤差の差分との和＜三角波の関係が成立する場合には、第１出力端子１１ａ〜第５出力端子１１ｅに対応して配される一組のスイッチング素子２１のうちの上側（ハイサイド）のスイッチング素子２１をＯＮにする（言い換えると、下側（ローサイド）のスイッチング素子２１をＯＦＦにする）ＰＷＭ制御信号を、対応する第１出力端子１１ａ〜第５出力端子１１ｅのそれぞれについて生成する。
【００７５】
一方、当該単位周期での誤差と２点平均誤差の差分との和≧三角波の関係が成立する場合には、第１出力端子１１ａ〜第５出力端子１１ｅに対応して配される一組のスイッチング素子２１のうちの下側のスイッチング素子２１をＯＮにする（言い換えると、上側のスイッチング素子２１をＯＦＦにする）ＰＷＭ制御信号を、対応する第１出力端子１１ａ〜第５出力端子１１ｅのそれぞれについて生成する。そして、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅの各ＰＷＭ回路９５が生成したＰＷＭ制御信号を、出力段２０に対して単位周期ごとに同時に出力する。
【００７６】
これにより、出力段２０では、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅからの各ＰＷＭ制御信号に従って、各スイッチング素子２１のＯＮ／ＯＦＦを制御する。この場合、例えば電流基準値と電流検出値に基づいて演算される「誤差と誤差の差分との和」が小さくなると、図５に示したような比較において「誤差と誤差の差分との和」の位置が三角波の位置に対して下降し、それによって、上側のスイッチング素子２１をＯＮにする時間が相対的に長くなる（ＯＮ幅が広がる）。一方、「誤差と誤差の差分との和」が大きくなると、図５のような比較において「誤差と誤差の差分との和」の位置が三角波の位置に対して上昇し、それによって、上側のスイッチング素子２１をＯＮにする時間が相対的に短くなる（ＯＮ幅が狭くなる）。その結果、第１出力端子１１ａ〜第５出力端子１１ｅに流れる電流の向きをＰＷＭ制御信号に従ったタイミングで個別に変えることができるため、第１出力端子１１ａ〜第５出力端子１１ｅのそれぞれでは、単位周期毎に正弦波の位相差（サインカーブにおける７２°の位相差）に相当する比率の電流値で電流を流すことができる。
【００７７】
特にこの場合、第１出力端子１１ａ〜第５出力端子１１ｅのそれぞれに対しては、他の出力端子１１ａ〜１１ｅとの関係に影響されることなく、電流基準値のデータと電流検出値のデータとの誤差に基づいてＰＷＭ制御を行うことができ、それによって、各出力端子１１ａ〜１１ｅに流す電流に、正弦波の位相差（７２°の位相差）を安定して設けることができる。
【００７８】
従って、第１出力端子１１ａ〜第５出力端子１１ｅが接続されたステッピングモータ１の第１コイル１ａ〜第５コイル１ｅには、正弦波の位相差が互いに設けられた電流が第１出力端子１１ａ〜第５出力端子１１ｅに流れることによって生成される電流を、それぞれ流すことができる。すなわち、ステッピングモータ１の第１コイル１ａ〜第５コイル１ｅには、各コイル１ａ〜１ｅの両端部に接続された出力端子１１に流れるそれぞれの電流が差し引きされることにより生成されるモータ電流を（言い換えると、第１出力端子１１ａ〜第５出力端子１１ｅのそれぞれに流れる電流の向き及びその電流を流す時間に従って生成されるモータ電流を）所定のタイミングで流すことができ、それによって、第１コイル１ａ〜第５コイル１ｅが適宜励磁されて所要のトルクを発生させることができる。
【００７９】
また本実施例１において、コイル１ａ〜１ｅの両端に接続された２つの出力端子１１に対して、上記位相差に基づいて同じ大きさの電流が流れる場合（例えば図７における第２出力端子１１ｂと第３出力端子１１ｃの場合、又は図８における第４出力端子１１ｄと第５出力端子１１ｅの場合）は、各出力端子１１に対応して配される一組のスイッチング素子２１のＯＮ／ＯＦＦ状態が同じになるため、そのコイルには電流が流れず、その結果、コイルが非励磁状態に保持される。なお、本発明において、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅに設けるフィルタは、２点移動平均フィルタ９２に限定されるものではなく、その他のフィルタに変更することも可能である。
【００８０】
次に、上述した図１のドライバ１０を用いて、５相ステッピングモータ１をステップ駆動する方法について説明する。
先ず、ドライバ１０の電源が入れられると、イニシャライズ処理として、ドライバ１０に設けた図示しない相数セレクトスイッチの選択位置と、図示しない分解能セレクトスイッチの選択位置とを、ＦＰＧＡ４０が読み取る。本実施例１の場合、相数セレクトスイッチで「５相」が選択されているとともに、分解能セレクトスイッチで、基本角ステップの分解能として「１／１００」が選択されている。
【００８１】
このため、ＦＰＧＡ４０は、これらの信号を読み取って、初期設定として、アドレスブロック６０における第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅの５つのアドレスカウンタを使用する設定を行う。また、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅで管理するアドレス数として、「０００」〜「９９９」の１０００個（５相ステッピングモータ１の基本角ステップ１０回分×マイクロステップ分割数１００）を設定するとともに、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅに、出力端子１１の個数に応じた上述したギャップ「２００」が設けられたアドレス（基数）の数値を設定する。例えば第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅのアドレスには、上述したように、それぞれ「０００」、「２００」、「４００」、「６００」、「８００」の数値を設定する。
【００８２】
ＦＰＧＡ４０の初期設定終了後、図示しない外部機器からＣＷＰ方向又はＣＣＷＰ方向の指令パルスが入力されることにより、アドレスブロック６０の第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅは、それぞれが管理するアドレスの数値を、指令パルスの入力毎にインクリメント又はデクリメントする。この場合、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅは、アドレスのインクリメント又はデクリメントを並列して同時に行うため、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅ間に設けた「２００」のギャップは維持される。
【００８３】
またＦＰＧＡ４０は、外部機器からの指令パルスを受け付けながら、サイクルカウンタ５１で一定の単位周期（ＰＷＭサイクル）を管理するとともに、その単位周期を、三角波発生回路４１、電流基準データブロック７０、及び電流検出データブロック８０に出力する。また、三角波発生回路４１では、サイクルカウンタ５１の単位周期毎に三角波を生成するとともに、生成した三角波をＰＷＭ出力ブロック９０に出力する。
【００８４】
ＦＰＧＡ４０の電流基準データブロック７０では、サイクルカウンタ５１から単位周期（ＰＷＭサイクル）が入力されるとともに、その単位周期ごとに、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅで管理されているそれぞれのアドレスを同時に取り込んで、アドレスレジスタ７１に格納する。更に、電流基準データブロック７０は、電流基準値のデータ「ｉ×ｓｉｎθ」（０°≦θ＜３６０°）が予め格納されているＲＯＭ７２から、アドレスレジスタ７１に保持されている第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅの各アドレスに対応した電流基準値のデータをそれぞれ読み出して、その読み出した各電流基準値のデータを、対応する第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅにそれぞれ同時にセットする。
【００８５】
このとき、第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅに同時にセットされる各電流基準値のデータには、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅ間に設けたアドレスのギャップに対応した正弦波の位相差（７２°の位相差）が設けられている。
【００８６】
また、電流基準データブロック７０において上述の処理が行われると同時に、ＦＰＧＡ４０の電流検出データブロック８０では、サイクルカウンタ５１から単位周期（ＰＷＭサイクル）が入力される。更に、電流検出部３０で検出されてＡ／Ｄコンバータ３３を介して入力される第１出力端子１１ａ〜第５出力端子１１ｅの各電流検出値のデータを、第１電流検出値レジスタ８１ａ〜第５電流検出値レジスタ８１ｅに単位周期ごとに格納する（更新する）。
【００８７】
更に、ＦＰＧＡ４０のＰＷＭ出力ブロック９０は、第１電流基準値レジスタ７３ａ〜第５電流基準値レジスタ７３ｅに格納されている電流基準値と、第１電流検出値レジスタ８１ａ〜第５電流検出値レジスタ８１ｅに格納されている電流検出値とを、サイクルカウンタ５１の単位周期（ＰＷＭサイクル）毎に読み出して、対応する値同士を比較する。
【００８８】
この場合、ＰＷＭ出力ブロック９０では、上述したように増幅した２点平均誤差の差分と、当該単位周期での電流基準値と電流検出値との誤差「ｅ１（ｔ）」との和を演算した上で、その演算された和と、三角波発生回路４１で生成された三角波とを比較する（図５を参照）。更に、三角波との比較結果に基づいて、第１出力端子１１ａ〜第５出力端子１１ｅのそれぞれに対するＰＷＭ制御信号を、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅから単位周期ごとに出力段２０に出力する。
【００８９】
これによって、出力段２０は、ＦＰＧＡ４０からのＰＷＭ制御信号に従って各出力端子１１に配される一組のスイッチング素子２１のＯＮ／ＯＦＦを切り換えるため、ドライバ１０の第１出力端子１１ａ〜第５出力端子１１ｅでは、流れる方向及び大きさが制御された電流を所定のタイミングで流すことができる。この場合、第１出力端子１１ａ〜第５出力端子１１ｅにそれぞれ流れる電流の大きさ（電流値）は、電流基準値の「ｉ×ｓｉｎθ」の大きさに対応しており、例えば単位周期における上側のスイッチング素子２１をＯＮにする時間（ＯＮ幅）の長さを変えることにより制御される。また、第１出力端子１１ａ〜第５出力端子１１ｅの各電流値は、相互に正弦波の位相差に相当する比率を有する。
【００９０】
具体的に説明すると、例えば本実施例１の５相ステッピングモータ１において、例えばモータ回転軸を０°の電気角位置にステップ駆動させる場合には、図２に示したステッピングモータ１にモータ電流Ａ，Ｂ，Ｃ，Ｄを単位周期内に流して、ＶＡ＋ＶＢ＋ＶＣ＋ＶＤのトルクベクトル（以下、このトルクベクトルを、トルクベクトルＡＢＣＤとする）を発生させる。
【００９１】
このとき、本実施例１では、ドライバ１０の制御によって、第１出力端子１１ａ〜第５出力端子１１ｅに流れる電流の大きさに、正弦波における７２°（＝３６０°／（出力端子１１の使用する数「５」））の位相差を設けることができる（位相を７２°でずらすことができる）。すなわち、図６及び図７に示したように、第１出力端子１１ａからは、５相ステッピングモータ１に向けて、ｉ×ｓｉｎ１６２°（＝＋０．３０９×ｉ）の大きさ（比率）の電流を流すとともに、第２出力端子１１ｂ、第３出力端子１１ｃ、第４出力端子１１ｄ及び第５出力端子１１ｅからは、５相ステッピングモータ１に向けて、ｉ×ｓｉｎ２３４°（＝−０．８０９×ｉ）、ｉ×ｓｉｎ３０６°（＝−０．８０９×ｉ）、ｉ×ｓｉｎ１８°（＝＋０．３０９×ｉ）、及びｉ×ｓｉｎ９０°（＝＋１．０００×ｉ）の大きさ（比率）を備えた電流をそれぞれ流すことができる。なお、電流の大きさが−（マイナス）の場合は、５相ステッピングモータ１のコイルから出力端子１１に電流が戻ることを表している。
【００９２】
上述のような位相差を設けて第１出力端子１１ａ〜第５出力端子１１ｅに電流を流すことにより、図７に示したように、ステッピングモータ１の第１コイル１ａと第４コイル１ｄとには、第５出力端子１１ｅから第４出力端子１１ｄと第１出力端子１１ａとに向けて、モータ電流Ａ及びモータ電流Ｄが流れる。この場合、第１コイル１ａと第４コイル１ｄとには、計算上、比率が＋０．５００×ｉとなるモータ電流Ａ及びモータ電流Ｄが流れる。
【００９３】
また、第２コイル１ｂには、第１出力端子１１ａから第２出力端子１１ｂに向けてモータ電流Ｂが流れ、計算上、モータ電流Ｂの比率は、第５出力端子１１ｅからの＋０．５００×ｉの比率の電流と第１出力端子１１ａからの＋０．３０９×ｉの比率の電流とが合計された＋０．８０９×ｉとなる。第３コイル１ｃには、第４出力端子１１ｄから第３出力端子１１ｃに向けてモータ電流Ｃが流れ、計算上、モータ電流Ｃの比率は、第５出力端子１１ｅからの＋０．５００×ｉの比率の電流と第４出力端子１１ｄからの＋０．３０９×ｉの比率の電流とが合計された＋０．８０９×ｉとなる。そして、第２コイル１ｂ及び第３コイル１ｃに流れた電流は、第２出力端子１１ｂ及び第３出力端子１１ｃに戻されるため（言い換えると、第２出力端子１１ｂ及び第３出力端子１１ｃにおける正弦波の位相差に基づく電流の大きさが同じであるため）、第５コイル１ｅには電流が流れない。すなわち、モータ電流Ｅ＝０となる。
【００９４】
これにより、５相ステッピングモータ１の第１コイル１ａ〜第４コイル１ｄを単位周期内で適切なタイミングで励磁して、トルクベクトルＡＢＣＤを発生させることができるため、モータ回転軸を０°の電気角位置にステップ駆動させることができる。また、次のＣＷＰ方向又はＣＣＷＰ方向の指令パルスがドライバ１０に入力されるまでは、ドライバ１０のＦＰＧＡ４０から出力段２０に向けて同じＰＷＭ制御信号が単位周期毎に出力されるため、モータ回転軸を０°の電気角位置に保持できる。
【００９５】
更に、電気角位置が０°の状態から、ＣＷＰ方向（又はＣＣＷＰ方向）の指令パルスがドライバ１０に入力されると、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅのアドレスがインクリメント（又はデクリメント）されるとともに、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅで管理されるアドレスに応じて、ＦＰＧＡ４０が上述した処理と同様の処理を行う。それによって、第１ＰＷＭ処理部９１ａ〜第５ＰＷＭ処理部９１ｅから単位周期毎に出力段２０に所定のＰＷＭ制御信号を出力して、出力段２０の各スイッチング素子２１のＯＮ／ＯＦＦを制御する。
【００９６】
その結果、例えば図６に基本角ステップにおける電流の比率を示すように、第１出力端子１１ａ〜第５出力端子１１ｅには、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅで管理されているアドレスの電気角位置に対応し、且つ、各出力端子１１間で正弦波における７２°の位相差（アドレスブロック６０に設けたギャップに対応した位相差）が設けられた所定の比率の電流を流すことができる。
【００９７】
より具体的に説明すると、例えば電気角位置が０°の状態から、ドライバ１０にＣＷＰ方向の指令パルスが１００回入力されたときには、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅのアドレスは、それぞれ「１００」、「３００」、「５００」、「７００」、「９００」にインクリメントされ、これらのアドレスに対応してＦＰＧＡ４０が所定の処理を行う。これによって、ステッピングモータ１のモータ回転軸を３６°の電気角位置、すなわち、トルクベクトルＢＣＤＥを発生させる位置にステップ駆動させるＰＷＭ制御信号がＦＰＧＡ４０から出力段２０に出力される。
【００９８】
その結果、ドライバ１０の第１出力端子１１ａ〜第５出力端子１１ｅには、図６及び図８に示したように、ｉ×ｓｉｎ１９８°（＝−０．３０９×ｉ）、ｉ×ｓｉｎ２７０°（＝−１．０００×ｉ）、ｉ×ｓｉｎ３４２°（＝−０．３０９×ｉ）、ｉ×ｓｉｎ５４°（＝＋０．８０９×ｉ）、及びｉ×ｓｉｎ１２６°（＝＋０．８０９×ｉ）の大きさの電流をそれぞれ流すことができる。それによって、ステッピングモータ１の第１コイル１ａ〜第５コイル１ｅに対しては、計算上、図８に示した比率のモータ電流Ａ〜モータ電流Ｅをそれぞれ流すことができる。このように第１出力端子１１ａ〜第５出力端子１１ｅに流す電流に位相差７２°を設けることにより、５相ステッピングモータ１の第２コイル１ｂ〜第５コイル１ｅを単位周期内で適切なタイミングで励磁して、トルクベクトルＢＣＤＥ（ＶＢ＋ＶＣ＋ＶＤ＋ＶＥ）を発生させることができ、それによって、モータ回転軸を３６°の電気角位置にステップ駆動させることができる。
【００９９】
また本実施例１では分解能が「１／１００」に設定されているため、例えば電気角位置が０°の状態から、ドライバ１０に対してＣＷＰ方向の指令パルスが１回入力されてステッピングモータ１のマイクロステップ駆動を行う場合には、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅのアドレスは、それぞれ「００１」、「２０１」、「４０１」、「６０１」、「８０１」にインクリメントされる。それとともに、これらのアドレスに対応してＦＰＧＡ４０が処理を行うことによって、電気角位置が０．３６°（基本角ステップ３６°の１／１００の大きさ）となるように、ドライバ１０のＦＰＧＡ４０から出力段２０にＰＷＭ制御信号が出力される。それによって、第１出力端子１１ａ〜第５出力端子１１ｅには、各出力端子１１間で正弦波における７２°の位相差（アドレスブロック６０に設けたギャップに対応した位相差）が設けられた所定の比率のモータ電流Ａ，ａ；Ｂ，ｂ；Ｃ，ｃ；Ｄ，ｄ；Ｅ，ｅを流すことができ、その結果、モータ回転軸をマイクロステップ駆動させることができる。
【０１００】
また本実施例１の場合、ドライバ１０の制御によって第１出力端子１１ａ〜第５出力端子１１ｅのそれぞれから出力する電流について、電気角θが０°≦θ＜３６０°の範囲における電流値の変動を見ると、例えば図４の右側に示すように、第１出力端子１１ａ〜第５出力端子１１ｅから出力する各電流は、ＲＯＭ７２に格納されている電気角一周分の電流基準値のデータに対応してそれぞれ正弦曲線を示すように制御されるとともに、各出力端子１１間で互いに７２°の位相差が設けられている。なお、第１出力端子１１ａ〜第５出力端子１１ｅから出力する各電流は、電気角一周で元の出力状態に戻る。
【０１０１】
以上のように、図１に示した構成を有するドライバ１０では、例えば前述の特許文献２及び特許文献３等の従来のドライバのような「励磁パターン」を用いてモータの駆動制御を行うのではなく、「正弦波の位相差」を利用してモータの駆動制御を行う。従って、図１のドライバ１０に、本実施例１のように５相ステッピングモータ１が接続された場合、ＦＰＧＡ４０にてドライバ１０の５つの第１出力端子１１ａ〜第５出力端子１１ｅに関する処理を並列的に同時に行うことができ、それによって、ドライバ１０の５つの第１出力端子１１ａ〜第５出力端子１１ｅから、５つの相に対応した正弦波の位相差（７２°の位相差）がもたらす比率の電流を安定して出力できる。このため、ドライバ１０に入力されるＣＷＰ方向及びＣＣＷＰ方向の指令パルスに従って、５相ステッピングモータ１を円滑にステップ駆動させることができる。
【実施例２】
【０１０２】
図９は、３相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図であり、図１０は、３相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。図１１は、３相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図であり、図１２は、３相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率（正弦波の位相差）を示す図である。
【０１０３】
本実施例２では、図１のドライバ１０が、放射状に結線した３相ステッピングモータ２に接続されている場合について説明する。なお、本実施例２において、３相ステッピングモータ２に接続するドライバ１０は、前述の実施例１で用いたドライバ１０と同じものである。
【０１０４】
ここで、３相ステッピングモータ２については、図９に示すように、ステッピングモータ２に配される３つのコイル（励磁コイル）を、第１コイル２ａ，第２コイル２ｂ，及び第３コイル２ｃと定義する。また、第１コイル２ａ〜第３コイル２ｃに流れるモータ電流を、それぞれモータ電流Ａ，ａ；モータ電流Ｂ，ｂ；モータ電流Ｃ，ｃで表す。この場合、モータ電流Ａ，Ｂ，Ｃと、モータ電流ａ，ｂ，ｃとは、互いに対応するアルファベットについて、第１コイル２ａ〜第３コイル２ｃのそれぞれにおいて反対の向きに流れる電流を示す。また、第１コイル２ａ〜第３コイル２ｃに接続されるドライバ１０の第１出力端子１１ａ〜第３出力端子１１ｃの位置も図９に示すように設定される。
【０１０５】
更に、図１０に示すように、３相ステッピングモータ２の第１コイル２ａ〜第３コイル２ｃに、モータ電流Ａ，ａ；Ｂ，ｂ；Ｃ，ｃがそれぞれ流れたときに生成されるトルクベクトルを、モータ電流の各アルファベットに対応させて、それぞれトルクベクトルＶＡ，Ｖａ；ＶＢ，Ｖｂ；ＶＣ，Ｖｃと定義する。すなわち、第１コイル２ａにモータ電流Ａが流れたときに生じるトルクベクトルＶＡと、モータ電流ａが流れたときに生じるトルクベクトルＶａとは、互いに逆方向のベクトルとなる。
【０１０６】
本実施例２では、図１のドライバ１０を用いて、３相ステッピングモータ２をステップ駆動する場合について説明する。なお、本実施例２では、ドライバ１０における図示しない相数セレクトスイッチで、「３相」が予め選択されているとともに、図示しない分解能セレクトスイッチで、基本角ステップの分解能として「１／１００」が予め選択されている場合について説明する。
【０１０７】
またこの場合、ドライバ１０は、第１出力端子１１ａ〜第５出力端子１１ｅのうちの第１出力端子１１ａ〜第３出力端子１１ｃが、図９に示すように３相ステッピングモータ２の３つの第１コイル２ａ〜第３コイル２ｃに接続されている。更に、相数セレクトスイッチにより３相が選択されているため、第１出力端子１１ａ〜第３出力端子１１ｃからそれぞれ電流を出力可能に設定されるとともに、第４出力端子１１ｄ及び第５出力端子１１ｅは不使用に設定される。
【０１０８】
また図１のドライバ１０において、ＦＰＧＡ４０のアドレスブロック６０は、前述したように、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅを有するものの、相数セレクトスイッチの「３相」の選択により、アドレスブロック６０では第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃが使用される。
【０１０９】
３相ステッピングモータ２において、電気角一周（３６０°）は、機械角（モータ回転軸の回転角）の７．２°に相当し、電気角一周を５０回繰り返すことにより、機械角を１周（モータ回転軸を１回転）させる。また、ＣＷＰ方向の指令パルスが入力される場合、３相ステッピングモータ２で励磁されるコイル（励磁相）は、例えば図１２に示すように、励磁相コイルＡｃ（０°の電気角位置）→ｃＢ（６０°の電気角位置）→Ｂａ（１２０°の電気角位置）→ａＣ（１８０°の電気角位置）→Ｃｂ（２４０°の電気角位置）→ｂＡ（３００°の電気角位置）の順序で６回切り換えて変更される。
【０１１０】
これによって、３相ステッピングモータ２のモータ回転軸を機械角で１．２°（電気角で６０°）ずつ６回ステップ駆動（歩進）させて、電気角一周となる７．２°の機械角を回転（正転）させる。この場合、機械角の１．２°（＝電気角の６０°）が基本角ステップとなり、基本角ステップの６回の歩進を５０回繰り返すことにより（基本角ステップの６回×５０）、上述のようにモータ回転子を機械角で３６０°、１回転させることができる。
【０１１１】
また本実施例２では、ステッピングモータ２における基本角ステップの分解能が、上述したように基本角ステップを１００分割する「１／１００」に設定される。この場合、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃで管理されるアドレス（基数）の数は、電気角一周分となる「０００」〜「５９９」の６００個（３相ステッピングモータ２の基本角ステップ６回分×マイクロステップ分割数１００）に設定される。
【０１１２】
すなわち、３相ステッピングモータ２の場合、ＣＷＰ方向の指令パルスが６００回入力されることにより、モータ回転軸を、電気角一周の７．２°回転させることができ、更に、ＣＷＰ方向の指令パルスが３００００回（電気角一周×５０回）入力されることにより、モータ回転軸を、機械角で３６０°（１回転）回転させることができる。
【０１１３】
更に本実施例２の場合、ステッピングモータ２の相数は「３相」であるため、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃ間に、各アドレスカウンタが管理するアドレス数の「６００」を、出力端子１１の使用する数の「３」で除した「２００」のギャップを、第１アドレスカウンタ６１ａと第２アドレスカウンタ６１ｂの間、第２アドレスカウンタ６１ｂと第３アドレスカウンタ６１ｃの間、及び第３アドレスカウンタ６１ｃと第１アドレスカウンタ６１ａの間にそれぞれ設けて、その上で、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃがそれぞれアドレスの管理を行う。このため、例えば第１アドレスカウンタ６１ａのアドレスの数値が「０００」の場合、第２アドレスカウンタ６１ｂ及び第３アドレスカウンタ６１ｃのアドレスの数値は、それぞれ「２００」及び「４００」となる。
【０１１４】
従って、本実施例２においてドライバ１０の電源が入れられると、イニシャライズ処理として、ドライバ１０のＦＰＧＡ４０が、相数セレクトスイッチの選択位置と分解能セレクトスイッチの選択位置とを読み取ることによって、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃで管理するアドレス数として、「０００」〜「５９９」の６００個を設定するとともに、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃに、出力端子１１の数に応じたギャップ「２００」を設けたアドレス（基数）の数値を設定する。
【０１１５】
ＦＰＧＡ４０の初期設定後、ＣＷＰ方向又はＣＣＷＰ方向の指令パルスがドライバ１０に入力されることにより、アドレスブロック６０の第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃは、それぞれが管理するアドレスの数値を、指令パルスの入力毎にインクリメント又はデクリメントする。また、ＦＰＧＡ４０は、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃで管理されるアドレスに応じて、前述した実施例１で説明した処理と実質的に同様の処理を行う。
【０１１６】
簡単に説明すると、電流基準データブロック７０は電流基準値のデータ「ｉ×ｓｉｎθ」（０°≦θ＜３６０°）が予め格納されているＲＯＭ７２から、アドレスレジスタ７１に保持されている第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃのアドレスに対応する電流基準値のデータをそれぞれ読み出して、その読み出した各電流基準値のデータを、対応する第１電流基準値レジスタ７３ａ〜第３電流基準値レジスタ７３ｃにそれぞれ同時にセットする。このとき、第１電流基準値レジスタ７３ａ〜第３電流基準値レジスタ７３ｃに同時にセットされる各電流基準値のデータには、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃ間に設けたアドレスのギャップに対応した正弦波の位相差（１２０°の位相差）が設けられている。
【０１１７】
また、ＦＰＧＡ４０のＰＷＭ出力ブロック９０は、第１電流基準値レジスタ７３ａ〜第３電流基準値レジスタ７３ｃに格納されている電流基準値と、第１電流検出値レジスタ８１ａ〜第３電流検出値レジスタ８１ｃに格納されている電流検出値とを、サイクルカウンタ５１の単位周期（ＰＷＭサイクル）毎に読み出して、対応する値同士を比較し、前述の実施例１の場合と同様に所定の演算及び比較を出力端子１１毎に個別に且つ並列的に行うことによって、第１ＰＷＭ処理部９１ａ〜第３ＰＷＭ処理部９１ｃから、出力段２０に向けて、第１出力端子１１ａ〜第３出力端子１１ｃのそれぞれに対するＰＷＭ制御信号を単位周期ごとに同時に出力する。これにより、出力段２０は、ＰＷＭ出力ブロック９０から出力されるＰＷＭ制御信号に従って、各スイッチング素子２１のＯＮ／ＯＦＦを行う。
【０１１８】
これによって、ドライバ１０の第１出力端子１１ａ〜第３出力端子１１ｃに、流れる方向及び大きさが制御された電流を所定のタイミングで流すことができる。この場合、第１出力端子１１ａ〜第３出力端子１１ｃにそれぞれ流れる電流の大きさ（電流値）は、電流基準値の「ｉ×ｓｉｎθ」の大きさに対応しており、相互に正弦波の位相差（１２０°の位相差）に相当する比率を有する。
【０１１９】
例えば、本実施例２の３相ステッピングモータ２において、モータ回転軸を０°の電気角位置にステップ駆動させる場合には、図９に示したステッピングモータ２にモータ電流Ａ及びモータ電流ｃを流して、トルクベクトルＡｃ（ＶＡ＋Ｖｃ）を発生させる。このとき、本実施例２では、ドライバ１０の制御によって、第１出力端子１１ａ〜第３出力端子１１ｃに対し、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃで管理されているアドレスの電気角位置に対応し、且つ、各出力端子１１間で正弦波における１２０°（＝３６０°／出力端子１１の使用する数「３」）の位相差が設けられた所定の比率の電流を流す。
【０１２０】
具体的には、モータ回転軸を０°の電気角位置にステップ駆動させる場合、ドライバ１０の第１出力端子１１ａ〜第３出力端子１１ｃには、図１２に示したように、ｉ×ｓｉｎ２４０°（＝−０．８６６×ｉ）、ｉ×ｓｉｎ１２０°（＝＋０．８６６×ｉ）、ｉ×ｓｉｎ０°（＝０．０００×ｉ）の大きさの電流をそれぞれ流し、これによって、ステッピングモータ２の図９に示した第１コイル２ａ及び第３コイル２ｃに対して、モータ電流Ａ及びモータ電流ｃをそれぞれ流すことができる。これにより、３相ステッピングモータ２の第１コイル２ａ及び第３コイル２ｃを単位周期内で励磁して、トルクベクトルＡｃ（ＶＡ＋Ｖｃ）を発生させるため、モータ回転軸を０°の電気角位置にステップ駆動させることができる。
【０１２１】
また電気角位置が０°の状態から、ＣＷＰ方向（又はＣＣＷＰ方向）の指令パルスがドライバ１０に入力されると、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃのアドレスがインクリメント（又はデクリメント）されるとともに、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃで管理されるアドレスに応じてＦＰＧＡ４０が所定の処理を行う。これによって、ドライバ１０の第１出力端子１１ａ〜第３出力端子１１ｃに、正弦波における１２０°の位相差（アドレスブロック６０に設けたギャップに対応した位相差）が設けられた所定の比率のモータ電流Ａ，ａ；Ｂ，ｂ；Ｃ，ｃを単位周期毎にそれぞれ流すことができる。
【０１２２】
更に、ドライバ１０の制御によって第１出力端子１１ａ〜第３出力端子１１ｃのそれぞれから出力する電流について、電気角θが０°≦θ＜３６０°の範囲における電流値の変動を見ると、例えば図１１の右側に示すように、第１出力端子１１ａ〜第３出力端子１１ｃから出力する各電流は、ＲＯＭ７２に格納されている電気角一周分の電流基準値のデータに対応してそれぞれ正弦曲線を示すように制御されるとともに、各出力端子１１間で互いに１２０°の位相差が設けられている。
【０１２３】
以上のように、図１に示した構成を有するドライバ１０に、本実施例２の３相ステッピングモータ２が接続された場合でも、ＦＰＧＡ４０にてドライバ１０の３つの第１出力端子１１ａ〜第３出力端子１１ｃに関する処理を並列的に同時に行うことができ、それによって、ドライバ１０の第１出力端子１１ａ〜第３出力端子１１ｃから、３つの相に対応した正弦波の位相差（１２０°の位相差）がもたらす比率の電流を安定して出力できる。このため、ドライバ１０に入力されるＣＷＰ方向及びＣＣＷＰ方向の指令パルスに従って、３相ステッピングモータ２を円滑にステップ駆動させることができる。
【実施例３】
【０１２４】
図１３は、２相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図であり、図１４は、２相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。図１５は、２相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図であり、図１６は、２相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率（正弦波の位相差）を示す図である。
【０１２５】
本実施例３では、図１のドライバ１０が、バイポーラ型の２相ステッピングモータ３に接続されている場合について説明する。なお、本実施例３において、２相ステッピングモータ３に接続するドライバ１０は、前述の実施例１及び実施例２で用いたドライバ１０と同じものである。
【０１２６】
ここで、２相ステッピングモータ３については、図１３に示すように、ステッピングモータ３に配される２つのコイル（励磁コイル）を、第１コイル３ａ及び第２コイル３ｂと定義する。また、第１コイル３ａ及び第２コイル３ｂのそれぞれに流れるモータ電流を、それぞれモータ電流Ａ，ａ；モータ電流Ｂ，ｂで表す。この場合、モータ電流Ａ，Ｂと、モータ電流ａ，ｂとは、互いに対応するアルファベットについて、第１コイル３ａ及び第２コイル３ｂのそれぞれにおいて反対の向きに流れる電流を示す。また、第１コイル３ａ及び第２コイル３ｂに接続されるドライバ１０の第１出力端子１１ａ〜第４出力端子１１ｄの位置も図１３に示すように設定される。
【０１２７】
更に、図１４に示すように、２相ステッピングモータ３の第１コイル３ａ及び第２コイル３ｂに、モータ電流Ａ，ａ；Ｂ，ｂがそれぞれ流れたときに生成されるトルクベクトルを、モータ電流の各アルファベットに対応させて、それぞれトルクベクトルＶＡ，Ｖａ；ＶＢ，Ｖｂと定義する。すなわち、第１コイル３ａにモータ電流Ａが流れたときに生じるトルクベクトルＶＡと、モータ電流ａが流れたときに生じるトルクベクトルＶａとは、互いに逆方向のベクトルとなる。
【０１２８】
本実施例３では、図１のドライバ１０を用いて、２相ステッピングモータ３をステップ駆動する場合について説明する。なお、本実施例３では、ドライバ１０における図示しない相数セレクトスイッチで、「２相」が予め選択されているとともに、図示しない分解能セレクトスイッチで、基本角ステップの分解能として「１／１００」が予め選択されている場合について説明する。
【０１２９】
またこの場合、ドライバ１０は、第１出力端子１１ａ〜第５出力端子１１ｅのうちの第１出力端子１１ａ〜第４出力端子１１ｄが、図１３に示すように２相ステッピングモータ３の２つのコイル３ａ，３ｂにそれぞれ接続されている。更に、相数セレクトスイッチにより「２相」が選択されているため、第１出力端子１１ａ〜第４出力端子１１ｄからそれぞれ電流を出力可能に設定されるとともに、第５出力端子１１ｅは不使用に設定される。
【０１３０】
また図１のドライバ１０において、ＦＰＧＡ４０のアドレスブロック６０は、前述したように、第１アドレスカウンタ６１ａ〜第５アドレスカウンタ６１ｅを有するものの、相数セレクトスイッチの「２相」の選択により、アドレスブロック６０では第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄが使用される。
【０１３１】
２相ステッピングモータ３における電気角一周（３６０°）は、機械角（モータ回転軸の回転角）の７．２°に相当し、電気角一周を５０回繰り返すことにより、機械角を１周（モータ回転軸の１回転）させる。また、ＣＷＰ方向の指令パルスが入力される場合、２相ステッピングモータ３で励磁されるコイル（励磁相）は、例えば図１６に示すように、励磁相ｂＡ（０°の電気角位置）→ＡＢ（９０°の電気角位置）→Ｂａ（１８０°の電気角位置）→ａｂ（２７０°の電気角位置）の順序で４回切り換えて変更される。
【０１３２】
これによって、２相ステッピングモータ３のモータ回転軸を機械角で１．８°（電気角で９０°）ずつ４回ステップ駆動（歩進）させて、電気角一周となる７．２°の機械角を回転（正転）させる。この場合、機械角の１．８°（＝電気角の９０°）が基本角ステップとなり、基本角ステップの４回の歩進を５０回繰り返すことにより（基本角ステップの４回×５０）、上述のようにモータ回転子を機械角で３６０°、１回転させることができる。
【０１３３】
また本実施例３では、ステッピングモータ３における基本角ステップの分解能が、上述したように基本角ステップを１００分割する「１／１００」に設定される。この場合、第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄで管理されるアドレス（基数）の数は、電気角一周分となる「０００」〜「３９９」の４００個（２相ステッピングモータ３の基本角ステップ４回分×マイクロステップ分割数１００）に設定される。
【０１３４】
すなわち、２相ステッピングモータ３の場合、ＣＷＰ方向の指令パルスが４００回入力されることにより、モータ回転軸を、電気角一周の７．２°回転させることができ、更に、ＣＷＰ方向の指令パルスが２００００回（電気角一周×５０回）入力されることにより、モータ回転軸を、機械角で３６０°（１回転）回転させることができる。
【０１３５】
更に本実施例３の場合、ステッピングモータ３の相数は「２相」であるため、第１アドレスカウンタ６１ａ〜第３アドレスカウンタ６１ｃ間に、各アドレスカウンタが管理するアドレス数の「４００」を出力端子１１の使用する数の「４」で除した「１００」のギャップを、第１アドレスカウンタ６１ａと第２アドレスカウンタ６１ｂの間、第２アドレスカウンタ６１ｂと第３アドレスカウンタ６１ｃの間、第３アドレスカウンタ６１ｃと第４アドレスカウンタ６１ｄの間、及び第４アドレスカウンタ６１ｄと第１アドレスカウンタ６１ａの間にそれぞれ設けて、その上で、第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄがそれぞれアドレスの管理を行う。このため、例えば第１アドレスカウンタ６１ａのアドレスの数値が「０００」の場合、第２アドレスカウンタ６１ｂ、第３アドレスカウンタ６１ｃ、及び第４アドレスカウンタ６１ｄのアドレスの数値は、それぞれ「１００」、「２００」及び「３００」となる。
【０１３６】
従って、本実施例３においてドライバ１０の電源が入れられると、イニシャライズ処理として、ドライバ１０のＦＰＧＡ４０が、相数セレクトスイッチの選択位置と分解能セレクトスイッチの選択位置とを読み取ることによって、第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄで管理するアドレス数として、「０００」〜「３９９」の４００個を設定するとともに、第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄに、出力端子１１の使用する数に応じたギャップ「１００」を設けたアドレス（基数）の数値を設定する。
【０１３７】
ＦＰＧＡ４０の初期設定後、ＣＷＰ方向又はＣＣＷＰ方向の指令パルスがドライバ１０に入力されることにより、アドレスブロック６０の第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄは、それぞれが管理するアドレスの数値を、指令パルスの入力毎にインクリメント又はデクリメントする。また、ＦＰＧＡ４０は、第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄで管理されるアドレスに応じて、前述した実施例１で説明した処理と実質的に同様の処理を行う。
【０１３８】
簡単に説明すると、電流基準データブロック７０は電流基準値のデータ「ｉ×ｓｉｎθ」（０°≦θ＜３６０°）が予め格納されているＲＯＭ７２から、アドレスレジスタ７１に保持されている第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄのそれぞれのアドレスに対応する電流基準値のデータをそれぞれ読み出して、その読み出した各電流基準値のデータを、対応する第１電流基準値レジスタ７３ａ〜第４電流基準値レジスタ７３ｄにそれぞれ同時にセットする。このとき、第１電流基準値レジスタ７３ａ〜第４電流基準値レジスタ７３ｄに同時にセットされる各電流基準値のデータには、第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄ間に設けたアドレスのギャップに対応した正弦波の位相差（９０°の位相差）が設けられている。
【０１３９】
また、ＦＰＧＡ４０のＰＷＭ出力ブロック９０は、第１電流基準値レジスタ７３ａ〜第４電流基準値レジスタ７３ｄに格納されている電流基準値と、第１電流検出値レジスタ８１ａ〜第４電流検出値レジスタ８１ｄに格納されている電流検出値とを単位周期（ＰＷＭサイクル）毎に読み出して、対応する値同士を比較し、前述の実施例１の場合と同様に所定の演算及び比較を出力端子１１毎に個別に且つ並列的に行うことによって、第１ＰＷＭ処理部９１ａ〜第４ＰＷＭ処理部９１ｄから、出力段２０に向けて、第１出力端子１１ａ〜第４出力端子１１ｄのそれぞれに対するＰＷＭ制御信号を単位周期ごとに同時に出力する。これにより、出力段２０は、ＰＷＭ出力ブロック９０から出力されるＰＷＭ制御信号に従って、各スイッチング素子２１のＯＮ／ＯＦＦを行う。
【０１４０】
これによって、ドライバ１０の第１出力端子１１ａ〜第４出力端子１１ｄに、流れる方向及び大きさが制御された電流を所定のタイミングで流すことができる。この場合、第１出力端子１１ａ〜第４出力端子１１ｄにそれぞれ流れる電流の大きさ（電流値）は、電流基準値の「ｉ×ｓｉｎθ」の大きさに対応しており、相互にアドレスブロック６０に設けたギャップに対応した正弦波の位相差（９０°の位相差）に相当する比率を有する。
【０１４１】
例えば、本実施例３の２相ステッピングモータ３において、モータ回転軸を０°の電気角位置にステップ駆動させる場合には、図１３に示したステッピングモータ３にモータ電流ｂ及びモータ電流Ａを流して、トルクベクトルｂＡ（Ｖｂ＋ＶＡ）を発生させる。このとき、本実施例３では、ドライバ１０の制御によって、第１出力端子１１ａ〜第４出力端子１１ｄに対し、第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄで管理されているアドレスの電気角位置に対応し、且つ、各出力端子１１間で正弦波における９０°（＝３６０°／出力端子１１の使用する数「４」）の位相差が設けられた所定の比率の電流を流す。
【０１４２】
具体的には、モータ回転軸を０°の電気角位置にステップ駆動させる場合、ドライバ１０の第１出力端子１１ａ〜第４出力端子１１ｄには、図１６に示したように、ｉ×ｓｉｎ４５°（＝＋０．７０７×ｉ）、ｉ×ｓｉｎ１３５°（＝＋０．７０７×ｉ）、ｉ×ｓｉｎ２２５°（＝−０．７０７×ｉ）、及びｉ×ｓｉｎ３１５°（＝−０．７０７×ｉ）の大きさの電流をそれぞれ流すことができ、これによって、ステッピングモータ３の図１３に示した第１コイル３ａ及び第２コイル３ｂに対して、モータ電流Ａ及びモータ電流ｂをそれぞれ流すことができる。これにより、２相ステッピングモータ３の第１コイル３ａ及び第２コイル３ｂを単位周期内で励磁して、トルクベクトルｂＡ（Ｖｂ＋ＶＡ）を発生させるため、モータ回転軸を０°の電気角位置にステップ駆動させることができる。
【０１４３】
また電気角位置が０°の状態から、ＣＷＰ方向（又はＣＣＷＰ方向）の指令パルスがドライバ１０に入力されると、第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄのアドレスがインクリメント（又はデクリメント）されるとともに、第１アドレスカウンタ６１ａ〜第４アドレスカウンタ６１ｄで管理されるアドレスに応じてＦＰＧＡ４０が所定の処理を行う。これによって、ドライバ１０の第１出力端子１１ａ〜第４出力端子１１ｄに、正弦波における９０°の位相差（アドレスブロック６０に設けたギャップに対応した位相差）が設けられた所定の比率のモータ電流Ａ，ａ；Ｂ，ｂを単位周期毎にそれぞれ流すことができる。
【０１４４】
更に、ドライバ１０の制御によって第１出力端子１１ａ〜第４出力端子１１ｄのそれぞれから出力する電流について、電気角θが０°≦θ＜３６０°の範囲における電流値の変動を見ると、例えば図１５の右側に示すように、第１出力端子１１ａ〜第４出力端子１１ｄから出力する各電流は、ＲＯＭ７２に格納されている電気角一周分の電流基準値のデータに対応してそれぞれ正弦曲線を示すように制御されるとともに、各出力端子１１間で互いに９０°の位相差が設けられている。
【０１４５】
以上のように、図１に示した構成を有するドライバ１０に、本実施例３の２相ステッピングモータ３が接続された場合でも、ＦＰＧＡ４０にてドライバ１０の４つの第１出力端子１１ａ〜第４出力端子１１ｄに関する処理を並列的に同時に行うことができ、それによって、ドライバ１０の第１出力端子１１ａ〜第４出力端子１１ｄから、２つの相に対応した正弦波の位相差（９０°の位相差）がもたらす比率の電流を安定して出力できる。このため、ドライバ１０に入力されるＣＷＰ方向及びＣＣＷＰ方向の指令パルスに従って、２相ステッピングモータ３を円滑にステップ駆動させることができる。
【０１４６】
そして、以上の実施例１〜実施例３に示したように、図１に示した本発明のドライバ１０は、前述の特許文献２及び特許文献３等の従来のドライバのような「励磁パターン」を用いてモータの駆動制御を行うのではなく、正弦波における電流を流す出力端子１１の個数で３６０°を除した角度の位相差を利用して（正弦波の位相をずらして）モータの駆動制御を行う。これにより、ステッピングモータ１，２，３のステップ駆動の滑らかさや静穏性を向上できるとともに、図１に示した一つのドライバ１０で、実施例１の５相ステッピングモータ１、実施例２の３相ステッピングモータ２、及び実施例３の２相ステッピングモータ３の何れに対してもステップ駆動させることが可能となる。
【０１４７】
このように相数の異なるステッピングモータ１，２，３に対応できるドライバ１０であれば、例えば各種装置に複数のステッピングモータを用いる際に、専用の複数種類のドライバを用いる必要がなくなるため、ドライバに要する費用を抑えられる。また、ドライバの種類を１つに統一した上で、ステッピングモータを自由に選択することができるため、その仕様に対してより最適なステッピングモータを選択することが可能となる。
【０１４８】
特に、相数の異なるステッピングモータに対してドライバの種類を１つに統一できることにより、ステッピングモータの相数が異なる場合でもドライバの駆動に起因する特性の違いは生じない。このため、ステッピングモータの選択を、より簡単な条件から行うことができるようになり、その結果、装置設計の自由度を格段に拡げることができる。
【０１４９】
更に、ドライバが１つに統一されることにより、ドライバが配置される制御ボックス内の設計が行い易くなるとともに、制御ボックス内を整然と綺麗に仕上げることができる。また仕様変更や設計変更が生じて、装置に既設されているステッピングモータを新しいものに取り換える場合にドライバの変更を不要にすることも可能となる。その結果、労力、費用、時間の削減を図ることができるとともに、ドライバの変更に伴うリスクをなくすことができる。
【０１５０】
またドライバが１つに統一されることにより、装置のメンテナンスのための部品管理に要する負担が軽減されるとともに、メンテナンス作業の精確性や効率を向上させることができる。その上、ステッピングモータの相数の違いによるドライバ開発費の分散を防止できる。また、ドライバ製造における部材調達、製造、検査、及び管理上の負担も軽減され、その結果、ドライバをより安価に提供することが可能となる。
【符号の説明】
【０１５１】
１                ステッピングモータ
１ａ              第１コイル
１ｂ              第２コイル
１ｃ              第３コイル
１ｄ              第４コイル
１ｅ              第５コイル
２                ステッピングモータ
２ａ              第１コイル
２ｂ              第２コイル
２ｃ              第３コイル
３                ステッピングモータ
３ａ              第１コイル
３ｂ              第２コイル
１０                モータ駆動装置（ドライバ）
１１                出力端子
１１ａ              第１出力端子
１１ｂ              第２出力端子
１１ｃ              第３出力端子
１１ｄ              第４出力端子
１１ｅ              第５出力端子
１５                フォトカプラインターフェイス回路
２０                出力段
２１                スイッチング素子（パワーＭＯＳ  ＦＥＴ）
２２                ゲートドライバ
３０                電流検出部（電流検出回路）
３１                センシング抵抗（シャント抵抗）
３２                差動増幅回路
３３                Ａ／Ｄコンバータ
４０                ＦＰＧＡ
４１                三角波発生回路（三角波発生部）
５０                周期タイミングブロック
５１                サイクルカウンタ
６０                アドレスブロック
６１ａ              第１アドレスカウンタ
６１ｂ              第２アドレスカウンタ
６１ｃ              第３アドレスカウンタ
６１ｄ              第４アドレスカウンタ
６１ｅ              第５アドレスカウンタ
７０                電流基準データブロック
７１                アドレスレジスタ
７２                ＲＯＭ
７３ａ              第１電流基準値レジスタ
７３ｂ              第２電流基準値レジスタ
７３ｃ              第３電流基準値レジスタ
７３ｄ              第４電流基準値レジスタ
７３ｅ              第５電流基準値レジスタ
８０                電流検出データブロック
８１ａ              第１電流検出値レジスタ
８１ｂ              第２電流検出値レジスタ
８１ｃ              第３電流検出値レジスタ
８１ｄ              第４電流検出値レジスタ
８１ｅ              第５電流検出値レジスタ
８２                Ａ／Ｄコンバータインターフェイス回路
９０                ＰＷＭ出力ブロック
９１ａ              第１ＰＷＭ処理部
９１ｂ              第２ＰＷＭ処理部
９１ｃ              第３ＰＷＭ処理部
９１ｄ              第４ＰＷＭ処理部
９１ｅ              第５ＰＷＭ処理部
９２                ２点移動平均フィルタ
９３                差分演算回路
９４                増幅回路
９５                ＰＷＭ回路
Ａ，ａ              コイルに流れる電流
Ｂ，ｂ              コイルに流れる電流
Ｃ，ｃ              コイルに流れる電流
Ｄ，ｄ              コイルに流れる電流
Ｅ，ｅ              コイルに流れる電流
ＤＶ                モータ駆動電圧
ＶＡ，Ｖａ          トルクベクトル
ＶＢ，Ｖｂ          トルクベクトル
ＶＣ，Ｖｃ          トルクベクトル
ＶＤ，Ｖｄ          トルクベクトル
ＶＥ，Ｖｅ          トルクベクトル
【図１】
2019088064.tif 000003
【図２】
2019088064.tif 000004
【図３】
2019088064.tif 000005
【図４】
2019088064.tif 000006
【図５】
2019088064.tif 000007
【図６】
2019088064.tif 000008
【図７】
2019088064.tif 000009
【図８】
2019088064.tif 000010
【図９】
2019088064.tif 000011
【図１０】
2019088064.tif 000012
【図１１】
2019088064.tif 000013
【図１２】
2019088064.tif 000014
【図１３】
2019088064.tif 000015
【図１４】
2019088064.tif 000016
【図１５】
2019088064.tif 000017
【図１６】
2019088064.tif 000018