0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的MDIO接口讀寫測試方案

CHANBAEK ? 來源:FPGA Zone ? 作者:FPGA Zone ? 2023-10-01 09:46 ? 次閱讀

本文開源一個FPGA項(xiàng)目:MDIO接口讀寫測試。以太網(wǎng)通信模塊主要由 MAC (Media Access Control)控制器和物理層接口 PHY (Physical Layer)兩部分構(gòu)成。其中,MAC控制器和PHY可以整合到同一芯片內(nèi),也可以分開,即MAC控制器由FPGA實(shí)現(xiàn),PHY由以太網(wǎng)芯片實(shí)現(xiàn)。PHY芯片內(nèi)部寄存器數(shù)據(jù)讀寫是通過MDIO接口實(shí)現(xiàn)的,可以對PHY芯片工作模式進(jìn)行配置并獲取PHY芯片工作狀態(tài)。

01PHY芯片

PHY芯片發(fā)送數(shù)據(jù)時,將MAC控制器發(fā)來的數(shù)據(jù)轉(zhuǎn)化為串行數(shù)據(jù)流,按照物理層編碼規(guī)則把數(shù)字信號轉(zhuǎn)化為模擬信號發(fā)出去,接收數(shù)據(jù)反之。

另外,PHY芯片具有自協(xié)商功能。當(dāng)連接好網(wǎng)線時,PHY芯片會自動檢測對端設(shè)備,并通過協(xié)商確定連接速度、雙工模式等。最終確定兩個設(shè)備同時支持的最大數(shù)據(jù)傳輸速度和最佳雙工模式。

PHY地址

本文以YT8511 PHY芯片為例。其PHY地址由LED_ACT和RXD[1:0]決定。PHY地址一共有5位,高2位固定為0,LED_ACT和RXD[1:0]表示低3位,可以通過硬件電路進(jìn)行配置。即地址范圍從00001到00111。

復(fù)位

PHY芯片支持軟硬件復(fù)位,硬件復(fù)位是通過將ETH_RST_N引腳拉低10ms實(shí)現(xiàn),軟件復(fù)位是通過向地址0x00寄存器的bit[15]寫入1進(jìn)行復(fù)位,復(fù)位完成后,該位會自動清零。

寄存器

YT8511共有22位寄存器,常用的就只有控制寄存器、基本狀態(tài)寄存器、和PHY芯片特定狀態(tài)寄存器:

控制寄存器用于控制芯片復(fù)位、內(nèi)部回環(huán)模式、選擇網(wǎng)速、自協(xié)商等功能;

基本狀態(tài)寄存器用于獲取PHY芯片自協(xié)商狀態(tài)、連接狀態(tài);

PHY芯片特定狀態(tài)寄存器用于獲取PHY芯片連接速度。

02MDIO接口

MAC和PHY芯片之間有一個配置接口,F(xiàn)PGA通過MDIO接口對PHY芯片內(nèi)部寄存器進(jìn)行配置,一般來講PHY芯片在默認(rèn)寄存器配置下就可以正常工作。

圖片

MDIO接口也被成為SMI接口,即串行管理接口。具體包括時鐘(ETH_MDC)和數(shù)據(jù)輸入輸出(ETH_MDIO)信號接口。其中,時鐘信號頻率應(yīng)低于12.5Mhz。

通信協(xié)議

圖片

MDIO接口通信協(xié)議如上圖所示,其中:

Preamble :32位前導(dǎo)碼,用于同步PHY芯片;

ST :2位幀開始信號;

OP :2位操作碼,讀10,寫01;

PHYAD :5位PHY地址,用于確定與那個PHY芯片進(jìn)行通信;

REGAD :5位寄存器地址;

TA (Turnaround):2位轉(zhuǎn)向。在讀命令中,MDIO在此時由MAC驅(qū)動改為PHY驅(qū)動,在第1位,MDIO引腳為高阻狀態(tài),第2位,PHY將MDIO引腳拉低,準(zhǔn)備發(fā)送數(shù)據(jù);在寫命令中,不需要MDIO方向發(fā)生變化,MAC固定輸出10,隨后開始寫入數(shù)據(jù);

DATA :16位數(shù)據(jù);

IDLE :空閑狀態(tài),此時MDIO為無源驅(qū)動,處于高阻狀態(tài),但一般用上拉電阻使其上拉至高電平。

讀時序

圖片

MDIO接口讀時序如上圖所示,以讀取0x00地址下寄存器數(shù)據(jù)為例。整個讀操作過程的MDC時鐘由MAC驅(qū)動,同時MAC驅(qū)動MDIO引腳輸出前導(dǎo)碼+幀開始+操作碼+PHY地址+寄存器地址,隨后MDIO引腳切換至PHY驅(qū)動。在第一個TA位,MDIO引腳為高阻狀態(tài),第二個TA位為低電平,表示PHY芯片成功響應(yīng),并且接下來會輸出16位寄存器數(shù)據(jù);而如果第二個TA位處于高電平,則PHY芯片響應(yīng)失敗,有可能PHY地址不正確或者其它時序的錯誤。

