(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
本開示は、ユニバーサルシリアルバス(USB)チャネルを介して別のUSBデバイスと通信する(例えば、データがUSBバス上を介して通信される)所与のUSBデバイスを含み得るシステムに関連する。このシステムは、High−Speed USBプロトコルなど、USBチャネルで伝搬されるデータ信号の所定のプロトコルレベルモードを検出するように構成される状態機械を含む信号コンディショナーを含み得る。信号コンディショナーはまた、所定のプロトコルレベルモードの検出に応答してUSBチャネルでのデータ信号の立ち上がりエッジ及び/又は立ち下がりエッジに電流を注入するように構成されるリ・ドライバを含み得る。このようにして、このシステムは、データ信号をブーストし得、それにより、USBリピータ及び/又はハブとは対照的に、遅延及び/又は不要なノイズを誘導することなく所与の及び他のUSBデバイスとの間の最大物理的距離を増大させ得る。このシステムはまた、データ信号が損失を克服し、それにより結果のブーストされたデータ信号がUSB仕様に準拠することを確実にするように、データ信号をブーストすることもできる。多くの事例において、データ信号のこのようなブーストなしに、データ信号がUSB仕様に準拠することはできない。
【0016】
図1は、信号コンディショナー6に結合される双方向シリアル通信チャネル4を備えたシステム2の一例を図示する。双方向シリアル通信チャネル4は、例えばUSBチャネルとして実装され得るが、他のシリアル通信チャネルが代替として用いられてもよい。
【0017】
双方向シリアル通信チャネル4を実装するため、第1の双方向シリアルバスドライバ8が、第2の双方向シリアルバスドライバ10と通信し得る。第1の双方向シリアルバスドライバ8及び第2の双方向シリアルバスドライバ10は各々、例えばUSBポートとして実装され得る。説明を簡潔にするため、ここで説明される例は、第1の双方向シリアルバスドライバ8及び第2の双方向シリアルバスドライバ10がUSBポートであると想定する。このような状況において、第1及び第2の双方向シリアルバスドライバ8及び10は、複数の異なるプロトコルレベルモードの1つで通信し得る。例えば、第1及び第2の双方向シリアルバスドライバ8及び10は、毎秒1.5メガビット(Mb/s)までのデータレートで「Low Speed」(USB 1.0規格により定義される)、12 Mb/sまでのデータレートで「Full Speed」(USB 1.0規格により定義される)、480 Mb/sまでのデータレートで「High−Speed」(USB 2.0規格により定義される)又は毎秒5ギガビット(Gb/s)までのデータレートで「SuperSpeed」接続(USB 3.0規格により定義される)のHigh−Speedコンポーネントの接続など、標準のUSB接続と通信し得る。このような状況において、SuperSpeedシグナリングは、SuperSpeed接続のHigh−Speedコンポーネントとは別個の信号線を介して並列して動作する。付加的に又は代替として、第1の双方向シリアルバスドライバ8及び第2の双方向シリアルバスドライバ10は、「USB On−The−Go」又は「Battery Charging」などの規格を介して通信し得る。
【0018】
信号コンディショナー6は、双方向シリアル通信チャネル4のエンドポイント(例えば、USBポート)において又はその近くで、又は第1の双方向シリアルバスドライバ8と第2の双方向シリアルバスドライバ10との間の任意の位置(例えば、ケーブルの中間)において、双方向シリアル通信チャネル4に結合され得る。
【0019】
信号コンディショナー6は、双方向シリアル通信チャネル4において用いられるプロトコルレベルモードを検出し得る状態機械12を含み得る。本明細書において用いられるように、「プロトコルレベルモード」という用語は、前述のLow Speed、Full Speed、High−Speed、SuperSpeed、USB On−The−Go、又はBattery Chargingプロトコルレベルモードなど、通信プロトコル及びデータ速度を示し得る。状態機械12は、例えば、ハードウェアデバイス、ファームウェアデバイス、又はそれらの組み合わせとして実装され得る。例えば、幾つかの例において、状態機械12は、印刷回路、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)などして実装され得る。他の例において、状態機械12は、非一時的(non−transistory)コンピュータ可読メモリにおいてプログラムされた機械可読命令を有するマイクロコントローラなどのファームウェアと共に実装され得る。
【0020】
状態機械12は、第1の双方向シリアルバスドライバ8と第2の双方向シリアルバスドライバ10との間で伝搬する信号の所定のプロトコルレベルモードを検出することに応答して信号コンディショナー6のリ・ドライバ14をアクティブにするようにプログラムされ得、この信号は、データ信号と呼ばれ得る。データ信号は、第1の双方向シリアルバスドライバ8と第2の双方向シリアルバスドライバ10との間で伝送される、データを封止する複数のパケットを特徴付け得る。幾つかの例において、所定のプロトコルレベルモードは、Full Speed又はHigh−Speedモードであり得る。双方向シリアル通信チャネル4がUSB規格に準拠しない状況などの他の例において、所定のプロトコルレベルモードは異なり得る。状態機械12は、双方向シリアル通信チャネル4で伝送されるパケットのデータを状態機械12が分析する必要がなくなるように、データ信号の波形を分析することにより所定のプロトコルレベルモードを検出し得る。
【0021】
リ・ドライバ14は電流インジェクタとして実装され得る。また、リ・ドライバ14は、例えば、ハードウェア、ファームウェア、又はそれらの組み合わせとして実装され得る。リ・ドライバ14は、データ信号に電流を注入するように構成され得る。電流を注入するため、リ・ドライバ14は、データ信号の立ち上がりエッジ又は立ち下がりエッジを検出し得るエッジ検出器16を含み得る。リ・ドライバ14は、エッジ検出器が、それぞれ、所定の最大立ち上がり時間(例えば、約100ピコ秒)及び所定の最大立ち下がり時間(例えば、約100ピコ秒)より長い立ち上がり又は立ち下がり時間を検出することに応答して、立ち上がり及び/又は立ち下がりエッジに電流を注入することができる。このような注入は、データ信号の立ち上がり及び/又は立ち下り時間を短くし得る。リ・ドライバ14は、双方向シリアル通信チャネル4を介して伝送されるパケット内のデータが分析される必要がなくなるように、信号シェーピングコンポーネントとして動作し得る。
【0022】
システム2は、双方向シリアル通信チャネル4において所定のプロトコルレベルモードを検出することに応答してのみ状態機械12がリ・ドライバ14をアクティブにするように実装され得る。従って、リ・ドライバ14は、低速通信(例えば、Low Speed、Full Speed、Battery Charging等)と干渉しない。例えば、このような低速通信の間、状態機械12はリ・ドライバ14をディセーブルし得る。
【0023】
本明細書において説明するように、状態機械12は、どのプロトコルレベルモードが双方向通信チャネル4で用いられているかを判定するためにデータライン上のデータ信号を所定の電圧レベルと比較するため、双方向シリアル通信チャネル4のデータライン(例えば、USB接続のD+及びD−ライン)上の幾つかのシングルエンド及び/又は差動信号コンパレータ(例えば、アナログフロントエンド)を用い得る。リ・ドライバ14をイネーブル又はディセーブルするためにこのような判定が用いられ得る。また、エッジ検出器16は、正電流注入がデータ信号の立ち上がりエッジにおいて必要とされるかを判定するため、及び負電流がデータ信号の立ち下がりエッジにおいて必要とされるかを判定するため、データライン上のデータ信号を監視し得る。多くの状況において、電流注入が継続するので、データ信号への負及び/又は正電流の注入(例えば、ブースト)がもはや必要とされないように、データ信号の立ち上がり及び立ち下がり時間が低減される。
【0024】
システム2の利用は、第1の双方向シリアルバスドライバ8と第2の双方向シリアルバスドライバ10との間の最大物理的距離を増大し得る。例えば、多くの従来のUSB 2.0接続では、USBポートは5メートルのみの距離、離されなければならならず、実際、USB 3.0ポートは3メートルのみの距離、離されなければならない。また、従来のUSB接続の距離を伸ばすため、最大5つのUSBリピータ及び/又はハブが含まれ得る。このシステム2の利用により、第1の双方向シリアルバスドライバ8と第2の双方向シリアルバスドライバ10との間の距離は約10メートルまでとし得る。また、信号コンディショナー6は信号シェーピングコンポーネントとして動作するため、信号コンディショナー6は、双方向シリアル通信チャネル4で通信されるパケットのデータを分析する必要はない。従って、第1の双方向シリアルバスドライバ8と第2の双方向シリアルバスドライバ10との間に挿入され得る信号コンディショナー6の数に対する理論的限界はない。そのため、第1の双方向シリアルバスドライバ8と第2の双方向シリアルバスドライバ10との間に複数の信号コンディショナー6を挿入することにより、10メートルより更に長い距離が達成され得る。実際、第1の双方向シリアルバスドライバ8と第2の双方向シリアルバスドライバ10との間に複数の信号コンディショナー6が挿入される場合、第1の双方向シリアルバスドライバ8と第2の双方向シリアルバスドライバ10との間の最大距離に対する理論的限界はない。
【0025】
また、信号コンディショナー6は、データ信号が進む方向について不可知である。つまり、信号コンディショナー6は、第1の双方向シリアルバスドライバ8から第2の双方向シリアルバスドライバ10へ伝搬する信号、又は第2の双方向シリアルバスドライバ8から第1の双方向シリアルバスドライバ10へ伝搬する信号をブーストし得る。
【0026】
図2は、USBチャネル52に結合される信号コンディショナー50の一例を図示する。USBチャネル52は、USBホスト54とUSBデバイス56との間の通信を促進し得る。USBホスト54及びUSBデバイス56は、USB 1.0、2.0(USB On−The−Goを含む)、又は3.0規格に準拠するUSBポートを含み得る。USBホスト54はUSBコントローラを含み得、USBデバイス56はスレーブUSBデバイスとし得る。また、幾つかの例において、「ホスト」の役割をアサインされたUSBデバイスは、USB On−The−Goプロトコルレベルモードを用いることによるなど、動的に変更し得る。
【0027】
信号コンディショナー50は、USBポートにおける又はUSBポートの近くを含む、USBチャネル52上の任意の場所に物理的に置かれ得る。また、幾つかの例において、USBホスト54とUSBデバイス56との間に複数の信号コンディショナー50が置かれ得る。データ信号と呼ばれ得る、USBチャネル52を介して伝搬する信号が、信号コンディショナー50の状態機械58により検出され得る。データ信号は、USBポートのD+及びD−ラインなど、ラインのツイストペアで伝搬する信号であり得る。また、データ信号は、USBホスト54とUSBデバイス56との間のデータのパケットを提供する複数の信号を表し得る。
【0028】
信号コンディショナー50は、
図1に示す状態機械12及びリ・ドライバ14などの、状態機械58及びリ・ドライバ60を含み得る。幾つかの例において、状態機械58及びリ・ドライバ60は、単一の集積回路(IC)チップ上で実装され得る。他の例において、状態機械58及びリ・ドライバ60は、別個のICチップ上で実装され得る。状態機械58は、データ信号が、USB 2.0又は3.0規格に準拠するHigh−Speedプロトコルなど、所定のプロトコルレベルモードであるかを検出することができる。所定のプロトコルレベルモードを検出すると、状態機械58はリ・ドライバ60をアクティブにし得る。
【0029】
リ・ドライバ60は電流インジェクタとして実装され得る。リ・ドライバ60はデータ信号を受け取り得る。リ・ドライバ60のエッジ検出器62が、データ信号の立ち上がりエッジを検出し得る立ち上がりエッジ検出器64を含み得る。また、エッジ検出器62は、データ信号の立ち下がりエッジを検出し得る立ち下がりエッジ検出器66を含み得る。
【0030】
立ち上がりエッジ検出器64は、データ信号の立ち上がりエッジが、おおよその所定の最大立ち上がり時間(例えば、約100ピコ秒(ps))又はそれより長い立ち上がり時間を有する場合、立ち上がりエッジ検出器64が、正電流ブースタ68(
図2において「+I BOOST」として示される)をアクティブにし得るように構成され得る。正電流ブースタ68は、USBチャネル52に、データ信号の立ち上がりエッジの立ち上がり時間を低減(例えば、立ち上がりレートを増大)し得る正電流を注入することができる。データ信号が、おおよその所定の最大立ち上がり時間より短い立ち上がり時間を有する場合、正電流ブースタ68はアクティブにされない可能性がある。
【0031】
立ち下がりエッジ検出器66は、データ信号の立ち下がりエッジが、おおよその所定の最大立ち下がり時間(例えば約100 ps)又はそれより長い立ち下がりエッジ検出器66の立ち下がり時間を有する場合、負電流ブースタ70(
図2において「−I BOOST」として示される)をアクティブにし得るように構成され得る。負電流ブースタ70は、USBチャネル52に、データ信号の立ち下がりエッジの立ち下がり時間を低減(例えば、立ち下がりレートを増大)し得る負電流を注入することができる。データ信号が、おおよその所定の最大立ち下がり時間より短い立ち下がり時間を有する場合、負電流ブースタ70はアクティブにされない可能性がある。
【0032】
信号コンディショナー50の利用により、USBホスト54とUSBデバイス56との間のUSB通信がエンハンスされ得る。特に、USBホスト54とUSBデバイス56との間の物理的距離は、約10 m又はそれ以上まで増大され得る。また、状態機械58は、所定のプロトコルレベルモードが検出されるときのみリ・ドライバ60をアクティブにするので、Low−Speed、Full Speed、又はBattery Chargingなどのプロトコルレベルモードが、信号コンディショナー50により影響されない。また、単一ツイストペア(D+及びD−ライン)におけるデータ信号はHigh−Speed及びSuperSpeed両方に対して同じであるため、信号コンディショナー50は、High−Speed信号(USB 2.0規格)と同じ方式でSuperSpeed信号(USB 3.0規格)をブーストするように動作する。更に、信号コンディショナー50は方向不可知であるため、信号コンディショナー50は、USBホスト54及びUSBデバイス56がUSB On−The−Goを用いてHigh−Speed(又はSuperSpeed)プロトコルレベルモードで動作する場合、データ信号をブーストするよう動作し得る。
【0033】
更に、幾つかの状況において、データ信号は1つの方向のみにブーストされ得る。例えば、信号コンディショナー50がUSBホスト54に比較的近い物理的位置(例えば、USBポート内)に設置される場合、データ信号に含まれるUSBホスト54からUSBデバイス56へ伝搬される信号は、所定の最大立ち上がり及び/又は立ち下り時間より短い立ち上がり及び/又は立ち下り時間を有し得る。同じ例において、USBデバイス56からUSBホスト54へ伝搬される信号は、所定の最大立ち上がり及び/又は立ち下り時間より長い立ち上がり及び/又は立ち下り時間を有し得る。このような状況において、USBホスト54からUSBデバイス56へ伝搬するデータ信号の信号は、そこに電流を注入させない場合がある。また、USBデバイス56からUSBホスト54へ伝搬するデータ信号の信号は、そこに電流を注入させ得る。
【0034】
上述の構造的及び機能的特徴を考慮すると、
図3及び
図8を参照して例示の方法がよりよく分かるであろう。説明を簡潔にするため、
図3及び
図8の例示の方法は順次実行するように示され説明されるが、本例は、図示された順に限定されず、他の例では幾つかのアクションが本明細書に示され記載されたものとは異なる順で及び/又は同時に起こり得ることを理解及び認識されたい。また、方法を実装するために説明されたすべてのアクションが実施されることは必ずしも必要ではない。
図3及び
図8の例示の方法は、非一時的(non−transistory)機械読み取り可能な媒体にストアされる命令として実装され得る。こういった命令は、本明細書に開示する方法を実施するため処理リソース(例えば、プロセッサコア及び/又はマイクロコントローラ)によりアクセスされ得、及び実行され得る。
【0035】
図3は、
図1に示す双方向シリアル通信チャネル4及び/又は
図2に示すUSBチャネル52などの、シリアル通信チャネルを介するデータ信号において用いられるプロトコルを検出するための方法100のフローチャートの一例を図示する。方法100は、例えば、
図1に示す状態機械12及び/又は
図2に示す状態機械58により、実装され得る。説明を簡潔にするため、方法100において、シリアル通信チャネルがUSBチャネルであるであると想定する。
【0036】
110において、USBチャネルは非接続状態にあり得、これは、USBホストからUSBデバイスへ伝送されているデータがないことを示し得る。110において、状態機械110は、シングルエンドゼロ(SE0)状態又はシングルエンド1(SE1)信号がUSBチャネルで検出されるか否かについて判定(例えば、状態チェック)し得る。SE0信号は、約50ミリ秒(ms)又はそれ以上の時間の間、USBチャネルのD+及びD−ラインが低状態にある(例えば、約「0」ボルト)ことにより示され得る。SE1信号は、約50ms又はそれ以上の時間の間、USBチャネルのD+及びD−ラインが高状態であることにより示され得る。110における判定が肯定(例えば、YES)である場合、方法100は110に戻り得る。110における判定が否定(例えば、NO)である場合、方法は120に進み得る。120において、低速(LS)接続(LS J)が検出されるか否かについての判定(例えば、状態チェック)が状態機械により成され得る。例えば、約2.5 μs又はそれ以上の時間の間状態機械がUSBチャネルのD+及びD−ラインにおける低速リンクに対し差動「0」を検出することによって低速接続が検出され得る。120における判定が肯定(例えば、YES)である場合、方法100は130に進み得る。120におけるが否定(例えば、NO)である場合、方法100は140に進み得る。
【0037】
130において、リ・ドライバ(例えば、
図1に示すリ・ドライバ14及び/又は
図2に示すリ・ドライバ60)がアクティブにされる必要がないように、USBチャネルはFull Speed(FS)又は低速(LS)接続状態であり得る。また130において、状態機械は、状態機械が約50ms又はそれより短い間SE0信号を検出するか否かについて判定(例えば、状態チェック)することができる。130における判定が肯定(例えば、YES)である場合、方法は130に戻り得る。130における判定が否定(例えば、NO)である(例えば、約50msより長い間SE0が検出される)場合、方法100は110に戻り得る。
【0038】
140において、USBチャネルはFull−Speed(FS)Jであり得、リセットコンディションを待機する。また、140において、約2.5マイクロ秒以上の時間の間SE0信号が検出されるか否かについて状態機械により判定(例えば、状態チェック)が成され得る。140における判定が肯定(例えば、YES)である場合、方法100は150に進み得る。140における判定が否定(例えば、NO)である場合、方法100は140に戻り得る。150において、USBチャネルはリセットコンディションであり得、状態機械が約10msより短い時間の間SE0信号を検出するか又はDラインでチャープK信号が検出されるかについての判定(例えば、状態チェック)が状態機械により成され得る。チャープK信号は、USBチャネルのDライン上の正電圧信号であり得る。150における判定が肯定(例えば、YES)である場合、方法100は150に戻り得る。150における判定が否定(例えば、NO)である場合、方法は160に進み得る。160において、約10ms又はそれ以上の時間の間スケルチ信号又はSE0信号がUSBチャネルで検出されるか否かについての判定が状態機械により成され得る。スケルチ信号は、USBチャネルのD+及びD−ライン上の約100マイクロボルト(μV)より小さい差を有する差動信号により示され得る。160における判定が肯定(例えば、YES)である場合、方法100は110に戻り得る。160における判定が否定(例えば、NO)である場合、方法100は170に進み得る。
【0039】
170において、Full Speed(FS)接続(FS J)が確立されたか否かについての判定(例えば、状態チェック)が状態機械により成され得る。Full Speed接続は、USBチャネルのD+及びD−において差動「1」を検出することにより示され得る。170における判定が肯定(例えば、YES)である場合、方法100は130に進み得る。170における判定が否定(例えば、NO)場合、方法は180に進み得る。
【0040】
180において、USBチャネルはHigh−Speedリセットコンディション(Reset_HSHS)であり得る。また、180において、チャープKJが状態機械により検出されるか否かについての判定(例えば、状態チェック)が状態機械により成され得る。チャープKJは、USBチャネルのD+及びD−ラインにおけるHigh−Speedハンドシェイク信号であり得る。チャープKJは、USBチャネルのD+及びD−ライン上の交互のK及びJ信号であり得る。180における判定が肯定である場合(これは、High−Speed(HS)ハンドシェイクがまだ成されていることを示し得る)、方法100は180に戻り得る。この判定が否定(例えば、NO)である場合、これは、High−Speed(HS)リセット信号の終わり(例えば、USBチャネルにおけるHigh−Speed(HS)アイドルコンディション)を示し得、方法100は190に進み得る。High−Speed(HS)リセットの終わりは、スケルチ信号により示され得る。190において、状態機械は、本明細書に記載されるような方式でデータ信号がエンハンスされ得るように、リ・ドライバをイネーブルし得る。また、190において、USBチャネル上でSE0信号が検出され、約5ms又はそれ以上の時間の間USBチャネル上のスケルチコンディションがその後続くか否かについての判定(例えば、状態チェック)が状態機械により成され得る。190における判定が否定(例えば、NO)である場合、方法100は190に戻り得る。190における判定が肯定(例えば、YES)である場合、方法100は200に進み得る。
【0041】
200において、High−Speed(HS)コンディションは、約2.5又はそれ以上の期間ディセーブルされる。また200において、状態機械は、SE0信号がUSBチャネルで検出されるか否かについて判定(例えば、状態チェック)し得る。200における判定が肯定(例えば、YES)である場合、方法100は150に戻り得る。200における判定が否定(例えば、NO)である場合、方法100は210に進み得る。
【0042】
210において、USBチャネルはHigh−Speed(HS)Suspendコンディションであり得る。また、210で、状態機械は、約3ms又はそれ以上の時間の間USBチャネルのD+及びD−ライン上でFS J信号が検出されるか否かについて判定(例えば、状態チェック)し得る。210における判定が肯定(例えばYES)である場合、方法は210に戻り得る。210における判定が否定(例えば、NO)である場合、方法は220に進み得る。220において、SE0信号がUSBチャネルで検出されるか否かについての判定(例えば、状態チェック)が状態機械により成され得る。220における判定が肯定(例えば、YES)である場合、方法100は150に戻り得る。220における判定が否定(例えば、NO)である場合、これは、Full−Speed(FS K)信号がUSBチャネルで検出されることを示し得、方法100は230に進み得る。230において、USBチャネルは、High−Speed再開コンディションであり得る。また、230において、状態機械は、約20ms又はそれ以上の時間の間Full Speed(FS K)信号が検出され、その後スケルチ信号が続くか否かについて判定し得る。230における判定が肯定(例えば、YES)である場合、方法100は230に戻り得る。230における判定が否定である場合、方法100は190に戻り得る。
【0043】
方法100の利用により、リ・ドライバは、USBチャネルでHigh−Speedコンディションが検出されるときのみイネーブルされる。High−Speedコンディションは、USB 2.0のHigh−Speedプロトコルレベルモードと、USB 3.0のSuperSpeedプロトコルレベルモードの両方に対して存在し得る。また、Battery Charging、Full Speed、又はLow−Speedプロトコルレベルモードなどの他のプロトコルレベルモードは、リ・ドライバをイネーブルさせない。
【0044】
図4は、例えば
図1に示すリ・ドライバ14として及び/又は
図2に示すリ・ドライバ60として用いられ得るリ・ドライバ300の回路図を図示する。この回路図は、データライン302に適用されるリ・ドライバ300を表し得る。データライン302は、USBチャネルのD+又はD−ラインの所与の一つであり得る。また、同一又は類似の回路図を、USBチャネルのD+又はD−ラインの他方とし得る。
【0045】
USBチャネルは、データライン302を介して第2のUSBドライバ306(
図4において「USBドライバ2」として示される)と通信する第1のUSBドライバ304(
図4において「USBドライバ1」として示される)を含み得る。第1及び第2のUSBドライバ304及び306は、例えば、High−Speed(又はSuperSpeed)接続と通信し得るUSB 2.0又はUSB 3.0ドライバとして実装され得る。
【0046】
第1及び第2のUSBドライバ304及び306の各々は、例えば約5Vの電圧であり得る電源(
図4において「+V」として示される)を含み得る。電源は、第1及び第2のUSBドライバ304及び306の独立の電流源(
図4において「I1」として示される)の負端子に結合され得る。各独立の電流源は、High−Speed(又はSuperSpeed)プロトコルにおいてデータライン302でデータ信号が伝送されるとき約17.8 mAの比較的一定の電流を提供し得る。接地(
図4において「GND」として示される)などの電気的にニュートラルなノードが、第1及び第2のUSBドライバ304及び306の各々のレジスタ(
図4において「R1」として示される)の第1のノードに結合され得る。レジスタR1の第2のノードが、入力/出力(I/O)ノード308に結合され得る。また、第1及び第2のUSBドライバ304及び306の各々の独立の電流源11の正端子も、I/Oノード308に結合され得る。データライン302も、第1及び第2のUSBドライバ304及び306間の双方向通信を確立するために、第1及び第2のUSBドライバ304及び306の各々においてI/Oノード308に結合され得る。
【0047】
リ・ドライバ300はオペアンプ(
図4において「A1」として示される)を含み得、オペアンプA1は、オペアンプA1の非反転入力においてデータライン302に結合され得る。また、オペアンプA1は閾値電圧V
THを受け取り得、閾値電圧V
THは、第1のUSBドライバ304と第2のUSBドライバ306との間で通信するために用いられるプロトコルレベルモードに基づいて変化する。閾値電圧V
THは、例えばアナログフロントエンドとして実装され得る。オペアンプA1の出力が状態機械310に提供され得る。状態機械310は、例えば、
図1に関連して図示した状態機械12及び/又は
図2に関連して図示した状態機械58に類似する方式で実装され得る。状態機械310は、立ち上がりエッジ検出器312及び立ち下がりエッジ検出器314のアクティベーション及びディアクティベーションを制御し得る。立ち上がりエッジ検出器312及び立ち下がりエッジ検出器314は、データライン302に結合され得る。
【0048】
立ち上がりエッジ検出器312は、第1のスイッチ316の制御ノードを駆動するように構成され得る。第1のスイッチ316は、例えば、立ち上がりエッジ検出器312からの信号に応答して閉じる、ノーマリーオープンスイッチであり得る。第1のスイッチ316は、例えば、金属酸化物半導体電界効果トランジスタ(MOSFET)、バイポーラ接合トランジスタ(BJT)、ソリッドステートリレーなどのトランジスタとして実装され得る。第1のスイッチ316の入力が独立の電流源I2の正端子に結合され得る。独立の電流源I2の負端子が電源V+に結合され得る。電流源I2は、内部レジスタの抵抗に基づいて変化し得るプログラマブル電流源とし得る。幾つかの例において、I2は約2 mA〜約6 mAの電流を提供するようにプログラムされ得る。第1のスイッチ316の出力がデータライン302に結合され得る。
【0049】
立ち下がりエッジ検出器314は、第2のスイッチ318の制御ノードを駆動するように構成され得る。第2のスイッチ318は、第1のスイッチ316に類似する方式で構成され得る。第2のスイッチ318の入力が独立の電流源I3の負端子に結合され得る。独立の電流源I3の正端子が、約0V(例えば、接地)の電気的にニュートラルなノードに結合され得る。独立の電流源I3は、内部レジスタの抵抗に基づいて変化し得るプログラマブル電流源とし得る。幾つかの例において、I3は約2 mA〜約6 mAの電流を提供するようにプログラムされ得る。第2のスイッチ318の出力が、第1のスイッチ316の出力に及びデータライン302に結合され得る。幾つかの例において、独立の電流源I2及びI3によって提供される電流は等しくし得、他の例では、独立の電流源I2及びI3によって提供される電流は異なり得る。
【0050】
立ち上がりエッジ検出器312は、第1のUSBドライバ304と第2のUSBドライバ306との間のHigh−Speedプロトコルレベルモードにおいて提供されるデータ信号を検出することに応答してなど、状態機械310によりアクティブにされ得る。アクティベーションの際、立ち上がりエッジ検出器312は、データ信号の検出された立ち上がりエッジが約100 ps又はそれより長い立ち上がり時間を有することに応答して、第1のスイッチ316を閉にし得る。同様の方式で、立ち下がりエッジ検出器314は、第1のUSBドライバ304と第2のUSBドライバ306との間のHigh−Speedプロトコルにおいて提供されるデータ信号を検出することに応答して、状態機械310によりアクティブにされ得る。アクティベーションの際、立ち下がりエッジ検出器314は、データ信号の検出された立ち下がりエッジが約100 psの又はそれより長い立ち下がり時間を有することに応答して、第2のスイッチ318を閉にし得る。そのため、第1のスイッチ316及び第2のスイッチ318の一つまで、所与の時間に閉にされ得る。
【0051】
第1のスイッチ316が閉であり、第2のスイッチ318が開である場合、正ブースト電流I
BOOST+がデータライン302に提供され得る。I
BOOST+はI2とほぼ同等であり得る。同様の方式で、第2のスイッチ318が閉であり、第1のスイッチ316が開である場合、負ブースト電流I
BOOST−がデータライン302に提供され得る。I
BOOST−はI3とほぼ同等であり得る。このようにして、データ信号の立ち上がり及び/又は立ち下り時間が低減され得、それによりデータ信号がエンハンスされる。また、第1のUSBドライバ304と第2のUSBドライバ306との間にHigh−Speedプロトコルデータ信号が供給されないという状況など、第1のスイッチ316も第2のスイッチ318も閉でない場合、ブースト電流は供給されない。
【0052】
図示するように、リ・ドライバ300は方向不可知である。また、独立の電流源I2及びI3がプログラムされ得るため、リ・ドライバ300は、自己制限し、オーバーシュートを避け得る。また、電流源I2及びI3は、例えばリ・ドライバ300の適用環境に基づいて、変化し得るノイズに対して調節するように変更され得る。
【0053】
図5は、時間(ps)の関数として表されるHigh−Speedプロトコルレベルモードにおけるデータ信号の立ち上がりエッジ及び立ち下がりエッジの電圧(mV)を示すグラフ400の一例を図示する。グラフ400は、エンハンスされていないデータ信号の一例の立ち上がりエッジ402及び立ち下がりエッジ404を示す。グラフ400は更に、エンハンスされたデータ信号の立ち上がりエッジ406及び立ち下がりエッジ408を示す。例えば、データ信号のエンハンスされていない立ち上がり及び立ち下がりエッジ402及び404を、
図1又は2に示す信号コンディショナー6又は50などの信号コンディショナーに適用することにより、エンハンスされた立ち上がり及び立ち下がりエッジ408及び410が生成され得る。図示されるように、エンハンスされていない立ち上がり及び立ち下がりエッジ402及び404は、100 psより長い立ち上がり及び立ち下がり時間を有する。反対に、データ信号のエンハンスされた立ち上がり及び立ち下がりエッジ406及び408は、100 psより短い立ち上がり及び立ち下がり時間を有する。また、図示されるように、データ信号のエンハンスされた立ち上がり及び立ち下がりエッジ406及び408は、所望とされないオーバーシュートを避ける。
【0054】
図6は、データ信号をエンハンスするための信号コンディショナー450の別の例を図示する。信号コンディショナー450は、例えば、
図1に示す信号コンディショナー6及び/又は
図2に示す信号コンディショナー50に類似する方式で実装され得る。信号コンディショナー450は、双方向シリアルバス454上のデータ信号の所定のプロトコルレベルモードを検出するように構成される状態機械452を含み得る。信号コンディショナー450は更に、所定のプロトコルレベルモードの検出に応答して双方向シリアルバス454上のデータ信号の立ち上がりエッジ及び立ち下がりエッジの少なくとも1つに電流を注入するように構成されるリ・ドライバ456を含み得る。
【0055】
図7は、USBチャネル506を介して別のUSBデバイス504と通信し得る所与のUSBデバイス502を含み得るシステム500を図示する。システム500は更に信号コンディショナー508を含み得、信号コンディショナー508は、USBチャネルで伝搬されるデータ信号の所定のプロトコルレベルモードを検出するように構成される状態機械510を含み得る。システム500は更に、所定のプロトコルレベルモードの検出に応答してUSBチャネル506上のデータ信号の立ち上がりエッジ及び立ち下がりエッジの少なくとも1つに電流を注入するように構成されるリ・ドライバ512を含み得る。
【0056】
図8は、データ信号をエンハンスするための方法600の一例を図示する。この方法は、例えば、
図1に示す信号コンディショナー6及び/又は
図2に示す信号コンディショナー50により実装され得る。610において、信号コンディショナーの状態機械(例えば、
図1の状態機械12及び/又は
図2の状態機械58)が、USBを介して伝搬されるデータ信号の所定のプロトコルレベルモード(例えば、High−Speed USBプロトコル)を検出することができる。620において、リ・ドライバ(例えば、
図1に示すリ・ドライバ14及び/又は
図2に示すリ・ドライバ60)が、データ信号に電流を注入することができる。例えば、幾つかの事例において、リ・ドライバは、所定の最大立ち上がり時間より長い立ち上がり時間を有するデータ信号の立ち上がりエッジを検出することに応答して正電流をデータ信号に注入し得る。他の例において、リ・ドライバは、所定の最大立ち下がり時間より長い立ち下がり時間を有するデータ信号の立ち下がりエッジを検出することに応答して負電流をデータ信号に注入することができる。幾つかの例において、所定のプロトコルレベルモードが検出されない場合、正電流及び/又は負電流を注入することが状態機械により防止され得る。
【0057】
当業者であれば、本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得ること、及び多くの他の実施例が可能であることが分かるであろう。