(57)【要約】【課題】ＵＳＢ仕様に基づく初期化処理により同一のデバイス機器に対して個々のホスト機器が独立して付与するデバイス固有番号をホスト機器単位に管理することで、それぞれのホスト機器から当該デバイス機器へデータ通信すること。【解決手段】複数のホスト機器と接続される複数のＵＳＢアップポートと、デバイス機器に接続される少なくとも１つのＵＳＢダウンポートとを有するＵＳＢ接続装置であって、ＵＳＢダウンポートに接続しているデバイス機器を当該ＵＳＢ接続装置が識別するためのデバイス識別情報と、第１のホスト機器が第１のＵＳＢアップポートに接続された場合に第１のホスト機器がデバイス機器を特定するための第１のデバイス特定情報と、第２のホスト機器が第２のＵＳＢアップポートに接続された場合に第２のホスト機器がデバイス機器を特定するための第２のデバイス特定情報とを関連付けて格納するデバイス情報記憶部を有する。【選択図】図１
2009276828.tif 000002
【特許請求の範囲】
【請求項１】
第１のホスト機器が接続する第１のＵＳＢ（Universal Serial Bus）アップポートと、
第２のホスト機器が接続する第２のＵＳＢアップポートと、
デバイス機器が接続する少なくとも１つのＵＳＢダウンポートと、
前記第１のＵＳＢアップポート又は前記第２のＵＳＢアップポートを介して受信したデータ通信要求を前記ＵＳＢダウンポートへ送信する制御部と、
前記第１のホスト機器が前記第１のＵＳＢアップポートに接続された場合に前記第１のホスト機器が前記デバイス機器を特定するための第１のデバイス特定情報と、前記第２のホスト機器が前記第２のＵＳＢアップポートに接続された場合に前記第２のホスト機器が前記デバイス機器を特定するための第２のデバイス特定情報と、前記制御部が前記デバイス機器を識別するためのデバイス識別情報とを関連付けてデバイス対応情報として格納するデバイス情報記憶部と、
を備えることを特徴とするＵＳＢ接続装置。
【請求項２】
前記制御部は、前記デバイス対応情報を前記デバイス情報記憶部へ登録する登録手段をさらに備え、
前記登録手段は、前記第１のホスト機器が前記第１のＵＳＢアップポートに接続された場合に、前記第１のデバイス特定情報を前記第１のＵＳＢアップポートを介して受信し、前記第１のデバイス特定情報と前記デバイス識別情報とを関連付けて前記デバイス情報記憶部に格納し、前記第２のホスト機器が前記第２のＵＳＢアップポートに接続された場合に、前記第２のデバイス特定情報を前記第２のＵＳＢアップポートを介して受信し、前記第２のデバイス特定情報と前記デバイス識別情報とを関連付けて前記デバイス情報記憶部に格納することを特徴とする請求項１に記載のＵＳＢ接続装置。
【請求項３】
前記制御部は、
前記第１のホスト機器から前記第１のデバイス特定情報を含んだデータ通信要求を受信し、当該データ通信要求に含まれる前記第１のデバイス特定情報に関連付けられた前記デバイス識別情報を前記デバイス情報記憶部から取得し、前記デバイス識別情報に基づき、当該デバイス機器へ前記データ通信要求を送信する送信手段と、
前記データ通信要求に基づいて前記第１のホスト機器と当該デバイス機器とがデータ通信を行えない場合に、当該データ通信要求が送信できない旨を前記第１のホスト機器へ通知する通知手段と、をさらに備える請求項１又は２に記載のＵＳＢ接続装置。
【請求項４】
前記通知手段は、当該デバイス機器と前記第２のホスト機器とがデータ通信中であるか否かを判定し、データ通信中であると判定された場合、当該データ通信要求が送信できない旨を前記第１のホスト機器へ通知することを特徴とする請求項３に記載のＵＳＢ接続装置。
【請求項５】
前記通知手段は、前記ＵＳＢダウンポートの使用状態により、当該デバイス機器と前記第２のホスト機器とがデータ通信中であるか否かを判定することを特徴とする請求項４に記載のＵＳＢ接続装置。
【請求項６】
前記通知手段は、前記送信手段により当該デバイス機器へ前記データ通信要求を送信後に当該デバイス機器からの正常応答が受信されない場合、当該データ通信要求が送信できない旨を前記第１のホスト機器へ通知することを特徴とする請求項３又は４に記載のＵＳＢ接続装置。
【請求項７】
前記ＵＳＢ接続装置は、前記ホスト機器からの前記データ通信要求を記憶するバッファをさらに備え、
前記制御部は、前記第１又は第２のホスト機器から前記第１又は第２のデバイス特定情報を含んだデータ通信要求に基づき、前記データ通信要求を前記デバイス機器へ送信する送信手段をさらに備え、
前記送信手段は、前記デバイス機器への送信が失敗した場合に、前記バッファに格納されたデータ通信要求を当該デバイス機器へ再送することを特徴とする請求項１又は２に記載のＵＳＢ接続装置。
【請求項８】
前記送信手段は、当該デバイス機器と前記第２のホスト機器とがデータ通信中であるか否かを判定し、データ通信中であると判定された場合、当該データ通信が終了した後に、前記バッファに格納されたデータ通信要求を当該デバイス機器へ送信することを特徴とする請求項７に記載のＵＳＢ接続装置。
【請求項９】
前記制御部は、前記データ通信要求を前記バッファへ格納する際に前記バッファに空き領域が存在しない場合、当該データ通信要求が送信できない旨を前記データ通信要求の要求元の前記ホスト機器へ通知する通知手段をさらに備える請求項７又は８に記載のＵＳＢ接続装置。
【請求項１０】
前記通知手段は、前記バッファに前記データ通信要求を格納した後、当該データ通信要求が送信できる旨を前記データ通信要求の要求元の前記ホスト機器へ通知することを特徴とする請求項９に記載のＵＳＢ接続装置。
【請求項１１】
第１のホスト機器が接続する第１のＵＳＢアップポートと、第２のホスト機器が接続する第２のＵＳＢアップポートと、デバイス機器が接続する少なくとも１つのＵＳＢダウンポートとを有するＵＳＢ接続装置におけるＵＳＢ接続方法であって、
前記第１のホスト機器が前記第１のＵＳＢアップポートに接続された場合に、前記第１のＵＳＢアップポートを介して受信される前記デバイス機器を特定する第１のデバイス特定情報と、前記ＵＳＢ接続装置が前記デバイス機器を識別するデバイス識別情報とを関連付けて記憶部に格納するステップと、
前記第２のホスト機器が前記第２のＵＳＢアップポートに接続された場合に、前記第２のＵＳＢアップポートを介して受信される前記デバイス機器を特定する第２のデバイス特定情報と、前記デバイス識別情報とを関連付けて前記記憶部に格納するステップと、
前記第１又は第２のホスト機器から前記第１又は第２のデバイス特定情報を含んだデータ通信要求を受信するステップと、
前記データ通信要求を受信するステップで受信したデータ通信要求に含まれる前記第１又は第２のデバイス特定情報に関連付けられた前記デバイス識別情報を前記記憶部から取得するステップと、
前記取得するステップで取得したデバイス識別情報により識別された前記デバイス機器へ当該データ通信要求を送信する送信ステップと、を備えるＵＳＢ接続方法。
【請求項１２】
前記送信ステップにより前記第１のホスト機器と当該デバイス機器とがデータ通信を行えない場合に、当該データ通信要求が送信できない旨を前記第１のホスト機器へ通知する通知ステップと、をさらに備える請求項１１に記載のＵＳＢ接続方法。
【請求項１３】
前記通知ステップは、当該デバイス機器と前記第２のホスト機器とがデータ通信中であるか否かを判定し、データ通信中であると判定された場合、当該データ通信要求が送信できない旨を前記第１のホスト機器へ通知することを特徴とする請求項１２に記載のＵＳＢ接続方法。
【請求項１４】
前記通知ステップは、前記ＵＳＢダウンポートの使用状態により、当該デバイス機器と前記第２のホスト機器とがデータ通信中であるか否かを判定することを特徴とする請求項１３に記載のＵＳＢ接続方法。
【請求項１５】
前記通知ステップは、前記送信ステップにより当該デバイス機器へ前記データ通信要求を送信後に当該デバイス機器からの正常応答が受信されない場合、当該データ通信要求が送信できない旨を前記第１のホスト機器へ通知することを特徴とする請求項１２又は１３に記載のＵＳＢ接続方法。
【請求項１６】
前記送信ステップは、前記デバイス機器への送信が失敗した場合に、前記ホスト機器からの前記データ通信要求を記憶するバッファに格納されたデータ通信要求を当該デバイス機器へ再送することを特徴とする請求項１１に記載のＵＳＢ接続方法。
【請求項１７】
前記送信ステップは、当該デバイス機器と前記第２のホスト機器とがデータ通信中であるか否かを判定し、データ通信中であると判定された場合、当該データ通信が終了した後に、前記バッファに格納されたデータ通信要求を当該デバイス機器へ送信することを特徴とする請求項１６に記載のＵＳＢ接続方法。
【請求項１８】
前記データ通信要求を前記バッファへ格納する際に前記バッファに空き領域が存在しない場合、当該データ通信要求が送信できない旨を前記データ通信要求の要求元の前記ホスト機器へ通知する通知ステップをさらに備える請求項１６又は１７に記載のＵＳＢ接続方法。
【請求項１９】
前記通知ステップは、前記バッファに前記データ通信要求を格納した後、当該データ通信要求が送信できる旨を前記データ通信要求の要求元の前記ホスト機器へ通知することを特徴とする請求項１８に記載のＵＳＢ接続方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のホスト機器に接続される複数のＵＳＢ（Universal Serial Bus）アップポートと、デバイス機器に接続される少なくとも１つのＵＳＢダウンポートとを有するＵＳＢ接続装置、及びＵＳＢ接続方法に関し、特に複数のホスト機器とデバイス機器とが接続された際に、ＵＳＢ仕様に基づく初期化処理により同一のデバイス機器に対して複数のホスト機器各々が独立して付与するデバイス固有番号を用いて、それぞれのホスト機器から当該デバイス機器へのデータ通信を行うＵＳＢ接続装置、及びＵＳＢ接続方法に関する。
【背景技術】
【０００２】
昨今、多くのパーソナルコンピュータや携帯端末機器などには、ＵＳＢインタフェースが備えられている。パーソナルコンピュータなどのセット装置でなくとも、例えば、アプリケーションプロセッサと呼ばれるＣＰＵ（Central Processing Unit）やビデオアクセラレータなどを１チップに実装したＬＳＩ（Large Scale Integration）にも、ＵＳＢインタフェースが実装されている。このように、ＵＳＢは多くのセット機器やＬＳＩを含む半導体集積回路装置全般に備えられているインタフェースである。
【０００３】
ＵＳＢインタフェースの特徴は、前述のとおり多くの機器などで採用されていること、データ転送プロトコルなどの仕様（以下、ＵＳＢ仕様）が厳格に規定されていること、及び当該仕様がＷＥＢ上で無償公開（非特許文献１）されていること、が挙げられる。これにより、公開されている仕様を満たすＵＳＢインタフェースをセット機器や半導体集積回路装置に実装することで、多くの機器に容易に接続でき、データの相互通信が可能になるという利点がある。
【０００４】
ＵＳＢ仕様によれば、あるホスト機器とあるデバイス機器をＵＳＢ接続するとき、該ホスト機器と該デバイス機器の間で初期化処理が行われる。ＵＳＢ仕様では、１つのホスト機器に対して複数のデバイス機器を接続するのは許可されているため、該初期化処理において、該ホスト機器は、該複数のデバイス機器のそれぞれに対してデバイス機器を識別するデバイス固有番号を付与するエニュメレーション処理を行う。該ホスト機器と該デバイス機器の間のデータ通信等は、デバイス固有番号に基づき行われる。
【０００５】
しかし、ＵＳＢ仕様は、１つのデバイス（スレーブ）機器に対して複数のホスト（マスタ）機器を接続することには対応していないという課題を有する。例えば、ＵＳＢ仕様では、１つのデータ記憶端末を同時に複数のパーソナルコンピュータで共有できない。このような、ＵＳＢ仕様における課題を解決するために、例えば、特許文献１や特許文献２に示される提案がなされている。
【０００６】
特許文献１では、ＵＳＢ仕様に基づくデータ通信を用いてホスト機器間でネットワーク通信を行うシステム及び、装置ハブが開示されている。当該システムは、複数のホスト機器とデバイス機器との間に装置ハブを備え、また、当該装置ハブは、ホスト機器とデバイス機器とを１対１に接続するサブハブと、複数のサブハブ間をネットワーク接続する仮想ネットワークアダプタとを有する。これにより、複数のホスト機器をデバイス機器と接続することが可能とするものである。
【０００７】
また、特許文献２では、複数のホスト機器でデバイス機器を切り替え操作なしに共有することができるＵＳＢハブが開示されている。特許文献２における複数のホスト機器は、送信先のデバイス機器のアドレスを付加したパケットを送信し、デバイス機器は、自身に割り当てられたアドレス宛のパケットを受信する。また、特許文献２におけるＵＳＢハブは、複数のホスト機器を接続する第１のポートと、デバイス機器を接続する第２のポートと、第１のポート及び第２のポートから入力されるパケットデータを一時保持するＦＩＦＯメモリと、を備える。そして、当該ＵＳＢハブは、ＦＩＦＯメモリに保持されたパケットデータに付加されたアドレスに基づき、ホスト機器とデバイス機器との接続を確立する。
【非特許文献１】"Universal Serial Bus Specification"、[online]、USB Implementers Forum, Inc. 、[平成２０年３月２７日検索]、インターネット＜ＵＲＬ：http://www.usb.org/＞
【特許文献１】特開２０００−３１５１８４号公報
【特許文献２】特開２００３−２５６３５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１、及び特許文献２では、複数のホスト機器によりＵＳＢハブを介してデバイス機器を共有することができるが、ＵＳＢ仕様に基づく初期化処理により複数のホスト機器が各々デバイス機器に付与するデバイス固有番号（アドレス）を複数のホスト機器の間でどのように共有するかについては、開示されていない。そのため、特許文献１、及び特許文献２には、複数のホスト機器が同一のデバイス機器に対して異なるデバイス固有番号を付与してしまう可能性があるという問題点がある。
【０００９】
複数のホスト機器がＵＳＢ仕様に基づいて１つのデバイス機器を共有する場合、複数のホスト機器間で交互に該デバイス機器に対して接続及び切断を行う必要がある。例えば、複数のパーソナルコンピュータである記憶端末を共有する場合、一方のパーソナルコンピュータと該記憶端末をＵＳＢ仕様に基づいて接続し、データ通信を終えた後に、当該パーソナルコンピュータと該記憶端末とのＵＳＢ接続を解除し、その後に、他方のパーソナルコンピュータと該記憶端末を接続する必要がある。その際、接続の度に、各々のホスト機器は、初期化処理により該デバイス機器にデバイス固有番号を付与する。
【００１０】
そして、特許文献１、及び特許文献２のように、ＵＳＢ仕様における初期化処理を考慮せずに、デバイス機器に接続されたＵＳＢハブに対して複数のホスト機器を接続する場合、ホスト機器ごとに付与されるデバイス機器のデバイス固有番号が一致する保証がないため、一方のホスト機器から当該デバイス機器へアクセス可能であっても、他方のホスト機器からは、ＵＳＢハブを介して接続されているにも関わらず、アクセスできない可能性がある。
【００１１】
例えば、このような課題が発生する原理の概念図を図１１に示す。まず、図１１（ａ）では、ＵＳＢハブに接続された第１のホスト機器１０−１が、当該ＵＳＢハブに接続されたデバイス機器に対して初期化処理によりデバイス固有番号２２１として「ａ」を付与する。そして、ＵＳＢハブは、第１のホスト機器１０−１から受信したデバイス固有番号２２１をデバイス情報記憶部２２へ格納する（Ｓ１１１）。次に、図１１（ｂ）では、ＵＳＢハブに接続された第２のホスト機器１０−２が、当該ＵＳＢハブに接続されたデバイス機器、すなわち、図１１（ａ）と同一のデバイス機器に対して初期化処理によりデバイス固有番号２２２として「ｂ」を付与する。そして、ＵＳＢハブは、第２のホスト機器１０−２から受信したデバイス固有番号２２２をデバイス情報記憶部２２へ格納する（Ｓ１１２）。このとき、デバイス情報記憶部２２において、デバイス固有番号２２１からデバイス固有番号２２２へ上書きされることとなる。この状態で、第１のホスト機器１０−１から当該デバイス機器へアクセスを行う場合、第１のホスト機器１０−１は、デバイス固有番号２２１である「ａ」によりアクセス要求を行う。そして、ＵＳＢハブは、図１１（ｃ）に示すように、デバイス固有番号２２１をデバイス情報記憶部２２の中から検索を行う（Ｓ１１３）。しかし、このとき、デバイス情報記憶部２２の中からデバイス固有番号２２１が検索されないため、第１のホスト機器１０−１から当該デバイス機器へ正常にアクセスが行えない可能性がある。
【課題を解決するための手段】
【００１２】
本発明にかかるＵＳＢ接続装置は、第１のホスト機器が接続する第１のＵＳＢアップポートと、第２のホスト機器が接続する第２のＵＳＢアップポートと、デバイス機器が接続する少なくとも１つのＵＳＢダウンポートと、前記第１のＵＳＢアップポート又は前記第２のＵＳＢアップポートを介して受信したデータ通信要求を前記ＵＳＢダウンポートへ送信する制御部と、前記第１のホスト機器が前記第１のＵＳＢアップポートに接続された場合に前記第１のホスト機器が前記デバイス機器を特定するための第１のデバイス特定情報と、前記第２のホスト機器が前記第２のＵＳＢアップポートに接続された場合に前記第２のホスト機器が前記デバイス機器を特定するための第２のデバイス特定情報と、前記制御部が前記デバイス機器を識別するためのデバイス識別情報とを関連付けてデバイス対応情報として格納するデバイス情報記憶部とを備える。
【００１３】
本発明にかかるＵＳＢ接続方法は、第１のホスト機器が接続する第１のＵＳＢアップポートと、第２のホスト機器が接続する第２のＵＳＢアップポートと、デバイス機器が接続する少なくとも１つのＵＳＢダウンポートとを有するＵＳＢ接続装置におけるＵＳＢ接続方法である。前記第１のホスト機器が前記第１のＵＳＢアップポートに接続された場合に、前記第１のＵＳＢアップポートを介して受信される前記デバイス機器を特定する第１のデバイス特定情報と、前記ＵＳＢ接続装置が前記デバイス機器を識別するデバイス識別情報とを関連付けて記憶部に格納するステップと、前記第２のホスト機器が前記第２のＵＳＢアップポートに接続された場合に、前記第２のＵＳＢアップポートを介して受信される前記デバイス機器を特定する第２のデバイス特定情報と、前記デバイス識別情報とを関連付けて前記記憶部に格納するステップと、前記第１又は第２のホスト機器から前記第１又は第２のデバイス特定情報を含んだデータ通信要求を受信するステップと、前記データ通信要求を受信するステップで受信したデータ通信要求に含まれる前記第１又は第２のデバイス特定情報に関連付けられた前記デバイス識別情報を前記記憶部から取得するステップと、前記取得するステップで取得したデバイス識別情報により識別される前記デバイス機器へ当該データ通信要求を送信する送信ステップと、を備える。
【００１４】
上述した構成、及び方法によれば、本発明にかかるＵＳＢ接続装置は、当該ＵＳＢ接続装置に接続されたデバイス機器を当該ＵＳＢ接続装置が識別するためのデバイス識別情報と、当該ＵＳＢ接続装置に接続された第１及び第２のホスト機器それぞれが当該デバイス機器に対して行うエニュメレーションにより付与される第１及び第２のデバイス固有番号とのそれぞれと関連付けを行う。
【００１５】
ここで、上述した本発明の解決手段による作用効果の概念図を図１２に示す。まず、第１のホスト機器１０−１は、当該ＵＳＢ接続装置に接続されたデバイス機器に対して初期化処理を行う。このとき、図１２（ａ）では、図１１（ａ）とは異なり、ＵＳＢ接続装置は、第１のホスト機器１０−１から受信したデバイス固有番号２２１をデバイス情報記憶部２２−１へ格納する（Ｓ１２１）。次に、第２のホスト機器１０−２は、当該ＵＳＢ接続装置に接続されたデバイス機器に対して初期化処理を行う。このとき、図１２（ｂ）では、図１１（ｂ）とは異なり、ＵＳＢ接続装置は、第２のホスト機器１０−２から受信したデバイス固有番号２２２をデバイス情報記憶部２２−２へ格納する（Ｓ１２２）。この状態で、第１のホスト機器１０−１から当該デバイス機器へアクセスを行う場合、第１のホスト機器１０−１は、デバイス固有番号２２１である「ａ」によりアクセス要求を行う。そして、ＵＳＢ接続装置は、図１２（ｃ）に示すように、デバイス固有番号２２１をデバイス情報記憶部２２−１の中から検索を行う（Ｓ１２３）。このとき、デバイス情報記憶部２２−１の中からデバイス固有番号２２１が検索されるため、当該ＵＳＢ接続装置は、デバイス固有番号２２１に関連付けられたデバイス識別情報から当該ＵＳＢ接続装置に接続されているデバイス機器を判別し、第１のホスト機器１０−１と当該デバイス機器とのデータ通信の中継を行うことができる。同様に、第２のホスト機器１０−２から当該デバイス機器へアクセスを行う場合、ＵＳＢ接続装置は、デバイス情報記憶部２２−２の中からデバイス固有番号２２２を検索することで、デバイス固有番号２２２に関連付けられたデバイス識別情報から当該ＵＳＢ接続装置に接続されているデバイス機器を判別し、第２のホスト機器１０−２と当該デバイス機器とのデータ通信の中継を行うことができる。そのため、１つのデバイス機器に対し、個々のホスト機器が付与するデバイス固有番号の一致のいかんにかかわらず、ＵＳＢ仕様に基づいて複数のホスト機器が同一のデバイス機器を共有することができる。
【発明の効果】
【００１６】
本発明により、ＵＳＢ仕様に基づく初期化処理において同一のデバイス機器に対して個々のホスト機器が独立して付与するデバイス固有番号をホスト機器単位に管理することで、それぞれのホスト機器から当該デバイス機器へのデータ通信を実現することができるＵＳＢ接続装置、及び、ＵＳＢ接続方法を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１８】
発明の実施の形態１．
図１０は、本発明の実施の形態１にかかるＵＳＢ接続装置の一例であるマルチホストＵＳＢハブの機器構成図を示すブロック図である。図１０に示すマルチホストＵＳＢハブ２０は、複数のホスト機器１０−１、１０−２、・・・、及び１０−ｎと、複数のデバイス機器３０−１、３０−２、・・・、及び３０−ｍとの間のデータ通信をＵＳＢ仕様に基づいて行うためのＵＳＢハブ装置であり、半導体集積回路装置である。
【００１９】
ここで、ホスト機器１０−１、１０−２、・・・、及び１０−ｎは、ＵＳＢ仕様に基づいて任意のデバイス機器へアクセスし、データ通信を行うためのＵＳＢインタフェース（不図示）を備えた機器である。そのため、例えば、ホスト機器１０−１は、当該ＵＳＢインタフェースに任意のデバイス機器が接続された場合に、ＵＳＢ仕様に基づいた初期化処理によりエニュメレーション処理が行われ、当該接続されたデバイス機器を特定するためのデバイス固有番号を付与し、ホスト機器１０−１に当該デバイス固有番号を格納する。また、以降、ホスト機器１０−１は、当該デバイス機器がＵＳＢインタフェースに接続されている間、当該デバイス固有番号に基づいて当該デバイス機器とのデータ通信を行う。ホスト機器１０−１、１０−２、・・・、及び１０−ｎは、例えば、パーソナルコンピュータや携帯端末機器等であればよい。尚、本発明の実施の形態１にかかるホスト機器の台数は、２台以上であればよい。
【００２０】
また、デバイス機器３０−１、３０−２、・・・、及び３０−ｍは、ＵＳＢ仕様に基づく入出力を受け付け、応答を行うためのＵＳＢインタフェース（不図示）を備えた機器である。そのため、例えば、デバイス機器３０−１は、当該ＵＳＢインタフェースに任意のホスト機器、又はＵＳＢハブ装置が接続され、接続先により正常にエニュメレーションされた後に、当該接続先からのデータ通信要求に応じて入出力の受付、応答を行うことができる。デバイス機器３０−１、３０−２、・・・、及び３０−ｍは、例えば、ハードディスク装置、プリンタ装置等であればよい。尚、本発明の実施の形態１にかかるデバイス機器の台数は、１台以上であればよい。
【００２１】
マルチホストＵＳＢハブ２０は、ホスト機器１０−１、１０−２、・・・、及び１０−ｎのそれぞれと接続するためのＵＳＢアップポートインタフェース２１−１、２１−２、・・・、及び２１−ｎと、デバイス機器３０−１、３０−２、・・・、及び３０−ｍのそれぞれと接続するためのＵＳＢダウンポートインタフェース２４−１、２４−２、・・・、及び２４−ｍと、デバイス情報記憶部２２−１、２２−２、・・・、及び２２−ｎと、ルート制御装置２３とを備える。
【００２２】
ＵＳＢアップポートインタフェース２１−１、２１−２、・・・、及び２１−ｎは、ＵＳＢ仕様に基づくインタフェース端子であり、ホスト機器１０−１、１０−２、・・・、及び１０−ｎのそれぞれが備えるＵＳＢインタフェースと接続され、接続されたホスト機器１０−１、１０−２、・・・、及び１０−ｎとデバイス機器との通信を中継する。尚、本発明の実施の形態１にかかるマルチホストＵＳＢハブ２０におけるＵＳＢアップポートインタフェースの数は、２つ以上であればよい。
【００２３】
ＵＳＢダウンポートインタフェース２４−１、２４−２、・・・、及び２４−ｍは、ＵＳＢ仕様に基づくインタフェース端子であり、デバイス機器３０−１、３０−２、・・・、及び３０−ｍのそれぞれが備えるＵＳＢインタフェースと接続され、接続されたデバイス機器３０−１、３０−２、・・・、及び３０−ｍとホスト機器との通信を中継する。尚、本発明の実施の形態１にかかるマルチホストＵＳＢハブ２０におけるＵＳＢダウンポートインタフェースの数は、１つ以上であればよい。
【００２４】
デバイス情報記憶部２２−１、２２−２、・・・、及び２２−ｎは、それぞれＵＳＢアップポートインタフェース２１−１、２１−２、・・・、及び２１−ｎに対応し、対応する各ホスト機器のエニュメレーションにより付与されるデバイス固有情報と、マルチホストＵＳＢハブ２０がＵＳＢダウンポートインタフェースに接続されたデバイス機器を識別するためのデバイス識別情報との対応を関連付けたデバイス対応情報を記憶する記憶装置である。ここで、デバイス識別情報とは、マルチホストＵＳＢハブ２０がＵＳＢダウンポートインタフェース２４−１、２４−２、・・・、及び２４−ｍのいずれかに接続されたデバイス機器へアクセスするために用いられる情報である。デバイス識別情報は、例えば、マルチホストＵＳＢハブ２０がいずれかのＵＳＢダウンポートインタフェースに接続されたデバイス機器に対してエニュメレーションにより付与するデバイス固有情報であるか、又は、ＵＳＢダウンポートインタフェース２４−１、２４−２、・・・、及び２４−ｍのポートアドレス情報等であればよい。尚、デバイス識別情報がポートアドレス情報である場合、予めデバイス情報記憶部２２−１、２２−２、・・・、及び２２−ｎに格納されていればよい。
【００２５】
例えば、デバイス情報記憶部２２−１は、ＵＳＢアップポートインタフェース２１−１を介して取得されるホスト機器１０−１により付与されたデバイス固有情報及び当該デバイス固有情報との対応付けのためのデバイス対応情報を記憶する。
【００２６】
尚、本発明の実施の形態１にかかるマルチホストＵＳＢハブ２０におけるデバイス情報記憶部２２−１、２２−２、・・・、及び２２−ｎは、物理的に一つの記憶装置とし、論理的に分割してＵＳＢアップポートインタフェース２１−１、２１−２、・・・、及び２１−ｎに関するデバイス対応情報を記憶してもよい。または、デバイス情報記憶部２２−１、２２−２、・・・、及び２２−ｎが物理的に一つの記憶装置である場合、マルチホストＵＳＢハブ２０がデバイス機器を識別するためのデバイス識別情報と、ホスト機器１０−１、１０−２、・・・、及び１０−ｎのそれぞれにより付与されるデバイス固有情報と、を対応付けて一括管理してもよい。
【００２７】
ルート制御装置２３は、複数のホスト機器と、複数のデバイス機器とのデータ通信を制御する制御装置である。具体的には、ルート制御装置２３は、ＵＳＢアップポートインタフェース２１−１、２１−２、・・・、及び２１−ｎにホスト機器が接続されたことを検知し、エニュメレーション処理を実行し、付与されたデバイス固有番号を該当するデバイス情報記憶部２２−１、２２−２、・・・、又は２２−ｎに格納する。また、ルート制御装置２３は、ＵＳＢアップポートインタフェース２１−１、２１−２、・・・、又は２１−ｎを介してデータ通信要求を受信し、デバイス情報記憶部２２−１、２２−２、・・・、又は２２−ｎを参照し、対応するＵＳＢダウンポートインタフェースへ送信する。また、ルート制御装置２３は、ホスト機器１０−１、１０−２、・・・、又は１０−ｎからのデータ通信要求を、対応するデバイス機器３０−１、３０−２、・・・、又は３０−ｍのいずれかへ送信できない場合、要求元のホスト機器へその旨を通知する。尚、ルート制御装置２３は、ＵＳＢダウンポートインタフェース２４−１、２４−２、・・・、及び２４−ｍにデバイス機器が接続されたことを検知し、エニュメレーション処理を実行し、付与されたデバイス固有番号をデバイス情報記憶部２２−１、２２−２、・・・、及び２２−ｎに格納するようにしてもよい。
【００２８】
以下では、本発明の実施の形態１にかかるマルチホストＵＳＢハブにおけるエニュメレーション処理、及びデータ通信処理を例示する。ここでは、図１に２台のホスト機器と２台のデバイス機器とをＵＳＢ接続するマルチホストＵＳＢハブ１０３の一実施例の機器構成図を示すブロック図を示す。尚、図１の各構成要素については、図１０の一部分として対応関係が明らかなため、説明は省略する。
【００２９】
図２は、本発明の実施の形態１にかかるマルチホストＵＳＢハブへのホスト機器、及びデバイス機器の接続の流れを示すフローチャート図である。ここでは、図１のマルチホストＵＳＢハブ１０３にデバイス機器１１１、デバイス機器１１２、ホスト機器１０１、及びホスト機器１０２が接続されていない状態とする。
【００３０】
まず、マルチホストＵＳＢハブ１０３にデバイス機器１１１が接続される（Ｓ２０１）。具体的には、ＵＳＢダウンポートインタフェース１０９にデバイス機器１１１が接続される。
【００３１】
次に、マルチホストＵＳＢハブ１０３がデバイス機器１１１に対して、エニュメレーション処理を実行する（Ｓ２０２）。このとき、ルート制御装置１０８は、デバイス機器１１１がＵＳＢダウンポートインタフェース１０９に接続されたことを検知し、デバイス機器１１１に対してデバイス固有番号を付与し、デバイス情報記憶部１０６、及びデバイス情報記憶部１０７へ格納する。
【００３２】
続いて、マルチホストＵＳＢハブ１０３にデバイス機器１１２が接続される（Ｓ２０３）。具体的には、ＵＳＢダウンポートインタフェース１１０にデバイス機器１１２が接続される。
【００３３】
次に、マルチホストＵＳＢハブ１０３がデバイス機器１１２に対して、ステップＳ２０２と同様に、エニュメレーション処理を実行する（Ｓ２０４）。このとき、ルート制御装置１０８は、デバイス機器１１２がＵＳＢダウンポートインタフェース１１０に接続されたことを検知し、デバイス機器１１１に対してデバイス固有番号を付与し、デバイス情報記憶部１０６、及びデバイス情報記憶部１０７へ格納する。
【００３４】
その後、マルチホストＵＳＢハブ１０３にホスト機器１０１が接続される（Ｓ２０５）。具体的には、ＵＳＢアップポートインタフェース１０４にホスト機器１０１が接続される。
【００３５】
次に、ホスト機器１０１がマルチホストＵＳＢハブ１０３に対して、エニュメレーション処理を実行する（Ｓ２０６）。尚、ホスト機器１０１におけるエニュメレーション処理は、ＵＳＢ仕様に示される従来の機能で実現される処理であるため、説明を省略する。
【００３６】
そして、ホスト機器１０１がデバイス機器１１１、及びデバイス機器１１２に対して、エニュメレーション処理を実行する（Ｓ２０７）。このとき、ルート制御装置１０８は、ホスト機器１０１からＵＳＢアップポートインタフェース１０４を介して受信するデバイス機器１１１、及びデバイス機器１１２に対するデバイス固有番号と、マルチホストＵＳＢハブ１０３により付与されたデバイス機器１１１、及びデバイス機器１１２に対するデバイス固有番号とを関連付けてデバイス情報記憶部１０６に格納する。尚、ステップＳ２０７の処理の詳細は、図３に後述する。
【００３７】
続いて、マルチホストＵＳＢハブ１０３にホスト機器１０２が接続される（Ｓ２０８）。具体的には、ＵＳＢアップポートインタフェース１０５にホスト機器１０２が接続される。
【００３８】
次に、ホスト機器１０２がマルチホストＵＳＢハブ１０３に対して、ステップＳ２０６と同様に、エニュメレーション処理を実行する（Ｓ２０９）。尚、ホスト機器１０２におけるエニュメレーション処理は、ＵＳＢ仕様に示される従来の機能で実現される処理であるため、説明を省略する。
【００３９】
そして、ホスト機器１０２がデバイス機器１１１、及びデバイス機器１１２に対して、ステップＳ２０７と同様に、エニュメレーション処理を実行する（Ｓ２１０）。このとき、ルート制御装置１０８は、ホスト機器１０２からＵＳＢアップポートインタフェース１０５を介して受信するデバイス機器１１１、及びデバイス機器１１２に対するデバイス固有番号と、マルチホストＵＳＢハブ１０３により付与されたデバイス機器１１１、及びデバイス機器１１２に対するデバイス固有番号とを関連付けてデバイス情報記憶部１０７に格納する。尚、ステップＳ２１０の処理の詳細は、ステップＳ２０７と同様であるため、説明を省略する。
【００４０】
このとき、ホスト機器１０１によりデバイス機器１１１に対して付与されるデバイス固有番号と、ホスト機器１０２によりデバイス機器１１１に対して付与されるデバイス固有番号とは、それぞれＵＳＢ仕様に基づいて独自に付与されるため、それぞれのデバイス固有番号が同じであるか否かは保障されない。つまり、これらのデバイス固有番号は、同一のデバイス機器に対して別々の番号が付与される可能性がある。
【００４１】
尚、図２においては、マルチホストＵＳＢハブ１０３に接続される順番が、デバイス機器１１１、デバイス機器１１２、ホスト機器１０１、ホスト機器１０２という、全てのデバイス機器が接続された後に、全てのホスト機器が接続される例であるが、これに限定されない。すなわち、マルチホストＵＳＢハブ１０３に接続される順番は、例えば、全てのホスト機器が接続された後に、全てのデバイス機器が接続されるか、又は、ホスト機器及びデバイス機器が交互に接続される若しくはその他の組み合わせなど、接続される順番は問わない。いずれにしても、デバイス機器、及びホスト機器の組み合わせがマルチホストＵＳＢハブ１０３に接続された段階で、ステップＳ２０７、又はＳ２１０に相当する処理、すなわち、ホスト機器からデバイス機器へのエニュメレーション処理が実行されればよい。
【００４２】
尚、図２におけるステップＳ２０２及びＳ２０４は、実行されなくてもよい。その場合、デバイス識別情報をポートアドレス情報とし、予めデバイス情報記憶部２２−１、２２−２、・・・、及び２２−ｎに格納されていればよい。
【００４３】
図３は、本発明の実施の形態１にかかるホスト機器がデバイス機器に対してエニュメレーション処理を行う際のマルチホストＵＳＢハブの処理を示すフローチャート図である。尚、以下では、図２のステップＳ２０７、つまり、ホスト機器１０１によるデバイス機器１１１、及びデバイス機器１１２に対するエニュメレーション処理を対象として説明する。また、図２のステップＳ２１０、つまり、ホスト機器１０２によるデバイス機器１１１、及びデバイス機器１１２に対するエニュメレーション処理についても図３のホスト機器１０１がホスト機器１０２に置き換わった処理が行われるため、説明を省略する。すなわち、図３の処理は、ホスト機器、及びデバイス機器の組み合わせ及び台数はこれに限定されない。また、図３に示すホスト機器がデバイス機器に対してエニュメレーション処理を行う際のマルチホストＵＳＢハブの処理は、予め、デバイス情報記憶部１０６に任意のデバイス機器におけるデバイス識別情報が格納されている（例えば、図２のステップＳ２０２又はＳ２０４の処理が完了している）場合において、最低限、１台のホスト機器、及び１台のデバイス機器の間で、エニュメレーション処理が行われれば良い。例えば、ホスト機器１０１とデバイス機器１１１の場合、下記のステップＳ３０１乃至Ｓ３０３が実行されればよい。
【００４４】
図３において、まず、マルチホストＵＳＢハブ１０３は、ホスト機器１０１へデバイス機器１１１の接続通知を行う（Ｓ３０１）。具体的には、ルート制御装置１０８は、ＵＳＢアップポートインタフェース１０４を介して、デバイス機器１１１が接続されていることを示す信号を送信する。
【００４５】
次に、ホスト機器１０１は、マルチホストＵＳＢハブ１０３へデバイス機器１１１についてのデバイス固有番号を送信する（Ｓ３０２）。例えば、ホスト機器１０１は、デバイス機器１１１について、デバイス固有番号「１０」を付与し、ＵＳＢアップポートインタフェース１０４を介してマルチホストＵＳＢハブ１０３へ送信する。尚、ホスト機器１０１におけるエニュメレーション処理は、ＵＳＢ仕様に示される従来の機能で実現される処理であるため、詳細な説明を省略する。
【００４６】
そして、マルチホストＵＳＢハブ１０３は、デバイス機器１１１に対しホスト機器１０１が付与したデバイス固有番号と、マルチホストＵＳＢハブ１０３が付与したデバイス固有番号とを関連付けてデバイス情報記憶部１０６に格納する（Ｓ３０３）。具体的には、ルート制御装置１０８は、ＵＳＢアップポートインタフェース１０４を介して、デバイス機器１１１のデバイス固有番号が「１０」である旨を受信し、デバイス固有番号「１０」と、マルチホストＵＳＢハブ１０３により付与されたデバイス機器１１１のデバイス固有番号と、を関連付けてデバイス情報記憶部１０６に格納する。
【００４７】
続いて、ステップＳ３０４乃至Ｓ３０６において、ホスト機器１０１によるデバイス機器１１２に対するエニュメレーション処理が行われる。このとき、ホスト機器１０１は、デバイス機器１１２について、デバイス固有番号「１１」を付与するものとする。また、ルート制御装置１０８は、デバイス固有番号「１１」と、マルチホストＵＳＢハブ１０３により付与されたデバイス機器１１２のデバイス固有番号と、を関連付けてデバイス情報記憶部１０６に格納する。尚、ステップＳ３０４乃至Ｓ３０６の処理は、ステップＳ３０１乃至Ｓ３０３の処理と同様であるため、詳細な説明は、省略する。
【００４８】
図４、及び図５は、本発明の実施の形態１にかかるデバイス固有番号の例を示す図である。図４は、ホスト機器１０１からデバイス機器１１１、及びデバイス機器１１２に対するエニュメレーション処理に基づき、図３に示す処理を行うことにより、デバイス情報記憶部１０６に格納されるデバイス固有番号が関連付けられたデバイス対応情報の例である。尚、ホスト機器１０１がデバイス機器１１１、及びデバイス機器１１２に対して付与したデバイス固有番号を、それぞれ「１０」、及び「１１」としている。尚、図４の「デバイス機器１１１のデバイス識別情報」は、例えば、図２のステップＳ２０２において、マルチホストＵＳＢハブ１０３がデバイス機器１１１に対して実行したエニュメレーション処理により付与されたデバイス固有番号である。又は、当該デバイス識別情報は、ＵＳＢダウンポートインタフェース１０９のポートアドレス値等であってもよい。また、図４の「デバイス機器１１２のデバイス識別情報」についても、上述したことと同様である。
【００４９】
また、図５は、ホスト機器１０２からデバイス機器１１１、及びデバイス機器１１２に対するエニュメレーション処理に基づき、図３と同様の処理を行うことにより、デバイス情報記憶部１０７に格納されるデバイス固有番号が関連付けられたデバイス対応情報の例である。尚、ホスト機器１０２がデバイス機器１１１、及びデバイス機器１１２に対して付与したデバイス固有番号を、それぞれ「２０」、及び「２１」としている。尚、図５の「デバイス機器１１１のデバイス識別情報」及び「デバイス機器１１２のデバイス識別情報」は、図４と同様であるため、説明を省略する。
【００５０】
図６は、本発明の実施の形態１にかかるデータ通信処理の流れを示すフローチャート図である。ここでは、上述した図２及び図３の処理が完了した後、ホスト機器１０１とデバイス機器１１１との間でのデータ通信の例を説明する。尚、その他のホスト機器、及びデバイス機器の組み合わせにおいても同様であることは勿論である。
【００５１】
まず、ホスト機器１０１は、デバイス機器１１１に対応するデバイス固有番号を含めたデータ通信要求をマルチホストＵＳＢハブ１０３へ送信する（Ｓ６０１）。このとき、ルート制御装置１０８は、ＵＳＢアップポートインタフェース１０４を介して、ホスト機器１０１においてデバイス機器１１１に対して付与されたデバイス固有番号「１０」を含めたデータ通信要求を受信する。
【００５２】
次に、マルチホストＵＳＢハブ１０３は、受信したデバイス固有番号に対応するデバイス機器１１１のデバイス識別情報を取得する（Ｓ６０２）。具体的には、ルート制御装置１０８は、デバイス情報記憶部１０６を参照し、データ通信要求に含まれるデバイス固有番号「１０」に関連付けられたデバイス固有番号をデバイス情報記憶部１０６から取得する。これにより、マルチホストＵＳＢハブ１０３は、取得したデバイス固有番号からデバイス機器１１１へのアクセスが可能となる。
【００５３】
そして、マルチホストＵＳＢハブ１０３は、デバイス機器１１１が他のホスト機器とデータ通信中であるか否かを判定する（Ｓ６０３）。より具体的には、ルート制御装置１０８は、デバイス機器１１１が接続されているＵＳＢダウンポートインタフェース１０９の使用状態を確認することにより、データ通信中であるか否かを判定してもよい。又は、ルート制御装置１０８は、接続されたデバイス機器へのデータ通信が開始される際にフラグを立て、当該データ通信が終了する際にフラグを下ろすようにし、当該フラグを確認することでデータ通信中であるか否かを判定してもよい。
【００５４】
ステップＳ６０３において、データ通信中と判定された場合、マルチホストＵＳＢハブ１０３は、要求元のホスト機器１０１に対してＮＡＫ（Negative AcKnowledgement）信号を送信する（Ｓ６０４）。これにより、ＮＡＫ信号を受信したホスト機器１０１は、ＵＳＢ仕様に基づき、一定時間待機後に、当該データ通信要求を再送する。
【００５５】
ステップＳ６０３において、データ通信中でないと判定された場合、マルチホストＵＳＢハブ１０３は、デバイス機器１１１に対して当該データ通信要求を送信する（Ｓ６０５）。具体的には、ルート制御装置１０８は、デバイス機器１１１が接続されたＵＳＢダウンポートインタフェース１０９を介して、当該データ通信要求を送信する。そして、デバイス機器１１１は、マルチホストＵＳＢハブ１０３からのデータ通信要求を正常に受信した場合、ＵＳＢ仕様に基づき、ＡＣＫ信号を返信する。
【００５６】
その後、マルチホストＵＳＢハブ１０３は、デバイス機器１１１からＡＣＫ（ACKnowledgement）信号が来たかを確認する（Ｓ６０６）。具体的には、マルチホストＵＳＢハブ１０３は、所定時間内にＵＳＢダウンポートインタフェース１０９経由でＡＣＫ信号が受信できるか否かを確認する。
【００５７】
そして、マルチホストＵＳＢハブ１０３が、デバイス機器１１１からＡＣＫ信号を受信した場合、ホスト機器１０１に対してＡＣＫ信号を送信する（Ｓ６０７）。具体的には、ルート制御装置１０８は、ＵＳＢダウンポートインタフェース１０９を介して、デバイス機器１１１からのＡＣＫ信号を受信し、ＵＳＢアップポートインタフェース１０４を介して、ホスト機器１０１へＡＣＫ信号を送信する。これにより、以降、ホスト機器１０１とデバイス機器１１１との間でのデータ通信を行うことができる。
【００５８】
また、デバイス機器１１１が、何らかの理由、例えば、通信異常、又はデバイス機器１１１の故障等により、正常に当該データ通信要求を受信できなかった場合、所定時間内にＡＣＫ信号は返信されない。この場合、ステップＳ６０６において、マルチホストＵＳＢハブ１０３は、デバイス機器１１１からのＡＣＫ信号が確認できないため、ステップＳ６０４へ進み、その後、当該処理を終了する。
【００５９】
以上のことから、本発明の実施の形態１にかかるマルチホストＵＳＢハブ１０３により、ＵＳＢ仕様に基づく初期化処理により複数のホスト機器から同一のデバイス機器に付与される異なるデバイス固有番号を複数のホスト機器の間で対応付けを行い、それぞれのホスト機器から当該デバイス機器へのデータ通信を実現することができる。
【００６０】
尚、１つのホスト機器のみと接続可能な従来のＵＳＢハブにおいては、他のホスト機器と通信中ということは発生し得ないが、本発明の実施の形態１にかかるマルチホストＵＳＢハブ１０３においては、複数のホスト機器を接続可能であるため、同時に同一のデバイス機器へのデータ通信要求が発生し、データ通信に障害が発生する可能性がある。そのため、ステップＳ６０３の判定を入れることで、同一のデバイス機器へのデータ通信要求を調整することができる。
【００６１】
また、上述したデータ通信要求には、データ通信要求に必要なデータを含むものとする。
【００６２】
発明の実施の形態２．
本発明の実施の形態２では、本発明の実施の形態１にかかるマルチホストＵＳＢハブの変形例を示す。本発明の実施の形態２にかかるマルチホストＵＳＢハブは、ホスト機器から送信されるデータ通信要求を一時的に格納するバッファを備え、当該バッファに格納されたデータ通信要求を再送することで、要求元のホスト機器からの再送を軽減するようにしたものである。尚、以下では、本発明の実施の形態１との違いを中心に説明し、本発明の実施の形態１と同一の構成、及び処理については、説明を省略する。
【００６３】
図７は、本発明の実施の形態２にかかるマルチホストＵＳＢハブの一実施例の機器構成図を示すブロック図である。図７に示すマルチホストＵＳＢハブ７０３は、図１のマルチホストＵＳＢハブ１０３の構成に加え、ＦＩＦＯバッファ７１３、及び、ＦＩＦＯバッファ７１４をさらに備えたものである。その他、マルチホストＵＳＢハブ７０３が備える、ＵＳＢアップポートインタフェース７０４、ＵＳＢアップポートインタフェース７０５、デバイス情報記憶部７０６、デバイス情報記憶部７０７、ルート制御装置７０８、ＵＳＢダウンポートインタフェース７０９、及びＵＳＢダウンポートインタフェース７１０、並びに、ホスト機器７０１、ホスト機器７０２、デバイス機器７１１、及びデバイス機器７１２は、それぞれ図１に対応するものであるため、説明を省略する。
【００６４】
ＦＩＦＯバッファ７１３、及びＦＩＦＯバッファ７１４は、ホスト機器７０１、及びホスト機器７０２から送信されるデータ通信要求、及びデータ通信要求に含まるデータを格納する記憶装置である。
【００６５】
ここで、ＦＩＦＯバッファ７１３は、ＵＳＢアップポートインタフェース１０４を経由して取得されるデータ通信要求及びデータを格納する。また、ＦＩＦＯバッファ７１４は、ＵＳＢアップポートインタフェース１０５を経由して取得されるデータ通信要求及びデータを格納する。
【００６６】
尚、本発明の実施の形態２にかかるマルチホストＵＳＢハブ７０３におけるＦＩＦＯバッファ７１３、及びＦＩＦＯバッファ７１４は、物理的に一つの記憶装置とし、論理的に分割してＵＳＢアップポートインタフェース１０４、及びＵＳＢアップポートインタフェース１０５に関する情報を記憶してもよい。または、ＦＩＦＯバッファ７１３、及びＦＩＦＯバッファ７１４は、ＵＳＢアップポートインタフェース１０４、及びＵＳＢアップポートインタフェース１０５において、共有しても構わない。
【００６７】
ルート制御装置７０８は、ルート制御装置１０８と同様に、複数のホスト機器と、複数のデバイス機器とのデータ通信を制御する制御装置である。ルート制御装置７０８は、ルート制御装置１０８の機能に加え、ホスト機器から受信したデータ通信要求をＦＩＦＯバッファ７１３、又はＦＩＦＯバッファ７１４へ格納し、格納できた場合、又は、ＦＩＦＯバッファ７１３、又はＦＩＦＯバッファ７１４に空き領域がないために格納できなかった場合、要求元のホスト機器へその旨を通知する。また、ルート制御装置７０８は、ＦＩＦＯバッファ７１３、又はＦＩＦＯバッファ７１４に格納されたデータ通信要求を対応するデバイス機器へ送信する。その際、当該デバイス機器が他のホスト機器とデータ通信中の場合、一定時間待機し、再送を行う。
【００６８】
本発明の実施の形態２にかかるホスト機器がデバイス機器に対してエニュメレーション処理を行う際のマルチホストＵＳＢハブの処理は、本発明の実施の形態１と同様であるため、説明を省略する。以下の説明において、ホスト機器７０１から送信されたデバイス機器７１１、及びデバイス機器７１２に対するデバイス固有番号は、それぞれ「１０」、及び「１１」とする。また、ホスト機器７０２から送信されたデバイス機器７１１、及びデバイス機器７１２に対するデバイス固有番号は、それぞれ「２０」、及び「２１」とする。
【００６９】
図８、及び図９は、本発明の実施の形態２にかかるデータ通信処理の流れを示すフローチャート図である。ここでは、上述したエニュメレーション処理が完了した後、ホスト機器７０１とデバイス機器７１１との間でのデータ通信の例を説明する。尚、その他のホスト機器、及びデバイス機器の組み合わせにおいても同様であることは勿論である。
【００７０】
図８において、まず、ホスト機器７０１は、図６のステップＳ６０１と同様に、デバイス機器７１１に対応するデバイス固有番号を含んだデータ通信要求をマルチホストＵＳＢハブ７０３へ送信する（Ｓ８０１）。このとき、ルート制御装置７０８は、ＵＳＢアップポートインタフェース７０４を介して、ホスト機器７０１においてデバイス機器７１１に対して付与されたデバイス固有番号「１０」を含んだデータ通信要求を受信する。
【００７１】
次に、マルチホストＵＳＢハブ７０３は、デバイス情報記憶部７０６に空き領域があるか否かを判定する（Ｓ８０２）。具体的には、ルート制御装置７０８は、当該データ通信要求のパケットサイズに相当する空き領域がＦＩＦＯバッファ７１３に存在するかを確認する。
【００７２】
空き領域があると判定された場合、マルチホストＵＳＢハブ７０３は、当該データ通信要求を格納し、要求元のホスト機器７０１へＡＣＫ信号を送信する（Ｓ８０３）。具体的には、ルート制御装置７０８は、当該データ通信要求のパケット全体をデバイス情報記憶部７０６へ格納し、ＵＳＢアップポートインタフェース７０４を介して、ＡＣＫ信号をホスト機器７０１へ送信する。
【００７３】
空き領域がないと判定された場合、マルチホストＵＳＢハブ７０３は、要求元のホスト機器７０１へＮＡＫ信号を送信する（Ｓ８０４）。これにより、ＮＡＫ信号を受信したホスト機器７０１は、ＵＳＢ仕様に基づき、一定時間待機後に、当該データ通信要求を再送する。
【００７４】
続いて、図９において、マルチホストＵＳＢハブ７０３は、ＦＩＦＯバッファ７１３にデータ通信要求が格納されているか否かを判定する（Ｓ９０１）。具体的には、ルート制御装置７０８は、デバイス情報記憶部７０６を参照し、データ通信要求が格納されているか否かを確認する。
【００７５】
デバイス情報記憶部７０６データ通信要求が格納されていないと判定された場合、マルチホストＵＳＢハブ７０３は、処理を終了する。
【００７６】
また、デバイス情報記憶部７０６データ通信要求が格納されていると判定された場合、マルチホストＵＳＢハブ７０３は、要求先のデバイス機器が他のホスト機器とデータ通信中であるか否かを判定する（Ｓ９０２）。このとき、ルート制御装置７０８は、デバイス情報記憶部７０６に格納されたデータ通信要求を取得し、要求先がデバイス機器７１１であることを確認し、デバイス機器７１１がデータ通信中であるか否かを判定する。データ通信中であるか否かの判定は、図６のステップＳ６０３と同様であればよい。
【００７７】
ステップＳ９０２において、データ通信中と判定された場合、マルチホストＵＳＢハブ７０３は、当該データ通信が終了するまで処理を中断する（Ｓ９０３）。そして、ルート制御装置７０８は、一定時間経過後、再度、ステップＳ９０２を行う。
【００７８】
ステップＳ９０２において、データ通信中でないと判定された場合、マルチホストＵＳＢハブ７０３は、デバイス機器７１１に対して当該データ通信要求を送信する（Ｓ９０４）。また、以降の処理は、図６のステップＳ６０５乃至Ｓ６０７を実行すればよい。これにより、以降、ホスト機器１０１とデバイス機器１１１との間でのデータ通信を行うことができる。但し、図６のステップＳ６０６に相当する処理において、マルチホストＵＳＢハブ７０３がデバイス機器７１１からＡＣＫ信号を受信できない場合、一定時間経過後ステップＳ６０６相当の処理を行い、これを所定の回数繰り返すようにすればよい。そして、所定回数を繰り返した上で、マルチホストＵＳＢハブ７０３がデバイス機器７１１からのＡＣＫ信号が受信できない場合、ホスト機器７０１へＮＡＫ信号を送信するようにしてもよい。
【００７９】
以上のことから、本発明の実施の形態２にかかるマルチホストＵＳＢハブ７０３では、ホスト機器から送信されるデータ通信要求をＦＩＦＯバッファ７１３、及びＦＩＦＯバッファ７１４に格納することにより、要求元のホスト機器へＡＣＫ信号を送信することができ、要求元のホスト機器の再送処理を軽減することができる。また、ＦＩＦＯバッファ７１３、又はＦＩＦＯバッファ７１４に格納されたデータ通信要求をマルチホストＵＳＢハブ７０３が再送することにより、マルチホストＵＳＢハブ７０３とデバイス機器７１１又はデバイス機器７１２の間のデータ通信の問題による要求元のホスト機器の再送処理を軽減することができる。
【００８０】
その他の発明の実施の形態．
尚、上述した本発明の実施の形態１及び２では、ＵＳＢ接続装置の例として、ＵＳＢハブ装置を挙げたが、これに限定されない。本発明にかかるＵＳＢ接続装置は、任意のＵＳＢインタフェースを備えた半導体集積回路装置でも実現可能である。また、本発明の実施の形態１及び２では、ホスト機器としてのパーソナルコンピュータと、デバイス機器としてのポータブルハードディスクのようなストレージ機器との間のデータ通信に限定されず、例えば、ＵＳＢインタフェースを備えたＬＳＩチップ間の接続にも適用可能である。
【００８１】
尚、本発明にかかるＵＳＢ接続装置を用いることで、ＵＳＢ仕様に変更を加えずに、既存のＵＳＢ仕様を実現したホスト機器、及びデバイス機器を当該ＵＳＢ接続機器に接続するだけで、複数のホスト機器からデバイス機器を共有することが可能となる。
【００８２】
尚、ＵＳＢ２．０の仕様には、ＵＳＢ１．１に対して、新たにＰＩＮＧ、ＮＹＥＴというトランザクションの要求、及び応答を行う命令が追加されている。これらを、上述した図６、図８、及び図９に示したフローに適用することも可能である。これについては、従来のＵＳＢの通信操作、すなわち、ＵＳＢ２．０の仕様に開示される通信プロトコルの制御とほぼ同じフローとなるため、説明は省略する。
【００８３】
尚、上述した本発明が解決しようとする課題を回避するために複数ホスト機器間で同じ番号付けがなされるように、前もって通信を行うという手段も考えられる。しかし、当該手段では、ホスト機器におけるＵＳＢインタフェースのソフトウェアドライバなどを改変する必要がある。例えば、特許文献１では仮想ネットワークを構築する提案がなされているが、ソフトウェアドライバなどの改変も必要である。ＵＳＢインタフェースは、上述したようにＵＳＢ仕様がＷＥＢ上で無償公開されており、さらに、多くのホスト機器（例えば、パーソナルコンピュータ等）に標準でインストールされているＯＳ（Operating System）など（例えば、Ｗｉｎｄｏｗｓ（登録商標）  ＸＰ等）において標準的に備えられているＵＳＢドライバを用いて接続できる、という特徴を有する。しかしながら、上述の通り、特許文献１では、専用のソフトウェアドライバを必要とし、単にＵＳＢインタフェースを備えたデバイス機器を接続するだけでは利用することができない。この点において、特許文献１は、ＵＳＢインタフェースを実装した機器と容易に接続できるというＵＳＢインタフェースの特徴を活かしているとは言えない。
【００８４】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施の形態１にかかるマルチホストＵＳＢハブの一実施例の機器構成図を示すブロック図である。
【図２】本発明の実施の形態１にかかるマルチホストＵＳＢハブへのホスト機器、及びデバイス機器の接続の流れを示すフローチャート図である。
【図３】本発明の実施の形態１にかかるホスト機器がデバイス機器に対してエニュメレーション処理を行う際のマルチホストＵＳＢハブの処理を示すフローチャート図である。
【図４】本発明の実施の形態１にかかるデバイス情報記憶部１０６におけるデバイス固有番号及びデバイス対応情報の例を示す図である。
【図５】本発明の実施の形態１にかかるデバイス情報記憶部１０７におけるデバイス固有番号及びデバイス対応情報の例を示す図である。
【図６】本発明の実施の形態１にかかるデータ通信処理の流れを示すフローチャート図である。
【図７】本発明の実施の形態２にかかるマルチホストＵＳＢハブの一実施例の機器構成図を示すブロック図である。
【図８】本発明の実施の形態２にかかるデータ通信処理の流れを示すフローチャート図である。
【図９】本発明の実施の形態２にかかるデータ通信処理の流れを示すフローチャート図である。
【図１０】本発明にかかるＵＳＢ接続装置の一例であるマルチホストＵＳＢハブの機器構成図を示すブロック図である。
【図１１】従来の課題が発生する原理を示す概念図である。
【図１２】本発明の作用効果を示す概念図である。
【符号の説明】
【００８６】
１０−１、１０−２、・・・、１０−ｎ  ホスト機器
２０  マルチホストＵＳＢハブ
２１−１、２１−２、・・・、２１−ｎ  ＵＳＢアップポートインタフェース
２２、２２−１、２２−２、・・・、２２−ｎ  デバイス情報記憶部
２２１  デバイス固有番号
２２２  デバイス固有番号
２３  ルート制御装置
２４−１、２４−２、・・・、２４−ｍ  ＵＳＢダウンポートインタフェース
３０−１、３０−２、・・・、３０−ｍ  デバイス機器
１０１  ホスト機器
１０２  ホスト機器
１０３  マルチホストＵＳＢハブ
１０４  ＵＳＢアップポートインタフェース
１０５  ＵＳＢアップポートインタフェース
１０６  デバイス情報記憶部
１０７  デバイス情報記憶部
１０８  ルート制御装置
１０９  ＵＳＢダウンポートインタフェース
１１０  ＵＳＢダウンポートインタフェース
１１１  デバイス機器
１１２  デバイス機器
７０１  ホスト機器
７０２  ホスト機器
７０３  マルチホストＵＳＢハブ
７０４  ＵＳＢアップポートインタフェース
７０５  ＵＳＢアップポートインタフェース
７０６  デバイス情報記憶部
７０７  デバイス情報記憶部
７０８  ルート制御装置
７０９  ＵＳＢダウンポートインタフェース
７１０  ＵＳＢダウンポートインタフェース
７１１  デバイス機器
７１２  デバイス機器
７１３  ＦＩＦＯバッファ
７１４  ＦＩＦＯバッファ
【図１】
2009276828.tif 000003
【図２】
2009276828.tif 000004
【図３】
2009276828.tif 000005
【図４】
2009276828.tif 000006
【図５】
2009276828.tif 000007
【図６】
2009276828.tif 000008
【図７】
2009276828.tif 000009
【図８】
2009276828.tif 000010
【図９】
2009276828.tif 000011
【図１０】
2009276828.tif 000012
【図１１】
2009276828.tif 000013
【図１２】
2009276828.tif 000014