NMEA 0183 and Multiplexers

The NMEA 0183 standard, a communication standard defined by the NMEA organization, defines a communication protocol called NMEA 0183 that enables navigation instruments to exchange data with each other.

A compass can, for example, send a bearing to a radar to enable a north-up display. And a GPS can send cross-track information to an autopilot in order to steer a programmed course.

Talkers and Listeners

Communication with the NMEA 0183 protocol involves at least one instrument that sends data and another that receives data. By convention, an instrument that sends data is called a talker, while an instrument that receives data is called a listener. Fig.1 shows such a system.

Fig.1: Minimal NMEA system

With the NMEA 0183 protocol, information is passed in sentences that are made up of readable characters. The contents of a sentence is well defined by the standard and always starts with a '$' or a '!' character and always ends with a special code, called a LF (Line Feed). Thus, a listener always knows when and sentence starts and ends. The NMEA standard also specifies that a talker may send one ore more sentences any time it wishes, but preferably not more that once per second. An exception to this rule are gyro- and fluxgate compasses, which often transmit 10 sentences per second or more.

The NMEA 0183 standard specifies that a talker should have enough driving capability to drive up to four listeners. This means that you should be able to connect up to four instruments that receive data from one other instrument, as shown in fig.2. This is very easy to achieve, just like one person telling a story to an audience of up to four people. The only requirement for the talker is to talk loud enough.

Fig.2: One talker connected to four listeners

Fig.3: Four talkers connected to one listener

The situation gets complicated when several talkers have to send data to one listener. A typical example is where a GPS and a wind meter have to send data to an autopilot. Computer navigation is another example where several talkers (navigation instruments) must talk to one listener (the computer)(fig.3). The NMEA 0183 standard has no provision for these situations, so without special equipment, this is impossible. The outputs of the talkers will effectively short-circuit each other and the sentences they transmit will be corrupted since any talker can start sending at any time. The result will be like four persons telling a different story to one listener at the same time.

The Multiplexer

An NMEA multiplexer, also called combiner, solves the problem by offering an intermediate storage of sentences. Every talker in the system in fig.4 is connected to its own NMEA input on the multiplexer. The multiplexer reads complete sentences from every connected listener and stores them in a buffer. There is a buffer for every input, large enough to contain several sentences. Subsequently, the multiplexer checks every buffer in a round-robin fashion for the presence of sentences. Each time, one sentence is taken from a buffer and sent to the NMEA output of the multiplexer.

Fig.4: Using a multiplexer

Fig.4 shows a multiplexer in a typical installation, where the NMEA data from four instruments is combined into one stream. This stream is sent to the connected computer over an RS-232 or USB interface, to be used for electronic navigation. Also connected is an autopilot which receives NMEA data from the instruments or the computer or both, depending on the configuration of the multiplexer.