Multi-packet acknowledgment

KR1020260137844APending Publication Date: 2026-09-17TEXAS INSTRUMENTS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
KR1020267022001
Authority / Receiving Office
KR · KR
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-10
Filing Date
2025-01-02
Publication Date
2026-09-17

Smart Images

  • Figure PCT00014_ABST
    Figure PCT00014_ABST
Patent Text Reader

Abstract

The method may include a wireless device (132, 102) being able to switch between acknowledgment modes. A first acknowledgment mode (200) may use one acknowledgment packet per data packet, and a second acknowledgment mode (300, 400, 500, 600, 700, 800, 900, 1000, 1200, 1300) may use multi-packet acknowledgment so that multiple packets can be acknowledged at once. The wireless device may select one or another acknowledgment mode based, for example, on the quality of the communication link.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present disclosure generally relates to electronic systems and methods, and in some embodiments, to multi-packet acknowledgment. Background Technology

[0002] Bluetooth (BT) and Bluetooth Low Energy (BLE) are examples of communication protocol standards that facilitate the transmission of wireless data over radio links. Various applications include a BLE master or central device ("central") that maintains wireless communication links with multiple BLE slaves or peripheral devices (each "peripheral").

[0003] During wireless communication, channel conditions may change and the locations of devices may change, and such various changes can cause data packets to be lost. Therefore, BT and BLE use acknowledgment procedures for the receiving device to acknowledge the reception of data packets and to warn the transmitting device when it is appropriate to retransmit lost packets.

[0004] In one embodiment, the method comprises: receiving a first plurality of packets from a second device at a first device; acknowledging the first plurality of packets, including transmitting the first plurality of acknowledgment packets to the second device, wherein the first device transmits the first plurality of acknowledgment packets, each comprising one acknowledgment packet per data packet; determining that a triggering event has occurred; and negotiating to perform a multi-packet acknowledgment between the first device and the second device in response to the triggering event.

[0005] In another embodiment, the method comprises: transmitting a first plurality of packets from a first device to a second device; receiving, by the first device, a first plurality of acknowledgment packets from the second device, wherein one acknowledgment packet is per data packet; determining that a triggering event has occurred; and negotiating to perform a multi-packet acknowledgment between the first device and the second device in response to the triggering event.

[0006] In another embodiment, the electronic device includes a transducer and a processor configured to communicate over a wireless network, and the processor operates in a per-packet acknowledgment mode in which the processor uses the transducer to transmit an acknowledgment packet per received packet; and is configured to switch from the per-packet acknowledgment mode to a multi-packet aggregated acknowledgment mode in which the processor uses the transducer to transmit an acknowledgment packet for acknowledging a plurality of received packets. Brief explanation of the drawing

[0007] The present invention has been described in general terms as described above, and the accompanying drawings will now be referenced. FIG. 1 is a diagram of two exemplary wireless communication devices capable of performing multi-packet acknowledgments according to various embodiments. FIG. 2 is a diagram of an exemplary data packet and an exemplary acknowledgment packet according to various embodiments. FIGS. 3 through 10 are drawings of exemplary time-domain operations including multi-packet acknowledgments according to various embodiments. FIG. 11 is a diagram of an exemplary data packet that can be transmitted during negotiation between wireless devices according to various embodiments. FIG. 12 is a diagram of exemplary acknowledgment and retransmission according to various embodiments. FIG. 13 is a diagram of exemplary acknowledgment and retransmission according to various embodiments. FIGS. 14 and 15 are drawings of exemplary methods for switching between acknowledgment modes according to various embodiments. Specific details for implementing the invention

[0008] Detailed description of exemplary embodiments

[0009] The present disclosure is described with reference to the accompanying drawings. The drawings are not drawn to scale and are provided merely to illustrate the present disclosure. Various aspects of the present disclosure are described below with reference to exemplary applications for illustrative purposes. It should be understood that a number of specific details, relationships, and methods are presented to provide an understanding of the present disclosure. Since some operations may occur in different orders and / or simultaneously with other operations or events, the present disclosure is not limited by the illustrated order of operations or events. Furthermore, not all illustrated operations or events are required to implement the methodology according to the present disclosure.

[0010] Embodiments of the present disclosure are described as multi-packet acknowledgment systems and methods for use in specific situations, e.g., BT or BLE communications. Some embodiments may be used in other communication protocols, such as some proprietary or standard-based wireless protocols. Some embodiments may be used in wired communication protocols, e.g., power line communication (PLC) protocols, wired networking protocols, or other serial or parallel wired communication protocols.

[0011] In an embodiment, the device includes a multi-packet acknowledgment mode, wherein multiple received packets are acknowledged as a single acknowledgment packet instead of each packet being acknowledged independently. In some embodiments, the number of packets to be acknowledged is negotiated before data exchange, during data exchange, and / or during a negotiation phase that may occur when the device joins the network. In some embodiments, the device may operate using a packet-by-packet acknowledgment mode by default and may switch to a multi-packet acknowledgment mode (e.g., dynamically) in response to a trigger, wherein the trigger may be based on a request from an application running on the host, the quality of the communication link, and / or some other metric not related to the quality of the communication link.

[0012] In some embodiments, the characteristics of the multi-packet acknowledgment mode (e.g., the number of packets to be acknowledged, the format of the acknowledgment, etc.) may be dynamically adjusted, for example, based on a request from an application running on the host, the quality of the communication link, and / or some other metric not related to the quality of the communication link.

[0013] In the Bluetooth Low Energy (BLE) standard, the packet-by-packet acknowledgment (Ack) mechanism operates as follows: When Side A transmits a packet (e.g., data or control) over the air, Side B may respond with its own encapsulated (e.g., data) packet or with a non-encapsulated packet, also known as an empty packet. Both the encapsulated and non-encapsulated packets serve as Ack packets. An encapsulated packet contains a non-empty payload. An empty packet does not contain data as part of the payload and is actually an Ack packet indicated in the packet header. In BLE, there exists a known period, typically 150 μs, known as Negotiable Inter-Frame Spacing (T_IFS), which is used to allow device time to switch associated RF and analog circuits, for example, between transmit and receive, and to allow the device antenna to cool down in order to keep the operating frequency as tight as possible. In BLE, data or control packets may include Layer 2 packets transmitted over the air.

[0014] When the inter-frame interval acts as a constraint and the maximum data size of a 251-byte packet acts as another constraint, the maximum throughput of BLE with a 2-megabit physical layer can be calculated as follows: Transmit time 1060 μs (251B) + 150 μs (T_IFS) + 40 μs (10B ACK) + 150 μs (T_IFS) = 1400 μs. As a result, the maximum throughput of BLE is approximately 1.4 Mbps (~180 Kbyte / sec) when using a 2-megabit physical layer (2M PHY). The inter-frame interval and maximum data size can also affect availability and latency in some applications, such as those that are bidirectional.

[0015] While such maximum throughput may be appropriate for some applications, other applications and future uses of BLE can benefit from higher throughput. For example, the Connected Car Consortium (CCC) proposes features that can benefit from higher throughput. For instance, the Channel Sounding (CS) feature proposes transmitting more than 2.5 kB of data from a reflector device to an initiator device in a single CS exchange, followed by subsequent CS exchanges until a satisfactory range is achieved. In some examples, the CS feature can benefit from higher throughput because higher throughput enables faster exchanges of CS data, and thus faster range identification.

