做嵌入式開發,尤其是嵌入式Ethernet、USB、DDR、HDMI底層驅動開發中,經常會遇到Controller、MAC、PHY這些專業名詞,這些名詞是什么,之間又有什么關系?
一、基礎概念和功能
Controller:控制器的統稱,數字邏輯實現,主要包括控制寄存器組、FIFO,接口協議等。
MAC: Media Access Control,媒體訪問控制器,屬于控制器還是數字邏輯的實現
PHY: Physical物理層,顧名思義實現通信中物理世界的光電等電氣層面的信息,也就是實現數字信號轉模擬信號,模擬信號轉數字信號。
二、USB Controller +PHY
要實現USB通信大致需要兩部分:Controller和PHY兩部分。
Controller主要按照USB協議進行數據的打包和分解,并按照PIPE(USB3.0)或者UTMI(2.0)的總線的數據格式發送給PHY(2.0或者3.0)。
PHY通常為模擬邏輯實現(實現并轉串的功能,把UTMI或者PIPE口的并行數據轉換成串行數據,再通過差分數據線輸出到芯片外部),USB PHY主要實現如下物理功能:
大致的通信方式如下圖所示:

圖中看到UTMI和PIPE,這是PHY和controller通信的接口,USB2.0PHY主要使用ULPI和UTMI,USB3.0主要使用PIPE。
有的芯片內部集成了Controller和PHY,有的芯片則只有Controller,需要在芯片外掛一個PHY芯片。

一句話總結:?usb phy 將usb 控制器的數據,按字usb 標準協議編碼,然后轉成串行差分數據,并通過D+/D- 發送出去。反之,對于從host 產生的數據,經過usb phy 解碼,然后到usb 控制器,最后到我們ddr 或者sram可以訪問的應用數據
三、Ethernet MAC +PHY
網卡主要包括OSI的最下面的兩層,物理層和數據鏈路層
物理層定義了數據傳送與接收所需要的電與光信號、線路狀態、時鐘基準、數據編碼和電路等,并向數據鏈路層設備提供標準接口。物理層的芯片稱之為PHY
數據鏈路層則提供尋址機構、數據幀的構建、數據差錯檢查、傳送控制、向網絡層提供標準的數據接口等功能。數據鏈路層的芯片稱之為MAC控制器
從硬件的角度來分析,以太網的電路接口一般由CPU、MAC(Media Access Control)控制器和物理層接口(physical Layer PHY)組成,如下圖所示:

對于上述三部分,并不一定都是獨立的芯片,主要有以下幾種情況
·CPU內部集成了MAC和PHY,難度較高
·CPU內部集成MAC,PHY采用獨立芯片(主流方案)
·CPU不集成MAC和PHY,MAC和PHY采用獨立芯片或者集成芯片(高端采用)
PHY整合了大量模擬硬件,而MAC是典型的全數字器件,芯片面積及模擬/數字混合架構是為什么先將MAC集成進微控制器而將PHY留在片外的原因。更靈活、密度更高的芯片技術已經可以實現MAC和PHY的單芯片整合
以常用的CPU內部集成MAC,PHY采用獨立的芯片方案,虛線內表示CPU和MAC集成在一起,PHY芯片通過MII接口與CPU上的MAC互聯。
MAC(Media Access Control),即媒體訪問控制子層協議,該部分有兩個概念:MAC可以是一個硬件控制器以及MAC通訊協議。該協議位于OSI七層協議中數據鏈路層的下半部分,主要是負責控制與連接物理層的物理介質。
PHY是物理接口收發器,它實現OSI模型的物理層。IEEE-802.3標準定義了以太網PHY包括MII/GMII(介質獨立接口)子層、PCS(物理編碼子層)、PMA(物理介質附加)子層、PMD(物理介質相關)子層、MDI子層。

總結一下:
MAC 就是以太網控制器,屬于OSI的數字鏈路層。PHY 屬于OSI的物理層(Physical layer),所以叫PHY。
MAC主要處理的數字信號:
PHY負責把MAC的數字信號進行編碼,串行化等操作后,轉化為模擬信號進行發送。PHY在數據接受時, 進行如上所述的逆操作,將模擬信號轉化為數字信號,解碼,并行化后,傳給MAC。
基礎以太網物理層非常簡單:它是一種物理層收發器(發射器和接收器),能將一個設備物理地連接到另一個設備。這種物理連接可以是銅線(例如CAT5電纜——一種家庭使用的藍色插線電纜)或光纖電纜。
最后,無論是USB還是以太網,只有Controller、MAC、PHY都正常工作,USB、以太網才能正常工作,那么對應到驅動層面就需要開發、調試Controller、MAC、PHY這幾部分的驅動。
定期以通俗易懂的方式分享嵌入式知識,關注公眾號,加星標,每天進步一點點。
聲明:
本號原創、轉載的文章、圖片等版權歸原作者所有,如有侵權,請聯系刪除。
關注、點贊、在看、轉發,支持優質內容!
?