In this series of posts I shall demonstrate the usage of GPS Receiver module .I shall make it in 3 parts.
1. First part explains the theory of GPS & make you understand the Jargons / Specifications used in GPS technology.
2. In Second part I shall show you how to interface a GPS module to your PC & read the NMEA Sentences using a Terminal Software COOLTERM & a GPS TRIMBLE STUDIO software.A support Video gives you a better understanding.
3. Third part explains how to interface a GPS with Arduino
Let us start with first part of GPS theory :
The Global Positioning System (GPS), is a satellite based radio navigation system owned by the United States Government and operated by the United States Air Force. GPS is funded and controlled by the U. S. Department of Defense (DOD).
The outstanding performance of GPS over decades has earned the confidence of millions of civil and military users worldwide.
Global Positioning System (GPS) module is used to get Position,Altitude,as well as Speed,Date & Time on UTC.
It uses the standard NMEA protocol (National Marine Electronics Association) to transmit the position data via serial port.
GPS provides specially coded satellite signals that can be processed in a GPS receiver, enabling the receiver to compute position, velocity and time.For anyone with a GPS receiver, the system will provide location and time. GPS provides accurate location and time information for an unlimited number of people in all weather, day and night, anywhere in the world.
GPS system comprises of 3 segments : SPACE , CONTROL & USER SEGMENTS.
SPACE Segment (SS) CONTROL (CS) USER SEGMENT (US)
The Space Segment of the system consists of the GPS satellites. These Space Vehicles (SVs) send radio signals from space.The nominal GPS Operational Constellation consists of 24 satellites that orbit the earth in 12 hours.
GPS satellites transmit two low power radio signals, designated L1 and L2. Civilian GPS uses the L1 frequency of 1575.42 MHz in the UHF band. L2 ( 1.2276 GHz ) is used in Military.The L1 carrier is modulated with the Coarse/Acquisition (C/A) code and Navigation Message, used for PPS and SPS, and the military P-code, used for PPS only. The L2 carrier is modulated only with the military P-code.
The GPS system provides two navigational services, the military Precise Positioning Service (PPS), and the civilian Standard Positioning Service (SPS).
The 24 satellites that make up the GPS space segment are orbiting the earth about 12,000 miles above us. They are constantly moving, making two complete orbits in less than 24 hours. These satellites are travelling at speeds of roughly 7,000 miles an hour.
GPS satellites are powered by solar energy & they have backup batteries onboard .
The Control Segment consists of a system of tracking stations located around the world.The Master Control facility is located at SCHRIEVER AFB ( Air Force Base ) in Colorado.
The Master Control station uploads ephemeris and clock data to the SVs. The SVs then send subsets of the orbital ephemeris data to GPS receivers over radio signals.
The GPS User Segment consists of the GPS receivers and the user community. GPS receivers convert SV signals into position, velocity, and time estimates. Four satellites are required to compute the four dimensions of X, Y, Z (position) and Time.
Each satellite continually transmits messages that include
The time the message was transmitted
Precise orbital information (the ephemeris)
The general system health and rough orbits of all GPS satellites (the almanac).
A GPS receiver must be locked on to the signal of at least three of the 24 satellites to calculate a 2D position (latitude and longitude) and track movement.
With four or more satellites in view, the receiver can determine the user’s 3D position (latitude, longitude and altitude). Once the user’s position has been determined, the GPS unit can calculate other information, such as speed, bearing, track, trip distance, distance to destination, sunrise and sunset time and more
GPS Receivers give output data as standard ASCII text at either 4800 baud or 9600 baud and can be easily read by the serial port on any microcontroller.
GPS satellites now on orbit are aging quickly and users are demanding more capability. To sustain and modernize the constellation, the U.S. Air Force is building the next generation satellite system, known as GPS III.
Indian Regional Navigational Satellite System (IRNSS-1) is under development autonomously by ISRO & will launch seven satellites for navigation.Full constellation is planned to be realized around 2014.
The Chinese have already launched The BeiDou Navigation Satellite System (BDS) .
Specification Terms Explained :
An important specification is the UPDATE RATE, which indicates How often the GPS recalculates & reports its position.The standard is 1HZ ,i.e., only once per second. 5 & even 10HZ update rates are available.Faster Update Rate means there will be more NMEA sentence flying out of the module.
Next specification is the Number Of Channels.
The number of channels that your module runs will affect your time to first Fix.Since the modules doesn’t know which satellites are in view,the more channels you have,the faster you’ll find a fix.
12 or 14 channels track engine will work just fine for tracking.
The satellites (SVs) broadcast two types of data, Almanac and Ephemeris. Almanac data is course orbital parameters for all SVs. Each SV broadcasts Almanac data for all SVs. This Almanac data is not very precise and is considered valid for up to several months.
Ephemeris data is very precise orbital and clock correction for each SV and is necessary for precise positioning. Each SV broadcasts ONLY its own Ephemeris data. The validity of this data is dictated by the particular satellite and may be valid up to 4 to 6 hours. Each set of ephemeris data gives a "fit" indication which tells how long the particular Ephemeris data is valid. The Ephemeris data is broadcast by each SV every 30 seconds so GPS receivers have frequent opportunities to receive and log this essential information.
If you look up the specification of any GPS module ,you come across terms like Cold Start,Hot Start & Warm Start.
Cold Start is performed every time when the GPS module is turned off without backup power supply connected. It is the longest starting time out of the three and usually takes 35 seconds in average under open sky environment. During Cold Start, almanac and ephemeris data has to be downloaded first from the GPS satellites to GPS module before a position fix can be acquired.
Assuming that a proper backup power source is provided, GPS module will perform Hot Start if the GPS module is powered on any time within the 2-hour time frame after GPS was previously turned off, as the ephemeris and almanac data is still stored inside the its flash memory.
Warm Start is performed if the above module is started after the 2-hour time frame, as part of its satellite data has to be refreshed.
The GPS receiver outputs data in National Marine Electronics Association (NMEA) format .The idea of NMEA is to send a line of data called a SENTENCE.
The standard sentences have a two letter prefix that defines the device that uses that sentence type. For GPS receivers the prefix is GP , which is followed by a three letter sequence that defines the sentence contents.
In addition NMEA permits hardware manufactures to define their own proprietary sentences for whatever purpose they see fit. All proprietary sentences begin with the letter P and are followed with 3 letters that identifies the manufacturer controlling that sentence. For example a Garmin sentence would start with PGRM and Magellan would begin with PMGN.
Each sentence begins with a ‘$’ and ends with a carriage return/line feed sequence and can be no longer than 80 characters of visible text (plus the line terminators). The data is contained within this single line with data items separated by commas.
The data itself is just ASCII text and may extend over multiple sentences in certain specialized instances but is normally fully contained in one variable length sentence. The data may vary in the amount of precision contained in the message. For example time might be indicated to decimal parts of a second or location may be show with 3 or even 4 digits after the decimal point.
Programs that read the data should only use the commas to determine the field boundaries and not depend on column positions. There is a provision for a checksum at the end of each sentence which may or may not be checked by the unit that reads the data. The checksum field consists of a ‘*’ and two hex digits representing an 8 bit exclusive OR of all characters between, the ‘$’ and ‘*’.
$GPRMC NMEA Sentence
The $GPRMC Sentence is the most useful one and contains the position fix. An example is
GP is the Prefix for GPS followed by RMC which is Recommended Minimum Sentence.
All data are separated by Commas.
054006.999 is the current time in Greenwich Mean Time (not your local time). In this example it is 05 Hours 40 Minutes 06 Seconds & .999 MilliSeconds.
Next is the STATUS CODE : “ A “ means Active & GPS HAS GOT A fix.” V” means Void or Data Invalid
Next 4 pieces of Data are Geo Location Data.
1059.8519,N -> Latitude 10 Degrees , 59.8519 decimal minutes NORTH
07657.4794,E -> Longitude 76 Degrees ,57.4794 decimal minutes EAST.
Next Data is Ground Speed in Knots.In this example I’m indoor & not moving.So it is 000.0
Next Data is Tracking Angle 166.0
Next Data is the DATE of FIX 120313 means 12th of March ,2013
Next 2 commas indicate Empty field.One is for Time in secs since last DGPS updated & the other is DGPS station ID number.In this example both fields are empty.
Finally a checksum data is presented which starts with an “*” symbol followed by 2 Hex digits.
Other important sentences are
GPGGA ,which provides the current FIX data
GPGSA – Overall Satellite status Data , 3D,2D Fix details & PRN ( satellites are identified by the receiver by means of Pseudo Random Numbers.)
GPGSV – Detailed Satellite Data
GPVTG – Vector Track on speed over the Ground.
GPRTE – Route Message
For more details of NMEA Sentences visit