Patent Description:
Wireless communication systems are widely deployed to provide various types of communication content, such as voice, data, multimedia, and so on. Typical wireless communication systems are multiple-access systems capable of supporting communication with multiple users by sharing available system resources (e.g., bandwidth, transmit power, etc.). Examples of such multiple-access systems include Code Division Multiple Access (CDMA) systems, Time Division Multiple Access (TDMA) systems, Frequency Division Multiple Access (FDMA) systems, Orthogonal Frequency Division Multiple Access (OFDMA) systems, and others. These systems are often deployed in conformity with specifications such as Long-Term Evolution (LTE) provided by the Third Generation Partnership Project (3GPP), Ultra Mobile Broadband (UMB) and Evolution Data Optimized (EV-DO) provided by the Third Generation Partnership Project <NUM> (3GPP2), <NUM> provided by the Institute of Electrical and Electronics Engineers (IEEE), etc..

Wireless devices increasingly communicate by using multiple networks simultaneously. Moreover, they may compete with other devices to access the medium. For example, a host device may communicate with a first device in accordance with a first network (for example, a short-range network like Bluetooth) while simultaneously communicating with a second device in accordance with a second network (for example, a mid-range network like WiFi). Meanwhile, a third device may be communicating in accordance with a third network, interfering with efforts of the host device to communicate on the first network and/or the second network.

When multiple networks are used simultaneously, coexistence issues arise. For example, the host device may be forced to communicate in bursts on the first network in order to avoid interfering with the second network and/or the third network. As a result, latency and bandwidth usage associated with the first network may increase. These improvements may be of special importance for time-critical communications, for example, those using classic Bluetooth Basic Rate/Enhanced Data Rate (BR/EDR) for operating in accordance with streaming audio protocols like Bluetooth's Advanced Audio Distribution Profile (A2DP). New techniques are needed for improving latency and reducing bandwidth usage. <CIT> refers to real-time relay of wireless communications within a scatternet. As, the audio bud C is not a member of the S2B piconet, the source device A is not directly transmitting data to the audio bud C, but rather audio bud C is eavesdropping on the S2B communications. In a scenario, where the audio bud C <NUM> failed to receive the source packet <NUM> from the source device A <NUM> (e.g., due to a bad link), both audio buds B <NUM> and C <NUM> may tune to the S2B piconet during the source Tx slot <NUM> and listen/receive a Tx source packet <NUM>. After the Rx times <NUM> and <NUM>, the audio buds B <NUM> and C <NUM> may tune to the B2B piconet and the audio bud B <NUM> may have an available Rx time <NUM> to listen for the ACK Tx packet from the audio bud C <NUM>. Specifically, whenever the audio bud C <NUM> successfully receives that source packet <NUM>, the audio bud C <NUM> may send a short private Tx ACK to the audio bud B <NUM> immediately following the A-B transmission. If the audio bud B <NUM> does not receive the private ACK from audio bud C <NUM> within the designated Rx time <NUM> after the transmission of the Tx source packet <NUM> from the source device A <NUM>, the audio bud B <NUM> may presume that the audio bud C <NUM> failed to receive the packet <NUM>. Accordingly, the audio bud B <NUM> may relay the source packet <NUM> during a B2B Tx <NUM> to the audio bud C <NUM>. <CIT> is directed to scheduling communication for devices in a wireless personal area network (WPAN), including optimizing Bluetooth® (BT) connections between a source device and one or more sets of accessory devices. When the first and second wireless ear buds are communicating between each other, they can be unavailable to receive communication, such as audio stream packets, from the source device. When the source device is not aware of timing for communication between the first and second wireless ear buds, audio packets may be transmitted that cannot be received. Such audio packets require retransmission, which can reduce the available bandwidth on a shared radio frequency (RF) band used by both piconets, as well as for other communications.

host piconet during a transmitting slot group of the P/S piconet in response to a determination that the primary device is not attempting to communicate with the secondary device, and transmit to the primary device over the P/S piconet during the transmitting slot group of the P/S piconet in response to a determination that the primary device is attempting to communicate with the secondary device.

In accordance with yet other aspects of the disclosure, another apparatus is disclosed. The apparatus may comprise means for listening to a primary device during a receiving slot group of a primary/secondary (P/S) piconet shared between the primary device and the secondary device, means for determining based on the listening during the receiving slot group whether the primary device is attempting to communicate with the secondary device, means for listening to a host device on a host piconet during a transmitting slot group of the P/S piconet in response to a determination that the primary device is not attempting to communicate with the secondary device, and means for transmitting to the primary device over the P/S piconet during the transmitting slot group of the P/S piconet in response to a determination that the primary device is attempting to communicate with the secondary device.

In accordance with yet other aspects of the disclosure, a non-transitory computer-readable medium is disclosed. The non-transitory computer-readable medium may comprise code for listening to a primary device during a receiving slot group of a primary/secondary (P/S) piconet shared between the primary device and the secondary device, code for determining based on the listening during the receiving slot group whether the primary device is attempting to communicate with the secondary device, code for listening to a host device on a host piconet during a transmitting slot group of the P/S piconet in response to a determination that the primary device is not attempting to communicate with the secondary device, and code for transmitting to the primary device over the P/S piconet during the transmitting slot group of the P/S piconet in response to a determination that the primary device is attempting to communicate with the secondary device.

In accordance with yet other aspects of the disclosure, another method is disclosed. The method may comprise listening to a host device during a receiving slot group of a host piconet, determining whether a secondary device synchronization condition is met, synchronizing with a secondary device over a P/S piconet in response to a determination that the secondary device synchronization condition is met, and listening to the host device during a subsequent receiving slot group of the host piconet in response to a determination that the synchronization condition is not met.

In accordance with yet other aspects of the disclosure, another apparatus is disclosed. The apparatus may comprise a transceiver system, a memory system configured to store data, instructions, or a combination thereof, and a processing system coupled to the transceiver system and the memory system. The transceiver system may be configured to listen to a host device during a receiving slot group of a host piconet. The processing system may be configured to determine whether a secondary device synchronization condition is met, and synchronize with a secondary device over a P/S piconet in response to a determination that the secondary device synchronization condition is met. The transceiver system may be further configured to listen to the host device during a subsequent receiving slot group of the host piconet in response to a determination that the synchronization condition is not met.

In accordance with yet other aspects of the disclosure, another apparatus is disclosed. The apparatus may comprise means for listening to a host device during a receiving slot group of a host piconet, means for determining whether a secondary device synchronization condition is met, means for synchronizing with a secondary device over a P/S piconet in response to a determination that the secondary device synchronization condition is met, and means for listening to the host device during a subsequent receiving slot group of the host piconet in response to a determination that the synchronization condition is not met.

In accordance with yet other aspects of the disclosure, another non-transitory computer-readable medium is disclosed. The non-transitory computer-readable medium may comprise code for listening to a host device during a receiving slot group of a host piconet, code for determining whether a secondary device synchronization condition is met, code for synchronizing with a secondary device over a P/S piconet in response to a determination that the secondary device synchronization condition is met, and code for listening to the host device during a subsequent receiving slot group of the host piconet in response to a determination that the synchronization condition is not met.

