Method and apparatus for managing multiple sensors in a navigation system

A mobile device operable in multiple navigation modes and includes navigation devices, a mode selection module, and a power management module. The navigation devices provide respective data associated with at least one of movement, a position, and a location of the mobile device. Each of the navigation devices is individually operable in an active mode and at least one of an inactive mode and a sleep mode. The mode selection module receives the respective data and selects one of the navigation modes based on the data received from one of the navigation devices. Each of the navigation modes corresponds to different ones of the navigation devices operating in the active mode. The power management module, based on the selected one of the navigation modes, transitions the navigation devices between the active mode and the at least one of the inactive mode and the sleep mode.

FIELD

The present disclosure relates to management of multiple sensors in a navigation system.

BACKGROUND

Mobile devices (including, but not limited to, portable navigation devices, smartphones, and/or tablet computers) may include navigation systems such as various types of global navigation satellite system (GNSSs) receivers, wireless communication transceivers, sensors, and combinations thereof. A mobile device including a GNSS receiver (e.g., a global position system, or GPS) can receive signals from one or more satellites of the GNSS and determine a location of the mobile device based on the signals received from the one or more satellites of the GNSS. A mobile device including a wireless communication transceiver (e.g., a Wi-Fi transceiver) in communication with one or more access points or base stations can also determine a location of the mobile device based on communications with the one or more access points or base stations. A mobile device may also include various sensors that can provide additional data indicative of an orientation, acceleration and/or the location of the mobile device.

SUMMARY

A mobile device operable in multiple navigation modes is provided and includes navigation devices, a mode selection module, and a power management module. The navigation devices are configured to provide respective data associated with at least one of movement, a position, and a location of the mobile device. Each of the navigation devices is individually operable in an active mode and at least one of i) an inactive mode and ii) a sleep mode. The mode selection module is configured to i) receive the respective data and ii) select one of the navigation modes based on the data received from one of the navigation devices. Each of the navigation modes corresponds to different ones of the navigation devices operating in the active mode. The power management module is configured to, based on the selected one of the navigation modes, transition the navigation devices between the active mode and the at least one of i) the inactive mode and ii) the sleep mode.

A method of operating a mobile device in multiple navigation modes is provided. The method includes providing, via multiple navigation devices, respective data associated with at least one of movement, a position, and a location of the mobile device. Each of the navigation devices is individually operable in an active mode and at least one of i) an inactive mode and ii) a sleep mode. The method further includes receiving the respective data and selecting one of the navigation modes based on the data received from one of the navigation devices. Each of the navigation modes corresponds to different ones of the navigation devices operating in the active mode. Based on the selected one of the navigation modes, the navigation devices are transitioned between the active mode and the at least one of i) the inactive mode and ii) the sleep mode.

DESCRIPTION

A mobile device according to one or more embodiments of the present disclosure (including, but not limited to, portable navigation devices, smartphones, and/or tablet computers) includes navigation devices associated with two or more different types of navigation and/or position systems. For example only, the navigation devices include a global navigation satellite system (GNSS) receiver, a wireless communication transceiver, various sensors, and/or combinations thereof.

In one embodiment, a mobile device is configured to operate in a plurality of modes based on characteristics such as, for example, a location of the mobile device, available battery power, available navigation systems, and desired usage of the device. Each of the plurality of modes corresponds to operation of a respective combination of the navigation devices. For example, in a first mode, all of the navigation devices in the mobile device may be used (i.e., powered on and in a “normal” or active mode). Conversely, in a second mode, one or more of the navigation devices may be powered down (i.e., in an inactive mode). In still another mode, one or more of the navigation devices may be operated in a reduced power mode (e.g., reduced duty cycle) or sleep mode. In the sleep mode, some circuits of the corresponding navigation device may still be active (i.e., powered) while other circuits are powered down or operated at a reduced duty cycle to reduce a turn-on time of the navigation device when transitioning the navigation device from the sleep mode to the active mode.

In one embodiment, the various navigation devices are associated with different power requirements and consumption. A GNSS receiver such as a global positioning system (GPS) receiver operating in the active (e.g., continuous tracking) mode may require, for example only, 30-60 mA. In a reduced duty cycle mode, the GPS receiver may require 8 mA. In the sleep mode, the GPS receiver may require only 20 μA. A wireless communication transceiver operating in the active (e.g., continuous and/or standby) mode may require, for example only, 30-200 mA.

In one embodiment, the mobile device includes various sensors (e.g., integrated physical, position, orientation, and/or movement sensors) including, but not limited to, a 3-axis accelerometer, a 3-axis gyroscope, a magnetometer, and/or a barometer. The sensors may include microelectromechanical systems (MEMS) sensors. The sensors, in one embodiment, require less power to operate than the GPS receiver and the wireless communication transceiver. For example only, the accelerometer may require 0.01-0.1 mA at 50 Hz to operate in the active mode. The gyroscope may require 3-6 mA to operate in the active mode 1-2 mA to operate in the sleep mode at 50 Hz. The magnetometer may require 0.1-0.3 mA at 8 Hz to operate in the active mode.

Referring now toFIG. 1, a mobile device100includes a plurality of navigation devices104including, but not limited to, an accelerometer sensor module108, a gyroscope sensor module112, a magnetometer sensor module116, other sensor modules (e.g., a barometer sensor, an ambient light sensor, a proximity sensor, and/or a temperature sensor)120, a GNSS module124, and a wireless communication module128. Each of the navigation devices104is individually operable in an active (i.e., powered up) mode, an inactive (i.e., powered down) mode, a sleep (i.e., a reduced power) mode, and/or a reduced duty cycle mode.

The accelerometer sensor module108includes, for example, a 3-axis accelerometer sensor and provides data indicative of movement of the mobile device100to a data conditioning module132. The gyroscope sensor module112includes, for example, a 3-axis gyroscope sensor provides data indicative of movement of the mobile device100to the data conditioning module132. The magnetometer sensor module116detects strength and direction of magnetic fields and provides data indicative of compass directions (e.g., north) relative to movement of the mobile device100to the data conditioning module132. The other sensor modules120may provide other data indicative of, for example only, position, location, movement, and/or orientation of the mobile device based on sensed characteristics to the data conditioning module132. For example, the other sensor modules120may include a barometer sensor that senses atmospheric pressure and provides data indicative of an altitude of the mobile device100to the data conditioning module132.

The GNSS module124includes a GPS or other satellite navigate system receiver and provides data indicative of a location of the mobile device100to the data conditioning module132. For example, the GNSS module124communicates with satellites (not shown) of a remote GNSS to determine the location of the mobile device100. The wireless communication module128includes a Wi-Fi or other local area network receiver and provides data indicative of the location of the mobile device100to the data conditioning module132. For example, the wireless communication module128communicates with an access point or base station of a local (i.e., within range) wireless local area network to determine the location of the mobile device100.

The data conditioning module132receives the data from each of the navigation devices104and outputs conditioned navigation data accordingly. For example, the data conditioning module132may filter, calibrate, and/or selectively disregard raw data received from the navigation devices104. For example, the data conditioning module132may determine an integrity of the data received from one of the navigation devices104—e.g., whether the data received from one of the navigation devices104is faulty or invalid due to the respective one of the navigation devices104being out of calibration or otherwise unreliable (e.g., malfunctioning). In other words, the data conditioning module132may determine integrity information associated with each of the navigation devices104. Accordingly, the navigation data output from the data conditioning module132may not include data received from any of the navigation devices104that are unreliable.

The navigation data including the data received from the various navigation devices104is provided to a mode selection module136. The mode selection module136is configured to select and transition between navigation modes of the mobile device100. The navigation modes include, for example only, an outdoor vehicle mode, an outdoor pedestrian mode, an indoor vehicle mode, an indoor pedestrian mode, and a static mode. In one embodiment, the outdoor vehicle mode and the indoor vehicle mode correspond to modes in which the mobile device100is within a vehicle and the vehicle is moving. In the outdoor vehicle mode, the vehicle is not within, for example, a structure, such as a parking structure or a tunnel. In the indoor vehicle mode, the vehicle may be moving within a parking structure or a tunnel. In another embodiment, the outdoor pedestrian mode and the indoor pedestrian mode correspond to modes when the mobile device100is being moved between locations via a pedestrian (or user). In the outdoor pedestrian mode, the user is moving the mobile device100between outdoor locations. In the indoor pedestrian mode, the user is moving the mobile device100between indoor locations (e.g., between shops in a shopping mall). In another embodiment, the mobile device100is not be moved while in the static mode. The navigation modes correspond to a determined location and usage of the mobile device100(i.e., whether the mobile device100is being used in a vehicle or by a pedestrian, and whether the mobile device100is an outdoor or indoor location). Further, each of the navigation modes is associated with respective operating modes of the navigation devices104.

