Codifica Manchester: ¿qué es y por qué lo utilizan?

Codifica Manchester: ¿qué es y por qué lo utilizan?

La codificación Manchester, de una manera sencilla y eficaz para mejorar la comunicación digital para la alta velocidad o inalámbrico.

Usted probablemente ha notado que la comunicación digital en serie se ha convertido en muy popular. Hay muchos sabores: incluyendo interfaces estándar en el nivel de la junta que UART , SPI e I2C. comunicación “digital” También se puede realizar por medio de señales analógicas; un ejemplo es un enlace de datos RF que utiliza cambios de amplitud, frecuencia o fase para la transferencia de datos binarios en modo inalámbrico. Y luego están las interfaces diferenciales de alta velocidad , tales como enlaces de comunicación en serie en base a LVDS o USB.

La codificación Manchester es una técnica de modulación de datos que puede ser utilizado en muchas situaciones, pero es particularmente útil en la transferencia de datos binarios en base a señales analógicas, RF, óptico, señales digitales de alta velocidad digital o de larga distancia.

Los estándares de codificación Ethernet utiliza la codificación Manchester.

bueno, pero no es perfecto

A pesar de las ventajas abrumadoras de comunicación digital estándar que la señalización analógica, hay algunas limitaciones generales. Uno es el problema de la sincronización: el receptor tiene que saber exactamente cuándo va a muestrear los datos entrantes (Tenga en cuenta que esta sincronización no es necesaria, por ejemplo, una transmisión de audio analógico – la señal de audio demodulada puede ser entregado al altavoz sin interpretación explícita de los datos en el lado del receptor).

Otra es la necesidad de acoplamiento DC. Los datos digitales pueden incluir secuencias largas, ininterrumpidas de uno o ceros, y luego una señal digital estándar que se utiliza para transmitir estos datos se mantendrá en la misma tensión durante un período relativamente largo de tiempo. Si tratamos de asociar esta señal utilizando un condensador de bloqueo tendríamos problemas, como se muestra en los siguientes diagramas LTSpice.

Por un lado la decadencia de CC cae a cero, entonces todo está bien, siempre y cuando la señal está en transición. Pero cuando una larga secuencia de uno o cero debido a la interrupción de la transición señal original, la señal digital se convierte en una tensión constante que está bloqueado por el condensador.

Una solución

La codificación Manchester proporciona un remedio para estos dos limitaciones. Se trata de un esquema de modulación digital simple que hace dos cosas:

  1. Se asegura que la señal no siempre se mantiene en un nivel lógico alto o bajo la lógica de un largo período de tiempo

  2. Se convierte la señal de datos en una señal de datos de sincronización.

Antes de entrar en los detalles de la codificación Manchester, discutimos la motivación: ¿por qué no añadir una señal de reloj para la sincronización separada? Y ¿por qué debemos ser acoplado a una corriente alterna de señal digital?

Reloj que se deben evitar

En muchos casos, es perfectamente aceptable el uso de una señal de reloj separada para lograr la sincronización entre el transmisor y el receptor. Pero a veces este enfoque no es deseable, como cuando es necesario para minimizar el número de interconexiones entre las partes de un sistema de, o cuando la miniaturización requiere el microcontrolador con un bajo número de pasadores que de alguna manera puede proporcionar la funcionalidad requerida.

En otras situaciones, una señal de reloj separada no es practicable. por ejemplo, sería muy ineficiente incluyen dos transmisores y receptores de RF separadas (por ejemplo, una para datos y otra para el reloj) en una conexión de datos inalámbrica complejo.

