説明

データ転送方法

【課題】複数のUSBインターフェースを用いて、USB規格以上のデータ転送速度を実現する。データ転送中における、USBケーブル接続等によるUSBインターフェースの追加と削除を可能とする。
【解決手段】複数のUSBインターフェースを用いてデータを並列転送する。並列転送するためのデータ振り分け機能と、データ復元のためのデータ並べ替え機能を備える。データ転送を止めることなく、USBインターフェースの追加と削除を可能とするUSBコンフィグレーション手段を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のUSBホストコネクタを持つUSBホスト端末と、複数のUSBクライアントコネクタを持つUSBクライアント端末間のデータ転送方法に関する。
【背景技術】
【0002】
USB(Universal Serial Bus)は主にコンピュータとその周辺機器を接続する規格である。1996年に登場した最初の規格であるUSB1.0は12Mbps(Mega Bit Per Second)の転送性能で、主にマウスやプリンタに使用された。2000年に登場したUSB2.0は480Mbpsの転送性能で、ハードディスクやデジタルカメラ等、幅広いパソコン周辺機器に応用された。そして2008年に登場したUSB3.0の転送性能は5Gbps(Giga Bit Per Second)に達し、超高速ストレージやディスプレイへの応用が期待されている。USBは2010年、全世界で30億ユニット以上出荷されると予想されており、他の接続規格を圧倒する普及数を誇る。そして今後もUSB普及の勢いは衰えないと言われている。
【0003】
USBはその高い普及率と、量産効果から得られるコスト上のメリットから、コンシューマ分野だけではなく、産業分野である計測器等でも使用され始めている。従来、計測器は単独で計測、分析、表示を行っていた。近年、高性能なパソコンが非常に低価格で流通しているので、計測器とパソコンを高速なUSBで接続して、計測器では計測のみを行い、計測した大量のデータをUSBでパソコンに転送して、パソコンで分析と表示を行うと、計測器端末の部品コスト低減、分析や表示に掛かるソフトウェア開発工数削減、さらにパソコン内ソフトウェアを入れ替えるだけで計測器のラインナップを増やせる、というメリットがある。計測器に限らず、医療機器や超高性能カメラといった産業分野で、このようなUSBを応用したシステム構成が採用され始めている。
【0004】
しかし上記のようなシステム構成を採用する場合、USB3.0であれば5GbpsというUSBの転送性能内に、要求速度が必ずしも納まるとは限らない。このように、USB規格以上の転送速度を実現したいというニーズがある。そこで従来の方法として、特許文献1と特許文献2のように、複数のUSBインターフェースを用いてデータを並列転送することで、データ転送速度を向上させる方法がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−305888号公報
【特許文献2】特開2003−131815号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
以上のように複数のUSBインターフェースを用いてデータを並列転送することで、データ転送速度を向上させる方法が提案されているが、この従来の方法では、データ転送中に並列転送用のUSBケーブルによるUSBインターフェースの追加と削除はできない。この追加と削除が可能になれば、データ転送中に速度が不足している場合の速度向上、速度が十分確保されている場合は不要なUSBインターフェースをスタンバイ状態にすることで省電力を実現できる。
【0007】
そこで本発明の目的は、複数のUSBインターフェースを用いてデータを並列転送することと、データ転送中に並列転送用に使用するUSBインターフェースの追加と削除を実現することにある。
【0008】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0009】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0010】
すなわち、代表的なものの概要は、データの分割と復元を行い何れかのドライバを通じて通信を行うデータ送受信ソフトウェアが、データ送受信を止めることなく、通信を実行するドライバの起動と停止、スタンバイ状態への移行を実行することである。
【発明の効果】
【0011】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【0012】
すなわち、代表的なものによって得られる効果は、USBホスト端末とUSBクライアント端末間において複数のUSBインターフェースを用いてデータを並列転送することで、USB規格以上の転送速度を実現でき、さらに並列転送中にUSBインターフェースの追加と削除が可能である。USBインターフェースの追加と削除によって、動的に必要な転送性能に調整可能である。さらに冗長なUSBインターフェースをスタンバイ状態にすることで、データ転送にかかる電力を節約することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態1に係るUSB端末の接続例を示す構成図である。
【図2】本発明の実施の形態1に係る正しくUSBハブを用いたUSB端末の接続例を示す構成図である。
【図3】本発明の実施の形態1に係る好ましくないUSBハブを用いたUSB端末の接続例を示す構成図である。
【図4】本発明の実施の形態1に係るUSBホスト端末のハードウェア構成例を示す構成図である。
【図5】本発明の実施の形態1に係るUSBクライアント端末のハードウェア構成例を示す構成図である。
【図6】本発明の実施の形態1に係るUSBホスト端末内のソフトウェア構成例を示す構成図である。
【図7】本発明の実施の形態1に係るUSBクライアント端末内のソフトウェア構成例を示す構成図である。
【図8】本発明の実施の形態1に係るUSBコンフィグレーション情報の構成例を示す構成図である。
【図9】本発明の実施の形態1に係るUSBホスト端末とUSBクライアント端末間のUSBコンフィグレーションシーケンスの例を示すシーケンス図である。
【図10】本発明の実施の形態1に係るパケットデータの構成例を示す構成図である。
【図11】本発明の実施の形態1に係るUSBクライアント端末からUSBホスト端末へのパケットデータ転送の例を示す説明図である。
【図12】本発明の実施の形態1に係るUSBクライアント端末からUSBホスト端末へのパケットデータ転送の例を示すシーケンス図である。
【図13】本発明の実施の形態1に係るUSBホスト端末からUSBクライアント端末へのパケットデータ転送の例を示す説明図である。
【図14】本発明の実施の形態1に係るUSBホスト端末からUSBクライアント端末へのパケットデータ転送の例を示すシーケンス図である。
【図15】本発明の実施の形態1に係る並列転送中のUSBインターフェース追加方法の例を示すシーケンス図である。
【図16】本発明の実施の形態1に係る並列転送中のUSBインターフェース削除方法の例を示すシーケンス図である。
【図17】本発明の実施の形態2に係る係るUSBホスト端末のソフトウェア構成例を示す構成図である。
【図18】本発明の実施の形態2に係る省電力実施方法の例を示すシーケンス図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【実施例1】
【0015】
図1、図2、図3により、本発明の実施の形態1に係るUSB端末の接続について説明する。図1は本発明の実施の形態1に係るUSB端末の接続例を示す構成図、図2は本発明の実施の形態1に係る正しくUSBハブを用いたUSB端末の接続例を示す構成図、図3は本発明の実施の形態1に係る好ましくないUSBハブを用いたUSB端末の接続例を示す構成図である。
【0016】
図1において、3つのUSBホストコネクタを備えるUSBホスト端末101と、3つのUSBクライアントコネクタを備えるUSBクライアント端末102は、3本のUSBケーブル103で接続されている。ここでは説明の簡略化のためにコネクタは各3つとするが、各2つ以上であればいくつでもよい。以降、USBホストコネクタ111とUSBクライアントコネクタ121の接続を第1の接続、USBホストコネクタ112とUSBクライアントコネクタ122の接続を第2の接続、USBホストコネクタ113とUSBクライアントコネクタ123の接続を第3の接続と呼ぶ。USBホスト端末101は、Windows(登録商標)やLinux(登録商標)といったOS(Operating System)が搭載された端末である。USBクライアント端末102は、組込み機器である。USBホストコネクタ111、112、113は、USB規格で定義されるUSBホスト専用コネクタである。USBクライアントコネクタ121、122、123は、USB規格で定義されるUSBクライアント専用コネクタである。
【0017】
図2のように、USBホストコネクタとUSBクライアントコネクタの間にUSBハブ201を、USBハブ201の性能が許す範囲で挟んで接続してもよい。USBハブを接続することで、データ転送距離を伸ばすことができる。しかし図3のように、USBハブ301にUSBクライアント端末102内における2つ以上のUSBクライアントコネクタを接続するべきではない。USBハブ301により転送速度が低下し、本発明の効果である高速転送を得ることができなくなる可能性がある。
【0018】
図4、図5により、本発明の実施の形態1に係るUSBホスト端末とUSBクライアント端末のハードウェア構成について説明する。図4は本発明の実施の形態1に係るUSBホスト端末のハードウェア構成例を示す構成図、図5は本発明の実施の形態1に係るUSBクライアント端末のハードウェア構成例を示す構成図である。
【0019】
図4において、USBホスト端末101は、CPU401、メモリ402、記録装置403、内部バス404、USBホストデバイス411、412、413、USBホストコネクタ111、112、113から構成されている。USBホストデバイス411は、USBホストコネクタ111に接続されるUSBクライアントデバイス511を制御する。同様に、USBホストデバイス412はUSBホストコネクタ112に接続されるUSBクライアントデバイス512を、USBホストデバイス413はUSBホストコネクタ113に接続されるUSBクライアントデバイス513を制御する。図4のように、USBホストデバイスとUSBホストコネクタは1対1で使用すべきである。USB規格上1つのUSBホストデバイスから2つ以上のUSBホストコネクタを使用できるが、この場合、1つのUSBホストデバイスが2つ以上のUSB転送を行うこととなり、転送速度が低下し、本発明の効果である高速転送を得ることができなくなる可能性がある。内部バス404は、CPU401やメモリ402、USBホストデバイス411、412、413を接続する高速な内部信号線であり、例えばPCI Express(登録商標)といった高速バスである。記録装置403にはCPU401で実行されるプログラムが格納されている。CPU401は、記録装置403に格納されているプログラムを実行し、USBホストデバイス411、412、413を制御する。メモリ402は、CPU401で実行するプログラムの一時データ、USBホストデバイス411、412、413とやり取りするデータを格納する。
【0020】
図5において、USBクライアント端末102は、CPU501、メモリ502、記録装置503、内部バス504、USBクライアントデバイス511,512,513、USBクライアントコネクタ121、122、123から構成されている。USBクライアントデバイス511は、USBクライアントコネクタ121に接続されるUSBホストデバイス411と通信する。同様に、USBクライアントデバイス512はUSBクライアントコネクタ122に接続されるUSBホストデバイス412と、USBクライアントデバイス513はUSBクライアントコネクタ123に接続されるUSBホストデバイス413と通信する。内部バス504は、CPU501やメモリ502、USBクライアントデバイス511、512、513を接続する高速な内部信号線である。記録装置503にはCPU501で実行されるプログラムが格納されている。CPU501は、記録装置503に格納されているプログラムを実行し、USBクライアントデバイス511、512、513を制御する。メモリ502は、CPU501で実行するプログラムの一時データ、USBクライアントデバイス511、512、513とやり取りするデータを格納する。
【0021】
図6、図7により、本発明の実施の形態1に係るUSBホスト端末内とUSBクライアント端末内のソフトウェア構成について説明する。図6は本発明の実施の形態1に係るUSBホスト端末内のソフトウェア構成例を示す構成図、図7は本発明の実施の形態1に係るUSBクライアント端末内のソフトウェア構成例を示す構成図である。
【0022】
図6において、USBデバイスドライバ611、612、613、USBデバイスシミュレータ601、ユーザUSBドライバ602、ユーザアプリケーション603、プラグアンドプレイマネージャ605は、図4の記録装置403に格納されていて、CPU401で実行されるプログラムである。プラグアンドプレイマネージャ605は、USB通信確立後にUSBデバイスドライバ611、612、613を起動するプログラムである。USBデバイスドライバ611は、USBホストデバイス411を制御するプログラムである。同様に、USBデバイスドライバ612はUSBホストデバイス412を、USBデバイスドライバ613はUSBホストデバイス413を制御するプログラムである。ユーザUSBドライバ602は一般的USBデバイスドライバ、ユーザアプリケーション603はユーザUSBドライバ602を制御するプログラムである。USBデバイスシミュレータ601は、USBデバイスドライバ611、612、613の調停制御と、ユーザUSBドライバ602に対してUSBデバイスのシミュレーションを行うプログラムである。USBデバイスシミュレータ601が1つのUSBデバイスをシミュレートすることで、USBデバイスドライバ611、612、613を1つのデバイスに見せる。ユーザUSBドライバ602は一般的USBデバイスドライバであるので、複数のUSBデバイスドライバを制御することはできないが、USBデバイスシミュレータ601がユーザUSBドライバ602に対して、1つのUSBデバイスとして振舞うことで、ユーザUSBドライバ602はUSBデバイスドライバ611、612、613を制御することができる。
【0023】
USBデバイスシミュレータ601は、USB通信制御604を含む。USB通信制御604は、ユーザUSBドライバ602から送信されたデータをUSBデバイスドライバ611、612、613に送信し、USBデバイスドライバ611、612、613が受信したデータをユーザUSBドライバ602に受信させる。
【0024】
図7において、USBクライアントデバイスドライバ711、712、713、USBクライアントデバイスマネージャ701、ユーザファームウェア702は、図5の記録装置503に格納されていて、CPU501で実行されるプログラムである。USBクライアントデバイスドライバ711は、USBクライアントデバイス511を制御するプログラムである。同様に、USBクライアントデバイスドライバ712はUSBクライアントデバイス512を、USBクライアントデバイスドライバ713はUSBクライアントデバイス513を制御するプログラムである。USBクライアントデバイスマネージャ701は、USBクライアントデバイスドライバ711、712、713の調停制御を行うプログラムである。ユーザファームウェア702は、USBクライアントデバイスマネージャ701を制御することで、USB通信を行うプログラムである。
【0025】
USB規格では、USB接続時にUSB通信確立を行う。このUSB通信確立をUSBコンフィグレーションと呼ぶ。図8、図9により、本発明の実施の形態1に係るUSBホスト端末とUSBクライアント端末間のUSBコンフィグレーション方法について説明する。図8は本発明の実施の形態1に係るUSBコンフィグレーション情報の構成例を示す構成図、図9は本発明の実施の形態1に係るUSBホスト端末とUSBクライアント端末間のUSBコンフィグレーションシーケンスの例を示すシーケンス図である。
【0026】
図9において、USBクライアントデバイスマネージャ701は、処理901にて、USBクライアントデバイスドライバ711にコンフィグレーション情報801を設定する。同様に、処理902にてUSBクライアントデバイスドライバ712にコンフィグレーション情報802を、処理903にてUSBクライアントデバイスドライバ713にコンフィグレーション情報803を設定する。図8において、コンフィグレーション情報801、802、803のディスクリプタ情報とリクエスト情報には、プラグアンドプレイマネージャ605がどのUSBデバイスドライバを使用するか記載されている。コンフィグレーション情報801にはUSBデバイスドライバ611を、コンフィグレーション情報802にはUSBデバイスドライバ612を、コンフィグレーション情報803にはUSBデバイスドライバ613を使用する旨を記載しなくてはならない。
【0027】
USBホストコネクタ111とUSBクライアントコネクタ121がUSBケーブル103で接続されると、処理904によって、USBクライアントデバイスドライバ711とUSBホストドライバ611間で、USBコンフィグレーションが実行される。同様に、処理906によってUSBクライアントデバイスドライバ712とUSBホストドライバ612間のUSBコンフィグレーション、処理908によってUSBクライアントデバイスドライバ713とUSBホストドライバ613間のUSBコンフィグレーションが実行される。USBコンフィグレーションが完了したら、処理905によってUSBデバイスドライバ611はUSBデバイスシミュレータ601へUSBコンフィグレーション完了を通知する。同様に、処理907によってUSBデバイスドライバ612が、処理909によってUSBデバイスドライバ613が、USBデバイスシミュレータ601へUSBコンフィグレーション完了を通知する。
【0028】
以下、USBによるデータ転送のために分割されたデータをパケットデータと呼ぶ。図10により、本発明の実施の形態1に係るパケットデータの構成について説明する。図10は本発明の実施の形態1に係るパケットデータの構成例を示す構成図である。パケットデータ1001は、ヘッダ長1002、属性フラグ1003、PTS(Presentation Time Stamp)1004、SRC(Source Reference Clock)1005、ペイロードデータ1006によって構成される。ヘッダ長1002は、ペイロードデータ1006を除くパケットデータ1001のサイズを示している。図10の場合、ヘッダ長1002は常に12である。属性フラグ1003は、ユーザアプリケーション603がデータを扱うためのパケットデータ1001の属性が格納されている。PTS1004は、ユーザアプリケーション603がペイロードデータ1006を使用するタイミング時刻が格納されている。SRC1005は、パケットデータ1001が転送されたタイミング時刻が格納されている。ペイロードデータ1004は、ユーザアプリケーション603が扱うデータ本体である。
【0029】
なお、図10で示したパケットデータの構成は、USB規格が定めるUSB上のビデオ転送規格UVC(USB Video Class)に準じているので、本実施の形態1は、UVCを用いたビデオ転送装置にそのまま適用することができる。
【0030】
図11、図12、により、本発明の実施の形態1に係るUSBクライアント端末102からUSBホスト端末101へのパケットデータ転送方法について説明する。図11は本発明の実施の形態1に係るUSBクライアント端末102からUSBホスト端末101へのパケットデータ転送の例を示す説明図である。図12は本発明の実施の形態1に係るUSBクライアント端末102からUSBホスト端末101へのパケットデータ転送の例を示すシーケンス図である。
【0031】
図11において、パケットデータ1101、1102、1103は、パケットデータ1001の構成を取るUSBクライアント端末102内にあるパケットデータである。パケットデータ1111、1112、1113は、USBホスト端末101に転送されたパケットデータ1101、1102、1103である。パケットデータ1101、1102、1103は、USBクライアントマネージャ701にて、送信可能状態のUSBクライアントデバイスマネージャ711、または712、713に送信される。USBクライアントデバイスドライバ711、712、713は、パケットデータを接続先のUSBデバイスドライバ611、612、613に送信する。USBデバイスドライバ611、612、613は、パケットデータをUSBデバイスシミュレータ601に送信する。USBデバイスシミュレータ601は、USBデバイスドライバ611、612、613から受信したパケットデータを正しい順序に並べ替える。
【0032】
パケットデータの転送方法は、1つのUSBインターフェースでパケットデータを転送する単純転送と、複数のUSBインターフェースでパケットデータを転送する並列転送がある。単純転送は低速なパケットデータ、並列転送は高速なパケットデータの転送に向いている。パケットデータを単純転送で送るのか、並列転送で送るのかは、USB規格で定義されるエンドポイント番号や、パケットデータの属性によって決定される。この決定方法は、パケットデータの転送開始前である図9における仮想コンフィグレーションの直後までに、USBクライアントデバイスマネージャ701とUSBデバイスシミュレータ601にユーザが設定できる。
【0033】
図12の処理1201から1204は、単純転送のシーケンスである。処理1201にて、USBクライアントデバイスマネージャ701は、転送するパケットデータをUSBクライアントデバイスドライバ711に渡す。処理1202にて、USBクライアントデバイスドライバ711はパケットデータをUSBデバイスドライバ611に転送する。パケットデータを受信したUSBデバイスドライバ611は、処理1203にて、受信したパケットデータをUSBデバイスシミュレータ601に渡す。処理1204にて、USBデバイスシミュレータ601は、受信したパケットデータをそのままユーザUSBドライバ602に渡す。
【0034】
図12の処理1205から1216は、並列転送のシーケンスである。USBクライアントデバイスドライバ711、712、713は、自身が転送可能状態であるか否かを、ステータスや非同期割り込みによって、USBクライアントデバイスマネージャ701に常に通知する。処理1205にて、USBクライアントデバイスマネージャ701は、送信すべきパケットデータを、転送可能状態にあるUSBクライアントデバイスドライバに振り分ける。この振り分け処理の際、USBクライアントデバイスマネージャ701は、パケットデータの順番に従って昇順となるように、パケットデータ内のSRC1005の数値を微小な範囲でずらす。処理1206から1214にて、振り分けられたパケットデータを、USBクライアントデバイスドライバ711、712、713が、接続されているUSBデバイスドライバ611、612、613に転送し、USBデバイスドライバ611、612、613は受信したパケットデータをUSBデバイスシミュレータ601に渡す。USBデバイスシミュレータ601は、受信したパケットデータを処理1215にてSRC1005の順に並べて、処理1216にて正しい順序に並べられたパケットデータをユーザUSBドライバ602に渡す。
【0035】
図13、図14により、本発明の実施の形態1に係るUSBホスト端末101からUSBクライアント端末102へのパケットデータ転送方法について説明する。図13は本発明の実施の形態1に係るUSBホスト端末101からUSBクライアント端末102へのパケットデータ転送の例を示す説明図である。図14は本発明の実施の形態1に係るUSBホスト端末101からUSBクライアント端末102へのパケットデータ転送の例を示すシーケンス図である。
【0036】
図13において、パケットデータ1301、1302、1303は、パケットデータ1001の構成を取るUSBホスト端末101内にあるパケットデータである。パケットデータ1311、1312、1313は、USBクライアント端末102に転送されたパケットデータ1301、1302、1303である。パケットデータ1301、1302、1303は、USBデバイスシミュレータ601にて、送信可能状態のUSBデバイスドライバ611、または612、613に送信される。USBデバイスドライバ611、612、613は、パケットデータを接続先のUSBクライアントデバイスドライバ711、712、713に送信する。USBクライアントデバイスドライバ711、712、713は、パケットデータをUSBクライアントデバイスマネージャ701に送信する。USBクライアントデバイスマネージャ701は、USBクライアントデバイスドライバ711、712、713から受信したパケットデータを正しい順序に並べ替える。
【0037】
図14の処理1401から1404は、単純転送のシーケンスである。処理1401にて、ユーザUSBドライバ602は、転送するパケットデータをUSBデバイスシミュレータ601に渡す。処理1402にて、USBデバイスシミュレータ601はそのパケットデータをUSBデバイスドライバ611に渡す。処理1403にて、USBデバイスドライバ611はそのパケットデータをUSBクライアントデバイスドライバ711に転送する。USBクライアントデバイスドライバ711は、そのパケットデータをUSBクライアントデバイスマネージャ701に渡す。
【0038】
図14の処理1405から1416は、並列転送のシーケンスである。処理1405にて、ユーザUSBドライバ602は、転送するパケットデータをUSBデバイスシミュレータ601に渡す。USBデバイスドライバ611、612、613は、自身が転送可能状態であるか否かを、ステータスやイベント通知によって、USBデバイスシミュレータ601に常に通知する。処理1406にて、USBデバイスシミュレータ601は、送信すべきパケットデータを、転送可能状態にあるUSBデバイスドライバに振り分ける。この振り分け処理の際、USBデバイスシミュレータ601は、パケットデータの順番に従って昇順となるように、パケットデータ内のSRC1005の数値を微小な範囲でずらす。処理1207から1215にて、振り分けられたパケットデータを、USBデバイスドライバ611、612、613が、接続先のUSBクライアントデバイスドライバ711、712、713に転送し、USBクライアントデバイスドライバ711、712、713は、受信したパケットデータをUSBクライアントデバイスマネージャ701に渡す。USBクライアントデバイスマネージャ701は、受信したパケットデータを処理1416にてSRC1005の順に並べる。
【0039】
図15により、本発明の実施の形態1に係る並列転送中のUSBインターフェースの追加方法を説明する。並列転送中にUSBケーブルを接続することでUSBインターフェースを追加して、その追加されたUSBインターフェースも並列転送に用いることができれば、更なる速度向上が実現できる。図15は、本発明の実施の形態1に係る並列転送中のUSBインターフェース追加方法の例を示すシーケンス図である。
【0040】
図15において、状態1501では、図1で示された第1の接続と第2の接続によって並列転送が実行されている。ここで第3の接続を行うと、処理1502であるUSBコンフィグレーションが開始される。処理1502であるUSBコンフィグレーションが終了したら、処理1503により、USBデバイスドライバ613はUSBデバイスシミュレータ601へUSBコンフィグレーション終了を通知する。さらに処理1504により、USBクライアントデバイスドライバ713はUSBクライアントデバイスマネージャ701へUSBコンフィグレーション終了を通知する。
【0041】
処理1504の後、USBクライアントデバイスマネージャ701は第3の接続による受信を開始し、第1の接続と、第2の接続、第3の接続を用いて、図14における処理1416の受信データ並べ替え処理を開始する。同様に、処理1503の後、USBデバイスシミュレータ601は、処理1505により受信を開始し、第1の接続と、第2の接続、第3の接続を用いて、図12における処理1215の受信データ並べ替え処理を開始する。処理1506により、USBデバイスドライバ613が受信処理を開始するとUSBクライアントデバイスドライバ713は送信可能状態となり、処理1507でUSBクライアントデバイスマネージャ701に送信可能である旨を通知する。以上で状態1508である第1の接続と、第2の接続、第3の接続で並列転送を実行する状態に移行した。
【0042】
図16により、本発明の実施の形態1に係る並列転送中のUSBインターフェース削除方法を説明する。図16は、本発明の実施の形態1に係る並列転送中のUSBインターフェース削除方法の例を示すシーケンス図である。
【0043】
図16において、状態1601では、図1で示された第1の接続と第2の接続、第3の接続によって並列転送が実行されている。ここで第3の接続を削除することとする。まず処理1602により、USBデバイスシミュレータ601は、第3の接続によるデータ送信を停止する。処理1603、1604、1605により、第1の接続のコントロール転送を用いて、USBデバイスシミュレータ601はUSBクライアントデバイスマネージャ701へ第3の接続切断通知を行う。クライアントデバイスマネージャ701は、第3の接続を用いたデータ送信を停止し、処理1606、1607、1608により、最後に送信したパケットデータのSRC1005をUSBデバイスシミュレータ601に通知する。USBデバイスシミュレータ601は、クライアントデバイスマネージャ701が最後に送信したパケットデータを受信したことを確認したら、処理1609によりUSBデバイスドライバ613をアンロードする。処理1610により、第3の接続は切断される。処理1611により、USBクライアントドライバ713は、第3の接続が切断された旨をクライアントデバイスマネージャ701に通知する。処理1611の後、クライアントデバイスマネージャ701はUSBクライアントドライバ713が受信していたデータを全て吸い上げる。以上で状態1612である第1の接続と、第2の接続で並列転送を実行する状態に移行した。
【0044】
以上で、実施の形態1について説明した。
【実施例2】
【0045】
実施の形態2では、データ転送量が減った場合の省電力実施方法例を説明する。図17、図18により、本発明の実施の形態2に係るUSBホスト端末の挙動について説明する。図17は本発明の実施の形態2に係るUSBホスト端末のソフトウェア構成例を示す構成図である。図18は本発明の実施の形態2に係る省電力実施方法の例を示すシーケンス図である。
【0046】
まず実施の形態2の前提として、図11において、USBクライアントデバイスマネージャ701は、送信データの送信経路を、第1の接続、第2の接続、第3の接続の優先順位で送信する。すなわち、データ量が十分少ない場合は第1の接続のみ、第1の接続のみでは転送しきれない場合は第2の転送を使い、更に転送量が増えた場合は第3の接続を使用する。同様に、図13において、USBデバイスシミュレータ601は、送信データの送信経路を、第1の接続、第2の接続、第3の接続の優先順位で送信する。
【0047】
図17において、USB通信監視1701は、送信と受信データの転送速度を計測する。1つのUSB接続が無くても十分転送可能であるほど送信と受信データの転送速度が十分遅い場合、USB通信監視1701は、第3の接続をスタンバイ状態に移行させる。
【0048】
図18において、処理1800にて、USB通信監視1701は第3の接続による送信を停止する。処理1603から処理1608は、実施の形態1で示した通りである。処理1801にて、USBデバイスシミュレータ601は、USBデバイスドライバ613をスタンバイ状態に移行させることで、第3の接続はスタンバイ状態である省電力状態に移行する。以上により、状態1804では、第1の接続と、第2の接続で並列転送を実行し、第3の接続は省電力状態にある転送方法に移行した。
【0049】
なお、送信または受信データの転送速度があらかじめ指定された速度を超え、USBインターフェースの追加が必要になる場合、USB通信監視1701はスタンバイ状態にあるUSBデバイスドライバのスタンバイを解除して、図15の方法によりUSBインターフェースによる接続を追加することで、速くなる速度に対応させることができる。
【0050】
以上で、実施の形態2について説明した。
【0051】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0052】
本発明は、USBハードディスクドライブといったストレージ機器、USBカメラ、USBインターフェースを持つ計測器や医療機器、携帯電話端末、デジタルテレビ、パソコン、サーバシステム等、USBインターフェースを備えるあらゆる情報端末間のデータ通信に適用できる。また、無線USBや、DiiVAといったUSBプロトコルを採用するUSB以外のデータ通信にも適用可能である。
【符号の説明】
【0053】
101…USBホスト端末、102…USBクライアント端末、103…USBケーブル、111…USBホストコネクタ、112…USBホストコネクタ、113…USBホストコネクタ、121…USBクライアントコネクタ、122…USBクライアントコネクタ、123…USBクライアントコネクタ、201…USBハブ、301…USBハブ、401…USBホスト端末内CPU、402…USBホスト端末内メモリ、403…USBホスト端末内記録装置、404…USBホスト端末内部バス、411…USBホストデバイス、412…USBホストデバイス、413…USBホストデバイス、501…USBクライアント端末内CPU,502…USBクライアント端末内メモリ、503…USBクライアント端末内記録装置、504…USBクライアント端末内部バス、511…USBクライアントデバイス、512…USBクライアントデバイス、513…USBクライアントデバイス、601…USBデバイスシミュレータ、602…ユーザUSBドライバ、603…ユーザアプリケーション、604…USB通信制御、605…プラグアンドプレイマネージャ、611…USBデバイスドライバ、612…USBデバイスドライバ、613…USBデバイスドライバ、701…USBクライアントデバイスマネージャ、702…ユーザファームウェア、711…USBクライアントデバイスドライバ、712…USBクライアントデバイスドライバ、713…USBクライアントデバイスドライバ、801…コンフィグレーション情報、802…コンフィグレーション情報、803…コンフィグレーション情報、811…仮想コンフィグレーション情報、1001…パケットデータ、1002…ヘッダ長、1003…属性フラグ、1004…PTS、1005…SRC、1006…ペイロードデータ、1101…USBクライアント端末内の転送前パケットデータ、1102…USBクライアント端末内の転送前パケットデータ、1103…USBクライアント端末内の転送前パケットデータ、1111…USBホスト端末の転送後パケットデータ、1112…USBホスト端末の転送後パケットデータ、1113…USBホスト端末の転送後パケットデータ、1205…クライアント端末内データ振り分け処理、1215…ホスト端末内データ並べ替え処理、1301…USBホスト端末の転送前パケットデータ、1302…USBホスト端末の転送前パケットデータ、1303…USBホスト端末の転送前パケットデータ、1311…USBクライアント端末内の転送後パケットデータ、1312…USBクライアント端末内の転送後パケットデータ、1313…USBクライアント端末内の転送後パケットデータ、1406…ホスト端末内データ振り分け処理、1416…クライアント端末内データ並べ替え処理、1501…2本のUSBインターフェースによる通信状態、1502…USBコンフィグレーション、1508…3本のUSBインターフェースによる通信状態、1601…3本のUSBインターフェースによる通信状態、1610…USB通信切断、1612…2本のUSBインターフェースによる通信状態、1701…USB通信監視、1802…USBスタンバイ状態への移行、1804…2本のUSBインターフェースによる通信状態

