Paging channel prediction for bluetooth paging procedure

A Bluetooth paging procedure can implement a mechanism for predicting a Bluetooth paging channel in a paging channel hopping sequence. One or more Bluetooth paging channels, on which one or more page requests intended for a Bluetooth device were received, are determined from a plurality of Bluetooth communication channels. One of a plurality of paging channel hopping sequences associated with the Bluetooth device that comprises each of the one or more determined Bluetooth paging channels is identified. A time delay associated with determining a target Bluetooth paging channel from the plurality of Bluetooth communication channels on which to transmit a page response is determined. The target Bluetooth paging channel is determined based, at least in part, on the identified one of the plurality of the paging channel hopping sequences and the time delay.

BACKGROUND

Embodiments of the inventive subject matter generally relate to the field of wireless communication networks and, more particularly, to paging channel prediction for Bluetooth paging procedure.

The Bluetooth® wireless communication standard is typically employed for exchanging communications between fixed or mobile Bluetooth-enabled devices over short distances. Bluetooth devices execute inquiry scan procedures to discover slave Bluetooth devices or to be discovered by a master Bluetooth device. After the discovery process, the Bluetooth devices execute a paging scan procedure to establish a Bluetooth connection for exchanging communications.

SUMMARY

Various embodiments for predicting a control channel in a control channel hopping sequence (e.g., a Bluetooth paging channel hopping sequence) are disclosed. In one embodiment, one or more control channels, on which one or more control packets intended for a communication device were detected, are determined from a plurality of communication channels associated with the communication device. A first of a plurality of predetermined control channel hopping sequences associated with the communication device is identified that comprises each of the one or more control channels on which the one or more control packets were detected. A time delay associated with determining a target control channel from the plurality of communication channels associated with the communication device on which to transmit a response control packet associated with the detected one or more control packets is determined. The target control channel is determined based, at least in part, on the first of the plurality of the predetermined control channel hopping sequences and the time delay. The response control packet is then transmitted via the target control channel.

DESCRIPTION OF EMBODIMENT(S)

The description that follows includes exemplary systems, methods, techniques, instruction sequences, and computer program products that embody techniques of the present inventive subject matter. However, it is understood that the described embodiments may be practiced without these specific details. For instance, although examples refer to predicting a target Bluetooth control channel via which to transmit a Bluetooth control packet based on a sequence of two or more previously detected Bluetooth control channels, embodiments are not so limited. In other embodiments, the target Bluetooth control channel can be predicted based on a single previously detected Bluetooth control channel. In other instances, well-known instruction instances, protocols, structures, and techniques have not been shown in detail in order not to obfuscate the description.

During a Bluetooth inquiry procedure, a master Bluetooth device can discover a slave Bluetooth device with which to establish a Bluetooth communication link. During a subsequent Bluetooth paging procedure, the master Bluetooth device attempts to establish the Bluetooth communication link with the slave Bluetooth device by repeatedly transmitting page requests on a subset of Bluetooth communication channels (“Bluetooth control channels”) identified in a paging channel hopping sequence known to both the master Bluetooth device and the slave Bluetooth device. The slave Bluetooth device typically listens for page requests (from the master Bluetooth device) for 11.25 milliseconds every 1.28 seconds. In other words, the slave Bluetooth device may switch from a low power state to an active power state to listen for page requests for 11.25 milliseconds every 1.28 seconds. Furthermore, if the slave Bluetooth device is collocated with another wireless communication device (e.g., a collocated wireless local area network (WLAN) device), the slave Bluetooth device may require control of the communication medium for 11.25 milliseconds every 1.28 seconds, precluding the WLAN device from exchanging WLAN packets when the Bluetooth device is in control of the communication medium. This can result in a loss of performance and throughput at the WLAN device.

In some implementations, one or more processing components (e.g., the link controller, the Bluetooth transceiver, etc.) of the slave Bluetooth device may be switched off in an effort to conserve power when the slave Bluetooth device does not have control of the communication medium (or when the slave Bluetooth device is not actively transmitting/receiving Bluetooth packets). Typically, the slave Bluetooth device detects a page request on one Bluetooth control channel and switches to another Bluetooth control channel to transmit the page response. The Bluetooth devices usually transmit/listen for messages on a Bluetooth control channel for a short predetermined time interval (e.g., 0.625 microseconds). In other words, in response to detecting the page request on the first Bluetooth control channel, the slave Bluetooth device is typically allocated only 0.625 microseconds to generate and transmit the page response on the second Bluetooth control channel to establish the Bluetooth communication link. Restarting the link controller and/or other inactive processing components when the Bluetooth device is in a low-power or sleep mode can typically require a longer time (e.g., 2-3 microseconds) as compared to the time for which the master Bluetooth device listens on the second Bluetooth control channel for a page response (e.g., 0.625 microseconds). This can cause the slave Bluetooth device to tune to the second Bluetooth control channel after the master Bluetooth device has hopped to another subsequent Bluetooth control channel. Therefore, the slave Bluetooth device may not be able to transmit the page response, may not establish the Bluetooth communication link with the master Bluetooth device, and may have to wait a relatively long time before receiving another page request. This can also limit the amount of time that the Bluetooth device can be powered down, which may minimize the efficacy of switching off one or more processing components of the Bluetooth device.

Functionality can be implemented to reduce the time associated with executing the paging procedure and to reduce power consumption at the Bluetooth device. In some embodiments, the page requests intended for the Bluetooth device can be detected on one or more Bluetooth control channels. An predefined paging channel hopping sequence that comprises the detected one or more Bluetooth control channels can be identified. A target Bluetooth control channel to which the master Bluetooth device is expected to tune after an estimated time delay can also be predicted from the paging channel hopping sequence. The time delay may be calculated based, at least in part, on the amount of time the Bluetooth processing units take to switch from the low power mode to the active power mode. The target Bluetooth control channel also represents the Bluetooth control channel via which the Bluetooth device can transmit the page response (after switching to the active power mode). After determining the target Bluetooth control channel, the power mode of the inactive Bluetooth processing units can be switched from a low power mode to the active power mode. The Bluetooth device can then tune to the target Bluetooth control channel and can transmit the page response when the master Bluetooth device is listening on the target Bluetooth control channel. Such a mechanism for predicting the target Bluetooth control channel on which to transmit the page response can reduce the amount of time needed to execute the paging procedure, which can improve the performance of the Bluetooth device. Furthermore, the mechanism for predicting the target Bluetooth control channel can reduce the power consumption of the Bluetooth device.

FIG. 1is an example conceptual diagram illustrating one embodiment of a mechanism for predicting a Bluetooth control channel for a Bluetooth paging procedure.FIG. 1depicts a Bluetooth device100comprising a page request detection unit102, a hopping frequency detection unit104, a Bluetooth processing unit106, and a hopping sequence generation unit120. The Bluetooth processing unit106comprises a link controller (LC)122and a transceiver unit124. In one implementation, the Bluetooth device100can be part of a multi-radio communication device that comprises one or more other collocated communication devices. For example, the multi-radio communication device can comprise the Bluetooth device100collocated with a WLAN device. In one implementation, the Bluetooth device and the WLAN device can be embodied on distinct integrated circuits (e.g., distinct Bluetooth and WLAN chips) on a common circuit board (or on separate circuit boards in close proximity) within the multi-radio communication device. In other implementations, the Bluetooth device and the WLAN device can be embodied on a single integrated circuit (e.g., a system on a chip (SoC)) within the multi-radio communication device. The multi-radio communication device may be included within various types of electronic devices with wireless communication capabilities (e.g., mobile phones, notebook computer, tablet computers, gaming consoles, personal computers, etc.). As will be described below, the hopping frequency detection unit104in conjunction with the page request detection unit102can identify a target Bluetooth control channel via which the Bluetooth device can transmit a page response.

After the Bluetooth device100and the master Bluetooth device (e.g., the Bluetooth device that transmits the page requests) complete the Bluetooth inquiry procedure, the Bluetooth device100(and consequently the hopping sequence generation unit120) is aware of the address (e.g., a Bluetooth device (BD) address) associated with the master Bluetooth device, a koffset value, and a clock value (e.g., CLKE) associated with the master Bluetooth device. The hopping sequence generation unit120can generate the sequence of Bluetooth control channels in accordance with which the master Bluetooth device is expected to hop to transmit the page requests and receive the page responses. This generated sequence of Bluetooth control channels is referred to herein as the “paging channel hopping sequence.” The hopping sequence generation unit120can generate the paging channel hopping sequence based on one or more of the BD address of the master Bluetooth device, the BD address of the slave Bluetooth device100, the koffset value, and the clock value. Typically, the Bluetooth devices can be configured to implement one of two koffset values and the Bluetooth devices can switch between the two koffset values at regular intervals (e.g., every 1.28 seconds). In one implementation, the hopping sequence generation unit120can generate two paging channel hopping sequences—the paging channel hopping sequence112generated for a first koffset value (e.g., a koffset value of 8) and the paging channel hopping sequence114generated for a second koffset value (e.g., a koffset value of 24). The hopping sequence generation unit120also stores the paging channel hopping sequences112and114in the paging channel hopping table110. It is noted that in other implementations, the Bluetooth devices may switch between any suitable number of koffset values, and accordingly, the hopping sequence generation unit120can generate a corresponding number of paging channel hopping sequences. In some implementations, the hopping sequence generation unit120can generate the paging channel hopping sequences112and114once (e.g., when the Bluetooth device100discovers the master Bluetooth device with which to establish the Bluetooth communication link). However, in another implementation, the hopping sequence generation unit120may generate the paging channel hopping sequences112and114at periodic intervals.

