Bluetooth low power PHY detection and handover

By designing multiple synchronization engines and demodulators operating in parallel in Bluetooth LE devices, the PHY of the physical layer block is automatically updated, which solves the problems of complex and low efficiency of PHY updates in the prior art, and achieves a more stable and efficient Bluetooth LE connection.

CN119545319APending Publication Date: 2025-02-28AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410935415.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-08-28
Filing Date
2024-07-12
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

The existing Bluetooth LE's PHY update technology is complex and requires transmission of more PDUs, resulting in wasted channel occupation time and bandwidth, and there is a risk of disconnection.

Method used

A device is designed, including multiple demodulators and synchronization engines, capable of operating and detecting incoming Bluetooth data packets in parallel, automatically updating the PHY of the physical layer block, and reducing unnecessary communication.

Benefits of technology

By reducing unnecessary communication and automatic PHY update, the stability and efficiency of Bluetooth LE connections are improved, and channel occupancy time and bandwidth waste are reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119545319A_ABST
    Figure CN119545319A_ABST
Patent Text Reader

Abstract

The present disclosure is directed to Bluetooth low power PHY detection and handover. Techniques for performing automatic PHY updates in a Bluetooth device. In some cases, a device may detect that a data packet transmitted with a particular PHY has been received and automatically update a physical layer of the device to receive and / or transmit a subsequent data packet with that PHY.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Generally, the present disclosure relates to wireless network connections, and more specifically, to Bluetooth communications between central devices and peripheral devices. Background Art

[0002] The Core Specification (BCS) v.5.3 defines the low energy standard (Bluetooth LE or BLE) and establishes a relationship between a central device and one or more peripheral devices (also referred to as "peripherals"), with which a central device can establish a connection. BCS defines a stack of layers starting from the physical layer (which includes the radio frequency (RF) system and the hardware that interfaces with the RF system) to the application layer (which includes user applications that employ Bluetooth communications, such as a music player application, etc.). BCS defines several different configurations of the physical layer, each of which is referred to as a PHY.

[0003] Specifically, with respect to BLE, the BCS defines LE 1M PHY, LE 2M PHY, and LE Coding PHY. The LE 1M PHY provides a symbol rate of 1 million symbols per second (equivalent to 1Mb / s), while the LE 2M PHY provides a symbol rate of 2 million symbols per second (equivalent to 2Mb / s), allowing higher application data rates than LE 1M, but with a higher risk of symbol interference, which reduces the effective range to some extent. The LM Coding PHY provides a symbol rate of 1 million symbols per second, but uses forward error correction to achieve a significantly longer range than LE 1M; this coding reduces the application data rate to 500Kb / s or 125Kb / s, depending on the coding scheme used.

[0004] Bluetooth devices transmit data in protocol data units (PDUs), which represent the smallest unit of data that the Bluetooth protocol can carry. (The term PDU is often used interchangeably with "data packet".) A PDU can contain various types of data, such as control information, user data, headers, and other information for proper communication. In general, PDUs are used to organize and encapsulate data for transmission within the Bluetooth protocol. There are several types of PDUs used by BLE, including but not limited to announcement PDUs used to propagate information about the presence and capabilities of a device to other devices, data PDUs that carry basic data such as user information or application-specific data, control PDUs that contain control and management information for establishing, maintaining, and terminating BLE connections, and response PDUs used to respond to specific requests or commands in the Bluetooth protocol.

[0005] Bluetooth devices are designed to use the most advantageous PHY in each situation. For example, if a central device and a peripheral are in a connected state using LE 1M PHY, and the range between them grows to the point where symbol errors hinder transmission, the device will likely try to update the PHY to LE Coding PHY; conversely, if the range is short and interference is minimal, the device will likely try to update the PHY to LE 2M PHY.

[0006] As described in further detail below, the PHY update technique provided by the standard is complex and has several disadvantages. First, this technique requires the transmission of more PDUs (and therefore takes longer) than is required to update both devices to the desired PHY. In addition to wasting bandwidth, this delay is also disadvantageous because the fact that one of the devices has decided to update the PHY means that the current PHY is not performing optimally and it is best to correct this situation as soon as possible. In addition, this technique risks disconnection; for example, if the peripheral device does not receive an update packet after the central device has been updated, the device will lose connection. Further, if the PHY update transitions from a longer range PHY (e.g., LE decoding) to a shorter range PHY (e.g., LE 2M), the change in sensitivity may cause the connection to lose synchronization, leading to an eventual disconnection. In addition, the excessive communication required by this procedure does not effectively use bandwidth or channel occupancy time.

[0007] Before establishing a connection, Bluetooth LE uses a scanning / advertising mode, where the advertiser (usually a peripheral device) sends advertising PDUs at fixed intervals (the advertising interval). The BLE standard does not allow the LE 2M PHY to be used for the primary advertising channels (2402MHz, 2426MHz, and 2480MHz). The LE 2M PHY is only allowed to be used for the secondary advertising channels (2402MHz to 2480MHz), which must be specified by the payload of the primary advertising packet. This requires additional non-essential PDUs to establish the secondary advertising channels.

[0008] Collectively, these problems create inefficiencies in channel occupancy time and bandwidth that waste device power and degrade the user experience.New technologies are needed that address some or all of these problems. Summary of the invention

[0009] In one aspect, the present disclosure is directed to a device comprising: one or more demodulators configured to demodulate incoming Bluetooth data packets transmitted using a first Bluetooth physical layer configuration (PHY); a plurality of synchronization engines operating in parallel, each of the synchronization engines communicating with at least one of the one or more demodulators and configured to receive the incoming Bluetooth data packets, the plurality of synchronization engines comprising: a first synchronization engine implementing the first Bluetooth PHY, the first synchronization engine comprising: a circuit system for receiving the incoming Bluetooth data packet from one of the demodulators; a circuit system for transmitting the data based at least in part on the use of the first Bluetooth PHY; a circuit system for detecting a packet identifier in the incoming Bluetooth data packet based on the packet identifier detected; a circuit system for detecting the incoming Bluetooth data packet based on the detection of the packet identifier; and a circuit system for delivering the incoming Bluetooth data packet based on the detection of the incoming Bluetooth data packet; a second synchronization engine that implements a second Bluetooth PHY, the second synchronization engine comprising: a circuit system for receiving the incoming Bluetooth data packet from one of the one or more demodulators; and a circuit system for not delivering the incoming Bluetooth data packet based on the failure to detect the incoming Bluetooth data packet; and a third synchronization engine that implements a third Bluetooth PHY, the first .... The three synchronization engines include: circuitry for receiving the incoming Bluetooth data packet from one of the one or more demodulators; and circuitry for not delivering the incoming Bluetooth data packet based on not detecting the incoming Bluetooth data packet; a plurality of receivers, each configured to receive Bluetooth data packets corresponding to different Bluetooth PHYs, the plurality of receivers including: a first receiver in communication with the first synchronization engine and configured to receive Bluetooth data packets corresponding to the first Bluetooth PHY, the first receiver including: circuitry for receiving the incoming Bluetooth data packet; and circuitry for providing a notification that the incoming Bluetooth data packet is transmitted using the first Bluetooth PHY; a second receiver in communication with the second synchronization engine and configured to receive Bluetooth data packets corresponding to the second Bluetooth PHY; a third receiver in communication with the third synchronization engine and configured to receive Bluetooth data packets corresponding to the third Bluetooth PHY; and circuitry for enabling all of the physical layer blocks; circuitry for enabling all of the receivers; circuitry for receiving the notification that the incoming Bluetooth data packet is transmitted using the first Bluetooth PHY; circuitry for determining that the incoming Bluetooth data packet corresponds to the first Bluetooth PHY based at least in part on the notification;and circuitry for updating the device to operate using the first Bluetooth PHY, the circuitry for updating the device to operate using the first Bluetooth PHY comprising: circuitry for enabling the first receiver and disabling the second receiver and the third receiver based at least in part on determining that the incoming Bluetooth data packet corresponds to the first Bluetooth PHY; circuitry for receiving one or more subsequent incoming Bluetooth data packets using the first receiver; and circuitry for transmitting one or more outgoing Bluetooth data packets using the first Bluetooth PHY. ;

[0010] In another aspect, the present disclosure is directed to a device, comprising: circuitry for enabling a plurality of physical layer blocks, the plurality of physical layer blocks including a first physical layer block implementing a first Bluetooth physical layer configuration (PHY); circuitry for enabling a plurality of receivers including a first receiver in communication with the first physical layer block; circuitry for detecting an incoming data packet using the first physical layer block; circuitry for determining that the incoming data packet corresponds to the first Bluetooth PHY; and circuitry for updating the device to operate using the first Bluetooth PHY based at least in part on determining that the incoming data packet corresponds to the first Bluetooth PHY.