【特許請求の範囲】
【請求項1】
ホスト端末とこれに接続されるクライアント端末との間のシリアルインターフェースのデータ転送システムにおいて、
前記ホスト端末と前記クライアント端末は、複数のシリアルインターフェースをそれぞれ備え、その複数のシリアルインターフェースで接続され、前記複数のシリアルインターフェースを制御する送受信ソフトウェアをそれぞれ備え、
前記送受信ソフトウェアは、一連のデータ列を分割して前記複数のシリアルインターフェースに並列して送信する機能、及び前記複数のシリアルインターフェースに並列して送信された分割されたデータを受信して前記一連のデータ列に復元する機能を備え、
前記送受信ソフトウェアはデータ送受信中に、新たなシリアルインターフェース接続を確立して前記複数のシリアルインターフェースに追加する機能と、前記複数のシリアルインターフェース内の指定されたシリアルインターフェースの接続を切断して、その指定されたシリアルインターフェースをデータ送受信に用いない機能を備えていることを特徴とするシリアルインターフェースのデータ転送システム。
【請求項2】
請求項1記載のシリアルインターフェースのデータ転送システムであって、前記送受信ソフトウェアは、順番を示す番号を付して前記一連のデータ列を分割して前記複数のシリアルインターフェースに並列に送信し、前記複数のシリアルインターフェースにて並列に受信したデータに付された番号に従って受信したデータを前記一連のデータ列に復元する機能を備えていることを特徴とするシリアルインターフェースのデータ転送システム。
【請求項3】
請求項1または2記載のシリアルインターフェースのデータ転送システムであって、前記送受信ソフトウェアは、データ送受信速度を計測する機能を備え、データ送受信速度が十分に遅く、前記複数のシリアルインターフェース全てを用いなくてもデータ転送速度を変えずにデータ転送が可能な場合、前記複数のシリアルインターフェース内から不要なシリアルインターフェースを指定して、その指定された不要なシリアルインターフェースを切断して省電力状態にする機能と、
データ送受信速度が速くなった場合、前記切断され省電力状態にされたシリアルインターフェースの省電力状態を解除して、接続を確立して前記複数のシリアルインターフェースに追加して、データ送受信に用いる機能を備えていることを特徴とするシリアルインターフェースのデータ転送システム。
【請求項4】
請求項1〜3のいずれか1項記載のシリアルインターフェースのデータ転送システムであって、前記シリアルインターフェースは、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

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate