8b/10b
# 8b/10b

El término 8b/10b designa un tipo de codificación para la transmisión de bits en líneas de alta velocidad. Esta codificación consiste en transformar cada cadena de 8 bits en una cadena de 10 bits antes de transmitirla por la línea, teniendo en cuenta que no puede haber más de cinco ceros o cinco unos seguidos. La transformación de la cadena de 8 bits en 10 bits se realiza mediante tablas de conversión, que simplemente buscan el nuevo valor de la cadena a transmitir.

## Codificación

8b/10b surgió debido a la alta velocidad de transferencia de datos, que hace que los bits transmitidos se mantengan durante muy poco tiempo en la línea, siendo necesario disponer de relojes muy precisos para sincronizar el conjunto emisor/receptor. Sin embargo, emisor y receptor se pueden sincronizar fácilmente cuando los bits que llegan por la línea cambian rápidamente. Atendiendo a este hecho, la codificación 8b10b transforma las cadenas de 8 bits (hasta 256 valores) en cadenas de 10 bits (hasta 1024 valores) con la restricción de no tener más de cinco ceros o cinco unos seguidos. Gracias a esta codificación, no es necesario disponer de un reloj tan preciso, ya que la sincronización entre emisor y receptor se realiza ayudándose de los bits que son transmitidos entre ellos.

Gracias a los 1024 valores posibles con 10 bits, el sistema sólo utiliza aquellos que tienen un número similar de ceros y unos, existiendo estas tres posibilidades:

* 5 unos y 5 ceros: código con disparidad neutra
* 6 unos y 4 ceros: código con disparidad positiva
* 4 unos y 6 ceros: código con disparidad negativa

El objetivo es que se cancele la disparidad, de esta forma, el nivel de la componente continua de la señal eléctrica es nulo permanentemente.

## Sistemas que usan 8b10b

* Serial Advanced Technology Attachment
* Serial Attached SCSI
* Fibre Channel
* PCI Express
* IEEE 1394b
* Gigabit Ethernet (excepto para par trenzado 1000Base-T)
* InfiniBand
* DVB
* HyperTransport
* DVI
* HDMI
* USB v3

## Ventajas

Esta codificación permite:

* Sincronizar los relojes del emisor-receptor continuamente (mínimo cada 5 bits transmitidos).
* Permitir la transmisión de cadenas especiales de control (patrones coma).
* Facilitar la detección y corrección de errores.
* Datos: Q1755441
