Bit error correction for bluetooth low energy

By processing the packet header in the Bluetooth Low Energy (BLE) system and utilizing a combination of Retransmission-BEC and CRC-EC technologies, the problem of increased retransmission counts in wireless communication systems is solved, resulting in more efficient communication performance.

CN114189312BActive Publication Date: 2026-04-21INFINEON TECHNOLOGIES AMERICAS CORP
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INFINEON TECHNOLOGIES AMERICAS CORP
Filing Date
2021-09-10
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

In wireless communication systems, especially Bluetooth Low Energy (BLE) systems, there is a problem of increased retransmissions due to random bit errors and sudden errors, which affects communication latency and power consumption.

Method used

By processing the header fields of the received packets, false location errors are corrected. The payload of the original packets is reconstructed using a combination of RE-BEC and CRC-EC technologies, reducing the number of retransmissions.

Benefits of technology

It improves channel throughput, increases communication range, reduces latency and power consumption, and reduces system complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114189312B_ABST
    Figure CN114189312B_ABST
Patent Text Reader

Abstract

The present invention relates to bit error correction for Bluetooth Low Energy. Methods and systems for a Bluetooth Low Energy (BLE) receiver to reduce the number of retransmissions of a packet required to receive an error-free packet, thereby increasing channel throughput, are disclosed. Techniques to reduce the number of retransmissions include processing the header of a received packet to increase the number of corrupted packets available for reconstructing the original payload and a combination of bit error correction (BEC) of the payload of the corrupted packets. The header processing can include making available for payload reconstruction packets whose received access address differs from the receiver's assigned address by no more than one bit, provided that at least one of the corrupted packets used in the reconstruction contains an error-free access address. The header processing can also include using a previous error-free decode length of a packet to assist in determining the length field of a current packet.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This subject matter generally relates to wireless communication systems, and more specifically, to methods for correcting, such as Systems and methods for handling bit errors in wireless communication systems of networks. Background Technology

[0002] Bit errors are a testament to the quality of a wireless communication link. Bit errors can be broadly categorized as random errors or burst errors. Random bit errors are evenly distributed throughout the transmitted packets and can be caused by persistent channel impairments, such as weak signals due to physical obstacles or long-distance links. Burst bit errors are localized in time and can be caused by transient conditions such as interference or intermittent channel congestion. Many wireless communication systems or protocols, such as Bluetooth Low Energy (BLE), use retransmissions to achieve a reliable communication link between the transmitter and receiver. Such systems typically discard corrupted transmissions and rely on error-free reception of subsequent retransmissions. It is assumed that retransmissions can withstand low levels of random bit errors (i.e., receiving error-free packets after a reasonable number of retransmissions).

[0003] However, the probability of receiving error-free packets decreases rapidly with increasing packet size and bit error rate (BER), leading to a significant increase in the number of retransmissions. Several retransmissions may be required to overcome even low random BERs. For example, for a 253-byte packet (the maximum allowed in BLE), exceeding 0.01% BER requires numerous retransmissions, while exceeding 0.10% BER results in system failure. The number of retransmissions can negatively impact latency and power requirements. Furthermore, real-time or two-way audio or video wireless links are latency-sensitive and may limit the number of retransmissions. In applications less sensitive to latency, such as streaming, buffers longer than the expected duration of poor transient channel conditions can be used to overcome burst errors and numerous retransmissions. Such large buffers also introduce complexity, size, and power losses. Summary of the Invention

[0004] According to one aspect of the present invention, a method is provided, the method comprising: processing a header field of a received packet to correct false location errors in the header field, the received packet including an original packet or an original packet retransmitted once or more; receiving a payload of the received packet based on the processed header field; determining whether the payload of the received packet is corrupted; and in response to determining that the payload of the received packet is corrupted, reconstructing an uncorrupted payload of the original packet based on a combination of the payload of the original packet and the payload of the one or more retransmitted packets.

[0005] According to another aspect of the invention, a receiver is provided, comprising: a wireless interface configured to receive one or more packets; and a processing device configured to: process a header field of the received packets to correct false location errors in the header field, the received packets including the original packet or the original packet retransmitted once or more; receive the payload of the received packets based on the processed header field; determine whether the payload of the received packets is corrupted; and in response to the corruption of the payload of the received packets, reconstruct the uncorrupted payload of the original packets based on a combination of the payload of the original packets and the payload of the one or more retransmitted packets.

[0006] According to another aspect of the present invention, a communication device is provided, comprising: one or more antennas; and a processing device connected to the one or more antennas, the processing device being configured to: process a header field of a received packet to correct a false location error in the header field, the received packet including an original packet or an original packet retransmitted once or more; receive a payload of the received packet based on the processed header field; determine whether the payload of the received packet is corrupted; and in response to the corruption of the payload of the received packet, reconstruct an uncorrupted payload of the original packet based on a combination of the payload of the original packet and the payload of the one or more retransmitted packets. Attached Figure Description

[0007] The described embodiments and their advantages can be best understood by referring to the following description taken in conjunction with the accompanying drawings. These drawings do not limit any changes in form and detail that may be made to the described embodiments by those skilled in the art without departing from the spirit and scope thereof.

[0008] Figure 1 An example wireless network architecture is shown according to some implementations of this disclosure.

[0009] Figure 2 An example of a standard scheme for retransmission and buffering to combat bit errors is shown.

[0010] Figure 3 An example model is shown that illustrates some embodiments of this disclosure for evaluating the performance of header decoding and bit error correction techniques to reduce the number of retransmissions.

[0011] Figure 4 A flowchart is shown illustrating header processing for reducing header error rates according to some embodiments of this disclosure, and bit error correction (BEC) processing including the use of retransmission-BEC (RE-BEC) technology and CRC error correction (CRC-EC) technology to correct bit errors in the payload of corrupted data packets.

[0012] Figure 5 The format of a Bluetooth Low Energy (BLE) uncoded data packet, including an access address for a Protocol Data Unit (PDU) and a length field for the header, is shown according to some embodiments of this disclosure.

[0013] Figure 6 A flowchart is shown illustrating a method for processing access addresses of corrupted BLE packets using RE-BEC and CRC-EC techniques, according to some embodiments of the present disclosure, to increase the number of corrupted packets available for bit error correction.

[0014] Figure 7 A flowchart is shown illustrating a method for using RE-BEC and CRC-EC techniques to correct the length field of corrupted BLE packets to increase the number of corrupted packets available for bit error correction, according to some embodiments of this disclosure.

[0015] Figure 8 Examples of the generation of accumulated soft-bit groups and the creation of majority decision groups using RE-BEC technology, which operates on damaged groups, are shown in some embodiments of this disclosure, according to some implementations of the present disclosure.

[0016] Figure 9 An example CRC-EC technique according to some implementations of this disclosure is shown, which operates on accumulated soft bit packets from RE-BEC technique to arrange possible bit error positions to correct bit errors.

[0017] Figure 10 The present disclosure illustrates an increase in throughput on a 1 Mbps BLE link by using header processing to reduce header error rate and RE-BEC and CRC-EC techniques to correct bit errors in corrupted packets, according to some embodiments of the present disclosure.

