【基礎】高速總線設計的編碼類型總結【轉發(fā)】
2017-06-30 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
編者注:編碼是通信系統(tǒng)中一個基本的步驟,但是對于電子工程師來講,往往就變得比較難以理解。隨著速率的提升,高速串行信號幾乎都有采用了各種編碼方式,比如4b5b,8b10b,PAM4等等。本文介紹了一些基本的編碼方式,其它的依此類推,大同小異。
通信線路的編碼就像商品的包裝,商品包裝的目的是使商品更適合運輸,在運輸過程中不受損,同樣,線路編碼的目的就是使編碼后的二進制數(shù)據(jù)更適合線路傳輸。
物理層的編碼可以分為兩類。一類是和物理介質相關,常用的光接口碼型有NRZ、NRZI;電接口碼型有HDB3、BnZS、CMI、Manchester、MLT-3。另一類和物理介質無關,比如百兆以太網(wǎng)用的4B/5B編碼,千兆以太網(wǎng)用的8B/10B編碼,萬兆以太網(wǎng)用的64B/66B編碼。
(1)物理介質相關編碼
NRZ碼:
NRZ即Non-Return to Zero Code,非歸零碼,光接口STM-NO、1000Base-SX、1000Base-LX采用此碼型。NRZ是一種很簡單的編碼方式,用0電位和1點位分別二進制的“0”和“1”,編碼后速率不變,有很明顯的直流成份,不適合電接口傳輸。
NRZI碼:
NRZI即Non-Return to Zero Inverted,非歸零反轉碼,光接口100Base-FX使用此碼型。編碼不改變信號速率。
NRZI編碼規(guī)則:
1).如果下一個輸入二進制位是“1”,則下一個編碼后的電平是當前電平跳變后的電平;
2).如果下一個輸入二進制位是“0”,則編碼后的電平與當前保持一致。
NRZ和NRZI都是單極性碼,即都只有正電平和零電平,沒有負電平,所以NRZ和NRZI碼中有很多直流成份,不適合電路傳輸,并且NRZ和NRZI編碼本身不能保證信號中不包含長連“0”或長連“1”出現(xiàn),不利于時鐘恢復。
MLT-3碼:
MLT-3即Multi-Level Transmit -3,多電平傳輸碼,MLT-3碼跟NRZI碼有點類型,其特點都是逢“1”跳變,逢“0”保持不變,并且編碼后不改變信號速率。如NRZI碼不同的是,MLT-3是雙極性碼,有”-1”、“0”、“1”三種電平,編碼后直流成份大大減少,可以進行電路傳輸,100Base-TX采用此碼型。
MLT-3編碼規(guī)則:
1).如果下一輸入為“0”,則電平保持不變;
2).如果下一輸入為“1”,則產(chǎn)生跳變,此時又分兩種情況。
(a).如果前一輸出是“+1”或“-1”,則下一輸出為“0”;
(b).如果前一輸出非“0”,其信號極性和最近一個非“0”相反。

AMI碼:
AMI即Alternate Mark Inversion,信號交替反轉碼,典型的雙極性碼,AMI類型的編碼有HDB3、B3ZS、B8ZS等。
AMI編碼規(guī)則:輸入的“0”仍然是0,輸入的“1”交替的變換為+1、-1。
AMI編碼如下圖所示:

AMI能保證編碼后無直流分量,但AMI本身無法保長連“0”和長連“1”出現(xiàn)。
這就出現(xiàn)HDB3、B3ZS、B8ZS,這三種編碼成功彌補了AMI碼的這種缺陷。
HDB3碼:
HDB3即High Density Bipolar of order 3code,三階高密度雙極性碼。
編碼規(guī)則:
1).當原碼沒有四個以上連“0”串時,AMI碼就是HDB3碼。
2).當出現(xiàn)四個以上連“0”串時,將第四個“0”變成與其前面一非“0”同極性的符號,由于這個符號破壞了極性交替反轉的規(guī)則,因此叫做破壞符號,用V符號表示(+1為+V,-1為-V),相鄰的V符號也需要極性交替。
3).當V符號之間有奇數(shù)個非“0”時,是能滿足交替的,如為偶數(shù),則不能滿足,這時再將該小段的第一個“0”變成“+B”或“-B”,B符號與前一個非“0”符號相反,并讓后面的非“0”符號從V符號開始交替變化。HDB3碼如下圖所示:

換一種更好記的方法:兩V碼之間原始碼非“0”個數(shù)為為奇數(shù)時,用000V代替0000,為偶數(shù)時,用B00V代替0000,B00V之后,原始極性碼必須與V碼極性相反。如下圖所示:

B3ZS碼:
B3ZS即Bipolar with three-zero substitution,三階雙極性碼,T3線路用此編碼。
編碼規(guī)則與HDB3相同,只是編碼后能允許最多連“0”的個數(shù)從HDB3的三個減小到兩個。B3ZS碼如下所示:

B8ZS碼:
B8ZS即Bipolar with eigth-zero substitution,八階雙極性碼,如果源碼中沒有8個或以上連“0”串時,這時AMI碼就是B8ZS碼,如果有8個或以上連“0”時,將8個“0”替換成“000VB0VB”,其他規(guī)則同HDB3碼。T1線路采用此編碼。如下所示:

CMI碼:
CMI即Code Mark Inversion,信號反轉碼。
編碼規(guī)則:輸入的“1”交替用-1和+1表示,“0”用電平從-1到+1的跳變表示,也就是一個上升沿。E4和SMT-1e線路采用此編碼,編碼后信號速率被提高,其實是以犧牲帶寬來換取傳輸特性。如下圖所示:

Manchester碼:
使用電平從+1到-1的變化表示“0”,使用電平從-1到+1的變化表示“1”,編碼效率低,只有50%,同CMI一樣,是拿帶寬換取傳輸特性,10Base-T使用此編碼。
如下圖所示:

各種鏈路與碼型對應表:

(2)物理介質無關編碼
什么是4B/5B編碼?
4B/5B編碼是百兆以太網(wǎng)(即快速以太網(wǎng))中線路層編碼類型之一,就是用5bit的二進制數(shù)來表示4bit二進制數(shù),映射方式如下表所示:

為什么要進行4B/5B編碼?
在通信網(wǎng)絡中,接收端需要從接收數(shù)據(jù)中恢復時鐘信息來保證同步,這就需要線路中所傳輸?shù)亩M制碼流有足夠多的跳變,即不能有過多連續(xù)的高電平或低電平,否則無法提取時鐘信息。
Manchester(曼切斯特)編碼可以保證線路中碼流有充分的跳變,因為它是用電平從“-1”到“+1”的跳變來表示“1”,用電平從“+1”到“-1”的跳變來表示“0”,但是這種編碼方式的效率太低,只有50%,相當于用線路的有效帶寬來換取信號的跳變,十兆以太網(wǎng)就是使用Manchester編碼,雖然線路的有效帶寬只有10Mbps,但實際帶寬卻是20Mbps。
百兆以太網(wǎng)用的4B/5B編碼與MLT-3編碼組合方式,發(fā)送碼流先進行4B/5B編碼,再進行MLT-3編碼,最后再上線路傳輸;千兆以太網(wǎng)用的是8B/10B編碼與NRZ編碼組合方式;萬兆以太網(wǎng)用的是64B/66B編碼;PCIE 3.0用的是128B/130B編碼。
4B/5B編碼規(guī)則有哪些?
4B/5B編碼其實就是用5bit的二進制碼來代表4bit二進制碼。此編碼的效率是80%,比Manchester碼高。4B/5B編碼的目的在前面已經(jīng)說過了,就是讓碼流產(chǎn)生足夠多的跳變。4位二進制共有16種組合,5位二進制共有32種組合,如何從32種組合種選取16種來使用呢?這里需要滿足兩個規(guī)則:
1).每個5比特碼組中不含多于3個“0”;
2).或者5比特碼組中包含不少于2個“1”;
此規(guī)則是怎么來的?這就要從MLT-3碼的特點來解釋了。MLT-3碼的特點簡單的說就是:逢“1”跳變,逢“0”不跳變。為了讓4B/5B編碼后的碼流中有足夠多的跳變就需要編碼后的碼流中有盡量多的“1”和盡量少的“0”。
這種編碼的特點是將欲發(fā)送的數(shù)據(jù)流每4bit作為一個組,然后按照4B/5B編碼規(guī)則將其轉換成相應5bit碼。5bit碼共有32種組合,但只采用其中的16種對應4bit碼的16種,其他的16種或者未用或者用作控制碼,以表示幀的開始和結束、光纖線路的狀態(tài)(靜止、空閑、暫停)等。
三種應用實例是FDDI、100BASE-TX和100BASE-FX.
8B/10B編碼與4B/5B的概念類似,例如在千兆以太網(wǎng)中就采用了8B/10B的編碼方式。
在通信系統(tǒng)中,通信速度與線路傳輸中的調制速率,所謂調制速率是指單位時間內線路狀態(tài)變化的數(shù)目,以波特(baud)為單位。如果采用曼徹斯特編碼,在每個調制時間間隔內跳動兩次,則數(shù)據(jù)傳送速率是波特率將的二分之一。在快速以太網(wǎng)中,數(shù)據(jù)傳輸速率為100Mbps,如果采用曼徹斯特編碼,波特率將達200Mbps,對傳輸介質和設備的技術要求都將提高,增大了傳輸成本。如果使用4B/5B編碼,在傳輸速率為100Mbps的情況下,其調制速率為:100M÷(4/5)=125M(baud)。即波特率為125M baud,大大低于曼徹斯特編碼時的200M baud,這樣就在快速以太網(wǎng)中使用非屏蔽雙絞線成為可能。
轉自微信公眾號:信號完整性
相關標簽搜索:【基礎】高速總線設計的編碼類型總結【轉發(fā)】 ansysem電磁培訓班 ansys SIwave培訓課程 ansys maxwell hfss培訓和分析 ansysem在線視頻教程 pcb 封裝分析仿真 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓 有限元培訓