For example, in one or more of the navigation modes, all of the navigation devices104are operated in the active mode. In others of the navigation modes, one or more of the navigation devices104are operated in the active mode, and one or more others of the navigation devices104are operated in the inactive mode or the sleep mode. The mode selection module136selects and transitions between the navigation modes based on the navigation data received from the data conditioning module132.

One of the navigation devices104may always be operated in the active mode. For example only, the accelerometer sensor module108, which has relatively low power consumption with respect to the other navigation devices104, may always be operated in the active mode. Accordingly, regardless of which navigation mode the mobile device100is operating in, the accelerometer sensor module108is always active and providing data to the data conditioning module132. Further, the data conditioning module132provides navigation data including at least the data received from the accelerometer sensor module108to the mode selection module136in all of the navigation modes. The mode selection module136transitions between the navigation devices based on the data received from the accelerometer sensor module108.

The accelerometer sensor module108detects changes in velocity (i.e., magnitude and direction) of the mobile device100, including rotation. Accordingly, direction and magnitude of the changes in velocity detected by the accelerometer sensor module108are indicative of whether the mobile device100is being used in a vehicle or by a pedestrian. For example, changes in velocity that are greater than or equal to a threshold indicate that the mobile device100is being used in a vehicle, and therefore correspond to the outdoor vehicle mode or the indoor vehicle mode. Conversely, changes in velocity that are within the threshold indicate that the mobile device100is being used by a pedestrian, and therefore correspond to the outdoor pedestrian mode or the indoor pedestrian mode. No change in velocity (e.g., no change in velocity for a predetermined period) indicates that the mobile device100is not moving, and therefore corresponds to the static mode. For example, in the static mode, all of the navigation devices104other than the accelerator sensor module108are in the inactive mode or other reduced power mode.

Other data may indicative of whether the mobile device100is in an indoor location or an outdoor location. For example, if the mobile device100is in a vehicle and communication with the GNSS is blocked, the mobile device100may be in an indoor location such as a parking structure, underground parking lot, or a tunnel. Conversely, if the mobile device100is being used by a pedestrian and communication with the GNSS is blocked, the mobile device100may be in an indoor location such as a home, office building, department store, or other structure. Accordingly, signal strengths of GNSS signals received by the GNSS module124are indicative of whether the mobile device100is in an indoor location or an outdoor location. For example, a signal strength greater than or equal to a threshold may indicate that the mobile device100is in an outdoor location. Alternatively, a signal strength less than the threshold may indicate that the mobile device100is in an indoor location. Or, a wireless communication signal received by the wireless communication module128may be indicative of whether the mobile device100is in an indoor location or an outdoor location. Other data including, for example only, data received from and/or generated by the other sensor modules120may be used to determine whether the mobile device100is in an indoor location or an outdoor location.

Accordingly, the mode selection module136determines whether the mobile device100is being used in a vehicle or by a pedestrian, and whether the mobile device100is in an indoor location and an outdoor location. The mode selection module136selects one of the navigation modes (e.g., the outdoor vehicle mode, the outdoor pedestrian mode, the indoor vehicle mode, the indoor pedestrian mode, and the static mode) based on the determinations. Further, a user of the mobile device100may input a desired navigation mode (e.g., via a user interface140). A mobile device control module144receives the desired navigation mode from the user interface140and provides the desired navigation mode to the mode selection module136. The mode selection module136selects the navigation mode based on the desired navigation mode input by the user. Further, in some implementations, the mobile device control module144and/or another component of the mobile device100generates the desired navigation mode. In other implementations, the mode selection module136selects the navigation mode further based on the integrity information.

