(57)【特許請求の範囲】
【請求項１】
複数種類の制御データに基づいて駆動機構の動作を制御する駆動制御部と、
計時データを受信したときに時間計測動作を開始し、前記設定された計時データにより指定された時間が経過したときにタイムアップ信号を出力する計時手段と、
所定の起動信号に基づき起動され、当該起動信号を受信する度に前記駆動機構の動作の切換タイミングを制御するための計時データをメモリから順次一つずつ読み出して、前記計時手段に転送する第１のダイレクトメモリアクセス手段と、  前記計時手段からタイムアップ信号を受信することにより、前記複数種類の制御データをメモリから各種類毎に一つずつ順次読み出し、読み出した順に前記駆動機構に順次転送する第２のダイレクトメモリアクセス手段と、
を備え、
前記第２のダイレクトメモリアクセス手段は、前記複数種類の制御データのうち最後の制御データの転送が終了したときに前記第１のダイレクトメモリアクセス手段に前記起動信号を出力することを特徴とする駆動機構の制御装置。
【請求項２】
前記第２のダイレクトメモリアクセス手段は、
前記計時手段からのタイムアップ信号により起動され、前記タイムアップ信号の受信の度に、前記駆動機構の動作を制御するための第１の制御データをメモリから順次一つずつ読み出して、駆動機構の制御部に転送する第１の制御部と、
前記第１の制御データの転送の終了により起動され、前記第１の制御データの転送の終了の度に、前記駆動機構の動作を制御するための第２の制御データをメモリから順次一つずつ読み出して前記駆動制御部に転送し、転送後に前記第１のダイレクトメモリアクセス手段に前記起動信号を出力する第２の制御部とからなることを特徴とする請求項１に記載の駆動機構の制御装置。
【請求項３】
前記計時データ及び前記複数の制御データを作成してメモリの所定のアドレスにそれぞれ記憶させるデータ設定手段を、さらに備えることを特徴とする請求項１又は２に記載の駆動機構の制御装置。
【請求項４】
前記駆動機構はステップモータ駆動機構であり、前記計時データ、第１の制御データ、及び第２の制御データは、それぞれ、モータの位相切換タイミングを制御するためのデータ、モータの位相切換の時に設定する位相パターンデータ、及び位相切換時にモータに供給する電流を制御する相電流値であることを特徴とする請求項２又は３に記載の駆動機構の制御装置。
【請求項５】
前記データ設定手段は、モータの加速時、減速時及び定常動作時におけるそれぞれの前記計時データ、前記位相パターンデータ、および前記相電流値の基本データを備えており、これらの基本データに基づき実際の駆動のための前記計時データ、第一制御データ、及び第２の制御データを作成することを特徴とする請求項４に記載の駆動機構の制御装置。
【請求項６】
前記駆動機構はヘッド駆動機構であり、前記計時データ、前記第１の制御データ、および前記第２の制御データは、それぞれヘッド駆動のタイミングを制御するデータ、実際にヘッドを駆動させる駆動トリガデータ、及び印刷データであることを特徴とする請求項２又は３に記載の駆動機構の駆動制御装置。
【請求項７】
以下の工程を備えることを特徴とする複数種類のデータにより制御される駆動機構の制御方法。
（ａ）起動信号を受信することにより、第１のダイレクトメモリアクセス手段により制御データの切換タイミングを制御するための計時データをメモリから読み出して計時装置に転送する工程と、
（ｂ）計時データを受信したときに時間計測動作を開始し、前記設定された計時データにより指定された時間が経過したときにタイムアップ信号を出力する工程と、
（ｃ）前記計時装置からのタイムアップ信号に基づき、第２のダイレクトメモリアクセス手段により前記複数種類の制御データをメモリから各種類毎に順次一つずつ読み出し、読み出した順に前記駆動機構に順次転送する工程と、
（ｄ）前記複数種類の制御データのうち最後の制御データの転送が終了したときに前記第１のダイレクトメモリアクセス手段に前記起動信号を出力する工程。
【請求項８】
前記工程（ｃ）及び（ｄ）は、
（ｅ）前記計時装置からのタイムアップ信号により、第１の制御データをメモリから読み出して駆動機構の駆動制御部に転送する工程と、
（ｆ）前記第１の制御データを転送後に、第２の制御データをメモリから読み出して駆動機構の駆動制御部に転送する工程と、
（ｇ）前記第２の制御データの転送が終了したときに前記第１のダイレクトメモリアクセス手段に前記起動信号を出力する工程とからなり、
さらに、
（ｈ）前記起動信号に基づき、前記第１のダイレクトメモリアクセス手段は、次ぎの前記計時データをメモリから読み出して前記計時装置に転送する工程と、
（ｉ）以後順次、次の第１の制御データ、次の第２の制御データおよび次の計時データについて工程（ｂ）、（ｅ）、（ｆ）、（ｇ）及び（ｈ）の処理を繰り返す工程と、
を備えることを特徴とする請求項７に記載の駆動機構の制御方法。
【請求項９】
前記駆動機構の制御方法は、
（ｊ）前記工程（ａ）の前に、前記計時データ、前記複数の制御データをメモリの所定のアドレスに記憶する工程を、
さらに備えることを特徴とする請求項７〜８のいずれか１項に記載の駆動機構の制御方法。
【請求項１０】
前記駆動機構はステップモータであり、前記計時データ、前記第１の制御データおよび前記第２の制御データはそれぞれ、モータの位相を切り替える相切換タイミングを制御するデータ、前記相切換タイミングにモータに負荷される相パターンデータ、及び各切換タイミング毎に前記各相パターンに流す相電流値からなることを特徴とする請求項９に記載の駆動機構の制御方法。
【請求項１１】
前記駆動機構はヘッド機構であり、前記計時データ、前記第１の制御データおよび前記第２の制御データはそれぞれ、ヘッド駆動のタイミングを制御するタイミングデータ、ヘッドの駆動トリガデータ、及び印刷データからなることを特徴とする請求項９に記載の駆動機構の制御方法。
【請求項１２】
請求項７から１１のいずれか１項に記載の駆動機構の駆動を制御する方法の工程を有するプログラムを記録したコンピュータで読み取り可能な情報記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、所定の時間内に精確な動作が要求される駆動機構の駆動制御装置及び制御方法に関し、特に専用ハードウェアを設けることなく、中央処理装置（Central Processing Unit:以下ＣＰＵと称する）からの割込処理の負荷を軽減した駆動機構の駆動制御装置、制御方法及びその方法を記録した記録媒体に関する。
【０００２】
【従来の技術】
最近の電子機器の駆動機構は、極めて高速かつ精確な動作が要求される。そのため、例えばプリンタにおいては、印字用紙の駆動又はキャリッジの駆動等にステップモータが採用されている。また、プリンタでは、正しい位置に正しい文字図形等を印刷するために、印字用紙及びキャリッジの動きに合わせて印字ヘッドを精確かつ高速に駆動（印刷動作）させる必要がある。この発明は、最近の電子機器に使用される各種駆動機構を高速かつ精確に駆動するための制御装置、制御方法及びその方法を記録した記録媒体に関するものである。
【０００３】
駆動機構の制御には、ＣＰＵによる割込信号制御方式と、専用ハードウェアによる制御方式がある。これらの制御方式をステップモータを用いて説明する。ステップモータの駆動制御においてＣＰＵ割込方式を用いる場合、モータの駆動に伴なう相切換タイミング毎にＣＰＵによる割込処理を行って、位相パターンを切り換えたりモータに流す電流を制御するための制御データを駆動機構に供給しなければならない。モータの加速時及び減速時においては、位相の切換タイミングを順次切り替えつつ負荷電流値を順次変化させる必要があるから特に複雑な制御が必要となる。
【０００４】
専用ハードウェアを使用する場合には、ＣＰＵによるソフトウェアによる割込処理に変えて、専用ハードウェアがモータの位相の切換え及び電流値を制御するものである。以上のような高速かつ精確な駆動制御は、プリンタのみでなく、例えばヘッド機構のような他の駆動機構でも必要となる。
【０００５】
【発明が解決しようとする課題】
しかし、ＣＰＵの割込処理方式では、ＣＰＵの負荷が大きくなるため、ＣＰＵの処理能力が十分でない場合には割込処理時間にばらつき生じて、高速かつ高精度の駆動が困難となる場合がある。このような割込処理のばらつきを抑え高精度のモータ駆動を可能にするには、ＣＰＵの高速化が必要となるため高価なＣＰＵを使用しなければならない。
【０００６】
一方専用ハードウェアを使用する場合には、割込処理が不要であるため高精度化が可能となるが、専用ハードウェアを設けるためのコストが高くなるという問題がある。更に、専用ハードウェアを使用する場合には開発期間の長期化、及び制御方法の変更を柔軟に行うことが難しい等の問題があった。
【０００７】
そこで、本発明は、ＣＰＵの割込処理によらないで、かつ高価な専用ハードウェアを用いることなく、高精度のモータ駆動を可能にした各種駆動機構の制御装置、制御方法及びその記録媒体を提供することを目的とする。
【０００８】
さらに本発明は、制御方法を容易に変更することができる各種駆動機構の制御装置、制御方法及びその記録媒体を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明者達は、上述の問題点を解決すべく研究を重ねた結果、ほとんどのＣＰＵに搭載されているダイレクトメモリアクセス（Direct Memory Access ：以下ＤＭＡと称す）制御部によりメモリから複数の制御データを順次読み出し、駆動制御部に転送することにより上記課題を解決した。
【００１０】
すなわち、駆動機構の駆動開始前に駆動量に応じて駆動タイミングを制御する駆動タイミングデータ（計時データ）テーブルと、各切換タイミング毎に使用される各種制御データを各種類毎に記録した複数のテーブルとをメモリ上に記憶しておく。ＣＰＵによる駆動開始要求後は、ＤＭＡが切換タイミング毎に各種テーブルからデータをひとつずつ順次読み出して、駆動機構に必要な制御データ等を転送することで、駆動機構の始動から停止までをＣＰＵの割込なしに自立的に制御する。切換タイミングはタイミングデータをタイマに設定することにより制御する。
【００１１】
本発明の駆動制御装置の第１の態様は、計時データを受信したときに時間計測動作を開始し、前記設定された計時データにより指定された時間が経過したときにタイムアップ信号を出力する計時手段と、所定の起動信号に基づき起動され、当該起動信号を受信する度に駆動機構の動作の切換タイミングを制御する計時データをメモリから順次一つずつ読み出して、計時手段に転送する第１のダイレクトメモリアクセス手段と、計時手段からタイムアップ信号を受信することにより、複数種類の制御データをメモリから各種類毎に一つずつ順次読み出し、読み出した順に前記駆動機構に順次転送する第２のダイレクトメモリアクセス手段とを備え、第２のダイレクトメモリアクセス手段による複数種類の制御データのうち最後の制御データの転送が終了したときに、第１のダイレクトメモリアクセス手段に起動信号を出力することを特徴とする。
【００１２】
この構成における計時手段は、例えばタイマでよく、計時データは所定の時間を表す時間データでよい。これらの計時データが駆動機構の動作を切り替えるタイミングデータとなる。また、複数の制御データの内容と種類は、制御される駆動機構及び制御の態様によって異なる。例えば後述するステップモータでは、タイミングデータ以外に２種類の制御データを必要とするが、駆動機構の制御の態様に合わせて、これ以上多くても少なくてもよい。各種制御データは切換回数に合わせて夫々の制御データ毎に複数個用意される。各制御データの転送が終了してから次の制御データの転送への移行は、ＤＭＡによる割込処理を用いても、駆動制御部からＤＭＡへの割込信号を用いてもよい。複数種類の制御データの転送が一巡した後に、次の計時データを読み出すために第１のダイレクトメモリアクセス手段へ処理を移行させる場合も同様に、ＤＭＡによる割込または駆動制御部から割込信号を出力する方法のいずれも使用可能である。
【００１３】
また、第１のダイレクトメモリアクセス手段と第２のダイレクトメモリアクセス手段は個別のＤＭＡ手段であっても、１つのＤＭＡ内に複数のチャンネルコマンドワード（ＣＣＷ）レジスタを有し、その１つ１つを第１のダイレクトメモリアクセス手段及び第２のダイレクトメモリアクセス手段に割り当てても良い。
【００１４】
本発明の駆動制御装置の第２の態様は、第２のダイレクトメモリアクセス手段による複数種類の制御データのうち最後の制御データの転送が終了したときに、第１のダイレクトメモリアクセス手段に起動信号を出力することを特徴とする。制御データの転送が終了するごとに第２のダイレクトメモリアクセス手段が第１のダイレクトメモリアクセス手段を起動して切換タイミングの設定を行い、一連の処理を繰り返すことにより、所定の駆動制御を実現する。
【００１５】
本発明の駆動制御装置の第３の態様は、前記第２のダイレクトメモリアクセス手段が、計時手段からのタイムアップ信号により起動され、タイムアップ信号の受信の度に、駆動機構の動作を制御するための第１の制御データをメモリから順次一つずつ読み出して、駆動機構の制御部に転送する第１の制御部と、第２の制御データの転送の終了により起動され、第２の制御データの転送の終了の度に、駆動機構の動作を制御するための第２の制御データをメモリから順次一つずつ読み出して駆動制御部に転送し、転送後に第１のダイレクトメモリアクセス手段に起動信号を出力する第２の制御部とからなることを特徴とする。
【００１６】
第１及び第２の制御部は、個別のＤＭＡ手段であっても、１つのＤＭＡ内に複数のチャンネルコマンドワード（ＣＣＷ）レジスタを有し、その１つ１つに第１の制御部及び第２の制御部を割り当てても良い。
【００１７】
本発明の駆動制御装置の第４の態様は、計時データ及び複数の制御データを作成してメモリの所定のアドレスにそれぞれ記憶させるデータ設定手段を、さらに備えることを特徴とする。
【００１８】
例えば、駆動機構の駆動を開始する前に、駆動開始から停止までの全過程における全ての制御切換タイミングデータ、及び複数の制御データをメモリの所定のアドレスに記憶するように構成する。この他、一時に全ての設定するのでは無く、いくつかに分割してＣＰＵの空き時間に後続データを記憶するように構成してもよい。このようにして、希望する駆動条件に従った駆動制御が可能となる。
【００１９】
本発明の駆動制御装置の第５の態様は、駆動機構はステップモータ駆動機構であり、計時データ、第１の制御データ、及び第２の制御データは、それぞれ、モータの位相切換タイミングを制御するためのデータ、モータの位相切換の時に設定する相パターンデータ、及び位相切換時にモータに供給する電流を制御する相電流値であることを特徴とする。
【００２０】
ステップモータの場合には、モータの加速、停止前の減速にあわせて、その位相の切換タイミングの制御及び、駆動電流の制御が必要になる。そのため、切換タイミングに合わせて、所定の位相パターンデータ及び相電流値をＣＰＵの介在なしに、ＤＭＡによりモータ制御部に順次転送していくように構成するものである。モータの駆動に伴なう位相切換タイミング毎にＤＭＡによりモータに次の位相パターンと、その位相パターンに流す電流値を駆動機構に供給する。モータの加速時及び減速時においては、位相の切換タイミングを順次切り替えつつ負荷電流値を順次変化させる必要があるから特に複雑な制御が必要となる。これらの制御データは、具体的な駆動の内容に応じて予めメモリ内に記憶しておくことが好ましい。
【００２１】
本発明の駆動制御装置の第６の態様は、データ設定手段が、モータの加速時、減速時及び定常動作時におけるそれぞれの前記計時データ、前記位相パターンデータ、および前記相電流値の基本データを備えており、これらの基本データに基づき実際の駆動のための前記計時データ、第一制御データ、及び第２の制御データを作成することを特徴とする。モータの特性等により、加速時、減速時等の位相切換のタイミング及び負荷電流値は異なるため、これらの基本データに基づき具体的な制御データを作成するものである。
【００２２】
本発明の駆動制御装置の第７の態様は、駆動機構がヘッド駆動機構であり、計時データ、第１の制御データ、および第２の制御データは、それぞれヘッド駆動のタイミングを制御するデータ、実際にヘッドを駆動させる駆動トリガデータ、及び印刷データであることを特徴とする。
【００２３】
ヘッドの駆動もプリンタと同様に駆動タイミングの制御と、駆動タイミング毎の印刷データの転送が必要となる。そのため、印刷ヘッドを駆動するタイミングを時間データで制御し、各タイミングにおけるヘッドの実際の駆動を第１の制御データである駆動トリガデータで起動し、印刷データを第２の制御データとして転送する。これにより各時間データ毎に、第２の制御データでヘッド駆動動作をトリガし、第２の制御データを印字する。尚、第１回目のトリガでは、印字データが存在しないため、印字は行われない。第１回目のタイミングデータ及びトリガはダミーであり、第２回目の時間データのタイミングで最初の印字データが印字される。また、キャリッジ又は記録紙を移動させながら印刷を行う場合には、キャリッジ等の移動とヘッドの駆動の同期を取る必要がある。同期の取り方としては、例えば、モータ駆動機構とヘッド駆動機構の双方の制御データを作成する段階で双方の同期をとって夫々の制御データとしてメモリに記憶し、実際の駆動はその同期済みの制御データに基づいて夫々独立して駆動する方法がある。
【００２４】
本発明の第８の態様にかかる駆動機構の制御方法は、（ａ）起動信号を受信することにより、第１のダイレクトメモリアクセス手段により制御データの切換タイミングを制御するための計時データをメモリから読み出して計時装置に転送する工程と、（ｂ）計時データを受信したときに時間計測動作を開始し、設定された計時データにより指定された時間が経過したときにタイムアップ信号を出力する工程と、（ｃ）計時装置からのタイムアップ信号に基づき、第２のダイレクトメモリアクセス手段により複数種類の制御データをメモリから各種類毎に順次一つずつ読み出し、読み出した順に駆動機構に順次転送する工程と、（ｄ）前記複数種類の制御データのうち最後の制御データの転送が終了したときに前記第１のダイレクトメモリアクセス手段に前記起動信号を出力する工程。
【００２６】
本発明の第１０の態様にかかる駆動機構の制御方法は、工程（ｃ）及び（ｄ）が、（ｅ）計時装置からのタイムアップ信号により、第１の制御データをメモリから読み出して駆動機構の駆動制御部に転送する工程と、（ｆ）第１の制御データを転送後に、第２の制御データをメモリから読み出して駆動機構の駆動制御部に転送する工程と、（ｇ）第２の制御データの転送が終了したときに第１のダイレクトメモリアクセス手段に前記起動信号を出力する工程とからなり、さらに、（ｈ）起動信号に基づき、第１のダイレクトメモリアクセス手段は、次ぎの計時データをメモリから読み出して計時装置に転送する工程と、（ｉ）以後順次、次の第１の制御データ、次の第２の制御データおよび次の計時データについて工程（ｂ）、（ｅ）、（ｆ）、（ｇ）及び（ｈ）の処理を繰り返す工程とを備えることを特徴とする。
【００２７】
本発明の第１１の態様にかかる駆動機構の制御方法は、（ｊ）工程（ａ）の前に、計時データ、複数の制御データをメモリの所定のアドレスに記憶する工程を、
さらに備えることを特徴とする。
【００２８】
本発明の第１２の態様にかかる駆動機構の制御方法は、本発明の方法が適用される駆動機構がステップモータであり、各工程で使用される計時データ、第１の制御データおよび第２の制御データはそれぞれ、モータの位相を切り替える相切換タイミングを制御するデータ、前記相切換タイミングにモータに負荷される位相パターンデータ、及び各切換タイミング毎に各位相パターンに流す相電流値からなることを特徴とする。
【００２９】
本発明の第１３の態様にかかる駆動機構の制御方法は、本発明の方法が適用される駆動機構がヘッド機構であり、各工程で使用される計時データ、第１の制御データおよび第２の制御データはそれぞれ、ヘッド駆動のタイミングを制御するタイミングデータ、ヘッドの駆動トリガデータ、及び印刷データからなることを特徴とする。
【００３０】
【発明の実施の形態】
以下、図面を参照しつつ、本発明の実施形態を詳細に説明する。図１に、本発明が適用される駆動装置の構成例を示す。
【００３１】
図１は、本発明の適用が可能な駆動装置の構成の概略を示すブロック図である。
ＣＰＵ１は、中央処理装置であり、メモリ２に記憶されたプログラム（ファームウェア、ＯＳを含む）に従い各種演算、処理及び制御を行う。３はダイレクトメモリアクセス制御部（以下ＤＭＡと称する）であり、ＣＰＵ１の介在なしに各種入出力装置とメモリ２間でのデータの転送を実行する装置である。
【００３２】
尚、図１には説明をわかりやすくするため、入出力装置としては計時手段４と、駆動機構５だけしか示していない。メモリ２からのデータの読み出しアドレス及び読み出したデータの転送先は、アドレスライン８により指定され、読み出されたデータはデータバス９により転送される。
メモリ２から計時手段４にタイミングデータが転送されると、計時手段４は受信したタイミングデータに従って時間を計測し、所定の時間が経過したときにタイムアップ信号をＤＭＡに出力する。これによりＤＭＡ３はメモリ２から駆動制御部６へ所定のデータを転送し、これらの制御データに従って駆動機構５の駆動部７が動作する。
【００３３】
(第１の実施例)
次に、図２を用いて本発明の第１の実施例を説明する。図２は本発明の第１の実施例の構成を示す機能ブロック図である。
【００３４】
図中、１０は、駆動機構の動作を切り替えるタイミングを制御するのデータを記憶しているタイミングデータ記憶手段である。１１は、切り替え後の駆動機構の動作を制御するための第１の制御データを記憶している第１の制御データ記憶手段であり、１２は、第２の制御データを記憶している第２の制御データ記憶手段である。１３は、第ｎ番目の制御データを記憶している第ｎの制御データ記憶手段である。これらのデータ記憶手段１０〜１３は、メモリ内に割り当てられたの所定のアドレス空間であること及び、この記憶手段に所定のデータを駆動動作の開始前にＣＰＵにより設定しておくことが好ましい。
【００３５】
１４は第１のダイレクトメモリアクセス手段（以下第１のＤＭＡ手段と称す）であり、１５は第２のダイレクトメモリアクセス手段（以下第２のＤＭＡ手段と称す）である。第１のＤＭＡ１４及び第２のＤＭＡ手段１５は、１つのダイレクトメモリアクセス（ＤＭＡ）により、第１及び第２のＤＭＡ手段１４，１５を構成しても、別々に設けられた複数個のＤＭＡにより構成してもよい。
【００３６】
４は計時手段でタイミングデータに基づき時間経過を計測し、タイムアップ信号を出力する。６は駆動制御部で、第１の制御手段１６（図３に示す）、第２の制御手段１７（図３に示す）により転送された制御データを受信することにより駆動部７の駆動を制御する。駆動部７は例えば、ステップモータまたは印刷ヘッドであるがこれに限定されない。
【００３７】
動作について説明する。ＣＰＵ１から第１のＤＭＡ手段１４に駆動開始信号が送信されると、第１のＤＭＡ手段１４はタイミングデータ記憶手段１０のテーブルから第１番目のタイミングデータを読み出し、計時手段４に転送する。この場合においてタイミングデータは、現在の動作状況から次の動作へ切換えるまでの時間間隔を示す時間データでよい。今、このタイミングデータが計時手段４に転送されると、計時手段４はタイミングデータで指定された所定の時間が経過したときにタイムアップ信号を第２のＤＭＡ手段１５に出力する。
【００３８】
タイムアップ信号を受信した第２のＤＭＡ手段１５は、まず第１の制御データ記憶手段１１に記憶されている第１の制御データテーブルの第１番目の制御データを読み出し、駆動機構５の駆動制御部６に転送する。駆動制御部６への第１の制御データの転送が完了すると、次に第２の制御データ記憶手段１２の記憶テーブルの第１番目の制御データを読み出し、駆動制御部６に転送する。同様にして第ｎの制御データ記憶部１３の記憶テーブルの第１番目の制御データを駆動制御部６に転送する。これらの第１から第ｎの制御データ（ｎ種類）を受信すると、駆動制御部６はこれらの制御データに基づき駆動部の動作を開始する。
【００３９】
一方、駆動制御部６への第ｎの制御データの転送の完了により、第１のＤＭＡ手段１４が起動される。第１のＤＭＡ手段１４の起動は、図２に実線２７で示すように、第ｎの制御データの転送の完了後に第２の制御手段１７から第１のＤＭＡ手段１４へ割込を発生するように構成しても、破線２８で示すように、駆動制御部６から第１のＤＭＡ手段１４に割込を発生するように構成してもよい。
【００４０】
第１のＤＭＡ手段１４は、第２のＤＭＡ手段１５または駆動制御部６からの割込による起動信号により、タイミングデータ記憶手段１０の記憶テーブルから次のタイミングデータを読み出して、読み出したタイミングデータを計時手段４に転送する。計時手段４は受信したタイミングデータに基づいて時間を測定し、当該データにより指定された所定の時間の経過の時に第２のＤＭＡ手段１５に次のタイムアップ信号を出力する。
【００４１】
このタイムアップ信号により、第２のＤＭＡ手段１５は前回と同様にして第１の制御データテーブル乃至第ｎの制御データテーブルから第２番目の制御データを夫々読み出して、そのデータを駆動制御部６に順次転送する。
【００４２】
以下同様にして、所定の駆動が終了するまで、タイミングデータ記憶手段１０〜第ｎの制御データ記憶手段１３の記憶テーブルのデータに従って駆動部７が駆動される。所定の切換タイミングデータ及び各種制御データを、駆動開始前に設定しておくことにより、ＣＰＵの介在なしに駆動機構を精確に駆動することが可能となる。
【００４３】
次に第２のＤＭＡ手段１５についてより詳しく説明する。
【００４４】
尚、図２では、駆動機構の動作の制御にタイミングデ−タ以外の制御データとして、第１から第ｎの制御データ（ｎ種類）を使用しているが、使用される制御データの種類は、駆動機構及び駆動態様により異なる。例えばステップモータの駆動制御等のように、タイミングデータに加えて更に２種類の制御データを使用するケースが最も典型的な例である。従って、以下の説明では、説明をわかり易くするために、タイミングデータと２種類の制御データを使用する場合について説明する。
【００４５】
図３は、タイミングデータと２種類の制御データを使用する場合の実施例の構成を示す機能ブロック図である。第２のＤＭＡ手段１５は、制御データの種類に対応して、第１の制御手段１６と第２の制御手段１７が設けられている。第１及び第２の制御手段１６、１７もダイレクトメモリアクセス制御手段で構成される。
【００４６】
第１のＤＭＡ手段からタイミングデータが計時手段４に転送されると、計時手段４はタイミングデータで指定された所定の時間が経過したときにタイムアップ信号を第１の制御手段１６に出力する。
【００４７】
タイムアップ信号を受信した第１の制御手段１６は、第１の制御データ記憶手段１１に記憶されている第１の制御データテーブルから第１の制御データを読み出し、駆動機構５の駆動制御部６に転送する。駆動制御部６への第１の制御データの転送が完了すると、第２の制御手段１７が起動される。第２の制御手段１７は、第１の制御データの転送が完了したときに第１の制御手段１６から第２の制御手段１７に割込を発生する（破線２９で示す）ように構成しても、第１の制御データを受信完了後に駆動制御部６から第２の制御手段１７に割込(実線２６で示す)を発生するように構成してもよい。
【００４８】
第２の制御手段１７は第２の制御データ記憶手段１２の記憶テーブルから最初の第２の制御データを読み出し、駆動制御部６に転送する。第１の制御データおよび第２の制御データを受信すると、駆動制御部６はこれらの制御データに基づき駆動部の動作を開始する。
【００４９】
一方、駆動制御部６への第２の制御データの転送の完了により、第１のＤＭＡ手段１４が起動される。第１のＤＭＡ手段１４の起動は、第２の制御データの転送の完了後に第２の制御手段１７から第１のＤＭＡ手段１４へ割込を発生する（実線２７で示す）ように構成しても、駆動制御部６から第１のＤＭＡ手段１４に割込を発生する（破線２８で示す）ように構成してもよい。
【００５０】
第１のＤＭＡ手段１４は、第２の制御手段１７又は駆動制御部６からの割込により、タイミングデータ記憶手段１０の記憶テーブルから次のタイミングデータを読み出して、読み出したタイミングデータを計時手段４に転送する。計時手段４は受信した次のタイミングデータに基づいて時間を測定し、当該データにより指定された所定の時間の経過の時に第１の制御手段１６に次のタイムアップ信号を出力する。
【００５１】
このタイムアップ信号により、第１の制御手段１６は前回と同様にして第１の制御データテーブルから次の第１の制御データを読み出して、そのデータを駆動制御部６に転送する。第１の制御データの転送が完了すると、前回と同様に第２の制御手段１７が駆動されて第２の制御データ記憶テーブルから次の第２の制御データが読み出されて、そのデータが駆動制御部６に転送される。この段階で、前回の制御データに基づく駆動部７の動作は終了し、次の制御データに基づく動作が開始される。
【００５２】
以下同様にして、所定の駆動が終了するまで、タイミングデータ記憶手段１０、第１の制御データ記憶手段１１及び第２の制御データ記憶手段１２の記憶テーブルのデータに従って駆動部７が駆動される。
【００５３】
図４は、図３の制御装置により各種制御データを駆動機構５に転送する場合のデータ転送の手順及びデータの流れをイメージ的に示したものである。タイミングデータ記憶手段１０、第１の制御データ記憶手段１１、第２の制御データ記憶手段１２がメモリ２内の所定のアドレス空間に設けられており、第１のＤＭＡ手段１４、第１の制御手段１６及び第２の制御手段１７は、ＤＭＡ３内に設けられている。
【００５４】
ＣＰＵ１が、これから駆動しようとする駆動機構５を制御するためのタイミングデータ、第１の制御データ、第２の制御データをメモリ２の所定のアドレスに、書きこむ。その後以下のように動作し駆動機構５の動作が制御される。
（１）  ＣＰＵ１が、ＤＭＡ制御部１８に第１のＤＭＡ手段１４を起動する信号を送出する。
（２）  これによりＤＭＡ制御部１８は、第１のＤＭＡ手段１４を起動する。
（３）  第１のＤＭＡ手段１４は、前述の通り、メモリ２のタイミングデータテーブル１０からデータを読み出す。読み出すデータのアドレスは第１のＤＭＡ手段１４のソースアドレスレジスタに記憶されており、１度読み出す度に次のデータのアドレスを指定するようにインクリメントされる。
（４）  読み出されたタイミングデータは、転送アドレスレジスタ２０に基づき、計時手段４に転送される。
（５）  計時手段４はタイミングデータにより所定の時間の経過を監視し、その時間の経過の時に第１の制御手段１６に対してタイムアップ信号を出力する。計時手段として、タイマを使用することができる。
（６）  タイムアップ信号を受信した第１の制御手段１６は、自己のソースアドレスレジスタ（図示せず）に基づき第１の制御データを読み出す。その後、ソースアドレスレジスタのアドレスを次のデータのアドレスにインクリメントする。
（７）  読み出した第１の制御データは、転送アドレスレジスタ（図示せず）に基づき駆動機構５に転送される。
（８）  第１の制御データの転送が終わると、第２の制御手段１７が起動される。
（９）  第２の制御手段１７は、第２の制御データを読み出す。その後、第１のＤＭＡ手段１４及び第１の制御手段１６と同様に自己のソースアドレスレジスタ（図示せず）を次の第２の制御データのアドレスにインクリメントする。
（１０）  読み出した第２の制御データは駆動機構５に転送される。
（１１）  第２の制御データの転送が完了すると、第１のＤＭＡ手段１４が再び起動されてソースアドレスレジスタ１９により、次のタイミングデータが読み出される。
以下同様の処理が駆動終了まで繰り返され、駆動機構の動作が制御される。
【００５５】
（第２の実施例）
次に図５を用いて本発明の第２の実施例を説明する。尚、以下の説明においては、本発明をプリンタに適用した例を用いて説明するが、本発明はプリンタに限らず、ステップモータ、ヘッド機構その他の各種駆動機構を使用する各種装置に適用可能である。
【００５６】
図５は、ステップモータの駆動を制御する本発明の制御装置の例を示す機能ブロック図である。図５では、図３の第１のＤＭＡ手段１４、第１の制御手段１６及び第２の制御手段１７が、それぞれ位相切換タイミング制御手段２１、位相パターン制御手段２２及び相電流制御手段２３として示されている。これらの各制御手段はいずれもＤＭＡ手段により構成されるものであるが、これらの手段の制御機能を機能ブロックとしてわかり易く表したものである。これらの制御手段２１〜２３から所定の制御データをモータ駆動制御部２４に転送してモータ２５の駆動を制御する。
【００５７】
図６は、ステップモータ２５を駆動する場合のモータの制御の典型例を示すグラフである。ステップモータを駆動するには、モータに負荷する電圧の位相を順次切り替える必要がある。また、モータを駆動する場合には、図６（ａ）に示すように動作開始から徐々に加速し、定常速度まで達したらそれを維持し、停止位置に近づいたら減速する必要がある。そのため、位相の切換タイミングは加速時、定常速度時及び減速時により異なってくる。また、加速、定常速度及び減速を制御するにはそれぞれの期間において電流の制御も必要となる。図６（ｂ）に示すように駆動開始時には多くの電流を流しモータの回転を加速する必要がある。定常速度時には一定速度を維持するだけの電流で良いが、減速時にはブレーキをかけるため大きな電流を流す必要がある。
【００５８】
尚、図６（ｂ）からわかるように、モータ停止後にもモータには微電流が流される。これは、モータの残留振動を早く減衰させることを目的として、モータ停止後にモータの全相に微電流を流すものである（これをラッシュ通電と呼ぶ）。従って、モータが停止位置に到達後、最後の制御データとして、ラッシュ通電の位相パターン(全相)、ラッシュ通電の電流値、及びラッシュ通電時間が駆動制御部に転送されて、ラッシュ通電時間の経過のときにモータ駆動動作は終了する。
【００５９】
各グラフの下にある数字は、各位相の切換タイミングを示している。これからわかるように、モータ２５の駆動は第２回目の切換タイミングから開始される。図７を用いてより詳細に説明する。
【００６０】
図７は、モータ駆動開始の要求から切換タイミングデータ、第１の制御データ及び第２の制御データの設定を経て、次の切換タイミングを設定する一連の制御動作のための繰り返し処理の状態変移を示す図である。
【００６１】
ＣＰＵ１により駆動開始が伝えられると、第１のＤＭＡ手段１４は切換タイミング記憶手段１０の位相切換タイミングデータテーブルの最初のデータを読み出してタイマ４転送する。タイマ４はタイミングデータに基づき所定の時間経過を監視する（第１の状態：４０）。
【００６２】
タイマ４が所定の時間の経過を検知すると第１の制御手段１６は、第１の制御データ記憶手段１１の位相パターンデータテーブルの最初のデータを読み出して、モータ駆動制御部２４に位相の設定を行う（第２の状態：４１）。
【００６３】
最初の位相パターンデータの転送が終わると、第２の制御手段１７が第２の制御データ記憶手段１２から相電流値を読み出して、モータ駆動制御部２４に最初の相電流値の設定を行う。第２の制御手段１７により相電流値の設定が行われると、モータ２５が駆動を開始する(第３の状態：４２)。
【００６４】
相電流の転送が終了すると、再び第１のＤＭＡ手段１４が駆動され、位相切換タイミングテーブルから次の切換タイミングデータが読み出されてタイマ４に設定される（第１の状態：４０）。タイマ４が所定の時間の経過を検知すると、第２のＤＭＡ手段により次の位相パターンがモ−タ駆動制御手段６に設定され（第２の状態：４１）、続いてすぐに相電流値が設定される（第３の状態：４２）。これにより、第２番目の位相パターンによる駆動が開始される。
【００６５】
以上の説明からわかるように、第１番目のタイミングデータは最初の位相パターン、相電流値を設定するためのダミーの値である。モータ２５は、第２番目のタイミングデータ（時間データ）で指定された期間が経過して位相パターン等が変更されるまで、最初に設定された位相パターン及び相電流値にしたがって駆動される。同様に次の位相パターン及び相電流値に従って次の切換タイミングまでモータ２５が駆動される。
【００６６】
このようにして、モータ２５は、図６（ａ）に示すように第２番目の切換タイミングから駆動を開始し、所定の切換タイミングデータ及び制御データに従って、その駆動動作が制御される。
【００６７】
図８に実施例２によるモータの駆動制御の処理手順のフローチャートを示す。プログラムによりステップモータ１の駆動を要求されると、ＣＰＵ１は動作開始から停止までの制御に必要な位相切換タイミングデータ（この例では時間データ）と、その切換タイミング毎に設定される位相パターンデータ及び電流値データの各テーブルをメモリ上の所定のアドレスに作成する（Ｓ１００）。その後、ＣＰＵ１から第１のＤＭＡ手段１４にモータ駆動開始の信号が出力する（Ｓ１０１）。
【００６８】
ＣＰＵ１からの駆動開始指示により、第１のＤＭＡ手段１４はメモリ２のタイミングデータテーブルから時間データを読み出し（Ｓ１００３）、タイマ４にセットする（Ｓ１０３）。タイマへの時間データのセットによりタイマは始動して、設定時間の経過後タイムアップ信号を第１の制御手段１６に出力する。タイムアップ信号を受信するまではこの状態を継続する（Ｓ１０４；Ｎｏ）。タイムアップ信号を受信すると（Ｓ１０４；Ｙｅｓ）、第１の制御手段１６がメモリ２の位相パターンデータを読み出して（Ｓ１０５）、モータ駆動制御部２４に転送する（Ｓ１０６）。
【００６９】
位相パターンデータの転送が終わると、次に第２の制御手段１７により相電流データテーブルから相電流データを読み出し（Ｓ１０７）、モータ駆動制御部２４に相電流値を設定するタイミングデータ記憶手段からタイミングデータを読み出して、計時装置５に転送する。これによりモータ２５に相電流が流され、モータの駆動を開始する。
【００７０】
その後、次の位相切換タイミングデータ（時間データ）があれば（Ｓ１０９；Ｙｅｓ）、第１のＤＭＡ手段１４が次の時間データを切換タイミングデータテーブルから読み出してタイマ４にセットし（Ｓ１０２、１０３）、タイマ４がタイムアップするまで、この状態を維持する（Ｓ１０４；Ｎｏ）。すなわち、第１回目の処理工程（Ｓ１０６）で設定した位相パターンに、第２回目の処理工程（Ｓ１０３）で設定した時間データにより指定した期間、第１回目の処理工程（Ｓ１０８）で設定した相電流が流されることになる。
【００７１】
タイマ４がタイムアップすると（Ｓ１０４；Ｙｅｓ）、第２回目の位相パターンデータ及び相電流データがモータ駆動制御部２４に設定され（Ｓ１０５〜Ｓ１０８）、第３回目の時間データで指定された期間、それらの設定値に対応する電流が流される（Ｓ１０２〜Ｓ１０４）。以下同様にして、位相切換タイミングデータテーブルのタイミングデータに基づいて、順次同様の処理が繰り返される（Ｓ１０２〜Ｓ１０９）。位相切換タイミングデータテーブルに、次の時間データがなくなると、処理を終了する。
【００７２】
(第３の実施例)
次に図９を用いて本発明の第３の実施例を説明する。図９は、印字ヘッドの駆動を制御する本発明にかかる制御装置の例を示す機能ブロック図である。図９では、図３の第１のＤＭＡ手段１４、第１の制御手段１６および第２の制御手段１７が、それぞれヘッド駆動タイミング制御手段３０、位相パターン制御手段３１及び相電流制御手段３２として示されている。第２の実施例と同様に、これらの各制御手段もいずれもＤＭＡ手段により構成されるものであるが、これらの手段を機能ブロックとしてわかり易く表したものである。これらの制御手段３０〜３２から所定の制御データをヘッド駆動制御部３３に転送してヘッド３４の駆動を制御する。
【００７３】
基本的な動作は第２の実施例で説明したものと同様であるが、その処理する制御データが異なる。タイミングデータとしては、ヘッド駆動タイミングデータ、ヘッド駆動トリガデータ及び印刷データであり、これらのデータが駆動前にテーブルに設定される。
【００７４】
基本動作を図１０を用いて説明する。第１のＤＭＡからなる駆動タイミング制御部３０によりヘッドを駆動するタイミングデータをタイマ４に設定する（第１の状態：４０）。タイマ４がタイムアウトするとヘッド駆動トリガ制御部３１により駆動トリガをヘッド駆動制御部に転送し、ヘッドを駆動させる(第２の状態：４１)。この段階では印刷データ転送されていないので、何も印刷しない。次に印刷データ制御部３３により例えば１ラインドット分の印刷データを転送する（第３の状態：４２）。転送される印刷データの量は、一回のヘッド駆動により印刷可能な量にすることが好ましい。ヘッド駆動制御部３３は、受信した印刷データを記憶しておき、次回の駆動トリガを受信したときに印刷を行う。
【００７５】
以上の説明においては、モータの駆動を駆動する駆動制御装置と、ヘッド駆動制御装置を夫々別々に説明したが、実際のプリンタの動作においてはいずれの駆動機構も互いに関連し合いながら動作する。従って、ヘッド駆動制御装置及びモータ駆動装置の夫々に本発明を適用し、互いに同期を取りながら動作させることも可能である。この場合の同期の取り方としては、例えば、モータ駆動機構とヘッド駆動機構の双方の制御データを作成する段階で双方の同期をとって夫々の制御データとしてメモリに記憶し、実際の駆動はその同期済みの制御データに基づいて夫々独立して駆動する方法を採用することができる。また、例えばモータ駆動のタイミングを実際のヘッド駆動のタイミングに同期させるようにする等、実際の動作において同期をとるように構成することもできる。
【００７６】
【発明の効果】
以上説明したように、本発明では、予めメモリ内にタイミングデータ及び所定の制御データを記憶しておき、タイミングデータのタイマへの設定及び制御データの駆動機構への転送を、ＤＭＡにより順次行わせるよう構成した。これにより、本発明では、ＣＰＵの割込処理によらないで、かつ高価な専用ハードウェアを用いることなく、高精度のモータ駆動を可能にすることができるようになった。
【図面の簡単な説明】
【図１】本発明が適用される駆動装置の構成例を示す。
【図２】本発明の第１の実施例の構成を示す機能ブロック図である。
【図３】本発明の第１の実施例の構成をさらに詳細に説明するための機能ブロック図である。
【図４】図３の制御装置により各種制御データを駆動機構５に転送する場合のデータ転送の手順及びデータの流れをイメージ的に示した図である。
【図５】ステップモータの駆動を制御する本発明の制御装置の第２の実施例を示す機能ブロック図である。
【図６】ステップモータ２５を駆動する場合のモータの制御の典型例を示すグラフである。
【図７】モータ駆動開始の要求から切換タイミングデータ、第１の制御データ及び第２の制御データの設定を経てモータの駆動動作を行い、次の切換タイミングを設定する一連の制御動作の繰り返し処理の状態変移を示す図である。
【図８】実施例２によるモータの駆動制御の処理手順のフローチャートを示す。
【図９】印字ヘッドの駆動を制御する本発明にかかる制御装置の例を示す機能ブロック図である。
【図１０】ヘッド駆動開始の要求から切換タイミングデータ、第１の制御データ及び第２の制御データの設定を経て印刷動作を行い、次の切換タイミングを設定する一連の制御動作の繰り返し処理の状態変移を示す図である。
【符号の説明】
１  ＣＰＵ
２  メモリ
３  ＤＭＡ
４  計時手段
５  駆動機構
６  駆動制御部
７  駆動部
８  アドレスバス
９  データバス
１０  タイミングデータ記憶手段
１１  第１の制御データ記憶手段
１２  第２の制御データ記憶手段
１３  第ｎの制御データ記憶手段
１４  第１のダイレクトメモリアクセス手段
１５  第２のダイレクトメモリアクセス手段
１６  第１の制御手段
１７  第２の制御手段
【図１】
0004655328.tif 000002
【図２】
0004655328.tif 000003
【図３】
0004655328.tif 000004
【図４】
0004655328.tif 000005
【図５】
0004655328.tif 000006
【図６】
0004655328.tif 000007
【図７】
0004655328.tif 000008
【図８】
0004655328.tif 000009
【図９】
0004655328.tif 000010
【図１０】
0004655328.tif 000011