(57)【特許請求の範囲】
【請求項１】
高速通信モードと低速通信モードとを有するデータ通信方式において、上記高速通信モードでデータ通信をした場合に通信エラーの発生が予想される不適合外部デバイスを特定するためのＩＤである特定情報のリストを記憶したリスト記憶部と、
外部デバイスがホストコンピュータに接続された場合に、当該外部デバイスの特定情報を当該外部デバイスから取得する特定情報取得部と、
上記特定情報取得部により取得された上記外部デバイスの特定情報が、上記リスト記憶部に記憶されている上記不適合外部デバイスの特定情報の何れかと一致するか否かを判定するデバイス判定部と、
上記ホストコンピュータと上記外部デバイスとの間で行われるデータ転送の方式がアイソクロナス転送を含むか否かを判定する転送方式判定部と、
上記デバイス判定部により特定情報が一致すると判定され、かつ、上記転送方式判定部により上記データ転送の方式が上記アイソクロナス転送を含むと判定された場合に、上記データ通信の速度モードを上記低速通信モードに設定する通信速度制御部とを備えたことを特徴とする通信速度制御装置。
【請求項２】
高速通信モードと低速通信モードとを有するデータ通信方式において、上記高速通信モードでデータ通信をした場合に通信エラーの発生が予想される不適合外部デバイスを特定するためのＩＤである特定情報のリストを記憶したリスト記憶部と、
外部デバイスがホストコンピュータに接続された場合に、当該外部デバイスの特定情報を当該外部デバイスから取得する特定情報取得部と、
上記特定情報取得部により取得された上記外部デバイスの特定情報が、上記リスト記憶部に記憶されている上記不適合外部デバイスの特定情報の何れかと一致するか否かを判定するデバイス判定部と、
上記外部デバイスが上記ホストコンピュータに接続されたときに、上記データ通信の速度モードを上記低速通信モードに設定し、その後で上記デバイス判定部により特定情報が一致すると判定された場合は上記データ通信の速度モードを上記低速通信モードの設定に維持する一方、上記デバイス判定部により特定情報が一致しないと判定された場合はバスリセットを行い、上記データ通信の速度モードを再設定する通信速度制御部とを備えたことを特徴とする通信速度制御装置。
【請求項３】
高速通信モードと低速通信モードとを有するデータ通信方式でデータ通信をする際、外部デバイスがホストコンピュータに接続された場合に、上記ホストコンピュータが上記外部デバイスを特定するためのＩＤである特定情報を上記外部デバイスから取得する第１のステップと、
上記第１のステップで取得された上記外部デバイスの特定情報が、上記高速通信モードでデータ通信をした場合に通信エラーの発生が予想される不適合外部デバイスの特定情報のリストを記憶したリスト記憶部に記憶されているか否かを上記ホストコンピュータが判定する第２のステップと、
上記ホストコンピュータと上記外部デバイスとの間で行われるデータ転送の方式がアイソクロナス転送を含むか否かを上記ホストコンピュータが判定する第３のステップと、
上記第２のステップで特定情報が上記リスト記憶部に記憶されていると判定され、かつ、上記第３のステップで上記データ転送の方式が上記アイソクロナス転送を含むと判定された場合に、上記データ通信の速度モードを上記低速通信モードに設定する第４のステップとを有することを特徴とする通信速度制御方法。
【請求項４】
高速通信モードと低速通信モードとを有するデータ通信方式でデータ通信をする際、外部デバイスがホストコンピュータに接続された場合に、上記ホストコンピュータがデータ通信の速度モードを上記低速通信モードに設定する第１のステップと、
上記ホストコンピュータが上記外部デバイスを特定するためのＩＤである特定情報を上記外部デバイスから取得する第２のステップと、
上記第２のステップで取得された上記外部デバイスの特定情報が、上記高速通信モードでデータ通信をした場合に通信エラーの発生が予想される不適合外部デバイスの特定情報のリストを記憶したリスト記憶部に記憶されているか否かを上記ホストコンピュータが判定する第３のステップと、
上記第３のステップで特定情報が上記リスト記憶部に記憶されていると判定された場合は上記データ通信の速度モードを上記低速通信モードの設定に維持する一方、上記第３のステップで特定情報が上記リスト記憶部に記憶されていないと判定された場合はバスリセットを行い、上記データ通信の速度モードを再設定する第４のステップとを有することを特徴とする通信速度制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信速度制御装置および通信速度制御方法に関し、特に、ホストコンピュータと外部デバイスとの間で行われるデータ通信の速度を制御する技術に関するものである。
【背景技術】
【０００２】
従来、パーソナルコンピュータやナビゲーション装置などのホストコンピュータと、外部デバイスとしての各種の周辺機器とを接続してデータ通信を行うための規格として、ＵＳＢ（Universal Serial Bus）が普及している。例えばＵＳＢ２．０では、通信速度が早い順にハイスピードモード（以下、ＨＳモードという）、フルスピードモード（以下、ＦＳモードという）、ロースピードモード（以下、ＬＳモードという）の３種類の通信速度が決められている。
【０００３】
ＵＳＢ２．０に対応したホストコンピュータ（以下、ＵＳＢホストという）および外部デバイス（以下、ＵＳＢデバイスという）は、これら３種類の通信速度の何れかでデータ通信を行うことができる。一般に、ＵＳＢホストは、ＵＳＢデバイスの接続を検出すると、バスをリセット状態（Ｄ＋とＤ−という２つの信号線を両方ともローレベルとする状態）にした後、Ｃｈｉｒｐと呼ばれるハンドシェイク処理を実行し、通信速度を決定する。このとき、ＨＳモード対応のＵＳＢデバイスが接続された場合には通信速度はＨＳとなり、ＦＳモード対応のＵＳＢデバイスが接続された場合には通信速度がＦＳとなる。
【０００４】
通信速度の決定後、ＵＳＢホストがＵＳＢデバイスから初期化に必要な情報を取得し、ＵＳＢデバイスを使用できるように処理を実行する。その後、ＵＳＢホストおよびＵＳＢデバイスはデータのやり取りを行う。ＵＳＢのデータ転送方式には、コントロール転送、インタラプト転送、バルク転送、アイソクロナス転送の４種類がある。
【０００５】
コントロール転送は、ＵＳＢデバイスの基本的な制御を行うための転送方式であり、ＵＳＢデバイスを認識する際などに使用する。インタラプト転送は、データ量が多くないデータを周期的に転送するための方式であり、主にマウスやキーボードといったＵＳＢデバイスと通信する際に使用する。バルク転送は、大量のデータを転送するための方式であり、主にハードディスクのような記憶装置のデータをやり取りする際に使用する。アイソクロナス転送は、データをリアルタイムに転送するための方式であり、主に音楽データや映像データをストリーミング再生する際に使用する。
【０００６】
なお、ＵＳＢ２．０の通常の仕様では、ＨＳモードまたはＦＳモードのＵＳＢデバイスとしてＵＳＢホストに認識されると、リセットをかけるか、再接続するまでは、通信速度の変更は行われない。これに対して、ＨＳモードとＦＳモードとを切り替えられるようにした技術が提案されている（例えば、特許文献１〜４参照）。
【０００７】
特許文献１には、転送するデータの容量や携帯電子機器の電池残量に応じてＨＳモードとＦＳモードとを切り替えることが開示されている。特許文献２には、ユーザが切り替えスイッチを操作することによって通信速度を切り替えることが開示されている。特許文献３には、通信のエラー率が所定値以上の場合にＨＳモードを禁止することが開示されている。特許文献４には、通信品質が劣化して通信不良の状態が一定時間以上続いた場合にＨＳモードからＦＳモードに切り替えることが開示されている。
【０００８】
また、通信エラーの発生が予想される不適合ＵＳＢメモリの機種特定情報をＵＳＢホストの記憶部にあらかじめ記憶しておき、ＵＳＢホストがＵＳＢメモリの接続を検出したときに、ＵＳＢメモリに記憶されている機種特定情報を取得し、取得した機種特定情報と一致する機種特定情報が記憶部に記憶されていると判定した場合に報知動作を行う技術も提案されている（例えば、特許文献５参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−３３０８３１号公報
【特許文献２】特開２００５−３２７２４７号公報
【特許文献３】特開２００５−１８２３８０号公報
【特許文献４】特開２００７−１７２１６０号公報
【特許文献５】特開２００９−１９３３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、ＵＳＢホストに相性の悪いＵＳＢデバイスを接続すると、ＨＳモードが設定されている場合に、通信中のデータの波形が劣化し、通信エラーが発生することがある。コントロール転送、インタラプト転送、バルク転送の何れかの方式でデータ通信を行っている場合は、通信エラーを検出したときにハードウェアでリトライを行い、再度同様のデータ通信を実施することが可能である。
【００１１】
一方、音楽や映像のストリーミング再生時などに行われるアイソクロナス転送の場合は、リアルタイムな転送方式であるため、通信エラーが発生したときのリトライが不可能となっている。そのため、一度通信エラーが発生すると、その通信エラーが発生した部分のデータが欠落し、音切れや映像切れが発生してしまうという問題があった。
【００１２】
このような問題に対して、特許文献３，４に記載の技術を用いれば、エラー率が所定値以上になった場合、あるいは通信不良の状態が一定時間以上続いた場合に通信速度をＨＳモードからＦＳモードに切り替えることにより、通信品質を上げてデータの欠落を生じさせないようにすることが可能である。
【００１３】
しかしながら、特許文献３，４に記載の技術では、ＨＳモードからＦＳモードに通信速度を切り替える前は、通信品質の悪い状態が続いているので、通信エラーが発生する。そのため、アイソクロナス転送中に通信エラーが発生した場合はデータの欠落が発生し、音切れや映像切れといった現象が発生してしまうという問題は解消できない。
【００１４】
また、特許文献５に記載の技術では、通信エラーの発生が予想される不適合ＵＳＢメモリをＵＳＢホストに接続すると、その時点で報知が行われる。しかしながら、報知が行われるのみで、ＨＳモード対応のＵＳＢデバイスが接続された場合には通信速度はＨＳモードに設定されるので、実際に通信をするとエラーが発生してしまう。そのため、アイソクロナス転送中に通信エラーが発生した場合はデータの欠落が発生し、音切れや映像切れの問題を解消することはできない。
【００１５】
本発明は、このような問題を解決するために成されたものであり、ホストコンピュータと外部デバイスとの間でデータ通信を行う際に、ＨＳモード下での通信エラーに起因するデータの欠落が生じないようにすることを目的とする。
【課題を解決するための手段】
【００１６】
上記した課題を解決するために、本発明では、高速通信モードでデータ通信をした場合に通信エラーの発生が予想される不適合外部デバイスを特定するためのＩＤである特定情報をリスト記憶部に記憶しておく。そして、外部デバイスがホストコンピュータに接続された場合に、その外部デバイスの特定情報がリスト記憶部に記憶されている不適合外部デバイスの特定情報の何れかと一致するか否かを判定するとともに、ホストコンピュータと外部デバイスとの間で行われるデータ転送の方式がアイソクロナス転送を含むか否かを判定し、特定情報が一致すると判定され、かつ、データ転送の方式がアイソクロナス転送を含むと判定された場合にはデータ通信の速度モードを低速通信モードに設定するようにしている。
また、本発明の他の態様では、外部デバイスがホストコンピュータに接続されたときに、データ通信の速度モードを低速通信モードに設定し、その後で特定情報が一致すると判定された場合はデータ通信の速度モードを低速通信モードの設定に維持する一方、特定情報が一致しないと判定された場合はバスリセットを行い、データ通信の速度モードを再設定するようにしている。
【発明の効果】
【００１７】
上記のように構成した本発明によれば、ホストコンピュータに不適合外部デバイスが接続された場合には、実際にデータ通信を開始する前に、データ通信の速度モードが通信エラーの発生しにくい低速通信モードに設定される。そのため、ホストコンピュータと外部デバイスとの間でデータ通信を行う際に、高速通信モード下での通信エラーに起因するデータの欠落が生じないようにすることができる。これにより、例えば音楽や映像のストリーミング再生のためにアイソクロナス転送が行われる場合であっても、通信エラーに起因するデータの欠落を未然に防止でき、音切れや映像切れの発生を回避することができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態による通信速度制御装置を適用した通信システムの概略的な構成例を示す図である。
【図２】第１の実施形態によるＵＳＢホストコントローラが備える機能構成例を示すブロック図である。
【図３】第１の実施形態によるＵＳＢホストコントローラの動作例を示すフローチャートである。
【図４】第２の実施形態によるＵＳＢホストコントローラが備える機能構成例を示すブロック図である。
【図５】第２の実施形態においてケーブル長を入力するダイアログ画面の例を示す図である。
【図６】第３の実施形態によるＵＳＢホストコントローラが備える機能構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
（第１の実施形態）
以下、本発明の第１の実施形態を図面に基づいて説明する。図１は、第１の実施形態による通信速度制御装置を適用した通信システムの概略的な構成例を示す図である。図１に示すように、本実施形態の通信システムは、ＵＳＢデバイス１０（特許請求の範囲の外部デバイスに相当）とＵＳＢホスト２０（特許請求の範囲のホストコンピュータに相当）とを備え、その両者をＵＳＢケーブル３０により接続可能に構成されている。
【００２０】
ＵＳＢデバイス１０は、特定情報記憶部１１、ＵＳＢデバイスコントローラ１２およびＵＳＢデバイスアプリケーション１３を備えている。ＵＳＢホスト２０は、ＵＳＢホストコントローラ２１、リスト記憶部２２およびＵＳＢホストアプリケーション２３を備えている。ＵＳＢホスト２０のＵＳＢホストコントローラ２１およびリスト記憶部２２により本実施形態の通信速度制御装置が構成されている。
【００２１】
特定情報記憶部１１は、ＵＳＢデバイス１０を特定するための特定情報を記憶している。特定情報は、ベンダーＩＤおよびプロダクトＩＤを含んで構成されるものである。ベンダーＩＤは、ＵＳＢデバイス１０を製造するベンダーに固有の値である。プロダクトＩＤは、ＵＳＢデバイス１０が持つ固有の値であり、ベンダー毎に管理されている。
【００２２】
ＵＳＢデバイスコントローラ１２は、ＵＳＢホスト２０からの指令によりＨＳモードまたはＦＳモードの何れかに通信速度を設定し、設定した通信速度でＵＳＢホスト２０との間でデータ通信を行う。例えば、ＵＳＢデバイスコントローラ１２は、ＵＳＢホスト２０からの要求に応じて、特定情報記憶部１１から読み出した特定情報をＵＳＢホスト２０に送信する。また、ＵＳＢデバイスコントローラ１２は、ＵＳＢデバイスアプリケーション１３で生成されたデータをＵＳＢホスト２０に送信したり、ＵＳＢホスト２０から送られてくるデータを受信したりする。
【００２３】
ＵＳＢデバイスアプリケーション１３は、ＵＳＢデバイス１０の機能を実現させるアプリケーションソフトウェアの実行部である。例えば、ＵＳＢデバイス１０がＵＳＢメモリのような記憶媒体である場合、ＵＳＢデバイスアプリケーション１３は、データを読み書きするための機能、データを転送するための機能をソフトウェアによって実現させる。また、ＵＳＢデバイス１０がスマートフォンである場合、ＵＳＢデバイスアプリケーション１３は、例えば、音楽や映像などのデータを再生するための機能をソフトウェアによって実現させる。
【００２４】
ＵＳＢホストコントローラ２１は、ＨＳモードまたはＦＳモードの何れかに通信速度を設定し、設定した通信速度でＵＳＢデバイス１０との間でデータ通信を行う。例えば、ＵＳＢホストコントローラ２１は、ＵＳＢデバイス１０に対して特定情報の送信要求を行い、その応答としてＵＳＢデバイス１０から送られてくる特定情報を受信する。また、ＵＳＢホストコントローラ２１は、ＵＳＢデバイスアプリケーション１３で生成されたデータをＵＳＢデバイス１０から受信したり、ＵＳＢホストアプリケーション２３で生成されたデータをＵＳＢデバイス１０に送信したりする。
【００２５】
リスト記憶部２２は、ＨＳモードでデータ通信をした場合に通信エラーの発生が予想される１以上のＵＳＢデバイス１０（以下、不適合外部デバイスという）を特定するための特定情報をリストとして記憶する。不適合外部デバイスの特定情報も、特定情報記憶部１１に記憶されている特定情報と同様に、ベンダーＩＤおよびプロダクトＩＤを含んで構成されている。このリスト記憶部２２には、いくつかの不適合外部デバイスの特定情報が初期状態からあらかじめ記憶されている。また、後述するように、初期状態で記憶されているもの以外の不適合外部デバイスの特定情報が必要に応じて追加して記憶される。
【００２６】
ＵＳＢホストアプリケーション２３は、ＵＳＢホスト２０の様々な機能を実現させるアプリケーションソフトウェアまたはドライバソフトウェアの実行部である。これらのソフトウェアは、ＵＳＢデバイス１０が持つＵＳＢデバイスアプリケーション１３の実行に連携するために必要なものであり、例えば、ＵＳＢデバイス１０がＵＳＢホスト２０に最初に接続されたときに、そのＵＳＢデバイス１０からＵＳＢホスト２０に自動的にインストールされる。または、ユーザによる手動操作によって、ＵＳＢデバイス１０とは別に用意された記録媒体からＵＳＢホスト２０にインストールされる。
【００２７】
図２は、第１の実施形態によるＵＳＢホストコントローラ２１が備える機能構成例を示すブロック図である。図２に示すように、ＵＳＢホストコントローラ２１は、その機能構成として、接続検出部２０１、特定情報取得部２０２、デバイス判定部２０３、通信速度制御部２０４、データ通信部２０５、エラー監視部２０６および記憶制御部２０７を備えている。
【００２８】
接続検出部２０１は、ＵＳＢデバイス１０がＵＳＢホスト２０に接続されたことを検出する。特定情報取得部２０２は、ＵＳＢデバイス１０がＵＳＢホスト２０に接続されたことが接続検出部２０１により検出された場合に、ＵＳＢデバイス１０の特定情報を当該ＵＳＢデバイス１０から取得する。すなわち、特定情報取得部２０２は、通信速度制御部２０４によって強制的に設定されたＦＳモードでＵＳＢデバイス１０との間でコントロール転送を行い、ＵＳＢデバイス１０を初期化する。この初期化の際に、特定情報取得部２０２はＵＳＢデバイス１０に対して特定情報の送信要求を行い、ＵＳＢデバイス１０の特定情報をＵＳＢデバイス１０から取得する。
【００２９】
デバイス判定部２０３は、特定情報取得部２０２により取得されたＵＳＢデバイス１０の特定情報が、リスト記憶部２２に記憶されている不適合外部デバイスの特定情報の何れかと一致するか否かを判定する。具体的には、デバイス判定部２０３は、特定情報に含まれるベンダーＩＤが一致するか否かを判定する。または、デバイス判定部２０３は、特定情報に含まれるベンダーＩＤおよびプロダクトＩＤの両方が一致するか否かを判定するようにしてもよい。
【００３０】
通信速度制御部２０４は、ＵＳＢデバイス１０との間で行うデータ通信の速度を制御する。ＵＳＢデバイス１０がＵＳＢホスト２０に接続された直後の初期状態では、通信速度制御部２０４は通信速度をＦＳモードに設定する。すなわち、通信速度制御部２０４は、ＵＳＢデバイス１０がＵＳＢホスト２０に接続されたときは、そのＵＳＢデバイス１０がＨＳモード対応かＦＳモード対応かによらず、データ通信の速度をＦＳモードに強制的に設定する。
【００３１】
また、通信速度制御部２０４は、ＵＳＢデバイス１０の特定情報が不適合外部デバイスの特定情報の何れかと一致するとデバイス判定部２０３により判定された場合に、通信速度をＦＳモードの設定に維持する。一方、ＵＳＢデバイス１０の特定情報が不適合外部デバイスの特定情報と一致しないとデバイス判定部２０３により判定された場合、通信速度制御部２０４は、いったんバスリセットしてハンドシェイク処理を実行し、通信速度を再設定する。このとき、ＵＳＢデバイス１０がＨＳモード対応の場合には通信速度はＨＳモードとなり、ＦＳモード対応の場合には通信速度はＦＳモードとなる。
【００３２】
データ通信部２０５は、通信速度制御部２０４により設定された通信速度（ＨＳモードまたはＦＳモードの何れか）で、ＵＳＢデバイス１０との間でデータ通信を行う。このとき、インタラプト転送、バルク転送、アイソクロナス転送の何れの方式でデータ通信を行うかは、どのようなＵＳＢデバイス１０が接続されているか、すなわち、実行されるＵＳＢデバイスアプリケーション１３がどのようなものかによって異なる。例えば、マウスやキーボードといったＵＳＢデバイス１０と通信する場合はインタラプト転送、ＵＳＢメモリといったＵＳＢデバイス１０と通信する場合はバルク転送、スマートフォンなどのＵＳＢデバイス１０との間で音楽データや映像データをストリーミング再生する場合にはアイソクロナス転送によってデータ通信を行う。
【００３３】
エラー監視部２０６は、データ通信部２０５がＨＳモードでデータ通信を実行している際に、通信エラーの発生を監視する。記憶制御部２０７は、エラー監視部２０６により通信エラーの発生が検出された場合に、そのときＵＳＢホスト２０に接続されているＵＳＢデバイス１０について特定情報取得部２０２により取得された特定情報を、不適合外部デバイスの特定情報としてリスト記憶部２２に追加して記憶させる。
【００３４】
ここでは、通信エラーの発生が検出された場合にＵＳＢデバイス１０を不適合外部デバイスとしてその特定情報をリスト記憶部２２に記憶させているが、この例に限定されるものではない。例えば、コントロール転送、インタラプト転送、バルク転送が行われているときに通信エラーが発生した場合は、リトライが行われる。このリトライによってもデータ通信が正常に行われずにタイムアウトになった場合に、ＵＳＢデバイス１０を不適合外部デバイスとしてその特定情報をリスト記憶部２２に記憶させるようにしてもよい。
【００３５】
または、所定時間内におけるエラー発生率を測定し、エラー発生率が所定値以上となった場合に、ＵＳＢデバイス１０を不適合外部デバイスとしてその特定情報をリスト記憶部２２に記憶させるようにしてもよい。この例によれば、リトライが行われないアイソクロナス転送が行われている場合にも適用することが可能である。
【００３６】
図３は、上記のように構成したＵＳＢホストコントローラ２１の通信速度制御に関する動作例を示すフローチャートである。図３に示すフローチャートは、ＵＳＢデバイス１０がＵＳＢホスト２０に接続されたことが接続検出部２０１により検出されたときに開始する。
【００３７】
図３において、通信速度制御部２０４は、データ通信の速度をＦＳモードに設定する（ステップＳ１）。また、特定情報取得部２０２は、ＦＳモードでＵＳＢデバイス１０との間でコントロール転送を行い、ＵＳＢデバイス１０を初期化することにより、ＵＳＢデバイス１０の特定情報をＵＳＢデバイス１０から取得する（ステップＳ２）。
【００３８】
次に、デバイス判定部２０３は、特定情報取得部２０２により取得されたＵＳＢデバイス１０の特定情報が、リスト記憶部２２に記憶されている不適合外部デバイスの特定情報の何れかと一致するか否か（すなわち、ＵＳＢデバイス１０の特定情報がリスト記憶部２２に記憶されているか否か）を判定する（ステップＳ３）。
【００３９】
ここで、ＵＳＢデバイス１０の特定情報がリスト記憶部２２に記憶されていないとデバイス判定部２０３にて判定された場合は、図３の処理を終了する。この場合、通信速度制御部２０４は、データ通信の速度をＦＳモードの設定に維持することになる。
【００４０】
一方、ＵＳＢデバイス１０の特定情報がリスト記憶部２２に記憶されていないとデバイス判定部２０３にて判定された場合、通信速度制御部２０４はいったんバスリセットし（ステップＳ４）、その後ハンドシェイク処理を行うことによってＵＳＢデバイス１０を接続し直し（ステップＳ５）、これによってデータ通信の速度を再設定する（ステップＳ６）。
【００４１】
以上詳しく説明したように、第１の実施形態では、ＨＳモードでデータ通信をした場合に通信エラーの発生が予想される不適合外部デバイスの特定情報をリスト記憶部２２に記憶しておく。そして、ＵＳＢデバイス１０がＵＳＢホスト２０に接続された場合に、そのＵＳＢデバイス１０の特定情報がリスト記憶部２２に記憶されている不適合外部デバイスの特定情報の何れかと一致した場合には、データ通信の速度をＦＳモードに設定するようにしている。
【００４２】
このように構成した第１の実施形態によれば、ＵＳＢホスト２０に不適合外部デバイスが接続された場合には、通信エラーの発生しにくいＦＳモードに設定される。そのため、ＵＳＢデバイス１０とＵＳＢホスト２０との間でデータ通信を行う際に、ＨＳモード下での通信エラーに起因するデータの欠落が生じないようにすることができる。これにより、例えば音楽や映像のストリーミング再生のためにアイソクロナス転送が行われる場合であっても、通信エラーに起因するデータの欠落を未然に防止することができ、音切れや映像切れの発生を回避することができる。
【００４３】
また、第１の実施形態では、ＨＳモードで実際にデータ通信を実行している際に通信エラーの発生を検出した場合に、そのときＵＳＢホスト２０に接続されているＵＳＢデバイス１０の特定情報を、不適合外部デバイスの特定情報としてリスト記憶部２２に追加して記憶させるようにしている。
【００４４】
このような構成により、あらかじめ不適合外部デバイスとして想定されていない（リスト記憶部２２に初期状態で特定情報が記憶されていない）ＵＳＢデバイス１０であっても、ＨＳモード下で通信エラーを発生させやすいＵＳＢデバイス１０であれば、一度ＵＳＢホスト２０に接続してＨＳモードでデータ通信を行った後は、不適合外部デバイスとして特定情報がリスト記憶部２２に加えられることとなる。これにより、その後の接続時には必ずＦＳモードにてデータ通信を行うことができるようになり、通信エラーに起因するデータの欠落を防止することができる。
【００４５】
また、第１の実施形態では、ＵＳＢデバイス１０がＵＳＢホスト２０に接続されたときには通信速度をＨＳモードではなくＦＳモードに強制的に設定し、その後、ＵＳＢデバイス１０が不適合外部デバイスでないと判定された場合に通信速度を再設定するようにしている。これにより、ＵＳＢデバイス１０がＵＳＢホスト２０に接続された直後に特定情報取得部２０２がＵＳＢデバイス１０の初期化処理を実行するときには必ず、ＦＳモードでコントロール転送をすることができるので、通信エラーを起こしてＵＳＢデバイス１０から特定情報を取得できなくなる不都合を確実に回避することができる。
【００４６】
（第２の実施形態）
次に、本発明の第２の実施形態を図面に基づいて説明する。第２の実施形態による通信速度制御装置を適用した通信システムの構成は、図１と同様である。図４は、第２の実施形態によるＵＳＢホストコントローラ２１が備える機能構成例を示すブロック図である。なお、この図４において、図２に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【００４７】
図４に示すように、第２の実施形態においてＵＳＢホストコントローラ２１は、ダイアログ表示部２１１、ケーブル長入力部２１２およびケーブル長判定部２１３を更に備えている。また、第２の実施形態においてＵＳＢホストコントローラ２１は、通信速度制御部２０４の代わりに、機能が異なる通信速度制御部２０４’を備えている。
【００４８】
ダイアログ表示部２１１は、ＵＳＢデバイス１０の特定情報が、リスト記憶部２２に記憶されている不適合外部デバイスの特定情報の何れかと一致するとデバイス判定部２０３により判定された場合に、ＵＳＢデバイス１０とＵＳＢホスト２０との間を繋ぐＵＳＢケーブル３０のケーブル長を入力するためのダイアログ画面をＵＳＢホスト２０のディスプレイ（図示せず）に表示させる。図５は、ダイアログ画面の一例を示す図である。
【００４９】
ケーブル長入力部２１２は、ユーザがダイアログ画面に対して行う操作を通じて、ＵＳＢケーブル３０の長さを特定するケーブル長情報の入力を受け付ける。ケーブル長判定部２１３は、ケーブル長入力部２１２により入力されたケーブル長情報により特定されるケーブル長が所定値（例えば、１．５ｍ）以上か否かを判定する。
【００５０】
通信速度制御部２０４’は、ＵＳＢデバイス１０の特定情報が不適合外部デバイスの特定情報の何れかと一致するとデバイス判定部２０３により判定され、かつ、ケーブル長判定部２１３によりケーブル長が所定値以上であると判定された場合に、データ通信の速度をＦＳモードの設定に維持する。
【００５１】
一方、ＵＳＢデバイス１０の特定情報が不適合外部デバイスの特定情報と一致しないとデバイス判定部２０３により判定された場合、または、ユーザにより入力されたＵＳＢケーブル３０のケーブル長が所定値以上ではないとケーブル長判定部２１３により判定された場合に、通信速度制御部２０４’は、いったんバスリセットしてハンドシェイク処理を実行し、通信速度を再設定する。
【００５２】
ＵＳＢホスト２０に接続されたＵＳＢデバイス１０が不適合外部デバイスであっても、常に通信エラーが発生するとは限らない。すなわち、ＵＳＢケーブル３０が短いときには通信エラーは殆ど発生せず、ＵＳＢケーブル３０が長くなると通信エラーが発生しやすくなる場合がある。ＵＳＢケーブル３０が長いと、ケーブル内を通信しているデータが外来ノイズの影響を受けやすくなるからである。
【００５３】
以上のように構成した第２の実施形態によれば、ＵＳＢホスト２０に接続されたＵＳＢデバイス１０が不適合外部デバイスであっても、接続されるＵＳＢケーブル３０の長さが所定値以上の場合に限って、通信速度が強制的にＦＳモードに設定される。逆に、ＵＳＢケーブル３０の長さが所定値未満であれば、ハンドシェイク処理によってＵＳＢデバイス１０に対応した通信速度（ＨＳモードまたはＦＳモード）に設定される。これにより、ＵＳＢケーブル３０が短くて通信エラーが発生しにくい場合にまで、通信速度の遅いＦＳモードに強制的に設定してしまうことを防ぐことができる。
【００５４】
なお、上記第２の実施形態では、ＵＳＢデバイス１０が不適合外部デバイスであり、かつ、ＵＳＢケーブル３０の長さが所定値以上である場合に通信速度を強制的にＦＳモードとする例について説明したが、これに限定されない。例えば、ＵＳＢデバイス１０が不適合外部デバイスであるか否かを問わず、ＵＳＢケーブル３０の長さが所定値以上である場合に通信速度を強制的にＦＳモードとするようにしてもよい。不適合外部デバイスでなくても、ケーブル長が長い場合には外来ノイズの影響を受けて通信エラーが生じやすくなることがあるからである。
【００５５】
（第３の実施形態）
次に、本発明の第３の実施形態を図面に基づいて説明する。第３の実施形態による通信速度制御装置を適用した通信システムの構成は、図１と同様である。図６は、第３の実施形態によるＵＳＢホストコントローラ２１が備える機能構成例を示すブロック図である。なお、この図６において、図２に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【００５６】
図６に示すように、第３の実施形態においてＵＳＢホストコントローラ２１は、転送方式判定部２２１を更に備えている。また、第３の実施形態においてＵＳＢホストコントローラ２１は、通信速度制御部２０４の代わりに、機能が異なる通信速度制御部２０４”を備えている。
【００５７】
転送方式判定部２２１は、ＵＳＢデバイス１０とＵＳＢホスト２０との間でデータ通信部２０５により行われるデータ通信の方式がアイソクロナス転送か否かを判定する。上述したように、ＵＳＢデバイス１０とＵＳＢホスト２０との間で行われるデータ通信の方式は、どのようなＵＳＢデバイス１０が接続されているか、すなわち、実行されるＵＳＢデバイスアプリケーション１３がどのようなものかによって異なる。
【００５８】
そこで、転送方式判定部２２１は、実行されるＵＳＢデバイスアプリケーション１３またはこれと連携して動作するＵＳＢホストアプリケーション２３の種類をもとに、データ通信の方式が少なくともアイソクロナス転送を含むか否かを判定する。例えば、実行されるＵＳＢデバイスアプリケーション１３またはＵＳＢホストアプリケーション２３が音楽または映像のストリーミング再生を行う種類のものであれば、データ通信の方式はアイソクロナス転送を含むものであると判定する。
【００５９】
通信速度制御部２０４”は、ＵＳＢデバイス１０の特定情報が不適合外部デバイスの特定情報の何れかと一致するとデバイス判定部２０３により判定され、かつ、データ通信の方式がアイソクロナス転送を含むと転送方式判定部２２１により判定された場合に、データ通信の速度をＦＳモードの設定に維持する。
【００６０】
一方、ＵＳＢデバイス１０の特定情報が不適合外部デバイスの特定情報と一致しないとデバイス判定部２０３により判定された場合、または、データ通信の方式がアイソクロナス転送を含まないと転送方式判定部２２１により判定された場合に、通信速度制御部２０４”は、いったんバスリセットしてハンドシェイク処理を実行し、通信速度を再設定する。
【００６１】
データ通信の方式がコントロール転送、インタラプト転送、バルク転送の場合は、一度通信エラーが発生しても、リトライを行うことよってデータを正常に通信できる可能性がある。しかし、アイソクロナス転送の場合はリトライができない。そこで、第３の実施形態のように、アイソクロナス転送を含む場合に限って通信速度を強制的にＦＳモードに設定することにより、リトライができる転送方式だけの場合にまで、通信速度の遅いＦＳモードに強制的に設定してしまうことを防ぐことができる。
【００６２】
なお、コントロール転送、インタラプト転送、バルク転送の場合はリトライが可能であると言っても、通信エラーが頻発すると、タイムアウト時間内にリトライが完了できず通信ができない状態になってしまうこともある。そこで、データ通信の方式がコントロール転送、インタラプト転送、バルク転送のため通信速度がＨＳモードに設定された場合に、通信エラー発生後のリトライによってもデータ通信が正常に行われなかったときには、タイムアウトになる前に、通信速度をＨＳモードからＦＳモードに強制的に切り替えるようにしてもよい。タイムアウトになる前に通信速度を切り替えれば、次のリトライは成功する可能性があり、通信エラーによるデータの欠落を防止することができる。
【００６３】
なお、この第３の実施形態に上記第２の実施形態を組み合わせて適用してもよい。この場合、通信速度制御部は、ＵＳＢデバイス１０の特定情報が不適合外部デバイスの特定情報の何れかと一致すると判定され、ケーブル長が所定値以上であると判定され、かつ、データ通信の方式がアイソクロナス転送を含むものであると判定された場合に、データ通信の速度をＦＳモードの設定に維持する。それ以外の場合は、バスリセットおよびハンドシェイク処理を実行して通信速度を再設定する。
【００６４】
その他、上記第１〜第３の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６５】
１０  ＵＳＢデバイス
２０  ＵＳＢホスト
２１  ＵＳＢホストコントローラ
２２  リスト記憶部
２０１  接続検出部
２０２  特定情報取得部
２０３  デバイス判定部
２０４，２０４’，２０４”  通信速度制御部
２０５  データ通信部
２０６  エラー監視部
２０７  記憶制御部
２１１  ダイアログ表示部
２１２  ケーブル長入力部
２１３  ケーブル長判定部
２２１  転送方式判定部
【図１】
0005700514.tif 000002
【図２】
0005700514.tif 000003
【図３】
0005700514.tif 000004
【図４】
0005700514.tif 000005
【図５】
0005700514.tif 000006
【図６】
0005700514.tif 000007