(57)【要約】【課題】パルス波形のズレを都度補正しながらステッピングモータを制御し、ステッピングモータの脱調を防止する。【解決手段】中央制御回路による割り込み処理で、２相のパルスのいずれかが実際に立ち上げられた時（Ｓ１でＹＥＳ）、当該パルスが実際に立ち上げられたタイミングと、タイマカウンタレジスタに当該パルスの立ち上がりタイミングとして設定されている理想のタイミングとの時間差を中央制御回路が算出し（Ｓ２）、この時間差分だけ、中央制御回路が、コンペアレジスタに当該パルスの立ち下がりタイミングとして設定されるタイマ値を補正することで、このパルスに続く次のパルスの形成タイミングを、本来の理想的なパルス形成タイミング通りの正確なタイミングでコンペアレジスタに設定する（Ｓ３）。【選択図】図３
2007097253.tif 000002
【特許請求の範囲】
【請求項１】
２相式ステッピングモータの制御装置であって、
前記ステッピングモータの駆動に用いる２相の各パルスの立ち上げ及び立ち下げタイミングを示すタイマ値を設定するパルス形成タイミング設定手段と、
前記パルス形成タイミング設定手段によって設定されたタイマ値をカウントするタイマ手段と、
前記タイマ手段によって前記設定されたタイマ値がカウントされた時に、前記２相の各パルスを立ち上げ又は立ち下げるパルス形成手段と、
前記パルス形成手段によって前記２相のパルスのいずれかが実際に立ち上げられたタイミングと、前記タイマ手段に当該パルスの立ち上がりタイミングとして設定されている理想のタイミングとの時間差を検出する時間差検出手段と、
前記時間差検出手段によって検出された時間差分だけ、前記タイマ手段に当該パルスの立ち下がりタイミングとして設定されるタイマ値を補正する補正手段と
を備えた２相式ステッピングモータの制御装置。
【請求項２】
前記時間差検出手段は、前記パルス形成手段によって前記２相パルスの一方が立ち上げられた時に、前記パルス形成手段によって先に立ち上げられている他方のパルスについての前記タイマ手段によるカウント値に基づいて、前記時間差を検出する請求項１に記載の２相式ステッピングモータの制御装置。
【請求項３】
前記パルス形成タイミング設定手段は、前記パルス形成手段によって形成される前記２相の各パルス毎に異ならせた２種類のタイマ出力を行う請求項１又は請求項２に記載の２相式ステッピングモータの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２相式ステッピングモータの制御装置に関し、特に、２相式ステッピングモータの駆動に用いる２相パルスの各パルスを形成する際の技術に関する。
【背景技術】
【０００２】
従来、２相式のステッピングモータを駆動する方法として、(1)ＣＰＵが１つのタイマ出力に基づいてハード的に２相のパルスを形成する方法と、(2)ＣＰＵが２種類のタイマ出力を利用し、一方のタイマ出力に基づいて２相のうちの一方のパルスを形成し、他方のタイマ出力に基づいて２相のうちの他方のパルスを形成する方法がある。(2)の駆動方法の場合、ステッピングモータの駆動制御には正確なタイミングでのパルス形成が必要である。そのため、ＣＰＵにおける当該パルス立ち上げタイミング及び立ち下げタイミングのタイマ値設定のための割込みレベルは高く設定されている。なお、下記特許文献１に示すように、励磁方式の切り替え時における不適切なステップ角を補正するステッピングモータの制御装置が提案されている。
【特許文献１】特開２０００−２７２１９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記(2)の駆動方法の場合、何らかの要因で、次回のパルス立ち上げタイミングのタイマ値設定が遅れてしまうと（当該タイマ値設定処理よりも割込優先順位の高い処理が入り込んだ場合等）、上記タイマ出力に基づく理想のタイミングで波形が形成できない事態が生じる。このように一度パルス波形がずれると、ステッピングモータを停止するまで、そのズレは継続され、正確なタイミングでパルス形成ができない。さらに割込みタイミングが遅れるようなことがあると、各ズレが累積され、結果としてモータが脱調する事態を招く。
【０００４】
本発明は、上記の問題を解決するためになされたもので、パルス波形のずれを都度補正しながらステッピングモータを制御し、ステッピングモータの脱調を防止することを目的とするものである。
【課題を解決するための手段】
【０００５】
本発明の請求項１に記載の発明は、２相式ステッピングモータの制御装置であって、
前記ステッピングモータの駆動に用いる２相の各パルスの立ち上げ及び立ち下げタイミングを示すタイマ値を設定するパルス形成タイミング設定手段と、
前記パルス形成タイミング設定手段によって設定されたタイマ値をカウントするタイマ手段と、
前記タイマ手段によって前記設定されたタイマ値がカウントされた時に、前記２相の各パルスを立ち上げ又は立ち下げるパルス形成手段と、
前記パルス形成手段によって前記２相のパルスのいずれかが実際に立ち上げられたタイミングと、前記タイマ手段に当該パルスの立ち上がりタイミングとして設定されている理想のタイミングとの時間差を検出する時間差検出手段と、
前記時間差検出手段によって検出された時間差分だけ、前記タイマ手段に当該パルスの立ち下がりタイミングとして設定されるタイマ値を補正する補正手段と
を備えたものである。
【０００６】
この発明では、パルス形成手段によって２相のパルスのいずれかが実際に立ち上げられた時、当該パルスが実際に立ち上げられたタイミングと、タイマ手段に当該パルスの立ち上がりタイミングとして設定されている理想のタイミングとの時間差を時間差検出手段が検出し、この時間差分だけ、補正手段が、タイマ手段に当該パルスの立ち下がりタイミングとして設定されるタイマ値を補正することで、このパルスに続く次のパルスの形成タイミングが、本来の理想的なパルス形成タイミング通りの正確なタイミングでタイマ手段に設定されるようにしている。
【０００７】
また、請求項２に記載の発明は、請求項１に記載の２相式ステッピングモータの制御装置であって、前記時間差検出手段は、前記パルス形成手段によって前記２相パルスの一方が立ち上げられた時に、前記パルス形成手段によって先に立ち上げられている他方のパルスについての前記タイマ手段によるカウント値に基づいて、前記時間差を検出するものである。
【０００８】
この発明では、パルス形成手段によって２相パルスの一方が立ち上げられた時、パルス形成手段によって先に立ち上げられている他方のパルスについてのタイマ手段によるカウント値に基づいて、時間差検出手段が、前記時間差を検出することで、簡単な処理で当該時間差を検出できるようにしている。
【０００９】
また、請求項３に記載の発明は、請求項１又は請求項２に記載の２相式ステッピングモータの制御装置であって、前記パルス形成タイミング設定手段は、前記パルス形成手段によって形成される前記２相の各パルス毎に異ならせた２種類のタイマ出力を行うものである。
【００１０】
この発明によれば、１つのタイマ出力を用いて２相パルスを形成する構成を採る場合よりも、装置のコストを低減することができる。
【発明の効果】
【００１１】
請求項１に記載の発明によれば、パルス形成手段によってパルスが立ち上げられたタイミングと、タイマ手段に設定されている本来の理想的なパルス立ち上げタイミングとの間に時間差が生じた場合であっても、この時間差分だけ当該パルスのエッジ立ち下がりタイミングが補正される。そのため、このパルス立ち下がりタイミングを基準としてパルスが立ち下げられ、この立ち下げ時に、当該パルスに続く次のパルスの立ち上がりタイミングをタイマ手段に設定したとしても、本来の理想的なパルス立ち上げタイミング通りの正確なタイミングに戻すことができる。これにより、パルス波形の時間差、所謂ずれがパルス形成の都度補正され、当該ずれの累積によるステッピングモータの脱調を防止することができる。
【００１２】
請求項２に記載の発明によれば、パルス形成手段によってパルスが立ち上げられたタイミングと、タイマ手段に設定されている本来の理想的なパルス立ち上げタイミングとの時間差を、簡単な処理で検出できる。
【００１３】
請求項３に記載の発明によれば、１つのタイマ出力を用いて２相パルスを形成する構成を採る場合よりも、装置のコストを低減することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態に係る２相式ステッピングモータの制御装置について図面を参照して説明する。図１は、本発明の一実施形態に係る２相式ステッピングモータの制御装置の概要を示す図である。
【００１５】
ステッピングモータ１は、Ａ相及びＢ相のパルスの２つのパルスで駆動される２相式のモータである。また、ステッピングモータ１は、コイル１１，１２を備え、モータ制御ユニット２からコイル１１，１２に入力される２相のパルスにより駆動が制御される。
【００１６】
モータ制御ユニット２は、マイコン２１と、モータ駆動回路２２とを備える。マイコン２１は、ＣＰＵ、メモリ、レジスタ等の各回路を有する。このマイコン２１には、ステッピングモータ１の駆動制御に必要な各種情報が随時取り込まれ、この情報に基づいて、マイコン２１は、ステッピングモータ１を制御するためのＡ相及びＢ相の２相からなるパルスを形成して出力することにより、ステッピングモータ１を駆動制御する。
【００１７】
モータ駆動回路２２は、上記マイコン２１で形成された２相のパルスをステッピングモータ１に出力するものである。モータ駆動回路２２は、マイコン２１から入力されるＡ相及びＢ相の各パルスについて正相と逆相を生成し、計４つの出力Ａ，／Ａ，Ｂ，／Ｂを生成し、これをステッピングモータ１に対して出力する。
【００１８】
マイコン２１は、タイマ値セット用テーブル２３と、レジスタ２４，２５と、中央制御回路２６とを備えている。このマイコン２１のタイマ出力回路２６４，２６５によって、２相の各パルス毎に異ならせた２種類のタイマ出力が行われる。
【００１９】
タイマ値セット用テーブル２３は、ステッピングモータ１のスローアップ駆動用の複数のパルスの立ち上げ・立ち下げのタイミング設定に用いる複数タイマ値と、定速駆動用のパルスの立ち上げ・立ち下げタイミングの設定に用いるタイマ値とを記憶している。
【００２０】
レジスタ（タイマ手段）２４は、タイマカウンタレジスタ２４１と、コンペアレジスタ２４２とを備えている。
【００２１】
タイマカウンタレジスタ２４１は、中央制御回路２６が備える図略のクロック発振器による信号から作り出された時間をカウントする。
【００２２】
コンペアレジスタ２４２は、パルス立ち上げ及び立ち下げのタイミングを決定するレジスタである。コンペアレジスタ２４２には、中央制御回路２６により、Ａ相のパルスについてのエッジ立ち上がりタイミング及び立ち下がりタイミングを示すタイマ値が設定される。
【００２３】
レジスタ（タイマ手段）２５も同様の構成からなり、タイマカウンタレジスタ２５１と、コンペアレジスタ２５２とを備えている。レジスタ２５は、コンペアレジスタ２５２に、Ｂ相のパルスについてのエッジ立ち上がりタイミング及び立ち下がりタイミングを示すタイマ値が設定される。
【００２４】
中央制御回路（パルス形成タイミング設定手段、パルス形成手段、時間差検出手段、補正手段）２６は、タイマ出力回路（タイマ手段）２６４及び２６５を備えている。中央制御回路２６は、レジスタ２４のタイマカウンタレジスタ２４１によってＡ相のパルスの立ち上がりタイミング又は立ち下がりタイミングとしてコンペアレジスタ２４２に設定されているタイマ値がカウントされた時、タイマ出力回路２６４の出力ポートＰ１をＨレベル又はＬレベルとし、Ａ相のパルスを立ち上げ又は立ち下げる。中央制御回路２６は、レジスタ２５とも同様の制御を行い、タイマ出力回路２６５の出力ポートＰ２をＨレベル又はＬレベルとし、Ｂ相のパルスを立ち上げ又は立ち下げる。
【００２５】
また、中央制御回路２６は、ステッピングモータ１のスローアップ時にパルスを立ち上げた場合には、割り込み処理により、当該パルスの立ち下げるタイミングをタイマ値セット用テーブル２３からピックアップし、コンペアレジスタ２４２又は２５２に設定する処理を行う。また、中央制御回路２６は、ステッピングモータ１のスローアップ時にパルスを立ち下げた場合には、割り込み処理により、当該パルスの次のパルスを立ち上げるタイミングをタイマ値セット用テーブル２３からピックアップし、コンペアレジスタ２４２又は２５２に設定する処理を行う。中央制御回路２６のタイマ出力回路２６４又は２６５の出力ポートＰ１又はＰ２から出力されるパルスは、モータ駆動回路２２による正相及び逆相の生成を経て、ステッピングモータ１に入力される。
【００２６】
次に、マイコン２１によるステッピングモータ１の基本的な駆動制御について説明する。図２は、ステッピングモータ１に入力される各相のパルス波形を示す図である。本実施形態では、タイマ値セット用テーブル２３には、n個のタイマ値t1，t2，t3，t4，t5，t6，…tnが記憶されており、各タイマ値は、t1＞t2＞t3＞t4＞t5＞t6＞…＞tnの関係とされている。ステッピングモータ１の駆動開始時にスローアップを行う場合、中央制御回路２６は、割り込み処理により、Ａ相のエッジ立ち上がりタイミングとなるタイマ値t1及びＢ相のエッジ立ち上がりタイミングとなるタイマ値t1+t2をタイマ値セット用テーブル２３からピックアップし、Ａ相のエッジ立ち上がりタイミングとなるタイマ値t1をコンペアレジスタ２４２に設定し、Ｂ相のエッジ立ち上がりタイミングとなるタイマ値t1+t2をコンペアレジスタ２５２に設定する。これにより、Ａ相のパルスとＢ相のパルスは、図２に示すように、パルス立ち上がりタイミングが半周期程度ずれるようにされている。
【００２７】
タイマカウンタレジスタ２４１がタイマカウントを開始し、コンペアレジスタ２４２に設定されているタイマ値t1（Ａ相パルスについてのエッジ立ち上がりタイミング）と、タイマカウンタレジスタ２４１のカウント値が一致すると、中央制御回路２６が、タイマ出力回路２６４の出力ポートＰ１をＨレベルとし、Ａ相のパルスを立ち上げる。このとき、割り込み処理により、中央制御回路２６は、タイマカウンタレジスタ２４１をクリアし、このパルス立ち上げ時から新たなタイマカウントが開始されるようにする。さらに、中央制御回路２６は、割り込み処理により、タイマ値セット用テーブル２３から次のタイマ値t2，タイマ値t3をピックアップし、当該パルスの立ち下げタイミングとして当該タイマ値t2+t3の時間（当該立ち上がり時から立ち下がり時までの時間）をコンペアレジスタ２４２に設定する。
【００２８】
そして、タイマカウンタレジスタ２４１のカウンタ値が、コンペアレジスタ２４２に設定されているタイマ値t2+t3の時間と一致した場合、中央制御回路２６が、タイマ出力回路２６４の出力ポートＰ１をＬレベルとし、Ａ相のパルスを立ち下げる。このとき、割り込み処理により、中央制御回路２６は、タイマカウンタレジスタ２４１をクリアし、このパルス立ち下げ時から新たなタイマカウントが開始されるようにする。さらに、中央制御回路２６は、割り込み処理により、タイマ値セット用テーブル２３から次のタイマ値t4，タイマ値t5をピックアップし、次のパルスの立ち上げタイミングとして当該タイマ値t4+t5の時間をコンペアレジスタ２４２に設定する。
【００２９】
タイマカウンタレジスタ２４１のカウンタ値が、コンペアレジスタ２４２に設定されているタイマ値t4+t5の時間をカウントすると、中央制御回路２６が、タイマ出力回路２６４の出力ポートＰ１をＨレベルとし、Ａ相のパルスを立ち上げる。以降、同様にして、中央制御回路２６が、次に並ぶタイマ値をタイマ値セット用テーブル２３からピックアップしてＡ相の立ち上げ又は立ち下げタイミングとして設定し、パルスの立ち上げ又は立ち下げ処理を行っていく。このとき、タイマ値は、t1＞t2＞t3＞t4＞t5＞…＞tnの関係なので、パルス幅は次第に狭まり、ステッピングモータ１の回転駆動速度は徐々に速まる。
【００３０】
コンペアレジスタ２４２に設定するタイマ値がtnになると、以降、中央制御回路２６は、Ａ相のパルスの立ち上げ又は立ち下げタイミングに用いるタイマ値をtn+tnの時間としておき、タイマ値をtn+tnとした後はタイマ値の書き換えを行わず、ステッピングモータ１の回転駆動速度を定速に保つ。以後、中央制御回路２６は、パルス立ち上げ又は立ち下げが行われても、コンペアレジスタ２４２に設定するタイマ値の変更は行わない。
【００３１】
Ｂ相のパルスについても、中央制御回路２６によって、上記と同様の制御が行われる。上述したように、Ｂ相のパルス発生周期は、中央制御回路２６によって、Ａ相のパルス発生周期よりも半周期程度遅れるように制御される。中央制御回路２６は、ステッピングモータ１の駆動開始のスローアップ時、割り込み処理により、Ｂ相のエッジ立ち上がりタイミングとしてタイマ値t1+t2からなる時間をコンペアレジスタ２５２に設定する。タイマカウンタレジスタ２５１が当該タイマ値をカウントすると、中央制御回路２６は、当該パルスを立ち上げ、割り込み処理により、タイマカウンタレジスタ２５１をクリアすると共に、当該パルスの立ち下げタイミングとしてタイマ値t3+t4の時間を設定する。以後、Ａ相の場合と同様に、ステッピングモータ１が定速で駆動されるまで、同様の処理を行う。
【００３２】
次に、マイコン２１によるステッピングモータ１の駆動制御時におけるパルス幅補正処理について説明する。図３はパルス幅補正処理を示すフローチャート、図４はパルス幅補正処理時におけるステッピングモータ１に入力される各相のパルス波形を示す図である。
【００３３】
中央制御回路２６は、ステッピングモータ１の駆動制御時に、Ｂ相におけるパルスを立ち上げるとき（Ｓ１でＹＥＳ）、当該パルスを実際に立ち上げたタイミングと、コンペアレジスタ２５２に設定されている理想的な立ち上げタイミングとの時間差を検出する（Ｓ２）。
【００３４】
例えば、上記Ｂ相のパルス立ち上げタイミングとしてコンペアレジスタ２５２に設定されていた時間が、図４に示すようにタイマ値t1+t2からなる時間だとすると、このタイマ値t2を、他方のＡ相用のタイマカウンタレジスタ２４１が当該時点でカウントしているカウント値から減算し、両者の時間差αを算出する。この場合、他方のＡ相は、半周期前に、先にパルス立ち上げを終えており、しかも、そのパルス立ち上げタイミングからは当該パルスの立ち下げタイミングをカウントするために、タイマ値t2+t3からなる時間の計測を始めている。また、Ｂ相のパルス立ち上げタイミングは、Ａ相のパルス立ち上げよりもt2経過した時が理想的なタイミングである。従って、Ｂ相のパルス立ち上げが中央制御回路２６によって実際に行われた時点における、Ａ相用のタイマカウンタレジスタ２４１のカウント値から、Ｂ相の理想的なパルス立ち上げタイミングを示すタイマ値t2を減算すれば、Ｂ相のパルス立ち上げが中央制御回路２６によって実際に行われたタイミングと、Ｂ相の理想的なパルス立ち上げタイミングとの時間差を算出することができる。
【００３５】
続いて、中央制御回路２６は、割り込み処理により、Ｂ相のパルスの立ち下げタイミングを示すタイマ値t3，t4をタイマ値セット用テーブル２３から読み出し、当該タイマ値t3+t4の時間から時間差α分だけ減算した時間を、当該パルスの立ち下げタイミングとして、コンペアレジスタ２５２に設定する（Ｓ３）。なお、結果的に、時間差αが発生していない場合は、Ｂ相のパルスの立ち下げタイミングを示すタイマ値t3+t4の時間は補正されないことになる。
【００３６】
上記Ｓ３で中央制御回路２６がコンペアレジスタ２５２に設定したタイマ値t3+t4-αがタイマカウンタレジスタ２５１によってカウントされ（Ｓ４でＹＥＳ）、パルスが立ち下げられたとき、中央制御回路２６は、割り込み処理により、コンペアレジスタ２５２に次のパルスの立ち上げタイミングを示すタイマ値t5+t6を設定し（Ｓ５）、当該設定されたタイマ値t5+t6をカウントするために、タイマカウンタレジスタ２５１をクリアする（Ｓ６）。この後、中央制御回路２６は、かかる補正処理を、Ａ相及びＢ相のいずれについても、パルスを立ち上げる度に行う。
【００３７】
なお、Ａ相のパルスを中央制御回路２６が実際に立ち上げたタイミングと、Ａ相のパルスを立ち上げる理想的なタイミングとの時間差も、Ａ相のパルスを中央制御回路２６が実際に立ち上げた時点における他方Ｂ相用のタイマカウンタレジスタ２５１のカウント値に基づき、上記と同様の処理を行うことで算出することができる。
【００３８】
以上の処理によれば、パルス波形の時間差（ずれ）を都度補正しながらステッピングモータ１を制御するので、パルス立ち上げタイミングの遅れ時間の累積により、ステッピングモータ１が脱調する事態を招くことを防止できる。例えば、図５に示すように、何らかの要因で、次回のパルス立ち上げタイミングのタイマ値設定が遅れ（当該タイマ値設定処理よりも割込優先順位の高い処理が入り込んだ場合等）、上記タイマ出力に基づく理想のタイミングで波形が形成できず、一度パルス波形にずれαが発生すると、モータを停止するまでズレは継続され、さらに次のパルス立ち上げタイミングのタイマ値設定が遅れてズレβが発生すると、これらのずれは累積され（ずれはα+βとなる）、結果としてモータが脱調する。しかし、本発明の一実施形態に係る上記処理では、時間差（ずれ）が発生したことを検出する度に、その時間差分パルス幅を狭めるので、時間差を蓄積させず、脱調を防止することができる。
【００３９】
なお、本発明は上記実施の形態の構成に限られず種々の変形が可能である。例えば、上記実施形態で図１乃至図５に示した構成、処理、パルス波形及びパルス形成制御は、単なる一例に過ぎず、図１乃至図５に示した内容に本発明を限定するものではない。
【図面の簡単な説明】
【００４０】
【図１】本発明の一実施形態に係る２相式ステッピングモータの制御装置の概要を示す図である。
【図２】ステッピングモータに入力される各相のパルス波形を示す図である。
【図３】パルス幅補正処理を示すフローチャートである。
【図４】パルス幅補正処理時におけるステッピングモータに入力される各相のパルス波形を示す図である。
【図５】パルス立ち上げタイミングにずれが発生し、ステッピングモータが脱調する場合のパルス波形を示す図である。
【符号の説明】
【００４１】
１          ステッピングモータ
２          モータ制御ユニット
２１        マイコン
２２        モータ駆動回路
２３        タイマ値セット用テーブル
２４        レジスタ
２４１      タイマカウンタレジスタ
２４２      コンペアレジスタ
２５        レジスタ
２５１      タイマカウンタレジスタ
２５２      コンペアレジスタ
２６        中央制御回路
２６４，２６５      タイマ出力回路
【図１】
2007097253.tif 000003
【図２】
2007097253.tif 000004
【図３】
2007097253.tif 000005
【図４】
2007097253.tif 000006
【図５】
2007097253.tif 000007