久久久久青草线蕉综合_欧美一级在线_国产精品灰丝手机在线_国产一级a免费无码视频软件_国产精品自拍网站

8b10b編碼基礎(chǔ)-云帆興燁

發(fā)表日期:2024/08/09 瀏覽次數(shù):

8b/10b編碼的應用非常廣泛,例如:PCIE GEN1 GEN2,USB3.2 GEN1。再到現(xiàn)在的128b/130b (PCIE GEN3/4/5) 128b/132b (USB3.2 GEN2), 與8b/10b相比他們提升了編碼效率,這兩種編碼方式在底層邏輯上和處理的問題其實是相同的,本文從什么是8b/10b編碼、為什么要使用8b/10b編碼和如何實現(xiàn)8b/10b編碼三個方面來給大家介紹這項技術(shù)。

1

什么是 8b/10b 編碼



8b/10b就是把8個bit的數(shù)據(jù)加工映射成10個bit。如圖1所示,我們可以看到會把8個連續(xù)的bit分成低5位 (LSB) 和高3位 (MSB) 分別進行映射,5位通過5b/6b編碼,3位通過3b/4b編碼。

1.png
                                               圖1 8b/10b編碼映射圖

2

為什么要進行 8b/10b 編碼



那么為什么要把8個bit編碼成10個bit?為什么要浪費兩個bit,不去傳輸有用數(shù)據(jù)?原因有以下兩點:

  • 可以用多出來的bit位來傳輸一些控制信息

  • 可以通過這種方式來達到直流均衡

在這里我們就要引出第二個概念:直流平衡。直流平衡(DC-balanced)是指在編碼過程中保證信道中直流偏移為零,使信道中傳輸數(shù)據(jù)包含的1與0的個數(shù)相同。高速串行總線中,通常采用交流耦合方式,即在發(fā)送端(TX)串接電容(見圖2)。電容在電路中是呈現(xiàn)高通屬性的,信號頻率越高,電容阻抗越低(見公式1)。
2.png
                                公式1
3.png
                                   圖2 不同頻率的NRZ碼型通過電容
當數(shù)據(jù)位流中出現(xiàn)多個連續(xù)的1或0時,可以認為該時間段信號是直流的,電容的損耗變大,導致信號的幅度降低,直流信號被濾除,到最后無法識別是1還是0。且接收端收到連續(xù)的1或0時,沒有充分的定時信息,給接收端的解碼帶來了困難(見圖3)。
4.png
                                                                      圖3  連1連0信號通過電容信號失真

因此,8b/10b編碼就是把信號中的連1連0通過多加兩位的冗余,來實現(xiàn)映射后的信號盡量是01交替的情況,換一種說法,就是映射后的信號中盡量有相同數(shù)量的0和1。下面我們就來看一下8b/10b編碼具體是怎么把8bit映射成10bit的。


3

如何實現(xiàn) 8b/10b 編碼


通常會將低5位 EDCBA 按其十進制數(shù)值記為x,將高3位按其十進制數(shù)值記為y,將原始8bit數(shù)據(jù)記為D.x.y。例如8bit數(shù)“101 10101”,即十進制數(shù)181,按照上述劃分原則x=10101 (21),y=101 (5),這個數(shù)被表示為D.21.5。此外在8b/10b編碼中,還需用到12種控制字符,用來標識傳輸數(shù)據(jù)的開始、結(jié)束,傳輸空閑等狀態(tài),按照上述規(guī)則,將控制字符記為K.x.y。8bit的數(shù)據(jù)一共有256種組合,再加上12種控制字符 一共會有268種組合,但是10bit卻可以表示成1024種組合,那我們要追求直流平衡,就要在1024種組合中挑選出0和1個數(shù)相近且0和1盡量交替出現(xiàn)的組合,來分配給我們提到的268種組合。


表1和表2就分別是3b/4b和5b/6b的映射關(guān)系表,通過映射后的數(shù)據(jù)是不會出現(xiàn)全1或者全0的??梢钥吹揭粋€碼型能被編碼映射成多個碼型而且又分為RD+和RD-,這又為什么?


5.jpg

 表1 3b/4b編碼映射表

6.jpg
表2 5b/6b編碼映射表

為方便理解8b/10b的編碼原理,首先要明白兩個重要的概念:“不一致性”(disparity)和“運行不一致性”,也稱為“極性偏差”(running disparity,RD)。Disparity表示編碼后的碼型數(shù)據(jù)中“1”的個數(shù)與“0”的個數(shù)的差值。由表1,表2及表3中的編碼規(guī)則可知:Dirparity的取值只有“+2”(“0”比“1”多兩個)、“0”(“0”和“1”數(shù)量相等)和“-2”(“0”比“1”少兩個)??偨Y(jié)來說就是0多就是RD+,1多就是RD-,編碼中“1”和“0”數(shù)量相等的碼字稱為“完美平衡碼”。



在編碼時,RD的初始值為負,即RD-,根據(jù)當前的RD值,決定相應的編碼輸出。比如:在表1中,對于D.x.3(011),其對應的4B碼字有兩種:1100和0011,若此時RD為負,則取1100作為其對應的4B碼字作為輸出,同時檢驗此時的編碼是否為完美編碼,如果是完美編碼,則保持RD的極性不變;否則改變RD的極性。通過控制RD的極性,同時在編碼時根據(jù)RD的極性選擇相對應的編碼值,使得編碼后的數(shù)據(jù)流有更好的直流平衡特性。8b/10b編碼由3b/4b編碼和5b/6b編碼兩部分組合而成,通過傳遞RD參數(shù)來使整個編碼結(jié)果具有很好的直流平衡性。


7.png                                                                                       
                                                                                 圖4 8b/10b編碼狀態(tài)轉(zhuǎn)移圖

以上就是8b/10b編碼的相關(guān)介紹,文中沒有提及的12個控制編碼會在后續(xù)結(jié)合PCIE層結(jié)構(gòu)來介紹。同時特勵達力科還有專門針對8b/10b的協(xié)議解碼軟件解決方案,主要功能包括:
  • 解碼8b/10b串行數(shù)據(jù)波形并且會在波形上進行細致的注釋,協(xié)助工程師排查問題

  • 關(guān)聯(lián)協(xié)議事件到物理波形更深入的洞察;將數(shù)據(jù)保存到磁盤方便后續(xù)進一步分析

  • 支持多通道操作,可同時查看多達四個通道

  • 協(xié)議解碼能力高達 16 Gb/s


特勵達力科的8b/10b解碼功能強大,可以協(xié)助工程師以最簡便的操作、最詳盡的細節(jié)來排查問題調(diào)試串行數(shù)據(jù)中存在的問題。

8.png
                                                                                           圖5 8b/10b解碼選件實測圖