ieee 802 3學習筆記 PCS

2021-10-20 17:59:20 字數 1664 閱讀 6496

pcs:physical coding sublayer物理編碼自層,功能是完成mac和pma資料的收發和編譯碼,錯誤檢測,載波檢測等。

pcs子層位於協調子層(通過gmii)和物理介質接入層(pma)子層之間。pcs子層完成將經過完善定義的乙太網mac功能對映到現存的編碼和物理層訊號系統的功能上去。pcs子層和上層rs/mac的介面由xgmii提供,與下層pma介面使用pma服務介面。

xilinx的rocketio(高速序列收發器)中包括pma(物理媒介適配層)和pcs(物理編碼子層)兩個子層,其中pma子層主要用於序列化和解串,pcs主要包括線路編碼和crc校驗編碼。如圖《pcs內部結構》所示:

pcs內部結構

pcs子層負責8b/10b編碼解碼和crc校驗,並整合了負責channel繫結和時鐘修正的彈性緩衝。8b/10b編碼可以避免資料流**現連0連1的情況,便於時鐘的恢復。channel繫結通過在傳送資料流中加入p字元來將幾個rocketio通道繫結成乙個一致的並行通道,從而來提高資料的吞吐率。最多支援24個通道的繫結。彈性緩衝可以解決恢復時鐘與本地時鐘的不一致問題,並進行資料率的匹配,從而使得channel繫結成為可能。對rocket io模組的配置,可以通過下面兩種方式進行:靜態特性可以通過hdl**設定;動態特性可以通過rocketio的原語埠進行配置。

說到pcs子層,這個話題涉及到乙太網的幀格式。除了資料幀本身,每個資料幀之前有8個位元組的前導碼,兩個資料幀之間還有最少96 位元時間的的幀間隔。

這樣看起來似乎很清楚,鏈路空閒96 位元時間之後,一旦出現8個位元組的前導碼,後面就是資料幀,資料幀後面鏈路又變為空閒狀態。但是,從百兆乙太網開始,大多數型別的乙太網的幀間隔期間鏈路並不是真正的空閒,而是需要一直傳送idle訊號。這樣,鏈路上始終都有連續的訊號(這裡暫不考慮eee功能)。這種情況下,要想分辨資料幀的起始和結束位置,就不太容易了。這就是通訊領域的「成幀」問題。儘管早期有一些成幀方案,乙太網還是採用了不同的方式。

100base-x百兆乙太網的pcs子層,引入了4b/5b編碼機制。按照4b/5b的編碼規則,接收端可以很容易地解析資料幀。簡單來講,4b/5b編碼把每4個位元轉換成5個位元。5個位元位有32種組合,其中16種組合用來表示4位元對應的0到15這16個數值,剩餘的16種組合就可以用作控制碼。這樣,資料碼和控制碼就可以區分開了。

下面看一下百兆乙太網編碼前後的對比,就很容易理解pcs子層所做的工作。通常所理解的資料幀格式如下:

經過4b/5b編碼之後,變成了下面的碼流:

上圖中,出現了/i/,/j/,/k/,/t/,/r/這些符號。這些符號對應著4b/5b編碼中的控制碼,其中/j/和/k/碼位於前導碼的第乙個位元組的位置,而/t/和/r/碼則佔據了幀間隔的8位元時間。百兆乙太網共有7種控制碼,彙總如下:

不同型別的乙太網使用的pcs子層不盡相同,採用的編碼機制也不同,例如:1000base-x乙太網使用了8b/10b編碼,10gbase-r乙太網使用了64b/66b編碼。這些編碼機制的具體實現方式,筆者無法在此一一分析,但是pcs編碼的思想應該是類似的。

IEEE 802 3和乙太網封裝格式的區別

一 相同地方 1 幀的開頭都是6位元組目的位址和6位元組源位址 2 幀的尾部都是4位元組crc 3 幀的長度最長都是1518位元組 6 6 2 1500 4 4 幀的長度最短是64位元組 6 6 2 46 4 二 不同地方 1 ieee802.3在12位元組的位址後面是2位元組的長度,而乙太網資料幀...

IEEE1588學習筆記

ieee1588學習筆記 ieee1588是利於網路對時實現整個網路時間同步的標準,對時精度按說明可以達到亞us級.原理 ieee1588標準認為網路傳輸時延是一定的,所以利用兩次對時即可知道這個傳輸時延,然後就可以校準時間.示意圖 先進行一次傳輸得到t1,t2時間.然後主機再將t1時間告知從機.從...

閱讀IEEE754關於浮點運算筆記

最近重新看了一篇 深入理解計算機系統 果然好書讀多少次都能得到新的知識。關於浮點運算ieee754上次讀過還只是蜻蜓點水,完全沒有深入理解,這次結合p.j.plauger寫的 c標準庫 對該標準在計算機中是如何實現的有了更深入的了解。下面我記錄下我最近閱讀內容及個人的思考理解。符號 s 1這個數為負...