JP2006338615A - データ通信システム - Google Patents

データ通信システム Download PDF

Info

Publication number
JP2006338615A
JP2006338615A JP2005165958A JP2005165958A JP2006338615A JP 2006338615 A JP2006338615 A JP 2006338615A JP 2005165958 A JP2005165958 A JP 2005165958A JP 2005165958 A JP2005165958 A JP 2005165958A JP 2006338615 A JP2006338615 A JP 2006338615A
Authority
JP
Japan
Prior art keywords
host
driver
communication system
data communication
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005165958A
Other languages
English (en)
Inventor
Shinichi Suzuki
慎一 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005165958A priority Critical patent/JP2006338615A/ja
Publication of JP2006338615A publication Critical patent/JP2006338615A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 データ通信システムにおいて、効率的な通信処理を実現する。
【解決手段】 例えば、ホストと2台のデバイスから構成されるデータ通信システムにおいて、ホスト内に、この2台のデバイスに関連を持つデバイスドライバを設け、例えば、ホストに対して1台目のデバイスが接続された状態で、更に2台目のデバイスを接続した際に、このデバイスドライバを選択して使用する(S104b)。また、ホストに対して1台目のデバイスが未接続の状態で、2台目のデバイスを接続した際は、2台目固有のデバイスドライバを選択して使用する(S103b)。このように、デバイスの組み合わせに応じてデバイスドライバを選択することで効率的な通信処理が実現可能となる。なお、従来技術では、ホストが無条件に2台目固有のデバイスドライバを選択して使用していた(S102a)。
【選択図】 図1

Description

