[ASICs] [Chip Typen] [Chip Aufbau] [Entwicklung] [ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||

Line Codes The following page gives a rough overview about line coding and data coding techniques. These describe how a certain data channel has access to a physical medium beside other data channels.
- The average power is two times other bipolar codes
- The coded signal contains DC and low frequency components.
- When long strings of zeros are present, a DC or baseline wander occurs.
- This results in loss of timing and data because a receiver/repeater cannot optimally discriminate ones and zeros.
- Repeaters/receivers require a minimum pulse density for proper timing extraction. Long strings of ones or zeros contain no timing information and lead to timing jitter (when a clock recovery is used) and possible loss of synchronization.
- There is no provision for line error rate monitoring.
- Eliminate DC Wander
- Minimize Timing Jitter
- Provide for Line Error Monitoring
This is accomplished by introducing controlled redundancy in the code through extra coding levels.
4B5B 4 Bit / 5 Bit 8B10B 8 Bit / 10 Bit AMI Alternate Mark Inversion B6ZS Bipolar with 6 Zero Substitution B8ZS Bipolar with 8 Zero Substitution BAMI Bipolar-Alternate Mark Inversion Differential Manchester Encoding HDB3 High Density Bipolar 3 Manchester Encoding NRZ Nonreturn to Zero NRZI Nonreturn to Zero Inverted Pseudoternary
FEC Forward Error Correction (different algorithms) Convolutional Codig
- Improves transmission characteristics
- Enables bit- level clock recovery
- Improves error detection
- Separates data symbols from control symbols
- Derives bit and word synchronization
The data bytes are encoded into 10-bit data characters resulting into 1024 possible characters. 2x256=512 are reserved for the data byte transfers. One character representative has more 1's, the
other has more 0's and are selected according to the current disparity (see below). 12 special characters are defined for special signaling. The rest of the 1024-512-12 are not allowed for transmission and
indicate transmission errors or unsynchronized status once they are received at the destination. Ordered sets are flexible building blocks which may be used for in-band and or out-of-band protocol functions.
- If the immediate preceding pulse is of (-) polarity, then code each group of 8 zeros as 000-+0+-.
- If the immediate preceding pulse is of (z) polarity, then code each group of 8 zeros as 000+-0-+.
0 = no signal (0 voltage) 1 = alternating +V and -V BAMI has no DC component becaus of regularly alternating between +V and -V. Thus it is also able to detect some bit errors between consecutive +V or -V. The problems are a loss of synchronization during long string of 0 bits and the inefficient use of bandwidth. With 3 signal levels BMI you could transmit log2(3)= 1.58 bits of information.
0 = transition at beginning of bit period (low-to-high or high-to-low, depending on previous output level) 1 = no transition at beginning of bit period This coding is used in IEEE 802.5 (Token Ring) at 4Mbps and 16Mbps. It has the same properties as Manchester encoding, but a better signal detection and clocking in presence of noise. Still there is the inefficient use of bandwidth.
- If the polarity of the immediate preceding pulse is (-) and there have been an odd (even) number of logic 1 pulses since the last substitution, each group of 4 consecutive zeros is coded as 000-(+00+).
- If the polarity of the immediate preceding pulse is (+) then the substitution is 000+(-00-) for odd (even) number of logic 1 pulses since the last substitution.
0 = low-to-high transition 1 = high-to-low transition Transition at beginning of bit period when necessary used for 10Mbps ethernet over coax and twisted pair Manchester encoding is good for clock and signal recovery. There is no DC component, but it has an inefficient use of bandwidth (10Mbps ethernet uses a 20Mbps signaling rate). It has a data-dependent high frequency component.
0 = signal off (no signal) NRZ is used on low speed links, such as serial ports. Its problems are lack of clock recovery during long string of 0 or 1 bits and it has a DC component resulting in “baseline wander” during long strings of 0 or 1 bits.
0 = no change of signal level NRZI is a differential encoding used in 4B/5B on fast ethernet. It fixes problems in clocking during long strings of 1 bits. The problems are the DC component and the lack of clock recovery during long string of 0 bits.
1 = no signal (0 voltage) 0 = alternating +V and -V
Following CRC standard polynoms are in use in different applications:
Related references to this error control approach include "Trellis Coding", "Viterbi Decoding", and "Turbo Coding". FEC is often based upon CRC (Cyclic Redundancy Check) schemes which can be generated with a shift loop-backed register (http://ralf-eisenreich.de/crc___fcs.111.0.html).
Convolutional codes are usually described using two parameters code rate and constraint length. The code rate k/n, is expressed as a ratio of the number of bits into the convolutional encoder (k) to the number of channel symbols output by the convolutional encoder (n) in a given encoder cycle. The constraint length parameter K, denotes the "length" of the convolutional encoder, i.e. how many k-bit stages are available to feed the combinatorial logic that produces the output symbols. Closely related to K is the parameter m, which indicates how many encoder cycles an input bit is retained and used for encoding after it first appears at the input to the convolutional encoder. The m parameter can be thought of as the memory length of the encoder. Viterbi decoding has the advantage that it has a fixed decoding time. It is well suited to hardware decoder implementation. But its computational requirements of Trellis path analysis (picture) grow exponentially as a function of the constraint length, so it is usually limited in practice to constraint lengths of K = 9 or less. For years, convolutional coding with Viterbi decoding has been the predominant FEC technique used in space communications.
The other type of convolutional coding is sequential decoding. This type has the advantage that it can perform very well with long-constraint-length convolutional codes, but it has a variable decoding time |
|||||||||||||||||||||||||||||||||||||||||||||||||||||

[Home] [ASICs] [Selbstmanagement] [Inselmeer] [Spiele] |