説明

インターフェースの接続方法およびコンピュータ

【課題】USB3.0に適合する周辺機器がコネクタで接続されたときに先にUSB2.0の構成が確立されても自動的にUSB3.0の構成を確立する。
【解決手段】3.0ピン51と2.0ピン49を備えるコネクタにデバイスを接続する。コネクタの挿入速度が遅い場合には2.0ピンだけが接続され3.0ピンが接続されない状態が短い時間発生する。その場合システムは先にUSB2.0の構成を確立する。EC25はその後3.0ピンが接続されてGND_DRAINラインの電位が変化したことを検出するとパワー・スイッチ101を所定の時間だけオフにしてデバイスをリセットする。リセットされたときは3.0ピンの接続が完了しているのでシステムはUSB3.0の構成を確立する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2種類のインターフェースを備える周辺機器がコネクタで接続されたときに所定の一方のインターフェースの構成を確立する技術に関し、さらに詳細には、先に確立した他方のインターフェースの構成を解除して自動的に一方のインターフェースの構成を確立する技術に関する。
【背景技術】
【0002】
コンピュータにキーボード、マウス、プリンタ、またはハードディスク装置(HDD)などの周辺機器を接続するインターフェース規格にUSB(Universal Serial Bus)がある。USB規格は、1996年1月にUSB1.0が発表され、2000年4月にUSB2.0が発表され、さらに、2008年11月にUSB3.0が発表された。USB2.0規格に対するUSB3.0規格の主たる変更点は、転送速度の高速化と電力供給能力の強化を挙げることができる。
【0003】
USB3.0規格はUSB2.0規格に対して下位互換性を備えており、USB3.0ホストにはUSB3.0規格に適合するUSBデバイス(以下、USB3.0デバイスという。)だけでなくUSB2.0規格に適合するUSBデバイス(以下、USB2.0デバイスという。)も接続することができる。なお本明細書においては単にUSBデバイスといった場合には、ハブと周辺機器の両方を示すものとする。
【0004】
USB3.0規格では、下位互換性を実現するためにUSBホストとUSBデバイスの物理層に、USB2.0規格の通信を処理する2.0物理層に加えてUSB3.0規格の通信を処理する3.0物理層を追加したいわゆるデュアル・バス・アーキテクチャを採用した。この点では、USB3.0はUSB2.0デバイスの機能をUSB3.0の機能で置換するものではなく、USB2.0の機能を補完しているといえる。
【0005】
USBデバイスを接続するUSBケーブルの両端にはプラグが取り付けられる。一般にUSBケーブルの一端にはホスト側(アップストリーム)に接続するAプラグが取り付けられ他端には周辺機器側(ダウンストリーム)に接続するBプラグが取り付けられる。プラグの形状はUSB規格で定まっており、AプラグはUSBハブのダウンストリームのポートまたはUSBホストに設けられたAレセプタクルに接続され、BプラグはUSBデバイスのアップストリームのポートに設けられたBレセプタクルに接続される。
【0006】
USB3.0の規格に適合する3.0ケーブルは、USB3.0の規格に適合するUSBホスト(以下、3.0ホストという。)および3.0デバイスだけでなく、USB2.0の規格に適合するUSBホスト(以下、2.0ホストという。)および2.0デバイスに接続することもできる。表1は、2つのUSB規格に適合するプラグとレセプタクルの物理的な接続の可否とそのときのUSBシステムの通常の動作状態を示す。
【0007】
【表1】

