(57)【要約】【課題】  サーバに負荷をかけずに、デバイスの切替を行なうことができる切替機を提供する。【解決手段】  コンソール側に接続したＵＳＢ装置と、ホスト側に接続したサーバとの接続切り替えを行う切替機１であって、コンソール側に接続したＵＳＢ装置を制御するＵＳＢホストコントローラ回路２と、ＵＳＢ装置の切り替え中もサーバとの接続状態を保つＵＳＢ装置エミュレーション回路３と、ＵＳＢホストコントローラ回路２と、選択されたＵＳＢ装置エミュレーション回路３とを接続するＣＰＵ６とを有する構成としている。このようにＵＳＢエミュレーション回路３が、ＵＳＢ装置の切り替え中もサーバとの接続状態を保つため、サーバには常にＵＳＢ装置が接続されていると認識させることができる。従って、サーバに負荷をかけずに、ＵＳＢ装置の切り替えを行うことができる。【選択図】        図１
2006127252.tif 000002
【特許請求の範囲】
【請求項１】
コンソール側に接続したＵＳＢデバイスと、ホスト側に接続した電子装置との接続切り替えを行う切替機であって、
前記コンソール側に接続した前記ＵＳＢデバイスを制御するＵＳＢホスト回路と、
前記ＵＳＢデバイスの切り替え中も前記電子装置との接続状態を保つＵＳＢ装置エミュレーション回路と、
前記ＵＳＢホスト回路と、前記ＵＳＢ装置エミュレーション回路とを接続する制御回路とを有することを特徴とする切替機。
【請求項２】
前記ＵＳＢホスト回路は、前記ＵＳＢデバイスの接続及び取り外しに関わる処理を前記ＵＳＢホスト回路だけで行うことを特徴とする請求項１記載の切替機。
【請求項３】
前記制御回路は、前記電子装置の切り替えが発生すると、前記ＵＳＢデバイスからの信号の接続先を、選択されたポートの前記ＵＳＢ装置エミュレーション回路に切り替え、
前記ＵＳＢホスト回路は、前記制御回路による前記電子装置の切り替え処理中も前記ＵＳＢデバイスとの接続を維持することを特徴とする請求項１又は２記載の切替機。
【請求項４】
前記ＵＳＢホスト回路は、前記ＵＳＢデバイス内において発生するオーバーカレントに対する処理を、前記ＵＳＢホスト回路だけで行うことを特徴とする請求項１から３のいずれか一項記載の切替機。
【請求項５】
前記ＵＳＢホスト回路は、前記ＵＳＢデバイスで発生するエラーに対する処理を、前記ＵＳＢホスト回路で行うことを特徴とする請求項１から４のいずれか１項記載の切替機。
【請求項６】
前記ＵＳＢホスト回路と前記制御回路とを異なるタイミングでリセットするリセットスイッチを有することを特徴とする請求項１から５のいずれか一項記載の切替機。
【請求項７】
前記ＵＳＢホスト回路は、前記ＵＳＢデバイスから受信したデータをＰＳ／２形式に変換して前記制御回路に送信することを特徴とする請求項１から６のいずれか一項記載の切替機。
【請求項８】
前記ＵＳＢホスト回路は、前記ＵＳＢデバイスから受信したデータをシリアルデータに変換して前記制御回路に送信することを特徴とする請求項１から６のいずれか一項記載の切替機。
【請求項９】
前記ＵＳＢ装置エミュレーション回路は、前記コンソール側に接続した複数のＵＳＢキーボード及びＵＳＢマウスを一組のＵＳＢキーボード及びＵＳＢマウスとして前記電子装置にエニュメレーションさせることを特徴とする請求項１から８のいずれか一項記載の切替機。
【請求項１０】
前記ＵＳＢ装置エミュレーション回路は、前記コンソール側にＵＳＢハブを介して接続された複数のＵＳＢキーボード及びＵＳＢマウスを一組のＵＳＢキーボード及びＵＳＢマウスとして前記電子装置にエニュメレーションさせることを特徴とする請求項１から９のいずれか一項記載の切替機。
【請求項１１】
前記ＵＳＢホスト回路は、複数の前記ＵＳＢデバイスから受信したデータを合成して前記制御回路に送信することを特徴とする請求項９又は１０記載の切替機。
【請求項１２】
前記制御回路は、所定のキー入力によって切替制御モードへ移行し、ＵＳＢキーボードからのキー入力あるいはＵＳＢマウスからの入力によって接続する前記電子装置を変更可能とすることを特徴とする請求項１から１１のいずれか一項記載の切替機。
【請求項１３】
前記制御回路は、前記切替制御モードに移行すると、前記ＵＳＢ装置エミュレーション回路に切替機接続確認コマンドを送信し、
前記ＵＳＢ装置エミュレーション回路は、ポートからの所定の信号をチェックすることで、複数の前記切替機がカスケード接続されたことを認識し、前記制御回路に通知することを特徴とする請求項１２記載の切替機。
【請求項１４】
前記ＵＳＢ装置エミュレーション回路は、接続した前記ＵＳＢデバイスからディスクリプタを取得して、自身のディスクプタを前記ディスクリプタに書き換え、前記電子装置に、前記ＵＳＢデバイスのディスクリプタを認識させることを特徴とする請求項１から１３のいずれか一項記載の切替機。
【請求項１５】
前記切替機は、前記ＵＳＢ装置エミュレーション回路を複数具備し、複数の任意の前記ＵＳＢデバイスをエミュレーション可能とする請求項１４記載の切替機。
【請求項１６】
前記切替機は、Ｃｏｎｔｒｏｌ転送機能を複数持つＵＳＢ装置エミュレーション回路を具備し、複数の任意のＵＳＢデバイスをエミュレーション可能とする請求項１４の切替機。
【請求項１７】
前記切替機は、他のインタフェースの入出力ポートを備え、前記ＵＳＢデバイスと、前記他のインタフェースの入力デバイスを同時に接続できることを特徴とする請求項１から１６のいずれか一項記載の切替機。
【請求項１８】
前記ＵＳＢホスト回路は、前記ＵＳＢデバイスの接続を検出して、前記他のインタフェースの入力デバイスを無効化することを特徴とする請求項１７記載の切替機。
【請求項１９】
前記制御回路は、ＵＳＢインタフェースの前記ＵＳＢデバイスの接続を前記ＵＳＢホスト回路によって検出すると、前記他のインタフェースの入力デバイスの無効化をソフトウェア的に行うことを特徴とした請求項１７記載の切替機。
【請求項２０】
前記ＵＳＢホスト回路は、前記ＵＳＢデバイスが接続されると、該ＵＳＢデバイスに前記切替機のファームウェアが格納されているか否かをチェックし、該ファームウェアを検出すると前記ファームウェアの書き換えを行うことを特徴とする請求項１から１９のいずれか一項記載の切替機。
【請求項２１】
前記ＵＳＢホスト回路は、複数のファームウェアの更新を同時に行うことを特徴とする請求項２０記載の切替機。
【請求項２２】
前記ＵＳＢデバイスの状態を表示するＬＥＤを具備することを特徴とする請求項１から２１のいずれか一項記載の切替機。
【請求項２３】
前記ＵＳＢデバイスの状態をＯＳＤ表示する表示回路を具備することを特徴とする請求項１から２２のいずれか一項記載の切替機。
【請求項２４】
切替機のコンソール側に接続したＵＳＢデバイスと、ホスト側に接続した電子装置との接続を切り替える切替方法であって、
接続する前記ＵＳＢデバイスを切り替えるステップと、
前記ＵＳＢデバイスの切り替え中も前記電子装置との接続状態を保つステップと、
切り替えた前記ＵＳＢデバイスと前記電子装置とを接続するステップとを有することを特徴とする切替方法。
【請求項２５】
切替機のコンソール側に接続したＵＳＢデバイスと、ホスト側に接続した電子装置との接続を切り替える切替プログラムであって、
コンピュータに、接続する前記ＵＳＢデバイスを切り替える処理と、
前記ＵＳＢデバイスの切り替え中も前記電子装置との接続状態を保つ処理と、
切り替えた前記ＵＳＢデバイスと前記電子装置とを接続する処理とを実行させることを特徴とする切替プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピュータとの接続を切り替えることで入出力装置の共有を実現する切替機、切替方法及びプログラムに関する。
【背景技術】
【０００２】
近年、サーバやＰＣ（パーソナルコンピュータ）に接続するキーボードやマウス等の入出力装置のインタフェースにおいて、ＵＳＢ（Universal Serial Bus）が主流となり、他のインタフェースのキーボード及びマウスの入手が困難になりつつある。
【０００３】
そのような中、複数のコンピュータとの接続を切り替えることで入出力装置の共有を実現する切替機においても、ＵＳＢキーボード及びＵＳＢマウスを接続して切り替える装置が提案されている（特許文献１及び２参照）。
【０００４】
また、特許文献３には、１組のデータ入力機器を接続する主制御回路と、データ入力機器を介して入力される入力データを複数のコンピュータに選択的に送出する選択回路とを備えた選択作動装置が提案されている。
【０００５】
【特許文献１】特開２００１−４３１７８号公報
【特許文献２】特開２０００−３５３１４５号公報
【特許文献３】特許第３１９４０８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したＵＳＢに対応した切替機では、接続するＵＳＢの信号線を機械的に切り替えているだけであり、このような構成の場合、デバイスの接続と取り外しの処理が切替ごとに発生する。このためサーバ側にドライバのロード／アンロード処理が生じ、サーバに負荷がかかると共にドライバのロード／アンロード処理による待ち時間が発生する。またサーバの負荷状況やシステム構成によっては、ドライバのロード／アンロード処理に時間がかかり、切替操作によってドライバのアンロード中にロード処理が入り、システムが不安定になったり、システムが停止し操作不能になる可能性がある。また特許文献３は、ＵＳＢ機器に対応した切替機については開示していない。
【０００７】
本発明は上記事情に鑑みてなされたものであり、サーバに負荷をかけずに、デバイスの切替を行なうことができる切替機、切替方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するために本発明の切替機は、コンソール側に接続したＵＳＢデバイスと、ホスト側に接続した電子装置との接続切り替えを行う切替機であって、前記コンソール側に接続したＵＳＢデバイスを制御するＵＳＢホスト回路と、前記ＵＳＢデバイスの切り替え中も前記電子装置との接続状態を保つＵＳＢ装置エミュレーション回路と、前記ＵＳＢホスト回路と、前記ＵＳＢ装置エミュレーション回路とを接続する制御回路とを有する構成としている。このようにＵＳＢエミュレーション回路が、前記ＵＳＢデバイスの切り替え中も前記電子装置との接続状態を保つため、電子装置には常にＵＳＢデバイスが接続されていると認識させることができる。従って、電子装置に負荷をかけずに、ＵＳＢデバイスの切り替えを行うことができる。
【０００９】
上記構成の切替機において、前記ＵＳＢホスト回路は、前記ＵＳＢデバイスの接続及び取り外しに関わる処理を前記ＵＳＢホスト回路だけで行うとよい。従って、電子装置に負荷をかけずに、ＵＳＢデバイスの切り替えを行うことができる。
【００１０】
上記構成の切替機において、前記制御回路は、前記電子装置の切り替えが発生すると、前記ＵＳＢデバイスからの信号の接続先を、選択されたポートの前記ＵＳＢ装置エミュレーション回路に切り替え、前記ＵＳＢホスト回路は、前記制御回路による前記電子装置の切り替え処理中も前記ＵＳＢデバイスとの接続を維持するとよい。従って、簡単な操作で電子装置の切り替えを行うことができる。
【００１１】
上記構成の切替機において、前記ＵＳＢホスト回路は、前記ＵＳＢデバイス内において発生するオーバーカレントに対する処理を、前記ＵＳＢホスト回路だけで行うとよい。従って、電子装置に負荷をかけずに済む。
【００１２】
上記構成の切替機において、前記ＵＳＢホスト回路は、前記ＵＳＢデバイスで発生するエラーに対する処理を、前記ＵＳＢホスト回路で行うとよい。従って、電子装置に負荷をかけずに済む。
【００１３】
上記構成の切替機において、前記ＵＳＢホスト回路と前記制御回路とを異なるタイミングでリセットするリセットスイッチを有する構成としている。従って、ＵＳＢ装置との通信に異常が発生した場合に、電子装置に影響を与えずにＵＳＢ装置との接続を正常な状態に復帰させることができる。
【００１４】
上記構成の切替機において、前記ＵＳＢホスト回路は、前記ＵＳＢデバイスから受信したデータをＰＳ／２形式に変換して前記制御回路に送信するとよい。また、前記ＵＳＢデバイスから受信したデータをシリアルデータに変換して前記制御回路に送信してもよい。
【００１５】
上記構成の切替機において、前記ＵＳＢ装置エミュレーション回路は、前記コンソール側に接続した複数のＵＳＢキーボード及びＵＳＢマウスを一組のＵＳＢキーボード及びＵＳＢマウスとして前記電子装置にエニュメレーションさせるとよい。複数のＵＳＢキーボード及びＵＳＢマウスを一組のＵＳＢキーボード及びＵＳＢマウスとして動作させることができる。
【００１６】
上記構成の切替機において、前記ＵＳＢ装置エミュレーション回路は、前記コンソール側にＵＳＢハブを介して接続された複数のＵＳＢキーボード及びＵＳＢマウスを一組のＵＳＢキーボード及びＵＳＢマウスとして前記電子装置にエニュメレーションさせるとよい。従って、ＵＳＢハブを介して接続された複数のＵＳＢキーボード及びＵＳＢマウスを一組のＵＳＢキーボード及びＵＳＢマウスとして動作させることができる。
【００１７】
上記構成の切替機において、前記ＵＳＢホスト回路は、複数の前記ＵＳＢデバイスから受信したデータを合成して前記制御回路に送信するとよい。従って、複数のＵＳＢデバイスからのデータを１つのデータとして電子装置に送ることができる。
【００１８】
上記構成の切替機において、前記制御回路は、所定のキー入力によって切替制御モードへ移行し、ＵＳＢキーボードからのキー入力あるいはＵＳＢマウスからの入力によって接続する前記電子装置を変更可能としている。所定のキー入力によって切替制御モードに移行させることができ、キー入力あるいはＵＳＢマウスからの入力によって接続する電子装置を変更することができる。
【００１９】
上記構成の切替機において、前記制御回路は、前記切替制御モードに移行すると、前記ＵＳＢ装置エミュレーション回路に切替機接続確認コマンドを送信し、前記ＵＳＢ装置エミュレーション回路は、ポートからの所定の信号をチェックすることで、複数の前記切替機がカスケード接続されたことを認識し、前記制御回路に通知するとよい。従って、切替機のカスケード接続を切替機が認識することができる。
【００２０】
上記構成の切替機において、前記ＵＳＢ装置エミュレーション回路は、接続した前記ＵＳＢデバイスからディスクリプタを取得して、自身のディスクプタを前記ディスクリプタに書き換え、前記電子装置に、前記ＵＳＢデバイスのディスクリプタを認識させるとよい。従って、任意のＵＳＢデバイスを電子装置に接続することができる。
【００２１】
上記構成の切替機において、前記切替機は、前記ＵＳＢ装置エミュレーション回路を複数具備し、複数の任意の前記ＵＳＢデバイスをエミュレーション可能とするとよい。従って、複数のＵＳＢデバイスを同時に使用することができる。
【００２２】
上記構成の切替機において、前記切替機は、Ｃｏｎｔｒｏｌ転送機能を複数持つＵＳＢ装置エミュレーション回路を具備し、複数の任意のＵＳＢデバイスをエミュレーション可能とするとよい。従って、複数のＵＳＢデバイスを同時に使用することができる。
【００２３】
上記構成の切替機において、前記切替機は、他のインタフェースの入出力ポートを備え、前記ＵＳＢデバイスと、前記他のインタフェースの入力デバイスを同時に接続可能であるとよい。従って、ＵＳＢデバイスと、他のインタフェースの入力デバイスを同時に接続することができる。
【００２４】
上記構成の切替機において、前記ＵＳＢホスト回路は、前記ＵＳＢデバイスの接続を検出して、前記他のインタフェースの入力デバイスを無効化するとよい。従って、ＵＳＢデバイスを他のインタフェースの入力デバイスよりも優先して使用できるように設定できる。
【００２５】
上記構成の切替機において、前記制御回路は、ＵＳＢインタフェースの前記ＵＳＢデバイスの接続を前記ＵＳＢホスト回路によって検出すると、前記他のインタフェースの入力デバイスの無効化をソフトウェア的に行うとよい。従って、ＵＳＢデバイスを他のインタフェースの入力デバイスよりも優先的に使用できるようにすることができる。
【００２６】
上記構成の切替機において、前記ＵＳＢホスト回路は、前記ＵＳＢデバイスが接続されると、該ＵＳＢデバイスに前記切替機のファームウェアが格納されているか否かをチェックし、該ファームウェアを検出すると前記ファームウェアの書き換えを行うとよい。従って、ファームウェアが格納されたＵＳＢ装置を検出するだけでファームウェアを自動的にインストールすることができる。従って、新しいＵＳＢキーボードやＵＳＢマウスへの対応や、機能拡張を可能にすることができる。
【００２７】
上記構成の切替機において、前記ＵＳＢホスト回路は、複数のファームウェアの更新を同時に行うとよい。従って、複数のファームウェアを自動的にインストールすることができる。
【００２８】
上記構成の切替機において、前記ＵＳＢデバイスの状態を表示するＬＥＤ、前記ＵＳＢデバイスの状態をＯＳＤ表示する表示回路を具備しているとよい。
【００２９】
本発明の切替方法は、切替機のコンソール側に接続したＵＳＢデバイスと、ホスト側に接続した電子装置との接続を切り替える切替方法であって、接続する前記ＵＳＢデバイスを切り替えるステップと、前記ＵＳＢデバイスの切り替え中も前記電子装置との接続状態を保つステップと、切り替えた前記ＵＳＢデバイスと前記電子装置とを接続するステップとを有している。このように前記ＵＳＢデバイスの切り替え中も前記電子装置との接続状態を保つため、電子装置には常にＵＳＢデバイスが接続されていると認識させることができる。従って、電子装置に負荷をかけずに、ＵＳＢデバイスの切り替えを行うことができる。
【００３０】
本発明の切替プログラムは、切替機のコンソール側に接続したＵＳＢデバイスと、ホスト側に接続した電子装置との接続を切り替える切替プログラムであって、コンピュータに、接続する前記ＵＳＢデバイスを切り替える処理と、前記ＵＳＢデバイスの切り替え中も前記電子装置との接続状態を保つ処理と、切り替えた前記ＵＳＢデバイスと前記電子装置とを接続する処理とを実行させる。このように前記ＵＳＢデバイスの切り替え中も前記電子装置との接続状態を保つため、電子装置には常にＵＳＢデバイスが接続されていると認識させることができる。従って、電子装置に負荷をかけずに、ＵＳＢデバイスの切り替えを行うことができる。
【発明の効果】
【００３１】
本発明は、サーバに負荷をかけずに、デバイスの切替を行なうことができる切替機を提供することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明を実施するための最良の形態を説明する。
【実施例１】
【００３３】
図１に本実施例の切替機１の構成を示す。図１に示すように切替機１はＵＳＢホストコントローラ回路（以下、ＵＳＢ ＨＣ回路とも表記する）２、ＵＳＢ装置エミュレーション回路３、ビデオ信号切替回路４、切替スイッチ（以下、切替ＳＷとも表記する）５、ＣＰＵ６、ＯＳＤ（On Screen Display）回路７、ＬＥＤ８、リセット回路９、ＵＳＢ Ｉ／Ｆ１０、ＶＧＡ（Video Graphics Array） Ｉ／Ｆ１１等を備えている。
【００３４】
ＵＳＢホストコントローラ回路２は、ＵＳＢキーボード３１、ＵＳＢマウス３２等を接続し、それらＵＳＢ装置とエニュメレーション（enumeration：デバイス認識処理）を行い、キーデータ及びマウスデータを抽出し、ＰＳ／２やＵＡＲＴ(Universal Asynchronous Receiver Transmitter)に対応する信号に変換してＣＰＵ６へ送信する。
【００３５】
ＵＳＢ装置エミュレーション回路３は、接続するＰＣやサーバごとに複数設けられ、ＵＳＢキーボード３１やＵＳＢマウス３２の動作をエミュレーション（emulation：模倣）し、ＣＰＵ６からキーデータ及びマウスデータを受信して接続されているサーバへ送信する。選択されたサーバに接続したＵＳＢ装置エミュレーション回路３は、サーバに対してキーボードやマウスのデータを出力する。また選択されていないサーバに接続したＵＳＢ装置エミュレーション回路３は、キーボードやマウスの動作をエミュレーションしたエミュレーション信号をサーバに出力し、該当するサーバを、キーボードやマウスが接続されているかのような状態とする。
【００３６】
ビデオ信号切替回路４は、ＰＣやサーバから入力される複数のビデオ信号を選択的に切替える。切替スイッチ５は、切替機１に接続されたＰＣやサーバを選択する。
【００３７】
ＣＰＵ６は、ＵＳＢ装置エミュレーション回路３、ビデオ信号切替回路４、切替ＳＷ５等の切り替えを制御し、キーデータ及びマウスデータをＵＳＢホストコントローラ回路２から選択されているＵＳＢ装置エミュレーション回路３へ中継する。
【００３８】
ＯＳＤ回路７は、切替機１の設定や切替制御の表示を行う。ＬＥＤ８は、選択されたＰＣやサーバを点灯表示する。リセット回路９は、切替機１及びＵＳＢホストコントローラ回路２をリセットする。
【００３９】
次に、図２を参照しながらＵＳＢホストコントローラ回路２の構成を説明する。図２に示すようにＵＳＢホストコントーラ回路２は、ＭＣＵ（Micro Controller Unit）２２とＵＳＢホストコントローラ（ＵＳＢ ＨＣ）２１とで構成され、ＭＣＵ２２の外部バスにＵＳＢホストコントローラ２１が接続されている。ＭＣＵ２２は、ＲＯＭおよびＲＡＭ２３を内蔵あるいは外部に接続できる一般的なものであり、ＲＯＭは例えば書換可能なフラッシュＲＯＭ２４である。ＵＳＢホストコントローラ２１は、例えばISP116xシリーズ（Philips社製、商品名）やSL811HS（Cypress社製商品名）等である。ＵＳＢホストコントローラ回路２は、ＭＣＵ２２とＵＳＢトランシーバの構成であってもよい。
【００４０】
またＵＳＢ装置エミュレーション回路３の一構成例としては、ＭＣＵによるＵＳＢ装置のエミュレーションが挙げられる（図１のＵＳＢ装置エミュレーション回路３がＭＣＵに置き換わるだけなので図示せず）。ＭＣＵ２２は、ＲＯＭ及びＲＡＭ等を内蔵した一般的なものであり、ＲＯＭは例えば書換可能なフラッシュＲＯＭである。
【００４１】
なお、ＵＳＢホストコントローラ回路２のＭＣＵ２２、ＵＳＢ装置エミュレーション回路３のＭＣＵ、ＣＰＵ６は、プログラムを記録したメモリからプログラムを読み出して、このプログラムに従った動作を行なうことで、後述するシーケンスやフローチャートに示す手順に従った制御動作を行なう。
【００４２】
図３に切替機１、サーバ、ＵＳＢキーボード３１、ＵＳＢマウス３２、ディスプレイ３３を接続した様子を示す。サーバのＵＳＢとＶＧＡがケーブルによって切替機１のサーバ側インタフェースに接続される。このときのケーブルは、ＵＳＢ、ＶＧＡそれぞれ別であってもよいし、例えばＲＪ４５（Registered Jack 45：８ピンのモジュラ・コネクタ）にＵＳＢとＶＧＡをまとめた１本のケーブルでもよく、切替機１側のインタフェースは、それに合わせた形状（ＵＳＢとＶＧＡあるいはＲＪ４５）となる。図３及び図１では、説明のため、ＵＳＢの信号とＶＧＡの信号の流れが分かりやすいようにＵＳＢとＶＧＡのインタフェースに分け、ケーブルは、ＵＳＢとＶＧＡを１本にまとめた複合ケーブルで表示している。
【００４３】
ディスプレイ３３は、切替機１のコンソール側のＶＧＡインタフェース（ＶＧＡ Ｉ／Ｆ）１１に接続される。ＵＳＢキーボード３１とＵＳＢマウス３２は、それぞれ切替機１のコンソール側のＵＳＢインタフェース（ＵＳＢ Ｉ／Ｆ）１０に接続される。そして、コンソール側のＵＳＢキーボード３１、ＵＳＢマウス３２、ディスプレイ３３が切替機１によって選択されたサーバと接続される。
【００４４】
このとき、切替機内部の信号の流れは、次のようになる。サーバ側では、サーバと切替機１が接続されると、サーバのＵＳＢホストコントローラ（不図示）にＵＳＢ装置エミュレーション回路３が接続され、エニュメレーションが開始される。ここで、ＵＳＢ装置エミュレーション回路３はＵＳＢキーボード３１とＵＳＢマウス３２の基本機能を持った複合デバイスとしてコンフィグレーション（configuration：デバイスの機能構成を設定する）される。そして、サーバとＵＳＢ装置エミュレーション回路３との通信経路が確立される。以後、ＵＳＢ装置エミュレーション回路３は、切替機１のＣＰＵ６から受信したキーデータ及びマウスデータをサーバへ送信し、サーバからのＵＳＢキーボード３１へのＬＥＤ点灯情報等を受信して切替機１のＣＰＵ６へ送信する。
【００４５】
サーバからのＶＧＡ信号は、切替機１のＶＧＡ Ｉ／Ｆ１１に接続され、ビデオ信号切替回路４に送信される。ＣＰＵ６によってビデオ信号切替回路４が制御され、切替スイッチ５等で選択されたサーバのＶＧＡ信号がコンソール側のＶＧＡ Ｉ／Ｆ１１に送信される。
【００４６】
一方、コンソール側では、ＵＳＢキーボード３１が切替機１に接続されると、ＵＳＢホストコントローラ回路２とＵＳＢキーボード３１間でエニュメレーションが開始される。エニュメレーションが完了されると、ＵＳＢホストコントローラ回路２は、ＵＳＢキーボード３１に対してInterrupt転送によりキーデータを要求する。ＵＳＢキーボード３１より受信したキーデータを切替機１のＣＰＵ６に送信する。この際のインタフェースは、ＰＳ／２やシリアル（ＵＡＲＴ、ＩＩＣ）等を使用し、ＵＳＢホストコントローラ回路２は、キーデータをこれらのインタフェースに対応した信号に変換して送信する。ＵＳＢマウス３２についてもＵＳＢキーボード３１と同様に処理する。
【００４７】
切替スイッチ５は、切替機１に接続されたサーバとコンソール側のキーボード、マウス、ディスプレイ３３との接続とを選択的に切替える手段を提供する。この切替スイッチ５によって選択されたサーバをＣＰＵ６が検知し、ＵＳＢホストコントローラ回路２とＵＳＢ装置エミュレーション回路３との送受信及びビデオ信号の送信経路をコンソール側と選択されたサーバが接続されるように切替える。また選択されたサーバがわかるようにＬＥＤ８に表示する。
【００４８】
リセット回路９は、ＣＰＵ６とＵＳＢホストコントローラ回路２のＭＣＵ２２とのリセット端子に接続され、リセットスイッチを設け、リセット手段を提供する。リセット回路９の詳細な説明は後述する。
【００４９】
ＯＳＤ回路７は、ビデオ信号切替回路４とコンソール側ＶＧＡ Ｉ／Ｆ１１との間に設け、ビデオ信号切替回路４からのビデオ信号に接続情報や選択情報等を重畳する。サーバが接続されていないポートが選択されていた場合には、ＯＳＤ回路７に別途クロックを提供し、接続情報や選択情報等が表示される。
【００５０】
本実施例の切替機１は、ＵＳＢ装置（キーボード・マウス・ハブ）とサーバとの間にＵＳＢホストコントローラ回路を入れ、ＵＳＢ装置は、ＵＳＢホストコントローラ回路２に接続される。ＵＳＢ装置の接続及び取り外しにより発生する処理（エニュメレーション等）は、ＵＳＢホストコントローラ回路２が全て処理し、サーバ等には処理させないように構成する。ＵＳＢホストコントローラ回路２は、物理的にＵＳＢ装置が取り外されない限り、切替操作時においてもＵＳＢ装置との接続を保つ。
【００５１】
また、サーバ側では、ＵＳＢ装置機能を持つＵＳＢ装置エミュレーション回路３がサーバと常に接続状態を保ち、ＵＳＢ装置の接続及び取り外しによるエニュメレーション及び取り外し処理を発生させない。ＣＰＵ６は、選択されたサーバにＵＳＢ装置からのデータを送信するように、データの送信先を切り替え、かつ、サーバからのビデオ信号をコンソール側のディスプレイ３３に送信されるように切替えを制御する。このようにすることで、サーバ側には常にキーボードとマウスが接続されていると認識させることが出来、サーバに負荷をかけず、切替時に接続・取り外しが発生せずに瞬時に切替えを行なうことが可能となる。
【００５２】
次に、図４、図５を参照しながら、ＵＳＢ装置の接続及び取外しにかかわる処理をサーバに行わせずに切替える方法を説明する。図４は、図３のシステム構成に対応したシーケンス図であり、サーバＡ、サーバＢ、切替機１、ＵＳＢキーボード３１、ＵＳＢマウス３２について、サーバＡ及びサーバＢと切替機１との接続、ＵＳＢキーボード３１及びＵＳＢマウス３２と切替機１の接続、サーバＡからサーバＢへの切替時における切替機１から見た周辺機器との信号の様子を示している。
【００５３】
まず、サーバＡとサーバＢが切替機に接続される。この時、切替機１は初期状態でサーバＡを選択しているものとし、ディスプレイ３３は、サーバＡのビデオ信号を受信する。平行してＵＳＢ装置エミュレーション回路３とサーバのＵＳＢホストコントローラ回路２との間でエニュメレーションが開始され、切替機１のＵＳＢ装置エミュレーション回路３がＵＳＢキーボード３１とＵＳＢマウス３２の複合デバイスとしてコンフィギュレーションされる。
【００５４】
次に、ＵＳＢキーボード３１が切替機１に接続されると、ＵＳＢキーボード３１と切替機１との間でエニュメレーションが開始され、コンフィギュレーションが行われる。切替機１は、このエニュメレーション処理をサーバへ通知しないため、サーバにはエニュメレーション処理が発生しない。切替機１は、選択されているサーバ、つまりサーバＡに対してのみキーデータを送信する。ＵＳＢマウス３２についても同様の処理となり、選択されているサーバに対してのみマウスデータを送信する。
【００５５】
サーバＡからサーバＢへの切替えが発生すると、ディスプレイ３３がサーバＢのビデオ信号受信に切り替わり、ＵＳＢキーボード３１及びＵＳＢマウス３２と切替機１との接続は保たれたまま、キーデータ及びマウスデータの送信先がサーバＢへと切り替わる。ＵＳＢキーボード３１及びＵＳＢマウス３２と切替機１との接続が保たれるという制御は、ＵＳＢホストコントローラ回路２を設けたことにより実現されている。その制御シーケンスは後述する。よって、切替え発生時においてもサーバに取外し処理及びエニュメレーション処理を行わせずに、切替操作を実現している。ＵＳＢキーボード３１が切替機１から取り外された場合には、取外し処理を切替機１内部のＵＳＢホストコントローラ回路２が行い、サーバに対して取外し処理を生じさせない。ＵＳＢマウス３２についても同様に処理する。サーバが取外し処理を行うのは、切替機１とサーバとが切断された場合のみである。
【００５６】
上述したＵＳＢキーボード３１及びＵＳＢマウス３２と切替機１との接続が保たれたまま、キーデータ及びマウスデータの送信先がサーバＡからサーバＢへと切り替わるシーケンスを図５を参照しながら説明する。図５は、切替機１内部の切替スイッチ５、ＵＳＢホストコントローラ回路２、ＣＰＵ６、サーバＡに接続するＵＳＢ装置エミュレーション回路３（Ａ）、サーバＢに接続するＵＳＢ装置ホストエミュレーション回路３（Ｂ）、及び切替機１に接続されるＵＳＢキーボード３１間の切替発生前後における信号の様子を示している。尚、ＵＳＢキーボード３１とＵＳＢマウス３２の処理は同様となるので、ＵＳＢキーボード３１についてのみ説明することとし、ＵＳＢマウス３２を省略している。また、切替発生前後に注目しているため、サーバＡとサーバＢは、既に接続されている状態である。
【００５７】
ＵＳＢキーボード３１が切替機１のコンソール側ＵＳＢ Ｉ／Ｆ１０に接続されると、ＵＳＢキーボード３１とＵＳＢホストコントローラ回路２との間でエニュメレーションが開始される。ＵＳＢキーボード３１がコンフィギュレーションされると、ＵＳＢホストコントローラ回路２がＵＳＢキーボード３１にキーデータを要求するため、Interrupt転送が開始される。ＵＳＢキーボード３１は、ＵＳＢホストコントローラ回路２からのInterrupt IN要求に応答して押されているキー（複数含む）のキーデータを送信する。これをＵＳＢホストコントローラが受信し、ＣＰＵ６へと送信する。このとき、キーデータをＰＳ／２やＵＡＲＴ等に変換してもよく、ＵＳＢ、ＰＳ／２、ＵＡＲＴ等の形式でＣＰＵ６へ送信する。ＣＰＵ６は、このキーデータを受信し、選択されているサーバと接続されているポートのＵＳＢ装置エミュレーション回路３に送信する。ＵＳＢ装置エミュレーション回路３は、キーデータを受信し、接続されているサーバに自身の複合デバイスに含まれるＵＳＢキーボード３１のキーデータとして送信する。
【００５８】
切替スイッチ５によってサーバＡからサーバＢへの切替えが発生すると、ＣＰＵ６は、キーデータの送信先をサーバＢが接続されているポートのＵＳＢ装置エミュレーション回路３（Ｂ）に変更する。この時、ＵＳＢホストコントローラ回路２は、何も影響を受けずにＵＳＢキーボード３１との接続を保っている。そして、ＵＳＢホストコントローラ回路２は、ＵＳＢキーボード３１からのキーデータを受信するとＣＰＵ６に送信し、ＣＰＵ６は、受信したキーデータをサーバＢが接続されているポートのＵＳＢ装置エミュレーション回路３（Ｂ）に送信する。
【００５９】
また、ＵＳＢキーボード３１が取り外された場合、ＵＳＢホストコントローラ回路２が取外し処理を行い、ＣＰＵ６に取外しが行われたことを通知しない。この時、それぞれのＵＳＢ装置エミュレーション回路３は、接続されているそれぞれのサーバとの接続を保っている。
【００６０】
また、図６に示すように、Ｏｖｅｒ Ｃｕｒｒｅｎｔが発生した場合にも、ＵＳＢホストコントローラ回路２が処理を行い、ＣＰＵ６に通知しない。よって、サーバにＯｖｅｒ Ｃｕｒｒｅｎｔによる処理が発生せず、負荷がかからないと共に、ＵＳＢ装置エミュレーション回路３との接続が保たれるため、Ｏｖｅｒ Ｃｕｒｒｅｎｔによる影響を与えずに安定した動作を提供できる。尚、Ｏｖｅｒ Ｃｕｒｒｅｎｔに限らず、ＵＳＢに関わるエラーやＵＳＢデバイスの予期しないエラー、不具合等も同様にサーバに処理させることなくＵＳＢホストコントローラ回路２が処理を行うため、サーバに安定した動作を提供できる。
【００６１】
Ｏｖｅｒ Ｃｕｒｒｅｎｔが発生した場合には、Ｏｖｅｒ Ｃｕｒｒｅｎｔ発生を通知するためのＬＥＤを設けるか、複数の色で点灯可能なＬＥＤを使用して一色をＯｖｅｒ Ｃｕｒｒｅｎｔに割り当てる等して、使用者にＯｖｅｒ Ｃｕｒｒｅｎｔの発生を知らせる。
【００６２】
さらに、ＯＳＤ回路７により、ＵＳＢ装置の状態を表示させるようにすることで、正常動作の状態、Ｏｖｅｒ Ｃｕｒｒｅｎｔ状態、ＵＳＢ装置の設定状態、および、ＵＳＢ Ｉ／Ｆ１０のポート状態を使用者に知らせることができる。
【００６３】
以上説明したように本発明によれば、サーバ側とはＵＳＢ装置エミュレーション回路３が常に接続状態を保ち、切替発生時及びＵＳＢ装置の接続・取り外しによるエニュメレーション処理と取り外し処理を発生させることがない。また、ＵＳＢ装置エミュレーション回路３のこのような処理と同時に、ＣＰＵ６は、選択されたサーバにＵＳＢキーボード３１及びＵＳＢマウス３２のデータを送信するようにデータの送信先を切り替えるので、サーバ側には常にキーボードとマウスが接続されていると認識させることができる。従って、サーバに負荷をかけず、瞬時に切替を行なうことが可能となる。また、Ｏｖｅｒ Ｃｕｒｒｅｎｔ等のエラー処理についても、サーバに負荷をかけず、安定した動作を提供することができる。
【実施例２】
【００６４】
次に、添付図面を参照しながら本発明の第２実施例を説明する。図７に、図１に示すリセット回路９の構成を示す。リセットスイッチ９１、カウンタ回路９２、ＣＰＵ６のリセット用のリセットＩＣ９３、ＵＳＢホストコントローラ回路２のリセット用のリセットＩＣ９４で構成される。カウンタ回路へはリセットＳＷ９１によって１ｋＨｚのクロックを供給し、１ｍｓをカウントする。ここで例えば、ＣＰＵ６のリセット用のリセットＩＣ９３は、カウンタ回路の７００ｍｓ出力と接続され、ＵＳＢホストコントローラ回路２のリセット用のリセットＩＣ９４は、カウンタ回路の１００ｍｓ出力と接続される。このように構成することで、短い時間のリセットスイッチ操作でＵＳＢホストコントローラ回路２をリセットし、長い時間のリセットスイッチ操作でＣＰＵ６をリセットすることができる。つまり、切替機１に接続されるＵＳＢ装置とＵＳＢホストコントローラ回路間に問題が発生した場合に、ＵＳＢホストコントローラ回路２のみを初期化し、切替機１に接続されたサーバに影響を与えることなく、ＵＳＢ装置との接続を正常な状態に復帰させることが可能となる。加えて、長くリセットスイッチを操作することで切替機１全体をリセットすることも可能となる。
【００６５】
なお、図７には、ハードウェアによるリセット回路９を示したが、次のようなソフトウェアによる制御でもよい。ＣＰＵ６のＩ／Ｏ端子とＵＳＢホストコントローラ回路２の各リセット端子（図２におけるＭＣＵ２２及びＵＳＢ ＨＣ２１）とを接続し、リセット回路９からＣＰＵ６への入力を割込み端子に接続する。例えば、ＣＰＵ６の割込み端子は、ハイアクティブとする。ＣＰＵ６は、リセット回路９からの割込みを検出すると、ＣＰＵ６内部のカウンタを起動し、時間計測を開始する。前記方法と同様に１００ｍｓ経過時点での割込み端子のレベルをチェックし、ローであれば短いリセットスイッチ操作と判断し、ＵＳＢホストコントローラ回路２をリセットする。１００ｍｓ経過時点でハイであれば、７００ｍｓ経過時点で再度割込み端子のレベルをチェックし、ローであれば、ＵＳＢホストコントローラ回路２をリセットし、ハイであればＣＰＵ６及びＵＳＢホストコントローラ回路２をリセットする。
【実施例３】
【００６６】
次に、添付図面を参照しながら本発明の第３実施例を説明する。図８には、ＵＳＢハブ３４を用いて複数のマウス３２Ａ、３２Ｂを切替機１に接続した構成を示している。この構成の場合に切替機１では、ＵＳＢホストコントローラ回路２がＵＳＢハブ３４、ＵＳＢキーボード３１、ＵＳＢマウス３２Ａ、ＵＳＢハブ３４に接続したＵＳＢマウス３２Ｂとそれぞれエニュメレーションを行い、コンフィギュレーションし、キーデータ及びマウスデータのみを選択されているサーバへ送出する。
【００６７】
さらに、切替時やＵＳＢキーボード３１、ＵＳＢマウス３２Ａ、３２Ｂ、ＵＳＢハブ３４の取外しに関わる処理も、実施例１で示したようにＵＳＢホストコントローラ回路２が全ての処理を行う。これに加え、ＵＳＢホストコントローラ回路２は、ＵＳＢマウス３２Ａ及びＵＳＢマウス３２Ｂそれぞれから受信したマウスデータを合成し切替機１のＣＰＵ６に送信するように処理し、サーバに対しては、１台のマウスとして振舞う。
【００６８】
図８では、２台のＵＳＢマウス３２Ａ，３２Ｂの例示となっているが、３台以上のマウスでも同様に処理する。また、キーボードが複数接続された場合も、同様にサーバに対しては１台のキーボードとして振舞う。従って、サーバはエニュメレーション及び取外しに関わる処理を行う必要が無く、さらに、ＵＳＢ装置エミュレーション回路３によって提供されるＵＳＢキーボード３１及びＵＳＢマウス３２の複合デバイス１台として通信を行うため、これらＵＳＢ装置がサーバに直接接続される場合に比べて処理負荷が小さくて済む。
【実施例４】
【００６９】
添付図面を参照しながら本発明の第４実施例を説明する。切替機１を製品として製作する場合、切替機１のポート数には、物理的な限界が生じる。このため、切替機１によって制御可能なサーバの台数が制限される。例えば、１６ポートの製品であれば１６台までのサーバ台数、３２ポートの製品であれば３２台までのサーバ台数となる。しかし、それ以上の台数を制御したい場合に対応出来ない。これを解決する方法として、切替機に切替機を接続するカスケード接続がある。図９にカスケード接続の例を示す。
【００７０】
切替機１Ａのコンソール側には、ＵＳＢキーボード３１、ＵＳＢマウス３２、ディスプレイ３３が接続され、サーバ側のＵＳＢ Ｉ／Ｆ１０とＶＧＡ Ｉ／Ｆ１１とがそれぞれ切替機１Ｂのコンソール側ＵＳＢ Ｉ／Ｆ１０とＶＧＡ Ｉ／Ｆ１１とに接続されている。切替機１Ｂのサーバ側にはサーバが接続されている。
【００７１】
単純に接続しただけでは、切替機１Ｂにとっては、ＵＳＢキーボード３１とＵＳＢマウス３２の複合デバイスが接続されたことになり、切替機１Ａからは、キーデータとマウスデータが送信されるのみである。つまり、切替機１Ａから切替機１Ｂの切替操作を制御することが出来ない。そこで、まず切替機１Ｂへカスケード接続したことを、替機１Ａに認識させる手順を図１０のフローチャートを参照しながら説明する。切替機１ＢのＵＳＢホストコントローラ回路２では、接続を検出すると（ステップＳ１）、接続されたＵＳＢ装置のＶＩＤ（製造元識別情報）とＰＩＤ（機種識別情報）をチェックする（ステップＳ２）。このＶＩＤとＰＩＤにより、切替機１ＡのＵＳＢ装置エミュレーション回路３によるＵＳＢキーボード３１とＵＳＢマウス３２の複合デバイス（カスケード接続）であることを検知すると（ステップＳ３／ＹＥＳ）、切替機１ＡのＵＳＢ装置エミュレーション回路３へＵＳＢ仕様に準拠したベンダーリクエストによってカスケード接続通知コマンドを送信する（ステッップＳ５）。そして、切替制御モードへ移行するためのキーデータ（切替制御信号）を受信した場合に、ＵＳＢ仕様に準拠したベンダーリクエストによって切替結果を切替機１Ａへ送信するように自身を設定する。また切替機１ＡのＵＳＢ装置エミュレーション回路３は、カスケード接続状態であることを記録する。切替制御モードとは、スイッチ以外の操作による切替機のポート（接続されたサーバ）とコンソールとの接続を切替える制御方法であり、特別な手順のキー入力やベンダーリクエスト等によって切替機１ＡのＣＰＵ６が通常のキーデータ及びマウスデータの送信を停止し、切替制御信号をカスケード接続された切替機１Ｂに送信することによって切替機１Ｂのポート（接続されたサーバ）を選択することができる。
【００７２】
切替制御信号は、例えば、切替制御モード状態で受信したキーデータやマウスデータを利用する。ポートを選択する方法は、ポートに番号を付与し、その番号に対応するキーボードの数字キーやファンクションキーを押す、あるいは矢印キーによって順次選択する等が挙げられる。この切替制御モードを図１１のフローチャートを参照しながら説明する。ここでのキー操作の例を、切替制御モードへの移行のためのキーデータをCtrlキー＋Altキー＋Shiftキー、ポート選択を数字キー、選択決定及び切替制御モード終了をEnterキーとする。
【００７３】
図１０に示すフローに従って、切替機１ＡのＵＳＢエミュレーション回路３には、切替機１Ａがカスケード接続状態にあることが記録されている。切替機１ＡのＣＰＵ６は、Ctrlキー＋Altキー＋ShiftキーのキーデータをＵＳＢキーボード３１から受信すると、切替制御モードに移行し、ＵＳＢ装置エミュレーション回路３へのキーデータ及びマウスデータの送信を停止する（ステップＳ６）。次に、切替機１Ａは、現在選択されているポートに切替機１Ｂが接続されているかどうかを確認するために切替機接続確認コマンドを自身のＵＳＢ装置エミュレーション回路３に送信する（ステップＳ７）。ＵＳＢ装置エミュレーション回路３には、自身がカスケード接続状態にあるか否かが記録されている。この記録情報によりポートに切替機が接続されているかどうかをチェックする。ポートに接続された機器が切替機１Ｂであったならば、ＣＰＵ６に切替機であると応答する。それ以外であれば、切替機ではないと応答する。そして、ＣＰＵ６はＵＳＢ装置エミュレーション回路３からの応答を受信し（ステップＳ８）、切替機（本例では切替機１Ｂ）が接続されていた場合には（ステップＳ９／ＹＥＳ）、切替機１Ｂに切替制御モードへ移行するためのキーデータであるCtrlキー＋Altキー＋Shiftキーを送信し（ステップＳ１０）、自身をカスケードモードに設定する（ステップＳ１１）。設定のためのフラグは、ＣＰＵ６内のＲＡＭ等に設ける。切替機が接続されていなかった場合は、自身のポートを切替えるため、切替制御モード終了ステートへ進む（ステップＳ１２）。切替制御モード終了を示すEnterキーを受信しているかチェックし、受信していれば（ステップＳ１２／ＹＥＳ）、カスケードモード確認ステートへ進み（ステップＳ１３）、カスケード接続であれば（ステップＳ１３／ＹＥＳ）、切替機１Ｂへ切替制御モード終了コマンドを送信し終了する（ステップＳ１４）。カスケードモードでなければ（ステップＳ１３／ＮＯ）、そのまま終了する。
【００７４】
また、切替制御モード終了を示すEnterキーを受信していなかった場合には（ステップＳ１２／ＮＯ）、切替操作が行われたかどうかチェックを行う（ステップＳ１５）。切替操作のチェックでは、数字キーやファンクションキーあるいは矢印キーを検出し、それぞれに対応するポート番号を特定する。ポート特定後、切替機１Ａ自身がカスケードモードであるかどうかチェックする（ステップＳ１６）。切替機１Ａ自身がカスケードモードであった場合には（ステップＳ１６／ＹＥＳ）、切替機１Ｂへ前記ポート番号へ切替える切替コマンド（キーデータ）を送信する（ステップＳ１７）。切替コマンドを受信した切替機１Ｂはポートを切替え、切替結果を切替機１Ａに送信する。
【００７５】
切替結果の送信は、ＵＳＢ Ｓｐｅｃｉｆｉｃａｔｉｏｎ 1.1又は2.0で定められているベンダーリクエストに準拠したコマンドによって行う。切替機１Ａは、切替結果受信後、切替制御モード終了確認ステート以降を繰り返す。
【００７６】
また、カスケードモードでない場合は（ステップＳ１６／ＮＯ）、切替機１Ａ自身のポートを切替える（ステップＳ１８）。そして、切替えられたポートに切替機１Ｂが接続されているかどうかを確認するため、切替接続確認コマンド送信ステートへ進み、前記手順を繰り返す。
【００７７】
図１２には、切替機１Ｂ側のフローを示す。切替機１Ｂは、切替機１Ａより切替制御モードへ移行するためのキーデータ（Ctrlキー＋Altキー＋Shiftキー）を受信すると（ステップＳ２１）、ＵＳＢ仕様に準拠したベンダーリクエストによって切替結果を切替機１Ａへ送信するように自身を設定する。次に、切替制御モード終了を示すコマンドを受信することで（ステップＳ２２）、切替制御モードを終了させる。
【００７８】
以上説明した方法によれば、切替機によって制御可能なサーバの台数を増やすことが出来、例えば、１６ポートの製品であれば２５６台までのサーバ台数、３２ポートの製品であれば１０２４台までのサーバ台数となり、制御可能なサーバの台数を改善することができる。
【実施例５】
【００７９】
添付図面を参照しながら本発明の第５実施例を説明する。これまでの実施例では、切替機１がサーバに対してＵＳＢ装置エミュレーション回路３にて特定のＵＳＢキーボード３１とＵＳＢマウス３２の動作を提供することで、切替時の接続及び取外し処理をなくし、サーバへの負荷軽減とサーバの安定動作を実現してきた。しかし、使用者によっては、任意のＵＳＢキーボード３１やＵＳＢマウス３２を使用し、それぞれ固有の機能を使用したいといったニーズがある。前記の方法では、特定のＵＳＢキーボード３１とＵＳＢマウス３２として動作しているため、このニーズに応えることが出来ない。
【００８０】
そこで本実施例では、切替機１に接続されたＵＳＢキーボード３１及びＵＳＢマウス３２のディスクリプタ（デバイスの属性をレポートするデータ）をＵＳＢ装置エミュレーション回路３に送信し、ＵＳＢ装置エミュレーション回路３が切替機１に接続されたＵＳＢキーボード３１やＵＳＢマウス３２のエミュレーションを行うことで、このニーズに応える方法を図１３のシーケンス図を参照しながら説明する。
【００８１】
図１３は、ＵＳＢキーボード３１と切替機１とサーバＡが接続される様子を例に挙げており、切替機１の回路中で関係するＵＳＢホストコントローラ回路２、ＣＰＵ６、ＵＳＢ装置エミュレーション回路３をピックアップしている。さらに、切替機１にサーバＡが接続されており、ＵＳＢキーボード３１が未接続の状態である。この状態で、切替機１にＵＳＢキーボード３１が接続される。すると、切替機１のＵＳＢホストコントローラ回路２とＵＳＢキーボード３１との間でエニュメレーションが行われる。
【００８２】
ＵＳＢホストコントローラ回路２は、エニュメレーションが完了すると、ＵＳＢキーボード３１から受信したディスクリプタをＣＰＵ６へ送信する。ＣＰＵ６は、このディスクリプタをＵＳＢ装置エミュレーション回路３へ送信する。ＵＳＢ装置エミュレーション回路３は、ＣＰＵ６からディスクリプタを受信すると、サーバとの接続を一旦切断するためＤｉｓｃｏｎｎｅｃｔ処理を行い、自身のディスクリプタをＣＰＵ６から受信したディスクリプタに書き換える。Ｄｉｓｃｏｎｎｅｃｔ処理とは、例えば、ＵＳＢ装置エミュレーション回路３中のＳＩＥ（Ｓｅｒｉａｌ  Ｉｎｔｅｒｆａｃｅ  Ｅｎｇｉｎｅ）への電源供給を断つことによってＵＳＢ装置エミュレーション回路３がサーバからＵＳＢ装置が取り外されたかのように振舞う（実際にはケーブルは接続されたままである）ことである。
【００８３】
Ｄｉｓｃｏｎｎｅｃｔから所定時間が経過し、サーバが取外し処理を終えた後、ＵＳＢ装置エミュレーション回路３は、Ｃｏｎｎｅｃｔ処理を行う。Ｃｏｎｎｅｃｔ処理とは、例えば、前述したＳＩＥに電源を供給し、サーバにＵＳＢ装置が接続されたかのように振舞うことである。ここで、ＵＳＢ装置エミュレーション回路３のディスクリプタがＵＳＢキーボード３１のディスクリプタに書き換えられているため、エニュメレーション後には、サーバにはＵＳＢキーボード３１として見える。
【００８４】
エニュメレーションが完了すると、ＵＳＢ装置エミュレーション回路３は、エニュメレーション完了をＣＰＵ６に通知する。ＣＰＵ６は、エニュメレーション完了通知を受信すると、ＵＳＢホストコントローラ回路２にエニュメレーション完了通知を送信する。エニュメレーション完了通知を受信したＵＳＢホストコントローラ回路２は、ＵＳＢキーボード３１に対してキーデータを要求するため、Ｉｎｔｅｒｒｕｐｔ  ＩＮを発行する。ＵＳＢキーボード３１は、これを受けてキーの押下状態に変化があれば、キーデータを返す。そして、ＵＳＢホストコントローラ回路２、ＣＰＵ６、ＵＳＢ装置エミュレーション回路３を経由してサーバへキーデータが送信される。また、図示していないが、サーバにＵＳＢキーボード３１のデバイスドライバやそのデバイスドライバに対応するアプリケーションがインストールされている場合、逆の経路を辿り、キーボードにコマンドを送信することができる。
【００８５】
こうして、任意のＵＳＢキーボード３１を使用することが可能となる。そして、一旦ＵＳＢキーボード３１が接続され、サーバとＵＳＢ装置エミュレーション回路３との間でエニュメレーションが完了すれば、サーバの切替時にサーバがエニュメレーション及び取外し処理を行う必要がなく、さらに、ＵＳＢキーボード３１が取り外された場合には、取外し処理をＵＳＢホストコントローラ回路２が行い、サーバが取外し処理をすることはなく、サーバへの負荷が小さくて済む。ＵＳＢキーボード３１が取り外された場合には、ＵＳＢホストコントローラからＣＰＵ６を経由してＵＳＢ装置エミュレーション回路３にＵＳＢキーボード３１が取り外されたことが通知されるため、ＵＳＢキーボード３１が取り外されている間のサーバ上のデバイスドライバからの要求をＵＳＢ装置エミュレーション回路３で無効化することができ、安定した動作を提供できる。ＵＳＢマウス３２の場合も、同様の方法で任意のＵＳＢマウス３２を使用することができる。任意のＵＳＢキーボード３１とＵＳＢマウス３２を同時に使用する場合には、ＵＳＢキーボード３１用とＵＳＢマウス３２用のＵＳＢ装置エミュレーション回路３をそれぞれ設けることで同時に使用可能となる。あるいは、Control転送を複数持つＵＳＢ装置エミュレーション回路３を使用することで、１つの回路で２つ以上のＵＳＢ装置をエミュレーション出来、複数の任意のＵＳＢキーボード３１及びＵＳＢマウス３２を同時に使用可能とすることができる。
【００８６】
以上説明したように、この方法によれば、任意のＵＳＢキーボード３１及びＵＳＢマウス３２を使用することができるので、ＵＳＢキーボード３１及びＵＳＢマウス３２固有の機能を使用することが出来、切替発生時の接続・取り外しによるエニュメレーション処理と取り外し処理を発生させることなく、切替を行なうことが可能となる。
【実施例６】
【００８７】
添付図面を参照しながら本発明の第６実施例について説明する。ＵＳＢキーボード３１及びＵＳＢマウス３２と他のＩ／Ｆを持つキーボード及びマウスを接続可能とし、ＵＳＢ装置が優先される方法を図１４を参照しながら説明する。
【００８８】
図１４は、図１の構成に、ＰＳ／２キーボードＩ／Ｆ４１と、ＰＳ／２マウスＩ／Ｆ４２と、ＰＳ／２キーボードＩ／Ｆ４１の接続を切り替えるスイッチング回路４３と、ＰＳ／２マウスＩ／Ｆ４２の接続を切り替えるスイッチング回路４４とを加えている。ＰＳ／２キーボードＩ／Ｆ４１及びＰＳ／２マウスＩ／Ｆ４２からの信号を、スイッチング回路４３、４４を経由してＣＰＵ６に送受信するように接続し、ＵＳＢホストコントローラ回路２がスイッチング回路４３、４４を制御するように接続している。ここでは、説明のためにマウスの接続のみに注目する。ＰＳ／２インタフェースの一方には、ＰＳ／２マウスが接続されているとする。この状態からＵＳＢマウス３２が接続されると、ＵＳＢホストコントローラ回路２は、これを検出し、ＰＳ／２インタフェースとＣＰＵ６との接続を切断するようスイッチング回路４４を制御する。こうすることで、ＵＳＢマウス３２が切替機１に接続された場合に、ＰＳ／２マウスが無効化され、ＵＳＢマウス３２のみを使用することができる。またインタフェースは、ＰＳ／２インタフェースに限らず、他のシリアルインタフェースであってもよい。また、ＵＳＢキーボード３１についても同様の制御が可能である。さらに、スイッチング回路４３、４４をＣＰＵ６が制御するようにしてもよい。
【００８９】
上述した方法は、スイッチング回路４３、４４によってハードウェア的にＰＳ／２マウスを無効化しているが、これをソフトウェア的に制御することも可能である。この方法を図１５を参照しながら説明する。図１５は、ＰＳ／２マウスが接続されている切替機１にＵＳＢマウス３２が接続された場合のシーケンス図である。切替機１にＵＳＢマウス３２が接続されると、ＵＳＢホストコントローラ回路２がＣＰＵ６にＵＳＢ装置接続検出通知を送信する。ＵＳＢマウス３２とＵＳＢホストコントローラ回路２間でエニュメレーションが行われ、エニュメレーションが完了すると、ＵＳＢホストコントローラ回路２がＣＰＵ６にＵＳＢマウス３２の接続通知を送信する。これを受けたＣＰＵ６は、ＰＳ／２無効化する。こうすることで、ＵＳＢマウス３２が切替機１に接続された場合に、ＰＳ／２マウスが無効化され、ＵＳＢマウス３２のみを使用することができる。またＰＳ／２インタフェースに限らず、シリアルインタフェース等の他のインタフェースであってもよい。また、ＵＳＢキーボード３１についても同様の制御が可能である。また、ＵＳＢとその他のインタフェースを切替えずに両方同時に使用可能としてもよい。
【実施例７】
【００９０】
添付図面を参照しながら本発明の第７実施例を説明する。本実施例の切替機１は、新しいＵＳＢキーボード３１やＵＳＢマウス３２の新機能への対応や、切替機１の機能拡張等を可能とするために、ＵＳＢインタフェースを介してファームウェアをアップデートする手段を実装する。さらに、ファームウェアを自動的にインストール可能とし、アップデート手順を簡略化する。切替機１には、切替機１全体を制御するＣＰＵ６のファームウェア、ＵＳＢホストコントローラ回路２を制御するＭＣＵ２２のファームウェア、ＵＳＢ装置エミュレーション回路３のＭＣＵのファームウェアが存在する。これらファームウェアのアップデート方法を図１６から図２４を参照しながら説明する。
【００９１】
図１６には、ＵＳＢホストコントローラ回路２によるファームウェア書き換えの制御フローを示す。ＵＳＢ装置が切替機１に接続されると、ＵＳＢ装置エニュメレーション（ステップＳ３１）が実施され、ＵＳＢ装置から取得したディスクリプタよりＭａｓｓ Ｓｔｒａｇｅクラス（ハードディスクなどの外部記憶装置を接続するための追加企画）であるかどうかをチェックする（ステップＳ３２）。Ｍａｓｓ Ｓｔｒａｇｅクラスであった場合（ステップＳ３２／ＹＥＳ）、ＵＳＢ装置はディスクドライブとして認識され、ＵＳＢホストコントローラ回路２は、ＵＳＢ装置上のファームウェアファイルを検索する（ステップＳ３３）。このときのファイル名は、ＣＰＵ６用、ＵＳＢホストコントローラ回路２用、ＵＳＢ装置エミュレーション回路３用の３種類を用意し、それぞれ一意とする。またＭａｓｓ Ｓｔｒａｇｅクラスではなかった場合（ステップＳ３２／ＮＯ）、この処理を抜ける。
【００９２】
ＣＰＵ６用ファームウェアのファイルを見つけると（ステップＳ３４／ＹＥＳ）、その署名ファイルを参照し（ステップＳ３５）、署名を確認する（ステップＳ３６）。このときに必要な鍵は、切替機１及び接続されたＵＳＢ装置内部に格納されており、これらの鍵を使用して署名の確認を行う。書名の確認により正しいファイルであれば（ステップＳ３６／ＹＥＳ）、ＣＰＵ６ファームウェアの書き換えを実施する（ステップＳ３７）。
【００９３】
ＵＳＢホストコントローラ回路２とＣＰＵ６との間でのＣＰＵファームウェア書換の手順を図１７のシーケンスを参照しながら説明する。まず、ＵＳＢホストコントローラ回路２は、ＣＰＵ６に対してＣＰＵファーム書換コマンドを送信し、ＣＰＵ６はＣＰＵ６書換コマンドを受信すると、自身をファームウェア書換モードに設定する。次に、ＵＳＢホストコントローラ回路２は、ＵＳＢ装置からファームウェアファイルを読取り、ＣＰＵ６へ転送する。これをファームウェアの読取りが完了するまで繰り返す。
【００９４】
ＣＰＵ６は、ファームウェアを受信すると、フラッシュＲＯＭへ書き込む。これを受信が完了するまで繰り返す。ＣＰＵ６は、受信が完了するとファームウェアのチェックサムをＵＳＢホストコントローラ回路２へ送信する。ＵＳＢホストコントローラ回路２は、チェックサムを受信し、ＵＳＢ装置から読み出したファームウェアのチェックサムと比較する。もし、チェックサムが異なっていた場合は、ファームウェアの書き込みに失敗したと判断し、ファームウェア復元コマンドをＣＰＵ６へ送信する。ＣＰＵ６は、ファームウェア復元コマンドを受信すると、フラッシュＲＯＭの別ブロックに格納されているファームウェアをブート領域にコピーして、ファームウェア書換以前の状態に復元する。チェックサムが一致した場合、又はファームウェア復元コマンドを送信すると、書換終了コマンドをＣＰＵ６に送信してＣＰＵファームウェアの書き換えを終了する。
【００９５】
次に、図１８のフローチャートを参照しながら上述したＣＰＵファームウェアの書き換えのＵＳＢホストコントローラ回路２のフローを説明する。まず、ＵＳＢホストコントローラ回路２は、ＣＰＵ６に対してＣＰＵファーム書換コマンドを送信する（ステップＳ５１）。次にＵＳＢホストコントローラ回路２は、ＵＳＢ装置からファームウェアファイルを読取り（ステップＳ５２）、ＣＰＵ６へ転送する（ステップＳ５３）。これをファームウェアの読取りが完了（ステップＳ５４）するまで繰り返す。ファームウェアの読取りが完了すると（ステップＳ５４／ＹＥＳ）、送信完了コマンドをＣＰＵ６に送信し（ステップＳ５５）、ＣＰＵ６から転送されてくるチェックサムを待つ。チェックサムを受信すると（ステップＳ５６）、これをＵＳＢ装置から読み出したファームウェアのチェックサムと比較する（ステップＳ５７）。もし、チェックサムが異なっていた場合は（ステップＳ５７／ＮＯ）、ファームウェア復元コマンドをＣＰＵ６へ送信する（ステップＳ５８）。そして、書換終了コマンドをＣＰＵ６に送信して処理を終了する（ステップＳ５９）。
【００９６】
次に、図１９のフローチャートを参照しながらＣＰＵファームウェアの書き換えのＣＰＵ６のフローを説明する。ＣＰＵ６はＣＰＵ６書換コマンドを受信すると（ステップＳ６１）、自身をファームウェア書換モードに設定する（ステップＳ６２）。次に、ＣＰＵ６は、ファームウェアを受信すると（ステップＳ６３／ＹＥＳ）、フラッシュＲＯＭへこれを書き込む（ステップＳ６４）。これを受信が完了するまで繰り返す（ステップＳ６５）。ＣＰＵ６は、受信が完了すると（ステップＳ６５／ＹＥＳ）、ファームウェアのチェックサムをＵＳＢホストコントローラ回路２へ送信する（ステップＳ６６）。次に、ＵＳＢホストコントローラ回路２からファームウェア復元コマンドを受信したか否かをチェックし（ステップＳ６７）、これを受信した場合には（ステップＳ６７／ＹＥＳ）、ファームウェアの復元処理を行なう（ステップＳ６８）。次に、書換終了コマンドの受信をした場合には（ステップＳ６９／ＹＥＳ）、ファームウェアの書き換えを終了する。
【００９７】
ＣＰＵ６のファームウェア書換が終了すると、図１６のＵＳＢホストコントローラ（ＨＣ）回路用ファームウェアの有無をチェックに進み（ステップＳ３８）、ファームウェアファイル名検索でＵＳＢホストコントローラ（ＨＣ）回路用のファームウェアを見つけていると、その署名ファイルを読み込んで（ステップＳ３９）署名を確認する（ステップＳ４０）。署名の確認により正しいファイルであれば（ステップＳ４０／ＹＥＳ）、ＵＳＢホストコントローラ（ＨＣ）回路ファームウェア書換を実施する（ステップＳ４１）。
【００９８】
ＵＳＢホストコントローラ（ＨＣ）回路ファームウェア書換のフローを図２０に示す。ＵＳＢホストコントローラ回路２は、ＵＳＢ装置からファームウェアファイルを読取りＵＳＢホストコントローラ回路２のフラッシュＲＯＭへ書き込む（ステップＳ７２）。書き込んだファームウェアのチェックサムとＵＳＢ装置から読み取ったファームウェアのチェックサムとを比較し（ステップＳ７３）、一致していたら（ステップＳ７３／ＹＥＳ）ＵＳＢホストコントローラ回路２ファームウェアの書き換えを終了する。もし、チェックサムが異なっていた場合は（ステップＳ７３／ＮＯ）、ファームウェアの書き込みに失敗したと判断し、フラッシュＲＯＭの別ブロックに格納されているファームウェアをブート領域にコピーして、ファームウェア書換以前の状態に復元し（ステップＳ７４）、ＵＳＢホストコントローラ回路２ファームウェアの書換を終了する。
【００９９】
ＵＳＢホストコントローラ回路２ファームウェアの書き換えが終了すると、図１６のＵＳＢ装置エミュレーション回路３用ファームウェアの有無をチェックに進み（ステップＳ４２）、ファームウェアファイル名検索でＵＳＢ装置エミュレーション回路３用のファームウェアを見つけると（ステップＳ４２／ＹＥＳ）、その署名ファイルを読み込み（ステップＳ４３）、参照し署名を確認する（ステップＳ４４）。書名の確認により正しいファイルであれば（ステップＳ４４／ＹＥＳ）、ＵＳＢ装置エミュレーション回路３ファームウェアの書き換えを実施する（ステップＳ４５）。
【０１００】
ＵＳＢ装置エミュレーション回路３ファームウェアの書き換えシーケンスを図２１に示す。まず、ＵＳＢホストコントローラ回路２がＣＰＵ６に対してＵＳＢ装置エミュレーション回路３ファームウェア書換コマンドを送信する。ＣＰＵ６は、切替機１の全てのポートのＵＳＢ装置エミュレーション回路３に、このコマンドを転送する。そして、ＣＰＵ６は、切替機１のポート数をＵＳＢホストコントローラ回路２へ送信する。ＵＳＢホストコントローラ回路２は、これを受信する。このポート数は、後述するチェックサムの確認が全てのポートで完了したかどうかの判断に使用される。そして、ＣＰＵ６は、自身をファームウェア転送モードに設定し、ＵＳＢ装置エミュレーション回路３は、自身をファームウェア書換モードに設定する。
【０１０１】
次に、ＵＳＢホストコントローラ回路２は、ＵＳＢ装置からファームウェアファイルを読取りＣＰＵ６へ転送する。ＣＰＵ６は、ファームウェアを受信すると、全てのポートのＵＳＢ装置エミュレーション回路３へ転送する。各ＵＳＢ装置エミュレーション回路３は、ファームウェアを受信する（ＲＡＭに保存）と、自身のフラッシュＲＯＭへ書き込む。これらの処理をそれぞれがファームウェアの読取りが完了するまで繰り返す。
【０１０２】
ＵＳＢホストコントローラ回路２は、ファームウェアの読取りが完了すると、ＣＰＵ６へ送信完了コマンドを送信する。ＣＰＵ６は、このコマンドを受信すると、ファームウェアの受信を完了し、全てのポートのＵＳＢ装置エミュレーション回路３へ、このコマンドを送信する。各ＵＳＢ装置エミュレーション回路３は、このコマンドを受信すると、チェックサムをＣＰＵ６へ送信する。ＣＰＵ６は、チェックサムをＵＳＢホストコントローラ回路２へ転送する。ＣＰＵ６は、全てのポートからチェックサムを受信するまでＵＳＢホストコントローラ回路２へチェックサムの転送を行う。
【０１０３】
ＵＳＢホストコントローラ回路２は、チェックサムを受信すると、ＵＳＢ装置から読み出したファームウェアのチェックサムと比較する。全てのポートのチェックサムが一致したら、書換終了コマンドをＣＰＵ６に送信してファームウェアの書換を終了する。ＣＰＵ６は、書換終了コマンドを受信すると、ＵＳＢ装置エミュレーション回路３に該コマンドを転送し、ファームウェア書換を終了する。ＵＳＢ装置エミュレーション回路３は、書換終了コマンドを受信すると、ファームウェア書換を終了する。
【０１０４】
もし、チェックサムが異なっていた場合は、ファームウェアの書き込みに失敗したと判断し、ファームウェア復元コマンドをＣＰＵ６へ送信する。ＣＰＵ６は、ファームウェア復元コマンドを受信すると、全てのポートのＵＳＢ装置エミュレーション回路３へファームウェア復元コマンドを転送する。各ＵＳＢ装置エミュレーション回路３は、ファームウェア復元コマンドを受信すると、フラッシュＲＯＭの別ブロックに格納されているファームウェアをブート領域にコピーして、ファームウェア書換以前の状態に復元する。ＵＳＢ装置エミュレーション回路３のファームウェア書換が終了すると、図１６の切替機リセットステートへ進み（ステップＳ４６）、切替機１をリセットし、書き換えられた各ファームウェアで切替機１が動作を開始する。
【０１０５】
上述したＵＳＢ装置エミュレーション回路ファームウェア書き換えの各装置の動作手順を説明する。まず、図２２のフローを参照しながらＵＳＢホストコントローラ回路２の動作を説明する。ＵＳＢホストコントローラ回路２は、ＵＳＢ装置エミュレーション回路３のファームウェア書換コマンドを受信すると（ステップＳ８１）、これをＣＰＵ６に転送する。次に、ＣＰＵ６から転送されてくるポート数の情報を受信する（ステップＳ８２）。次に、受信したファームウェア（ステップＳ８３）のＣＰＵ６への転送（ステップＳ８４）を、ファームウェアの受信が完了するまで繰り返す（ステップＳ８５）。ファームウェアの受信が完了すると（ステップＳ８５／ＹＥＳ）、送信完了コマンドをＣＰＵ６に送信する（ステップＳ８６）。
【０１０６】
ＵＳＢホストコントローラ回路２は、ＣＰＵ６からチェックサムを受信すると（ステップＳ８７）、ＵＳＢ装置から読み出したファームウェアのチェックサムと比較する。ステップＳ８２で受信した全てのポートのチェックサムが一致したら（ステップＳ８８／ＹＥＳかつＳ９０／ＹＥＳ）、書換終了コマンドをＣＰＵ６に送信してファームウェアの書換を終了する（ステップＳ９１）。また、チェックサムが異なっていた場合は（ステップＳ８８／ＮＯ）、ファームウェア復元コマンドをＣＰＵ６へ送信する（ステップＳ８９）。
【０１０７】
次に図２３を参照しながら、ＵＳＢ装置エミュレーション回路ファームウェア書き換えのＣＰＵ６の手順を説明する。ＣＰＵ６は、ＵＳＢホストコントローラ回路２から転送されたＵＳＢ装置エミュレーション回路ファームウェア書換コマンドを、全てのポートのＵＳＢ装置エミュレーション回路３に送信する（ステップＳ１０１）。そして、ＣＰＵ６は、切替機１のポート数をＵＳＢホストコントローラ回路２へ送信し（ステップＳ１０２）、自身をファームウェア転送モードに設定する（ステップＳ１０３）。
【０１０８】
次に、ＵＳＢホストコントローラ回路２からファームウェアを受信すると（ステップＳ１０４／ＹＥＳ）、これをＵＳＢ装置エミュレーション回路３へ転送する（ステップＳ１０５）。またファームウェアの受信が完了すると（ステップＳ１０６／ＹＥＳ）、送信完了コマンドをＵＳＢ装置エミュレーション回路３に送信する（ステップＳ１０７）。
【０１０９】
次に、ＣＰＵ６は、ＵＳＢ装置エミュレーション回路３から送信されるチェックサムをＵＳＢホストコントローラ回路２へ転送する（ステップＳ１０８）。これを全てのポートからチェックサムを受信するまで繰り返す（ステップＳ１０９）。次に、ＣＰＵ６は、ＵＳＢホストコントローラ回路２からファームウェアの復元コマンドを受信したか否かをチェックし（ステップＳ１１０）、受信している場合には（ステップＳ１１０／ＹＥＳ）、これをＵＳＢ装置エミュレーション回路３に転送する（ステップＳ１１１）。また、書換終了コマンドをＵＳＢホストコントローラ回路２から受信すると（ステップＳ１１２）、これをＵＳＢ装置エミュレーション回路３に転送して（ステップＳ１１３）、処理を終了する。
【０１１０】
次に図２４のフローを参照しながらＵＳＢ装置エミュレーション回路３のファームウェア書き換え時の手順を説明する。ＵＳＢ装置エミュレーション回路３は、ＣＰＵ６からファームウェア書換コマンドを受信すると（ステップＳ１２１）、自身をファームウェア書換モードに設定する（ステップＳ１２２）。次に、ＣＰＵ６から受信するファームウェア（ステップＳ１２３）を自身のフラッシュＲＯＭに書き込む（ステップＳ１２４）。ＣＰＵ６から送信完了コマンドを受信し、受信が完了すると（ステップＳ１２５）、チェックサムをＣＰＵ６に送信する（ステップＳ１２６）。
【０１１１】
送信したチェックサムに対して、ＣＰＵ６からファームウェア復元コマンドを受信すると（ステップＳ１２７）、ファームウェア復元処理を行なう（ステップＳ１２８）。またＣＰＵ６から書き換え終了コマンドを受信すると（ステップＳ１２９）、ファームウェアの書き換えを終了する。
【０１１２】
以上説明した方法によれば、切替機１は、新しいＵＳＢキーボード３１やＵＳＢマウス３２の新機能への対応や、切替機１の機能拡張等を可能とし、ファームウェアが格納されたＵＳＢ装置を接続するだけでファームウェアを自動的にインストール可能となる。
【０１１３】
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【図面の簡単な説明】
【０１１４】
【図１】切替機の構成を示すブロック図である。
【図２】ＵＡＢ  ＨＣ回路の構成を示すブロック図である。
【図３】複数のサーバとコンソールとの接続例を示す図である。
【図４】サーバＡ及びサーバＢと切替機１との接続、ＵＳＢキーボード３１及びＵＳＢマウス３２と切替機１の接続、サーバＡからサーバＢへの切替時における切替機１から見た周辺機器との信号の様子を示す図である。
【図５】切替機１内部の切替スイッチ５、ＵＳＢホストコントローラ回路２、ＣＰＵ６、サーバＡに接続するＵＳＢ装置エミュレーション回路３（Ａ）、サーバＢに接続するＵＳＢ装置ホストエミュレーション回路３（Ｂ）、及び切替機１に接続されるＵＳＢキーボード３１間の切替発生前後における信号の様子を示す図である。
【図６】Ｏｖｅｒ  Ｃｕｒｒｅｎｔ発生時の信号の様子を示す図である。
【図７】リセット回路９の構成を示す図である。
【図８】切替機１にＵＳＢハブ３４を介してＵＳＢキーボードとＵＳＢマウスを接続した状態を示す図である。
【図９】切替機１Ａと切替機１Ｂとをカスケード接続した状態を示す図である。
【図１０】切替機のカスケード接続を検出する手順を示すフローチャートである。
【図１１】切替制御モードの動作を示すフローチャートである。
【図１２】切替制御モード時の切替機１Ｂの動作を示すフローチャートである。
【図１３】ＵＳＢキーボード３１と切替機１とサーバＡが接続される時の信号の様子を示す図である。
【図１４】ＰＳ／２マウス  Ｉ／ＦとＰＳ／２キーボード  Ｉ／Ｆとを備える切替機の構成を示す図である。
【図１５】ソフトウェアによってＰＳ／２マウスを無効化する手順を示す図である。
【図１６】ＵＳＢホストコントーラ回路によるファームウェアの書き換え制御フローチャートである。
【図１７】ＣＰＵファームウェア書き換えの手順を示す図である。
【図１８】ＣＰＵファームウェア書き換え時のＵＳＢホストコントローラ回路の手順を示すフローチャートである。
【図１９】ＣＰＵファームウェア書き換え時のＣＰＵの手順を示すフローチャートである。
【図２０】ＵＳＢホストコントローラ回路のファームウェアの書き換え制御フローチャートである。
【図２１】ＵＳＢ装置エミュレーション回路ファームウェア書き換えの手順を示す図である。
【図２２】ＵＳＢ装置エミュレーション回路ファームウェア書き換え時のＵＳＢホストコントローラ回路の手順を示すフローチャートである。
【図２３】ＵＳＢ装置エミュレーション回路ファームウェア書き換え時のＣＰＵの手順を示すフローチャートである。
【図２４】ＵＳＢ装置エミュレーション回路ファームウェア書き換え時のＵＳＢ装置エミュレーション回路の手順を示すフローチャートである。
【符号の説明】
【０１１５】
１  切替機                        ２  ＵＳＢ  ＨＣ回路
３  ＵＳＢ装置エミュレーション回路
４  ビデオ信号切替回路            ５  切替ＳＷ
６  ＣＰＵ                        ７  ＯＳＤ回路
８  ＬＥＤ                        ９  リセット回路
１０  ＵＳＢ  Ｉ／Ｆ              １１  ＶＧＡ  Ｉ／Ｆ
２１  ＵＳＢ  ＨＢ                ２２  ＭＣＵ
２３  ＲＡＭ                      ２４  フラッシュＲＯＭ
３１  ＵＳＢキーボード            ３２  ＵＳＢマウス
３３  ディスプレイ                ３４  ＵＳＢハブ
４１  ＰＳ／２キーボード  Ｉ／Ｆ
４２  ＰＳ／２マウス  Ｉ／Ｆ
９１  リセットＳＷ                ９２  カウンタ回路
９３  リセットＩＣ                ９４  リセットＩＣ
【図１】
2006127252.tif 000003
【図２】
2006127252.tif 000004
【図３】
2006127252.tif 000005
【図４】
2006127252.tif 000006
【図５】
2006127252.tif 000007
【図６】
2006127252.tif 000008
【図７】
2006127252.tif 000009
【図８】
2006127252.tif 000010
【図９】
2006127252.tif 000011
【図１０】
2006127252.tif 000012
【図１１】
2006127252.tif 000013
【図１２】
2006127252.tif 000014
【図１３】
2006127252.tif 000015
【図１４】
2006127252.tif 000016
【図１５】
2006127252.tif 000017
【図１６】
2006127252.tif 000018
【図１７】
2006127252.tif 000019
【図１８】
2006127252.tif 000020
【図１９】
2006127252.tif 000021
【図２０】
2006127252.tif 000022
【図２１】
2006127252.tif 000023
【図２２】
2006127252.tif 000024
【図２３】
2006127252.tif 000025
【図２４】
2006127252.tif 000026