Global Navigation Satellite System (GNSS) support

JP2026530303APending Publication Date: 2026-09-08GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2026503590
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-28
Publication Date
2026-09-08

Smart Images

  • Figure 2026530303000001_ABST
    Figure 2026530303000001_ABST
Patent Text Reader

Abstract

An exemplary method includes a Global Navigation Satellite System (GNSS) processor in a mobile computing device acquiring a stream of I / Q samples based on signals received from multiple GNSS satellites; the GNSS processor providing the stream of I / Q samples to another processor; and the GNSS processor receiving support data determined from the other processor based on the stream of I / Q samples, the support data including code phase, frequency, and time for one of the multiple GNSS satellites; and the method further includes the GNSS processor processing the stream of I / Q samples to determine the initial positioning of the mobile computing device based on the support data.
Need to check novelty before this filing date? Find Prior Art

Description

[[BACKGROUND OF THE INVENTION]]

[0001] Smartphones, wearable computing devices, vehicle navigation systems, and other types of devices often include receivers configured to perform position determination using the Global Positioning System (GPS) and other Global Navigation Satellite Systems (GNSS). GPS is a satellite-based navigation system that utilizes satellites including a network of satellites configured to orbit the Earth in precise orbits and transmit positioning signals (i.e., signals) to the Earth. Each satellite transmits a signal that includes information for the receiving device to use, such as an indication of the time at which each signal was transmitted by the satellite and orbital position information of the satellite. Other GNSS constellations such as GLONASS, Galileo, BeiDou, QZSS, and IRNSS operate similarly and can also be used for position determination.

[0002] A GNSS receiver in a mobile computing device can receive and use information in signals from a plurality of satellites to estimate the position of the mobile computing device. For example, the receiver can estimate a user's position on the Earth's surface using trilateration by measuring the time of signals acquired from at least four GNSS satellites. Upon receiving a signal from a satellite, the receiver may determine the time at which the signal was received at the receiver, and compare that time to the time the signal was transmitted by the satellite indicated in the signal. The receiver may then determine the distance to the satellite based on the determined time difference. By using signals from a plurality of satellites, the receiver can determine its position. [[SUMMARY OF THE INVENTION]]

[0003] Generally, aspects of this disclosure relate to mobile computing devices that include GNSS-assisted modules to improve GNSS position acquisition. For example, a mobile computing device may include a GNSS processor that receives satellite data (e.g., I / Q samples) and determines the initial positioning of the mobile computing device based on the satellite data. The determination of the initial positioning is sometimes referred to as the acquisition phase.

[0004] GNSS processors may also utilize A-GPS (Adaptive GPS). For example, a GNSS processor may receive A-GPS-assisted data via a wireless network to which a mobile computing device is connected. A-GPS-assisted data may include approximate time with an accuracy of approximately 1 ms, approximate position with an accuracy of approximately 100 m, and satellite orbit data. GNSS processors may use A-GPS data to determine initial positioning during the acquisition phase. While A-GPS can improve the performance of a GPS system, it can still struggle in challenging environments where there is no clear line of sight to many satellites. Such environments include indoors, underground, in dense jungles, or in densely populated urban valleys. In such cases, the time to first position (TTFF) for A-GPS may be much longer than desired, potentially leading to suboptimal battery consumption. In other cases, a GNSS processor may be unable to acquire a position at all, even with A-GPS-assisted data. Therefore, improving GNSS acquisition performance may be desirable.

[0005] According to one or more aspects of this disclosure, a mobile computing device may include, in addition to a GNSS processor, an Enhanced Aid Module (AAM) that can provide the GNSS processor with data that enables either or both a reduction in the time to first position (TTFF) or an improvement in signal strength sensitivity. For example, the AAM may receive satellite data (e.g., I / Q samples) and process the satellite data to generate aid data for the GNSS processor. The GNSS processor may utilize the aid data to improve the acquisition stage (e.g., to reduce TTFF or to enable the use of weaker satellite signals). In this way, the AAM can improve GNSS acquisition performance.

[0006] As an example, the method includes: a Global Navigation Satellite System (GNSS) processor in a mobile computing device acquiring a stream of I / Q samples based on signals received from multiple GNSS satellites; the GNSS processor providing the stream of I / Q samples to another processor; and the GNSS processor receiving support data determined from the other processor based on the stream of I / Q samples, the support data including at least one of the code phase, frequency, and time for one of the multiple GNSS satellites; and the method further includes the GNSS processor processing the initial positioning of the mobile computing device based on the support data.

[0007] As another example, a mobile computing device includes a Global Navigation Satellite System (GNSS) antenna and a GNSS processor, the GNSS processor configured to generate a stream of I / Q samples based on signals received from multiple GNSS satellites via the GNSS antenna, to provide the stream of I / Q samples to other processors, and to receive support data determined from other processors based on the stream of I / Q samples, the support data including at least one of the code phase, frequency, and time estimates for one of the multiple GNSS satellites, and the GNSS processor is further configured to process the stream of I / Q samples based on the support data to determine the initial positioning of the mobile computing device.

[0008] Details of one or more examples of this disclosure are described in the accompanying drawings and the following description. Other features, purposes, and advantages of this disclosure will become apparent from the description and drawings, as well as from the claims. [Brief explanation of the drawing]

[0009] [Figure 1] This is a conceptual diagram showing an exemplary system 100, including a GNSS constellation 102 and a mobile computing device 110, according to one or more aspects of the present disclosure. [Figure 2] This is a conceptual diagram showing an exemplary system 200 including a mobile computing device 210 according to one or more aspects of the present disclosure. [Figure 3] This is a conceptual diagram showing an exemplary system 300 including a mobile computing device 310 and a cloud 301 according to one or more aspects of the present disclosure. [Figure 4] This is a conceptual diagram showing an exemplary system 400 including a mobile computing device 410 and a cloud 401 according to one or more aspects of the present disclosure. [Figure 5]This flowchart shows exemplary operation of an exemplary computing device according to one or more aspects of the present disclosure. [Modes for carrying out the invention]

[0010] Figure 1 is a conceptual diagram showing an exemplary system 100 including a GNSS constellation 102 and a mobile computing device 110. The GNSS constellation 102 may include multiple GNSS satellites 104A to 104N (collectively, "GNSS satellites 104"), each transmitting a GNSS signal 106A to 106N (collectively, "GNSS signals 106"). The GNSS satellites 104 may be included in any GNSS constellation such as GPS, GLONASS, Galileo, BeiDou, QZSS, and IRNSS.

[0011] The mobile computing device 110 may be a portable device that includes components for determining the location of the mobile computing device (e.g., latitude and longitude). As shown in Figure 1, the mobile computing device 110 may include one or more processors 112, a GNSS radio frequency (RF) front end 114, a GNSS processor 116, and a storage device 118, the storage device 118 may include a GNSS assistance module 120 and a location service 122. Examples of the mobile computing device 110 include, but are not limited to, mobile phones, gaming devices, vehicles, tablets, cameras, laptops, wearable computing devices, and e-book readers.

[0012] The processor 112 may perform functions and / or execute instructions within the mobile computing device 110. Examples of the processor 112 include, but are not limited to, one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Thus, as used herein, the term “processor” may refer to any of the aforementioned structures or any other structure suitable for carrying out the techniques described herein.

[0013] The GNSS radio frequency (RF) front-end 114 may include various components that receive RF signals and generate a stream of digital samples corresponding to the received RF signals. For example, the GNSS RF front-end 114 may include one or more antennas (e.g., one or more GNSS antennas) that convert the RF signal (i.e., GNSS signal 106) to an analog signal, one or more demodulators that demodulate the analog signal to an analog I / Q signal (e.g., to remove a carrier signal such as a 1575.42 MHz carrier signal), and one or more analog-to-digital converters (ADCs) that convert the analog I / Q signal to a stream of digital I / Q samples. In some examples, the components of the GNSS RF front-end 114 may process only GNSS signals. In other examples, the components of the GNSS RF front-end 114 may process other signals (e.g., cellular, Wi-Fi, etc.). The GNSS RF front-end 114 may output the stream of I / Q samples (e.g., either analog or digital) to one or more other components of the mobile computing device 110, such as a GNSS processor 116.