[0018] Figure 11 The present disclosure illustrates flowcharts of methods for processing access address and length fields of corrupted BLE packets to increase the number of corrupted packets available for packet reconstruction, and methods for reconstructing packets using RE-BEC and CRC-EC techniques, according to some embodiments of the present disclosure.

[0019] Figure 12 This is a block diagram illustrating a Bluetooth device with hardware and software drivers according to some embodiments of the present disclosure, the hardware and software drivers being deployed to operate in a Bluetooth link assisted by header decoding and bit error correction techniques. Detailed Implementation

[0020] Examples of various aspects and variations of the subject matter are described and illustrated in the accompanying drawings. The following description is not intended to limit the invention to these embodiments, but rather to enable those skilled in the art to make and use the invention.

[0021] Like most wireless communication systems / protocols, Bluetooth Low Energy (BLE) uses retransmissions to achieve reliable communication links. When a corrupted packet is received, such as when the packet fails a Cyclic Redundancy Check (CRC) or when a corrupted header does not match the receiver's destination address, the receiver can request the packet's source to retransmit the packet. As packet size or bit error rate (BER) increases, the number of retransmissions required to receive error-free data packets can increase significantly. The aspects of the subject matter techniques disclosed herein reduce the number of retransmissions required to reconstruct error-free packets, thereby improving channel throughput, increasing communication range, and reducing latency and power consumption. Although aspects of the subject matter techniques have been described in the context of BLE, it should be understood that the subject matter techniques are applicable to other wireless networks, including but not limited to cellular networks (e.g., Long Term Evolution (LTE) networks), wireless local area networks (WLANs), wireless sensor networks, and satellite communication networks.

[0022] In one implementation, techniques for reducing the number of retransmissions may include a combination of processing the header of received packets to increase the number of corrupted packets available for reconstructing the original payload and bit error correction (BEC) of the corrupted packets' payload. In one implementation, header processing may include making packets whose received access address is approximately one bit different from the receiver's assigned address available for payload reconstruction. Therefore, packets with only one corrupted bit in the access address can still be used to facilitate error-free reconstruction of the payload. A packet is considered corrected when the reconstructed payload passes CRC and at least one of the corrupted packets used in the reconstruction contains an error-free access address.

[0023] In one implementation, header processing may include using the previously error-free decoded length of the packet to help determine the length field of the current packet. If the current decoded length differs from the previously correctly decoded length by one bit, the technique can correct the current decoded length field of the header of the received packet to be equal to the previously correctly decoded length. This technique can use the corrected length field to receive the remainder of the packet, thereby increasing the likelihood of correct length decoding and increasing the number of correctly received packets. For example, if a received payload containing the corrected length field passes the CRC, there is a bit error in the decoded length field and that bit error has been corrected. In one implementation, even if the payload received using the corrected length field initially did not pass the CRC, the corrupted packet can still be used to reconstruct the original payload using BEC techniques.

[0024] In one implementation, reconstructing the payload using BEC (Borrowed Error Correction) technology may include combining corrupted packets at the bit level to create accumulated soft-bit packets, increasing the likelihood of correctly resolving bit errors with each retransmission. A technique known as Retransmission-BEC (RE-BEC) can generate a majority decision packet based on the accumulated soft-bit packets to produce the best guess for the payload. This technique can then calculate a CRC (Corrected Chronology Ratio) on the majority decision packet to verify that all errors have been resolved.

[0025] In one implementation, in the event of persistent CRC failures, a BEC technique known as CRC error correction (CRC-EC) can be used after RE-BEC. The CRC-EC technique evaluates the accumulated soft bit blocks from RE-BEC to identify possible bit error locations. The CRC-EC technique can arrange all possible combinations of bit error locations to flip the erroneous bits and examine the CRC result to identify error-free combinations. For example, the technique can generate a CRC checksum as a reference error syndrome for the majority decision blocks created by RE-BEC. The technique can generate a combined error syndrome associated with the arrangement of bit error locations for comparison with the reference error syndrome. If the combined error syndrome associated with a combination of bit error locations matches the reference error syndrome, the flipped bits associated with the bit error locations provide bit error correction.

[0026] Figure 1 An example network architecture 100 according to some embodiments of this disclosure is shown. For example... Figure 1 As shown, network architecture 100 may include a transmitter 101 and a receiver 102. Transmitter 101 may transmit radio frequency signals carrying data packets (or data messages, frames, etc.) to receiver 102, as indicated by arrow 103. Receiver 102 may receive the transmitted signals to retrieve the data packets. If receiver 102 detects that the transmitted data packet has been correctly received without bit errors, receiver 102 may send a notification such as an acknowledgment (ACK) to transmitter 101. Transmitter 101 will not retransmit the correctly received data packet. On the other hand, if receiver 102 detects that the received data packet is a corrupted data packet containing one or more bit errors, receiver 102 may send a notification such as a negative acknowledgment (NACK) to transmitter 101. Transmitter 101 will retransmit the data packet to receiver 102. Figure 1 The circle 110 shown can represent the range of the radio frequency signal transmitted by transmitter 101. A receiver located within circle 110, such as receiver 102, can be able to receive the radio frequency signal transmitted by transmitter 101.

[0027] In one implementation, network architecture 100 may be network. The network can include the use of what has already been made by Special interest groups ( A wireless network for network devices that communicate using radio frequency, protocols, standards, and data formats defined by the Special Interest Group (SIG). In this embodiment, transmitter 101 can be... The transmitter and receiver 102 can be Receiver. Data packets sent from transmitter 101 to receiver 102 can be Grouping. In some implementations, Network (e.g., Devices within the network can use Low-power (BLE) standard. Network architecture 100 may also include... Figure 1 Other nodes, components, and / or devices not shown.

[0028] To receive error-free packets using only a few retransmissions (e.g., 2 to 3 times) and provide significant power and delay savings as well as low complexity, receiver 102 may not discard corrupted received packets, as multiple corrupted received packets of the same transmitted packet can provide useful information to determine the location of bit errors in the corrupted received packet. Receiver 102 can combine corrupted received packets to reconstruct the original packet using BEC techniques including RE-BEC and CRC-EC. The receiver can process the header of the received packet, including access address and length fields, to increase the number of corrupted packets available for reconstructing the original packet using BEC techniques.

[0029] Figure 2 An example of a standard scheme for retransmission and buffering to combat bit errors is shown. A CRC generator 201 on the transmitter can calculate a CRC checksum for the payload of each packet to be transmitted. The calculated CRC checksum can be appended to the payload to form a packet conforming to the data format of the wireless network, and the transmitter can transmit the packet to the receiver through the wireless network channel. Packets may be corrupted by random bit errors due to persistent channel impairment or by burst bit errors caused by transient interference sources or intermittent channel congestion.

[0030] The CRC generator 203 on the receiver can receive packets and extract the payload to calculate a CRC checksum. If the calculated CRC checksum matches the CRC checksum of the received packet, the received packet is received without any errors, and the receiver can send an ACK signal to the transmitter. Otherwise, if the calculated CRC checksum does not match the received CRC checksum, the packet is corrupted, and the receiver can send a NACK signal to the transmitter to request a retransmission of the packet. Alternatively, the CRC generator 203 on the receiver can calculate a CRC checksum (also called an error corrector) for a packet including the received CRC checksum. If the calculated CRC checksum is zero, the received packet including the received CRC checksum is error-free. Otherwise, if the calculated CRC checksum is not zero, the packet has an error. It is assumed that retransmissions can combat low-level random bit errors (receiving error-free packets after a reasonable number of retransmissions). Buffering is introduced to combat bursty bit errors by establishing sufficient delay to handle the expected duration of poor transient channel conditions. Numerous retransmissions and large buffers negatively impact network throughput, power, latency, cost, etc. A technique is proposed to reduce the number of retransmissions required to reconstruct error-free packets, thereby improving channel throughput, increasing communication range, and reducing latency and power consumption.

[0031] Figure 3 Example models are shown for evaluating the performance of header decoding and bit error correction techniques to reduce the number of retransmissions, according to some embodiments of this disclosure. Source 301, for example... Figure 1 of Transmitter 101 provides BLE packets, including retransmission corrupted packets, through channel 303. Channel 303 can be modeled as an additive white Gaussian noise (AWGN) channel with BER corresponding to various attenuation conditions.

[0032] Receiver (sink) 305, for example Receiver 102 processes corrupted packets and their retransmissions to reconstruct the original error-free packets. Receiver processing in receiver 305 includes a combination of an enhanced header processing module 307 that increases the number of corrupted packets available for reconstructing the original packets and RE-BEC and CRC-EC modules 309 that use BEC technology to reconstruct the payload of the original packets.

[0033] On one hand, header processing module 307 can make corrupted packets whose received access addresses are less than one bit different from the allocated access address of receiver 305 available for payload reconstruction. When at least one of the corrupted packets used in reconstruction contains an error-free access address, RE-BEC and CRC-EC modules 309 can attempt to reconstruct the payload. On the other hand, if the current decoded length differs from the previously correctly decoded length by one bit, header processing module 307 can correct the decoded length field of the header of the currently received packet to be equal to the previously correctly decoded length. Receiver 305 can use the corrected length field to receive the remainder of the packet, thereby increasing the probability of correct length decoding and thus increasing the number of correctly received packets, or increasing the number of corrupted packets available for payload reconstruction by RE-BEC and CRC-EC modules 309.

[0034] On one hand, the RE-BEC technique of the RE-BEC and CRC-EC modules 309 combines corrupted packets (e.g., corrupted payloads) at the bit level to create accumulated soft bit packets, increasing the likelihood of correctly resolving bit errors as the number of retransmissions increases. A CRC is calculated on the hard decision packets derived from the accumulated soft bit packets to verify that all errors have been correctly resolved. On the other hand, in the event of a persistent CRC failure, the CRC-EC technique is used after RE-BEC. CRC-EC is a bit-flipping technique that uses knowledge of potential bit error locations and properties of CRC calculations to quickly arrange complete bit error combinations to provide bit error correction. Both RE-BEC and CRC-EC techniques have very low complexity and can be implemented in firmware or integrated into the modem hardware. The throughput analysis module 311 can analyze the number of retransmissions required to reconstruct error-free packets (which can be interpreted as error-free payloads) to determine the throughput improvement achieved by the enhanced header processing and BEC techniques.

[0035] Figure 4 A flowchart illustrating header processing for reducing header error rates according to some embodiments of this disclosure and a method 400 including BEC processing for correcting bit errors in the payload of corrupted packets using RE-BEC and CRC-EC techniques. Method 400 can be executed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, processor, processing device, central processing unit (CPU), multi-core processor, system-on-a-chip (SoC), etc.), software (e.g., instructions running / executable on the processing device), firmware (e.g., microcode), or a combination thereof. In some embodiments, method 400 may be executed by receiver 102 or a processing device included in receiver 102 (e.g., Figure 12 The processing device 1211 shown in the figure is used to perform the operation.

[0036] At box 401, method 400 demodulates the packet received from the transmitter. When the received packet is a BLE packet, it may include an access address field indicating the address of the receiver to which the packet is to be sent, and a Protocol Data Unit (PDU) encapsulating the packet's header and payload. The header may include a length field indicating the length of the PDU.

[0037] Figure 5 The format of a BLE unencoded data packet, including a preamble, access address, PDU, and CRC checksum, is shown according to some embodiments of this disclosure. The access address is 4 bytes long. The link layer of the transmitter can generate a new access address for each initial PDU it transmits. It is intended that each connection between two devices has a different access address. The access address used for a device must differ from any other access address currently in use by more than one bit. The received access address must also match the access address assigned to the device for use by the device in the PDU.

[0038] PDUs can be between 2 bytes and 258 bytes in length and include a 2-byte or 3-byte header and payload. The header includes a one-byte length field indicating the length of the PDU. Receiver devices can use this length field to receive PDUs of the correct length. A 3-byte CRC checksum can be calculated on the received PDU, including the length field, for comparison with the received CRC, thereby verifying that the PDU has been received correctly.

[0039] Return to reference Figure 4 At box 403, method 400 performs enhanced header processing on the received access address and length fields of the packet. Like the payload, the access address and length fields can be corrupted by bit errors. Furthermore, the access address is not protected (e.g., not encoded by the sender). For example, in the case of BER = 0.005, there is a 15% probability of at least one bit error in the 4-byte access address. These are packets that might otherwise be correct or already facilitate the resolution of error-free PDUs. Errors in the length field can also significantly hinder the ability to correct packets. For example, an error occurring only in the length field of a PDU will result in receiving an incorrect amount of data and subsequent incorrect CRC checksum calculations. Enhanced header processing can reduce the bit error rate of the access address or length field to increase the number of corrupted packets available for subsequent processing.

[0040] On the one hand, enhanced header processing allows corrupted packets whose received access address is less than one bit different from the receiver's allocated access address to be used for payload reconstruction. To maximize error correction potential while still conforming to the BLE specification, packets can be considered corrected through a series of retransmissions if the CRC passes and at least one of the corrupted packets used in the reconstruction contains an error-free access address.

[0041] On one hand, during link establishment, a maximum length PDU (up to the maximum allowed limit) can be set and this maximum length PDU can be exchanged between the transmitter and receiver. Throughput is typically maximized when the data contained in the PDU is also maximized. Therefore, this would suggest using the previously error-free decoded length field to help determine the current length field under poor channel conditions. Since the length field is only 8 bits, the probability of the length field containing more than one error bit is low, even under very poor channel conditions. Meanwhile, if the current decoded length field differs by one bit from the previously correctly decoded length field, a bit error is likely to exist. Therefore, if the current decoded length field differs by one bit from the previously correctly decoded length field, the enhanced header processing in block 403 can correct the current decoded length field of the received packet to be equal to the previously correctly decoded length field. This method can use the corrected length field to receive the remainder of the packet, thereby increasing the likelihood of passing CRC checks, or otherwise increasing the number of corrupted packets available for payload reconstruction. [The following will be discussed...] Figure 6 and Figure 7 Further details on enhancing header processing will be discussed.

[0042] In box 407, method 400 calculates the CRC checksum of the PDU of the currently received packet. In box 409, method 400 checks to see if the CRC checksum is zero. If the CRC checksum is zero, indicating that the PDU has been received without errors, method 400 sends an ACK signal at box 419. Otherwise, if the CRC fails, the method performs RE-BEC on the current and previously buffered corrupted original packets and retransmitted packets (if any) at box 411 to reconstruct the payload.

[0043] RE-BEC technology combines the payloads of corrupted packets at the bit level to create accumulated soft-bit packets, increasing the likelihood of correctly resolving bit errors with each retransmission. Based on the accumulated soft-bit packets, a majority decision packet (MDP) can be created. Each bit can be set using a majority voting scheme. The relationship between the number of received 0s and 1s can be resolved using arbitrary bit settings. Assuming BER is independent of bit position, the probability of a bit error falling in the same position is extremely small and decreases with each retransmission. Therefore, the error resolution capability increases with the number of retransmissions. RE-BEC technology calculates a CRC on the MDP to verify that all errors have been correctly resolved. At block 413, if the CRC checksum is zero, indicating that the reconstructed payload is error-free, method 400 sends an ACK signal at block 419. Figure 8 Further details about RE-BEC technology will be discussed.

[0044] At box 415, if the CRC fails after RE-BEC, method 400 performs the CRC-EC technique. The CRC-EC technique can generate permutations of possible bit error locations to identify error-free combinations. In one aspect, a 24-bit non-zero CRC checksum from the MDP created by RE-BEC in box 413 is obtained as a reference error corrector. High-risk or most probable bit error locations are identified from box 411 based on the accumulated soft bit blocks created by RE-BEC. Bits associated with the permutations of possible bit error locations can be flipped. The CRC-EC technique can generate a combined error corrector associated with the permutations of possible bit error locations for comparison with the reference error corrector.

[0045] At box 417, the combined error corrector associated with the arrangement of possible bit error positions is compared with the reference error corrector. If the combined error corrector associated with the combination of possible bit error positions matches the reference error corrector, the flipped bits associated with the combination of possible bit error positions successfully reconstruct the error-free payload, and method 400 sends an ACK signal at box 419. Otherwise, if the combined error corrector associated with the arrangement of all possible bit error positions does not match the reference error corrector, the CRC-EC technique cannot correct the bit error, and method 400 sends a NACK signal at box 421. Additionally, regarding... Figure 9 Further details of CRC-EC technology will be discussed.

[0046] Figure 6A flowchart of a method 600 according to some embodiments of the present disclosure for processing access addresses of corrupted BLE packets using RE-BEC and CRC-EC techniques to increase the number of corrupted packets available for bit error correction is shown. Method 600 can be executed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, processor, processing device, central processing unit (CPU), multi-core processor, system-on-a-chip (SoC), etc.), software (e.g., instructions that run / execute on the processing device), firmware (e.g., microcode), or a combination thereof. In some embodiments, method 600 may be executed by receiver 102 or a processing device included in receiver 102 (e.g., Figure 12 The processing device 1211 shown in the figure is used to perform the operation.

[0047] At box 601, method 600 receives an access address that identifies the recipient of the packet. The standard requires that the received access address match the access address assigned to the device for use by the device. This requirement limits the packet recovery potential of error correction techniques because the access address is unprotected and 4 bytes in length. For example, in the case of BER = 0.005, there is a 15% probability of at least one bit error in the 4-byte access address. These are packets that may otherwise be correct or already facilitate the resolution of error-free PDUs.

[0048] At box 603, method 600 determines whether the received access address differs from the assigned access address by more than one bit. The access address assigned to the device must differ from any other access address currently in use by more than one bit. Therefore, if the received access address differs from the assigned access address by more than one bit, the packet is likely to be sent to another device and the packet may be discarded. Method 600 may request a retransmission at box 617.

[0049] If the received access address differs from or exactly matches the allocated access address by one bit, method 600 receives the PDU of the packet and makes the PDU available for payload reconstruction using BEC technology. At block 605, method 600 performs RE-BEC to reconstruct the payload based on the received PDU along with any other previously buffered PDUs associated with the packet whose received access address differs from the allocated access address by less than one bit.

[0050] At box 607, method 600 determines whether the CRC of the PDU reconstructed via RE-BEC passes CRC check. If the CRC is zero, indicating that the reconstructed PDU is error-free, method 600 at box 613 determines whether at least one of the packets used for payload reconstruction via RE-BEC has an error-free access address. Verifying the existence of at least one packet with an error-free access address allows method 600 to pass any access address-related consistency tests while maximizing error correction potential. If the verification is successful, method 600 sends an ACK signal at box 615. If the verification fails, the method requests a retransmission at box 617.

[0051] If, at box 607, the CRC of the PDU reconstructed using RE-BEC is not zero, then method 600 invokes CRC-EC at box 609 to perform further bit correction. At box 611, method 600 determines whether the CRC of the PDU reconstructed using CRC-EC passes the CRC check. If the CRC is not zero, the payload reconstructed using RE-BEC and CRC-EC techniques is still not error-free, and method 600 requests a retransmission at box 617. If the CRC is zero, then method 600 determines at box 613 whether at least one of the packets used for payload reconstruction using RE-BEC and CRC-EC techniques has an error-free access address. If this verification succeeds, method 600 sends an ACK signal at box 615. If this verification fails, method 600 requests a retransmission at box 617.

[0052] Figure 7 A flowchart of a method 700 for correcting the length field of corrupted BLE packets using RE-BEC and CRC-EC techniques to increase the number of corrupted packets available for bit error correction, according to some embodiments of this disclosure, is shown. Method 700 can be executed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, processor, processing device, central processing unit (CPU), multi-core processor, system-on-a-chip (SoC), etc.), software (e.g., instructions that run / execute on the processing device), firmware (e.g., microcode), or a combination thereof. In some embodiments, method 700 may be executed by receiver 102 or a processing device included in receiver 102 (e.g., Figure 12 The processing device 1211 shown in the figure is used to perform the operation.

[0053] At box 701, method 700 receives a one-byte length field in the header of a packet that indicates the length of the PDU. Because the CRC checksum of the packet is calculated over the PDU including the length field, the reliability of the length field is unknown before the CRC is calculated after data reception. Therefore, an error occurring only in the length field of the PDU could result in an incorrect amount of data being received from the PDU and subsequent incorrect CRC checksum calculations.

[0054] At block 703, method 700 determines whether the channel is reliable. In one aspect, method 700 may determine whether the channel is reliable based on statistics of corrupted packets or the number of retransmissions required to receive or reconstruct error-free packets. If the channel is deemed reliable, method 700 specifies the length of the PDU at block 705 as the minimum of the received length field and the maximum allowed length. The maximum allowed length of the PDU is typically limited by an exchange between the receiver and transmitter during link establishment. Throughput is typically maximized when the data contained in the PDU is also maximized. Method 700 continues to receive packets including the PDU based on the specified length.

[0055] On the other hand, if the channel is considered unreliable, it will be recommended to use the previously error-free decoded length field to help determine the current length field. Since the length field is only 8 bits, the probability that it contains more than one error bit is low, even under very poor channel conditions. Meanwhile, if the current decoded length field differs by one bit from the previously correctly decoded length field, a bit error is likely present. At box 707, method 700 determines whether the current decoded length field differs from the last valid length field by more than one bit. If this condition is true, the current decoded length field is passed as is to box 705 to be used as the specified length for receiving packets.

[0056] At box 709, if the current decoded length field is approximately one bit different from the last valid length field, method 700 designates the current length as the last valid length field based on the high probability that the last valid length field was still transmitted as the length field of the current packet but has been corrupted by a bit error. Therefore, method 700 corrects the current decoded length field to be equal to the last valid length field. At box 711, the method receives packets including the PDU based on the corrected length.

[0057] At box 713, method 700 determines whether the CRC of the PDU received with the specified length passes the CRC check. If the CRC is zero, indicating that the PDU is error-free, method 700 sets the last valid length field to the currently specified length at box 715. The currently specified length may have been corrected at box 709 or may be the unchanged length received at box 705. Method 700 then sends an ACK signal at box 717.

[0058] If the CRC is not zero, method 700 performs RE-BEC at box 719 to reconstruct the payload based on the received PDU along with any other previously buffered PDUs. On the other hand, if the CRC is not zero and the currently specified length is corrected by box 709, method 700 may request a retransmission at box 727 to bypass the reconstruction of the payload using BEC techniques.

[0059] At 721, method 700 determines whether the CRC of the PDU reconstructed using RE-BEC technology passes CRC check. If the CRC is zero, indicating that the reconstructed PDU is error-free, the method sends an ACK signal at box 717. If the CRC of the PDU reconstructed using RE-BEC technology is not zero, method 700 invokes CRC-EC technology at box 723 to perform further bit correction. At 725, method 723 determines whether the CRC of the PDU reconstructed using CRC-EC technology passes CRC check. If the CRC is not zero, the payload reconstructed using RE-BEC and CRC-EC technologies is still not error-free, and method 700 requests a retransmission at box 727. Otherwise, the method sends an ACK signal at box 717.

[0060] Figure 8 Example generation of accumulated soft-bit packets and creation of majority decision packets using RE-BEC technology for operating on corrupted packets, according to some embodiments of this disclosure, are illustrated. Transmitters, for example... Figure 1 Transmitter 101 can send an radio frequency signal carrying the original BLE packet 801 to a receiver, such as receiver 102. Receiver 102 can receive packet 811 and perform a CRC check to determine whether packet 811 is a correctly received packet of the original packet 801 without bit errors. In one embodiment, packet 811 can be a corrupted packet including one or more bit errors, such as bit error 8111. Therefore, the CRC at receiver 102 will fail. Receiver 102 can generate a cumulative packet 812 and a majority decision packet (MDP) 813 based on packet 811. When receiver 102 only receives packet 811, the cumulative packet 812 and MDP 813 can be the same as the received packet 811.

[0061] Because packet 811 is a corrupted packet of the original packet 801, receiver 102 can request transmitter 101 to retransmit the original packet 801. Receiver 102 can receive the retransmitted packet 821 of the original packet 801. Receiver 102 can perform a CRC check to determine if the received retransmitted packet 821 is correct. The received retransmitted packet 821 may be a corrupted packet containing one or more bit errors, such as bit error 8211. Receiver 102 can generate an accumulated packet 822 including soft bits based on packet 811 and retransmitted packet 821.

[0062] On one hand, receiver 102 can generate cumulative packet 822 by performing bitwise decimal addition on damaged packet 811 and received retransmission packet 821 to generate soft bits in cumulative packet 822. For example, as Figure 8 As shown, packet 811 may include the bit stream "0 1 1 0 1 0 0 0 1 0 1 1 01 1", and at the corresponding bit positions, retransmission packet 821 may include the bit stream "0 1 1 0 0 0 00 1 0 1 1 0 0 1". Receiver 102 can add the bits in packet 811 to the corresponding bits in retransmission packet 821 to generate a cumulative packet 822 including the soft bit stream "0 2 2 0 1 0 0 0 2 0 2 2 0 1 2", as shown. Figure 8 As shown. In this example, bit 8112 in packet 811 is 1, and bit 8212 at the corresponding bit position in retransmitted packet 821 is also 1. Therefore, the soft bit 8221 at the corresponding bit position in accumulated packet 822 has a value of 2 (i.e., 1+1). On one hand, receiver 102 can compare corrupted packet 811 and received retransmitted packet 821 to identify bit positions with different bit values. The identified bit positions can indicate possible bit errors.

[0063] On one hand, receiver 102 can generate MDP 823 based on accumulated packets 822. MDP 823 can be used as a guess of the original packet 801. Each soft bit in accumulated packets 822 can indicate the confidence level of the corresponding bit in MDP 823. For example, in the first transmission, bit 8112 is 1, and in the second transmission (first retransmission), bit 8212 at that bit position is also 1. Therefore, there is a higher probability that the correct bit at that bit position is 1 rather than 0, because the bit value at that bit position is the same in both transmissions (one original transmission and one retransmission). Therefore, a soft bit 8221 with a value of 2 can indicate that the correct bit at that bit position is 1 with a higher confidence level. Therefore, receiver 102 can determine that in MDP 823, bit 8231 (the guess of the correct bit) at that bit position is 1.

[0064] On the other hand, in the first transmission, bit 8113 is 1, and in the second transmission (first retransmission), bit 8211 at that bit position is 0. Therefore, at that bit position, it is uncertain whether the correct bit at that position is 1 or 0, because the bit value at that bit position is different in the two transmissions. Therefore, the soft bit 8222 with a value of 1 can indicate to receiver 102 that it may be uncertain whether the correct bit at that position is 1 or 0. Therefore, receiver 102 can determine that in MDP 823, bit 8232 (a guess of the correct bit) at that bit position could be 1 or 0, as indicated by the "?". Receiver 102 can set bit 8232 in MDP 823 to 1 or 0 as a guess for that bit.

[0065] On one hand, receiver 102 can request more than one retransmission of the original packet 801 to gather more useful information to determine the location of bit errors in the received corrupted packets. For example, receiver 102 can request a second retransmission of the original packet 801 and receive a retransmission packet 831 that may contain one or more bit errors. Receiver 102 can generate a cumulative packet 832 based on packet 811, the received retransmission packets 821 and 831. Similar to what has been described above, receiver 102 can generate the cumulative packet 832 by performing a bitwise decimal addition on packet 811 and the received retransmission packets 821 and 831. For example, if bit 8311 in packet 831 is 1, then the soft bit 8321 at the corresponding bit position in the cumulative packet 832 will have a value of 2 (i.e., 1+0+1).

[0066] Furthermore, similar to that described above, receiver 102 can generate MDP 833 based on accumulated packets 832. MDP 833 can be used as a guess of the original packet 801. For example, a soft bit 8321 with a value of 2 can indicate that the correct bit at that position is 1 with a higher confidence level. This is because in three transmissions (one original transmission and two retransmissions), two of the three bit values ​​at that position (i.e., bits 8113 and 8311) are 1. Therefore, receiver 102 can determine that in MDP 833, bit 8331 (the guess of the correct bit) at that position is 1.

[0067] Similarly, receiver 102 can request a third retransmission and receive retransmission packet 841 that may contain one or more bit errors. Receiver 102 can generate a cumulative packet 842 based on the four received corrupted packets (811, 821, 831, and 841). Furthermore, receiver 102 can generate an MDP 843 based on the cumulative packet 842. MDP 843 can be used as a best guess of the original packet 801.

[0068] On the one hand, for a total of N transmissions (1 original transmission + (N-1) retransmissions), when N is even, if the value of the soft bit in the accumulated packet is higher than... The corresponding bit in the generated MDP will be 1; if the soft bit value is equal to The corresponding bit in the generated MDP can be 1 or 0; if the soft bit value is less than The corresponding bit in the generated MDP will then be 0. For example, such as Figure 8 As shown, when there are a total of 4 transmissions of the original packet 801, if the soft bit in the cumulative packet 842 has a value of 3 or 4, the corresponding bit in the generated MDP 843 is 1; if the soft bit in the cumulative packet 842 has a value of 2, the corresponding bit in the generated MDP 843 can be 1 or 0, as indicated by "?"; if the soft bit in the cumulative packet 842 has a value of 0 or 1, the corresponding bit in the generated MDP 843 is 0. In another example, when N is odd, if the value of the soft bit in the cumulative packet is equal to or greater than... If the corresponding bit in the generated MDP is 1, then the corresponding bit in the generated MDP will be 0; otherwise, the corresponding bit in the generated MDP will be 0.

[0069] After generating the MDP, a CRC is calculated to determine if any errors remain. Assuming the BER is independent of bit position, the probability of a bit error falling in the same position is very small and decreases with each retransmission. Therefore, the error correction capability increases with the number of retransmissions.

[0070] Figure 9 An example CRC-EC technique according to some embodiments of this disclosure is illustrated, which operates on accumulated soft bit blocks from a RE-BEC technique to arrange possible bit error positions to correct bit errors. In the event that the CRC check fails after RE-BEC, the CRC-EC technique is invoked, such as... Figure 4 As shown in box 415. CRC-EC is a low-complexity algorithm that arranges the possible bit error positions and checks the CRC results to identify error-free combinations.

[0071] like Figure 9 As shown, at box 907, a 24-bit non-zero CRC checksum 909 from the MDP 901 created by RE-BEC is obtained as a reference. High-risk or most likely bit error positions are identified 905 from the accumulated soft bit packets (ASBP) 903 from RE-BEC. If ASBP(i) is the i-th bit of ASBP, and T is the total number of transmissions accumulated into ASBP, then...

[0072] ASBP(i) = Possible errors, in In this case, S is a sensitivity parameter and can be set according to T and the maximum error location capacity configured for CRC-EC. On one hand, S = 0, and the maximum number of error locations considered in CRC-EC is 10.

[0073] Once a potential bit error position 905 is identified, the corresponding pre-computed single bit error corrector is extracted. All combinations are then permuted, and the permutation corrector 927 is compared with the non-zero CRC remainder 909 generated from MDP 901. To further reduce complexity, a Gray table can be used to sort the permutations, thus requiring only a single XOR operation to obtain the next permutation corrector 927 for comparison. The Gray table size can be 2^(maximum position) - 1, where the maximum position is currently set to 10, resulting in a total size of 1023 bytes. The setting of a maximum position of 10 represents a trade-off between complexity and performance.

[0074] For BLE, the maximum total bytes covered by the CRC, including the CRC itself, are 260 bytes or 2080 bits. To perform CRC-EC, a CRC corrector 923 is needed for each individual bit; for a 3-byte CRC, this requires a 6240-byte table. The table required for packets smaller than the maximum length is a subset of the maximum table. Therefore, this maximum table contains everything needed to support all possible packet sizes. A corrector table 921 for all 2080 bits can be pre-computed. The CRC-EC technique can address the corrector table 921 using individual bit error positions 905 for each permutation of possible bit error positions to extract the corresponding individual bit error corrector 923. Individual bit error correctors 923 can be selected via box 925 based on a specific permutation of possible bit error positions to be XORed, generating a permutation corrector 927.

[0075] At box 911, if the permutation corrector matches the non-zero CRC remainder 909 generated according to MDP 901, then at box 913, the corresponding permutation of possible bit-error positions can be stored to reconstruct the error-free payload. Otherwise, if no match exists, CRC-EC can compute a permutation corrector for the next permutation of the possible bit-error positions. At box 915, after computing the permutation correctors for all permutations, the CRC-EC technique can verify whether a match is found for only a single permutation. If this condition is true, then at box 919, the bits corresponding to this permutation of the possible bit-error positions in MDP 901 are flipped to reconstruct the error-free payload. Otherwise, if no single permutation solution exists, the CRC-EC technique cannot correct the bit errors and declares a CRC failure at box 917.

[0076] Figure 10The present disclosure illustrates an increase in throughput on a 1 Mbps BLE link by using header processing to reduce header error rate and RE-BEC and CRC-EC techniques to correct bit errors in corrupted packets, according to some embodiments of the present disclosure.

[0077] As shown, the LE data link drops to 97 dB attenuation or BER = 0.00226 (0.226%). Using the described technique, the link dropout point extends to 103 dB or BER = 0.0343 (3.43%), an improvement of at least 6 dB. RE-BEC throughput drops rapidly to 1 / 3 and then plateaus as a total of 3 transmissions are required before it becomes effective. The addition of CRC-EC saves 1 transmission with up to 97 dB attenuation, thus providing a significant throughput improvement in this transition region. However, apart from this, no further improvement is seen as the total number of unreliable bit locations begins to exceed the model's capacity.

[0078] Figure 11 A flowchart of method 1100 for processing access address and length fields of corrupted BLE packets to increase the number of corrupted packets available for packet reconstruction, according to some embodiments of this disclosure, is shown. Method 1100 can be executed by processing logic that may include hardware (e.g., circuitry, dedicated logic, programmable logic, processor, processing device, central processing unit (CPU), multi-core processor, system-on-a-chip (SoC), etc.), software (e.g., instructions that run / execute on the processing device), firmware (e.g., microcode), or a combination thereof. In some embodiments, method 400 may be executed by receiver 102 or a processing device included in receiver 102 (e.g., ...). Figure 12 The processing device 1211 shown in the figure is used to perform the operation.

[0079] At box 1101, method 1100 processes the header fields of the received packet to correct false location errors in the header fields. The received packet may include the original packet or the original packet retransmitted once or more.

[0080] At box 1103, method 1100 receives the payload of the received packet based on the processed header fields of the received packet.

[0081] At box 1105, method 1100 determines whether the payload of the received packet is corrupted.

[0082] At box 1107, if the payload of the received packet is corrupted, method 1100 reconstructs the uncorrupted payload of the original packet based on a combination of the payload of the original packet and the payload of one or more retransmissions.

[0083] Figure 12 This is a block diagram illustrating a Bluetooth device 1211 with hardware and software drivers according to some embodiments of the present disclosure, the hardware and software drivers being deployed to operate in a Bluetooth link assisted by header decoding and bit error correction techniques. Bluetooth device 1211 may be receiver 102 and may practice the operations of methods 4, 6, 7, and 11.

[0084] Bluetooth device 1211 may include one or more antennas 1212, Bluetooth hardware 1213, and Bluetooth driver 1215. Bluetooth driver 1215 may include a Bluetooth Tx / RX controller 1217, header processing logic 1221, and BEC logic 1219. Bluetooth hardware 1213 may be configured to transmit or receive BLE packets on an operating channel via antenna 1212.

[0085] The Bluetooth Tx / Rx controller 1217 can be configured to demodulate and decode received BLE packets, as well as encode and modulate them for transmission. The header processing logic 1221 can be configured to process header fields such as the access address and length of the BLE packet to reduce the header error rate and increase the number of corrupted BLE packets that can be reconstructed from the payload via the BEC logic 1219. The BEC logic 1219 can be configured to implement RE-BEC and CRC-EC techniques to correct bit errors in the payload of corrupted BLE packets.

[0086] In one embodiment, the Bluetooth device 1211 may include memory and processing devices. The memory may be synchronous dynamic random access memory (DRAM), read-only memory (ROM), or other types of memory that can be configured to store code for performing the functions of the Bluetooth driver 1215. The processing devices may be provided by one or more general-purpose processing devices such as microprocessors, central processing units, etc. In illustrative examples, the processing devices may include complex instruction set computing (CISC) microprocessors, reduced instruction set computing (RISC) microprocessors, very long instruction word (VLIW) microprocessors, or processors implementing other instruction sets or combinations of instruction sets. The processing devices may also include one or more special-purpose processing devices such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, etc. The processing devices may be configured to perform the operations described herein according to one or more aspects of this disclosure to perform the operations and steps discussed herein.

[0087] Unless otherwise expressly stated, terms such as “receive,” “generate,” “verify,” “execute,” “correct,” “identify,” etc., refer to actions and processes performed or realized by computing devices that manipulate data representing physical (electronic) quantities in the registers and memories of the computing device and convert them into other data representing physical quantities similarly represented in the memory or registers of the computing device or other such information storage, transmission, or display devices.

[0088] The examples described herein also relate to apparatus for performing the operations described herein. This apparatus may be specially constructed for a desired purpose, or it may comprise a general-purpose computing device selectively programmed by a computer program stored in a computing device. Such a computer program may be stored in a computer-readable, non-transitory storage medium.

[0089] Some implementations can be embodied as computer program products, which may include instructions stored on a machine-readable medium. These instructions can be used to program a general-purpose processor or a special-purpose processor to perform the described operations. Machine-readable media include any mechanism for storing or transmitting information in a machine-readable form (e.g., software, processing applications). Machine-readable media may include, but are not limited to, magnetic storage media (e.g., floppy disks); optical storage media (e.g., CD-ROMs); magneto-optical storage media; read-only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or another type of medium suitable for storing electronic instructions. Machine-readable media may be referred to as non-transitory machine-readable media.

[0090] The methods and illustrative examples described herein are not inherently related to any particular computer or other device. Various general-purpose systems can be used based on the teachings described herein, or it can be demonstrated that more specialized devices can be constructed to perform the required method steps. The necessary structures for various such systems will emerge as illustrated in the description above.

[0091] The above description is intended to be illustrative and not restrictive. Although this disclosure has been described with reference to specific illustrative examples, it will be appreciated that this disclosure is not limited to the described examples. The scope of this disclosure should be determined by referring to the appended claims and the full scope of their equivalents.

[0092] As used herein, unless the context clearly indicates otherwise, the singular forms “a,” “an,” and “the” are intended to also include the plural forms. It will also be understood that the terms “comprise,” “comprising,” “include,” and / or “including,” as used herein, specify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. Furthermore, as used herein, the terms “first,” “second,” “third,” “fourth,” etc., are intended as markers to distinguish different elements and may not necessarily have an ordinal meaning as specified by their numerical designation. Therefore, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting.

[0093] It should also be noted that in some alternative implementations, the functions / actions may not occur in the order shown in the figures. For example, depending on the functions / actions involved, the two figures shown consecutively may actually be executed substantially simultaneously or may sometimes be executed in reverse order.

[0094] Although the method operations are described in a specific order, it should be understood that other operations may be performed between the described operations, the described operations may be adjusted so that they occur at slightly different times, or the described operations may be distributed in a system that allows the processing operations to occur at various intervals associated with the processing.

[0095] Various units, circuits, or other components may be described or claimed as being "configured to" or "configurable to" perform one or more tasks. In such a context, the phrase "configured to" or "configurable to" is used to indicate a structure by indicating that the unit / circuit / component includes a structure (e.g., a circuit) that performs one or more tasks during operation. Thus, even if the specified unit / circuit / component is currently inoperable (e.g., not switched on), it can be said that the unit / circuit / component is configured to perform a task or can be configured to perform a task. Units / circuit / components used with the language "configured to" or "configurable to" include hardware—e.g., circuits, memory storing program instructions executable to perform operations, etc. The statement that a unit / circuit / component is "configured to" or "configurable to" perform one or more tasks is explicitly not intended to invoke paragraph 6 of 35 U.S.SC112 for that unit / circuit / component. Additionally, "configured to" or "configurable to" can include general-purpose structures (e.g., general-purpose circuitry) manipulated by software and / or firmware (e.g., an FPGA or a general-purpose processor executing the software) to operate in a manner capable of performing the tasks in discussion. "Configured to" can also include adapting a manufacturing process (e.g., a semiconductor manufacturing facility) to manufacture devices (e.g., integrated circuits) suitable for implementing or performing one or more tasks. It is explicitly stated that "configurable to" is not intended to apply to blank media, unprogrammed processors or unprogrammed general-purpose computers, or unprogrammed programmable logic devices, programmable gate arrays, or other unprogrammed devices, unless accompanied by a programmed medium that confers the unprogrammed device to perform the disclosed functions.

[0096] For illustrative purposes, the foregoing description has been described with reference to specific embodiments. However, the illustrative discussion above is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above teachings. Embodiments were chosen and described to best illustrate the principles of these embodiments and their practical application, thereby enabling those skilled in the art to best utilize these embodiments and various modifications that may be suitable for the particular intended use. Therefore, these embodiments are to be considered illustrative rather than restrictive, and the invention is not limited to the details given herein, but modifications may be made within the scope of the appended claims and their equivalents.

Claims

1. A method of correcting bit errors, comprising: processing a corrupted header field of a received packet to correct an assumed bit error in the corrupted header field by assuming a corrected header field such that a payload of the received packet is available for payload reconstruction, the received packet comprising an original packet or one or more retransmissions of the original packet; receiving the payload of the received packet based on the assumed corrected header field; determining whether the payload of the received packet is corrupted; and in response to determining that the payload of the received packet is corrupted, reconstructing an uncorrupted payload of the original packet based on a combination of the payload of the original packet and the payload of the one or more retransmissions.

2. The method of claim 1, wherein, the corrupted header field comprises an access address indicating an intended recipient of the received packet, and wherein processing the corrupted header field of the received packet to correct the assumed bit error in the corrupted header field comprises: determining that the access address differs from an assigned address by one bit; and receiving the payload of the received packet by assuming a bit error that causes the access address to differ from the assigned address by one bit.

3. The method of claim 2, wherein, reconstructing the uncorrupted payload of the original packet comprises: determining that the access address of the original packet and at least one of the one or more retransmissions matches the assigned address.

4. The method of claim 1, wherein, the corrupted header field comprises a length field indicating a length of a payload of the received packet, and wherein processing the corrupted header field of the received packet to correct the assumed bit error in the corrupted header field comprises: determining a low channel reliability of a channel through which the received packet was received; determining whether the length field differs from a last valid length field by one bit or less; in response to determining that the length field differs from the last valid length field by one bit or less, updating the length field to the last valid length field; and receiving the payload of the received packet indicated by the updated length field.

5. The method of claim 4, wherein, determining whether the payload of the received packet is corrupted comprises: determining whether the payload of the received packet passes a cyclic redundancy check (CRC); in response to determining that the payload of the received packet passes the CRC, sending an acknowledgement signal to indicate that the received packet is error-free; in response to determining that the payload of the received packet fails the CRC, discarding the received packet; and requesting a retransmission of the original packet.

6. The method of claim 4, further comprising: in response to determining that the length field differs from the last valid length field by more than one bit, maintaining the length field; receiving the payload of the received packet indicated by the length field; determining whether the payload of the received packet passes a cyclic redundancy check (CRC); and in response to determining that the payload of the received packet passes the CRC, setting the last valid length field to the length field. ​ 7. The method of claim 1, wherein, reconstructing the undamaged payload of the original packet based on a combination of the payload of the original packet and the payload of the one or more retransmissions includes: generating a cumulative payload based on the payload of the original packet and the payload of the one or more retransmissions, the cumulative payload accumulating identical bits of the payload of the original packet and the payload of the one or more retransmissions; generating a decision packet for the undamaged payload based on the cumulative payload; and verifying that the decision packet is error free.

8. The method of claim 7, further comprising: determining that the decision packet has at least one error bit; identifying a hypothesized bit error position based on the cumulative payload; generating a plurality of permutations of the identified hypothesized bit error position; generating a plurality of error syndromes corresponding to the plurality of permutations of the identified hypothesized bit error position; and reconstructing the undamaged payload by comparing the plurality of error syndromes to an error syndrome associated with the decision packet. The received packet includes a Bluetooth Low Energy (BLE) packet.

9. The method of claim 1, wherein, 10. A receiver comprising: a wireless interface configured to receive one or more packets; a processing device configured to: process a damaged header field of a received packet to correct for a hypothesized bit error in the damaged header field by assuming a corrected header field such that a payload of the received packet is available for payload reconstruction, the received packet including an original packet or one or more retransmissions of the original packet; receive the payload of the received packet based on the assumed corrected header field; determine whether the payload of the received packet is damaged; and in response to the payload of the received packet being damaged, reconstruct an undamaged payload of the original packet based on a combination of the payload of the original packet and the payload of the one or more retransmissions. The damaged header field includes an access address indicating an intended recipient of the received packet, and wherein the processing device configured to process the damaged header field of the received packet to correct for the hypothesized bit error in the damaged header field includes the processing device configured to: determine that the access address differs from an assigned address by one bit; and 11. The receiver of claim 10, wherein, receive the payload of the received packet based on an assumption that a bit error caused the access address to differ from the assigned address by one bit. The processing device configured to reconstruct the undamaged payload of the original packet includes the processing device configured to: determine that the access address of at least one of the original packet and the one or more retransmissions matches the assigned address.

12. The receiver of claim 11, wherein, ​ ​ 13. The receiver of claim 10, wherein, the corrupted header field of the received packet to correct the hypothesized bit error in the corrupted header field includes the processing device being configured to: determine a low channel reliability of a channel through which the received packet was received by the wireless interface; determine whether the length field differs from a last valid length field by one bit or less; update the length field to the last valid length field in response to the length field differing from the last valid length field by one bit or less; and receive a payload of the received packet indicated by the updated length field.

14. The receiver of claim 13, wherein, the processing device being configured to determine whether the payload of the received packet is corrupted includes the processing device being configured to: determine whether the payload of the received packet passes a cyclic redundancy check (CRC); send an acknowledgement signal to indicate that the received packet is error-free in response to the payload of the received packet passing the CRC; discard the received packet in response to the payload of the received packet failing the CRC; and request a retransmission of the original packet.

15. The receiver of claim 13, wherein, the processing device is further configured to: maintain the length field in response to the length field differing from the last valid length field by more than one bit; receive a payload of the received packet indicated by the length field; determine whether the payload of the received packet passes a cyclic redundancy check (CRC); and set the last valid length field to the length field in response to the payload of the received packet passing the CRC.

16. The receiver of claim 10, wherein, the processing device being configured to reconstruct the uncorrupted payload of the original packet based on a combination of the payload of the original packet and the payload of the one or more retransmissions includes the processing device being further configured to: generate a cumulative payload based on the payload of the original packet and the payload of the one or more retransmissions, the cumulative payload accumulating identical bits of the payload of the original packet and the payload of the one or more retransmissions; generate a decision packet for the uncorrupted payload based on the cumulative payload; and verify that the decision packet is error-free.

17. The receiver of claim 16, wherein, the processing device is further configured to: determine that the decision packet has at least one error bit; identify a hypothesized bit error location based on the cumulative payload; generate a plurality of permutations of the identified hypothesized bit error location; generate a plurality of error syndromes corresponding to the plurality of permutations of the identified hypothesized bit error location; and compare the plurality of error syndromes to an error syndrome associated with the decision packet to reconstruct the uncorrupted payload. the wireless interface includes a Bluetooth Low Energy (BLE) interface, and the received packet includes a BLE packet.

18. The receiver of claim 10, wherein, 19. A communication device comprising: one or more antennas; and a processing device configured to: receive a packet from a wireless interface; determine that a header field of the received packet is corrupted; determine that a payload of the received packet is not corrupted; request a retransmission of the original packet; and reconstruct an uncorrupted payload of the original packet based on a combination of the payload of the original packet and the payload of the one or more retransmissions. a processing device connected to the one or more antennas, the processing device configured to: process a corrupted header field of a received packet to correct for an assumed bit error in the corrupted header field by assuming a corrected header field such that a payload of the received packet is available for payload reconstruction, the received packet comprising an original packet or one or more retransmissions of the original packet; receive the payload of the received packet based on the assumed corrected header field; determine whether a payload of the received packet is corrupted; and in response to the payload of the received packet being corrupted, reconstruct an uncorrupted payload of the original packet based on a combination of a payload of the original packet and a payload of the one or more retransmissions.

20. The communication device of claim 19, wherein, the corrupted header field comprises an access address indicating an intended recipient of the received packet, and wherein the processing device configured to process the corrupted header field of the received packet to correct for the assumed bit error in the corrupted header field comprises the processing device configured to: determine that the access address differs from an assigned address by one bit; and receive a payload of the received packet based on an assumption that a bit error caused the access address to differ from the assigned address by one bit, and wherein the processing device configured to reconstruct the uncorrupted payload of the original packet comprises the processing device configured to: determine that the access address of the original packet and at least one of the one or more retransmissions matches the assigned address.

Citation Information

Patent Citations

  • Error correction for data packets transmitted using an asynchronous connection-less communication link

    US10367609B2

  • Robust connection for low-energy wireless networks

    US9647689B2