NMEA 0183

From CruisersWiki

Revision as of 01:36, 11 November 2014 by Delatbabel (Talk | contribs)
Jump to: navigation, search

NMEA 0183

The National Marine Electronics Association (NMEA) is a US-based marine electronics trade organisation setting standards of communication between marine electronics.

NMEA 0183 is a combined electrical and data specification for communication between marine electronics such as echo sounder, sonars, anemometer, gyrocompass, autopilot, GPS receivers and many other types of instruments. It has been defined by, and is controlled by, the National Marine Electronics Association. It is slowly being phased out in favour of the newer NMEA 2000 standard, however many common devices support only NMEA 0183 and not NMEA 2000.

Introduction

The NMEA 0183 standard uses a simple ASCII, serial communications protocol that defines how data are transmitted in a "sentence" from one "talker" to multiple "listeners" at a time. Through the use of intermediate expanders, a talker can have a unidirectional conversation with a nearly unlimited number of listeners, and using multiplexers, multiple sensors can talk to a single computer port.

At the application layer, the standard also defines the contents of each sentence (message) type, so that all listeners can parse messages accurately.

Electrically most implementations of NMEA 0183 are functionally identical to a serial port running RS-232 (or EIA-232) which means that the protocol can be driven by a PC or laptop computer which normally has one or more serial ports and/or USB ports which can have serial to USB adapters attached.

Protocol Description

  • Each message's starting character is a dollar sign.
  • The next five characters identify the talker (two characters) and the type of message (three characters).
  • All data fields that follow are comma-delimited.
  • Where data is unavailable, the corresponding field remains blank.
  • There is an asterisk and checksum at the end of the message.
  • <CR><LF> ends the message.

The complete NMEA standard is proprietary and must be purchased from the NMEA at a cost of around US$250 as of June 2013. However, much of it has been reverse-engineered from public sources.

The best available public source for the NMEA 0183 protocol is NMEA Revealed by Eric S. Raymond.

Implementation on Board

Although NMEA 0183 was designed to run over the RS-422 serial interface, which can support a single talker and up to 10 listeners and data rates as high as 10 mbit/sec, in practical terms the majority of devices are compatible with the PC style RS-232 interface. This interface is generally restricted to a single talker and a single listener, although the output of most common NMEA 0183 devices can be shared between multiple listeners.

Talkers

A talker is any device that can transmit NMEA 0183 signals. Typically these will be:

  • GPS devices, for transmitting position (latitude, longitude) and time signals.
  • On board sensors, such as a depth sensor, wind sensor, hull speed/log sensor, fuel gauge, etc.
  • AIS units.

A talker will normally have a speed that it will be able to transmit at. For the vast majority of devices this is 4800 baud. For AIS units and certain multiplexers it is normally 38400 baud.

Listeners

A listener is a device that can listen to and understand NMEA 0183 signals. Typically these will be:

  • An autopilot, which will need to receive heading data and may also be interested in wind speed/direction data.
  • A PC or laptop running navigation software.
  • A GPS may also act as a listener so that it can be programmed with waypoint data.
  • A chart plotter.

Many devices act as both listeners and receivers, for example chart plotters and autopilots are usually provided with both send and receive NMEA 0183 connectors, and some instruments may wish to receive some data (e.g. GPS data) and also output data based on positions -- such as an AIS system that will output alarm data based on GPS input and its own understanding of the position of nearby ships.

Multiplexers

A multiplexer is some kind of device, usually programmable, that has many serial ports that can either listen or send NMEA 0183 data, and be programmed to listen to some data and output some data. Normally they are also capable of converting between the 4800 baud used by most NMEA 0183 devices and a higher speed such as 38400 baud or USB for input to PCs.

Many different types of multiplexer exist, for example:

  • Brookhouse Marine Electronics in New Zealand produce a range of multiplexers with different I/O capabilities, USB and Bluetooth connections, etc. Their standard mutiplexer has 4 inputs, and two outputs.
  • Actisense in the UK offer a 4 input port and 1 output port multiplexer. The output port can be RS-232 or USB.
  • ShipModul in the Netherlands have a range of 2 and 4 port multiplexers.
  • Nomatronics of Germany have a range of 8 port multiplexers where each port has programmable input and output capability.

Integrated Instruments

