8b/10b encoding: Difference between revisions

Content deleted Content added
Line 1:
In [[telecommunication]]s, '''8B/10B''' is a [[line code]] that maps [[8-bit]] symbols to [[10-bit]] symbols to achieve [[Direct current|DC]] balance and bounded disparity, and yet provide enough state changes to allow reasonable clock recovery. This means that there are just as many "1"s as "0"s in a string of two symbols, and that there are not too many "1"s or "0"s in a row. This is an important attribute in a signal that needs to be sent at high rates because it helps reduce "[[intersymbol interference]]". The code was described in 1983 by Al Widmer and Peter Franaszek in the [[IBM]] Journal of Research and Development. IBM was issued a patent for the scheme the following year.
 
As the scheme name suggests, 8 [[bit]]s of data are transmitted as a 10-bit entity called a ''Symbol'', or ''Character''. The low 5 bits of data are encoded into a 6-bit group and the top 3 bits are encoded into a 4-bit group. These code groups are concatenated together to form the 10-bit Symbol that is transmitted on the wire. The ''Data Symbols'' are often referred to as Dxx.y where xx ranges from 0-31 and y from 0-7. Standards using the 8B/10B encoding also define ''Special Symbols'' (or ''Control Characters'') that can be sent in place of a ''Data Symbol''. They are often used to indicate end-of-frame, link idle, skip and similar link-level conditions. They are referred to as Kxx.y and have different encodings from any of the Dxx.y symbols. Because 8B/10B encoding uses 10-bit symbols to encode 8-bit words, each of the 256 possible 8-bit words can be encoded in two different ways, one the bit-wise inverse of the other. Using these alternative encodings, the scheme is able to affect long-term DC-balance in the serial data stream, allowing links to be capacitively coupled.