The Global Positioning System (GPS)

GPS provides a time reference to a receiver, and can provide positioning data when a receiver triangulates the position of multiple satellites. Other data can also be extracted from the GPS signals.

NMEA Telemetry Interface

A variety of interfaces are provided by GPS equipment. NMEA 0183 is an industry protocol specified by the US National Marine Electronics Association (NMEA). This provides standards for echo sounder, sonars, anemometer, gyrocompass, autopilot, fire doors, atomic clocks, sensors, water depth, GPS receivers as well as other instruments.

The specification is used by GPS receivers, but is defined for a much wider spectrum of uses in boat navigation and control systems. Because early GPS receivers were designed for compatibility with these systems, GPS reporting protocols are often a small subset of NMEA 0183 or mutated from such as subset. AIS, the Marine Automatic Identification system, also uses NMEA0183-like packet formats.

The NMEA 0183 link layer uses a simple ASCII, serial link protocol that defines how data are transmitted in a "sentence" from one "talker" to multiple "listeners" at a time. The interface is serial asynchronous, using LSB-first encoding to place 8 bits into a byte and uses 1 stop baud.

NMEA Electrical Interface

The electrical standard specified by the NMEA is EIA-422 (differential balanced), although most hardware with NMEA-0183 outputs are also able to drive a single EIA-232 port (an unbalanced open line interface). A TTL interface is also common,. This interface differs in the voltage levels and polarities, but is otherwise identical and can be used interchangeably with simple line drivers. The default baud rate is 4800 bps. This provides some 10's of sentences per second. (Higher speed interfaces are also used in some applications.)

Example of a GPS Receiver Module

The electrical interfaces differ in the length of cable they may support:

NMEA as a Multi-drop Bus

Many applications connect a range of equipment together. Each is known as a Talker, and sends unidirectional Sentences using the NMEA specification. The Talker sends the data to an Intermediate Expanders. This allows each talker to distribute its data to a nearly unlimited number of listeners, and using multiplexers, multiple sensors can talk to a single computer port.

USB Interfaces to GPS Receivers

Many USB devices also provide a USB interface to allow serial connection to a computer. This might be used for applications beyond telemetry, such as to upload data logs to a computer or to download sets of coordinates, USB was introduced in 1996, and offers advantages for PC-connected GPS devices - it provides electrical power, supports higher rates (but over shorter distances), and allows devices to automatically identify themselves to the system./

At the physical layer, this is still a serial protocol, but with much higher signalling rates, and while EIA-232 simply defines how bits get from one device to another, the USB standard describes a more complicated system.

Unfortunately, USB complicates things for small devices. There's no standard defining how to carry GPS data over USB. Most USB GPS receivers require a matching driver to be loaded on the host, and it's the driver that knows how to communicate with the GPS receiver.


See also:


Prof. Gorry Fairhurst, School of Engineering, University of Aberdeen, Scotland (2021).