<FIG> generally illustrates a wireless environment <NUM> that includes a primary device <NUM>, a secondary device <NUM>, and a host device <NUM>. The primary device <NUM> and the host device <NUM> may establish a host piconet <NUM> to facilitate communication between the primary device <NUM> and the host device <NUM>. In some implementations, the primary device <NUM> may be a master of the host piconet <NUM> (with the host device <NUM> as a slave), and in other implementations, the host device <NUM> may be the master of the host piconet <NUM> (with the primary device <NUM> as the slave). The host device <NUM> may be configured to transmit a series of data packets to the primary device <NUM> over the host piconet <NUM>. If the primary device <NUM> receives a particular data packet, it may transmit an acknowledgement (ACK) to the host device <NUM>. When the host device <NUM> receives the ACK, it may select a next data packet from the series for transmission. In this manner, the host device <NUM> may transmit each data packet in a series of data packets to the primary device <NUM>. However, the host device <NUM> may also be obliged to coexist with other networks (not shown in <FIG>). For example, the host device <NUM> may be required to observe a discontinuous transmission/reception scheme when communicating on the host piconet <NUM> in order to avoid undue interference with a nearby WiFi network. As a result, the primary device <NUM> may receive intermittent bursts of data packets from the host device <NUM>. The bursts may arrive at unpredictable times, and may be punctuated by indefinite periods of reduced network activity.

The primary device <NUM> and the secondary device <NUM> may establish a primary/secondary (P/S) piconet <NUM> to facilitate communication within the wireless environment <NUM>. It will be understood that there may be any number of secondary devices operating on the P/S piconet <NUM>, but for brevity, the present disclosure will describe the behavior of a single secondary device, the secondary device <NUM>. In some implementations, the primary device <NUM> may be a master of the P/S piconet <NUM> (with the secondary device <NUM> as a slave), and in other implementations, the secondary device <NUM> may be the master of the P/S piconet <NUM> (with the primary device <NUM> as the slave). In the present disclosure, communications between the primary device <NUM> and the secondary device <NUM> over the P/S piconet <NUM> may be broadly referred to as "synchronizations".

In one example of a synchronization, the primary device <NUM> may provide the secondary device <NUM> (over the P/S piconet <NUM>) with host piconet configuration data relating to the host piconet <NUM>. This host piconet configuration data may enable the secondary device <NUM> to 'eavesdrop' on the host piconet <NUM> without joining the host piconet <NUM> (sometimes referred to as "sniffing"). This may enable the secondary device <NUM> to receive one or more of the data packets that are transmitted from the host device <NUM> to the primary device <NUM>. The host piconet configuration data may include a device address of a master of the host piconet <NUM> (i.e., the host device <NUM> or the primary device <NUM>), a clock offset and a slot offset of the host piconet <NUM>, a maximum packet size for communicating with the host device <NUM>, a packet type table indicating a data rate of the host piconet <NUM>, a channel map indicating frequencies used by the host piconet <NUM>, a preferred data rate indicating an error coding scheme, a logical transport address of an asynchronous connection-oriented logical transport, synchronous connection-oriented logical transport, or enhanced synchronous connection-oriented logical transport between the host device and the primary device, any other suitable information, or any combination thereof. The secondary device <NUM>, having been provided with the host piconet configuration data, may be enabled to determine a host piconet timing associated with the host piconet <NUM>. For example, the host piconet configuration data may enable the secondary device <NUM> to identify transmissions from a master of the host piconet <NUM> and determine the host piconet timing based on the identified transmissions. Once the host piconet timing is determined, the secondary device <NUM> may be configured to listen to the host device <NUM> on the host piconet <NUM> in accordance with the determine host piconet timing.

As noted above, once the secondary device <NUM> is provided with the host piconet configuration data, the secondary device <NUM> may be capable of listening for data packets transmitted on the host piconet <NUM>. However, it will be understood that the secondary device <NUM> may not send ACKs (a task which is left to the primary device <NUM>). As a result, if the secondary device <NUM> misses a particular data packet, the host device <NUM> may proceed to the next without knowing that the secondary device <NUM> has missed the data packet.

Accordingly, the primary device <NUM> may be configured to synchronize with the secondary device <NUM> for the purpose of determining if any packets have been missed, identifying the missed packets (if there are any), and selectively relaying any missed data packets to the secondary device <NUM> (if necessary). Planned periodic synchronizations between the primary device <NUM> and the secondary device <NUM> may be complicated by the unpredictability of the bursts of data packets provided by the host device <NUM>. The overall efficiency of the system depicted in <FIG> can be improved if the primary device <NUM> is configured to capture sudden bursts of data packets from the host device <NUM> while simultaneously meeting its obligations to the secondary device <NUM>.

The primary device <NUM> may include a transceiver system <NUM>, a memory system <NUM>, a processing system <NUM>, and optional other components <NUM>. The transceiver system <NUM> may be configured to transmit and/or receive signals over the host piconet <NUM>, the P/S piconet <NUM>, and/or any other medium. The transceiver system <NUM> may be configured to operate in accordance with a Bluetooth protocol, a wireless land area network (WLAN) protocol, a wireless wide area network (WWAN) protocol, and/or any other suitable protocol. As an example, the transceiver system <NUM> may be configured to transmit and/or receive streaming audio data. The streaming audio data may be transmitted asynchronously using, for example, Bluetooth Basic Rate / Enhanced Data Rate (BR/EDR) protocol.

The memory system <NUM> may be configured to store data, instructions, or a combination thereof. The memory system <NUM> may comprise Random-Access Memory (RAM), flash memory, Read-only Memory (ROM), Erasable Programmable Read-only Memory (EPROM), Electrically Erasable Programmable Read-only Memory (EEPROM), registers, hard disk, a removable disk, a CD-ROM, or any other form of non-transitory storage medium. As used herein the term "non-transitory" does not exclude any physical storage medium or memory and particularly does not exclude dynamic memory (e.g., RAM) but rather excludes only the interpretation that the medium can be construed as a transitory propagating signal.

The processing system <NUM> may be coupled to the transceiver system <NUM>, the memory system <NUM>, and the other components <NUM>. The processing system <NUM> may be configured to perform operations in accordance with the instructions stored in the memory system <NUM>. The processing system <NUM> may be configured to transmit commands to the other components of the primary device <NUM>. The commands may be transceiver commands associated with tuning to a particular frequency, transmitting and receiving in accordance with a particular timing, or transferring data to or from the transceiver system <NUM>. Additionally or alternatively, the commands may be memory commands associated with storing and/or retrieving data and/or instructions.

The other components <NUM> may include one or more user inputs, one or more user output, a battery, and/or any other suitable components. In accordance with aspects of the disclosure, the other components <NUM> may include a speaker configured to transmit an audio signal. In particular, the speaker may be configured to receive an electronic signal from within the primary device <NUM> and convert the electronic signal into an audio signal.

The secondary device <NUM> may include a transceiver system <NUM>, a memory system <NUM>, a processing system <NUM>, and optional other components <NUM>. The transceiver system <NUM>, the memory system <NUM>, the processing system <NUM>, and the other components <NUM> may be analogous to the transceiver system <NUM>, the memory system <NUM>, the processing system <NUM>, and the other components <NUM> included in the primary device <NUM>. For brevity, further description of these components will be omitted.

In some implementations, the primary device <NUM> and the secondary device <NUM> may collectively be provided as wireless earbuds. For example, the wireless earbuds may be configured to play, into the ears of a listener, stereo sound comprising left and right audio streams. The primary device <NUM> may transmit the left audio stream while the secondary device <NUM> transmits the right audio stream, or vice-versa.

