(57)【特許請求の範囲】
【請求項１】
ステッピングモータと、
このステッピングモータを可変速制御するための相励磁信号を生成するオートリロードタイマと、
このオートリロードタイマ動作用のタイマクロックを供給するクロック供給部と、
装置の動作を制御する制御部とを備え、
前記オートリロードタイマは、前記制御部によりセットされたタイマセット値に相当する数だけ前記タイマクロックをカウントしたとき相励磁信号を一回出力するように動作し、
前記制御部は、前記ステッピングモータを制御するための速度テーブルデータを順に読み出しながら制御を行い、
この速度テーブルデータは、
前記クロック供給部の出力するタイマクロックの周波数を選択するタイマクロック選択情報と、このタイマクロックの周波数選択後に、前記オートリロードタイマにセットするためのタイマセット値とを含むことを特徴とするステッピングモータの制御装置。
【請求項２】
ステッピングモータと、
このステッピングモータを可変速制御するための相励磁信号を生成するオートリロードタイマと、
装置の動作を制御する制御部とを備え、
前記オートリロードタイマは、前記制御部によりセットされたタイマセット値に相当する数だけ所定のタイマクロックをカウントしたとき相励磁信号を一回出力するように動作し、
前記制御部は、前記ステッピングモータを制御するための速度テーブルデータを順に読み出しながら制御を行い、
この速度テーブルデータは、
タイマセット値シフト情報と、要求されるビット数に満たないビット数で表現されたタイマセット値とを含み、
前記制御部は、速度テーブルデータから読み出したタイマセット値を、前記タイマセット値シフト情報に従って、上位側にシフトさせ、もしくは、上位側を無効な値で満たして、前記オートリロードタイマにセットするためのタイマセット値を得ることを特徴とするステッピングモータの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタ等のように装置の内部回転機構をステッピングモータを用いて精密に可変速制御するためのステッピングモータの制御装置に関する。
【０００２】
【従来の技術】
ステッピングモータは、相励磁用のパルスを供給し、その周波数を制御することによって精密に可変速制御できる。従って、各種の精密機器に広く使用されている。
例えば、プリンタの用紙を搬送する機構にもステッピングモータが使用される。プリンタの用紙は、給紙動作から始まり印字処理と排出処理の間、多数のローラによって搬送される。その効率的な印字を行うには、こうした用紙搬送をステッピングモータによって予め設定したプログラムに従って精密に可変速制御することが好ましい。このために、可変速制御の内容を具体的に表示した速度テーブルデータを用いる方法が開発されている（特開昭５６−０１７４８０号公報）。
【０００３】
【発明が解決しようとする課題】
ところで、電子機器の小型化や低コスト化を目的として、プリンタ等を単一のマイクロプロセッサで制御することが一般的になってきている。この場合に、内蔵するＲＡＭ（ランダム・アクセス・メモリ）の容量は、小型化やコストダウンのために厳しく制限される。しかしながら、複雑な可変速制御を行おうとすると制御すべき速度範囲が広がり、制御の分解能も高くなる。従って、その速度を指定するための速度テーブルデータのビット幅が大きくなり、メモリコスト増大の原因となっていた。
【０００４】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
【０００５】
〈構成１〉
ステッピングモータと、このステッピングモータを可変速制御するための相励磁信号を生成するオートリロードタイマと、このオートリロードタイマ動作用のタイマクロックを供給するクロック供給部と、装置の動作を制御する制御部とを備え、上記オートリロードタイマは、上記制御部によりセットされたタイマセット値に相当する数だけ上記タイマクロックをカウントしたとき相励磁信号を一回出力するように動作し、上記制御部は、上記ステッピングモータを制御するための速度テーブルデータを順に読み出しながら制御を行い、この速度テーブルデータは、上記クロック供給部の出力するタイマクロックの周波数を選択するタイマクロック選択情報と、このタイマクロックの周波数選択後に、上記オートリロードタイマにセットするためのタイマセット値とを含むことを特徴とするステッピングモータの制御装置。
【０００６】
〈構成２〉
ステッピングモータと、このステッピングモータを可変速制御するための相励磁信号を生成するオートリロードタイマと、装置の動作を制御する制御部とを備え、上記オートリロードタイマは、上記制御部によりセットされたタイマセット値に相当する数だけ所定のタイマクロックをカウントしたとき相励磁信号を一回出力するように動作し、上記制御部は、上記ステッピングモータを制御するための速度テーブルデータを順に読み出しながら制御を行い、この速度テーブルデータは、タイマセット値シフト情報と、要求されるビット数に満たないビット数で表現されたタイマセット値とを含み、上記制御部は、速度テーブルデータから読み出したタイマセット値を、上記タイマセット値シフト情報に従って、上位側にシフトさせ、もしくは、上位側を無効な値で満たして、上記オートリロードタイマにセットするためのタイマセット値を得ることを特徴とするステッピングモータの制御装置。
【０００８】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例１〉
図１は、本発明の具体例１によるステッピングモータの制御装置ブロック図である。
本発明はステッピングモータを可変速制御する場合に広く利用される。ここでは、その制御対象として、プリンタの用紙搬送機構への適用例を紹介する。この図に示す装置は、プリンタのステッピングモータ制御部分を示している。図の装置は、制御部（ＣＰＵ）１によって制御される。制御部１には、ＲＯＭ（リード・オンリ・メモリ）２、ＲＡＭ（ランダム・アクセス・メモリ）３、ステッピングモータ制御回路４、オートリロードタイマ（ＴＭ）５及びＩ／Ｏポート／ドライバ６とクロック供給部（ＳＵＢ  ＴＭ）７とが、バスライン９を介して接続されている。
【０００９】
制御部１は、プリンタ全体の動作を制御するための中央処理装置である。ＲＯＭ２には、制御部１の動作用プログラムが格納されている。また、ＲＡＭ３には、その動作用パラメータが格納され、ここにこの発明で使用される速度テーブルデータ２０が格納される。ステッピングモータ制御回路４は、ステッピングモータ１６に対し動作制御用の相励磁信号を供給する回路である。このステッピングモータ１６の速度制御のために、オートリロードタイマ５から相励磁切替信号ＴＯが供給される。Ｉ／Ｏポート／ドライバ６には、プリンタのインタフェース１２、印字ヘッド１３、高圧電源１４あるいはセンサ１５等が接続されている。オートリロードタイマ５とクロック供給部７とは、この具体例では全く同一の回路構成とする。なお、クロック供給部７には、クロック発生部１１から基準クロックＣＬＫが入力し、クロック供給部７はこの信号にタイミングを合わせて動作する。また、オートリロードタイマ５は、クロック供給部７から出力されるタイマクロックＭＣＬＫにタイミングを合わせて動作する。オートリロードタイマ５の出力する相励磁切替信号ＴＯはステッピングモータ制御回路４に出力される他、制御部１に対し割込信号として出力されるよう構成されている。
【００１０】
図２には、オートリロードタイマの結線図を示す。
このオートリロードタイマ５には、レジスタ５１、フリップフロップ（ＦＦ）５２、カウンタ５３、アンドゲート５４，５５，５７及びオアゲート５６が設けられている。このオートリロードタイマ５は、レジスタ５１にセットされたタイマセット値により指定された周期で相励磁切替信号ＴＯを出力し、レジスタ５１へセットするタイマセット値を切り換える度に、相励磁切替信号ＴＯの周期を変化させながら出力するように構成されている。
【００１１】
レジスタ５１に入力するデータＤがタイマセット値であり、制御部１から出力されるセットパルスＰＳによってセットされる。また、制御部１からスタートパルスＰＴが入力すると、これでフリップフロップ５２がセットされる。スタートパルスＰＴは、オアゲート５６を通ってロードパルスＰＬとなり、カウンタ５３に入力する。これによって、カウンタ５３はレジスタ５１に格納されたタイマセット値をロードする。これがカウンタ５３の初期値となって、その後カウンタ５３はタイマクロックＭＣＬＫが入力する度に減算カウントを行い、タイマセット値の値だけカウントをすると、ボロー（ＰＢ）を出力する。このボロー（ＰＢ）が相励磁切替信号ＴＯとなる。
【００１２】
フリップフロップ５２にスタートパルスがセットされると、その出力はアンドゲート５４を開放し、タイマクロックＭＣＬＫをカウンタ５３に供給する。これによって、カウンタ５３はデクリメント動作を行う。アンドゲート５７はカウンタ５３の出力するボロー（ＰＢ）の出力タイミングをタイマクロックＭＣＬＫと同期させるためのものである。更に、アンドゲート５７の出力はアンドゲート５５とオアゲート５６を介してロードパルスＰＬとなってカウンタ５３に入力する。従って、カウンタ５３はタイマセット値だけカウントダウンして相励磁信号ＴＯを出力すると、再びロードパルスＰＬによって自動的にレジスタ５１に格納されたタイマセット値をロードする。
【００１３】
レジスタ５１に格納されたタイマセット値が一定であれば、タイマセット値で示された一定の周期で相励磁切替信号ＴＯが出力される。一方、カウンタ５３がカウントダウンする前に、レジスタ５１に新たなタイマセット値がセットされると、カウンタ５３は次のカウントダウンのタイミングで新たなタイマセット値をロードし、そのカウントを行う。従って、その後は別の周期で相励磁切替信号ＴＯが出力されることになる。
【００１４】
フリップフロップ５２をスタートパルスでセットするのは、アンドゲート５４を開放してカウンタ５３を始動させるとともに、オートリロードタイマ５が相励磁切替信号ＴＯを周期的に出力する動作中にアンドゲート５５を開放し、アンドゲート５７の出力をオアゲート５６を介してロードパルスＰＬとさせるためである。一方、オートリロードタイマ５の動作を終了させるには、制御部１がストップパルスＰＥでフリップフロップ５２をリセットする。その出力によってアンドゲート５４，５５が閉じられ、タイマクロックＭＣＬＫのカウンタ５３への入力が停止し、カウンタ５３はカウントを停止する。
【００１５】
図１に示したオートリロードタイマＴＭ５は、このようにしてレジスタ５１に格納された任意のタイマセット値に従って、任意の周期の相励磁切替信号ＴＯを出力する。一方、図１に示したクロック供給部７は、図２に示したものと同一の回路構成をしており、予め用意されたいくつかの種類のクロック周波数を選択するためのタイマクロック選択情報をレジスタ５１にセットし、その周波数でタイマクロックＭＣＬＫを出力するよう構成されている。この場合、クロック供給部７のカウンタ５３は、図１に示した基準クロックＣＬＫをアンドゲート５４から受け入れてカウントしながら動作する。その他の動作はオートリロードタイマ５と全く同様である。
【００１６】
図３に、プリンタ用ステッピングモータ制御例説明図を示す。
プリンタの用紙搬送用ステッピングモータは、例えばこの図に示すような複雑な可変速制御が要求される。
図の（ａ）は、横軸に時間、縦軸に速度を示したグラフで、時刻ｔ１で速度が“０”から給紙を開始し、時刻ｔ２まで数段階で加速制御される。そして、時刻ｔ２から時刻ｔ５まで一定の速度で搬送され、時刻ｔ５から時刻ｔ６まで減速制御されて用紙が排出される。（ｂ）には、排紙センサの出力信号を示し、時刻ｔ３から時刻ｔ４の間用紙を検出しており、時刻ｔ４で用紙が通過したことを検出してオフとなる。
【００１７】
（ｃ）は、タイマ割込許可信号で、図１に示したオートリロードタイマ５が出力する相励磁切替信号ＴＯを制御部１に入力した場合に、制御部１がこれを割込信号として受け入れるかどうかを示す状態信号である。オンのときは割込みを受け付ける状態で、オフのときは割込みを受け付けない。時刻ｔ１から時刻ｔ２までと、時刻ｔ４から時刻ｔ６までの間、割込みが受け付けられる。即ち、この割込みは、可変速制御を実行する場合に、制御部１がオートリロードタイマＴＭのレジスタ５１にタイマセット値を書き込むタイミングを制御するためのものである。従って、図３に示すように、可変速制御が行われる時刻ｔ１からｔ２と、時刻ｔ４からｔ６の間にのみ割込みが受け付けられる。
【００１８】
図４には、具体例１の速度テーブルデータ説明図を示す。
上記タイマクロック発生部の出力するタイマクロック周波数を指定するためのタイマクロック選択情報や、オートリロードタイマが出力する相励磁切替信号の出力タイミングを指定するためのタイマセット値は、例えばこの図に示すような速度テーブルに可変速制御順に格納される。
【００１９】
図において、左端には可変速制御の実行順序が No.１〜 No.９…というように表示されている。各データは、８ビットで構成される。速度テーブルデータには、タイマクロック選択コマンドとタイマセットコマンドとが含められる。タイマクロック選択コマンドは、上位２ビットがコマンド識別部２１とされ、下位６ビットがコマンドデータ部２２とされる。コマンドデータ部２２にタイマクロック選択情報Ｘj が格納されている。タイマセットコマンドは上位１ビットがコマンド識別部２１とされ、下位７ビットがコマンドデータ部２２とされる。コマンドデータ部２２にはタイマセット値ＡＮi が格納される。
【００２０】
タイマクロック選択コマンドは、クロック供給部７の制御に使用される。オートリロードタイマＴＭの動作開始の際あるいは動作中に、オートリロードタイマＴＭに供給するタイマクロックＭＣＬＫの周波数を切り替えるためのものである。これは所定のタイミングで速度テーブルデータ中に含められる。従って、例えば No.１のタイマクロック選択コマンドによって、一旦タイマクロック周波数が指定されると、その後に続くタイマセットコマンドは、このタイマクロックで動作する。そして、その後、新たなタイマクロック選択コマンドが No.６で出現すると、その後は、こうして選択された新たなタイマクロックで動作する。
【００２１】
従って、同一のタイマセット値であっても、タイマクロック周波数が低ければ、長い時間的周期で相励磁切替信号を出力することになり、タイマクロック周波数が高ければ短い時間的周期で相励磁切替信号を出力することになる。高い周波数のタイマクロックであれば、高い分解能で速度制御ができ、低い周波数のタイマクロックであれば、十分に長い周期で相励磁切替信号を出力することが可能になる。
【００２２】
〈動作〉
以下、フローチャートを用いて上記の装置の具体的な動作を説明する。
図５は、タイマ起動処理動作フローチャートである。
まず、ステッピングモータ制御用タイマ起動処理プログラムがスタートし、ＣＰＵ１はステップＳ１で速度テーブルデータの読出しポインタを初期設定し、ステップＳ２で速度テーブルデータ No.１を読み出して、ステップＳ３でタイマクロック選択情報を所定のビット長のタイマセット値に、例えば以下の規則で変換する。タイマクロック選択情報をＸj （０≦Ｘj ≦９）、クロック供給部（ＳＵＢ  ＴＭ）７のタイマセット値をＹj として、変換式Ｙj ＝２Xj−１を用いた場合、Ｙj ＝０，１，３，７，１５，３１，６３，１２７，２５５，５１１、即ち９ビットの２進数に変換する。ＣＰＵ１はステップＳ４でクロック供給部（ＳＵＢ  ＴＭ）７に上記タイマセット値Ｙj をセットし、クロック供給部（ＳＵＢ  ＴＭ）７をスタートすると、クロック供給部（ＳＵＢ  ＴＭ）７はタイマクロック７ａ（クロック周期はｔclk ）によりダウンカウントを開始して所定周期のタイマクロックＭＣＬＫを出力する。上記Ｘj に対応させると２Xj×ｔclk 周期のクロックとなる。
【００２３】
次にＣＰＵ１は、ステップＳ５で速度テーブルデータ No.２を読み出して、ステップＳ６でタイマセット値ＡＮi をオートリロードタイマ（ＴＭ）５にセットし、オートリロードタイマ（ＴＭ）５をスタートする。オートリロードタイマ（ＴＭ）５はクロック供給部（ＳＵＢ  ＴＭ）７のタイマクロックＭＣＬＫ（クロック周期は２Xj×ｔclk ）によりダウンカウントを開始して、ＡＮi ×｛２Xj×ｔclk ｝の時間経過後に、ステッピングモータ制御回路４に相励磁切替信号ＴＯを出力すると共にＣＰＵ１に割込信号を出力する。
【００２４】
なお、ＣＰＵ１はオートリロードタイマ（ＴＭ）５のタイマ出力割込発生前に、ステップＳ７で次の速度テーブルデータ No.３を読み出して、ステップＳ８でタイマセットコマンドと判定し、ステップＳ９でタイマセット値ＡＮi+1 をオートリロードタイマ（ＴＭ）５にセットして、ステップＳ１０でタイマ割込許可フラグをオンにして次処理へ進み、タイマ割込の発生を待つ。ＣＰＵ１は上記ステップＳ８でコマンド判定がタイマクロック選択コマンドならばステップＳ１１でタイマクロック選択待フラグをオンにして次処理へ進み、タイマ割込の発生を待つ。
【００２５】
図６は、タイマ割込処理動作フローチャートである。
タイマ割込が発生するとステッピングモータ制御用タイマ割込処理プログラムがスタートし、ＣＰＵ１はステップＳ１２で速度モード判定を行い、加減速モードならステップＳ１３に進み、タイマクロック選択待フラグの判定を行い、オフなのでステップＳ１４に進む。ＣＰＵ１はステップＳ１４で速度テーブル読出しポインタを更新して、ステップＳ１５及びステップＳ１６で加減速テーブルの読出し終了判定を行い、加減速中なのでステップＳ１７に進む。ＣＰＵ１はステップＳ１８で次の速度テーブルデータ No.４を読み出して、ステップＳ１８でタイマセットコマンドと判定し、ステップＳ１９でタイマセット値ＡＮi+2 をオートリロードタイマ（ＴＭ）５にセットして次処理へ進み、タイマ割込の発生を待つ。
【００２６】
次に、速度テーブルデータ No.５が上記と同様に処理された後、ＣＰＵはステップＳ１７で次の速度テーブルデータ No.６を読み出して、ステップＳ１８でタイマクロック選択コマンドと判定し、ステップＳ２０に進み、タイマクロック選択待フラグをオンにして次処理に進み、タイマ割込の発生を待つ。
次にタイマ割込が発生すると、ＣＰＵ１はステップＳ１３でタイマクロック選択待フラグオンと判定し、タイマクロックを選択する処理に進む。
【００２７】
図７は、クロック選択処理動作フローチャートである。
クロック選択処理では、クロック供給部（ＳＵＢ  ＴＭ）７とオートリロードタイマ（ＴＭ）５をストップし（ステップＳ２１）、ステップＳ２２で再び速度テーブルデータ No.６を読み出して、ステップＳ２３でステップＳ３と同様にタイマクロック選択情報Ｘj+1 をタイマセット値Ｙj+1 に変換する。ステップＳ２４でクロック供給部（ＳＵＢ  ＴＭ）７にタイマセット値Ｙj+1 をセットし、クロック供給部（ＳＵＢ  ＴＭ）７を再スタートし、ステップＳ２５で次の速度テーブルデータ No.７を読み出して、ステップＳ２６でタイマセット値ＡＮi+4 をオートリロードタイマ（ＴＭ）５にセットし、オートリロードタイマ（ＴＭ）５を再スタートする。
次にＣＰＵ１はタイマ割込処理のステップＳ１４に進み、ステップＳ１４〜ステップＳ１９まで前述のように処理して次処理に進み、タイマ割込の発生を待つ。
【００２８】
上記したように、タイマ割込の発生毎にＣＰＵ１は速度テーブルデータを順次読み出してコマンド判定し、タイマクロック選択タイマ値Ｙj をクロック供給部（ＳＵＢ  ＴＭ）７にセットまたはタイマセット値ＡＮi をオートリロードタイマ（ＴＭ）５にセットし、タイマ出力を得ることによりステッピングモータの相励磁切替信号を得て加速モードの速度を制御する。
なお、加速が終了して加速テーブルエンドに達すると、ＣＰＵ１はステップＳ１５の判定でステップＳ２７に進み、タイマ割込許可フラグをオフにして、モータの速度制御処理を減速が必要となるまで中断し、定速モードに入る。定速モードでは加速モードの最後にセットされたタイマセット値による同じ周期のタイマ出力で相励磁切替される。
【００２９】
図８は、センサ割込処理動作フローチャートである。
ＣＰＵ１は排紙センサの出力信号が変化するタイミングでセンサ割込が発生するとセンサ割込処理プログラムがスタートする。ステップＳ２８で印刷ジョブの最後の用紙の後端が排紙センサを通過したタイミングを検出すると、ステップＳ２９で定速処理フラグオン及びタイマ割込許可フラグをオンにして次処理へ進みタイマ割込の発生を待つ。
【００３０】
次にタイマ割込が発生すると、ＣＰＵ１は図６のステップＳ１２で定速処理フラグオンを判定しステップＳ３０に進み、ポジションカウンタを更新し、ステップＳ３２で所定のパルス数回転して減速ポイントに達したかどうかを判定し、減速ポイントに達していなければそのまま次処理へ進み、タイマ割込発生毎に減速ポイントに達するまでステップＳ１２、ステップＳ３０、ステップＳ３１を繰り返す。減速ポイントに達すると、ＣＰＵ１はステップＳ３１からステップＳ３２に進み、定速処理フラグをオフにして減速モードに入り、次処理へ進みタイマ割込を待つ。
【００３１】
次にタイマ割込が発生すると、ＣＰＵ１はステップＳ１６で減速テーブルエンドと判定するまで、加速モードと同様に速度テーブルデータを順次読み出してコマンド判定し、タイマクロック選択タイマ値Ｙj をクロック供給部（ＳＵＢ  ＴＭ）７にセットまたはタイマセット値ＡＮi をオートリロードタイマ（ＴＭ）５にセットし、タイマ出力を得ることによりステッピングモータの相励磁切替信号を得て減速モードの速度を制御する。
減速が終了して減速テーブルエンドに達すると、ＣＰＵ１はステップＳ１６の判定でステップＳ３３に進み、クロック供給部（ＳＵＢ  ＴＭ）７とオートリロードタイマ（ＴＭ）５をストップし、またタイマ割込許可フラグをオフして次処理へ進む。
【００３２】
図１の速度テーブルデータのビット数は８ビットであり、従来例の半分であるが、タイマの最大相切替時間及び分解能は以下のように従来と同等となっている。
ｔmax ＝ＡＮimax×（２Xjmax ×ｔclk ）＝２7 ×２9 ×ｔclk ≒２16×３μsec ≒２００msec
Ｘj ＝０のときのタイマカウント範囲は、
（１〜２7 ）×ｔclk ≒３μsec〜３８４μsec
但し、クロック供給部（ＳＵＢ  ＴＭ）７のタイマクロックＭＣＬＫの周波数は従来と同様約３００ＫＨｚ（クロック周期約３μsec ）である。
【００３３】
〈具体例１の効果〉
具体例１によれば、制御部が速度テーブルデータを可変速制御順に参照して、タイマクロック選択情報が表示されているときは、タイマクロック発生部にそのタイマクロック選択情報をセットし、タイマセット値が表示されているときはそのタイマセット値をオートリロードタイマにセットして、必要に応じてタイマクロック周波数を切り替えながらステッピングモータを制御するので、全ての速度範囲についてタイマセット値を設定し、これを速度テーブルデータに含めるよりも少ないビット数で同等の分解能の制御ができる。即ち、高い周波数のタイマクロックによって高分解能の制御を行い、低い周波数のタイマクロックによって長い周期の相励磁信号を出力できる。従って、速度テーブルデータを格納するためのメモリを小容量にすることができ、装置のコストダウンを図ることができる。
【００３４】
〈具体例２〉
図９には、具体例２のステッピングモータの制御装置ブロック図を示す。
この装置は、図１に示す装置のクロック供給部７を除外している。即ち、オートリロードタイマ（ＴＭ）５は、一定の周波数のタイマクロックＣＬＫを受け入れて動作する構成となっている。この具体例の場合、速度テーブルデータ２５の内容によって、具体例１と同様に少ないビット数のデータで広範囲の制御を行うようにしている。
【００３５】
図１０には、具体例２の速度テーブルデータ説明図を示す。
この速度テーブルデータ２５も図の左側に示すように、可変速制御の実行順にコマンドが配列されたものである。その実行順序は No.１〜 No.９…というように表示した。この具体例における速度テーブルデータはタイマセット値シフトコマンドとタイマセットコマンドを組み合わせて構成される。タイマセット値シフトコマンドは上位２ビットがコマンド識別部２６、下位６ビットがコマンドデータ部２７から構成される。また、タイマセットコマンドは具体例１のものと全く同一の構成で、上位１ビットがコマンド識別部、下位７ビットがコマンドデータ部から構成される。タイマセット値シフトコマンドのコマンドデータ部２７には、タイマセット値シフト情報Ｘj が格納される。具体例１では、タイマのクロック周期を変化させて、高分解能の制御と長周期の相励磁切替信号出力制御を実現した。一方、この具体例２では、タイマセット値のビット数を十分少ない状態にして、その２進数を上位方向にシフトさせて長周期の相励磁信号出力を実現する。上位ビットは変化するが下位ビットは全て“０”で補完する。高分解能の制御は上位ビットに“０”を補完してタイマセット値を下位ビットとしてそのまま使用する。このようにしても、具体例１と同様の効果を得る。
【００３６】
〈動作〉
次に、この装置の動作をフローチャートを用いて説明する。
図１１は、タイマ起動処理フローチャートである。
ステッピングモータ制御用タイマ起動処理プログラムがスタートし、ＣＰＵ１はステップＳ１で速度テーブル読出しポインタを初期設定し、ステップＳ２で速度テーブルデータ No.１を読み出して、ステップＳ３でタイマセット値シフト情報Ｘj をレジスタＳＦに記憶する。次に、ＣＰＵ１はステップＳ４で速度テーブルデータ No.２を読み出して、ステップＳ５でタイマセット値ＡＮi をレジスタＳＦの情報Ｘj に従って左シフト即ち２Xj倍してオートリロードタイマ（ＴＭ）５にセットし、オートリロードタイマ（ＴＭ）５をスタートする。オートリロードタイマ（ＴＭ）５はタイマクロック５ａ（クロック周期はｔclk）によりダウンカウントを開始して｛ＡＮi ×２Xj｝×ｔclkの時間経過後にタイマ出力を発生しステッピングモータ制御回路４に相励磁切替信号ＴＯを出力すると共にＣＰＵ１に割込信号を出力する。
【００３７】
なお、ＣＰＵ１はオートリロードタイマ（ＴＭ）５のタイマ出力割込発生前に、ステップＳ６で次の速度テーブルデータ No.３を読み出して、ステップＳ７でタイマセットコマンドと判定し、ステップＳ８でタイマセット値ＡＮi+1 をレジスタＳＦの情報Ｘj に従って左シフト即ち２Xj倍してオートリロードタイマ（ＴＭ）５にセットして、ステップＳ９でタイマ割込許可フラグをオンにして次処理へ進み、タイマ割込の発生を待つ。ＣＰＵ１は、上記ステップＳ７でコマンド判定がタイマセット値シフトコマンドならばステップＳ１０でタイマセット値シフト情報をレジスタＳＦに記憶し、再びステップＳ６へ進み、ステップＳ６〜ステップＳ９まで前述のように処理して次処理に進み、タイマ割込の発生を待つ。
【００３８】
図１２は、タイマ割込処理フローチャートである。
次に、タイマ割込が発生するとステッピングモータ制御用タイマ割込処理プログラムがスタートし、ＣＰＵ１はステップＳ１１で、速度モード判定を行い、加減速モードならステップＳ１２に進み、速度テーブル読出しポインタを更新して、ステップＳ１３及びステップＳ１４で加減速テーブルの読出し終了判定を行い、加減速中なのでステップＳ１５に進む。ＣＰＵ１はステップＳ１５で次の速度テーブルデータ No.４を読み出して、ステップＳ１６でタイマセットコマンドと判定し、ステップＳ１７でタイマセット値ＡＮi+2 をレジスタＳＦの情報Ｘi に従って左シフト即ち２Xj倍してオートリロードタイマ（ＴＭ）５にセットして次処理へ進み、タイマ割込の発生を待つ。
【００３９】
次に、速度テーブルデータ No.５が上記と同様に処理された後、ＣＰＵ１はステップＳ１５で次の速度テーブルデータ No.６を読み出して、ステップＳ１６でタイマセット値シフトコマンドと判定しステップＳ１８に進み、タイマセット値シフト情報Ｘj+1 をレジスタＳＦに記憶し、ステップＳ１９で速度テーブル読出しポインタを更新し、再びステップＳ１５へ進みステップＳ１５〜ステップＳ１７まで前述のように処理して次処理に進み、タイマ割込の発生を待つ。
【００４０】
上記したように、タイマ割込の発生毎に、ＣＰＵ１は速度テーブルデータを順次読み出してコマンド判定し、タイマセット値シフト情報Ｘj をレジスタＳＦに記憶または／およびタイマセット値ＡＮi をレジスタＳＦの情報Ｘj に従って左シフト即ち２Xj倍してオートリロードタイマ（ＴＭ）５にセットし、タイマ出力を得ることによりステッピングモータの相励磁切替信号ＴＯを得て加速モードの速度を制御する。
【００４１】
なお、加速が終了して加速テーブルエンドに達すると、ＣＰＵ１はステップＳ１３の判定でステップＳ２０に進み、タイマ割込許可フラグをオフにして、モータの速度制御処理を減速が必要となるまで中断し、定速モードに入る。定速モードでは加速モードの最後にセットされたタイマセット値による同じ周期のタイマ出力５ｂで相励磁切替される。
【００４２】
図１３は、センサ割込処理フローチャートである。
ＣＰＵ１は排紙センサの変化でセンサ割込が発生するとセンサ割込処理プログラムがスタートし、ステップＳ２１で印刷ジョブの最後の用紙の後端が排紙センサを通過したタイミングを検出すると、ステップＳ２２で定速処理フラグオン及びタイマ割込許可フラグをオンにして次処理へ進みタイマ割込の発生を待つ。
【００４３】
次にタイマ割込が発生すると、ＣＰＵ１はステップＳ１１で定速処理フラグオンを判定しステップＳ２３に進み、ポジションカウンタを更新しステップＳ２４で所定のパルス数回転して減速ポイントに達したかどうかを判定し、減速ポイントに達していなければそのまま次処理へ進み、タイマ割込発生毎に減速ポイントに達するまでステップＳ１１、ステップＳ２３、ステップＳ２４を繰り返す。減速ポイントに達すると、ＣＰＵ１はステップＳ２４からステップＳ２５に進み、定速処理フラグをオフにして減速モードに入り、次処理へ進みタイマ割込を待つ。
【００４４】
次にタイマ割込が発生すると、ＣＰＵ１はステップＳ１４で減速テーブルエンドと判定するまで、加速モードと同様に速度テーブルデータを順次読み出してコマンド判定し、タイマセット値シフト情報Ｘj をレジスタＳＦに記憶または／およびタイマセット値ＡＮi をレジスタＳＦの情報Ｘj に従って左シフト即ち２Xj倍してオートリロードタイマ（ＴＭ）５にセットし、タイマ出力を得ることによりステッピングモータの相励磁切替信号ＴＯを得て減速モードの速度を制御する。
減速が終了して減速テーブルエンドに達すると、ＣＰＵ１はステップＳ１４の判定でステップＳ２６に進み、オートリロードタイマ（ＴＭ）５をストップし、またタイマ割込許可フラグをオフして次処理へ進む。
【００４５】
図１０の速度テーブルデータのビット数は８ビットであり、従来例の半分であるが、タイマの最大相切替時間及び分解能は以下のように従来と同等となっている。
ｔmax ＝ＡＮimax×（２Xjmax ×ｔclk ）＝２7 ×２9 ×ｔclk ≒２16×３μsec ≒２００msec
Ｘj ＝０のときのタイマカウント範囲は、
（１〜２7 ）×ｔclk ≒３μsec〜３８４μsec
但し、クロック供給部（ＳＵＢ  ＴＭ）７のタイマクロック７ａの周波数は従来と同様約３００ＫＨｚ（クロック周期約３μsec ）である。
【００４６】
〈具体例２の効果〉
以上のように、具体例２の装置によれば、速度テーブルデータにタイマセット値シフト情報と要求されるビット数に満たないビット数で表現されたタイマセット値を含めることによって、タイマセット値を上位側に桁シフトさせて下位側を“０”で満たした場合には長周期の相励磁信号を出力でき、タイマセット値の上位側を無効な値“０”で満たした場合には高分解能で制御ができる。これによって、速度テーブルデータのタイマセット値のビット数を十分に少なくしても高機能のステッピングモータ制御ができる。従って、速度テーブルデータを格納するためのメモリの容量を削減し、装置のコストダウンを図ることができる。
【００４７】
〈具体例３〉
図１４には、具体例３のステッピングモータの制御装置ブロック図を示す。
ここに示す制御部１やＲＯＭ２、ＲＡＭ３、ステッピングモータ制御回路４等の構成は、図９を用いて説明したものと同様である。ここで、この具体例では、オートリロードタイマ（ＴＭ）５に加えて、繰り返しタイマＳＵＢＣＴ２７が設けられている。この繰り返しタイマ２７は、オートリロードタイマ５から出力される相励磁切替信号ＴＯを受け入れ、くり返し処理を制御する機能を持つ。
【００４８】
上記の具体例１や２では、オートリロードタイマの動作や速度テーブルデータの内容を工夫することによって、必要な部分に分解能の高い制御を行いつつ、速度テーブルデータ全体のデータ量を削減するようにした。従って、具体例１や具体例２は、可変速制御を行う部分において効果的に利用される。
【００４９】
ここで、図３に示したプリンタ用ステッピングモータ制御例説明図を再び参照する。この図の時刻ｔ１からｔ２までは加速制御を行う部分である。ところが、この中に一時的に定速制御を行う部分がある。この部分においてもこれまでの例では速度テーブルデータを一定の周期で読み取り、オートリロードタイマへの周期的なデータセットが必要となる。従って、一定の速度で駆動していても相当量のデータが必要となる。この具体例３では、こうした定速制御が一部に含まれるような場合に、データ量を削減するようにしている。このデータ量削減のために繰り返しタイマ２７が設けられる。
【００５０】
図１５には、繰り返しタイマの結線図を示す。
この繰り返しタイマ２７には、レジスタ６１、フリップフロップ６２、カウンタ６３、アンドゲート６４が設けられている。レジスタ６１には、図１４に示す制御部１が速度テーブルデータ２５を読み取って得たタイマセット値がセットされる。フリップフロップ６２は、図１４に示す制御部１から出力される繰り返しスタートパルスＰＴによりセットされる。また、カウンタ６３がカウントダウンして出力するボロー信号６３Ａを、繰り返しストップパルスＰＥとして受け入れて、リセットされる。
【００５１】
カウンタ６３はレジスタ６１の出力を受け入れて、これを繰り返しスタートパルスＰＴが入力するタイミングでロードし、その後、アンドゲート６４の出力で減算カウントを行うカウンタである。アンドゲート６４にはオートリロードタイマ５から出力される相励磁切替信号ＴＯが入力する。これをカウンタ６３がカウントし、最初にロードされたデータをデクリメントする。アンドゲート６４は、繰り返しスタートパルスＰＴがフリップフロップ６２にセットされているときにのみ相励磁切替信号ＴＯをカウンタ６３に供給するためのものである。
【００５２】
こうして、繰り返しタイマ２７が相励磁切替信号との出力回数をカウントし、繰り返し回数分をカウントしている間、図１０を用いて説明した速度テーブルデータのアドレスポインタが一定の位置に保持される。そして、カウンタ６３がカウントダウンすると、ボロー信号によりフリップフロップ６２がリセットされて、繰り返しタイマ２７の動作が停止するとともに、速度テーブルデータのアドレスポインタが次に進められる。
【００５３】
図１６には、こうした具体例３に使用される速度テーブルデータの説明図を示す。
このデータは、これまで説明してきた速度テーブルと同様のタイマセットコマンドの中に、繰り返しコマンドが含められたものである。この繰り返しコマンドはタイマ値繰り返しステップ数の情報を含む。そして、そのすぐ後に続くタイマセット値がこの繰り返しの対象となる速度である。
【００５４】
従って、この図の例では実行順序が No.１〜 No.４まで加速制御が行われ、 No.５と No.６でタイマ値繰り返しステップ数に相当する時間定速制御が行われ、実行順序 No.７から再び加速制御が行われる。
【００５５】
図１７と図１８を用いて、装置の具体的な動作を説明する。
図１７は、具体例３の装置の動作フローチャート（その１）、図１８は、同じく（その２）である。
まず、図１７のステップＳ１において、ステッピングモータ制御用タイマ自動処理プログラムがスタートし、制御部１が図１６に示したような速度テーブルデータの読出しポインタを初期設定する。次に、ステップＳ２で、そのポインタが示す速度テーブルデータを読み出す。次に、ステップＳ３では、そのデータがタイマセットコマンドか繰り返しコマンドかの判断をする。タイマセットコマンドであればステップＳ４に進む。繰り返しコマンドであればステップＳ５に進む。タイマセットコマンドであればそのタイマセット値をオートリロードタイマ（ＴＭ）５にセットする。
【００５６】
一方、繰り返しコマンドであれば、繰り返しタイマ（ＳＵＢＣＴ）２７にタイマ値繰り返しステップ数をセットする。次に、ステップＳ６では、速度テーブルデータの読出しポインタを１つ更新し、繰り返しコマンドの次に続くタイマセットコマンドを読み出す。そして、ステップＳ７でオートリロードタイマ（ＴＭ）５にそのタイマセット値をセットする。ステップＳ４あるいはステップＳ５〜Ｓ７のいずれの処理を実行した後にもステップＳ８に進み、オートリロードタイマ（ＴＭ）５をスタートさせる。
【００５７】
次に、ステップＳ９では、速度テーブル読出しポインタを“１”だけ更新する。更に、ステップＳ１０で、更新した速度テーブル読出しポインタがテーブル最後のポインタであるかどうかを判断する（ステップＳ１０）。最後のテーブル読出しポインタであれば、オートリロードタイマ（ＴＭ）５がカウントを終了後にモータは停止し、プリンタは次の処理に移る。速度テーブル読出しポインタが最後のポインタでなければ加減速制御が継続される。この処理の続きが図１８に示されている。
【００５８】
ステップＳ１１では、速度テーブルデータの読出しポインタが示している位置のデータを読出し、ステップＳ１２ではこれがタイマセットコマンドかどうかを判断する。ステップＳ１３では、タイマセットコマンドの場合にオートリロードタイマ（ＴＭ）５にタイマ値をセットする。また、タイマセットコマンドでなければ繰り返しコマンドであるから、ステップＳ１４，Ｓ１５，Ｓ１６の処理を実行する。これは、ステップＳ５，Ｓ６，Ｓ７に示した処理と同一である。そして、ステップＳ７で、速度テーブル読出しポインタを更新し、ステップＳ１８でそのポインタが速度テーブルデータの最後を示すポインタかどうかを判断する。最後を示したものでなければ再びステップＳ１１に戻る。こうして、ステップＳ１１〜Ｓ１８の処理を繰り返し、ステッピングモータの加減速制御が実行される。
【００５９】
図１９には、速度テーブル読出しポインタ更新処理説明図を示す。
この図により、図１７と図１８に示したステップＳ９及びステップＳ１７の速度テーブル読出しポインタ更新処理について説明する。
通常の処理の場合には、図１６に示すように、タイマセットコマンドが順番に読み出され、１つのタイマセットコマンドを実行する毎に速度テーブル読出しポインタが更新されて、次のタイマセットコマンドが読み出される。こうして、タイマセット値が次々に更新され、オートリロードタイマが動作する。一方、繰り返しコマンドにより図１５に示す繰り返しタイマが動作を開始すると、ここに示されたタイマ値繰り返しステップ数だけ同一のタイマセット値をそのまま使用する。即ち、速度テーブルの更新をしない。従って、図１７の場合も図１８の場合も、速度テーブル読出しポインタ更新処理（ステップＳ９，Ｓ１７）では、この図１９に示すような判断が行われる。
【００６０】
即ち、まずステップＳ１９において、繰り返しタイマが動作中かどうかを判断する。動作中でなければ通常のタイマセットコマンドであるから、ステップＳ２０において、速度テーブル読出しポインタを更新する。一方、繰り返しタイマが動作中であれば速度テーブル読出しポインタはそのままにして処理を元に戻す。
【００６１】
〈具体例３の効果〉
以上のように、繰り返しコマンドを速度テーブルデータ中に含めることによって、１つのタイマセットコマンドを用いて一定速度を連続的に維持することが可能になる。従って、速度テーブルデータのデータ量を減少させ、メモリコストの削減が可能になる。
【図面の簡単な説明】
【図１】具体例１のステッピングモータの制御装置ブロック図である。
【図２】オートリロードタイマの結線図である。
【図３】プリンタ用ステッピングモータ制御例説明図である。
【図４】具体例１の速度テーブルデータ説明図である。
【図５】タイマ起動処理フローチャートである。
【図６】タイマ割込処理フローチャートである。
【図７】クロック選択処理フローチャートである。
【図８】センサ割込処理フローチャートである。
【図９】具体例２のステッピングモータ制御装置ブロック図である。
【図１０】具体例２の速度テーブルデータ説明図である。
【図１１】タイマ起動処理フローチャートである。
【図１２】タイマ割込処理フローチャートである。
【図１３】センサ割込処理フローチャートである。
【図１４】具体例３のステッピングモータの制御装置である。
【図１５】繰り返しタイマの結線図である。
【図１６】具体例３の速度テーブルデータ説明図である。
【図１７】具体例３の装置の動作フローチャート（その１）である。
【図１８】具体例３の装置の動作フローチャート（その２）である。
【図１９】速度テーブル読出しポインタ更新処理の説明図である。
【符号の説明】
１  制御部（ＣＰＵ）
４  ステッピングモータ制御回路
５  オートリロードタイマ（ＴＭ）
７  クロック供給部（ＳＵＢ  ＴＭ）
１６  ステッピングモータ
【図１】
0003689801.tif 000002
【図２】
0003689801.tif 000003
【図３】
0003689801.tif 000004
【図４】
0003689801.tif 000005
【図５】
0003689801.tif 000006
【図６】
0003689801.tif 000007
【図７】
0003689801.tif 000008
【図８】
0003689801.tif 000009
【図９】
0003689801.tif 000010
【図１０】
0003689801.tif 000011
【図１１】
0003689801.tif 000012
【図１２】
0003689801.tif 000013
【図１３】
0003689801.tif 000014
【図１４】
0003689801.tif 000015
【図１５】
0003689801.tif 000016
【図１６】
0003689801.tif 000017
【図１７】
0003689801.tif 000018
【図１８】
0003689801.tif 000019
【図１９】
0003689801.tif 000020