0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的以太網(wǎng)協(xié)議

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2022-06-02 14:45 ? 次閱讀

以太網(wǎng)是一種計(jì)算機(jī)局域網(wǎng)技術(shù)。IEEE組織的IEEE 802.3標(biāo)準(zhǔn)制定了以太網(wǎng)的技術(shù)標(biāo)準(zhǔn),它規(guī)定了包括物理層的連線、電子信號(hào)和介質(zhì)訪問(wèn)層協(xié)議的內(nèi)容。以太網(wǎng)的協(xié)議層是建立在OSI模型的基礎(chǔ)上的,OSI模型,即開放式通信 系統(tǒng)互聯(lián)參考模型(Open System Interconnection),是國(guó)際標(biāo)準(zhǔn)化組織(ISO)提出的一個(gè)試圖使各種計(jì)算機(jī)在世界范圍內(nèi)互連為網(wǎng)絡(luò)的標(biāo)準(zhǔn)框架,簡(jiǎn)稱OSI。主要包括七層,具體如下:

(1)、物理層 Physical Layer

(2)、數(shù)據(jù)鏈路層 Data Link Layer

(3)、網(wǎng)絡(luò)層 Network Layer

(4)、傳輸層 Transport Layer

(5)、會(huì)話層 Session Layer

(6)、表示層 Presentation Layer

(7)、應(yīng)用層 Application Layer

因?yàn)槲沂亲?a href="http://www.wenjunhu.com/soft/data/30-91/" target="_blank">FPGA的,因此只關(guān)注了物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,傳輸層;更上層協(xié)議沒(méi)有做過(guò)多了解。

1,以太網(wǎng)物理層,

物理層為OSI中的第一層,主要包括PCS,PMA,PMD,

PCS:物理編碼子層,完成完成對(duì)傳輸?shù)腗AC協(xié)議數(shù)據(jù)的編、譯碼;以便物理介質(zhì)傳輸;

PMA:物理介質(zhì)連接子層,生成線路的傳輸信號(hào);接收線路信號(hào)完成時(shí)鐘恢復(fù);

PMD:物理介質(zhì)相關(guān)子層,定義不同傳輸介質(zhì)的接口標(biāo)準(zhǔn),提供物理連接。

物理層與鏈路層接口:主要包括:MII、RMII接口、GMII接口、RGMII接口、SGMII接口、 XGMII接口。

MII:支持10兆和100兆的操作,一個(gè)接口由14根線組成,它的支持還是比較靈活的,但是有一個(gè)缺點(diǎn)是因?yàn)樗粋€(gè)端口用的信號(hào)線太多,如果一個(gè)8端口的交換機(jī)要用到112根線,16端口就要用到224根線,到32端口的話就要用到448根線,一般按照這個(gè)接口做交換機(jī),是不太現(xiàn)實(shí)的,所以現(xiàn)代的交換機(jī)的制作都會(huì)用到其它的一些從MII簡(jiǎn)化出來(lái)的標(biāo)準(zhǔn),比如RMII、SMII、GMII等。

RMII:簡(jiǎn)化的MII接口,在數(shù)據(jù)的收發(fā)上它比MII接口少了一倍的信號(hào)線,所以它一般要求是50兆的總線時(shí)鐘。RMII一般用在多端口的交換機(jī),它不是每個(gè)端口安排收、發(fā)兩個(gè)時(shí)鐘,而是所有的數(shù)據(jù)端口公用一個(gè)時(shí)鐘用于所有端口的收發(fā),這里就節(jié)省了不少的端口數(shù)目。RMII的一個(gè)端口要求7個(gè)數(shù)據(jù)線,比MII少了一倍,所以交換機(jī)能夠接入多一倍數(shù)據(jù)的端口。和MII一樣,RMII支持10兆和100兆的總線接口速度。

SMII:由思科提出的一種媒體接口,它有比RMII更少的信號(hào)線數(shù)目,S表示串行的意思。因?yàn)樗挥靡桓盘?hào)線傳送發(fā)送數(shù)據(jù),一根信號(hào)線傳輸接受數(shù)據(jù),所以在時(shí)鐘上為了滿足100的需求,它的時(shí)鐘頻率很高,達(dá)到了125兆,為什么用125兆,是因?yàn)閿?shù)據(jù)線里面會(huì)傳送一些控制信息。SMII一個(gè)端口僅用4根信號(hào)線完成100信號(hào)的傳輸,比起RMII差不多又少了一倍的信號(hào)線。SMII在工業(yè)界的支持力度是很高的。同理,所有端口的數(shù)據(jù)收發(fā)都公用同一個(gè)外部的125M時(shí)鐘。

XGMII:是10Gb的物理層接口,接口時(shí)鐘為156.25Mhz。

GMII :是千兆網(wǎng)的MII接口,這個(gè)也有相應(yīng)的RGMII接口,表示簡(jiǎn)化了的GMII接口;GMII是8bit并行同步收發(fā)接口,采用8位接口數(shù)據(jù),工作時(shí)鐘125MHz,因此傳輸速率可達(dá)1000Mbps。同時(shí)兼容MII所規(guī)定的10/100 Mbps工作方式。

發(fā)送接口信號(hào):

◇ GTXCLK——吉比特TX..信號(hào)的時(shí)鐘信號(hào)(125MHz)

◇ TXCLK——10/100M信號(hào)時(shí)鐘

◇ TXD[7..0]——被發(fā)送數(shù)據(jù)

◇ TXEN——發(fā)送器使能信號(hào)

◇ TXER——發(fā)送器錯(cuò)誤(用于破壞一個(gè)數(shù)據(jù)包)

接收接口信號(hào):

◇ RXCLK——接收時(shí)鐘信號(hào)(從收到的數(shù)據(jù)中提取,因此與GTXCLK無(wú)關(guān)聯(lián))

◇ RXD[7..0]——接收數(shù)據(jù)

◇ RXDV——接收數(shù)據(jù)有效指示

◇ RXER——接收數(shù)據(jù)出錯(cuò)指示

◇ COL——沖突檢測(cè)(僅用于半雙工狀態(tài))

注:在千兆速率下,向PHY提供GTXCLK信號(hào),TXD、TXEN、TXER信號(hào)與此時(shí)鐘信號(hào)同步。否則,在10/100M速率下,PHY提供 TXCLK時(shí)鐘信號(hào),其它信號(hào)與此信號(hào)同步。其工作頻率為25MHz(100M網(wǎng)絡(luò))或2.5MHz(10M網(wǎng)絡(luò))。

2,以太網(wǎng)數(shù)據(jù)鏈路層

數(shù)據(jù)鏈路層為OSI中的第二層,主要將從物理層拿到的數(shù)據(jù)幀解析后拿到IP數(shù)據(jù)報(bào)傳遞給網(wǎng)絡(luò)層;或把網(wǎng)絡(luò)層拿到的IP數(shù)據(jù)報(bào),增加前導(dǎo)碼,MAC地址,幀類型校驗(yàn)后組成新的數(shù)據(jù)幀傳遞給物理層;具體協(xié)議數(shù)據(jù)幀如下:

cd3269ba-e229-11ec-ba43-dac502259ad0.jpg

數(shù)據(jù)幀中的數(shù)據(jù)為IP數(shù)據(jù)報(bào);

數(shù)據(jù)幀前會(huì)有8個(gè)字節(jié)的前導(dǎo)碼,然后和上述的數(shù)據(jù)幀一塊構(gòu)成一個(gè)完成對(duì)MAC層數(shù)據(jù)報(bào)。

注意:

幀間最小間隔 :幀間最小間隔為 9.6 us (10Mbps) ,相當(dāng)于96 bit 的發(fā)送時(shí)間(等待12個(gè)時(shí)鐘之后)。一個(gè)站在檢測(cè)到總線開始空閑后,還要等待 9.6 us (10Mbps)才能再次發(fā)送數(shù)據(jù)。這樣做是為了使剛剛收到數(shù)據(jù)幀的站的接收緩存來(lái)得及清理,做好接收下一幀的準(zhǔn)備。

最大幀長(zhǎng)度:為了保證信道使用的相對(duì)公平性,讓更多的站能搶占到信道,規(guī)定了最大幀長(zhǎng)度;超過(guò)了最大幀長(zhǎng)度就需要分多次完成;以太網(wǎng)規(guī)定了數(shù)據(jù)幀中傳送數(shù)據(jù)的最大長(zhǎng)度為1500字節(jié)。

