大家好,又到了學(xué)習(xí)時間了,學(xué)習(xí)使人快樂。今天我們來簡單的聊一聊以太網(wǎng),以太網(wǎng)在FPGA學(xué)習(xí)中屬于比較高級的內(nèi)容了,有些同學(xué)肯定會感覺以太網(wǎng)學(xué)習(xí)起來非常不容易。其實,我可以告訴大家,前期學(xué)習(xí)的基礎(chǔ)打扎實了,后期的學(xué)習(xí)也沒那么難。總之就是說難沒那么難,說容易也不是那么容易。那么,言歸正傳,下面讓我們一起來聊一聊以太網(wǎng)的學(xué)習(xí)。
說起以太網(wǎng),大家可能就會想到百兆以太網(wǎng)、千兆以太網(wǎng)以及萬兆以太網(wǎng)等等。局域以太網(wǎng)從10M開始發(fā)展,經(jīng)歷幾多的變遷,發(fā)展到現(xiàn)在的千兆以太網(wǎng)。千兆以太網(wǎng)以高效、高速、高性能為特點,已經(jīng)廣泛應(yīng)用在金融、商業(yè)、教育、政府機(jī)關(guān)及廠礦企業(yè)等行業(yè)。吉比特以太網(wǎng),或譯千兆以太網(wǎng)是一個描述各種以吉比特每秒速率進(jìn)行以太網(wǎng)幀傳輸技術(shù)的術(shù)語,由IEEE 802.3-2005標(biāo)準(zhǔn)定義。該標(biāo)準(zhǔn)允許通過集線器連接的半雙工千兆連接,但是在市場上利用交換機(jī)的全雙工連接所達(dá)到的速度才真正符合標(biāo)準(zhǔn)。
當(dāng)今,隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,采用以太網(wǎng)實現(xiàn)數(shù)據(jù)采集和控制方面的應(yīng)用,成為了電子系統(tǒng)設(shè)計的熱點。以太網(wǎng)具有價格低廉、穩(wěn)定可靠、傳輸速度快、傳輸距離遠(yuǎn)等特點,以太網(wǎng)技術(shù)發(fā)展成熟,具有很高的性價比。采用以太網(wǎng)技術(shù)的設(shè)備,可以通過TCP/IP協(xié)議進(jìn)行數(shù)據(jù)的傳輸,不需要進(jìn)行傳輸協(xié)議轉(zhuǎn)換,使用和維護(hù)設(shè)備簡單。隨著技術(shù)的發(fā)展和各類應(yīng)用的需求,出現(xiàn)了各種以太網(wǎng)的標(biāo)準(zhǔn),包括標(biāo)準(zhǔn)以太網(wǎng)(10Mbit/s)、百兆以太網(wǎng)(100Mbit/s)、千兆以太網(wǎng)(1000Mbit/s)和10G(10Gbit/s)以太網(wǎng)[1]。不同類型的以太網(wǎng)有其各自需要遵循的標(biāo)準(zhǔn),同時其所用的傳輸介質(zhì)以及數(shù)據(jù)吞吐量也各不相同。千兆以太網(wǎng)技術(shù)作為新一代的高速以太網(wǎng)技術(shù),它可以提供1Gbps的通信帶寬,采用和傳統(tǒng)10M、100M以太網(wǎng)同樣的CSMA/CD協(xié)議、幀格式和幀長、全/半雙工工作方式、流控模式以及布線系統(tǒng),給用戶帶來了提高核心網(wǎng)絡(luò)的有效解決方案,這種解決方案的最大優(yōu)點是繼承了傳統(tǒng)以太網(wǎng)技術(shù)價格便宜的特點。
對于學(xué)習(xí)者而言,你就是要搞清楚弄明白以太網(wǎng)如何去實現(xiàn),在實際操作中怎么去做,從這個角度出發(fā)的話,你就會發(fā)現(xiàn)其實沒那么復(fù)雜,這就是說起來沒那么難。那真正實現(xiàn)起來,到具體的各個接口以及細(xì)節(jié)的調(diào)試以及調(diào)通,你會發(fā)現(xiàn)還是比較燒腦的。所以呢,咱們先來聊一聊以太網(wǎng)的各個接口,從大體框架來分析如何去學(xué)習(xí)。
咱們就以千兆以太網(wǎng)舉例,千兆以太網(wǎng),只是說以太網(wǎng)的速率為千兆,也就是1G。除了千兆網(wǎng),還有百兆網(wǎng),萬兆網(wǎng),當(dāng)然這些都是指的以太網(wǎng)的速率。不同速率的以太網(wǎng),在FPGA端的接口表現(xiàn)形式也是不一樣的。下邊就來介紹百兆網(wǎng)和千兆網(wǎng)的接口形式。
這是網(wǎng)口與FPGA連接的常用方案,RJ45就是咱們平常說的水晶頭,Ethernet PHY是以太網(wǎng)的PHY芯片,之后就是Ethernet PHY與FPGA相連。

