NOT APPLICABLE.
Certain embodiments of the invention relate to communication systems. More specifically, certain embodiments of the invention relate to a method and system for calibrating a local GNSS clock using non-GNSS system clocks in a GNSS enabled mobile device.
Location based services (LBS) are emerging as a new type of value-added service provided by mobile communication network. LBS are mobile services in which the location information of mobile devices is used in order to enable various LBS applications such as, for example, enhanced 911 (E-911), location-based 411, location-based messaging and/or friend finding. A position of a mobile device is determined using, for example, satellite-based systems such as Global Navigation Satellite Systems (GNSS) such as, for example, the Global Positioning System (GPS), the Global Orbiting Navigation Satellite System (GLONASS), and the satellite navigation system GALILEO.
A GNSS utilizes an earth-orbiting constellation of a plurality of GNSS satellites each broadcasting GNSS signals which indicates its precise location and ranging information. From any location on or near the earth where the satellites may be visible, a GNSS enabled mobile device may detect GNSS signals using a local GNSS clock such as a crystal or temperature compensated crystal oscillator (TCXO). The local GNSS clock provides a clock (time) reference for position fixing. The GNSS enabled mobile device is operable to take various GNSS measurements such as pseudorange, carrier phase, and/or Doppler and utilize the resulting measurements to calculate corresponding navigation information such as a position fix, velocity, and time. The GNSS enabled mobile device utilizes the calculated navigation information for various LBS applications such as E911, location-based 411, location-based messaging and/or friend finding. The LBS applications may be realized using various technology communication networks such as, for example, GSM, GPRS, UMTS, EDGE, EGPRS, LTE, WiMAX, high-speed wireless LAN (WiFi), and/or short-range wireless (Bluetooth).
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.
A method and/or system for calibrating a local GNSS clock using non-GNSS system clocks in a GNSS enabled mobile device, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings.
Certain embodiments of the invention may be found in a method and system for calibrating a local GNSS clock using non-GNSS system clocks in a GNSS enabled mobile device. In various embodiments of the invention, a GNSS enabled mobile device may be operable to receive two or more system clocks from a plurality of associated non-GNSS communication networks. The received two or more system clocks may be used to calibrate an associated local GNSS clock. The plurality of associated non-GNSS communication networks may comprise, for example, GSM, GPRS, UMTS, EDGE, EGPRS, LTE, WiMAX, high-speed wireless LAN (WiFi), and/or short-range wireless (Bluetooth). The GNSS enabled mobile device may be operable to communicate the received two or more system clocks with an associated GNSS receiver via software without using external circuitry. The associated GNSS receiver may be operable to select a calibration clock from the received two or more system clocks. The calibration clock may be selected based on, for example, the status (active or inactive) of corresponding system clocks. The selected calibration clock may be an active system clock. The associated GNSS receiver may be operable to remove clock errors from the associated local GNSS clock using the selected calibration clock in order to dynamically calibrate the associated local GNSS clock. The calibrated local GNSS clock may be used for various GNSS activities such as, for example, detecting GNSS signals and/or processing detected GNSS signals.
A GNSS enabled mobile device such as the GNSS enabled mobile device 110a may comprise suitable logic, circuitry, interfaces and/or code that are operable to communicate radio signals across the cellular network 130 and/or the WiMAX network 140. The GNSS enabled mobile device 110a may be operable to receive GNSS broadcast signals from a plurality of visible GNSS satellites such as GNSS satellites 120a through 120c in the GNSS infrastructure 120. The GNSS signals may be detected and received at the GNSS enabled mobile device 110a using a local GNSS clock. The local GNSS clock may be implemented using, for example, a crystal or temperature compensated crystal oscillator (TCXO) for low phase noise. The received GNSS signals may be utilized to determine navigation information such as a position fix and/or a velocity of the GNSS enabled mobile device 110a. The determined navigation information such as a position fix of the GNSS enabled mobile device 110a may be communicated with, for example, the cellular network 130 and/or the WiMAX network 140, for various LBS applications such as E911, location-based 411, location-based messaging and/or friend finding. The GNSS enabled mobile device 110a may be operable to receive corresponding system clocks from the cellular network 130 and the WiMAX network 140, respectively. The received system clocks may be utilized to keep associated local clocks such as a host clock up-to-date. In this regard, the received system clocks may be used as clock calibration signals to calibrate the local GNSS clock for an accurate GNSS clock reference. The GNSS enabled mobile device 110a may be operable to utilize the calibrated GNSS clock to acquire and track GNSS signals, accordingly.
A GNSS satellite such as the GNSS satellite 120a may comprise suitable logic, circuitry, interfaces and/or code that is operable to provide satellite navigational information to various GNSS receivers on earth. The GNSS receivers, which comprise GPS, GALILEO and/or GLONASS receivers, are integrated within or externally coupled to GNSS capable mobile devices such as the GNSS enabled mobile devices 110a through 110c. The GNSS satellite 120a may be operable to broadcast its own ephemeris periodically, for example, once every 30 seconds. The broadcast ephemeris may be utilized to calculate navigation information such as, for example, a position fix, velocity, and clock information of the GNSS receivers. The GNSS satellite 120a may be operable to update ephemeris, for example, every two hours. The broadcast ephemeris may be valid for a limited time period such as, for example, 2 to 4 hours into the future (from the time of broadcast).
The cellular network 130 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to provide data services to various mobile devices such as the GNSS enabled mobile devices 110a-110c by using cellular communication technologies such as, for example, GSM, GPRS, UMTS, EDGE, EGPRS and/or LTE. The cellular network 130 may be operable to generate system clock signals (timing signals) and distribute to the GNSS enabled mobile devices 110a-110c.
The WiMAX network 140 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to provide data services to various mobile devices such as the GNSS enabled mobile devices 110a-110c by using WiMAX communication technology. The WiMAX network 140 may be operable to generate system clock signals (timing signals) and distribute to the GNSS enabled mobile devices 110a-110c.
Although the cellular network 130 and the WiMAX network 140 are illustrated in
In an exemplary operation, a GNSS enabled mobile device such as the GNSS enabled mobile device 110a may be operable to detect and receive GNSS signals from, for example, the GNSS satellites 120a-120d, using an associated local GNSS clock. The GNSS enabled mobile device 110a may be operable to utilize the received GNSS signals to calculate, for example, a position fix of the GNSS enabled mobile device 110a. The calculated position fix may be communicated with the cellular network 130 and/or the WiMAX network 140 for various LBS applications such as E911, location-based 411, location-based messaging and/or friend finding. The cellular network 130 and/or the WiMAX network 140 may be operable to generate system clocks and distribute the generated system clocks to mobile devices such as the GNSS enabled mobile device 110a to keep corresponding local clocks current. In this regard, the GNSS enabled mobile device 110a may be operable to utilize the received system clocks to calibrate the associated local GNSS clock without a need for external circuitry that would otherwise be needed.
The GNSS receiver 202 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to detect and receive GNSS signals from a plurality of visible GNSS satellites using an associated local GNSS clock such as a TCXO. The GNSS receiver 202 may be operable to utilize the received GNSS signals to calculate navigation information such as a position fix and/or velocity of the GNSS receiver 202. The calculated navigation information may be provided to the host processor 210 to be communicated with the cellular network 130 and/or the WiMAX network 140 for various location-based applications such as, for example, location-based 411. The GNSS receiver 202 may be operable to communicate with the host processor 210 for system clocks distributed by the cellular network 130 and the WiMAX network 140, respectively. The GNSS receiver 202 may be operable to utilize the system clocks as GNSS clock calibration signals to calibrate the associated local GNSS clock. The calibrated local GNSS clock may then be used for accurately acquiring and tracking GNSS signals, for example.
The cellular transceiver 204 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to communicate radio signals over the cellular network 130. The cellular transceiver 204 may be operable to receive timing signals from the cellular network 130. The received timing signals may comprise a system clock of the cellular network 130. The cellular transceiver 204 may be operable to utilize the received system clock as a reference frequency source for communicating radio signals with the cellular network 130, accordingly.
The WiMAX transceiver 206 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to communicate radio signals over the WiMAX network 140. The WiMAX transceiver 206 may be operable to receive timing signals from the WiMAX network 140. The received timing signals may comprise a system clock of the WiMAX network 140. The WiMAX transceiver 206 may be operable to utilize the received system clock as a reference frequency source for communicating radio signals with the WiMAX network 140, accordingly.
The host processor 208 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to process signals from the GNSS receiver 202, the cellular transceiver 204, and/or the WiMAX transceiver 206 depending on corresponding usages. The host processor 208 may be operable to communicate signals with the cellular network 130 and/or the WiMAX network 140 via the cellular transceiver 204 and the WiMAX transceiver 206, respectively. The signals may comprise system clocks received from the cellular network 130 and/or the WiMAX network 140. The host processor 208 may be operable to enable the GNSS receiver 202 to calibrate associated local GNSS clock using the received system clocks of the cellular network 130 and/or the WiMAX network 140. The host processor 208 may be operable to communicate navigation information, which may be calculated using the calibrated local GNSS clock at the GNSS receiver 202, with the cellular network 130 and/or the WiMAX network 140 for various LBS applications such as location-based 411 and/or roadside assistance.
The memory 210 may comprise suitable logic, circuitry, and/or code that operable to store information such as executable instructions and data that may be utilized by the host processor 208. The memory 210 may comprise RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage.
In an exemplary operation, the GNSS receiver 202 may be operable to receive GNSS signals from each of the visible GNSS satellites using an associated local GNSS clock such as a TCXO. The GNSS receiver 202 may be operable to calculate a position fix and/or velocity of the GNSS receiver 202. The calculated position fix of the GNSS receiver 202 may be communicated with the host processor 208. The host processor 208 may be operable to communicate the calculated position fix of the GNSS receiver 202 with the cellular network 130 and/or the WiMAX network 140 via the cellular transceiver 204 and/or the WiMAX transceiver 206, respectively, for various LBS applications such as roadside assistance. The host processor 208 may be operable to receive timing signals from the cellular network 130 and/or the WiMAX network 140. The received timing signals may comprise corresponding system clocks of the cellular network 130 and/or the WiMAX network 140 and may be used as reference frequency sources for communicating corresponding applications. The host processor 208 may be operable to communicate the received system clocks with the GNSS receiver 202. The GNSS receiver 202 may be operable to utilize the received system clocks as GNSS clock calibration signals to calibrate the associated local GNSS clock without a need for external circuitry.
The GNSS antenna 301 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to receive GNSS signals from a plurality of visible GNSS satellites such as the GNSS satellites 120a through 120d. The GNSS antenna 301 may be operable to communicate the received GNSS signals to the GNSS front-end 302 for further processing.
The GNSS front-end 302 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to convert the received GNSS signals to GNSS baseband signals, which may be suitable for further processing in the GNSS processor 304. The GNSS front-end 302 may be operable to detect and track GNSS signals using an associated local GNSS clock. The associated local GNSS clock may be dynamically calibrated via the GNSS clock calibrator 306.
The GNSS baseband processor 304 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to process GNSS baseband signals from the GNSS front-end 302 to extract the information and data bits conveyed in the received GNSS signals. The GNSS baseband processor 304 may be operable to perform functions such as clock recovery, channel selection, demodulation, and/or decoding. The GNSS baseband processor 304 may be operable to calculate navigation information such as a position fix using the GNSS baseband signals from the GNSS front-end 302. The GNSS baseband processor 304 may be operable to communicate the calculated navigation information with the host processor 208 for various LBS applications such as E911 supported by the cellular network 130 and/or the WiMAX network 140. The GNSS baseband processor 304 may be operable to receive network timing information such as system clocks of the cellular network 130 and/or the WiMAX network 140 from the host processor 208. The GNSS baseband processor 304 may communicate the receiver system clocks with the GNSS clock calibrator 306 to refine the associated GNSS clock.
The GNSS clock calibrator 306 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to calibrate the associated local GNSS clock of the GNSS receiver 300. The GNSS clock calibrator 306 may be operable to provide calibrated local GNSS clock to the GNSS front-end 302 and/or the GNSS baseband processor 304. The GNSS clock calibrator 306 may be operable to remove clock errors in the associated local GNSS clock using the system clocks received from the GNSS baseband processor 304. The GNSS clock calibrator 306 may be operable to calibrate the associated local GNSS clock without a need for external circuitry.
The memory 308 may comprise suitable logic, circuitry, interfaces and/or code that may enable storage of information such as executable instructions and data that may be utilized by the GNSS baseband processor 304. The executable instructions may be utilized to calculate a position fix of the GNSS receiver 300 using GNSS measurements. The executable instructions may be utilized to indicate active system clocks received from external communication networks such as, for example, the cellular network 130 and/or the WiMAX network 140. The data may comprise the determined position fix of the GNSS receiver 300 and/or GNSS click calibration data. The memory 308 may comprise RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage.
In operation, the GNSS receiver 300 may be operable to process, using an associated local GNSS clock, GNSS signals received via the antenna 301 for GNSS measurements. The GNSS front-end 302 may be operable to process the received GNSS signals and convert into GNSS baseband signals. The converted GNSS baseband signals may communicate with the GNSS baseband processor 304 for GNSS baseband processing. The processed GNSS baseband signals may be used to calculate a position fix of the GNSS receiver 300. The calculated position fix may be forward to the host processor 210 for a location-based application. The GNSS baseband processor 304 may be operable to receive network timing information such as system clocks of the cellular network 130 and/or the WiMAX network 140. The received system clocks may be utilized as GNSS clock calibration signals to the GNSS clock calibrator 306. The GNSS clock calibrator 306 may be operable to calibrate the associated local GNSS clock using the received system clocks. The GNSS clock calibrator 306 may be operable to communicate the calibrated local GNSS clock with the GNSS front-end 302 and/or the GNSS baseband processor 304, respectively. The calibrated local GNSS clock may be utilized to process corresponding GNSS activities such as, for example, GNSS signal acquisition, GNSS signal tracking, and/or position calculation.
The calibration clock selector 402 may comprise suitable logic, circuitry, interfaces and/or code that may be operable to select a calibration clock from separate calibration clock inputs. The separate calibration clock inputs comprise a system clock from the cellular network 130 and a system clock from the WiMAX network 140. The system clocks may be received from the host processor 208 of the GNSS enabled mobile device 200. The calibration clock selector 402 may be operable to determine which one of the received system clocks to be used as the calibration clock. For example, the calibration clock selector 402 may be operable to select the calibration clock from the received system clocks according to, for example, a status of corresponding system clock. The status may provide an indication of whether the clock is active or inactive. The selected calibration clock may be communicated with the signal calibrator 404 to calibrate the associated local GNSS clock.
The signal calibrator 404 may comprise suitable logic, circuitry, and/or code that may be configured to remove clock error from the associated local GNSS clock by, for example, correlating the associated local GNSS clock with the selected calibration clock from the calibration signal generator 402. The signal calibrator 404 may communicate the calibrated local GNSS clock with the GNSS baseband processor 304 and the GNSS front-end 302 to produce accurate navigation information and/or accurately track GNSS signals.
In an exemplary operation, the GNSS clock calibrator 400 may be operable to receive system clocks of the cellular network 130 and the WiMAX network 140 via the host processor 208. The calibration clock selector 402 may be operable to select a calibration clock from the received system clocks. The selected calibration clock may be communicated with the signal calibrator 404. The signal calibrator 404 may be operable to utilize the selected calibration clock to offset clock errors in the associated local GNSS clock of the GNSS receiver 300. The calibrated local GNSS clock may be communicated with the GNSS front-end 302 and the GNSS baseband processor 304 for corresponding GNSS activities.
In various exemplary aspects of the method and system for calibrating a local GNSS clock using non-GNSS system clocks in a GNSS enabled mobile device, as described with respect to, for example,
The host processor 208 may be operable to communicate the received two or more system clocks with the GNSS receiver 202 via software such as signaling messages without using an external circuitry. The GNSS clock calibrator 306 may be operable to select a calibration clock from the received two or more system clocks via the calibration clock selector 402. The calibration clock may be selected based on, for example, a status (active or inactive) of corresponding system clocks. The selected calibration clock may be an active system clock. The signal calibrator 404 may be operable to remove clock errors from the associated local GNSS clock using the selected calibration clock in order to dynamically calibrate the associated local GNSS clock. The calibrated local GNSS clock may be communicated with the GNSS front-end 302 and the GNSS baseband processor 304. The GNSS front-end 302 may be operable to detect GNSS signals using the calibrated local GNSS clock. The detected GNSS signals may be processed using the calibrated local GNSS clock via the GNSS baseband processor 304, accordingly.
Another embodiment of the invention may provide a machine and/or computer readable storage and/or medium, having stored thereon, a machine code and/or a computer program having at least one code section executable by a machine and/or a computer, thereby causing the machine and/or computer to perform the steps as described herein for a method and system for calibrating a local GNSS clock using non-GNSS system clocks in a GNSS enabled mobile device.
Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.