¿Cuál es el propósito de la codificación 8b/10b?

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?

Resulta que más adelante en el tutorial esto se explica. Todavía tengo curiosidad por saber en qué otras áreas se usa esta codificación.
¿Puedes dar más detalles sobre su explicación de por qué?
Si 8b/10b garantiza muchas transiciones, afectará la integridad de la señal debido al efecto de piel. Además, ¿qué quieren decir todos con canal balanceado de CC y por qué es necesario?

Respuestas (3)

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.

y la razón por la que es importante que no se 'parezca a DC'...?
Ver comentario agregado en respuesta ...
"CC no pasa muy bien por los circuitos acoplados por capacitor o transformador"; también podría dejar las dos últimas palabras fuera :)
Me preocuparía un poco si hubiera un transformador o un capacitor antes del detector de señal sensible en un diseño de transmisión digital de alta velocidad, pero sí, estoy contigo y lo que realmente estoy pensando es el reloj y la luz estroboscópica. Quiero decir, esta es la principal diferencia entre la transmisión síncrona y asíncrona. y la razón por la que se opta por la asíncrona una y otra vez, aunque desperdicia bits, por su resistencia al ruido.
@AndyzSmith "Los aspectos eléctricos de cada ruta se caracterizan como un transmisor, un canal y un receptor; estos representan colectivamente un enlace diferencial unidireccional. Cada enlace diferencial está acoplado en CA con condensadores ubicados en el lado del transmisor del enlace diferencial". USB 3.0, sección 3.2.1
"El dimensionamiento de los condensadores de acoplamiento de CA se realiza calculando su reactancia capacitiva en el flujo de datos de frecuencia más baja que viajará por el camino. La reactancia capacitiva a esa frecuencia debe ser una pequeña fracción de la impedancia de la línea de transmisión para evitar una atenuación excesiva y distorsión de la señal. Para patrones de datos aleatorios, la frecuencia más baja puede estar en o cerca de CC, en cuyo caso los condensadores tendrán que tener valores muy grandes.
"Afortunadamente, la mayoría de las rutas de datos que usan señalización diferencial emplean un esquema de codificación que asegura que el flujo de datos nunca caiga por debajo de una frecuencia de "inactividad". Esta frecuencia de inactividad se usa para recuperar el reloj del flujo de datos en el extremo del receptor. este caso, el valor del capacitor puede ser relativamente pequeño".

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:

  • recuperación del reloj: sin la codificación, los flujos largos de 1 o 0 se verían como DC
  • detección de errores: cuando el receptor decodifica el símbolo de 10 bits, hay muchos símbolos imposibles; recibir uno de ellos indica un error.

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.