(57)【要約】【課題】印刷装置側のみでの制御によって、印刷装置に印刷データを送信する外部装置での印刷データの送信タイムアウトエラーの発生頻度を低減させる。【解決手段】ホストインタフェース部７０２は、受信バッファの空き容量が基準値Ｒ０以下であれば、現在の「データ受信速度」が受信バッファの現在の「データ解放速度」より速いか否かを判別し、データ受信速度が受信バッファのデータ解放速度より速い場合は、受信可能サイズとして、１パケットの最大サイズより小さい固定値Ａを設定する。受信バッファの空き容量が基準値Ｒ０より大きいか、またはデータ受信速度が受信バッファのデータ解放速度より速くない場合は、受信可能サイズとして実際に受信可能なデータサイズを設定する。そして、設定した受信可能サイズの情報を、返送ステータスとして送信元のデータ処理装置１０１に返送する。【選択図】図４
2011116083.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から複数のパケットに分割して送信される印刷データを受信する受信手段と、
前記受信手段により受信された前記印刷データを格納する格納手段と、
前記格納手段に格納された印刷データに基づいて印刷処理を実行する印刷手段と、
前記格納手段の空き容量を確認する確認手段と、
前記確認手段により確認される空き容量が基準値より多い場合は受信可能なデータサイズとして第１のデータサイズを前記外部装置へ通知し、前記確認手段により確認される前記空き容量が前記基準値より少ない場合は受信可能なデータサイズとして前記第１のデータサイズよりデータサイズの小さい第２のデータサイズを前記外部装置へ通知する通知手段と、
を有することを特徴とする印刷装置。
【請求項２】
前記受信された印刷データが前記格納手段に格納される格納速度を計測する第１計測手段と、前記格納手段に一旦格納された印刷データが前記格納手段から解放される解放速度を計測する第２計測手段とを有し、前記通知手段は、前記確認手段により確認される前記空き容量が前記基準値より少なく、且つ、前記第１計測手段により計測された格納速度が前記第２計測手段により計測された解放速度より速い場合は受信可能なデータサイズとして前記第２のデータサイズを前記外部装置へ通知することを特徴とする請求項１記載の印刷装置。
【請求項３】
外部装置から複数のパケットに分割して送信される印刷データを受信する第１の受信手段と、
前記第１の受信手段により受信された前記印刷データを格納する格納手段と、
前記格納手段に格納された印刷データに基づいて印刷処理を実行する印刷手段と、
前記格納手段の空き容量を確認する確認手段と、
前記外部装置からパケットの送信要求を受信する第２の受信手段と、
前記外部装置にパケットの送信をさせるべく、前記第２の受信手段が前記送信要求を受信したことに応じて受信可能なデータサイズを前記外部装置へ通知する通知手段とを有し、
前記通知手段は、前記確認手段により確認される空き容量が第１の基準値より多い場合は前記第２の受信手段が前記送信要求を受信してから第１の所定時間後に前記受信可能なデータサイズを前記外部装置へ通知し、前記確認手段により確認される前記空き容量が前記第１の基準値より少ない場合は前記第２の受信手段が前記送信要求を受信してから前記第１の所定時間より長い第２の所定時間後に前記受信可能なデータサイズを前記外部装置へ通知することを特徴とする印刷装置。
【請求項４】
前記受信された印刷データが前記格納手段に格納される格納速度を計測する第１計測手段と、前記格納手段に一旦格納された印刷データが前記格納手段から解放される解放速度を計測する第２計測手段とを有し、前記通知手段は、前記第１計測手段により計測された格納速度が前記第２計測手段により計測された解放速度より遅い場合は前記受信可能なデータサイズとして第１のデータサイズを前記外部装置へ通知し、前記第１計測手段により計測された格納速度が前記第２計測手段により計測された解放速度より速い場合は、前記受信可能なデータサイズとして前記第１のデータサイズよりデータサイズの小さい第２のデータサイズを前記外部装置へ通知することを特徴とする請求項３記載の印刷装置。
【請求項５】
前記通知手段は、前記確認手段により確認される空き容量が前記第１の基準値以下で且つ前記所定時間が経過した後において、前記確認される前記空き容量が前記第１の基準値より小さい第２の基準値以下で且つ、前記第１計測手段により計測された格納速度が前記第２計測手段により計測された解放速度より速い場合は、前記受信可能なデータサイズとして前記第２のデータサイズを前記外部装置へ通知することを特徴とする請求項４記載の印刷装置。
【請求項６】
外部装置から複数のパケットに分割して送信される印刷データを受信する受信工程と、
前記受信工程により受信された前記印刷データを格納手段に格納する格納工程と、
前記格納手段に格納された印刷データに基づいて印刷処理を実行する印刷工程と、
前記格納手段の空き容量を確認する確認工程と、
前記確認工程により確認される空き容量が基準値より多い場合は受信可能なデータサイズとして第１のデータサイズを前記外部装置へ通知し、前記確認工程により確認される前記空き容量が前記基準値より少ない場合は受信可能なデータサイズとして前記第１のデータサイズよりデータサイズの小さい第２のデータサイズを前記外部装置へ通知する通知工程と、
を有することを特徴とする印刷装置の制御方法。
【請求項７】
外部装置から複数のパケットに分割して送信される印刷データを受信する第１の受信工程と、
前記第１の受信工程により受信された前記印刷データを格納手段に格納する格納工程と、
前記格納手段に格納された印刷データに基づいて印刷処理を実行する印刷工程と、
前記格納手段の空き容量を確認する確認工程と、
前記外部装置からパケットの送信要求を受信する第２の受信工程と、
前記外部装置にパケットの送信をさせるべく、前記第２の受信工程が前記送信要求を受信したことに応じて受信可能なデータサイズを前記外部装置へ通知する通知工程とを有し、
前記通知工程は、前記確認工程により確認される空き容量が基準値より多い場合は前記第２の受信工程が前記送信要求を受信してから第１の所定時間後に前記受信可能なデータサイズを前記外部装置へ通知し、前記確認工程により確認される前記空き容量が前記基準値より少ない場合は前記第２の受信工程が前記送信要求を受信してから前記第１の所定時間より長い第２の所定時間後に前記受信可能なデータサイズを前記外部装置へ通知することを特徴とする印刷装置の制御方法。
【請求項８】
請求項６または７記載の印刷装置の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置において印刷ジョブを受信して印刷処理を行う技術に関する。
【背景技術】
【０００２】
従来、ホストコンピュータとプリンタなどの画像形成装置（印刷装置）がネットワークを介して接続された環境等において、ホストコンピュータが、外部装置乃至送信装置として画像形成装置に対して印刷ジョブを送信することがある。ホストコンピュータが印刷ジョブを送信しているときに画像形成装置においてデータ受信停止状態が長時間続くと、ホストコンピュータ側で送信タイムアウトエラーが発生してホストコンピュータは印刷ジョブの送信を中断してしまう。
【０００３】
このような制限に対して、画像形成装置が受信バッファの空きが少ない状態であることを信号によってホストコンピュータに知らせ、ホストコンピュータがその信号によってデータ送信を間欠的にする技術がある（下記特許文献１）。
【０００４】
また、ホストコンピュータが印刷ジョブの受信速度を遅くするための遅延情報を画像形成装置より取得し、取得した遅延情報に従ってホストコンピュータが印刷ジョブを送信するときのパケット送信間隔を調整する技術がある（下記特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−１６８０８３号
【特許文献２】特開２００９−９８７９６号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の技術においては、いずれもホストコンピュータがデータ送信速度を調整する構成である。そのため、ホストコンピュータにデータ送信速度を調整する制御プログラムが必要で、画像形成装置側での制御だけではデータ転送速度の調整を行うことはできないという問題があった。また、ホストコンピュータと画像形成装置との間の通信において、画像形成装置からそれぞれ特別な情報を通知することが前提となっている。そのため、そのような通信方式にホストコンピュータ及び画像形成装置が対応していなければデータ転送速度の調整を行うことができないという問題があった。
【０００７】
本発明は上記従来技術の問題を解決するためになされたものであり、その目的は、印刷装置側のみでの制御によって、印刷装置に印刷データを送信する外部装置での印刷データの送信タイムアウトエラーの発生頻度を低減させることができる印刷装置等を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明は、外部装置から複数のパケットに分割して送信される印刷データを受信する受信工程と、前記受信工程により受信された前記印刷データを格納手段に格納する格納工程と、前記格納手段に格納された印刷データに基づいて印刷処理を実行する印刷工程と、前記格納手段の空き容量を確認する確認工程と、前記確認工程により確認される空き容量が基準値より多い場合は受信可能なデータサイズとして第１のデータサイズを前記外部装置へ通知し、前記確認工程により確認される前記空き容量が前記基準値より少ない場合は受信可能なデータサイズとして前記第１のデータサイズよりデータサイズの小さい第２のデータサイズを前記外部装置へ通知する通知工程と、を有することを特徴とする印刷装置の制御方法である（請求項６）。
【０００９】
なお、請求項６または７記載のプログラムを格納したコンピュータで読み取り可能な記憶媒体は、本発明を構成する。
【発明の効果】
【００１０】
本発明によれば、印刷装置側のみでの制御によって、印刷装置に印刷データを送信する外部装置での印刷データの送信タイムアウトエラーの発生頻度を低減させることできる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施の形態に係る画像形成装置（印刷装置）及びそれを含むシステムの構成を示すブロック図である。
【図２】コントローラの構成例を示すブロック図である。
【図３】データ処理装置からの受信データへの応答処理の手順を示すフローチャートである。
【図４】図３のステップＳ１０７で実行される、受信可能サイズ返送処理の手順を示すフローチャートである。
【図５】返送する受信可能サイズが図４のステップＳ２０６で設定された場合におけるデータ処理装置とプリンタとの間のデータ通信の一例を示す図である。
【図６】返送する受信可能サイズが図４のステップＳ２０４で設定された場合におけるデータ処理装置とプリンタとの間のデータ通信の一例を示す図である。
【図７】第２の実施の形態において図３のステップＳ１０７で実行される、受信可能サイズ返送処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面を参照して説明する。
【００１３】
（第１の実施の形態）
［画像形成装置の構成］
図１は、本発明の第１の実施の形態に係る画像形成装置及びそれを含むシステムの構成を示すブロック図である。
【００１４】
このシステムは、データ処理装置１０１と画像形成装置（印刷装置）であるプリンタ１０２とがネットワークで通信可能に接続されて構成される。データ処理装置１０１は、例えば「外部装置」であるホストコンピュータであり、画像情報の供給源、すなわち「送信装置」として機能する。本実施の形態においては、プリンタ１０２の一例として、レーザビームプリンタが採用される。ただし、画像形成装置として適用可能な装置は、レーザビームプリンタに限られるものではなく、インクジェットプリンタ等、他のプリント方式を採用する画像形成装置でもよい。
【００１５】
プリンタ１０２は、パネル部３０１、プリンタコントローラ（コントローラ）３０２及びプリンタエンジン３０３を含んでいる。コントローラ３０２は、データ処理装置１０１から供給される画像情報（例えば、ページ記述言語）に基づいて、ページ毎にラスタデータを生成し、プリンタエンジン３０３に送出する。プリンタエンジン３０３は、コントローラ３０２から供給されるラスタデータに基づいて、不図示の感光ドラム上に潜像を形成し、その潜像を不図示の記録媒体上に転写・定着（電子写真方式）することにより画像を記録する。
【００１６】
パネル部３０１は、ユーザインタフェースとして使用される。コントローラ３０２は、パネル部３０１を介してユーザからの所望の動作指示を受け付ける。また、コントローラ３０２は、パネル部３０１を介して、プリンタ１０２の処理内容やユーザへの警告内容等を表示する。
【００１７】
［コントローラの構成］
図２は、コントローラ３０２の構成例を示すブロック図である。
【００１８】
コントローラ３０２において、パネルインタフェース部７０１は、パネル部３０１とデータ通信を行う。ＣＰＵ７０９は、パネルインタフェース（Ｉ／Ｆ）部７０１を介して、ユーザからのパネル部３０１を介しての設定及び指示内容を受け付ける。ホストインタフェース（Ｉ／Ｆ）部７０２は、ネットワークを介してデータ処理装置１０１と双方向に通信接続する。ホストインタフェース部７０２は、「確認手段」、「第１計測手段」、「第２計測手段」、「通知手段」としての機能を果たす。
【００１９】
中間データ作成部７０３は、ホストインタフェース部７０２を介してデータ処理装置１０１から受信した印刷ジョブをプリンタ１０２の内部で扱いやすい形である中間データに変換する処理を行う。ＲＯＭ７０４には、本実施の形態における各処理や、プリンタ１０２で実行される制御プログラムコード等が格納される。ＲＡＭ７０５には各種データが格納される。ＣＰＵ７０９がＲＡＭ７０５に格納するデータには、ホストインタフェース部７０２を介して受信した印刷ジョブ中の印刷データや、印刷データを解釈して生成される中間データ等がある。この他、中間データをレンダリングして生成されるビットマップ、その他の処理に必要な一時的な各種処理ステータスなどもある。
【００２０】
エンジンインタフェース（Ｉ／Ｆ）部７０６は、プリンタエンジン３０３と通信接続する。ＣＰＵバス７１２は、アドレス、データ、コントロールバスを含むバスである。符号７０１〜７１０のデバイスは、それぞれＣＰＵバス７１２に接続されたすべてのデバイスにアクセスできる。ＣＰＵ７０９は、ＲＯＭ７０４に格納された制御プログラムコードに基づいて、ＣＰＵバス７１２に接続されたデバイスを制御する。例えば、ＣＰＵ７０９は、エンジンインタフェース部７０６を介して、プリンタエンジン３０３の状態を認識する。またＣＰＵ７０９は、ＲＡＭ７０５内に格納されているビットマップデータを、ＤＭＡ制御部７０７を介してエンジンインタフェース部７０６に転送する。レンダリング部７０８は、ＲＡＭ７０５に格納された中間データをその内容に従って、ビットマップイメージに展開する。不揮発性メモリＥＥＰＲＯＭ７１０は、プリンタ１０２の設定情報を保持する。
【００２１】
［受信データに対する応答処理の説明］
図３は、データ処理装置１０１からの受信データへの応答処理の手順を示すフローチャートである。まず、ホストインタフェース部７０２は、データ処理装置１０１から送信されたデータを、ジョブポート（受信手段、第１の受信手段、第２の受信手段）より受信したかどうかを判別する（ステップＳ１０１）。ここで、ホストインタフェース部７０２の受信ポートには、ジョブポートと管理ポートとがある。ジョブポートは、データ処理装置１０１からプリンタ１０２に印刷ジョブが送信される際に使用され、管理ポートは、データ処理装置１０１がプリンタ１０２のステータス情報を取得するために使用される。
【００２２】
前記ステップＳ１０１で、ホストインタフェース部７０２は、ジョブポートからデータを受信したと判別した場合、受信したデータパケットを解析する（ステップＳ１０２）。そして、ホストインタフェース部７０２は、そのデータパケットの内容が印刷ジョブのデータ送信を要求するものであるかどうか判別する（ステップＳ１０３）。すなわち、これからデータ処理装置１０１がプリンタ１０２に対して印刷ジョブを送信することを示す内容であるか否か判別する。
【００２３】
一方、前記ステップＳ１０１において、ホストインタフェース部７０２は、ジョブポートではなく管理ポートからデータを受信したと判別した場合、データが示す要求に従ったステータスを要求元であるデータ処理装置１０１に返送する（ステップＳ１０５）。すなわち、ホストインタフェース部７０２は、管理ポート側の処理手順に従って、受信したデータパケットを解析し、そのデータパケットで要求されたステータスをデータ処理装置１０１に返送する。
【００２４】
前記ステップＳ１０３において、ホストインタフェース部７０２は、データパケットの内容が印刷ジョブのデータ送信を要求するものであると判別した場合は、後述する図４の受信可能サイズ返送処理を実行する（ステップＳ１０７）。受信可能サイズ返送処理は、プリンタ１０２が、受信可能なデータサイズである「受信可能サイズ」をデータ処理装置１０１に通知するための処理である。一方、ホストインタフェース部７０２は、前記ステップＳ１０３において印刷ジョブのデータ送信を要求するものでないと判別した場合は、データパケット内容に従った処理を行う。例えば受信データを格納手段である受信バッファに格納する等の処理を行う（ステップＳ１０６）。
【００２５】
ところで、ＲＡＭ７０５には、印刷ジョブ受信用のプロトコルスタック（Protocol Stack）と、印刷ジョブ格納用の受信バッファ（上記）とが割り当てられている。ホストインタフェース部７０２は、受信データを受信バッファに格納するときに、前記ステップＳ１０７で返送した受信可能サイズ分のデータを受信し終わるまで、プロトコルスタックにデータを一時的に格納する。そして、ホストインタフェース部７０２は、上記受信可能サイズ分のデータを受信した後に、プロトコルスタックに一時的に格納された受信データを、上記受信バッファに移動させることで一旦格納する。
【００２６】
ホストインタフェース部７０２は、受信バッファへのデータ移動を終えたら、プロトコルスタックを解放して次のデータ送信要求を待つ。仮に受信バッファがフル（空き無し）になったときには、ホストインタフェース部７０２は、プロトコルスタックから受信バッファへのデータ移動を中断する。そして、次のデータ処理装置１０１からのデータ送信要求に対して受信可能データサイズを“０”に設定して返送する。これにより、データ送信要求元のデータ処理装置１０１は、データ送信要求先のプリンタ１０２がデータを受信できない状態であることを知ることができる。
【００２７】
［受信可能サイズ返送処理の説明］
図４は、ホストインタフェース部７０２がデータ処理装置１０１から受信したデータ送信要求に応答するために図３のステップＳ１０７で実行される、受信可能サイズ返送処理の手順を示すフローチャートである。
【００２８】
ホストインタフェース部７０２は、まず、ＲＡＭ７０５の一部として割り当てられている受信バッファの空き容量を確認する（ステップＳ２０１）。そして、ホストインタフェース部７０２は、受信バッファの空き容量が基準値以下（基準値Ｒ０以下）かどうかを判別する（ステップＳ２０２）。そして、ホストインタフェース部７０２は、受信バッファの空き容量が基準値Ｒ０以下であれば処理をステップＳ２０３に移行させる一方、基準値Ｒ０より大きければ処理をステップＳ２０６に移行させる。
【００２９】
ステップＳ２０６では、ホストインタフェース部７０２は、受信可能サイズとして実際に受信可能なデータサイズ、ここではプロトコルスタックの空きサイズを設定し、ステップＳ２０５に処理を移行させる。一方、ステップＳ２０３では、ホストインタフェース部７０２は、現在の「データ受信速度」が受信バッファの現在の「データ解放速度」より速い（高い）か否かを判別する。
【００３０】
ここで、「データ受信速度」は、プロトコルスタックから受信バッファへ単位時間あたりに移動するデータ量であり、すなわち、データ処理装置１０１から転送されプロトコルスタックに格納された印刷データが受信バッファに格納される格納速度である。データ受信速度は、ホストインタフェース部７０２が、例えば１秒毎にその移動するデータ量を記録して過去５秒間分の履歴情報から算出により計測する。
【００３１】
一方、「データ解放速度」は、中間データ作成部７０３によって受信バッファに格納されている印刷ジョブが中間データに変換された後に受信バッファから解放される印刷データの単位時間あたりの解放量である。すなわち、受信バッファに一旦格納された印刷データが印刷処理のために受信バッファから解放される解放速度である。データ解放速度は、ホストインタフェース部７０２が、例えば１秒毎にその解放されるデータ量を記録して過去５秒間分の履歴情報から算出により計測する。
【００３２】
前記ステップＳ２０３で、ホストインタフェース部７０２は、現在のデータ受信速度が受信バッファのデータ解放速度より速いと判別した場合には、受信バッファの空き容量が減少傾向にあると判断される。そこで、ホストインタフェース部７０２は、受信可能サイズとして、１パケットの最大サイズより小さい固定値Ａ（第２のデータサイズ）を設定する（ステップＳ２０４）。固定値Ａは、例えば、１パケットのデータサイズの最大値が１４６０ｂｙｔｅ（バイト）であるとしたならば、その半分の７３０ｂｙｔｅに設定すればよい。ただし、固定値Ａは１パケットの最大サイズより小さければよく、半分の値に限られない。その後、ホストインタフェース部７０２は、処理をステップＳ２０５に進める。
【００３３】
一方、ホストインタフェース部７０２は、ステップＳ２０３において、現在のデータ受信速度が受信バッファのデータ解放速度より速くないと判別した場合には、受信バッファの空き容量は増加傾向にあると判断される。そこで、ホストインタフェース部７０２は、前記ステップＳ２０６を実行して、受信可能サイズとして実際に受信可能なデータサイズ（第１のデータサイズ）を設定する。
【００３４】
ステップＳ２０５では、ホストインタフェース部７０２は、前記ステップＳ２０４もしくはステップＳ２０６において設定された受信可能サイズの情報を、返送ステータスとして送信元のデータ処理装置１０１に返送する処理を行う。
【００３５】
［データ通信例］
図５及び図６は、いずれも、図３、図４の処理によるデータ処理装置１０１とプリンタ１０２との間のデータ通信の一例を示す図である。特に、図５、図６は、それぞれ、返送する受信可能サイズが図４のステップＳ２０６、Ｓ２０４で設定された場合のデータ通信の例を示す。
【００３６】
図４のステップＳ２０６で受信可能サイズが設定される場合の例については、図５に示すように、まず、データ処理装置１０１からのデータ送信要求（Ｓ５０１）をプリンタ１０２が受ける。すると、図４のステップＳ２０５では、プリンタ１０２のホストインタフェース部７０２は、受信可能サイズとしてプロトコルスタックの空きサイズである５０００（ｂｙｔｅ）を設定し、その情報を返送する（Ｓ５０２）。
【００３７】
この場合、データ処理装置１０１は、返送された受信可能サイズに従って、印刷ジョブのうちの５０００ｂｙｔｅ分のデータ（印刷データ）を１パケットの最大サイズである１４６０ｂｙｔｅの単位で複数に分割して送信する（Ｓ５０３〜Ｓ５０６）。５０００ｂｙｔｅ分の最後のデータサイズは、６２０ｂｙｔｅとなる。印刷ジョブのすべてのデータがデータ処理装置１０１からプリンタ１０２に転送されるまで、Ｓ５０１〜Ｓ５０６と同様のやりとりが続く（Ｓ５０７〜Ｓ５１２）。
【００３８】
次に、図４のステップＳ２０４で受信可能サイズが設定される場合の例については、図６に示すように、まず、データ処理装置１０１からのデータ送信要求（Ｓ６０１）をプリンタ１０２が受ける。すると、図４のステップＳ２０５では、プリンタ１０２のホストインタフェース部７０２は、受信可能サイズとして１パケットの最大サイズより小さい固定値Ａ（一例として７３０ｂｙｔｅとする）を設定し、その情報を返送する（Ｓ６０２）。
【００３９】
この場合、データ処理装置１０１は、プリンタ１０２から返送された受信可能サイズに従って印刷ジョブのうちの７３０ｂｙｔｅ分のデータを１パケットで送信する（Ｓ６０３）。印刷ジョブのすべてのデータがデータ処理装置１０１からプリンタ１０２に転送されるまで、Ｓ６０１〜Ｓ６０３と同様のやりとりが続く（Ｓ６０４〜Ｓ６２１）。データは７３０ｂｙｔｅずつ送信され、仮に、印刷ジョブの全データが５０００ｂｙｔｅであるとすると、５０００ｂｙｔｅ分の最後のデータは、６２０ｂｙｔｅとなる（Ｓ６２１）。
【００４０】
図６の例では、図５の例と比較して、同じデータ量の転送を行う上で、データ処理装置１０１とプリンタ１０２との間のデータ通信の回数が多い。例えば、５０００ｂｙｔｅ分の印刷データを転送する際の送信回数は、図５のＳ５０１〜Ｓ５０６では４回、図６のＳ６０１〜Ｓ６２１では７回である。ここで、データ処理装置１０１からプリンタ１０２へデータが転送される速度は、単位時間あたりの通信回数に比例する。図４のステップＳ２０３の判別結果により、ステップＳ２０６とステップＳ２０４とに処理を切り換えることは、印刷ジョブデータの転送速度を切り換えることにもなり、ステップＳ２０４が実行された場合には、印刷データの転送速度がより遅くなる。
【００４１】
データ処理装置１０１側としては、プリンタ１０２から通知された受信可能サイズに従って印刷データの転送を行えばよく、特別な制御プログラムを要さず、また、プリンタ１０２から特別な情報を通知されることも必要としない。これにより、プリンタ１０２側での制御のみで、データ処理装置１０１からの印刷データの受信の速度を実質的に調整することができる。従って、上記のように制御することにより、コントローラ３０２は、受信バッファの空きが基準値Ｒ０以下で且つさらに減少する傾向にあるとき、データ処理装置１０１からの印刷データの受信の速度を実質的に遅くすることができる。そのため、受信バッファがフルとなる頻度を下げることができる。
【００４２】
また、図３のステップＳ１０１の判別処理により、データ転送速度の調整の実行が、ジョブポートでの受信時に限定される。これにより、コントローラ３０２は、データ処理装置１０１からの機器ステータス情報要求に対しては受信バッファの空きや増減の傾向に関係なく速やかに応答することができる。
【００４３】
本実施の形態によれば、データ処理装置１０１とプリンタ１０２との間で特別な情報のやりとりを行うことなく、プリンタ１０２のみでの制御によって、データ処理装置１０１からの印刷データの受信の速度を実質的に調整することができる。そのため、データ処理装置１０１での印刷データの送信タイムアウトエラーの発生頻度を低減させることできる。
【００４４】
（第２の実施の形態）
第１の実施の形態においては、受信バッファの空きが少なく且つさらに減少する傾向にあるとき、データの転送速度が遅くなるようにするために、印刷ジョブのデータ受信に関してデータ処理装置１０１との通信回数が通常よりも増えるように制御した。本発明の第２の実施の形態では、このような制御に加えて、印刷データに対するコントローラ３０２での処理速度が遅くなるように制御する。
【００４５】
本第２の実施の形態では、上記第１の実施の形態に比し、「受信可能サイズ返送処理」が異なり、図４に代えて図７を用いて説明する。その他の構成は、第１の実施の形態と同様である。
【００４６】
図７は、第２の実施の形態において、ホストインタフェース部７０２がデータ処理装置１０１から受信したデータ送信要求に応答するために図３のステップＳ１０７で実行される、受信可能サイズ返送処理の手順を示すフローチャートである。
【００４７】
まず、ホストインタフェース部７０２は、ステップＳ３０１では、図４のステップＳ２０１と同様の処理を実行する。そして、ホストインタフェース部７０２は、受信バッファの空き容量が第１の基準値以下（第１の基準値Ｒ１以下）かどうかを判別する（ステップＳ３０２）。そして、ホストインタフェース部７０２は、受信バッファの空き容量が第１の基準値Ｒ１以下であれば処理をステップＳ３０３に移行させる一方、第１の基準値Ｒ１より大きければ処理をステップＳ３０８に移行させる。
【００４８】
ステップＳ３０８では、ホストインタフェース部７０２は、図４のステップＳ２０６と同様の処理を実行し、ステップＳ３０７に処理を進める。
【００４９】
ステップＳ３０３では、ホストインタフェース部７０２は、所定時間の経過後に（所定時間ウェイトしてから）ステップＳ３０４に処理を進める。この所定時間は、データ処理装置１０１側での送信タイムアウトエラーにならない範囲の時間とする。つまり、ホストインタフェース部７０２は、ステップＳ３０８により受信可能サイズをデータ処理装置１０１に通知する場合はデータ送信要求を受信してから第１の所定時間後に受信可能なデータサイズを通知する。一方、ホストインタフェース部７０２は、ステップＳ３０６により受信可能サイズをデータ処理装置１０１に通知する場合はデータ送信要求を受信してから第１の所定時間後より長い第２の所定時間後に受信可能なデータサイズを通知する。第１の所定時間と第２の所定時間との差異時間は、ステップＳ３０３における所定時間のウェイトに相当する。
【００５０】
ステップＳ３０４では、ホストインタフェース部７０２は、受信バッファの空き容量が第２の基準値以下（第２の基準値Ｒ２以下）かどうかを判別する。ここで、第２の基準値Ｒ２は第１の基準値Ｒ１より小さい値である（Ｒ２＜Ｒ１）。そして、ホストインタフェース部７０２は、受信バッファの空き容量が第２の基準値Ｒ２以下であれば処理をステップＳ３０５に移行させる一方、第２の基準値Ｒ２より大きければ処理をステップＳ３０８に移行させる。
【００５１】
以降のステップＳ３０５〜Ｓ３０７の処理は、図４のステップＳ２０３〜Ｓ２０５の処理と同様である。
【００５２】
本実施の形態によれば、受信バッファの空き状況に応じて、段階的に適切なデータ受信制御を行うことができる。まず、第１段階（Ｒ１≧受信バッファの空き容量＞Ｒ２）では、受信可能サイズの返送（ステップＳ３０７）に際し、所定時間の経過を待つことになる。そのため、コントローラ３０２におけるデータ処理速度が実質的に遅くなる。これにより、データ処理装置１０１からの印刷データの受信の速度を実質的に遅くすると共に、データ受信処理のためのＣＰＵ負荷を減らし、例えば、中間データ作成部７０３の処理を優先的に進めることができる。その結果、受信バッファのデータ解放速度が速くなり、受信バッファがフルになる頻度を下げることができる。
【００５３】
また、第２段階（Ｒ２≧受信バッファの空き容量）では、第１の実施の形態で受信バッファの空き容量が基準値Ｒ０以下となった場合と同様に処理される。従って、受信バッファの空きが第２の基準値Ｒ２以下で且つさらに減少する傾向にあるとき（ステップＳ３０４→Ｓ３０５→Ｓ３０６）、通知する受信可能サイズが固定値Ａとされる。そのため、第１の実施の形態と同様にデータ通信回数が増えることで、データ受信の速度がさらに遅くなり、受信バッファがフルになる頻度が下がる。
【００５４】
第２の基準値Ｒ２は、第１の実施の形態における基準値Ｒ０と同じ値でもよいし、異なっていてもよい。仮に第２の基準値Ｒ２＝基準値Ｒ０としたならば、図７の処理は、図５の処理に対して、ステップＳ３０２、Ｓ３０３の処理ステップが追加された点だけが異なることになる。この意味では、第２の実施の形態は、第１の実施の形態と同様の効果にステップＳ３０２、Ｓ３０３による効果が加わることになる。なお、上記第１段階（Ｒ１≧受信バッファの空き容量＞Ｒ２）において、受信可能サイズの返送（ステップＳ３０７）をするにあたって少なくとも所定時間の経過を待つことによる効果を得ることに限って言えば、ステップＳ３０４〜Ｓ３０６の処理は必須でない。
【００５５】
ところで、上記各実施の形態において、図３、図４、図７の処理はホストインタフェース部７０２が実行するとしたが、ＣＰＵ７０９またはこれら両者の協働により行うようにしてもよい。
【００５６】
（その他の実施例）
第１の実施の形態及び第２の実施の形態においては、現在のデータ受信速度が受信バッファのデータ解放速度より速いか否かを判別し、前者が速い場合に受信可能サイズを小さいサイズに設定するものであったが、他の態様であっても良い。具体的には、図４におけるステップＳ２０３、図７におけるステップＳ３０５の処理を省略し、受信バッファの空き容量が基準値以下の場合に受信可能サイズを小さいサイズに設定するようにしても良い。
【００５７】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００５８】
１０２  プリンタ
３０２  プリンタコントローラ
７０２  ホストインタフェース部
７０５  ＲＡＭ
【図１】
2011116083.tif 000003
【図２】
2011116083.tif 000004
【図３】
2011116083.tif 000005
【図４】
2011116083.tif 000006
【図５】
2011116083.tif 000007
【図６】
2011116083.tif 000008
【図７】
2011116083.tif 000009