JP4576021B2 - 印刷装置および印刷方法 - Google Patents
印刷装置および印刷方法 Download PDFInfo
- Publication number
- JP4576021B2 JP4576021B2 JP2000136574A JP2000136574A JP4576021B2 JP 4576021 B2 JP4576021 B2 JP 4576021B2 JP 2000136574 A JP2000136574 A JP 2000136574A JP 2000136574 A JP2000136574 A JP 2000136574A JP 4576021 B2 JP4576021 B2 JP 4576021B2
- Authority
- JP
- Japan
- Prior art keywords
- divided
- data
- buffer
- dots
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electronic Switches (AREA)
Description
【発明の属する技術分野】
本発明は、印刷装置および印刷方法に関し、特に、印刷ヘッドを構成する複数の発熱体をオンドット数に応じていくつかのグループに分割し、グループ毎に電流を流すことにより、印字品質を上げるようにした印刷装置および印刷方法に関する。
【0002】
【従来の技術】
従来、印刷装置としてのサーマルプリンタにおいては、印刷を行うサーマルヘッドは複数の発熱体から構成され、各発熱体に電流を流すことにより、発熱体に接した感熱紙に複数のドットからなる文字や図形等の印刷イメージを印刷することができるようになされている。従って、印刷イメージに応じて、黒のドットに対応する発熱体には電流を流し、黒でないドットに対応する発熱体には電流を流さないようにすることにより、複数のドットからなる上記印刷イメージを印刷することができる。
【0003】
また、バッテリ駆動する小型の携帯プリンタの場合、サーマルヘッドに流すことができる電流の大きさには限界があるため、電流を流すべき発熱体に対応するドット、即ち、オンドットの数(オンドット数)を求め、それを複数のグループに分割し、各グループ毎に順番に、各グループに属するドットに対応する発熱体に電流を流すようにしている。これにより、分割印字が可能となっている。
【0004】
分割印字するときに必要となるオンドット数に応じた分割数は、所定のメモリ上のテーブルに予め記憶しておき、オンドット数に応じてテーブルから分割数を参照し、分割処理を行っていた。
【0005】
【発明が解決しようとする課題】
しかしながら、従来の方法では、分割数を導き出す処理に必要な処理時間は短くて済むが、オンドット数に応じた細かな分割処理を行うような制御ができない課題があった。また、細かな制御を行うために、メモリ上のテーブル構成を細かくしてオンドット数に応じた分割数を示す細かなデータを設定すると、メモリ容量が多く必要となり、コスト高となる課題があった。
【0006】
本発明はこのような状況に鑑みてなされたものであり、バッテリの電圧、サーマルヘッド抵抗、オンドット数等の値から、サーマルヘッドの1ライン分を印刷するときに、オンドットを分割する分割数を計算によって算出し、分割したオンドットに対応するサーマルヘッドの発熱体に流す電流を細かく制御することができるようにするものである。
【0007】
【課題を解決するための手段】
請求項1に記載の印刷装置は、複数の発熱体からなる印刷ヘッドに電流を供給して印刷を行う印刷装置であって、印刷すべき印刷データを記憶する印刷データ記憶手段と、印刷データ記憶手段によって記憶された印刷データを複数の分割データに分割するときの分割数を、少なくとも印刷ヘッドに掛かる電圧、印刷ヘッドの抵抗値、印刷すべき印刷データのオンドット数、並びに、印刷ヘッドに供給可能な最大の電流値に基づいて演算する演算手段と、印刷データのオンドット数に基づいて、印刷データ記憶手段によって記憶された印刷データを、演算手段によって演算された分割数分の複数の分割データに分割するとともに、分割データの各々のオンドット数がほぼ等しくなるように、印刷データを分割する分割手段と、分割手段によって分割された各分割データを記憶する分割データ記憶手段と、分割データ記憶手段によって記憶された各分割データを順に印刷ヘッドに転送する転送手段と、転送手段によって転送された分割データのオンドット数に基づいて、発熱体に供給する電流を制御する制御手段とを備えることを特徴とする。
また、分割データ記憶手段は、複数個設けられるとともに、分割データを交互に記憶するようにできる。
請求項3に記載の印刷方法は、複数の発熱体からなる印刷ヘッドに電流を供給して印刷を行う印刷方法であって、印刷すべき印刷データを記憶する印刷データ記憶ステップと、印刷データ記憶ステップにおいて記憶された印刷データを複数の分割データに分割するときの分割数を、少なくとも印刷ヘッドに掛かる電圧、印刷ヘッドの抵抗値、印刷すべき印刷データのオンドット数、並びに、印刷ヘッドに供給可能な最大の電流値に基づいて演算する演算ステップと、印刷データのオンドット数に基づいて、印刷データ記憶ステップにおいて記憶された印刷データを、演算ステップにおいて演算された分割数分の複数の分割データに分割するとともに、分割データの各々のオンドット数がほぼ等しくなるように、印刷データを分割する分割ステップと、分割ステップにおいて分割された各分割データを記憶する分割データ記憶ステップと、分割データ記憶ステップにおいて記憶された各分割データを順に印刷ヘッドに転送する転送ステップと、転送ステップにおいて転送された分割データのオンドット数に基づいて、発熱体に供給する電流を制御する制御ステップとを備えることを特徴とする。
【0008】
【発明の実施の形態】
図1は、本発明が適用される携帯型のラベルプリンタの一実施の形態の構成例を示している。同図に示すように、ラベルプリンタは、各部を制御する制御部10と、ラベル1に印刷を行う印刷ヘッド5と、制御部10の制御により駆動されるステッピングモータ(以下では、適宜単にモータと記載する)7と、ベルト8を介して伝達されるモータ7の回転力によって回転し、後述する供給軸4にセットされたラベル連続体3を構成する台紙2及び台紙2に剥離可能に貼付されたラベル1を搬送するとともに、ラベル1を印刷ヘッド5に押圧するプラテンローラ6と、ラベル連続体3を回転自在に支持する供給軸4と、所定の光を出射する発光部と、発光部から出射された光を受光し、受光した光の強度(単位時間当たりの受光量)に対応する電気信号を出力する受光部とからなり、台紙2及びラベル1を挟むように発光部と受光部を配し、ラベル1とギャップ(隣接する2つのラベル1の間の台紙2のみの部分)を受光部の受光量に基づいて検出する位置検出センサ(以下では、適宜単にセンサという)9とを備えている。
【0009】
図2は、図1の実施の形態の電気的な構成例を示すブロック図である。同図に示すように、制御部10は、所定の制御プログラムを記憶するROM(readonly memory)12と、ROM12に記憶されている制御プログラムに従って動作し、各部を制御するCPU(central processing unit)11と、CPU11が動作する上で必要となる各種データを記憶するRAM(random access memory)13と、ステッピングモータ7にパルス信号を供給し、ステッピングモータ7を回転させるモータ制御部14と、CPU11から供給される印刷すべき文字、図形、及びバーコードなどの印刷データに対応する制御信号を生成し、印刷ヘッド5に供給し、印刷動作を行わせる印刷制御部15と、CPU11の制御下、センサ9の発光部を制御し、光を出射させるとともに、受光部から出力される電気信号を受け取り、ディジタルのデータに変換してCPU11に供給するセンサ制御部16と、外部インタフェース17と、インタフェース20とを備えている。そして、各種データを入力するための入力部18と、入力部18からの入力データや、各種情報を表示するためのモニタ19とがインタフェース20を介して接続されている。入力部18より入力された入力データは、インタフェース20を介してCPU11に供給され、モニタ19に表示される各種情報に対応する表示データは、インタフェース20を介してCPU11より供給されるようになされている。また、外部インタフェース17を介して、外部に接続された機器との間で各種データの送受信を行うことができるようになされている。
【0010】
印刷ヘッド5は、図3に示すように、複数の発熱体51から構成されており、各発熱体51は、印刷された印刷イメージを構成する各ドットにそれぞれ対応している。そして、発熱体51に電流が供給されると、その発熱体51により黒のドットが印刷される。電流が供給された発熱体51に対応するドットをオンドットと定義し、その数をオンドット数と定義する。
【0011】
印刷制御部15は、図7、図8を参照して後述するように、印刷すべき印刷データを記憶する描画バッファ131と、描画バッファ131に記憶された印刷データが後述する方法で分割されたものを記憶する分割バッファ132,133とから構成されている。分割バッファ132は、図9(A)に示すように、例えば、最大で108バイトの印刷データを記憶する複数のバッファ(この例では、1分割目のバッファ乃至15分割目のバッファ)から構成されており、分割バッファ133も同様に、図9(B)に示すように、例えば、最大で108バイトの印刷データを記憶する複数のバッファ(この例では、1分割目のバッファ乃至15分割目のバッファ)から構成されている。
【0012】
バッテリ駆動の携帯型のラベルプリンタのように、バッテリの能力の限界が比較的低いような場合、図3に示した印刷ヘッド5を構成する発熱体51のうち、オンドットに対応する全ての発熱体51に同時に電流を供給することができない場合がある。そこで、オンドットを複数のグループに分割し、グループ毎に順番に、グループに属するオンドットに対応する発熱体51にだけ電流を供給するようにする。例えば、グループA,B,Cに分割すると、最初、グループAに属するオンドットに対応する発熱体51にだけ電流を供給し、次に、グループBに属するオンドットに対応する発熱体51にだけ電流を供給し、次に、グループCに属するオンドットに対応する発熱体51にだけ電流を供給し、オンドットに対応する印刷イメージを印刷する。
【0013】
次に、図4のフローチャートを参照して、図3に示した印刷ヘッド5を構成する発熱体51のうち、印刷イメージに応じて電流が供給される発熱体51に対応するドット、即ちオンドットを分割する方法について説明する。この分割処理は、図2に示したCPU11によって行われる。
【0014】
まず最初に、ステップS1において、印刷ヘッド5に掛かっている電圧(ヘッド電圧(バッテリ電圧))を、図示せぬA/Dコンバータ(アナログ−デジタル変換器)を介して読み込む。次に、ステップS2において、ROM12等に記憶されている、例えば2ビットで構成され、4通りのステータスの指定が可能なヘッドステータスを読み込む。この例の場合、ヘッドステータスは例えば印刷ヘッド5のヘッド抵抗値等を表している。
【0015】
次に、ステップS3に進み、ステップS2で読み込んだヘッドステータスに基づいて、ヘッド抵抗値を設定する。次に、ステップS4において、1ドット当たりの電流値を算出する。1ドット当たりの電流値は、次式(1)により算出することができる。
【0016】
1ドット当たりの電流値=ヘッド電圧/ヘッド抵抗値・・・(式1)
【0017】
例えば、ヘッド電圧を14.8ボルト(V)、ヘッド抵抗値を450オーム(Ω)とすると、
となる。
【0018】
ステップS5においては、オンドット数が読み込まれる。オンドット数は、図3に示したように、電流が供給される発熱体51に対応するドットの数である。
これは、後述するように、描画バッファ131(図7、図8)に展開された印刷データから算出することができる。いま、印刷ヘッド5の幅(ヘッド幅)を108ミリメートル(mm)、オンドット数を130ドット、バッテリ上限電流値を2500mAとする。
【0019】
次に、ステップS6において、次式(2)より、総電流値が算出される。
【0020】
総電流値=オンドット数×1ドット当たりの電流値・・・(式2)
【0021】
いまの場合、オンドット数は130ドット、1ドット当たりの電流値は32.8mAであるので、
となる。
【0022】
次に、次式(3)より、分割数と余りを算出する。
【0023】
分割数=総電流値/バッテリ上限電流値・・・(式3)
ただし、余りがあるときは、分割数=分割数+1とする。
【0024】
即ち、ステップS7において、いまの場合、総電流値は4264mA、バッテリ上限電流値は2500mAであるので、式(3)より、
となる。
【0025】
次に、ステップS8において、余りがあるか否かが判定される。余りが0である、即ち、余りがないと判定された場合、ステップS10に進む。一方、余りがあると判定された場合、ステップ9において、ステップS7で算出した分割数に1だけ加算する。いまの場合、余り(1764)があるので、
となる。
【0026】
次に、ステップS10に進み、次式(4)より、1回のオンドット数が算出される。
【0027】
1回のオンドット数=オンドット数/分割数・・・(式4)
【0028】
いまの場合、オンドット数が130ドット、分割数が2であるので、
となる。
【0029】
次に、図5のフローチャートを参照して、ストローブ時間、即ち、印刷ヘッド5を構成する発熱体51に電流を流す時間を算出する方法について説明する。最初に、ステップS21において、印刷ヘッド5に掛かっている電圧(ヘッド電圧(バッテリ電圧))を、図示せぬA/Dコンバータ(アナログ−デジタル変換器)を介して読み込む。次に、ステップS22において、ROM12等に記憶されている、例えば2ビットで構成され、4通りのステータスの指定が可能なヘッドステータスを読み込む。この例の場合、ヘッドステータスは例えば印刷ヘッド5のヘッド抵抗値等を表している。
【0030】
次に、ステップS23に進み、ステップS22で読み込んだヘッドステータスに基づいて、ヘッド抵抗値を設定する。
【0031】
次に、ステップS24において、次式(5)によりヘッド印加電力が算出される。
【0032】
ヘッド印加電力=(ヘッド電圧−VL)2/(ヘッド抵抗値+PL)・・・(式5)
ここで、VLは、ヘッドの電圧降下(発熱体に電圧が掛かるまでの消失分)を表し、PLは、パワーのロス分を表している。VLの値、及びPLの値は、ヘッドメーカやヘッドの種類により異なる。
【0033】
ここでは説明を簡略化するため、VL=0、PL=0とする。いまの場合、ヘッド電圧は14.8V、ヘッド抵抗値は450Ωであるので、
となる。
【0034】
ステップS25においては、ROM12等に予め用紙の種類別に記憶されている、必要な印加エネルギーが読み込まれる。この印加エネルギーは、印刷を行う用紙の種類によって異なり、用紙の種類毎に所定の値が定まっている。プリンタの使用者は、使用前に入力部18から印刷を行う用紙の種類を指定する。指定された用紙の種類は、RAM13に記憶される。そして、指定された用紙の種類に対応する印加エネルギーが、ROM12から読み込まれる。
【0035】
次に、ステップS26において、次式(6)により、ストローブ時間が算出される。
【0036】
ストローブ時間=必要な印加エネルギー/印加電力・・・(式6)
【0037】
いまの場合、必要な印加エネルギーが0.3ミリジュール(mJ)、印加電力が0.5mWであるので、
となる。その後、処理を終了する。
【0038】
このようにして、オンドット数に応じた分割数及びストローブ時間が算出されると、図7、図8に示した描画バッファ131にセットされた印刷データのオンドットに対応する印刷データが分割数分のグループの印刷データ(分割データ)に分割される。分割された分割データは、後述するバッファ切り替えフラグ(chg_flg)の値に応じて、図7、図8に示した分割バッファ132,133のいずれかにセットされる。この分割バッファ132,133は、それぞれ、図10に示すように、ヘッド幅分のバイト数のデータを記憶可能なバッファを最大分割数分nだけ有している。
【0039】
ここでは、図9に示すように、108バイトのヘッド幅分のデータを記憶可能な1分割目のバッファ乃至15番目のバッファより構成されるものとする。以下では、1分割目のバッファをバッファ#1と記載し、2分割目のバッファをバッファ#2と記載し、以下同様にして、15番目のバッファをバッファ#15と記載することにする。また、以下では、バッファ#1乃至バッファ#15を特に区別する必要がない場合、適宜単にバッファと記載することにする。
【0040】
次に、図6のフローチャートを参照して、最大分割数分のバッファを2つ用意しておき、分割数算出後、描画バッファにセットされた1ライン分の印刷データが分割バッファ132,133の各バッファに転送される手順について説明する。最初、バッファ切り替えフラグchg_flgの値が0にセットされており、分割バッファ132に印刷データが転送されるものとする。
【0041】
まず、ステップS31において、描画バッファ131の印刷データが格納されている先頭のアドレスが読み出しアドレスとしてセットされる。次に、ステップS32において、上述した手順で求めた分割数が所定のカウンタにセットされる。次に、ステップS33において、分割バッファ132の先頭のアドレスが、分割バッファのアドレスとしてセットされる。
【0042】
ステップS34においては、描画バッファ131の上記アドレスから、1バイト分の印刷データ(以下、適宜単にデータと記載する)が読み出される。そして、ステップS35において、描画バッファ131の読み出しアドレスの値に1だけ加算される。次に、ステップS36に進み、描画バッファ131から読み出された1バイト分のデータが、分割バッファ132のn番目(最初、nの値は1にセットされている)のバッファ(図9)に書き込まれる。
【0043】
次に、ステップS37において、分割バッファ132のアドレスの値に1だけ加算される。次に、ステップS38において、描画バッファ131から読み出された1バイトのデータのオンドット数(ビットの値が1の数)が後述するテーブルを参照することによって算出される。次に、オンドット数のトータルの値が格納される変数であるトータルワーク(最初は0にセットされている)に、いま算出されたオンドット数が加算される。
【0044】
次に、ステップS40に進み、n番目のバッファに書き込まれたデータのオンドット数の総計、即ち、トータルワークの値と、図4を参照して上述した方法により算出される1分割当たりのオンドット数とが比較される。次に、ステップS41において、ステップS40における比較の結果、トータルワークの値の方が、1分割当たりのオンドット数より小さいとき、ステップS34に戻り、ステップS34以降の処理が繰り返し実行される。
【0045】
一方、ステップS41において、ステップS40における比較の結果、トータルワークの値の方が、1分割当たりのオンドット数より大きいか又は等しいとき、ステップS42に進む。
【0046】
ステップS42においては、分割バッファ132において、データを書き込むバッファを次のバッファに切り替える。いまの場合、n番目のバッファに書き込みを行っていたので、nの値に1を加算し、次のバッファに書き込みが行われるようにする。例えば、nの値が1である場合、nの値に1を加算し、次のバッファ、即ち2番目のバッファに書き込みが行われるようにする。
【0047】
次に、ステップS43に進み、上記処理が分割数分だけ行われたか否かが判定され、まだ分割数分だけ行われていないと判定された場合、ステップS34に戻り、ステップS34以降の処理を繰り返し実行する。一方、ステップS34乃至ステップS42の処理が、分割数分だけ行われたと判定された場合、ステップS44に進み、分割バッファ132,133の切り替えを指示するための変数であるバッファ切り替えフラグchg_flgの値に1を加算し、バッファ切り替えフラグchg_flgの値と1の論理積を演算し、演算結果をバッファ切り替えフラグchg_flgにセットする。
【0048】
バッファ切り替えフラグchg_flgは、例えば8ビットで表される変数であるとすると、バッファ切り替えフラグchg_flgの値が0、即ち、00000000の場合、バッファ切り替えフラグchg_flgの値に1を加算すると1、即ち00000001となるので、00000001と00000001の論理積を演算すると、演算結果は1となる。また、バッファ切り替えフラグchg_flgの値が1、即ち、00000001の場合、バッファ切り替えフラグchg_flgの値に1を加算すると2、即ち00000010となるので、00000010と00000001の論理積を演算すると、演算結果は0となる。
【0049】
このように、バッファ切り替えフラグchg_flgの値は、0と1とが交互に切り替わる。バッファ切り替えフラグchg_flgの値が0のとき、分割バッファ132にデータの書き込みが行われるようにし、バッファ切り替えフラグchg_flgの値が1のとき、分割バッファ133にデータの書き込みが行われるようにすると、ステップS44において、分割バッファ132及び分割バッファ133の切り替えが行われることになる。
【0050】
ステップS44の処理が終了すると、処理を終了する。この後、次のラインの印刷データについて、上述した場合と同様の処理が行われ、ステップS44において切り替えられた分割バッファ、いまの場合、バッファ切り替えフラグchg_flgの値1に対応する分割バッファ133への書き込みが行われる。
【0051】
例えば、図11に示すように、オンドット数が252となる印刷データが描画バッファ131に格納されているものとする。そして、上述した方法で算出された分割数が3となった場合、オンドット数を分割数で除算すると、84(=252÷3)となるので、描画バッファ131に格納されている印刷データが1バイトずつ順次読み出され、分割バッファ132又は分割バッファ133を構成するバッファに転送されるとともに、読み出された1バイトのデータの中に含まれるオンドット数が順次加算されていき、加算されたオンドット数が84を越えた時点で、次のバッファに切り替えて、同様の処理が行われる。
【0052】
このようにして、図12(A)、図12(B)、図12(C)に示したように、分割バッファ132又は分割バッファ133を構成するバッファ#1乃至バッファ#3に、それぞれオンドット数がほぼ84となる印刷データ(分割データ)がセットされる。
【0053】
例えば、図11において、データ00、01、02、03、...、1F、20、21のビットが1の数(オンドット数)を加算すると、83となる。
【0054】
即ち、「00」は16進数での表記であり、「00」を2進数で表すと「00000000」であり、ビットが1の数は0である。「01」を2進数で表すと「00000001」となり、ビットが1の数は1である。即ち、0乃至15(16進数で表すとF)を2進数で表したとき、ビットが1の数は次のようになる。
【0055】
0(=0000)のビットが1の数は0
1(=0001)のビットが1の数は1
2(=0010)のビットが1の数は1
3(=0011)のビットが1の数は2
4(=0100)のビットが1の数は1
5(=0101)のビットが1の数は2
6(=0110)のビットが1の数は2
7(=0111)のビットが1の数は3
8(=1000)のビットが1の数は1
9(=1001)のビットが1の数は2
A(=1010)のビットが1の数は2
B(=1011)のビットが1の数は3
C(=1100)のビットが1の数は2
D(=1101)のビットが1の数は3
E(=1110)のビットが1の数は3
F(=1111)のビットが1の数は4
【0056】
例えば、データ「1A」のビットが1の数は3(=1+2)となり、データ「21」のビットが1の数は、2(=1+1)となる。このようにして、各バイトのオンドット数を算出し、順次加算していくと、トータルのオンドット数が求まる。
【0057】
従って、データ「00」、「01」、「02」、「03」、...、「20」、「21」の各々のビットが1の数(オンドット数)を加算すると83となり、次のデータ「22」のビットが1の数(=2)を加算すると85となるので、データ「22」以降のデータはバッファ#2に転送される。そして、データ「22」、「23」、...、「3A」の各々のビットが1の数(オンドット数)を加算すると81となり、次のデータ「3B」のビットが1の数である5(=2+3)を加算すると86となるので、データ「3B」以降のデータはバッファ#3に転送される。
【0058】
このようにして、図12(A)、図12(B)、図12(C)に示すように、バッファ#1乃至バッファ#3にデータ(分割データ)が転送される。そして、バッファ#1に転送されたデータのビットが1の数は83、バッファ#2に転送されたデータのビットが1の数は81、バッファ#3に転送されたデータのビットが1の数は85となる。このように、バッファ#1乃至#3のそれぞれにおいて、データのビットが1の数(オンドット数)は、それぞれ84前後の数となる。バッファ#1乃至バッファ#3にセットされたデータは、順次印刷ヘッド5に転送され、各バッファにセットされたデータに対応する発熱体51に順に電流が供給され、印刷が行われる。
【0059】
バッファ#1乃至バッファ#3に転送されたデータのビットが1の数が、上述したように、各バッファ毎にほぼ一定となるため、各バッファに転送された分割データのオンドットに対応する発熱体51に流す電流値をほぼ一定にすることができ、印字濃度のばらつきを解消することができる。また、バッテリへの負荷が一定となるため、バッテリの劣化を抑制することができる。
【0060】
次に、図13のフローチャートを参照して、分割バッファ132,133に分割データを交互にセットし、分割バッファ132,133にセットされた分割データを、印刷ヘッド5に転送するサブルーチンの処理手順について説明する。図13のフローチャートに従って処理を実行するサブルーチンは、1ライン分の印刷が行われる度に、分割数分だけ呼び出される。また、フローチャートの中で使用される変数Put_cntと、分割バッファ132及び分割バッファ133のいずれを転送先にするかを指定するためのバッファ切り替えフラグchg_flgと、ヘッド転送回数を表す所定の変数は、それぞれ最初は初期設定されている(値0がセットされている)ものとする。
【0061】
まず最初に、ステップS51において、転送回数を表す変数Put_cntの値が2より小さいか否かが判定される。変数Put_cntの値が2より大きいか又は等しいと判定された場合、ステップS57に進む。一方、変数Put_cntの値が2より小さいと判定された場合、ステップS52に進み、図4のフローチャートを参照して上述した手順で分割数が算出される。次に、ステップS53において、図5のフローチャートを参照して上述した手順でストローブ時間が算出される。
【0062】
次に、ステップS54において、図6のフローチャートを参照して上述した手順で分割データが、分割バッファ132及び分割バッファ133のうちのバッファ切り替えフラグchg_flgで指定されるものの各バッファ#1乃至#nにセットされる。その後、ステップS55に進み、変数Put_cntの値に1が加算される。
【0063】
そして、ステップS56において、分割バッファ132と分割バッファ133のいずれかを指定するためのバッファ切り替えフラグchg_flgの値が反転される。即ち、バッファ切り替えフラグchg_flgの値が0と1とで交互に変化するような処理が実行される。
【0064】
具体的には、図6を参照して上述したように、バッファ切り替えフラグchg_flgの値に1を加算したものと1との間で論理積演算を行うことにより、バッファ切り替えフラグchg_flgの値が0,1,0,1,0,1、...というように交互に変化し、分割バッファ132と分割バッファ133が分割データの転送先として交互に指定されるようにする。例えば、バッファ切り替えフラグchg_flgの値が0のときは、分割バッファ132に分割データが転送され、バッファ切り替えフラグchg_flgの値が1のときは、分割バッファ133に分割データが転送される。
【0065】
次に、ステップS57において、変数Put_cntの値が0より大きいか否かが判定される。変数Put_cntの値が0のとき、リターンする。一方、分割バッファ132への分割データのセットが行われると、変数Put_cntの値はステップS55における処理により0より大きくなるので、ステップS58に進み、分割バッファ132にセットされた分割データの印刷ヘッド5への転送が行われ、ヘッド転送回数を表す所定の変数の値に1が加算される。
【0066】
次に、ステップS59において、分割数とヘッド転送回数とが一致するか否かが判定される。分割数とヘッド転送回数とが一致しないと判定された場合、1ライン分の印刷がまだ終了していないと判断され、リターンする。一方、分割数とヘッド転送回数とが一致すると判定された場合、1ライン分の印刷が終了したものと判断され、ステップS60に進み、変数Put_cntの値から1だけ減算され、リターンする。その後、再度このサブルーチンが呼び出され、次のラインの処理が行われる。
【0067】
次に、具体例について説明する。最初、変数Put_cntの値は0であるので、ステップS51において変数Put _cntの値は2より小さいと判定され、ステップS52に進み、分割数が算出される。この場合、分割数は3とする。次に、ステップS53においてストローブ時間が算出され、ステップS54において、分割データが分割バッファ132の各バッファにセットされる。
【0068】
いまの場合、分割数は3であるので、描画バッファ131に図11に示すような印刷データが格納されているとすると、分割バッファ132のバッファ#1には、図12(A)に示すような分割データがセットされる。そして、分割バッファ132のバッファ#2には、図12(B)に示すような分割データがセットされる。また、分割バッファ132のバッファ#3には、図12(C)に示すような分割データがセットされる。
【0069】
次に、ステップS55において、変数Put_cntの値に1が加算される。
いまの場合、1とされる。そして、バッファ切り替えフラグchg_flgの値が反転される。いまの場合、0から1に反転される。
【0070】
次に、ステップS57において、変数Put_cntの値が0より大きいか否かが判定される。いまの場合、変数Put_cntの値は1であるので、0より大きいと判定され、ステップS58に進む。ステップS58においては、分割バッファ132のバッファ#1にセットされた分割データが印刷ヘッド5に転送されるとともに、ヘッド転送回数の値に1が加算される。最初、ヘッド転送回数は0であるので、いまの場合1となる。印刷ヘッド5は、転送されてきた分割データに従って印刷を実行する。
【0071】
次に、ステップS59において、分割数(いまの場合3)とヘッド転送回数とが等しいか否かが判定される。いまの場合、分割数である3と、ヘッド転送回数である1とは等しくないので、そのままリターンする。
【0072】
そして、このサブルーチンが再度呼び出され、ステップS51以降の処理が繰り返し実行される。いま、変数Put_cntの値は1であるので、ステップS52乃至ステップS54の処理が実行され、次のラインの分割数とストローブ時間が計算される。そして、いま、バッファ切り替えフラグchg_flgの値は1であるので、分割バッファ133の各バッファ(この場合、バッファ#1乃至バッファ#3)に分割データがセットされる。
【0073】
次に、ステップS55において変数Put_cntの値に1が加算されて2とされた後、ステップS56においてバッファ切り替えフラグchg_flgの値が反転されて0とされる。
【0074】
次に、ステップS57において、変数Put_cntの値が0より大きいと判定され、ステップS58に進み、既に分割バッファ132にセットされているバッファ#2の分割データが印刷ヘッド5に転送され、ヘッド転送回数の値に1が加算され、いまの場合2とされる。印刷ヘッド5は、転送されてきた分割データに従って印刷を実行する。
【0075】
ステップS59においては、分割数とヘッド転送回数が等しいか否かが判定される。いまの場合、分割数が3、ヘッド転送回数が2であるので、等しくないと判定され、リターンする。
【0076】
そして、このサブルーチンが再度呼び出され、ステップS51以降の処理が繰り返し実行される。いま、変数Put_cntの値は2であるので、ステップS52乃至ステップS56の処理は実行されず、ステップS57に進む。
【0077】
ステップS57においては、変数Put_cntの値(いまの場合2)が0より大きいと判定され、ステップS58に進み、既に分割バッファ132にセットされているバッファ#3の分割データが印刷ヘッド5に転送され、ヘッド転送回数の値に1が加算され、いまの場合3とされる。印刷ヘッド5は、転送されてきた分割データに従って印刷を実行する。これにより、最初の1ライン分の印刷が終了する。
【0078】
ステップS59においては、分割数とヘッド転送回数が等しいか否かが判定される。いまの場合、分割数が3、ヘッド転送回数が3であるので、等しいと判定され、ステップS60に進み、Put_cntの値から1が減算される。いまの場合、1(=2−1)とされる。その後、リターンする。以降、上述した場合と同様に、このサブルーチンが呼び出され、次のラインの印刷が行われる。
【0079】
図14乃至図17は、分割バッファ132及び分割バッファ133の各バッファにセットされた印刷データを印刷ヘッド5に転送するタイミングと、印刷ヘッド5に転送された各バッファの印刷データがストローブ時間で印刷されるタイミングを表している。
【0080】
図14は、一括印刷を行う場合のデータ転送と印刷のタイミングの例を示しており、図15は印刷データを2分割して印刷する場合のデータ転送と印刷のタイミングの例を示している。また、図16は、印刷データを3分割して印刷する場合のデータ転送と印刷のタイミングの例を示しており、図17は印刷データを4分割して印刷する場合のデータ転送と印刷のタイミングの例を示している。
【0081】
図14に示した一括印刷を行う場合は、印刷データが印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行される。図15に示した2分割印刷を行う場合は、2分割され、分割バッファ132又は分割バッファ133のバッファ#1にセットされた印刷データ(分割データ)が印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行され、次に、バッファ#2にセットされた印刷データが印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行される。
【0082】
また、図16に示した3分割印刷を行う場合は、印刷データが3分割され、分割バッファ132又は分割バッファ133のバッファ#1にセットされた印刷データが印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行され、次に、バッファ#2にセットされた印刷データが印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行される。さらに、バッファ#3にセットされた印刷データが印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行される。
【0083】
また、図17に示した4分割印刷を行う場合は、印刷データが4分割され、分割バッファ132又は分割バッファ133のバッファ#1にセットされた印刷データが印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行され、次に、バッファ#2にセットされた印刷データが印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行される。そして、バッファ#3にセットされた印刷データが印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行される。さらに、バッファ#4にセットされた印刷データが印刷ヘッド5に転送された後、計算されたストローブ時間で印刷が実行される。
【0084】
図13に示したフローチャートでは、分割バッファ132,133に分割データをセットする処理と、印刷ヘッド5に分割データを転送する処理とを順番に行うようにしたが、これらの処理を並行して行うようにすることも可能である。その場合、分割バッファ132に分割データをセットしている間に、分割バッファ133にすでにセットされた分割データを印刷ヘッド5に転送し、分割バッファ133に分割データをセットしている間に、分割バッファ132にすでにセットされた分割データを印刷ヘッド5に転送するようにする。
【0085】
このように、分割バッファ132,133に分割データをセットする処理と、印刷ヘッド5に分割データを転送する処理とを並行して行うようにすると、印刷処理を停止することなく連続して行うことができるので、高速印刷が可能になる。
【0086】
以上説明したように、本実施の形態により、次のような効果を得ることができる。即ち、分割数を計算により求めるようにしたので、従来のように、オンドット数に応じた分割数をメモリ上のテーブルに予め記憶しておく必要がなくなるため、メモリを削減してコストを下げるとともに、従来よりも細かな制御を行うことが可能となる。
【0087】
なお、上記実施の形態において用いた具体的な値は例であってこれに限定されるものではない。
【0088】
また、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更することができる。
【0089】
【発明の効果】
以上の如く、本発明に係る印刷装置および印刷方法によれば、印刷すべき印刷データを記憶し、記憶された印刷データを複数の分割データに分割するときの分割数を演算し、印刷データのオンドット数に基づいて、記憶された印刷データを、演算された分割数分の複数の分割データに分割し、分割された各分割データを記憶し、記憶された各分割データを順に印刷ヘッドに転送し、転送された分割データのオンドット数に基づいて、発熱体に供給する電流を制御するようにしたので、メモリを削減してコストを下げることが可能となる。また、印刷ヘッドに供給する電流値を従来よりも細かく制御することが可能となり、印刷の品質を上げることができる。
【図面の簡単な説明】
【図1】本発明が適用されるラベルプリンタの一実施の形態の構成例を示すブロック図である。
【図2】図1の制御部の詳細な構成例を示すブロック図である。
【図3】印刷ヘッドの構成例を示す図である。
【図4】分割数の算出方法を説明するためのフローチャートである。
【図5】ストローブ時間の算出方法を説明するためのフローチャートである。
【図6】印刷データの分割方法を説明するためのフローチャートである。
【図7】描画バッファと分割バッファの構成例を示すブロック図である。
【図8】描画バッファと分割バッファの構成例を示すブロック図である。
【図9】分割バッファの構成例を示す図である。
【図10】分割バッファの構成例を示す図である。
【図11】印刷データの例を示す図である。
【図12】分割データの例を示す図である。
【図13】分割データのセットとヘッド転送の手順を説明するためのフローチャートである。
【図14】一括印刷のタイムチャートである。
【図15】二分割印刷のタイムチャートである。
【図16】三分割印刷のタイムチャートである。
【図17】四分割印刷のタイムチャートである。
【符号の説明】
1 ラベル
2 台紙
3 ラベル連続体
4 供給軸
5 印刷ヘッド
6 プラテンローラ
7 ステッピングモータ
8 ベルト
9 位置検出センサ
10 制御部
11 CPU
12 ROM
13 RAM
14 モータ制御部
15 印刷制御部
16 センサ制御部
17 外部インタフェース
18 入力部
19 モニタ
20 インタフェース
131 描画バッファ
132,133 分割バッファ
Claims (3)
- 複数の発熱体からなる印刷ヘッドに電流を供給して印刷を行う印刷装置であって、
印刷すべき印刷データを記憶する印刷データ記憶手段と、
前記印刷データ記憶手段によって記憶された前記印刷データを複数の分割データに分割するときの分割数を、少なくとも前記印刷ヘッドに掛かる電圧、前記印刷ヘッドの抵抗値、印刷すべき前記印刷データのオンドット数、並びに、前記印刷ヘッドに供給可能な最大の電流値に基づいて演算する演算手段と、
前記印刷データのオンドット数に基づいて、前記印刷データ記憶手段によって記憶された前記印刷データを、前記演算手段によって演算された前記分割数分の複数の前記分割データに分割するとともに、前記分割データの各々のオンドット数がほぼ等しくなるように、前記印刷データを分割する分割手段と、
前記分割手段によって分割された各分割データを記憶する分割データ記憶手段と、
前記分割データ記憶手段によって記憶された各分割データを順に前記印刷ヘッドに転送する転送手段と、
前記転送手段によって転送された前記分割データのオンドット数に基づいて、前記発熱体に供給する電流を制御する制御手段と
を備えることを特徴とする印刷装置。 - 前記分割データ記憶手段は、複数個設けられるとともに、前記分割データを交互に記憶することを特徴とする請求項1に記載の印字装置。
- 複数の発熱体からなる印刷ヘッドに電流を供給して印刷を行う印刷方法であって、
印刷すべき印刷データを記憶する印刷データ記憶ステップと、
前記印刷データ記憶ステップにおいて記憶された前記印刷データを複数の分割データに分割するときの分割数を、少なくとも前記印刷ヘッドに掛かる電圧、前記印刷ヘッドの抵抗値、印刷すべき前記印刷データのオンドット数、並びに、前記印刷ヘッドに供給可能な最大の電流値に基づいて演算する演算ステップと、
前記印刷データのオンドット数に基づいて、前記印刷データ記憶ステップにおいて記憶された前記印刷データを、前記演算ステップにおいて演算された前記分割数分の複数の前記分割データに分割するとともに、前記分割データの各々のオンドット数がほぼ等しくなるように、前記印刷データを分割する分割ステップと、
前記分割ステップにおいて分割された各分割データを記憶する分割データ記憶ステップと、
前記分割データ記憶ステップにおいて記憶された各分割データを順に前記印刷ヘッドに転送する転送ステップと、
前記転送ステップにおいて転送された前記分割データのオンドット数に基づいて、前記発熱体に供給する電流を制御する制御ステップとを備えることを特徴とする印刷方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000136574A JP4576021B2 (ja) | 2000-05-10 | 2000-05-10 | 印刷装置および印刷方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000136574A JP4576021B2 (ja) | 2000-05-10 | 2000-05-10 | 印刷装置および印刷方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001315372A JP2001315372A (ja) | 2001-11-13 |
JP4576021B2 true JP4576021B2 (ja) | 2010-11-04 |
Family
ID=18644497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000136574A Expired - Fee Related JP4576021B2 (ja) | 2000-05-10 | 2000-05-10 | 印刷装置および印刷方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4576021B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008200873A (ja) * | 2007-02-16 | 2008-09-04 | Ricoh Printing Systems Ltd | ドットラインプリンタ及びその印刷制御方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016026922A (ja) * | 2014-07-07 | 2016-02-18 | セイコーエプソン株式会社 | 印刷装置、印刷装置の制御方法、および、記憶媒体 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07329336A (ja) * | 1994-06-08 | 1995-12-19 | Matsushita Electric Ind Co Ltd | 感熱印字装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01152075A (ja) * | 1987-12-10 | 1989-06-14 | Casio Comput Co Ltd | ラインプリンタ |
-
2000
- 2000-05-10 JP JP2000136574A patent/JP4576021B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07329336A (ja) * | 1994-06-08 | 1995-12-19 | Matsushita Electric Ind Co Ltd | 感熱印字装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008200873A (ja) * | 2007-02-16 | 2008-09-04 | Ricoh Printing Systems Ltd | ドットラインプリンタ及びその印刷制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2001315372A (ja) | 2001-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1754611B1 (en) | Thermal printer | |
KR900014137A (ko) | 휴대용 데이터 터미널의 열전사프린터 | |
US5543828A (en) | Recording apparatus having a print head drive apparatus with an IC drive circuit employing shift registers for handling drive data in sequential fashion and a method for driving the print head | |
JPH0789115A (ja) | サーマルプリンタ | |
JP4576021B2 (ja) | 印刷装置および印刷方法 | |
US5548319A (en) | Gradation data method processing including repeated reading and recording of high density data | |
JP3327418B2 (ja) | プリントヘッド・モジュレータ | |
JPS62256574A (ja) | 印写装置 | |
JP6302880B2 (ja) | サーマルプリンタ | |
JPH08258313A (ja) | サーマルプリンタ | |
JP7165503B2 (ja) | サーマルプリンタおよび印刷制御方法 | |
JP4046816B2 (ja) | サーマルヘッド駆動装置 | |
JP2021008059A (ja) | 印刷装置 | |
JP2506623B2 (ja) | プリンタにおける階調制御装置 | |
JP2001180030A (ja) | サーマルヘッド及びサーマルプリンタ | |
KR0134344B1 (ko) | 프린터의 계조별 동시 발열 도트수산출장치 | |
JP3586324B2 (ja) | サーマルラインプリンタおよびサーマルラインプリンタの駆動方法 | |
JP3278271B2 (ja) | 印字装置 | |
JPH02158356A (ja) | 印写装置 | |
JPH0550643A (ja) | プリンタ装置 | |
JPH0624944U (ja) | サーマルヘッドの制御装置 | |
JPH01184163A (ja) | 感熱記録装置 | |
JPH06262793A (ja) | 多階調感熱記録装置 | |
JPH0248969A (ja) | 階調プリンタの濃度補正回路 | |
JPH0211345A (ja) | 濃度階調制御型サーマルプリンタ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070507 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100402 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100726 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100823 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130827 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130827 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130827 Year of fee payment: 3 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130827 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130827 Year of fee payment: 3 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130827 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |