質問を提案するために、質問に答えようとします(番号付け
確かに4本のワイヤーがあります(現時点ではUSB3.xを無視します)。2本は実際に電源用(+ 5VとGND)、2本は信号用(D +とD-)です。
信号線について注意すべき重要なことは、その名前です。+と-(PとNまたはPとMの場合もあります)に注意してください。これらは通常、電子機器で何かが異なることを示します。つまり、1 “と0″は、各ケーブル間の電圧の極性で示されます。これは、1 “と0″が1として運ばれるシングルエンドとは対照的です。 GNDを基準にした電圧。
極性とはどういう意味ですか?D +ケーブルが\ $ + 3.3 \ mに駆動されていると想像してみてください。 athrm {V} \ $であり、D-は\ $ 0 \ mathrm {V} \ $に駆動されます。 2つの違いは\ $ V_ {D +} –V_ {D-} = 3.3-0 = 3.3 \ mathrm {V} \ $です。代わりに、D +ケーブルが\ $ 0 \ mathrm {V} \ $に駆動され、D-が\ $ + 3.3 \ mathrm {V} \ $に駆動された場合、差は\ $ V_ {D +} –V_ {D-になります。 } = 0-3.3 = -3.3 \ mathrm {V} \ $。反対の極性を示すマイナス記号に注意してください。
これが機能するためには、データを転送するために2本のデータケーブルが互いに補完し合う必要があります(一方が高い場合、もう一方が低い場合)。同じ周波数で動作する必要があります。なぜわざわざケーブルを1本使用するのかと思うかもしれません。問題は、世界はかなり騒がしい場所であり、シングルエンド(コモンモード)ワイヤは、高速(過酷な環境での低速でも)でデータを破壊する(1 a 0にする)ノイズが非常に発生しやすいことです。差動信号では、両方のケーブルが同じノイズにさらされるため、キャンセルされます!
簡単な例。送信している信号が\ $ 2 \ mathrm {V} \ $または\ $ 0 \ mathrm {V} \ $であるとします。また、各ワイヤで\ $ 1 \ mathrm {V} \ $のノイズが発生するとします(非現実的ですが、例です)。シングルエンドの場合、受信機での信号は、明らかに論理1である\ $ 2 + 1 = 3 \ mathrm {V} \ $、または\ $ 0 + 1 = 1 \ mathrm {V} \ $のいずれかになります。それが何だったのか分かりません。ただし、差動の場合、受信機での信号は\ $(2 + 1)-(0 + 1)= 2 \ mathrm {V} \ $または\ $(0 + 1)-(2 + 1)=-のいずれかになります。 2 \ mathrm {V} \ $は、どちらもノイズがまったくない場合と同じです!
2本のワイヤーを使用することには他にも利点があります。データを送信しない場合、USB仕様は2本のワイヤーを独立して制御信号に使用します。同期信号、リセットコマンドなど。これらは、おそらく深すぎるさまざまなトリックによってデータパケットと明確に区別できます(コメントに記載されているUSB仕様にすべて含まれます)。
USBでは、両方のデバイスが同じ周波数である必要があります。これは通常12MHzの倍数です。そのため、USBデバイスは48MHzや12MHzなどのクロック周波数で動作します。これらの周波数は通常約20ppm(12MHz水晶の場合は240Hz)の精度の水晶基準によって生成されます。 )。これは一般に、データラインの同期パルスとデータがバーストで送信されるという事実(周波数のドリフトが長時間にわたって加算されないことを意味します)により、2つのデバイスが同期を維持できるほど十分に近いです。たとえば、誤って16MHzの水晶を使用した場合、デバイスはおそらく列挙に失敗します。
マスターはデバイスに電力が必要であることをどのように認識しますか?シンプルで、すべてのUSBデバイスは電力を消費できます。それを要求せずに電流の量-私が覚えている限り、最大\ $ 100 \ mathrm {mA} \ $これは、デバイスに電源を入れ、その存在を主張するのに十分な電力を与えます(D +ラインのプルアップ抵抗で-おそらく再びマスターはデバイスを認識すると、そのデバイスに電力許容量を割り当て、さらに必要かどうかを尋ねます(たとえば、高電力デバイスの場合、\ $ 500 \ mathrm {mA} \ $が必要な場合)。高電流許容値)。
USBプロトコルはすべて仕様に含まれています。やり直そうとすると、おそらくまだ深すぎます。ただし、この回答を確認して詳細を説明する別の質問に回答することをお勧めします。
USB 1.x(1.5 Mbit / sおよび12Mbit / s)および2.0(480 Mbit / s)は、4本のワイヤーV \ $ _ {BUS} \ $( +5)、D +、D-およびGND。 D +とD-は差動ペアを形成します。 OTG(On-The-Go)と呼ばれる拡張機能もあり、デバイスをUSBホストまたはデバイスとして機能させることができます。これにより、無視できる5番目のIDリードが使用されます。
ホストとデバイスのそれぞれの最大レートが異なり、ネゴシエーションが行われ、両方に共通の最高速度が使用されます。
差分シグナリングは高度なノイズ耐性。データ信号は、D +ラインでは正、D-ラインでは負に送信されます。受信側では、プラスリードがコンパレータの+リード(減算器として機能)に送られ、マイナスリードがコンパレータの-リードに送られます。
有効なパルスの場合、これら2つが加算されます(負方向のパルスがに送信されたため) -コンパレータのリード、彼らは追加します)。ただし、ノイズがラインに誘導されると、一般にD +ラインとD-ラインの両方に同じ影響があり、コンパレータはそれらを差し引きます。
この図は、一方向にのみ進むデータを示しています。これは、USB信号が半二重であるため、データは一度に一方向にしか送られません。
USB 3.0(最大10 Gbit / s)は、4本ではなく9本のワイヤーを使用し、全二重動作を提供します。送信と受信にはそれぞれの方法で差動ペアがあります。
デバイスは「尋ねる」ことなく最大100mAを引き出すことができます。 USB 1.xおよび2.0の場合、デバイスはホストに最大500mAを供給するように要求できます。 USB 3.0の場合、これは900mAに増加しました。バッテリーの充電に使用される別のプロトコルがあります(データ交換なし)。場合によっては5Aに達することもあります。
コメント
USBは、差動信号を使用して干渉を減らし、長距離での高速伝送を可能にします。差動バスは2本のワイヤーで構成されており、1本は送信データを表し、もう1本はそれを補完します。ワイヤーの「平均」電圧は情報を伝達しないため、干渉が少なくなります。最新のシリアルバス(USB、イーサネット、PCIe、SATAなど)は、余分なワイヤのコストがノイズ低減の利点によってはるかに上回っているため、差動です。USB2は、いわゆる「ハーフデュプレックス」でもあります。これは、リンクのみを意味します。たとえば、コンピュータはマウスにメッセージを送信できます。または、マウスはコンピュータにメッセージを送信できます。ただし、両方を同時に送信することはできません。バスはそれぞれ「方向転換」する必要があります。時間データは他の方向に送信する必要があります。
クロッキングに関する限り、USBはシリアライザーおよびデシリアライザーと呼ばれるデバイスを利用します。シリアライザーは送信側でシリアルデータを生成し、デシリアライザーはデシリアライザーを生成します。他のenのビットを回復する責任がありますd。シリアライザーの仕事の一部は、フレーミングと同期の情報を含めることで簡単にデコードできるようにデータをエンコードすることです。デシリアライザーの仕事の一部は、クロック信号を回復することです。 USBは、NRZI、または非ゼロ復帰反転と呼ばれるエンコーディングを使用します。 NRZIでは、論理0は遷移で表され、論理1は遷移なしで表されます。 USBはビットスタッフィングを使用して、ワイヤを介して送信される連続する1の長さを制限します。この結果は、送信機と受信機のクロックがまったく同じレートで刻々と変化しなくても、すべてのビットを回復するのに十分な頻度で遷移があることを意味します。ただし、それらは比較的近くにある必要があります。データとともに送信される明示的な同期シーケンスもあります。
電力に関する限り、デバイスはホストに問い合わせることなく一定量の電力を引き出すことができます。それ以上を描画するには、ホストが過負荷にならないようにネゴシエートする必要があります。デバイスは、許可を得るまで待ってから、より多くの電流を引き出す必要があります。