UART de bajo costo sobre fibra

3

Necesito extender un UART de 5 V sobre la fibra por razones de aislamiento. Los aisladores digitales / optos no son buenos, ya que necesito más aislamiento que eso (0,1 pF de acoplamiento máximo de un lado a otro). El contenido de UART se corrige debido a los requisitos de compatibilidad con versiones anteriores: 57600 baudios. La distancia máxima de transmisión es de 10 m.

Mi primer pensamiento fue usar transmisores y receptores TOSLINK. Compré algunos (tres conexiones: 5V, GND e IN o OUT respectivamente) y comencé a jugar. El primer problema que vi fue la inversión de datos al conducir con una simple señal de prueba de 10 ms encendida, 20 ms fuera de prueba. Bien, agregó un inversor - esto se arregló.

Luego lo configuré en 57600 con un flujo de datos continuo, y obtuve una basura horrible (en cuanto a los caracteres, la forma de onda está limpia pero es incorrecta). Reduje la velocidad a 9600 y envié caracteres individuales para que pudiera observar la forma de onda, no hay problema. Aumentó la velocidad de regreso a 57600 y envió personajes individuales. Cosas extrañas. Básicamente, la forma de onda del personaje comienza bien, pero luego a mitad de camino a través de los invertidos. Me parece que el transmisor está tratando de asegurar un sesgo de 0 DC; esto tendría sentido de alguna manera ya que creo que TOSLINK utiliza la codificación de Manchester.

Entonces dos preguntas:

  1. ¿Este comportamiento ha sido visto por personas con otros transmisores TOSLINK? ¿Hay transmisores de "paso directo" por ahí?

  2. ¿Alguien tiene una solución alternativa que usa fibra? La mejor opción que he visto hasta ahora es la serie Avago HFBR: es fácil de usar (parece) pero tiene un costo relativamente alto. ¿Alguna sugerencia mejor?

pregunta stefandz

2 respuestas

2

Esto resulta ser un límite inferior en el ancho de banda aceptable de algunos, posiblemente la mayoría de los receptores TOSLINK, generalmente de 0.1Mb / s. Los que compré originalmente venían con poca información, solo que detallaban que aceptaban una entrada TTL y varios límites de corriente / voltaje.

Mirando la hoja de datos de un receptor TOSLINK en particular que se menciona en esta pregunta de ESE , hay mucho más explícito afirmar que las frecuencias operativas se extienden hasta DC y eso incluye para la codificación NRZ como el simple UART TTL.

Si bien la modulación FSK puede ser una opción para algunos, ya que la hoja de datos en la parte seleccionada originalmente era tan pobre que no quería arriesgarme, por lo que opté por una parte con clasificación de DC.

    
respondido por el stefandz
3

Podrías agregar modulación adicional, mantendría felices a los dispositivos receptores ALC.

Como tiene al menos 3 MBit / s de velocidad de datos disponible, tiene bastante espacio para la cabeza.

Puede usar la modulación FSK básica con dos tonos, por ejemplo, 250 kHz y 1000 kHz.

Esto le permitiría usar un demodulador bastante simple (comparador de ancho de pulso) y tener menos de 20% de fluctuación de borde de bits.

Se pueden probar frecuencias más altas, pero requieren un trabajo de diseño más cuidadoso.

EDITAR:
Para aquellos que no están preocupados con regularidad por tales cosas, las comunicaciones ASYNCH están diseñadas para poder tolerar una fluctuación de flanco de período de medio bit nominal, esto se debe a que el muestreo de bits debe ocurrir en el centro de la celda de bits y se supone que el borde de inicio es la referencia. punto. Esto significa que puede tener hasta la mitad de un error de temporización de bit en los últimos (generalmente 10 bits) y aún así decodificar correctamente. Por lo tanto, el 50% también corresponde a un error acumulativo del período de bits del 5% (o error de reloj) sobre 10 bits. El jitter perimetral de un sistema de modulación FSK simple no es acumulativo, pero se suma al presupuesto de error de reloj.

Los relojes en estos días son bastante buenos, por lo que el uso de un sobremuestreo de 5 x dejará la señal como ruidosa pero dentro de las especificaciones.

    
respondido por el KalleMP

Lea otras preguntas en las etiquetas