IP Library Granted Patent US 8,004,430
Granted Patent B2
US 8,004,430 · App. 12/160,783 · Granted Aug 23, 2011

Coding scheme for serial data communications

Assignee: ST-Ericsson SA
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 8,004,430
App. No.
12/160,783
Granted
Aug 23, 2011
Kind
B2
Abstract

An encoding scheme generates an encoded nine bit code word from each input eight bit data word. The coding scheme is such that the encoded data words have advantageous properties, such as a minimum of two polarity transitions in each encoded data word, and a maximum of five bits without a polarity transition. Five of the bits from the input eight bit data word appear unchanged in the encoded data word, while the other four bits of the encoded data word are obtained by applying appropriate logical operators to the remaining three bits of the input data word in combination with two of the five bits that appear unchanged in the encoded data word. Exception codes can also be defined, that is, nine bit code words that cannot be obtained from any eight bit data word by means of the coding scheme, and can be used to embed control information into the data stream. For example, the exception codes may advantageously have six or seven bits without a polarity transition.

Claims (275)

1. A method of encoding data, the method comprising, for each input data byte of eight bits:

dividing the data byte into:

a first group of three bits, and

a second group of five bits; and

generating an output data word containing nine bits, wherein the nine bits include the first group of three bits from the input data byte, and wherein each possible output data word has a maximum runlength of 5 bits; and

the method further comprising:

dividing the second group of five bits into two unencoded bits and three encoded bits;

wherein the nine bits of the output data word further include the two unencoded bits from the second group of five bits from the data byte; and

wherein generating the output data word comprises:

applying logical operators to the second group of five bits from the data byte to obtain four further bits of the output data word.

2. A method as claimed in claim 1 , wherein the nine bits of the output data word comprise:

the first group of three bits from the input data byte;

the two unencoded bits from the second group of five bits of the input data byte;

sixth and seventh bits obtained by applying logical operators to a first of the unencoded bits and the three encoded bits in the input data byte; and

eighth and ninth bits obtained by applying logical operators to a second of the unencoded bits and the three encoded bits in the input data byte.

3. A method as claimed in claim 2 , wherein the two unencoded bits from the second group of five bits from the input data byte, the sixth and seventh bits, and the eighth and ninth bits appear in two blocks of three consecutive bits in the output data word.

4. A method as claimed in claim 3 , wherein the two unencoded bits from the second group of five bits from the input data byte, the sixth and seventh bits, and the eighth and ninth bits appear as the second, third and fourth, and seventh, eight and ninth bits in the output data word.

5. A method as claimed in claim 4 , wherein, in each possible output data word, there is a first polarity transition between the second and third bits or between the third and fourth bits and a second polarity transition between the seventh and eighth bits or between the eighth and ninth bits, while excluding the possibility that the first polarity transition is between the second and third bits while the second polarity transition is between the eighth and ninth bits.

6. A method as claimed in claim 3 , wherein the two unencoded bits from the second group of five bits from the input data byte, the sixth and seventh bits, and the eighth and ninth bits appear as the first, second and third, and sixth, seventh and eighth bits in the output data word.

7. A method as claimed in claim 6 , wherein, in each possible output data word, there is a first polarity transition between the first and second bits or between the second and third bits and a second polarity transition between the sixth and seventh bits or between the seventh and eighth bits, while excluding the possibility that the first polarity transition is between the first and second bits while the second polarity transition is between the seventh and eighth bits.

8. A method as claimed in claim 3 , wherein the two unencoded bits from the second group of five bits from the input data byte appear in different ones of the two blocks of three consecutive bits in the output data word.

9. A method as claimed in claim 2 , wherein the logical operators are such that there are at least two polarity transitions in each possible output data word.

10. A method as claimed in claim 2 , wherein the logical operators are such that there are at least two zeroes and at least two ones in each possible output data word.

11. A method as claimed in claim 2 , comprising: applying logical operators to the first of the unencoded bits and the group of three encoded bits in the input data byte to obtain the sixth and seventh bits according to the logic:

Y1=(˜Q1&˜Q2&˜X1)|(Q1&Q3)|(Q2&Q3)

Y2=(˜Q1&˜Q2&˜X1)|(Q1&˜Q3)|(Q2&˜Q3)

and applying logical operators to the second of the unencoded bits and the group of three encoded bits in the input data byte to obtain the eighth and ninth bits according to the logic:

Y3=(Q1&˜Q2)|(Q1&Q2&˜X2)|(˜Q2&Q3)

Y4=(˜Q1&Q2)|(Q1&Q2&˜X2)|(˜Q1&˜Q3),

wherein X 1 is the first of the two unencoded bits from the second group of five bits of the input data byte, X 2 is the second of the two unencoded bits from the second group of five bits of the input data byte, Q 1 , Q 2 and Q 3 are the group of three encoded bits in the input data byte, Y 1 and Y 2 are the sixth and seventh bits of the output data word, and Y 3 and Y 4 are the eighth and ninth bits of the output data word, and where AND=‘&’, OR=‘|’, and NOT=‘˜’.

12. A method of encoding data, the method comprising, for each input data byte of eight bits:

dividing the data byte into:

a first group of three bits, and

a second group of five bits; and

generating an output data word containing nine bits, wherein the nine bits include the first group of three bits from the input data byte, and wherein each possible output data word has a maximum runlength of 5 bits; and

wherein two unencoded bits from the second group of five bits from the input data byte appear in different ones of two blocks of three consecutive bits in the output data word.

13. A method of encoding data, the method comprising, for each input data byte of eight bits:

dividing the data byte into:

a first group of three bits, and

a second group of five bits; and

generating an output data word containing nine bits, wherein the nine bits include the first group of three bits from the input data byte, and wherein each possible output data word has a maximum runlength of 5 bits; and

wherein sixth and seventh bits appear in one of two blocks of three consecutive bits in the output data word, and eighth and ninth bits appear in another of the two blocks of three consecutive bits in the output data word.

14. A method of encoding data, the method comprising, for each input data byte of eight bits:

dividing the data byte into:

a first group of three bits, and

a second group of five bits; and

generating an output data word containing nine bits, wherein the nine bits include the first group of three bits from the input data byte, and wherein each possible output data word has a maximum runlength of 5 bits; and

applying logical operators to a first of two unencoded bits from the second group of five bits and a group of three encoded bits in the input data byte to obtain sixth and seventh bits according to the logic:

Y1=(˜Q1&˜Q2&˜X1)|(Q1&Q3)|(Q2&Q3)

Y2=(˜Q1&˜Q2&˜X1)|(Q1&˜Q3)|(Q2&˜Q3)

and applying logical operators to a second the two unencoded bits from the second group of five bits and the group of three encoded bits in the input data byte to obtain eighth and ninth bits according to the logic:

Y3=(Q1&˜Q2)|(Q1&Q2&˜X2)|(˜Q2&Q3)

Y4=(˜Q1&Q2)|(Q1&Q2&˜X2)|(˜Q1&˜Q3),

wherein X 1 is the first of the two unencoded bits from the second group of five bits of the input data byte, X 2 is the second of the two unencoded bits from the second group of five bits of the input data byte, Ql, Q 2 and Q 3 are the group of three encoded bits in the input data byte, Y 1 and Y 2 are the sixth and seventh bits of the output data word, and Y 3 and Y 4 are the eighth and ninth bits of the output data word, and where AND=‘&’, OR=‘|’, and NOT=‘˜’.

15. A method of transmitting data from a transmitter to a receiver, the method comprising:

encoding the data by a method comprising, for each input data byte of eight bits:

dividing the data byte into:

a first group of three bits, and

a second group of five bits; and

generating an output data word containing nine bits, wherein the nine bits include the first group of three bits from the input data byte, and wherein each possible output data word has a maximum runlength of 5 bits; and

including amongst the encoded data at least one exception code, comprising a nine bit word that can not be obtained from any input data byte by encoding the data in accordance with the method.

16. A method as claimed in claim 15 , wherein the exception code comprises a nine bit word having a runlength of 6 bits.

17. A method as claimed in claim 15 , wherein the exception code comprises a nine bit word having a runlength of 7 bits.

18. A method as claimed in claim 15 , wherein the exception code comprises a nine bit word having a runlength of 8 bits that, in combination with an adjacent encoded data word, can provide a runlength of up to 10 bits.

19. A method as claimed in claim 15 , wherein the exception code comprises a nine bit word having a runlength of 8 bits that, in combination with an adjacent encoded data word, can provide a runlength of up to 11 bits.

20. A method as claimed in claim 15 , wherein the exception code has a maximum runlength of 5 bits.

21. A method as claimed in claim 15 , wherein, in the exception code, there is a first polarity change between the second and third bits of the word, and a second polarity change between the eighth and ninth bits of the word, but the third and fourth bits are equal, as are the seventh and eighth bits, while the third and eighth bits have opposite polarities.

22. A transmitter, for receiving data in input data bytes of eight bits, and comprising an encoder, the encoder comprising logic for encoding the received data by a method comprising, for each input data byte of eight bits:

dividing the data byte into:

a first group of three bits, and

a second group of five bits; and

generating an output data word containing nine bits, wherein the nine bits include the first group of three bits from the input data byte, and wherein each possible output data word has a maximum runlength of 5 bits; and

the logic for encoding also:

dividing the second group of five bits into two unencoded bits and three encoded bits;

wherein the nine bits of the output data word further include the two unencoded bits from the second group of five bits from the data byte; and

