1# longyun
2.6. GPS C/A-transmission format
GPS satellites use code-division multiplexing on both C/A- and P-transmissions. Since C/A-codes are relatively short sequences (only 1023 bits), the codes have to be carefully selected for good cross-correlation properties. GPS C/A-codes are Gold codes (named after their inventor Robert Gold) that can be generated as a modulo-2 sum of two maximum-length shift-register sequences.
The GPS C/A-code generator is shown on Fig.08. It includes two 10-bit shift registers G1 and G2, both clocked at 1.023MHz, each with a separate feedback network made of exclusive-or gates. Both feedback networks are selected so that both generated sequences have the maximal length of 1023 bits. Both shift registers are started in the "all-ones" state and since both sequences have the same length, the shift registers maintain the synchronization throughout the operation of the circuit.
Gold codes are obtained by a modulo-2 sum (another exclusive-or operation) of the outputs of the two shift registers G1 and G2. Different codes can be obtained by changing the relative phase of the two shift registers. Instead of resynchronizing the shift registers it is easier to delay the output of one of them (G2). This variable delay is achieved with yet another modulo-2 sum (exclusive-or) of two G2 register taps. Exclusive-or feedback shift-regiter sequences have the property that a modulo-2 addition of a sequence with its delayed replica produces the same sequence, but delayed by a different number of clocks.
Choosing two G2 register taps, 45 different delays can be generated yielding 45 different Gold codes with good auto-correlation and cross-correlation properties. Out of these 45 possible codes, 32 are allocated to GPS satellites as shown on Fig.09. The cross-correlation properties of GPS C/A-codes guarantee a crosstalk smaller than -21.6dB between the desired and undesired satellite signals.
The 50bps navigation data stream is synchronized with the C/A-code generator so that bit transitions coincide with the "all-ones" state of both shift registers G1 and G2. At 50bps one data bit corresponds to 20 C/A-code periods.
The navigation data is formatted into words, subframes and frames. Words are 30 bits long including 24 data bits and 6 parity bits computed over the 24 data bits and the last two bits of the previous word. Parity bits are used to check the received data for errors and to resolve the polarity ambiguity of the BPSK demodulator. 10 words (300 bits) form a subframe which always includes a subframe sync pattern "10001011" and a time code called "Time-Of-Week" (TOW). One subframe is transmitted every 6 seconds.
Five subframes form one frame (1500 bits) that contains all of the information required to use the navigation signals. One frame is transmitted every 30 seconds. The first subframe in the frame contains the on-board clock data: offset, drift etc. The second and third subframes contain the precision ephemeris data in the form of Keplerian elements with several correction coefficients to accurately describe the satellite's orbit. Finally, the fourth and fifth subframes contain almanac data that is not required immediately and are sub-commutated in 25 consecutive frames, so that the whole almanac is transmitted in 12.5 minutes.
The allocation of the single data words is completely described in [5]. Most numerical parameters are 8-, 16-, 24- or 32-bit integers, either unsigned or signed in the two's complement format. Angular values that can range from 0 to 360 degrees are usually expressed in semi-circles to make better use of the available bits.
GPS is also using its own time scale. The units are seconds and weeks. One week has 604800 seconds and the week count is incremented between Saturday and Sunday. GPS time starts on the midnight of January 5/6, 1980. GPS time is a continuous time and therefore it differs by an integer number of leap seconds from UTC. The difference between UTC and GPS time is included in the almanac message. |