codificación Manchester

5

Según tengo entendido, en Codificación de Manchester se envían los bits conocidos antes de iniciar la transferencia.

Pero no entendí por qué: uno de los principales beneficios de Manchester, es el hecho de que la sincronización entre los dos lados es más fácil. Entonces, ¿por qué necesito enviar bits antes de la transferencia?

    
pregunta Adan Sh

6 respuestas

10

Hay dos razones principales para usar un preámbulo para iniciar un paquete de datos codificados en Manchester:

  1. Deje que el segmentador de datos se asiente. Manchester se usa a menudo en enlaces de radio y enlaces físicos donde no hay conexión directa y la diferencia entre un nivel alto y bajo no se conoce explícitamente desde el principio. Esto generalmente significa que una señal anlog se presenta a un segmentador de datos , que detecta y transmite la secuencia de máximos y mínimos digitales.

    Una propiedad de la codificación de Manchester que lo hace útil para tales enlaces es que promedia a 1/2 alto y 1/2 bajo en intervalos cortos. Cada bit tiene el mismo nivel medio de 1/2. Esto hace que la división de datos sea relativamente fácil porque puede ser un simple comparador con el nivel 1/2. Sin embargo, eso significa que tienes que saber cuál es el nivel 1/2. Los antiguos receptores lo harían en hardware filtrando el flujo manchester de paso bajo. Dichos filtros deliberadamente no reaccionan mucho en un tiempo de un solo bit, así que tómese unos pocos bits para resolverlos. El preámbulo contiene bits desechables que el receptor no está destinado a detectar correctamente, mientras que su rebanador de datos encuentra el nivel 1/2.

  2. Indica el inicio del paquete. Como la mayoría de los receptores de Manchester tienen control de ganancia automático a través del nivel 1/2 utilizado para el corte de datos como se describe anteriormente, el receptor interpretará el ruido de fondo como una serie de niveles altos y bajos, al igual que la señal real. En general, no existe tal cosa como que no haya señal para la parte de la interpretación de la transmisión digital del receptor, solo que la transmisión tiene sentido cuando hay una señal real.

    Manchester contiene cierta información redundante para que algunas secuencias de niveles puedan detectarse como no válidas directamente sin una interpretación de nivel superior. Por ejemplo, tiene que haber una transición en el centro de cada bit. Tres medias bits del mismo nivel son ilegales, por ejemplo, dos-uno-dos, por ejemplo.

    Mientras se restablece el inicio del paquete cada vez que se detecta una infracción como la anterior, todavía hay suficientes posibilidades de que la basura aleatoria se convierta en un paquete que se deba tratar en la mayoría de los casos. No desea que los niveles más altos se adentren en la lógica de decodificación de paquetes del ruido cuando aparece un paquete real que luego parece más información para el paquete falso. Eventualmente, el paquete falso probablemente fallará en la prueba de suma de comprobación del paquete, pero aún así perderá el paquete real.

    Una buena estrategia es hacer que el preámbulo sea una secuencia única que no sea válida en el resto del paquete. Cuando se detecta esta secuencia, la lógica de interpretación de paquetes de nivel superior se restablece al inicio del paquete, independientemente de lo que pensaba que estaba haciendo en ese momento.

    Normalmente hago esto usando un esquema de bits de relleno. Si los datos reales contienen 7 0s seguidos, por ejemplo, el transmisor debe agregar un 1 bit de relleno después de los 0s. El receptor lo sabe y elimina el bit 1 después de 7 bits consecutivos. Esto significa que nunca hay 8 bits consecutivos de 0, lo que sería una infracción de relleno de bits. Si se detecta una infracción de relleno de bits, entonces la lógica de interpretación de paquetes se puede restablecer de forma segura al inicio del paquete, ya que definitivamente no estaba en un paquete válido en ese momento. El preámbulo contiene deliberadamente tal violación de bits de relleno para forzar que la lógica de interpretación se reinicie al inicio del paquete.

    Este esquema de bits de cosas y el reinicio al inicio del paquete no es estándar en Manchester, pero es algo que me gusta usar para hacer que Manchester sea más confiable en enlaces como la radio.

Hay más en la codificación de Manchester cuando realmente piensas en los detalles. Puede hacer un cortador de datos con una respuesta mucho más rápida en un procesador digital, por ejemplo, en los casos en los que puede usar otros medios que no sean el relleno de bits para detectar de manera confiable el inicio del paquete, pero eso es todo un tema sobre sí mismo.

    
respondido por el Olin Lathrop
6
  

Uno de los principales beneficios de Manchester, es el hecho de que la sincronización entre   los dos lados son más fáciles.

El tipo de sincronización que facilita la codificación de Manchester es la sincronización en el nivel de bits , no en la palabra o nivel de paquete . De hecho, no ayuda en absoluto con el último. Y es por eso que aún es posible que necesite transferir algunos bits conocidos, antes que sus bits de datos.

Ayuda con la anterior (la sincronización a nivel de bits), porque facilita la recuperación del reloj.

  

Entonces, ¿por qué necesito enviar bits antes de la transferencia?

Para que te ayuden a sincronizar a nivel de palabra / paquete. La codificación de Manchester no te ayuda a ese nivel.

    
respondido por el Telaclavo
3

Manchester es un método de codificación, no un protocolo, que describe mucho más sobre la comunicación. Ethernet es un protocolo que utiliza codificación Manchester.

La codificación de Manchester funciona a nivel de bits, solo ve un solo bit, no importa los bits anteriores o sucesivos. No importa si es el primer o el quinto bit, y como tal no puede dictar enviar bits adicionales antes del inicio de una transferencia.

Lo que probablemente querrás decir es que el protocolo comenzará la transferencia de un paquete / palabra con una secuencia conocida (también codificada por Manchester, por lo que se convierte en el primer bit).

Considere la siguiente secuencia de cuatro pulsos negativos:

  

\ $ \ mbox {1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1} \ $

No hay manera de saber si esto es 0x0000 o 0x1111 , y Manchester no le importa. Tendrás que definir bits extra a tus datos para poder decodificarlos. Por ejemplo, si su protocolo dice que cada mensaje comienza con un preámbulo de 1 -bit, debe ser 0x1111 . Los preámbulos de varios bits facilitan la sincronización, pero también disminuyen la eficiencia del canal.
Por cierto, tales secuencias, solo 1 s o 0 s, son las únicas que no pueden ser descodificadas. Cualquier secuencia que tenga al menos 1% de 1 y 1% de 0 se puede decodificar. Relleno de bits puede ayudar a evitar todos los patrones 1 s o todos 0 s.
Incluso entonces un preámbulo sigue siendo útil porque el decodificador podrá emitir bits a medida que se reciben. Sin un preámbulo, los datos como 0x0000001 solo se pueden decodificar cuando se recibe el bit 1 .

Sin embargo, el preámbulo es no un requisito de codificación de Manchester!

    
respondido por el stevenvh
2

La codificación de Manchester da como resultado una señal bifase: ya sea medio bit tiempo bajo, seguido por medio bit tiempo alto (que es por ejemplo para un 1 lógico), o medio bit tiempo alto seguido por medio bit tiempo bajo (% lógico 0 ). No requiere ningún bit extra.

Es posible que el siguiente nivel de protocolo más alto requiera un preámbulo antes de que se transfiera la carga útil real, pero eso no está definido por Manchester. Manchester only se ocupa de la codificación de bits individuales, no conoce conceptos como mensajes o paquetes.

    
respondido por el Federico Russo
2

El motivo habitual es darle tiempo al reloj del receptor para sincronizar / bloquear antes de que lleguen los datos reales. Normalmente se usa una serie de ceros o consecutivos.

Con MIL-STD 1553 (un protocolo de bus de aviónica) una lógica (o cero) que dura Se envían 1,5 períodos de bits seguidos de un cero lógico (o uno) que dura 1,5 bits. Esto es en realidad una violación del código de Manchester pero es fácilmente detectable por el receptor.

En las etiquetas RFID de baja frecuencia que utilizan el protocolo EM 4100 , un marco de datos comienza con un encabezado de 9 Manchester unos La sincronización no es el problema aquí ya que el receptor ya tiene un reloj (porque lo está irradiando a la etiqueta de transmisión). Sin embargo, los datos pueden invertirse, por lo que el receptor debe determinar la polaridad. Dado que 9 bits consecutivos de la misma polaridad nunca pueden aparecer en los datos reales (debido a los bits de paridad), el encabezado se puede detectar sin ambigüedad como una ejecución de unos.

    
respondido por el MikeJ-UK
-3

Nombre al menos 3 métodos de Manchester Code o Bi-Phase, a) Marca, Espacio, Transición

Nombre al menos 3 niveles de sincronización en la comunicación;

a) sincronización de bits, b) sincronización de palabras (~ byte) c) sincronización de cuadros

¿Qué es óptimo para la sincronización de cuadros?

Código de correlación cruzada donde las palabras clave tienen una alta singularidad cuando están sincronizadas y no sincronizadas. es decir, el esquema de detección de patrones que también es menos probable que sea datos también.

Esto es esencial al convertir bits de serie en palabras paralelas y sincronización de cuadros. Esto es lo que sabía hace 35 años cuando implementé un sistema SCADA a mediados de los 70. Puede haber cambiado ahora. La sincronización del reloj puede ser tan simple como un XOR con un retardo de 1 disparo en las transiciones para crear un reloj no retriggerable, o mejor un PLL con transiciones que muestren un VCXO ultra estable utilizando una señal de reloj Sawtooth y bordes de datos para muestrear el error de fase Voltaje. Por supuesto, su filtro y medio de paso de banda introducirá jitter, por lo que debe aprender a usar filtros de coseno elevado donde el desplazamiento de bits es cero. La tasa de error de bits o BER es una función de la asimetría de su rebanador de reloj, jitter & Error de fase en tu reloj y jitter en tus datos. La BER se puede predecir directamente desde SNR y las pruebas de margen de fase ayudan a aislar la causa de sus problemas de BER mediante el uso de ventanas de tiempo reducidas y cambiadas para forzar su reloj fuera del centro y ver si los datos siguen siendo válidos.

Este es el método secreto para analizar cualquier sistema de comunicación marginal. Me apliqué a mi SCADA comm, Telemtry para el sector aeroespacial, recuperación de datos de HDD y Telecom T1 días.

(si desea detalles sobre el VCO de diente de sierra con el error de fase de muestra y retención de las transiciones de datos ... solo pregunte: p) Hace más de 30 años que diseñé pero creo que todavía puedo hacerlo.

Por supuesto que era un canal de comunicación síncrono. También puede usarlo para comunicación ASYNC. y tal vez es lo que pretendías con los bits de preámbulo. . Utilicé +/- detectores de picos y retenciones para el filtro de seguimiento de la rebanadora.

Si ninguna de estas respuestas te funciona, quizás intentes con otra pregunta ...

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas