欧美日韩看片­_亚洲AV无码精品无码久久蜜桃­_女人与公狼做交十配视频­_92日韩国产精品无码视频­_国产免费AV

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

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

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

1

什么是 8b/10b 編碼



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

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

2

為什么要進(jìn)行 8b/10b 編碼



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

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

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

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

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


3

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


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


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


5.jpg

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

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

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



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


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

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

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

  • 支持多通道操作,可同時(shí)查看多達(dá)四個(gè)通道

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


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

8.png
                                                                                           圖5 8b/10b解碼選件實(shí)測圖

江孜县| 阳谷县| 平乡县| 喀喇沁旗| 呼伦贝尔市| 龙南县| 尼勒克县| 丘北县| 乌海市| 腾冲县| 乳源| 许昌县| 灵武市| 陆河县| 昌宁县| 光山县| 龙山县| 渝中区| 和政县| 邹平县| 永定县| 桐庐县| 灌云县| 库车县| 大庆市| 耿马| 新竹市| 绥化市| 嘉定区| 辉南县| 保定市| 临朐县| 延寿县| 云林县| 五大连池市| 开平市| 郎溪县| 陵川县| 晋宁县| 漳州市| 合作市|