The Global Positioning System (GPS) is the most widely used satellite navigation system around the world. It is one of the Global Navigation Satellite Systems (GNSS) that provides geolocation, time, and velocity information. GPS is operational since 1978 and globally available since 1994. The latest GPS receivers provide geolocation with an accuracy of 30 centimeters. The GPS system is owned by the United States government and is maintained by the United States Space Force.
GPS is a network of 30+ Medium Earth Orbit (MEO) satellites. These satellites continuously send signals over dedicated RF frequencies that a GPS receiver can listen to. By calculating its distance from four or more satellites, a GPS receiver can find out its position in latitude and longitude anywhere on earth. There are many kinds of GPS receivers with different capabilities. All GPS receivers essentially are capable of providing their geolocation, UTC time, and velocity information. The latest GPS receivers are ultra-compact and accurate than ever. These tiny devices provide geolocation, time, and velocity data for no cost and are now found in most of the smartphones. GPS receivers are also used in automobiles, for tracking commerce and in several tracking applications like in drones and UAVs.
Building blocks of GPS
GPS consists of three segments:
- Space segment – This segment consists of GPS navigation satellites. There are 30+ GPS satellites deployed on six orbits around the earth at an altitude of approximately 20,000 Km. These satellites revolve around the earth at an interval of 12 hours, such that they provide coverage all around the world all the time.
- Control segment – This segment consists of Ground Control Stations. These stations are responsible for monitoring, controlling, and maintaining orbits of GPS satellites. The ground control stations ensure that deviation of satellites from their orbit and their timing are within tolerance level.
- User segment – This segment consists of GPS receivers. A GPS receiver listens to RF signals from GPS satellites and calculates its distance with at least four satellites to get its position and time. At any time, at most, 12 GPS satellites are visible in the sky to a GPS receiver. The satellites transmit information over a band of radio frequency which ranges from 1.1 to 1.5 GHz.
The GPS satellites continuously send different pieces of information over the RF frequency bands. For example, the satellites have extremely accurate atomic clocks installed. A GPS satellite sends the time on its atomic clock and information about its orbital position and arrival times at different points of its orbit. A GPS receiver uses this information to calculate its distance with the satellites. It is possible to find the absolute position of an object if its distance to three fixed points in space is known. Therefore, a GPS receiver can find its geolocation by calculating its distance with three satellites. However, at least 4 GPS satellites are required to find the time and position accurately. The distance with the fourth satellite is used to compensate time error in the clock of the GPS receiver. So, a GPS receiver calculates its geolocation by calculating its distance with three GPS satellites and use distance with other GPS satellites for corrections and accuracy. If at least 4 GPS satellites are visible to a receiver, it is said to be in a lock or fix. By calculating its distance with at least four satellites, a GPS receiver can accurately find its geolocation (in latitude and longitude) and current (UTC) timestamp.
GNSS Augmentation is a method of improving accuracy, reliability, availability, and other attributes of a navigation system by integrating external information to the position calculations. Some of the augmentation systems are: the Wide Area Augmentation System (WAAS), European Geostationary Navigation Overlay Service (EGNOS), GPS-aided GEO Augmented Navigation (GAGAN), Differential GPS, Multi-functional satellite Augmentation System (MSAS) and inertial navigation systems (use of accelerometers and gyroscopes).
GPS satellites broadcast RF signals in two carrier frequencies; L1 (1,575.42 MHz) and L2 (1,227.60 MHz). The beams that are accessible to the general public are encoded in C/A (Coarse/Acquisition) code, and the beams that are used only by the US military force are encoded in P (Precise) code.
The C/A code includes identification codes of each satellite and navigation messages. L1 signal from the GPS satellites is phase-modulated in C/A code. The C/A code is a digital signal, in which 0 and 1 are coded by 1023 consecutive patterns of the digital pulse. The navigation message consists of 25 frames, each having five subframes of 300 bits. Therefore each frame has 1500 bits (0 and 1). The data length of each bit is 20 msec (i.e., Total pulse width of the C/A signal for a bit is 20 msec).
The data of the orbit of each satellite is called the ephemeris. This data is used to generate the precise location of the satellite, which is required for calculating position information by a GPS receiver. The data of orbit of all satellites is called the almanac. It includes coarse orbit and status information for all satellites in the network. This data is used to locate available satellites to a GPS receiver so that it can find out its current time and position on earth.
The accuracy of GPS position depends on several factors. There can be position errors due to change in propagation velocity of GPS signal in the ionosphere; radio reflections in the troposphere; reflections from the ground, buildings, and other structures (called multipath propagation); and noise sources around the GPS receiver itself.
The accuracy of the GPS position is expressed by Dilution of Precision (DoP). DoP indicates the degradation of accuracy in the GPS position. Smaller is the value of DoP; higher is the accuracy of GPS position. The DoP mainly depends upon the position of GPS satellites engaged in tracking the receiver’s position. If the tracked GPS satellites are evenly spaced over the sky, the position accuracy will be higher. If the tracked satellites are spaced disproportionately, position accuracy will be lower.
A GPS receiver requires tracking at least four satellites to provide the position and time accurately. The first lock or fix allows the GPS receiver to obtain the almanac information, and therefore it gets to know what other satellites it can listen for. If a higher number of satellites are visible to a receiver, the signal strength will be high, and position accuracy will be better. At most, 12 satellites can be visible to a GPS receiver at a time.
Assisted GPS is a method, in which ground-based wireless networks (like mobile networks) intermediate between satellites and GPS receivers when the GPS signals are weak or unreachable. AGPS can provide almanac data and precise time to a GPS receiver so that it can track GPS satellites. It can also supplement computing power and satellite signals from the ground base to compensate for weak signals or fragmented satellite data received by the GPS receiver. AGPS is commonly used by mobile phones, cameras, and automobiles. AGPS is quite useful in urban areas where multipath propagation is a common issue due to closely located buildings and structures.
Differential GPS (DGPS) is a ground station having a fixed GPS location. DGPS is useful in finding the difference between distance reading from the satellite and the ground station. DGPS is part of an augmentation system like WAAS or EGNOS. The GPS receivers that use differential GPS are generally costlier. Such receivers are also greater in size as they have to accommodate circuitry and antenna to connect with a DGPS station.
GPS receivers communicate GPS data over serial interfaces in different formats. There are standard as well as proprietary data formats. NMEA is a standard GPS data format and is used by all GPS receivers. The GPS receivers may use other proprietary data formats as well in addition to NMEA data. NMEA data consists of message strings, in which a comma separates various data fields. The string begins with a $ sign and message ID, followed by the data fields. A message string ends with a * followed by checksum byte, and a carriage return and line feed.
Different GPS receivers have different capabilities. Therefore, different GPS receivers communicate different sets of NMEA messages and other proprietary messages to a computer/controller. The data is sent out by the GPS receiver over the serial port at a regular interval, which is called the update rate. Most of the GPS receivers have an update rate of 1 Hz i.e., GPS data is communicated by the receiver every 1 second. There are now GPS receivers that have an update rate from 5 Hz to 20 Hz.
Any GPS receiver has a GPS chipset that contains a powerful processor. This processor is responsible for all calculations, providing user interface and analog circuitry for the antenna. It depends upon the chipset, what GPS data formats a GPS receiver supports, and how that data is communicated over serial interfaces.
Some of the common GPS chipsets are u-blox, SiRF, and SkyTraq. To understand how and what data a GPS receiver outputs, the reference manual of its chipset must be examined. For example, NEO-6M GPS receiver uses a u-blox chipset, so it supports NMEA and UBX data formats. So, the exact GPS messages supported by NEO-6M can be found from u-blox NMEA and UBX reference manual.
These chipsets usually have many serial interfaces to communicate GPS data to a computer/controller. The commonly found serial interfaces include UART, I2C, SPI, and USB. In GPS modules, one or more interfaces may be available to get the GPS data. For example, NEO-6M GPS chip has UART, SPI, USB, and DDC (I2C compatible) serial interfaces available while a GPS module using NEO-6M may only expose UART or I2C or SPI for data communication with the GPS receiver.
Interfacing GPS receivers
A GPS receiver can be interfaced to a computer or controller using the serial interfaces available in its chipset. For example, if the chipset has UART, USB, and I2C serial interfaces for data communication, the same can be used to interface the GPS receiver with a controller or computer. Some GPS chipsets also have demo software available that can be used on a computer or embedded Linux computer to view GPS data from the receiver. A computer or controller can also be programmed to fetch GPS data from a GPS receiver/module using a serial communication protocol. In that case, the user program must be able to identify the GPS messages transmitted by the GPS receiver and decode data fields to obtain useful GPS information.