PHY寄存器

在以前的文章,咱們講解了STM32的網絡外設部分。後端

 

圖片

文章有《STM32網絡電路設計》《STM32網絡之MAC控制器》《STM32網絡之DMA控制器》《STM32網絡之中斷》。網絡

 

STM32只有網絡外設時不能進行網絡通訊的,由於STM32只提供了SMI接口,MII和RMII接口。咱們還須要與之通訊的外部網絡芯片,簡稱PHY芯片。我熟悉的PHY型號有:RTL8201F,RTL8201E,RTL8201G,DP83848,YT8512C等,原計劃講解RTL8201F的,可是內容太多,先把PHY寄存器拿出來說一下。app

 

爲何STM32不集成PHY呢?oop

PHY(PortPhysical Layer),中文可稱之爲端口物理層。測試

一、PHY芯片是模擬芯片,須要將網線的差分信號轉換成數字信號,若是集成,則芯片面積增長,若是要下降功耗,還要高的芯片製造工藝,這會直接將芯片成本拉高。編碼

二、並非全部的STM32使用者都須要使用到網絡,集成PHY會增長成本。spa

因此,STM32不集成PHY不是技術問題,而是各方面考慮的結果。設計

 

難道沒有集成PHY的MCU嗎?3d

有的,TI的LM3S8962。調試

圖片

 

咱們說回PHY寄存器,外部PHY芯片寄存器分爲3種類型

Basic:基礎寄存器

Extended:擴展寄存器

Vendor-spcififc:廠商特殊寄存器

其中在802.3協議2012版中有以下說明。

圖片

不一樣的手冊,對基礎寄存器有不一樣的說明,按照802.3-2012上圖的說明基礎寄存器是控制器寄存器(寄存器0)和狀態寄存器(寄存器1),在GMII(千兆網)接口中海油擴展狀態寄存器(寄存器15)。

本文主要根據802.3-2012協議講解PHY的基礎寄存器,並非根據某個具體芯片講解的。

圖片

寄存器0和寄存器1在協議文檔的中位置以下圖

圖片

上面提到的802.3-2012協議你們能夠到ieee官網下載

https://standards.ieee.org/

或者經過百度網盤下載

連接:https://pan.baidu.com/s/1Nr_KHse32zysBKZ0btPceg

提取碼:xhin

 

0一、控制寄存器(寄存器0)

寄存器0是PHY控制寄存器,經過ControlRegister能夠對PHY的主要工做狀態進行設置

圖片

bit15 Rset

bit15爲1時表示,PHY復位。Bit15控制的是PHY復位功能,在該位置寫入1實現對PHY的復位操做。復位後該端口PHY的其餘控制、狀態寄存器將恢復到默認值,每次PHY復位應該在0.5s的時間內完成,復位過程當中Bit15保持爲1,復位完成以後該位應該自動清零。通常要改變端口的工做模式(如速率、雙工、流控或協商信息等)時,在設置完相應位置的寄存器以後,須要經過Reset位復位PHY來使配置生效。

 

在復位過程完成以前,不須要PHY接受對控制寄存器的寫事務,而在復位過程完成以前,對控制寄存器中除bit15之外的位的寫操做可能無效。

 

bit14 Loopback

Loopback是一個調試以及故障診斷中經常使用的功能,Bit14置1以後,PHY和外部MDI的鏈接在邏輯上將被斷開,從MAC通過MII/GMII(也多是其餘的MAC/PHY接口)發送過來的數據將不會被髮送到MDI上,而是在PHY內部(通常在PCS)迴環到本端口的MII/GMII接收通道上。

 

經過Loopback功能能夠檢查MII/GMII以及PHY接口部分是否工做正常,對於端口不通的狀況可用於故障定位。須要注意的是,不少時候PHY設置Loopback後端口可能就Linkdown了,MAC沒法向該端口發幀,這時就須要經過設置端口ForceLink up才能使用Loopback功能。

 

bit13 Speed SelectionLSB

Bit13和Bit6兩位聯合實現對端口的速率控制功能,具體的對應關係詳見下圖

圖片

須要注意的是SpeedSelection只有在自動協商關閉的狀況下才起做用,若是自動協商設置爲Enable狀態,則該設置不起做用;

 

而且,對SpeedSelection的修改設置,每每須要復位端口才能配置生效。所以在設置該位置的時候須要檢查自動協商的設置並經過Bit15復位端口。

 

bit12 Auto-Negotiation Enable

