第1の課題は、手動スイッチを操作したり,キーボードで特定のキーの組み合わせを押下することによってホストを切り替える場合、操作者の操作を待たなければならず、自動的に切り替えることが出来ないことである。
第2の課題は、USBのように活線挿抜機能を有するシルアルインターフェースでは、従来のような単純な切り替えでは、通常の活線挿抜操作と同様に活線挿抜機能仕様に基づいたデバイスのハードリセットが行なわれてしまい、デバイスが使用可能になるまでに時間がかかることである。
第3の課題は、手動スイッチやキーボードで特定のキーの組み合わせを押下することによってホストを切り替える場合、その切り替えをクラスタシステムにおける主動作ホストの切り替えに連動させることが出来ないことである。すなわち、クラスタシステムにおいて、あるホストに障害が生じたとき、クラスタのフェールオーバー(障害時に処理を切り替える動作)により主動作ホストを切り替えても、連動させてコンソールを切り替えることが出来ないため、障害の発生を管理者に素早く知らしめることができないことである。
第4の課題は、クラスタのフェールオーバーに連動させてデバイスを切り替えようとすれば、ホストからデバイスへ切り替え制御信号を送らねばならず、そのためには新たな制御信号線を追加しなければならないことである。
第5の課題は、従来のような単純な切り替えでは、有効に接続できないホスト(例えば、物理的に接続されていないホストや,電源オンになっていないホスト)も選択できてしまうことである。しかし、有効に接続できないホストに切り替えてしまうと、入出力が無効となる。従って、有効に接続できないホストの有無を操作者が常に意識していなければならず、はなはだ使い勝手が悪い。
第6の課題は、従来のような単純な切り替えでは、USB(例えばキーボードやマウス)とIEEE1394(モニタ)のような異種のシルアルインターフェースの同時切り替えに対応できないことである。
第7の課題は、従来のような単純な切り替えでは、一つのキーボードを接続しうるホストのアーキテクチャが同一のものに限定され(少なくともキーコードが同一のものに限定される)、アーキテクチャの異なる複数のホスト間でキーボードを共用できないことである。
第8の課題は、従来のような単純な切り替えでは、複数のホスト間でキーボードを共用したときに、複数のホストに同時にキー入力を伝達できないことである。
そこで、本発明の第1の目的は、複数のホストでデバイスを共用でき且つデバイスに接続するホストの切り替えを自動的にホストの制御で行うことを可能とするインターフェース切替装置、インターフェース切替制御方法及びキーボードを提供することにある。
また、本発明の第2の目的は、複数のホストでデバイスを共用でき且つ切替開始からデバイスが使用可能になるまでの時間を短縮可能とするインターフェース切替装置、インターフェース切替制御方法及びキーボードを提供することにある。
また、本発明の第3の目的は、複数のホストでデバイスを共用でき且つクラスタシステムにおける主動作ホストの切り替えに連動させて、デバイスに接続するホストの切り替えを行うことを可能にするインターフェース切替装置、インターフェース切替制御方法及びキーボードを提供することにある。
また、本発明の第4の目的は、複数のホストでデバイスを共用でき且つデバイスに接続するホストの切り替えを、新たな制御信号線を追加することなく、自動的にホストの制御で行うことを可能とするインターフェース切替装置、インターフェース切替制御方法及びキーボードを提供することにある。
また、本発明の第5の目的は、複数のホストでデバイスを共用でき且つ有効に接続できないホストへの切り替えを防止することを可能とするインターフェース切替装置、インターフェース切替制御方法及びキーボードを提供することにある。
また、本発明の第6の目的は、複数のホストでデバイスを共用でき且つデバイスに接続するホストの切り替えを自動的にホストの制御で行うことを可能とし且つ異種のシルアルインターフェースの同時切り替えをも可能とするインターフェース切替装置、インターフェース切替制御方法及びキーボードを提供することにある。
また、本発明の第7の目的は、アーキテクチャの異なる複数のホスト間での共用が可能なキーボードを提供することにある。
また、本発明の第8の目的は、複数のホスト間での共用が可能であり且つ複数のホストの内の一つ以上に対して同時にキー入力可能なキーボードを提供することにある。
第1の観点では、本発明は、一対以上の差動信号線と電源線とを備えた活線挿抜可能なシリアルインターフェースにより複数のホストとデバイスとに接続され、前記複数のホストの内のいずれかを切替可能に選択して前記デバイスに接続するインターフェース切替装置であって、前記複数のホストのいずれかから切替制御命令を受信する切替制御命令受信手段と、受信した切替制御命令に基づいて前記デバイスに接続する前記複数のホストの内のいずれかを選択する切替手段とを具備したことを特徴とするインターフェース切替装置を提供する。
上記インターフェース切替装置では、ホストから切替制御命令を受信し、それに基づいてホストを切り替えるから、前記第1の課題を解決し、前記第1の目的を達成できる。
第2の観点では、本発明は、一対以上の差動信号線と電源線とを備えた活線挿抜可能なシリアルインターフェースにより複数のホストとデバイスとに接続され、前記複数のホストの内のいずれかを切替可能に選択して前記デバイスに接続するインターフェース切替装置であって、前記複数のホストの少なくとも一つから電源が供給されている限り、その電源を前記デバイスに供給する電源供給手段を具備したことを特徴とするインターフェース切替装置を提供する。
上記インターフェース切替装置では、ホストを切り替えても、その時にデバイスへの電源の遮断が生じないから、ハードリセットが起らず、前記第2の課題を解決し、前記第2の目的を達成できる。
第3の観点では、本発明は、上記第2の観点のインターフェース切替装置において、接続の切り替え時に、新たに接続しようとするホストに対して、前記デバイスの通電が開始された時と同一の接続認識プロトコルを、前記デバイスに代わって、送信することを特徴とするインターフェース切替装置を提供する。
上記インターフェース切替装置では、デバイスにハードリセットが起らなくても、ホストに対してデバイスの装着を認識させることが出来るので、前記第2の課題を解決し、前記第2の目的を達成できる。
第4の観点では、本発明は、複数のホストと、デバイスと、上記第1から第3の観点のインターフェース切替装置とを具備してなるシステムにおけるインターフェース切替制御方法であって、前記ホストは、障害検知機能により障害を検知すると、前記インターフェース切替装置に対して、切替制御命令を送信することを特徴とするインターフェース切替制御方法を提供する。
上記インターフェース切替制御方法では、障害検知時の主動作ホストの切り替えに連動させてホストから切替制御命令を送信させることが出来るから、前記第3の課題を解決し、前記第3の目的を達成できる。
第5の観点では、本発明は、上記第1から第3の観点のインターフェース切替装置において、前記ホストからの切替制御命令を、前記シリアルインターフェースを介して、前記ホストから受け取ることを特徴とするインターフェース切替装置を提供する。
上記インターフェース切替装置では、シリアルインターフェースを介してホストから切替制御命令を受け取るから、新たな制御信号線を追加する必要がなく、前記第4の課題を解決し、前記第4の目的を達成できる。
第6の観点では、本発明は、上記第1から第3又は第5の観点のインターフェース切替装置において、前記切替手段は、切り替えようとするホストと有効に接続可能か否かを判定し、有効に接続可能でない場合には切り替えを行わないことを特徴とするインターフェース切替装置を提供する。
上記インターフェース切替装置では、有効に接続可能でないホストには切り替えを行わないから、前記第5の課題を解決し、前記第5の目的を達成できる。
第7の観点では、本発明は、上記第1から第3,第5,第6の観点のインターフェース切替装置において、切替制御信号を外部に出力する切替制御信号外部出力手段を具備したことを特徴とするインターフェース切替装置を提供する。
上記インターフェース切替装置では、外部に出力する切替制御信号を利用すれば、異種のインターフェースの切り替えを同時に行うことが出来るから、前記第6の課題を解決し、前記第6の目的を達成できる。
第8の観点では、本発明は、複数のホストと、異種のインターフェースを有する複数のデバイスと、一つの種類のシルアルインターフェースで前記ホストに接続された上記第7の観点のインターフェース切替装置とを具備してなるシステムにおけるインターフェース切替制御方法であって、前記インターフェース切替装置から外部に出力される切替制御信号を利用して、前記インターフェース切替装置のシルアルインターフェースとは異なる種類のインターフェースを有するデバイスに接続するホストを切り替えることを特徴とするインターフェース切替制御方法を提供する。
上記インターフェース切替制御方法では、外部に出力する切替制御信号を利用して異種のインターフェースの切り替えを同時に行うから、前記第6の課題を解決し、前記第6の目的を達成できる。
第9の観点では、本発明は、一対以上の差動信号線と電源線とを備えた活線挿抜可能なシリアルインターフェースにより複数のホストの内のいずれかを切替可能に選択して接続するキーボードであって、前記複数のホストのいずれかから前記シリアルインターフェースを介して切替制御命令を受信する切替制御命令受信手段と、受信した切替制御命令に基づいて前記複数のホストの内のいずれかを選択して接続を切り替える切替手段と、複数種類のキースキャンコードセットを記憶するキースキャンコードセット記憶手段と、現在接続しているホストに対応した種類のキースキャンコードセットを前記キースキャンコードセット記憶手段から読み出しそれを用いてキー入力に対応するキースキャンコードを生成し前記シリアルインターフェースを介して前記ホストへ出力するキースキャンコード出力手段とを具備したことを特徴とするキーボードを提供する。
上記キーボードでは、複数種類のキースキャンコードセットを記憶し、現在接続しているホストに対応した種類のキースキャンコードセットを用いてキー入力に対応するキースキャンコードを生成するから、前記第7の課題を解決し、前記第7の目的を達成できる。
第10の観点では、本発明は、一対以上の差動信号線と電源線とを備えた活線挿抜可能なシリアルインターフェースにより複数のホストの内の一つ以上を切替可能に選択して接続するキーボードであって、前記複数のホストから前記シリアルインターフェースを介して切替制御命令を受信する切替制御命令受信手段と、受信した切替制御命令に基づいて前記複数のホストの内の一つ以上を選択して接続を切り替える切替手段と、キー入力に対応するキースキャンコードを生成し前記シリアルインターフェースを介して現在接続している一つ以上のホストへ出力するキースキャンコード出力手段とを具備したことを特徴とするキーボードを提供する。
上記キーボードでは、複数のホストの内の一つ以上に接続でき、現在接続している一つ以上のホストにキー入力に対応するキースキャンコードを同時出力するから、前記第8の課題を解決し、前記第8の目的を達成できる。
本発明のインターフェース切替装置、インターフェース切替制御方法及びキーボードによれば、以下に示す第1〜第8の効果が得られる。第1の効果として、複数のホストでデバイスを共用でき且つデバイスに接続するホストの切り替えを、ホストの制御で自動的に行うことが出来る。第2の効果として、切替開始からデバイスが使用可能になるまでの時間を短縮できる。第3の効果として、クラスタシステムにおける主動作ホストの切り替えに連動させて、デバイスに接続するホストの切り替えを行うことが出来る。第4の効果として、複数のホストでデバイスを共用でき且つデバイスに接続するホストの切り替えを、新たな制御信号線(制御用インターフェース)を追加することなく、ホストの制御で自動的に行うことが出来る。第5の効果として、接続されていないホストへの切り替えを防止することが出来る。第6の効果として、USB,VGA,IEEE1394といった異種のシルアルインターフェースの同時切り替えに対応することが出来る。第7の効果として、異なるアーキテクチャを有する複数のホスト間で、一つのキーボードを共用することが可能になる。第8の効果として、複数のホストに対して一つのキーボードからキー入力をブロードキャストすることが可能になる。
以下、図面を参照しつつ本発明の実施形態について説明する。なお、これにより本発明が限定されるものではない。また、以下に示すUSB切替回路,USB切替装置およびUSBホストセレクタは、いずれもがUSBインターフェース切替装置である。また、USBケーブルは、一対のUSB信号線,USB電源線およびUSBグランド線の4線で構成される伝送線である。また、前記一対のUSB信号線は差動信号線であり、一方をD+信号線,他方をD−信号線と称する。さらに便宜上、USBホスト−USBデバイス間においてUSBインターフェースによって両者間で通信が可能である状態を「USB接続している」と表現することにする。
−第1の実施形態−
図1は、本発明の第1の実施形態にかかるUSBホストセレクタ100の構成の一例を示すブロック図である。
このUSBホストセレクタ100は、USBデバイス104a〜104cにUSB接続するUSBホストを、複数のUSBホスト103a〜103dのいずれかに、自動的に又は手動で切り替えるものである。
このUSBホストセレクタ100の内部は次のように構成される。
101a〜101gは、USBコネクタである。
105は、USB信号を複数のUSBデバイス104a〜104cにリピートするUSBハブである。
106(点線で囲った部分)は、USB切替装置部分106であり、本発明の特徴とするところである。
107は、USBハブ105に接続されるUSBバスインターフェースであり、USBホスト103から発行される切替制御命令をUSB上から解釈して切替回路108の切替制御部110へと渡す働きを持つ。
切替回路108は、USB切替装置106の内部にて切替機能をつかさどる部分である。
109は、切替回路108の内部において実際にUSB信号を切り替える手段であり、機械的なスイッチでもよいし、電気的なスイッチ(例えばMOSトランジスタによるスイッチ)でもよい。
112a〜112dは、USBホスト103a〜103dの物理的接続および電源オン状態を検出するホスト接続検出部である。これらのホスト接続検出部112a〜112dによる検出結果信号113a〜113dは、切替制御部110に入力される。
切替は、以下の方法で行なわれる。
第1の方法:USBホスト103が切替制御命令を送出し、USBバスインターフェース107を経て切替制御部110が切替制御命令を受け取って解釈し、切替部109を作動させる。
第2の方法:操作者が手動切替スイッチ111を操作し、それを切替制御部110が検知して、切替部109を作動させる。
第3の方法:USBホスト103が物理的に接続されていないか又は電源が入っていないことをホスト接続検出部112が検出し、それを切替制御部110が検知して、切替部109を作動させる。
なお、USBホスト103から受け取った切替制御命令と検知した手動切替スイッチ111の状態が異なる場合を考慮して、切替制御部110において優先制御する。
図2は、前記切替制御部110の動作を示すフロー図の一例である。
パワーオン後に実行される処理201で、USBコネクタ101a〜101dの少なくも一つに、電源が投入されているUSBホスト103が物理的に接続されているかを確認する。処理202で、有効なUSBホスト(電源が投入されており、物理的に接続されているUSBホスト)103のうち任意の一つまたは予め設定された優先度が最高のものに接続するように切替部109を切り替える。
処理203では、接続経路が確立された特定のUSBホスト103から発信される電源オン後の初期化命令(リセット信号)を受けて、USBバスインターフェース107およびUSBコネクタ101e〜101gに接続されているUSBデバイス104a〜104cが初期化される。なお、USBデバイスの検出および初期化については、前記「UNIVERSAL SERIAL BUS SPECIFICATION version 1.0(1996年1月15日発行)」の165ページから171ページに記載されている。
上記処理203が終了すれば、特定のホスト103とデバイス104a〜104cが接続されたことになり、モニタ表示が行なわれ、キーボード入力が可能となる。
処理204では、USBホスト103から切替制御命令を受信したチェックし、受信していないなら処理205へ進み、受信したなら処理211へ進む。この処理204によって、自動的にホストを切り替え可能となる。 処理205では、操作者が手動切替スイッチ111を押下したかチェックし、押下していないなら処理208へ進み、押下したなら処理211へ進む。
処理208では、接続していたUSBホスト103の有効性を判定し、有効な場合は前記処理204に戻り、何らかの理由で物理的に接続されなくなったか又は電源が断たれた場合には処理209へ進む。
処理211では、切り替えようとしているUSBコネクタ101が現在接続しているUSBコネクタ101かチェックし、切り替えようとしているUSBコネクタ101が現在接続しているUSBコネクタ101なら無駄なハードリセットを回避するため切替動作を行わずに前記ステップ208に戻り、切り替えようとしているUSBコネクタ101が現在接続しているUSBコネクタ101と異なるなら処理206へ進む。
処理206では、切替先のUSBコネクタ101に接続されているUSBホスト103の有効性を判定し、有効な場合は処理207へ進み、物理的に接続されていないか又は電源が断たれている場合には切替動作を行わずに前記ステップ208に戻る。この処理206によって、無効なホストに切り替えてしまうことを回避できる。処理207では、切替部109を切り替える。そして、前記処理203に戻る。
処理209では、接続していたUSBホスト103の他に有効なUSBホスト103があるかチェックし、あれば処理210へ進み、なければ前記処理204に戻る。処理210では、接続していたUSBホスト103以外の有効なUSBホスト103に接続するように切替部109を切り替える。この処理210によって、無効なコンソール接続をすばやく断つことが可能となる。
以上の第1の実施形態のUSBホストセレクタ100によれば、第1の目的,第4の目的および第5の目的を達成することが出来る。
−第2の実施形態−
図3は、本発明の第2の実施形態にかかるマルチホスト接続USBキーボード400の構成を示すブロック図である。
このマルチホスト接続USBキーボード400は、第1の実施形態で述べた切替回路108を備えると共に、キースキャンコードセット記憶領域405を備えていることが特徴である。
前記キースキャンコードセット記憶領域405は、入力キーコードと出力キースキャンコードの対応テーブルを、アーキテクチャの異なる複数のUSBホスト103に対応して保持している。
キースイッチ404が押下されると、その入力キーコードをキースキャン部403が読み取り、キーボード制御回路402に送る。
キーボード制御回路402は、切替回路108によりUSBホスト103との接続を確立した時に、そのUSBホスト103から初期設定命令を受け取り、その初期設定命令により前記USBホスト103に対応したキースキャンコードセットを前記キースキャンコードセット記憶領域405から読み出す。そして、そのキースキャンコードセットを用いて、前記入力キーコードを出力キースキャンコードに変換し、USBバスインタフェース401および切替回路108を介して、USBホスト103に送信する。
以上の第2の実施形態のマルチホスト接続USBキーボード400によれば、第1の目的,第4の目的,第5の目的および第7の目的を達成することが出来る。
なお、キースキャンコードセットの読み出しは、USBホスト103との接続を確立したUSBコネクタ101を検出して、それに対応するキースキャンコードセットを選択して行ってもよい。
−第3の実施形態−
図4は、本発明の第3の実施形態にかかるマルチホスト接続USBキーボード500の構成を示すブロック図である。
このマルチホスト接続USBキーボード500は、複数のキーボード制御回路502a〜502cとホスト選択回路504とを備えていることが特徴であり、前記第2の実施形態のマルチホスト接続USBキーボード400におけるホスト切替機能を有するのに加えて、複数のUSBホスト103に同時にキー入力を伝達するブロードキャスト機能を有している。
以下、ブロードキャスト機能について説明する。USBホスト103がUSBバスインターフェース501を介して前記キーボード制御回路502にキーコード伝達命令またはキーコード伝達停止命令を発行すると、前記キーボード制御回路502に内蔵しているホスト選択回路制御部503は、前記ホスト選択回路504に内蔵しているホスト選択レジスタ505の対応するビットに対して“1”または“0”を設定する。また、前記キーボード制御回路502は、対応するUSBホスト103の接続が有効か否かを監視しており、有効でなくなったことを検出したなら、そのキーボード制御回路502のホスト選択回路503が、前記ホスト選択回路504のホスト選択レジスタ505の対応するビットの値を自動的に“0”に設定する。これにより、操作者の使い勝手を向上し得る。
なお、ホスト選択レジスタ505の設定内容すなわち接続状況は、キー送信ホスト表示LED506で表示される。
前記ホスト選択回路504は、キースキャン部403から受け取った入力キーコードを、ホスト選択レジスタ505の“1”のビットに対応したキーボード制御回路502に信号線507を通じて送信する。ホスト選択レジスタ505の複数のビットの値が“1”の場合は、対応する複数のキーボード制御回路502へ同時に入力キーコードを送信する。“0”のビットに対応したキーボード制御回路502には送信しない。
入力キーコードを受け取ったキーボード制御回路502は、キースキャンコードセット記憶領域405をアクセスすることで、自経路に接続されているUSBホスト103のアーキテクチャに応じた出力キースキャンコードに変換し、USBバスインタフェース501を介してUSBホスト103に送信する。
以上の第3の実施形態のマルチホスト接続USBキーボード500によれば、第1の目的,第4の目的,第5の目的,第7の目的および第8の目的を達成することが出来る。
−第4の実施形態−
図5は、本発明の第4の実施形態にかかるUSBホストセレクタ600の接続状態を示す斜視図である。
このUSBホストセレクタ600は、信号線607によりVGAセレクタ601に接続されると共に信号線608によりIEEE1394ホストセレクタ602に接続されていることが特徴である。
前記VGAセレクタ601は、VGAケーブル605により複数のUSBホスト603に物理的に接続されており、それらUSBホスト603から出力されるVGA信号の一つを選択してVGA対応ディスプレイ609に伝達する。なお、VGAセレクタ601の内部構成は、従来知られている切り替え装置と同様である。
前記IEEE1394ホストセレクタ602は、IEEE1394ケーブル606により複数のUSBホスト603に物理的に接続されており、それらUSBホスト603の一つを選択してIEEE1394対応フレキシブルディスクドライブ612に論理的に接続する。なお、IEEE1394ホストセレクタ602の内部構成は、インターフェースの規定が異なる他は基本的にUSBホストセレクタ600と同じである。
図6は、USBホストセレクタ600に内蔵される切替制御部620の入出力信号を示した説明図である。この切替制御部620は、第1の実施形態における切替制御部110と基本的に同様であるが、VGAセレクタ601とIEEE1394ホストセレクタ602の切り替えを制御する信号線607と信号線608とが出ている点が異なっている。
図7は、USBホストセレクタ600における切り替え処理の一例を示したフロー図である。処理700では、操作者が手動切替スイッチ111を押下したか否かを判定し、押下してないなら処理701へ進み、押下したなら処理703へ進む。
処理701では、USBホスト103から切替制御命令を受信したか否かを判定し、受信してないなら前記処理700に戻り、受信したなら処理703へ進む。処理703では、IEEE1394ホストセレクタ602が接続されているか否かを判定し、接続されている場合は処理704へ進み、接続されていない場合は処理708へ進む。
処理704では、IEEE1394対応フレキシブルディスクドライブ612のデータ送受信中に切り替えが行われるのを防止するため、USBホスト603上のIEEE1394制御ソフトウェアに対してIEEE1394対応フレキシブルディスクドライブ612の使用禁止を要求する。
処理705では、USBホスト103上で稼働しているUSB制御ソフトウェアがIEEE1394制御ソフトウェアに問い合せるなどして、IEEE1394対応フレキシブルディスクドライブ612の切り替えが可能であるか否かを判定し、可能でないなら前記処理700に戻り、可能なら処理706へ進む。
処理706では、IEEE1394ホストセレクタ602へ信号線608を介して切替制御命令を送出する。
処理707では、IEEE1394ホストセレクタ602の切り替えが成功したか否か判定し、成功していないなら前記処理700に戻り、成功したなら処理708へ進む。処理708では、VGAセレクタ601が接続されているかを判定し、接続されていれば処理709へ進み、接続されていなければ処理710へ進む。
処理709では、VGAセレクタ601へ信号線607を介して切替制御命令を送出する。処理710では、USB対応キーボード610およびUSB対応マウス611に接続するUSBホスト603を切り替える。
図8は、図6のUSBホストセレクタ600の代りに前記第1の実施形態のUSBデバイス100を用いると共に、図6のVGAセレクタ601及びIEEE1394ホストセレクタ602の代りにUSBデバイスであるVGAセレクタ800及びIEEE1394ホストセレクタ801を用いた構成例である。
この構成をとれば、図6の信号線607,608のような特殊なプロトコルを定義する必要がなくなり、USBケーブル802,803を用いて接続できると共にUSB用に流通する市販汎用LSIなどを用いて構成できるようになる。
以上の第4の実施形態によれば、第1の目的,第4の目的,第5の目的および第6の目的を達成することが出来る。
なお、図6,図8では別体としたが、VGAセレクタ601(800)およびIEEE1394ホストセレクタ602(801)をUSBホストセレクタ600(100)と一体化してもよい。
−第5の実施形態−
図9は、本発明の第5の実施形態にかかるUSBホストセレクタ900とUSBホスト103を示すブロック図である。
このUSBホストセレクタ900は、USBホスト103側のUSBコネクタ101の数分だけ、USBバスインターフェース107を設けたことが特徴である。すなわち、このUSBホストセレクタ900では、USBホスト103側のUSBコネクタ101a,101b,101cの直下にそれぞれUSBハブ105a,105b,105cを設けて、そこから分岐したUSB信号線904d,904f,904hをUSBバスインターフェース107a,107b,107cに入力し、これらUSBバスインターフェース107a,107b,107cを切替制御部901に接続する構成としている。この構成をとることで、任意のUSBホスト103からの切替制御命令を切替制御部901へ与えることが出来るようになる。
なお、前記第1の実施形態のUSBホストセレクタ100では、USBバスインターフェース107を一つしか持たないため、接続が確立されているUSBホスト103からしか切替制御命令を有効に発行できないが、上記構成を適用すれば、任意のUSBホスト103からの切替制御命令を切替制御部110へ与えることが出来るようになる。また、上記構成を、第4の実施形態にかかるUSBホストセレクタ600(図5)および100(図8)に適用してもよい。
図10は、前記USBホストセレクタ900の切替制御部901の処理の一例を示すフロー図である。
電源オン後に実行される処理E01では、USBホスト103のいずれかからの切替制御命令の受信を待ち、受信したなら処理E02へ進む。なお、複数のUSBホスト103からの切替制御命令を同時に受信する可能性もあるため、排他制御などを行う。
処理E02では、切り替えようとするUSBホスト103の有効性を判定し、有効な場合は処理E03へ進み、何らかの理由で物理的に接続されなくなったか又は電源が断たれた場合には前記処理E01に戻る。
処理E03では、切替部109を切り替える。そして、前記処理E01に戻る。さて、USBホスト103a〜103cは、クラスタシステムを構成している。USBホスト103が備えている障害監視ソフトウェア907は、クラスタ制御ソフトの一部であり、ネットワークインターフェース910およびネットワーク911を通じ、他のUSBホスト103の障害監視ソフトウェア907へ定期的にパケットを送り、「自分が生きている」ことを他のUSBホスト103の障害監視ソフトウェア907へ通知する。
また、USBホスト103が備えている制御ソフトウェア906は、前記障害監視ソフトウェア907と連動して、USBホストセレクタ900の制御を行なう。
図11は、制御ソフトウェア906の動作の一例を示すフロー図である。
電源オン後に実行される処理C01で、USBホストコントローラ908がUSBホストセレクタ900を認識すると、処理C02へ進む。処理C02では、CPU909は、USBホストセレクタ900をUSBプロトコルに従って初期化する。
処理C03では、USBデバイス104の一つであるキーボードからのキー入力があるかどうかを判定し、キー入力があるなら処理C04へ進み、ないなら処理C06へ進む。処理C04では、キー入力がUSBホストの切替を指示するキーの組み合わせかどうかを判定し、USBホストの切替を指示するキーの組み合わせなら処理C05へ進み、そうでないなら処理C06へ進む。
処理C05では、切替制御命令をUSBホストセレクタ900に送信する。処理C06では、前記障害監視ソフトウェア907と通信し、他のUSBホスト103のいずれかで障害が発生していないかを検知し、障害の発生が検出されたなら処理C07へ進み、検知されないなら処理C08へ進む。
処理C07では、障害が発生したUSBホスト103に切り替える切替制御命令をUSBホストセレクタ900に送信する。処理C08では、USBホストセレクタ900が有効に接続されているか否かを判定し、有効に接続されているなら前記処理C03に戻り、有効に接続されていないなら処理を終了する。
以上の動作により、障害が発生したUSBホスト103に自動的に切り替えるため、管理者は速やかに障害情報をモニタから読み取ることが出来る。また、障害の起きているUSBホスト103に対してキーボードから必要なキー入力を行なうことが出来る。
なお、障害の発生したUSBホスト103では意味のあるモニタ表示が行なわれず、また、キーボード入力も無効になる可能性が高い、と考えられる場合には、上記と逆に、前記処理C07で、障害が発生していないUSBホスト103のうちの優先度の最も高いものに切り替える切替制御命令をUSBホストセレクタ900に送信する。
処理C07で、上記の2つの動作のいずれを選択するかは、管理者があらかじめ制御ソフトウェア906に指示しておけばよい。あるいは障害の程度によって選択してもよい。
以上の第5の実施形態によれば、第1の目的,第3の目的,第4の目的および第5の目的を達成することが出来る。
−第6の実施形態−
本発明の第6の実施形態を説明する前に、USBの活線挿抜機能仕様に基づく活線挿入時の動作を説明する。
通電状態のUSBホストに新たにUSBデバイスを装着すると、そのUSBデバイスには、USBケーブルを介して、USBホストから電力が与えられる。これにより、USBデバイスの内部のリセット回路が作動する。これをハードリセットという。
内部のリセット回路が作動すると、USBデバイスは、装着を示す信号をUSBホストに送信する。それを受信したUSBホストは、新たに接続されたUSBデバイスに対してリセット命令を送る。このリセット命令を受けたUSBデバイスは、内部の回路状態の初期化を行なう。これをソフトリセットという。前記USBデバイスの装着を示す信号手順およびUSBホストからのリセット命令手順は、前記「UNIVERSAL SERIAL BUS SPECIFICATION version1.0(1996年1月15日発行)」の116ページから117ページおよび119ページに記載されている。
しかし、USBホストの切り替え時に、上記のようなハードリセット及びソフトリセットが行われると、それだけUSBデバイスが使用可能になるまでに時間がかかり、使用者の使い勝手を著しく損ねてしまう。
そこで、USBデバイスのソフトリセットのみ行なえばハードリセットは特に不要であることに着目し、第6の実施形態では、USBデバイスのハードリセットを起こさせず、ソフトリセットのみが行なわれるようにした。これにより、USBデバイスが使用可能になるまでの時間を短縮でき、第2の目的を達成できるようになる。
図12は、本発明の第6の実施形態にかかる切替部109を示すブロック図である。まず、ハードリセットをUSBデバイス104に起こさせない手段について説明する。この切替部109では、逆流を防止するダイオードA07を介して、すべてのUSBホスト103からのUSB電源線A03をオア接続し、USBハブD105dを経由して、USBデバイス104へと与えている。
ハードリセットは、USBケーブル904中のUSB電源線A03が活性化したことを検知して起こされる。しかし、上記のように、切替制御とは関連なく常に電源を供給されているので、USBデバイス104は、USBホスト103の切り替えを行っても、ハードリセットを起こさない。
次に、ソフトリセットを行わせる手段について説明する。活線挿抜補償回路A00は、USBホスト103の切り替えの際に、D+信号線A01とD−信号線A02を介して、装着を示す信号を送り、続いて、実際の接続A〜Cを切り替える。すると、USBホスト103から出力されるリセット命令(D+信号線A01とD−信号線A02の組み合わせ)は、切り替えられたUSBデバイス104に与えられ、ソフトリセットが行われることになる。
図13は、切替時の動作の一例を示すタイムチャートである。
最初は、ステップB10に示すように、USBハブA105aとUSBハブD105dの接続Aが確立されている状態である。ステップB11において、USBハブB105bとUSBハブD105dの接続Bへと切り替える切替制御命令がUSBホストA103a(図9)から出され、切替制御部901に与えられる。
ステップB12で、活線挿抜補償回路A00は、接続すべきUSBホストB103bに対し、USBデバイス104の装着を示す信号を出力する。ステップB15にて、USBデバイス104の装着を示す信号を受け取ったUSBホストB103bは、USBデバイス104に対するリセット命令を送り出す。
ステップB13で、活線挿抜補償回路A00は、リセット命令を検知して、接続Aから接続Bへと切り替える。ステップB14で、接続Bが確立する。そして、USBホストB103bからのリセット信号を、ハブD105dを介して、USBデバイス104が受信する。
ステップB16で、USBデバイス104の初期化が行なわれ、ホストが切り替わったことによる内部処理の途中結果などがクリアされる。その後、ステップB17で、USBデバイス104と新たなUSBホストB103bとの間で通信が可能になる。
以上の切替部109は、前述のUSBホストセレクタ100,600,900またはマルチホスト接続USBキーボード400,500に設置することが出来る。
100・・・USBホストセレクタ、101a〜101d・・・ホスト側USBコネクタ、101e〜101g・・・デバイス側USBコネクタ、102a〜102i・・・USBケーブル、103a〜103d・・・USBホスト、104a〜104c・・・USBデバイス、105・・・USBハブ、106・・・USB切替装置、107・・・USBバスインターフェース、108・・・切替回路、109・・・切替部、110・・・切替制御部、111・・・手動切替スイッチ、112a〜112d・・・ホスト接続検出部、113a〜113g・・・信号線、400・・・マルチホスト接続USBキーボード、401・・・USBバスインターフェース、402・・・キーボード制御回路、403・・・キースキャン部、404・・・キースイッチ、405・・・キースキャンコードセット記憶領域、406a,406b・・・信号線、500・・・マルチホスト接続USBキーボード、501a〜501c・・・USBバスインターフェース、502a〜502c・・・キーボード制御回路、503a〜503c・・・ホスト選択回路制御部、504・・・ホスト選択回路、505・・・ホスト選択レジスタ、506・・・キー送信ホスト表示LED、507a〜507c・・・信号線、508a〜508c・・・信号線、509a〜509c・・・信号線、510,511・・・信号線、600・・・USBホストセレクタ、601・・・VGAセレクタ、602・・・IEEE1394ホストセレクタ、603a〜603c・・・USBホスト、604a〜604c・・・USBケーブル、605a〜605c・・・VGAケーブル、606a〜606c・・・IEEE1394ケーブル、607,608・・・信号線、609・・・VGA対応ディスプレイ、610・・・USB対応キーボード、611・・・USB対応マウス、612・・・IEEE1394対応フレキシブルディスクドライブ、620・・・切替制御部、800・・・USB対応VGAセレクタ、801・・・USB対応IEEE1394ホストセレクタ、802,803・・・USBケーブル、900・・・USBホストセレクタ、901・・・切替制御部、902・・・切替回路、903・・・USB切替装置、904a〜904l・・・USBケーブル、905・・・メモリ、906・・・制御ソフトウェア、907・・・障害監視ソフトウェア、908・・・USBホストコントローラ、909・・・CPU、910・・・ネットワークインターフェース、911・・・ネットワーク、A00・・・活線挿抜補償回路、A01・・・D+信号線、A02・・・D−信号線、A03・・・USB電源線、A04・・・USBグランド線、A0・・・バススイッチ、A06・・・信号線、A07・・・ダイオード