The host device <NUM> may include a transceiver system <NUM>, a memory system <NUM>, a processing system <NUM>, and optional other components <NUM>. The transceiver system <NUM>, the memory system <NUM>, the processing system <NUM>, and the other components <NUM> may be analogous to the transceiver system <NUM>, the memory system <NUM>, the processing system <NUM>, and the other components <NUM> included in the primary device <NUM>. For brevity, further description of these components will be omitted. The host device <NUM> may comprise a set top box, a music player, a video player, an entertainment unit, a navigation device, a personal digital assistant (PDA), a fixed location data unit, a computer, a laptop, a tablet, a communications device, a mobile phone, or any other suitable device.

Certain conditions in the wireless environment <NUM> may prevent consistent transmission and/or reception of the data. Accordingly, new techniques are required for improving transmission of host data in a wireless environment analogous to the wireless environment <NUM>. As noted above, to minimize latency and bandwidth usage, new techniques may meet two requirements. First, whenever the host device <NUM> is transmitting to the primary device <NUM>, the secondary device <NUM> should be listening to that communication. This enables the secondary device <NUM> to, for example, receive data packets transmitted from the host device <NUM> to the primary device <NUM>. Second, whenever the primary device <NUM> elects to communicate with the secondary device <NUM>, the secondary device <NUM> should be available and listening to the primary device <NUM>. This enables the primary device <NUM> and the secondary device <NUM> to flexibly and opportunistically exchange control signaling and/or missed packets as necessary. In accordance with aspects of the disclosure, the secondary device <NUM> meets these two requirements by observing an alternating listening pattern in which it listens to the primary device <NUM> and the host device <NUM> in alternating slot groups, occasionally interrupting the alternating listening pattern to synchronize with the primary device <NUM>. The alternating listening patterns will be as will be discussed in greater detail below, with reference to <FIG>.

<FIG> generally illustrate timing diagrams of the host piconet <NUM> shared by the host device <NUM> and the primary device <NUM>. A piconet such as the host piconet <NUM> may have a master device and a slave device. In the scenario of <FIG>, the host device <NUM> is the master of the host piconet <NUM>, whereas in <FIG>, the primary device <NUM> is the master of the host piconet <NUM>. Although the following description is directed to the host piconet <NUM>, it will be understood that other piconets described in the present disclosure (for example, the P/S piconet <NUM>) may have similar features.

<FIG> generally illustrates a timing diagram 200A of the host piconet <NUM> shared by the host device <NUM> and the primary device <NUM> in which the host device <NUM> is master of a host piconet <NUM>. The timing diagram 200A includes a host device timeline <NUM> and a primary device timeline <NUM>. As will be discussed in greater detail below, the host piconet <NUM> may operate in accordance with a time-division duplexing (TDD) scheme in which a master device transmits for the duration of a particular group of consecutive time slots (hereinafter "slot group") while one or more slave devices receive. The roles may then reverse, such that in a subsequent slot group (for example, an immediately subsequent slot group), one of the one or more slave devices transmits while the master device receives. Each pair of consecutive slot groups, in which the master transmits and then the slave transmits, may be referred to as a "frame". In Bluetooth, for example, a single time slot may have a duration of six-hundred and twenty-five microseconds [<NUM>], and a frame may have a duration of twelve-hundred and fifty microseconds [<NUM>]. A single slot group may occupy one, three, or five slots. Accordingly, a frame may occupy two, four, six, eight, or ten slots. For purposes of illustration, each slot group in the present example occupies one slot. However, it will be understood that the term slot group may refer to a duration that includes any suitable number of time slots.

The host device timeline <NUM> shows the transmission and reception pattern of the host device <NUM>, whereas the primary device timeline <NUM> shows the transmission and reception pattern of the primary device <NUM>. The host piconet <NUM> is established such that the slots of the TDD scheme (labeled '<NUM>' through '<NUM>' in <FIG>) are of uniform duration and alignment, known to both the host device <NUM> and the primary device <NUM>. In the present example, each time slot corresponds to a single slot group, however this is merely an example since, as noted above, a slot group may include more than one slot.

The slots may be divided into pairs of consecutive slot groups (frames, as noted above). In the example of <FIG>, a first frame <NUM> includes a zeroth slot and a first slot (labeled '<NUM>' and '<NUM>'). Similarly, a second frame <NUM> includes slots '<NUM>' and '<NUM>', a third frame <NUM> includes slots '<NUM>' and '<NUM>', a fourth frame <NUM> includes slots '<NUM>' and '<NUM>', and a fifth frame <NUM> include slots '<NUM>' and '<NUM>'. Although only five frames are depicted in <FIG>, it will be understood that the transmission and reception pattern depicted in <FIG> may continue indefinitely.

As noted above, <FIG> depicts a scenario wherein the host device <NUM> is the master of the host piconet <NUM>. As master, the host device <NUM> may have a host piconet transmission opportunity <NUM> in the first slot of each frame (each even-numbered slot in the present example). By contrast, the primary device <NUM> has an opportunity to transmit during a host piconet transmission opportunity <NUM> appearing in the last slot of each frame (each odd-numbered slot in the present example). Although only one of each is labeled in <FIG>, it will be understood that <FIG> depicts five instances of the host piconet transmission opportunity <NUM> and another five instances of the host piconet transmission opportunity <NUM>.

<FIG> generally illustrates a timing diagram 200B of the host piconet <NUM> shared by the host device <NUM> and the primary device <NUM> in which the primary device <NUM> is master of the host piconet <NUM>.

Like the timing diagram 200A, the timing diagram 200B depicts the host device timeline <NUM> and the primary device timeline <NUM>. Moreover, the slots are labeled '<NUM>' through '<NUM>' and are grouped into five frames. Moreover, the host piconet transmission opportunity <NUM> is an opportunity for the primary device <NUM> to transmit to the host device <NUM> and the host piconet transmission opportunity <NUM> is an opportunity for the host device <NUM> to transmit to the primary device <NUM>. However, by contrast to the scenario depicted in <FIG>, the primary device <NUM> is master of the host piconet <NUM>. As a result, the host piconet transmission opportunity <NUM> (reserved for transmissions from the primary device <NUM> to the host device <NUM>) occurs in the first slot of each frame (i.e., even-numbered slots in the present example) rather than the last slot of each frame (i.e., odd-numbered slots in the present example).

Although <FIG> are directed to example communications over the host piconet <NUM>, it will be understood that a similar TDD scheme may be used for communications over the P/S piconet <NUM>. In particular, a master of the P/S piconet <NUM> (which may be the primary device <NUM> or the secondary device <NUM>) may transmit in a first slot group of a frame, and a slave may transmit in a second slot group of the frame.

<FIG> generally illustrates a method <NUM> performed by the secondary device <NUM>. The method <NUM> depicted in <FIG> will be described as it would be performed by the secondary device <NUM> depicted in <FIG>.

At <NUM>, the secondary device <NUM> listens to the primary device <NUM> during a receiving slot group of the P/S piconet <NUM> shared between the primary device <NUM> and the secondary device <NUM>. The listening at <NUM> may be performed by, for example, the transceiver system <NUM> depicted in <FIG>. Accordingly, the transceiver system <NUM> may constitute means for listening to a primary device during a receiving slot group of a P/S piconet shared between the primary device and the secondary device. Moreover, the processing system <NUM> may be configured to operate the transceiver system <NUM> by executing code stored in the memory system <NUM>. Accordingly, the memory system <NUM> may be a non-transitory computer-readable medium comprising code for listening to a primary device during a receiving slot group of a P/S piconet shared between the primary device and the secondary device.

