在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于PHY的三大寄存器詳解

FPGA之家 ? 來源:CSDN技術社區 ? 作者:Firefly_cjd ? 2021-03-21 10:43 ? 次閱讀

在之前的文章,我們講解了STM32的網絡外設部分。

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

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

為什么STM32不集成PHY呢?

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

1、PHY芯片是模擬芯片,需要將網線的差分信號轉換成數字信號,如果集成,則芯片面積增加,如果要降低功耗,還要高的芯片制造工藝,這會直接將芯片成本拉高。

2、并不是所有的STM32使用者都需要使用到網絡,集成PHY會增加成本。

所以,STM32不集成PHY不是技術問題,而是各方面考慮的結果。

難道沒有集成PHY的MCU嗎?

有的,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在協議文檔的中位置如下圖

01控制寄存器(寄存器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 Selection(LSB)

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 Selection(MSB)

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

bit5 Unidirectional enable

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

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

1:從MII接口啟用傳輸,不管PHY是否確定已建立有效鏈路

0:僅當PHY確定已建立有效鏈路時,才啟用從MII接口傳輸

Bits 4:0 reserved

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

02狀態寄存器(寄存器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:沒有提供擴展寄存器。

03寄存器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協議也提到了其他寄存器,這里簡單說明下,不做重點講解。

寄存器2、3:芯片ID寄存器

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

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

該寄存器保存著PHY本身具備的特性、能力。如PHY支持流控、百兆全雙工/半雙工、十兆全雙工/半雙工,等。

當設置為自動協商使能情況下通過FLP在MDI上進行通告。如果不使能,則此寄存器的配置無效。

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

該寄存器和寄存器4類似,它表示對端(交換機或PC)具備的特性、能力。同樣要注意是的只有在自動協商使能情況下該寄存器信息才有效。由于此寄存器表示的是對端的狀態,所以一般情況下寄存器的值被設計為只讀,但有的芯片如dm9000的流控位5.10FCS是可讀寫的。

該寄存器主要用來了解對端的情況,在出現問題時,可以了解對方的信息,從而大致定位范圍。而不用一味地找自身原因。萬一真的是對端的交換機出現故障,此寄存器就是有力的現場證據。
編輯:lyn

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5424

    瀏覽量

    123500
  • STM32
    +關注

    關注

    2290

    文章

    11018

    瀏覽量

    362656
  • PHY
    PHY
    +關注

    關注

    2

    文章

    315

    瀏覽量

    52533

原文標題:PHY寄存器

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    詳解寄存器模型鏡像值

    DUT的配置寄存器的值是實際值,reg_model有鏡像值、期望值的概念。
    的頭像 發表于 10-23 09:43 ?870次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>寄存器</b>模型鏡像值

    接口的控制與狀態寄存器什么作用

    接口的控制與狀態寄存器(Control and Status Registers,簡稱CSR)是計算機系統中用于控制和監控硬件設備操作的寄存器。它們是硬件設備與其驅動程序之間的橋梁,允許軟件控制硬件
    的頭像 發表于 10-17 10:42 ?1418次閱讀

    寄存器間接尋址和寄存器尋址的區別

    寄存器間接尋址和寄存器尋址是計算機體系結構中兩種重要的尋址方式,它們在指令執行過程中起著關鍵作用。下面將從定義、原理、特點、應用場景以及區別等方面對這兩種尋址方式進行詳細闡述。
    的頭像 發表于 10-05 17:13 ?3334次閱讀

    ARM寄存器的分類及功能

    ARM寄存器是ARM處理內部的重要組成部分,它們在處理的運算、控制以及數據存儲等方面發揮著至關重要的作用。下面,我們將從ARM寄存器的定義、結構、分類以及功能等多個方面進行詳細闡述
    的頭像 發表于 09-05 14:18 ?2775次閱讀

    通用寄存器是什么意思

    在計算機體系結構中,通用寄存器是中央處理(CPU)內部最為核心和基礎的組成部分之一。它們被設計為能夠存儲和傳輸各種類型的數據和指令,是CPU進行數據處理和運算的關鍵工具。通用寄存器不僅在程序的執行過程中起著至關重要的作用,還直
    的頭像 發表于 09-05 14:13 ?2044次閱讀

    寄存器的類型和作用

    在計算機科學中,寄存器(Register)是一種高速存儲單元,它位于CPU內部,與CPU的運算單元和邏輯控制單元緊密相連。寄存器的主要作用是暫時存儲指令、操作數和地址等臨時數據,以便CPU快速訪問和處理。由于寄存器直接集成在CP
    的頭像 發表于 09-05 14:11 ?4455次閱讀

    寄存器故障分析

    寄存器故障分析是計算機硬件維護與系統穩定性保障中的重要環節。寄存器作為計算機中的關鍵組成部分,負責存儲和傳輸數據,其穩定性和可靠性直接影響到整個計算機系統的性能。以下是對寄存器故障的全面分析,包括故障類型、故障現象、故障原因及診
    的頭像 發表于 08-29 11:26 ?2028次閱讀

    寄存器是什么意思?寄存器是如何構成的?

    在計算機科學中,寄存器(Register)是一個高速存儲單元,它位于中央處理(CPU)內部,用于存儲計算機程序執行過程中所需要的數據、指令地址或狀態信息。寄存器是計算機體系結構中至關重要的組成部分,對計算機的運算速度和性能有著
    的頭像 發表于 08-02 18:23 ?7012次閱讀
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何構成的?

    寄存器尋址和直接尋址的區別

    寄存器尋址和直接尋址是計算機指令系統中的兩種基本尋址方式。它們在指令的執行過程中起著至關重要的作用,決定了指令操作數的來源和目標。下面我們將介紹這兩種尋址方式的特點、區別以及在實際應用中的優缺點
    的頭像 發表于 07-12 10:42 ?4016次閱讀

    寄存器尋址的實現方式

    在計算機體系結構中,寄存器尋址是一種常見的尋址方式,它允許程序直接訪問CPU內部的寄存器。寄存器尋址可以提高程序的執行效率,因為它避免了對內存的訪問。 寄存器尋址的基本概念
    的頭像 發表于 07-12 10:36 ?1377次閱讀

    寄存器有哪幾種?可以實現什么功能?

    寄存器是計算機中用于存儲數據和指令的高速存儲設備,是計算機硬件的重要組成部分。寄存器的種類很多,不同的寄存器具有不同的功能。 通用寄存器(General-Purpose Registe
    的頭像 發表于 07-12 10:32 ?2106次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計算機中用于存儲數據的高速存儲單元,它們是CPU內部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發表于 07-12 10:31 ?2112次閱讀

    移位寄存器的工作原理、類型及應用

    移位寄存器是一種電子設備,用于存儲和操作數據。它由一系列存儲單元組成,每個存儲單元可以存儲一位二進制數字。移位寄存器的主要功能是將數據從一個存儲單元移動到另一個存儲單元,從而實現數據的存儲和傳輸
    的頭像 發表于 07-12 10:22 ?3303次閱讀

    移位寄存器中使用的儲存單元是什么

    移位寄存器是一種常見的數字電路組件,用于存儲和傳輸數字信號。在移位寄存器中,存儲單元是其核心組成部分,負責存儲數字信號的每一位。本文將介紹移位寄存器中使用的存儲單元。 移位寄存器概述
    的頭像 發表于 07-12 10:21 ?795次閱讀

    移位寄存器右移是怎么移位的

    移位寄存器是一種在數字電路和計算機科學中廣泛使用的存儲設備,它可以用來存儲和傳輸數據。在移位寄存器中,數據可以通過移位操作來實現數據的傳輸和處理。移位寄存器的移位操作有兩種基本形式:左移和右移。本文
    的頭像 發表于 07-12 10:14 ?2813次閱讀
    主站蜘蛛池模板: 亚洲区一二三四区2021 | 黑人40厘米全进去xxxx猛交 | 欧美又粗又硬又大久久久 | 国产亚洲一区二区三区在线 | 国产成人一级片 | 国产一级特黄aa级特黄裸毛片 | 欧美一区二区三区在线 | 久久国产伦三级理电影 | 久久夜色精品国产噜噜小说 | 99久久精品免费观看国产 | 国产偷窥女洗浴在线观看亚洲 | 好男人www社区影视在线 | 男男gay污小黄文 | 国产色婷婷精品综合在线 | 四虎美女 | 国内精品 第一页 | 日本丝瓜着色视频 | 赛罗奥特曼银河帝国普通话免费版 | 国产馆精品推荐在线观看 | 日本v片免费一区二区三区 日本www.色 日本wwwwww | 加勒比精品久久一区二区三区 | 性欧美高清短视频免费 | 在线另类 | 你懂的手机在线视频 | 视频一区日韩 | 男女爱爱福利 | 第四色播日韩第一页 | 亚欧人成精品免费观看 | 日本色网址 | 国产免费人成在线视频视频 | 在线免费看片a | 天堂网在线看 | 免费看一毛一级毛片视频 | 好色成人网 | 久久手机看片你懂的日韩1024 | 天天精品 | 性生交酡| 华人永久免费视频 | 亚洲国内精品久久 | 亚洲第一视频在线观看 | 在线视频亚洲 |