Uso de módulos SFP desde un microcontrolador

Estoy interesado en tener un dispositivo integrado que envíe datos ópticamente. Esto es para prueba y medición, donde tener cables conductores es problemático ya que perturbará la medición. El dispositivo está construido como un prototipo ahora excepto por la interfaz de envío de datos. Los requisitos de velocidad de datos son moderados (10-20 Mbps en un sentido). La distancia es corta, 5-10 pies. Esto tiene un poco de energía limitada, pero está bien usar 0.2-0.5W para las comunicaciones.

Observé IrDA, pero parece estar casi completamente obsoleto, y las tasas de datos son demasiado bajas (aparte de UFIR/GigaIR, que no está disponible). También miré TOSLINK, y parece estar casi obsoleto, y no puedo obtener transceptores rápidos (125 Mbps), ni puedo averiguar cómo ejecutar los más lentos de 10 MBps de manera confiable a algo cercano a su velocidad nominal máxima.

Ahora, podría piratear algún tipo de protocolo UART sobre fibra completamente patentado, o esperar a LiFi, o modificar algunos de los cables USB ópticos de Corning realmente caros para que no tengan un conductor de alimentación... todos estos son problemáticos de varias maneras. . Entonces pensé, ¿por qué no usar transceptores SFP en ambos extremos?

Solo tengo una idea muy básica de lo que hay dentro de un SFP, y esencialmente no tengo idea de cómo hablarle. ¿Alguien podría explicarme cómo manejar un SFP desde un microcontrolador? ¿O (a) un UART sobre fibra usando SFP y microcontroladores en ambos extremos, o (b) Ethernet usando SFP desde un microcontrolador y un dispositivo Ethernet SFP normal en el otro extremo?

PD Si importa, el microcontrolador es un STM32F446; Me gustaría quedarme con STM32 si es posible. El dispositivo funciona con una batería de iones de litio de 2500 mAh.

PPS puedo construir dispositivos en ambos lados del enlace; el lado cercano probablemente tendría algún tipo de convertidor de serie óptico a USB, si no es simplemente ethernet.

que tal usar un optoaislador... de esa manera los cables solo van cerca del dispositivo, pero no se conectan electricamente
@jsotola Ayuda mucho, pero no es perfecto... sería mejor no tener nada conductor cerca. Puedo terminar teniendo que hacer eso como una alternativa.
TOSLINK es exactamente lo que ha descrito. Son obsoletos, pero ¿y qué? Puedes conseguirlos ahora, y son baratos, y los cables son baratos y fáciles de conseguir. Simplemente conduce el led con un inversor hcmos.
@HenryCrun ¡Gracias! Tenía un par de transceptores TOSLINK pero nunca pude ejecutarlos a toda velocidad por alguna razón... Podía ejecutarlos bien a <1 Mbps, alta tasa de error por encima de eso. Quizás valga la pena echarle un segundo vistazo. ¿Tienes una parte favorita?
Utilicé con éxito los toshiba de 16 M con cables de 3 m para datos de 10 MHz y 16 Mbd. Debe conducir el LED con cmos push-pull, no una unidad de transistor de colector abierto. También debe tener un buen filtro de derivación y estrangulador en el suministro RX. Últimamente he estado usando los chinos a 250k uart, pero no tengo idea de qué tan rápido irán.

Respuestas (2)

Mirando lo que hay en los módulos SFP , puede que no sea tan difícil usarlos directamente.

Dado que las señales están acopladas a CA con LVDS, deberá comunicarse en un protocolo balanceado de CC como Manchester, que su ARM elegido puede admitir o no (mi Microchip SAME70 favorito actual sí lo admite). Y, por supuesto, agregue receptores/transmisores LVDS. Es posible que pueda ignorar la EEPROM ya que solo desea trabajar con un solo tipo de módulo SFP.

A juzgar por los valores que se muestran, es probable que deba mantener la frecuencia en 10 MHz o más, lo que deberá hacer de todos modos para esa velocidad de datos.

Puede o no vale la pena investigar más a fondo, pero me parece prometedor. Aquí hay un extracto del documento pdf anterior:

ingrese la descripción de la imagen aquí

