1. 程式人生 > >UDP千兆乙太網FPGA_verilog實現(一、知識蒐集)

UDP千兆乙太網FPGA_verilog實現(一、知識蒐集)

2018年11月11日 星期日 近段時間打算在FPGA——quartus上實現千兆乙太網

一、對網絡卡的重新認識:
網絡卡工作在ISO/OSI的最後兩層:物理層和資料鏈路層。
1、物理層:定義了資料傳送與接收所需要的電光訊號、線路狀態、資料編碼和電路等等,並向資料鏈路層裝置提供標準介面。物理層的晶片稱之為PHY晶片
、----------------------------------------------------------------、
2、資料鏈路層:提供定址,資料幀的構建,資料差錯檢查,傳送控制,向網路層提供標準的資料介面等功能。乙太網卡中資料鏈路層的晶片稱之為MAC控制器。
很多網絡卡的這兩個部分是做到一起的,他們之間的關係是PCI匯流排接MAC匯流排,MAC控制器接PHY,PHY又接網線(當然並非完全直接接上,中間又一些電容等)

3、PHY和MAC之間又是如何傳送資料和相互溝通的呢?

IEEE定義了標準的MII/GigaMII(Media Independed Interface)。MII傳遞了網路的所有資料和資料的控制,而MAC對PHY的工作狀態的確定和對PHY的控制則是使用SMI(serial Management Interface)介面通過讀寫PHY的暫存器來完成的。MAC通過SMI匯流排不斷的讀取PHY的狀態暫存器以得知目前PHY的狀態

上述3.大致瞭解留個印象即可,暫時還不具體明白

也就是說,我們不用管PHY層,因為PHY層次,使用RTL8211EG這款晶片來實現的,我們只用管資料鏈路層,資料鏈路層的MAC控制晶片,便是我們的FPGA晶片。
*-----------------------------------------------------------------
RTL8211EG 支援MDI/MDX自適應,各種速度自適應,maser/slave自適應

RTL8211EG上電會檢測一些特定的IO的電平狀態,從而確定自己的工作模式
補充:此CRC為自定義新增,只針對UDP幀頭到資料末尾,不對其他資料位進行校驗,也就是說,只有資料到了UDP幀頭才開始計算CRC,到資料末尾結束,並將結果(32bit=4Byte)附在末尾。

二、PHY晶片之RTL8211EG晶片介紹
RTL8211EG是由Realtek公司推出的千兆網PHY晶片,RTL8211EG晶片作為千兆網PHY晶片,它與MAC層的介面可通過RGMII(Reduced Gigabit Media Independent interface:簡化的千兆介質無關介面)和GMLL(Gigabit Media Independent interface千兆介質無關介面)進行通訊,
在這裡插入圖片描述

時鐘部分就不多說了,圖上很清新,可以通過過MDC/MDIO管理介面來配置或讀取PHY晶片內部的暫存器。由於RTL8211EG晶片只提供PHY層功能,不包括MAC、UDP、TCP等功能,所以我們需要私用FPGA來實現這些功能來完成資料通訊。
下圖來自datasheet

上圖是該晶片的管腳
--------------------------------下次繼續