¿Para qué sirve el efecto estroboscópico de datos?

Al buscar aleatoriamente algo más, descubrí este extraño esquema de comunicaciones llamado estroboscopio de datos .

Parece que en lugar de enviar una línea de datos y reloj, envía una línea de datos y luz estroboscópica. La línea estroboscópica son los datos y lo que el reloj habría sido xoreditado juntos.

Entonces, la verdadera pregunta es: ¿Por qué harías esto (aparte de que es "genial")? ¿Hay algún uso práctico de este método de envío de datos?

Piense en un entorno ruidoso donde tanto los datos como la luz estroboscópica cambiaron de estado

Respuestas (2)

ingrese la descripción de la imagen aquí

Figura 1. Datos estroboscópicos. Fuente: datos estroboscópicos .

Nunca antes había oído hablar de este sistema, pero puedo ver que resuelve un problema con la transmisión de datos asíncrona.

ingrese la descripción de la imagen aquí

Figura 2. Forma de onda RS232. Tenga en cuenta que se requiere el bit de inicio para activar el receptor para comenzar un ciclo de recepción de datos. Fuente: Wikipedia Commons .

En cualquier sistema asíncrono, siendo RS232 el más utilizado, es necesario tener el transmisor y los receptores configurados a la misma velocidad de transmisión y enviar un bit de inicio para indicarle al receptor que los datos están llegando y comenzar su ciclo de temporización. Efectivamente, una vez que el receptor ve el bit de inicio, espera 1,5 ciclos (para que esté leyendo en el centro de la marca o espacio) y realiza una lectura. Esto se repite 7 u 8 veces (según el protocolo) con un ciclo de retraso entre lecturas. Con suerte, las tolerancias del reloj son lo suficientemente estrictas como para que las lecturas aún estén lejos de los bordes del pulso al final de los 7 u 8 bits. Los osciladores de cristal han hecho de esto un problema menor, pero las máquinas Telex, por ejemplo, eran mecánicas y para minimizar los errores de temporización usaban transmisión de datos de 5 bits. Ver código Baudot .

Del artículo de Data Strobing:

Estos tienen la propiedad de que Data o Strobe cambian su valor lógico en un ciclo de reloj, pero nunca en ambos . Esto permite una fácil recuperación del reloj con una buena tolerancia a la fluctuación mediante XORing de los dos valores de línea de señal.

Existe una forma equivalente de especificar la relación entre Data y Strobe. Para los bits de datos pares, Strobe es lo opuesto a Data. Para bits de datos impares, Strobe es lo mismo que Data. A partir de esta definición, es más obvio que el XOR de Data y Strobe producirá una señal de reloj. Además, especifica los medios más simples para generar la señal estroboscópica para un flujo de datos determinado.

Esto significa que, por ejemplo, si se transmite una cadena de ceros o unos en la línea de datos, la línea estroboscópica cambiará de estado en cada bit. La ventaja es que se pueden transmitir cadenas muy largas de bits de datos sin necesidad de bits de inicio y parada, al tiempo que se garantiza una temporización precisa en el otro extremo.

¿No es esto lo mismo que la codificación Manchester?
¿No podrías tener la misma ventaja si simplemente usas un reloj normal con rs232?
@DwayneReid Ninguna codificación de Manchester transforma los datos... esta codificación transforma el reloj
@Darth: Eso suena como discutir sobre el uso de palabras. El reloj Y los datos se combinan, de cualquier manera. ¿Ha examinado la codificación Manchester IEEE 802.3? Me parece un XOR.
Manchester Encoding "codifica" el reloj en los datos, por lo que se necesita una ÚNICA línea de datos (a expensas del doble de baudios). Esto todavía necesita 2 líneas, por lo que no es comparable. Esto es más comparable con GRAYCODE que se usa cuando se permite el incremento secuencial de datos (codificadores, etc.). Es por eso que dije en mi comentario detección de errores.

Esto se debe a que el esquema de codificación de datos estroboscópicos mejora la tolerancia al sesgo a poco menos de 1 período de reloj frente a poco menos de medio período de reloj para un esquema tradicional de codificación de datos + reloj.

Con datos + reloj, si la transición del reloj es medio período anterior o posterior, ya no está claro qué bit de datos pertenece a qué ciclo de reloj.

Con la codificación de datos estroboscópicos, dado que la línea de datos y la línea estroboscópica nunca pueden cambiar al mismo tiempo (pero uno de los dos siempre cambia para cada bit codificado), aún puede "alinear" los datos y el estroboscópico incluso con un sesgo de reloj significativo. (Es decir, puede recuperar el reloj con hasta, casi, un período completo de sesgo).

Pensando nuevamente en el ejemplo donde el sesgo es la mitad del período del reloj:

Con datos/reloj, no sabrá si una transición en la línea de datos corresponde al flanco ascendente anterior o posterior en la línea del reloj.

Con data/strobe, nunca puede haber dos transiciones para el mismo bit. Entonces, en el caso de un sesgo igual a la mitad del período, tendrá algunos ciclos en los que cambiarán tanto los datos como el sesgo, y otros en los que no cambiará ninguno. Luego cambia la forma de onda para corregir esto. Los únicos casos en los que no estará claro cómo corregir serán si la línea de datos nunca cambia o si siempre cambia. Pero en esos casos no importa, ya que está codificando todos los 0 o todos los 1 o alternando 0 y 1 y puede saber cuál con solo mirar el estado de la línea de datos.

En la práctica, no necesita “decir” cómo cambiar la forma de onda. Simplemente extraiga el reloj a través de XOR: el ciclo de trabajo no será del 50%, pero los bits codificados siempre se alinearán con los períodos de reloj (reducidos a la mitad).

Lo siento, no puedo agregar diagramas de tiempo, lo que sin duda ayudaría. Esperemos que esto siga siendo útil.