As used herein, the term "receiving slot group" corresponds to the perspective of a particular device. For example, the listening at <NUM> is performed by the secondary device <NUM>, therefore the "receiving slot group of the P/S piconet <NUM>" corresponds to a slot group in the TDD scheme in which the secondary device <NUM> is configured to receive a data packet over the P/S piconet <NUM>. If the secondary device <NUM> is a master of the P/S piconet <NUM>, then the "receiving slot group" of the secondary device <NUM> is the first slot group of a frame, whereas if the secondary device <NUM> is a slave of the P/S piconet <NUM>, then the "receiving slot group" of the secondary device <NUM> is the second slot group of the frame. This explanation is important because elsewhere in the field, the term "receiving slot group" may refer to the slot group in which the master of the P/S piconet <NUM> is configured to receive (i.e., always corresponding to the second slot group of a particular frame). Accordingly, it will be understood that in the method <NUM>, the "receiving slot group" may be the first slot group of a particular frame or the second slot group of the particular frame, i.e., in whichever slot group the secondary device <NUM> is configured to receive over the P/S piconet <NUM>, regardless of whether the secondary device <NUM> is a master or a slave of the P/S piconet <NUM>.

At <NUM>, the secondary device <NUM> determines based on the listening at <NUM> whether a packet is received from the primary device <NUM>. If no packet is received at <NUM> ('no' at <NUM>), then the method <NUM> proceeds to <NUM>. If a packet is received at <NUM> ('yes' at <NUM>), then the method <NUM> proceeds to <NUM>. The determining at <NUM> may be performed by, for example, the memory system <NUM> and/or the processing system <NUM> depicted in <FIG>. Accordingly, the memory system <NUM> and/or the processing system <NUM> may constitute means for determining based on the listening during the receiving slot group at <NUM> whether the primary device <NUM> is attempting to communicate with the secondary device <NUM>. Moreover, the processing system <NUM> may be configured to perform the determining at <NUM> by executing code stored in the memory system <NUM>. Accordingly, the memory system <NUM> may be a non-transitory computer-readable medium comprising code for determining based on the listening during the receiving slot group at <NUM> whether the primary device <NUM> is attempting to communicate with the secondary device <NUM>.

At <NUM>, the secondary device <NUM> listens to the host device <NUM> on the host piconet <NUM> during a transmitting slot group of the P/S piconet <NUM> in response to a determination at <NUM> that the primary device <NUM> is not attempting to communicate with the secondary device <NUM>. The listening at <NUM> may enable the secondary device <NUM> to receive a data packet from the host device <NUM> (in the event that the host device <NUM> has transmitted a data packet). The listening at <NUM> may be performed by, for example, the transceiver system <NUM> depicted in <FIG>. Accordingly, the transceiver system <NUM> may constitute means for listening to the host device <NUM> on the host piconet <NUM> during a transmitting slot group of the P/S piconet <NUM> in response to a determination at <NUM> that the primary device <NUM> is not attempting to communicate with the secondary device <NUM>. Moreover, the processing system <NUM> may be configured to operate the transceiver system <NUM> by executing code stored in the memory system <NUM>. Accordingly, the memory system <NUM> may be a non-transitory computer-readable medium comprising code for to the host device <NUM> on the host piconet <NUM> during a transmitting slot group of the P/S piconet <NUM> in response to a determination at <NUM> that the primary device <NUM> is not attempting to communicate with the secondary device <NUM>.

As used herein, the term "transmitting slot group" is analogous to the term "receiving slot group" in that it corresponds to the perspective of a particular device. For example, the listening at <NUM> is performed by the secondary device <NUM>, therefore the "transmitting slot group of the P/S piconet <NUM>" corresponds to a slot group in the TDD scheme in which the secondary device <NUM> is configured to transmit a data packet over the P/S piconet <NUM>. If the secondary device <NUM> is a master of the P/S piconet <NUM>, then the "transmitting slot group" of the secondary device <NUM> is the first slot group of a frame, whereas if the secondary device <NUM> is a slave of the P/S piconet <NUM>, then the "transmitting slot group" of the secondary device <NUM> is the second slot group of the frame.

At <NUM>, the secondary device <NUM> transmits to the primary device <NUM> over the P/S piconet <NUM> during the transmitting slot group of the P/S piconet <NUM> in response to a determination at <NUM> that the primary device <NUM> is attempting to communicate with the secondary device <NUM>. The transmitting at <NUM> may be performed by, for example, the transceiver system <NUM> depicted in <FIG>. Accordingly, the transceiver system <NUM> may constitute means for transmitting to the primary device <NUM> over the P/S piconet <NUM> during the transmitting slot group of the P/S piconet <NUM> in response to a determination at <NUM> that the primary device <NUM> is attempting to communicate with the secondary device <NUM>. Moreover, the processing system <NUM> may be configured to operate the transceiver system <NUM> by executing code stored in the memory system <NUM>. Accordingly, the memory system <NUM> may be a non-transitory computer-readable medium comprising code for transmitting to the primary device <NUM> over the P/S piconet <NUM> during the transmitting slot group of the P/S piconet <NUM> in response to a determination at <NUM> that the primary device <NUM> is attempting to communicate with the secondary device <NUM>.

At <NUM>, the secondary device <NUM> optionally determines whether to listen to the host device <NUM> or the primary device <NUM>. As will be discussed in greater detail below, the decision to listen to a particular device to may depend on a timing difference between the host piconet <NUM> and the P/S piconet <NUM>, or any other suitable factor. If the secondary device <NUM> determines to listen to the host device <NUM> ('host' at <NUM>), then the method <NUM> proceeds to the listening at <NUM>, described above. If the secondary device <NUM> determines to listen to the primary device <NUM> ('pri' at <NUM>), then the method <NUM> returns to the listening at <NUM>, described above.

After listening at <NUM> to the host device <NUM>, the secondary device <NUM> may optionally proceed to <NUM>, <NUM>, and <NUM>. These optional blocks may correspond to a scenario in which the secondary device <NUM> is configured to occasionally, as needed, step into the shoes of the primary device <NUM>. For example, as noted above, the primary device <NUM> is configured to transmit ACKs to the host device <NUM> every time a data packet is received. If the primary device <NUM> is low on battery, processing power, etc., it may determine that overall system efficiency and/or longevity is improved if secondary device <NUM> takes over responsibility for transmitting ACKs. The optional blocks at <NUM>, <NUM>, and <NUM>, described below, correspond to a scenario in which the secondary device <NUM> is configured to take responsibility for such tasks.

At <NUM>, the secondary device <NUM> determines whether a packet has been received from the host device <NUM>. If a packet has been received from the host device <NUM> ('yes' at <NUM>), then the method proceeds to <NUM>. If a packet has not been received from the host device <NUM> ('no' at <NUM>), then the method returns to the determining at <NUM>.

At <NUM>, the secondary device <NUM> determines whether the secondary device <NUM> is designated to respond to the host device <NUM>. If the secondary device <NUM> is designated to respond to the host device <NUM> ('yes' at <NUM>), then the method proceeds to <NUM>. If the secondary device <NUM> is not designated to respond to the host device <NUM> ('no' at <NUM>), then the method returns to the determining at <NUM>. The determining at <NUM> may be based on designation information received from the primary device <NUM> over the P/S piconet <NUM>. For example, if the designation information indicates that the secondary device <NUM> is designated to respond to the host device <NUM>, then the secondary device <NUM> may determine at <NUM> that the secondary device <NUM> is designated to respond to the host device <NUM>. If the designation information is not received, or the received designation information indicates that the secondary device <NUM> is not designated to respond to the host device <NUM>, then the secondary device <NUM> may determine at <NUM> that the secondary device <NUM> is not designated to respond to the host device <NUM>.

