Codificacion 8B/10B
1. 2. 3. 4. Transmission Systems 8B/10B Coding 64B/66B Coding CIP Demonstrator Test Setup
PeterJ Slide 1
Sep 4, 2008
Transmission system General
Data
D Q
Flip Flop Clock
C
@ 1 Gbps = 1 ns = 20 cm
Sep 4, 2008 PeterJ
Slide 2
Transmission system Propagation Delay
Data
D Q
Flip Flop Clock
C
Unequal propagation delay 10 cm @ 1 Gbps
??
?
?
Sep 4, 2008
PeterJ
Slide 3
Transmission system Clock Data Recovery
Data CDR Clock Combine Clock and Data!
PLL
D
Q
Flip Flop
C
If there are enough edges in the data then the clock can be recovered from the data using a PLL
PLL
Sep 4, 2008
PeterJ
Slide 4
Code Properties
1. Provide enough edges in the data to enable Clock Recovery
Sep 4,2008
PeterJ
Slide 5
Transmission system Receiver Threshold
Data CDR Clock
C D Q
Flip Flop
Receiver Threshold refers to “Ground” which must be the same potential as “Ground” at the transmitter!
Jitter!
Sep 4, 2008 PeterJ Slide 6
Transmission
Data Use Differential signalling! CDR Clock Icm
C D Q
Flip Flop
Receiver Threshold is halfway positive and negative signalCommon mode voltage Capacitors… Use AC Coupling difference between transmitter and termination at the receiver can Need DC Balance! result in excessive currents
Sep 4, 2008
PeterJ
Slide 7
DC Balance
1 0 1 0 1
1 0 1 0 1
1 1 1 1 1
1 1 1 ? 0
Define a maximum Run Length Sent equal amount of „1‟s and „0‟s (Running Disparity)
Sep 4, 2008 PeterJ Slide 8
Receiver AutomaticGain Control
Gain
Time
Again: maximum Run Length
Sep 4, 2008
Gain
Time
PeterJ Slide 9
Code Properties
1. Provide enough edges in the data to enable Clock Recovery 2. Maximum Run Length and DC Balance
Sep 4, 2008
PeterJ
Slide 10
History of 8B/10B coding
Sep 4, 2008
PeterJ
Slide 11
8B/10B coding
• Maximum run length = 5 • Running Disparity => DCBalance
• 8 bits => 256 different values • 10 bits => 1024 different values • 8B10B code is built out of:
(5 to 6 bit code) + (3 to 4 bit code)
Sep 4, 2008
PeterJ
Slide 12
8B/10B coding
• Not all 1024 values are useful.
– For example “0100000011” has run length 6
• For most of the 256 (8B) values a positive and a negative 10B value is selected depending on the “Current RunningDisparity”
– For example:
D7.0 = 1110001011 (Current RD-) D7.0 = 0001110100 (Current RD+)
• So about 512 useful values are selected from 1024… • There are still a few codes left!
Sep 4, 2008 PeterJ Slide 13
8B/10B coding table
• 256 “Data” Characters:
Sep 4, 2008
PeterJ
Slide 14
8B/10B coding table
• There were still a few codes left! • 12 “Special” K Characters:
CommaCharacters
“The only patterns that have 5 consecutive ‘1’s or ‘0’s
Sep 4, 2008
PeterJ
Slide 15
8B/10B code “K” Characters
010101001101100111000001010110111010010100100111010011001001110100111001 ??.? K28.5 D16.2 D31.3 D11.3 D0.0
• Comma characters K28.1/K28.5/K28.7 are used word alignment • Create “ordered sets”
– For example Fibre Channel Start Of Frame (SOF) =K28.5/D21.5/D23.0/D23.0 – K30.7 = Error Propagate – K28.3 = Carrier Extend
Sep 4, 2008 PeterJ Slide 16
8B/10B code properties
1. Provide enough edges in the data to enable Clock Recovery 2. Maximum Run Length and DC Balance 3. Add special characters
– Comma for word alignment – Control characters
Sep 4, 2008
PeterJ
Slide 17
64B/66B Coding
Sep 4, 2008
PeterJ
Slide 18
64B/66B
(IEEE std802.3ae-2002, Clause 49)
• • 20% of the bandwidth for 8B/10B is overhead For 64B/66B overhead is 3%
2 bit Sync Header 64 bit (Scrambled)
2 bit Sync Header 00 Code Error 01 64 bit = Data field 10 64 bit = Mixed Data / Control field 11 Code Error
•
Once every 66 bits there is at least a “01” or a “10” transition
=> Receiver Block Sync (it may take a while…)
PeterJ Slide 19
Sep 4,...
Regístrate para leer el documento completo.