下邊是以太網(wǎng)PHY芯片與FPGA連接的簡單的架構(gòu)圖(不代表全部的信號輸入輸出端口)

先說百兆網(wǎng),百兆網(wǎng)的接口一般為MII(Media Independent Interface),當(dāng)然10M網(wǎng)用的也是MII接口。下圖是一塊以太網(wǎng)PHY芯片的一些手冊資料截圖。

在百兆網(wǎng)模式下,其RXCLK的周期為40ns,也就是25M,數(shù)據(jù)端口RXD只用了4根線RXD[3:0],然后25M*4 = 100M,這樣算出來,就是100M的速率了。接著再來說一下千兆網(wǎng),千兆網(wǎng)的接口,就目前接觸比較多的接口有3種,GMII,RGMII和SGMII。先說GMII,RxClk的周期為8ns,也就是125M,數(shù)據(jù)端口使用了8bit,125M*8 = 1000M,速率就是千兆網(wǎng)了。

還有RGMII,其時鐘頻率也為125M,但是它只使用了4個線,不過,RGMII使用的是雙沿模式,也就是DDR模式,在時鐘的上下沿都可以傳送數(shù)據(jù)。這樣算的話,125M*4*2 = 1000M,還是千兆網(wǎng)。RGMII與GMII主要的區(qū)別就是雙沿采樣與單沿采樣。

之后還有SGMII,全稱為Serial Gigabit Media Independent Interface,也就是串行的以太網(wǎng)接口。RGMII,GMII還是MII,都是使用并行接口,而且還需要隨路時鐘,而SGMII只需要2組線,一組是發(fā)送,一組是接收,當(dāng)然一組線由兩根差分線組成。SGMII也是需要8/10B編碼。這樣在PCB布線時,就可以節(jié)省一些布線的空間。當(dāng)然,對于FPGA來講,也節(jié)省了FPGA的引腳資源。SGMII一般在公司的項目會用的多一些,像GMII,RGMI在某寶上賣的開發(fā)板上一般都有。
下面就簡單的說說以太網(wǎng)數(shù)據(jù)格式,IEEE.802.3數(shù)據(jù)格式匯總,幀間隙IFG>=96bittime,10zM/100M/1000M格式一樣。如下圖簡單的端口信號顯示截圖。



