GPS Receiver
The GPS system has been fully operational with 24 satellites in its constellation since 1994. The fundamental concept of using code-division multiple access (CDMA) for time-delay measurement (yielding range) while allowing all satellites to share the same carrier frequency (1.57542 GHz for civilian access) has not changed in the past 30 years.
Each GPS satellite uses a unique 1,023-chip orthogonal code (Gold code) to spread the low-speed binary phase shift keying (BPSK, 20 ms per bit) navigation data bitstream. The chipping clock rate is 1.023 MHz, and therefore the sequence of 1,023 chips repeats every millisecond.
The GPS receiver generates a local copy of the same Gold code, which is then cross-correlated with the incoming signal. When the receiver code phase aligns with the incoming signal code phase, there is a +30 dB improvement in the SNR (10*log10(1023)), and the BPSK navigation bitstream can then be easily detected. Roughly speaking, you can use the local code time offset, where the correlation is maximized to estimate the time difference between the received signal and the signal transmitted by the satellite. The range is directly proportional to time; therefore, with four satellite ranges, and knowing the positions of the satellites, you can navigate.
Like all CDMA systems, the design of a GPS receiver presents some formidable challenges. The satellites are traveling at close to 7,000 km per hour, giving rise to a Doppler shift ranging from -6000 to +6000 Hz. They are 20,200 km away, running low-power (50W) transmitters. Signals at the terrestrial receiver input are typically 20 dB or more below the noise level. And the local receiver clock is never in step with the ultra-precise Cesium clocks in the satellites, so Doppler and symbol timing recovery loops need to be implemented as well as acquisition logic.
Differential GPS (DGPS)
Differential GPS, or DGPS, has been developed to improve GPS accuracy to within a few meters. DGPS was originally initiated by the U.S. Coast Guard to counter the accuracy degradation caused by Selective Availability. Even with S/A now eliminated, DGPS continues to be a key tool for highly precise navigation on land and sea. DGPS technology adds a land-based reference receiver – located at an accurately surveyed site – to the other GPS components. This non-moving DGPS reference station knows where the satellites are located in space at any given moment, as well as its own exact location. This allows the station to compute theoretical distance and signal travel times between itself and each satellite. When those theoretical measurements are compared to actual satellite transmissions, any differences represent the error in the satellite's signal. All the DGPS reference station has to do is transmit the error factors to your DGPS receiver, which gives the information to the GPS receiver so it can use the data to correct its own measurements and calculations.
The two most common sources of corrective DGPS signals currently are: (1) Coast Guard, land-based beacon transmitters, broadcasting the data at no charge to the public, covering all coastal areas and much of the inland USA as well; and (2) FM radio sub carrier transmissions available both in coastal and inland areas, but limited to paid subscribers. In order to receive DGPS correction data from Coast Guard beacon transmitters, a mobile GPS unit requires a separate beacon receiver. And to receive FM sub carrier DGPS signals from local subscriber radio stations, the GPS unit requires a separate FM receiver, normally the size of a pager. Naturally, your GPS unit must have the capability to both receive and process DGPS data.
GPS Receiver Architecture
GPS works by making one way range measurements from the receiver to the satellites. In order to arrive at a position fix we must know precisely where the satellites are and how far we are from them. These data are available to the receiver by reading the data message from each satellite which provides a precise description of the satellite orbit and timing information which is used to determine when the signal was transmitted by the satellite. Each satellite transmits on 2 frequencies in the L band (L1=1575.42 MHz and L2=1227.6 MHz). Each satellite transmits a unique CDMA (Code Division Multiple Access) code on these frequencies. On top of this the signal is modulated with a 50 Hz data message which provides precise timing information and orbital parameters. Since the receiver knows which sequence is assigned to each satellite it knows what satellite the data is coming from. The receiver creates a copy of the sequence and correlates or integrates the received signal multiplied by this copy over a period of time (in our case 1 ms). The particular sequence transmitted by each satellite has been chosen to reduce the chance that a receiver will track a satellite transmitting a different PRN sequence. For more detail on correlators see the Zarlink chipset documentation or some of the other references.
The attached figure is a traditional GPS receiver architect (from Zarlink). It is made up of antenna, RF/IF section and a base band processing unit, which usually has correlators and an embedded processor. The host processor talks to the embedded processor in an industrial standard protocol called NMEA (National Marine Electronics Association) or optional proprietary protocols. The physical links between the processors might be a standard UART, USB or Bluetooth. The communication over USB and Bluetooth has to simulate a virtual serial port to talk with high level application software. The default baud rate of NMEA is 4800bps, the higher rate doesn't make sense.
Antenna
The most commonly used antennas in GPS are the Helix and the patch antenna. Patch antenna has strong direction selectivity, which is used in most of the external GPS mice. The Helix antenna is much suitable for handheld GPS, which offers broader antenna angle, and it works better than patch antenna when it is close to human.
RFIC
The RF parts of a GPS from different suppliers are slightly different but most of these ICs are sharing same concept. The RF section includes LNA, filter, PLL and BPSK demodulator. Maxim’s MAX2769 demonstrates the general RF IC for GPS receiver.
The RF front-end of a GPS receiver first amplifies the weak incoming signal with a low-noise amplifier (LNA), and then downconverts the signal to a low intermediate frequency (IF) of approximately 4MHz. This downconversion is accomplished by mixing the input RF signal with the local oscillator signal using one or two mixers. The resulting analog IF signal is converted to a digital IF signal by the analog-to-digital converter (ADC).
The MAX2769 integrates all these functions (LNA, mixer, and ADC), thus significantly reducing the development time for applications. The device offers a choice of two LNAs: one LNA features a very-low, 0.9dB noise figure, 19dB of gain, and -1dBm IP3, for use with passive antennas; the other LNA has a 1.5dB noise figure with slightly lower gain and power consumption, and a slightly higher IP3, for use with an active antenna.
There is a provision for external filtering at RF after the amplifier. The signal is then downconverted directly using the integrated 20-bit, sigma-delta, fractional-N frequency synthesizer together with a 15-bit integer divider to achieve virtually any desired IF between zero and 12MHz. A wide selection of possible IF filtering choices accommodates different schemes, such as those of Galileo.
The overall gain from RF input to IF output can be tuned or automatically controlled over a 60dB to 115dB range. The output can be chosen as analog, CMOS, or limited differential. The internal ADC has a selectable output of one to three bits. The integrated reference oscillator enables operation with either a crystal or a temperature-compensated crystal oscillator (TCXO), and any input reference frequency from 8MHz to 44MHz can be used.
Correlators
The correlators of GPS are the essential parts of the whole system of bit synchronization and decoding. The correlators will feed the raw digit output to the embedded processor to acquire, confirm, pull-in, track the satellites, and translate into NMEA protocol, which the host controller can understand.
The correlators can be implemented in hardware and software. Recently, the number of correlators increases dramatically. The early product from Zarlink has 12 channel correlators. The newer SiRF-II has 1920 correlators inside, and the latest SiRF-III has over equivalent 200K correlators to reduce the TTFF. MediaTek (MTK) Taiwan also released a low cost GPS chip, which has 32 channel correlators inside.
Some open source projects released the FPGA based correlators. On the other hand, the correlators can be implemented in a FFT based software algorithm, which is referred as software GPS and cited in an application note from Maxim.
Embedded Processor
The silicon suppliers are trying to promote their own platforms in GPS. The task for the embedded processor is calculation and tracking the different satellites and interfacing with host processor in NMEA. If you check the NMEA document, you will realize that the embedded processor has to deal with so many parameters in detail. The requirements for the embedded processors are big enough memory address space and sufficient processing power for intensive calculation. The ARM7TDMI is a 32bit core, which offers sufficient memory space and processing power. The peripherals included UART, USB and Bluetooth have been available for ARM for a long time. As a result, the latest GPS chips from different suppliers have the identical trend to select ARM7TDMI as the embedded processor.
Software GPS
If the hardware can be implemented in software, the total cost of a GPS can be reduced. Different suppliers have different approaches. One solution is merging the embedded processor to the host processor, so the job is done in the host. In this solution, the basic hardware blocks such as correlators are still kept. Some companies call this approach as accelerated software GPS. The other solution is taking the digitalized signal from IF, and implements the correlators and decoders in software. We can call it as full software GPS. The software GPS is only available in commercial licenses on specific chip in linkable library. Sometime the software GPS license might be more expensive than a low cost IC.
SiRF has acquired the Centrality Atlas, who offers SoC for GPS. Its Atlas is a software GPS product, running on a 300MHz ARM microprocessor and 200MHz DSP. This chip is the best seller in automotive navigator. It offers the comparable performance with SiRF-III, with lower price and media player features.
NXP software also offers Spot GPS software for the host application processors. The Spot GPS Software is a commercial software package in the form of ANSI C. It is easy to be deployed since most of the latest smart phones have a 200MHz, even 500MHz processor inside.
There is also an open source GPS project called GPS world, which uses ATMEGA32 for back-end processing. But this project is not a complete software GPS solution, because it was built upon a hardware correlators IC from Zarlink. However if you are developing the firmware of a GPS receiver, it could be the base for your development. In the reference of open source projects, you can find other software GPS designs.
Modules or DIY
Because GPS is quite sensitive to the environment, inexperienced designs will ruin the whole project. According to the field report, the GPS module has quite high failure rate in production site. Some mobile phone manufacturers tried to design the GPS by themselves, finally they found their GPS phone design is totally a fiasco.
The module includes everything and assembly in a can module. The size is as small as a coin. There are many professional GPS module suppliers. LeadTek, Holux and other suppliers are offering SiRF and MTK based solution worldwide.
Application Software
From the point of system software development, the software engineer can consider GPS unit as a standard serial port. No matter which OS is selected, the serial port is always available, either in a real RS232 or simulated serial port on USB and Bluetooth. Any person who has experience of developing UART can develop the GPS application software in NMEA protocol as well.
Finally, the high level application software will combine the map data and coordinates from GPS and present to the users.
There is an open source project called Openmoko, which is sponsored by FIC Taiwan. This project is basically an ARM920T (S3C2440) microprocessor based mobile phone. The GSM/GPRS module and GPS module are connected to the serial ports for ARM920. The phone is working like a desktop PC with GPRS modem and GPS receiver. Anyway, it is a good project which you can start up your own GPS terminals.
The connected GPS project Dash Express is a derivated project from Openmoko.