Abstract:
A method and apparatus for distributing satellite navigation data is described. In one example, satellite signals are processed at each of a plurality of reference stations to receive a respective plurality of satellite navigation data streams. Packets are formed in response to said plurality of satellite navigation data streams to generate a plurality of packetized satellite navigation data streams. The packetized satellite navigation data streams are sent to a processing system. The processing system removes duplicate packets within said plurality of packetized satellite navigation data streams to generate a combined packet stream. The combined packet stream is then sent into a communication network.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention generally relates to satellite position location systems and, more particularly, to distributing satellite navigation data. 
         [0003]    2. Description of the Related Art 
         [0004]    A satellite signal receiver for the Global Positioning System (GPS) uses measurements from several satellites to compute a position. The process of acquiring the GPS radio signal is enhanced in speed and sensitivity if the GPS receiver has prior access to a model of the satellite orbit and clock. This model is broadcast by the GPS satellites and is known as the satellite navigation message. Once the GPS radio signal has been acquired, the process of computing position requires the use of information contained within the satellite navigation message. 
         [0005]    The GPS satellite navigation message is transmitted in 1500-bit frames at 50 bits per second, as defined by ICD-GPS-200C. Thus, each frame is transmitted in 30 seconds. The 1500-bit frame of each broadcast includes five sub-frames of 300 bits length. The first three sub-frames (i.e., the first 900 bits) include the ephemeris information associated with the particular broadcasting satellite. The ephemeris information contains precise satellite orbit and time model information for a particular satellite. The first three sub-frames are identically repeated in each 1500-bit frame for a particular duration. The broadcast ephemeris information is typically valid for two to four hours into the future (from the time of broadcast) and is periodically updated by a satellite control station. The fourth and fifth sub-frames contain part of a satellite almanac, which includes coarse ephemeris and time model information for the entire satellite constellation. The contents of the fourth and fifth sub-frames change until the entire almanac is transmitted. The repetition period of the fourth and fifth sub-frames is 12.5 minutes (i.e., the entire satellite almanac is contained in 15,000 bits). 
         [0006]    It is always slow (no faster than 18 seconds), frequently difficult, and sometimes impossible (in environments with very low signal strengths), for a GPS receiver to download ephemeris information from a satellite. For these reasons, it has long been known that it is advantageous to send the ephemeris to a GPS receiver by some other means in lieu of awaiting the transmission from the satellite. U.S. Pat. No. 4,445,118, issued Apr. 24, 1984, describes a technique that collects ephemeris information at a GPS reference station, and transmits aiding data to the remote GPS receiver via a wireless transmission. This technique of providing aiding data to a GPS receiver has become known as “Assisted-GPS”. 
         [0007]    Presently, A-GPS reference stations receive ephemeris data for in-view satellites and store the entire ephemeris model (e.g., 900 bits) as a data file for distribution. The data file containing the ephemeris is transmitted to the remote receiver at some time after the initial collection of the data (e.g., minutes later). This latency between collection and distribution of the ephemeris data may deleteriously affect operation of the remote receiver. For example, the ephemeris data in use by the remote receiver may become invalid due to an unhealthy satellite. The remote receiver, however, will continue to use the invalid ephemeris data for several minutes before receiving updated ephemeris data from the server. 
         [0008]    Therefore, there exists a need in the art for a method and apparatus that distributes satellite navigation data to a remote receiver with decreased latency. 
       SUMMARY OF THE INVENTION 
       [0009]    The disadvantages associated with the prior art are overcome by a method and apparatus for distributing satellite navigation data. In one embodiment, satellite signals are processed at each of a plurality of reference stations to receive a respective plurality of satellite navigation data streams. Packets are formed in response to said plurality of satellite navigation data streams to generate a plurality of packetized satellite navigation data streams. The packetized satellite navigation data streams are sent to a processing system. The processing system removes duplicate packets within said plurality of packetized satellite navigation data streams to generate a combined packet stream. The combined packet stream is then sent into a communication network. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments. 
           [0011]      FIG. 1  is a block diagram depicting an exemplary embodiment of a satellite navigation data distribution system; 
           [0012]      FIG. 2  is a data flow diagram depicting an exemplary embodiment of a process for distributing satellite navigation data from a reference station to a server; 
           [0013]      FIG. 3  is a flow diagram depicting an exemplary embodiment of a process for decoding satellite signals to recover satellite navigation data within a reference station; 
           [0014]      FIG. 4  is a flow diagram depicting an exemplary embodiment of a process for concentrating satellite navigation data within a hub; 
           [0015]      FIG. 5  is a flow diagram depicting an exemplary embodiment of a process for decoding satellite navigation data at a server; and 
           [0016]      FIG. 6  is a block diagram depicting an exemplary embodiment of a computer for implementing the processes and methods described herein. 
       
    
    
       [0017]    To facilitate, understanding, identical reference numerals have been used, wherever possible, to designate identical elements that are common to the figures. 
       DETAILED DESCRIPTION OF THE INVENTION 
       [0018]      FIG. 1  is a block diagram depicting an exemplary embodiment of a satellite navigation data distribution system  100 . The system  100  comprises a plurality of reference stations  102   1  through  102   N  (collectively referred to as reference stations  102 ), a hub  108 , and a server  116 . The reference stations  102  receive satellite navigation data from a plurality of satellites  105 . The hub  108  collects the satellite navigation data from the reference stations  102  and provides the satellite navigation data to the server  116 . The server  116  processes the satellite navigation data to decode the various parameters defined therein. The server  116  may then transmit information extracted from the satellite navigation data to a requester  120 . 
         [0019]    More specifically, each of the reference stations  102   1  through  102   N  includes a respective one of GPS receivers  104   1  through  104   N  (collectively referred to as satellite signal receivers  104 ) for receiving signals from satellites of the plurality of satellites  105  that are in-view. Each of the GPS receivers  104  decodes the received satellite signals to obtain satellite navigation data associated with the in-view satellites. The satellite navigation data comprises satellite navigation messages that are formatted into frames and sub-frames, as described above. The GPS receivers  104  are capable of streaming raw satellite navigation messages in real time. For example, certain NovAtel GPS receivers have this capability. 
         [0020]    The reference stations  102  format the satellite navigation data streams produced by the GPS receivers  104  for transmission over the communications network  106  to the hub  108 . In one embodiment, the reference stations  102  process the data streams to form packet streams comprising internet protocol (IP) packets, which may be transmitted over the communication link  106  using the uniform datagram protocol (UDP). The hub  108  processes the formatted data streams from the reference stations  102  (“reference station data streams”) to remove redundant information. The hub  108  produces a formatted data stream comprising the unique information from the reference station data streams satellite navigation data from the reference stations  102  (“hub data stream”). The hub  108  transmits the hub data stream to the server  116  using a communication network  112 . In one embodiment of the invention, one or more additional hubs (“hub(s)  110 ”) are used to provide redundancy. The hub(s)  110  operate in the same manner as the hub  108 . Each of the communication networks  106  and  112  may comprise any type of network known in the art, such frame relay, asynchronous transfer mode (ATM) networks, and the like. Although the communication networks  106  and  112  have been shown as separate networks, those skilled in the art will appreciate that networks  106  and  112  may comprise a single network. 
         [0021]    In one embodiment, another reference station  114  may be disposed in proximity to the server  116 . The reference station  114  includes a GPS receiver  115  similar to the GPS receivers  104 , and provides a formatted data stream similar to those provided by the reference stations  102  (“co-located reference station data stream”). The server  116  processes the hub data stream(s) and the co-located reference station data stream, if available, to extract various parameters therefrom. For example, the server  116  may extract one or more of ephemeris data, almanac data, ionosphere data, universal time (UTC) offset data, satellite health data, as well as the raw data bits comprising the satellite navigation messages. Similar to the hubs  108  and  110 , the server  116  may first process the hub data stream(s) and the co-located reference station data streams to remove redundant information. The extracted information may be provided to the requester  120  using a communication network  118 . The communication network  118  may comprise a wireless communication network or other type of communication network, such as the Internet. 
         [0022]      FIG. 2  is a data flow diagram depicting an exemplary embodiment of a process  200  for distributing satellite navigation data from a reference station to a server. The process  200  begins with a satellite navigation data stream  202 . The satellite navigation data stream  202  comprises sub-frames of satellite navigation messages broadcast by in-view satellites. The satellite navigation data stream  202  is provided as input to a packetizer  204 . The packetizer  204  formats the satellite navigation data stream  202  into a packet stream  206 . In one embodiment of the invention, each packet in the packet stream  206  includes a sub-frame of the satellite navigation data stream  202 . In addition, each packet in the packet stream  206  includes a header for identifying the sub-frame carried therein. For example, the header may include a satellite identifier and a time-of-week (TOW) value that uniquely identifies the associated sub-frame. The packet stream  206  may be directly output as a reference station data stream  208 . 
         [0023]    The reference station data stream  208  is provided as input to a concentrator  210 . The concentrator  210  also receives reference station data streams from other reference stations. The concentrator  210  processes the reference station data streams to remove packets carrying redundant information. For example, two of the reference stations may be positioned on the surface of the Earth so as to receive the satellite navigation message from the same satellite. The reference station data streams corresponding to these two reference stations will include packets that define identical sub-frames. The redundant sub-frame is not necessary and may be removed. The concentrator  210  provides a hub data stream  212  as output. The hub data stream  212  comprises a packet stream having unique information from the reference stations. For example, the hub data stream  212  may comprise a stream of packets carrying unique sub-frames. 
         [0024]    The hub data stream  212  is provided as input to a concentrator  214 . The concentrator  214  may also receive additional hub data stream(s), as well as an additional reference station data stream from a reference station co-located with the server. The concentrator  214  operates in a similar manner to the concentrator  210  to generate a server data stream  216 . The server data stream  216  comprises a packet stream having unique information from the hubs and the co-located reference station. The server data stream  216  is provided as input to a decoder  218 . The decoder  218  processes the server data stream  216  to extract satellite data  220 . The satellite data  220  comprises one or more of ephemeris, almanac, ionosphere data, UTC offset, satellite health status, and raw data bits. The satellite data  220  is stored within a cache  222 . 
         [0025]    In one embodiment of the invention, a reference station may receive a reference station data stream from another reference station. Thus, the packet stream  206  within the reference station may be provided as input to an optional concentrator  224 . The concentrator  224  operations in a similar manner to the concentrators  210  and  214  to remove redundant information and provide a unique reference station data stream  208  to the hub. 
         [0026]      FIG. 3  is a flow diagram depicting an exemplary embodiment of a process  300  for decoding satellite signals to recover satellite navigation data within a reference station. The process  300  begins at step  302 , where satellite navigation messages are received for a plurality of in-view satellites. At step  304 , the sub-frames of the satellite navigation messages are packetized to generate a packet stream (e.g., a stream of IP packets). At step  306 , a header is added to each packet within the packet stream having a satellite identifier and a TOW value associated with a respective sub-frame. At optional step  308 , the packet stream is merged with packet stream(s) from other reference stations and packets carrying redundant sub-frames are removed (e.g., packets having a header with the same satellite identifier and same TOW value). At step  310 , the packet stream is transmitted to a hub. For example, the packet stream may be transmitted using UDP. 
         [0027]      FIG. 4  is a flow diagram depicting an exemplary embodiment of a process  400  for concentrating satellite navigation data within a hub. The process  400  begins at step  402 , where packet streams are received from a plurality of reference stations. At step  404 , packets of the packet streams are analyzed to remove those packets carrying redundant information and merged to produce a hub packet stream. For example, the headers of the packets may be analyzed for identify those headers having the same satellite identifier and the same TOW value. At step  406 , the hub packet stream is transmitted to a server. For example, the hub packet stream may be transmitted using UDP. 
         [0028]      FIG. 5  is a flow diagram depicting an exemplary embodiment of a process  500  for decoding satellite navigation data at a server. The process  500  begins at step  502 , where one or more hub data stream(s) are received from one or more hubs. At optional step  504 , a reference station data stream is received from a reference station co-located with the server. At step  506 , packets of the hub data stream(s) and the optional reference station data are merged to produce a server data stream and packets carrying redundant sub-frames are removed (e.g., packets having a header with the same satellite identifier and same TOW value). At step  508 , the satellite navigation data carried by the server data stream is decoded to produce satellite data. At step  510 , the satellite data is stored within the server for transmission to a requester. 
         [0029]      FIG. 6  is a block diagram depicting an exemplary embodiment of a computer  600  suitable for implementing processes and methods described above. The computer  600  includes a central processing unit (CPU)  601 , a memory  603 , various support circuits  604 , and an I/O interface  602 . The CPU  601  may be any type of microprocessor known in the art. The support circuits  604  for CPU  602  include conventional cache, power supplies, clock circuits, data registers, I/O interfaces, and the like. The I/O interface  602  may be directly coupled to the memory  603  or coupled through the CPU  601 . The I/O interface  602  may be coupled to various input devices  612  and output devices  611 , such as a conventional keyboard, mouse, printer, display, and the like. 
         [0030]    The memory  603  may store all or portions of one or more programs and/or data to implement the processes and methods described above. Although the invention is disclosed as being implemented as a computer executing a software program, those skilled in the art will appreciate that the invention may be implemented in hardware, software, or a combination of hardware and software. Such implementations may include a number of processors independently executing various programs and dedicated hardware, such as application specific integrated circuits (ASICs). 
         [0031]    Although the methods and apparatus of the invention have been described with reference to GPS satellites, it will be appreciated that the teachings are equally applicable to positioning systems that utilize pseudolites or a combination of satellites and pseudolites. Pseudolites are ground-based transmitters that broadcast a PN code (similar to the GPS signal) that may be modulated on an L-band carrier signal, generally synchronized with GPS time. The term “satellite”, as used herein, is intended to include pseudolites or equivalents of pseudolites, and the term “GPS signals”, as used herein, is intended to include GPS-like signals from pseudolites or equivalents of pseudolites. 
         [0032]    Moreover, in the preceding discussion, the invention has been described with reference to application upon the United States Global Positioning System (GPS). It should be evident, however, that these methods are equally applicable to similar satellite systems, and in particular, the Russian Glonass system and the European Galileo system. The term “GPS” used herein includes such alternative satellite positioning systems, including the Russian Glonass system and the European Galileo system. 
         [0033]    While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.