[0011] In another aspect, the present disclosure is directed to a method, comprising: enabling a plurality of physical layer blocks, the plurality of physical layer blocks including a first physical layer block implementing a first Bluetooth physical layer configuration (PHY); enabling a plurality of receivers, the plurality of receivers including a first receiver in communication with the first physical layer block, detecting an incoming data packet using the first physical layer block; determining that the incoming data packet corresponds to the first Bluetooth PHY; and updating the device to operate using the first Bluetooth PHY based at least in part on determining that the incoming data packet corresponds to the first Bluetooth PHY. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 is a block diagram illustrating a Bluetooth LE group including a central device and a plurality of peripheral devices according to some embodiments.

[0013] Figure 2 is a timing diagram illustrating the communications involved in a conventional PHY update process.

[0014] Figure 3 is a timing diagram illustrating communications involved in a PHY update process according to various embodiments.

[0015] Figure 4 is a timing diagram illustrating the communications involved in the existing LE 2M advertising process.

[0016] Figure 5 is a timing diagram illustrating the communications involved in the LE 2M advertising process according to various embodiments.

[0017] Fig. 6A is a block diagram illustrating certain components of a Bluetooth device in accordance with various embodiments.

[0018] Figures 6B to 6G is a block diagram illustrating the operation of a Bluetooth device according to various embodiments.

[0019] Figures 6H to 6J is a block diagram illustrating an alternative configuration of a Bluetooth device in accordance with various embodiments.

[0020] Figures 7A to 7B Methods of updating a PHY according to various embodiments are illustrated.

[0021] Figure 8 is a block diagram illustrating example components of an apparatus according to some embodiments. DETAILED DESCRIPTION

[0022] Various embodiments of PHY update techniques for Bluetooth LE devices. As used herein, the term "PHY" means any specific configuration of the physical layer of a Bluetooth device. Examples of PHYs include, but are not limited to, LE 1M PHY, L2 2M PHY, and LE Coding PHY, as well as additional PHYs to be developed, such as those developed by the Bluetooth Higher Data Throughput project (generally referred to herein as High Data Rate PHYs).

[0023] In an aspect of some embodiments, when a central device is connected to a peripheral device (i.e., in a "connected state"), a transmitting device (which in some embodiments may be a central device or a peripheral device) transmits a data packet using a desired PHY. A receiving device (which in some embodiments may also be a central device or a peripheral device) may employ multiple physical layer blocks configured with different PHYs. In an aspect, the device may enable those physical layer blocks to operate simultaneously in parallel. The device may also enable multiple receivers, including receivers that communicate with each of the physical layer blocks. When the device detects a data packet using one of the physical layer blocks (e.g., a physical layer block configured with the same PHY as the data packet), the device may update the PHY of the physical layer block.

[0024] As described below, some embodiments advantageously allow for more efficient PHY updates, thereby reducing channel occupancy time and bandwidth, reducing the risk of lost connectivity, and / or increasing user satisfaction. In some embodiments, the PHY update technique may allow the use of LE 2M advertising packets on the primary advertising channel because advertisers (e.g., peripherals) and scanners (e.g., centrals) may automatically switch PHYs as needed.

[0025] Figure 1 The diagram illustrates a system 100 including a central device 105 and a plurality of peripheral devices 110. Figure 1 Four peripheral devices 110 are illustrated, but various embodiments may include as many peripheral devices 110 as the central device 105 can support. As used herein, the term "central device" means a device that performs the role of a central device (also called a master device) that performs the central role according to the BCS when two devices are in a connected state. Non-limiting examples of such devices may include personal computers, wireless phones, tablet computers, smart watches, etc. Similarly, the term "peripheral device" means a device that performs a peripheral role according to the BCS. Non-limiting examples of such devices include sensors (temperature sensors, heart rate sensors, etc.), IoT devices (thermostats, doorbells, cameras, etc.), audio devices (headphones, speakers, etc.), etc. In the notification and scanning states, the "scanner" is a device that scans for notifications (usually a central device), and the "notifier" (usually a peripheral device) transmits the notification. In the start state, the scanner acts as a "starter" that starts the connection to the notifier. (These exemplary roles are not limiting, and according to some embodiments, any device can perform any suitable role). In some embodiments, a single device may be a central device in some cases and a peripheral device in other cases. For example, modern versions of the Apple Can be operated as a central unit or a peripheral unit.

[0026] As noted above, some embodiments may make the PHY update process more efficient. To illustrate the benefits of some embodiments, Figure 2 is a timing diagram illustrating the communications involved in the prior art PHY update process 200 between the central device 205a and the peripheral device 205b, and Figure 3 is a timing diagram of a PHY update process 300 provided by some embodiments. In both processes 200, 300, each device 205 includes a host 210 and a link layer 215, typically connected to a host controller interface (HCI).

[0027] exist Figure 2, process 200 is initiated by central device host 210a sending a HCI_LE_SET_PHY command to link layer 215a (event 220), which link layer 215a acknowledges by sending a HCI_Command_Status message back to host 205a (event 225). Next, link layer 215a transmits a protocol data unit (PDU) called an LL_PHY_REQ PDU to peripheral link layer 210b to indicate the transmit and receive PHYs that central device 205a wants to use (event 230). In response, peripheral link layer 215b transmits an LL_PHY_RSP PDU with the same information of the peripheral device preferences (event 235). Next, central link layer 215 transmits an LL_PHY_UPDATE_IND PDU (event 240), indicating which PHY will be used in each direction and the time at which the update will occur. BCS uses the term "time" to refer to the precise point in time at which a scheduled event will occur. In many cases, a time is defined as a certain amount of connection events until the event. With respect to PHY updates, the BCS requires at least six connection events before a time occurs after transmitting a LL_PHY_UPDATE_IND PDU. Once the time occurs, the PHY is updated on the link layer 215 of each device 205 (event 245) and each link layer 215 transmits an HCI_LE_PHY_UPDATE_COMPLETE message (event 250) to notify its respective host 210 that the PHY update process has been completed. From this point on, the device 205 will transmit data PDUs using the new PHY settings (events 255 to 265). In summary, the process will generally require at least three link layer control protocol (LLCP) messages (e.g., events 220, 225, and 250), three command PDUs (e.g., events 230 to 240) plus six additional connection events (the minimum required for the time).

[0028] As noted, some embodiments employ Figure 3 The process 300 is used to perform the PHY update. Figure 2300 is more efficient. As described above, method 300 may begin with central device host 210a sending an HCI_LE_SET_PHY command to link layer 215a (event 305), which is acknowledged by an HCI_Command_Status message (event 310), and ends with an HCI_LE_PHY_UPDATE_COMPLETE message (event 325). However, between those events, process 300 requires only a single PDU (which may be a data PDU) to be sent from the central device to the peripheral device (event 315), at which point each link layer 115 automatically updates the PHY, for example, using the operations described below. At most, three LLCP messages are required at the central device (events 305, 310, 320) and a single PDU (event 315), which may be a data PDU. Furthermore, as further described below, in some embodiments, the entire PHY update may occur at link layer 215 without involving host 210, and in such embodiments, LLCP messages are not required at all. This process provides Figure 2 The process 200 makes more efficient use of channel occupancy time and bandwidth.

[0029] Some embodiments may also enable LE 2M advertising on the primary channel. To illustrate some aspects of this feature, Figure 4 is a timing diagram depicting an existing process 400 for advertising using LE 2M, and Figure 5 is a timing diagram illustrating a process 500 according to some embodiments. As noted, the current BCS does not support LE 2M advertising on the primary advertising channel, and any use of LE 2M advertising must be done on the secondary advertising channel. Process 400 involves communication between scanner 205a (which may be a central device) and advertiser 205b (which may be a peripheral device). First, scanner host 210a sends a HCI_LE_EXTENDED_CREATE_CONNECTION message to link layer 215a (event 405), which includes, among other things, a field indicating which link layer 210a the PHY is connected to. This is confirmed by a HCI_Command_Status message (event 410).

[0030] At the same time, the advertiser link layer 215b transmits an ADV_EXT_IND PDU (event 415), followed by an ADV_AUX_IND PDU (event 420), until the central link layer 215a responds with an AUX_CONNECT_REQ PDU (event 425) to request a connection. Each ADV_EXT_IND PDU contains an AuxPtr field indicating a secondary advertising channel and the PHY to be used for the following ADV_AUX_IND PDU. The AUX_CONNECT_REQ PDU is sent by the scanner link layer 215a on the same secondary advertising channel as specified by the ADV_AUX_IND PDU. After receiving the connection request, the advertiser link layer 215b sends an AUX_CONNECTION_RSP PDU (event 435), after which each link layer 215 sends an HCI_LE_Enhanced_Connection_Complete message to its corresponding host 210 (event 435) and the devices enter the connected state, at which time data PDUs can be exchanged (events 440 to 455).

[0031] Figure 5 An exemplary process 500 for enabling LE 2M advertising on a primary advertising channel in some embodiments is illustrated. The process 500 begins with the scanner host (and / or, in the enabled state, the initiator host) 210a sending an HCI_LE_CREATE_CONNECTION message to the link layer 215a (event 505). Compared to the typical process 400, this process 500 does not require the host 210a to command the link layer 215a using the HCI_LE_EXTENDED_CREATE_CONNECTION message because the host 210a does not need to specify the PHY to connect to, and the link layer 215a does not need to listen on the secondary advertising channel. (However, in some embodiments, HCI_LE_EXTENDED_CREATE_CONNECTION may still be used.)

[0032] The advertiser link layer 215b transmits an ADV_IND PDU (or alternatively, an ADV_DIRECT_INV PDU) on the primary advertising channel (event 515). Next, the initiator link layer 215a sends a CONNECT_IND PDU using the same PHY that it received (in this case, LE 2M) (event 520). Each link layer 215 sends an HCI_LE_Connection_Complete message to its corresponding host 210 (event 525), and the device enters a connected state with LE 2M as the active PHY. At this point, data packets may be exchanged (events 530 through 545). This process 500 is similar to Figure 4 The difference between the processes 400 of and is that, in some embodiments, the automatic PHY update may eliminate the need for the extended advertising procedure. More specifically, in some embodiments, the ADV_IND PDU may be sent using LE 2M (event 515), and the initiator link layer 215a may perform the automatic PHY update (e.g., using the procedure discussed above) before sending the CONNECT_IND PDU (event 520) (also using LE 2M). Additionally and / or alternatively, if the advertiser link layer 215b transmits the ADV_IND PDU using LE 1M, and if the scanner 205a wants to start connected mode using LE 2M, then the scanner link layer 215b may transmit the CONNECT_IND PDU using LE 2M, and the advertiser link layer 215b may perform the automatic PHY update.

[0033] As this example shows, in some embodiments, for example, whenever a PDU (e.g., any of the advertising PDUs, scanning PDUs, and / or activation PDUs) is received, the device may perform automatic PHY updates not only in the connected state but also in other states. As used herein, the term "advertising PDU" includes, but is not limited to, those PDUs defined by BCS Vol 6, Part B (ADV_IND, ADV_DIRECT_IND, ADV_NONCONN_IND, ADV_SCAN_IND, ADV_EXT_IND, AUX_ADV_IND, AUX_SYNC_IND, and AUX_CHAIN_IND) and any other PDUs sent by a device in the advertising state. Similarly, the term "scanning PDU" includes, but is not limited to, those PDUs defined by BCS Vol 6, Part B (SCAN_REQ, SCAN_RSP, AUX_SCAN_REQ, AUX_SCAN_RSP) and any other PDUs or data packets sent by a device in the scanning state. The term "Startup PDU" includes but is not limited to those PDUs defined by BCS Vol 6, Part B (CONNECT_IND, AUX_CONNECT_REQ, AUX_CONNECT_RSP) and any other PDU or data packet sent by a device in the Startup state. Therefore, in some embodiments, the automatic PHY update procedures described herein are not limited to devices in the Connected state.

[0034] An automatic PHY update process according to some embodiments may be performed at Fig. 6A to J's context for description. Fig. 6A is a block diagram illustrating exemplary physical and / or logical components of a Bluetooth device with automatic PHY update capability according to various embodiments, and Figures 6B to 6G is a block diagram illustrating the operation of this apparatus according to various embodiments. Figures 6H to 6J An alternative configuration of this device is illustrated.

[0035] Fig. 6A The diagram illustrates relevant components of a Bluetooth device 600a, which includes multiple physical layer blocks 605, each configured with a specific PHY, as well as a MAC block 610 and RF hardware 615 (which, as illustrated, in some embodiments may include an analog-to-digital converter ADC and / or decimation filters and any other hardware or firmware used to receive or transmit modulated Bluetooth signals).

[0036] As used herein, the term "physical layer block" means any collection of components that collectively implement or facilitate transmission or reception of Bluetooth data packets utilizing a particular PHY (i.e., physical layer configuration, e.g., LE1M, LE 2M, LE decoding, etc.). In some embodiments, the physical layer block 605 may include a demodulator 620 and / or a synchronization engine 625. The physical layer block 605 is merely exemplary, and in other embodiments, the physical layer block 605 may include only a single component (e.g., a demodulator 620 or a synchronization engine 625) and / or may include other components (e.g., an ADC / filter 615, etc.). Further, although Fig. 6A Three physical layer blocks 605 are illustrated, but different embodiments may include any number of physical layer blocks, such as each corresponding to a different PHY supported by device 600a. Fig. 6A The physical layer blocks for some exemplary PHYs are illustrated, but various embodiments may include a physical layer block 605 for any kind of PHY. In a general sense, the physical layer block 605 may include some or all components in the transmit and / or receive path that physically transmits / receives data packets over the air between the MAC block 610 and / or a logical transmitter / receiver (e.g., receiver 630) and the RF hardware 615.

[0037] The demodulator 620 may be any component, which may include circuitry (e.g., hardware and / or firmware) or a processor (e.g., DSP, firmware, etc.) operating software, having logic to demodulate modulated Bluetooth signals and, in a particular embodiment, to demodulate digital signals modulated onto a carrier using a modulation scheme. Exemplary modulation schemes include, but are not limited to, frequency shift keying (FSK) (e.g., Gaussian frequency shift keying (GFSK)), quadrature amplitude modulation (QAM), and the like.

[0038] The synchronization engine 625 may be any component, which may include circuitry (e.g., hardware and / or firmware) or a processor (e.g., DSP, firmware, etc.) operating software, having logic to receive a signal (e.g., a demodulated symbol from the demodulator 620) and detect the presence of a data packet in the signal. In some embodiments, the synchronization engine 625 may include logic to detect a Bluetooth data packet identifier, which may be any code, number, string, or other data used to identify a data packet as a Bluetooth data packet or PDU, specifically, the data packet includes a BLE data packet, such as an LE 1M data packet, an LE 2M data packet, and / or an LE decoding data packet, to name a few examples. Some exemplary data packet identifiers include, but are not limited to, data packet identifiers defined by the BCS, including, but not limited to, an access address, a channel access code, a device access code, a synchronization word, etc. In some embodiments, the synchronization engine 625 may perform one or more additional functions, such as delivering the detected data packet to a receiver, performing operations to synchronize the device 600a with another device, and the like.

[0039] As illustrated, the exemplary device 600a includes three physical layer blocks: a block configured with LE 1M PHY 605a, a block configured with LE 2M PHY 605b, and a block configured with LE decoding PHY 605c. Each of the physical layer blocks communicates with a corresponding receiver 630. As used herein, the term "receiver" does not necessarily require the entire receive chain of the device 600a, but instead may refer to a component in the MAC block, such as a packet decoder, a receive payload bit processor, and / or any component or device that can receive a demodulated packet or PDU and / or perform one or more functions (including but not limited to packet format matching, flow control checking, acknowledgment checking, decryption, authentication, and / or cyclic redundancy check (CRC) integrity checking); in some cases, the receiver receives a packet from the PHY block and provides at least a portion of the data in the packet or PDU to a higher-level component (e.g., MAC logic 635). In an aspect, each receiver includes logic to receive a demodulated data packet with the appropriate PHY (e.g., LE 1M receiver 630a includes logic to receive LE 1M data packets from physical block 605a, LE2M receiver 630b includes logic to receive LE 2M data packets from physical block 605b, and LE decoding receiver 630c includes logic to receive LE decoding data packets from physical block 605c). Each receiver 630 also includes logic to provide data from the received data packet to MAC logic 635, which may take any action appropriate for the data packet (e.g., pass the data PDU to higher layers of the Bluetooth stack through the host controller interface (HCI), respond to control PDUs at the link layer when appropriate, etc.).