最短有效幀長(zhǎng):如果發(fā)生沖突,就一定是在發(fā)送的前 64 字節(jié)之內(nèi)。由于一檢測(cè)到?jīng)_突就立即中止發(fā)送,這時(shí)已經(jīng)發(fā)送出去的數(shù)據(jù)一定小于 64 字節(jié)。以太網(wǎng)規(guī)定了最短有效幀長(zhǎng)為 64 字節(jié),凡長(zhǎng)度小于 64 字節(jié)的幀都是由于沖突而異常中止的無(wú)效幀。

3,以太網(wǎng)網(wǎng)絡(luò)層

網(wǎng)絡(luò)層是OSI中的第三層;位于傳輸層和數(shù)據(jù)鏈路層之間;實(shí)現(xiàn)將傳輸層數(shù)據(jù)報(bào)打包為IP數(shù)據(jù)報(bào),或解析IP數(shù)據(jù)報(bào)。

IP數(shù)據(jù)報(bào)如下:(藍(lán)色部分為IP數(shù)據(jù)報(bào)首部來(lái);黃色部分為UDP/TCP數(shù)據(jù)報(bào),也是IP數(shù)據(jù)報(bào)的報(bào)文)

cd53a9ae-e229-11ec-ba43-dac502259ad0.png

首部介紹:

版本:占 4 位,指 IP 協(xié)議的版本,通信雙方使用的IP協(xié)議的版本必須一致,目前的 IP 協(xié)議版本號(hào)為 4 (即 IPv4)

首部長(zhǎng)度:占4位,可表示的最大數(shù)值是15個(gè)單位(一個(gè)單位為 4 字節(jié)),因此IP 的首部長(zhǎng)度的最大值是 60 字節(jié)。最常用的是20字節(jié)(0101)

區(qū)分服務(wù):占 8 位,一般不使用

總長(zhǎng)度:占 16 位,指首部和數(shù)據(jù)之和的長(zhǎng)度,單位為字節(jié),因此數(shù)據(jù)報(bào)的最大長(zhǎng)度為 65535 字節(jié),總長(zhǎng)度必須不超過(guò)最大傳送單元MTU

標(biāo)識(shí):占 16 位,它是一個(gè)計(jì)數(shù)器,用來(lái)產(chǎn)生數(shù)據(jù)報(bào)的標(biāo)識(shí),在分片時(shí)被使用,用于數(shù)據(jù)的重組條件

標(biāo)志:占 3 位,目前只有前兩位有意義,標(biāo)志字段的最低位是 MF(More Fragment),MF=1 表示后面“還有分片”。MF=0 表示最后一個(gè)分片;標(biāo)志字段中間的一位是 DF (Don’t Fragment),只有當(dāng) DF=0 時(shí)才允許分片

片偏移:占13位,指較長(zhǎng)的分組在分片后某片在原分組中的相對(duì)位置.片偏移以 8 個(gè)字節(jié)為偏移單位

生存時(shí)間:占 8 位,記為 TTL (Time To Live) 數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中可通過(guò)的路由器數(shù)的最大值,TTL 字段是由發(fā)送端初始設(shè)置一個(gè) 8 bit 字段.推薦的初始值由分配數(shù)字 RFC 指定,當(dāng)前值為 64.發(fā)送ICMP 回顯應(yīng)答時(shí)經(jīng)常把 TTL 設(shè)為最大值 255

協(xié)議:占 8 位,指出此數(shù)據(jù)報(bào)攜帶的數(shù)據(jù)使用何種協(xié)議以便目的主機(jī)的 IP 層將數(shù)據(jù)部分上交給哪個(gè)處理過(guò)程, 1 表示為 ICMP 協(xié)議, 2 表示為 IGMP 協(xié)議, 6 表示為 TCP 協(xié)議, 17 表示為UDP 協(xié)議

首部檢驗(yàn)和:占 16 位,只檢驗(yàn)數(shù)據(jù)報(bào)的首部不檢驗(yàn)數(shù)據(jù)部分.這里不采用 CRC 檢驗(yàn)碼而采用簡(jiǎn)單的計(jì)算方法

源地址和目的地址:都各占 4 字節(jié),分別記錄源地址和目的地址

可選字段和填充字段 : 很少使用,新協(xié)議中已經(jīng)取消IPv6

4,以太網(wǎng)傳輸層

傳輸層是OSI中的第四層;主要完成UDP/TCP的裝配然后傳輸給網(wǎng)絡(luò)層;

UDP:不可靠傳輸;但能保證實(shí)時(shí)性;多用于視頻通話或會(huì)議等;