本発明は、データ通信システムに関し、特に、ホストと2台以上のデバイスからなるプラグアンドプレイ対応のデータ通信システムに適用して有効な技術に関するものである。
本発明者が検討したところによれば、データ通信システムの技術に関しては、以下のようなものが考えられる。
例えば、パーソナルコンピュータ(PC)などのホストに対して、USBデバイスなどを2台接続し、2台のデバイス間でデータ通信を行うようなデータ通信システムが知られている。この場合、ホストは、各USBデバイスに対応するデバイスドライバをそれぞれ個別にロードして、2台のデバイス間のデータ通信を制御する。
ところで、前記のようなデータ通信システムの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
近年、USBやIEEE1394などのプラグアンドプレイデバイス(以下、デバイス)が広く普及している。一方、デバイスを制御するホスト製品の高機能化も進み、PCや携帯端末などは、複数のデバイスを制御するのが普通である。それらホスト製品において、デバイスが接続されたときにロードされ使用されるデバイスドライバは、前述したようにデバイス毎に固定となっており、例えば図7に示すような方法で用いられる。
図7は、本発明の前提として検討したデータ通信システムにおいて、2台のプラグアンドプレイデバイス間で通信する際の動作の一例を示す説明図である。
まず、S701において、1台目のデバイス(デバイス[A]とする)70aをホスト71に接続すると、デバイス[A]70aは、ホスト71にデバイスを識別するデバイスID(ID=Aとする)を送信する。ホスト71のホスト制御部712のCPUは、デバイスIDを受信すると、ドライバテーブル部713からデバイス[A]70aに対応するドライバ[A]を、デバイスIDを参照し検索する。検索の結果、ドライバ[A]が存在すれば、それをデバイス制御部711にロードする。また、存在しなければ、デバイス[A]に付属するCD−ROMなどからドライバ[A]をインストールし、ドライバテーブル部713に登録後、ロードすることになる。
次いで、S702において、ホスト71はドライバ[A]を起動する。また、ユーザがドライバ[A]に対応するアプリケーション[A]を起動する。その後、デバイス[A]70aとホスト71間でデータ送受信が可能となる。
次いで、S703において、2台目のデバイス(デバイス[B]とする)70bをホスト71に接続すると、デバイス[B]70bは、ホスト71にデバイスを識別するデバイスID(ID=Bとする)を送信する。そして、デバイス[A]70aの場合と同様に、デバイス[B]70bに対応するドライバ[B]をデバイス制御部711にロードすることになる。
その後、S704において、ホスト71は、ドライバ[B]を起動する。また、ユーザがドライバ[B]に対応するアプリケーション[B]を起動する。起動が完了すると、アプリケーションとCPU経由でデバイス[A]70aとデバイス[B]70b間でデータ送受信が可能になる。
しかしながら、このようにして2台のデバイス間で通信する場合、それぞれのデバイスに固有なデバイスドライバとアプリケーションをロードし使用する必要があり、通信処理に無駄が多く、通信速度の低下、メモリの浪費、消費電力の増加が発生する。そこで、本発明の目的は、このような問題を鑑み、効率的な通信処理を備えたデータ通信システムを提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明によるデータ通信システムは、プラグアンドプレイに対応した少なくとも2台以上の下位装置と、これらの下位装置を接続可能な上位装置とを備えたものとなっている。そして、この上位装置は、例えば1台目の下位装置と2台目の下位装置との間の通信に特化したデバイスドライバを備え、この1台目の下位装置が接続された状態で2台目の下位装置が接続された際に、このデバイスドライバを選択して使用するものとなっている。
これによって、2台の下位装置間の通信処理が効率化され、通信の高速化や消費電力の低減、および使用するメモリ量の低減などが実現可能となる。なお、このようなデバイスドライバとしては、例えば、2台の下位装置のデータバッファ間で直接的にデータ転送を行わせるような機能を備えたものが挙げられる。
また、本発明によるデータ通信システムは、前述したようなデバイスドライバに加えて、1台目の下位装置や2台目の下位装置にそれぞれ固有のデバイスドライバを備えたものとなっている。そして、上位装置は、自身に対してどのような組み合わせで下位装置が接続されているかを判断して、適切なデバイスドライバを選択および使用するものとなっている。これによって、接続される下位装置の組み合わせに応じて上位装置を柔軟に対応させることができ、効率的な通信処理が実現可能となる。
なお、前記下位装置としては、例えば、USBやIEEE1394などに対応したデバイスが挙げられ、前記上位装置としては、例えば、パーソナルコンピュータなどが挙げられる。また、例えば、下位装置としてメモリカードを用い、上位装置として、メモリカードリーダライタを用いることもできる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、データ通信システムにおける通信処理の効率を向上させることが可能となる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
まず、本発明によるデータ通信システムの主要な特徴について説明する。図1は、本発明の一実施の形態によるデータ通信システムにおいて、その処理の一例を従来技術と比較して示した説明図であり、(a)は従来技術による処理フロー図、(b)は本発明による処理フロー図である。
図1(a)に示すように、従来技術のデータ通信システムでは、2台のプラグアンドプレイに対応したデバイスを制御するホスト機器に対して2台目のデバイスを接続した際に(S101a)、ホスト機器は、無条件に2台目固有のドライバを選択し使用するものとなっている(S102a)。一方、図1(b)に示すように、本発明によるデータ通信システムでは、前述したホスト機器に対して2台目のデバイスを接続した場合に(S101b)、ホスト機器は、1台目のデバイスとの組み合わせ条件に応じてそれぞれ異なるドライバを選択することが可能となっている。
すなわち、1台目のデバイスが未接続の場合は、2台目固有のドライバが選択されるが(S103b)、1台目のデバイスが接続済みの場合は、1台目と2台目で関連を持つドライバを選択し使用することが可能となっている(S104b)。これによって、通信処理の効率化を図ることが可能となる。以下、このような特徴を備えたデータ通信システムの詳細な構成および動作の一例について説明する。
図2は、本発明の一実施の形態によるデータ通信システムにおいて、その構成の一例を示す概略図である。図2に示すデータ通信システムは、例えば、プラグアンドプレイ対応デバイスであるデバイス[A]20a、プラグアンドプレイ対応デバイスであるデバイス[B]20b、及びそれらを制御するホスト21などから構成される。なお、本発明はデバイスが3台以上でも実現可能であるが、簡略化のためデバイスが2台のシステムで説明する。ホスト21は、アプリケーション部210、ホスト制御部212、デバイス制御部211、及びドライバテーブル部213などを含んでいる。
アプリケーション部210は、デバイス[A]に対応するアプリケーションソフトウエア(アプリケーション)[A]、及びデバイス[B]に対応するアプリケーション[B]で構成される。アプリケーションの一例としては、例えば、エクスプローラやオーディオプレーヤなどが挙げられる。なお、システムによってはデバイス[A]とデバイス[B]で共通のアプリケーションが使用される場合もある。ホスト制御部212は、アプリケーションの実行や接続されたデバイスに対応するドライバの検索などをするCPU(中央演算装置)などで構成される。
デバイス制御部211は、ドライバ[A](ドライバ[B])及びデバイス[A]ホストコントローラ(デバイス[B]ホストコントローラ)に加えて、特別に設けたドライバ[AB]から構成される。ドライバ[A](ドライバ[B])は、デバイス[A](デバイス[B])に固有のプロトコルに従ったトランザクションやコマンドシーケンスの管理、及びデバイス[A]ホストコントローラ(デバイス[B]ホストコントローラ)の制御などを担うソフトウエアである。
ドライバ[AB]は、デバイス[A]とデバイス[B]間でのデータ転送に特化したドライバとなっている。このドライバ[AB]は、ドライバ[A]とドライバ[B]の機能の一部に加え、例えばデバイス[A]ホストコントローラとデバイス[B]ホストコントローラのデータバッファ間のDMA(Direct Memory Access)転送機能などを持つソフトウエアである。すなわち、ホスト21のCPUを介さずにデータ転送を行わせる機能を備えたものである。
なお、ドライバ[A](ドライバ[B])は、デバイス[A]接続時に、ドライバ[AB]は、デバイス[A]とデバイス[B]接続時に、ドライバテーブル部213からデバイス制御部211にロードされ、デバイスが削除されるとデバイス制御部211からアンロードされる。デバイス[A]ホストコントローラ(デバイス[B]ホストコントローラ)は、デバイス[A](デバイス[B])との間で固有のプロトコルに従ったコマンドやデータの送受信を行うハードウエアである。
ドライバテーブル部213は、ドライバ[A]、ドライバ[B]、及びドライバ[AB]を格納するハードディスク等に割り当てられた領域である。ドライバ[A](ドライバ[B])は、最初にデバイス[A](デバイス[B])を接続した時、デバイス[A](デバイス[B])に付属するCD−ROMなどからインストールされる。また、ドライバ[AB]は、最初にデバイス[A]とデバイス[B]を共に接続した時、デバイス[A]またはデバイス[B]に付属するCD−ROMなどからインストールされる。
なお、デバイス[A]とデバイス[B]は同じ構成であり、例えば、USBやIEEE1394などのプラグアンドプレイに対応したデバイスとなっている。その一例として、USBインタフェースを持つオーディオプレーヤやメモリカードリーダライタなどが挙げられる。なお、図2のデータ通信システムでは、一般的なデバイスに対して、特に何らかの変更を加える必要はない。
図3は、図2のデータ通信システムにおいて、その通信手順の一例を説明する概略図である。
まず、S301において、1台目のデバイス(デバイス[A]とする)20aをホスト21に接続すると、デバイス[A]20aはホスト21にデバイスを識別するデバイスID(ID=Aとする)を送信する。ホスト21のホスト制御部212のCPUは、このデバイスIDを受信すると、ドライバテーブル部213からデバイス[A]に対応するドライバ[A]を、デバイスIDを参照し検索する。検索の結果、ドライバ[A]が存在すれば、それをデバイス制御部211にロードする。また、存在しなければ、デバイス[A]に付属するCD−ROMなどからドライバ[A]をインストールし、ドライバテーブル部213に登録後、ロードすることになる。
次に、S302において、ホスト21は、ドライバ[A]を起動する。また、ユーザがドライバ[A]に対応するアプリケーション[A]を起動する。その後、デバイス[A]20aとホスト21間でデータ送受信が可能となる。
続いて、S303において、デバイス[B]20bをホスト21に接続すると、デバイス[B]20bは、ホスト21にデバイスを識別するデバイスID(ID=Bとする)を送信する。ホスト21のCPUは、デバイスIDを受信すると、デバイス[A]20aが接続されているかを検索する。この場合、デバイス[A]20aが接続されているので、デバイス[A]20aとデバイス[B]20b間でのデータ転送に特化したドライバ[AB]をドライバテーブル部213から検索する。検索の結果、ドライバ[AB]が存在すれば、それをロードする。また、存在しなければ、デバイス[B](または、デバイス[A])に付属するCD−ROMなどからドライバ[AB]をインストールし、ドライバテーブル部213に登録後、デバイス制御部211にロードすることになる。なお、ドライバ[AB]をロード後、ドライバ[A]を停止し、これをデバイス制御部211からアンロードすることにより、メモリの浪費を軽減することも可能である。また、ユーザは、アプリケーション[A]を停止することもできる。
次いで、S304において、ホスト21は、ドライバ[AB]を起動する。起動完了後、デバイス[A]20aとデバイス[B]20b間で、例えばデバイス[A]ホストコントローラとデバイス[B]ホストコントローラのデータバッファ間のDMA転送機能などを使用した、効率の良いデータ送受信が可能になる。また、従来技術のようにアプリケーションとCPUを経由する必要もなくなる。
図4および図5は、図2のデータ通信システムにおいて、そのホストの詳細な処理の一例を示すフロー図である。なお、図5は、図4に続く処理フローとなっている。
まず、図4のS401において、ホスト21の起動後、ホスト21が、デバイス[A]20aとデバイス[B]20bの接続、及び削除の検出準備をする。具体的には、例えば、デバイス[A]20a(デバイス[B]20b)が接続されているかを管理する目的で、CON_FLG_A(CON_FLG_B)というフラグを定義する。そして、デバイス[A]20a(デバイス[B]20b)が接続されていればCON_FLG_A=1(CON_FLG_B=1)、未接続であればCON_FLG_A=0(CON_FLG_B=0)とする。初期状態は接続されていないので、CON_FLG_AとCON_FLG_Bの初期値は0とする。その後、S402に移行する。
S402において、ホスト21は、デバイス[A]20a(またはデバイス[B]20b)に対応するデバイス接続割り込みの発生有無を判定する。デバイス接続割り込みが有った場合は、S403へ移行し、無い場合は図5のS412へ移行する。なお、デバイス接続割り込みは、ホスト21のデバイス[A]20a(またはデバイス[B]20b)が接続された際に、ホスト21のデバイス[A]ホストコントローラ(またはデバイス[B]ホストコントローラ)から出力される。
S403において、ホスト21のCPUがデバイス接続割り込みを検出すると、デバイス[A]20aとデバイス[B]20bのうち、どちらのデバイスが接続されたかを判定する。デバイス[A]20aの場合は、CON_FLG_A=1に設定後、S404に移行し、デバイス[B]20bの場合は、CON_FLG_B=1に設定後、S408に移行する。なお、このデバイス接続割り込みの判定は、例えばデバイス[A]ホストコントローラとデバイス[B]ホストコントローラのレジスタ等を参照することで行う。
S404において、S403でデバイス[A]20aが接続された場合に、加えてデバイス[B]20bが既に接続状態であるか否かを判定する。この判定は、例えば、CON_FLG_Bを参照することで行う。デバイス[B]20bが接続状態の場合は、S405へ移行し、未接続状態の場合は、S407へ移行する。
S405およびS406において、S404でデバイス[B]20bが接続状態(CON_FLG_B=1)である場合、ホスト21は、ドライバテーブル部213からデバイス[A]20aとデバイス[B]20b間でのデータ転送に特化したドライバ[AB]をロードする(S405)。その後、デバイス[A]20aとデバイス[B]20b間でデータ転送が可能になる。更に、ホスト21は、ドライバ[AB]をロードしたので、アプリケーション[B]を使用する必要がなければ、ドライバ[B]をアンロードする(S406)。そして、図5のS412へ移行する。
S407において、S404でデバイス[B]20bが未接続状態(CON_FLG_B=0)である場合、ホスト21は、ドライバ[A]をロードする。その後、ユーザは、アプリケーション[A]を起動することでドライバ[A]を使用できる。そして、図5のS412へ移行する。
S408において、S403でデバイス[B]20bが接続された場合に、加えてデバイス[A]20aが既に接続状態であるか否かを判定する。この判定は、例えば、CON_FLG_Aを参照することで行う。デバイス[A]20aが接続状態の場合は、S409へ移行し、未接続状態の場合は、S411へ移行する。
S409およびS410において、S408でデバイス[A]20aが接続状態(CON_FLG_A=1)である場合、ホスト21は、ドライバ[AB]をロードする(S409)。その後、デバイス[A]20aとデバイス[B]20b間でデータ転送が可能になる。更に、ホスト21は、ドライバ[AB]をロードしたので、アプリケーション[A]を使用する必要がなければ、ドライバ[A]をアンロードする(S410)。そして、図5のS412へ移行する。
S411において、S408でデバイス[A]20aが未接続状態(CON_FLG_A=0)である場合、ホスト21は、ドライバ[B]をロードする。その後、ユーザは、アプリケーション[B]を起動することでドライバ[B]を使用できる。そして、図5のS412へ移行する。
次に、図5のS412において、ホスト21は、デバイス[A]20a(またはデバイス[B]20b)に対応するデバイス削除割り込みの発生有無を判定する。デバイス削除割り込みが有った場合は、S413へ移行し、無い場合はS422へ移行する。なお、デバイス削除割り込みは、ホスト21のデバイス[A]20a(またはデバイス[B]20b)が削除された場合に、ホスト21のデバイス[A]ホストコントローラ(またはデバイス[B]ホストコントローラ)から出力される。
S413において、ホスト21のCPUがデバイス削除割り込みを検出すると、デバイス[A]20aとデバイス[B]20bのうち、どちらのデバイスが削除されたかを判定する。デバイス[A]20aの場合は、CON_FLG_A=0に設定後、S414に移行し、デバイス[B]20bの場合は、CON_FLG_B=0に設定後、S418に移行する。なお、このデバイス削除割り込みの判定は、例えばデバイス[A]ホストコントローラとデバイス[B]ホストコントローラのレジスタ等を参照することで行う。
S414において、S413でデバイス[A]20aが削除された場合に、加えてデバイス[B]20bが接続状態であるか否かを判定する。この判定は、例えば、CON_FLG_Bを参照することで行う。デバイス[B]20bが接続状態の場合は、S415へ移行し、未接続状態の場合は、S417へ移行する。
S415およびS416において、S414でデバイス[B]20bが接続状態(CON_FLG_B=1)である場合、ホスト21は、ドライバテーブル部213からドライバ[AB]をアンロードする(S415)。更に、ホスト21は、ドライバ[AB]をアンロードしたので、アプリケーション[B]を使用する必要があれば、ドライバ[B]をロードする(S416)。そして、S422へ移行する。
S417において、S414でデバイス[B]20bが未接続状態(CON_FLG_B=0)である場合、ホスト21は、ドライバ[A]をアンロードする。そして、S422へ移行する。
S418において、S413でデバイス[B]20bが削除された場合に、加えてデバイス[A]20aが接続状態であるか否かを判定する。この判定は、例えば、CON_FLG_Aを参照することで行う。デバイス[A]20aが接続状態の場合は、S419へ移行し、未接続状態の場合は、S421へ移行する。
S419およびS420において、S418でデバイス[A]20aが接続状態(CON_FLG_A=1)である場合、ホスト21は、ドライバ[AB]をアンロードする(S419)。更に、ホスト21は、ドライバ[AB]をアンロードしたので、アプリケーション[A]を使用する必要があれば、ドライバ[A]をロードする(S420)。そして、S422へ移行する。
S421において、S418でデバイス[A]20aが未接続状態(CON_FLG_A=0)である場合、ホスト21は、ドライバ[B]をアンロードする。そして、S422へ移行する。
S422において、ホスト21の起動を終了しないのであれば、図4のS402に戻りデバイスの接続や削除を待つ。
以上、これまでに述べたような構成および動作を用いることで、例えば下記(1),(2)のような効果を得ることが可能になる。
(1)2台以上のプラグアンドプレイデバイス間で通信する場合に、通信速度の向上、消費するメモリ量や電力の削減が得られる。すなわち、本発明によるデータ通信システムでは、1台目に加えて2台目のデバイスをホストに接続した場合に、2台のデバイス間でのデータ転送に特化した機能(例えばホストコントローラ間のDMA転送機能など)を持つドライバをロードし使用することが可能となっている。したがって、2台のデバイス間の転送効率が高くなり、通信速度の向上が得られる。また、ホストの処理が低減され、消費電力の削減が得られる。
さらに、ホストにおいて、1台目のデバイス用のドライバをメモリからアンロードすることにより、使用するメモリ量の削減も可能となる。また、この特化したドライバに加えて通常の各デバイス毎のドライバを準備しておき、これらの中から実際に使用するドライバを、接続されたデバイスの組み合わせに応じて柔軟に使い分けることで、処理の効率化が図れる。
(2)2台のプラグアンドプレイデバイスを制御可能である従来技術のホストに対して、前述したような2台のデバイス間でのデータ転送に特化した機能を追加することで、少ない開発コストで高性能な通信機能を容易に実現可能となる。すなわち、従来のドライバと全く独立したドライバを開発することになるので、従来技術のドライバに悪影響を与える懸念がなく、容易又は低コストで開発および実装が可能となる。
このようなことから、本発明によるデータ通信システムは、特に、省電力を要求されるバッテリ駆動のノートPCおよび携帯端末などに適用して有益なものとなる。また、ホストが対応するデバイスは、前述したUSBやIEEE1394などに限らず、無線によるプラグアンドプレイ機能に対応したBluetooth(R)インタフェースなどにも適用可能である。
図6は、本発明の一実施の形態のデータ通信システムにおいて、その他の構成および動作の一例を示す説明図である。前述した図2では、プラグアンドプレイ対応のデバイスと、それらを制御するホストとを備えたデータ通信システムにおいて、そのホストに機能を追加する例を示したが、例えば図6に示すようなプラグアンドプレイ対応のデバイスに対して同様の機能を追加することも可能である。このようなプラグアンドプレイ対応のデバイスとしては、例えば、USBインタフェースを持つ、SD(Secure Digital)カードとCF(Compact Flash(R))カードに対応したUSBメモリカードリーダライタなどが挙げられる。
このようなUSBメモリカードリーダライタ60は、例えば図6に示すような構成となっている。まず、USBコントローラ600は、ホスト63に接続可能で、USBを制御するハードウエアとなっており、USBドライバ601は、USBを制御するソフトウエアとなっている。SDホストコントローラ602は、SDカード61に接続可能で、それを制御するハードウエアとなっており、SDドライバ603は、SDカード61を制御するソフトウエアとなっている。CFホストコントローラ604は、CFカード62に接続可能で、それを制御するハードウエアとなっており、CFドライバ605は、CFカード62を制御するソフトウエアとなっている。そして、このような構成に加えて、更にSD・CFダイレクトドライバ606を備えている。
SD・CFダイレクトドライバ606は、SDホストコントローラ602とCFホストコントローラ604間での直接のDMA転送などを制御する機能を備えたソフトウエアである。これは、図2等のシステムが備えている2台間のデータ転送に特化したドライバと等価な機能を有している。なお、リーダライタ制御部607は、これらの各ドライバの制御などを行うものである。
次に、USBメモリカードリーダライタ60の動作の一例について、下記3通りの場合を想定して説明する。
[1]まず、SDカード61を接続し、ホスト63とSDカード61間でデータ転送を行う場合は、リーダライタ制御部607が、SDドライバ603とUSBドライバ601のみを起動する。そして、これによって、ホスト63とSDカード61間でデータ転送を行う。
[2]次に、CFカード62を接続し、ホスト63とCFカード62間でデータ転送を行う場合は、リーダライタ制御部607が、CFドライバ605とUSBドライバ601のみを起動する。そして、これによって、ホスト63とCFカード62間でデータ転送を行う。
[3]最後に、SDカード61とCFカード62を接続し、SDカード61とCFカード62間でデータ転送を行う場合は、リーダライタ制御部607が、SDカード61とCFカード62が共に接続されているという組み合わせ条件に基づいて、SD・CFダイレクトドライバ606を選択する。そして、リーダライタ制御部607がSD・CFダイレクトドライバ606とUSBドライバ601を起動することで、SDカード61とCFカード62間でのデータ転送が行われる。
このように、SD・CFダイレクトドライバ606の使用により、SDホストコントローラ602とCFホストコントローラ604間での直接のDMA転送など、効率の良いデータ転送が可能となる。なお、SDドライバ603とCFドライバ605の起動は必要なくなるが、USBドライバ601の起動は、ホスト63に転送状態などを通知するため必要となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明のデータ通信システムは、ホストと複数のデバイスからなるUSBやIEEE1394などのシステムに適用して特に有益なものであり、これに限らず、メモリカードリーダライタと複数のメモリカードからなるシステムや、ホストに対して有線または無線で複数のデバイスを接続可能なシステムなどを含めて広く適用可能である。
本発明の一実施の形態によるデータ通信システムにおいて、その処理の一例を従来技術と比較して示した説明図であり、(a)は従来技術による処理フロー図、(b)は本発明による処理フロー図である。 本発明の一実施の形態によるデータ通信システムにおいて、その構成の一例を示す概略図である。 図2のデータ通信システムにおいて、その通信手順の一例を説明する概略図である。 図2のデータ通信システムにおいて、そのホストの詳細な処理の一例を示すフロー図である。 図2のデータ通信システムにおいて、そのホストの詳細な処理の一例を示すフロー図であり、図4に続く処理フローである。 本発明の一実施の形態のデータ通信システムにおいて、その他の構成および動作の一例を示す説明図である。 本発明の前提として検討したデータ通信システムにおいて、2台のプラグアンドプレイデバイス間で通信する際の動作の一例を示す説明図である。
符号の説明
20a,20b,70a,70b デバイス
21,63,71 ホスト
210,710 アプリケーション部
211,711 デバイス制御部
212,712 ホスト制御部
213,713 ドライバテーブル部
60 USBメモリカードリーダライタ
61 SDカード
62 CFカード
600 USBコントローラ
601 USBドライバ
602 SDホストコントローラ
603 SDドライバ
604 CFホストコントローラ
605 CFドライバ
606 SD・CFダイレクトドライバ
607 リーダライタ制御部

