Ik zal proberen uw vragen te beantwoorden zodat u ze heeft voorgesteld (nummering kan helpen).
Er zijn inderdaad vier draden (USB3.x wordt momenteel genegeerd). Twee inderdaad voor stroom (+ 5V en GND), en twee voor signalering (D + en D-).
Het belangrijkste om op te merken over de signaaldraden is hun naam, let op de + en - (soms ook P en N of P en M). Deze geven meestal in elektronica aan dat iets differentieel is. Dit betekent dat de enen en nullen worden aangegeven door de polariteit van de spanning tussen elke kabel. Dit is in tegenstelling tot single-ended waar de enen en nullen worden gedragen als een spanning ten opzichte van GND.
Wat bedoel ik met polariteit? Stel je voor dat de D + kabel naar \ $ + 3.3 \ mathrm {V} \ $ wordt gestuurd, en de D- naar \ $ 0 \ mathrm {V} \ $. Het verschil tussen de twee is \ $ V_ {D +} - V_ {D-} = 3.3 - 0 = 3.3 \ mathrm {V} \ $. Als in plaats daarvan de D + kabel naar \ $ 0 \ mathrm {V} \ $ en de D- naar \ $ + 3.3 \ mathrm {V} \ $ werd gestuurd, wordt het verschil \ $ V_ {D +} - V_ {D- } = 0 - 3.3 = -3.3 \ mathrm {V} \ $. Let op het minteken dat de tegenovergestelde polariteit aangeeft.
Om dit te laten werken, moeten de twee datakabels elkaar aanvullen (wanneer de ene hoog is, is de andere laag) om gegevens over te dragen, dus moet op dezelfde frequentie werken. U denkt misschien waarom u zich druk maakt, gebruik gewoon één kabel. Het punt is dat de wereld een nogal luidruchtige plaats is, een draad met één uiteinde (common mode) is erg gevoelig voor ruis die bij hoge snelheden (zelfs bij lage snelheden in ruwe omgevingen) de gegevens kan beschadigen (maak een 1 a 0). Bij differentiële signalering worden beide kabels blootgesteld aan dezelfde ruis, dus deze wordt uitgeschakeld!
Een snel voorbeeld. Stel dat het signaal dat u verzendt \ $ 2 \ mathrm {V} \ $ of \ $ 0 \ mathrm {V} \ $ is. Laten we ook zeggen dat je op elke draad \ $ 1 \ mathrm {V} \ $ ruis krijgt (onrealistisch, maar een voorbeeld). Voor single-ended zijn uw signalen bij de ontvanger ofwel \ $ 2 + 1 = 3 \ mathrm {V} \ $, wat duidelijk een logische 1 is, of \ $ 0 + 1 = 1 \ mathrm {V} \ $ op welk punt u heb geen idee wat het was. Voor differentiaal zijn uw signalen bij de ontvanger echter \ $ (2 + 1) - (0 + 1) = 2 \ mathrm {V} \ $ of \ $ (0 + 1) - (2 + 1) = - 2 \ mathrm {V} \ $ die allebei hetzelfde zijn alsof er helemaal geen ruis was!
Er zijn andere voordelen aan het hebben van twee draden. Wanneer geen gegevens worden verzonden, gebruikt de USB-specificatie de twee draden onafhankelijk van elkaar voor besturingssignalen, bijv. een synchronisatiesignaal, een resetcommando, enz. Deze kunnen duidelijk worden onderscheiden van datapakketten door verschillende trucs die waarschijnlijk te diepgaand zijn (het zal allemaal in de USB-specificatie staan die in de opmerkingen wordt genoemd).
Bij USB moeten beide apparaten dezelfde frequentie hebben. Dit is meestal een veelvoud van 12 MHz - daarom zult u zien dat USB-apparaten werken op klokfrequenties zoals 48 MHz of 12 MHz, enz. Deze frequenties worden gegenereerd door een kristalreferentie die doorgaans nauwkeurig is tot ongeveer 20 ppm (240 Hz voor een 12 MHz-kristal). ). Dit komt over het algemeen zo dichtbij dat, dankzij synchronisatiepulsen op de datalijnen en het feit dat gegevens in bursts worden verzonden (wat betekent dat drift in frequentie niet over een lange tijd wordt opgeteld), de twee apparaten synchroon kunnen blijven. Als u per ongeluk bijvoorbeeld een 16MHz-kristal gebruikt, zal het apparaat waarschijnlijk niet opsommen.
Hoe weet de meester dat het apparaat stroom nodig heeft? Simpel: alle USB-apparaten mogen een hoeveelheid stroom trekken zonder erom te vragen - tot \ $ 100 \ mathrm {mA} \ $ voor zover ik me herinner. Dit geeft het apparaat voldoende vermogen om in te schakelen, zijn aanwezigheid te bevestigen (met een pull-up-weerstand op de D + -lijn - opnieuw waarschijnlijk te diep). Zodra de master op de hoogte is van het apparaat, wijst het een stroomtoeslag toe aan dat apparaat en vraagt of het meer nodig heeft (bijv. Voor een apparaat met een hoog vermogen, als het de \ $ 500 \ mathrm {mA} \ $ hoge stroomtoeslag wil).
Het USB-protocol staat allemaal in de specificaties. Proberen eroverheen te gaan, zou waarschijnlijk nog te diepgaand zijn. Maar dat gezegd hebbende, wil je misschien eens kijken naar dit antwoord op een andere vraag die wat details geeft.