[0014] The GNSS processor 116 may be the processor of the mobile computing device 110 that performs GNSS operations such as acquisition and tracking. The GNSS processor 116 may be a separate component from the processor 112 within the mobile computing device 110 (for example, the GNSS processor 116 may be a separate chip from the processor 112). For example, the GNSS processor 116 may be a separate chip or may be included in a baseband or modem chip. In some examples, the GNSS processor 116 may be, for example, a special-purpose section of one of several processors 112 (separate from the application processor). Thus, the GNSS processor 116 may be considered a different processor from the processor 112.

[0015] The storage device 118 may include one or more computer-readable storage media. For example, the storage device 118 may be configured for long-term and short-term storage of information, such as instructions, data, or other information used by the mobile computing device 110. In some examples, the storage device 118 may include non-volatile storage elements. Examples of such non-volatile storage elements include magnetic hard disks, optical disks, solid-state disks, and / or others of the same kind. In other examples, instead of, or in addition to, non-volatile storage elements, the storage device 118 may include one or more so-called "temporary" memory devices, meaning that the primary purpose of these devices may not be long-term data storage. For example, the device may include volatile memory devices, meaning that the device may not retain stored content when the device is not receiving power. Examples of volatile memory devices include random-access memory (RAM), dynamic random-access memory (DRAM), static random-access memory (SRAM), and the like.

[0016] The location service 122 may, with explicit user permission, provide the location of the mobile computing device 110 to one or more applications and / or other modules of the mobile computing device 110. In some examples, the location service 122 may be a service performed by the processor 112. The location service 122 may receive the location of the mobile computing device 110 from one or more other components of the mobile computing device 110, such as the GNSS processor 116.

[0017] During operation, the GNSS processor 116 may first perform an acquisition phase to determine the initial positioning of the mobile computing device 110. To determine the initial positioning, the GNSS processor 116 may determine the code phase, frequency, and time for each of the multiple GNSS satellites 104. For example, the GNSS processor 116 may receive a stream of I / Q samples from the GNSS RF frontend 114 and process the stream of I / Q samples to determine the code phase, frequency, and time for each of the multiple GNSS satellites 104. To process the stream of I / Q samples, the GNSS processor 116 may search for the code phase, frequency, and time by searching for correlation peaks across the search space (e.g., potential PRN codes). The GNSS processor 116 may perform correlation using different time intervals. Longer time intervals may result in greater noise suppression, but also increase the TTFF. The GNSS processor 116 may determine that a particular GNSS satellite among the multiple GNSS satellites 104 is acquired / detected if the highest correlation peak is greater than a threshold.

[0018] Based on the determined code phase, frequency, and time for multiple GNSS satellites 104, the GNSS processor 116 may determine the initial positioning for the mobile computing device 110. For example, the GNSS processor 116 may use the determined code phase, frequency, and time for multiple GNSS satellites 104 to decode a navigation message (e.g., navbit) encoded in the GNSS signal 106, and determine the initial positioning based on the decoded navigation message.

[0019] Once the GNSS processor 116 acquires its initial position, it can enter a tracking mode in which it tracks / monitors the location of the mobile computing device 110. The tracking mode may be substantially simpler and / or less complex than the acquisition mode.

[0020] In some cases, the GNSS processor 116 can use A-GPS (e.g., assisted GNSS) to shorten the time to first position (TTFF). For example, the GNSS processor 116 may receive approximate time and orbital data for one or more of the GNSS satellites 104 from the processor 112. While A-GPS can improve the performance of the GNSS processor 116, it may struggle in challenging environments where there is no clear line of sight to many satellites. Such environments include indoors, underground, in dense jungles, or in the valleys of densely populated cities. In such cases, the TTFF of the GNSS processor 116 may be much longer than desired, which may result in suboptimal battery consumption. In other cases, the GNSS processor 116 may not be able to acquire a position at all, even with A-GPS-assisted data. Therefore, it may be desirable to improve GNSS acquisition performance.

[0021] According to one or more aspects of this disclosure, the mobile computing device 110 may include a GNSS support module 120 that can provide data to a GNSS processor 116 that enables either or both a reduction in TTFF or an improvement in signal strength sensitivity. For example, the GNSS support module 120 may receive satellite data (e.g., I / Q samples) and process the satellite data to generate support data for the GNSS processor 116. In contrast to A-GPS information, the support data provided by the GNSS support module 120 may include precise code phase, frequency, and time for one of a plurality of GNSS satellites 104. Also, in contrast to A-GPS, the GNSS processor 116 may use actual I / Q samples to determine the support data. In some examples, in addition to I / Q samples, the GNSS support module 120 may further determine the support data based on seed data. The seed data may be similar to A-GPS information (e.g., one or more of approximate time, satellite orbit data, and approximate location of the mobile computing device). However, by further utilizing satellite data (e.g., I / Q samples), the GNSS support module 120 may be able to calculate support data that enables the GNSS processor 116 to acquire multiple GNSS satellites 104 and to calculate the initial positioning faster than the GNSS processor 116 could have done on its own. Thus, the GNSS processor 116 can use the support data to speed up the determination of the initial positioning. In this way, the GNSS support module 120 can improve the GNSS acquisition performance of the mobile computing device 110.

[0022] FIG. 2 is a conceptual diagram illustrating an example system 200 including a mobile computing device 210. The mobile computing device 210 of FIG. 2 is an example of the mobile computing device 110 of FIG. 1. Similarly, application processor 212, GNSS RF front-end 214, GNSS processor 216, GNSS assistance module 220, and location service 222 may respectively be examples of processor 112, GNSS RF front-end 114, GNSS processor 116, GNSS assistance module 120, and location service 122 of FIG. 1.

[0023] In the example of FIG. 2, GNSS assistance module 220, location service 222, user application 228, and AP service 230 are shown as being within application processor 212. For example, application processor 212 may execute GNSS assistance module 220, location service 222, user application 228, and AP service 230.

[0024] Similar to GNSS assistance module 120, GNSS assistance module 220 may process satellite data to generate assistance data that enables GNSS processor 216 to improve the determination of an initial position fix (e.g., reduce TTFF or improve the tolerance range of signal strength). FIG. 2 shows an example data flow. For example, GNSS processor 216 may provide GNSS data 232 (e.g., a stream of I / Q samples) to GNSS assistance module 220. GNSS assistance module 220 may utilize GNSS data 232 to determine assistance data 236 and provide the assistance data 236 to GNSS processor 216.