Si está familiarizado con la interfaz UART, se sabe que es posible utilizar las señales de temporización internas en lugar de un clok externo compartido por el transmisor y el receptor. Pero esta estrategia tiene limitaciones significativas:

  • Es robusto frente a variaciones de la frecuencia de reloj interno, se vuelven más problemático cuando el transmisor y el receptor están en diferentes entornos.

  • Se carece de flexibilidad, ya que requiere que los dispositivos de Tx y Rx están configurados de forma explícita para la misma velocidad de transmisión de datos.

  • Generalmente, el receptor requiere una frecuencia de reloj interno significativamente mayor que la velocidad de transmisión de datos, , Lo que podría suponer restricciones de los molestos sobre la velocidad máxima a la que los datos pueden ser transferidos.

Evitar la conexión de CC

Con los sistemas complejos, especialmente los que implican altas tensiones, No siempre es fácil asegurar que el voltaje de modo común de una señal transmitida es compatible con el rango de modo común del receptor aceptables. Este es un problema incluso cuando se utiliza una normas diferenciales tales como RS-485 . Otra preocupación es la corriente en caso de fallo: acoplamiento directo no ofrece protección contra las corrientes debidas a un cortocircuito.

por lo tanto, acoplamiento de CA es una forma sencilla para mitigar los inconvenientes y los riesgos .

La solución de Manchester

La idea detrás de la codificación Manchester es el siguiente: podemos utilizar transiciones voltaje , en vez de niveles extensible , para representar unos y ceros. Considere el siguiente diagrama:

En la parte superior del diagrama tenemos un estándar de interfaz digital compuesta por una señal de datos y una señal de reloj.

En la parte inferior del diagrama hay una señal codificada de Manchester para los mismos datos.

Tenga en cuenta cómo se producen las transiciones en el medio de los estados lógicos de la señal de datos estándar (en otras palabras, la transición Manchester está alineado con el borde del reloj que se utiliza para muestrear datos).

Tenga en cuenta también que un bit alto corresponde siempre a un mayor a menor de transición y un poco baja corresponde siempre a una transición de bajo a alto. (También es posible usar la opuesta, lo importante es que los circuitos del receptor conocen el formato que debe esperar).

Es claro que el problema de acoplamiento de CA es eliminado: cada bit requiere una transición y por lo tanto la señal de datos no será nunca más a un nivel lógico bajo o lógico alto durante un largo período de tiempo. Esto es evidente en el siguiente diagrama, que muestra una señal digital estándar 111111 pistas y una señal codificada a partir de Manchester para la misma secuencia binaria, Se ha omitido por conveniencia la señal de reloj, ya que no es relevante para el diseño.

El problema de sincronización es un poco 'menos simple, porque todavía tenemos que tirar de alguna manera por la señal de reloj; sin embargo, podemos ver intuitivamente que la regularidad de las transiciones proporciona información sobre cuándo la señal de datos es a muestrear.

El diagrama de arriba muestra también una desventaja no trivial de codificación Manchester: la velocidad de transmisión de datos se reduce a la mitad en comparación con el ancho de banda de la señal de datos. Una señal codificada por Manchester requiere una transición para cada bit, lo que significa que debido estados lógicos de Manchester se utilizan para transmitir uno lógica estado estándar. por lo tanto, para transferir datos a la misma velocidad, es necesario duplicar el ancho de banda.

Esto puede no parecer un problema, ¿por qué no utilizar una señal de alta frecuencia? bien, si el ancho de banda de la señal es el factor limitante de la velocidad con la que los datos se pueden mover desde el transmisor al receptor y si ya está a la máxima velocidad de transmisión de datos, no se puede aumentar la frecuencia de la señal por un factor de dos; en vez, es necesario reducir la velocidad de datos por un factor de dos.

¿Cómo generar datos codificados de Manchester en hardware y firmware

La codificación Manchester es una forma de modulación , pero no se preocupe, Es mucho más simples técnicas de RF que son más comúnmente asociados con la palabra. Este esquema de modulación requiere únicamente datos digitales, la correspondiente señal de reloj y un 'hardware o firmware bits. Las diferencias entre los datos modulados y los datos originales son como sigue:

  • Los datos se representan usando transiciones nivel lógico en lugar de niveles lógicos.
  • La señal de reloj no debe ser enviado al receptor, ya que está integrado en el flujo de datos modulada.

