GP2021
8. Once the GPS signal has been found, the code phase
alignment, the carrier phase alignment and the Doppler
and user clock bias compensations are still coarse.The
code phase alignment is only within a half code chip,
the carrier DCO is not in phase with the incoming signal
and in frequency is still in error by up to the increment
used for successive trials.
Data Demodulation
The C/A code is modulated with Space Vehicle (SV) data
at 50 Baud to give the navigation message.This modulation
is an exclusive-OR function of the C/A code with the SV
data.This means that every 20 milliseconds (which is every
20 C/A code epochs), the C/A code phase will be reversed
(shifted by 180 degrees) if the new data bit is different
from the previous one. On the prompt arm, once the signal
is being correctly tracked, such a data bit transition will
change the sign of the accumulated data. Data
demodulation can then be achieved in two stages:
The signal processing software must next use a pull-in
algorithm to refine these alignments. There are many
suitable types of algorithm to choose from, such as
successive small steps until the error is too small to matter,
like an analog PLL, or by using more complicated signal
processing to estimate the errors and jump to a much better
set of values. The signal pull-in algorithm will then program
CHx_CARR_INCR_LO/Hl registers with more accurate
values for the Carrier DCO. Corrections to the Gold code
phase smaller than a half chip cannot be done by
programming CHx_CODE_SLEW registers in the Code
Generator, but should set CHX_CODE_INCR_LO/_HI
registers to steer the Code DCO and gradually bring the
Gold code phase to the right value.
1.Locate the instants of data bit transitions to identify which
C/A code epoch corresponds to the beginning of a new
data bit.This will allow initialisation of the GP2021 epoch
counters by the signal processing software (through the
CHx_1MS_EPOCH and CHx_20MS_EPOCH
registers) to count code epochs from 0 to 19 in phase
with data bits. At each new cycle of the 1ms epoch
counter, the 20ms epoch counter will increment.
2. Record the sign of accumulated data on the prompt
arm for each data bit period of 20ms, with filtering to
reduce the effect of noise on the signal. Note that there
is a sign ambiguity in the demodulation process in that
it is not possible to tell which data bits are zeros and
which are ones from the signal itself. This ambiguity
will be resolved at a later stage when the full Navigation
Message is interpreted.
Signal Tracking
The incoming GPS signal will exhibit a Doppler shift that
varies with time due to the non-uniform motion of the
satellite relative to the receiver, and the user clock bias is
likely to also vary with time. The net result is that unless
dynamic corrections are applied to the code and carrier
DCOs, the GPS signal will be lost. This leads to two servo
loops being required: one to maintain lock on the Gold
code phase and a second to maintain lock on the carrier.
This can be implemented with the following.
Pseudorange Measurement
The measurement data registers provide the raw data
necessary to compute the pseudorange. This raw data is
a sample, at a given instant set by the TIC signal, of the
20ms and 1ms epoch counters, the C/A code phase
counter and the code DCO phase. By definition, the
pseudorange is expressed in time units and is equal to the
satellite-to-receiver propagation delay plus the user clock
bias. The user clock bias is first estimated (blind guessed
is more likely with a cold start, but iteration then takes
longer) and then obtained as a by-product of the navigation
solution. The pseudorange is equal to the user’s apparent
local time of reception of the signal (t1) minus the GPS
real time of transmission (t2).
The raw data used to steer the two servo loops is the
Accumulated Data, which is output by the tracking channel
at the rate of once per millisecond. The tracking arm
Accumulated Data is used for the Gold code loop; some
approaches use an ‘early minus late’ Gold code to
implement a null steering loop, others use a dithering code
which alternates between a code one half-chip late and a
code one half-chip early. In the GP2021, the dithering rate
is 20ms (20 code epochs) each way, starting with Early
after a reset, when this type of code is selected through
the CHx_CNTL register. The Gold code loop is closed by
regularly updating the code DCO frequency using the
CHx_CODE_INCR_LO/_HI registers.
With the demodulated data, the software has access to
the Space Vehicle Navigation Message, which contains
information on the GPS system time for the transmission
of the current sub-frame; this is equal to term t2.
The prompt arm Accumulated Data is used for the carrier
phase loop (although the dithering mode in the tracking
arm may also be used). One approach consists of varying
the carrier DCO phase in order to maintain all the correlation
energy in the in-phase correlator arm and none in the
quadrature phase correlator arm. The carrier phase loop
is closed by regularly updating the carrier DCO frequency
using the CHx_CARR_INCR_LO/_HI registers.
The time information in the navigation message allows the
receiver time to be initialised with a resolution of 20
milliseconds (one data bit period) but with knowledge of
the precision to much better than one C/A code chip - a
little less than 1 microsecond. As the time-of-flight from
the satellite to the receiver is in the region of 60 to 80
milliseconds an improved first guess for local time could
23