(57)【特許請求の範囲】
【請求項１】
第１インターフェース（１０２）と第２インターフェース（１２６）のうち一方を有するコンピュータ（２０）に接続可能な周辺装置（１４２，２００）であって、前記第１インターフェースと該装置が第１データ導線（１０８）および第２データ導線（１１０）を含む差動データ接続を介して通信し、および、前記第２インターフェースと該装置が前記第１データ導線を含むシングルエンデッドデータ接続およびクロック導線（１１０）を介して通信するものにおいて、
a．前記コンピュータが前記第１インターフェースを含むときに、前記差動データ接続で前記第１データ導線および前記第２データ導線に接続するように構成され、並びに、前記コンピュータが前記第２インターフェースを含むときに、前記シングルエンデッドデータ接続で前記第１データ導線、および、前記クロック導線に接続するように構成された第１通信導線および第２通信導線（１５８，１６０）、
b．前記第１通信導線および前記第２通信導線に結合され、該装置が前記第１インターフェースおよび前記第２インターフェースのどちらに接続されているかを検出し、および、該検出したインターフェースを示す接続出力を供給するように構成されたインターフェース検出構成要素（１４８，２０５）であって、i. 第１抵抗要素、ii. 前記第１通信導線を該第１抵抗要素を介して第１電位に選択的に結合する第１スイッチ要素、iii. 第２抵抗要素、iv. 前記第２通信導線を該第２抵抗要素を介して第１電位に選択的に結合する第２スイッチ要素を有するもの、並びに、
c．前記インターフェース検出構成要素に結合され、前記接続出力に基づく前記検出したインターフェースに対応するプロトコルに従って、前記第１通信導線および第２通信導線を介して該装置と前記コンピュータとの間で通信するように構成されたコントローラ構成要素（１４４）を備え、
d．前記インターフェース検出構成要素が、
i. 該装置に前記コンピュータから電源が供給されると、前記第１スイッチ要素および前記第２スイッチ要素をオフにして、前記第１通信導線および前記第２通信導線を前記第１電位から結合解除し、前記第１通信導線および第２通信導線上の信号レベルを検出し、および、前記第１通信導線と前記第２通信導線の少なくとも一方に対応する前記信号レベルが第１論理レベルなら、前記第２インターフェースへの接続を示す前記接続出力を供給するように構成され、および、
i i 前記d. i.の処理において、前記第１通信導線および前記第２通信導線のどちらも第１論理レベルでないならば、前記第１スイッチ要素をオンにし、前記第１通信導線が前記第１抵抗要素を介して前記第１電位に接続されるように前記第１抵抗要素をイネーブルし、前記第１通信導線および前記第２通信導線上の前記信号レベルを検出し、その検出結果において、前記第１通信導線および前記第２通信導線のどちらも前記第１論理レベルでないなら、前記第１スイッチ要素をオフにし、前記d.i.の処理に戻るように構成される
ことを特徴とする周辺装置。
【請求項２】
前記第１インターフェースはユニバーサルシリアルバス（ＵＳＢ）インターフェースであり、前記第２インターフェースはＰＳ２インターフェースである、請求項１の装置。
【請求項３】
前記第１データ導線は前記第１インターフェースのＤ＋信号に結合し、前記第２データ導線はＤ−信号に結合する、請求項１または２の装置。
【請求項４】
前記第１データ導線は前記第１インターフェースのＤ−信号に結合し、前記第２データ導線はＤ＋信号に結合する、請求項１または２の装置。
【請求項５】
前記インターフェース検出構成要素は、前記第１通信導線および第２通信導線に結合されており、前記第１通信導線および第２通信導線上の信号レベルを検出し、検出した前記信号レベルに基づいて接続出力を供給するように構成された信号検出器を備える、請求項１の装置。
【請求項６】
前記信号検出器は、
前記d.i i.の処理における前記第１通信導線の検出された前記信号レベルが前記第１論理レベルと逆の第２論理レベルなら、前記第２インターフェースへの接続を示す前記接続出力を供給するように構成される、請求項５の装置。
【請求項７】
前記信号検出器は、
前記d．i i.の処理における前記第１通信導線の検出された前記信号レベルが前記第１論理レベルなら、前記第１インターフェースへの接続を示す前記接続出力を供給するように構成される、請求項５の装置。
【請求項８】
前記インターフェース検出構成要素がいったん前記d．i.の処理に戻って、前記第１スイッチ要素および第２スイッチ要素をオフにし、前記第１通信導線および第２通信導線上の信号レベルを検出すると、前記第１通信導線および前記第２通信導線に対応する前記信号レベルがいずれも前記第１論理レベルと逆の第２論理レベルなら、前記第１インターフェースへの接続を示す前記接続出力を供給するように信号検出器が構成される、請求項１の装置。
【請求項９】
前記第１論理レベルは論理１に対応し、前記第２論理レベルは論理０に対応する、請求項８の装置。
【請求項１０】
前記コントローラ構成要素は、
a．前記第１インターフェースに対応する第１プロトコルに従って通信を制御するように構成された第１コントローラと、
b．前記第２インターフェースに対応する第２プロトコルに従って通信を制御するように構成された第２コントローラと
を備える、請求項１の装置。
【請求項１１】
マウスである、請求項２の装置。
【請求項１２】
キーボードである、請求項２の装置。
【請求項１３】
前記コンピュータは、前記周辺装置と該コンピュータとの間に配設されたＵＳＢハブを備える、請求項２の装置。
【請求項１４】
前記ＵＳＢハブは電源内蔵タイプである、請求項１３の装置。
【請求項１５】
前記ＵＳＢハブはバスを介して電源を供給される、請求項１３の装置。
【発明の詳細な説明】
【０００１】
（発明の背景）
本発明は、コンピュータに接続可能な周辺装置に関する。より詳細には、本発明は、接続されているインターフェースのタイプを検出するように構成される周辺装置に関する。
【０００２】
現在、広範な周辺装置が、コンピュータに接続できるように構成されている。このような周辺装置は、一般に、キーボード、ポイントアンドクリック装置（伝統的にコンピュータマウスと呼ばれる）、および他の類似のタイプの装置などのユーザ入力装置を含む。
【０００３】
このような装置が接続されているコンピュータは、いくつかのインターフェースのうちの１つを介してその装置と通信する。このような周辺装置に接続するために一般に使用されるインターフェースには、シリアルインターフェース（ＲＳ２３２インターフェースなど）およびＰＳ２インターフェースが含まれる。実際ＰＳ２インターフェースは、長らくキーボードおよびマウスをコンピュータに接続するための標準となってきた。
【０００４】
しかし最近では、汎用シリアルバス（ＵＳＢ）インターフェースと呼ばれる別のシリアルインターフェースが導入されてきている。ＵＳＢインターフェースは、キーボードおよびマウスを含む、広範なコンピュータ周辺装置に対処する。しかし、従来のコンピュータは、一般に、周辺装置との通信のために１つのインターフェース（ＰＳ２またはＵＳＢインターフェースなど）しか備えていない。したがって、コンピュータがＰＳ２インターフェースを備える場合、キーボードまたはマウスは、ＰＳ２インターフェースによって定義されるプロトコルに従ってコンピュータとの通信をサポートするように構成しなければならない。同様に、コンピュータがＵＳＢインターフェースを備える場合、キーボードまたはマウスは、ＵＳＢインターフェースによって定義されるプロトコルに従って通信するように構成しなければならない。
【０００５】
これを行うために、従来のコンピュータ周辺装置は、その特定の周辺装置の機能を実施するためのソフトウェアプログラムを実行するマイクロプロセッサを含む。キーボードまたはマウスなどの装置では、このソフトウェアプログラムは、周辺装置とホストコンピュータの間のインターフェースを含み、それを介して周辺装置はホストコンピュータと通信する。このような通信は、しばしば、ホストコンピュータからコマンドを受け取り、データおよびステータス情報をホストコンピュータに送ることを含む。
【０００６】
上記で議論したように、ＰＳ２インターフェースおよびＵＳＢインターフェースは、異なるハードウェア要件およびソフトウェア要件を有し、周辺装置がホストコンピュータと通信することができるように、その要件を周辺装置中のマイクロプロセッサによって満たさなければならない。ＰＳ２インターフェースは、別個のクロック導線および別個データ導線を含む、２つの導線を使用する。これらの導線は、コンピュータまたは周辺装置によってオープンコレクタまたはオープンドレイン回路を介して駆動され、導線をホストコンピュータ内部でレール電圧（ＶＣＣなど）に引き寄せるプルアップ抵抗器（一般に２ｋオーム〜１０ｋオームの範囲）を有する。オープンコレクタまたはオープンドレイン回路（一般にトランジスタ）は、一般にマイクロプロセッサ内部に実装される。別のプルアップ抵抗器も周辺装置内部に必要である。ＰＳ２インターフェースを介して通信する周辺装置は、データ導線上のデータフローの方向にかかわらず、クロック導線上にクロック信号を供給することを担当する。ホストコンピュータは、クロック導線を論理ローレベルに引き寄せて周辺装置からの通信を禁止する。ホストコンピュータは、データ導線をローに引き寄せて、ホストコンピュータがデータを伝送しようとする周辺装置に信号を送ることもできる。
【０００７】
ＵＳＢインターフェースも、差動データ信号導線Ｄ＋およびＤ−を含む２つの導線を使用する。ＵＳＢポートでの（すなわち、ホストコンピュータまたはＵＳＢハブでの）ＵＳＢインターフェースでは、２つの導線は、１５ｋオーム抵抗器を介して論理ローレベルに引き寄せられる。周辺装置においては、周辺装置が高速ＵＳＢ周辺装置である場合、Ｄ＋導線が１．５ｋオーム抵抗器を介して約３．３ボルトに引き寄せられる。周辺装置が低速ＵＳＢ周辺装置である場合、Ｄ−導線が１．５ｋオーム抵抗器を介して３．３ボルトに引き寄せられる。周辺装置がＵＳＢポートに取り付けられるとき、ＵＳＢホストは、Ｄ＋導線またはＤ−導線のうちのどちらが論理ハイレベルに引き寄せられているかを判定することによって、その周辺装置が低速な装置であるのか、それとも高速な装置であるのかを判定する。
【０００８】
したがって、２つのインターフェースは異なるハードウェア構造を有し、異なるソフトウェアプロトコルを使用して通信することがわかる。伝統的には、一方がＵＳＢインターフェースと通信するように構成され、他方がＰＳ２インターフェースと通信するように構成される別々の周辺装置が提供されている。このことにより、このような周辺装置の製造業者は、これら２つの異なるインターフェースをサポートするために、２つの異なるタイプの周辺装置を提供しなければならない。
Ｓｖａｎｃａｒｅｋ他の米国特許第５９３５２２４号は、非ＵＳＢ周辺装置をコンピュータまたはＵＳＢハブ上のＵＳＢポートに適合させる、２つの実施形態を開示する。第１実施形態では、周辺装置とコンピュータの間にアダプタが使用される。プラグアダプタが取り付けられていないとき、ゲームコントローラは、ゲームポートフォーマットの出力を供給する。しかし、アダプタが接続されているときは、アダプタ上の信号線Ｂ１とＢ２が短絡される。２つの信号線が互いに短絡していると周辺装置中の制御構成要素が判定した場合、制御構成要素は、ＵＳＢ仕様に従う出力を供給する。この周辺装置は、ＩＮＴＸＡ信号またはＸＡ信号を検査することによって、アダプタが接続されているかどうかを検出することもできる。この構成では、アダプタは、ゲームポート構成に関するすべての信号を受け取り、アダプタが取り付けられているかどうかが判定されるように配置される。
Ｓｖａｎｃａｒｅｋ他の第２実施形態では、外部アダプタが周辺装置による通信出力のタイプを判定し、それを、コンピュータまたはＵＳＢポートに入力するためにＵＳＢフォーマットに変換する。したがって、周辺装置はＵＳＢフォーマットでデータを出力しないが、周辺装置からの出力は、外部アダプタによってＵＳＢフォーマットに変換される。
【０００９】
（発明の概要）
本発明は、接続されているインターフェースのタイプを周辺装置が判定し、それに応じて周辺装置自体を構成することができるような、周辺装置における方法および装置を定義する。
【００１０】
この周辺装置は、第１インターフェースおよび第２インターフェースの一方を有するコンピュータに接続することができる。第１インターフェースは、第１データ導線および第２データ導線を有する差動データ接続を介して周辺装置と通信する。第２インターフェースは、クロック導線と、データ導線を含むシングルエンデッドデータ接続とを介して周辺装置と通信する。この周辺装置は、差動データ接続中の第１データ導線および第２データ導線に接続し、シングルエンデッドデータ接続中の第１データ導線とクロック導線とに接続するように構成された、第１通信導線および第２通信導線を有する。この周辺装置は、第１インターフェースおよび第２インターフェースのどちらが周辺装置に接続しているかを検出するように構成されるインターフェース検出構成要素を含む。この周辺装置は、検出したインターフェースに対応するプロトコルに従って周辺装置とコンピュータとの間で通信するように構成されたコントローラ構成要素も含む。
【００１１】
（例示的実施形態の詳細な説明）
本発明は、周辺装置で実装される方法および装置を含み、それによって周辺装置は、ＰＳ２インターフェースに結合しているのか、それともＵＳＢインターフェースに結合しているのかを検出する。本発明の一態様による周辺装置は、インターフェースの状態を感知し、ソフトウェア制御を介してインターフェースのハードウェア構成を変更し、インターフェースの状態に対する構成変更の効果を観測する。インターフェースに対して変更が行われる性質により、どのタイプのインターフェースに接続されているかを周辺装置が判定することが可能となり、したがって周辺装置がそれ自体を適切に構成することが可能となる。
【００１２】
図１と、それに関連する議論は、本発明を実装することのできる適切なコンピューティング環境の、簡潔で一般的な説明を提供するためのものである。必須ではないが、本発明の少なくとも一部を、パーソナルコンピュータまたは他のコンピューティング装置によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的状況において説明する。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実装する、ルーチンプログラム、オブジェクト、構成要素、データ構造などを含む。さらに、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどの、他のコンピュータシステム構成を用いて本発明を実装できることを当業者は理解されよう。本発明は、通信ネットワークを介してリンクされるリモート処理装置によってタスクが実行される、分散コンピューティング環境にも適用可能である。分散コンピューティング環境では、プログラムモジュールをローカルメモリ記憶装置およびリモートメモリ記憶装置の両方に設置することができる。
【００１３】
図１を参照すると、本発明に関する例示的環境は、従来型パーソナルコンピュータ２０の形態の汎用コンピューティング装置を含み、パーソナルコンピュータ２０は、処理装置２１、システムメモリ２２、並びに、システムメモリを含む様々なシステム構成要素を処理装置２１に結合するシステムバス２３を含む。システムバス２３は、様々なバスアーキテクチャのうちのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むバス構造のいくつかのタイプのうちのいずれでもよい。システムメモリは、読取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。スタートアップ時などにパーソナルコンピュータ２０内の要素間で情報を転送する助けとなる基本ルーチンを含む基本入出力２６（ＢＩＯＳ）は、ＲＯＭ２４中に格納される。パーソナルコンピュータ２０は、ハードディスク（図示せず）を読み書きするためのハードディスクドライブ２７と、取外し可能磁気ディスク２９を読み書きするための磁気ディスクドライブ２８と、ＣＤ−ＲＯＭまたは他の光媒体などの取外し可能光ディスク３１を読み書きするための光ディスクドライブ３０とをさらに含む。ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、それぞれハードディスクドライブインターフェース３２、磁気ディスクドライブインターフェース３３、および光ドライブインターフェース３４によってシステムバス２３に接続される。ドライブおよび関連するコンピュータ可読媒体は、パーソナルコンピュータ２０に対して、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶を提供する。
【００１４】
本明細書で説明する例示的環境では、ハードディスク、取外し可能磁気ディスク２９、および取外し可能光ディスク３１を利用するが、コンピュータによってアクセス可能な、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）など、データを記憶することのできる他のタイプのコンピュータ可読媒体もこの例示的動作環境で使用できることを当業者は理解されたい。
【００１５】
オペレーティングシステム３５、１つまたは複数のアプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８を含むいくつかのプログラムモジュールを、ハードディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５上に格納することができる。ユーザは、キーボード４０およびポインティングデバイス（すなわちマウス）４２などの入力装置を介して、パーソナルコンピュータ２０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含めることができる。上記および他の入力装置は、しばしば、複数のポートのうちの１つを介して処理装置２１に接続される。例えば、キーボード４０およびマウス４２は、ＰＳ２またはＵＳＢインターフェース４６を介して接続される。この例示的実施形態では、インターフェース（すなわちポート）４５は、システムバス２３に結合される。ユーザ入力装置は、サウンドカード、パラレルポート、またはゲームポートなどの他のインターフェースによって接続することもできる。モニタ４７または他のタイプのディスプレイ装置も、ビデオアダプタ４８などのインターフェースを介してシステムバス２３に接続される。モニタ４７に加えて、パーソナルコンピュータは、一般にスピーカおよびプリンタ（図示せず）などの他の周辺出力装置を含む。
【００１６】
パーソナルコンピュータ２０は、リモートコンピュータ４９などの、１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ４９は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、または他のネットワークノードでよく、一般にパーソナルコンピュータ２０に関して前述した要素のうちの多くまたは全てを含むが、図１にはメモリ記憶装置５０だけを示してある。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）５１およびワイドエリアネットワーク（ＷＡＮ）５２を含む。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワークイントラネット、およびインターネットで一般的なものである。
【００１７】
ＬＡＮネットワーキング環境で使用する際、パーソナルコンピュータ２０は、ネットワークインターフェースまたはネットワークアダプタ５３を介してローカルエリアネットワーク５１に接続される。ＷＡＮネットワーキング環境で使用する際、パーソナルコンピュータ２０は、一般に、インターネットなどのワイドエリアネットワーク５２を介して通信を確立するためのモデム５４または他の手段を含む。モデム５４は内蔵でも外付けでもよく、シリアルポートインターフェース４６を介してシステムバス２３に接続される。ネットワーク環境では、パーソナルコンピュータ２０に関連して示したプログラムモジュールまたはその一部は、リモートメモリ記憶装置中に格納することができる。ここに示すネットワーク接続は例示的なものであって、コンピュータ間の通信リンクを確立する他の手段も使用できることを理解されたい。
【００１８】
図２Ａ〜図２Ｃに、従来のインターフェースに結合された従来の周辺装置を示す。図２Ａに、ＵＳＢインターフェース１０２を介してホストコンピュータ２０のＣＰＵ２１に接続された高速ＵＳＢ周辺装置１００を示す。高速ＵＳＢ周辺装置１００は、キーボード４０またはマウス４２、あるいは他の適切な周辺装置など、どんな適切な周辺装置でもよいことに留意されたい。周辺装置１００は、ＵＳＢインターフェース１０２に接続され、２つの導線１０４および１０６を介してそれらの間で通信する。導線１０４および１０６は、ＵＳＢコネクタ１１２を介して、対応する導線１０８および１１０に接続される。導線１０４および１０６は、高速ＵＳＢ装置中に、Ｄ＋およびＤ−と示す信号を搬送する。信号Ｄ＋およびＤ−は、周辺装置１００がコンピュータ２０と通信するのに用いる差動デジタルデータ信号である。
【００１９】
高速ＵＳＢ配置では、信号Ｄ＋を搬送する導線１０４が、プルアップ抵抗器１１４によって論理ハイレベル（ＶＣＣなど）に引き寄せられる。抵抗器１１４は、導線１０４が引き寄せられる電位が約３．３ボルトとなるような値とすることが好ましい。したがって抵抗器１１４は、例えば、５ボルトＶＣＣレールに接続された７．５ｋオーム抵抗器でよい。
【００２０】
コンピュータ２０上のＵＳＢインターフェース１０２では、導線１０８および１１０（これらはＤ＋およびＤ−信号に対応する）のどちらも、２つの１５ｋオーム抵抗器１１６および１１８によって論理ローレベルに引き寄せられる。周辺装置１００を、最初にＵＳＢインターフェース１０２を介してコンピュータ２０に取り付けるとき、信号Ｄ＋に対応する導線１０４が論理ハイレベルに引き寄せられ、一方信号Ｄ−に対応する導線１０６が論理ハイレベルに引き寄せられないので、コンピュータ２０は、周辺装置１００が高速ＵＳＢ周辺装置であると判定することができる。
【００２１】
図２Ｂに、低速ＵＳＢ周辺装置１２０のコンピュータ２０への接続を示す。一部の項目は図２Ａに示す項目と同様であり、それらは同様に番号付けしてある。しかし、導線１０４（信号Ｄ＋に対応する）が抵抗器１１４を用いて論理ハイレベルに引き寄せられるのではなく、導線１０６（信号Ｄ−に対応）が抵抗器１２２を用いて論理ハイレベルに引き寄せられる。したがって、コンピュータ２０は、周辺装置１２０が低速ＵＳＢ装置であると判定する。
【００２２】
図２Ｃに、コンピュータ２０に接続された別の周辺装置１２４を示す。周辺装置１２４は、ＰＳ２インターフェース１２６を介してコンピュータ２０と通信するように構成される。ＰＳ２周辺装置１２４は、データ信号およびクロック信号に対応する、１対の導線１０４および１０６を介してコンピュータ２０と通信する。導線１０４および１０６は、トランジスタ１３１および１３３に接続され、トランジスタ１３１および１３３は、周辺装置１２４中のマイクロプロセッサによって制御される、オープンコレクタまたはオープンドレインスイッチとして構成される。導線１０４および１０６は、ＰＳ２コネクタ１２８を介して導線１０８および１１０に接続される。導線１０４および１０６は、一般に２ｋ〜１０ｋオームの範囲の抵抗器１３０および１３２によって、周辺装置１２４で論理ハイレベルに引き寄せられる。
【００２３】
ＰＳ２インターフェース１２６では、導線１０８および１１０も、やはり一般に２ｋ〜１０ｋオームの範囲の抵抗器１３４および１３６によって論理ハイレベルに引き寄せられる。導線１０８および１１０は、トランジスタ１３８および１４０によってアースにも結合される。トランジスタ１３８および１４０は、一般にオープンドレインまたはオープンコレクタであり、プロセッサ２１中の適切な回路によって駆動される。トランジスタ１３８および１４０は、一般にプロセッサ２１内部に、または別々に実装できることにも留意されたい。
【００２４】
オープンコレクタで構成されたインターフェースでは、論理１が導線１０８または１１０のいずれかに書き込まれるとき、その導線はアクティブハイに駆動されない。その代わり、その導線は、プルアップ抵抗器１３４および１３６を介して、レール電圧ＶＣＣ近くまで、ハイに引き寄せられる。このようにして、ホストプロセッサ２１または周辺装置１２４は、導線が既にアクティブハイに駆動されているかどうかに関係なく、導線をローに駆動することができる。
【００２５】
周辺装置１２４は、導線１０４および１０８を介するデータフローの方向の如何にかかわらず、導線１０６および１１０を介してホストプロセッサ２１にクロック信号を供給することを担当する。ホストプロセッサ２１は、トランジスタ１４０を適切に制御することにより、クロック信号を搬送する導線１１０をローに引き寄せることができる。これにより、周辺装置１２４からの通信が禁止される。ホストプロセッサ２１は、データを送信しようとする周辺装置１２４に信号を送るために、トランジスタ１３８を操作することによってデータ導線１０８をローに引き寄せることもできる。
【００２６】
図３Ａに、本発明の一態様による周辺装置１４２に結合されたホストコンピュータ２０を示す。いくつかの項目は図２Ａ〜図２Ｃに示した項目と同様であり、それらは同様に番号付けしてある。再び、図３Ａでは、コンピュータ２０は、ＰＳ２インターフェース１２６ではなくＵＳＢインターフェース１０２を備える。
【００２７】
周辺装置１４２は、通信コントローラ１４４、スイッチコントローラ１４６、および信号レベル検出器１４８を含む。周辺装置１４２は、第１スイッチ１５０および第２スイッチ１５２にも結合される。スイッチ１５０および１５２は、レール電圧ＶＣＣと、プルアップ抵抗器１５４および１５６とに結合され、プルアップ抵抗器１５４および１５６は、導線１５８および１６０に結合される。導線１５８および１６０は、コンピュータ２０の導線１０８および１１０に接続するためのコネクタ１１２に供給される。
【００２８】
図３Ｂに、ホストコンピュータ２０に結合された周辺装置１４２を示す。図３Ｂでは、ホストコンピュータ２０は、ＵＳＢインターフェース１０２ではなく、ＰＳ２インターフェース１２６を備える。ホストコンピュータ２０が備える特定のインターフェース１０２または１２６の如何にかかわらず、周辺装置１４２は同じであることに留意されたい。
【００２９】
本発明の一態様によれば、プルアップ抵抗器１５４および１５６は、スイッチコントローラ１４６の制御の下でオンオフされる。スイッチコントローラ１４６は、周辺装置１４２のマイクロプロセッサ中に実装されることが好ましい。トランジスタ１５０および１５２を別々のスイッチングトランジスタとして示すが、周辺装置１４２のマイクロプロセッサ内に実装することもでき、それによって抵抗器１５６のスイッチ１５２に結合した側と同様に、抵抗器１５４のスイッチ１５０に結合した側を周辺装置１４２中のマイクロプロセッサの入力ピンに直接接続することができる。さらに、スイッチ１５０および１５２をバイポーラ接合トランジスタとして示すが、電界効果トランジスタ、リレーなど、他のスイッチ機構を使用することもできる。
【００３０】
ＰＳ２インターフェース１２６のデータ信号およびＵＳＢインターフェース１０２のＤ＋信号が導線１５８に結合され、ＰＳ２クロック信号およびＤ−信号が導線１６０に結合されることにも留意されたい。したがって、周辺装置１４２は、高速ＵＳＢ周辺装置またはＰＳ２装置として動作することができる。周辺装置１４２が低速ＵＳＢ周辺装置またはＰＳ２装置として動作するように構成されるとき、信号間の関係は逆となる（すなわち、Ｄ＋およびＤ−信号が、ＰＳ２クロック信号およびＰＳ２データ信号に関して逆となる）。さらに、これらの関係を逆にすることもできる。ＰＳ２と、２つのタイプのＵＳＢインターフェース用に使用される、異なる接続に対処するために、アダプタをコネクタ１１２中に設けることが好ましい。
【００３１】
図４は、周辺装置１４２の動作を示す流れ図である。コンピュータ２０に接続されると、周辺装置１４２はコンピュータ２０から電力を受ける。周辺装置１４２のパワーアップをブロック１８０に示す。次いで、周辺装置１４２中のスイッチコントローラ１４６は、スイッチ１５０および１５２の両方をオフにする。これにより、プルアップ抵抗器１５４および１５６が導線１５８および１６０を論理ハイ電位にすることができなくなり、効果的に抵抗器１５４および１５６がレール電圧ＶＣＣから切断される。プルアップをディスエーブルすることを、図４のブロック１８２に示す。
【００３２】
次いで信号レベル検出器１４８は、導線１５８上の信号レベル、または導線１６０上の信号レベルのどちらかが論理ハイレベルであるかどうかを検出する。信号レベル検出器１４８は、どんな適切な信号レベル検出器でもよい。このことをブロック１８４に示す。
【００３３】
導線１５８または導線１６０の一方または両方が論理ハイ信号を搬送している場合、周辺装置１４２は、ＵＳＢインターフェース１０２ではなく、ＰＳ２インターフェース１２６に接続されていると判断する。これは、プルアップ抵抗器１５４および１５６がディスエーブルされる場合、ＵＳＢインターフェース１０２中のプルダウン抵抗器１１６および１１８が導線１０８および１１０（したがって導線１５８および１６０）を論理ローレベルに引き寄せる傾向があるからである。したがって、導線の一方が論理ハイレベルにある場合、各導線は、ＰＳ２インターフェース１２６中の抵抗器１３４および１３６によってハイに引き寄せられている。
【００３４】
しかし、両方の導線がローである場合、周辺装置１４２は、接続されているインターフェースのタイプをまだ判定することができない。例えば、ＵＳＢインターフェース１０２では、プルダウン抵抗器１１６および１１８は、導線を論理ローレベルに引き寄せている可能性がある。しかし、ＰＳ２インターフェース１２６がスイッチ１３８および１４０を通電し、したがってデータ信号およびクロック信号の両方を搬送する導線を、論理ローレベルに駆動することも有効である。したがって、パワーアップし、プルアップ抵抗器１５４および１５６をディスエーブルするときに、導線１５８および１６０の両方の信号が論理ローレベルである場合、周辺装置１４２は、どのタイプのインターフェースが接続されているかを判定するために、追加のステップを必要とする。
【００３５】
次いでスイッチコントローラ１４６は、スイッチ１５０をオンにして、プルアップ抵抗器１５４をイネーブルする。この時点でイネーブルされるこの特定のプルアップ抵抗器は、ＰＳ２データ導線と、高速ＵＳＢ装置用のＵＳＢ  Ｄ＋導線とに接続され、あるいはＰＳ２データ導線と、低速ＵＳＢ装置用のＵＳＢ  Ｄ−導線とに接続されるプルアップ抵抗器であることに留意されたい。図４に示す流れ図は、ＰＳ２／高速ＵＳＢ周辺装置を示す。
【００３６】
いずれにしても、プルアップ抵抗器１５４が、スイッチ１５０をオンにするスイッチコントローラ１４６によってイネーブルされると、信号レベル検出器１４８は、再び導線１５８上の信号レベルを見る。その信号が論理ローレベルのままである場合、周辺装置１４２は、ＵＳＢポート１０２ではなく、ＰＳ２ポート１２６に接続されていると安全に判断することができる。これは、プルアップ抵抗器１５４がイネーブルされる場合、導線１５８上に論理ローレベル信号が存在するためには、ＰＳ２インターフェース１２６中のトランジスタ１３８によって、導線１５８を明確にローレベルに駆動しなければならないからである。そうではなく、周辺装置１４２がＵＳＢインターフェース１０２に接続されている場合は、イネーブルされたプルアップ抵抗器１５４は導線１５８を論理ハイレベルに引き寄せることになる。
【００３７】
プルアップ抵抗器１５４をイネーブルし、導線１５８上の信号レベルを検出することを、図４のブロック１８６および１８８に示す。
【００３８】
一方、プルアップ抵抗器１５４がイネーブルされた後、関連する導線が論理ローレベルにない場合、周辺装置１４２はＵＳＢインターフェース１０２に接続されている可能性が高い。ほとんどの場合、このように想定することができ、したがって周辺装置１４２はこの時点で検出アルゴリズムを任意選択で停止し、ＵＳＢソフトウェアを実行することができる。このことを図４の破線の矢印１９０で示す。
【００３９】
しかし、スイッチコントローラ１４６がプルアップ抵抗器１５４をイネーブルした同じ瞬間に、ホストプロセッサ２１が偶然にデータ信号を論理ハイレベルにすることを許可した場合に、周辺装置１４２がＰＳ２インターフェース１２６に接続されているわずかな可能性が存在する。したがって周辺装置１４２は、インターフェースのタイプが正しいということに関するその判定をさらに保証するために、追加のステップを取る。この場合、スイッチコントローラ１４６はプルアップ抵抗器１５４をディスエーブルし、次いで信号レベル検出器１４８は、導線１５８または１６０の信号レベルのどちらが論理ハイレベルにあるかを判定する。このことを、図４のブロック１９２および１９４で示す。
【００４０】
どちらかの導線が論理ハイレベルである場合、周辺装置１４２は、ＵＳＢインターフェース１０２ではなく、ＰＳ２インターフェース１２６に接続されていると安全に想定することができる。一方、どちらの導線も論理ハイレベルではない場合、周辺装置１４２は、ＰＳ２インターフェース１２６ではなく、ＵＳＢインターフェース１０２に接続されていると想定することができる。加えて、ＰＳ２クロック信号が論理ハイレベルであると想定されると判定される場合はいつでも、周辺装置１４２は、ＰＳ２装置に接続されていると安全に判断することができる。
【００４１】
スイッチコントローラ１４６がプルアップ抵抗器１５４をディスエーブルするのと同じ次の瞬間に、ホストプロセッサ２１がデータ信号を論理ローレベルに偶然にスイッチングする確率は非常に低い。クロック信号をローにしたまま、データ信号をロー−ハイ−ローとするこのような反転は、ＰＳ２プロトコルに違反するからである。
【００４２】
周辺装置１４２が、接続されているインターフェースのタイプを判定すると、周辺装置１４２は、そのタイプのインターフェースをサポートする、周辺装置１４２のソフトウェアコードの部分に分岐し、そのコードは、検出したインターフェースに対して、適切な抵抗器をオンにするように動作する。このことを図４のブロック１９６および１９８で示す。
【００４３】
ＰＳ２データ信号を搬送する導線の試験に関して図４を説明したが、本発明は、その代わりにＰＳ２クロック信号を搬送する導線を試験することによっても実施できることを留意されたい。このプロセスは同じである。
【００４４】
図５は、本発明の別の態様による、別の周辺装置２００のブロック図である。周辺装置２００は、ＵＳＢマイクロコントローラ２０２を含み、ＵＳＢマイクロコントローラ２０２は、ＵＳＢコントローラ構成要素２０４、接続タイプ判定構成要素２０５、およびＰＳ２コントローラ構成要素２０６を含む。周辺装置２００は、プルアップ抵抗器２０８、抵抗器２１０および２１２、およびスイッチ２１４も含む。マイクロコントローラ２００は、複数の入出力（Ｉ／Ｏ）ピン２１６、２１８、２２０、２２２、および２２４も含む。
【００４５】
マイクロコントローラ２０２は、ピン２２６および２２８上に供給されるＵＳＢ差動データ出力Ｄ＋およびＤ−も含む。このＤ＋およびＤ−ピン２２６および２２８は、高速ＵＳＢ装置に関するＵＳＢ  Ｄ＋およびＵＳＢ  Ｄ−信号、並びにＰＳ２装置に関するＰＳ２データおよびＰＳ２クロック信号をそれぞれ表す導線に結合される。
【００４６】
周辺装置２００が、ＰＳ２インターフェース１２６またはＵＳＢインターフェース１０２のいずれかを介してホストプロセッサ２１に取り付けられるとき、接続タイプ判定構成要素２０５は、周辺装置２００が接続されているインターフェースのタイプを判定する。マイクロコントローラ２０２がパワーアップされ、マイクロコントローラ２０２は、初めに、スイッチ２１４を開いたままにさせる信号を（Ｉ／Ｏ）ピン２２４上に供給する。構成要素２０５は、ピン２１８をまず検査して、ピン２１８上の信号のレベルを判定する。信号レベルが論理１（すなわち論理ハイレベル）にある場合、構成要素２０５は、周辺装置２００がＰＳ２インターフェース１２６に接続されていると判定する。これは、スイッチ２１４がオープンであり、ピン２１８が論理ハイレベルである場合、ＰＳ２インターフェース中のプルアップ抵抗器によって信号レベルをハイに引き寄せなければならないからである。
【００４７】
一方、ピン２１８上の信号レベルがまだ論理ゼロ（すなわち論理ローレベル）である場合、構成要素２０５は、ピン２１６上に論理ハイ出力を供給する。これにより、本質的にプルアップ抵抗器２１０がイネーブルされる。次いで構成要素２０５は再びピン２１８上の信号レベルを検査する。信号が論理ローレベルにある場合、信号は、インターフェースによってホストシステムにアクティブローに駆動される。したがって、インターフェースはＰＳ２インターフェースでなければならない。しかし、信号が論理ハイレベルにプルアップされている場合、インターフェースはＵＳＢインターフェースであると判定される。
【００４８】
周辺装置２００が接続されているインターフェースがＵＳＢインターフェースであると判定される場合、ＵＳＢコントローラ２０４がピン２２４上に信号を供給し、スイッチ２１４を閉じる。加えて、マイクロコントローラ２０２は、ハイインピーダンス状態のピン２１６、２１８、２２０、および２２２を提供する。次いでＵＳＢコントローラ構成要素２０４は、単に、差動データＤ＋およびＤ−を使用して、ＵＳＢプロトコルに従ってホストシステムとの通信を制御する。
【００４９】
一方、インターフェースがＰＳ２インターフェースであると判定される場合、スイッチ２１４は開いた位置に維持され、マイクロコントローラ２０２は、論理ハイレベルの信号をピン２１６および２２０に供給し、したがって、プルアップ抵抗器２１０および２１２（例示的には、これらのどちらも２．２ｋオームである）をイネーブルする。次いでＰＳ２コントローラ構成要素２０６は、ピン２１８および２２２をそれぞれＰＳ２データ線およびＰＳ２クロック線として使用して通信を制御する。
【００５０】
一部のＵＳＢ装置は、永続的にイネーブルされるシリアルインターフェースエンジンを有することに留意されたい。差動データ信号Ｄ＋およびＤ−の両方が論理０になる条件により、その部分は、それ自体をリセットする。プルアップ抵抗器２０８と共にスイッチ２１４を設けることにより、スイッチ２１４がオープンのとき、ＵＳＢコントローラ２０４へのＤ＋信号が常に論理ハイレベルに維持されることが、本発明により保証される。
【００５１】
さらに、他のＵＳＢコントローラ２０４では、ＰＳ２コントローラ２０６がＰＳ２インターフェースとの通信を制御しているときに、差動データ信号Ｄ＋およびＤ−を切断する必要のあることがある。この場合、追加のスイッチがＤ−導線中に配置され、接続タイプの判定中は開いた位置に維持され、かつインターフェースタイプがＰＳ２インターフェースであると判定された場合には通信中は開いた位置に維持される。一方、インターフェースタイプがＵＳＢインターフェースであると判定された場合、各スイッチはどちらも閉じられ、ＵＳＢコントローラ２０４は、ＵＳＢプロトコルに従って通信を制御する。
【００５２】
標準ＵＳＢ仕様に対する最近の改訂では、バスリセットを受け取った後と、構成の前に、その下流側ポートに対して論理ロー（ＳＥ０）を駆動するためのＵＳＢハブ装置を必要とする変更が行われた。パワースイッチングを実装するハブに対しては、この変更により問題は提起されない。ハブ装置を構成するまでは、電圧がハブ装置の下流側に供給されないからである。
【００５３】
しかし、セルフパワー式ハブ（具体的にはルートハブ）は、電力スイッチングを実装する必要がない。したがって、電力が存在し、装置が取り付けられていないＵＳＢポート上でＤ＋およびＤ−が０に駆動される可能性が存在する。これは、現在の検出アルゴリズムが起動されるとき（すなわち、パワーアップ時または取付け時）のポートの状態である可能性がある。したがって、これらの状況下で、装置がＰＳ２ポートに取り付けられているとアルゴリズムが想定しないことが望ましいことがある。
【００５４】
したがって、図４と幾分異なる方式の検出アルゴリズムの動作を示す流れ図を図６に示す。図４および６の一部は同様であり、同様に番号付けしてある。しかし、ＰＳ２データ／ＵＳＢ  Ｄ＋プルアップ抵抗器１５４がブロック１８６でイネーブルされた後、いずれかの線がハイであるかどうかが判定される。これをブロック２４０で示す。いずれかの線がハイである場合、図４に関して説明したのと同様に、処理はブロック１９２に進む。
【００５５】
しかし、どちらの線もハイでないとブロック２４０で判定された場合、システムは、導線のうちの一方がハイになるまで単に待機し、ブロック１９２または２４２に進む。あるいは、どちらの線もハイでないことを検出したとき、ブロック２４０で、ＰＳ２データ／ＵＳＢ  Ｄ＋プルアップ抵抗器１５４はディスエーブルされる。これをブロック２４２で示し、処理はブロック１８４に戻る。したがって、ＵＳＢポート上の強制ＳＥ０、または強制ローＰＳ２データ線は、不定状態として処理され、アルゴリズムは、特定の状態または条件が終了するまで単に待機する。この遅延は、約１０ｍｓを超えて持続せず、これにユーザが気付く可能性は低いと考えられる。
【００５６】
例示的実施形態では、インターフェース接続タイプの判定は、パワーアップ時にのみ行うことができ、あるいはウォッチドッグタイムアウトまたは静電放電事象から生じる可能性のあるソフトウェア例外などのソフトウェア例外時に反復することができ、あるいは通常動作の間に定期的な間隔で反復することができる。
【００５７】
図４と同様に、ＰＳ２データまたはＰＳ２クロック信号をＵＳＢ  Ｄ＋またはＵＳＢ  Ｄ−信号のいずれかと関連付けるように、図６で述べた信号を異なる方式で組み合わせることができる。このタイプのシステムは、本発明の１つの例示的実施形態内にあるものとする。
【００５８】
したがって、本発明は、周辺装置にＵＳＢインターフェースが接続されているのか、それともＰＳ２インターフェースが接続されているのかを周辺装置が判定することができる方法および装置を提供する。このような周辺装置の製造業者は、２つの別々の製品をサポートせずに、１つの製品だけをサポートすればよく、しかも両方のタイプのインターフェースを有するコンピュータへの接続に対処することになる。
【００５９】
本発明を好ましい実施形態を参照しながら説明したが、本発明の範囲から逸脱することなく、形態および細部に変更を行えることを当業者は理解されよう。
【図面の簡単な説明】
【図１】  本発明による入力装置を使用することのできる例示的環境のブロック図である。
【図２Ａ】  ＵＳＢインターフェースに結合された従来の高速ＵＳＢ周辺装置を示す図である。
【図２Ｂ】  ＵＳＢインターフェースに結合された従来の低速ＵＳＢ周辺装置を示す図である。
【図２Ｃ】  ＰＳ２インターフェースに結合されたＰＳ２周辺装置を示す図である。
【図３Ａ】  ＵＳＢインターフェースに結合された本発明による周辺装置を示す図である。
【図３Ｂ】  ＰＳ２インターフェースに結合された本発明による周辺装置を示す図である。
【図４】  本発明の一態様による周辺装置の動作を示す流れ図である。
【図５】  本発明の一態様による別の実施形態を示すブロック図である。
【図６】  本発明の別の実施形態による周辺装置の動作を示す流れ図である。
【図１】
0004126178.tif 000002
【図２Ａ】
0004126178.tif 000003
【図２Ｂ】
0004126178.tif 000004
【図２Ｃ】
0004126178.tif 000005
【図３Ａ】
0004126178.tif 000006
【図３Ｂ】
0004126178.tif 000007
【図４】
0004126178.tif 000008
【図５】
0004126178.tif 000009
【図６】
0004126178.tif 000010