本文繼續(xù)簡單介紹一下基于FPGA的以太網(wǎng)ARP通信,該項目主要用于實現(xiàn)FPGA端以太網(wǎng)接口和上位機進行ARP請求和應(yīng)答的功能。
RGMII接口
以太網(wǎng)的通信離不開物理層PHY芯片的支持,以太網(wǎng)MAC和PHY之間有一個接口,常用的接口有MII、RMII、GMII、RGMII等。
MII (媒體獨立接口):MII支持10Mbps和100Mbps的操作,數(shù)據(jù)位寬為4位,在100Mbps傳輸速率下,時鐘頻率為25Mhz。
RMII (Reduced MII):RMII是MII的簡化版,數(shù)據(jù)位寬為2位,在100Mbps傳輸速率下,時鐘頻率為50Mhz。
GMII (Gigabit MII):GMII接口向下兼容MII接口,支持10Mbps、100Mbps和1000Mbps的操作,數(shù)據(jù)位寬為8位,在1000Mbps傳輸速率下,時鐘頻率為125Mhz。
RGMII (Reduced GMII):RGMII是GMII的簡化版,數(shù)據(jù)位寬為4位,在1000Mbps傳輸速率下,時鐘頻率為125Mhz,在時鐘的上下沿同時采樣數(shù)據(jù)。在100Mbps和10Mbps通信速率下,為單個時鐘沿采樣。
在千兆以太網(wǎng)中,常用的接口為RGMII和GMII接口。RGMII接口的優(yōu)勢是同時適用于10M/100M/1000Mbps通信速率,同時占用的引腳數(shù)較少。但RGMII接口也有其缺點,就是在PCB布線時需要盡可能對時鐘、控制和數(shù)據(jù)線進行等長處理,且時序約束相對也更為嚴格。
ETH_RXC :接收數(shù)據(jù)參考時鐘,1000Mbps速率下,時鐘頻率為125MHz,時鐘為上下沿同時采樣;100Mbps速率下,時鐘頻率為25MHz;10Mbps速率下,時鐘頻率為2.5MHz,ETH_RXC由PHY側(cè)提供。
ETH_RXCTL (ETH_RX_DV):接收數(shù)據(jù)控制信號。
ETH_RXD :四位并行的接收數(shù)據(jù)線。
ETH_TXC :發(fā)送參考時鐘,1000Mbps速率下,時鐘頻率為125MHz,時鐘為上下沿同時采樣;100Mbps速率下,時鐘頻率為25MHz;10Mbps速率下,時鐘頻率為2.5MHz,ETH_TXC由MAC側(cè)提供。
ETH_TXCTL (ETH_TXEN):發(fā)送數(shù)據(jù)控制信號。
ETH_TXD :四位并行的發(fā)送數(shù)據(jù)線。
ETH_RESET_N :芯片復(fù)位信號,低電平有效。
ETH_MDC :數(shù)據(jù)管理時鐘,該引腳對ETH_MDIO信號提供了一個同步的時鐘。
ETH_MDIO :數(shù)據(jù)輸入/輸出管理,該引腳提供了一個雙向信號用于傳遞管理信息。
RGMII接口時序
PHY芯片的RGMII接口時序,其時鐘、控制信號和數(shù)據(jù)的對齊方式,一般由MDIO接口或者硬件上的特殊引腳進行配置。
接收時序
RXC的上下邊沿與RXD和RX_CTL信號對齊,相位相同。
RGMII接收端口時鐘和控制/數(shù)據(jù)信號增加延時的時序圖如下:
RXC的上下邊沿與RXD和RX_CTL信號的中間位置對齊,RXC的時鐘周期為8ns,單個高電平或者低電平為4ns,RXC相對于RXD和RX_CTL延時約2ns。
YT8511 RGMII接收端口的信號對齊模式由硬件上的特殊引腳外接上下拉電阻進行配置,如下圖所示,當管腳LED_10_100接上拉電阻時,表示RXC時鐘相對于RXD信號,會增加約2ns的延時。
發(fā)送時序
RGMII發(fā)送端口正常模式下,需要滿足TXC的上下邊沿與TXD和TX_CTL信號對齊,相位相同。YT8511在硬件上面沒有做TX端的delay模式,可根據(jù)實際情況,選擇是否在代碼中進行延時(因為一般對端設(shè)備的接收端會有延時處理的功能,因此發(fā)送端也可以不延時),延時后的時序圖如下所示:
由RGMII的接口時序可知,RGMII發(fā)送端口在TXC時鐘的上升沿傳輸TXD的低4位和TX_CTL的使能信號;下降沿傳輸TXD的高4位和TX_CTL的錯誤信號(實際上是使能信號和錯誤信號的異或值);RGMII接收端口在RXC時鐘的上升沿傳輸RXD的低4位和RX_CTL的使能信號;下降沿傳輸RXD的高4位和RX_CTL的錯誤信號(實際上是使能信號和錯誤信號的異或值)。
實現(xiàn)功能
該項目采用FPGA端以太網(wǎng)接口,和上位機實現(xiàn)ARP請求和應(yīng)答的功能。當上位機發(fā)送ARP請求時,F(xiàn)PGA返回ARP應(yīng)答數(shù)據(jù),當FPGA發(fā)送ARP請求時,上位機返回ARP應(yīng)答數(shù)據(jù)。
功能測試
ARP接收
ARP發(fā)送
利用上位機端wireshark軟件抓取FPGA端發(fā)來的ARP請求數(shù)據(jù)包,如下圖所示:
下圖中下方紅框為FPGA發(fā)送的16進制數(shù)據(jù)(去掉前導(dǎo)碼、SFD和CRC值),可以看到,后面的18個0就是我們在發(fā)送時填充的18個字節(jié)數(shù)據(jù)。
-
FPGA
+關(guān)注
關(guān)注
1643文章
21980瀏覽量
614519 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5590瀏覽量
174936 -
接口
+關(guān)注
關(guān)注
33文章
8961瀏覽量
153259 -
通信
+關(guān)注
關(guān)注
18文章
6182瀏覽量
137411 -
ARP
+關(guān)注
關(guān)注
0文章
50瀏覽量
14952
發(fā)布評論請先 登錄
基于FPGA的以太網(wǎng)ARP通信測試(一)

【小梅哥2017力作】詳細的FPGA以太網(wǎng)設(shè)計教程,76頁精華PDF
【AC620 FPGA試用體驗】以太網(wǎng)ARP幀發(fā)包實例(手動CRC)
【正點原子FPGA連載】第二十五章以太網(wǎng)ARP測試實驗-領(lǐng)航者ZYNQ之FPGA開發(fā)指南
基于BL706 emac實現(xiàn)通過以太網(wǎng)發(fā)送一個ARP裸數(shù)據(jù)包的例程
基于以太網(wǎng)接口的TCP/IP 實驗

基于FPGA的萬兆以太網(wǎng)接口的設(shè)計與實現(xiàn)
基于FPGA的實時以太網(wǎng)(PowerLink)星載通信技術(shù)

在工業(yè)以太網(wǎng)領(lǐng)域采用FPGA的好處
FPGA如何為以太網(wǎng)和千兆以太網(wǎng)解決低功耗問題

基于FPGA的千兆以太網(wǎng)ARP和UDP的實現(xiàn)
基于FPGA的UDP千兆以太網(wǎng)光通信

基于FPGA的UDP RGMII千兆以太網(wǎng)通信方案

評論