很多人可能在想,8B/10B編碼主要作用的優化直流平衡,從8bit中插2個bit進去,這樣的話最終效果能夠使長0或者長1的位數不超過5位,達到很好的效果。那64B/66B編碼方式呢?在從64個bit中僅加入2個bit,能夠很好的解決長0長1的問題嗎?作用似乎只是杯水車薪,2個bit相對于64個bit太少了。但是這種64B/66B的編碼方式流行至今,肯定是有它自己的優勢所在,其實它和8B/10B編碼還是有原理上和算法上的區別的。
當然,如果僅靠這2個bit來實現8B/10B的作用顯然不太現實。其實上,這兩個bit只是起一個同步頭的作用,主要用于接收端的數據對齊和接收數據位流的同步。這兩個bit有“10”和“01”兩種同步表征方式,“01”表征后面的64個bit都是數據bit,“10”表示后面的64bit是數據和控制信息的混合,其他的“00”或者“11”都表征為錯誤信息。數據bit用“D”表示,每個數據碼是8bit;控制bit用“Z”表示,每個數據碼是7bit。其中在“10”這種數據控制信息混合的情況下,后8個bit劃分為表征類型域,其后的56bit才是真正的控制信息或數據控制兩者的混合。另外“S”表示包開始傳送,“T”表示包傳送結束,值得注意的是“S”只能在第0和第4字節出現。“T”可以出現在任何的字節。結構圖如下所示:
“S”字節
一個傳輸的例子如下:
那按照上面說的,新加的2個bit只是作為同步,那后面的數據可以如何優化呢?這里有一項區別于8B/10B編碼的技術——擾碼。
所謂擾碼,就是一種將數據重新排列或者進行編碼以使其最優化的方法。怎么才能最優化呢?就是使數據bit的“0”和“1”最大程度的達到隨機分布,進一步減輕了抖動的碼間串擾,提高了數據傳輸的可靠性。從本質上說,擾碼就是為了達到這個目的而在傳輸數據進入信道傳輸之前,對其進行的比特層的隨機化處理過程。它的方法就是使用上面prbs碼型所說到的多項式,關于多項式的選擇通常是基于擾碼的特性,包括生成數據的隨機度,以及打亂連0和連1的能力。從prbs多項式的角度說,其實就是重新生成偽隨機碼型的過程。
64B/66B的擾碼使用的多項式是1+X39+X58。按照前期說的prbs生成器,得到該擾碼器的框圖如下所示:
prbs說的第39和第58位的異或運算,然后通過移位寄存器輸出的碼型結果。當然,前面說了,64B/66B編碼的這種擾碼方式目標是使數據的“0”和“1”最大程度的隨機分布,減小連續出現的情況,因此它可能并不能適用于所有的碼型,不像8B/10B編碼一樣對所有的bit組合都有出色的表現,具體還要看接收器的能力。但是無可否認,它最大的好處是效率比較高,傳輸冗余的bit只有2位,不像8B/10B編碼需要20%的開銷。這方面在更高速的傳輸環境下更具有優勢。
編輯:hfy
-
編碼技術
+關注
關注
1文章
35瀏覽量
11043 -
高速信號
+關注
關注
1文章
223瀏覽量
17677
發布評論請先 登錄
相關推薦
評論