(57)【要約】      （修正有）【課題】複数のＵＳＢインターフェースを用いて、手軽に、ＵＳＢ規格以上のデータ転送速度を実現する。【解決手段】複数のＵＳＢインターフェースを用いてデータを並列転送する。並列転送するためのデータ振り分け機能と、データ復元のためのデータ並べ替え機能を備える。さらにＵＳＢホスト端末内では、それら複数のＵＳＢインターフェースを１つのＵＳＢクライアント端末としてシミュレーションすることで、複数ＵＳＢインターフェースを用いない従来のユーザＵＳＢドライバ６０２がそのまま使用可能となる。【選択図】図６
2012073686.tif 000002
【特許請求の範囲】
【請求項１】
ホスト端末とこれに接続されるクライアント端末との間のシリアルインターフェースのデータ転送システムにおいて、
前記ホスト端末と前記クライアント端末は、複数のシリアルインターフェースをそれぞれ備え、その複数のシリアルインターフェースで接続され、前記複数のシリアルインターフェースを制御する送受信ソフトウェアをそれぞれ備え、
前記送受信ソフトウェアは、一連のデータ列を分割して前記複数のシリアルインターフェースに並列して送信する機能、及び前記複数のシリアルインターフェースに並列して送信された分割されたデータを受信して前記一連のデータ列に復元する機能を備え、
前記ホスト端末が持つ前記送受信ソフトウェアは、前記送受信ソフトウェアを使用する前記ホスト端末内のソフトウェアに対して、前記複数のシリアルインターフェースを１つのシリアルインターフェースに見せるためのシリアルインターフェースシミュレーション機能を備えていることを特徴とするシリアルインターフェースのデータ転送システム。
【請求項２】
請求項１記載のシリアルインターフェースのデータ転送システムであって、前記送受信ソフトウェアは、順番を示す番号を付して前記一連のデータ列を分割して前記複数のシリアルインターフェースに並列に送信し、前記複数のシリアルインターフェースにて並列に受信したデータに付された番号に従って受信したデータを前記一連のデータ列に復元する機能を備えていることを特徴とするシリアルインターフェースのデータ転送システム。
【請求項３】
請求項１または２記載のシリアルインターフェースのデータ転送システムであって、前記シリアルインターフェースは、ＵＳＢであることを特徴とするシリアルインターフェースのデータ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＵＳＢホストコネクタを持つＵＳＢホスト端末と、複数のＵＳＢクライアントコネクタを持つＵＳＢクライアント端末間のデータ転送方法に関する。
【背景技術】
【０００２】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）は主にコンピュータとその周辺機器を接続する規格である。１９９６年に登場した最初の規格であるＵＳＢ１．０は１２Ｍｂｐｓ（Ｍｅｇａ  Ｂｉｔ  Ｐｅｒ  Ｓｅｃｏｎｄ）の転送性能で、主にマウスやプリンタに使用された。２０００年に登場したＵＳＢ２．０は４８０Ｍｂｐｓの転送性能で、ハードディスクやデジタルカメラ等、幅広いパソコン周辺機器に応用された。そして２００８年に登場したＵＳＢ３．０の転送性能は５Ｇｂｐｓ（Ｇｉｇａ  Ｂｉｔ  Ｐｅｒ  Ｓｅｃｏｎｄ）に達し、超高速ストレージやディスプレイへの応用が期待されている。ＵＳＢは２０１０年、全世界で３０億ユニット以上出荷されると予想されており、他の接続規格を圧倒する普及数を誇る。そして今後もＵＳＢ普及の勢いは衰えないと言われている。
【０００３】
ＵＳＢはその高い普及率と、量産効果から得られるコスト上のメリットから、コンシューマ分野だけではなく、産業分野である計測器等でも使用され始めている。従来、計測器は単独で計測、分析、表示を行っていた。近年、高性能なパソコンが非常に低価格で流通しているので、計測器とパソコンを高速なＵＳＢで接続して、計測器では計測のみを行い、計測した大量のデータをＵＳＢでパソコンに転送して、パソコンで分析と表示を行うと、計測器端末の部品コスト低減、分析や表示に掛かるソフトウェア開発工数削減、さらにパソコン内ソフトウェアを入れ替えるだけで計測器のラインナップを増やせる、というメリットがある。計測器に限らず、医療機器や超高性能カメラといった産業分野で、このようなＵＳＢを応用したシステム構成が採用され始めている。
【０００４】
しかし上記のようなシステム構成を採用する場合、ＵＳＢ３．０であれば５ＧｂｐｓというＵＳＢの転送性能内に、要求速度が必ずしも納まるとは限らない。このように、ＵＳＢ規格以上の転送速度を実現したいというニーズがある。そこで従来の方法として、特許文献１と特許文献２のように、複数のＵＳＢインターフェースを用いてデータを並列転送することで、データ転送速度を向上させる方法がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３０５８８８号公報
【特許文献２】特開２００３−１３１８１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以上のように複数のＵＳＢインターフェースを用いてデータを並列転送することで、データ転送速度を向上させる方法が提案されているが、この従来の方法では、並列転送ソフトウェアを開発者であるユーザが準備する必要がある。この並列転送ソフトウェアの開発とメンテナンスにかかるコストはユーザにとって大きな負担となる。
【０００７】
そこで本発明の目的は、並列転送ソフトウェアと、複数のＵＳＢインターフェースは用いない従来の方法である非並列転送ソフトウェアを共通化できる仕組みを提供することで、ユーザの並列転送ソフトウェアの開発とメンテナンスにかかるコストを低減し、複数のＵＳＢインターフェースを用いてデータを並列転送することで、ＵＳＢ規格以上の転送速度を実現することにある。
【０００８】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
ＤＳＦ（Ｄｅｖｉｃｅ  Ｓｉｍｕｌａｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ）は、Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）を搭載したパソコン上にて、そのパソコンにＵＳＢ等で接続されるクライアント端末のシミュレーションを行う技術である。本来ＤＳＦは、実際のクライアント端末が無い状況でも、クライアント端末のシミュレーションを行うことで、ホスト端末であるパソコン上のクライアント端末制御ソフトウェアを開発するために用いる。このＤＳＦに代表されるようなクライアント端末のシミュレーション技術を、上記課題の解決に応用する。
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１１】
すなわち、代表的なものの概要は、複数のＵＳＢインターフェースを用いてデータを並列転送し、ＵＳＢホスト端末内ではその複数のＵＳＢインターフェースを１つのＵＳＢクライアント端末としてシミュレーションして、ＵＳＢホスト端末内の上位ソフトウェアにアクセスさせる。
【発明の効果】
【００１２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１３】
すなわち、代表的なものによって得られる効果は、ユーザは並列転送ソフトウェアを作ることなく、非並列転送ソフトウェアを用いて、ＵＳＢホスト端末とＵＳＢクライアント端末間において複数のＵＳＢインターフェースを用いてデータを並列転送することで、ＵＳＢ規格以上の転送速度を実現できることである。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係るＵＳＢ端末の接続例を示す構成図である。
【図２】本発明の実施の形態に係る正しくＵＳＢハブを用いたＵＳＢ端末の接続例を示す構成図である。
【図３】本発明の実施の形態に係る好ましくないＵＳＢハブを用いたＵＳＢ端末の接続例を示す構成図である。
【図４】本発明の実施の形態に係るＵＳＢホスト端末のハードウェア構成例を示す構成図である。
【図５】本発明の実施の形態に係るＵＳＢクライアント端末のハードウェア構成例を示す構成図である。
【図６】本発明の実施の形態に係るＵＳＢホスト端末内のソフトウェア構成例を示す構成図である。
【図７】本発明の実施の形態に係るＵＳＢクライアント端末内のソフトウェア構成例を示す構成図である。
【図８】本発明の実施の形態に係るＵＳＢコンフィグレーション情報の構成例を示す構成図である。
【図９】本発明の実施の形態に係るＵＳＢホスト端末とＵＳＢクライアント端末間のＵＳＢコンフィグレーションシーケンスの例を示すシーケンス図である。
【図１０】本発明の実施の形態に係るパケットデータの構成例を示す構成図である。
【図１１】本発明の実施の形態に係るＵＳＢクライアント端末からＵＳＢホスト端末へのパケットデータ転送の例を示す説明図である。
【図１２】本発明の実施の形態に係るＵＳＢクライアント端末からＵＳＢホスト端末へのパケットデータ転送の例を示すシーケンス図である。
【図１３】本発明の実施の形態に係るＵＳＢホスト端末からＵＳＢクライアント端末へのパケットデータ転送の例を示す説明図である。
【図１４】本発明の実施の形態に係るＵＳＢホスト端末からＵＳＢクライアント端末へのパケットデータ転送の例を示すシーケンス図である。
【図１５】本発明の実施の形態を用いない場合におけるＵＳＢホスト端末のハードウェア構成例を示す構成図である。
【図１６】本発明の実施の形態を用いない場合におけるＵＳＢホスト端末内のソフトウェア構成例を示す構成図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
図１、図２、図３により、本発明の実施の形態に係るＵＳＢ端末の接続について説明する。図１は本発明の実施の形態に係るＵＳＢ端末の接続例を示す構成図、図２は本発明の実施の形態に係る正しくＵＳＢハブを用いたＵＳＢ端末の接続例を示す構成図、図３は本発明の実施の形態に係る好ましくないＵＳＢハブを用いたＵＳＢ端末の接続例を示す構成図である。
【００１７】
図１において、３つのＵＳＢホストコネクタを備えるＵＳＢホスト端末１０１と、３つのＵＳＢクライアントコネクタを備えるＵＳＢクライアント端末１０２は、３本のＵＳＢケーブル１０３で接続されている。ここでは説明の簡略化のためにコネクタは各３つとするが、各２つ以上であればいくつでもよい。ＵＳＢホスト端末１０１は、Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）といったＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が搭載された端末である。ＵＳＢクライアント端末１０２は、組込み機器である。ＵＳＢホストコネクタ１１１、１１２、１１３は、ＵＳＢ規格で定義されるＵＳＢホスト専用コネクタである。ＵＳＢクライアントコネクタ１２１、１２２、１２３は、ＵＳＢ規格で定義されるＵＳＢクライアント専用コネクタである。
【００１８】
図２のように、ＵＳＢホストコネクタとＵＳＢクライアントコネクタの間にＵＳＢハブ２０１を、ＵＳＢハブ２０１の性能が許す範囲で挟んで接続してもよい。ＵＳＢハブを接続することで、データ転送距離を伸ばすことができる。しかし図３のように、ＵＳＢハブ３０１にＵＳＢクライアント端末１０２内における２つ以上のＵＳＢクライアントコネクタを接続するべきではない。ＵＳＢハブ３０１により転送速度が低下し、本発明の効果である高速転送を得ることができなくなる可能性がある。
【００１９】
図４、図５により、本発明の実施の形態に係るＵＳＢホスト端末とＵＳＢクライアント端末のハードウェア構成について説明する。図４は本発明の実施の形態に係るＵＳＢホスト端末のハードウェア構成例を示す構成図、図５は本発明の実施の形態に係るＵＳＢクライアント端末のハードウェア構成例を示す構成図である。
【００２０】
図４において、ＵＳＢホスト端末１０１は、ＣＰＵ４０１、メモリ４０２、記録装置４０３、内部バス４０４、ＵＳＢホストデバイス４１１、４１２、４１３、ＵＳＢホストコネクタ１１１、１１２、１１３から構成されている。ＵＳＢホストデバイス４１１は、ＵＳＢホストコネクタ１１１に接続されるＵＳＢクライアントデバイス５１１を制御する。同様に、ＵＳＢホストデバイス４１２はＵＳＢホストコネクタ１１２に接続されるＵＳＢクライアントデバイス５１２を、ＵＳＢホストデバイス４１３はＵＳＢホストコネクタ１１３に接続されるＵＳＢクライアントデバイス５１３を制御する。図４のように、ＵＳＢホストデバイスとＵＳＢホストコネクタは１対１で使用すべきである。ＵＳＢ規格上１つのＵＳＢホストデバイスから２つ以上のＵＳＢホストコネクタを使用できるが、この場合、１つのＵＳＢホストデバイスが２つ以上のＵＳＢ転送を行うこととなり、転送速度が低下し、本発明の効果である高速転送を得ることができなくなる可能性がある。内部バス４０４は、ＣＰＵ４０１やメモリ４０２、ＵＳＢホストデバイス４１１、４１２、４１３を接続する高速な内部信号線であり、例えばＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）といった高速バスである。記録装置４０３にはＣＰＵ４０１で実行されるプログラムが格納されている。ＣＰＵ４０１は、記録装置４０３に格納されているプログラムを実行し、ＵＳＢホストデバイス４１１、４１２、４１３を制御する。メモリ４０２は、ＣＰＵ４０１で実行するプログラムの一時データ、ＵＳＢホストデバイス４１１、４１２、４１３とやり取りするデータを格納する。
【００２１】
図５において、ＵＳＢクライアント端末１０２は、ＣＰＵ５０１、メモリ５０２、記録装置５０３、内部バス５０４、ＵＳＢクライアントデバイス５１１，５１２，５１３、ＵＳＢクライアントコネクタ１２１、１２２、１２３から構成されている。ＵＳＢクライアントデバイス５１１は、ＵＳＢクライアントコネクタ１２１に接続されるＵＳＢホストデバイス４１１と通信する。同様に、ＵＳＢクライアントデバイス５１２はＵＳＢクライアントコネクタ１２２に接続されるＵＳＢホストデバイス４１２と、ＵＳＢクライアントデバイス５１３はＵＳＢクライアントコネクタ１２３に接続されるＵＳＢホストデバイス４１３と通信する。内部バス５０４は、ＣＰＵ５０１やメモリ５０２、ＵＳＢクライアントデバイス５１１、５１２、５１３を接続する高速な内部信号線である。記録装置５０３にはＣＰＵ５０１で実行されるプログラムが格納されている。ＣＰＵ５０１は、記録装置５０３に格納されているプログラムを実行し、ＵＳＢクライアントデバイス５１１、５１２、５１３を制御する。メモリ５０２は、ＣＰＵ５０１で実行するプログラムの一時データ、ＵＳＢクライアントデバイス５１１、５１２、５１３とやり取りするデータを格納する。
【００２２】
図６、図７により、本発明の実施の形態に係るＵＳＢホスト端末内とＵＳＢクライアント端末内のソフトウェア構成について説明する。図６は本発明の実施の形態に係るＵＳＢホスト端末内のソフトウェア構成例を示す構成図、図７は本発明の実施の形態に係るＵＳＢクライアント端末内のソフトウェア構成例を示す構成図である。
【００２３】
図６において、ＵＳＢデバイスドライバ６１１、６１２、６１３、ＵＳＢデバイスシミュレータ６０１、ユーザＵＳＢドライバ６０２、ユーザアプリケーション６０３、プラグアンドマネージャ６０６は、図４の記録装置４０３に格納されていて、ＣＰＵ４０１で実行されるプログラムである。プラグアンドプレイマネージャ６０６は、ＵＳＢ通信確立後にＵＳＢデバイスドライバ６１１、６１２、６１３を起動するプログラムである。ＵＳＢデバイスドライバ６１１は、ＵＳＢホストデバイス４１１を制御するプログラムである。同様に、ＵＳＢデバイスドライバ６１２はＵＳＢホストデバイス４１２を、ＵＳＢデバイスドライバ６１３はＵＳＢホストデバイス４１３を制御するプログラムである。ユーザＵＳＢドライバ６０２は一般的ＵＳＢデバイスドライバ、ユーザアプリケーション６０３はユーザＵＳＢドライバ６０２を制御するプログラムである。ＵＳＢデバイスシミュレータ６０１は、ＵＳＢデバイスドライバ６１１、６１２、６１３の調停制御と、ユーザＵＳＢドライバ６０２に対してＵＳＢデバイスのシミュレーションを行うプログラムである。ＵＳＢデバイスシミュレータ６０１が１つのＵＳＢデバイスをシミュレートすることで、ＵＳＢデバイスドライバ６１１、６１２、６１３を１つのデバイスに見せる。ユーザＵＳＢドライバ６０２は一般的ＵＳＢデバイスドライバであるので、複数のＵＳＢデバイスドライバを制御することはできないが、ＵＳＢデバイスシミュレータ６０１がユーザＵＳＢドライバ６０２に対して、１つのＵＳＢデバイスとして振舞うことで、ユーザＵＳＢドライバ６０２はＵＳＢデバイスドライバ６１１、６１２、６１３を制御することができる。
【００２４】
ＵＳＢデバイスシミュレータ６０１は、ＵＳＢリクエストコントロール６０４と、ＵＳＢ通信制御６０５から構成されている。ＵＳＢリクエストコントロール６０４は、ＵＳＢリクエストをシミュレーションする。ＵＳＢリクエストのシミュレーションは、例えばＤＳＦといったＵＳＢクライアント端末シミュレータを使用する。ＤＳＦを用いずに、ＯＳ内でＵＳＢリクエストを司るＵＲＢ（ＵＳＢ  Ｒｅｑｕｅｓｔ  Ｂｌｏｃｋ）をシミュレーションしてもよい。ＵＳＢ通信制御６０５は、ユーザＵＳＢドライバ６０２から送信されたデータをＵＳＢデバイスドライバ６１１、６１２、６１３に送信することと、ＵＳＢデバイスドライバ６１１、６１２、６１３が受信したデータをユーザＵＳＢドライバ６０２に受信させることを行う。
【００２５】
図７において、ＵＳＢクライアントデバイスドライバ７１１、７１２、７１３、ＵＳＢクライアントデバイスマネージャ７０１、ユーザファームウェア７０２は、図５の記録装置５０３に格納されていて、ＣＰＵ５０１で実行されるプログラムである。ＵＳＢクライアントデバイスドライバ７１１は、ＵＳＢクライアントデバイス５１１を制御するプログラムである。同様に、ＵＳＢクライアントデバイスドライバ７１２はＵＳＢクライアントデバイス５１２を、ＵＳＢクライアントデバイスドライバ７１３はＵＳＢクライアントデバイス５１３を制御するプログラムである。ＵＳＢクライアントデバイスマネージャ７０１は、ＵＳＢクライアントデバイスドライバ７１１、７１２、７１３の調停制御を行うプログラムである。ユーザファームウェア７０２は、ＵＳＢクライアントデバイスマネージャ７０１を制御することで、ＵＳＢ通信を行うプログラムである。
【００２６】
ＵＳＢ規格では、ＵＳＢ接続時にＵＳＢ通信確立を行う。このＵＳＢ通信確立をＵＳＢコンフィグレーションと呼ぶ。図８、図９により、本発明の実施の形態に係るＵＳＢホスト端末とＵＳＢクライアント端末間のＵＳＢコンフィグレーション方法について説明する。図８は本発明の実施の形態に係るＵＳＢコンフィグレーション情報の構成例を示す構成図、図９は本発明の実施の形態に係るＵＳＢホスト端末とＵＳＢクライアント端末間のＵＳＢコンフィグレーションシーケンスの例を示すシーケンス図である。
【００２７】
図９において、ＵＳＢクライアントデバイスマネージャ７０１は、処理９０１にて、ＵＳＢクライアントデバイスドライバ７１１に実コンフィグレーション情報８０１を設定する。同様に、処理９０２にてＵＳＢクライアントデバイスドライバ７１２に実コンフィグレーション情報８０２を、処理９０３にてＵＳＢクライアントデバイスドライバ７１３に実コンフィグレーション情報８０３を設定する。図８において、実コンフィグレーション情報８０１、８０２、８０３のディスクリプタ情報とリクエスト情報には、プラグアンドプレイマネージャ６０６がどのＵＳＢデバイスドライバを使用するか記載されている。実コンフィグレーション情報８０１にはＵＳＢデバイスドライバ６１１を、実コンフィグレーション情報８０２にはＵＳＢデバイスドライバ６１２を、実コンフィグレーション情報８０３にはＵＳＢデバイスドライバ６１３を使用する旨を記載しなくてはならない。
【００２８】
ＵＳＢホストコネクタ１１１とＵＳＢクライアントコネクタ１２１がＵＳＢケーブル１０３で接続されると、処理９０４によって、ＵＳＢクライアントデバイスドライバ７１１とＵＳＢホストドライバ６１１間で、ＵＳＢコンフィグレーションが実行される。同様に、処理９０６によってＵＳＢクライアントデバイスドライバ７１２とＵＳＢホストドライバ６１２間のＵＳＢコンフィグレーション、処理９０８によってＵＳＢクライアントデバイスドライバ７１３とＵＳＢホストドライバ６１３間のＵＳＢコンフィグレーションが実行される。ＵＳＢコンフィグレーションが完了したら、処理９０５によってＵＳＢデバイスドライバ６１１はＵＳＢデバイスシミュレータ６０１へＵＳＢコンフィグレーション完了を通知する。同様に、処理９０７によってＵＳＢデバイスドライバ６１２が、処理９０９によってＵＳＢデバイスドライバ６１３が、ＵＳＢデバイスシミュレータ６０１へＵＳＢコンフィグレーション完了を通知する。処理９１０によって、ＵＳＢデバイスシミュレータ６０１は仮想コンフィグレーション情報８１１を用いて、ユーザＵＳＢドライバ６０２とＵＳＢコンフィグレーションを実行する。
【００２９】
以下、ＵＳＢによるデータ転送のために分割されたデータをパケットデータと呼ぶ。図１０により、本発明の実施の形態に係るパケットデータの構成について説明する。図１０は本発明の実施の形態に係るパケットデータの構成例を示す構成図である。パケットデータ１００１は、ヘッダ長１００２、属性フラグ１００３、ＰＴＳ（Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｉｍｅ  Ｓｔａｍｐ）１００４、ＳＲＣ（Ｓｏｕｒｃｅ  Ｒｅｆｅｒｅｎｃｅ  Ｃｌｏｃｋ）１００５、ペイロードデータ１００６によって構成される。ヘッダ長１００２は、ペイロードデータ１００６を除くパケットデータ１００１のサイズを示している。図１０の場合、ヘッダ長１００２は常に１２である。属性フラグ１００３は、ユーザアプリケーション６０３がデータを扱うためのパケットデータ１００１の属性が格納されている。ＰＴＳ１００４は、ユーザアプリケーション６０３がペイロードデータ１００６を使用するタイミング時刻が格納されている。ＳＲＣ１００５は、パケットデータ１００１が転送されたタイミング時刻が格納されている。ペイロードデータ１００４は、ユーザアプリケーション６０３が扱うデータ本体である。
【００３０】
なお、図１０で示したパケットデータの構成は、ＵＳＢ規格が定めるＵＳＢ上のビデオ転送規格ＵＶＣ（ＵＳＢ  Ｖｉｄｅｏ  Ｃｌａｓｓ）に準じているので、本実施の形態は、ＵＶＣを用いたビデオ転送装置にそのまま適用することができる。
【００３１】
図１１、図１２により、本発明の実施の形態に係るＵＳＢクライアント端末１０２からＵＳＢホスト端末１０１へのパケットデータ転送方法について説明する。図１１は本発明の実施の形態に係るＵＳＢクライアント端末１０２からＵＳＢホスト端末１０１へのパケットデータ転送の例を示す説明図である。図１２は本発明の実施の形態に係るＵＳＢクライアント端末１０２からＵＳＢホスト端末１０１へのパケットデータ転送の例を示すシーケンス図である。
【００３２】
図１１において、パケットデータ１１０１、１１０２、１１０３は、パケットデータ１００１の構成を取るＵＳＢクライアント端末１０２内にあるパケットデータである。パケットデータ１１１１、１１１２、１１１３は、ＵＳＢホスト端末１０１に転送されたパケットデータ１１０１、１１０２、１１０３である。パケットデータ１１０１、１１０２、１１０３は、ＵＳＢクライアントマネージャ７０１にて、送信可能状態のＵＳＢクライアントデバイスマネージャ７１１、または７１２、７１３に送信される。ＵＳＢクライアントデバイスドライバ７１１、７１２、７１３は、パケットデータを接続先のＵＳＢデバイスドライバ６１１、６１２、６１３に送信する。ＵＳＢデバイスドライバ６１１、６１２、６１３は、パケットデータをＵＳＢデバイスシミュレータ６０１に送信する。ＵＳＢデバイスシミュレータ６０１は、ＵＳＢデバイスドライバ６１１、６１２、６１３から受信したパケットデータを正しい順序に並べ替える。
【００３３】
パケットデータの転送方法は、１つのＵＳＢインターフェースでパケットデータを転送する単純転送と、複数のＵＳＢインターフェースでパケットデータを転送する並列転送がある。単純転送は低速なパケットデータ、並列転送は高速なパケットデータの転送に向いている。パケットデータを単純転送で送るのか、並列転送で送るのかは、ＵＳＢ規格で定義されるエンドポイント番号や、パケットデータの属性によって決定される。この決定方法は、パケットデータの転送開始前である図９における仮想コンフィグレーションの直後までに、ＵＳＢクライアントデバイスマネージャ７０１とＵＳＢデバイスシミュレータ６０１にユーザが設定できる。
【００３４】
図１２の処理１２０１から１２０４は、単純転送のシーケンスである。処理１２０１にて、ＵＳＢクライアントデバイスマネージャ７０１は、転送するパケットデータをＵＳＢクライアントデバイスドライバ７１１に渡す。処理１２０２にて、ＵＳＢクライアントデバイスドライバ７１１はパケットデータをＵＳＢデバイスドライバ６１１に転送する。パケットデータを受信したＵＳＢデバイスドライバ６１１は、処理１２０３にて、受信したパケットデータをＵＳＢデバイスシミュレータ６０１に渡す。処理１２０４にて、ＵＳＢデバイスシミュレータ６０１は、受信したパケットデータをそのままユーザＵＳＢドライバ６０２に渡す。
【００３５】
図１２の処理１２０５から１２１６は、並列転送のシーケンスである。ＵＳＢクライアントデバイスドライバ７１１、７１２、７１３は、自身が転送可能状態であるか否かを、ステータスや非同期割り込みによって、ＵＳＢクライアントデバイスマネージャ７０１に常に通知する。処理１２０５にて、ＵＳＢクライアントデバイスマネージャ７０１は、送信すべきパケットデータを、転送可能状態にあるＵＳＢクライアントデバイスドライバに振り分ける。この振り分け処理の際、ＵＳＢクライアントデバイスマネージャ７０１は、パケットデータの順番に従って昇順となるように、パケットデータ内のＳＲＣ１００５の数値を微小な範囲でずらす。処理１２０６から１２１４にて、振り分けられたパケットデータを、ＵＳＢクライアントデバイスドライバ７１１、７１２、７１３が、接続されているＵＳＢデバイスドライバ６１１、６１２、６１３に転送し、ＵＳＢデバイスドライバ６１１、６１２、６１３は受信したパケットデータをＵＳＢデバイスシミュレータ６０１に渡す。ＵＳＢデバイスシミュレータ６０１は、受信したパケットデータを処理１２１５にてＳＲＣ１００５の順に並べて、処理１２１６にて正しい順序に並べられたパケットデータをユーザＵＳＢドライバ６０２に渡す。
【００３６】
図１３、図１４により、本発明の実施の形態に係るＵＳＢホスト端末１０１からＵＳＢクライアント端末１０２へのパケットデータ転送方法について説明する。図１３は本発明の実施の形態に係るＵＳＢホスト端末１０１からＵＳＢクライアント端末１０２へのパケットデータ転送の例を示す説明図である。図１４は本発明の実施の形態に係るＵＳＢホスト端末１０１からＵＳＢクライアント端末１０２へのパケットデータ転送の例を示すシーケンス図である。
【００３７】
図１３において、パケットデータ１３０１、１３０２、１３０３は、パケットデータ１００１の構成を取るＵＳＢホスト端末１０１内にあるパケットデータである。パケットデータ１３１１、１３１２、１３１３は、ＵＳＢクライアント端末１０２に転送されたパケットデータ１３０１、１３０２、１３０３である。パケットデータ１３０１、１３０２、１３０３は、ＵＳＢデバイスシミュレータ６０１にて、送信可能状態のＵＳＢデバイスドライバ６１１、または６１２、６１３に送信される。ＵＳＢデバイスドライバ６１１、６１２、６１３は、パケットデータを接続先のＵＳＢクライアントデバイスドライバ７１１、７１２、７１３に送信する。ＵＳＢクライアントデバイスドライバ７１１、７１２、７１３は、パケットデータをＵＳＢクライアントデバイスマネージャ７０１に送信する。ＵＳＢクライアントデバイスマネージャ７０１は、ＵＳＢクライアントデバイスドライバ７１１、７１２、７１３から受信したパケットデータを正しい順序に並べ替える。
【００３８】
図１４の処理１４０１から１４０４は、単純転送のシーケンスである。処理１４０１にて、ユーザＵＳＢドライバ６０２は、転送するパケットデータをＵＳＢデバイスシミュレータ６０１に渡す。処理１４０２にて、ＵＳＢデバイスシミュレータ６０１はそのパケットデータをＵＳＢデバイスドライバ６１１に渡す。処理１４０３にて、ＵＳＢデバイスドライバ６１１はそのパケットデータをＵＳＢクライアントデバイスドライバ７１１に転送する。ＵＳＢクライアントデバイスドライバ７１１は、そのパケットデータをＵＳＢクライアントデバイスマネージャ７０１に渡す。
【００３９】
図１４の処理１４０５から１４１６は、並列転送のシーケンスである。処理１４０５にて、ユーザＵＳＢドライバ６０２は、転送するパケットデータをＵＳＢデバイスシミュレータ６０１に渡す。ＵＳＢデバイスドライバ６１１、６１２、６１３は、自身が転送可能状態であるか否かを、ステータスやイベント通知によって、ＵＳＢデバイスシミュレータ６０１に常に通知する。処理１４０６にて、ＵＳＢデバイスシミュレータ６０１は、送信すべきパケットデータを、転送可能状態にあるＵＳＢデバイスドライバに振り分ける。この振り分け処理の際、ＵＳＢデバイスシミュレータ６０１は、パケットデータの順番に従って昇順となるように、パケットデータ内のＳＲＣ１００５の数値を微小な範囲でずらす。処理１２０７から１２１５にて、振り分けられたパケットデータを、ＵＳＢデバイスドライバ６１１、６１２、６１３が、接続先のＵＳＢクライアントデバイスドライバ７１１、７１２、７１３に転送し、ＵＳＢクライアントデバイスドライバ７１１、７１２、７１３は、受信したパケットデータをＵＳＢクライアントデバイスマネージャ７０１に渡す。ＵＳＢクライアントデバイスマネージャ７０１は、受信したパケットデータを処理１４１６にてＳＲＣ１００５の順に並べる。
【００４０】
以上で、実施の形態について説明した。
【００４１】
最後に、図１５、図１６により、実施の形態の方法によればユーザは並列転送ソフトウェアと、複数のＵＳＢインターフェースは用いない従来の方法である非並列転送ソフトウェアを共通化できることを示す。図１５、図１６は、非並列転送を行う一般的なＵＳＢホスト端末の構成を示している。図１５は、ＵＳＢホストコネクタを１つしか備えない場合のＵＳＢホスト端末のハードウェア構成図であり、図４に対応する。図１６は、ＵＳＢホストコネクタを１つしか備えない場合のＵＳＢホスト端末のソフトウェア構成図であり、図６に対応する。
【００４２】
図１５において、ＵＳＢホスト端末１５００は、ＣＰＵ１５０１、メモリ１５０２、記録装置１５０３、内部バス１５０４、ＵＳＢホストデバイス１５１１、ＵＳＢホストコネクタ１５１２から構成されている。ＣＰＵ１５０１は、記録装置１５０３に格納されているプログラムを実行し、ＵＳＢホストデバイス１５１１を制御する。メモリ１５０２は、ＣＰＵ１５０１で実行するプログラムの一時データ、ＵＳＢホストデバイス１５１１とやり取りするデータを格納する。バス１５０４は、高速な内部バスである。
【００４３】
図１６において、ユーザＵＳＢドライバ１６０１、ユーザアプリケーション１６０２、プラグアンドマネージャ１６０３は、図１５の記録装置１５０３に格納されていて、ＣＰＵ１５０１で実行されるプログラムである。プラグアンドプレイマネージャ１６０３は、ＵＳＢ通信確立後にユーザＵＳＢドライバ１６０１を起動するプログラムである。ユーザＵＳＢドライバ１６０１はＵＳＢホストデバイス１５１１を制御し、ユーザアプリケーション１６０２はユーザＵＳＢドライバを制御するプログラムである。
【００４４】
図６において、ＵＳＢデバイスシミュレータ６０１は、ＵＳＢデバイスドライバ６１１、６１２、６１３を１つのデバイスにシミュレーションしている、つまりＵＳＢホストデバイス１５１１をシミュレーションしていると見ることができる。よって、ユーザＵＳＢドライバ１６０１は、ユーザＵＳＢドライバ６０２と全く同等のものである。ユーザＵＳＢドライバ１６０１とユーザＵＳＢドライバ６０２が全く同等であれば、それらを制御するユーザアプリケーション６０２とユーザアプリケーション１６０２も全く同等のものとなる。よって、実施の形態の方法によれば、並列転送ソフトウェアと非並列転送ソフトウェアを共通化できることが示された。
【００４５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００４６】
本発明は、ＵＳＢハードディスクドライブといったストレージ機器、ＵＳＢカメラ、ＵＳＢインターフェースを持つ計測器や医療機器、携帯電話端末、デジタルテレビ、パソコン、サーバシステム等、ＵＳＢインターフェースを備えるあらゆる情報端末間のデータ通信に適用できる。また、無線ＵＳＢや、ＤｉｉＶＡといったＵＳＢプロトコルを採用するＵＳＢ以外のデータ通信にも適用可能である。
【符号の説明】
【００４７】
１０１…ＵＳＢホスト端末、１０２…ＵＳＢクライアント端末、１０３…ＵＳＢケーブル、１１１…ＵＳＢホストコネクタ、１１２…ＵＳＢホストコネクタ、１１３…ＵＳＢホストコネクタ、１２１…ＵＳＢクライアントコネクタ、１２２…ＵＳＢクライアントコネクタ、１２３…ＵＳＢクライアントコネクタ、２０１…ＵＳＢハブ、３０１…ＵＳＢハブ、４０１…ＵＳＢホスト端末内ＣＰＵ、４０２…ＵＳＢホスト端末内メモリ、４０３…ＵＳＢホスト端末内記録装置、４０４…ＵＳＢホスト端末内部バス、４１１…ＵＳＢホストデバイス、４１２…ＵＳＢホストデバイス、４１３…ＵＳＢホストデバイス、５０１…ＵＳＢクライアント端末内ＣＰＵ，５０２…ＵＳＢクライアント端末内メモリ、５０３…ＵＳＢクライアント端末内記録装置、５０４…ＵＳＢクライアント端末内部バス、５１１…ＵＳＢクライアントデバイス、５１２…ＵＳＢクライアントデバイス、５１３…ＵＳＢクライアントデバイス、６０１…ＵＳＢデバイスシミュレータ、６０２…ユーザＵＳＢドライバ、６０３…ユーザアプリケーション、６０４…ＵＳＢデバイスシミュレータ内ＵＳＢリクエストコントロール、６０５…ＵＳＢデバイスシミュレータ内ＵＳＢ通信制御、６０６…プラグアンドプレイマネージャ、６１１…ＵＳＢデバイスドライバ、６１２…ＵＳＢデバイスドライバ、６１３…ＵＳＢデバイスドライバ、７０１…ＵＳＢクライアントデバイスマネージャ、７０２…ユーザファームウェア、７１１…ＵＳＢクライアントデバイスドライバ、７１２…ＵＳＢクライアントデバイスドライバ、７１３…ＵＳＢクライアントデバイスドライバ、８０１…実コンフィグレーション情報、８０２…実コンフィグレーション情報、８０３…実コンフィグレーション情報、８１１…仮想コンフィグレーション情報、１００１…パケットデータ、１００２…ヘッダ長、１００３…属性フラグ、１００４…ＰＴＳ、１００５…ＳＲＣ、１００６…ペイロードデータ、１１０１…ＵＳＢクライアント端末内の転送前パケットデータ、１１０２…ＵＳＢクライアント端末内の転送前パケットデータ、１１０３…ＵＳＢクライアント端末内の転送前パケットデータ、１１１１…ＵＳＢホスト端末の転送後パケットデータ、１１１２…ＵＳＢホスト端末の転送後パケットデータ、１１１３…ＵＳＢホスト端末の転送後パケットデータ、１２０５…クライアント端末内データ振り分け処理、１２１５…ホスト端末内データ並べ替え処理、１３０１…ＵＳＢホスト端末の転送前パケットデータ、１３０２…ＵＳＢホスト端末の転送前パケットデータ、１３０３…ＵＳＢホスト端末の転送前パケットデータ、１３１１…ＵＳＢクライアント端末内の転送後パケットデータ、１３１２…ＵＳＢクライアント端末内の転送後パケットデータ、１３１３…ＵＳＢクライアント端末内の転送後パケットデータ、１４０６…ホスト端末内データ振り分け処理、１４１６…クライアント端末内データ並べ替え処理
【図１】
2012073686.tif 000003
【図２】
2012073686.tif 000004
【図３】
2012073686.tif 000005
【図４】
2012073686.tif 000006
【図５】
2012073686.tif 000007
【図６】
2012073686.tif 000008
【図７】
2012073686.tif 000009
【図８】
2012073686.tif 000010
【図９】
2012073686.tif 000011
【図１０】
2012073686.tif 000012
【図１１】
2012073686.tif 000013
【図１２】
2012073686.tif 000014
【図１３】
2012073686.tif 000015
【図１４】
2012073686.tif 000016
【図１５】
2012073686.tif 000017
【図１６】
2012073686.tif 000018