説明

USB機器

【課題】 USBの規格を遵守しながら、128台以上のデバイスを1台のホストに取り付けることができるようにする。
【解決手段】 1つの上流側ポート135Aと、複数の下流側ポート136Aと、下流側ポート136Aに接続された各USBデバイス120とエニュメレーションを行い、各種エンドポイント情報を集め、集めた各種エンドポイント情報を基に、上流側ポート135AからUSBホスト機器110に返すエニュメレーション情報を作成し、下流側ポート136Aにされている各USBデバイス120をまとめた1台のUSBデバイスとして認識させるエニュメレーション処理部140とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、USBケーブルを介してUSBホスト機器と接続されるUSB機器に関する。
【背景技術】
【0002】
近年、サーバやPC(パーソナルコンピュータ)に接続するキーボードやマウス等の入出力装置のインタフェースとして、USB(Universal Serial Bus)が知られている。
【0003】
USB(Universal Serial Bus)は、パーソナルコンピュータ(PC)および通信(telecom)業界のリーダー達により開発された周辺バス仕様である。USBは、コンピュータ周辺機器のプラグ アンド プレイ機能をPCボックスの外部に引き出す。この仕様によって、専用のコンピュータスロットにカードを装着し、周辺機器がPCに着脱される度にシステムを再構成する、という必要性をなくす。USBを搭載したパーソナルコンピュータは、コンピュータ周辺機器が物理的に接続された途端に、リブートしたりセットアップを走らせたりする必要なく、当該コンピュータ周辺機器を自動的に構成することができる。USBでは、モニタやキーボードのような周辺機器を追加的なプラグインサイトまたはハブとして機能させながら、1台のコンピュータ上で同時に127台までの多数のデバイスを走らせることができる(例えば、非特許文献1参照)。
【0004】
ここで、USB仕様の内容の概略をUSBバストポロジーにより説明する。
【0005】
USBは、複数のUSBデバイスを1台のUSBホストに接続する。
USBデバイスには2つの型(タイプ)、すなわち、ハブ(hub)とファンクション(function)がある。ハブは、USBのための追加的な接続ポイントを提供するデバイスである。ファンクションは、システムに対して、例えば、ISDN接続、デジタルジョイスティック、スピーカ、キーボード、マウス等の機能を提供する。ハブおよびファンクションについて、説明すると、USB物理インターコネクトは、層状スター・トポロジー(tiered star topology)であり、ハブは各スターの中心に位置する。各ワイヤセグメントは、(a)ホストとハブとの間、(b)ホストとファンクションとの間、または(c)ハブと他のハブもしくはファンクションとの間、のポイント・ツー・ポイント接続である。
【0006】
図8は、USBシステムのトポロジーを示す。このUSBシステムはホスト10を有する。ホスト機器10には2つの接続ポイントであるポート1とポート2がある。ポート2はワイヤセグメント28によりファンクション29に接続されている。ポート1はワイヤセグメント18によりハブ1に接続されている。 ハブ1は5個のポート20を有する。これらのポートの1つに対して、ワイヤセグメント24によりファンクション22が接続されている。同様に、ハブ2とハブ3も、ハブ1のポートに接続されている。ハブ2またはハブ3のポートには種々のファンクション(例えばファンクション30、32等)が接続されている。
【0007】
どのようなUSBシステム上にも1つのホストが存在する。ホストコンピュータシステムに対するUSBインタフェースは、ホストコントローラと呼ばれる。ホストコントローラは、ハードウエア、ファームウエア、またはソフトウエアの組み合わせで具現化される。ルートハブはホストシステムに内蔵され、1個ないし複数個の接続ポイントを提供する。接続ポイントはポートと呼ばれている。デバイスエンドポイントとは、ホストとUSBデバイスの間の通信フローにおけるソースまたはシンクであるUSBデバイス(ハブまたはファンクション)の一意に識別可能な部分をいう。2つ以上のエンドポイント(End Point)を有するUSBファンクションの一例はデータ/ボイスモデムである。これには、ボイスパケット用の1つのエンドポイントと、データパケット用の1つのエンドポイントが存在する。
【0008】
すべてのバストランザクションは、最大3つのパケットの転送に関わる。各トランザクションは、ホストコントローラがスケジュールに従って、トランザクションのタイプおよび方向を示すUSBパケット、USBデバイスアドレスおよびエンドポイント番号を送信するときに、開始される。このパケットはトークンパケット(Token Packet)と呼ばれる。このトークンパケットにより指定されるUSBデバイスは、当該トークンパケットの適当なアドレスフィールドをデコードすることにより、自分自身を選択する。あるトランザクションにおいて、データは、ホストからデバイスへ、またはデバイスからホストへ転送される。データ転送の方法はトークンパケットに指定される。トランザクションのソースは、ついで、その転送が成功したか否かを示すデータパケットを送信する。トランザクションのタイプは4種類ある。1つはコントロール転送でデバイスのコンフィギュレーション(configuration)またはメッセージ転送に使われる。2つめはインタラプト転送でマウス・キーボードなどのイベント通知に使われる。3つめはバルク転送で大量転送を行うために使われる。4つめはアイソクロナス転送でデータの転送の確実性を犠牲にしてデリバリ時間を保証する転送方式である。
【0009】
ホスト以外の最大126個のファンクションを識別するため各ファンクションにアドレスを割り付ける。このアドレスを割り付ける方法はエニュメレーションと呼ばれる。ファンクションのアドレスの初期値は0であり、ホストはハブの構成するトポロジーに従って各バスのポートを1つずつ有効にしながらアドレス0のデバイスに対してセットアップ動作を行いアドレスを割り付ける。エニュメレーション等、ファンクションをセットアップするためにホストからファンクションのエンドポイント0に対しコントロール転送によりホストからのリクエストが送られる。このようなファンクションに対するリクエストはデバイスリクエストと呼ばれ、とくにUSBの仕様書では標準デバイスリクエストが定められている。各ファンクションはどのような機能を有するかをディスクリプタ(Descriptor)と呼ばれる形式で保持している。ホストはDescriptorの内容をデバイスリクエストで読みだし、その内容を変更、選択することができる。最終的にSET-CONFIGURATIONデバイスリクエストでファンクションの構成を選択した時点でファンクションのエンドポイント0以外の構成が決定され、それらの機能を使うことができるようになる。
【0010】
【非特許文献1】「Universal Serial Bus Specification Revision 2.0」 USB Implementers Forum、Inc
【発明の開示】
【発明が解決しようとする課題】
【0011】
ところで、USB規格では、1台のホストに取り付けるデバイスは最大で127台であって、それ以上の台数のデバイスを接続することはできない。
【0012】
本発明の目的は、上述の如き従来の問題点に鑑み、USBの規格を遵守しながら、128台以上のデバイスを1台のホストに取り付けることができるようにすることにある。
【0013】
本発明の更に他の目的、本発明によって得られる具体的な利点は、以下に説明される実施の形態の説明から一層明らかにされる。
【課題を解決するための手段】
【0014】
すなわち、本発明は、USBケーブルを介してUSBホスト機器と接続されるUSB機器であって、1つの上流側ポートと、複数の下流側ポートと、下流側ポートに接続された各USBデバイスとエニュメレーションを行い、各種エンドポイント情報を集め、集めた各種エンドポイント情報を基に、上流側ポートからUSBホスト機器に返すエニュメレーション情報を作成し、下流側ポートにされている各USBデバイスをまとめた1台のUSBデバイスとして認識させるエニュメレーション処理部とを備えることを特徴とする。
【発明の効果】
【0015】
本発明によれば、USBの規格を遵守しながら、128台以上のデバイスを1台のホストに取り付けることができ、大規模なUSBシステムを構築することが可能となる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、本発明は以下の例に限定されるものではなく、本発明の要旨を逸脱しない範囲で、任意に変更可能であることは言うまでもない。
【0017】
本発明は、例えば図1に示すように、1台のUSBホスト機器110と多数のUSBデバイス120からなるUSBシステム100に適用される。
【0018】
このUSBシステム100では、1台のUSBホスト機器110にUSBケーブルを介して接続される127台のUSBデバイス120の1つとして本発明に係るUSB機器120Aが接続されており、このUSB機器120Aにさらに複数台のUSBデバイス120がUSBケーブルを介して接続されている。
【0019】
USBホスト機器110は、アプリケーション111、USB規格に準拠したUSBドライバ112により操作されるUSBホストコントローラ113、USB規格で規定されている差動信号を解釈するSIE(Serial Interface Engine)114などからなる。USBドライバ112は、USBホストコントローラ113により、上記SIE114に設けられた下流側ポート114Aに接続されている各USBデバイス120とエニュメレーション(enumeration:デバイス認識処理)を行い、各種エンドポイント情報を集めて作成したエニュメレーション情報に従って、各USBデバイス120の機能を使うことができるようにする。アプリケーション111はUSBドライバ112を介して各USBデバイス120と通信を行い機能を達成する。
【0020】
また、USBデバイス120は、それぞれUSBを搭載した、マウス、キーボード、プリンタ、コピー機、スキャナ等の各種周辺機器であり、それらの基本的な構成を図2に示すように、デバイス機能121、USB規格に準拠したUSBドライバ122により操作されるUSBデバイスコントローラ123、USB規格で規定されている差動信号を解釈するSIE(Serial Interface Engine)124などからなる。USBデバイスコントローラ123は、USBドライバ122により管理されており、デバイス機能121よりアクセスされる。デバイス機能121は、例えばプリンタの場合、プリント動作及びプリンタ情報管理を行う部分であり、USBドライバ122を介してUSBホスト機器110側からのプリント要求等の動作指示やデータを送受信し所望の動作を行う。
【0021】
さらに、USB機器120Aは、図3に示すように、デバイス機能131、USB規格に準拠したUSBドライバ132により操作されるUSBデバイスコントローラ133及びUSBホストコントローラ134、USB規格で規定されている差動信号を解釈するSIE(Serial Interface Engine)135、136などからなる。
【0022】
上記SIE135は、上流側ポート135Aが設けられており、上記USBホスト機器110にUSBケーブルを介して接続される。
【0023】
また、上記SIE136は、下流側ポート136Aが設けられており、USBデバイス120がUSBケーブルを介して接続される。上記SIE136は、複数設けられており、このUSB機器120Aには、複数のUSBデバイス機器120を接続することができる。
【0024】
そして、このUSB機器120Aにおいて、USBドライバ132は、USBホストコントローラ134により、上記SIE136に設けられた下流側ポート136Aに接続されているUSBデバイス120とエニュメレーション(enumeration:デバイス認識処理)を行い、各種エンドポイント情報を集めて作成したエニュメレーション情報を作成し、作成したエニュメレーション情報に基づいて、USBデバイスコントローラ133により、各下流側ポート136Aにされている各USBデバイス120をまとめた1台のUSBデバイス(Composite device)として上記SIE135に設けられた上流側ポート135Aに接続されているUSBホスト機器110に認識させるエニュメレーション処理部140として機能する。
【0025】
すなわち、このUSB機器120Aは、USBケーブルを介してUSBホスト機器110と接続されるUSBデバイスであって、1つの上流側ポート135Aと、複数の下流側ポート136Aと、下流側ポート136Aに接続された各USBデバイス120とエニュメレーションを行い、各種エンドポイント情報を集め、集めた各種エンドポイント情報を基に、上流側ポート135AからUSBホスト機器110に返すエニュメレーション情報を作成し、下流側ポート136Aにされている各USBデバイス120をまとめた1台のUSBデバイスとして認識させるエニュメレーション処理部140とを備えることにより、例えば、複数の下流側ポートに、USBデバイス120として、プリンタとスキャナとUSBメモリをつないだ場合、USBホスト機器にはプリンタとスキャナとUSBメモリの複合機として認識される。
【0026】
ここで、ホスト機器110がプリンタに対して印刷を行った場合、このUSB機器は、ホスト機器から送られてくるデータを受信し、それをプリンタに対し、自分がホストPCであるかのように振舞って送信する。
【0027】
また、上記USB機器120Aは、USBデバイス120を挿抜した際には、上流側ポート135Aを一旦リセット(論理的に切断)し、新しいデバイス構成で作成したエニュメレーション情報を準備して、再度接続を行うことで、Hot Plugを実現している。
【0028】
なお、USB機器120Aのエニュメレーション処理部140は、例えば図4に示すように、FIFO141を複数個備えており、下流側ポート136Aに接続されたUSBデバイス120の各エンドポイントへのパイプとして動作する。制御用ControlのFIFOはひとつしかないので、内容からどのUSBデバイス宛のものか判断し、割り振る。
【0029】
エニュメレーション情報は、例えば図5乃至図7に示すように、下流側ポート136Aに接続されたUSBデバイス120のインターフェースディスクリプタ・バルク出力エンドポイントディスクリプタ・バルク入力エンドポイントディスクリプタ・インタラプト入力エンドポイントディスクリプタ等を含むコンフィギュレーション情報からなり、下流側ポート136Aに対してUSBデバイス120が挿抜されるたびに、再作成される。
【0030】
ここで、図5は、コンフィギュレーションディスクリプターの内容を示し、図6はUSBデバイス1のコンフィギュレーション情報を示し、さらに、図7はUSBデバイス2のコンフィギュレーション情報を示している。
【0031】
このような構成のUSBシステム100では、USBの規格を遵守しながら、128台以上のUSBデバイス120を1台のUSBホスト機器110に取り付けることができ、大規模なUSBシステムを構築することが可能となる。
【図面の簡単な説明】
【0032】
【図1】本発明を適用した1台のUSBホスト機器と多数のUSBデバイスからなるUSBシステムの構成を示すブロック図である。
【図2】上記USBデバイスの基本的な構成を示すブロック図である。
【図3】本発明に係るUSB機器の構成例を示すブロック図である。
【図4】上記USB機器のエニュメレーション処理部の機能を模式的に示す図である。
【図5】コンフィギュレーションディスクリプターの内容を示す図である。
【図6】USBデバイス1のコンフィギュレーション情報を示す図である。
【図7】USBデバイス2のコンフィギュレーション情報を示す図である。
【図8】USBシステムのトポロジーを示す図である。
【符号の説明】
【0033】
100 USBシステム、
110 USBホスト機器、
111 アプリケーション、
112 USBドライバ、
113 USBホストコントローラ、
114 SIE、
114A 下流側ポート、
120 USBデバイス
120A USB機器、
121 デバイス機能、
122 USBドライバ、
123 USBデバイスコントローラ、
124 SIE、
131 デバイス機能、
132 USBドライバ、
133 USBデバイスコントローラ、
134 USBホストコントローラ、
135、136SIE 、
135A 上流側ポート、
136A 下流側ポート、
140 エニュメレーション処理部、
141 FIFO

【特許請求の範囲】
【請求項1】
USBケーブルを介してUSBホスト機器と接続されるUSB機器であって、
1つの上流側ポートと、
複数の下流側ポートと、
下流側ポートに接続された各USBデバイスとエニュメレーションを行い、各種エンドポイント情報を集め、集めた各種エンドポイント情報を基に、上流側ポートからUSBホスト機器に返すエニュメレーション情報を作成し、下流側ポートにされている各USBデバイスをまとめた1台のUSBデバイスとして認識させるエニュメレーション処理部と
を備えることを特徴とする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


【公開番号】特開2008−134698(P2008−134698A)
【公開日】平成20年6月12日(2008.6.12)
【国際特許分類】
【出願番号】特願2006−318581(P2006−318581)
【出願日】平成18年11月27日(2006.11.27)
【出願人】(000006150)京セラミタ株式会社 (13,173)
【Fターム(参考)】