(57)【特許請求の範囲】
【請求項１】
ホスト装置から送信される指令データを受信する受信部と、
複数の発熱体を１列に配置する印刷ヘッド部と、
前記１列中の複数の発熱体のうち、同時に駆動可能な発熱体の最大数を記憶する記憶部と、
前記指令データが同時に駆動可能な発熱体の最大数を指定する分割印刷設定コマンドである場合、当該指定された最大数を前記記憶部に記憶させる分割印刷設定コマンド処理部と、
前記指令データが文字または図形を指定する印刷コマンドである場合、当該文字または図形を、前記１列中の複数の発熱体のいずれを駆動するかを表す印刷イメージに展開して蓄積する印刷コマンド処理部と、
前記蓄積された印刷イメージから前記１列中の複数の発熱体のうち、駆動すべきものの数を取得する数取得部と、
前記取得された数が、
（ａ）前記記憶された最大数以下である場合、前記印刷イメージに基づき前記１列中の複数の発熱体を同時に駆動し、
（ｂ）前記記憶された最大数を超える場合、前記１列中の複数の発熱体を、同時に駆動する数が前記記憶された最大数以下になるように分割して、前記印刷イメージに基づき前記複数の発熱体を駆動することによって、
前記印刷イメージのうち、前記１列中の複数の発熱体に相当する部分を印刷する印刷部と、
前記印刷部により、前記印刷ヘッドに配置された複数の発熱体の１列分に相当する幅の印刷が終了後、前記複数の発熱体の列に対して相対的に垂直に用紙を移動させる用紙移動部と、を備え、
前記印刷部は、さらに、前記取得された数が、
（ｃ）前記記憶された最大数以下の場合、前回の１列分の印刷が終わり、前記用紙移動部による用紙の移動が開始されて以降に、所定の待機時間を取らずに次の印刷を開始し、
（ｄ）前記記憶された最大数を超える場合、前回の１列分の印刷が終わり、前記用紙移動部による用紙の移動が開始されてから、所定の時間待機して、用紙の移動が停止した以降に次の印刷を開始する
ことを特徴とする印刷装置。
【請求項２】
前記用紙移動部は、これが有するステッピングモータを位相変化させて用紙を移動させる
ことを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記用紙は、感熱用紙である
ことを特徴とする請求項１または２に記載の印刷装置。
【請求項４】
前記用紙と、前記複数の発熱体と、の間に配置される感熱インクリボン
をさらに備えることを特徴とする請求項１または２に記載の印刷装置。
【請求項５】
ホスト装置から送信される指令データを受信する受信工程と、
前記指令データが同時に駆動可能な発熱体の最大数を指定する分割印刷設定コマンドである場合、当該指定された最大数を記憶する分割印刷設定コマンド処理工程と、
前記指令データが文字または図形を指定する印刷コマンドである場合、当該文字または図形を、前記１列中の複数の発熱体のいずれを駆動するかを表す印刷イメージに展開して蓄積する印刷コマンド処理工程と、
前記蓄積された印刷イメージから前記１列中の複数の発熱体のうち、駆動すべきものの数を取得する数取得工程と、
前記取得された数が、
（ａ）前記記憶された最大数以下である場合、前記印刷イメージに基づき前記１列中の複数の発熱体を同時に駆動し
（ｂ）前記記憶された最大数を超える場合、前記列中の複数の発熱体を、同時に駆動する数が前記記憶された最大数以下になるように分割して、前記印刷イメージに基づき前記複数の発熱体を駆動することによって、
前記印刷イメージのうち、前記１列中の複数の発熱体に相当する部分を印刷する印刷工程と、
前記印刷工程にて、前記印刷ヘッドに配置された複数の発熱体の１列分に相当する幅の印刷が終了後、前記複数の発熱体の列に対して相対的に垂直に用紙を移動させる用紙移動工程と、を備え、
前記印刷工程は、さらに、前記取得された数が、
（ａ）前記記憶された最大数以下の場合、前回の１列分の印刷が終わり、前記用紙移動工程にて用紙の移動が開始されて以降に、所定の待機時間を取らずに次の印刷を開始し、
（ｂ）前記記憶された最大数を超える場合、前回の１列分の印刷が終わり、前記用紙移動工程にて用紙の移動が開始されてから、所定の時間待機して、用紙の移動が停止した以降に次の印刷を開始する
ことを特徴とする印刷方法。
【請求項６】
コンピュータを、請求項１から４のいずれか１項に記載の印刷装置として機能させる
ことを特徴とするプログラムを記録したコンピュータ読取可能な情報記録媒体。
【請求項７】
前記情報記録媒体は、コンパクトディスク、フロッピーディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、または、半導体メモリである
ことを特徴とする請求項６に記載の情報記録媒体。
【請求項８】
印字に用いる複数の発熱体を１列に配置する印刷ヘッドと、
前記１列中の複数の発熱体のうち、同時に駆動可能な発熱体の最大数を決定する第１の決定手段と、
前記印刷ヘッドに対し、相対的に印字用紙を移動させる紙送りモータと、
前記紙送りモータが印字用紙の移動を開始させてから、所定の時間待機して用紙の移動が停止した以降に前記印刷ヘッドによる次の１列の印字を開始するか、待機せず次の１列の印字を開始するか決定する第２の決定手段と、
を備えた印刷装置であって、
前記第１の決定手段が、同時に駆動可能な発熱体の最大数を前記１列中の発熱体の数と等しいと決定したとき、前記第２の決定手段による決定を無視し、前記紙送りモータが印字用紙の移動を開始させてから、待機せず前記印刷ヘッドによる次の１列の印字を開始するよう制御する制御手段を備えたことを特徴とする印刷装置。
【請求項９】
印字に用いる複数の発熱体を１列に配置する印刷ヘッドと、
前記１列中の複数の発熱体を複数の群に分け、各群毎に同時に駆動可能とし、前記複数の発熱体の同時駆動可能総数を決定する第１の決定手段と、
前記印刷ヘッドに対し、相対的に印字用紙を移動させる紙送りモータと、
前記紙送りモータが印字用紙の移動を開始させてから、所定の時間待機して用紙の移動が停止した以降に前記印刷ヘッドによる次の１列の印字を開始するか、待機せず次の１列の印字を開始するか決定する第２の決定手段と、
を備えた印刷装置であって、
前記第１の決定手段が、前記発熱体の同時駆動可能総数を前記１列中の発熱体の数と等しいと決定したとき、前記第２の決定手段による決定を無視し、前記紙送りモータが印字用紙の移動を開始させてから、待機せず前記印刷ヘッドによる次の１列の印字を開始するよう制御する制御手段を備えたことを特徴とする印刷装置。
【請求項１０】
請求項８または９の第１の決定手段は、ホストコンピュータから受信したコマンドに基づいて、同時に駆動可能な発熱体の数を決定することを特徴とする印刷装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷装置、ホスト装置、印刷方法、ホスト装置の制御方法、ならびに、情報記録媒体に関する。
【０００２】
特に、消費電力の少ないサーマルプリンタを実現するのに好適な印刷装置、ホスト装置、印刷方法、ホスト装置の制御方法、ならびに、これらを実現するプログラムを記録したコンピュータ読取可能な情報記録媒体に関する。
【０００３】
【従来の技術】
従来から、印刷ヘッドに１列に複数の発熱体を配置し、これらのうちのいずれかを駆動することにより、感熱用紙に文字や図形を印刷したり、感熱インクリボンを融解して普通紙に文字や図形を印刷するサーマルプリンタが提案されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、サーマルプリンタにおいて、印刷ヘッドに配置された複数の発熱体のすべてを同時に駆動することがあると、消費電力が増加し、プリンタを駆動するための電源装置への負荷が増大することにより、電源装置が故障することがある。
【０００５】
そこで、消費電力を抑えるようなサーマルプリンタを実現する手法が望まれている。
【０００６】
本発明は、以上の問題を解決するためになされたもので、消費電力の少ないサーマルプリンタを実現するのに好適な印刷装置、ホスト装置、印刷方法、ホスト装置の制御方法、ならびに、これらを実現するプログラムを記録したコンピュータ読取可能な情報記録媒体を提供することを目的とする。
【０００７】
【課題を解決するための手段】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００８】
本発明の第１の観点に係る印刷装置は、受信部と、印刷ヘッド部と、記憶部と、分割印刷設定コマンド処理部と、印刷コマンド処理部と、数取得部と、印刷部と、用紙移動部と、を備えるように構成する。
【０００９】
ここで、受信部は、ホスト装置から送信される指令データを受信する。
【００１０】
一方、印刷ヘッド部は、複数の発熱体を１列に配置する。
【００１１】
さらに、記憶部は、１列中の複数の発熱体のうち、同時に駆動可能な発熱体の最大数を記憶する。
【００１２】
そして、分割印刷設定コマンド処理部は、指令データが同時に駆動可能な発熱体の最大数を指定する分割印刷設定コマンドである場合、当該指定された最大数を記憶部に記憶させる。
【００１３】
一方、印刷コマンド処理部は、指令データが文字または図形を指定する印刷コマンドである場合、当該文字または図形を、１列中の複数の発熱体のいずれを駆動するかを表す印刷イメージに展開して蓄積する。
【００１４】
さらに、数取得部は、蓄積された印刷イメージから１列中の複数の発熱体のうち、駆動すべきものの数を取得する。
【００１５】
そして、印刷部は、取得された数が、
（ａ）記憶された最大数以下である場合、印刷イメージにより複数の発熱体を駆動し、
（ｂ）記憶された最大数を超える場合、１列中の複数の発熱体を、同時に駆動する数が記憶された最大数以下になるように分割して、印刷イメージにより複数の発熱体を駆動し、
印刷イメージのうち、１列中の複数の発熱体に相当する部分を印刷する。
【００１６】
一方、用紙移動部は、印刷部により、印刷ヘッドに配置された複数の発熱体の１列分に相当する幅の印刷が終わった場合、複数の発熱体の列に対して相対的に垂直に用紙を移動させる。
【００１７】
また、本発明の印刷装置において、印刷部による印刷は、取得された数が、
（ａ）記憶された最大数以下の場合、印刷部により前回の１列分の印刷が終わり、用紙移動部による用紙の移動が開始されて以降に開始され、
（ｂ）記憶された最大数を超える場合、印刷部により前回の１列分の印刷が終わり、用紙移動部による用紙の移動が開始されてから、所定の時間が経過して以降に開始される
ように構成することができる。
【００１８】
また、本発明の印刷装置において、用紙移動部は、これが有するステッピングモータを位相変化させて用紙を移動させるように構成することができる。
【００１９】
また、本発明の印刷装置において、用紙は、感熱用紙であるように構成することができる。
【００２０】
また、本発明の印刷装置は、感熱インクリボンをさらに備えるように構成することができる。
【００２１】
ここで、感熱インクリボンは、用紙と、複数の発熱体と、の間に配置される。
【００２２】
本発明の第２の観点に係るホスト装置は、入力受付部と、分割印刷設定コマンド生成部と、印刷コマンド生成部と、送信部と、を備えるように構成する。
【００２３】
ここで、入力受付部は、印刷装置の印刷ヘッド部のうち、同時に駆動可能な発熱体の最大数の入力を受け付ける。
【００２４】
一方、分割印刷設定コマンド生成部は、入力を受け付けられた最大数を指定する分割印刷設定コマンドを生成する。
【００２５】
さらに、印刷コマンド生成部は、文字もしくは図形を指定する印刷コマンドを生成する。
【００２６】
そして、送信部は、生成された分割印刷設定コマンド、もしくは、印刷コマンドを、印刷装置へ送信する。
【００２７】
本発明の第３の観点に係る印刷方法は、受信工程と、分割印刷設定コマンド処理工程と、印刷コマンド処理工程と、数取得工程と、印刷工程と、用紙移動工程と、を備えるように構成する。
【００２８】
ここで、受信工程では、ホスト装置から送信される指令データを受信する。
【００２９】
一方、分割印刷設定コマンド処理工程では、指令データが同時に駆動可能な発熱体の最大数を指定する分割印刷設定コマンドである場合、当該指定された最大数を記憶する。
【００３０】
さらに、印刷コマンド処理工程では、指令データが文字または図形を指定する印刷コマンドである場合、当該文字または図形を、１列中の複数の発熱体のいずれを駆動するかを表す印刷イメージに展開して蓄積する。
【００３１】
そして、数取得工程では、蓄積された印刷イメージから１列中の複数の発熱体のうち、駆動すべきものの数を取得する。
【００３２】
一方、印刷工程では、取得された数が、
（ａ）記憶された最大数以下である場合、印刷イメージにより複数の発熱体を駆動し、
（ｂ）記憶された最大数を超える場合、列中の複数の発熱体を、同時に駆動する数が記憶された最大数以下になるように分割して、印刷イメージにより複数の発熱体を駆動して、
印刷イメージのうち、１列中の複数の発熱体に相当する部分を印刷する。
【００３３】
さらに、用紙移動工程では、印刷工程にて、印刷ヘッドに配置された複数の発熱体の１列分に相当する幅の印刷が終わった場合、複数の発熱体の列に対して相対的に垂直に用紙を移動させる。
【００３４】
また、本発明に係る印刷方法において、印刷工程における印刷は、取得された数が、
（ａ）記憶された最大数以下の場合、印刷工程にて前回の１列分の印刷が終わり、用紙移動工程にて用紙の移動が開始されて以降に開始され、
（ｂ）記憶された最大数を超える場合、印刷工程にて前回の１列分の印刷が終わり、用紙移動工程にて用紙の移動が開始されてから、所定の時間が経過して以降に開始される
ように構成することができる。
【００３５】
本発明の第４の観点に係るホスト装置の制御方法は、入力受付工程と、分割印刷設定コマンド生成工程と、印刷コマンド生成工程と、送信工程と、を備えるように構成する。
【００３６】
ここで、入力受付工程では、印刷装置の印刷ヘッド部のうち、同時に駆動可能な発熱体の最大数の入力を受け付ける。
【００３７】
一方、分割印刷設定コマンド生成工程では、入力を受け付けられた最大数を指定する分割印刷設定コマンドを生成する。
【００３８】
さらに、印刷コマンド生成工程では、文字もしくは図形を指定する印刷コマンドを生成する。
【００３９】
そして、送信工程では、生成された分割印刷設定コマンド、もしくは、印刷コマンドを、印刷装置へ送信する。
【００４０】
本発明の第５の観点に係るコンピュータ読取可能な情報記録媒体は、コンピュータを、上記印刷装置として機能させるプログラムを記録するように構成する。
【００４１】
本発明の第６の観点に係るコンピュータ読取可能な情報記録媒体は、コンピュータを、上記ホスト装置として機能させるプログラムを記録するように構成する。
【００４２】
また、本発明の情報記録媒体は、コンパクトディスク、フロッピーディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、または、半導体メモリであるように構成することができる。
【００４３】
また、本発明の情報記録媒体をＷＷＷ（World Wide Web）のサーバコンピュータに装着して、ここから適宜プログラムをダウンロードし、上記コンピュータに記憶させてプログラムを更新し、更新されたプログラムをコンピュータ（典型的には、プリンタが有するＣＰＵやホスト装置のＣＰＵ）に実行させることにより、本発明の印刷装置を実現することができる。
【００４４】
また、本発明の印刷装置は、
印字に用いる複数の発熱体を１列に配置する印刷ヘッドと、
前記１列中の複数の発熱体のうち、同時に駆動可能な発熱体の最大数を決定する第１の決定手段と、
前記印刷ヘッドに対し、相対的に印字用紙を移動させる紙送りモータと、
前記紙送りモータが印字用紙を移動させてから、所定の時間待機して前記印刷ヘッドによる次の１列の印字を開始するか、待機せず次の１列の印字を開始するか決定する第２の決定手段と、
を備えた印刷装置であって、
前記第１の決定手段が、同時に駆動可能な発熱体の最大数を前記１列中の発熱体の数と等しいと決定したとき、前記第２の決定手段による決定を無視し、前記紙送りモータが印字用紙を移動させてから、待機せず前記印刷ヘッドによる次の１列の印字を開始するよう制御する制御手段を備えたことを特徴とする。
【００４５】
また、印字に用いる複数の発熱体を１列に配置する印刷ヘッドと、
前記１列中の複数の発熱体を複数の群に分け、各群毎に同時に駆動可能とし、前記複数の発熱体の同時駆動可能総数を決定する第１の決定手段と、
前記印刷ヘッドに対し、相対的に印字用紙を移動させる紙送りモータと、
前記紙送りモータが印字用紙を移動させてから、所定の時間待機して前記印刷ヘッドによる次の１列の印字を開始するか、待機せず次の１列の印字を開始するか決定する第２の決定手段と、
を備えた印刷装置であって、
前記第１の決定手段が、前記発熱体の同時駆動可能総数を前記１列中の発熱体の数と等しいと決定したとき、前記第２の決定手段による決定を無視し、前記紙送りモータが印字用紙を移動させてから、待機せず前記印刷ヘッドによる次の１列の印字を開始するよう制御する制御手段を備えたことを特徴とする。
【００４６】
さらに、第１の決定手段は、ホストコンピュータから受信したコマンドに基づいて、同時に駆動可能な発熱体の最大数または総数を決定することを特徴とする。
【００４７】
これらの構成によれば、同時駆動能な発熱体の最大数＝１列中の発熱と決定したとき（すなわち、分割印字しないと決定したとき）、紙送りモータが停止するまで待機する必要がないため、高速に印字が可能である。また、紙送りモータが停止しないため、次の１列の印字ドットとの間に隙間があかず、なめらかにつながり、きれいな印字が可能となる。
【００４８】
【発明の実施の形態】
以下に本発明の一実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００４９】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る印刷装置とホスト装置の様子を示す模式図である。以下、本図を参照して説明する。
【００５０】
印刷装置１０１は、ホスト装置１５１と、ケーブル１９１により接続されている。ホスト装置１５１で動作するアプリケーションが、ユーザの入力などに応じて指令データを生成し、当該指令データが、ケーブル１９１を介してホスト装置１５１から印刷装置１０１へ伝送される。
【００５１】
印刷装置１０１は、伝送された指令データにしたがって動作する。この指令データには、以下のようなものがある。
【００５２】
（ｉ）印刷コマンド。文字や図形をパラメータとして、あるいはコマンドそものとして指定する。典型的には、当該文字に対応するＡＳＣＩＩ（American Standard Code for Information Interchange）コードが用いられる。
【００５３】
（ｉｉ）改行コマンド。印刷行を改行する。典型的には、改行に対応するＡＳＣＩＩコードが用いられる。
【００５４】
（ｉｉｉ）分割印刷設定コマンド。印刷装置１０１の印刷ヘッドに配置された発熱体を同時に駆動できる最大数を指定する。フォーマットは以下の通りである。ここで、0xは十六進数を表す接頭辞である。
【００５５】
0x1B 0x20 0x02 pl ph
このコマンドにより、最大数としてpl+ph×256が指定されたことになる。
【００５６】
なお、印刷装置１０１とホスト装置１５１との接続には、ケーブル１９１によらずに、無線ＬＡＮ（Local Area Network）や赤外線通信などの各種の通信技術を適用することができ、これらの実施形態も本発明の範囲に含まれる。
【００５７】
図２は、第１の実施形態に係る印刷装置１０１の概要構成を示す模式図である。以下、本図を参照して説明する。
【００５８】
印刷装置１０１の各部は、ＣＰＵ１０２によって制御される。受信部１０３は、ケーブル１９１を介してホスト装置１５１と接続される。指令データが受信部１０３に到達したことが検知されると、ＣＰＵ１０２に対して受信割り込みが発生する。ＣＰＵ１０２は、受信割り込み処理の中で、受信部１０３に当該指令データを受信させ、当該指令データをＲＡＭ１０４内に確保された受信バッファ１０５に記憶して、割り込み処理を終了する。
【００５９】
一方、割り込みが発生していないとき、ＣＰＵ１０２は、受信バッファ１０５が空か否かを判断し、受信バッファ１０５に指令データが記憶されている場合は、それを順次ＦＩＦＯ（First In First Out）的に取り出して、当該指令データを解釈する。
【００６０】
指令データが文字や図形を印刷する印刷コマンドである場合は、当該印刷コマンドに指定された文字や図形のフォント情報を適宜ＲＯＭ１０６からとりだして、ＲＡＭ１０４内に用意されたプリントバッファ１０７に展開する。
【００６１】
プリントバッファ１０７が一杯になったり、解釈した指令データが改行コマンドであった場合は、プリントバッファ１０７に展開された印刷イメージにしたがって、印刷ヘッド１０８、プラテン１０９、用紙送りローラ１１０を駆動して、文字や図形を用紙２０１に印刷する。
【００６２】
印刷ヘッド１０８には、一列に６４０個の発熱体が並んでおり、この発熱体が熱を発すると、感熱用紙が黒変して、文字や図形が印刷される。また、感熱インクリボンを使った場合には、発熱体が発熱した部分に相当するリボンが普通紙に転写されて文字や図形が印刷される。
【００６３】
なお、印刷の詳細については、後述する。
【００６４】
用紙送りローラ１１０の駆動源としてステッピングモータを用いる。ステッピングモータの位相を変化させると、用紙送りローラ１１０が回転する。
【００６５】
図３は、用紙送りローラ１１０のステッピングモータの位相を変化させるタイミングと、当該位相変化による用紙送りローラ１１０の回転量の時間変化を示すグラフである。横軸は時間であり、縦軸は、用紙送りローラ１１０の回転量である。
【００６６】
図３に示すように、位相を変化させてから、実際にその変化に応じた回転が完了するまでには、ある程度の時間がかかる。本願では、この時間を「遅れ時間」と呼ぶ。
【００６７】
指令データが印刷装置１０１を設定する設定コマンドである場合、当該設定指令により指定されるパラメータをフラッシュメモリ１１１に不揮発に記憶する。このような設定コマンドには、上述の分割印刷設定コマンドがあり、このコマンドの場合には、指定された最大数がフラッシュＥＥＰＲＯＭ１１１内の最大数記憶領域１１２に記憶される。
【００６８】
なお、当該パラメータをＲＡＭ１０４に揮発的に記憶することとし、分割印刷設定コマンドをまだ受信していないときには、ＲＯＭ１０６等に記憶された既定値を用いるような実施形態や、ＲＯＭ１０６等に記憶された既定値を印刷装置１０１の電源投入時にＲＡＭ１０４に転送するような実施形態を採用することもでき、当該実施形態も本発明の範囲に含まれる。
【００６９】
（割り込み処理）
図４は、印刷装置１０１において、受信部１０３が指令データの到着を検知して、ＣＰＵ  １０２に対して受信割り込みを発生させることにより起動される割り込み処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【００７０】
まず、ＣＰＵ  １０２は、受信部１０３を介して、ホスト装置１５１から送信された指令データを１バイト受信させる（ステップＳ４０１）。
【００７１】
次に、ＲＡＭ  １０４内に用意された受信バッファ１０５に、受信した指令データを追加する（ステップＳ４０２）。受信バッファ１０５は、環状バッファによって構成することができ、キューのように働く。受信バッファ１０５に記憶された指令データは、後述する通常処理によって読み出される。
【００７２】
ついで、受信バッファ１０５が一杯になっているか否かを調べ（ステップＳ４０３）、一杯になっている場合（ステップＳ４０３；Ｙｅｓ）、ホスト装置１５１との接続インターフェース（受信部１０３）のビジー信号線にビジー状態である旨を出力して（ステップＳ４０４）、本割り込み処理を終了する。これにより、ホスト装置１５１は、これ以上指令データを送信することができない旨を知得することができる。
【００７３】
ビジー信号線に出力される信号の状態は、後述する通常処理によっても変更される。
【００７４】
一方、一杯になっていない場合（ステップＳ４０３；Ｎｏ）、本割り込み処理を終了する。
【００７５】
（通常処理）
図５は、印刷装置１０１において実行される通常処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【００７６】
まず、ＣＰＵ  １０２は、受信バッファ１０５に指令データが記憶されているか否かを調べる（ステップＳ５０１）。記憶されていない場合（ステップＳ５０１；Ｎｏ）、待機して（ステップＳ５０２）、ステップＳ５０１に戻る。待機中には、ほかの処理を実行することができる。
【００７７】
一方、受信バッファ１０５に指令データが記憶されている場合（ステップＳ５０１；Ｙｅｓ）、記憶されている先頭の指令データを読み出す（ステップＳ５０３）。受信バッファ１０５は、キューのように構成されているため、本ステップを実行すると、必ず受信バッファ１０５には空きが生じる。そこで、ビジー信号線の状態を、非ビジー状態に変更する（ステップＳ５０４）。
【００７８】
さらに、読み出した指令データの種類を調べる（ステップＳ５０５）。指令データが、分割印刷設定コマンドである場合（ステップＳ５０５；分割印刷設定）、指定された最大数パラメータを取得する（ステップＳ５０６）。本実施形態では、分割印刷設定コマンドは複数バイトからなるため、受信バッファ１０５から残りのパラメータ列を読み出すこととなる。したがって、このステップでは、ステップＳ５０３と同様の処理を実行する。
【００７９】
次に、取得された最大数パラメータを、フラッシュＥＥＰＲＯＭ１１１内の最大数記憶領域１１２に記憶して（ステップＳ５０７）、ステップＳ５０１に戻る。
【００８０】
なお、ステップＳ５０６の後、指定された最大数パラメータが正しい値の範囲にあるか否かをチェックしてもよい。本実施形態においては、上述の通り、印刷ヘッド１０８には、一列に６４０個の発熱体が並んでいるため、有効な最大数パラメータの値は、１〜６４０である。これ以外の値が指定された場合には、ホスト装置１５１にエラーを報告してもよいし、デフォルト値に設定してもよいし、現在の設定を維持してもよい。
【００８１】
一方、印刷コマンドである場合（ステップＳ５０５；印刷）、指定されている文字や図形のフォント定義をＲＯＭ  １０６から読み出して（ステップＳ５０８）、これを印刷イメージとして、プリントバッファ１０７に展開する（ステップＳ５０９）。
【００８２】
さらに、展開された印刷イメージが１行分の幅に至ったか（本実施形態では、幅６４０ドットに達したか）否かを調べ（ステップＳ５１０）、至っている場合は、印刷処理を実行して（ステップＳ５１１）、ステップＳ５０１に戻る。
【００８３】
印刷処理の詳細については、後述する。
【００８４】
一方、改行コマンドである場合（ステップＳ５０５；改行）、ステップＳ５１１に進む。
【００８５】
また、その他のコマンドである場合（ステップＳ５０５；その他）、対応する処理を実行して（ステップＳ５１２）、ステップＳ５０１に戻る。
【００８６】
（印刷処理の詳細）
図６は、印刷処理の詳細な流れを示すフローチャートである。以下、本図を参照して説明する。
【００８７】
まず、ＣＰＵ  １０２は、印刷すべきライン数を調べる（ステップＳ６０１）。たとえば、文字フォントとして幅８ドット×高さ１６ドットのものを使用している場合は、印刷すべきライン数は１６ドットとなる。
【００８８】
以下、当該ライン数だけ、ステップＳ６０３〜ステップＳ６０７の処理を繰り返す（ステップＳ６０２）。
【００８９】
まず、印刷すべき先頭の１ラインのうち、発熱体を駆動するように指定されているドット数を調べる（ステップＳ６０３）。本実施形態では、印刷イメージは、プリントバッファ１０７内では、発熱体を駆動するところ（黒く印刷するところ）にビット単位で１を立て、駆動しないところ（印刷しないところ）はビット単位で０にクリアするように記憶している。したがって、６４０ドットのうち、１が立っているドットが何個あるか調べることになる。
【００９０】
次に、当該ドット数が、フラッシュＥＥＰＲＯＭ  １１１内の最大数記憶領域に記憶された最大数以下であるか否かを調べる（ステップＳ６０４）。
【００９１】
最大数以下である場合（ステップＳ６０４；Ｙｅｓ）、当該ラインの印刷イメージにしたがって、印刷ヘッド１０８の発熱体を発熱させて、１ライン分の印刷を行う（ステップＳ６０５）。さらに、用紙送りローラを駆動して、用紙を１ライン分だけ紙送りし（ステップＳ６０６）、次のラインを印刷すべきラインの先頭のラインに設定し直してから（ステップＳ６０７）、ステップＳ６０２に戻る。
【００９２】
一方、最大数を超える場合（ステップＳ６０４；Ｎｏ）、所定の待機時間だけ待機する（ステップＳ６０８）。
【００９３】
この「所定の待機時間」としては、以下のものを用いることができる。
・「所定の待機時間」として、「遅れ時間」を採用する。
【００９４】
ついで、当該ラインの印刷イメージのうち、１が立っているドットから、記憶された最大数を超えないようにドットを選択する（ステップＳ６０９）、当該選択したドットについて発熱体を駆動して（ステップＳ６１０）、当該ラインの一部を印刷する。
【００９５】
当該ラインの印刷イメージのうち１が立っているドットすべてについて、発熱体が駆動されるまでステップＳ６０９〜ステップＳ６１０を繰り返す（ステップＳ６１１）。
【００９６】
本実施形態では、１ラインの左端から順に最大数個になるまで１が立っているドットを選択して１ラインを分割し、分割されたドット群について、左から順に発熱体を駆動する。
【００９７】
ステップＳ６０９〜ステップＳ６１１のように、１ラインを分割して印刷することにより、印刷ヘッド１０８における消費電力を抑えることができる。
【００９８】
図７は、１ラインのすべてのドットを印刷する場合の印刷結果の様子を示す説明図である。なお、本図においては、理解を容易にするため、１ラインの高さを誇張して描いてある。
【００９９】
ステップＳ６０８の待機処理を行わずに分割印刷をすると、図３に示すようなステッピングモータの位相変化と角度変化特性により、１ラインの各ドットが分割に応じてずれて印刷されてしまう。この様子を図７（ｂ）「従来の手法」に示す。
【０１００】
本実施形態では、ステップＳ６０８の待機処理を行うため、ステッピングモータが正しい角度に設定され、１ライン分紙送りがされてから当該１ラインの印刷が開始されることが保証される。この様子を図７（ａ）「本発明の手法」に示す。
【０１０１】
また、ステップＳ６０５では、１ラインに含まれるすべてのドットについて印刷が行われ、１ラインは分割されないので、待機は必要ない。なお、待機するような実施形態を採用することもできる。この場合、印刷スピードは落ちるが、各ラインが正確に等間隔に並ぶことになる。したがって、高画質の印刷結果が求められる場合に適している。
【０１０２】
ついで、１ライン分の発熱させるべきドットをすべて発熱させて印刷したら（ステップＳ６１１；１ライン分終了）、ステップＳ６０６に進む。
【０１０３】
ステップＳ６０２〜ステップＳ６０７の繰返し処理が終了したら、プリントバッファ１０７から印刷したラインの印刷イメージをすべて消去して（ステップＳ６１２）、本処理を終了する。
【０１０４】
（ホスト装置）
図８は、ホスト装置１５１の概要構成を示す模式図である。
【０１０５】
ホスト装置１５１は、ＣＰＵ  ８０１によって制御される。ＣＰＵ  ８０１は、ＲＯＭ  ８０２や外部記憶装置（ハードディスク、フロッピーディスク、ＣＤ−ＲＯＭなど）８０３に記憶されたプログラムをＲＡＭ  ８０４に読み出して実行する。
【０１０６】
プログラムを実行することによりアプリケーションが開始されると、ユーザはキーボードやマウスなどの入力装置８０５を用いてアプリケーションに対する指示を出す。これにより、印刷装置１０１に対する処理を実行する場合は、ＣＰＵ８０１が、印刷コマンド、改行コマンド、分割印刷設定コマンドなどをＲＡＭ８０４に展開してから、インターフェース８０６を介して印刷装置１０１へ送信する。
【０１０７】
アプリケーションにおける処理の結果は、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどの表示装置８０７に表示される。
（その他の実施例）
本発明においては、一般的なホストＰＣ（パーソナルコンピュータ）の電源を共用するため、１２Ｖを電源電圧とした。従来、２４Ｖ仕様の紙送りモータを１２Ｖで使用したため、通電エネルギー（消費電力）を抑えるため、多分割駆動を行っている。ここでいう多分割駆動とは、１ドットライン分のデータを左端から検索し、指定されたドット数（１２８、９６、６４）ごとに通電を行う制御のことである。つまり、１ドットライン毎に印字データによって分割数が変化するものである。
【０１０８】
このヘッドは、６４０ドットの印字素子を備えている。例えば、１２８ドット数を指定し、１２８ドットごとに通電を行うとし、１ドットライン分の黒データが全部で６４０ドットあるとすれば、結果として５分割されることになる。また、１２８ドットごとに通電を行うとし、１ドットライン分の黒データが全部で１２８ドットあるとすれば、結果として分割されないことになる。１２Ｖで紙送りモータを駆動するため、紙送り速度が遅くなり、１ドットライン中の印字ドット数のカウントが可能のため、実現できた。また、ドット数を数えてから分割を行う方が、消費電流が平均化され、望ましい結果が得られた。
【０１０９】
一方、２４Ｖ仕様の紙送りモータを２４Ｖで駆動したときは、紙送り速度が速いため、印字ドット数をカウントできないことがある。その場合は、１ドットラインの発熱分割数（０〜１０）を先に決め、分割数に応じて発熱体の発熱領域を割り当て、分割印字を行う。例えば、分割数が１０のときは、１ドットラインが６４０ドットとすると、６４ドットずつ１０の領域に分け、印字すべき黒ドット数によらず、１０の領域をそれぞれずらして印字を行うことになる。
【０１１０】
ここで、ホストＰＣからプリンタに送信されてきた、コマンドＡ（例えばＥＳＣ  Ａ  ｎ）によって、指定ドット数ｎを６４０（分割しない）〜６４まで変化することができる。指定ドット数が６４０（ｎ＝６４０）のとき消費電力が最大であり、指定ドット数６４（ｎ＝６４）のとき消費電力が最小である。
【０１１１】
また、ホストＰＣからプリンタに送信されてきた、コマンドＢ（例えばＥＳＣＢ  ｎ）によって、紙送りモータが止まる（つまりプラテンが停止し、印字用紙が停止する）まで待機（図６のステップＳ６０８）してから印字するか（ｎ＝０）、待機せず紙送りモータが動いたままで印字するか（ｎ＝１）、選択することができる。
【０１１２】
もちろん、コマンドＡ，Ｂの代わりに、プリンタ内部に設けられたＤＩＰスイッチＡ，Ｂやフラッシュメモリ内部のメモリスイッチＡ，Ｂによっても設定することも可能である。また、メモリスイッチＡまたはＢとコマンドＡまたはＢを併用してもよい。
【０１１３】
メモリスイッチＡとコマンドＡとを併用した場合、メモリスイッチＡに書き込まれた情報をＲＡＭに読み出し、その後、ホストＰＣからコマンドＡを受信したらＲＡＭに上書きする。印字するときは、ＣＰＵは、ＲＡＭの最新情報を読み出し、指定ドット数を決定する。メモリスイッチＢとコマンドＢについても同様である。
【０１１４】
指定ドット数が６４０でないとき、ステップＳ６０８（図６）のように、紙送りモータが止まるまで待ってから印字を行えば、分割印字を行っても、ずれが生じない。このとき、ステップＳ６０８の待機を行わず、紙送りモータが止まるまで待たずに印字すれば、高速で印字を行うことができる。
【０１１５】
一方、指定ドット数が６４０のとき（すなわち、分割を行わないとき）、紙送りモータが止まるまで待ってから印字する必要はなく、紙送りモータが動きながらでも一括印字が可能である。従って、コマンドＡによって指定ドット数が６４０に決定されたときは、紙送りモータの待機に関するコマンドＢを無視し、常に紙送りモータ非待機とすることが望ましい。
【０１１６】
【発明の効果】
以上説明したように、本発明によれば、消費電力の少ないサーマルプリンタを実現するのに好適な印刷装置、ホスト装置、印刷方法、ホスト装置の制御方法、ならびに、これらを実現するプログラムを記録したコンピュータ読取可能な情報記録媒体を提供することができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施形態に係る印刷装置とホスト装置の様子を示す図。
【図２】  本発明の第１の実施形態に係る印刷装置の概要構成を示す模式図。
【図３】  用紙送りローラのステッピングモータの位相を変化させるタイミングと、当該位相変化による用紙送りローラの回転量の時間変化を示すグラフ。
【図４】  割り込み処理の流れを示すフローチャート。
【図５】  通常処理の流れを示すフローチャート。
【図６】  印刷処理の流れを示すフローチャート。
【図７】  印刷結果の概要を示す説明図。
【図８】  ホスト装置の概要構成を示す模式図。
【符号の説明】
１０１  印刷装置
１０２  ＣＰＵ
１０３  受信部
１０４  ＲＡＭ
１０５  受信バッファ
１０６  ＲＯＭ
１０７  プリントバッファ
１０８  印刷ヘッド
１０９  プラテン
１１０  用紙送りローラ
１１１  フラッシュＥＥＰＲＯＭ
１１２  最大数記憶領域
１５１  ホスト装置
１９１  ケーブル
２０１  用紙
８０１  ＣＰＵ
８０２  ＲＯＭ
８０３  外部記憶装置
８０４  ＲＡＭ
８０５  入力装置
８０６  インターフェース
８０７  表示装置
【図１】
0004649711.tif 000002
【図２】
0004649711.tif 000003
【図３】
0004649711.tif 000004
【図４】
0004649711.tif 000005
【図５】
0004649711.tif 000006
【図６】
0004649711.tif 000007
【図７】
0004649711.tif 000008
【図８】
0004649711.tif 000009