Claims (5)

  1. プラグアンドプレイに対応した第1の下位装置および第2の下位装置と、
    前記第1および前記第2の下位装置を接続可能な上位装置とを備えたデータ通信システムであって、
    前記上位装置は、前記第1の下位装置と前記第2の下位装置との間の通信に特化した第3のデバイスドライバを有し、
    前記上位装置に対して前記第1の下位装置が接続され使用可能な状態で、前記上位装置に対して前記第2の下位装置が接続された際に、前記上位装置は、前記第3のデバイスドライバを選択して使用することを特徴とするデータ通信システム。
  2. 請求項1記載のデータ通信システムにおいて、
    前記上位装置は、前記第1および前記第2の下位装置にそれぞれ対応した第1および第2のデバイスドライバを有し、
    前記上位装置は、前記上位装置に対して前記第1および前記第2の下位装置がどのような組み合わせで接続されているかに応じて、前記第1および前記第2ならびに前記第3のデバイスドライバの中から所望のデバイスドライバを選択して使用することを特徴とするデータ通信システム。
  3. 請求項1記載のデータ通信システムにおいて、
    前記上位装置は、CPUを備え、
    前記第3のデバイスドライバは、前記上位装置のCPUを介さずに前記第1の下位装置と前記第2の下位装置との間の直接的なデータ転送を可能にする機能を備えていることを特徴とするデータ通信システム。
  4. 請求項1記載のデータ通信システムにおいて、
    前記第1および前記第2の下位装置は、USBデバイスであり、
    前記上位装置は、パーソナルコンピュータであることを特徴とするデータ通信システム。
  5. 請求項1記載のデータ通信システムにおいて、
    前記第1および前記第2の下位装置は、メモリカードデバイスであり、
    前記上位装置は、メモリカードリーダライタであることを特徴とするデータ通信システム。
