Construir un multiplexor nmea 0183 con arduino

Hola!
Tengo que interconectar múltiples equipos de navegación electrónica ( anemómetro, ecosonda, veleta electrónica, etc) a un plotter cartográfico, todo el instrumental tiene conexión nmea 0183 de tipo no balanceada. Debería hacer un multiplexor, ya que el protocolo nmea 0183 no permite convergencia hacia un canal de entrada. Alguien sabe de algún proyecto abierto para construir un multiplexor nmea, o tiene alguna sugerencia?
Desde ya, se agradece toda ayuda,
Saludos
Mariano ...
 
No he visto... el problema es que estamos hablando de NMEA sobre UART no? (no sobre RS-422).
El problema de UART es que -si es de 2 lineas solamente TX/RX- van a transmitir cuando ellos quieran, y no hay forma de coordinar. Eso puede evitarse si hay líneas RTS/CTS (con CTS ya alcanza para indicar cuando pueden enviar y cuando no).

Un multiplexor de UART (de 2 hilos RX/TX de acá en adelante) por fuerza convierte UART a otra interfaz que permite múltiples dispositivos en bus (I2C, SPI, CAN...) y (opcionalmente) convierte de vuelta de bus a UART:

UART1 ----> puente UART a bus -+
UART2 ----> puente UART a bus -+
UART3 ----> puente UART a bus -+-------puente bus a UART---->
UART4 ----> puente UART a bus -+

Cada puente tiene que tener capacidad de buffer.
Y también cada UART puede estar transmitiendo a su propio baudrate, que se logra a través de alguna fuente de reloj (cristal) porque a diferencia de SPI/I2C es asíncrono...

Todo eso hace que el puente sea un dispositivo complejo, hay algunos comerciales (buscar uart bridge, uart to spi, uart to i2c...) pero no deben ser baratos, y difíciles de conseguir (como muestras en el mejor de los casos pueden llegar a entrar).

Entonces... mi opinión sería buscar un micro bien barato que tenga una interfaz uart + (SPI o I2C), e implementar 1 puente con cada micro. Y que preferentemente tenga alguna fuente de reloj interna de precisión suficiente para proveer los baudrates de uart que se precisen.
Por que no usar 1 micro para 2, 3, 4 puentes a la vez?, porque seguramente vamos a caer en que va a ser necesario hacer uart por software, lo que va a limitar bastante la velocidad de uart admisible, y el programa puede llegar a ser complejo.
Con ese mismo micro se puede implementar el puente uart a bus y el puente bus a uart.

Estaría bueno poder evitar micros, pero la necesidad de tener un sistema de reloj para el baudrate, capacidad de buffer, conexión a un bus multi-dispositivo... hace que no haya solución en hardware sencilla.
 
Hola Ardogan
Gracias por la respuesta, el tema es básicamente interconectar múltiples instrumentos nmea 01928 entre si, no a la pc, por lo tanto es todo desde nmea a nmea. Lo que tiene el protocolo 01928 es que no permite convergencia, cada canal transmite o recibe información en un solo sentido, un equipo puede mandar información a varios por sus correspondientes canales de entrada, pero cada canal de entrada solo recibe datos de un talker. por lo tanto, como el plotter tiene un solo canal nmea in, hay que generar una señal con la información de múltiples emisores. En otras palabras, el dispositivos es para generar convergencia de múltiples canales a uno.
desde ya, muchas gracias
 
Hola Ardogan
Gracias por la respuesta, el tema es básicamente interconectar múltiples instrumentos nmea 01928 entre si, no a la pc, por lo tanto es todo desde nmea a nmea. Lo que tiene el protocolo 01928 es que no permite convergencia, cada canal transmite o recibe información en un solo sentido, un equipo puede mandar información a varios por sus correspondientes canales de entrada, pero cada canal de entrada solo recibe datos de un talker. por lo tanto, como el plotter tiene un solo canal nmea in, hay que generar una señal con la información de múltiples emisores. En otras palabras, el dispositivos es para generar convergencia de múltiples canales a uno.
desde ya, muchas gracias

nmea 01928... no encuentro información sobre eso.
Entiendo lo que decís, no estaba hablando de que hubiera una PC en el medio (siempre hablé de usar microcontroladores), mencioné UART porque es lo primero que se me ocurre al pensar en nmea 0183 no balanceado.

Por eso mejor pregunto:

  • ¿Que tipo de interfaz física utilizan los equipos a conectar, es para todos la misma?
  • ¿Como trabaja el plotter?: imprime solo al recibir una trama nmea completa?, tiene capacidad para combinar la información de todos los equipos?.
Cualquier información sirve para poder hacer sugerencias precisas.

Buscás algo como esto, o me equivoco?:
http://brookhouseonline.com/nmea_multiplexer.htm
 
Última edición:
Atrás
Arriba