(57)【要約】【課題】ＣＰＵの負荷を増やさずに、モータの制御に使用するメモリ容量を低減する。【解決手段】所定長のデジタル形式の駆動データの入力に応じて、モータを駆動するモータドライバ３を有し、モータを動力源として使用して機構を駆動する、モータの制御装置において、複数の駆動パターンに対応した前記駆動データをメモリ１に格納し、メモリ１からＤＭＡによって読み出した駆動データ１０のマスクデータセレクタ４８で選択されたビットを、マスクデータレジスタ４７に格納されたデータと置き換えて、駆動データバッファ４９に格納しモータドライバ３に出力する。【選択図】　図１
2004007966.tif 000002
【特許請求の範囲】
【請求項１】
モータを動力源として使用して機構を駆動するモータの制御装置であって、
所定長のデジタル形式の駆動データの入力に応じて、前記モータを駆動するモータドライバと、
複数の駆動パターンに対応した前記駆動データを格納するメモリと、
前記メモリからＤＭＡによって読み出した前記駆動データの一部を他のデータと置き換えて、前記モータドライバに出力するドライバ制御手段と、を備えることを特徴とするモータの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、モータの制御装置に関し、特に、所定長のデジタル形式の駆動データの入力に応じて、モータを駆動するモータドライバを有する、モータの制御に関するものである。
【０００２】
より詳細には、記録装置等のモータ制御部で生成するモータ駆動データを、メモリからＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）転送によって取得する構成において、その駆動データの一部を他のデータと置換する、モータの制御装置、並びに該制御装置に対応する制御方法、コンピュータプログラム、記憶媒体、電子機器、記録装置、及びモータドライバコントローラ等に関する。
【０００３】
【従来の技術】
近年、記録装置の普及が進みその技術も飛躍的に進歩している。記録装置は画像情報に基づいて用紙上に画像を記録していくように構成されているが、このような記録装置の中で、最近、最も注目されている記録方法はインクジェット記録方法である。インクジェット記録方法は、記録ヘッドから用紙にインクを吐出して記録を行う方法であり、その長所は高精細な画像を高速で記録することができ、ランニングコスト、静粛性等、様々な点で他の記録方法よりも優れている点にある。
【０００４】
インクジェット記録方法を採用したインクジェットプリンタにおいて、紙送り動作、キャリッジ動作、回復動作には一般にステッピングモータが用いられるが、最近では、その制御をＣＰＵではなく、プリンタ全体をコントロールする専用のシステムＬＳＩ（以下、ＡＳＩＣと称する）内に設けられた、モータ制御回路によって行う構成が増えている。
【０００５】
この理由は、プリンタの高画質化に伴う停止制御の複雑化及び低騒音化のため、モータの励磁方法も、Ｗ１−２相、２Ｗ１−２相、さらにはマイクロステップによって駆動されるものが増えており、また、プリンタの記録速度の高速化のために、モータの駆動速度も従来に比べて高速になっているため、相励磁切り替えタイミングが速くなり、ＣＰＵの負担が大きくなって、従来のシーケンス制御では間に合わなくなる場合が生じるからである。
【０００６】
そのため、ＡＳＩＣ内にモータ制御用の専用ハードウエア回路を設け、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）内に記録されている駆動テーブルのデータをＲＡＭ上に展開し、その駆動テーブルのデータをＤＭＡ転送によりモータ制御用の専用ハードウエアに取り込んでモータドライバに送信して、ＣＰＵを介さずにモータを制御するような構成が取られている。
【０００７】
例えば、特許文献１（特開２００１−２８６１９０号公報）、及び特許文献２（特開２００１−２８６１８９号公報）には、ＲＡＭ内に記録されているモータ駆動テーブルのデータを、ＣＰＵを介さずに順次ＤＭＡ転送によりモータドライバコントローラに取り込んでモータドライバを制御し、ＣＰＵの負担を軽減させる方法が提案されている。
【０００８】
ここでＤＭＡ転送を用いた従来のモータ制御方法について、図を参照してより詳細に説明する。図２は、ＤＭＡ転送を用いてモータの制御を行う従来例の構成を示すブロック図である。ここでは、モータドライバに駆動データをシリアル転送する構成を例に挙げている。
【０００９】
図中、１はＲＡＭ、２はプリンタコントローラＬＳＩ（ＡＳＩＣ）、３はモータドライバ、４はＣＰＵ、５はＲＯＭである。プリンタコントローラＬＳＩ　２の内部には、プリンタの動作を制御する様々な機能ブロックが存在する。ここでは、モータ駆動に関する部分を主に示している。６はＤＭＡコントローラであり、各機能ブロックのＲＡＭアクセス要求に基づいて、ＲＡＭ１とのＤＭＡ転送を行う。ＲＯＭ５内に格納されているモータ駆動データも、ＡＳＩＣ２内のＤＭＡコントローラ６を介してＲＡＭ１上に展開される。
【００１０】
７はモータドライバコントローラである。モータドライバコントローラ７には、コントロールブロック８、データコントローラ９、シリアルデータ生成部１２、タイミング制御部１３が含まれている。コントロールブロック８にはモータドライバコントローラを駆動させるための制御レジスタ（以下、コントロールレジスタとも称する）が設けられており、そのレジスタの内容に基づいてモータドライバコントローラ内の各機能のシーケンス制御を行う。コントロールレジスタへのデータの書込みはＣＰＵによって行われる。データコントローラ９はＤＭＡコントローラ６に対してＲＡＭ１の指定アドレスからのＤＭＡデータ転送を要求する。１０およびに１１はデータコントローラが取得してラッチしたデータであり、１０はモータドライバ制御データ、１１は時間データである。シリアルデータ変換部１２は、ラッチされた駆動データをシフトレジスタによってパラレル信号から転送クロックに同期したシリアルデータに変換する。タイミング制御部１３は、ラッチされた時間データを基に励磁時間を管理する。
【００１１】
図３はモータドライバへの駆動データの転送タイミングの例を示す図である。ここでは図２のモータドライバコントローラ７を含んだプリンタコントローラＬＳＩ　２からモータドライバ３に送信されるストローブ信号１４、転送クロック１５、駆動データ１６のタイミングと、モータドライバ３内部の簡単な構成を示している。
【００１２】
駆動データ１６は、転送クロック１５に同期してモータドライバ３内部のシフトレジスタ１７に順次格納される。それをストローブ信号１４によってラッチ１８にラッチする。ストローブ信号１４の立ち上がりにより、モータドライバ３内部でラッチが行われた後にモータドライバの出力は確定する。つまり、励磁時間はストローブ信号１４の発生間隔によって管理される。より具体的には、ラッチされたデータは各制御要素毎のビットに分割され、それぞれの駆動制御ブロックの制御に用いられる。
【００１３】
１９はトルクデータ制御であり、Ａ相、Ｂ相の２つの位相の電流の設定値を保ったまま、両相の電流のレベルを切り替えるものである。これにより、Ａ相、Ｂ相の電流設定の比率設定は同じ状態でモータに与える電流を段階的に設定できるため、トルク設定を行うことができる。２０，２１，２２はＡ相側の制御ブロックである。２０は回生電流の流し方（ディケイモード）、２１は電流値、２２は位相の制御をＡ相出力電流に対してそれぞれ行う。また、２３，２４，２５はＢ相側の制御ブロックであり、それぞれの制御方法はＡ相側と同一である。
【００１４】
【特許文献１】
特開２００１−２８６１９０号公報
【特許文献２】
特開２００１−２８６１８９号公報
【特許文献３】
特開２００１−３２７１９１号公報
【００１５】
【発明が解決しようとする課題】
しかしながら、上記従来例では、ＲＡＭに展開されているモータ駆動テーブルのデータをＤＭＡ転送によりモータドライバコントローラに取り込み、モータドライバコントローラではそのデータをモータドライバに設定された励磁時間毎に転送する。つまり、ＲＡＭに格納されている駆動テーブルのデータがそのままモータドライバに転送される。そのため、トルク設定ビット等のある特定の情報のみを変更したい場合には、ＲＡＭ内の駆動テーブルの変更したい特定のビットを、１バイト、又は２バイト（＝１ワード）単位でＣＰＵによって書き換えるか、あるいは、ＲＡＭ内の他の領域に、別のモータ駆動テーブルのデータとして格納する必要があった。
【００１６】
ＣＰＵによって駆動テーブルの特定のビットを書き換えるようにすると、駆動テーブルのデータを書き換える時間ＣＰＵを占有することになり、他のタスクを実行できず、記録装置全体のパフォーマンスを低下させる可能性がある。一方、ＲＡＭ内の他の領域に別のモータ駆動テーブルのデータを格納するようにすると、駆動データ中のある１ビットでも設定が異なる駆動モードが存在すると、その駆動モードの数だけ駆動テーブルのデータを格納しなければならず、ＲＡＭの容量、更にはＲＯＭの容量も増加することになる。
【００１７】
本発明は以上のような状況に鑑みてなされたものであり、ＣＰＵの負荷を増やさずに、モータの制御に使用するメモリ容量を低減することを目的とする。
【００１８】
【課題を解決するための手段】
上記目的を達成するために、本発明の一態様としてのモータの制御装置は、モータを動力源として使用して機構を駆動するモータの制御装置であって、
所定長のデジタル形式の駆動データの入力に応じて、前記モータを駆動するモータドライバと、
複数の駆動パターンに対応した前記駆動データを格納するメモリと、
前記メモリからＤＭＡによって読み出した前記駆動データの一部を他のデータと置き換えて、前記モータドライバに出力するドライバ制御手段と、を備えている。
【００１９】
すなわち、本発明では、所定長のデジタル形式の駆動データの入力に応じて、モータを駆動するモータドライバを有し、モータを動力源として使用して機構を駆動する、モータの制御装置において、複数の駆動パターンに対応した前記駆動データをメモリに格納し、メモリからＤＭＡによって読み出した駆動データの一部を他のデータと置き換えて、モータドライバに出力する。
【００２０】
このようにすると、メモリ内に格納された駆動データの一部を他のデータと置き換えることにより異なる駆動データを生成して、モータドライバに転送することができる。例えば、駆動データのトルク設定ビットを、他のデータと置換することによって、１種類の駆動データを用いて任意のトルクでモータを駆動することができる。
【００２１】
従って、ＤＭＡ転送を使用した構成において、メモリに格納するモータの駆動データの量を削減でき、モータの制御に使用するメモリ容量を低減することが可能となる。
【００２２】
なお、本発明は、上記のモータの制御装置に対応したモータの制御方法、該制御方法をコンピュータによって実現するコンピュータプログラム、及び該コンピュータプログラムを格納する記憶媒体、更には、モータを使用する電子機器及び記録装置、モータドライバコントローラとしても実現され得る。
【００２３】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施形態について詳細に説明する。なお、以下では本発明に係るモータ制御装置を使用するインクジェットプリンタを例に挙げて説明する。
【００２４】
（第１の実施形態）
（プリンタの全体構成）
図４は、本発明の第１の実施形態としてのインクジェットプリンタを正面から見た概略構成図である。ここで、２６はインクジェットプリンタ、２７は記録ヘッドを搭載するキャリッジである。キャリッジが２８に示すシャフト軸に支持されて左右に移動する間に、記録ヘッドからインクが吐出されて記録が行われる。キャリッジ（ＣＲ）モータのシャフトに取り付けられたプーリ２９と、それと対称位置にあるプーリ３０に張架されたタイミングベルト３１の一部がキャリッジに連結されており、ＣＲモータの駆動力を伝達する。
【００２５】
図５は、図４のインクジェットプリンタの用紙搬送に関する構成を側面から示した図であり、プラテン３７、対構成からなる排紙ローラ３８、搬送ローラ３４、ピンチローラ３５、記録用紙を積載し、それから１枚づつ用紙をプラテン上に給紙するオートシートフィーダー３２、およびに給紙ローラ３３で構成されている。給紙ローラ３３によってオートシートフィーダ３２から１枚ずつプラテン３７に給紙された用紙３６は、搬送ローラ３４とピンチローラ３５の２つのローラに挟持されて搬送される。これらのローラは図示されていない搬送用のモータによって駆動される。また、排紙ローラ３８はプラテン３７上の用紙に適度なテンションを加えるために搬送ローラ３４に比べて若干、早めに回転するように設定されている。
【００２６】
図６は、本実施形態のインクジェットプリンタの電気回路の全体構成を示した図である。プリンタの電気回路は、主として前述のように、ＣＰＵ４，ＲＡＭ１，ＲＯＭ５，ＡＳＩＣ２から構成される。ＡＳＩＣ２は、モータ駆動制御を行いつつ、画像処理、インターフェイス４４を介したホストコンピュータとの通信、記録ヘッド３９のインク吐出制御等を行う。画像処理は、例えば、圧縮された画像データを伸張する処理、ラスター形式のデータをカラム形式のデータに変換する処理、画像データを間引きするマスク処理等がある。インクジェットプリンタ全体の制御を行うＣＰＵ４は、モータ駆動制御の処理の他に、画像処理、通信処理、インク吐出制御の処理を実行するためにＡＳＩＣ２に設定を行う。また、ＲＡＭ１は、ホストコンピュータから送信された画像データの一時的な格納、画像処理を行う際のワークメモリ、及び記録データの格納にも用いられる。
【００２７】
モータドライバは主にキャリッジ駆動用のＣＲモータドライバ４１、および用紙搬送用のＬＦモータドライバ４０の２つのドライバから構成され、また、４３，４２はそれぞれ、キャリッジモータ、用紙搬送モータである。図のモータドライバとモータの組み合わせは、ひとつの例であり、プリンタの構成に応じて、モータの数及びモータドライバの数はいくつでも良い。また、４５は電源であり、商用電源から半導体デバイス駆動用のロジック電源、モータ駆動電源、および記録ヘッド３９の駆動電源を生成する。
【００２８】
（モータの制御）
以下、本実施形態におけるモータの制御について詳細に説明する。なお、ここでは制御対象となるモータ（ＣＲモータ及びＬＦモータ）としてステップモータを用いる場合を例に挙げて説明する。
【００２９】
図１は本実施形態におけるモータの制御に関する構成を示すブロック図である。本実施形態では、ＲＯＭからＲＡＭ内に展開されたモータ駆動テーブルデータをＤＭＡ転送によりモータドライバコントローラに取り込み、モータドライバコントローラがそのデータをモータドライバに設定された励磁時間毎に転送するように構成されており、従来例として図２に関して説明した構成と同様な部分には同じ符号を付して説明を省略する。
【００３０】
図２の構成と比較すると、図１に示す本実施形態のモータの制御に関する構成は、モータドライバコントローラ７において、ＤＭＡデータセレクタ４６、マスクデータレジスタ４７、マスクデータセレクタ４８、及び駆動データバッファ４９が追加された構成となっている。なお、７０はマスクデータレジスタに格納されたマスクデータを表わしている。
【００３１】
ＤＭＡデータセレクタ４６は、ＲＡＭ１からＤＭＡ転送によってモータドライバコントローラ７内にラッチされたモータドライバ制御データ１０を各ビット毎に選択するセレクタである。モータドライバ制御データ１０の選択されたビットは駆動データバッファ４９に転送される。マスクデータレジスタ４７は、モータドライバ制御データ１０の特定ビットの値を置換するためのマスクデータ７０を格納しており、このマスクデータはＣＰＵによって書き込まれる。
【００３２】
また本実施形態では、モータドライバ制御データ１０と同じビット幅のマスクデータレジスタ４７を用いる例を示しているが、両者が同じビット幅である必要はない。あらかじめ、置換を行うビットが限定されていれば、マスクデータレジスタ４７はそのビット幅以上であれば良い。マスクデータセレクタ４８は、マスクデータレジスタ４７に格納されたマスクデータ７０を各ビット毎に選択するセレクタである。そして、選択されたデータは駆動データバッファ４９に転送される。
【００３３】
このような構成によって、ＤＭＡ転送によって取得したモータドライバ制御データ１０の特定のビットをマスクデータレジスタ４７に格納した値でマスク（上書き）し置換することが可能となる。そして、特定のビットがマスクデータレジスタ４７の値によって置換されたモータドライバ制御データは、駆動データバッファ４９からシリアルデータ生成部１２に転送され、駆動データとしてタイミング制御部１３から発生される信号に従ってモータドライバ３に転送される。
【００３４】
通常、ＤＭＡ転送を用いたモータ制御では、あらかじめ設定されたステップ数だけハードウエアによって自動的に進める。そして、そのステップ数が終了した時点でモータドライバコントローラ７は割り込み信号を発生する。ＣＰＵ４はこの割り込み信号を受けて、モータドライバコントローラ７のコントロールレジスタに、ＲＡＭ内に格納されている次の駆動パターンデータの先頭アドレスを書き込むことにより次の駆動パターンデータが得られる。このコントロールレジスタは、コントロールブロック８内にある。
【００３５】
本実施形態における駆動の際の処理を、図７のフローチャートを用いて説明する。ステップＳ５０でモータ駆動開始命令が実行されるとＣＰＵはモータドライバコントローラのコントロールレジスタに設定を行う（ステップＳ５１）。ここで、設定するパラメータとしては、ハードウエアによって自動的に進めるステップ数Ｎや、ＲＡＭからＤＭＡ転送を開始する先頭アドレス等である。
【００３６】
ステップＳ５２で変数Ｍをゼロクリアするが、このＭはモータドライバコントローラ内のデータコントローラがＤＭＡコントローラを介してＲＡＭからＤＭＡ転送を行った回数を示している。すなわち、ＤＭＡ転送によって自動的に進められたステップ数と等しい。また、このステップＳ５２を実行する際に、ステップＳ５１で設定したモータドライバコントローラ内のコントロールレジスタの値をラッチして、次パターンの駆動のための準備を行う。
【００３７】
ステップＳ５３で、ＲＡＭからＤＭＡ転送を行う。ステップＳ５４では、上記で図１に関して説明したように、ＤＭＡ転送によって得られたモータドライバ制御データの特定のビットをマスクデータレジスタに格納された値でマスクして駆動データを生成し、モータドライバに転送する。そしてステップＳ５５では、ＤＭＡ転送回数を表わすＭをインクリメントする。ステップＳ５６では、現在の状態を指定された時間だけ維持した後、ＤＭＡ転送回数Ｍの値が自動的に進めるステップ数Ｎに達したか否かを判定する。
【００３８】
ステップＳ５６で、ＭがＮ未満であればステップ５３に戻り、駆動を継続すべく以降の処理を繰り返す。一方、ＭがＮと等しければ、規定のステップ数に到達したのでステップＳ５７に進み、モータドライバコントローラは割り込み信号を発生してＣＰＵに通知する。
【００３９】
割込み信号を受信したＣＰＵは、ステップＳ５８において、駆動を継続するか停止するかの判断を行う。駆動を継続する場合は、ステップＳ５１に戻り、次パターンの情報をコントロールレジスタに設定する。一方、駆動を停止する場合はステップＳ５９に進み、駆動を終了する。ステップＳ６０において駆動を停止する場合は、停止のための駆動パターンをあらかじめ前のＮステップの駆動パターンで設定しておく。ＣＰＵは、所定の回数割り込みを受けたか否かで駆動を継続するか否かを判断する。例えば、４８回の自動転送を行う場合には、割り込みが３回発生したか否かによって駆動を継続するか否かをステップＳ５８にて判断する。
【００４０】
以上のようにＮ（Ｎ：２以上）ステップの間、モータ制御用ハードウエア回路（モータドライバコントローラ７）によって自動的に設定された励磁時間毎に駆動データがモータドライバに転送され、ＣＰＵはそのＮステップが終了する毎に、ハードウエア回路から発生される割り込み信号に応じて、以降のＮステップ分の駆動パターンのデータを設定する。
【００４１】
マスクデータレジスタにマスクするデータを書込むタイミングは、ＣＰＵがモータ制御回路から割り込み信号を受けて次の駆動パターンの情報をコントロールレジスタに設定するタイミングであり、このときＣＰＵはマスクデータレジスタにデータを書込むと共に、マスクデータセレクタにマスクするビットを設定する。
【００４２】
また、このときＤＭＡデータセレクタに、ＲＡＭからＤＭＡ転送されるモータドライバ制御データの中でマスクしない（有効とする）ビットを選択しておく。これにより以降のＮステップの駆動パターンデータの特定のビットは、マスクデータレジスタに格納された値でマスクされ置換され、駆動データバッファに格納される。そして、駆動データバッファに格納されたデータがシリアルデータに変換されてモータドライバに転送される。
【００４３】
従って、次のＮステップのパターン情報を設定するタイミングで、特定のビットをマスクする情報を設定する。そして、次パターンのＮステップ駆動時にＲＡＭからＤＭＡ転送された駆動データの特定のビットをマスクデータレジスタの値によってマスクされた新たな駆動データによりモータドライバを駆動する。
【００４４】
同様に、駆動データの特定のビットをマスクすることを止める、もしくは変更するタイミングも、次のＮステップ分のパターン情報を設定するタイミングである。
【００４５】
（駆動データ）
ここで、本実施形態で、モータドライバにシリアルで送信される駆動データについて説明する。
【００４６】
図１０は、本実施形態でモータ駆動を行うためのシリアルデータの構成を示す図である。位相情報はＡ相については１５番目のビット（以降、ビット１５のように称する）、Ｂ相においては、ビット８において設定を行う。ここで、その相を正側（＋側）に励磁する場合はそのビットに‘１’を設定し、負側（−側）に励磁する場合は‘０’を設定する。
【００４７】
各位相の電流設定は４ビットで表わされる１６段階で指定することができる。Ａ相に関する電流設定はビット１４〜ビット１１、Ｂ相に関する電流設定はビット７〜ビット４によって行う。図１１は、４ビットの設定値と電流値の関係を示す図である。図示されたように“１１１１”が１００％（最大電流）、“００００”が０％の設定を意味する。
【００４８】
Ｄｅｃａｙ　Ｍｏｄｅは、モータの巻き線に流れる電流の回生電流をモータドライバ内部で、どのように回生させるかを設定し、Ａ相に関してはビット１０及びビット９、Ｂ相に関してはビット３及びビット２の各２ビットで行う。図１２は、２ビットの設定値と設定されるモードの関係を示す図である。Ｓｌｏｗ　Ｄｅｃａｙ　Ｍｏｄｅとは、モータの巻き線に流れる電流の回生電流をモータドライバ内部の閉ループによって回生させ、緩やかに電流を減衰させる設定である。一方、Ｆａｓｔ　Ｄｅｃａｙ　Ｍｏｄｅとは回生電流をグランド、もしくはモータ駆動電源に回生させ、急速に電流を減衰させる設定である。Ｍｉｘｅｄ　Ｄｅｃａｙは両者の中間の設定である。
【００４９】
ビット１及びビット０のトルク設定ビットは、ＡＢ両相に共通であり、Ａ相設定電流とＢ相設定電流設定の比率を保ったまま、両相の電流の絶対レベルを設定するものである。このトルク設定ビットが、例えば、“１１”では、モータドライバの出力電流としてＡ相設定電流値とＢ相設定電流値をそのまま出力するが、トルク設定ビットが５０％を意味する“００”であると、Ａ相設定電流値とＢ相設定電流値とをいずれも５０％にした電流値がモータドライバからモータへ出力される。
【００５０】
（実際の駆動例）
次に、本実施形態による具体的な駆動データについて説明する。図１３は、Ｗ１−２駆動のパターンの例を示した図である。Ｗ１−２相駆動とは、２−２相駆動の１ステップを４分割し、２−２相駆動における１周期の４ステップを、図１４に示すような１６ステップに分割して駆動する方法である。
【００５１】
図１３（ａ）は、図１０に示したビット順で、左から右にステップ番号１から１６の駆動データを示しており、図１３（ｂ）はＡ相及びＢ相の電流設定を（ａ）に示した各ステップに合わせて示した図である。なお、図１３に示した例では、Ｄｅｃａｙ　Ｍｏｄｅは電流の立ち上がり方向ではＭｉｘｅｄ　Ｄｅｃａｙ３７．５％、立下り方向ではＭｉｘｅｄ　Ｄｅｃａｙ７５％である。また、トルク設定は１００％である。
【００５２】
この場合、本実施形態のハードウエア（モータドライバコントローラ）が自動的にモータドライバに駆動データを転送する回数（ステップ数）Ｎは１６である。ＣＰＵはこの１６ステップが終了する毎に、ハードウエアから発生される割り込み信号に応じて、次の１６ステップの駆動パターンおよび励磁時間パターンが格納されたＲＡＭの先頭アドレスをコントロールレジスタに設定する。同じパターンを繰り返す場合は、同じ先頭アドレスを設定する。
【００５３】
具体的には、図１３（ａ）に示す値がステップ番号（ＳＴＥＰ　ＮＯ）の順序（１〜１６）に対応して１６ビットずつ、ＲＡＭからＤＭＡ転送によってモータドライバコントローラに転送され、モータドライバコントローラは、転送された１６ビットのデータのマスクデータセレクタで選択されたビットをマスクデータレジスタに格納された値で置換して駆動データを生成し、駆動データを励磁時間毎にモータドライバにシリアル転送する。
【００５４】
マスクデータセレクタでマスクするビットが選択されていない場合、モータドライバには、各ステップに対応してビット１５からビット１の順で以下の駆動データ、
１ステップ：１００００１０１１１１１０１１１
２ステップ：１０１０００１１１１００１０１１
…
１６ステップ：００１００１０１１１０００１１１
がシリアルに転送される。
【００５５】
一般的に、モータの駆動開始時は、駆動対象の機械的摩擦のために大きな起動トルクを必要とし、そのため大電流を必要とするが、一旦駆動が安定すると、起動時ほど大きな電流は必要としない。また、低騒音化の観点からも、駆動が安定した後は、トルクが過大にならないように電流値を減少させることが望ましい。
【００５６】
本実施形態では、ＤＭＡ転送によってメモリ（ＲＡＭ）から読み出されるデータの特定のビットをマスクして、その特定ビットをモータドライバコントローラに設けられたマスクデータによって置き換える。この方法によって、同じデータをメモリから読み出しているにも係わらず、必要な部分、例えば、トルク設定だけを変更して、電流値の設定を変えることができる。
【００５７】
例えば、図１３に示した駆動パターンで、電流値を５０％に変更する場合、以下のようにビット１及びビット０で表わされるトルク設定ビットを、マスクデータレジスタのビット１及びビット０に“００”（５０％設定）を設定し、ビットデータセレクタのビット１及びビット０を選択することにより、モータドライバに転送されるデータは、
１ステップ：１００００１０１１１１１０１００
２ステップ：１０１０００１１１１００１０００
…
１６ステップ：００１００１０１１１０００１００
となる。
【００５８】
図８は、用紙をある一定距離搬送させるためにモータを駆動した時のモータの巻き線に流れる電流を示すグラフである。駆動分割方法は、２−２相駆動における１ステップを１６分割、つまり１周期４ステップ（２−２相）を６４ステップに分割するマイクロステップ駆動であり、６０はＡ相電流、６１はＢ相電流を示している。ハードウエアが自動的にモータドライバに駆動データを転送する回数Ｎは６４である。
【００５９】
図中６２で示す全ての駆動区間は、Ｎステップ単位で同じ駆動パターンデータを、前ホールド及び後ホールドに要する時間（１０ｍｓ）を除き、ＲＡＭからＤＭＡ転送によってモータドライバコントローラに転送している。ただし、６３の区間では、ビット１及びビット０で表わされるトルクデータの部分をマスクデータによってマスクして電流値を８０％の設定にしている。これによって、同じ駆動テーブルをメモリから読み出しているにも係わらず、モータに与える電流を変更することができる。
【００６０】
以上説明したように本実施形態によれば、メモリに格納された駆動パターンテーブルのデータの特定ビットのみを変更することができ、ＣＰＵの負荷を増やさずに、メモリに格納する駆動パターンテーブルのパターン数を少なくして、モータの制御に必要なメモリの容量を低減することが可能となる。
【００６１】
（第１の実施形態の変形例）
以下、本発明に係るインクジェットプリンタの第１の実施形態の変形例について説明する。本変形例のインクジェットプリンタも第１の実施形態と同様な構成であり、同様な部分の説明は省略する。
【００６２】
図１５は、本変形例のインクジェットプリンタにおけるモータの制御に関する構成を図１と同様に示すブロック図である。図１５において、４９ａは書き換えレジスタである。モータドライバ制御データは、ＤＭＡコントローラ６、及びデータコントローラ９を介してＲＡＭ等のメモリ素子１からモータドライバ制御データが書き換えレジスタ４９ａに転送される。
【００６３】
書き換えレジスタ４９ａは、モータドライバ制御データをラッチ（保持）するタイミングにおいて以下の処理を行う。
【００６４】
マスクデータレジスタ４７にマスクデータが書き込まれ、かつその書き換え許可フラグがイネーブルになっている場合には、書き換えレジスタ４９ａ内のモータドライバ制御データの一部をマスクデータレジスタ４７のデータにより書き換えて書き換えレジスタ４９ａにラッチする。
【００６５】
一方、マスクデータレジスタ４７の書き換え許可フラグがディスイネーブルになっている場合には、マスクデータレジスタ４７のデータ内容に関らず、モータドライバ制御データは書き換えられずに、ＤＭＡ転送によって取得したモータドライバ制御データがそのままラッチされる。
【００６６】
この書き換え許可フラグの設定タイミングは、ＣＰＵがモータ制御回路から割り込み信号を受けて、次の駆動パターンの情報を設定するタイミングであるのが好ましい。
【００６７】
また、書き換えレジスタ４９ａのラッチのタイミングは、ＤＭＡコントローラ６から送信されるＤＭＡデータがデータバス上に確定されたことを示すフラグ（データアック信号）を用いて設定される。つまり、ＤＭＡデータをデータバス上からラッチするのと同時に書き換えを実施する。そのため、新たにラッチタイミングを設定する必要がなく、回路構成も容易となる。
【００６８】
モータドライバ制御データは、シリアルデータ生成部１２に転送され、モータドライバ３に転送される。
【００６９】
このように、自動的にモータドライバに駆動データを転送する回数Ｎについて、モータドライバ制御データはマスクデータレジスタに格納された値で書き換えられて転送される。
【００７０】
（第２の実施形態）
以下、本発明に係るインクジェットプリンタの第２の実施形態について説明する。第２の実施形態のインクジェットプリンタも第１の実施形態と同様な構成であり、以下では第１の実施形態と同様な部分については説明を省略し、第２の実施形態の特徴的な部分を中心に説明する。
【００７１】
図９は、第２の実施形態のインクジェットプリンタにおけるモータの制御に関する構成を示すブロック図である。図中６４のモータドライバは第１の実施形態のモータドライバ３とは異なり、制御信号がパラレルに入力されるように構成されている。これに応じて６５の駆動データ制御部は、駆動データバッファ４９に格納された駆動データと、時間データ１１とからパラレルデータを生成し、設定された励磁時間毎にモータドライバ６４に送信する。
【００７２】
このように、制御信号がパラレルに入力されるように構成されているモータドライバに対しても本発明に係るモータ制御方法は同様に適用できる。
【００７３】
＜その他の実施形態＞
以上説明した実施形態は、ＣＲモータ及びＬＦモータに本発明を適用した場合について説明したが、インクジェットプリンタの構成として設けられる、記録ヘッドに対しての回復手段を駆動する回復用モータにも適用できる。この回復手段は、記録ヘッドに対しての例えば、キャッピング動作、クリーニング動作、加圧動作、吸引動作を行い、安定した記録を行うために有効である。
【００７４】
また、例えばＣＲモータにはＤＣモータ（モータの駆動をサーボ制御により行う）を適用し、ＬＦモータにはステップモータを適用した場合でも構わない。
【００７５】
更に、インクジェットプリンタのモータを制御する場合を例に挙げて説明したが、モータを使用する装置であれば、本発明はインクジェットプリンタ以外の様々な装置に適用することができる。
【００７６】
更に、モータの種類に関しては、ステップモータ以外のモータであっても、モータドライバにデジタルデータを送信することによって制御可能なモータであれば、本発明を適用できる。
【００７７】
また、上記第１の実施形態及び第２の実施形態においては、ＲＡＭ、ＣＰＵ、ＡＳＩＣ，ＲＯＭのデバイスが単独の部品として構成されている例を挙げたが、ＣＰＵとＡＳＩＣがワンチップで構成されていても良い。同様にＲＡＭ、ＣＰＵ、ＡＳＩＣがワンチップ、もしくは全てのデバイスがワンチップで構成されていても良い。
【００７８】
また、ＲＡＭは、ＳＲＡＭ（Ｓｔａｔｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ　Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）のいずれであっても良い。さらにＲＯＭはマスクＲＯＭ，ＯＴＲＯＭ（Ｏｎｅ　Ｔｉｍｅ　ＲＯＭ）、Ｆｌａｓｈ　ＲＯＭのいずれであっても良い。
【００７９】
なお、本発明は、複数の機器（例えばホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００８０】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００８１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８２】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００８３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８４】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した（図７に示す）フローチャートに対応するプログラムコードが格納されることになる。
【００８６】
なお、本発明の実施態様としては、以下のようなものがある。
【００８７】
＜実施態様１＞　モータを動力源として使用して機構を駆動するモータの制御装置であって、
所定長のデジタル形式の駆動データの入力に応じて、モータを駆動するモータドライバと、
複数の駆動パターンに対応した駆動データを格納するメモリと、
メモリからＤＭＡによって読み出した駆動データの一部を他のデータと置き換えて、モータドライバに出力するドライバ制御手段と、を備えるモータの制御装置。
【００８８】
＜実施態様２＞　駆動データは所定長のビットからなり、
ドライバ制御手段は、駆動データを格納するバッファと、他のデータを格納するレジスタと、置き換えるビットを選択するセレクタと、を含む実施態様１に記載のモータの制御装置。
【００８９】
＜実施態様３＞　ドライバ制御手段が、一部が置き換えられた駆動データをシリアルデータとしてモータドライバに出力するデータ出力手段を含む実施態様１又は２に記載のモータの制御装置。
【００９０】
＜実施態様４＞　ドライバ制御手段が、一部が置き換えられた駆動データをパラレルデータとしてモータドライバに出力するデータ出力手段を含む実施態様１又は２に記載のモータの制御装置。
【００９１】
＜実施態様５＞　モータがステップモータである実施態様１から４のいずれかに記載のモータの制御装置。
【００９２】
＜実施態様６＞　所定長のデジタル形式の駆動データの入力に応じて、モータを駆動するモータドライバを有し、モータを動力源として使用して機構を駆動する、モータの制御装置におけるモータの制御方法であって、
複数の駆動パターンに対応した駆動データをメモリに格納する格納工程と、
メモリからＤＭＡによって読み出した駆動データの一部を他のデータと置き換えて、モータドライバに出力するドライバ制御工程と、を備えるモータの制御方法。
【００９３】
＜実施態様７＞　実施態様６に記載のモータの制御方法をコンピュータによって実現するコンピュータプログラム。
【００９４】
＜実施態様８＞　実施態様７に記載のコンピュータプログラムを格納した記憶媒体。
【００９５】
＜実施態様９＞　モータを動力源として使用して機構を駆動し、所定長のデジタル形式の駆動データの入力に応じて、モータを駆動するモータドライバと、複数の駆動パターンに対応した駆動データを格納するメモリと、メモリからＤＭＡによって読み出した駆動データの一部を他のデータと置き換えて、モータドライバに出力するドライバ制御手段と、を備えるモータの制御装置を含む電子機器であって、
ドライバ制御手段は、駆動データの読み出し及び出力を所定回数連続して処理した後に割込み信号を発生し、
電子機器のＣＰＵは、割込み信号に応じて、ドライバ制御手段がメモリから読み出すアドレスを指定すると共に、他のデータを変更する電子機器。
【００９６】
＜実施態様１０＞　モータによって記録媒体の搬送機構を駆動する実施態様９に記載の電子機器。
【００９７】
＜実施態様１１＞　モータを駆動して記録動作を行う記録装置であって、
所定長のデジタル形式の駆動データに応じて、モータを駆動するモータドライバと、
複数の駆動パターンに対応した駆動データを格納するメモリと、
メモリからＤＭＡによって読み出した駆動データの一部を他のデータに変更し、モータドライバに出力すると共に、駆動データの読み出し及び出力を所定回数連続して処理した後に割込み信号を発生するドライバ制御手段と、
割込み信号に応じて、ドライバ制御手段に対して、メモリの読み出しアドレスの指定を行うと共に、駆動データの変更設定を行う制御手段と、を備える記録装置。
【００９８】
＜実施態様１２＞　駆動データの変更によって、モータに与える電流値を変更する実施態様１１に記載の記録装置。
【００９９】
＜実施態様１３＞　メモリに格納されている所定長のデジタル形式の駆動データをＤＭＡ手段によって入力し、モータを駆動するモータドライバに対して駆動データを出力するモータドライバコントローラであって、
駆動データを書き換えるのに用いるマスクデータを保持するマスクデータレジスタと、
ＤＭＡ手段によって入力する駆動データをラッチする際、マスクデータレジスタに格納されているマスクデータにより所定のビットを書き換えて保持する書き換えレジスタと、
書き換えレジスタに保持された駆動データをモータドライバへ出力するデータ出力手段と、を備えるモータドライバコントローラ。
【０１００】
【発明の効果】
以上説明したように本発明によれば、メモリ内に格納された駆動データの一部を他のデータと置き換えることにより異なる駆動データを生成して、モータドライバに転送することができる。例えば、駆動データのトルク設定ビットを、他のデータと置換することによって、１種類の駆動データを用いて任意のトルクでモータを駆動することができる。
【０１０１】
従って、ＤＭＡ転送を使用した構成において、メモリに格納するモータの駆動データの量を削減でき、モータの制御に使用するメモリ容量を低減することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態におけるモータの制御に関する構成を示すブロック図である。
【図２】ＤＭＡ転送を用いてモータの制御を行う従来例の構成を示すブロック図である。
【図３】モータドライバへの駆動データの転送タイミングの例を示す図である。
【図４】本発明の第１の実施形態としてのインクジェットプリンタを正面から見た概略構成図である。
【図５】図４のインクジェットプリンタの用紙搬送に関する構成を側面から示した図である。
【図６】第１の実施形態のインクジェットプリンタの電気回路の全体構成を示した図である。
【図７】第１の実施形態における駆動の際の処理を示すフローチャートである。
【図８】用紙をある一定距離搬送させるためにモータを駆動した時のモータの巻き線に流れる電流を示すグラフである。
【図９】第２の実施形態のインクジェットプリンタにおけるモータの制御に関する構成を示すブロック図である。
【図１０】第１の実施形態でモータ駆動を行うためのシリアルデータの構成を示す図である。
【図１１】４ビットの設定値と電流値の関係を示す図である。
【図１２】２ビットの設定値と設定されるモードの関係を示す図である。
【図１３】Ｗ１−２駆動のパターンの例を示した図である。
【図１４】Ｗ１−２相駆動の１６のステップを示す図である。
【図１５】第１の実施形態の変形例のインクジェットプリンタにおけるモータの制御に関する構成を示すブロック図である。
【符号の説明】
１　ＲＡＭ
２　ＡＳＩＣ
３　モータドライバ
４　ＣＰＵ
５　ＲＯＭ
６　ＤＭＡコントローラ
７　モータドライバコントローラ
８　コントロールブロック
９　データコントローラ
１０　モータドライバ制御データ
１１　時間データ
１２　シリアルデータ生成部
１３　タイミング制御部
１４　ストローブ
１５　転送クロック
１６　駆動データ
１７　シフトレジスタ
１８　ラッチ
１９　トルク設定
２０　回生電流設定（Ｂ相）
２１　電流設定（Ｂ相）
２２　位相情報（Ｂ相）
２３　回生電流設定（Ａ相）
２４　電流設定（Ａ相）
２５　位相情報（Ａ相）
２６　プリンタ装置
２７　キャリッジ
２８　シャフト軸
２９　駆動側プーリー駆動側
３０　プーリー
３１　タイミングベルト
３２　オートシートフィーダー
３３　ピックアップローラ
３４　搬送ローラ
３５　ピンチローラ
３６　記録用紙
３７　プラテン
３８　排紙ローラ
３９　記録ヘッド
４０　搬送用（ＬＦ）モータドライバ
４１　キャリッジ（ＣＲ）駆動用モータドライバ
４２　搬送用（ＬＦ）モータ
４３　キャリッジ（ＣＲ）モータ
４４　インターフェイス（Ｉ／Ｆ）
４５　電源ユニット
４６　ＤＭＡデータセレクタ
４７　マスクデータレジスタ
４８　マスクデータセレクタ
４９　駆動データバッファ
７０　マスクデータ
【図１】
2004007966.tif 000003
【図２】
2004007966.tif 000004
【図３】
2004007966.tif 000005
【図４】
2004007966.tif 000006
【図５】
2004007966.tif 000007
【図６】
2004007966.tif 000008
【図７】
2004007966.tif 000009
【図８】
2004007966.tif 000010
【図９】
2004007966.tif 000011
【図１０】
2004007966.tif 000012
【図１１】
2004007966.tif 000013
【図１２】
2004007966.tif 000014
【図１３】
2004007966.tif 000015
【図１４】
2004007966.tif 000016
【図１５】
2004007966.tif 000017