En la capa física de USB 3.0 hay un codificador 8b/10b .
Wikipedia dice que esto eliminó la compensación de CC, mientras que el tutorial que estoy leyendo dice
es un esquema de codificación común en diseños seriales de alta velocidad
¿Cuál es el propósito de esta codificación en el contexto de USB? Adicionalmente, ¿qué otras aplicaciones y beneficios brinda esta codificación en otro tipo de dispositivos?
La respuesta simple para una codificación como 8b/10b es que garantiza que el flujo de datos codificado tenga al menos una cierta cantidad de transiciones de datos. Sin dicha codificación, un flujo largo de 0 o 1 tendería a parecer que intenta enviar CC a través del canal.
La misma filosofía se aplica a la codificación Manchester, donde el ancho de banda neto para transmitir a través del canal es dos veces el ancho de banda de datos real. Las ventajas promocionadas para 8b/10b es que el ancho de banda de transmisión utilizado es mucho menor que el 2X impuesto por Manchester.
Uno quiere evitar DC a través del canal por varias razones. Si bien cada canal de transmisión tiene diferentes tipos de requisitos, la consideración principal es que la CC no pasa muy bien por los circuitos acoplados por capacitor o transformador. La otra gran consideración, incluso para los circuitos acoplados directos, es que se requieren transiciones para poder sincronizar un circuito PLL en el extremo del receptor para que se pueda recuperar el reloj para permitir la activación estroboscópica de los bits de datos en el momento correcto.
Además de las buenas propiedades mencionadas por otros, las otras cosas buenas que le brinda 8b10b incluyen: 1. Fácil discriminación en el receptor entre el control de enlace y los símbolos de datos 2. Fácil detección de ~75% de errores.
También es sorprendentemente fácil construir transmisores y receptores 8b10b en lógica programable; la patente original de IBM especifica todas las operaciones lógicas requeridas (y si eres demasiado perezoso para eso, Chuck Benz lo ha hecho por ti en Verilog).
Wikipedia también tiene una página muy útil sobre 8b10b.
Se explica más adelante en el tutorial vinculado, en la página 15.
Las razones enumeradas para aplicar esta codificación a USB 3.0 son:
Un colega tiene otra hipótesis. Parafraseando:
El cable tiene inductancia y capacitancia. Esto suaviza el frente de ataque de las legumbres. Por lo tanto, transmitir un solo 1 dejaría el bus en un cierto estado eléctrico, mientras que transmitir varios 1 lo dejaría en un estado eléctrico diferente (más cercano al estado estable). En consecuencia, enviar un 0 después de las palabras tendrá un potencial diferente en los dos escenarios.
En tercer lugar, aquí hay una cita de la norma, sección 3.2.1
El receptor necesita suficientes transiciones para recuperar de manera confiable el reloj y los datos del flujo de bits. Para garantizar que se produzcan transiciones adecuadas en el flujo de bits independientemente del contenido de datos que se transmite, el transmisor codifica datos y caracteres de control en símbolos mediante un código 8b/10b.
Vorac
andyz smith
M.Arun kumar