The page request detection unit102can determine and indicate a plurality of Bluetooth control channels on which page requests intended for the Bluetooth device100were detected. In one implementation, if the Bluetooth device is in the low power mode, the page request detection unit102can determine the plurality of Bluetooth control channels on which page requests intended for the Bluetooth device100were detected based, at least in part, on analyzing frequency domain samples of incoming RF signals. In another implementation, the page request detection unit102can determine the plurality of Bluetooth control channels on which page requests intended for the Bluetooth device100were detected using other page request detection techniques when the Bluetooth device100is in the active power mode. In another implementation, the page request detection unit102can employ a combination of the above-mentioned page request detection techniques when the Bluetooth device100is either in the low power mode or the active power mode.FIG. 1depicts one example of a series of Bluetooth control channels on which the Bluetooth device100and the master Bluetooth device can exchange page requests and page responses. The Bluetooth devices are configured to transmit and receive Bluetooth messages during periodically alternating time intervals (also known as time slots). In one implementation, the master Bluetooth device transmits two page requests on two different Bluetooth control channels during alternating time slots. In the example shown inFIG. 1, the master Bluetooth device transmits the page requests on Bluetooth control channel3and Bluetooth control channel25(represented by reference numerals116A and116B respectively). During this time slot, the page request detection unit102can detect the page requests on the Bluetooth control channels116A and116B and can determine that the received page requests are intended for the Bluetooth device100. The page request detection unit102can store information associated with the Bluetooth control channels116A and116B. During the next consecutive time slot, the master Bluetooth device can switch to a receive mode and can wait to receive a page response on Bluetooth control channel3and Bluetooth control channel25(represented by reference numerals118A and118B). Because the master Bluetooth device does not receive the page response, the master Bluetooth device transmits (during the next time slot) page requests on the Bluetooth control channels17and10(represented by reference numerals116C and116D). During this time slot, the page request detection unit102can detect the page requests on the Bluetooth control channels116C and116D and can determine that the received page requests are intended for the Bluetooth device100. The page request detection unit102can store information associated with the Bluetooth control channels116C and116D.

In one implementation, after the page requests are detected on a predetermined number of Bluetooth control channels (e.g., four Bluetooth control channels inFIG. 1), the page request detection unit102provides the information associated with the Bluetooth control channels116A,116B,116C, and116D to the hopping frequency detection unit104. As part of the information associated with the detected Bluetooth control channels, the page request detection unit102can provide a channel number associated with the Bluetooth control channels116A,116B,116C, and116D, a time instant at which the page request was detected on each of the Bluetooth control channels116A,116B,116C, and116D, an order in which the Bluetooth control channels116A,116B,116C, and116D were detected, and/or other related information. In one implementation, the page request detection unit102can provide the information associated with the Bluetooth control channels116A,116B,116C, and116D detected during a predetermined time interval to the hopping frequency detection unit104. For example, the page request detection unit102may temporarily store the information associated with each Bluetooth control channel on which the page request was detected. After the predetermined time interval elapses, the page request detection unit102can transmit a message comprising the information associated with all the Bluetooth control channels (within the predetermined time interval) on which the page requests were detected to the hopping frequency detection unit104. In another implementation, the page request detection unit102can wait to receive a predetermined number of page requests on a corresponding predetermined number of Bluetooth control channels. For example, the page request detection unit102may be configured to transmit a message comprising the information associated with four successively detected Bluetooth control channels to the hopping frequency detection unit104. In another implementation, the page request detection unit102can transmit information associated with the Bluetooth control channel as soon as a page request is detected on the Bluetooth control channel. The hopping frequency detection unit104can then identify the target Bluetooth control channel based on the information associated with the predetermined number of Bluetooth control channels.

The hopping frequency detection unit104can identify a target Bluetooth control channel for subsequent Bluetooth control communication based, at least in part, on the paging channel hopping table110and a time delay108. In response to receiving the information associated with the plurality of detected Bluetooth control channels116A,116B,116C, and116D, the hopping frequency detection unit104can access the paging channel hopping table110. The hopping frequency detection unit104can compare the channel numbers associated with the detected Bluetooth control channels116A,116B,116C, and116D against the paging channel hopping sequences112and114. In one example, the hopping frequency detection unit104can comprise a correlator that correlates the channel numbers associated with the detected Bluetooth control channels116A,116B,116C, and116D against the paging channel hopping sequences112and114to identify the paging channel hopping sequence that should be employed by the Bluetooth device100. In the example ofFIG. 1, the hopping frequency detection unit104determines that the Bluetooth control channels116A,116B,116C, and116D were identified in the paging channel hopping sequence112. Therefore, the hopping frequency detection unit104determines that the target Bluetooth control channel should be identified from the paging channel hopping sequence112. The hopping frequency detection unit104can, based on results of the correlation, determine an index (e.g., a position in the identified paging channel hopping sequence112) associated with the previously detected Bluetooth control channels116A,116B,116C, and116D, and predict a current Bluetooth control channel in the paging channel hopping sequence112. For example, the hopping frequency detection unit104can determine that the master Bluetooth device may be currently transmitting a page request on the Bluetooth control channel33(identified by the reference numeral116E) based on determining that the Bluetooth control channel116E follows the Bluetooth control channels116A,116B,116C, and116D in the paging channel hopping sequence112.

To determine the Bluetooth control channel on which the Bluetooth device can transmit the page response to the master Bluetooth device (i.e., the target Bluetooth control channel), the hopping frequency detection unit104can estimate the maximum time delay108between detecting the page requests and transmitting the page response. The time delay108can include an elapsed processing time between the hopping frequency detection unit104receiving the information associated with the detected Bluetooth control channels116A,116B,116C, and116D and determining the target Bluetooth control channel. The time delay108can also take into consideration the elapsed time between the page request detection unit102detecting the page request on the Bluetooth control channels116A,116B,116C, and116D and the hopping frequency detection unit104receiving the information associated with the Bluetooth control channels. Furthermore, as described above, the Bluetooth processing units106including the link controller122and the Bluetooth transceiver unit124may be switched off to conserve power. The time delay108can also take into consideration the amount of time that may be needed for the Bluetooth processing units106to switch to the active power mode and to generate an appropriate page response. Additionally, the time delay108can also factor in the time that may be needed for the hopping frequency detection unit104to communicate the target Bluetooth control channel to the Bluetooth processing unit106. In some implementations, a buffer time interval can be incorporated in the time delay108to generate a conservative estimate of the time delay108and to help ensure that the Bluetooth device100does not miss the target Bluetooth control channel due to unforeseen delays. In one implementation, as depicted inFIG. 1, the hopping frequency detection unit104can receive a pre-computed time delay108as an input. In some implementations, the hopping frequency detection unit104can calculate the time delay108based on the various factors described above (e.g., the elapsed processing time, the time elapsed when switching from the low power mode to the active power mode, etc.). The hopping frequency detection unit104can then identify the target Bluetooth control channel based on the information associated with the Bluetooth control channels116A,116B,116C, and116D (e.g., the time instant at which the paging packets were detected on the Bluetooth control channels), the current Bluetooth control channel116E, the paging channel hopping sequence112, and the time delay108. In the example shown inFIG. 1, the hopping frequency detection unit104may determine that Bluetooth control channel27(identified by the reference numeral118C) is the target Bluetooth control channel.

