8b/10b

8b/10b編碼把8比特的子元转换成10比特的子元。目的是以便在串行传输中達到直流平衡(DC Balance),明晰边界,并提供足够的状态改变来利于时钟恢复。目标是至少在20比特“1”的个数与“0”的个数的差距不超过2个,并且没有连续的5个“1”或“0”。

8b/10b編碼是1983年由IBM的 Al Widmer 與 Peter Franaszek 所提出,应用于ESCON,後來申請成專利。目前廣受串列匯流排所採用。例如:IEEE 1394b、SATAPCI Express、Infini-band、Fiber Channel、RapidIO等匯流排,都是採用8b/10b編碼。2008年推出的USB 3.0規格書亦明言采用了8b/10b編碼。

8b/10b編碼的提出即是因應光纖的傳輸技術,8b/10b技術是將8個位元經過某種映射的機制轉化為10個位元的字碼,分兩個部位分別進行映射的處理,分別是 5B/6B 與 3B/4B 的處理,另外「D.a.b」是資料碼(D即是Data),「K.a.b」指控制碼(K即是Key),a與b表示输入的原始資料。

工作原理

8b/10b編碼輸出位元數目總共是10個位元,但只有「+2」「+0」「-2」三種組合。其中「+2」是指4個位元0,與6個位元1;「+0」是指5個位元“0”,與5個位元“1”;「-2」是指6個位元“0”,與4個位元“1”,利用這種「不均等性— Disparity」的特性而具有強大的直流平衡(DC Balance)功能,可使得发送的“0”、“1”数量保持一致,连续的“1”或“0”基本上不超过5位。

(Disparity = number of "1" - number of "0")

編碼表

8b/10b编码将一组8位元資料分成两组,一组3位元,一组5位元,經過編碼後形成一组4位元和一组6位元,故送發時是一組10位元的資料,解码時再将10位元的資料变换得到8位元資料。編碼過程中低位5位元的資料会进行5B/6B编码,高位3位元的資料则进行3B/4B编码。

例如一組8位元的資料是 10110101:

首先,分成兩組 101 與 10101

a=10101(21) b=101(5),符號為 D21.5,在下表中的位序为HGFEDCBA,a(EDCBA)经过5B/6B编码为abcdei,b(HGF)经过3B/4B编码为fghj。

RD = Running Disparity.

不均等性的執行規則
Previous RDDisparity of 6 or 4 Bit CodeDisparity chosenNext RD
−1 0 0−1
−1±2+2+1
+1 0 0+1
+1±2−2−1

5b/6b

5B/6B code
inputRD = −1RD = +1 inputRD = −1RD = +1
EDCBAabcdeiEDCBAabcdei
D.0000000100111011000D.1610000011011100100
D.0100001011101100010D.1710001100011
D.0200010101101010010D.1810010010011
D.0300011110001D.1910011110010
D.0400100110101001010D.2010100001011
D.0500101101001D.2110101101010
D.0600110011001D.2210110011010
D.0700111111000000111D.23 †10111111010000101
D.0801000111001000110D.2411000110011001100
D.0901001100101D.2511001100110
D.1001010010101D.2611010010110
D.1101011110100D.27 †11011110110001001
D.1201100001101D.2811100001110
D.1301101101100D.29 †11101101110010001
D.1401110011100D.30 †11110011110100001
D.1501111010111101000D.3111111101011010100
K.2811100001111110000

† Same code is used for K.x.7

3b/4b

3b/4b code
inputRD = −1RD = +1 inputRD = −1RD = +1
HGFfghjHGFfghj
D.x.000010110100K.x.000010110100
D.x.10011001K.x.1 ‡00101101001
D.x.20100101K.x.2 ‡01010100101
D.x.301111000011K.x.301111000011
D.x.410011010010K.x.410011010010
D.x.51011010K.x.5 ‡10101011010
D.x.61100110K.x.6 ‡11010010110
D.x.P7 †11111100001
D.x.A7 †11101111000K.x.7 † ‡11101111000

Control symbols

5b/6b 與 3b/4b 表可能導致下列 12 控制符號(control symbols)允許被發送,K.28.1, K.28.5, K.28.7 是逗号(,)序列:

控制符號(Control symbols)
inputRD = −1RD = +1
HGF EDCBAabcdei fghjabcdei fghj
K.28.0000 11100001111 0100110000 1011
K.28.1 †001 11100001111 1001110000 0110
K.28.2 010 11100001111 0101110000 1010
K.28.3 011 11100001111 0011110000 1100
K.28.4 100 11100001111 0010110000 1101
K.28.5 †101 11100001111 1010110000 0101
K.28.6 110 11100001111 0110110000 1001
K.28.7 ‡111 11100001111 1000110000 0111
K.23.7 111 10111111010 1000000101 0111
K.27.7 111 11011110110 1000001001 0111
K.29.7 111 11101101110 1000010001 0111
K.30.7 111 11110011110 1000100001 0111

與 8b/10b 相關技術

目前IBM的專利已過期,此方案已成為大眾化的技術。

8B/10B 編碼的應用如下

數位音效

重要的應用面:

  • Digital Audio Tape
  • Digital Compact Cassette (DCC).

用於 audio 與 data CDs:

與 128b/13xb 相關技術

128b/13xb編碼的應用如下:

外部連結

Template:位编码

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.