[0016] Various implementations include a multi-packet acknowledgment mode to reduce overhead and increase efficiency in some situations. Exemplary embodiments include acknowledgment responses for multiple (e.g., data or control) packets, and the ability to transmit a configurable amount of (e.g., data or control) packets without receiving an immediate acknowledgment. For example, some embodiments may allow negotiation of the amount of packets to be acknowledged in a single (e.g., aggregated) acknowledgment. In some embodiments, retransmission and signaling are available in the event that a data packet is lost. Furthermore, some embodiments allow the transmitter to request an immediate multi-packet acknowledgment even when the negotiated amount of packets has not yet been transmitted.

[0017] Various implementations may include a number of acknowledgment modes that can be appropriately utilized. For example, one implementation includes operating in a first packet-by-packet acknowledgment mode in which the device transmits one acknowledgment packet per received data packet. The implementation may further include operating in a second multi-packet acknowledgment mode in which the device transmits acknowledgment packets to acknowledge multiple received packets.

[0018] In some embodiments, the device may switch from a first mode to a second mode during operation. For example, in one implementation, the device operates in a first mode (e.g., packet-by-packet acknowledgment mode). During operation, the device may determine the quality of the communication link and then negotiate to operate in a second mode (e.g., multi-packet acknowledgment mode) based on whether the communication link quality is higher than a threshold. For example, when the link quality is lower, packet-by-packet acknowledgment may be appropriate in some cases, whereas when the link quality is higher, multi-packet acknowledgment may be appropriate.

[0019] Benefits of some embodiments include increased throughput and reduced response time. In one example, devices can negotiate that 10 packets can be acknowledged as a single acknowledgment, thereby reducing the number of acknowledgments by 90%. Compared to an implementation using one acknowledgment per packet mode, assuming a maximum protocol data unit (PDU) size of 251 bytes and an acknowledgment packet size of 10 bytes, the multi-packet acknowledgment mode can increase throughput by about 15%.

[0020] Another advantage of some embodiments is that the inter-frame interval can be reduced or eliminated by acknowledging multiple packets together. For example, devices can negotiate that 10 packets can be acknowledged with a single acknowledgment, thereby allowing 10 packets to be transmitted with a reduced or eliminated inter-frame interval. The inter-frame interval can be considered as overhead, and thus reducing the inter-frame interval can increase maximum throughput. An increase in maximum throughput can advantageously lead to more and different practical uses of BLE, such as in automotive applications.

[0021] FIG. 1 is a drawing of an exemplary first Bluetooth (BT) or Bluetooth Low Energy (BLE) device (132) and a second BT / BLE device (102) according to various embodiments. For example, the exemplary devices (132 and 102) may include in their link layers (154, 124) functionality to operate in at least two acknowledgment modes—a first acknowledgment mode (e.g., per-packet acknowledgment) and a second acknowledgment mode (e.g., multi-packet acknowledgment). In one example, the device (102) may be physically implemented as circuits on the first semiconductor device, and the device (132) may be similarly physically implemented as circuits on the second semiconductor device. Each of the devices (102, 132) may be included in separate semiconductor packages where appropriate.

[0022] In this example, both devices (132 and 102) can transmit and receive. A BT / BLE device (132) (e.g., a key fob, a wearable device, a smartphone, a sensor, an in-vehicle component, or another device with BT / BLE functionality) communicates with a BT / BLE device (102) (e.g., another key fob, a wearable device, a smartphone, a sensor, an in-vehicle component, or another device with BT / BLE functionality) via wireless communication channels (180). Wireless communications (182) are received by the BT / BLE device (132) and transmitted from the BT / BLE device (102) via wireless communication channels (180) (and vice versa).

[0023] The BLE standard defines a hierarchical structure of layers and components to be implemented by each electronic device to support low-power wireless communications. The lowest layer defined by the BLE standard is a BLE controller (120, 150) comprising a physical (PHY) layer and a radio frequency (RF) layer (126, 156). The RF layer may include transducers, such as transceivers, to transmit and receive RF signals under the control of the controller (120, 150). Above the BLE controller is a BLE host (108, 138). Above the BLE host layer (108, 138) is an application layer (104, 134) having applications (106, 136) configured to transmit or receive data through the BLE host layer and the BLE controller layer. In BLE, communication channels include data channels and advertising channels. In some embodiments, the devices (102, 132) communicate using data channels. In BLE, each data channel has a unique band between 2.4 GHz and 2.4835 GHz, and each of these channels has unique frequency-dependent characteristics.

[0024] In the example of FIG. 1, the BT / BLE device (102) includes a BT / BLE stack (103) having an application layer (104), a host layer (108), and a controller layer (120). The application layer (104) includes one or more applications (106) executed by the BT / BLE device (102). The host layer (108) includes a generic access profile (GAP) (110), a generic attribute profile (GATT) (112), an attribute protocol (ATT) (114), a security manager (SM) (116), and a logic link control and adaptation protocol (L2CAP) (118). The controller layer (120) includes a link layer (LL) (124) and PHY / RF layers (126). In some exemplary embodiments, the BT / BLE device (102) uses a dedicated signaling (e.g., API signaling) referred to as a host controller interface (HCI) (122) to communicate between the host layer (108) and the controller layer (120).

[0025] A BT / BLE device (132) includes a BT / BLE stack (133) having an application layer (134), a host layer (138), and a controller layer (150). The application layer (134) includes one or more applications (136) executed by the RX BT / BLE device (130). The host layer (138) includes a GAP (140), a GATT (142), an ATT (144), an SM (146), and an L2CAP (148). The controller layer (120) includes an LL (154) and PHY / RF layers (156). In some exemplary embodiments, the RX BT / BLE device (130) uses a dedicated signaling (e.g., API signaling) referred to as HCI (152) to communicate between the host layer (138) and the controller layer (150). In some exemplary embodiments, the application layer (134) and / or the host layer (138) communicate with the host / application entity (160).

[0026] The various implementations described herein may be symmetrical with respect to peripheral devices and a central device. For example, in a BLE scenario such as that illustrated in FIG. 1, the central device and peripheral devices may play distinct roles in facilitating efficient and low-power data exchange. For example, it is assumed that the central device typically serves to supervise and manage the communication process. In some examples, the central device initiates connections, controls data transmission intervals, and coordinates communication with one or more peripheral devices. In some examples, peripheral devices respond to requests from the central device and transmit data as needed. Peripheral devices may be designed to be power-efficient, often operating in sleep mode and waking up only when necessary to conserve energy. This central-peripheral relationship allows for flexible and energy-efficient network configurations, making BLE technology suitable for certain applications such as wearable devices, smart sensors, and other Internet of Things (IoT) implementations where low power consumption is beneficial.

[0027] In the examples of the present specification, any one of the devices (102, 132) may be a central device or a peripheral device, and any one of the devices (102, 132) may measure a data channel, initiate a negotiation to switch an acknowledgment mode, respond to and / or participate in the negotiation to switch an acknowledgment mode, respond to the measurement of the data channel, positively or negatively acknowledge reception, perform retransmission, etc.

[0028] The acknowledgment functions described herein may be performed by software, firmware, or hardware logic. For example, in some exemplary embodiments, actions for performing an acknowledgment, switching acknowledgment modes, negotiating, and / or doing similar things may be performed by a processing device that executes computer-readable code (e.g., any one of controllers (120, 150)).

[0029] In some embodiments, the controller (120) may be implemented as a general or custom processor or controller capable of executing instructions stored in associated memory, for example. In some embodiments, the controller (120) may be implemented in hardware using state machines. Other implementations are also possible.

