(57)【特許請求の範囲】
【請求項１】
データを受信して送信する第１データ受信送信装置であって、
データを記憶可能な第１データ記憶手段と、
元データを第１のサイズに整数（ｎ）を乗じたサイズより第１所定サイズだけ大きい第２のサイズ毎に分割してなる複数の分割データとして受信して前記第１データ記憶手段に記憶する第１受信処理手段と、
前記記憶した複数の分割データを順に整数（ｎ＋１）個の第１のサイズのデータとして送信する第１送信処理手段と、
を備え、
前記第１送信処理手段は、整数（ｍ）個の分割データを送信する毎に整数（ｍ）個目の分割データの整数（ｎ＋１）個目のデータについては前記第１所定サイズのデータとして送信する手段である
第１データ受信送信装置。
【請求項２】
請求項１記載の第１データ受信送信装置から送信されるデータを受信する受信装置であって、
前記第１データ受信送信装置から受信した整数（ｎ＋１）個のうちの最後のデータが第１のサイズであるときには該受信した整数（ｎ＋１）個のデータのうち整数（ｎ）個目までのデータについては受信した第１のサイズのまま連結されるデータとして処理すると共に整数（ｎ＋１）個目のデータについては受信した第１のサイズのデータのうち前記第１所定サイズまでのデータだけを連結されるデータとして処理し且つ次に受信するデータについても連結される一連のデータであると認識し、前記第１データ受信送信装置から受信した整数（ｎ＋１）個のうちの最後のデータが第１のサイズではないときには該受信した整数（ｎ＋１）個のデータのうち整数（ｎ）個目までのデータについては受信した第１のサイズのまま連結されるデータとして処理すると共に整数（ｎ＋１）個目のデータについては受信したデータを連結されるデータとして処理し且つ次に受信するデータについては該受信したデータの内容により連結されるデータであるか否かを判定すべきと認識するデータ受信処理手段、
を備える受信装置。
【請求項３】
請求項１記載の第１データ受信送信装置と、データを記憶可能な第２データ記憶手段と整数（ｐ＋１）個の第３のサイズのデータを受信して前記第２データ記憶手段に記憶する第２受信処理手段と前記第２データ記憶手段に記憶された整数（ｐ＋１）個の第３のサイズのデータを該第３のサイズに整数（ｐ）を乗じて得られるサイズに第２所定サイズを加えて得られる第４のサイズのデータとして送信する第２送信処理手段とを有する第２データ受信送信装置と、を備えるデータ受信送信システムであって、
前記第３のサイズは、前記第１のサイズであり、
前記第４のサイズは、前記第２のサイズであり、
整数（ｐ）は、整数（ｎ）に一致し、
前記第２所定サイズは、前記第１所定サイズに一致する
データ受信送信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１データ受信送信装置および受信装置並びに第２データ受信送信装置、データ受信送信システムおよびデータ受信送信方法に関する。
【背景技術】
【０００２】
従来、この種のデータ受信送信システムとしては、ＵＳＢ（Universal Serial Bus)ホストとして機能すると共に受信したデータを印刷するプリンタと、プリンタのＵＳＢポートに接続されてＵＳＢデバイスとして機能すると共に無線ＬＡＮなどのネットワークに接続可能なドングルとを備え、クライアント端末からネットワークを介して送信されたイーサネット（登録商標）フレームをドングルで受信して、ドングルで受信したイーサネット（登録商標）フレームを最大パケットサイズ（ＵＳＢフルスピードに対応したデバイスの場合は６４バイトで、ＵＳＢハイスピードに対応したデバイスの場合は５１２バイト）までのデータに分割してプリンタに送信するＣＤＣ（Cmmunication Device Class）プロトコルを用いるものが提案されている（例えば、非特許文献１参照）。このシステムでは、ドングルからプリンタに送信したデータがショートパケットと呼ばれる最大パケットサイズ未満のサイズのデータであるときには１回のデータ送信が終了したと判断してそれまでに受信したデータを連結する処理を実行する。
【非特許文献１】ユニバーサル  シリアル  バス  クラス  デフィニションズ  フォア  コミュニケーション  デバイシズ（Universal Serial Bus Class Definitions for Communication Devices）、ｐ．２３−２４、３．８．１．１  セグメント  デリニエーション（3.8.1.1 Segment Delineation）、［online］、［平成１７年９月９日検索］、インターネット＜URL：http://www.usb.org/developers/devclass_docs/usbcdc11.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述のシステムでは、ドングルからプリンタへデータを送信するときに１回のデータ送信で連続して送信できるデータの数が制限されることがある。例えば、クライアント端末から印刷データを１５１４バイトのイーサネット（登録商標）フレームに分割してドングルに送信する場合を考えると、ＵＳＢハイスピードに対応したドングルでは受信した１５１４バイトのデータを二個の５１２バイトのデータと１個の４９０バイトのデータとに分割してプリンタに送信するため、必ずショートパケットが発生してドングルからプリンタに１回のデータ送信で連続して３個より多くのデータを送信できない。このように、ドングルからプリンタへ送信できるデータの数が制限されると、送信効率が悪くなり全体のスループットが低下してしまう。
【０００４】
本発明の第１データ受信送信装置および受信装置並びに第２データ受信送信装置、データ受信送信システムおよびデータ受信送信方法は、データの受信や送信におけるスループットの向上を図ることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の第１データ受信送信装置および受信装置並びに第２データ受信送信装置、データ受信送信システムおよびデータ受信送信方法は、上述の目的を達成するために以下の手段を採った。
【０００６】
本発明の第１データ受信送信装置は、
データを受信して送信する第１データ受信送信装置であって、
データを記憶可能な第１データ記憶手段と、
元データを第１のサイズに整数（ｎ）を乗じたサイズより第１所定サイズだけ大きい第２のサイズ毎に分割してなる複数の分割データとして受信して前記第１データ記憶手段に記憶する第１受信処理手段と、
前記記憶した複数の分割データを順に整数（ｎ＋１）個の第１のサイズのデータとして送信する第１送信処理手段と、
を備えることを要旨とする。
【０００７】
本発明の第１データ受信送信装置では、元データを第１のサイズに整数（ｎ）を乗じたサイズより第１所定サイズだけ大きい第２のサイズ毎に分割してなる複数の分割データとして受信して第１データ記憶手段に記憶して、記憶した複数の分割データを順に整数（ｎ＋１）個の第１のサイズのデータとして送信する。この結果、複数の分割データを整数（ｎ＋１）個の第１のサイズのデータとして順に送信することができるため、一つの分割データしか送信できない装置に比してスループットの向上を図ることができる。
【０００８】
本発明の第１データ受信送信装置において、前記第１送信処理手段は、前記分割データを整数（ｎ）個の第１のサイズのデータに分割した残余の整数（ｎ＋１）個目のデータについては第１のサイズから前記第１所定サイズを減じたサイズの調整用データを付加して得られる第１のサイズのデータとして送信する手段であるものとすることもできる。こうすれば、分割データのサイズが整数個の第１のサイズのデータに分割できないときでも第１のサイズのデータとして送信することができる。
【０００９】
また、本発明の第１データ受信送信装置において、前記第１受信処理手段は、前記分割データを前記第１データ記憶手段に記憶する際に、第１のサイズに整数（ｎ＋１）を乗じて得られる記憶用サイズの記憶領域を確保して記憶する手段であり、前記第１送信処理手段は、前記記憶用サイズの記憶領域に記憶された分割データを順に整数（ｎ＋１）個の第１のサイズのデータとして送信する手段であるものとすることもできる。こうすれば、分割データを整数（ｎ＋１）個の第１のサイズのデータとして送信することができる。
【００１０】
さらに、本発明の第１データ受信送信装置において、前記第１送信処理手段は、整数（ｍ）個の分割データを送信する毎に整数（ｍ）個目の分割データの整数（ｎ＋１）個目のデータについては前記第１所定サイズのデータとして送信する手段であるものとすることもできる。こうすれば、整数（ｍ）個の分割データを送信する毎に整数（ｍ）個目の分割データの整数（ｎ＋１）個目のデータについては第１所定サイズのデータとして送信することができる。
【００１１】
本発明の第１の受信装置は、上述したいずれかの態様の本発明の第１データ受信送信装置、すなわち、基本的には、データを受信して送信する第１データ受信送信装置であって、データを記憶可能な第１データ記憶手段と、元データを第１のサイズに整数（ｎ）を乗じたサイズより第１所定サイズだけ大きい第２のサイズ毎に分割してなる複数の分割データとして受信して前記第１データ記憶手段に記憶する第１受信処理手段と、前記記憶した複数の分割データを順に整数（ｎ＋１）個の第１のサイズのデータとして送信する第１送信処理手段と、を備える第１データ受信送信装置から送信されるデータを受信する受信装置であって、
前記第１データ受信送信装置から受信した整数（ｎ＋１）個の第１のサイズのデータのうち整数（ｎ）個目までのデータについては受信した第１のサイズのまま連結されるデータとして処理し、整数（ｎ＋１）個目のデータについては受信した第１のサイズのデータのうち前記第１所定サイズまでのデータを連結されるデータとして処理すると共に残余のデータについては破棄するデータとして処理するデータ受信処理手段、
を備えることを要旨とする。
【００１２】
本発明の第１の受信装置では、上述したいずれかの態様の本発明の第１データ受信送信装置から受信した整数（ｎ＋１）個の第１のサイズのデータのうち整数（ｎ）個目までのデータについては受信した第１のサイズのまま連結されるデータとして処理し、整数（ｎ＋１）個目のデータについては受信した第１のサイズのデータのうち第１所定サイズまでのデータを連結されるデータとして処理すると共に残余のデータについては破棄するデータとして処理する。この結果、前述したいずれかの態様の本発明の第１データ受信送信装置から順に送信される（ｎ＋１）個の第１のサイズのデータを第１のサイズに整数（ｎ）を乗じたサイズと第１所定サイズとの和のサイズのデータとして処理することができる。
【００１３】
本発明の第２の受信装置は、
整数（ｍ）個の分割データを送信する毎に整数（ｍ）個目の分割データの整数（ｎ＋１）個目のデータについては第１所定サイズのデータとして送信する態様の第１送信処理手段を備える第１データ受信送信装置から送信されるデータを受信する受信装置であって、
前記第１データ受信送信装置から受信した整数（ｎ＋１）個のうちの最後のデータが第１のサイズであるときには該受信した整数（ｎ＋１）個のデータのうち整数（ｎ）個目までのデータについては受信した第１のサイズのまま連結されるデータとして処理すると共に整数（ｎ＋１）個目のデータについては受信した第１のサイズのデータのうち前記第１所定サイズまでのデータだけを連結されるデータとして処理し且つ次に受信するデータについても連結される一連のデータであると認識し、前記第１データ受信送信装置から受信した整数（ｎ＋１）個のうちの最後のデータが第１のサイズではないときには該受信した整数（ｎ＋１）個のデータのうち整数（ｎ）個目までのデータについては受信した第１のサイズのまま連結されるデータとして処理すると共に整数（ｎ＋１）個目のデータについては受信したデータを連結されるデータとして処理し且つ次に受信するデータについては該受信したデータの内容により連結されるデータであるか否かを判定すべきと認識するデータ受信処理手段、
を備えることを要旨とする。
【００１４】
本発明の第２の受信装置では、第１データ受信送信装置から受信した整数（ｎ＋１）個のうちの最後のデータが第１のサイズであるときには受信した整数（ｎ＋１）個のデータのうち整数（ｎ）個目までのデータについては受信した第１のサイズのまま連結されるデータとして処理すると共に整数（ｎ＋１）個目のデータについては受信した第１のサイズのデータのうち第１所定サイズまでのデータだけを連結されるデータとして処理し且つ次に受信するデータについても連結される一連のデータであると認識し、第１データ受信送信装置から受信した整数（ｎ＋１）個のうちの最後のデータが第１のサイズではないときには受信した整数（ｎ＋１）個のデータのうち整数（ｎ）個目までのデータについては受信した第１のサイズのまま連結されるデータとして処理すると共に整数（ｎ＋１）個目のデータについては受信したデータを連結されるデータとして処理し且つ次に受信するデータについては受信したデータの内容により連結されるデータであるか否かを判定すべきと認識する。第１データ受信送信装置から受信した整数（ｎ＋１）個のうちの最後のデータが第１のサイズであるときには、次に受信するデータも連結するデータとして受信することができるから、スループットの向上を図ることができる。
【００１５】
本発明の第２データ受信送信装置は、
データを受信して送信する第２データ受信送信装置であって、
データを記憶可能な第２データ記憶手段と、
整数（ｐ＋１）個の第３のサイズのデータを受信して前記第２データ記憶手段に記憶する第２受信処理手段と、
前記第２データ記憶手段に記憶された整数（ｐ＋１）個の第３のサイズのデータを該第３のサイズに整数（ｐ）を乗じて得られるサイズに第２所定サイズを加えて得られる第４のサイズのデータとして送信する第２送信処理手段と、
を備えることを要旨とする。
【００１６】
本発明の第２データ受信送信装置では、整数（ｐ＋１）個の第３のサイズのデータを受信して第２データ記憶手段に記憶し、第２データ記憶手段に記憶した整数（ｐ＋１）個の第３のサイズのデータを第３のサイズに整数（ｐ）を乗じて得られるサイズに第２所定サイズを加えて得られる第４のサイズのデータとして送信する。整数（ｐ＋１）個の第３のサイズのデータを１個の第４のサイズのデータとして送信することができるから、スループットの向上を図ることができる。
【００１７】
本発明のデータ送受信システムは、
上述したいずれかの態様の本発明の第１データ受信送信装置、すなわち、基本的には、データを受信して送信する第１データ受信送信装置であって、データを記憶可能な第１データ記憶手段と、元データを第１のサイズに整数（ｎ）を乗じたサイズより第１所定サイズだけ大きい第２のサイズ毎に分割してなる複数の分割データとして受信して前記第１データ記憶手段に記憶する第１受信処理手段と、前記記憶した複数の分割データを順に整数（ｎ＋１）個の第１のサイズのデータとして送信する第１送信処理手段と、を備える第１データ受信送信装置と、データを受信して送信する第２データ受信送信装置であって、データを記憶可能な第２データ記憶手段と、整数（ｐ＋１）個の第３のサイズのデータを受信して前記第２データ記憶手段に記憶する第２受信処理手段と、前記第２データ記憶手段に記憶された整数（ｐ＋１）個の第３のサイズのデータを該第３のサイズに整数（ｐ）を乗じて得られるサイズに第２所定サイズを加えて得られる第４のサイズのデータとして送信する第２送信処理手段と、を備える態様の第２データ受信送信装置とを有するデータ受信送信システムであって、
前記第３のサイズは、前記第１のサイズであり、
前記第４のサイズは、前記第２のサイズであり、
整数（ｐ）は、整数（ｎ）に一致し、
前記第２所定サイズは、前記第１所定サイズに一致する
ことを要旨とする。
【００１８】
本発明のデータ送受信システムでは、第１データ受信送信装置で、元データを第１のサイズに整数（ｎ）を乗じたサイズより第１所定サイズだけ大きい第２のサイズ毎に分割してなる複数の分割データとして受信して第１データ記憶手段に記憶して、記憶した複数の分割データを順に整数（ｎ＋１）個の第１のサイズのデータとして送信し、第２データ受信送信装置で送信された整数（ｎ＋１）個の第１のサイズのデータを受信して第２データ記憶手段に記憶して、第２データ記憶手段に記憶された整数（ｎ＋１）個の第１のサイズのデータを第１のサイズに整数（ｎ）を乗じて得られるサイズに第１所定サイズを加えて得られる第２のサイズのデータとして送信する。第１データ受信送信装置で元データを分割して得られる第２のサイズの複数の分割データを整数（ｎ＋１）個の第１のサイズのデータとして順に送信するから、一つの分割データしか送信できない装置を用いたシステムに比してスループットの向上を図ることができる。
【００１９】
本発明の第１のデータ受信送信方法は、
データを受信して送信するデータ受信送信方法であって、
（ａ）元データを第１のサイズに整数（ｎ）を乗じたサイズより第１所定サイズだけ大きい第２のサイズ毎に分割してなる複数の分割データとして受信して記憶し、
（ｂ）前記記憶した複数の分割データを順に整数（ｎ＋１）個の第１のサイズのデータとして送信する、
ことを要旨とする。
【００２０】
本発明の第１のデータ受信送信方法では、元データを第１のサイズに整数（ｎ）を乗じたサイズより第１所定サイズだけ大きい第２のサイズ毎に分割してなる複数の分割データとして受信して記憶し、記憶した複数の分割データを順に整数（ｎ＋１）個の第１のサイズのデータとして送信する。この結果、複数の分割データを整数（ｎ＋１）個の第１のサイズのデータとして順に送信することができるため、一つの分割データしか送信できない装置に比してスループットの向上を図ることができる。
【００２１】
本発明のデータ受信送信方法は、
データを受信して送信するデータ受信送信方法であって、
（ａ）整数（ｐ＋１）個の第３のサイズのデータを受信して記憶し、
（ｂ）前記記憶した整数（ｐ＋１）個の第３のサイズのデータを該第３のサイズに整数（ｐ）を乗じて得られるサイズに第２所定サイズを加えて得られる第４のサイズのデータとして送信する、
ことを要旨とする。
【００２２】
本発明のデータ受信送信方法では、整数（ｐ＋１）個の第３のサイズのデータを受信して記憶し、前記記憶した整数（ｐ＋１）個の第３のサイズのデータを該第３のサイズに整数（ｐ）を乗じて得られるサイズに第２所定サイズを加えて得られる第４のサイズのデータとして送信する。整数（ｐ＋１）個の第３のサイズのデータを第４のサイズのデータとして送信することができるから、スループットの向上を図ることができる。
【発明を実施するための最良の形態】
【００２３】
次に、本発明を実施するための最良の形態を実施例を用いて説明する。
【実施例】
【００２４】
図１は、本発明の一実施例としてのデータ受信送信システムとして機能する印刷システム１０の構成の概略を示す構成図である。印刷システム１０は、ＵＳＢホストとして機能すると共に受信したデータを印刷するプリンタ２０と、プリンタ２０のＵＳＢポート２２に接続されてＵＳＢデバイスとして機能すると共に無線ＬＡＮなどのネットワーク６０に接続可能なドングル４０とを備え、クライアント端末７０から送信される印刷データをネットワーク６０とドングル４０とを介してプリンタ２０で受信して、プリンタ２０で印刷データを紙などの印刷媒体に印刷する。
【００２５】
プリンタ２０は、一般的な電子写真方式のカラーレーザプリンタとして構成されており、プリンタ２０全体を制御するメインコントローラ２４と、印刷を実行するプリンタエンジン３４と，ＵＳＢポート２２に挿入されたドングル４０との接続を司るＵＳＢホストコントローラ３６とを備える。
【００２６】
メインコントローラ２４は、ＣＰＵ２６を中心としたマイクロコンピュータとして構成されており、プログラムなどを記憶するＲＯＭ２８やデータを一時的に記憶するＲＡＭ３０，不揮発性メモリとしてのＥＥＰＲＯＭ３２などを備える。ＥＥＰＲＯＭ３２には、ＵＳＢホストコントローラ３６で受信したデータを処理するデータ処理プログラム３２ａが保存されている。データ処理プログラム３２ａは、ＵＳＢポート２２にドングル４０が挿入されたときに起動してメインコントローラ２４のＣＰＵ２６にドングル４０から送信されるデータを受信して受信したデータを用いた画像をプリンタエンジン３４で印刷する処理を実行させる。
【００２７】
ＵＳＢホストコントローラ３６は、ＵＳＢポート２２に接続されたドングル４０に対して定期的にデータの送信や受信を要求するリクエスト信号を送信し、リクエスト信号に応じてドングル４０がデータを送受信すると所定時間だけデータの送受信を受け付け、所定時間経過するとデータの送受信を中断する。
【００２８】
なお、プリンタエンジン３４については、一般的なレーザプリンタと同様であり、本発明の中核をなさないから詳細な説明を省略する。
【００２９】
ドングル４０は、ドングル４０全体を制御するＣＰＵ４２と、プログラムなどを記憶するＲＯＭ４４と、データを一時的に記憶するＲＡＭ４６と、不揮発性メモリとしてのＥＥＰＲＯＭ４８と、ネットワーク６０との接続を司るネットワークコントローラ５０と、プリンタ２０のＵＳＢホストコントローラ３６との接続を司るＵＳＢデバイスコントローラ５２とを備える。
【００３０】
ＥＥＰＲＯＭ４８には、クライアント端末７０からネットワーク６０を介して送信される印刷データをネットワークコントローラ５０を介して受信してプリンタ２０に送信するためのデータ送受信プログラム４８ａが保存されている。データ送受信プログラム４８ａは、ドングル４０がプリンタ２０のＵＳＢポート２２に挿入されたときに起動して、ＣＰＵ４２にネットワークコントローラ５０で受信したデータをＵＳＢデバイスコントローラ５２からプリンタ２０のＵＳＢホストコントローラ３６に送信する処理を実行させる。
【００３１】
ネットワークコントローラ５０は、ネットワーク６０やＵＳＢデバイスコントローラ５２を監視していて、ネットワーク６０上のプリンタ２０のＩＰアドレスをヘッダに含むデータを受信したり、ＵＳＢデバイスコントローラ５２からのデータをネットワーク６０に送信する。
【００３２】
ＵＳＢデバイスコントローラ５２は、データを一時的に記憶するレジスタ５２ａを備えて、ＵＳＢホストコントローラ３６から送信されたリクエスト信号を受信するとレジスタ５２ａに保存したデータを５１２バイトのサイズまでのデータとして順にプリンタ２０のＵＳＢホストコントローラ３６に送信したり、ＵＳＢホストコントローラ３６からのデータを受信してレジスタ５２ａに保存する。前述したように１回のリクエスト信号でＵＳＢホストコントローラ３６でデータの受信を受け付ける時間が制限されている。従って、ＵＳＢデバイスコントローラ５２は、ＵＳＢホストコントローラ３６の１回のリクエスト信号に対して送信できるデータの数が予め制限されており、実施例では、１回のリクエスト信号に対して５１２バイトまでのサイズのデータを８個まで送信できるものとする。
【００３３】
次に、こうして構成された印刷システム１０の動作、特に、クライアント端末７０から送信した印刷データをドングル４０を介してプリンタ２０で受信する動作について説明する。まず、クライアント端末７０で印刷データを送信する際の動作について説明し、次に、ドングル４０で受信したデータをプリンタ２０に送信する際の動作について説明し、続いて、プリンタ２０でドングル４０からのデータを受信する際の動作について説明する。図２は、印刷システム１０のクライアント端末７０の図示しないＣＰＵで実行される処理とドングル４０のＣＰＵ４２で実行される処理とプリンタ２０のメインコントローラ２４のＣＰＵ２６で実行される処理とクライアント端末７０やドングル４０，プリンタ２０間で送受信されるデータのサイズの一例を示す説明図である。
【００３４】
最初にクライアント端末７０で印刷データを送信する際の動作について説明する。クライアント端末７０での処理は、ユーザがクライアント端末７０にインストールされているアプリケーションソフトを用いて画像ファイルなどの印刷の指示したときにクライアント端末７０のプリンタドライバが起動して実行される。この処理では、クライアント端末７０からネットワーク６０に印刷データを複数に分割して分割データとして順に送信する処理を実行し（ステップＳ１００）、処理を終了する。実施例では、分割データは、印刷先の機器のＩＰアドレスや各分割データの元の印刷データが何であるかを示す識別情報などを内容として含むヘッダを含めて１５１４バイトずつまでのサイズのデータとしてネットワーク６０に送信されるものとする。
【００３５】
続いて、ドングル４０で受信した分割データをプリンタ２０に送信する際の動作について説明する。ドングル４０での処理は、ドングル４０のネットワークコントローラ５０がネットワーク６０上にプリンタ２０のＩＰアドレスをヘッダに含む分割データを検出したときに実行される。この処理では、まず、ネットワークコントローラ５０で１５１４バイトの分割データを受信したら（ステップＳ１１０）、ＵＳＢデバイスコントローラ５２のレジスタ５２ａに１５３６バイトのバッファ領域を確保すると共に確保したバッファ領域の先頭アドレスから１５１４バイトの領域に格納する（ステップＳ１２０）。この処理では、１５１４バイトの分割データに対してバッファ領域を２２バイトだけ余分に確保しているから、バッファ領域の１５１５バイト目のアドレス以降のデータは、受信した分割データに元々含まれていないデータとなる。
【００３６】
続いて、ネットワークコントローラ５０で２個目の分割データを受信したら（ステップＳ１３０）、ＵＳＢデバイスコントローラ５２に１５１４バイトのバッファ領域を確保すると共に確保したバッファ領域に受信した２個目の分割データを格納して（ステップＳ１４０）、ＵＳＢデバイスコントローラ５２がＵＳＢホストコントローラ３６から送信されたリクエスト信号を受信すると、バッファ領域に格納された分割データを受信した順に５１２バイトまでずつのサイズのデータとしてプリンタ２０のＵＳＢホストコントローラ３６に送信する（ステップＳ１５０）。実施例では、まず、ステップＳ１２０の処理で確保した１５３６バイトのサイズのバッファ領域から３個の５１２バイトのサイズのデータを送信する。こうすれば、最初の２個のデータは、元の分割データに含まれていたデータであるが、３個目のデータは、元の分割データに含まれていた４９０バイトのサイズのデータと元の分割データに含まれていない２２バイトのサイズのデータとから構成されることになる。続いて、ステップＳ１４０の処理で確保した１５１４バイトのサイズのバッファ領域から２個の５１２バイトのサイズのデータと１個の４９０バイトのサイズのデータとを送信する。こうすれば、３個のデータは、元の分割データに含まれていたデータのみから構成されることとなる。
【００３７】
ＵＳＢデバイスコントローラ５２からプリンタ２０のＵＳＢホストコントローラ３６にデータを送信する際にこのようにして送るのは以下の理由に基づく。前述したようにＵＳＢデバイスコントローラ５２では、ＵＳＢホストコントローラ３６から送信される１回のリクエスト信号に対して５１２バイトまでのサイズのデータを８個まで送信できる。すなわち、ＵＳＢデバイスコントローラ５２は、１回のリクエスト信号に対して５１２バイトの８倍のサイズの４０９６バイトのサイズまでのデータしか送信することができないため、ネットワークコントローラ５０で１５１４バイトの分割データを３個以上、すなわち、４５４２バイトのサイズ以上受信しても１回のリクエスト信号で２個の分割データしか送信することができない。後述するように、プリンタ２０のＵＳＢデバイスコントローラ３６では、５１２バイト未満のデータを受信すると１回のリクエスト信号に対する受信データが終わりであると判断することから、２個目の分割データについては最後に送信するデータを４９０バイトのサイズにすることによりＵＳＢホストコントローラ３６に送信データの終わりを知らせることができる。このような理由で、ステップＳ１４０の処理で２個目の分割データを１５１４バイトのバッファ領域に格納することにより、ステップＳ１５０の処理で最後に送信するデータを４９０バイトのサイズのデータにしている。
【００３８】
ステップＳ１５０の処理を実行した後に、ネットワークコントローラ５０で分割データを受信したときには、最後の分割データを受信するまでステップＳ１１０からステップＳ１５０の処理と同じ処理を繰り返し実行して、本処理を終了する。
【００３９】
このように、ドングル４０では、クライアント端末７０から分割して送信される１５１４バイトの分割データについて、１番目の分割データについては３個の５１２バイトのサイズのデータとしてプリンタ２０に送信し、２番目の分割データについては２個の５１２バイトのサイズのデータと１個の４９０バイトのサイズのデータとしてプリンタ２０に送信し、ネットワークコントローラ５０で最後の分割データを受信してこのデータについての処理が終了するまでこの処理を繰り返す。
【００４０】
次に、ドングル４０から送信されたデータをプリンタ２０のＵＳＢホストコントローラ３６で受信する際の動作について説明する。プリンタ２０での処理は、ドングル４０のＵＳＢデバイスコントローラ５２にリクエスト信号を送信した後に実行される。最初に、ＵＳＢデバイスコントローラ５２から送信されるデータを受信するためのデータ受信処理を実行する（ステップＳ１６０）。図３は、データ受信処理の一例を示すフローチャートである。最初に、データを受信して（ステップＳ１６２）、受信したデータが５１２バイトであるか否かを判定する（ステップＳ１６４）。受信したデータが５１２バイトであるときには、ドングル４０のＵＳＢデバイスコントローラ５２から続いて送信されてくると判断して、受信した５１２バイトのデータをプリンタ２０のＲＡＭ３０に確保したバッファ領域に保存する（ステップＳ１６６）。
【００４１】
続いて、バッファ領域に保存されている未送信のデータのサイズが５１２バイトの３倍のサイズの１５３６バイトに達したか否かを判定する（ステップＳ１６８）。バッファ領域の未送信のデータのサイズが１５３６バイトに達していないときには、ステップＳ１６２の処理に戻り、次のデータを受信して、ステップＳ１６４以降の処理を実行する。実施例では、ドングル４０のＵＳＢデバイスコントローラ５２から１番目の分割データに対応する３個の５１２バイトのサイズのデータが送信されてくるので、３個目のデータを受信するまでステップＳ１６２からステップＳ１６８の処理が繰り返される。
【００４２】
バッファ領域の未送信のデータのサイズが１５３６バイトに達したとき、つまり、３個目の５１２バイトのサイズのデータがバッファ領域に格納されると、バッファ領域に格納されている１５３６バイトのサイズの未送信データのうちクライアント端末７０から送信された元の分割データに含まれていない２２バイトのサイズのデータを除く１５１４バイトのサイズのデータをプリンタエンジン３４に送信する（ステップＳ１７０）。このように、クライアント端末７０から分割して送信される１５１４バイトの分割データのうち、１番目の分割データに対応する３個の５１２バイトのサイズのデータについては、元の分割データに含まれていない２２バイトのサイズのデータを削除して１５１４バイトのサイズのデータとしてプリンタエンジン３４に送信することができる。
【００４３】
データの送信が終わると、ステップＳ１６２の処理に戻り、次のデータを受信して、ステップＳ１６４以降の処理を実行する。こうして、５１２バイト未満のデータを受信するまで、ステップＳ１６２からステップＳ１７０までの処理を実行する。
【００４４】
受信データが５１２バイト未満になると（ステップＳ１６４）、受信したデータが１回のリクエスト信号に対応してドングル４０のＵＳＢデバイスコントローラ５２から送信される最後のデータであると判断して、受信した５１２バイトのサイズのデータをプリンタ２０のＲＡＭ３０に確保したバッファ領域に保存して（ステップＳ１７２）、バッファ領域内の未送信のデータを送信データとしてプリンタエンジン３４に送信して（ステップＳ１７４）、データ受信処理を終了する。ステップＳ１５４の処理を実行するときに、実施例では、バッファ領域には、１個目の分割データに対応する３個の５１２バイトのサイズのデータは既に送信済みで、２個目の分割データに対応する２個の５１２バイトのサイズのデータと１個の４９０バイトのデータとが保存されているから、ステップＳ１７４の処理で２個目の分割データに対応する２個の５１２バイトのサイズのデータと１個の４９０バイトのサイズのデータとが１５１４バイトのデータとしてプリンタエンジン３４に送信される。
【００４５】
ここで、図２に戻って説明を続ける。図２に示したステップＳ１６０の処理を実行すると、ドングル４０のＵＳＢデバイスコントローラ５２に次のリクエスト信号を送信する。そして、ＵＳＢデバイスコントローラ５２のレジスタ５２ａにデータが保存されていれば、ステップＳ１６０の処理と同じ処理を実行し、ＵＳＢデバイスコントローラ５２のレジスタ５２ａに保存されているデータがなくなれば、プリンタ２０でのデータを受信する処理を終了する。このようにプリンタ２０のＵＳＢホストコントローラ３６では、ドングル４０のＵＳＢデバイスコントローラ５２から送信されるデータを順に受信して１５１４バイトまでのサイズのデータとしてプリンタエンジン３４に順次送信する。プリンタエンジン３４では、送信されたデータを用いて印刷を実行する。
【００４６】
以上説明した実施例の印刷システム１０によれば、ドングル４０のＵＳＢデバイスコントローラ５２からプリンタ２０のＵＳＢホストコントローラ３６に１回のリクエスト信号に対して送信できるデータの数の範囲内で、クライアント端末７０から送信された分割データをより多く送信することができる。従って、１回のリクエスト信号で１個の分割データしか送信できないものに比して、システム全体のスループットの向上を図ることができる。
【００４７】
ここで、実施例の印刷システム１０におけるドングル４０のＵＳＢデバイスコントローラ５２のレジスタ５２ａが第１データ記憶手段に相当し、クライアント端末７０から送信されたデータを受信する処理を実行するドングル４０のＣＰＵ４２が第１受信処理手段に相当し、分割データを５１２バイトずつのデータとして送信する処理を実行するドングル４０のＣＰＵ４２が第１送信処理手段に相当する。また、実施例の印刷システム１０のプリンタ２０においてドングル４０から送信されたデータを受信した１５１４バイトまでずつのデータとする処理を実行するＣＰＵ２６がデータ受信処理手段に相当する。そして、実施例の印刷システム１０におけるプリンタ２０のＲＡＭ３０が第２データ記憶手段に相当し、ドングル４０から送信されたデータを受信してＲＡＭ３０に記憶させる処理を実行するプリンタ２０のＣＰＵ２６が第２受信処理手段に相当し、ＲＡＭ３０に記憶された２個の５１２バイトのサイズのデータと１個の４９０バイトのサイズのデータとを１５１４バイトのデータとしてプリンタエンジン３４に送信する処理を実行するプリンタ２０のＣＰＵ２６が第２送信処理手段に相当する。さらに、実施例の印刷システム１０におけるドングルが第１データ受信送信装置に相当し、プリンタ２０が第２データ受信送信装置に相当する。
【００４８】
実施例の印刷システム１０では、ステップＳ１２０の処理でＵＳＢデバイスコントローラ５２のレジスタ５２ａに１５３６バイトのサイズのバッファ領域を確保するものとしたが、確保するバッファ領域のサイズは、ドングル４０で受信したデータのサイズより大きく、且つ、ＵＳＢデバイスコントローラ５２からプリンタ２０のＵＳＢホストコントローラ３６に送信する１個のデータのサイズの整数倍であればよい。従って、スループットの低下を許容するならば、ステップＳ１２０の処理でＵＳＢデバイスコントローラ５２のレジスタ５２ａに５１２バイトの３倍より大きい整数倍のサイズ、例えば、４倍のサイズの２０４８バイトのサイズのバッファ領域を確保するものとしてもよい。
【００４９】
実施例の印刷システム１０では、ドングル４０で受信する分割データのサイズ、すなわち、クライアント端末７０から送信される分割データのサイズを１５１４バイトであるものとしたが、分割データのサイズは、クライアント端末７０とドングル４０との間の通信サイズとして許容されているサイズであるなら如何なるサイズのデータであるものとしてもよい。また、ドングル４０のＵＳＢデバイスコントローラ５２からプリンタ２０のＵＳＢホストコントローラ３６に２５６バイトずつのデータを送信するものとしたが、送信するデータのサイズはＵＳＢデバイスコントローラ５２とＵＳＢホストコントローラ３６との間で許容されるサイズであるならば如何なるサイズのデータであるものとしてもよい。このような場合には、ステップＳ１２０の処理でドングル４０で受信する分割データのサイズやドングル４０のＵＳＢデバイスコントローラ５２からプリンタ２０のＵＳＢホストコントローラ３６に送信するデータのサイズに応じて適宜設定するものとし、例えば、ドングル４０で受信したデータのサイズ５００バイトであり、ＵＳＢデバイスコントローラ５２からＵＳＢホストコントローラ３６に２５６バイトずつのデータを送信するときには、５００バイトより大きく２５６バイトの２倍のサイズの５１２バイトのサイズのバッファ領域を確保するものとしてもよい。
【００５０】
実施例の印刷システム１０では、ステップＳ１２０の処理で１５１４バイトのサイズの分割データを１５３６バイトのサイズのバッファ領域に保存するものとしたが、ステップＳ１２０の処理では１５１４バイトのサイズのデータを５１２バイトの３倍の１５３６バイトのサイズのデータとして処理できればいいから、受信した１５１４バイトのサイズの分割データに２２バイトのサイズのデータを付加して１５３６バイトのデータにしてＵＳＢデバイスコントローラ５２のレジスタ５２ａに保存するものとしてもよい。
【００５１】
実施例の印刷システム１０では、ドングル４０をプリンタ２０のＵＳＢホストコントローラ３６から送信される１個のリクエスト信号に対して５１２バイトまでのサイズのデータを８個まで送信できるものとしたが、送信可能なデータのサイズや個数は、実施例に記載したサイズや個数に限定されたものではなく、ドングル４０のＵＳＢデバイスコントローラ５２とプリンタ２０のＵＳＢホストコントローラ３６との間のデータの転送速度や１度に送信できるデータのサイズ、１回のリクエスト信号についてＵＳＢホストコントローラ３６がデータを受信する時間などに基づいて適宜設定するものとしてもよい。
【００５２】
実施例の印刷システム１０では、ステップＳ１４０の処理でクライアント端末７０から２個目の分割データを受信したら２個目の分割データについては１５１４バイトのサイズのバッファ領域に保存するものとしたが、クライアント端末７０から送信される印刷データのサイズが比較的小さく１回のリクエスト信号で全てのデータを送信できる場合には、データを受信した後に分割データのヘッダに含まれる情報を解析して受信した分割データがクライアント端末７０から最後に送信された分割データであるときに１５１４バイトのバッファ領域に保存するものとしてもよい。
【００５３】
実施例の印刷システム１０では、ドングル４０から送信されたデータをプリンタ２０で受信するものとしたが、データの送信と受信を逆にしてプリンタ２０から送信されたデータをドングル４０で受信するものとしてもよい。
【００５４】
実施例の印刷システム１０では、ドングル４０においてＵＳＢデバイスコントローラ５２のレジスタ５２ａにバッファ領域を確保するものとしたが、データが記憶可能な手段であれば如何なる記憶手段にバッファ領域を確保してもよく、例えば、ＲＡＭ４６にバッファ領域を確保するものとしてもよいし、ドングル４０がＨＤＤなどの外部記憶装置を備えるときにはこのような外部記憶装置にバッファ領域を確保するものとしてもよい。
【００５５】
実施例の印刷システム１０では、プリンタ２０においてＲＡＭ３０にバッファ領域を確保するものとしたが、データが記憶可能な手段であれば如何なる記憶手段にバッファ領域を確保してもよく、例えば、プリンタ２０がＨＤＤなどの外部記憶装置を備えるときにはこのような外部記憶装置にバッファ領域を確保するものとしてもよいし、ＵＳＢホストコントローラ３６がレジスタを備えているときにはレジスタ内にバッファ領域を確保するものとしてもよい。
【００５６】
実施例では、本発明を印刷システム１０に適用することについて説明したが、本発明は、クライアント端末７０から分割されて送信された分割データを受信して送信する第１の受信送信装置と第１の受信送信装置からのデータを受信して送信する第２データ受信送信装置とを備えるシステムであれば如何なるものに適用してもよく、第１の受信送信装置が受信するデータも印刷データに限定したものではなく、様々な種類のデータであるものとしてもよい。
【００５７】
実施例では、本発明を分割データを受信して送信する第１の受信送信装置と第１の受信送信装置からのデータを受信して送信する第２データ受信送信装置とから構成されるシステムに適用することについて説明したが、第１の受信送信装置と第２の受信送信装置とを備える一つの機器に適用するものしてもよい。
【００５８】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【図面の簡単な説明】
【００５９】
【図１】本発明の一実施例としての印刷システム１０の構成の概略を示す構成図。
【図２】各装置で実行される処理と送受信するデータのサイズの一例を示す説明図。
【図３】データ受信処理の一例を示すフローチャート。
【符号の説明】
【００６０】
１０  印刷システム、２０  プリンタ、２２  ＵＳＢポート、２４  メインコントローラ、２６  ＣＰＵ、２８  ＲＯＭ、３０  ＲＡＭ、３２  ＥＥＰＲＯＭ、３２ａ  データ処理プログラム、３４  プリンタエンジン、４０  ドングル、４２  ＣＰＵ、４４  ＲＯＭ、４６  ＲＡＭ、４８  ＥＥＰＲＯＭ、５０  ネットワークコントローラ、５２  ＵＳＢデバイスコントローラ、５２ａ  レジスタ、６０  ネットワーク、７０  クライアント端末。
【図１】
0004655868.tif 000002
【図２】
0004655868.tif 000003
【図３】
0004655868.tif 000004