(57)【特許請求の範囲】
【請求項１】
線状に配置された複数の発熱抵抗体を有するサーマルラインヘッドを用いて、記録紙に画像形成を行なうものであって、
画像情報をビットマップデータとして展開する展開手段と、
前記ビットマップデータを格納する記憶手段と、
前記記憶手段に格納されたビットマップデータを、前記複数の発熱抵抗体に対応した所定量毎に前記記憶手段から前記サーマルラインヘッドへ転送する第１のデータ転送手段と、
前記記憶手段に格納されているデータの量を検知する検知手段と、
前記記憶手段に格納されているデータ量に応じて前記第１のデータ転送手段による第１のデータ転送の周期を設定する周期設定手段と、
前記展開手段が有した前記ビットマップデータを格納する格納手段と、
前記格納手段に格納されている前記ビットマップデータを前記記憶手段に転送する第２のデータ転送手段と、を有し、
前記周期設定手段が、前記第１の転送手段によって前記記憶手段から前記サーマルラインヘッドに転送される前記ビットマップデータの転送速度が、前記第２のデータ転送手段によって前記格納手段から前記記憶手段へ転送される前記ビットマップデータの転送速度を越えないよう、前記周期を設定することを特徴とする、サーマルラインプリンタ。
【請求項２】
線状に配置された複数の発熱抵抗体を有するサーマルラインヘッドを用いて、記録紙に画像形成を行なうものであって、
画像情報をビットマップデータとして展開する展開手段と、
前記ビットマップデータを格納する記憶手段と、
前記記憶手段に格納されたビットマップデータを、前記複数の発熱抵抗体に対応した所定量毎に前記記憶手段から前記サーマルラインヘッドへ転送する第１のデータ転送手段と、
前記記憶手段に格納されているデータの量を検知する検知手段と、
前記記憶手段に格納されているデータ量に応じて前記第１のデータ転送手段による第１のデータ転送の周期を設定する周期設定手段と、
前記展開手段が有した前記ビットマップデータを格納する格納手段と、
前記格納手段に格納されている前記ビットマップデータを前記記憶手段に所定量ずつ転送する第２のデータ転送手段と、を有し、
前記周期設定手段が、前記記憶手段に格納される前記ビットマップデータが無くならないように前記周期を増減することを特徴とする、サーマルラインプリンタ。
【請求項３】
前記記録紙は感熱紙であること、を特徴とする請求項１または請求項２のいずれかに記載のサーマルラインプリンタ。
【請求項４】
前記サーマルラインプリンタは、前記記録紙を搬送駆動する駆動手段と、前記駆動手段の動作に同期して前記発熱抵抗体を前記転送されたビットマップデータに基づいて駆動する発熱制御手段とをさらに有し、
前記周期設定手段は、前記駆動手段による前記感熱紙の駆動速度を設定することにより、前記第１のデータ転送の周期を設定することを特徴とする、請求項１から請求項３のいずれかに記載のサーマルラインプリンタ。
【請求項５】
前記周期設定手段は、前記記憶手段に格納されているデータの量が少なくなると前記周期を長く設定することを特徴とする、請求項１から請求項４のいずれかに記載のサーマルラインプリンタ。
【請求項６】
前記周期設定手段は、段階的に前記周期を設定することを特徴とする、請求項５に記載のサーマルラインプリンタ。
【請求項７】
前記サーマルラインヘッドは、前記複数の発熱抵抗体に対応してビットが割り当てられたレジスタを有し、該レジスタのビットの値に応じて発熱駆動される構成となっており、前記転送手段は前記記憶手段から前記レジスタにデータを転送すること、を特徴とする請求項１から請求項６のいずれかに記載のサーマルラインプリンタ。
【請求項８】
線状に配置された複数の発熱抵抗体を有するサーマルラインヘッドに転送して、記録紙に画像形成を行なうサーマルラインプリンタにおいて、
画像情報をビットマップデータとして展開し、
展開した前記ビットマップデータを記憶手段に転送して格納させ、
データ転送手段によって、前記記憶手段に格納されたビットマップデータを、前記複数の発熱抵抗体に対応した所定量毎に前記記憶手段から前記サーマルラインヘッドへ転送し、
前記記憶手段に格納されているデータの量を検知し、
前記記憶手段に格納されているデータ量に応じて前記データ転送手段によるデータ転送の周期を設定するものであって、前記記憶手段から前記サーマルラインヘッドに転送される前記ビットマップデータの転送速度が、前記格納手段から前記記憶手段へ転送される前記ビットマップデータの転送速度を越えないよう、前記データ転送の周期を設定すること、を特徴とする、サーマルラインプリンタの駆動方法。
【請求項９】
線状に配置された複数の発熱抵抗体を有するサーマルラインヘッドに転送して、記録紙に画像形成を行なうサーマルラインプリンタにおいて、
画像情報をビットマップデータとして展開し、
展開した前記ビットマップデータを記憶手段に転送して格納させ、
データ転送手段によって、前記記憶手段に格納されたビットマップデータを、前記複数の発熱抵抗体に対応した所定量毎に前記記憶手段から前記サーマルラインヘッドへ転送し、
前記記憶手段に格納されているデータの量を検知し、
前記記憶手段に格納されているデータ量に応じて前記データ転送手段によるデータ転送の周期を設定するものであって、前記記憶手段に格納される前記ビットマップデータが無くならないように前記周期を増減すること、を特徴とする、サーマルラインプリンタの駆動方法。
【請求項１０】
前記記憶手段に格納されているデータの量が少なくなると前記周期が長く設定されることを特徴とする、請求項８または請求項９のいずれかに記載のサーマルラインプリンタの駆動方法。
【請求項１１】
前記サーマルラインヘッドは前記複数の発熱抵抗体に対応してビットが割り当てられたレジスタを有し、該レジスタのビットの値に応じて発熱駆動される構成となっており、前記データ転送手段は前記記憶手段から前記レジスタにデータを転送すること、を特徴とする請求項８から請求項１０のいずれかに記載のサーマルラインプリンタの駆動方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、サーマルラインヘッドにより画像形成を行なうサーマルラインプリンタおよびその駆動方法に関する。
【０００２】
【従来の技術】
従来より、画像情報をビットマップに展開し、展開されたビットマップの１行に対応する数の発熱抵抗体を線状に配置したサーマルラインヘッドを用いて、感熱紙に１行ずつ画像形成を行なうサーマルラインプリンタが知られている。通常、このようなプリンタにおいては、入力された画像情報をビットマップ展開してメモリに記憶させる。そして、メモリに記憶されたビットマップを出力用バッファに転送し、さらに、出力用バッファからサーマルラインヘッドのレジスタに、１行分ずつビットマップデータを転送し、印字を行う。通常、所定量の画像情報毎にメモリへのビットマップ展開が行われ、メモリに書き込まれたビットマップデータは随時バッファへと転送される。
【０００３】
【発明が解決しようとする課題】
上述のようなプリンタにおいて、画像形成処理が進行すると、ＣＰＵの負担が増大し、画像形成の速度に比べてビットマップ展開の速度が遅くなる場合がある。すなわち、バッファからサーマルラインヘッドへのデータの転送量が、バッファに転送されてくるデータの量を上回るような場合が生ずることがある。この場合、一時的にバッファ内に画像データが無くなり、画像形成処理が継続できなくなる。
【０００４】
通常、サーマルラインプリンタは、記録紙を搬送しつつ、１行毎に感熱紙を発色させて画像を形成していくが、バッファ内のデータが無くなると、印字動作が一時的に中断する。印字動作が中断してしまうと、次のデータがバッファに転送され、画像形成が再開された時に、停止前と停止後の印字行の行間のピッチがずれたり、印字が停止している間にサーマルラインヘッドの温度が下がるために印字濃度が変化するなど、画像の品質が低下するという問題があった。本発明は、上記のような画像の品質低下を防ぐことを課題としている。
【０００５】
【課題を解決するための手段】
上記の目的を達成するため、本発明のサーマルラインプリンタは、線状に配置された複数の発熱抵抗体を有するサーマルラインヘッドを用いて、記録紙に画像形成を行なうものであって、画像情報をビットマップデータとして展開する展開手段と、前記ビットマップデータを格納する記憶手段と、前記記憶手段に格納されたビットマップデータを、前記複数の発熱抵抗体に対応した所定量毎に前記記憶手段から前記サーマルラインヘッドへ転送する第１のデータ転送手段と、前記記憶手段に格納されているデータの量を検知する検知手段と前記記憶手段に格納されているデータ量に応じて、前記第１のデータ転送手段によるデータ転送の周期を決定する周期決定手段と、前記展開手段が有した前記ビットマップデータを格納する格納手段と、前記格納手段に格納されている前記ビットマップデータを前記記憶手段に転送する第２のデータ転送手段とを有し、前記周期設定手段が、前記第１の転送手段により前記記憶手段から前記サーマルラインヘッドに転送される前記ビットマップデータの転送速度が、前記第２のデータ転送手段により前記格納手段から前記記憶手段へ転送される前記ビットマップデータの転送速度を越えないよう、前記周期を設定することを特徴としている。
【０００６】
また、本発明のサーマルラインプリンタ駆動方法は、線状に配置された複数の発熱抵抗体を有するサーマルラインヘッドに転送して、記録紙に画像形成を行なうサーマルラインプリンタにおいて、画像情報をビットマップデータとして展開し、展開した前記ビットマップデータを記憶手段に転送して格納させ、前記データ転送手段によって、前記記憶手段に格納されたビットマップデータを、前記複数の発熱抵抗体に対応した所定量毎に前記記憶手段から前記サーマルラインヘッドへ転送し、前記記憶手段に格納されているデータの量を検知し、前記記憶手段に格納されているデータ量に応じて、前記データ転送手段によるデータ転送の周期を設定するものであって、前記記憶手段から前記サーマルラインヘッドに転送される前記ビットマップデータの転送速度が、前記格納手段から前記記憶手段へ転送される前記ビットマップデータの転送速度を越えないよう、前記データ転送の周期を設定することを特徴としている。
【０００７】
【実施例】
以下、図面を参照して本発明の実施例について説明する。
【０００８】
図１は本発明の実施例としての、サーマルラインプリンタ１の外観を示す斜視図である。本実施例のプリンタ１は、Ａ４サイズの幅の感熱紙を記録紙Ｐとして用いるもので、ほぼ直方体の形状のハウジング３を有している。ハウジング３には、制御回路・駆動回路・駆動モータ・サーマルラインヘッド・プラテンなどが収納されている。
【０００９】
ハウジング３には、カバー２が設けられている。カバー２は、ハウジング３の上面の２箇所２Ｘ、２Ｘで揺動可能に支持されている。図１中実線でカバー２を閉じた状態を、１点鎖線でカバー２を開いた状態を示す。
記録紙Ｐは、カバー２の支持部２Ｘ、２Ｘ間でカバー２とハウジング上面との間に形成された、記録紙挿入口４からプリンタ１内部へ導入され、画像形成が行なわれる。プリンタ１の内部に導入された記録紙Ｐは、その紙面に画像が形成されて、カバー２とハウジング前面との間に形成された記録紙排出口５から排紙される。
【００１０】
カバー２には、プリンタ１の動作状態を示す表示器（ＬＥＤ）７、８、９が設けられている。表示器７は、電源のオン・オフ及びエラーが発生しているかどうかを点灯・消灯及び点滅により示す。表示器８は、データが受信可能であるかどうかを示す。表示器９は、内蔵バッテリに関する情報を表示する。
【００１１】
また、ハウジング３の上面には、パワースイッチ６が設けられている。本実施例のプリンタ１においては、パワースイッチ６の操作方法（操作時間・回数）に応じて、プリンタ１の電源のオン・オフ、内蔵バッテリのリフレッシュ放電・充電といった動作モードの切換が行なわれるようになっている。ＣＰＵ１０は、ポートＰｏｒｔ８に入力される信号ＳＷにより、パワースイッチ６の操作状態を検知する。
【００１２】
図２は、本実施例のプリンタ１の制御を説明するブロック図である。
プリンタ１の駆動を制御するＣＰＵ（中央処理装置）として、１６メガバイトのアドレス空間を有する１チップＣＰＵ１０が用いられている。
ＣＰＵ１０は、アドレスポート  ＡＢ０〜ＡＢ２３  および  データポート  ＤＢ０〜ＤＢ１５  を介して、ＥＰＲＯＭ２１、ＤＲＡＭ２２、フォントＲＯＭ２３、Ｇ／Ａ（ゲートアレイ）２６と接続されている。
ＣＰＵ１０はアドレスポート  ＡＢ０〜ＡＢ２３  を介してアドレスバスＡＢへアドレスを指定するアドレスデータを送出し、また、データポート  ＤＢ０〜ＤＢ１５  を介してデータをデータバスＤＢを介して送受信する。
【００１３】
ＥＰＲＯＭ２１にはプリンタ１の駆動を制御するプログラムや各種初期データが書き込まれている。ＤＲＡＭ２２は、ホストコンピュータ等からプリンタ１に転送された印字データに基づいて画像出力のためのビットマップを展開するビットマップ領域ＢＭ、ビットマップ領域に展開されたデータをサーマルヘッドに転送する際のバッファとして用いられるバッファ領域ＢＦ、インターフェースからのデータを蓄える領域、その他各種処理の作業領域として使用されるダイナミックラムである。フォントＲＯＭ２３には、印字データをＤＲＡＭ２２上にビットマップ展開する際に使用する文字フォントデータが格納されている。
【００１４】
また、ＣＰＵ１０は、ゲートアレイ（Ｇ／Ａ）２６を介して、インターフェイス（Ｉ／Ｆ）２７とのデータのやりとりや、ＬＥＤ７、８、９の駆動などの処理を行う。
インターフェース（Ｉ／Ｆ）２７は、ホストコンピュータなどから転送されてくる印字データを受信するためのプリンタインターフェース（セントロニクス社仕様準拠）で、８本のデータ線と３本の制御線を有している。
８本のデータ線ＰＤＡＴＡ１〜８は、ホストコンピュータからの印字データの転送に用いられ、３本の制御線は、印字データをプリンタに読み込ませる信号（／ＤＡＴＡＳＴＢ）、プリンタがデータを受け取れないことを示す信号（ＢＵＳＹ）、プリンタがデータを読みとったことを示す信号（ＡＣＫ）、の信号の転送にそれぞれ用いられる。なお、本明細書においては、ロー・アクティブの信号およびロー・アクティブの信号を受けるポートは、その信号あるいはポートを表す文字列の前に「／」を付して示している。
【００１５】
ＣＰＵ１０のアナログポート  ＡＮ２  には、バッテリ電圧（または外部電源電圧）の分圧  Ｖ＿Ｂａｔｔ  が印加される。ＣＰＵ１０はポート  ＡＮ２  に印加された電圧値のＡ／Ｄ変換値に基づきバッテリ電圧（外部電源電圧）を検知している。
【００１６】
リセットＩＣ２４は、検知された電源電圧がある値以下になると、リセット信号（／ＲＥＳＥＴ）をＣＰＵ１０のポート／ＲＥＳＥＴに出力する。ＣＰＵ１０は、リセット信号を受けると、動作を停止する。従って、電源電圧が所定の電圧値以下になると、印字動作は停止することになる。
【００１７】
カバー２には記録紙センサ２５が設けられており、記録紙センサの出力信号が、ＣＰＵ１０のポートＰＴＯＰに入力される。記録紙センサ２５は、カバー２を閉じた状態で記録紙搬送路に臨むように配置されており、記録紙搬送路の記録紙の有無を検知する。カバー２を開いた状態では、記録紙センサ２５は常に記録紙を検出しないようになっている。従って、このセンサ２５の出力信号をモニタすることにより、記録紙がセットされてプリント動作が可能な状態かどうかを知ることができる。
【００１８】
Ｘ’ｔａｌ１５は水晶発振子で、ＣＰＵ１０のクロック入力端子に接続されて、ＣＰＵ１０内部の発振器と共に基準クロックの発生回路を構成する。基準クロックはＣＰＵ１０のクロック出力端子φからゲートアレイＧ／Ａ２６に供給される。ゲートアレイＧ／Ａ２６で、基準クロックは分周されて、転送クロックＣＬＫが生成される。ＣＰＵ１０は、基準クロックに基づいてＥＰＲＯＭ２１からプログラムを読み出し、ＤＲＡＭ２２のビットマップ領域ＢＭに印字データをビット展開する。
【００１９】
本実施例のサーマルラインプリンタにおいては、一旦１ページ分の印字データを受信した後で、所定量ずつビット展開する構成となっている。ビットマップ領域ＢＭにデータが展開されると、バッファ領域ＢＦに転送される。バッファ領域ＢＦのデータは、１ライン毎に所定量ずつ順次Ｇ／Ａ２６に内蔵されたパラレル・シリアル変換器に転送され、２分割された印字データＤＡＴＡ１およびＤＡＴＡ２として、転送クロックＣＬＫに同期して、サーマルヘッド４０に転送される。なお、ビットマップ領域ＢＭ、バッファ領域ＢＦのサイズには特に制限はないが、本実施例においては、１００印字行分のビットマップデータが格納できる容量に設定されている。
【００２０】
なお、サーマルヘッド４０の発熱抵抗体（図示せず）の発熱エネルギーは、ＣＰＵ１０の  Ｐｏｒｔ１〜Ｐｏｒｔ４  から送出されるストローブ信号（詳しくは後述）により制御される。言い換えれば、印字データＤＡＴＡ１およびＤＡＴＡ２により駆動されるべき発熱抵抗体が特定され、印字データ転送後に印加されるストローブ信号によって当該発熱抵抗体が画像形成に必要なエネルギーを発生するよう駆動される。
【００２１】
サーマルヘッド４０には、温度検出のためのサーミスタ４１が設けられている。サーミスタ４１の出力電圧はＣＰＵ１０のアナログ入力ポート  ＡＮ１  に印加される。ＣＰＵ１０は、印加された値（アナログ値）のＡ／Ｄ変換値に基づいて、サーマルヘッド４０の温度を検知している。
【００２２】
また、ＣＰＵ１０はポート  Ａ・／Ａ・Ｂ・／Ｂ  からモータ駆動回路３１へ、モータ３２の駆動を制御するためのモータ駆動制御パルスを送出している。モータ駆動については後に詳述する。
【００２３】
ポート  ＰＯＮ１  は、スイッチ素子としてのＦＥＴ５２をオン・オフするための信号を送出する。ポート  ＰＯＮ２  は、スイッチ素子としてのＦＥＴ５１をオン・オフするための信号を送出する。なお、外部電源（ＡＣアダプタ）が接続されている時にはスイッチ素子としてのトランジスタ５３がオンとなり、ポートＰｏｒｔ７に入力される信号／ＡＤＰＴ．ＩＮが”Ｌ”となる。ＣＰＵ１０は、／ＡＤＰＴ．ＩＮのレベルに基づいて、外部電源が接続されている時にはＦＥＴ５１、外部電源が接続されていない時にはＦＥＴ５２を、選択的にオンする。
【００２４】
パワースイッチ６がオンされると、ＦＥＴ５１及びＦＥＴ５２がオンされ、ＤＣ−ＤＣコンバータ５０に外部電源またはバッテリから電圧が供給される。ＤＣ−ＤＣコンバータ５０は、ＣＰＵ１０、ＥＰＲＯＭ２１、ＤＲＡＭ２２、ＲＯＭ２３等の駆動電源Ｖｃｃ（５ボルト）を出力する。
なお、一旦信号  ＰＯＮ１  および  ＰＯＮ２  によってＦＥＴ５１・ＦＥＴ５２が共にオフされると、ＤＣ−ＤＣコンバータ５０に電源が供給されなくなり、ＣＰＵ１０に駆動電圧Ｖｃｃが供給されなくなる。従って、ＦＥＴ５１・５２がオフされた場合には、パワースイッチ６を再度操作して、再起動する。
【００２５】
本プリンタ１は内蔵のニッケル−カドミウム電池１００を駆動電源として、約  １４．４  ボルトの電圧を得ている。また、本実施例のプリンタ１には電源コネクタ７０が設けられており、ＡＣアダプタ８０が接続可能となっている。ＡＣアダプタ８０は、プリンタ１の駆動電圧を供給するための定電圧回路８２に加えて、定電流回路８１を有している。定電圧回路８２は、コネクタ７０、ＦＥＴ５１を介して、ＤＣ−ＤＣコンバータ５０に接続される。
【００２６】
定電流回路８１は、コネクタ７０を介して、充電制御回路６０に接続される。プリンタ１側の制御によって、ＡＣアダプタ８０内部の定電流回路８１により出力される電流を用いて内蔵バッテリ１００の充電が行われる。
【００２７】
本実施例のプリンタ１は、内蔵バッテリ（ニッケル−カドミウム電池）１００のリフレッシュ・充電機能を有する。内蔵バッテリ１００のリフレッシュ・充電制御は、充電制御回路６０により行なわれる。ＣＰＵ１０のＰｏｒｔ５より／ＣＨＡＲＧＥ信号が充電制御回路６０に出力されると、充電制御回路６０は、定電流回路８１からの電流により、バッテリ１００の充電を開始する。充電の終了は、バッテリ１００の電圧をモニタすることにより行なわれる。
【００２８】
リフレッシュが行なわれる場合には、ＣＰＵ１０のＰｏｒｔ６から／ＲＥＦＲＥＳＨ信号が出力されて定電流回路８１からの電流はバッテリ１００には印加されなくなる。さらに、ＡＣアダプタ８０が接続されているにもかかわらず、ＦＥＴ５１がオフＦＥＴ５２がオン状態とされ、バッテリ１００のリフレッシュが実行される。
【００２９】
本実施例のプリンタのサーマルヘッド４０は図３に示すように２５６０ドット（２５６０個）の発熱抵抗体が横一列に並んだラインサーマルヘッドである。１番目から１２８０番目の発熱抵抗体に対応するビットマップデータ（オン・オフを示すデータ）はＤＡＴＡ１として、１２８１番目から２５６０番目の発熱抵抗体に対応するビットマップデータはＤＡＴＡ２として、ＣＰＵ１０によってバッファ領域ＢＦからサーマルヘッド４０へと送られる。なお、前述のように、サーマルヘッド４０に送られるビットマップデータはシリアルデータとして、転送クロックＣＬＫに同期して送られる。
【００３０】
感熱紙への印字は、２５６０個の発熱抵抗体を４ブロックに分割し、タイミングをずらして２ブロックずつ同時に駆動している（２分割駆動）。発熱抵抗体の４つのブロックは、ストローブ信号／ＳＴＢ１〜／ＳＴＢ４を”Ｌ”にすることにより、印字データ（ドットデータ）に従って通電され発熱する。
【００３１】
図３は、サーマルラインヘッド４０の構成を表す概念図である。上述のように１番目から１２８０番目までの発熱抵抗体４０Ｈに対応したデータＤＡＴＡ１がバッファ領域ＢＦからサーマルラインヘッド４０へ転送されてくると、データはサーマルラインヘッド４０に設けられたシフトレジスタ４０Ａに転送クロックＣＬＫに同期して格納される。１２８１番目から２５６０番目までの発熱抵抗体４０Ｈに対応したデータＤＡＴＡ２がバッファ領域ＢＦからサーマルラインヘッド４０へ転送されてくると、データはシフトレジスタ４０Ｂに格納される。サーマルヘッドの発熱抵抗体４０Ｈとシフトレジスタ４０Ａおよび４０Ｂの各ビットとは１対１に対応しており、シフトレジスタの内容が”１”ならば／ＳＴＢｎが”Ｌ”になったときに対応する発熱抵抗体が発熱し、内容が”０”ならば発熱抵抗体は発熱しない。
【００３２】
図４は、サーマルヘッド４０および駆動モータ３２の制御を示すタイミングチャートである。なお、本実施例においては、モータ３２の駆動制御パルス２パルスが、記録紙Ｐを画像１行分搬送するようになっている。すなわち、モータ駆動制御パルスＡおよび／Ａ、Ｂおよび／ＢのＨとＬの組み合わせが変わる毎にモータ３２が記録紙を半ライン分搬送し、１行分の画像が形成される間に２種類の駆動制御パルスの組み合わせパターンが生成されるようになっている。
【００３３】
ビットマップ領域ＢＭ上にビットマップが展開されると、バッファ領域ＢＦへビットマップデータが転送され、さらにバッファ領域ＢＦからサーマルヘッド４０へ１行分の印字データがシリアルデータとして転送される。前述のように、まず、ＤＡＴＡ１（発熱抵抗体の１個目から１２８０個目までに対応するデータ）をＣＬＫに同期して転送する。
【００３４】
ＤＡＴＡ１の転送が完了すると、モータ３２を駆動して記録紙の搬送を開始する。モータ３２に印加されるパルスのパターンの変化に対応して、／ＳＴＢ１、／ＳＴＢ２を”Ｌ”にして発熱抵抗体（１〜１２８０個目）を所定時間ＴＳＴＢの間駆動する。また、／ＳＴＢ１が”Ｌ”になると、シフトレジスタ４０Ｂにデータを書き込んでもシフトレジスタ４０Ａの内容は書き換えられないよう構成されており、／ＳＴＢ１、／ＳＴＢ２が”Ｌ”になると、速やかにＤＡＴＡ２の転送が開始される。すなわち１個目から１２８０個目の発熱抵抗体を駆動している間にＤＡＴＡ２（発熱抵抗体１２８１個目〜２５６０個目に対応するデータ）をＣＬＫに同期させて転送する。／ＳＴＢ１、／ＳＴＢ２による駆動が完了した時点ではすでにＤＡＴＡ２の転送も完了している。そこで、次のパターンびモータ３２の駆動制御パルスが出力される。駆動制御パルスの印加に対応して、所定時間ＴＳＴＢの間／ＳＴＢ３、／ＳＴＢ４を”Ｌ”にすることにより残りの発熱抵抗体（発熱抵抗体１２８１個目〜２５６０個目）を駆動する。こうして／ＳＴＢ１〜／ＳＴＢ４を所定時間ＴＳＴＢずつ”Ｌ”とすることにより、サーマルラインヘッドの一列の発熱抵抗体の駆動が完了する（１行分の画像形成が終了する
）。
【００３５】
モータ駆動制御パルス  Ａ・／Ａ・Ｂ・／Ｂ  は、詳しくは後述するが割り込み処理によってそのパターンが変化させられる。また、モータ駆動制御パルスのパターンの変更と同時にストローブパルス／ＳＴＢ１および／ＳＴＢ２（あるいは／ＳＴＢ３および／ＳＴＢ４）が”Ｌ”とされると共に、データＤＡＴＡ２（あるいはＤＡＴＡ１）の転送が実行される。図４においては、１個目から１２８０個目の発熱抵抗体が駆動されている間は、Ａ＝”Ｈ”、／Ａ＝”Ｌ”、Ｂ＝”Ｌ”、／Ｂ＝”Ｈ”  というパターンであり、この間にＤＡＴＡ２の転送が行われる。次に、モータ駆動制御パルスは  Ａ＝”Ｈ”、／Ａ＝”Ｌ”、Ｂ＝”Ｈ”、／Ｂ＝”Ｌ”  というパターンに変わり、同時に１２８１個目から２５６０個目の発熱抵抗体が駆動される。この時ＤＡＴＡ１の転送が行われる。以降、同様にして、モータ駆動制御パルスのパターンが更新され、同時に４分割された発熱抵抗体の２ブロックが駆動され、さらに、次に駆動される発熱抵抗体に対応したデータの転送が行われる。
【００３６】
図５は、ビットマップデータの転送過程を示す図である。
前述の通り、プリンタ１に入力された画像データは、ＤＲＡＭ２２のビットマップ領域ＢＭにビット展開される。ビットマップ領域ＢＭのデータは所定の順序でバッファ領域ＢＦに転送される。本実施例のプリンタにおいては、ビットマップ領域ＢＭは１００行分のビットマップデータを記憶するようになっており、１００行分のデータがすべてバッファ領域ＢＦに転送された後に、次の１００行分の画像データのビットマップ展開が実行される。
【００３７】
ＣＰＵ１０は、ビットマップ領域ＢＭのデータを書き込む際に、図示しないＤＲＡＭ２２のポインタ格納領域に格納されたバッファ領域ＢＦのアドレスを示すライトポインタＷ．Ｐ．を参照し、ビットマップ領域ＢＭから出力されるデータは、ライトポインタＷ．Ｐ．により指定されるアドレスに順次書き込まれる。ライトポインタＷ．Ｐ．の値は、指定したアドレスにデータが書き込まれると、次の書き込みアドレスへと更新される。また、ＣＰＵ１０は、バッファ領域ＢＦからサーマルラインヘッド４０（レジスタ４０Ａおよび４０Ｂ）へビットマップデータを転送する際に、上述のポインタ格納領域に格納されたバッファ領域ＢＦの読み出しアドレスを示すリードポインタＲ．Ｐ．を参照する。バッファ領域ＢＦの、リードポインタＲ．Ｐ．により指定されるアドレスから読み出されたデータは、ＤＡＴＡ１、ＤＡＴＡ２としてサーマルラインヘッド４０へ順次転送される。リードポインタＲ．Ｐ．の値は、指定したアドレスのデータが読み出されると、次の読み出しアドレスへと更新される。
【００３８】
なお、ビットマップ領域ＢＭはデータがすべて転送された後に次のデータが記録される。一方、バッファ領域ＢＦはＦＩＦＯ制御されており、先に書き込まれたデータから順に読み出され、読み出しの終了した領域には、新たなデータがビットマップ領域ＢＭから転送される。
【００３９】
図６は、本実施例のサーマルラインプリンタの制御を示すメインフローチャートである。本実施例においては、画像形成処理中にバッファ領域ＢＦのデータが無くならないように、バッファ領域ＢＦからサーマルラインヘッド４０（レジスタ４０Ａおよび４０Ｂ）データ転送のタイミングが制御される。バッファ領域ＢＦからサーマルラインヘッド４０（レジスタ４０Ａおよび４０Ｂ）へのデータ転送は、上述のように、ＤＡＴＡ１とＤＡＴＡ２が交互に転送される。そこで、バッファ領域ＢＦのデータが少なくなると、ＤＡＴＡ１およびＤＡＴＡ２の転送の間隔を引き延ばすことにより、バッファ領域ＢＦからレジスタ４０Ａおよび４０Ｂへのデータの転送量がビットマップメモリＢＭからバッファ領域ＢＦへのデータ転送量を下回るように制御し、バッファ領域ＢＦのデータ量がゼロにならないように制御している。
【００４０】
電源が投入されると、イニシャライズ・メモリテストが行われる（Ｓ１〜Ｓ５）。この際、後述する記録紙頭出し処理において参照されるフラグＦＬＡＧに０をセットする（Ｓ４）。メモリエラーが発見されると（Ｙ：Ｓ７）、印字動作を行わず、エラー表示を行って（Ｓ９）、動作を停止する。
【００４１】
Ｓ１１で記録紙センサ２５が記録紙を検出していれば、Ｓ１３で記録紙の頭出し（記録紙を印字位置まで搬送）を行い、インターフェースにデータが着信するまでは、Ｓ１１〜Ｓ１５の処理が繰り返される。なお、Ｓ１３の記録紙の頭出しは、初めて記録紙が検出された場合にのみ記録紙を所定の印字位置まで搬送するものであり、一旦頭出しが行われれば、それ以降はこのステップ（Ｓ１３）では何も行われず、次のＳ１５へ処理は進む。記録紙頭出し処理については後に詳述する。
【００４２】
データがインターフェースＩ／Ｆに着信すると（Ｙ：Ｓ１５）、再度記録紙の存在を調べる（Ｓ１７）。ここで記録紙が検出されると、頭出し処理が行われる（Ｓ１９）。なお、Ｓ１３と同様、頭出し処理は、初めて記録紙が検出された場合にのみ記録紙を印字位置まで搬送するもので、既に頭出し処理が実行されており、記録紙が所定位置まで搬送されている場合には、何もせずに次のステップへ進む。
【００４３】
１ページ分のデータの受信が終了するまでＳ１１〜Ｓ２３の処理が繰り返される。１ページ分のデータを受信すると、ＣＰＵ７０は印字データのビットマップメモリＢＭへのビットマップ展開を開始する（Ｓ２４）。ビットマップメモリＢＭにビットマップが展開されると、データはバッファＢＦに転送され、さらにバッファＢＦから１行分のデータがレジスタ４０Ａに転送される。なお、ビットマップメモリＢＭへのビットマップ展開、ビットマップメモリＢＭからバッファＢＦへのデータ転送はＳ２９以降、印字処理が実行されている間随時行われる。次いで、記録紙検出・頭出しが行われる（Ｓ２５、Ｓ２７）。ここでは、記録紙が検出されて印字位置に搬送された状態にならない限り処理は先へは進まない。なお、Ｓ２７の頭出し処理も、上述のＳ１３およびＳ１９の頭出し処理と同様、初めて記録紙を検出した場合にのみ記録紙の搬送処理が行われる。
【００４４】
１ページ分のデータが着信し、記録紙が印字位置まで搬送されると、まずＤＡＴＡ１がレジスタ４０Ａに転送される（Ｓ２９）。次に、モータ３４の駆動制御パルスのパターンを更新するモータ駆動割り込み処理を実行するためのタイマをスタートする（Ｓ３９）。モータ駆動割り込み処理においては、モータ駆動制御パルスの更新、ストローブパルスの制御、データ転送の制御等が行われる（詳しくは後述）。
【００４５】
印字が終了すると（ＹＥＳ：Ｓ４１）、モータ駆動割り込み処理用のタイマを停止し、画像形成の終わった記録紙を排出して（Ｓ４５）、次ページの印字処理に備える（Ｓ１１）。
【００４６】
図７は、図６のメインフローチャートのＳ１３、Ｓ１９およびＳ２７でコールされる記録紙頭出し処理の詳細を示すフローチャートである。
記録紙頭出し処理は、記録紙センサ２５が記録紙を検出しており、記録紙が印字位置まで搬送されていない場合にのみ、記録紙を搬送する処理である。まずＳ８１にて記録紙が搬送されたか否かを表すフラグＦＬＡＧが１か０かを見る。ＦＬＡＧは電源投入時（図６のＳ４）および記録紙排出後（Ｓ４６）には０に設定され、その間の処理においては、記録紙の頭出しが行われた場合にのみ１に設定される。
【００４７】
Ｓ８１でＦＬＡＧ＝１と判定された場合には、既に記録紙の頭出しは行われており、なにも行われないままに処理を終える。ＦＬＡＧ＝０と判定された場合には、印字領域の先端がプリンタの印字位置に到達するまで記録紙が搬送される（Ｓ８２）。記録紙の搬送が終わると、ＦＬＡＧを１にセットし、処理を終了する。
【００４８】
図８はモータ駆動割り込み処理を示すフローチャートである。
Ｓ６１にてモータ駆動制御パルスが出力される。モータ駆動制御パルスは本割り込み処理が実行される毎にそのパターンが更新される。言い換えれば、本割り込み処理が実行される度に記録紙が半ライン分ずつ搬送される。
【００４９】
次に、ストローブパルスが出力される（Ｓ６２）。本処理は記録紙が半ライン分搬送される毎に行われる処理であり、従って、Ｓ６２においては４ブロックに分割された発熱抵抗体のうち２ブロックに対応するストローブパルスが出力される。他の２ブロックに対応するストローブパルスは、次に本割り込み処理が実行される際に出力される。
【００５０】
ストローブパルスが出力されると、ストローブパルスを停止するための割り込み処理が実行されるまでの時間（所定時間：ＴＳＴＢ）をタイマにセットし、ストローブパルス用割り込み処理の割り込みを許可する。こうして全発熱素子の半分が駆動されている間に、他の発熱素子を駆動するためのデータをバッファＢＦからレジスタ４０Ａまたは４０Ｂに転送する（Ｓ６４）。データ転送後に、バッファＢＦにおけるデータの残量Ｘを検出し（Ｓ６５）、残量Ｘに応じて、次に本処理（モータ駆動割り込み処理）が実行されるまでの時間間隔を決定する（Ｓ６６）。すなわち、本処理が行われる度にデータがバッファＢＦからサーマルラインヘッド４０へ転送されるため、本処理が実行される時間間隔を変更することにより、バッファＢＦから転出されるデータ量を調整している。決定された時間間隔をタイマにセットして（Ｓ６７）、本処理を終了する。
【００５１】
なお、バッファ領域ＢＦのデータの残量は次のようにして計算される。
図５において、バッファ領域ＢＦのスタートアドレスをＳ．Ａ．とし、エンドアドレスをＥ．Ａ．とする（Ｓ．Ａ．＜Ｅ．Ａ．とする）。Ｒ．Ｐ．によって示される読み出しアドレスがＷ．Ｐ．によって示される書き込みアドレスより小さい場合には、データ残量Ｘは、次式（１）
Ｘ＝  Ｗ．Ｐ．  −  Ｒ．Ｐ．                  ・・・・・・（１）
により得られる。Ｒ．Ｐ．によって示される読み出しアドレスがＷ．Ｐ．によって示される書き込みアドレスより大きい場合には、データ残量Ｘは、次式（２）
Ｘ＝（  Ｗ．Ｐ．−Ｓ．Ａ．）＋（  Ｅ．Ａ．−Ｒ．Ｐ．）      ・・・（２）
により求められる。
【００５２】
次に、データ残量に応じて、次のモータ駆動割り込み処理が実行されるまでの時間間隔が決定される。時間間隔は、残量Ｘの関数として、
時間間隔  ＝ｆ（Ｘ）            ・・・・・・・・・（３）
と表される。関数ｆは、プリンタの仕様に応じて所定の関数が設定される。
【００５３】
図９は、モータ駆動割り込み処理の時刻時間間隔を決定する関数の一例を、フローチャートの形式で示したものである。
データ残量Ｘが、バッファ領域ＢＦの全容量の２５％未満、２５％以上５０％未満、５０％以上の場合に分け、それぞれの場合でパルス幅を異なる値としている。フローチャート中、１＜Ｋ１＜Ｋ２である。
また、式（３）は、次式（４）の定義を用いて、
Ｒ＝Ｘ／バッファ領域ＢＦの容量      ・・・・・・・・・（４）
次のようにＲの関数として記述することもできる。これによれば、図９のフローチャートから求められる次のモータ駆動割り込み処理が実行されるまでの時間間隔ｆ（Ｒ）は、基準時間間隔をＳＴＩとすると、次式（５）のように表されることになる。
ｆ（Ｒ）＝ＳＴＩ          （Ｒ＜２５％）
ｆ（Ｒ）＝ＳＴＩ×Ｋ１    （２５≦Ｒ＜５０％）
ｆ（Ｒ）＝ＳＴＩ×Ｋ２    （５０≦Ｒ）                ・・・・・・（５）
【００５４】
例えば、Ｋ１＝２、Ｋ２＝３とすることにより、データ残量Ｘ（すなわちその百分率Ｒ）が少なくなってきた場合に、ＣＰＵ１０の負担を相対的に減らすことができる。印字１行あたりの所要時間が増加し、かつＣＰＵ１０の負担が減るため、その間のＣＰＵ１０の処理能力にゆとりができ、バッファ領域ＢＦからサーマルラインヘッド４０へのデータの転送量に十分に対応できる速度でビットマップ展開の実行が可能となる。
【００５５】
図１０は、ストローブパルスを停止するための割り込み処理を示すフローチャートである。
図８のモータ駆動割り込み処理においてストローブパルスが出力され、同処理のＳ６３で設定されたストローブパルス幅に対応する時間が経過すると、図１０のストローブパルス用割り込み処理が実行されて、パルス出力を終了する（Ｓ７１）。さらに、Ｓ７２でストローブパルス用割り込み処理の割り込みを禁止する。本処理の割り込みは図８のＳ６３で許可される。このように制御することにより、ストローブパルス用割り込み処理はストローブパルスが出力されている時にのみ実行可能となる。
【００５６】
以上のように、本発明のサーマルラインヘッドプリンタおよびサーマルラインヘッド駆動方法によれば、画像形成処理が進行してＣＰＵの負担が増えても、ＣＰＵの処理時間にゆとりをもたせるような制御が行われるため、印字処理を途中で中断することなく、かつ、形成画像の品質を低下させることなく、画像形成処理を実行することが可能である。
【図面の簡単な説明】
【図１】本発明の実施例であるサーマルラインヘッドプリンタの外観を示す斜視図である。
【図２】サーマルラインヘッドプリンタの制御を説明するためのブロック図である。
【図３】サーマルヘッドの構成を示す図である。
【図４】印字制御を説明するためのタイミングチャートである。
【図５】ビットマップデータの転送を説明する概念図である。
【図６】サーマルラインヘッドプリンタの駆動制御を示すフローチャートである。
【図７】サーマルラインヘッドプリンタの記録紙頭出し処理を示すフローチャートである。
【図８】モータ駆動割り込み処理を示すフローチャートである。
【図９】モータ駆動割り込み処理の実行間隔を決定する処理の一例を示すフローチャートである。
【図１０】ストローブパルス用割り込み処理を示すフローチャートである。
【符号の説明】
１        プリンタ
２        カバー
３        ハウジング
１０        ＣＰＵ
２２        ＤＲＡＭ
ＢＭ        ビットマップ領域
ＢＦ        バッファ領域
４０        サーマルヘッド
４０Ａ、４０Ｂ    レジスタ
【図１】
0003586324.tif 000002
【図２】
0003586324.tif 000003
【図３】
0003586324.tif 000004
【図４】
0003586324.tif 000005
【図５】
0003586324.tif 000006
【図６】
0003586324.tif 000007
【図７】
0003586324.tif 000008
【図８】
0003586324.tif 000009
【図９】
0003586324.tif 000010
【図１０】
0003586324.tif 000011