[0030] In some embodiments, the controller (150) may be implemented as a general or custom processor or controller capable of executing instructions stored in associated memory, for example. In some embodiments, the controller (150) may be implemented in hardware using state machines. Other implementations are also possible.

[0031] In some embodiments, the host (108) may be implemented as a general or custom processor or controller capable of executing instructions stored in associated memory, for example. In some embodiments, the host (108) may be implemented in hardware using state machines. Other implementations are also possible.

[0032] In some embodiments, the host (138) may be implemented as a general or custom processor or controller capable of executing instructions stored in associated memory, for example. In some embodiments, the host (108) may be implemented in hardware using state machines. Other implementations are also possible.

[0033] In some embodiments, the host (108 and 120) may be combined and implemented using, for example, a single, for example, general or custom processor or controller capable of executing instructions stored in associated memory.

[0034] In some embodiments, the host (138) and the controller (150) may be combined and implemented, for example, using a single, for example, general or custom processor or controller capable of executing instructions stored in associated memory.

[0035] FIG. 2 is a diagram of an exemplary time domain operation (200) in a packet-by-packet acknowledgment mode according to various embodiments.

[0036] The time domain operation (200) includes a data packet (202) that can be transmitted by a first device (e.g., one of the devices (102, 132)) and received by a second device (e.g., the other of the devices (102, 132)). In this example, the data packet (202) has 251 bytes and takes 1060 μs to transmit. There is a gap (206) between the data packet (202) and its corresponding acknowledgment packet (204).

[0037] In this example, an acknowledgment packet (204) is transmitted by the second device in response to receiving the data packet (202). In this example, the acknowledgment packet (204) is an empty packet, which includes a proper header, cyclic redundancy check (CRC) content, and a payload that does not contain data. In BLE, the empty packet is 10 octets or 10 bytes and may take 40 μs to transmit.

[0038] FIG. 2 illustrates an explicit acknowledgment scenario. In another scenario, the first device may transmit a data packet (202), and the second device may acknowledge the reception of the data packet (202) by transmitting another data packet to the first device. In such a scenario, successful reception of the data packet (202) is implied by the transmission of a second data packet by the second device.

[0039] Note that while the example in FIG. 2 provides specific numbers for the amount of bytes and transmission times, the range of implementations is not limited to the specific numbers in FIG. 2. Rather, the range of implementations may include any appropriate data packet or acknowledgment packet.

[0040] FIG. 3 is a diagram of an exemplary time domain operation (300) according to various embodiments. In the example of FIG. 3, the acknowledgment mode is a multi-packet acknowledgment mode.

[0041] Operation (300) assumes that the devices have negotiated to determine the amount of packets to be acknowledged as a single acknowledgment packet. In this example, the amount of packets is k, an integer greater than 1. The k packets are illustrated as packets (302-306).

[0042] k packets are transmitted from the first device to the second device over the downlink (DL). The second device transmits an acknowledgment packet (308) over the uplink (UL). The acknowledgment packet (308) positively or negatively acknowledges each of packets 1 through k. In one example, the acknowledgment packet may include a payload having a bitmap, wherein each bit in the bitmap (e.g., based on an associated index of the bitmap) corresponds to each of the packets (302-306). For example, a 0 in the bitmap may indicate packet loss, while a 1 in the bitmap may indicate a successfully received packet.

[0043] Continuing this example, each of the packets (302-306) may include a unique identifier such as an index, and each bit in the bitmap corresponds to the index. In other examples, the packets (302-306) may not be numbered, and the acknowledgment packet (308) may simply identify the quantity of successfully received packets. The same applies to other examples in FIGS. 4 through 15, that is, the multi-packet acknowledgment may include the uniquely identified packets and bitmap and / or an indication of the quantity of successfully received packets. In some embodiments, the multi-packet acknowledgment may not provide an additional indication of the number of lost / damaged packets, but may indicate that no packets are lost / damaged or that at least one packet is lost / damaged.

[0044] Additionally, the acknowledgment packet (308) may have a different structure from the acknowledgment packet (204). For example, while the acknowledgment packet (204) includes a header, CRC content, and an empty payload, the acknowledgment packet (308) may include a header and / or a bitmap, and / or include data within the payload sufficient to provide other acknowledgment indications, such as the number of packets being acknowledged. Consequently, the acknowledgment packet (204) may have a different (e.g., smaller) size than the acknowledgment packet (308).

[0045] FIG. 4 is a diagram of an exemplary time domain operation (400) according to various embodiments. In the example of FIG. 4, the acknowledgment mode is a multi-packet acknowledgment mode.

[0046] Operation (400) is similar to operation (300) of FIG. 3, but operation (400) provides an explicit acknowledgment for both DL packets (402-406) and UL packets (412-416) using packets (418, 408), respectively. In some embodiments, the devices negotiated to determine the amount of packets to be acknowledged within a single acknowledgment packet. Thus, the second device acknowledges packets (402-406) by transmitting an acknowledgment packet (418), and the first device acknowledges packets (412-416) by transmitting an acknowledgment packet (408) (not necessarily in the order shown in FIG. 4).

[0047] In some embodiments, the negotiated amount of data packets to be acknowledged may differ for DL ​​and for UL.

[0048] In some cases, the data packet (412) will be used implicitly to acknowledge the data packet (402), and likewise the data packet (404) will be used to acknowledge the data packet (412). However, some implementations may use a bit field within the data packet to indicate an implicit acknowledgment, and the multi-packet acknowledgment of FIG. 4 may allow the bit field to be used for other purposes.

[0049] FIG. 5 illustrates an exemplary time domain operation (500) according to various embodiments. In the example of FIG. 5, the acknowledgment mode is a multi-packet acknowledgment mode.

[0050] In the example of FIG. 5, the devices negotiated to determine the amount N of packets to be acknowledged in a single data packet. Also, the amount N of said packets is greater than k. The first device transmits packets (502-506) (a total of k packets). However, rather than waiting until all N packets are transmitted in a transaction, the first device transmits an early acknowledgment request packet (508). The acknowledgment request packet (508) causes the second device to return an acknowledgment packet (510) to acknowledge the k packets (502-506) positively or negatively.

[0051] In some embodiments, the acknowledgment request packet (508) may advantageously allow the device to request an immediate acknowledgment regardless of the negotiated amount of packets for a multi-packet acknowledgment.

[0052] FIG. 6 illustrates an exemplary time domain operation (600) according to various embodiments. In the example of FIG. 6, the acknowledgment mode is a multi-packet acknowledgment mode.

[0053] Operation (600) is similar to operation (500) of FIG. 5, but operation (600) includes acknowledgment requests for both DL packets (601-603) and UL packets (611-613). Specifically, the first device transmits an acknowledgment request packet (604) after transmitting k packets (601-603), and the second device transmits an acknowledgment packet (615) in response. The acknowledgment packet (615) acknowledges k packets (601-603), where k is again less than N. Similarly, an acknowledgment packet (605) is transmitted in response to the acknowledgment request (614), and the acknowledgment packet (605) acknowledges k data packets (611-613). In some embodiments, as illustrated in FIG. 6, acknowledgment request packets from central and peripheral devices may occur in time adjacent to each other. In some embodiments, acknowledgment request packets may occur at any time, may be time adjacent to or not adjacent to other acknowledgment request packets, and may be transmitted by only one of the devices (e.g., central or peripheral) or by both.

[0054] In some embodiments, the negotiated amount of data packets to be acknowledged may differ for DL ​​and for UL.

