USB Notes

USB (Universal Serial Bus)
Semnale - USB <= Gen 2
  • VBUS: Alimentare la 5V.

  • D-: Semnal de date.

  • D+: Semnal de date.

  • GND: Împământarea.

  • D+ și D- formează un canal diferențial.

Semnale - USB 3.0, 3.1
  • VBUS: Alimentare la 5V.

  • D-, D+: Semnale de date (compatibilitate cu versiunile anterioare).

  • SSRX-, SSRX+: Super Speed Receiver.

  • SSTX-, SSTX+: Super Speed Transmitter.

Semnale - USB >= 3.2
  • VBUS: Alimentare la 5V.

  • D-, D+: Date, compatibil cu versiunile <= 2.

  • SSRX1, SSTX1: Receiver și Transmitter, compatibil cu versiunile <= 3.1.

  • SSRX2, SSTX2: Receiver și Transmitter.

  • CC (x2): Configuration Channel, pentru detectarea sensului.

  • SBU (x2): Sideband Use.

    • Pentru 3.2: semnal definit de utilizator.

    • Pentru 4: semnal suplimentar de configurație.

  • Toate canalele de date sunt diferențiale.

Protocol - Nivele Electrice
  • Nivel Logic +: Alternativ J, 5V corespunde cu 1 logic, 0V.

  • Nivel Logic -: Alternativ K, 0V corespunde cu 0 logic, 5V.

Protocol - Generalități
  • Linii diferențiale și cabluri torsadate.

  • Datele sunt codate cu NRZI: când se schimbă bitul, se neagă linia.

  • În starea IDL (Idle), linia stă în 1 logic.

Protocol - Pachete
  • 4 tipuri de pachete:

    • Token: Configurează o tranzacție (scriere/citire).

    • Data: Canal prin care se transmit date.

    • Handshake: Confirmă primirea datelor sau semnalează erori.

    • Start of Frame (SOF): Împarte magistrala în segmente de timp.

Protocol - Structura Frame
  • Frame

    • SOF

    • Transaction

      • SYNC

      • TOKEN PACKET

      • EOP

    • Transaction

      • SYNC

      • DATA PACKET

      • EOP

    • SYNC

    • HANDSHAKE PACKET

    • EOP

Protocol - Câmpuri Comune ale Pachetului
  • SYNC: Secvență de 8 biți (01010101) pentru stabilirea frecvenței de transmitere.

  • Packet Identifier (PID): 8 biți care definesc tipul mesajului și modul în care se interpretează.

  • Address: 7 biți care identifică perifericul cu care se va vorbi; adresa 0 este pentru perifericele nealocate.

  • Data field: Date, între 0 și 8192 de biți, multiplu de byte.

  • CRC: 5/16 biți pentru detecția erorilor.

  • End of Packet (EOP): 3 biți; în timpul primelor 2 tacte, ambele semnale sunt în 0V, urmate de un tact în 1 logic.

  • Endpoint: 4 biți care conțin informații de rutare.

Protocol - Token Packet
  • PID: 8 bits

  • ADDR: 7 bits

  • ENDP: 4 bits

  • CRC5: 5 bits

Protocol - SOF Packet
  • PID: 8 bits

  • Frame Number: 11 bits

  • CRC5: 5 bits

Protocol - Data Packet
  • PID: 8 bits

  • DATA: 0-1023 bytes

  • CRC16: 16 bits

Protocol - Handshake Packet
  • PID: 8 bits

Protocol - Tranzacții
  • Control: Pentru a trimite, configura sau interoga perifericele.

  • Interrupt Transfer: Folosit pentru a transmite pachete mici de date cu latență mică.

  • Bulk Transfer: Folosit pentru transferuri mari de date; folosește toată lățimea de bandă disponibilă.

  • Isocronous Transfer: Transferuri de date cu rată de transfer garantată, fără CRC.

Topologie
  • 3 elemente: Rădăcină (calculatorul), Hub (extindere porturi), Periferic (comunică prin USB).

Niveluri topologie
  • Host Controller

  • Tier 1 to Tier 7: Hubs and Devices

Conectori
  • USB 1.0, 2.0: A, B, Mini-A, Mini-B, Micro-A, Micro-B

  • USB 3.0, 3.1: A, B, Micro-A, Micro-B, C

Conectori - Tipul C (3.2 și 4.0)
  • A1-A12 & B1-B12 Pinout:

    • A1, B1: GND

    • A2, B2: TX1+, RX1+

    • A3, B3: TX1-, RX1-

    • A4, B4: VBUS

    • A5, B5: CC1, SBU2

    • A6, B6: D+

    • A7, B7: D-

    • A8, B8: SBU1, CC2

    • A9, B9: VBUS

    • A10, B10: RX2-, TX2-

    • A11, B11: RX2+, TX2+

    • A12, B12: GND

Conectori - Standard A & B
  • Standard A: + D- D+

  • Standard B: + D- D+

Limitări - Lățimea de Bandă
  • 1.0, 1996: 1.5Mbps

  • 1.1, 1998: 12Mbps

  • 2.0, 200: 480Mbps

  • 3.0, 2008: 5Gbps

  • 4.1, 2013: 10Gbps

  • 5.2, 2017: 20Gbps

  • 6.0, 2019: 40Gbps

Limitări
  • Compatibilitatea cu versiunile anterioare (back compatibility).

  • Numărul maxim de periferice: maxim 127 (7 biți adresă, adresa 0 ocupată).