¿Codificador / decodificador para conexión en serie sin reloj separado?

0

Estoy creando un enlace donde la capa física es transmisores y receptores SPDIF. Controlo ambos lados del enlace (es decir, no tiene que interoperar con ningún otro equipo). Me gustaría enviar datos desde un microcontrolador, esencialmente tratando esto como un UART. El problema: si la salida permanece baja o demasiado alta (no se envían datos en el UART), la salida del receptor SPDIF se vuelve impredecible y requiere bastante tiempo con transiciones regulares para que se recupere. Normalmente, SPDIF utiliza el Código de marca bifásica (BMC) para solucionar este problema (el reloj siempre se está ejecutando, por lo que siempre hay transiciones de bajo a alto).

¿Cuál es la forma más fácil de codificar y decodificar datos que garantice que el enlace esté siempre en transición entre los estados? Me gustaría usar la menor cantidad de hardware para implementar, y un software relativamente simple; idealmente no hay hardware, y solo se usan los periféricos en el microcontrolador. No tiene que ser BMC; 8/10 por ejemplo estaría perfectamente bien.

    
pregunta Alex I

1 respuesta

2

La mejor solución en términos de rendimiento alcanzable probablemente sería un CPLD o un FPGA pequeño. Si eso no es razonable, entonces recomendaría el uso de modulación de frecuencia. Use un temporizador / contador para transmitir y otro para recibir. Tal vez tenga 3 frecuencias diferentes, una para inactivo, una para alta y otra para baja. Transmita ciclos completos de varios anchos en un extremo utilizando el módulo temporizador / contador, luego use el modo de captura del temporizador / contador para medir la frecuencia en el otro extremo. Creo que puede obtener una velocidad de datos de unos pocos kbps sin demasiados problemas con esta configuración.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas