Modern computing devices are often configured for wireless communications. For example, a notebook computer may be configured to connect to a local area network (LAN) through a wireless connection via an Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocol. In addition, many computing devices are configured to communicate with peripheral devices via wireless communications, for instance using the Bluetooth protocol. For example, one or more user interface devices, such as a keyboard, mouse, or headset, may wirelessly communicate with the computing device.
The frequencies over which such wireless communications are transmitted may coincide for two or more components in a given computer system. For example, the frequency band used by a wireless network card of the computing device may be the same as, or overlap with, one used by one or more wireless user interface devices. In cases in which more than one wireless device is used at the same time, interference may occur. In particular, wireless communications of one component over a particular frequency range may interfere with wireless communications of another component operating over the same or an overlapping frequency range.
When such interference occurs, arbitration is performed to separate the communications in time to avoid signal corruption. Through such arbitration, the order and duration of the transmissions of two or more components are controlled to enable all of the components to transmit their data over their respective frequency ranges. In such a scheme, component transmissions are enabled in an alternating manner so that all or portions of a given frequency range can be shared.
In some arbitration schemes, such as that defined by IEEE 802.15.2 Clause 5, wireless communications are prioritized according to the packet type used in the transmissions. For instance, “data” packets may be assigned a first priority and media packets may be assigned a second priority. The intended reason for assigning different priorities to the transmissions is to ensure that more important data is transmitted more rapidly than less important data. For example, multimedia communications may be given higher priority over data communications to ensure that a multimedia communication, such as streaming video and/or audio, is not interrupted.
Prioritizing according to packet type can be disadvantageous from the user's perspective, however, given that the importance of the wireless communication to the user may not correlate to the type of packets used to transmit the data. For example, if media is transmitted using “data” packets, such as asynchronous connection-oriented (ACL) packets, the communication may not be accorded the priority that is required to ensure an uninterrupted media transmission. Therefore, if a user were wirelessly downloading a large file over the LAN while concurrently listening to music played by the computer on wireless headphones, it would be possible for the audio transmission to the headphones to be interrupted in favor of more quickly downloading the file over the LAN, which file may be less important to the user. To cite another example, if the user were instead writing a document using a wireless keyboard during the wireless download of the file, unacceptable delay between keystroke entry and appearance of the characters on screen could result.
The disclosed systems and methods can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale.
As is described above, prioritizing wireless communications according to packet type can be disadvantageous given that the importance of a wireless communication may not correlate to the type of packets used to transmit the data. As is described in the following, however, advantageous results can be obtained by automatically prioritizing the communications based upon the nature of the communications. In such case, higher-priority communications, such as a multimedia stream or user input, can be given priority over lower-priority communications, such as downloading data and/or files from a network. In other words, communications having lower-latency tolerance can be prioritized over communications having higher-latency tolerance.
Disclosed herein are embodiments of systems and methods for arbitrating multiple wireless communications. Although particular embodiments are disclosed, these embodiments are provided for purposes of example only to facilitate description of the disclosed systems and methods.
Referring now in more detail to the drawings, in which like numerals indicate corresponding parts throughout the several views,
In the embodiment of
In the embodiment of
Communications between the computing device 102 and the wireless user interface devices 104 may be via any available or yet to be created wireless protocol. By way of example, the Bluetooth (IEEE 802.15) protocol may be used to facilitate communications between the computing device 102 and the wireless user interface devices 104. Communications between the computing device 102 and the WAP 108 (i.e., LAN communications) may similarly be via any available or yet to be created wireless protocol. By way of example, the IEEE 802.11b or 802.11g protocol may be used.
In embodiments in which the WAP 108 is used, the WAP may comprise a network communication device, such as digital subscriber line (DSL) or cable modem. Alternatively, a separate network communication device may be used.
The processing device 200 is adapted to execute commands stored in memory 202 and can comprise a general-purpose processor such as a microprocessor, one or more application-specific integrated circuits (ASICs), a plurality of suitably-configured digital logic gates, or other components comprised of discrete devices that coordinate the overall operation of the computing device 102. The memory 202 comprises any one or a combination of volatile memory elements (e.g., random access memory (RAM)) and nonvolatile memory elements (e.g., read-only memory (ROM), Flash memory, hard disk, etc.).
The one or more user interface devices 204 comprise the components that enable communication with the user, and more particularly, with the wireless user interface devices 104 (
The one or more network interface devices 206 facilitate communications between the computing device 102 and the WAP 108 (
The memory 202 includes various programs including an operating system 210 and the wireless communications system 212 that generally controls wireless communications involving the computing device and, more particularly, arbitrates over interfering wireless communications of two more wireless components. The configuration and operation of the wireless communications system 212 is discussed in greater detail in relation to
Various programs (logic) have been described herein. These programs can be stored on any computer-readable medium for use by or in connection with any computer-related system or method. In the context of this document, a computer-readable medium is an electronic, magnetic, optical, or other physical device or means that contains or stores a computer program for use by or in connection with a computer-related system or method. These programs can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions.
Referring to
The Bluetooth link manager 304 comprises the low-level software, and associated hardware, that acts as a controller over Bluetooth-based communications of the computing device 102. The link manager 304 carries out link setup, authentication, link configuration and other protocols. The link manager 304 further discovers other remote link managers and communicates with them via a link manager protocol (LMP). The LMP comprises a number of protocol data units (PDUs), which are sent from one device to another.
As is further shown in
In communication with both the Bluetooth link manager 304 and the 802.11 MAC 306 is communications control logic 308 that is used to control arbitration of wireless communications via Bluetooth and 802.11. By way of example, the communications control logic 308 comprises software and hardware that controls wireless communications in accordance with IEEE 802.115.2 Clause 5. As is known, arbitration according to that standard involves assigning priority to wireless communications in accordance with the packet type used to transmit data of the communications. Given that, as is described above, such an arbitration scheme can be disadvantageous, the wireless communications system 212 includes an arbitration control manager 310 that controls the system such that priority is instead assigned based upon the nature of the communications.
In the embodiment of
Although the arbitration control manager 310 is shown as communicating with the Bluetooth protocol stack 300, the manager could instead or in addition communicate with an 802.11 device driver associated with the 802.11 MAC to similarly control the communications control logic 308. Furthermore, the arbitration control manager 310 can be integrated, in whole or in part, into one or more of the Bluetooth protocol stack 300, the 802.11 MAC device driver, or the communications control logic 308. In some embodiments, the arbitration control manager software can be distributed within the wireless communications system 212. The actual location of the arbitration control manager 310 is, however, secondary to the functionality it provides.
Example systems having been described above, operation of the systems will now be discussed. In the discussions that follow, flow diagrams are provided. Process flow or blocks in these flow diagrams may represent modules, segments, or portions of code that include one or more executable instructions for implementing specific logical functions in the process. Although particular example process functions are described, alternative implementations are feasible. Moreover, portions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.
Types of information may comprise “data” being downloaded to the computing device from a given source (e.g., LAN), such as files, Web pages, email messages, and the like. Another type of information includes “media” that is being transmitted to or from the computing device, such as audio and/or video data. A further type of information includes “user inputs”, such as keystrokes, mouse movements and clicks, user speech input, and so forth.
In terms of wireless communications, examples include communications between the computing device and a WAP, or between the computing device and one or more user interface devices, such as a wireless keyboard, wireless mouse, wireless audio headset, wireless video headset (e.g., head-worn display), wireless stereo headphones, etc.
As mentioned above, the nature of the wireless communications is determined from the implicated applications. Again, these applications may comprise actual software applications that are used in the wireless communications, or may comprise use scenarios that are recognized by the arbitration control manager 310.
Next, the arbitration control manager 310 determines the priorities of the wireless communications relative to the determined nature, as is indicated in block 402. In some embodiments, the priorities can be assigned according to a default setting that associates a given priority to the various different types of wireless communications. For example, data communications may be assigned a first priority, media communications may be assigned a second priority, and user inputs may be assigned a third priority. These priorities may all be different, or one or more of the priorities may be the same. Moreover, certain kinds of communications within each type may be assigned different priorities. For example, video media communications may be assigned a different priority than audio media communications. In some embodiments, the priorities may be user-selectable, for instance through use of a user interface associated with the arbitration control manager 310.
The priorities may affect one or more of the timing of the transmissions and their duration. For example, a high priority may be associated with longer and/or more frequent transmissions such that high-priority transmissions may use a given frequency range the majority of a given time period during which multiple, overlapping wireless communications take place. For instance, media communications and/or user input communications may dominate over data communications. Notably, the actual timing and duration associated with any given priority level may be selected, either as a default or by the user, to suit the particular use scenario that is at issue.
Once the priorities are determined, the arbitration control manager 310 sends a command to the communications control logic 308 (
When the command is received by the communications control logic 308, the logic arbitrates the wireless communications in accordance with the priorities specified in the command.
Beginning with block 500, the arbitration control manager 310 determines the operating Bluetooth profile for one or more wireless communications. As is known, each Bluetooth communication is assigned such a profile that indicates the nature of the wireless communication. Example profiles include advanced audio distribution profile (A2DP) used for audio data, and human interface device (HID) profile used for user inputs. In some embodiments, identification of one of those profiles equates to identification of a high-priority communication, or low latency tolerance communication, that will take priority over a data communication that is transmitted via IEEE 802.11. Next, the arbitration control manager 310 makes a priority determination in regard to the determined profile(s), as is indicated in block 502. This priority determination can be made with reference to a lookup table that links a given priority to each of various Bluetooth profiles. As is described above, those priorities can, in some embodiments, be selected by the user using a user interface associated with the arbitration control manager 310.
At this point, the manager 310 generates a control command for the communications control logic 308 (
Once the control command is generated, the arbitration control manager 310 transmits the command to the Bluetooth stack protocol 300, as is indicated in block 506. At this point, the Bluetooth stack protocol 300 transmits the command, via the HCI 302, to its link manager 304, which then transmits the command to the communications control logic 308. The communications control logic 308 implements the command to arbitrate all wireless communications, whether they be Bluetooth, IEEE 802.11, or otherwise, so that the intended priorities are honored. The communications control logic 308 performs this arbitration in similar manner to that of known systems with the exception that priority is applied relative to the determined Bluetooth profile(s) instead of packet types.
In the case of controlling priority via the 802.11 side of the system, prioritization can be based on, for example, the IEEE 802.11e standard, which prioritizes WLAN traffic based on data type (e.g., voice, video, best effort, low priority data, etc.) between multiple WLAN devices in an area around an access point. The MAC of each 802.11 device is cognizant of the data type information and could use it in a similar manner to the Bluetooth profile method described above. In particular, the 802.11 MAC could control the communications control logic based on the data type provided by the 802.11e standard. Alternatively one can also implement a solution that uses both the 802.11e information and the Bluetooth profile information, where an arbiter (preferably in the communications control logic) decides which wireless device is assigned an upcoming time slot to transmit or receive.
In view of the above, arbitration of multiple wireless communications can be achieved in relation to the nature of the communication and its importance to the user, as opposed to the types of packets that are used to transmit data of the communications. Notably, this form of arbitration can be used to arbitrate between communications using different protocols, such as Bluetooth and IEEE 802.11, as well as between communications transmitted using the same protocol. For example, the disclosed arbitration can be used to establish priorities as between two different Bluetooth communications.