(57)【要約】【課題】ＵＳＢデバイスとの間の通信方式を任意のタイミングでＵＳＢ２．０に準拠した方式やＵＳＢ１．１に準拠した方式に任意に切り替え可能なＵＳＢホスト装置の提供。【解決手段】カラオケ装置は、待機状態にある場合、ＵＳＢコントローラが備えるＥＨＣＩホストコントローラを利用して、ＵＳＢ２．０で規定されたＨＳモードでＵＳＢモデムとの通信を行う。一方、カラオケ装置が稼働状態になった場合、ＯＨＣＩホストコントローラよる制御への切り替えをＵＳＢコントローラに対して指令し（Ｓ４０５〜Ｓ４１５）、さらに、ＯＨＣＩホストコントローラを介してＵＳＢモデムに対してバスリセットを発行する（Ｓ４２０）。これにより、以降は、ＵＳＢコントローラが有するＯＨＣＩホストコントローラを利用して、ＵＳＢ１．１で規定されたＦＳモードでＵＳＢモデムとの通信を行う。【選択図】図６
2011203788.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ（Universal Serial Bus）規格に準拠した方式で、ＵＳＢデバイスと通信を行うＵＳＢホスト装置であって、
ＵＳＢ１．１に準拠した方式でＵＳＢデバイスとの通信を制御する第一ホストコントローラ部、及びＵＳＢ２．０に準拠した方式でＵＳＢデバイスとの通信を制御する第二ホストコントローラ部を有し、いずれか一方のホストコントローラ部による制御中に他方のホストコントローラ部による制御への切り替えが指令されると、前記一方のホストコントローラ部による制御を中止するとともに前記他方のホストコントローラ部による制御を開始するＵＳＢコントローラと、
前記ＵＳＢコントローラを利用してＵＳＢ２．０に対応した第一ＵＳＢデバイスとの通信を実行する第一処理部として機能可能で、前記第一処理部とは異なる所定の処理を実行する第二処理部としても機能可能で、前記第一処理部及び前記第二処理部を並列に機能させることが可能な制御手段と
を備え、
前記第一処理部は、
前記第二処理部が並列に機能し得る状態にある場合に、前記第一ＵＳＢデバイスとの通信を、前記第二ホストコントローラ部を利用してＵＳＢ２．０で規定されたＨＳ（High Speed）モードで実行する状態となっていたら、前記第一ホストコントローラ部による制御への切り替えを前記ＵＳＢコントローラに対して指令し、
当該指令を受けた前記ＵＳＢコントローラが前記第一ホストコントローラ部による制御を開始したら、さらに、前記ＵＳＢコントローラに対してバスリセットの発行を指令し、
当該指令を受けた前記ＵＳＢコントローラが前記第一ホストコントローラ部を介して前記第一ＵＳＢデバイスに対してバスリセットを発行することで、前記第一ＵＳＢデバイスがＵＳＢ１．１に対応した第一ＵＳＢデバイスであると前記第一ホストコントローラ部が認識したら、以降は、前記第一ホストコントローラを利用してＵＳＢ１．１で規定されたＦＳ（Full Speed）モードで前記第一ＵＳＢデバイスとの通信を実行する
ことを特徴とするＵＳＢホスト装置。
【請求項２】
前記第一処理部は、
前記第二処理部が並列に機能し得る状態にない場合に、前記第一ＵＳＢデバイスとの通信を、前記第一ホストコントローラ部を利用して前記ＦＳモードで実行する状態となっていたら、前記第二ホストコントローラ部による制御への切り替えを前記ＵＳＢコントローラに対して指令し、
当該指令を受けた前記ＵＳＢコントローラが前記第二ホストコントローラ部を介して前記第一ＵＳＢデバイスに対してバスリセットを発行することで、前記第一ＵＳＢデバイスがＵＳＢ２．０に対応した第一ＵＳＢデバイスであると前記第二ホストコントローラ部が認識したら、以降は、前記第二ホストコントローラを利用して前記ＨＳモードで前記第一ＵＳＢデバイスとの通信を実行する
ことを特徴とする請求項１に記載のＵＳＢホスト装置。
【請求項３】
前記第一処理部は、前記ＨＳモードから前記ＦＳモードへの切り替えを行う際には、当該切り替えの対象となるＵＳＢポートに関する情報を記憶手段に記憶させ、
前記ＦＳモードから前記ＨＳモードへの切り替えを行う際には、当該切り替えの対象となるＵＳＢポートに関する情報が前記記憶手段に記憶されているか否かを確認して、記憶されている場合に、前記ＦＳモードから前記ＨＳモードへの切り替えを行う
ことを特徴とする請求項２に記載のＵＳＢホスト装置。
【請求項４】
所定のＯＮ操作が行われた場合に、利用者から見た見かけ上の状態を待機状態から稼働状態に切り替える一方、所定のＯＦＦ操作が行われた場合に、利用者から見た見かけ上の状態を前記稼働状態から前記待機状態に切り替える状態切替手段を備えており、
前記第二処理部は、前記見かけ上の状態が前記待機状態とされた場合に、機能し得ない状態となる一方、前記見かけ上の状態が前記稼働状態とされた場合に、機能し得る状態となり、
前記第一処理部は、前記見かけ上の状態が前記稼働状態となっている場合に、前記第二処理部が並列に機能し得る状態にあると判断する一方、前記見かけ上の装置状態が前記待機状態となっている場合に、前記第二処理部が並列に機能し得ない状態にあると判断する
ことを特徴とする請求項１〜請求項３のいずれか一項に記載のＵＳＢホスト装置。
【請求項５】
前記第二処理部は、前記所定の処理として、前記ＵＳＢコントローラが備える前記第二ホストコントローラ部を利用して前記ＨＳモードでＵＳＢ２．０に対応した第二ＵＳＢデバイスとの通信を実行する
ことを特徴とする請求項１〜請求項４のいずれか一項に記載のＵＳＢホスト装置。
【請求項６】
前記第一ＵＳＢデバイスは、通信先と制御手段の間に介在して、前記制御手段から受信したデータを前記通信先へ無線通信で送信するとともに、前記通信先から無線通信で受信したデータを前記制御手段へと送信する無線方式のＵＳＢモデムデバイスであり、前記第一処理部は、前記ＵＳＢモデムデバイスを介して前記通信先から楽曲データを取得する処理を実行可能に構成されており、
前記第二ＵＳＢデバイスは、楽曲データに基づいて演奏音を発生させるＵＳＢ音源デバイスで、前記第二処理部は、前記ＵＳＢ音源デバイスを制御して演奏音を発生させる処理を実行可能に構成されている
ことを特徴とする請求項５に記載のＵＳＢホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ（Universal Serial Bus）規格に準拠した方式で、ＵＳＢデバイスとの通信を行うＵＳＢホスト装置に関する。
【背景技術】
【０００２】
従来、初期状態ではＵＳＢ２．０に準拠した方式でＵＳＢホスト装置と通信を行う一方、その後、ＵＳＢ１．１に準拠した方式でＵＳＢホスト装置と通信を行う状態に切り替えることも可能なＵＳＢデバイスが提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−６２７４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１に記載の技術は、ＵＳＢホスト装置側から送られてくる所定の指令を受けた場合にフラグをＯＮにする仕組みや、ＵＳＢホスト装置へ返す応答をフラグに応じて切り替える仕組みなどを、ＵＳＢデバイス側に実装することが必須になる。
【０００５】
そのため、上記のような仕組みが実装されていない一般的なＵＳＢデバイスを利用することが前提となる場合、上記特許文献１に記載の技術を採用することはできない、という問題があった。
【０００６】
また、上記のような仕組みが実装された特殊なＵＳＢデバイスを利用すれば、所期の効果は得られるものの、そのような特殊なＵＳＢデバイスを製造する場合、一般的なＵＳＢデバイスほど量産効果によるコストダウンを期待できなかった。
【０００７】
本発明は、上記問題を解決するためになされたものであり、その目的は、ＵＳＢデバイス側に特殊な構成を追加しなくても、ＵＳＢデバイスをＵＳＢポートに接続したままで、ＵＳＢデバイスとの間の通信方式を任意のタイミングでＵＳＢ２．０に準拠した方式やＵＳＢ１．１に準拠した方式に任意に切り替え可能なＵＳＢホスト装置を提供することにある。
【課題を解決するための手段】
【０００８】
以下、本発明において採用した構成について説明する。
請求項１に記載のＵＳＢホスト装置は、ＵＳＢ（Universal Serial Bus）規格に準拠した方式で、ＵＳＢデバイスと通信を行うＵＳＢホスト装置であって、ＵＳＢ１．１に準拠した方式でＵＳＢデバイスとの通信を制御する第一ホストコントローラ部、及びＵＳＢ２．０に準拠した方式でＵＳＢデバイスとの通信を制御する第二ホストコントローラ部を有し、いずれか一方のホストコントローラ部による制御中に他方のホストコントローラ部による制御への切り替えが指令されると、前記一方のホストコントローラ部による制御を中止するとともに前記他方のホストコントローラ部による制御を開始するＵＳＢコントローラと、前記ＵＳＢコントローラを利用してＵＳＢ２．０に対応した第一ＵＳＢデバイスとの通信を実行する第一処理部として機能可能で、前記第一処理部とは異なる所定の処理を実行する第二処理部としても機能可能で、前記第一処理部及び前記第二処理部を並列に機能させることが可能な制御手段とを備え、前記第一処理部は、前記第二処理部が並列に機能し得る状態にある場合に、前記第一ＵＳＢデバイスとの通信を、前記第二ホストコントローラ部を利用してＵＳＢ２．０で規定されたＨＳ（High Speed）モードで実行する状態となっていたら、前記第一ホストコントローラ部による制御への切り替えを前記ＵＳＢコントローラに対して指令し、当該指令を受けた前記ＵＳＢコントローラが前記第一ホストコントローラ部による制御を開始したら、さらに、前記ＵＳＢコントローラに対してバスリセットの発行を指令し、当該指令を受けた前記ＵＳＢコントローラが前記第一ホストコントローラ部を介して前記第一ＵＳＢデバイスに対してバスリセットを発行することで、前記第一ＵＳＢデバイスがＵＳＢ１．１に対応した第一ＵＳＢデバイスであると前記第一ホストコントローラ部が認識したら、以降は、前記第一ホストコントローラを利用してＵＳＢ１．１で規定されたＦＳ（Full Speed）モードで前記第一ＵＳＢデバイスとの通信を実行することを特徴とする。
【０００９】
このように構成されたＵＳＢホスト装置によれば、第二処理部が並列に機能し得る状態にある場合に、第一処理部では、第一ＵＳＢデバイスとの間の通信モードを、ＨＳモードからＦＳモードに切り替えることができる。したがって、第一処理部において必要となる処理能力を低下させることができ、その分だけ第二処理部での処理能力を高め、第二処理部においてより高度な処理を実現できるようになる。
【００１０】
しかも、上記のようなモード切り替えを実現するに当たって、第一ＵＳＢデバイス側には、何ら特殊な構成を追加する必要がなく、例えば、市販されているごく一般的なＵＳＢ２．０対応デバイスであっても、そのようなＵＳＢデバイスを上記第一ＵＳＢデバイスとして採用することができる。
【００１１】
より詳しく説明すると、第一ＵＳＢデバイスとの間の通信モードをＨＳモードからＦＳモードに切り替える際、第一処理部は、第一ホストコントローラ部による制御への切り替えをＵＳＢコントローラに対して指令する。この指令を受けたＵＳＢコントローラは、第二ホストコントローラ部による制御を中止するとともに第一ホストコントローラ部による制御を開始する。
【００１２】
ただし、ＵＳＢコントローラが第一ホストコントローラ部による制御を開始したとき、第一ＵＳＢデバイスは、すでにＵＳＢ２．０に対応したデバイスとして機能している状態にある。そのため、ＵＳＢコントローラが、単に第一ホストコントローラ部による制御を開始しても、それだけでは第一ＵＳＢデバイスをＵＳＢ１．１に対応したデバイスとして認識することができず、その場合、ＵＳＢコントローラは、第一ホストコントローラ部による制御を中止するとともに第二ホストコントローラ部による制御を行う状態に復帰してしまう。
【００１３】
この点について、さらに詳しく説明すると、一般に、ＵＳＢ１．１に対応したＵＳＢデバイスの場合、その仕様上、ＵＳＢデバイス側に設けられたプルアップ抵抗の接続位置に基づいて、ＦＳ（Full Speed）モードで動作可能なデバイスか、ＬＳ（Low Speed）モードでしか動作しないデバイスかを判定可能となっている。
【００１４】
また、ＵＳＢ２．０に対応したＵＳＢデバイスの場合も、ＵＳＢ１．１との互換性を確保するため、初期状態ではプルアップ抵抗の接続位置に基づく判断が可能となっており、ＵＳＢホスト装置からは、ＦＳ（Full Speed）モードで動作可能なデバイスとして認識される。
【００１５】
しかし、ＵＳＢホスト装置及びＵＳＢデバイスの双方がＵＳＢ２．０に対応している場合、プルアップ抵抗の接続位置に基づいて、ＦＳ（Full Speed）モードで動作可能なＵＳＢデバイスであるとＵＳＢホスト装置から認識された後、さらに双方が情報交換を行うことで、ＵＳＢ２．０で規定されたＨＳ（High Speed）モードの利用が可能かどうかを確認する。そして、ＨＳモードの利用が可能な場合は、上述したプルアップ抵抗をオフにした上で、ＨＳモードでの通信を行う状態に移行する。
【００１６】
ＵＳＢ２．０が、以上のような仕様になっている都合上、第一ＵＳＢデバイスがすでにＵＳＢ２．０に対応したデバイスとして機能している状態にある場合、先に説明した通り、単にＵＳＢコントローラが第一ホストコントローラ部による制御を開始しても、ＵＳＢコントローラとしては、プルアップ抵抗の接続位置によるモード判定ができない。
【００１７】
すなわち、単にＵＳＢコントローラが第一ホストコントローラ部による制御を開始することで、ＵＳＢホスト装置だけが単独でＵＳＢ１．１対応の機器に切り替わっても、ＵＳＢホスト装置側としては、ＵＳＢ２．０対応の作動状態になっている第一ＵＳＢデバイスを、ＵＳＢ１．１に対応したデバイスとして認識することはできないのである。
【００１８】
そこで、本発明においては、ＵＳＢコントローラが、単に第一ホストコントローラ部による制御を開始するだけではなく、ＵＳＢコントローラが、第一ホストコントローラ部による制御を開始した後、さらに、制御手段からの指令に基づき、第一ホストコントローラ部を介して第一ＵＳＢデバイスに対してバスリセットを発行するように構成した。
【００１９】
そのため、第一ＵＳＢデバイスは、バスリセットイベントの発生に伴って初期状態に戻り、第一ホストコントローラ部による制御を開始したＵＳＢコントローラとの間で、ネゴシエーションを開始する。その結果、第一ホストコントローラ部は、第一ＵＳＢデバイスをＵＳＢ１．１に対応したＵＳＢデバイスと認識し、以降は、ＵＳＢコントローラが有する第一ホストコントローラを利用して、ＦＳモードで第一ＵＳＢデバイスとの通信を行う状態に切り替わることになる。
【００２０】
つまり、ＵＳＢコントローラが第一ホストコントローラ部による制御を開始することで、ＵＳＢホスト装置がＵＳＢ１．１対応の機器に切り替わるとともに、ＵＳＢホスト装置側が第一ＵＳＢデバイスの認識に失敗する前にバスリセットを発行することで、ＵＳＢ２．０対応の作動状態になっている第一ＵＳＢデバイスを初期状態に戻すのである。これにより、ＵＳＢホスト装置及び第一ＵＳＢデバイスは、双方がＵＳＢ１．１に準拠した手順でネゴシエーションを行うことになり、最終的にＦＳモードでの通信が可能となるのである。
【００２１】
以上説明したように、本発明のＵＳＢホスト装置によれば、上記のようなＵＳＢデバイスの仕様上の特性を利用することにより、ＵＳＢホスト装置側での制御にて、第一ＵＳＢデバイスとの間の通信モードを、ＨＳモードからＦＳモードに切り替えることができる。
【００２２】
したがって、第二処理部が並列に機能し得る状態にある場合には、ＵＳＢホスト装置側の都合で、第一ＵＳＢデバイスとの間の通信モードを、ＨＳモードからＦＳモードに切り替えることができる。
【００２３】
しかも、そのようなモード切り替えを実現するに当たって、第一ＵＳＢデバイス側には、何ら特殊な構成を追加する必要がなく、例えば、市販されているごく一般的なＵＳＢ２．０対応デバイスであっても、そのようなデバイスを対象に、ＨＳモードからＦＳモードへの切り替え制御を実現できる。
【００２４】
したがって、特殊な仕組みを持ったＵＳＢデバイスを利用する場合に比べ、より安価なＵＳＢデバイスでも利用可能となるので、ＨＳモードからＦＳモードへの切り替え制御を実現可能なシステムを、より低コストで構築することができるようになる。
【００２５】
請求項２に記載のＵＳＢホスト装置は、請求項１に記載のＵＳＢホスト装置において、前記第一処理部は、前記第二処理部が並列に機能し得る状態にない場合に、前記第一ＵＳＢデバイスとの通信を、前記第一ホストコントローラ部を利用して前記ＦＳモードで実行する状態となっていたら、前記第二ホストコントローラ部による制御への切り替えを前記ＵＳＢコントローラに対して指令し、当該指令を受けた前記ＵＳＢコントローラが前記第二ホストコントローラ部を介して前記第一ＵＳＢデバイスに対してバスリセットを発行することで、前記第一ＵＳＢデバイスがＵＳＢ２．０に対応した第一ＵＳＢデバイスであると前記第二ホストコントローラ部が認識したら、以降は、前記第二ホストコントローラを利用して前記ＨＳモードで前記第一ＵＳＢデバイスとの通信を実行することを特徴とする。
【００２６】
このように構成されたＵＳＢホスト装置によれば、第二処理部が並列に機能し得ない状態にある場合に、第一処理部では、第一ＵＳＢデバイスとの間の通信モードを、ＦＳモードからＨＳモードに切り替えることができる。したがって、第二処理部での処理に起因する負荷がかからない状態においては、第一処理部での通信性能を向上させることができる。
【００２７】
請求項３に記載のＵＳＢホスト装置は、請求項２に記載のＵＳＢホスト装置において、前記第一処理部は、前記ＨＳモードから前記ＦＳモードへの切り替えを行う際には、当該切り替えの対象となるＵＳＢポートに関する情報を記憶手段に記憶させ、前記ＦＳモードから前記ＨＳモードへの切り替えを行う際には、当該切り替えの対象となるＵＳＢポートに関する情報が前記記憶手段に記憶されているか否かを確認して、記憶されている場合に、前記ＦＳモードから前記ＨＳモードへの切り替えを行うことを特徴とする。
【００２８】
このように構成されたＵＳＢホスト装置によれば、第一ＵＳＢデバイスとの間の通信モードを、過去にＨＳモードからＦＳモードに切り替えたことがあるＵＳＢデバイスだけを対象に、ＦＳモードからＨＳモードへの切り替えを行うことができる。したがって、過去にＨＳモードからＦＳモードに切り替えたことがないＵＳＢデバイスであるにもかかわらず、誤ってＦＳモードからＨＳモードへの切り替えを行ってしまうのを、未然に防止することができる。
【００２９】
請求項４に記載のＵＳＢホスト装置は、請求項１〜請求項３のいずれか一項に記載のＵＳＢホスト装置において、所定のＯＮ操作が行われた場合に、利用者から見た見かけ上の状態を待機状態から稼働状態に切り替える一方、所定のＯＦＦ操作が行われた場合に、利用者から見た見かけ上の状態を前記稼働状態から前記待機状態に切り替える状態切替手段を備えており、前記第二処理部は、前記見かけ上の状態が前記待機状態とされた場合に、機能し得ない状態となる一方、前記見かけ上の状態が前記稼働状態とされた場合に、機能し得る状態となり、前記第一処理部は、前記見かけ上の状態が前記稼働状態となっている場合に、前記第二処理部が並列に機能し得る状態にあると判断する一方、前記見かけ上の装置状態が前記待機状態となっている場合に、前記第二処理部が並列に機能し得ない状態にあると判断することを特徴とする。
【００３０】
このように構成されたＵＳＢホスト装置によれば、利用者から見た見かけ上の状態が稼働状態になっている場合には、第二処理部での処理を優先的に処理できる。したがって、例えば、利用者が体感する処理速度に影響がない機能に関する処理を第一処理部で処理する一方、利用者が体感する処理速度に影響がある機能に関する処理を第二処理部で処理することで、利用者にとっては処理速度が向上したように感じられる。また、利用者から見た見かけ上の状態が待機状態になっている場合には、第二処理部での処理が不要なので、その分、第一処理部での通信性能を向上させることができる。
【００３１】
請求項５に記載のＵＳＢホスト装置は、請求項１〜請求項４のいずれか一項に記載のＵＳＢホスト装置において、前記第二処理部は、前記所定の処理として、前記ＵＳＢコントローラが備える前記第二ホストコントローラ部を利用して前記ＨＳモードでＵＳＢ２．０に対応した第二ＵＳＢデバイスとの通信を実行することを特徴とする。
【００３２】
このように構成されたＵＳＢホスト装置によれば、第二処理部がＨＳモードで第二ＵＳＢデバイスと通信を行う場合に、第一処理部がＦＳモードで第一ＵＳＢデバイスと通信を行うことで、ＵＳＢコントローラにかかる負荷を、第一ホストコントローラ部と第二ホストコントローラ部に分散させることができる。
【００３３】
すなわち、第二処理部がＨＳモードで第二ＵＳＢデバイスと通信を行う場合に、第一処理部がＨＳモードで第一ＵＳＢデバイスとの通信を継続すると、ＵＳＢコントローラにかかる負荷は第二ホストコントローラ部側に集中するが、上記構成により、このような負荷集中を回避できる。
【００３４】
したがって、第二ホストコントローラ部においてデータ入出力の調停が必要となる機会は減少することになり、ＵＳＢコントローラが備えるハードウェア資源を効率良く利用することができる。
【００３５】
請求項６に記載のＵＳＢホスト装置は、請求項５に記載のＵＳＢホスト装置において、前記第一ＵＳＢデバイスは、通信先と制御手段の間に介在して、前記制御手段から受信したデータを前記通信先へ無線通信で送信するとともに、前記通信先から無線通信で受信したデータを前記制御手段へと送信する無線方式のＵＳＢモデムデバイスであり、前記第一処理部は、前記ＵＳＢモデムデバイスを介して前記通信先から楽曲データを取得する処理を実行可能に構成されており、前記第二ＵＳＢデバイスは、楽曲データに基づいて演奏音を発生させるＵＳＢ音源デバイスで、前記第二処理部は、前記ＵＳＢ音源デバイスを制御して演奏音を発生させる処理を実行可能に構成されていることを特徴とする。
【００３６】
このように構成されたＵＳＢホスト装置は、例えば、カラオケ装置として利用するのに好適なものであり、利用者から見かけ上の状態が稼働状態になっている場合には、通信先からのデータ取得処理よりも、楽曲の演奏処理を優先的に処理できる。
【００３７】
したがって、カラオケ利用者にとっては、カラオケ装置を利用するときに体感する処理速度（カラオケ装置の応答性能など）が向上する。また、見かけ上の状態が待機状態になっている場合には、カラオケ利用者がカラオケ装置としての利用をしていないときなので、楽曲の演奏処理は不要であり、その分、通信先からのデータ取得処理において、通信性能を向上させることができる。
【図面の簡単な説明】
【００３８】
【図１】ＵＳＢホスト装置及びＵＳＢデバイスを内蔵するカラオケ装置と、そのカラオケ装置の通信先となる機器を示すブロック図。
【図２】ＵＳＢコントローラを示すブロック図。
【図３】ＵＳＢデバイスのスピードを変更する処理のフローチャート。
【図４】ＵＳＢデバイスのスピード変更が可能か否かを判断する処理のフローチャート。
【図５】ＵＳＢデバイスとの通信を一旦中断する処理のフローチャート。
【図６】（ａ）はカーネルサブルーチン＃１のフローチャート、（ｂ）はカーネルサブルーチン＃２のフローチャート。
【図７】スピード変更後のＵＳＢデバイスとの通信を再開する処理のフローチャート。
【発明を実施するための形態】
【００３９】
次に、本発明の実施形態について一例を挙げて説明する。
［カラオケ装置と、その通信先機器の構成］
図１に示すカラオケ装置１は、本発明の一実施形態に相当するＵＳＢホスト装置１Ａ、ＵＳＢモデム１Ｂ、ＵＳＢストレージ１Ｃ、及びＵＳＢ音源１ＤなどのＵＳＢデバイス群、ＨＤＤ（ハードディスク装置）５、表示部７などを内蔵する装置である。
【００４０】
これらのうち、ＵＳＢホスト装置１Ａは、周知のＣＰＵ３Ａ、ＲＯＭ３Ｂ、ＲＡＭ３Ｃなどを備える制御部３（本発明でいう制御手段の一例に相当。）、及びＵＳＢコントローラ１０などを備えている。
【００４１】
上述したＵＳＢデバイス群は、ＵＳＢコントローラ１０を介してＵＳＢホスト装置１Ａに接続されている。また、カラオケ装置１は、二つの外部ＵＳＢポート１Ｅ，１Ｆを備えており、これらの外部ＵＳＢポート１Ｅ，１ＦもＵＳＢコントローラ１０を介してＵＳＢホスト装置１Ａに接続されている。
【００４２】
ＵＳＢコントローラ１０は、図２に示すように、ＰＣＩバスインターフェース１１、アービター１２、ＯＨＣＩ（Open Host Controller Interface）ホストコントローラ１３Ａ，１３Ｂ、ＥＨＣＩ（Enhanced Host Controller Interface）ホストコントローラ１４、ルートハブ１５、ＵＳＢ物理層１６などを備える。なお、本実施形態においては、これらの構成が１チップ上に集積された市販品（ＥＨＣＩ仕様ＵＳＢホストＬＳＩ、製品名：μＰＤ７２０１０１、ＮＥＣエレクトロニクス株式会社製）を使用している。
【００４３】
これらのうち、ＯＨＣＩホストコントローラ１３Ａ，１３Ｂは、ＵＳＢ１．１で規定されたＦＳモード（通信速度：１２Ｍｂｐｓ）及びＬＳモード（通信速度：１．５Ｍｂｐｓ）での通信を制御するコントローラである。また、ＥＨＣＩホストコントローラ１４は、ＵＳＢ２．０で規定されたＨＳモード（通信速度：４８０Ｍｂｐｓ）での通信を制御するコントローラである。
【００４４】
ルートハブ１５は、ＵＳＢ物理層１６が有する５つのＵＳＢポートと、上述のＯＨＣＩホストコントローラ１３Ａ，１３ＢないしＥＨＣＩホストコントローラ１４との接続を制御している。このルートハブ１５によって、上記５つのＵＳＢポートは、それぞれがＯＨＣＩ側又はＥＨＣＩ側のいずれかに選択的に接続される。また、上述のＯＨＣＩホストコントローラ１３Ａ，１３ＢないしＥＨＣＩホストコントローラ１４とＰＣＩバスインターフェース１１との接続は、アービター１２によって調停される。
【００４５】
また、図１に示したＵＳＢモデム１Ｂは、３Ｇ方式で無線通信が可能な装置で、このＵＳＢモデム１Ｂを利用して、カラオケ装置１は、無線通信網２１を介して楽曲配信用サーバ２２と通信可能となっている。
【００４６】
ＵＳＢストレージ１Ｃは、何らかの原因でＨＤＤ５からプログラムを読み込むことができない状況に陥った場合に（例えば、ＨＤＤ５が故障した場合）に、その代替手段として機能するデバイスである。
【００４７】
すなわち、カラオケ装置１の起動時には、通常、ＨＤＤ５からＯＳ（Operating System；本実施形態においてはＬｉｎｕｘ（登録商標））や各種プログラムが制御部３に読み込まれる。
【００４８】
ただし、そのような通常の起動ができない緊急時には、ＵＳＢストレージ１ＣからＯＳや各種プログラムが読み込まれることで、一部の機能に制限は生じるものの、主要な機能は利用可能となる仕組みになっている。
【００４９】
ＵＳＢ音源１Ｄは、ＨＤＤ５又はＵＳＢストレージ１Ｃに格納された楽曲データに基づいて演奏音を発生させる装置である。
ＨＤＤ５は、上述した通り、ＯＳや各種プログラムを格納する装置で、シリアルＡＴＡ方式のインターフェースを介して制御部３に接続されている。
【００５０】
表示部７は、各種情報を表示する装置で、この表示部７には、様々な発光部（例えば、液晶ディスプレイのバックライトやイルミネーション等）が設けられている。これらの発光部は、カラオケ装置１が待機状態にある場合には消灯しており、リモコン操作等によりカラオケ装置１の電源ＯＮ操作が行われてカラオケ装置１が稼働状態になった場合に点灯する。
【００５１】
ただし、上述した待機状態及び稼働状態は、カラオケ装置１の利用者から見た見かけ上の状態であり、待機状態になっている場合でも、制御部３は、必要に応じて各種内部処理を実行し得る状態にある。
【００５２】
例えば、カラオケ装置１が待機状態にある場合でも、カラオケ装置１は、ＵＳＢモデム１Ｂを利用して楽曲配信用サーバ２２との通信を行い、楽曲配信用サーバ２２から楽曲データを取得してＨＤＤ５に格納する処理などを実行している。
【００５３】
この他、カラオケ装置１は、外部ＵＳＢポート１Ｅに接続されたＵＳＢシリアルケーブル２３を介して、集中管理装置２４とも通信可能になっている。集中管理装置２４は、カラオケ装置１の利用状況や課金に関する情報を管理する装置である。
【００５４】
［ＵＳＢデバイスのスピード変更処理］
次に、ＵＳＢデバイスのスピード変更処理について説明する。以下に説明する「ＵＳＢデバイスのスピード変更処理」は、カラオケ装置１において、制御部３にかかる負荷が増大し得る状態にある場合には、制御部３にかかる負荷を軽減するために実行される。また、制御部３にかかる負荷が増大し得ない状態にある場合には、処理速度（ＵＳＢデバイスとの通信速度）の向上を図るために実行される。
【００５５】
具体例を交えて説明すれば、例えば、カラオケ装置１が上述した待機状態にある場合には、楽曲の演奏やそれに伴う映像の再生などを行う可能性がない。そのため、待機状態であれば、ＵＳＢ音源１Ｄの制御に伴う負荷に関し、制御部３にかかる負荷が増大し得ない状態にあるといえる。
【００５６】
そこで、この場合、ＵＳＢ音源１Ｄの制御が不要な分だけ、制御部３には余力があるので、この状態において楽曲配信用サーバ２２との通信を行う際には、ＵＳＢモデム１Ｂとの通信モードとしてＵＳＢ２．０で規定されたＨＳモードを利用する。
【００５７】
ただし、このカラオケ装置１の場合、楽曲配信用サーバ２２との通信を開始する時点で、ＵＳＢモデム１Ｂとの通信モードとして、ＵＳＢ１．１で規定されたＦＳモードが設定されていることがある。
【００５８】
そのため、このような場合に、以下に説明する「ＵＳＢデバイスのスピード変更処理」を実行することにより、ＵＳＢモデム１Ｂとの通信モードをＦＳモードからＨＳモードに切り替える。その結果、楽曲配信用サーバ２２との通信速度を向上させることができることになる。
【００５９】
逆に、例えば、カラオケ装置１が上述した稼働状態にある場合には、楽曲の演奏やそれに伴う映像の再生などを行う可能性がある。そのため、稼働状態であれば、ＵＳＢ音源１Ｄの制御に伴う負荷に関し、制御部３にかかる負荷が増大し得る状態にあるといえる。この場合、ＵＳＢ音源１Ｄの制御に伴う負荷が制御部３にかかり、その結果として、万一制御部３に余力がなくなるようなことがあれば、楽曲の演奏やそれに伴う映像の再生などに悪影響が及ぶおそれもある。
【００６０】
そこで、この状態において、楽曲配信用サーバ２２との通信を行う際には、ＵＳＢモデム１Ｂとの通信モードとして、上述のＦＳモードを利用する。ただし、このカラオケ装置１の場合、楽曲配信用サーバ２２との通信を開始する時点で、ＵＳＢモデム１Ｂとの通信モードとして上述のＨＳモードが設定されていることがある。
【００６１】
そのため、このような場合に、以下に説明する「ＵＳＢデバイスのスピード変更処理」を実行することにより、ＵＳＢモデム１Ｂとの通信モードをＨＳモードからＦＳモードに切り替える。その結果、制御部３にかかる負荷を軽減できることになる。
【００６２】
なお、以上説明した事例は、楽曲配信用サーバ２２との通信開始を契機として、その時点でカラオケ装置１が待機状態か稼働状態かを判断するとともに、ＵＳＢモデム１Ｂの通信モードを判断する事例である。この場合、二つの判断結果の組み合わせから、必要があれば以下に説明する「ＵＳＢデバイスのスピード変更処理」を実行し、ＵＳＢモデム１Ｂの通信モードを切り替えることになる。
【００６３】
また、カラオケ装置１の状態が、待機状態及び稼働状態のうち、いずれか一方の状態から他方の状態に切り替わったことを契機として、楽曲配信用サーバ２２との通信中か否かを判断するとともに、ＵＳＢモデム１Ｂの通信モードを判断することもある。
【００６４】
この場合も、二つの判断結果の組み合わせから、必要があれば以下に説明する「ＵＳＢデバイスのスピード変更処理」を実行し、ＵＳＢモデム１Ｂの通信モードを切り替えることになる。
【００６５】
さらに、以上の事例は、ＦＳモードに切り替えることでＵＳＢモデム１Ｂとの通信にかかる負荷を軽減したり、ＨＳモードに切り替えることでＵＳＢモデム１Ｂとの通信を高速化したりする事例であるが、ＵＳＢモデム１Ｂ以外の事例も考え得る。
【００６６】
例えば、ＦＳモードに切り替えることでＵＳＢストレージ１Ｃとの通信にかかる負荷を軽減したり、ＨＳモードに切り替えることでＵＳＢストレージ１Ｃとの通信を高速化したりすることができる。
【００６７】
また、ＦＳモードに切り替えることで集中管理装置２４との通信にかかる負荷を軽減したり、ＨＳモードに切り替えることで集中管理装置２４との通信を高速化したりすることもできる。
【００６８】
これらの切り替えを行っても、制御部３にかかる負荷を増減調整できるので、カラオケ装置１が稼働状態となったときには、ＵＳＢストレージ１Ｃや集中管理装置２４との通信にかかる負荷を軽減する、といった対応が可能となるのである。
【００６９】
次に、以上説明したようなＵＳＢデバイスのスピード変更処理について、その詳細を図３〜図７のフローチャートに基づいて説明する。
この処理を開始すると、制御部３は、図３に示すように、スピードの変更対象として指定されたＵＳＢデバイスは、現在スピード変更が可能な状態にあるか否かを判断する処理を実行する（Ｓ１０５）。このＳ１０５の詳細は、図４に示す通りである。
【００７０】
図４に示す処理では、指定のデバイスがＵＳＢデバイスでなければ（Ｓ２０５：いいえ）、図４に示す処理を終了し、不可能である旨の戻り値を返す。一方、指定のデバイスがＵＳＢデバイスであれば（Ｓ２０５：はい）、指定のデバイスがＵＳＢ−ＨＵＢ経由で接続されたデバイスである場合（Ｓ２１０：はい）、図４に示す処理を終了し、不可能である旨の戻り値を返す。
【００７１】
一方、指定のデバイスがＵＳＢ−ＨＵＢ経由で接続されたデバイスではない場合（Ｓ２１０：いいえ）、矛盾があるか否かの判断がなされる（Ｓ２１５）。具体例を挙げれば、例えば、すでにＵＳＢ１．１のＦＳモードとなっているのにＵＳＢ１．１のＦＳモードへの変更要求であったり、すでにＵＳＢ２．０のＨＳモードとなっているのにＵＳＢ２．０のＨＳモードへの変更要求であったりすれば、これらは矛盾すると判断される。
【００７２】
また、後述する処理の中では、ＵＳＢ２．０のＨＳモードからＵＳＢ１．１のＦＳモードへの変更が行われた場合に、そのような変更が行われたことを「ＵＳＢスピード変更テーブル」に記録する。
【００７３】
そのため、変更要求がＵＳＢ１．１のＦＳモードからＵＳＢ２．０のＨＳモードへの変更要求であれば、「ＵＳＢスピード変更テーブル」に記録が残っているか否かを調べ、記録が残っていなければ矛盾するとの判断がなされる。
【００７４】
そして、変更要求とＵＳＢスピードなどが矛盾する場合には（Ｓ２１５：矛盾する）、図４に示す処理を終了し、不可能である旨の戻り値を返す。一方、変更要求とＵＳＢスピードなどが矛盾しない場合（Ｓ２１５：矛盾しない）、指定のデバイスがＵＳＢストレージであれば（Ｓ２２０：はい）、クローズできないファイルがある場合は（Ｓ２２５：はい）、図４に示す処理を終了し、不可能である旨の戻り値を返す。一方、クローズできないファイルがない場合は（Ｓ２２５：いいえ）、図４に示す処理を終了し、可能である旨の戻り値を返す。
【００７５】
また、指定のデバイスがＵＳＢストレージではなかった場合（Ｓ２２０：いいえ）、指定のデバイスがＵＳＢシリアルであれば（Ｓ２３０：はい）、図４に示す処理を終了し、可能である旨の戻り値を返す。一方、指定のデバイスがＵＳＢシリアルではなかった場合（Ｓ２３０：いいえ）、指定のデバイスがＵＳＢモデムであれば（Ｓ２３５：はい）、図４に示す処理を終了し、可能である旨の戻り値を返す。また、指定のデバイスがＵＳＢモデムではなかった場合は（Ｓ２３５：いいえ）、図４に示す処理を終了し、不可能である旨の戻り値を返す。
【００７６】
以上のようにして図４に示す処理を終了すると、図３に示すＳ１０５においては、不可能である旨の戻り値が返された場合（Ｓ１０５：不可能）、図３に示す処理はエラー終了する。一方、可能である旨の戻り値が返された場合（Ｓ１０５：可能）、制御部３は、指定のＵＳＢデバイスとの通信を一旦中断する処理を実行する（Ｓ１１０）。このＳ１１０の詳細は、図５に示す通りである。
【００７７】
すなわち、図５に示す処理では、指定のデバイスがＵＳＢストレージである場合（Ｓ３０５：はい）、ＵＳＢストレージ上にオープン中のファイルがあれば（Ｓ３１０：ある）、ＵＳＢストレージ上の全てのファイルをクローズして（Ｓ３１５）、Ｓ３２０へと進む。一方、ＵＳＢストレージ上にオープン中のファイルがない場合は（Ｓ３１０：ない）、Ｓ３２０へと進む。
【００７８】
Ｓ３２０では、ＵＳＢストレージがマウント中であれば（Ｓ３２０：はい）、後述する処理において再マウントするためにマウント状態を記憶し、ＵＳＢストレージをアンマウントし（Ｓ３２５）、図５に示す処理を終了する。また、ＵＳＢストレージがマウント中でなければ（Ｓ３２０：いいえ）、そのまま図５に示す処理を終了する。
【００７９】
さて一方、Ｓ３０５において、指定のデバイスがＵＳＢストレージではない場合（Ｓ３０５：いいえ）、指定のデバイスがＵＳＢシリアルであれば（Ｓ３３０：はい）、制御部３は、フロー制御をＯＦＦ状態にして通信相手に一時通信停止を要求する（Ｓ３３５）。そして、シリアルポートをクローズして（Ｓ３４０）、図５に示す処理を終了する。
【００８０】
また、Ｓ３３０において、指定のデバイスがＵＳＢシリアルではない場合（Ｓ３３０：いいえ）、指定のデバイスがＵＳＢモデムでなければ（Ｓ３４５：いいえ）、図５に示す処理をエラー終了する。一方、指定のデバイスがＵＳＢモデムである場合（Ｓ３４５：はい）、Ｓ３５０へ進む。
【００８１】
ここで、モデム通信中である場合は（Ｓ３５０：はい）、モデム通信中だったことを記憶して、モデム通信の切断を実行してから（Ｓ３５５）、Ｓ３６０へと進む。また、モデム通信中でない場合は（Ｓ３５０：いいえ）、そのままＳ３６０へと進む。そして、シリアルポートをクローズして（Ｓ３６０）、図５に示す処理を終了する。
【００８２】
図５に示す処理を終了すると、図３のＳ１１５へと進む。ここで、ＵＳＢ２．０からＵＳＢ１．１への切り替えである場合（Ｓ１１５：ＵＳＢ２．０→１．１）、カーネルサブルーチン＃１をコールする（Ｓ１２０）。また、ＵＳＢ１．１からＵＳＢ２．０への切り替えである場合（Ｓ１１５：ＵＳＢ１．１→２．０）、カーネルサブルーチン＃２をコールする（Ｓ１２５）。これらＳ１２０，Ｓ１２５の詳細は、図６（ａ）及び同図（ｂ）に示す通りである。
【００８３】
すなわち、図６（ａ）に示すカーネルサブルーチン＃１を開始すると、制御部３は、まず、ＥＨＣＩのポートステータスレジスタをリードし、変数ｅｈｃｉ＿ｐｓｔａｔ＿ｖａｌに格納する（Ｓ４０５）。
【００８４】
そして、変数ｅｈｃｉ＿ｐｓｔａｔ＿ｖａｌのＰＯＲＴ＿ＯＷＮＥＲビット（０ｘ００００２０００の位置）を１にして（Ｓ４１５）、変数ｅｈｃｉ＿ｐｓｔａｔ＿ｖａｌの値をＥＨＣＩのポートステータスレジスタにライトする（Ｓ４１５）。これらＳ４０５〜Ｓ４１５の処理の結果、ポートオーナーがＥＨＣＩからＯＨＣＩに切り替わる。
【００８５】
このような切り替えが行われた際、ＯＨＣＩホストコントローラ１３Ａ（又は１３Ｂ）は、ＵＳＢ１．１対応のＵＳＢデバイスが接続されていれば、そのＵＳＢデバイスが有するプルアップ抵抗の接続位置に基づいて、そのＵＳＢデバイスがＦＳモード対応機器なのかＬＳモード対応機器なのかを認識する。
【００８６】
しかし、本実施形態の場合、指定のデバイスは、すでにＵＳＢホスト装置１Ａとのネゴシエーションが完了して、ＵＳＢ２．０対応機器として稼働している状態にあり、指定のデバイス側では、プルアップ抵抗がＯＦＦにされている。そのため、このままでは、ＯＨＣＩホストコントローラ１３Ａ（又は１３Ｂ）としては、ＦＳモード対応のＵＳＢデバイス及びＬＳモード対応のＵＳＢデバイスのいずれも認識することができない。
【００８７】
そこで、制御部３は、Ｓ４１５を実行した後、定数ＲＨ＿ＰＳ＿ＰＲＳ（０ｘ００００００１０）をＯＨＣＩのポートステータスレジスタにライトして（Ｓ４２０）、図６（ａ）に示した処理を終了する。
【００８８】
このＳ４２０により、ＵＳＢホスト装置１Ａから指定のデバイスに対し、バスリセットが発行されることになり、これに伴い、指定のデバイスは、初期状態に戻る。そのため、ＵＳＢホスト装置１Ａと指定のデバイスは、ＵＳＢ２．０に準拠した手順でネゴシエーションを開始する。
【００８９】
具体的には、ＵＳＢホスト装置１Ａと指定のデバイスが、ＵＳＢ２．０に準拠した手順でネゴシエーションを開始すると、まず、指定のデバイスは、ＵＳＢ１．１に準拠したＦＳモード対応機器として振る舞う。その際、指定のデバイス側では、プルアップ抵抗がＦＳモード対応の接続位置（信号線Ｄ＋側）に接続され、これにより、指定のデバイスがＦＳモード対応機器であることを、ＵＳＢホスト装置１Ａ側へと伝達する。
【００９０】
一方、ＵＳＢホスト装置１Ａ側では、ＵＳＢ１．１に準拠して通信を制御するＯＨＣＩホストコントローラ１３Ａ（又は１３Ｂ）が機能する状態に切り替わっている。そのため、上記のような状況になれば、指定のデバイスを、ＵＳＢ１．１に準拠したＦＳモード対応機器として認識する。
【００９１】
その結果、ＵＳＢホスト装置１Ａと指定のデバイスは、ＵＳＢ１．１に準拠した手順でネゴシエーションを進めることになる。つまり、ＵＳＢホスト装置１Ａ及び指定のデバイスは、双方ともＵＳＢ２．０対応機器としては機能せず、ＵＳＢ１．１のＦＳモード対応機器として機能する状態になる。
【００９２】
一方、図６（ｂ）に示すカーネルサブルーチン＃２を開始すると、制御部３は、まず、ＥＨＣＩのポートステータスレジスタをリードし、変数ｅｈｃｉ＿ｐｓｔａｔ＿ｖａｌに格納する（Ｓ５０５）。そして、変数ｅｈｃｉ＿ｐｓｔａｔ＿ｖａｌのＰＯＲＴ＿ＯＷＮＥＲビット（０ｘ００００２０００の位置）を０にして（Ｓ５１０）、変数ｅｈｃｉ＿ｐｓｔａｔ＿ｖａｌの値をＥＨＣＩのポートステータスレジスタにライトし（Ｓ５１５）、図６（ｂ）に示した処理を終了する。
【００９３】
このＳ５１５により、ポートオーナーがＥＨＣＩに切り替わり、自動的にバスリセットがかかる。そのため、ＵＳＢホスト装置１Ａと指定のデバイスは、ＵＳＢ２．０に準拠した手順でネゴシエーションを開始する。
【００９４】
なお、以上のようにしてカーネルサブルーチン＃１，＃２を終えると、図３のＳ１２０，Ｓ１２５を終えたことになる。Ｓ１２０を終えた場合には、ＵＳＢポートを「ＵＳＢスピード変更テーブル」に記憶して（Ｓ１３０）、Ｓ１３５へと進む。図３のＳ１２５を終えた場合は、そのままＳ１３５へと進む。
【００９５】
Ｓ１３５では、スピード変更後のデバイスが出現するのを待機し（Ｓ１３５：いいえ）、タイムアウトになれば（Ｓ１３５：タイムアウト）、図３に示す処理をエラー終了する。一方、スピード変更後のデバイスが出現したら（Ｓ１３５：はい）、スピード変更後のＵＳＢデバイスとの通信を再開する処理を実行する（Ｓ１４０）。このＳ１４０は、詳しくは図７に示す処理となる。
【００９６】
すなわち、まず、指定のデバイスがＵＳＢストレージである場合（Ｓ６０５：はい）、マウント状態が記録されていれば（Ｓ６１０：はい）、記録を元にスピード変更後のＵＳＢストレージをマウントする（Ｓ６１５）。
【００９７】
これにより、このＵＳＢストレージは、アンマウントされた元のマウントポイントに再マウントされることになる。そして、不要となったマウント状態記録については、これを破棄して（Ｓ６２０）、図７に示す処理を終了する。なお、マウント状態が記録されていなければ（Ｓ６１０：いいえ）、そのまま図７に示す処理を終了する。
【００９８】
一方、Ｓ６０５において、指定のデバイスがＵＳＢストレージではない場合（Ｓ６０５：いいえ）、指定のデバイスがＵＳＢシリアルであれば（Ｓ６２５：はい）、シリアルポートをオープンする（Ｓ６３０）。そして、フロー制御をＯＮ状態にして、通信相手に通信再開可能を通知し（Ｓ６３５）、図７に示す処理を終了する。
【００９９】
また、Ｓ６２５において、指定のデバイスがＵＳＢシリアルでない場合（Ｓ６２５：いいえ）、指定のデバイスがＵＳＢモデムでなければ（Ｓ６４０：いいえ）、図７に示す処理をエラー終了する。一方、指定のデバイスがＵＳＢモデムである場合（Ｓ６４０：はい）、シリアルポートをオープンする（Ｓ６４５）。
【０１００】
そして、スピード変更前にモデム通信中だった場合は（Ｓ６５０：はい）、モデム通信を再開して（Ｓ６５５）、図７に示す処理を終了する。なお、スピード変更前にモデム通信中でなければ（Ｓ６５０：いいえ）、そのまま図７に示す処理を終了する。
【０１０１】
なお、以上のようにして図７に示す処理を終了したら、図３のＳ１４０を終え、「ＵＳＢデバイスのスピード変更処理」が完了する。
［効果］
以上説明したカラオケ装置１によれば、カラオケ装置１が稼働状態となり、ＵＳＢ音源１Ｄの制御を行うタスク（本発明でいう第二処理部の一例に相当）が機能し得る場合、ＵＳＢモデム１Ｂとの通信、ＵＳＢストレージ１Ｃとの通信、あるいは集中管理装置２４との通信などを制御するタスク（本発明でいう第一処理部の一例に相当）では、各ＵＳＢデバイスとの間の通信モードを、ＵＳＢデバイスをＵＳＢコントローラのＵＳＢポートに接続したままでＨＳモードからＦＳモードに切り替えることができる。
【０１０２】
したがって、利用者がＵＳＢデバイスをＵＳＢポートに接続した当初の各ＵＳＢデバイスとの通信に必要となる制御部３の処理能力を、目的に応じて低下させることができ、その分だけＵＳＢ技術の特徴である利便性を維持しつつ、ＵＳＢ音源１Ｄの制御に割り当て可能な処理能力を高めることができる。
【０１０３】
また、カラオケ装置１が待機状態となり、ＵＳＢ音源１Ｄの制御を行うタスクが機能し得ない場合、上記各ＵＳＢデバイスとの間の通信モードを、ＵＳＢモデム１ＢをＵＳＢコントローラのＵＳＢポートに接続したままでＦＳモードからＨＳモードに切り替えることができる。したがって、ＵＳＢの利便性を維持しつつ、各ＵＳＢデバイスとの通信速度を向上させることができる。
【０１０４】
しかも、このようなデバイスとの通信速度切り替えを行うに当たって、ＵＳＢデバイス側には特殊な構成を付加しなくてもよいので、先行技術として例示した特許文献１に記載の技術とは異なり、一般的なＵＳＢデバイスを利用して、本発明の構成を実現できる。
【０１０５】
また、上記カラオケ装置１においては、Ｓ２１５において、過去にＨＳモードからＦＳモードに切り替えたことがあるＵＳＢデバイスか否かを判断した上で、ＦＳモードからＨＳモードへの切り替えを行っている。したがって、過去にＨＳモードからＦＳモードに切り替えたことがないＵＳＢデバイスであるにもかかわらず、誤ってＦＳモードからＨＳモードへの切り替えを行ってしまうのを、未然に防止することができる。
【０１０６】
さらに、上記カラオケ装置１においては、利用者から見た見かけ上の状態が稼働状態になっている場合には、ＵＳＢ音源１Ｄの制御を優先的に処理できる。したがって、利用者が体感する処理速度に影響がないＵＳＢデバイス（例えば、ＵＳＢモデム１Ｂ）との通信処理をＵＳＢ１．１で処理し、利用者が体感する処理速度に影響があるＵＳＢ音源１Ｄに対する制御をＵＳＢ２．０で処理することで、利用者にとっては処理速度が向上したように感じられる。また、利用者から見た見かけ上の状態が待機状態になっている場合には、ＵＳＢ音源１Ｄに対する制御が不要なので、その分、他のＵＳＢデバイス（例えば、ＵＳＢモデム１Ｂ）との通信処理における通信性能を向上させることができる。
【０１０７】
また、上記カラオケ装置１において、ＨＳモードでＵＳＢ音源１Ｄと通信を行う場合に、ＦＳモードでＵＳＢモデム１Ｂと通信を行うことで、ＵＳＢコントローラ１０にかかる負荷を、ＯＨＣＩホストコントローラ１３Ａ，１３Ｂ（本発明でいう第一ホストコントローラ部の一例に相当。）とＥＨＣＩホストコントローラ１４（本発明でいう第二ホストコントローラ部の一例に相当。）に分散させることができる。したがって、ＥＨＣＩホストコントローラ１４だけに負荷が集中せず、ＵＳＢコントローラ１０が備えるハードウェア資源を効率良く利用することができる。
【０１０８】
［変形例等］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【０１０９】
例えば、上記実施形態では、ＵＳＢホスト装置１Ａが、カラオケ装置１に組み込まれた例を示したが、カラオケ装置以外の様々な機能を持つＵＳＢホスト装置においても、本発明の構成を採用することができる。
【０１１０】
加えて、上記実施形態では、第一ホストコントローラ部として、二つのＯＨＣＩホストコントローラ１３Ａ，１３Ｂを備え、第二ホストコントローラ部として、一つのＥＨＣＩホストコントローラ１４を備える例を示したが、第一ホストコントローラ部の数は二つに限らず、一つ又は三つ以上となっていてもよい。また、ＯＨＣＩホストコントローラに代えて、ＵＨＣＩ（Universal Host Controller Interface）コントローラを採用してもよい。
【符号の説明】
【０１１１】
１・・・カラオケ装置、１Ａ・・・ＵＳＢホスト装置、１Ｂ・・・ＵＳＢモデム、１Ｃ・・・ＵＳＢストレージ、１Ｄ・・・ＵＳＢ音源、１Ｅ，１Ｆ・・・外部ＵＳＢポート、３・・・制御部、３Ａ・・・ＣＰＵ、３Ｂ・・・ＲＯＭ、３Ｃ・・・ＲＡＭ、５・・・ＨＤＤ、７・・・表示部、１０・・・ＵＳＢコントローラ、１１・・・ＰＣＩバスインターフェース、１２・・・アービター、１３Ａ，１３Ｂ・・・ＯＨＣＩホストコントローラ、１４・・・ＥＨＣＩホストコントローラ、１５・・・ルートハブ、１６・・・ＵＳＢ物理層、２１・・・無線通信網、２２・・・楽曲配信用サーバ、２３・・・ＵＳＢシリアルケーブル、２４・・・集中管理装置。
【図１】
2011203788.tif 000003
【図２】
2011203788.tif 000004
【図３】
2011203788.tif 000005
【図４】
2011203788.tif 000006
【図５】
2011203788.tif 000007
【図６】
2011203788.tif 000008
【図７】
2011203788.tif 000009