(57)【要約】【課題】ＵＳＢ接続されたホストコンピュータと、ＵＳＢ接続機器との間のデータ転送において、不要なＵＳＢコマンドの送信を低減すること【解決手段】ＵＳＢ接続機器を接続可能な情報処理装置（Ｈ）において、送信対象データ総量を送信する送信対象データ総量告知手段を備えたＵＳＢ接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、送信対象データの総データ量である前記送信対象データ総量の送信を要求する送信対象データ総量要求手段（Ｄ３Ａ）と、受信した送信対象データ総量を記憶する送信対象データ総量記憶手段（Ｄ３Ｂ）と、前記送信対象データ総量に基づいて、前記送信対象データが前記ＵＳＢ接続機器（Ｐｒ）に存在するか否かを判別する送信対象データ有無判別手段（Ｄ３Ｃ）とを備えた情報処理装置（Ｈ）。【選択図】  図２
2005018496.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ接続機器がＵＳＢ接続された情報処理装置において、
前記ＵＳＢ接続機器から前記情報処理装置へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段を前記ＵＳＢ接続機器が備えていることを記憶する総量告知手段有無記憶手段と、
前記送信対象データ総量告知手段を備えたＵＳＢ接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段と、
前記送信対象データ総量の送信の要求に対する総量応答データを前記ＵＳＢ接続機器から受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段と、
前記総量応答データに基づいて、前記送信対象データが前記ＵＳＢ接続機器に存在するか否かを判別する送信対象データ有無判別手段と、
を備えた前記情報処理装置。
【請求項２】
前記送信対象データ総量告知手段を前記ＵＳＢ接続機器が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置に新たにＵＳＢ接続機器が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段と、
前記ＵＳＢ接続機器から前記送信対象データ総量告知手段を備えていることを示す応答がある場合に、前記新たに接続されたＵＳＢ接続機器が前記送信対象データ総量告知手段を備えていると記憶する前記総量告知手段有無記憶手段と、
を備えた請求項１記載の情報処理装置。
【請求項３】
前記送信対象データが前記ＵＳＢ接続機器に存在する場合に、前記ＵＳＢ接続機器に対して送信対象データの送信を要求する送信対象データ送信要求手段と、
前記ＵＳＢ接続機器から送信され情報処理装置が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段と、
前記受信データ総量と、前記総量応答データに含まれる送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段と、
を備えた請求項１または２記載の情報処理装置。
【請求項４】
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記ＵＳＢ接続機器に対して、前記送信対象データの再送信を要求する再送信要求手段、
を備えた請求項３記載の情報処理装置。
【請求項５】
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段、
を備えた請求項３記載の情報処理装置。
【請求項６】
ＵＳＢ接続可能な情報処理装置に接続されるＵＳＢ接続機器において、
前記情報処理装置から送信を要求された送信対象データを前記情報処理装置に送信する送信対象データ送信手段と、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段と、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置に送信する送信対象データ総量告知手段と、
を備えた前記ＵＳＢ接続機器。
【請求項７】
前記ＵＳＢ接続機器が前記情報処理装置に新たに接続された際に、前記情報処理装置から送信された、前記ＵＳＢ接続機器が送信対象データ総量告知手段を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置に対して前記送信対象データ総量告知手段を備えていることを示す応答をする総量告知手段実装応答手段、
を備えた請求項６記載のＵＳＢ接続機器。
【請求項８】
ＵＳＢ接続機器がＵＳＢ接続された情報処理装置を、
前記ＵＳＢ接続機器から前記情報処理装置へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段を前記ＵＳＢ接続機器が備えていることを記憶する総量告知手段有無記憶手段、
前記送信対象データ総量告知手段を備えたＵＳＢ接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段、
前記送信対象データ総量の送信の要求に対する総量応答データを前記ＵＳＢ接続機器から受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段、
前記総量応答データに基づいて、前記送信対象データが前記ＵＳＢ接続機器に存在するか否かを判別する送信対象データ有無判別手段、
として機能させるための情報処理装置制御プログラム。
【請求項９】
ＵＳＢ接続機器を接続可能な情報処理装置を、
前記送信対象データ総量告知手段を前記ＵＳＢ接続機器が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置に新たにＵＳＢ接続機器が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段、
前記ＵＳＢ接続機器から前記送信対象データ総量告知手段を備えていることを示す応答がある場合に、前記新たに接続されたＵＳＢ接続機器が前記送信対象データ総量告知手段を備えていると記憶する前記総量告知手段有無記憶手段、
として機能させるための請求項８記載の情報処理装置制御プログラム。
【請求項１０】
ＵＳＢ接続機器を接続可能な情報処理装置を、
前記送信対象データが前記ＵＳＢ接続機器に存在する場合に、前記ＵＳＢ接続機器に対して送信対象データの送信を要求する送信対象データ送信要求手段、
前記ＵＳＢ接続機器から送信され情報処理装置が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段、
前記受信データ総量と、前記総量応答データに含まれる送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段、
として機能させるための前記請求項９記載の情報処理装置制御プログラム。
【請求項１１】
ＵＳＢ接続機器を接続可能な情報処理装置を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記ＵＳＢ接続機器に対して、前記送信対象データの再送信を要求する再送信要求手段、
として機能させるための前記請求項１０記載の情報処理装置制御プログラム。
【請求項１２】
ＵＳＢ接続機器を接続可能な情報処理装置を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段、
として機能させるための前記請求項１０記載の情報処理装置制御プログラム。
【請求項１３】
請求項８ないし１２のいずれか記載の情報処理装置制御プログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項１４】
ＵＳＢ接続可能な情報処理装置に接続されるＵＳＢ接続機器を、
前記情報処理装置から送信を要求された送信対象データを前記情報処理装置に送信する送信対象データ送信手段、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置に送信する送信対象データ総量告知手段、
として機能させるためのＵＳＢ接続機器制御プログラム。
【請求項１５】
ＵＳＢ接続可能な情報処理装置に接続されるＵＳＢ接続機器を、
前記ＵＳＢ接続機器が前記情報処理装置に新たに接続された際に、前記情報処理装置から送信された、前記ＵＳＢ接続機器が送信対象データ総量告知手段を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置に対して前記送信対象データ総量告知手段を備えていることを示す応答をする総量告知手段実装応答手段、
として機能させるための前記請求項１４記載のＵＳＢ接続機器制御プログラム。
【請求項１６】
前記請求項１４または請求項１５のいずれか記載のＵＳＢ接続機器制御プログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）接続により接続され、データの送受信が行われる情報処理装置及びＵＳＢ接続機器や、前記情報処理装置を制御する情報処理装置制御プログラム、前記ＵＳＢ接続機器を制御するＵＳＢ接続機器制御プログラム、前記各制御プログラムを記録した記録媒体に関し、特に、大容量のデータを送受信することのある前記情報処理装置及びＵＳＢ接続機器や、前記情報処理装置を制御する情報処理装置制御プログラム、前記ＵＳＢ接続機器を制御するＵＳＢ接続機器制御プログラム、前記各制御プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータやワークステーション等の情報処理装置（ホストコンピュータ）と、スキャナやプリンタ、ハードディスクドライブ等の外部接続機器（周辺機器）との間でデータの送受信（転送）を行う標準的インターフェースとして、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）が普及している。前記ＵＳＢインターフェースを有するホストコンピュータと、ＵＳＢ接続ケーブルで接続された周辺機器（ＵＳＢ接続機器）との間のデータ転送は、ＵＳＢ規格に定められたデータの転送方式に基づいて行われる。
【０００３】
ＵＳＢ規格のデータ転送では、転送速度や応答時間、エラー修正等に応じて、コントロール転送、インタラプト転送、バルク転送及びアイソクロナス転送の４つの転送形態（転送方法）のいずれかの転送形態が使用される。
前記コントロール転送（制御転送）は、リクエストのようなデータ量の少ないデータの転送に使用され、例えば、接続された周辺機器の検索、認識や制御に必要な情報の送受信等を行うエニュメレーションを実行する際に使用される。ＵＳＢリクエストは、ホストコンピュータから周辺機器に送信されるコマンドであり、ＵＳＢ規格の全ての周辺機器でサポートする必要のある標準リクエストや、周辺機器のベンダ（周辺機器の製造・販売者）が独自に定義したリクエストであるベンダリクエスト等がある。
【０００４】
前記インタラプト転送（割り込み転送）は、キーボードやマウス等の信号のような周期的に比較的小さなデータ量のデータを転送する場合に使用される。
前記アイソクロナス転送は、リアルタイムで処理する必要のある音声データや動画データの様な比較的データ量の大きなデータを、一定のデータ転送速度でエラー修正せずに転送する必要がある場合に使用される。
バルク転送は、リアルタイムで転送したり、周期的に転送したりする必要が無く、比較的大きなデータ量のデータを、転送エラーが無く、確実に転送する必要がある場合に使用される。
【０００５】
ＵＳＢ接続された周辺機器からホストコンピュータへのデータ転送（Ｉｎ転送又はｕｐｓｔｒｅａｍ）を行う場合に、ＵＳＢ規格のデータ転送では、周辺機器側からホストコンピュータに対してデータの転送を要求することができない。したがって、前記Ｉｎ転送は、ホストコンピュータから周辺機器へのデータ転送の要求があって初めて行われる。
前記Ｉｎ転送を行う場合、先ず、ホストコンピュータに組み込まれたアプリケーションは、ＯＳの標準のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）関数等を使用して、データの送信要求（Ｒｅａｄ  ＡＰＩ  命令）を行う。ホストコンピュータに実装されたＵＳＢポートドライバは、前記送信要求を元にＵＳＢデータを送信するための送信要求コマンド（リクエスト）を周辺機器に送信する。
【０００６】
前記ホストコンピュータから送信された送信要求コマンドを受信した周辺機器は、周辺機器に実装されたＵＳＢコントローラの受信バッファに送信要求コマンドを一時記憶する。そして、受信バッファから送信要求を読み込んだＵＳＢコントローラは、ＵＳＢコントローラの送信バッファ（転送バッファ）に送信要求の対象のデータを一時記憶し、送信バッファのデータをホストコンピュータに転送する。このとき、送信要求のあったデータのデータ量が大きい場合、前記バルク転送を使用してデータの転送が行われる。
【０００７】
ＵＳＢ規格のデータ転送は、接続された全ての機器が２本の信号ラインを共有して行われており、信号ラインのノイズにより転送エラーが発生することがあるので、前記バルク転送やインタラプト転送、コントロール転送ではエラーチェックが行われる。転送されるデータの流れは、ホストコンピュータによってフレーム（１ｍｓ）又はマイクロフレーム（１２５μｓ）に分割して管理されており、前記エラーチェックは各フレーム（又は１マイクロフレーム）のＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）パケットやトークンパケット、データパケットに含まれるエラーチェック用のデータ（エラーチェックビット）により行われる。そして、転送エラーが無く、正常に転送対象のデータが転送された場合、受信したホストコンピュータはＡＣＫのハンドシェークパケットを送信し、エラーがあった場合ホストコンピュータはハンドシェークパケットを送信しない。そして、ＡＣＫのハンドシェークパケットを受信しなかった周辺機器は、データを再送信する。
【０００８】
【発明が解決しようとする課題】
しかしながら、ホストコンピュータから周辺機器へ送信される送信要求コマンドは、周辺機器側に送信対象のデータが存在するか否かに関わらず送信される。送信要求コマンドに対して、周辺機器がデータを受信又は送信できない状態（ビジー状態）である場合や送信するデータがない場合には、周辺機器からＮＡＫのハンドシェークパケットが送信される。前記ＮＡＫの応答を受信したホストコンピュータは、バルク転送やインタラプト転送の場合、ＡＣＫの応答があるまで送信要求コマンドを何度も再送信する。この様な状況の下では、ホストコンピュータは、不要なＵＳＢコマンドを送信し続けるので、データ転送の帯域を占有してしまうので、他に接続された周辺機器とホストコンピュータとのデータ転送に悪影響を及ぼす問題がある。
【０００９】
また、前述のように、周辺機器のＵＳＢコントローラの送信バッファから送信されたデータは、エラーチェックがされてホストコンピュータに送信されるが、周辺機器内において、データが記憶されたデータ記憶手段からＵＳＢコントローラの送信バッファへのデータの転送ではエラーのチェックが行われない。したがって、周辺機器の品質が低い場合や、データ記憶手段から送信バッファへのデータ転送でノイズが発生しやすい等の場合には、ＵＳＢコントローラの送信バッファにデータが一時記憶される段階でエラーが発生することがあり、ＵＳＢ規格の転送のエラーチェックでは、その前の段階で発生したエラーを検出することができない。したがって、ＵＳＢ規格の転送が始まる前にエラーが発生すると、バルク転送等が正常に行われても、エラーを含むデータが送信されるという問題がある。
【００１０】
前述の事情に鑑み、本発明は、ＵＳＢ接続されたホストコンピュータ（情報処理装置）と、周辺機器（ＵＳＢ接続機器）との間のデータ転送において、不要なＵＳＢコマンドの送信を低減することを第１の技術的課題とする。
また、本発明は、ＵＳＢ接続されたホストコンピュータ（情報処理装置）と、周辺機器（ＵＳＢ接続機器）との間のデータ転送において、周辺機器内でのデータ転送のエラーを検出して、エラーのないデータ転送を実現することを第２の技術的課題とする。
【００１１】
【課題を解決するための手段】
次に、前記課題を解決するために案出した本発明を説明するが、本発明の要素には、後述の実施の形態の要素との対応を容易にするため、実施の形態の要素の符号をカッコで囲んだものを付記する。また、本発明を後述の実施の形態の符号と対応させて説明する理由は、本発明の理解を容易にするためであり、本発明の範囲を実施の形態に限定するためではない。
【００１２】
（本発明）
（第１発明）
前記技術的課題を解決するために、第１発明の情報処理装置（Ｈ）は、ＵＳＢ接続機器（Ｐｒ）がＵＳＢ接続された情報処理装置（Ｈ）において、
前記ＵＳＢ接続機器（Ｐｒ）から前記情報処理装置（Ｈ）へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段（Ｃ２Ｂ）を前記ＵＳＢ接続機器（Ｐｒ）が備えていることを記憶する総量告知手段有無記憶手段（Ｄ２Ａ）と、
前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えた前記ＵＳＢ接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段（Ｄ３Ａ）と、
前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段（Ｄ３Ｂ）と、
前記総量応答データに基づいて、前記送信対象データが前記ＵＳＢ接続機器（Ｐｒ）に存在するか否かを判別する送信対象データ有無判別手段（Ｄ３Ｃ）と、を備えたことを特徴とする。
【００１３】
（第１発明の作用）
前記構成要件を備えた第１発明の情報処理装置（Ｈ）では、総量告知手段有無記憶手段（Ｄ２Ａ）は、前記ＵＳＢ接続機器（Ｐｒ）から前記情報処理装置（Ｈ）へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段（Ｃ２Ｂ）を前記ＵＳＢ接続機器（Ｐｒ）が備えていることを記憶する。前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えた前記ＵＳＢ接続機器に対してデータの送信を要求する場合、送信対象データ総量要求手段（Ｄ３Ａ）は、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する。前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データが送信対象データ総量記憶手段（Ｄ３Ｂ）によって記憶される。そして、送信対象データ有無判別手段（Ｄ３Ｃ）は、前記総量応答データに基づいて、前記送信対象データが前記ＵＳＢ接続機器（Ｐｒ）に存在するか否かを判別する。
【００１４】
したがって、前記第１発明の情報処理装置（Ｈ）では、送信対象データの送信を要求する前に、送信対象データ総量の要求に対する総量応答データを受信し、前記総量応答データに基づいて、送信対象データの有無を判別できる。そして、前記送信対象データの有無の判別結果によって、送信対象データがある場合には送信要求を行い、送信対象データがない場合（例えば、送信対象データ総量が０の総量応答データや、送信対象データ無しの総量応答データを受信した場合）には送信要求を行わないように制御することができ、不要なＵＳＢコマンドを送信することを防止できる。この結果、送信対象データが無い場合にＡＣＫの応答を受信するまで不要な送信要求コマンドを送信し続けることを防止でき、他のＵＳＢ接続機器のデータ転送へ悪影響を及ぼすことを防止できる。
【００１５】
（第１発明の形態１）
また、第１発明の形態１の情報処理装置（Ｈ）は、前記第１発明の情報処理装置（Ｈ）において、
前記送信対象データ総量告知手段（Ｃ２Ｂ）を前記ＵＳＢ接続機器（Ｐｒ）が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置（Ｈ）に新たにＵＳＢ接続機器（Ｐｒ）が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段（Ｄ１Ａ）と、
前記ＵＳＢ接続機器（Ｐｒ）から前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを示す応答がある場合に、前記新たに接続されたＵＳＢ接続機器（Ｐｒ）が前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていると記憶する前記総量告知手段有無記憶手段（Ｄ２Ａ）と、
を備えたことを特徴とする。
【００１６】
（第１発明の形態１の作用）
前記構成要件を備えた第１発明の形態１の情報処理装置（Ｈ）では、前記情報処理装置（Ｈ）に新たにＵＳＢ接続機器（Ｐｒ）が接続された際に、総量告知手段有無確認用ベンダリクエストコマンド送信手段（Ｄ１Ａ）は、前記送信対象データ総量告知手段（Ｃ２Ｂ）を前記ＵＳＢ接続機器（Ｐｒ）が備えているか否かを確認するためのベンダリクエストコマンドを送信する。そして、前記ＵＳＢ接続機器（Ｐｒ）から前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを示す応答がある場合には、総量告知手段有無記憶手段（Ｄ２Ａ）は、前記新たに接続されたＵＳＢ接続機器（Ｐｒ）が前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを記憶する。したがって、情報処理装置（Ｈ）に接続されたＵＳＢ接続機器（Ｐｒ）が、送信対象データ総量告知手段（Ｃ２Ｂ）を備えているか否かをＵＳＢ接続機器（Ｐｒ）毎に記憶し、管理することができる。この結果、送信対象データ総量告知手段（Ｃ２Ｂ）を備えていないＵＳＢ接続機器（Ｐｒ）に対して、送信対象データ総量を送信するように要求することを防止できる。
【００１７】
（第１発明の形態２）
また、第１発明の形態２の情報処理装置（Ｈ）は、前記第１発明または前記第１発明の形態１の情報処理装置（Ｈ）において、
前記送信対象データが前記ＵＳＢ接続機器（Ｐｒ）に存在する場合に、前記ＵＳＢ接続機器（Ｐｒ）に対して送信対象データの送信を要求する送信対象データ送信要求手段（Ｄ３Ｄ）と、
前記ＵＳＢ接続機器（Ｐｒ）から送信され情報処理装置（Ｈ）が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段（Ｄ３Ｅ１）と、
前記受信データ総量と、前記送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段（Ｄ３Ｆ）と、
を備えたことを特徴とする。
【００１８】
（第１発明の形態２の作用）
前記構成要件を備えた第１発明の形態２の情報処理装置（Ｈ）では、前記送信対象データが前記ＵＳＢ接続機器（Ｐｒ）に存在する場合、送信対象データ送信要求手段（Ｄ３Ｄ）は、前記ＵＳＢ接続機器（Ｐｒ）に対して送信対象データの送信を要求する。前記ＵＳＢ接続機器（Ｐｒ）から送信され情報処理装置（Ｈ）が受信した受信データの総データ量である受信データ総量が、受信データ総量記憶手段（Ｄ３Ｅ１）によって記憶される。そして、データ総量一致判別手段（Ｄ３Ｆ）によって、前記受信データ総量と、前記総量応答データに含まれる前記送信対象データ総量とが、同一か否かが判別される。
【００１９】
したがって、前記受信データ総量と送信対象データ総量とが同一の場合、送信対象データは、転送エラーが無く転送されたと判断できる。即ち、バルク転送時や、インタラプト転送時等だけでなく、ＵＳＢ接続機器（Ｐｒ）内部でもエラー無く転送されたものと判断できる。そして、前記受信データ総量と送信対象データ総量とが同一でない場合、バルク転送等及びＵＳＢ接続機器（Ｐｒ）内部でのデータ転送のいずれかのデータ転送時に、エラーが発生したものと判断できる。したがって、送信エラーの発生を判別できるので、データ転送の信頼性を高めることができる。
【００２０】
（第１発明の形態３）
また、第１発明の形態３の情報処理装置（Ｈ）は、前記第１発明の形態２の情報処理装置（Ｈ）において、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記ＵＳＢ接続機器（Ｐｒ）に対して、前記送信対象データの再送信を要求する再送信要求手段（Ｄ３Ｇ）、
を備えたことを特徴とする。
【００２１】
（第１発明の形態３の作用）
前記構成要件を備えた第１発明の形態３の情報処理装置（Ｈ）では、再送信要求手段（Ｄ３Ｇ）は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記ＵＳＢ接続機器（Ｐｒ）に対して、前記送信対象データの再送信を要求する。したがって、送信エラーが発生した場合に、送信対象データを自動的に再取得することができる。
【００２２】
（第１発明の形態４）
また、第１発明の形態４の情報処理装置（Ｈ）は、前記第１発明の形態２の情報処理装置（Ｈ）において、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段（Ｄ３Ｈ）、
を備えたことを特徴とする。
【００２３】
（第１発明の形態４の作用）
前記構成要件を備えた第１発明の形態４の情報処理装置（Ｈ）では、送信結果告知手段（Ｄ３Ｈ）は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する。したがって、前記告知によって、送信要求された送信対象データの送信中に、送信エラーが発生したことを認識でき、再送信要求や、ユーザへの告知等の処理を実行することができる。
【００２４】
（第２発明）
前記技術的課題を解決するために第２発明のＵＳＢ接続機器（Ｐｒ）は、ＵＳＢ接続可能な情報処理装置（Ｈ）に接続されるＵＳＢ接続機器（Ｐｒ）において、
前記情報処理装置（Ｈ）から送信を要求された送信対象データを前記情報処理装置（Ｈ）に送信する送信対象データ送信手段（Ｃ２Ｃ）と、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段（Ｃ２Ａ）と、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置（Ｈ）に送信する送信対象データ総量告知手段（Ｃ２Ｂ）と、
を備えたことを特徴とする。
【００２５】
（第２発明の作用）
前記構成要件を備えた第２発明のＵＳＢ接続機器（Ｐｒ）では、送信対象データ総量検出手段（Ｃ２Ａ）は、前記情報処理装置（Ｈ）へ送信する送信対象データの総データ量である送信対象データ総量を検出する。前記送信対象データ総量を送信するよう要求があった場合に、送信対象データ総量告知手段（Ｃ２Ｂ）は、前記送信対象データの前記送信対象データ総量を前記情報処理装置（Ｈ）に送信する。そして、前記情報処理装置（Ｈ）から送信を要求された送信対象データは、送信対象データ送信手段（Ｃ２Ｃ）によって前記情報処理装置（Ｈ）に送信される。したがって、情報処理装置（Ｈ）から送信対象データ総量を送信する要求がある場合に、送信対象データ総量検出手段（Ｃ２Ａ）で検出した送信対象データ総量を送信することができる。この結果、前記送信対象データ総量に基づいて、情報処理装置（Ｈ）は、送信対象データの有無及び送信対象データの総データ量を認識することができ、送信対象データ総量に応じた送信要求コマンドを送信可能となる。この結果、第２発明のＵＳＢ接続機器（Ｐｒ）は、不要なＵＳＢコマンドを受信することを少なくでき、他のＵＳＢ接続機器（Ｐｒ）と情報処理装置（Ｈ）とのデータの送受信に悪影響を及ぼすことを防止できる。
【００２６】
（第２発明の形態１）
また、第２発明の形態１のＵＳＢ接続機器（Ｐｒ）は、前記第２発明のＵＳＢ接続機器（Ｐｒ）において、
前記ＵＳＢ接続機器（Ｐｒ）が前記情報処理装置（Ｈ）に新たに接続された際に、前記情報処理装置（Ｈ）から送信された、前記ＵＳＢ接続機器（Ｐｒ）が送信対象データ総量告知手段（Ｃ２Ｂ）を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置（Ｈ）に対して前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを示す応答をする総量告知手段実装応答手段（Ｃ１Ａ）、
を備えたことを特徴とする。
【００２７】
（第２発明の形態１の作用）
前記構成要件を備えた第２発明の形態１のＵＳＢ接続機器（Ｐｒ）では、前記ＵＳＢ接続機器（Ｐｒ）が前記情報処理装置（Ｈ）に新たに接続された際に、前記情報処理装置（Ｈ）から送信された、前記ＵＳＢ接続機器（Ｐｒ）が送信対象データ総量告知手段（Ｃ２Ｂ）を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、総量告知手段実装応答手段（Ｃ１Ａ）は、前記情報処理装置（Ｈ）に対して前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを示す応答をする。したがって、第２発明の形態１のＵＳＢ接続機器（Ｐｒ）では、ＵＳＢ接続機器（Ｐｒ）が送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを情報処理装置（Ｈ）に認識させることできるので、第２発明の形態１のＵＳＢ接続機器（Ｐｒ）に送信対象データの送信の要求あった場合に、送信要求コマンドを送信する前に、送信対象データ総量を送信するように情報処理装置（Ｈ）に処理させることができる。
【００２８】
（第３発明）
前記技術的課題を解決するために、第３発明の情報処理装置制御プログラムは、
ＵＳＢ接続機器（Ｐｒ）がＵＳＢ接続された情報処理装置（Ｈ）を、
前記ＵＳＢ接続機器（Ｐｒ）から前記情報処理装置（Ｈ）へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段（Ｃ２Ｂ）を前記ＵＳＢ接続機器（Ｐｒ）が備えていることを記憶する総量告知手段有無記憶手段（Ｄ２Ａ）、
前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えた前記ＵＳＢ接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段（Ｄ３Ａ）、
前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段（Ｄ３Ｂ）、
前記総量応答データに基づいて、前記送信対象データが前記ＵＳＢ接続機器（Ｐｒ）に存在するか否かを判別する送信対象データ有無判別手段（Ｄ３Ｃ）、
として機能させることを特徴とする。
【００２９】
（第３発明の作用）
前記構成要件を備えた第３発明の情報処理装置制御プログラムでは、総量告知手段有無記憶手段（Ｄ２Ａ）は、前記ＵＳＢ接続機器（Ｐｒ）から前記情報処理装置（Ｈ）へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段（Ｃ２Ｂ）を前記ＵＳＢ接続機器（Ｐｒ）が備えていることを記憶する。前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えた前記ＵＳＢ接続機器に対してデータの送信を要求する場合、送信対象データ総量要求手段（Ｄ３Ａ）は、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する。前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データが送信対象データ総量記憶手段（Ｄ３Ｂ）によって記憶される。そして、送信対象データ有無判別手段（Ｄ３Ｃ）は、前記総量応答データに基づいて、前記送信対象データが前記ＵＳＢ接続機器（Ｐｒ）に存在するか否かを判別する。
【００３０】
したがって、前記第３発明の情報処理装置制御プログラムでは、送信対象データの送信を要求する前に、送信対象データ総量の要求に対する総量応答データを受信し、前記総量応答データに基づいて、送信対象データの有無を判別できる。そして、前記送信対象データの有無の判別結果によって、送信対象データがある場合には送信要求を行い、送信対象データがない場合（例えば、送信対象データ総量が０の総量応答データや、送信対象データ無しの総量応答データを受信した場合）には送信要求を行わないように制御することができ、不要なＵＳＢコマンドを送信することを防止できる。この結果、送信対象データが無い場合にＡＣＫの応答を受信するまで不要な送信要求コマンドを送信し続けることを防止でき、他のＵＳＢ接続機器のデータ転送へ悪影響を及ぼすことを防止できる。
【００３１】
（第３発明の形態１）
また、第３発明の形態１の情報処理装置制御プログラムは、前記第３発明の情報処理装置制御プログラムにおいて、
ＵＳＢ接続機器（Ｐｒ）がＵＳＢ接続された情報処理装置（Ｈ）を、
前記送信対象データ総量告知手段（Ｃ２Ｂ）を前記ＵＳＢ接続機器（Ｐｒ）が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置（Ｈ）に新たにＵＳＢ接続機器（Ｐｒ）が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段（Ｄ１Ａ）、
前記ＵＳＢ接続機器（Ｐｒ）から前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを示す応答がある場合に、前記新たに接続されたＵＳＢ接続機器（Ｐｒ）が前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていると記憶する前記総量告知手段有無記憶手段（Ｄ２Ａ）、
として機能させることを特徴とする。
【００３２】
（第３発明の形態１の作用）
前記構成要件を備えた第３発明の形態１の情報処理装置制御プログラムでは、前記情報処理装置（Ｈ）に新たにＵＳＢ接続機器（Ｐｒ）が接続された際に、総量告知手段有無確認用ベンダリクエストコマンド送信手段（Ｄ１Ａ）は、前記送信対象データ総量告知手段（Ｃ２Ｂ）を前記ＵＳＢ接続機器（Ｐｒ）が備えているか否かを確認するためのベンダリクエストコマンドを送信する。そして、前記ＵＳＢ接続機器（Ｐｒ）から前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを示す応答がある場合には、総量告知手段有無記憶手段（Ｄ２Ａ）は、前記新たに接続されたＵＳＢ接続機器（Ｐｒ）が前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていること記憶する。したがって、情報処理装置（Ｈ）に接続されたＵＳＢ接続機器（Ｐｒ）が、送信対象データ総量告知手段（Ｃ２Ｂ）を備えているか否かをＵＳＢ接続機器（Ｐｒ）毎に記憶し、管理することができる。この結果、送信対象データ総量告知手段（Ｃ２Ｂ）を備えていないＵＳＢ接続機器（Ｐｒ）に対して、送信対象データ総量を送信するように要求することを防止できる。
【００３３】
（第３発明の形態２）
また、第３発明の形態２の情報処理装置制御プログラムは、前記第３発明または第３発明の形態１の情報処理装置制御プログラムにおいて、
ＵＳＢ接続機器（Ｐｒ）がＵＳＢ接続された情報処理装置（Ｈ）を、
前記送信対象データが前記ＵＳＢ接続機器（Ｐｒ）に存在する場合に、前記ＵＳＢ接続機器（Ｐｒ）に対して送信対象データの送信を要求する送信対象データ送信要求手段（Ｄ３Ｄ）、
前記ＵＳＢ接続機器（Ｐｒ）から送信され情報処理装置（Ｈ）が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段（Ｄ３Ｅ１）、
前記受信データ総量と、前記送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段（Ｄ３Ｆ）、
として機能させることを特徴とする。
【００３４】
（第３発明の形態２の作用）
前記構成要件を備えた第３発明の形態２の情報処理装置制御プログラムでは、前記送信対象データが前記ＵＳＢ接続機器（Ｐｒ）に存在する場合、送信対象データ送信要求手段（Ｄ３Ｄ）は、前記ＵＳＢ接続機器（Ｐｒ）に対して送信対象データの送信を要求する。前記ＵＳＢ接続機器（Ｐｒ）から送信され情報処理装置（Ｈ）が受信した受信データの総データ量である受信データ総量が、受信データ総量記憶手段（Ｄ３Ｅ１）によって記憶される。そして、データ総量一致判別手段（Ｄ３Ｆ）によって、前記受信データ総量と、前記総量応答データに含まれる前記送信対象データ総量とが、同一か否かが判別される。
【００３５】
したがって、前記受信データ総量と送信対象データ総量とが同一の場合、送信対象データは、転送エラーが無く転送されたと判断できる。即ち、バルク転送時や、インタラプト転送時等だけでなく、ＵＳＢ接続機器（Ｐｒ）内部でもエラー無く転送されたものと判断できる。そして、前記受信データ総量と送信対象データ総量とが同一でない場合、バルク転送等及びＵＳＢ接続機器（Ｐｒ）内部でのデータ転送のいずれかのデータ転送時に、エラーが発生したものと判断できる。したがって、送信エラーの発生を判別できるので、データ転送の信頼性を高めることができる。
【００３６】
（第３発明の形態３）
また、第３発明の形態３の情報処理装置制御プログラムは、前記第３発明の形態２の情報処理装置制御プログラムにおいて、
ＵＳＢ接続機器（Ｐｒ）がＵＳＢ接続された情報処理装置（Ｈ）を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記ＵＳＢ接続機器（Ｐｒ）に対して、前記送信対象データの再送信を要求する再送信要求手段（Ｄ３Ｇ）、
として機能させることを特徴とする。
【００３７】
（第３発明の形態３の作用）
前記構成要件を備えた第３発明の形態３の情報処理装置制御プログラムでは、再送信要求手段（Ｄ３Ｇ）は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記ＵＳＢ接続機器（Ｐｒ）に対して、前記送信対象データの再送信を要求する。したがって、送信エラーが発生した場合に、送信対象データを自動的に再取得することができる。
【００３８】
（第３発明の形態４）
また、第３発明の形態４の情報処理装置制御プログラムは、前記第３発明の形態２の情報処理装置制御プログラムにおいて、
ＵＳＢ接続機器（Ｐｒ）がＵＳＢ接続された情報処理装置（Ｈ）を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段（Ｄ３Ｈ）、
として機能させることを特徴とする。
【００３９】
（第３発明の形態４の作用）
前記構成要件を備えた第３発明の形態４の情報処理装置制御プログラムでは、送信結果告知手段（Ｄ３Ｈ）は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する。したがって、前記告知によって、要求された送信対象データを送信中に、送信エラーが発生したことを認識でき、再送信要求や、ユーザへの告知等の処理を実行することができる。
【００４０】
（第４発明）
前記技術的課題を解決するために第４発明のＵＳＢ接続機器制御プログラムは、
ＵＳＢ接続可能な情報処理装置（Ｈ）に接続されるＵＳＢ接続機器（Ｐｒ）を、
前記情報処理装置（Ｈ）から送信を要求された送信対象データを前記情報処理装置（Ｈ）に送信する送信対象データ送信手段（Ｃ２Ｃ）と、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段（Ｃ２Ａ）と、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置（Ｈ）に送信する送信対象データ総量告知手段（Ｃ２Ｂ）と、
として機能させることを特徴とする。
【００４１】
（第４発明の作用）
前記構成要件を備えた第４発明のＵＳＢ接続機器制御プログラムでは、送信対象データ総量検出手段（Ｃ２Ａ）は、前記情報処理装置（Ｈ）へ送信する送信対象データの総データ量である送信対象データ総量を検出する。前記送信対象データ総量を送信するよう要求があった場合に、送信対象データ総量告知手段（Ｃ２Ｂ）は、前記送信対象データの前記送信対象データ総量を前記情報処理装置（Ｈ）に送信する。そして、前記情報処理装置（Ｈ）から送信を要求された送信対象データは、送信対象データ送信手段（Ｃ２Ｃ）によって前記情報処理装置（Ｈ）に送信される。
【００４２】
したがって、情報処理装置（Ｈ）から送信対象データ総量を送信する要求がある場合に、送信対象データ総量検出手段（Ｃ２Ａ）で検出した送信対象データ総量を送信することができる。この結果、前記送信対象データ総量に基づいて、情報処理装置（Ｈ）は、送信対象データの有無及び送信対象データの総データ量を認識することができ、送信対象データ総量に応じた送信要求コマンドを送信可能となる。この結果、第４発明のＵＳＢ接続機器制御プログラムでは、ＵＳＢ接続機器（Ｐｒ）が不要なＵＳＢコマンドを受信することを少なくでき、他のＵＳＢ接続機器（Ｐｒ）と情報処理装置（Ｈ）とのデータの送受信に悪影響を及ぼすことを防止できる。
【００４３】
（第４発明の形態１）
また、第４発明の形態１のＵＳＢ接続機器制御プログラムは、前記第４発明のＵＳＢ接続機器制御プログラムにおいて、
ＵＳＢ接続可能な情報処理装置（Ｈ）に接続されるＵＳＢ接続機器（Ｐｒ）を、
前記ＵＳＢ接続機器（Ｐｒ）が前記情報処理装置（Ｈ）に新たに接続された際に、前記情報処理装置（Ｈ）から送信された、前記ＵＳＢ接続機器（Ｐｒ）が送信対象データ総量告知手段（Ｃ２Ｂ）を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置（Ｈ）に対して前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを示す応答をする総量告知手段実装応答手段（Ｃ１Ａ）、
として機能させることを特徴とする。
【００４４】
（第４発明の形態１の作用）
前記構成要件を備えた第４発明の形態１のＵＳＢ接続機器制御プログラムでは、前記ＵＳＢ接続機器（Ｐｒ）が前記情報処理装置（Ｈ）に新たに接続された際に、前記情報処理装置（Ｈ）から送信された、前記ＵＳＢ接続機器（Ｐｒ）が送信対象データ総量告知手段（Ｃ２Ｂ）を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、総量告知手段実装応答手段（Ｃ１Ａ）は、前記情報処理装置（Ｈ）に対して前記送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを示す応答をする。したがって、第４発明の形態１のＵＳＢ接続機器制御プログラムでは、ＵＳＢ接続機器（Ｐｒ）が送信対象データ総量告知手段（Ｃ２Ｂ）を備えていることを情報処理装置（Ｈ）が認識できるので、ＵＳＢ接続機器（Ｐｒ）に送信対象データの送信の要求あった場合に、送信要求コマンドを送信する前に、送信対象データ総量を送信するように情報処理装置（Ｈ）に処理させることができる。
【００４５】
なお、前記第３発明及び第３発明の形態１〜４の情報処理装置制御プログラムは、情報処理装置（Ｈ）のコンピュータが読取り可能な記録媒体に記録することができる。また、前記第４発明及び第４発明の形態１のＵＳＢ接続機器制御プログラムは、ＵＳＢ接続機器（Ｐｒ）のコンピュータが読取り可能な記録媒体に記録することができる。
【００４６】
【発明の実施の形態】
（実施の形態）
次に図面を参照しながら、本発明の実施の形態を説明するが、本発明は以下の実施の形態に限定されるものではない。
（実施の形態１）
図１は本発明の実施の形態１の情報処理装置とＵＳＢ接続機器とがＵＳＢ接続された状態の説明図である。
図１において、ホストコンピュータ（情報処理装置）Ｈには、ＵＳＢケーブルＣｂを介して、プリンタ、スキャナ及び複写機としての機能を備えたデジタル複合機（ＵＳＢ接続機器、周辺機器）ＵがＵＳＢ接続されている。前記ホストコンピュータＨは、コンピュータ本体Ｈ１、ディスプレイＨ２、キーボード（入力装置）Ｈ３、マウス（入力装置）Ｈ４、図示しないＨＤドライブ（ハードディスクドライブ）、ＣＤドライブ（コンパクトディスクドライブ）、およびＦＤドライブ（フレキシブルディスクドライブ）等により構成されている。
【００４７】
図１において、前記複合機Ｕは、プリンタＵ１、イメージスキャナＵ２、自動原稿搬送装置Ｕ３を有している。前記プリンタＵ１は、内部に印刷用紙が収容された複数の給紙トレイＴＲ１〜ＴＲ４と、画像が記録された印刷用紙が排出される排出トレイＴＲｈを有している。前記自動原稿搬送装置Ｕ３は、イメージスキャナＵ２上面のプラテンガラス（図示せず）上に支持されている。前記自動原稿搬送装置Ｕ３は、複写しようとする複数の原稿が重ねて載置される原稿給紙トレイＴＧ１を有している。前記原稿給紙トレイＴＧ１に載置された複数の各原稿は順次プラテンガラス上の複写位置を通過して原稿排紙トレイＴＧ２に排出されるように構成されている。前記自動原稿搬送装置Ｕ３は、その後端部（−Ｘ端部）に設けた左右方向に延びるヒンジ軸（図示せず）により前記プラテンガラス上面に対して回動可能であり、原稿を作業者が手でプラテンガラス上に置く場合に上方に回動される。そして、前記複合機Ｕは、複合機Ｕの設定情報等をユーザが設定するためのユーザインタフェース（入力装置）ＵＩを備えている。
【００４８】
前記ホストコンピュータＨのコンピュータ本体Ｈ１及び複合機Ｕは、それぞれ、外部との信号の入出力および入出力信号レベルの調節等を行うＩ／Ｏ（入出力インターフェース）、必要な処理を行うためのプログラムおよびデータ等が記憶されたＲＯＭ（リードオンリーメモリ、記録媒体）やハードディスク（記録媒体）、必要なデータを一時的に記憶するためのＲＡＭ（ランダムアクセスメモリ、記録媒体）、ハードディスクやＲＯＭ等に記憶されたプログラムに応じた処理を行うＣＰＵ（中央演算処理装置、マイクロコンピュータ）、ならびにクロック発振器等を有している。前記構成のホストコンピュータＨ及び複合機Ｕは、前記ハードディスクやＲＯＭ等に記憶されたプログラムを実行することにより種々の機能を実現することができる。
【００４９】
（ホストコンピュータＨの機能）
図２は前記図１の情報処理装置（ホストコンピュータ）の機能をブロック図（機能ブロック図）で示した図である。
図２において、ホストコンピュータＨのコンピュータ本体Ｈ１の前記ハードディスクドライブ（記録媒体）には、複合機ＵのイメージスキャナＵ２で読み取った（スキャニングした）画像データを編集・印刷するための画像処理ソフトを含むアプリケーションプログラムＡＰが記憶されている（組み込まれている）。また、前記ホストコンピュータＨには、ＵＳＢ規格のデータ転送（送受信）を実現するためにデータ転送の制御や、データの変換、エラー処理等を行うＵＳＢドライバＵＤが記憶されている。したがって、前記アプリケーションプログラムＡＰが複合機Ｕに記憶された画像データを読み出す場合に、アプリケーションプログラムＡＰがＵＳＢドライバＵＤにデータの転送を要求し、複合機ＵからＵＳＢケーブルＣｂを介して画像データ（送信対象データ）の転送を行う。そして、受信した送信対象データは、アプリケーションプログラムＡＰの受信データ記憶手段ＡＰ１に記憶される。
【００５０】
（ＵＳＢドライバＵＤの機能）
ＵＳＢドライバＵＤは、ホストコンピュータＨの起動時（電源オン時）や、起動中のホストコンピュータＨにＵＳＢ接続で周辺機器（デバイス）が接続された時に、接続されたデバイスを検出し、ＵＳＢ規格の所定のエニュメレーション処理（各デバイスを制御するための情報を読み取ったり、管理するためのアドレスを割り付けたりする処理）を実行するデバイス検出手段Ｄ１を有している。前記デバイス検出手段Ｄ１は、総量告知手段有無確認用ベンダリクエストコマンド送信手段Ｄ１Ａを有している。前記総量告知手段有無確認用ベンダリクエストコマンド送信手段Ｄ１Ａは、前記エニュメレーション処理において送信されるＵＳＢ規格の所定のデータに、接続されたデバイスが送信対象データ総量告知手段を備えているか否かを確認するための総量告知手段確認用ベンダリクエストコマンドを付加して送信する。前記送信対象データ総量告知手段（Ｃ２Ｂ）は、図３で後述する周辺機器（複合機Ｐｒ）に実装された手段であり、送信対象データの総データ量である送信対象データ総量を送信するよう要求があった場合に、要求のあった前記送信対象データの前記送信対象データ総量を送信する。
【００５１】
前記総量告知手段有無確認用ベンダリクエストコマンド送信手段Ｄ１Ａは、タイムアウト検出用タイマＴＭ１と、有無確認用タイムアウト時間記憶手段Ｄ１Ａ１とを有する。前記タイムアウト検出用タイマＴＭ１には、有無確認用タイムアウト時間記憶手段Ｄ１Ａ１に記憶された有無確認用タイムアウト時間ｔ１（３秒程度）がセットされ、前記総量告知手段有無確認用ベンダリクエストコマンド送信手段Ｄ１Ａによって総量告知手段有無確認用ベンダリクエストコマンドが送信されてから有無確認用タイムアウト時間ｔ１が経過するまでの間に複合機Ｐｒから応答があるか否かの判別に使用される。なお、前記有無確認用タイムアウト時間ｔ１の設定値は、適宜変更可能である。
【００５２】
そして、前記エニュメレーション処理時に、デバイス検出手段Ｄ１により読み取った周辺機器の情報（デバイス情報）がデバイス情報記憶手段Ｄ２に記憶される。前記デバイス情報記憶手段Ｄ２は、総量告知手段有無記憶手段Ｄ２Ａを有している。前記総量告知手段有無記憶手段Ｄ２Ａは、前記総量告知手段有無確認用ベンダリクエストコマンドに応じて、接続された複合機Ｐｒが送信対象データ総量告知手段を備えているか否かを記憶する。実施の形態１では、前記ベンダリクエストコマンドに応じて、有無確認用タイムアウト時間ｔ１が経過する前に複合機Ｐｒから送信対象データ総量告知手段を備えていることを示す応答があった場合に、送信対象データ総量告知手段を備えていると判別して、記憶する。一方、前記有無確認用タイムアウト時間ｔ１が経過しても、送信対象データ総量告知手段を備えていることを示す応答が転送されない場合には、送信対象データ総量告知手段を備えていないものと判別して、記憶する。
【００５３】
前記複合機Ｐｒに対して、アプリケーションＡＰからデータの送信の要求があった場合、ホスト用データ送受信制御手段Ｄ３によって送信対象データの送受信が制御される。前記ホスト用データ送受信制御手段Ｄ３は、送信対象データ総量要求手段Ｄ３Ａを有している。前記送信対象データ総量要求手段Ｄ３Ａは、送信対象データ総量告知手段を備えた複合機Ｐｒに対してアプリケーションＡＰからデータの送信の要求があった場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求するためのリクエストコマンドを発行（送信）する。実施の形態１では、前記送信対象データ総量の送信を要求するためのリクエストコマンドは、コントロール転送で送信され、前記リクエストに応じて複合機Ｐｒから送信される総量応答データを受信した場合に、受信した総量応答データを記憶する送信対象データ総量記憶手段（総量応答データ記憶手段）Ｄ３Ｂに記憶される。
【００５４】
そして、送信対象データ総量の送信を要求するためのリクエストコマンドに対する応答に応じて、アプリケーションプログラムＡＰから要求のあった送信対象データが複合機Ｐｒに有るか否かが、送信対象データ有無判別手段Ｄ３Ｃによって判別される。実施の形態１では、リクエストコマンドに応じて送信された総量応答データに含まれる送信対象データ総量が０バイトである場合に、送信対象データ有無判別手段Ｄ３Ｃは、送信対象データが複合機Ｐｒに存在しないものと判別して、そのことをアプリケーションプログラムＡＰに告知する。
なお、実施の形態１では、前記総量応答データとしての送信対象データ総量が０で有るか否かによって送信対象データの有無を判別しているが、これに替えて、送信対象データが存在しない場合に総量応答データを送信しないように複合機Ｐｒを構成して、前記リクエストコマンドに応じて総量応答データが送信されない場合に、送信対象データが無いものと判別することも可能である。さらに、周辺機器に送信対象データが無い場合に、データ総量０バイトではなく、データ無しを示す総量応答データを送信する手段を複合機Ｐｒが備えている場合にデータ無しの総量応答データに応じて送信対象データが無いものと判別することも可能である。
【００５５】
一方、送信対象データ総量が０バイトでない場合には、送信対象データ有無判別手段Ｄ３Ｃは送信対象データが有るものと判別し、送信対象データが有るものと判別されると、送信対象データ送信要求手段Ｄ３Ｄが送信対象データの送信を要求するためのバルクＩｎコマンド（バルク転送でＩｎ方向の転送を行うことを指定するコマンド）を発行する（送信する）。前記バルクＩｎコマンドに応じて複合機Ｐｒから送信対象データが送信され、ホストコンピュータＨが受信した送信対象データの総量である受信データ総量が受信データ総量カウント手段Ｄ３Ｅによってカウントされ、受信データ総量記憶手段Ｄ３Ｅ１に記憶される。
【００５６】
前記受信データ総量記憶手段Ｄ３Ｅ１に記憶された受信データ総量と、前記送信対象データ総量記憶手段Ｄ３Ｂに記憶された送信対象データ総量とが、一致するか否かがデータ総量一致判別手段Ｄ３Ｆによって逐次判別される。前記データ総量一致判別手段Ｄ３Ｆは、複合機Ｐｒによる送信対象データの送信が終了したか否かを判別する受信終了判別手段Ｄ３Ｆ１を有する。実施の形態１の前記受信終了判別手段Ｄ３Ｆ１は、データの送受信中に、バルクＩｎコマンドによる送信要求に対して所定のデータ量よりも小さなデータ（送信対象データの最後のデータ、０バイトのデータも含む）を受信した場合、または前記受信データ総量が送信対象データ総量よりも大きくなった場合に受信終了と判別する。
【００５７】
前記データ総量一致判別手段Ｄ３Ｆは、受信終了と判別されず且つ前記受信データ総量が送信対象データ総量に満たない場合には、送受信中と判別して、送信対象データ送信要求手段Ｄ３Ｄに、引き続きバルクＩｎコマンドを発行させる。前記受信が終了したと判別された際に、前記受信データ総量と送信対象データ総量とが一致している場合、送信対象データの受信が正常に完了したものとデータ総量一致判別手段Ｄ３Ｆは判別する。一方、受信が終了したと判別された際に、前記受信データ総量が送信対象データ総量に満たない場合や、前記受信データ総量が送信対象データ総量よりも大きくなった場合には、データ総量一致判別手段Ｄ３Ｆは転送エラーが発生したものと判別し、前記送信対象データ送信要求手段Ｄ３ＤによるバルクＩｎコマンドの発行を停止させる。
【００５８】
前記転送エラーが発生したものと判別された場合、データ総量一致判別手段Ｄ３Ｆは、再送信要求手段Ｄ３Ｇに送信対象データの再送信が要求させる。実施の形態１では、再送信要求手段Ｄ３Ｇは、転送エラーが発生した場合、受信したデータ及び受信データ総量カウント手段Ｄ３Ｅでカウントされたカウント値（受信データ総量）を破棄して、送信対象データ送信要求手段Ｄ３Ｄに再びバルクＩｎコマンドを発行するように制御する。このとき、前記データ総量一致判別手段Ｄ３Ｆは、送信結果告知手段（送信エラー告知手段）Ｄ３Ｈを制御して、アプリケーションプログラムＡＰに転送エラー（送信エラー）が発生した旨を告知させる。なお、前記送信結果告知手段Ｄ３Ｈは、データ総量一致判別手段Ｄ３Ｆが送受信が正常に完了したと判別した場合には、アプリケーションプログラムＡＰに正常に終了したことを告知する。前記アプリケーションプログラムＡＰは、前記告知の結果の告知に応じて所定の処理を実行する。例えば、転送エラーが発生した場合、ディスプレイＨ２に転送エラー告知用の画像を表示してユーザに告知し、正常に送受信が完了した場合、正常終了時の画像を表示することができる。
【００５９】
なお、前記ＵＳＢドライバＵＤの各手段Ｄ１〜Ｄ３が送信するリクエストコマンド等のデータは、バッファＢＦの送信用バッファＢＦ１に一時記憶された後、ＵＳＢポートを介して複合機Ｐｒに送信される。そして、複合機Ｐｒから送信された送信対象データ総量等のデータは、ＵＳＢポートを介してバッファＢＦの受信用バッファＢＦ２に一時記憶され、各記憶手段ＡＰ１，Ｃ２Ｂ，Ｃ３Ｂに転送される。
その他、前記ＵＳＢドライバＵＤは、ＵＳＢ規格に定められた送受信を実現するための図示しない手段（規格上最低限備えていなければならないリクエストコマンドを記憶する手段や、各リクエストコマンドを送信する手段、エラーチェックビットによる転送エラーの発生を判別する手段等）を備えている。
【００６０】
（複合機Ｐｒの機能）
図３は前記図１の周辺機器（デジタル複合機）の機能をブロック図（機能ブロック図）で示した図である。
図３において、複合機Ｐｒに実装されたハードディスクドライブ（記録媒体）には、複合機Ｕで印刷や、画像読取り（スキャニング）、複写（コピー）する際の各部材の動作を制御する複合機制御プログラムＦＰが組み込まれている。前記複合機制御プログラムＦＰは、印刷時にプリンタＵ１内部の各部材の動作を制御する印刷制御手段ＦＰ１と、スキャニング又は複写する際の画像読取り時にイメージスキャナＵ２や自動原稿搬送装置Ｕ３の動作を制御するスキャナ制御手段ＦＰ２を有している。そして、前記スキャナ制御手段ＦＰ２で読み取った画像データや、ホストコンピュータＨから送信された印刷対象の画像データを記憶する画像データ記憶手段ＦＰ３を有している。
また、前記複合機Ｐｒには、ＵＳＢコントローラＵＣが組み込まれており、前記ＵＳＢドライバと同様に、前記ホストコンピュータＨと前記複合機Ｐｒとの間のＵＳＢ規格のデータの転送（送受信）を制御する。
【００６１】
（ＵＳＢコントローラの機能）
図３において、前記ＵＳＢコントローラＵＣは、前記ホストコンピュータＨのＵＳＢドライバＵＤと同様に、送受信するデータを一時記憶するバッファＢＦを有している。そして、ＵＳＢコントローラＵＣは、前記エニュメレーション時にホストコンピュータＨから送信されるリクエストコマンドに応答するデバイス検出応答手段Ｃ１を備えている。前記デバイス検出応答手段Ｃ１は、前記ホストコンピュータＨから総量告知手段有無確認用ベンダリクエストコマンドが送信された場合に、ホストコンピュータＨに対して送信対象データ総量告知手段を備えていることを示す応答をする総量告知手段実装応答手段Ｃ１Ａを有している。
【００６２】
また、前記ＵＳＢコントローラＵＣは、ホストコンピュータＨから印刷する画像データが送信された場合や、イメージスキャナＵ２で読み取った画像をホストコンピュータＨに送信する場合に、データの送受信を制御する周辺機器用データ送受信制御手段Ｃ２を有している。前記周辺機器用データ送受信制御手段Ｃ２は、送信対象データ総量検出手段Ｃ２Ａを有しており、送信対象データ総量検出手段Ｃ２Ａは、受信用バッファＢＦ２が送信対象データ総量を要求するクエストコマンドを受信した場合に、画像データ記憶手段ＦＰ３に記憶されたデータの中から、送信対象データを特定し、送信対象データの総データ量である送信対象データ総量を検出する。
【００６３】
そして、検出された送信対象データ総量が、送信対象データ総量告知手段Ｃ２Ｂによって、ホストコンピュータＨに送信される。このとき、前記送信対象データ総量告知手段Ｃ２Ｂは、画像データ記憶手段ＦＰ３に記憶されたデータの中に送信対象データがない場合（例えば、画像データ記憶手段ＦＰ３に記憶されたデータが１つもない場合等）には、送信対象データ総量として０バイトを送信する。
前記送信対象データがあり、複合機Ｐｒが前記送信対象データ送信要求手段Ｄ３Ｄで発行されたバルクＩｎコマンドを受信した場合、送信対象データ送信手段Ｃ２Ｃは、前記バルクＩｎコマンドに応じて、送信対象データを送信する。
その他、前記ＵＳＢコントローラＵＣは、ＵＳＢ規格に定められた送受信を実現するための図示しない手段（規格上最低限備えていなければならないリクエストコマンドに対する応答を記憶する手段や、各応答を送信する手段、エラーチェックビットによる転送エラーの発生を判別する手段等）を備えている。
【００６４】
（実施の形態１のフローチャートの説明）
（ホストコンピュータのＵＳＢドライバのメインフローチャート）
図４は本発明の実施の形態１のホストコンピュータにおけるＵＳＢドライバの処理のメインフローチャートである。
図４のフローチャートの各ＳＴ（ステップ）の処理は、前記ホストコンピュータＨに記憶されたＵＳＢドライバ制御プログラム（情報処理装置制御プログラム）に従って実行される。また、図４の処理は他の処理と並行してマルチタスクで実行される。
図４のメインフローチャートは、ホストコンピュータＨの電源オンによって開始（スタート）する。
【００６５】
図４のＳＴ１において、ホストコンピュータＨの電源がオンになった直後（電源オン時）か否かを判別する。ノー（Ｎ）の場合はＳＴ２に移り、イエス（Ｙ）の場合はＳＴ５に移る。
ＳＴ２において、ホストコンピュータＨが起動中に新たな周辺機器が接続が検出されたか否かを判別する。ノー（Ｎ）の場合はＳＴ３に移り、イエス（Ｙ）の場合はＳＴ５に移る。
ＳＴ３において、周辺機器へのデータの送信要求がされたか否かを判別する。ノー（Ｎ）の場合はＳＴ１に戻り、イエス（Ｙ）の場合はＳＴ４に移る。
ＳＴ４において、ホストコンピュータＨと周辺機器（複合機Ｐｒを含む）との間のデータの送受信を行うデータ送受信処理（後述の図５のサブルーチン参照）が実行される。そして、ＳＴ１に戻る。
【００６６】
ＳＴ５において、ＵＳＢ接続された周辺機器の情報読み込みや設定、管理するためのアドレスの割付等を行うバスエニュメレーションが開始される。前記エニュメレーションは、コントロール転送を使用して実行される。コントロール転送は、リクエストに関する情報を送信してコントロール転送の開始を告知するセットアップステージと、設定情報等の読み込むデータをホストコンピュータＨと周辺機器との間で送受信するデータステージと、セットアップステージ及びデータステージが正常に終了したか否かを報告するデータを送受信するステータスステージとを有する。そして、ＳＴ５では、エニュメレーションのデータステージにおいて総量告知手段確認用ベンダリクエストコマンドが付加されたデータが送信される。なお、前記エニュメレーションは、電源オン時には全ての周辺機器に対して実行されるが、新たな周辺機器が接続された場合には、接続された新たな周辺機器のみに対して実行される。そして、ＳＴ６に移る。
【００６７】
ＳＴ６において、タイムアウト検出用タイマＴＭ１に有無確認用タイムアウト時間ｔ１をセットし、ＳＴ７に移る。
ＳＴ７において、前記タイムアウト検出用タイマＴＭ１がタイムアップしたか否か、即ち、有無確認用タイムアウト時間ｔ１が経過したか否かを判別する。ノー（Ｎ）の場合はＳＴ８に移り、イエス（Ｙ）の場合はＳＴ１０に移る。
ＳＴ８において、周辺機器からホストコンピュータＨに送信対象データ総量告知手段Ｃ２Ｂを備えている（実装している）ことを示す応答があったか否かを判別する。イエス（Ｙ）の場合はＳＴ９に移り、ノー（Ｎ）の場合はＳＴ７に戻る。
【００６８】
ＳＴ９において、総量告知手段実装応答手段Ｃ１Ａから送信対象データ総量告知手段Ｃ２Ｂを備えていることを示す応答があると、ホストコンピュータＨの総量告知手段有無記憶手段Ｄ２Ａはその周辺機器が送信対象データ総量告知手段Ｃ２Ｂを備えていることを記憶する。
ＳＴ１０において、前記有無確認用タイムアウト時間ｔ１が経過しても送信対象データ総量告知手段Ｃ２Ｂを備えていることを示す応答がないと、ホストコンピュータＨの総量告知手段有無記憶手段Ｄ２Ａはその周辺機器が送信対象データ総量告知手段Ｃ２Ｂを備えていないことを記憶する。
ＳＴ１１において、周辺機器が送信対象データ総量告知手段Ｃ２Ｂを備えていない場合に、そのまま放置しておくとエニュメレーションがいつまでも終了せず、他の周辺機器のデータ送受信に悪影響を及ぼす可能性があるので、総量告知手段確認用ベンダリクエストコマンドのデータステージを終了し、ＳＴ１に戻る。
【００６９】
（データ送受信処理のフローチャートの説明）
図５は前記図４のＳＴ４のデータ送受信処理のサブルーチンのフローチャートである。
図５のＳＴ２１において、アプリケーションプログラムＡＰによって送信するように要求された周辺機器が、送信対象データ総量告知手段Ｃ２Ｂを実装しているか否かを総量告知手段有無記憶手段Ｄ２Ａを参照して判別する。ノー（Ｎ）の場合はＳＴ２２に移り、イエス（Ｙ）の場合はＳＴ２３に移る。
ＳＴ２２において、送信対象データ総量告知手段Ｃ２Ｂを実装していない周辺機器への送信要求の場合には、通常の送受信処理、即ち、送信対象データ総量の送信を要求せず、送信対象データの送信を要求して送信対象データを受信する。
【００７０】
ＳＴ２３において、送信対象データ総量告知手段Ｃ２Ｂを実装している周辺機器への送信要求の場合、例えば、実施の形態１の複合機Ｐｒへの送信要求の場合には、送信対象データの送信対象データ総量（送信対象データサイズ）を要求するベンダリクエストコマンドを送信する。そして、ＳＴ２４に移る。
ＳＴ２４において、前記送信対象データ総量要求用ベンダリクエストコマンドに対する応答である送信対象データ総量（送信対象データサイズ）を受信したか否かを判別する。ノー（Ｎ）の場合はＳＴ２４を繰り返し、イエス（Ｙ）の場合はＳＴ２５に移る。
ＳＴ２５において、受信した送信対象データサイズを送信対象データ総量記憶手段Ｄ３Ｂに記憶し、ＳＴ２６に移る。
【００７１】
ＳＴ２６において、送信対象データ総量記憶手段Ｄ３Ｂが記憶した送信対象データサイズが０で有るか否か、即ち、送信対象データが周辺機器に有るか（記憶されているか）否かを判別する。
ＳＴ２７において、送信対象データが周辺機器に無いことをアプリケーションプログラムＡＰに告知する。そして、図５のデータ送受信処理のサブルーチンを終了して、図４のＳＴ４に戻る。
ＳＴ２８において、送信対象データが周辺機器に記憶されているので、送信対象データの送信を要求し、受信を開始する。
【００７２】
ＳＴ２９において、前記送信対象データの受信が終了したか否かを判別する。ノー（Ｎ）の場合はＳＴ３０に移り、イエス（Ｙ）の場合はＳＴ３１に移る。
ＳＴ３０において、受信した送信対象データの受信データ総量（受信データサイズ）が送信対象データサイズよりも大きいか否かを判別する。ノー（Ｎ）の場合は受信を継続中なのでＳＴ２９に戻り、イエス（Ｙ）の場合はＳＴ３３に移る。
ＳＴ３１において、受信が終了した送信対象データの受信データサイズが、前記ＳＴ２５で記憶した送信対象データサイズと一致するか否かを判別する。イエス（Ｙ）の場合はＳＴ３２に移り、ノー（Ｎ）の場合はＳＴ３３に移る。
【００７３】
ＳＴ３２において、実際に受信した送信対象データの受信データサイズと、予め受信していた送信対象データサイズとが一致しているので、送信対象データの転送中にエラーが発生せず、正常に送受信が終了したので、アプリケーションプログラムＡＰに送信が正常に終了したことを告知する。そして、図５のデータ送受信処理のサブルーチンを終了して、図４のＳＴ４に戻る。
ＳＴ３３において、受信データサイズと送信対象データサイズとが一致しない場合や、受信途中の受信データサイズが送信対象データサイズよりも大きくなった場合には、転送エラーが発生しているので、次の処理（１）、（２）を実行する。
（１）送信エラーが発生したことをアプリケーションプログラムＡＰに告知する。
（２）送信対象データの受信を停止して受信データ記憶手段ＡＰ１に記憶した受信データを破棄するとともに、受信データサイズを０に初期化する。
そして、ＳＴ２８に戻り、送信対象データの再送信を開始する。
【００７４】
（複合機のＵＳＢコントローラのメインフローチャート）
図６は本発明の実施の形態１の複合機におけるＵＳＢコントローラの処理のメインフローチャートである。
図６のフローチャートの各ＳＴ（ステップ）の処理は、前記ホストコンピュータＨに記憶されたＵＳＢコントローラ制御プログラム（ＵＳＢ接続機器制御プログラム）に従って実行される。また、図６の処理は他の処理と並行してマルチタスクで実行される。
図６のメインフローチャートは、複合機Ｐｒの電源オンによって開始（スタート）する。
【００７５】
図６のＳＴ５１において、ホストコンピュータＨから送信された総量告知手段有無確認用ベンダリクエストコマンドを受信したか否かを判別する。イエス（Ｙ）の場合はＳＴ５２に移り、ノー（Ｎ）の場合はＳＴ５３に移る。
ＳＴ５２において、総量告知手段有無確認用ベンダリクエストコマンドを受信したので、これに応じて、複合機Ｐｒが送信対象データ総量告知手段Ｃ２Ｂを備えていることを示す応答をする。そして、ＳＴ５１に戻る。
ＳＴ５３において、送信対象データ総量の送信を要求するベンダリクエストコマンドを受信したか否かを判別する。イエス（Ｙ）の場合はＳＴ５４に移り、ノー（Ｎ）の場合はＳＴ５８に移る。
【００７６】
ＳＴ５４において、送信対象データ総量検出手段Ｃ２Ａが画像データ記憶手段ＦＰ３に記憶された画像データの中に、要求された送信対象データが有るか否かを検出する。イエス（Ｙ）の場合（送信対象データが検出された場合）はＳＴ５５に移り、ノー（Ｎ）の場合（送信対象データがなかった場合）はＳＴ５６に移る。
ＳＴ５５において、画像データ記憶手段ＦＰ３に記憶された送信対象データのデータサイズ（送信対象データ総量）を検出する。そして、ＳＴ５７に移る。
ＳＴ５６において、送信対象データがないので、送信対象データ総量を０に設定して、ＳＴ５７に移る。
ＳＴ５７において、前記ＳＴ５５又はＳＴ５６で検出又は設定された送信対象データサイズをホストコンピュータＨに送信する。そして、ＳＴ５１に戻る。
【００７７】
ＳＴ５８において、ホストコンピュータＨから送信された送信対象データの送信要求コマンド（バルクＩｎコマンド）を受信したか否かを判別する。イエス（Ｙ）の場合はＳＴ５９に移り、ノー（Ｎ）の場合はＳＴ５１に戻る。
ＳＴ５９において、受信したバルクＩｎコマンドに応じて送信対象データを画像データ記憶手段ＦＰ３から送信用バッファＢＦ１（図３参照）に転送し、送信用バッファＢＦ１に一時記憶したデータをホストコンピュータＨに送信する。
【００７８】
（実施の形態１の作用）
前記構成を備えた実施の形態１のホストコンピュータＨ及び複合機Ｐｒでは、ホストコンピュータＨの起動時や新たな周辺機器が接続された場合に、周辺機器に対して総量告知手段確認用ベンダリクエストコマンドが送信される。そして、ホストコンピュータＨは、前記リクエストコマンドに対する応答があった周辺機器には送信対象データ総量告知手段Ｃ２Ｂが実装されていると記憶し（図４のＳＴ８，ＳＴ９参照）、有無確認用タイムアウト時間ｔ１が経過しても応答がない周辺機器には送信対象データ総量告知手段Ｃ２Ｂが実装されていないと記憶する（図４のＳＴ７，ＳＴ１０参照）。実施の形態１の複合機Ｐｒは、前記総量告知手段確認用ベンダリクエストコマンドに対して応答するので（図６のＳＴ５２参照）、ホストコンピュータＨは、複合機Ｐｒには送信対象データ総量告知手段Ｃ２Ｂが実装されていると記憶する。
【００７９】
そして、ホストコンピュータＨのアプリケーションプログラムＡＰによって、複合機Ｐｒでスキャニングした画像データを転送するように要求があった場合、ＵＳＢドライバＵＤは、送信対象データとしての画像データの送信を要求する前に、送信対象データのデータサイズである送信対象データ総量の送信を要求する（図５のＳＴ２３）。前記送信対象データサイズの送信を要求された複合機ＰｒのＵＳＢコントローラＵＣは、送信対象データが画像データ記憶手段ＦＰ３に記憶されているか否かを検出し、データがある場合にはそのデータサイズを検出してホストコンピュータＨに応答する（図６のＳＴ５５，ＳＴ５７）。送信対象データが画像データ記憶手段ＦＰ３に記憶されていない場合には、送信対象データサイズが０バイトの応答をする（ＳＴ５６，ＳＴ５７）。
【００８０】
そして、前記送信対象データサイズを受信したホストコンピュータＨでは、送信対象データサイズがある場合、送信対象データの送信を要求するバルクＩｎコマンドを送信し（ＳＴ２８）、送信対象データの受信を開始する。そして、受信終了時に実際に受信したデータの受信データサイズと、予め検出して記憶しておいた送信対象データサイズ（送信対象データ総量）とが一致する場合（ＳＴ３１でイエスの場合）には、送信が正常に終了したものと判別されるので、その旨がアプリケーションプログラムＡＰに告知される。一方、受信終了時の受信データサイズと送信対象データサイズとが一致しない場合には、途中で転送エラーが発生していると判別できるので、アプリケーションＡＰにその旨が告知され、再送信を要求する（ＳＴ３３）。したがって、複合機Ｐｒ内部における画像データ記憶手段ＦＰ３とバッファＢＦとの間のデータの転送や、ホストコンピュータＨと複合機Ｐｒとの間のデータ転送でエラーが発生したことをホストコンピュータＨのＵＳＢドライバで検出することができる。
【００８１】
また、データの受信が終了する前に、受信データサイズが送信対象データサイズよりも大きくなった場合（ＳＴ３０でイエスの場合）には、バルクＩｎコマンドの発行を停止し（送信対象データの受信を中止し）、アプリケーションプログラムＡＰにその旨を告知すると共に、再送信を要求する（ＳＴ３３）。したがって、無駄なバルクＩｎコマンドを送信し続けることによるバスの占有を防止し、他の周辺機器とホストコンピュータＨとの間のＵＳＢ規格のデータ転送に悪影響を及ぼすことを防止できる。
【００８２】
さらに、送信対象データサイズが０バイトを受信した場合には、アプリケーションプログラムＡＰにその旨が告知され、バルクＩｎコマンドが発行されない。したがって、無駄なバルクＩｎコマンドの送信を防止できる。
また、実施の形態１では、前記送信対象データサイズは、ベンダリクエストコマンドで送信されており、コントロール転送が使用される。コントロール転送は、１フレーム（１ｍｓ）又は１マイクロフレーム（１２５μｓ）内での帯域幅が優先的に確保されるので、前記送信対象データサイズを安定・確実に取得することができる。
さらに、実施の形態１では、ホストコンピュータＨから送信対象データ総量告知手段の有無を確認するベンダリクエストコマンドが送信されるので、送信対象データ総量告知手段を備えた周辺機器と、備えていない周辺機器とが混在して接続されたホストコンピュータＨで管理可能である。
【００８３】
（変更例）
以上、本発明の実施の形態を詳述したが、本発明は、前記実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内で、種々の変更を行うことが可能である。
例えば、本発明は複合機Ｐｒだけでなく、スキャナや外付け型のハードディスクドライブ、ＭＯ（Ｍａｇｎｅｔ−Ｏｐｔｉｃａｌ）ディスクドライブ、ＦＤドライブ等の、周辺機器側からデータの転送を行うＵＳＢ接続機器にも適用可能である。
【００８４】
また、実施の形態１では、送信対象データがない場合に、送信対象データサイズが０バイトというデータを送信したが、送信対象データが存在しないというデータを送信することも可能である。
さらに、実施の形態１では、エニュメレーション時に、送信対象データ総量告知手段Ｃ２Ｂが実装されているか否かをベンダリクエストコマンドを送信して確認していたが、例えば、接続された周辺機器が複合機Ｐｒであるという情報を取得したホストコンピュータＨが、複合機Ｐｒ用のＵＳＢドライバを読み込む時に送信対象データ総量告知手段Ｃ２Ｂを実装していることを読み込むことにより、総量告知手段確認用ベンダリクエストコマンドを送信せずに、送信対象データ総量告知手段Ｃ２Ｂを実装しているか否かを確認することも可能である。即ち、総量告知手段有無確認用ベンダリクエストコマンド送信手段Ｄ１Ａ，タイムアウト検出用タイマＴＭ１、有無確認用タイムアウト時間記憶手段Ｄ１Ａ１及び総量告知手段実装応答手段Ｃ１Ａを省略することも可能である。
【００８５】
さらに、前記ＵＳＢドライバ（情報処理装置制御プログラム）ＵＤは、ハードディスクドライブ以外のホストコンピュータＨが読取り可能な記憶媒体（光磁気ディスク装置、光ディスク装置、磁気ディスク装置あるいはメモリスロット等）に記憶したり、可搬型の記録媒体（フレキシブルディスクや光磁気ディスク、光ディスク、磁気ディスク、フラッシュメモリ等）に記憶することも可能である。また、例えばネットワークなどの通信手段を介して各プログラムをホストコンピュータＨ等に転送し、ホストコンピュータＨ内の記憶媒体に格納して実行させることも可能である。
【００８６】
また、実施の形態１では、転送エラーが発生した場合に、ＵＳＢドライバＵＤで自動的に再送信を要求するように構成されているが、自動的に再送信を要求せず、アプリケーションプログラムＡＰに送信エラーの発生を告知するだけにして、アプリケーションプログラムＡＰからの再送信要求を待って再送信を要求するよう構成することも可能である。
さらに、転送エラーが発生してもすぐにアプリケーションプログラムＡＰに告知せず、自動的に再送信を要求し、例えば、自動的に再送信を要求する回数をカウントして、３回連続で転送エラーが発生した場合に、アプリケーションプログラムＡＰに転送エラーが発生したことを告知するように構成することも可能である。
【００８７】
また、実施の形態１では、送信エラーが発生した場合に、送信対象データ総量（送信対象データサイズ）を再取得せず、送信対象データの再送信を要求したが、送信対象データの再送信を開始する前に、送信対象データサイズを再取得するよう構成することも可能である。即ち、図５において、ＳＴ３３の処理をした後、ＳＴ２８に戻らず、ＳＴ２３に戻るよう構成することも可能である。
さらに、実施の形態１では、周辺機器が送信対象データ総量告知手段を備えていないことを検出するために前記タイムアウト検出用タイマＴＭ１を使用したが、タイマを使用せず、総量告知手段有無確認用ベンダリクエストコマンドを送信してからのフレーム又はマイクロフレームの数をカウントするカウンタを使用することによって、送信対象データ総量告知手段Ｃ２Ｂを備えていないことを検出することも可能である。
【００８８】
【発明の効果】
前述の本発明は、ＵＳＢ接続されたホストコンピュータ（情報処理装置）と、ＵＳＢ接続機器（複合機Ｐｒ）との間のデータ転送において、不要なＵＳＢコマンドの送信を低減することができる。
また、本発明は、ＵＳＢ接続されたホストコンピュータ（情報処理装置）と、ＵＳＢ接続機器（複合機Ｐｒ）との間のデータ転送において、周辺機器内でのデータ転送のエラーを検出して、エラーのないデータ転送を実現することができる。
【図面の簡単な説明】
【図１】図１は本発明の実施の形態１の情報処理装置とＵＳＢ接続機器とがＵＳＢ接続された状態の説明図である。
【図２】図２は前記図１の情報処理装置（ホストコンピュータ）の機能をブロック図（機能ブロック図）で示した図である。
【図３】図３は前記図１の周辺機器（デジタル複合機）の機能をブロック図（機能ブロック図）で示した図である。
【図４】図４は本発明の実施の形態１のホストコンピュータにおけるＵＳＢドライバの処理のメインフローチャートである。
【図５】図５は前記図４のＳＴ４のデータ送受信処理のサブルーチンのフローチャートである。
【図６】図６は本発明の実施の形態１の複合機におけるＵＳＢコントローラの処理のメインフローチャートである。
【符号の説明】
Ｃ１Ａ…総量告知手段実装応答手段
Ｃ２Ａ…送信対象データ総量検出手段
Ｃ２Ｂ…送信対象データ総量告知手段
Ｄ１Ａ…総量告知手段有無確認用ベンダリクエストコマンド送信手段
Ｄ２Ａ…総量告知手段有無記憶手段
Ｄ３Ａ…送信対象データ総量要求手段
Ｄ３Ｂ…送信対象データ総量記憶手段
Ｄ３Ｃ…送信対象データ有無判別手段
Ｄ３Ｄ…送信対象データ送信要求手段
Ｄ３Ｅ１…受信データ総量記憶手段
Ｄ３Ｆ…データ総量一致判別手段
Ｄ３Ｇ…再送信要求手段
Ｄ３Ｈ…送信結果告知手段
Ｈ…情報処理装置
Ｐｒ…ＵＳＢ接続機器
【図１】
2005018496.tif 000003
【図２】
2005018496.tif 000004
【図３】
2005018496.tif 000005
【図４】
2005018496.tif 000006
【図５】
2005018496.tif 000007
【図６】
2005018496.tif 000008