Codificación Manchester

Codificación Manchester [ 1 ____]3[absolutobipulsocódigo,]2[II-Manchestercódigo,] soporte de información .

La señal codificada por el código Manchester es autosincronizante, es decir, no se requiere una línea de transmisión de reloj adicional para la transmisión de datos , debido a que durante la transmisión de un bit de datos, independientemente de si es 1 o 0, uno se proporciona la transición de un nivel a otro, lo que permite al receptor sincronizar su reloj interno o temporizador con el reloj del transmisor.

Una señal codificada de acuerdo con el código de Manchester no tiene un componente constante incluso en el caso de transmisión de largas secuencias de ceros y unos, por lo que las conexiones eléctricas que transmiten la señal pueden aislarse galvánicamente , por ejemplo, utilizando un transformador [5] .

El nombre de la codificación proviene de la Universidad de Manchester , donde dicha codificación se utilizó por primera vez para almacenar datos en el tambor magnético de la computadora Manchester Mark I.

Descripción

Convenciones de codificación de bits

Existen diferentes convenciones para codificar bits individuales en código Manchester:

Codificación de datos mediante OR EXCLUSIVO y su inversión
Nivel de
reloj
_
bit
de datos
Nivel de código IEEE 802.3
Manchester [6]

Nivel de código de Thomas
Manchester
0 0 0 una
una una 0
una 0 una 0
una 0 una


Principio de codificación

La codificación del código Manchester es relativamente simple: se realiza mediante la operación lógica " OR EXCLUSIVO " (suma módulo dos, XOR ) sobre el bit codificado actual y el bit generador de reloj, en el caso de codificación según IEEE 802.3 (ejemplos en pseudocódigo ):

Salida := Data_bit XOR Clock_generator ;

o con inversión al codificar según Thomas:

Salida: = NO (Data_bit XOR Clock_generator );

Tal vez la implementación tanto de hardware como de software del codificador.

En la implementación de hardware, se utiliza un generador de reloj con un ciclo de trabajo de 2 y un período de repetición igual al período de codificación, el registro de desplazamiento desde el cual se extraen el bit de datos codificado y el elemento lógico O EXCLUSIVO en cada período .

Cuando se implementa en el software, se crea un generador de reloj virtual utilizando un temporizador de software con una duración de exposición igual a la mitad del período:

SI timer_half_period se disparó ENTONCES reinicie el temporizador; Clock_generator := Clock_generator XOR 1 ; FIN SI ;

Es posible y preferible implementar un generador de reloj utilizando interrupciones de temporizador de hardware.

Además, para formar el código de salida final, se realiza una operación O EXCLUSIVA con un bit de datos, por ejemplo, avanzado desde el registro donde se encuentra la palabra codificada actual.

Principio de decodificación

Hay dos opciones para decodificar:

Además, todos los niveles y frentes se describen en relación con la convención de codificación IEEE 802.3, con el acuerdo según G. E. Thomas, todos los niveles y frentes se reemplazan por los inversos.

Con un período de codificación conocido

En el primer caso, al decodificar, primero se realiza la sincronización de bits: se determina la mitad del período. Para hacer esto, el decodificador monitorea las subidas y bajadas de la señal, dos caídas adyacentes de diferentes direcciones, separadas por 1 período, son una señal de ir secuencialmente 0 y 1 o 1 y 0 en el flujo de datos, y si la primera de estas gotas es ascendente (frente), y la segunda es descendente (descendente), entonces esto significa que en el flujo de datos es una combinación de dos bits 1 y 0 o 0, 1 en el caso de un borde descendente, también, el el segundo de estos bordes indica la mitad del período de codificación. Una combinación de estos dos bits se escribe en el flujo de bits de datos decodificados. A continuación, el decodificador espera un tiempo aproximadamente igual a 3/4 del período y comienza a monitorear la ocurrencia de una gota, cuando aparece una gota, si es una gota, significa que el siguiente bit de datos es 0 y 1. está al frente. Al mismo tiempo, el temporizador de exposición para 3/4 del período se reinicia usando el mismo diferencial y luego se repite el proceso.

Se eligió el inicio de la verificación de la llegada de la gota después de 3/4 del período por razones de inmunidad al ruido, por ejemplo, como resultado de jitter y/o propagación (alargamiento) de las gotas, ruido aditivo en las líneas de transmisión, los momentos de ocurrencia de las gotas fluctúan en relación con el caso idealizado, por otro lado, con bits idénticos vecinos en el flujo de datos, los bordes ocurren en el límite entre dos períodos de transmisión de los mismos bits, y la verificación de la ocurrencia del borde debe hacerse después de los momentos de los límites de los relojes.