Además de eliminar la necesidad de una señal de reloj transmitida, La codificación Manchester hace que sea posible utilizar el acoplamiento AC, ya que la señal modulada no permanece en el estado lógico alto o bajo nivel durante un largo período de tiempo. Una desventaja importante de la codificación Manchester es la velocidad de datos reducida: porque los unos y los ceros se representan utilizando las transiciones en lugar de los niveles lógicos, un estado lógico en la señal original se transforma en dos estados lógicos en la señal de Manchester.

Manchester a través de hardware

teóricamente, Es extremadamente fácil de generar un flujo de datos codificado por el Manchester a través de hardware. A diferencia del circuito analógico cuidadosamente diseñado y potentes procesadores de señales digitales utilizados para técnicas de modulación de RF avanzada, Codificación Manchester requiere sólo una puerta XOR.

Esto se puede comprobar fácilmente mirando el diagrama de tiempos mostrado anteriormente: cuando el reloj y los datos están en el mismo nivel lógico, la señal es baja Manchester; cuando están en diferentes niveles lógicos, la señal de Manchester es alta.

La razón de que se trata de una aplicación más “teorético” Es debido a que la salida de la puerta XOR estará sujeta a las transiciones espurias, también llamada falla. Este es un problema no trivial, ya que la codificación Manchester se aplica sólo a las transiciones. Estas transiciones espurias se producen porque la puerta XOR es un dispositivo muy simple. Todo lo que hace es comparar dos entradas y generar una salida en base a la tabla de verdad XOR. Si las señales de reloj y datos no están perfectamente alineados (y nunca es una buena idea esperar la perfección), una pasada antes que el otro, y la puerta XOR es lo suficientemente rápido para actualizar su salida en base a esta combinación transitoria (y el mal) de las dos señales de entrada.

No creo que el enfoque drástica XOR es inútil. Si se puede garantizar una buena sincronización entre las señales de reloj y de datos, como cuando las dos señales se generan y se XORizzati dentro de una FPGA, Probablemente podría funcionar bastante bien. también, el efecto de la sincronización imperfecta es menos significativa cuando el período de datos es muy larga en comparación con la duración de la falla, ya que las transiciones espurias (mayor frecuencia) Puede ser filtrado antes de los datos de Manchester es interpretado por el receptor.

Que yo sepa, este problema técnico no puede resolverse simplemente mediante la adición de una puerta aquí o un flip-flop hay. Las búsquedas en Internet no producen una gran cantidad de información, probablemente debido a que hoy en día es mucho más común de generar los datos de Manchester en el firmware (consulte la sección siguiente). sin embargo, Parece ser que un Harris. Quesnell Jr. se determinó para generar datos del Manchester libre de errores sin el uso de firmware, y se puede leer su circuito en la documentación de patentes.

Este es el esquema descrito en la patente.

Como dije, No es el tipo de cosa que se puede lograr mediante la adición de un par de puertas o un flip-flop. Aprecio las soluciones de hardware, pero en este caso, Consejo para abordar el problema de firmware en Manchester.

Manchester través de firmware

Una implementación del firmware elimina transiciones espurias debido a los datos originales se convierte en una secuencia de Manchester de unos y ceros antes de que se convierte en una señal eléctrica normal. Todo lo que tiene que hacer es conducir esta secuencia de unos y ceros en un pines GPIO, y eso es todo. En este caso, las ventajas con respecto a la aplicación de hardware son muy significativas. La mayoría de los sistemas de estos días ya incluye un procesador puede manejar esta actividad.

