(58)【調査した分野】(Int.Cl.,DB名)
高速通信モードと低速通信モードとを有するデータ通信方式でデータ通信をする際、外部デバイスがホストコンピュータに接続された場合に、上記ホストコンピュータがデータ通信の速度モードを上記低速通信モードに設定する第1のステップと、
上記ホストコンピュータが上記外部デバイスを特定するためのIDである特定情報を上記外部デバイスから取得する第2のステップと、
上記第2のステップで取得された上記外部デバイスの特定情報が、上記高速通信モードでデータ通信をした場合に通信エラーの発生が予想される不適合外部デバイスの特定情報のリストを記憶したリスト記憶部に記憶されているか否かを上記ホストコンピュータが判定する第3のステップと、
上記第3のステップで特定情報が上記リスト記憶部に記憶されていると判定された場合は上記データ通信の速度モードを上記低速通信モードの設定に維持する一方、上記第3のステップで特定情報が上記リスト記憶部に記憶されていないと判定された場合はバスリセットを行い、上記データ通信の速度モードを再設定する第4のステップとを有することを特徴とする通信速度制御方法。
【背景技術】
【0002】
従来、パーソナルコンピュータやナビゲーション装置などのホストコンピュータと、外部デバイスとしての各種の周辺機器とを接続してデータ通信を行うための規格として、USB(Universal Serial Bus)が普及している。例えばUSB2.0では、通信速度が早い順にハイスピードモード(以下、HSモードという)、フルスピードモード(以下、FSモードという)、ロースピードモード(以下、LSモードという)の3種類の通信速度が決められている。
【0003】
USB2.0に対応したホストコンピュータ(以下、USBホストという)および外部デバイス(以下、USBデバイスという)は、これら3種類の通信速度の何れかでデータ通信を行うことができる。一般に、USBホストは、USBデバイスの接続を検出すると、バスをリセット状態(D+とD−という2つの信号線を両方ともローレベルとする状態)にした後、Chirpと呼ばれるハンドシェイク処理を実行し、通信速度を決定する。このとき、HSモード対応のUSBデバイスが接続された場合には通信速度はHSとなり、FSモード対応のUSBデバイスが接続された場合には通信速度がFSとなる。
【0004】
通信速度の決定後、USBホストがUSBデバイスから初期化に必要な情報を取得し、USBデバイスを使用できるように処理を実行する。その後、USBホストおよびUSBデバイスはデータのやり取りを行う。USBのデータ転送方式には、コントロール転送、インタラプト転送、バルク転送、アイソクロナス転送の4種類がある。
【0005】
コントロール転送は、USBデバイスの基本的な制御を行うための転送方式であり、USBデバイスを認識する際などに使用する。インタラプト転送は、データ量が多くないデータを周期的に転送するための方式であり、主にマウスやキーボードといったUSBデバイスと通信する際に使用する。バルク転送は、大量のデータを転送するための方式であり、主にハードディスクのような記憶装置のデータをやり取りする際に使用する。アイソクロナス転送は、データをリアルタイムに転送するための方式であり、主に音楽データや映像データをストリーミング再生する際に使用する。
【0006】
なお、USB2.0の通常の仕様では、HSモードまたはFSモードのUSBデバイスとしてUSBホストに認識されると、リセットをかけるか、再接続するまでは、通信速度の変更は行われない。これに対して、HSモードとFSモードとを切り替えられるようにした技術が提案されている(例えば、特許文献1〜4参照)。
【0007】
特許文献1には、転送するデータの容量や携帯電子機器の電池残量に応じてHSモードとFSモードとを切り替えることが開示されている。特許文献2には、ユーザが切り替えスイッチを操作することによって通信速度を切り替えることが開示されている。特許文献3には、通信のエラー率が所定値以上の場合にHSモードを禁止することが開示されている。特許文献4には、通信品質が劣化して通信不良の状態が一定時間以上続いた場合にHSモードからFSモードに切り替えることが開示されている。
【0008】
また、通信エラーの発生が予想される不適合USBメモリの機種特定情報をUSBホストの記憶部にあらかじめ記憶しておき、USBホストがUSBメモリの接続を検出したときに、USBメモリに記憶されている機種特定情報を取得し、取得した機種特定情報と一致する機種特定情報が記憶部に記憶されていると判定した場合に報知動作を行う技術も提案されている(例えば、特許文献5参照)。
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、USBホストに相性の悪いUSBデバイスを接続すると、HSモードが設定されている場合に、通信中のデータの波形が劣化し、通信エラーが発生することがある。コントロール転送、インタラプト転送、バルク転送の何れかの方式でデータ通信を行っている場合は、通信エラーを検出したときにハードウェアでリトライを行い、再度同様のデータ通信を実施することが可能である。
【0011】
一方、音楽や映像のストリーミング再生時などに行われるアイソクロナス転送の場合は、リアルタイムな転送方式であるため、通信エラーが発生したときのリトライが不可能となっている。そのため、一度通信エラーが発生すると、その通信エラーが発生した部分のデータが欠落し、音切れや映像切れが発生してしまうという問題があった。
【0012】
このような問題に対して、特許文献3,4に記載の技術を用いれば、エラー率が所定値以上になった場合、あるいは通信不良の状態が一定時間以上続いた場合に通信速度をHSモードからFSモードに切り替えることにより、通信品質を上げてデータの欠落を生じさせないようにすることが可能である。
【0013】
しかしながら、特許文献3,4に記載の技術では、HSモードからFSモードに通信速度を切り替える前は、通信品質の悪い状態が続いているので、通信エラーが発生する。そのため、アイソクロナス転送中に通信エラーが発生した場合はデータの欠落が発生し、音切れや映像切れといった現象が発生してしまうという問題は解消できない。
【0014】
また、特許文献5に記載の技術では、通信エラーの発生が予想される不適合USBメモリをUSBホストに接続すると、その時点で報知が行われる。しかしながら、報知が行われるのみで、HSモード対応のUSBデバイスが接続された場合には通信速度はHSモードに設定されるので、実際に通信をするとエラーが発生してしまう。そのため、アイソクロナス転送中に通信エラーが発生した場合はデータの欠落が発生し、音切れや映像切れの問題を解消することはできない。
【0015】
本発明は、このような問題を解決するために成されたものであり、ホストコンピュータと外部デバイスとの間でデータ通信を行う際に、HSモード下での通信エラーに起因するデータの欠落が生じないようにすることを目的とする。
【課題を解決するための手段】
【0016】
上記した課題を解決するために、本発明では、高速通信モードでデータ通信をした場合に通信エラーの発生が予想される不適合外部デバイス
を特定するためのIDである特定情報をリスト記憶部に記憶しておく。そして、外部デバイスがホストコンピュータに接続された場合に、その外部デバイスの特定情報がリスト記憶部に記憶されている不適合外部デバイスの特定情報の何れかと一致するか否かを判定
するとともに、ホストコンピュータと外部デバイスとの間で行われるデータ転送の方式がアイソクロナス転送を含むか否かを判定し、
特定情報が一致すると判定され
、かつ、データ転送の方式がアイソクロナス転送を含むと判定された場合にはデータ通信の速度モードを低速通信モードに設定するようにしている。
また、本発明の他の態様では、外部デバイスがホストコンピュータに接続されたときに、データ通信の速度モードを低速通信モードに設定し、その後で特定情報が一致すると判定された場合はデータ通信の速度モードを低速通信モードの設定に維持する一方、特定情報が一致しないと判定された場合はバスリセットを行い、データ通信の速度モードを再設定するようにしている。
【発明の効果】
【0017】
上記のように構成した本発明によれば、ホストコンピュータに不適合外部デバイスが接続された場合には、実際にデータ通信を開始する前に、データ通信の速度モードが通信エラーの発生しにくい低速通信モードに設定される。そのため、ホストコンピュータと外部デバイスとの間でデータ通信を行う際に、高速通信モード下での通信エラーに起因するデータの欠落が生じないようにすることができる。これにより、例えば音楽や映像のストリーミング再生のためにアイソクロナス転送が行われる場合であっても、通信エラーに起因するデータの欠落を未然に防止でき、音切れや映像切れの発生を回避することができる。
【発明を実施するための形態】
【0019】
(第1の実施形態)
以下、本発明の第1の実施形態を図面に基づいて説明する。
図1は、第1の実施形態による通信速度制御装置を適用した通信システムの概略的な構成例を示す図である。
図1に示すように、本実施形態の通信システムは、USBデバイス10(特許請求の範囲の外部デバイスに相当)とUSBホスト20(特許請求の範囲のホストコンピュータに相当)とを備え、その両者をUSBケーブル30により接続可能に構成されている。
【0020】
USBデバイス10は、特定情報記憶部11、USBデバイスコントローラ12およびUSBデバイスアプリケーション13を備えている。USBホスト20は、USBホストコントローラ21、リスト記憶部22およびUSBホストアプリケーション23を備えている。USBホスト20のUSBホストコントローラ21およびリスト記憶部22により本実施形態の通信速度制御装置が構成されている。
【0021】
特定情報記憶部11は、USBデバイス10を特定するための特定情報を記憶している。特定情報は、ベンダーIDおよびプロダクトIDを含んで構成されるものである。ベンダーIDは、USBデバイス10を製造するベンダーに固有の値である。プロダクトIDは、USBデバイス10が持つ固有の値であり、ベンダー毎に管理されている。
【0022】
USBデバイスコントローラ12は、USBホスト20からの指令によりHSモードまたはFSモードの何れかに通信速度を設定し、設定した通信速度でUSBホスト20との間でデータ通信を行う。例えば、USBデバイスコントローラ12は、USBホスト20からの要求に応じて、特定情報記憶部11から読み出した特定情報をUSBホスト20に送信する。また、USBデバイスコントローラ12は、USBデバイスアプリケーション13で生成されたデータをUSBホスト20に送信したり、USBホスト20から送られてくるデータを受信したりする。
【0023】
USBデバイスアプリケーション13は、USBデバイス10の機能を実現させるアプリケーションソフトウェアの実行部である。例えば、USBデバイス10がUSBメモリのような記憶媒体である場合、USBデバイスアプリケーション13は、データを読み書きするための機能、データを転送するための機能をソフトウェアによって実現させる。また、USBデバイス10がスマートフォンである場合、USBデバイスアプリケーション13は、例えば、音楽や映像などのデータを再生するための機能をソフトウェアによって実現させる。
【0024】
USBホストコントローラ21は、HSモードまたはFSモードの何れかに通信速度を設定し、設定した通信速度でUSBデバイス10との間でデータ通信を行う。例えば、USBホストコントローラ21は、USBデバイス10に対して特定情報の送信要求を行い、その応答としてUSBデバイス10から送られてくる特定情報を受信する。また、USBホストコントローラ21は、USBデバイスアプリケーション13で生成されたデータをUSBデバイス10から受信したり、USBホストアプリケーション23で生成されたデータをUSBデバイス10に送信したりする。
【0025】
リスト記憶部22は、HSモードでデータ通信をした場合に通信エラーの発生が予想される1以上のUSBデバイス10(以下、不適合外部デバイスという)を特定するための特定情報をリストとして記憶する。不適合外部デバイスの特定情報も、特定情報記憶部11に記憶されている特定情報と同様に、ベンダーIDおよびプロダクトIDを含んで構成されている。このリスト記憶部22には、いくつかの不適合外部デバイスの特定情報が初期状態からあらかじめ記憶されている。また、後述するように、初期状態で記憶されているもの以外の不適合外部デバイスの特定情報が必要に応じて追加して記憶される。
【0026】
USBホストアプリケーション23は、USBホスト20の様々な機能を実現させるアプリケーションソフトウェアまたはドライバソフトウェアの実行部である。これらのソフトウェアは、USBデバイス10が持つUSBデバイスアプリケーション13の実行に連携するために必要なものであり、例えば、USBデバイス10がUSBホスト20に最初に接続されたときに、そのUSBデバイス10からUSBホスト20に自動的にインストールされる。または、ユーザによる手動操作によって、USBデバイス10とは別に用意された記録媒体からUSBホスト20にインストールされる。
【0027】
図2は、第1の実施形態によるUSBホストコントローラ21が備える機能構成例を示すブロック図である。
図2に示すように、USBホストコントローラ21は、その機能構成として、接続検出部201、特定情報取得部202、デバイス判定部203、通信速度制御部204、データ通信部205、エラー監視部206および記憶制御部207を備えている。
【0028】
接続検出部201は、USBデバイス10がUSBホスト20に接続されたことを検出する。特定情報取得部202は、USBデバイス10がUSBホスト20に接続されたことが接続検出部201により検出された場合に、USBデバイス10の特定情報を当該USBデバイス10から取得する。すなわち、特定情報取得部202は、通信速度制御部204によって強制的に設定されたFSモードでUSBデバイス10との間でコントロール転送を行い、USBデバイス10を初期化する。この初期化の際に、特定情報取得部202はUSBデバイス10に対して特定情報の送信要求を行い、USBデバイス10の特定情報をUSBデバイス10から取得する。
【0029】
デバイス判定部203は、特定情報取得部202により取得されたUSBデバイス10の特定情報が、リスト記憶部22に記憶されている不適合外部デバイスの特定情報の何れかと一致するか否かを判定する。具体的には、デバイス判定部203は、特定情報に含まれるベンダーIDが一致するか否かを判定する。または、デバイス判定部203は、特定情報に含まれるベンダーIDおよびプロダクトIDの両方が一致するか否かを判定するようにしてもよい。
【0030】
通信速度制御部204は、USBデバイス10との間で行うデータ通信の速度を制御する。USBデバイス10がUSBホスト20に接続された直後の初期状態では、通信速度制御部204は通信速度をFSモードに設定する。すなわち、通信速度制御部204は、USBデバイス10がUSBホスト20に接続されたときは、そのUSBデバイス10がHSモード対応かFSモード対応かによらず、データ通信の速度をFSモードに強制的に設定する。
【0031】
また、通信速度制御部204は、USBデバイス10の特定情報が不適合外部デバイスの特定情報の何れかと一致するとデバイス判定部203により判定された場合に、通信速度をFSモードの設定に維持する。一方、USBデバイス10の特定情報が不適合外部デバイスの特定情報と一致しないとデバイス判定部203により判定された場合、通信速度制御部204は、いったんバスリセットしてハンドシェイク処理を実行し、通信速度を再設定する。このとき、USBデバイス10がHSモード対応の場合には通信速度はHSモードとなり、FSモード対応の場合には通信速度はFSモードとなる。
【0032】
データ通信部205は、通信速度制御部204により設定された通信速度(HSモードまたはFSモードの何れか)で、USBデバイス10との間でデータ通信を行う。このとき、インタラプト転送、バルク転送、アイソクロナス転送の何れの方式でデータ通信を行うかは、どのようなUSBデバイス10が接続されているか、すなわち、実行されるUSBデバイスアプリケーション13がどのようなものかによって異なる。例えば、マウスやキーボードといったUSBデバイス10と通信する場合はインタラプト転送、USBメモリといったUSBデバイス10と通信する場合はバルク転送、スマートフォンなどのUSBデバイス10との間で音楽データや映像データをストリーミング再生する場合にはアイソクロナス転送によってデータ通信を行う。
【0033】
エラー監視部206は、データ通信部205がHSモードでデータ通信を実行している際に、通信エラーの発生を監視する。記憶制御部207は、エラー監視部206により通信エラーの発生が検出された場合に、そのときUSBホスト20に接続されているUSBデバイス10について特定情報取得部202により取得された特定情報を、不適合外部デバイスの特定情報としてリスト記憶部22に追加して記憶させる。
【0034】
ここでは、通信エラーの発生が検出された場合にUSBデバイス10を不適合外部デバイスとしてその特定情報をリスト記憶部22に記憶させているが、この例に限定されるものではない。例えば、コントロール転送、インタラプト転送、バルク転送が行われているときに通信エラーが発生した場合は、リトライが行われる。このリトライによってもデータ通信が正常に行われずにタイムアウトになった場合に、USBデバイス10を不適合外部デバイスとしてその特定情報をリスト記憶部22に記憶させるようにしてもよい。
【0035】
または、所定時間内におけるエラー発生率を測定し、エラー発生率が所定値以上となった場合に、USBデバイス10を不適合外部デバイスとしてその特定情報をリスト記憶部22に記憶させるようにしてもよい。この例によれば、リトライが行われないアイソクロナス転送が行われている場合にも適用することが可能である。
【0036】
図3は、上記のように構成したUSBホストコントローラ21の通信速度制御に関する動作例を示すフローチャートである。
図3に示すフローチャートは、USBデバイス10がUSBホスト20に接続されたことが接続検出部201により検出されたときに開始する。
【0037】
図3において、通信速度制御部204は、データ通信の速度をFSモードに設定する(ステップS1)。また、特定情報取得部202は、FSモードでUSBデバイス10との間でコントロール転送を行い、USBデバイス10を初期化することにより、USBデバイス10の特定情報をUSBデバイス10から取得する(ステップS2)。
【0038】
次に、デバイス判定部203は、特定情報取得部202により取得されたUSBデバイス10の特定情報が、リスト記憶部22に記憶されている不適合外部デバイスの特定情報の何れかと一致するか否か(すなわち、USBデバイス10の特定情報がリスト記憶部22に記憶されているか否か)を判定する(ステップS3)。
【0039】
ここで、USBデバイス10の特定情報がリスト記憶部22に記憶されていないとデバイス判定部203にて判定された場合は、
図3の処理を終了する。この場合、通信速度制御部204は、データ通信の速度をFSモードの設定に維持することになる。
【0040】
一方、USBデバイス10の特定情報がリスト記憶部22に記憶されていないとデバイス判定部203にて判定された場合、通信速度制御部204はいったんバスリセットし(ステップS4)、その後ハンドシェイク処理を行うことによってUSBデバイス10を接続し直し(ステップS5)、これによってデータ通信の速度を再設定する(ステップS6)。
【0041】
以上詳しく説明したように、第1の実施形態では、HSモードでデータ通信をした場合に通信エラーの発生が予想される不適合外部デバイスの特定情報をリスト記憶部22に記憶しておく。そして、USBデバイス10がUSBホスト20に接続された場合に、そのUSBデバイス10の特定情報がリスト記憶部22に記憶されている不適合外部デバイスの特定情報の何れかと一致した場合には、データ通信の速度をFSモードに設定するようにしている。
【0042】
このように構成した第1の実施形態によれば、USBホスト20に不適合外部デバイスが接続された場合には、通信エラーの発生しにくいFSモードに設定される。そのため、USBデバイス10とUSBホスト20との間でデータ通信を行う際に、HSモード下での通信エラーに起因するデータの欠落が生じないようにすることができる。これにより、例えば音楽や映像のストリーミング再生のためにアイソクロナス転送が行われる場合であっても、通信エラーに起因するデータの欠落を未然に防止することができ、音切れや映像切れの発生を回避することができる。
【0043】
また、第1の実施形態では、HSモードで実際にデータ通信を実行している際に通信エラーの発生を検出した場合に、そのときUSBホスト20に接続されているUSBデバイス10の特定情報を、不適合外部デバイスの特定情報としてリスト記憶部22に追加して記憶させるようにしている。
【0044】
このような構成により、あらかじめ不適合外部デバイスとして想定されていない(リスト記憶部22に初期状態で特定情報が記憶されていない)USBデバイス10であっても、HSモード下で通信エラーを発生させやすいUSBデバイス10であれば、一度USBホスト20に接続してHSモードでデータ通信を行った後は、不適合外部デバイスとして特定情報がリスト記憶部22に加えられることとなる。これにより、その後の接続時には必ずFSモードにてデータ通信を行うことができるようになり、通信エラーに起因するデータの欠落を防止することができる。
【0045】
また、第1の実施形態では、USBデバイス10がUSBホスト20に接続されたときには通信速度をHSモードではなくFSモードに強制的に設定し、その後、USBデバイス10が不適合外部デバイスでないと判定された場合に通信速度を再設定するようにしている。これにより、USBデバイス10がUSBホスト20に接続された直後に特定情報取得部202がUSBデバイス10の初期化処理を実行するときには必ず、FSモードでコントロール転送をすることができるので、通信エラーを起こしてUSBデバイス10から特定情報を取得できなくなる不都合を確実に回避することができる。
【0046】
(第2の実施形態)
次に、本発明の第2の実施形態を図面に基づいて説明する。第2の実施形態による通信速度制御装置を適用した通信システムの構成は、
図1と同様である。
図4は、第2の実施形態によるUSBホストコントローラ21が備える機能構成例を示すブロック図である。なお、この
図4において、
図2に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【0047】
図4に示すように、第2の実施形態においてUSBホストコントローラ21は、ダイアログ表示部211、ケーブル長入力部212およびケーブル長判定部213を更に備えている。また、第2の実施形態においてUSBホストコントローラ21は、通信速度制御部204の代わりに、機能が異なる通信速度制御部204’を備えている。
【0048】
ダイアログ表示部211は、USBデバイス10の特定情報が、リスト記憶部22に記憶されている不適合外部デバイスの特定情報の何れかと一致するとデバイス判定部203により判定された場合に、USBデバイス10とUSBホスト20との間を繋ぐUSBケーブル30のケーブル長を入力するためのダイアログ画面をUSBホスト20のディスプレイ(図示せず)に表示させる。
図5は、ダイアログ画面の一例を示す図である。
【0049】
ケーブル長入力部212は、ユーザがダイアログ画面に対して行う操作を通じて、USBケーブル30の長さを特定するケーブル長情報の入力を受け付ける。ケーブル長判定部213は、ケーブル長入力部212により入力されたケーブル長情報により特定されるケーブル長が所定値(例えば、1.5m)以上か否かを判定する。
【0050】
通信速度制御部204’は、USBデバイス10の特定情報が不適合外部デバイスの特定情報の何れかと一致するとデバイス判定部203により判定され、かつ、ケーブル長判定部213によりケーブル長が所定値以上であると判定された場合に、データ通信の速度をFSモードの設定に維持する。
【0051】
一方、USBデバイス10の特定情報が不適合外部デバイスの特定情報と一致しないとデバイス判定部203により判定された場合、または、ユーザにより入力されたUSBケーブル30のケーブル長が所定値以上ではないとケーブル長判定部213により判定された場合に、通信速度制御部204’は、いったんバスリセットしてハンドシェイク処理を実行し、通信速度を再設定する。
【0052】
USBホスト20に接続されたUSBデバイス10が不適合外部デバイスであっても、常に通信エラーが発生するとは限らない。すなわち、USBケーブル30が短いときには通信エラーは殆ど発生せず、USBケーブル30が長くなると通信エラーが発生しやすくなる場合がある。USBケーブル30が長いと、ケーブル内を通信しているデータが外来ノイズの影響を受けやすくなるからである。
【0053】
以上のように構成した第2の実施形態によれば、USBホスト20に接続されたUSBデバイス10が不適合外部デバイスであっても、接続されるUSBケーブル30の長さが所定値以上の場合に限って、通信速度が強制的にFSモードに設定される。逆に、USBケーブル30の長さが所定値未満であれば、ハンドシェイク処理によってUSBデバイス10に対応した通信速度(HSモードまたはFSモード)に設定される。これにより、USBケーブル30が短くて通信エラーが発生しにくい場合にまで、通信速度の遅いFSモードに強制的に設定してしまうことを防ぐことができる。
【0054】
なお、上記第2の実施形態では、USBデバイス10が不適合外部デバイスであり、かつ、USBケーブル30の長さが所定値以上である場合に通信速度を強制的にFSモードとする例について説明したが、これに限定されない。例えば、USBデバイス10が不適合外部デバイスであるか否かを問わず、USBケーブル30の長さが所定値以上である場合に通信速度を強制的にFSモードとするようにしてもよい。不適合外部デバイスでなくても、ケーブル長が長い場合には外来ノイズの影響を受けて通信エラーが生じやすくなることがあるからである。
【0055】
(第3の実施形態)
次に、本発明の第3の実施形態を図面に基づいて説明する。第3の実施形態による通信速度制御装置を適用した通信システムの構成は、
図1と同様である。
図6は、第3の実施形態によるUSBホストコントローラ21が備える機能構成例を示すブロック図である。なお、この
図6において、
図2に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【0056】
図6に示すように、第3の実施形態においてUSBホストコントローラ21は、転送方式判定部221を更に備えている。また、第3の実施形態においてUSBホストコントローラ21は、通信速度制御部204の代わりに、機能が異なる通信速度制御部204”を備えている。
【0057】
転送方式判定部221は、USBデバイス10とUSBホスト20との間でデータ通信部205により行われるデータ通信の方式がアイソクロナス転送か否かを判定する。上述したように、USBデバイス10とUSBホスト20との間で行われるデータ通信の方式は、どのようなUSBデバイス10が接続されているか、すなわち、実行されるUSBデバイスアプリケーション13がどのようなものかによって異なる。
【0058】
そこで、転送方式判定部221は、実行されるUSBデバイスアプリケーション13またはこれと連携して動作するUSBホストアプリケーション23の種類をもとに、データ通信の方式が少なくともアイソクロナス転送を含むか否かを判定する。例えば、実行されるUSBデバイスアプリケーション13またはUSBホストアプリケーション23が音楽または映像のストリーミング再生を行う種類のものであれば、データ通信の方式はアイソクロナス転送を含むものであると判定する。
【0059】
通信速度制御部204”は、USBデバイス10の特定情報が不適合外部デバイスの特定情報の何れかと一致するとデバイス判定部203により判定され、かつ、データ通信の方式がアイソクロナス転送を含むと転送方式判定部221により判定された場合に、データ通信の速度をFSモードの設定に維持する。
【0060】
一方、USBデバイス10の特定情報が不適合外部デバイスの特定情報と一致しないとデバイス判定部203により判定された場合、または、データ通信の方式がアイソクロナス転送を含まないと転送方式判定部221により判定された場合に、通信速度制御部204”は、いったんバスリセットしてハンドシェイク処理を実行し、通信速度を再設定する。
【0061】
データ通信の方式がコントロール転送、インタラプト転送、バルク転送の場合は、一度通信エラーが発生しても、リトライを行うことよってデータを正常に通信できる可能性がある。しかし、アイソクロナス転送の場合はリトライができない。そこで、第3の実施形態のように、アイソクロナス転送を含む場合に限って通信速度を強制的にFSモードに設定することにより、リトライができる転送方式だけの場合にまで、通信速度の遅いFSモードに強制的に設定してしまうことを防ぐことができる。
【0062】
なお、コントロール転送、インタラプト転送、バルク転送の場合はリトライが可能であると言っても、通信エラーが頻発すると、タイムアウト時間内にリトライが完了できず通信ができない状態になってしまうこともある。そこで、データ通信の方式がコントロール転送、インタラプト転送、バルク転送のため通信速度がHSモードに設定された場合に、通信エラー発生後のリトライによってもデータ通信が正常に行われなかったときには、タイムアウトになる前に、通信速度をHSモードからFSモードに強制的に切り替えるようにしてもよい。タイムアウトになる前に通信速度を切り替えれば、次のリトライは成功する可能性があり、通信エラーによるデータの欠落を防止することができる。
【0063】
なお、この第3の実施形態に上記第2の実施形態を組み合わせて適用してもよい。この場合、通信速度制御部は、USBデバイス10の特定情報が不適合外部デバイスの特定情報の何れかと一致すると判定され、ケーブル長が所定値以上であると判定され、かつ、データ通信の方式がアイソクロナス転送を含むものであると判定された場合に、データ通信の速度をFSモードの設定に維持する。それ以外の場合は、バスリセットおよびハンドシェイク処理を実行して通信速度を再設定する。
【0064】
その他、上記第1〜第3の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。