Enhanced Bluetooth low energy broadcast
By adopting repeated fixed scheduling to transmit broadcast messages in Bluetooth LE system, the problems of low efficiency, high power consumption, frequent channel conflicts and lack of security mechanisms in the prior art are solved, and more efficient, reliable and secure communication is achieved.
Patent Information
- Application Number
- CN202410935444.8
- 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
The existing Bluetooth LE technology has problems such as low efficiency, high power consumption, frequent channel conflicts and lack of security mechanisms in the communication between the central device and multiple peripheral devices.
Repeated fixed scheduling is used to transmit broadcast messages. The central device transmits broadcast messages in the central communication window, and the peripheral device receives and responds in the allocated peripheral communication window. In this way, the reliability and efficiency of data transmission are improved and the security mechanism is provided.
It is realized to improve efficiency and reliability in communication between the central device and multiple peripheral devices, reduce power consumption and channel conflicts, and provide a security mechanism.
Smart Images

Figure CN119545320A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to wireless networks, and more particularly to Bluetooth communications between central devices and peripheral devices. Background Art
[0002] The low energy standard (Bluetooth LE or BLE) establishes a relationship between a central device and one or more peripheral devices (also referred to as "peripherals"), with which the central device can establish a connection. Before establishing a connection, Bluetooth LE adopts a scan / advertise model, in which the advertiser (usually a peripheral device) sends an advertisement packet at a fixed interval (the advertisement interval). There are generally three advertisement modes: non-connectable, non-scanning mode; connectable, scannable mode; and periodic scan / advertisement mode.
[0003] In the non-connectable, non-scanning mode, the announcer sends an announcement packet on the primary announcement channel. However, BLE does not provide a built-in automatic repeat query (ARQ) mechanism. The announcer must continuously broadcast the same data for a long time. For example, when a phone as a central device needs to collect data from peripheral devices (such as a temperature sensor or a heart rate monitor), the phone needs to constantly remain in BLE scanning mode. When there are many peripheral devices, the scanning duty cycle of the central device will be greatly increased in order to obtain the necessary data from all peripheral devices. However, there are only three primary announcement channels. The more peripheral devices there are, the higher the probability of channel conflicts. Therefore, the announcements for the same packet increase and the scanning duty cycle grows. This exacerbates radio frequency (RF) pollution, and in the worst case, no packet may be received at all. Therefore, current technology requires more power and air propagation time than necessary, thereby reducing efficiency and battery life.
[0004] In connectable / scannable advertising mode, each advertiser / scanner pair must be paired and go through the same protocol. For example, if the phone as a central device wants to actively notify a peripheral device that it has obtained data from the peripheral device, the phone must send a scan request or a connect request to the specific peripheral device, and the peripheral device must send back a scan response if the traditional advertising / scanning model is used, or a scan / connect response if the extended advertising / scanning model is used. Acknowledgements using connect / scan requests / responses consume significant unnecessary time and bandwidth, further reducing efficiency and battery life.
[0005] In periodic advertising / scanning mode, the advertiser can send advertisements on the secondary advertising channel. However, again, BLE does not provide an ARQ mechanism, so the advertiser must broadcast packets periodically. The link layer of the advertising device must repeat the last advertisement data sent by the host of the advertising device until the link layer receives new advertisement data: AUX_SYNC_IND protocol data units (PDUs) are continuously sent until the host instructs the link layer to terminate the periodic advertisement train. In addition to the problems discussed above, this technology also provides low quality of service, especially when the link quality is not good.
[0006] Furthermore, BLE does not provide security mechanisms in any of these modes.
[0007] Therefore, there is a need for an enhanced notification technique that can address some or all of these issues. Summary of the invention
[0008] In one aspect, the present disclosure provides a wireless system comprising: a central device comprising: a circuit system for transmitting broadcast messages for reception by multiple peripheral devices according to a repeated fixed schedule, the repeated fixed schedule comprising a central communication window for transmission by the central device and multiple peripheral communication windows for transmission by the multiple peripheral devices; and a circuit system for receiving response messages from one or more of the multiple peripheral devices according to the repeated fixed schedule during the multiple peripheral communication windows; and the multiple peripheral devices, each of the peripheral devices comprising: a circuit system for listening to the broadcast message during the central communication window; a circuit system for receiving the broadcast message; a circuit system for extracting sub-messages from the broadcast message; a circuit system for determining whether a message should be transmitted in response to the broadcast message; and a circuit system for transmitting the message during the peripheral communication window assigned to the peripheral device if the message should be transmitted in response to the broadcast message.
[0009] In another aspect, the present disclosure provides a device comprising: a circuit system for transmitting broadcast messages for reception by multiple peripheral devices according to a repeated fixed schedule, the repeated fixed schedule comprising a central communication window for transmission by the device and multiple peripheral communication windows for transmission by the multiple peripheral devices; and a circuit system for receiving response messages from one or more of the multiple peripheral devices during the multiple peripheral communication windows.
[0010] In another aspect, the present disclosure provides a device comprising: a circuit system for listening to broadcast messages from a central device according to a repeated fixed schedule, the repeated fixed schedule including a central communication window for the central device and multiple peripheral communication windows for multiple peripheral devices; a circuit system for receiving the broadcast message during the central communication window; a circuit system for extracting sub-messages from the broadcast message; a circuit system for determining whether a message should be transmitted in response to the broadcast message; and a circuit system for transmitting the message during a specific peripheral communication window in the peripheral communication windows if the message should be transmitted for reception by the central device, wherein the specific communication window in the communication windows is assigned to the device. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] 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.
[0012] Figure 2A is a block diagram illustrating a communication window of a Bluetooth LE group including a central device and a plurality of peripheral devices according to some embodiments.
[0013] Figure 2B is a block diagram illustrating two cycles of a repeated fixed schedule.
[0014] Figure 3 is a block diagram illustrating a communication window of a Bluetooth LE group including a central device and a plurality of peripheral devices according to some embodiments.
[0015] Figure 4 is a flow chart illustrating a method of communicating within a Bluetooth LE group including a central device and a plurality of peripheral devices according to some embodiments.
[0016] Figure 5 is a block diagram illustrating exemplary components of an apparatus according to some embodiments. DETAILED DESCRIPTION
[0017] Various embodiments disclose novel communication techniques for Bluetooth LE devices. In certain embodiments, a central device transmits a broadcast message that can be received by one or more peripheral devices, which then transmit responses accordingly. Certain embodiments can provide reliable data transfer between the central device and the peripheral devices because the peripheral device responses (which can be used as ACK or confirmation messages) can achieve reliable multicast functionality. In addition, if necessary, the central device can acknowledge the response message from the peripheral device in a subsequent broadcast message.
[0018] Some embodiments also provide more efficient data transfer between the central device and peripheral devices by compressing multiple announcement / scan request / scan response packets into a single transmission window and multiple consecutive receive windows of the central device and a single transmission / single receive window of each peripheral device. This can reduce the overall air time of the group of devices and reduce power consumption of the central device and peripheral devices. This is particularly advantageous when multiple peripheral devices need to receive the same data but do not need to send data back very frequently, such as when multiple headphones listen to the same audio stream from the central device. In addition, in some cases, the peripheral device can transmit an acknowledgment that indicates to the central device that the peripheral device should not be polled at a specific time, which can reduce the air time when polling is not necessary, thereby further reducing power consumption of both the central device and the peripheral devices.
[0019] 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 (also referred to as a master device) that performs the role of a central device, which performs the central role in accordance with the Bluetooth Core Specification (BCS). Non-limiting examples of such devices may include personal computers, wireless phones, tablet computers, smart watches, and the like. Similarly, the term "peripheral device" means a device that performs the role of a peripheral device in accordance with the BCS. Non-limiting examples of such devices include sensors (temperature sensors, heart rate sensors, etc.), IoT devices (thermostats, doorbells, cameras and / or the like), audio devices (headphones, speakers, etc.), and the like. In conventional BLE technology, the central device typically scans for announcements and the peripheral devices transmit announcements. It should be noted that a single device may be a central device in some cases and a peripheral device in other cases. For example, Apple Modern versions can operate as central or peripheral devices.
[0020] According to some embodiments, the central device 105 sends a single advertising packet to some or all of the peripheral devices 110 in an established group, referred to herein as an "Ackended Safe Broadcast Group" (ASBG or group). In one aspect of some embodiments, this advertising packet may be viewed as similar to an announcement packet from a peripheral device in a conventional BLE system. In another aspect, the group may be formed by a previous BLE connection link between the central device and the associated peripheral devices.
[0021] The central device 105 may specify group communication parameters such as transmit / receive timing (e.g., in terms of communication window time boundaries and / or payload size), packet size, peripheral device sequence (e.g., in terms of sequence of sub-messages in a broadcast message, sequence of communication windows for each peripheral device to transmit, etc.), and / or the like. The packet sent by the central device 105 may encapsulate many different packets directed to different peripheral devices 110. Once a peripheral device 110 receives this encapsulated announcement packet, the peripheral device may extract the information intended for it and close the earlier expected receive window. If the intended information / data is located closer to the end of the encapsulated packet, the peripheral device 110 may enter an idle state and reopen the receive window at an appropriate time to save power.
[0022] In some embodiments, the peripheral devices 110 respond to the central device 105. The central device 110 may poll individual peripheral devices 110 at different pre-negotiated time slots. All peripheral devices 110 may send data back using a pre-negotiated packet format. In some embodiments, if the peripheral device 110 does not have any data to send back to the central device 105, the peripheral device 110 may use the same packet type with zero length as an acknowledgment. In one aspect, each peripheral device 110 may remain in an idle state during the response phase until its communication window occurs to respond to the central device 105. The communication windows (time slots) for the central device 105 and the peripheral devices 110 to transmit may be established according to a recurring fixed schedule. The peripheral device 110 may remain in an idle state after receiving a broadcast packet until the scheduled time for the peripheral device 110 to respond.
[0023] As used herein, the term "fixed, repeating schedule" means any schedule governing communications between wireless devices (e.g., BLE devices) in which each participating device has a fixed window within each cycle of the schedule in which to transmit, and in which the cycle of the schedule repeats until one of the devices provides an indication that the schedule or its window should change. In some embodiments, the repeating fixed schedule may reserve specific lengths or amounts of time for each device to transmit; these specific lengths or amounts of time may be all equal, or they may be unequal.
[0024] Figure 2Ais a timing diagram of one complete cycle of a repetitive fixed schedule 200 defined by a fixed time length, according to one set of embodiments. A schedule defined by a fixed time length is a schedule in which each communication window is defined by a specific time increment (which may be the same for all windows, or may be different for different windows). In this schedule, all communication windows have the same length. Schedule 200 includes a plurality of communication windows 205, each having the same time length. In some embodiments, the length of each window 205 is a multiple of a standard Bluetooth half-slot boundary (312.5 μs), such as 312.5 μs, 625 μs, etc. In other embodiments, a different amount of time may be used as the length of each window 205. Although Figure 2A The schedule includes five communication windows 205a-e, one for each of the central device 105 and the four peripheral devices 110 to transmit, but various embodiments may include communication windows 205 for as many peripheral devices as possible using techniques as illustrated. In some aspects, the first window 205a may be described as a "central communication window" because it is reserved for the central device 105 to transmit. The remaining communication windows 205b-205e may be described as "peripheral communication windows" because each of those windows 205b-205e is reserved for one of the peripheral devices 110 to transmit.
[0025] More specifically, in some embodiments, during a first communication window 205a, the central device 105 transmits 210 a broadcast packet. All peripheral devices 110 in the group receive 215 the broadcast packet. In some embodiments, each peripheral device processes the broadcast packet as described below. During subsequent windows 205b to 205e, the central device 105 receives 220 packets from the peripheral devices 110, and the peripheral devices 110 transmit 225a in response to the broadcast packet. Specifically, during the second window 205b, the peripheral device P1 110a transmits 225d, while the remaining peripheral devices 110b to 110d remain in listening mode or have their radios turned off 230a to 230c. Likewise, during the third window 205c, the peripheral device P2 110b transmits 225b, while the other peripheral devices 110a, 110c, 110d are in listening mode or have their radios turned off 230d to 230f.
[0026] During the 4th window 205d, peripheral equipment P3 110c transmits 225c, and other peripheral equipment 110a, 110b, 110d are in listening mode or make radio switch off.Obviously, peripheral equipment P3 110c does not need whole window to transmit.But, due to the fixed length of window 205d, all other peripheral equipment 110a, 110b, 110d remain in listening / off mode 230g to 230i in the whole length of window 205d.After transmission 225c, peripheral equipment P3 110c also can enter listening / off mode 230j.Then, at the beginning of the 5th window, peripheral equipment P4 110d transmits 225d, and other peripheral equipment 110a to 110c are in listening / off mode 230k to 230m.After the 5th window 205e, the fixed scheduling 200 of repetition repeats with subsequent circulation.
[0027] As used herein, the term "cycle" refers to a single period or iteration of a fixed, repetitive schedule. For example, Figure 2B Graphical instructions display Figure 2A 2. The timing diagram of two complete cycles 250a, 250b of a repeated fixed schedule. Thus, the first cycle 250a includes communication windows 205a to 205e, and the second cycle 250b includes communication windows 255a to 255e that are identical to the windows 205a to 205e of the first cycle 250a. As described below, these cycles repeat until a device (usually a central device) modifies the repeated fixed schedule.
[0028] In other embodiments, instead of a fixed time length, the central device 105 may specify a fixed schedule defined by a fixed payload size for each packet sent by the device 105, 110. As an example, Figure 3 The diagram illustrates a repetitive fixed schedule 300 that employs a fixed payload size 305 followed by an inter-frame space. The fixed payload size may be a defined maximum (and / or exact) length of the message payload (which may or may not include all headers and / or trailers depending on how the payload is defined), and in a fixed payload schedule, each device is allocated a communication window sufficient to transmit the payload. The window may end when the central device has received the number of bits or bytes designated as the fixed payload. In some cases, the inter-frame space may be T_IFS, as defined in BCS (e.g., 150 μs in Bluetooth 4 and Bluetooth 5). In addition to the differences in timing mechanisms, Figure 3 The schedule 300 is Figure 2AThe schedule 200 of FIG. 1 operates similarly, except that the central device 105 and each peripheral device 110 transmit packets of a fixed length specified by the central device 105, rather than transmitting within a maximum duration specified by the central device 105. For example, this means that in this case, peripheral device P3 110c transmits a complete packet of a fixed length, rather than only transmitting within a fixed time-based window (e.g., Figure 2A 205d), even if the peripheral device does not need the entire packet to respond.
[0029] Advantageously, some embodiments provide security for broadcast packets and response packets. For example, when a group is established, a group-wide security key may be distributed by the central device 105. This key may be used to encrypt / decrypt broadcast packets and / or response packets. In some cases, the central device 105 may distribute member security keys specific to the individual peripheral device 110a to one or more individual peripheral devices (e.g., peripheral device 110a), and / or may distribute sub-group security keys to some but not all peripheral device members of the group. As described below, embodiments may thus provide multiple layers of security by first encrypting packets of individual peripheral devices using the member and / or sub-group keys of the peripheral device 110 to which the packets are directed, encapsulating multiple such packets into a single encapsulated packet, and / or then encrypting the entire encapsulated packet using the group security key. As used herein, the term "security key" means any value or group of characters that can be used to encrypt, authenticate, and / or otherwise protect a message. For example, in some embodiments, the security key may be a counter with an Advanced Encryption Standard Cipher Block Chaining Message Authentication Code Mode (AES CCM) key or a key stream generated from BCS.
[0030] In another aspect, some embodiments allow for configurable group sizes. For example, when one or more peripherals 110 leave the group (e.g., the peripheral transmits a removal request, is turned off, is disconnected, or is out of range of the central device 105), the central device 105 may rearrange the group configuration and / or the repeated fixed schedule to make air time more efficient, such as by removing communication windows for the peripherals 110 to transmit. In some cases, the central device 105 may not modify the schedule, but infer a NACK (no acknowledgement) message during the transmission window of the peripherals 110.
[0031] Exemplary Embodiments
[0032] Specific exemplary embodiments are described below. As will be appreciated by those skilled in the art, each of the described embodiments may be implemented alone or in any combination. Therefore, no single embodiment or combination of embodiments should be considered limiting.
[0033] One group of embodiments provides a device. In some embodiments, the device may include a semiconductor chip, a system on a chip (SoC), and / or the like, including logic (e.g., a circuit system) capable of performing the operations described herein. For example, some embodiments include a Bluetooth SoC, a Wi-Fi / BLE combination SoC, and / or the like. (Herein referred to as a "Bluetooth subsystem"). Some Bluetooth subsystems may include several BLE functions, such as a media access control layer (MAC), a physical media layer (PHY), and a radio frequency (RF) function and / or an entire profile, application, and / or a Bluetooth (and optionally, Wi-Fi) protocol stack. Other embodiments may include a Bluetooth user device, such as a personal computer, a wireless phone, a headset, a sensor, a smart watch, and / or the like. Such a Bluetooth user device may include the chip, SoC, etc. described above.
[0034] An exemplary device according to some embodiments may function as a central device. Such a device may include circuitry to transmit broadcast messages for reception by multiple peripheral devices, for example, according to a recurring fixed schedule. As used herein, the term "message" means any communication from one device to one or more other devices; examples of such messages may include, but are not limited to, Bluetooth packets and / or protocol data units (PDUs) or streams thereof. Thus, in many cases, a message may include a BLE packet. As used herein, the term "broadcast message" means any message transmitted by one device to be received by multiple other devices.
[0035] In some embodiments, a device (e.g., a central device) may encapsulate multiple sub-messages (e.g., one packet for each device receiving a broadcast message, or one packet for a subset of receiving devices, and other packets for other receiving devices) into a single encapsulated message. In such cases, the encapsulated message may be referred to herein as a message, and the multiple encapsulated messages may be referred to herein as "sub-messages." In general, a central device may send a broadcast message to a group of peripherals, and the broadcast message may include sub-messages for one or more individual peripherals and / or sub-groups of peripherals. In other cases, a peripheral may send a broadcast message that operates in a similar manner to other peripherals and / or a central device.
[0036] In some embodiments, BLE is used to transmit broadcast messages. In some cases, the recurring fixed schedule includes a central communication window for the device to transmit and multiple peripheral communication windows for multiple peripheral devices to transmit. By way of example only, such communication windows may be similar to those described above with respect to Figure 2A and 3The communication windows 205 and 305 described herein. In some embodiments, each of the communication windows in the repetitive fixed schedule is defined by a fixed time length, which may be a multiple of a Bluetooth half-slot boundary. Alternatively and / or in addition, each of the communication windows in the repetitive fixed schedule may be defined by a message payload size.
[0037] The device may further include circuitry to receive one or more response messages from one or more of the plurality of peripheral devices. As used herein, the term "response message" means any message sent by a peripheral device to another device, as described in further detail herein. In some embodiments, in response to a broadcast message from the central device, a response message may be transmitted from the peripheral device to the central device. In some cases, these response messages are received during multiple peripheral communication windows and / or according to a repeated fixed schedule.
[0038] According to a particular embodiment, the broadcast message includes a plurality of sub-messages, which may include a first sub-message for reception by a first peripheral device and a second sub-message for reception by a second peripheral device. The plurality of peripheral devices may be a predetermined group of peripheral devices, and / or the device may include circuitry to create a predetermined group of peripheral devices, possibly based on a previous connection link between the central device and each of the plurality of peripheral devices. A previous connection link may be any relationship between two devices that proves a trust relationship between the two devices; an example of a previous connection link is if the two devices are paired. In some cases, the device includes circuitry to establish one or more communication parameters for the group of peripheral devices. The communication parameters may include, among other things, any settings or values that facilitate or control communication among the group (e.g., between the central device and the peripheral device and / or among the peripheral device itself). The communication parameters may include: the timing of each of the communication windows in a repeated fixed schedule; the order of the communication windows in the repeated fixed schedule; the maximum size of messages transmitted by the peripheral device; a shared security key for the group of peripheral devices; one or more individual security keys specific to individual peripheral devices and / or the like, to name just a few examples.
[0039] In some embodiments, the device may include a circuit system for removing a peripheral device from a predetermined peripheral device group under certain conditions. For example, when the device receives a message from the peripheral device requesting removal from the group or the device fails to receive a message from the peripheral device within a specified number of cycles of a repeated fixed schedule, the device may remove the peripheral device from the group. The device may further include a circuit system for modifying the repeated fixed schedule to remove the peripheral communication window assigned to the peripheral device removed from the group from the repeated fixed schedule.
[0040] The device may include circuitry for encrypting a broadcast message using a first security key (e.g., a group security key) distributed to a group of peripheral devices. The device may also include circuitry for encrypting a first sub-message using a second security key (e.g., a member security key) specific to a first peripheral device, and / or circuitry for encrypting a second sub-message using a third security key (e.g., another member security key) specific to a second peripheral device.
[0041] An exemplary device according to another set of embodiments may be used as a peripheral device. Such a device may include circuitry for listening for broadcast messages from a central device according to a recurring fixed schedule. The recurring fixed schedule may include a central communication window for the central device and multiple peripheral communication windows for multiple peripheral devices. The device may further include circuitry for receiving broadcast messages during the central window, and / or circuitry for extracting sub-messages from the broadcast message. The device may further include circuitry for determining whether a message should be transmitted in response to the broadcast message. If the message should be transmitted for receipt by the central device, the device may include circuitry for transmitting the message during the peripheral communication window assigned to the device.
[0042] The device may also include circuitry to stop receiving within the remainder of the central communication window after the sub-message has been extracted, and / or circuitry to remain idle prior to a peripheral communication window assigned to the device. Alternatively and / or in addition, the device may include circuitry to remain idle during a first portion of the central communication window, circuitry to begin receiving the broadcast message during a second portion of the central communication window corresponding to the sub-message. In some cases, the device may include circuitry to decrypt the message using, for example, a group security key; and circuitry to decrypt the sub-message using, for example, a member security key specific to the device, a sub-group security key specific to a sub-group of group members, and the like.
[0043] Another set of embodiments may include a wireless system including a central device and one or more peripheral devices. These devices may be similar to the exemplary devices described above. For example, the central device may include circuitry to transmit broadcast messages for reception by multiple peripheral devices, such as according to a repeated fixed schedule, and / or to receive response messages from one or more of the multiple peripheral devices according to a repeated fixed schedule.
[0044] Each of the peripheral devices may include circuitry to listen for broadcast messages during a central communication window and / or circuitry to receive broadcast messages. The peripheral device may also include circuitry to determine whether the broadcast message includes content specific to the peripheral device and / or circuitry to determine whether the message should be transmitted for receipt by the central device. If the message should be transmitted for receipt by the central device, the peripheral device may include circuitry to transmit the message during a peripheral communication window assigned to the peripheral device.
[0045] Another set of embodiments provides methods, including but not limited to methods including operations performed by the circuit systems described herein and / or according to various embodiments. Figure 4 An exemplary method 400 is illustrated, which includes a sub-method 400a that can be performed by a first device and a sub-method 400b that can be performed by a second device. In some embodiments, the sub-method 400b can be performed by multiple second devices. For illustrative purposes, the first device is exemplified by a central device and the second device is exemplified by a peripheral device, but some embodiments are not limited thereto.
[0046] At block 405, the central device creates a group. In some embodiments, one aspect of creating a group may include the central device identifying peripheral devices that have been previously paired and / or connected to the central device, and / or identifying a subset (or the entire set) of those devices that are currently turned on and / or in range. By way of example only, the central device may scan for peripheral devices. In some embodiments, creating a group may also include the central device notifying peripheral devices in the group that the peripheral devices have been added to the group.
[0047] At block 410a, the central device establishes communication parameters for the group. Establishing parameters may include setting communication parameters internally in the central device, and / or communicating with one or more peripheral devices to specify those parameters for the peripheral devices. As described above, these parameters may include, among other things, any settings or values that facilitate or control communication among the group (e.g., between the central device and the peripheral devices and / or among the peripheral devices themselves).
[0048] In some embodiments, the central device may first create the group (optionally informing the peripheral device at that time) and later establish the parameters (and inform the peripheral device at that time). In other embodiments, the operations of creating the group and establishing parameters for the group may be integrated into a single operation and / or performed in parallel. In some embodiments, the central device may inform the peripheral device of the peripheral device's membership in the group and specify the established parameters in a single communication.
[0049] At block 410b, the peripheral device receives the established parameters. As described above, there are different ways in which these parameters can be communicated by the central device. At block 415, the peripheral device listens for the broadcast message. This may include entering a listening mode, entering an idle and / or off mode, and waking up periodically to listen, etc. For example, the peripheral device may enter an idle state until a communication window (e.g., the above-described window) when the central device is scheduled to transmit. Figure 2A or Figure 3 In some cases, if the central device has specified a particular portion of the window for the peripheral device to receive, such as based on an order of sub-messages specified by the central device, the peripheral device may enter listening mode only during that portion of the window.
[0050] The central device then prepares a broadcast message, which, as described above, may include multiple sub-messages. In some embodiments, the central device may encrypt each of the sub-messages using a security key (e.g., a member key and / or a sub-group key) specific to one or more of the multiple peripheral devices (block 420). The central device may then encapsulate the sub-messages into the broadcast message, and / or encrypt the broadcast message using a group security key common to the group of peripheral devices (block 425). These operations may be governed by parameters specified by the central device. For example, encryption of the sub-messages may use a peripheral-specific member key or sub-group key established by the device, and / or encryption of the encapsulated broadcast message may use a common group key established by the central device. Alternatively and / or in addition, the sub-messages may be encapsulated in an order specified by the parameters established by the central device.
[0051] At block 430a, the central device transmits the broadcast message. In some embodiments, the broadcast message is transmitted using parameters specified by the central device for the group. For example, the central device may broadcast during a communication window (e.g., communication window 210 or 315 described above), and at block 430b, the peripheral device receives the broadcast message and / or decrypts the broadcast message using the group security key. In one aspect, when the central device is scheduled to transmit, the peripheral device may transmit the broadcast message during a particular communication window (e.g., Figure 2A or Figure 3 The message is received during the first window 205a or 305a).
[0052] At block 435, the central device waits for a response message in response to the broadcast message. This operation may include entering a listening or idle mode until the end of the current communication window, at which time the central device begins receiving during a subsequent communication window (block 465b), as discussed below.
[0053] In some cases, the peripheral device may receive the entire broadcast message. In other cases, the peripheral device may begin receiving only during a specified portion of the communication window, as described above. In any case, at box 440, the peripheral device may determine whether the broadcast message includes a sub-message for the peripheral device (for example, whether one of the sub-messages has a header pointing to the peripheral device and / or is located in a specified position in the message). If so, the peripheral device may extract and / or decrypt the sub-message (box 445). For example, the peripheral device may decrypt the sub-message using a member key and / or sub-group key specific to the peripheral device, as described above. In some embodiments, the peripheral device may stop receiving after it has extracted the sub-message, even if the broadcast message and / or the communication window for the central device to transmit has not yet ended.
[0054] At block 455, the peripheral device may determine whether a message should be sent in response to the broadcast message. For example, the peripheral device may determine that it should send a scan response message in response to the broadcast and / or acknowledgement (ACK) message and / or any other applicable message. For example, in some cases, the peripheral device may determine that it should send a message (e.g., an ACK message) using the format specified by the parameters; such a message may have zero length, which is only an acknowledgement, or the message may include additional data that may be used as a response message.
[0055] At block 460, the peripheral device remains idle until a communication window for the peripheral device to transmit is reached. Figure 2A or Figure 3 In the example of P2, the peripheral device may wait until window 205b or 305b before starting to transmit the response.
[0056] At block 465a, if necessary, the peripheral device transmits a response message. In some cases, the peripheral device may encrypt the response message using a group security key, a subgroup key, and / or a member security key for the peripheral device prior to transmission. After transmission, the peripheral device may enter a listening or idle mode, and submethod 400b returns to block 415 (for the particular peripheral device).
[0057] At block 465b, the central device receives the response message during a communication window (e.g., 205b, 305b) for the peripheral device to transmit. If the central device fails to receive a message from the peripheral device after a specified number of cycles of the repeated fixed schedule (block 470), the central device may conclude that the peripheral device has become unavailable (e.g., turned off, out of range, etc.). If so, or if the received message requests that the peripheral device be removed from the group (block 475), the central device removes the peripheral device from the group (block 480). Otherwise, the central device proceeds to block 490 discussed below.
[0058] If the central device has removed the peripheral from the group, the central device may modify the recurring fixed schedule to remove the communication window for the peripheral (block 485), such as window 205b or 310b in the case of the peripheral in this example. If so, the central device may transmit new parameters to the remaining group, e.g., including a new fixed recurring schedule as described above, which may omit window 205b or 305b and proceed directly from window 205a or 305a to window 205c or 305c. In this way, the central device may improve communication efficiency among the group.
[0059] If the central device determines that the group has any other communication windows for other peripherals to transmit, then process 400a returns to block 435, where the central device waits for the next response message (block 435), for example, until the end of the current communication window. This would be the case in the example discussed herein, where the current communication window is window 205b or 305b for peripheral P2, where the central device would wait for the start of window 205c or 305c and begin receiving from peripheral P3.
[0060] If not (e.g., if the transmitting peripheral is already P4), the loop ends at the end of the current communication window (e.g., 205e, 305e), and the process returns to block 420, where the central device begins preparing and transmitting another broadcast message during its own communication window. This broadcast window may include any sub-messages requested by any of the peripherals, such as a scan response (if the peripheral has transmitted a scan request).
[0061] Figure 5 is a block diagram illustrating an example of a device 500 according to various embodiments, which may function as described herein, including but not limited to functioning as a device, a Bluetooth user device, a Bluetooth subsystem on a Bluetooth user device, a computer system (or a component of any of these), and / or performing some or all of the operations of the methods described herein. Figure 5 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.
[0062] Under the above premise, if Figure 5 5, device 500 may include a bus 505. Bus 505 includes one or more components that enable wired and / or wireless communications among the components of device 500. Bus 505 may, for example, connect the components of device 500 via operational coupling, communicative coupling, electronic coupling, and / or electrical coupling. Figure 5Such components may include a processor 510, a non-volatile storage device 515, a working memory (e.g., a system dynamic random access memory (DRAM)) 520, and / or a circuit system 525. In some cases, the system 500 may include a human-machine interface component 530 and / or a communication interface 535.
[0063] Although these components are shown as being integrated within device 500, certain components may be located external to device 500. As such, device 500 may include (instead of or in addition to the components themselves) facilities for communicating with such external devices, and thus in some embodiments, the facilities may be considered part of device 500.
[0064] By way of example only, non-volatile storage 515 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 the stored data). Although such storage devices are typically incorporated within device 500 itself, such storage devices may be external to device 500 and may include external HDDs, SSDs, flash drives, or 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 / or the like. Unless the context dictates otherwise, any such storage devices may be considered part of device 500 according to various embodiments.
[0065] Similarly, the human-machine interface 530 may include an input component 540 and / or an output component 545 that may be disposed within the device 500, outside the device 500, and / or a combination thereof. The input component 540 may enable the device 500 to receive input, such as user input and / or sensed input. For example, the input component 540 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 500 and / or may communicate with components internal to the device 500 (e.g., an input jack, a USB port, a Bluetooth radio, and / or the like). Similarly, the output component 545 may enable the device 500 to provide output, for example, via a display, a printer, a speaker, and / or the like, any of which may be internal to the device 500 and / or external to the device but in communication with internal components (e.g., a USB port, a Bluetooth radio, a video port, and / or the like). Again, unless the context dictates otherwise, any such components may be considered part of the apparatus 500 in accordance with various embodiments.
[0066] 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 500. 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 / or the like.
[0067] In one aspect, the non-volatile storage device 515 may be considered as a non-transitory computer-readable medium. In some embodiments, the non-volatile storage device 515 may be used to store software and / or data used by the device 500. This software / data may include an operating system 550, data 555, and / or instructions 560. The operating system may include instructions that govern the basic operation of the device 500 and may include a variety of personal computer or server operating systems, embedded operating systems, and / or the like depending on the nature of the device 500. The data 555 may include any of a variety of data used or generated by the device 500 (and / or its operation), such as media content, databases, documents, and / or the like. The instructions 560 may include software code (e.g., application, object code, assembly, binary, etc.) for programming the processor 510 to perform operations according to various embodiments. In one aspect, in some embodiments, the operating system 550 may be considered as part of the instructions 560.
[0068] The processor 510 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) or the like), an application specific integrated circuit (ASIC), a system on a chip (SoC), and / or another type of processing component. The processor 510 may be implemented in hardware, firmware, or a combination of hardware, firmware, and / or software. In some embodiments, the processor 510 includes one or more processors that can be programmed to perform one or more operations or processes described elsewhere herein.
[0069] For example, in some embodiments, the device 500 may include logic 565. This logic may be any kind of code, instructions, circuitry, or the like that may cause the device 500 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 565 may include instructions 560 that may be stored on the non-volatile storage device 515 as described above, loaded into the working memory 520, and / or executed by the processor 510 to perform operations and methods in accordance with various embodiments. In one aspect, these instructions 560 may be considered to be programming the processor 510 to operate in accordance with such embodiments. In the same manner, the operating system 550 (to the extent that it is discrete from the instructions 560) may be stored on the non-volatile storage device 515, loaded into the working memory 520, and / or executed by the processor 510.
[0070] Alternatively and / or in addition, logic may include circuitry 525 (e.g., hardware or firmware), which may operate independently of or in cooperation with any processor 510, which the device 500 may or may not have. (As described above, in some cases, the circuitry 525 itself may be considered a processor 510.) The circuitry 525 may be embodied by a chip, SoC, ASIC, programmable logic device (FPGA, EPLD, etc.), and / or the like. Thus, some or all of the logic that implements or causes the execution of some or all of the operations described herein may be encoded in hardware or firmware circuitry (e.g., circuitry 525) and executed directly by such circuitry, rather than being software instructions 560 loaded into the working memory 520. (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.
[0071] The device 500 may also include a communication interface 535, which may enable the device 500 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 560 may include one or more RF subsystems (e.g., those Bluetooth subsystems described above, such as Wi-Fi subsystems, 5G or cellular subsystems, etc.). In addition or alternatively, some such systems may be implemented in combination as discrete chips, SoCs, and / or the like. The communication interface 535 may further include a modem, a network interface card, and / or an antenna. In some cases, the communication interface 530 may include a plurality of I / O ports, each of which may be any facility that provides communication between the device 500 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-outs, and / or the like. Depending on the nature of device 500 , communication interface 535 may include any standard or proprietary components to allow communications as described in accordance with various embodiments.
[0072] in conclusion
[0073] In the foregoing description, for the purpose of explanation, numerous 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 are attributed to different embodiments, it should be understood that 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.
[0074] Thus, the foregoing description provides illustrations and descriptions of some features and aspects of various embodiments, but 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 derived from the practice of the implementation, all of which may fall within the scope of the various embodiments. For example, as described 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.
[0075] Furthermore, although the various methods and processes described herein may be described with respect to specific structural and / or functional components for ease of description, the methods provided by the various embodiments are not limited to any specific structural 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.
[0076] Likewise, although the procedures of the methods and processes described herein are described in a particular order for ease of description, unless the context dictates otherwise, various procedures may be reordered, added, and / or omitted according to various embodiments. In addition, procedures described with respect to a method or process may be incorporated into other described methods or processes; likewise, 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, although various embodiments are described as having or not having certain features for ease of description 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.
[0077] 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 software and hardware can be used to implement the systems and / or methods based on the description herein.
[0078] In the present disclosure, when an element is referred to herein as being "connected" or "coupled" to another element, it will be understood that one element may be directly connected to another element or have intervening elements between the elements. In contrast, when an element is referred to as being "directly connected" or "directly coupled" to another element, it will be understood that there are no intervening elements in the "direct" connection between the elements. However, the presence of a direct connection does not exclude other connections in which there may be intervening elements. Similarly, although the methods and processes described herein may be described in a particular order for ease of description, it will be understood that unless the context dictates otherwise, intervening processes may occur before and / or after any portion of the described process, and as described above, the described procedures may be reordered, added, and / or omitted according to various embodiments.
[0079] 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" is intended to be inclusive when used in a series and may also be used interchangeably with "and / or", unless otherwise explicitly stated (e.g., when used in conjunction with "any one" or "only one of..."). In addition, the use of the term "including" as well as other forms (e.g., "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..." preceding a series of items (where the term "and" or "or" is 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 any 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 the intended selection is "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.
[0080] Unless otherwise indicated, all numbers used herein to express quantity, size, etc. should be understood to be modified by the term "about" in all instances. 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, combinations of related items and unrelated items and / or the like), 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" or the like is intended to be an open term. 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, a value equal to a threshold, and / or the like.
[0081] 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 that are 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 understood to be critical or essential unless explicitly described as such.
Claims
1. A wireless system comprising: A central device comprising: circuitry for transmitting broadcast messages for reception by a plurality of peripheral devices according to a recurring fixed schedule, the recurring fixed schedule comprising a central communication window for transmission by the central device and a plurality of peripheral communication windows for transmission by the plurality of peripheral devices; and circuitry to receive response messages from one or more of the plurality of peripheral devices according to the repeating fixed schedule during the plurality of peripheral communication windows; and The plurality of peripheral devices, each of the peripheral devices comprising: circuitry for listening to said broadcast message during said central communications window; A circuit system for receiving the broadcast message; Circuitry for extracting sub-messages from the broadcast message; circuitry for determining whether a message should be transmitted in response to the broadcast message; and Circuitry for transmitting a message during a peripheral communication window assigned to the peripheral device if a message should be transmitted in response to the broadcast message.
2. A device comprising: circuitry for transmitting broadcast messages for reception by a plurality of peripheral devices according to a recurring fixed schedule, the recurring fixed schedule comprising a central communication window for transmission by the device and a plurality of peripheral communication windows for transmission by the plurality of peripheral devices; and Circuitry for receiving a response message from one or more of the plurality of peripheral devices during the plurality of peripheral communication windows. 3 . The apparatus of claim 2 , wherein the apparatus further comprises circuitry to transmit the broadcast message using Bluetooth LE. 4 . The device of claim 2 , wherein the central communication window has the same length as each of the plurality of peripheral communication windows. 5 . The device of claim 2 , wherein the broadcast message comprises a plurality of sub-messages, the plurality of sub-messages comprising a first sub-message for receipt by a first peripheral device and a second sub-message for receipt by a second peripheral device. The device of claim 2 , wherein the plurality of peripheral devices are a predetermined group of peripheral devices.
7. The device of claim 6, further comprising circuitry to remove a peripheral device from the predetermined group of peripheral devices in response to an event selected from the group consisting of: the device receives a message from the peripheral device requesting to be removed from the group; or The device fails to receive a message from the peripheral device within a specified number of cycles of the repeating fixed schedule.
8. The device of claim 7, further comprising circuitry to modify the repeating fixed schedule to remove from the repeating fixed schedule a peripheral communication window assigned to the peripheral device removed from the group.
9. The device according to claim 6, further comprising: Circuitry for encrypting the broadcast message using a first security key distributed to the group of peripheral devices.
10. The device according to claim 9, wherein: The broadcast message includes a plurality of sub-messages, the plurality of sub-messages including a first sub-message for reception by a first peripheral device and a second sub-message for reception by a second peripheral device; The device further comprises: circuitry for encrypting the first sub-message using a second security key specific to the first peripheral device; and Circuitry for encrypting the second sub-message using a third security key specific to the second peripheral device.
11. The device of claim 6, further comprising circuitry to create the predetermined group of peripheral devices.
12. The device of claim 11, wherein the group is created based on a previous connection link between the central device and each of the plurality of peripheral devices.
13. The device of claim 12, further comprising circuitry to establish one or more communication parameters for the group of peripheral devices, the one or more communication parameters selected from the group consisting of: the timing of each of the communication windows in the repeating fixed schedule; an order of the communication windows in the repeated fixed schedule; a maximum size of messages transmitted by the peripheral device; a shared security key for the peripheral device group; or One or more individual security keys specific to individual peripheral devices.
14. The device of claim 2, wherein each of the communication windows in the repeating fixed schedule is defined by a fixed length of time.
15. The apparatus of claim 14, wherein the fixed time length is a multiple of a Bluetooth half-slot boundary.
16. The device of claim 2, wherein each of the communication windows in the repeating fixed schedule is defined by a message payload size.
17. An apparatus comprising: Circuitry for listening to broadcast messages from a central device according to a recurring fixed schedule, the recurring fixed schedule comprising a central communication window for the central device and a plurality of peripheral communication windows for a plurality of peripheral devices; circuitry for receiving the broadcast message during the central communications window; Circuitry for extracting sub-messages from the broadcast message; circuitry for determining whether a message should be transmitted in response to the broadcast message; and Circuitry for transmitting a message during a particular one of the peripheral communication windows if the message should be transmitted for receipt by the central device, wherein the particular one of the communication windows is assigned to the device.
18. The apparatus according to claim 17, further comprising: circuitry for ceasing reception within a remainder of the central communications window after the first sub-message has been extracted; and Circuitry to remain idle prior to a peripheral communication window assigned to the device.
19. The apparatus of claim 17, further comprising: circuitry for remaining idle during a first portion of the central communications window; and Circuitry is provided for commencing reception of the broadcast message during a second portion of the central communications window, the second portion corresponding to the sub-message.
20. The apparatus according to claim 17, wherein the message comprises a plurality of sub-messages, the apparatus further comprising: circuitry for decrypting the message using a first security key common to a group of devices; and Circuitry is provided for decrypting the sub-message using a second security key specific to the device.