codificador de Scrambler vs 8b / 10b

1

Estaba pasando por la especificación SATA3. Según la especificación, tanto el codificador como el codificador 8b / 10b se utilizan en su diseño. Scrambler ayuda a aleatorizar los datos mientras que el codificador 8b / 10 crea suficiente transición para el balance de DC y la recuperación de datos del reloj.

Mi duda es que si el aleatorizador aleatoriza los datos, entonces debería resolver el propósito del balance de DC y la recuperación de datos del reloj, porque el aleatorizador está creando las transiciones de '1' y '0'. ¿Cuál es la necesidad del codificador 8b / 10b entonces?

    
pregunta Tapojyoti Mandal

2 respuestas

1

Estoy discutiendo esto sobre la base de mi conocimiento de Ethernet, en lugar de SATA. No conozco el estándar SATA, pero si usa codificación LFSR y codificación 8b10b o 64b66b, debería tener los mismos beneficios que en Ethernet.

La codificación

8b10b o 64b66b proporciona dos funciones que no están disponibles a partir de un simple cifrado:

límites de bloques La codificación introduce límites de bloques que permiten la sincronización entre el transmisor y el receptor. Sin estos límites, el receptor no sabría dónde termina un octeto y comienza el siguiente, y mucho menos dónde están los límites entre tramas o paquetes en los protocolos de nivel superior.

detección de errores La codificación permite detectar cualquier error de un solo bit en una trama, y estadísticamente puede detectar errores de múltiples bits. Esto permite que el protocolo reaccione adecuadamente cuando se recibe un bloque con errores.

    
respondido por el The Photon
0

Algunos protocolos de comunicaciones envían cada octeto de datos utilizando ocho bits de datos más algunos bits de trama. Al enviar datos a través del protocolo asíncrono típico, puede haber hasta nueve bits "0" consecutivos y un número arbitrario de bits "1" consecutivos. Un aleatorizador simple puede asignar diez bits, de los cuales los dos primeros tienen la garantía de ser 10, en diez bits que se garantiza que no tienen más de aproximadamente seis valores coincidentes consecutivos.

El uso de un codificador 8b / 10b más complicado permitirá reducir aún más el número de bits coincidentes consecutivos en el peor de los casos de lo que sería posible mediante un aleatorizador simple, y también ofrecer garantías sobre el balance de líneas (asegurando que los números totales de Los ceros y los transmitidos se mantienen cerca uno del otro. Obtener estos beneficios requiere circuitos más complicados, y también requiere renunciar a parte de la flexibilidad de tiempo que había ofrecido un protocolo asíncrono. Por ejemplo, un protocolo asíncrono podría entregar 100 bytes en más de 1100 bits, a una velocidad "suave" continua de un byte cada once bits. Usando una codificación 8b / 10b, sería necesario enviar un byte, luego un carácter inactivo, luego diez bytes, luego otro carácter inactivo, etc. Para muchos propósitos eso no importaría, pero para algunos propósitos podría ser. Si se conectara un receptor asíncrono a un DAC que enviara inmediatamente cada muestra a medida que se recibía, pasar la señal a través de un sincronizador de bits y la mezcla agregaría 0.5 bits de tiempo de fluctuación. Pasarlo a través de un codificador 8b / 10b agregaría 5 bits de jitter.

    
respondido por el supercat

Lea otras preguntas en las etiquetas