No hay mucho que decir acerca de los detalles necesarios para hacer el cifrado basado en firmware. Se toman los datos originales y la sustitución de cada uno o cero con un par de torsión de una sola cero (o una transición de flanco descendente) o un par cero-uno (que es una transición del flanco de subida). Por lo tanto, es posible insertar estos bits Manchester en un pin de salida mediante el uso de una rutina de servicio de interrupción asociado con un temporizador de desbordamiento según la velocidad de transmisión deseada. Otra opción es utilizar uno de los procesadores periféricos de comunicación en serie.

Cómo decodificar los datos codificados de Manchester a través del hardware

Hasta aquí todo bien, pero la codificación de Manchester tendrá poco valor en el sistema de comunicación si no se puede convertir una señal de Manchester en unos y ceros valores.

datos de sector

Un circuito que puede ser útil en cualquiera de receptor de Manchester se llama “seccionador de datos”.

Sabemos que la codificación Manchester es compatible con acoplamiento de CA y, cuando se usa el acoplamiento AC, el valor medio de la señal recibida será cero. sin embargo, las características de lógica-alta y lógicas de baja pueden ser menos predecible, sobre todo cuando la señal de Manchester está expuesto a ruido o atenuación significativa durante su recorrido desde el emisor al receptor.

Un seccionador de datos (Sé que la traducción italiana de la palabra no es la mejor, Acepto sugerencias), Esto convierte la forma de onda ruidoso / atenuado en una forma de onda digital de limpia mediante la comparación de la señal de Manchester con el valor promedio de la señal; el valor medio se extrae utilizando un filtro RC de paso bajo. Si la señal de entrada es mayor que el valor promedio, comparador se satura a la tensión lógico alto; si la señal de entrada está por debajo del valor medio, satura a la tensión lógica baja.

Como suele ocurrir con los circuitos comparadores, una implementación real debe incorporar la histéresis no dibujado en el esquema de principio para simplificar la discusión. Si va a procesar los datos de Manchester en un microcontrolador, es posible elegir un dispositivo con un módulo de comparador que incorpora la histéresis programable. Esta sería una forma conveniente dividir los datos de entrada y proporcionar la forma de onda resultante directamente al procesador que convertirá la señal de Manchester limpiado en los datos normales en el nivel lógico.

La decodificación a través de hardware

Después de los datos de corte, el receptor tiene una señal codificada por Manchester se ajusta a los niveles lógicos esperados y carente de cantidades significativas de ruido. La siguiente tarea es conceptualmente simple, pero no siempre es tan fácil en la vida real: Nos hemos de entender las transiciones positivas y negativas como unos y ceros (o unos y ceros, dependiendo de cómo los datos codificados).

Puede realizar esta operación por medio de hardware. Estoy dispuesto a apostar, sin embargo, que la mayoría de los dispositivos basados ​​en el Manchester utilizar el firmware para la decodificación. implementaciones de hardware son muy complejos y no pueden competir con la flexibilidad y las características avanzadas que se puede incorporar fácilmente en un microcontrolador o procesador de señal digital. sin embargo, el hardware es más rápido y no consume recursos de la CPU, por lo que es sin duda un valor en la búsqueda de una solución a base de decodificación, al menos en parte, hardware.

Pastilla

He encontrado este primer circuito en una aplicación de notas Microchip.

http://ww1.microchip.com/downloads/en/AppNotes/01470A.pdf

No se pretende ser una solución autodecodificable; más bien, Están presentando un enfoque que puede ser implementado utilizando un hardware que se han incorporado en algunas de sus recientes microcontroladores, a saber, las células de lógica configurables (CLC) y un oscilador de control numérico (RECUERDE).

Diagrama tomado de Microchip.

Ciprés

El siguiente circuito es Cypress y debe ser utilizado con un PSoC 1.

siempre desde una aplicación indicaciones del fabricante

http://www.cypress.com/file/138821/download

Diagrama tomado de Cypress.

Ambas implementaciones son interesantes en cuanto a que no se recuperan los datos originales directamente de las transiciones de Manchester, a pesar del hecho de que la codificación Manchester se basa en las transiciones. más bien, explotar el hecho de que la nivel de lógica original siempre hay un poco primero la transición. Esto será más claro si nos fijamos en el diagrama de Manchester hora habitual:

