(57)【要約】【課題】  ＵＳＢの規格を遵守しながら、１２８台以上のデバイスを１台のホストに取り付けることができるようにする。【解決手段】  １つの上流側ポート１３５Ａと、複数の下流側ポート１３６Ａと、下流側ポート１３６Ａに接続された各ＵＳＢデバイス１２０とエニュメレーションを行い、各種エンドポイント情報を集め、集めた各種エンドポイント情報を基に、上流側ポート１３５ＡからＵＳＢホスト機器１１０に返すエニュメレーション情報を作成し、下流側ポート１３６Ａにされている各ＵＳＢデバイス１２０をまとめた１台のＵＳＢデバイスとして認識させるエニュメレーション処理部１４０とを備える。【選択図】        図１
2008134698.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢケーブルを介してＵＳＢホスト機器と接続されるＵＳＢ機器であって、
１つの上流側ポートと、
複数の下流側ポートと、
下流側ポートに接続された各ＵＳＢデバイスとエニュメレーションを行い、各種エンドポイント情報を集め、集めた各種エンドポイント情報を基に、上流側ポートからＵＳＢホスト機器に返すエニュメレーション情報を作成し、下流側ポートにされている各ＵＳＢデバイスをまとめた１台のＵＳＢデバイスとして認識させるエニュメレーション処理部と
を備えることを特徴とするＵＳＢ機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢケーブルを介してＵＳＢホスト機器と接続されるＵＳＢ機器に関する。
【背景技術】
【０００２】
近年、サーバやＰＣ（パーソナルコンピュータ）に接続するキーボードやマウス等の入出力装置のインタフェースとして、ＵＳＢ（Universal Serial Bus）が知られている。
【０００３】
ＵＳＢ（Universal Serial Bus）は、パーソナルコンピュータ（ＰＣ）および通信（telecom）業界のリーダー達により開発された周辺バス仕様である。ＵＳＢは、コンピュータ周辺機器のプラグ アンド プレイ機能をＰＣボックスの外部に引き出す。この仕様によって、専用のコンピュータスロットにカードを装着し、周辺機器がＰＣに着脱される度にシステムを再構成する、という必要性をなくす。ＵＳＢを搭載したパーソナルコンピュータは、コンピュータ周辺機器が物理的に接続された途端に、リブートしたりセットアップを走らせたりする必要なく、当該コンピュータ周辺機器を自動的に構成することができる。ＵＳＢでは、モニタやキーボードのような周辺機器を追加的なプラグインサイトまたはハブとして機能させながら、１台のコンピュータ上で同時に１２７台までの多数のデバイスを走らせることができる（例えば、非特許文献１参照）。
【０００４】
ここで、ＵＳＢ仕様の内容の概略をＵＳＢバストポロジーにより説明する。
【０００５】
ＵＳＢは、複数のＵＳＢデバイスを１台のＵＳＢホストに接続する。
ＵＳＢデバイスには２つの型（タイプ）、すなわち、ハブ（hub）とファンクション(function)がある。ハブは、ＵＳＢのための追加的な接続ポイントを提供するデバイスである。ファンクションは、システムに対して、例えば、ＩＳＤＮ接続、デジタルジョイスティック、スピーカ、キーボード、マウス等の機能を提供する。ハブおよびファンクションについて、説明すると、ＵＳＢ物理インターコネクトは、層状スター・トポロジー（tiered star topology）であり、ハブは各スターの中心に位置する。各ワイヤセグメントは、（ａ）ホストとハブとの間、（ｂ）ホストとファンクションとの間、または（ｃ）ハブと他のハブもしくはファンクションとの間、のポイント・ツー・ポイント接続である。
【０００６】
図８は、ＵＳＢシステムのトポロジーを示す。このＵＳＢシステムはホスト１０を有する。ホスト機器１０には２つの接続ポイントであるポート１とポート２がある。ポート２はワイヤセグメント２８によりファンクション２９に接続されている。ポート１はワイヤセグメント１８によりハブ１に接続されている。 ハブ１は５個のポート２０を有する。これらのポートの１つに対して、ワイヤセグメント２４によりファンクション２２が接続されている。同様に、ハブ２とハブ３も、ハブ１のポートに接続されている。ハブ２またはハブ３のポートには種々のファンクション（例えばファンクション３０、３２等）が接続されている。
【０００７】
どのようなＵＳＢシステム上にも１つのホストが存在する。ホストコンピュータシステムに対するＵＳＢインタフェースは、ホストコントローラと呼ばれる。ホストコントローラは、ハードウエア、ファームウエア、またはソフトウエアの組み合わせで具現化される。ルートハブはホストシステムに内蔵され、１個ないし複数個の接続ポイントを提供する。接続ポイントはポートと呼ばれている。デバイスエンドポイントとは、ホストとＵＳＢデバイスの間の通信フローにおけるソースまたはシンクであるＵＳＢデバイス（ハブまたはファンクション）の一意に識別可能な部分をいう。２つ以上のエンドポイント（End Point）を有するＵＳＢファンクションの一例はデータ／ボイスモデムである。これには、ボイスパケット用の１つのエンドポイントと、データパケット用の１つのエンドポイントが存在する。
【０００８】
すべてのバストランザクションは、最大３つのパケットの転送に関わる。各トランザクションは、ホストコントローラがスケジュールに従って、トランザクションのタイプおよび方向を示すＵＳＢパケット、ＵＳＢデバイスアドレスおよびエンドポイント番号を送信するときに、開始される。このパケットはトークンパケット(Token Packet）と呼ばれる。このトークンパケットにより指定されるＵＳＢデバイスは、当該トークンパケットの適当なアドレスフィールドをデコードすることにより、自分自身を選択する。あるトランザクションにおいて、データは、ホストからデバイスへ、またはデバイスからホストへ転送される。データ転送の方法はトークンパケットに指定される。トランザクションのソースは、ついで、その転送が成功したか否かを示すデータパケットを送信する。トランザクションのタイプは４種類ある。１つはコントロール転送でデバイスのコンフィギュレーション（configuration）またはメッセージ転送に使われる。２つめはインタラプト転送でマウス・キーボードなどのイベント通知に使われる。３つめはバルク転送で大量転送を行うために使われる。４つめはアイソクロナス転送でデータの転送の確実性を犠牲にしてデリバリ時間を保証する転送方式である。
【０００９】
ホスト以外の最大１２６個のファンクションを識別するため各ファンクションにアドレスを割り付ける。このアドレスを割り付ける方法はエニュメレーションと呼ばれる。ファンクションのアドレスの初期値は０であり、ホストはハブの構成するトポロジーに従って各バスのポートを１つずつ有効にしながらアドレス０のデバイスに対してセットアップ動作を行いアドレスを割り付ける。エニュメレーション等、ファンクションをセットアップするためにホストからファンクションのエンドポイント０に対しコントロール転送によりホストからのリクエストが送られる。このようなファンクションに対するリクエストはデバイスリクエストと呼ばれ、とくにＵＳＢの仕様書では標準デバイスリクエストが定められている。各ファンクションはどのような機能を有するかをディスクリプタ（Descriptor）と呼ばれる形式で保持している。ホストはDescriptorの内容をデバイスリクエストで読みだし、その内容を変更、選択することができる。最終的にSET-CONFIGURATIONデバイスリクエストでファンクションの構成を選択した時点でファンクションのエンドポイント０以外の構成が決定され、それらの機能を使うことができるようになる。
【００１０】
【非特許文献１】「Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  ２．０」  ＵＳＢ  Ｉｍｐｌｅｍｅｎｔｅｒｓ  Ｆｏｒｕｍ、Ｉｎｃ
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、ＵＳＢ規格では、１台のホストに取り付けるデバイスは最大で１２７台であって、それ以上の台数のデバイスを接続することはできない。
【００１２】
本発明の目的は、上述の如き従来の問題点に鑑み、ＵＳＢの規格を遵守しながら、１２８台以上のデバイスを１台のホストに取り付けることができるようにすることにある。
【００１３】
本発明の更に他の目的、本発明によって得られる具体的な利点は、以下に説明される実施の形態の説明から一層明らかにされる。
【課題を解決するための手段】
【００１４】
すなわち、本発明は、ＵＳＢケーブルを介してＵＳＢホスト機器と接続されるＵＳＢ機器であって、１つの上流側ポートと、複数の下流側ポートと、下流側ポートに接続された各ＵＳＢデバイスとエニュメレーションを行い、各種エンドポイント情報を集め、集めた各種エンドポイント情報を基に、上流側ポートからＵＳＢホスト機器に返すエニュメレーション情報を作成し、下流側ポートにされている各ＵＳＢデバイスをまとめた１台のＵＳＢデバイスとして認識させるエニュメレーション処理部とを備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ＵＳＢの規格を遵守しながら、１２８台以上のデバイスを１台のホストに取り付けることができ、大規模なＵＳＢシステムを構築することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、本発明は以下の例に限定されるものではなく、本発明の要旨を逸脱しない範囲で、任意に変更可能であることは言うまでもない。
【００１７】
本発明は、例えば図１に示すように、１台のＵＳＢホスト機器１１０と多数のＵＳＢデバイス１２０からなるＵＳＢシステム１００に適用される。
【００１８】
このＵＳＢシステム１００では、１台のＵＳＢホスト機器１１０にＵＳＢケーブルを介して接続される１２７台のＵＳＢデバイス１２０の１つとして本発明に係るＵＳＢ機器１２０Ａが接続されており、このＵＳＢ機器１２０Ａにさらに複数台のＵＳＢデバイス１２０がＵＳＢケーブルを介して接続されている。
【００１９】
ＵＳＢホスト機器１１０は、アプリケーション１１１、ＵＳＢ規格に準拠したＵＳＢドライバ１１２により操作されるＵＳＢホストコントローラ１１３、ＵＳＢ規格で規定されている差動信号を解釈するＳＩＥ(Serial Interface Engine)１１４などからなる。ＵＳＢドライバ１１２は、ＵＳＢホストコントローラ１１３により、上記ＳＩＥ１１４に設けられた下流側ポート１１４Ａに接続されている各ＵＳＢデバイス１２０とエニュメレーション（enumeration：デバイス認識処理）を行い、各種エンドポイント情報を集めて作成したエニュメレーション情報に従って、各ＵＳＢデバイス１２０の機能を使うことができるようにする。アプリケーション１１１はＵＳＢドライバ１１２を介して各ＵＳＢデバイス１２０と通信を行い機能を達成する。
【００２０】
また、ＵＳＢデバイス１２０は、それぞれＵＳＢを搭載した、マウス、キーボード、プリンタ、コピー機、スキャナ等の各種周辺機器であり、それらの基本的な構成を図２に示すように、デバイス機能１２１、ＵＳＢ規格に準拠したＵＳＢドライバ１２２により操作されるＵＳＢデバイスコントローラ１２３、ＵＳＢ規格で規定されている差動信号を解釈するＳＩＥ(Serial Interface Engine)１２４などからなる。ＵＳＢデバイスコントローラ１２３は、ＵＳＢドライバ１２２により管理されており、デバイス機能１２１よりアクセスされる。デバイス機能１２１は、例えばプリンタの場合、プリント動作及びプリンタ情報管理を行う部分であり、ＵＳＢドライバ１２２を介してＵＳＢホスト機器１１０側からのプリント要求等の動作指示やデータを送受信し所望の動作を行う。
【００２１】
さらに、ＵＳＢ機器１２０Ａは、図３に示すように、デバイス機能１３１、ＵＳＢ規格に準拠したＵＳＢドライバ１３２により操作されるＵＳＢデバイスコントローラ１３３及びＵＳＢホストコントローラ１３４、ＵＳＢ規格で規定されている差動信号を解釈するＳＩＥ(Serial Interface Engine)１３５、１３６などからなる。
【００２２】
上記ＳＩＥ１３５は、上流側ポート１３５Ａが設けられており、上記ＵＳＢホスト機器１１０にＵＳＢケーブルを介して接続される。
【００２３】
また、上記ＳＩＥ１３６は、下流側ポート１３６Ａが設けられており、ＵＳＢデバイス１２０がＵＳＢケーブルを介して接続される。上記ＳＩＥ１３６は、複数設けられており、このＵＳＢ機器１２０Ａには、複数のＵＳＢデバイス機器１２０を接続することができる。
【００２４】
そして、このＵＳＢ機器１２０Ａにおいて、ＵＳＢドライバ１３２は、ＵＳＢホストコントローラ１３４により、上記ＳＩＥ１３６に設けられた下流側ポート１３６Ａに接続されているＵＳＢデバイス１２０とエニュメレーション（enumeration：デバイス認識処理）を行い、各種エンドポイント情報を集めて作成したエニュメレーション情報を作成し、作成したエニュメレーション情報に基づいて、ＵＳＢデバイスコントローラ１３３により、各下流側ポート１３６Ａにされている各ＵＳＢデバイス１２０をまとめた１台のＵＳＢデバイス（Composite device）として上記ＳＩＥ１３５に設けられた上流側ポート１３５Ａに接続されているＵＳＢホスト機器１１０に認識させるエニュメレーション処理部１４０として機能する。
【００２５】
すなわち、このＵＳＢ機器１２０Ａは、ＵＳＢケーブルを介してＵＳＢホスト機器１１０と接続されるＵＳＢデバイスであって、１つの上流側ポート１３５Ａと、複数の下流側ポート１３６Ａと、下流側ポート１３６Ａに接続された各ＵＳＢデバイス１２０とエニュメレーションを行い、各種エンドポイント情報を集め、集めた各種エンドポイント情報を基に、上流側ポート１３５ＡからＵＳＢホスト機器１１０に返すエニュメレーション情報を作成し、下流側ポート１３６Ａにされている各ＵＳＢデバイス１２０をまとめた１台のＵＳＢデバイスとして認識させるエニュメレーション処理部１４０とを備えることにより、例えば、複数の下流側ポートに、ＵＳＢデバイス１２０として、プリンタとスキャナとＵＳＢメモリをつないだ場合、ＵＳＢホスト機器にはプリンタとスキャナとＵＳＢメモリの複合機として認識される。
【００２６】
ここで、ホスト機器１１０がプリンタに対して印刷を行った場合、このＵＳＢ機器は、ホスト機器から送られてくるデータを受信し、それをプリンタに対し、自分がホストＰＣであるかのように振舞って送信する。
【００２７】
また、上記ＵＳＢ機器１２０Ａは、ＵＳＢデバイス１２０を挿抜した際には、上流側ポート１３５Ａを一旦リセット（論理的に切断）し、新しいデバイス構成で作成したエニュメレーション情報を準備して、再度接続を行うことで、Hot Plugを実現している。
【００２８】
なお、ＵＳＢ機器１２０Ａのエニュメレーション処理部１４０は、例えば図４に示すように、ＦＩＦＯ１４１を複数個備えており、下流側ポート１３６Ａに接続されたＵＳＢデバイス１２０の各エンドポイントへのパイプとして動作する。制御用ＣｏｎｔｒｏｌのＦＩＦＯはひとつしかないので、内容からどのＵＳＢデバイス宛のものか判断し、割り振る。
【００２９】
エニュメレーション情報は、例えば図５乃至図７に示すように、下流側ポート１３６Ａに接続されたＵＳＢデバイス１２０のインターフェースディスクリプタ・バルク出力エンドポイントディスクリプタ・バルク入力エンドポイントディスクリプタ・インタラプト入力エンドポイントディスクリプタ等を含むコンフィギュレーション情報からなり、下流側ポート１３６Ａに対してＵＳＢデバイス１２０が挿抜されるたびに、再作成される。
【００３０】
ここで、図５は、コンフィギュレーションディスクリプターの内容を示し、図６はＵＳＢデバイス１のコンフィギュレーション情報を示し、さらに、図７はＵＳＢデバイス２のコンフィギュレーション情報を示している。
【００３１】
このような構成のＵＳＢシステム１００では、ＵＳＢの規格を遵守しながら、１２８台以上のＵＳＢデバイス１２０を１台のＵＳＢホスト機器１１０に取り付けることができ、大規模なＵＳＢシステムを構築することが可能となる。
【図面の簡単な説明】
【００３２】
【図１】本発明を適用した１台のＵＳＢホスト機器と多数のＵＳＢデバイスからなるＵＳＢシステムの構成を示すブロック図である。
【図２】上記ＵＳＢデバイスの基本的な構成を示すブロック図である。
【図３】本発明に係るＵＳＢ機器の構成例を示すブロック図である。
【図４】上記ＵＳＢ機器のエニュメレーション処理部の機能を模式的に示す図である。
【図５】コンフィギュレーションディスクリプターの内容を示す図である。
【図６】ＵＳＢデバイス１のコンフィギュレーション情報を示す図である。
【図７】ＵＳＢデバイス２のコンフィギュレーション情報を示す図である。
【図８】ＵＳＢシステムのトポロジーを示す図である。
【符号の説明】
【００３３】
１００  ＵＳＢシステム、
１１０  ＵＳＢホスト機器、
１１１  アプリケーション、
１１２  ＵＳＢドライバ、
１１３  ＵＳＢホストコントローラ、
１１４  ＳＩＥ、
１１４Ａ  下流側ポート、
１２０  ＵＳＢデバイス
１２０Ａ  ＵＳＢ機器、
１２１  デバイス機能、
１２２  ＵＳＢドライバ、
１２３  ＵＳＢデバイスコントローラ、
１２４  ＳＩＥ、
１３１  デバイス機能、
１３２  ＵＳＢドライバ、
１３３  ＵＳＢデバイスコントローラ、
１３４  ＵＳＢホストコントローラ、
１３５、１３６ＳＩＥ  、
１３５Ａ  上流側ポート、
１３６Ａ  下流側ポート、
１４０  エニュメレーション処理部、
１４１  ＦＩＦＯ
【図１】
2008134698.tif 000003
【図２】
2008134698.tif 000004
【図３】
2008134698.tif 000005
【図４】
2008134698.tif 000006
【図５】
2008134698.tif 000007
【図６】
2008134698.tif 000008
【図７】
2008134698.tif 000009
【図８】
2008134698.tif 000010