今天我們聊聊以太網的物理器件PHY,首先我們看看PHY的器件構成,以太網的物理層包括4個功能層和兩個接口層,接口層MII和MDI已經在前面的文章做過分享,這里就不再做贅述。今天我們主要聊聊PHY的4個功能層。即物理編碼子層PCS(Physical Coding Sublayer),物理介質連接子層PMA(Physical Medium Attachment),物理介質相關子層PMD(Physical Medium Dependent)以及自動協商Auto-Negotiation。
PHY對應OSI模型:
PHY 芯片的內部構成:
1. 物理編碼子層(PCS)有兩個對外接口,一個是與MII對接的接口,一個是與PMA對接的接口。其主要功能是對信號的編譯碼,收發處理,管理和控制。下面以100base-TX為例來說明。
PCS發送子層對于100base-TX信號進行4B/5B(如果是1000Base-TX,則是8B/10B)編碼,5比特的數據能有效地減小直流分量,降低誤碼率,然后通過PMA、PMD兩層的擾碼和MLT-3編碼,將信號變成62.5Mhz的三元數據,再通過隔離變壓器送入雙絞線電纜進行傳輸。
PCS接收子層主要功能是實現串/并變換,載波檢測,4B/5B或Manchester譯碼,碼組成幀。工作流程為PCS接收來自PMA的數據,并將其從串行轉換成并行,然后譯碼,組成幀,然后送到MAC接口。
2. 物理介質連接子層(PMA)主要功能是鏈路檢測,載波檢測,NRZI編/譯碼,發送時鐘合成,接受時鐘恢復。
PMA發送子層將從PCS子層接收到的比特流轉換成NTZI格式,然后送入PMD。PMA使用數字鎖相環(PLL)合成技術,從時鐘標準接口得到需要發送的時鐘脈沖。
PMA接收子層主要是負責完成NRZI譯碼和接收時鐘恢復(由PLL完成)。
3. 物理介質相關子層(PMD)主要實現數據流擾碼器/解擾器,MLT-3(三電平雙極性編碼+V,0和-V)編碼/譯碼,直流恢復(MLT-3編碼中會出現連0或者連1,從而產生直流分量,變壓器隔直會引起信號基線的漂移),自適應均衡器,雙絞線對發射機,雙絞線對接收機,自動極性校正與隔離變壓器。
4. 自協商(Autonegotiation)為連接在線路兩端的端口的工作方式,使數據傳輸在最高效的線路上,包括協商速率和雙工等信息.。
自協商工作機制:自協商功能允許一個網絡設備能夠將自己所支持的工作模式信息傳達給網絡上的對端,并接受對方可能傳遞過來的相應信息。它使用修訂過的10BASE-T的整合性測試脈沖序列(linkintegrity test pulse sequence)來傳遞信息,自協商功能的基本機制就是將協商信息封裝進一連串修改后的“10BASE-T連接測試收發波形”的連接整合性測試脈沖。這串脈沖被稱為快速連接脈沖(FLP)。每個網絡設備必須能夠在上電、管理命令發出、或是用戶干預時發出此串脈沖。快速連接脈沖包含一系列連接整合性測試脈沖組成的時鐘/數字序列。將這些數據從中提取出來就可以得到對端設備支持的工作模式,以及一些用于協商握手機制的其他信息。
下面看看看自動協商過程中的幾種脈沖:
LTP(LinkTest Pulse):在10Base-T中,TD傳輸LTP,然后重復16毫秒+/-8毫秒的序列靜默期。
LTP MASK:
圖片來源:IEEE802.3
NLP(NormalLink Pulse): 并非為AutoNegotiation設計,鏈路完整性檢查脈沖,在鏈路空閑時(無數據發送或者接收)定期發送NLP,若在一定時間內未收到NLP則將認為鏈路故障,將端口狀態設置為Down,并再連續收到2個NLP后則認為鏈路恢復,將端口配置為Up;NLP中不含任何數據信息,即不包括任何Rate和Duplex信息。
FLP(Fast LinkPulse ),快速link脈沖。FLP中包含Rate和Duplex以及自協商標志位;開啟AutoNegotiation的10BASE-T/100BASE-T會發送FLP,當100BASE-T收到10BASE-T發送的NLP時,它會停止發送FLP并轉而發送NLP。FLP由17個時鐘脈沖和16個位置對應的數據脈沖組合而成:
圖片來源:IEEE802.3
圖片來源:IEEE802.3
FLP 時序:
圖片來源:IEEE802.3
自動協商期間交換的頁面有三種:基本頁、消息頁、無格式頁:
總結:針對PHY的4個功能層,作為一個硬件工程師,我們必須要了解的自動協商,這有助于我們日常板級設計,分析調試問題。比如我們如何判讀PHY是否正常工作。下面有兩個基本的判別依據:
1. 當網口沒有link時,PHY必須發送FLP。
2. 當網口link后,FLP消失,取而代之的是差分信號。