Linux下rgmii接口与fpga相连,FPGA控制RGMII接口PHY芯片88E1512网络通信
一、前言
網(wǎng)絡(luò)通信中的PHY芯片接口種類有很多,之前接觸過(guò)GMII接口的PHY芯片RTL8211EG。但GMII接口數(shù)量較多,本文使用RGMII接口的88E1512搭建網(wǎng)絡(luò)通信系統(tǒng)。這類接口總線位寬小,可以降低電路成本,在實(shí)際項(xiàng)目中應(yīng)用更廣泛。
二、從GMII過(guò)度到RGMII
先看看GMII和RGMII主要的接口。
GMII:
發(fā)送gmii_tx_clkgmii_tx_d[7:0]gmii_tx_engmii_tx_er
接收gmii_rx_clkgmii_rx_d[7:0]gmii_rx_dvgmii_rx_er
RGMII:
發(fā)送tx_clktx_d[3:0]tx_ctrl
接收rx_clkrx_d[3:0]rx_ctrl
為什么接口變少了?首先數(shù)據(jù)總線從時(shí)鐘單邊沿采樣8bit轉(zhuǎn)變?yōu)榱穗p邊沿采樣4bit,從88E1512Datasheet中時(shí)序圖可以直觀看出這一點(diǎn)。
RGMII中上升沿發(fā)送一字節(jié)數(shù)據(jù)的低四位,下降沿發(fā)送剩余的高四位數(shù)據(jù)。接收端時(shí)鐘雙邊沿采樣,因此125MHZ*8bit=125MHZ*4bit*2=1000Mbit/s。至于GMII中的數(shù)據(jù)有效和數(shù)據(jù)錯(cuò)誤指示信號(hào)被ctrl信號(hào)復(fù)用:tx_ctrl在時(shí)鐘tx_clk上升沿發(fā)送是tx_en,在下降沿發(fā)送是tx_en^tx_er。rx_ctrl在時(shí)鐘rx_clk上升沿接收是rx_dv,在下降沿接收是rx_en^rx_er。綜上,RGMII接口引腳數(shù)從25個(gè)降低到14個(gè)。
三、addclockskew
從上邊的時(shí)序圖分析,數(shù)據(jù)在時(shí)鐘的邊沿變化。因此如果不做額外處理,接收端無(wú)法穩(wěn)定采樣。為了解決這一問(wèn)題,常見(jiàn)的做法是為時(shí)鐘信號(hào)添加延時(shí),使其邊沿對(duì)準(zhǔn)數(shù)據(jù)總線的穩(wěn)定區(qū)間。可以在控制器端、PCB走線以及PHY芯片內(nèi)部添加時(shí)鐘偏移,本文使用最后一種方式實(shí)現(xiàn)。
在第三階段中添加延遲。數(shù)據(jù)發(fā)送方向,FPGA側(cè)的TX_CLK信號(hào)不需要額外處理,也就是說(shuō)FPGA發(fā)送與數(shù)據(jù)邊沿對(duì)齊的時(shí)鐘信號(hào)。TXD和TX_CLK信號(hào)波形如圖。
PHY內(nèi)部會(huì)調(diào)整TX_CLK,使之能夠穩(wěn)定采樣TXD。數(shù)據(jù)接收方向,由于RX_CLK由PHY提供,PHY芯片直接產(chǎn)生與數(shù)據(jù)中心對(duì)齊的時(shí)鐘信號(hào)。RXD和RX_CLK信號(hào)波形如圖。
可見(jiàn),使PHY芯片工作在延遲模式下時(shí),FPGA單不需要添加額外的邏輯來(lái)保證穩(wěn)定采樣。發(fā)送方向直接將數(shù)據(jù)驅(qū)動(dòng)時(shí)鐘作為TX_CLK信號(hào)發(fā)送,接收方向直接利用RX_CLK對(duì)RXD信號(hào)采樣。
四、系統(tǒng)設(shè)計(jì)方案
本文使用ZYNQ內(nèi)部的MAC控制器實(shí)現(xiàn)數(shù)據(jù)鏈路層功能。但由于其接口為GMII,需要用到GMII_to_RGMIIIPCore轉(zhuǎn)換接口邏輯。上層網(wǎng)絡(luò)協(xié)議則通過(guò)LWIP開源協(xié)議棧完成。首先配置ZYNQIP,使能ENET1并以EMIO方式引出。
系統(tǒng)硬件結(jié)構(gòu)如圖:
在較高速設(shè)計(jì)場(chǎng)合下,輸入輸出接口部分很容易出現(xiàn)數(shù)據(jù)采樣不穩(wěn)定的現(xiàn)象。這時(shí)候就要通過(guò)Inputdelay,outputdelay約束以及STA來(lái)分析設(shè)計(jì)是否滿足穩(wěn)定采樣需求。input/outputdelay是指數(shù)據(jù)相對(duì)于時(shí)鐘的延遲,只有設(shè)置好上述兩個(gè)數(shù)值,綜合工具才會(huì)往正確的方向優(yōu)化并給出合理的時(shí)序報(bào)告。
FPGA與RGMII接口的PHY芯片之間的時(shí)序關(guān)系按照數(shù)據(jù)接口同步和數(shù)據(jù)采樣方式屬于源同步DDR采樣。inputdelay約束對(duì)應(yīng)接收方向,時(shí)序關(guān)系是中心對(duì)齊。outputdelay約束對(duì)應(yīng)發(fā)送方向,時(shí)序關(guān)系是邊沿對(duì)齊。前者由于很多時(shí)候不知道上游器件Tcko信息,會(huì)使用示波器測(cè)量有效數(shù)據(jù)窗口來(lái)計(jì)算。而后者因?yàn)槭沁呇貙?duì)齊,通過(guò)示波器測(cè)量抖動(dòng)窗口并使用skewbasedmethod計(jì)算。這部分筆者還沒(méi)有親身實(shí)踐過(guò),若有誤歡迎指出。
參考文獻(xiàn)
1千兆以太網(wǎng)芯片88E1111RGMII模式的驅(qū)動(dòng)-我心狂野-博客園
2RGMII布線指導(dǎo)RGMIILayoutGuide|無(wú)線時(shí)代
3RGMII_PHY測(cè)試筆記1基于開發(fā)板MiS603-X25-whilebreak-電子技術(shù)應(yīng)用-AET-北大中文核心期刊-最豐富的電子設(shè)計(jì)資源平臺(tái)
5RGMIIInterfacemingConsideraTIons|EthernetFMC
6ALTERAAN477:DesigningRGMIIInterfaceswithFPGAsandHardCopyASICs
7米聯(lián)客ESFP1512以太網(wǎng)SFP光電卡教程
本文為csdn博主“FPGA技術(shù)江湖”原創(chuàng)文章,在此特別鳴謝。
原文鏈接:https://blog.csdn.net/qq_40310273/arTIcle/details/106355201
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Linux下rgmii接口与fpga相连,FPGA控制RGMII接口PHY芯片88E1512网络通信的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 成都一罐车撞塌桥墩 撞击瞬间曝光:有轿车
- 下一篇: Linux下解决发布Qt程序报错:it