(57)【特許請求の範囲】
【請求項１】
送信データを所定の長さ以下の複数のパケットに分け、ヘッダが付加された前記複数のパケットのそれぞれを送信側から受信側に送信するデータ送信方法において、
送信データのサイズとヘッダサイズとの合計サイズと、受信側の受信可能データサイズとを比較するステップと、
前記送信データを前記所定の長さ以下の複数のパケットにして送信側から受信側に送信するステップと、
前記合計サイズが前記受信可能データサイズよりも小さい場合には、一つのヘッダが付加された送信データを、前記所定の長さより大きい一つのパケットとして送信側から受信側に送信するステップと、
を有することを特徴とするデータ送信方法。
【請求項２】
合計サイズが受信可能データサイズよりも小さい場合には、パケットの所定長さを一時的に増加させ、送信データを一つのパケットとすることを特徴とする請求項１に記載のデータ送信方法。
【請求項３】
前記一つのヘッダには、パケットの長さが拡張されているパケットであることを示す値が含まれていることを特徴とする請求項１に記載のデータ送信方法。
【請求項４】
前記合計サイズが前記受信可能データサイズよりも大きい場合には、前記送信データを前記所定の長さ以下の複数のパケットにして送信側から受信側に送信するステップを有することを特徴とする請求項１乃至３のいずれかに記載のデータ送信方法。
【請求項５】
送信データを所定の長さ以下の複数のパケットに分け、ヘッダが付加された前記複数のパケットのそれぞれを受信側に送信するデータ送信装置において、
送信データのサイズとヘッダサイズの合計サイズを演算する手段と、
演算された合計サイズと受信側の受信可能データサイズを比較する手段と、
前記送信データを前記所定の長さ以下の複数のパケットにして受信側に送信する手段と、
演算された合計サイズが前記受信可能データサイズよりも小さい場合に、前記送信データに一つのヘッダを付加する手段と、
前記一つのヘッダが付加された送信データを、前記所定の長さより大きい一つのパケットとして受信側に送信する手段と、
を有することを特徴とするデータ送信装置。
【請求項６】
前記一つのヘッダには、パケットの長さが拡張されているパケットであることを示す値が含まれていることを特徴とする請求項５に記載のデータ送信装置。
【請求項７】
演算された合計サイズが前記受信可能データサイズよりも大きい場合に、前記送信データを前記所定の長さ以下の複数のパケットに分ける手段と、
前記複数のパケットのそれぞれを受信側に送信する手段を有することを特徴とする請求項５或いは６に記載のデータ送信装置。
【請求項８】
受信側にパケットを送信する情報処理装置であって、
送信データのサイズとヘッダサイズとの合計サイズと、前記受信側の受信可能データサイズとを比較する比較手段と、
前記合計サイズが前記受信可能データサイズよりも小さい場合、前記送信データに一つのヘッダを付加して、所定のパケット長より大きい一つのパケットにパケット化する第１のパケット化手段と、
前記第１のパケット化手段によるパケットを前記受信側に送信する第１の送信手段と、
前記合計サイズが前記受信可能データサイズよりも大きい場合、前記送信データを、前記所定のパケット長以下の複数のパケットにパケット化する第２のパケット化手段と、
前記第２のパケット化手段によるパケットを前記受信側に送信する第２の送信手段と、
を有することを特徴とする情報処理装置。
【請求項９】
前記一つのヘッダには、パケットの長さが拡張されているパケットであることを示す値が含まれていることを特徴とする請求項８に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータなどの情報処理装置からプリンタなどの出力装置へあるいはその逆にデータを送信するデータ送信方法、データ送信装置、及び情報処理装置に関する。
【０００２】
【従来の技術】
従来より、双方向インタフェースを介して接続したホストコンピュータとプリンタとの間の通信を制御するシステムにおいて、パケットを通信単位として用いデータを送信する方法がある。この場合、パケットの最大長が決められ、相互に受信可能なパケット数を数え、データをパケット化して順次受信側に送信することにより、データ通信がおこなわれる。この場合、パケットの最大長を超えるパケットは、送信することができないので、エラーとして扱われている。
【０００３】
一般に、パケット最大長を大きくすると、データを転送するのに必要なパケット数を減らすことができ、データに付加される属性データの総量が少なくなるので、データ転送の効率を考えると、パケットは大きいほど無駄が少なく、送信効率がよい。
【０００４】
またパケット伝送の場合、送信側が保持している送信できるパケット数まで送信すると、送信側は受信側に送信可能なパケット数の通知依頼を行なう必要があった。この場合、受信側から有効なパケット数が返ってくるまで、送信側はデータ送信を行なえないことから、データ転送の効率を考えると、一度に送受信できるパケット数は多い方がよい。
【０００５】
ところが、パケットの最大長と一度に扱えるパケット数の関係は、主に受信側の受信バッファの容量で決まり、パケットが大きいと受信可能なパケット数が減り、一方のパケットが小さいと、受信可能なパケット数が増える、という関係になっている。
【０００６】
【発明が解決しようとする課題】
上記例で、パケットの最大長を超えるパケットがあり、エラーとして扱われた場合、予め決めてあった最大長の範囲でパケットを作成し直し、再送信しなければならない、という問題がある。
【０００７】
また、受信可能なパケット数にパケット最大長をかけた値、すなわち、受信側の受信可能なデータ量が、送信側が送信しようとするデータ量よりも大きくても、付加するヘッダのサイズ及びヘッダの数によっては、送信データ量が受信可能なデータ量を超えてしまい、完全に送信仕切れない場合がある。そのときは、送信側が受信側への送信可能パケット数まで送信すると、受信側へ送信可能パケット数の通知を依頼し、受信側から有効な送信可能パケット数が返ってくるまで、何回も通知依頼をしなければならず、送信側はその間データ送信を行なえないとともに、通知依頼を受けた受信側は、すべき作業を一時中断し、応答を余儀なくされ、本来の作業が遅れる、という問題があった。
【０００８】
従って、本発明の課題は、効率的なパケットの送信処理を行なうことを可能にすることである。
【０００９】
【課題を解決するための手段】
上記課題を解決するために、本発明においては、
送信データを所定の長さ以下の複数のパケットに分け、ヘッダが付加された前記複数のパケットのそれぞれを送信側から受信側に送信するデータ送信方法において、
送信データのサイズとヘッダサイズとの合計サイズと、受信側の受信可能データサイズとを比較するステップと、
前記送信データを前記所定の長さ以下の複数のパケットにして送信側から受信側に送信するステップと、
前記合計サイズが前記受信可能データサイズよりも小さい場合には、一つのヘッダが付加された送信データを、前記所定の長さより大きい一つのパケットとして送信側から受信側に送信するステップと、
を有する構成を採用している。
【００１０】
また、本発明では、
送信データを所定の長さ以下の複数のパケットに分け、ヘッダが付加された前記複数のパケットのそれぞれを受信側に送信するデータ送信装置において、
送信データのサイズとヘッダサイズの合計サイズを演算する手段と、
演算された合計サイズと受信側の受信可能データサイズを比較する手段と、
前記送信データを前記所定の長さ以下の複数のパケットにして受信側に送信する手段と、
演算された合計サイズが前記受信可能データサイズよりも小さい場合に、前記送信データに一つのヘッダを付加する手段と、
前記一つのヘッダが付加された送信データを、前記所定の長さより大きい一つのパケットとして受信側に送信する手段と、
を有する構成も採用している。
【００１１】
更に、本発明では、
受信側にパケットを送信する情報処理装置であって、
送信データのサイズとヘッダサイズとの合計サイズと、前記受信側の受信可能データサイズとを比較する比較手段と、
前記合計サイズが前記受信可能データサイズよりも小さい場合、前記送信データに一つのヘッダを付加して、所定のパケット長より大きい一つのパケットにパケット化する第１のパケット化手段と、
前記第１のパケット化手段によるパケットを前記受信側に送信する第１の送信手段と、
前記合計サイズが前記受信可能データサイズよりも大きい場合、前記送信データを、前記所定のパケット長以下の複数のパケットにパケット化する第２のパケット化手段と、
前記第２のパケット化手段によるパケットを前記受信側に送信する第２の送信手段と、
を有する構成も採用している。
【００１２】
この構成によれば、送信デ−タサイズとヘッダサイズの合計サイズが受信可能データサイズより小さい場合には、送信データを複数のパケットに分割するのではなく、１つのパケットとして送信することができるので、送信データに付加するヘッダの数を減らし、送信データの総サイズも減らすことができることから、送信側から受信側への総通信時間が短縮される。また、一つのパケットで送信されるので、送受信に関する一連の手続きが１度で済み、システムの転送経路のトラフィックが減るという効果がある。
【００１３】
【発明の実施の形態】
以下、図面に示す実施の形態に基づいて本発明を詳細に説明する。
【００１４】
［第１実施形態］
図１は、パーソナルコンピュータなどの情報処理装置１とプリンタ装置１５を双方向インターフェース１４を介して接続した本発明が適用される印刷処理装置の構成を示すブロック図である。
【００１５】
同図において、情報処理装置１は、ビデオメモリ（ＶＲＡＭ）３、表示部（ＣＲＴ）４、キーボード（ＫＢＤ）５、ポインティングデバイス（ＰＤ）６、ディスクコントローラ部７、フロッピーディスク（ＦＤ）８、ハードディスク装置（ＨＤ）９、接続部１０，ＣＰＵ１１，ＲＡＭ１２、及びＲＯＭ１３により構成されている。そして、これらの構成要素はシステムバス２を介して互いに接続されている。
【００１６】
ＣＰＵ１１は、後述するプログラムに従って、情報処理装置１全体を制御する。また、ＲＡＭ１２は、ＣＰＵ１１の主メモリとしてプログラムを格納する機能を有しているほか、ＣＰＵ１１による制御実行時には、ワークデータエリアとして使用される各種データを一時記憶するための領域も備えている。
【００１７】
ディスクコントローラ部７は、外部メモリであるハードディスク装置（ＨＤ）９、あるいは、フロッピーディスク（ＦＤ）８などの外部記憶装置とのアクセス制御を行うものである。ハードディスク装置（ＨＤ）９およびフロッピーディスク（ＦＤ）８は、ディスク上の磁気記憶媒体にデータを記録して読み書きする装置であり、例えば、各種図形データや文書データ、更にはＲＯＭ１３にダウンロードされて実行される情報処理装置１のブートプログラム、ＣＰＵ１１の制御プログラムであるオペレーティングシステム（ＯＳ）、各種アプリケーション・プログラム、プリンタ制御コマンド（印刷データ）生成プログラム（プリンタドライバ）及びページ制御機能を有する本印刷システムプログラムなどを記憶する。なお、本実施形態においては、記憶媒体としてハードディスク装置９やフロッピーディスク８を用いているが、それだけでなく磁気テープ、ＣＤ−ＲＯＭ，ＩＣメモリカード、ＤＶＤなどであっても実施が可能である。
【００１８】
また、ＲＯＭ１３は内部メモリであり、前述のハードディスク装置（ＨＤ）９やフロッピーディスク（ＦＤ）８などと同様に各種データやプログラムを記憶している。
【００１９】
表示部４は、情報処理装置１においてビットマップデータなどの各種図形やコマンドメニューのコマンドイメージ、オペレータのメッセージなどを画面に表示するものであり、ＣＲＴ（陰極線管）、あるいは、液晶などから構成されている。ビデオメモリ３は、これら表示部４に表示されるデータを記憶している。
【００２０】
キーボード５及びポインティングデバイス６は、いずれもオペレータにより操作され、各種のデータやコマンド、あるいは、印刷モードなどを入力するものである。また、表示部３の画面に表示されたコマンドメニューのコマンドイメージなどを、キーボード５及びポインティングデバイス６で選択することにより、そのコマンドの実行や印刷モードを指示することができる。
【００２１】
また情報処理装置１の接続部１０は、セントロニクスインターフェイスや、ネットワークインターフェイス、赤外線インターフェイスなどの所定の双方向インターフェース１４を介して、プリンタ装置１５の接続部１７に接続され、プリンタ制御コマンド（印刷データ）を送信するなど、プリンタ装置１５との通信制御処理を実行している。
【００２２】
次に、プリンタ装置１５は、接続部１７、印刷部（プリンタエンジン）１８、操作部１９、外部メモリ２０，ＣＰＵ２１，ＲＡＭ２２、及びＲＯＭ２３等から構成されている。そして、これらの構成要素がシステムバス１６を介して互いに接続されている。
【００２３】
ＣＰＵ２１は、プリンタ装置１５のＣＰＵであり、プリンタ装置１５の全体を制御するものである。ＣＰＵ２１は、ＲＯＭ２３或いは外部メモリ２０に記憶された制御プログラムに基づいて、接続部１７で受信したプリンタ制御コマンド（印刷データ）を解析し、画像信号を印刷部１８に送信する。
【００２４】
ＲＡＭ２２は、ＣＰＵ２１の主メモリとして制御プログラムを格納するとともに、ＣＰＵ２１による制御実行時には、ワークデータエリアとして使用される各種データを一時記憶するための領域を備えている。外部メモリ２０は、オプションとしても接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。ＲＯＭ２３は、プリンタ装置１５の内部メモリであり、外部メモリと同様に、各種データやプリンタ装置１５を制御するプリンタ制御プログラム等を記憶している。
【００２５】
また、印刷部１８は、プリンタエンジンであり、ＣＰＵ２１により制御され、ＲＯＭ２３、或いは外部メモリ２０に記憶された制御プログラムよりシステムバス１６を介して出力された画像信号を受け、実際の印刷を行う。
【００２６】
操作部１９は、操作パネルや操作スイッチ等の入力部、及びＬＥＤ、液晶パネル等の表示部等から構成され、オペレータの操作を受けたり結果を表示するものである。オペレータは、操作部１９を介してプリンタ装置１５の設定を指示したり確認することが可能である。
【００２７】
プリンタ装置１５の接続部１７は、双方向インターフェース１４を介しての情報処理装置１の接続部１６に接続されている。接続部１７では、情報処理装置１からプリンタ制御コマンド（印刷データ）を受信したり、プリンタ装置１５内部の状態等を情報処理装置１へ通知することができる。
【００２８】
図２には、データ部に付加され、データ部とともにパケットとされるヘッダの例が図示されている。ヘッダは、先頭からそれぞれ、ＰＳＩＤ（ＰｒｉｍａｒｙＳｏｃｋｅｔ  ＩＤ）、ＳＳＩＤ（Ｓｅｃｏｎｄａｒｙ  Ｓｏｃｋｅｔ  ＩＤ）、レングス（Ｌｅｎｇｔｈ），コントロール（Ｃｏｎｔｒｏｌ）の各フィールドから構成されている。
【００２９】
ＰＳＩＤフィールドは送信元のソケットＩＤを示し、ＳＳＩＤフィールドは受信先のソケットＩＤを示し、レングスフィールドはヘッダを含むパケットの長さを示している。そして、コントロールフィールドはパケットの性質を示しており、例えば、値が０のときはパケット長を拡張しないデータパケット、値が１のときはパケット長を拡張したデータパケット、値が１０のときは送信可能なパケット数の通知を要求する等のコマンドパケットを示している。また、図に示すように、各フィールドのデータサイズは、ＰＳＩＤ、ＳＳＩＤはそれぞれ１バイト、レングスは２バイト、コントロールは、１バイトとされ、このヘッダをデータの先頭に付加することによりパケットが構成されている。
【００３０】
図３には、送信データおよび受信バッファサイズの例が図示されている。（Ａ）は送信データを示し、そのデータサイズがＤで示されている。そして、この送信データは（Ｂ）に示すように、パケット化される。その場合、一つのパケットは最大でもＭ（最大パケットサイズ）であるので、送信データは、最大パケットサイズＭで分割され、最初の３つのパケットがＭに、また一つがそれ以下のサイズに分割され、それぞれのパケットにサイズＨのヘッダが付加される。このようにすべてパケット化した総データサイズは、データサイズ（Ｄ）＋ヘッダサイズ（Ｈ）＊パケット数（４）となる。
【００３１】
図３（Ｃ）は受信バッファの様子を図示したもので、受信バッファサイズがＢで表されている。なお、本実施形態では、受信バッファサイズＢは本来の受信バッファサイズから受信済データサイズを除いた実質的な受信可能データサイズの意味で用いられる。この受信バッファのサイズＢは、最大パケットサイズＭ＊送信可能パケット数に設定されている。図３（Ｄ）は、本発明を適用し、送信データを拡張パケット化したデータを表している。送信データの総データサイズは、データサイズ（Ｄ）＋ヘッダサイズ（Ｈ）で表される。
【００３２】
次に、このように構成された印刷処理システムの動作を図４に示すフローチャートに従って説明する。
【００３３】
ここで、情報処理装置１が保持している送信データサイズは、図３（Ａ）に示す通り、Ｄであり、プリンタ装置１５側の受信バッファのサイズは、図３（Ｃ）に示す通り、Ｂとする。まず、ステップＳ１で、ＣＰＵ１１を用い、情報処理装置１からプリンタ装置１５に転送する送信データサイズＤとヘッダサイズＨを加算した値Ｄ＋Ｈが受信バッファサイズＢより大きいか否かを比較する。
【００３４】
この値が受信バッファサイズＢよりも小さい場合には、送信データの送信を一度におこなうことができるので、ステップＳ２に移行し、拡張パケット化を行なう。すなわち、パケットの最大値を一時的に増やし、付加するヘッダを一つにすることにより、送信データの総データサイズを減らすようにする。作成されたパケットのサイズは図３（Ｄ）に示す通り、Ｄ＋Ｈになる。このとき、ヘッダのＰＳＩＤフィールドには送信元、すなわち情報処理装置１のソケットＩＤが、またＳＳＩＤフィールドには受信先、すなわち、プリンタ１５装置のソケットＩＤが設定され、レングスフィールドには，パケットの長さを表すＤ＋Ｈが、またコントロールフィールドには拡張データパケットを示す１がそれぞれ設定される。
【００３５】
その後ステップＳ３に移行し、ステップＳ２で作成した拡張パケットをシステムの所定の送信手段を用いて送信する。
【００３６】
一方、ステップＳ１で、送信データのデータサイズとヘッダサイズを加算した値が受信バッファサイズより大きいと判断された場合は、ステップＳ４に移行して通常のパケット化作業を行う。すなわち、図３（Ａ）に示す送信データから、送信データにヘッダを付加したパケットサイズが最大パケットサイズＭになるように、それぞれデータを取り出しパケット化する。そのパケット化された状態が（Ｂ）に図示されており、このとき、ＰＳＩＤ／ＳＳＩＤの各フィールドには該当するソケットＩＤが、レングスフィールドには、一つのパケットの長さを表すＭが、またコントロールフィールドには、通常データパケットを示す０がそれぞれ設定される。
【００３７】
続くステップＳ５では、ステップＳ４で作成したパケットをシステムの所定の送信手段を用いて送信する。次に、ステップＳ６で、ＣＰＵ１１を用い、ステップＳ４で作成したパケットに使われたデータサイズをＲＡＭ１２に保存されているデータサイズＤから減算し、更新する。その後ステップＳ１に戻り、同様な処理を繰り返す。
【００３８】
［第２実施形態］
第１実施形態では、情報処理装置１からプリンタ装置１５へ送信された場合の実施形態を示したが、プリンタ装置１５から情報処理装置１ヘデータの送信がおこなわれる場合について、説明する。この場合、印刷システムの基本構成及び処理動作は、前述した第１実施形態における図１と同一であるので、その説明は省略する。
【００３９】
プリンタ装置１５が保持している送信データのサイズは、図３（Ａ）に示す通り、Ｄであり、情報処理装置１側の受信バッファの容量は、図３（Ｃ）に示す通り、Ｂであるとする。
【００４０】
まず、図４のステップＳ１で、ＣＰＵ２１を用い、プリンタ装置１５から情報処理装置１に転送する送信データサイズＤとヘッダサイズＨを加算した値Ｄ＋Ｈが受信バッファサイズＢより大きいか否かを比較する。
【００４１】
この値が受信バッファサイズＢよりも小さい場合には、送信データの送信を一度におこなうことができるので、ステップＳ２に移行し、拡張パケット化を行なう。すなわち、パケットの最大値を一時的に増やし、付加するヘッダを一つにすることにより、送信データの総データサイズを減らすようにする。作成されたパケットのサイズは図３（Ｄ）に示す通り、Ｄ＋Ｈになる。このとき、ヘッダのＰＳＩＤフィールドには送信元、すなわちプリンタ装置１５のソケットＩＤが、またＳＳＩＤフィールドには受信先、すなわち、情報処理装置１のソケットＩＤが設定され、レングスフィールドには，パケットの長さを表すＤ＋Ｈが、またコントロールフィールドには拡張データパケットを示す１がそれぞれ設定される。
【００４２】
その後ステップＳ３に移行し、ステップＳ２で作成した拡張パケットをシステムの所定の送信手段を用いて送信する。
【００４３】
一方、ステップＳ１で、送信データのデータサイズとヘッダサイズを加算した値が受信バッファサイズより大きいと判断された場合は、ステップＳ４に移行して通常のパケット化作業を行う。すなわち、図３（Ａ）に示す送信データから、送信データにヘッダを付加したパケットサイズが最大パケットサイズＭになるように、それぞれデータを取り出しパケット化する。そのパケット化された状態が（Ｂ）に図示されており、このとき、ＰＳＩＤ／ＳＳＩＤの各フィールドには該当するソケットＩＤが、レングスフィールドには、一つのパケットの長さを表すＭが、またコントロールフィールドには、通常データパケットを示す０がそれぞれ設定される。
【００４４】
続くステップＳ５では、ステップＳ４で作成したパケットをシステムの所定の送信手段を用いて送信する。次に、ステップＳ６で、ＣＰＵ２１を用い、ステップＳ４で作成したパケットに使われたデータサイズをＲＡＭ２２に保存されているデータサイズＤから減算し、更新する。その後ステップＳ１に戻り、同様な処理を繰り返す。
【００４５】
なお、本発明を、コンピュータなどの情報処理装置とプリンタ装置からなる印刷処理システムにおけるデータ送信について説明したが、複数の機器から構成されるシステムに適用しても、一つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成させる場合にも適用できることは、言うまでもない。この場合、本発明を記録した記録媒体（例えば、ＦＤ，ＲＯＭ、ＣＤ−ＲＯＭ等）が、本発明を構成することになる。そして、該記憶媒体からそのプログラムをシステムあるいは装置に読み込ませることになる。そして、記録媒体からそのプログラムをシステムあるいは装置に読み込ませることによって、そのシステムあるいは、装置があらかじめ定められた方法で動作する。
【００４６】
【発明の効果】
以上の説明から明らかなように、本発明においては、送信データのサイズとヘッダサイズとの合計サイズが受信可能データサイズより小さい場合には、送信データを複数のパケットとしてではなく、１つのパケットとして送信することができるので、送信データに付加するヘッダの数を減らし、送信データの総サイズも減らすことができる。
【図面の簡単な説明】
【図１】本発明が適用される印刷システムの構成を示したブロック図である。
【図２】送信データのパケット構成を示した説明図である。
【図３】送信データサイズ、送信データの総サイズ、受信バッファサイズ並びに拡張パケット化による総データサイズを示した説明図である。
【図４】本発明を適用した場合の基本的動作の流れを示したフローチャートである。
【符号の説明】
１  情報処理装置
２、１６  システムバス
５  キーボード（ＫＢＤ）
６  ポインティングデパイス（ＰＤ）
１０、１７  接続部
１１、２１  ＣＰＵ
１２、２２  ＲＡＭ
１３、２３  ＲＯＭ
１４  双方向インタフェース
１５    プリンタ装置
【図１】
0003624085.tif 000002
【図２】
0003624085.tif 000003
【図３】
0003624085.tif 000004
【図４】
0003624085.tif 000005