Each of the navigation modes corresponds to modes (e.g., active, inactive, sleep and/or reduced power modes) of the navigation devices. For example, in the static mode, only the accelerometer sensor module108is in the active mode, and the remaining navigation devices104are in the inactive, sleep, and/or reduced power modes. In the outdoor vehicle mode and the outdoor pedestrian mode, if the signal quality of the received GNSS signal is “bad” (e.g., less than a first threshold), the GNSS module124is in the active mode and all of the remaining navigation devices104are in the active mode to provide additional navigation data. The resolution of the GNSS module124may also be reduced. If the signal quality of the received GNSS signal is “moderate” (e.g., greater than or equal to the first threshold and less than a second threshold), the GNSS module124is in the active mode or reduced power mode and the remaining navigation devices104are in the sleep or reduced power mode. If the signal quality of the received GNSS signal is “good” (e.g., greater than or equal to the second threshold), the GNSS module124is in the active mode and the remaining navigation devices104are in the inactive mode. Conversely, in the indoor vehicle mode and the indoor pedestrian mode, the GNSS module124is in the inactive mode and the remaining navigation devices104are in the active mode.

The mode selection module136communicates the selected navigation mode to a power management module148and a navigation control module152. The power management module148controls the respective modes of the navigation devices104based on the selected navigation mode. The navigation control module152receives the navigation data and provides integrated navigation data to the mobile device control module144based on the integrated navigation data. For example, the navigation control module152receives the navigation data from each of the navigation devices104in the active mode. The navigation control module152filters and combines the navigation data to generate the integrated navigation data. The integrated navigation data may include, for example only, position data, velocity data, and other location data based on all of the navigation data received from the navigation devices104in the active mode. For example only, the navigation control module152includes a Kalman filter that filters and combines the navigation data.

Referring now toFIG. 2, a method200of operating a mobile device begins at204. At208, the method200determines a velocity of the mobile device using, for example only, data received from an accelerometer. The method200determines whether the velocity is zero at212. If true, the method200selects a static mode at216. If false, the method200determines whether the velocity is greater than or equal to a threshold at220. If true, the method200selects a vehicle mode at224. If false, the method200selects a pedestrian mode at228.

At232, the method200determines whether the mobile device is in an indoor location. For example, the method200determines whether the mobile device is in an indoor location based on a signal strength (e.g., quality) of a GNSS signal received by the mobile device. If true, the method200continues to236. If false, the method200continues to240. At236, the method200selects an indoor vehicle mode. At240, the method200selects an outdoor vehicle mode.

At244, the method200determines whether the mobile device is in an indoor location. For example, the method200determines whether the mobile device is in an indoor location based on a signal strength (e.g., quality) of a GNSS signal received by the mobile device. If true, the method200continues to248. If false, the method200continues to252. At248, the method200selects an indoor pedestrian mode. At252, the method200selects an outdoor pedestrian mode.

At256, the method200selects modes (e.g., active, inactive, and sleep and/or reduced power modes) of navigation devices of the mobile device based on the selected navigation mode. At260, the method200generates integrated navigation data based on navigation data provided by navigation devices in the active mode.

Referring now toFIG. 3, a mobile device300includes navigation devices304. The navigation devices304include sensor modules308(e.g., including, but not limited to, the accelerometer sensor module108, the gyroscope sensor module112, the magnetometer sensor module116, and the other sensor modules120as shown inFIG. 1), a GNSS module312, a wireless communication module316, and a cellular transceiver (XCVR) module320. The cellular transceiver module320transmits and receives cellular signals and may also provide information used for navigation data. For example only, the cellular transceiver module320may provide cell identification (cell-ID) data and/or received signal strength information (RSSI).

The mobile device300includes a data conditioning module324. The navigation devices304provide data as described inFIG. 1to the data conditioning module324. For example, the navigation devices304provide the data to an integrity monitoring module328. The integrity monitoring module328monitors integrity (e.g., reliability) of each of the navigation devices304to determine integrity information for each of the navigation devices304, and selectively provides the data to a data calibration module332. The data calibration module332outputs navigation data corresponding to the data provided by the navigation devices304. For example, the data calibration module332may adjust the navigation data based on calibration data specific to respective ones of the navigation devices304.

A mode selection module336is configured to select and transition between navigation modes of the mobile device300as described above with respect toFIG. 1. The mode selection module336communicates the selected navigation mode to a navigation control module340. The navigation control module340receives the navigation data and provides integrated navigation data as described above with respect toFIG. 1. Those skilled in the art can appreciate that although the mobile device300as shown inFIG. 3omits, for clarity, some of the structure of the mobile device100ofFIG. 1(e.g., the power management module148, the mobile device control module144, and the user interface140), the mobile device300may include any of the structure described inFIG. 1. Conversely, the mobile device100may include any of the structure described inFIG. 3.

