¿Por qué USB solo usa 2 líneas para RX, TX en lugar de múltiples líneas de datos? [duplicar]

13

¿No sería más rápido si hubiera varias líneas de datos (por ejemplo, 8) para transmitir / recibir datos (por ejemplo, bytes secuenciales) en lugar de usar una sola línea para transmitir bits secuenciales?

    
pregunta UpsideDownTree

5 respuestas

33

Sería más rápido si en lugar de una línea alimentarías varias líneas en el mismo reloj de símbolos.

Pero, el objetivo principal y principal del USB es proporcionar una interfaz en serie fácil (por lo tanto, S en USB) entre dispositivos de bajo costo (por lo tanto, la U en USB) con cableado liviano y de bajo costo.

Entonces, es por eso que el USB no hace líneas de datos paralelas: simplemente no es el nicho que se supone que debe llenar.

Además, no descuide que tener múltiples carriles paralelos de alta velocidad requiere que el sistema de transceptor introduzca una cantidad relativamente alta de esfuerzo para compensar diferentes sesgos en diferentes líneas, que a tasas altas son inevitables.

A menudo es más barato hacer que algo funcione dos veces más rápido que compilando dos de las variantes más lentas, a menos que realmente esté hablando directamente con el hardware que está en su principio bruto en paralelo a los bits (por ejemplo, chips de memoria DDR).

    
respondido por el Marcus Müller
14

Uno de los principales obstáculos con cualquier tipo de bus paralelo es skew . Si tiene 8 cables separados, todos los datos son importantes, es importante que todos los bits lleguen aproximadamente al mismo tiempo. De lo contrario, los bits del Byte A podrían mezclarse con los bits del Byte B. Esto significa que la longitud de esos cables paralelos debe coincidir, dentro de un porcentaje de la velocidad del reloj, de modo que el tiempo de viaje de la señal a través del cable es aproximadamente el mismo. Cuanto más rápida sea la velocidad del reloj, más estricta será la tolerancia en la longitud entre los cables paralelos.

En un diseño de PCB para algo como una placa base, las restricciones de diseño muy estrictas son comunes. Las trazas de PCB pueden lograr una coincidencia de longitud de 1 mil o mejor, lo que es lo suficientemente bueno como para implementar interfaces paralelas de alta velocidad. Un ejemplo común de esto es la interfaz de memoria DDR . Esta interfaz se basa en la comunicación paralela para mover datos a velocidades muy altas, pero solo es posible (asequible) implementar estas interfaces internamente.

¡Imagina que intentas construir un cable de computadora externo con más de 30 conexiones de cable, todas con una longitud igual a una milésima de pulgada! Esos cables serían muy caros en comparación con los cables USB.

Las computadoras más antiguas usaron un Puerto paralelo , que tenía 8 líneas de datos pero solo podía alcanzar una tasa de datos de alrededor de 2.5 MB / s. Compare eso con los 60 MB / s de USB 2.0, y mucho menos con los nuevos sabores de USB.

    
respondido por el Chris Fernandez
13

Si bien la respuesta de Marcus es 100% correcta, quiero agregar que USB 3.2 Gen 1x2 y Gen 2x2 están usando dos líneas de datos en cada dirección mientras que las líneas aún funcionan a 5Gbit / s resp. 10 Gbit / s cada uno.

    
respondido por el Manu3l0us
10

USB no tiene Rx & Tx lineas. Tiene un par de líneas diferenciales, similar a RS485, con los datos & Señal de reloj codificada conjuntamente. El remitente envía los datos de una manera utilizando ambos cables, y el receptor envía los datos de la otra manera utilizando ambas líneas.

De lo contrario, sí, un bus paralelo de señales puede ser muy rápido. Mejor para distancias cortas por las razones ya mencionadas.

Ejemplo de una transferencia de datos USB:

    
respondido por el CrossRoads
3

Como se señaló en otras respuestas,

  • Tienes razón, si usas el doble de carriles, obtienes el doble de velocidad.
  • Anteriormente, los buses paralelos (con muchas líneas de datos) estaban muy extendidos. Algunos ejemplos son la interfaz de impresora paralela, PATA y PCI. Pero es difícil construir buses paralelos rápidos porque las diferencias en la longitud de los cables individuales causarán diferencias de tiempo. Los buses paralelos siguen siendo de uso generalizado en PCB (DRAM, QSPI, GMII, ...) y en chips (AXI, AHB, QPI, ...), pero para distancias más largas, en realidad es mucho más barato construir un alto nivel. enlace serial de velocidad que un enlace paralelo de menor velocidad con el mismo rendimiento de datos. Los enlaces de datos modernos de súper alta velocidad y de mayor distancia, como Gigabit Ethernet, PCIe y USB3 tienen múltiples líneas de datos, pero cada una de esas líneas es un enlace serial de alta velocidad completamente independiente; las secuencias de datos de los enlaces individuales se combinan de nuevo en un punto posterior. Esta es la razón por la que puede colocar una tarjeta gráfica PCIe x16 en una ranura PCIe x1 con un adaptador adecuado (o suficiente violencia).
  • Los buses paralelos tienen más cables (duh), por lo que el cable será más grueso y pesado y más caro, y el conector también.

Históricamente, cuando se diseñó el USB, la transferencia de datos a alta velocidad no fue su enfoque principal. El objetivo principal era crear un sistema de bus universal y barato para conectar periféricos como teclados, ratones e impresoras. Un diseño paralelo hubiera sido una mala elección; habría arruinado el revolucionario tamaño del conector pequeño y probablemente haya aumentado el costo del USB lo suficiente como para evitar su adaptación generalizada.

    
respondido por el mic_e

Lea otras preguntas en las etiquetas