Además, a la llegada de cada transición informativa, es posible medir la duración del período con un temporizador auxiliar y ajustar, si es necesario, la duración de la exposición del temporizador a 3/4 del período. Esto le permite realizar un seguimiento de los cambios lentos en el período del codificador, por ejemplo, las fluctuaciones en la velocidad de avance de la cinta magnética cuando se lee desde unidades de cinta magnética, o las diferentes velocidades de una tarjeta de banda magnética por parte de una mano humana.

Para facilitar la sincronización de bits, los bloques de datos en el código Manchester, especialmente cuando se almacenan en medios magnéticos, suelen estar precedidos por una secuencia de sincronización bastante larga 1010101...

Determinación del comienzo de un bloque de información

Lograr la sincronización de bits no es suficiente para recibir un flujo de bits de información, ya que en muchos casos se desconoce el comienzo de un bloque de información en un flujo de bits indistinguibles, por ejemplo, al leer datos de una unidad de disco magnético. Por lo tanto, se aplica adicionalmente la sincronización en la palabra de sincronización.

El codificador, al codificar al comienzo del bloque de información, inserta una palabra de sincronización binaria o una firma de sincronización , que el decodificador debe conocer. Para iniciar la sincronización de bloques, el decodificador compara constantemente la secuencia de bits en el registro de desplazamiento después de cada desplazamiento, la longitud de este registro es igual a la longitud de la firma, en la que se inserta el siguiente bit en cada período, con la sincronización dada palabra. La coincidencia de la palabra en el registro de desplazamiento y la firma o su inversión es una señal del comienzo del bloque de información, y luego el decodificador interpreta el flujo de bits como informativo. La longitud de la palabra de sincronización en diferentes sistemas es diferente, pero generalmente al menos 2 bytes, en el protocolo Ethernet , por ejemplo, la longitud de la firma se toma en 56 bits.

La palabra de sincronización no debe aparecer en el flujo de información, o al menos la probabilidad de que ocurra debe ser insignificante. Cuanto más larga sea la firma, menos probable es que exista en el flujo de información. Por otro lado, la firma no lleva información útil y una firma larga reduce la tasa de transferencia de información. Si la firma es corta, entonces el flujo de información antes de la codificación se verifica para detectar la presencia aleatoria de una secuencia de bits que coincida con la firma y, si es necesario, el bloque de información se recodifica para excluir la firma, o después de alcanzar la sincronización al comienzo de la firma. el bloque de datos, el decodificador ignora cualquier firma en el bloque de datos hasta el final de recibir el bloque completo.

También se utiliza una variante de sincronización del bloque de información con la ayuda de duraciones de niveles bajo y alto (0 y 1), que obviamente son imposibles en el código de Manchester. En el código "correcto", esta duración no puede ser más que un período; si, por ejemplo, se insertan dos períodos de nivel bajo y dos de nivel alto al comienzo del bloque, entonces tal evento no introduce un componente constante en la señal e indica el comienzo del bloque de información. De acuerdo con GOST 52070-2003, el bloque se sincroniza durante 3 períodos: los primeros 1,5 períodos en la línea se mantienen altos y los 1,5 períodos restantes, bajos. También son posibles otras opciones de sincronización, por ejemplo, mediante una señal a lo largo de la línea de reinicio, etc.

En muchos casos, no se sabe de antemano cuántas veces la señal codificada recibida se ha invertido lógicamente durante la transmisión, por ejemplo, en redes Ethernet, la señal codificada puede pasar por numerosos nodos con equipos de diferentes fabricantes que pueden ser reemplazados en cualquier momento. tiempo, o en el caso de leer las mismas cintas de datos magnéticos en diferentes modelos de unidades de cinta. Por lo tanto, al sincronizar el comienzo de un bloque de datos por una firma, casi siempre se verifica la coincidencia del flujo de datos con la firma y su inversión bit a bit. Si se encuentra una firma invertida, todos los bits de datos recibidos subsiguientes se invierten y no se modifican si se encuentra una firma no invertida. De ello se deduce que con dicha sincronización, no es fundamental según qué acuerdo se realizó originalmente la codificación, según Thomas o según IEEE 802.3.