The mobile device300includes an aggregator module344that communicates with the data conditioning module324(e.g., via the measurement module332), the navigation control module340, and/or a remote server348. For example, the aggregator module344receives the navigation data from the data conditioning module324. The aggregator module344receives wireless information from the remote server348. The wireless information may correspond to positioning information including, for example only, information about access points (APs) located near (e.g., within connection range of) the mobile device300, a cell-ID, and/or other positioning information. The aggregator module344receives the integrated navigation data from the navigation control module340.

The aggregator module344aggregates the wireless information, the navigation data, and the integrated navigation data and stores aggregated information based on the wireless information, the navigation data, and the integrated navigation data in an infrastructure database352. The aggregator module344provides portions of the aggregated information to the data conditioning module324, the navigation control module340, and the remote server348. For example, the aggregated information may also be stored in and/or received from an infrastructure database356located on the remote server348.

The aggregated information corresponds to a plurality of types of positioning information associated with a location of the mobile device300. For example, if GNSS data is not available (e.g., the mobile device300is in an indoor location), the aggregated information may be used to determine the location of the mobile device300. In particular, the aggregated information may include wireless infrastructure info associated with wireless communication and cellular communication. For example, the wireless infrastructure information associated with the wireless communication may include, but is not limited to, locations of known APs within range of the mobile device300(e.g., AP coordinates) and corresponding service set identifiers (SSIDs), media access controller (MAC) addresses, and/or received channel power indicators (RCPIs). The wireless infrastructure info associated with the cellular communication may include, but is not limited to, a Cell-ID, RSSI, and/or cell tower coordinates. The aggregated information may be stored in either of, and/or shared between, the infrastructure database352and the infrastructure database356.

If the mobile device300is wirelessly connected to an AP360(e.g., via the wireless communication module316), the mobile device300may retrieve wireless infrastructure information associated with the AP360and provide the wireless infrastructure information to the navigation control module340and/or the measurement module332. For example, a location of the AP360is indicative of a location of the mobile device300. If the location of the AP360(e.g., AP coordinates) is known, then various other information can be used to determine the location of the mobile device300. For example, the RCPI associated with the connection between the mobile device300and the AP360is indicative of a distance between the mobile device300and the AP360. Accordingly, if the location of the AP360is known, then the location of the mobile device300can be approximated using the RCPI.

The infrastructure database352(and/or the infrastructure database356) may store, for each known AP, wireless communication position information such as a MAC address, corresponding x, y, and z coordinates, and a corresponding wireless propagation (or channel) model A, n. For example, the infrastructure database352stores a lookup table indexed by MAC addresses. If the wireless device300is connected to an AP having a particular MAC address, the x, y, and z coordinates and the wireless propagation model A, n associated with the MAC address are retrieved accordingly.

The wireless propagation model A and n correspond to wireless propagation behavior for signals transmitted from the corresponding AP. For example, A corresponds to transmission power associated with the AP, and n corresponds to a propagation constant associated with the AP. The propagation constant may correspond to whether the AP is in an indoor location or an outdoor location, whether the AP is embedded (e.g., in a wall), and other factors that affect transmission of signals from the AP. Accordingly, the location of the mobile device300can be approximated using, in addition to the RCPI, the x, y, and z coordinates and the propagation model A, n. Further, if the x, y, and z coordinates are not known, the x, y, and z coordinates can be determined using the propagation model and a known location of the mobile device300.

Similarly, the infrastructure database352(and/or the infrastructure database356) may store, for each known cell (i.e., each cell in a cellular communication system), cellular position information indexed by a mobile country code (MCC), a mobile network code (MNC), a local area code (LAC) and/or a cell ID. For example, the infrastructure database352stores a lookup table indexed by MCC, MNC, and cell ID. If the wireless device300is in a cell having a particular cell ID, the cellular position information is retrieved accordingly. The cellular position information includes, for example only propagation (or channel) models based on x, y, and z coordinates and a timing offset t for the cell, transmission power A of a corresponding cell tower, and directional info h (e.g., a direction of the cell tower with respect to the mobile device300). Accordingly, the location of the mobile device300can be approximated using the propagation models and the x, y, and z coordinates, the timing offset t, the transmission power A, and the directional info h.

