22
GP2021
of the embedded real-time clock on the chip to give a good
estimate of GPS time for the next fix; the navigation
solutioncan be used to measure clock drift and calculate a
correction for the clock to overcome ageing. The user’s
location (or a good estimate of it) along with the Almanac
and the correct time will indicate which satellites should
be searched for. These may be used to find an estimate of
Doppler effects, while the previous clock error is the best
available estimate of the present clock error. If this
information is not available then the receiver must scan a
much wider range of values, which will greatly increase
the time to lock. The satellite Clock Correction and
Ephemeris are needed for the navigation solution, so if a
recent set is held in memory the calculations may begin
as soon as lock is achieved and not need to wait for the
Satellite Navigation message re-transmission (18 to 36
seconds).
The 12-channel correlator on the GP2021 contains four
different types of registers:
●Control Registers that are used to program functions
of the device.
●Status Registers that provide a status indication of the
process taking place in the device.
●Accumulated Data Registers that provide the results
of correlation with the C/A code every millisecond. This
is the raw data used to acquire and track satellite signals.
●Measurement Data Registers which latch the carrier
DCO phase, carrier cycle count, code DCO phase,
1millisecond epoch, and the 20 millisecond epoch count
at every 9·09 or 100 milliseconds interval. This is the
raw data used to compute pseudorange.
Software Sequence For Acquisition
The spectrum of each Navstar GPS satellite signal is
spread-spectrum modulated using 1023 chip Gold codes.
This causes the satellite signals seen by a GPS receiver
to be so weak that they are buried in the noise and can
only be detected by correlation. The GPS signal power at
a GPS receiver antenna is typically approximately
2130dBm, whereas the noise in the GPS signal band
(2·046MHz wide) is approximately 2111dBm at room
temperature. To correlate the received signals therefore,
a locally generated code must be chosen to precisely match
the spreading code type, rate, and phase.
This pattern is then multiplied bit-by-bit with the incoming
data stream and the results integrated over the code length
to recover the signal.
The process of signal acquisition is simply the matching of
receiver settings to the actual signal values. To make
matters more complicated the satellite carrier frequency is
shifted a little by the Doppler effect due to the motion of
the satellite, the user clock will drift randomly, and (in most
situations) the signal-to-noise ratio (SNR) is poor for some
satellites. As a result, the software must be ‘wideband’ to
find the signal and also ‘narrow band’ to reduce noise,
leading to very different programs in different applications.
For all tracking channels, the signal processing software
needs the following sequence of activities:
1. Program CHx_SATCNTL register to select the desired
GPS Gold code (PRN number) for the selected satellite
and also select the code type for the mode of the
correlator tracking arm. It is often best, when in
acquisition mode, to fix the tracking arm to Dithering
Mode (alternate ‘Early’ and ‘Late’) and do a search in
two phases at once and then switch to a tracking mode
once a satellite is found.
2. Program CHx_CARR_INCR_LO and
CHx_CARR_INCR_HI registers. The values
programmed into these two registers are concatenated
and are used to set the local oscillator frequency for the
digital mixing performed in the 12-channel correlator to
bring the incoming 2-bit digitised signal from the RF
front end down to baseband. The value to be
programmed is equal to the nominal local oscillator
frequency plus the estimated Doppler shift
compensation plus the estimated user clock frequency
drift compensation.
3. Program CHx_CODE_INCR_LO and
CHx_CODE_INCR_HI The value to be programmed
in these registers represents twice the nominal chipping
rate of the C/A code (2·046 MHz) plus, if desired, a
small compensation for the Doppler shift and user clock
frequency drift.
4. Release the tracking channel reset by programming
the RESET_CONTROL register with the proper value.
This will cause the correlation process to start.
5. Obtain accumulated data from Accumulated Data
Register readings. Several consecutive readings on the
same tracking channel can be added to increase, at
will, the integration period of the correlation.
6. Decide if the GPS signal has been found by
comparing the correlation result with a threshold. If found
then jump to a signal pull-in algorithm. Note that both
in-phase and quadrature phase accumulated data have
to be considered since at this time, the carrier DCO
local oscillator phase is not necessarily in phase with
the incoming GPS signal.
7. If the GPS signal has not been found, a new trial has
to be made with different carrier DCO, code DCO, or
Gold code phase programming. Typically, both DCOs
would be held constant while the Gold code phase is
varied to try all of the 2046 half chip positions possible,
then the carrier DCO would be programmed with slightly
different values and the Gold code phase positions
would again be scanned. The Gold code phase is varied
by programming the CHx_CODE_SLEW register and
can be varied by increments of half a code chip.