JP2005018496A - 情報処理装置、usb接続機器、情報処理装置制御プログラム、usb接続機器制御プログラム及び記録媒体 - Google Patents
情報処理装置、usb接続機器、情報処理装置制御プログラム、usb接続機器制御プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2005018496A JP2005018496A JP2003183653A JP2003183653A JP2005018496A JP 2005018496 A JP2005018496 A JP 2005018496A JP 2003183653 A JP2003183653 A JP 2003183653A JP 2003183653 A JP2003183653 A JP 2003183653A JP 2005018496 A JP2005018496 A JP 2005018496A
- Authority
- JP
- Japan
- Prior art keywords
- total amount
- target data
- transmission target
- data
- transmission
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】USB接続されたホストコンピュータと、USB接続機器との間のデータ転送において、不要なUSBコマンドの送信を低減すること
【解決手段】USB接続機器を接続可能な情報処理装置(H)において、送信対象データ総量を送信する送信対象データ総量告知手段を備えたUSB接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、送信対象データの総データ量である前記送信対象データ総量の送信を要求する送信対象データ総量要求手段(D3A)と、受信した送信対象データ総量を記憶する送信対象データ総量記憶手段(D3B)と、前記送信対象データ総量に基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する送信対象データ有無判別手段(D3C)とを備えた情報処理装置(H)。
【選択図】 図2
【解決手段】USB接続機器を接続可能な情報処理装置(H)において、送信対象データ総量を送信する送信対象データ総量告知手段を備えたUSB接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、送信対象データの総データ量である前記送信対象データ総量の送信を要求する送信対象データ総量要求手段(D3A)と、受信した送信対象データ総量を記憶する送信対象データ総量記憶手段(D3B)と、前記送信対象データ総量に基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する送信対象データ有無判別手段(D3C)とを備えた情報処理装置(H)。
【選択図】 図2
Description
【0001】
【産業上の利用分野】
本発明は、USB(Universal Serial Bus)接続により接続され、データの送受信が行われる情報処理装置及びUSB接続機器や、前記情報処理装置を制御する情報処理装置制御プログラム、前記USB接続機器を制御するUSB接続機器制御プログラム、前記各制御プログラムを記録した記録媒体に関し、特に、大容量のデータを送受信することのある前記情報処理装置及びUSB接続機器や、前記情報処理装置を制御する情報処理装置制御プログラム、前記USB接続機器を制御するUSB接続機器制御プログラム、前記各制御プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータやワークステーション等の情報処理装置(ホストコンピュータ)と、スキャナやプリンタ、ハードディスクドライブ等の外部接続機器(周辺機器)との間でデータの送受信(転送)を行う標準的インターフェースとして、USB(Universal Serial Bus)が普及している。前記USBインターフェースを有するホストコンピュータと、USB接続ケーブルで接続された周辺機器(USB接続機器)との間のデータ転送は、USB規格に定められたデータの転送方式に基づいて行われる。
【0003】
USB規格のデータ転送では、転送速度や応答時間、エラー修正等に応じて、コントロール転送、インタラプト転送、バルク転送及びアイソクロナス転送の4つの転送形態(転送方法)のいずれかの転送形態が使用される。
前記コントロール転送(制御転送)は、リクエストのようなデータ量の少ないデータの転送に使用され、例えば、接続された周辺機器の検索、認識や制御に必要な情報の送受信等を行うエニュメレーションを実行する際に使用される。USBリクエストは、ホストコンピュータから周辺機器に送信されるコマンドであり、USB規格の全ての周辺機器でサポートする必要のある標準リクエストや、周辺機器のベンダ(周辺機器の製造・販売者)が独自に定義したリクエストであるベンダリクエスト等がある。
【0004】
前記インタラプト転送(割り込み転送)は、キーボードやマウス等の信号のような周期的に比較的小さなデータ量のデータを転送する場合に使用される。
前記アイソクロナス転送は、リアルタイムで処理する必要のある音声データや動画データの様な比較的データ量の大きなデータを、一定のデータ転送速度でエラー修正せずに転送する必要がある場合に使用される。
バルク転送は、リアルタイムで転送したり、周期的に転送したりする必要が無く、比較的大きなデータ量のデータを、転送エラーが無く、確実に転送する必要がある場合に使用される。
【0005】
USB接続された周辺機器からホストコンピュータへのデータ転送(In転送又はupstream)を行う場合に、USB規格のデータ転送では、周辺機器側からホストコンピュータに対してデータの転送を要求することができない。したがって、前記In転送は、ホストコンピュータから周辺機器へのデータ転送の要求があって初めて行われる。
前記In転送を行う場合、先ず、ホストコンピュータに組み込まれたアプリケーションは、OSの標準のAPI(Application Program Interface)関数等を使用して、データの送信要求(Read API 命令)を行う。ホストコンピュータに実装されたUSBポートドライバは、前記送信要求を元にUSBデータを送信するための送信要求コマンド(リクエスト)を周辺機器に送信する。
【0006】
前記ホストコンピュータから送信された送信要求コマンドを受信した周辺機器は、周辺機器に実装されたUSBコントローラの受信バッファに送信要求コマンドを一時記憶する。そして、受信バッファから送信要求を読み込んだUSBコントローラは、USBコントローラの送信バッファ(転送バッファ)に送信要求の対象のデータを一時記憶し、送信バッファのデータをホストコンピュータに転送する。このとき、送信要求のあったデータのデータ量が大きい場合、前記バルク転送を使用してデータの転送が行われる。
【0007】
USB規格のデータ転送は、接続された全ての機器が2本の信号ラインを共有して行われており、信号ラインのノイズにより転送エラーが発生することがあるので、前記バルク転送やインタラプト転送、コントロール転送ではエラーチェックが行われる。転送されるデータの流れは、ホストコンピュータによってフレーム(1ms)又はマイクロフレーム(125μs)に分割して管理されており、前記エラーチェックは各フレーム(又は1マイクロフレーム)のSOF(Start Of Frame)パケットやトークンパケット、データパケットに含まれるエラーチェック用のデータ(エラーチェックビット)により行われる。そして、転送エラーが無く、正常に転送対象のデータが転送された場合、受信したホストコンピュータはACKのハンドシェークパケットを送信し、エラーがあった場合ホストコンピュータはハンドシェークパケットを送信しない。そして、ACKのハンドシェークパケットを受信しなかった周辺機器は、データを再送信する。
【0008】
【発明が解決しようとする課題】
しかしながら、ホストコンピュータから周辺機器へ送信される送信要求コマンドは、周辺機器側に送信対象のデータが存在するか否かに関わらず送信される。送信要求コマンドに対して、周辺機器がデータを受信又は送信できない状態(ビジー状態)である場合や送信するデータがない場合には、周辺機器からNAKのハンドシェークパケットが送信される。前記NAKの応答を受信したホストコンピュータは、バルク転送やインタラプト転送の場合、ACKの応答があるまで送信要求コマンドを何度も再送信する。この様な状況の下では、ホストコンピュータは、不要なUSBコマンドを送信し続けるので、データ転送の帯域を占有してしまうので、他に接続された周辺機器とホストコンピュータとのデータ転送に悪影響を及ぼす問題がある。
【0009】
また、前述のように、周辺機器のUSBコントローラの送信バッファから送信されたデータは、エラーチェックがされてホストコンピュータに送信されるが、周辺機器内において、データが記憶されたデータ記憶手段からUSBコントローラの送信バッファへのデータの転送ではエラーのチェックが行われない。したがって、周辺機器の品質が低い場合や、データ記憶手段から送信バッファへのデータ転送でノイズが発生しやすい等の場合には、USBコントローラの送信バッファにデータが一時記憶される段階でエラーが発生することがあり、USB規格の転送のエラーチェックでは、その前の段階で発生したエラーを検出することができない。したがって、USB規格の転送が始まる前にエラーが発生すると、バルク転送等が正常に行われても、エラーを含むデータが送信されるという問題がある。
【0010】
前述の事情に鑑み、本発明は、USB接続されたホストコンピュータ(情報処理装置)と、周辺機器(USB接続機器)との間のデータ転送において、不要なUSBコマンドの送信を低減することを第1の技術的課題とする。
また、本発明は、USB接続されたホストコンピュータ(情報処理装置)と、周辺機器(USB接続機器)との間のデータ転送において、周辺機器内でのデータ転送のエラーを検出して、エラーのないデータ転送を実現することを第2の技術的課題とする。
【0011】
【課題を解決するための手段】
次に、前記課題を解決するために案出した本発明を説明するが、本発明の要素には、後述の実施の形態の要素との対応を容易にするため、実施の形態の要素の符号をカッコで囲んだものを付記する。また、本発明を後述の実施の形態の符号と対応させて説明する理由は、本発明の理解を容易にするためであり、本発明の範囲を実施の形態に限定するためではない。
【0012】
(本発明)
(第1発明)
前記技術的課題を解決するために、第1発明の情報処理装置(H)は、USB接続機器(Pr)がUSB接続された情報処理装置(H)において、
前記USB接続機器(Pr)から前記情報処理装置(H)へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えていることを記憶する総量告知手段有無記憶手段(D2A)と、
前記送信対象データ総量告知手段(C2B)を備えた前記USB接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段(D3A)と、
前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段(D3B)と、
前記総量応答データに基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する送信対象データ有無判別手段(D3C)と、を備えたことを特徴とする。
【0013】
(第1発明の作用)
前記構成要件を備えた第1発明の情報処理装置(H)では、総量告知手段有無記憶手段(D2A)は、前記USB接続機器(Pr)から前記情報処理装置(H)へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えていることを記憶する。前記送信対象データ総量告知手段(C2B)を備えた前記USB接続機器に対してデータの送信を要求する場合、送信対象データ総量要求手段(D3A)は、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する。前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データが送信対象データ総量記憶手段(D3B)によって記憶される。そして、送信対象データ有無判別手段(D3C)は、前記総量応答データに基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する。
【0014】
したがって、前記第1発明の情報処理装置(H)では、送信対象データの送信を要求する前に、送信対象データ総量の要求に対する総量応答データを受信し、前記総量応答データに基づいて、送信対象データの有無を判別できる。そして、前記送信対象データの有無の判別結果によって、送信対象データがある場合には送信要求を行い、送信対象データがない場合(例えば、送信対象データ総量が0の総量応答データや、送信対象データ無しの総量応答データを受信した場合)には送信要求を行わないように制御することができ、不要なUSBコマンドを送信することを防止できる。この結果、送信対象データが無い場合にACKの応答を受信するまで不要な送信要求コマンドを送信し続けることを防止でき、他のUSB接続機器のデータ転送へ悪影響を及ぼすことを防止できる。
【0015】
(第1発明の形態1)
また、第1発明の形態1の情報処理装置(H)は、前記第1発明の情報処理装置(H)において、
前記送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置(H)に新たにUSB接続機器(Pr)が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段(D1A)と、
前記USB接続機器(Pr)から前記送信対象データ総量告知手段(C2B)を備えていることを示す応答がある場合に、前記新たに接続されたUSB接続機器(Pr)が前記送信対象データ総量告知手段(C2B)を備えていると記憶する前記総量告知手段有無記憶手段(D2A)と、
を備えたことを特徴とする。
【0016】
(第1発明の形態1の作用)
前記構成要件を備えた第1発明の形態1の情報処理装置(H)では、前記情報処理装置(H)に新たにUSB接続機器(Pr)が接続された際に、総量告知手段有無確認用ベンダリクエストコマンド送信手段(D1A)は、前記送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えているか否かを確認するためのベンダリクエストコマンドを送信する。そして、前記USB接続機器(Pr)から前記送信対象データ総量告知手段(C2B)を備えていることを示す応答がある場合には、総量告知手段有無記憶手段(D2A)は、前記新たに接続されたUSB接続機器(Pr)が前記送信対象データ総量告知手段(C2B)を備えていることを記憶する。したがって、情報処理装置(H)に接続されたUSB接続機器(Pr)が、送信対象データ総量告知手段(C2B)を備えているか否かをUSB接続機器(Pr)毎に記憶し、管理することができる。この結果、送信対象データ総量告知手段(C2B)を備えていないUSB接続機器(Pr)に対して、送信対象データ総量を送信するように要求することを防止できる。
【0017】
(第1発明の形態2)
また、第1発明の形態2の情報処理装置(H)は、前記第1発明または前記第1発明の形態1の情報処理装置(H)において、
前記送信対象データが前記USB接続機器(Pr)に存在する場合に、前記USB接続機器(Pr)に対して送信対象データの送信を要求する送信対象データ送信要求手段(D3D)と、
前記USB接続機器(Pr)から送信され情報処理装置(H)が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段(D3E1)と、
前記受信データ総量と、前記送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段(D3F)と、
を備えたことを特徴とする。
【0018】
(第1発明の形態2の作用)
前記構成要件を備えた第1発明の形態2の情報処理装置(H)では、前記送信対象データが前記USB接続機器(Pr)に存在する場合、送信対象データ送信要求手段(D3D)は、前記USB接続機器(Pr)に対して送信対象データの送信を要求する。前記USB接続機器(Pr)から送信され情報処理装置(H)が受信した受信データの総データ量である受信データ総量が、受信データ総量記憶手段(D3E1)によって記憶される。そして、データ総量一致判別手段(D3F)によって、前記受信データ総量と、前記総量応答データに含まれる前記送信対象データ総量とが、同一か否かが判別される。
【0019】
したがって、前記受信データ総量と送信対象データ総量とが同一の場合、送信対象データは、転送エラーが無く転送されたと判断できる。即ち、バルク転送時や、インタラプト転送時等だけでなく、USB接続機器(Pr)内部でもエラー無く転送されたものと判断できる。そして、前記受信データ総量と送信対象データ総量とが同一でない場合、バルク転送等及びUSB接続機器(Pr)内部でのデータ転送のいずれかのデータ転送時に、エラーが発生したものと判断できる。したがって、送信エラーの発生を判別できるので、データ転送の信頼性を高めることができる。
【0020】
(第1発明の形態3)
また、第1発明の形態3の情報処理装置(H)は、前記第1発明の形態2の情報処理装置(H)において、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器(Pr)に対して、前記送信対象データの再送信を要求する再送信要求手段(D3G)、
を備えたことを特徴とする。
【0021】
(第1発明の形態3の作用)
前記構成要件を備えた第1発明の形態3の情報処理装置(H)では、再送信要求手段(D3G)は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器(Pr)に対して、前記送信対象データの再送信を要求する。したがって、送信エラーが発生した場合に、送信対象データを自動的に再取得することができる。
【0022】
(第1発明の形態4)
また、第1発明の形態4の情報処理装置(H)は、前記第1発明の形態2の情報処理装置(H)において、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段(D3H)、
を備えたことを特徴とする。
【0023】
(第1発明の形態4の作用)
前記構成要件を備えた第1発明の形態4の情報処理装置(H)では、送信結果告知手段(D3H)は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する。したがって、前記告知によって、送信要求された送信対象データの送信中に、送信エラーが発生したことを認識でき、再送信要求や、ユーザへの告知等の処理を実行することができる。
【0024】
(第2発明)
前記技術的課題を解決するために第2発明のUSB接続機器(Pr)は、USB接続可能な情報処理装置(H)に接続されるUSB接続機器(Pr)において、
前記情報処理装置(H)から送信を要求された送信対象データを前記情報処理装置(H)に送信する送信対象データ送信手段(C2C)と、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段(C2A)と、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置(H)に送信する送信対象データ総量告知手段(C2B)と、
を備えたことを特徴とする。
【0025】
(第2発明の作用)
前記構成要件を備えた第2発明のUSB接続機器(Pr)では、送信対象データ総量検出手段(C2A)は、前記情報処理装置(H)へ送信する送信対象データの総データ量である送信対象データ総量を検出する。前記送信対象データ総量を送信するよう要求があった場合に、送信対象データ総量告知手段(C2B)は、前記送信対象データの前記送信対象データ総量を前記情報処理装置(H)に送信する。そして、前記情報処理装置(H)から送信を要求された送信対象データは、送信対象データ送信手段(C2C)によって前記情報処理装置(H)に送信される。したがって、情報処理装置(H)から送信対象データ総量を送信する要求がある場合に、送信対象データ総量検出手段(C2A)で検出した送信対象データ総量を送信することができる。この結果、前記送信対象データ総量に基づいて、情報処理装置(H)は、送信対象データの有無及び送信対象データの総データ量を認識することができ、送信対象データ総量に応じた送信要求コマンドを送信可能となる。この結果、第2発明のUSB接続機器(Pr)は、不要なUSBコマンドを受信することを少なくでき、他のUSB接続機器(Pr)と情報処理装置(H)とのデータの送受信に悪影響を及ぼすことを防止できる。
【0026】
(第2発明の形態1)
また、第2発明の形態1のUSB接続機器(Pr)は、前記第2発明のUSB接続機器(Pr)において、
前記USB接続機器(Pr)が前記情報処理装置(H)に新たに接続された際に、前記情報処理装置(H)から送信された、前記USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置(H)に対して前記送信対象データ総量告知手段(C2B)を備えていることを示す応答をする総量告知手段実装応答手段(C1A)、
を備えたことを特徴とする。
【0027】
(第2発明の形態1の作用)
前記構成要件を備えた第2発明の形態1のUSB接続機器(Pr)では、前記USB接続機器(Pr)が前記情報処理装置(H)に新たに接続された際に、前記情報処理装置(H)から送信された、前記USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、総量告知手段実装応答手段(C1A)は、前記情報処理装置(H)に対して前記送信対象データ総量告知手段(C2B)を備えていることを示す応答をする。したがって、第2発明の形態1のUSB接続機器(Pr)では、USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えていることを情報処理装置(H)に認識させることできるので、第2発明の形態1のUSB接続機器(Pr)に送信対象データの送信の要求あった場合に、送信要求コマンドを送信する前に、送信対象データ総量を送信するように情報処理装置(H)に処理させることができる。
【0028】
(第3発明)
前記技術的課題を解決するために、第3発明の情報処理装置制御プログラムは、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記USB接続機器(Pr)から前記情報処理装置(H)へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えていることを記憶する総量告知手段有無記憶手段(D2A)、
前記送信対象データ総量告知手段(C2B)を備えた前記USB接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段(D3A)、
前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段(D3B)、
前記総量応答データに基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する送信対象データ有無判別手段(D3C)、
として機能させることを特徴とする。
【0029】
(第3発明の作用)
前記構成要件を備えた第3発明の情報処理装置制御プログラムでは、総量告知手段有無記憶手段(D2A)は、前記USB接続機器(Pr)から前記情報処理装置(H)へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えていることを記憶する。前記送信対象データ総量告知手段(C2B)を備えた前記USB接続機器に対してデータの送信を要求する場合、送信対象データ総量要求手段(D3A)は、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する。前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データが送信対象データ総量記憶手段(D3B)によって記憶される。そして、送信対象データ有無判別手段(D3C)は、前記総量応答データに基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する。
【0030】
したがって、前記第3発明の情報処理装置制御プログラムでは、送信対象データの送信を要求する前に、送信対象データ総量の要求に対する総量応答データを受信し、前記総量応答データに基づいて、送信対象データの有無を判別できる。そして、前記送信対象データの有無の判別結果によって、送信対象データがある場合には送信要求を行い、送信対象データがない場合(例えば、送信対象データ総量が0の総量応答データや、送信対象データ無しの総量応答データを受信した場合)には送信要求を行わないように制御することができ、不要なUSBコマンドを送信することを防止できる。この結果、送信対象データが無い場合にACKの応答を受信するまで不要な送信要求コマンドを送信し続けることを防止でき、他のUSB接続機器のデータ転送へ悪影響を及ぼすことを防止できる。
【0031】
(第3発明の形態1)
また、第3発明の形態1の情報処理装置制御プログラムは、前記第3発明の情報処理装置制御プログラムにおいて、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置(H)に新たにUSB接続機器(Pr)が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段(D1A)、
前記USB接続機器(Pr)から前記送信対象データ総量告知手段(C2B)を備えていることを示す応答がある場合に、前記新たに接続されたUSB接続機器(Pr)が前記送信対象データ総量告知手段(C2B)を備えていると記憶する前記総量告知手段有無記憶手段(D2A)、
として機能させることを特徴とする。
【0032】
(第3発明の形態1の作用)
前記構成要件を備えた第3発明の形態1の情報処理装置制御プログラムでは、前記情報処理装置(H)に新たにUSB接続機器(Pr)が接続された際に、総量告知手段有無確認用ベンダリクエストコマンド送信手段(D1A)は、前記送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えているか否かを確認するためのベンダリクエストコマンドを送信する。そして、前記USB接続機器(Pr)から前記送信対象データ総量告知手段(C2B)を備えていることを示す応答がある場合には、総量告知手段有無記憶手段(D2A)は、前記新たに接続されたUSB接続機器(Pr)が前記送信対象データ総量告知手段(C2B)を備えていること記憶する。したがって、情報処理装置(H)に接続されたUSB接続機器(Pr)が、送信対象データ総量告知手段(C2B)を備えているか否かをUSB接続機器(Pr)毎に記憶し、管理することができる。この結果、送信対象データ総量告知手段(C2B)を備えていないUSB接続機器(Pr)に対して、送信対象データ総量を送信するように要求することを防止できる。
【0033】
(第3発明の形態2)
また、第3発明の形態2の情報処理装置制御プログラムは、前記第3発明または第3発明の形態1の情報処理装置制御プログラムにおいて、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記送信対象データが前記USB接続機器(Pr)に存在する場合に、前記USB接続機器(Pr)に対して送信対象データの送信を要求する送信対象データ送信要求手段(D3D)、
前記USB接続機器(Pr)から送信され情報処理装置(H)が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段(D3E1)、
前記受信データ総量と、前記送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段(D3F)、
として機能させることを特徴とする。
【0034】
(第3発明の形態2の作用)
前記構成要件を備えた第3発明の形態2の情報処理装置制御プログラムでは、前記送信対象データが前記USB接続機器(Pr)に存在する場合、送信対象データ送信要求手段(D3D)は、前記USB接続機器(Pr)に対して送信対象データの送信を要求する。前記USB接続機器(Pr)から送信され情報処理装置(H)が受信した受信データの総データ量である受信データ総量が、受信データ総量記憶手段(D3E1)によって記憶される。そして、データ総量一致判別手段(D3F)によって、前記受信データ総量と、前記総量応答データに含まれる前記送信対象データ総量とが、同一か否かが判別される。
【0035】
したがって、前記受信データ総量と送信対象データ総量とが同一の場合、送信対象データは、転送エラーが無く転送されたと判断できる。即ち、バルク転送時や、インタラプト転送時等だけでなく、USB接続機器(Pr)内部でもエラー無く転送されたものと判断できる。そして、前記受信データ総量と送信対象データ総量とが同一でない場合、バルク転送等及びUSB接続機器(Pr)内部でのデータ転送のいずれかのデータ転送時に、エラーが発生したものと判断できる。したがって、送信エラーの発生を判別できるので、データ転送の信頼性を高めることができる。
【0036】
(第3発明の形態3)
また、第3発明の形態3の情報処理装置制御プログラムは、前記第3発明の形態2の情報処理装置制御プログラムにおいて、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器(Pr)に対して、前記送信対象データの再送信を要求する再送信要求手段(D3G)、
として機能させることを特徴とする。
【0037】
(第3発明の形態3の作用)
前記構成要件を備えた第3発明の形態3の情報処理装置制御プログラムでは、再送信要求手段(D3G)は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器(Pr)に対して、前記送信対象データの再送信を要求する。したがって、送信エラーが発生した場合に、送信対象データを自動的に再取得することができる。
【0038】
(第3発明の形態4)
また、第3発明の形態4の情報処理装置制御プログラムは、前記第3発明の形態2の情報処理装置制御プログラムにおいて、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段(D3H)、
として機能させることを特徴とする。
【0039】
(第3発明の形態4の作用)
前記構成要件を備えた第3発明の形態4の情報処理装置制御プログラムでは、送信結果告知手段(D3H)は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する。したがって、前記告知によって、要求された送信対象データを送信中に、送信エラーが発生したことを認識でき、再送信要求や、ユーザへの告知等の処理を実行することができる。
【0040】
(第4発明)
前記技術的課題を解決するために第4発明のUSB接続機器制御プログラムは、
USB接続可能な情報処理装置(H)に接続されるUSB接続機器(Pr)を、
前記情報処理装置(H)から送信を要求された送信対象データを前記情報処理装置(H)に送信する送信対象データ送信手段(C2C)と、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段(C2A)と、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置(H)に送信する送信対象データ総量告知手段(C2B)と、
として機能させることを特徴とする。
【0041】
(第4発明の作用)
前記構成要件を備えた第4発明のUSB接続機器制御プログラムでは、送信対象データ総量検出手段(C2A)は、前記情報処理装置(H)へ送信する送信対象データの総データ量である送信対象データ総量を検出する。前記送信対象データ総量を送信するよう要求があった場合に、送信対象データ総量告知手段(C2B)は、前記送信対象データの前記送信対象データ総量を前記情報処理装置(H)に送信する。そして、前記情報処理装置(H)から送信を要求された送信対象データは、送信対象データ送信手段(C2C)によって前記情報処理装置(H)に送信される。
【0042】
したがって、情報処理装置(H)から送信対象データ総量を送信する要求がある場合に、送信対象データ総量検出手段(C2A)で検出した送信対象データ総量を送信することができる。この結果、前記送信対象データ総量に基づいて、情報処理装置(H)は、送信対象データの有無及び送信対象データの総データ量を認識することができ、送信対象データ総量に応じた送信要求コマンドを送信可能となる。この結果、第4発明のUSB接続機器制御プログラムでは、USB接続機器(Pr)が不要なUSBコマンドを受信することを少なくでき、他のUSB接続機器(Pr)と情報処理装置(H)とのデータの送受信に悪影響を及ぼすことを防止できる。
【0043】
(第4発明の形態1)
また、第4発明の形態1のUSB接続機器制御プログラムは、前記第4発明のUSB接続機器制御プログラムにおいて、
USB接続可能な情報処理装置(H)に接続されるUSB接続機器(Pr)を、
前記USB接続機器(Pr)が前記情報処理装置(H)に新たに接続された際に、前記情報処理装置(H)から送信された、前記USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置(H)に対して前記送信対象データ総量告知手段(C2B)を備えていることを示す応答をする総量告知手段実装応答手段(C1A)、
として機能させることを特徴とする。
【0044】
(第4発明の形態1の作用)
前記構成要件を備えた第4発明の形態1のUSB接続機器制御プログラムでは、前記USB接続機器(Pr)が前記情報処理装置(H)に新たに接続された際に、前記情報処理装置(H)から送信された、前記USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、総量告知手段実装応答手段(C1A)は、前記情報処理装置(H)に対して前記送信対象データ総量告知手段(C2B)を備えていることを示す応答をする。したがって、第4発明の形態1のUSB接続機器制御プログラムでは、USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えていることを情報処理装置(H)が認識できるので、USB接続機器(Pr)に送信対象データの送信の要求あった場合に、送信要求コマンドを送信する前に、送信対象データ総量を送信するように情報処理装置(H)に処理させることができる。
【0045】
なお、前記第3発明及び第3発明の形態1〜4の情報処理装置制御プログラムは、情報処理装置(H)のコンピュータが読取り可能な記録媒体に記録することができる。また、前記第4発明及び第4発明の形態1のUSB接続機器制御プログラムは、USB接続機器(Pr)のコンピュータが読取り可能な記録媒体に記録することができる。
【0046】
【発明の実施の形態】
(実施の形態)
次に図面を参照しながら、本発明の実施の形態を説明するが、本発明は以下の実施の形態に限定されるものではない。
(実施の形態1)
図1は本発明の実施の形態1の情報処理装置とUSB接続機器とがUSB接続された状態の説明図である。
図1において、ホストコンピュータ(情報処理装置)Hには、USBケーブルCbを介して、プリンタ、スキャナ及び複写機としての機能を備えたデジタル複合機(USB接続機器、周辺機器)UがUSB接続されている。前記ホストコンピュータHは、コンピュータ本体H1、ディスプレイH2、キーボード(入力装置)H3、マウス(入力装置)H4、図示しないHDドライブ(ハードディスクドライブ)、CDドライブ(コンパクトディスクドライブ)、およびFDドライブ(フレキシブルディスクドライブ)等により構成されている。
【0047】
図1において、前記複合機Uは、プリンタU1、イメージスキャナU2、自動原稿搬送装置U3を有している。前記プリンタU1は、内部に印刷用紙が収容された複数の給紙トレイTR1〜TR4と、画像が記録された印刷用紙が排出される排出トレイTRhを有している。前記自動原稿搬送装置U3は、イメージスキャナU2上面のプラテンガラス(図示せず)上に支持されている。前記自動原稿搬送装置U3は、複写しようとする複数の原稿が重ねて載置される原稿給紙トレイTG1を有している。前記原稿給紙トレイTG1に載置された複数の各原稿は順次プラテンガラス上の複写位置を通過して原稿排紙トレイTG2に排出されるように構成されている。前記自動原稿搬送装置U3は、その後端部(−X端部)に設けた左右方向に延びるヒンジ軸(図示せず)により前記プラテンガラス上面に対して回動可能であり、原稿を作業者が手でプラテンガラス上に置く場合に上方に回動される。そして、前記複合機Uは、複合機Uの設定情報等をユーザが設定するためのユーザインタフェース(入力装置)UIを備えている。
【0048】
前記ホストコンピュータHのコンピュータ本体H1及び複合機Uは、それぞれ、外部との信号の入出力および入出力信号レベルの調節等を行うI/O(入出力インターフェース)、必要な処理を行うためのプログラムおよびデータ等が記憶されたROM(リードオンリーメモリ、記録媒体)やハードディスク(記録媒体)、必要なデータを一時的に記憶するためのRAM(ランダムアクセスメモリ、記録媒体)、ハードディスクやROM等に記憶されたプログラムに応じた処理を行うCPU(中央演算処理装置、マイクロコンピュータ)、ならびにクロック発振器等を有している。前記構成のホストコンピュータH及び複合機Uは、前記ハードディスクやROM等に記憶されたプログラムを実行することにより種々の機能を実現することができる。
【0049】
(ホストコンピュータHの機能)
図2は前記図1の情報処理装置(ホストコンピュータ)の機能をブロック図(機能ブロック図)で示した図である。
図2において、ホストコンピュータHのコンピュータ本体H1の前記ハードディスクドライブ(記録媒体)には、複合機UのイメージスキャナU2で読み取った(スキャニングした)画像データを編集・印刷するための画像処理ソフトを含むアプリケーションプログラムAPが記憶されている(組み込まれている)。また、前記ホストコンピュータHには、USB規格のデータ転送(送受信)を実現するためにデータ転送の制御や、データの変換、エラー処理等を行うUSBドライバUDが記憶されている。したがって、前記アプリケーションプログラムAPが複合機Uに記憶された画像データを読み出す場合に、アプリケーションプログラムAPがUSBドライバUDにデータの転送を要求し、複合機UからUSBケーブルCbを介して画像データ(送信対象データ)の転送を行う。そして、受信した送信対象データは、アプリケーションプログラムAPの受信データ記憶手段AP1に記憶される。
【0050】
(USBドライバUDの機能)
USBドライバUDは、ホストコンピュータHの起動時(電源オン時)や、起動中のホストコンピュータHにUSB接続で周辺機器(デバイス)が接続された時に、接続されたデバイスを検出し、USB規格の所定のエニュメレーション処理(各デバイスを制御するための情報を読み取ったり、管理するためのアドレスを割り付けたりする処理)を実行するデバイス検出手段D1を有している。前記デバイス検出手段D1は、総量告知手段有無確認用ベンダリクエストコマンド送信手段D1Aを有している。前記総量告知手段有無確認用ベンダリクエストコマンド送信手段D1Aは、前記エニュメレーション処理において送信されるUSB規格の所定のデータに、接続されたデバイスが送信対象データ総量告知手段を備えているか否かを確認するための総量告知手段確認用ベンダリクエストコマンドを付加して送信する。前記送信対象データ総量告知手段(C2B)は、図3で後述する周辺機器(複合機Pr)に実装された手段であり、送信対象データの総データ量である送信対象データ総量を送信するよう要求があった場合に、要求のあった前記送信対象データの前記送信対象データ総量を送信する。
【0051】
前記総量告知手段有無確認用ベンダリクエストコマンド送信手段D1Aは、タイムアウト検出用タイマTM1と、有無確認用タイムアウト時間記憶手段D1A1とを有する。前記タイムアウト検出用タイマTM1には、有無確認用タイムアウト時間記憶手段D1A1に記憶された有無確認用タイムアウト時間t1(3秒程度)がセットされ、前記総量告知手段有無確認用ベンダリクエストコマンド送信手段D1Aによって総量告知手段有無確認用ベンダリクエストコマンドが送信されてから有無確認用タイムアウト時間t1が経過するまでの間に複合機Prから応答があるか否かの判別に使用される。なお、前記有無確認用タイムアウト時間t1の設定値は、適宜変更可能である。
【0052】
そして、前記エニュメレーション処理時に、デバイス検出手段D1により読み取った周辺機器の情報(デバイス情報)がデバイス情報記憶手段D2に記憶される。前記デバイス情報記憶手段D2は、総量告知手段有無記憶手段D2Aを有している。前記総量告知手段有無記憶手段D2Aは、前記総量告知手段有無確認用ベンダリクエストコマンドに応じて、接続された複合機Prが送信対象データ総量告知手段を備えているか否かを記憶する。実施の形態1では、前記ベンダリクエストコマンドに応じて、有無確認用タイムアウト時間t1が経過する前に複合機Prから送信対象データ総量告知手段を備えていることを示す応答があった場合に、送信対象データ総量告知手段を備えていると判別して、記憶する。一方、前記有無確認用タイムアウト時間t1が経過しても、送信対象データ総量告知手段を備えていることを示す応答が転送されない場合には、送信対象データ総量告知手段を備えていないものと判別して、記憶する。
【0053】
前記複合機Prに対して、アプリケーションAPからデータの送信の要求があった場合、ホスト用データ送受信制御手段D3によって送信対象データの送受信が制御される。前記ホスト用データ送受信制御手段D3は、送信対象データ総量要求手段D3Aを有している。前記送信対象データ総量要求手段D3Aは、送信対象データ総量告知手段を備えた複合機Prに対してアプリケーションAPからデータの送信の要求があった場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求するためのリクエストコマンドを発行(送信)する。実施の形態1では、前記送信対象データ総量の送信を要求するためのリクエストコマンドは、コントロール転送で送信され、前記リクエストに応じて複合機Prから送信される総量応答データを受信した場合に、受信した総量応答データを記憶する送信対象データ総量記憶手段(総量応答データ記憶手段)D3Bに記憶される。
【0054】
そして、送信対象データ総量の送信を要求するためのリクエストコマンドに対する応答に応じて、アプリケーションプログラムAPから要求のあった送信対象データが複合機Prに有るか否かが、送信対象データ有無判別手段D3Cによって判別される。実施の形態1では、リクエストコマンドに応じて送信された総量応答データに含まれる送信対象データ総量が0バイトである場合に、送信対象データ有無判別手段D3Cは、送信対象データが複合機Prに存在しないものと判別して、そのことをアプリケーションプログラムAPに告知する。
なお、実施の形態1では、前記総量応答データとしての送信対象データ総量が0で有るか否かによって送信対象データの有無を判別しているが、これに替えて、送信対象データが存在しない場合に総量応答データを送信しないように複合機Prを構成して、前記リクエストコマンドに応じて総量応答データが送信されない場合に、送信対象データが無いものと判別することも可能である。さらに、周辺機器に送信対象データが無い場合に、データ総量0バイトではなく、データ無しを示す総量応答データを送信する手段を複合機Prが備えている場合にデータ無しの総量応答データに応じて送信対象データが無いものと判別することも可能である。
【0055】
一方、送信対象データ総量が0バイトでない場合には、送信対象データ有無判別手段D3Cは送信対象データが有るものと判別し、送信対象データが有るものと判別されると、送信対象データ送信要求手段D3Dが送信対象データの送信を要求するためのバルクInコマンド(バルク転送でIn方向の転送を行うことを指定するコマンド)を発行する(送信する)。前記バルクInコマンドに応じて複合機Prから送信対象データが送信され、ホストコンピュータHが受信した送信対象データの総量である受信データ総量が受信データ総量カウント手段D3Eによってカウントされ、受信データ総量記憶手段D3E1に記憶される。
【0056】
前記受信データ総量記憶手段D3E1に記憶された受信データ総量と、前記送信対象データ総量記憶手段D3Bに記憶された送信対象データ総量とが、一致するか否かがデータ総量一致判別手段D3Fによって逐次判別される。前記データ総量一致判別手段D3Fは、複合機Prによる送信対象データの送信が終了したか否かを判別する受信終了判別手段D3F1を有する。実施の形態1の前記受信終了判別手段D3F1は、データの送受信中に、バルクInコマンドによる送信要求に対して所定のデータ量よりも小さなデータ(送信対象データの最後のデータ、0バイトのデータも含む)を受信した場合、または前記受信データ総量が送信対象データ総量よりも大きくなった場合に受信終了と判別する。
【0057】
前記データ総量一致判別手段D3Fは、受信終了と判別されず且つ前記受信データ総量が送信対象データ総量に満たない場合には、送受信中と判別して、送信対象データ送信要求手段D3Dに、引き続きバルクInコマンドを発行させる。前記受信が終了したと判別された際に、前記受信データ総量と送信対象データ総量とが一致している場合、送信対象データの受信が正常に完了したものとデータ総量一致判別手段D3Fは判別する。一方、受信が終了したと判別された際に、前記受信データ総量が送信対象データ総量に満たない場合や、前記受信データ総量が送信対象データ総量よりも大きくなった場合には、データ総量一致判別手段D3Fは転送エラーが発生したものと判別し、前記送信対象データ送信要求手段D3DによるバルクInコマンドの発行を停止させる。
【0058】
前記転送エラーが発生したものと判別された場合、データ総量一致判別手段D3Fは、再送信要求手段D3Gに送信対象データの再送信が要求させる。実施の形態1では、再送信要求手段D3Gは、転送エラーが発生した場合、受信したデータ及び受信データ総量カウント手段D3Eでカウントされたカウント値(受信データ総量)を破棄して、送信対象データ送信要求手段D3Dに再びバルクInコマンドを発行するように制御する。このとき、前記データ総量一致判別手段D3Fは、送信結果告知手段(送信エラー告知手段)D3Hを制御して、アプリケーションプログラムAPに転送エラー(送信エラー)が発生した旨を告知させる。なお、前記送信結果告知手段D3Hは、データ総量一致判別手段D3Fが送受信が正常に完了したと判別した場合には、アプリケーションプログラムAPに正常に終了したことを告知する。前記アプリケーションプログラムAPは、前記告知の結果の告知に応じて所定の処理を実行する。例えば、転送エラーが発生した場合、ディスプレイH2に転送エラー告知用の画像を表示してユーザに告知し、正常に送受信が完了した場合、正常終了時の画像を表示することができる。
【0059】
なお、前記USBドライバUDの各手段D1〜D3が送信するリクエストコマンド等のデータは、バッファBFの送信用バッファBF1に一時記憶された後、USBポートを介して複合機Prに送信される。そして、複合機Prから送信された送信対象データ総量等のデータは、USBポートを介してバッファBFの受信用バッファBF2に一時記憶され、各記憶手段AP1,C2B,C3Bに転送される。
その他、前記USBドライバUDは、USB規格に定められた送受信を実現するための図示しない手段(規格上最低限備えていなければならないリクエストコマンドを記憶する手段や、各リクエストコマンドを送信する手段、エラーチェックビットによる転送エラーの発生を判別する手段等)を備えている。
【0060】
(複合機Prの機能)
図3は前記図1の周辺機器(デジタル複合機)の機能をブロック図(機能ブロック図)で示した図である。
図3において、複合機Prに実装されたハードディスクドライブ(記録媒体)には、複合機Uで印刷や、画像読取り(スキャニング)、複写(コピー)する際の各部材の動作を制御する複合機制御プログラムFPが組み込まれている。前記複合機制御プログラムFPは、印刷時にプリンタU1内部の各部材の動作を制御する印刷制御手段FP1と、スキャニング又は複写する際の画像読取り時にイメージスキャナU2や自動原稿搬送装置U3の動作を制御するスキャナ制御手段FP2を有している。そして、前記スキャナ制御手段FP2で読み取った画像データや、ホストコンピュータHから送信された印刷対象の画像データを記憶する画像データ記憶手段FP3を有している。
また、前記複合機Prには、USBコントローラUCが組み込まれており、前記USBドライバと同様に、前記ホストコンピュータHと前記複合機Prとの間のUSB規格のデータの転送(送受信)を制御する。
【0061】
(USBコントローラの機能)
図3において、前記USBコントローラUCは、前記ホストコンピュータHのUSBドライバUDと同様に、送受信するデータを一時記憶するバッファBFを有している。そして、USBコントローラUCは、前記エニュメレーション時にホストコンピュータHから送信されるリクエストコマンドに応答するデバイス検出応答手段C1を備えている。前記デバイス検出応答手段C1は、前記ホストコンピュータHから総量告知手段有無確認用ベンダリクエストコマンドが送信された場合に、ホストコンピュータHに対して送信対象データ総量告知手段を備えていることを示す応答をする総量告知手段実装応答手段C1Aを有している。
【0062】
また、前記USBコントローラUCは、ホストコンピュータHから印刷する画像データが送信された場合や、イメージスキャナU2で読み取った画像をホストコンピュータHに送信する場合に、データの送受信を制御する周辺機器用データ送受信制御手段C2を有している。前記周辺機器用データ送受信制御手段C2は、送信対象データ総量検出手段C2Aを有しており、送信対象データ総量検出手段C2Aは、受信用バッファBF2が送信対象データ総量を要求するクエストコマンドを受信した場合に、画像データ記憶手段FP3に記憶されたデータの中から、送信対象データを特定し、送信対象データの総データ量である送信対象データ総量を検出する。
【0063】
そして、検出された送信対象データ総量が、送信対象データ総量告知手段C2Bによって、ホストコンピュータHに送信される。このとき、前記送信対象データ総量告知手段C2Bは、画像データ記憶手段FP3に記憶されたデータの中に送信対象データがない場合(例えば、画像データ記憶手段FP3に記憶されたデータが1つもない場合等)には、送信対象データ総量として0バイトを送信する。
前記送信対象データがあり、複合機Prが前記送信対象データ送信要求手段D3Dで発行されたバルクInコマンドを受信した場合、送信対象データ送信手段C2Cは、前記バルクInコマンドに応じて、送信対象データを送信する。
その他、前記USBコントローラUCは、USB規格に定められた送受信を実現するための図示しない手段(規格上最低限備えていなければならないリクエストコマンドに対する応答を記憶する手段や、各応答を送信する手段、エラーチェックビットによる転送エラーの発生を判別する手段等)を備えている。
【0064】
(実施の形態1のフローチャートの説明)
(ホストコンピュータのUSBドライバのメインフローチャート)
図4は本発明の実施の形態1のホストコンピュータにおけるUSBドライバの処理のメインフローチャートである。
図4のフローチャートの各ST(ステップ)の処理は、前記ホストコンピュータHに記憶されたUSBドライバ制御プログラム(情報処理装置制御プログラム)に従って実行される。また、図4の処理は他の処理と並行してマルチタスクで実行される。
図4のメインフローチャートは、ホストコンピュータHの電源オンによって開始(スタート)する。
【0065】
図4のST1において、ホストコンピュータHの電源がオンになった直後(電源オン時)か否かを判別する。ノー(N)の場合はST2に移り、イエス(Y)の場合はST5に移る。
ST2において、ホストコンピュータHが起動中に新たな周辺機器が接続が検出されたか否かを判別する。ノー(N)の場合はST3に移り、イエス(Y)の場合はST5に移る。
ST3において、周辺機器へのデータの送信要求がされたか否かを判別する。ノー(N)の場合はST1に戻り、イエス(Y)の場合はST4に移る。
ST4において、ホストコンピュータHと周辺機器(複合機Prを含む)との間のデータの送受信を行うデータ送受信処理(後述の図5のサブルーチン参照)が実行される。そして、ST1に戻る。
【0066】
ST5において、USB接続された周辺機器の情報読み込みや設定、管理するためのアドレスの割付等を行うバスエニュメレーションが開始される。前記エニュメレーションは、コントロール転送を使用して実行される。コントロール転送は、リクエストに関する情報を送信してコントロール転送の開始を告知するセットアップステージと、設定情報等の読み込むデータをホストコンピュータHと周辺機器との間で送受信するデータステージと、セットアップステージ及びデータステージが正常に終了したか否かを報告するデータを送受信するステータスステージとを有する。そして、ST5では、エニュメレーションのデータステージにおいて総量告知手段確認用ベンダリクエストコマンドが付加されたデータが送信される。なお、前記エニュメレーションは、電源オン時には全ての周辺機器に対して実行されるが、新たな周辺機器が接続された場合には、接続された新たな周辺機器のみに対して実行される。そして、ST6に移る。
【0067】
ST6において、タイムアウト検出用タイマTM1に有無確認用タイムアウト時間t1をセットし、ST7に移る。
ST7において、前記タイムアウト検出用タイマTM1がタイムアップしたか否か、即ち、有無確認用タイムアウト時間t1が経過したか否かを判別する。ノー(N)の場合はST8に移り、イエス(Y)の場合はST10に移る。
ST8において、周辺機器からホストコンピュータHに送信対象データ総量告知手段C2Bを備えている(実装している)ことを示す応答があったか否かを判別する。イエス(Y)の場合はST9に移り、ノー(N)の場合はST7に戻る。
【0068】
ST9において、総量告知手段実装応答手段C1Aから送信対象データ総量告知手段C2Bを備えていることを示す応答があると、ホストコンピュータHの総量告知手段有無記憶手段D2Aはその周辺機器が送信対象データ総量告知手段C2Bを備えていることを記憶する。
ST10において、前記有無確認用タイムアウト時間t1が経過しても送信対象データ総量告知手段C2Bを備えていることを示す応答がないと、ホストコンピュータHの総量告知手段有無記憶手段D2Aはその周辺機器が送信対象データ総量告知手段C2Bを備えていないことを記憶する。
ST11において、周辺機器が送信対象データ総量告知手段C2Bを備えていない場合に、そのまま放置しておくとエニュメレーションがいつまでも終了せず、他の周辺機器のデータ送受信に悪影響を及ぼす可能性があるので、総量告知手段確認用ベンダリクエストコマンドのデータステージを終了し、ST1に戻る。
【0069】
(データ送受信処理のフローチャートの説明)
図5は前記図4のST4のデータ送受信処理のサブルーチンのフローチャートである。
図5のST21において、アプリケーションプログラムAPによって送信するように要求された周辺機器が、送信対象データ総量告知手段C2Bを実装しているか否かを総量告知手段有無記憶手段D2Aを参照して判別する。ノー(N)の場合はST22に移り、イエス(Y)の場合はST23に移る。
ST22において、送信対象データ総量告知手段C2Bを実装していない周辺機器への送信要求の場合には、通常の送受信処理、即ち、送信対象データ総量の送信を要求せず、送信対象データの送信を要求して送信対象データを受信する。
【0070】
ST23において、送信対象データ総量告知手段C2Bを実装している周辺機器への送信要求の場合、例えば、実施の形態1の複合機Prへの送信要求の場合には、送信対象データの送信対象データ総量(送信対象データサイズ)を要求するベンダリクエストコマンドを送信する。そして、ST24に移る。
ST24において、前記送信対象データ総量要求用ベンダリクエストコマンドに対する応答である送信対象データ総量(送信対象データサイズ)を受信したか否かを判別する。ノー(N)の場合はST24を繰り返し、イエス(Y)の場合はST25に移る。
ST25において、受信した送信対象データサイズを送信対象データ総量記憶手段D3Bに記憶し、ST26に移る。
【0071】
ST26において、送信対象データ総量記憶手段D3Bが記憶した送信対象データサイズが0で有るか否か、即ち、送信対象データが周辺機器に有るか(記憶されているか)否かを判別する。
ST27において、送信対象データが周辺機器に無いことをアプリケーションプログラムAPに告知する。そして、図5のデータ送受信処理のサブルーチンを終了して、図4のST4に戻る。
ST28において、送信対象データが周辺機器に記憶されているので、送信対象データの送信を要求し、受信を開始する。
【0072】
ST29において、前記送信対象データの受信が終了したか否かを判別する。ノー(N)の場合はST30に移り、イエス(Y)の場合はST31に移る。
ST30において、受信した送信対象データの受信データ総量(受信データサイズ)が送信対象データサイズよりも大きいか否かを判別する。ノー(N)の場合は受信を継続中なのでST29に戻り、イエス(Y)の場合はST33に移る。
ST31において、受信が終了した送信対象データの受信データサイズが、前記ST25で記憶した送信対象データサイズと一致するか否かを判別する。イエス(Y)の場合はST32に移り、ノー(N)の場合はST33に移る。
【0073】
ST32において、実際に受信した送信対象データの受信データサイズと、予め受信していた送信対象データサイズとが一致しているので、送信対象データの転送中にエラーが発生せず、正常に送受信が終了したので、アプリケーションプログラムAPに送信が正常に終了したことを告知する。そして、図5のデータ送受信処理のサブルーチンを終了して、図4のST4に戻る。
ST33において、受信データサイズと送信対象データサイズとが一致しない場合や、受信途中の受信データサイズが送信対象データサイズよりも大きくなった場合には、転送エラーが発生しているので、次の処理(1)、(2)を実行する。
(1)送信エラーが発生したことをアプリケーションプログラムAPに告知する。
(2)送信対象データの受信を停止して受信データ記憶手段AP1に記憶した受信データを破棄するとともに、受信データサイズを0に初期化する。
そして、ST28に戻り、送信対象データの再送信を開始する。
【0074】
(複合機のUSBコントローラのメインフローチャート)
図6は本発明の実施の形態1の複合機におけるUSBコントローラの処理のメインフローチャートである。
図6のフローチャートの各ST(ステップ)の処理は、前記ホストコンピュータHに記憶されたUSBコントローラ制御プログラム(USB接続機器制御プログラム)に従って実行される。また、図6の処理は他の処理と並行してマルチタスクで実行される。
図6のメインフローチャートは、複合機Prの電源オンによって開始(スタート)する。
【0075】
図6のST51において、ホストコンピュータHから送信された総量告知手段有無確認用ベンダリクエストコマンドを受信したか否かを判別する。イエス(Y)の場合はST52に移り、ノー(N)の場合はST53に移る。
ST52において、総量告知手段有無確認用ベンダリクエストコマンドを受信したので、これに応じて、複合機Prが送信対象データ総量告知手段C2Bを備えていることを示す応答をする。そして、ST51に戻る。
ST53において、送信対象データ総量の送信を要求するベンダリクエストコマンドを受信したか否かを判別する。イエス(Y)の場合はST54に移り、ノー(N)の場合はST58に移る。
【0076】
ST54において、送信対象データ総量検出手段C2Aが画像データ記憶手段FP3に記憶された画像データの中に、要求された送信対象データが有るか否かを検出する。イエス(Y)の場合(送信対象データが検出された場合)はST55に移り、ノー(N)の場合(送信対象データがなかった場合)はST56に移る。
ST55において、画像データ記憶手段FP3に記憶された送信対象データのデータサイズ(送信対象データ総量)を検出する。そして、ST57に移る。
ST56において、送信対象データがないので、送信対象データ総量を0に設定して、ST57に移る。
ST57において、前記ST55又はST56で検出又は設定された送信対象データサイズをホストコンピュータHに送信する。そして、ST51に戻る。
【0077】
ST58において、ホストコンピュータHから送信された送信対象データの送信要求コマンド(バルクInコマンド)を受信したか否かを判別する。イエス(Y)の場合はST59に移り、ノー(N)の場合はST51に戻る。
ST59において、受信したバルクInコマンドに応じて送信対象データを画像データ記憶手段FP3から送信用バッファBF1(図3参照)に転送し、送信用バッファBF1に一時記憶したデータをホストコンピュータHに送信する。
【0078】
(実施の形態1の作用)
前記構成を備えた実施の形態1のホストコンピュータH及び複合機Prでは、ホストコンピュータHの起動時や新たな周辺機器が接続された場合に、周辺機器に対して総量告知手段確認用ベンダリクエストコマンドが送信される。そして、ホストコンピュータHは、前記リクエストコマンドに対する応答があった周辺機器には送信対象データ総量告知手段C2Bが実装されていると記憶し(図4のST8,ST9参照)、有無確認用タイムアウト時間t1が経過しても応答がない周辺機器には送信対象データ総量告知手段C2Bが実装されていないと記憶する(図4のST7,ST10参照)。実施の形態1の複合機Prは、前記総量告知手段確認用ベンダリクエストコマンドに対して応答するので(図6のST52参照)、ホストコンピュータHは、複合機Prには送信対象データ総量告知手段C2Bが実装されていると記憶する。
【0079】
そして、ホストコンピュータHのアプリケーションプログラムAPによって、複合機Prでスキャニングした画像データを転送するように要求があった場合、USBドライバUDは、送信対象データとしての画像データの送信を要求する前に、送信対象データのデータサイズである送信対象データ総量の送信を要求する(図5のST23)。前記送信対象データサイズの送信を要求された複合機PrのUSBコントローラUCは、送信対象データが画像データ記憶手段FP3に記憶されているか否かを検出し、データがある場合にはそのデータサイズを検出してホストコンピュータHに応答する(図6のST55,ST57)。送信対象データが画像データ記憶手段FP3に記憶されていない場合には、送信対象データサイズが0バイトの応答をする(ST56,ST57)。
【0080】
そして、前記送信対象データサイズを受信したホストコンピュータHでは、送信対象データサイズがある場合、送信対象データの送信を要求するバルクInコマンドを送信し(ST28)、送信対象データの受信を開始する。そして、受信終了時に実際に受信したデータの受信データサイズと、予め検出して記憶しておいた送信対象データサイズ(送信対象データ総量)とが一致する場合(ST31でイエスの場合)には、送信が正常に終了したものと判別されるので、その旨がアプリケーションプログラムAPに告知される。一方、受信終了時の受信データサイズと送信対象データサイズとが一致しない場合には、途中で転送エラーが発生していると判別できるので、アプリケーションAPにその旨が告知され、再送信を要求する(ST33)。したがって、複合機Pr内部における画像データ記憶手段FP3とバッファBFとの間のデータの転送や、ホストコンピュータHと複合機Prとの間のデータ転送でエラーが発生したことをホストコンピュータHのUSBドライバで検出することができる。
【0081】
また、データの受信が終了する前に、受信データサイズが送信対象データサイズよりも大きくなった場合(ST30でイエスの場合)には、バルクInコマンドの発行を停止し(送信対象データの受信を中止し)、アプリケーションプログラムAPにその旨を告知すると共に、再送信を要求する(ST33)。したがって、無駄なバルクInコマンドを送信し続けることによるバスの占有を防止し、他の周辺機器とホストコンピュータHとの間のUSB規格のデータ転送に悪影響を及ぼすことを防止できる。
【0082】
さらに、送信対象データサイズが0バイトを受信した場合には、アプリケーションプログラムAPにその旨が告知され、バルクInコマンドが発行されない。したがって、無駄なバルクInコマンドの送信を防止できる。
また、実施の形態1では、前記送信対象データサイズは、ベンダリクエストコマンドで送信されており、コントロール転送が使用される。コントロール転送は、1フレーム(1ms)又は1マイクロフレーム(125μs)内での帯域幅が優先的に確保されるので、前記送信対象データサイズを安定・確実に取得することができる。
さらに、実施の形態1では、ホストコンピュータHから送信対象データ総量告知手段の有無を確認するベンダリクエストコマンドが送信されるので、送信対象データ総量告知手段を備えた周辺機器と、備えていない周辺機器とが混在して接続されたホストコンピュータHで管理可能である。
【0083】
(変更例)
以上、本発明の実施の形態を詳述したが、本発明は、前記実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内で、種々の変更を行うことが可能である。
例えば、本発明は複合機Prだけでなく、スキャナや外付け型のハードディスクドライブ、MO(Magnet−Optical)ディスクドライブ、FDドライブ等の、周辺機器側からデータの転送を行うUSB接続機器にも適用可能である。
【0084】
また、実施の形態1では、送信対象データがない場合に、送信対象データサイズが0バイトというデータを送信したが、送信対象データが存在しないというデータを送信することも可能である。
さらに、実施の形態1では、エニュメレーション時に、送信対象データ総量告知手段C2Bが実装されているか否かをベンダリクエストコマンドを送信して確認していたが、例えば、接続された周辺機器が複合機Prであるという情報を取得したホストコンピュータHが、複合機Pr用のUSBドライバを読み込む時に送信対象データ総量告知手段C2Bを実装していることを読み込むことにより、総量告知手段確認用ベンダリクエストコマンドを送信せずに、送信対象データ総量告知手段C2Bを実装しているか否かを確認することも可能である。即ち、総量告知手段有無確認用ベンダリクエストコマンド送信手段D1A,タイムアウト検出用タイマTM1、有無確認用タイムアウト時間記憶手段D1A1及び総量告知手段実装応答手段C1Aを省略することも可能である。
【0085】
さらに、前記USBドライバ(情報処理装置制御プログラム)UDは、ハードディスクドライブ以外のホストコンピュータHが読取り可能な記憶媒体(光磁気ディスク装置、光ディスク装置、磁気ディスク装置あるいはメモリスロット等)に記憶したり、可搬型の記録媒体(フレキシブルディスクや光磁気ディスク、光ディスク、磁気ディスク、フラッシュメモリ等)に記憶することも可能である。また、例えばネットワークなどの通信手段を介して各プログラムをホストコンピュータH等に転送し、ホストコンピュータH内の記憶媒体に格納して実行させることも可能である。
【0086】
また、実施の形態1では、転送エラーが発生した場合に、USBドライバUDで自動的に再送信を要求するように構成されているが、自動的に再送信を要求せず、アプリケーションプログラムAPに送信エラーの発生を告知するだけにして、アプリケーションプログラムAPからの再送信要求を待って再送信を要求するよう構成することも可能である。
さらに、転送エラーが発生してもすぐにアプリケーションプログラムAPに告知せず、自動的に再送信を要求し、例えば、自動的に再送信を要求する回数をカウントして、3回連続で転送エラーが発生した場合に、アプリケーションプログラムAPに転送エラーが発生したことを告知するように構成することも可能である。
【0087】
また、実施の形態1では、送信エラーが発生した場合に、送信対象データ総量(送信対象データサイズ)を再取得せず、送信対象データの再送信を要求したが、送信対象データの再送信を開始する前に、送信対象データサイズを再取得するよう構成することも可能である。即ち、図5において、ST33の処理をした後、ST28に戻らず、ST23に戻るよう構成することも可能である。
さらに、実施の形態1では、周辺機器が送信対象データ総量告知手段を備えていないことを検出するために前記タイムアウト検出用タイマTM1を使用したが、タイマを使用せず、総量告知手段有無確認用ベンダリクエストコマンドを送信してからのフレーム又はマイクロフレームの数をカウントするカウンタを使用することによって、送信対象データ総量告知手段C2Bを備えていないことを検出することも可能である。
【0088】
【発明の効果】
前述の本発明は、USB接続されたホストコンピュータ(情報処理装置)と、USB接続機器(複合機Pr)との間のデータ転送において、不要なUSBコマンドの送信を低減することができる。
また、本発明は、USB接続されたホストコンピュータ(情報処理装置)と、USB接続機器(複合機Pr)との間のデータ転送において、周辺機器内でのデータ転送のエラーを検出して、エラーのないデータ転送を実現することができる。
【図面の簡単な説明】
【図1】図1は本発明の実施の形態1の情報処理装置とUSB接続機器とがUSB接続された状態の説明図である。
【図2】図2は前記図1の情報処理装置(ホストコンピュータ)の機能をブロック図(機能ブロック図)で示した図である。
【図3】図3は前記図1の周辺機器(デジタル複合機)の機能をブロック図(機能ブロック図)で示した図である。
【図4】図4は本発明の実施の形態1のホストコンピュータにおけるUSBドライバの処理のメインフローチャートである。
【図5】図5は前記図4のST4のデータ送受信処理のサブルーチンのフローチャートである。
【図6】図6は本発明の実施の形態1の複合機におけるUSBコントローラの処理のメインフローチャートである。
【符号の説明】
C1A…総量告知手段実装応答手段
C2A…送信対象データ総量検出手段
C2B…送信対象データ総量告知手段
D1A…総量告知手段有無確認用ベンダリクエストコマンド送信手段
D2A…総量告知手段有無記憶手段
D3A…送信対象データ総量要求手段
D3B…送信対象データ総量記憶手段
D3C…送信対象データ有無判別手段
D3D…送信対象データ送信要求手段
D3E1…受信データ総量記憶手段
D3F…データ総量一致判別手段
D3G…再送信要求手段
D3H…送信結果告知手段
H…情報処理装置
Pr…USB接続機器
【産業上の利用分野】
本発明は、USB(Universal Serial Bus)接続により接続され、データの送受信が行われる情報処理装置及びUSB接続機器や、前記情報処理装置を制御する情報処理装置制御プログラム、前記USB接続機器を制御するUSB接続機器制御プログラム、前記各制御プログラムを記録した記録媒体に関し、特に、大容量のデータを送受信することのある前記情報処理装置及びUSB接続機器や、前記情報処理装置を制御する情報処理装置制御プログラム、前記USB接続機器を制御するUSB接続機器制御プログラム、前記各制御プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータやワークステーション等の情報処理装置(ホストコンピュータ)と、スキャナやプリンタ、ハードディスクドライブ等の外部接続機器(周辺機器)との間でデータの送受信(転送)を行う標準的インターフェースとして、USB(Universal Serial Bus)が普及している。前記USBインターフェースを有するホストコンピュータと、USB接続ケーブルで接続された周辺機器(USB接続機器)との間のデータ転送は、USB規格に定められたデータの転送方式に基づいて行われる。
【0003】
USB規格のデータ転送では、転送速度や応答時間、エラー修正等に応じて、コントロール転送、インタラプト転送、バルク転送及びアイソクロナス転送の4つの転送形態(転送方法)のいずれかの転送形態が使用される。
前記コントロール転送(制御転送)は、リクエストのようなデータ量の少ないデータの転送に使用され、例えば、接続された周辺機器の検索、認識や制御に必要な情報の送受信等を行うエニュメレーションを実行する際に使用される。USBリクエストは、ホストコンピュータから周辺機器に送信されるコマンドであり、USB規格の全ての周辺機器でサポートする必要のある標準リクエストや、周辺機器のベンダ(周辺機器の製造・販売者)が独自に定義したリクエストであるベンダリクエスト等がある。
【0004】
前記インタラプト転送(割り込み転送)は、キーボードやマウス等の信号のような周期的に比較的小さなデータ量のデータを転送する場合に使用される。
前記アイソクロナス転送は、リアルタイムで処理する必要のある音声データや動画データの様な比較的データ量の大きなデータを、一定のデータ転送速度でエラー修正せずに転送する必要がある場合に使用される。
バルク転送は、リアルタイムで転送したり、周期的に転送したりする必要が無く、比較的大きなデータ量のデータを、転送エラーが無く、確実に転送する必要がある場合に使用される。
【0005】
USB接続された周辺機器からホストコンピュータへのデータ転送(In転送又はupstream)を行う場合に、USB規格のデータ転送では、周辺機器側からホストコンピュータに対してデータの転送を要求することができない。したがって、前記In転送は、ホストコンピュータから周辺機器へのデータ転送の要求があって初めて行われる。
前記In転送を行う場合、先ず、ホストコンピュータに組み込まれたアプリケーションは、OSの標準のAPI(Application Program Interface)関数等を使用して、データの送信要求(Read API 命令)を行う。ホストコンピュータに実装されたUSBポートドライバは、前記送信要求を元にUSBデータを送信するための送信要求コマンド(リクエスト)を周辺機器に送信する。
【0006】
前記ホストコンピュータから送信された送信要求コマンドを受信した周辺機器は、周辺機器に実装されたUSBコントローラの受信バッファに送信要求コマンドを一時記憶する。そして、受信バッファから送信要求を読み込んだUSBコントローラは、USBコントローラの送信バッファ(転送バッファ)に送信要求の対象のデータを一時記憶し、送信バッファのデータをホストコンピュータに転送する。このとき、送信要求のあったデータのデータ量が大きい場合、前記バルク転送を使用してデータの転送が行われる。
【0007】
USB規格のデータ転送は、接続された全ての機器が2本の信号ラインを共有して行われており、信号ラインのノイズにより転送エラーが発生することがあるので、前記バルク転送やインタラプト転送、コントロール転送ではエラーチェックが行われる。転送されるデータの流れは、ホストコンピュータによってフレーム(1ms)又はマイクロフレーム(125μs)に分割して管理されており、前記エラーチェックは各フレーム(又は1マイクロフレーム)のSOF(Start Of Frame)パケットやトークンパケット、データパケットに含まれるエラーチェック用のデータ(エラーチェックビット)により行われる。そして、転送エラーが無く、正常に転送対象のデータが転送された場合、受信したホストコンピュータはACKのハンドシェークパケットを送信し、エラーがあった場合ホストコンピュータはハンドシェークパケットを送信しない。そして、ACKのハンドシェークパケットを受信しなかった周辺機器は、データを再送信する。
【0008】
【発明が解決しようとする課題】
しかしながら、ホストコンピュータから周辺機器へ送信される送信要求コマンドは、周辺機器側に送信対象のデータが存在するか否かに関わらず送信される。送信要求コマンドに対して、周辺機器がデータを受信又は送信できない状態(ビジー状態)である場合や送信するデータがない場合には、周辺機器からNAKのハンドシェークパケットが送信される。前記NAKの応答を受信したホストコンピュータは、バルク転送やインタラプト転送の場合、ACKの応答があるまで送信要求コマンドを何度も再送信する。この様な状況の下では、ホストコンピュータは、不要なUSBコマンドを送信し続けるので、データ転送の帯域を占有してしまうので、他に接続された周辺機器とホストコンピュータとのデータ転送に悪影響を及ぼす問題がある。
【0009】
また、前述のように、周辺機器のUSBコントローラの送信バッファから送信されたデータは、エラーチェックがされてホストコンピュータに送信されるが、周辺機器内において、データが記憶されたデータ記憶手段からUSBコントローラの送信バッファへのデータの転送ではエラーのチェックが行われない。したがって、周辺機器の品質が低い場合や、データ記憶手段から送信バッファへのデータ転送でノイズが発生しやすい等の場合には、USBコントローラの送信バッファにデータが一時記憶される段階でエラーが発生することがあり、USB規格の転送のエラーチェックでは、その前の段階で発生したエラーを検出することができない。したがって、USB規格の転送が始まる前にエラーが発生すると、バルク転送等が正常に行われても、エラーを含むデータが送信されるという問題がある。
【0010】
前述の事情に鑑み、本発明は、USB接続されたホストコンピュータ(情報処理装置)と、周辺機器(USB接続機器)との間のデータ転送において、不要なUSBコマンドの送信を低減することを第1の技術的課題とする。
また、本発明は、USB接続されたホストコンピュータ(情報処理装置)と、周辺機器(USB接続機器)との間のデータ転送において、周辺機器内でのデータ転送のエラーを検出して、エラーのないデータ転送を実現することを第2の技術的課題とする。
【0011】
【課題を解決するための手段】
次に、前記課題を解決するために案出した本発明を説明するが、本発明の要素には、後述の実施の形態の要素との対応を容易にするため、実施の形態の要素の符号をカッコで囲んだものを付記する。また、本発明を後述の実施の形態の符号と対応させて説明する理由は、本発明の理解を容易にするためであり、本発明の範囲を実施の形態に限定するためではない。
【0012】
(本発明)
(第1発明)
前記技術的課題を解決するために、第1発明の情報処理装置(H)は、USB接続機器(Pr)がUSB接続された情報処理装置(H)において、
前記USB接続機器(Pr)から前記情報処理装置(H)へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えていることを記憶する総量告知手段有無記憶手段(D2A)と、
前記送信対象データ総量告知手段(C2B)を備えた前記USB接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段(D3A)と、
前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段(D3B)と、
前記総量応答データに基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する送信対象データ有無判別手段(D3C)と、を備えたことを特徴とする。
【0013】
(第1発明の作用)
前記構成要件を備えた第1発明の情報処理装置(H)では、総量告知手段有無記憶手段(D2A)は、前記USB接続機器(Pr)から前記情報処理装置(H)へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えていることを記憶する。前記送信対象データ総量告知手段(C2B)を備えた前記USB接続機器に対してデータの送信を要求する場合、送信対象データ総量要求手段(D3A)は、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する。前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データが送信対象データ総量記憶手段(D3B)によって記憶される。そして、送信対象データ有無判別手段(D3C)は、前記総量応答データに基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する。
【0014】
したがって、前記第1発明の情報処理装置(H)では、送信対象データの送信を要求する前に、送信対象データ総量の要求に対する総量応答データを受信し、前記総量応答データに基づいて、送信対象データの有無を判別できる。そして、前記送信対象データの有無の判別結果によって、送信対象データがある場合には送信要求を行い、送信対象データがない場合(例えば、送信対象データ総量が0の総量応答データや、送信対象データ無しの総量応答データを受信した場合)には送信要求を行わないように制御することができ、不要なUSBコマンドを送信することを防止できる。この結果、送信対象データが無い場合にACKの応答を受信するまで不要な送信要求コマンドを送信し続けることを防止でき、他のUSB接続機器のデータ転送へ悪影響を及ぼすことを防止できる。
【0015】
(第1発明の形態1)
また、第1発明の形態1の情報処理装置(H)は、前記第1発明の情報処理装置(H)において、
前記送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置(H)に新たにUSB接続機器(Pr)が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段(D1A)と、
前記USB接続機器(Pr)から前記送信対象データ総量告知手段(C2B)を備えていることを示す応答がある場合に、前記新たに接続されたUSB接続機器(Pr)が前記送信対象データ総量告知手段(C2B)を備えていると記憶する前記総量告知手段有無記憶手段(D2A)と、
を備えたことを特徴とする。
【0016】
(第1発明の形態1の作用)
前記構成要件を備えた第1発明の形態1の情報処理装置(H)では、前記情報処理装置(H)に新たにUSB接続機器(Pr)が接続された際に、総量告知手段有無確認用ベンダリクエストコマンド送信手段(D1A)は、前記送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えているか否かを確認するためのベンダリクエストコマンドを送信する。そして、前記USB接続機器(Pr)から前記送信対象データ総量告知手段(C2B)を備えていることを示す応答がある場合には、総量告知手段有無記憶手段(D2A)は、前記新たに接続されたUSB接続機器(Pr)が前記送信対象データ総量告知手段(C2B)を備えていることを記憶する。したがって、情報処理装置(H)に接続されたUSB接続機器(Pr)が、送信対象データ総量告知手段(C2B)を備えているか否かをUSB接続機器(Pr)毎に記憶し、管理することができる。この結果、送信対象データ総量告知手段(C2B)を備えていないUSB接続機器(Pr)に対して、送信対象データ総量を送信するように要求することを防止できる。
【0017】
(第1発明の形態2)
また、第1発明の形態2の情報処理装置(H)は、前記第1発明または前記第1発明の形態1の情報処理装置(H)において、
前記送信対象データが前記USB接続機器(Pr)に存在する場合に、前記USB接続機器(Pr)に対して送信対象データの送信を要求する送信対象データ送信要求手段(D3D)と、
前記USB接続機器(Pr)から送信され情報処理装置(H)が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段(D3E1)と、
前記受信データ総量と、前記送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段(D3F)と、
を備えたことを特徴とする。
【0018】
(第1発明の形態2の作用)
前記構成要件を備えた第1発明の形態2の情報処理装置(H)では、前記送信対象データが前記USB接続機器(Pr)に存在する場合、送信対象データ送信要求手段(D3D)は、前記USB接続機器(Pr)に対して送信対象データの送信を要求する。前記USB接続機器(Pr)から送信され情報処理装置(H)が受信した受信データの総データ量である受信データ総量が、受信データ総量記憶手段(D3E1)によって記憶される。そして、データ総量一致判別手段(D3F)によって、前記受信データ総量と、前記総量応答データに含まれる前記送信対象データ総量とが、同一か否かが判別される。
【0019】
したがって、前記受信データ総量と送信対象データ総量とが同一の場合、送信対象データは、転送エラーが無く転送されたと判断できる。即ち、バルク転送時や、インタラプト転送時等だけでなく、USB接続機器(Pr)内部でもエラー無く転送されたものと判断できる。そして、前記受信データ総量と送信対象データ総量とが同一でない場合、バルク転送等及びUSB接続機器(Pr)内部でのデータ転送のいずれかのデータ転送時に、エラーが発生したものと判断できる。したがって、送信エラーの発生を判別できるので、データ転送の信頼性を高めることができる。
【0020】
(第1発明の形態3)
また、第1発明の形態3の情報処理装置(H)は、前記第1発明の形態2の情報処理装置(H)において、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器(Pr)に対して、前記送信対象データの再送信を要求する再送信要求手段(D3G)、
を備えたことを特徴とする。
【0021】
(第1発明の形態3の作用)
前記構成要件を備えた第1発明の形態3の情報処理装置(H)では、再送信要求手段(D3G)は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器(Pr)に対して、前記送信対象データの再送信を要求する。したがって、送信エラーが発生した場合に、送信対象データを自動的に再取得することができる。
【0022】
(第1発明の形態4)
また、第1発明の形態4の情報処理装置(H)は、前記第1発明の形態2の情報処理装置(H)において、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段(D3H)、
を備えたことを特徴とする。
【0023】
(第1発明の形態4の作用)
前記構成要件を備えた第1発明の形態4の情報処理装置(H)では、送信結果告知手段(D3H)は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する。したがって、前記告知によって、送信要求された送信対象データの送信中に、送信エラーが発生したことを認識でき、再送信要求や、ユーザへの告知等の処理を実行することができる。
【0024】
(第2発明)
前記技術的課題を解決するために第2発明のUSB接続機器(Pr)は、USB接続可能な情報処理装置(H)に接続されるUSB接続機器(Pr)において、
前記情報処理装置(H)から送信を要求された送信対象データを前記情報処理装置(H)に送信する送信対象データ送信手段(C2C)と、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段(C2A)と、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置(H)に送信する送信対象データ総量告知手段(C2B)と、
を備えたことを特徴とする。
【0025】
(第2発明の作用)
前記構成要件を備えた第2発明のUSB接続機器(Pr)では、送信対象データ総量検出手段(C2A)は、前記情報処理装置(H)へ送信する送信対象データの総データ量である送信対象データ総量を検出する。前記送信対象データ総量を送信するよう要求があった場合に、送信対象データ総量告知手段(C2B)は、前記送信対象データの前記送信対象データ総量を前記情報処理装置(H)に送信する。そして、前記情報処理装置(H)から送信を要求された送信対象データは、送信対象データ送信手段(C2C)によって前記情報処理装置(H)に送信される。したがって、情報処理装置(H)から送信対象データ総量を送信する要求がある場合に、送信対象データ総量検出手段(C2A)で検出した送信対象データ総量を送信することができる。この結果、前記送信対象データ総量に基づいて、情報処理装置(H)は、送信対象データの有無及び送信対象データの総データ量を認識することができ、送信対象データ総量に応じた送信要求コマンドを送信可能となる。この結果、第2発明のUSB接続機器(Pr)は、不要なUSBコマンドを受信することを少なくでき、他のUSB接続機器(Pr)と情報処理装置(H)とのデータの送受信に悪影響を及ぼすことを防止できる。
【0026】
(第2発明の形態1)
また、第2発明の形態1のUSB接続機器(Pr)は、前記第2発明のUSB接続機器(Pr)において、
前記USB接続機器(Pr)が前記情報処理装置(H)に新たに接続された際に、前記情報処理装置(H)から送信された、前記USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置(H)に対して前記送信対象データ総量告知手段(C2B)を備えていることを示す応答をする総量告知手段実装応答手段(C1A)、
を備えたことを特徴とする。
【0027】
(第2発明の形態1の作用)
前記構成要件を備えた第2発明の形態1のUSB接続機器(Pr)では、前記USB接続機器(Pr)が前記情報処理装置(H)に新たに接続された際に、前記情報処理装置(H)から送信された、前記USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、総量告知手段実装応答手段(C1A)は、前記情報処理装置(H)に対して前記送信対象データ総量告知手段(C2B)を備えていることを示す応答をする。したがって、第2発明の形態1のUSB接続機器(Pr)では、USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えていることを情報処理装置(H)に認識させることできるので、第2発明の形態1のUSB接続機器(Pr)に送信対象データの送信の要求あった場合に、送信要求コマンドを送信する前に、送信対象データ総量を送信するように情報処理装置(H)に処理させることができる。
【0028】
(第3発明)
前記技術的課題を解決するために、第3発明の情報処理装置制御プログラムは、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記USB接続機器(Pr)から前記情報処理装置(H)へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えていることを記憶する総量告知手段有無記憶手段(D2A)、
前記送信対象データ総量告知手段(C2B)を備えた前記USB接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段(D3A)、
前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段(D3B)、
前記総量応答データに基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する送信対象データ有無判別手段(D3C)、
として機能させることを特徴とする。
【0029】
(第3発明の作用)
前記構成要件を備えた第3発明の情報処理装置制御プログラムでは、総量告知手段有無記憶手段(D2A)は、前記USB接続機器(Pr)から前記情報処理装置(H)へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えていることを記憶する。前記送信対象データ総量告知手段(C2B)を備えた前記USB接続機器に対してデータの送信を要求する場合、送信対象データ総量要求手段(D3A)は、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する。前記送信対象データ総量の送信の要求に対する総量応答データを受信した場合に、受信した前記総量応答データが送信対象データ総量記憶手段(D3B)によって記憶される。そして、送信対象データ有無判別手段(D3C)は、前記総量応答データに基づいて、前記送信対象データが前記USB接続機器(Pr)に存在するか否かを判別する。
【0030】
したがって、前記第3発明の情報処理装置制御プログラムでは、送信対象データの送信を要求する前に、送信対象データ総量の要求に対する総量応答データを受信し、前記総量応答データに基づいて、送信対象データの有無を判別できる。そして、前記送信対象データの有無の判別結果によって、送信対象データがある場合には送信要求を行い、送信対象データがない場合(例えば、送信対象データ総量が0の総量応答データや、送信対象データ無しの総量応答データを受信した場合)には送信要求を行わないように制御することができ、不要なUSBコマンドを送信することを防止できる。この結果、送信対象データが無い場合にACKの応答を受信するまで不要な送信要求コマンドを送信し続けることを防止でき、他のUSB接続機器のデータ転送へ悪影響を及ぼすことを防止できる。
【0031】
(第3発明の形態1)
また、第3発明の形態1の情報処理装置制御プログラムは、前記第3発明の情報処理装置制御プログラムにおいて、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置(H)に新たにUSB接続機器(Pr)が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段(D1A)、
前記USB接続機器(Pr)から前記送信対象データ総量告知手段(C2B)を備えていることを示す応答がある場合に、前記新たに接続されたUSB接続機器(Pr)が前記送信対象データ総量告知手段(C2B)を備えていると記憶する前記総量告知手段有無記憶手段(D2A)、
として機能させることを特徴とする。
【0032】
(第3発明の形態1の作用)
前記構成要件を備えた第3発明の形態1の情報処理装置制御プログラムでは、前記情報処理装置(H)に新たにUSB接続機器(Pr)が接続された際に、総量告知手段有無確認用ベンダリクエストコマンド送信手段(D1A)は、前記送信対象データ総量告知手段(C2B)を前記USB接続機器(Pr)が備えているか否かを確認するためのベンダリクエストコマンドを送信する。そして、前記USB接続機器(Pr)から前記送信対象データ総量告知手段(C2B)を備えていることを示す応答がある場合には、総量告知手段有無記憶手段(D2A)は、前記新たに接続されたUSB接続機器(Pr)が前記送信対象データ総量告知手段(C2B)を備えていること記憶する。したがって、情報処理装置(H)に接続されたUSB接続機器(Pr)が、送信対象データ総量告知手段(C2B)を備えているか否かをUSB接続機器(Pr)毎に記憶し、管理することができる。この結果、送信対象データ総量告知手段(C2B)を備えていないUSB接続機器(Pr)に対して、送信対象データ総量を送信するように要求することを防止できる。
【0033】
(第3発明の形態2)
また、第3発明の形態2の情報処理装置制御プログラムは、前記第3発明または第3発明の形態1の情報処理装置制御プログラムにおいて、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記送信対象データが前記USB接続機器(Pr)に存在する場合に、前記USB接続機器(Pr)に対して送信対象データの送信を要求する送信対象データ送信要求手段(D3D)、
前記USB接続機器(Pr)から送信され情報処理装置(H)が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段(D3E1)、
前記受信データ総量と、前記送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段(D3F)、
として機能させることを特徴とする。
【0034】
(第3発明の形態2の作用)
前記構成要件を備えた第3発明の形態2の情報処理装置制御プログラムでは、前記送信対象データが前記USB接続機器(Pr)に存在する場合、送信対象データ送信要求手段(D3D)は、前記USB接続機器(Pr)に対して送信対象データの送信を要求する。前記USB接続機器(Pr)から送信され情報処理装置(H)が受信した受信データの総データ量である受信データ総量が、受信データ総量記憶手段(D3E1)によって記憶される。そして、データ総量一致判別手段(D3F)によって、前記受信データ総量と、前記総量応答データに含まれる前記送信対象データ総量とが、同一か否かが判別される。
【0035】
したがって、前記受信データ総量と送信対象データ総量とが同一の場合、送信対象データは、転送エラーが無く転送されたと判断できる。即ち、バルク転送時や、インタラプト転送時等だけでなく、USB接続機器(Pr)内部でもエラー無く転送されたものと判断できる。そして、前記受信データ総量と送信対象データ総量とが同一でない場合、バルク転送等及びUSB接続機器(Pr)内部でのデータ転送のいずれかのデータ転送時に、エラーが発生したものと判断できる。したがって、送信エラーの発生を判別できるので、データ転送の信頼性を高めることができる。
【0036】
(第3発明の形態3)
また、第3発明の形態3の情報処理装置制御プログラムは、前記第3発明の形態2の情報処理装置制御プログラムにおいて、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器(Pr)に対して、前記送信対象データの再送信を要求する再送信要求手段(D3G)、
として機能させることを特徴とする。
【0037】
(第3発明の形態3の作用)
前記構成要件を備えた第3発明の形態3の情報処理装置制御プログラムでは、再送信要求手段(D3G)は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器(Pr)に対して、前記送信対象データの再送信を要求する。したがって、送信エラーが発生した場合に、送信対象データを自動的に再取得することができる。
【0038】
(第3発明の形態4)
また、第3発明の形態4の情報処理装置制御プログラムは、前記第3発明の形態2の情報処理装置制御プログラムにおいて、
USB接続機器(Pr)がUSB接続された情報処理装置(H)を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段(D3H)、
として機能させることを特徴とする。
【0039】
(第3発明の形態4の作用)
前記構成要件を備えた第3発明の形態4の情報処理装置制御プログラムでは、送信結果告知手段(D3H)は、前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する。したがって、前記告知によって、要求された送信対象データを送信中に、送信エラーが発生したことを認識でき、再送信要求や、ユーザへの告知等の処理を実行することができる。
【0040】
(第4発明)
前記技術的課題を解決するために第4発明のUSB接続機器制御プログラムは、
USB接続可能な情報処理装置(H)に接続されるUSB接続機器(Pr)を、
前記情報処理装置(H)から送信を要求された送信対象データを前記情報処理装置(H)に送信する送信対象データ送信手段(C2C)と、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段(C2A)と、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置(H)に送信する送信対象データ総量告知手段(C2B)と、
として機能させることを特徴とする。
【0041】
(第4発明の作用)
前記構成要件を備えた第4発明のUSB接続機器制御プログラムでは、送信対象データ総量検出手段(C2A)は、前記情報処理装置(H)へ送信する送信対象データの総データ量である送信対象データ総量を検出する。前記送信対象データ総量を送信するよう要求があった場合に、送信対象データ総量告知手段(C2B)は、前記送信対象データの前記送信対象データ総量を前記情報処理装置(H)に送信する。そして、前記情報処理装置(H)から送信を要求された送信対象データは、送信対象データ送信手段(C2C)によって前記情報処理装置(H)に送信される。
【0042】
したがって、情報処理装置(H)から送信対象データ総量を送信する要求がある場合に、送信対象データ総量検出手段(C2A)で検出した送信対象データ総量を送信することができる。この結果、前記送信対象データ総量に基づいて、情報処理装置(H)は、送信対象データの有無及び送信対象データの総データ量を認識することができ、送信対象データ総量に応じた送信要求コマンドを送信可能となる。この結果、第4発明のUSB接続機器制御プログラムでは、USB接続機器(Pr)が不要なUSBコマンドを受信することを少なくでき、他のUSB接続機器(Pr)と情報処理装置(H)とのデータの送受信に悪影響を及ぼすことを防止できる。
【0043】
(第4発明の形態1)
また、第4発明の形態1のUSB接続機器制御プログラムは、前記第4発明のUSB接続機器制御プログラムにおいて、
USB接続可能な情報処理装置(H)に接続されるUSB接続機器(Pr)を、
前記USB接続機器(Pr)が前記情報処理装置(H)に新たに接続された際に、前記情報処理装置(H)から送信された、前記USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置(H)に対して前記送信対象データ総量告知手段(C2B)を備えていることを示す応答をする総量告知手段実装応答手段(C1A)、
として機能させることを特徴とする。
【0044】
(第4発明の形態1の作用)
前記構成要件を備えた第4発明の形態1のUSB接続機器制御プログラムでは、前記USB接続機器(Pr)が前記情報処理装置(H)に新たに接続された際に、前記情報処理装置(H)から送信された、前記USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、総量告知手段実装応答手段(C1A)は、前記情報処理装置(H)に対して前記送信対象データ総量告知手段(C2B)を備えていることを示す応答をする。したがって、第4発明の形態1のUSB接続機器制御プログラムでは、USB接続機器(Pr)が送信対象データ総量告知手段(C2B)を備えていることを情報処理装置(H)が認識できるので、USB接続機器(Pr)に送信対象データの送信の要求あった場合に、送信要求コマンドを送信する前に、送信対象データ総量を送信するように情報処理装置(H)に処理させることができる。
【0045】
なお、前記第3発明及び第3発明の形態1〜4の情報処理装置制御プログラムは、情報処理装置(H)のコンピュータが読取り可能な記録媒体に記録することができる。また、前記第4発明及び第4発明の形態1のUSB接続機器制御プログラムは、USB接続機器(Pr)のコンピュータが読取り可能な記録媒体に記録することができる。
【0046】
【発明の実施の形態】
(実施の形態)
次に図面を参照しながら、本発明の実施の形態を説明するが、本発明は以下の実施の形態に限定されるものではない。
(実施の形態1)
図1は本発明の実施の形態1の情報処理装置とUSB接続機器とがUSB接続された状態の説明図である。
図1において、ホストコンピュータ(情報処理装置)Hには、USBケーブルCbを介して、プリンタ、スキャナ及び複写機としての機能を備えたデジタル複合機(USB接続機器、周辺機器)UがUSB接続されている。前記ホストコンピュータHは、コンピュータ本体H1、ディスプレイH2、キーボード(入力装置)H3、マウス(入力装置)H4、図示しないHDドライブ(ハードディスクドライブ)、CDドライブ(コンパクトディスクドライブ)、およびFDドライブ(フレキシブルディスクドライブ)等により構成されている。
【0047】
図1において、前記複合機Uは、プリンタU1、イメージスキャナU2、自動原稿搬送装置U3を有している。前記プリンタU1は、内部に印刷用紙が収容された複数の給紙トレイTR1〜TR4と、画像が記録された印刷用紙が排出される排出トレイTRhを有している。前記自動原稿搬送装置U3は、イメージスキャナU2上面のプラテンガラス(図示せず)上に支持されている。前記自動原稿搬送装置U3は、複写しようとする複数の原稿が重ねて載置される原稿給紙トレイTG1を有している。前記原稿給紙トレイTG1に載置された複数の各原稿は順次プラテンガラス上の複写位置を通過して原稿排紙トレイTG2に排出されるように構成されている。前記自動原稿搬送装置U3は、その後端部(−X端部)に設けた左右方向に延びるヒンジ軸(図示せず)により前記プラテンガラス上面に対して回動可能であり、原稿を作業者が手でプラテンガラス上に置く場合に上方に回動される。そして、前記複合機Uは、複合機Uの設定情報等をユーザが設定するためのユーザインタフェース(入力装置)UIを備えている。
【0048】
前記ホストコンピュータHのコンピュータ本体H1及び複合機Uは、それぞれ、外部との信号の入出力および入出力信号レベルの調節等を行うI/O(入出力インターフェース)、必要な処理を行うためのプログラムおよびデータ等が記憶されたROM(リードオンリーメモリ、記録媒体)やハードディスク(記録媒体)、必要なデータを一時的に記憶するためのRAM(ランダムアクセスメモリ、記録媒体)、ハードディスクやROM等に記憶されたプログラムに応じた処理を行うCPU(中央演算処理装置、マイクロコンピュータ)、ならびにクロック発振器等を有している。前記構成のホストコンピュータH及び複合機Uは、前記ハードディスクやROM等に記憶されたプログラムを実行することにより種々の機能を実現することができる。
【0049】
(ホストコンピュータHの機能)
図2は前記図1の情報処理装置(ホストコンピュータ)の機能をブロック図(機能ブロック図)で示した図である。
図2において、ホストコンピュータHのコンピュータ本体H1の前記ハードディスクドライブ(記録媒体)には、複合機UのイメージスキャナU2で読み取った(スキャニングした)画像データを編集・印刷するための画像処理ソフトを含むアプリケーションプログラムAPが記憶されている(組み込まれている)。また、前記ホストコンピュータHには、USB規格のデータ転送(送受信)を実現するためにデータ転送の制御や、データの変換、エラー処理等を行うUSBドライバUDが記憶されている。したがって、前記アプリケーションプログラムAPが複合機Uに記憶された画像データを読み出す場合に、アプリケーションプログラムAPがUSBドライバUDにデータの転送を要求し、複合機UからUSBケーブルCbを介して画像データ(送信対象データ)の転送を行う。そして、受信した送信対象データは、アプリケーションプログラムAPの受信データ記憶手段AP1に記憶される。
【0050】
(USBドライバUDの機能)
USBドライバUDは、ホストコンピュータHの起動時(電源オン時)や、起動中のホストコンピュータHにUSB接続で周辺機器(デバイス)が接続された時に、接続されたデバイスを検出し、USB規格の所定のエニュメレーション処理(各デバイスを制御するための情報を読み取ったり、管理するためのアドレスを割り付けたりする処理)を実行するデバイス検出手段D1を有している。前記デバイス検出手段D1は、総量告知手段有無確認用ベンダリクエストコマンド送信手段D1Aを有している。前記総量告知手段有無確認用ベンダリクエストコマンド送信手段D1Aは、前記エニュメレーション処理において送信されるUSB規格の所定のデータに、接続されたデバイスが送信対象データ総量告知手段を備えているか否かを確認するための総量告知手段確認用ベンダリクエストコマンドを付加して送信する。前記送信対象データ総量告知手段(C2B)は、図3で後述する周辺機器(複合機Pr)に実装された手段であり、送信対象データの総データ量である送信対象データ総量を送信するよう要求があった場合に、要求のあった前記送信対象データの前記送信対象データ総量を送信する。
【0051】
前記総量告知手段有無確認用ベンダリクエストコマンド送信手段D1Aは、タイムアウト検出用タイマTM1と、有無確認用タイムアウト時間記憶手段D1A1とを有する。前記タイムアウト検出用タイマTM1には、有無確認用タイムアウト時間記憶手段D1A1に記憶された有無確認用タイムアウト時間t1(3秒程度)がセットされ、前記総量告知手段有無確認用ベンダリクエストコマンド送信手段D1Aによって総量告知手段有無確認用ベンダリクエストコマンドが送信されてから有無確認用タイムアウト時間t1が経過するまでの間に複合機Prから応答があるか否かの判別に使用される。なお、前記有無確認用タイムアウト時間t1の設定値は、適宜変更可能である。
【0052】
そして、前記エニュメレーション処理時に、デバイス検出手段D1により読み取った周辺機器の情報(デバイス情報)がデバイス情報記憶手段D2に記憶される。前記デバイス情報記憶手段D2は、総量告知手段有無記憶手段D2Aを有している。前記総量告知手段有無記憶手段D2Aは、前記総量告知手段有無確認用ベンダリクエストコマンドに応じて、接続された複合機Prが送信対象データ総量告知手段を備えているか否かを記憶する。実施の形態1では、前記ベンダリクエストコマンドに応じて、有無確認用タイムアウト時間t1が経過する前に複合機Prから送信対象データ総量告知手段を備えていることを示す応答があった場合に、送信対象データ総量告知手段を備えていると判別して、記憶する。一方、前記有無確認用タイムアウト時間t1が経過しても、送信対象データ総量告知手段を備えていることを示す応答が転送されない場合には、送信対象データ総量告知手段を備えていないものと判別して、記憶する。
【0053】
前記複合機Prに対して、アプリケーションAPからデータの送信の要求があった場合、ホスト用データ送受信制御手段D3によって送信対象データの送受信が制御される。前記ホスト用データ送受信制御手段D3は、送信対象データ総量要求手段D3Aを有している。前記送信対象データ総量要求手段D3Aは、送信対象データ総量告知手段を備えた複合機Prに対してアプリケーションAPからデータの送信の要求があった場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求するためのリクエストコマンドを発行(送信)する。実施の形態1では、前記送信対象データ総量の送信を要求するためのリクエストコマンドは、コントロール転送で送信され、前記リクエストに応じて複合機Prから送信される総量応答データを受信した場合に、受信した総量応答データを記憶する送信対象データ総量記憶手段(総量応答データ記憶手段)D3Bに記憶される。
【0054】
そして、送信対象データ総量の送信を要求するためのリクエストコマンドに対する応答に応じて、アプリケーションプログラムAPから要求のあった送信対象データが複合機Prに有るか否かが、送信対象データ有無判別手段D3Cによって判別される。実施の形態1では、リクエストコマンドに応じて送信された総量応答データに含まれる送信対象データ総量が0バイトである場合に、送信対象データ有無判別手段D3Cは、送信対象データが複合機Prに存在しないものと判別して、そのことをアプリケーションプログラムAPに告知する。
なお、実施の形態1では、前記総量応答データとしての送信対象データ総量が0で有るか否かによって送信対象データの有無を判別しているが、これに替えて、送信対象データが存在しない場合に総量応答データを送信しないように複合機Prを構成して、前記リクエストコマンドに応じて総量応答データが送信されない場合に、送信対象データが無いものと判別することも可能である。さらに、周辺機器に送信対象データが無い場合に、データ総量0バイトではなく、データ無しを示す総量応答データを送信する手段を複合機Prが備えている場合にデータ無しの総量応答データに応じて送信対象データが無いものと判別することも可能である。
【0055】
一方、送信対象データ総量が0バイトでない場合には、送信対象データ有無判別手段D3Cは送信対象データが有るものと判別し、送信対象データが有るものと判別されると、送信対象データ送信要求手段D3Dが送信対象データの送信を要求するためのバルクInコマンド(バルク転送でIn方向の転送を行うことを指定するコマンド)を発行する(送信する)。前記バルクInコマンドに応じて複合機Prから送信対象データが送信され、ホストコンピュータHが受信した送信対象データの総量である受信データ総量が受信データ総量カウント手段D3Eによってカウントされ、受信データ総量記憶手段D3E1に記憶される。
【0056】
前記受信データ総量記憶手段D3E1に記憶された受信データ総量と、前記送信対象データ総量記憶手段D3Bに記憶された送信対象データ総量とが、一致するか否かがデータ総量一致判別手段D3Fによって逐次判別される。前記データ総量一致判別手段D3Fは、複合機Prによる送信対象データの送信が終了したか否かを判別する受信終了判別手段D3F1を有する。実施の形態1の前記受信終了判別手段D3F1は、データの送受信中に、バルクInコマンドによる送信要求に対して所定のデータ量よりも小さなデータ(送信対象データの最後のデータ、0バイトのデータも含む)を受信した場合、または前記受信データ総量が送信対象データ総量よりも大きくなった場合に受信終了と判別する。
【0057】
前記データ総量一致判別手段D3Fは、受信終了と判別されず且つ前記受信データ総量が送信対象データ総量に満たない場合には、送受信中と判別して、送信対象データ送信要求手段D3Dに、引き続きバルクInコマンドを発行させる。前記受信が終了したと判別された際に、前記受信データ総量と送信対象データ総量とが一致している場合、送信対象データの受信が正常に完了したものとデータ総量一致判別手段D3Fは判別する。一方、受信が終了したと判別された際に、前記受信データ総量が送信対象データ総量に満たない場合や、前記受信データ総量が送信対象データ総量よりも大きくなった場合には、データ総量一致判別手段D3Fは転送エラーが発生したものと判別し、前記送信対象データ送信要求手段D3DによるバルクInコマンドの発行を停止させる。
【0058】
前記転送エラーが発生したものと判別された場合、データ総量一致判別手段D3Fは、再送信要求手段D3Gに送信対象データの再送信が要求させる。実施の形態1では、再送信要求手段D3Gは、転送エラーが発生した場合、受信したデータ及び受信データ総量カウント手段D3Eでカウントされたカウント値(受信データ総量)を破棄して、送信対象データ送信要求手段D3Dに再びバルクInコマンドを発行するように制御する。このとき、前記データ総量一致判別手段D3Fは、送信結果告知手段(送信エラー告知手段)D3Hを制御して、アプリケーションプログラムAPに転送エラー(送信エラー)が発生した旨を告知させる。なお、前記送信結果告知手段D3Hは、データ総量一致判別手段D3Fが送受信が正常に完了したと判別した場合には、アプリケーションプログラムAPに正常に終了したことを告知する。前記アプリケーションプログラムAPは、前記告知の結果の告知に応じて所定の処理を実行する。例えば、転送エラーが発生した場合、ディスプレイH2に転送エラー告知用の画像を表示してユーザに告知し、正常に送受信が完了した場合、正常終了時の画像を表示することができる。
【0059】
なお、前記USBドライバUDの各手段D1〜D3が送信するリクエストコマンド等のデータは、バッファBFの送信用バッファBF1に一時記憶された後、USBポートを介して複合機Prに送信される。そして、複合機Prから送信された送信対象データ総量等のデータは、USBポートを介してバッファBFの受信用バッファBF2に一時記憶され、各記憶手段AP1,C2B,C3Bに転送される。
その他、前記USBドライバUDは、USB規格に定められた送受信を実現するための図示しない手段(規格上最低限備えていなければならないリクエストコマンドを記憶する手段や、各リクエストコマンドを送信する手段、エラーチェックビットによる転送エラーの発生を判別する手段等)を備えている。
【0060】
(複合機Prの機能)
図3は前記図1の周辺機器(デジタル複合機)の機能をブロック図(機能ブロック図)で示した図である。
図3において、複合機Prに実装されたハードディスクドライブ(記録媒体)には、複合機Uで印刷や、画像読取り(スキャニング)、複写(コピー)する際の各部材の動作を制御する複合機制御プログラムFPが組み込まれている。前記複合機制御プログラムFPは、印刷時にプリンタU1内部の各部材の動作を制御する印刷制御手段FP1と、スキャニング又は複写する際の画像読取り時にイメージスキャナU2や自動原稿搬送装置U3の動作を制御するスキャナ制御手段FP2を有している。そして、前記スキャナ制御手段FP2で読み取った画像データや、ホストコンピュータHから送信された印刷対象の画像データを記憶する画像データ記憶手段FP3を有している。
また、前記複合機Prには、USBコントローラUCが組み込まれており、前記USBドライバと同様に、前記ホストコンピュータHと前記複合機Prとの間のUSB規格のデータの転送(送受信)を制御する。
【0061】
(USBコントローラの機能)
図3において、前記USBコントローラUCは、前記ホストコンピュータHのUSBドライバUDと同様に、送受信するデータを一時記憶するバッファBFを有している。そして、USBコントローラUCは、前記エニュメレーション時にホストコンピュータHから送信されるリクエストコマンドに応答するデバイス検出応答手段C1を備えている。前記デバイス検出応答手段C1は、前記ホストコンピュータHから総量告知手段有無確認用ベンダリクエストコマンドが送信された場合に、ホストコンピュータHに対して送信対象データ総量告知手段を備えていることを示す応答をする総量告知手段実装応答手段C1Aを有している。
【0062】
また、前記USBコントローラUCは、ホストコンピュータHから印刷する画像データが送信された場合や、イメージスキャナU2で読み取った画像をホストコンピュータHに送信する場合に、データの送受信を制御する周辺機器用データ送受信制御手段C2を有している。前記周辺機器用データ送受信制御手段C2は、送信対象データ総量検出手段C2Aを有しており、送信対象データ総量検出手段C2Aは、受信用バッファBF2が送信対象データ総量を要求するクエストコマンドを受信した場合に、画像データ記憶手段FP3に記憶されたデータの中から、送信対象データを特定し、送信対象データの総データ量である送信対象データ総量を検出する。
【0063】
そして、検出された送信対象データ総量が、送信対象データ総量告知手段C2Bによって、ホストコンピュータHに送信される。このとき、前記送信対象データ総量告知手段C2Bは、画像データ記憶手段FP3に記憶されたデータの中に送信対象データがない場合(例えば、画像データ記憶手段FP3に記憶されたデータが1つもない場合等)には、送信対象データ総量として0バイトを送信する。
前記送信対象データがあり、複合機Prが前記送信対象データ送信要求手段D3Dで発行されたバルクInコマンドを受信した場合、送信対象データ送信手段C2Cは、前記バルクInコマンドに応じて、送信対象データを送信する。
その他、前記USBコントローラUCは、USB規格に定められた送受信を実現するための図示しない手段(規格上最低限備えていなければならないリクエストコマンドに対する応答を記憶する手段や、各応答を送信する手段、エラーチェックビットによる転送エラーの発生を判別する手段等)を備えている。
【0064】
(実施の形態1のフローチャートの説明)
(ホストコンピュータのUSBドライバのメインフローチャート)
図4は本発明の実施の形態1のホストコンピュータにおけるUSBドライバの処理のメインフローチャートである。
図4のフローチャートの各ST(ステップ)の処理は、前記ホストコンピュータHに記憶されたUSBドライバ制御プログラム(情報処理装置制御プログラム)に従って実行される。また、図4の処理は他の処理と並行してマルチタスクで実行される。
図4のメインフローチャートは、ホストコンピュータHの電源オンによって開始(スタート)する。
【0065】
図4のST1において、ホストコンピュータHの電源がオンになった直後(電源オン時)か否かを判別する。ノー(N)の場合はST2に移り、イエス(Y)の場合はST5に移る。
ST2において、ホストコンピュータHが起動中に新たな周辺機器が接続が検出されたか否かを判別する。ノー(N)の場合はST3に移り、イエス(Y)の場合はST5に移る。
ST3において、周辺機器へのデータの送信要求がされたか否かを判別する。ノー(N)の場合はST1に戻り、イエス(Y)の場合はST4に移る。
ST4において、ホストコンピュータHと周辺機器(複合機Prを含む)との間のデータの送受信を行うデータ送受信処理(後述の図5のサブルーチン参照)が実行される。そして、ST1に戻る。
【0066】
ST5において、USB接続された周辺機器の情報読み込みや設定、管理するためのアドレスの割付等を行うバスエニュメレーションが開始される。前記エニュメレーションは、コントロール転送を使用して実行される。コントロール転送は、リクエストに関する情報を送信してコントロール転送の開始を告知するセットアップステージと、設定情報等の読み込むデータをホストコンピュータHと周辺機器との間で送受信するデータステージと、セットアップステージ及びデータステージが正常に終了したか否かを報告するデータを送受信するステータスステージとを有する。そして、ST5では、エニュメレーションのデータステージにおいて総量告知手段確認用ベンダリクエストコマンドが付加されたデータが送信される。なお、前記エニュメレーションは、電源オン時には全ての周辺機器に対して実行されるが、新たな周辺機器が接続された場合には、接続された新たな周辺機器のみに対して実行される。そして、ST6に移る。
【0067】
ST6において、タイムアウト検出用タイマTM1に有無確認用タイムアウト時間t1をセットし、ST7に移る。
ST7において、前記タイムアウト検出用タイマTM1がタイムアップしたか否か、即ち、有無確認用タイムアウト時間t1が経過したか否かを判別する。ノー(N)の場合はST8に移り、イエス(Y)の場合はST10に移る。
ST8において、周辺機器からホストコンピュータHに送信対象データ総量告知手段C2Bを備えている(実装している)ことを示す応答があったか否かを判別する。イエス(Y)の場合はST9に移り、ノー(N)の場合はST7に戻る。
【0068】
ST9において、総量告知手段実装応答手段C1Aから送信対象データ総量告知手段C2Bを備えていることを示す応答があると、ホストコンピュータHの総量告知手段有無記憶手段D2Aはその周辺機器が送信対象データ総量告知手段C2Bを備えていることを記憶する。
ST10において、前記有無確認用タイムアウト時間t1が経過しても送信対象データ総量告知手段C2Bを備えていることを示す応答がないと、ホストコンピュータHの総量告知手段有無記憶手段D2Aはその周辺機器が送信対象データ総量告知手段C2Bを備えていないことを記憶する。
ST11において、周辺機器が送信対象データ総量告知手段C2Bを備えていない場合に、そのまま放置しておくとエニュメレーションがいつまでも終了せず、他の周辺機器のデータ送受信に悪影響を及ぼす可能性があるので、総量告知手段確認用ベンダリクエストコマンドのデータステージを終了し、ST1に戻る。
【0069】
(データ送受信処理のフローチャートの説明)
図5は前記図4のST4のデータ送受信処理のサブルーチンのフローチャートである。
図5のST21において、アプリケーションプログラムAPによって送信するように要求された周辺機器が、送信対象データ総量告知手段C2Bを実装しているか否かを総量告知手段有無記憶手段D2Aを参照して判別する。ノー(N)の場合はST22に移り、イエス(Y)の場合はST23に移る。
ST22において、送信対象データ総量告知手段C2Bを実装していない周辺機器への送信要求の場合には、通常の送受信処理、即ち、送信対象データ総量の送信を要求せず、送信対象データの送信を要求して送信対象データを受信する。
【0070】
ST23において、送信対象データ総量告知手段C2Bを実装している周辺機器への送信要求の場合、例えば、実施の形態1の複合機Prへの送信要求の場合には、送信対象データの送信対象データ総量(送信対象データサイズ)を要求するベンダリクエストコマンドを送信する。そして、ST24に移る。
ST24において、前記送信対象データ総量要求用ベンダリクエストコマンドに対する応答である送信対象データ総量(送信対象データサイズ)を受信したか否かを判別する。ノー(N)の場合はST24を繰り返し、イエス(Y)の場合はST25に移る。
ST25において、受信した送信対象データサイズを送信対象データ総量記憶手段D3Bに記憶し、ST26に移る。
【0071】
ST26において、送信対象データ総量記憶手段D3Bが記憶した送信対象データサイズが0で有るか否か、即ち、送信対象データが周辺機器に有るか(記憶されているか)否かを判別する。
ST27において、送信対象データが周辺機器に無いことをアプリケーションプログラムAPに告知する。そして、図5のデータ送受信処理のサブルーチンを終了して、図4のST4に戻る。
ST28において、送信対象データが周辺機器に記憶されているので、送信対象データの送信を要求し、受信を開始する。
【0072】
ST29において、前記送信対象データの受信が終了したか否かを判別する。ノー(N)の場合はST30に移り、イエス(Y)の場合はST31に移る。
ST30において、受信した送信対象データの受信データ総量(受信データサイズ)が送信対象データサイズよりも大きいか否かを判別する。ノー(N)の場合は受信を継続中なのでST29に戻り、イエス(Y)の場合はST33に移る。
ST31において、受信が終了した送信対象データの受信データサイズが、前記ST25で記憶した送信対象データサイズと一致するか否かを判別する。イエス(Y)の場合はST32に移り、ノー(N)の場合はST33に移る。
【0073】
ST32において、実際に受信した送信対象データの受信データサイズと、予め受信していた送信対象データサイズとが一致しているので、送信対象データの転送中にエラーが発生せず、正常に送受信が終了したので、アプリケーションプログラムAPに送信が正常に終了したことを告知する。そして、図5のデータ送受信処理のサブルーチンを終了して、図4のST4に戻る。
ST33において、受信データサイズと送信対象データサイズとが一致しない場合や、受信途中の受信データサイズが送信対象データサイズよりも大きくなった場合には、転送エラーが発生しているので、次の処理(1)、(2)を実行する。
(1)送信エラーが発生したことをアプリケーションプログラムAPに告知する。
(2)送信対象データの受信を停止して受信データ記憶手段AP1に記憶した受信データを破棄するとともに、受信データサイズを0に初期化する。
そして、ST28に戻り、送信対象データの再送信を開始する。
【0074】
(複合機のUSBコントローラのメインフローチャート)
図6は本発明の実施の形態1の複合機におけるUSBコントローラの処理のメインフローチャートである。
図6のフローチャートの各ST(ステップ)の処理は、前記ホストコンピュータHに記憶されたUSBコントローラ制御プログラム(USB接続機器制御プログラム)に従って実行される。また、図6の処理は他の処理と並行してマルチタスクで実行される。
図6のメインフローチャートは、複合機Prの電源オンによって開始(スタート)する。
【0075】
図6のST51において、ホストコンピュータHから送信された総量告知手段有無確認用ベンダリクエストコマンドを受信したか否かを判別する。イエス(Y)の場合はST52に移り、ノー(N)の場合はST53に移る。
ST52において、総量告知手段有無確認用ベンダリクエストコマンドを受信したので、これに応じて、複合機Prが送信対象データ総量告知手段C2Bを備えていることを示す応答をする。そして、ST51に戻る。
ST53において、送信対象データ総量の送信を要求するベンダリクエストコマンドを受信したか否かを判別する。イエス(Y)の場合はST54に移り、ノー(N)の場合はST58に移る。
【0076】
ST54において、送信対象データ総量検出手段C2Aが画像データ記憶手段FP3に記憶された画像データの中に、要求された送信対象データが有るか否かを検出する。イエス(Y)の場合(送信対象データが検出された場合)はST55に移り、ノー(N)の場合(送信対象データがなかった場合)はST56に移る。
ST55において、画像データ記憶手段FP3に記憶された送信対象データのデータサイズ(送信対象データ総量)を検出する。そして、ST57に移る。
ST56において、送信対象データがないので、送信対象データ総量を0に設定して、ST57に移る。
ST57において、前記ST55又はST56で検出又は設定された送信対象データサイズをホストコンピュータHに送信する。そして、ST51に戻る。
【0077】
ST58において、ホストコンピュータHから送信された送信対象データの送信要求コマンド(バルクInコマンド)を受信したか否かを判別する。イエス(Y)の場合はST59に移り、ノー(N)の場合はST51に戻る。
ST59において、受信したバルクInコマンドに応じて送信対象データを画像データ記憶手段FP3から送信用バッファBF1(図3参照)に転送し、送信用バッファBF1に一時記憶したデータをホストコンピュータHに送信する。
【0078】
(実施の形態1の作用)
前記構成を備えた実施の形態1のホストコンピュータH及び複合機Prでは、ホストコンピュータHの起動時や新たな周辺機器が接続された場合に、周辺機器に対して総量告知手段確認用ベンダリクエストコマンドが送信される。そして、ホストコンピュータHは、前記リクエストコマンドに対する応答があった周辺機器には送信対象データ総量告知手段C2Bが実装されていると記憶し(図4のST8,ST9参照)、有無確認用タイムアウト時間t1が経過しても応答がない周辺機器には送信対象データ総量告知手段C2Bが実装されていないと記憶する(図4のST7,ST10参照)。実施の形態1の複合機Prは、前記総量告知手段確認用ベンダリクエストコマンドに対して応答するので(図6のST52参照)、ホストコンピュータHは、複合機Prには送信対象データ総量告知手段C2Bが実装されていると記憶する。
【0079】
そして、ホストコンピュータHのアプリケーションプログラムAPによって、複合機Prでスキャニングした画像データを転送するように要求があった場合、USBドライバUDは、送信対象データとしての画像データの送信を要求する前に、送信対象データのデータサイズである送信対象データ総量の送信を要求する(図5のST23)。前記送信対象データサイズの送信を要求された複合機PrのUSBコントローラUCは、送信対象データが画像データ記憶手段FP3に記憶されているか否かを検出し、データがある場合にはそのデータサイズを検出してホストコンピュータHに応答する(図6のST55,ST57)。送信対象データが画像データ記憶手段FP3に記憶されていない場合には、送信対象データサイズが0バイトの応答をする(ST56,ST57)。
【0080】
そして、前記送信対象データサイズを受信したホストコンピュータHでは、送信対象データサイズがある場合、送信対象データの送信を要求するバルクInコマンドを送信し(ST28)、送信対象データの受信を開始する。そして、受信終了時に実際に受信したデータの受信データサイズと、予め検出して記憶しておいた送信対象データサイズ(送信対象データ総量)とが一致する場合(ST31でイエスの場合)には、送信が正常に終了したものと判別されるので、その旨がアプリケーションプログラムAPに告知される。一方、受信終了時の受信データサイズと送信対象データサイズとが一致しない場合には、途中で転送エラーが発生していると判別できるので、アプリケーションAPにその旨が告知され、再送信を要求する(ST33)。したがって、複合機Pr内部における画像データ記憶手段FP3とバッファBFとの間のデータの転送や、ホストコンピュータHと複合機Prとの間のデータ転送でエラーが発生したことをホストコンピュータHのUSBドライバで検出することができる。
【0081】
また、データの受信が終了する前に、受信データサイズが送信対象データサイズよりも大きくなった場合(ST30でイエスの場合)には、バルクInコマンドの発行を停止し(送信対象データの受信を中止し)、アプリケーションプログラムAPにその旨を告知すると共に、再送信を要求する(ST33)。したがって、無駄なバルクInコマンドを送信し続けることによるバスの占有を防止し、他の周辺機器とホストコンピュータHとの間のUSB規格のデータ転送に悪影響を及ぼすことを防止できる。
【0082】
さらに、送信対象データサイズが0バイトを受信した場合には、アプリケーションプログラムAPにその旨が告知され、バルクInコマンドが発行されない。したがって、無駄なバルクInコマンドの送信を防止できる。
また、実施の形態1では、前記送信対象データサイズは、ベンダリクエストコマンドで送信されており、コントロール転送が使用される。コントロール転送は、1フレーム(1ms)又は1マイクロフレーム(125μs)内での帯域幅が優先的に確保されるので、前記送信対象データサイズを安定・確実に取得することができる。
さらに、実施の形態1では、ホストコンピュータHから送信対象データ総量告知手段の有無を確認するベンダリクエストコマンドが送信されるので、送信対象データ総量告知手段を備えた周辺機器と、備えていない周辺機器とが混在して接続されたホストコンピュータHで管理可能である。
【0083】
(変更例)
以上、本発明の実施の形態を詳述したが、本発明は、前記実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内で、種々の変更を行うことが可能である。
例えば、本発明は複合機Prだけでなく、スキャナや外付け型のハードディスクドライブ、MO(Magnet−Optical)ディスクドライブ、FDドライブ等の、周辺機器側からデータの転送を行うUSB接続機器にも適用可能である。
【0084】
また、実施の形態1では、送信対象データがない場合に、送信対象データサイズが0バイトというデータを送信したが、送信対象データが存在しないというデータを送信することも可能である。
さらに、実施の形態1では、エニュメレーション時に、送信対象データ総量告知手段C2Bが実装されているか否かをベンダリクエストコマンドを送信して確認していたが、例えば、接続された周辺機器が複合機Prであるという情報を取得したホストコンピュータHが、複合機Pr用のUSBドライバを読み込む時に送信対象データ総量告知手段C2Bを実装していることを読み込むことにより、総量告知手段確認用ベンダリクエストコマンドを送信せずに、送信対象データ総量告知手段C2Bを実装しているか否かを確認することも可能である。即ち、総量告知手段有無確認用ベンダリクエストコマンド送信手段D1A,タイムアウト検出用タイマTM1、有無確認用タイムアウト時間記憶手段D1A1及び総量告知手段実装応答手段C1Aを省略することも可能である。
【0085】
さらに、前記USBドライバ(情報処理装置制御プログラム)UDは、ハードディスクドライブ以外のホストコンピュータHが読取り可能な記憶媒体(光磁気ディスク装置、光ディスク装置、磁気ディスク装置あるいはメモリスロット等)に記憶したり、可搬型の記録媒体(フレキシブルディスクや光磁気ディスク、光ディスク、磁気ディスク、フラッシュメモリ等)に記憶することも可能である。また、例えばネットワークなどの通信手段を介して各プログラムをホストコンピュータH等に転送し、ホストコンピュータH内の記憶媒体に格納して実行させることも可能である。
【0086】
また、実施の形態1では、転送エラーが発生した場合に、USBドライバUDで自動的に再送信を要求するように構成されているが、自動的に再送信を要求せず、アプリケーションプログラムAPに送信エラーの発生を告知するだけにして、アプリケーションプログラムAPからの再送信要求を待って再送信を要求するよう構成することも可能である。
さらに、転送エラーが発生してもすぐにアプリケーションプログラムAPに告知せず、自動的に再送信を要求し、例えば、自動的に再送信を要求する回数をカウントして、3回連続で転送エラーが発生した場合に、アプリケーションプログラムAPに転送エラーが発生したことを告知するように構成することも可能である。
【0087】
また、実施の形態1では、送信エラーが発生した場合に、送信対象データ総量(送信対象データサイズ)を再取得せず、送信対象データの再送信を要求したが、送信対象データの再送信を開始する前に、送信対象データサイズを再取得するよう構成することも可能である。即ち、図5において、ST33の処理をした後、ST28に戻らず、ST23に戻るよう構成することも可能である。
さらに、実施の形態1では、周辺機器が送信対象データ総量告知手段を備えていないことを検出するために前記タイムアウト検出用タイマTM1を使用したが、タイマを使用せず、総量告知手段有無確認用ベンダリクエストコマンドを送信してからのフレーム又はマイクロフレームの数をカウントするカウンタを使用することによって、送信対象データ総量告知手段C2Bを備えていないことを検出することも可能である。
【0088】
【発明の効果】
前述の本発明は、USB接続されたホストコンピュータ(情報処理装置)と、USB接続機器(複合機Pr)との間のデータ転送において、不要なUSBコマンドの送信を低減することができる。
また、本発明は、USB接続されたホストコンピュータ(情報処理装置)と、USB接続機器(複合機Pr)との間のデータ転送において、周辺機器内でのデータ転送のエラーを検出して、エラーのないデータ転送を実現することができる。
【図面の簡単な説明】
【図1】図1は本発明の実施の形態1の情報処理装置とUSB接続機器とがUSB接続された状態の説明図である。
【図2】図2は前記図1の情報処理装置(ホストコンピュータ)の機能をブロック図(機能ブロック図)で示した図である。
【図3】図3は前記図1の周辺機器(デジタル複合機)の機能をブロック図(機能ブロック図)で示した図である。
【図4】図4は本発明の実施の形態1のホストコンピュータにおけるUSBドライバの処理のメインフローチャートである。
【図5】図5は前記図4のST4のデータ送受信処理のサブルーチンのフローチャートである。
【図6】図6は本発明の実施の形態1の複合機におけるUSBコントローラの処理のメインフローチャートである。
【符号の説明】
C1A…総量告知手段実装応答手段
C2A…送信対象データ総量検出手段
C2B…送信対象データ総量告知手段
D1A…総量告知手段有無確認用ベンダリクエストコマンド送信手段
D2A…総量告知手段有無記憶手段
D3A…送信対象データ総量要求手段
D3B…送信対象データ総量記憶手段
D3C…送信対象データ有無判別手段
D3D…送信対象データ送信要求手段
D3E1…受信データ総量記憶手段
D3F…データ総量一致判別手段
D3G…再送信要求手段
D3H…送信結果告知手段
H…情報処理装置
Pr…USB接続機器
Claims (16)
- USB接続機器がUSB接続された情報処理装置において、
前記USB接続機器から前記情報処理装置へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段を前記USB接続機器が備えていることを記憶する総量告知手段有無記憶手段と、
前記送信対象データ総量告知手段を備えたUSB接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段と、
前記送信対象データ総量の送信の要求に対する総量応答データを前記USB接続機器から受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段と、
前記総量応答データに基づいて、前記送信対象データが前記USB接続機器に存在するか否かを判別する送信対象データ有無判別手段と、
を備えた前記情報処理装置。 - 前記送信対象データ総量告知手段を前記USB接続機器が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置に新たにUSB接続機器が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段と、
前記USB接続機器から前記送信対象データ総量告知手段を備えていることを示す応答がある場合に、前記新たに接続されたUSB接続機器が前記送信対象データ総量告知手段を備えていると記憶する前記総量告知手段有無記憶手段と、
を備えた請求項1記載の情報処理装置。 - 前記送信対象データが前記USB接続機器に存在する場合に、前記USB接続機器に対して送信対象データの送信を要求する送信対象データ送信要求手段と、
前記USB接続機器から送信され情報処理装置が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段と、
前記受信データ総量と、前記総量応答データに含まれる送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段と、
を備えた請求項1または2記載の情報処理装置。 - 前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器に対して、前記送信対象データの再送信を要求する再送信要求手段、
を備えた請求項3記載の情報処理装置。 - 前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段、
を備えた請求項3記載の情報処理装置。 - USB接続可能な情報処理装置に接続されるUSB接続機器において、
前記情報処理装置から送信を要求された送信対象データを前記情報処理装置に送信する送信対象データ送信手段と、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段と、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置に送信する送信対象データ総量告知手段と、
を備えた前記USB接続機器。 - 前記USB接続機器が前記情報処理装置に新たに接続された際に、前記情報処理装置から送信された、前記USB接続機器が送信対象データ総量告知手段を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置に対して前記送信対象データ総量告知手段を備えていることを示す応答をする総量告知手段実装応答手段、
を備えた請求項6記載のUSB接続機器。 - USB接続機器がUSB接続された情報処理装置を、
前記USB接続機器から前記情報処理装置へ送信される送信対象データの総データ量である送信対象データ総量を送信するように要求された場合に前記送信対象データ総量を送信する送信対象データ総量告知手段を前記USB接続機器が備えていることを記憶する総量告知手段有無記憶手段、
前記送信対象データ総量告知手段を備えたUSB接続機器に対してデータの送信を要求する場合に、送信対象データの送信を要求する前に、前記送信対象データ総量の送信を要求する送信対象データ総量要求手段、
前記送信対象データ総量の送信の要求に対する総量応答データを前記USB接続機器から受信した場合に、受信した前記総量応答データを記憶する送信対象データ総量記憶手段、
前記総量応答データに基づいて、前記送信対象データが前記USB接続機器に存在するか否かを判別する送信対象データ有無判別手段、
として機能させるための情報処理装置制御プログラム。 - USB接続機器を接続可能な情報処理装置を、
前記送信対象データ総量告知手段を前記USB接続機器が備えているか否かを確認するためのベンダリクエストコマンドを、前記情報処理装置に新たにUSB接続機器が接続された際に送信する総量告知手段有無確認用ベンダリクエストコマンド送信手段、
前記USB接続機器から前記送信対象データ総量告知手段を備えていることを示す応答がある場合に、前記新たに接続されたUSB接続機器が前記送信対象データ総量告知手段を備えていると記憶する前記総量告知手段有無記憶手段、
として機能させるための請求項8記載の情報処理装置制御プログラム。 - USB接続機器を接続可能な情報処理装置を、
前記送信対象データが前記USB接続機器に存在する場合に、前記USB接続機器に対して送信対象データの送信を要求する送信対象データ送信要求手段、
前記USB接続機器から送信され情報処理装置が受信した受信データの総データ量である受信データ総量を記憶する受信データ総量記憶手段、
前記受信データ総量と、前記総量応答データに含まれる送信対象データ総量とが、同一か否かを判別するデータ総量一致判別手段、
として機能させるための前記請求項9記載の情報処理装置制御プログラム。 - USB接続機器を接続可能な情報処理装置を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別して、前記USB接続機器に対して、前記送信対象データの再送信を要求する再送信要求手段、
として機能させるための前記請求項10記載の情報処理装置制御プログラム。 - USB接続機器を接続可能な情報処理装置を、
前記受信データ総量と前記送信対象データ総量とが同一でない場合に、送信エラーが発生したものと判別し、送信エラーが発生したことを告知する送信結果告知手段、
として機能させるための前記請求項10記載の情報処理装置制御プログラム。 - 請求項8ないし12のいずれか記載の情報処理装置制御プログラムを記録したコンピュータ読取り可能な記録媒体。
- USB接続可能な情報処理装置に接続されるUSB接続機器を、
前記情報処理装置から送信を要求された送信対象データを前記情報処理装置に送信する送信対象データ送信手段、
前記送信対象データの総データ量である送信対象データ総量を検出する送信対象データ総量検出手段、
前記送信対象データ総量を送信するよう要求があった場合に、前記送信対象データの前記送信対象データ総量を前記情報処理装置に送信する送信対象データ総量告知手段、
として機能させるためのUSB接続機器制御プログラム。 - USB接続可能な情報処理装置に接続されるUSB接続機器を、
前記USB接続機器が前記情報処理装置に新たに接続された際に、前記情報処理装置から送信された、前記USB接続機器が送信対象データ総量告知手段を備えているか否かを確認するためのベンダリクエストコマンドを受信した場合に、前記情報処理装置に対して前記送信対象データ総量告知手段を備えていることを示す応答をする総量告知手段実装応答手段、
として機能させるための前記請求項14記載のUSB接続機器制御プログラム。 - 前記請求項14または請求項15のいずれか記載のUSB接続機器制御プログラムを記録したコンピュータ読取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003183653A JP2005018496A (ja) | 2003-06-27 | 2003-06-27 | 情報処理装置、usb接続機器、情報処理装置制御プログラム、usb接続機器制御プログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003183653A JP2005018496A (ja) | 2003-06-27 | 2003-06-27 | 情報処理装置、usb接続機器、情報処理装置制御プログラム、usb接続機器制御プログラム及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005018496A true JP2005018496A (ja) | 2005-01-20 |
Family
ID=34183636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003183653A Pending JP2005018496A (ja) | 2003-06-27 | 2003-06-27 | 情報処理装置、usb接続機器、情報処理装置制御プログラム、usb接続機器制御プログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005018496A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007096737A (ja) * | 2005-09-29 | 2007-04-12 | Oki Electric Ind Co Ltd | 通信制御装置およびその制御方法 |
JP2007102355A (ja) * | 2005-09-30 | 2007-04-19 | Sony Corp | 電子機器 |
JP2009543615A (ja) * | 2006-07-17 | 2009-12-10 | シグノシュティクス ピーティーワイ エルティーディー | 改良された医療用診断器具 |
JP2016004515A (ja) * | 2014-06-19 | 2016-01-12 | セイコーエプソン株式会社 | 電子機器 |
-
2003
- 2003-06-27 JP JP2003183653A patent/JP2005018496A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007096737A (ja) * | 2005-09-29 | 2007-04-12 | Oki Electric Ind Co Ltd | 通信制御装置およびその制御方法 |
JP4649304B2 (ja) * | 2005-09-29 | 2011-03-09 | Okiセミコンダクタ株式会社 | 通信制御装置およびその制御方法 |
JP2007102355A (ja) * | 2005-09-30 | 2007-04-19 | Sony Corp | 電子機器 |
JP2009543615A (ja) * | 2006-07-17 | 2009-12-10 | シグノシュティクス ピーティーワイ エルティーディー | 改良された医療用診断器具 |
JP2016004515A (ja) * | 2014-06-19 | 2016-01-12 | セイコーエプソン株式会社 | 電子機器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3711432B2 (ja) | 周辺処理装置およびその制御方法 | |
JP3870717B2 (ja) | データ転送制御装置及び電子機器 | |
JP4896524B2 (ja) | 無線識別システムから交換可能ユニットモニタへのデータ伝送の完了の確認方法 | |
JP3927647B2 (ja) | 情報処理装置、情報処理方法及び情報処理システム | |
US7095755B2 (en) | Data transfer apparatus and its control method | |
US6775020B2 (en) | Information processing apparatus and method of processing information | |
JP2007098590A (ja) | 画像形成装置 | |
US7268908B2 (en) | Image processing system and its control method | |
US6634817B2 (en) | Image forming apparatus | |
JP2005018496A (ja) | 情報処理装置、usb接続機器、情報処理装置制御プログラム、usb接続機器制御プログラム及び記録媒体 | |
RU2313823C2 (ru) | Устройство подачи изображений и записывающее устройство, записывающая система, включающая в себя эти устройства, и способ управления связью этих устройств | |
JP2000089622A (ja) | カウント装置及びコンピュータ読み取り可能な記憶媒体 | |
JPH1098577A (ja) | 画像形成システムおよび画像形成処理制御方法 | |
RU2313821C2 (ru) | Устройство подачи изображений, устройство записи, система записи и способ управления ими | |
JP2001105689A (ja) | 印刷システム及び印刷装置及びその制御方法 | |
JP3518833B2 (ja) | 情報処理装置及び画像形成装置 | |
JP3706657B2 (ja) | 印刷装置および印刷装置におけるバッファへの書き込み方法 | |
JP2000293322A (ja) | 画像形成システムと転送方法 | |
JP2005246685A (ja) | 印刷装置 | |
JP2004110619A (ja) | データ通信装置 | |
JP3176996B2 (ja) | 複合機 | |
JP2004334798A (ja) | 通信制御システム、通信制御方法、通信制御用プログラム及び記憶媒体 | |
JP2004118517A (ja) | データ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体 | |
JP2022001993A (ja) | 制御装置、画像処理システムおよびプログラム | |
JP2002016750A (ja) | 画像形成装置及びその制御方法と画像形成システム |