TCP:可靠傳輸;建立在連接的基礎(chǔ)之上;保證數(shù)據(jù)完整性;多用于郵件,信息等;

UDP數(shù)據(jù)報(bào):

cd9d8902-e229-11ec-ba43-dac502259ad0.png

TCP數(shù)據(jù)報(bào):

cdc5d24a-e229-11ec-ba43-dac502259ad0.jpg

帶陰影的幾個(gè)字段需要重點(diǎn)說(shuō)明一下:

1) 序號(hào):Seq(Sequence Number)序號(hào)占32位,用來(lái)標(biāo)識(shí)從計(jì)算機(jī)A發(fā)送到計(jì)算機(jī)B的數(shù)據(jù)包的序號(hào),計(jì)算機(jī)發(fā)送數(shù)據(jù)時(shí)對(duì)此進(jìn)行標(biāo)記。

2) 確認(rèn)號(hào):Ack(Acknowledge Number)確認(rèn)號(hào)占32位,客戶端和服務(wù)器端都可以發(fā)送,Ack = Seq + 1。

3) 標(biāo)志位:每個(gè)標(biāo)志位占用1Bit,共有6個(gè),分別為 URG、ACK、PSH、RST、SYN、FIN,具體含義如下:

URG:緊急指針(urgent pointer)有效。

ACK:確認(rèn)序號(hào)有效。

PSH:接收方應(yīng)該盡快將這個(gè)報(bào)文交給應(yīng)用層。

RST:重置連接。

SYN:建立一個(gè)新連接。

FIN:斷開一個(gè)連接。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21783

    瀏覽量

    605004
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5458

    瀏覽量

    172316
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7529

    瀏覽量

    88404

