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

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

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

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



上面介紹了那么多接口以及以太網(wǎng)的相關(guān)知識(shí),那么問題來了,如何去快速學(xué)習(xí)千兆以太網(wǎng)呢?個(gè)人認(rèn)為掌握好總體框架以及接口細(xì)節(jié),理解UDP協(xié)議,掌握抓包等等,慢慢琢磨學(xué)習(xí),大家都可以慢慢掌握好的。那么下面咱們就來聊聊千兆以太網(wǎng)的UDP協(xié)議,并且會(huì)結(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中都能抓到。大家可以去下載一個(gè)WireShark來學(xué)習(xí)一下吧,免費(fèi)下載使用哦?。▊渥ⅲ壕W(wǎng)絡(luò)協(xié)議分析器 WireShark是一款開源的網(wǎng)絡(luò)數(shù)據(jù)幀分析軟件,可以抓取網(wǎng)絡(luò)數(shù)據(jù)封包,提供每個(gè)數(shù)據(jù)幀的詳細(xì)信息,如MAC地址、數(shù)據(jù)幀類型、IP地址、UDP端口、等重要信息,方便開發(fā)者對(duì)網(wǎng)絡(luò)數(shù)據(jù)協(xié)議的分析與相關(guān)測(cè)試。WireShark官網(wǎng):https://www.wireshark.org/)

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

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

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

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

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


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

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