Decodificación con un período predeterminado

Con un período de codificación desconocido a priori, el decodificador mide inicialmente este período midiendo el tiempo entre bordes adyacentes. Dado que los puntos de borde de las señales reales fluctúan con el tiempo debido a fluctuaciones, ruido, retrasos irregulares del software en el codificador de software, etc., no es suficiente medir solo unos pocos pares de bordes adyacentes. Por lo tanto, cuando se mide un período y medio período sobre un flujo de datos, generalmente se acumulan algunas estadísticas .

En un código correcto sin demasiado jitter , el histograma de medición constará de dos grupos de muestras (Figura 4), y cuanto menor sea el jitter, más estrechos serán los grupos en el histograma. El primer grupo corresponde a la duración de la mitad del período, el segundo, al período completo. De acuerdo con los resultados del procesamiento estadístico del histograma recibido, se determina el período y su valor se establece en el generador de reloj interno del decodificador o su temporizador de intervalos.

El cálculo de la estimación del período a partir de los resultados de las mediciones de los períodos y, en su caso, de la mitad del período se realiza mediante la fórmula de la media aritmética ponderada .

donde  es el número de intervalos de tiempo de muestras de intervalos de histograma (bolsillos),  - ancho de intervalo,  es el número total de muestras  es el número de muestras en el intervalo th.

y se eligen para que, por ejemplo, según la figura de ms y ms.

Usando un método similar, se determina el valor de la mitad del período promediado sobre la población estadística.

Después de determinar el período, la decodificación adicional no difiere de la decodificación descrita anteriormente con un período predeterminado.

Implementaciones

Software

En las primeras computadoras domésticas, por ejemplo, Sinclair ZX80 , " Elektronika BK-0010 ", ZX Spectrum , las grabadoras de cinta domésticas se usaban como unidad externa. En estas computadoras, la codificación y decodificación del código Manchester durante el intercambio con la grabadora se realizó mediante programación.

En los sistemas modernos, la codificación y decodificación de software rara vez se usa, y estas funciones se asignan a microcircuitos especializados o bloques funcionales como parte de otros microcircuitos, por ejemplo, en microcontroladores , microprocesadores .

Hardware

Hay una serie de chips especializados para codificar y decodificar el código Manchester, por ejemplo:

  • 5862IN1N4 - Decodificador de códec Manchester [7]
  • K588VG3, K588VG6 - Codificador-decodificador CMOS del código Manchester, creado a finales de los 80 [8]
  • El DS8102 es un modulador delta-sigma independiente de dos canales que convierte las mediciones de dos pares diferenciales analógicos de entrada en código Manchester en la salida; MAXQ3108 es un microcontrolador de doble núcleo que incluye un decodificador de código Manchester [9]
  • 3D7501, ACT-15530, HI-15530, HD-15530, HD-15531, ST-10894: decodificadores monolíticos de códec Manchester y otros [8] .

Espectro del código de Manchester

Dado que hay dos cambios en el nivel de la señal para cada bit de datos, esto lleva a que el espectro del código Manchester ocupe el doble de ancho de banda en comparación con, por ejemplo, el código NZR ( retorno distinto de cero , transición sin retorno a cero).

En la figura se muestra una comparación de los espectros del código Manchester y NZR. Dado que el código Manchester no tiene una componente constante (en el caso de su codificación por niveles de distinta polaridad iguales en valor absoluto), la densidad espectral de potencia del código Manchester es igual a cero a frecuencia cero, a diferencia del código NZR, que siempre tiene un componente constante en cualquier nivel y su espectro tiene una potencia espectral finita a frecuencia cero.

La potencia espectral máxima de la codificación Manchester cae en una frecuencia igual a la frecuencia de bitrate .

Codificación Manchester como modulación por cambio de fase

La codificación Manchester se puede considerar como un caso especial de modulación por desplazamiento de fase binaria  (PSK) en la que los datos controlan la fase de una onda cuadrada de una portadora cuya frecuencia es la tasa de bits.

Ventajas y desventajas

Ventajas

Sincronización automática

La presencia de dos transiciones garantizadas durante la transmisión de 1 bit permite que la señal se autosincronice , lo que permite que el receptor (decodificador) sintonice correctamente la tasa de transmisión. Para la transmisión, no se requiere una línea adicional para transmitir la señal del reloj. Además, no es necesario insertar bits de inicio y parada en el flujo de bits de datos, como, por ejemplo, en los protocolos RS-232 y RS-485, por lo que la densidad de datos en el flujo de bits de código total se acerca al 100% ( por ejemplo, para el código NRZ 1-8 -0 es igual al 80%).

