GPS Navigation Satellite message format and protocol details
by Ed Weston
Rev: 4March 1999

Note by Joe Mehaffey:  Ed is an analyst familiar with the formats of  GPS signals.  He has written  this material as an entry point for discussions.  Ed invites your questions and comments and this material will grow as your questions introduce areas of interest. 

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 

Joe and Jack's GPS Information Website