At <NUM>, the secondary device <NUM> transmits to the host device <NUM>. The transmitting at <NUM> may include, for example, transmitting of an ACK that acknowledges receipt of the data packet received from the host device <NUM> during the listening at <NUM>.

It will be understood that performance of the method <NUM> depicted in <FIG> may result in the alternating listening pattern described above. In particular, the secondary device <NUM> may use a receiving slot group of the P/S piconet <NUM> to listen to the primary device <NUM>, and then use an immediately subsequent transmitting slot group of the P/S piconet <NUM> to listen to the host device <NUM>. This may continue indefinitely until a packet is received from the primary device <NUM> during a receiving slot group of the P/S piconet <NUM>, indicating that there will be a synchronization (or at least an attempt to synchronize) between the primary device <NUM> and the secondary device <NUM> over the P/S piconet <NUM>. In the event of a synchronization attempt, the secondary device <NUM> may temporarily abandon the alternating listening pattern and instead use the immediately subsequent transmitting slot of the P/S piconet <NUM> to provide a reply to the primary device <NUM>.

In one example, a synchronization attempt may correspond to a process for selective relay of missed data packets. Accordingly, the synchronization may comprise transmitting to or receiving from the primary device <NUM> a selective relay information signal, wherein the selective relay information signal facilitates identification of one or more missed data packets that were transmitted by the host device and missed by the primary device <NUM> or the secondary device <NUM>. Additionally or alternatively, the synchronization may comprise transmitting to or receiving from the primary device <NUM> (a) one or more missed data packets that were transmitted by the host device and missed by the primary device or the secondary device and/or (b) auxiliary information relating to the one or more missed data packets. Additionally or alternatively, the synchronization may comprise transmitting or receiving an ACK indicating that a packet has been received from the primary device <NUM> or a no-acknowledgement (NACK) indicating that the packet was received with errors. The selective relay may include any combination of the above, and may be carried out over a plurality of time slot groups. The plurality of time slot groups may be sequential, or alternatively, non-sequential, i.e., interrupted by an occasional return to the alternating listening pattern.

In another example, a synchronization attempt may correspond to a process for exchange of control data relating to one or more piconets. Accordingly, the synchronization may comprise receiving from the primary device updated host piconet configuration data facilitating continued listening to the host device. Additionally or alternatively, the synchronization may comprise transmitting to or receiving from the primary device updated P/S piconet configuration data facilitating continued communication over the P/S piconet. Additionally or alternatively, the synchronization may comprise transmitting to or receiving from the primary device handover information configured to enable the secondary device to switch from a master of the P/S piconet to a slave of the P/S piconet or vice-versa. Handover may comprise a mandatory step of switching the role of the primary device <NUM> and the secondary device <NUM>. The switching may further result in a role switch for the master and the slave of the P/S piconet <NUM>. The selective relay may include any combination of the above, and may be carried out over a plurality of time slot groups. The plurality of time slot groups may be sequential, or alternatively, non-sequential, i.e., interrupted by an occasional return to the alternating listening pattern.

<FIG> generally illustrates a method <NUM> performed by the primary device <NUM>. The method <NUM> depicted in <FIG> will be described as it would be performed by the primary device <NUM> depicted in <FIG>. As noted above with respect to <FIG>, the secondary device <NUM> may observe an alternating listening pattern until such time as the primary device <NUM> attempts to synchronize with the secondary device <NUM>. The method <NUM> depicted in <FIG> relates to a decision by the primary device <NUM> as to whether to attempt to perform that synchronization.

At <NUM>, the primary device <NUM> listens to the host device <NUM> during a receiving slot group of the host piconet <NUM>. The listening at <NUM> may be performed by, for example, the transceiver system <NUM> depicted in <FIG>. Accordingly, the transceiver system <NUM> may constitute means for listening to the host device <NUM> during a receiving slot group of the host piconet <NUM>. Moreover, the processing system <NUM> may be configured to operate the transceiver system <NUM> by executing code stored in the memory system <NUM>. Accordingly, the memory system <NUM> may be a non-transitory computer-readable medium comprising code for listening to the host device <NUM> during a receiving slot group of the host piconet <NUM>.

At <NUM>, the primary device <NUM> optionally receives a packet from the host device <NUM> during the listening at <NUM>.

At <NUM>, the primary device <NUM> determines whether a secondary device synchronization condition is met. If the secondary device synchronization condition is met ('yes' at <NUM>), then the method proceeds to <NUM>. If the secondary device synchronization condition is not met ('no' at <NUM>), then the method proceeds to <NUM>. Examples of the secondary device synchronization condition will be discussed in greater detail below. The determining at <NUM> may be performed by, for example, the memory system <NUM> and/or the processing system <NUM> depicted in <FIG>. Accordingly, the memory system <NUM> and/or the processing system <NUM> may constitute means for determining whether a secondary device synchronization condition is met. Moreover, the processing system <NUM> may be configured to perform the determining at <NUM> by executing code stored in the memory system <NUM>. Accordingly, the memory system <NUM> may be a non-transitory computer-readable medium comprising code for determining whether a secondary device synchronization condition is met.

At <NUM>, the primary device <NUM> synchronizes with the secondary device <NUM>. The synchronizing at <NUM> may be performed by, for example, the transceiver system <NUM>, the memory system <NUM>, and/or the processing system <NUM> depicted in <FIG>. Accordingly, the transceiver system <NUM>, the memory system <NUM>, and/or the processing system <NUM> may constitute means for synchronizing with the secondary device <NUM>. For example, the synchronizing may include transmitting or receiving communications using the transceiver system <NUM>, retrieving any received communications from the transceiver system <NUM> using the memory system <NUM> and/or the processing system <NUM>, and providing any transmitted communications to the transceiver system <NUM> using the memory system <NUM> and/or the processing system <NUM>. Moreover, the processing system <NUM> may be configured to perform the synchronizing at <NUM> by executing code stored in the memory system <NUM>. Accordingly, the memory system <NUM> may be a non-transitory computer-readable medium comprising code for synchronizing with the secondary device <NUM>.

As noted above with respect to <FIG>, a synchronization attempt may correspond to, for example, a process for selective relay of missed data packets and/or a process for exchange of control data relating to one or more piconets. For brevity, further description of these examples will be omitted.

At <NUM>, the primary device <NUM> optionally transmits to the host device <NUM>. The transmitting may comprise, for example, transmitting an ACK or NACK relating to a data packet that is received (or not received, or received with errors) during the listening at <NUM>. The optional transmitting at <NUM> may be omitted if there is nothing to transmit. Moreover, the transmitting at <NUM> may also be omitted if the determining at <NUM> or the synchronizing at <NUM> completes at a time wherein the host device <NUM> is presently transmitting or (about to transmit) on the host piconet <NUM>.

The secondary device synchronization condition that is the subject of the determining at <NUM> may be any condition that triggers a synchronization. As a first example, the secondary device synchronization condition may be a data packet reception condition relating to a number of data packets received from the host device <NUM>, wherein the data packet reception condition is met if the number of data packets received from the host device <NUM> exceeds a data packet reception threshold. The number of data packets may be, for example, a number of data packets received since the last successful synchronization. Accordingly, having a large number of packets received since the last synchronization may indicate that the secondary device <NUM> is due for another synchronization.

