NMEA over Ethernet

From 1ste Gimnechiske Wiki

Jump to: navigation, search

As NMEA is a protocol for transporting information between devices, why not also over Ethernet? I know that equipment used on ships exchange NMEA data over network or similar principals. This project have the goal finding a set up for Mac, Linux and Windows to do the same for private computers, so that the users can use the data the way they like. This article is for getting NMEA 0183 transmitted over Ethernet, the new NMEA 2000 standard requires a separate communication system.

Contents

Protocol

NMEA is a protocol developed to exchange navigational data over EIA-422, but have been adapted so it can also be transmitted over RS-232. It is originally a commercial standard, but it have been reverse engineered, so it is now quite easy to look into the protocol and get an understanding of how it works.

The principal of NMEA is its sentences transmitted as ASCII strings, and it is supposed to be transmitted at 4800 baud with 8N1 bit strings (8 bits with 1 stop bit), no parity and no handshake. That means that the transmitting device does not check if there are any receiving units, and the receiving devices does not send any information to verify data.

Each sentence starts with a $ sign, followed by a string of letters and numbers divided by commas ending with <LF><CR>, some strings end with an asterix and a two digit hex, this is a checksum, and is only mandatory for a few limited sentences, though some devices might send it after any sentence. The start of the string is 3 to 7 letters, in the format AACCC, where AA is the unit identifier (GP for GPS) and CCC is the sentence name. Identifier is not mandatory though some sentences require them, most units should transmit this.

Each sentence have its own setup for what each information packet should contain. Empty information packages must be transmitted, but is usually only a series of commas without content in between.

Other Systems

Qwerty-Electronik in Sweden have made a series of hardware units that gather NMEA data from several devices and transmits it as UDP data over Ethernet.

NuovaMarea Ltd have a similar unit on the market, though this speaks TCP/IP.

Transmitting

I would prefer to have a transmitter where I can add as many feeds as possible, give them an ID that makes it possible for the receiver to subscribe only to desired feeds, and choose if the feeds should be multicast, broadcast or single port server.

  • UDP transmit
  • TCP transmit
  • Server with designated port
  • Multicast and/or broadcast
  • IPv4 and IPv6 support

OS Support

Receiving

The receiving program/driver must be able to activate a virtual RS-232 port, so that programs that depend on RS-232 connections can receive the feeds. It must also be able to connect directly to a server, tap into Multicasts and Broadcasts, as well as giving a simple interface for selecting feeds if more than one are available. We can assume that an ECDIS program will have problems accepting several GPS feeds with different antenna positions, though AIS, ARPA, other position systems such as GLONAS is of interest. Maybe even make it so that each feed can be a virtual RS-232 port.

OS Support

  • Mac OS X
  • Linux
  • Windows

External Links

Personal tools