|
Articles |
|
|
|
NMEA 0183 ProtocolThe ProtocolThe NMEA 0183 v2.0 protocol is implemented by most GPS equipment, but is in fact a general purpose standard used in marine electronics for navigation and other functions (such as radio communications, satellites, direction finding, weather instruments, time systems, radar, etc...). The navigation use is not specific to GPS either but covers other systems, such as Loran-C, or DECCA navigator. The electrical interface is not part of this standard, but normally only involves a shielded twisted pair cable supporting a "talker" and several "listeners". The shield is grounded at the talker end only. NMEA 0180 & 0182 recommend that the talker output can be either RS-232 (polar) or TTL (0/5V). NMEA 0183 retains this but recommends RS-422 in addition. Normally the simpler electrical interface is used in practice and direct connection to an RS-232 port is possible. The NMEA 0183 protocol supports serial communications at 4800 bps (fixed) using printable ASCII characters only. This makes it easy to work with. A talker, such as a GPS unit, produces a stream of data continuously at a rate determined by its sampling rate (which is normally once every few seconds). The data is presented as "sentences", where each sentence starts with a "$" character, has a two-character talker ID and a three-character sentence ID. The data content is presented as a series of comma delimited fields. Each sentence can have up to 82 characters including the header, the data and an optional checksum field with <CR><LF> at the end. If a field is blank, all the comma delimiters remain but no data appears between commas corresponding to the blank field. The checksum comprises a field starting with a "*" character and two hexadecimal digits (expressed in ASCII) representing the exclusing OR of all characters appearing between the "$" and "*" exclusively. My Garmin GPS12XL outputs the following sentences on a continuous basis:
All sentences starting with a "$P" are proprietary and have a three character manufacturer ID (GRM=Garmin in this case). The taker ID, "GP" for GPS, is present in the remainder of the sentences. Here is an analysis of the sentences above: Sentence BODFunction:
Bearing (origin to destination waypoint) Sentence RTEFunction: Waypoints in active
routes Sentence RMCFunction: Recommended mimimum
specific GPS/transit data Sentence RMBFunction: Recommended minimum
navigation information (sent when a destination waypoint is
active) Sentence GGAFunction: Global Positioning Fix
Data Sentence GSAFunction: GPS dilution of
precision* and active
satellites Sentence GSVFunction: Satellites in
view |
|
This document maintained by
simon.collings@cableinet.co.uk. |
|