A global positioning system (GPS) is a space-based global navigation satellite system (GNSS) that can provide location and time information around the world. The United States maintains the NAVSTAR global navigation satellite system and Russia maintains an alternative and complementary global navigation satellite system (GLONASS). Geo-spatial positioning information transmitted by the GNSS is used to determine global position around the world in a wide range of applications.
Many aspects of the invention can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
With reference to
Referring next to
The location of a TMS within the navigation signal is determined in block 315. The known pseudo-random TMS may be identified from the decoded navigation signal data. In other implementations, accurate aiding may be used to determine the TMS location. Once the location of the TMS is determined within the sequence of decoded navigation signal data, the symbol encoding sequence is also known. If the location of the TMS has not been determined, then the tracking and decoding of the navigation signal continues in blocks 309 and 312. When the location of the TMS is determined in block 315, the symbol encoding and TMS (or wipeoff data) are removed (or stripped) from the navigation signal based (at least in part) upon the location of the TMS in block 318 and the tracking of the stripped navigation signal that is devoid of the symbol encoding and TMS is started in block 321. The wipeoff data (e.g., Manchester symbols and TMS) may be generated by, e.g., an application specific integrated circuit (asic) in the receiver 106. In other implementations, the wipeoff data may be generated by a network server that would then transmit the encoding data to a host platform which would provide the wipeoff data to an asic of the receiver 106.
In addition, the stripped navigation signal data is decoded in block 324 by integrating over the duration of the exposed navigation data. The integration time may be adjusted based at least in part upon the duration of the underlying navigation data. Because the symbol encoding (e.g., Manchester encoding) has been removed from the navigation signal to get to the underlying navigation data bits, the integration time can be increased to the duration of the underlying data bits. For example, by increasing the decoding integration time from 10 ms to 20 ms by stripping the symbol encoding, a 3 dB improvement in bit detection may be achieved. In addition, the extended bit time may also improve tracking sensitivity by 6 dB. If the navigation signal data bits are known, then integrations beyond 20 ms can be accommodated by stripping the underlying navigation data bits before integration. During the 300 ms TMS, all the navigation data bits are known.
Referring to
The processing and correlation 409 of the receiver 106 includes a tracking loop 412, processor 415 and memory 418. The tracking loop 412 may be embodied in dedicated hardware and/or software implemented by processor 415 and/or other general purpose hardware. The tracking loop 412 is configured to track the navigation signal acquired from the navigation satellites 103. In the tracking loop 412, the frequency of the signal and the code phase is tracked to a very high accuracy. The tracking loop 412 may also provide fine tuning of the rough estimates of the phase offset and frequency of the navigation signal before the high accuracy tracking. In addition to tracking the navigation signal, the tracking loop 412 decodes the navigation signal data by integrating over the duration of the encoded symbols such as, e.g., 10 ms Manchester symbols.
The receiver 106 includes at least one processor circuit, for example, having a processor 415 and a memory 418, both of which are coupled to a local interface. The local interface may comprise, for example, a data bus with an accompanying address/control bus or other bus structure as can be appreciated. Stored in the memory 418 are both data and several software components that are executable by the processor 415. In particular, stored in the memory 418 and executable by the processor 415 is software code that, when executed by the processor, implement various functions associated with the global navigation receiver 106. Also stored in the memory 415 may be a data store and other navigation data. In addition, an operating system may be stored in the memory 418 and executable by the processor 415.
The software or code, when executed by the processor, can determine the location of a time mark sequence (TMS) 206 (
When the location of the TMS is determined, executed code may initiate or trigger the tracking loop to remove (or strip) the symbol encoding and the TMS from the navigation signal based (at least in part) upon the location of the TMS and begin tracking of the stripped navigation signal based at least in part upon the location of the TMS. The tracking loop 412 may decode the stripped navigation signal data by integrating over the duration of the exposed navigation data. In other embodiments, the exposed navigation data is decoded using code executed by the processor 415. Other navigation processing such as, e.g., determining the global location using the decoded navigation information and rendering the location information for display through a user interface associated with the receiver 106 may also be implemented by code or software executed by the processor 415.
It is understood that there may be other software or code that are stored in the memory 418 and are executable by the processor 415 as can be appreciated. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages may be employed such as, for example, C, C++, C#, Objective C, Java, Java Script, Perl, PHP, Visual Basic, Python, Ruby, Delphi, Flash, or other programming languages.
A number of software components are stored in the memory 418 and are executable by the processor 415. In this respect, the term “executable” means a program file that is in a form that can ultimately be run by the processor 415. Examples of executable programs may be, for example, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of the memory 418 and run by the processor 415, source code that may be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory 418 and executed by the processor 415, or source code that may be interpreted by another executable program to generate instructions in a random access portion of the memory 418 to be executed by the processor 415, etc. An executable program may be stored in any portion or component of the memory 418 including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.
The memory 418 is defined herein as including both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory 418 may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, or a combination of any two or more of these memory components. In addition, the RAM may comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The ROM may comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device.
Also, the processor 415 may represent multiple processors 415 and the memory 418 may represent multiple memories 418 that operate in parallel processing circuits, respectively. In such a case, the local interface may be an appropriate network that facilitates communication between any two of the multiple processors 415, between any processor 415 and any of the memories 418, or between any two of the memories 418, etc. The local interface may comprise additional systems designed to coordinate this communication, including, for example, performing load balancing.
Although various functionality described herein may be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same may also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits having appropriate logic gates, or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein.
The flow chart of
Although the flow chart of
Also, any application or functionality described herein that comprises software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor 415 or other processor system. In this sense, the logic may comprise, for example, statements including instructions and declarations that can be fetched from the computer-readable medium and executed by the instruction execution system. In the context of the present disclosure, a “computer-readable medium” can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system. The computer-readable medium can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium may be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). In addition, the computer-readable medium may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other type of memory device.
It should be emphasized that the above-described embodiments of the present invention are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the invention. Many variations and modifications may be made to the above-described embodiment(s) of the invention without departing substantially from the spirit and principles of the invention. All such modifications and variations are intended to be included herein within the scope of this disclosure and the present invention and protected by the following claims.
It should be noted that ratios, concentrations, amounts, and other numerical data may be expressed herein in a range format. It is to be understood that such a range format is used for convenience and brevity, and thus, should be interpreted in a flexible manner to include not only the numerical values explicitly recited as the limits of the range, but also to include all the individual numerical values or sub-ranges encompassed within that range as if each numerical value and sub-range is explicitly recited. To illustrate, a range of “about 0.1% to about 5%” should be interpreted to include individual concentrations (e.g., 1%, 2%, 3%, and 4%) and the sub-ranges (e.g., 0.5%, 1.1%, 2.2%, 3.3%, and 4.4%) within the indicated range. The term “about” can include traditional rounding according to significant figures of numerical values. In addition, the phrase “about ‘x’ to ‘y’” includes “about ‘x’ to about ‘y’”.