[0055] As in the example of FIG. 4, the operation (600) can advantageously omit the implicit acknowledgment and reuse the implicit acknowledgment bit field within the data packets for different purposes.

[0056] FIG. 7 illustrates an exemplary time domain operation (700) according to various embodiments. In the example of FIG. 7, the acknowledgment mode is a multi-packet acknowledgment mode.

[0057] Operation (700) is similar to operation (300) of FIG. 3, but operation (700) omits the inter-frame interval (T_IFS). In the exemplary operation (700), the devices may negotiate for a multi-packet acknowledgment mode and may also negotiate for the omission of the inter-frame interval. In these examples, the omission of the inter-frame interval may also be referred to as aggregated packets. Continuing with this example, the first device and the second device negotiated to determine the amount of packets to be acknowledged within a single acknowledgment packet to be k. The first device transmits k data packets (702-706). In response, the second device transmits an acknowledgment packet (708) acknowledging the k data packets (702-706).

[0058] The advantages of embodiments utilizing aggregated packets may include increased throughput. For example, inter-frame spacing can be considered as overhead where data is not transmitted, and it is sometimes used as a method to allow radio frequency (RF) front-end hardware, such as antennas, to maintain operating temperature. Maintaining operating temperature can help ensure precise operation of RF front-end hardware, such as by reducing or eliminating frequency drift. However, advancements in RF front-end hardware can reduce or eliminate the need for inter-frame spacing in at least some devices. Therefore, utilizing aggregated packets, including the omission of inter-frame spacing, can advantageously enable some devices to utilize higher quality hardware with greater throughput.

[0059] FIG. 8 is a diagram of an exemplary time domain operation (800) according to various embodiments. In the example of FIG. 8, the acknowledgment mode is a multi-packet acknowledgment mode. More specifically, the example of FIG. 8 includes aggregated packets such as data packets (802-806) that do not include inter-frame intervals.

[0060] In this example, the first device and the second device negotiated to determine the amount of packets to be acknowledged within a single acknowledgment packet to be N, where N is greater than k. However, after transmitting k data packets, the first device transmits an acknowledgment request packet (808). Even though a total of N packets in this transaction have not yet been transmitted by the first device, the acknowledgment request packet (808) instructs the second device to transmit an acknowledgment packet (810) for the data packets (802-806).

[0061] FIG. 9 is a diagram of an exemplary time-domain operation (900) according to various embodiments. In the example of FIG. 9, the acknowledgment mode is a multi-packet acknowledgment mode. Furthermore, although the operation (900) is illustrated using aggregated packets, some embodiments may include performing the same type of acknowledgment while including an inter-frame interval. As previously discussed, the inter-frame interval may or may not be negotiated separately from the negotiation for the acknowledgment mode.

[0062] As illustrated in FIG. 9, the first device transmits data packets (901-903), which are a total of k packets in this example. Also, in this example, the first device and the second device negotiated to determine the amount of data packets to be acknowledged as k. Subsequently, the second device may transmit an acknowledgment packet (911) to acknowledge the k packets (901-903).

[0063] In some embodiments, the negotiated amount of data packets to be acknowledged may differ for DL ​​and for UL.

[0064] Additionally, in this example, the second device (i.e., the device transmitting on the UL) is configured to also transmit data packets. Thus, the second device transmits data packets (912-914) (a total of k packets). In response, the first device transmits an acknowledgment packet (904) that acknowledges the k packets (912-914).

[0065] FIG. 10 is a diagram of an exemplary time domain operation (1000) according to various embodiments. In the example of FIG. 10, the acknowledgment mode is a multi-packet acknowledgment mode. Furthermore, although the operation (1000) is illustrated using aggregated packets, other embodiments may include performing the same type of acknowledgment while including inter-frame intervals.

[0066] In the example of FIG. 10, the first and second devices negotiate to determine the amount of data packets to be acknowledged within a single acknowledgment packet as N, where N is greater than k. The first device transmits k data packets (1001-1003) and then transmits an acknowledgment request packet (1004). In response, the second device transmits an acknowledgment packet (1011) acknowledging k data packets (1001-1003).

[0067] The second device is configured to also transmit data packets, as exemplified by data packets (1012-1014) and the subsequent acknowledgment request packet (1015), which are a total of k UL data packets. In response to the acknowledgment request packet (1015), the first device transmits an acknowledgment packet (1005) that acknowledges the k packets (1012-1014). The operation (1000) may continue in such a way that the first device transmits data packets (1006-1008). When the first device transmits N data packets, the second device may acknowledge all N data packets using a single acknowledgment packet. Meanwhile, when the first device transmits k packets and the subsequent acknowledgment request packet, the second device may acknowledge the k data packets using a single acknowledgment packet.

[0068] In some implementations of operations (900 and 1000), the second device may follow a protocol requiring the second device to request time domain and frequency domain resources to transmit data packets (912-914 and 1012-1014). In some such cases, the second device may include a request to transmit data packets in each acknowledgment packet (911 and 1011). Specifically, various implementations may use one or more bits within the acknowledgment packets (911 and 1011) to signal a request to transmit data packets. The same applies to operations (400 and 600). That is, whether the inter-frame interval is omitted or not, a request to transmit may be included in the acknowledgment packet.

[0069] In some embodiments, the negotiated amount of data packets to be acknowledged may differ for DL ​​and for UL.

[0070] Some embodiments may not negotiate a predetermined amount of data packets to be acknowledged in one of the acknowledgment modes of operation, and instead may use an acknowledgment request packet as a trigger to provide an acknowledgment, for example, the device provides an acknowledgment that acknowledges all packets received after the last acknowledgment provided. Some such embodiments may advantageously allow for increased throughput, for example, in applications where packet loss may be maintained.

[0071] FIG. 11 is a diagram of an exemplary packet payload (1100) that may be used during negotiation according to various embodiments. For example, the packet payload (1100) may be accompanied by a packet header (not shown) and may be transmitted from a first device to a second device to negotiate the use of multi-packet acknowledgment techniques.

[0072] The packet payload (1100) includes a start packet number portion (1102) and an acknowledgment bitmap portion (1104). The start packet number portion (1102) may indicate the starting index (or other identifier) ​​of a set of data packets to be transmitted. As previously discussed, some implementations may include indices in the packets, and these indices are sequence numbers for the packets, each packet having its own sequence number (e.g., embedded in each header or payload). The start packet number portion (1102) indicates to the second device to begin using a multi-packet acknowledgment starting from the packet number indicated in the portion (1102).

[0073] Continuing with this example, the acknowledgment bitmap portion (1104) may set a blank bitmap to indicate to the second device the format of the bitmap for the acknowledgment packets. In one example, negotiations may include setting 10 as the amount of data packets to be acknowledged by a single acknowledgment packet. In such an example, the acknowledgment bitmap portion (1104) may have 10 zeros or 10 ones to indicate to the second device to fill a bitmap having a 10-bit string. Of course, the scope of implementations is not limited to any particular technique indicating how to format the bitmap. For example, in some embodiments, the format of the bitmap may be predetermined (e.g., by design).

[0074] Continuing with this example, as shown in FIG. 3, an acknowledgment packet (308) can acknowledge data packets (302-306) by filling a bitmap. For example, if the acknowledgment bitmap portion (1104) indicates a 5-bit bitmap and k is 5, the acknowledgment packet (308) can indicate a successful acknowledgment of data packets (302-306) by including it within its payload

[1111] . Additionally, each of the k data packets may include an index (sequence number), and each sequence number corresponds to one of the bits in the bitmap. For example, the five sequential packets may each have an index such as

