(57)【要約】【課題】  安価なプリンタで高速印刷を実現する。【解決手段】  プリンタ３は専用ハードウェア回路９を有し、この専用ハードウェア回路９は、ホスト１からの印刷コマンドを受信し、受信したコマンドがイメージデータを送ってきたコマンドである場合は、そのイメージデータを処理して印刷イメージを展開し、そのイメージデータを印刷ヘッドなどの印刷機構１９へ送る。また、専用ハードウェア回路９は、受信したコマンドが、印刷条件や紙送りなどに関するコマンドである場合は、これをＣＰＵ１１へ送ってＣＰＵ１１に処理してもらう。ＣＰＵ１１は原則としてイメージデータの処理は行わない。【選択図】図１
2005067215.tif 000002
【特許請求の範囲】
【請求項１】
一連の印刷コマンドを受信し前記印刷コマンドに基づいて印刷機構を駆動するプリンタにおいて、
前記一連の印刷コマンドのうちの所定の印刷コマンドを除く他の印刷コマンドを処理することができるマイクロコンピュータと、
前記所定の印刷コマンドを予め登録しており、前記一連の印刷コマンドを受信した場合、受信した印刷コマンドが前記登録されている印刷コマンドであるならば、前記受信した印刷コマンドを処理し、前記受信した印刷コマンドが前記登録されている印刷コマンドでないならば、前記受信した印刷コマンドを前記マイクロコンピュータへ転送する専用ハードウェア回路と
を備えるプリンタ。
【請求項２】
前記専用ハードウェア回路は、前記受信した印刷コマンドが前記登録されている印刷コマンドでない場合には、以後、前記受信したコマンド及び後続のコマンドを全て前記マイクロコンピュータに転送する、
請求項１記載のプリンタ。
【請求項３】
前記登録されている印刷コマンドには、前記イメージデータを送ってくる印刷コマンドである第一種の印刷コマンドと、前記第一種の印刷コマンドとは別の第二種のコマンドとがあり、
前記専用ハードウェア回路は、前記受信した印刷コマンドが前記登録されている第一種のコマンドである場合には、前記受信した印刷コマンドを処理し、前記受信した印刷コマンドが前記登録されている第二種のコマンドである場合には、前記第二種のコマンドを前記マイクロコンピュータに転送する、
請求項２記載のプリンタ。
【請求項４】
前記専用ハードウェア回路が、
前記一連の印刷コマンドを受信するインタフェース回路と、
前記イメージデータを送ってくる印刷コマンドを処理して前記印刷イメージを生成する印刷イメージ展開回路と、
前記イメージデータを送ってくる印刷コマンドを予め登録しており、前記インタフェース回路で受信した印刷コマンドが前記予め登録されている印刷コマンドか否かを解析し、前記受信した印刷コマンドが、前記予め登録されている印刷コマンドである場合には、前記受信した印刷コマンドを前記印刷イメージ展開回路へ転送し、前記予め登録されていない印刷コマンドである場合には、前記受信した印刷コマンドを前記マイクロコンピュータへ転送するコマンド解析回路と
を有する、
請求項１記載のプリンタ。
【請求項５】
プリンタドライバを有したホストコンピュータと、前記プリンタドライバが生成した一連の印刷コマンドを受信して前記印刷コマンドに基づいて印刷機構を駆動するプリンタとを備えたプリントシステムにおいて、
前記プリンタが、
前記一連の印刷コマンドのうちの所定の印刷コマンドを除く他の印刷コマンドを処理することができるマイクロコンピュータと、
前記所定の印刷コマンドを予め登録しており、前記一連の印刷コマンドを受信した場合、受信した印刷コマンドが前記登録されている印刷コマンドであるならば、前記受信した印刷コマンドを処理し、前記受信した印刷コマンドが前記登録されている印刷コマンドでないならば、前記受信した印刷コマンドを前記マイクロコンピュータへ転送する専用ハードウェア回路と
を備える、
プリントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速印刷に適したプリンタに関する。
【背景技術】
【０００２】
コンピュータシステムで一般に用いられているプリンタは、ホストコンピュータから所定のプリンタ制御言語で記述された一連の印刷コマンドを受け取り、それらの印刷コマンドを順に解釈し、その解釈結果に基づいて印刷動作を行う。従来のプリンタは、ＣＰＵ、ＲＯＭ、ＲＡＭなどからなるマイクロコンピュータを内蔵し、専らこのマイクロコンピュータが、ホストから印刷コマンドを受信し、これを解釈し、その解釈結果に基づいて印刷ヘッド等の機構を駆動及び制御している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
必然的に、プリンタ内のマイクロコンピュータの処理速度はプリンタの印刷速度を左右する重要な要因である。従って、従来の高速プリンタは、高速・高性能のＣＰＵを搭載しているが、結果として、その価格はすいぶんと高い。
【０００４】
従って、本発明の目的は、低価格でかつ高速印刷が可能なプリンタを提供することにある。
【課題を解決するための手段】
【０００５】
本発明は、ＣＰＵで全コマンド処理を行おうとする従来のやり方から抜本的に脱却した技術を提供するものである。一般に、プリンタが受ける一連の印刷コマンドには、印刷条件等に関する各種パラメータを指定するコマンドや、印刷対象であるイメージデータを送って来るコマンドなど、多種多様の印刷コマンドが含まれている。この一連の印刷コマンドの大部分はイメージデータで占められているから、プリンタが行う処理の大部分もイメージデータの処理である。このイメージデータの処理とは、典型的には、所定の形式で通常は圧縮されて印刷コマンドに組み込まれているイメージデータを、コマンドから取り出し、圧縮から解凍し、印刷ヘッド等の印刷機構の駆動に適した特定の形式に変換し（いわゆる「印刷イメージの展開」）、そして、その印刷イメージを印刷機構に転送する、といったデータ操作を、印刷機構の動作タイミングに合わせて行っていくものである。従来技術では、このイメージデータ処理を専らＣＰＵに行わせているが、これはＣＰＵにとって格別複雑な処理ではなく、むしろ単純なデータ操作の膨大な繰り返しに過ぎない。しかし、ＣＰＵは本来、複雑な処理や汎用的な使い方に適した装置であって、単純なデータ操作を繰り返し行うような作業では十分な高速性を発揮することができない。このような作業では、ＣＰＵの仕事の多くはメモリにデータを入れ出しすることであり、１つのＣＰＵバスを通じて膨大回数のデータ出し入れを逐次的に繰り返していくわけであるから、ＣＰＵバスの速度や占有時間の制約からそれほど高速な処理は望めない。一方、印刷コマンドの中でも、印刷条件などに関する各種のパラメータを通知するようなコマンドについては、個々のコマンドの処理量は少ないが、コマンド毎に処理内容が異なり且つ多種多様のコマンドが存在するから、ＣＰＵで処理するのに適したものである。
【０００６】
このような反省に基づき、本発明では、イメージデータ処理を行う専用ハードウェア回路をプリンタに搭載し、ＣＰＵを単純データ操作の繰り返し作業から解放する。専用ハードウェア回路でイメージデータ処理を行うわけであるから、それをＣＰＵで行っていた従来技術に比較して高速印刷が可能になることは当然である。しかし、本発明の利点はそれだけではなく、さらに、この改良による価格上昇は小さいという利点もある。すなわち、イメージデータ処理の処理内容は比較的に単純であるから、その専用ハードウェア回路は、それほど複雑な構造である必要はなく、よって低価格で済む。また、プリンタＣＰＵも、イメージデータ処理から解放されたので、それほど高速である必要はなく低価格のものでよい。従って、高速ＣＰＵを導入する従来技術ほどに価格を上げることなく高速印刷性能を達成できる。
【０００７】
全てのコマンド処理を専用ハードウェア回路が行うようにすることも不可能ではないが、好適な実施形態では、専用ハードウェア回路はイメージデータを送ってくる印刷コマンドと他の少数の印刷コマンドを理解して処理するだけであり、その他の多種多様な印刷コマンドはＣＰＵが処理する。そうするとハードウェア回路がいたずらに複雑になり過ぎることがなく、しかも、ＣＰＵは自己が得意な種類のコマンド処理を行うことができ、上述した高速化と低価格化の目的を最も効果的に達成できる。
【０００８】
また、好適な実施形態では、専用ハードウェア回路がホストコンピュータと通信してデータを受信し、そのデータが自己の処理できる所定のコマンドであるか否か判断し、処理できないデータはＣＰＵへ送る。そのため、ホストコンピュータとの通信インタフェースについてもＣＰＵが関与しなくなり、いっそうの高速化につながる。
【０００９】
また、好適な実施形態では、専用ハードウェア回路は、ＣＰＵのＲＡＭとは別の独自のメモリをもっており、このメモリに印刷イメージを展開してＣＰＵを介さずに印刷イメージを印刷機構へ送るようになっている。この構成もＣＰＵをイメージ処理から解放する一つの工夫である。また、後述するように例外的にＣＰＵが印刷イメージを生成する場合があるが、その場合にも、ＣＰＵが生成した印刷イメージを専用ハードウェア回路が受け取って自己のメモリに展開し、印刷機構へ送る。このこともＣＰＵの負担を軽減しいっそうの高速化につながる。
【００１０】
ホストから印刷コマンドが来るときの順序は、通常、各ページ毎に、印刷条件などを指定するコマンド群が先に来て、イメージデータを送るコマンドがそれに後続する。本発明の好適な実施形態でもこの順序を採用しているが、先に来る印刷条件などを指定するコマンド群については、専用ハードウェア回路は、これを理解せずにＣＰＵへ送り（専用ハードウェア回路のこのような状態を「ギブアップモード」という）、ＣＰＵがこれらのコマンドを理解し処理するようにしている。そして、ホスト側のプリンタドライバは、印刷条件などを指定するコマンド群が終わって、次にイメージデータを送るコマンドを送り始めようとするとき、それに先立って、専用ハードウェア回路をギブアップモードから目覚めさせることをＣＰＵに命じる特別のコマンド（「リスタートコマンド」）を送り、このリスタートコマンドの後に相当量（例えば数十バイト）の無意味データ（ＮＵＬＬデータ）を送るようにしている。このコマンド構成により、専用ハードウェア回路は、イメージデータのコマンドを受ける直前にリスタートコマンドによってギブアップモードから目覚めるが、完全に目覚めるまでの間は無意味データが送られてくるだけであり、完全に目覚めた後に初めてイメージデータのコマンドを受けることになる。結果として、専用ハードウェア回路は確実にイメージデータ処理に入ることができる。
【００１１】
さらに、好適な実施形態では、ＣＰＵのファームウェアは、ホストから到来する可能性のある全てのコマンドを理解し、イメージデータ処理も含め全ての処理をＣＰＵで行えるよう万全に用意されている。それにより、例えばホスト側のプリンタドライバが古いバージョンであって、専用ハードウェア回路が理解できない古いバージョンの印刷コマンドでイメージを送ってきたとしても、プリンタはそれらの印刷コマンドをＣＰＵで理解して印刷イメージを展開し、正常に印刷を行うことができる。また、例えば、プリンタがネットワークに繋がっていて、プリンタドライバではなくネットワークサーバのネットワークＯＳからイメージデータ（例えばバナーのイメージ）を受けた場合なども、プリンタはそのイメージをＣＰＵで処理して印刷することが可能である。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の一実施形態の構成を示す。
【００１３】
ホストコンピュータ１にローカルインタフェース又はネットワークなどを介してプリンタ３が接続されている。ホストコンピュータ１にはプリンタ３用のプリンタドライバ５が搭載されており、このプリンタドライバ５は、プリンタ３が理解できる所定のプリンタ制御言語で記述された一連の印刷コマンドを生成し、その一連の印刷コマンドをＯＳを通じてプリンタ３に送る。この一連の印刷コマンドの内訳は、簡単にいうと、各ページ毎に、印刷条件などを指定する印刷コマンド群が先に送られ、イメージデータを送る印刷コマンド群がそれに後続するというものである。
【００１４】
なお、印刷コマンドに組み込まれているイメージデータは、この実施形態では、既にプリンタドライバ５側でラスタライズ、色変換、ハーフトーニング及びインタレース処理などを終えたデータ形態（典型的には、各画素の各色成分値の階調数がプリンタ３の表現能力と同じ２階調または数階調であるＣＭＹＫラスタイメージデータ）であって且つ一定の手法で圧縮されたものであるとする。しかし、必ずしもそうでなければないわけではなく、他のイメージデータ形態（例えば、色変換やハーフトーニングやインタレース処理前の例えばフルカラーＲＧＢラスタデータなど）であってもよい。印刷コマンド内のイメージデータがどのような形態であるかによりプリンタ３側で行うべきイメージデータ処理の複雑程度が異なってくるが、本実施形態の場合は、プリンタ３側では色変換やハーフトーニングやインタレース処理を行う必要が無いので、そのイメージデータ処理は最も簡単なものになる。
【００１５】
プリンタ３には、イメージデータ処理を行うための専用ハードウェア回路９が搭載されている。この専用ハードウェア回路は、例えばＡＳＩＣ（ApplicationSpecific IC）であって、ソフトウェアをＣＰＵで実行するようなコンピュータではない。一方、ＣＰＵ１１、ＲＯＭ１３、ＲＡＭ１５などからなるマイクロコンピュータ１７も搭載されており、ＣＰＵ１１のバスに専用ハードウェア回路９が接続されている。このマイクロコンピュータ１７は、プリンタ３で行う必要のある処理の中で専用ハードウェア回路９が行わない処理（例えば、印刷条件等に関する印刷コマンド処理など）を主として行うためのものであるが、ＲＯＭ１３内のファームウェアとしては、プリンタ３が受信する可能性のある全ての種類の印刷コマンドが処理できるようプログラムされている。また、印刷イメージを着色剤を用いて実際に用紙上に印刷するための印刷ヘッドなどの印刷機構１９も、専用ハードウェア回路９に接続されている。
【００１６】
専用ハードウェア回路９は、ホストコンピュータとの通信インタフェース処理を行って、プリンタドライバ５からのデータを受信するホストインタフェース回路２１、および、受信したデータを解析してその転送先を切替えるコマンド解析回路１３を有している。コマンド解析回路２３には少数の所定の印刷コマンドが予め登録されていて、コマンド解析回路２３は受信したデータがその登録コマンドであるか否かを判断する。登録コマンドとしては、第１に、ラスタライズ、色変換、ハーフトーニング及びインタレース処理の終わったＣＭＹＫラスタイメージデータを送ってくる印刷コマンド（以下、「ラスタイメージコマンド」という）があり、第２に、ＦＦ（フォームフィード）や紙送り制御などの少数のコマンドがある。コマンド解析回路１３は、受信コマンドが登録コマンドである場合、そのうちラスタイメージコマンドは印刷イメージ展開回路１５へ転送し、ＦＦや紙送り制御のコマンドはＣＰＵ１１へ転送する。また、受信データが登録コマンドに該当しない（つまり、受信データが理解できない）場合には、コマンド解析回路１３は、そのデータ及びこれに後続する受信データの解析をやめて、それらのデータの一切をＣＰＵへ転送する（この状態を「ギブアップモード」という）。
【００１７】
専用ハードウェア回路９は、さらに、印刷イメージ展開回路２５、イメージバッファ２９用のメモリ、及び印刷イメージ展開回路３１を有する。印刷イメージ展開回路２５は、コマンド解析回路２３から受け取ったラスタイメージコマンドを解釈して、ＣＭＹＫラスタイメージを取り出し、これを圧縮から解凍し、コマンド内での形式から印刷機構１９の駆動に適した形式のＣＭＹＫラスタイメージ（以下、「印刷イメージ」という）へ組み替え、そして、メモリ上にイメージバッファ２９を確保して、そのイメージバッファ２９に印刷イメージを展開する。印刷イメージ転送回路３１は、印刷機構３１の動作タイミングに合わせて、イメージバッファ２９内の印刷イメージを印刷機構１９へ転送する。
【００１８】
なお、本実施形態では、印刷イメージ展開回路２５におけるイメージデータ処理は、上記のように圧縮の解凍や形式の組み替えといった簡単なものであり、このことは専用ハードウェア回路９を安価に開発しようとする観点から好ましいことである。しかし、プリンタドライバ５が行っている色変換やハーフトーニングやインタレース処理の一部又は全部を印刷イメージ展開回路２５で行えるように構成することも可能である。そのように構成した場合には、プリンタドライバ５の負担が軽減されるので、いっそうの高速化につながる。
【００１９】
専用ハードウェア回路９は、さらに、ＣＰＵ１１が生成した印刷イメージをイメージバッファ２９に展開するためのＣＰＵイメージ展開回路２７を有する。ＣＰＵイメージ展開回路２７が働く場合とは、ホスト側のプリンタドライバ５がこのプリンタ３には対応していない古いバージョンであって、専用ハードウェア回路に登録されていない古いバージョンの印刷コマンドを用いてイメージデータを送ってきたような場合や、このプリンタ３がネットワークに繋がっていて、そのネットワーク上のプリンタドライバからでなくネットワークＯＳから例えばバナーなどのイメージデータを受信したような場合である。このような場合には、コマンド解析回路２３は受信したデータを理解できないためギブアップモードとなって受信データを全てＣＰＵ１１に転送するので、ＣＰＵ１１が受信データのコマンドを解釈して印刷イメージを生成することになる。ＣＰＵ１１が生成した印刷イメージは、ＣＰＵイメージ展開回路２７によってイメージバッファ２７に展開され、上記と同様に印刷機構３１へ転送される。
【００２０】
ＣＰＵ１１、ＲＯＭ１３、ＲＡＭ１５などからなるマイクロコンピュータ１７は、前述したように、あらゆるコマンド処理ができるようにプログラムされているが、通常は、印刷条件等に関するコマンドや、ＦＦや紙送り制御などに関するコマンドの処理を行なう。また、上述したように、専用ハードウェア回路９が理解できない古いバージョンの印刷コマンドで送られてきたイメージデータや、ネットワークＯＳから送られて来たイメージデータの処理も例外的に行う。
【００２１】
さらに、このマイクロコンピュータ１７は、ホストコンピュータ１からの所定のリスタートコマンドに応答して、専用ハードウェア回路９のコマンド解析回路２３にリスタート信号を与えることにより、このコマンド解析回路２３をギブアップモードから目覚めさせる（つまり、コマンド解析が行える状態（本発明でいう「通常モード」）に戻す）という処理も行う。典型的には、このリスタートは次のような場面で使用される。すなわち、前述したように、プリンタドライバ５からの一連の印刷コマンドは、各ページ毎に、印刷条件などを指定するコマンド群が先に来て、ラスタイメージコマンド群がそれに後続する。専用ハードウェア回路９のコマンド解析回路２５は、印刷条件などを指定するコマンド群が来ている間はギブアップモードになっているので、それが終わった時点でリスタートさせて後続のラスタイメージコマンドを処理できるようにさせる。
【００２２】
以上の構成の下でのプリンタ３の動作を、さらに図２および図３を参照して説明する。図２は、専用ハードウェア回路９のコマンド解析回路２３の状態遷移図であり、図３はＣＰＵ１１の状態遷移図である。
【００２３】
プリンタ３の電源が入れられると、専用ハードウェア回路９及びＣＰＵ１１にリセット信号が入り、両者はともにアイドル状態（コマンドを待っている状態）４１、５１になる。その後、ホストのプリンタドライバ５が一連の印刷コマンドを送ってくるが、これは前述の通り、各ページ毎に、印刷条件などを指定するコマンド群が先に来て、その後にラスタイメージコマンド群や紙送り制御のコマンド群などが来て、各ページの最後にＦＦのコマンドが来るといった順序になっている。その際、プリンタドライバ５は、最初の印刷条件などを指定するコマンド群が終わると、後続のラスタイメージコマンド群などを送る前に、上述したリスタートコマンドを送るようになっている。このリスタートコマンドには、コマンド解析回路２５のリスタート（目覚め）に要する時間を十分カバーできる量（例えば数十バイト）のＮＵＬＬデータが付加されている。
【００２４】
このような一連の印刷コマンドが来ると、専用ハードウェア回路９のコマンド解析回路２５は、受信データを解析するが、最初に印刷条件などを指定するコマンドを受けた時点で、そのコマンドが理解できない（登録コマンドでない）ため、図２に示す状態４７へ移行して、そのコマンドの先頭まで一旦もどってそのコマンドをＣＰＵ１１に転送する。これ以後、コマンド解析回路２５は、状態４９となってコマンド解析をやめ、後続の全ての受信コマンドをそのままＣＰＵへ転送する。この状態４７、４９がギブアップモード５０である（なお、ギブアップモード５０以外の状態が、本発明でいう「通常モード」である）。
【００２５】
ＣＰＵ１１は、図３に示すように、起動時にアイドル状態５１であったところ、コマンド解析回路２５から印刷条件などを指定するコマンド群が転送されてくると、状態５３となってそのコマンドの処理を行う。個々のコマンド処理終了するたびＣＰＵ１１はアイドル状態５１に戻り、再び別のコマンドを受けて処理するという動作を繰り返す。印刷条件などに関するコマンド群が終わると、前述したようにリスタートコマンドを受けるので、ＣＰＵ１１は状態５９へ移行してリスタート信号をコマンド解析回路２３に出力し、そして再びアイドル状態５１に戻る。
【００２６】
図２に示すように、ギブアップモード５０にあるコマンド解析回路２３は、ＣＰＵ１１からリスタート信号を受けて、アイドル状態４１へ復帰する（目覚める）。リスタート信号からアイドル状態４１になるまでの遅れ時間の間、リスタートコマンドに付属するＮＵＬＬデータがＣＰＵ１１へ転送されるが、ＣＰＵ１１は図３に示すようにＮＵＬＬデータを受けると状態５５になってＮＵＬＬデータを読み捨てる。コマンド解析回路２３がアイドル状態４１になると、残りのＮＵＬＬデータを受けてコマンド解析回路２３は状態４５になりＮＵＬＬデータを読み捨てる。ＮＵＬＬデータが終わると、コマンド制御部２３は、ラスタイメージコマンドや、ＦＦや紙送り制御に関するコマンドなどの登録コマンドを受けるので、状態４３になって各受信コマンドを処理する。この場合、ラスタイメージコマンドは印刷イメージ展開回路２５へ送り、紙送り制御やＦＦのコマンドなどはＣＰＵ１１へ転送する。印刷イメージ展開回路２５はラスタイメージコマンドを解釈して印刷イメージを展開する。ＣＰＵ１１は、紙送り制御やＦＦのコマンドを受けると状態５３になって各コマンドを処理する。
【００２７】
以上のように、専用ハードウェア回路９とＣＰＵ１１とがそれぞれに適した処理を分担して行うことにより、高速印刷が実現される。
【００２８】
以上、本発明の一実施形態を説明したが、これらの実施形態はあくまで本発明の説明のための例示であり、本発明をこれら実施形態にのみ限定する趣旨ではない。従って、本発明は、上記実施形態以外の様々な形態でも実施することができるものである。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態の構成を示すブロック図。
【図２】専用ハードウェア回路９のコマンド解析回路２３の状態遷移図。
【図３】ＣＰＵ１１の状態遷移図。
【符号の説明】
【００３０】
１…ホストコンピュータ、３…プリンタ、５…プリンタドライバ、９…専用ハードウェア回路、１１…ＣＰＵ、１７…マイクロコンピュータ、１９…印刷機構、２１…ホストインタフェース回路、２３…コマンド解析回路、２５…印刷イメージ展開回路、２７…ＣＰＵイメージ展開回路、２９…イメージバッファ、３１…印刷イメージ転送回路
【図１】
2005067215.tif 000003
【図２】
2005067215.tif 000004
【図３】
2005067215.tif 000005