JP3772585B2 - プリントシステム - Google Patents
プリントシステム Download PDFInfo
- Publication number
- JP3772585B2 JP3772585B2 JP09910799A JP9910799A JP3772585B2 JP 3772585 B2 JP3772585 B2 JP 3772585B2 JP 09910799 A JP09910799 A JP 09910799A JP 9910799 A JP9910799 A JP 9910799A JP 3772585 B2 JP3772585 B2 JP 3772585B2
- Authority
- JP
- Japan
- Prior art keywords
- printer
- data
- status
- host device
- reception buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
Description
【発明の属する技術分野】
本発明は、ホスト装置からプリンタに印刷データを送ってプリンタで印刷するプリントシステムに関する。
【0002】
【従来の技術】
ホスト装置からプリンタに送信された印刷データは一旦プリンタ内の受信バッファメモリに格納された後に、受信バッファから読み出されて印刷処理される。ホスト装置は、印刷データがプリンタで確実に処理されるよう、随時にプリンタのステータスを確認しつつ印刷データをプリンタに送っていく。特に「ホストベースプリンタ」又は「ダムプリンタ」などと呼ばれるプリンタの場合、基本的に、プリンタはホスト装置から受信したイメージデータを単に印刷するだけであり、ホスト装置が、イメージのビットマップ展開を始め、プリンタでエラーが生じたときの対応や、印刷が終了したイメージデータの破棄など、プリンタでの印刷処理の進捗状況に応じた種々の制御を行う必要があるので、ホスト装置はプリンタのステータスをできるだけリアルタイムに把握することが望まれる。
【0003】
しかし、ホスト装置がプリンタのステータスを頻繁に把握しようとすると、そのためのプリンタとの通信が頻繁になるため、印刷速度が低下するという問題がある。
【0004】
従って、本発明の目的は、プリンタからホストへのステータスを送信する回数を必要最小限にして、印刷速度を向上させることにある。
【0005】
【課題を解決するための手段】
本発明のプリントシステムは、印刷データを生成するホスト装置と、ホスト装置から受信した印刷データを受信バッファに一時蓄積した後に受信バッファから読み出して印刷を行うプリンタとを備える。プリンタは、受信バッファの空きサイズを調べる空きサイズ調査手段と、ホスト装置からステータス要求を受けると、調べた空きサイズを示す情報を含んだステータスをホストに返信するステータス通知手段とを有する。ホスト装置は、プリンタにステータス要求を発するステータス要求手段と、このステータス要求に応答してプリンタが返信したステータスに含まれる空きサイズが所定の条件(例えば、データ受信に必要な最低のサイズより大きい)を満たしていれば、空きサイズで受信できる量の印刷データを連続的にプリンタへ送信するデータ送信手段とを有する。そして、このデータ送信手段が上記空きサイズで受信できる量の印刷データを連続的に送り終わった後に、ステータス要求手段が再びステータス要求をプリンタに発する。
【0006】
このプリントシステムによれば、ホスト装置は、プリンタからステータスを取得すると、このステータスに示される受信バッファの空きサイズで受信可能な量の印刷データを、連続的にプリンタへ送る(ここで、「連続的」とは、「途中でプリンタにステータス要求を発することなく」という意味である)。そして、それだけの量の印刷データをプリンタに連続的に送り終わった後に、再びプリンタにステータス要求を送って受信バッファの空き容量を確認し、これが再び所定条件を満たすようになると、再び、その空き容量で受信可能な量の印刷データを連続的にプリンタへ送る。この動作により、ホストがプリンタのステータスを取得する頻度が減り、ホストからプリンタへのデータ送信速度が上がるので、プリンタのスループットが向上する。
【0007】
好適な実施形態では、ホスト装置は、イメージのバンド単位で印刷データをプリンタへ送る。そのため、ホスト装置は、プリンタから取得したバッファ空きサイズが、これから送ろうとする印刷データの1バンド分のサイズ以上であれば、データ送信を開始して、そのバッファ空きサイズで受信できるバンド数分の印刷データを連続的にプリンタに送る。この連続的なデータ送信が終わると、再びステータス要求をプリンタに発してバッファ空きサイズを調べ、それが再びこれから送ろうとする印刷データの1バンド分のサイズ以上になれば、再び受信可能なバンド数分の連続的なデータ送信を再開する。このようにして、一旦プリンタからステータスを取得すると、その時のバッファ空き容量でプリンタが受信できる限りのバンド数のデータを連続的にプリンタに送信することにより、ステータスを取得する頻度を最小限にする。
【0008】
好適な実施形態では、ホスト装置は、印刷データを連続的に送っている間、プリンタから取得したバッファ空きサイズと、送り済みの印刷データの量とから、受信バッファの残りの空きサイズを計算し、この計算した残りの空きサイズが上記所定条件(例えば、データ受信に必要な最低のサイズ)を満たさなくなるまで、連続的に印刷データをプリンタに送信する。これにより、プリンタが受信できる限りの量の印刷データを連続的にプリンタへ送信することができる。
【0009】
好適な実施形態では、プリンタは、印刷が成功したが未だその印刷成功をホスト装置に通知していないページ数を示す成功枚数カウンタを有しており、そして、ホスト装置からステータス要求を受けたとき、成功枚数カウンタが1以上のページ数を示していたならば、印刷成功を示す情報を更に含んだステータスをホスト装置に返信する。ホスト装置は、プリンタから受信したステータスに印刷成功を示す情報が含まれていれば、未だ削除していない送信済みのデータの中で最先のページのデータを削除する。これにより、印刷成功したページ数を取りこぼし無くホスト装置に知らせて、そのページのデータをホスト装置から削除することができる。
【0010】
好適な実施形態では、プリンタは、紙ジャム及びアンダーランエラー(受信バッファからのデータ読み出しアドレスが受信バッファへのデータ書き込にアドレスに追いついてしまし、それ以上データ読み出しができなくなるエラー)の発生を検知するエラー検知手段を更に有し、ホスト装置からステータス要求を受けたとき、紙ジャム又はアンダーランエラーが検知されていたならば、紙ジャム又はアンダーランエラーを示す情報を更に含んだステータスを前記ホスト装置に返信する。ホスト装置は、プリンタから受信したステータスに紙ジャム又はアンダーランエラーを示す情報が含まれていれば、送信済みのデータをプリンタに再送する、これにより、紙ジャム又はアンダーランエラーによって印刷が失敗しても、失敗したページから再度印刷を行うことができる。その際、アンダーランエラーの場合には、プリンタに対して前回より印刷開始のタイミングを遅らせる指示してデータを再送するか、又は、イメージデータの解像度を前回より落としてデータを再送する。これにより、再度のアンダーランエラーの発生を防止する。
【0011】
本発明のホスト装置は、典型的にはコンピュータにより実施することができるが、そのためのコンピュータプログラムは、ディスク型ストレージ、半導体メモリおよび通信ネットワークを伝播する信号などの各種の媒体を通じてコンピュータにインストールまたはロードすることができる。
【0012】
【発明の実施の形態】
図1は、本発明の一実施形態の構成を示す。
【0013】
本実施形態のページプリンタ3は、ホスト1側でビットマップ展開されたイメージデータをホスト1から受信して電子写真方式によりページ単位で印刷するホストベースのページプリンタである(但し、これは一例であって、他のタイプのプリンタにも本発明の原理は適用できる)。このプリンタ3は、パラレルインタフェースのような専用インタフェ−ス又はLANのようなネットワークを介して、ホスト1と双方向通信可能に接続され、ホスト1からはコマンドデータ及びビットマップ展開されたイメージデータを受信し、また、ホスト1へはプリンタの各種ステータス(例えば、受信バッファの空きサイズ、プリンタレディ情報、印刷成功情報、エラー情報など)を送信することができる。ホスト1から受信したイメージデータを蓄えるための受信バッファは、プリンタ3内のDRAM21内に固定又は可変の容量で確保されている。この受信バッファの容量は、1ページ分のイメージデータのサイズより小さくてよい。CPU23のワークエリアもDRAM21内に確保されており、このワークエリアには、上述したプリンタのステータスなどが書き込まれる。
【0014】
プリンタ3は、電子写真プロセスを実行する機構である印刷エンジン27と、ホスト1との双方向通信によりイメージデータをホスト1から受信して必要な加工を施し印刷エンジン27に渡す一連の処理回路、すなわちホストインタフェース回路11、DMAコントローラ13、データ伸張回路15、ビデオコントローラ17、後処理回路19及びタイマ30を有している。これらの処理回路11〜19、30は、例えば専用ハードウェアロジック回路で構成されていて純粋にハードウェアだけで夫々の動作をするので、ソフトウェアに依って動作するものに比較して高速である。
【0015】
さらに、プリンタ3は、ホスト1からの要求の解釈やエラーの検出やプリンタステータスの管理や上記処理回路11〜19の制御や動作履歴(トナー消費量、印刷枚数など)の管理などを行うためのマイクロコンピュータ、つまり、CPU23と、CPU23のためのプログラムや固定データなどを格納したROM25と、主として受信バッファとして用いられる前述のDRAM21と、上記の動作履歴を保存するためのEEPROM29などを有している。このマイクロコンピュータ21〜25、29、30はバス32を介して上述したハードウェア処理回路11〜19とデータ授受可能に接続されている。各部の機能は次のとおりである。
【0016】
ホストインタフェース回路11は、ホスト1からのコマンドデータやイメージデータの受信や、ホスト1へのステータス情報の送信などの、ホスト1との双方向通信の制御を行う。図示してないが、ホストインタフェース回路11内には、ホスト1から受信したデータを一時保持する入力FIFO(先入先出)バッファと、ホスト1へ送信すべきデータを一時保持する出力FIFOバッファがある。
【0017】
DMAコントローラ13は、DRAM21内に設けられた受信バッファへのイメージデータの書き込み及び受信バッファからのイメージデータの読み出しをDMAにより行う。DMAによるイメージデータのDRAM21への入出力経路には、受信DMA31と転送DMA33の2チャンネルがある。受信DMA31を通じて、ホスト1からのイメージデータがDRAM21に書き込まれる。また、転送DMA33を通じて、イメージデータがDRAM21からデータ伸張回路15へ転送される。
【0018】
データ伸張回路15は、ホスト1からのイメージデータが圧縮されていた場合、これを元のデータに伸張してから後段のビデオコントローラ17へ渡し、一方、ホスト1から圧縮されずに来たデータには、そのままビデオコントローラ17へ渡す。ビデオコントローラ17は、印刷エンジン27へのイメージデータの転送(ビデオ転送という)のタイミングを制御する。
【0019】
後処理回路19は、イメージデータの解像度を印刷エンジン27に合わせるための解像度変換、文字などの輪郭を滑らかなものにするエッジスムージング、ガンマ特性などを考慮して階調値を調整する階調制御などの後処理をイメージデータに施し、その後処理したイメージデータを印刷エンジン27に送る。上述した解像度変換は、例えば印刷エンジン27の解像度が600dpiである場合、ホストから受信したデータが300dpiであったならば、これをエンジン27と同じ600dpiに変換する機能である。この解像度変換機能があることによって、例えば、ホスト1から最初に600dpiのイメージデータを送ったところデータ量が多すぎて印刷も失敗した場合、次にホスト1から解像度を300dpiに落としたイメージデータを再送して印刷をリトライする、といったことが可能になる。
【0020】
CPU23は、印刷の開始時にホスト1からの要求を受けてプリンタ情報(通信モード、RAMサイズなどの1つの印刷ジョブである程度固定的な状態情報)をホスト1に通知したり、印刷の最中にプリンタの現在のステータス(印刷エンジン27の状態、受信バッファの空き容量、エラーが発生中か、各ページ毎に印刷が成功したか、などの時々刻々変動する状態情報)を実時間で取得してDRAM21内のワークエリアに記録し、ホスト1から要求があるとそのステータスをホスト1に通知したり、DMAコントローラ13が行う受信DMA31や転送DMA33の開始タイミングや開始アドレス等を制御したり、プリンタ3の動作履歴を計算してEEPROM29に保存したりする。
【0021】
上記の構成において、ハードウェア処理回路11〜19が行う処理とCPU23がソフトウェアに依り行う処理との役割分担は次の観点に基づいてなされている。
【0022】
(1)ハードウェアで制御する処理
a)リアルタイム性が要求される処理
印刷エンジン27は決められた速度で1ページのイメージを印刷するので、印刷エンジン27の印刷動作に間に合うように、且つ印刷動作に同期させて、イメージデータを印刷エンジン27へ転送しなければならない。そこで、印刷エンジン27へイメージデータ転送の速度とタイミングに直接関与する処理、つまり、受信バッファに対するイメージデータの読み書き、伸張処理、ビデオコントローラ17の転送タイミング制御、及び後処理は、専用ハードウェア(DMAコントローラ13〜後処理回路19)で行う。また、ホスト1との通信インタフェースのうち、リアルタイム性が要求されるものも専用ハ−ドウェア回路(ホストインタフェース回路11)が行う。
【0023】
b)印刷速度に影響する処理
ホスト1から送られてくるデータ、特にイメージデータはサイズが大きいので、印刷スループットを向上させるには、これを高速に転送する必要がある。そこで、イメージデータの転送は専用ハードウェア回路(DMAコントローラ13)で行う。
【0024】
(2)ソフトウェアで制御する処理
a)高速処理が必要とされない処理、及びフレキシブルに制御しなければならない処理
印刷エンジンの監視や、ホストインタフェースの制御のうちリアルタイム性が要求されない部分(例えば、ホストへのステータス返信(一般に受信に比べてデータ量が少ない))や、トナー量の計算や印刷枚数のカウントのように頻度の少ない計算や、DMAや印刷の開始命令の発行(これは、受信バッファに蓄積したイメージデータ量を監視して適量時に発行する必要がある)などが、これに当たる。
【0025】
上記の役割分担を処理種類別に述べれば次の通りである。
【0026】
(1)印刷エンジン27の監視
CPU23が、ビデオコントローラ17内のレジスタにコマンドを書き込むことにより、印刷エンジン27に対してコマンドを発行し、そして、ビデオコントローラ17内のレジスタを読み取ることにより、印刷エンジン27から得られたステータスを得る。
【0027】
(2)ホストインタフェースの制御
CPU23がホストインタフェース回路11のレジスタに読み書きを行うことで、ホストインタフェースプロトコルの制御を行う。応答のリアルタイム性が要求される部分は、ハードウェアたるホストインタフェース回路11が受け持つ。
【0028】
(3)ホスト1からのデータ受信
コマンドデータについては、ホストインタフェース回路11の入力FIFOバッファに蓄えられたコマンドデータをCPU23が直接読み込む。イメージデータについては、DMAコントローラ13経由で、ホストインタフェース回路11の入力FIFOバッファから直接DRAM21の受信バッファにイメージデータをDMA転送する。その際、CPU23は、DMAコントローラ13のレジスタに対し、受信DMA31のスタートアドレス(DRAM21のどのアドレスからデータ書き込みを開始するか)と、DMA転送回数(何バイトDMAを実行するか)をセットした後、受信DMA31の開始命令をDMAコントローラ13に発行することで、受信DMA31が開始される。
【0029】
(4)ホスト1へのステータス返信
CPU23は、ホスト1からステータスリクエストコマンドを受信すると、プリンタ3内の各モジュールの状態を調べ、或いは、そのリクエストコマンドとは非同期で予め調べておいたステータスをDRAM21のワークエリアから読み出して、ホストインタフェース回路11の出力FIFOバッファにセットする。尚、ステータス量が多い場合には、DMAコントローラ13経由でDRAM21から直接出力FIFOバッファへステータスをDMA転送するようにしてもよい(一般にステータスは受信するイメージデータに比べデータ量が少ないのでDMA転送は必要ではない。)。
【0030】
(5)印刷動作
CPU23は、DRAM21にイメージデータが所定量蓄えられたと判断したら、印刷動作を開始する。すなわち、CPU23が、DMAコントローラ13に対し、転送DMA33のスタートアドレス(DRAM21のどのアドレスからデータ読み出しを開始するから)と、DMA転送回数(何バイトDMAを実行するか)をセットした後、転送DMA33の開始命令をDMAコントローラ13に発行することで、転送DMA33が開始される。転送DMA33の開始直後に、CPU23は、ビデオコントローラ17に対して印刷開始命令を発行し、印刷エンジン27をスタートさせる。転送DMA33が行われている間、圧縮されたイメージデータはデータ伸張回路15にて伸張され、ビデオコントローラ17にてタイミング制御されて印刷エンジン27へ送られる。途中、後処理回路19にてエッジスムージング、階調補正などの処理が施される。
【0031】
(6)履歴管理
CPU23は、印刷枚数をカウントする。また、後処理回路19が1ページ印刷したときのイメージドット数をカウントしているので、CPU23は、そのイメージドット数値を後処理回路19から読み込んでトナー消費量を算出する。求めた印刷枚数とトナー消費量は、EEPROM29に保存することで、プリンタ3の電源がOFFになっても保持される。
【0032】
図2は、ホスト1がプリンタ3へイメージデータ送るときに各ページ毎に行う制御のフローを示す。
【0033】
ホスト1は、まず、印刷しようとするページが1ページ目か2ページ目以降かを判断し(S1)、1ページ目であれば、プリンタ3からプリンタ情報(通信モード(プリンタ3とホスト1との間のネゴシエーションで成立した通信モードであって、例えばパラレル通信の場合はCompatibilityやECPなど)、DRAMサイズなどであり、これらのプリンタ情報が準備できていない場合には準備中を示す情報)を取得し(S2)、これに基づきプリンタ3の制限事項を把握する。2ページ目以降は、プリンタ情報の取得は行なわない。また、1ページ目のときだけでなく、紙ジャム等の印字エラーが発生した後もプリンタ情報を取得し、プリンタ3がエラーから復帰しているか否かをチェックする。
【0034】
プリンタ3からプリンタ情報を受けると、ホスト1は、そのプリンタ情報が有効か無効か、つまり上述した通信モードやDRAMサイズなどを示した有効なプリンタ情報であるか、準備中を示す無効なプリンタ情報かを判断し(S3)、情報が準備中(無効)の場合は、ホスト1は有効なプリンタ情報を受けるまでプリンタ情報をプリンタ3から繰り返しリードする。なお、プリンタ情報が準備中(無効)になる原因は、プリンタ3がプリンタイニシャライズ中か、又はエラーからの復帰中であることである。
【0035】
有効なプリンタ情報を取得すると、ホスト1は、プリンタ3の通信モードやRAMサイズを基にイメージデータの送信モード(解像度など)を決定する。さらに、ホスト1は、プリンタ3との通信で用いるポートの種類(パラレル、USB、イーサネットなど)、又はプリンタ3から通知された通信モード(例えば、パラレルの場合のCompatibility、ECPなど)に応じて、プリンタ3がビデオ転送を開始するタイミング(1ページ中の何バンド目のデータを受信したらビデオ転送を開始するか)を決定する。このビデオ転送開始タイミングは、次のような考えに基づいて決定する。すなわち、ホスト1からプリンタ3へのデータ送信速度をx〔バイト/秒〕、プリンタ3内でのビデオ転送の速度をy〔バイト/秒〕、ホスト3から送るイメージデータの圧縮率をα、1ページの全イメージデータ数をT〔バイト〕、受信バッファのサイズをM〔バイト〕、ビデオ転送を開始する時点で受信バッファに蓄えられているデータサイズをP〔バイト〕とする。通常、データ受信速度xよりもビデオ転送速度yの方が高速であり、この高速のビデオ転送の転送DMAアドレス(図6のTAD)が低速のデータ受信の受信DMAアドレス(図6のRAD)に追いついてしまうと、そこでビデオ転送がストップしてしまい印刷失敗となる。これを「アンダーランエラー」という。しかし、
P≦M …(1)
(α×T−P)/x<T/y …(2)
を満足するようにPを設定しておけば、ビデオ転送の転送DMAアドレスがデータ受信の受信DMAアドレスに追いつかないうちに1ページ分のデータ受信が完了するので、アンダーランエラーは生じない。(1)、(2)式より、
M≧P>T(α−x/y) …(3)
が導かれる。この(3)式を満たすようにPを設定すればアンダーランエラーは生じない。そこで、(3)式を満たす最小のP〔バイト〕を圧縮バンドサイズ〔バイト〕で割って、その商に1を加えたバンド数を、ビデオ転送の開始タイミング(つまり、このバンド数分のデータが受信バッファに受信された時点でビデオ転送を開始する)として設定する。その際、通信ポートの種類や通信モードによって上記データ送信速度xが異なるから、それに応じて上記ビデオ転送開始タイミングとしてのバンド数(以下、「指定バンド数」)を変える。例えば、パラレルポートのように常に帯域を確保できる場合はフライングスタート(つまり、1ページの全バンド数を受信する前に印刷開始)を行うよう、また、ネットワーク通信のように帯域が安定していないポートの場合は1ページの全バンド数を受信してから印刷を開始するよう、指定バンド数(ビデオ転送開始タイミング)を設定する。また、パラレルポートの中でも、ECPのように送信速度xの速いモードについては、開始タイミングを早くし(指定バンド数を少なくし)、Compatibilityのように送信速度xの遅いモードについては、開始タイミングを遅く(指定バンド数を多く)設定する。
【0036】
このようにイメージデータの解像度や、ビデオ転送開始タイミング(指定バンド数)を決定した上で、ホスト1は、印刷しようとするイメージデータに関するホスト情報(上記決定したイメージデータの解像度、1ページのトータルバンド数、及び上記決定した指定バンド数など)をプリンタ3へ送信する(S4)。プリンタ3は、このホスト情報を基に、レジスタの設定やバッファクリアなどのページ設定を行う。
【0037】
次に、ホスト1は、プリンタ3にステータス要求を送って、プリンタ3からプリンタステータス(エンジンの状態、受信バッファの空きサイズ、1ページの印刷が成功したか、エラーが発生中か、など)を受信する(S5)。プリンタ3から送られてくるプリンタステータスには、例えば、図3に示すように、「バッファ空きサイズ」、「プリンタレディ」フラグ、「印刷成功」フラグ、「紙ジャム」フラグ、「アンダーランエラー」フラグなどが含まれている。ここで、「バッファ空きサイズ」とは、受信バッファの現在の空きサイズである。「プリンタレディ」フラグは、これが1にセットされて(つまり、立って)いれば、印刷エンジン27が印刷動作可能であり(つまり、印刷エンジン27がデータ受信可能で、印刷不能状態(紙無し、紙ジャム、カバーオープン、エンジン異常など)ではなく、かつ、定着器の温度が規定値である)、かつ、プリンタ3へのページ設定が終了していることを意味する。「印刷成功」フラグは、これが1にセットされて(つまり、立って)いれば、1ページの印刷が完了したから当該ページのデータを削除してよいことを意味する。「紙ジャム」フラグは、これが1にセットされていれば、紙ジャムが発生していることを示する。プリンタ3内では、ジャムした用紙が除去されれば、紙ジャムフラグは解消される。「アンダーランエラー」フラグは、これが1にセットされて(つまり、立って)いれば、アンダーランエラーが発生したことを意味する。プリンタ3内では、プリンタステータスが読まれると、アンダーランエラーフラグが解消される。
【0038】
再び図2を参照する。プリンタ3は1ページの印刷が終了する度に、印刷の成功/失敗を示すフラグを立てる(成功の場合は印刷成功フラグを、失敗の場合は、その原因である紙ジャム又はアンダーランエラーのフラグを立てる)ようになっており、上記プリンタステータスはその結果を示している。ホスト1は、プリンタ3から取得したステータスに含まれる印刷成功やエラーのフラグを見て(S6)、「印刷成功」(つまり、印刷成功フラグが1)であれば(S6)、その成功したページのイメージデータ(つまり、未だ残っているイメージデータの中で最先のページのデータ)をホスト1内から削除し(S7)、「印刷失敗」(紙ジャム又はアンダーランエラーフラグが1)であれば(S9)、ステップS8のエラー処理に進んで印刷失敗したページから(つまり、まだ削除されていない送信済みの最先のページから)イメージデータを再送信する。再送信する場合、印刷失敗の原因が紙ジャムであった場合には、失敗したページから単純に前回と同じイメージデータを再送信する。一方、印刷失敗の原因がアンダーランエラーであった場合には、最初のエラー処理(S8)では、指定バンド数として1ページ分の全バンド数をプリンタ3に再指定してから(つまり、1ページの全データを受信し終わってからビデオ転送を開始するようプリンタ3に指定してから)、失敗したページから前回と同じイメージデータを送信する。そして、このように開始タイミングを1ページの全データ受信後に設定しても再びアンダーランエラーが生じたならば、ホスト1はエラー処理(S8)で、失敗したページからイメージデータの解像度をもっと低い値に変換して(例えば、600dpiから300dpiに落とし)、その解像度の低いイメージデータを再送信する。解像度を落とすことによってデータサイズが小さくなるので、再送信ではアンダーランエラーが生じにくくなる。尚、データ再送信の際、ホスト1が上記のように自動的に再送信を行っても良いが、別法として、エラーが発生したことをユーザに知らせて、再送するか否か及び解像度を落とすか否かを、ユーザに選択させてもよい。
【0039】
ホスト1は、受信したプリンタステータスから次の▲1▼〜▲3▼の条件が満たされているかチェックし、全て満たされていれば、プリンタ3が1バンド以上のイメージデータを受信可能であると判断する(S10)。
【0040】
▲1▼プリンタレディフラグが1である。すなわち、印刷エンジン27が印刷動作可能であり、かつ、プリンタ3のページ設定が完了している。
【0041】
▲2▼受信バッファに、これから送信しようとするバンドデータの1バンド分(ヘッダサイズも含む)以上の空きがある。
【0042】
▲3▼エラーが発生していない。
【0043】
ステップS10でプリンタ3が1バンド以上を受信可能と判断した場合にのみ、ホスト1はバンドヘッダ(圧縮データであるか否か(圧縮ON/OFF)、バンド圧縮サイズ(圧縮OFFの場合は元のバンドサイズ))と1バンドのイメージデータをプリンタ3へ送信する(S11)。これにより、オーバーランエラー(受信バッファが満杯になり後続のデータが書き込めなくなるエラー)が回避される。尚、ホスト1は、バンドイメージデータを送信する前に、そのバンドデータが圧縮によってサイズが縮小する否か判断し、縮小する場合にはそのバンドデータを圧縮し、縮小しない場合は圧縮しない。プリンタ3は、ホスト1からのバンドイメージデータをDRAM21の受信バッファに蓄え、そして、受信バッファ43内に、前述のステップS4でホスト1から指示された指定バンド数分のバンドデータが蓄えられた時点、又は受信バッファ43内の空きサイズが1バンドデータ分未満になった時点でビデオ転送をスタートする。指定バンド数分のデータが蓄えられたらビデオ転送をスタートする。
【0044】
次にホスト1は、1ページの全てのバンドデータを送信し終えたかチェックし(S12)、送信し終えてなければ、次のバンドデータをプリンタ3へ送れるか否かを判断するために、受信バッファの空きサイズNを計算する(S13)。すなわち、前回(前のバンド送信直前)の受信バッファ空きサイズをM、前のバンドヘッダサイズをH、前のバンドサイズをDとすると、
N=M−(H+D)
により空きサイズNを求める。
【0045】
そして、計算したバッファ空きサイズNが、これから送信しようとするバンドデータの1バンド分(ヘッダサイズも含む)以上であれば(S14)、続けてそのバンドデータを送信する(S11)。このようにして、ホスト1は、送信前にプリンタステータスをチェックしてプリンタ3が1バンド以上のデータを受信できることを確認すると、後は、プリンタステータスをチェックすることなく、計算上でバッファ空きサイズNが1バンド未満になるまで、続けて後続のバンドデータを送りつづける、つまり、計算でプリンタ3が受信可能と判断されるバンド数分のイメージデータを一気に連続してプリンタ3に送信する。そして、空きサイズNが1バンド未満になると、ステップS5へ戻り、受信バッファに1バンド以上のサイズの空きが生じてプリンタ3が1バンド以上受信可能になるまで、プリンタステータスを受信する。これにより、オーバーランエラーを生じることなく、かつ、プリンタステータスをいちいちチェックする面倒もなしに、高速に印刷データをプリンタ3へ送ることができる。
【0046】
図4は、プリンタ3がホスト1からデータを受信するときの動作フローを示す。
【0047】
まず、ホスト1がプリンタ情報を要求してきた場合(S21でYES)、プリンタ3のCPU23が、通信モード(例えば、パラレル通信の場合のECPやCompatibility)やDRAMサイズなどのプリンタ情報をホスト1に送信する(S23)。また、プリンタ情報が準備できていない場合(S22でNO)(具体的には、プリンタイニシャライズ中、又はエラーからの復帰中である場合)には、準備中であることをホスト1に知らせる(S24)。
【0048】
プリンタ情報をホスト1に送信した後、プリンタ3のCPU23は、ホスト1からイメージデータに関するホスト情報(解像度300dpi/600dpi、トータルバンド数、指定バンド数(ビデオ転送開始タイミング))を受信し、その情報を基にデータ受信に関するレジスタ設定、バッファクリアなどのページ設定を行う(S25)。
【0049】
次に、ホスト1からステータス要求があると(S26)、プリンタ3はステータス(受信バッファ空きサイズ、プリンタレディ、印刷成功、エラー)をホスト1に返信する(S31〜SS36)。ステータス返信の際、プリンタ3は、成功枚数カウンタ(印刷成功したページであって、その印刷成功をホスト1に未だ通知していないページが何ページあるか示すカウンタ)の値を調べ(S31)、その値が1以上であれば、印刷成功フラグを1にセットしたステータスを返信し(S35)、成功枚数カウンタの値を1だけデクリメントして(S36)から、ステップS26へ戻る。一方、成功枚数カウンタの値が0の場合、印刷エラー(紙ジャム又はアンダーランエラー)が発生していれば(S32)、その印刷エラーのフラグを1にセットしたステータスを返信し(S34)、印刷エラーが発生してなければ、どの印刷成功フラグにもエラーのフラグにも1がセットされていないステータスを返信して(S33)、ステップS26へ戻る。いずれの場合でも、ステータスには、そのときの受信バッファの空きサイズがセットされている。空きサイズは、例えば、DMAコントローラ13の転送DMAアドレスと受信DMAアドレスから計算する。前述したように、ホスト1は、このステータス情報を基にプリンタ1が1バンド分のデータを受信できるか判断し、受信できると判断すると、バンドデータをプリンタ3に送る。
【0050】
ホスト1からバンドデータの送信があると(S27)、プリンタ3はそのバンドデータを受信する(S28)。前述のように、データ送信はバンド単位で行われ、1バンドのデータはバンドヘッダ(圧縮ON/OFF、バンド圧縮サイズ(圧縮OFFのときはバンドサイズ)のバンド情報)とバンドのイメージデータとから構成される。1バンド分のデータを受信する都度、受信バッファの空きサイズを計算し直してDRAMにセットして(S29)ホストから都度ステータス要求に応えられるようにする。また、このバンドデータ受信の過程、(フローチャートには図示してないが)ホスト1から指定された指定バンド数分のデータが受信バッファに蓄えられると、又は、受信バッファオの空きサイズが1バンド未満になると、プリンタ3はDMAコントローラ13にビデオ転送を許可する。ビデオ転送はデータ受信と非同期に実行される。ビデオ転送が開始されると、DMAコントローラ13が受信バッファからイメージデータを読み出してデータ伸張回路15へ転送し、データ伸張回路15、ビデオコントローラ17及び後処理回路19もそれぞれの処理を開始して、印刷エンジン27が印刷を開始する。
【0051】
上記のように指定バンド数が受信バッファに蓄積された時点でビデオ転送を開始することにより、アンダーランエラーが回避できる。それに加え、ビデオ転送の開始を必要最小限だけ遅らせるに過ぎないので、印刷速度も高い。なお、ページの最初でビデオ転送開始タイミング(上記指定バンド数)を決めても、ページの途中で圧縮率が低下したり、ホスト1からのデータ受信速度が低下したりすると、アンダーランエラーが発生する可能性が出てくる。この場合、バッファサイズより大きく確保するか、イメージの解像度を落として1ページの全データサイズTを小さくする必要がある。特に解像度変換の効果は大きく、例えば、600dpiから300dpiに解像度を落とすとデータサイズTは4分の1になる。従って、一旦アンダーランエラーが生じた後のデータ再送信の際に解像度変換を行うことは(図2、ステップS8)、アンダーランエラーを再び生じさせなくする効果が大きい。解像度変換により印刷画質は若干悪化するが、利用者にとって、印刷できないよりは好ましい。
【0052】
図5は、ビデオ転送に関してプリンタ3のCPU23が行う制御フローである。
【0053】
プリンタ3のCPU23は、ビデオ転送が可能であるか(すなわち、イメージデータがホスト1から指示された指定バンド数以上受信済みか、又は受信バッファの空きサイズが1バンドのデータサイズ未満か)をチェックし(S41)、ビデオ転送が可能であれば、イメージデータに関するホスト情報(解像度、トータルバンド数など)を基にビデオ転送に関するレジスタ設定を行う(S42)。次に、圧縮ON/OFF、圧縮バンドサイズ(圧縮OFFの場合はバンドサイズ)などのバンド情報を基にDMAコントローラ13の転送DMAに関するパラメータ(転送DMAドレスの開始ポイント、バンドデータのバイト数など)及びデータ伸張回路15のパラメータ(伸張ON/OFFなど)を設定する。転送DMAアドレスの開始ポイントを設定する際、現在実行中(又は、これから開始する)の受信DMAアドレスの開始ポイントと、設定しようとしている転送DMAアドレスの開始ポイントとを比較し(S43)、両者が一致する場合はアンダーランエラーと判断する。
【0054】
アンダーランエラーが発生した場合、アンダーランエラーフラグをDRAM21のワークエリアにセットする(S44)。このアンダーランエラーは、前述したようにホスト1がプリンタステータスを読み出すことによって(図2、S5)、ホスト1に通知される(アンダーランエラーの発生とホストへの通知は同期していない)。ホスト1がプリンタのステータスを読み出した時点で、アンダーランエラーフラグは解除される。前述したように、ホスト1は、アンダーランエラーを検知したら、ビデオ転送の開始タイミングを「1ページ受信完了後」に変更し、又はイメージデータの解像度を600dpiから300dpiに落として、失敗したバンドからデータを再送信する。
【0055】
アンダーランエラーが発生していない場合、プリンタ3のCPU23は、DMAコントローラ13に1バンドの転送DMAを許可し(S45)、それによりビデオ転送と印刷が開始される。1バンドの転送DMAが終了する都度、受信バッファの空きサイズを計算してDRAM21のワークエリアにセットし(S46)、また、印刷エンジン27の状態をチェックし、紙ジャムが発生していたら紙ジャムエラーフラグを1にセットしてDRAM21のワークエリアにセットする(S48)。前述したように、ホスト1は紙ジャムを検知したら、パラメータを変更することなくデータを再送する。アンダーランエラーや紙ジャムが生じなければ、1ページの全バンドについて、各バンドの転送DMA設定とビデオ転送とを繰り返す(S49)。
【0056】
1ページのビデオ転送が完了したら(S49でYES)、成功枚数カウンタを1だけインクリメントする(S50)。そして、制御はステップS41へ戻り、次のページのビデオ転送が同様の手順で開始される。イメージデータの圧縮率が高い、もしくは受信バッファサイズが十分に大きい場合は、複数ページのイメージデータが受信バッファに蓄えられ、印刷エンジン27の最大スループットで連続印刷される。
【0057】
図6は、DRAM21の構成を示す。
【0058】
既に説明したように、DRAM21内にはワークエリア41と受信バッファ43が確保されている。ワークエリア31はヒープメモリ及びスタックメモリとして使用される。受信バッファ43はリングバッファとして利用される。図示の例では、DRAM21の全エリアのうちバッファ先頭アドレスBUFTOPからバッファ最終アドレスBUFBTMまでが受信バッファ43である。受信DMAでは、そのアドレスポイント(受信DMAアドレス)RADを、バッファ先頭アドレスBUFTOPからバッファ最終アドレスBUFBTMへ向かう方向へ進めていき、バッファ最終アドレスBUFBTMに達するとバッファ先頭アドレスBUFTOPに戻る。同様に、転送DMAでも、そのアドレスポイント(転送DMAアドレス)TADを、バッファ先頭アドレスBUFTOPからバッファ最終アドレスBUFBTMへ向かう方向へ進めていき、バッファ最終アドレスBUFBTMに達するとバッファ先頭アドレスBUFTOPに戻る。
【0059】
図示の例は、受信バッファ43にBページのデータ53を蓄積中であり、且つBページの前のAページのデータ51のビデオ転送を開始しようとしている状態を示している。各ページのデータ51、53には、各ページイメージに関するホスト情報(解像度、トータルバンド数など)、各バンドの情報(圧縮ON/OFF、圧縮バンドサイズなど)及び各バンドのイメージデータなどが含まれている。
【0060】
この実施形態では、前述したように、プリンタ3はステータス返信時に受信バッファ43の空きサイズを返信する。ホスト1は、プリンタ3から受信バッファ43の空きサイズを取得し、それがこれから送ろうとするバンドのデータサイズより大きければ、バンドデータの送信を開始し、そして、1バンドのデータを送信する都度に残りの空きサイズを計算することで、プリンタ3から取得した空きサイズに収容できる限りのバンド数のバンドデータを連続してプリンタ3へ送信する。計算した受信バッファの空きサイズがこれから送ろうとする1バンドのデータサイズより小さくなると、ホスト1は、バンドデータの送信を一時止め、プリンタ3のステータスをチェックし続け、プリンタ3から通知される受信バッファの空きサイズがこれから送ろうとする1バンドのデータサイズより再び大きくなると、後続のバンドデータの送信を再開する。
【0061】
以下に、プリンタ3側で受信バッファの空きサイズを把握する方法を説明する。
【0062】
図7は、受信バッファ43の2つの状態を示している。つまり、図7(A)は「受信DMAアドレスRAD>転送DMAアドレスTAD」の状態、図7(B)は「受信DMAアドレスRAD<転送DMAアドレスTAD」の状態を示している。ハッチングで示した領域に受信データが蓄積されており、「空」と記した領域が空き領域である。
【0063】
図7(A)に示す「受信DMAアドレスRAD>転送DMAアドレスTAD」のときには、
空き容量=(TAD−BUFTOP)+(BUFBTM−RAD)
であり、図7(B)に示す「受信DMAアドレスRAD<転送DMAアドレスTAD」のときには、
空き容量=TAD−RAD
である。
【0064】
図8は、この空き容量の計算に用いられる回路(又はソフトの処理流れ)を示す。
【0065】
図8において、TADSTは転送DMAアドレスのスタートポイントであり、RADSTは受信DMAアドレスのスタートポイントであり、既に述べたように、これらは各バンドの転送DMA及び各バンドの受信DMAをそれぞれ開始するときにCPU23によってそれぞれ設定される。TADCNTは転送DMAを行おうとする受信バッファのアドレスを示すカウンタであり、RADCNTは受信DMAを行おうとする受信バッファのアドレスを示すカウンタである。
【0066】
転送DMAアドレスカウンタ61は、各バンドの転送DMAが実行される間、転送DMAスタートアドレスTADSTを出力値の初期値として、その出力値を、バッファ先頭アドレスBUFTOPから受信バッファ最終アドレスBUFBTMまでリング状に循環するるように1づつ進めていく。この転送DMAアドレスカウンタ61の出力値が転送DMAアドレスTADである。
【0067】
同様に、受信DMAアドレスカウンタ63は、各バンドの受信DMAが実行される間、受信DMAスタートアドレスRADSTを出力値の初期値として、その出力値を、バッファ先頭アドレスBUFTOPから受信バッファ最終アドレスBUFBTMまでリング状に循環するように1づつ進めていく。この受信DMAアドレスカウンタ61の出力値が受信DMAアドレスRADである。
【0068】
比較器65が、転送DMAアドレスTADと受信DMAアドレスRADを比較して、いずれが大きいかを示すアドレス比較フラグADCMPRをセットする。減算器67、69、71が、「TAD−BUFTOP=TSUBTP」、「TAD−RAD=TSUBR」、「BUFBTM−RAD=BTSUBR」をそれぞれ計算する。
【0069】
CPU23は、アドレス比較フラグADCMPRを見て、「受信DMAアドレスRAD>転送DMAアドレスTAD」のときには、
空き容量=TSUBTP+BTSUBR
とし、「受信DMAアドレスRAD<転送DMAアドレスTAD」のときには、
空き容量=TSUBR
とする。
【0070】
以上説明した実施形態によれば、ホスト1は、プリンタ3の受信バッファの空きサイズをプリンタ3から取得した後、プリンタ3が受信可能なバンド数分のデータを一気に(すなわち、途中でプリンタ3のステータスを読むことなく)プリンタ3へ送る。これにより、ホスト1がプリンタ3のステータスを取得する頻度が減り、プリンタ3のステータスを読むことで生じるオーバヘッドが小さくなるため、受信速度が向上し、ビデオ転送開始を早めることができる。ホスト1がプリンタステータスを取得する頻度が減ることにより、ステータス取得と次のステータス取得とのインターバルが長くなる。このインターバルの間に複数ページの印刷が完了する場合があるが、プリンタ3は1ページの印刷が完了する都度に成功枚数カウンタをインクリメントし、成功枚数カウンタが1以上である限りホスト1に印刷成功のステータスを通知し、そして、ホスト1が印刷成功のステータスを受信したら成功枚数カウンタをデクリメントすることで、印刷成功したページ数を取りこぼしなくホスト1に伝える。ホスト1は、印刷成功のステータスを受信すると、送信済みのページのデータを先のページから順番に削除する。また、ホスト1は、印刷失敗のステータスを受信すると、まだ削除されていない送信済みのデータのトップからデータをプリンタ3へ再送する。以上により、ホスト1からプリンタ3へのステータス要求を必要最小限になるのでホストからのデータ送信速度が高まりプリンタのスループットが向上し、また、ホスト1での印刷完了したデータの破棄や印刷失敗したデータの再送なども適切に行うことができる。
【0071】
以上、本発明の一実施形態を説明したが、これらの実施形態はあくまで本発明の説明のための例示であり、本発明をこれら実施形態にのみ限定する趣旨ではない。従って、本発明は、上記実施形態以外の様々な形態でも実施することができるものである。
【図面の簡単な説明】
【図1】本発明の一実施形態の構成を示すブロック図。
【図2】ホスト1がプリンタ3へイメージデータ送るときときに各ページ毎に行う制御のフローチャート。
【図3】プリンタ3からホスト1に送られてくるプリンタステータスのデータフォーマットを示す図。
【図4】プリンタ3がホスト1からデータを受信するときのプリンタCPU23の制御のフローチャート。
【図5】ビデオ転送の制御のフローチャート。
【図6】DRAM21のメモリマップ。
【図7】受信バッファ43の2つの状態を示す図。
【図8】空きバッファ容量の計算に用いられる回路(又はソフト)の構成図。
【符号の説明】
1 ホスト
3 プリンタ
13 DMAコントローラ
21 DRAM
23 CPU
43 受信バッファ
Claims (15)
- 印刷データを生成するホスト装置と、
受信バッファを有し、前記ホスト装置から受信した前記印刷データを前記受信バッファに一時蓄積した後、前記受信バッファから前記印刷データを読み出して印刷を行うプリンタと、
を備え、
前記プリンタは、
前記受信バッファの空きサイズを調べる空きサイズ調査手段と、
前記ホスト装置からステータス要求を受けると、前記調べた空きサイズを示す情報を含んだステータスを前記ホスト装置に返信する返信するステータス通知手段を有し、
前記空きサイズ調査手段によって前記受信バッファに所定量のデータの蓄積が行われていることが検知されたとき、前記所定量のデータの蓄積動作と並行して前記受信バッファからのデータ読み出しが開始されるように構成されており、
前記ホスト装置は、
前記プリンタに前記ステータス要求を発するステータス要求手段と、
前記プリンタが前記ステータ要求に応答して返信した前記ステータスに含まれる前記空きサイズが所定の条件を満たしていれば、前記空きサイズで受信できる量の印刷データを連続的に前記プリンタへ送信するデータ送信手段と、
を有し、
前記ステータス要求手段は、前記データ送信手段が前記空きサイズで受信できる量の印刷データを連続的に送り終わった後に、再び前記ステータス要求を発するように構成されたプリントシステム。 - 前記ホスト装置の前記データ送信手段は、前記プリンタから取得した前記空きサイズが、これから送ろうとする印刷データの1バンド分のサイズ以上であれば、前記空きサイズで受信できるバンド数分の印刷データを連続的に前記プリンタに送り、
前記ホスト装置の前記ステータス要求手段は、前記データ送信手段が前記空きサイズで受信できるバンド数の印刷データが送り終わった後に、再び前記ステータス要求を発するように構成された請求項1記載のプリントシステム。 - 前記ホスト装置の前記データ送信手段は、前記印刷データを連続的に送っている間、前記プリンタから取得した空きサイズと、送り済みの印刷データの量とから、前記受信バッファの残りの空きサイズを計算し、この計算した残りの空きサイズが前記所定条件を満たさなくなるまで、連続的に前記印刷データを前記プリンタに送信する請求項1記載のプリントシステム。
- 前記プリンタは、
印刷が成功したがその印刷成功を未だ前記ホスト装置に通知していないページ数を示す成功枚数カウンタを更に有し、
前記プリンタのステータス通知手段は、前記ホスト装置から前記ステータス要求を受けたとき、前記成功枚数カウンタが1以上のページ数を示していたならば、印刷成功を示す情報を更に含んだ前記ステータスを前記ホスト装置に返信し、
前記ホスト装置は、
前記プリンタから受信した前記ステータスに前記印刷成功を示す情報が含まれていれば、未だ削除していない送信済みのデータの中で最先のページのデータを削除するデータ削除手段を更に有する請求項1記載のプリントシステム。 - 前記プリンタは、
紙ジャム及びアンダーランエラーの発生を検知するエラー検知手段を更に有し、
前記プリンタのステータス通知手段は、前記ホスト装置から前記ステータス要求を受けたとき、前記エラー検知手段により前記紙ジャム又は前記アンダーランエラーが検知されていたならば、前記紙ジャム又は前記アンダーランエラーを示す情報を更に含んだ前記ステータスを前記ホスト装置に返信し、
前記ホスト装置は、
前記プリンタから受信した前記ステータスに前記紙ジャム又は前記アンダーランエラーを示す情報が含まれていれば、送信済みのデータを前記プリンタに再送するエラー処理手段を更に有する請求項1記載のプリントシステム。 - 前記ホスト装置のエラー処理手段は、
前記ステータスに前記アンダーランエラーを示す情報が含まれていた場合、前記プリンタに対して前回より印刷開始のタイミングを遅らせるよう指示して前記送信済みのデータを再送するか、又は、イメージデータの解像度を前回より落として前記送信済みのデータを再送する請求項1記載のプリントシステム。 - 印刷データを生成するホスト装置と、受信バッファを有し、前記ホスト装置から受信した前記印刷データを前記受信バッファに一時蓄積した後、前記受信バッファから前記印刷データを読み出して印刷を行うプリンタとを備えたプリントシステムの動作方法において、
前記ホスト装置が前記プリンタにステータス要求を発するステップと、
前記プリンタが、前記ステータス要求に応答して、前記受信バッファの空きサイズを示す情報を含んだステータスを前記ホスト装置に返信するステップと、
前記プリンタにおいて、前記受信バッファに所定量のデータの蓄積が行われていることが検知されたとき、前記所定量のデータの蓄積動作と並行して前記受信バッファからのデータ読み出しが開始されるステップと、
前記ホスト装置が、前記プリンタから返信された前記ステータスに含まれる前記空きサイズが所定の条件を満たしていれば、前記空きサイズで受信できる量の印刷データを連続的に前記プリンタへ送信するステップと、
前記ホスト装置が、前記空きサイズで受信できる量の印刷データを連続的に送り終わった後に、再び前記ステータス要求を発するステップと、
を有するプリントシステムの動作方法。 - ステータス要求に応答して受信バッファの空きサイズを示す情報を含んだステータスをホスト装置へ返信する機能を持ったプリンタに対して、印刷データを送信する前記ホスト装置において、
前記受信バッファに所定量のデータの蓄積が行われていることが検知されたとき、前記所定量のデータの蓄積動作と並行して前記受信バッファからのデータ読み出しを開始する前記プリンタに前記ステータス要求を発するステータス要求手段と、
前記ステータス要求に応答して前記プリンタが返信した前記ステータスに含まれる前記空きサイズが所定の条件を満たしていれば、前記空きサイズで受信できる量の印刷データを連続的に前記プリンタへ送信するデータ送信手段と、
を備え、
前記ステータス要求手段は、前記データ送信手段が前記空きサイズで受信できる量の印刷データを連続的に送り終わった後に、再び前記ステータス要求を発するように構成されたホスト装置。 - 前記データ送信手段は、前記プリンタから取得した前記空きサイズが、これから送ろうとする印刷データの1バンド分のサイズ以上であれば、前記空きサイズで受信できるバンド数分の印刷データを連続的に前記プリンタに送り、
前記ステータス要求手段は、前記データ送信手段が前記空きサイズで受信できるバンド数の印刷データが送り終わった後に、再び前記ステータス要求を発するように構成された請求項8記載のホスト装置。 - 前記データ送信手段は、前記印刷データを連続的に送っている間、前記プリンタから取得した空きサイズと、送り済みの印刷データの量とから、前記受信バッファの残りの空きサイズを計算し、この計算した残りの空きサイズが前記所定条件を満たさなくなるまで、連続的に前記印刷データを前記プリンタに送信する請求項8記載のホスト装置。
- 前記プリンタにて印刷が成功したがその印刷成功を未だ前記ホスト装置に通知していないページが1ページ以上あるときには、前記プリンタからの前記ステータスには印刷成功を示す情報が含まれており、
前記ホスト装置は、
前記プリンタから受信した前記ステータスに前記印刷成功を示す情報が含まれていれば、未だ削除していない送信済みのデータの中で最先のページのデータを削除するデータ削除手段を更に有する請求項8記載のホスト装置。 - 前記プリンタにて紙ジャム又はアンダーランエラーが発生した場合、前記プリンタからの前記ステータスには前記紙ジャム又は前記アンダーランエラーを示す情報が含まれていると共に、前記紙ジャム又は前記アンダーランエラーを示す情報を検知するエラー検知手段を更に有し、
前記ホスト装置は、
前記プリンタから受信した前記ステータスに前記紙ジャム又は前記アンダーランエラーを示す情報が含まれていれば、送信済みのデータを前記プリンタに再送するエラー処理手段を更に有する請求項8記載のホスト装置。 - 前記エラー処理手段は、
前記ステータスに前記アンダーランエラーを示す情報が含まれていた場合、前記プリンタに対して前回より印刷開始のタイミングを遅らせるよう指示して前記送信済みのデータを再送するか、又は、イメージデータの解像度を前回より落として前記送信済みのデータを再送する請求項12記載のホスト装置。 - ステータス要求に応答して受信バッファの空きサイズを示す情報を含んだステータスをホスト装置へ返信する機能を持ったプリンタに対して、印刷データを送信する前記ホスト装置の動作方法において、
前記受信バッファに所定量のデータの蓄積が行われていることが検知されたとき、前記所定量のデータの蓄積動作と並行して前記受信バッファからのデータ読み出しを開始する前記プリンタに前記ステータス要求を発するステップと、
前記ステータス要求に応答して前記プリンタが返信した前記ステータスに含まれる前記空きサイズが所定の条件を満たしていれば、前記空きサイズで受信できる量の印刷データを連続的に前記プリンタへ送信するステップと、
前記空きサイズで受信できる量の印刷データを連続的に送り終わった後に、再び前記ステータス要求を発するステップと、
を有するホスト装置の動作方法。 - ステータス要求に応答して受信バッファの空きサイズを示す情報を含んだステータスをホスト装置へ返信する機能を持ったプリンタに対して、印刷データを送信する前記ホスト装置であって、
前記受信バッファに所定量のデータの蓄積が行われていることが検知されたとき、前記所定量のデータの蓄積動作と並行して前記受信バッファからのデータ読み出しを開始する前記プリンタに前記ステータス要求を発するステータス要求手段と、
前記ステータス要求に応答して前記プリンタが返信した前記ステータスに含まれる前記空きサイズが所定の条件を満たしていれば、前記空きサイズで受信できる量の印刷データを連続的に前記プリンタへ送信するデータ送信手段と、
を備え、
前記ステータス要求手段は、前記データ送信手段が前記空きサイズで受信できる量の印刷データを連続的に送り終わった後に、再び前記ステータス要求を発するように構成されたホスト装置として、
コンピュータを機能させるためのコンピュータプログラムを担持したコンピュータ読取可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09910799A JP3772585B2 (ja) | 1998-09-29 | 1999-04-06 | プリントシステム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10-275074 | 1998-09-29 | ||
JP27507498 | 1998-09-29 | ||
JP09910799A JP3772585B2 (ja) | 1998-09-29 | 1999-04-06 | プリントシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000172456A JP2000172456A (ja) | 2000-06-23 |
JP3772585B2 true JP3772585B2 (ja) | 2006-05-10 |
Family
ID=26440258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09910799A Expired - Fee Related JP3772585B2 (ja) | 1998-09-29 | 1999-04-06 | プリントシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3772585B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4663071B2 (ja) * | 2000-07-25 | 2011-03-30 | 株式会社三共 | 遊技機 |
JP4541581B2 (ja) * | 2001-03-19 | 2010-09-08 | キヤノン株式会社 | 印刷制御装置およびデータ処理方法および記憶媒体 |
JP2004276262A (ja) * | 2003-03-12 | 2004-10-07 | Seiko Epson Corp | 回転印刷システム、回転印刷装置、画像データ処理装置、回転印刷プログラム、回転印刷装置用プログラム及び画像データ処理装置用プログラム、並びに回転印刷方法 |
JP2013069056A (ja) * | 2011-09-21 | 2013-04-18 | Toshiba Corp | 情報処理装置及びメモリ管理方法 |
JP6347161B2 (ja) * | 2014-07-02 | 2018-06-27 | セイコーエプソン株式会社 | 印刷制御装置、印刷制御装置の制御方法および記録媒体 |
JP2017016534A (ja) * | 2015-07-03 | 2017-01-19 | 富士通コンポーネント株式会社 | 情報処理システム、情報処理装置及び外部装置 |
JP7486053B2 (ja) | 2020-07-30 | 2024-05-17 | ブラザー工業株式会社 | 印刷制御プログラム及び印刷装置 |
-
1999
- 1999-04-06 JP JP09910799A patent/JP3772585B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000172456A (ja) | 2000-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6665088B1 (en) | Page printer and page print system | |
AU711167B2 (en) | Method and apparatus for providing print job buffering for a printer on a fast data path | |
US6388760B2 (en) | Host-based printing system and printing control method thereof | |
JP3772585B2 (ja) | プリントシステム | |
JP2000311070A (ja) | 印刷システム及び印刷システムにおける印刷方法 | |
US20060176513A1 (en) | Printer, printer control method, and recording medium | |
US7978357B2 (en) | Printing system and method that uses a universal serial bus (USB) high-speed interrupt out pipe to transfer print data from the host computer to the printer | |
US20050128517A1 (en) | Printing system, control method therefor, and printing method, host apparatus, and printer used therewith | |
US7212303B2 (en) | Print control method for a multifunctional printer including a facsimile feature | |
US7880917B2 (en) | Image forming apparatus and print system | |
JP4085561B2 (ja) | プリンタ | |
JP3034540B2 (ja) | 印刷システム、および、そのエラー回復方法 | |
JP4035969B2 (ja) | 画像生成装置、画像形成装置、印刷制御装置、データ転送方法、データ変換方法、データ転送プログラムおよびデータ変換プログラム | |
JP3367555B2 (ja) | ページプリンタ及びページプリントシステム | |
JP3367556B2 (ja) | ページプリンタ及びページプリントシステム | |
JP2000168174A (ja) | プリンタ | |
JP2000301780A (ja) | プリントシステム | |
JP2001142670A (ja) | プリントシステム、及びプリンタ | |
JP5004322B2 (ja) | データ転送制御方法,装置および画像形成装置 | |
JP2011037027A (ja) | 印刷装置、プリンタシステム、印刷方法 | |
JP4400729B2 (ja) | ホストベースプリンタ、エラーのリカバリ方法 | |
JPH0624100A (ja) | プリンタ制御装置 | |
JP2000259363A (ja) | プリントサーバ、印刷制御方法、印刷制御プログラムを記録した媒体およびネットワークプリントシステム | |
JP2731315B2 (ja) | プリンタ装置 | |
JPH11177539A (ja) | データ通信制御システムおよびデータ通信制御システムのデータ通信方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050224 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050725 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050920 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060206 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090224 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |