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