The disclosure relates generally to a method and apparatus for synchronizing navigation data.
A satellite navigation or SAT NAV system is a system of satellites that provide autonomous geo-spatial positioning with global coverage. It allows small electronic receivers to determine their location (longitude, latitude, and altitude) to within a few meters using time signals transmitted along a line-of-sight by radio from satellites. Receivers calculate the precise time as well as position, which can be used as a reference for navigation.
Modern navigation systems, such as the Global Positioning System (GPS) and BeiDou (Compass) navigation system, requires the precise sending time of navigation data from the navigation satellites, which can be calculated based on the Time of Week (TOW) and navigation bit count bitcnt. The sending time of navigation data Ts, may be calculated as follows:
T
s=TOW+bitcnt*cycle+Th (1)
where, cycle represents the update cycle of the navigation bit count, which is 20 ms for the GPS system; Th is a high-precision measurement value. The message structure of the navigation data in the GPS system has a basic format (page) of a 1500-bit-long frame made up of five subframes, each subframe being 300 bits (6 seconds) long. The TOW of GPS satellites updates in each subframe, and the bit count represents the offset in one TOW update cycle of the last bit (current bit). Thus, the value of bit count in the GPS system is from 0 to 299. The TOW and bit count can be obtained after subframe synchronization in the GPS system.
Traditionally, the subframe synchronization is performed by matching the navigation message with the default subframe header (subframe header matching). For example, in the GPS system, the first N bit of each subframe is the header of the subframe. The traditional subframe synchronization method is performed by matching the subframe header in the navigation data stream. Once a matching is found, a parity bit in the same word of the subframe is further verified. Once the verification is passed, the subframe synchronization is established between the satellite and the receiver, and the receiver then starts to count the navigation bit for the navigation data received afterward. The bit count refreshes once it reaches its update cycle, e.g., 300 bits in the GPS system.
However, the known method for subframe synchronization is time consuming in certain situations because it requires the matching of the subframe header. In the GPS system, each subframe is 6 seconds long. If the header of the current subframe is missed, then the receiver has to wait for up to 6 seconds unit the next subframe is received in order to match the next subframe header. Moreover, the known method requires the verification of the parity bit after the subframe header matching. In a situation that the received signal from the satellites is weak, the verification of parity bit becomes difficult, thereby further increasing the time for subframe synchronization and the Time To First Fix (TTFF) of the receiver.
Accordingly, there exists a need for an improved solution for synchronizing navigation data to solve the above-mentioned problems.
The embodiments will be more readily understood in view of the following description when accompanied by the below figures and wherein like reference numerals represent like elements, wherein:
The present disclosure describes methods, apparatus, and programming for synchronizing navigation data.
In one example, a method for synchronizing navigation data is provided. A distance between a navigation device and a receiver is estimated. The receiver receives navigation data from the navigation device. A sending time of the navigation data sent from the navigation device is then determined based on the estimated distance between the navigation device and receiver. Synchronization information is computed based on the sending time of the navigation data. The synchronization information is used for synchronizing the navigation data.
In another example, a receiver for navigation including a data synchronization module and a synchronization information storage is provided. The data synchronization module includes a distance calculator, a sending time calculator, and a synchronization information calculator. The distance calculator is configured to estimate a distance between a navigation device and the receiver. The receiver receives navigation data from the navigation device. The sending time calculator is configured to determine a sending time of the navigation data sent from the navigation device based on the distance between the navigation device and receiver. The synchronization information calculator is configured to compute synchronization information based on the sending time of the navigation data. The synchronization information is used for synchronizing the navigation data.
Other concepts relate to software for synchronizing navigation data. A software product, in accordance with this concept, includes at least one machine-readable non-transitory medium and information carried by the medium. The information carried by the medium may be executable program code data regarding parameters in association with a request or operational parameters, such as information related to a user, a request, or a social group, etc.
In still another example, a machine readable and non-transitory medium having information recorded thereon for synchronizing navigation data, wherein the information, when read by the machine, causes the machine to perform a series of steps. A distance between a navigation device and a receiver is estimated. The receiver receives navigation data from the navigation device. A sending time of the navigation data sent from the navigation device is then determined based on the estimated distance between the navigation device and receiver. Synchronization information is computed based on the sending time of the navigation data. The synchronization information is used for synchronizing the navigation data.
Reference will now be made in detail to the embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. While the present disclosure will be described in conjunction with the embodiments, it will be understood that they are not intended to limit the present disclosure to these embodiments. On the contrary, the present disclosure is intended to cover alternatives, modifications, and equivalents, which may be included within the spirit and scope of the present disclosure as defined by the appended claims.
Furthermore, in the following detailed description of embodiments of the present disclosure, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be recognized by one of ordinary skill in the art that the present disclosure may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the embodiments of the present disclosure.
Embodiments in accordance with the present disclosure provide a method and apparatus for rapidly synchronizing navigation data without matching of subframe headers. The method and apparatus disclosed herein can reduce the TTFF time and/or increase the number of navigation satellites captured for navigation, thereby improving the navigation performance. Moreover, three different methods for rapid navigation data synchronization are disclosed in the present disclosure in order to adapt various situations in which navigation data synchronization is necessary, such as the receiver hot boot, restart, temporary signal loss, temporary processing interruption, etc. Additional advantages and novel features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples.
The receiver 102 in this example includes an antenna 106, a radio-frequency (RF) front-end 108, a baseband processing unit 110, a navigation processing unit 112, a local clock 114, and a display 116. The receiver 102 may be a discrete electronic device for providing the current location and time to a user or a module integrated with another device, such as, but not limited to, a portable device, e.g., smart phone, tablet, gaming console, a computer, or a vehicle. The antennal 106 receives the modulated RF signals from the satellites 104, and the RF-front end 108 converts the signals to a frequency suitable for digital signal processing. The baseband processing unit 110 may include one or more processors configured to extract the navigation data received from each satellite 104 by removing the carrier signals and the coarse/acquisition (C/A) code.
In this example, the navigation processing unit 112 is configured to decode the navigation data and use the decoded information to determine the satellite positions and sending times using a default data synchronization module 118 and one or more rapid data synchronization modules 120. The decoded information includes, for example, satellite clock, time relationship, ephemeris, almanac, etc. The navigation processing unit 112 is further configured to calculate the current position of the receiver 102 based on the satellite positions and sending times. The local clock 114 of the receiver 102 may be configured to provide a local reference time to the navigation processing unit 112. For example, the local clock 114 may be synchronized with the satellite clock to achieve a timing reference with, for example, 1 ms accuracy.
The default data synchronization module 118 in this example is configured to establish initial data synchronization between the receiver 102 and one or more satellites 104 based on matching of a header of navigation data. In the GPS system, as described above, this may be done by subframe header matching and parity bit verification. In one example, once the receiver 102 is powered-on or restarted, the initial data synchronization is established by the default data synchronization module 118 using the known method. In this example, once the data synchronization is established, and the receiver 102 starts to work, the information related to the data synchronization is stored in the synchronization information storage 210. The information includes, for example, ephemeris of the satellite 104, calculated current position of the receiver 102, sending time of navigation data (TOW and navigation bit count), information related to clock synchronization between the satellite clock and the local clock, i.e., time relationship, information related to the local clock, or any other suitable information. In this example, the information may be continuously updated and kept in the synchronization information storage 210 even after the hot boot or restart.
Each of the rapid data synchronization modules 202, 204, 206 in this example is configured to if, subsequently, the initial data synchronization is interrupted, retrieve the information related to the data synchronization from the synchronization information storage 210 and re-establish the data synchronization between the receiver 102 and the satellite 104 based on the retrieved information. The initial data synchronization may be interrupted for different reasons, such as, for example, hot boot, restart, temporary GPS signal loss, temporary processing interruption. The available information that can be retrieved from the synchronization information storage 210 may be different in the different scenarios of data synchronization interruption. In this example, the switching module 208 is configured to determine which rapid data synchronization module is suitable for re-establishing the data synchronization based on the available information from the initial data synchronization. The details as to choosing the appropriate data synchronization module and method will be described later. Once the data synchronization is re-established by one of the rapid data synchronization modules 202, 204, 206, the checking module 212 may be responsible for checking the reliability of the synchronization information. In one example, if the synchronization information obtained from one rapid data synchronization module fails the test, then the switching module 208 may cause another rapid data synchronization module to re-establish the data synchronization. The verified synchronization information, e.g., TOW and navigation bit count of the sending time, may be stored in the synchronization information storage 210.
In this example, the distance calculator 502 is configured to estimate a distance D between a satellite 104 and the receiver 102. The receiver 102 receives navigation data from the satellite 104. The distance D may be calculated as follows:
D=√{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)} (2)
where, Psv represents the position of the satellite 104 and Pr is the position of the receiver 102.
To calculate the distance, the distance calculator 502 is configured to obtain the ephemeris of the satellite 104 and the position of the receiver 102 from the synchronization information storage 210 of the receiver 102. The current position of the receiver 102 may be different from the one stored in the synchronization information storage 210 if the receiver 102 has been moving. Depending on the length of a navigation bit, the offset of receiver position needs to be less than a threshold value in order to apply the first rapid data synchronization module 202. In other words, the receiver 102 cannot move too much since the last data synchronization when the first rapid data synchronization module 202 is applied. In one example, for navigation data with a 2 ms navigation bit, the offset of receiver position may be less than 200 Km. In another example, for navigation data with a 20 ms navigation bit, the offset of receiver position may be less than 2000 Km.
In order to estimate the position of the satellite 104 using the stored ephemeris, the satellite clock is necessary. In this example, the clock synchronization between the satellite lock and the local clock 114 has been established. In other words, the time relationship between the satellite clock and the local clock 114 is known. Assuming the local clock 114 runs linearly, the satellite clock then may be estimated by the local clock 114 in order to calculate the position of the satellite 104.
The sending time calculator 504 in this example is configured to determine the sending time Ts of the navigation data sent from the satellite 104 based on the distance D between the satellite 104 and the receiver 102. The sending time Ts may be calculated as follows:
T
s
=T
r
−D/C (3)
where, Tr is represents receiving time of the navigation data, and C is the speed of light. As the local clock 114 has been synchronized with the satellite clock, the local time of receiving the navigation data can be applied as Tr in Equation (3). The transmission time of navigating data from the satellite 104 to the receiver 102 is calculated based on the distance D estimated by the distance calculator 502 and the speed of light C. The sending time Ts is then obtained based on the transmission time of the navigation data and the receiving time Tr of navigation data.
The synchronization information calculator 506 in this example is configured to compute synchronization information based on the sending time Ts, of navigation data. As mentioned before, the synchronization information includes TOW and navigation bit count of the sending time, and is used for synchronizing the navigation data. The synchronization information calculator 506 may first calculate TOW based on the determined sending time Ts, of the navigation data as follows:
where, cycle1 represents the update cycle of TOW.
The synchronization information calculator 506 then may calculate navigating bit count Nnavbit based on the determined sending time Ts of the navigation data and TOW as follows:
where, cycle2 represents the update cycle of navigation bit count.
The sending time calculator 802 is this example is configured to obtain the previous synchronization information, e.g., TOW and navigation bit count before the navigation data stream is interrupted, from the synchronization information storage 210 of the receiver 102. In other words, previous synchronization information has been obtained and kept when the initial data synchronization is interrupted. The sending time calculator 802 is also responsible for determining the sending time Ts2 of the current navigation data sent from the satellite 104 based on the previous synchronization information as follows:
T
s2
=T
s1
+ΔT=TOW1+Nnavbit1*Cycle+ΔT (6)
where, TOW1 and Nnavbit1 represent the TOW and navigation bit count before the navigation data stream is interrupted, respectively; cycle represents the update cycle of the navigation bit count; ΔT represents the local time interval between receiving the previous and current navigation data, i.e., the duration of navigation data stream interruption.
It is noted that, as the relative speed between the receiver 102 and satellite 104 may change during the time interval ΔT, the length of a navigation bit may change accordingly. Also, as local clock drift may be affected by temperature and time, the time interval ΔT obtained from the local clock 114 may not be accurate. Thus, in some examples, the time interval ΔT is than 1 hour in order to apply the second rapid data synchronization module 204.
The synchronization information calculator 804 in this example is configured to compute the current synchronization information based on the sending time Ts2 of the current navigation data. As mentioned before, the current synchronizing information includes TOW and navigation bit count of the current sending time and is used for synchronizing the current navigation data. The synchronization information calculator 804 may first calculate TOW based on the determined sending time Ts2 of the current navigation data as follows:
where, cycle1 represents the update cycle of TOW.
The synchronization information calculator 804 then may calculate navigating bit count Nnavbit2 based on TOW and sending time Ts2 of the current navigation data as follows:
where, cycle2 represents the update cycle of navigation bit count.
In this example, the distance calculator 1102 is configured to estimate a first distance Dsv
D
sv
ref=√{square root over ((Psv
where, Psv
D
sv=√{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)}{square root over ((Psv(x)−Pr(x))2+(Psv(y)−Pr(y))2+(Psv(z)−Pr(z))2)} (10)
Where, Psv is the position of the target satellite.
To calculate the first and second distances Dsv
The sending time calculator 1104 in this example is configured to determine, based on a first sending time Ts
where, C represents the speed of light.
The difference between the local receiving time of current navigation data from the reference satellite and the local receiving time of current navigation data from the target satellite can be calculated as follows:
ΔTr=Tr−Tr
where, Tr represents the local receiving time of current navigation data from the target satellite; Tr
According to Equation (13), the sending time Ts of current navigation data from the target satellite may be calculated as follows:
T
s
=T
r
−T
r
ref
+T
s
ref
+T
trans
ref
−T
trans (14).
The synchronization information calculator 1106 in this example is configured to compute synchronization information based on the sending time Ts of target satellite. As mentioned before, the synchronization information includes TOW and navigation bit count of sending time and is used for synchronizing the navigation data received from the target satellite. The synchronization information calculator 1106 may first calculate TOW based on the determined sending time Ts of the navigation data as follows:
where, cycle1 represents the update cycle of TOW.
The synchronization information calculator 1106 then may calculate navigating bit count Nnavbit based on TOW and sending time Ts of the navigation data as follows:
where, cycle2 represents the update cycle of navigation bit count.
Experiments have been performed to demonstrate the TTFF performance increase by the methods and apparatus disclosed in the present disclosure.
In a first experiment, the TTFF time after hot boot is tested. An antenna is connected to two GPS receivers through a power splitter. The first receiver employs only the default data synchronization module with the traditional navigation data synchronization method, while the second receiver also employs the rapid data synchronization modules and methods disclosed in the present disclosure. When both receivers are powered-on, hot boot commands are sent to the two receivers, and the TTFF times are measured as follows (5 tests are performed, and about 8 satellites are available):
In a second experiment, the TTFF time after receiver restart is tested. An antenna is connected to two GPS receivers through a power splitter. The first receiver employs only the default data synchronization module with the traditional navigation data synchronization method, while the second receiver also employs the rapid data synchronization modules and methods disclosed in the present disclosure. Two receivers are restarted after their power supplies are disconnected, and the TTFF times are measured as follows (5 tests are performed, and about 8 satellites are available):
Aspects of the method for synchronizing navigation data, as outlined above, may be embodied in programming. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Tangible non-transitory “storage” type media include any or all of the memory or other storage for the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide storage at any time for the software programming.
All or portions of the software may at times be communicated through a network such as the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another. Thus, another type of media that may bear the software elements includes optical, electrical, and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, which may be used to implement the system or any of its components as shown in the drawings. Volatile storage media include dynamic memory, such as a main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that form a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
Those skilled in the art will recognize that the present disclosure is amenable to a variety of modifications and/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it can also be implemented as a software only solution—e.g., an installation on an existing server. In addition, the “module,” “unit,” or “logic” as disclosed herein can be implemented as a firmware, firmware/software combination, firmware/hardware combination, or a hardware/firmware/software combination.
While the foregoing description and drawings represent embodiments of the present disclosure, it will be understood that various additions, modifications, and substitutions may be made therein without departing from the spirit and scope of the principles of the present disclosure as defined in the accompanying claims. One skilled in the art will appreciate that the present disclosure may be used with many modifications of form, structure, arrangement, proportions, materials, elements, and components and otherwise, used in the practice of the disclosure, which are particularly adapted to specific environments and operative requirements without departing from the principles of the present disclosure. The presently disclosed embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the present disclosure being indicated by the appended claims and their legal equivalents, and not limited to the foregoing description.
Number | Date | Country | Kind |
---|---|---|---|
201210318474.1 | Aug 2012 | CN | national |
This application claims priority to Chinese Patent Application Number 201210318474.1, filed on Aug. 31, 2012 with State Intellectual Property Office of P. R. China (SIPO), which is hereby incorporated by reference. This application is related to a U.S. patent application having an attorney docketing No. 12000052-0006, filed on even date, entitled METHOD AND APPARATUS FOR SYNCHRONIZING NAVIGATION DATA, a U.S. patent application having an attorney docketing No. 12000052-0050, filed on even date, entitled METHOD AND APPARATUS FOR SYNCHRONIZING NAVIGATION DATA, and a U.S. patent application having an attorney docketing No. 12000052-0051, filed on even date, entitled METHOD AND APPARATUS FOR SYNCHRONIZING NAVIGATION DATA, all of which are incorporated herein by reference in their entireties.