説明

USBデバイスをリモートコンピュータに接続する方法及び装置

本発明は、USB仕様を利用する複数の標準的なUSB周辺デバイスを、ネットワークを通して、様々なノードで分配することができる方法及び装置であって、ネットワークを通した通信が、標準的な改良されていないUSBホストコンピュータの任意の既存ネットワーク接続性の利点を利用し得る方法及び装置を提供する。詳細には、データ通信を既存のトランシーバに向けてリフレクトするためにリフレクタ機能が追加される。その結果的に、ホストコンピュータが、データ通信のための第一プロファイル及び第二プロファイルを確立し、既存のデータ通信構成要素を使用するネットワークを通して通信を行うためにこれらのプロファイルを使用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータとユニバーサルシリアルバス(USB)ポートを使用するデバイスとの間で信号を送信する方法及び装置に関し、特に、データ通信ネットワークを通して分配される複数のUSB周辺デバイスを動作させる方法に関する。
【背景技術】
【0002】
ユニバーサルシリアルバス(USB)は、一般ユーザーが幅広い周辺デバイスをパーソナルコンピュータに接続することを可能にするように設計された技術である。この技術は、キーボード、マウス、スピーカー、ジョイスティック、カメラ、フラッシュデバイス、ハードドライブ、DVDドライブ等の一般的な周辺デバイスの全てをサポートし、現在のコンピュータでそれを使用することは普通である。
【0003】
USBは、コンピュータ及び通信市場における大企業7社が中心となって開発された。これらの企業は、インテル社(Intel)、コンパック社(Compaq)、マイクロソフト社(Microsoft)、ノーテル社(NorTel)、日本電気株式会社(NEC)、デジタル社(Digital)及びIBM社である。USBを定義する仕様(例えば、インテル他によるユニバーサルシリアルバス仕様1.0版 1996年1月、1998年9月23日に1.1版としてアップデイト、2000年4月に2.0版としてアップデイト、その後、複数回のアップデイト、複数回の追加及び複数回の改良が行われた−以下、「USB仕様」と総称する。この用語は、さらなる追加、改良及び修正を含み得、特に、USB3.0としてリリースするための開発の下での追加を含み得る。)は、独占所有ではなく、USB Implementers Forum(USB-IF)として知られている開放業界団体によって管理されている。USB仕様は、USB標準に適合するために満たさなければならない多数の基準を規定する。また、USB仕様は、多数のタームを定義し、これらの定義は、本明細書に採用され、また参照することでこの明細書に組み込まれる。
【0004】
USB仕様の下、データ通信は、好ましくはホストコンピュータにインストールされたUSBホストコントローラユニットによって管理される。さらにまた、データ通信は、一連のUSBトランザクションの中で生じる。ここで、USBトランザクションは、USBホストコントローラによって起動され、一つ、二つ又は三つのサブアクション(subactions)から成る。各サブアクションは、一つ又はそれ以上のパケットで構成され得、データフローの方向の反転によって終了される。
【0005】
出願人の米国特許第6381666号の内容は参照することによってこの明細書に組み込まれる。この特許文献では、ホストコンピュータと周辺デバイスとの間の距離をのばす方法及び装置が提案されており、この方法及び装置は、有効距離を100メートル以上にのばした。米国特許第6381666号で開示されたアプローチ及び出願人の米国特許7149833号において改良されたアプローチにより、USB周辺デバイスを、延長した距離で動作させることが可能になる一方で、長い伝送遅延の存在下で、ホストコンピュータのネットワーク能力を利用することによって拡張範囲が得られる構成は説明していない。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許第6381666号
【特許文献2】米国特許7149833号
【発明の概要】
【0007】
ネットワークアタッチメントハードウェアのコストの方が、USBアタッチメントハードウェアのコストより著しく高い時には、USB拡張の目的のために特定用途の連結部を設けるよりも、ホストコンピュータの既存のネットワーク接続性を再利用する能力の方が、非常に有益である。例えば、イーサネット(登録商標)ネットワークへの無線接続を提供するトランシーバのコストは、USBトランシーバのコストより大幅に高い。もし、ホストコンピュータが、ネットワークアタッチメントのための無線トランシーバを既に備えており、かつ、USBトラフィックを、ホストコンピュータのUSBポートから、その既存の無線ネットワークポートに「リフレクト」することができれば、付加的な無線トランシーバのコストを回避することができる。光ファイバやパワーライン技術を使用するネットワークも、高いトランシーバコストを示し、この同じアプローチからの利益を享受し得る。
【0008】
さらにまた、米国特許第6381666号及び米国特許7149833号に開示されたアプローチは、拡張距離能力を得るためにホストコンピュータオペレーティングソフトウェアの何の変更も必要としない。最も広い適切な解決法を提供するために、そして、システムの使用の容易さを失わないために、この特性を維持することができれば、有利である。
【0009】
従って、米国特許第6381666号及び米国特許7149833号に開示されているようにUSB技術を伸ばす範囲が線形構成で役立つことが証明されたが、USB仕様を利用して、ネットワークを通して様々なノードで分配される複数のUSB周辺デバイスを有効にする方法及び装置であって、USBホストコンピュータとUSB周辺デバイスとの間のネットワークを通した通信が、USBホストコンピュータの任意の既存のネットワーク接続性の利点を利用する改良された方法及び装置を提供することによって、その技術を改良することが、さらに望ましい。
【0010】
従って、本発明の目的は、USB仕様を利用する複数のUSB周辺デバイスを、ネットワークを通して、様々なノードで分配することができる方法及び装置であって、USBホストコンピュータとUSB周辺デバイスとの間のネットワークを通した通信が、USBホストコンピュータの任意の既存ネットワーク接続性の利点を利用し得る方法及び装置を提供することにある。詳細には、本発明の目的は、ネットワークを通してデータの送信をする間に、出来る限り既存のネットワークトランシーバを使用することにある。
【0011】
本発明の別の目的は、その方法及び装置で、データ通信ネットワークによって取り込まれる、USB仕様によって決められたパラメータを上回る伝送遅延を調整することにある。
【0012】
本発明のさらに別の目的は、データ通信ネットワークが、USB周辺デバイスの動作に関係がない付加的なトラフィックを伝送し得ることにある。
【0013】
本発明のさらに別の目的は、何らかの従来の方法によってホストコンピュータがデータ通信ネットワークに接続され得ることにある。
【0014】
本発明のさらに別の目的は、ホストコンピュータにおける何らかの利用可能なUSB又は類似のポートを通してホストコンピュータがUSB「リフレクタ」に接続され得ることにある。
【0015】
本発明のさらに別の目的は、ホストコンピュータで動作するUSBホストコントローラドライバソフトウェアを変更する必要がないことにある。
【0016】
本発明のさらに別の目的は、ホストコンピュータで動作するデータ通信ネットワークドライバソフトウェアを変更する必要がないことにある。
【0017】
本発明のさらに別の目的は、複数のUSB周辺デバイスが、USB分配ユニットを通してデータ通信ネットワークに接続され得ることにある。
【0018】
本発明のさらに別の目的は、ホストコンピュータから出力され、複数のUSB周辺デバイスを対象とするUSBトラフィックがUSBを通して、ホストコンピュータに接続されたUSBリフレクタユニットに向けて送信され得ることにある。
【0019】
本発明のさらに別の目的は、USB分配ユニットに到達するUSBトラフィックが、複数のUSB周辺デバイスに分配され得ることにある。
【0020】
本発明のさらに別の目的は、複数のUSB周辺デバイスからUSBトラフィックを出力しホストコンピュータに送信する逆の方向に対応する機能が提供され得ることにある。
【0021】
本発明のさらに別の目的は、ホストコンピュータやUSB周辺デバイスを操作するために必要とされる任意の既存のソフトウェアドライバを変更する必要がないことにある。
【0022】
本発明のこれらの目的及び他の目的は、第一ホストコンピュータのホストコントローラがUSBリフレクタユニットに接続され、USBリフレクタユニットが、同様に、第一ホストコンピュータにある第二ホストコントローラ又は第二ホストコンピュータにある第二ホストコントローラに接続される方法及び関連する装置を提供する本発明によって、完全に又は少なくとも部分的に達成される。第二ホストコントローラは、最終的に、一つ又は複数のUSB分配ユニットが接続され得るデータ通信ネットワークに接続される。各USB分配ユニットは、一つ又は複数のUSB周辺デバイスに接続される。
【0023】
第一の特徴によれば、本発明は、一つ又は複数のホストコンピュータと一つ又は複数のUSB周辺デバイスとの間でUSBトラフィックを送信するコンピュータシステムであって、一つ又は複数のホストコンピュータと一つ又は複数のUSB周辺デバイスとが、データ通信ネットワークによって接続され、一つ又は複数のホストコンピュータが、USBリフレクタユニットを備えているコンピュータシステムを提供する。詳細には、本発明は、一つ又は複数のホストコンピュータと一つ又は複数のUSB周辺デバイスとの間でUSBトラフィックを伝達するコンピュータシステムであって、
前記一つ又は複数のホストコンピュータと前記一つ又は複数のUSB周辺デバイスとが、データ通信ネットワークによって一方から他方へ接続されるコンピュータシステムにおいて、
前記コンピュータシステムが、
a.USBトラフィックを生成し受け入れる一つ又は複数のホストコンピュータと、
b.前記一つ又は複数のホストコンピュータによって開始されたUSBトラフィックに応答することができる一つ又は複数のUSB周辺デバイスと、
c.前記一つ又は複数のホストコンピュータと前記データ通信ネットワークとの間の一つ又は複数のネットワークコネクションと、
d.前記一つ又は複数のホストコンピュータから受信したUSBトラフィックを前記一つ又は複数のホストコンピュータへリフレクトすることができるUSBリフレクタユニットと、
e.前記データ通信ネットワークに接続され、前記一つ又は複数のUSB周辺デバイスを前記データ通信ネットワークに接続するために利用される一つ又は複数のUSB分配ユニットと、
f.前記USBリフレクタユニットに接続するために前記一つ又は複数のホストコンピュータにあるUSBリフレクタドライバと、
g.前記USBリフレクタドライバを前記データ通信ネットワークに接続するためのUSBリフレクタアプリケーションと
を備えているコンピュータシステムを提供する。
【0024】
別の特徴によれば、本発明は、一つ又は複数のホストコンピュータによって生成されたUSBサブアクションを引き受け、USBサブアクションを一連の変換済みUSBサブアクションに変換し、そして一連の変換済みサブアクションを、一つ又は複数のホストコンピュータに向けてリフレクトするUSBリフレクタユニットを提供する。詳細には、本発明は、一つ又は複数のホストコンピュータによって生成されたUSBサブアクションを受け入れ、
前記USBサブアクションを一連の変換済みUSBサブアクションに変換し、
前記一連の変化済みUSBサブアクションを、前記一つ又は複数のホストコンピュータに向けてリフレクトする
ためのUSBリフレクタユニットであって、
該USBリフレクタユニットが、
a.少なくとも一つのホストコンピュータと通信するための少なくとも一つのUSBトランシーバと、
b.前記少なくとも一つのUSBトランシーバを通してUSBサブアクションを受け入れ、かつ、リフレクトし、そしてUSBサブアクションを一連の変換済みUSBサブアクションに変換するためのリフレクタコアと
を備えているUSBリフレクタユニットを提供する。
【0025】
さらに別の特徴によれば、本発明は、少なくとも一つのUSBトランシーバを通してUSBサブアクションを引き受けてリフレクトし、USBサブアクションを一連の変換済みUSBサブアクションに変換するリフレクタコアユニットを提供する。詳細には、本発明は、少なくとも一つのUSBトランシーバを通してUSBサブアクションを引き受けてリフレクトし、USBサブアクションを一連の変換済みUSBサブアクションに変換するためのリフレクタコアユニットであって、
前記リフレクタコアユニットが、
a.USBコマンドを解析し、適当なUSB応答を生成するUSBレスポンダと、
b.USBサブアクション及び変換済みUSBサブアクションを記憶するパケットキャッシュと、
c.前記リフレクタコアユニットによってサポートされる各USBデバイスの構造及びステータスを記録するためのステータステーブルと、
d.USBホストコントローラから受信したUSBサブアクションを、USBホストコントローラへリフレクトして戻し得るUSBサブアクションに変換するためのUSBアグリゲータと、
e.前記USBレスポンダ、前記パケットキャッシュ、前記ステータステーブル及び前記USBアグリゲータの動作を調整するためのコントローラと
を備えているリフレクタコアユニットを提供する。
【0026】
別の特徴によれば、本発明は、ホストコンピュータから受信したUSBサブアクションを引き受け、USBサブアクションを複数のUSB周辺デバイスに向けて送り、複数のUSB周辺デバイスから受信するUSBサブアクションを引き受け、かつ、USBサブアクションをホストコンピュータに向けて送るUSB分配ユニットを提供する。詳細には、本発明は、ホストコンピュータから受信したUSBサブアクションを引き受け、前記USBサブアクションを複数のUSB周辺デバイスに向けて送り、前記複数のUSB周辺デバイスから受信したUSBサブアクションを引き受け、前記USBサブアクションをホストコンピュータに向けて送るUSB分配ユニットであって、
前記USB分配ユニットが、
a.前記複数のUSB周辺デバイスと通信するための少なくとも一つのUSBトランシーバと、
b.前記少なくとも一つのUSBトランシーバを通してUSBサブアクションの引き受けと送りをするための分配器コアと
を備えているUSB分配ユニットを提供する。
【0027】
さらに別の特徴によれば、本発明は、USB周辺デバイスからのデータを、データ通信ネットワークを通してホストコンピュータへ送信する方法を提供する。詳細には、本発明は、データ通信ネットワークを通してUSB周辺デバイスからホストコンピュータへデータを送信する方法であって、
該方法が、
a.USBリフレクタユニットで、第一ホストコンピュータから、受信データ第一リクエストを受信し、
b.前記USBリフレクタユニットで、前記受信データ第一リクエストを記憶し、
c.選択的に、前記USBリフレクタユニットで、否定確認応答を前記第一ホストコンピュータに対して応答し、
d.前記USBリフレクタユニットで、第二ホストコンピュータから、受信データ第二リクエストを受信し、
e.前記第二ホストコンピュータに対して、前記受信データ第一リクエストを含む応答データを応答し、
f.選択的に、前記USBリフレクタで、前記第二ホストコンピュータからの確認応答を受信し、
g.前記第二ホストコンピュータで、前記受信データ第一リクエストを含む前記応答データを受信し、
h.前記第二ホストコンピュータで、前記データ受信用第一リクエストを含む前記受信した応答データを、データ通信ネットワークを通して送信し、
i.前記データ受信用第一リクエストを含む前記送信された応答データをUSB分配ユニットで受信し、
j.前記USB分配ユニットで、前記データ受信用第一リクエストを、前記送信された応答データから引き出し、
k.前記USB分配ユニットで、前記引き出したデータ受信用第一リクエストをUSB周辺デバイスへ送り、
l.USB分配ユニットで、USB周辺デバイスから第二応答データを受信し、
m.選択的に、USB分配ユニットで、前記USB周辺デバイスに対して確認応答を応答し、
n.USB分配ユニットで、前記引き出したデータ受信用第一リクエストと前記第二応答データをアセンブル応答データにアセンブルし、
o.前記USB分配ユニットで、データ通信ネットワークを通してアセンブル応答データを送り、
p.前記第二ホストコンピュータで、前記送られたアセンブル応答データを受信し、
q.前記第二ホストコンピュータで、前記送られたアセンブル応答データを含む発信データ通知を生成し、
r.前記USBリフレクタユニットで、前記送られたアセンブル応答データを含む発信データ通知を受信し、
s.選択的に、前記第二ホストコンピュータに、確認応答を応答し、
t.前記USBリフレクタユニットで、前記送られたアセンブル応答データを含む発信データ通知を記憶し、
u.前記USBリフレクタユニットで、前記送られたアセンブル応答データを含む発信データ痛里から、前記データ受信用第一リクエスト及び前記第二応答データを引き出し、
v.前記USBリフレクタユニットで、第一ホストコンピュータから、データ受信用第二リクエストを受信し、
w.前記USBリフレクタユニットで、前記引き出されたデータ受信用第一リクエストと、前記受信したデータ受信用第二リクエストとをマッチングし、
x.前記USBリフレクタユニットで、前記第一ホストコンピュータに第二応答データを送り、
y.選択的に、前記第一ホストコンピュータから確認応答を受ける
ことを含む方法を提供する。
【0028】
さらに別の特徴によれば、本発明は、データ通信ネットワークを通してホストコンピュータからUSB周辺デバイスへデータを送信する方法を提供する。詳細には、本発明は、データ通信ネットワークを通してホストコンピュータからUSB周辺デバイスへデータを送信する方法であって、
前記方法が、
a.USBリフレクタユニットで、第一ホストコンピュータからの第一送信データ通知を受信し、
b.前記USBリフレクタユニットで、第一送信データ通知を記憶し、
c.選択的に、USBリフレクタユニットで、前記第位置ホストコンピュータへ否定確認応答を応答し、
d.USBリフレクタユニットで、第二ホストコンピュータからの受信データ第一リクエストを受信し、
e.前記第二ホストコンピュータへ、前記第一送信データ通知を含む応答データを応答し、
f.選択的に、前記USBリフレクタユニットで、前記第二ホストコンピュータからの確認応答を受信し、
g.前記第二ホストコンピュータで、前記第一送信データ通知を含む応答データを受信し、
h.前記第二ホストコンピュータで、データ通信ネットワークを通して、前記第一送信データ通知を含む前記受信した応答データを送り、
i.USB分配ユニットで、前記第一送信データ通知を含む前記送信された応答データを受信し、
j.前記USB分配ユニットで、前記送信された応答データから前記第一送信データ通知を引き出し、
k.USB分配ユニットで、前記引き出した第一送信データ通知をUSB周辺デバイスへ送信し、
l.USB分配ユニットで、USUB周辺デバイスから第二確認応答を受信し、
m.USB分配ユニットで、前記引き出した第一送信データ通知と前記第二確認応答とをアセンブリ応答データにアセンブルし、
n.前記USB分配ユニットで、データ通信ネットワークを通して前記アセンブリ応答データを送り、
o.前記第二ホストコンピュータで、前記送られたアセンブリ応答データを受信し、
p.前記第二ホストコンピュータで、前記送られたアセンブリ応答データを含む送信データ通知を生成し、
q.USBリフレクタユニットで、前記送られたアセンブリ応答データを含む前記生成された送信データ通知を受信し、
r.選択的に、前記第二ホストコンピュータに対して、確認応答を応答し、
s.USBリフレクタユニットで、前記送られたアセンブリ応答データを含む前記受信した送信データ通知を記憶し、
t.USBリフレクタユニットで、前記送られたアセンブリ応答データを含む前記記憶された送信データ通知から、前記第一送信データ通知と前記第二確認応答とを引き出し、
u.USBリフレクタユニットで、第一ホストコンピュータから、第三送信データ通知を受信し、
v.USBリフレクタユニットで、前記引き出された第一送信データ通知と前記受信した第三送信データ通知とをマッチングし、
w.USBリフレクタユニットで、前記第位置ホストコンピュータに前記引き出した第二確認応答を送る
ことを含む方法を提供する。
【0029】
USBシステムの好ましい実施例では、ホストコンピュータ及びUSB周辺デバイスは、USB仕様をサポートする任意の標準的なユニット又はデバイスであり得る。好ましくは、そのユニット又はデバイスは、最も新しいバージョンのUSB仕様をサポートするべきであるが、そのユニット又はデバイスは、前のバージョンのUSB仕様だけをサポートすることも可能である。
【0030】
データ通信ネットワークの好ましい実施例では、データ通信ネットワークは、ホストコンピュータとUSB分配器とを接続する専用リンクから成る。
【0031】
データ通信ネットワークのさらに好ましい実施例では、データ通信ネットワークは、
ホストコンピュータとUSB分配器との間で伝播するUSBトラフィックに加えて他のトラフィックも運び得る共有ネットワークで構成される。有線イーサネット(登録商標)、無線イーサネット(登録商標)、パブリックインターネット、プライベートインターネット及びこれらのネットワークの組合せを基礎とするようなネットワークが、例えば、この出願には適している。
【0032】
USBリフレクタの好ましい実施例では、USBリフレクタは、USBドングルやUSBメモリスティックのようにホストコンピュータのUSBポートに直接差し込まれ得る内蔵ユニットである。
【0033】
USBリフレクタのさらに好ましい実施例では、USBリフレクタは、一つ又は複数のUSBケーブルによって一つ又は複数のホストコンピュータに接続され得る内蔵ユニットである。
【0034】
USBリフレクタのさらに好ましい実施例では、USBリフレクタは、ホストコンピュータのケース内に内蔵され得、かつ、USBケーブルによって付加的なホストコンピュータに接続され得る。
【0035】
USBリフレクタの好ましい実施例では、USBリフレクタは、単一のUSBリンクによって、単一のホストコンピュータに接続され、USBリフレクタとホストコンピュータとの間の全てのUSBトラフィックが単一のUSBリンク上で伝播される。
【0036】
USBリフレクタのさらに好ましい実施例では、USBリフレクタは、二つのUSBリンクによって単一のホストコンピュータに接続され、各USBリンクが一つのホストコンピュータ内に設けられた独立ホストコントローラに接続され、一つの特定のUSBリンクでUSBリフレクタに到達する全てのUSBトラフィックが、他のUSBリンクでリフレクトされる。
【0037】
USBリフレクタのさらに好ましい実施例では、USBリフレクタは、複合USBケーブルによって複合ホストコンピュータに接続され、特定のUSBリンクでUSBリフレクタに到達するUSBトラフィックが、USBリフレクタに対して利用可能なトラフィックローディングパラメータ及び構造に応じて任意の利用可能なUSBリンクでリフレクトされる。
【0038】
USBリンクの好ましい実施例では、USB2.0トランシーバがUSBリンクの各端部に設けられるべきであり、トランシーバがUSB2.0仕様に従うケーブルによって接続されるべきである。
【0039】
USBリンクのさらに好ましい実施例では、USB3.0トランシーバがUSBリンクの各端部に設けられるべきであり、トランシーバは、USB3.0仕様に従うケーブルによって接続されるべきである。
【0040】
USBリンクのさらに好ましい実施例では、サーティファイト゛ワイヤレスUSBトランシーバがUSBリンクの各端部に設けられるべきであり、トランシーバは、無線通信によって接続されるべきである。
【0041】
USBリンクのさらに好ましい実施例では、高速インターチップトランシーバが、USBリンクの各端部に設けられるべきであり、トランシーバはプリント基板上のトレースによって接続されるべきである。
【0042】
その構造、構成、用途及び動作方法に関しては本発明の特有のものであると思われる新規な特徴は、その目的及び利点と共に、本発明の好ましい実施の形態が実施例によって示される以下の図面から明らかになる。しかし、これらの図面は説明することだけを目的とするものであり、発明の範囲を定義することを意図するものではないことは明らかである。以下、本発明の実施の形態を、添付図面に関連する実施例によって説明していく。
【図面の簡単な説明】
【0043】
【図1】従来のUSB仕様に従った典型的なUSBシステムのブロック図である。
【図2】従来技術に従った、USB拡張システムのブロック図である。
【図3】本発明によるUSBシステムのブロック図である。
【図4】本発明による好ましいUSBシステムのブロック図である。
【図5】本発明によるさらに好ましいUSBシステムのブロック図である。
【図6】本発明によるUSBリフレクタと、様々なホストコンピュータオプションを示す複数のホストコントローラとのブロック図である。
【図7】本発明による好ましいUSBリフレクタと、単一のホストコンピュータオプションを示す二つのホストコントローラとのブロック図である。
【図8】本発明によるさらに好ましいUSBリフレクタと、単一のホストコンピュータオプションを示す一つのホストコントローラとのブロック図である。
【図9】本発明によるリフレクタコアのブロック図である。
【図10】本発明によるUSB分配器のブロック図である。
【図11】本発明によるホストコンピュータソフトウェアスタックのブロック図である。
【図12】USB周辺デバイスからホストコンピュータへのデータ送信を示すシーケンス線図である。
【図13】ホストコンピュータからUSB周辺デバイスへのデータ送信を示すシーケンス線図である。
【発明を実施するための形態】
【0044】
図1は、USB仕様に従って作られた従来のシステムのブロック図である。USB仕様によれば、USBが使用可能なホストコンピュータ(10)は、一つ又は連なったUSBハブ(16)を介して一つ又は複数のUSBデバイス(17)に接続され得る。一つのUSBデバイスを他のUSBデバイスに接続することはできず、単一のシリアルチェーン(single serial chain)で接続可能なハブの最大数は5個である。また、USBデバイスはホストコンピュータに直接接続され得る。コンピュータ、ハブ又はUSBデバイスの相互接続のために用いられる各ケーブルの最大長は5メートルである。
【0045】
図2は、従来技術によってUSBの範囲を拡張するためのシステムを示している。標準的な改良されていないホストコンピュータ(10)は、ローカル拡張ユニット(93)、ロングケーブル(13)及びリモート拡張ユニット(94)を介して標準的な改良されていないUSB周辺デバイス(17)につながっている。また、USBハブ(16)が、リモート拡張ユニット(94)とUSB周辺デバイス(17)との間に接続され得、一つのホストコンピュータで複数のUSB周辺デバイスを制御することを可能にしている。
【0046】
この構想の下での「データリード」の例では、ホストコンピュータ(10)が、USBケーブル(95)を通してSUBサブアクションをローカル拡張ユニット(93)に送信する。USBサブアクションは、USBトランシーバ(97a)によって受信され、ローカル拡張ロジック(90)へ進む。ローカル拡張ロジック(90)は、ネットワークトランシーバ(92a)、ロングケーブル(13)及びネットワークトランシーバ(92b)を通して、リモート拡張ロジック(91)へ送信するためにUSBサブアクションをフォーマットする。また、ローカル拡張ロジック(90)は、USBトランシーバ(97a)及びUSBケーブル(95)を通してホストコンピュータ(10)へ送信するための確認サブアクションを生成し得る。USBサブアクションの受信時に、リモート拡張ロジック(91)は、USBサブアクションのフォーマットを変換し、USBトランシーバ(97b)、USBケーブル(96)及び(選択的に)USBハブ(16)を通してUSB周辺デバイス(17)へUSBサブアクションを進める。
【0047】
USB周辺デバイス(17)でUSBサブアクションを受信すると、USB周辺デバイスは、応答サブアクションを生成し、USBケーブル(96)及びUSBトランシーバ(97b)を通してリモート拡張ロジックユニット(91)へ応答サブアクションを進める。リモート拡張ロジックユニットは、ネットワークトランシーバ(92b)、ロングケーブル(13)及びネットワークレシーバ(92a)を通してローカル拡張ロジック(90)へ送信するために応答サブアクションをフォーマットする。応答サブアクションは、後で使用するために、ローカル拡張ロジック(90)で記憶される。また、リモート拡張ロジック(91)は、USBトランシーバ(97b)及びUSBケーブル(96)を通してUSB周辺デバイス(17)へ僧院するために確認サブアクションを生成する。
【0048】
その後、ホストコンピュータ(10)は、USB周辺デバイス(17)を対象としたオリジナルUSBサブアクションをリピートし得る。このリピートサブアクションも、USBケーブル(95)及びUSBトランシーバ(97a)を通してローカル拡張ロジック(90)へ送信される。リピートUSBサブアクションがローカル拡張ロジック(90)によって受信された時、ローカル拡張ロジック(90)は、記憶装置から応答サブアクションを読み出し、USBトランシーバ(97a)及びUSBケーブル(95)を通してホストコンピュータ(10)へ応答サブアクションを送信する。
【0049】
ロングケーブル(13)を、ローカル拡張ユニット(93)への連結部と、リモート拡張ユニット(94)への他の連結部とを有するデータ通信ネットワークに置き換え得ることは当業者には明らかである。
【0050】
図2に示された従来のシステムが、ロングケーブル(13)の両端に二つのネットワークトランシーバ(92a,92b)を設けることを必要とすることが分かる。
【0051】
ネットワークトランシーバが高価な構成要素であり、そのためにネットワークトランシーバがローカル拡張ユニット及びリモート拡張ユニットのコストで最も重要であることは、本発明に関する当業者には明らかである。さらに、ローカル拡張ユニット(93)からネットワークトランシーバ(92a)を取り除くことができれば、USB拡張システム全体のコストを大幅に下げることができることは明らかである。また、ホストコンピュータが、しばしば、データ通信の目的のためにネットワークトランシーバを予め備えていることも当業者には明らかである。
【0052】
また、ネットワークトランシーバに、ネットワークトランシーバをロングケーブル(13)又は同等のデータ通信ネットワークに物理的に接続する手段が設けられていること、又は内蔵されていることが必要であることも当業者には明らかである。物理的接続手段は、典型的には、ワイヤレス通信用のアンテナ、電気通信用のRJ45レセプタクル、又は光通信用のデュアルLCレセプタクルの形態を採り得る。さらに、ネットワークトランシーバ(92a)に設けられた物理的接続手段が取り除かれると、ローカル拡張ユニット(93)の物理的サイズが低減され得、ローカル拡張ユニットをアクセス可能にするための必要条件とケーブル接続のための堅牢性を取り除くことができることも明らかである。
【0053】
また、ネットワークトランシーバが、延長された距離にわたって信頼性のある通信を達成するために大容量の電力を消費することも当業者には明らかである。ローカル拡張ユニット(93)からネットワークトランシーバ(92a)を取り除くことによって、ローカル拡張ユニット(93)による消費電力の大幅な低減を達成することができ、結果的に、熱放散をより低くし、かつ、サイズをさらに小さくし、コストをさらに下げることができる。
【0054】
図3は、本発明によるUSBシステムのブロック図である。この構成では、各USB周辺デバイス(17)は、USB分配器(15)に、直接、又は一つ又は連鎖したUSBハブ(16)を介して接続される。また、各USB分配器は、データ通信ネットワーク(14)に接続される。また、この構成では、USBリフレクタ(11)が、一つ又は複数のホストコンピュータ(10,12)に接続されている。ホストコンピュータの少なくとも一つは、データ通信ネットワーク(14)への接続を有する必要がある。このシステムでは、ホストコンピュータ(12)がデータ通信ネットワーク(14)への接続を有し、データ通信ネットワーク(14)へのアクティブコネクションを持たない第一ホストコンピュータ(10)と、データ通信ネットワーク(14)へのアクティブコネクションを持つ第二ホストコンピュータ(12)との間に違いがある。
【0055】
第一ホストコンピュータ(10)がUSB周辺デバイス(17)に通信をしたいが、データ通信ネットワーク(14)へのアクティブコネクションを欠いている時、第一ホストコンピュータ(10)は、USBサブアクションをUSBリフレクタ(11)へ送信し、USBリフレクタ(11)が、USBサブアクションを第二ホストコンピュータ(12)に向けて「リフレクト」する。また、USBリフレクタ(11)は、好ましくは、USBタイミング必要条件を満たすために、第一ホストコンピュータ(10)及び第二ホストコンピュータ(12)に対して全ての必要な確認サブアクションを生じさせることを保証する。USBサブアクションがホストコンピュータ(12)によって受信されると、サブアクションは、データ通信ネットワーク(14)を介して、第二ホストコンピュータ(12)の既存のデータネットワークを使用するUSB分配器(15)へ進められる。次いで、USB分配器(15)は、直接、又は中間USBハブ(16)を介してUSB周辺デバイス(17)へUSBサブアクションを進める。同様の処理が、周辺USBデバイス(17)からホストコンピュータ(10)へ向けた逆方向のデータ又はサブアクション送信のために適用される。
【0056】
「リフレクト」によって、USBホストコントローラによってUSB周辺デバイスに出されたUSBサブアクションが、USBリフレクタユニットによってインターセプトされ、一つ又は複数の結果として得られるUSBサブアクションに挿入され、そして、USB周辺デバイスというよりはむしろUSBリフレクタユニットに関連するUSBサブアクションとして、オリジナルUSBホストコントローラに戻されるか、又は、別のホストコントローラへ戻される。従って、USBサブアクションは、USBリフレクタユニットによって、一つのUSBホストコントローラから別のUSBホストコントローラへ「リフレクト」されるか、又は、同じUSBホストコントローラへ「リフレクト」される。あるホストコントローラは、それ自身のもとにリフレクトされた、それ自身のサブアクションを「見る(see)」ことができ、また、別のホストコントローラからのリフレクトされたサブアクションを「見る(see)」こともできる。
【0057】
USBリフレクタ(11)は、独立型デバイスであり得、また、ホストコンピュータ(10)又は(12)の構成に組み込まれた仮想デバイスでもあり得る。
【0058】
本発明のこの実施例では、三つのUSB分配器、二つの第一ホストコンピュータ及び二つの第二ホストコンピュータからなる構成が選択されている。しかし、このデバイスの選択は、本発明の範囲を限定することを意図するものではなく、異なる個数のUSB分配器及びホストコンピュータを使用することができ、かつ、別の接続構造が可能であることは当業者には明らかである。
【0059】
また、本発明のこの実施例では、第一ホストコンピュータ(10)及び第二ホストコンピュータ(12)が別々のユニットとして示されている。しかし、第一ホストコンピュータ及び第二ホストコンピュータの機能を、ネットワーク(14)へのアクティブデータ通信結合を持つ任意のホストコンピュータ内で組み合わせることができることも当業者には明らかである。
【0060】
また、本発明のこの実施例では、データ通信ネットワーク(14)が、複数の接続をサポートするものとして示されている。しかし、データ通信ネットワークは、一つの第二ホストコンピュータ(12)への一つの接続のみをサポートし、かつ、一つのUSB分配器(15)への一つの接続のみをサポートしてもよく、それにより、一つの第二ホストコンピュータと一つのUSB分配器との間の二点間接続によって置き換えられ得る。
【0061】
図4は、本発明による別の好ましいUSBシステムのブロック図である。この構成では、図3に示した第一ホストコンピュータ及び第二ホストコンピュータの両方の機能を実行する一つのホストコンピュータ(12)のみが必要とされる。この構成では、USBリフレクタ(11)は、ホストコンピュータ(12)からのUSB信号を、後で説明する第一及び第二「プロファイル」メカニズムを使用する同じホストコンピュータ(12)に向けてリフレクトするために必要とされる。
【0062】
図5は、本発明によるさらに別の好ましいUSBシステムのブロック図である。この構成では、単一データ通信ネットワークとして作用する二点間接続(13)が、ホストコンピュータ(12)とUSB分配器(15)との間に設けられている。二点間接続(13)が、ツイストペアケーブル、同軸ケーブル、光ファイバケーブル及びワイヤレスを含む広範な通信メディアによって設けられ得ることは当業者には明らかである。
【0063】
図6は、本発明によるUSBリフレクタ(11)と、様々なホストコンピュータオプションを示す複数のホストコントローラのブロック図である。この構成では、USBリフレクタ(11)は、リフレクタコアユニット(23)と、一つ又は複数のUSBトランシーバ(22)とから成る。リフレクタコアユニット(23)は、USBトランシーバ(22)からのUSBサブアクションを受信し、USBサブアクションをフォーマットしてUSBトランシーバ(22)へ送信し、USBトランシーバ間でUSBサブアクションを進めるための機構を提供する。各USBトランシーバ(22)は、ホストコンピュータ(10,12)内に配置されたホストコントローラ(21)に接続されている。
【0064】
図6のシステムの動作をサポートするために、USBリフレクタ(11)は、少なくとも二つの独立しているが関連付けられたプロファイルを有することが必要とされる。第一プロファイルは、第一ホストコンピュータ(10)に存在し、USB周辺デバイス(17)とUSB分配器(15)に接続されたハブ(16)の集団を示す。第一プロファイルは、第一ホストコンピュータ(10)とUSB周辺デバイス(17)とUSBハブ(16)との間で送信されたUSBサブアクションに反応する。それにより、第一プロファイルは、第一ホストコンピュータ(10)によってUSB周辺デバイス(17)に割り当てられた固有のUSBアドレス毎に応答する。第一プロファイルは、少なくとも一つの第一又は第二ホストコンピュータ(10,12)に存在しなければならない。
【0065】
第二プロファイルは、第二ホストコンピュータ(12)に存在し、従来のUSBデバイスとしてUSBリフレクタ(11)のUSBインターフェイスに相当する。第二プロファイルは、USBリフレクタ(11)のUSBイニューメレイション(USB enumeration)をサポートし、第二ホストコンピュータ(12)によってデータ通信ネットワーク(14)を通してレプレイされるUSBサブアクションを終了するためのUSBエンドポイントを提供する。それにより、第二プロファイルは、第二ホストコンピュータ(12)によってUSBリフレクタ(11)に割り当てられた固有USBアドレスに応答する。第二プロファイルは、少なくとも一つの第二ホストコンピュータ(12)に存在していなければならない。
【0066】
USBリフレクタ(11)内のリフレクタコアロジック(23)は、第一プロファイル及び第二プロファイルを実行し、第一プロファイルと第二プロファイル間でUSBサブアクション情報を送信し、かつ、送信中に必要とされ得る何らかのデータ変換アクションを実行するために必要とされる。
【0067】
本発明の実施例では、四つのUSBトランシーバ(22)の構成が選択されている。異なる数のUSBトランシーバを使用することができ、各USBトランシーバが異なる版のUSB仕様に適合され得ることは当業者には明らかである。USB1.1、USB2.0、USB3.0、サーティファイト゛ワイヤレスUSB又は高速インターチップUSBをサポートするUSBトランシーバが、適当なトランシーバユニットの全ての例である。
【0068】
また、本発明のこの実施例では、四つのUSBホストコントローラ(21)、一つの第一ホストコンピュータ(10)及び一つの第二ホストコンピュータ(12)から成る構成が選択されている。異なる構成が可能であることは当業者には明らかである。USBリフレクタ(11)は、少なくとも一つのUSBトランシーバ(22)を有するために必要とされ、各USBトランシーバ(22)は、一つのホストコントローラ(21)に接続されなければならない。各ホストコンピュータ(10,12)は、少なくとも一つのホストコントローラ(21)を有する必要がある。
【0069】
独立した第一プロファイルが、各第一ホストコンピュータ内に設けられた各独立ホストコントローラのために設けられ得、第二プロファイルが各第二ホストコンピュータ内の各独立ホストコントローラのために設けられ得る。
【0070】
図7は、本発明による好ましいUSBリフレクタと、単一ホストコンピュータオプションを示す二つのホストコントローラとのブロック図である。この構成では、USBリフレクタ(11)は、リフレクタコア(23)と、二つのUSBリンク(25a,25b)を通して二つのホストコントローラ(21a,21b)に接続された二つのUSBトランシーバ(22a,22b)とから成る。この構成では、USBリフレクタ(11)が、USBトランシーバ(22a)を介したホストコントローラ(21a)への第一プロファイルと、USBトランシーバ(22b)を介したホストコントローラ(21b)への第二プロファイルを与え得る。ホストコンピュータ(12)は、第一ホストコンピュータ及び第二ホストコンピュータの両方の機能を実行するために必要とされる。
【0071】
本発明のこの実施例では、USBトランシーバ(22a,22b)は別々のユニットとして示され、USBホストコントローラ(21a,21b)も別々のユニットとして示され、USBリンク(25a,25b)も別々のリンクとして示されている。しかし、他の構成も可能であり、複数のユニットが一つにまとめられ得ることは当業者には明らかである。さらに、USBトランシーバ(22a)がUSB2.0の要件に適合し得、USBトランシーバ(22b)がUSB3.0の要求に適合し得、USBリンク(25a,25b)がUSB3.0の要求に適合する一つのケーブルで実現され得ることも当業者には明らかである。
【0072】
図8は、本発明によるさらに好ましいUSBリフレクタと、単一のホストコンピュータオプションを示す一つのホストコントローラとのブロック図である。この構成では、USBリフレクタ(11)は、リフレクタコア(23)と、内部USBハブ(29)を通して一つのホストコントローラ(21)に接続される二つのUSBトランシーバ(22a,22b)とから成る。この構成では、USBリフレクタ(11)は、第一USBトランシーバ(22a)を介したホストコントローラ(21)への第一プロファイルと、第二USBトランシーバ(22b)を通した第二プロファイルとを与え得る。
【0073】
本発明のこの実施例では、USBハブ(29)は、トランシーバ(22a,22b)への二つのダウンストリームリンクを支持するものとして示されている。しかし、より多くの数のダウンストリームリンクが可能であり、ダウンストリームリンクを通して付加的なプロファイルが与えられ得ることは当業者には明らかである。
【0074】
また、本発明のこの実施例では、内部USBハブ(29)がUSBリフレクタ(11)内に収容された別個のユニットとして示されている。しかし、内部USB(29)は、USBリフレクタ(11)の外部に配置される独立型ユニットであり得ることは当業者には明らかである。さらに、内部USBハブ(29)は、出願人の継続中の米国特許公開2008/0028120号で提供される開示内容に従って、リフレクタコア(23)内で実行される仮想ユニットであり得ることも当業者には明らかである。
【0075】
図9は、本発明によるリフレクタコア(23)のブロック図である。この構成では、SUBレスポンダユニット(30)は、一つ又は複数の連結部(35)を介して一つ又は複数のUSBトランシーバに接続されている。USBレスポンダ(30)は、連結部(35)を通してUSBサブアクションを受信し、受信したサブアクションをパケットキャッシュ(31)に記憶し、パケットキャッシュ(31)からUSBサブアクションを読み出し、総合(synthetic)USBサブアクションを生成し、連結部(35)を通してUSBサブアクションを送信することができる。また、USBレスポンダ(30)は、受信、記憶、読出し、生成及び送信処理の発現を記録するためにステータステーブル(33)をアップデイトすることができる。
【0076】
USBアグリゲータ(34)は、パケットキャッシュ(31)及びステータステーブル(33)に接続されており、第一プロファイルに属するUSBサブアクションをパケットキャッシュ(31)からパケット読み出し、第一USBサブアクションを第二プロファイルの下で送信するのに適したフォーマットに変換し、そして、変換後のUSBサブアクションをパケットキャッシュ(31)に記憶することができる。また、USBアグリゲータ(34)は、パケットキャッシュ(31)から第二プロファイルに属するUSBサブアクションを読み出し、第二USBサブアクションを第一プロファイルの下で送信するのに適したフォーマットに変換し、変換後のUSBサブアクションをパケットキャッシュ(31)に記憶することもできる。さらに、USBアグリゲータ(34)は、複数のオリジナルUSBサブアクションを、一つの統合USBサブアクションに統合し、かつ、統合USBサブアクションを複数のオリジナルUSBサブアクションに分解することができるようにされ得る。さらにまた、USBアグリゲータ(34)は、読み出し、変換、保存、統合及び分解処理の発現を記録するためにステータステーブル(33)をアップデイトすることができる。
【0077】
コントローラ(32)は、USBレスポンダ(30)、パケットキャッシュ(31)、ステータステーブル(33)及びUSBアグリゲータ(34)の処理を調整することができる。USB仕様によれば、各USBデバイスは、機器構成と制御のためにコントロールエンドポイント(エンドポイント0)をサポートする必要がある。また、コントローラ(32)は、そのコントロールエンドポイントを通してUSBリフレクタ(11)に発せられたUSB要求に応答することができる。
【0078】
図10は、本発明によるUSB分配器(15)のブロック図である。この構成では、ネットワークトランシーバ(40)が、通信リンク(49)を通してデータ通信ネットワーク(14)に接続されている。USBトランシーバ(47)は、USBリンク(48)を通してUSBハブ(16)又はUSBデバイス(17)に接続されている。
【0079】
データパケット包含USBサブアクション情報は、データ通信ネットワーク(14)からネットワークトランシーバ(40)によって受信され得、そして、リンクマネージャ(41)に進められ得る。リンクマネージャ(41)は、データパケットの整合性(integrity)をチェックし、エラーが存在していることが見つかった場合には再送信を要求し、パケットのカプセル化を排除し、データ通信ネットワーク(14)を通して送信するために要求される情報のネットワークアドレス指定を行なう処理を行なうものであり得る。その後、包含されたUSBサブアクション情報は、リンクマネージャ(41)によって、個々のUSBサブアクションを特定し、個々のUSBサブアクションをパケットキャッシュ(43)に保存し、そしてパケットキャッシュ(43)におけるUSBサブアクションの存在を表示するためにステータステーブル(45)をアップデイトするための処理を行なうUSB分散器(42)に進められる。
【0080】
USBレスポンダ(46)は、パケットキャッシュ(43)からUSBサブアクションを読み出し、USBトランシーバ(47)を通してUSBサブアクションを送信することができる。また、USBレスポンダ(46)は、USBトランシーバ(47)からのUSBサブアクションを受信し、受信したUSBサブアクションをパケットキャッシュ(43)に保存し、パケットキャッシュ(43)におけるUSBサブアクションの存在を表示するためにステータステーブル(45)をアップデイトし、総合(synthetic)USBサブアクションを生成し、そして、USBトランシーバ(47)を通して総合USBサブアクションを送信することができる。
【0081】
同様に、データの流れが、USB分配器(15)からUSBリフレクタ(11)への方向である時は、USB分散器(42)は、パケットキャッシュ(43)からUSBサブアクションを読み出し、選択的に、複数のUSBサブアクションを単一データパケットに統合し、データ通信ネットワーク(14)を通して送信するために単一データパケットをリンクマネージャ(41)に進めることができる。
【0082】
図11は、本発明による第二ホストコンピュータ(12)内で動作するホストコンピュータソフトウェアスタックのブロック図である。この構成では、USBドライバ(62)が、一つ又は複数のホストコントローラドライバ(63)を操作し、一つ又は複数のホストコントローラドライバ(63)が一つ又は複数のホストコントローラ(21a,21b)を操作する。USBドライバ(62)、ホストコントローラドライバ(63)及びホストコントローラ(21a,21b)から成る構成は、一つ又は複数のUSBリンク(70)及びUSB仕様に従ったUSBドライバインターフェイス(72)をサポートする。
【0083】
また、この構成では、一つ又は複数のUSBデバイスドライバ(60)が、第一ホストコンピュータ及び第二ホストコンピュータの機能が一つの統一ホストコンピュータ内で一体化された構成内のUSBハブ(16)(図示せず)及びUSBドライブ(17)(図示せず)を制御するためにインストールされ得る。
【0084】
さらにまた、この構成では、TCP/IPモジュール(66)、NDIS(ネットワークドライバインターフェース仕様)モジュール(67)及びネットワークトランシーバ(68)を備えたデータ通信スタックが設けられている。データ通信スタックは、データリング(71)を通したデータ通信ネットワーク(14)(図示せず)との通信を可能にする。
【0085】
さらにまた、この構成では、USBリフレクタドライバ(61)が、USBリフレクタ(11)(図示せず)をサポートするUSBドライバ機能を提供するためにUSBドライバインターフェイス(72)で機能する。USBリフレクタドライバ(61)は、USBリフレクタ(11)の第二プロファイルで機能する。第二プロファイルは、USBリフレクタ(11)のUSBイニューメレイション(USB enumeration)をサポートし、第二ホストコンピュータ(12)によってデータ通信ネットワーク(14)で中継されるべきUSBサブアクションを終了させるためのUSBエンドポイントを提供する。また、この構成では、USBリフレクタアプリケーション(65)が、USBリフレクタドライバ(61)とTCP/IPモジュール(66)との間のブリッジを提供する。USBリフレクタアプリケーション(65)は、USBリフレクタドライバ(61)からのUSBサブアクションを受信し、データ通信ネットワーク(14)を介して送信するためにUSBサブアクションをカプセル化することができる。
【0086】
しかし、この構成が、オペレーティングシステムのカーネルに典型的に含まれているソフトウェアを追加したり変更したりすることを必要とせず、特に、USBドライバインターフェイス(72)より「下」に存在し、USBドライバ(62)及びホストコントローラドライバ(63)を含むソフトウェアを追加したり変更したりすることを必要としないことは当業者には明らかである。さらに、既存のデバイスドライバ(60)に対する変更を必要としないことも明らかである。
【0087】
図11の構成の機能は、USBリフレクタ(11)の第一プロファイルが第一ホストコントローラ(21a)を通して機能し、USBリフレクタ(11)の第二プロファイルが第二ホストコントローラ(21b)を通して機能し、データがUSBデバイス(17)からホストコントローラ(21a)に流れるUSBトランザクションを実行する以下の実施例によって、さらに説明される。
【0088】
USBトランザクションは、最終的に第一ホストコントローラ(21a)によって出されるべきUSB INサブアクションをもたらすオリジナルデバイスドライバ(60)によって起動される。USB INサブアクションは、USBリフレクタ(11)の第一プロファイルによってインターセプトされ、その第二プロファイルを通して、USB DATAサブアクションとしてUSBリフレクタ(11)にリフレクトされる。USB DATAサブアクションは、第二ホストコントローラ(21b)によって生み出されたUSB INサブアクションに応えて第二ホストコントローラ(21b)によって受信され、USBリフレクタドライバ(61)へのUSBスタックをパスアップされる。USBリフレクタドライバ(61)は、USBリフレクタ(11)におけるデータバッファがオーバーフローするのを防ぐのに十分なUSB INサブアクションの流れが作り出されることを保証する。その後、USBリフレクタドライバ(61)は、受信したUSB DATAサブアクションからオリジナルUSB INサブアクションを引き出し、データネットワーク(14)を通してUSB分配器(15)へ送信するために引き出したUSBサブアクションをSUBリフレクタアプリケーション(65)に渡す。
【0089】
USB分配器(14)で受信したUSBサブアクションに応答して、USB DATAサブアクションが、データ通信ネットワーク(14)を通して、最終的に送信され、USBリフレクタアプリケーション(65)によって受信されることになる。受信されたUSB DATAサブアクションは、その後、オリジナルデバイスドライバ(60)に再送信するためにUSBリフレクタドライバ(61)に渡される。USBリフレクタドライバ(61)は、USB OUT/DATAサブアクションの中に受信したUSB DATAサブアクションをカプセル化し、USB OUT/DATAサブアクションを、USBドライバ(62)及び第二ホストコントローラ(21b)を通してUSBリフレクタ(11)の第二プロファイルに送ることにより再送信を始める。USB OUT/DATAサブアクションは、USBリフレクタ(11)の第二プロファイルによって受信され、USBリフレクタ(11)によってUSB DATAサブアクションが引き出され、USBリフレクタ(11)の第一プロファイルを通して利用可能にされる。次いで、第一ホストコントローラ(21a)が、オリジナルデバイスのために繰り返しUSB INサブアクションを出す時に、引き出されたUSB DATAサブアクションは、第一ホストコントローラ(21a)に戻される。
【0090】
本発明のこの実施例では、TCP/IPモジュール(66)、NDISモジュール(67)及びネットワークトランシーバ(68)を有する特別なデータ通信スタックが示されている。しかし、別のデータ通信スタックでも可能であり、かつ、複数のデータ通信スタックが、一つのホストコンピュータ内で実行され得ることは当業者には明らかである。
【0091】
また、本発明のこの実施例では、USBリフレクタドライバ(61)は、一つ又は複数のデバイスドライバ(60)と共存するものとして示されている。しかし、他の構成も可能であり、USBデバイスドライバ(60)が、独立したホストコンピュータ(10)にインストールされ得ることは当業者には明らかである。
【0092】
さらに、ホストコントローラ21a及び21bは別々に識別されているが、一つのホストコントローラ又は任意の数のホストコンとローが利用され得ることは当業者には明らかである。
【0093】
図12は、USB周辺デバイスからホストコンピュータへのデータ送信を示すシーケンス線図である。
【0094】
第一ホストコンピュータ(10)における制御ロジック(50)は、USBリフレクタ(11)へ第一INサブアクションを出すことによってデータ送信を開始する。第一INサブアクションは、USB周辺デバイス(17)に関連する第一USBアドレス及びエンドポイント(A1,E1)にアドレス指定される。第一INサブアクションは、USBリフレクタ(11)における制御ロジック(51)によって受信され、ローカルメモリに記憶される。制御ロジック(51)は、エンドポイント(E1)に関連したUSBエンドポイントタイプに適合する総合確認サブアクション(synthetic acknowledgement subaction)を生成し得る。総合確認サブアクションは、USB NAKパケットを有し得る。
【0095】
その後、第二ホストコンピュータ(12)における制御ロジック(52)が、USBリフレクタ(11)へ第二INサブアクションを出す。第二INサブアクションは、USBリフレクタ(11)の第二プロファイルに関連する第二USBアドレス及びエンドポイント(A2,E3)にアドレス指定される。USBリフレクタ(11)における制御ロジック(51)は、第二INサブアクションを受信し、第一DATAサブアクションを応答する。第一DATAサブアクションにおけるペイロードは、記憶された第一INサブアクションを有する。第二ホストコンピュータ(12)における制御ロジック(52)は、第一DATAサブアクションを受信し、ACKサブアクションをUSBリフレクタ(11)に送信することによって、受信成功を応答確認し得る。
【0096】
その後、第二ホストコンピュータ(12)における制御ロジック(52)は、受信した第一DATAサブアクションから第一INサブアクションを引き出し、引き出した第一INサブアクションを有する第一ネットワークパケットをアセンブルする。制御ロジック(52)は、データ通信ネットワーク(14)を通して、第一ネットワークパケットをUB分配器(15)に進める。USB分配器(15)における制御ロジック(53)は、第一ネットワークパケットを受信し、第一ネットワークパケットから第一INサブアクションを引き出し、引き出した第一INサブアクションをUSB周辺デバイス(17)へ送る。
【0097】
その後、送られた第一INサブアクションはUSB周辺デバイス(17)における制御ロジック(54)によって受信される。制御ロジック(54)は、第二DATAサブアクションを生成し、生成した第二DATAサブアクションをUSB分配器(15)に送る。送られた第二DATAサブアクションは、USB分配器(15)における制御ロジック(53)によって受信される。制御ロジック(53)は、エンドポイント(E1)に関連したUSBエンドポイントタイプに適合する総合確認サブアクションを生成し得る。総合確認サブアクションは、USB ACKパケットを有し得る。また、制御ロジック(53)は、引き出した第一INサブアクションと受信した第二DATAサブアクションを、第二ネットワークパケットにアセンブルし、第二ネットワークパケットを、データ通信ネットワーク(14)を通して第二ホストコンピュータ(12)に送る。
【0098】
その後、第二ホストコンピュータ(12)における制御ロジック(52)は、送られた第二ネットワークパケットを受信し、第一INサブアクション及び第二DATAサブアクションを引き出し、第一INサブアクション及び第二DATAサブアクションを有する第一OUTサブアクションをアセンブルする。制御ロジック(52)は、第一OUTサブアクションをUSBリフレクタ(11)に送信する。第一OUTサブアクションは、USBリフレクタ(11)の第二プロファイルに関連する第三USBアドレス及びエンドポイント(A2,E4)にアドレス指定される。制御ロジック(51)は、第一OUTサブアクションを受信し、第一INサブアクション及び第二DATAサブアクションを引き出し、引き出した第一INサブアクション及び第二DATAサブアクションをローカルメモリに記憶する。
【0099】
さらにその後、第一ホストコンピュータ(10)における制御ロジック(50)は、第三INサブアクションをUSBリフレクタ(11)に出力する。第三INサブアクションは、再び、USB周辺デバイス(17)に関連する第一USBアドレス及びエンドポイント(A1,E1)にアドレス指定される。USBリフレクタ(11)における制御ロジック(51)は第三INサブアクションを受信し、第三INサブアクションが、記憶された第一INサブアクションと同じアドレス及びエンドポイント(A1,E1)にアドレス指定されていることを認識する。制御ロジック(51)は、ローカルメモリから記憶された第二DATAサブアクションを読み出し、読み出した第二DATAサブアクションを第一ホストコンピュータ(10)に送る。第一ホストコンピュータ(10)における制御ロジック(50)は、エンドポイント(E1)に関連するUSBエンドポイントタイプに適合する総合確認サブアクションを生成し得る。総合確認サブアクションは、USB ACKパケットを有し得る。
【0100】
図13は、ホストコンピュータからUSB周辺デバイスへのデータ送信を示すシーケンス線図である。
【0101】
第一ホストコンピュータ(10)の制御ロジック(50)は、USBリフレクタ(11)へ第一OUTサブアクションを送ることによってデータ送信を開始する。第一OUTサブアクションは、USB周辺デバイス(17)に関連する第一USBアドレス及びエンドポイント(A1,E2)にアドレス指定される。第一OUTサブアクションは、USBリフレクタ(11)の制御ロジック(51)によって受信され、ローカルメモリに記憶される。制御ロジック(51)は、エンドポイント(E1)に関連したUSBエンドポイントタイプに適合する総合確認サブアクションを生成し得る。総合確認サブアクションはUSB NAKパケットを有し得る。
【0102】
その後、第二ホストコンピュータ(12)の制御ロジック(52)がUSBリフレクタ(11)に第一INサブアクションを送る。第二INサブアクションは、USBリフレクタ(11)の第二プロファイルに関連する第二USBアドレス及びエンドポイント(A2,E3)にアドレス指定される。USBリフレクタ(11)の制御ロジック(51)は、第一INサブアクションを受信し、第一DATAサブアクションに応答する。第一DATAサブアクションにおけるペイロードは、記憶された第一OUTサブアクションを有する。第二ホストコンピュータ(12)の制御ロジック(52)は、第一DATAサブアクションを受信し、USBリフレクタ(11)へACKサブアクションを送信することによって受信成功を応答確認し得る。
【0103】
次いで、第二ホストコンピュータ(12)の制御ロジック(52)が、受信した第一DATAサブアクションから第一OUTサブアクションを引き出し、引き出した第一OUTサブアクションを有する第一ネットワークパケットをアセンブルする。制御ロジック(52)は、データ通信ネットワーク(14)を通して、第一ネットワークパケットをUB分配器(15)に進める。USB分配器(15)における制御ロジック(53)は、第一ネットワークパケットを受信し、第一ネットワークパケットから第一OUTサブアクションを引き出し、引き出した第一OUTサブアクションをUSB周辺デバイス(54)へ送る。
【0104】
その後、送られた第一OUTサブアクションは、USB周辺デバイス(17)の制御ロジック(54)で受信される。制御ロジック(54)は、第二確認サブアクションを生成し、生成した第二確認サブアクションをUSB分配器(15)へ送る。送られた第二確認サブアクションは、USB分配器(15)の制御ロジック(53)によって受信される。また、制御ロジック(53)は、引き出した第一OUTサブアクション及び受信した第二確認サブアクションを第二ネットワークパケットにアセンブルし、第二ネットワークパケットを、データ通信ネットワーク(14)を通して第二ホストコンピュータ(12)へ送る。
【0105】
次いで、第二ホストコンピュータ(12)の制御ロジック(52)は、送られた第二ネットワークパケットを受信し、第一OUTサブアクション及び第二確認サブアクションを引き出し、第一OUTサブアクション及び第二確認サブアクションを有する第二OUTサブアクションをアセンブルする。制御ロジック(52)は、第二OUTサブアクションをUSBリフレクタ(11)に送信する。第二OUTサブアクションは、USBリフレクタ(11)の第二プロファイルに関連する第三USBアドレス及びエンドポイント(A2,E4)にアドレス指定される。制御ロジック(51)は、第二OUTサブアクションを受信し、第一OUTサブアクション及び第二確認サブアクションを引き出し、引き出した第一OUTサブアクション及び第二確認さ部アクションをローカルメモリに記憶させる。
【0106】
さらにその後、第一ホストコンピュータ(10)の制御ロジック(50)が、USBリフレクタ(11)へ第三OUTサブアクションを出す。第三OUTサブアクションは、再び、USB周辺デバイス(17)に関連する第一USBアドレス及びエンドポイント(A1,E2)にアドレス指定される。USBリフレクタ(11)の制御ロジック(51)は第三OUTサブアクションを受信し、第三OUTサブアクションが、記憶されている第一OUTサブアクションと同じアドレス及びエンドポイント(A1,E2)にアドレス指定されていることを識別する。制御ロジック(51)は、ローカルメモリから記憶された第二確認サブアクションを読み出し、読み出した第二確認サブアクションを、第一ホストコンピュータ(10)へ送る。
【0107】
それ自体は図示していないが、前もって説明したように、ホストコンピュータ10及びホストコンピュータ12は一つの同じホストコンピュータであってもよく、又は二つ又はそれ以上の独立したホストコンピュータであってもよいことは理解される。
【0108】
本発明によれば、先に説明した目標、目的及び利点を完全に満たすリモートコンピュータへUSBデバイスを接続する方法及び装置が提供されることは明らかである。従って、本発明の具体的な実施例を説明することで、その変更、改良及び変化が当業者に暗示され得、本明細書が、特許請求の範囲の範囲内に入るそのような変更、改良及び変化を全て包含することを目的としていることは理解される。
【0109】
加えて、特に明記しない限り、用語「comprise(有する,備える)」及び「comprising」及び「comprises」は、明細書及び特許請求の範囲で使用される時は、他の付加的部材、構成要素、整数又はステップを排除するものではない。
【0110】
さらにまた、用語「substantially(実質的に)」又は「essentially(本質的に)」は、形容詞や副詞によって使用される場合、特定の特徴を強調するために用いられるもので、例えば、「実質的に平面」は、「平面」「ほとんど平面」及び/又は「平面な要素に関連する特徴を示す」ことを意図している。
【0111】
さらにまた、用語「彼(he)」「彼を(him)」又は「彼の(his)」は、男性の人を具体的に指すことを意図するものではなく、それぞれ「彼女(she)」「彼女を(her)」又は「彼女の(hers)」と読むことができるものである。
【0112】
また、この議論は、発明者に公知の従来技術を対処するものである一方、議論された全ての技術は、本出願に対して引用可能である。

