¿Cómo funciona un localizador en un sistema integrado?

Una forma que he usado es analizar una de las oraciones NMEA. Usualmente uso la información de oraciones $ GPRMC GPS – NMEA, ya que tiene la latitud, longitud, rumbo, velocidad, punta, fecha e información sobre qué tan buena es la corrección y su antigüedad. La oración se envía cada segundo y puede usarse como un latido cardíaco muy preciso para el sistema. Se envía como un mensaje RS-232 con ocho (8) bits de datos, ningún bit de paridad (N) y un (1) bit de parada. La tasa de BAUD generalmente es baja de 1200 a 4800 BAUD. Solo necesita leer un lado de la línea RS-232.

A menos que un ser humano deba interactuar con la regularidad de los datos del GPS o se imprima en una pantalla que requiera interacción humana, debe convertirse para leer un mensaje binario más rápido y compacto que la mayoría de los receptores de GPS pueden proporcionar. Nunca pierdas el tiempo en una aplicación que no necesitas. Es mucho más fácil optimizar una rutina para la velocidad cuando la escribe que en algún momento posterior cuando encuentra que su código es demasiado lento y comienza a buscar lugares para robar los ciclos de la máquina. Tenga cuidado al usar las funciones de la biblioteca para nunca usar printf (), coma flotante y evitar la decepción mediante el uso de matemática octal o hexadecimal.

Si puede aceptar errores al colocar un diodo de silicona con una resistencia de 1 megaohmio en línea con la línea RS-232 en la computadora, permitirá que dos o más dispositivos sean leídos por un puerto RS-232. Las colisiones resultan en basura, por supuesto. El una vez por segundo busto de mensajes NMEA le permite a uno controlar su tráfico RS-232 para evitar colisiones y parece tener múltiples puertos RS-232 donde solo hay uno. Usar un convertidor RS-485 en los puertos RS-232 e implementar RTS / CTS le permite usar tantos dispositivos como usted en un puerto RS-232. Otra respuesta sería implementar una CAN u otra red bidireccional. CAN se sobrepasa por mensajes GPS simples, pero si hay otro tráfico, una red CAN se desvanece en segundo plano una vez que está funcionando, el mensaje aparece y se envía y recibe sin problemas al leer y escribir una variable o parece aparecer como una interrupción. Para la mayoría de los proyectos, una red RS-485 o UDP Berkeley Socket es menos costosa y más que suficiente.

Considero que escribir varios programas pequeños conectados por una red es la mejor manera de implementar este tipo de proyecto. Cada programa se puede escribir en un pequeño ancho como Raspberry Pi, ESP8266 o escrito como programa en PC y conectado por UDP Sockets RS-232, RS485 o incluso módems de marcación a través de un programa similar al terminal que toma múltiples protocolos con el mismo estructura del mensaje El programa de terminal modificado se puede utilizar en la función Ejecutiva de todos los programas para la comunicación y para otorgar a todos los programas tantos privilegios a los datos y funciones del sistema como desee.