Moderated Discussion Areas
  ContinuousWave: Small Boat Electrical
  GPS: PRN Codes and NMEA Satellite ID

Post New Topic  Post Reply
search | FAQ | profile | register | author help

Author Topic:   GPS: PRN Codes and NMEA Satellite ID
jimh posted 09-14-2008 12:04 PM ET (US)   Profile for jimh   Send Email to jimh  
The GPS system uses a form of spread-spectrum or code-division multiple access (CDMA) communications in which each signal source is modulated by a PRN code. PRN means "pseudo-random noise." (It does not mean "pseudo-random number" as is sometimes mistakenly reported.) The PRN code (along with other encoded sub codes) dithers the L1 carrier (or the coarse-acquisition carrier) of the signal. All receivers listen on the same L1 frequency, but they sort out the satellite signals by demodulating them according to their PRN encoding.

There is an allocation plan for assignment of PRN codes. In as much as the GPS is controlled by the military, not surprisingly the Air Force is the source of authority. The allocation of PRN codes is:

1 to 63: Reserved for GPS satellites;

64 to 119: Reserved for ground-based augmentation systems (GBAS) and other sources;

120 to 158: Reserved for satellite-based augmentation systems (SBAS) such as the FAA's WAAS;

159 to 210: Reserved for future use

Also see:

In the current GPS implementation, all the satellites are using a PRN code in the range 1 to 31. For the WAAS system all PRNs will be in the 120 to 158 range. At the moment there are only two active satellites, and they use PRN 135 and 138. Previously PRN 122 and 134 were active.

In the NMEA 0183 specification, which is proprietary and not available except by purchase, there is a field designator SATELLITE ID. As far as I can tell, again this is based without access to the actual specifications, the SATELLITE ID and the PRN are the same for values of 1 to 32.

Identification of WAAS SIS ("signals in space") sources in NMEA apparently uses a different technique. The SATELLITE ID is set to the PRN minus 87. We can build a table thus:

120 = 33
121 = 34
122 = 35
123 = 36

and so on to

135 = 48
136 = 49
137 = 50
138 = 51

and finally

157 = 70
158 = 71

In trying to understand the reasoning behind this, and again without the benefit of being able to actually see the NMEA-0183 specification, it appears as though the PRN numbering was transformed in order to cause it to become less than 64 for most possible PRN numbers. This may have been necessary to accommodate a limit in the NMEA-0183 specification with regard to the size of binary numbers it could send. This explanation seems plausible because the initial GPS configuration only suggested there would be PRN codes of 63 or less. When WAAS was introduced, there may not have been a specification in NMEA-0183 which provided for identification of signals with PRN numbers higher than 63.

I also speculate that in the NMEA-2000 specification there may be a new specification that provides for identification of the signal source by PRN, using a field size that can directly accommodate larger numbers. Or, perhaps there is an automatic re-translation of the numbers in the range 32 to 71 back to their original PRN of 120 to 158.

When initially looking at the relationship between PRN and NMEA SATELLITE ID, the offset of 87 did not make any sense. The value 87 does not seem intuitive as it is not a power of 2 (binary) or otherwise a natural number. However, once I discovered the notation of SBAS PRN beginning at 120, the translation by subtraction of 87 makes perfect since. It moves most all of the PRN codes into the range 32 to 63, a natural container based on binary math with a limited number of fields available.

If anyone with access to the NMEA-0183 or NMEA-2000 specification would care to comment on this, it would be appreciated.

Post New Topic  Post Reply
Hop to:

Contact Us | RETURN to ContinuousWave Top Page

Powered by: Ultimate Bulletin Board, Freeware Version 2000
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.