The present invention relates to Global Navigation Satellite System (GNSS) receivers, and more particularly, to methods and apparatus for compensating a clock bias in a GNSS receiver.
One of the most important issues related to GNSS receivers is how to obtain accurate GNSS time when a GNSS receiver enters a start up mode from a power-off mode. Typically, within the GNSS receiver, all components except a real time clock (RTC) are powered down in the power-off mode. According to the related art, a common way to get an initial GNSS time when the GNSS receiver is powered on is by reading the RTC time provided by the RTC as the Coordinated Universal Time, which is typically referred to as the UTC time, and by further converting the UTC time derived from the RTC time into a rough initial value of the GNSS time directly.
Please note that the RTC is a temperature sensitive component with an RTC drift value that may change severely with respect to temperature, where an accumulated amount from the RTC drift value with respect to time can be referred to as the RTC bias value. As time goes by during a power-off period of the GNSS receiver, the RTC drift value accumulates and the RTC bias value becomes greater and greater, causing the aforementioned initial value of the GNSS time to be inaccurate.
It is therefore an objective of the claimed invention to provide methods and apparatus for compensating a clock bias in a Global Navigation Satellite System (GNSS) receiver to solve the above-mentioned problem.
An exemplary embodiment of a method for compensating a clock bias in a GNSS receiver comprises: deriving at least one clock drift value comprising a first clock drift value corresponding to a first time point; and calculating the clock bias according to the at least one clock drift value and according to at least one interval within the time period between the first time point and a specific time point after the first time point.
An exemplary embodiment of an apparatus for compensating a clock bias in a GNSS receiver comprises a clock source and a processing module, where the processing module is coupled to the clock source. The clock source provides a time reference that has the clock bias to be compensated. In addition, the processing module is utilized for deriving at least one clock drift value comprising a first clock drift value corresponding to a first time point. Additionally, the processing module is utilized for calculating the clock bias according to the at least one clock drift value and according to at least one interval within the time period between the first time point and a specific time point after the first time point. For example, the clock source is a real time clock (RTC), and the clock bias is an RTC bias value.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
Certain terms are used throughout the following description and claims, which refer to particular components. As one skilled in the art will appreciate, electronic equipment manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not in function. In the following description and in the claims, the terms “include” and “comprise” are used in an open-ended fashion, and thus should be interpreted to mean “include, but not limited to . . . ”. Also, the term “couple” is intended to mean either an indirect or direct electrical connection. Accordingly, if one device is coupled to another device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
Please refer to
According to the first embodiment, the apparatus 100 comprises a processing module 110, a non-volatile memory 120, a baseband circuit 130, a clock source, and an environmental sensor. As shown in
According to the first embodiment, the baseband circuit 130 is capable of utilizing the RF module 180 to receive signals from GNSS satellites and further performing baseband processing according to derivative signals generated by the RF module 180. The processing module 110 of this embodiment comprises a microprocessor 112 and a navigation engine 114, where the microprocessor 112 is capable of performing overall control of the apparatus 100, while the navigation engine 114 is capable of performing detailed navigation operations according to processing results from the baseband circuit 130.
The GNSS receiver has to derive accurate time information in order to process the satellite signal. After each position fix, the processing module 110 may derive accurate time information. But when the GNSS receiver just wakes up from a power-off mode, the GNSS receiver may not derive accurate time information as per usual before the first position fix is obtained. In order to reduce the Time To First Fix (TTFF), the processing module 110 utilizes the time reference provided by the RTC 140 since the RTC 140 remains powered on during the power-off period. The processing module 110 of this embodiment derives accurate time information by properly calculating the clock bias Bbias, i.e., the RTC bias value of the RTC 140 in this embodiment.
According to this embodiment, the processing module 110 derives at least one clock drift value comprising a first clock drift value D0 corresponding to a first time point, where each clock drift value is an RTC drift value of the RTC 140 in this embodiment. In addition, the processing module 110 calculates the clock bias Bbias according to the at least one clock drift value and according to at least one interval within the time period between the first time point and a specific time point after the first time point. More particularly, the processing module 110 of this embodiment utilizes an environment-drift model and at least one detection result from the environmental sensor (i.e., the temperature sensor 150 in this embodiment) to derive at least one clock drift value, so that the clock bias Bbias can be properly calculated and accurate time information can be derived accordingly. As a result, when the GNSS receiver starts up, the TTFF can be greatly reduced in contrast to the related art.
According to a first implementation choice of this embodiment, as the GNSS receiver typically reaches nano-second level accuracy of GNSS time after the GNSS receiver obtains a valid position fix, the processing module 110 calculates the clock drift value D0 by comparing the time reference of the RTC 140 with the accurate GNSS time.
According to a second implementation choice of this embodiment, the processing module 110 calculates the clock drift value D0 by utilizing the environment-drift model such as the temperature-drift model shown in
After the GNSS receiver is powered on, at the specific time point, the processing module 110 temporarily sets the initial GNSS time as the RTC time derived from the time reference of the RTC 140 after the power-off period, calculates the clock bias Bbias, and compensates the initial GNSS time using the clock bias Bbias. The clock bias Bbias is calculated by the following equation:
B
bias
=D
0
*ΔT;
where ΔT represents the time period between the first time point and the specific time point. As the clock bias Bbias can be properly calculated, accurate time information can be derived accordingly.
The clock drift value D0 can be derived according to any of the two implementation choices of the embodiment shown in
B
bias=(D0+D1)*0.5*ΔT;
where ΔT represents the time period between the first time point and the specific time point.
The clock drift value D0 can be derived according to any of the two implementation choices of the embodiment shown in
After the GNSS receiver is powered on, the processing module 110 further derives another clock drift value Dn in the same way as the clock drift values D1, D2, . . . , Dn−2, and Dn−1, where the clock drift value Dn corresponds to the specific time point. The processing module 110 temporarily sets the initial GNSS time as the RTC time derived from the time reference of the RTC 140 after the power-off period, calculates the clock bias Bbias, and compensates the initial GNSS time with the clock bias Bbias. Here, the clock bias Bbias is calculated by the following equation:
B
bias=(D0+D1)*0.5*ΔT1+(D1+D2)*0.5*ΔT2+ . . . +(Dn−1+Dn)*0.5*ΔTn;
wherein ΔT1, ΔT2, . . . , and ΔTn represent intervals between time points to which the plurality of clock drift values D0, D1, . . . , and Dn correspond, respectively.
According to this embodiment, when an absolute value of a clock drift value DN out of the clock drift values D1, D2, . . . , and Dn−1 is greater than an absolute value of the previous clock drift value DN−1, the processing module 110 sets the interval ΔTN+1 for deriving the next clock drift value DN+1 to be less than the previous interval ΔTN. In addition, when an absolute value of a clock drift value DN out of the clock drift values D1, D2, . . . , and Dn−1 is less than an absolute value of the previous clock drift value DN−1, the processing module 110 sets the interval ΔTN+1 for deriving the next clock drift value DN+1 to be greater than the previous interval ΔTN for deriving the clock drift value DN. Furthermore, when an absolute value of a clock drift value DN out of the clock drift values D1, D2, . . . , and Dn−1 is equal to an absolute value of the previous clock drift value DN−1, the processing module 110 sets the interval ΔTN+1 for deriving the next clock drift value DN+1 to be the same as the previous interval ΔTN for deriving the clock drift value DN.
It should be noted that in this embodiment, although the processing module 110 may calculate one of the plurality of clock drift values at the time when one of the detection results is detected, this is not a limitation of the present invention. In a variation of this embodiment, at the time when one of the detection results is detected, the processing module 110 temporarily stores the detection result for further calculation to be performed at the specific time point, in order to save power more effectively during the power-off period. That is, at the respective time points mentioned above, the processing module 110 temporarily stores the temperature into the non-volatile memory 120 and then falls asleep, rather than storing the clock drift values D1, D2, . . . , and Dn−1. According to this variation, no calculation related to the clock drift values D1, D2, . . . , and Dn−1 is performed by the processing module 110 until the GNSS receiver is powered on again.
According to a second embodiment of the present invention, with this embodiment being a variation of the first embodiment, the aforementioned temperature sensor 150 is replaced with a vibration sensor. Thus, the aforementioned environment-drift model is a vibration-drift model, and the detection result represents vibration. Similar descriptions are not repeated for this embodiment.
According to a third embodiment of the present invention, with this embodiment being a variation of the first embodiment and also a variation of the second embodiment, the apparatus 100 comprises a plurality of environmental sensors such as the temperature sensor 150 and the aforementioned vibration sensor. Thus, the processing module 110 utilizes the respective environment-drift models (e.g., the temperature-drift model and the vibration-drift model) and respective detection results from the environmental sensors to derive at least one clock drift value. Similar descriptions are not repeated for this embodiment.
It is an advantage of the present invention that the present invention methods and apparatus properly calculates the clock bias Bbias by utilizing the respective suitable equations as needed. When the environment (e.g., the temperature or the mechanical stability) changes abruptly, multiple clock drift values can be derived according to at least one environment-drift model, so the clock bias Bbias can still be properly calculated. Therefore, accurate time information is derived after the power-off period.
It is another advantage of the present invention that the present invention methods and apparatus help subframe synchronization. As a result, when the GNSS receiver starts up, the TTFF can be greatly reduced in contrast to the related art.
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention.