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ă).