(57)【要約】【課題】  回路規模やメモリサイズを増大することなく、データ転送効率を向上させる。【解決手段】  連続して印刷イメージデータPacketを転送する際、先頭のPacketで連続して転送する複数のPacketの種類と、サイズを示すことで、転送のオーバーヘッドとなっていたPacketのヘッダー解析処理の回数を大幅に削減する。【選択図】  図６
2008093942.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータで印刷イメージを作成し、プリンタへPacket形態でデータを転送し、プリントを行う印刷装置において、
Packetの先頭部分にPacketの種類と、サイズを示すヘッダーを含み、
前記ヘッダーを解析する手段と、
Packetの種類が印刷イメージデータと判別した場合、DMACを起動し次段の回路へ高速データ転送を行う手段と、
を備え、
印刷イメージデータPacketを連続して転送する際は、
先頭のPacketのヘッダーにおいて、連続して転送するPacketの個数の情報を付加しておき、
先頭のPacketは前記ヘッダーを解析し、それに応じてDMACを起動し、高速データ転送を行い、
２番目以降のPacketは前記ヘッダーを解析せずにDMACを起動し、高速データ転送を行うことを特徴とする印刷装置。
【請求項２】
ホストコンピュータで印刷イメージを作成し、プリンタへPacket形態でデータを転送し、プリントを行う印刷装置において、
連続して転送される印刷イメージデータPacketのうち先頭の印刷イメージデータPacket及び、種々のコマンドを示すコマンドPacketの先頭部分にPacketの種類と、サイズを示すヘッダーを含み、
前記ヘッダーを解析する手段と、
Packetの種類が印刷イメージデータと判別した場合、DMACを起動し次段の回路へ高速データ転送を行う手段と、
を備え、
印刷イメージデータPacketを連続して転送する際は、
先頭のPacketのヘッダーにおいて、連続して転送するPacketの個数の情報を付加しておき、
先頭のPacketは前記ヘッダーを解析し、それに応じてDMACを起動し、高速データ転送を行い、
２番目以降のPacketは前記ヘッダーを解析せずにDMACを起動し、高速データ転送を行うことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータで印刷イメージを作成し、プリンタへPacket形態でデータを転送し、プリントを行う印刷装置、及びその印刷制御方法に関するものである。
【背景技術】
【０００２】
従来、ホストベースプリンタにおいて、Packet形態で印刷イメージデータ、及びコマンドを転送することで印刷を実施する形態がある。
【０００３】
受信したPacketをPacket毎にその都度、印刷装置のCPUがコマンド、もしくは印刷イメージデータであるかを判別し、コマンドであれば、その内容に従った処理を行い、印刷イメージデータであれば実際に印刷を行うプリンタエンジン部に転送していた。
【０００４】
図１から図５を用い、具体的に説明する。
【０００５】
図１は概略のシステム構成図であり、図中１１はホストコンピュータ、１２は印刷を行うプリンタ、１３はホストベースプリンタに内蔵され画像処理を行うプリンタコントローラ、１４もホストベースプリンタに内蔵され実際の印刷を行うプリンタエンジンである。
【０００６】
ホストベースプリンタ１２での印刷処理の大まかな印刷イメージデータの処理は、まずホストコンピュータ１１内で印刷ビットマップがアプリ(ワード、エクセル等)からの情報を元に生成され、転送効率を上げるため所定の方式により圧縮処理を施され、高圧縮ビットマップとして印刷イメージデータが生成される。圧縮されたデータが完成すると、そのデータはホストコンピュータ１１からプリンタコントローラ１２に転送される。プリンタコントローラ内で受信されたデータは、伸張され元のビットマップ画像に戻される。復元された画像はプリンタエンジン１４に送られ、印刷が行われるという処理フローになる。  
【０００７】
次に、ホストベースプリンタに内蔵されたプリンタコントローラでのデータ処理の様子を図２、及び図３を用いて説明する。また、転送されるPacketに関して、図４、及び図５を用いて説明する。
【０００８】
図２において、図中１３はプリンタコントローラ、２０２はプリンタコントローラ１３のCPU、２０３はCPU２０２のCPUバス、２０４はホストコンピュータとのIFとなるUSB I/F、２０５はUSB I/F２０４で受信したデータを溜め込むHost I/F FIFO、２０６はDRAMのDirect Memory Accessを実現するDMA Controller、２０７はコントローラの主メモリとなるSDRAM、２０８はホストコンピュータで圧縮された画像を伸張する画像Decoder、２０９はプリンタエンジンに印刷イメージデータを転送するVideo Shipper、２１０はUSB  I/F２０４を介してホストコンピュータと、プリンタコントローラとがデータ転送行う際、転送をコントロールするUSB I/F Controllerである。
【０００９】
図３において、３０１はUSB I/Fに接続されたデータバス、３０２はデータの方向を示すDIR（ディレクション）信号、３０３はUSB I/F２０４からUSB I/F Controller２１０へのnDREQ（DMAリクエスト）信号、３０４はUSB I/F Controller２１０からUSB I/F２０４へのnDACK（DMAアクノリッジ）信号、３０５はUSB I/F Controller２１０から出力されるnSTB（ストローブ）信号、３０６はDMAデータ転送中を示すCountend（カウントエンド）信号、３０７はUSB I/F２０４からHost I/F FIFO ２０５がコマンドを受信したことを示すCMD_FLAG信号である。
【００１０】
Packetは図４のような構造となっておりHeader部とData部とから構成されている。また、Command Packetと印刷イメージデータPacketの基本構造は同じであり、大きな違いはData部のサイズである（Command Packetでは小さく、印刷イメージデータPacketでは大きい）。Header部は、Packetの種類を示すコマンド２Ｂｙｔｅと、Packetのサイズを示すデータレングス２Ｂｙｔｅとからなり、この情報により受信側はそのPacketが印刷イメージデータPacketかどうか、また、何のコマンドPacketであるか、Packetのサイズはどのくらいのデータレングスか、を判断する事ができる。PacketTypeの一例を図５に示す。
【００１１】
次に、印刷イメージデータ転送時のデータ処理の流れを説明する。
【００１２】
まず、ホストコンピュータで生成された高圧縮印刷イメージデータをUSB I/F２０４で受信する。その際、データはPacket単位で転送され、先頭から２Byteずつ順次転送される。先頭の２ByteをHost I/F FIFO２０５が受信した時点でCMD_FLAG信号が"High"になる。このフラグをCPU２０２がPolling動作によって監視しており、このフラグが"High"になったら、CPU２０２が先頭の２Byteを順次RDする。この動作により、次のnSTB信号が出力され、Host I/F FIFO２０５が次の２Byteを受信する。CPU２０２は、先頭から４Byteのヘッダーを解析し、Packetがコマンドであるか、印刷イメージデータであるか、Packetのサイズはどのくらいかを判断する。
【００１３】
例えば、コマンドPacketとしては用紙サイズ指定等であり、コマンドPacketの場合、CPU２０２が２ByteずつPacketの最後までRD（RDすることでnSTB信号が出力され、次の２Byteが受信される）し、その内容に応じた処理を行う。
【００１４】
一方、印刷イメージデータは通常数１０KB等ある程度大きなサイズとなっている。受信されたPacketが、印刷イメージデータPacketの場合、CPU２０２はDMAC２０６にDatacountとしてPacketサイズの値をセットする。これによりDMAC２０６が起動し、Host I/F FIFO２０５からDMAによってデータがSDRAM２０７に転送される。
【００１５】
これらの処理をPacket毎に繰り返し行うことでCPU２０２、及びSDRAM２０７にデータ転送を順次行う。
【００１６】
SDRAM２０７に蓄積された印刷イメージデータは画像Decoder２０８が受信可能な場合、画像Decoder２０８自身がDMAC２０６を起動し、SDRAM２０７から画像転送を行い、画像Decoder２０８回路で伸張されビットマップデータに戻される。最後にビットマップデータをVideoShipper２０９からプリンタエンジンに転送され印刷されるという処理シーケンスとなる。
【００１７】
従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開2004-98313号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、従来の方法だとCPUでPacketがコマンドであるか印刷イメージデータであるかをPacket毎にその都度判断していたので、CPUの処理時間がオーバーヘッドになっており、CPUの性能にもよるが、数十ｍS程度の処理時間を要していた。ここの時間がシステムとしての処理時間として表面に現れないようにするためには、一回のPacketで送るデータ量を増やすことで、オーバーヘッドとなるPacket判断回数を減らす方法も考えられる。しかしながら、本特許の前提として印刷装置としては低コスト化のため大きなFIFOを持たない事を前提にしており、大きなPacketを受信する事はできない。つまり、FIFO容量としては例えば１ページの数十分の一程度のメモリしか持たないような印刷機を対象としているためデータPacket数もそれなりの数になり、Packet処理のオーバーヘッドが問題となる。そのため、一回のPacketに含まれるデータ量を増やす事は出来ず。別の手段で高速化を実現する必要があった。
【課題を解決するための手段】
【００１９】
上記課題を解決するため、本発明を実施した印刷装置においては、
ホストコンピュータで印刷イメージを作成し、プリンタへPacket形態でデータを転送し、プリントを行うホストベースプリンタにおいて、Packetの先頭部分にPacketの種類と、サイズを示すヘッダーを含み、ヘッダーを解析する手段と、Packetの種類が印刷イメージデータと判別した場合、DMACを起動し次段の回路(例えばRAM)へ高速データ転送を行う手段と、を備え、
印刷イメージデータPacketを連続して転送する際は、先頭のPacketのヘッダーにおいて、連続して転送するPacketの個数の情報を付加しておき、先頭のPacketはヘッダーを解析し、それに応じてDMACを起動し、高速データ転送を行い、２番目以降のPacketはヘッダーを解析せずにDMACを起動し、高速データ転送を行うことを特徴とする。
【発明の効果】
【００２０】
以上説明したように、本発明によれば、連続して印刷イメージデータPacketを転送する際、先頭のPacketで連続して転送する複数のPacketの種類と、サイズを示すことで、転送のオーバーヘッドとなっていたPacketのヘッダー解析処理の回数を大幅に削減することが可能となる。その結果、回路規模や、メモリサイズを増大することなくデータ転送効率が大幅に向上する。
【発明を実施するための最良の形態】
【００２１】
(第１の実施形態)
本実施形態は、USBをホストコンピュータとのI/Fとしているホストベースプリンタに応用した例を用いて説明する。
【００２２】
図６は、本発明を実施し、印刷イメージデータ転送〔連続〕に対応するように従来のPacketTypeを拡張した一例である。
【００２３】
この例では、印刷イメージデータ転送〔連続〕をコマンド0xXXE0で表し、XXの部分において、以後いくつのPacketを連続して転送するかを示すようにしている。
【００２４】
図７は、本実施例の印刷イメージデータPacketの構成図である。
【００２５】
連続して印刷イメージデータPacketを送る場合の先頭は、一つだけ印刷イメージデータPacketを送る場合や、Command Packetと同じような構造となっておりHeader部と、Data部とから構成されている。また、連続して印刷イメージデータPacketを送る場合、二つ目以降の印刷イメージデータPacket は、Headerの無いData部のみの構造となる。
【００２６】
Command Packetと印刷イメージデータPacketの大きな違いはData部のサイズであり、Command Packetでは小さく、印刷イメージデータPacketでは大きい。本実施形態では、Header部は、Packetの種類を示すコマンド２Ｂｙｔｅと、Packetのサイズを示すデータレングス２Ｂｙｔｅとからなり、Data部のサイズは、０Byte〜(６４K-４)Byteまでの可変とし、連続して転送可能な印刷イメージデータPacketの個数は２５５個までとしている。
【００２７】
これらのHeaderの情報により受信側はそのPacketが印刷イメージデータPacketかどうか、また、何のコマンドPacketであるか、Packetのサイズはどのくらいのデータレングスか、またさらに連続して同サイズの印刷イメージPacketの転送が続くかを判断する事ができる。
【００２８】
次に、印刷イメージデータ転送時のデータ処理の流れを説明する。
【００２９】
まず、ホストコンピュータで生成された高圧縮印刷イメージデータをUSB I/F２０４で受信する。その際、データはPacket単位で転送され、先頭から２Byteずつ順次転送される。先頭の２ByteをHost I/F FIFO２０５が受信した時点でCMD_FLAG信号が"High"になる。このフラグをCPU２０２がPolling動作によって監視しており、このフラグが"High"になったら、CPU２０２が先頭の２Byteを順次RDする。この動作により、次のnSTB信号が出力され、Host I/F FIFO２０５が次の２Byteを受信する。CPU２０２は、先頭から４Byteのヘッダーを解析し、Packetが何のコマンドであるか、印刷イメージデータであるか、Packetのサイズはどのくらいのデータレングスか、またさらに連続して同サイズの印刷イメージPacketの転送が続くかを判断する。
【００３０】
例えば、コマンドPacketとしては用紙サイズ指定等であり、コマンドPacketの場合、CPU２０２が２ByteずつPacketの最後までRD（RDすることでnSTB信号が出力され、次の２Byteが受信される）し、その内容に応じた処理を行う。
【００３１】
一方、印刷イメージデータは通常数１０KB等ある程度大きなサイズとなっている。受信されたPacketが、印刷イメージデータPacketの場合、CPU２０２はDMAC２０６にDatacountとしてPacketサイズの値をセットする。これによりDMAC２０６が起動し、Host I/F FIFO２０５からDMAによってデータがSDRAM２０７に転送される。
【００３２】
また、例えば、コマンドが０ｘ０４Ｅ０で同サイズの印刷イメージデータPacketが４回連続すると判断した場合、まずCPU２０２はDMAC２０６にDatacountとしてPacketサイズの値をセットする。これにより一度目のDMAC２０６が起動し、Host I/F FIFO２０５からDMAによってデータがSDRAM２０７に転送される。次にCPU２０２はCountend（カウントエンド）信号３０６をPolling動作によって監視することで、DMA転送の終了を知ることができる。CPU２０２はDMA転送が終了する度に、DMAC２０６にDatacountとして同様のPacketサイズの値をセットし、自身で一時的に記憶している繰り返し回数のカウント値をデクリメントする。このような処理を繰り返し行うことで、連続して同サイズの印刷イメージデータPacketを転送する際、転送のオーバーヘッドであったHeaderの解析処理が一つ目の印刷イメージデータPacketだけで行えばよく、Headerの解析処理の回数が削減され、転送効率が向上する。従来と、本実施例の印刷イメージデータPacketの転送タイミングを比較した模式的なタイムチャートを図８に示す。
【００３３】
これらの処理をPacket毎に繰り返し行うことでCPU２０２、及びSDRAM２０７にデータ転送を順次行う。
【００３４】
SDRAM２０７に蓄積された印刷イメージデータは画像Decoder２０８が受信可能な場合、画像Decoder２０８自身がDMAC２０６を起動し、SDRAM２０７から画像転送を行い、画像Decoder２０８回路で伸張されビットマップデータに戻される。最後にビットマップデータをVideoShipper２０９からプリンタエンジンに転送され印刷されるという処理シーケンスとなる。
【００３５】
(第２の実施形態)
第１の実施形態では、連続して印刷イメージデータPacketを送る場合の、二つ目以降の印刷イメージデータPacket は、Headerの無いData部のみの構造とする例で説明したが、連続して印刷イメージデータPacketを送る場合の、二つ目以降の印刷イメージデータPacketも Command Packet や、先頭の印刷イメージデータPacket と同様にHeader部と、Data部とから構成されていても、DMAC２０６により二つ目以降の印刷イメージデータPacketのHeaderを読み飛ばすように構成すれば、第１の実施形態と同様に、連続して同サイズの印刷イメージデータPacketを転送する際、転送のオーバーヘッドであったHeaderの解析処理が一つ目の印刷イメージデータPacketだけで行えばよく、Headerの解析処理の回数を削減し、転送効率を向上させることが可能である。
【図面の簡単な説明】
【００３６】
【図１】本実施例の概略のシステム構成図。
【図２】本実施例のホストベースプリンタのプリンタコントローラ構成図。
【図３】本実施例のプリンタコントローラ内のデータ転送時に使用する主な信号線。
【図４】従来のホストベースプリンタのPacket構成図。
【図５】従来Packetの種類の一例。
【図６】本実施例のPacketの種類の一例。
【図７】本実施例のホストベースプリンタの印刷イメージデータPacket構成図。
【図８】従来と、本実施例の印刷イメージデータPacketの転送タイミングを比較した模式的なタイムチャート。
【符号の説明】
【００３７】
１１  ホストコンピュータ
１２  プリンタ
１３  プリンタコントローラ
１４  プリンタエンジン
２０２  CPU
２０３  CPUバス
２０４  USB I/F
２０５  Host I/F FIFO
２０６  DMA Controller
２０７  SDRAM
２０８  画像Decoder
２０９  Video Shipper
２１０  USB I/F Controller
３０１  データバス
３０２  DIR信号
３０３  nDREQ信号
３０４  nDACK信号
３０５  nSTB信号
３０６  Countend信号
３０７  CMD_FLAG信号
【図１】
2008093942.tif 000003
【図２】
2008093942.tif 000004
【図３】
2008093942.tif 000005
【図４】
2008093942.tif 000006
【図５】
2008093942.tif 000007
【図６】
2008093942.tif 000008
【図７】
2008093942.tif 000009
【図８】
2008093942.tif 000010