In one implementation, the hopping frequency detection unit104can write the identified paging channel hopping sequence112into a predetermined memory location (e.g., in hardware or in software) and indicate an index associated with the target Bluetooth control channel118C. Once the Bluetooth processing unit106is ready to transmit the page response, the Bluetooth processing unit106(e.g., the link controller122) can access a predetermined memory location to determine the paging channel hopping sequence112and can identify the target Bluetooth control channel (e.g., based on the index provided by the hopping frequency detection unit104). In another implementation, the hopping frequency detection unit104can provide an indication of the selected paging channel hopping sequence112and the index (in the paging channel hopping sequence112) associated with the target Bluetooth control channel118C to the Bluetooth processing unit106. After the hopping frequency detection unit104determines the target Bluetooth control channel118C, the Bluetooth processing units106, including the link controller122and the Bluetooth transceiver124, can be powered on (or can switch from the low power mode to the active power mode). In one example, the hopping frequency detection unit104can provide a trigger to the link controller122, the transceiver unit124, and other components of the Bluetooth processing unit106to cause the components of the Bluetooth processing unit106to switch from the low power mode to the active power mode. In some implementations, the hopping frequency detection unit104can provide a single notification to the Bluetooth processing unit106to cause the Bluetooth processing unit106to switch to the active power mode, to indicate the paging channel hopping sequence112, and to indicate the target Bluetooth control channel118C. In another implementation, the hopping frequency detection unit104can send multiple notifications—a first notification to cause the Bluetooth processing unit104to switch to the active power mode and a second notification to indicate the paging channel hopping sequence112and the target Bluetooth control channel118C. After determining the paging channel hopping sequence112and the target Bluetooth control channel118C, the Bluetooth device can implement various techniques to respond to the page requests transmitted by the master Bluetooth device. In one implementation, the Bluetooth processing unit106can tune to the target Bluetooth control channel118C and can transmit the page response on the target Bluetooth control channel118C.

FIG. 2is an example conceptual diagram illustrating a second embodiment of a mechanism for predicting a Bluetooth control channel for a Bluetooth paging procedure.FIG. 2depicts the Bluetooth device100ofFIG. 1comprising the page request detection unit102, the hopping frequency detection unit104, the Bluetooth processing unit106, and the hopping sequence generation unit120. The Bluetooth processing unit106comprises the link controller (LC)122and the transceiver unit124. As will be described below, in some embodiments, the hopping frequency detection unit104in conjunction with the page request detection unit102can identify the target Bluetooth control channel based on information associated with a single Bluetooth control channel on which a page request was detected.

As described above, the hopping sequence generation unit120can generate the paging channel hopping sequences112and114based on an address associated with a master Bluetooth device, a koffset value, a clock value (e.g., CLKE) associated with the master Bluetooth device, and an address associated with the Bluetooth device100. In the example ofFIG. 2, the hopping sequence generation unit120generates the paging channel hopping sequence112for a first koffset value (e.g., a koffset value of 8) and the paging channel hopping sequence114for a second koffset value (e.g., a koffset value of 24), and stores the paging channel hopping sequences112and114in the paging channel hopping table110. In some implementations, the hopping sequence generation unit120can generate the paging channel hopping sequences112and114once (e.g., either at start-up or when a new connection between the Bluetooth device100and the master Bluetooth device is established). In other implementations, the hopping sequence generation unit120can recalculate the paging channel hopping sequences112and114periodically. The hopping sequence generation unit120may store the paging channel hopping sequences112and114at a predetermined hardware (or software) memory location.

The page request detection unit102can determine and indicate a single Bluetooth control channel on which a page request intended for the Bluetooth device was detected (e.g., similarly as was described above with reference toFIG. 1). In the example shown inFIG. 2, the page request detection unit102may determine that the page request was detected on Bluetooth channel25(identified by the reference numeral216). The page request detection unit102can provide the channel number associated with the detected Bluetooth control channel216, a time instant at which the page request was detected on the Bluetooth control channel216, and/or other information associated with the Bluetooth control channel216to the hopping frequency detection unit104.

The hopping frequency detector104can identify a target Bluetooth control channel for subsequent Bluetooth control communication based, at least in part, on the single detected Bluetooth control channel216, the paging channel hopping table110, and the time delay108In some implementations, in response to receiving the information associated with the single detected Bluetooth control channel216, the hopping frequency detection unit104can compare the channel number associated with the detected Bluetooth control channel216against the paging channel hopping sequences112and114in the paging channel hopping table110. In the example ofFIG. 2, the hopping frequency detection unit104determines that the paging channel hopping sequence112comprises the detected Bluetooth control channel216. Consequently, the hopping frequency detection unit104can use the paging channel hopping sequence112to determine the target Bluetooth control channel. The hopping frequency detection unit104can determine the target Bluetooth control channel based on the time delay108, the information associated with the detected Bluetooth control channel216, and the paging channel hopping sequence112. As described above with reference toFIG. 1, the time delay108can be determined based on a variety of factors, such as the elapsed processing time for the hopping frequency detection unit104to determine the target Bluetooth control channel, the elapsed time for the Bluetooth processing units106to switch to the active power mode, etc. Additionally, the hopping frequency detection unit104may either use a pre-computed time delay108or calculate the time delay108on the fly to determine the target Bluetooth control channel. In the example ofFIG. 2, the hopping frequency detection unit104determines that Bluetooth control channel7(depicted by the reference numeral218) is the target Bluetooth control channel.

