最近項目中,FPGA通過多個RGMII接口與其他設備通信,在通信的過程中,有一個RGMII接口對端設備始終無法驅動,最后通過共享一個PHY,時分復用的形式來“解決”該問題
案例背景
FPGA一共有2個RGMII接口,其中A接口外接一個PHY后通過RJ45連接網線,B接口通過RGMII接口以MAC對MAC的形式直接和W模塊相連,如下圖所示:

正常的業務場景下,FPGA有可能通過A接口用網線和外部連接的設備通信,也可能直接和W模塊通信。
問題
由于W模塊的問題,始終無法驅動RGMII接口,后來和供應商,以及W模塊上芯片的原廠交流,都無法知道如何驅動該RGMII接口(***任道重遠啊),FPGA和W模塊的通路徹底斷開。
分析及解決措施
(1)由于FPGA和W模塊之間的性能需要500Mbps+,所以無法通過飛線產生一個通用IO口來解決該問題;
(2)W模塊供應商其實也沒有對RGMII接口做過充分測試,推薦我們使用的是該模塊內置的PHY接口和外界通信;
(3)FPGA的AB接口的業務本來可以不同時存在,那是否可以時分復用FPGA外接的PHY了,即FPGA通過PHY和RJ45通信,也可以和W模塊通信呢?于是構想了如下的方案:

利用W模塊內置的PHY,通過飛線的方式,連在PHY和RJ45之間,如圖中紅色線條所示。當RJ45插上網線時,FPGA和RJ45通信,否則FPGA就和W模塊通信。但是這個方案有一個問題,當插上網線的時候,外部設備和W模塊都通過FPGA的同一個PHY和FPGA通信,這必要會有沖突,那現在的問題就是這2種模式如何最小代價的切換。
(4)由FPGA控制W模塊的上電來切換,當FPGA和RJ45通信的時候,通過配置FPGA寄存器的方式,將W模塊下電,當FPGA要和W模塊通信的時候,拔掉網線,同時通過配置FPGA寄存器的方式將W模塊上電。
測試結果
這種方案行不行,上板測試是最好的檢驗方法。
(1)將W模塊下電,插上網線,外部設備通過網線給FPGA發包,FPGA在內部MAC做環回,通過測試;
(2)將W模塊上電,拔掉網線,通過W模塊發包,FPGA在內部MAC做環回,通過測試;
(3)將W模塊上電,且插上網線,我們通過W模塊和外部設備發現,和FPGA的鏈路不穩定,一會能link up,一會又link down,即有沖突,和我們前期預想的一致。當拔掉網線,或者W模塊下電后,對端都能和FPGA正常通信。
總結
當一個PHY同時和2個PHY對接的時候,只要我們做好2個PHY的切換,是可以實現“時分復用”的,但是不到萬不得已,還是別這么干吧。
-
FPGA
+關注
關注
1656文章
22317瀏覽量
631058 -
接口
+關注
關注
33文章
9454瀏覽量
156321 -
通信
+關注
關注
18文章
6330瀏覽量
139688 -
PHY
+關注
關注
2文章
331瀏覽量
53836 -
RGMII
+關注
關注
0文章
31瀏覽量
12692
發布評論請先 登錄
Wi-Fi FEM研發,開啟第二個十年
EVB-LAN8770-RGMII評估板技術解析與應用指南
EVB-LAN8870-RGMII評估板技術解析與應用指南
兩個模擬SPI,只有第二個正常,為什么?
?基于DP83TC812-Q1的汽車以太網PHY技術解析
DIY 流體模擬吊墜(二):第二個、第三個、更多的吊墜......
【RA-Eco-RA4M2開發板評測】利用第二個I2C接口驅動OLED
如何在設備上通過USBEZ-USB?將第二個SPI閃存用作文件系統的應用說明或建議?
基于RV1126開發板修改Ethernet內核設備樹
PHY芯片與網絡變壓器接線設計指南——不同速率與接口的硬件設計原則
求助,關于P2041設備樹中的RGMII配置疑問求解
T2081 VSC8572 phy:Ping不起作用的原因?
RGMII接口及其時序規范

RGMII接口案例:二個設備共享一個PHY
評論