sin corriente continua

Independientemente del flujo de bits en particular, una señal de codificación Manchester no contiene un componente de CC si los valores de los niveles superior e inferior son iguales en valor absoluto. Esto facilita la construcción de un aislamiento galvánico utilizando un transformador [5] y lectura-escritura en medios magnéticos.

Desventajas

Banda ancha

La transmisión del código Manchester requiere el doble del ancho de banda del canal (ancho del canal) en comparación con, por ejemplo, la codificación NRZ .

requisitos de fluctuación

Hace grandes exigencias a la estabilidad de los frentes en el tiempo - bajo jitter. Hay otros métodos de codificación, por ejemplo, el código 8B/10B tiene un ancho de banda más estrecho, pero es más exigente en términos de reducción de fluctuaciones.

Aplicaciones de la codificación Manchester

Se aplica la codificación Manchester:

  • En tecnología Ethernet ( IEEE 802.3 ). Por ejemplo, el código Manchester-2 se usa en Ethernet, Token Ring , MIL-STD-1553B (GOST 52070-2003), MIL-STD-1760 y muchos otros estándares de protocolo de red [11] .
  • En  tecnología 10BASE-T .
  • Protocolos de control de varios dispositivos a través de infrarrojos.
  • en etiquetas RFID .

Notas

  1. ↑ 1 2 3 4 5 6 7 Tanenbaum E. Redes informáticas. - 4ª ed.- San Petersburgo. : Pedro, 2003. - 992 p. — ISBN 5-318-00492-X .
  2. ↑ 1 2 3 J. Park , S. McKay , E. Wright. Transmisión de datos en sistemas de control y gestión: una guía práctica / traducción del inglés. V. V. Savelyeva . - M. : IDT Group LLC, 2007. - 480 p. - ISBN 978-5-94833-023-5 .
  3. ↑ 1 2 3 4 5 Berlín A. N. Conmutación en redes y sistemas de comunicación. - M. : Eco-Tendencias, 2006. - 344 p. - ISBN 5-88405-073-9 .
  4. Abilov A.V. Redes de comunicación y sistemas de conmutación. - M. : Radio y comunicación, 2004. - 288 p. — ISBN 5-256-01704-7 .
  5. ↑ 1 2 Dunsmore Brad, Skander Toby. Manual de tecnologías de telecomunicaciones. - M. : Williams, 2004. - 640 p. - ISBN 5-8459-0562-1 .
  6. - notes/index.mvp/id/3435 Codificación de datos de Manchester para comunicación por radio. , < https://www.maximintegrated.com/en/app-notes/index.mvp/id/3435 > 
  7. Chip de código de Manchester especializado . Consultado el 24 de septiembre de 2020. Archivado desde el original el 10 de septiembre de 2016.
  8. 1 2 https://smekni.com/a/121807/preobrazovatel-kodov-manchester-2/ Conversor de código Manchester-2
  9. MAXQ3108
  10. Fundamentos de la comunicación de datos . Consultado el 24 de septiembre de 2020. Archivado desde el original el 16 de agosto de 2021.
  11. Protocolos de red . Consultado el 24 de septiembre de 2020. Archivado desde el original el 14 de marzo de 2022.

Literatura

  • Forster R. (2000). "Codificación de Manchester: definiciones opuestas resueltas". Revista de Ciencias de la Ingeniería y Educación. 9 (6): 278. doi:10.1049/esej:20000609.
  • Tanenbaum, Andrew, S. (2002). Redes informáticas (4ª edición). Prentice Hall. páginas. 274-275. ISBN 0-13-066102-3
  • Stallings, William (2004). Datos y comunicaciones informáticas (7ª ed.). Prentice Hall. páginas. 137-138. ISBN 0-13-100681-9.
  • Goldstein B.S. Protocolos de red de acceso. - BHV-Petersburgo. — 2005.
  • Sukhman S. M., Bernov A. V., Shevkoplyas B. V.  Sincronización en sistemas de telecomunicaciones: análisis de soluciones de ingeniería. - M .: Eco-Trenz, - 2003, 272 p. ISBN 5-88405-046-1

Enlaces