基于FPGA+RTL8201的UDP資料收發之PHY(一)
最近在學習FPGA的網絡資料傳輸,将一些學習的筆記系統的整理下。
從哪兒說起呢,還是從頭記吧,随着FPGA學習的不斷深入,逐漸了解并且完成了很多種通信協定的學習和硬體實作,包括序列槽通信、SPI、IIC等等,按照我的了解,其實協定就是一種約定好的與外界交流的一種方式。
在很多時候FPGA闆卡在以某種協定進行一些資料互動的時候,外界信号由于種種原因并不可以被直接連接配接到FPGA晶片的引腳上,這樣就需要各種各樣的接口晶片、轉化晶片等,例如在與PC端進行序列槽通信的時候,需要将PC端出來的usb信号轉換為FPGA能夠識别的信号,這樣FPGA就去按照協定,去操作接口晶片就好了。
網絡通信也是如此,并且使用FPGA進行網絡通信有很多種方式,本次學習的是基于FPGA+RTL8201的方式,硬體連接配接框圖如下圖所示:
從圖中可以看出,網線信号在進入FPGA闆卡後,先經過RTL8201晶片,RTL8201晶片又連接配接的FPGA晶片,由此我們就首先研究下,這塊晶片,我們通過什麼樣的時序能夠将它正确地控制起來。官方的手冊會有詳細的描述。
通過手冊的簡介可以知道,它是一款網絡PHY(實體層)收發器,至于何為實體層,網上有很多介紹,就不贅述了,簡單介紹一下它的核心資源:
- 與MAC層有可選擇的傳輸方式:MII or SNI;
- 10M/100Mbps,就是我們平時說的10M網,百兆網(當然現在已經千兆、萬兆了);
- 具有掉電模式(低功耗使用);
- 可以控制網絡狀态訓示燈;
- 25MHz的晶體振蕩器作為時鐘源;
- 支援的供電電壓
-
48引腳的封裝
有興趣可以研究下,RTL8201簡介中其他的描述的意思,我沒多做研究(水太深~~),下一篇繼續介紹,我們設計中主要使用到的MII接口。