【0008】
表1によれば、3.0ケーブルのBプラグは2.0デバイスのBレセプタクルには接続できないが、それ以外の組み合わせでは接続することができる。しかし、USB3.0の規格で動作するためには、USBホスト、USBケーブルおよびUSBデバイスのすべてがUSB3.0の規格に適合している必要がある。USBケーブルまたはUSBデバイスのいずれかがUSB2.0に従う場合は、通信速度および電力供給などにおいてUSB2.0の規格に従って動作することになる。
【0009】
特許文献1は、USB通信規格に対応したデバイスで静電ノイズによる通信エラーが発生した場合にコネクタの抜き差しをしないで通信を再開する発明を開示する。この発明では、デバイスのマイコンが通信エラーを検出すると、D+ラインまたはD−ラインをプルアップする回路をオフにしたあとにオンにすることで自動的に通信を再開させる。特許文献2は、USBコネクタの抜き差しをしないでUSB機器の認識を復旧する発明を開示する。この発明では、USB機器においてホスト装置から送信されるポーリング信号を所定時間受信しないときにD+ラインまたはD−ラインのプルアップ電位を変化させる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2001−306413号公報
【特許文献2】特開2008−152533号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
3.0ホストに3.0デバイスを接続する場合は、ユーザはシステムがUSB3.0規格に従って高速で動作することを期待している。図8は、USB3.0規格のA端子に使用する3.0コネクタを模式的に示す図である。3.0コネクタは、3.0プラグ301と3.0レセプタクル321で構成される。図8(A)は、3.0プラグ301を開口方向からみた図で、図8(B)は3.0プラグ301のピン配置を示す平面図で、図8(C)は3.0レセプタクル321のピン配置を示す平面図である。
【0012】
3.0プラグ301はUSB2.0規格の通信に使用する2個のピン(以下、2.0ピンという。)303と2個の電源ピン307が一層に配置され、USB3.0規格の通信に使用する5個のピン(SSピンまたは3.0ピン)305が他の層に配置された2層(two-tier)コンタクト・システムを採用している。2個の2.0ピン303と2個の電源ピン307は3.0プラグ301の開口部側に配置され、5個の3.0ピン305が奥側に配置されている。
【0013】
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が接続される。
【0014】
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が接続されていない状態が所定の時間以上継続する。
【0015】
この場合、システムはUSBデバイスを2.0デバイスとして認識する。その後、3.0プラグ301が完全に挿入されて3.0ピン305、325が接続されてもシステムは自動的に3.0デバイスとして認識するように再構成する処理はしない。システムは単に現在のUSBデバイスはUSB3.0規格で動作する能力があることを示すプロンプトを画面に表示してユーザに通知するだけである。
【0016】
これは、システムが、USBデバイスのディスクリプタを取得して3.0デバイスを3.0デバイスとして認識するまでには所定の時間がかかるため、その間にUSB2.0規格での通信が開始されて、再構成するとその通信を停止する必要があるためであると考えられる。また、3.0デバイスが2.0デバイスとして認識されるのは、コネクタの接続方法に起因して2.0ピンだけが接続された状態が所定時間以上経過した場合だけでなく、コネクタを接続する際の電気的なノイズに起因する場合もある。
【0017】
現在は一旦2.0デバイスとして構成されたUSBデバイスを3.0デバイスとして再構成するには、ユーザがシステムから通知を受けたときまたはみずから動作速度が期待よりも遅いと感じたときに、3.0プラグを抜き差しするしかなくユーザにとっては負担である。したがって、3.0デバイスが一旦2.0デバイスとして認識されても最終的に3.0ピンが接続されたときには自動的に3.0デバイスとして認識されるようにできればUSBデバイスの操作性が向上する。
【0018】
そこで本発明の目的は、2つのインターフェースを備えるデバイスがコネクタでコンピュータに接続されたときにコネクタの抜き差しをしないで所定の一方のインターフェースの構成を確立する方法を提供することにある。さらに本発明の目的は、2つのインターフェースを備えるデバイスがコネクタでコンピュータに接続されたときに先に他方のインターフェースの構成が確立してもコネクタの接続が完了したときには所定の一方のインターフェースの構成をユーザの操作を介在しないで確立する方法を提供することにある。さらに本発明の目的は2つのインターフェースを備えるバス・システムの安全を確保する方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータを提供することにある。
【課題を解決するための手段】
【0019】
第1のデバイスと第2のデバイスはそれぞれ第1のインターフェース機能と第2のインターフェース機能を備える。コネクタは第1のインターフェース機能による通信に使用する第1のピンと第2のインターフェース機能による通信に使用する第2のピンを収納する。第1のデバイスと第2のデバイスに対してコネクタによる接続操作を開始したときに、挿入の速度が遅いために第2のピンが接続され第1のピンが接続されていない状態が所定時間以上経過するとシステムは第2のインターフェース機能の構成を確立する。
【0020】
その後、コネクタの接続が進行するとコネクタにおける第1のピンの接続が検出される。そして、第1のピンの接続に応答して第1のデバイスをリセットして第1のインターフェース機能の構成を確立する。第1のピンの接続が検出されるときには、第2のインターフェース機能の構成が確立している場合と、第2のインターフェース機能と第1のインターフェース機能のいずれの構成も確立していない場合の2つの状態が想定される。
【0021】
さらに本発明は、第1のインターフェース機能の構成が先に確立することがある場合にも適用することができる。本発明ではいずれの場合でも第1のピンの接続をトリガにして第1のデバイスをリセットするため、コネクタがどのように接続されても第1のピンが接続されたときは必ず第1のインターフェース機能の構成が確立する。
【0022】
第1のインターフェース機能が第2のインターフェース機能よりも高速のデータ転送を実現するような場合には、本発明によりコネクタの完全な接続が完了したときには高速のデータ転送をすることができる。コネクタが、第2のピンが第1のピンより先に接続されるように形成されている場合は、システムが先に第2のインターフェース機能の構成を確立する頻度が高まるため本発明は特に有効である。
【0023】
コネクタがプラグとレセプタクルで構成されるときに、第1のデバイスにケーブルで接続されたり直接取り付けられたりしたプラグを第2のデバイスに取り付けられたレセプタクルに接続することができる。この場合のコネクタの場所はUSB規格のA端子に相当し接続は第2のデバイスで行われる。あるいは、第2のデバイスにケーブルで接続されたプラグを第1のデバイスに取り付けられたレセプタクルに接続することができる。この場合のコネクタはUSB規格のB端子に相当し接続は第1のデバイスで行われる。
【0024】
第1のインターフェース機能をUSB3.0規格に適合する第1のインターフェースとし、前記第2のインターフェース機能をUSB2.0規格に適合する第2のインターフェースとすることができる。この場合第1のピンの接続をGND_DRAINラインの接続で検出することができる。GND_DRAINラインは信号を伝送しないため、第1のピンの接続を検出するのに適している。第1のデバイスのリセットはVbusラインをオンオフすることで行うことができる。第1のインターフェースの構成の確立を、第2のインターフェースの構成を確立してからデータ転送を開始するまでの一定時間が経過する前に限って実行することができる。
【0025】
その結果先にシステムが第2のインターフェースを認識してデータ転送を開始している場合には、リセットをしないため第2のインターフェースの突然の切断によるデータの消失を防ぐことができる。第1のデバイスを周辺機器とし第2のデバイスをホスト・コントローラとルート・ハブを含むバス・コントローラまたはコンピュータとすることができる。また、第1のデバイスを周辺機器とし第2のデバイスをルート・ハブまたはハブとすることができる。
【発明の効果】
【0026】
本発明により、2つのインターフェースを備えるデバイスがコネクタでコンピュータに接続されたときにコネクタの抜き差しをしないで所定の一方のインターフェースの構成を確立する方法を提供することができた。さらに本発明により、2つのインターフェースを備えるデバイスがコネクタでコンピュータに接続されたときに先に他方のインターフェースの構成が確立してもコネクタの接続が完了したときには所定の一方のインターフェースの構成をユーザの操作を介在しないで確立する方法を提供することができた。さらに本発明により2つのインターフェースを備えるバス・システムの安全を確保する方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータを提供することができた。
【図面の簡単な説明】
【0027】
【図1】本発明の適用が可能なコンピュータ10の概略の構成を示す機能ブロック図である。
【図2】コンピュータ10を中心にして構成された1つのUSBシステム100のトポロジーを示す図である。
【図3】USBコントローラ33の内部構造を示す機能ブロック図である。
【図4】周辺機器37の周知のインターフェースを示す機能ブロック図である。
【図5】USB3.0規格のステート・マシーン図である。
【図6】USBコントローラ33に周辺機器37を接続するときのエニュメレーションのシーケンスを示すフローチャートである。
【図7】USBシステム100で採用する電流制限器の説明をする図である。
【図8】USB3.0規格に適合するAコネクタの構造を模式的に示す図である。
【発明を実施するための形態】
【0028】
図1は、本発明の適用が可能なコンピュータ10の概略の構成を示す機能ブロック図である。CPU11はメモリ・コントローラとPCI Expressコントローラを内蔵しており、メイン・メモリ13、ビデオ・カード15およびチップ・セット19に接続されている。ビデオ・カード15にはLCD17が接続されている。チップ・セット19は、SATA、USB、PCI Express、LPCなどのコントローラおよびRTC(Real Time Clock)などを内蔵している。SATAコントローラにはHDD21が接続されている。
【0029】
図2に示すUSBコントローラ33はUSB3.0規格をサポートしており、代表的に2個のレセプタクル155a、157aが接続されている。レセプタクル155aとレセプタクル157aはともに3.0ピン、2.0ピンおよび電源ピンを収納する同一の構造になっている。チップ・セット19には、さらにLPCバスを通じてエンベデッド・コントローラ(EC)25が接続されている。
【0030】
EC25は、コンピュータ10の筐体内部の温度を制御したり、デバイスの電力を制御したり、さらに入出力デバイスの制御をしたりするマイクロ・コントローラである。EC25は、CPU11とは独立して動作する。EC25にはDC/DCコンバータ27が接続され、さらに、図示しないキーボード、マウス、充電器、電池パック、および排気ファンなどが接続される。EC25は、チップ・セット19およびCPU11と通信することができる。
【0031】
[USBシステム]
図2は、コンピュータ10を中心にして構成された1つのUSBシステム100のトポロジーを示す図である。USBシステム100は、チップ・セット19に形成されたUSBコントローラ33を頂点にしてダウンストリーム側に階層的に設けたハブ35で接続を分岐する階層式スター型トポロジーを採用する。
【0032】
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デバイスとして認識する。
【0033】
USBコントローラ33は、ホスト・コントローラの機能とルート・ハブの機能を備えている。USBコントローラ33は、USB2.0規格の通信を行う2.0物理層45とUSB3.0規格の通信を行う3.0物理層43からなる二重バス構造を採用して2つの規格をサポートする。インターフェース41は、コンピュータ10のシステムとUSBシステムで使用するプロトコルを変換して双方向におけるデータ・フローおよび制御フローを処理する。
【0034】
3.0物理層43は、USB3.0規格に基づいて電気的な信号を処理したり3.0デバイスの接続を検出したりする。2.0物理層45は、USB2.0規格に基づいて電気的な信号を処理したり2.0デバイスの接続を検出したりする。Vbusコントローラ47はDC/DCコンバータ27から供給された電力を、Vbusにつながれたパワー・スイッチ101をコントロールすることによってUSBデバイスに供給する。
【0035】
レセプタクル155a、157aは、いずれも3.0物理層43、2.0物理層45およびVbusに接続されている。システムはレセプタクル155a、157aに直接またはハブ35を経由して周辺機器が接続されると、それぞれについていずれか一方の規格に適合するUSBとして認識する。たとえばシステムは、レセプタクル155aに接続された周辺機器を3.0デバイスとして認識し、同時にレセプタクル157aに接続されている周辺機器を2.0デバイスとして認識することがある。
【0036】
周辺機器37、39はコンピュータ10に接続が可能な記憶装置、プリンタ、カメラ、または他のコンピュータなどとすることができる。周辺機器37、39およびハブ35はいずれもUSBコントローラ33と同様に二重バス構造を採用し、USBケーブル158、160、164でダウンストリームまたはアップストリームのUSBデバイスまたはUSBコントローラ33に接続される。また、USBケーブル158、160、164は、USB2.0規格の通信をするための一対のUTP(Unshielded Twist Pair)ケーブル、電源ケーブル、グランドケーブル、およびUSB3.0規格の通信をするための2対のSDP(Shielded Differential Pair)ケーブルとGND_DRAINケーブルを含んでいる。
【0037】
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が接続されている。
【0038】
周辺機器37およびハブ35は、Vbusラインを通じてUSBケーブルから電力は受け取るが動作の主たる電源をAC/DCアダプタのような別電源から受け取るセルフ・パワード・デバイスまたはVbusラインから受け取った電力だけで動作するバス・パワード・デバイスのいずれであってもよい。コンピュータ10は、USBシステム100を複数搭載することもできる。
【0039】
図3は、USBコントローラ33の内部構造を示す機能ブロック図である。3.0物理層43は、1対の送信用差動信号ペアのSS_TXラインと1対の受信用差動信号ペアのSS_RXラインで4個の3.0ピン51にそれぞれ接続される。
【0040】
GND_DRAINラインは、抵抗を介してDC5Vでプルアップされかつコンデンサ103でグランドに接続されている。さらにGND_DRAINラインにはその電位を監視するためにEC25が接続される。周辺機器37が接続されたUSBケーブル158のプラグ157bの3.0ピンがUSBコントローラ33の3.0ピン51に接続されたときにGND_DRAINラインの電位は低下する。
【0041】
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デバイスに電力を供給する。
【0042】
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デバイスをリセットできるようにすることが望ましい。
【0043】
図4は、周辺機器37の周知のインターフェースを示す機能ブロック図である。レセプタクル159bに含まれる2.0ピン53に2.0物理層57が接続され3.0ピン55に3.0物理層59が接続される。D+ラインまたD−ラインのいずれか一方は転送速度を決めるために抵抗を介して電源電圧Vccにプルアップされている。周辺機器37はUSBコントローラ33に対してD+ラインをプルアップして自らがフル・スピード・ファンクションに対応することを表明し、D−ラインをプルアップしてロー・スピード・ファンクションに対応することを表明ことができる。
【0044】
また、周辺機器37がD+ラインとD−ラインのいずれもプルアップしないときは、ホスト・コントローラ33に対して切断されることまたは自らの存在を隠蔽することを表明する。周辺機器37はVbusラインから電力を受け取ってから12ミリ秒以上USBコントローラ33に含まれる3.0物理層43のSS_RXラインに接続されたターミネーションを検出できないときは、USB規格2.0で接続するようにD+ラインまたはD−ラインのいずれかをプルアップする。ターミネーションは、信号の反射やエコーを抑制するために信号ラインの終端に接続される受動素子である。
【0045】
図1〜図4は本実施の形態を説明するために必要な主要なハードウェアの構成および接続関係を簡略化して記載したに過ぎないものである。ここまでの説明で言及した以外にも、USBシステムを構成するには多くのデバイスまたはコンポーネントが使われる。しかしそれらは当業者には周知であるので、ここでは詳しく言及しない。図で記載した複数のブロックを1個の集積回路もしくは装置としたり、逆に1個のブロックを複数の集積回路もしくは装置に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【0046】
[ステート・マシーン]
図5は、USB3.0デバイスのステート・マシーン図である。Attachedは、USBデバイスのアップストリーム側のUSBインターフェースが接続されているが、そこから電力は供給されていない状態である。Poweredは、さらにVbusから電力が供給されているが、アップストリーム側のリンク・トレーニングが終了していない状態である。Defaultは、さらにデバイスがリセットされたがホストからユニークなアドレスが割り当てられていないため、ディフォルトのアドレスで応答できる状態である。
【0047】
Addressは、さらに、ユニークなアドレスが割り当てられたが構成されていない状態である。Configuredは、さらに構成が完了している状態でコンピュータが3.0インターフェースを使用できる状態である。USB2.0 Device Statusは、USB3.0の接続をやめてUSB2.0インターフェースのエニュメレーションと接続を開始した状態である。
【0048】
PoweredからUSB2.0 Device Statusへの遷移は、ターミネーションが検出されないとき、またはリンク・トレーニングが失敗したときに発生する。また、DefaultからUSB2.0 Device Statusへの遷移は、デバイスのポートの構成が失敗したときに発生する。しかし一旦USB2.0 Device Statusに遷移すると、システムは積極的に3.0インターフェースを構成することを規定していないため、USB3.0規格をサポートするUSBデバイスであっても先に2.0インターフェースが構成されたときには、その後3.0インターフェースが接続されてもなんらかの方法で再構成しない限りそれで動作することになる。
【0049】
[エニュメレーション]
図6は、USBコントローラ33に周辺機器37を接続するときのエニュメレーションのシーケンスを示すフローチャートである。エニュメレーションはコンピュータ10のシステムとUSBコントローラ33が協働してUSBデバイスと情報の交換をしながら、USBデバイスの検出、特定および構成をする動作をいう。なお、図6の説明においてコンピュータ10のシステムは、CPU11、メイン・メモリ13などのハードウェアとOSおよびデバイス・ドライバなどのソフトウェアで構成される。
【0050】
あらかじめコンピュータ10には電源が投入されており、USBコントローラ33は、レセプタクル157a、155aにUSBデバイスが接続されたときにはエニュメレーションを実行できる状態になっている。また、周辺機器37は、プラグ159aとレセプタクル159bでUSBケーブル158に接続されているものとする。エニュメレーションは、2.0インターフェースと3.0インターフェースのそれぞれについて独立して行われ、コンピュータ10と周辺機器37はエニュメレーションが確立したいずれか一方のインターフェースを認識して通信する。
【0051】
レセプタクル157aに新たに周辺機器37が接続されたときに、プラグ157bをレセプタクル157aに対して完全に挿入するまでの時間および電気的なノイズの発生の有無により、システムは周辺機器37の2.0インターフェースまたは3.0インターフェースのいずれか一方を認識する。ただし、一旦2.0インターフェースの構成が確立しても本発明では以下のように極短時間で自動的に3.0インターフェースの構成を確立する。
【0052】
最初にプラグ157bを標準的な速度で挿入して確実に接続したときに、システムが周辺機器37を3.0デバイスとして認識するときの動作手順を説明する。ブロック201で3.0デバイスである周辺機器37は、ディフォルトでは3.0デバイスとして認識されるように構成されているため、接続時には自らが2.0インターフェースを備えることを隠蔽する。周辺機器37は停止していたVbusラインの電力が供給されるときにこの時点ではD+ライン、D−ラインのいずれもプルアップしない。
【0053】
ブロック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デバイスが接続されたことを検出しない。
【0054】
さらに挿入が進行すると、3.0ピン51が接続される。EC25はブロック209で、GND_DRAINピンが接続されてGND_DRAINラインの電位が低下したときの信号エッジを検出するとブロック212に移行する。ブロック212では、EC25がシステムから2.0デバイスとしての構成が完了したことの通知を受け取っているか否かを判断する。ここまでの手順では、周辺機器37は2.0インターフェースを備えることを隠蔽しており、EC25は2.0デバイスとしての構成が完了したことの通知を受け取っていないので、ブロック219に移行する。
【0055】
ブロック219では、システム、USBコントローラ33、および周辺機器37が3.0インターフェースのエニュメレーションを開始する。3.0物理層43は、3.0ピンのSS_TXラインまたはSS_RXラインが接続されたことを検出するとシステムに周辺機器37が接続されたポートを特定してイベントを通知する。このとき、USBコントローラ33は、周辺機器37が3.0デバイスであることを示す情報もシステムに送る。イベントが発生したことを認識したシステムは、USBコントローラ33にリクエストを送信して接続された周辺機器の情報を取得する。
【0056】
新たに接続された周辺機器37を認識したシステムは、周辺機器37が接続されたポートをリセットするためにUSBコントローラにリクエストを送る。リクエストを受け取ったUSBコントローラ33は、3.0ピンのラインを短時間だけ論理的にローにして周辺機器37をリセット状態にする。USBコントローラ33がリセット状態を解除すると周辺機器37はディフォルト状態に遷移する。
【0057】
このとき周辺機器37のレジスタおよびステータスはすべてリセットされた状態になり、周辺機器37はディフォルトのアドレスでエンド・ポイント0を使用してコントロール転送に応答できるようになって、システムと周辺機器37の間の信号路が確立する。システムはUSBコントローラ33にリクエストを送って、周辺機器37がリセット状態から復帰したか否かを検証する。
【0058】
リセット状態から復帰したことを確認するとシステムは、USBコントローラ33にリクエストを送って、周辺機器37にユニークな新しいアドレスを割り当てさせる。このとき、周辺機器37がリセットされたことをシステムが確実に認識するために、システムがUSBコントローラ33に周辺機器37をリセットするように要求することができる。
【0059】
その結果、周辺機器37はアドレス状態に遷移する。システムは、周辺機器37の新しいアドレスにリクエストを送ってディスクリプタを取得し、取得したディスクリプタに適合する最適なデバイス・ドライバをHDD21の中から探す。システムは、みつけたデバイス・ドライバをHDD21からメイン・メモリ13にロードする。デバイス・ドライバはディスクリプタに基づいてコンフィグレーション情報を選択して周辺機器37に設定する。システムによってコンフィグレーション情報が設定された周辺機器37のインターフェースは、ブロック221でUSB3.0規格の構成が確立しアプリケーションとの間でのデータ転送が可能になる。
【0060】
つぎに、プラグ157bがゆっくりと挿入されたときにシステムが周辺機器37を3.0デバイスとして認識するときの動作手順を説明する。ブロック203でプラグ157bの接続が開始され、ブロック205を経由してブロック207で周辺機器37のVbusラインに電力が供給されても、3.0ピン51が接続されないときは、ブロック209でEC25がGND_DRAINラインの電位の低下によりGND_DRAINピンの接続を検出することはなく、さらに周辺機器37はターミネーションを検出しないためブロック251に移行する。
【0061】
ブロック251で周辺機器37は、自らのVbusラインに電力が供給されてから12ミリ秒以上経過してもターミネーションを検出しないときは、2.0デバイスとしての接続を要求するために、ブロック253でD+ピンまたはD−ピンのいずれかをプルアップする。ブロック255で2.0物理層45は、D+ラインまたはD−ラインの電圧が上昇したことを検知すると2.0インターフェースのエニュメレーションを開始するためにシステムに周辺機器37が接続されたポートを特定してイベントを通知する。
【0062】
このとき、USBコントローラ33は、D+ライン、D−ラインの電圧を判定して接続された周辺機器37の転送速度がロー・スピードまたはフル・スピードのいずれであるかの情報もシステムに送る。イベントが発生したことを認識したシステムは、USBコントローラ33にリクエストを送信して接続された周辺機器37の情報を取得する。
【0063】
新たに接続された周辺機器37を認識したシステムは、周辺機器37が接続されたポートをリセットするためにUSBコントローラ33にリクエストを送る。リクエストを受け取ったUSBコントローラ33は、周辺機器37のD+ラインおよびDーラインを最低10ミリ秒の間論理的にローにしてリセット状態にする。リセット中は、USBコントローラ33と周辺機器37の間でチャープ(Chirp)を交換して周辺機器37がハイ・スピードに対応することが確認できた場合は、以後、ハイ・スピードで通信をする。
【0064】
USBコントローラ33がリセット状態を解除すると周辺機器37はディフォルト状態に遷移する。このとき周辺機器37のレジスタおよびステータスはすべてリセット状態にあり、周辺機器37はディフォルトのアドレスでエンド・ポイント0を使用してコントロール転送に応答できるようになって、システムと周辺機器37の間の信号路が確立する。システムはUSBコントローラ33にリクエストを送って、周辺機器37がリセット状態から復帰したか否かを検証する。
【0065】
リセット状態から復帰したことを確認するとシステムは、USBコントローラ33にリクエストを送って、周辺機器37にユニークな新しいアドレスを割り当てさせる。このとき、周辺機器がリセットされたことをシステムが確実に認識するために、システムがUSBコントローラ33に周辺機器37をリセットするように要求することができる。
【0066】
その結果、周辺機器37はアドレス状態に遷移する。システムは、周辺機器37の新しいアドレスにリクエストを送ってディスクリプタを取得し、取得したディスクリプタに適合する最適なデバイス・ドライバをHDD21の中から探す。システムは、みつけたデバイス・ドライバをHDD21からメイン・メモリ13にロードする。デバイス・ドライバはディスクリプタに基づいてコンフィグレーション情報を選択して周辺機器37に設定する。コンフィグレーション情報が設定された周辺機器37のインターフェースは、ブロック257でUSB2.0の構成を確立しアプリケーションとの間でデータ転送が可能になる。
【0067】
これまでのUSBシステムでは、ブロック257でシステムが周辺機器37を一旦2.0デバイスとして認識すると、以後、ユーザがプラグ157bを抜き差しして積極的にリセット動作をしないかぎりその状態が維持されていた。本発明では、ブロック253、255、257のいずれかからブロック209に移行するパス・ルートを備えている。すなわち、D+ラインまたはD−ラインをプルアップして周辺機器37が2.0デバイスとしてのエニュメレーションを開始したあと、あるいはさらに2.0デバイスとしての構成が確立したあとであっても、EC25はGND_DRAINラインの電位を監視している。ブロック257では、EC25がシステムから2.0デバイスとしての構成が完了したことの通知を受け取り、それ以後の経過時間を計測する。
【0068】
プラグ157bはゆっくりと挿入されるときは、やがて3.0ピン51が接続される。ブロック209でEC25が電位の低下によりGND_DRAINピンの接続を検出するとブロック212に移行する。ブロック212にブロック257から移行するときは、EC25はシステムから周辺機器37が2.0インターフェースとしての構成が完了していることの通知を受け取っているのでブロック213に移行する。ブロック213ではEC25が、2.0デバイスとしての構成が完了してから数ミリ秒〜数秒といった所定の時間が経過しているか否かを判断する。この場合の所定の時間は、周辺機器37がUSB2.0規格のインターフェースで通信を開始するまでの可能性のある時間として設定することができる。
【0069】
EC25が所定の時間が経過していると判断した場合は、ブロック215でEC25はパワー・スイッチ101をオフにしないで、Vbusラインの電力供給を維持しブロック257に移行する。その結果、2.0デバイスとしての構成が維持され2.0インターフェースでの通信が開始している場合であっても突然のリセットでデータが消失することを防ぐことができる。
【0070】
ブロック213でEC25が2.0デバイスとしての構成が確立してから所定の時間が経過していないと判断した場合はブロック217に移行してVbusラインをリセットする。ブロック217ではEC25が10ミリ秒〜20ミリ秒程度の間パワー・スイッチ101をオフにしその後オンにすることでVbusラインをリセットする。Vbusラインがリセットされると、ブロック253で行われたD+ピンまたはD−ピンのプルアップが停止し、周辺機器37は再び自らが2.0インターフェースを備えることを隠蔽する。
【0071】
ブロック213の手順は、USB2.0規格のインターフェースで通信を開始したデータがVbusの突然のリセット動作で消失することを防ぐことを目的にしているので、データ消失を許容する場合は必要がない。このとき、レセプタクル155aに接続されたダウンストリームのUSBデバイスとシステムとの間ですでに通信を開始している可能性もあるが、リセットするVbusラインは3.0レセプタクル157aのポートだけであるため、構成が突然切断されてデータが消失するようなことはない。
【0072】
ブロック217からブロック207に戻るきは、3.0ピンの接続が検出されているのでブロック209を経由してブロック212に戻る。今度のブロック212では、ブロック217でVbusラインがリセットされたことで周辺機器37はD+ラインとD−ラインのプルアップを停止しているため2.0デバイスとしての認識が解除され、システムは周辺機器37が2.0デバイスとして構成が完了しているとは認識しない。したがって、システムはブロック212からブロック219に移行して3.0デバイスとして認識されるようにエニュメレーションを開始する。
【0073】
上記の手順は、ハブ35のレセプタクル163aとケーブル164で周辺機器39が接続されたプラグ163bの間、および、周辺機器39が接続されたハブ35に接続されたケーブル160のプラグ155bとレセプタクル155aとの間での接続にも適用することができる。レセプタクル163aとプラグ163bの接続およびプラグ165aとレセプタクル165bの接続に本発明を適用する場合は、ハブ35においてダウンストリームのGND_DRAINラインの電位の検出とVbusラインのリセットを行う。そしてシステムは、ハブ35からUSBデバイスが接続されたイベントを受け取るとエニュメレーションを開始する。
【0074】
本発明によれば、2.0インターフェースが構成されたあとに3.0インターフェースを構成するためにプラグの抜き差しをする必要がない。またプラグをゆっくりと挿入して一旦2.0インターフェースの構成が成立しても、プラグが完全に挿入されたときには3.0インターフェースの構成が確立しているためユーザはプラグの接続方法に不慣れであっても常に3.0インターフェースでの接続をすることができる。また本発明はOSおよびデバイス・ドライバなどのソフトウェアの支援を受けないでハードウェアだけで実現できるため短時間で3.0インターフェースの構成を実現できる。周辺機器およびコネクタはエニュメレーションに対応する通常の動作をするだけでよく本発明の適用のために変更を加える必要がない。
【0075】
本発明が適用できるUSBコネクタは、標準コネクタだけでなく、ミニコネクタおよびマイクロ・コネクタとすることができる。また、3.0ピンの接続を通信に影響がでないようにGND_DRAINラインの接続で検出したが、本発明は、SX−TXラインまたはSX−RXラインの接続で検出することを排除するものではない。さらに、プラグとレセプタクルのそれぞれに3.0ピンが接続される位置で接触する通信とは別の接点を設けて3.0ピンの接続を検出するようにしてもよい。また、GND_DRAINラインの電位の検出にEC25に代えて専用の電位検出回路を設けてもよい。
【0076】
[電流リミッタ]
つぎに、USBシステム100で使用する電流制限器について図7を参照して説明する。USBの規格ではUSBコントローラ33は、2.0デバイスに対してはポートあたり最大500mAの電流を供給でき、3.0デバイスに対しては最大900mAの電流を供給できるようになっている。従来から2.0ホストではVbusラインに500mAの電流制限器を設け、3.0ホストでは900mAの電流制限器を設けていた。電流制限器はVbusラインに流れる電流が規格値を超えたときにオフにしてVbusラインを保護する。
【0077】
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に追加してもよいし、リセット回路とは独立して設けてもよい。
【0078】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【0079】
10 コンピュータ
33 USBコントローラ
49、53 2.0ピン
51、55 3.0ピン
100 USBシステム