Accordingly, if GNSS data is not available to the mobile device300, the navigation control module340can use at least the aggregated information to determine the integrated navigation data. Further, if there is no AP within range, the aggregated information may still include cellular position information. Conversely, if the mobile device300is not receiving a cellular signal, the aggregated information may still include wireless communication position information.

The remote server348(and/or the aggregator module344) may also include a sensor calibration module364that provides sensor calibration data to the mobile device (e.g., the measurement module332). The sensor calibration data corresponds to, for example, calibration parameters to the data provided by the sensor modules308. For example, the calibration parameters may correspond to a particular location of the mobile device300. The measurement module332uses the calibration parameters to adjust the sensor data accordingly.

For example, as described above, barometric pressure is indicative of an altitude of the mobile device300. However, a ground level in different locations may have different altitudes (e.g., with respect to sea level). Accordingly, barometric pressure at a ground level may vary in different locations, and the calibration parameters for a barometer of the mobile device300correct for differences in ground level by location. As another example, with respect to a magnetometer, an declination angle between true north and magnetic north, as well as local magnetic strength, vary by location. Accordingly, readings by the magnetometer may vary in different locations, and calibration parameters for the magnetometer of the mobile device300correct by location. In this manner, if the location of the mobile device300is known (e.g., according to GNSS data, wireless communication data, and/or the aggregation information), the sensor calibration module364provides the calibration parameters corresponding to each of the sensor modules308based on the known location. The calibration parameters may also include and/or be based on, for example only, biases, scale factors, temperature factors, and/or error modeling information (e.g., white noise, random walk, an nth order Guass-Markov process, etc.).

Referring now toFIG. 4, an example wireless infrastructure information method400begins at404. At408, the method400receives, from navigation devices, navigation data including, but not limited to, data input from various sensors, GNSS data, and wireless communication data. At412, the method400determines integrated navigation data based on the received navigation data. At416, the method400determines whether the integrated navigation data is valid. For example, the method400determines whether the navigation data was collected for a sufficient period and/or whether sufficient navigation data was received from the navigation devices. If true, the method400continues to420. If false, the method400continues to408.

At420, the method400calculates coordinates of an AP connected to a mobile device using a wireless propagation model based on wireless infrastructure information. For example, the model may correspond to RCPI=−(10*n*log 10 d+A), where n is propagation constant, d is a distance between the wireless device and the AP, and A is a signal strength constant. Accordingly, the method400calculates the coordinates of the AP using the model and a known location of the mobile device. At424, the method400determines whether the calculated coordinates are valid. If true, the method400continues to428. If false, the method400continues to408. At428, the method400updates an infrastructure database using the calculated coordinates. The method400ends at432.

Referring now toFIG. 5, an example magnetometer calibration method500begins at504. At508, the method500generates initial data (e.g., a sensed position) using the magnetometer. At512, the method500retrieves calibration parameters from an infrastructure database based on a location of the mobile device. For example, the calibration parameters may include adjustments based on a local declination angle and a local magnetic field strength. At516, the method500performs a calibration on the initial data using the calibration parameters. At520, the method500determines whether a change in the sensed position due to the calibration is greater than or equal to a threshold. If true, the method500continues to524. If false, the method500continues to508.

At524, the method500performs online calibration (e.g., calibration at a remote server) based on the initial data and applies the calibration to the data. For example, the calibration may be based on H′=−arc tan(−cos γ*mx+sin γ*mz)/(sin θ sin γ*mx+cos θ*my−sin θ cos γ*mz), where θ is a pitch angle of the mobile device, γ is a roll angle of the mobile device, m corresponds to x, y, and z coordinates, and H′ is a magnetic north heading. Further, H=H′+α, where H is a true north heading and α is a declination angle. At528, the method500determines whether the calibrated data is valid. If true, the method500continues to532. If false, the method500continues to520. At532, the method500updates calibration values stored on the mobile device based on the online calibration. The method500ends at536.

Referring now toFIG. 6, an example barometer calibration method600begins at604. At608, the method600generates initial data (e.g., a sensed height/altitude of the mobile device) using the barometer. At612, the method600retrieves calibration parameters from an infrastructure database based on a location of the mobile device. For example, the calibration parameters may include adjustments based on a local air pressure. At616, the method600performs a calibration on the initial data using the calibration parameters. At620, the method600determines whether height data provided by a GNSS is available. If true, the method600continues to624. If false, the method600continues to608.

