(57)【要約】【課題】キャリアが印刷開始位置に至るまでの間に、ＣＰＵが割込み以外の処理を効率良く行えるようにする。【解決手段】１スワス分の印刷データが印刷データバッファへ転送された後、キャリア１２が移動開始位置から移動を開始した時点より、ＣＰＵに対するデータ受信時の割込みを禁止する。そして、期間Ｔが経過してキャリア１２が印刷開始位置に到達した時点で割込みを許可する。期間Ｔでは、印刷データバッファがフル状態であって割込みがかかっても印刷データの処理はできないから、この期間Ｔでの無駄な割込みを禁止することで、ＣＰＵは割込み以外の処理に費やす時間を長く確保することができ、種々の処理を行えるようになる。【選択図】    図３
2004230566.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置から印刷データを受信し、受信した印刷データに基づきインクカートリッジからインクを吐出させて印刷を行うインクジェットプリンタにおいて、
前記インクカートリッジを保持したキャリアを駆動するＤＣモータと、
前記キャリアに設けられたエンコーダと、
前記エンコーダの出力に基づいてキャリアの位置を検出するポジションカウンタと、
前記ホスト装置から送られて来る１スワス分の印刷データを受信して格納する受信バッファと、
前記受信バッファに格納された印刷データが転送されるシングルバッファからなる印刷データバッファと、
前記印刷データを処理するＣＰＵと、
を備え、
前記受信バッファより１スワス分の印刷データが前記印刷データバッファへ転送された後、前記キャリアが移動を開始した時点より、前記ＣＰＵに対するデータ受信時の割込みを禁止し、
前記ポジションカウンタにより、前記キャリアが印刷開始位置に到達したことが検出されたときに、前記割込みを許可することを特徴とするインクジェットプリンタ。
【請求項２】
ホスト装置から印刷データを受信し、受信した印刷データに基づきインクカートリッジからインクを吐出させて印刷を行うインクジェットプリンタにおいて、
前記インクカートリッジを保持したキャリアの位置を検出する位置検出手段と、
前記ホスト装置から送信された印刷データが格納される印刷データバッファと、
前記印刷データを処理するＣＰＵと、
を備え、
前記キャリアが移動を開始した時点より、前記ＣＰＵに対するデータ受信時の割込みを禁止し、前記キャリアが印刷開始位置に到達したことが前記位置検出手段によって検出されたときに、前記割込みを許可することを特徴とするインクジェットプリンタ。
【請求項３】
請求項２に記載のインクジェットプリンタにおいて、
前記ＣＰＵは、前記割込みが禁止されている期間に、ホスト装置から受信したコマンドの解析処理を実行することを特徴とすることを特徴とするインクジェットプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インクジェットプリンタにおける印刷データの受信処理に関するものである。
【０００２】
【従来の技術】
インクジェットプリンタは、ホスト装置から印刷データを受信し、インクカートリッジを保持したキャリアを移動させながら、インクカートリッジからインクを吐出させて印刷を行うプリンタである。このようなインクジェットプリンタでは、ホスト装置からプリンタへのデータ転送速度に比べてプリンタの印刷速度が遅いことから、ホスト装置から送られて来る印刷データは一旦バッファに格納され、バッファから順次データが取り出されて印刷処理が行われる。このようなバッファを備えたプリンタは、例えば後記の特許文献１〜３に記載されている。
【０００３】
特許文献１のプリンタでは、複数文字シーケンスの文字列をバッファに蓄積しておいて一括送信し、この一括送信中はＡＣＫ信号（応答信号）の割込みを禁止することにより、正しい文字シーケンスを送信できるようにしている。特許文献２のプリンタでは、１ページ分の印刷データが格納されるページバッファのデータ量を監視し、データ量が所定量に達すると、ホスト装置からのデータ転送を中断してＣＰＵへの割込みを禁止することにより、ＣＰＵの処理に遅れが生じるのを防止している。特許文献３のプリンタでは、バッファの記憶容量に十分余裕がある場合はホスト装置からのデータ受信を連続的に許可し、記憶容量が少なくなってくるとデータ受信を断続的に許可し、記憶容量がなくなるとデータ受信を禁止することにより、ホスト装置やプリンタでの無駄な処理をなくすようにしている。
【０００４】
【特許文献１】
特開昭５８−６０３４９号公報
【特許文献２】
特開昭６２−２０３２２２号公報
【特許文献３】
特開平２−２０９２７２号公報
【０００５】
【発明が解決しようとする課題】
ところで、上記のようなプリンタでは、特許文献２にも記載されているように、ホスト装置からプリンタへ印刷データが送られてくると、プリンタ側のＣＰＵに対して割込みが発生するが、この割込みのために、インクジェットプリンタにおいては、印刷時に以下のような問題が発生する。
【０００６】
図５は、従来のインクジェットプリンタにおけるキャリアの移動と割込みのタイミングの一例を示している。プリンタがホスト装置から印刷開始の指令を受けると、キャリアＣが図の移動開始位置から移動を開始するが、実際にインクカートリッジからインクを吐出させて印刷を行うのは、移動を開始した時点ではなく、キャリアＣが図の印刷開始位置に到達した時点である。すなわち、移動開始位置と印刷開始位置とは一致しない。一方、ホスト装置から送られてきた印刷データはバッファへ格納されるが、バッファが単一の格納領域しか有しないシングルバッファの場合、印刷データは、キャリアＣが印刷開始位置に到達してプリンタが実際に印刷を行うまでバッファに格納されたままである。すなわち、キャリアＣが移動開始位置から印刷開始位置に至るまでの期間Ｔは、バッファはフル状態となっていて空き領域が発生しない。したがって、この期間Ｔにホスト装置から次の印刷データが送られてきても、プリンタはバッファに空き領域がないため、この印刷データを処理することができない。
【０００７】
一方、プリンタのＣＰＵには、上記期間Ｔにおいても割込みが発生する。例えばＣＰＵは、キャリアの移動速度やプリンタのボタン操作などを一定時間間隔で監視しており、図５（ａ）のように、ＣＰＵに対して一定周期で割込みがかかる。また、ホスト装置から印刷データを受信すると、図５（ｂ）のように、ＣＰＵに対してデータ受信の都度割込みがかかる。このような割込みがかかると、それまでＣＰＵが行っていた処理は中断され、ＣＰＵは図５（ｃ）のように、割込みの間をぬって処理を実行することになる。
【０００８】
しかるに、図５（ａ）の周期割込みはＣＰＵにとって不可避なものであるが、図５（ｂ）のようなデータ受信による割込みが期間Ｔで発生しても、前述のようにＣＰＵはこの期間中受信データを処理できないから、結局、期間Ｔでのデータ受信による割込みは無駄なものとなる。それにもかかわらず、従来はこの割込みのために、期間ＴにおけるＣＰＵの処理が制約を受け、結果的にＣＰＵが本来実行すべき割込み以外の処理が遅れてしまうという問題があった。このようなキャリアの移動と割込みのタイミングとに基因するインクジェットプリンタ特有の問題点に対して、従来は有効な方策が講じられておらず、前記の特許文献１〜３でもこの点は全く言及されていない。
【０００９】
本発明は、上記課題を解決するものであって、その目的とするところは、キャリアが印刷開始位置に至るまでの間に、ＣＰＵが割込み以外の処理を効率良く行えるようにしたインクジェットプリンタを提供することにある。
【００１０】
【課題を解決するための手段】
本発明に係るインクジェットプリンタでは、キャリアが移動を開始した時点よりＣＰＵに対するデータ受信時の割込みを禁止し、キャリアが印刷開始位置に到達したことが検出されたときに割込みを許可するようにしている。
【００１１】
このようにすることで、キャリアが移動開始位置から印刷開始位置へ移動している間は、ＣＰＵに対してデータ受信による割込みが発生しないので、ＣＰＵは割込み以外の処理を実行することが可能となり、ＣＰＵの本来の処理が遅れるのを回避することができる。
【００１２】
また、本発明では、割込みが禁止されている期間に、ホスト装置から受信したコマンドの解析処理を実行することにより、当該解析処理を、プリンタが実際に印刷を開始する前の段階で完了させることができる。これによって、印刷開始後にコマンド内容に応じた処理を直ちに実行することが可能となり、プリンタの処理速度を向上させることができる。
【００１３】
【発明の実施の形態】
図１は、本発明に係るインクジェットプリンタの一例を示す概略構成図で、（ａ）は正面図、（ｂ）は上面図である。図１において、１１はインクカートリッジ、１２はインクカートリッジ１１を搭載したキャリアで、キャリア１２の背面にはエンコーダ２３が取り付けられている。１３はインクカートリッジ１１の下面から突出した印字ヘッド部、１４は印字ヘッド部１３に対してワイピングやキャッピングなどのメンテナンス動作を行うメンテナンス機構部である。１５はキャリア１２の搬送を案内するガイドロッド、１６はガイドロッド１５を支持した左右１対の支持板、１７はキャリア１２を搬送するベルト、１８はベルト１７が架設された左右１対のプーリである。片方のプーリ１８はＤＣモータ７に連結されており、ＤＣモータ７が駆動すると、プーリー１８が回転してベルト１７が駆動され、ベルト１７に連結されたキャリア１２がガイドロッド１５に沿ってフォワード方向Ｆやリバース方向Ｒへ移動する。キャリア１２がフォワード方向Ｆへ移動して印刷領域に入ると、インクカートリッジ１１の印字ヘッド部１３からインクが吐出され、用紙２０への印刷が行われる。１９は用紙２０を搬送するためのローラ、２１はインクカートリッジ１１により用紙２０に印字を行う場合の基準面となるプラテン、２２は帯状のエンコーダスリットである。
【００１４】
エンコーダスリット２２は、透明部と不透明部とが交互に多数形成された帯状の薄板からなり、透明部のピッチおよび不透明部のピッチは、いずれも１／１５０インチに設定されている。一方、エンコーダ２３は光学式のエンコーダからなり、エンコーダスリット２２を挟んで対向する発光素子および受光素子（図示省略）を備えている。そして、エンコーダ２３がキャリア１２とともに移動すると、発光素子から投射された光は、エンコーダスリット２２の透明部で透過し、不透明部で遮光されるため、エンコーダ２３からはパルス信号が出力される。このパルス信号を後述するポジションカウンタで計数することにより、キャリア１２の位置を検出することができる。
【００１５】
図２は、インクジェットプリンタの電気的構成を示したブロック図である。ここでは、本発明に関係するブロックのみを図示している。図において、１０はインクジェットプリンタ（以下、単に「プリンタ」と記す）、４０はプリンタ１０とＵＳＢケーブルで接続されたホスト装置としてのＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である。
【００１６】
プリンタ１０において、７はキャリア１２を移動させるＤＣモータ、２３はキャリア１２に設けられたエンコーダであって、これらは図１に示したものと同じものである。３０はＵＳＢケーブルを介してＰＣ４０との間でのデータの授受を行うＵＳＢコントローラであって、このＵＳＢコントローラ３０には、ＰＣ４０から送られて来るデータ（印刷データおよびコマンド）を受信して格納する受信バッファ３４が備わっている。３１はプリンタ全体の動作を制御する制御部としてのＣＰＵ、３２はＣＰＵ３１の動作プログラムや各種パラメータ等が記録されているＲＯＭ、３３はデータを一時的に記憶するＲＡＭである。
【００１７】
３５はエンコーダ２３から出力されるパルス信号を計数するポジションカウンタであって、このポジションカウンタ３５とエンコーダ２３とは本発明における位置検出手段を構成する。ポジションカウンタ３５の計数値は、キャリア１２の移動方向に応じて増減するようになっており、この計数値に基づいてキャリア１２の位置が検出される。３６はインクカートリッジ１１を駆動して印字ヘッド部１３からインクを吐出させるプリントヘッド駆動部である。３７は受信バッファ３４に格納された印刷データが転送される印刷データバッファであって、単一の格納領域からなるシングルバッファにより構成される。
【００１８】
次に、本発明に係るプリンタ１０の動作につき説明する。ホスト装置であるＰＣ４０からプリンタ１０へは、１スワス（１行）単位で印刷データが送信されてくる。この１スワス分の印刷データは、ＵＳＢコントローラ３０で受信され、受信バッファ３４へ一旦格納された後、印刷データバッファ３７へ転送される。印刷データバッファ３７に１スワス分の印刷データが格納されると、バッファ３７はフル状態となる。そして、ＰＣ４０からの印刷開始の指令に基づき、キャリア１２が移動を開始する。
【００１９】
図３は、本発明におけるキャリア１２の移動とＣＰＵ３１への割込みのタイミングの一例を示したものであって、図５と対応する図である。キャリア１２が図の移動開始位置から移動を開始した時点では、インクカートリッジ１１はまだインクを吐出せず、印刷は行われない。キャリア１２が移動を続けて、図の印刷開始位置に到達すると、印刷データバッファ３７の印刷データが順次読み出され、インクカートリッジ１１からインクが吐出されて印刷が開始される。なお、キャリア１２が印刷開始位置に到達したことは、ポジションカウンタ３５の計数値に基づいてＣＰＵ３１が判断する。そして、印刷の開始により印刷データバッファ３７のデータが読み出されてバッファ３７に空き領域が生じると、受信バッファ３４から次の行の印刷データが印刷データバッファ３７に順次転送される。
【００２０】
ここで、本発明の場合は、受信バッファ３４より１スワス分の印刷データが印刷データバッファ３７へ転送された後、ＤＣモータ７によってキャリア１２が移動開始位置から移動を開始した時点より、ＣＰＵ３１に対するデータ受信時の割込みを禁止する。そして、キャリア１２が移動を続けて印刷開始位置に到達した時点で割込みを許可する。この結果、本発明では図３（ａ）のように、キャリア速度等の監視のために一定周期でＣＰＵ３１に割込みがかかる点は図５（ａ）の場合と同じであるが、図３（ｂ）のように、期間Ｔにおいては図５（ｂ）のようなデータ受信による割込みが全く発生しない。この期間Ｔが経過するまでは、印刷データバッファ３７はフル状態にあり、もともとＣＰＵ３１は期間Ｔでは印刷データを処理できないから、割込みを禁止してもプリンタ１０の動作に何ら影響はない。そして、期間Ｔが経過した後、すなわちキャリア１２が印刷開始位置に到達した後は、印刷の実行により印刷データバッファ３７に空き領域が生じるので、次の印刷データを処理するために、図３（ｂ）のように割込みを受け付ける。
【００２１】
こうして、期間ＴにおけるＣＰＵ３１への無駄な割込みを禁止することにより、ＣＰＵ３１は図３（ｃ）のように、期間Ｔにおいて割込み以外の処理に費やす時間を、図５（ｃ）の場合に比べて長く確保することができ、この間に種々の処理を実行することが可能となる。例えば、割込みが禁止されている期間Ｔに、ＣＰＵ３１はＰＣ４０から受信したコマンドの解析処理を実行することができる。こうすることで、コマンドの解析処理をプリンタ１０が実際に印刷を開始する前の段階で完了させることができる。この結果、印刷開始後にコマンド内容に応じた処理を直ちに実行することが可能となり、プリンタ１０の処理速度を向上させることができる。その他、期間Ｔにおいて操作ボタンが操作されたような場合にも、当該操作に対応した処理を印刷開始前に実行することができ、処理の迅速化を図ることができる。
【００２２】
図４は、以上説明したプリンタ１０の動作を示したフローチャートである。プリンタ１０では、ＰＣ４０から送られてくる１スワス分の印刷データを受信すると（ステップＳ１）、この印刷データを受信バッファ３４へ一旦格納した後（ステップＳ２）、印刷データバッファ３７へ転送する（ステップＳ３）。転送された印刷データが印刷データバッファ３７へ格納されると、キャリア１２が移動開始位置から移動を開始し（ステップＳ４）、これ以降はＣＰＵ３１に対するデータ受信時の割込みを禁止する（ステップＳ５）。その後、ポジションカウンタ３５の計数値に基づき、キャリア１２が印刷開始位置に到達したか否かを監視し（ステップＳ６）、キャリア１２が印刷開始位置に到達すると（ステップＳ６：ＹＥＳ）、ＣＰＵ３１に対するデータ受信時の割込みを許可する（ステップＳ７）。これ以後は、印刷データバッファ３７のデータに基づいて、インクカートリッジ１１による印刷動作が実行される（ステップＳ８）。
【００２３】
なお、上記実施形態においては、キャリア１２の位置を検出する位置検出手段をエンコーダ２３とポジションカウンタ３５とから構成した例を示したが、位置検出手段として、キャリア１２が印刷開始位置に到達したことを検出するセンサを別に設けてもよい。
【００２４】
【発明の効果】
以上述べたように、本発明によれば、キャリアが移動開始位置から印刷開始位置に到達するまでの期間は、ＣＰＵに対する無駄な割込みが禁止されるので、この期間にＣＰＵは割込み以外の処理を効率良く実行することが可能となり、ＣＰＵの本来の処理が遅れるのを回避することができる。
【図面の簡単な説明】
【図１】本発明に係るインクジェットプリンタの概略構成図である。
【図２】インクジェットプリンタの電気的構成を示したブロック図である。
【図３】本発明におけるキャリアの移動と割込みのタイミングの一例を示した図である。
【図４】インクジェットプリンタの動作を示したフローチャートである。
【図５】従来のインクジェットプリンタにおけるキャリアの移動と割込みのタイミングの一例を示した図である。
【符号の説明】
７    ＤＣモータ
１０  インクジェットプリンタ
１１  インクカートリッジ
１２  キャリア
２３  エンコーダ
３１  ＣＰＵ
３４  受信バッファ
３５  ポジションカウンタ
３７  印刷データバッファ
４０  ＰＣ
Ｔ    期間
【図１】
2004230566.tif 000003
【図２】
2004230566.tif 000004
【図３】
2004230566.tif 000005
【図４】
2004230566.tif 000006
【図５】
2004230566.tif 000007