The hopping frequency detection unit104can then notify the Bluetooth processing unit106of the identified paging channel hopping sequence112and the target Bluetooth control channel218. In one implementation, the hopping frequency detection unit104can write the identified paging channel hopping sequence112and the target Bluetooth control channel218into a predetermined memory location. The hopping frequency detection unit104can then provide a trigger signal to the Bluetooth processing unit106to switch the power mode of the link controller122, the transceiver unit124, and/or other processing components from the low power mode to the active power mode. In response to receiving the trigger signal, the link controller122can switch to the active power mode and can read the predetermined memory location to determine the target Bluetooth control channel218. In some implementations, the hopping frequency detection unit104can provide (to the Bluetooth processing unit106) the paging channel hopping sequence112and the target Bluetooth control channel218as part of the trigger signal, or in a separate notification signal. After the link controller122and the other Bluetooth processing units106switch to the active power mode, the link controller122can generate the appropriate page response (e.g., the link controller122may use a previously stored page response) for transmission on the target Bluetooth communication channel218. The link controller122can then tune to the target Bluetooth control channel218and can cause the transceiver unit124to transmit the page response on the target Bluetooth control channel.

FIG. 3is a flow diagram (“flow”)300illustrating example operations for predicting a Bluetooth control channel for a Bluetooth paging procedure. The flow300begins at block302.

At block302, one or more Bluetooth control channels are determined on which page requests intended for a Bluetooth device were received. In some implementations (as described inFIG. 1), the page request detection unit102can determine a plurality of Bluetooth control channels116A,116B,116C, and116D on which page requests intended for the Bluetooth device100were received. As described above, the page request detection unit102can determine the plurality of Bluetooth control channels116A,116B,116C, and116D based, at least in part, on analyzing frequency domain samples of incoming RF signals and/or other suitable page request detection techniques. The page request detection unit102can be configured to determine the plurality of Bluetooth control channels116A,116B,116C, and116D when the Bluetooth device100is operating in the low power mode or in the active power mode. The page request detection unit102can provide information (e.g., a channel number, a timestamp, etc.) associated with the plurality of Bluetooth control channels116A,116B,116C, and116D to the hopping frequency detection unit104. Providing the information associated with a plurality of Bluetooth control channels116A,116B,116C, and116D can minimize the uncertainty associated with determining the target Bluetooth control channel, can minimize the effect of a false page request detection, and can minimize the effect of blocking devices. In other implementations (as described inFIG. 2), the page request detection unit102can provide the information associated with a single Bluetooth control channel216on which a page request intended for the Bluetooth device100was last detected. This can minimize the amount of time associated with determining the target Bluetooth control channel and transmitting the response on the target Bluetooth control channel. The flow continues at block304.

At block304, a predetermined paging channel hopping sequence that comprises the one or more detected Bluetooth control channels is identified. For example, the hopping frequency detector104can identify the predetermined paging channel hopping sequence that comprises the one or more Bluetooth control channels (determined at block302). In one implementation (as described inFIG. 1), the hopping frequency detection unit104can correlate a plurality of Bluetooth control channels116A,116B,116C, and116D against the paging channel hopping sequences112and114in the paging channel hopping table110to determine which of the paging channel hopping sequences comprises the Bluetooth control channels. In another implementation, as described inFIG. 2, the hopping frequency detector104can compare the channel number associated with the single detected Bluetooth control channel216against the paging channel hopping sequences112and114to determine which of the paging channel hopping sequences comprises the channel number associated with the detected Bluetooth control channel216. The flow continues at block306.

At block306, a time delay associated with identifying the target Bluetooth control channel on which to transmit a page response is determined. The hopping frequency detection unit104can either receive a pre-computed value of the time delay108or can calculate the time delay108. As described above, the time delay108can be computed based on one or more of the following: 1) the elapsed processing time between the page request detection unit102detecting the one or more Bluetooth control channels and the hopping frequency detection unit104receiving the information associated with the one or more Bluetooth control channels, 2) the elapsed processing time between the hopping frequency detection unit104receiving the information associated with the one or more Bluetooth control channels and determining the target Bluetooth control channel, 3) the elapsed processing time between the hopping frequency detection unit104determining the target Bluetooth control channel and communicating the target Bluetooth control channel to the Bluetooth processing unit106, 4) the elapsed time for the Bluetooth processing units106to switch to the active power mode and be prepared to transmit the page response, and/or 5) a buffer time interval. The flow continues at block308.