[0000] ,

[0001] ,

[0010] ,

[0011] ,

[0100] . The second device can parse each index from the received data packets and fill the bitmap accordingly.

[0075] In an example where one of the packets is not successfully received, the bitmap can display it as such. For example, if the data packet with index

[0010] is not successfully received, the bitmap can display

[11011] .

[0076] In another example, data packets may not have indices. Rather, the acknowledgment packet may simply indicate the number of received packets. For example, continuing with the example where k is 5, if the second device receives 5 data packets, it may generate an acknowledgment packet (308) to indicate the 5 received packets. Meanwhile, if only 4 packets are received and the timeout period has elapsed, the second device may generate an acknowledgment packet (308) to indicate only the 4 received packets. The first device may interpret an acknowledgment of 5 packets as successful for all 5 packets, whereas the first device may interpret an acknowledgment of only 4 packets as a failure of at least one packet. Although examples are discussed with respect to FIG. 3, it is understood that an implementation using numbered packets and an implementation using unnumbered packets can be appropriately applied to any implementation such as any of FIG. 3 through 10, FIG. 12 and FIG. 13.

[0077] FIG. 12 is a diagram of a signaling diagram of an exemplary method (1200) for providing multi-packet acknowledgments and retransmissions according to various embodiments. The exemplary method (1200) illustrates a device (102) (Fig. 1) transmitting data packets to a device (132) that provides acknowledgment packets. However, it should be noted that the roles may be reversed in some cases because various actions can be performed by either a central device or a peripheral device or both.

[0078] Device (102) transmits data packets (P1, P2) to device (132). In this example, devices (102, 132) negotiated a multi-packet acknowledgment and determined that the number of data packets to be acknowledged by a single acknowledgment packet is 2. Accordingly, after receiving 2 DL data packets (P1, P2), device (132) generates an acknowledgment packet (ACK-P1, P2) and transmits the acknowledgment packet to device (102). The acknowledgment packet acknowledges the reception of both data packets P1 and P2.

[0079] After receiving an acknowledgment packet, the device (102) transmits two or more DL data packets P3 and P4 to the device (132). In this example, packet P3 is lost, and only packet P4 is received by the device (132). From the perspective of the device (132), it receives packet P4, but reaches a timeout without receiving the second packet. Therefore, the device (132) transmits an acknowledgment packet (ACK-P4) in which data packet P4 is acknowledged but data packet P3 is not. The acknowledgment packet ACK-P4 (which may be triggered, for example, by the packet number of packet DL-P4 or by a timeout) may indicate P3 negatively (for example, by a bitmap) or simply omit a reference to P3. The device (102) can interpret the acknowledgment packet ACK-P4 to indicate packet loss of data packet P3. Accordingly, the device (102) performs retransmission of the data packet P3. Although not explicitly shown in FIG. 12, the device (132) may subsequently acknowledge the reception of packet P3 after retransmission.

[0080] FIG. 13 is a diagram of a signaling diagram of an exemplary method (1300) for providing multi-packet acknowledgment and retransmission according to various embodiments. The exemplary method (1300) is substantially the same as the exemplary method (1200) up to the retransmission of data packet P3. The exemplary method (1300) is provided to exemplify a sliding window mechanism that allows for the retransmission of lost data packets as well as the transmission of a new data packet at a single event to be acknowledged by a receiving device.

[0081] In the exemplary method (1300), the device (132) acknowledges the reception of data packet P4 by generating and transmitting an acknowledgment packet ACK-P4. The acknowledgment packet ACK-P4 may indicate P3 negatively (e.g., by a bitmap) or simply omit a reference to P3. The device (102) interprets the acknowledgment packet ACK-P4 as indicating packet loss of data packet P3. In response, the device (102) retransmits data packet P3 and further transmits data packet P5. Thus, the device (132) has received data packets P3 and P5, and although not explicitly illustrated, the device (132) may subsequently generate and transmit additional acknowledgment packets ACK-P3 and P5 to the device (102). The additional acknowledgment packets acknowledge the successful reception of both data packets P3 and P5.

[0082] FIG. 14 is a diagram of an exemplary method (1400) for providing a plurality of acknowledgment modes according to various embodiments. The exemplary method (1400) may be performed by a processor, such as when the processor executes computer-executable code read from a non-transient computer-readable medium, as implemented on a semiconductor die. Examples of devices capable of performing the exemplary method (1400) include the device (102) of FIG. 1 (e.g., using 108 or 120) and the device (132) (e.g., using 138 or 150), each comprising link layers (124, 154), wherein the link layers are responsible for packet generation and packet acknowledgment.

[0083] In action (1402), the first device receives a first plurality of data packets from the second device. In action (1404), the first device acknowledges the first plurality of data packets, with one acknowledgment packet per data packet (packet-by-packet acknowledgment mode). FIG. 2 illustrates an example in which a single data packet (202) is acknowledged by a single acknowledgment packet (204). In one example of method (1400), the acknowledgment mode using one acknowledgment packet per data packet may be the default.

[0084] In action (1406), the first device determines whether a triggering event has occurred. In one example, the first device determines the quality of the communication link between the first device and the second device. For example, the quality of the communication link may be given by the bit error rate (BER)—a lower bit error rate indicates higher communication link quality—the received signal strength indicator (RSSI)—a higher RSSI indicates higher communication link quality—and / or the signal-to-noise ratio (SNR)—a higher SNR indicates higher communication link quality. Of course, the range of implementations may be adapted to appropriately utilize any parameter (or combination thereof). For example, the parameter may include the communication link throughput or even a parameter not related to the communication link.

[0085] Action (1406) may include the first device comparing the value of a parameter to a threshold to determine whether a triggering event has occurred. For example, the value of BER may be compared to a threshold, and a BER value lower than the threshold may indicate higher communication link quality. In contrast, an RSSI or SNR value exceeding the threshold may indicate higher communication link quality. Throughput exceeding or falling below the threshold may be determined in Action (1406) and may be considered a triggering event. The threshold may be determined in advance, for example, by being pre-programmed into the memory or registers of the first device. The threshold may be pre-programmed based on, for example, historical data or other appropriate data, and may be pre-programmed by, for example, an administrator or an application.

[0086] Assuming that the value of the parameter compared with the threshold indicates a triggering event in action (1408), the method (1400) moves to actions (1410, 1412), whereby the first device switches from using a first acknowledgment mode to using a second acknowledgment mode (e.g., multi-packet acknowledgment mode). However, if the value of the parameter compared with the threshold does not indicate a triggering event in action (1406), the first device may continue to use the packet-by-packet acknowledgment mode in action (1414). Additionally, or alternatively, the triggering event may include a command from a higher layer (e.g., application layer) to switch from one acknowledgment mode to another.

[0087] In action (1410), the first device negotiates with the second device to perform a multi-packet acknowledgment. The first device or the second device may transmit a packet, such as the packet shown in FIG. 11, to specify a packet identifier (e.g., index) and a bitmap format to initiate the multi-packet acknowledgment. In some examples, the first device or the second device may negotiate without assuming that the packets are numbered. In some examples, the format may be predetermined (e.g., by design).

[0088] Negotiation in action (1410) may include negotiation for the use of inter-frame intervals versus the omission of inter-frame intervals, such as using aggregated packets. Examples of aggregated packets are illustrated in FIGS. 7 through 10. Negotiation may also include negotiating to determine the amount of data packets to be acknowledged by a single acknowledgment packet. Negotiation may also include allowing or not allowing the transmission of an acknowledgment request packet. Negotiation may also include the format of the acknowledgment (e.g., using a bitmap, referring to missing or received packets by number, not using numbered packets, etc.).