[0040] Figures 6B to 6G Some embodiments of the device 600a are illustrated in operation. Fig. 6A The dashed arrows in the diagram illustrate possible communication links according to some embodiments, while Figures 6B to 6G The solid arrows in illustrative diagrams illustrate the communication paths taken by, for example, Bluetooth LE packets during the PHY update procedure of various embodiments. Figure 6B , RF hardware 615 passes the same modulated data packet to each of the demodulators 620, which may operate in parallel. Demodulators 620a, 620b, 620c each demodulate (and / or attempt to demodulate) the data packet (which may include demodulated symbols at this time) and forward the data packet to synchronization engines 625a, 625b, 625c, respectively. (In different embodiments, RF hardware 615 and / or intermediate components may perform this operation in various ways). By way of example only, device 600a may include circuitry (not shown) in the path between RF hardware 615 and demodulators 620 to multiplex data packets to all demodulators 620, a bus to distribute data packets to demodulators 620, where the demodulators access data packets from the bus, and so on. Each synchronization engine 625 attempts to identify a data packet in the information transmitted from the corresponding demodulator 620. In an aspect, if the data packet corresponds to the PHY of the sync engine 625 and / or physical layer block 605 (e.g., an LE 2M data packet corresponds to an LE 2MPHY), the sync engine 625 will be able to identify the data packet and determine that the data packet corresponds to the PHY implemented by the sync engine 625 (and / or physical layer block 605). If so, the sync engine 625 may pass the data packet to the appropriate receiver 630.

[0041] For illustration purposes, Figure 6B , RF hardware 615 receives incoming LE 1M packets, i.e., packets transmitted by a remote device using the LE 1M PHY. As used herein, the term "remote device" only refers to packets transmitted by the remote device. Figures 6A to 6G6M sync engine 625a, while LE 2M demodulator 620b demodulates the data packet and passes the demodulated data packet to LE 2M sync engine 625b, and LE decod demodulator 620c demodulates the data packet and passes the demodulated data packet to LE decod sync engine 625c. As will be appreciated, the demodulated data packet may include symbols representing information in the data packet that have been demodulated by the demodulator 620.

[0042] Because in this example, the data packet is an LE 1M data packet and therefore corresponds to the LE 1M sync engine 625a, only the LE 1M sync engine 625a detects the data packet. The sync engine 625a passes the data packet to the LE 1M receiver 630a, which processes the data packet and passes the result to the MAC logic 635. Meanwhile, the other two sync engines 625b, 625c cannot detect the data packet and therefore do not transmit anything to their respective receivers 630b, 630c.

[0043] Steering Figure 6C In accordance with automatic PHY switching of a particular embodiment, the MAC logic 635 determines that the data packet is an LE 1M data packet and, therefore, determines that the transmitting (remote) device is using the LE 1M PHY. This determination may be made based on messages from the synchronization engine 625a, the receiver 620a, and / or any other component. Alternatively and / or in addition, the MAC logic 635 may simply detect that the data packet is received at the LE 1M receiver 630a and infer from the detection that the data packet is an LE 1M data packet. At this time, the MAC logic 635 may automatically switch the device 600a (and / or the link layer of the device 600a) from any PHY previously used by the device 600a to the LE 1M PHY. In some embodiments, the LE 2M receiver 630b and the LE decoding receiver 630c are disabled (e.g., by the MAC logic 625 and / or other logic), and in Figure 6C1M PHY.

[0044] Fig.6D and 6E The same functionality is illustrated, but in that case, the RF hardware 615 receives LE 2M packets, which are detected by the LE 2M sync engine 625b and passed to the LE 2M receiver 630b. As a result of the automatic PHY update for LE 2M, the LE 1M receiver 630a and LE decoding receiver 630c are disabled (eg, Fig. 6E ), and device 600a may receive subsequent incoming packets using physical layer block 605b implementing LE 2M PHY. Similarly, logic may cause a transmit chain (not shown) of device 600a to transmit one or more outgoing packets using LE 2M PHY. Fig. 6F and 6G The same process occurs in , but the PHY automatically switches to the LE Decoding PHY immediately after the LE Decoding packet is detected at the LE Decoding Sync Engine 625c.

[0045] Depend on Figures 6B to 6G The illustrated process may be repeated as needed each time the device 600a receives an incoming data packet with a different PHY than the previous data packet. For example, after a data packet has been transmitted with a new PHY, all receivers 630 may be enabled and the process may begin again with a new incoming data packet. If the new incoming data packet has the same PHY, then the device may not need to update the PHY and may simply receive the new incoming data packet on the same PHY as before. If the new incoming data packet has a new PHY, then an update process may be performed.

[0046] If through Figures 6H to 6J As illustrated by the example of FIG. 6 , the device 600 may adopt many different configurations without departing from the scope of the various embodiments. By way of example only, in the example of FIG. 6 , the device 600 may be configured in many different ways without departing from the scope of the various embodiments. Figure 6HIn some embodiments illustrated, the LE 1M demodulator and the LE 2M demodulator may be combined into a single demodulator 620d, which may then transmit data packets (e.g., demodulated symbols) to both the LE 1m sync engine 625a and the LE 2M sync engine 625. In some cases, one, both, or neither of the LE 1M physical layer block 625d and the LE 2M physical layer block 625e may include the demodulator 620b. In addition to the architectural differences, the device 600b may also be used with the LE 1M physical layer block 625d and the LE 2M physical layer block 625e. Figures 6B to 6G The device 600A operates in a similar manner. Similarly, as by Fig.6I As illustrated, device 600c may have only one demodulator 620e to handle all incoming packets; this device may also operate in a similar manner to device 600a. In such an embodiment, one, some, or all of physical layer blocks 605f, 605g, 605h may include demodulator 620e, or none of them may include such a demodulator. In other embodiments, such as by Figure 6J As illustrated, the LE 1M sync engine and the LE 2M sync engine may be combined into a single sync engine 625d that may detect both LE 1M packets and LE 2M packets. The single sync engine 625d may pass the packets to either the LE 1M receiver 630a or the LE 2M receiver depending on which type of packet it detects. In this case, there may be a single combined physical layer block 605i for both the LE 1M PHY and the LE 2M PHY that includes the demodulator 620d and / or the sync engine 620d (or both, or neither).