In place of fully functional NMEA 0183 multiplexers, some instrumentation suppliers provide multiple input and output ports on their instrumentation interfaces which can be used as a kind of "poor-man's" multiplexer. The most well known of these is the TackTick instruments now owned by Raymarine which connect wirelessly, but have a NMEA 0183 interface for connecting data from NMEA 0183 devices such as a GPS into the TackTick displays.

Because these relay the same data from one or more inputs to one or more outputs and add in their own data from sensors, they perform much the same job as a limited multiplexer.

There are also third party NMEA 0183 interfaces from companies such as Simrad and Coursemaster that connect to their autopilot systems.

Wiring

Typically NMEA 0183 wiring will adhere to the minimal 3 wire implementation of RS-232, meaning that you only need two wires for either (but not both) of transmit or receive, and only 3 wires for both transmit and receive (with a common ground wire). NMEA outputs on marine instruments therefore usually have either 2 connectors (transmit and ground, or receive and ground), or 3 connectors (transmit, receive, ground).

If you are connecting a NMEA 0183 talker A to a NMEA 0183 listener B then it is simply a matter of running a pair of wires between the two, and connecting as follows:

  • A output connects to B input.
  • A ground connects to B ground.

If both devices are both talkers and listeners, then there are 3 wires instead of 2, and the wiring is almost as simple:

  • A output connects to B input.
  • A input connects to B output.
  • A ground connects to B ground.

If one of the devices is a PC, then typically it will have a DE-9 connector and you need to make the connections as per the next section.

PC Connectors

The RS-422 standard does not define a connector type. The RS-232 standard makes a recommendation that a 25 pin D-sub connector (DB-25) be used but does not make this recommendation mandatory -- in most cases PC devices will have a DE-9 connector instead.

The DE-9 connector in 3 wire mode has the following pinouts:

  • Pin 3 -- transmit
  • Pin 2 -- receive
  • Pin 5 -- ground

No other pins are normally used by NMEA 0183 although they are there for other purposes.

So to connect a NMEA 0183 talker A to a PC, one would typically wire a serial DE-9 socket to the two connectors on the talker as follows:

  • A output to DE-9 pin 2
  • A ground to DE-9 pin 5
NMEA 0183 Junction Box -- click for larger view

Similarly, if a listener was being connected to a PC then it would use pins 3 and 5 of the DE-9 socket.

These days most laptop PCs have no serial ports at all, having been replaced by the newer USB ports, and therefore a USB to serial adapter such as this one needs to be plugged in to a USB port on the laptop.

Junction Boxes

The simplest way to interconnect many NMEA 0183 devices without a multiplexer is with a junction box. By wiring together several NMEA 0183 devices into a terminal block it's possible to route inputs and outputs of many devices into the appropriate places.

The wiring diagram to the right shows multiple devices connected together as follows:

  • Output of the GPS goes to the input of the TackTick NMEA interface, and also to the radar for displaying positional data.
  • Output of the TackTick NMEA interface goes to the input of the PC, because this contains the positional data from the GPS as well as data from all of the instruments.
  • Output of the PC goes to the input of the GPS, for uploading waypoints.
  • Power and signal grounds are provided by the earth connection of the yacht's 12V DC power supply.
  • Power +12V DC to the instruments is provided by the yacht's batteries, with switches on the GPS and Radar +12V power lines.

Multiplexers

NMEA Multiplexer Wiring -- click for larger view

Wiring for a multiplexer is a little easier because all devices have to be wired back using 2 or 3 wires back to the multiplexer, and the multiplexer handles all of the conversion between devices. It also allows devices that talk at different speeds to be wired together -- e.g. the 38400 baud of an AIS and the 4800 baud of a GPS.

The wiring diagram to the right shows 7 devices all connected to a single NMEA 0183 multiplexer with annotations as to what the multiplexer will send or receive on each device.

Forum Discussions

List links to discussion threads on partnering forums. (see link for requirements)

External Links

References & Publications

Personal Notes

Personal experiences?


Template:Guide1



SailorSmiley.gifContributors to this page

Names: Delatbabel



Cruising Wiki Navigation

| HOMEPAGE | Wiki Contents | Navigation | NMEA 0183
Personal tools
advertisement
Friends of Cruisers Wiki