【特許請求の範囲】
【請求項1】
一つ又は複数のホストコンピュータと一つ又は複数のUSB周辺デバイスとの間でUSBトラフィックを伝達するコンピュータシステムであって、
前記一つ又は複数のホストコンピュータと前記一つ又は複数のUSB周辺デバイスとが、データ通信ネットワークによって一方から他方へ接続されるコンピュータシステムにおいて、
前記コンピュータシステムが、
a.USBトラフィックを生成し受け入れる一つ又は複数のホストコンピュータと、
b.前記一つ又は複数のホストコンピュータによって開始されたUSBトラフィックに応答することができる一つ又は複数のUSB周辺デバイスと、
c.前記一つ又は複数のホストコンピュータと前記データ通信ネットワークとの間の一つ又は複数のネットワークコネクションと、
d.前記一つ又は複数のホストコンピュータから受信したUSBトラフィックを前記一つ又は複数のホストコンピュータへリフレクトすることができるUSBリフレクタユニットと、
e.前記データ通信ネットワークに接続され、前記一つ又は複数のUSB周辺デバイスを前記データ通信ネットワークに接続するために利用される一つ又は複数のUSB分配ユニットと、
f.前記USBリフレクタユニットに接続するために前記一つ又は複数のホストコンピュータにあるUSBリフレクタドライバと、
g.前記USBリフレクタドライバを前記データ通信ネットワークに接続するためのUSBリフレクタアプリケーションと
を備えている
ことを特徴とするコンピュータシステム。
【請求項2】
前記一つ又は複数のホストコンピュータが、USB仕様に従って動作する
ことを特徴とする請求項1に記載のコンピュータシステム。
【請求項3】
前記データ通信ネットワークが、ホストコンピュータとUSB分配ユニットとの間の二点間リンクである
ことを特徴とする請求項1に記載のコンピュータシステム。
【請求項4】
前記USBトラフィックが、USBサブアクションから成る
ことを特徴とする請求項1に記載のコンピュータシステム。
【請求項5】
前記USBリフレクタユニットが、USBを通して前記一つ又は複数のホストコンピュータに接続される
ことを特徴とする請求項1に記載のコンピュータシステム。
【請求項6】
前記USBリフレクタの機能が、前記一つ又は複数のホストコンピュータに組み込まれている
ことを特徴とする請求項1に記載のコンピュータシステム。
【請求項7】
前記一つ又は複数のホストコンピュータが、少なくとも一つのホストコンピュータデータ通信トランシーバを有し、
前記リフレクタユニットと前記データ通信ネットワークとの間の通信が、前記ホストコンピュータデータ通信トランシーバを利用して行われる
ことを特徴とする請求項1に記載のコンピュータシステム。
【請求項8】
一つ又は複数のホストコンピュータによって生成されたUSBサブアクションを受け入れ、
前記USBサブアクションを一連の変換済みUSBサブアクションに変換し、
前記一連の変化済みUSBサブアクションを、前記一つ又は複数のホストコンピュータに向けてリフレクトする
ためのUSBリフレクタユニットであって、
該USBリフレクタユニットが、
a.少なくとも一つのホストコンピュータと通信するための少なくとも一つのUSBトランシーバと、
b.前記少なくとも一つのUSBトランシーバを通してUSBサブアクションを受け入れ、かつ、リフレクトし、そしてUSBサブアクションを一連の変換済みUSBサブアクションに変換するためのリフレクタコアと
を備えている
ことを特徴とするUSBリフレクタユニット。
【請求項9】
前記ホストコンピュータによって発行されたUSBイニューメレイションコマンドに応答するための手段をさらに備えている
ことを特徴とする請求項8に記載のUSBリフレクタユニット。
【請求項10】
一つ以上のUSBアドレスで指定されたUSBトラフィックを、単一のアドレスで指定されたUSBトラフィックに統合する手段をさらに備えている
ことを特徴とする請求項8に記載のUSBリフレクタユニット。
【請求項11】
一つ以上のUSBエンドポイントで指定されたUSBトラフィックを、単一のエンドポイントで指定されたUSBトラフィックに統合する手段をさらに備えている
ことを特徴とする請求項8に記載のUSBリフレクタユニット。
【請求項12】
少なくとも一つのUSBトランシーバを通してUSBサブアクションを引き受けてリフレクトし、USBサブアクションを一連の変換済みUSBサブアクションに変換するためのリフレクタコアユニットであって、
前記リフレクタコアユニットが、
a.USBコマンドを解析し、適当なUSB応答を生成するUSBレスポンダと、
b.USBサブアクション及び変換済みUSBサブアクションを記憶するパケットキャッシュと、
c.前記リフレクタコアユニットによってサポートされる各USBデバイスの構造及びステータスを記録するためのステータステーブルと、
d.USBホストコントローラから受信したUSBサブアクションを、USBホストコントローラへリフレクトして戻し得るUSBサブアクションに変換するためのUSBアグリゲータと、
e.前記USBレスポンダ、前記パケットキャッシュ、前記ステータステーブル及び前記USBアグリゲータの動作を調整するためのコントローラと
を備えている
ことを特徴とするリフレクタコアユニット。
【請求項13】
ホストコンピュータから受信したUSBサブアクションを引き受け、前記USBサブアクションを複数のUSB周辺デバイスに向けて送り、前記複数のUSB周辺デバイスから受信したUSBサブアクションを引き受け、前記USBサブアクションをホストコンピュータに向けて送るUSB分配ユニットであって、
前記USB分配ユニットが、
a.前記複数のUSB周辺デバイスと通信するための少なくとも一つのUSBトランシーバと、
b.前記少なくとも一つのUSBトランシーバを通してUSBサブアクションの引き受けと送りをするための分配器コアと
を備えていることを特徴とするUSB分配ユニット。
【請求項14】
データ通信ネットワークを通してUSB周辺デバイスからホストコンピュータへデータを送信する方法であって、
該方法が、
a.USBリフレクタユニットで、第一ホストコンピュータから、受信データ第一リクエストを受信し、
b.前記USBリフレクタユニットで、前記受信データ第一リクエストを記憶し、
c.選択的に、前記USBリフレクタユニットで、否定確認応答を前記第一ホストコンピュータに対して応答し、
d.前記USBリフレクタユニットで、第二ホストコンピュータから、受信データ第二リクエストを受信し、
e.前記第二ホストコンピュータに対して、前記受信データ第一リクエストを含む応答データを応答し、
f.選択的に、前記USBリフレクタで、前記第二ホストコンピュータからの確認応答を受信し、
g.前記第二ホストコンピュータで、前記受信データ第一リクエストを含む前記応答データを受信し、
h.前記第二ホストコンピュータで、前記データ受信用第一リクエストを含む前記受信した応答データを、データ通信ネットワークを通して送信し、
i.前記データ受信用第一リクエストを含む前記送信された応答データをUSB分配ユニットで受信し、
j.前記USB分配ユニットで、前記データ受信用第一リクエストを、前記送信された応答データから引き出し、
k.前記USB分配ユニットで、前記引き出したデータ受信用第一リクエストをUSB周辺デバイスへ送り、
l.USB分配ユニットで、USB周辺デバイスから第二応答データを受信し、
m.選択的に、USB分配ユニットで、前記USB周辺デバイスに対して確認応答を応答し、
n.USB分配ユニットで、前記引き出したデータ受信用第一リクエストと前記第二応答データをアセンブル応答データにアセンブルし、
o.前記USB分配ユニットで、データ通信ネットワークを通してアセンブル応答データを送り、
p.前記第二ホストコンピュータで、前記送られたアセンブル応答データを受信し、
q.前記第二ホストコンピュータで、前記送られたアセンブル応答データを含む発信データ通知を生成し、
r.前記USBリフレクタユニットで、前記送られたアセンブル応答データを含む発信データ通知を受信し、
s.選択的に、前記第二ホストコンピュータに、確認応答を応答し、
t.前記USBリフレクタユニットで、前記送られたアセンブル応答データを含む発信データ通知を記憶し、
u.前記USBリフレクタユニットで、前記送られたアセンブル応答データを含む発信データ痛里から、前記データ受信用第一リクエスト及び前記第二応答データを引き出し、
v.前記USBリフレクタユニットで、第一ホストコンピュータから、データ受信用第二リクエストを受信し、
w.前記USBリフレクタユニットで、前記引き出されたデータ受信用第一リクエストと、前記受信したデータ受信用第二リクエストとをマッチングし、
x.前記USBリフレクタユニットで、前記第一ホストコンピュータに第二応答データを送り、
y.選択的に、前記第一ホストコンピュータから確認応答を受ける
ことを含むことを特徴とする方法。
【請求項15】
前記リフレクタユニットが、第一プロファイルを使用する前記第一ホストコンピュータと通信し、かつ、第二プロファイルを使用する前記第二ホストコンピュータと通信する
ことを特徴とする請求項14に記載の方法。
【請求項16】
前記第一ホストコンピュータと前記第二ホストコンピュータとが同じコンピュータである
ことを特徴とする請求項14に記載の方法。
【請求項17】
データ通信ネットワークを通してホストコンピュータからUSB周辺デバイスへデータを送信する方法であって、
前記方法が、
a.USBリフレクタユニットで、第一ホストコンピュータからの第一送信データ通知を受信し、
b.前記USBリフレクタユニットで、第一送信データ通知を記憶し、
c.選択的に、USBリフレクタユニットで、前記第位置ホストコンピュータへ否定確認応答を応答し、
d.USBリフレクタユニットで、第二ホストコンピュータからの受信データ第一リクエストを受信し、
e.前記第二ホストコンピュータへ、前記第一送信データ通知を含む応答データを応答し、
f.選択的に、前記USBリフレクタユニットで、前記第二ホストコンピュータからの確認応答を受信し、
g.前記第二ホストコンピュータで、前記第一送信データ通知を含む応答データを受信し、
h.前記第二ホストコンピュータで、データ通信ネットワークを通して、前記第一送信データ通知を含む前記受信した応答データを送り、
i.USB分配ユニットで、前記第一送信データ通知を含む前記送信された応答データを受信し、
j.前記USB分配ユニットで、前記送信された応答データから前記第一送信データ通知を引き出し、
k.USB分配ユニットで、前記引き出した第一送信データ通知をUSB周辺デバイスへ送信し、
l.USB分配ユニットで、USUB周辺デバイスから第二確認応答を受信し、
m.USB分配ユニットで、前記引き出した第一送信データ通知と前記第二確認応答とをアセンブリ応答データにアセンブルし、
n.前記USB分配ユニットで、データ通信ネットワークを通して前記アセンブリ応答データを送り、
o.前記第二ホストコンピュータで、前記送られたアセンブリ応答データを受信し、
p.前記第二ホストコンピュータで、前記送られたアセンブリ応答データを含む送信データ通知を生成し、
q.USBリフレクタユニットで、前記送られたアセンブリ応答データを含む前記生成された送信データ通知を受信し、
r.選択的に、前記第二ホストコンピュータに対して、確認応答を応答し、
s.USBリフレクタユニットで、前記送られたアセンブリ応答データを含む前記受信した送信データ通知を記憶し、
t.USBリフレクタユニットで、前記送られたアセンブリ応答データを含む前記記憶された送信データ通知から、前記第一送信データ通知と前記第二確認応答とを引き出し、
u.USBリフレクタユニットで、第一ホストコンピュータから、第三送信データ通知を受信し、
v.USBリフレクタユニットで、前記引き出された第一送信データ通知と前記受信した第三送信データ通知とをマッチングし、
w.USBリフレクタユニットで、前記第位置ホストコンピュータに前記引き出した第二確認応答を送る
ことを含むことを特徴とする方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公表番号】特表2012−500422(P2012−500422A)
【公表日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2011−522359(P2011−522359)
【出願日】平成21年8月14日(2009.8.14)
【国際出願番号】PCT/CA2009/001130
【国際公開番号】WO2010/017636
【国際公開日】平成22年2月18日(2010.2.18)
【出願人】(507304889)アイクロン テクノロジーズ コーポレーション (3)
【Fターム(参考)】