At624, the method600performs online calibration (e.g., calibration at a remote server) based on the initial data and applies the calibration to the data. For example, the calibration may be based on the initial data and the GNSS height data. For example, the method600performs the calibration based on H=T/(−dT/dH)*[1−(P/P0)(−dT/dH)*R/g], where T is a measured temperature (e.g., Kelvin), dT/dH is a temperature gradient (e.g., −6.5, Kelvin/km), P is a pressure sensed by the barometer (e.g., mbar), P0is standard atmospheric pressure (e.g., 1013.25 mbar), R is a gas constant (e.g. 287.052, m2/s2/Kelvin), and g is gravity (m/s2).

At628, the method600determines whether the calibrated data is valid. If true, the method600continues to632. If false, the method600continues to620. At632, the method600updates calibration values stored on the mobile device based on the online calibration. The method600ends at636.

Referring now toFIG. 7, an example gyroscope (and/or accelerometer) calibration method700begins at704. At708, the method700generates initial data using the gyroscope according to initial calibration parameters. At712, the method700determines whether the mobile device is static (e.g., in a static mode). If true, the method700performs calibration of the gyroscope according to zero-rate output measurement for a static device at716. If false, the method700continues to720. At720, the method700determines whether other navigation data is available. If true, the method700continues to724. If false, the method700continues to712.

At724, the method700performs online calibration (e.g., estimation sensor parameters in Kalman filter) based on the initial data and applies the calibration to the data. For example, the calibration may be based on the initial data and further based on data from other sensors, a GNSS module, and/or a wireless communication module. At728, the method700determines whether the calibrated data is valid. If true, the method700continues to732. If false, the method700continues to724. At732, the method700updates calibration values stored on the mobile device based on the online calibration. The method700ends at736.

Referring now toFIG. 8, another implementation of a mobile device800is shown. The mobile device800implements frequency and/or time aiding. For example, the mobile device800provides the frequency and/or time aiding from a cellular base station804to a GNSS module808via a processor module812(e.g., a communication processor, an application processor, and/or a combined communication/application processor). For example only, the cellular transceiver module320as shown inFIG. 3may include the processor module812. The mobile device800communicates with the cellular base station804via an antenna816. For example, the processor module812, via the antenna816, transmits cellular signals to and receives cellular signals from an antenna820of the cellular base station804. Similarly, the GNSS module808receives GNSS signals via an antenna824.

The processor module812provides data (e.g, data received via the cellular signals) to the GNSS module808. For example, the processor module812provides the data via data lines (e.g., universal asynchronous receiver/transmitter, or UART, lines)828. The data may include data packets (i.e., frames) received via the cellular signals. Further, the processor module812according to the principles of the present disclosure provides frequency and time aiding information including frequency information (e.g., a frequency aiding clock signal832) and time information (e.g., a time pulse836). For example only, the time pulse836is a pulse signal having a configurable pulse width. The GNSS module808uses the frequency and time aiding information to improve communication performance of the GNSS module808. For example, the GNSS module808may use the frequency and time aiding information to narrow a GNSS search range, reducing a time to first fix (TTFF), and improve receiver sensitivity. The mobile device800may implement the frequency and time aiding information regardless of whether the mobile device800is registered for assisted GPS (A-GPS) service.

The cellular base station804operates according to a clock source840located within the cellular base station804. Accordingly, the cellular base station804communicates with the mobile device800using the clock source located within the cellular base station804. Conversely, the GNSS module808operates according to a local clock source844. Typically, the clock source840is significantly more stable (i.e., more accurate) than the local clock source844. For example, the cellular base station804may require a clock accuracy of 0.05 parts per million (ppm), and in a worst case scenario the clock source840may have an accuracy of 0.1 ppm. Conversely, the local clock source844may have an accuracy of 0.5 ppm.

The processor module812communicates with the cellular base station804at a frequency of the clock source840, and recovers the frequency from communication with the cellular base station804. For example only, the frequency may be approximately 26 MHz. The processor module812generates the frequency aiding clock signal832at the recovered frequency. Accordingly, the frequency aiding clock signal832is synchronized to the frequency of the clock source840.

