JP2009009210A - 通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラム - Google Patents
通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2009009210A JP2009009210A JP2007167616A JP2007167616A JP2009009210A JP 2009009210 A JP2009009210 A JP 2009009210A JP 2007167616 A JP2007167616 A JP 2007167616A JP 2007167616 A JP2007167616 A JP 2007167616A JP 2009009210 A JP2009009210 A JP 2009009210A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- host
- predetermined
- data transmission
- procedure
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】OTG規格に則ったDRD同士の接続において通常の手順では通信できないときに、ユーザにケーブルの接続のし直しなどの手間をかけたり、あるいは煩雑な仕様を意識させたりせずに、自動的に通信可能な状態に移行にする。
【解決手段】Aデバイスは、自分がBデバイスをサポートしていないとき、Bデバイスに対しホスト/デバイスの役割交替が許可されたことを通知する。そして、AデバイスがBデバイスから肯定応答を受けると、AデバイスとBデバイスは通信を停止し、双方でHNPによるホスト/デバイスの役割交替を行ない、Aデバイスはデバイスに、Bデバイスはホストにそれぞれ役割を切り替える。
【選択図】 図4
【解決手段】Aデバイスは、自分がBデバイスをサポートしていないとき、Bデバイスに対しホスト/デバイスの役割交替が許可されたことを通知する。そして、AデバイスがBデバイスから肯定応答を受けると、AデバイスとBデバイスは通信を停止し、双方でHNPによるホスト/デバイスの役割交替を行ない、Aデバイスはデバイスに、Bデバイスはホストにそれぞれ役割を切り替える。
【選択図】 図4
Description
本発明は、所定の通信インターフェースを介して複数の機器がデータ伝送を行なう通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムに係り、特に、1台の機器が「ホスト」として通信インターフェース上のデータ伝送を制御するとともに、その他の機器が「デバイス」としてホストの制御に従って通信インターフェース上でデータ伝送を行なう通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムに関する。
さらに詳しくは、本発明は、PCなどの固定的なホストが存在しない環境下で、ホスト及びデバイスの双方の役割が可能な通信機器が互いにホストとデバイスの役割を簡易に分担する通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムに係り、特に、初期状態でそれぞれホスト及びデバイスに決定された通信機器間において所定の通信プロトコルに従ってホスト及びデバイスの役割を交替する通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムに関する。
USB(Universal Serial Bus)は、シリアルポート(RS−232C)やパラレルポートなどのレガシーポートに代替される、プラグアンドプレイに対応した汎用バス・インターフェース規格である。USBは、当初米インテル社を始めとする4社で仕様が策定されたが、現在はNPOであるUSB Implementers Forum,Inc.(USB−IF)によって仕様の策定や管理が行なわれている。規格上IEEE1394(最大400Mbps)を越える速度で高速転送できるHigh Speedモード(最大480Mbps)を実現したUSB2.0が広く普及している。
USBでは、周辺機器の機能に応じてグループ分けされたUSBクラスと呼ばれる仕様群が定義されている。それぞれのクラス仕様に従って作成されたデバイスは同じ機能を提供していることから、クラス準拠のデバイスはクラス・ドライバによって動作することができ、デバイス毎に個別のドライバ・ソフトウェアを用意する必要がない。
USBは、本来は有線ケーブルを利用した伝送方式であり、共通のシリアル通信バスを介して複数の機器を接続して1つのUSB通信システムが構成される。また最近では、有線の安全性と通信速度と無線の使い易さを融合してUSBを無線通信に拡張した“Wireless USB”(WUSB)の開発が進められている。WUSBは、超広帯域を用いる無線技術であるUWB(Ultra Wide Band)を応用したもので、物理層及びMAC層の規格としてはWiMedia Allianceが推進するマルチバンドOFDM方式を採用している。WUSBによれば、通信範囲3メートルで最高480Mbps、10メートルで最高110Mbpsの速度での通信が可能で、また、スタートポロジを使用して1台のホストに対し最大127台のデバイスを接続することができる。
USBの通信システムは、USB接続される複数の機器のうちの1つが「ホスト(Host)」、その他の機器が「デバイス」と称される機能をそれぞれ果たす(なお、デバイスについては、「ファンクション(Function)」あるいは「ペリフェラル(Peripheral)」と呼ぶこともあるが、本明細書では「デバイス」に統一して表記することにする)。有線USBシステムの場合、USBケーブルは、その一端にホスト接続用の「Aプラグ」、他端にデバイス接続用の「Bプラグ」がそれぞれ配設された非対称な構造である。この場合、Aプラグが差し込まれた機器がホストとして動作するとともにBプラグが差し込まれた機器がデバイスとして動作し、ホストとデバイスの関係が固定的である。
ホストはUSBインターフェース上のデータの伝送の全般を制御する役目を有しており、通常はパーソナル・コンピュータ(PC)がホストになる。ホスト機器は例えば新しくUSB接続されたデバイス機器を検出する処理や、バス上におけるデータの流れを管理する処理などを行なう。他方のデバイスは、ホストの制御下で通信を行なう。デバイスの接続相手は常にホストとなる。
USBを利用した通信は、基本的に、ホスト側でスケジューリングが行なわれ、常にホスト側から通信が開始され、デバイスがこれに応答するという形態をとる。すなわち、ホストからデバイスに対して要求が伝えられ、デバイスがこの要求に対して応答を返すという方法により通信を行なう。デバイスが自らの情報をホストに通知する動作や、ホストとの間でデータを送受信する動作は、いずれもホストからの要求に対しデバイスが応答する動作として実行される。
USBは、例えばホストとして動作するPC(Personal Computer)と、デバイスとして動作するプリンタなどの周辺機器とを接続する技術として既に広く普及しており、事実上の業界標準の地位を確立している。また、最近では、USBに準拠したさまざまな周辺機器が出現してきたことに伴い、PCを介さない周辺機器同士の接続への要求が高まっている。
このような要求に応えるべく、USB2.0の追加規格として、USB On−The−Go(以下、「OTG」と表記する)が策定されている。これにより、本来はホストでないデジタルカメラなどの機器に対してUSB2.0のホスト・コントローラ機能を限定的に追加して、周辺機器の間で直接データを伝送することが可能になった。
OTGを導入すると、デジタルカメラやスキャナとプリンタ、携帯電話と携帯音楽プレーヤやメモリカード・リーダ、PDA(Personal Digital Assistant)とハード・ディスクやMO(Magneto Optical)ドライブなどの組み合わせで、PCを介さずに周辺機器同士が直接にデータのやり取りをできるようになる。例えば、デジタルカメラとプリンタ間をUSBケーブルで直接接続して「ダイレクトプリント」を行なうことができる。また、PDAと携帯電話機をUSB接続してPDAをインターネット接続することができ、携帯音楽プレーヤ徒携帯電話機をUSB接続してインターネットから携帯音楽プレーヤに楽曲をダウンロードすることができる。
USBをPCの周辺機器接続用のインターフェースとして使用する場合には、PCがホストとなり周辺機器がデバイスとなる関係は固定的であり、USBケーブルのプラグ形状からもホスト/デバイス関係が一義に決められる(前述)。これに対し、周辺機器同士の直接接続を考慮した場合、例えばデジタルカメラは、PCに接続されているときはデバイスとして動作し、プリンタにダイレクトプリントするときにはホストとして動作するという具合に、USB接続された機器間においてホストとデバイスの役割を柔軟に決定することが望ましい。
そこで、OTGでは、ホストとデバイスの両方の機能を有する機器として、デュアル・ロール・デバイス(Dual Role Device)(以下では、「DRD」と表記する)が規定されている。DRDは、接続されるUSBケーブルのプラグの型に応じて、初期状態の機能(ホストとデバイスの分担)を決定する。すなわち、OTG対応のUSBケーブルは、その一端がMini−Aと称されるプラグで他端がMini−Bと称されるプラグを持つ非対称構造であり、Mini−Aとプラグに接続された機器が初期状態においてホストになるとともに、Mini−Bプラグに接続された機器が初期状態においてデバイスになる。Mini−Aプラグに接続される機器は「Aデバイス」、Mini−Bプラグに接続される機器は「Bデバイス」と呼ばれる。
また、OTGでは、USB2.0の通信プロトコルに加えて、SRP(Session Request Protocol)、及び、HNP(Host Negotiation Protocol)と称される通信プロトコルが用意されている。
OTGで規定されるAデバイスは、未通信時にUSBバスへの電流供給を停止することが許されている。SRPは、その電流供給停止時に、BデバイスからAデバイスへ電流供給の再開を促すための通信プロトコルである。Aデバイスは、SRPを用いればBデバイスから要求されるまではUSBバスへの電流供給を停止することができ、未通信時における消費電力を低減することができる。
また、OTG対応のUSBケーブルを介して接続される2つのDRDは、それぞれに差し込まれたプラグの型に応じて、初期状態におけるホスト及びデバイスの役割分担が決定される(前述)。HNPは、一方がホスト、他方がデバイスとして動作しているときに、プラグの挿し替えを行なうことなく、ホストとデバイスの役割を交替するための通信プロトコルである。これにより、プラグの差し替えの手間が省けるため、ユーザの利便性が向上する。
ところで、このOTGに準拠するUSB通信装置は、主にデジタルカメラやPDA、携帯電話などのモバイル機器への搭載が想定されている。一般にモバイル機器は、CPU(Central Processing Unit)や主記憶装置、2次記憶装置、その他のハードウェアなどのリソースが制限されており、DRDであってもホストとしてあらゆる種類のデバイスをサポートすること(言い換えれば、さまざまなデバイスのデータ伝送を制御するためのデバイス・ドライバをあらかじめシステムにインストールしておくこと)は現実的に困難である。また、PCの場合は、適宜デバイス・ドライバを追加してホストとしてサポートするデバイスを柔軟に増やすことが可能であるのに対し、一般的なモバイル機器は新規にデバイス・ドライバを簡単に追加する手段を備えおらず、デバイス・ドライバの新規インストールによる対応も難しい。
要するに、DRDに搭載されるホスト・コントロール機能は制限されたものであり、USB接続されることが想定されるすべてのデバイスをホストとしてサポートしていないため、物理的にはUSBケーブル越しに通信装置を接続できたとしてもその使用が不可能なことが多いと思料される。
ここで、DRDにUSB接続された通信装置がホスト・コントローラ機能を持つDRDである場合、すなわちDRD同士の接続の場合について考察してみる。
2台のDRDをそれぞれ機器1並びに機器2とすると、機器1がホストとしてサポートしているデバイス群と、機器2がホストとしてサポートしているデバイス群は一般に異なる。このため、これらの機器間を接続するUSBケーブルの接続方向(いずれの機器にMini−Aプラグ並びにMini−Bプラグを差し込むか)によって、言い換えれば初期状態において機器1、機器2のいずれをAデバイスにするかによって通信の可否が変化する可能性がある。
例えば、機器1と機器2が相互にホストとして他方の機器をサポートしているときには、いずれをAデバイスに選択してもUSB接続しても、問題なく通信が可能である。また、機器1と機器2の双方が相手の機器をホストとしてサポートしていない場合には、いずれをAデバイスに選択してUSB接続しても機器の使用はできない。すなわち、これらの各機器の他の機器に対するサポート状況が対称的となる2つの場合には、いずれをAデバイスに選択しても、通信の可否は変化しない。
続いて、例えば機器2はホストとして機器1をサポートしているが、機器1はホストとして機器2をサポートしていないという、各機器の他の機器に対するサポート状況が対称的とならない状況を考える。機器2をAデバイスに選択した場合には問題なく通信可能であるのに対し、機器1をAデバイスに選択した場合には通信が不可能になるから、USBケーブルの接続方向(いずれの機器にMini−Aプラグを差し込むか)に応じて、通信の可否が変化することになる。
このため、USBケーブルの接続方向によっては、機器の使用ができないという不都合が生じる可能性がある。また、一般のユーザはUSBに対する専門知識は無いため、USBケーブルの接続方向毎に通信動作が異なると、ユーザの混乱を招くことになり、大きな問題になる。
例えば、DRD同士の接続において相互の通信性能に基づいて、ホストとデバイスの役割を交換することによって通信性能を向上させる通信システムについて提案がなされている(例えば、特許文献1を参照のこと)。しかしながら、同通信システムは、USB接続されたDRDの間でホストとデバイスの役割を交替することで消費電力や通信速度の改善することを目的としたものであるが、USB接続された各DRDがそれぞれサポートするデバイス群の相違のためにUSBケーブルの接続方向に応じて通信の可否が変化するという上記の問題を解決することはできない。
また、USB接続されたカメラとプリンタにおいて、両機器の性能や機種、電源状態に応じてホストとデバイスの役割を交替する電子機器について提案がなされているが(例えば、特許文献2を参照のこと)、同電子機器は、USB接続された各DRDがそれぞれサポートするデバイス群の相違のためにUSBケーブルの接続方向に応じて通信の可否が変化するという上記の問題を解決するものではない。
また、2台のDRDをUSB接続したときにその接続方向に誤りがあるときにHNPに従ってホストとデバイスの役割を交替する画像出力システムについて提案がなされているが(例えば、特許文献3を参照のこと)、同システムは、USB接続された各DRDがそれぞれサポートするデバイス群の相違のためにUSBケーブルの接続方向に応じて通信の可否が変化するという上記の問題を解決するものではない。
本発明の目的は、1台の機器がホストとして通信インターフェース上のデータ伝送を制御するとともに、その他の機器がデバイスとしてホストの制御に従って通信インターフェース上で好適にデータ伝送を行なうことができる、を提供することにある。
本発明のさらなる目的は、PCなどの固定的なホストが存在しない環境下で、ホスト及びデバイスの双方の役割が可能な通信機器が互いにホストとデバイスの役割を簡易に分担することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することにある。
本発明のさらなる目的は、初期状態でそれぞれホスト及びデバイスに決定された通信機器間において所定の通信プロトコルに従ってホスト及びデバイスの役割を適宜交替することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することにある。
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上において複数の通信装置がデータ伝送を行なう通信システムであって、前記所定の通信インターフェースに接続された第1及び第2の通信装置が前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
前記第1の通信装置が前記ホストに決定された場合において、
前記第1の通信装置が前記ホストとして前記所定の通信インターフェース上での前記第2の通信装置のデータ伝送を制御可能であるかどうかを判断する判断手段と、
前記判断手段による判断結果が否定的であるときに、前記所定の通信プロトコルに従って、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システムである。
前記第1の通信装置が前記ホストに決定された場合において、
前記第1の通信装置が前記ホストとして前記所定の通信インターフェース上での前記第2の通信装置のデータ伝送を制御可能であるかどうかを判断する判断手段と、
前記判断手段による判断結果が否定的であるときに、前記所定の通信プロトコルに従って、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システムである。
但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない(以下、同様)。
USBは、PCと周辺機器とを接続する通信インターフェースとして、事実上の業界標準の地位を確立している。また、最近では、PCを介さずに周辺機器同士をUSB接続するという要求に応えるべく、USB2.0の追加規格としてOTGが策定されている。
OTGでは、ホストとデバイスの両方の機能を有する機器として、デュアル・ロール・デバイス(DRD)が規定されている。DRD同士をUSB接続した場合、USBケーブルの接続方向(互いの機器に差し込んだプラグ形状)に応じて初期状態でのホストとデバイスの関係が決定するが、その後はHNP(Host Negotiation Protocol)に従って、ホストとデバイスの役割を交替することができる。
ここで、DRDの多くは、ハードウェアなどのリソースが制限されたモバイル機器であり、ホストとしてあらゆる種類のデバイスをサポートすることは現実的でない。このため、USB接続される2台のDRDがそれぞれサポートするデバイス群が一致しないときには、USBケーブルの接続方向に応じて通信の可否が変化するという問題がある。一般のユーザはUSBに対する専門知識は無いため、USBケーブルの接続方向毎に通信動作が異なると、ユーザの混乱を招くことになりかねない。
これに対し、本発明の第1の側面に係る通信システムでは、それぞれDRDに相当する第1及び第2の通信装置がUSB接続され、且つ、USBケーブルの接続方向などに応じて第1の通信装置が例えば初期状態でホストに決定されたときに、判断手段は、第1の装置がUSBインターフェースを介した第2の通信装置のデータ伝送を制御可能であるか、言い換えれば、第1の通信装置が第2の通信装置のデバイス・ドライバを備えているかどうかを判断するようになっている。そして、この判断結果が否定的であるときには、HNPに従って第1及び前記第2の通信装置間でホストとデバイスの役割を交替するようになっている。
したがって、本発明の第1の側面によれば、USB接続された各DRDがそれぞれサポートするデバイス群の相違のために、USBケーブルの接続方向によっては機器の使用ができない場合であっても、ユーザにUSBケーブルの接続のし直しを強いることなく、通信が可能な状態に自動で移行させることができる。
ここで、第1及び第2の通信装置間で一度ホストとデバイスの役割を行なった後、ホストとなった第2の通信装置が同様の理由などによって、役割の交替を要求してきたときには、第1の通信装置は、役割交替が際限なく続く事態に陥らないようにするために、この要求に応じないようにしてもよい。
あるいは、第1の通信装置は、再度ホストに役割を交替することを許容するが、それ以降の役割交替に応じないようにしてもよい。
また、第2の通信装置は、初期状態ではデバイスに決定されたが、第1の通信装置からの役割交替の要求に応じてホストに移行したものの、自らもデバイスとしての第1の通信装置のデータ伝送を制御することができないとき(すなわち、第1の通信装置のデバイス・ドライバを備えていないとき)には、ホストとデバイスの役割を元に戻すための要求を行なうのではなく、例えば出力装置にエラー情報の出力を行なって、ユーザにエラーを通知するようにしてもよい。
また、本発明の第2の側面は、1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上において複数の通信装置がデータ伝送を行なう通信システムであって、前記所定の通信インターフェースに接続された第1及び第2の通信装置が前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
前記第1の通信装置が前記ホストに決定され、前記第2の通信装置が前記デバイスに決定された場合において、
前記第2の通信装置が前記ホストとして前記所定の通信インターフェース上でのデータ伝送を制御可能な通信装置に関する制御可能装置情報を、前記第1の通信装置に通知する制御可能装置情報通知手段と、
前記第1の通信装置が前記ホストとして前記所定の通信インターフェース上での前記第2の通信装置のデータ伝送を制御可能でないときに、前記第2の通信装置が前記ホストとして前記所定の通信インターフェース上での前記第1の通信装置のデータ伝送を制御可能であるか否かを、前記通知手段により通知された制御可能装置情報に基づいて判断する判断手段と、
前記判断手段による判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システムである。
前記第1の通信装置が前記ホストに決定され、前記第2の通信装置が前記デバイスに決定された場合において、
前記第2の通信装置が前記ホストとして前記所定の通信インターフェース上でのデータ伝送を制御可能な通信装置に関する制御可能装置情報を、前記第1の通信装置に通知する制御可能装置情報通知手段と、
前記第1の通信装置が前記ホストとして前記所定の通信インターフェース上での前記第2の通信装置のデータ伝送を制御可能でないときに、前記第2の通信装置が前記ホストとして前記所定の通信インターフェース上での前記第1の通信装置のデータ伝送を制御可能であるか否かを、前記通知手段により通知された制御可能装置情報に基づいて判断する判断手段と、
前記判断手段による判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システムである。
本発明の第2の側面に係る通信システムでは、それぞれDRDに相当する第1及び第2の通信装置がUSB接続され、且つ、USBケーブルの接続方向などに応じて初期状態では第1の通信装置と第2の通信装置がそれぞれホスト並びにデバイスに決定されたとき、デバイスである第2の通信装置は、自分がホストとなったときに制御可能である(言い換えれば、デバイス・ドライバを備えている)デバイス群に関する制御可能装置情報を第1の通信装置に通知するようになっている。
ホストとなった第1の装置は、デバイスとしての第2の通信装置のデータ伝送を制御できないとき、言い換えれば、第1の通信装置が第2の通信装置のデバイス・ドライバを備えていないときには、さらに、第2の通信装置から受け取った制御可能装置情報に基づいて、第2の通信装置がホストであれば第1の通信装置のデータ伝送を制御可能であるか否かを判断する。そして、この判断結果が肯定的であるときには、HNPに従って第1及び前記第2の通信装置間でホストとデバイスの役割を交替するようになっている。
したがって、本発明の第2の側面によれば、USB接続された各DRDがそれぞれサポートするデバイス群の相違のために、USBケーブルの接続方向によっては、機器の使用ができない場合であっても、ユーザにUSBケーブルの接続のし直しを強いることなく、通信が可能な状態に自動で移行することができる。
ここで、第1の通信装置は、デバイスとしての第2の通信装置から制御可能情報を受け取ることができなかったときであっても、HNPに従って第1及び前記第2の通信装置間でホストとデバイスの役割を交替するようにしてもよい。何故ならば、第1の通信装置は、第2の通信装置がホストとして自分をサポートしているかどうか不明であるが、ホスト/デバイスの役割交換によって通信が可能になる場合があるからである。
また、USBインターフェースに接続される第1及び第2の通信装置のいずれもが、DRDであるものの相互にホストとして他の通信装置のデータ伝送を制御することができない場合には、ホスト/デバイスの役割交換を行なう代わりに、所定のエラー表示を行なうようにしてもよい。
また、第1の通信装置は、USBケーブルの接続方向などに応じて初期状態でホストに決定されたものの、デバイスとしての第2の通信装置のデータ伝送を制御することができない場合であっても、第2の通信装置がDRDでない、若しくはHNPなどの通信プロトコルに従ってホスト/デバイスの役割交替を行なうことができない場合には、役割交替のための手続を起動しない。
また、本発明の第3の側面は、1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
前記所定の通信インターフェース上には前記ホスト及び前記デバイスのいずれとしても動作することができる他の通信装置が少なくとも1台存在し、且つ、当該通信装置自らは前記ホストとして動作する場合において、前記コンピュータ・プログラムは前記コンピュータに対し、
前記所定の通信インターフェース上での他の通信装置のデータ伝送を前記ホストとして制御可能であるかどうかを判断する判断手順と、
前記判断手順を実行して得られた判断結果が否定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラムである。
前記所定の通信インターフェース上には前記ホスト及び前記デバイスのいずれとしても動作することができる他の通信装置が少なくとも1台存在し、且つ、当該通信装置自らは前記ホストとして動作する場合において、前記コンピュータ・プログラムは前記コンピュータに対し、
前記所定の通信インターフェース上での他の通信装置のデータ伝送を前記ホストとして制御可能であるかどうかを判断する判断手順と、
前記判断手順を実行して得られた判断結果が否定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラムである。
また、本発明の第4の側面は、1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
当該通信装置が前記デバイスに決定されたときに、当該通信装置が前記ホストとして前記所定の通信インターフェース上でのデータ伝送を制御可能な通信装置に関する制御可能装置情報を、前記ホストとして動作する他の通信装置に通知する制御可能装置情報通知手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から制御可能装置情報を受け取る制御可能装置情報受取手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置のデータ伝送を制御可能であるかどうかを判断する第1の判断手順と、
前記第1の判断手順を実行して得られた判断結果が否定的であるときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置が前記ホストとして当該装置のデータ伝送を制御可能であるか否かを該他の通信装置から受け取った制御可能装置情報に基づいて判断する第2の判断手順と、
前記第2の判断手順を実行して得られた判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラムである。
当該通信装置が前記デバイスに決定されたときに、当該通信装置が前記ホストとして前記所定の通信インターフェース上でのデータ伝送を制御可能な通信装置に関する制御可能装置情報を、前記ホストとして動作する他の通信装置に通知する制御可能装置情報通知手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から制御可能装置情報を受け取る制御可能装置情報受取手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置のデータ伝送を制御可能であるかどうかを判断する第1の判断手順と、
前記第1の判断手順を実行して得られた判断結果が否定的であるときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置が前記ホストとして当該装置のデータ伝送を制御可能であるか否かを該他の通信装置から受け取った制御可能装置情報に基づいて判断する第2の判断手順と、
前記第2の判断手順を実行して得られた判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラムである。
本発明の第3乃至第4の各側面に係るコンピュータ・プログラムは、コンピュータ上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第3乃至第4の各側面に係るコンピュータ・プログラムをコンピュータにインストールすることによってコンピュータ上では協働的作用が発揮され、第1若しくは第2の通信装置として動作する。このような通信装置同士をUSBなどの所定の通信インターフェースを介して接続することによって、本発明の第1乃至第2の各側面に係る通信システムと同様の作用効果を得ることができる。
本発明によれば、PCなどの固定的なホストが存在しない環境下で、ホスト及びデバイスの双方の役割が可能な通信機器が互いにホストとデバイスの役割を簡易に分担することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することができる。
また、本発明によれば、初期状態でそれぞれホスト及びデバイスに決定された通信機器間において所定の通信プロトコルに従ってホスト及びデバイスの役割を適宜交替することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することができる。
本発明によれば、OTG規格に則ったDRD同士の接続において通常の手順では通信できない場合であっても、ユーザにケーブルの接続のし直しなどの手間をかけたり、あるいは煩雑な仕様を意識させたりせずに、自動的に通信可能な状態に移行にすることができる。
また、本発明によれば、特定の判断に基づいて通信装置同士のホストとデバイスの役割交替を行なうが、2つの機器が互いに相手機器をサポートしていないときにも、無限に役割交替の処理が繰り返し行なわれて、通信システムがデッドロックに陥ることがないようになっている。
本発明に係る通信システムでは、USB2.0やOTGの規格に準拠した方法に従って制御を行なうように構成することができ、これらの規格に準拠する機器へ容易に適用することが可能である。また、これらの制御はコンピュータ上で所定のソフトウェア・プログラムを実行することによっても実現可能であることから、機器のハードウェアに変更を加えることなくプログラムの修正のみによって、本発明に係る機能を実装することも可能である。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
以下、図面を参照しながら本発明の実施形態について詳解する。
図1には、本発明の一実施形態に係る通信システムの構成を模式的に示している。図示のシステムは、通信ケーブル50と、通信装置101及び102で構成される。
通信装置101及び102は、USB2.0の追加規格であるOTGにおいて規定されているデュアル・ロール・デバイス(DRD)であるとする。また、本実施形態では、通信装置101及び102がモバイル機器であることを想定しており、PCと比較してハードウェアなどのリソースが制限されているので、ホストとしてすべてのデバイスをサポートしている訳ではない。
通信装置101及び102がそれぞれホストとしてサポートしているデバイス群が一致しているとは限らない。このため、例えば、通信装置101側がAデバイスとなるときには通信可能だが、通信装置102側がAデバイスとなるときには通信できないといった具合に、通信ケーブルの接続方向50に応じて通信の可否が変化する可能性がある。本発明は、ユーザに通信ケーブル50の接続のし直しを強いることなく、通信が可能な状態に自動で移行するようになっているが、かかる機能の詳細については後述に譲る。
図1に示すように、通信装置101は、通信処理部11と、制御部21と、記憶部31と、レセプタクル端子41を備えている。また、通信装置102は、通信処理部12と、制御部22と、記憶部32と、レセプタクル端子42を備えている。以下、各部について説明する。
通信ケーブル50は、OTGに準拠した通信ケーブルであり、一方の端にはMini−Aプラグ端子51を有するとともに、他方の端にMini−Bプラグ端子52を有している。また、通信装置101及び102は、OTGにおいて規定されているデュアル・ロール・デバイスDRDであり、レセプタクル端子41又は42に対して、Mini−Aプラグ端子51が接続されたときには初期状態でAデバイスすなわちホストとして動作し、Mini−Bプラグ端子52が接続されたときには初期状態でBデバイスすなわちデバイスとして動作する。
図1に示した例では、通信装置101のレセプタクル端子41にはMini−Aプラグ端子51が差し込まれ、通信装置102のレセプタクル端子42にはMini−Bプラグ端子52が差し込まれている。したがって、図示の例では、通信装置101はAデバイスすなわち初期状態においてホストとなり、通信装置102はBデバイスすなわち初期状態においてデバイスとなる。
通信処理部11は、制御部21の指示に従って、USB及びOTGに準拠した種々の通信処理を行なう。例えば、USBの規定に従ったデータ送受信処理や、OTGの規定に従ったホスト/デバイスの役割の交替などの処理を、制御部21の指示に従って実行する。また、通信処理部12は、通信装置102において通信処理部11と同様な機能を有する。すなわち、制御部22の指示に従って、USB及びOTGに準拠した種々の通信処理を行なう。
図2には、通信装置101内の通信処理部11の内部構成をさらに詳細に示している。同図に示すように、通信処理部11は、OTG部111と、ホスト部112と、デバイス部113を備えている。なお、他方の通信装置102内の通信処理部12もこれと同様の構成を備えるものとする。
OTG部111は、OTGにおいて規定されている種々の通信処理を行なう。例えば、SRPを使ってAデバイスに電流供給の再開を促す処理や、HNPを使って他方の通信装置102との間でホスト/デバイスの役割を交替する処理などを実行する。また、OTG部111は、レセプタクル端子41に差し込まれたプラグ端子の型(Mini−Aプラグ端子又はMini−Bプラグ端子)、すなわちUSBケーブル50の接続方向に応じて、初期状態でのホスト又はデバイスの役割を決定する処理や、ホスト部112及びデバイス部113へのクロックの供給を制御する処理も行なう。
ホスト部112は、通信装置101がホストとして動作するときの通信処理を実行する。すなわち、通信ケーブル50接続されている他の機器を検出する処理や、通信ケーブル50上におけるデータの伝送を制御する処理など、USBホストとしての通信処理を実行する。
デバイス部113は、通信装置がデバイスとして動作するときの通信処理を実行する。すなわち、USBデバイスとして、ホストの制御に従った通信処理を実行する。
OTG部111は、ホスト部112又はデバイス部113のいずれか一方にクロックを排他的に供給する。通信処理部11は、ホスト部112にクロックが供給されたときにはホストとして動作し、デバイス部113にクロックが供給されたときにはデバイスとして動作することになる。すなわち、通信装置101はDRDであり、通信処理部11内でOTG部111からのクロックの供給先がホスト部112又はデバイス部113のいずれであるかによって、ホスト/デバイスの役割を切り替えることができる。通信装置102についても同様である。
図3には、通信処理部11及び12の間でホストとデバイスの役割を交替する様子を示している。
図1に示した例では、初期状態において、通信装置101がホストとして動作し、通信装置102がデバイスとして動作する。このとき、通信処理部11では、図3Aに示すようにOTG部111の制御によって、ホスト部112へのクロック供給が行なわれ、デバイス部113へのクロック供給が停止される。逆に、通信処理部12では、デバイス部へのクロック供給が行なわれ、ホスト部へのクロック供給が停止される。
この状態で、HNPによるホスト/デバイスの役割交替を実施すると、図3Bに示すように通信処理部11では、OTG部111の制御によって、ホスト部112へのクロック供給が停止され、代わってデバイス部113へのクロック供給が開始される。逆に、通信処理部12では、デバイス部へのクロック供給が停止され、ホスト部へのクロック供給が開始される。これにより、通信装置101がデバイス部として動作し、通信装置102がホストとして動作するように遷移する。すなわち、通信ケーブル50のプラグ51及び52を差し替えることなく、通信装置101及び102の間でホスト/デバイスの役割交替が行なわれる。
以上の説明は通信装置101がAデバイスの場合の例であるが、通信装置102がAデバイスの場合も、上述と同様の手順によってホスト/デバイスの役割交替が行なわれる。
制御部21は、通信装置101の全体的な動作の制御に関わる種々の処理を行なう。例えば、制御部21は、通信処理部11がホストとして動作するときに、デバイスとして動作する通信相手と通信を開始する際に必要となる種々の情報を取得するための処理を行なう。具体的には、USBにおいて規定された種々のリクエストを通信処理部11からデバイスに送信させ、これに応じたデバイスからの応答を通信処理部11において受信させることにより、デバイスの情報を取得する。必要な情報が得られた後は、この情報に基づいて通信処理部11を制御して、デバイスとの間で通信を行なう。
また、制御部21は、通信処理部11がデバイスとして動作するときに、ホストとして動作する通信相手の制御に従って通信を行なうように、通信処理部11を制御する。すなわち、ホストからのリクエストを通信処理部11において受信させ、このリクエストに対するUSBで規定された応答を生成して、通信処理部11からホスト機器へ送信させる。
また、御部22は、通信装置102において制御部21と同様な機能を有する。すなわち、通信装置102の全体的な動作の制御に関わる種々の処理として、上述と同様の処理を行なう。
通信装置101及び102はともにDRDであるが、それぞれホストとしてサポートしているデバイス群が一致しているとは限らないため、通信ケーブルの接続方向50に応じて通信の可否が変化する可能性がある。本発明では、ユーザに通信ケーブル50の接続のし直しを強いることなく、通信が可能な状態に自動で移行するようになっており、制御部21並びに22はかかる機能を実現するための中心的な役割を担っているが、その詳細については後述に譲る。
記憶部31は、通信処理部11において送受信されるデータや、通信処理に必要とされる種々の情報を記憶する。記憶部31に記憶される情報には、例えば、ディスクリプタ(descriptor)が含まれる。ディスクリプタは、ホストがデバイスについての情報を得るためのデータであり、USBにおいて規定された所定のデータ構造(後述)を有する。
記憶部32は、記憶部31と同様な機能を有する。すなわち、通信装置102において、通信処理部12で送受信されるデータや、通信処理に必要とされる種々の情報を記憶する。
レセプタクル端子41並びに42は、OTGにおいて規定されているDRD側の端子であり、Mini−Aプラグ端子とMini−Bプラグ端子を何れも装着することができる構造を備えた、いわゆる「Mini−ABレセプタクル端子」である。
図1に示した通信システムにおいて、通信装置101及び102はともにデュアル・ロール・デバイス(DRD)であるが、モバイル機器であることを想定しており、ホストとしてすべてのデバイスをサポートしている訳ではない。このような場合、通信装置101及び102がそれぞれホストとしてサポートしているデバイス群が一致しているとは限らない。このため、通信ケーブルの接続方向50に応じて通信の可否が変化する可能性がある。本発明は、通信ケーブル50の接続方向に応じて通信の可否が変化するという問題を解決するものであり、以下では、その2つの実施形態について説明する。
なお、いずれの実施形態においても、各通信装置101及び102内の制御部21及び22が中心的な役割を担っている。このことは、コンピュータ上で所定のソフトウェア・プログラムを実行することによって本発明を実現可能であることを意味し、機器のハードウェアに変更を加えることなくプログラムの修正のみによって本発明に係る機能を実装することも可能である。
第1の実施形態:
図4には、Aデバイスとして動作する通信装置101が実行する動作手順をフローチャートの形式で示している。この動作手順は、制御部21が所定のプログラム・コードを実行するという形態で実現される。また、通信ケーブル50の接続方向が逆転し、通信装置102がAデバイスとなったときの動作手順も同様であると理解されたい。
図4には、Aデバイスとして動作する通信装置101が実行する動作手順をフローチャートの形式で示している。この動作手順は、制御部21が所定のプログラム・コードを実行するという形態で実現される。また、通信ケーブル50の接続方向が逆転し、通信装置102がAデバイスとなったときの動作手順も同様であると理解されたい。
通信装置101の通信処理部11は、起動時において、レセプタクル端子41に装着されているプラグの型を検出して、制御部21に通知する。図1に示した例では、レセプタクル端子41にはMini−Aプラグ端子51が装着されているので、制御部21は、OTG部111に対してホスト部112へのクロックの供給を指示し、通信装置101のAデバイスとしての制御を開始する。同様に、通信相手である通信装置102側では、レセプタクル端子42にMini−Bプラグ端子が装着されていることを検出し、制御部22はBデバイスとしての制御を開始する。
まず、制御部21は、エニュメレーションの過程において、デバイスである通信装置102から、ディスクリプタを取得する(ステップS11)。ここで言うエニュメレーションとは、ホストとデバイスとが通信を開始する際に実行する、USBで規定された通信手順のことである。エニュメレーションにおいて、ホストは、デバイスの種々の情報を収集して、デバイスとの接続を確立する処理を行なう。
そして、制御部21は、エニュメレーションによって通信処理部11が通信装置102から取得した各種のディスクリプタを記憶部31に格納する(ステップS12)。
次いで、制御部21は、通信装置102との通信をサポートしているか否か、具体的には通信装置102を制御するためのデバイス・ドライバを自分が保有しているか否かを判定する(ステップS13)。この判定処理は、通信装置102から取得したディスクリプタと、自身が保有しているサポートしているデバイスのリスト、あるいは保有するデバイス・ドライバのリストと照合することによって行なわれる。
ここで、通信装置102をサポートしていると判定されたときには(ステップS13のYes)、制御を続行し目的の通信を行なう(ステップS14)。
一方、制御部21が通信装置102をサポートしていないと判断されたときには(ステップS13のNo)、制御部21は、HNPによって通信装置102との間でホスト/デバイスの役割を交替するように、通信処理部11を制御する。具体的には、まずホスト機能交替の許可をデバイスである通信装置102側に通知し(ステップS15)、その後に実際のホスト機能の交替の動作を行なって(ステップS16)、本処理ルーチンを終了する。
続いて、Aデバイスとしての通信装置101が、図4に示した動作手順に従ってBデバイスとしての通信装置102との間で実施する通信手順の一例について説明する。
Aデバイスは、Bデバイスがバスに接続されたことを検出すると、上述したエニュメレーションを実行する。エニュメレーションにおいて、Aデバイスは、USBで規定されている標準リクエスト‘Get Descriptor(Configuration)’をBデバイスに送信する。
‘Get Descriptor’は、デバイス機器の情報を含んだディスクリプタを、デバイスからホストへ送信させるためのリクエストである。‘Get Descriptor(Configuration)’は、ホストがデバイスに要求するディスクリプタであり、特に‘コンフィグレーション・ディスクリプタ’と称される、機器の能力や機能に関する情報を含んだディスクリプタを指定するリクエストである。
OTGの規定では、DRDは、‘Get Descriptor(Configuration)’によってホストから‘コンフィグレーション・ディスクリプタ’を要求されたことに応答して‘OTGディスクリプタ’と称されるディスクリプタを‘コンフィグレーション・ディスクリプタ’に追加してホストに送信するようになっている。‘OTGディスクリプタ’は、DRDがSRPやHNPに対応しているか否かを示す情報を含んだディスクリプタである。
したがって、BデバイスがDRDであれば、‘Get Descriptor(Configuration)’のリクエストをホストから受け取ると、‘コンフィグレーション・ディスクリプタ’とこれに関連するディスクリプタに加えて、‘OTGディスクリプタ’をAデバイスに送信する。
Aデバイスは、自分がBデバイスをサポートしていない(すなわちBデバイス用のデバイス・ドライバを備えていない)と判断したときには、OTGで追加された、標準リクエストの‘Set Feature(b_hnp_enable)’をBデバイスに送信する。Bデバイスは、このリクエストを受けると、ホスト/デバイスの役割交替が許可されたことを認識し、Aデバイスへ肯定応答を返す。
Aデバイスは、Bデバイスから肯定応答を受けると、Bデバイスとの通信状態をサスペンド状態に設定して、通信を停止する。Bデバイスにおいてこのサスペンド状態が認識されると、AデバイスとBデバイスの双方でHNPによるホスト/デバイスの役割交替が行なわれ、Aデバイスはデバイスに、Bデバイスはホストに、それぞれ役割を切り替える。
なお、図4には示していないが、Aデバイスは、Bデバイスから取得した‘OTGディスクリプタ’においてHNPに対応していないという情報が含まれていたときには、HNPに関する制御は行なわず、何らかの出力装置(図示しない)にエラーを出力して、ユーザに接続が失敗したことを通知する。
続いて、Bデバイスとして動作する通信装置102の動作について説明する。通信装置101がBデバイスとして動作する場合も同様であると理解されたい。
通信装置102の通信処理部12は、起動時において、レセプタクル端子42に装着されているプラグの型を検出して、制御部22に通知する。図1に示した例では、レセプタクル端子42にはMini−Bプラグ端子52が装着されているので、制御部22はBデバイスとしての制御を開始する。同様に、通信相手である通信装置101側では、レセプタクル端子41にMini−Aプラグ端子が装着されていることを検出し、制御部21はAデバイスとしての制御を開始する。
このとき、制御部22は、ホストとして動作する通信装置101の制御に従って通信を行なうように、通信処理部12を制御する。
そして、通信装置101が通信装置102との通信をサポートしている(すなわち、通信装置102用のデバイス・ドライバを備えている)場合には、通信装置101に従って制御を続行し目的の通信を行なう。
一方、通信装置101が通信装置102をサポートしていない場合には、HNPに従って通信装置101とホスト/デバイスの役割を交替するように、通信処理部12を制御する。その後、通信装置102はホストに切り替わる。
図5には、Bデバイスである通信装置102がHNPによってホストに切り替わったときに実行する動作手順をフローチャートの形式で示している。この動作手順は、制御部22が所定のプログラム・コードを実行するという形態で実現される。また、通信ケーブル50の接続方向が逆転し、Bデバイスとなった通信装置101がホストに切り替わったときの動作手順も同様であると理解されたい。
まず、制御部22は、エニュメレーション(前述)の過程において、デバイスである通信装置102から、ディスクリプタを取得する(ステップS21)。
そして、ホストとしての通信装置102は、デバイスとしての通信装置101から種々の情報を収集して、デバイスとの接続を確立する処理を行なう。また、制御部22は、エニュメレーションによって通信処理部12が通信装置101から取得した各種のディスクリプタを記憶部32に格納する(ステップS22)。
次いで、制御部22は、通信装置101との通信をサポートしているか否か、具体的には通信装置101を制御するためのデバイス・ドライバを自分が保有しているか否かを判定する(ステップS23)。この判定処理は、通信装置101から取得したディスクリプタと、自身が保有しているサポートしているデバイスのリスト、あるいは保有するデバイス・ドライバのリストと照合することによって行なわれる。
ここで、通信装置101をサポートしていると判定されたときには(ステップS23のYes)、制御を続行し目的の通信を行なう(ステップS24)。
一方、通信装置101をサポートしていないと判断されたときには(ステップS23のNo)、制御部22は、HNPによって通信装置101とホスト/デバイスの役割交替は行なわず、何らかの出力装置にエラーを出力し、ユーザに接続が失敗したことを通知して(ステップS25)、本処理ルーチンを終了する。
Bデバイスとしての通信装置102がAデバイスとしての通信装置101をサポートしていないと判断された場合は、要するに通信装置101と通信装置102がお互いにデバイスとしてサポートしていない場合である。このとき、AデバイスがBデバイスをサポートしていないときとは相違して、HNPによるホスト/デバイスの役割交替を行なわないのは、ホスト/デバイスの役割交替が無限に続いてしまうことを防ぐためである。
無限にホスト/デバイスの役割交替が行なわれないようにするための別の解決方法として、ステップS23においてホストとしての通信装置102がデバイスとしての通信装置101をサポートしていないと判断されたときに、同様にHNPを行ないホスト/デバイスの役割交替を行なった上で、その後のエニュメレーションの過程において‘OTGディスクリプタ’へHNPに対応しないという情報を設定して応答するようにしてもよい。これによりAデバイスが再びホストに戻るものの、それ以降はHNPによるホスト/デバイスの役割交替が行なわれることはなくなる。
なお、Bデバイスとしての通信装置102がHNPによってホストに切り替わった以降の通信手順は、Aデバイスとしての通信装置101が図4に示した動作手順に従って実施する前述の通信手順とほぼ同様である。
すなわち、ホストとしてのBデバイスは、エニュメレーションにおいて、デバイスとしてのAデバイスに‘Get Descriptor(Configuration)’を送信し、これに対し、Aデバイスは、コンフィグレーション・ディスクリプタ’とこれに関連するディスクリプタに加えて、‘OTGディスクリプタ’を返信する。そして、BデバイスがAデバイスをサポートしていないときでホスト/デバイスの役割交替を再度行なうときには、BデバイスはAデバイスに‘Set Feature(b_hnp_enable)’を送信し、Aデバイスは肯定応答を返す。
以上説明したように、本実施形態では、通信装置101は、ホストとして起動したとき、制御部21の制御によって、デバイスとして動作する通信相手から、ホスト及びデバイスにおける通信相手のディスクリプタが取得される。制御部21では、この取得された通信相手のディスクリプタと、自らがサポートするデバイスの情報に基づいて、通信相手をサポートしているか否かの判断を行なう。そして、この判断結果により、通信相手をサポートしていないと判定されたときには、制御部21の指示によって、HNPに従いホスト/デバイスの役割交替の許可が通信相手に通知され、HNPによるホスト/デバイスの役割交替が実行される。
このような役割交替の動作を経ることによって、通信ケーブル50の接続方向に応じて一意に決定される初期状態のホスト/デバイスの役割分担では通信が不可能な場合であっても、自動的にホスト/デバイスの役割交替を実施することによって、通信が可能になる機会が与えられることになる。また、ホスト/デバイスの役割交替を実施しても、通信装置101及び102がともに相手をサポートしていない場合には通信が不可能であるが、そのような状況下ではホスト/デバイスの役割交替が無限に続けられないような処理が施される。
また、第1の実施形態では、USB2.0やOTGの規格に準拠した通信手順により通信相手に対するサポート状況の判断、及びホスト/デバイスの役割交替を行なうので、これらの規格に準拠する機器へ容易に適用することが可能である。
さらに、上述したホスト/デバイスの役割交替に関わる処理は主に制御部21及び22によって実行されるが、このことは同処理がコンピュータによって実現可能であることを意味する。したがって、通信処理の全体動作をコンピュータで制御している従来の通信装置については、そのハードウェア構成に特段の変更を加えることなく、プログラムの修正によって本実施形態に係る機能を実装することも可能である。
第2の実施形態:
図6には、通信装置101がAデバイスとして動作する通信装置101が実行する動作手順をフローチャートの形式で示している。この動作手順は、制御部21が所定のプログラム・コードを実行するという形態で実現される。また、通信ケーブル50の接続方向が逆転し、通信装置102がAデバイスとなったときの動作手順も同様であると理解されたい。
図6には、通信装置101がAデバイスとして動作する通信装置101が実行する動作手順をフローチャートの形式で示している。この動作手順は、制御部21が所定のプログラム・コードを実行するという形態で実現される。また、通信ケーブル50の接続方向が逆転し、通信装置102がAデバイスとなったときの動作手順も同様であると理解されたい。
通信装置101の通信処理部11は、起動時において、レセプタクル端子41に装着されているプラグの型を検出して、制御部21に通知する。図1に示した例では、レセプタクル端子41にはMini−Aプラグ端子51が装着されているので、制御部21は、OTG部111に対してホスト部112へのクロックの供給を指示し、通信装置101のAデバイスとしての制御を開始する。同様に、通信相手である通信装置102側では、レセプタクル端子42にMini−Bプラグ端子が装着されていることを検出し、制御部22はBデバイスとしての制御を開始する。
まず、制御部21は、エニュメレーションの過程において、デバイスである通信装置102から、ディスクリプタを取得する(ステップS31)。ここで言うエニュメレーションとは、ホストとデバイスとが通信を開始する際に実行する、USBで規定された通信手順のことである。エニュメレーションにおいて、ホストは、デバイスの種々の情報を収集して、デバイスとの接続を確立する処理を行なう。
そして、制御部21は、エニュメレーションによって通信処理部11が通信装置102から取得した各種のディスクリプタを記憶部31に格納する(ステップS32)。
次いで、制御部21は、通信装置102との通信をサポートしているか否か、具体的には通信装置102を制御するためのデバイス・ドライバを自分が保有しているか否かを判定する(ステップS33)。この判定処理は、通信装置102から取得したディスクリプタと、自身が保有しているサポートしているデバイスのリスト、あるいは保有するデバイス・ドライバのリストと照合することによって行なわれる。
ここで、通信装置102をサポートしていると判定されたときには(ステップS33のYes)、制御を続行し目的の通信を行なう(ステップS34)。
一方、通信装置102をサポートしていないと判断されたときには(ステップS33のNo)、制御部21は、通信相手から取得したディスクリプタの中に、ホストとしてサポートするデバイスの情報を含んだ所定のディスクリプタが存在するか否かを調べる(ステップS35)。
ここでは、ホストとしてサポートするデバイスの情報を含む所定のディスクリプタを、‘OTG Support Device’ディスクリプタと呼ぶことにする。‘OTG Support Device’ディスクリプタは、通信装置が第1のモードで動作するときに対応しているすべてのUSBクラスとその通信速度の情報を格納する。
図7には、‘OTG Support Device’ディスクリプタのデータ構造の一例を示している。図示のように、データ・フィールドとして、先頭から順に‘ディスクリプタ長’、‘ディスクリプタ・タイプ’、‘ディスクリプタ・インデックス’、‘サポートするクラス数(ロースピード)Nc_ls’、‘サポートするクラス数(フルピード)Nc_fs’、‘サポートするクラス数(ハイスピード)Nc_hs’を有しており、以降は、ロースピード、フルスピード、ハイスピードの順で、‘サポートするクラスコード/サブクラスコード’を有する。
ここで、‘ディスクリプタ長’には、本ディスクリプタの全体のバイト数が格納される。また、‘ディスクリプタ・タイプ’には、本ディスクリプタを識別するための識別子が格納される。また、‘ディスクリプタ・インデックス’には、本ディスクリプタが複数ある場合のインデックスが格納される。また、‘サポートするクラス数’には、それぞれの通信速度で通信可能なクラスの数が格納される。例えば、‘サポートするクラス数(ロースピード)Nc_ls’には、ロースピードで通信可能なクラスの数が格納される。また、‘サポートするクラスコード/サブクラスコード’には、通信装置がホストで動作するときに対応しているクラスコード及びサブクラスコードが格納される。クラスコード並びにサブクラスコードは、USBにおいて通信仕様が類似する機器毎に与えられた固有のコードである。
このような‘OTG Support Device’ディスクリプタが通信相手である通信装置102から得られた場合(ステップS35のYes)、制御部21は、取得した通信相手の‘OTG Support Device’ディスクリプタの‘サポートするクラスコード/サブクラスコード’を調べて、自分自身(通信装置101)のクラスのコードがこの中に含まれているか否かを調べる(ステップS36)。
ここで、‘サポートするクラスコード/サブクラスコード’に自分自身のクラスのコードが含まれていないときには(ステップS36のNo)、制御部21は、出力装置(図示しない)にエラーを出力し、ユーザに接続が失敗したことを通知して(ステップS37)、本処理ルーチンを終了する。
一方、‘サポートするクラスコード/サブクラスコード’に自分自身のクラスのコードが含まれている場合には(ステップS36のYes)、HNPによって通信装置102とホスト/デバイスの役割交替を実施するように、通信処理部11を制御する。具体的には、まずホスト機能交換の許可をデバイスに通知し(ステップS38)、その後に実際のホスト機能の交換の動作を行なって(ステップS39)、本処理ルーチンを終了する。
なお、ステップS35において通信相手から取得したディスクリプタに‘OTG Support Device’ディスクリプタが含まれていない場合も(ステップS35のNo)、HNPによって通信装置102と動作モードを交換するように、通信処理部11を制御する。これは、通信相手(通信装置102)が自分自身(通信装置101)をサポートしているかどうか不明ではあるが、ホスト/デバイスの役割交替によって通信相手が自分自身をサポートしていた場合に通信が可能になる場合があるからであり、第1の実施形態と同様の処理である。
続いて、Aデバイスとしての通信装置101が、図6に示した動作手順に従ってBデバイスとしての通信装置102との間で実施する通信手順の一例について説明する。但し、説明の簡素化のため、通信装置101が通信装置102をサポートしていない場合、すなわちステップS33における判断結果がNoである場合を前提とする。
エニュメレーションにおいて、Aデバイスは、USBの標準リクエスト‘Get Descriptor(Configuration)’をBデバイスに送信する。
Bデバイスは、このリクエストを受けると、‘コンフィグレーション・ディスクリプタ’とこれに関連するディスクリプタ、並びに‘OTGディスクリプタ’をAデバイスに送信する。本実施形態では、この‘OTGディスクリプタ’に加えて、さらに上述の‘OTG Support Device’ディスクリプタをAデバイスに送信する。‘OTG Support Device’ディスクリプタは、USB2.0及びOTGの規格に準拠した方法で、BデバイスからAデバイスへ送信される。
Aデバイスは、Bデバイスから取得した‘OTG Support Device’ディスクリプタと自らのクラスコードの情報に基づいて、Bデバイスが自分をサポートしていると判断した場合には、標準リクエストの‘Set Feature(b_hnp_enable)’をBデバイスに送信する。このリクエストを受けると、Bデバイスは、動作モードの交換が許可されたことを認識し、Aデバイスへ肯定応答を返す。
Aデバイスは、Bデバイスから肯定応答を受けると、Bデバイスとの通信状態をサスペンド状態に設定して、通信を停止する。Bデバイスにおいてバスのサスペンド状態が認識されると、AデバイスとBデバイスの双方でHNPによるホスト/デバイスの役割交替が行なわれ、Aデバイスはデバイスに、Bデバイスはホストに、それぞれ役割を切り替える。
以上説明したように、本実施形態では、通信装置101は、ホストとして起動したとき、制御部21の制御によって、デバイスとして動作する通信相手から、ホストとして動作したときにサポートする通信相手の情報(例えば‘OTG Support Device’ディスクリプタ)を取得する。そして、制御部21は、取得された通信相手の‘OTG Support Device’ディスクリプタと、記憶部31に記憶される自らのクラスコードに基づいて、通信相手が自分自身をサポートしているか否かの判定を行なう。そして、通信相手が自分自身をサポートしていると判定されたときには、制御部21の指示によって、HNPによる動作モードの交替の許可が通信相手に通知され、HNPによるホスト/デバイスの役割交替が実行される。
このような役割交替の動作を経ることによって、通信ケーブル50の接続方向に応じて一意に決定される初期状態のホスト/デバイスの役割分担では通信が不可能な場合であっても、自動的にホスト/デバイスの役割交替を実施することによって、通信が可能になる機会が与えられることになる。
また、上述した第1の実施形態とは異なり、各通信装置101及び102が‘OTG Support Device’ディスクリプタのような情報の送信に対応している必要があるものの、通信相手が自分自身をサポートしていることを確認してからホスト/デバイスの役割交替の処理を行なうので、無駄に同処理を行なうことが無いため、消費電力の削減が可能である。また本質的に無限にホスト/デバイスの役割交替が行なわれる可能性がないことも特徴である。
また、第2の実施形態では、USB2.0やOTGの規格に準拠した通信手順により通信相手に対するサポート状況の判断、及びホスト/デバイスの役割交替を行なうので、これらの規格に準拠する機器へ容易に適用することが可能である。
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
本明細書では本発明の好ましい幾つかの実施形態について述べたが、本発明の要旨はこれらの実施形態に限定されるものではなく、この他にも種々のバリエーションを含む。
例えば、通信装置の構成や、HNPによるホスト/デバイスの役割交替の動作、ディスクリプタの内容などについては、上述した以外にもさまざまな形態が可能である。また、既述のフローチャートや通信手順も一例に過ぎず、適宜修正又は変形して実装することができる。
USBでは、種々の機能の利用やデータ伝送の主導権をホスト側が有している。このため、ユーザの意向も考慮しながらホスト/デバイスの役割交替を行なうか否かの判定を行なうことが必要な場合が生じ得る。そこで、ホスト/デバイスの役割交替を行なう際に、所定のユーザ・インターフェース装置を通じて、ユーザの承認を事前に得るようにしても良い。
例えば、上述したホスト/デバイスの役割交替の条件が成立した場合、制御部は、ユーザ・インターフェース装置を通じてユーザに動作モードの交換を行なうか否かの確認を求める通知を行なう。そして、この確認の通知に対する許可の応答がユーザ・インターフェース装置に入力されたときに、ホスト/デバイスの役割交替を実行するようにしても良い。
また、本願の明細書及び図面に示した通信装置の構成要素のうち少なくとも一部をコンピュータとソフトウェア・プログラムの協働的作用によって実現してもよいし、ソフトウェアとハードウェアの組み合わせによって実現してもよいし、あるいはすべての構成要素をハードウェアで実現してもよい。
また、本明細書では、USB2.0の追加規格であるOTGに準拠した通信システムに適用した実施形態を中心に説明してきたが、本発明の要旨はこれに限定されるものではない。通信インターフェース上においてホストの役割を持つ1台の機器がデバイスとして動作する他の機器のデータ伝送動作を制御し、且つ、少なくとも一部の機器がホスト及びデバイスの双方の役割が可能である、さまざまな通信インターフェース若しくは通信プロトコルに対しても、同様に本発明を適用することができる。
また、本明細書では、ホスト及びデバイスの双方の役割が可能な通信装置同士がUSBケーブルを介して接続される場合の実施形態につい説明してきたが、本発明の要旨は特定の通信媒体に限定される訳ではない。例えばWUSBのような無線インターフェースで構成される通信インターフェースに対しても同様に本発明を適用することができる。
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
50…通信ケーブル
11、12…通信処理部
21、22…制御部
31、32…記憶部
41、42…レセプタクル端子
51…Mini−Aプラグ端子
52…Mini−Bプラグ端子
101、102…通信装置
111…OTG部
112…ホスト部
113…デバイス部
11、12…通信処理部
21、22…制御部
31、32…記憶部
41、42…レセプタクル端子
51…Mini−Aプラグ端子
52…Mini−Bプラグ端子
101、102…通信装置
111…OTG部
112…ホスト部
113…デバイス部
Claims (17)
- 1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上において複数の通信装置がデータ伝送を行なう通信システムであって、前記所定の通信インターフェースに接続された第1及び第2の通信装置が前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
前記第1の通信装置が前記ホストに決定された場合において、
前記第1の通信装置が前記ホストとして前記所定の通信インターフェース上での前記第2の通信装置のデータ伝送を制御可能であるかどうかを判断する判断手段と、
前記判断手段による判断結果が否定的であるときに、前記所定の通信プロトコルに従って、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システム。 - 1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置であって、前記ホスト及び前記デバイスのいずれとしても動作することができるとともに前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
前記所定の通信プロトコルに従って、前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
前記所定の通信インターフェース上でのデータ伝送を前記ホストとして制御可能であるかどうかを判断する判断手段を備え、
前記所定の通信インターフェース上には前記ホスト及び前記デバイスのいずれとしても動作することができる他の通信装置が少なくとも1台存在し、且つ、自らは前記ホストとして動作する場合において、前記判断手段による判断結果が否定的であるときに、前記交替手続実行手段が前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する、
ことを特徴とする通信装置。 - 前記通信インターフェースはUSB(Universal Serial Bus)インターフェースであり、前記所定のプロトコルはUSB OTG(On−The−Go)で用意されているHNP(Host Negotiation Protocol)である、
ことを特徴とする請求項2に記載の通信装置。 - 自らは前記デバイスとして動作するときに、前記交替手続実行手段は、前記ホストとして動作する前記他の通信装置からの交替要求に応じて、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する、
ことを特徴とする請求項2に記載の通信装置。 - 初期状態で自らは前記デバイスとして動作することが決定された前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替した後、前記デバイスとして動作しているときに、
前記交替手続実行手段は、前記他の通信装置からの前記ホスト及び前記デバイスの役割の交替要求に応じない、
ことを特徴とする請求項4に記載の通信装置。 - 初期状態で自らは前記デバイスとして動作することが決定された前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替した後、前記デバイスとして動作しているときに、
前記交替手続実行手段は、前記他の通信装置からの前記ホスト及び前記デバイスの役割の交替要求に応じて再度ホストの役割に交替するが、それ以降の役割交替に応じない、
ことを特徴とする請求項4に記載の通信装置。 - 初期状態で自らは前記デバイスとして動作することが決定され、初期状態で前記ホストとして動作することが決定された前記他の通信装置からの交替要求に応じて前記ホストに交替したが、前記判断手段が前記所定の通信インターフェース上でのデータ伝送を前記ホストとして制御可能でないと判断したときには、所定のエラー表示を行なう、
ことを特徴とする請求項4に記載の通信装置。 - 1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御方法であって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
前記所定の通信インターフェース上には前記ホスト及び前記デバイスのいずれとしても動作することができる他の通信装置が少なくとも1台存在し、且つ、当該通信装置自らは前記ホストとして動作する場合において、
前記所定の通信インターフェース上での他の通信装置のデータ伝送を前記ホストとして制御可能であるかどうかを判断する判断ステップと、
前記判断ステップにおける判断結果が否定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行ステップと、
を具備することを特徴とする通信方法。 - 1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
前記所定の通信インターフェース上には前記ホスト及び前記デバイスのいずれとしても動作することができる他の通信装置が少なくとも1台存在し、且つ、当該通信装置自らは前記ホストとして動作する場合において、前記コンピュータ・プログラムは前記コンピュータに対し、
前記所定の通信インターフェース上での他の通信装置のデータ伝送を前記ホストとして制御可能であるかどうかを判断する判断手順と、
前記判断手順を実行して得られた判断結果が否定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラム。 - 1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上において複数の通信装置がデータ伝送を行なう通信システムであって、前記所定の通信インターフェースに接続された第1及び第2の通信装置が前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
前記第1の通信装置が前記ホストに決定され、前記第2の通信装置が前記デバイスに決定された場合において、
前記第2の通信装置が前記ホストとして前記所定の通信インターフェース上でのデータ伝送を制御可能な通信装置に関する制御可能装置情報を、前記第1の通信装置に通知する制御可能装置情報通知手段と、
前記第1の通信装置が前記ホストとして前記所定の通信インターフェース上での前記第2の通信装置のデータ伝送を制御可能でないときに、前記第2の通信装置が前記ホストとして前記所定の通信インターフェース上での前記第1の通信装置のデータ伝送を制御可能であるか否かを、前記通知手段により通知された制御可能装置情報に基づいて判断する判断手段と、
前記判断手段による判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記第1及び前記第2の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システム。 - 1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置であって、前記ホスト及び前記デバイスのいずれとしても動作することができるとともに前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
前記所定の通信プロトコルに従って、前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
当該通信装置が前記デバイスに決定されたときに、当該通信装置が前記ホストとして前記所定の通信インターフェース上でのデータ伝送を制御可能な通信装置に関する制御可能装置情報を、前記ホストとして動作する他の通信装置に通知する制御可能装置情報通知手段と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から制御可能装置情報を受け取る制御可能装置情報受取手段と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置のデータ伝送を制御可能であるかどうかを判断する第1の判断手段と、
前記第1の判断手段による判断結果が否定的であるときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置が前記ホストとして当該装置のデータ伝送を制御可能であるか否かを該他の通信装置から受け取った制御可能装置情報に基づいて判断する第2の判断手段を備え、
前記第2の判断手段による判断結果が肯定的であるときに、前記交替手続実行手段が前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する、
ことを特徴とする通信装置。 - 前記通信インターフェースはUSBインターフェースであり、前記所定のプロトコルはUSB OTGで用意されているHNPである、
ことを特徴とする請求項11に記載の通信装置。 - 前記制御可能装置情報受取手段が前記他の通信装置から制御可能装置情報を受け取ることができなかったときに、前記交替手続実行手段が前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する、
ことを特徴とする請求項11に記載の通信装置。 - 前記第1及び第2の判断手段による判断結果がいずれも否定的であるときには、所定のエラー表示を行なう、
ことを特徴とする請求項11に記載の通信装置。 - 前記他の通信装置が前記交替手続実行手段を備えていないと推定されるときには、前記交替手続実行手段は前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行しない、
ことを特徴とする請求項11に記載の通信装置。 - 1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御方法であって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
当該通信装置が前記デバイスに決定されたときに、当該通信装置が前記ホストとして前記所定の通信インターフェース上でのデータ伝送を制御可能な通信装置に関する制御可能装置情報を、前記ホストとして動作する他の通信装置に通知する制御可能装置情報通知ステップと、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から制御可能装置情報を受け取る制御可能装置情報受取ステップと、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置のデータ伝送を制御可能であるかどうかを判断する第1の判断ステップと、
前記第1の判断ステップにおける判断結果が否定的であるときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置が前記ホストとして当該装置のデータ伝送を制御可能であるか否かを該他の通信装置から受け取った制御可能装置情報に基づいて判断する第2の判断ステップと、
前記第2の判断ステップにおける判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行ステップと、
を具備することを特徴とする通信方法。 - 1台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交換するための所定の通信プロトコルが適用されており、
当該通信装置が前記デバイスに決定されたときに、当該通信装置が前記ホストとして前記所定の通信インターフェース上でのデータ伝送を制御可能な通信装置に関する制御可能装置情報を、前記ホストとして動作する他の通信装置に通知する制御可能装置情報通知手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から制御可能装置情報を受け取る制御可能装置情報受取手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置のデータ伝送を制御可能であるかどうかを判断する第1の判断手順と、
前記第1の判断手順を実行して得られた判断結果が否定的であるときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置が前記ホストとして当該装置のデータ伝送を制御可能であるか否かを該他の通信装置から受け取った制御可能装置情報に基づいて判断する第2の判断手順と、
前記第2の判断手順を実行して得られた判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007167616A JP2009009210A (ja) | 2007-06-26 | 2007-06-26 | 通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007167616A JP2009009210A (ja) | 2007-06-26 | 2007-06-26 | 通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009009210A true JP2009009210A (ja) | 2009-01-15 |
Family
ID=40324254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007167616A Pending JP2009009210A (ja) | 2007-06-26 | 2007-06-26 | 通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009009210A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012015581A (ja) * | 2010-06-29 | 2012-01-19 | Mitsubishi Electric Corp | Ofdm通信システム |
JP2017534932A (ja) * | 2015-08-14 | 2017-11-24 | エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd | 異機種環境においてデータ通信を支援するためのシステム及び方法、並びにプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004118261A (ja) * | 2002-09-24 | 2004-04-15 | Seiko Epson Corp | ホストとデバイスのいずれの役割も選択的に設定することができる通信コントローラを備えた電子機器 |
JP2005250671A (ja) * | 2004-03-02 | 2005-09-15 | Sony Corp | 通信システム、通信装置、通信方法およびプログラム |
JP2006277010A (ja) * | 2005-03-28 | 2006-10-12 | Canon Inc | Usb−otg装置 |
-
2007
- 2007-06-26 JP JP2007167616A patent/JP2009009210A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004118261A (ja) * | 2002-09-24 | 2004-04-15 | Seiko Epson Corp | ホストとデバイスのいずれの役割も選択的に設定することができる通信コントローラを備えた電子機器 |
JP2005250671A (ja) * | 2004-03-02 | 2005-09-15 | Sony Corp | 通信システム、通信装置、通信方法およびプログラム |
JP2006277010A (ja) * | 2005-03-28 | 2006-10-12 | Canon Inc | Usb−otg装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012015581A (ja) * | 2010-06-29 | 2012-01-19 | Mitsubishi Electric Corp | Ofdm通信システム |
JP2017534932A (ja) * | 2015-08-14 | 2017-11-24 | エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd | 異機種環境においてデータ通信を支援するためのシステム及び方法、並びにプログラム |
US10116753B2 (en) | 2015-08-14 | 2018-10-30 | SZ DJI Technology Co., Ltd. | System and method for supporting data communication in a heterogeneous environment |
US10721309B2 (en) | 2015-08-14 | 2020-07-21 | SZ DJI Technology Co., Ltd. | System and method for supporting data communication in a heterogeneous environment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7890683B2 (en) | Communication system that exchanges host and device roles of first and second communication apparatuses | |
EP2521973B1 (en) | Connecting multiple accessories to a portable computing device | |
JP6400714B2 (ja) | Usbハブを有する自動車システムとの柔軟なモバイルデバイス接続性 | |
US7305511B2 (en) | Providing both wireline and wireless connections to a wireline interface | |
US7127541B2 (en) | Automatically establishing a wireless connection between adapters | |
JP5559885B2 (ja) | 自己構成可能な周辺装置に適合するホスト/周辺装置ローカル相互接続 | |
US6519290B1 (en) | Integrated radio frequency interface | |
US20120233266A1 (en) | Peer-to-peer group with renegotiation of group owner | |
JP5387368B2 (ja) | 通信装置、通信システム、通信方法およびプログラム | |
KR100720708B1 (ko) | 무선 usb drd 시스템 | |
JP2009259296A (ja) | 電子デバイスの構成方法 | |
WO2015059654A1 (en) | Universal serial bus (usb) hub for switching downstream ports between host mode and slave mode | |
KR20110049121A (ko) | 디바이스 활성화 방법 및 장치 | |
EP2845114A1 (en) | Extensible wse hub to support a multi-hop tree of usb hubs or peripherals over a wireless link | |
JP2007280261A (ja) | ネットワーク上の機器を共有可能とする可搬型仮想記憶装置 | |
JP2011103047A (ja) | 電子機器及びアクセス制御方法 | |
JP2018073392A (ja) | Usbハブを有する自動車システムへの順応性のある携帯型デバイス接続性 | |
JP2005250671A (ja) | 通信システム、通信装置、通信方法およびプログラム | |
CN113473645A (zh) | 数据传输方法和装置 | |
JP5143191B2 (ja) | 周辺装置を利用するためのシステム、サーバ装置、方法 | |
JP5220871B2 (ja) | 無線構成要素間で共有資源を有する無線装置の分散管理のための技術 | |
JP2009009210A (ja) | 通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラム | |
CN102946402B (zh) | 通信方法以及蓝牙装置 | |
EP2924955B1 (en) | Apparatus, communication control system, and communication control method | |
US9619005B2 (en) | Apparatus and method for saving power of USB device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100421 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120117 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120605 |