The GPS Navigation Message
The navigation message is a continuous 50 bits/second data stream
modulated onto the carrier signal of every satellite. It is a telemetry
message, and the data is transmitted in logical units called frames.
For GPS a frame is 1500 bits long, so takes 30 seconds to be transmitted.
Every satellite begins to transmit a frame precisely on the minute and
half minute, according to its own clock. Each frame is divided into five
subframes, each 300 bits long. Subframes 1, 2 and 3 contain the high accuracy
ephemeris and clock offset data. The "data content" (which I'll define
later) of these three subframes is the same for a given satellite for consecutive
frames for periods lasting as long as two hours. New subframe
1, 2 and 3 data sets usually begin to be transmitted precisely on the hour
(see description of uploads and cutovers below). Subframe 1
contains second degree polynomial coefficients used to calculate the satellite
clock offset. Subframes 2 and 3 contain orbital parameters.
Subframes 4 and 5 are "subcommutated, which means that consecutive subframes
have different "data content". This data does repeat, but 25 consecutive
frames of subframe 4 and 5 data must be collected before the receiver has
all of the unique "data content" being transmitted by the satellite.
A satellite transmits the same "data content" in subframes 4 and 5 until
it is next uploaded, or usually for about 24 hours. Subframes 4 and
5 contain the almanac data and some related health and configuration data.
Each subframe is divided into 10 words of 30 bits each. Six bits
in each word is for parity. The 24 data bits in words 3 through 10 is what
I meant by "data content" above. Word 1 and 2 have the same format in every
subframe. Word 1 is called the telemetry word. The first 8 bits in the
telemetry word contain a sync pattern, used by the receiver to help synchronize
itself with the Navigation Message and thus be able to correctly decode
the "data content". Word 2 contains the truncated Z-count. This is the
time according to the satellite's clock when the end of
the subframe will be transmitted, with a scale factor of 6 seconds.
Think of the truncated Z-count as a counter that is incremented in consecutive
subframes. [Note, the full Z-count has a scale factor of 1.5 seconds and
is one of the primary units for GPS time.]
Uploads typically occur about once every 24 hours for each satellite.
In an upload the Master Control Station (MCS) sends the satellite all of
the "data content" the satellite will transmit during the next 24 hours,
plus data for the next few weeks in case an upload is delayed for some
reason. An upload contains roughly 16 subframe 1, 2 and 3 data sets. When
a satellite begins transmitting a new data set this is called a cutover.
The first cutover after an upload may occur at any time of the hour, but
subsequent cutovers only occur precisely on hour boundaries.
Each subframe 1, 2 and 3 data set is transmitted for no more than
two hours. With some transmitted for exactly an hour, some for exactly
two hours and some (either immediately before or after an upload) broadcast
for a period of less than two hours.
Subframe 1 contains a clock offset time-of-applicability (this is
the fit time for the polynomial), and subframe 2 or 3 (I can't remember
which) contains an ephemeris time-of-applicability. The two time-of-applicabilty
values are almost always the same, and for a cutover that begins on an
hour epoch, the time-of-applicability values are almost exactly two hours
later than the initial transmission time of the subframe 1, 2 and 3 data
set. Each of the these three subframes also contains an index value which
allows the receiver to verify that the three subframes are part of the
same data set.
A typical receiver sold today is all-in-view, meaning it trys to
track all satellites in view continuously. It almost certainly contains
logic similar to the following. It continuously demodulates the Navigation
Message data, looking for a change in the subframe 1, 2 or 3 "data content".
If it detects a change it collects a new subframe 1, 2 and 3 data set and
begins using it to navigate. This is the best strategy because it means
the receiver is using the freshest data available, which will tend to be
the most accurate. It may do something similar for the almanac, but it
is less critical to have the latest almanac data so it may not collect
every unique set, and usually an almanac is only collected from one of
the satellites. A subframe 1, 2 and 3 data set is designed to describe
the clock and orbit for a four hour period (six hours is also possible),
with the time-of-applicability near the center of the period. Note
that since a data set is not transmitted for more than two hours, the time-of-applicability
is almost always in the future, assuming the satellite is being tracked
continuously. If a receiver is turned off and then back on, the receiver
could use either its saved almanac or latest subframe 1, 2 and 3
data set (if it has saved it) for acquiring the signal. In terms of accuracy,
it would use a subframe 1, 2 and 3 data set if the current time is not
more than two hours after the time-of-applicability (and in practice it
would be more accurate than the almanac for at least a few more hours).
If it has subframe 1, 2 and 3 data that is less than 2 hours beyond its
time-of-applicability it could reasonably begin navigating with a satellite
as soon as it can make pseudo-range measurements, and thus not wait for
a new data set to be received.
This of course is just a brief introduction to the Navigation Message,
but I'm hoping it may help in understanding GPS navigation. I'll be glad
to address questions on the Navigation Message (I do have some excellent
reference material that is not generally available to refer to if
necessary). Also, I've tried to use standard terms in the above
discussion, but my term "data content" is not standard (I just invented
it).
If you have questions or would like additional information about the GPS sattelite signal format, Email ME
Ed Weston