Domanda:
Perché USB utilizza solo 2 linee per RX, TX invece di più linee dati?
mhashim6
2018-11-16 18:14:52 UTC
view on stackexchange narkive permalink

Non sarebbe più veloce se ci fossero più linee di dati (diciamo 8) per trasmettere / ricevere dati (diciamo byte sequenziali) invece di usare una singola linea per trasmettere bit sequenziali?

Sarebbe molto più difficile farlo funzionare ad alta velocità utilizzando più fili.C'è una buona ragione dietro questo, ma scrivere una risposta che spieghi perché richiederebbe troppo tempo e probabilmente non sono la persona migliore per spiegarlo.
dupe: [Perché la trasmissione seriale digitale viene utilizzata ovunque?] (https://electronics.stackexchange.com/q/393462/50736)
È così che è configurato USB tipo C.Con più linee dati.
@ratchetfreak Credo che tu non debba nemmeno andare così lontano, USB 3.0 ha 4 linee dati invece di 2.
Sento che molte di queste risposte rispondono come se l'USB avesse 1 cavo di trasmissione e 1 cavo di ricezione, quando invece ha una singola coppia differenziale.Entrambi i lati trasmettono e ricevono sono su quella coppia differenziale.Questo lo distingue almeno da SATA.
Non dovresti fare la differenza tra comunicazione seriale e parallela che ti darà una risposta più semplificata.
Perché è seriale, il che ha senso se l'USB è universale.Funziona a 16, 32, 64 bit ecc.
@PSyLoCKe che non ha nulla a che fare con questo.La dimensione del trasferimento può essere arbitraria anche in un'interfaccia parallela.
Cinque risposte:
Marcus Müller
2018-11-16 18:20:03 UTC
view on stackexchange narkive permalink

Sarebbe davvero più veloce se invece di una riga si inserissero più righe nello stesso simbolo di clock.

Tuttavia, l'obiettivo principale e principale di USB è fornire un'interfaccia seriale semplice (da cui la S in USB) tra dispositivi a basso costo (da cui la U in USB) con cavi leggeri e a basso costo.

Ecco perché l'USB non esegue linee dati parallele: semplicemente non è la nicchia che dovrebbe riempire.

Inoltre, non trascurare che avere più corsie parallele ad alta velocità richiede che il sistema ricetrasmettitore introduca uno sforzo relativamente elevato per compensare diversi disallineamenti su linee diverse, che a velocità elevate sono inevitabili.

Spesso è diventato più economico far funzionare qualcosa a una velocità doppia rispetto alla costruzione di due delle varianti più lente, a meno che tu non stia parlando direttamente con l'hardware che è nel suo principio grezzo bit-parallel (ad es. chip di memoria DDR).

Potresti spiegare come U in USB è correlato ai "dispositivi a basso costo"?
USB = ** bus seriale universale **.Con "universale" si intendeva che fosse progettato per essere il bus a basso costo per tutti i tipi di periferiche per computer a basso costo.
Chris Fernandez
2018-11-16 20:24:54 UTC
view on stackexchange narkive permalink

Uno dei principali ostacoli con qualsiasi tipo di bus parallelo è skew. Se si dispone di 8 fili separati che trasportano tutti i dati, è importante che tutti i bit arrivino all'incirca nello stesso momento. Altrimenti, i bit del Byte A potrebbero confondersi con i bit del Byte B. Ciò significa che la lunghezza di quei fili paralleli deve essere abbinata, entro una certa percentuale della velocità di clock, in modo che il tempo di percorrenza del segnale lungo il filo è approssimativamente lo stesso. Maggiore è la velocità di clock, più stretta è la tolleranza sulla lunghezza tra i fili paralleli.

Su un progetto PCB per qualcosa come una scheda madre, i vincoli di progettazione molto rigidi sono all'ordine del giorno. Le tracce PCB possono raggiungere una corrispondenza della lunghezza di 1 mil o superiore, il che è sufficiente per implementare interfacce parallele ad alta velocità. Un esempio comune di ciò è l ' interfaccia di memoria DDR. Questa interfaccia si basa sulla comunicazione parallela per spostare i dati a velocità molto elevate, ma è possibile implementare queste interfacce internamente (in modo economico).

Immagina di provare a costruire un cavo per computer esterno con oltre 30 connessioni di fili, tutte le lunghezze corrispondenti entro un millesimo di pollice! Quei cavi sarebbero molto costosi rispetto al cablaggio USB.

I computer più vecchi utilizzavano una porta parallela, che aveva 8 linee dati ma poteva raggiungere solo una velocità dati di circa 2,5 MB / s. Confrontalo con i 60 MB / s di USB 2.0, per non parlare delle versioni più recenti di USB.

Puoi effettivamente aggirare questo problema con l'addestramento del collegamento su più corsie e * è fatto * anche su collegamenti tipicamente legati a PCB come PCIe, ma vale davvero la pena farlo solo se ti risparmi un sacco di problemi superando quella quantitàdi guai.
PCIe è in realtà una connessione seriale che utilizza solo una coppia differenziale di linee per Rx e un'altra coppia per Tx.Le linee multiple * PCIe * non sono * linee di segnale parallele.Hanno solo bisogno della sincronizzazione basata sui frame trasmessi su di esso, non sui segnali digitali.C'è stata una discussione su questa domanda su [electronics.se] un paio di settimane fa.
buona cattura, aggiornata
https://electronics.stackexchange.com/a/393469/87770
Manu3l0us
2018-11-16 18:26:59 UTC
view on stackexchange narkive permalink

Mentre la risposta di Marcus è corretta al 100%, voglio aggiungere che USB 3.2 Gen 1x2 e Gen 2x2 utilizzano due corsie dati in ciascuna direzione mentre le corsie funzionano ancora a 5 Gbit / s risp.10 Gbit / s ciascuno.

CrossRoads
2018-11-16 21:52:46 UTC
view on stackexchange narkive permalink

USB non ha linee Rx & Tx.Ha una coppia di linee differenziali, simile a RS485, con i dati del segnale di clock & codificati insieme.Il mittente invia i dati in un modo utilizzando entrambi i cavi e il destinatario invia i dati in un altro modo utilizzando entrambe le linee.

Altrimenti, sì, un bus parallelo di segnali può essere molto veloce.Ideale per brevi distanze per i motivi già menzionati.

Esempio di trasferimento dati USB:

enter image description here

mic_e
2018-11-17 00:16:39 UTC
view on stackexchange narkive permalink

Come sottolineato in altre risposte,

  • Hai ragione, se usi il doppio delle corsie, ottieni il doppio della velocità.
  • In precedenza, i bus paralleli (con molte corsie dati) erano molto diffusi. Esempi sono l'interfaccia della stampante parallela, PATA e PCI. Ma è difficile costruire bus paralleli veloci perché le differenze nelle lunghezze dei singoli fili causeranno differenze di temporizzazione. I bus paralleli sono ancora ampiamente utilizzati su PCB (DRAM, QSPI, GMII, ...) e su chip (AXI, AHB, QPI, ...), ma per distanze maggiori è in realtà molto più economico costruire un collegamento seriale più veloce rispetto a un collegamento parallelo a velocità inferiore con lo stesso throughput di dati. I moderni collegamenti dati ad altissima velocità ea lunga distanza come Gigabit Ethernet, PCIe e USB3 hanno più corsie dati, ma ognuna di queste corsie è un collegamento seriale ad alta velocità completamente indipendente; i flussi di dati dai singoli collegamenti vengono combinati di nuovo insieme in un momento successivo. Questo è il motivo per cui puoi inserire una scheda grafica PCIe x16 in uno slot PCIe x1 con un adattatore adatto (o con sufficiente violenza).
  • I bus paralleli hanno più fili (duh), quindi il cavo sarà più spesso, più pesante e più costoso, così come il connettore.

Storicamente, quando è stato progettato l'USB, il trasferimento dei dati ad alta velocità non era l'obiettivo principale. L'obiettivo principale era creare un sistema bus universale ed economico per il collegamento di periferiche come tastiere, mouse e stampanti. Un progetto parallelo sarebbe stata una cattiva scelta; avrebbe rovinato la rivoluzionaria piccola dimensione del connettore e probabilmente aumentato il costo dell'USB abbastanza da impedirne un adattamento diffuso.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...