Aspects of the disclosure relate to wireless packet scheduling for satellite positioning system coexistence. Interference can occur when a mobile device attempts to simultaneously receive satellite positioning system (SPS) signals and transmit wireless signals. Such interference is referred to as a “desense” problem. That is, the mobile device's reception of the SPS signal is impaired, or desensed, by interference arising from the transmission of wireless signals from the same mobile device. The interference signal can be either an inter-modulation product of the wireless signal or the wireless signal itself. There is a need to address issues associated with the transmission of wireless signals and the potential interference that can result and affect the reception of SPS signals
In one example, a method is disclosed for managing wireless transmission duty cycle on a mobile device to mitigate interference during reception of one or more satellite-based positioning signals and transmission of one or more wireless signals. The method includes (1) determining a first transmission duty cycle, the first transmission duty cycle reflecting a proportion of a time duration occupied by transmission of the one or more wireless signals and (2) delaying transmission of a first wireless packet or transmitting at least one portion of the first wireless packet via the one or more wireless signals, based on a comparison of the first transmission duty cycle and a duty cycle threshold. In one scenario of the example, transmission of the first wireless packet is delayed, in response to the first transmission duty cycle being greater than or equal to the duty cycle threshold. In another scenario of the example, the at least one portion of the first wireless packet is transmitted, in response to the first transmission duty cycle being less than the duty cycle threshold.
Aspects of the disclosure are illustrated by way of example. In the accompanying figures, like reference numbers indicate similar elements.
Several illustrative embodiments will now be described with respect to the accompanying drawings, which form a part hereof. While particular embodiments, in which one or more aspects of the disclosure may be implemented, are described below, other embodiments may be used and various modifications may be made without departing from the scope of the disclosure or the spirit of the appended claims.
A common problem encountered by a mobile device having wireless communication capabilities as well as SPS capabilities is the coexistence of wireless communication and SPS systems within the mobile device. In particular, interference or “desensing,” can occur when a mobile device attempts to simultaneously transmit wireless signals and receive SPS signals. The transmission of the wireless signals and/or an intermodulation product arising from such transmission can lead to interference that impacts the proper reception of the SPS signals. For example, the interference may cause a failure to acquire one or more of the SPS signals, corruption of the SPS signals, reduction in the number/frequency of successfully received SPS signals such that SPS-based positioning is degraded, etc. Embodiments of the present invention are directed to controlling the transmission of wireless signals and reception of the SPS signals by the mobile device in order to address such “desensing” issues.
Mobile device 105 is able to perform satellite-based positioning by receiving SPS signals from one or more satellites. Such satellite-based positioning techniques are well-known and only briefly described below. As shown here, mobile device 105 receives SPS signals 110, 115, and 120 from satellites 125, 130, and 135, respectively. Typically, each of the SPS signals 110, 115, and 120 would include timing information relating to when the SPS signal was transmitted from the respective satellite. Each SPS signal may also include ephemeris information which can be used to determine the location of the satellite at the time the SPS signal is transmitted. Mobile device 105 is able to determine when it receives each of the SPS signals 110, 115, and 120. The transmission time and reception time of each SPS signal may be aligned on a common timing reference, such as a common clock, known to the mobile device 105. By taking the difference between the reception time and transmission time, mobile device 105 may compute the “flight time” associated with each SPS signal, for it to travel from the respective satellite to mobile device 105. The flight time can then be used to compute the distance between each satellite and mobile device, taking into account the speed of light. Once the distance between each satellite and the mobile device is found, trilateration may be used to compute the location of mobile device 105, based on the known location of each satellite and the distance between each satellite and mobile device 105.
In addition to satellite-based positioning, a significant category of functions performed by mobile device 105 relates to wireless communications. Wireless communications may serve as an important link in connecting mobile device 105 over private and/or public networks with other devices such as servers and other user equipment. This may include communication over various types of wireless networks, including wireless local area networks (WLAN) and wide area networks (WAN), among others. Examples of WLANs may be different types of WiFi networks, such as those implemented based on various 802.11 standards. The example in
In the example shown in
For example, if mobile device 105 simultaneously attempts to receive SPS signals such as 110, 115, and 120 and transmit wireless signals such as 140 and 150, interference may occur to “desense” the proper reception of the SPS signals. This can occur if received SPS signals 110, 115, and 120 and transmitted wireless signals 140 and 150 utilize common or overlapping frequencies. This can also occur even when received SPS signals 110, 115, and 120 and transmitted wireless signals 140 and 150 do not utilize common or overlapping frequencies, but intermodulation products introduce interference.
As shown in
Processor system 205 may also include a WLAN baseband (WLAN BB) unit 245. WLAN BB unit 245 is connected to and communicates baseband data (i.e., bits) with a WLAN radio frequency (WLAN RF) unit 250 residing in WLAN transceiver 210. In the transmit direction, WLAN RF unit 250 modulates and sends RF signals embodying WLAN communications to one or more antennas. In the receive direction, WLAN RF unit 250 receives and demodulates RF signals embodying WLAN communications from one or more antennas. For example, these RF signals may occupy frequencies at 2.4 GHz and/or 5 GHz in the frequency spectrum, which are known frequencies for WLAN signals.
Processor system 205 may also include a WAN baseband (WAN BB) unit 255. WAN BB unit 255 is connected to and communicates baseband data with a WAN radio frequency (WAN RF) unit 260 residing in WAN transceiver 215. In the transmit direction, WAN RF unit 260 modulates and sends RF signals embodying WAN communications to one or more antennas. In the receive direction, WAN RF unit 260 receives and demodulates RF signals embodying WAN communications from one or more antennas. For example, these RF signals may occupy frequencies at 800 MHz, 1.7 GHz and/or 1.9 GHz in the frequency spectrum, which are known frequencies for WAN signals.
Furthermore, processor system 205 may include a GPS baseband (GPS BB) unit 265. GPS BB unit 265 is connected to and communicates baseband data with a GPS radio frequency (GPS RF) unit 270 residing in GPS receiver 220. GPS RF unit 270 may receive GPS signals from one or more antennas. These GPS signals may occupy frequencies at 1.5 and/or 1.6 GHz in the frequency spectrum, which are known frequencies for GPS signals or other types of SPS signals. While a GPS system is depicted in the figure, different types of SPS systems may be used in mobile device 105 in accordance with various embodiments of the invention.
As mentioned previously, interference or “desensing” can occur when mobile device 105 attempts to simultaneously transmits wireless signals (e.g., one or more WLAN and/or WAN signals) and receive SPS signals (e.g., GPS signals). This can result if the wireless signals and the SPS signals utilize common or overlapping frequencies. Interference can also result if the wireless signals and the SPS signals do not utilize common or overlapping frequencies, but intermodulation products (IM) introduce interference. Example frequencies that may be utilized by various type of wireless signals depicted in
For illustrative purposes, listed below are two potential IM products that may result from different combinations of these WAN and WAN signals:
As can be seen, even though WLAN signals at 2.4 GHz or 5 GHz and WAN signals at 800 MHz or 1.7/1.9 GHz may not necessarily utilize the same frequency as GPS signals at 1.5/1.6 GHz, it is possible for IM products resulting from the mixing of such WLAN and WAN signals to land in the same frequencies utilized by GPS signals. Such IM products may thus interfere with and “desense” the proper reception of the GPS signals. While the two examples of IM products described above result from the transmission of signals belonging to different types of system (WAN and WLAN), it should be understood that IM products may also result from the transmission of signals belonging to the same type of system (e.g., WAN only).
According to various embodiments of the invention, mobile device 105 may control the timing of its wireless signal transmissions and SPS receptions, to avoid such interference situations. In particular, mobile device 105 may avoid the “desense” problem by implementing both (1) SPS RX blanking and (2) a wireless TX packet scheduling method.
Referring now to process 300 for SPS RX blanking shown in
Furthermore, the transmit power level of the wireless signal(s) may be considered in the determination made at block 305. In other words, transmission of one or more wireless signals may or may not be considered a known TX event associated with “desensing,” depending on the power level at which the wireless signal(s) are transmitted. In the case of two or more wireless signals forming an intermodulation product, it may be the case that an interference condition is only met when both (or more than two) of the wireless signals associated with a potential intermodulation product are transmitted at a power level above a certain power level threshold. For example, the interference condition may correspond to the simultaneous transmission of a WLAN signal above a particular power level threshold and a WAN signal at above a particular power level threshold.
If a known TX event associated with “desensing” is about to occur, the process continues to block 310, where SPS RX blanking is performed. Here, the duration of the problematic TX event is likely to be known, and blanking may be performed for such duration. Otherwise, if no known TX event associated with “desensing” is about to occur, the process continues to block 315.
At block 315, the process involves determining whether an interference event is detected. Here, the interference event refers to an event that is actually detected as result of interference occurring (as opposed to just the transmission of certain wireless signals or combination of wireless signals associated with desensing). This can be referred to as a reactive approach. Examples of such a detected interference event may include the failure to acquire one or more of the SPS signals, the signal strength of one or more SPS signals falling below a certain level, the detection of signal spurs or other interference within the receive frequency band of the one or more SPS signals, etc. If an interference event is detected, the process continues to block 320, where SPS RX blanking is performed. Here, SPS RX blanking may be performed until the interference condition is no longer detected. If an interference event is not detected or no longer detected, the process returns to block 305. While process 300 illustrates the use of both an a priori approach and a reactive approach in combination, either approach may be used alone for triggering SPS RX blanking, according to an embodiment of the invention.
To implement SPS RX blanking, a mobile device such as mobile device 105 may utilize processors such as CPU cores 225 and/or 230 in conjunction with GPS BB unit 265. For example, CPU cores 225 and/or 230 may simply ignore SPS data bits received from GPS BB unit 265 during a period of blanking. As another example, CPU cores 225 and/or 230 may instruct GPS BB unit 265 to stop sending SPS data bits during a period of blanking and restart the sending of SPS data bits once the period of blanking has concluded. Blanking can also be implemented at a lower level, such as at the demodulation or RF level. For example, CPU cores 225 and/or 230 may instruct GPS BB unit 265 to idle or turn off certain operations of GPS RF unit 270 during a period of blanking. In response, GPS RF unit 270 may stop demodulating SPS signals and/or turn off other components in the receive chain of GPS RF unit 270. Turning off certain components may have the benefit of saving power during blanking. Different implementations may be chosen depending on system requirements.
Referring to process 350 for TX packet scheduling in
The example WLAN TX packet scheduling method described above ensures that in any given 20 ms period, the duty cycle of WLAN transmission is no more than 50%. This guarantees that at least half of the time in any given 20 ms period would be available for reception of SPS signals that are not subject to “desensing.” In practice, SPS systems do not require reception of SPS signals 100% of the time. Receiving SPS signals at least 50% of the time within any given 20 ms period may be acceptable, especially if it is guaranteed that the SPS signals that are received will not be “desensed.” The 50% duty cycle translates to at most a 3 dB decrease in the amount of SPS signal received.
The needs of WLAN packet transmission are also well-met in the above example. Typically, the transmission of WLAN packets from the mobile device is intermittent in nature. These are transmissions, such as web page requests, that are sent in the uplink direction from the mobile device to the base station (e.g., access point, cell tower, etc.). Thus, these WLAN packet transmissions may not be expected to be sustained transmissions. Furthermore, it may be that a requested WLAN TX packet is scheduled immediately. That is, when transmission of the WLAN packet is requested, the duty cycle over the past 20 ms may very well be less than 50%, so the packet request is likely to be scheduled and not delayed. Also, it is likely that the length of the WLAN packet requested is not long enough to cause the duty cycle to exceed 50% over the past 20 ms. In other words, the WLAN packet is unlikely to be truncated. Thus, a WLAN TX packet scheduling method such as the one described above can often times be expected to only minimally affect the transmission of WLAN packets, but at the same time, it provides duty cycle guarantees for purposes SPS blanking.
It should be noted that the duty cycle threshold of 50% is described here for illustrative purposes. The threshold can be set to a different percentage. It can also be expressed in terms other than a percentage, such as a ratio. Furthermore, the time duration over which the TX duty cycle is measured is described as 20 ms for illustrative purposes, as well. A different time duration may be used. The time duration may also be expressed in units other than milliseconds. For example, it may be expressed in terms of clock cycles.
To implement the wireless TX packet scheduling method, a mobile device such as mobile device 105 may utilize CPU cores 225 and/or 230 as well as WLAN BB unit 245. For example, WLAN BB unit 245 may be primarily responsible for executing blocks 355 through 370. Thus. WLAN BB unit 245 may keep track of the timing of all WLAN packets, as well as the current WLAN TX duty cycle. When WLAN BB unit 245 receives a request to transmit a WLAN packet, it may either delay the WLAN packet until the next TX opportunity or schedule the WLAN packet for transmission, at an appropriate packet length so as not to exceed the 50% level (as discussed below with regard to
The instantaneous value of any point on plot 700 depends on WLAN TX activity over the past 20 ms. Thus, at time 705, the instantaneous value of plot 700 depends on the WLAN TX activity over the 20 ms time duration just prior to time 705. Similarly, at time 710, the instantaneous value of plot 700 depends on the WLAN TX activity over the 20 ms time duration just prior to time 710. Note that the instantaneous value of plot 700 prior to time 710 depends at least partially on WLAN TX activity not visible in
While not explicitly shown in the figures, other types of processing devices such as one or more digital signal processors (DSPs) and/or graphics processing units (GPUs) may be used either in addition to or as alternatives for devices such as CPU core 225 and CPU core 230, for performing operations such as those described in
Having described multiple aspects of techniques for wireless packet scheduling for satellite positioning system coexistence, an example of a computing device in which various aspects of the disclosure may be implemented may now be described with respect to
The computing device 900 is shown comprising hardware elements that can be electrically coupled via a bus 905 (or may otherwise be in communication, as appropriate). The hardware elements may include one or more processors 910, including without limitation one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like); one or more input devices 915, which can include without limitation a camera, a mouse, a keyboard and/or the like; and one or more output devices 920, which can include without limitation a display unit, a printer and/or the like.
The computing device 900 may further include (and/or be in communication with) one or more non-transitory storage devices 925, which can comprise, without limitation, local and/or network accessible storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, a solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like. Such storage devices may be configured to implement any appropriate data storage, including without limitation, various file systems, database structures, and/or the like.
The computing device 900 might also include a communications subsystem 930, which can include without limitation a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device and/or chipset (such as a Bluetooth device, a WiFi device, a WiMax device, cellular communication facilities, etc.), and/or the like. The communications subsystem 930 may permit data to be exchanged with a network (such as the network described below, to name one example), other computing systems, and/or any other devices described herein. In many embodiments, the computing device 900 may further comprise a non-transitory working memory 935, which can include a RAM or ROM device, as described above.
The computing device 900 also can comprise software elements, shown as being currently located within the working memory 935, including an operating system 940, device drivers, executable libraries, and/or other code, such as one or more application programs 945, which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein. Merely by way of example, one or more procedures described with respect to the method(s) discussed above, for example as described with respect to
A set of these instructions and/or code might be stored on a computer-readable storage medium, such as the non-transitory storage device(s) 925 described above. In some cases, the storage medium might be incorporated within a computing device, such as computing device 900. In other embodiments, the storage medium might be separate from a computing device (e.g., a removable medium, such as a compact disc), and/or provided in an installation package, such that the storage medium can be used to program, configure and/or adapt a general purpose computer with the instructions/code stored thereon. These instructions might take the form of executable code, which is executable by the computing device 900 and/or might take the form of source and/or installable code, which, upon compilation and/or installation on the computing device 900 (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.) then takes the form of executable code.
Substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.), or both. Further, connection to other computing devices such as network input/output devices may be employed.
Some embodiments may employ a computing device (such as the computing device 900) to perform methods in accordance with the disclosure. For example, some or all of the procedures of the described methods may be performed by the computing device 900 in response to processor(s) 910 executing one or more sequences of one or more instructions (which might be incorporated into the operating system 940 and/or other code, such as an application program 945) contained in the working memory 935. Such instructions may be read into the working memory 935 from another computer-readable medium, such as one or more of the non-transitory storage device(s) 925. Merely by way of example, execution of the sequences of instructions contained in the working memory 935 might cause processor(s) 910 to perform one or more procedures described herein, for example the procedures described with respect to
The terms “machine-readable medium” and “computer-readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. In an embodiment implemented using the computing device 900, various computer-readable media might be involved in providing instructions/code to processor(s) 910 for execution and/or might be used to store and/or carry such instructions/code (e.g., as signals). In many implementations, a computer-readable medium is a physical and/or tangible storage medium. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical and/or magnetic disks, such as the non-transitory storage device(s) 925. Volatile media include, without limitation, dynamic memory, such as the working memory 935. Transmission media include, without limitation, coaxial cables, copper wire and fiber optics, including the wires that comprise the bus 905, as well as the various components of the communications subsystem 930 (and/or the media by which the communications subsystem 930 provides communication with other devices). Hence, transmission media can also take the form of waves (including without limitation radio, acoustic and/or light waves, such as those generated during radio-wave and infrared data communications).
In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media may include computer data storage media. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementation of the techniques described in this disclosure. “Data storage media” as used herein refers to manufactures and does not refer to transitory propagating signals. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
The code 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 circuitry. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or incorporated in a combined codec. Also, the techniques could be fully implemented in one or more circuits or logic elements.
The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a codec hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and/or firmware stored on computer-readable media.
The term “network” and “system” may be used interchangeably herein throughout the present disclosures. A wireless wide area network may be a Code Division Multiple Access (CDMA) network, a Time Division Multiple Access (TDMA) network, a Frequency Division Multiple Access (FDMA) network, an Orthogonal Frequency Division Multiple Access (OFDMA) network, a Single-Carrier Frequency Division Multiple Access (SC-FDMA) network, and so on. A CDMA network may implement one or more radio access technologies (RATs) such as CDMA2000, Wideband CDMA (W-CDMA), to name just a few radio technologies. Here, CDMA2000 may include technologies implemented according to IS-95, IS-2000, and IS-856 standards. A TDMA network may implement Global System for Mobile Communications (GSM), Digital Advanced Mobile Phone System (D-AMPS), or some other RAT. GSM and W-CDMA are described in documents from a consortium named “3rd Generation Partnership Project” (3GPP). CDMA2000 is described in documents from a consortium named “3rd Generation 10 Partnership Project 2” (3GPP2). 3GPP and 3GPP2 documents are publicly available. A WLAN may include an IEEE 802.11x network, and a WPAN may include a Bluetooth network, an IEEE 802.15x, for example. Such location determination techniques described herein may also be used for any combination of WWAN, WLAN, wireless personal area network (PAN), wireless metropolitan area network (MAN), and/or the like. Accordingly, other systems and networks may be apparent to persons having ordinary skill in the art, and embodiments are not so limited.
A SPS typically includes a system of transmitters positioned to enable entities to determine their location on or above the Earth based, at least in part, on signals received from the transmitters. Such a transmitter typically transmits a signal marked with a repeating pseudo-random noise (PN) code. In a particular example, such transmitters may be located on Earth orbiting space vehicles (SV). For example, a SV in a constellation of Global Navigation Satellite System (GNSS) such as Global Positioning System GPS. Global Navigation Satellite System (GLONASS), etc. may transmit a signal marked with a PN code that is distinguishable from PN codes transmitted by other SVs in the constellation.
In accordance with certain aspects, the techniques presented herein are not restricted to global systems (e.g., GNSS) for SPS. For example, the techniques provided herein may be applied to or otherwise adapted for use in various regional systems, such as, e.g., Quasi-Zenith Satellite System (QZSS) over Japan, Indian Regional Navigational Satellite System (IRNSS) over India, etc., and/or various augmentation systems (e.g., an Satellite Based Augmentation System (SBAS)) that may be associated with or otherwise adapted for use with one or more global and/or regional navigation satellite systems. By way of example but not limitation, an SBAS may include an augmentation system(s) that provide integrity information, differential corrections, etc., such as, e.g., Wide Area Augmentation System (WAAS), European Geostationary Navigation Overlay Service (EGNOS), Multi-functional Satellite Augmentation System (MSAS), GPS Aided Geo Augmented Navigation or GPS and Geo Augmented Navigation system (GAGAN), and/or the like. Such SBAS may, for example, transmit SPS and/or SPS-like signals that may also be interfered with by certain wireless communication signals, etc. Thus, as used herein, an SPS may include any combination of one or more global and/or regional navigation satellite systems and/or augmentation systems, and SPS signals may include SPS, SPS-like, and/or other signals associated with such one or more SPS.
Various examples have been described. These and other examples are within the scope of the following claims.