Codigo Manchester



codigo manchester rf800

La codificación Manchester es una técnica de codificación sincrónica que se utiliza para codificar el clock y los datos de un flujo de bits sincrónico. En esta técnica, los datos binarios que se transmiten no se envían como una secuencia de 1 y 0 lógicos (conocida como de no retorno a cero, NRZ). En cambio, los bits se convierten en un formato ligeramente diferente que tiene una serie de ventajas sobre el uso directo de codificación binaria.

Existen dos convenciones empleadas para la codificación Manchester.

Codigo Manchester

La primera de ellas fue publicada por primera vez por Thomas G.E. en 1949 y es seguido por numerosos autores (por ejemplo, Tanenbaum). Especifica que para representar un 0 lógico la señal debe cambiar del nivel Bajo a Alto (suponiendo una amplitud física de codificación de los datos), manteniendo el nivel bajo en la primera mitad del período del bit, y un nivel alto en la segunda mitad. Para un 1 lógico los niveles de la señal deberá cambiar de Alto a Bajo.

La segunda convención es también seguida por numerosos autores (por ejemplo, Stallings), así como por las normas IEEE 802.4 (token bus) y IEEE 802.3 (Ethernet). Afirma que un 0 lógico es representado por una secuencia de señales Alto-Bajo  y un 1 lógico está representado por una secuencia de señal Bajo-Alto.

Como puede apreciarse si a una señal codificada en Manchester la invertimos, hemos pasado de una convención a la otra.

Entonces, las reglas de codificación según la primera convención son:

  • Si el dato original es un 0, el código Manchester es: 01
  • Si el dato original es un 1, el código Manchester es: 10
  • Cada bit se transmite en un tiempo fijo (el “periodo”).
  • Las transiciones que significan O o 1 se producen en el punto medio de un período.

El proceso para realizar la codificación es muy simple y solo es necesario efectuar un X-OR entre los datos y el clock para obtener la señal codificada. La decodificación es mucho más compleja y necesita un post aparte.

Datos  XOR   clock      Manchester
0                     0                    0
0                     1                    1
1                     0                    1
1                     1                    0

En los siguientes ejemplos podemos ver la 2 convenciones de codificación:

Codificación Manchester Norma IEEE

Codificación Manchester Norma IEEE

Codificación Manchester Norma Thomas GE. El patrón de 8-bits: "0 1 1 1 1 0 0 1" se codifica como "01 10 10 10 10 01 01 10". Bit LSB a la izq.

Codificación Manchester Norma Thomas GE. El patrón de 8-bits: "0 1 1 1 1 0 0 1" se codifica como "01 10 10 10 10 01 01 10". Bit LSB a la izq.

La codificación puede ser alternativamente considerada como una codificación de fase, donde cada bit es codificado por una transición de fase de 90º, o 270º grados. Por lo tanto, es común encontrar que se refiera a ella como un Código Biphase.
A su vez la codificación Manchester es un caso especial de binary phase-shift keying (BPSK), donde los datos controlan la fase de una onda cuadrada cuya frecuencia portadora es la velocidad de transmisión de datos. Lo que significa, que es self-cloking, por lo tanto la señal de reloj (clock) puede ser recuperada de los datos codificados.

Códigos Ilegales

Dado que un ‘0’ codifica en 01 y un ‘1’ codifica a 10 (o viceversa), se desprende que códigos Manchester 00 y 11 son secuencias ilegales. Estos códigos ilegales se utilizan para comprobar errores en los datos.
También es posible tener el código ilegal de 4 bits “00 00 11 11″, el cual es un suceso poco probable. Este “código ilegal” tiene la propiedad de tener un componente de DC de cero y no tiene transiciones de 1 a 0, esa secuencia se la suele utilizar como un patrón único de inicio/fin para identificar los límites de nuestra transmisión de bits de datos codificada en Manchester.

Desventajas

Se puede observar que hay dos bits de datos codificados en Manchester por cada bit de datos originales. Por lo tanto, la contra de usar una codificación Manchester es que los datos codificados requieren el doble de ancho de banda.

Ventajas

1. Transmisión serial de bits con componente nula de DC.
2. Detección de errores fácil de aplicar.

Usos

El codigo Manchester es utilizado en la capa física de la comunicación LAN ETHERNET donde el ancho de banda adicional no es un impedimento para el cable coaxial. También suele utilizarse cuando se realiza una comunicación por medio de RF para evitar el ruido.

Existen unos integrados denominados RF800 que son encoder/decoder para transmisiones por RF codificando los datos en Manchester, y agregando un chequeo de error RCR.