IP Library › Granted Patent US 9,647,689
Granted Patent B2
US 9,647,689 · App. 14/598,000 · Granted May 9, 2017

Robust connection for low-energy wireless networks

Inventors: Ariton E. Xhafa (Plano, TX); Jing-Fei Ren (Plano, TX)
Assignee: TEXAS INSTRUMENTS INCORPORATED
H03M13/09H04B7/26H04L1/0061H04L1/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,647,689
App. No.
14/598,000
Granted
May 9, 2017
Kind
B2
Abstract

A system and method for detecting and correcting bit errors in received packets is disclosed. The presence of bit errors in a received packet are detected using CRC bits carried in the received packet. One or more erroneous bits may be identified in a header of the packet. The erroneous bits are corrected by setting the erroneous bits to match the expected bit settings. The corrected packet is then error-checked using the CRC bits. Errors may be detected in two sequential packets where a second packet is a retransmission of a first packet. Differing bits are identified in the two sequential packets. A packet is modified to include additional combinations of the differing bits and then error-checked with each combination of the differing bits. If a modified packet passes error checking, then process the modified packet.

Claims (107)

1. A method, comprising:

in a device adapted to communicate in a master-slave relationship with remote devices,

detecting the presence of bit errors in a received packet using an error-detecting code carried in the received packet;

identifying one or more erroneous bits in a header of the packet, wherein the one or more erroneous bits do not match expected bit settings established in a protocol standard or in previously received packets;

correcting the one or more erroneous bits in the packet by setting the erroneous bits to match the expected bit settings; and

error-checking a corrected packet using the error-detecting code;

further comprising:

if the corrected packet passes the error checking, processing the corrected packet; and

if the corrected packet fails to pass the error checking, requesting retransmission of the received packet from the remote device.

2. A method, comprising:

in a device adapted to communicate in a master-slave relationship with remote devices,

detecting the presence of bit errors in a received packet using an error-detecting code carried in the received packet;

identifying one or more erroneous bits in a header of the packet, wherein the one or more erroneous bits do not match expected bit settings established in a protocol standard or in previously received packets;

correcting the one or more erroneous bits in the packet by setting the erroneous bits to match the expected bit settings; and

error-checking a corrected packet using the error-detecting code;

wherein the erroneous bits are located in a reserved field of the header, the method further comprising:

setting all bits in the reserved field to zero.

3. A method, comprising:

in a device adapted to communicate in a master-slave relationship with remote devices,

detecting the presence of bit errors in a received packet using an error-detecting code carried in the received packet;

identifying one or more erroneous bits in a header of the packet, wherein the one or more erroneous bits do not match expected bit settings established in a protocol standard or in previously received packets;

correcting the one or more erroneous bits in the packet by setting the erroneous bits to match the expected bit settings; and

error-checking a corrected packet using the error-detecting code;

further comprising:

receiving a first packet carrying unfragmented data for an application, the first packet having a first value in a first packet length field;

confirming a successful error-check for the first packet;

receiving a second packet carrying additional unfragmented data for the application, the second packet having a second value in a packet length field that does not match the first value;

detecting a failed error-check for the second packet;

modifying the second packet by setting the second packet length field to the first value; and

error-checking the modified second packet using the error-detecting code.

4. The method of claim 3 , further comprising:

identifying unexpected values in a sequence number field and in a next expected sequence number field of a packet that failed error-checking; and

setting the values of the sequence number field and the next expected sequence number field to expected values.

5. The method of claim 3 , further comprising:

identifying unexpected value of a length field in a received control packet; and

setting the value of the length field to a value established by the protocol standard.

6. A method, comprising:

in a device adapted to communicate in a master-slave relationship with remote devices,

receiving two sequential packets with detected errors, wherein a second packet is a retransmission of a first packet;

comparing the two sequential packets to identify differing bits;

modifying the first or second packet to include one or more additional combinations of the differing bits;

error-checking modified packets with each combination of the differing bits; and

if a modified packet passes error checking, then processing the modified packet.

7. The method of claim 6 , wherein the device communicates using a Bluetooth low energy link layer, and wherein a cyclic redundancy check (CRC) is used to identify errors.

8. The method of claim 6 , wherein two differing bits are detected between the first and second packets, the first packet having a first combination of bits, the second packet having a second combination of bits, the method further comprising:

modifying the differing bits in the first or second packet to include a third combination of bits; and

error-checking the modified packet with the third combination of bits.

