US 20070111796 A1
Systems and methods for associating a device to a peripheral that is communicating to a game console or computing device. The peripheral is initially bound to a port of the game console or computing device. The device binds to the game console or computing device via an automatic or user-initiated sequence and then correlated to the port assigned to the peripheral. Data that is associated with the peripheral is communicated to the device after being correlated. The device and peripheral may also be associated based on a user profile. When the user signs-in to the game console or computing device, the device is associated to the peripheral via a peripheral identifier and configuration information in the profile.
1. A wireless communication device, comprising:
a radio that communicates to a console;
an selector for selecting a port setting used by said wireless communication device which correlates to a port assigned by said console to a peripheral; and
an indicator that indicates said port setting,
wherein communications associated with said peripheral are communicated to said wireless communication device.
2. The wireless communication device of
3. The wireless communication device of
4. The wireless communication device of
5. The wireless communication device of
6. The wireless communication device of
7. The wireless communication device of
8. A method of establishing an association between a wireless device and a peripheral that communicate with a computing device, comprising:
initiating a binding sequence;
recognizing said wireless device and binding it to said computing device;
setting said wireless device to a port setting correlated to a port assigned to peripheral; and
communicating data between said wireless device and said computing device, said data being associated with said peripheral.
9. The method of
10. The method of
receiving an input via bind input device; and
providing an on-screen display option to discover said wireless device.
11. The method of
12. The method of
13. The method of
14. The method of
15. The method of
establishing communication between a wired device and said computing device;
removing said association of said wireless device and said peripheral; and
establishing said associated between said wired device and said peripheral.
16. The method of
accessing a user profile;
determining peripheral settings in said user profile; and
setting said port setting based on said peripheral settings and an identifier of said peripheral.
17. A method of establishing an association between a wireless headset and a game controller that communicate with a gaming console, comprising:
initiating a binding sequence to bind said wireless headset to said gaming console;
setting said wireless headset to a port setting correlated to a port assigned to game controller; and
communicating audio between said wireless headset and said gaming console, said audio being associated with said game controller and port.
18. The method of
providing an on-screen display option to discover said wireless headset; and
setting said wireless headset to said port setting based on a selected on-screen display option.
19. The method of
20. The method of
accessing a gamer profile;
determining peripheral settings in said gamer profile; and
setting said port setting based on said game controller settings and an identifier of said game controller.
A portion of the disclosure of this patent document contains material, which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings hereto: CopyrightŪ 2005, Microsoft Corporation, All Rights Reserved.
This invention generally relates to the field of computing and gaming devices. The present invention is directed to associating peripheral devices that communicate to a console, controller or other computing device.
Online gaming has become a large part of the gaming experience. Initially, players could communicate via text, however texting during game play is difficult. Later, games allowed players to connect to each other or a centralized server to facilitate cooperation using audio-only devices, such as headsets. Now, many gamers use specially designed headsets for these purposes. Conventional headsets connect to the gaming consoles using, e.g., a headset or microphone jack or USB connector. Because of the wired connection to the controller or console, it is relatively easy to correlate the sounds to the particular gamer's play.
Gamers also enjoy using wireless controllers, which provide players with freedom of movement by wirelessly connecting the controller to the gaming console. Typically, the wireless controllers provide features such as vibration feedback, mini-joysticks, D-pad, pressure-sensitive buttons, etc. that players would find on wired controllers. In addition, the systems that connect wireless controllers to gaming consoles often allow multiple players to play at once on the console.
Conventionally, associating headset audio with game controllers is performed by plugging-in the wired headset to a jack in the wired or wireless controller. However, when the headset is wireless, due to the nature of wireless devices, there is no physical mechanism to associate the headset to a particular gamer's play or controller. However, due to nature of wireless devices, there is no physical mechanism to associate a wireless headset to a particular gamer's play or controller.
Systems and methods for associating a device to a peripheral that is communicating to a game console or computing device are disclosed herein. The peripheral is initially bound to a port of the game console or computing device. The peripheral binds to the game console or computing device via an automatic or user-initiated sequence and then correlated to the port assigned to the peripheral. Data that is associated with the peripheral is communicated to the device after being correlated. The game console (or computing device) and peripheral may also be associated based on a user profile.
A non-limiting example of the above is a wireless headset that is used by garners during game play. The headset may be associated with the gamer's controller such that game-related audio associated with the gamer's play is sent from the game console to headset. The gamer may also communicate with other garners using the headset.
Additional features and advantages will be made apparent from the following detailed description that proceeds with reference to the accompanying drawings.
The foregoing summary, as well as the following detailed description of preferred embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there is shown in the drawings exemplary constructions of the invention; however, the invention is not limited to the specific methods and instrumentalities disclosed. In the drawings:
A graphics processing unit (GPU) 108 and a video encoder/video codec (coder/decoder) 114 form a video processing pipeline for high speed and high resolution graphics processing. Data is carried from the graphics processing unit 108 to the video encoder/video codec 114 via a bus. The video processing pipeline outputs data to an A/V (audio/video) port 140 for transmission to a television or other display. A memory controller 110 is connected to the GPU 108 to facilitate processor access to various types of memory 112, such as, but not limited to, a RAM (Random Access Memory).
The multimedia console 100 includes an I/O controller 120, a system management controller 122, an audio processing unit 123, a network interface controller 124, a first USB host controller 126, a second USB controller 128 and a front panel I/O subassembly 130 that are preferably implemented on a module 118. The USB controllers 126 and 128 serve as hosts for peripheral controllers 142(1)-142(2), a wireless adapter 148, and an external memory device 146 (e.g., flash memory, external CD/DVD ROM drive, removable media, etc.). It is noted that additional USB controllers may be provided. The network interface 124 and/or wireless adapter 148 provide access to a network (e.g., the Internet, home network, etc.) and may be any of a wide variety of various wired or wireless adapter components including an Ethernet card, a modem, a Bluetooth module, a cable modem, and the like.
System memory 143 is provided to store application data that is loaded during the boot process. A media drive 144 is provided and may comprise a DVD/CD drive, hard drive, or other removable media drive, etc. The media drive 144 may be internal or external to the multimedia console 100. Application data may be accessed via the media drive 144 for execution, playback, etc. by the multimedia console 100. The media drive 144 is connected to the I/O controller 120 via a bus, such as a Serial ATA bus or other high speed connection (e.g., IEEE 1394).
The system management controller 122 provides a variety of service functions related to assuring availability of the multimedia console 100. The audio processing unit 123 and an audio codec 132 form a corresponding audio processing pipeline with high fidelity and stereo processing. Audio data is carried between the audio processing unit 123 and the audio codec 132 via a communication link. The audio processing pipeline outputs data to the A/V port 140 for reproduction by an external audio player or device having audio capabilities.
The front panel I/O subassembly 130 supports the functionality of the power button 150 and the eject button 152, as well as any LEDs (light emitting diodes) or other indicators exposed on the outer surface of the multimedia console 100. A system power supply module 136 provides power to the components of the multimedia console 100. A fan 138 cools the circuitry within the multimedia console 100.
The CPU 101, GPU 108, memory controller 110, and various other components within the multimedia console 100 are interconnected via one or more buses, including serial and parallel buses, a memory bus, a peripheral bus, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures can include a Peripheral Component Interconnects (PCI) bus, PCI-Express bus, etc.
When the multimedia console 100 is powered ON, application data may be loaded from the system memory 143 into memory 112 and/or caches 102, 104 and executed on the CPU 101. The application may present a graphical user interface that provides a consistent user experience when navigating to different media types available on the multimedia console 100. In operation, applications and/or other media contained within the media drive 144 may be launched or played from the media drive 144 to provide additional functionalities to the multimedia console 100.
The multimedia console 100 may be operated as a standalone system by simply connecting the system to a television or other display. In this standalone mode, the multimedia console 100 allows one or more users to interact with the system, watch movies, or listen to music. However, with the integration of broadband connectivity made available through the network interface 124 or the wireless adapter 148, the multimedia console 100 may further be operated as a participant in a larger network community.
When the multimedia console 100 is powered ON, a set amount of hardware resources are reserved for system use by the multimedia console operating system. These resources may include a reservation of memory (e.g., 16 MB), CPU and GPU cycles (e.g., 5%), networking bandwidth (e.g., 8 kbs), etc. Because these resources are reserved at system boot time, the reserved resources do not exist from the application's view.
In particular, the memory reservation preferably is large enough to contain the launch kernel, concurrent system applications and drivers. The CPU reservation is preferably constant such that if the reserved CPU usage is not used by the system applications, an idle thread will consume any unused cycles.
With regard to the GPU reservation, lightweight messages generated by system applications (e.g., popups) are displayed by using a GPU interrupt to schedule code to render popup into an overlay. The amount of memory required for an overlay depends on the overlay area size and the overlay preferably scales with screen resolution. Where a full user interface is used by the concurrent system application, it is preferable to use a resolution independent of application resolution. A scaler may be used to set this resolution such that the need to change frequency and cause a TV resynch is eliminated.
After the multimedia console 100 boots and system resources are reserved, concurrent system applications execute to provide system functionalities. The system functionalities are encapsulated in a set of system applications that execute within the reserved system resources described above. The operating system kernel identifies threads that are system application threads versus gaming application threads. The system applications are preferably scheduled to run on the CPU 101 at predetermined times and intervals in order to provide a consistent system resource view to the application. The scheduling is to minimize cache disruption for the gaming application running on the console.
When a concurrent system application requires audio, audio processing is scheduled asynchronously to the gaming application due to time sensitivity. A multimedia console application manager (described below) controls the gaming application audio level (e.g., mute, attenuate) when system applications are active.
Input devices (e.g., controllers 142(1) and 142(2)) are shared by gaming applications and system applications. The input devices are not reserved resources, but are to be switched between system applications and the gaming application such that each will have a focus of the device. The application manager preferably controls the switching of input stream, without the gaming application's knowledge, and a driver maintains state information regarding focus switches.
To support an environment where multiple consoles 100 and wireless controllers 154 may coexist, each controller is logically “bound” to a single console 100 so that a link is established with only that console 100. A controller 154 can not be bound to more than one console 100 at a time. Binding is the process by which a console 100 transmits information to a controller 154 that will enable that controller to establish a link with the console 100. Once “bound” to a console 100, the controller 154 attempts to establish a link with the console 100 to which it is bound whenever the controller 154 is turned on.
It is preferable that binding information is retained only in the controller. Binding is one to one with respect to the controller 154, but it is one to many with respect to the console 100. Binding, thus, persists on the controller 154 across battery discharge/charge cycles, until a new binding relationship is established. Establishing a binding relationship is attempted when a BIND button on the console and a BIND button on a wireless controller 154 are pressed within a predetermined period of time of each other. Successfully establishing a binding relationship is dependent on successfully establishing a radio communication link and executing a mutual verification algorithm.
The console is preferably powered up before pressing its BIND button. If a user initiates binding on a controller 154 that is currently connected to a console 100, the controller 154 drops the connection to the console 100 prior to attempting the binding process. As the binding process operates, a status notification screen may display binding and discovery process (e.g., binding . . . bound . . . discovered). Binding is a one to one event. In other words, pressing the binding button on the console 100 will bind one controller 154 at a time. To bind a second controller 154, the BIND button on the console 100 is pressed a second time. If binding is not successful within a predetermined time, the console 100 or controller 154 will automatically time out and return to a previous state such that the previous binding relationship is not lost.
There are four (or other) virtual controller ports on the console 100, referred to herein as “Vports.” The Vports represent the active game controllers connected to the console 100, either wired or wirelessly. The numbered Vports are automatically assigned to controllers in the order they are connected to the console 100. Each Vport is represented by a quadrant of the LED indicator 156 and the console indicator 158. “Discovery” is the process during which a wired or wireless game device is recognized by the console 100, assigned a Vport, and made available for game play.
Thus, the acts of “binding” and “discovery” are preferably two different acts. The act of binding is initiated by pressing the BIND buttons on the controller and console. Once bound, the controller will begin the discovery process, and if successful, will be assigned the first available Vport, which in this case is Vport 1 as described. If one to three controllers had previously been bound and discovered, then the next controller discovered would be assigned Vport 2, 3, 4, etc., respectively. If, a total number controllers equaling the total number of Vports were already discovered, then the binding process could still be performed, however no Vport would be available to assign, so the controller would not be assigned a Vport. However it would still be bound to the console and available to be discovered if one of the other controllers were either turned off or bound to a new console.
The radio 203 may be a Frequency Hopping Spread Spectrum (FHSS) radio operating at the 2.4 GHz frequency band that communicates data (e.g., audio, configuration, etc.) to the console 100. The MCU/DSP/CODEC 204 processes audio communication to and from the headset 200. Output audio is communicated via the DAC 208 to the speaker 216. Input audio is received by the microphone 218 and converted by the ADC 210 to digital information and passed to the MCU/DSP/CODEC 204 to the radio 203 for communication to the console 100.
The input device 214, which will be described in greater detail below with reference to
As noted above, the wireless headset 200 communicates directly to the console 100, rather than the controller 154. As such, the headset performs a binding/discovery similar to the controller 154. To accomplish this, the wireless headset 200 is associated with console and assigned a Vport. There are separate Vports for controller and voice device ports.
The user is then notified of the success of the association at step 228. The notification may be audible or visual. An audible confirmation of Vport assignment may be made by sending a sending a chime or tone to the headset. Personalized settings may be ignored/overridden in order to ensure the chime or tone is played on the headset. Visual notification may be made by a flashing LED (or other visual indicator 206) on the headset. If a single LED is provided on the headset, it may be flashed at a predetermined rate. If several LEDs are provided, an LED pattern may be flashed. It is preferable in the later scenario that that pattern be the same as the associated controller 154. Further, an on-screen display notification may be used. If the association is unsuccessful, a different set of notifications may be used than for successful associations.
However, if at step 224, there is more than one active controller 154, then the user is notified to selects a Vport to which the headset 200 is to be associated by the console 100. This notification may be performed through a visual on-screen display, audibly or visually on the headset 200 via the indicator 206. Referring now to
The visual indicator 206 may include LEDs, a seven segment display, etc. to convey to the user which Vport is selected on the headset 200. The use of the input device aids in resolving/avoiding conflicts between multiple headsets and a particular controller 154. Further, if multiple headsets are set to the same Vport, it is preferable that the first one to be discovered is assigned to the Vport. At step 232 the headset 200 is discovered and associated by the console 100 to the selected Vport. A notification of the successful association is provided at step 234. The notification may be similar to that noted above.
Alternatively, the process may be performed using an on-screen display. This may be desirable because the user may find using the on-screen display more familiar and convenient for configuring devices as the on-screen display is used to configure many options for game play. Referring now to
As another alternative, the user may power-up the wireless headset and presses the headset's bind button (steps 240 and 242). These two steps may be accomplished by a single press of a power button. The user presses a button on the controller and navigates to an Options screen (step 244). Next the user selects an “Assign wireless headset” button from the Options screen (step 252). The console initiates bind process with headset and associates headset to the Vport of the controller that initiated the process. The headset and/or on-screen display notify the user of a successful bind and association (step 250).
The above processes may be repeated for every user that wants to associate a wireless headset with their controller.
Thus, as described above, the console 100 manages the association of headsets to controllers. Headsets are bound to consoles, which allows the management of headsets and other peripherals to evolve over time as the console 100 can be upgraded with new features with relative ease. In addition, it is preferable that a one-to-one association is made between headsets and controllers.
In addition to the binding/discover notifications, a user may be notified if the Vport assignment is lost and/or re-associated. For example, the controller 100 association preferably should be persisted between power/sleep cycles of the console 100. However, the wireless controller discovery process may reassign Vports after a power cycle. This means a controller 154 associated with Vport3 before the power cycle may be associated with Vport1 after. The headset 200 will follow the controller 154 to Vport1.
The headset 200 originally associated with the controller 154 should follow the controller 154 to its newly assigned Vport. This may be accomplished through some headset identifier or preferably to a gamer profile used to associate a headset 200 to a controller 154. In later instance, when a gamer signs-in, the profile determines which headset 200 should be associated to the controller 154 via a unique identifier of the headset 200 associated with the gamer profile. The controller 154 is automatically assigned to a Vport at time of discovery and the headset 200 is then associated to that Vport, as noted above.
It is possible that a user may wish to use a wired headset during game play. When a wired headset is inserted to the headset jack on a controller, the wireless headset association will be dropped in favor of the wired headset. This is because it is assumed that the wired headset is being used because of a user preference and an accidental insertion of a wired headset is unlikely.
In addition to a control to select a Vport, the headset may include controls for power on/off, microphone mute, volume up/down, connect to console, etc. Indicators may be provided for battery level (e.g., LEDs or audible alert), headset ON, etc. A buzzer or other audible mechanism may be provided to locate a missing headset 200.
While the processes above have been described with reference to a wireless controller, it is noted they may equally apply to a wired controller to which a wireless headset is to be associated.
While the present invention has been described in connection with the preferred embodiments of the various Figs., it is to be understood that other similar embodiments may be used or modifications and additions may be made to the described embodiment for performing the same function of the present invention without deviating therefrom.