GPS receivers receive satellite almanac data and also calculate their position by calculating their distance from visible satellites and then using the triangulation method to calculate their position.
After the data has been received and the position calculated, the data is configured according to standards established by the NMEA ( National Marine Electronics Association ) and is transmitted serially at a baud rate of 4,800 bps.
The National Marine Electronics Association ( NMEA ) has developed standards that describe the interface between various marine electronic equipment. Standards allow marine electronics to send information to computers and other marine equipment.
GPS receivers also work on these NMEA standards . Most computer programs and devices that provide position information and other related information expect the data to be in NMEA format.
The data provided by the GPS Receiver includes a lot of information such as position (latitude and longitude), altitude, speed, time, etc. In its standards, the NMEA specified sending a series of data in one sentence . A specific sentence is completely self-sufficient and independent of other sentences. There are standard phrases for certain types of data and for different categories of devices. NMEA also provided the functionality for individual companies to write their own phrases.

Figure 1: Image showing how the GPS receiver works
All standard devices have a two letter prefix that defines the device it is being used for, for GPS receivers the prefix is GP . The two-letter prefix is then followed by three letters that represent the content of the sentence. NMEA-permitted proprietary phrases always begin with P and are followed by a three-letter sequence that identifies the manufacturer's code and additional characters to define the phrase type. For example, a Garmin sentence would start with PGRM and a Sony sentence would start with PSNY.
Each sentence starts with a ' $ ', is about 80 characters long, and ends with a carriage return/linefeed sequence. Sentences are usually framed on single lines (sometimes they can span multiple lines) and the data items in each sentence are separated by commas.
The data received is ASCII text only and varies in accuracy. A sentence ends with a checksum consisting of a ' * ' and two hexadecimal digits. The checksum digits represent an 8-bit exclusive OR of all characters between, but not including, the $ and * .