[0025] As described above, the GNSS processor 216 can use the assistance data 236 to obtain an initial position fix of the mobile computing device 210, which may be the position of the mobile computing device 210. The GNSS processor 216 may output the determined position as position 238 to the location service 222. The GNSS processor 216 may continue tracking the mobile computing device 210 and update the position 238. The location service 222, as described above, may provide the position 238 (or other indication of the position of the mobile computing device 210 with the user's consent) to one or more other components of the mobile computing device 210, such as the user application 228.

[0026] Also, as described above, in some examples, in addition to the GNSS data 232, the GNSS assistance module 220 may further determine assistance data based on seed data such as seed data 234. The seed data 234 may be similar to A-GPS information (e.g., one or more of approximate time, satellite orbit data, and the approximate position of the mobile computing device). As shown in FIG. 2, the GNSS assistance module 220 may obtain the seed data 234 from an application service (AP service) 230. The AP service 230 may be a service that provides data to various components of the mobile computing device 210. The AP service 230 may obtain data (e.g., the seed data 234) from any suitable source or sources (e.g., sensors of the mobile computing device 210, network connections, cellular networks, etc.).

[0027] The GNSS processor 216 can improve the initial positioning determination (e.g., by reducing the TTFF or improving the signal strength tolerance) by using the support data 236. For example, the application processor 212 may have more powerful processing capabilities than the GNSS processor 216 and therefore may perform calculations faster than the GNSS processor 216 and / or utilize more complex algorithms than the GNSS processor 216. However, in contrast, the application processor 212 may consume more power than the GNSS processor 216. For example, if both the application processor 212 and the GNSS processor 216 were performing the same calculations to track the location of the mobile computing device 210, the application processor 212 would use more power, thereby draining the battery of the mobile computing device 210 more quickly.

[0028] Figure 3 is a conceptual diagram showing an exemplary system 300 including a mobile computing device 301 and a cloud 301. The cloud 301 may represent network connectivity processing capabilities outside of the mobile computing device 310. The mobile computing device 310 may communicate with components of the cloud 301 using any suitable network connection (e.g., the internet, cellular, etc.).

[0029] Similar to the mobile computing device 210 in Figure 2, the mobile computing device 310 in Figure 3 is an example of the mobile computing device 110 in Figure 1. However, the mobile computing device 310 may be configured to generate support data 336 using external processing power. For example, similar to the GNSS support module 220, the GNSS support module 320 can receive GNSS data 332 from the GNSS processor 316 (and, in some examples, seed data 334 from the AP service 330). As shown in Figure 3, the GNSS support module 320 may act as a proxy for the GNSS support module 321, which may run in the cloud 301. While operating, the GNSS support module 320 can output GNSS data 332 (and, in some examples, seed data 334) to the GNSS support module 321 (e.g., via an internet connection), which can then determine the support data 336 and output the support data 336 back to the GNSS support module 320. Next, similar to the GNSS support module 220, the GNSS support module 320 can output support data 336 to the GNSS processor 316.

[0030] Figure 4 is a conceptual diagram showing an exemplary system 400 including a mobile computing device 410 and a cloud 401. Similar to the mobile computing device 310 in Figure 3 and the mobile computing device 210 in Figure 2, the mobile computing device 410 in Figure 4 is an example of the mobile computing device 110 in Figure 1. Also, similar to the mobile computing device 310 in Figure 3, the mobile computing device 410 may be configured to generate support data 336 using external processing capabilities such as a GNSS support module 420. On the other hand, as shown in Figure 4, the GNSS support module 420 may be configured to obtain at least a portion of the seed data 434 from a source other than the mobile computing device 410. For example, as shown in Figure 4, the GNSS support module 420 may obtain at least a portion of the seed data 434 via an AP service 430, which may also be run by the cloud 401.

[0031] The examples in Figures 3 and 4 do not have to be mutually exclusive. For example, a GNSS supporting cloud execution (e.g., GNSS-assisted module 320 or 420) may obtain seed data from both a mobile computing device (e.g., shown in Figure 3) and an external source (e.g., shown in Figure 4).

[0032] Figure 5 is a flowchart illustrating exemplary operation of an exemplary computing device according to one or more embodiments of the present disclosure. The exemplary operation in Figure 5 is described as being performed by the mobile computing device 110 of Figure 1, but in other examples, some or all of the exemplary operation may be performed by other computing devices.

[0033] The GNSS processor 116 may acquire a stream of I / Q samples (e.g., satellite data) (502). For example, the GNSS processor 116 may acquire a stream of I / Q samples from the GNSS RF frontend 114.

[0034] The GNSS processor 116 can process a stream of I / Q samples to determine the initial positioning of the mobile computing device 110 (504). For example, the GNSS processor 116 may process a stream of I / Q samples to determine the respective code phase, frequency, and time of multiple GNSS satellites 104 in Figure 1. The GNSS processor 116 can continue processing the stream of I / Q samples until the initial positioning is determined (520). However, as mentioned above, in some examples the performance of the GNSS processor 116 for determining the initial positioning may not be satisfactory. For example, the time to first position (TTFF) provided by the GNSS processor 116 may be too long.

[0035] According to one or more aspects of the present disclosure, the GNSS processor 116 can improve the initial positioning determination performance by utilizing a GNSS support module, such as a GNSS support module 120. In some examples, the GNSS processor 116 can always utilize the GNSS support module 120. In other examples, the GNSS processor 116 can selectively determine whether or not to utilize the GNSS support module 120 (506).

[0036] In an example where the GNSS processor 116 selectively determines whether or not to use the GNSS support module 120, the GNSS processor 116 can make the determination based on one or more factors. For example, the GNSS processor 116 may decide to use the GNSS support module 120 in response to determining that the GNSS processor 116 has not determined the initial positioning within a threshold period (e.g., 5 seconds, 15 seconds, 30 seconds, etc.). As another example, the GNSS processor 116 may decide to use the GNSS support module 120 in response to determining that the signal strength of the signal received from the GNSS satellite is below a threshold signal strength (e.g., the signal 106A from GNSS satellite 104A is too weak). As yet another example, the GNSS processor 116 may decide to use the GNSS support module 120 in response to determining that the approximate location of the mobile computing device 110 is within a specific area. For example, the GNSS processor 116 may have a database of locations that have been predetermined to be "difficult" GNSS locations (e.g., urban valleys). The GNSS processor 116 may acquire the approximate location of the mobile computing device 110 (for example, within A-GPS / A-GNSS data) and decide to use the GNSS support module 120 if the approximate location of the mobile computing device 110 is in a database of locations that have been predetermined to be "difficult" GNSS locations.

[0037] If the GNSS processor 116 uses the GNSS support module 120 in all situations, or in response to deciding to use the GNSS support module 120 (the "Yes" branch in 506), the GNSS processor 116 may provide the GNSS support module 120 with a stream of I / Q samples (508).

[0038] The GNSS support module 120 may receive a stream of I / Q samples (510) and process the stream of I / Q samples to determine support data (512). As described above, the support data may include code phase, frequency, and time for one of several GNSS satellites. Also, as described above, in some examples, the GNSS support module 120 may perform the determination of support data locally on the mobile computing device 110 (e.g., Figure 2). In other examples, the GNSS support module 120 may perform the determination of support data remotely from the mobile computing device 110 (e.g., Figures 3 and 4). The GNSS support module 120 may provide the determined support data to the GNSS processor 116 (514).

[0039] The GNSS processor 116 receives support data (516) and can use the support data when processing the stream of I / Q samples to determine the initial positioning (518). For example, the GNSS processor 116 can process subsequent received I / Q samples in the stream of I / Q samples (e.g., samples different from those used by the GNSS support module 120 to determine the support data) to determine the initial positioning. The GNSS processor 116 can continue processing the stream of I / Q samples until the initial positioning is determined (520). Therefore, the GNSS processor 116 can determine the initial positioning using a portion of the stream of I / Q samples different from the portion of the stream of I / Q samples used by the GNSS support module 120 to determine the support data. As described above, the use of support data can improve the performance of the initial positioning determination by the GNSS processor 116. For example, the GNSS processor 116 may utilize support data to speed up processing by at least narrowing its code phase, frequency, and time search in order to acquire and track GNSS satellites faster than if the GNSS processor 116 were to process them independently without the assistance of the GNSS support module 120. Thus, the time to first position (TTFF) can be improved by using the GNSS support module 120.

[0040] As shown in Figure 5, the GNSS processor 116 may begin processing the stream of I / Q samples before receiving the support data. Thus, the GNSS processor 116 can be considered to process the stream of I / Q samples in parallel with the GNSS support module 120 determining the support data.

[0041] In response to determining the initial position (branch "Yes" at 520), the GNSS processor 116 can enter tracking mode (522). In tracking mode, the GNSS processor 116 can continue processing I / Q samples to update the position estimate of the mobile computing device 110.

[0042] The embodiments of this disclosure include the following examples.

[0043] Example 1. A method comprising: a Global Navigation Satellite System (GNSS) processor of a mobile computing device acquiring a stream of I / Q samples based on signals received from a plurality of GNSS satellites; the GNSS processor providing the stream of I / Q samples to another processor; and the GNSS processor receiving, from the other processor, support data determined based on the stream of I / Q samples, wherein the support data includes code phase, frequency, and time for one of the plurality of GNSS satellites; and the method further comprises the GNSS processor processing the stream of I / Q samples to determine the initial positioning of the mobile computing device based on the support data.

[0044] Example 2. The method according to Example 1, wherein the other processor further determines the support data based on seed data.

[0045] Example 3. The method according to Example 2, wherein the seed data includes one or more of the following: approximate time, satellite orbit data, and approximate location of the mobile computing device.

[0046] Example 4. The method according to Example 1, wherein processing the stream of I / Q samples includes the GNSS processor initiating processing of the stream of I / Q samples before receiving the support data, and the GNSS processor accelerating the processing of the stream of I / Q samples based on the support data.

[0047] Example 5. The method according to Example 4, wherein the GNSS processor processes the stream of I / Q samples before receiving the support data, which includes processing the stream of I / Q samples to search for the code phase, frequency, and time estimates for one GNSS satellite, and speeding up the processing of the stream of I / Q samples includes narrowing the search for the code phase, frequency, and time for one GNSS satellite based on the support data.

[0048] Example 6. The method according to Example 5, wherein the GNSS processor processes the stream of I / Q samples before receiving the support data, and further includes processing the stream of I / Q samples using an assisted GNSS (A-GNSS).

[0049] Example 7. The method according to Example 1, wherein providing the stream of I / Q samples to the other processor is provided to the other processor in all circumstances when determining the initial positioning.

[0050] Example 8. The method according to Example 1, wherein providing the stream of I / Q samples to the other processor is provided in response to one or more of the following: determining that the GNSS processor has not determined the initial positioning within a threshold period; determining that the signal strength of the signal received from the GNSS satellite is less than a threshold signal strength; and determining that the approximate location of the mobile computing device is within a specific area.

[0051] Example 9. The method according to Example 1, wherein the other processor is included in the mobile computing device.

[0052] Example 10. The method according to Example 9, wherein the other processor is the application processor of the mobile computing device.

[0053] Example 11. The method according to Example 1, wherein the other processor is not included in the mobile computing device, and providing the stream of I / Q samples to the other processor includes providing the stream of I / Q samples to the other processor via the mobile computing device's internet connection.

[0054] Example 12. The method according to Example 1, further comprising tracking the location of the mobile computing device based on the initial positioning using the GNSS processor.

[0055] Example 13. A mobile computing device comprising a Global Navigation Satellite System (GNSS) antenna and a GNSS processor, wherein the GNSS processor is configured to generate a stream of I / Q samples based on signals received from a plurality of GNSS satellites via the GNSS antenna, to provide the stream of I / Q samples to another processor, and to receive support data determined from the other processor based on the stream of I / Q samples, wherein the support data includes code phase, frequency, and time estimation for one of the plurality of GNSS satellites, and the GNSS processor is further configured to process the stream of I / Q samples based on the support data to determine the initial positioning of the mobile computing device.

[0056] Example 14. The mobile computing device according to claim 13, further comprising the other processor, the other processor configured to determine the support data based on both the stream of I / Q samples and seed data.

[0057] Example 15. The mobile computing device according to claim 14, wherein the GNSS processor processes the stream of I / Q samples to search for the code phase, frequency, and time estimates for one GNSS satellite, in parallel with the other processor determining the support data.

[0058] In one or more examples, the described functions may be implemented in hardware, software, firmware, or a combination thereof. If implemented in software, these functions may be stored or transmitted as one or more instructions or codes on a computer-readable medium and executed by a hardware-based processing unit. The computer-readable medium may include computer-readable storage media corresponding to tangible media such as data storage media, or communication media including any medium that facilitates the transfer of computer programs from one location to another, for example, according to a communication protocol. Thus, the computer-readable medium may generally correspond to (1) non-transient tangible computer-readable storage media, or (2) communication media such as signals or carrier waves. The data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and / or data structures for implementing the techniques described herein. A computer program product may include computer-readable media.

[0059] Examples, rather than being limited, of such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM, or other optical disk storage devices, magnetic disk storage devices, or other magnetic storage devices, flash memory, or any other storage media that can be used to store desired program code in the form of instructions or data structures and that are accessible by a computer. Also, any connection is properly called a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of a medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carriers, signals, or other temporary media, but instead refer to non-temporary, tangible storage media. As used herein, the terms "disk" and "disc" include compact discs (CDs), laser discs, optical discs, digital multipurpose discs (DVDs), floppy disks (registered trademark), and Blu-ray discs. A "disk" typically reproduces data magnetically, while a "disc" reproduces data optically using a laser. Any combination of the above is also included in the scope of computer-readable media.

[0060] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Therefore, as used herein, the term “processor” may refer to any of the aforementioned structures or any other structure suitable for implementing the technology described herein. Furthermore, in some embodiments, the functions described herein may be provided within dedicated hardware and / or software modules. The technology can also be fully implemented in one or more circuits or logic elements.

[0061] The technology of this disclosure can be implemented in a variety of devices or apparatus, including wireless handsets, integrated circuits (ICs), or sets of ICs (e.g., chipsets). While this disclosure describes various components, modules, or units to highlight the functional aspects of devices configured to implement the disclosed technology, implementation by different hardware units is not necessarily required. Rather, as described above, the various units may be combined within a hardware unit, or they may be provided in combination with appropriate software and / or firmware by a collection of interoperating hardware units, including one or more processors as described above.

[0062] Various embodiments of this disclosure have been described. Any combination of the described systems, operations, or functions is intended. These embodiments and other embodiments are included in the following claims.

Claims

1. It is a method, The Global Navigation Satellite System (GNSS) processor in the mobile computing device acquires a stream of I / Q samples based on signals received from multiple GNSS satellites, The GNSS processor provides the other processor with the stream of I / Q samples. The GNSS processor includes receiving support data determined from the other processor based on the stream of I / Q samples, the support data including the code phase, frequency, and time for one of the plurality of GNSS satellites, → The method further includes, A method comprising processing the stream of I / Q samples using the GNSS processor to determine the initial positioning of the mobile computing device based on the support data.

2. The method according to claim 1, wherein the other processor further determines the support data based on seed data.

3. The method according to claim 2, wherein the seed data includes one or more of approximate time, satellite orbit data, and the approximate location of the mobile computing device.

4. Processing the stream of I / Q samples is Before receiving the aforementioned support data, the GNSS processor starts processing the stream of I / Q samples, The method according to any one of claims 1 to 3, further comprising using the GNSS processor to speed up the processing of the stream of I / Q samples based on the support data.

5. Prior to receiving the support data, the GNSS processor processing the stream of I / Q samples includes processing the stream of I / Q samples to search for the code phase, frequency, and time for one of the GNSS satellites. The method according to claim 4, wherein speeding up the processing of the stream of I / Q samples includes narrowing the search for the code phase, frequency, and time for one GNSS satellite based on the supporting data.

6. The method according to claim 5, wherein processing the stream of I / Q samples by the GNSS processor before receiving the support data includes processing the stream of I / Q samples using an assisted GNSS (A-GNSS).

7. The method according to any one of claims 1 to 6, wherein providing the stream of I / Q samples to the other processor includes providing the stream of I / Q samples to the other processor in all circumstances when determining the initial positioning.

8. Providing the stream of I / Q samples to the other processor means The GNSS processor determines that it has not determined the initial positioning within the threshold period, Determining that the signal strength of the signal received from the GNSS satellite is below a threshold signal strength, The method according to any one of claims 1 to 6, comprising providing the stream of I / Q samples to the other processor in response to one or more of the following: determining that the approximate location of the mobile computing device is within a specific area.

9. The method according to any one of claims 1 to 8, wherein the other processor is included in the mobile computing device.

10. The method according to claim 9, wherein the other processor is an application processor for the mobile computing device.

11. The aforementioned other processors are not included in the mobile computing device. The method according to any one of claims 1 to 8, wherein providing the stream of I / Q samples to the other processor includes providing the stream of I / Q samples to the other processor via the Internet connection of the mobile computing device.

12. The method according to any one of claims 1 to 11, further comprising tracking the location of the mobile computing device based on the initial positioning using the GNSS processor.

13. A mobile computing device, Global Navigation Satellite System (GNSS) antennas, The system includes a GNSS processor, and the GNSS processor is Based on signals received from multiple GNSS satellites via the aforementioned GNSS antenna, a stream of I / Q samples is generated. To provide the stream of I / Q samples to other processors, The GNSS processor is configured to receive support data determined based on the stream of I / Q samples from the other processor, the support data including code phase, frequency, and time estimation for one of the plurality of GNSS satellites, and the GNSS processor is further includes code phase, frequency, and time estimation for one of the GNSS satellites, and the GNSS processor is further configured to receive support data determined based on the stream of I / Q samples from the other processor, the support data includes code phase, frequency, and time estimation for one of the plurality of GNSS satellites, and the GNSS processor is further configured to receive support data determined based on the stream of I / Q samples from the other processor, the support data includes code phase, frequency, and time estimation for one of the GNSS satellites, and the GNSS processor is further configured to receive support data from the other processor, the stream of I / Q samples from the other processor, the stream of I / Q samples from the other processor, the support data includes code phase, frequency, and time A mobile computing device configured to process the stream of I / Q samples in order to determine the initial positioning of the mobile computing device based on the aforementioned support data.

14. The mobile computing device according to claim 13, further comprising the other processor, the other processor configured to determine the support data based on both the stream of I / Q samples and seed data.

15. The mobile computing device according to claim 14, wherein the GNSS processor processes the stream of I / Q samples to search for the code phase, frequency, and time estimates for one GNSS satellite, in parallel with the other processor determining the support data.