[0089] Once the details of the acknowledgment are determined in action (1410), the first device and the second device may switch to using a multi-packet acknowledgment. From the perspective of the first device, this may include receiving a plurality of subsequent data packets and then acknowledging a plurality of the subsequent data packets using a single acknowledgment packet. Examples of multi-packet acknowledgments are described in more detail in connection with FIGS. 3 through 10, FIGS. 12 and FIGS. 13.

[0090] As the first device continues to operate, it may determine once again whether (or not) a triggering event occurred in action (1406). Based on subsequent action (1406), the first device may select a first acknowledgment mode (one acknowledgment packet per data packet) or a second acknowledgment mode (multi-packet acknowledgment mode). In practice, the first device may operate over a period of time and may switch between the default first mode and the multi-packet second mode multiple times as the communication link changes.

[0091] FIG. 14 illustrates a device having two acknowledgment modes, but in some embodiments, the device may implement more than two acknowledgment modes, such as three or more. For example, the first mode may be a per-packet mode, the second mode may be a multi-packet mode, and the third mode may rely only on acknowledgment request packets without transmitting an acknowledgment packet unless triggered by an acknowledgment request packet, and may acknowledge one or more received packets depending on the situation which may change over time.

[0092] Various embodiments may include advantages over other solutions. For example, the embodiment of FIG. 14 includes an action (1406) of measuring the quality of a communication link, analyzing the quality of the link, and selecting a communication mode based at least partially on the quality of the link. Thus, some such embodiments may increase throughput at times when the communication link is sufficiently reliable to handle increased throughput by utilizing multi-packet acknowledgments. Additionally, such embodiments may avoid overhead associated with timeouts by using an acknowledgment mode having one acknowledgment packet per data packet when the communication link is less reliable.

[0093] Additionally, as previously discussed, the multi-packet acknowledgment of action (1412) can reduce overhead when all things are equal, and thus provide higher throughput than generally expected by using one acknowledgment packet per data packet. Examples of applications that can benefit from increased throughput include, but are not limited to, automotive applications, Logical Link Control and Adaptation Protocol (L2CAP) access-oriented channel (CoC) applications, etc. For example, automotive applications using channel sounding can benefit from increased throughput. Additionally, automotive digital keys capable of transmitting a relatively large amount of data in a short time (e.g., from a vehicle to a smartphone or key fob) can benefit from increased throughput.

[0094] In some embodiments, the negotiated number of packets (e.g., action (1410)) may change over time based, for example, on communication quality or other factors, and may differ between UL and DL. For example, in some embodiments, ka may be selected as the negotiated packet amount if the communication quality is higher than Qa and lower than Qb (during action (1410)), and kb may be selected as the negotiated packet amount if the communication quality is higher than Qb, where kb represents a communication quality higher than ka and Qb represents a communication quality higher than Qa.

[0095] In some embodiments, the action (1410) may be performed at any appropriate time, e.g., before data exchange, during data exchange, before (e.g., BLE) connection event, during (e.g., BLE) connection event, when the device joins the network, and / or at any other appropriate time.

[0096] FIG. 15 illustrates an exemplary method (1500) for providing a plurality of acknowledgment modes according to various embodiments. The exemplary method (1500) may be performed by a processor, such as when the processor executes computer-executable code read from a non-transient computer-readable medium, as implemented on a semiconductor die. Examples of devices capable of performing the exemplary method (1500) include devices (102) of FIG. 1 (e.g., using 108 or 120) and devices (132) (e.g., using 138 or 150), each comprising link layers (124, 154), wherein the link layers are responsible for packet generation and packet acknowledgment.

[0097] The method (1500) of FIG. 15 operates in a manner similar to the method (1400) of FIG. 14, but differs in that it is performed by a device that transmits data packets and receives acknowledgment packets. FIG. 15 is provided to demonstrate that link quality measurement, link quality analysis (or other parameter measurement and analysis), and selection of acknowledgment mode can be performed by a device that transmits data packets and receives acknowledgment packets.

[0098] In action (1502), the first device transmits a plurality of data packets. In action (1504), the first device receives one acknowledgment packet per data packet. An example is illustrated above in relation to FIG. 2.

[0099] Actions (1506 and 1510) are identical or similar to the actions (1406 and 1410) of FIG. 14. Assuming that the link quality passes in action (1508), the second acknowledgment mode includes receiving an acknowledgment of a plurality of data packets followed by a multi-packet acknowledgment in action (1512). Examples of multi-packet acknowledgments are given above in connection with FIGS. 3 through 10, FIG. 12, and FIG. 13. Assuming that the link quality does not pass in action (1508), the first device continues to receive one acknowledgment packet per data packet in action (1514).

[0100] As in method (1400), in method (1500), the first device may measure the link quality and decide to appropriately use the first acknowledgment mode or the second acknowledgment mode.

[0101] Exemplary embodiments of the present disclosure are summarized herein. Other embodiments may also be understood from the entirety of the specification and claims filed herein.

[0102] Example 1. A method comprising: receiving a first plurality of packets from a second device at a first device; acknowledging the first plurality of packets, including transmitting the first plurality of acknowledgment packets to the second device, wherein the first device transmits the first plurality of acknowledgment packets, each comprising one acknowledgment packet per data packet; determining that a triggering event has occurred; and negotiating to perform a multi-packet acknowledgment between the first device and the second device in response to the triggering event.

[0103] Example 2. A method according to Example 1, wherein the first acknowledgment packet among the first plurality of acknowledgment packets includes a non-empty data packet.

[0104] Example 3. A method according to Example 1, wherein the first acknowledgment packet among the first plurality of acknowledgment packets includes an empty packet.

[0105] Example 4. A method of one of Examples 1 to 3, wherein the number of bits of the empty packet is 10 octets.

[0106] Example 5. A method of one of Examples 1 to 4, wherein the step of determining that a triggering event has occurred includes the step of determining that the quality of the communication link between the first device and the second device exceeds a predetermined threshold.

[0107] Example 6. A method of one of Examples 1 to 5, wherein a predetermined threshold is a signal-to-noise ratio (SNR) threshold associated with a communication link, and the step of negotiating to perform a multi-packet acknowledgment with a second device comprises the step of negotiating to perform a multi-packet acknowledgment with a second device in response to the SNR associated with a first plurality of packets being higher than the SNR threshold.

[0108] Example 7. A method of one of Examples 1 to 5, wherein the predetermined threshold is a Received Signal Strength Indicator (RSSI) threshold, and the step of negotiating to perform a multi-packet acknowledgment with a second device comprises the step of negotiating to perform a multi-packet acknowledgment with a second device in response to the RSSI associated with a first plurality of packets being higher than the RSSI threshold.

[0109] Example 8. A method of one of Examples 1 to 5, wherein the predetermined threshold is a bit error rate (BER) threshold, and the step of negotiating to perform a multi-packet acknowledgment with a second device comprises the step of negotiating to perform a multi-packet acknowledgment with the second device in response to the BER associated with the first plurality of packets being lower than the BER threshold.

[0110] Example 9. A method comprising, after the step of negotiating to perform a multi-packet acknowledgment as one of Examples 1 to 8, receiving a second plurality of packets from a second device by a first device, wherein the second plurality of packets each comprises a unique identifier for each of the second plurality of packets; and further comprising the step of transmitting a first acknowledgment packet that acknowledges a plurality of the second plurality of packets according to each unique identifier.

