Software techniques for use in the global positioning system (GPS)1,2 have recently captured the growing interest of communication and navigation engineers. Thanks to very-largescale integration (VLSI) development, powerful CPUs and DSPs are now capable of detecting and decoding GPS signals in real time using software. The resulting software-based GPS receivers offer considerable flexibility in modifying settings to accommodate new applications without hardware redesign, using the same board design for different frequency plans, and implementing future upgrades.
The CPU inside most of today’s laptop computers has plenty of performance to meet the real-time decoding needs. By using a chip like the MAX2741 GPS receiver RF front-end, a simple USB dongle or PCIexpress minicard can be used to add low-cost GPS capability to a laptop PC, by letting the PC execute the baseband decoding in software, eliminating the cost of the baseband ASIC typically required in standalone GPS systems.
The RF front-end of a software-based 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 4 MHz (Figure 1). 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-todigital converter (ADC).
All those functions — LNA, mixer, and ADC — have been integrated into the MAX2741, thus significantly reducing the development time for applications. A two-stage receiver amplifies the incident 1575.42-MHz GPS signal, downconverts it to a first IF of 37.38 MHz, further amplifies it, and then downconverts to a second IF of 3.78 MHz. An internal 2- or 3-bit ADC (selectable as a 1-bit sign with a 1- or 2-bit magnitude) samples the second IF and outputs a digitized signal to the baseband processor. The integrated frequency synthesizer enables flexible frequency planning, allowing the same board to implement many popular reference frequencies between 2 and 26 MHz with just a change of settings. The integrated reference oscillator enables operation with either a crystal or a temperature- compensated crystal oscillator (TCXO).
A simple USB dongle reference design based on the MAX2741 and a Cypress Semiconductor USB controller operates from a 24-MHz crystal reference (to match the clock required by the USB controller). It also employs two MAX8510 LDOs to regulate the DC supply. A 3-wire (SPI) digital bus is used to program the registers of the MAX2741. This reference design allows a hardwired connection of the active antenna onto the PCB, thus integrating it into the design. It also includes additional circuitry to turn off the antenna during shutdown mode for USB compliance. The MAX2741 also includes an integrated synthesizer that allows a single board design to be employed for reference frequencies up to 26 MHz. The integrated reference oscillator allows either TCXO or crystal operation.
Before examining the design of the USB or PCIe hardware, let’s review a little of the basic theory for software GPS receivers. For the decoding of navigation messages and position calculations, the interested reader can refer to James Bao-Yen Tsui’s book, “Fundamentals of Global Positioning System Receivers: A Software Approach.”3
A GPS system consists of 24 space satellites or space vehicles (each identified by a unique PRN code), a ground-control station, and user equipment (receivers). For civilian GPS applications, the satellites communicate over the L1 band located at 1.57542 GHz. A GPS receiver requires line-of-sight “visibility” of at least four satellites to establish a reliable position. Acquisition and tracking of the signals is very complex, because each one varies with time as well as receiver location.
Traditional GPS receivers implement acquisition, tracking, and bit-synchronization operations in an ASIC, but a software GPS receiver provides flexibility by implementing those blocks in software rather than hardware. By simplifying the hardware architecture, software makes the receiver smaller, cheaper, and more power-efficient. You can write the software in C/C++, MATLAB®, and other languages, and port it into all operating systems (embedded OS, PC, Linux, and DSP platforms). Thus, software GPS receivers offer the greatest flexibility for mobile handsets, PDAs, and similar applications.
For laptop computers, designers can opt to design either a USB “dongle” that can work with any laptop with USB ports, or for newer laptops that have a PCIexpress minicard connector, they can put the RF front-end on the PCIe minicard and embed the card in the PC (Figure 2a, b). The PCIe minicard interface includes a USB port, so the design of the front-end adapter is similar for both USB and the PCIe minicards. The main difference is in some of the powermanagement logic required for the PCIe support and to deal with the different DC voltages (3.3-V for PCIe and 5-V for external USB ports).
The USB dongle solution can be simple, with just the MAX2741, a counter, and the USB interface controller needed to capture the signal convert it to digital and send it to the host PC. Software running on the host PC then performs all the baseband functions and displays the location on the PC screen.
This article will only examine the civilian GPS signal on the well-known L1 band located at 1.57542 GHz. The GPS system is actually a simple spreadspectrum communication system4. First, the 50-bps navigation message is repeated 20 times to produce a 1,000- bps bit stream. The repeated signal is then spread by a unique C/A code with a length of 1,023 chips (a chip is the rate at which the pseudorandom noise code is applied). The result is a baseband signal of 1.023 megabits per second (Mbps). Hence, the 43-dB processing gain (G) of the GPS system permits it to resolve a signal well below the thermal noise level.