[0047] Figures 7A to 7B The PHY update method 700 according to various embodiments is further illustrated in detail. Fig. 7A and 7B refer to Fig. 6A J are described as devices 600a to 600d, but those devices may be used in many different ways (including but not limited to by Fig. 7A and 7B Similarly, although in some embodiments Fig. 7A The operations of are performed by logic in device 600, but those operations are not limited to any particular hardware, firmware, or software architecture.

[0048] Started in Fig. 7A, method 700 may include enabling one or more physical layer blocks (block 705). For example, device 600 may include logic (including but not limited to MAC logic 635) to enable some or all physical layer blocks 605. Similarly, method 700 may include enabling one or more Bluetooth receivers (block 710). For example, device 600 may include logic (including but not limited to MAC logic 635) to enable some or all receivers 630.

[0049] In some embodiments, the method 700 may include operating two or more physical layer blocks (e.g., 605) in parallel (block 715). By way of example only, the device (e.g., 600) (or various components) may include logic to operate the physical layer blocks in parallel so that each of the multiple synchronization engines (e.g., 625) can detect (or attempt to detect) data packets in parallel. As noted, in some embodiments, the device (e.g., 600d) may include a single combined physical layer block (e.g., 605i) (or its components, such a combined demodulator (e.g., 620d) and / or a combined synchronization engine (e.g., 625)) that supports both LE 1M PHY and LE 2M PHY. Thus, in an aspect, the method 700 may include operating the combined physical layer block (e.g., 605i) and / or synchronization engine (e.g., 625d) at a constant rate (e.g., LE 2M rate (2Ms / s)) (block 720).

[0050] At block 725, method 700 may include receiving an incoming Bluetooth data packet. Data packets may be received by a local device (e.g., 600) and may be transmitted from a remote device. In some embodiments, the incoming data packet may be received using RF hardware (e.g., 615) and delivered to one or more physical layer blocks (e.g., 605), where the incoming data packet may be demodulated and provided to one or more synchronization engines (e.g., 625) for detection.

[0051] The remote device may have modulated and / or transmitted the data packet using a particular PHY (e.g., an LE 2M PHY), so the data packet will be, for example, an LE 2M data packet. As noted above, in certain embodiments, an LE 2M sync engine (e.g., 625b) (or a combined LE 1M / LE 2M sync engine (e.g., 625d)) may detect this data packet. In one set of embodiments, detecting a data packet may include any action that enables a device (or a component thereof, such as a sync engine) to identify an incoming data packet as available, receivable, and / or decodable using a particular physical layer block. According to some embodiments, a procedure for detecting a data packet using a data packet identifier is described in detail in the context of blocks 730-735 below.

[0052] One known purpose of a packet identifier (this Bluetooth access code and / or the sync word therein, or a BLE access address, to name a few examples) is to serve as a correlation code for two communicating Bluetooth devices. For example, a Bluetooth device (e.g., 600) typically needs to be able to distinguish between a variety of signals in the 2.4 GHz Industrial, Scientific, and Medical (ISM) band. Such signals may include: Bluetooth packets intended for the local device (e.g., 600); Bluetooth packets intended for another device; packets used by other wireless communication technologies (e.g., Wi-Fi) operating in the ISM band at frequencies that interfere with the current Bluetooth channel; and background noise, to name a few. In an aspect of some embodiments, the sync word and access address are designed to quickly correlate (i.e., pattern match) when the packet is decoded in order to distinguish valid packets (i.e., Bluetooth packets intended for the local device) from other signals.

[0053] In some cases, for example, when a combined sync engine (e.g., 625d) is used to detect both LE 1M packets and LE 2M packets, the combined sync engine may operate at the LE 2M rate; therefore, it may be desirable to extend the packet identifier of the LE 1M packet, for example, to handle the increased operating rate over a typical LE 1M correlator. By way of example only, in some cases, the LE 1M packet identifier may be doubled in size. In a particular embodiment, this extension may be achieved by repeating the operation bit by bit. For example, a 32-bit packet identifier 0x9AF20739 may be extended to a 64-bit identifier 0xC3CCFF0C003F0FC3. Thus, in some embodiments, when correlating LE 1M packet identifiers, the LE 1M / LE2M sync engine will run the correlation at the LE 2M rate with a 64-bit identifier length.

[0054] Thus, method 700 may include extending the packet identifier, as appropriate (block 730), and detecting the packet identifier block 735. In an aspect, the sync engine may include a correlator or other circuitry to correlate the packet identifier from the data packet, and thus, the detected packet identifier may include correlating the packet identifier. However, embodiments are not limited to detecting the packet identifier by correlation.

[0055] At block 720, method 700 may include detecting an incoming data packet. In some embodiments, detecting (e.g., correlating) a data packet identifier may be used to detect a data packet, but other embodiments may use any other suitable procedure to detect a data packet, and in particular a data packet having the same PHY as the detection synchronization engine. If a data packet is detected, method 700 may include delivering the data packet (block 745), for example, delivering the data packet to an appropriate receiver as described above. If a data packet is not detected, then not delivering the data packet (block 750). In some cases, not delivering the data packet may include a specific action (e.g., blocking or dropping the data packet), but this is not required. Figure 6B and 6C As an example, where the incoming data packet is an LE 1M data packet, the LE 1M sync engine 625a detects the LE 1M data packet and delivers the data packet to the LE 1M receiver 630a. On the other hand, the LE decoding sync engine 625c cannot detect the data packet, so the sync engine does not deliver the data packet to the LE decoding receiver 630c.

[0056] The physical layer block (e.g., 605) and / or the synchronization engine (e.g., 625) may perform any other necessary actions before delivering the incoming data packet. Such actions may include demodulating and / or decoding the data packet, removing certain header or trailer fields, etc. Therefore, the delivered data packet may not have the same form as the data packet received by the physical layer block (e.g., 605) and / or the synchronization engine (e.g., 625).

[0057] Steering Figure 7B , method 700 may include, at block 755, receiving an incoming data packet (in any form) at a receiver (e.g., 630). As noted above, in some embodiments, at a receiver implementing a PHY with an incoming data packet, the data packet may be delivered by or from a physical layer block (e.g., 605) and / or a synchronization engine (e.g., 625) (block 755). Figure 6B and 6C In the example of LE 1M receiver 630a, the data packet may be received. The method 700 may further include providing a notification of the received data packet (block 760).

[0058] In some embodiments, a receiver (e.g., 630a) (continuing the above example) may provide notification that the packet was originally transmitted using a particular PHY (e.g., an LE 1M PHY). In other embodiments, a different component (e.g., a physical layer block (e.g., 605a), a synchronization engine (e.g., 625a), etc.) may provide this notification. For example, in a particular set of embodiments, a receiver (e.g., 630a) may provide the notification (e.g., to MAC logic, e.g., 635) by delivering at least a portion of an incoming packet. For example, in some embodiments, if MAC logic 635 is configured to recognize that a receiver (e.g., 630a) can only process LE 1M packets, and the MAC logic receives at least a portion of a packet from the receiver, then the MAC logic may infer that the packet is an LE 1M packet. In other cases, other notifications are possible, such as out-of-band notifications from the receiver, the synchronization engine, or any other suitable component.

[0059] At block 770, method 700 includes determining that the incoming Bluetooth data packet corresponds to a particular Bluetooth PHY. In some cases, this determination is made based on a notification (e.g., the notification described in conjunction with block 765). However, in other embodiments, this determination does not require a notification. In various embodiments, an apparatus (e.g., 600) may include logic (e.g., circuitry) for making this determination in various ways.

[0060] At block 775, the method may include updating the PHY of the device (e.g., 600) to match the PHY of the incoming data packet, e.g., as explained above. Figure 6B and 6C In an example of , this PHY would be an LE 1M PHY. In an aspect of some embodiments, updating the PHY may include setting the PHY of the incoming data packet to the active PHY for receiving and / or transmitting the data packet using the device and / or components thereof.

[0061] By way of example only, at block 780, method 700 (and / or updating the PHY) may include enabling a receiver that received a data packet (i.e., Figure 6B and 6C In the example of , the receiver 630a of the LE 1M PHY is implemented, while all other receivers are disabled (e.g., Figure 6B and 6COf course, in some embodiments, the receiver that received the data packet may already be enabled, so enabling the receiver may simply include keeping the receiver enabled while disabling the other receivers. In one aspect, disabling the other receivers (e.g., 630b and 630c) may simply mean setting those receivers in a standby or low power mode. Furthermore, in some cases, as noted above, when incoming data packets arrive, those receivers may be re-enabled until the sync engine stops (e.g., either the data packet is transmitted to the corresponding receiver that remains enabled, or synchronization fails, in which case the corresponding receiver does not receive the data packet and is disabled again).

[0062] Method 700 (and / or updating the PHY) may also include utilizing an enabled receiver (ie, a receiver implementing the updated PHY, Figure 6B and 6C In an example of , receiver 630a) receives a subsequent incoming data packet (block 770). In some embodiments, updating the PHY may include using an updated PHY (e.g., Figure 6B and 6C In an example, LE 1M PHY) transmits one or more outgoing Bluetooth data packets.

[0063] Figure 8 is a block diagram illustrating an example of a device 800 according to various embodiments, which may function as described herein, including but not limited to functioning as a Bluetooth device, a Bluetooth user device, a Bluetooth subsystem of a Bluetooth user device, a computer system (or a component of any of these components), and / or performing some or all of the operations of the methods described herein. Figure 8 The components shown in the should not be considered necessary or required for every embodiment. For example, many embodiments may not include a processor and / or may be implemented entirely in hardware or firmware circuitry. Similarly, many embodiments may not include an input device, an output device, or a network interface.

[0064] Under this premise, if Figure 8 8, device 800 may include a bus 805. Bus 805 includes one or more components that enable wired and / or wireless communications between components of device 800. Bus 805 may, for example, connect components of device 800 via operational coupling, communicative coupling, electronic coupling, and / or electrical coupling. Figure 8 Such components may include a processor 810, a non-volatile storage device 815, a working memory (e.g., a system dynamic random access memory (DRAM)) 820, and / or a circuit system 825. In some cases, the system 800 may include a human-machine interface component 830 and / or a communication interface 835.

[0065] Although these components are shown as being integrated within device 800, some embodiments may feature certain components being external to device 800. As such, device 800 may include (instead of or in addition to the components themselves) facilities for communicating with such external devices, and thus, in some embodiments, such facilities may be considered part of device 800.

[0066] By way of example only, non-volatile storage 815 may include a hard disk drive (HDD), a solid-state drive (SSD), and / or any other form of permanent storage (i.e., a storage device that does not require power to maintain the state of stored data). While such storage devices are often incorporated within device 800 itself, such storage devices may be external to device 800 and may include external HDDs, SSDs, flash drives, and the like, as well as networked storage devices (e.g., shared storage devices on a file server, etc.), storage devices on a storage area network (SAN), cloud-based storage devices, and the like. Unless the context dictates otherwise, any such storage devices may be considered part of device 800 according to various embodiments.

[0067] Similarly, the human-machine interface 830 may include an input component 840 and / or an output component 845, which may be disposed within the device 800, outside the device 800, and / or a combination thereof. The input component 840 may enable the device 800 to receive input, such as user input and / or sensed input. For example, the input component 840 may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a global positioning system sensor, an accelerometer, a gyroscope, and / or an actuator. In some cases, such components may be external to the device 800 and / or may communicate with components internal to the device 800 (e.g., an input jack, a USB port, a Bluetooth radio, etc.). Similarly, the output component 845 may enable the device 800 to provide output, such as via a display, a printer, a speaker, etc., any of which may be internal to the device 800 and / or external to the device but in communication with internal components (e.g., a USB port, a Bluetooth radio, a video port, etc.). Again, unless the context dictates otherwise, any such components may be considered part of the apparatus 800 in accordance with various embodiments.

[0068] From these examples, it should be appreciated that various embodiments may support various arrangements of external and / or internal components, all of which may be considered part of device 800. In particular embodiments, some or all of these components may be virtualized; examples may include virtual machines, containers (e.g., Docker containers, etc.), cloud computing environments, platform as a service (PAAS) environments, and the like.

[0069] In one aspect, the non-volatile storage device 815 may be considered to be and / or may include a non-transitory computer-readable medium. In some embodiments, the non-volatile storage device 815 may be used to store software and / or data used by the device 800. Such software / data may include an operating system 850, data 855, and / or instructions 860. The operating system may include instructions that govern the basic operation of the device 800 and may include a variety of personal computer or server operating systems, embedded operating systems, etc., depending on the nature of the device 800. The data 855 may include any of a variety of data used or generated by the device 800 (and / or its operation), such as media content, databases, documents, etc. The instructions 860 may include software code, such as applications, object code, assembly, binary, etc., used to program the processor 810 to perform operations according to various embodiments. In one aspect, in some embodiments, the operating system 850 may be considered to be part of the instructions 860.

[0070] The processor 810 may include one or more of the following: a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor (DSP), programmable logic (e.g., a field programmable gate array (FPGA), an erasable programmable logic device (EPLD), etc.), an application specific integrated circuit (ASIC), a system on a chip (SoC), and / or any type of processing component. The processor 810 may be implemented in hardware, firmware, or a combination of hardware, firmware, and / or software. In some embodiments, the processor 810 includes one or more processors with the ability to be programmed to perform one or more operations or processes described elsewhere herein.

[0071] For example, in some embodiments, the device 800 may include logic 865. Such logic may be any kind of code, instructions, circuitry, etc. that may cause the device 800 to operate in accordance with the embodiments herein (e.g., perform some or all of the processes and / or operations described herein). By way of example only, the logic 865 may include instructions 860, which may be stored on the non-volatile storage device 815 as noted above, loaded into the working memory 820, and / or executed by the processor 810 to perform operations and methods in accordance with various embodiments. In one aspect, these instructions 860 may be considered to be programming the processor 810 to operate in accordance with such embodiments. In the same manner, the operating system 850 (to the extent that it is separate from the instructions 860) may be stored on the non-volatile storage device 815, loaded into the working memory 820, and / or executed by the processor 810.

[0072] Alternatively and / or in addition, logic may include circuitry 825 (e.g., hardware or firmware), which may operate independently of or in cooperation with any processor 810, which the device 800 may or may not have. (As noted above, in some cases, the circuitry 850 itself may be considered a processor 810). The circuitry 825 may be embodied by a chip, SoC, ASIC, programmable logic device (FPGA, EPLD, etc.), etc. Thus, some or all of the logic that implements or causes the performance of some or all of the operations described herein may be encoded in hardware or firmware circuitry (e.g., circuitry 850) and executed directly by such circuitry, rather than software instructions 860 loaded into working memory 820. (In some cases, this functionality may be embodied by hardware instructions). Thus, unless the context dictates otherwise, the embodiments described herein are not limited to any specific combination of hardware, firmware, and / or software.

[0073] The device 800 may also include a communication interface 835, which may enable the device 800 to communicate with other devices via a wired (e.g., electrical and / or optical) connection and / or a wireless (RF) connection. For example, the communication interface 860 may include one or more RF systems (such as a Bluetooth system, a Wi-Fi system, a 5G or cellular system, etc.). Some such systems may be implemented in a combined manner as separate chips, SoCs, etc. The communication interface 835 may further include a modem, a network interface card, and / or an antenna. In some cases, the communication interface 830 may include a plurality of I / O ports, each of which may be any facility that provides communication between the device 800 and other devices; in a particular embodiment, such ports may be network ports, such as Ethernet ports, fiber optic ports, etc. Other embodiments may include different types of I / O ports, such as serial ports, pin outputs, etc. Depending on the nature of the device 800, the communication interface 835 may include any standard or proprietary components to allow communication as described according to various embodiments.

[0074] One set of embodiments provides a device. An exemplary device may include one or more demodulators configured to demodulate incoming Bluetooth data packets transmitted using a first Bluetooth physical layer configuration (PHY). In some embodiments, the device may further include multiple synchronization engines operating in parallel. In some embodiments, each of the synchronization engines may communicate with at least one of the one or more demodulators and / or may be configured to receive incoming Bluetooth data packets.

[0075] The plurality of synchronization engines may include a first synchronization engine that implements a first Bluetooth PHY. The first synchronization engine may include logic (e.g., circuitry) to receive an incoming Bluetooth data packet from one of the demodulators, logic (e.g., circuitry) to detect a packet identifier in the incoming Bluetooth data packet, e.g., based at least in part on transmitting the data packet using the first Bluetooth PHY, logic (e.g., circuitry) to detect the incoming Bluetooth data packet, e.g., based on the detection of the packet identifier. The first synchronization engine may further include logic (e.g., circuitry) to deliver the incoming Bluetooth data packet, e.g., based on detecting the incoming Bluetooth data packet.

[0076] The plurality of sync engines may further include a second sync engine implementing a second Bluetooth PHY. The second sync engine may include logic (e.g., circuitry) to receive an incoming Bluetooth data packet from one of the one or more demodulators and / or logic (e.g., circuitry) to not deliver the incoming Bluetooth data packet based on not detecting the incoming Bluetooth data packet. The plurality of sync engines may further include a third sync engine implementing a third Bluetooth PHY and / or logic (e.g., circuitry) to not deliver the incoming Bluetooth data packet based on not detecting the incoming Bluetooth data packet.

[0077] In some embodiments, the plurality of sync engines may include a Bluetooth LE 1M sync engine, a Bluetooth LE 2M sync engine, and / or a Bluetooth LE decoding sync engine. In one aspect, the Bluetooth LE 1M sync engine and the Bluetooth LE 2M sync engine may be combined into a single combined sync engine, and the combined sync engine may include logic (e.g., circuitry) for operating at a Bluetooth LE 2M rate. Additionally and / or alternatively, the combined sync includes logic (e.g., circuitry) for extending a packet identifier if the incoming packet is a Bluetooth LE 1M packet.

[0078] In some embodiments, the device may include multiple receivers. Each of the receivers may be configured to receive Bluetooth data packets corresponding to different Bluetooth PHYs. The multiple receivers may include a first receiver that communicates with the first synchronization engine and is configured to receive Bluetooth data packets corresponding to the first Bluetooth PHY. In some embodiments, the first receiver may include logic (e.g., circuitry) to receive incoming Bluetooth data packets, and / or logic (e.g., circuitry) to provide (by a remote device) notification that the incoming Bluetooth data packet is transmitted using the first Bluetooth PHY. In an aspect of some embodiments, the logic (e.g., circuitry) to provide such a notification may include logic (e.g., circuitry) to deliver at least a portion of the incoming Bluetooth data packet.

[0079] The multiple receivers may include a second receiver and / or a third receiver, wherein the second receiver communicates with the second synchronization engine and is configured to receive Bluetooth data packets corresponding to the second Bluetooth PHY, and the third receiver communicates with the third synchronization engine and is configured to receive Bluetooth data packets corresponding to the third Bluetooth PHY.

[0080] In some embodiments, the device includes logic (e.g., circuitry) to receive a notification (by a remote device) that an incoming Bluetooth data packet is transmitted using a first Bluetooth PHY and / or logic (e.g., circuitry) to determine that the incoming Bluetooth data packet corresponds to the first Bluetooth PHY. By way of example only, the device may include logic (e.g., circuitry) to receive a notification that an incoming Bluetooth data packet is transmitted using the first PHY and logic (e.g., circuitry) to determine that the incoming Bluetooth data packet corresponds to the first Bluetooth PHY based at least in part on the notification. The device may further include logic (e.g., circuitry) to update the device to operate using the first Bluetooth PHY, logic (e.g., circuitry) to enable the first receiver and disable the second and third receivers, logic (e.g., circuitry) to receive one or more subsequent incoming Bluetooth data packets using the first receiver, and / or logic (e.g., circuitry) to transmit one or more outgoing Bluetooth data packets using the first Bluetooth PHY.

[0081] Devices according to other embodiments (which may be, in some embodiments, a system on a chip (SoC), a Bluetooth user device, etc.) may include logic (e.g., circuitry) to enable multiple physical layer blocks, and / or logic (e.g., circuitry) to operate all physical layer blocks in parallel. The multiple physical layer blocks may include a first physical layer block that implements a first Bluetooth physical layer configuration (PHY). In some cases, the multiple physical layer blocks include a physical layer block that implements a Bluetooth LE 1M PHY, a physical layer block that implements a Bluetooth LE 2M PHY, a physical layer block that implements a Bluetooth LE decoding PHY, and / or a physical layer block that implements a Bluetooth LE high data rate PHY. In some embodiments, the incoming data packet may be a Bluetooth LE 2M data packet that includes a notification PDU, and the device may further include logic (e.g., circuitry) to receive the incoming data packet on a Bluetooth primary notification channel. In one aspect of some embodiments, the incoming data packet includes a data packet identifier, and / or detecting the incoming data packet may include detecting the data packet identifier.

[0082] In some embodiments, a physical layer block implementing a Bluetooth LE 1M PHY is combined with a physical layer block implementing a Bluetooth LE 2M PHY into a single Bluetooth physical layer block, and the device may include logic (e.g., circuitry) for operating at least a portion of the single Bluetooth physical layer block at a Bluetooth LE 2M rate. In such cases, the device may include logic (e.g., circuitry) for extending a packet identifier if the packet is a Bluetooth LE 1M packet, such as logic (e.g., circuitry) for extending the packet identifier using bit-by-bit repetition.

[0083] The device may further include logic (e.g., circuitry) to enable multiple receivers; the multiple receivers may include a first receiver in communication with the first physical layer block. In some embodiments, the device may include logic (e.g., circuitry) to detect an incoming data packet using the first physical layer block, logic (e.g., circuitry) to determine that the incoming data packet corresponds to the first Bluetooth PHY, and / or logic (e.g., circuitry) to update the device to operate using the first Bluetooth PHY, for example, based at least in part on determining that the incoming data packet corresponds to the first Bluetooth PHY. In some embodiments, the device includes logic (e.g., circuitry) to enable the first receiver and disable all other receivers, logic (e.g., circuitry) to receive one or more subsequent incoming Bluetooth data packets using the first receiver, and logic (e.g., circuitry) to transmit one or more outgoing Bluetooth data packets using the first Bluetooth PHY.

[0084] In some embodiments, logic (e.g., circuitry) to determine that an incoming data packet corresponds to a first Bluetooth PHY includes logic (e.g., circuitry) to deliver the incoming data packet (e.g., from a first physical layer block and / or to a receiver) based at least in part on detecting the incoming data packet. The logic (e.g., circuitry) to determine that an incoming data packet corresponds to a first Bluetooth PHY may further include logic (e.g., circuitry) to receive the incoming data packet using a first receiver. In some embodiments, the device may further include logic (e.g., circuitry) to provide a notification to a media access control (MAC) logic that the incoming data packet corresponds to the first Bluetooth PHY, and / or the logic (e.g., circuitry) to determine that an incoming data packet corresponds to the first Bluetooth PHY includes logic (e.g., circuitry) to determine that the incoming data packet corresponds to the first Bluetooth PHY based at least in part on the notification. In an aspect of a particular embodiment, the logic (e.g., circuitry) to provide the notification to the MAC logic includes logic (e.g., circuitry) to deliver at least a portion of the data packet to the MAC logic.

[0085] A set of embodiments may provide a method. An exemplary method may include operations corresponding to some or all of the logic and / or circuit systems mentioned above. By way of example only, the method may include enabling multiple physical layer blocks, the physical layer blocks may include a first physical layer block that implements a first Bluetooth physical layer configuration (PHY). The method may further include enabling multiple receivers, the receivers may include a first receiver that communicates with the first physical layer block. In some embodiments, the method includes: detecting an incoming data packet using the first physical layer block, determining that the incoming data packet corresponds to the first Bluetooth PHY, and / or updating the device to operate using the first Bluetooth PHY, for example, based at least in part on determining that the incoming data packet corresponds to the first Bluetooth PHY.

[0086] in conclusion

[0087] In the following description, for the purpose of explanation, a large number of details are set forth to provide a thorough understanding of the described embodiments. However, those skilled in the art will appreciate that other embodiments may be practiced without some of these details. In other examples, structures and devices are shown in block diagram form without all details for the purpose of brevity. Several embodiments are described herein, and although various features belong to different embodiments, it should be understood that the features described with respect to one embodiment may also be incorporated into other embodiments. However, for the same reason, a single feature or several features in any described embodiment should not be considered as necessary for every embodiment of the present invention, because other embodiments of the present invention may omit such features.

[0088] Thus, the foregoing description provides an illustration and description of some features and aspects of various embodiments, but the description is not intended to be exhaustive or to limit the implementation to the precise form disclosed. Those skilled in the art will recognize that modifications may be made in light of the above disclosure or may be acquired from the practice of the implementation, all of which may fall within the scope of the various embodiments. For example, as noted above, the methods and processes described herein may be implemented using software components, firmware, and / or hardware components (including but not limited to processors, other hardware circuitry, custom integrated circuits (ICs), programmable logic, etc.), and / or any combination thereof.

[0089] Further, although the various methods and processes described herein may describe components with respect to specific structures and / or functions for ease of illustration, the methods provided by the various embodiments are not limited to any specific structure and / or functional architecture, but may instead be implemented in any suitable hardware configuration. Similarly, although some functionality is attributed to one or more system components, unless the context dictates otherwise, this functionality may be distributed among various other system components according to several embodiments.

[0090] Likewise, while the procedures of the methods and processes described herein are described in a particular order for ease of illustration, various procedures may be reordered, added, and / or omitted according to various embodiments unless the context dictates otherwise. Furthermore, procedures described with respect to one method or process may be incorporated into other described methods or processes; similarly, system components described according to a particular structural architecture and / or with respect to one system may be organized in an alternative structural architecture and / or incorporated into other described systems. Thus, while various embodiments are described as having or not having certain features for ease of illustration and illustrating aspects of those embodiments, various components and / or features described herein with respect to specific embodiments may be replaced, added, and / or subtracted from other described embodiments unless the context dictates otherwise.

[0091] As used herein, the term "component" is intended to be broadly understood as hardware, firmware, or a combination of hardware and software. It will be appreciated that the systems and / or methods described herein may be implemented in different forms of hardware, firmware, and / or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods does not limit the implementation scheme unless specifically cited in the following claims. Therefore, when the operation and behavior of the systems and / or methods are described herein without reference to specific software code, those skilled in the art will understand that the systems and / or methods may be implemented using software and hardware based on the description herein.

[0092] In the present disclosure, when an element is referred to herein as being "connected" or "coupled" to another element, it will be understood that an element may be directly connected to another element or have intermediate elements between these elements. Conversely, when an element is referred to as being "directly connected" or "directly coupled" to another element, it will be understood that there are no intermediate elements in the "direct" connection between these elements. However, the presence of a direct connection does not exclude other connections in which there may be intermediate elements. Similarly, although the methods and processes described herein may be described in a particular order for ease of illustration, it will be understood that unless the context otherwise dictates, intermediate processes may occur before and / or after any portion of the described process, and, as noted above, the described procedures may be reordered, added, and / or omitted according to various embodiments.

[0093] In this application, unless otherwise specifically stated, the use of the singular includes the plural, and unless otherwise indicated, the use of the term "and" means "and / or". In addition, as used herein, the term "or" when used in a series is intended to be inclusive and may also be used interchangeably with "and / or", unless otherwise explicitly stated (for example, when used in conjunction with "any one" or "only one of"). In addition, the use of the term "including" as well as other forms (for example, "includes" and "included") should be considered non-exclusive. In addition, unless otherwise specifically stated, terms such as "element" or "component" encompass both elements and components that include one unit and elements and components that include more than one unit. As used herein, the phrase "at least one of" following a series of items (where the terms "and" or "or" are used to separate any of the items) modifies the list as a whole, rather than each member (i.e., each item) of the list. The phrase "at least one of" does not require selection of at least one of each of the listed items; rather, the phrase allows for a meaning that includes at least one of one of the items and / or at least one of any combination of items. By way of example, the phrase "at least one of A, B, and C" or "at least one of A, B, or C" each refers to only A, only B, or only C; and / or any combination of A, B, and C. In instances where a selection is intended to be "at least one of each of A, B, and C" or alternatively "at least one of A, at least one of B, and at least one of C," it will be explicitly described as such.

[0094] Unless otherwise indicated, all numbers used herein to represent quantity, size, etc. should be understood to be modified by the term "about" in all examples. As used herein, the article "a and an" is intended to include one or more items and can be used interchangeably with "one or more". Similarly, as used herein, the article "said" is intended to include one or more items mentioned in conjunction with the article "said" and can be used interchangeably with "said one or more". As used herein, the term "group" is intended to include one or more items (e.g., related items, unrelated items, a combination of related items and unrelated items, etc.), and can be used interchangeably with "one or more". When only one item is intended, the phrase "only one" or similar language is used. In addition, as used herein, the term "has, have, having" and the like are intended to be open terms. In addition, unless otherwise explicitly stated, the phrase "based on" is intended to mean "based at least in part on". In the foregoing description, depending on the context, satisfying a threshold may refer to a value greater than a threshold, a value greater than or equal to a threshold, a value less than a threshold, a value less than or equal to a threshold, or a value equal to a threshold, etc.

[0095] Although specific combinations of features are cited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of the various embodiments. In fact, many of these features can be combined in several ways not specifically cited in the claims or disclosed in the specification. Therefore, although each dependent claim listed below may directly reference only one claim, the disclosure of the various embodiments includes each dependent claim in combination with every other claim in the claim set. Elements, actions, or instructions used herein should not be construed as critical or required unless explicitly described as such.

Claims

1. A device comprising: one or more demodulators configured to demodulate incoming Bluetooth data packets transmitted using a first Bluetooth physical layer configuration PHY; a plurality of synchronization engines operating in parallel, each of the synchronization engines communicating with at least one of the one or more demodulators and configured to receive the incoming Bluetooth data packet, the plurality of synchronization engines comprising: A first synchronization engine, which implements the first Bluetooth PHY, the first synchronization engine comprising: circuitry for receiving the incoming Bluetooth data packet from one of the demodulators; circuitry for detecting a packet identifier in the incoming Bluetooth data packet based at least in part on transmitting the data packet using the first Bluetooth PHY; circuitry for detecting the incoming Bluetooth data packet based on detecting the data packet identifier; and circuitry for delivering the incoming Bluetooth data packet based on detecting the incoming Bluetooth data packet; A second synchronization engine implementing a second Bluetooth PHY, the second synchronization engine comprising: circuitry for receiving the incoming Bluetooth data packet from one of the one or more demodulators; and circuitry for not delivering the incoming Bluetooth data packet based on not detecting the incoming Bluetooth data packet; and A third synchronization engine, which implements a third Bluetooth PHY, the third synchronization engine comprising: circuitry for receiving the incoming Bluetooth data packet from one of the one or more demodulators; and circuitry for not delivering the incoming Bluetooth data packet based on not detecting the incoming Bluetooth data packet; A plurality of receivers, each of which is configured to receive Bluetooth data packets corresponding to a different Bluetooth PHY, the plurality of receivers comprising: A first receiver, which communicates with the first synchronization engine and is configured to receive a Bluetooth data packet corresponding to the first Bluetooth PHY, the first receiver comprising: Circuitry for receiving the incoming Bluetooth data packet; and circuitry for providing notification of transmission of the incoming Bluetooth data packet using the first Bluetooth PHY; a second receiver in communication with the second synchronization engine and configured to receive Bluetooth data packets corresponding to the second Bluetooth PHY; a third receiver in communication with the third synchronization engine and configured to receive Bluetooth data packets corresponding to the third Bluetooth PHY; and Circuitry for enabling all of said physical layer blocks; Circuitry for enabling all of said receivers; circuitry for receiving the notification of transmission of the incoming Bluetooth data packet using the first Bluetooth PHY; circuitry for determining, based at least in part on the notification, that the incoming Bluetooth data packet corresponds to the first Bluetooth PHY; and A circuit system for updating the device to operate using the first Bluetooth PHY, the circuit system for updating the device to operate using the first Bluetooth PHY comprising: circuitry to enable the first receiver and disable the second receiver and the third receiver based at least in part on determining that the incoming Bluetooth data packet corresponds to the first Bluetooth PHY; circuitry for receiving one or more subsequent incoming Bluetooth data packets using the first receiver; and Circuitry for transmitting one or more outgoing Bluetooth packets using the first Bluetooth PHY.

2. The apparatus according to claim 1, wherein the plurality of synchronization engines comprises: Bluetooth LE 1M sync engine; Bluetooth LE 2M synchronization engine; and Bluetooth LE decoding synchronization engine.

3. A device comprising: circuitry for enabling a plurality of physical layer blocks, the plurality of physical layer blocks including a first physical layer block implementing a first Bluetooth physical layer configuration PHY; circuitry for enabling a plurality of receivers including a first receiver in communication with the first physical layer block, circuitry for detecting incoming data packets using the first physical layer block; circuitry for determining that the incoming data packet corresponds to the first Bluetooth PHY; Circuitry for updating the device to operate using the first Bluetooth PHY based at least in part on determining that the incoming data packet corresponds to the first Bluetooth PHY.

4. The apparatus of claim 3, wherein the circuitry to determine that the incoming data packet corresponds to the first Bluetooth PHY comprises circuitry to deliver the incoming data packet from the first physical layer block based at least in part on detecting the incoming data packet.

5. The apparatus of claim 4, wherein the circuitry to determine that the incoming data packet corresponds to the first Bluetooth PHY further comprises circuitry to receive the incoming data packet using the first receiver.

6. The device of claim 3 , further comprising circuitry to provide notification to a media access control (MAC) logic that the incoming data packet corresponds to the first Bluetooth PHY, wherein the circuitry to determine that the incoming data packet corresponds to the first Bluetooth PHY comprises circuitry to determine that the incoming data packet corresponds to the first Bluetooth PHY based at least in part on the notification.

7. The apparatus of claim 6, wherein the circuitry to provide notification to the MAC logic comprises circuitry to deliver at least a portion of the data packet to the MAC logic.

8. The apparatus of claim 3, wherein the plurality of physical layer blocks comprises: Physical layer block implementing Bluetooth LE 1M PHY; Physical layer block implementing Bluetooth LE 2M PHY; and Implements the physical layer block of the Bluetooth LE Decoding PHY.

9. The device according to claim 3, wherein: The incoming data packet includes a data packet identifier, and Detecting the incoming data packet includes detecting the data packet identifier.

10. The apparatus of claim 9, wherein the physical layer block implementing the Bluetooth LE 1M PHY is combined with the physical layer block implementing the Bluetooth LE 2M PHY into a single Bluetooth physical layer block.

11. The device of claim 10, further comprising circuitry for operating at least a portion of the single Bluetooth physical layer block at a Bluetooth LE 2M rate.

12. The device of claim 11, further comprising circuitry to extend the packet identifier if the packet is a Bluetooth LE 1M packet.

13. The device of claim 12, further comprising circuitry to extend the data packet identifier using bit-by-bit repetition.

14. The device of claim 3, further comprising circuitry to operate all of the physical layer blocks in parallel.

15. The device of claim 3, wherein the device is a System on a Chip (SoC).

16. The device of claim 3, wherein the device is a Bluetooth client device.

17. The apparatus of claim 3, wherein the incoming data packet is a Bluetooth LE 2M data packet including an advertising PDU, the apparatus further comprising circuitry to receive the incoming data packet on a Bluetooth primary advertising channel.

18. The device of claim 3, wherein at least one of the Bluetooth physical layer blocks implements a Bluetooth LE High Data Rate PHY.

19. The device of claim 3, wherein the circuitry for updating the device to operate using the first Bluetooth PHY comprises: circuitry to enable the first receiver and disable all other receivers; circuitry for receiving one or more subsequent incoming Bluetooth data packets using the first receiver; Circuitry for transmitting one or more outgoing Bluetooth packets using the first Bluetooth PHY.

20. A method comprising: enabling a plurality of physical layer blocks, the plurality of physical layer blocks including a first physical layer block implementing a first Bluetooth physical layer configuration PHY; enabling a plurality of receivers including a first receiver in communication with the first physical layer block, detecting an incoming data packet using the first physical layer block; determining that the incoming data packet corresponds to the first Bluetooth PHY; and The device is updated to operate using the first Bluetooth PHY based at least in part on determining that the incoming data packet corresponds to the first Bluetooth PHY.