At block308, the target Bluetooth control channel is identified based, at least in part, on the paging channel hopping sequence, the one or more detected Bluetooth control channels, and the time delay. For example, based on the time instants at which the paging requests were detected on the Bluetooth control channels116A,116B,116C, and116D, the predetermined paging channel hopping sequence112, and time delay108, the hopping frequency detection unit104can select Bluetooth control channel118C as the target Bluetooth control channel. In one implementation, the hopping frequency detection unit104can determine an index in the paging channel hopping sequence112associated with the last detected Bluetooth control channel116D and can (based on the time delay108) select the target Bluetooth control channel118C. As described above inFIGS. 1 and 2, the hopping frequency detection unit104can store the identified paging channel hopping sequence112and an index associated with the target Bluetooth control channel118C at a predetermined memory location (e.g., in hardware or in software). The flow continues at block310.

At block310, the power mode of the Bluetooth device is switched from a low power mode to an active power mode. For example, the hopping frequency detector104can generate a trigger signal to switch the power mode of the link controller122, the Bluetooth transceiver unit124, and other components of the Bluetooth processing unit106from the low power mode to the active power mode. In some implementations, in response to detecting the trigger signal, the link controller122can switch to the active power mode and read the predetermined memory location to determine the paging channel hopping sequence112and the target Bluetooth control channel. The flow continues at block312.

At block312, the page response is transmitted via the target Bluetooth control channel. For example, the link controller122can tune appropriate components of the Bluetooth processing unit106to the target Bluetooth control channel and can cause the Bluetooth transceiver unit124to transmit the page response on the target Bluetooth control channel. From block312, the flow ends.

It should be understood thatFIGS. 1-3are examples meant to aid in understanding embodiments and should not be used to limit embodiments or limit scope of the claims. Embodiments may comprise additional circuit components, different circuit components, and/or may perform additional operations, fewer operations, operations in a different order, operations in parallel, and some operations differently. For example, although not depicted inFIGS. 1-3, in some implementations, the hopping frequency detection unit104can also predict a current Bluetooth control channel in the paging channel hopping sequence112based on the one or more previously detected Bluetooth control channels. The hopping frequency detection unit104can then determine the target Bluetooth control channel based on the current Bluetooth control channel, the time delay108, and the identified paging channel hopping sequence112. With reference to the example ofFIG. 1, after the hopping frequency detection unit104determines that the paging channel hopping sequence112comprises the plurality of detected Bluetooth control channels116A,116B,116C, and116D, the hopping frequency detection unit104can determine that the Bluetooth control channel116E is the current Bluetooth control channel. Furthermore, althoughFIG. 1depicts the hopping frequency detection unit104determining the current Bluetooth control channel116E prior to determining the target Bluetooth control channel118C, embodiments are not so limited. In other embodiments, the hopping frequency detection unit104may not determine the current Bluetooth control channel (as depicted inFIGS. 2-3). Instead, the hopping frequency detection unit104can directly predict the target Bluetooth control channel118C based on the time instants at which the plurality of Bluetooth control channels116A,116B,116C, and116D were detected, the time delay108, and the paging channel hopping sequence112.

AlthoughFIGS. 1-3describe the hopping frequency detection unit104determining and indicating the target Bluetooth control channel on which to transmit the page response, embodiments are not so limited. In another implementation, in addition to indicating the target Bluetooth control channel, the hopping frequency detection unit104can also indicate a preceding Bluetooth control channel on which the master Bluetooth device is expected to transmit a page request. The Bluetooth processing unit106can tune to the preceding Bluetooth control channel and can listen for the page request from the master Bluetooth device. In response to receiving the page request, the Bluetooth processing unit106can switch to the target Bluetooth control channel and can transmit the page response via the target Bluetooth control channel.

AlthoughFIG. 1depicts the page request detection unit102detecting consecutive Bluetooth control channels on which page requests intended for the Bluetooth device100were received, embodiments are not so limited. In some implementations, the page request detection unit102may not detect consecutive Bluetooth control channels (e.g., because of blocking devices). For example, inFIG. 1, the page request detection unit102may detect page requests on the Bluetooth control channels116A,116B,116D, and116E (and may not detect the page request on the intermediate Bluetooth control channel116C). The page request detection unit102can provide the information associated with the predetermined number of detected Bluetooth control channels and an order in which the page requests were received on the Bluetooth control channels to the hopping frequency detection unit104. As described above, hopping frequency detection unit104can then correlate the channel numbers associated with the detected Bluetooth control channels to identify the appropriate predetermined paging hopping sequence and the target Bluetooth control channel.