需要注意的是,PHY在MDC時鐘的上升沿采集數(shù)據(jù),為保證數(shù)據(jù)的穩(wěn)定傳輸,MAC在MDC的下降沿更新MDIO引腳的數(shù)據(jù)。當(dāng)MDIO引腳切換至PHY驅(qū)動時,MDIO數(shù)據(jù)在MDC時鐘的下降沿更新,因此MAC在MDC時鐘的上升沿采集數(shù)據(jù)。在讀操作結(jié)束后,MAC將MDIO引腳輸出高阻,此時MDIO引腳的外部上拉電阻會將MDIO引腳拉高,此時MDIO接口處于空閑狀態(tài)。

寫時序

圖片

MDIO接口寫時序如上圖所示,以往0x00地址下寄存器寫入0x1340為例。在整個寫操作過程中,MDC時鐘和MDIO引腳一直由MAC端驅(qū)動,按照MDIO接口寫通信協(xié)議開始傳輸數(shù)據(jù)。需要注意的是,PHY在MDC時鐘的上升沿采集數(shù)據(jù),為保證數(shù)據(jù)的穩(wěn)定傳輸,MAC在MDC的下降沿將數(shù)據(jù)更新至MDIO引腳。在寫操作結(jié)束后,MAC將MDIO引腳輸出高阻,此時MDIO引腳的外部上拉電阻會將MDIO引腳拉高,此時MDIO接口處于空閑狀態(tài)。

03實(shí)現(xiàn)功能