As a second example, the secondary device synchronization condition may be a data readiness condition relating to whether a poll/null signal has been received from the host device, wherein the data readiness condition is met if the poll/null signal has been received. For example, the poll/null signal may be interpreted by the primary device <NUM> as an indicator that the host device <NUM> does not have further data at this time or is delaying further transmission of new packets for any suitable reason. Accordingly, the primary device <NUM> has an opportunity to synchronize with the secondary device <NUM> without necessarily missing any new packets from the host device <NUM>.

As a third example, the secondary device synchronization condition may be a new control data condition relating to whether new control data has been generated or otherwise obtained by the primary device, wherein the new control data condition is met if new control data has been generated or otherwise obtained by the primary device. As noted above, the host piconet <NUM> may be established based on host piconet configuration data, and this host piconet configuration data is provided to the secondary device <NUM> by the primary device <NUM> so that the secondary device <NUM> can listen to the host device <NUM> on the host piconet <NUM>. It will be understood that if the host piconet configuration data changes, it may be necessary for the primary device <NUM> to provide updated host piconet configuration data to the secondary device <NUM>. Similarly, if a configuration of the P/S piconet <NUM> changes, it may be necessary for the primary device <NUM> to provide updated P/S piconet configuration data to the secondary device <NUM>.

As a fourth example, the secondary device synchronization condition may be a handover request condition relating to whether the primary device seeks a handover to the secondary device or vice-versa, wherein the handover request condition is met if the primary device seeks the handover to the secondary device or vice-versa.

<FIG> depict various timing alignments relating to particular network topologies. <FIG> relate to two topologies in which the primary device <NUM> is a master of the P/S piconet <NUM>, whereas <FIG> relate to two other topologies in which the secondary device <NUM> is the master of the P/S piconet <NUM>.

Before proceeding to the details of <FIG>, a process for timing alignment will be described. As noted above, the primary device <NUM> and the host device <NUM> establish a host piconet <NUM> on which to communicate. The host piconet <NUM> has a particular host piconet timing that dictates which of the devices is transmitting and which of the devices is receiving at any given time. The master of the host piconet <NUM> may set, adjust, and/or maintain the host piconet timing. Adjustment and/or maintenance may be required if, for example, one or more of the clocks of the respective devices is keeping time imperfectly. Similarly, the P/S piconet <NUM> also has a particular P/S piconet timing that dictates which of the devices is transmitting and which of the devices is receiving at any given time. The master of the P/S piconet <NUM> may accordingly set, adjust, and/or maintain the P/S piconet timing.

It will be understood that for the method <NUM> and the method <NUM> to be performed successfully, the respective timings of the host piconet <NUM> and the P/S piconet <NUM> must be coordinated. In particular, when setting, adjusting, and/or maintaining the P/S piconet timing, the master of the P/S piconet <NUM> may calculate a slot-offset of the host piconet <NUM> with respect to the P/S piconet <NUM>. The calculated slot-offset may correspond to a value or range of values. The corresponding value or range of values may differ for different topologies, as will be discussed in greater detail below.

<FIG> generally illustrates a timing diagram <NUM> for a first topology in which the primary device <NUM> is a master of the P/S piconet <NUM> and a slave of the host piconet <NUM>. The timing diagram <NUM> shows, from the perspective of the secondary device <NUM>, a relative alignment of the piconet timings of the host piconet <NUM> and the P/S piconet <NUM>. In particular, the timing diagram <NUM> depicts a secondary device P/S piconet timeline <NUM>, a secondary device host piconet timeline <NUM>, and a secondary device host piconet timeline <NUM>.

On the secondary device P/S piconet timeline <NUM>, there is a receiving slot group <NUM> corresponding to a duration within the P/S piconet timing where the primary device <NUM> is transmitting on the P/S piconet <NUM>. Elsewhere on the secondary device P/S piconet timeline <NUM> is a transmitting slot group <NUM> corresponding to a duration within the P/S piconet timing where the secondary device <NUM> is afforded an opportunity to transmit on the P/S piconet <NUM>. Accordingly, each pair of slot groups (for example, the receiving slot group <NUM> and the transmitting slot group <NUM>) may be separated from the next pair by a frame boundary <NUM>. Because, in this scenario, the primary device <NUM> is a master of the P/S piconet <NUM>, the first slot group in each frame is the receiving slot group <NUM> and the second slot group in each frame is the transmitting slot group <NUM>. <FIG> depicts three frames, although it will be understood that the secondary device P/S piconet timeline <NUM> may continue in this manner indefinitely.

On the secondary device host piconet timeline <NUM>, there is a receiving slot group <NUM> corresponding to a duration within the host piconet timing where the secondary device <NUM> is configured to listen to the host piconet <NUM>, and potentially receive data from the host device <NUM>. Elsewhere on the secondary device host piconet timeline <NUM> is a transmitting slot group <NUM> corresponding to a duration within the host piconet timing where the host device <NUM> is configured to listen to the host piconet <NUM>. Because, in this scenario, the primary device <NUM> is a slave of the host piconet <NUM>, the first slot group in each frame is the receiving slot group <NUM> and the second slot group in each frame is the transmitting slot group <NUM>. As will be understood from the secondary device host piconet timeline <NUM>, there is a minimum offset value <NUM> representing a minimum delay between the frame boundary <NUM> of the P/S piconet <NUM> and the beginning of the frame in the host piconet <NUM>. The transmitting slot group <NUM> may be used by the secondary device <NUM> to transmit to the host device <NUM> if the primary device <NUM> has designated the secondary device <NUM> to do so. Otherwise, the transmitting slot group <NUM> may be used by the primary device <NUM> to respond to the secondary device <NUM> if it has received something from the host.

On the secondary device host piconet timeline <NUM>, there is a receiving slot group <NUM> and a transmitting slot group <NUM> analogous to the receiving slot group <NUM> and the transmitting slot group <NUM> described above. As will be understood from the secondary device host piconet timeline <NUM>, there is a maximum offset value <NUM> representing a maximum delay between the frame boundary <NUM> of the host piconet <NUM> and the beginning of the frame in the P/S piconet <NUM>.

As noted above, in the scenario of <FIG>, the primary device <NUM> is the master of the P/S piconet <NUM>. Accordingly, the primary device <NUM> may be configured to calculate a slot-offset of the host piconet timing relative to the P/S piconet timing by selecting an offset value that is between the minimum offset value <NUM> depicted in <FIG> and the maximum offset value <NUM> depicted in <FIG>. Once the slot-offset is calculated, the primary device <NUM> may be further configured to set, adjust, and/or maintain the P/S piconet timing based on the calculated slot-offset. In some implementations, the secondary device <NUM> (i.e., the slave of the P/S piconet <NUM>) may simply follow the lead of the primary device <NUM>. As a result, the secondary device <NUM> may observe a reception/transmission pattern on the host piconet <NUM> that begins later than the reception/transmission pattern depicted in the secondary device host piconet timeline <NUM> and earlier than the reception/transmission pattern depicted in the secondary device host piconet timeline <NUM> (i.e., between the minimum and maximum offsets).