Furthermore, it is noted that in some implementations, the hopping frequency detection unit104may be able to identify the predetermined paging hopping sequence even if a subset of the detected Bluetooth control channels are not part of the predetermined paging hopping sequence. With reference to the example ofFIG. 1, the hopping frequency detection unit104may receive information associated with the Bluetooth control channels3,25,53, and17. The hopping frequency detection unit104can select the predetermined paging hopping sequence112based on detecting a high correlation between the Bluetooth control channels3,25,53, and17and the predetermined paging hopping sequence112(even though the Bluetooth control channel53is not part of the predetermined paging hopping sequence112).

Embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, embodiments of the inventive subject matter may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium. The described embodiments may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic device(s)) to perform a process according to embodiments, whether presently described or not, since every conceivable variation is not enumerated herein. A machine-readable medium includes any mechanism for storing or transmitting information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). A machine-readable medium may be a machine-readable storage medium, or a machine-readable signal medium. A machine-readable storage medium may include, for example, but is not limited to, magnetic storage medium (e.g., floppy diskette); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of tangible medium suitable for storing electronic instructions. A machine-readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, an electrical, optical, acoustical, or other form of propagated signal (e.g., carrier waves, infrared signals, digital signals, etc.). Program code embodied on a machine-readable signal medium may be transmitted using any suitable medium, including, but not limited to, wireline, wireless, optical fiber cable, RF, or other communications medium.

FIG. 4is a block diagram of one embodiment of an electronic device400including a mechanism for predicting a Bluetooth control channel for a Bluetooth paging procedure. In some implementations, the electronic device400may be one of a personal computer (PC), a notebook computer, a tablet computer, a netbook, a mobile phone, a gaming console, a mobile phone, a personal digital assistant (PDA), a smart appliance, or other electronic devices comprising a collocated WLAN device and a Bluetooth device. In some implementations, the Bluetooth device and the WLAN device can be embodied on distinct integrated circuits (e.g., distinct Bluetooth and WLAN chips) on a common circuit board (or on separate circuit boards in close proximity). In other implementations, the Bluetooth device and the WLAN device can be embodied on a single integrated circuit (e.g., a system on a chip (SoC)). The Bluetooth device and the WLAN device can share one or more processing components (e.g., receiver antenna, analog front end processing units, etc.) of the electronic device400.

The electronic device400includes a processor unit402(possibly including multiple processors, multiple cores, multiple nodes, and/or implementing multi-threading, etc.). The electronic device400includes a memory unit406. The memory unit406may be system memory (e.g., one or more of cache, SRAM, DRAM, zero capacitor RAM, Twin Transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM, etc.) or any one or more of the above already described possible realizations of machine-readable media. The electronic device400also includes a bus410(e.g., PCI, ISA, PCI-Express, HyperTransport®, InfiniBand®, NuBus, AHB, AXI, etc.), and network interfaces404that include one or more wireless network interfaces (e.g., a WLAN interface, a Bluetooth® interface, a WiMAX interface, a ZigBee® interface, a Wireless USB interface, etc.) and, in some implementations, a wired network interface (e.g., an ATM interface, an Ethernet interface, a Frame Relay interface, SONET interface, etc.).

The electronic device400also comprises a communication unit408. The communication unit408comprises a page request detection unit412, a hopping frequency detection unit414, and a Bluetooth processing unit416. The Bluetooth processing unit416comprises a link controller418and a transceiver unit420. As described above with reference toFIGS. 1-3, the communication unit408can implement functionality to detect a target Bluetooth control channel on which to transmit a page response to a master Bluetooth device, in response to detecting one or more page requests on corresponding one or more Bluetooth control channels. Any one of these functionalities may be partially (or entirely) implemented in hardware and/or on the processor unit402. For example, the functionality may be implemented with an application specific integrated circuit, in logic implemented in the processor unit402, in a co-processor on a peripheral device or card, etc. Further, realizations may include fewer or additional components not illustrated inFIG. 4(e.g., video cards, audio cards, additional network interfaces, peripheral devices, etc.). The processor unit402, the memory unit406, and the network interfaces406are coupled to the bus410. Although illustrated as being coupled to the bus410, the memory unit406may be coupled to the processor unit402.