自動協商(AN)開關。設置爲1表示打開AN功能,端口的工做模式經過和鏈接對端進行自動協商來肯定。若是設置爲0則自動協商功能關閉,端口的工做模式經過ControlRegister相應位置的配置決定。必須注意的是,對於1000BASE-T接口,自動協商必須打開。

 

bit11 Power Down

端口工做開關:設置爲1將使端口進入PowerDown(低功耗狀態)模式,正常狀況下PHY在PowerDown模式其MII和MDI均不會對外發送數據。PowerDown模式通常在軟件shutdown端口的時候使用,須要注意的是端口從PowerDown模式恢復,須要復位端口以保證端口可靠的鏈接。

 

bit10 Isolate

隔離狀態開關:改位置1將致使PHY和MII接口之間處於電氣隔離狀態,除了MDC/MDIO接口的信號外,其餘MII引腳處於高阻態。IEEE802.3沒有對Isolate時MDI接口的狀態進行規範,此時MDI端可能還在正常運行。Isolate在實際應用中並無用到。而且,值得注意的是,因爲目前不少百兆的PHY芯片其MAC接口主流的都是SMII/S3MII,8個端口的接口是相互關聯的,一個端口設置Isolate可能會影響其餘端口的正常使用,所以在使用中注意不要隨意更改bit10的狀態。

 

bit9 Restart Auto-Negotiation

從新啓動自動協商開關:Bit9置1將從新啓動端口的自動協商進程,固然前提是Auto-NegotiationEnable是使能的。通常在修改端口的自動協商能力信息以後經過Bit9置1從新啓動自動協商來使端口按照新的配置創建link。

 

bit8 Duplex Mode

雙工模式設置:Bit8置1端口設置爲全雙工,置0則端設置爲半雙工,和SpeedSelection的設置同樣,DuplexMode的設置只有在自動協商關閉的狀況下才起做用,若是自動協商設置爲Enable狀態,則該設置不起做用,端口的雙工模式根據AN結果來定。對DuplexMode的修改配置也須要復位端口才能生效。

 

bit7 Collision Test

衝突信號(COL)測試開關:在須要對COL信號進行測試時,能夠經過Bit7置1,這時PHY將輸出一個COL脈衝以供測試。實際測試操做中也能夠將端口配置爲半雙工狀態,經過發幀衝突來測試COL信號,所以該配置實用價值不大。

 

bit6 Speed SelectionMSB

和Bit13兩位聯合實現對端口的速率控制功能。

圖片

 

bit5 Unidirectional enable

當第12位爲1或第8位爲0時,該位爲忽略了。

當第12位爲0且第8位爲1:

1:從MII接口啓用傳輸,無論PHY是否肯定已創建有效鏈路

0:僅當PHY肯定已創建有效鏈路時,才啓用從MII接口傳輸

 

Bits 4:0 reserved

保留位,它們應寫入爲零,讀取時應忽略;可是,PHY應返回這些位中的值零。

 

0二、狀態寄存器(寄存器1)

 

寄存器1是PHY狀態寄存器,主要包含PHY的狀態信息。

圖片

bit15 100BASE-T4

PHY使用100BASE-T4信令規範執行鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit14 100BASE-X Full Duplex

PHY使用100BASE-X信令規範執行全雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit13 100BASE-X Half Duplex

PHY使用100BASE-X信令規範執行半雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit12 10Mb/s Full Duplex

PHY具備以10Mb/s的速度運行時執行全雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit11 10Mb/s Half Duplex

PHY具備以10Mb/s的速度運行時執行半雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit10 100BASE-T2 Full Duplex

PHY具備使用100BASE-T2信令規範執行全雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit9 100BASE-T2 Half Duplex

PHY具備使用100BASE-T2信令規範執行半雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit8 Externded Status

1:使能寄存器15

0:不使能寄存器15

 

bit7 Unidirectional ability

1:PHY有能力編碼和傳輸來自PHY的數據經過MII接口,而無論PHY是否已肯定有效鏈路已被鏈接已創建。

0:僅當PHY肯定已創建有效鏈路時,才啓用從MII接口傳輸

 

bit6 MF Preamble Suppression

1:PHY可以接受管理幀,而無論它們前面是否有前導碼模式。

0:PHY不能接受管理幀,除非它們前面有前導碼模式。

 

前導碼模式。

在官方文檔中22.2.4.5.2中有描述的。你們能夠自行查看。

圖片

其實這個前導碼咱們在以前也是講解到的,在文章《STM32網絡之SMI接口》以下圖,建議沒有讀過這篇文章的同窗讀一下。

圖片

 

