(57)【要約】【課題】ＣＰＵに大きな演算負荷をかけることなく、電力消費が大きくなる高密度印刷時にも駆動電源の電圧降下を防止する。【解決手段】キャリッジ上にあって当該キャリッジと共に移動し、１行毎に印刷を行うインパクトヘッドと、外部から受信した印刷データを格納する受信バッファとを備えるプリンタである。受信バッファに格納された印刷データのうち前記キャリッジの１行分の印刷データの中に、所定の文字コードあるいは所定の制御コードで制御された印字データが存在するかどうかを検出し（Ｓ１０３〜１０５）、１つでも検出された場合には、その行の前記キャリッジの印刷移動速度を所定の標準速度よりも遅く設定する（Ｓ１０６）。【選択図】　　　図６
2004098617.tif 000002
【特許請求の範囲】
【請求項１】
キャリッジ上にあって当該キャリッジと共に移動し、１行毎に印刷を行うインパクトヘッドと、
外部から受信した印刷データを格納する受信バッファと、
前記受信バッファに格納された印刷データのうち前記キャリッジの１行分の印刷データに含まれる文字コードがすべて１バイトコード文字である場合に、当該１行分の文字コードの中に、所定の文字コードが存在するかどうかを検出する検出手段と、
前記検出手段により、当該１行分の文字コードの中に前記所定の文字コードが１つでも検出された場合に、その行の前記キャリッジの印刷移動速度を所定の標準速度よりも遅く設定する制御手段と、を備えたドットインパクトプリンタ。
【請求項２】
キャリッジ上にあって当該キャリッジとともに移動し、１行毎に印字を行うインパクトドットヘッドと、
外部から受信した制御コードと印字データとを含む印刷データを格納する受信バッファと、
前記受信バッファに格納された印刷データのうち前記キャリッジの１行分の印刷データに、所定の制御コードによる制御がなされた印字データが含まれているかどうか検出する検出手段と、
前記検出手段により、当該１行分の印刷データに前記所定の制御コードによる制御がなされている印字データが１つでも検出された場合に、その行の前記キャリッジの印刷移動速度を所定の標準速度よりも遅く設定する制御手段と、
を備えたドットインパクトプリンタ。
【請求項３】
請求項１記載のドットインパクトプリンタにおいて、前記所定の文字コードは、１文字当たりのドット数が所定数以上である文字の文字コードを含むことを特徴とするプリンタ。
【請求項４】
請求項２記載のドットインパクトプリンタにおいて、前記所定の制御コードは、文字を装飾するためのコードを含むことを特徴とするプリンタ。
【請求項５】
請求項２または４記載のドットインパクトプリンタにおいて、前記所定の制御コードは、外部から設定されたダウンロード文字を指定するコードを含むことを特徴とするプリンタ。
【請求項６】
請求項２、４、または５記載のドットインパクトプリンタにおいて、前記所定の制御コードは、ビットイメージの印刷を指示するコードを含むことを特徴とするプリンタ。
【請求項７】
請求項１〜６の何れか１項記載のドットインパクトプリンタにおいて、
前記インパクトヘッドの近傍に設けられた温度検出手段を備え、
前記制御手段は、前記温度検出手段が検出した温度に応じて前記キャリッジの印刷移動速度および前記キャリッジの行間の休止時間の少なくとも一方を設定する手段を含むことを特徴とするプリンタ。
【請求項８】
キャリッジ上にあって当該キャリッジと共に移動し、１行毎に印刷を行うインパクトヘッドと、外部から受信した印刷データを格納する受信バッファとを備えるドットインパクトプリンタの制御方法であって、
前記受信バッファに格納された印刷データのうち前記キャリッジの１行分の印刷データに含まれる文字コードがすべて１バイトコード文字である場合に、当該１行分の文字コードの中に、所定の文字コードが存在するかどうかを検出するステップと、
該ステップにより、当該１行分の文字コードの中に前記所定の文字コードが１つでも検出された場合に、その行の前記キャリッジの印刷移動速度を所定の標準速度よりも遅く設定するステップと、を備えた方法。
【請求項９】
キャリッジ上にあって当該キャリッジとともに移動し、１行毎に印字を行うインパクトドットヘッドと、外部から受信した制御コードと印字データとを含む印刷データを格納する受信バッファとを備えるドットインパクトプリンタの制御方法であって、
前記受信バッファに格納された印刷データのうち前記キャリッジの１行分の印刷データに、所定の制御コードによる制御がなされた印字データが含まれているかどうか検出するステップと、
前記検出手段により、当該１行分の印刷データに前記所定の制御コードによる制御がなされている印字データが１つでも検出された場合に、その行の前記キャリッジの当該行の印刷移動速度を所定の標準速度よりも遅く設定するステップと、
を備えた方法。
【請求項１０】
キャリッジ上にあって当該キャリッジと共に移動し、１行毎に印刷を行うインパクトヘッドと、外部から受信した印刷データを格納する受信バッファとを備えるドットインパクトプリンタに搭載されたコンピュータに請求項８または９記載の方法を実行させるためのプログラム。
【請求項１１】
請求項１０記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ドットインパクトプリンタ、ドットインパクトプリンタの制御方法、その制御方法をコンピュータに実行させるプログラム、およびそのプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
ドットインパクトプリンタは、インパクトヘッドを構成する多数のピンと、各ピンをそれぞれ個別に駆動するためのソレノイドコイルとからなるインパクトヘッドを有しており、ソレノイドコイルに通電して各ピンをインクリボンを介して印刷用紙に打ち付けることにより印刷を行なう。このため、短時間に多数のピンが駆動される印刷密度の高い印刷を行なう場合には、多数のソレノイドコイルに同時に通電することが必要となり、多大な電力の消費により駆動電源の電圧降下を招くことがある。このような電圧降下が生ずると、ピンの駆動力が弱くなって印刷文字がかすれたり欠けたりするなどの不具合が生じてしまう。そこで、従来より、例えば、電圧降下を検出する回路を設け、駆動電源が所定の電圧以下に低下したときに、印刷を中止して電源電圧が回復するまで待つことが行なわれている（特許文献１参照）。しかし、この方法では、電源電圧が一旦回復しても、印刷を再開すると再び電圧降下が生じることがあり、このような場合には、印刷動作の停止と再開とが繰り返されることとなる。このため、全体的に印刷効率が悪くなり、スループットが低下するといった事態を招くことがある。
【０００３】
このような問題を解決すべく、印刷前に、印刷すべき文字やイメージのドット数を計数して、その計数値が所定値を超えた場合に、印刷速度を標準速度よりも遅く設定することが提案されている（特許文献２参照）。かかる手法によれば、ドット数が多い文字やイメージを印刷する際に、単位時間当たりのピン駆動回数を減らして、電力消費が急増するのを回避し、これにより電圧降下を抑制することができる。このため、印刷動作の停止と再開とが繰り返されずに済み、全体的にスループットの高い印刷を行なうことができる。
【０００４】
【特許文献１】
特開昭６０−２１２６５号公報
【０００５】
【特許文献２】
特開平６−９７７号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、ドット数の計数は、所定の印刷範囲毎（例えば１行毎）に行なわなければならず、このドット数の計数処理を行なうためにＣＰＵにはかなりの演算負荷がかかってしまう。このため、ＡＳＩＣなどのハードウェアによる演算処理手段を備えていないＣＰＵや、処理速度の遅いＣＰＵがプリンタに搭載されている場合には、毎回のドット数計数処理に長い時間がかかってしまい、却ってプリンタのスループットが低下してしまう可能性がある。
【０００７】
本発明は、このような事情に鑑みてなされたものであり、ドットインパクトプリンタにおいて、ＣＰＵに大きな演算負荷をかけることなく、電力消費が大きくなる高密度印刷時にも駆動電源の電圧降下を防止できるようにすることを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明に係るドットインパクトプリンタは、
キャリッジ上にあって当該キャリッジと共に移動し、１行毎に印刷を行うインパクトヘッドと、
外部から受信した印刷データを格納する受信バッファと、
前記受信バッファに格納された印刷データのうち前記キャリッジの１行分の印刷データに含まれる文字コードがすべて１バイトコード文字である場合に、当該１行分の文字コードの中に所定の文字コードが存在するかどうかを検出する検出手段と、
前記検出手段により、当該１行分の文字コードの中に前記所定の文字コードが１つでも検出された場合に、その行の前記キャリッジの印刷移動速度を所定の標準速度よりも遅く設定する制御手段と、を備える。
【０００９】
また、本発明に係るドットインパクトプリンタは、
キャリッジ上にあって当該キャリッジとともに移動し、１行毎に印字を行うインパクトドットヘッドと、
外部から受信した制御コードと印字データとを含む印刷データを格納する受信バッファと、
前記受信バッファに格納された印刷データのうち前記キャリッジの１行分の印刷データに、所定の制御コードによる制御がなされた印字データが含まれているかどうか検出する検出手段と、
前記検出手段により、当該１行分の印刷データに前記所定の制御コードによる制御がなされている印字データが１つでも検出された場合に、その行の前記キャリッジの当該行の印刷移動速度を所定の標準速度よりも遅く設定する制御手段と、
を備える。
【００１０】
本発明によれば、電源電圧の降下の原因となるドット数の多い文字の文字コードや、ドット数の増大を招く可能性のある制御がなされた印字データが検出された場合に、キャリッジの印刷移動速度を遅くすることで、駆動電源の電圧降下の回避することができる。また、予め設定された文字コードや制御コードを印刷データの中から検出する処理は、従来のドット数を計数する処理に比べて、計算負荷が小さくて済む。このため、印刷移動速度の設定処理に時間がかかることはなく、印刷を円滑に行なうことができる。
【００１１】
また、本発明において、前記所定の制御コードは、文字を装飾するためのコード、外部から設定されたダウンロード文字を指定するコード、および、ビットイメージの印刷を指示するコードの少なくとも何れかを含むこととしてもよい。
【００１２】
また、本発明において、前記インパクトヘッドの近傍に設けられた温度検出手段を備え、前記制御手段は、前記温度検出手段が検出した温度に応じて前記キャリッジの印刷移動速度および前記キャリッジの行間の休止時間の少なくとも一方を設定する手段を含むこととしてもよい。このようにすれば、インパクトヘッドの温度を考慮した印刷速度を設定することができ、駆動電源の電圧降下をより確実に防止することができる。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態について添付図面を用いて説明する。
図１は、本発明の一実施形態であるドットインパクトプリンタ（以下、単にプリンタという）１０のシステム構成を表すブロック構成図である。プリンタ１０は、ＣＰＵ（中央制御部）１２、インターフェース１４、ＲＯＭ１６、ＲＡＭ１８、インパクトヘッド２０、ヘッド制御部２２、キャリッジ２４、キャリッジモータ２６、キャリッジモータ制御部２８、温度センサ３０、センサ信号処理部３２、紙送り制御部３４、駆動電源５０などを備えている。
【００１４】
ＲＯＭ１６には、プリンタ１０を制御するための制御プログラムや印刷キャラクタのビットパターンデータなどの各種データが記憶されている。ＣＰＵ１２は、ＲＯＭ１６から制御プログラムを読み出して実行することにより、プリンタ１０の各部を制御する。インターフェース１４には、ホストコンピュータ３６が接続され、プリンタ１０はこのインターフェース１４を通してホストコンピュータ３６からの印刷データやコマンドなどの各種データを受信する。ＲＡＭ１８には、ホストコンピュータ３６から受信した制御コードや印字データ等の印刷データを格納するための受信バッファ１８ａ、および、これから印刷する１行分の印字データを展開して得られたビットイメージデータを格納するための印刷バッファ１８ｂが設けられている。
【００１５】
ＣＰＵ１２は、受信バッファ１８ａに格納された印刷データを順次読み出し、印刷データに含まれる印字データおよび制御コードに従って印刷処理を行なう。具体的には、ＣＰＵ１２は、ＲＯＭ１６に記憶された文字のビットパターンデータを参照するなどして、１行分の印字データをビットイメージデータに展開して印刷バッファ１８ｂに格納する。そして、印刷バッファ１８ｂ内のビットイメージデータに基づいて、ヘッド制御部２２、キャリッジモータ制御部２８、および紙送り制御部３４に指令を発して印刷処理を実行する。
【００１６】
ヘッド制御部２２は、ＣＰＵ１２からの指令によって、印刷バッファ１８ｂに格納されたビットイメージデータに基づき、インパクトヘッド２０を駆動制御して印刷用紙３８に対し印刷を行なう。
【００１７】
インパクトヘッド２０は、夫々がソレノイドにより駆動される複数のピンを備えたヘッドであり、各ピンが印刷の１ドットに対応している。したがって、ビットイメージデータに従って、駆動すべきピンに対応するソレノイドコイルに通電し、そのピンをインクリボン４０を介して印刷用紙３８に打ち付けることにより、印刷が行なわれることになる。
【００１８】
キャリッジモータ２６は、プーリ４２およびタイミングベルト４４を介して、インパクトヘッド２０を搭載したキャリッジ２４に連結されている。キャリッジ２４はキャリッジモータ２６の回転に応じて、印刷用紙３８の幅方向に移動するように構成されている。キャリッジモータ制御部２８は、ＣＰＵ１２からの指示に応じてキャリッジモータ２６を駆動制御することにより、キャリッジ２４をインパクトヘッド２０の印刷動作に同期して印刷用紙３８の幅方向に移動させる。
【００１９】
紙送り制御部３４は、紙送り機構を構成する紙送りローラ４６を回転駆動して、インパクトヘッド２０による印刷動作に同期して印刷用紙３８を搬送させる。
【００２０】
また、温度センサ３０は、インパクトヘッド２０の近傍に配設された例えばサーミスタなどの温度検出素子である。温度センサ３０は、インパクトヘッド２０のソレノイドコイルの温度に応じた検出信号をセンサ信号処理部３２に出力する。センサ信号処理部３２は、温度センサ３０からの検出信号をＡ／Ｄ変換してＣＰＵ１２に供給する。
【００２１】
駆動電源５０は、上記の各部の動作に必要な電源を供給する。このうち、特にヘッド制御部２２はインパクトヘッド２０が備える各ソレノイドコイルに通電を行なうことから消費電力が大きくなり、ドット密度の大きい印刷を行なう場合には、ヘッド制御部２２の消費電力が駆動電源５０の容量を越えてしまい、電源電圧の降下を招くおそれがある。
【００２２】
これに対して、本実施形態のプリンタ１０では、駆動電源５０の電圧降下を防止するために、ドット数の多い文字やドット数の不明な文字、ビットイメージなどを印刷する場合には、印刷速度を制限するようにしている。つまり、文字のドット数が多い場合には、インパクトヘッド２０の駆動すべきピンの数が多くなり、それに伴い、ソレノイドへの通電量も大きくなることから、そのことを事前に察知して、印刷速度を制限することで駆動電源５０の電圧降下を回避するのである。
【００２３】
本実施形態では、▲１▼ドット数の多い文字、▲２▼装飾文字、▲３▼ダウンロード文字・ビットイメージ・ＮＶビットイメージの３種類を印刷速度の制限対象として設定している。
【００２４】
▲１▼ドット数の多い文字
本実施形態では、１文字のドット数が例えば２５ドット以上の文字を印刷速度制限対象として設定する。
図２は、プリンタが印刷可能な文字の文字コード表の一部を示したものであり、一例として、文字コードのページ番号「０」（ＰＣ４３７（ＵＳＡ：Ｓｔａｎｄａｒｄ　Ｅｕｒｏｐｅ））に対応した文字コード表を示している。この文字コード表の中では、図中丸枠で示した文字、即ち、文字コード『Ｂ２ｈ』、『ＤＢｈ』、『ＤＣｈ』および『ＤＥｈ』の文字がドット数２５ドット以上の文字であり、これらの文字を印刷速度制限対象として設定している。
【００２５】
ここで、２５ドット以上の文字について印刷速度を制限するのは次の理由による。すなわち、本実施形態のプリンタ１０では、インパクトヘッド２０は縦一列に設けられた９本のピンを有し、横方向に７ドットのドットマトリクスで１文字を構成するものとしている。また、各文字間のスペースとして３ドット取っている。さらに、ピンを駆動して１ドット印字した後、直ぐに同じピンを駆動しても、その間にキャリッジが１ドット分以上移動するために、隣接するドットを続けて印字することはできない。すなわち、横方向には最高でも１ドットおきにしか印字できない。したがって、フルベタ印字を行なう場合、１文字分が９×（７＋３）／２＝４５ドットで構成されることになる（フルベタ印字を行なう場合には、文字間のスペースも印字するため、横方向のドット数は（７＋３）ドットとなる。）。そこで、このフルベタ印字時のドット数４５の約６０％程度を目安として、２５ドット以上の文字について印刷速度を制限することとしている。
【００２６】
なお、文字コード『２０ｈ』〜『７Ｆｈ』は、全てのページに共通の文字コードであるが、この範囲では、ドット数２５ドット以上の文字がないため、印刷速度制限対象として設定していない。
【００２７】
図３は、文字コードの全ページについて、ドット数２５ドット以上である文字の文字コードの一覧を示すリストである。なお、図３において、ページ番号「２５４」および「２５５」のページは、ユーザ毎に個別にカスタマイズされて定義されるページである。したがって、これらのページでは全ての文字がドット数未確定となるため、本実施形態では、両ページの全ての文字を印刷速度制限対象として設定している。なお、どのページの文字コードを用いるかは、例えば、ホストコンピュータ３６からのコマンドに応じて設定されるようになっている。
【００２８】
本実施形態のプリンタ１０は、各文字コードが印刷速度制限対象に該当するかとなるか否かを示す情報を図４に示すようなコードテーブルＴＢＬとして、例えばＲＯＭ１６等の記憶部に記憶している。このコードテーブルＴＢＬは、文字コード表の各ページ番号「０」〜「２５５」に対応して設けられている。例えば、コードテーブルＴＢＬ０はページ番号「０」に対応し、コードテーブルＴＢＬ１はページ番号「１」に対応している。
【００２９】
各コードテーブルＴＢＬは、［０］〜［１５］の１６個の要素により構成され、各要素は８ビットで表される。したがって、各コードテーブルＴＢＬは、１２８ビットで表され、その各ビットが文字コード表の「８０ｈ〜ＦＦｈ」の各文字コードに対応している。すなわち、ページ番号「０」に対応するＴＢＬ０を例にとると、ＴＢＬ０［０］の８ビットは上位ビット側から順に文字コード「８０ｈ」〜「８７ｈ」に対応し、ＴＢＬ０［１］の８ビットが上位ビット側から順に文字コード「８８ｈ」〜「８Ｆｈ」に対応し、ＴＢＬ０［２］の８ビットが上位ビット側から順に文字コード「９０ｈ」〜「９７ｈ」に対応する等である。そして、ある文字コードに対応するビットの値が「１」であれば、その文字コードは印刷速度制限対象であることを示し、「０」であればその文字コードは印刷速度制限対象でないことを示す。
【００３０】
例えば、図２に示すページ番号「０」の文字コード表における印刷速度制限対象文字は、文字コード「Ｂ２ｈ」、「ＤＢｈ」、「ＤＣｈ」、および「ＤＥｈ」の文字であるから、文字コード「Ｂ２ｈ」を含む「Ｂ０ｈ」〜「Ｂ７ｈ」の範囲に対応するコードテーブルＴＢＬ０［６］、および、文字コード「ＤＢｈ」、「ＤＣｈ」および「ＤＥｈ」を含む「Ｄ８ｈ」〜「ＤＦｈ」の範囲に対応するコードテーブルＴＢＬ０［１１］には、それぞれデータ『２０ｈ』とデータ『１Ａｈ』とが格納されている（図中四角枠の部分）。コードテーブルＴＢＬ０のそれ以外の要素には、印刷速度制限設定文字が無いことを意味するデータ「００ｈ」が格納されている。
【００３１】
このデータ「２０ｈ」およびデータ「１Ａｈ」が表わす意味について図５を参照して説明する。同図に示すように、コードテーブルＴＢＬ０［６］（「Ｂ０ｈ」〜「Ｂ７ｈ」）において、印刷速度制限対象となる文字「Ｂ２ｈ」は、上位から３ビット目に対応する。このビットを「１」とすると、「００１０００００」となり、これを１６進数で表すと「２０」となる。同様に、コードテーブルＴＢＬ０［１１］（「Ｄ８ｈ」〜「Ｄ７ｈ」）において、文字印刷速度制限対象となる文字「ＤＢｈ」、「ＤＣｈ」および「ＤＥｈ」に対応する上位から４ビット目、５ビット目、および７ビット目を「１」として１６進数で表すと「１Ａｈ」となる。
【００３２】
このように印刷速度制限対象となる文字をビットマップデータ形式で記憶しておくことで、どの文字が印刷速度制限対象に該当するかを必要最小限のデータ量で記憶することができ、メモリ容量を節約することができる。
【００３３】
なお、本実施形態では、ドット数が２５ドット以上の文字を印刷速度制限対象として設定したが、基準となるドット数は２５ドットに限らず、適宜選択すればよい。本実施形態では、上述したように、１文字が９×７ドットで文字間が３ドットであるものとし、フルベタ印字時のドット数４５に応じて、基準として２５ドットを用いたが、ドット構成はこれに限らず、例えば、１文字のドット数が９×９ドットのもあり、さらに、文字間のドット数も３ドットのほか、２ドットが用いられる場合もある。したがって、それらのドット構成の場合にも、夫々、フルベタ印字時のドット数に応じて、印刷速度制限の基準となるドット数を定めるようにしてもよい。また、例えば、駆動電源５０の容量が大きければ、より高密度の印刷を行なっても容量が不足することはなくなるから、同じドット構成であってもより大きなドット数（例えば３０ドット）以上を印刷速度制限対象とすることができる。
【００３４】
▲２▼装飾文字
装飾文字としては、アンダーラインが付加された文字や、横倍角や縦倍角などの倍角文字などがある。このような装飾が施されると、装飾を行ったことによって印字デューティが増えるおそれがあるため、印刷速度制限対象としている。　　装飾文字は、装飾内容を表す所定の制御コード（文字装飾コード）で指定される。すなわち、ある文字装飾コードがホストコンピュータ３６から送られてくると、その後、装飾解除を指定する制御コードが現れるまでの間の文字コードが、文字装飾コードに応じた装飾を施されて印刷される。したがって、ＣＰＵ１２は、１行分の印刷データの中に文字装飾コードが検出された場合に、今回の印刷行に装飾文字が含まれていると判定でき、また、前の行が文字装飾されたまま今回の行に移った場合にも、今回の印刷行に装飾文字が含まれていると判定できる。なお、装飾文字コードおよびそれを解除するための制御コードはＲＯＭ１６等の記憶部に記憶されている。
【００３５】
▲３▼ダウンロード文字・ビットイメージ・ＮＶビットイメージ
ダウンロード文字は、ユーザ等により設定された文字、即ち外字のことであり、ホストコンピュータ３６からのコマンドなどによりプリンタ側に登録されている。また、ビットイメージは、ホストコンピュータ３６からビットイメージ形式のまま送信されてくる印刷データである。さらに、ＮＶビットイメージは、プリンタ１０内の不揮発性メモリに記録されたイメージデータである。これらのダウロード文字、ビットイメージ、およびＮＶビットイメージについては、印字データからはドット数が不明であり、印刷ドット数が大きくなる可能性がある。そこで、これらを印刷速度制限対象として設定している。
【００３６】
ダウンロード文字は、所定の制御コードで指定される。すなわち、装飾文字の場合と同様に、ダウンロードを指定する制御コードがホストコンピュータ３６から送られてくると、その後、ダウンロード文字解除を指定するコードが送られてくるまでの間の印字データがダウンロード文字として印刷される。同様に、ビットイメージ、および、ＮＶビットイメージの印刷も、夫々に対応した制御コードにより指定され、それら制御コードがホストコンピュータ３６から送られてくると、その後、ビットイメージ印刷を解除するコードが送られてくるまでの間の印字データがビットイメージとして印刷される。したがって、ＣＰＵ１２は、１行分の印刷データの中にダウンロード文字やビットイメージ・ＮＶビットイメージの印刷を指定する制御コードが検出された場合に、今回の印刷行にダウンロード文字またはビットイメージ・ＮＶビットイメージが含まれていると判定でき、また、前の行がダウンロード文字またはビットイメージが指定されたまま今回の行に移った場合にも、今回の印刷行にダウンロード文字またはビットイメージ・ＮＶビットイメージが含まれていると判定できる。なおダウンロード文字、ビットイメージ、ＮＶビットイメージを夫々指定する制御コードおよびそれらを解除するための制御コードもＲＯＭ１６等の記憶部に記憶されている。
【００３７】
なお、本実施形態では、プリンタ１０に送信される印刷データには文字コードとしてＡＮＫ文字コード（１バイト文字コード）のみが含まれるものとし、ＡＮＫ文字コード以外の漢字コードを印刷する場合には、上記の印刷速度制限は行わないものとする。
【００３８】
図６は、プリンタ１０において印刷速度を制限するか否かを判定すべくＣＰＵ１２が実行する処理の一例を表すフローチャートである。本ルーチンは、１行分の印刷データを印刷する都度実行される。ＣＰＵ１２は、まず、印刷速度を、所定の標準速度に設定する（Ｓ１００）。そして、印刷バッファから１行の最初の文字の印刷データを取得し（Ｓ１０１）、次に、速度制限が有効に設定されているか否かを判別する（Ｓ１０２）。その結果、速度制限が有効に設定されていれば、後述するＳ１０７へ進む。一方、速度制限が有効に設定されていなければ、印刷データが装飾文字であるか否かを判別する（Ｓ１０３）。ここで、装飾文字であるか否かは、文字装飾コードが現れた後、その文字装飾を解除するコードが現れる前であるかどうかに基づいて判断される。具体的には、装飾文字かどうかを表すフラグを用意しておく。そして、Ｓ１０３では、印刷データが装飾文字コードであればフラグをセットし、文字装飾を解除するコードであればフラグＦ１をリセットするようにして、フラグが既にセットされていた場合、または、今回新たにフラグがセットされた場合に、装飾文字であると判定する。これにより、現在行に装飾文字コードが含まれる場合のみならず、前行で文字装飾が指定されたまま現在行に移った場合にも、装飾文字が含まれていると判定できる。Ｓ１０３の判別処理の結果、装飾文字であれば、速度制限を有効に設定する（Ｓ１０６）。一方、装飾文字でなければ、次にダウンロード文字、ビットイメージ、またはＮＶビットイメージの何れかであるか否かを判別する（Ｓ１０４）。ここで、ダウンロード文字、ビットイメージ、またはＮＶビットイメージであるか否かの判定も、上記Ｓ１０３の装飾文字判定の場合と同様に、夫々に対応するフラグを用意しておき、各フラグのセット・リセット処理に基づいて行うことができる。その結果、ダウンロード文字、ビットイメージ、またはＮＶビットイメージの何れかに該当する場合には、速度制限を有効に設定する（Ｓ１０６）。一方、いずれにも該当しない場合には、次に印刷速度制限文字に該当するか否かを判別する（Ｓ１０５）。
【００３９】
図７は、印刷速度制限文字に該当するか否かを判定するための処理の一例を表すフローチャートである。同図に示すように、先ず、文字コードから「８０ｈ」を減算した値を、３ビット右にシフトする（Ｓ１５０）。上述のように、コードテーブルＴＢＬには、文字コードが「８０ｈ」から始まる各文字の情報が、１要素８ビットの各ビットに対応して格納される。そして、８ビット右にシフトすることは「８」で除算することを意味する。したがって、Ｓ１５０の処理によって、判別対象である文字コードが、コードテーブルＴＢＬのどの要素に含まれるか、その要素番号が得られることになる。
【００４０】
次に、文字コードから「８０ｈ」を減じた値と「０７ｈ」とのＡＮＤをとることにより、「８」で割ったときの余りを求める（Ｓ１５２）。この余りの値は、文字コードが上記Ｓ１５０で求められたコードテーブルＴＢＬの要素の中の何ビット目に対応するかを示すことになる。
【００４１】
次に、現在設定されているページ番号に該当するコードテーブルＴＢＬについて、Ｓ１５０で求められた要素番号の、Ｓ１５２で求められたビット位置の値を参照し（Ｓ１５４）、その値が「１」か「０」かが判別される。その結果、値が「１」であれば、印刷速度制限文字に該当すると判別され、「０」であれば印刷速度制限文字に該当しないと判別される。
【００４２】
再び図６のフローチャートに戻って、Ｓ１０５において、印刷速度制限文字に該当すれば、速度制限設定を有効に設定する（Ｓ１０６）。一方、印刷速度制限文字に該当しなければ、１行分が終了したか否かチェックし（Ｓ１０６）、終了していなければ、次の印刷データを取得して（Ｓ１０８）、Ｓ１０２に戻る。
【００４３】
次にプリンタ１０の印刷速度の設定手順について説明する。
図８は、本実施形態において印刷速度を設定すべくＣＰＵ１２が実行する処理の一例を表すフローチャートである。また、図９は、図８のルーチンで参照される印刷速度設定用のテーブルである。図８に示すように、ＣＰＵ１２は、まず、印刷速度制限の有効／無効を確認し（Ｓ３０１）、さらに、温度センサ３０の検出信号に基づいてインパクトヘッド２０の温度を検知する（Ｓ３０２）。そして、インパクトヘッド２０の温度に応じた印刷モードを選定し（Ｓ３０３）、これら印刷速度の制限設定の有無と、選定した印刷モードとに基づき、インパクトヘッド２０の移動速度と行間休止時間とを設定する（Ｓ３０４）。
【００４４】
ここで、上記の印刷モードとして、図９に示すように、インパクトヘッド２０の検出温度に応じて、「低温モード」、「標準モード」、「高温モード」および「高温低温モード」の４つの印刷モードが用意されており、各モードごとに、印刷速度制限の設定の有無に応じて印刷速度を表す情報が設定されている。図９の例では、「標準モード」においては、印刷速度制限が有効である場合にインパクトヘッド２０の移動速度を約２１０ｍｓ／ｌｉｎｅに設定するのに対し、印刷速度制限が有効でない場合（通常の印刷設定の場合）には移動速度を約２８０ｍｓ／ｌｉｎｅに設定する。また、「高温モード」においては、印刷速度制限が有効である場合にインパクトヘッド２０の行間休止時間を６０ｍｓを設定するのに対し、印刷速度制限が有効でない場合には行間休止時間を４００ｍｓに設定する。また、「高温低速モード」においては、印刷速度制限が設定されていない場合にインパクトヘッド２０の行間休止時間を７３０ｍｓに設定するのに対し、印刷速度制限が設定されている場合には、行間休止時間を１５００ｍｓに設定する。このように、印刷速度制限が有効である場合には、通常の印刷設定の場合に比べて印刷速度を遅く設定する（つまり、ヘッド移動速度を遅くし、または、行間休止時間を長くする）ようにしている。ただし、「低温モード」については、印刷速度制限設定の有無によって設定速度に違いが生じないようにしている。
【００４５】
なお、ヘッド温度に応じた印刷モードにより印刷速度を変えているのは、温度によってソレノイドの抵抗値が変化すること等の起因して、その消費電力も変化することを考慮したためである。本実施形態では、図９のテーブルを、各温度区分において好適なヘッド移動速度および行間休止時間が得られるように例えば実験的に設定している。
【００４６】
ＣＰＵ１２は、上記Ｓ３０４において、４つの印刷モードと印刷速度制限の有効／無効から、図９のテーブルを参照して、インパクトヘッド２０の移動速度と行間休止時間とを、それらに基づいて印刷処理を実行する。
【００４７】
以上説明したように、本実施形態では、電源電圧の降下の要因となり得るドット数の多い文字、あるいは、ドット数が不明で大きなドット数となる可能性のある文字等を印刷速度の制限対象とし、これらの文字を印刷する場合には、印刷速度を標準速度よりも遅く設定する。このため、インパクトヘッド２０の単位時間当たりのピンの駆動量、すなわち、駆動電源５０の電源消費量が小さくなる。したがって、本実施形態によれば、駆動電源５０の電圧降下を回避することができ、これにより、電圧降下に伴う印刷のかすれ等の不具合の発生を防止することができる。
【００４８】
また、予め設定された制御コードを印刷データから検出する処理は、上記従来技術として述べたドット数を計数する処理に比べて、計算負荷が小さくて済むので、ＣＰＵの計算能力がさほど高くない場合でも、印刷速度の設定処理に長い時間がかかることはなく、印刷を円滑に行なうことができる。
【００４９】
さらに、本実施形態では、インパクトヘッド２０の温度にも応じて印刷速度を設定している。このため、温度変化に伴ってソレノイドの消費電力が変化するのに対応して、より適切な印刷速度設定を行なうことができる。
【００５０】
また、上記実施形態では、印刷制限対象の文字が含まれるか否かに応じて印刷速度を２段階に設定するものとしたが、これに限らず、印刷制限対象の文字の個数をカウントし、その個数に応じて、印刷速度を３段階以上に設定してもよい。
【図面の簡単な説明】
【図１】本発明の一実施形態であるプリンタのブロック構成図。
【図２】文字コード表の一例を示す図。
【図３】全文字コードページの印刷速度制限対象文字コードのリスト。
【図４】印刷速度制限対象を規定したコードテーブルを示す図。
【図５】コードテーブルの格納値を説明するための図。
【図６】印刷速度を制限するか否かを判定するルーチンのフローチャート。
【図７】印刷速度制限文字に該当するか否かを判定するルーチンのフローチャート。
【図８】印刷速度設定ルーチンを示すフローチャート。
【図９】各印刷モード別の印刷速度設定情報を示すテーブル。
【符号の説明】
１０　プリンタ、１２　ＣＰＵ、１６　ＲＯＭ、１８　ＲＡＭ、　１８ａ　受信バッファ、２０　インパクトヘッド、２２　ヘッド制御部、２４　キャリッジ、３０　温度センサ、５０　駆動電源
【図１】
2004098617.tif 000003
【図２】
2004098617.tif 000004
【図３】
2004098617.tif 000005
【図４】
2004098617.tif 000006
【図５】
2004098617.tif 000007
【図６】
2004098617.tif 000008
【図７】
2004098617.tif 000009
【図８】
2004098617.tif 000010
【図９】
2004098617.tif 000011