(57)【要約】    【課題】  ホストとデバイスの間における通信の安定性を低コストで向上させることができる通信制御装置、通信制御方法、プログラム、及び記憶媒体を提供する。    【解決手段】  データ通信システム１０００は、ＰＣ１００と、ホスト１１０と、デバイス１２０と、デバイス１２０に接続されると共に、ＰＣ１００及びホスト１１０のいずれか一方のホストとの接続を確立するホスト切替え部１３０と、ホスト切替え部１３０及びデバイス１２０に接続されたホスト切替え制御部１４０とを備える。デバイス１２０は、デバイス１２０と接続されているホストの間における通信をホスト切替え制御部１４０が監視するための通信監視信号１８０をホスト切替え制御部１４０へ出力する。【選択図】      図１
2006195589.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのデバイスと複数のホストの間における通信を制御する通信制御装置において、前記デバイスと第１のホストの間において確立している接続を切断すると共に前記デバイスと前記第１のホストとは異なる第２のホストの間において接続を確立することにより前記デバイスに接続すべきホストを切替える切替え手段と、前記切断される接続を介した通信の有無を監視する監視手段とを備えることを特徴とする通信制御装置。
【請求項２】
前記切替え手段は、前記監視手段により前記デバイスと第１のホストが通信中でないと判別されたときに前記切替えを実行することを特徴とする請求項１記載の通信制御装置。
【請求項３】
前記切替え手段により前記切替えを行う際に、前記デバイスと前記第２のホストの間における通信を初期状態で確立すべく前記デバイスをリセットするデバイスリセット手段を備えることを特徴とする請求項１又は２記載の通信制御装置。
【請求項４】
前記デバイスリセット手段は、前記デバイスの電源を制御することにより前記デバイスのリセットを行うことを特徴とする請求項３記載の通信制御装置。
【請求項５】
前記切替え手段と前記少なくとも１つのデバイスの間に設けられ、前記デバイスと前記複数のホストの間における通信を調停する集線装置を備え、前記切替え手段により前記切替えを行う際に、前記デバイスと前記第２のホストの間における通信を初期状態で確立すべく前記集線装置をリセットする集線装置リセット手段を備えることを特徴とする請求項１乃至４のいずれか１項に記載の通信制御装置。
【請求項６】
前記集線装置リセット手段は、前記集線装置の電源を制御することにより前記集線装置のリセットを行うことを特徴とする請求項５記載の通信制御装置。
【請求項７】
少なくとも１つのデバイスと複数のホストの間における通信を制御する通信制御方法において、前記デバイスと第１のホストの間において確立している接続を切断すると共に前記デバイスと前記第１のホストとは異なる第２のホストの間において接続を確立することにより前記デバイスに接続すべきホストを所定の切替え手段により切替える切替えステップと、前記切断される接続を介した通信の有無を監視する監視ステップとを有することを特徴とする通信制御方法。
【請求項８】
前記切替えステップでは、前記監視手段により前記デバイスと第１のホストが通信中でないと判別されたときに前記切替えを実行することを特徴とする請求項７記載の通信制御方法。
【請求項９】
前記切替えステップにおいて前記切替えを行う際に、前記デバイスと前記第２のホストの間における通信を初期状態で確立すべく前記デバイスをリセットするデバイスリセットステップを有することを特徴とする請求項７又は８記載の通信制御方法。
【請求項１０】
前記デバイスリセットステップでは、前記デバイスの電源を制御することにより前記デバイスのリセットを行うことを特徴とする請求項９記載の通信制御方法。
【請求項１１】
前記所定の切替え手段と前記少なくとも１つのデバイスの間に設けられ、前記デバイスと前記複数のホストの間における通信を調停する集線装置を、前記切替えステップにおいて前記切替えを行う際に、前記デバイスと前記第２のホストの間における通信を初期状態で確立すべくリセットする集線装置リセットステップを有することを特徴とする請求項７乃至１０のいずれか１項に記載の通信制御方法。
【請求項１２】
前記集線装置リセットステップでは、前記集線装置の電源を制御することにより前記集線装置のリセットを行うことを特徴とする請求項１１記載の通信制御方法。
【請求項１３】
少なくとも１つのデバイスと複数のホストの間における通信を制御する通信制御方法をコンピュータに実行させるプログラムにおいて、前記デバイスと第１のホストの間において確立している接続を切断すると共に前記デバイスと前記第１のホストとは異なる第２のホストの間において接続を確立することにより前記デバイスに接続すべきホストを切替える切替えモジュールと、前記切断される接続を介した通信の有無を監視する監視モジュールとを備えることを特徴とするプログラム。
【請求項１４】
請求項１３記載のプログラムを格納することを特徴とするコンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、通信制御方法、プログラム、及び記憶媒体に関し、特に、少なくとも１つのデバイスと複数のホストの間における通信を制御する通信制御装置、通信制御方法、プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
制御を行うホストとしてのパーソナルコンピュータ（ＰＣ）と、ホストにより制御されるクライアントとしてのデバイスとの間における接続を確立するためのＵＳＢ（Universal Serial Bus）インターフェースは、詳細に規格化されている（例えば、非特許文献１参照）。このように規格化されたＵＳＢインターフェースには、１つのＰＣと複数のデバイスを接続するためのハブがある。
【０００３】
ハブの規格は、ＰＣを唯一のホストとして策定されているので、１つ又は複数のデバイスを複数のホストと接続することを想定して策定されたものではないが、現在では、さまざまなＵＳＢインターフェースが普及し、このようなＵＳＢインターフェースを用いることにより、ＰＣを介さずに、即ちＰＣ以外のホスト、例えばディジタルカメラであってもさまざまなＵＳＢデバイスと通信を行うことが可能になっている。また、このようなＵＳＢインターフェースを用いることにより、ホスト機能を有する装置、例えばプリンタやディジタルカメラは、内部のＣＰＵとデバイスの間で通信を行うことも可能である。
【０００４】
複数のホストと複数のデバイスの間において、それぞれのホストとデバイスの間における接続を確立させて通信可能にするために、安全に且つ確実に複数のホストを切替える２つの切替え技術が提案されている。
【０００５】
第１の切替え技術では、複数のハブを用いて切替えを行う（例えば、特許文献１参照）。この技術では、各ホストにハブを接続し、各ハブに各デバイスを切替えスイッチを介して接続する。各切替えスイッチを切替えることにより、デバイス毎にホストを選択して、各デバイスをどのホストに接続するのかを決定し、その結果、互いに接続されたデバイスとホストの間で、他のホストやデバイスとは独立して通信を行うことができる。
【０００６】
第２の切替え技術では、複数のソフトウェアを用いて切替えを行う（例えば、特許文献２参照）。これらのソフトウェアは、各ホスト及び各デバイスに接続されたディスクリプタ変換部やデータ転送管理部を構成する。ディスクリプタ変換部は、各ＵＳＢホストに接続される上位ポートを有する擬似ＵＳＢデバイス機能部、及び各ＵＳＢデバイスに接続される下位ポートを有する擬似ＵＳＢホスト部を備える。
【０００７】
擬似ＵＳＢデバイス機能部においては、上位ポートに接続されたＵＳＢホストからのデータを受信してデコード処理及び解析処理を行うと共に、下位ポートに接続されたＵＳＢデバイスからのデータに関しても同様の処理を行う。データ転送管理部においては、擬似ＵＳＢホスト部に送信要求を新たに送信する送信要求制御を行ったり、同様に受信要求制御を行ったりするだけでなく、インターフェースごとにＵＳＢホストとＵＳＢデバイスを関係付けて管理し、必要に応じて、エンドポイント番号の変換や、接続デバイス、インターフェース番号によるデータ転送ルートの制御も行う。
【非特許文献１】「Universal Serial Bus Specification Revision 2.0」、USB Implementers Forum, Inc
【特許文献１】特開２０００−１９４６４９号公報
【特許文献２】特開２００２−３４２２５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記第１の切替え技術では、複数のハブを用いるので、複数のホストそれぞれにハブが必要となると共に、デバイスの数と同数の切替えスイッチが必要となり、コストが高騰化する。
【０００９】
また、上記第２の切替え技術では、複数のソフトウェアを用いるので、ソフトウェアのプログラムが複雑化することに加え、処理の高速化が要求されるので、切断されるホストやデバイスに不具合が発生する可能性があり、ホストとデバイスの間における通信の安定性が低い。不具合としては、ホストの切替え後における切替え前のエラーなどの通信状態の反映や、ホストやデバイスのハングアップなどがある。
【００１０】
本発明の目的は、ホストとデバイスの間における通信の安定性を低コストで向上させることができる通信制御装置、通信制御方法、プログラム、及び記憶媒体を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１記載の通信制御装置は、少なくとも１つのデバイスと複数のホストの間における通信を制御する通信制御装置において、前記デバイスと第１のホストの間において確立している接続を切断すると共に前記デバイスと前記第１のホストとは異なる第２のホストの間において接続を確立することにより前記デバイスに接続すべきホストを切替える切替え手段と、前記切断される接続を介した通信の有無を監視する監視手段とを備えることを特徴とする。
【００１２】
また、請求項２記載の通信制御装置は、請求項１記載の通信制御装置において、前記切替え手段は、前記監視手段により前記デバイスと第１のホストが通信中でないと判別されたときに前記切替えを実行することを特徴とする。
【００１３】
上記目的を達成するために、請求項７記載の通信制御方法は、少なくとも１つのデバイスと複数のホストの間における通信を制御する通信制御方法において、前記デバイスと第１のホストの間において確立している接続を切断すると共に前記デバイスと前記第１のホストとは異なる第２のホストの間において接続を確立することにより前記デバイスに接続すべきホストを所定の切替え手段により切替える切替えステップと、前記切断される接続を介した通信の有無を監視する監視ステップとを有することを特徴とする。
【００１４】
また、請求項８記載の通信制御方法は、請求項７記載の通信制御方法において、前記切替えステップでは、前記監視手段により前記デバイスと第１のホストが通信中でないと判別されたときに前記切替えを実行することを特徴とする。
【００１５】
上記目的を達成するために、請求項１３記載のプログラムは、少なくとも１つのデバイスと複数のホストの間における通信を制御する通信制御方法をコンピュータに実行させるプログラムにおいて、前記デバイスと第１のホストの間において確立している接続を切断すると共に前記デバイスと前記第１のホストとは異なる第２のホストの間において接続を確立することにより前記デバイスに接続すべきホストを切替える切替えモジュールと、前記切断される接続を介した通信の有無を監視する監視モジュールとを備えることを特徴とする。
【００１６】
また、請求項１４記載の記憶媒体は、上記プログラムを備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、デバイスと第１のホストの間において確立している接続を切断する際に、該切断される接続を介した通信の有無を監視するので、ホストとデバイスの間における通信の安定性を低コストで向上させることができる。
【００１８】
また、デバイスと第１のホストが通信中でないと判別されたときに切替えを実行するので、上記効果を確実に奏することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面を参照しながら詳細に説明する。
【００２０】
図１は、本発明の第１の実施の形態に係る通信制御装置を備えるデータ通信システムの構成を概略的に示すブロック図である。
【００２１】
図１において、本実施の形態に係る通信制御装置を備えるデータ通信システム１０００は、第１のホストとしてのパーソナルコンピュータ（ＰＣ）１００と、第２のホストとしてのホスト１１０と、ホストにより制御されるクライアントとしてのデバイス１２０と、デバイス１２０に接続されると共に、ＰＣ１００及びホスト１１０のいずれか一方のホストとの接続を確立するホスト切替え部１３０と、ホスト切替え部１３０及びデバイス１２０に接続されたホスト切替え制御部１４０とを備える。ホスト切替え部１３０及びホスト切替え制御部１４０は、通信制御装置を構成する。ホスト切替え部１３０は、例えば、単純な構成の切替えスイッチから成り、簡単に設けることができる。
【００２２】
ホスト切替え制御部１４０は、ホスト切替え部１３０においてホストを切替えるための切替え信号１６０をホスト切替え部１３０へ出力すると共に、デバイス１２０とホストの間における通信を初期状態で確立すべくデバイス１２０をリセットするためのリセット信号１７０をデバイス１２０へ出力する。デバイス１２０は、デバイス１２０と接続されているホストの間における通信をホスト切替え制御部１４０が監視するための通信監視信号１８０をホスト切替え制御部１４０へ出力する（監視手段）。
【００２３】
図１においては、デバイス１２０は、ホスト切替え部１３０を介したＰＣ１００との接続が確立されており、該接続を介してＰＣ１００と通信可能な状態にある。デバイス１２０は、通信監視信号１８０をホスト切替え制御部１４０へ出力することにより、デバイス１２０と接続が確立しているホストであるＰＣ１００と通信を行っている旨又はＰＣ１００と通信を行っていない旨を示す通信状態を通知する。ホスト切替え制御部１４０は、通信監視信号１８０を受信することにより、デバイス１２０と接続が確立しているホストが、例えばＰＣ１００であることと、デバイス１２０とＰＣ１００の間における通信状態とを検出する。
【００２４】
また、ホスト切替え制御部１４０は、ユーザ又は上位デバイス（不図示）を介してホスト切替え要求を受信可能に構成されており、当該ホスト切替え要求を受信すると、検出したデバイス１２０の通信状態が通信を行っていない旨であることを確認した上でリセット信号１７０をデバイス１２０へ出力してデバイス１２０をリセットし、次いで、切替え信号１６０をホスト切替え部１３０へ出力して後述する図２の切替え処理を行う。該切替え処理では、デバイス１２０に接続されているホストを、例えばＰＣ１００からホスト１１０に切替えて、デバイス１２０とＰＣ１００の間において確立している接続を切断する。切替え処理が終了すると、ホスト切替え制御部１４０は、デバイス１２０が初期状態でホスト１１０と通信を開始すべく、リセット信号１７０によるデバイス１２０のリセットを解除する。
【００２５】
図２は、図１におけるホスト切替え制御部１４０によって実行される切替え処理のフローチャートである。
【００２６】
図２において、まず、ホスト切替え制御部１４０は、切替え要求の受信の有無を常時チェックしており、切替え要求を受信すると（ステップＳ１００でＹＥＳ）、デバイス１２０から受信した通信監視信号１８０を監視することにより通信の監視を行い、所定時間Ｔ0、例えば１秒以上デバイス１２０が通信を行っていないことを以下のように確認する。
【００２７】
ホスト切替え制御部１４０は、まず、予め設定された所定時間Ｔ0を計測するための内部カウンタ（不図示）のカウント値をクリアしてカウントを開始し（ステップＳ１１０）、通信監視信号１８０を監視することによりデバイス１２０が通信中であるか否かを判別し（ステップＳ１２０）、通信中でないときは、内部カウンタのカウント値をインクリメントして、デバイス１２０が通信を行っていない状態が所定時間Ｔ0以上継続していることを確認し（ステップＳ１３０）、内部カウンタのカウント値が所定時間Ｔ0以上であるか否かを判別し（ステップＳ１４０）、該カウント値が所定時間Ｔ0以上であるときは、後述する切替え処理を行って、デバイス１２０に接続されているホストを、例えばＰＣ１００からホスト１１０へ切替えて（ステップＳ１５０）、本処理を終了する。一方、カウント値が所定時間Ｔ0以上でないときは（ステップＳ１４０でＮＯ）、一定時間のウエイトをおき（ステップＳ１６０）、ステップＳ１２０以降の処理に戻って、再度、通信状態を監視する。
【００２８】
ステップＳ１５０における切替え処理では、具体的には、ホスト切替え制御部１４０は、まず、ＵＳＢのデータ線（Ｄ＋）（不図示）にあるプルアップ抵抗を解除（オフ）することにより、接続が確立しているホストであるＰＣ１００にデバイス１２０との接続が電源から切断されたことを通知し、次いで、リセット信号１７０をデバイス１２０へ出力してデバイス１２０をリセットし、続いて、ホスト切替え部１３０に切替え信号１６０を出力することにより、ホスト切替え部１３０でホストをＰＣ１００からホスト１１０へ切替える。ホスト切替え部１３０によるホストの切替えの実行後に、ホスト切替え制御部１４０は、デバイス１２０へのリセット信号１７０の出力を解除し、上記データ線（Ｄ＋）にあるプルアップ抵抗をオンに設定して、ホストの切替え処理を終了する。
【００２９】
ホストの切替え処理が終了すると、デバイス１２０は初期状態で起動されることになる。デバイス１２０は、初期状態での起動後は、例えば、ＵＳＢのエニュメレーション（enumeration）機能により、接続が確立したホスト１１０との通信を行う際の最初の段階に行われるネゴシエーションを開始する。このエニュメレーションにより、デバイス１２０は、相手の機器であるホスト１１０の機器名称や能力等を認識し、ユニークなアドレスを割振るためのやり取りを行う。
【００３０】
なお、ステップＳ１２０の判別の結果、デバイス１２０が通信中であるときは、通信の監視を継続するために、一定時間のウエイトを行って（ステップＳ１９０）、ステップＳ１１０以降の処理に戻って、カウントをクリアして、再度カウントを開始する。
【００３１】
図２の処理によれば、ホスト切替え制御部１４０が通信監視信号１８０を監視することによりデバイス１２０が通信中であるか否かを判別する（ステップＳ１２０）ので、ホストの切替え後における切替え前のエラーなどの通信状態の反映やホストやデバイスのハングアップなどの不具合を監視することができ、もって、ホストとデバイス１２０の間における通信の安定性を低コストで向上させることができる。
【００３２】
また、リセット信号１７０をデバイス１２０へ出力してデバイス１２０をリセットしてから、ホスト切替え部１３０に切替え信号１６０を出力してホストを切替える（ステップＳ１５０）ので、切替え後にはデバイス１２０は初期状態で起動され、切替え後のホストとの正常な通信を確実に行うことができ、上記効果を確実に奏することができる。
【００３３】
さらには、ホスト切替え制御部１４０がＵＳＢのデータ線（Ｄ＋）にあるプルアップ抵抗を解除／オンすることにより、ホストとデバイス１２０の間の接続が電源から切断される（ステップＳ１５０）ので、容易にデバイス１２０を初期状態にすることができる。
【００３４】
なお、図２の処理は、ステップＳ１２０の処理においてデバイス１２０が通信中であるときは再度カウントを開始するように構成されているが、これに代えて、ステップＳ１２０の処理において、デバイス１２０が所定時間、例えば上記時間Ｔ0に等しい時間以上通信中であるときは、ステップＳ１５０の切替え処理を実行することなく終了するように構成してもよい。
【００３５】
なお、上記実施の形態では、ＵＳＢのデータ線（Ｄ＋）にあるプルアップ抵抗の解除／オンなどの電源の制御をホスト切替え制御部１４０が直接的に行ったが、デバイス１２０が行ってもよい。
【００３６】
図３は、本発明の第２の実施の形態に係る通信制御装置を備えるデータ通信システムの構成を概略的に示すブロック図である。
【００３７】
本実施の形態では、上記第１の実施の形態に係るデータ通信システム１０００におけるホスト１１０の代わりにＣＰＵが第２のホストとして機能する点で異なり、上記第１の実施の形態と同一の構成及び要素には、同一の符号を付し、それらの説明を省略する。
【００３８】
図３において、本実施の形態に係る通信制御装置を備えるデータ通信システム１０００’は、第１のホストとしてのＰＣ１００と、第２のホストとしてのＣＰＵ２００と、ＣＰＵ２００に接続されたホストインターフェース（Ｉ／Ｆ）２１０と、ホストにより制御されるクライアントとしてのデバイス１２０と、デバイス１２０に接続されると共に、ＰＣ１００及びＣＰＵ２００のいずれか一方のホストとの接続を確立するホスト切替え部１３０と、ホスト切替え部１３０とデバイス１２０の間に設けられたハブ２３０と、ハブ２３０のダウン（down）ポートとＣＰＵ２００の間に設けられたデバイスインターフェース（Ｉ／Ｆ）２２０とを備える。少なくともホスト切替え部１３０及びＣＰＵ２００は、通信制御装置を構成する。ハブ２３０は、デバイス１２０と複数のホスト、即ちＰＣ１００及びＣＰＵ２００の間における通信を調停する集線装置から成り、複数のホストとデバイス１２０を含む複数のデバイスの間における通信を低コストで実現することができる。
【００３９】
ＣＰＵ２００は、ホスト切替え部１３０においてホストを切替えるための切替え信号１６０をホスト切替え部１３０へ出力すると共に、デバイス１２０とホストの間における通信を初期状態で確立すべくデバイス１２０及びハブ２３０をリセットするためのリセット信号１７０をデバイス１２０及びハブ２３０へ出力する。また、ＣＰＵ２００は、デバイス１２０がＰＣ１００と通信中であるときには、デバイス１２０を制御するためにデバイスＩ／Ｆ２２０及びハブ２３０を介してデバイス１２０と通信を行うため、デバイスＩ／Ｆ２２０が通信中であることを示すソフトウェア上のフラグをオンにする。デバイス１２０は、デバイス１２０と接続されているホストの間における通信をＣＰＵ２００が監視するための通信監視信号１８０をＣＰＵ２００へ出力する。
【００４０】
ＣＰＵ２００は、ホスト切替え部１３０、デバイス１２０、ホストＩ／Ｆ２１０、デバイスＩ／Ｆ２２０、及びハブ２３０に接続されている。デバイス１２０は、ハブ２３０のダウンポートに接続されている。ホスト切替え部１３０は、ハブ２３０のアップ（up）ポートに接続されていると共に、ＣＰＵ２００とはホストＩ／Ｆ２１０を介して接続されている。したがって、ホスト切替え部１３０には、ホストとしてＰＣ１００と、ホストＩ／Ｆ２１０を介してＣＰＵ２００とが接続されていると共に、クライアントとしてハブ２３０を介してデバイス１２０が接続されている。
【００４１】
ＣＰＵ２００は、ホストＩ／Ｆ２１０を介してデバイス１２０との間で通信を行うことにより第２のホストとしてのホスト機能を実現すると共に、デバイスＩ／Ｆ２２０を介してデバイス１２０との間で通信を行うことによりクライアントとしてのクライアント機能を実現し、さらには、切替え信号１６０を出力することにより、上記第１の実施の形態におけるホスト切替え制御部１４０と同等の機能、即ちホスト切替え制御機能を実現する。
【００４２】
本実施の形態における具体例を説明する。
【００４３】
図３のデータ通信システム１０００’は、ＰＣ１００と、ハブ２３０を介して接続されたプリント装置に適用され、該プリント装置は、デバイスＩ／Ｆ２２０及びＣＰＵ２００で構成されたプリンタホストと、デバイス１２０としてのメモリーカードリーダ／ライタとを備える。ＣＰＵ２００は、該プリント装置全体の制御を行う。デバイス１２０から出力される通信監視信号１８０は、メモリーカードリーダ／ライタへのホストからのアクセスを示すアクセス信号で構成される。データ通信システム１０００’においては、ホスト切替え部１３０において確立している接続に応じて、上記メモリーカードリーダ／ライタに対して、ＰＣ１００からアクセスする場合と、上記プリンタホストからアクセスする場合とがある。
【００４４】
ＣＰＵ２００は、デバイスＩ／Ｆ２２０の制御、ホストＩ／Ｆ２１０の制御、後述する図４の切替え処理のための制御を行う。ＰＣ１００は、ホスト切替え部１３０及びハブ２３０を介してデバイス１２０と通信可能に構成されていると共に、デバイスＩ／Ｆ２２０を介してＣＰＵ２００と通信可能に構成されている。同様に、ＣＰＵ２００は、ホストＩ／Ｆ２１０、ホスト切替え部１３０、及びハブ２３０を介してデバイス１２０と通信可能に構成されている。なお、ホストＩ／Ｆ２１０とデバイスＩ／Ｆ２２０は、ホスト切替え部１３０及びハブ２３０を介して互いに接続されているので互いに通信可能に構成されていてもよいが、双方ともプリンタホストであるＣＰＵ２００に制御されるので、ホストＩ／Ｆ２１０とデバイスＩ／Ｆ２２０のいずれか一方がＣＰＵ２００に制御されるように構成されていれば十分である。
【００４５】
図３においては、デバイス１２０は、ホスト切替え部１３０及びハブ２３０を介したＰＣ１００との接続が確立されており、該接続を介してＰＣ１００と通信可能な状態にある。デバイス１２０は、通信監視信号１８０をＣＰＵ２００へ出力することにより、ＰＣ１００と通信を行っている旨又はＰＣ１００と通信を行っていない旨を示す通信状態を通知する。ＣＰＵ２００は、通信監視信号１８０を受信することにより、デバイス１２０と接続が確立しているホストがＰＣ１００であることと、デバイス１２０とＰＣ１００の間における通信状態とを検出すると共に、デバイスＩ／Ｆ２２０のフラグを監視することにより、デバイスＩ／Ｆ２２０がデバイス１２０と通信中であるか否かを検出する。
【００４６】
また、ＣＰＵ２００は、ユーザ又は上位デバイス（不図示）を介してホスト切替え要求を受信可能に構成されており、当該ホスト切替え要求を受信すると、検出したデバイス１２０の通信状態が通信を行っていない旨であることを確認した上でリセット信号１７０をデバイス１２０及びハブ２３０へ出力してデバイス１２０及びハブ２３０をリセットすると共に、ＣＰＵ２００のソフトウェア上で切替えフラグをセットして後述するプリンタデバイスファームウェア休止状態解除処理を行うことによりプリント装置のハードウェアの基本的な制御を行うためのソフトウェアであるプリンタデバイスファームウェアに対して初期化要求を行い、次いで、切替え信号１６０をホスト切替え部１３０へ出力して図４の切替え処理を行う。該切替え処理では、デバイス１２０に接続されているホストを、例えばＰＣ１００からホストＩ／Ｆ２１０、即ちＣＰＵ２００に切替える。切替え処理が終了すると、ＣＰＵ２００は、デバイス１２０及びハブ２３０が初期状態でＣＰＵ２００と通信を開始すべく、リセット信号１７０によるデバイス１２０及びハブ２３０のリセットを解除する。
【００４７】
また、ＣＰＵ２００は、ホストＩ／Ｆ２１０、ホスト切替え部１３０、及びハブ２３０を介してデバイス１２０及びデバイスＩ／Ｆ２２０と接続されるが、前述したようにデバイスＩ／Ｆ２２０と直接的に接続されているので、ホストＩ／Ｆ２１０及びデバイスＩ／Ｆ２２０の間において通信を行う必要はなく、ＣＰＵ２００は、デバイスＩ／Ｆ２２０などのプリンタデバイスファームウェアを休止状態にあるように維持する制御を行う。
【００４８】
次に、図３においてホスト切替え部１３０がホストＩ／Ｆ２１０に接続されている場合について説明する。
【００４９】
ＣＰＵ２００は、ホストＩ／Ｆ２１０、ホスト切替え部１３０、及びハブ２３０を介してデバイス１２０と接続が確立されており、該接続を介してデバイス１２０と通信中であるか否かをＣＰＵ２００の内部のソフトウェア上でセットしたフラグなどを監視することにより検出している。なお、デバイス１２０から出力された通信監視信号１８０を監視することにより、デバイス１２０が通信中であるか否かを検出してもよい。
【００５０】
ＣＰＵ２００は、ホスト切替え要求を受信すると、デバイス１２０と通信中である場合には通信を終了するまで待機（ウエイト）し、通信中でないことを確認した上でリセット信号１７０をデバイス１２０及びハブ２３０へ出力してデバイス１２０及びハブ２３０をリセットし、次いで、切替え信号１６０をホスト切替え部１３０へ出力して図４の切替え処理を行う。該切替え処理では、デバイス１２０に接続されているホストを、例えばホストＩ／Ｆ２１０、即ちＣＰＵ２００からＰＣ１００に切替えて、ホストＩ／Ｆ２１０などのホストファームウェアを切断する。切替え処理が終了すると、ＣＰＵ２００は、デバイス１２０が初期状態でＣＰＵ２００と通信を開始すべく、リセット信号１７０によるデバイス１２０のリセットを解除すると共に、デバイスＩ／Ｆ２２０などのプリンタデバイスファームウェアの休止状態を解除する制御を行う。
【００５１】
図４は、図３におけるＣＰＵ２００によって実行される切替え処理のフローチャートである。
【００５２】
なお、図４の処理において、図２の処理と同様の処理についてはその説明を省略する。
【００５３】
図４において、まず、ＣＰＵ２００は、切替え要求を受信すると（ステップＳ１００でＹＥＳ）、ＰＣ１００からホストＩ／Ｆ２１０、即ち内部のホストへホストを切替える場合と、内部ホストからＰＣ１００へホストを切替える場合とで処理が異なるために、デバイス１２０との接続が確立しているホストがＰＣ１００であるか否かを判別する（ステップＳ２００）。
【００５４】
ホストがＰＣ１００であるときは（ステップＳ２００でＹＥＳ）、図２のステップＳ１１０〜Ｓ１９０の処理と同様の処理を行う（ステップＳ２１０〜Ｓ２９０）。具体的には、ステップＳ２２０におけるデバイス１２０が通信中であるか否かを判別する処理は、通信監視信号１８０及びデバイスＩ／Ｆ２２０のフラグを監視することにより行い、ステップＳ２５０における切替え処理では、ハブ２３０をリセットする処理や上記プリンタデバイスファームウェアを休止状態にする休止処理も行われる。また、該切替え処理において解除／オンなどの電源を制御すべきＵＳＢのデータ線（Ｄ＋）（不図示）にあるプルアップ抵抗は、ハブ２３０のアップポート側、即ち上流側に設けられている。そして、本処理を終了する。
【００５５】
なお、ホストを内部のホストに切替えるので、プリントホストを構成するデバイスＩ／Ｆ２２０を有効にする必要がなく、その結果、デバイスＩ／Ｆ２２０のＵＳＢのデータ線（Ｄ＋）（不図示）にあるプルアップ抵抗をオンに設定する必要をなくすことができる。
【００５６】
一方、ホストがＰＣ１００ではなく内部ホストであるときは（ステップＳ２００でＮＯ）、ＣＰＵ２００は、内部ホストのファームウェアの状態（ステータス）をデバイスＩ／Ｆ２２０のフラグ又は通信監視信号１８０を監視することにより、デバイス１２０と通信中であるか否かを判別し（ステップＳ３２０）、通信中でないことを確認した上で、切替え処理を以下のように行い（ステップＳ３６０）、本処理を終了する。
【００５７】
ステップＳ３６０における切替え処理では、具体的には、ＣＰＵ２００は、まず、内部ホストのホストファームウェアに対してデバイス切断要求を行って、ハブ２３０及びデバイス１２０の内部ホストとの接続を切断するホストファームウェアデバイス切断処理を行い、次いで、ハブ２３０の上流側にあるＵＳＢのデータ線（Ｄ＋）のプルアップ抵抗を解除し、リセット信号１７０をデバイス１２０及びハブ２３０へ出力してデバイス１２０及びハブ２３０をリセットし、続いて、ホスト切替え部１３０に切替え信号１６０を出力することにより、ホスト切替え部１３０でホストをＰＣ１００からホスト１１０へ切替える。切替えが行われた後に、ハブ２３０及びデバイス１２０のリセットを解除し、上記データ線（Ｄ＋）にあるプルアップ抵抗をオンする。さらに、ホストをＰＣ１００に切替えたので、プリンタホストを構成するデバイスＩ／Ｆ２２０を有効にするために、上記プリンタデバイスファームウェアの休止状態を解除することによりアクティブな状態に移行させると共に、デバイスＩ／Ｆ２２０のＵＳＢのデータ線（Ｄ＋）にあるプルアップ抵抗をオンに設定して、ホストの切替え処理を終了する。
【００５８】
ホストの切替え処理が終了すると、デバイス１２０は初期状態で起動されることになる。デバイス１２０は、初期状態での起動後は、例えば、ＵＳＢのエニュメレーション機能により、接続が確立したホスト１１０との通信を行う際の最初の段階に行われるネゴシエーションを開始する。
【００５９】
図４の処理によれば、ＣＰＵ２００がデバイスＩ／Ｆ２２０のフラグ及び／又は通信監視信号１８０を監視することによりデバイス１２０が通信中であるか否かを判別する（ステップＳ２２０，Ｓ３２０）ので、通信の切替え後における切替え前のエラーなどの通信状態の反映やホストやデバイスのハングアップなどの不具合を監視することができ、もって、ホストとデバイス１２０の間における通信の安定性を低コストで向上させることができる。
【００６０】
また、リセット信号１７０をデバイス１２０及びハブ２３０へ出力してデバイス１２０及びハブ２３０をリセットしてから、ホスト切替え部１３０に切替え信号１６０を出力してホストを切替える（ステップＳ２５０，Ｓ３６０）ので、切替え後にはデバイス１２０及びハブ２３０は初期状態で起動され、切替え後のホストとの正常な通信を確実に行うことができ、上記効果を確実に奏することができる。
【００６１】
さらには、ホスト切替え制御部１４０がＵＳＢのデータ線（Ｄ＋）にあるプルアップ抵抗を解除／オンすることにより、図２の処理と同様に、ホストとデバイス１２０の間の接続が電源から切断される（ステップＳ２５０，Ｓ３６０）ので、容易にデバイス１２０を初期状態にすることができる。
【００６２】
なお、図４のステップＳ３２０の処理は、通信処理とホストの切替え処理がそれぞれ別のタスクで行われている場合には、通信タスクに対し通信終了を要求して、ＣＰＵ２００とデバイス１２０の間における通信を終了させるような処理で構成されていてもよい。
【００６３】
なお、上記第２の実施の形態では、ハブ２３０の上流側のＵＳＢのデータ線（Ｄ＋）にあるプルアップ抵抗の解除／オンなどの電源の制御をＣＰＵ２００が直接的に行ったが、これに代えて、ハブ２３０の下流側のＵＳＢのデータ線（Ｄ＋）にあるプルアップ抵抗（不図示）の解除／オンなどをデバイス１２０が行ってもよい。また、デバイスＩ／Ｆ２２０のＵＳＢのデータ線（Ｄ＋）にあるプルアップ抵抗を解除／オンなどの電源の制御を行う場合には、デバイス１２０がハブ２３０の下流側、即ちデバイス１２０側のＵＳＢのデータ線（Ｄ＋）にあるプルアップ抵抗の電源を制御すると同時に、ＣＰＵ２００がハブ２３０の下流側にあるデバイスＩ／Ｆ２２０データ線（Ｄ＋）のプルアップ抵抗の電源を制御してもよい。
【００６４】
また、本発明の目的は、上述した実施の形態のいずれか一方の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【００６５】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態のいずれか一方の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６６】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。又は、プログラムコードをネットワークを介してダウンロードしてもよい。
【００６７】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態のいずれか一方の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施の形態のいずれか一方の機能が実現される場合も含まれる。
【００６８】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施の形態のいずれか一方の機能が実現される場合も含まれる。
【産業上の利用可能性】
【００６９】
本発明の実施の形態に係る通信制御装置、通信制御方法、プログラム、及び記憶媒体は、少なくとも１つのデバイスと複数のホストの間における通信を制御する通信制御装置、通信制御方法、プログラム、及び記憶媒体に適用することができる。
【図面の簡単な説明】
【００７０】
【図１】本発明の第１の実施の形態に係る通信制御装置を備えるデータ通信システムの構成を概略的に示すブロック図である。
【図２】図１におけるホスト切替え制御部によって実行される切替え処理のフローチャートである。
【図３】本発明の第２の実施の形態に係る通信制御装置を備えるデータ通信システムの構成を概略的に示すブロック図である。
【図４】図３におけるＣＰＵによって実行される切替え処理のフローチャートである。
【符号の説明】
【００７１】
１００  パーソナルコンピュータ（ＰＣ）
１１０  ホスト
１２０  デバイス
１３０  ホスト切替え部
１４０  ホスト切替え制御部
１０００，１０００’  データ通信システム
【図１】
2006195589.tif 000003
【図２】
2006195589.tif 000004
【図３】
2006195589.tif 000005
【図４】
2006195589.tif 000006