As wireless technologies proliferate, mobile wireless devices incorporate systems based on a multiplicity of different wireless standards. For example, a cellular telephone can accommodate a cellular network (e.g., Universal Mobile Telecommunications System), a wireless local area network (“WLAN”), such as network based on the IEEE 802.11 standard, and a wireless personal area network (“WPAN”) (e.g., a BLUETOOTH network).
Some of the various wireless standards adopted for use in mobile devices use adjacent and/or overlapping portions of the wireless spectrum. For example, both BLUETOOTH networks and IEEE 802.11b/g/n networks use the 2.45 gigahertz band.
A system and method for using partially received packets in coexisting networks. In one embodiment, a wireless receiver includes an interference detector and a packet validator. The interference detector is configured to determine that time multiplexing of a coexisting wireless network interferes with reception of a packet by the wireless receiver. The packet validator is configured to identify a type of the packet and useable data values of the packet when a partial packet is received due to the time multiplexing. The packet validator is configured to identify the type and useable data values of the packet based on a packet signature stored in the wireless receiver.
In another embodiment, a method includes identifying, by a wireless device, a packet, received via a wireless network, whose reception is interfered with by time multiplexing of a coexisting wireless network. The interference results in reception of a partial packet. The wireless device compares the partial packet to a stored packet signature. A packet type and useable data values of the partial packet are identified by the wireless device based on the comparing.
In a further embodiment, a wireless transmitter includes a monitoring system, a performance analyzer, and a transmission controller. The monitoring system is configured to determine whether a transmission by the transmitter on a wireless network will be interfered with by time multiplexing of a coexisting wireless network. The performance analyzer is configured to determine whether transmission of partial packets on the wireless network is beneficial to performance of the wireless network. The transmission controller is configured to transmit a packet that the monitoring system determines will be interfered with based on the performance analyzer determining that transmissions of partial packets are beneficial to performance of the wireless network.
In yet another embodiment, a system includes a first wireless device and a second wireless device. The first wireless device is configured to communicate via a first wireless network. The second wireless device is configured to communicate with the first wireless device via the first wireless network, and configured to communicate with a third wireless device via a second wireless network. The second wireless device includes a partial packet recognition system. The partial packet recognition system is configured to validate a partial packet received from the first wireless device, and to identify fields of the portion of the packet containing useable information. Time multiplexing of the first and second networks inhibits reception of a full packet comprising the partial packet.
For a detailed description of exemplary embodiments of the invention, reference will now be made to the accompanying drawings in which:
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . . ” Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections. The term “partial packet” refers to a truncated, incomplete or fractional packet relative to a transmitted packet or a packet to be transmitted. For example, if an packet containing N symbols is transmitted, but N-M symbols are received because time multiplexing of coexisting networks causes the M symbols to not be received, then the N-M symbols constitutes a partial packet.
The following discussion is directed to various embodiments of the invention.
Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment.
Next generation mobile devices implement a plurality of wireless technologies to access different networks such as WiMAX® networks, wireless local area networks (“WLAN”) (e.g., IEEE 802.11 b/g/n networks), LTE® networks, wireless universal serial bus, or BLUETOOTH networks, etc. Such devices are referred to herein as “combo” devices. While increased access to these technologies benefits users and operators alike, interference among different technologies, particularly onboard a single combo device, introduces difficulties during concurrent operation of these technologies. For example, WLAN (in 2.4-2.5 gigahertz (GHz)) and WiMAX (in 2.3-2.4 GHz and 2.5-2.7 GHz) technologies operate in relatively close frequency bands with respect to each other—so close, that the out-of-band emission by either technology may saturate the receiver of the other technology resulting in potential blocking. Thus, the interference between different technologies operating in the same combo device creates coexistence problems.
Coexistence problems in a wireless device may be addressed by time multiplexing access to the medium by the various transceivers of the device, where each transceiver is associated with a different network. Unfortunately, time multiplexing can result in dropped packets when a combo device must swap transceivers during packet reception or transmission. Dropping packets due to time multiplexing reduces performance of the associated wireless network.
Embodiments of the present disclosure provide improved performance in systems using coexisting wireless networks by allowing a combo device to use data extracted from partially received packets. Embodiments further improve network performance by allowing transmission of packets that will be only partially received when it is determined that transmission of partial packets provides improved network performance.
The wireless device 106 also includes a second transceiver 108 configured for communication via a second wireless network using a protocol different from that of the first wireless network. The wireless device 102 includes a transceiver 104 configured to communicate with the wireless device 106 via the second wireless network. The first and second transceivers 110, 108 of the wireless device 106 may interfere with one another if operated concurrently on adjacent or overlapping bands.
In the wireless device 106, operation of the transceivers 110, 108 may be time multiplexed to mitigate inter-network interference. If at a given time, the second transceiver 108 is transmitting voice signals (e.g., over a BLUETOOTH network), and the transceiver 110 has yet to establish a connection with the access point 112, the transceiver 110 will be scanning the WLAN for access points. The transceiver 110 needs to receive a beacon packet transmitted by the access point 112 to determine the existence and capabilities of the access point 112. Unfortunately, time multiplexing medium access by the transceivers 110, 108 may cause packets transmitted on the WLAN to be only partially received before the medium is allocated to BLUETOOTH. Consequently, an extended time period may be required to receive a complete packet (e.g., receive a complete beacon packet and establish a connection with the access point 112).
In
The first and second packets 202, 204 are only partially received by the wireless device 106 because the network 1 transceiver 110 is not enabled for the entire transmission time of the packets. Consequently, a combo device not configured to use partial packets may drop the first and second packets 202, 204 due to failure of a packet integrity check (e.g. a cyclic redundancy check) and receive only the third packet 206. If the packets 202-206 are beacon packets, such a combo device will incur substantial delay in connecting to the WLAN while awaiting the third packet 206.
Embodiments of the present disclosure validate partially received packets and extract information therefrom. In
The transceiver 110 includes a receiver 302 and a transmitter 308. The receiver 302 is configured to recognize and validate partially received packets and to extract information from partial packets that would otherwise be wasted if the packets were dropped. The receiver 302 includes an interference detector 304, a packet validator 306, signature information storage 318, and various other components, such as decoders, amplifiers, and filters (not shown). The interference detector 304 determines whether reception of a packet will be or has been interfered with by time multiplexing of the transceivers 110, 108. For example, based on expected multiplex timing, the interference detector 304 can predict whether a packet currently being received will be interrupted by the alternation of transceiver medium access. Information regarding multiplex timing can be provided by the multiplex timing controller 316.
The packet validator 306 is configured to verify a partially received packet identified by the interference detector 304, to determine the identity the packet (i.e., the type of the packet, e.g., a beacon packet), and to identify useable data fields of the packet and extract useable information therefrom. The packet as a whole may be corrupt due to coexistence interference. However, the packet validator can ascertain the identity of the partially received packet based on packet signature information stored in signature storage 318. Any number of packet signatures may be stored in signature storage 318 and applied/compared to a partially received packet to identify the packet. For example, signatures for beacon packets, control packets, management information packets, etc. may be stored in the signature storage 318 and applied to partially received packets.
Packet signatures can include information regarding the structure and content of various types of packets. Some packet signatures may require known values in specified fields of the packet to verify packet type. Some packet types may include a header located at a known offset from the start of the packet, with the header including a check value, such as a cyclic redundancy check or parity value. Based on a stored packet signature, the packet validator can apply a check algorithm (e.g., a CRC algorithm) as required by a specific packet type to verify a header or other portion of the packet. Such verification provides one indication of packet identity. Failure of an applied check algorithm indicates that the partial packet does correspond to the applied signature.
A stored packet signature may require that field of a partial packet contain a predetermined value. If a field of a partial packet contains a value different from that required by a stored signature, then the packet may be discarded. For example, the physical layer convergence protocol (PLOP) header includes a rate field. If a signature for a beacon packet requires a value in the rate field indicating 1 megabits per second (Mbps) for IEEE 802.11b/g/n in the 2.4 GHz band or 6 Mbps for IEEE 802.11a/n in the 5 GHz band, and the rate field of partially received packet does not include the appropriate value, the packet validator 306 may cause the partial packet to be discarded, or tested against additional signatures.
The packet validator 306 may also check a Frame Control field of a partially received packet to verify packet identity. The packet validator 306 inspects the Frame Control field to determine whether the packet is of a known or expected type, such as a beacon packet or a control/management packet.
If the packet validator 306 identifies the packet type of a partial packet based on the signatures, the packet validator 306 decodes information from fields of the packet. For example, if the partial packet is identified as a beacon, then information such as timestamp, beacon interval, and service set identification (SSID) can be extracted from the packet and used to connect to the access point 112. The SSID and basic SSID (BSSID) of an access point are disclosed in the first fifty bytes of a beacon packet. Different information may be extracted from other partial packet types. If any value extracted from the partial packet is not accord with an expected value of the field, the packet validator 306 may cause the packet to be discarded or check the packet against additional signatures.
Some embodiments of the packet validator 306 monitor communications on the wireless network that are not directed to the wireless device 106 and gather and store information extracted from captured packets that may be used to validate partially received packets. For example, the packet validator 306 may capture a packet traveling between the access point 112 and another wireless device and extract the SSID or the BSSID of the access point 112 from the packet. If a partial beacon packet is later received, the packet validator 306 can compare the captured SSID or BSID to that contained in the partial packet, thereby increasing confidence that the information retrieved from the partial packet is valid.
Some embodiments of the receiver 302 are configured to expedite reception of a complete packet. If the packet validator 306 identifies a received partial packet as a packet type for which the transmission time of a subsequent packet of the same type can be predicted (e.g., a periodically transmitted packet), the packet validator 306 can influence transmission of the subsequent packet such that the subsequent packet is transmitted at a time that ensures reception of the complete packet. Such operation is advantageous if the packet validator 306 is unable to extract sufficient information from the received partial packet.
The packet validator 306 can initiate transmission of CTS2Self frames to control the timing of the next transmission of the periodic packet. The CTS2Self frames may start plus or minus a delta interval, within which the periodic packet is expected to be transmitted. The CTS2Self frames should cover the remaining duration of any idle gap associated with use of the second network by the second transceiver 108, as well as the time interval in which the second transmitter 108 is enabled. The CTS2Self frames will force the periodic packet to be transmitted at a time when full reception is possible by the receiver 302. Thus, the time duration set by the CTS2Self frames should take into account the duration of the periodic packet (e.g., knowing the data rate at which the packet will be transmitted and the approximate packet size, the duration can be easily calculated). Alternatively, if the activities on the second transceiver 108 have lower priority than receiving the periodic packet on the first transceiver 110 or can be rescheduled to a time window that does not overlap with reception of the periodic packet, then the packet validator 306 can influence the multiplex timing controller 316 to adjust the multiplex time such that the subsequently transmitted periodic packet is received without sending a CTS2Self frame.
The transceiver 110 also includes the transmitter 308 as shown in
The transmitter 308 includes a monitoring system 310, a performance analyzer 312, a transmission controller 314, and various other components, such as an encoder, amplifiers, and filters (not shown). The monitoring system 310 determines whether a scheduled transmission by the transmitter 308 will be interfered with by time multiplexing of coexisting networks (i.e., allocation of the medium to the transceiver 108). The timing of medium reallocation can be determined based on information provided by the multiplex timing controller 316.
The performance analyzer 312 determines whether transmission of a scheduled packet that will be only partially transmitted, and therefore only partially received, will be beneficial to network performance. Some embodiments analyze the performance of the wireless network while transmitting partial packets versus the performance of the network while not transmitting partially received packets to make such a determination.
The transmission controller 314 transmits the scheduled packet that will be only partially transmitted in response to the performance analyzer 312 determining that partial packets are beneficial to network performance.
Various components of the transceiver 110, including at least some portions of the interference detector 304, the packet validator 306, the performance analyzer 312, the monitoring system 310 and the transmission controller 314 can be implemented using a processor and software programming that causes the processor to perform the operations described herein. In particular, a processor executing software programming can detect interference with packet reception or transmission caused by time multiplexing coexisting networks, and to validate and identify the type and useable data values of a partially received packet. Suitable processors include, for example, general-purpose processors, digital signal processors, and microcontrollers. Processor architectures generally include execution units (e.g., fixed point, floating point, integer, etc.), storage (e.g., registers, memory, etc.), instruction decoding, peripherals (e.g., interrupt controllers, timers, direct memory access controllers, etc.), input/output systems (e.g., serial ports, parallel ports, etc.) and various other components and sub-systems. Software programming that causes a processor to perform the operations disclosed herein can be stored in a computer readable storage medium. A computer readable storage medium comprises volatile storage such as random access memory, non-volatile storage (e.g., a hard drive, an optical storage device (e.g., CD or DVD), FLASH storage, or combinations thereof.
Some embodiments can implement portions of the transceiver 110 using dedicated circuitry (e.g., dedicated circuitry implemented in an integrated circuit). Some embodiments may use a combination of dedicated circuitry and a processor executing suitable software. Selection of a hardware or processor/software implementation of embodiments is a design choice based on a variety of factors, such as cost, time to implement, and the ability to incorporate changed or additional functionality in the future.
In block 402, the wireless device 106 is time multiplexing access to coexisting wireless networks by alternating medium access between the transceivers 110, 108. Each of the transceivers 110, 108 is configured for use with a different one of the coexisting wireless networks. The transceiver 110 is receiving a packet transmitted by a different wireless device (e.g., the access point 112) via the first of the coexisting wireless networks.
In block 404, the transceiver 110 determines whether the reception of the packet being received will be interfered with by the time multiplexing of transceivers 110, 108. That is, whether medium access will be granted to the transceiver 108 and withdrawn from the transceiver 110 before the packet is completely received by the transceiver 110. If time multiplexing interferes with reception of the packet, then the packet will be only partially received by the transceiver 110.
In some embodiments, the transceiver 110 determines that time multiplexing has interfered with packet reception when or after media access is transferred from the transceiver 110 to the transceiver 108 during reception of the packet.
If packet reception is not interfered with by time multiplexing, then reception of subsequent packets continues in block 402.
If packet reception is interfered with by time multiplexing, then in block 406, the transceiver validates the received portion of the packet. The transceiver 110 validates and identifies the type of the partial packet by comparing stored packet signature information to the partially received packet. A given signature may indicate that a particular packet type contains defined values in specific fields and/or that a portion of the partial packet may be verified using a check character included in capable of verifying a portion of the partial packet. In some embodiments, header verification using a header check value, and/or verification of known packet field values (e.g., PLCP rate field value, frame control field value, etc.) is used to identify the packet type and validate data values.
In some embodiments, information related to wireless devices using the same wireless network as the transceiver 110, and the packets transmitted thereby, is derived from packets transmitted between the devices and received by the transceiver 110. Such information is added to the signatures and compared to values extracted from corresponding fields of the partially received packet to verify packet identity.
In block 410, if the partial packet has been validated based on the stored signatures, then in block 412, information extracted from the fields of the partial packet, for example, the packet identity and useable information are recorded and applied. For example, if the partially received packet is validated against a beacon packet signature, then the transceiver 110 may apply information (e.g., SSID) extracted from the packet to connect to the access point 112 that transmitted the beacon packet. Similarly, if the partially received packet is validated against a control packet signature, then the transceiver 110 may apply information extracted from the partial packet to modify transceiver 110 operation relative to the wireless network.
If, in block 410, the partially received packet is not validated against a stored signature, then in block 414 partially received packet is discarded.
In block 408, some embodiments expedite reception of a full packet when a partially received packet has been identified, and the transceiver 110 is unable to extract sufficient data from fields of the partial packet to make use of the packet. If the transceiver 110 identifies the partial packet as being transmitted at a known interval, then the transceiver 110 can transmit CTS2Self frames to inhibit transmission of a subsequent instance of the packet until a time when the packet can be fully received by the transceiver 110. Alternatively, if the activities on the second transceiver 108 have lower priority than receiving the periodic packet on the first transceiver 110 or can be rescheduled to a time window that does not overlap with reception of the periodic packet, then the packet validator 306 can influence the multiplex timing controller 316 to adjust the multiplex time such that the subsequently transmitted periodic packet is received without sending a CTS2Self frame.
In block 502, the wireless device 106 is time multiplexing access to coexisting wireless networks by alternating medium access between the transceivers 110, 108. Each of the transceivers 110, 108 is configured for use with a different one of the coexisting wireless networks. The transceiver 110 analyzes the performance of the wireless network relative to the transmission of packets on the network whose transmission is interfered with by time multiplexing. Some embodiments gather network performance data while partial packet transmission is enabled and corresponding data while partial packet transmission is disabled and based on comparisons of the gathered data determine whether transmission of partial packets is beneficial to network performance.
In block 504, the transceiver 110 prepares a packet for transmission.
In block 506, the transceiver 110 determines whether time multiplexing will interfere with transmission of the packet. The determination may be based multiplex timing information provided by the multiplex timing controller 316.
If the transceiver 110 determines that transmission of the packet will not be interfered with by time multiplexing of the coexisting networks, then in block 508, the transceiver 110 transmits the packet.
If the transceiver 110 determines that transmission of the packet will be interfered with by time multiplexing of the coexisting networks, then in block 510, the transceiver 110 determines whether transmission of the partial packet will be beneficial to network performance. The determination may be based on the previously conducted analysis of network performance with partial packets. The determination may also be based on an analysis of the information that will be contained in the partial packet and the usefulness of the information to a wireless device that receives the partial packet. For example, if the portion of the packet transmitted prior to transfer of the medium to the transceiver 108 contains useable information that can be identified and validated by a receiving device, then the transmission of the partial packet may be beneficial to network performance.
If transmission of the partial packet is determined not to be beneficial to network performance, then the packet is not transmitted, and may be scheduled from transmission at a different time (e.g., a time when transmission will not be interrupted).
If transmission of the partial packet is determined to be beneficial to network performance, then the partial packet is transmitted in block 512.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
The present application claims priority to U.S. Provisional Patent Application No. 61/304,671, filed on Feb. 15, 2010 (Attorney Docket No. TI-68626) entitled “Improving WLAN Scan via Partially Received Packets in Coexisting Networks” which is hereby incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61304671 | Feb 2010 | US |