Fig. 2: Image showing the format of the NMEA phrase
GPS units support NMEA standards as well as serial ports using RS232 protocols. The serial configuration of a GPS receiver is summarized as follows:
TRANSMISSION RATE
|
Data Bits
|
STOP
|
PARITY
|
HANDSHAKE
|
4800bps
|
8
|
1
|
None
|
None
|
GPS Phrases
GPS Phrases
Some of the GPS phrases are explained below:
1) $GPGA – Global Positioning System Correction Data
$GPGGA,132453.970,2651.0138,N,07547.7054,E,1,03,7.1,42.5,M,-42.5,M,,0000*45
where:
GGA
132453.970
2651.0138,N
07547.7054,E
1
03
7.1
42.5,M
46.9.M
Empty field
Empty field
*45
|
Global Positioning System Correction Data
Correction made at 13:24:53970 UTC
Latitude 26 degrees 51.0138′ N
Longitude 07 degrees 54.7054′ E
Correct the quality:
0 = invalid
1 = GPS position (SPS)
2 = DGPS correction
3 = PPS correction
4 = Real-Time Kinematics
5 = floating RTK
6 = Estimated (account settlement)
7 = Manual entry mode
8 = Simulation mode
Number of satellites being tracked
Horizontal position dilution
Altitude, meters, above mean sea level
Geoid height (mean sea level) above ellipsoid WGS84
Time in seconds since the last DGPS update
DGPS station identification number
Checksum data always starts with *
|
two) $GPGSV – (Satellites in sight)
The GPGSV phrase shows data about the satellites that are in view of the receiver. Each GPGSV sentence can show data from a maximum of four satellites, therefore three sentences are required to represent complete data. All 3 phrases do not need to appear in sequence as each phrase can be easily identified.
A GPGSV sentence can show a greater number of satellites than a GPGGA sentence, as it also shows satellites that are not in solution. The SNR (Signal-to-Noise Ratio) can be used as raw signal strength and is between 0 and 99. Zero is the signal strength of the satellite being viewed but not tracked.
$GPGSV,3,1,12,18,57,291,40,21,56,346,45,26,23,043,46,29,57,174,25*71
$GPGSV,3,2,12,22,28,259,16,27,13,107,,09,11,130,,16,09,288,25*79
$GPGSV,3,3,12,30,08,210,33,06,08,320,22,25,02,188,26,14,01,203,21*7B
where:
GSV
3
1
12
18
57
291
40
*75
|
Satellites in sight
Number of sentences for complete data
Phrase 1
Number of visible satellites
Satellite PRN number (pseudorandom noise)
Elevation, degrees
Azimuth, degrees
SNR (Signal-to-Noise Ratio) – the higher the better
For up to 4 satellites per phrase
Checksum data always starts with *
|
1
|
Total number of messages of this type in this cycle
|
two
|
Message number
|
3
|
Total number of SVs viewed
|
4
|
SV PRN Number
|
5
|
Elevation in degrees, maximum 90
|
6
|
Azimuth, degrees of true north, 000 to 359
|
7
|
SNR, 00-99 dB (null when SV is visible but not tracked)
|
8-11
|
Information about the second SV, same as field 4-7
|
12-15
|
Information about the third SV, same as field 4-7
|
16-19
|
Information about the fourth SV, same as field 4-7
|
3) $GPRMC – Minimum specific recommended GPS/Traffic data
$GPRMC,132455.970,A,2651.0145,N,07547.7051,E,0.50,342.76,301010,,,A*64
where:
RMC
132455.970
A
2651.0145,N
07547.7051,E
0.50
342.76
301010
Empty field (xxx.x, y)
*64
|
Recommended minimum sentence C
Correction made at 13:24:55.970 UTC
Status A=Active or V=Empty.
Latitude 26 degrees 51.0145′ N
Longitude 075 degrees 47.7051′ E
Ground speed in knots
Tracking Angle in Degrees True
Date: October 30, 2010
Magnetic Variation
Checksum data always starts with *
|
4) $GPVTG –
$GPVTG,054.7,T,034.4,M,005.5,N,010.2,K*48
where:
VTG
054.7, T
034.4,M
005.5,N
010.2,K
*48
|
Good track and ground speed
True track good (degrees)
Well-made magnetic track
Ground speed, knots
Ground speed, Kilometers per hour
Checksum data always starts with *
|
1
|
Well done track
|
two
|
Fixed 'T' text indicates the correct track is relative to true north
|
3
|
Well-made magnetic track
|
4
|
Fixed text 'N' indicates magnetic degrees
|
5
|
Speed over ground in knots
|
6
|
Fixed text 'N' indicates ground speed in knots
|
7
|
Speed over ground in kilometers/hour
|
8
|
Fixed text 'K' indicates ground speed is in kilometers/hour
|
9
|
Checksum
|
5) $GPGSA –
This sentence shows the dilution of precision (DOP) and PRN of active satellites. DOP shows the effect of satellite geometry on correction accuracy. DOP is a number and for 3D correction using four satellites, a DOP of 1.0 is perfect.
$GPGSA,A,2,26,21,18,,,,,,,,,7.1,7.1,1.0*3C
where:
GSA
A
two
26, 21, 18…
7.1
7.1
1.0
*3C
|
Satellite status
Automatic selection of 2D or 3D correction (M = manual)
2D correction
where:
1 = no correction
2 = 2D correction
3 = 3D correction
Satellite PRNs used for correction (space for 12)
PDOP (precision dilution)
Precision Horizontal Dilution (HDOP)
Vertical Precision Dilution (VDOP)
Checksum data always starts with *
|
Proprietary Sentences
Proprietary Sentences
NMEA allows proprietary phrases for private companies and they can be used to control information or as GPS output. Proprietary sentences always begin with P followed by a three-character manufacturer code and additional characters to determine the sentence type.
NMEA allows proprietary phrases for private companies and they can be used to control information or as GPS output. Proprietary sentences always begin with P followed by a three-character manufacturer code and additional characters to determine the sentence type.
Some examples of proprietary phrases are as follows:
S. No.
|
Company
|
Phrase
|
1
|
Garmin
|
$PGRMME,15,0,M,45,0,M,25,0,M*1C
|
two
|
Magellan
|
$PMGNST,02.12,3,T,534.05,0,+03327.00*40
|
3
|
Rockwell International
|
$PRWIRID,12.01.83.12/15/97.0003,*42
|
4
|
Sony
|
$PSNY,0,00,05,500,06,06,06,06*14
|
5
|
Sir
|
$PSRF103,05,00,01,01*20
|
All GPS phrases with a brief description are tabulated below:
S. No.
|
Phrase
|
Description
|
1
|
$GPAM
|
Arrival alarm at the reference point
|
two
|
$GPALM
|
GPS Almanac Data
|
3
|
$GPAPA
|
Autopilot phrase “A”
|
4
|
$GPAPB
|
Autopilot phrase “B”
|
5
|
$GPASD
|
Autopilot system data
|
6
|
$GPBEC
|
Bearing and distance to waypoint, Dead Reckoning
|
7
|
$GPBOD
|
Bearing, origin to destination
|
8
|
$GPBWC
|
Bearing and distance to landmark, Great Circle
|
9
|
$GPBWR
|
Bearing and distance to reference point, Rhumb line
|
10
|
$GPBWW
|
Bearing, reference point to reference point
|
11
|
$GPDBT
|
Depth below the transducer
|
12
|
$GPDCN
|
Decca Position
|
13
|
$GPPT
|
Depth
|
14
|
$GPFSI
|
Frequency Set Information
|
15
|
$GPGA
|
Global Positioning System Correction Data |
16 |
$GPGLC
|
Geographical position, Loran-C
|
17
|
$GPGLL
|
Geographic position, latitude/longitude
|
18
|
$GPGSA
|
GPS DOP and active satellites
|
19
|
$GPGSV
|
GPS satellites in sight
|
20
|
$GPGXA
|
TRAFFIC POSITION
|
21
|
$GPHDG
|
Heading, Deviation and Variation |
22 |
$GPDT
|
Title, True
|
23
|
$GPHSC
|
Heading Direction Command
|
24
|
$GPLCD
|
Loran-C signal data
|
25
|
$GPMTA
|
Air temperature (to be eliminated)
|
26
|
$GPMTW
|
Water temperature
|
27
|
$GPMWD
|
Wind direction
|
28
|
$GPMWV
|
Wind speed and angle
|
29
|
$GPTTM
|
Tracked target message
|
30
|
$GPVBW
|
Dual Speed Land/Water
|
31
|
$GPVDR
|
Set and drift
|
32
|
$GPROO
|
Active waypoint route (non-default)
|
33
|
$GPOLN
|
Omega track numbers
|
34
|
$GPVHW
|
Water speed and direction
|
35
|
$GPVLW
|
Distance traveled by water
|
36
|
$GPVPW
|
Speed measured parallel to the wind
|
37
|
$GPVTG
|
Well-made track and ground speed
|
38
|
$GPWCV
|
Waypoint closing speed
|
39
|
$GPWNC
|
Distance, landmark to landmark
|
40
|
$GPTRF
|
Traffic correction data
|
41
|
$ GPSTN
|
Multiple Data ID
|
42
|
$GPRMA
|
Loran-C Recommended Specific Minimum Data
|
43
|
$GPRMB
|
Minimum recommended navigation information
|
44
|
$GPRMC
|
Recommended specific minimum GPS/TRAFFIC data
|
45
|
$GPROT
|
Routes
|
46
|
$GPSFI
|
Sweep Frequency Information
|
47
|
$GPOSD
|
Ship's own data
|
48
|
$GPROT
|
Turnover rate
|
49
|
$GPRPM
|
Revolutions
|
50
|
$GPRSA
|
Rudder sensor angle
|
51
|
$GPRSD
|
RADAR system data
|
52
|
$GPWPL
|
Waypoint location |
53 |
$GPXDR
|
Transducer measurements
|
54
|
$GPXTE
|
Cross error, measured
|
55
|
$GPXTR
|
Cross range error, dead reckoning
|
56
|
$GPZDA
|
Hour and date
|
57
|
$GPZFO
|
UTC and time of the origin waypoint
|
58
|
$GPZTG
|
UTC and time to destination waypoint
|