bit5 Auto-Negotiation Complete

AN完成狀態指示位:Bit5指示的是端口AN進程是否完成的狀態位。在ANEnable的狀況下,Bit5=1表示自動協商進程已經成功結束,此時PHY的其餘和Link狀態相關的寄存器纔是正確可靠的。若是AN進程沒有完成,則這些狀態信息多是錯誤的。在調試以及異常故障處理時,能夠經過該位寄存器的狀態判斷AN是否成功,從而進一步的檢查AN相關的設置是否正確,或者芯片的AN功能是否正常等。

 

bit4 Remote Fault

遠端錯誤指示位:Bit4=1表明鏈接對端(LinkPartner)出錯,至於出錯的具體類型以及錯誤檢測機制在規範中並無定義,由PHY的製造商自由發揮,通常的廠商都會在其餘的寄存器(Register16-31由廠商自行定義)指示比較詳細的錯誤類型。在與端口相關的故障查證中,RemoteFault是一個重要的指示信息,經過互聯雙方的RemoteFault信息(可能要加上其餘的具體錯誤指示),能夠幫助定位故障緣由。

 

bit3 Auto-Negotiation Ability

1:PHY使能自動協商

0:PHY不使能自動協商

 

bit2 Link Status

Link狀態指示位:Bit2=1表明端口Linkup,0則表明端口Linkdown。實際應用中通常都是經過Bit2來判斷端口的狀態。並且,通常的MAC芯片也是經過輪詢PHY的這個寄存器值來判斷端口的Link狀態的(這個過程可能有不一樣的名稱,好比BCM叫作LinkScan,而Marvell叫作PHYPolling。)如前所述,在ANEnable的狀況下,LinkStatus的信息只有在Auto-NegotiationComplete指示已經完成的狀況下才是正確可靠的,不然有可能出錯。

 

bit1 Jabber Detect

1:檢測到抖動(戳刺)狀態

0:沒有檢測到抖動(戳刺)狀態

 

bit0 Extended Capability

1:PHY提供了擴展的功能集,可經過擴展的寄存器集進行訪問。

0:沒有提供擴展寄存器。

 

0三、寄存器15

 

寄存器15主要模式千兆網模式下,PHY的狀態。

圖片

如上圖,寄存器15主要描述,千兆網模式下PHY的狀態,具體含義和寄存器1的相關位差很少。

bit15 1000BASE-X Full Duplex

PHY使用1000BASE-X信令規範執行全雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit14 1000BASE-X Half Duplex

PHY使用100B0ASE-X信令規範執行半雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit13 1000BASE-T Full Duplex

PHY具備使用1000BASE-T信令規範執行全雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

bit12 1000BASE-T Half Duplex

PHY具備使用1000BASE-T信令規範執行半雙工鏈路傳輸和接收的能力。1:具備能力;0:不具備能力。

 

Bits 11:0 reserved

保留位,讀取的時候忽略。

 

04

其餘寄存器

 

除去基礎寄存器,802.3-2012協議也提到了其餘寄存器,這裏簡單說明下,不作重點講解。

 

寄存器23:芯片ID寄存器

寄存器二、3分別是PHYID寄存器,從內核代碼知道,寄存器2(PHYID1)爲高16位,而寄存器3(PHYID2)爲低16位。它們做爲PHY芯片的標識,通常被認爲做用不大,之前有過同一主CPU搭配不一樣的PHY組合不一樣的板卡,使用同一分內核,這裏就能夠用PHYID來作區別。

 

寄存器4:自動協商通告寄存器

該寄存器保存着PHY自己具有的特性、能力。如PHY支持流控、百兆全雙工/半雙工、十兆全雙工/半雙工,等。

當設置爲自動協商使能狀況下經過FLP在MDI上進行通告。若是不使能,則此寄存器的配置無效。

 

寄存器5:自動協商對端能力通告寄存器

該寄存器和寄存器4相似,它表示對端(交換機或PC)具有的特性、能力。一樣要注意是的只有在自動協商使能狀況下該寄存器信息纔有效。因爲此寄存器表示的是對端的狀態,因此通常狀況下寄存器的值被設計爲只讀,但有的芯片如dm9000的流控位5.10FCS是可讀寫的。

該寄存器主要用來了解對端的狀況,在出現問題時,能夠了解對方的信息,從而大體定位範圍。而不用一味地找自身緣由。萬一真的是對端的交換機出現故障,此寄存器就是有力的現場證據。

 

點擊查看本文所在的專輯,STM32F207網絡開發

相關文章
相關標籤/搜索