Gesloten . Deze vraag moet meer gericht zijn . Het accepteert momenteel geen antwoorden.

Reacties

  • Heb je gekeken naar de Universal Serial Bus-specificatie , vooral USB hoofdstuk 9? Of lees Jan Axelson ' s USB Complete?
  • Bedankt voor deze bronnen, maar het enige probleem is dat ik nauwelijks iets weet over elektronica, dus de handleiding slaat nergens op me. Ik weet dat het begrijpen van het hele USB-protocol specifieke diepgaande kennis vereist, maar ik heb alleen een snel overzicht nodig. (Deze vraag is niet ' t voor een project. Ik heb het net gevraagd omdat ik was nieuwsgierig)

Antwoord

Ik zal proberen je vragen te beantwoorden zodat je ze hebt voorgesteld (nummering kan helpen).

Er zijn inderdaad vier draden (voorlopig negeert USB3.x). 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 in de elektronica meestal aan dat iets differentieel is. Wat dit betekent dat de 1 “s en 0” s worden aangegeven door de polariteit van de spanning tussen elke kabel. Dit is in tegenstelling tot de single-ended waar de 1 “s en 0” s worden gedragen als een spanning ten opzichte van GND.

Wat bedoel ik met polariteit? Stel je voor dat de D + kabel wordt aangedreven naar \ $ + 3.3 \ m athrm {V} \ $, en de D- wordt naar \ $ 0 \ mathrm {V} \ $ gestuurd. 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 is over het algemeen zo dichtbij dat de twee apparaten synchroon kunnen blijven dankzij synchronisatiepulsen op de datalijnen en het feit dat de gegevens in bursts worden verzonden (wat betekent dat de drift in frequentie niet oploopt over een lange tijd). u per ongeluk bijvoorbeeld een 16 MHz kristal zou gebruiken, zal het apparaat waarschijnlijk niet opsommen.


Hoe weet de meester dat het apparaat stroom nodig heeft? Eenvoudig, alle USB-apparaten mogen een hoeveelheid stroom 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 – waarschijnlijk opnieuw te diepgaand). 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 (bijvoorbeeld voor een apparaat met een hoog vermogen, als het de \ $ 500 \ mathrm {mA} \ $ hoge stroomtoeslag).


Het USB-protocol staat helemaal in de specificaties. Proberen erover te gaan zou waarschijnlijk nog te diepgaand zijn.Maar dat gezegd hebbende, wil je misschien dit antwoord op een andere vraag bekijken die wat details geeft.

Antwoord

USB 1.x (1,5 Mbit / s en 12 Mbit / s) en 2.0 (480 Mbit / s) gebruiken vier draden, V \ $ _ {BUS} \ $ ( +5), D +, D- en GND. De D + en D- vormen een differentieel paar. Er is ook een extensie genaamd OTG (On-The-Go) waarmee een apparaat kan fungeren als een USB-host of apparaat, en dit maakt gebruik van een vijfde ID-lead die we kunnen negeren.

Als de de maximale snelheid van elk van de host en het apparaat is verschillend, er vindt een onderhandeling plaats en de hoogste snelheid die beide gemeen hebben, wordt gebruikt.

voer hier een afbeeldingbeschrijving in

Differentiële signalering zorgt voor een hoge mate van ruisimmuniteit. De datasignalen worden positief verzonden op de D + -lijn en negatief op de D-lijn. Aan de ontvangende kant wordt de plus-lead naar de + lead van een comparator gestuurd (die als aftrekker fungeert), en de min-lead wordt naar de – lead van de comparator gestuurd.

voer hier de beschrijving van de afbeelding in

Voor geldige pulsen worden deze twee opgeteld (aangezien de negatief gaande puls naar de – lead van de comparator, voegen ze eraan toe). Maar als er ruis op de lijn wordt geïnduceerd, zal dit in het algemeen zowel de D + als de D-lijnen hetzelfde beïnvloeden, en de comparator zal ze aftrekken.

Het diagram toont gegevens die in slechts één richting gaan. Dat komt omdat USB-signalen half-duplex zijn, de gegevens gaan maar in één richting tegelijk.

USB 3.0 (tot 10 Gbit / s) gebruikt negen draden in plaats van vier en biedt volledige duplexwerking, aangezien er zijn in beide richtingen differentiële paren voor zenden en ontvangen.

Apparaten kunnen tot 100 mA opnemen zonder te “vragen”. Voor USB 1.x en 2.0 kan het apparaat de host vragen om tot 500 mA te leveren. Voor USB 3.0 is dit verhoogd naar 900 mA. Er is een apart protocol dat wordt gebruikt voor het opladen van de batterij (geen gegevensuitwisseling); dit kan in sommige gevallen oplopen tot 5A.

Reacties

Antwoord

USB maakt gebruik van differentiële signalering om interferentie te verminderen en snelle verzending over een lange afstand mogelijk te maken. Een differentiële bus is opgebouwd uit twee draden, een ervan vertegenwoordigt de verzonden gegevens en de andere is een aanvulling. Het idee is dat de gemiddelde spanning op de draden geen informatie bevat, wat resulteert in minder interferentie. De meeste moderne seriële bussen (USB, Ethernet, PCIe, SATA, enz.) zijn differentieel aangezien de kosten van de extra draden ruimschoots opwegen tegen de voordelen van ruisonderdrukking. USB 2 is ook wat wordt genoemd “half duplex”. Dit betekent dat alleen de link werkt op elk moment in één richting. Stel dat je computer een bericht naar je muis kan sturen. Of je muis kan een bericht naar je computer sturen. Maar niet beide tegelijk. De bus moet elke keer omgedraaid worden. tijdgegevens moeten in de andere richting worden verzonden.

Wat het klokken betreft, maakt USB gebruik van apparaten die serializers en deserializers worden genoemd. De serialisator is verantwoordelijk voor het genereren van de seriële gegevens aan de zendzijde en de deserialisator is verantwoordelijk voor het herstellen van de bits aan de andere kant en d. Een deel van de taak van de serialisator is het coderen van de gegevens op een manier die gemakkelijk te decoderen is door framing- en synchronisatie-informatie op te nemen. Een deel van de taak van de deserializer is om het kloksignaal te herstellen. USB gebruikt een codering genaamd NRZI, oftewel niet-terugkeer-naar-nul omgekeerd. In NRZI wordt logische 0 weergegeven door een overgang en wordt logische 1 weergegeven door geen overgang. USB gebruikt bit-stuffing om de lengte van opeenvolgende enen die over de draad worden verzonden te beperken. Het resultaat hiervan betekent dat er vaak genoeg overgangen zijn om alle bits terug te krijgen, zelfs als de klokken op de zender en ontvanger niet precies even snel tikken. Ze moeten echter relatief dichtbij zijn. Er zijn ook expliciete synchronisatiesequenties die samen met de gegevens worden verzonden.

Wat stroom betreft, mag het apparaat een bepaalde hoeveelheid stroom afnemen zonder de host te vragen. Om meer te tekenen, is het nodig om te onderhandelen om ervoor te zorgen dat de host niet overbelast raakt. Het apparaat moet wachten tot het toestemming krijgt voordat het meer stroom kan trekken.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *