(57)【特許請求の範囲】
【請求項１】
入力された所定量の印刷データを記憶する記憶部と、
ステッピングモータによって回転駆動されるプラテン上に、該プラテンの軸と平行方向に１列に配列され、該ステッピングモータの１回転ステップ毎に１ドットライン分の印刷データに従って該プラテンで搬送される感熱紙に印字する複数の発熱抵抗体と、
前記複数の発熱抵抗体の各々に対応して通電を制御する複数の発熱制御素子と、
前記記憶された印刷データの前記１ドットライン分ずつの印刷データをビットマップに変換して前記記憶部に記憶するビットマップ変換部と、
前記変換された前記１ドットライン毎のビットマップに従って前記１回転ステップ毎に前記複数の発熱制御素子を通電制御するとともに、前記１ドットライン毎のビットマップから求めた印字黒率に対応して求めた駆動周波数で前記ステッピングモータを１回転ステップずつ駆動する制御部と、を備え、
前記複数の発熱抵抗体は、複数の発熱ブロックに分けられ、
前記制御部は、
前記変換された前記１ドットライン毎のビットマップから前記複数の発熱ブロックの各々について印字黒率を各々算出する印字黒率算出部と、
前記１ドットライン毎に算出された前記複数の発熱ブロックの各々に係る印字黒率に基づいて、予め設定された複数の印字黒率に対する目標駆動周波数の中から、該当する目標駆動周波数を１ドットライン毎に選択する目標駆動周波数選択部と、
前記印刷データ中の１文字を印字する所定数のドットラインの各々について選択された目標駆動周波数に基づいて、前記ステッピングモータの回転ステップ数に対する目標駆動周波数曲線を算出する目標駆動周波数曲線算出部と、
算出された前記目標駆動周波数曲線に基づいて駆動周波数が該目標駆動周波数曲線以下となる前記ステッピングモータの回転ステップ数に対する近似曲線を算出して、該近似曲線を最適駆動周波数曲線とする最適駆動周波数曲線算出部と、
前記最適駆動周波数曲線から、前記１文字分に係る前記ステッピングモータの回転ステップ毎の最適駆動周波数を求める最適駆動周波数決定部と、を有し、
前記制御部は、前記１文字分の所定数のドットラインが印字される毎に求められた前記最適駆動周波数に従って前記ステッピングモータを回転駆動することを特徴とするサーマルプリンタ。
【請求項２】
前記制御部は、通電シーケンス選択部を有し、
前記複数の発熱ブロックは、第１及び第２ユニットに分けられ、該第１ユニットに含まれる複数の発熱ブロックが第１及び第２ブロックに分けられ、該第２ユニットに含まれる複数の発熱ブロックが第３及び第４ブロックに分けられ、
前記印字黒率算出部は、前記第１乃至第４ブロックの各々に係る印字黒率を算出し、
前記通電シーケンス部は、前記第１乃至第４ブロックに係る各印字黒率が０％、５０％以下、５０％以上のいずれかであることに従って、予め定められた複数のブロック通電シーケンスから前記第１及び第２ユニットの各々に対応するブロック通電シーケンスを選択し、
前記目標駆動周波数選択部は、選択された前記第１及び第２ユニットの各々に対応するブロック通電シーケンスに基づいて、前記複数のブロック通電シーケンスに対応して予め定められた複数の目標駆動周波数から該当する目標駆動周波数を１ドットライン毎に選択することを特徴とする請求項１に記載のサーマルプリンタ。
【請求項３】
前記最適駆動周波数曲線算出部は、前記近似曲線を前記目標駆動周波数曲線以下となる正弦波関数によって近似して算出することを特徴とする請求項１又は２に記載のサーマルプリンタ。
【請求項４】
前記最適駆動周波数曲線算出部は、前記近似曲線を前記目標駆動周波数曲線以下となる正規分布関数によって近似して算出することを特徴とする請求項１又は２に記載のサーマルプリンタ。
【請求項５】
前記最適駆動周波数曲線算出部は、前記近似曲線を前記目標駆動周波数曲線以下となるスプライン関数によって近似して算出することを特徴とする請求項１又は２に記載のサーマルプリンタ。
【請求項６】
前記最適駆動周波数曲線算出部は、前記近似曲線を前記目標駆動周波数曲線以下となる移動平均関数によって近似して算出することを特徴とする請求項１又は２に記載のサーマルプリンタ。
【請求項７】
前記最適駆動周波数曲線算出部は、前記目標駆動周波数曲線以下となる予め定められた複数種の関数によって近似し、近似度合いの最も良好な関数を前記最適駆動周波数曲線とすることを特徴とする請求項１又は２に記載のサーマルプリンタ。
【請求項８】
前記最適駆動周波数曲線算出部は、算出した前記近似曲線を最適駆動周波数曲線として前記記憶部に記憶することを特徴とする請求項１乃至７のいずれか一項に記載のサーマルプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はサーマルプリンタに係わり、特に、ステッピングモータの脱調を防止するとともに印字速度を高めることが可能なサーマルプリンタに関する。
【０００２】
【従来の技術】
サーマルプリンタはいわゆる携帯端末等の出力装置として広く使用されているが、電源としてバッテリを使用するものもある。
バッテリ駆動のサーマルプリンタにおいては、低消費電力化と印刷高速化という相反する要求を満たすために印刷黒率に応じて通電する発熱抵抗体数を変更する制御方法が適用されていた。
【０００３】
図１は従来のサーマルプリンタの駆動回路であって、６４個の発熱抵抗体を有する８個の発熱体ブロック１１０、１１１・・・１１６、１１７を使用して１行を印字する。
発熱体ブロック１１０、１１１・・・１１６、１１７は、それぞれ発熱抵抗体に対応する駆動トランジスタを内蔵する駆動ブロック１２０、１２１・・・・１２６、１２７によって制御される。
【０００４】
各駆動ブロック１２０、１２１・・・・１２６、１２７には、レジスタ１３から印字データが供給されるとともに、通電制御部１４からストローブ信号ＳＴＢ０、ＳＴＢ１・・・ＳＴＢ６、ＳＴＢ７が供給される。
即ち、ストローブ信号ＳＴＢ０が論理 “１" となったとき発熱体ブロック１１０の発熱抵抗体に電力が供給され、ストローブ信号ＳＴＢ１が論理 “１" となったとき発熱体ブロック１１１の発熱抵抗体に電力が供給される。
【０００５】
上記構成において、電源は同時に最大６４個の発熱抵抗体に電力を供給する能力を有するとすると、通電制御部１４は以下の制御を実行する。
１．１つの発熱体ブロック、例えば発熱体ブロック１１０にレジスタ１３から供給される６４ビットの印刷データのなかの黒の割合、即ち印刷黒率が５０％以上であるときは、通電制御部１４は１つのストローブ信号、例えば
ストローブ信号ＳＴＢ０を時間Ｔの間論理 “１" とする。
２．１つの発熱体ブロック、例えば発熱体ブロック１１０にレジスタ１３から供給される印字データの印刷黒率が５０％以下であって、２つの発熱体ブロック、例えば発熱体ブロック１１０および１１１にレジスタ１３から供給される印刷データの印刷黒率が５０％以上であるときは、通電制御部１４は２つのストローブ信号、例えばストローブ信号ＳＴＢ０およびＳＴＢ
１を時間Ｔの間論理 “１" とする。
３．２つの発熱体ブロック、例えば発熱体ブロック１１０および１１１にレジスタ１３から供給される印字データの印刷黒率が５０％以下であって、４つの発熱体ブロック、例えば発熱体ブロック１１０、１１１、１１２および１１３にレジスタ１３から供給される印刷データの印刷黒率が５０％以上であるときは、通電制御部１４は４つのストローブ信号、例えばストローブ信号ＳＴＢ０、ＳＴＢ１、ＳＴＢ２およびＳＴＢ３を時間Ｔの間論理
“１" とする。
４．４つの発熱体ブロック、例えば発熱体ブロック１１０、１１１、１１２および１１３にレジスタ１３から供給される印刷データの印刷黒率が５０％以下であるときは、通電制御部１４は８つのストローブ信号ＳＴＢ０〜Ｓ
ＴＢ７を時間Ｔの間論理 “１" とする。
なお、時間Ｔは、黒を印刷するための発熱抵抗体への通電時間である。
【０００６】
一方サーマルプリンタにおいては、プラテンをステッピングモータで回転駆動することによって感熱紙を長さ方向に送出するが、通常２発熱体ブロック通電するごとにステッピングモータを１ステップ駆動する。
従って、ステッピングモータに供給される駆動パルスの周波数は印刷黒率に影響されることとなる。
【０００７】
図２は通電制御部１４による通電シーケンスの１例であって、黒丸は１発熱体ブロック通電を、白丸は２発熱体ブロック通電を、黒四角は４発熱体ブロック通電を、白四角は８発熱体ブロック通電を示す。
この場合、第１および第２の発熱体ブロック１１０および１１１の通電中のステッピングモータの駆動周波数をｆ／２＝１／（２Ｔ）とすると、第３および第４の発熱体ブロック１１２および１１３の通電中にはステッピングモータの駆動周波数をｆ／４＝１／（４Ｔ）に低減することが必要となり、第５および第６の発熱体ブロック１１４および１１５ならびに第７および第８の発熱体ブロック１１６および１１７の通電中にはステッピングモータの駆動周波数はｆ＝１／Ｔに増加しても差し支えがないこととなる。
【０００８】
図３は第１ドットラインの印刷時のステッピングモータの駆動周波数を表すグラフであって、横軸はステッピングモータのステップ数を、縦軸は駆動周波数を表す。
図３から判るように、第２ステップから第３ステップに移行するときにはステッピングモータを半分の速度に減速し、第３ステップから第４ステップに移行するときはステッピングモータを４倍の速度に増速する必要があるが、ステッピングモータの出力トルクが大であれば急激な減速あるいは増速が可能である。
【０００９】
【発明が解決しようとする課題】
しかしながら、バッテリ駆動のサーマルプリンタに適用されるステッピングモータは直径１２〜１５ｍｍのものが大部分であるため、急激な減速あるいは増速を行った場合には脱調が発生するおそれがある。
例えば、標準の駆動周波数ｆを１０００ＰＰＳ（パルス／秒）としたとき、停止状態から２ｆ（＝２０００ＰＰＳ）まで増速する、あるいは２ｆから停止まで減速するには４〜１２ステップが必要であり、図３に示すパターン通りの周波数でステッピングモータを駆動した場合には脱調の発生を回避できない。
【００１０】
そこで、脱調を防止するために、前回印刷時のステッピングモータの駆動周波数ｆx と今回の目標駆動周波数ｆc とに基づいて、（１）式によって実際の駆動周波数ｆopを決定して駆動周波数の変動を抑制することが提案されている。
１／ｆop＝０．７５／ｆx ＋０．２５／ｆc                       （１）
図４は、図２のシーケンスに基づく駆動周波数のグラフであって、横軸はステッピングモータのステップ数を、縦軸は駆動周波数を示す。
【００１１】
ここで実線は増速の制限を無視したときの本来の駆動周波数を、点線は（１）式によって補正された実際の駆動周波数を示す。
そして、例えば、第５および第６の発熱体ブロック１１４および１１５に対する駆動周波数、即ちステッピングモータの第３ステップの駆動周波数は、本来の駆動周波数ｆc がｆ、前回の駆動周波数ｆx がｆ／４であるので、次式により算出される。
【００１２】
１／ｆop＝０．７５×４／ｆ＋０．２５／ｆ＝３．２５／ｆ
図４から判明するように、増速の制限を無視したときには、ステッピングモータが１６ステップ回転するのに要する時間は２６Ｔであるのに対し、（１）式に基づいて駆動周波数を決定した場合には４０．９８Ｔと、約１．６倍の時間を要することとなる。
【００１３】
本発明は上記課題に鑑みなされたものであって、ステッピングモータの脱調を防止するとともに印刷速度を高速化することの可能なサーマルプリンタを提供することを目的とする。
【００１４】
【課題を解決するための手段】
本発明に係るサーマルプリンタは、入力された所定量の印刷データを記憶する記憶部と、ステッピングモータによって回転駆動されるプラテン上に、該プラテンの軸と平行方向に１列に配列され、該ステッピングモータの回転ステップ毎に１ドットライン分の印刷データに従って該プラテンで搬送される感熱紙に印字する複数の発熱抵抗体と、前記複数の発熱抵抗体の各々に対応して通電を制御する複数の発熱制御素子と、前記記憶された印刷データの前記１ドットライン分ずつの印刷データをビットマップに変換して前記記憶部に記憶するビットマップ変換部と、前記変換された前記１ドットライン毎のビットマップに従って前記１回転ステップ毎に前記複数の発熱制御素子を通電制御するとともに、前記１ドットライン毎のビットマップから求めた印字黒率に対応して求めた駆動周波数で前記ステッピングモータを１回転ステップずつ駆動する制御部と、を備える。
【００１５】
そして、前記複数の発熱抵抗体は、複数の発熱ブロックに分けられ、前記制御部は、前記変換された前記１ドットライン毎のビットマップから前記複数の発熱ブロックの各々について印字黒率を各々算出する印字黒率算出部と、前記１ドットライン毎に算出された前記複数の発熱ブロックの各々に係る印字黒率に基づいて、予め設定された複数の印字黒率に対する目標駆動周波数の中から、該当する目標駆動周波数を１ドットライン毎に選択する目標駆動周波数選択部と、前記印刷データ中の１文字を印字する所定数のドットラインの各々について選択された目標駆動周波数に基づいて、前記ステッピングモータの回転ステップ数に対する目標駆動周波数曲線を算出する目標駆動周波数曲線算出部と、算出された前記目標駆動周波数曲線に基づいて駆動周波数が該目標駆動周波数曲線以下となる前記ステッピングモータの回転ステップ数に対する近似曲線を算出して、該近似曲線を最適駆動周波数曲線とする最適駆動周波数曲線算出部と、前記最適駆動周波数曲線から、前記１文字分に係る前記ステッピングモータの回転ステップ毎の最適駆動周波数を求める最適駆動周波数決定部と、を有し、前記制御部は、前記１文字分の所定数のドットラインが印字される毎に求められた前記最適駆動周波数に従って前記ステッピングモータを回転駆動することとした。
【００１６】
さらに、前記制御部は、通電シーケンス選択部を有し、前記複数の発熱ブロックは、第１及び第２ユニットに分けられ、該第１ユニットに含まれる複数の発熱ブロックが第１及び第２ブロックに分けられ、該第２ユニットに含まれる複数の発熱ブロックが第３及び第４ブロックに分けられ、前記印字黒率算出部は、前記第１乃至第４ブロックの各々に係る印字黒率を算出し、前記通電シーケンス部は、前記第１乃至第４ブロックに係る各印字黒率が０％、５０％以下、５０％以上のいずれかであることに従って、予め定められた複数のブロック通電シーケンスから前記第１及び第２ユニットの各々に対応するブロック通電シーケンスを選択し、前記目標駆動周波数選択部は、選択された前記第１及び第２ユニットの各々に対応するブロック通電シーケンスに基づいて、前記複数のブロック通電シーケンスに対応して予め定められた複数の目標駆動周波数から該当する目標駆動周波数を１ドットライン毎に選択することとした。
【００１７】
前記最適駆動周波数曲線算出部は、前記近似曲線を前記目標駆動周波数曲線以下となる正弦波関数によって近似して算出することとし、前記近似曲線を前記目標駆動周波数曲線以下となる正規分布関数によって近似して算出することとし、前記近似曲線を前記目標駆動周波数曲線以下となるスプライン関数によって近似して算出することとし、或いは、前記近似曲線を前記目標駆動周波数曲線以下となる移動平均関数によって近似して算出することとし、また、前記目標駆動周波数曲線以下となる予め定められた複数種の関数によって近似して、近似度合いの最も良好な関数を前記最適駆動周波数曲線とすることとし、さらには、算出した前記近似曲線を最適駆動周波数曲線として前記記憶部に記憶することとした。
本発明にあっては、所定量の印刷データに基づいて近似度の最も良好な関数を使用して最適駆動周波数曲線が決定されるため、ステッピングモータは脱調しない範囲で高速駆動される。
【００１８】
【発明の実施の形態】
図５は本発明に係るサーマルプリンタの構成図であって、プラテン５１はステッピングモータ５２によって回転駆動されるが、ステッピングモータ５２の回転は駆動制御部５３によって制御される。
プラテン５１上に搬送されてくる感熱紙に１ドットラインを印字するために、各々が６４ドットの発熱抵抗体を有する８個の発熱体ブロック５４ｉ（ｉ＝０〜７）がプラテンに対向して配置されている。
【００１９】
各発熱抵抗体に一端は電源ＶCCに接続され、他端は発熱制御ブロック５５ｉ（ｉ＝０〜７）内に発熱体に対応して配置される発熱制御素子に接続される。
発熱制御素子は２入力アンドゲートであって、一方の入力端子は制御ブロック毎に一括して通電ブロック制御部５６に接続される。また他方の端子はラッチ部５７を介してレジスタ５８に接続される。
【００２０】
なお、本発明に係るサーマルプリンタは、例えばマイクロプロセッサシステムである制御部５９によって制御される。
図６は制御部５９の構成図であって、バス５９０を中心として、ＣＰＵ５９１、ＲＯＭ５９２、ＲＡＭ５９３、ＰＬＡ（プログラマブル・ロジック・アレイ）５９４、データインターフェイス（Ｉ／Ｆ）５９５、入力Ｉ／Ｆ５９６、出力Ｉ／Ｆ５９７から構成されている。
【００２１】
ＲＯＭ５９２はＣＰＵ５９１で実行されるサーマルプリンタを制御するためのプログラムを記憶し、ＲＡＭ５９３はデータを一時的に記憶する。
また、ＰＬＡ５９４は後述する計数部５９４１、ブロック通電シーケンス選択部５９４２および駆動周波数選択・決定部５９４３を構成する。
なお、計数部５９４１、ブロック通電シーケンス選択部５９４２および駆動周波数選択・決定部５９４３は専用のＰＬＡで構成せずに、制御部５９の中にソフトウエア的に構成することも可能である。
【００２２】
さらに、データＩ／Ｆ５９５はホストコンピュータ（図示せず）から伝送されてくる印刷データを受信し、入力Ｉ／Ｆ５９６は電源ＶCCの電圧を監視するための電圧センサ６１および発熱抵抗体の基板の温度を検出するための温度センサ６２の出力を読み込み、出力Ｉ／Ｆ５９７はラッチ５７、レジスタ５８、駆動制御部５３および通電ブロック制御部５６に対してデータ、動作指令を出力する。
【００２３】
図７はサーマルプリンタ制御ルーチンのフローチャートであって、ステップ７１でホストコンピュータから伝送されてくる所定量（例えば１文字行分）の印刷データを受信して、ＲＡＭ５９３に記憶する。次いで、ステップ７２において印刷データをビットマップに変換する。
ステップ７３では所定数の発熱体ブロック（例えば４発熱体ブロック）で構成される発熱ユニット毎に印刷黒率を算出しＲＡＭ５９３に記憶し、ステップ７４では印刷黒率に基づいて最適な通電シーケンスを決定してＲＡＭ５９３に記憶する。さらに、ステップ７５では所定量の通電シーケンスに基づいて目標駆動周波数を選択し、ステップ７６で駆動周波数を決定し、ＲＡＭ５９３に記憶する。以上のステップ７３〜７６に詳細については後述する。
【００２４】
最後に、ステップ７７でＲＡＭ５９３に記憶されている所定量の印刷データを感熱紙に印字してこのルーチンを終了する。
本発明に係るサーマルプリンタにおいては、１文字が例えば１６×１６ドットで構成され、１行には３２文字が印刷可能なものとする。
さらに、１ドットラインは５１２個の発熱抵抗体で構成され、各々が６４個の発熱体を含む８つの発熱ブロックに区分されているものとする。即ち、１発熱ブロックで４文字を印刷することが可能な構成であるとする。
【００２５】
上記構成において、ステップ７３において印刷黒率は、１発熱体ブロック（即ち６４ドット）毎に１文字行分、即ち１６ドットライン分がまとめて演算されるものとする。
図８は、ステップ７３で実行される印刷黒率算出ルーチンの詳細フローチャートであるが、この印刷黒率算出ルーチンはＰＬＡ５９４の計数部５９４１において実行される。
【００２６】
まず、ステップ７３０１で以下の初期化を行う。
１発熱体ブロック内のドット番号を表すインデックスｎを “１" に設定する。
１行内の発熱体ブロックの番号を表すインデックスｍを “１" に設定する。
１文字行内のドットラインを表すインデックス lを “１" に設定する。
黒のドット数の積算値ＢＬＫの初期値を “０" に設定する。
【００２７】
ステップ７３０２でビットマップの１つのビットＢ（ｎ，ｍ，l ）が “１" であるか、即ち発熱抵抗体をオンとして黒を印刷するかを判定する。
ステップ７３０２で肯定判定されたとき、即ち黒を印刷するときは、ステップ７３０３で積算値ＢＬＫをインクリメントしてステップ７３０４に進む。逆にステップ７３０２で否定判定されたとき、即ち白を印刷するときは直接ステップ７３０４に進む。
【００２８】
ステップ７３０４では、インデックスｎが “６４" に到達したか、即ち、１発熱体ブロックについて印刷黒率の算出が完了したかを判定する。そして、ステップ７３０４で否定判定されたとき、即ち、１発熱体ブロックについて印刷黒率の算出が完了していないときはステップ７３０５でインデックスｎをインクリメントしてステップ７３０２に戻る。
【００２９】
逆に、ステップ７３０４で肯定判定されたときは、ステップ７３０６で次式に基づいて印刷黒率ＢＲを算出する。
ＢＲ＝ＢＬＫ／６４
次に、ステップ７３０７でＢＬＫを再度初期値 “０" に設定し、さらに、ステップ７３０８でインデックスｎを “１" に再度設定する。
【００３０】
ステップ７３０９でインデックスｍが “８" に到達したか、即ち、１ドットラインについて処理が完了したかを判定し、否定判定されたときはステップ７３１０でインデックスｍをインクリメントしてステップ７３０２に戻る。
ステップ７３０９で肯定判定されたときはステップ７３１１でインデックスｍを “１" に再度設定する。
【００３１】
そしてステップ７３１２でインデクス lがＬ（＝１６）に到達したか、即ち、１文字行についての処理が完了したかを判定し、否定判定したときはステップ７３１３でインデックス lをインクリメントしてステップ７３０２に戻る。逆に、ステップ７３１２で肯定判定されたときは、このルーチンを終了する。
図９はステップ７４で実行される４発熱体ブロックを１発熱体単位とする通電シーケンス決定ルーチンのフローチャートであるが、この通電シーケンス決定ルーチンはＰＬＣ５９４のブロック通電シーケンス決定部５９４２で実行される。
【００３２】
ステップ７４１で以下の初期化を実行する。
１行内の発熱体ブロックの番号を表すインデックスｍを “１" に設定する。
１頁内の行番号を表すインデックス lを “１" に設定する。
次に、ステップ７４２で１発熱ユニットの前２つの発熱体ブロックの合計印刷黒率ＢＢを次式により算出する。
【００３３】
ＢＢ＝ＢＲ（ｍ，l ）＋ＢＲ（ｍ＋１，l ）
ステップ７４３で１発熱ユニットの後２つの発熱体ブロックの合計印刷黒率ＢＦを次式により算出する。
ＢＦ＝ＢＲ（ｍ＋２，l ）＋ＢＲ（ｍ＋３，l ）
そして、ステップ７４４で１発熱ユニットの合計印刷黒率ＢＴを次式により算出する。
【００３４】
ＢＴ＝ＢＢ＋ＢＦ
次に、ステップ７４５で通電シーケンスを選択するが、詳細は後述する。
ステップ７４６でインデックスｍが “８" に到達したか、即ち、１ドットラインのすべての発熱体ブロックについて処理が完了したかを判定し、否定判定されたときはステップ７４７でインデックスｍを “４" インクリメントしてステップ７４２に戻る。
【００３５】
ステップ７４６で肯定判定されたときはステップ７４８でインデックス lが１６に到達したか、即ち、１文字行について印刷黒率の演算が完了したかを判定し、否定判定されたときはステップ７４９でインデックス lをインクリメントしてステップ７４２に戻る。逆にステップ７４８で肯定判定されたときはこのルーチンを終了する。
【００３６】
図１０はステップ７４５で実行される通電シーケンス選択アルゴリズムであって、この表に基づいて通電シーケンスが選択される。
例えば、１発熱ユニットの合計印刷黒率ＢＴが０％であれば、通電シーケンスＳＥＱ（ｍ，l ）（ただしｍ＝１〜４または５〜８）は “０" に設定される。
一方の２発熱体ブロックの印字黒率が５０％以下、他方の２発熱体ブロックの印字黒率が０％であれば、通電シーケンスＳＥＱ（ｍ，l ）は “４" に設定される。
【００３７】
１発熱ユニットのうち前半の２発熱体ブロックの印刷黒率が５０％以上、後半の２発熱体ブロックの印刷黒率が０％であれば、通電シーケンスＳＥＱ（１，l ）およびＳＥＱ（２，l ）またはＳＥＱ（５，l ）およびＳＥＱ（６，l ）は “１" に、通電シーケンスＳＥＱ（３，l ）およびＳＥＱ（４，l ）またはＳＥＱ（７，l ）およびＳＥＱ（８，l ）は “０" に設定される。
【００３８】
１発熱ユニット全体の印刷黒率が５０％以下であれば、通電シーケンスＳＥＱ（ｍ，l ）（ただしｍ＝１〜４または５〜８）は “４" に設定される。
１発熱ユニット全体の印刷黒率が５０％以上であるが、２発熱体ブロックの印刷黒率がそれぞれ５０％以下であれば、通電シーケンスＳＥＱ（ｍ，l ）（ただしｍ＝１〜４または５〜８）は “２" に設定される。
【００３９】
１発熱ユニットのうち前半の２発熱体ブロックの印刷黒率が５０％以上、後半の２発熱体ブロックの印刷黒率が５０％以下であれば、通電シーケンスＳＥＱ（１，l ）およびＳＥＱ（２，l ）またはＳＥＱ（５，l ）およびＳＥＱ（６，l ）は “１" に、通電シーケンスＳＥＱ（３，l ）およびＳＥＱ（４，l ）またはＳＥＱ（７，l ）およびＳＥＱ（８，l ）は “２" に設定される。
【００４０】
１発熱ユニットのうち前半の２発熱体ブロックの印刷黒率が５０％以下、後半の２発熱体ブロックの印刷黒率が５０％以上であれば、通電シーケンスＳＥＱ（１，l ）およびＳＥＱ（２，l ）またはＳＥＱ（５，l ）およびＳＥＱ（６，l ）は “２" に、通電シーケンスＳＥＱ（３，l ）およびＳＥＱ（４，l ）またはＳＥＱ（７，l ）およびＳＥＱ（８，l ）は “１" に設定される。
【００４１】
さらに、１発熱ユニットの２つの発熱体ブロックの印刷黒率がともに５０％以上であれば、通電シーケンスＳＥＱ（ｍ，l ）（ただしｍ＝１〜４または５〜８）は “１" に設定される。
図９の通電シーケンス決定ルーチンによって１６ドットラインのすべての発熱体について通電シーケンスが決定されると、サーマルプリンタ制御ルーチンのステップ７５において通電シーケンスに基づいて目標駆動周波数が決定される。
【００４２】
図１１は目標駆動周波数選択アルゴリズムであって、以下のように設定される。
ＳＥＱ（ｍ，l ）＝１であれば目標駆動周波数ＴＦ（ｍ，l ）＝０．５
ＳＥＱ（ｍ，l ）＝２であれば目標駆動周波数ＴＦ（ｍ，l ）＝１．０
ＳＥＱ（ｍ，l ）＝０または４であれば目標駆動周波数ＴＦ（ｍ，l ）＝２．０
１６ドットラインのすべての発熱体について目標駆動周波数選択が完了すると、サーマルプリンタ制御ルーチンのステップ７６において駆動周波数が決定される。
【００４３】
図１２は駆動周波数決定ルーチンのフローチャートであって、ステップ７６１で１６ドットライン分の発熱体について、ピーク切り出しを行う。
図１３はピーク切り出しの説明図であって、目標周波数ＴＦ（ｍ，l ）がステッピングモータのステップの増加に伴っていったん上昇して最大となってから下降して最小となるまでを１つのピークとして切り出す。
【００４４】
図１３においては第１ステップから第７ステップまでがピークＩを、第８ステップから第１１ステップまでがピークIIを、第１１ステップから第１５ステップまでがピークIII を、第１５ステップから第１９ステップまでがピークIVを形成する。
次にステップ７６２で、１つのピークごとに予め定められた関数を使用して近似曲線を算出する。ただし、近似曲線は目標駆動周波数以下となるように定められる。関数としては、正弦波関数、正規分布関数、スプライン関数、および移動平均関数等を使用することができる。
【００４５】
図１３の破線は正弦波関数を使用した場合の近似曲線を示し、白丸が実際に使用する駆動周波数である。
駆動周波数決定ルーチンによって駆動周波数が決定されると、サーマルプリンタ制御ルーチンのステップ７７において、印刷データをレジスタ５８、ラッチ５７および通電制御ブロック５５ｉを介して発熱抵抗体ブロック５４ｉに、通電シーケンスを通電ブロック制御部５６に、駆動周波数を駆動制御部５３に伝送して１６ドットライン分の印刷を実行してこのルーチンを終了する。そして、ホストコンピュータから次の印刷データを受信すると、再びサーマルプリンタ制御ルーチンの実行が開始される。
【００４６】
上記実施形態においては、４つの発熱体ブロックを１発熱ユニットとしたが、従来の技術で説明したように８つの発熱体ブロックを１発熱ユニットとしてもよい。この場合は目標駆動周波数ＴＦ（ｍ，l ）の最大値は４となる。
図１４は本発明に係るサーマルプリンタの効果を示すグラフであって、通電シーケンスは８つの発熱体ブロックを１発熱ユニットとした図２に示すものと同一とし、ステッピングモータの駆動周波数は本発明の駆動周波数決定ルーチンによって決定されている。即ち、本発明によればステッピングモータが１６ステップ回転するのに要する時間は２９．３９Ｔとなり従来の４０．９８Ｔに比較して約３０％短縮される。
【００４７】
【発明の効果】
本発明に係るサーマルプリンタによれば、予め定められた量の印刷データに基づいてステッピングモータの最適駆動周波数曲線が決定されるため、前回実駆動周波数および今回の目標駆動周波数に基づいて今回の実駆動周波数を定める従来の方法に比較して印刷速度を向上することが可能となる。
【００４８】
また、本発明に係るサーマルプリンタによれば、印刷速度が最大となる発熱抵抗体に対する通電シーケンスに基づいて最適駆動周波数曲線が決定されるため、発熱抵抗体を確実に制御しつつ印刷速度を向上することが可能となる。
また、本発明に係るサーマルプリンタによれば、目標駆動周波数を最も精度よく近似する曲線を使用して最適駆動周波数曲線が決定されるため、印刷速度を一層向上することが可能となる。
【図面の簡単な説明】
【図１】従来のサーマルプリンタの駆動回路である。
【図２】通電制御部による通電シーケンスの１例である。
【図３】第１ドットライン印刷時のステッピングモータの駆動周波数である。
【図４】図２のシーケンスに基づく駆動周波数のグラフである。
【図５】本発明に係るサーマルプリンタの構成図である。
【図６】制御部の構成図である。
【図７】サーマルプリンタ制御ルーチンのフローチャートである。
【図８】印刷黒率算出ルーチンのフローチャートである。
【図９】通電シーケンス決定ルーチンのフローチャートである。
【図１０】通電シーケンス選択アルゴリズムである。
【図１１】目標駆動周波数選択アルゴリズムである。
【図１２】駆動周波数決定ルーチンのフローチャートである。
【図１３】ピーク切り出しの説明図である。
【図１４】本発明の効果を示すグラフである。
【符号の説明】
５１…プラテン
５２…ステッピングモータ
５３…駆動制御部
５４０〜５４７…発熱抵抗体ブロック
５５０〜５５７…発熱制御ブロック
５６…通電ブロック制御部
５７…ラッチ
５８…レジスタ
５９…制御部
【図１】
0004439026.tif 000002
【図２】
0004439026.tif 000003
【図３】
0004439026.tif 000004
【図４】
0004439026.tif 000005
【図５】
0004439026.tif 000006
【図６】
0004439026.tif 000007
【図７】
0004439026.tif 000008
【図８】
0004439026.tif 000009
【図９】
0004439026.tif 000010
【図１０】
0004439026.tif 000011
【図１１】
0004439026.tif 000012
【図１２】
0004439026.tif 000013
【図１３】
0004439026.tif 000014
【図１４】
0004439026.tif 000015