The present invention relates to wireless communications. More particularly, the present invention relates to the transmission of data to multiple devices in a wireless communications network.
Various short-range wireless communications systems allow devices to join ad hoc networks and participate in various applications and services. For example, device users may obtain Internet connectivity through an access point, or engage in multiplayer games with other device users.
Bluetooth is a system that enables wireless communications devices to request and receive resources from servers. Bluetooth defines a short-range radio network, originally intended as a cable replacement. It can be used to create ad hoc networks of up to eight devices, where one device is referred to as a master device. The other devices are referred to as slave devices. The slave devices can communicate with the master device and with each other via the master device. The Bluetooth Special Interest Group, Specification of The Bluetooth System: Version 1.2, Nov. 5, 2003, describes the principles of Bluetooth device operation and communication protocols. This document is incorporated herein by reference in its entirety. The devices operate in the 2.4 GHz radio band reserved for general use by Industrial, Scientific, and Medical (ISM) applications. Bluetooth devices are designed to find other Bluetooth devices within their communications range and to discover what services they offer. Other short-range networks also exist. Examples of such networks include wireless local area networks (WLANs), such as IEEE 802.11 and HIPERLAN.
User applications that require multicast and/or broadcast transmission techniques are becoming increasingly common. For instance, multiplayer games often require data originated by a single device to be concurrently (or almost concurrently) sent to multiple devices. Also, in such applications, which may involve real time gaming environments, it is desirable to provide small latencies in the delivery of data.
Currently, Bluetooth provides for both point-to-point transmissions, and broadcast transmissions that are sent from a master device to all of its slave devices. These transmissions types do not provide for the simultaneous reliable flow of data to multiple slave devices. Moreover, these transmission techniques do not provide for slave devices to send data for forwarding by a master device to multiple slave devices in an efficient manner with small latency.
General ideas relating to multicasting have been proposed to the Bluetooth Special Interest Group (SIG). Unfortunately, these ideas were assigned a low priority. Accordingly, there is a need to provide enhancements for the transmission of data to multiple devices in short-range wireless communications networks, such as Bluetooth.
The present invention provides techniques for the distribution of data to multiple devices in wireless networks, such as Bluetooth networks. This data may be unicast, multicast, or broadcast in nature. Designations, such as reserved addresses are used to indicate whether devices are transmitting multicast or broadcast data. These devices may be slave devices that rely on a master device to forward their transmissions to multiple devices. Such transmissions may be related to applications, such as multiplayer games.
Accordingly, the present invention provides a method, apparatus, and computer program product that establishes a short-range wireless communications network having multiple slave devices and a master device that controls operations of the short-range wireless communications network. The method, apparatus, and computer program product initiate a multicast group including at least two slave devices of the multiple slave devices. An address is reserved for multicast communications within the multicast group. Multicast data is sent to the at least two slave devices using the reserved address; and an acknowledgement of received multicast data from at least one of the at least two slave devices is received. The acknowledgement includes an indication that the at least one device has data to transmit. In addition, the method, apparatus, and computer program product receive data from the at least one slave device. This received data includes a destination indicator.
The present invention also provides a method, apparatus, and computer program product that receives a multicast transmission from a master device, in which the multicast transmission includes data and a multicast address corresponding to a multicast group in the short-range wireless communications network. The multicast group includes at least two slave devices of the multiple slave devices. In addition, the method, system, and computer program product sends in response to the multicast transmission an acknowledgment indicating that there is data to transmit to the master device; receives a polling transmission from the master device; and transmits to the master device the data indicated in the acknowledgment and a destination indicator.
Moreover, the present invention provides a method, apparatus, and computer program product that receives a polling transmission from a master device; and transmits data and a destination indicator to the master device. The destination indicator indicates that the data is to be forwarded to all devices in the short-range wireless communications network.
Also, the present invention provides for transmitting a polling transmission to at least one slave device; receiving data and a destination indicator from the at least one slave device; and forward the received data to a plurality of devices across a short-range wireless communications network based on the destination indicator information without circulating the data to the device application layer.
In addition, the present invention provides an apparatus for multiplayer gaming. This apparatus includes a transceiver that communicates multiplayer gaming information with one or more remote devices playing a multiplayer game across a short-range wireless communications network, a memory for storing multiplayer gaming instructions, and a processor. The processor executes the multiplayer gaming instructions stored in the memory for running the multiplayer game at the application layer. In addition, the processor executes instructions for: transmitting a polling transmission to at least one slave device playing the multiplayer game for receiving multiplayer gaming data; receiving the multiplayer gaming data and a destination indicator from the at least one slave device; and forwarding the received multiplayer gaming data to a plurality of remote devices playing the multiplayer game across the short-range wireless communications network based on the destination indicator information without circulating the data to the application layer.
Further features and advantages of the present invention will become apparent from the following description and accompanying drawings.
In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the reference number. The present invention will be described with reference to the accompanying drawings, wherein:
I. Operational Environment
Before describing the invention in detail, it is helpful to first describe an environment in which the invention may be employed. Accordingly,
As shown in
As shown in
In a short-range communications network, such as a Bluetooth network, a master device will transmit to and receive from each of the slave devices. These slave devices are each assigned a particular address. In Bluetooth version 1.1, this address was called an active member (AM) address, while in Bluetooth version 1.2, this address is called a logical transport (LT) address. If the master device has no data to transmit to a particular slave device, it may either skip that slave device or transmit a NULL packet.
The exchange of transmissions between a master and slave devices may be in a particular order. For instance,
In the exchange of
Currently in Bluetooth, transmissions 204 need to be addressed to a single particular device, such as WCD 102. This is because Bluetooth does not provide for a transmission to be directed to a particular group of devices (e.g., multicasting). Accordingly, any such feature directing data to multiple devices would have to be implemented at the application layer.
In embodiments of the present invention, multicast data is indicated (in the master device to slave device direction, and also in the slave device to master device direction) at the Bluetooth baseband level. This feature advantageously provides for multicast transmissions originated by slave devices to be redirected to other devices in the pertinent multicast group by the master device without requiring the master device to circulate the data to the application or network layer. This advantageously reduces processing latencies in forwarding data to its destination devices.
This feature of the present invention is provided through the ability to create a Multicast User Group (MUG) having a master device and multiple slave devices. In addition, the MUG is allocated an address that indicates multiple devices. This address is referred to herein as a MUG address. In Bluetooth implementations, this address is an AM address (or an LT address). In addition to accepting packets that are specifically addressed to them, slave devices in a MUG also accept packets that indicate the MUG as its destination address.
Accordingly, for each MUG in a Bluetooth network, there is a reduction in the number of possible active slave devices. For instance, in a piconet having a single MUG, a maximum number of six active slave devices are possible, because one of the seven available addresses is reserved for the MUG.
In addition to multicasting, inventive features of the present invention also apply to broadcasting techniques. According to such techniques, a slave device may instruct its master device to broadcast the slave device's data to every device in the short-range network or piconet.
In embodiments, this feature is provided through the use of a broadcast indicator. This indicator may be an address, such as an LT address. For instance, an LT address of “000” may be reserved for broadcasting. When a master device receives a polling response containing such an indicator, the master device broadcasts the accompanying data to every device in the piconet. This broadcasting may be performed by the master device immediately upon receiving the data with a dedicated destination indicator. Such features are described in greater detail below.
II. Operation
In a step 302, a device in the network decides to establish a MUG. As indicated by a step 304, if this device is currently a slave device, then it initiates a master/slave switch in a step 306.
In a step 308, a MUG is formed (or “set up”). This involves the master device sending a MUG joining request individually to each prospective MUG member in the short-range network. These prospective members are slave devices. This request may include multicast address (i.e., an LT address) that is allocated to the MUG. Such an address is referred to herein as a “MUG address”.
In a step 310, each of the prospective MUG members individually decides whether to join the MUG. If a prospective member decides to join, then it sends ajoining acknowledgement message to the master. Accordingly, the master device may receive one or more joining acknowledgement messages from prospective MUG members in a step 312.
After the multicast group has been set up, operation proceeds to a step 314. In this step, multicast data may be transmitted to members of the MUG and/or broadcast data may be transmitted to all slave devices in the short-range wireless communications network. The multicast data may include data originated by the master device. Moreover, in embodiments of the present invention, the multicast data may include data originated by slave device(s) in the MUG. The master device is required to forward such data to other devices in the MUG. An example of such data transfer is described with reference to
The slave devices in the network receive these packets (similar to the receipt of broadcast packets) in a step 352. However, as shown by a step 354, only the slave devices in the MUG accept these packets, because the packets indicate the MUG address as their destination.
Multicast data may be delivered in either an unacknowledged or an acknowledged manner. When unacknowledged delivery is employed, the slave devices are not required to acknowledge receipt of multicast data. However, when acknowledged delivery is employed, the slave devices acknowledge receipt to the master device. Such acknowledgements may also be used for slave devices to initiate the transmission of their own multicast or unicast data to the other device(s) in the MUG.
Accordingly, as indicated by a step 355, when acknowledged delivery is employed, operation proceeds to a step 356. However, when unacknowledged delivery is employed, operation proceeds to a step 362.
In step 356, each slave device in the MUG transmits an acknowledgment to the master device. Performance of step 356 differs from typical acknowledgement procedures because all of the MUG members cannot respond at the same time. Therefore, in embodiments of the present invention, all of the slave devices will transmit acknowledgements (ACKs) one after the other in a predetermined sequence. In Bluetooth implementations, these ACKs may be in the form of packets that are transmitted in master-to-slave slots, if needed. For example, short ACK packets may be employed so that two can be transmitted in a single time slot. However, various ACK packet sizes may be employed, such as ones that require a single time slot for transmission and ones in which more than two can be transmitted in a single time slot.
In embodiments, each acknowledgment may include a flag (referred to herein as a data flag) that the slave device can set to indicate that it has data to transmit. This data may be unicast data directed to the master device or multicast data directed to the MUG. In addition, this data may be broadcast data directed to all devices in the short-range wireless communications network. If the flag indicates that the slave has data, the master device will subsequently poll the slave device.
The master device receives the ACKs in a step 358. In this step, the master device identifies each acknowledgment having a data flag that is set. From this identification, the master device determines which devices (if any) have data (e.g., multicast data, unicast data, or broadcast data) to transmit.
In a step 360, the master device performs a polling operation in which it receives data from each of the slave devices having data. Any multicast data will be identified by the originating slave device sending the data with the MUG LT address. If this data is multicast, the master device transmits it to the slave devices in the MUG. However, any unicast data will be identified by the originating slave device sending the data with its own LT address. Moreover, any broadcast data will be identified by the originating slave device sending the data with a broadcast identifier as its LT address (e.g., “000”).
As described above, a step 362 is performed when the unacknowledged delivery is employed. In this step the master device polls all slave devices in the network. This step may be performed periodically, for example, at predetermined intervals.
In alternate embodiments, steps 350 and 354 may involve broadcast transmission instead of multicast transmission. For instance, in step 350 the master device may transmit one or more packets with a broadcast address (e.g., an LT address of “000”) to all of the slave devices in the network. Also, in step 354, all of the slave devices in the network may accept the packet(s).
Steps 360 and 362 both involve polling operations. Therefore, an example of such polling operations is described with reference to
This interaction includes a step 380, in which the master device transmits a polling packet to the slave device. In a step 382, the slave device responds to this polling packet with data and a defined destination indicator. The destination indicator informs the master to process and possibly forward the data to intended recipients without requiring the master device to circulate the data to the application layer.
In embodiments of the present invention, the responding slave device may use the MUG address (i.e., LT address) as the destination indicator if the data is multicast data. However, if the data is broadcast data, the responding slave device uses another type of indicator (such as a broadcast LT address) for informing the master device that the data is to be broadcast to all slave devices in the wireless network. Otherwise, if the data is unicast data directed to the master device, the slave device uses its own LT address. It should be noted that the present invention is not intended to be limited to any specific address as the destination indicator. Therefore, other kinds of addresses can also be used as destination indicators, depending on particular embodiments of the present invention.
In a step 384, the master device receives the data from the slave device. An optional step 386 may be performed after step 384. In this step, the master device circulates the received data to a certain level (i.e., a certain protocol layer) for processing. This processing includes, for example, any required decryption. However, the master device does not need to push this data up to application layer to determine that it is multicast, broadcast, or unicast data.
In a step 387, the master device determines the type of data (e.g., multicast, broadcast, or unicast) transmitted by the slave device. In embodiments, this determination is based on the destination indicator (e.g., LT address) employed by the slave device. As shown in
In step 388, the master device transmits the multicast data to other devices in the MUG. As indicated by a step 389, an optional step 390 is performed when acknowledged delivery is employed. In this step, the master device awaits and receives ACKs from the slave devices in the MUG. However, in embodiments, the slave device that originated the data will not necessarily transmit an ACK because it doesn't need to receive its own data (if it knows that it will be its own data). Accordingly, the master device will not necessarily await an ACK from this device.
In step 392, the master device transmits the received broadcast data to all slave devices in the network.
In step 396, the unicast data is received by higher layer process(es) (e.g., user applications) within the master device. Accordingly, this step may involve storing the data and/or processing it according to these higher layer process(es).
The operations of
III. Paging and Authentication
As described above with reference to
More particularly, the initiating device enters the paging state and transmits one or more paging packets. Each of these paging packets includes an identification number based on the address of the remote device. Meanwhile, the remote device (which is in the page scan state) responds to the paging packets by transmitting a packet containing its address.
The initiating device receives this packet from the remote device. In response, the initiating device transmits a frequency hop synchronization (FHS) packet. The FHS packet is used to pass information that allows the remote device to synchronize with the frequency hopping sequence of the initiating device. Upon receipt of this FHS packet, the remote device transmits a further packet to confirm receipt of the FHS packet.
At this point, a Bluetooth link is formed between the initiating device and the remote device. Accordingly, both devices enter into a connection state. In the connection state, the initiating device operates as a master device and the remote device operates as a slave device. Thus, the remote device employs the timing and frequency hopping sequence of the initiating device. Additionally, the initiating device transmits a packet to verify that a link has been set up. The remote device confirms this link by sending a packet to the initiating device.
In addition, step 301 may include an authentication process performed between the master device and each slave device. Authentication is a process where two devices verify that they both have the same secret key. This secret key can then be used to implement security features, such as link encryption.
IV. Packet Formats
As described above, slave devices may transmit acknowledgments (or ACKs) in response to multicast data transmitted from a master device. For instance, in step 356 of
Accordingly,
The packet formats presented in
As described above, slave devices may transmit data packets. For instance, in step 382 of
The packet format of
V. Wireless Multiplayer Gaming
As shown in
The environment of
For the environment of
VI. Wireless Communications Device
The device architecture of
Host 701 is responsible for functions involving user applications and higher protocol layers. Therefore, host 701 may include a multiplayer game application. Such an application may require information to be transmitted to other players at multiple remote devices. Accordingly, host 701 may rely on the multicasting techniques of the present invention.
Link manager 704 performs functions related to link set-up, security and control. These functions involve discovering corresponding link managers at remote devices and communicating with them according to the link manager protocol (LMP). More particularly, link manager 704 exchanges LMP PDUs with link managers at remote devices.
Link manager 704 exchanges information with host 701 across HCI 702. This information may include commands received from host 701, and information transmitted to host 701. Examples of such commands is host 701 (when in a master device) directing the device to establish a MUG and (when in a slave device) directing the device to join a MUG. HCI 702 defines a set of messages, which provide for such exchanges of information.
Link controller 706 operates as an intermediary between link manager 704 and transceiver 708. Link controller 706 also performs baseband processing for transmissions, such as error correction encoding and decoding. In addition, link controller 706 exchanges data between corresponding link controllers at remote devices according to physical layer protocols. Examples of physical layer protocols include retransmission protocols such as the automatic repeat request (ARQ) protocol. In embodiments, link controller 706 may forward multicast data and/or broadcast data received from slave devices to other slave devices. In addition, link controller 706 may generate data for transmission, such as acknowledgments (ACKs), according to the techniques of the present invention.
Transceiver 708 is coupled to antenna 710. Transceiver 708 includes electronics to (in conjunction with antenna 710) exchange wireless signals with devices. Such electronics include modulators, demodulators, amplifiers, and filters.
Device architectures, such as the architecture of
Processor 810 controls device operation. As shown in
Memory 812 includes random access memory (RAM), read only memory (ROM), and/or flash memory, and stores information in the form of data and software components (also referred to herein as modules). The data stored by memory 812 may be associated with particular software components.
The software components stored by memory 812 include instructions (also referred to as computer program logic) that can be executed by processor 810. Various types of software components may be stored in memory 812. For instance, memory 812 may store software components that control the operation of transceiver 708. Also, memory 812 may store software components that provide for the functionality of communications host 701, HCI 702, link manager 704, and link controller 706.
As shown in
The elements shown in
As described above, the direction or forwarding of data to multiple devices (such as multiple slave devices) typically requires forwarding features to be implemented at the application layer.
In contrast,
In further embodiments of the present invention, the processing in the local device 904′ may also include processing at the link manager layer (i.e., by link manager 704). However, such embodiments also provide significant reductions in processing times and transmission latencies.
VII. Device Interaction
Scenario 1016 involves unicast transmission. Accordingly, this scenario includes a step 1002 in which the master device polls the slave device on a unicast channel by sending a packet with the slave device's LT_ADDR. In response, the slave device sends a unicast packet to the master device in a step 1004. This packet includes the slave device's LT_ADDR as its destination indicator.
Scenario 1018 involves multicast transmission. Thus, this scenario includes a step 1006 in which the master device polls the slave device on a unicast channel by sending a packet with the slave device's LT_ADDR. In response, the slave device sends a packet to the master device in a step 1008. This packet includes a MUG's LT_ADDR as its destination indicator. Accordingly, the master device forwards the multicast packet in a step 1009 for reception for all slave devices in the MUG.
Scenario 1020 involves broadcast transmission. Thus, this scenario includes a step 1010 in which the master device polls the slave device on a unicast channel by sending a packet with the slave device's LT_ADDR. In response, the slave device sends a packet to the master device in a step 1012. This packet includes a broadcast LT_ADDR as its destination indicator. Accordingly, the master device forwards the broadcast packet in a step 1013 for reception by all slave devices in the network.
VIII. Conclusion
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not in limitation. For instance, although examples have been described involving Bluetooth, other wireless communications systems are within the scope of the present invention.
Accordingly, it will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.