¡Lindo! Para la conversión de LVDS, ¿funcionaría DS90LV019 o algo similar?
No estoy seguro acerca de Manchester, pero probablemente pueda hacer 8b/10b en el software con una tabla de búsqueda. ¿El TX espera datos constantes mientras está encendido? ¿Hay FIFO o envía cada bit a medida que lo recibe?
Usé SN65LVDS1 la última vez... No creo que haya ninguna lógica allí, es casi como un transformador acoplado a CA. Esto es solo una suposición, buscaría un par y haría algunas pruebas ejecutando 5/10/50 MHz a través de la fibra desde un generador de funciones antes de profundizar demasiado. El esquema de Manchester tiene una secuencia de entrenamiento para que las cosas funcionen. Puede obtener placas de evaluación a bajo costo si desea probar el M7 Cortex.
Alrededor de la página 1140 (sí, lo sé) de la hoja de datos está la descripción del modo Manchester de UART. Usamos uno de esos modos para obtener datos en un formato personalizado a través de transformadores en una aplicación aeroespacial especial.

Los transceptores SFP utilizan pares diferenciales de alta velocidad para transmitir/recibir en el lado del host. Por lo general, comienzan a velocidades de datos de 1 Gbps y aumentan a partir de ahí, por lo que no son triviales de implementar y no se pueden conectar a una MCU como la STM32F4; tales MCU simplemente no tienen la interfaz física para ello. Es realmente el dominio de los conmutadores Ethernet ASIC y FPGA.

Si cambia a una MCU que incluye una MAC Ethernet (hay varias opciones en la familia STM32F4), podría usar una PHY convencional con un transceptor óptico. TI tiene una placa de desarrollo que muestra este enfoque utilizando su TLK105L PHY y un transceptor óptico Broadcom AFBR-5803Z. Parece que los materiales de diseño están disponibles, pero no los he mirado. Este es el documento de descripción general de la placa de desarrollo: http://www.ti.com/lit/ug/tidu366/tidu366.pdf. Esto no debería ser más difícil de implementar que una interfaz Ethernet de cobre regular, lo que significa que aún requiere mucho cuidado, pero será menos desafiante que un SERDES 1G+. La desventaja es que, de un vistazo rápido a las hojas de datos, esta solución consumirá casi 1 W, por lo que es probable que no cumpla con su presupuesto de energía, incluso teniendo en cuenta el hecho de que su velocidad de datos será relativamente baja.

Si desea una opción aún más simple, existen otros transceptores de fibra además de los TOSLINK. Broadcom y Avago serían marcas clave a tener en cuenta, pero simplemente navegar por la categoría de transceptores de fibra óptica de Mouser muestra varias opciones prometedoras en el rango de 50-100 Mbd.

Avago ya no existe. Cambiaron su nombre a ... Broadcom (después de comprar la empresa anteriormente conocida como Broadcom).
Además, en lugar de 1x9, OP podría querer ver transmisores y receptores industriales que están diseñados para velocidades de datos más bajas (CC a 5, 10 o 50 Mbd).
@ThePhoton Gracias por el puntero a los transmisores/receptores industriales, ¡eso suena exactamente como lo que estaba buscando! ¿A qué te refieres con "1x9"? No he encontrado ese término antes.
@ajb Ethernet en la MCU con transceptor óptico es definitivamente algo que pensé que podría funcionar, simplemente no tenía el nombre correcto, ¡gracias por el puntero a ese diseño de referencia! Eso podría funcionar. Hmm, solo el AFBR-5803Z cuesta más de $ 20, los módulos SFP completos se pueden obtener por $ 5-6 ... Supongo que probablemente no muchos diseños usen esa solución.
@ajb "Estos generalmente comienzan a velocidades de datos de 1 Gbps y suben desde allí". Supongo que es lo más común hoy en día, pero pensé que hay algunas opciones para Ethernet óptica de 100 Mbps. (no estoy seguro si vienen en SFP)
@Alex I, el AFBR-5803Z mencionado en la respuesta no es un SFP, es un "1x9". Ese es un factor de forma más antiguo que se usa para velocidades por debajo de 1 gpbs. Se llama así por la disposición de sus pines.