JP2005165958A 2005-06-06 2005-06-06 データ通信システム Pending JP2006338615A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005165958A JP2006338615A (ja) 2005-06-06 2005-06-06 データ通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005165958A JP2006338615A (ja) 2005-06-06 2005-06-06 データ通信システム

Publications (1)

Publication Number Publication Date
JP2006338615A true JP2006338615A (ja) 2006-12-14

Family

ID=37559080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005165958A Pending JP2006338615A (ja) 2005-06-06 2005-06-06 データ通信システム

Country Status (1)

Country Link
JP (1) JP2006338615A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017033537A (ja) * 2014-07-24 2017-02-09 ヌヴォトン テクノロジー コーポレーション 外部不揮発性メモリに間接アクセスするセキュリティデバイス
JP2020177661A (ja) * 2019-04-07 2020-10-29 新唐科技股▲ふん▼有限公司 安全装置、安全方法、安全システム、及び安全設備

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017033537A (ja) * 2014-07-24 2017-02-09 ヌヴォトン テクノロジー コーポレーション 外部不揮発性メモリに間接アクセスするセキュリティデバイス
JP2020177661A (ja) * 2019-04-07 2020-10-29 新唐科技股▲ふん▼有限公司 安全装置、安全方法、安全システム、及び安全設備
JP7033383B2 (ja) 2019-04-07 2022-03-10 新唐科技股▲ふん▼有限公司 安全装置、安全方法、安全システム、及び安全設備

Similar Documents

Publication Publication Date Title
JP5085334B2 (ja) Usb・otgコントローラ
CN100555257C (zh) 处理页面复制期间的dma操作的存储控制器和方法
US20060059293A1 (en) Universal serial bus switching hub
KR20180050728A (ko) 멀티-노드 네트워크에서의 입력/출력 신호 브릿징 및 가상화
US20160232122A1 (en) Universal serial bus (usb) hub for switching downstream ports between host mode and slave mode
TW201722120A (zh) 用於訊息傳遞和輸入/輸出傳遞介面的最優潛時封包化器有限狀態機
JPWO2006035738A1 (ja) ホストコントローラ
JP4556220B2 (ja) データ伝送ブリッジ装置とそのコントロールチップ及びデータ伝送ブリッジ方法
US20140280960A1 (en) Methods and apparatus for dynamically allocating devices between multiple controllers
JP2009070401A (ja) Ata/sata複合コントローラ
US20050060490A1 (en) Apparatus for multiple host access to storage medium
JP2001156797A (ja) ワイヤレスusbハブ
US20110314268A1 (en) Sd switch box in a cellular handset
JP3556913B2 (ja) Pcカード入出力制御装置
JP2006508413A5 (ja)
JP2008009817A (ja) 半導体装置及びデータ転送方法
US9565049B2 (en) Communication apparatus, communication method, and computer product for sharing data
JP2006338615A (ja) データ通信システム
TWI502333B (zh) 用於節省功率和節省面積計算的異構性多處理器設計
KR101118558B1 (ko) Usb otg 제어기
TWI784165B (zh) Usb主機對主機晶片
CN101833523B (zh) 数据存取方法
JP2004152156A (ja) インタフェース変換装置
US20030041190A1 (en) System and method for efficiently performing a command swapping procedure
JPWO2004068356A1 (ja) データ通信システムおよびデータ通信方法、データ通信プログラム