9. The method of claim 8 , further comprising:

if the modified packet with the third combination of bits fails error-checking, then modifying the differing bits in the first or second packet to include a fourth combination of bits; and

error-checking the modified packet with the fourth combination of bits.

10. The method of claim 6 , wherein if n differing bits are detected, then no more than (2 n −2) additional combinations of differing bits are evaluated by the device.

11. A device, comprising:

a circuit for receiving signals from another device using a Bluetooth low energy link layer;

a memory for storing received packet parameters; and

a processor adapted to perform operations on packets received from the other device, the processor operating to:

detect the presence of bit errors in a received packet using cyclic redundancy check (CRC) bits carried in the received packet;

identify one or more erroneous bits in a header of the packet, wherein the one or more erroneous bits do not match expected bit settings established in a protocol standard or in previously received packets;

correct the one or more erroneous bits in the packet by setting the erroneous bits to match the expected bit settings; and

error-check a corrected packet using the CRC bits;

wherein the processor is further adapted to:

if the corrected packet passes the error checking, process the corrected packet; and

if the corrected packet fails to pass the error checking, request retransmission of the received packet from the other device.

12. A device, comprising:

a circuit for receiving signals from another device using a Bluetooth low energy link layer;

a memory for storing received packet parameters; and

a processor adapted to perform operations on packets received from the other device, the processor operating to:

detect the presence of bit errors in a received packet using cyclic redundancy check (CRC) bits carried in the received packet;

identify one or more erroneous bits in a header of the packet, wherein the one or more erroneous bits do not match expected bit settings established in a protocol standard or in previously received packets;

correct the one or more erroneous bits in the packet by setting the erroneous bits to match the expected bit settings; and

error-check a corrected packet using the CRC bits;

wherein the erroneous bits are located in a reserved field of the header, the processor is further adapted to:

set all bits in the reserved field to zero.

13. A device, comprising:

a circuit for receiving signals from another device using a Bluetooth low energy link layer;

a memory for storing received packet parameters; and

a processor adapted to perform operations on packets received from the other device, the processor operating to:

detect the presence of bit errors in a received packet using cyclic redundancy check (CRC) bits carried in the received packet;

identify one or more erroneous bits in a header of the packet, wherein the one or more erroneous bits do not match expected bit settings established in a protocol standard or in previously received packets;

correct the one or more erroneous bits in the packet by setting the erroneous bits to match the expected bit settings; and

error-check a corrected packet using the CRC bits;

wherein the processor is further adapted to:

receive a first packet carrying unfragmented data for an application, the first packet having a first value in a first packet length field;

confirm a successful error-check for the first packet;

receive a second packet carrying additional unfragmented data for the application, the second packet having a second value in a packet length field that does not match the first value;

detect a failed error-check for the second packet;

modify the second packet by setting the second packet length field to the first value; and

error-check the modified second packet using the error-detecting code.

14. The device of claim 13 , wherein the processor is further adapted to:

identify unexpected values in a sequence number field and in a next expected sequence number field of a packet that failed error-checking; and

set the values of the sequence number field and the next expected sequence number field to expected values.

15. The device of claim 13 , wherein the processor is further adapted to:

identify unexpected value of a length field in a received control packet; and

set the value of the length field to a value established by the protocol standard.

16. A device, comprising:

a circuit for receiving signals from another device using a Bluetooth low energy link layer;

a memory for storing protocol data unit (PDU) parameters; and

a processor adapted to perform operations on the signals sent to or received from the other device, the processor operating to:

receive two sequential packets with detected errors, wherein a second packet is a retransmission of a first packet;

compare the two sequential packets to identify differing bits;

modify the first or second packet to include one or more additional combinations of the differing bits;

error-check modified packets with each combination of the differing bits; and

if a modified packet passes error checking, then process the modified packet.

17. The device of claim 16 , wherein two differing bits are detected between the first and second packets, the first packet having a first combination of bits, the second packet having a second combination of bits, and the processor further adapted to:

modify the differing bits in the first or second packet to include a third combination of bits;

error-check the modified packet with the third combination of bits;

if the modified packet with the third combination of bits fails error-checking, then modify the differing bits in the first or second packet to include a fourth combination of bits; and

error-check the modified packet with the fourth combination of bits.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: XHAFA, ARITON E.; REN, JING-FEI
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 034730/0708 →
Continuity (1)
Related Publication 20160210189A1 · Jul 21, 2016