本文開源的MDIO讀寫模塊實(shí)現(xiàn)的功能主要是:FPGA通過MDIO接口每隔一定時間循環(huán)讀取PHY芯片各個寄存器的值,并通過MDIO接口對PHY芯片進(jìn)行軟復(fù)位。其中,mdio_dri實(shí)現(xiàn)了MDIO接口數(shù)據(jù)讀寫驅(qū)動,mdio_ctrl實(shí)現(xiàn)了MDIO讀寫控制功能。使用Vivado軟件仿真結(jié)果如下圖所示:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21494

    瀏覽量

    598427
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8219

    瀏覽量

    149804
  • Mac
    Mac
    +關(guān)注

    關(guān)注

    0

    文章

    1082

    瀏覽量

    51111
  • PHY
    PHY
    +關(guān)注

    關(guān)注

    2

    文章

    294

    瀏覽量

    51519
  • MDIO
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    11170
收藏 人收藏

    評論

    相關(guān)推薦

    通過MDIO接口管理PHY芯片的驗(yàn)證設(shè)計(jì)方案

    無法破解。不同廠家之間無法移植,而且為了通用性考慮犧牲了效率,因此自己動手寫一個以太網(wǎng)MAC是個不錯的選擇。 本博文討論通過MDIO接口管理PHY芯片來驗(yàn)證其正確工作,為在此基礎(chǔ)上設(shè)計(jì)MAC邏輯開個頭。PHY芯片采用RTL8211EGVB,選用GMII
    的頭像 發(fā)表于 12-29 14:17 ?7153次閱讀
    通過<b class='flag-5'>MDIO</b><b class='flag-5'>接口</b>管理PHY芯片的驗(yàn)證設(shè)計(jì)<b class='flag-5'>方案</b>

    基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-MDIO驅(qū)動編寫與測試

    本文轉(zhuǎn)自公眾號歡迎關(guān)注 基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-MDIO驅(qū)動編寫與測試 一.前言 以太網(wǎng)驅(qū)動的編寫與調(diào)試往往從MDIO接口開始,
    的頭像 發(fā)表于 08-30 09:37 ?3196次閱讀
    基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-<b class='flag-5'>MDIO</b>驅(qū)動編寫與<b class='flag-5'>測試</b>

    請問C6748芯片中MDIO讀寫速率分別最大是多少?

    您好: 現(xiàn)在使用C6748芯片的MDIO模塊進(jìn)行數(shù)據(jù)的讀寫,MDC速率現(xiàn)在設(shè)置為50MHz;想請教下:現(xiàn)在MDIO讀寫速率分別最大是多少?在手冊上沒找到。謝謝!
    發(fā)表于 07-25 07:00

    請教關(guān)于c6748的MDIO接口讀寫phy的問題

    你好: 使用C6748的MDIO接口讀寫Lan8700,RMII模式,時鐘信號為50MHz。參照C6748_Startware_1_20_04_01/examples/evm6748
    發(fā)表于 07-25 07:38

    ADSP 21489使用ami接口fpga連接如何編寫測試程序進(jìn)行讀寫驗(yàn)證

    購買了adsp-21489處理器 。現(xiàn)在有兩個問題。一:使用ami接口fpga連接,如何編寫測試程序進(jìn)行讀寫驗(yàn)證;二:如何配置dai下的pdap
    發(fā)表于 01-08 09:55

    基于ARM和FPGA的環(huán)形緩沖區(qū)接口設(shè)計(jì)方案

    摘要:目前,基于ARM和FPGA架構(gòu)的嵌入式系統(tǒng)在通信設(shè)備中得到廣泛的應(yīng)用。文章提出了一種基于ARM和FPGA的環(huán)形緩沖區(qū)接口設(shè)計(jì)方案,從而實(shí)現(xiàn)了ARM和
    發(fā)表于 05-30 05:00

    【正點(diǎn)原子FPGA連載】 第二十四章MDIO接口讀寫測試實(shí)驗(yàn)-領(lǐng)航者ZYNQ之FPGA開發(fā)指南

    原子公眾號,獲取最新資料第二十四章MDIO接口讀寫測試實(shí)驗(yàn)在以太網(wǎng)通信中,設(shè)備之間的物理層鏈路均由PHY芯片(物理層芯片,本文指B50610)建立。PHY芯片有一個配置
    發(fā)表于 09-27 18:05

    【正點(diǎn)原子FPGA連載】 第二十四章MDIO接口讀寫測試實(shí)驗(yàn)-領(lǐng)航者ZYNQ之FPGA開發(fā)指南

    原子公眾號,獲取最新資料第二十四章MDIO接口讀寫測試實(shí)驗(yàn)在以太網(wǎng)通信中,設(shè)備之間的物理層鏈路均由PHY芯片(物理層芯片,本文指B50610)建立。PHY芯片有一個配置
    發(fā)表于 09-29 18:10

    基于FPGAMDIO接口邏輯設(shè)計(jì)

    本文介紹了一種基于FPGA 的用自定義串口命令的方式實(shí)現(xiàn)MDIO 接口邏輯設(shè)計(jì)的方法,并對系統(tǒng)結(jié)構(gòu)進(jìn)行了模塊化分解以適應(yīng)自頂向下的設(shè)計(jì)方法。所有功能的實(shí)現(xiàn)全部采用VHDL 進(jìn)行描
    發(fā)表于 12-26 16:48 ?103次下載

    應(yīng)對多樣化數(shù)字接口測試挑戰(zhàn)的解決方案——基于可編程FPGA測試

    。專用測試儀器是非常昂貴的,通用數(shù)字I/O接口測試儀器僅試用部分方案并且需要大量編程/調(diào)試工作,最終也會增加成本。然而,基于可編程FPGA
    發(fā)表于 10-12 17:20 ?10次下載

    應(yīng)對多樣化數(shù)字接口測試挑戰(zhàn)的解決方案——基于可編程FPGA測試儀器

    應(yīng)對多樣化數(shù)字接口測試挑戰(zhàn)的解決方案——基于可編程FPGA測試儀器
    發(fā)表于 10-16 13:57 ?3次下載
    應(yīng)對多樣化數(shù)字<b class='flag-5'>接口</b><b class='flag-5'>測試</b>挑戰(zhàn)的解決<b class='flag-5'>方案</b>——基于可編程<b class='flag-5'>FPGA</b>的<b class='flag-5'>測試</b>儀器

    多樣化數(shù)字接口測試挑戰(zhàn)的解決方案——基于可編程FPGA測試儀器

    多樣化數(shù)字接口測試挑戰(zhàn)的解決方案——基于可編程FPGA測試儀器
    發(fā)表于 10-19 08:45 ?11次下載
    多樣化數(shù)字<b class='flag-5'>接口</b><b class='flag-5'>測試</b>挑戰(zhàn)的解決<b class='flag-5'>方案</b>——基于可編程<b class='flag-5'>FPGA</b>的<b class='flag-5'>測試</b>儀器

    MDIO接口的基礎(chǔ)知識詳解

    MDIO接口,是Management Data Input/Output的縮寫。MDIO接口包含在IEEE802.3協(xié)議中,是專用于以太PHY的管理的串行總線
    發(fā)表于 09-29 14:55 ?4.7w次閱讀
    <b class='flag-5'>MDIO</b><b class='flag-5'>接口</b>的基礎(chǔ)知識詳解

    基于AXI總線的DDR3讀寫測試

    本文開源一個FPGA項(xiàng)目:基于AXI總線的DDR3讀寫。之前的一篇文章介紹了DDR3簡單用戶接口讀寫方式:《DDR3讀寫
    的頭像 發(fā)表于 09-01 16:20 ?3713次閱讀
    基于AXI總線的DDR3<b class='flag-5'>讀寫</b><b class='flag-5'>測試</b>

    基于FPGA的DDR3讀寫測試

    本文介紹一個FPGA開源項(xiàng)目:DDR3讀寫。該工程基于MIG控制器IP核對FPGA DDR3實(shí)現(xiàn)讀寫操作。
    的頭像 發(fā)表于 09-01 16:23 ?1335次閱讀
    基于<b class='flag-5'>FPGA</b>的DDR3<b class='flag-5'>讀寫</b><b class='flag-5'>測試</b>