wherein generating the output data word comprises:

applying logical operators to the second group of five bits from the data byte to obtain four further bits of the output data word.

23. A transmitter as claimed in claim 22 , further comprising logic for including amongst the encoded data at least one exception code, comprising a nine bit word that can not be obtained from any input data byte by encoding the data in accordance with the method.

24. A transmitter as claimed in claim 23 , wherein the exception code comprises a nine bit word having a runlength of 6 bits.

25. A transmitter as claimed in claim 23 , wherein the exception code comprises a nine bit word having a runlength of 7 bits.

26. A transmitter as claimed in claim 23 , wherein the exception code comprises a nine bit word having a runlength of 8 bits that, in combination with an adjacent encoded data word, can provide a runlength of up to 10 bits.

27. A transmitter as claimed in claim 23 , wherein the exception code comprises a nine bit word having a runlength of 8 bits that, in combination with an adjacent encoded data word, can provide a runlength of up to 11 bits.

28. A transmitter as claimed in claim 23 , wherein the exception code has a maximum runlength of 5 bits.

29. A transmitter, for receiving data in input data bytes of eight bits, and comprising an encoder, the encoder comprising logic for encoding the received data by a method comprising, for each input data byte of eight bits:

dividing the data byte into:

a first group of three bits, and

a second group of five bits; and

generating an output data word containing nine bits, wherein the nine bits include the first group of three bits from the input data byte, and wherein each possible output data word has a maximum runlength of 5 bits;

the transmitter further comprising logic for including amongst the encoded data at least one exception code comprising a nine bit word that can not be obtained from any input data byte by encoding the data in accordance with the method; and

wherein, in the exception code, there is a first polarity change between the second and third bits of the word, and a second polarity change between the eighth and ninth bits of the word, but the third and fourth bits are equal, as are the seventh and eighth bits, while the third and eighth bits have opposite polarities.

30. A method of decoding received encoded data, the method comprising, for each received encoded data word of nine bits:

dividing the encoded data word into:

a first group of five bits, and

a second group of four bits; and

generating an output word containing eight bits, wherein the eight bits comprise:

the first group of five bits from the encoded data word; and

sixth, seventh and eighth bits obtained by applying logical operators to the second group of four bits in the encoded data word.

31. A method as claimed in claim 30 , comprising applying the logical operators such that:

Q

1

=

EXOR

(

Y

1

,

Y

2

)

&

~

(

~

Y

3

&

Y

4

)

Q

2

=

EXOR

(

Y

1

,

Y

2

)

&

~

(

Y

3

&

~

Y

4

)

Q

3

=

(

Y

1

&

~

Y

2

)

(

Y

1

&

Y

2

&

Y

3

)

(

~

Y

1

&

~

Y

2

&

Y

3

)

=

(

Y

1

&

~

Y

2

)

|

(

~

EXO

R

(

Y

1

,

Y

2

)

&

Y

3

)

,

wherein Y 1 , Y 2 , Y 3 and Y 4 are the second group of four bits in the encoded data word; Q 1 , Q 2 and Q 3 are the sixth, seventh and eighth bits of the output word; and where AND=‘&’, OR=‘|’, and NOT=‘˜’.

32. A method as claimed in claim 30 , further comprising recognizing and removing any exception codes.

33. A receiver, for receiving encoded data in encoded data words each of nine bits, and comprising a decoder, the decoder comprising logic for decoding the received data by, for each received encoded data word of nine bits:

dividing the encoded data word into:

a first group of five bits, and

a second group of four bits; and

generating an output word containing eight bits, wherein the eight bits comprise:

the first group of five bits from the encoded data word; and

sixth, seventh and eighth bits obtained by applying logical operators to the second

group of four bits in the encoded data word.

34. A receiver as claimed in claim 33 , further comprising logic for recognizing and removing any exception codes before passing the encoded data to the decoder, and outputting control information represented by the exception codes.

Assignments (14)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
PATENT RELEASE Recorded Aug 17, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 039707/0471 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
STATUS CHANGE-ENTITY IN LIQUIDATION Recorded Feb 2, 2016
From: ST-ERICSSON SA
To: ST-ERICSSON SA, EN LIQUIDATION
Reel/Frame 037739/0493 →
CHANGE OF NAME Recorded Feb 2, 2016
From: ST WIRELESS SA
To: ST-ERICSSON SA
Reel/Frame 037683/0128 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2016
From: NXP B.V.
To: ST WIRELESS SA
Reel/Frame 037624/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2008
From: BESTEN, GERRIT WILLEM
To: NXP B.V.
Reel/Frame 021228/0235 →
Priority Claims (1)
EP 06100308 · Jan 12, 2006 · regional
Continuity (1)
Related Publication 20100164760A1 · Jul 1, 2010