それぞれ第1のインターフェース機能と第2のインターフェース機能を備える第1のデバイスと第2のデバイスをコネクタで接続したときにコンピュータのシステムが前記第1のインターフェース機能の構成を確立する方法であって、前記第1のデバイスと前記第2のデバイスを前記第1のインターフェース機能による通信に使用する第1のピンと前記第2のインターフェース機能による通信に使用する第2のピンを収納するコネクタで接続操作を開始するステップと、前記コネクタにおける前記第2のピンの接続を検出するステップと、前記第2のピンの接続に応答して前記第2のインターフェース機能の構成を確立するステップと、前記コネクタにおける前記第1のピンの接続を検出するステップと、前記1のピンの接続に応答して前記第1のデバイスをリセットして前記第1のインターフェース機能の構成を確立するステップとを有する方法。前記第1のインターフェース機能が前記第2のインターフェース機能よりも高速のデータ転送を実現する請求項1に記載の方法。前記コネクタは、前記第2のピンが前記第1のピンより先に接続されるように形成されている請求項1または請求項2に記載の方法。前記コネクタがプラグとレセプタクルで構成され、前記プラグが前記第1のデバイスに接続され前記レセプタクルが前記第2のデバイスに取り付けられている請求項1から請求項3のいずれかに記載の方法。前記コネクタがプラグとレセプタクルで構成され、前記プラグが前記第2のデバイスに接続され前記レセプタクルが前記第1のデバイスに取り付けられている請求項1から請求項3のいずれかに記載の方法。前記第1のインターフェース機能がUSB3.0規格に適合する第1のインターフェースで前記第2のインターフェース機能がUSB2.0規格に適合する第2のインターフェースである請求項1から請求項5のいずれかに記載の方法。前記第1のピンの接続をGND_DRAINラインの接続で検出する請求項6に記載の方法。前記第1のデバイスのリセットをVbusラインをオフにしてからオンにすることで行う請求項6または請求項7に記載の方法。前記第1のインターフェースの構成の確立を、前記第2のインターフェースの構成を確立してからデータ転送を開始するまでの一定時間が経過する前に限って実行する請求項6から請求項8のいずれかに記載の方法。第1のインターフェース機能と第2のインターフェース機能をサポートするインターフェースコントローラを備え、周辺機器をコネクタにより接続することが可能で、前記コネクタが接続されたときに前記第1のインターフェース機能または前記第2のインターフェース機能のいずれか一方の構成を確立するコンピュータであって、前記第1のインターフェース機能による通信に使用する第1のピンと前記第2のインターフェース機能による通信に使用する第2のピンを収納し前記インターフェースコントローラに接続されたレセプタクルと、前記第1のピンと前記周辺機器に接続されたプラグに収納され前記第1のインターフェース機能による通信に使用する第3のピンが接続されたことを検出し、さらに前記第2のピンと前記プラグに収納され前記第2のインターフェース機能による通信に使用する第4のピンが接続されたことを検出する検出回路と、前記第1のピンと前記第3のピンが接続されたことに応答して前記周辺機器の前記コンピュータに対する接続動作をリセットするリセット回路とを有するコンピュータ。前記コンピュータは前記第1のインターフェース機能または前記第2のインターフェース機能のいずれか一方の構成を先に確立したときに前記周辺機器がリセット動作をするまで先に確立した構成を維持する請求項10に記載のコンピュータ。前記周辺機器は、リセットされたときに前記第1のインターフェース機能の存在を表明し、所定の時間前記第1のインターフェース機能が確立されないときに前記第2のインターフェース機能の存在を表明する請求項10または請求項11に記載のコンピュータ。前記第1のインターフェース機能が上位バージョンのUSB規格に適合し前記第2のインターフェース機能が下位バージョンのUSB規格に適合する請求項10から請求項12のいずれかに記載のコンピュータ。前記第1のピンのGND_DRAINラインをプルアップするプルアップ回路を有し、前記検出回路は前記GND_DRAINラインの電位の変化で前記第1のピンと前記第3のピンが接続されたことを検出する請求項13に記載のコンピュータ。ポートごとに前記Vbusラインの電力を制御するパワースイッチを有し、前記リセット回路は、前記パワースイッチをオフにしてからオンにすることで前記周辺機器をリセットする請求項13または請求項14に記載のコンピュータ。前記上位バージョンのUSB規格に適合する電流制限器と前記下位バージョンのUSB規格に適合する電流制限器を前記Vbusラインに有し、前記コンピュータは構成を確立したUSB規格に適合する電流制限器だけをイネーブルに設定する請求項15に記載のコンピュータ。前記リセット回路は、前記下位バージョンのUSB規格の構成が完了してから所定時間が経過しないときに限り前記周辺機器をリセットする請求項13から請求項16のいずれかに記載のコンピュータ。上位バージョンのUSB規格に適合する第1のインターフェースと下位バージョンのUSB規格に適合する第2のインターフェースを含みコンピュータと周辺機器を接続するハブであって、前記第1のインターフェースによる通信に使用する第1のピンと前記第2のインターフェースによる通信に使用する第2のピンを収納するレセプタクルと、前記第1のピンと前記周辺機器に接続されたプラグに収納され前記第1のインターフェースによる通信に使用する第3のピンが接続されたことを検出し、さらに前記第2のピンと前記プラグに収納され前記第3のインターフェースによる通信に使用する第4のピンが接続されたことを検出する検出回路と、前記第1のピンと前記第3のピンが接続されたことに応答して前記周辺機器の前記コンピュータに対する接続動作をリセットするリセット回路とを有するハブ。3.0ホストに3.0デバイスを接続する場合は、ユーザはシステムがUSB3.0規格に従って高速で動作することを期待している。図8は、USB3.0規格のA端子に使用する3.0コネクタを模式的に示す図である。3.0コネクタは、3.0プラグ301と3.0レセプタクル321で構成される。図8Aは、3.0プラグ301を開口方向からみた図で、図8Bは3.0プラグ301のピン配置を示す平面図で、図8Cは3.0レセプタクル321のピン配置を示す平面図である。3.0プラグ301はUSB2.0規格の通信に使用する2個のピン以下、2.0ピンという。303と2個の電源ピン307が一層に配置され、USB3.0規格の通信に使用する5個のピンSSピンまたは3.0ピン305が他の層に配置された2層twotierコンタクトシステムを採用している。2個の2.0ピン303と2個の電源ピン307は3.0プラグ301の開口部側に配置され、5個の3.0ピン305が奥側に配置されている。3.0レセプタクル321の開口部側には5個の3.0ピン325が配置され、奥側には2個の2.0ピン323と2個の電源ピン327が配置されている。3.0プラグ301を3.0レセプタクル321に途中まで挿入していくと、電源ピン307に続いて2.0ピン303、323が接続され、さらに最後まで挿入すると2.0ピン303、323の接続を維持したまま3.0ピン305、325が接続される。3.0コネクタは、2.0コネクタに3.0ピンを追加した構造を採用しており、完全に挿入するためには2.0コネクタよりも余分な力を必要とする。そして、3.0プラグ301の挿入を開始してから接続を完了するまで多くの時間を費やすことがある。それはユーザがプラグを最初から最後までゆっくりと挿入した場合や、2.0ピン303、323は円滑に接続できたが3.0ピン305、325の接続に手間取ったような場合に発生する。このとき、2.0ピン303、323だけが接続され、3.0ピン305、325が接続されていない状態が所定の時間以上継続する。この場合、システムはUSBデバイスを2.0デバイスとして認識する。その後、3.0プラグ301が完全に挿入されて3.0ピン305、325が接続されてもシステムは自動的に3.0デバイスとして認識するように再構成する処理はしない。システムは単に現在のUSBデバイスはUSB3.0規格で動作する能力があることを示すプロンプトを画面に表示してユーザに通知するだけである。これは、システムが、USBデバイスのディスクリプタを取得して3.0デバイスを3.0デバイスとして認識するまでには所定の時間がかかるため、その間にUSB2.0規格での通信が開始されて、再構成するとその通信を停止する必要があるためであると考えられる。また、3.0デバイスが2.0デバイスとして認識されるのは、コネクタの接続方法に起因して2.0ピンだけが接続された状態が所定時間以上経過した場合だけでなく、コネクタを接続する際の電気的なノイズに起因する場合もある。現在は一旦2.0デバイスとして構成されたUSBデバイスを3.0デバイスとして再構成するには、ユーザがシステムから通知を受けたときまたはみずから動作速度が期待よりも遅いと感じたときに、3.0プラグを抜き差しするしかなくユーザにとっては負担である。したがって、3.0デバイスが一旦2.0デバイスとして認識されても最終的に3.0ピンが接続されたときには自動的に3.0デバイスとして認識されるようにできればUSBデバイスの操作性が向上する。そこで本発明の目的は、2つのインターフェースを備えるデバイスがコネクタでコンピュータに接続されたときにコネクタの抜き差しをしないで所定の一方のインターフェースの構成を確立する方法を提供することにある。さらに本発明の目的は、2つのインターフェースを備えるデバイスがコネクタでコンピュータに接続されたときに先に他方のインターフェースの構成が確立してもコネクタの接続が完了したときには所定の一方のインターフェースの構成をユーザの操作を介在しないで確立する方法を提供することにある。さらに本発明の目的は2つのインターフェースを備えるバスシステムの安全を確保する方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータを提供することにある。第1のデバイスと第2のデバイスはそれぞれ第1のインターフェース機能と第2のインターフェース機能を備える。コネクタは第1のインターフェース機能による通信に使用する第1のピンと第2のインターフェース機能による通信に使用する第2のピンを収納する。第1のデバイスと第2のデバイスに対してコネクタによる接続操作を開始したときに、挿入の速度が遅いために第2のピンが接続され第1のピンが接続されていない状態が所定時間以上経過するとシステムは第2のインターフェース機能の構成を確立する。その後、コネクタの接続が進行するとコネクタにおける第1のピンの接続が検出される。そして、第1のピンの接続に応答して第1のデバイスをリセットして第1のインターフェース機能の構成を確立する。第1のピンの接続が検出されるときには、第2のインターフェース機能の構成が確立している場合と、第2のインターフェース機能と第1のインターフェース機能のいずれの構成も確立していない場合の2つの状態が想定される。さらに本発明は、第1のインターフェース機能の構成が先に確立することがある場合にも適用することができる。本発明ではいずれの場合でも第1のピンの接続をトリガにして第1のデバイスをリセットするため、コネクタがどのように接続されても第1のピンが接続されたときは必ず第1のインターフェース機能の構成が確立する。第1のインターフェース機能が第2のインターフェース機能よりも高速のデータ転送を実現するような場合には、本発明によりコネクタの完全な接続が完了したときには高速のデータ転送をすることができる。コネクタが、第2のピンが第1のピンより先に接続されるように形成されている場合は、システムが先に第2のインターフェース機能の構成を確立する頻度が高まるため本発明は特に有効である。コネクタがプラグとレセプタクルで構成されるときに、第1のデバイスにケーブルで接続されたり直接取り付けられたりしたプラグを第2のデバイスに取り付けられたレセプタクルに接続することができる。この場合のコネクタの場所はUSB規格のA端子に相当し接続は第2のデバイスで行われる。あるいは、第2のデバイスにケーブルで接続されたプラグを第1のデバイスに取り付けられたレセプタクルに接続することができる。この場合のコネクタはUSB規格のB端子に相当し接続は第1のデバイスで行われる。第1のインターフェース機能をUSB3.0規格に適合する第1のインターフェースとし、前記第2のインターフェース機能をUSB2.0規格に適合する第2のインターフェースとすることができる。この場合第1のピンの接続をGND_DRAINラインの接続で検出することができる。GND_DRAINラインは信号を伝送しないため、第1のピンの接続を検出するのに適している。第1のデバイスのリセットはVbusラインをオンオフすることで行うことができる。第1のインターフェースの構成の確立を、第2のインターフェースの構成を確立してからデータ転送を開始するまでの一定時間が経過する前に限って実行することができる。その結果先にシステムが第2のインターフェースを認識してデータ転送を開始している場合には、リセットをしないため第2のインターフェースの突然の切断によるデータの消失を防ぐことができる。第1のデバイスを周辺機器とし第2のデバイスをホストコントローラとルートハブを含むバスコントローラまたはコンピュータとすることができる。また、第1のデバイスを周辺機器とし第2のデバイスをルートハブまたはハブとすることができる。本発明により、2つのインターフェースを備えるデバイスがコネクタでコンピュータに接続されたときにコネクタの抜き差しをしないで所定の一方のインターフェースの構成を確立する方法を提供することができた。さらに本発明により、2つのインターフェースを備えるデバイスがコネクタでコンピュータに接続されたときに先に他方のインターフェースの構成が確立してもコネクタの接続が完了したときには所定の一方のインターフェースの構成をユーザの操作を介在しないで確立する方法を提供することができた。さらに本発明により2つのインターフェースを備えるバスシステムの安全を確保する方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータを提供することができた。図1は、本発明の適用が可能なコンピュータ10の概略の構成を示す機能ブロック図である。CPU11はメモリコントローラとPCIExpressコントローラを内蔵しており、メインメモリ13、ビデオカード15およびチップセット19に接続されている。ビデオカード15にはLCD17が接続されている。チップセット19は、SATA、USB、PCIExpress、LPCなどのコントローラおよびRTCRealTimeClockなどを内蔵している。SATAコントローラにはHDD21が接続されている。図2に示すUSBコントローラ33はUSB3.0規格をサポートしており、代表的に2個のレセプタクル155a、157aが接続されている。レセプタクル155aとレセプタクル157aはともに3.0ピン、2.0ピンおよび電源ピンを収納する同一の構造になっている。チップセット19には、さらにLPCバスを通じてエンベデッドコントローラEC25が接続されている。EC25は、コンピュータ10の筐体内部の温度を制御したり、デバイスの電力を制御したり、さらに入出力デバイスの制御をしたりするマイクロコントローラである。EC25は、CPU11とは独立して動作する。EC25にはDC/DCコンバータ27が接続され、さらに、図示しないキーボード、マウス、充電器、電池パック、および排気ファンなどが接続される。EC25は、チップセット19およびCPU11と通信することができる。[USBシステム]図2は、コンピュータ10を中心にして構成された1つのUSBシステム100のトポロジーを示す図である。USBシステム100は、チップセット19に形成されたUSBコントローラ33を頂点にしてダウンストリーム側に階層的に設けたハブ35で接続を分岐する階層式スター型トポロジーを採用する。USB3.0規格をサポートするUSBコントローラ33およびUSBデバイスは、物理的に独立した2.0物理層と3.0物理層を備えている。システムは周辺機器37、39を個別にエニュメレーションしていずれか一方の規格に適合するデバイスとして認識する。したがって、周辺機器37、39は、3.0デバイスまたは2.0デバイスのいずれかで認識される。通常周辺機器37、39は3.0デバイスとして動作することを予定しており、プラグの正常な接続が行われたときは3.0デバイスとして認識されように構成されている。ただし、システムが周辺機器37、39を3.0デバイスとして認識できない場合は2.0デバイスとして認識する。USBコントローラ33は、ホストコントローラの機能とルートハブの機能を備えている。USBコントローラ33は、USB2.0規格の通信を行う2.0物理層45とUSB3.0規格の通信を行う3.0物理層43からなる二重バス構造を採用して2つの規格をサポートする。インターフェース41は、コンピュータ10のシステムとUSBシステムで使用するプロトコルを変換して双方向におけるデータフローおよび制御フローを処理する。3.0物理層43は、USB3.0規格に基づいて電気的な信号を処理したり3.0デバイスの接続を検出したりする。2.0物理層45は、USB2.0規格に基づいて電気的な信号を処理したり2.0デバイスの接続を検出したりする。Vbusコントローラ47はDC/DCコンバータ27から供給された電力を、Vbusにつながれたパワースイッチ101をコントロールすることによってUSBデバイスに供給する。レセプタクル155a、157aは、いずれも3.0物理層43、2.0物理層45およびVbusに接続されている。システムはレセプタクル155a、157aに直接またはハブ35を経由して周辺機器が接続されると、それぞれについていずれか一方の規格に適合するUSBとして認識する。たとえばシステムは、レセプタクル155aに接続された周辺機器を3.0デバイスとして認識し、同時にレセプタクル157aに接続されている周辺機器を2.0デバイスとして認識することがある。周辺機器37、39はコンピュータ10に接続が可能な記憶装置、プリンタ、カメラ、または他のコンピュータなどとすることができる。周辺機器37、39およびハブ35はいずれもUSBコントローラ33と同様に二重バス構造を採用し、USBケーブル158、160、164でダウンストリームまたはアップストリームのUSBデバイスまたはUSBコントローラ33に接続される。また、USBケーブル158、160、164は、USB2.0規格の通信をするための一対のUTPUnshieldedTwistPairケーブル、電源ケーブル、グランドケーブル、およびUSB3.0規格の通信をするための2対のSDPShieldedDifferentialPairケーブルとGND_DRAINケーブルを含んでいる。USBシステム100には、表1に示すように2.0プラグが取り付けられたUSBケーブルを使用して、USB2.0だけをサポートするUSBデバイスも接続することができる。USBケーブル158、160、164はそれぞれA端子側にプラグ157b、155b、163bを備え、B端子側にプラグ159a、161a、165aを備えている。レセプタクル157aにはUSBケーブル158で周辺機器37のレセプタクル159bが接続され、レセプタクル155aにはUSBケーブル160でハブ35のアップストリームのポートに配置されたレセプタクル161bが接続されている。ハブ35のダウンストリームのポートに配置されたレセプタクル163aにはUSBケーブル164で周辺機器39のレセプタクル165bが接続されている。周辺機器37およびハブ35は、Vbusラインを通じてUSBケーブルから電力は受け取るが動作の主たる電源をAC/DCアダプタのような別電源から受け取るセルフパワードデバイスまたはVbusラインから受け取った電力だけで動作するバスパワードデバイスのいずれであってもよい。コンピュータ10は、USBシステム100を複数搭載することもできる。図3は、USBコントローラ33の内部構造を示す機能ブロック図である。3.0物理層43は、1対の送信用差動信号ペアのSS_TXラインと1対の受信用差動信号ペアのSS_RXラインで4個の3.0ピン51にそれぞれ接続される。GND_DRAINラインは、抵抗を介してDC5Vでプルアップされかつコンデンサ103でグランドに接続されている。さらにGND_DRAINラインにはその電位を監視するためにEC25が接続される。周辺機器37が接続されたUSBケーブル158のプラグ157bの3.0ピンがUSBコントローラ33の3.0ピン51に接続されたときにGND_DRAINラインの電位は低下する。2.0物理層45は、1対の送受信用差動信号ペアがDラインとD-ラインで2.0ピン49にそれぞれ接続されている。DラインとD-ラインはそれぞれ抵抗を介して常時プルダウンされている。Vbusコントローラ47はEC25に接続されている。EC25は、Vbusコントローラ47の指示によりパワースイッチ101を制御する。パワースイッチ101は、Vbusピンに接続されておりUSBデバイスに対する電力供給を制御する。VbusラインとGNDラインは、ポートがUSB3.0規格またはUSB2.0規格のいずれに構成されても当該USBデバイスに電力を供給する。EC25は、GND_DRAINラインの電位が低下したときにそのエッジを検出して、パワースイッチ101を所定の時間だけオフにした後に再びオンにすることで、USBデバイスにリセット動作をさせる。図3および図7には、レセプタクル157aが含む2個の2.0ピン49と2個の電源ピンと5個の3.0ピン51だけを示しているが、レセプタクル155aの9個のピンも、3.0物理層43、2.0物理層45およびVbusコントローラ47に図3と同様のトポロジーで接続される。また、レセプタクル155aのパワースイッチはレセプタクル157aのパワースイッチ101とは別に専用に設けることが望ましい。すなわち、ポートが複数存在する場合はパワースイッチ101をポートごとのVbusラインに挿入して、ポートごとにUSBデバイスをリセットできるようにすることが望ましい。図4は、周辺機器37の周知のインターフェースを示す機能ブロック図である。レセプタクル159bに含まれる2.0ピン53に2.0物理層57が接続され3.0ピン55に3.0物理層59が接続される。DラインまたD-ラインのいずれか一方は転送速度を決めるために抵抗を介して電源電圧Vccにプルアップされている。周辺機器37はUSBコントローラ33に対してDラインをプルアップして自らがフルスピードファンクションに対応することを表明し、D-ラインをプルアップしてロースピードファンクションに対応することを表明ことができる。また、周辺機器37がDラインとD-ラインのいずれもプルアップしないときは、ホストコントローラ33に対して切断されることまたは自らの存在を隠蔽することを表明する。周辺機器37はVbusラインから電力を受け取ってから12ミリ秒以上USBコントローラ33に含まれる3.0物理層43のSS_RXラインに接続されたターミネーションを検出できないときは、USB規格2.0で接続するようにDラインまたはD-ラインのいずれかをプルアップする。ターミネーションは、信号の反射やエコーを抑制するために信号ラインの終端に接続される受動素子である。図1~図4は本実施の形態を説明するために必要な主要なハードウェアの構成および接続関係を簡略化して記載したに過ぎないものである。ここまでの説明で言及した以外にも、USBシステムを構成するには多くのデバイスまたはコンポーネントが使われる。しかしそれらは当業者には周知であるので、ここでは詳しく言及しない。図で記載した複数のブロックを1個の集積回路もしくは装置としたり、逆に1個のブロックを複数の集積回路もしくは装置に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。[ステートマシーン]図5は、USB3.0デバイスのステートマシーン図である。Attachedは、USBデバイスのアップストリーム側のUSBインターフェースが接続されているが、そこから電力は供給されていない状態である。Poweredは、さらにVbusから電力が供給されているが、アップストリーム側のリンクトレーニングが終了していない状態である。Defaultは、さらにデバイスがリセットされたがホストからユニークなアドレスが割り当てられていないため、ディフォルトのアドレスで応答できる状態である。Addressは、さらに、ユニークなアドレスが割り当てられたが構成されていない状態である。Configuredは、さらに構成が完了している状態でコンピュータが3.0インターフェースを使用できる状態である。USB20DeviceStatusは、USB3.0の接続をやめてUSB2.0インターフェースのエニュメレーションと接続を開始した状態である。PoweredからUSB20DeviceStatusへの遷移は、ターミネーションが検出されないとき、またはリンクトレーニングが失敗したときに発生する。また、DefaultからUSB20DeviceStatusへの遷移は、デバイスのポートの構成が失敗したときに発生する。しかし一旦USB20DeviceStatusに遷移すると、システムは積極的に3.0インターフェースを構成することを規定していないため、USB3.0規格をサポートするUSBデバイスであっても先に2.0インターフェースが構成されたときには、その後3.0インターフェースが接続されてもなんらかの方法で再構成しない限りそれで動作することになる。[エニュメレーション]図6は、USBコントローラ33に周辺機器37を接続するときのエニュメレーションのシーケンスを示すフローチャートである。エニュメレーションはコンピュータ10のシステムとUSBコントローラ33が協働してUSBデバイスと情報の交換をしながら、USBデバイスの検出、特定および構成をする動作をいう。なお、図6の説明においてコンピュータ10のシステムは、CPU11、メインメモリ13などのハードウェアとOSおよびデバイスドライバなどのソフトウェアで構成される。あらかじめコンピュータ10には電源が投入されており、USBコントローラ33は、レセプタクル157a、155aにUSBデバイスが接続されたときにはエニュメレーションを実行できる状態になっている。また、周辺機器37は、プラグ159aとレセプタクル159bでUSBケーブル158に接続されているものとする。エニュメレーションは、2.0インターフェースと3.0インターフェースのそれぞれについて独立して行われ、コンピュータ10と周辺機器37はエニュメレーションが確立したいずれか一方のインターフェースを認識して通信する。レセプタクル157aに新たに周辺機器37が接続されたときに、プラグ157bをレセプタクル157aに対して完全に挿入するまでの時間および電気的なノイズの発生の有無により、システムは周辺機器37の2.0インターフェースまたは3.0インターフェースのいずれか一方を認識する。ただし、一旦2.0インターフェースの構成が確立しても本発明では以下のように極短時間で自動的に3.0インターフェースの構成を確立する。最初にプラグ157bを標準的な速度で挿入して確実に接続したときに、システムが周辺機器37を3.0デバイスとして認識するときの動作手順を説明する。ブロック201で3.0デバイスである周辺機器37は、ディフォルトでは3.0デバイスとして認識されるように構成されているため、接続時には自らが2.0インターフェースを備えることを隠蔽する。周辺機器37は停止していたVbusラインの電力が供給されるときにこの時点ではDライン、D-ラインのいずれもプルアップしない。ブロック203ではユーザがプラグ157bのレセプタクル157aに対する挿入を開始する。VbusピンとGNDピンはDピンおよびD-ピンよりも長くなっている。ブロック205でVbusピンとGNDピンが9個のピンの中で最初に接続される。EC25は、パワースイッチ101をオンにしておりブロック207でVbusコントローラ47はEC25を通じて周辺機器37のVbusラインに電力を供給する。さらに挿入が進行すると、いずれの3.0ピン51よりも先にDピンとD-ピンが接続される。しかし、周辺機器37のDラインとD-ラインはいずれもプルアップされていないので、2.0物理層45は2.0デバイスが接続されたことを検出しない。さらに挿入が進行すると、3.0ピン51が接続される。EC25はブロック209で、GND_DRAINピンが接続されてGND_DRAINラインの電位が低下したときの信号エッジを検出するとブロック212に移行する。ブロック212では、EC25がシステムから2.0デバイスとしての構成が完了したことの通知を受け取っているか否かを判断する。ここまでの手順では、周辺機器37は2.0インターフェースを備えることを隠蔽しており、EC25は2.0デバイスとしての構成が完了したことの通知を受け取っていないので、ブロック219に移行する。ブロック219では、システム、USBコントローラ33、および周辺機器37が3.0インターフェースのエニュメレーションを開始する。3.0物理層43は、3.0ピンのSS_TXラインまたはSS_RXラインが接続されたことを検出するとシステムに周辺機器37が接続されたポートを特定してイベントを通知する。このとき、USBコントローラ33は、周辺機器37が3.0デバイスであることを示す情報もシステムに送る。イベントが発生したことを認識したシステムは、USBコントローラ33にリクエストを送信して接続された周辺機器の情報を取得する。新たに接続された周辺機器37を認識したシステムは、周辺機器37が接続されたポートをリセットするためにUSBコントローラにリクエストを送る。リクエストを受け取ったUSBコントローラ33は、3.0ピンのラインを短時間だけ論理的にローにして周辺機器37をリセット状態にする。USBコントローラ33がリセット状態を解除すると周辺機器37はディフォルト状態に遷移する。このとき周辺機器37のレジスタおよびステータスはすべてリセットされた状態になり、周辺機器37はディフォルトのアドレスでエンドポイント0を使用してコントロール転送に応答できるようになって、システムと周辺機器37の間の信号路が確立する。システムはUSBコントローラ33にリクエストを送って、周辺機器37がリセット状態から復帰したか否かを検証する。リセット状態から復帰したことを確認するとシステムは、USBコントローラ33にリクエストを送って、周辺機器37にユニークな新しいアドレスを割り当てさせる。このとき、周辺機器37がリセットされたことをシステムが確実に認識するために、システムがUSBコントローラ33に周辺機器37をリセットするように要求することができる。その結果、周辺機器37はアドレス状態に遷移する。システムは、周辺機器37の新しいアドレスにリクエストを送ってディスクリプタを取得し、取得したディスクリプタに適合する最適なデバイスドライバをHDD21の中から探す。システムは、みつけたデバイスドライバをHDD21からメインメモリ13にロードする。デバイスドライバはディスクリプタに基づいてコンフィグレーション情報を選択して周辺機器37に設定する。システムによってコンフィグレーション情報が設定された周辺機器37のインターフェースは、ブロック221でUSB3.0規格の構成が確立しアプリケーションとの間でのデータ転送が可能になる。つぎに、プラグ157bがゆっくりと挿入されたときにシステムが周辺機器37を3.0デバイスとして認識するときの動作手順を説明する。ブロック203でプラグ157bの接続が開始され、ブロック205を経由してブロック207で周辺機器37のVbusラインに電力が供給されても、3.0ピン51が接続されないときは、ブロック209でEC25がGND_DRAINラインの電位の低下によりGND_DRAINピンの接続を検出することはなく、さらに周辺機器37はターミネーションを検出しないためブロック251に移行する。ブロック251で周辺機器37は、自らのVbusラインに電力が供給されてから12ミリ秒以上経過してもターミネーションを検出しないときは、2.0デバイスとしての接続を要求するために、ブロック253でDピンまたはD-ピンのいずれかをプルアップする。ブロック255で2.0物理層45は、DラインまたはD-ラインの電圧が上昇したことを検知すると2.0インターフェースのエニュメレーションを開始するためにシステムに周辺機器37が接続されたポートを特定してイベントを通知する。このとき、USBコントローラ33は、Dライン、D-ラインの電圧を判定して接続された周辺機器37の転送速度がロースピードまたはフルスピードのいずれであるかの情報もシステムに送る。イベントが発生したことを認識したシステムは、USBコントローラ33にリクエストを送信して接続された周辺機器37の情報を取得する。新たに接続された周辺機器37を認識したシステムは、周辺機器37が接続されたポートをリセットするためにUSBコントローラ33にリクエストを送る。リクエストを受け取ったUSBコントローラ33は、周辺機器37のDラインおよびDーラインを最低10ミリ秒の間論理的にローにしてリセット状態にする。リセット中は、USBコントローラ33と周辺機器37の間でチャープChirpを交換して周辺機器37がハイスピードに対応することが確認できた場合は、以後、ハイスピードで通信をする。USBコントローラ33がリセット状態を解除すると周辺機器37はディフォルト状態に遷移する。このとき周辺機器37のレジスタおよびステータスはすべてリセット状態にあり、周辺機器37はディフォルトのアドレスでエンドポイント0を使用してコントロール転送に応答できるようになって、システムと周辺機器37の間の信号路が確立する。システムはUSBコントローラ33にリクエストを送って、周辺機器37がリセット状態から復帰したか否かを検証する。リセット状態から復帰したことを確認するとシステムは、USBコントローラ33にリクエストを送って、周辺機器37にユニークな新しいアドレスを割り当てさせる。このとき、周辺機器がリセットされたことをシステムが確実に認識するために、システムがUSBコントローラ33に周辺機器37をリセットするように要求することができる。その結果、周辺機器37はアドレス状態に遷移する。システムは、周辺機器37の新しいアドレスにリクエストを送ってディスクリプタを取得し、取得したディスクリプタに適合する最適なデバイスドライバをHDD21の中から探す。システムは、みつけたデバイスドライバをHDD21からメインメモリ13にロードする。デバイスドライバはディスクリプタに基づいてコンフィグレーション情報を選択して周辺機器37に設定する。コンフィグレーション情報が設定された周辺機器37のインターフェースは、ブロック257でUSB2.0の構成を確立しアプリケーションとの間でデータ転送が可能になる。これまでのUSBシステムでは、ブロック257でシステムが周辺機器37を一旦2.0デバイスとして認識すると、以後、ユーザがプラグ157bを抜き差しして積極的にリセット動作をしないかぎりその状態が維持されていた。本発明では、ブロック253、255、257のいずれかからブロック209に移行するパスルートを備えている。すなわち、DラインまたはD-ラインをプルアップして周辺機器37が2.0デバイスとしてのエニュメレーションを開始したあと、あるいはさらに2.0デバイスとしての構成が確立したあとであっても、EC25はGND_DRAINラインの電位を監視している。ブロック257では、EC25がシステムから2.0デバイスとしての構成が完了したことの通知を受け取り、それ以後の経過時間を計測する。プラグ157bはゆっくりと挿入されるときは、やがて3.0ピン51が接続される。ブロック209でEC25が電位の低下によりGND_DRAINピンの接続を検出するとブロック212に移行する。ブロック212にブロック257から移行するときは、EC25はシステムから周辺機器37が2.0インターフェースとしての構成が完了していることの通知を受け取っているのでブロック213に移行する。ブロック213ではEC25が、2.0デバイスとしての構成が完了してから数ミリ秒~数秒といった所定の時間が経過しているか否かを判断する。この場合の所定の時間は、周辺機器37がUSB2.0規格のインターフェースで通信を開始するまでの可能性のある時間として設定することができる。EC25が所定の時間が経過していると判断した場合は、ブロック215でEC25はパワースイッチ101をオフにしないで、Vbusラインの電力供給を維持しブロック257に移行する。その結果、2.0デバイスとしての構成が維持され2.0インターフェースでの通信が開始している場合であっても突然のリセットでデータが消失することを防ぐことができる。ブロック213でEC25が2.0デバイスとしての構成が確立してから所定の時間が経過していないと判断した場合はブロック217に移行してVbusラインをリセットする。ブロック217ではEC25が10ミリ秒~20ミリ秒程度の間パワースイッチ101をオフにしその後オンにすることでVbusラインをリセットする。Vbusラインがリセットされると、ブロック253で行われたDピンまたはD-ピンのプルアップが停止し、周辺機器37は再び自らが2.0インターフェースを備えることを隠蔽する。ブロック213の手順は、USB2.0規格のインターフェースで通信を開始したデータがVbusの突然のリセット動作で消失することを防ぐことを目的にしているので、データ消失を許容する場合は必要がない。このとき、レセプタクル155aに接続されたダウンストリームのUSBデバイスとシステムとの間ですでに通信を開始している可能性もあるが、リセットするVbusラインは3.0レセプタクル157aのポートだけであるため、構成が突然切断されてデータが消失するようなことはない。ブロック217からブロック207に戻るきは、3.0ピンの接続が検出されているのでブロック209を経由してブロック212に戻る。今度のブロック212では、ブロック217でVbusラインがリセットされたことで周辺機器37はDラインとD-ラインのプルアップを停止しているため2.0デバイスとしての認識が解除され、システムは周辺機器37が2.0デバイスとして構成が完了しているとは認識しない。したがって、システムはブロック212からブロック219に移行して3.0デバイスとして認識されるようにエニュメレーションを開始する。上記の手順は、ハブ35のレセプタクル163aとケーブル164で周辺機器39が接続されたプラグ163bの間、および、周辺機器39が接続されたハブ35に接続されたケーブル160のプラグ155bとレセプタクル155aとの間での接続にも適用することができる。レセプタクル163aとプラグ163bの接続およびプラグ165aとレセプタクル165bの接続に本発明を適用する場合は、ハブ35においてダウンストリームのGND_DRAINラインの電位の検出とVbusラインのリセットを行う。そしてシステムは、ハブ35からUSBデバイスが接続されたイベントを受け取るとエニュメレーションを開始する。本発明によれば、2.0インターフェースが構成されたあとに3.0インターフェースを構成するためにプラグの抜き差しをする必要がない。またプラグをゆっくりと挿入して一旦2.0インターフェースの構成が成立しても、プラグが完全に挿入されたときには3.0インターフェースの構成が確立しているためユーザはプラグの接続方法に不慣れであっても常に3.0インターフェースでの接続をすることができる。また本発明はOSおよびデバイスドライバなどのソフトウェアの支援を受けないでハードウェアだけで実現できるため短時間で3.0インターフェースの構成を実現できる。周辺機器およびコネクタはエニュメレーションに対応する通常の動作をするだけでよく本発明の適用のために変更を加える必要がない。本発明が適用できるUSBコネクタは、標準コネクタだけでなく、ミニコネクタおよびマイクロコネクタとすることができる。また、3.0ピンの接続を通信に影響がでないようにGND_DRAINラインの接続で検出したが、本発明は、SX-TXラインまたはSX-RXラインの接続で検出することを排除するものではない。さらに、プラグとレセプタクルのそれぞれに3.0ピンが接続される位置で接触する通信とは別の接点を設けて3.0ピンの接続を検出するようにしてもよい。また、GND_DRAINラインの電位の検出にEC25に代えて専用の電位検出回路を設けてもよい。[電流リミッタ]つぎに、USBシステム100で使用する電流制限器について図7を参照して説明する。USBの規格ではUSBコントローラ33は、2.0デバイスに対してはポートあたり最大500mAの電流を供給でき、3.0デバイスに対しては最大900mAの電流を供給できるようになっている。従来から2.0ホストではVbusラインに500mAの電流制限器を設け、3.0ホストでは900mAの電流制限器を設けていた。電流制限器はVbusラインに流れる電流が規格値を超えたときにオフにしてVbusラインを保護する。3.0デバイスは、内部のインターフェースが2.0物理層と3.0物理層が独立しており、3.0デバイスとして認識されたり2.0デバイスとして認識されたりする。また、ポートには2.0デバイスが接続することもある。本発明では、Vbusラインに2.0デバイスが接続されたときに有効になる電流制限器111と3.0デバイスが接続されたときに有効になる電流制限器113を設ける。そして、USBコントローラ33は、システムが認識したUSB規格のバージョンに基づき、Vbusコントローラ47およびEC25を通じていずれか一方の電流制限器を有効に設定し、他方を無効に設定する。なお、電流制限器は、図3に説明したリセット回路を含むUSBコントローラ33に追加してもよいし、リセット回路とは独立して設けてもよい。これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。