The actual values of the minimum offset value <NUM> and the maximum offset value <NUM> may be calculated in any suitable manner. For example, the minimum offset value <NUM> may be equal to (X + Y) and the maximum offset value <NUM> may be equal to a duration of a single frame plus Z minus Y, wherein X is an amount of time required for the secondary device <NUM> to determine whether the primary device <NUM> is attempting to communicate with the secondary device <NUM>, Y is a time required by the secondary device secondary device <NUM> to switch between the host piconet <NUM> and the P/S piconet <NUM>, and Z is a minimum residual time left after transmitting a full-length data packet. Z may correspond to three values Z<NUM>, Z<NUM>, and Z<NUM>, where Z<NUM> corresponds to a one-slot length, Z<NUM> corresponds to a three-slot length, and Z<NUM> corresponds to a five-slot length. In the case of Z<NUM>, the value may be equal, for example, to <NUM> minus an amount of time required to receive a packet with a maximum payload length of one slot. In the case of Z<NUM>, the value may be equal, for example, to <NUM> minus an amount of time required to receive a packet with a maximum payload length of three slots. In the case of Z<NUM>, the value may be equal, for example, to <NUM> minus an amount of time required to receive a packet with a maximum payload length of five slots. In general terms, for a packet with a slot length of N, Z may be equal, for example, to N times <NUM> minus an amount of time required to receive a packet with a maximum payload length of N slots. The host piconet <NUM> may be configured to use all of one-slot packets, three-slot packets and five-slots packet or any combination of these. Accordingly, Z may be equal to Minimum(ZN1, ZN2,. ) µs, where N1, N2,. are the packet type lengths which the host piconet <NUM> is configured to use. So, Z may be equal to a minimum of time left from packet slot length after receiving the maximum payload length packet corresponding to the packet slot length from all the packet slot lengths for which the host piconet <NUM> is configured. This maximum offset will allow secondary device <NUM> to complete a reception from the host device <NUM> and listen to the primary device <NUM> in the immediate next slot. As will be understood from <FIG>, the host piconet timeline <NUM> is shifted such that with maximum offset <NUM>, the host device <NUM> finishes its reception by the start of the transmitting slot group <NUM> so that it can listen to the primary device <NUM> in the transmitting slot group <NUM> unless it is designated to respond to the host device <NUM> for a packet received in the receiving slot group <NUM>. If so, the secondary device <NUM> will transmit to the host device <NUM> in the transmitting slot group <NUM>.

<FIG> generally illustrates a timing diagram <NUM> for a second topology in which the primary device <NUM> is master of both the P/S piconet <NUM> and the host piconet <NUM>. In this scenario, the host piconet <NUM> and the P/S piconet <NUM> may be described as aligned, wherein the primary device <NUM> need not set or adjust anything to bring this alignment, since the two piconets may act as a single piconet. Like the timing diagram <NUM>, the timing diagram <NUM> shows a relative alignment of the piconet timings of the host piconet <NUM> with respect to the P/S piconet <NUM> from the perspective of the secondary device <NUM>. The timing diagram <NUM> includes a secondary device P/S piconet timeline <NUM> analogous to the secondary device P/S piconet timeline <NUM> and a secondary device P/S piconet timeline <NUM> analogous to the secondary device host piconet timeline <NUM>. Moreover, the secondary device host piconet timeline <NUM> includes a receiving slot group <NUM> analogous to the receiving slot group <NUM>, a transmitting slot group <NUM> analogous to the transmitting slot group <NUM>, and a frame boundary <NUM> analogous to the frame boundary <NUM>.

In <FIG>, the receiving slot group <NUM> and the transmitting slot group <NUM> correspond to a transmission slot of the primary device <NUM>, and a reception slot of both the secondary device <NUM> and the host device <NUM>. The primary device <NUM> may send a packet to either device based on, for example, the method <NUM> depicted in <FIG>. If the primary device <NUM> transmits a packet to the host device <NUM>, then the host device <NUM> will respond back in the receiving slot group <NUM>. And since the secondary device <NUM> did not hear anything from the primary device <NUM> in receiving slot group <NUM>, it will sniff to the host device <NUM> in the transmitting slot group <NUM>. If the primary device <NUM> transmits a packet to the secondary device <NUM> in the receiving slot group <NUM>, then the secondary device <NUM> will respond back in the transmitting slot group <NUM>.

The secondary device P/S piconet timeline <NUM> includes a receiving slot group <NUM> analogous to the receiving slot group <NUM> and a transmitting slot group <NUM> analogous to the transmitting slot group <NUM>, however, in the scenario of <FIG> (in which the primary device <NUM> is a master rather than a slave of the host piconet <NUM>) the transmitting slot group <NUM> precedes the receiving slot group <NUM> within the frame.

As will be understood from <FIG>, there is no offset of the host piconet timing relative to the P/S piconet timing. Accordingly, the primary device <NUM> may be configured to calculate a slot-offset equal to zero in response to a determination that the primary device <NUM> is the master of both the host piconet <NUM> and the P/S piconet <NUM>. Once the slot-offset is calculated, the primary device <NUM> may be further configured to set, adjust, and/or maintain the P/S piconet timing based on the calculated slot-offset. In some implementations, the secondary device <NUM> (i.e., the slave of the P/S piconet <NUM>) may simply follow the lead of the primary device <NUM>. As a result, the secondary device <NUM> may observe the reception/transmission pattern depicted on the secondary device host piconet timeline <NUM> of <FIG>.

<FIG> generally illustrates a timing diagram <NUM> for a third topology in which the secondary device <NUM> is the master of the P/S piconet <NUM> and the primary device <NUM> is the slave of the host piconet <NUM>. Like the timing diagram <NUM>, the timing diagram <NUM> depicts a relative alignment of the piconet timings of the host piconet <NUM> and the P/S piconet <NUM> from the perspective of the secondary device <NUM>. The timing diagram <NUM> includes a secondary device P/S piconet timeline <NUM> analogous to the secondary device P/S piconet timeline <NUM> and a secondary device P/S piconet timeline <NUM> analogous to the secondary device host piconet timeline <NUM>. Moreover, the secondary device host piconet timeline <NUM> includes a receiving slot group <NUM> analogous to the receiving slot group <NUM>, a transmitting slot group <NUM> analogous to the transmitting slot group <NUM>, and a frame boundary <NUM> analogous to the frame boundary <NUM>.

The secondary device P/S piconet timeline <NUM> includes a receiving slot group <NUM> analogous to the receiving slot group <NUM>, a transmitting slot group <NUM> analogous to the transmitting slot group <NUM>, and a minimum offset value <NUM> analogous to the minimum offset value <NUM>. The secondary device P/S piconet timeline <NUM> includes a receiving slot group <NUM> analogous to the receiving slot group <NUM>, a transmitting slot group <NUM> analogous to the transmitting slot group <NUM>, and a maximum offset value <NUM> analogous to the maximum offset value <NUM>. The transmitting slot group <NUM> may be used by the secondary device <NUM> to transmit to the host device <NUM> if the primary device <NUM> has designated the secondary device <NUM> to do so. Otherwise, the transmitting slot group <NUM> may be used by the primary device <NUM> to respond to the secondary device <NUM> if it has received something from the host.

