以下、本発明の一実施の形態について、図面を参照して説明する。
図1は、本実施の形態に係る印刷装置の構成例を示す斜視図である。なお、以下の説明においては、下方側とは、印刷装置が設置される側を指し、上方側とは、設置される側から離間する側を指す。また、後述するキャリッジ31が移動する方向を主走査方向、主走査方向に直交する方向であって印刷用紙10が搬送される方向を副走査方向とする。また、印刷用紙10が供給される側を給紙側(後端側)、印刷用紙10が排出される側を排紙側(手前側)として説明する。
図1において、インターフェース112は、制御部100とホストコンピュータ200とを電気的に接続し、これらの間で情報の授受を可能とするために信号の表現形式等を変換する機能を有する。制御部100は、ホストコンピュータ200から送信されてきた印刷データに基づいて印刷用紙10に画像を印刷するための制御を行う。なお、制御部100の詳細については後述する。キャリッジモータ36は、制御部100によって制御され、キャリッジ31を主走査方向に往復動作させる。なお、キャリッジ31の一部には光学センサ38が設けられており、この光学センサ38とスケール37によってリニアエンコーダが構成されている。制御部100は、このリニアエンコーダによってキャリッジ31の現在の位置を知ることができる。紙送りモータ51は、紙送りローラ50に駆動力を与えることにより、印刷用紙10を副走査方向に移動させる。ホストコンピュータ200は、HDD(Hard Disk Drive)201を有しており、このHDD201には、印刷用紙10の印刷に対応させて画像を加工するための画像加工プログラム等が記憶されている。
キャリッジ31の下部に設けられ、各インクに対応づけられたノズルには、それぞれピエゾ素子(不図示)が配置されている。このピエゾ素子の作動により、インク通路の端部にあるノズルからインク滴を吐出することが可能となっている。なお、記録ヘッド32は、ピエゾ素子を用いたピエゾ駆動方式に限られず、その他の方式を用いても良い。その他の方式としては、例えば、インクをヒータで加熱し、発生する泡の力を利用するヒータ方式、磁歪素子を用いる磁歪方式、静電気力を利用した静電方式、ミストを電界で制御するミスト方式等が、主な方式として挙げられる。
キャリッジ31は、印刷用紙10に対して往復移動自在に構成されている。キャリッジ31は、シアン、マゼンタ、イエロー、および、ブラックインクが内部に貯留されたインクカートリッジ30を保持している。キャリッジ31の下方側には、印刷用紙10に対向するように、記録ヘッド32が設けられており、インクカートリッジ30に貯留されているインクを吸引し、微小なインク滴として吐出可能としている。なお、搭載されるインクカートリッジ30は、4色に限られるものではなく、6色、7色および8色等、何色分であっても良い。また、インクカートリッジ30に充填されるインクは、染料系インクには限られず、顔料系インク等、他の種類のインクを搭載しても良い。
キャリッジ31には、タイミングベルト35の一部が固着されている。タイミングベルト35は、プリー33,34を連接するように架張されている。プリー33には、キャリッジモータ36の駆動力が伝達される。したがって、キャリッジモータ36が回転されると、キャリッジ31が図1中に矢印で示すX方向(主走査方向)に往復動作する。
キャリッジ31が往復動作する経路上には、リニアエンコーダを構成するスケール37が配置されている。キャリッジ31のスケール37に対向する面には、光学センサ38が配置されており、当該光学センサ38によってスケール37に印刷されたパターンを検出することにより、キャリッジ31の位置を特定する。
キャリッジ31の上流側(紙面の奥側)には、円柱形状を有する紙送りローラ50が設けられている。紙送りローラ50には、紙送りモータ(PFモータ)51の駆動力が伝達される。したがって、紙送りモータ51が回転されると、紙送りローラ50が回転され、印刷用紙10がY方向(図中矢印で示す方向)の排紙側に向けて搬送される。
紙送りローラ50の回転軸には、ロータリーエンコーダを構成するスケール114が設けられている。スケール114は、円板形状を有する板状部材の中心から一定半径の円周上に、光を透過する部分(透過部)と、光を遮断する部分(遮断部)とが交互に一定の間隔で設けられている。光学センサ113は、スケール114の外周部分を挟むように配置されており、発光部から光を照射し、スケール114の透過部を透過した光を受光部によって受光する。本実施の形態では、透過部と遮断部の間隔は、1/180インチとなっているとともに、紙送りモータ51が1スリット分だけ回転すると、1/1440インチだけ印刷用紙10が搬送されるように構成されている。なお、スリット間隔および搬送ピッチは、これには限られず、種々設定することが可能である。
図2は、図1に示す光学センサ113およびスケール114の詳細な構成例を示す図である。この図に示すように、光学センサ113は、4つの受光部113a〜113dおよび発光部113eを有しており、受光部113a〜113dおよび発光部113eがスケール114の透過部114aおよび遮断部114bが設けられた部分を挟んで対向する位置に配置されている。受光部113a〜113dは、例えば、フォトダイオード等によって構成され、スケール114の透過部114aを透過した光を受光し、光の強度に応じたレベルを有する信号を生成して出力する。受光部113a〜113dは、スケール114の円周方向に沿って配置されており、透過部114aおよび遮断部114bの周期に対してそれぞれ45度ずれた位置に配置されている。なお、この図では、受光部113a〜113dが円周方向に沿って並んで配置されているが、それぞれの位相差が確保できれば、それぞれが円周上の離れた場所に配置されるようにしてもよい。
発光部113eは、例えば、LED(Light Emitting Diode)等によって構成され、赤外線または可視光線を発生して、スケール114に照射する。
図3は、制御部100の詳細な構成例を示す図である。この図に示すように、制御部100は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、ASIC(Application Specified Integrated Circuit)104、DC(Direct Current)ユニット105、PFモータドライバ107、CRモータドライバ108、ヘッドドライバ109、不揮発性メモリ110、インターフェース112、光学センサ113、および、スケール114を有している。なお、制御部100には、紙幅検出のためのPW(Paper Width)センサ(不図示)、光学センサ40、ギャップ検出センサ(不図示)、光学センサ38、および、光学センサ113等が接続され、これらのセンサから入力された信号に基づいて、記録ヘッド32、紙送りモータ51、および、キャリッジモータ36等を制御する。
ここで、初期設定回路としてのCPU101は、ROM102や不揮発性メモリ110等に記憶されている制御プログラムを実行するための演算処理や、その他の必要な演算処理を行う。また、ROM102には、印刷装置を制御するための制御プログラムおよび処理に必要なデータ等が記憶されている。また、ASIC104は、パラレルインターフェース回路を内蔵しており、インターフェース112を介してホストコンピュータ200から供給される印刷信号を受け取ることができる。
RAM103は、CPU101が実行途中のプログラム/演算途中のデータ等を一時的に格納するメモリである。また、不揮発性メモリ110は、印刷装置の電源切断後も、保持の必要な各種データを記憶するためのメモリである。
また、DCユニット105は、DCモータであるキャリッジモータ36、紙送りモータ51の速度制御を行うための制御回路である。DCユニット105は、CPU101から送られてくる制御命令および光学センサ38,114からの出力信号等に基づいて、紙送りモータ51およびキャリッジモータ36の速度制御を行うための各種演算を行い、その演算結果に基づいて、紙送りモータドライバ107およびキャリッジモータドライバ108へ、モータ制御信号を送信する。
PFモータドライバ107は、DCユニット105から供給されたモータ制御信号に応じて、紙送りモータ51を駆動する駆動回路である。CRモータドライバ108は、DCユニット105から供給されたモータ制御信号に応じて、キャリッジモータ36を駆動する駆動回路である。ヘッドドライバ109は、ASIC104から供給された印刷信号に応じて記録ヘッド32に内蔵されているピエゾ素子を駆動し、印刷信号に対応したインク滴を発生して、印刷用紙10に所望の画像を印刷する。
また、上述の制御部100における各構成は、バス100aによって接続され、各構成の間でデータの授受を可能としている。
また、印刷装置は、インターフェース112を具備している。このインターフェース112を介して、ホストコンピュータ200が接続されている。なお、このホストコンピュータ200は、前述のように、HDD201を具備しており、このHDD201には、印刷用紙10の印刷に対応させて画像を加工するための画像加工プログラムが記憶されている。
図4は、DCユニット105に内蔵され、光学センサ113からの信号に基づいて印刷用紙10の位置情報を生成するための位置情報生成回路の詳細な構成例を示す図である。この図に示すように、位置情報生成回路は、回転方向判定回路105a,105b、32ビットカウンタ105c、および、33ビットカウンタ105dを主要な構成要素としている。
ここで、回転方向判定回路105aは、図2に示す受光部113a,113bから出力されるエンコーダ信号を参照し、スケール114が正転方向(紙送り方向)に回転しているか、または、逆転方向(紙送り方向とは逆方向)に回転しているかを検出し、正転方向に回転している場合には受光部113a,113bからのエンコーダ信号のエッジ部分においてパルス信号が出力されるABU信号(第1のカウント信号のひとつ)を出力し、逆転方向に回転している場合には受光部113a,113bからの信号のエッジ部分においてパルス信号が出力されるABD信号(第1のカウント信号のひとつ)を出力する。回転方向判定回路105bは、図2に示す受光部113c,113dから出力されるエンコーダ信号を参照し、スケール114が正転方向(紙送り方向)に回転しているか、または、逆転方向(紙送り方向とは逆方向)に回転しているかを検出し、正転方向に回転している場合には受光部113c,113dからの信号のエッジ部分においてパルス信号が出力されるCDU信号(第2のカウント信号のひとつ)を出力し、逆転方向に回転している場合には受光部113c,113dからの信号のエッジ部分においてパルス信号が出力されるCDD信号(第2のカウント信号のひとつ)を出力する。なお、回転方向判定回路105aから出力されたABU信号およびABD信号は32ビットカウンタ105cに供給される。また、回転方向判定回路105bから出力されたCDU信号およびCDD信号は33ビットカウンタ105dに供給される。
第1のカウンタおよびロード回路としての32ビットカウンタ105cは、32ビット幅のレジスタを有しており、回転方向判定回路105aから供給されるABU信号またはABD信号に含まれているパルスに応じて当該レジスタに格納されている値をカウントする動作を実行する。具体的には、ABU信号が出力されている場合(スケール114が正転方向に回転している場合)には、ABU信号のパルスの立ち上がりエッジに応じてレジスタのカウントアップ動作を実行し、ABD信号が出力されている場合(スケール114が逆転方向に回転している場合)には、ABD信号のパルスの立ち上がりエッジに応じてレジスタのカウントアップ動作を実行する。
32ビットカウンタ105cには、アドレス信号、データ信号、CE(チップイネーブル)信号、および、WR(ライト)信号が供給されており、CPU101はこれらの信号を用いることにより、32ビットカウンタ105cに所定の値を初期設定することができる。
32ビットカウンタ105cからは、データ信号、dWR信号、dABU信号およびdABD信号が出力されている。データ信号は、32ビットカウンタ105cのカウント値に応じたデータ信号である。dWR信号は32ビットカウンタ105cに入力されたWR信号が所定の時間だけ遅延された信号である。dABU信号およびdABD信号は、32ビットカウンタ105cに入力されたABU信号およびABD信号が所定の時間だけ遅延された信号である。
第2のカウンタとしての33ビットカウンタ105dは、33ビット幅のレジスタを有しており、紙送りローラ50が正転している場合にはdABU信号のパルスに同期して32ビットカウンタ105cのレジスタに格納されているカウント値を2倍してロードする。また、紙送りローラ50が逆転している場合にはdABD信号のパルスに同期して32ビットカウンタ105cのレジスタに格納されているカウント値を2倍してロードするとともに、LSB(Least Significant Bit)を“1”の状態にする(すなわち、2倍して1を加算した値をロードする)。また、33ビットカウンタ105dは、32ビットカウンタ105cに対してCPU101から所定のデータが書き込まれた場合には、dWR信号に同期して、32ビットカウンタ105cに書き込まれたデータを、例えば、2倍してロードする。なお、32ビットカウンタ105cの値を2倍してロードする方法としては、32ビットデータのMSB(Most Significant Bit)が33ビットカウンタ105dのMSBにくるように1ビットだけ桁をシフトして格納することにより実現できる。
また、33ビットカウンタ105dは、紙送りローラ50が正転している場合には、32ビットカウンタ105cからロードされたデータを、CDU信号に同期して1ずつカウントアップする。また、紙送りローラ50が逆転している場合には、32ビットカウンタ105cからロードされたデータを、CDD信号に同期して1ずつカウントダウンする。
33ビットカウンタ105dのカウント値は、CPU101によって読み出され、紙送りモータ51を制御する際に参照される。
つぎに、本発明の実施の形態の動作について説明する。
ホストコンピュータ200において、所定の画像を印刷する指示がなされると、ホストコンピュータ200は、HDD201に格納されている画像加工プログラムを起動し、印刷しようとする画像に対して、解像度変換処理、ハーフトーン処理、マイクロウィーブ処理等を施して印刷データを生成する。生成された印刷データは、インターフェース112を介して制御部100に供給される。
制御部100のCPU101は、ホストコンピュータ200からの印刷データを受信し、印刷が指示されたことを認識する。CPU101は、ASIC104を介してDCユニット105に制御信号を送り、キャリッジモータ36および紙送りモータ51の初期設定を行う。なお、初期設定の内容としては、例えば、制御用のパラメータ(例えば、ディケイモード)を設定し、インクリメンタル型のエンコーダの初期値を設定する。
紙送り制御の場合には、CPU101がCE信号およびアドレス信号によって32ビットカウンタ105cを選択し、WR信号によって書き込みを指示しながらデータ信号を供給してカウンタの初期値を書き込む。初期値としては、紙送りローラ50を正転させる場合には、例えば、“0”を書き込み、逆転させる場合には“FFFFFFFF”(16進数)を書き込む。この結果、32ビットカウンタ105cに内蔵されたレジスタには、初期値が格納される。
32ビットカウンタ105cへの初期値の書き込みが終了すると、32ビットカウンタ105cからは所定の時間遅延されたWR信号としてのdWR信号が出力されるとともに、32ビットカウンタ105cのレジスタに格納されている値がデータ信号として出力される。33ビットカウンタ105dでは、dWR信号の入力を受け、32ビットカウンタ105cから出力されるデータのMSBが、レジスタのMSBにくるように格納する。32ビットカウンタ105cから供給されるデータは32ビットであり、33ビットカウンタ105dのレジスタは33ビットであるので、この処理により、32ビットカウンタ105cから供給されたデータは、2倍されて33ビットカウンタ105dのレジスタに格納される。具体的には、例えば、紙送りローラ50が正転する場合であって、32ビットカウンタ105cに格納されている初期値が“0”であるときは、33ビットカウンタ105dには、“0”が格納される。なお、初期値が書き込まれた場合には、32ビットカウンタ105cの値を2倍して、33ビットカウンタ105dに書き込むようにしたが、2倍して1を加算して書き込むようにしてもよい。
初期設定が完了すると、CPU101は、キャリッジモータ36を制御して、キャリッジ31を印刷開始位置まで移動させるとともに、紙送りモータ51を制御して、印刷用紙10を印刷開始位置(例えば、紙検出センサによって紙端が検出される位置)まで移動させる。
図5は、紙送りモータ51が回転を開始した場合における各部の信号のタイミングを示すタイミング図である。なお、この図の例では、図面を簡略化するためにA相〜D相の信号は、一定周期の信号となっているが、実際には、回転を開始する場合は、紙送りモータ51の回転数に応じて周期の長い信号から周期の短い信号に徐々に移行していく。また、A相〜D相の信号のみならず、他の信号についても同様に紙送りモータ51の回転数に応じて変化する。
図5(A),(B)に示すA相およびB相のエンコーダ信号が回転方向判定回路105aに入力されると、回転方向判定回路105aは、A相およびB相の位相関係から紙送りモータ51の回転方向を判定する。具体的には、図6(A)に示すように、紙送りモータ51の正転時には、各エッジは、「A相の立ち上がりにおいてB相がロー」、「Bが立ち上がりにおいてA相がハイ」、「Aが立ち下がりにおいてB相がハイ」、「B相が立ち下がりにおいてA相がロー」状態となる。また、図6(B)に示すように、紙送りモータ51の逆転時には、各エッジは、「B相の立ち上がりにおいてA相がロー」、「Aが立ち上がりにおいてB相がハイ」、「Bが立ち下がりにおいてA相がハイ」、「A相が立ち下がりにおいてB相がロー」状態となる。回転方向判定回路105aは、A相およびB相のエッジにおける各相の信号のレベルを参照することにより、紙送りモータ51の回転方向を判定する。そして、正転している場合には、A相およびB相のエッジに対応してパルス波形が出力される信号としてのABU信号を出力する。また、逆転している場合には、A相およびB相のエッジに対応してパルス波形が出力される信号としてのABD信号を出力する。図5の例では、紙送りモータ51は正転しているので、A相、B相の立ち上がりおよび立ち下がりエッジにおいてパルス波形が出力される信号がABU信号として出力され(図5(E)参照)、ABD信号はローの状態を維持する(図5(F)参照)。
同様に、回転方向判定回路105bは、C相およびD相の信号に基づいて、回転方向を判定するとともに、正転している場合にはC相およびD相のエッジにおいてパルス波形が出力されるCDU信号を出力し、逆転している場合にはC相およびD相のエッジにおいてパルス波形が出力されるCDD信号を出力する。図5の例では、紙送りモータ51は正転しているので、C相、D相の立ち上がりおよび立ち下がりエッジにおいてパルス波形が出力される信号がCDU信号として出力され(図5(G)参照)、CDD信号はローの状態を維持する(図5(H)参照)。
回転方向判定回路105aからABU信号が入力されると、図5(I)に示すように、32ビットカウンタ105cは、内蔵されているレジスタの値をパルスの入力に応じて“1”だけインクリメントする。なお、図には示していないが、紙送りモータ51が逆転し、ABD信号が出力されている場合には、内蔵されているレジスタの値をパルスの入力に応じて“1”だけデクリメントする。この結果、32ビットカウンタ105cのカウント値は、A相およびB相の信号の立ち下がりおよび立ち上がりエッジに応じてカウントアップまたはカウントダウンされる。
32ビットカウンタ105cのカウント動作が行われると、32ビットカウンタ105cからはカウント後のカウント値をデータ信号として出力するとともに、ABU信号およびABD信号を所定量だけ遅延した信号であるdABU信号およびdABD信号を出力する。33ビットカウンタ105dでは、dABU信号が出力されている場合には、データ信号を2倍して内部のレジスタに読み込む。また、dABD信号が出力されている場合には、データ信号を2倍するとともに1を加算して内部のレジスタに読み込む。なお、正転と逆転の場合で、1を加算したりしなかったりするのは、正転と逆転が連続した場合に、カウント値の整合性がとれるようにするためであり、詳細については図8を参照して後述する。
図7は、32ビットカウンタ105dから33ビットカウンタ105dにデータが読み込まれる際の各部の信号波形のタイミングを示すタイミング図である。図7(A)に示すように、32ビットカウンタ105cにABU信号のパルスが入力されると、図7(B)に示すように、パルスの立ち下がりのタイミング(カウントポイント)で、32ビットカウンタ105cのカウント値が“0”から“1”にインクリメントされる。
32ビットカウンタ105cは、ABU信号(図7(A)参照)を時間τ遅延して、dABU信号(図7(C)参照)として出力する。33ビットカウンタ105dは、dABU信号のパルスを入力すると、パルスの立ち下がりのタイミングで、32ビットカウンタ105cから出力されているデータを2倍して読み込む。図7の例では、32ビットカウンタ105cのカウント値は、直前で“1”になっているので、33ビットカウンタ105dには、“1”が2倍された値“2”がdABUパルスの立ち下がりに同期して代入される。このように、ABU信号を時間τ遅延したdABU信号を用いることにより、32ビットカウンタ105cの値を確実に2倍して、33ビットカウンタ105dに代入することができる。なお、32ビットカウンタ105cにABD信号が入力された場合には、カウント値が1デクリメントされる。そして、33ビットカウンタ105dは、32ビットカウンタ105cから時間τ遅延されて出力されるdABD信号に同期して、32ビットカウンタ105cのカウント値(直前でデクリメントされた値)を2倍して1を加算して得られる値を読み込む。
33ビットカウンタ105dは、ABU信号に同期して32ビットカウンタ105cから読み込まれたカウント値(2倍されたカウント値)を、CDU信号のパルスに同期してカウントアップする。その結果、図7(J)に示すように、33ビットカウンタ105dのカウント値は、図7(I)に示す32ビットカウンタ105cのカウント値の2倍の頻度でインクリメントされる。なお、紙送りローラ50が逆転している場合には、33ビットカウンタのカウント値は、1ずつデクリメントされていく。
以上の動作により、32ビットカウンタ105cに格納されている値は、スケール114に刻まれたパターン(透過部および遮断部により形成されるパターン)の1周期につき4カウントする動作を行い、33ビットカウンタ105cに格納されている値は、スケール114に刻まれたパターンの1周期につき8カウントする動作を行う。CPU101は、33ビットカウンタ105dに格納されている値を読み出し、その値を参照して紙送りモータ51を駆動する。
紙送りモータ51を駆動する場合、モータの回転速度を目的速度まで上昇させる加速動作と、目的速度に到達した後に当該速度を保つ定速動作と、所定の位置で停止するための減速動作とを組み合わせて駆動される。したがって、紙送りモータ51を制御して、印刷用紙10を所定の位置まで紙送りする場合、CPU101は、33ビットカウンタ105dのカウント値が変化するのに要した時間を測定することにより、紙送りモータ51の速度を検出し、当該速度が目的の速度に到達したか否かを判定し、到達していない場合には紙送りモータ51に供給する電圧または電流を増加させることで、紙送りモータ51を加速する。
そして、目的速度に到達した場合には、電圧または電流を一定の状態にし、定速動作に移行する。つぎに、一定時間が経過した場合、または、33ビットカウンタ105dの値が所定の値になった場合には、紙送りモータ51に供給する電圧または電流を減少させることで、紙送りモータ51を減速する。つまり、CPU101は、33ビットカウンタ105dの値を参照し、目的位置まで印刷用紙10が移動したか否かを判定し、移動していない場合には紙送りモータ51の動作を継続し、目的の位置に到達した場合には動作を停止させ、例えば、ステッピングモータの場合にはホールド電流を流すことにより印刷用紙10を一定の場所に保持させる。
以上のような一連の制御において、CPU101は、33ビットカウンタ105dのカウント値を参照することにより、紙送りモータ51による紙送り量を検出し、検出結果に基づいて紙送りモータ51を駆動する。ところで、紙送りモータ51の回転数が高くなった場合には、A相およびB相と、C相およびD相のエッジが接近してくるため、32ビットカウンタ105cから33ビットカウンタ105dに値がロードされてから、33ビットカウンタ105dがインクリメントされるまでの時間が短くなってしまう。この結果、例えば、33ビットカウンタ105dのインクリメントまたはデクリメントが実行されなくなる場合も想定される。しかしながら、本実施の形態では、A相とB相は確実に判別できるように設定されていることから、回転数が高くなった場合でも32ビットカウンタ105cは確実に動作し、また、カウント値は33ビットカウンタ105dに確実に代入される。このことから、A相およびB相と、C相およびD相のエッジが接近した場合でも、誤差は常にプラスマイナス1の範囲内となる。ここで、誤差が生じる場合は、紙送りモータ51が高速で定速回転している場合(定速動作の場合)であり、その場合は検出精度を要求されないので、誤差を含んでいるLSBについては参照しないでもよい。
一方、減速動作の場合には、印刷用紙10を停止する位置を検出する必要があることから、検出精度を要求される。その場合、減速動作であるので、A相およびB相と、C相およびD相のエッジは近接した状態ではないことから、33ビットカウンタ105dは正確に動作する。このため、印刷用紙10の位置を33ビット精度で検出することができることから、位置精度の分解能を高めることができる。
以上をまとめると、本実施の形態では、エッジを確実に検出することができるA相およびB相を用いて、32ビットカウンタ105cをカウントし、当該カウンタの値を2倍した値を33ビットカウンタ105dに代入し、C相およびD相を用いて33ビットカウンタ105dをカウントするようにした。このため、A相およびB相と、C相およびD相のエッジは近接した状態ではない、例えば、減速動作時または停止時には33ビット精度で位置情報を得ることができる。また、加速動作時および定速動作時には、33ビットカウンタ105dのLSBについては精度を保証できないが、スケール114に刻まれたパターンの1周期について8つの位置情報を得ることができるので、位置情報を得ることができる頻度を向上させることが可能になる。
なお、以上の実施の形態では、紙送りモータ51を正転させる場合を例に挙げて説明したが、逆転させる場合でも本実施の形態は、位置情報を生成することができる。
図8は、紙送りモータ51を正転させた後、一定期間逆転させ、さらに正転させた場合における各部の信号のタイミングを示すタイミング図である。
まず、正転している場合、A相〜D相は図8(A)〜(D)に示すようになり、回転方向判定回路105aは、A相およびB相の信号のエッジ位置において、ABU信号としてパルスを出力する(図8(E)参照)。また、回転方向判定回路105bは、C相およびD相の信号のエッジ位置において、CDU信号としてパルスを出力する(図8(G)参照)。このとき、ABD信号およびCDD信号はローの状態を保持する(図8(F),(H)参照)。
32ビットカウンタ105cは、回転方向判定回路105aから供給されたABU信号のパルスに同期して内部のレジスタに格納されているデータをインクリメントする。この結果、図8(I)に示すように、32ビットカウンタ105cの値は0から1ずつ増加していく。
33ビットカウンタ105dは、32ビットカウンタ105cの値を2倍した値をABU信号のパルスに応じてロードし、CDU信号に応じて1ずつインクリメントすることから、図8(J)に示すように1ずつその値が増加するとともに、32ビットカウンタ105cの2倍の頻度でその値が増加していく。
そして、時刻T1において、紙送りモータ51が逆方向に回転を始めると、回転方向判定回路105aは、A相およびB相の信号のエッジ位置において、ABD信号としてパルスを出力する(図8(E)参照)。また、回転方向判定回路105bは、C相およびD相の信号のエッジ位置において、CDD信号としてパルスを出力する(図8(G)参照)。このとき、ABU信号およびCDU信号はローの状態を保持する(図8(F),(H)参照)。
紙送りモータ51が逆転している状態では、A〜D相の位相関係が逆転した状態となるので、ABD信号とCDD信号の位相関係も反転する。そして、逆転開始後に最初のCDD信号のパルスが33ビットカウンタ105dに入力されると、33ビットカウンタ105dは、カウンタの値を1だけデクリメントする。直前の値は、17であることから、デクリメント動作によって33ビットカウンタ105dの値は16になる。
つぎに、ABD信号のパルスが入力されると、32ビットカウンタ105cは、カウント値を1だけデクリメントする。直前のカウント値は8であることから、デクリメント動作によってカウント値は7となる。32ビットカウンタ105cのデクリメント動作が完了すると、33ビットカウンタ105dには、32ビットカウンタ105dのカウント値を2倍して1を加算した値がロードされる。このとき、32ビットカウンタ105cのカウント値は、7であるので、33ビットカウンタ105dには15(=7×2+1)が代入される。
つづいて、CDD信号のパルスが入力されると、33ビットカウンタ105dは、カウント値を1だけデクリメントするので、その値は14になる。
つづいて、ABD信号のパルスが入力されると、32ビットカウンタ105cは、カウンタ値を1だけデクリメントするので、カウント値は6となり、33ビットカウンタ105dには、32ビットカウンタ105cの値を2倍して1を加えて値が格納されることから、13(=6×2+1)が格納される。
つづいて、時刻T2において、紙送りモータ51が正転に転じると、ABU信号のパルスが入力され、32ビットカウンタ105cのカウント値が1だけインクリメントされ、7となる。また、33ビットカウンタ105dには32ビットカウンタ105cのカウント値が2倍された値が格納されることから、14が格納される。そして、CDU信号のパルスが入力されると、33ビットカウンタ105dの値が1だけインクリメントされるので15となる。そして、同様の動作が繰り返される。
以上に説明したように、本発明の実施の形態では、紙送りモータ51が正転している場合には、32ビットカウンタ105cのカウント値を2倍して33ビットカウンタ105dに格納し、逆転している場合には32ビットカウンタ105cのカウント値を2倍して1を加えた値を33ビットカウンタ105dに格納するようにしたので、正転および反転を繰り返した場合であっても、32ビットカウンタ105cおよび33ビットカウンタ105dのカウント値の整合性を保つことが可能になる。
なお、以上の実施の形態は、一例であって、これ以外にも種々の変形実施態様が存在する。例えば、以上の実施の形態では、32ビットカウンタ105cはA相、B相の2種類の信号に基づいてカウントし、33ビットカウンタ105dはC相、D相の2種類の信号に基づいてカウントするようにしたが、例えば、それ以外の種類の信号の組み合わせによってカウントを行うようにしてもよい。具体的には、32ビットカウンタ105cは、n(n≧1)種類のエンコーダ信号に基づいてカウント動作を行い、33ビットカウンタ105dは、m(m≧1)種類のエンコーダ信号に基づいてカウント動作を行い、32ビットカウンタ105cのカウント値が変化した場合には、当該カウント値を(m/n+1)倍して、33ビットカウンタ105dにロードするようにしてもよい。その場合、紙送りモータ51が正転している場合には、カウント値を(m/n+1)倍して33ビットカウンタ105dにロードし、逆転した場合には、当該カウント値を(m/n+1)倍するとともに、m/nを加えた値を33ビットカウンタ105dにロードするようにすればよい。
また、エンコーダ信号の相に注目するのではなく、32ビットカウンタ105cと33ビットカウンタ105dに入力されるABU信号、ABD信号、CDU信号、および、CDD信号に注目した場合にはつぎのようになる。すなわち、32ビットカウンタ105cは、エンコーダから出力されたエンコーダ信号に応じて生成された第1のカウント信号に基づいてカウント動作を行い、33ビットカウンタ105dは、エンコーダから出力されたエンコーダ信号に応じて生成され、第1のカウント信号の1周期中にn個(図4の例ではn=1)のカウントポイントを有する第2のカウント信号に基づいてカウント動作を行い、32ビットカウンタ105cのカウント値が変化した場合に、当該カウント値を(n+1)倍して、33ビットカウンタ105dのカウンタにロードする。その場合、紙送りモータ51が正転している場合には、カウント値を(n+1)倍して33ビットカウンタ105dにロードし、逆転した場合には、当該カウント値を(n+1)倍するとともに、nを加えた値を33ビットカウンタ105dにロードするようにすればよい。そして、nとしては任意の自然数を選択することができる。
また、以上の実施の形態では、32ビットカウンタ105cと33ビットカウンタ105dを組み合わせて使用するようにしたが、例えば、これ以外のビット数のカウンタを組み合わせて使用することも可能である。
また、以上の実施の形態では、33ビットカウンタ105dからカウント値を読み出す場合には全てのビットを読み出して、回転数に応じてLSBを取捨選択するようにしたが、例えば、CPU101のデータバス幅が32ビットの場合には、MSBを含む32ビット幅の第1の窓と、LSBを含む32ビット幅の第2の窓とを設け、高速で回転している場合には第1の窓のみを利用して32ビットデータを読み出し、低速回転している場合には第1の窓と第2の窓の双方を用いて33ビットデータを読み出すようにしてもよい。
また、以上の実施の形態では、紙送りローラ50に取り付けられたロータリーエンコーダの出力信号に基づいて位置情報を生成するようにしたが、例えば、キャリッジ31に設けられたリニアエンコーダに基づいて位置情報を生成するようにしてもよい。
また、以上の各実施の形態では、印刷装置はホストコンピュータ200に接続され、当該ホストコンピュータ200から印刷データを受信するようにした。しかしながら、例えば、画像の記憶手段、画像の編集手段、および、印刷データの生成手段等を有し、ホストコンピュータ200を接続しなくても印刷処理が可能ないわゆるスタンドアローンタイプの印刷装置に本発明を適用することも可能である。また、プリンタ(印刷装置)、スキャナ、ファクシミリ、および、コピー機が一体となったディジタル複合機に対しても本発明を適用可能である。
また、以上の実施の形態では、位置情報生成装置を印刷装置に実装した場合について説明したが、印刷装置以外にも、例えば、FA機器、計測機器、OA機器、医療機器、および、航空機器等に使用することが可能である。