原文標(biāo)題:基于FPGA的以太網(wǎng)協(xié)議介紹

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Xilinx FPGA的千兆以太網(wǎng)控制器的開發(fā)

    千兆以太網(wǎng)利用了原以太網(wǎng)標(biāo)準(zhǔn)所規(guī)定的全部技術(shù)規(guī)范,其中包括CSMA/CD協(xié)議、以太網(wǎng)幀、全雙工、流量控制以及IEEE 802.3標(biāo)準(zhǔn)中所定義的管理對(duì)象。##
    發(fā)表于 01-23 11:13 ?3w次閱讀
    基于Xilinx <b class='flag-5'>FPGA</b>的千兆<b class='flag-5'>以太網(wǎng)</b>控制器的開發(fā)

    基于FPGA的萬(wàn)兆以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的萬(wàn)兆以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)標(biāo)準(zhǔn)中萬(wàn)兆以太網(wǎng)物理層及媒質(zhì)接入控制子層的相關(guān)協(xié)議以 應(yīng)用物理環(huán)境為例,闡述了萬(wàn)兆以太網(wǎng)接口各個(gè)單元
    發(fā)表于 08-11 15:48

    以太網(wǎng)協(xié)議

    以太網(wǎng)協(xié)議
    發(fā)表于 08-13 13:19

    以太網(wǎng)協(xié)議的模型有哪些

    為了學(xué)習(xí)FPGA,以太網(wǎng)協(xié)議的模型也必須有所了解。當(dāng)前,互聯(lián)網(wǎng)已經(jīng)極大地改變了我們的生產(chǎn)和生活。與之相適應(yīng)的,在嵌入式系統(tǒng)的研究開發(fā)方面,也越來(lái)越重視網(wǎng)絡(luò)功能。嵌入式系統(tǒng)已經(jīng)不再局限以太網(wǎng)
    發(fā)表于 12-26 09:45

    簡(jiǎn)談基于FPGA的千兆以太網(wǎng)設(shè)計(jì)

    大俠帶來(lái)簡(jiǎn)談基于FPGA的千兆以太網(wǎng)設(shè)計(jì),話不多說(shuō),上貨。今天我們來(lái)簡(jiǎn)單的聊一聊以太網(wǎng)以太網(wǎng)FPGA學(xué)習(xí)中屬于比較高級(jí)的內(nèi)容了,有些大俠
    發(fā)表于 06-01 18:39

    基于FPGA的萬(wàn)兆以太網(wǎng)接口設(shè)計(jì)

    介紹了IEEE802.3ae 標(biāo)準(zhǔn)中 萬(wàn)兆以太網(wǎng) 物理層及媒質(zhì)接入控制子層的相關(guān)協(xié)議。以10GBASE-R 應(yīng)用物理環(huán)境為例,闡述了萬(wàn)兆以太網(wǎng)接口各個(gè)單元模塊的功能和設(shè)計(jì)實(shí)現(xiàn)方法。FPGA
    發(fā)表于 07-20 16:21 ?334次下載
    基于<b class='flag-5'>FPGA</b>的萬(wàn)兆<b class='flag-5'>以太網(wǎng)</b>接口設(shè)計(jì)

    一種基于FPGA以太網(wǎng)高速傳輸平臺(tái)

    一種基于FPGA以太網(wǎng)高速傳輸平臺(tái),采用DM9000和FPGA芯片,實(shí)現(xiàn)100M以太網(wǎng)數(shù)據(jù)傳輸
    發(fā)表于 02-25 14:45 ?17次下載

    基于FPGA的萬(wàn)兆以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的萬(wàn)兆以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)。
    發(fā)表于 05-11 09:46 ?39次下載

    以太網(wǎng)協(xié)議及應(yīng)用方案

    以太網(wǎng)協(xié)議及應(yīng)用方案
    發(fā)表于 01-21 12:07 ?9次下載

    在工業(yè)以太網(wǎng)領(lǐng)域采用FPGA的好處

    您的工廠或者工藝自動(dòng)化系統(tǒng)需要采用多種工業(yè)以太網(wǎng)協(xié)議嗎?請(qǐng)觀看這一10分鐘的視頻,了解怎樣采用FPGA來(lái)輕松開發(fā)工業(yè)以太網(wǎng)設(shè)計(jì)。您將能夠:   觀看在單片
    的頭像 發(fā)表于 06-20 14:00 ?4508次閱讀

    以太網(wǎng)的拓?fù)浣Y(jié)構(gòu)_以太網(wǎng)的通信協(xié)議

    本文首先闡述了以太網(wǎng)的拓?fù)浣Y(jié)構(gòu),其次介紹了以太網(wǎng)拓?fù)浣Y(jié)構(gòu)優(yōu)缺點(diǎn),最后介紹了以太網(wǎng)的通信協(xié)議。
    發(fā)表于 03-20 10:07 ?9351次閱讀

    FPGA如何為以太網(wǎng)和千兆以太網(wǎng)解決低功耗問(wèn)題

    探索新的中檔 FPGA 如何為以太網(wǎng)和千兆以太網(wǎng) (GbE) 鏈路執(zhí)行橋接功能,同時(shí)解決低功耗問(wèn)題。
    的頭像 發(fā)表于 05-07 16:54 ?4134次閱讀
    <b class='flag-5'>FPGA</b>如何為<b class='flag-5'>以太網(wǎng)</b>和千兆<b class='flag-5'>以太網(wǎng)</b>解決低功耗問(wèn)題

    工業(yè)以太網(wǎng)協(xié)議結(jié)構(gòu)_工業(yè)以太網(wǎng)協(xié)議種類

    工業(yè)以太網(wǎng)協(xié)議結(jié)構(gòu)如下:   物理層:物理層是工業(yè)以太網(wǎng)協(xié)議的最底層,負(fù)責(zé)傳輸比特流。工業(yè)以太網(wǎng)使用雙絞線、光纖等傳輸介質(zhì),采用不同的
    發(fā)表于 03-13 15:06 ?2384次閱讀

    工業(yè)以太網(wǎng)的常見協(xié)議 工業(yè)以太網(wǎng)的性能特點(diǎn)

      工業(yè)以太網(wǎng)是指在工業(yè)領(lǐng)域中使用的以太網(wǎng)技術(shù),其特點(diǎn)是具有高可靠性、實(shí)時(shí)性和安全性。為了滿足這些要求,工業(yè)以太網(wǎng)使用了一些特殊的協(xié)議。
    發(fā)表于 03-13 16:31 ?4272次閱讀

    以太網(wǎng)協(xié)議的種類和特點(diǎn)

    以太網(wǎng)是一種局域網(wǎng)(Local Area Network, LAN)技術(shù),它定義了一組用于在局域網(wǎng)中傳輸數(shù)據(jù)的規(guī)則和標(biāo)準(zhǔn)。以太網(wǎng)協(xié)議的種類和
    的頭像 發(fā)表于 11-08 09:10 ?1548次閱讀