Bluetooth LE peripheral connection power optimization
By selectively responding to packets from Bluetooth LE peripherals and entering sleep mode after an empty packet or sending an acknowledgment when the connection timeout is approaching, the problem of high power consumption of Bluetooth LE peripherals is solved, thereby extending battery life and improving connection stability.
Patent Information
- Application Number
- CN202510594267.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-05-13
- Filing Date
- 2025-05-09
- Publication Date
- 2025-11-14
AI Technical Summary
Bluetooth LE peripherals transmit at least one packet during each connection interval, resulting in high power consumption and shortened battery life.
Peripheral devices only respond when they receive packets with a non-zero data byte count or more data bits set, and enter sleep mode after empty packets, or actively send acknowledgments when connection timeout is approaching, in order to reduce unnecessary responses.
It significantly reduces the power consumption of Bluetooth LE peripherals, extends battery life, and maintains connection stability and efficiency.
Smart Images

Figure CN120957210A_ABST
Abstract
Description
[0001] This application claims priority to U.S. Patent Application Serial No. 18 / 662242, filed May 13, 2024, the disclosure of which is incorporated herein by reference in its entirety. Technical Field
[0002] This disclosure describes a system and method for reducing the power consumption of connected Bluetooth LE peripheral devices. Background Technology
[0003] Bluetooth is one of many wireless network protocols currently in use. It is commonly used to connect smartphones to watches, headphones, speakers, and other accessories. Bluetooth Low Energy utilizes 40 physical channels in the 2.4 GHz ISM band, each spaced 2 MHz apart.
[0004] A concept in the Bluetooth protocol is connection. A connection is established between a central device and a peripheral device. Once established, communication between the two devices occurs in a well-defined manner. Specifically, the central device provides the peripheral device with a parameter (called connInterval), which is the connection interval. This connection interval is a multiple of 1.25 milliseconds, ranging from 7.5 milliseconds to 4 seconds. The beginning of each connection interval can be called a connection anchor point. At each connection anchor point, the central device transmits a packet to the peripheral device. This packet may contain data, or it may simply be a 0-byte data payload packet (also called an empty packet), which is transmitted to maintain synchronization between the central device and the peripheral device. The peripheral device then responds to this packet. This response may be an acknowledgment, or it may be a packet containing data. The packets transmitted during the connection interval are called connection events. In some embodiments, multiple packets may exist for each connection event.
[0005] Therefore, in most systems, peripheral devices transmit at least one packet during each connection interval. This can lead to greater power consumption than expected and can result in shorter battery life.
[0006] Therefore, it would be beneficial if a system and method existed that allowed connected peripheral devices to more intelligently determine when to respond to a central device. In this way, the battery life of the peripheral devices could be extended without affecting the operation of the Bluetooth connection. Summary of the Invention
[0007] A system and method for reducing power consumption of connected Bluetooth LE peripheral devices are disclosed. The peripheral device responds intelligently, rather than responding to every packet transmitted from a central device, sending a response only in those cases where a response is requested by the central device. In this way, the peripheral device is able to conserve battery life by not responding to the majority of empty packets transmitted by the central device. The peripheral device also includes a mechanism to ensure that the connection is not terminated by the central device due to a lack of responses from the peripheral device.
[0008] According to one embodiment, a method for reducing the power consumption of a Bluetooth peripheral device connected to a Bluetooth central device is disclosed. The method includes receiving a packet from the Bluetooth central device; checking at the Bluetooth peripheral device whether the packet has a non-zero data byte count; checking at the Bluetooth peripheral device whether the packet has a set More Data (MD) bit; and transmitting an acknowledgment from the Bluetooth peripheral device to the Bluetooth central device only in response to the packet if the packet has a non-zero byte count or the MD bit is set. In some embodiments, the method further includes checking at the Bluetooth peripheral device whether data to be transmitted exists in a transmission queue; and if data to be transmitted exists in the transmission queue, transmitting a peripheral data packet to the Bluetooth central device in response to the packet. In some embodiments, after transmitting the acknowledgment, the Bluetooth peripheral device enters a sleep mode. In some embodiments, if the packet has a zero byte count and the MD bit is not set, the Bluetooth peripheral device enters a sleep mode after receiving the packet.
[0009] According to another embodiment, a method for reducing the power consumption of a Bluetooth peripheral device connected to a Bluetooth central device is disclosed. The method includes monitoring at the Bluetooth peripheral device the amount of time or the number of connection intervals since the Bluetooth peripheral device last transmitted a packet successfully received by the Bluetooth central device; receiving a packet from the Bluetooth central device; checking at the Bluetooth peripheral device whether the packet has a non-zero data byte count; checking at the Bluetooth peripheral device whether the packet has a set More Data (MD) bit; and transmitting an acknowledgment from the Bluetooth peripheral device to the Bluetooth central device only in response to the packet if: the packet has a non-zero byte count; the packet has the set MD bit; or the connection with the Bluetooth central device is nearing a timeout. In some embodiments, the method further includes checking at the Bluetooth peripheral device whether there is data to be transmitted in a transmission queue; and if there is data to be transmitted in the transmission queue, transmitting a peripheral data packet to the Bluetooth central device in response to the packet. In some embodiments, the Bluetooth peripheral device uses a counter to count the number of consecutive connection intervals that have elapsed since the Bluetooth peripheral device last transmitted a packet successfully received by the Bluetooth central device. In some embodiments, the Bluetooth peripheral device determines a number (N) of connection intervals set within a connection timeout period. In some embodiments, the Bluetooth peripheral device transmits the acknowledgment if the number of consecutive connection intervals during which the Bluetooth peripheral device has not transmitted packets successfully received by the Bluetooth central device is greater than N-2. In some embodiments, the Bluetooth peripheral device transmits the acknowledgment if the number of consecutive connection intervals during which the Bluetooth peripheral device has not transmitted packets successfully received by the Bluetooth central device is greater than NX, where X is between 2 and N-1. In some embodiments, the Bluetooth peripheral device uses a timer to time the amount of time that has elapsed since the Bluetooth peripheral device last transmitted a packet successfully received by the Bluetooth central device. In some embodiments, the Bluetooth peripheral device transmits the acknowledgment if the value of the timer is greater than 90% of the connection timeout period.
[0010] According to another embodiment, a Bluetooth device is disclosed. The Bluetooth device includes a Bluetooth network interface; a processing unit; and a memory device containing instructions, which, when executed by the processing unit, enable the Bluetooth peripheral device to: receive packets from a Bluetooth central device to which the Bluetooth peripheral device is connected; and only respond to a packet transmission acknowledgment if: the packet has a non-zero byte count; the packet has a set MD bit; or the connection with the Bluetooth central device is nearing a timeout. In some embodiments, the Bluetooth peripheral device includes a counter for counting the number of consecutive connection intervals that have elapsed since the Bluetooth peripheral device last transmitted a packet successfully received by the Bluetooth central device. In some embodiments, the Bluetooth peripheral device determines a number (N) of connection intervals set within a connection timeout period. In some embodiments, the Bluetooth peripheral device transmits the acknowledgment if the number of consecutive connection intervals during which the Bluetooth peripheral device has not transmitted packets to the Bluetooth central device is greater than N-2. In some embodiments, the Bluetooth peripheral device transmits the acknowledgment if the number of consecutive connection intervals during which the Bluetooth peripheral device has not transmitted packets to the Bluetooth central device is greater than N×, where X is between 2 and N-1. In some embodiments, the Bluetooth peripheral device includes a timer for timing the amount of time elapsed since the Bluetooth peripheral device last transmitted a packet successfully received by the Bluetooth central device. In some embodiments, the Bluetooth peripheral device transmits the acknowledgment if the value of the timer is greater than 90% of the connection timeout period. In some embodiments, the memory device further includes instructions that, when executed by the processing unit, enable the Bluetooth peripheral device to: check whether data to be transmitted exists in the transmission queue; and if data to be transmitted exists in the transmission queue, transmit a peripheral data packet to the Bluetooth central device. Attached Figure Description
[0011] For a better understanding of this disclosure, reference is made to the accompanying drawings, wherein similar elements are labeled with similar figures, and wherein:
[0012] Figure 1A A block diagram of a Bluetooth device according to one embodiment is shown;
[0013] Figure 1B A Bluetooth network including a central unit and peripheral units is shown;
[0014] Figure 2A-2D Four different scenarios for communication between the central device and peripheral devices are shown;
[0015] Figure 3 It shows Figure 2AOptimization of the scenario shown;
[0016] Figure 4 It shows Figure 2B Optimization of the scenario shown;
[0017] Figure 5 It shows Figure 2C Optimization of the scenario shown;
[0018] Figure 6 It shows Figure 2D Optimization of the scenario shown; and
[0019] Figure 7 The operation of a peripheral device according to one embodiment is illustrated. Detailed Implementation
[0020] This disclosure describes a system and method by which a connected Bluetooth LE device, acting as a peripheral device, can conserve battery life by selectively responding to packets transmitted by a central device.
[0021] Figure 1A A block diagram of a representative Bluetooth device 10 that can be used to implement the disclosed method for saving battery life is shown.
[0022] Bluetooth device 10 has a processing unit 20 and an associated memory device 25. The processing unit 20 can be any suitable component, such as a microprocessor, embedded processor, application-specific circuitry, programmable circuitry, microcontroller, or other similar device. The memory device 25 contains instructions 26 that, when executed by the processing unit 20, enable the Bluetooth device 10 to perform the functions described herein. The memory device 25 can be non-volatile memory, such as flash ROM, electrically erasable ROM, or other suitable means. In other embodiments, the memory device 25 can be volatile memory, such as RAM or DRAM.
[0023] Although memory device 25 is disclosed, any non-transitory computer-readable medium can be used to store these instructions. For example, read-only memory (ROM), random access memory (RAM), magnetic storage devices such as hard disk drives, or optical storage devices such as CDs or DVDs can be used. Furthermore, these instructions can be downloaded to memory device 25, such as via a network connection (not shown), via a CD-ROM, or via another mechanism. These instructions can be written in any programming language, which is not limited to this disclosure. Therefore, in some embodiments, multiple computer-readable non-transitory media containing the instructions described herein may be present. Figure 1AAs shown, the first computer-readable non-transitory medium can communicate with the processing unit 20. The second computer-readable non-transitory medium can be a CD ROM or a different memory device, located remotely from the Bluetooth device 10. Instructions contained on the second computer-readable non-transitory medium can be downloaded to the memory device 25 to allow execution of the instructions via the Bluetooth device 10.
[0024] Bluetooth device 10 also includes antenna 35 and Bluetooth network 100 (see...) Figure 1B Bluetooth network interface 30 is connected.
[0025] Bluetooth device 10 may include a data storage device 40, in which data received and transmitted by Bluetooth network interface 30 is stored. This data storage device 40 is conventionally volatile memory. Processing unit 20 has the capability to read and write to the data storage device 40 in order to communicate with other devices in Bluetooth network 100. In some embodiments, the data storage device 40 includes a receive queue for packets received by Bluetooth network interface 30 and a transmit queue for packets transmitted by Bluetooth network interface 30.
[0026] The Bluetooth device 10 may also include a timer 50. The timer 50 may be a free-running timer that increments at a predetermined rate. In some embodiments, the timer 50 may be used to wake the Bluetooth device 10 from sleep mode.
[0027] Although not shown, Bluetooth device 10 also has a power supply device, which may be a battery.
[0028] Although the processing unit 20, memory device 25, Bluetooth network interface 30, timer 50 and data storage device 40 are in Figure 1A While these components are shown as separate entities, it is understood that some or all of these components can be integrated into a single electronic assembly. Conversely, Figure 1A Used to describe the functionality of Bluetooth device 10, rather than its physical configuration.
[0029] Figure 1B A Bluetooth network 100 is shown, which includes a first Bluetooth device referred to as a central device 110 and a second Bluetooth device referred to as a peripheral device 120. The peripheral device 120 may have similar characteristics to... Figure 1A The architecture shown is a structural design. The architecture of the central device 110 can be similar to... Figure 1A The architecture shown can be modified to include more powerful processing units, more memory, and other network interfaces.
[0030] Central device 110 can establish a connection using one of several mechanisms. For conventional advertising, central device 110 transmits a CONNECT_IND_PDU on the main advertising channel. Peripheral device 120 does not respond to conventional advertising. For extended advertising, central device 110 can transmit an AUX_CONNECT_REQ PDU to peripheral device 120 on the second advertising channel. Peripheral device 120 can respond with an AUX_CONNECT_RSP PDU on the second advertising channel. For periodic advertising with a response (PAwR), central device 110 can transmit an AUX_CONNECT_REQ PDU to peripheral device 120 on the periodic advertising channel. Peripheral device 120 can respond with an AUX_CONNECT_RSP PDU on the periodic advertising channel. Packets can then be transmitted between central device 110 and peripheral device 120. These devices are considered to be in a connected state. As part of the connection establishment, central device 110 can provide peripheral device 120 with a parameter called connInterval or connection interval. This parameter informs the peripheral device 120 when the central device 110 needs to transmit a packet. This connection interval is a multiple of 1.25 milliseconds, ranging from 7.5 milliseconds to 4 seconds. Another parameter provided refers to the connection management timeout. This parameter establishes the amount of time that can pass before the central device 110 terminates the connection without a response from the peripheral device 120. The beginning of each connection interval can be referred to as a connection anchor point. At each connection anchor point, the central device 110 transmits a packet to the peripheral device. The peripheral device 120 can then respond to the packet. In some embodiments, multiple packets may be transmitted during the connection interval. This allows the peripheral device 120 to enter a sleep mode during extended time periods between connection anchor points.
[0031] Figure 2A-2D Several different typical scenarios of packets being transmitted between central device 110 and peripheral device 120 according to existing technology are shown. Each scenario shows three connection intervals 201. However, it is understood that this is merely a snapshot in time, as the connection lasts for longer than three connection intervals. In each of the following figures, packets sent by peripheral device 120 are shown with crosshairs.
[0032] In each of these scenarios, the central device 110 begins by transmitting data packets to peripheral devices. These data packets are formatted as Physical Channel Data (PDUs). These PDUs include a header and an optional payload. The header includes information such as payload length, sequence number, and additional data (MD) bits. In this disclosure, a Physical Channel Data (PDU) with a 0-byte data payload will be referred to as an empty packet. Figure 2AIn this process, the central device 110 begins by transmitting an empty packet 200 to the peripheral device 120. Later, during the subsequent connection interval 201, the central device 110 transmits a data packet 220 to the peripheral device 120. After transmitting the data packet 220, the central device 110 may transmit another empty packet 200 during the next connection interval 201. Note that the peripheral device 120 transmits an acknowledgment 210 in response to each packet transmitted by the central device 110. The acknowledgment is a normal connection packet, and the ACK information is included in the header using one bit. A change in sequence number is interpreted as ACK, while an unchanged sequence number is interpreted as NACK.
[0033] exist Figure 2B In the first connection interval, the central device 110 has no data to transmit to the peripheral device 120, and therefore sends an empty packet 200 at the beginning of each connection interval 201. However, during the second connection interval, the peripheral device 120 has data shared with the central device 110. Therefore, the peripheral device 120 transmits peripheral data packets 230 to the central device 110 instead of transmitting an acknowledgment 210 (which is completed during the first and third connection intervals).
[0034] Figure 2C Similar to Figure 2A Except for the data transmitted from the central device 110 to the peripheral device 120, which cannot be contained in a single data packet, the central device 110 transmits data packets 240 with set additional data (MD) bits. By setting the MD bits, the peripheral device 120 is informed that one or more additional data packets 220 will also be transmitted. If there are a total of N data packets to be sent, the MD bits will be set in the first (N-1) packets, and the last packet will be a data packet 220 without set MD bits. As described above, the peripheral device 120 responds to each packet transmitted by the central device 110 with a transmission acknowledgment 210.
[0035] at last, Figure 2D A scenario is illustrated where there is an extended time period during which the central device 110 has no data to transmit to the peripheral device 120. In this scenario, the central device transmits empty packets 200 during each connection interval 201. As described above, the peripheral device 120 transmits an acknowledgment 210 in response to each packet transmitted by the central device 110.
[0036] Figure 3-6 It shows how it can be modified. Figure 2A-2D Each scenario shown is designed to reduce the power consumption of the peripheral device 120.
[0037] Figure 3 The top shows Figure 2AThe scenario is illustrated below. Optimizations can be implemented to reduce the power consumption of peripheral device 120 without causing unwanted retransmissions and connection termination. In this embodiment, peripheral device 120 does not respond to empty packets 200 sent by central device 110. Therefore, during the first and third connection intervals 201, peripheral device 120 does not transmit packets and returns to sleep mode after receiving empty packets 200. However, when central device 110 transmits data packets 220, peripheral device 120 responds with an acknowledgment 210 to notify central device 110 that data packets 220 have been received. Therefore, peripheral device 120 will respond to any data packets 220 transmitted by central device 110 (i.e., packets with non-zero data payloads). After transmitting acknowledgment 210, peripheral device 120 returns to sleep mode.
[0038] Figure 4 The top shows Figure 2B The scenario is shown below. Optimizations that can be implemented to reduce the power consumption of peripheral device 120 without causing unwanted retransmissions and connection terminations are illustrated. Figure 3 As shown, peripheral device 120 does not respond to empty packets 200 transmitted by central device 110. Therefore, during the first and third connection intervals 201, peripheral device 120 does not transmit packets and returns to sleep mode after receiving empty packets 200. However, when peripheral device 120 has data to transmit to central device 110, it responds to one of the empty packets 200 with peripheral data packets 230. Therefore, when peripheral device 120 has data in its transmission queue, peripheral device 120 will transmit peripheral data packets 230 in response to packets (empty packets 200 or data packets 220) from central device 110. Peripheral device 120 returns to sleep mode after transmitting peripheral data packets 230.
[0039] Figure 5 The top shows Figure 2CThe scenario is illustrated below. Optimizations can be implemented to reduce the power consumption of peripheral device 120 without causing unwanted retransmissions and connection termination. In this embodiment, peripheral device 120 does not respond to empty packets 200 transmitted by central device 110. Therefore, during the first and third connection intervals 201, peripheral device 120 does not transmit packets and returns to sleep mode after receiving empty packets 200. However, when central device 110 transmits data packets 240 with set More Data (MD) bits, peripheral device 120 responds with acknowledgment 210 to notify central device 110 that data packets 220 have been received. Furthermore, peripheral device 120 also transmits acknowledgment 210 for each data packet 220 following the data packet 240 with set MD bits. Thus, peripheral device 120 will respond to any packet 240 with set MD bits and any data packet 220 transmitted by central device 110. After transmitting acknowledgment 210, peripheral device 120 then returns to sleep mode.
[0040] therefore, Figure 3-5 It is shown that peripheral device 120 does not respond to empty packet 200 unless there is data in its transmission queue to be transmitted to central device 110. Furthermore, Figure 3-5 The peripheral device 120 is shown responding to a data packet 220 containing data, and also responding to any packet with a set MD bit.
[0041] In summary, the peripheral device 120 is configured to respond to the central device 110 only under the following conditions:
[0042] ●The central unit 110 transmits data packets with a non-zero byte data payload count;
[0043] ●The central unit 110 transmits packets with a set additional data (MD) bits; or
[0044] ● Peripheral device 120 has data to be transmitted to the central device.
[0045] In other words, if the received packet has a non-zero data byte count or the MD bit is set, the peripheral device 120 only transmits an acknowledgment. If there is a zero data byte count and the MD bit is not set, the peripheral device 120 does not transmit an acknowledgment. Furthermore, if the peripheral device has data to transmit, it responds with a peripheral data packet 230. In all cases, the peripheral device 120 then returns to sleep mode.
[0046] Figure 7The operation of peripheral device 120 is illustrated. First, as shown in box 700, peripheral device 120 receives and parses packets received from central device 110. As shown in decision box 710, peripheral device 120 checks for non-zero byte data payloads or set MD bits. Upon detecting either of these conditions, an acknowledgment 210 is transmitted, as shown in box 740. Furthermore, as shown in decision box 720, peripheral device 120 is aware of its transmission queue. If peripheral device 120 has packets to transmit to central device 110, peripheral device 120 transmits peripheral data packets 230, as shown in box 750. In some embodiments, if none of these conditions are met, the peripheral device returns to sleep mode (see box 760) until the next connection interval. Note that the above order can be varied. For example, peripheral device 120 may check its transmission queue before checking the size of the data payload and the MD bits of the received packets.
[0047] This concept can be further enhanced by ensuring that a lack of acknowledgment does not lead to connection termination. For example, if the central device 110 has no data to send to the peripheral device 120 within an extended period, the peripheral device 120 may not send any packets to the central device 110 for a period exceeding the negotiated connection timeout period. In some embodiments, the negotiated connection timeout period may be a few seconds. This can result in unnecessary overhead for re-establishing the connection.
[0048] Therefore, the peripheral device 120 can monitor this situation to ensure that a connection timeout does not occur. This scenario is... Figure 6 As shown in the image. Figure 6 The top shows Figure 2D The scenario is illustrated below. Optimizations that can be implemented to reduce the power consumption of peripheral device 120 without causing unwanted retransmissions and connection termination are shown. In this embodiment, as described above, peripheral device 120 typically does not respond to empty packets 200 transmitted by central device 110. However, peripheral device 120 can maintain a counter (or timer) that records the amount of time or connection intervals since the last transmission from peripheral device 120. If peripheral device 120 determines that a connection timeout is likely to occur soon, it will transmit an acknowledgment 210 for the next packet received from central device 110, regardless of the packet type. This functionality is also... Figure 7 The decision box 730 is shown.
[0049] Therefore, peripheral device 120 uses an indicator to notify itself that a period during which it has not transmitted any packets is approaching the connection timeout period. When this indicator is present, peripheral device 120 transmits an acknowledgment during the next connection interval, regardless of the type of packet transmitted by central device 110. This indicator can be implemented in several ways. In each embodiment, peripheral device 120 can set the indicator to a value that allows it to transmit multiple acknowledgments 210 before the connection timeout period expires. By using such a value, peripheral device 120 can be able to transmit acknowledgments over multiple connection intervals 201 before a connection timeout occurs. This allows for the possibility of lost acknowledgment packets while still maintaining the connection. For example, once the indicator is present, peripheral device 120 can transmit acknowledgments over two or more consecutive connection intervals. After transmitting one or more acknowledgments, peripheral device 120 can return to its default operating mode.
[0050] As described above, this indicator can be implemented in several ways. In one embodiment, the peripheral device 120 can know the connection timeout period and the connection interval. By dividing the latter into the former, the peripheral device 120 can determine how many connection intervals occurred before the connection timeout. Therefore, in some embodiments, the peripheral device 120 can use this number of connection intervals to modify its behavior. For example, the peripheral device 120 can calculate that there are N connection intervals before the connection timeout. The peripheral device 120 can use a counter that increments in each connection interval 201. Furthermore, the counter is reset whenever the peripheral device 120 determines that the central device 110 has successfully received a packet transmitted by the peripheral device 120. The determination of a successfully received packet can be detected by the peripheral device 120 by observing the modification of the sequence number in the next packet transmitted by the central device 110. Therefore, the value of the counter indicates the number of consecutive connection intervals during which the peripheral device 120 has not transmitted packets to the central device 110. When that value of the counter approaches N, the peripheral device 120 can transmit an acknowledgment 210 during the next connection interval, regardless of the type of packet transmitted by the central device 110. In some embodiments, the peripheral device 120 may transmit an acknowledgment 210 when the counter reaches a value greater than NX, where X is between 2 and N-1. In one embodiment, X may be 2. In other embodiments, the peripheral device 120 may transmit an acknowledgment 210 when the counter reaches a value greater than N-5 or N-10 (X = 5 or 10, respectively). Note that the peripheral device 120 may continue transmitting acknowledgments during each subsequent connection interval 201 until the peripheral device 120 determines that the central device 110 has received an acknowledgment. At this point, the counter is reset, and the peripheral device 120 stops transmitting acknowledgments. In some embodiments, the peripheral device 120 may dynamically adjust when to first transmit the acknowledgment 210. For example, this may be based on link quality. In low-noise environments, a smaller value of X may be used, while a larger value may be used when there is significant interference.
[0051] In another embodiment, peripheral device 120 may use a timer to determine when to transmit the acknowledgment 210. For example, peripheral device 120 may set the timer to expire when it reaches a value close to the connection timeout period. For example, the timer may be set to a value equal to the connection timeout period - M * connection interval 201, where M is a value between 2 and N-1, such as 10 or less. In another embodiment, the timer may be set to a value equal to a percentage (e.g., 90%) of the connection timeout period. The timer is reset whenever peripheral device 120 determines that central device 110 has successfully received a packet transmitted by peripheral device 120. If the timer reaches its maximum value (if counting up) or reaches zero (if counting down), peripheral device 120 transmits acknowledgment 210 during the next connection interval 201. It may continue to transmit acknowledgments during each subsequent connection interval 201 until it determines that central device 110 has received its acknowledgment.
[0052] Therefore, in some embodiments, if the connection is close to timeout, the peripheral device 120 also responds to the central device 110.
[0053] This system and method offer numerous advantages. This approach provides many benefits. In one test, it was found that, compared to conventional operation, during a 7.5 ms connection interval, when no acknowledgment 210 is transmitted, the power consumption of the peripheral device 120 can be reduced by up to 80%. Furthermore, this approach helps minimize latency. For example, another way to reduce power consumption is to increase the connection interval. This approach increases latency because data cannot be transmitted until the next connection interval. Bluetooth also supports a concept known as perimeter latency, which allows the peripheral device 120 to sleep across multiple connection intervals. However, similar to longer connection intervals, this approach increases latency. Finally, by reducing the number of acknowledgments transmitted, it causes less interference to neighboring devices.
[0054] The scope of this disclosure is not limited to the specific embodiments described herein. In fact, various other embodiments and modifications of this disclosure will be apparent to those skilled in the art from the foregoing description and drawings, in addition to those described herein. Therefore, such other embodiments and modifications are intended to fall within the scope of this disclosure. Furthermore, although this disclosure has been described herein in the context of a specific implementation in a specific environment for a specific purpose, those skilled in the art will recognize that its usefulness is not limited thereto, and that this disclosure can be advantageously implemented in any number of environments for any number of purposes. Therefore, the claims set forth below should be interpreted in accordance with the full scope and spirit of this disclosure as described herein.
Claims
1. A method for reducing the power consumption of Bluetooth peripheral devices connected to a Bluetooth central device, the method comprising: Receive packets from the Bluetooth central device; Check at the Bluetooth peripheral device whether the packet has a non-zero data byte count; Check at the Bluetooth peripheral device whether the packet has set More Data (MD) bits; and An acknowledgment is transmitted from the Bluetooth peripheral device to the Bluetooth central device only when the packet has a non-zero byte count or the MD bit is set.
2. The method according to claim 1, further comprising: The Bluetooth peripheral device checks if there is data to be transmitted in the transmission queue; and If data to be transmitted exists in the transmission queue, peripheral data packets are transmitted to the Bluetooth central device in response to the packets.
3. The method according to claim 1, wherein, After the confirmation is transmitted, the Bluetooth peripheral device enters sleep mode.
4. The method according to claim 1, wherein, If the packet has a zero-byte count and the MD bit is not set, the Bluetooth peripheral device enters sleep mode after receiving the packet.
5. A method for reducing the power consumption of a Bluetooth peripheral device connected to a Bluetooth central device, the method comprising: The Bluetooth peripheral device monitors the amount of time or connection interval since the last packet successfully received by the Bluetooth central device. Receive packets from the Bluetooth central device; Check at the Bluetooth peripheral device whether the packet has a non-zero data byte count; The Bluetooth peripheral device checks whether the packet has a set More Data (MD) bit; and An acknowledgment is sent from the Bluetooth peripheral device to the Bluetooth central device only in response to the packet: The group has a non-zero byte count; The packet has the configured MD bits; or The connection with the Bluetooth central device is nearing timeout.
6. The method according to claim 5, further comprising: The Bluetooth peripheral device checks if there is data to be transmitted in the transmission queue; and If data to be transmitted exists in the transmission queue, peripheral data packets are transmitted to the Bluetooth central device in response to the packets.
7. The method according to claim 5, wherein, The Bluetooth peripheral device uses a counter to count the number of consecutive connection intervals that have elapsed since the last packet successfully received by the Bluetooth central device.
8. The method according to claim 7, wherein, The Bluetooth peripheral device determines the number (N) of connection intervals set within the connection timeout period.
9. The method according to claim 8, wherein, If the number of consecutive connection intervals during which the Bluetooth peripheral device has not transmitted packets successfully received by the Bluetooth central device is greater than N-2, then the Bluetooth peripheral device transmits the acknowledgment.
10. The method according to claim 8, wherein, If the number of consecutive connection intervals during which the Bluetooth peripheral device has not transmitted packets successfully received by the Bluetooth central device is greater than N, then the Bluetooth peripheral device transmits the acknowledgment, where X is between 2 and N-1.
11. The method according to claim 5, wherein, The Bluetooth peripheral device uses a timer to keep track of the amount of time that has elapsed since the last packet successfully received by the Bluetooth central device.
12. The method according to claim 11, wherein, If the value of the timer is greater than 90% of the connection timeout period, the Bluetooth peripheral device transmits the acknowledgment.
13. A Bluetooth peripheral device, comprising: Bluetooth network interface; Processing unit; and A memory device containing instructions that, when executed by the processing unit, enable the Bluetooth peripheral device to: Receive packets from the Bluetooth peripheral device connected to the Bluetooth central device; and The packet transmission acknowledgment is only responded to in the following circumstances: The group has a non-zero byte count; The packet has a set MD bit; or The connection with the Bluetooth central device is nearing timeout.
14. The Bluetooth peripheral device of claim 13, further comprising a counter for counting the number of consecutive connection intervals that have elapsed since the Bluetooth peripheral device last transmitted a packet successfully received by the Bluetooth central device.
15. The Bluetooth peripheral device according to claim 14, wherein, The Bluetooth peripheral device determines the number (N) of connection intervals set within the connection timeout period.
16. The Bluetooth peripheral device according to claim 15, wherein, If the number of consecutive connection intervals that the Bluetooth peripheral device has not transmitted packets to the Bluetooth central device during its period is greater than N-2, then the Bluetooth peripheral device transmits the acknowledgment.
17. The Bluetooth peripheral device according to claim 16, wherein, If the number of consecutive connection intervals that the Bluetooth peripheral device has not transmitted packets to the Bluetooth central device during its period is greater than NX, then the Bluetooth peripheral device transmits the acknowledgment, where X is between 2 and N-1.
18. The Bluetooth peripheral device of claim 5, further comprising a timer for timing the amount of time elapsed since the Bluetooth peripheral device last transmitted a packet successfully received by the Bluetooth central device.
19. The Bluetooth peripheral device according to claim 18, wherein, If the value of the timer is greater than 90% of the connection timeout period, the Bluetooth peripheral device transmits the acknowledgment.
20. The Bluetooth peripheral device according to claim 13, wherein, The memory device further includes instructions that, when executed by the processing unit, enable the Bluetooth peripheral device to: Check if the data to be transmitted exists in the transmission queue; and If data to be transmitted exists in the transmission queue, peripheral data packets are transmitted to the Bluetooth central device.