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


8

En la capa física de USB 3.0 hay un codificador 8b / 10b .

Wikipedia dice que esto eliminó el desplazamiento DC, 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? Además, ¿qué otras aplicaciones y beneficios proporciona esta codificación en otros tipos de dispositivos?


Resulta más adelante en el tutorial, esto se explica. Todavía
tengo

2
¿Puedes explicar su explicación de por qué?
Andyz Smith

Respuestas:


9

La respuesta simple para una codificación como 8b / 10b es que garantiza que el flujo de datos codificados tenga al menos una cierta cantidad de transiciones de datos. Sin dicha codificación, una secuencia larga de 0 o 1 tenderá a parecer que se intenta enviar DC a través del canal.

La misma filosofía se aplica a la codificación Manchester donde el ancho de banda neto a 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 atraviesa muy bien los circuitos acoplados por condensador o transformador. La otra gran consideración, incluso para los circuitos de acoplamiento directo, es que se requieren transiciones para poder sincronizar un circuito PLL en el extremo del receptor, de modo que se pueda recuperar el reloj para permitir estropear los bits de datos en el momento correcto.


y la razón por la que es importante no hacer que "parezca DC" ...?
Andyz Smith

Ver comentario agregado en respuesta ...
Michael Karas

1
"La CC no atraviesa muy bien los circuitos acoplados por condensador o transformador", también podría dejar las dos últimas palabras apagadas :)
Mels

Me preocuparía un poco si hubiera un transformador o un condensador antes del detector de señal sensible en un diseño de transmisión digital de alta velocidad, pero sí, estoy con ustedes y lo que realmente estoy pensando es en el reloj y el estroboscopio. Quiero decir, esta es la principal diferencia entre la transmisión síncrona y asíncrona. y la razón por la cual se elige asíncrono una y otra vez, a pesar de que desperdicia bits, debido a su resistencia al ruido.
Andyz Smith

@AndyzSmith "Los aspectos eléctricos de cada ruta se caracterizan como un transmisor, canal y receptor; estos colectivamente representan un enlace diferencial unidireccional. Cada enlace diferencial está acoplado a CA con condensadores ubicados en el lado del transmisor del enlace diferencial". USB 3.0, sección 3.2.1
Vorac

2

Además de las buenas propiedades mencionadas por otros, las otras cosas buenas que le ofrece 8b10b incluyen: 1. Discriminación fácil en el receptor entre control de enlace y símbolos de datos 2. Detección fácil 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 vago para eso, Chuck Benz lo ha hecho por ti en Verilog).

Wikipedia también tiene una página muy útil sobre 8b10b.


1

Se explica más adelante en el tutorial vinculado, en la página 15.

Los motivos enumerados para aplicar esta codificación a USB 3.0 son:

  • recuperación de reloj: sin la codificación, las secuencias largas 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 los pulsos. 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 estacionario). En consecuencia, el envío de 0 palabras clave tendrá un potencial diferente en los dos escenarios.


En tercer lugar, aquí hay una cita del estándar, 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 utilizando un código 8b / 10b.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.