The GNSS module808uses the frequency aiding clock signal832as a reference clock signal to compensate for (e.g. correct) inaccuracies in the local clock source844. For example, if the frequency associated with the cellular base station804is known, then the frequency of the frequency aiding clock signal832is also known, and the GNSS module808can use the frequency aiding clock signal832as a reference clock signal having a known frequency. In other words, the GNSS module808performs frequency aiding (e.g., calibrate the frequency of the local clock source844) using the frequency aiding clock signal832.

The GNSS module808may store information indicating known frequencies of respective cellular base stations. For example, cellular base stations may be indexed by a base station number (i.e., ID) with a respective frequency in a table. If the mobile device800is communicating with a cellular base station in the table, then the GNSS module808retrieves the associated known frequency from the table and uses the frequency aiding clock signal832and the known frequency to perform frequency aiding. For example, the cellular base station804may be associated with a frequency of 26.00001 MHz. Another cellular base station may be associated with a frequency of 26.00000 MHz. Further, even if the cellular base station804is not in the table, the GNSS module808may assume a frequency (e.g., a nominal frequency of 26.00000 MHz) for the cellular base station804with accuracy within 0.2 ppm.

Accordingly, when GNSS communication is available (i.e., a GNSS signal is being received), the location of the mobile device800can be determined, and therefore a location and identification of the cellular base station804, as well as an associated frequency of the clock source840, can be determined. The GNSS module808updates and maintains the table with the base station identification and associated frequency. Conversely, when GNSS communication is not available but a cellular signal from the cellular base station804is available, the GNSS module808uses the frequency aiding clock signal832, the associated known frequency, and/or an assumed nominal frequency for frequency aiding.

The GNSS module808uses the time pulse836and cellular data frames received from the processor module812to perform time aiding. In particular, the GNSS module uses the time pulse836and the data frames to determine a time interval (e.g., a one-frame time interval) associated with one cellular frame. The GNSS module808may store a table indexed by a base station number with a respective one-frame time interval. For example, when GNSS communication is available, the GNSS module808uses the time pulse836to measure the one-frame time interval of the cellular base station804, and updates the table accordingly. Conversely, when GNSS communication is not available, the GNSS module808uses the stored base station number and respective one-frame time interval to perform time aiding.

Referring now toFIGS. 8 and 9, the GNSS module808transmits a timing request to the processor module812at time t0. In response to the timing request, the processor module812transmits a first time pulse P1 at a time t1. The processor module812then transmits a cellular data frame at t2. The cellular data frame includes information such as a corresponding frame number and/or a cell base station ID. The frame number may include a time stamp from the cellular base station804. Subsequent to receiving the cellular data frame, the GNSS module808transmits another timing request at t3, followed by the processor module812transmitting a second time pulse P2 at t4. The GNSS module determines the one-frame time interval based on the time pulses t4 and t1. Specifically, the one-frame time interval corresponds to a time interval between t1 and t4, or t4-t1. Accordingly, with the one-frame time interval known, the GNSS module808performs time aiding using the frame number (i.e., time stamp) and the one-frame time interval associated with cellular data frames being received from the processor module812.

The GNSS module808may transmit a timing request to the processor module804prior to transitioning to a sleep mode and store a GPS time and a first frame number of a cellular data frame received in response to the timing request. After transitioning from the sleep mode back to the active mode, the GNSS module808transmits another timing request, and receives another cellular data frame and a corresponding second frame number. The GNSS module808uses the first frame number, the second frame number, the GPS time, and the one-frame time interval to determine a GPS time associated with the transition back to the active mode (i.e., the GPS time at wakeup). Or, the processor module812may transmit the time pulse as a wakeup signal.

The GNSS module808may send a request to the processor module812to transmit the frequency aiding clock signal832and/or the time pulse836. For example, the GNSS module808may send the request when the GNSS module808is in a sleep mode. Or, the processor module812may provide the frequency aiding clock signal832and/or the time pulse836as a wakeup signal to cause the GNSS module808to transition from the sleep mode to an active mode.

The apparatuses and methods described herein may be partially or fully implemented by one or more computer programs executed by one or more processors. The computer programs include processor-executable instructions that are stored on at least one non-transitory tangible computer readable medium. The computer programs may also include and/or rely on stored data. Non-limiting examples of the non-transitory tangible computer readable medium include nonvolatile memory, volatile memory, magnetic storage, and optical storage.