(57)【要約】  【課題】通信処理の消費電力や通信速度などの通信性能を向上させることができる通信システム、通信装置、通信方法およびプログラムを提供する。  【解決手段】通信装置１０１、１０２は、ＵＳＢ  ＯＴＧに準拠する通信装置であり、通信装置１０１はホスト機器、通信装置１０２はペリフェラル機器として起動する。通信装置１０１は、エニュメレーションの過程で、通信装置１０２がホスト機器およびペリフェラル機器として動作する場合における消費電力の情報を、デスクリプタとして通信装置１０２より取得する。通信装置１０１は、この取得したデスクリプタと、自らの同様な消費電力の情報を含むデスクリプタとに基づいて、ホストとペリフェラルの交替を行うことにより消費電力が減少するか否かの判定を行う。判定の結果、消費電力が減少すると判定した場合、ＯＴＧの通信プロトコルに従って、ホストとペリフェラルの交替を行う。【選択図】      図４
2005250671.tif 000002
【特許請求の範囲】
【請求項１】
バスを介して通信を行う２つの通信装置を有し、一方の通信装置が、該バス上におけるデータの伝送を制御する第１のモードで動作する場合、他方の通信装置が、該一方の通信装置の制御に従って通信を行う第２のモードで動作し、所定の通信プロトコルに従って、該２つの通信装置の動作モードを交替することが可能な通信システムであって、
上記通信装置は、
自らの通信装置が上記第１のモードおよび上記第２のモードのそれぞれで動作する場合における、所定の通信性能に関連する情報を記憶する記憶部と、
上記第２のモードで起動した場合、上記第１の動作モードで動作する通信相手の制御に従って、上記記憶部に記憶される上記通信性能の情報を上記バスに出力し、上記第１のモードで起動した場合、上記第２の動作モードで動作する通信相手から上記バスを介して上記通信性能の情報を取得し、該取得した通信相手の通信性能の情報と、上記記憶部に記憶される自らの通信装置の通信性能の情報とに基づいて、上記動作モードの交替を行った場合に上記通信性能が改善するか否か判定し、上記通信性能が改善すると判定したならば、上記動作モードの交替を実行する制御部と、
を有する通信システム。
【請求項２】
バスを介して通信を行う際の動作モードを、該バス上におけるデータの伝送を制御する第１のモードと、該第１のモードで動作する通信相手の制御に従って通信を行う第２のモードとの間で切り替えることが可能な通信装置であって、
自らの通信装置が上記第１のモードおよび上記第２のモードのそれぞれで動作する場合における、所定の通信性能に関連する情報を記憶する記憶部と、
上記第１のモードで起動した場合、上記第２の動作モードで動作する通信相手から、上記第１のモードおよび上記第２のモードにおける該通信相手の上記通信性能の情報を取得し、該取得した通信相手の通信性能の情報と、上記記憶部に記憶される自らの通信装置の通信性能の情報とに基づいて、該通信相手と動作モードを交替した場合に上記通信性能が改善するか否か判定し、上記通信性能が改善すると判定したならば、所定の通信プロトコルに従って、上記動作モードの交替を実行する制御部と、
を有する通信装置。
【請求項３】
上記制御部は、上記第２のモードで起動した場合、上記第１の動作モードで動作する通信相手の制御に従って、上記記憶部に記憶される上記通信性能の情報を上記バスに出力する、
請求項２に記載の通信装置。
【請求項４】
上記記憶部は、上記所定の通信性能に関連する情報として、通信速度の情報および消費電力の情報の一方または両方を記憶する、
請求項２に記載の通信装置。
【請求項５】
上記制御部は、通信相手から取得される上記第１のモード時および上記第２のモード時の上記消費電力の情報と、上記記憶部に記憶される上記第１のモード時および上記第２のモード時の上記消費電力の情報とに基づいて、通信相手における上記消費電力と自らの通信装置における上記消費電力との合計が、該通信相手と動作モードを交替した場合に減少するか否か判定し、該判定の結果に応じて上記動作モードの交替を実行する、
請求項４に記載の通信装置。
【請求項６】
上記制御部は、通信相手から取得される上記第１のモード時および上記第２のモード時の上記消費電力の情報と、上記記憶部に記憶される上記第１のモード時および上記第２のモード時の上記消費電力の情報とに基づいて、該通信相手における上記第１のモード時の上記消費電力が上記第２のモード時の上記消費電力に比べて小さく、かつ、自らの通信装置における上記第２のモード時の上記消費電力が上記第１のモード時の上記消費電力に比べて小さいか否か判定し、該判定の結果に応じて上記動作モードの交替を実行する、
請求項４に記載の通信装置。
【請求項７】
バッテリー電源部と、
上記バッテリー電源部のバッテリー残量を検出するバッテリー残量検出部と、
を有し、
上記制御部は、上記バッテリー残量検出部において検出されるバッテリー残量が所定のしきい値を下回り、かつ、自らの通信装置における上記第２のモード時の上記消費電力が上記第１のモード時の上記消費電力に比べて小さい場合、上記動作モードの交替を実行する、
請求項４に記載の通信装置。
【請求項８】
上記制御部は、通信相手から取得される、該通信相手が上記第１のモードで動作するときの通信速度の情報と、上記記憶部に記憶される、自らの通信装置が上記第１のモードで動作するときの通信速度の情報とに基づいて、該通信相手と動作モードを交替した場合に通信速度が速くなるか否か判定し、該判定の結果に応じて上記動作モードの交替を実行する、
請求項４に記載の通信装置。
【請求項９】
上記制御部は、通信相手から取得される、通信相手が上記第１のモードおよび上記第２のモードの各モードで動作するときの通信速度の情報と、上記記憶部に記憶される、自らの通信装置が上記第１のモードおよび上記第２のモードの各モードで動作するときの通信速度の情報とに基づいて、該通信相手と動作モードを交替した場合に通信速度が速くなるか否か判定し、該判定の結果に応じて上記動作モードの交替を実行する、
請求項８に記載の通信装置。
【請求項１０】
上記制御部は、通信相手から取得される情報に、該通信相手が上記第１のモードで動作する際に所定の通信仕様に従って通信を行うことが可能であることを示す情報が含まれていない場合は、上記動作モードの交替を実行しない、
請求項８に記載の通信装置。
【請求項１１】
第１のプラグ端子および第２のプラグ端子を接続可能なレセプタクル端子を有し、
上記制御部は、上記レセプタクル端子から上記第１のプラグを介して上記バスに接続される場合に上記第１のモードで起動し、上記レセプタクル端子から上記第２のプラグを介して上記バスに接続される場合に上記第２のモードで起動する、
請求項２に記載の通信装置。
【請求項１２】
バスを介して通信を行う２つの通信装置の一方が、該バス上におけるデータの伝送を制御する第１のモードで動作する場合、他方の通信装置が、該一方の通信装置の制御に従って通信を行う第２のモードで動作し、所定の通信プロトコルに従って、該２つの通信装置の動作モードを交替することが可能な通信方法であって、
第１の通信装置を上記第１のモードで起動させ、第２の通信装置を上記第２のモードで起動させる第１の工程と、
上記第２の通信装置が上記第１のモードおよび上記第２のモードのそれぞれで動作する場合における所定の通信性能に関連する情報を、上記第２の通信装置から上記第１の通信装置へ上記バスを介して伝送させる第２の工程と、
上記第１の通信装置において、上記第２の通信装置から取得した通信性能の情報と、上記第１のモードおよび上記第２のモードにおける自らの上記通信性能の情報とに基づいて、上記動作モードを交替した場合に上記通信性能が改善するか否かを判定させる第３の工程と、
上記第３の工程において上記通信性能が改善すると判定されたならば、上記第１の通信装置において、上記動作モードの交替を実行させる第４の工程と、
を有する通信方法。
【請求項１３】
バスを介して通信を行う際の動作モードを、該バス上におけるデータの伝送を制御する第１のモードと、該第１のモードで動作する通信相手の制御に従って通信を行う第２のモードとの間で切り替えることが可能な通信装置の制御用コンピュータのプログラムであって、
上記第１のモードで起動した場合、上記第２の動作モードで動作する通信相手から、上記第１のモードおよび上記第２のモードにおける該通信相手の所定の通信性能の情報を取得する第１のステップと、
上記第１のステップにおいて取得した通信相手の通信性能の情報と、上記第１のモードおよび上記第２のモードにおける自らの通信装置の上記通信性能の情報とに基づいて、該通信相手と動作モードを交替した場合に上記通信性能が改善するか否か判定する第２のステップと、
上記第２のステップにおいて上記通信性能が改善すると判定したならば、所定の通信プロトコルに従って、上記動作モードの交替を実行する第３のステップと、
を有する処理を上記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ等のバスを利用した通信システム、通信装置、通信方法および通信制御用コンピュータのプログラムに関するものである。
【背景技術】
【０００２】
主にパーソナルコンピュータとその周辺機器とをつなぐ高速なシリアル通信の規格として、ＵＳＢ（universal serial bus）が一般に知られている。ＵＳＢの通信システムは、共通のシリアル通信バスを介して複数の機器が接続される構造を有しており、該複数の機器のうちの１つがホスト（host）、その他の機器がペリフェラル（peripheral）と称される機能を果たす。
【０００３】
ホスト機器は、バスにおけるデータの伝送の全般を制御する役目を有しており、通常は、パーソナルコンピュータがホスト機器になる。ホスト機器は、例えば、新しくバスに接続されたペリフェラル機器を検出する処理や、バス上におけるデータの流れを管理する処理等を行う。
一方、ペリフェラル機器は、ホスト機器の制御に従って通信を行う。すなわち、ホスト機器からペリフェラル機器に対して要求が伝えられ、ペリフェラル機器がこの要求に対して応答を返すという方法により通信を行う。ペリフェラル機器が自らの情報をホスト機器に通知する動作や、ホスト機器との間でデータを送受信する動作は、何れもホスト機器からの要求に応答する動作として実行される。
【０００４】
ＵＳＢで通信を行う機器がホストまたはペリフェラルの何れの機能を有するかは、多くの場合、その機器の設計時に決定される。そのため、通常のＵＳＢ対応機器では、使用する場面に応じてこの機能を変更することはできない。
【０００５】
これに対し、ＵＳＢ  Ｏｎ−Ｔｈｅ−Ｇｏ（以下、ＯＴＧと表記する）と称されるＵＳＢ２．０の追加規格においては、ホストとペリフェラルの機能を切り替えることが可能になる。これにより、通常はホスト機能を有していないデジタルカメラなどの機器にホスト機能を付加して、これらの機器の間でパーソナルコンピュータを介さず直接データを伝送することが可能になる。
【０００６】
ＯＴＧにおいては、ホストとペリフェラルの両方の機能を有する機器として、デュアルロールデバイス（dual-role device）が規定されている。デュアルロールデバイスは、接続されるＵＳＢケーブルのプラグの型に応じて、初期状態の機能を決定する。すなわち、ＵＳＢケーブルのＭｉｎｉ−Ａと称されるプラグに接続された場合、初期状態においてホスト機器になり、ＵＳＢケーブルのＭｉｎｉ−Ｂと称されるプラグに接続された場合は、初期状態においてペリフェラル機器になる。Ｍｉｎｉ−Ａプラグに接続される機器はＡデバイス、Ｍｉｎｉ−Ｂプラグに接続される機器はＢデバイスと呼ばれる。
【０００７】
また、ＯＴＧでは、ＵＳＢ２．０の通信プロトコルに加えて、ＳＲＰ（session request protocol）およびＨＮＰ（host negotiation protocol）と称される通信プロトコルが用意されている。
【０００８】
ＯＴＧで規定されるＡデバイスは、未通信時にバスへの電流供給を停止することが許されている。ＳＲＰは、その電流供給停止時に、ＢデバイスからＡデバイスへ電流供給の再開を促すための通信プロトコルである。これにより、Ｂデバイスから要求されるまでバスの電流供給を停止できるため、未通信時の消費電力を低減することができる。
【０００９】
ＨＮＰは、２つのデュアルロールデバイスが、それぞれの接続プラグの型に応じて、一方がホスト機器、他方がペリフェラル機器として動作しているときに、プラグの挿し替えを行うことなく、ホスト機能とペリフェラル機能とを交替するための通信プロトコルである。これにより、プラグの差し替えの手間が省けるため、ユーザの利便性が向上する。
【００１０】
下記の特許文献１は、ＯＴＧに準拠してデータ転送を行う装置に関するものである。
【特許文献１】特開２００３−３１６７２８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、このＯＴＧに準拠するＵＳＢ通信装置は、主にデジタルカメラやＰＤＡ（personal digital assistant）などのモバイル機器への搭載が想定されている。モバイル機器は、一般にバッテリー電源によって駆動されるため、消費電力の削減が重要な課題となっている。そのため、ＵＳＢ通信装置において消費される電力についても、できる限り削減することが求められている。
【００１２】
また、近年では、モバイル機器において動画などの大容量のデータを扱うことが多くなっているため、こうした機器に搭載される通信装置には、より高速な通信速度が求められている。
【００１３】
本発明はかかる事情に鑑みてなされたものであり、その目的は、バスを介して行う通信であって、バス上におけるデータの伝送を制御するホスト機能と、ホスト機能を有する通信相手の制御に従って通信を行うペリフェラル機能とを、所定の通信プロトコルに従って切り替えることが可能な通信を行うときに、通信処理の消費電力や通信速度などの通信性能を向上させることができる通信システム、通信装置、通信方法および通信制御用コンピュータのプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
第１の発明の通信システムは、バスを介して通信を行う２つの通信装置を有しており、一方の通信装置が、該バス上におけるデータの伝送を制御する第１のモードで動作する場合、他方の通信装置が、該一方の通信装置の制御に従って通信を行う第２のモードで動作し、所定の通信プロトコルに従って、該２つの通信装置の動作モードを交替することが可能な通信システムである。
第１の発明において、上記通信装置は、自らの通信装置が上記第１のモードおよび上記第２のモードのそれぞれで動作する場合における、所定の通信性能に関連する情報を記憶する記憶部と、上記第２のモードで起動した場合、上記第１の動作モードで動作する通信相手の制御に従って、上記記憶部に記憶される上記通信性能の情報を上記バスに出力し、上記第１のモードで起動した場合、上記第２の動作モードで動作する通信相手から上記バスを介して上記通信性能の情報を取得し、該取得した通信相手の通信性能の情報と、上記記憶部に記憶される自らの通信装置の通信性能の情報とに基づいて、上記動作モードの交替を行った場合に上記通信性能が改善するか否か判定し、上記通信性能が改善すると判定したならば、上記動作モードの交替を実行する制御部とを有する。
好適には、上記記憶部は、上記所定の通信性能に関連する情報として、通信速度の情報および消費電力の情報の一方または両方を記憶する。
【００１５】
上記第１の発明によると、上記第１のモードで起動した通信装置によって、上記第２のモードで起動した通信装置の記憶部に記憶される通信性能の情報をバスに出力させる制御が行なわれる。これにより、上記第２のモードで起動した通信装置の通信性能の情報が、上記第１のモードで起動した通信装置に取得される。上記第１のモードで起動した通信装置では、この取得した通信相手の通信性能の情報と、上記記憶部に記憶される自らの通信性能の情報とに基づいて、上記動作モードの交替を行った場合に上記通信性能が改善するか否かの判定が行われる。例えば、通信速度が高速化するか否かや、通信処理に要する消費電力が減少するか否か等の判定が行われる。この判定の結果、上記通信性能が改善すると判定された場合、上記第１のモードで起動した通信装置により、上記所定の通信プロトコルに従って、上記動作モードの交替が実行される。
【００１６】
第２の発明の通信装置は、バスを介して通信を行う際の動作モードを、該バス上におけるデータの伝送を制御する第１のモードと、該第１のモードで動作する通信相手の制御に従って通信を行う第２のモードとの間で切り替えることが可能な通信装置である。
第２の発明の通信装置は、自らの通信装置が上記第１のモードおよび上記第２のモードのそれぞれで動作する場合における、所定の通信性能に関連する情報を記憶する記憶部と、上記第１のモードで起動した場合、上記第２の動作モードで動作する通信相手から、上記第１のモードおよび上記第２のモードにおける該通信相手の上記通信性能の情報を取得し、該取得した通信相手の通信性能の情報と、上記記憶部に記憶される自らの通信装置の通信性能の情報とに基づいて、該通信相手と動作モードを交替した場合に上記通信性能が改善するか否か判定し、上記通信性能が改善すると判定したならば、所定の通信プロトコルに従って、上記動作モードの交替を実行する制御部とを有する。
好適には、上記記憶部は、上記所定の通信性能に関連する情報として、通信速度の情報および消費電力の情報の一方または両方を記憶する。
【００１７】
上記第２の発明によると、上記第１のモードで起動した場合、上記制御部の制御によって、上記第２のモードで動作する通信相手から、上記第１のモードおよび上記第２のモードにおける該通信相手の通信性能の情報が取得される。次いで、上記制御部において、この取得された通信相手の通信性能の情報と、上記記憶部に記憶される自らの通信装置の通信性能の情報とに基づいて、上記動作モードの交替を行った場合に上記通信性能が改善するか否かの判定が行われる。例えば、通信速度が高速化するか否かや、通信処理に要する消費電力が減少するか否か等の判定が行われる。この判定の結果、上記通信性能が改善すると判定された場合、上記制御部の制御により、上記所定の通信プロトコルに従って、上記動作モードの交替が実行される。
【００１８】
第３の発明の通信方法は、バスを介して通信を行う２つの通信装置の一方が、該バス上におけるデータの伝送を制御する第１のモードで動作する場合、他方の通信装置が、該一方の通信装置の制御に従って通信を行う第２のモードで動作し、所定の通信プロトコルに従って、該２つの通信装置の動作モードを交替することが可能な通信方法である。
第３の発明の通信方法は、第１の通信装置を上記第１のモードで起動させ、第２の通信装置を上記第２のモードで起動させる第１の工程と、上記第２の通信装置が上記第１のモードおよび上記第２のモードのそれぞれで動作する場合における所定の通信性能に関連する情報を、上記第２の通信装置から上記第１の通信装置へ上記バスを介して伝送させる第２の工程と、上記第１の通信装置において、上記第２の通信装置から取得した通信性能の情報と、上記第１のモードおよび上記第２のモードにおける自らの上記通信性能の情報とに基づいて、上記動作モードを交替した場合に上記通信性能が改善するか否かを判定させる第３の工程と、上記第３の工程において上記通信性能が改善すると判定されたならば、上記第１の通信装置において、上記動作モードの交替を実行させる第４の工程とを有する。
【００１９】
上記第３の発明によると、上記第１の工程において、上記第１の通信装置が上記第１のモードで起動し、上記第２の通信装置が上記第２のモードで起動する。上記第２の工程では、上記第１のモードおよび上記第２のモードにおける上記第２の通信装置の所定の通信性能の情報が、上記第２の通信装置から上記第１の通信装置へ上記バスを介して伝送される。上記第３の工程では、上記第１の通信装置において、上記第２の通信装置から取得した通信性能の情報と、上記第１のモードおよび上記第２のモードにおける自らの上記通信性能の情報とに基づいて、上記動作モードを交替した場合に上記通信性能が改善するか否かの判定が行われる。上記第３の工程において上記通信性能が改善すると判定されたならば、上記第４の工程において、上記動作モードの交替が上記第１の通信装置により実行される。
【００２０】
第４の発明のプログラムは、バスを介して通信を行う際の動作モードを、該バス上におけるデータの伝送を制御する第１のモードと、該第１のモードで動作する通信相手の制御に従って通信を行う第２のモードとの間で切り替えることが可能な通信装置の制御用コンピュータのプログラムである。
第４の発明のプログラムは、上記第１のモードで起動した場合、上記第２の動作モードで動作する通信相手から、上記第１のモードおよび上記第２のモードにおける該通信相手の所定の通信性能の情報を取得する第１のステップと、上記第１のステップにおいて取得した通信相手の通信性能の情報と、上記第１のモードおよび上記第２のモードにおける自らの通信装置の上記通信性能の情報とに基づいて、該通信相手と動作モードを交替した場合に上記通信性能が改善するか否かを判定する第２のステップと、上記第２のステップにおいて上記通信性能が改善すると判定したならば、所定の通信プロトコルに従って、上記動作モードの交替を実行する第３のステップとを有する。
【００２１】
上記第４の発明によると、上記第１のモードで起動した場合、上記第１のステップにおいて、上記第２の動作モードで動作する通信相手から、上記第１のモードおよび上記第２のモードにおける該通信相手の所定の通信性能の情報が取得される。上記第２のステップでは、上記第１のステップにおいて取得した通信相手の通信性能の情報と、上記第１のモードおよび上記第２のモードにおける自らの通信装置の上記通信性能の情報とに基づいて、該通信相手と動作モードを交替した場合に上記通信性能が改善するか否かの判定が行われる。上記第２のステップにおいて上記通信性能が改善すると判定したならば、上記第３のステップにおいて、所定の通信プロトコルに従って、上記動作モードの交替が実行される。
【発明の効果】
【００２２】
本発明によれば、バスを介して通信を行う際の動作モードを、バス上におけるデータの伝送を制御する第１のモードから、該第１のモードで動作する通信相手の制御に従って通信を行う第２のモードへ、通信性能の情報に基づいて適切に交替することが可能になり、これにより、通信性能の向上を図ることができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明をＯＴＧに準拠する通信装置に適用した場合における、２つの実施形態を説明する。
【００２４】
＜第１の実施形態＞
図１は、本発明の実施形態に係る通信システムの構成例を示す図である。
【００２５】
図１に示す通信システムは、通信ケーブル５０と、通信装置１０１および１０２を有する。
通信装置１０１は、通信処理部１１と、制御部２１と、記憶部３１と、レセプタクル端子４１とを有する。
通信装置１０２は、通信処理部１２と、制御部２２と、記憶部３２と、レセプタクル端子４２とを有する。
【００２６】
なお、通信装置１０１，１０２は、本発明の通信装置の一実施形態である。
制御部２１，２２は、本発明の制御部の一実施形態である。
記憶部３１，３２は、本発明の記憶部の一実施形態である。
【００２７】
［通信ケーブル５０］
通信ケーブル５０は、ＯＴＧに準拠する通信ケーブルであり、一方の端にＭｉｎｉ−Ａプラグ端子５１を有し、他方の端にＭｉｎｉ−Ｂプラグ端子５２を有する。
【００２８】
［通信装置１０１，１０２］
通信装置１０１および１０２は、ＯＴＧにおいて規定されているデュアルロールデバイスであり、Ｍｉｎｉ−Ａプラグ端子５１を接続された場合にＡデバイス、Ｍｉｎｉ−Ｂプラグ端子５２を接続された場合にＢデバイスとなる。
【００２９】
図１の例において、通信装置１０１はＭｉｎｉ−Ａプラグ端子５１、通信装置１０２はＭｉｎｉ−Ｂプラグ端子５２に接続されている。したがって、この場合、通信装置１０１はＡデバイス、通信装置１０２はＢデバイスになる。すなわち、通信装置１０１は起動時においてホスト機器として動作し、通信装置１０２は起動時においてペリフェラル機器として動作する。
【００３０】
なお、本明細書においては、ホスト機器として動作するときの動作モードを第１のモード、ペリフェラル機器として動作するときの動作モードを第２のモードと言う。
【００３１】
［通信処理部１１，１２］
通信処理部１１は、制御部２１の指示に従って、ＵＳＢおよびＯＴＧに準拠した種々の通信処理を行う。例えば、ＵＳＢの規定に従ったデータ送受信処理や、ＯＴＧの規定に従った動作モードの交替処理等を、制御部２１の指示に従って実行する。
通信処理部１２は、通信装置１０２において通信処理部１１と同様な機能を有する。すなわち、制御部２２の指示に従って、ＵＳＢおよびＯＴＧに準拠した種々の通信処理を行う。
【００３２】
通信処理部１１は、例えば図２に示すように、ＯＴＧ部１１１、ホスト部１１２、およびペリフェラル部１１３を有する。特に図示しないが、通信処理部１２も例えばこれと同様な構成を有する。
【００３３】
ＯＴＧ部１１１は、ＯＴＧにおいて規定されている種々の通信処理を行う。例えば、ＳＲＰを使ってＡデバイスに電流供給の再開を促す処理や、ＨＮＰを使って動作モード（第１のモード，第２のモード）を交替する処理などを実行する。
また、ＯＴＧ部１１１は、レセプタクル端子４１に挿入されたプラグ端子の型（Ｍｉｎｉ−Ａプラグ端子またはＭｉｎｉ−Ｂプラグ端子）に応じて、起動時の動作モードを決定する処理や、ホスト部１１２およびペリフェラル部１１３へのクロックの供給を制御する処理も行う。
【００３４】
ホスト部１１２は、第１のモードで動作する時の通信処理を実行する。すなわち、バス（図１の例では通信ケーブル５０）につながる機器を検出する処理や、バス上におけるデータの伝送を制御する処理等、ＵＳＢのホスト機器としての通信処理を実行する。
【００３５】
ペリフェラル部１１３は、第２のモードで動作する時の通信処理を実行する。すなわち、ＵＳＢのペリフェラル機器として、第１のモードで動作する通信相手（ホスト機器）の制御に従った通信処理を実行する。
【００３６】
図３は、通信処理部１１，１２における動作モードの交替の動作を説明するための概念図である。
図１の例では、初期状態において、通信装置１０１が第１のモードで動作し、通信装置１０２が第２のモードで動作する。このとき、通信処理部１１では、図３（Ａ）に示すようにＯＴＧ部１１１の制御によって、ホスト部１１２へのクロック供給が行われ、ペリフェラル部１１３へのクロック供給が停止される。逆に、通信処理部１２では、ペリフェラル部へのクロック供給が行われ、ホスト部へのクロック供給が停止される。
【００３７】
この状態で、ＨＮＰによる動作モードの交替を行うと、図３（Ｂ）に示すように通信処理部１１では、ＯＴＧ部１１１の制御によって、ホスト部１１２へのクロック供給が停止され、ペリフェラル部１１３へのクロック供給が開始される。逆に、通信処理部１２では、ペリフェラル部へのクロック供給が停止され、ホスト部へのクロック供給が開始される。これにより、通信装置１０１が第２のモードで動作し、通信装置１０２が第１のモードで動作する。すなわち、通信ケーブル５０のプラグ５１，５２を挿し替えることなく、通信装置１０１および１０２の間で動作モードの交替が行われる。
以上は通信装置１０１がＡデバイスの場合の例であるが、通信装置１０２がＡデバイスの場合も、上述と同様な動作によって動作モードの交替が行われる。
【００３８】
［制御部２１，２２］
制御部２１は、通信装置１０１の全体的な動作の制御に関わる種々の処理を行う。
例えば、制御部２１は、通信処理部１１が第１のモードで動作する場合、第２のモードで動作する通信相手（ペリフェラル機器）と通信を開始するにあたって必要な種々の情報を取得するための処理を行う。すなわち、ＵＳＢにおいて規定された種々のリクエストを通信処理部１１からペリフェラル機器に送信させ、これに応じたペリフェラル機器からの応答を通信処理部１１において受信させることにより、ペリフェラル機器の情報を取得する。必要な情報が得られた後は、この情報に基づいて通信処理部１１を制御し、ペリフェラル機器との間で通信を行う。
【００３９】
また、制御部２１は、通信処理部１１が第２のモードで動作する場合、第１のモードで動作する通信相手（ホスト機器）の制御に従って通信を行うように、通信処理部１１を制御する。すなわち、第１のモードで動作する通信相手（ホスト機器）からのリクエストを通信処理部１１において受信させ、このリクエストに対するＵＳＢで規定された応答を生成して、通信処理部１１からホスト機器へ送信させる。
【００４０】
更に、制御部２１は、通信処理部１１が第１のモードで起動する場合、すなわち通信装置１０１がＡデバイスの場合、第２のモードで動作するペリフェラル機器から、第１のモードおよび第２のモードにおけるペリフェラル機器の消費電力の情報を取得するように、通信処理部１１を制御する。この情報の取得には、例えば後述するように、ＵＳＢのエニュメレーションを利用する。そして、取得したペリフェラル機器の消費電力の情報と、記憶部３１に記憶される通信装置１０１自身の第１のモードおよび第２のモードにおける消費電力の情報とに基づいて、ペリフェラル機器と動作モードを交替した場合に消費電力が減少するか否かを判定する。消費電力が減少すると判定した場合は、ＨＮＰによってペリフェラル機器と動作モードを交替するように、通信処理部１１を制御する。
【００４１】
一方、制御部２１は、通信処理部１１が第２のモードで起動する場合、すなわち通信装置１０１がＢデバイスの場合、第１のモードで動作するホスト機器の制御に従って、記憶部３１に記憶される通信装置１０１自身の消費電力の情報を通信処理部１１から送信させる。この消費電力の情報は、ホスト機器において、動作モード交替により消費電力が減少するか否かの上述した判定を行う際に用いられる。
【００４２】
制御部２２は、通信装置１０２において制御部２１と同様な機能を有する。すなわち、通信装置１０２の全体的な動作の制御に関わる種々の処理として、例えば上述と同様な処理を行う。
【００４３】
［記憶部３１，３２］
記憶部３１は、通信処理部１１において送受信されるデータや、通信処理に必要とされる種々の情報を記憶する。
【００４４】
記憶部３１に記憶される情報には、例えば、デスクリプタ（descriptor）が含まれる。デスクリプタは、ホスト機器がペリフェラル機器についての情報を得るためのデータであり、ＵＳＢにおいて規定されたデータ構造を有する。
通信装置１０１の第１のモードおよび第２のモードにおける消費電力の情報は、例えばこのデスクリプタとして記憶部３１に記憶される。デスクリプタの構造例については、後ほど図５を参照して説明する。
【００４５】
記憶部３２は、通信装置１０２において記憶部３１と同様な機能を有する。すなわち、通信処理部１２において送受信されるデータや、通信処理に必要とされる種々の情報を記憶する。
【００４６】
［レセプタクル端子４１，４２］
レセプタクル端子４１，４２は、ＯＴＧにおいて規定されているデュアルロールデバイス側の端子であり、Ｍｉｎｉ−Ａプラグ端子、Ｍｉｎｉ−Ｂプラグ端子を何れも装着することができる構造を有する。
【００４７】
ここで、上述した構成を有する図１に示す通信システムの動作を説明する。
【００４８】
図４は、Ａデバイスとして動作する通信装置１０１の動作の一例を示すフローチャートである。
【００４９】
通信装置１０１の通信処理部１１は、起動時において、レセプタクル端子４１に装着されているプラグの型を検出し、制御部２１に通知する。レセプタクル端子４１にはＭｉｎｉ−Ａプラグ端子５１が装着されているため、制御部２１は、Ａデバイスとしての制御を開始する。
【００５０】
まず、制御部２１は、エニュメレーションの過程において、通信相手（通信装置１０２）からデスクリプタを取得する（ステップＳＴ１１）。
エニュメレーションは、ホスト機器とペリフェラル機器とが通信を開始する際に行うＵＳＢで規定された通信手順である。エニュメレーションにおいて、ホスト機器は、ペリフェラル機器の種々の情報を収集し、接続を確立する処理を行う。
制御部２１は、エニュメレーションによって通信処理部１１が通信装置１０２から取得した各種のデスクリプタを、記憶部３１に格納する（ステップＳＴ１２）。
【００５１】
次に、制御部２１は、通信相手から取得したデスクリプタの中に、消費電力の情報を含んだ所定のデスクリプタが存在するか否かを調べる（ステップＳＴ１３）。
【００５２】
ここでは、通信装置の消費電力の情報を含む所定のデスクリプタを、ＯＴＧ  Ｐｏｗｅｒデスクリプタと呼ぶことにする。
図５は、このＯＴＧ  Ｐｏｗｅｒデスクリプタのデータ構造の一例を示す図である。
図５において、‘オフセット’欄は、デスクリプタを構成する各データフィールドの先頭ビットと、デスクリプタの先頭ビットとの間の距離（単位はバイト）を示す欄である。‘サイズ’欄は、デスクリプタの各データフィールドのデータ長（単位はバイト）を示す欄である。‘フィールド’欄は、各データフィールドの内容を示す欄である。
【００５３】
図５に示すＯＴＧ  Ｐｏｗｅｒデスクリプタは、データフィールドとして、先頭から順に‘デスクリプタ長’、‘デスクリプタタイプ’、‘デスクリプタインデックス’、‘ペリフェラル消費電力’、‘ホスト消費電力’を有する。
‘デスクリプタ長’には、本デスクリプタの全体のバイト数が格納される。
‘デスクリプタタイプ’には、本デスクリプタを識別するための識別子が格納される。
‘デスクリプタインデックス’には、本デスクリプタが複数ある場合のインデックスが格納される。
‘ペリフェラル消費電力’には、第２のモードで動作するときの消費電力を示す数値が格納される。
‘ホスト消費電力’には、第１のモードで動作するときの消費電力を示す数値が格納される。
なお、‘ペリフェラル消費電力’、‘ホスト消費電力’の各フィールドに格納される数値は、その値が大きいほど消費電力が大きいことを示す。
【００５４】
このようなＯＴＧ  Ｐｏｗｅｒデスクリプタが通信相手（通信装置１０２）から得られた場合、制御部２１は、取得した通信相手のＯＴＧ  Ｐｏｗｅｒデスクリプタと、記憶部３１に予め記憶されている通信装置１０１自身のＯＴＧ  Ｐｏｗｅｒデスクリプタとに基づいて、動作モードを交替する場合としない場合の消費電力を比較する（ステップＳＴ１４）。すなわち、制御部２１は、通信装置１０１が第１のモード、通信相手が第２のモードで動作したときの消費電力と、通信装置１０１が第２のモード、通信相手が第１のモードで動作したときの消費電力とを比較する。
そして、この比較の結果から、通信相手と動作モードを交替した場合に消費電力が小さくなるか否かを判定する（ステップＳＴ１５）。
【００５５】
例えば制御部２１は、Ａデバイス（すなわち通信装置１０１）が第１のモード、Ｂデバイス（すなわち通信装置１０２）が第２のモードで動作する場合の両者の消費電力の合計（Ａデバイスの‘ホスト消費電力’＋Ｂデバイスの‘ペリフェラル消費電力’）と、Ａデバイスが第２のモード、Ｂデバイスが第１のモードで動作する場合の両者の消費電力の合計（Ａデバイスの‘ペリフェラル消費電力’＋Ｂデバイスの‘ホスト消費電力’）とを比較する。そして、後者が前者より小さくなる場合、動作モードの交替によって消費電力が小さくなると判定する。
【００５６】
図６は、ＡデバイスとＢデバイスのＯＴＧ  Ｐｏｗｅｒデスクリプタの具体例を示す第１の図である。‘フィールド’欄における記号‘０ｘ’は、これに続く数が１６進数であることを示す記号である。
この例によると、（Ａデバイスの‘ホスト消費電力’＋Ｂデバイスの‘ペリフェラル消費電力’）が、０ｘ０８＋０ｘ０Ｃ＝０ｘ１４であり、（Ａデバイスの‘ペリフェラル消費電力’＋Ｂデバイスの‘ホスト消費電力’）が、０ｘ０Ａ＋０ｘ０７＝０ｘ１１である。したがって、この場合、制御部２１は、動作モードの交替によって消費電力が小さくなると判定する。
【００５７】
動作モードの交替によって消費電力が小さくなると判定した場合、制御部２１は、Ｂデバイスの通信相手に対して動作モード交替の許可を通知する（ステップＳＴ１６）。この通知に対して通信相手から肯定応答が来ると、制御部２１は、ＨＮＰによる動作モードの交替処理を実行する（ステップＳＴ１７）。
【００５８】
なお、通信相手から取得したデスクリプタにＯＴＧ  Ｐｏｗｅｒデスクリプタが含まれていない場合や、動作モードの交替によって消費電力が小さくならないと判定した場合、制御部２１は、動作モード交替の許可を通知せず、ＨＮＰによる動作モードの交替処理を実行せずに、動作モードを維持する。
【００５９】
図７は、図１に示す通信システムにおけるＡデバイス（通信装置１０１）とＢデバイス（通信装置１０２）との間の通信手順の一例を説明するための図である。
【００６０】
Ａデバイスは、Ｂデバイスがバスに接続されたことを検出すると、上述したエニュメレーションを実行する。エニュメレーションにおいて、Ａデバイスは、ＵＳＢで規定されている標準リクエスト‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’をＢデバイスに送信する（ステップＳＴ２１）。
【００６１】
‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ’は、ペリフェラル機器の情報を含んだデスクリプタを、ペリフェラル機器からホスト機器へ送信させるためのリクエストである。
‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’は、ペリフェラル機器に要求するデスクリプタとして、特に‘コンフィグレーション・デスクリプタ’と称される、機器の能力や機能に関する情報を含んだデスクリプタを指定するリクエストである。
【００６２】
デュアルロールデバイスは、‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’によってホスト機器から‘コンフィグレーション・デスクリプタ’を要求された場合に、‘ＯＴＧデスクリプタ’と称されるデスクリプタを‘コンフィグレーション・デスクリプタ’に追加してホスト機器に送信することが、ＯＴＧで規定されている。‘ＯＴＧデスクリプタ’は、デュアルロールデバイスがＳＲＰやＨＮＰに対応しているか否かを示す情報を含んだデスクリプタである。
【００６３】
したがって、通常の場合、デュアルロールデバイスは、‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’のリクエストをホスト機器から受け取ると、‘コンフィグレーション・デスクリプタ’とこれに関連するデスクリプタに加えて、‘ＯＴＧデスクリプタ’をＡデバイスに送信する。
本実施形態に係る通信装置（１０１，１０２）は、この‘ＯＴＧデスクリプタ’に加えて、更に上述のＯＴＧ  ＰｏｗｅｒデスクリプタをＡデバイスに送信する（ステップＳＴ２２）。
‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’のリクエストに応じて、Ｂデバイスがその機器のクラス（特定の通信仕様を満たす機器のグループ）に特有のデスクリプタを送信することは、ＵＳＢ２．０の規格に準拠した動作である。
【００６４】
このようにして、ＢデバイスからＡデバイスへ、ＵＳＢ２．０およびＯＴＧの規格に準拠した方法で、ＯＴＧ  Ｐｏｗｅｒデスクリプタが送信される。
【００６５】
Ａデバイスは、Ｂデバイスから取得したＯＴＧ  Ｐｏｗｅｒデスクリプタと、自らが保有するＯＴＧ  Ｐｏｗｅｒデスクリプタとにおける‘ペリフェラル消費電力’および‘ホスト消費電力’の各フィールドの数値に基づいて、動作モードの交替により消費電力が小さくなるか否かの判定を行う。
消費電力が小さくなると判定した場合、Ａデバイスは、ＯＴＧで追加された、標準リクエストの‘Ｓｅｔ  Ｆｅａｔｕｒｅ（ｂ＿ｈｎｐ＿ｅｎａｂｌｅ）’をＢデバイスに送信する（ステップＳＴ２３）。このリクエストを受けると、Ｂデバイスは、動作モードの交替が許可されたことを認識し、Ａデバイスへ肯定応答を返す。
【００６６】
Ｂデバイスから肯定応答を受けると、Ａデバイスはバスをサスペンド状態に設定して、通信を停止する（ステップＳＴ２４）。Ｂデバイスにおいてバスのサスペンド状態が認識されると、ＡデバイスとＢデバイスの双方でＨＮＰによる動作モードの交替が行われ、Ａデバイスは第２のモード、Ｂデバイスは第１のモードに動作モードを切り替える（ステップＳＴ２５）。
【００６７】
以上説明したように、本実施形態に係る通信装置（１０１，１０２）によれば、第１のモードで起動した場合、制御部（２１，２２）の制御によって、第２のモードで動作する通信相手から、第１のモードおよび第２のモードにおける該通信相手の通信性能の情報（例えばＯＴＧ  Ｐｏｗｅｒデスクリプタ）が取得される。そして、制御部（２１，２２）において、この取得された通信相手のＯＴＧ  Ｐｏｗｅｒデスクリプタと、記憶部（３１，３２）に記憶される自らの通信装置のＯＴＧ  Ｐｏｗｅｒデスクリプタとに基づいて、動作モードの交替を行った場合に消費電力が小さくなるか否かの判定が行われる。この判定の結果、消費電力が小さくなると判定された場合、制御部（２１，２２）の指示によって、ＨＮＰによる動作モードの交替の許可が通信相手に通知され、ＨＮＰによる動作モードの交替が実行される。
したがって、消費電力がより小さくなるようにＡデバイスとＢデバイスの動作モードが適切に設定されるため、消費電力の更なる削減を図ることができる。
【００６８】
また、ＵＳＢ２．０やＯＴＧの規格に準拠した方法により動作モードの交替を行うため、これらの規格に準拠する機器へ容易に本実施形態を適用することが可能である。
【００６９】
更に、上述した動作モードの交替に関わる本実施形態の処理は、主として制御部（２１，２２）によって実行されており、この制御部（２１，２２）はコンピュータによって実現可能である。したがって、通信処理の全体動作をコンピュータで制御している従来の通信装置については、そのハードウェアに変更を加えることなく、プログラムの修正によって、本実施形態に係る機能を実装することも可能である。
【００７０】
ところで、上述の制御部（２１，２２）では、（Ａデバイスの‘ホスト消費電力’＋Ｂデバイスの‘ペリフェラル消費電力’）と、（Ａデバイスの‘ペリフェラル消費電力’＋Ｂデバイスの‘ホスト消費電力’）とを比較することによって、動作モードの交替を行うか否か判定している。この判定方法（以降、第１の判定方法と呼ぶ）は、特に、Ｂデバイスが‘バスパワードデバイス（bus powered device）’の場合に有効である。
【００７１】
‘バスパワードデバイス’は、Ａデバイスからバスを介して電源の供給を受けるデバイスを指す。Ｂデバイスが‘バスパワードデバイス’の場合、全ての電源はＡデバイスから供給されるため、上記の消費電力の合計値は、Ａデバイスの消費電力に相当する。したがって、Ａデバイスの消費電力が小さくなる条件を検出できる第１の判定方法は、この場合に適している。
【００７２】
一方、ＡデバイスおよびＢデバイスがそれぞれ独立した電源で動作する場合、両方のデバイスの消費電力を合計して比較する第１の判定方法では、両方のデバイスの合計において消費電力が減少しても、単独では消費電力が増加してしまうこともあり得る。
【００７３】
このような場合、Ａデバイスの制御部（２１，２２）は、次のような第２の判定方法により、動作モードの交替を実行するか否か判定しても良い。
第２の判定方法では、通信相手における第１のモード時の消費電力が第２のモード時の消費電力に比べて小さく、かつ、自らの通信装置における第２のモード時の消費電力が第１のモード時の消費電力に比べて小さいか否かを、両方のデバイスのＯＴＧ  Ｐｏｗｅｒデスクリプタに基づいて判定し、この条件が成立する場合に、動作モードの交替を実行する。
すなわち、Ａデバイスの制御部（２１，２２）は、（Ｂデバイスの‘ペリフェラル消費電力’＞Ｂデバイスの‘ホスト消費電力’）かつ（Ａデバイスの‘ホスト消費電力’＞Ａデバイスの‘ペリフェラル消費電力’）の条件が成立するときに、消費電力が小さくなると判定して、動作モードの交替を実行する。
これにより、消費電力が両方のデバイスで小さくなることを条件として、動作モードの交替を実行することができる。
【００７４】
図８は、ＡデバイスおよびＢデバイスのＯＴＧ  Ｐｏｗｅｒデスクリプタの具体例を示す第２の図である。
この例によると、Ｂデバイスの‘ペリフェラル消費電力’は０ｘ０Ｆ、‘ホスト消費電力’は０ｘ０８であるため、（Ｂデバイスの‘ペリフェラル消費電力’＞Ｂデバイスの‘ホスト消費電力’）が成立する。また、Ａデバイスの‘ホスト消費電力’は０ｘ０Ａ、‘ペリフェラル消費電力’は０ｘ０５であるため、（Ａデバイスの‘ホスト消費電力’＞Ａデバイスの‘ペリフェラル消費電力’）が成立する。したがって、この場合、第２の判定方法で判定を行うＡデバイスの制御部（２１，２２）は、消費電力が小さくなると判定して、動作モードの交替を実行する。
【００７５】
第１の判定方法は、Ｂデバイスが‘バスパワードデバイス’の場合に有効な方法であり、第２の判定方法は、ＡデバイスおよびＢデバイスがそれぞれ独立した電源で動作する場合に有効な方法である。
したがって、制御部（２１，２２）は、Ｂデバイスが‘バスパワードデバイス’であるか否かをデスクリプタ等に基づいて判定し、その判定結果に応じて、第１の判定方法または第２の判定方法の何れか適した方法を選択しても良い。
言い換えると、制御部（２１，２２）は、第２のモードで動作する通信相手がバスより電源を得る装置であるか否かを示す情報を通信相手から取得し、この取得した情報に応じて、第１の判定方法または第２の判定方法の何れかを選択しても良い。
これにより、Ｂデバイスの電源方式も考慮した適切な消費電力の判定を行うことができる。
【００７６】
更に、Ａデバイスの制御部（２１，２２）は、第３の判定方法として、Ｂデバイスの情報を考慮せずに、自らの通信装置のＯＴＧ  Ｐｏｗｅｒデスクリプタのみに基づいて、消費電力の判定を行っても良い。
すなわち、Ａデバイスの制御部（２１，２２）は、（Ａデバイスの‘ホスト消費電力’＞Ａデバイスの‘ペリフェラル消費電力’）の条件が成立するときに、消費電力が小さくなると判定して、動作モードの交替を実行しても良い。
【００７７】
図９は、ＡデバイスおよびＢデバイスのＯＴＧ  Ｐｏｗｅｒデスクリプタの具体例を示す第３の図である。
この例によると、Ｂデバイスの‘ペリフェラル消費電力’は０ｘ０８、‘ホスト消費電力’は０ｘ０Ｆであるため、（Ｂデバイスの‘ペリフェラル消費電力’＞Ｂデバイスの‘ホスト消費電力’）が成立しない。しかしながら、Ａデバイスの‘ホスト消費電力’は０ｘ０Ａ、‘ペリフェラル消費電力’は０ｘ０５であるため、（Ａデバイスの‘ホスト消費電力’＞Ａデバイスの‘ペリフェラル消費電力’）が成立する。したがって、この場合、第３の判定方法で判定を行うＡデバイスの制御部（２１，２２）は、動作モードの交替を実行する。
【００７８】
第３の判定方法は、特に、Ａデバイスがバッテリー電源で動作する機器の場合に有効である。
例えば、Ａデバイスが、バッテリー電源部と、そのバッテリー残量を検出するバッテリー残量検出部とを更に有しているものとする。このバッテリー残量検出部において検出されるバッテリー残量が所定のしきい値を下回る場合（すなわちバッテリー残量が少ない場合）に、制御部（２１，２２）は、第３の判定方法により消費電力の判定を行う。これにより、バッテリー電圧の低下による通信エラー等の不具合を回避することができる。
また、バッテリー残量が所定のしきい値を上回る場合は、例えば上述した第１の判定方法や第２の判定方法によって、消費電力の判定を行っても良い。
【００７９】
なお、ＵＳＢ２．０では、速度の遅い方から順に、ロースピード、フルスピード、およびハイスピードと称される３段階の通信速度が規定されており、一般に、通信速度が高速になるほど、瞬時的な消費電力が大きくなる傾向がある。そこで、Ａデバイスの制御部（２１，２２）は、動作モードとともに通信速度も考慮して、消費電力の判定を行っても良い。
【００８０】
図１０は、通信速度の情報を含んだＯＴＧ  Ｐｏｗｅｒデスクリプタのデータ構造の一例を示す図である。
図１０に示すＯＴＧ  Ｐｏｗｅｒデスクリプタは、通信速度がフルスピードの場合とハイスピードの場合のそれぞれについて、‘ペリフェラル消費電力’および‘ホスト消費電力’のフィールドを有している。
すなわち、２つの動作モード（第１のモード、第２のモード）と２つの通信速度（フルスピード、ハイスピード）との組み合わせ数に相当する、４つの消費電力の情報を有している。
【００８１】
このようなＯＴＧ  Ｐｏｗｅｒデスクリプタを用いると、Ａデバイスの制御部（２１，２２）は、Ｂデバイスとの間で設定しようとしている通信速度に対応した消費電力の情報を選択し、この選択した情報に基づいて、既に述べた第１乃至第３の判定方法により、消費電力の判定を行うことができる。
このように通信速度も加味した消費電力の判定を行うことによって、より適切に消費電力の削減を図ることができる。
【００８２】
＜第２の実施形態＞
次に、本発明の第２の実施形態を述べる。
第２の実施形態では、通信速度が高速化されるように動作モードの交替が行われる。
【００８３】
図１１は、第２の実施形態に係る通信装置１０１Ａ、１０２Ａの構成例を示す図である。図１と図１１の同一符号は同一の構成要素を示す。
通信装置１０１Ａは、通信処理部１１Ａと、制御部２１Ａと、記憶部３１Ａと、レセプタクル端子４１とを有する。
通信装置１０２Ａは、通信処理部１２Ａと、制御部２２Ａと、記憶部３２Ａと、レセプタクル端子４２とを有する。
【００８４】
［通信処理部１１Ａ，１２Ａ］
図１１の例において、通信処理部１１Ａは、ＯＴＧ部１１１Ａと、ホスト部１１２Ａと、ペリフェラル部１１３Ａとを有する。
通信処理部１２Ａは、ＯＴＧ部１２１Ａと、ホスト部１２２Ａと、ペリフェラル部１２３Ａとを有する。
【００８５】
ＯＴＧ部１１１Ａ，１２１Ａ、ホスト部１１２Ａ，１２２Ａ、ペリフェラル部１１３Ａ，１２３Ａは、それぞれ、既に述べたＯＴＧ部１１１、ホスト部１１２、ペリフェラル部１１３と同様な機能を有する。
ただし、図１１の例では、ホスト部１１２Ａ，１２２Ａおよびペリフェラル部１１３Ａ，１２３Ａの通信速度がそれぞれ決められている。すなわち、ホスト部１１２Ａはフルスピード、ペリフェラル部１１３Ａはハイスピード、ホスト部１２２Ａはハイスピード、ペリフェラル部１２３Ａはハイスピードでそれぞれ通信可能である。
【００８６】
［制御部２１Ａ，２２Ａ］
制御部２１Ａは、既に述べた制御部２１，２２と同様に、通信装置１０１Ａの全体的な動作の制御に関わる種々の処理を行う。
【００８７】
また、制御部２１Ａは、通信処理部１１Ａが第１のモードで起動する場合、すなわち通信装置１０１ＡがＡデバイスの場合、第２のモードで動作するペリフェラル機器から、第１のモードにおけるペリフェラル機器の通信速度の情報を取得するように、通信処理部１１Ａを制御する。そして、取得したペリフェラル機器の通信速度の情報と、記憶部３１Ａに記憶される通信装置１０１Ａ自身の第１のモードにおける通信速度の情報とに基づいて、ペリフェラル機器と動作モードを交替した場合に通信速度が高速化するか否かを判定する。通信速度が高速化すると判定した場合は、ＨＮＰによってペリフェラル機器と動作モードを交替するように、通信処理部１１Ａを制御する。
【００８８】
一方、制御部２１Ａは、通信処理部１１Ａが第２のモードで起動する場合、すなわち通信装置１０１ＡがＢデバイスの場合、第１のモードで動作するホスト機器の制御に従って、記憶部３１Ａに記憶される通信装置１０１自身の通信速度の情報を通信処理部１１Ａから送信させる。この通信速度の情報は、ホスト機器において、動作モード交替により通信速度が高速化するか否かの上述した判定を行う際に用いられる。
【００８９】
制御部２２Ａは、通信装置１０２Ａにおいて、上述した制御部２１Ａと同様な機能を有する。
【００９０】
［記憶部３１Ａ，３２Ａ］
記憶部３１Ａは、既に述べた記憶部３１，３２と同様に、通信処理部１１Ａにおいて送受信されるデータや、通信処理に必要とされる種々の情報（デスクリプタ等）を記憶する。
【００９１】
また、記憶部３１Ａに記憶されるデスクリプタには、通信装置１０１Ａの第１のモードにおける通信速度の情報を含んだデスクリプタが記憶される。このデスクリプタの構造例については、後に図１３を参照して説明する。
【００９２】
記憶部３２Ａは、通信装置１０２Ａにおいて、上述した記憶部３１Ａと同様な機能を有する。
【００９３】
ここで、上述した構成を有する図１１に示す通信装置の動作を説明する。ここでは例として、図１に示すように、通信装置１０１Ａと通信装置１０２Ａとが通信ケーブル５０で接続されており、通信装置１０１ＡがＡデバイス、通信装置１０２ＡがＢデバイスとして起動するものとする。
【００９４】
図１２は、Ａデバイスとして動作する通信装置１０１Ａの動作の一例を示すフローチャートである。
【００９５】
まず、制御部２１Ａは、エニュメレーションの過程において、通信相手（通信装置１０２Ａ）からデスクリプタを取得し（ステップＳＴ３１）、これを記憶部３１Ａに格納する（ステップＳＴ３２）。
【００９６】
次に、制御部２１Ａは、通信相手から取得したデスクリプタの中に、通信速度の情報を含んだ所定のデスクリプタが存在するか否かを調べる（ステップＳＴ３３）。
【００９７】
ここでは、通信装置の通信速度の情報を含む所定のデスクリプタを、ＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタと呼ぶことにする。
図１３は、このＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタのデータ構造の一例を示す図である。
【００９８】
図１３に示すＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタは、通信装置が第１のモードで動作するときに対応している全てのクラスとその通信速度の情報を格納する。
図１３に示すように、データフィールドとして、先頭から順に‘デスクリプタ長’、‘デスクリプタタイプ’、‘デスクリプタインデックス’、‘サポートするクラス数（ロースピード）Ｎｃ＿ｌｓ’、‘サポートするクラス数（フルピード）Ｎｃ＿ｆｓ’、‘サポートするクラス数（ハイスピード）Ｎｃ＿ｈｓ’を有しており、以降は、ロースピード、フルスピード、ハイスピードの順で、‘サポートするクラスコード／サブクラスコード’を有する。
‘デスクリプタ長’、‘デスクリプタタイプ’、‘デスクリプタインデックス’の各フィールドの意味は、上述したＯＴＧ  Ｐｏｗｅｒデスクリプタと同じである。
‘サポートするクラス数’には、それぞれの通信速度で通信可能なクラスの数が格納される。例えば、‘サポートするクラス数（ロースピード）Ｎｃ＿ｌｓ’には、ロースピードで通信可能なクラスの数が格納される。
‘サポートするクラスコード／サブクラスコード’には、通信装置が第１のモードで動作するときに対応しているクラスコードおよびサブクラスコードが格納される。クラスコード、サブクラスコードは、ＵＳＢにおいて通信仕様が類似する機器ごとに与えられた固有のコードである。
【００９９】
このようなＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタが通信相手（通信装置１０２Ａ）から得られた場合、制御部２１Ａは、取得した通信相手のＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタの‘サポートするクラスコード／サブクラスコード’を調べて、通信に利用する予定のクラスのコードがこの中に含まれているか否かを調べる（ステップＳＴ３４）。
【０１００】
利用予定のクラスのコードが含まれている場合、制御部２１Ａは、通信相手から取得したＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタおよび第２のモード時の通信速度情報と、記憶部３１Ａに予め記憶されている通信装置１０１Ａ自身のＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタおよび第２のモード時の通信速度情報とに基づいて、動作モードを交替する場合としない場合の通信速度を比較する（ステップＳＴ３５）。すなわち、制御部２１Ａは、通信に利用する予定のクラスにおいて、通信装置１０１Ａが第１のモード、通信相手が第２のモードで動作したときの通信速度と、通信装置１０１Ａが第２のモード、通信相手が第１のモードで動作したときの通信速度とを比較する。
そして、この比較の結果から、通信相手と動作モードを交替した場合に通信速度が速くなるか否かを判定する（ステップＳＴ３６）。
【０１０１】
図１４は、ＡデバイスとＢデバイスのＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタの具体例を示す図である。
この図によると、例えばクラスコードが０ｘ０８、サブクラスコードが０ｘ０６で表されるクラス（ＵＳＢでは、マスストレージクラスにこのコードが割り当てられている）を利用して通信を行う場合、Ａデバイスがホストの場合は最大でフルスピードの通信が可能であるのに対し、Ｂデバイスがホストの場合は最大でハイスピードの通信が可能であることが分かる。したがって、この場合、制御部２１Ａは、通信相手と動作モードを交替した場合に通信速度が速くなると判定する。
【０１０２】
動作モードの交替によって通信速度が速くなると判定した場合、制御部２１Ａは、Ｂデバイスの通信相手に対して動作モード交替の許可を通知する（ステップＳＴ３７）。この通知に対して通信相手から肯定応答が来ると、制御部２１Ａは、ＨＮＰによる動作モードの交替処理を実行する（ステップＳＴ３８）。
【０１０３】
なお、通信相手から取得したデスクリプタにＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタが含まれていない場合や、利用予定のクラスのコードがＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタの中に含まれていない場合（すなわち、通信相手が第１のモードで動作する際に所定の通信仕様に従って通信を行うことが可能であることを示す情報がＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタの中に含まれていない場合）、または、動作モードの交替によって通信速度が速くならないと判定した場合、制御部２１Ａは、ＨＮＰによる動作モードの交替処理を実行せずに、動作モードを維持する。
【０１０４】
図１５は、Ａデバイス（通信装置１０１Ａ）とＢデバイス（通信装置１０２Ｂ）との間の通信手順の一例を説明するための図である。
【０１０５】
Ａデバイスは、Ｂデバイスがバスに接続されたことを検出すると、上述したエニュメレーションを実行する。エニュメレーションにおいて、Ａデバイスは、ＵＳＢの標準リクエスト‘Ｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）’をＢデバイスに送信する（ステップＳＴ４１）。
【０１０６】
Ｂデバイスは、このリクエストを受けると、‘コンフィグレーション・デスクリプタ’とこれに関連するデスクリプタ、並びに‘ＯＴＧデスクリプタ’をＡデバイスに送信する。
本実施形態に係る通信装置（１０１Ａ，１０２Ａ）は、この‘ＯＴＧデスクリプタ’に加えて、更に上述のＯＴＧ  Ｈｏｓｔ  ＣｌａｓｓデスクリプタをＡデバイスに送信する（ステップＳＴ４２）。
ＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタは、ＵＳＢ２．０およびＯＴＧの規格に準拠した方法で、ＡデバイスからＢデバイスへ送信される。
【０１０７】
Ａデバイスは、この取得したＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタと自らが保有するＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタとにおける通信速度の情報に基づいて、動作モードの交替により通信速度が速くなるか否かを判定し、通信速度が速くなると判定した場合、ＯＴＧで追加された、標準リクエストの‘Ｓｅｔ  Ｆｅａｔｕｒｅ（ｂ＿ｈｎｐ＿ｅｎａｂｌｅ）’をＢデバイスに送信する（ステップＳＴ４３）。このリクエストを受けると、Ｂデバイスは、動作モードの交替が許可されたことを認識し、Ａデバイスへ肯定応答を返す。
Ｂデバイスから肯定応答を受けると、Ａデバイスはバスをサスペンド状態に設定して、通信を停止する（ステップＳＴ４４）。Ｂデバイスにおいてバスのサスペンド状態が認識されると、ＡデバイスとＢデバイスの双方でＨＮＰによる動作モードの交替が行われ、Ａデバイスは第２のモード、Ｂデバイスは第１のモードに動作モードを切り替える（ステップＳＴ４５）。
【０１０８】
以上説明したように、本実施形態に係る通信装置（１０１Ａ，１０２Ａ）によれば、第１のモードで起動した場合、制御部（２１Ａ，２２Ａ）の制御によって、第２のモードで動作する通信相手から、第１のモードにおける該通信相手の通信性能の情報（例えばＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタ）が取得される。そして、制御部（２１Ａ，２２Ａ）において、この取得された通信相手のＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタと、記憶部（３１Ａ，３２Ａ）に記憶される自らの通信装置のＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタとに基づいて、動作モードの交替を行った場合に通信速度が速くなるか否かの判定が行われる。この判定の結果、通信速度が速くなると判定された場合、制御部（２１Ａ，２２Ａ）の指示によって、ＨＮＰによる動作モードの交替の許可が通信相手に通知され、ＨＮＰによる動作モードの交替が実行される。
したがって、通信速度がより速くなるようにＡデバイスとＢデバイスの動作モードが適切に設定されるため、通信速度の更なる高速化を図ることができる。
【０１０９】
また、ＵＳＢ２．０やＯＴＧの規格に準拠した方法により動作モードの交替を行うことができる点や、制御部（２１Ａ，２２Ａ）をコンピュータによって実現できる点については、既に述べた通信装置１０１，１０２と同じであり、これと同様な効果を奏することができる。
【０１１０】
なお、上述の実施形態では、ＡデバイスおよびＢデバイスの速度に関連する情報として、第１のモードにおける速度の情報を含んだＯＴＧ  Ｈｏｓｔ  Ｃｌａｓｓデスクリプタを利用している。利用予定のクラスにおける第２のモード時の通信速度が２つの通信装置において共にハイスピードである場合、第１のモードにおける通信速度のみを比較することで通信速度の判定は可能であるが、第２のモード時の通信速度がハイスピードでない通信装置を含む場合は、第２のモード時における通信速度も考慮する必要がある。
この場合、Ａデバイスの制御部（２１Ａ，２２Ａ）は、通信相手から取得される、通信相手が第１のモードおよび第２のモードの各モードで動作するときの通信速度の情報と、記憶部（３１Ａ，３２Ａ）に記憶される、自らの通信装置が第１のモードおよび第２のモードの各モードで動作するときの通信速度の情報とに基づいて、通信相手と動作モードを交替した場合に通信速度が速くなるか否かを判定し、この判定の結果に応じて動作モードの交替を実行しても良い。この場合に通信相手から取得する通信速度の情報は、デスクリプタ形式のデータでも良いし、その他、バスの信号線の電圧差によってＢデバイスからＡデバイスに伝送される信号でも良い。
【０１１１】
以上、本発明の好ましい幾つかの実施形態について述べたが、本発明はこれらの実施形態に限定されるものではなく、この他にも種々のバリエーションを含む。
【０１１２】
例えば、通信装置の構成や、ＨＮＰ時の動作、デスクリプタの内容などについては、上述の他にも様々な形態が可能である。
また、上述したフローチャートや通信手順も一例であり、動作モードによる消費電力や通信速度の違いを基にした様々な形態が可能である。
【０１１３】
ＵＳＢでは、種々の機能の利用やデータ伝送の主導権をホスト機器が有しているため、ユーザの意向も考慮しながら動作モードの交替を行うか否かの判定を行うことが必要な場合が生じ得る。そこで、動作モードの交替を行う際に、所定のユーザーインターフェース装置を通じて、ユーザの承認を得ても良い。
すなわち、上述した動作モードの交替の条件が成立した場合、制御部は、ユーザーインターフェース装置を通じてユーザに動作モードの交替を行うか否かの確認を求める通知を行い、この確認の通知に対する許可の応答がユーザーインターフェース装置に入力された場合に、動作モードの交替を実行しても良い。
また、この確認通知の際に、例えば、動作モードを交替する場合としない場合とにおける通信性能の情報（消費電力や通信速度の情報など）をユーザーインターフェース装置に表示させて、ユーザが動作モードの交替の可否を決定する際の判断に役立てても良い。
【０１１４】
上述した実施形態では、動作モードの交替によって消費電力や通信速度を向上させる例が示されているが、この他にも、動作モードの交替によって変化する種々の通信性能の情報に基づいて、動作モードを交替した場合に通信性能が改善するか否かの判定を行っても良い。
【０１１５】
上述した各実施形態における通信装置の各構成は、その少なくとも一部をコンピュータとプログラムに基づくソフトウェアによって実現しても良いし、ソフトウェアとハードウェアとの組み合わせによって実現しても良いし、あるいは、全てをハードウェアによって実現しても良い。
【０１１６】
上述した実施形態では、ＵＳＢおよびＯＴＧに準拠した通信を行う通信装置を例に挙げているが、本発明はこれに限定されない。例えば、バスを介して通信を行う際の動作モードを、バス上におけるデータの伝送を制御する第１のモードから、該第１のモードで動作する通信相手の制御に従って通信を行う第２のモードへ切り替えることが可能な他の種々の通信プロトコルの準拠する通信装置にも、本発明は適用可能である。
【図面の簡単な説明】
【０１１７】
【図１】本発明の実施形態に係る通信システムの構成例を示す図である。
【図２】図１に示す通信装置における通信処理部の構成例を示す図である。
【図３】通信処理部における動作モードの交替の動作を説明するための図である。
【図４】Ａデバイスとして動作する図２に示す通信装置の動作の一例を示すフローチャートである。
【図５】消費電力の情報を含んだ、第１の実施形態に係るデスクリプタのデータ構造の一例を示す図である。
【図６】図５に示すデスクリプタの具体例を示す第１の図である。
【図７】第１の実施形態に係る通信システムにおけるＡデバイスとＢデバイスとの間の通信手順の一例を説明するための図である。
【図８】図５に示すデスクリプタの具体例を示す第２の図である。
【図９】図５に示すデスクリプタの具体例を示す第３の図である。
【図１０】消費電力および通信速度の情報を含んだ、第１の実施形態に係るデスクリプタのデータ構造の一例を示す図である。
【図１１】第２の実施形態に係る通信装置の構成例を示す図である。
【図１２】Ａデバイスとして動作する図１１に示す通信装置の動作の一例を示すフローチャートである。
【図１３】第１のモード時に利用可能なクラスとその通信速度の情報を含んだ、第２の実施形態に係るデスクリプタのデータ構造の一例を示す図である。
【図１４】図１３に示すデスクリプタの具体例を示す図である。
【図１５】第２の実施形態に係る通信システムにおけるＡデバイスとＢデバイスとの間の通信手順の一例を説明するための図である。
【符号の説明】
【０１１８】
１１，１２，１１Ａ，１２Ａ…通信処理部、２１，２２，２１Ａ，２２Ａ…制御部、３１，３２，３１Ａ，３２Ａ…記憶部、４１，４２…レセプタクル端子、５０…通信ケーブル、５１…Ｍｉｎｉ−Ａプラグ端子、５２…Ｍｉｎｉ−Ｂプラグ端子、１０１，１０２，１０１Ａ，１０２Ａ…通信装置。
【図１】
2005250671.tif 000003
【図２】
2005250671.tif 000004
【図３】
2005250671.tif 000005
【図４】
2005250671.tif 000006
【図５】
2005250671.tif 000007
【図６】
2005250671.tif 000008
【図７】
2005250671.tif 000009
【図８】
2005250671.tif 000010
【図９】
2005250671.tif 000011
【図１０】
2005250671.tif 000012
【図１１】
2005250671.tif 000013
【図１２】
2005250671.tif 000014
【図１３】
2005250671.tif 000015
【図１４】
2005250671.tif 000016
【図１５】
2005250671.tif 000017