Intentaré responder a sus preguntas en el orden en que las propuso (numerando puede ayudar).
De hecho, hay cuatro cables (ignorando USB3.x por el momento). Dos de hecho para la alimentación (+ 5V y GND), y dos para la señalización (D + y D -).
Lo clave a tener en cuenta sobre los cables de señal es su nombre, tenga en cuenta el + y – (también a veces P y N o P y M). Estos suelen indicar en la electrónica que algo es diferencial. significa que los 1 «sy los 0» están indicados por la polaridad del voltaje entre cada cable. Esto es a diferencia del extremo único donde los 1 «sy los 0» se llevan como un voltaje relativo a GND.
¿Qué quiero decir con polaridad? Bueno, imagina que el cable D + se conduce a \ $ + 3.3 \ m athrm {V} \ $, y la D- se conduce a \ $ 0 \ mathrm {V} \ $. La diferencia entre los dos es \ $ V_ {D +} – V_ {D-} = 3.3 – 0 = 3.3 \ mathrm {V} \ $. Ahora bien, si en cambio el cable D + se condujo a \ $ 0 \ mathrm {V} \ $ y el D- a \ $ + 3.3 \ mathrm {V} \ $, la diferencia se convierte en \ $ V_ {D +} – V_ {D- } = 0 – 3.3 = -3.3 \ mathrm {V} \ $. Observe el signo menos, que indica la polaridad opuesta.
Para que esto funcione entonces, los dos cables de datos deben ser complementarios (cuando uno es alto, el otro es bajo) para transferir datos, por lo tanto debe funcionar a la misma frecuencia. Puede pensar por qué molestarse, solo use un cable. La cuestión es que el mundo es un lugar bastante ruidoso, un cable de un solo extremo (modo común) es muy propenso al ruido que a altas velocidades (incluso a bajas velocidades en entornos hostiles) puede corromper los datos (hacer un 1 a 0). En la señalización diferencial, ambos cables están expuestos al mismo ruido, ¡por lo que se cancela!
Un ejemplo rápido. Digamos que la señal que está enviando es \ $ 2 \ mathrm {V} \ $ o \ $ 0 \ mathrm {V} \ $. Digamos también que en cada cable obtienes \ $ 1 \ mathrm {V} \ $ de ruido (poco realista, pero es un ejemplo). Para un solo extremo, sus señales en el receptor serían \ $ 2 + 1 = 3 \ mathrm {V} \ $ que es claramente un 1 lógico, o \ $ 0 + 1 = 1 \ mathrm {V} \ $ en cuyo punto usted no tengo idea de lo que era. Sin embargo, para el diferencial, sus señales en el receptor serían \ $ (2 + 1) – (0 + 1) = 2 \ mathrm {V} \ $ o \ $ (0 + 1) – (2 + 1) = – 2 \ mathrm {V} \ $ ¡que son iguales como si no hubiera ruido!
Hay otras ventajas de tener dos cables. Cuando no se envían datos, la especificación USB utiliza los dos cables de forma independiente para las señales de control, p. Ej. una señal de sincronización, un comando de reinicio, etc. Estos se pueden distinguir claramente de los paquetes de datos por varios trucos que probablemente sean demasiado profundos (todo estará en la especificación USB mencionada en los comentarios).
En USB, ambos dispositivos deben tener la misma frecuencia. Esto suele ser un múltiplo de 12MHz, por lo que verá dispositivos USB funcionando a frecuencias de reloj como 48MHz o 12MHz, etc. Estas frecuencias son generadas por una referencia de cristal que generalmente tiene una precisión de alrededor de 20ppm (240Hz para un cristal de 12MHz ). Esto generalmente es lo suficientemente cercano como para que, en virtud de los pulsos de sincronización en las líneas de datos y el hecho de que los datos se envíen en ráfagas (lo que significa que la deriva en la frecuencia no se suma durante un tiempo prolongado), los dos dispositivos pueden permanecer sincronizados. Si si usó accidentalmente, digamos, un cristal de 16MHz, el dispositivo probablemente no podrá enumerar.
¿Cómo sabe el maestro que el dispositivo necesita energía? Simple, todos los dispositivos USB pueden extraer un cantidad de corriente sin solicitarla, hasta \ $ 100 \ mathrm {mA} \ $, por lo que recuerdo. Esto le da al dispositivo suficiente energía para encenderse, afirmar su presencia (con una resistencia pull up en la línea D +, probablemente nuevamente Una vez que el maestro conoce el dispositivo, asigna una asignación de potencia a ese dispositivo y pregunta si necesitará más (por ejemplo, para un dispositivo de alta potencia, si quiere \ $ 500 \ mathrm {mA} \ $ alta asignación de corriente).
El protocolo USB está totalmente en la especificación. Intentar revisarlo probablemente sería demasiado profundo.Pero habiendo dicho eso, es posible que desee consultar esta respuesta a otra pregunta que brinda algunos detalles.
USB 1.x (1,5 Mbit / sy 12 Mbit / s) y 2,0 (480 Mbit / s) utilizan cuatro cables, V \ $ _ {BUS} \ $ ( +5), D +, D- y GND. D + y D- forman un par diferencial. También hay una extensión llamada OTG (On-The-Go) que permite que un dispositivo actúe como un host o dispositivo USB, y esto hace uso de un quinto cable de identificación que podemos ignorar.
Si el La velocidad máxima de cada host y dispositivo es diferente, se lleva a cabo una negociación y se utiliza la velocidad más alta común a ambos.
La señalización diferencial proporciona un alto grado de inmunidad al ruido. Las señales de datos se envían en positivo en la línea D + y negativo en la línea D-. En el lado de recepción, la ventaja positiva se envía a la ventaja + de un comparador (que actúa como un restador), y la ventaja negativa se envía a la ventaja – del comparador.
Para pulsos válidos, estos dos suman (ya que el pulso negativo se envió a el – líder del comparador, añaden). Pero si se induce ruido en la línea, en general afectará a las líneas D + y D- por igual, y el comparador las restará.
El diagrama muestra los datos que van en una sola dirección. Esto se debe a que las señales USB son semidúplex, los datos solo van en una dirección a la vez.
USB 3.0 (hasta 10 Gbit / s) utiliza nueve cables en lugar de cuatro y proporciona una operación full-duplex ya que hay pares diferenciales en cada sentido para transmitir y recibir.
Los dispositivos pueden consumir hasta 100 mA sin tener que «preguntar». Para USB 1.xy 2.0, el dispositivo puede solicitar al host que suministre hasta 500 mA. Para USB 3.0, esto se ha aumentado a 900 mA. Hay un protocolo separado que se utiliza para cargar la batería (sin intercambio de datos); esto puede llegar hasta 5A en algunos casos.
Comentarios
USB usa señalización diferencial para reducir la interferencia y permitir la transmisión de alta velocidad a larga distancia. Un bus diferencial se construye con dos cables, uno de los cuales representa los datos transmitidos y el otro es un complemento. La idea es que el voltaje «promedio» en los cables no transmita ninguna información, lo que resulta en menos interferencia. Los buses (USB, Ethernet, PCIe, SATA, etc.) son diferenciales, ya que el costo de los cables adicionales supera con creces las ventajas en la reducción de ruido. USB 2 también es lo que se denomina «semidúplex». Esto significa que el enlace solo funciona en una dirección en un momento dado. Digamos, su computadora puede enviar un mensaje a su mouse. O su mouse puede enviar un mensaje a su computadora. Pero no ambos al mismo tiempo. El autobús tiene que «dar la vuelta» cada Los datos de tiempo deben enviarse en la otra dirección.
En lo que respecta al reloj, el USB aprovecha los dispositivos llamados serializadores y deserializadores. El serializador es responsable de generar los datos en serie en el extremo de transmisión, y el deserializador es responsable de recuperar los bits en el otro en D. Parte del trabajo del serializador es codificar los datos de manera que sea fácil de decodificar al incluir información de encuadre y sincronización. Parte del trabajo del deserializador es recuperar la señal del reloj. USB utiliza una codificación llamada NRZI, o invertida sin retorno a cero. En NRZI, el 0 lógico está representado por una transición y el 1 lógico está representado por ninguna transición. El USB usa relleno de bits para limitar la longitud de los sucesivos unos enviados por el cable. El resultado de esto significa que hay transiciones con la frecuencia suficiente para recuperar todos los bits, incluso si los relojes del transmisor y del receptor no marcan exactamente a la misma velocidad. Sin embargo, tienen que estar relativamente cerca. También hay secuencias de sincronización explícitas que se envían junto con los datos.
En lo que respecta a la energía, el dispositivo puede consumir una cierta cantidad de energía sin preguntarle al anfitrión. Para dibujar más que eso, es necesario negociar para asegurarse de que el host no se sobrecargue. El dispositivo debe esperar hasta que obtenga el permiso antes de poder consumir más corriente.