最近項(xiàng)目中,FPGA通過(guò)多個(gè)RGMII接口與其他設(shè)備通信,在通信的過(guò)程中,有一個(gè)RGMII接口對(duì)端設(shè)備始終無(wú)法驅(qū)動(dòng),最后通過(guò)共享一個(gè)PHY,時(shí)分復(fù)用的形式來(lái)“解決”該問(wèn)題
案例背景
FPGA一共有2個(gè)RGMII接口,其中A接口外接一個(gè)PHY后通過(guò)RJ45連接網(wǎng)線,B接口通過(guò)RGMII接口以MAC對(duì)MAC的形式直接和W模塊相連,如下圖所示:
正常的業(yè)務(wù)場(chǎng)景下,F(xiàn)PGA有可能通過(guò)A接口用網(wǎng)線和外部連接的設(shè)備通信,也可能直接和W模塊通信。
問(wèn)題
由于W模塊的問(wèn)題,始終無(wú)法驅(qū)動(dòng)RGMII接口,后來(lái)和供應(yīng)商,以及W模塊上芯片的原廠交流,都無(wú)法知道如何驅(qū)動(dòng)該RGMII接口(***任道重遠(yuǎn)?。現(xiàn)PGA和W模塊的通路徹底斷開(kāi)。
分析及解決措施
(1)由于FPGA和W模塊之間的性能需要500Mbps+,所以無(wú)法通過(guò)飛線產(chǎn)生一個(gè)通用IO口來(lái)解決該問(wèn)題;
(2)W模塊供應(yīng)商其實(shí)也沒(méi)有對(duì)RGMII接口做過(guò)充分測(cè)試,推薦我們使用的是該模塊內(nèi)置的PHY接口和外界通信;
(3)FPGA的AB接口的業(yè)務(wù)本來(lái)可以不同時(shí)存在,那是否可以時(shí)分復(fù)用FPGA外接的PHY了,即FPGA通過(guò)PHY和RJ45通信,也可以和W模塊通信呢?于是構(gòu)想了如下的方案:
利用W模塊內(nèi)置的PHY,通過(guò)飛線的方式,連在PHY和RJ45之間,如圖中紅色線條所示。當(dāng)RJ45插上網(wǎng)線時(shí),F(xiàn)PGA和RJ45通信,否則FPGA就和W模塊通信。但是這個(gè)方案有一個(gè)問(wèn)題,當(dāng)插上網(wǎng)線的時(shí)候,外部設(shè)備和W模塊都通過(guò)FPGA的同一個(gè)PHY和FPGA通信,這必要會(huì)有沖突,那現(xiàn)在的問(wèn)題就是這2種模式如何最小代價(jià)的切換。
(4)由FPGA控制W模塊的上電來(lái)切換,當(dāng)FPGA和RJ45通信的時(shí)候,通過(guò)配置FPGA寄存器的方式,將W模塊下電,當(dāng)FPGA要和W模塊通信的時(shí)候,拔掉網(wǎng)線,同時(shí)通過(guò)配置FPGA寄存器的方式將W模塊上電。
測(cè)試結(jié)果
這種方案行不行,上板測(cè)試是最好的檢驗(yàn)方法。
(1)將W模塊下電,插上網(wǎng)線,外部設(shè)備通過(guò)網(wǎng)線給FPGA發(fā)包,F(xiàn)PGA在內(nèi)部MAC做環(huán)回,通過(guò)測(cè)試;
(2)將W模塊上電,拔掉網(wǎng)線,通過(guò)W模塊發(fā)包,F(xiàn)PGA在內(nèi)部MAC做環(huán)回,通過(guò)測(cè)試;
(3)將W模塊上電,且插上網(wǎng)線,我們通過(guò)W模塊和外部設(shè)備發(fā)現(xiàn),和FPGA的鏈路不穩(wěn)定,一會(huì)能link up,一會(huì)又link down,即有沖突,和我們前期預(yù)想的一致。當(dāng)拔掉網(wǎng)線,或者W模塊下電后,對(duì)端都能和FPGA正常通信。
總結(jié)
當(dāng)一個(gè)PHY同時(shí)和2個(gè)PHY對(duì)接的時(shí)候,只要我們做好2個(gè)PHY的切換,是可以實(shí)現(xiàn)“時(shí)分復(fù)用”的,但是不到萬(wàn)不得已,還是別這么干吧。
-
FPGA
+關(guān)注
關(guān)注
1624文章
21538瀏覽量
600475 -
接口
+關(guān)注
關(guān)注
33文章
8355瀏覽量
150517 -
通信
+關(guān)注
關(guān)注
18文章
5926瀏覽量
135699 -
PHY
+關(guān)注
關(guān)注
2文章
299瀏覽量
51617 -
RGMII
+關(guān)注
關(guān)注
0文章
27瀏覽量
12130
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論