(57)【要約】【課題】印刷制御装置において、プログラムを実行して各種処理を行なうプロセッサの処理負担を軽減し、且つ、受信したデータの種別を高速に判別して受信データの処理の高速化を図る。【解決手段】プログラムの実行により各種処理を実現するCPU202と、CPU202と協働するハードウエア回路とによって印刷ジョブを処理するプリンタコントローラ201において、ホスト用FIFOメモリ205に格納されたパケットのヘッダ部に基づいて当該パケットの種別を判定し、コマンドパケットと判定された場合は当該パケットをCPU202に提供し、データパケットと判定された場合は当該パケットのデータ部の印刷データをホスト用FIFOメモリ205からSDRAM207に転送させる処理をハードウエア回路が行なう。【選択図】図２
2006289797.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの実行により各種処理を実現するプロセッサと、該プロセッサと協働するハードウエア回路とによって印刷ジョブを処理する印刷制御装置であって、
前記ハードウエア回路が、
外部装置より受信され、第１メモリに格納されたパケットの所定部分のデータに基づいて当該パケットの種別を判定する判定手段と、
前記判定手段により印刷データのパケットと判定されたデータに基づく記録媒体への記録を行わせる記録制御手段とを有することを特徴とする印刷制御装置。
【請求項２】
前記判定手段により前記パケットがコマンドパケットと判定された場合、該パケットのデータを前記プロセッサに提供する提供手段と、
前記判定手段により前記パケットがデータパケットと判定された場合、該パケットに含まれている印刷データを前記第１メモリから第２メモリに転送する転送手段とを備えることを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記判定手段は、前記第１メモリから前記パケットのヘッダ部分を読み出して、該ヘッダ部分のデータに基づいて当該パケットの種別を判定し、
前記提供手段は、前記第１メモリから前記パケットの前記ヘッダ部分に続くデータ部分を読出し、前記ヘッダ部分と前記データ部分を前記プロセッサに提供することを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記提供手段は、前記第１メモリからの１回のデータ読み出しを単位として前記プロセッサに読み出したデータを提供することを特徴とする請求項３に記載の印刷制御装置。
【請求項５】
前記提供手段は、前記第１メモリから読み出した前記パケットをレジスタに格納し、該パケットの全体を読み出し終えたときに前記プロセッサに読み出したデータを提供することを特徴とする請求項３に記載の印刷制御装置。
【請求項６】
前記提供手段における前記プロセッサへのデータの提供は、該プロセッサに対して割込み信号を発生することによりなされることを特徴とする請求項１乃至５のいずれかに記載の印刷制御装置。
【請求項７】
前記提供手段における前記プロセッサへのデータの提供は、該プロセッサによる前記コマンドパケットの有無を調べるポーリングに基づく前記プロセッサのコマンドパケットのデータ読み出しにより行われることを特徴とする請求項１乃至５のいずれかに記載の印刷制御装置。
【請求項８】
前記提供手段は、
前記第１メモリに保持されたパケットを、前記プロセッサによるアクセスが可能なメモリに転送する手段と、
前記メモリへの前記パケットの転送に応じて前記プロセッサに割込み信号を発生する手段とを備えることを特徴とする請求項１に記載の印刷制御装置。
【請求項９】
前記判定手段は、予め設定された前記データパケットを示すデータと受信したパケットの前記所定部のデータとの一致を比較する第１比較回路を含むことを特徴とする請求項２乃至８のいずれかに記載の印刷制御装置。
【請求項１０】
前記判定手段は、予め設定された前記コマンドパケットの種別を示すデータと受信したパケットの前記所定部のデータとの一致を比較する第２比較回路を含むことを特徴とする請求項２乃至９のいずれかに記載の印刷制御装置。
【請求項１１】
請求項２乃至１０のいずれかに記載の印刷制御装置を備え、
前記第２メモリに格納された印刷データに従って記録媒体への印刷出力を実行するプリンタエンジンを有することを特徴とする印刷装置。
【請求項１２】
プログラムの実行により各種処理を実現するプロセッサと、該プロセッサと協働するハードウエア回路とによって印刷ジョブを処理する印刷制御装置における制御方法であって、
前記ハードウエア回路において、外部装置より受信され、第１メモリに格納されたパケットの所定部分のデータに基づいて当該パケットの種別を判定する判定工程を有することを特徴とする印刷制御装置の制御方法。
【請求項１３】
請求項１２に記載の制御方法をコンピュータに実行させる為の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータから転送された印刷データに基づいて画像形成を行う印刷装置において、ホストコンピュータからの受信データの処理を高速化する技術に関する。
【背景技術】
【０００２】
ホストコンピュータ等の外部装置からの送信されてくる印刷ジョブを受信して印刷処理を行う印刷装置は一般によく知られている。この種の印刷装置において受信される印刷ジョブには種々のタイプのデータが含まれる。例えば、印刷ジョブとして受信したデータは、解像度を指定するようなコマンドデータであったり、画像への展開を行うべき画像データであったりする。従って、印刷装置がホストコンピュータ等の外部装置から送信されてくる印刷ジョブを処理する場合には、まず、受信したデータの種類を判別する必要がある。しかも、印刷装置におけるスループットの向上のために、受信したデータの種類の判別を高速に行うことが要求されている。また、印刷状況の問い合わせに迅速に応答するためにも、データ種別の高速な判別は不可欠である。
【０００３】
受信したデータが何であるかを識別する方法として、特許文献１には、一旦ジョブ開始を検知すると、以後ジョブ終了が検知されるまで、受信したデータが何であるかを一バイトづつ解釈する仕組みが記載されている。また、特許文献２には、パケット単位でデータの種別を判定することが記載されている。
【特許文献１】特開平１１−３０１０４０号公報
【特許文献２】特開２０００−１３５８２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上述の特許文献１のような方法では、印刷装置の全体の制御をつかさどるプロセッサ（ＣＰＵ）が組み込まれたプログラムコードに従ってバイト毎にデータ種別の判定を行うため、ＣＰＵの処理負荷が大きくなってしまう。特許文献２のようにパケット単位でデータ種別を判定するにしても、依然としてＣＰＵによる判別処理が行なわれており、ＣＰＵの処理負荷は大きくなってしまう。ＣＰＵによる受信データ種別の判定には、ＣＰＵの性能にもよるが、数ｍＳ程度の処理時間を要する場合がある。このため、ＣＰＵによるデータ種別の判定が印刷ジョブの全体の処理時間に影響を与えてしまう。
【０００５】
ＣＰＵの高速化により処理時間の短縮はある程度可能であるが、高速化には一般的にコストアップが伴う。外部のホストコンピュータからの印刷ジョブを受信して印刷を行う、所謂ホストベースプリンタはローコストであることが強く要求されている。よって、ＣＰＵには安価なものが使用されあており、これは設計要件ともなっている。そのため、ホストベースプリンタでは、高価で高速なＣＰＵを用いて処理時間の短縮を実現するという方策は現実的ではない。
さらに、ＣＰＵによるデータ種別の判定のための時間を低減するために、一回のパケットで送られるデータ量を増やすことが考えられる。１パケットあたりのデータ量が大きければ、データ種別の判定回数を減少させることができるからである。しかしながら、１パケットあたりのデータ量の増加は、パケットを保持するＦＩＦＯメモリに要求される容量の増加を招き、やはり低コスト化への障害となってしまう。例えば、低コストを維持するために、ＦＩＦＯメモリの容量は、例えば１ページの数十分の一程度に抑えることが望ましい。しかしながら、その程度のＦＩＦＯメモリの容量では、データ種別の判定回数を十分に減少させることができない。
【０００６】
以上のように、低コストで高速にデータ処理を実行するプリンタを実現するためには、解決しなければならない問題がある。即ち、低コストで高速にデータ処理を実行するプリンタが要求されているものの、これを実現する有効な対策は見出されていない。
【０００７】
本発明は上記課題に鑑みてなされたものであり、印刷制御装置において、プログラムを実行して各種処理を行なうプロセッサの処理負担を軽減し、且つ、受信したデータの種別を高速に判別可能とすることにより、受信データの処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明の位置態様による印刷制御装置は以下の構成を備える。すなわち、
プログラムの実行により各種処理を実現するプロセッサと、該プロセッサと協働するハードウエア回路とによって印刷ジョブを処理する印刷制御装置であって、
前記ハードウエア回路が、
外部装置より受信され、第１メモリに格納されたパケットの所定部分のデータに基づいて当該パケットの種別を判定する判定手段と、
前記判定手段により印刷データのパケットと判定されたデータに基づく記録媒体への記録を行わせる記録制御手段とを有する。
【発明の効果】
【０００９】
本発明によれば、プログラムを実行して各種処理を行なうプロセッサの処理負担を軽減でき、且つ、受信したデータの種別を高速に判別するので受信データの処理の高速化を図れる。
【発明を実施するための最良の形態】
【００１０】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１１】
＜第１実施形態＞
図１は、本実施形態の印刷装置（プリンタ）を含む印刷システム構成例を示す図である。プリンタ１２は所謂ホストベースプリンタであり、ホストコンピュータ１１からの印刷ジョブを例えばＵＳＢ（登録商標）により受信して紙等の記録媒体へ画像を形成する。ホストコンピュータ１１では、アプリケーションソフトウエアの実行により、印刷対象の情報を元に印刷ビットマップデータが生成される。ホストコンピュータ１１において、印刷ビットマップデータは転送効率を上げるために圧縮され、圧縮されたデータ（印刷データ）は印刷ジョブとしてプリンタ１２に転送される。プリンタコントローラ２０１は印刷ジョブを受信すると、これに含まれる印刷データに伸張処理を施して元のビットマップ画像に復元する等の画像処理を行う。そして、復元されたビットマップ画像は実際に印刷を行うプリンタエンジン１４に送られ、印刷が行われる。なお、プリンタエンジン１３にはレーザビームによる静電写真方式や、インクジェット方式等、周知の全ての方式のものを適用できる。また図１中にはプリンタ１２に対して一台のホストコンピュータしか接続されていないが、ネットワークを介して複数のホストコンピュータを接続するようにしても良い。
【００１２】
印刷ジョブはパケットの形態でホストコンピュータ１１からプリンタ１２に送信される。尚、ここでのパケットとはデータリンク層より上の階層におけるパケットを指す（後述の各実施形態においても同様とする）。上述したように、印刷ジョブはコマンドや印刷データを含むため、プリンタコントローラ２０１は受信した印刷ジョブの各パケットについてデータ種別を判別する必要がある。例えば、プリンタコントローラ２０１は、受信したパケットがコマンドパケットであるかデータパケットであるかを判別する。この判別の結果、ジョブ又はプリンタに対するコマンドパケットであればその内容に従った処理を行い、データパケット、即ち印刷すべき画像データであれば伸張処理を施してプリンタエンジン１４に転送する。データパケットには印刷対象の画像データが含まれ、コマンドパケットには図４に示されるように用紙サイズ指定、解像度指定、ページ開始コマンド等のジョブ又はプリンタに対するコマンドが含まれる。
【００１３】
図２は本実施形態によるプリンタ１２におけるプリンタコントローラ１３の構成を示すブロック図である。図２において、ＣＰＵ２０２は不図示のメモリに格納された制御プログラムに従って、プリンタコントローラ２０１の全体の制御を行う。ＵＳＢインターフェース２０４はホストコンピュータ１１とのインターフェースである。ホスト用ＦＩＦＯメモリ２０５は、ＵＳＢインターフェース２０４で受信したデータを一時的に保持する。ＤＭＡコントローラ２０６はＳＤＲＡＭ２０７のＤＭＡ（Direct Memory Access）を制御する。ＳＤＲＡＭ２０７はコントローラの主メモリとなる。画像デコーダ２０８は、ホストコンピュータ１１より受信され、ＳＤＲＡＭ２０７に格納された印刷対象の画像データ（圧縮された画像）を伸張する。ビデオ供給部（VideoShipper）２０９はプリンタエンジン１４に画像デコーダで復元された画像データを転送する。ヘッダ解析部（HeaderAnalyzer）２１０は受信されたパケットのヘッダ部を解析して必要な処理を行う。ヘッダ解析部２１０については後述する。ＣＰＵバス２０３はＣＰＵ２０２と、上述した各部（ＵＳＢインターフェース２０４、ホスト用ＦＩＦＯメモリ２０５、画像デコーダ２０８、ビデオ供給部２０９、ヘッダ解析部２１０等）を接続する。
【００１４】
次に、上記構成のプリンタコントローラ２０１による処理の流れを説明する。
【００１５】
ホストコンピュータ１１で生成された印刷データ（圧縮された画像データ）やコマンドを含む印刷ジョブは、ＵＳＢインターフェース２０４を介して受信される。その際、印刷ジョブはパケット単位で転送される。ホスト用ＦＩＦＯメモリ２０５は、１個のパケットの受信を完了すると、パケット受信フラグを立てる。受信フラグの状態はヘッダ解析部２１０に信号で伝わる。ヘッダ解析部２１０は、受信フラグが立つと、受信されたパケットのヘッダ部を読み出し、その内容を解析し、当該パケットがコマンドパケットであるかデータパケットであるかを判断する。当該パケットがコマンドパケットであった場合はＣＰＵ２０２にその処理が委ねられる。
【００１６】
一方、当該パケットがデータパケットであった場合は、ヘッダ解析部２１０はＤＭＡコントローラ２０６を起動することにより、ＣＰＵ２０２を介することなく、ホスト用ＦＩＦＯメモリ２０５からＳＤＲＡＭ２０７へＤＭＡによってデータを転送する。本実施形態では、データパケットには印刷対象（圧縮）画像データが格納されている。よって、この処理で、ＳＤＲＡＭ２０７には、印刷対象の（圧縮）画像データが蓄積されていくことになる。ＳＤＲＡＭ２０７に蓄積された画像データは、画像デコーダ２０８自身がＤＭＡコントローラ２０６を起動することにより、ＳＤＲＡＭ２０７からＤＭＡにて画像デコーダに取り込まれる。画像デコーダ２０８は、取り込んだ画像データに伸張処理を施し、ビットマップデータを生成する。ビデオ供給部２０９は、画像デコーダ２０８で生成されたビットマップデータを受け取り、プリンタエンジン１４に転送する。
【００１７】
次に、ヘッダ解析部２１０の構成及び動作について詳細に説明する。
【００１８】
ホストコンピュータ１１から受信されるパケットは図３のような構造となっており、最初の数バイトが示すヘッダ部３０１とデータ部３０２とで構成されている。図３の（ａ）にコマンドパケットの基本構造を、（ｂ）にデータパケットの基本構造を示す。図３からわかるように、コマンドパケットとデータパケットの基本構造は同じであり、両者の主たる違いはデータ部３０１のサイズである（コマンドパケットのデータ部３０１のサイズは小さく（例えば数バイト）、データパケットのデータ部３０１のサイズは大きい（例えば数キロバイト））。
【００１９】
ヘッダ部３０１の「コマンドタイプ」にはコマンドの種類を示す情報が格納されている。この「コマンドタイプ」の内容により受信側装置はそのパケットがデータパケットかコマンドパケットかを判断できる。また、コマンドパケットを受け取ったＣＰＵ２０２は、そのコマンドタイプの内容から、何のコマンドのパケットであるか判断することができる。コマンドタイプの一例を図４に示す。コマンドパケットとして判別されるコマンドタイプとしては、例えば「解像度指定」、「用紙サイズ指定」、「トナー量指定」、「ページ開始コマンド」、「ページ終了コマンド」等がある。これらのパケットはＣＰＵ２０２へ送られ、ＣＰＵ２０２はその内容に応じた処理を実行する。コマンドパケットの場合、データ部３０２のサイズは０〜数バイトである。一方、本実施形態において、「コマンドタイプ」が「印刷データ転送」の場合は当該パケットがデータパケットであると判別される。データパケットの場合、データ部３０２のサイズは数１０ＫＢとなる。ヘッダ部３０１において、「パケットサイズ」はデータ部３０２におけるデータサイズ、又は、ヘッダ部３０１及びデータ部３０２を含むパケット全体のデータサイズを示す（後述の各実施形態においても同様とする）。
【００２０】
次に、ヘッダ解析部２１０による処理の流れを図５Ａのフローチャートにより説明する。上述したように、ホスト用ＦＩＦＯメモリ２０５はパケットを受信すると受信フラグをセットする。ヘッダ解析部２１０は、ステップＳ５１において、この受信フラグを監視することによりパケット受信があったことを検知する。次に、ステップＳ５２において、ヘッダ解析部２１０はホスト用ＦＩＦＯメモリ２０５からヘッダ部３０１を読み取る。そして、ステップＳ５３において、ヘッダ部３０１に含まれる「コマンドタイプ」の内容に基づいて当該パケットがコマンドパケットかデータパケットかを判定する。
【００２１】
コマンドタイプによるパケット種別の判定は上述したとおりである。ステップＳ５３においてコマンドパケットと判定された場合は、ステップＳ５６へ進み、現在ホスト用ＦＩＦＯメモリ２０５から出力されているヘッダ部のデータをレジスタ（図６による後述する）に格納する。そして、ステップＳ５７において、ＣＰＵ２０２に対して割り込みを発生し、ステップＳ５２で読み込んだヘッダ部のデータをＣＰＵ２０２に知らせる。ＣＰＵ２０２はこの割込み信号に応じて、ホスト用ＦＩＦＯメモリ２０５が現在出力しているデータ（当該コマンドパケットのヘッダ部）を取得するべくヘッダ解析部２１０をアクセスする。
【００２２】
続いてホスト用ＦＩＦＯメモリ２０５から後続の付加データ（データ部３０２の付加データ）をＣＰＵ２０２に提供するために、ステップＳ５７からステップＳ６０の処理を繰り返す。ここでの提供とはＣＰＵ２０２によりＦＩＦＯメモリ２０５に記憶されたデータをＣＰＵ２０２に読み込ませることを指しても良いし、ＣＰＵ２０２が読み込み可能なメモリ領域に提供データを格納し、ＣＰＵ２０２に格納されたデータを読み込ませることを指しても良い。
【００２３】
コマンドパケットの種類によっては「付加データ」が存在しない場合もある。従って、ステップＳ５８において、ヘッダ解析部２１０は、ステップＳ５２で読み込んだヘッダ部３０１の「パケットサイズ」に基づき当該パケットに残りの付加データがあるか否かを判定する。例えばヘッダ部３０１における「パケットサイズ」がパケット全体のデータサイズを示す場合、データサイズからヘッダ部３０１のサイズを差し引値が零か或は零以上かで判定をする。付加データがあるのであれば、ステップＳ５９においてＣＰＵ２０２から先の割込み信号による読込み処理の完了を示す「読込み完了」が入力されるのを待つ。読込み完了が入力されたらステップＳ６０でホスト用ＦＩＦＯメモリ２０５に付加データを出力させ、これをレジスタに格納する。そして、このレジスタに格納された付加データをＣＰＵ２０２に読み取らせるためにステップＳ５７に戻り、再び割り込みを発生する。ＣＰＵ２０２はこの割込み信号に応じて、当該コマンドパケットを取得するべくヘッダ解析部２１０をアクセスする。このような処理を、当該コマンドパケットのヘッダ部に記述されたデータサイズによって示されるデータ量に従って繰り返すことで、ＣＰＵ２０２はコマンドパケットの全体を取得することになる。
【００２４】
一方、受信パケットがデータパケットであった場合は、ステップＳ５３からステップＳ５４に処理が進む。ステップＳ５４において、ヘッダ解析部２１０は、ＤＭＡコントローラ２０６によるＣＰＵ２０２を介することのないホスト用ＦＩＦＯメモリ２０５からＳＤＲＡＭ２０７への画像データの転送を実行させる。具体的には、ステップＳ５４において、ＤＭＡコントローラ２０７にホスト用ＦＩＦＯメモリ２０５からの転送データ量（図３（ｂ）のヘッダ部３０１内の「パケットサイズ」から計算される）、転送先アドレス（ＳＤＲＡＭ２０７）をセットする。そして、ステップＳ５５において、ＤＭＡコントローラ２０７を起動する。ＤＭＡコントローラ２０７がステップＳ５４で設定された状態で動作することにより、データパケットのデータ部３０２内のデータが、ホスト用ＦＩＦＯメモリ２０５からＳＤＲＡＭ２０７へ順次転送される。この結果、ＤＭＡコントローラ２０７によって、データパケットのデータ部３０２のデータがＳＤＲＡＭ２０７へＤＭＡ転送される。ステップＳ５２で読み込んだヘッダ部３０１の情報は、ステップＳ５５によるＤＭＡの開始後に破棄される。ＳＤＲＡＭ２０７に保持されたデータは上述したように画像でコーダ２０８、ビデオ供給部２０９によりビデオ信号としてプリンタエンジン１４に供給され、記録媒体上に可視像として形成される。
【００２５】
次に、上記の処理を実現するヘッダ解析部２１０の詳細な構成及び動作について図６、図７Ａ、図８を参照して説明する。
【００２６】
図６は第１実施形態によるヘッダ解析部２１０の詳細な構成を示すブロック図である。ホスト用ＦＩＦＯ制御器４０１はホスト用ＦＩＦＯメモリ２０５を制御する。比較器４０２は、受信パケットのヘッダ部３０１にあるコマンドタイプの内容を所定のデータと比較することにより、当該受信パケットが印刷データパケットか否かを判定する。比較器４０２で比較に用いられるデータは、図４で説明したように“0xF0”である。また、比較器４０３は、受信パケットのヘッダ部３０１にあるコマンドタイプの内容を所定のデータと比較することにより、当該受信パケットがコマンドパケットか否かを判定する。本実施形態では、比較器４０３で比較に用いられるデータは、図４で説明したように“0x20”、“0x30”、“0x50”、“0x60”、“0x70”である。なお、比較器４０２の反転出力をコマンドレジスタ４０５へ供給するようにしてもよい。あるいは比較器４０３の反転出力をコマンドレジスタ４０５へ入力するようにしてもよい。
【００２７】
ＤＭＡＣ制御器４０４は、ＤＭＡコントローラ２０６に対して転送データ量、転送先アドレスを設定する等により、ＤＭＡコントローラ２０６によるＤＭＡ動作を制御する。コマンドレジスタ４０５はホスト用ＦＩＦＯメモリ２０５から順次読み出されるデータを記憶するとともに、ＣＰＵ２０２への割り込み信号を発生する。
【００２８】
図７Ａは第１実施形態によるプリンタコントローラ１３におけるコマンドパケットの処理を表すタイミングチャート、図８はプリンタコントローラ１３における画像データパケットの処理を表すタイミングチャートである。
【００２９】
まず、コマンドパケット処理を図７Ａを用いて説明する。ホストコンピュータから受信したパケットはホスト用ＦＩＦＯメモリ２０５に保持される。パケットがホスト用ＦＩＦＯメモリ２０５内に存在するとホスト用ＦＩＦＯメモリ２０５からのEmpty信号がInactiveになる（Ｔ２のタイミング）。これは、パケットを受信したことを意味する。本実施形態では、ステップＳ５１の受信フラグとして、このEmpty信号を用いる。Empty信号がInactiveになると、ホスト用ＦＩＦＯ制御器４０１は、ホスト用ＦＩＦＯメモリ２０５から受信したデータを読み出すためにＲＤ信号をActiveにする（Ｔ３）。このＲＤ信号によりホスト用ＦＩＦＯメモリ２０５から受信パケットのヘッダ部３０１が読み出される（ステップＳ５２）。この時点でＦＩＦＯデータバス４１０にはヘッダ情報３０１が出力されている（Ｔ４）。なお、ＲＤ信号によるホスト用ＦＩＦＯメモリ２０５からの１回の読出しデータ量は例えば１６ビットとする（無論８ビット単位でも３２ビット単位でも良い）。
【００３０】
図３で説明したように、読み出されたヘッダ部３０１にはコマンドタイプとパケットサイズが格納されている。比較器４０２、比較器４０３は、コマンドタイプの内容に従って受信パケットがコマンドパケットかデータパケットかを判断する（ステップＳ５３）。受信パケットがコマンドパケットの場合、比較器４０３の出力がActiveになる（Ｔ４）。コマンドレジスタ４０５は、比較器４０３のActive出力に応じて、まず、現在、ＦＩＦＯデータバス４１０上に出力されているヘッダ部３０１のデータを保持し、ＣＰＵ２０２に対して割り込みを発生する（Ｔ５）（ステップＳ５６，Ｓ５７）。その後、ＣＰＵ２０２からの読込み完了に応じて順次ホスト用ＦＩＦＯメモリ２０５から付加データを読み取り、ＣＰＵ２０２に割り込みをかける（ステップＳ５８〜Ｓ６０）。こうして、コマンドパケットの全体がＣＰＵ２０２により読み込まれることになる。コマンドレジスタ４０５によるホスト用ＦＩＦＯメモリ２０５からのデータ読み出しは、FIFORDにより行われる。即ち、ホスト用ＦＩＦＯ制御器４０１は、FIFORD信号に従ってＲＤ信号を出力し、メモリからの上記読出し動作を実現する。
【００３１】
以上のようにして当該コマンドパケットの全体がＣＰＵ２０２によって読み出されると、当該受信パケットの処理を終える。
【００３２】
次に、受信パケットがデータパケット（印刷データパケット）の場合のヘッダ解析部２１０の動作を図８を用いて説明する。コマンドパケットの場合と同様に、ホストコンピュータ１１から受信したパケットはまずホスト用ＦＩＦＯメモリ２０５に保持される。受信パケットがホスト用ＦＩＦＯメモリ２０５内に存在するとホスト用ＦＩＦＯメモリ２０５のEmpty信号がInactiveになる（Ｔ２）。これは、パケットを受信したことを意味する。よって、ホスト用ＦＩＦＯ制御器４０１はホスト用ＦＩＦＯメモリ２０５から受信したデータを読み出すためにＲＤ信号をActiveにする（Ｔ３）。このＲＤ信号によりホスト用ＦＩＦＯメモリ２０５から受信パケットのヘッダ部３０１が読み出される。読み出されたヘッダ部３０１のデータはコマンドレジスタ４０５に格納されるとともに、コマンドタイプの内容が比較器４０２，４０３へ供給される。
【００３３】
図３で説明したように、読み出されたヘッダ部３０１にはコマンドタイプとパケットサイズが格納されている。比較器４０２、比較器４０３は、コマンドタイプの内容に従って受信パケットがコマンドパケットかデータパケットかを判断する。データパケットであった場合（コマンドタイプ＝0xF0の場合）は、比較器４０２の出力がActiveになる（Ｔ４）。比較器４０２のActive出力に応じて、ＤＭＡＣ制御器４０４は、ＦＩＦＯデータバス４１０上に出力されているヘッダ情報３０１のデータサイズを取得し転送データ量を決定する。そして、ＤＭＡＣ制御器４０４は、ＤＭＡＣコマンドバス４１１を介して、ＤＭＡコントローラ２０６に上記決定された転送データ量や、転送先であるＳＤＲＡＭ２０７のアドレスを設定し（ステップＳ５４）、ＤＭＡコントローラ２０６を起動する（ステップＳ５５）。ＤＭＡコントローラ２０６への設定や起動の指示は、ＤＭＡＣデータバス４１１とＷＲ信号を用いて、所定のデータをＤＭＡコントローラ２０６に書き込むことで行われる。起動されたＤＭＡコントローラ２０６は、ＤＭＡＣ制御器４０４によって設定された内容に従って、ホスト用ＦＩＦＯメモリ２０５に保持された当該受信パケットのデータ部３０２をＳＤＲＡＭ２０７へＤＭＡ転送する（Ｔ５〜Ｔｎ）。より具体的には、ＤＭＡコントローラ２０６は、ホスト用ＦＩＦＯ制御器４０１をFIFORDにより制御してホスト用ＦＩＦＯ２０５から順次画像データを読み出す。そして、ＳＤＲＡＭ側のＷＲ信号を制御して画像データをＳＤＲＡＭ２０７に格納していく。
【００３４】
以上説明したように、第１実施形態によれば、パケット種の判別がハードウエアによって行われる（ＣＰＵ処理が絡まない）ため。このため、ＣＰＵ２０２によるパケット種別の判定処理が不要となり、パケット通信間のオーバーヘッドを激減でき、通信速度を向上できる。
【００３５】
即ち、上記構成は、受信したパケットの種類の判断を行うハードウエアを構成し、そのハードウエアが受信パケットをコマンドパケットと判断した場合は、ＣＰＵ２０２にその処理を委ねる。一方、受信パケットをデータパケットと判断した場合は、ヘッダ部等を取り払って得られた画像データを印刷エンジンに繋がる処理回路（ＳＤＲＡＭ２０７）に転送する。これらの一連の処理において、ＣＰＵ２０２が介在しないので、処理速度は格段に向上し、システムとしての処理速度（印刷速度）が向上する。この様子を図９により説明する。なお、ＣＰＵ２０２の処理が介在しないというのは、データ転送が開始されてからのことであり、処理回路の初期化等に関してはＣＰＵ２０２からのレジスタ設定等が行われる。但し、それらが行われることによるシステム上の処理速度に対する影響はほぼ皆無である。例えば一般的なプリンタコントローラによる画像データ転送時には、図９（ａ）に示されるようにパケット種別の判定に要した時間が、図９（ｂ）に示されるように減少される。すなわち、ＣＰＵ２０２がヘッダ部２０２を解析してデータ種別を判定するのに要する時間（Header処理）がほとんどゼロとなり、全体の処理時間が短縮されることがわかる。
【００３６】
より詳細に説明すると、ＣＰＵは一つの命令を実行するために命令フェッチ、対象データのメモリへのリードライト、内部での演算等多くの実行クロックを要する。受信パケットの取り込み処理に必要となるＣＰＵの実行ステップは、割込み作業開始処理、ＦＩＦＯメモリからのヘッダ部の読出し、パケット種の判別、ＤＭＡ起動となり、パケット種の判別に要する時間は数ｍＳとなる。これに対して、上記各実施形態によれば、パケット種の判別がＣＰＵとは独立した回路により、数クロックという処理速度で実行でき、小規模の回路で格段に速度向上を図ることができるのである。
【００３７】
また、上記実施形態のようにパケット種の判別をＣＰＵ２０２とは独立した構成によって実行することにより、ＣＰＵ２０２の主な役割は、（１）ホストコンピュータとのコミュニケーション、（２）プリンタコントローラ内の各種機能ブロック（ＵＳＢインターフェース、画像デコーダ、ビデオ供給部（VideoShipper））における動作制御レジスタの設定となる。これらの多くはＣＰＵが処理時間を要しても問題にならない処理である。一方、ＣＰＵ２０２とは独立して動作するヘッダ解析部２１０の役割は、受信パケットの存在を認識し、パケットのヘッダ部を読み取り、パケット種を判別し、データパケットの場合にはＤＭＡを起動して次段にパケットのデータ部を転送し、コマンドパケットの場合にはその処理をＣＰＵに委ねるというものである。このように、パケット受信時においてＣＰＵ２０２が、無視できない処理時間を費やしていた処理をヘッダ解析部２１０が行なうので、効果的に処理を高速化できる。また、高価で高速なＣＰＵを使用する必要がなく、低コストで高速なプリンタを構成できる。なお、コマンドパケットの処理をＣＰＵに委ねる際には、以下の第２、第３実施形態で説明するように、コマンドパケットの全体を適当な場所に移してＣＰＵに通知する構成としてもよい。
【００３８】
＜第２実施形態＞
上記第１実施形態では、コマンドレジスタ４０５の容量をホスト用ＦＩＦＯメモリ２０５の１回の読出しによって出力されるデータ量とし、ホスト用ＦＩＦＯメモリ２０５からのデータ読み出し毎にＣＰＵ２０２がこれを取得していくようにした。従って、ホスト用ＦＩＦＯメモリ２０５からの各読出し毎にＣＰＵ２０２によるデータの取得動作が発生することになる。第２実施形態では、コマンドレジスタ４０５の容量を少なくともコマンドパケットの全体を格納できるサイズとし、１回の割込み発生によりＣＰＵ２０２がコマンドパケットの全体をコマンドレジスタ４０５から読み取るように構成する。なお、プリンタ、プリンタコントローラ及びヘッダ解析部の構成は第１実施形態と同様である。また、コマンドパケットのデータサイズはそれほど大きくはならないので、コマンドパケットの全体を格納するようにコマンドレジスタ４０５を構成しても、その容量はさほど大きくならない。
【００３９】
この場合、図５ＡのステップＳ５６〜Ｓ６０の処理は、図５ＢのＳ６１〜Ｓ６５に置き換わる。
【００４０】
受信パケットがコマンドパケットであった場合、まず、ステップＳ６１においてヘッダ部をコマンドレジスタ４０５に格納する。そして、読み出すべき付加データが存在する間（ヘッダ部３０１のパケットサイズから判断できる）、付加データをホスト用ＦＩＦＯメモリ２０５から読出し、コマンドレジスタ４０５に格納していく（ステップＳ６２，Ｓ６３）。こうして受信パケットの全体がコマンドレジスタ４０５に格納されると、ステップＳ６４にてＣＰＵ２０２に対して割り込みを発生する。そして、ＣＰＵ２０２がコマンドレジスタ４０５に格納されたデータを読み取ったことを確認したならば（ステップＳ６５）本処理を終える。
【００４１】
図７Ｂに、第２実施形態によるプリンタコントローラ１３におけるコマンドパケット処理時のタイミングチャートを示す。コマンドレジスタ４０５は、データサイズに記述されたデータ量に従ってFIFO RDを制御することにより、ホスト用ＦＩＦＯ制御器４０１にホスト用ＦＩＦＯメモリ２０５から順次データを読み出す（図７Ｂでは、Ｔ５〜Ｔ７のＲＤ信号によりＴ６〜Ｔ８のタイミングで付加データＤ０〜Ｄ２を読み出している）。ホスト用ＦＩＦＯメモリ２０５から順次に読み出されたデータはコマンドレジスタ４０５に保持される（図７Ｂの５０１、ステップＳ６１〜Ｓ６３）。そして、受信パケットの全体を格納した後にＣＰＵ２０２に対して割り込みをかける（図７Ｂの５０２、ステップＳ６４）ことになる。
【００４２】
以上のような第２実施形態によれば、コマンドパケットの受信におけるＣＰＵ２０２の介在を第１実施形態よりも減らすことができ、より処理速度を向上させることができる。
【００４３】
＜第３実施形態＞
第１、第２実施形態ではＣＰＵ２０２の介在無しに受信したパケットがコマンドパケットかデータパケットかを判定した。そして、コマンドパケットであった場合はＣＰＵ２０２に割り込みがかかり、ＣＰＵ２０２に当該コマンドパケットを提供した。即ち、第１、第２実施形態ではコマンドパケットに関してはＣＰＵ２０２の読出し動作に同期してホスト用ＦＩＦＯメモリ２０５を動作させている。第３実施形態では、コマンドパケット用のＦＩＦＯメモリを用意し、コマンドパケット、データパケットともにＣＰＵ２０２の介在なしにパケットの連続受信を可能にし、処理速度を向上する。
【００４４】
図１０は第３実施形態によるプリンタコントローラの構成を示すブロック図である。図７において図２と同様の構成には同一の参照番号を付してある。第１実施形態におけるヘッダ解析部（図２）と異なる点は、ヘッダ解析部２１０とＣＰＵバス２０３の間に、ＣＰＵ２０２へコマンドパケットを受け渡すためのコマンド用ＦＩＦＯメモリ７０１が存在する点である。
【００４５】
図１１は第３実施形態によるヘッダ解析部２１０の動作を説明するフローチャートである。データパケットを受信した場合の動作（ステップＳ５１〜Ｓ５５）は第１実施形態と同じであるため、説明を省略する。
【００４６】
コマンドパケットを受信した場合は、ステップＳ５３からステップＳ８０へ進み、コマンド用ＦＩＦＯメモリ７０１がデータを受付可能であるかどうかを判定する。コマンド用ＦＩＦＯメモリ７０１がフル（Full）の状態であり、データを受け付けられない場合は、フル状態が解除されるのを待つ。コマンド用ＦＩＦＯメモリ７０１がフル状態でなければ、ステップＳ８１へ進み、ホスト用ＦＩＦＯメモリ２０５から出力されているヘッダ部のデータをコマンド用ＦＩＦＯメモリに格納させる。続いて、ステップＳ８２において、当該パケットのデータ部３０２（付加データ）が存在するかどうかを判定する。存在するのであれば、ステップＳ８３において、付加データをホスト用ＦＩＦＯメモリ２０５から読出し、コマンド用ＦＩＦＯメモリ７０１に格納する。こうして、受信パケットの全体がコマンド用ＦＩＦＯメモリ７０１に格納される。
【００４７】
コマンド用ＦＩＦＯメモリ７０１は、データが格納されるとＣＰＵ２０２に対して割り込みを発生する。ＣＰＵ２０２は、この割り込みを受け付けて、コマンド用ＦＩＦＯメモリ７０１からコマンドパケットを読み出す。
【００４８】
図１２は第３実施形態のヘッダ解析部２１０の詳細な構成を示すブロック図である。図１２において図６に示した構成と同様の機能のものには同一の参照番号を付してある。第２実施形態ではコマンドレジスタ４０５の代わりにコマンド用ＦＩＦＯ制御器４０６が設けられている。コマンド用ＦＩＦＯ制御器４０６はコマンド用ＦＩＦＯ７０１を制御する。
【００４９】
図１３は第３実施形態によるコマンドパケットの処理を表すタイミングチャートである。なお、データパケットの場合のタイミングチャートは第１実施形態（図８）と同様であるため説明を省略する。以下、図１２、図１３を用いて第３実施形態のヘッダ解析部２１０によるコマンドパケットに対する処理動作を詳細に説明する。
【００５０】
図１２において、ホストコンピュータ１１から受信したパケットはホスト用ＦＩＦＯメモリ２０５に保持される。パケットがホスト用ＦＩＦＯメモリ２０５内に存在するとホスト用ＦＩＦＯメモリ２０５からのEmpty信号がInactiveになる（図１３のＴ２）。これは、パケットを受信したことを意味する（図１１のステップＳ５１）。よって、ホスト用ＦＩＦＯ制御器４０１は、ホスト用ＦＩＦＯメモリ２０５から受信したデータを読み出すためにＲＤ信号をActiveにする（Ｔ３）。このＲＤ信号によりホスト用ＦＩＦＯメモリ２０５から受信パケットのヘッダ部３０１が読み出される（ステップＳ５２）。
【００５１】
図３で説明したように、読み出されたヘッダ部３０１にはコマンドタイプとパケットサイズが格納されている。比較器４０２、比較器４０３は、コマンドタイプの内容に従って受信パケットがコマンドか印刷データかを判断する。受信パケットがコマンドパケットの場合、比較器４０３の出力がActiveになる（Ｔ４）。比較器４０３のActive出力によりコマンド用ＦＩＦＯ制器４０６が起動される。コマンド用ＦＩＦＯ制御器４０６は、コマンド用ＦＩＦＯメモリ７０１からのFull信号により、コマンド用ＦＩＦＯメモリ７０１がフル状態か否かを判定する（ステップＳ８０）。フル状態でなければコマンド用ＦＩＦＯメモリ７０１にＷＲ信号を送り、現在、ＦＩＦＯデータバス４１０上に出力されているヘッダ部のデータをコマンド用ＦＩＦＯメモリ７０１に格納する（ステップＳ８１，Ｓ８２）。
【００５２】
続いて、コマンド用ＦＩＦＯ制御器４０６は、ＦＩＦＯデータバス４１０上に出力されているヘッダ部のうちのパケットサイズを取得する。そして、この情報に従ってFIFO RD信号を制御し、ホスト用ＦＩＦＯメモリ２０５から付加データを順次出力させる。より具体的には、FIFO RD信号によりパケットサイズで示されるデータ量に応じた回数（長さ）のＲＤ信号をホスト用ＦＩＦＯ制御器４０１に発生させ、付加データをホスト用ＦＩＦＯメモリ２０５から読み出す。図１３の例では、パケットサイズから３クロック分の長さのＲＤ信号が必要と判定され、その長さのＲＤ信号により付加データが読み出される様子が示されている（Ｔ５〜Ｔ７のＲＤ信号により、Ｔ６〜Ｔ８の３クロックで付加データＤ０〜Ｄ２が読み出される）。更に、このとき、コマンド用ＦＩＦＯ制御器４０６はコマンド用ＦＩＦＯメモリ７０１へのＷＲ信号を制御して、ホスト用ＦＩＦＯメモリ２０５から順次出力される付加データがコマンド用ＦＩＦＯメモリ７１０に順次書き込まれるようにする（ステップＳ８２，Ｓ８３）。こうしてホスト用ＦＩＦＯメモリ２０５に保持された受信パケットの全体がコマンド用ＦＩＦＯメモリ７０１に書き込まれる（Ｔ５〜Ｔ８）。
【００５３】
以上のようにして、パケットサイズに従ったデータ量の上記転送を終えると、コマンド用ＦＩＦＯメモリ７０１がＣＰＵ割込みを発生させ、当該受信パケットの処理を終える。なお、コマンド用ＦＩＦＯ制御器４０６からＣＰＵ２０２への割込み信号を発生するようにしてもよい。また、ＣＰＵ２０２への割込み信号の発生タイミングは、コマンド用ＦＩＦＯメモリ７０１へのコマンドパケットのデータの格納が開始された時点で行うなど、適切なタイミングで行われればよい。
【００５４】
なお、第３実施形態では連続したパケット処理を可能にしたが、場合によっては印刷データの転送を待たせておく必要もある。そのような場合に対処するために、ＣＰＵ２０２がヘッダ解析部２１０に対してWait制御を行えるような形態をとるようにしてもよい。
【００５５】
また、第３実施形態はコマンド用ＦＩＦＯメモリ７０１にコマンドパケットを転送する形態となっているが、コマンドパケットをデータパケット同様にＳＤＲＡ２０７に転送し、ＣＰＵ２０２がＳＤＲＡＭ２０７からコマンドを読むように構成してもよい。この場合、コマンドパケットのヘッダ部とデータ部の全てがＳＤＲＡＭ２０７へ転送されるようにＤＭＡコントローラ２０６を設定することになる。
【００５６】
以上説明したように第３実施形態によれば、パケット種別の判定をＣＰＵ２０２とは独立したハードウエアで行う構成としたので、第１実施形態と同様の効果を達成できる。また、第３実施形態では、ＣＰＵが介在することなく複数の連続したパケットが自動的に処理される。例えば、コマンドパケットが連続して送付されて来て、それに続いてデータパケットが送付されて来ても、コマンド用ＦＩＦＯメモリ７０１に蓄積可能なパケット量以内であれば、ＣＰＵによるコマンドパケットの読み出しを待つことなく次のパケットを処理することが可能となる。従って、更に処理速度を向上できる。
【００５７】
なお、上記第１〜第３実施形態では、ホストコンピュータ１１とプリンタ１２の接続にＵＳＢを用いたがホストコンピュータ１１とプリンタ１２との接続形態はこれに限られるものではない。例えば、イーサネット（登録商標）等によるＬＡＮや、ＩＥＥＥ１３９４インターフェースなど、他の周知のインターフェースを適用できることは言うまでもない。更に、上記第１〜第３実施形態では、コマンドパケットの受信をＣＰＵ２０２への割り込みにより通知する形態で説明したが、ポーリング（Polling）等により、ＣＰＵ２０２が自主的にコマンドパケットの受信の有無を認識するようにしてもよい。例えば、図６のコマンドレジスタ４０５の所定メモリ領域や、図１２のコマンド用ＦＩＦＯメモリ７０１の所定メモリ領域やなどにヘッダ解析部の解析に基づくコマンドパケットの受信の有り無しのフラグを記憶させ、そのフラグの状態をＣＰＵ２０２がポーリングにより確認するようにすればよい。ＣＰＵ２０２によりコマンドパケットの存在が識別できた場合には、コマンドレジスタ４０５、コマンドＦＩＦＯ用メモリ７０１に記憶されたデータがＣＰＵ２０２により読み込まれ、結果、ＣＰＵ２０２にコマンドパケットのデータが提供される。
【図面の簡単な説明】
【００５８】
【図１】実施形態による印刷システムの構成を示す図である。
【図２】第１実施形態によるプリンタコントローラの構成を示すブロック図である。
【図３】ホストベースプリンタのパケット構成を説明する図である。
【図４】パケットタイプの例を示す図である。
【図５Ａ】第１実施形態による受信パケット処理を説明するフローチャートである。
【図５Ｂ】第２実施形態による受信パケット処理を説明するフローチャートである。
【図６】第１実施形態によるヘッダ解析部の構成を示すブロック図である。
【図７Ａ】第１実施形態のヘッダ解析部におけるコマンドパケット処理時のタイミングチャートである。
【図７Ｂ】第２実施形態のヘッダ解析部におけるコマンドパケット処理時のタイミングチャートである。
【図８】第１実施形態のヘッダ解析部におけるデータパケット処理時のタイミングチャートである。
【図９】第１実施形態による受信パケット処理時間の短縮を説明する図である。
【図１０】第３実施形態によるプリンタコントローラの構成を示すブロック図である。
【図１１】第３実施形態による受信パケット処理を説明するフローチャートである。
【図１２】第３実施形態によるヘッダ解析部の構成を示すブロック図である。
【図１３】第３実施形態のヘッダ解析部におけるコマンドパケット処理時のタイミングチャートである。
【図１】
2006289797.tif 000003
【図２】
2006289797.tif 000004
【図３】
2006289797.tif 000005
【図４】
2006289797.tif 000006
【図５Ａ】
2006289797.tif 000007
【図５Ｂ】
2006289797.tif 000008
【図６】
2006289797.tif 000009
【図７Ａ】
2006289797.tif 000010
【図７Ｂ】
2006289797.tif 000011
【図８】
2006289797.tif 000012
【図９】
2006289797.tif 000013
【図１０】
2006289797.tif 000014
【図１１】
2006289797.tif 000015
【図１２】
2006289797.tif 000016
【図１３】
2006289797.tif 000017
【手続補正書】
【提出日】平成18年6月15日(2006.6.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
前記判定手段は、予め設定された前記データパケットを示すデータと受信したパケットの前記所定部分のデータとの一致を比較する第１比較回路を含むことを特徴とする請求項２乃至８のいずれかに記載の印刷制御装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
前記判定手段は、予め設定された前記コマンドパケットの種別を示すデータと受信したパケットの前記所定部分のデータとの一致を比較する第２比較回路を含むことを特徴とする請求項２乃至９のいずれかに記載の印刷制御装置。