[0111] Example 10. A method of one of Examples 1 to 9, further comprising the step of determining that a missing packet among a second plurality of packets was not received by the first device based on unique identifiers of a plurality of packets, and requesting retransmission of the missing packet in response thereto.

[0112] Example 11. A method of one of Examples 1 to 10, wherein the step of transmitting a first acknowledgment packet is to acknowledge (Ack) or not acknowledge (NACK) each data packet among the second plurality of packets according to each unique identifier.

[0113] Example 12. A method in which, as one of Examples 1 to 11, the step of transmitting the first acknowledgment packet includes the step of using a bitmap.

[0114] Example 13. A method of one of Examples 1 to 12, wherein the step of transmitting a first acknowledgment packet includes the step of transmitting the first acknowledgment packet together with additional data.

[0115] Example 14. A method of one of Examples 1 to 13, wherein the first acknowledgment packet requests the transmission of a third plurality of packets from the first device to the second device.

[0116] Example 15. A method in which, as one of Examples 1 to 14, the second plurality of packets omit the inter-frame interval.

[0117] Example 16. A method of one of Examples 1 to 14, wherein the spacing between frames is 150 μs.

[0118] Example 17. A method comprising, as one of Examples 1 to 16, a step of starting to count packets in a second plurality of packets after a step of negotiating to perform a multi-packet acknowledgment; and a step of acknowledging a second plurality of packets, including transmitting a first acknowledgment packet indicating the number of received packets in the second plurality of packets.

[0119] Example 18. A method of one of Examples 1 to 17, wherein the number of received packets is less than the amount of a second plurality of packets, and the first acknowledgment packet requests the retransmission of a missing packet.

[0120] Example 19. A method of one of Examples 1 to 18, wherein the first device includes a central device of a wireless network, the second device includes a peripheral device of a wireless network, and the central device transmits an initial packet as part of a communication link between the first device and the second device.

[0121] Example 20. A method of any one of Examples 1 to 18, wherein the first device includes a peripheral device of a wireless network, the second device includes a central device of a wireless network, and the central device transmits an initial packet as part of a communication link between the first device and the second device.

[0122] Example 21. A method of one of Examples 1 to 20, wherein the step of negotiating to perform a multi-packet acknowledgment includes the step of indicating that the first device begins to perform a multi-packet acknowledgment for subsequent transmissions of packets.

[0123] Example 22. A method of any one of Examples 1 through 21, wherein the step of indicating that the first device begins to perform a multi-packet acknowledgment for subsequent transmissions of packets comprises the step of requesting the first device to perform a multi-packet acknowledgment for every N packets received, where N is a positive integer greater than 1.

[0124] Example 23. A method of one of Examples 1 to 22, further comprising: receiving an early acknowledgment request by a second device before receiving N packets from a last multi-packet acknowledgment by a first device; and in response to receiving the early acknowledgment request, providing an acknowledgment packet by the first device for acknowledging each packet received from the last multi-packet acknowledgment.

[0125] Example 24. A method of any one of Examples 1 through 23, wherein the step of negotiating to perform a multi-packet acknowledgment comprises determining the amount of packets to be acknowledged by a single acknowledgment packet, and the method further comprises: receiving a second plurality of packets from a second device—the second plurality of packets is less than the amount—; receiving a request from the second device to acknowledge the second plurality of packets; and transmitting a first acknowledgment packet to the second device—the first acknowledgment packet acknowledges only the second plurality of packets.

[0126] Example 25. A method of one of Examples 1 through 24, wherein the first acknowledgment packet among the first plurality of acknowledgment packets comprises an empty packet, and the method further comprises: receiving a second plurality of packets from a second device by the first device after the step of negotiating to perform a multi-packet acknowledgment; and transmitting a second acknowledgment packet to the second device, wherein the second acknowledgment packet acknowledges a plurality of packets within the second plurality of packets, and the second acknowledgment packet comprises a greater amount of bits than the first acknowledgment packet.

[0127] Example 26. A method of one of Examples 1 to 25, wherein the communication link between the first device and the second device is a Bluetooth Low Energy (BLE) communication link.

[0128] Example 27. A method of one of Examples 1 to 26, wherein the step of determining that a triggering event has occurred includes the step of determining that the throughput of a communication link between a first device and a second device exceeds a predetermined threshold.

[0129] Example 28. A method of one of Examples 1 to 27, wherein the step of determining that a triggering event has occurred includes the step of determining that a command has been received from an upper layer.

[0130] Example 29. A method of one of Examples 1 to 28, wherein the first plurality of packets comprises Layer 2 packets transmitted over the air.

[0131] Example 30. A method comprising: transmitting a first plurality of packets from a first device to a second device; receiving, by the first device, a first plurality of acknowledgment packets from the second device, wherein one acknowledgment packet per data packet; determining that a triggering event has occurred; and negotiating to perform a multi-packet acknowledgment between the first device and the second device in response to the triggering event.

[0132] Example 31. An electronic device comprising: a transducer configured to communicate over a wireless network; and a processor, wherein the processor operates in a packet-by-packet acknowledgment mode in which the processor transmits an acknowledgment packet per received packet using the transducer; and wherein, from the packet-by-packet acknowledgment mode, the processor is configured to transmit an acknowledgment packet for acknowledging a plurality of received packets using the transducer.

[0133] Example 32. An electronic device of Example 31, wherein, during a packet-by-packet acknowledgment mode, the processor is configured to transmit an empty packet as an acknowledgment packet to a first packet received from the first device in response to not having data to transmit to the first device.

[0134] Example 33. An electronic device of Example 31 or Example 32, wherein, during a packet-by-packet acknowledgment mode, the processor is configured to receive a first plurality of packets having an inter-frame interval; and during a multi-packet acknowledgment mode, the processor is configured to receive a second plurality of packets without an inter-frame interval.

[0135] Example 34. An electronic device of any of Examples 31 to 33, wherein the packet-by-packet acknowledgment mode is the default mode.

[0136] Example 35. An electronic device of any one of Examples 31 through 34, wherein an empty packet comprises a header; Cyclic Redundancy Check (CRC) content; and a payload having no data.

[0137] Example 36. An electronic device as one of Examples 31 to 35, wherein the processor is configured to determine the link quality of a communication link between the electronic device and the first device and to switch to a multi-packet acknowledgment mode in response to the link quality being higher than a predetermined threshold.

[0138] Example 37. An electronic device of any one of Examples 31 to 36, wherein the processor determines the throughput of a communication link between the electronic device and the first device and is configured to switch to a multi-packet acknowledgment mode in response to the throughput being higher than a predetermined threshold.

[0139] Example 38. An electronic device as one of Examples 31 to 37, wherein the processor is configured to switch to a multi-packet acknowledgment mode in response to a request from the first device.

[0140] Example 39. An electronic device of Example 31 to Example 38, wherein the first acknowledgment packet in a multi-packet acknowledgment mode comprises a payload having a bitmap corresponding to a plurality of received uniquely identified packets.

[0141] Example 40. An electronic device of any one of Examples 31 to 39, wherein the first acknowledgment packet in a multi-packet acknowledgment mode comprises a payload indicating the amount of packets received from the first device.

[0142] Example 41. An electronic device as one of Examples 31 to 40, wherein, during a multi-packet acknowledgment mode, the processor is configured to receive a plurality of packets that do not have an interval between frames.

