(57)【要約】【課題】各機器が備えるユーザ・インターフェースの操作性などを考慮して、ＵＳＢ接続された機器の間でホスト及びデバイスの役割を適宜交替する。【解決手段】初期状態でホストとして起動した通信装置は、デバイスとして動作する通信相手から、通信装置についてのソフトウェア、ハードウェアに関する情報、通信装置が装備する入出力装置に関する情報などを格納するディスクリプタを取得すると、自らが保有するディスクリプタの情報と比較する。ホスト／デバイスの役割交替により操作性が向上すると判定したときには、ＨＮＰによるホスト／デバイスの役割交替が実行される。【選択図】  図４
2009009211.tif 000002
【特許請求の範囲】
【請求項１】
１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上において複数の通信装置がデータ伝送を行なう通信システムであって、前記所定の通信インターフェースに接続された第１及び第２の通信装置が前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、
前記第１の通信装置が前記ホストに決定され、前記第２の通信装置が前記デバイスに決定された場合において、
前記第２の通信装置の装置構成又は装置固有の情報に関する装置情報を、前記第１の通信装置に通知する装置情報通知手段と、
前記第１の通信装置が、前記第２の通信装置から通知された装置情報を自分の装置構成又は装置固有の情報と比較し、所定の判断基準に基づいて前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手段と、
前記判断手段による判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システム。
【請求項２】
１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置であって、前記ホスト及び前記デバイスのいずれとしても動作することができるとともに前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、
前記所定の通信プロトコルに従って、前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
当該通信装置が前記デバイスに決定されたときに、当該通信装置の構成又は装置固有の情報に関する装置情報を、前記所定の通信インターフェース上で前記ホストとして動作する通信装置に通知する装置情報通知手段と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から前記装置情報を受け取る装置情報受取手段と、
当該通信装置が前記ホストに決定されたときに、前記他の通信装置から通知された装置情報を自分の装置構成又は装置固有の情報と比較し、所定の判断基準に基づいて前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手段を備え、
前記判断手段による判断結果が肯定的であるときに、前記交替手続実行手段が前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する、
ことを特徴とする通信装置。
【請求項３】
前記通信インターフェースはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェースであり、前記所定のプロトコルはＵＳＢ  ＯＴＧ（Ｏｎ−Ｔｈｅ−Ｇｏ）で用意されているＨＮＰ（Ｈｏｓｔ  Ｎｅｇｏｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）である、
ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記装置情報通知手段が通知する装置情報は、当該通信装置のハードウェアのバージョン情報又はソフトウェアのバージョン情報を含む、
ことを特徴とする請求項２に記載の通信装置。
【請求項５】
前記装置情報通知手段が通知する装置情報は、当該通信装置が備える出力装置又は入力装置に関する情報を含む、
ことを特徴とする請求項２に記載の通信装置。
【請求項６】
前記判断手段は、ユーザの操作性が向上すること又はユーザの利便性が向上することを前記所定の判断基準として、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する、
ことを特徴とする請求項２に記載の通信装置。
【請求項７】
１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御方法であって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、
当該通信装置が前記デバイスに決定されたときに、当該通信装置の構成又は装置固有の情報に関する装置情報を、前記所定の通信インターフェース上で前記ホストとして動作する通信装置に通知する装置情報通知ステップと、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から前記装置情報を受け取る装置情報受取ステップと、
当該通信装置が前記ホストに決定されたときに、前記他の通信装置から通知された装置情報を自分の装置構成又は装置固有の情報と比較し、所定の判断基準に基づいて前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断ステップと、
前記判断ステップにおける判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行ステップと、
を具備することを特徴とする通信方法。
【請求項８】
１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、前記コンピュータ・プログラムは前記コンピュータに対し、
当該通信装置が前記デバイスに決定されたときに、当該通信装置の構成又は装置固有の情報に関する装置情報を、前記所定の通信インターフェース上で前記ホストとして動作する通信装置に通知する装置情報通知手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から前記装置情報を受け取る装置情報受取手順と、
当該通信装置が前記ホストに決定されたときに、前記他の通信装置から通知された装置情報を自分の装置構成又は装置固有の情報と比較し、所定の判断基準に基づいて前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手順と、
前記判断手順を実行して得られた判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラム。
【請求項９】
１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上において複数の通信装置がデータ伝送を行なう通信システムであって、前記所定の通信インターフェースに接続された第１及び第２の通信装置が前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、
前記第１の通信装置が前記ホストに決定され、前記第２の通信装置が前記デバイスに決定された場合において、
前記第２の通信装置の状態に関する装置状態情報を、前記第１の通信装置に通知する装置状態情報通知手段と、
前記第１の通信装置が、前記第２の通信装置から通知された装置状態情報を自分の装置状態と比較し、所定の判断基準に基づいて前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手段と、
前記判断手段による判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システム。
【請求項１０】
１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置であって、前記ホスト及び前記デバイスのいずれとしても動作することができるとともに前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、
前記所定の通信プロトコルに従って、前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
当該通信装置が前記デバイスに決定されたときに、当該通信装置の状態に関する装置状態情報を、前記所定の通信インターフェース上で前記ホストとして動作する通信装置に通知する装置状態情報通知手段と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から前記装置状態情報を受け取る装置状態情報受取手段と、
当該通信装置が前記ホストに決定されたときに、前記他の通信装置から通知された装置状態情報を自分の装置状態と比較し、所定の判断基準に基づいて前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手段を備え、
前記判断手段による判断結果が肯定的であるときに、前記交替手続実行手段が前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する、
ことを特徴とする通信装置。
【請求項１１】
前記通信インターフェースはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェースであり、前記所定のプロトコルはＵＳＢ  ＯＴＧ（Ｏｎ−Ｔｈｅ−Ｇｏ）で用意されているＨＮＰ（Ｈｏｓｔ  Ｎｅｇｏｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）である、
ことを特徴とする請求項１０に記載の通信装置。
【請求項１２】
前記装置情報通知手段が通知する装置状態情報は、当該通信装置において通信の準備ができている状態か否かを示す情報を含む、
ことを特徴とする請求項１０に記載の通信装置。
【請求項１３】
前記装置情報通知手段が通知する装置状態情報は、当該通信装置におけるアプリケーションの起動状態を含む、
ことを特徴とする請求項１０に記載の通信装置。
【請求項１４】
前記装置情報通知手段が通知する装置状態情報は、前記所定の通信インターフェースに接続してからの経過時間に関する情報を含む、
ことを特徴とする請求項１０に記載の通信装置。
【請求項１５】
前記装置情報通知手段が通知する装置状態情報は、当該通信装置に対してユーザが最後に操作を行なってからの経過時間に関する情報を含む、
ことを特徴とする請求項１０に記載の通信装置。
【請求項１６】
前記判断手段は、ユーザの操作性が向上すること又はユーザの利便性が向上することを前記所定の判断基準として、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する、
ことを特徴とする請求項１０に記載の通信装置。
【請求項１７】
１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御方法であって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、
当該通信装置が前記デバイスに決定されたときに、当該通信装置の状態に関する装置状態情報を、前記所定の通信インターフェース上で前記ホストとして動作する通信装置に通知する装置状態情報通知ステップと、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から前記装置状態情報を受け取る装置状態情報受取ステップと、
当該通信装置が前記ホストに決定されたときに、前記他の通信装置から通知された装置状態情報を自分の装置状態と比較し、所定の判断基準に基づいて前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断ステップと、
前記判断ステップにおける判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行ステップと、
を具備することを特徴とする通信方法。
【請求項１８】
１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、前記コンピュータ・プログラムは前記コンピュータに対し、
当該通信装置が前記デバイスに決定されたときに、当該通信装置の状態に関する装置状態情報を、前記所定の通信インターフェース上で前記ホストとして動作する通信装置に通知する装置状態情報通知手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から前記装置状態情報を受け取る装置状態情報受取手順と、
当該通信装置が前記ホストに決定されたときに、前記他の通信装置から通知された装置状態情報を自分の装置状態と比較し、所定の判断基準に基づいて前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手順と、
前記判断手順を実行して得られた判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の通信インターフェースを介して複数の機器がデータ伝送を行なう通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムに係り、特に、１台の機器が「ホスト」として通信インターフェース上のデータ伝送を制御するとともに、その他の機器が「デバイス」としてホストの制御に従って通信インターフェース上でデータ伝送を行なう通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、ＰＣなどの固定的なホストが存在しない環境下で、ホスト及びデバイスの双方の役割が可能な通信機器が互いにホストとデバイスの役割を簡易に分担する通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムに係り、特に、初期状態でそれぞれホスト及びデバイスに決定された通信機器間において所定の通信プロトコルに従ってホスト及びデバイスの役割を交替する通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００３】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）は、シリアルポート（ＲＳ−２３２Ｃ）やパラレルポートなどのレガシーポートに代替される、プラグアンドプレイに対応した汎用バス・インターフェース規格である。ＵＳＢは、当初米インテル社を始めとする４社で仕様が策定されたが、現在はＮＰＯであるＵＳＢ  Ｉｍｐｌｅｍｅｎｔｅｒｓ  Ｆｏｒｕｍ，Ｉｎｃ．（ＵＳＢ−ＩＦ）によって仕様の策定や管理が行なわれている。規格上ＩＥＥＥ１３９４（最大４００Ｍｂｐｓ）を越える速度で高速転送できるＨｉｇｈ  Ｓｐｅｅｄモード（最大４８０Ｍｂｐｓ）を実現したＵＳＢ２．０が広く普及している。
【０００４】
ＵＳＢでは、周辺機器の機能に応じてグループ分けされたＵＳＢクラスと呼ばれる仕様群が定義されている。それぞれのクラス仕様に従って作成されたデバイスは同じ機能を提供していることから、クラス準拠のデバイスはクラス・ドライバによって動作することができ、デバイス毎に個別のドライバ・ソフトウェアを用意する必要がない。
【０００５】
ＵＳＢは、本来は有線ケーブルを利用した伝送方式であり、共通のシリアル通信バスを介して複数の機器を接続して１つのＵＳＢ通信システムが構成される。また最近では、有線の安全性と通信速度と無線の使い易さを融合してＵＳＢを無線通信に拡張した“Ｗｉｒｅｌｅｓｓ  ＵＳＢ”（ＷＵＳＢ）の開発が進められている。ＷＵＳＢは、超広帯域を用いる無線技術であるＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）を応用したもので、物理層及びＭＡＣ層の規格としてはＷｉＭｅｄｉａ  Ａｌｌｉａｎｃｅが推進するマルチバンドＯＦＤＭ方式を採用している。ＷＵＳＢによれば、通信範囲３メートルで最高４８０Ｍｂｐｓ、１０メートルで最高１１０Ｍｂｐｓの速度での通信が可能で、また、スタートポロジを使用して１台のホストに対し最大１２７台のデバイスを接続することができる。
【０００６】
ＵＳＢの通信システムは、ＵＳＢ接続される複数の機器のうちの１つが「ホスト（Ｈｏｓｔ）」、その他の機器が「デバイス」と称される機能をそれぞれ果たす（なお、デバイスについては、「ファンクション（Ｆｕｎｃｔｉｏｎ）」あるいは「ペリフェラル（Ｐｅｒｉｐｈｅｒａｌ）」と呼ぶこともあるが、本明細書では「デバイス」に統一して表記することにする）。有線ＵＳＢシステムの場合、ＵＳＢケーブルは、その一端にホスト接続用の「Ａプラグ」、他端にデバイス接続用の「Ｂプラグ」がそれぞれ配設された非対称な構造である。この場合、Ａプラグが差し込まれた機器がホストとして動作するとともにＢプラグが差し込まれた機器がデバイスとして動作し、ホストとデバイスの関係が固定的である。
【０００７】
ホストはＵＳＢインターフェース上のデータの伝送の全般を制御する役目を有しており、通常はパーソナル・コンピュータ（ＰＣ）がホストになる。ホストは、例えば新しくＵＳＢ接続されたデバイスを検出する処理や、バス上におけるデータの流れを管理する処理などを行なう。他方のデバイスは、ホストの制御下で通信を行なう。デバイスの接続相手は常にホストとなる。
【０００８】
ＵＳＢを利用した通信は、基本的に、ホスト側でスケジューリングが行なわれ、常にホスト側から通信が開始され、デバイスがこれに応答するという形態をとる。すなわち、ホストからデバイスに対して要求が伝えられ、デバイスがこの要求に対して応答を返すという方法により通信を行なう。デバイスが自らの情報をホストに通知する動作や、ホストとの間でデータを送受信する動作は、いずれもホストからの要求に対しデバイスが応答する動作として実行される。
【０００９】
ＵＳＢは、例えばホストとして動作するＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）と、デバイスとして動作するプリンタなどの周辺機器とを接続する技術として既に広く普及しており、事実上の業界標準の地位を確立している。また、最近では、ＵＳＢに準拠したさまざまな周辺機器が出現してきたことに伴い、ＰＣを介さない周辺機器同士の接続への要求が高まっている。
【００１０】
このような要求に応えるべく、ＵＳＢ２．０の追加規格として、ＵＳＢ  Ｏｎ−Ｔｈｅ−Ｇｏ（以下、「ＯＴＧ」と表記する）が策定されている。これにより、本来はホストでないデジタルカメラなどの機器に対してＵＳＢ２．０のホスト・コントローラ機能を限定的に追加して、周辺機器の間で直接データを伝送することが可能になった。
【００１１】
ＵＳＢをＰＣの周辺機器接続用のインターフェースとして使用する場合には、ＰＣがホストとなり周辺機器がデバイスとなる関係は固定的であり、ＵＳＢケーブルのプラグ形状からもホスト／デバイス関係が一義に決められる（前述）。これに対し、周辺機器同士の直接接続を考慮した場合、例えばデジタルカメラは、ＰＣに接続されているときはデバイスとして動作し、プリンタにダイレクトプリントするときにはホストとして動作するという具合に、ＵＳＢ接続された機器間においてホストとデバイスの役割を柔軟に決定することが望ましい。
【００１２】
そこで、ＯＴＧでは、ホストとデバイスの両方の機能を有する機器として、デュアル・ロール・デバイス（Ｄｕａｌ  Ｒｏｌｅ  Ｄｅｖｉｃｅ）（以下では、「ＤＲＤ」と表記する）が規定されている。ＤＲＤは、接続されるＵＳＢケーブルのプラグの型に応じて、初期状態の機能（ホストとデバイスの分担）を決定する。すなわち、ＯＴＧ対応のＵＳＢケーブルは、その一端がＭｉｎｉ−Ａと称されるプラグで他端がＭｉｎｉ−Ｂと称されるプラグを持つ非対称構造であり、Ｍｉｎｉ−Ａとプラグに接続された機器が初期状態においてホストになるとともに、Ｍｉｎｉ−Ｂプラグに接続された機器が初期状態においてデバイスになる。Ｍｉｎｉ−Ａプラグに接続される機器は「Ａデバイス」、Ｍｉｎｉ−Ｂプラグに接続される機器は「Ｂデバイス」と呼ばれる。
【００１３】
また、ＯＴＧでは、ＵＳＢ２．０の通信プロトコルに加えて、ＳＲＰ（Ｓｅｓｓｉｏｎ  Ｒｅｑｕｅｓｔ  Ｐｒｏｔｏｃｏｌ）、及び、ＨＮＰ（Ｈｏｓｔ  Ｎｅｇｏｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）と称される通信プロトコルが用意されている。
【００１４】
ＯＴＧで規定されるＡデバイスは、未通信時にＵＳＢバスへの電流供給を停止することが許されている。ＳＲＰは、その電流供給停止時に、ＢデバイスからＡデバイスへ電流供給の再開を促すための通信プロトコルである。Ａデバイスは、ＳＲＰを用いればＢデバイスから要求されるまではＵＳＢバスへの電流供給を停止することができ、未通信時における消費電力を低減することができる。
【００１５】
また、ＯＴＧ対応のＵＳＢケーブルを介して接続される２つのＤＲＤは、それぞれに差し込まれたプラグの型に応じて、初期状態におけるホスト及びデバイスの役割分担が決定される（前述）。ＨＮＰは、一方がホスト、他方がデバイスとして動作しているときに、プラグの挿し替えを行なうことなく、ホストとデバイスの役割を交替するための通信プロトコルである。これにより、プラグの差し替えの手間が省けるため、ユーザの利便性が向上する。
【００１６】
ＯＴＧを導入すると、デジタルカメラやスキャナとプリンタ、携帯電話と携帯音楽プレーヤやメモリカード・リーダ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）とハード・ディスクやＭＯ（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ）ドライブなどの組み合わせで、ＰＣを介さずに周辺機器同士が直接にデータのやり取りをできるようになる。例えば、ＰＤＡと携帯電話機をＵＳＢ接続してＰＤＡをインターネット接続することができ、携帯音楽プレーヤ徒携帯電話機をＵＳＢ接続してインターネットから携帯音楽プレーヤに楽曲をダウンロードすることができる。また、デジタルカメラとプリンタ間をＵＳＢケーブルで直接接続して「ダイレクトプリント」を行なうことができる。
【００１７】
デジタルカメラとプリンタをＵＳＢ接続してダイレクトプリントを行なうための通信規格として、例えば、ＣＩＰＡ（Ｃａｍｅｒａ  ＆  Ｉｍａｇｉｎｇ  Ｐｒｏｄｕｃｔｓ  Ａｓｓｏｃｏａｔｉｏｎ：カメラ映像機器工業会）により策定された“ＰｉｃｔＢｒｉｄｇｅ”が挙げられる。ＰｉｃｔＢｒｉｄｇｅ対応の機器同士は、特別なソフトウェアをインストールすることなく、ＵＳＢケーブルで接続して直接印刷を行なうことができる。デジタルカメラ側では、液晶モニタで表示中の画像をボタン操作などで簡単にプリントアウトすることができる。また、印刷設定(用紙サイズなど)を指定することができる他、指定がない画像はプリンタ側の標準設定で印刷する機能もある。また、指定した画像を印刷するだけでなく、縮小した画像の一覧を印刷するインデックスプリント機能や、同一画像の複数枚プリント、日付入りプリントなど多彩な機能を利用することができる。さらに、印刷中にエラーなどのイベントが発生した場合には、デジタルカメラの液晶モニタなどを介してエラー表示を行なうことができる。
【００１８】
ところで、ＵＳＢ通信において、通信の開始や終了、その他の各種設定などの指示操作をユーザが実際に行なうのは、ホスト側のユーザ・インターフェース（タッチパネルやキーボード、その他の入力装置）とは限らず、デバイス側のユーザ・インターフェースであってもよい。これは、上述のＰｉｃｔＢｒｉｄｇｅ規格において、デバイスとして振舞うデジタルカメラからホストとして動作するプリンタに対して印刷の指示が可能であるという例からも明らかであり、ＯＴＧ規格に従ってＵＳＢ接続された機器間の通信規約に依存する。
【００１９】
逆言すると、デバイス側のユーザ・インターフェースの操作によって、ある種のコマンドをホスト側に送信してＵＳＢ通信の指示を行なうためには、特別な通信規約が必要になる。したがって、特段の目的がない限りは、ホスト側の操作でＵＳＢ通信の指示を行なう方が、通信にかかる負担を軽減させ、機器の設計も容易になる。ホスト側の機器のユーザ・インターフェースを通じてＵＳＢ通信に関わる各種操作を行なうことが一般的である、と言うことができる。
【００２０】
ここで、ＤＲＤにＵＳＢ接続された通信装置がホスト・コントローラ機能を持つＤＲＤである場合、すなわちＤＲＤ同士をＵＳＢ接続した場合について考察してみる。
【００２１】
２台のＤＲＤをそれぞれ機器１並びに機器２とすると、機器１がホストとしてサポートしているデバイス群と、機器２がホストとしてサポートしているデバイス群は一般に異なる。但し、機器１と機器２がお互いに他方をサポートしている（すなわち、互いの他方の機器のデバイス・ドライバを備えている）とすると、ＵＳＢケーブルのＭｉｎｉ−Ａプラグが差し込まれたＡデバイスが初期状態のままホスト機能を担うことができる。
【００２２】
しかしながら、ホスト側の機器のユーザ・インターフェースを通じてＵＳＢ通信に関わる各種操作を行なうことを想定すると、機器１及び機器２がそれぞれ装備する入力装置や出力装置などの操作性を考慮して、いずれの機器にホスト機能を担わせるべきかを決定するべきであると思料される。
【００２３】
単純にＭｉｎｉ−Ａプラグが差し込まれたＡデバイスを初期状態のままホストとしてＵＳＢ通信システムを運用する場合、ＵＳＢケーブルの接続方向（いずれの機器にＭｉｎｉ−Ａプラグ並びにＭｉｎｉ−Ｂプラグを差し込むか）は、機器が持つユーザ・インターフェースの操作性とは無関係であり、好ましい機器がホストに設定されるとは限らない。ＡデバイスをそのままホストとしＡデバイス側でＵＳＢ通信に関わる操作を行なうので、仮にＢデバイスの方が優れた操作性を備えていたとしても、これを活用することができない。
【００２４】
また、一般のユーザはＵＳＢに対する専門知識は無いため、機器１及び機器２それぞれの操作性を考慮してＵＳＢケーブルの接続方向を決定したり、あるいは、ホスト側の機器の操作性が良くないときにユーザにＵＳＢケーブルの接続のし直しを強いたりすることは現実的でない。
【００２５】
勿論、同一の機種をＵＳＢ接続する場合であっても、機器毎にファームウェアのバージョンが相違するときには、操作性やホストとしての通信性能が異なる可能性がある。この場合も同様に、ホストとしての操作性とＵＳＢケーブルの接続方向が一致しないという問題が発生し得て、デバイス側の優れた操作性や通信の安定性を享受できないことになる。
【００２６】
また、Ａデバイスに初期状態のままホスト機能を担わせることにより招来される問題は、機器が物理的に備える操作性との不一致に限らない。
【００２７】
ＵＳＢケーブルの両端のプラグ端子を２つの機器に同時に差し込む作業は困難である。このため、ユーザは通常、接続したい機器毎のプラグの差し込み作業を順に行なう。そして、ＵＳＢケーブルが接続され機器間でＵＳＢ通信が可能となった時点で、時間的に後にプラグを差し込んだ機器をユーザが手に持ち続けている、あるいは身近に置いてある可能性が高い。このことを考慮すると、時間的に後にプラグを差し込んだ機器からＵＳＢ通信に関わる操作を行なえるようにする（言い換えれば、時間的に後にプラグを差し込んだ機器にホスト機能を担わせる）方が、ユーザの移動などの手間が省けて便利である。
【００２８】
同様に、ユーザ・インターフェースに何らかの操作が行なわれた機器、あるいは直近で移動が行なわれた機器の方がユーザの身近にある可能性が高く、こちらの機器からＵＳＢ通信に関わる操作を行なえるようにする方が、ユーザの移動などの手間が省けて便利である。
【００２９】
また、ＵＳＢ接続されている２台の機器のうち一方でＵＳＢ通信を行なうアプリケーションが起動中であるときや、ＵＳＢ通信のための準備が行なわれている最中であるときには、ユーザは当該機器を操作することを念頭においてある可能性が高いので、当該機器からＵＳＢ通信に関わる操作を行なえるようにする方が、ユーザの移動などの手間が省けて便利である。
【００３０】
このように、それぞれの利用形態若しくは機器の状態に応じたユーザの利便性に基づいて、ＵＳＢ通信に関わるユーザ・インターフェースの操作を行なう機器、すなわちホスト機能を担わせる機器を決定すべきであるが、これはＵＳＢケーブルの接続方向に必ず一致するとは限らない。
【００３１】
例えば、ＤＲＤ同士の接続において相互の通信性能に基づいて、ホストとデバイスの役割を交換することによって通信性能を向上させる通信システムについて提案がなされている（例えば、特許文献１を参照のこと）。しかしながら、同通信システムは、ＵＳＢ接続されたＤＲＤの間でホストとデバイスの役割を交替することで消費電力や通信速度の改善することを目的としたものであるが、ＵＳＢ接続された機器がそれぞれ持つユーザ・インターフェースの操作性や、ＵＳＢ通信に関連する指示操作を行なう際のユーザの利便性を考慮してホストを決定するものではなく、上述した問題を解決することはできない。
【００３２】
また、２台のＤＲＤをＵＳＢ接続したときにその接続方向に誤りがあるときにＨＮＰに従ってホストとデバイスの役割を交替する画像出力システムについて提案がなされているが（例えば、特許文献２を参照のこと）、同システムは、ＵＳＢ接続された機器がそれぞれ持つユーザ・インターフェースの操作性や、ＵＳＢ通信に関連する指示操作を行なう際のユーザの利便性を考慮してホストを決定するものではなく、上述した問題を解決することはできない。
【００３３】
【特許文献１】特開２００５−２５０６７１号公報
【特許文献２】特開２００４−３１６０７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００３４】
本発明の目的は、１台の機器がホストとして通信インターフェース上のデータ伝送を制御するとともに、その他の機器がデバイスとしてホストの制御に従って通信インターフェース上で好適にデータ伝送を行なうことができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することにある。
【００３５】
本発明のさらなる目的は、ＰＣなどの固定的なホストが存在しない環境下で、ホスト及びデバイスの双方の役割が可能な通信機器が互いにホストとデバイスの役割を簡易に分担することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することにある。
【００３６】
本発明のさらなる目的は、初期状態でそれぞれホスト及びデバイスに決定された通信機器間において所定の通信プロトコルに従ってホスト及びデバイスの役割を適宜交替することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することにある。
【００３７】
本発明のさらなる目的は、初期状態で決定されたホスト／デバイスの役割分担に拘わらず、機器が備えるユーザ・インターフェースの操作性や、ＵＳＢ通信に関連する指示操作を行なう際のユーザの利便性を考慮して、ＵＳＢ接続された機器の間でホスト及びデバイスの役割を適宜交替することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００３８】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上において複数の通信装置がデータ伝送を行なう通信システムであって、前記所定の通信インターフェースに接続された第１及び第２の通信装置が前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、
前記第１の通信装置が前記ホストに決定され、前記第２の通信装置が前記デバイスに決定された場合において、
前記第２の通信装置の装置構成又は装置固有の情報に関する装置情報を、前記第１の通信装置に通知する装置情報通知手段と、
前記第１の通信装置が、前記第２の通信装置から通知された装置情報を自分の装置構成又は装置固有の情報と比較し、所定の判断基準に基づいて前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手段と、
前記判断手段による判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システムである。
【００３９】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない（以下、同様）。
【００４０】
ＵＳＢは、ＰＣと周辺機器とを接続する通信インターフェースとして、事実上の業界標準の地位を確立している。また、最近では、ＰＣを介さずに周辺機器同士をＵＳＢ接続するという要求に応えるべく、ＵＳＢ２．０の追加規格としてＯＴＧが策定されている。
【００４１】
ＯＴＧでは、ホストとデバイスの両方の機能を有する機器として、デュアル・ロール・デバイス（ＤＲＤ）が規定されている。ＤＲＤ同士をＵＳＢ接続した場合、ＵＳＢケーブルの接続方向（互いの機器に差し込んだプラグ形状）に応じて初期状態でのホストとデバイスの関係が決定するが、その後はＨＮＰ（Ｈｏｓｔ  Ｎｅｇｏｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）に従って、ホストとデバイスの役割を交替することができる。
【００４２】
ここで、２台の機器がＵＳＢ接続された際、ホスト側の機器のユーザ・インターフェースを通じてＵＳＢ通信に関わる各種操作を行なうことが一般的である。しかしながら、ＵＳＢ規格に関する知識が不十分なユーザは、各機器の操作性や利用形態若しくは機器の状態に応じた利便性を考慮してＵＳＢケーブルの接続を行なうとは限らず、初期状態においてホストに決定された機器が適当であるとは限らない、という問題がある。
【００４３】
これに対し、本発明の第１の側面に係る通信システムでは、それぞれＤＲＤに相当する第１及び第２の通信装置がＵＳＢ接続され、且つ、ＵＳＢケーブルの接続方向などに応じて第１の通信装置が例えば初期状態でホストに決定されたときに、判断手段は、前記第１の通信装置と前記第２の通信装置それぞれが持つ装置構成又は装置固有の情報を所定の判断基準に基づいて比較して、前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する。そして、この判断結果が肯定的であるときには、ＨＮＰに従って第１及び前記第２の通信装置間でホストとデバイスの役割を交替するようになっている。
【００４４】
したがって、本発明によれば、ユーザにＵＳＢケーブルの接続のし直しを強いることなく、ユーザの操作性の向上や機器の持ち替え、場所の移動などの煩わしさといったユーザの作業負担を軽減するように、自動的に最適な役割分担となるようにホスト／デバイスの役割交替を行なうので、ＵＳＢ通信を利用するユーザの利便性が向上する。
【００４５】
前記判断手段は、ユーザの操作性が向上すること又はユーザの利便性が向上することを前記所定の判断基準として、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する。
【００４６】
前記装置情報通知手段が通知する装置情報としては、例えば、当該通信装置のハードウェアのバージョン情報又はソフトウェアのバージョン情報が含まれる。接続された通信装置が同一の機種である場合は、より新しいバージョンの通信装置の方が操作性や機能、通信安定性などが優れている可能性が高いと言えるので、バージョン情報の新しい方の機器をホストに設定して操作を行なう方がユーザにとってメリットが高いと思料される。
【００４７】
また、前記装置情報通知手段が通知する装置情報としては、例えば、当該通信装置が備える出力装置又は入力装置に関する情報が含まれる。出力装置としての表示部は、画面解像度すなわち１画素当たりの情報量が大きいほど出力装置の表現能力が優れていると言えるので、画面解像度の高い方の機器をホストに設定して操作を行なう方がユーザにとってメリットが高いと思料される。また、より操作性の高いと考えられる種別の入力装置を装備する機器をホストにすべきである。
【００４８】
また、本発明の第２の側面は、１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上において複数の通信装置がデータ伝送を行なう通信システムであって、前記所定の通信インターフェースに接続された第１及び第２の通信装置が前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、
前記第１の通信装置が前記ホストに決定され、前記第２の通信装置が前記デバイスに決定された場合において、
前記第２の通信装置の状態に関する装置状態情報を、前記第１の通信装置に通知する装置状態情報通知手段と、
前記第１の通信装置が、前記第２の通信装置から通知された装置状態情報を自分の装置状態と比較し、所定の判断基準に基づいて前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手段と、
前記判断手段による判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記第１及び前記第２の通信装置間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手段と、
を具備することを特徴とする通信システムである。
【００４９】
ＵＳＢケーブルの接続方向に応じて初期状態でホストに決定された機器にそのままホスト機能を担わせることによって招来される問題は、機器が物理的に備える操作性との不一致に限らない。これに対し、本発明の第２の側面に係る通信システムによれば、ＵＳＢ接続された各機器の操作性や利用形態若しくは機器の状態に応じた利便性を考慮して、適当な機器にホスト機能を切り替えるように構成されている。
【００５０】
本発明の第２の側面に係る通信システムにおいても、前記判断手段は、ユーザの操作性が向上すること又はユーザの利便性が向上することを前記所定の判断基準として、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する。
【００５１】
前記装置情報通知手段が通知する装置状態情報としては、例えば、当該通信装置において通信の準備ができている状態か否かを示す情報や、当該通信装置におけるアプリケーションの起動状態が含まれる。２つの通信装置間でデータのコピーなどの転送を行なう場合、いずれの装置側からも通信に関する操作が可能な状況では、一方の装置でユーザがデータのコピー用のアプリケーションを起動していたら、そのユーザはその装置での操作を望んでいる可能性が高い。すなわち、接続した通信装置のうち、通信の準備ができている装置側で操作を行なった方がユーザの利便性が高いといえるので、通信準備完了状態にある通信装置をホストに設定すればよい。
【００５２】
また、前記装置情報通知手段が通知する装置状態情報には、例えば、前記所定の通信インターフェース（すなわちＵＳＢケーブル）に接続してからの経過時間に関する情報が含まれる。通常、ユーザは通信装置毎に順番にケーブル接続を行なう。このとき、時間的に後に接続した通信装置を手に持っている、あるいは身近においてある可能性が高いため、こちらの通信装置で操作を行なえた方が機器の持ち替えやユーザの移動などの手間が省けるため便利である。したがって、ケーブルが挿入されてからの経過時間の情報が小さい装置をホストに設定すればよい。
【００５３】
また、前記装置情報通知手段が通知する装置状態情報には、例えば、当該通信装置に対してユーザが最後に操作を行なってからの経過時間に関する情報が含まれる。時間的に後にユーザ操作が行なわれた通信装置をユーザが手に持っている、あるいは身近においてある可能性が高い。したがって、ユーザの最後の操作からの経過時間の情報が小さい装置をホストに設定すればよい。
【００５４】
また、本発明の第３の側面は、１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、前記コンピュータ・プログラムは前記コンピュータに対し、
当該通信装置が前記デバイスに決定されたときに、当該通信装置の構成又は装置固有の情報に関する装置情報を、前記所定の通信インターフェース上で前記ホストとして動作する通信装置に通知する装置情報通知手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から前記装置情報を受け取る装置情報受取手順と、
当該通信装置が前記ホストに決定されたときに、前記他の通信装置から通知された装置情報を自分の装置構成又は装置固有の情報と比較し、所定の判断基準に基づいて前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手順と、
前記判断手順を実行して得られた判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラムである。
【００５５】
また、本発明の第４の側面は、１台の通信装置がホストとしてデータ伝送を制御するとともにそれ以外の通信装置がデバイスとして前記ホストの制御に従ってデータ伝送を行なう所定の通信インターフェース上で通信動作を行なう通信装置の制御をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、当該通信装置は前記ホスト及び前記デバイスのいずれとしても動作することができるとともに、前記所定の通信インターフェースには通信装置間で前記ホスト及び前記デバイスの役割を交替するための所定の通信プロトコルが適用されており、前記コンピュータ・プログラムは前記コンピュータに対し、
当該通信装置が前記デバイスに決定されたときに、当該通信装置の状態に関する装置状態情報を、前記所定の通信インターフェース上で前記ホストとして動作する通信装置に通知する装置状態情報通知手順と、
当該通信装置が前記ホストに決定されたときに、前記所定の通信インターフェース上で前記デバイスとして動作する他の通信装置から前記装置状態情報を受け取る装置状態情報受取手順と、
当該通信装置が前記ホストに決定されたときに、前記他の通信装置から通知された装置状態情報を自分の装置状態と比較し、所定の判断基準に基づいて前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するべきか否かを判断する判断手順と、
前記判断手順を実行して得られた判断結果が肯定的であるときに、前記所定の通信プロトコルに従って、前記他の通信装置との間で前記ホスト及び前記デバイスの役割を交替するための手続を実行する交替手続実行手順と、
を実行させることを特徴とするコンピュータ・プログラムである。
【００５６】
本発明の第３乃至第４の各側面に係るコンピュータ・プログラムは、コンピュータ上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第３乃至第４の各側面に係るコンピュータ・プログラムをコンピュータにインストールすることによってコンピュータ上では協働的作用が発揮され、第１若しくは第２の通信装置として動作する。このような通信装置同士をＵＳＢなどの所定の通信インターフェースを介して接続することによって、本発明の第１乃至第２の各側面に係る通信システムと同様の作用効果を得ることができる。
【発明の効果】
【００５７】
本発明によれば、ＰＣなどの固定的なホストが存在しない環境下で、ホスト及びデバイスの双方の役割が可能な通信機器が互いにホストとデバイスの役割を簡易に分担することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することができる。
【００５８】
また、本発明によれば、初期状態でそれぞれホスト及びデバイスに決定された通信機器間において所定の通信プロトコルに従ってホスト及びデバイスの役割を適宜交替することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することができる。
【００５９】
また、本発明によれば、初期状態で決定されたホスト／デバイスの役割分担に拘わらず、各機器が備えるユーザ・インターフェースの操作性や、ＵＳＢ通信に関連する指示操作を行なう際のユーザの利便性を考慮して、ＵＳＢ接続された機器の間でホスト及びデバイスの役割を適宜交替することができる、優れた通信システム、通信装置及びその制御方法、並びにコンピュータ・プログラムを提供することができる。
【００６０】
本発明によれば、ＯＴＧ規格に則ったＤＲＤ同士を接続する際に、単にＵＳＢケーブルの方向性によりホスト／デバイスの役割分担を決定するのではなく、自動的に最適な役割分担となるように機能の交換を行ない、ユーザの操作性の向上や機器の持ち替え、場所の移動などの煩わしさといったユーザの作業負担の軽減を実現することができる。
【００６１】
本発明に係る通信システムは、ＵＳＢ２．０やＯＴＧの規格に準拠した方法に従って制御を行なうように構成することができ、これらの規格に準拠する機器へ容易に適用することが可能である。また、これらの制御はコンピュータ上で所定のソフトウェア・プログラムを実行することによっても実現可能であることから、機器のハードウェアに変更を加えることなくプログラムの修正のみによって、本発明に係る機能を実装することも可能である。
【００６２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００６３】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００６４】
図１には、本発明の一実施形態に係る通信システムの構成を模式的に示している。図示のシステムは、通信ケーブル５０と、通信装置１０１及び１０２で構成される。後述するように、通信装置１０１及び１０２は、ＵＳＢ２．０の追加規格であるＯＴＧにおいて規定されているデュアル・ロール・デバイス（ＤＲＤ）であるとする。
【００６５】
図１に示すように、通信装置１０１は、通信処理部１１と、制御部２１と、記憶部３１と、操作部６１と、表示部７１と、レセプタクル端子４１を備えている。また、通信装置１０２は、通信処理部１２と、制御部２２と、記憶部３２と、操作部６２と、表示部７２と、レセプタクル端子４２を備えている。以下、各部について説明する。
【００６６】
通信ケーブル５０は、ＯＴＧに準拠した通信ケーブルであり、一方の端にはＭｉｎｉ−Ａプラグ端子５１を有するとともに、他方の端にＭｉｎｉ−Ｂプラグ端子５２を有している。
【００６７】
通信装置１０１及び１０２は、ＯＴＧにおいて規定されているデュアル・ロール・デバイスＤＲＤであり、通信装置１０１及び１０２はレセプタクル端子４１及びレセプタクル端子４２をそれぞれ備えている。レセプタクル端子４１並びに４２は、ＯＴＧにおいて規定されているＤＲＤ側の端子であり、Ｍｉｎｉ−Ａプラグ端子とＭｉｎｉ−Ｂプラグ端子を何れも装着することができる構造を備えた、いわゆる「Ｍｉｎｉ−ＡＢレセプタクル端子」である。
【００６８】
通信装置１０１及び１０２間では、通信ケーブル５０の接続方向に応じて初期状態におけるホスト／デバイスの役割分担が決定される。具体的には、レセプタクル端子４１又は４２に対して、Ｍｉｎｉ−Ａプラグ端子５１が接続されたときには初期状態でＡデバイスすなわちホストとして動作し、Ｍｉｎｉ−Ｂプラグ端子５２が接続されたときには初期状態でＢデバイスすなわちデバイスとして動作する。
【００６９】
図１に示した例では、通信装置１０１のレセプタクル端子４１にはＭｉｎｉ−Ａプラグ端子５１が差し込まれ、通信装置１０２のレセプタクル端子４２にはＭｉｎｉ−Ｂプラグ端子５２が差し込まれている。したがって、図示の例では、通信装置１０１はＡデバイスすなわち初期状態においてホストとなり、通信装置１０２はＢデバイスすなわち初期状態においてデバイスとなる。
【００７０】
２台の機器がＵＳＢ接続された際、ホスト側の機器のユーザ・インターフェースを通じてＵＳＢ通信に関わる各種操作を行なうことが一般的である。しかしながら、ＵＳＢ規格に関する知識が不十分なユーザは、各機器の操作性や利用形態若しくは機器の状態に応じた利便性を考慮して通信ケーブル５０の接続を行なうとは限らず、初期状態においてホストに決定された機器が適当であるとは限らない。本発明によれば、ユーザに通信ケーブル５０の接続のし直しを強いることなく、ユーザの操作性の向上や機器の持ち替え、場所の移動などの煩わしさといったユーザの作業負担を軽減するように、自動的に最適な役割分担となるようにホスト／デバイスの役割交替を行なうことができるが、かかる機能の詳細については後述に譲る。
【００７１】
通信処理部１１は、制御部２１の指示に従って、ＵＳＢ及びＯＴＧに準拠した種々の通信処理を行なう。例えば、ＵＳＢの規定に従ったデータ送受信処理や、ＯＴＧの規定に従ったホスト／デバイスの役割の交替などの処理を、制御部２１の指示に従って実行する。また、通信処理部１２は、通信装置１０２において通信処理部１１と同様な機能を有する。すなわち、制御部２２の指示に従って、ＵＳＢ及びＯＴＧに準拠した種々の通信処理を行なう。
【００７２】
図２には、通信装置１０１内の通信処理部１１の内部構成をさらに詳細に示している。同図に示すように、通信処理部１１は、ＯＴＧ部１１１と、ホスト部１１２と、デバイス部１１３を備えている。なお、他方の通信装置１０２内の通信処理部１２もこれと同様の構成を備えるものとする。
【００７３】
ＯＴＧ部１１１は、ＯＴＧにおいて規定されている種々の通信処理を行なう。例えば、ＳＲＰを使ってＡデバイスに電流供給の再開を促す処理や、ＨＮＰを使って他方の通信装置１０２との間でホスト／デバイスの役割を交替する処理などを実行する。また、ＯＴＧ部１１１は、レセプタクル端子４１に差し込まれたプラグ端子の型（Ｍｉｎｉ−Ａプラグ端子又はＭｉｎｉ−Ｂプラグ端子）、すなわちＵＳＢケーブル５０の接続方向に応じて、初期状態でのホスト又はデバイスの役割を決定する処理や、ホスト部１１２及びデバイス部１１３へのクロックの供給を制御する処理も行なう。
【００７４】
ホスト部１１２は、通信装置１０１がホストとして動作するときの通信処理を実行する。すなわち、通信ケーブル５０接続されている他の機器を検出する処理や、通信ケーブル５０上におけるデータの伝送を制御する処理など、ＵＳＢホストとしての通信処理を実行する。
【００７５】
デバイス部１１３は、通信装置がデバイスとして動作するときの通信処理を実行する。すなわち、ＵＳＢデバイスとして、ホストの制御に従った通信処理を実行する。
【００７６】
ＯＴＧ部１１１は、ホスト部１１２又はデバイス部１１３のいずれか一方にクロックを排他的に供給する。通信処理部１１は、ホスト部１１２にクロックが供給されたときにはホストとして動作し、デバイス部１１３にクロックが供給されたときにはデバイスとして動作することになる。すなわち、通信装置１０１はＤＲＤであり、通信処理部１１内でＯＴＧ部１１１からのクロックの供給先がホスト部１１２又はデバイス部１１３のいずれであるかによって、ホスト／デバイスの役割を切り替えることができる。通信装置１０２についても同様である。
【００７７】
図３には、通信処理部１１及び１２の間でホストとデバイスの役割を交替する様子を示している。
【００７８】
図１に示した例では、初期状態において、通信装置１０１がホストとして動作し、通信装置１０２がデバイスとして動作する。このとき、通信処理部１１では、図３Ａに示すようにＯＴＧ部１１１の制御によって、ホスト部１１２へのクロック供給が行なわれ、デバイス部１１３へのクロック供給が停止される。逆に、通信処理部１２では、デバイス部へのクロック供給が行なわれ、ホスト部へのクロック供給が停止される。
【００７９】
この状態でＨＮＰによるホスト／デバイスの役割交替を実施すると、図３Ｂに示すように通信処理部１１では、ＯＴＧ部１１１の制御によって、ホスト部１１２へのクロック供給が停止され、代わってデバイス部１１３へのクロック供給が開始される。逆に、通信処理部１２では、デバイス部へのクロック供給が停止され、ホスト部へのクロック供給が開始される。これにより、通信装置１０１がデバイス部として動作し、通信装置１０２がホストとして動作するように遷移する。すなわち、通信ケーブル５０のプラグ５１及び５２を差し替えることなく、通信装置１０１及び１０２の間でホスト／デバイスの役割交替が行なわれる。
【００８０】
以上の説明は通信装置１０１がＡデバイスの場合の例であるが、通信装置１０２がＡデバイスの場合も、上述と同様の手順によってホスト／デバイスの役割交替が行なわれる。
【００８１】
制御部２１は、通信装置１０１の全体的な動作の制御に関わる種々の処理を行なう。例えば、制御部２１は、通信処理部１１がホストとして動作するときに、デバイスとして動作する通信相手と通信を開始する際に必要となる種々の情報を取得するための処理を行なう。具体的には、ＵＳＢにおいて規定された種々のリクエストを通信処理部１１からデバイスに送信させ、これに応じたデバイスからの応答を通信処理部１１において受信させることにより、デバイスの情報を取得する。必要な情報が得られた後は、この情報に基づいて通信処理部１１を制御して、デバイスとの間で通信を行なう。
【００８２】
また、制御部２１は、通信処理部１１がデバイスとして動作するときに、ホストとして動作する通信相手の制御に従って通信を行なうように、通信処理部１１を制御する。すなわち、ホストからのリクエストを通信処理部１１において受信させ、このリクエストに対するＵＳＢで規定された応答を生成して、通信処理部１１からホスト機器へ送信させる。
【００８３】
また、制御部２２は、通信装置１０２において制御部２１と同様な機能を有する。すなわち、通信装置１０２の全体的な動作の制御に関わる種々の処理として、上述と同様の処理を行なう。
【００８４】
通信装置１０１及び１０２はともにＤＲＤであるが、通信ケーブル５０の接続方向で決定されるＡデバイスが、ホストとしての操作性や利用形態若しくは機器の状態に応じた利便性に適った機器であるとは限らない。本発明では、ユーザに通信ケーブル５０の接続のし直しを強いることなく、ユーザの操作性の向上や機器の持ち替え、場所の移動などの煩わしさといったユーザの作業負担を軽減するように、自動的に最適な役割分担となるようにホスト／デバイスの役割交替を行なうように構成されている。制御部２１並びに２２はかかる機能を実現するための中心的な役割を担っているが、その詳細については後述に譲る。
【００８５】
記憶部３１は、通信処理部１１において送受信されるデータや、通信処理に必要とされる種々の情報を記憶する。記憶部３１に記憶される情報には、例えば、ディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ）が含まれる。ディスクリプタは、ホストがデバイスについての情報を得るためのデータであり、ＵＳＢにおいて規定された所定のデータ構造を有する。
【００８６】
記憶部３２は、記憶部３１と同様な機能を有する。すなわち、通信装置１０２において、通信処理部１２で送受信されるデータや、通信処理に必要とされる種々の情報を記憶する。
【００８７】
操作部６１は、通信装置１０１の動作に関してユーザが行なった操作を検出若しくは認識し、その結果を制御部２１へ通知する。操作部６１は、例えば各種の操作ボタン、キーボード、マウス、タッチパネル、タブレットなどの入力装置で構成される。
【００８８】
操作部６２は、通信装置１０２において操作部６１と同様な機能を有する。すなわち、通信装置１０２の動作に関してユーザが行なった操作を検出若しくは認識し、その結果を制御部２２へ通知する。
【００８９】
表示部７１は、通信装置１０１のユーザ・インターフェース画面などの表示を行なう。表示部７１は、例えば液晶ディスプレイ、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ、ビューファインダー、ＬＥＤなどの表示装置を中心とする出力装置で構成される。
【００９０】
表示部７２は、通信装置１０２において表示部７１と同様な機能を有する。すなわち、通信装置１０２のユーザ・インターフェース画面などの表示を行なう。
【００９１】
図１に示した通信システムにおいて、通信装置１０１及び１０２はともにＤＲＤであり、通信ケーブル５０の接続方向に応じて初期状態でのホスト／デバイスの役割分担が決定するが、各機器の操作性や利用形態若しくは機器の状態に応じた利便性を考慮するとＡデバイスに初期状態のままホスト機能を担わせるのは適当でない可能性がある。本発明は、Ａデバイスに初期状態のままホスト機能を担わせることにより招来される問題を解決するものであり、以下では、その２つの実施形態について説明する。
【００９２】
なお、いずれの実施形態においても、各通信装置１０１及び１０２内の制御部２１及び２２が中心的な役割を担っている。このことは、コンピュータ上で所定のソフトウェア・プログラムを実行することによって本発明を実現可能であることを意味し、機器のハードウェアに変更を加えることなくプログラムの修正のみによって本発明に係る機能を実装することも可能である。
【００９３】
第１の実施形態：
図４には、Ａデバイスとして動作する通信装置１０１が実行する動作手順をフローチャートの形式で示している。この動作手順は、制御部２１が所定のプログラム・コードを実行するという形態で実現される。また、通信ケーブル５０の接続方向が逆転し、通信装置１０２がＡデバイスとなったときの動作手順も同様であると理解されたい。
【００９４】
通信装置１０１の通信処理部１１は、起動時において、レセプタクル端子４１に装着されているプラグの型を検出して、制御部２１に通知する。図１に示した例では、レセプタクル端子４１にはＭｉｎｉ−Ａプラグ端子５１が装着されているので、制御部２１は、ＯＴＧ部１１１に対してホスト部１１２へのクロックの供給を指示し、通信装置１０１のＡデバイスとしての制御を開始する。同様に、通信相手である通信装置１０２側では、レセプタクル端子４２にＭｉｎｉ−Ｂプラグ端子が装着されていることを検出し、制御部２２はＢデバイスとしての制御を開始する。
【００９５】
まず、制御部２１は、エニュメレーションの過程において、デバイスである通信装置１０２から、ディスクリプタを取得する（ステップＳ１１）。ここで言うエニュメレーションとは、ホストとデバイスとが通信を開始する際に実行する、ＵＳＢで規定された通信手順のことである。エニュメレーションにおいて、ホストは、デバイスの種々の情報を収集して、デバイスとの接続を確立する処理を行なう。
【００９６】
そして、制御部２１は、エニュメレーションによって通信処理部１１が通信装置１０２から取得した各種のディスクリプタを記憶部３１に格納する（ステップＳ１２）。
【００９７】
制御部２１は、通信相手から取得したディスクリプタの中に、デバイスについての各種情報を含んだ所定のディスクリプタが存在するか否かを調べる（ステップＳ１３）。
【００９８】
ここでは、デバイスについての各種情報を含む所定のディスクリプタを、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタと呼ぶことにする。‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタは、通信装置についてのソフトウェア、ハードウェアに関する情報、通信装置が装備する入出力装置に関する情報などを格納する。
【００９９】
図５には、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタのデータ構造の一例を示している。図示の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタは、データ・フィールドとして、先頭から順に‘ディスクリプタ長’、‘ディスクリプタ・タイプ’、‘ディスクリプタ・インデックス’、‘ハードウェアのバージョン情報’、‘ファームウェアのバージョン情報’、‘入力装置（操作部）の種別’、‘出力装置（表示部）の解像度種別’、‘出力装置（表示部）のサイズ（インチ）’、‘出力装置（表示部）の１画素当たりの情報量（ビット）’を備えている。
【０１００】
‘ディスクリプタ長’には、本ディスクリプタの全体のバイト数が格納される。また‘ディスクリプタ・タイプ’には、本ディスクリプタを識別するための識別子が格納される。また、‘ディスクリプタ・インデックス’には、本ディスクリプタが複数ある場合のインデックスが格納される。
【０１０１】
‘ハードウェアのバージョン情報’には、通信装置のハードウェアのバージョン情報が格納される。全く同一の製品であっても、そのライフ・サイクルの間に機能に大幅な変更が無い範囲でハードウェアに改良が加えられることがあるが、同フィールドはこれらの改良の有無を判別するために使用する。一般的に、数値が大きいほど、その製品はより改良を加えられていることを示す。
【０１０２】
‘ファームウェアのバージョン情報’には、通信装置を制御するためのファームウェアのバージョン情報が格納される。多くの装置においてファームウェアは、バグの修正や機能の追加などのために書き換え可能になっており、同フィールドは実際に書き込まれているファームウェアを判別するために使用する。一般的に数値が大きいほど、改良を加えられた、新しいファームウェアであることを示す。
【０１０３】
‘入力装置（操作部）の種別’には、通信装置に装備された操作部である入力装置の種類を特定するための値が格納される。値と入力装置の種類の対応の一例を図６に示しておく。
【０１０４】
‘出力装置（表示部）の解像度種別’には、通信装置に装備された表示部である出力装置の解像度を特定するための値が格納される。値と出力装置の画面解像度の対応の一例を図７に示しておく。
【０１０５】
‘出力装置（表示部）のサイズ（インチ）’には、通信装置に装備された表示部である出力装置のサイズがインチ数で格納される。
【０１０６】
‘出力装置（表示部）の１画素当たりの情報量（ビット）’には、通信装置に装備された表示部である出力装置における１画素当たりの情報量がビット数で格納される。例えば輝度情報８ビットの白黒液晶モニタの場合には８、ＲＧＢ各８ビットのカラー液晶モニタの場合には２４が格納される。
【０１０７】
このような‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタが通信相手（通信装置１０２）から得られた場合、制御部２１は、取得した通信相手の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタと、記憶部３１にあらかじめ記憶されている通信装置１０１自身の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタに基づいて、ホスト／デバイスの役割を交替した場合と、交替しない場合のユーザの操作性を比較する（ステップＳ１４）。
【０１０８】
‘ハードウェアのバージョン情報’と‘ファームウェアのバージョン情報’については、接続された通信装置が同一の機種である場合は、新しいバージョンの通信装置の方が、古いバージョンの通信装置よりも操作性や機能、通信安定性などが優れている可能性が高いと言える。よって、バージョン情報の新しい（数値が大きい）方の機器で操作を行なう方がユーザにとってメリットが高いため、バージョン情報の新しい（数値が大きい）方の機器をホストに設定すべきである。また、接続された通信装置が同一の機種で無い場合は、バージョン情報を単純に比較することはできないので、これらの情報は無視する。
【０１０９】
接続された通信装置の同一性の判定は、ステップＳ１２において記憶部３１に記憶されているディスクリプタのうち、デバイス・ディスクリプタの‘ｂＤｅｖｉｃｅＣｌａｓｓ’、‘ｂＤｅｖｉｃｅＳｕｂＣｌａｓｓ’、‘ｉｄＶｅｎｄｅｒ’、‘ｉｄＰｒｏｄｕｃｔ’などの各フィールドが同一であるかどうかによって行なうことができる。さらに、デバイス・ディスクリプタの‘ｉＭａｎｕｆａｃｔｕｒｅｒ’、‘ｉＰｒｏｄｕｃｔ’で指定される、ストリング・ディスクリプタ中の製造者名、製品名を表す文字列を用いて判断を行なうようにしても良い。
【０１１０】
接続された通信装置が異なる機種の場合には、‘入力装置（操作部）の種別’、‘出力装置（表示部）の解像度種別’、‘出力装置（表示部）のサイズ（インチ）’、‘出力装置（表示部）の１画素当たりの情報量（ビット）’の各フィールドを用いて判断を行なう。
【０１１１】
‘出力装置（表示部）の解像度種別’から判別される画面解像度、‘出力装置（表示部）のサイズ（インチ）’、‘出力装置（表示部）の１画素当たりの情報量（ビット）’については、いずれも数値が大きければ大きいほど、出力装置の表現能力が優れていると言える。したがって、数値が大きい機器で操作を行なう方が、ユーザにとってメリットが高く、数値が大きい方の機器をホストにすべきである。‘入力装置（操作部）の種別’については、より操作性の高いと考えられる種別の入力装置を装備する機器をホストにすべきである。
【０１１２】
図５に例示した‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタでは、入力装置及び出力装置に関するフィールドは各１個のみを備えているので、複数の入力装置、又は出力装置を備える機器の場合には、それらの中で最も操作性の高いもの、あるいは能力の高いものを格納することを想定している。但し、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタのサイズを可変にして、複数の入力装置、出力デバイスに関するフィールドを格納できるようにしてもよい。その場合には、ステップＳ１４では、複数の入出力装置の装備状態から総合的に操作性向上の判定を行なうことができる。
【０１１３】
このように、通信装置１０１と通信装置１０２の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタの各フィールドを比較することによって、動作モードの交換を行なうべきか否かを判断することができる。
【０１１４】
ここで、図８〜９に示す‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタの具体例を参照しながら、ステップＳ１４における判定処理について説明する。
【０１１５】
図８には、ＵＳＢ接続された２台の通信装置が異なる機種の場合における、Ａデバイス並びにＢデバイスの‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタの具体例を示している。
【０１１６】
異なる機種の接続であるので、判定処理では、‘ハードウェアのバージョン情報’と‘ファームウェアのバージョン情報’の各フィールドは無視する。
【０１１７】
‘入力装置（操作部）の種別’は、Ａデバイスが数個の専用ハードウェアキーを備えることを示す０ｘ００、Ｂデバイスがタッチパネルを備えることを示す０ｘ０１となっている。一般的には、専用ハードウェアキーのみの場合よりも、タッチパネルを備えたＢデバイスの方が操作性は高いと言える。
【０１１８】
‘出力装置（表示部）の解像度種別’は、Ａデバイスが３２０×２４０の解像度を示す０ｘ０３、Ｂデバイスが６４０×４８０の解像度を示す０ｘ０７となっている。よって、より解像度の高いＢデバイスの方が操作性は高いと言える。
【０１１９】
‘出力装置（表示部）のサイズ（インチ）’、‘出力デバイス（表示部）の１画素当たりの情報量（ビット）’は、Ａデバイス、Ｂデバイスともに同一の値である。
【０１２０】
以上より、いずれのフィールドの比較においてもＢデバイスの方が操作性は高いという結果となるから、ホスト／デバイスの役割交替によりユーザにとって操作性が向上すると判断できる。
【０１２１】
また、図９には、ＵＳＢ接続された２台の通信装置が同一の機種の場合における、Ａデバイス、Ｂデバイスの‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタの具体例を示している。
【０１２２】
‘ハードウェアのバージョン情報’の値は同じであるが、‘ファームウェアのバージョン情報’からＡデバイスの方が新しいファームウェアであることが判り、Ａデバイスの方が操作性、安定性が高い可能性がある。また、その他のフィールドは、Ａデバイス、Ｂデバイスともにすべて同一の値である。
【０１２３】
以上より、いずれのフィールドの比較においてもＡデバイスの方が操作性は高いという結果となるため、動作モードの交換により操作性が向上しないと判断できる。
【０１２４】
図８並びに図９には単純な具体例を示したが、実際には、あるフィールドではＡデバイスの方がホストとして優れていると判断できるが、別のフィールドではＢデバイスの方がホストとして優れているという複雑な状況が起こり得る。よって、あらかじめ判定の際に利用するフィールド間に優先順位を設けておく、各フィールドでの判定結果の点数化を行ない重み付けした上で総合点を求めて判定する、といったような処理を行なう必要がある。
【０１２５】
ＡデバイスとＢデバイスの間での操作性の比較を行なった結果、ホスト／デバイスの役割交替によりユーザの操作性が向上するという判断されたときには（ステップＳ１４のＹｅｓ）、ＨＮＰによって通信装置１０２とホスト／デバイスの役割を交替するように、通信処理部１１を制御する。より詳しくは、まず、ホスト／デバイスの役割交替の許可をデバイス側に通知し（ステップＳ１５）、その後に実際のホスト／デバイスの役割交替の動作を実施する（ステップＳ１６）。これにより、ホスト／デバイスの役割交替に関する処理を終了し、通信装置１０１はデバイス、通信装置１０２はホストとしてそれぞれ目的の通信を行なう。
【０１２６】
一方、ＡデバイスとＢデバイスの間での操作性の比較を行なった結果、ホスト／デバイスの役割交替によりユーザの操作性が向上しないという判断されたときには（ステップＳ１４のＮｏ）、本処理ルーチンを終了し、通信装置１０１はホスト、通信装置１０２はデバイスのままで目的の通信を行なう。
【０１２７】
続いて、Ａデバイスとしての通信装置１０１が、図４に示した動作手順に従ってＢデバイスとしての通信装置１０２との間で実施する通信手順の一例について説明する。
【０１２８】
Ａデバイスは、ＢデバイスがＵＳＢ接続されたことを検出すると、上述したエニュメレーションを実行する。エニュメレーションにおいて、Ａデバイスは、ＵＳＢで規定されている標準リクエスト‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’をＢデバイスに送信する。
【０１２９】
‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ’は、デバイス側の機器情報を含んだディスクリプタを、デバイスからホストへ送信させるためのリクエストである。‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’は、デバイスに要求するディスクリプタとして、特に‘コンフィグレーション・ディスクリプタ’と称される、機器の能力や機能に関する情報を含んだディスクリプタを指定するリクエストである。
【０１３０】
ＤＲＤは、‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’によってホスト機器から‘コンフィグレーション・ディスクリプタ’を要求された場合に、‘ＯＴＧディスクリプタ’と称されるディスクリプタを‘コンフィグレーション・ディスクリプタ’に追加してホスト機器に送信することが、ＯＴＧで規定されている。‘ＯＴＧディスクリプタ’は、ＤＲＤがＳＲＰやＨＮＰに対応しているか否かを示す情報を含んだディスクリプタである。
【０１３１】
したがって、通常の場合、ＤＲＤは、‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’のリクエストをホスト機器から受け取ると、‘コンフィグレーション・ディスクリプタ’とこれに関連するディスクリプタに加えて、‘ＯＴＧディスクリプタ’をＡデバイスに送信する。
【０１３２】
本実施形態では、通信装置１０１又は１０２は、この‘ＯＴＧディスクリプタ’に加えて、さらに上述の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタをＡデバイスに送信する。
【０１３３】
‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタは、ＵＳＢ２．０及びＯＴＧの規格に準拠した方法であり、ＢデバイスからＡデバイスへ送信される。
【０１３４】
Ａデバイスは、取得した‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタと自らの‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタの情報を比較する。そして、この比較結果に基づいて、ホスト／デバイスの役割交換により操作性が向上すると判断したときには、Ａデバイスは、ＯＴＧで追加された標準リクエストの‘Ｓｅｔ  Ｆｅａｔｕｒｅ（ｂ＿ｈｎｐ＿ｅｎａｂｌｅ）’をＢデバイスに送信する。これに対し、Ｂデバイスは、このリクエストを受けると、ホスト／デバイスの役割交換が許可されたことを認識し、Ａデバイスへ肯定応答を返す。
【０１３５】
Ａデバイスは、Ｂデバイスから肯定応答を受けると、通信状態をサスペンド状態に設定して、Ｂデバイスとの通信を停止する。Ｂデバイスにおいて通信状態のサスペンド状態が認識されると、ＡデバイスとＢデバイスの双方でＨＮＰによるホスト／デバイスの役割交換が行なわれ、Ａデバイスはデバイスに、Ｂデバイスはホストにそれぞれ役割を切り替える。
【０１３６】
なお、図４には明示していないが、Ａデバイスは、Ｂデバイスから取得した‘ＯＴＧディスクリプタ’においてＨＮＰに対応していないという情報が含まれていた場合は、ＨＮＰに関する制御は行なわず、初期状態のホスト／デバイスの役割のまま目的の通信を行なう。
【０１３７】
以上説明したように、本実施形態では、通信装置１０１又は１０２は、初期状態でホストとして起動したとき、制御部２１又は２２の制御によって、デバイスとして動作する通信相手から、通信装置についてのソフトウェア、ハードウェアに関する情報、通信装置が装備する入出力装置に関する情報などを格納するディスクリプタを取得する。そして、制御部２１又は２２は、取得した通信相手のディスクリプタと、自らが保有するディスクリプタの情報に基づいて、ホスト／デバイスの役割交替により操作性が向上するか否かを判断する。そして、ホスト／デバイスの役割交替により操作性が向上すると判定したときには、制御部２１又は２２の指示によって、ＨＮＰによるホスト／デバイスの役割交替の許可が通信相手に通知され、ＨＮＰによるホスト／デバイスの役割交替が実行される。
【０１３８】
このような動作によって、通信ケーブル５０を接続した初期状態では、Ｂデバイス側の優れた操作性を活用できない場合であっても、自動的にホスト／デバイスの役割交替を行なうことによって、ユーザは優れた操作性を享受しながらＵＳＢ通信を利用することができる。
【０１３９】
また、通信相手の情報の取得やホスト／デバイスの役割交替の動作手順は、ＵＳＢ２．０やＯＴＧの規格に準拠した方法により行なうので、これらの規格に準拠する機器へ容易に本実施形態を適用することができる。
【０１４０】
さらに、上述したホスト／デバイスの役割交替に関わる処理は主に制御部２１及び２２によって実行されるが、このことは同処理がコンピュータによって実現可能であることを意味する。したがって、通信処理の全体動作をコンピュータで制御している従来の通信装置については、そのハードウェア構成に特段の変更を加えることなく、プログラムの修正によって本実施形態に係る機能を実装することも可能である。
【０１４１】
第２の実施形態：
上述した第１の実施形態では、機器が備える操作性を考慮してＡデバイスとＢデバイス間で初期状態に設定されたホスト／デバイスの役割の交換を実施する。これに対し、以下で説明する第２の実施形態では、機器の利用形態若しくは機器の状態に応じたユーザの利便性に基づいてホスト／デバイスの役割の交換を実施するものである。
【０１４２】
例えば、時間的に後にプラグを差し込んだ機器にホスト機能を担わせる方が、ユーザの移動などの手間が省けて便利である。また、ユーザ・インターフェースに何らかの操作が行なわれた機器、あるいは直近で移動が行なわれた機器にホスト機能を担わせる方が、ユーザの移動などの手間が省けて便利である。また、ＵＳＢ通信を行なうアプリケーションが起動中又はＵＳＢ通信の準備を行なう最中の機器にホスト機能を担わせる方が、ユーザの移動などの手間が省けて便利である。
【０１４３】
図１０には、Ａデバイスとして動作する通信装置１０１が実行する動作手順をフローチャートの形式で示している。この動作手順は、制御部２１が所定のプログラム・コードを実行するという形態で実現される。また、通信ケーブル５０の接続方向が逆転し、通信装置１０２がＡデバイスとなったときの動作手順も同様であると理解されたい。
【０１４４】
通信装置１０１の通信処理部１１は、起動時において、レセプタクル端子４１に装着されているプラグの型を検出して、制御部２１に通知する。図１に示した例では、レセプタクル端子４１にはＭｉｎｉ−Ａプラグ端子５１が装着されているので、制御部２１は、ＯＴＧ部１１１に対してホスト部１１２へのクロックの供給を指示し、通信装置１０１のＡデバイスとしての制御を開始する。同様に、通信相手である通信装置１０２側では、レセプタクル端子４２にＭｉｎｉ−Ｂプラグ端子が装着されていることを検出し、制御部２２はＢデバイスとしての制御を開始する。
【０１４５】
まず、制御部２１は、エニュメレーションの過程において、デバイスである通信装置１０２から、ディスクリプタを取得する（ステップＳ２１）。ここで言うエニュメレーションとは、ホストとデバイスとが通信を開始する際に実行する、ＵＳＢで規定された通信手順のことである。エニュメレーションにおいて、ホストは、デバイスの種々の情報を収集して、デバイスとの接続を確立する処理を行なう。
【０１４６】
そして、制御部２１は、エニュメレーションによって通信処理部１１が通信装置１０２から取得した各種のディスクリプタを記憶部３１に格納する（ステップＳ２２）。
【０１４７】
制御部２１は、通信相手から取得したディスクリプタの中に、デバイスについての各種情報を含んだ所定のディスクリプタが存在するか否かを調べる（ステップＳ２３）。
【０１４８】
ここでは、デバイスについての各種情報を含む所定のディスクリプタを、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ ディスクリプタと呼ぶことにする。‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタは、通信装置についてのエニュメレーション処理時点での状態に関する情報などを格納する。よって、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’は、通信装置において固定された情報ではなく、状況によって変化するものである。
【０１４９】
図１１には、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタのデータ構造の一例を示している。図示の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタは、データ・フィールドとして、先頭から順に‘ディスクリプタ長’、‘ディスクリプタ・タイプ’、‘ディスクリプタ・インデックス’、‘通信準備完了’、‘ケーブルが挿入されてからの経過時間（秒）’、‘ユーザの最後の操作からの経過時間（秒）’を備えている。
【０１５０】
‘ディスクリプタ長’には、本ディスクリプタの全体のバイト数が格納される。また‘ディスクリプタ・タイプ’には、本ディスクリプタを識別するための識別子が格納される。また、‘ディスクリプタ・インデックス’には、本ディスクリプタが複数ある場合のインデックスが格納される。
【０１５１】
‘通信準備完了’には、その時点で通信装置が直ぐに通信可能な状態であれば１が、そうでなければ０が格納される。例えば通信装置において、ファイル転送用のアプリケーションが起動中に、ＵＳＢケーブルが挿入されエニュメレーション処理に入ったときには通信装置は直ぐに通信が可能な状態にあるので、当該フィールドに１が格納される。逆に、ＵＳＢ転送を行なういずれのアプリケーションも起動していないときには、通信装置はすぐに通信が可能な状態にあるとは言えないので、当該フィールドには０が格納される。
【０１５２】
‘ケーブルが挿入されてからの経過時間（秒）’には、通信装置にＵＳＢケーブルが挿入されてから、エニュメレーション処理に入り‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタは転送されるまでの経過時間が秒単位で格納される。
【０１５３】
‘ユーザの最後の操作からの経過時間（秒）’には、通信装置に対してユーザが最後に操作を行なってから、エニュメレーション処理に入り‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタは転送されるまでの経過時間が秒単位で格納される。
【０１５４】
このような‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタが通信相手（通信装置１０２）から得られると、制御部２１は、取得した通信相手の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタと、制御部２１によって検出された通信装置１０１における‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタの各フィールドと同様の情報に基づいて、ホスト／デバイスの役割を交替したときと、交替しない場合のユーザの利便性を比較する（ステップＳ２４）。
【０１５５】
例えば、２つの通信装置間でデータのコピーなどの転送を行なう場合、いずれの装置側からも通信に関する操作が可能な状況では、一方の装置でユーザがデータのコピー用のアプリケーションを起動していたら、そのユーザはその装置での操作を望んでいる可能性が高い。すなわち、接続した通信装置の間で、‘通信準備完了’の情報を比較したときに、１となっている装置側で操作を行なった方がユーザの利便性は高いと言えるので、‘通信準備完了’の情報が１である機器をホストに設定する。
【０１５６】
また、ユーザは通信ケーブル５０を２つの通信装置に同時に挿入することは困難であるため、通常は通信装置毎に順番に接続を行なう。このとき、時間的に後に接続した通信装置を手に持っている、あるいは身近においてある可能性が高いため、こちらの通信装置で操作を行なえた方が、機器の持ち替えやユーザの移動などの手間が省けるため便利である。すなわち、接続した通信装置の間で、‘ケーブルが挿入されてからの経過時間（秒）’の情報を比較したときに、より経過時間が少ない装置側で操作を行なった方がユーザの利便性は高いと言えるので、‘ケーブルが挿入されてからの経過時間（秒）’の情報が小さい装置をホストに設定する。
【０１５７】
これと同様に、時間的に後にユーザ操作が行なわれた通信装置をユーザが手に持っている、あるいは身近においてある可能性が高い。すなわち接続した通信装置の間で、‘ユーザの最後の操作からの経過時間（秒）’の情報を比較したときに、より経過時間が少ない装置側で操作を行なった方がユーザの利便性は高いと言えるので、‘ユーザの最後の操作からの経過時間（秒）’の情報が小さい装置をホストに設定する。
【０１５８】
以上のように、通信装置１０１と通信装置１０２の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタの各フィールドとそれに対応する情報を比較することによって、ホスト／デバイスの役割交替を行なうべきかを否かを判断する。
【０１５９】
ここで、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタの具体例を参照しながら、ステップＳ２４における判定処理について説明する。
【０１６０】
図１２にはＢデバイス（通信装置１０２）の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタの具体例を示している。
【０１６１】
これに対し、Ａデバイス（通信装置１０１）の‘通信準備完了’、‘ケーブルが挿入されてからの経過時間（秒）’、‘ユーザの最後の操作からの経過時間（秒）’に対応する値は、それぞれ０ｘ０、０ｘ８０、０ｘＦＦだったとする。
【０１６２】
いずれの通信装置も、ユーザの最後の操作からは２５５秒以上経過していることは共通している。しかしながら、Ｂデバイス側は通信準備ができているので、ユーザはＢデバイス側を操作することを望んでいる可能性が高い。また、通信ケーブル５０が挿入されてからの経過時間もＢデバイスの方が小さいので、Ｂデバイスがユーザの身近にある可能性が高く、Ｂデバイスで操作できた方が利便性は高い。以上の比較結果より、２つの観点からＢデバイスで操作を行った方がユーザの利便性は高いことが判るので、ホスト／デバイスの役割を交替すべきであると判断することができる。
【０１６３】
ここでは単純な具体例を示したが、実際には、あるフィールドで判断するとＡデバイスをホストにした方がユーザの利便性が高くなるが、別のフィールドで判断するとＢデバイスをホストにした方がユーザの利便性が高くなるという複雑な状況が起こり得る。よって、あらかじめ判定の際に利用するフィールド間に優先順位を設けておく、各フィールドでの判定結果の点数化を行ない重み付けした上で総合点を求めて判定する、といったような処理を行なう必要がある。
【０１６４】
ＡデバイスとＢデバイスの間でのユーザの利便性の比較を行なった結果、ホスト／デバイスの役割交替によりユーザの利便性が向上するという判断されたときには（ステップＳ２４のＹｅｓ）、ＨＮＰによって通信装置１０２と動作モードを交換するように、通信処理部１１を制御する。より詳しくは、まず、ホスト／デバイスの役割交替の許可をデバイス側に通知し（ステップＳ２５）、その後に実際のホスト／デバイスの役割交替の動作を実施する（ステップＳ２６）。これにより、ホスト／デバイスの役割交替に関する処理を終了し、通信装置１０１はデバイス、通信装置１０２はホストとしてそれぞれ目的の通信を行なう。
【０１６５】
一方、ＡデバイスとＢデバイスの間での操作性の比較を行なった結果、ホスト／デバイスの役割交替によりユーザの利便性が向上しないという判断されたときには（ステップＳ２４のＮｏ）、本処理ルーチンを終了し、通信装置１０１はホスト、通信装置１０２はデバイスのままで目的の通信を行なう。
【０１６６】
Ａデバイスとしての通信装置１０１が、図１０に示した動作手順に従ってＢデバイスとしての通信装置１０２との間で実施する通信手順は、使用するディスクリプタとそれに付随したホスト／デバイスの役割交換の判定方法が相違する以外は第１の実施形態と同様なので、ここでは説明を省略する。
【０１６７】
以上説明したように、本実施形態によれば、通信装置１０１並びに１０２は、初期状態ではホストとして起動した場合、制御部２１又は２２の制御によって、デバイスとして動作する通信相手から、機器の利用形態若しくは機器の状態に関する情報などを格納するディスクリプタを取得する。そして、制御部２１又は２２は、取得された通信相手のディスクリプタと、自らの装置において検出されるディスクリプタに対応する情報に基づいて、ホスト／デバイスの役割交替によりユーザの利便性が向上するか否かの判断を行なう。そして、ホスト／デバイスの役割交替により利便性が向上すると判定したときには、制御部２１又は２２の指示によって、ＨＮＰによるホスト／デバイスの役割交替の許可が通信相手に通知され、ＨＮＰによるホスト／デバイスの役割交替が実行される。
【０１６８】
このような動作によって、通信ケーブル５０を接続した初期状態ではユーザが意図していない側の通信装置にて操作を行なわなければならないときであっても、自動的にホスト／デバイスの役割交替を行なうことによって、ユーザは機器の持ち替えや移動などの手間を省くことができる。
【０１６９】
また、通信相手の情報の取得やホスト／デバイスの役割交替の動作手順は、ＵＳＢ２．０やＯＴＧの規格に準拠した方法により行なうので、これらの規格に準拠する機器へ容易に本実施形態を適用することができる。
【０１７０】
さらに、上述したホスト／デバイスの役割交替に関わる処理は主に制御部２１及び２２によって実行されるが、このことは同処理がコンピュータによって実現可能であることを意味する。したがって、通信処理の全体動作をコンピュータで制御している従来の通信装置については、そのハードウェア構成に特段の変更を加えることなく、プログラムの修正によって本実施形態に係る機能を実装することも可能である。
【産業上の利用可能性】
【０１７１】
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０１７２】
本明細書では本発明の好ましい幾つかの実施形態について述べたが、本発明の要旨はこれらの実施形態に限定されるものではなく、この他にも種々のバリエーションを含む。
【０１７３】
例えば、通信装置の構成や、ＨＮＰによるホスト／デバイスの役割交替の動作、ディスクリプタの内容などについては、上述した以外にもさまざまな形態が可能である。また、既述のフローチャートや通信手順も一例に過ぎず、適宜修正又は変形して実装することができる。
【０１７４】
上述したいずれの実施形態においても、エニュメレーション時に獲得したディスクリプタの情報を基に動作モードの交換を行なう判断を行なっているが、同様の内容をエニュメレーション後のデバイス・リクエストなどの通信によって得るようにしても良い。
【０１７５】
ＵＳＢでは、種々の機能の利用やデータ伝送の主導権をホスト側が有している。このため、ユーザの意向も考慮しながらホスト／デバイスの役割交替を行なうか否かの判定を行なうことが必要な場合が生じ得る。そこで、ホスト／デバイスの役割交替を行なう際に、所定のユーザ・インターフェース装置を通じて、ユーザの承認を事前に得るようにしても良い。
【０１７６】
例えば、上述したホスト／デバイスの役割交替の条件が成立した場合、制御部は、ユーザ・インターフェース装置を通じてユーザに動作モードの交換を行なうか否かの確認を求める通知を行なう。そして、この確認の通知に対する許可の応答がユーザ・インターフェース装置に入力されたときに、ホスト／デバイスの役割交替を実行するようにしても良い。
【０１７７】
また、本願の明細書及び図面に示した通信装置の構成要素のうち少なくとも一部をコンピュータとソフトウェア・プログラムの協働的作用によって実現してもよいし、ソフトウェアとハードウェアの組み合わせによって実現してもよいし、あるいはすべての構成要素をハードウェアで実現してもよい。
【０１７８】
また、本明細書では、ＵＳＢ２．０の追加規格であるＯＴＧに準拠した通信システムに適用した実施形態を中心に説明してきたが、本発明の要旨はこれに限定されるものではない。通信インターフェース上においてホストの役割を持つ１台の機器がデバイスとして動作する他の機器のデータ伝送動作を制御し、且つ、少なくとも一部の機器がホスト及びデバイスの双方の役割が可能である、さまざまな通信インターフェース若しくは通信プロトコルに対しても、同様に本発明を適用することができる。
【０１７９】
また、本明細書では、ホスト及びデバイスの双方の役割が可能な通信装置同士がＵＳＢケーブルを介して接続される場合の実施形態につい説明してきたが、本発明の要旨は特定の通信媒体に限定される訳ではない。例えばＷＵＳＢのような無線インターフェースで構成される通信インターフェースに対しても同様に本発明を適用することができる。
【０１８０】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【図面の簡単な説明】
【０１８１】
【図１】図１は、本発明の一実施形態に係る通信システムの構成を模式的に示した図である。
【図２】図２は、通信装置１０１内の通信処理部１１の内部構成を詳細に示した図である。
【図３Ａ】図３Ａは、通信処理部１１及び１２の間でホストとデバイスの役割を交替する様子（但し、通信装置１０１がホスト、通信装置１０２がデバイスとなる場合）を示した図である。
【図３Ｂ】図３Ｂは、通信処理部１１及び１２の間でホストとデバイスの役割を交替する様子（但し、通信装置１０１がデバイス、通信装置１０２がホストなる場合）を示した図である。
【図４】図４は、Ａデバイスとして動作する通信装置１０１が実行する動作手順を示したフローチャートである。
【図５】図５は、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタのデータ構造の一例を示した図である。
【図６】図６は、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタの‘入力装置（操作部）の種別’フィールドに格納される値と入力装置の種類の対応例を示した図である。
【図７】図７は、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタの出力装置（表示部）の解像度種別’フィールドに格納される値と入力装置の種類の対応例を示した図である。
【図８】図８は、ＵＳＢ接続された２台の通信装置が異なる機種の場合における、Ａデバイス並びにＢデバイスの‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタの具体例を示した図である。
【図９】図９は、ＵＳＢ接続された２台の通信装置が同一の機種の場合における、Ａデバイス、Ｂデバイスの‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ’ディスクリプタの具体例を示した図である。
【図１０】図１０は、Ａデバイスとして動作する通信装置１０１が実行する動作手順を示したフローチャートである。
【図１１】図１１は、‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタのデータ構造の一例を示した図である。
【図１２】図１２は、Ｂデバイス（通信装置１０２）の‘ＯＴＧ  Ｄｅｖｉｃｅ  Ｓｔａｔｕｓ’ディスクリプタの具体例を示した図である。
【符号の説明】
【０１８２】
５０…通信ケーブル
１１、１２…通信処理部
２１、２２…制御部
３１、３２…記憶部
４１、４２…レセプタクル端子
５１…Ｍｉｎｉ−Ａプラグ端子
５２…Ｍｉｎｉ−Ｂプラグ端子
６１、６２…操作部
７１、７２…表示部
１０１、１０２…通信装置
１１１…ＯＴＧ部
１１２…ホスト部
１１３…デバイス部
【図１】
2009009211.tif 000003
【図２】
2009009211.tif 000004
【図３Ａ】
2009009211.tif 000005
【図３Ｂ】
2009009211.tif 000006
【図４】
2009009211.tif 000007
【図５】
2009009211.tif 000008
【図６】
2009009211.tif 000009
【図７】
2009009211.tif 000010
【図８】
2009009211.tif 000011
【図９】
2009009211.tif 000012
【図１０】
2009009211.tif 000013
【図１１】
2009009211.tif 000014
【図１２】
2009009211.tif 000015