【特許請求の範囲】
【請求項1】
それぞれ第1のインターフェース機能と第2のインターフェース機能を備える第1のデバイスと第2のデバイスをコネクタで接続したときにコンピュータのシステムが前記第1のインターフェース機能の構成を確立する方法であって、
前記第1のデバイスと前記第2のデバイスを前記第1のインターフェース機能による通信に使用する第1のピンと前記第2のインターフェース機能による通信に使用する第2のピンを収納するコネクタで接続操作を開始するステップと、
前記コネクタにおける前記第2のピンの接続を検出するステップと、
前記第2のピンの接続に応答して前記第2のインターフェース機能の構成を確立するステップと、
前記コネクタにおける前記第1のピンの接続を検出するステップと、
前記1のピンの接続に応答して前記第1のデバイスをリセットして前記第1のインターフェース機能の構成を確立するステップと
を有する方法。
【請求項2】
前記第1のインターフェース機能が前記第2のインターフェース機能よりも高速のデータ転送を実現する請求項1に記載の方法。
【請求項3】
前記コネクタは、前記第2のピンが前記第1のピンより先に接続されるように形成されている請求項1または請求項2に記載の方法。
【請求項4】
前記コネクタがプラグとレセプタクルで構成され、前記プラグが前記第1のデバイスに接続され前記レセプタクルが前記第2のデバイスに取り付けられている請求項1から請求項3のいずれかに記載の方法。
【請求項5】
前記コネクタがプラグとレセプタクルで構成され、前記プラグが前記第2のデバイスに接続され前記レセプタクルが前記第1のデバイスに取り付けられている請求項1から請求項3のいずれかに記載の方法。
【請求項6】
前記第1のインターフェース機能がUSB3.0規格に適合する第1のインターフェースで前記第2のインターフェース機能がUSB2.0規格に適合する第2のインターフェースである請求項1から請求項5のいずれかに記載の方法。
【請求項7】
前記第1のピンの接続をGND_DRAINラインの接続で検出する請求項6に記載の方法。
【請求項8】
前記第1のデバイスのリセットをVbusラインをオフにしてからオンにすることで行う請求項6または請求項7に記載の方法。
【請求項9】
前記第1のインターフェースの構成の確立を、前記第2のインターフェースの構成を確立してからデータ転送を開始するまでの一定時間が経過する前に限って実行する請求項6から請求項8のいずれかに記載の方法。
【請求項10】
第1のインターフェース機能と第2のインターフェース機能をサポートするインターフェース・コントローラを備え、周辺機器をコネクタにより接続することが可能で、前記コネクタが接続されたときに前記第1のインターフェース機能または前記第2のインターフェース機能のいずれか一方の構成を確立するコンピュータであって、
前記第1のインターフェース機能による通信に使用する第1のピンと前記第2のインターフェース機能による通信に使用する第2のピンを収納し前記インターフェース・コントローラに接続されたレセプタクルと、
前記第1のピンと前記周辺機器に接続されたプラグに収納され前記第1のインターフェース機能による通信に使用する第3のピンが接続されたことを検出し、さらに前記第2のピンと前記プラグに収納され前記第2のインターフェース機能による通信に使用する第4のピンが接続されたことを検出する検出回路と、
前記第1のピンと前記第3のピンが接続されたことに応答して前記周辺機器の前記コンピュータに対する接続動作をリセットするリセット回路と
を有するコンピュータ。
【請求項11】
前記コンピュータは前記第1のインターフェース機能または前記第2のインターフェース機能のいずれか一方の構成を先に確立したときに前記周辺機器がリセット動作をするまで先に確立した構成を維持する請求項10に記載のコンピュータ。
【請求項12】
前記周辺機器は、リセットされたときに前記第1のインターフェース機能の存在を表明し、所定の時間前記第1のインターフェース機能が確立されないときに前記第2のインターフェース機能の存在を表明する請求項10または請求項11に記載のコンピュータ。
【請求項13】
前記第1のインターフェース機能が上位バージョンのUSB規格に適合し前記第2のインターフェース機能が下位バージョンのUSB規格に適合する請求項10から請求項12のいずれかに記載のコンピュータ。
【請求項14】
前記第1のピンのGND_DRAINラインをプルアップするプルアップ回路を有し、
前記検出回路は前記GND_DRAINラインの電位の変化で前記第1のピンと前記第3のピンが接続されたことを検出する請求項13に記載のコンピュータ。
【請求項15】
ポートごとに前記Vbusラインの電力を制御するパワー・スイッチを有し、
前記リセット回路は、前記パワー・スイッチをオフにしてからオンにすることで前記周辺機器をリセットする請求項13または請求項14に記載のコンピュータ。
【請求項16】
前記上位バージョンのUSB規格に適合する電流制限器と前記下位バージョンのUSB規格に適合する電流制限器を前記Vbusラインに有し、前記コンピュータは構成を確立したUSB規格に適合する電流制限器だけをイネーブルに設定する請求項15に記載のコンピュータ。
【請求項17】
前記リセット回路は、前記下位バージョンのUSB規格の構成が完了してから所定時間が経過しないときに限り前記周辺機器をリセットする請求項13から請求項16のいずれかに記載のコンピュータ。
【請求項18】
上位バージョンのUSB規格に適合する第1のインターフェースと下位バージョンのUSB規格に適合する第2のインターフェースを含みコンピュータと周辺機器を接続するハブであって、
前記第1のインターフェースによる通信に使用する第1のピンと前記第2のインターフェースによる通信に使用する第2のピンを収納するレセプタクルと、
前記第1のピンと前記周辺機器に接続されたプラグに収納され前記第1のインターフェースによる通信に使用する第3のピンが接続されたことを検出し、さらに前記第2のピンと前記プラグに収納され前記第3のインターフェースによる通信に使用する第4のピンが接続されたことを検出する検出回路と、
前記第1のピンと前記第3のピンが接続されたことに応答して前記周辺機器の前記コンピュータに対する接続動作をリセットするリセット回路と
を有するハブ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−54400(P2013−54400A)
【公開日】平成25年3月21日(2013.3.21)
【国際特許分類】
【出願番号】特願2011−190071(P2011−190071)
【出願日】平成23年8月31日(2011.8.31)
【出願人】(505205731)レノボ・シンガポール・プライベート・リミテッド (292)
【復代理人】
【識別番号】100106699
【弁理士】
【氏名又は名称】渡部 弘道
【復代理人】
【識別番号】100077584
【弁理士】
【氏名又は名称】守谷 一雄
【Fターム(参考)】