上面介紹了那么多接口以及以太網(wǎng)的相關(guān)知識,那么問題來了,如何去快速學(xué)習(xí)千兆以太網(wǎng)呢?個人認(rèn)為掌握好總體框架以及接口細(xì)節(jié),理解UDP協(xié)議,掌握抓包等等,慢慢琢磨學(xué)習(xí),大家都可以慢慢掌握好的。那么下面咱們就來聊聊千兆以太網(wǎng)的UDP協(xié)議,并且會結(jié)合wireshark抓包軟件抓取到的以太網(wǎng)包,帶著大家看一下以太網(wǎng)的協(xié)議到底是怎么樣的呢?當(dāng)然,像我們常用的以太網(wǎng)協(xié)議有TCP/IP,UDPTCP/IP和UDP相比,TCP/IP是一種數(shù)據(jù)可靠的協(xié)議,而UDP是一種數(shù)據(jù)不可靠的協(xié)議。至于為什么TCP/IP是可靠的,而UDP是不可靠,留給大家自行百度。在wireshark中可以抓取到經(jīng)過網(wǎng)口傳輸?shù)暮芏鄶?shù)據(jù)包,可以說只要是經(jīng)過網(wǎng)口的數(shù)據(jù),在wireshark中都能抓到。大家可以去下載一個WireShark來學(xué)習(xí)一下吧,免費下載使用哦!(備注:網(wǎng)絡(luò)協(xié)議分析器 WireShark是一款開源的網(wǎng)絡(luò)數(shù)據(jù)幀分析軟件,可以抓取網(wǎng)絡(luò)數(shù)據(jù)封包,提供每個數(shù)據(jù)幀的詳細(xì)信息,如MAC地址、數(shù)據(jù)幀類型、IP地址、UDP端口、等重要信息,方便開發(fā)者對網(wǎng)絡(luò)數(shù)據(jù)協(xié)議的分析與相關(guān)測試。WireShark官網(wǎng):https://www.wireshark.org/)

下面我們根據(jù)抓取到的一個UDP包,來給大家介紹UDP的協(xié)議

第一部分,可以粗略的知道該UDP包,其源IP和目的IP到底是什么。
第二部分,是對該UDP包的簡短描述,從中可以大約的知道該數(shù)據(jù)包的數(shù)據(jù)長度,源MAC地址,目的MAC地址,等等相關(guān)信息。
第三部分,可以說是這個包的所有數(shù)據(jù)。一個完整的數(shù)據(jù)包,還會有數(shù)據(jù)包的幀頭,幀尾還有CRC校驗的數(shù)據(jù)。
看到第三部分,這全是十六進(jìn)制的字符,這TMD的到底是什么意思呢?
關(guān)于這些內(nèi)容,點開第二部分的展開圖標(biāo),就可以一探究竟了。

這樣看,是不是就可以知道這個UDP包的前6個字節(jié),就是目的MAC地址了呢?再來看接著的6個字節(jié)數(shù)據(jù):6c fd b9 87 48 de

這6個字節(jié),代表著源MAC地址。我們也可以通過查看自己電腦上的MAC地址來確認(rèn)。

接著的這些數(shù)據(jù),大家也可以自己跟著文章中的講解,自己下載一個WireShark來學(xué)習(xí)一下。
當(dāng)然,這里特別需要說明的一下是,UDP協(xié)議涉及到校驗和的計算??偣灿袃蓚€校驗和,一個是在IP首部的校驗和,另一個是在UDP首部的校驗和。


-
FPGA
+關(guān)注
關(guān)注
1655文章
22283瀏覽量
630289
發(fā)布評論請先 登錄
基于Xilinx FPGA的千兆以太網(wǎng)控制器的開發(fā)
簡談基于FPGA的千兆以太網(wǎng)
分享一款不錯的基于Altera FPGA的千兆以太網(wǎng)實現(xiàn)方案
簡談基于FPGA的千兆以太網(wǎng)設(shè)計
基于FPGA的十端口千兆以太網(wǎng)接口的設(shè)計與實現(xiàn)
基于FPGA的千兆以太網(wǎng)CMOS圖像數(shù)據(jù)傳輸系統(tǒng)設(shè)計
千兆以太網(wǎng)發(fā)展現(xiàn)狀_千兆以太網(wǎng)前景
千兆以太網(wǎng)發(fā)展現(xiàn)狀 千兆以太網(wǎng)技術(shù)優(yōu)勢
如何快速分辨以太網(wǎng)與千兆以太網(wǎng)
FPGA如何為以太網(wǎng)和千兆以太網(wǎng)解決低功耗問題
基于FPGA的UDP千兆以太網(wǎng)光通信
基于FPGA的UDP RGMII千兆以太網(wǎng)通信方案

簡談基于FPGA的千兆以太網(wǎng)
評論