Tuesday, February 2, 2010

DC Balance

The requirement of High speed transmission (Optical fiber links), is the serial data stream be DC balanced. That is, it must have an equal number of 1's and 0's.
Any long term DC component in the data stream (lot more 1's than 0's) creates a bias at the receiver that reduces its ability to distinguish reliably between 1's and 0's.
Generally NRZ, NRZI or RZ data has no guarantee of DC balance. However, it can still be achieved by using a few extra bits to code the user data in a balanced code, in which each code word has an equal number of 1's and 0's, and then sending these code words in NRZ format.
The 8B/10B code sloves this problem by associating with each 8-bit value to be encoded a pair of unbalanced code words, one 4 out of 10 ('light") and the other 6 out of 10 ("heavy"). A single bit of information indicating whether the last unbalanced code word that it transmitted was heavy or light to keep track of the Runnig disparity. When it comes time to transmit another unbalanced code word, the coder selects the one of the pair with the opposite weight.
The big advantage of BPRZ overRZ is that its DC balanced.