In the scenario of <FIG>, the primary device <NUM> is the master of the P/S piconet <NUM>. By contrast, in the scenario of <FIG>, the secondary device <NUM> is the master of the P/S piconet <NUM>. Accordingly, in the scenario of <FIG>, the secondary device <NUM> may be configured to calculate a slot-offset of the host piconet timing relative to the P/S piconet timing by selecting an offset value that is between the minimum offset value <NUM> depicted in <FIG> and the maximum offset value <NUM> depicted in <FIG>. Once the slot-offset is calculated, the secondary device <NUM> may be further configured to set, adjust, and/or maintain the P/S piconet timing based on the calculated slot-offset. As a result, the secondary device <NUM> may observe a reception/transmission pattern on the host piconet <NUM> that is later than the reception/transmission pattern depicted in the secondary device host piconet timeline <NUM> and earlier than the reception/transmission pattern depicted in the secondary device host piconet timeline <NUM>. The actual values of the minimum offset value <NUM> and the maximum offset value <NUM> may be calculated in any suitable manner. For example, the minimum offset value <NUM> may be equal to a duration of a single slot group plus X + Y and the maximum offset value <NUM> may be equal to a duration of the single frame minus (X + Y), wherein X is an amount of time required for the secondary device <NUM> to determine whether the primary device <NUM> is attempting to communicate with the secondary device <NUM> and Y is a time required by the secondary device <NUM> to switch between the host piconet <NUM> and the P/S piconet <NUM>.

<FIG> generally illustrates a timing diagram <NUM> for a fourth topology in which the secondary device <NUM> is the master of the P/S piconet <NUM> and the primary device <NUM> is the master of the host piconet <NUM>. Like the timing diagrams depicted in <FIG>, the timing diagram <NUM> depicts a relative alignment of the piconet timings of the host piconet <NUM> and the P/S piconet <NUM> from the perspective of the secondary device <NUM>. The timing diagram <NUM> includes a secondary device P/S piconet timeline <NUM> analogous to the secondary device P/S piconet timeline <NUM> and a secondary device P/S piconet timeline <NUM> analogous to the secondary device host piconet timeline <NUM>. Moreover, the secondary device host piconet timeline <NUM> includes a receiving slot group <NUM> analogous to the receiving slot group <NUM>, a transmitting slot group <NUM> analogous to the transmitting slot group <NUM>, and a frame boundary <NUM> analogous to the frame boundary <NUM>.

The secondary device P/S piconet timeline <NUM> includes a receiving slot group <NUM> analogous to the receiving slot group <NUM>, a transmitting slot group <NUM> analogous to the transmitting slot group <NUM>, and a minimum offset value <NUM> analogous to the minimum offset value <NUM>. The secondary device P/S piconet timeline <NUM> includes a receiving slot group <NUM> analogous to the receiving slot group <NUM>, a transmitting slot group <NUM> analogous to the transmitting slot group <NUM>, and a maximum offset value <NUM> analogous to the maximum offset value <NUM>. However, unlike in <FIG> (corresponding to a scenario in which the primary device <NUM> is a slave of the host piconet <NUM>), the transmitting slot group <NUM> and the transmitting slot group <NUM> precede the receiving slot group <NUM> and the receiving slot group <NUM>, respectively. The transmitting slot group <NUM> may belong to the primary device <NUM> to speak to the host device <NUM>. If a packet is sniffed by the secondary device <NUM> which is sent by the host device <NUM>, and the secondary device <NUM> is designated to respond to the host device <NUM> for this packet, then the secondary device <NUM> will use the transmitting slot group <NUM> for transmitting to the host device <NUM>.

Similar to the scenario of <FIG>, the secondary device <NUM> in the scenario of <FIG> is the master of the P/S piconet <NUM>. Accordingly, the secondary device <NUM> may be configured to calculate a slot-offset of the host piconet timing relative to the P/S piconet timing by selecting an offset value that is between the minimum offset value <NUM> depicted in <FIG> and the maximum offset value <NUM> depicted in <FIG>. Once the slot-offset is calculated, the secondary device <NUM> may be further configured to set, adjust, and/or maintain the P/S piconet timing based on the calculated slot-offset. As a result, the secondary device <NUM> may observe a reception/transmission pattern on the host piconet <NUM> that is later than the reception/transmission pattern depicted in the secondary device host piconet timeline <NUM> and earlier than the reception/transmission pattern depicted in the secondary device host piconet timeline <NUM>. The actual values of the minimum offset value <NUM> and the maximum offset value <NUM> may be calculated in any suitable manner. For example, the minimum offset value <NUM> may be equal to (X+Y) and the maximum offset value <NUM> may be equal to a duration of a single slot group minus (X+Y), wherein X is an amount of time required for the secondary device <NUM> to determine whether the primary device <NUM> is attempting to communicate with the secondary device <NUM> and Y is a time required by the secondary device <NUM> to switch between the host piconet <NUM> and the P/S piconet <NUM>.

The terminology used herein is for the purpose of describing particular embodiments only and not to limit any embodiments disclosed herein. It will be further understood that the terms "comprises", "comprising", "includes" and/or "including", when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Similarly, the phrase "based on" as used herein does not necessarily preclude influence of other factors and should be interpreted in all cases as "based at least in part on" rather than, for example, "based solely on". Moreover, the phrase "coupled to" in electrical contexts encompasses any suitable method for delivering an electrical signal from a first node to a second node. As such, "coupled to" may encompass "coupled directly to" (for example, by direct conductive connection, such as with a copper wire, a solder ball, etc.) as well as "coupled indirectly to" (for example, having one or more intervening structures therebetween, such as a switch, a buffer, a filter, etc.). It will be further understood that terms such as "top" and "bottom", "left" and "right", "vertical" and "horizontal", etc., are relative terms used strictly in relation to one another, and do not express or imply any relation with respect to gravity, a manufacturing device used to manufacture the components described herein, or to some other device to which the components described herein are coupled, mounted, etc. It should be understood that any reference to an element herein using a designation such as "first," "second," and so forth does not generally limit the quantity or order of those elements. Rather, these designations may be used herein as a convenient method of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not imply that there are only two elements and further does not imply that the first and second elements are consecutive or that the first element precedes the second element in some manner. Also, unless stated otherwise a set of elements may comprise one or more elements. In addition, terminology of the form "at least one of A, B, or C" or "one or more of A, B, or C" or "at least one of the group consisting of A, B, and C" used in the description or the claims means "A or B or C or any combination of these elements.

In view of the descriptions and explanations above, one skilled in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the aspects disclosed herein may be implemented as electronic hardware, computer software, or combinations of both.

Accordingly, it will be appreciated, for example, that an apparatus or any component of an apparatus may be configured to (or made operable to or adapted to) provide functionality as taught herein. This may be achieved, for example: by manufacturing (e.g., fabricating) the apparatus or component so that it will provide the functionality; by programming the apparatus or component so that it will provide the functionality; or through the use of some other suitable implementation technique. As one example, an integrated circuit may be fabricated to provide the requisite functionality. As another example, an integrated circuit may be fabricated to support the requisite functionality and then configured (e.g., via programming) to provide the requisite functionality. As yet another example, a processor circuit may execute code for providing the requisite functionality.

Claim 1:
A method (<NUM>) performed by a secondary device, the method comprising:
listening (<NUM>) to a primary device during a receiving slot group of a primary/secondary piconet shared between the primary device and the secondary device, characterized by
determining (<NUM>) based on the listening during the receiving slot group whether the primary device is attempting to communicate with the secondary device;
listening (<NUM>) to a host device on a host piconet during a transmitting slot group of the primary/secondary piconet in response to a determination that the primary device is not attempting to communicate with the secondary device; and
transmitting (<NUM>) to the primary device over the primary/secondary piconet during the transmitting slot group of the primary/secondary piconet in response to a determination that the primary device is attempting to communicate with the secondary device.