Digamos que el borde activo del reloj es el flanco ascendente. Si la señal de datos es baja en el flanco de subida del reloj, la señal de Manchester hace una transición de baja a alta para representar la lógica baja. Si la señal de datos es alta en términos de subida del reloj, la señal de Manchester hace un alto a bajo de transición. La señal de Manchester tiene transiciones cuando el reloj siempre tiene un flanco positivo.

también, la señal de Manchester es prepararse para esta transición moviendo, si es necesario, estatus que le permite hacer la solicitud de transición. Si la señal de Manchester debe hacer una transición de bajo a alto (correspondiente a un lógico bajo), Debe ser lógico bajo antes de hacer esta transición. Si tiene que hacer una transición de alto a bajo (correspondiente al lógico alto), Debe ser lógico antes de hacer la transición. por lo tanto, el nivel lógico de la señal de Manchester inmediatamente antes de la transición es igual al nivel lógico de los datos originales.

Tanto el enfoque Cypress que la de Microchip incorporar un retraso que hace que las muestras de circuito la señal de Manchester después de haber pasado las tres cuartas partes del período de bit. Este tiempo está basado en el hecho de que la señal de Manchester puede tener que desplazarse a la mitad del periodo de bit (suponiendo que el período de bits comenzando por el borde delantero del reloj original cuesta arriba, como en los diagramas anteriores). Al retrasar durante tres cuartas partes del período de bit, el circuito está garantizada para muestrear la señal después de la transición del periodo de los bits centrales, y antes de la transición activa.

Crear el retardo apropiado es fácil si el receptor sabe siempre el periodo de bit que será utilizado por el transmisor, pero incluso si no fuera, el receptor puede recuperar el reloj del flujo de datos Manchester. Puede encontrar más de lo que siempre quiso saber sobre la recuperación del reloj Manchester en esta tesis

http://digital.library.okstate.edu/etd/umi-okstate-1551.pdf

 

Silicon Labs

Si desea reflexionar sobre otro circuito decodificador, la siguiente implementación (También se basa en el concepto de las tres cuartas partes del período de bit) Ha sido diseñado por SiLabs para su uso en sus microcontroladores que incluyen unidades de lógica configurables (CLU).

https://www.silabs.com/documents/public/application-notes/AN921.pdf

Diagrama tomado de Silicon Labs.

conclusión

Sin duda, este artículo no va a disipar todas las dudas que, a través de los enlaces en el artículo se examinará el tema en su totalidad.

Continuando con la discusión abandonaría la lectura, para aquellos realmente interesados ​​habrá una primera prueba para continuar en el conocimiento de este tema. Para todos los demás será una noción que no hace daño a saber, sin tener la necesidad de seguir profundizando en el tema.

Amilcare

2 comentarios
  1. Amilcare
    Amilcare Dice:

    Nunca había pensado en tal hipótesis, pero si se utiliza actualmente para las transmisiones de LAN, probablemente, el sistema utilizado para tener el nivel original de mirar el nivel justo antes de la transición es la misma señal antes de codificar realmente funciona.
    Les prometo que tan pronto como profundizar este aspecto, y refiriéndose.

  2. theremino
    theremino Dice:

    buen artículo !!!
    Leí de un tirón y me hizo entender casi todo en cinco minutos.
    Dudo, sin embargo, sigue siendo una. Probé un poco’ en Internet y no pude solucionarlo:
    1) He visto la imagen con la señal siempre a uno que es una onda cuadrada en la frecuencia de reloj.
    2) Busqué en Internet una foto con la siempre señal a cero y no he encontrado.
    3) Por lo que entiendo si la señal es siempre cero éste debe salir de una onda cuadrada igual a la obtenida con el siempre señal a uno. Así como sería entonces distinguir las dos señales?

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja una respuesta