[0143] Example 42. An electronic device as one of Examples 31 to 41, wherein, during a multi-packet acknowledgment mode, the processor is configured to generate a first acknowledgment packet in response to receiving an acknowledgment request.

[0144] Example 43. An electronic device of one of Examples 31 to 42, wherein the electronic device comprises a sensor device.

[0145] Example 44. An electronic device as one of Examples 31 to 43, wherein the electronic device comprises a vehicle or a key fob.

[0146] Example 45. An electronic device as one of Examples 31 to 44, wherein the electronic device is configured to operate as a reflector device during channel sounding.

[0147] Example 46. An electronic device as one of Examples 31 to 45, wherein, during a multi-packet acknowledgment mode, the processor is configured to communicate with the first device using the Logical Link Control and Adaptation Protocol (L2CAP).

[0148] Corresponding numbers and symbols in different drawings generally refer to corresponding parts unless otherwise indicated. The drawings are not necessarily drawn to scale. In the drawings, similar reference numbers refer to similar elements throughout, and various features are not necessarily drawn to scale.

[0149] Although various examples of the present disclosure have been described above, it should be understood that they are presented merely as examples and not as a limitation. Many modifications to the disclosed examples may be made in accordance with the disclosure without departing from the spirit or scope of the present disclosure. Within the scope of the claims, modifications to the described embodiments are possible, and other embodiments are possible.

Claims

Claim 1 A method comprising: receiving a first plurality of packets from a second device at a first device; acknowledging the first plurality of packets, including transmitting the first plurality of acknowledgment packets to the second device, wherein the first device transmits the first plurality of acknowledgment packets, each comprising one acknowledgment packet per data packet; determining that a triggering event has occurred; and negotiating to perform a multi-packet acknowledgment between the first device and the second device in response to the triggering event. Claim 2 A method according to claim 1, wherein the first acknowledgment packet among the first plurality of acknowledgment packets includes a non-empty data packet. Claim 3 A method according to claim 1, wherein the first acknowledgment packet among the first plurality of acknowledgment packets includes an empty packet. Claim 4 In paragraph 3, the method wherein the number of bits of the empty packet is 10 octets. Claim 5 A method according to claim 1, wherein the step of determining that the triggering event has occurred includes the step of determining that the quality of the communication link between the first device and the second device exceeds a predetermined threshold. Claim 6 In claim 5, the predetermined threshold is a signal-to-noise ratio (SNR) threshold associated with the communication link, and the step of negotiating to perform a multi-packet acknowledgment with the second device comprises the step of negotiating to perform a multi-packet acknowledgment with the second device in response to the SNR associated with the first plurality of packets being higher than the SNR threshold. Claim 7 In claim 5, the predetermined threshold is a Received Signal Strength Indicator (RSSI) threshold, and the step of negotiating to perform a multi-packet acknowledgment with the second device comprises the step of negotiating to perform a multi-packet acknowledgment with the second device in response to the RSSI associated with the first plurality of packets being higher than the RSSI threshold. Claim 8 In claim 5, the predetermined threshold is a bit error rate (BER) threshold, and the step of negotiating to perform a multi-packet acknowledgment with the second device includes the step of negotiating to perform a multi-packet acknowledgment with the second device in response to the BER associated with the first plurality of packets being lower than the BER threshold. Claim 9 A method according to claim 1, further comprising, after the step of negotiating to perform a multi-packet acknowledgment, the step of receiving a second plurality of packets from the second device by the first device, wherein the second plurality of packets each comprises a unique identifier for each of the second plurality of packets; and the step of transmitting a first acknowledgment packet that acknowledges a plurality of the second plurality of packets according to each of the unique identifiers. Claim 10 A method according to claim 9, further comprising the step of determining that a missing packet among the second plurality of packets was not received by the first device based on the unique identifiers of the plurality of packets, and in response thereto requesting the retransmission of the missing packet. Claim 11 In claim 9, the step of transmitting the first acknowledgment packet is a method of acknowledging (Ack) or not acknowledging (NACK) each data packet among the second plurality of packets according to each of the unique identifiers. Claim 12 In claim 9, the step of transmitting the first acknowledgment packet includes the step of using a bitmap. Claim 13 In claim 9, the step of transmitting the first acknowledgment packet includes the step of transmitting the first acknowledgment packet together with additional data. Claim 14 In claim 9, the method wherein the first acknowledgment packet requests the transmission of a third plurality of packets from the first device to the second device. Claim 15 In claim 9, the method wherein the second plurality of packets omit the interval between frames. Claim 16 A method according to claim 1, further comprising: a step of initiating counting of packets in a second plurality of packets after a step of negotiating to perform a multi-packet acknowledgment; and a step of acknowledging the second plurality of packets, including transmitting a first acknowledgment packet indicating the number of received packets among the second plurality of packets. Claim 17 A method according to claim 16, wherein the number of received packets is less than the amount of the second plurality of packets, and the first acknowledgment packet requests the retransmission of the missing packet. Claim 18 A method according to claim 1, wherein the first device includes a central device of a wireless network, the second device includes a peripheral device of the wireless network, and the central device transmits an initial packet as part of a communication link between the first device and the second device. Claim 19 A method according to claim 1, wherein the first device includes a peripheral device of a wireless network, the second device includes a central device of the wireless network, and the central device transmits an initial packet as part of a communication link between the first device and the second device. Claim 20 A method according to claim 1, wherein the step of negotiating to perform a multi-packet acknowledgment includes the step of indicating that the first device begins to perform a multi-packet acknowledgment for subsequent transmissions of packets. Claim 21 In claim 20, the step of indicating that the first device begins to perform a multi-packet acknowledgment for subsequent transmissions of packets comprises the step of requesting the first device to perform a multi-packet acknowledgment for every N packets received, wherein N is a positive integer greater than 1. Claim 22 A method according to claim 21, further comprising: receiving an early acknowledgment request by the second device before receiving N packets from the last multi-packet acknowledgment by the first device; and in response to receiving the early acknowledgment request, providing an acknowledgment packet by the first device for acknowledging each packet received from the last multi-packet acknowledgment. Claim 23 The method of claim 1, wherein the step of negotiating to perform a multi-packet acknowledgment includes the step of determining the amount of packets to be acknowledged by a single acknowledgment packet, and the method further comprises: b. receiving a second plurality of packets from the second device, wherein the second plurality of packets are less than the amount; c. receiving a request from the second device to acknowledge the second plurality of packets; and d. transmitting a first acknowledgment packet to the second device, wherein the first acknowledgment packet acknowledges only the second plurality of packets. Claim 24 The method of claim 1, wherein the first acknowledgment packet among the first plurality of acknowledgment packets comprises an empty packet, and the method further comprises: receiving a second plurality of packets from the second device by the first device after the step of negotiating to perform a multi-packet acknowledgment; and transmitting a second acknowledgment packet to the second device, wherein the second acknowledgment packet acknowledges a plurality of packets within the second plurality of packets, and the second acknowledgment packet comprises a greater amount of bits than the first acknowledgment packet. Claim 25 A method according to claim 1, wherein the communication link between the first device and the second device is a Bluetooth Low Energy (BLE) communication link. Claim 26 A method according to claim 1, wherein the step of determining that the triggering event has occurred includes the step of determining that the throughput of the communication link between the first device and the second device exceeds a predetermined threshold. Claim 27 A method according to claim 1, wherein the step of determining that the triggering event has occurred includes the step of determining that a command has been received from an upper layer. Claim 28 A method according to claim 1, wherein the first plurality of packets include layer 2 packets transmitted over the air.