Stefan said:
There is almanac data for one satellite in each 30 second frame. In 12.5
minutes there are 25 such frames but there are currently 28 active
satellites so I guess you can't get the whole constellation from one
satellite in 12.5 minutes.
You didn't read the reference--Almanac covers 32 satellites!
REFERENCES
1. GPS Interface Control Document ICD-GPS-200 - NAVSTAR GPS Space Segment and
Navigation User Interfaces
2. Wells D, Guide To GPS Positioning, 2nd ed, Canadian GPS Associates, Frederiction,
New Brunswick, Canada 1987
3. Email - Bill Straka
GPS MESSAGE CONTENT
see:
http://www.cnde.iastate.edu/staff/swormley/gps/Wells.et.al.6.06.gif
SUBFRAME 1
Flags (L2 code & data; week #; satellite accuracy and health)
Age of Data
Satellite clock correction coefficients
Telemetry Word (TLM) - Each TLM word is 30 bits long, occurs every six
seconds in the data frame, and is the first word in each subframe/page.
The format shall be as partially shown below. Bit 1 is transmitted
first. Each TLM word shall begin with a preamble (10001011) followed by
the TLM message, two reserved bits, and six parity bits. The TLM
message contains information needed by the authorized user.
Handover Word (HOW) - The HOW shall be 30 bits long and shall be the
second word in each subframe/page, immediately following the TML word.
A HOW occurs every 6 seconds in the data frame. The format and content
of the HOW shall be as partially shown below. The MSB is transmitted
first. The HOW begins with the 17 MSBs of the time-of-week (TOW) count.
(The full TOW count consists of the 19 LSBs of the 29-bit Z-count.
These 17 bits correspond to the TOW-count at the X1 epoch which occurs
at the start (leading edge of the next following subframe.
Word 3 in subframe 1 is the week number (WN), which gives you the date.
Combine the week number with the TOW, plus GPS origin date, and you
have GPS time. Actually, you need to look a little further on at the
SV's clock correction, drift rate and IODC (Issue of Data, Clock - in
other words, when the correction parameter was inserted into the
message), but this is pretty small.
In the present format of the message, there is no provision for giving
which 1024 week cycle you are in. There is some discussion of providing
a couple extra bits in the reserved parts of the message. For a receiver
built today, the way around the 1024 week cycle limitation is to have
the user's receiver provide that information (are you between 1980 and
1999? Are you between 1999 and .... etc, or simpler, are you in the
1980's, 1990's, 2000's, or whatever decade? or tie it closer to the
year.) It can be done as a user input, just like the time zone/daylight
time offset. Or, just use the ROM issue date or software version date.
This allows your GPS receiver to sync with GPS time.... Take a look
at subframe 4 page 18 for the relationship of GPS time with UTC.
|<--------- TLM Word -------->|<----------- HOW ----------->|
(word 1) (word 2) (word 3)
|1 |31 |61 |91 300
|---------------------|-|-----|----------------|-|--|-|-----|---------|-|---|-----|-|-----|----/ /---|
| | | | | | | | | | | | | | | |
| TLM |C| P | TOW | | |t| P | WN | | | | | P | |
| | | | MS 17-BITS | | | | | 10-BITS | | | | | | |
|10001011 | | |MSB LSB| | | | | | | | | | | |
|---------------------|-|-----|----------------|-|--|-|-----|---------|-|---|-----|-|-----|----/ /---|
SUBFRAMES 2 & 3
Orbit Parameters
|<--------- TLM Word -------->|<----------- HOW ----------->|
(word 1) (word 2) (word 3)
|1 |31 |61 |91 300
|---------------------|-|-----|---------------------|-|-----|-------|---------------|-----|----/ /---|
| | | | | | | | | | |
| TLM |C| P | HOW |t| P | IODE | C(rs) | P | |
| 22 BITS | | | 22 BITS | | |8 BITS | 16 BITS | | |
|10001011 | | | | | | | | | |
|---------------------|-|-----|---------------------|-|-----|-------|---------------|-----|----/ /---|
|1 |31 |61 |91 300
|---------------------|-|-----|---------------------|-|-----|---------------|-------|-----|----/ /---|
| | | | | | | | | | |
| TLM |C| P | HOW |t| P | C(ic) | | P | |
| 22 BITS | | | 22 BITS | | | 16 BITS |8 BITS | | |
|10001011 | | | | | | | | | |
|---------------------|-|-----|---------------------|-|-----|---------------|-------|-----|----/ /---|
SUBFRAME 4
Almanac for satellites 25-32 (pages 2-5, 7-10)
Ionospheric model, and UTC data (page 18) partially shown
Antispoof flag - 32 satellites (page 25)
Satellite configuration - 32 satellites (page 25)
Health of satellites 25-32 (page 25)
Reserved (pages 1,6,11,12,16,19,20-24)
Spares (pages 13-15)
Special messages (page 17)
|1 |211 219 227 |241 249 257 |271 279 300
|----/ /---|-------|-------|-------|-----|-------|-------|-------|-----|-------|-------------|-|-----|
| | | | | | | | | | | | | |
| | | t(ot) | WN(t) | P |dt(LS) |WN(LSF)| DN | P |dt(LSF)| SPARE |t| P |
| |8 BITS |8 BITS |8 BITS | |8 BITS |8 BITS |8 BITS | |8 BITS | 14 BITS | | |
| | | | | | | | | | | | | |
|----/ /---|-------|-------|-------|-----|-------|-------|-------|-----|-------|-------------|-|-----|
| | | |
(word 8) (word 9) (word 10)
Universal Coordinated Time (UTC) - Page 18 of subframe 4 includes (1)
the parameters needed to relate GPS time to UTC, and (2) notice to the
user regarding the scheduled future or recent past (relative to NAV
message upload) value of the delta time to to leap seconds dt(LSF),
together with the week number WN(LSF) and the day number (DN) at the end
of which the leap second become effective. "Day one" is the forst day
relative to the end/start of week and the WN(LSF) value consists of
eight LSBs of the full week number. The user must account for the
truncated nature of this parameter as well as truncation of WN, WN(t),
and W(LSF) due to rollover of the full week number. The Command Segment
(CS) shall manage these parameters such that the absolute value of the
difference between the untruncated WN and WN(LSF) value shall not exceed
127. For more detail see section 20.3.3.5.2.4 of ICD-GPS-200.
SUBFRAME 5
Almanac for satellites 1-24 (pages 1-24)
Health of satellites 1-24 (page 25)