999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2022-07-12 04:53:46魏曉艷
微型電腦應(yīng)用 2022年5期

魏曉艷

(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院,計(jì)算機(jī)與軟件學(xué)院, 陜西, 西安 710300)

0 引言

傳統(tǒng)的設(shè)備或系統(tǒng)平臺(tái)之間的數(shù)據(jù)通信通常由并行總線的方式實(shí)現(xiàn),但隨著系統(tǒng)的集成化發(fā)展,算法日漸復(fù)雜,數(shù)據(jù)量日益增長,系統(tǒng)功能需要多個(gè)芯片協(xié)同處理共同支撐。這種情況下并行總線無法滿足數(shù)據(jù)吞吐量要求,對(duì)整體性能反而是一種制約。FPGA利用串行并行轉(zhuǎn)換、數(shù)據(jù)時(shí)鐘恢復(fù)等技術(shù)避免了傳輸過程中的時(shí)鐘扭曲以及信號(hào)衰退等因素的影響,實(shí)現(xiàn)了以太網(wǎng)接口的高速傳輸,為高速以太網(wǎng)接口提供了可靠的解決辦法。

1 核心技術(shù)簡介

1.1 以太網(wǎng)技術(shù)

以太網(wǎng)是目前局域網(wǎng)中最常見的通信協(xié)議標(biāo)準(zhǔn),包括10 Mbps、 100 Mbps、1 000 Mbps、10 Gbps等。其中,千兆以太網(wǎng)作為高速以太網(wǎng)技術(shù)應(yīng)用最為廣泛,既傳承了之前的技術(shù)優(yōu)勢,又具備自身獨(dú)特特性,采用8B/10B編碼規(guī)則適應(yīng)光纖傳輸要求,采用載波擴(kuò)展技術(shù)實(shí)現(xiàn)距離覆蓋,采用幀突發(fā)技術(shù)提升效率。

根據(jù)OSI標(biāo)準(zhǔn),基礎(chǔ)的七層網(wǎng)絡(luò)模型包括物理、數(shù)據(jù)鏈路、網(wǎng)絡(luò)、傳輸、會(huì)話、表示及應(yīng)用層。在以太網(wǎng)的層次架構(gòu)中,核心技術(shù)體現(xiàn)在數(shù)據(jù)鏈路層,主要包括接入控制MAC層、邏輯鏈路控制LLC層。MAC層主要實(shí)現(xiàn)將用戶自定義格式封裝為標(biāo)準(zhǔn)的以太網(wǎng)數(shù)據(jù)幀以及進(jìn)行地址過濾實(shí)現(xiàn)訪問流量管控,是確保數(shù)據(jù)傳輸可靠性的關(guān)鍵。

1.2 FPGA技術(shù)

FPGA(Field-Programmable Gate Array)也稱為可編程門陣列,與傳統(tǒng)的微處理器相比,F(xiàn)PGA技術(shù)克服了定制電路的缺點(diǎn),采用邏輯單元陣列的概念利用并行傳輸實(shí)現(xiàn)高速傳輸及信號(hào)處理,在資源復(fù)用、嵌入式處理器、微控單元方面應(yīng)用廣泛。

2 需求分析及總體設(shè)計(jì)框架

2.1 簡化的UDP/IP以太網(wǎng)協(xié)議棧

目前TCP/IP網(wǎng)絡(luò)協(xié)議應(yīng)用最廣,主要包括TCP、IP、IGMP、UDP等協(xié)議。TCP協(xié)議需完成3次握手且需要包括數(shù)據(jù)重傳,在硬件實(shí)現(xiàn)上難度較高。相對(duì)來說,UDP協(xié)議占用資源少,邏輯簡單,因此傳輸層選擇UDP協(xié)議,網(wǎng)絡(luò)層選擇IP協(xié)議用于格式封裝,同時(shí)去掉UDP和IP的首部,只保留數(shù)據(jù)包以降低硬件開銷[1]?;诤喕腢DP/IP協(xié)議棧的以太網(wǎng)格式如圖1所示。其中,傳輸層、網(wǎng)絡(luò)IP層、用戶層為處理用戶邏輯的上層協(xié)議,數(shù)據(jù)鏈路層為以太網(wǎng)MAC層。

圖1 簡化的協(xié)議棧格式

2.2 接口需求分析

FPGA利用自身硬件加速及并行處理的優(yōu)勢在大規(guī)模信號(hào)處理方面應(yīng)用廣泛,但對(duì)于復(fù)雜的數(shù)據(jù)處理并不擅長,但PC具備這種數(shù)據(jù)處理能力?;诖吮尘?,設(shè)計(jì)一種嵌入式的數(shù)據(jù)通信接口將以太網(wǎng)接入系統(tǒng)平臺(tái),通過高速以太網(wǎng)接口將數(shù)據(jù)傳送至PC,由PC完成復(fù)雜運(yùn)算。利用Xilinx的TEMAC核結(jié)合自定義簡化協(xié)議棧,實(shí)現(xiàn)系統(tǒng)平臺(tái)與PC間的高速數(shù)據(jù)傳輸。

2.3 基于FPGA的高速以太網(wǎng)接口總體設(shè)計(jì)框架

為了完成整體的高速以太網(wǎng)數(shù)據(jù)通信接口,不僅要實(shí)現(xiàn)鏈路層的MAC控制和物理層的收發(fā),還需要實(shí)現(xiàn)對(duì)用戶邏輯部分的上層協(xié)議處理。基于簡化后的UDP/IP協(xié)議棧,設(shè)計(jì)數(shù)據(jù)通信接口的總體框架包含3個(gè)部分:上層協(xié)議的數(shù)據(jù)包封裝與解析、數(shù)據(jù)鏈路層的MAC控制器、物理層的GTX收發(fā)器,設(shè)計(jì)框架如圖2所示。其中,物理層采用Xilink 7系列的FPGA中GTX收發(fā)器內(nèi)置的串并轉(zhuǎn)換、線路編碼、時(shí)鐘修正以及數(shù)據(jù)恢復(fù)等功能電路實(shí)現(xiàn)物理層傳輸[2],因此本研究著重研究上層協(xié)議的數(shù)據(jù)包封裝與解析和數(shù)據(jù)鏈路層的MAC控制器。

圖2 高速以太網(wǎng)接口總體設(shè)計(jì)框架

3 上層協(xié)議的數(shù)據(jù)包封裝與解析

上層協(xié)議的用戶邏輯處理主要包括MAC地址過濾、存儲(chǔ)地址解析、自定義協(xié)議解析以及數(shù)據(jù)包封裝4個(gè)部分。MAC地址過濾只接收與FPGA端的MAC地址匹配的數(shù)據(jù)包以實(shí)現(xiàn)地址過濾;存儲(chǔ)地址解析實(shí)現(xiàn)PC端MAC的提取和儲(chǔ)存;自定義協(xié)議解析實(shí)現(xiàn)數(shù)據(jù)字節(jié)拆解,結(jié)合PC端MAC地址作為數(shù)據(jù)發(fā)送的目標(biāo)地址;數(shù)據(jù)包封裝在創(chuàng)建初始數(shù)據(jù)幀的基礎(chǔ)上完成增加目標(biāo)地址、幀類型等處理動(dòng)作后進(jìn)行數(shù)據(jù)傳輸。

3.1 MAC地址過濾

在數(shù)據(jù)幀rx_axis_mac_tdata中利用字段Address Field存儲(chǔ)接收數(shù)據(jù)目標(biāo)主機(jī)的物理地址。rx_axis_mac_tvalid代表MAC輸出是否有效,F(xiàn)PGA端接收之后檢查目標(biāo)地址pkt_mac_reg,判斷與自身地址my_mac相同則作為接收數(shù)據(jù)包去掉14個(gè)字節(jié)的幀頭接收之后的有效數(shù)據(jù)。不相同則進(jìn)行復(fù)位[3]。整體過濾流程如圖3所示。

圖3 地址過濾流程

3.2 存儲(chǔ)地址解析

去掉14字節(jié)幀頭之后的有效數(shù)據(jù)存儲(chǔ)于64位寄存器out_cmd_i[63:0]之中,預(yù)先定義好存儲(chǔ)方式dest_mac_redister[47:0],比較out_cmd_i[63:0]中地址字節(jié)out_cmd_i[59:32]和預(yù)先地址字節(jié)ADD_DEST_MAC_L/H。如果與ADD_DEST_MAC_L相同,則FPGA端的數(shù)據(jù)包發(fā)送目標(biāo)地址的低32位,如果與ADD_DEST_MAC_H相同,則FPGA端的數(shù)據(jù)包發(fā)送目標(biāo)地址的高16位,最終解析出PC端的MAC地址,存儲(chǔ)在dest_mac_redister[47:0]之中。

3.3 自定義幀解析

去掉幀頭后的有效數(shù)據(jù)包括1個(gè)字節(jié)的操作類型OPCODE、1個(gè)字節(jié)的信道編碼Channel Num、4個(gè)字節(jié)的數(shù)據(jù)塊大小Block Size、4個(gè)字節(jié)的幀起始位置Start Address,34個(gè)字節(jié)的填充Zero Padding[4]。在接收到存儲(chǔ)地址解析模塊的PC端MAC地址,將其作為發(fā)送FPGA端的目標(biāo)地址之后,讀取數(shù)據(jù)庫的幀字段里的Channel Num、Start Address、Block Size字段,將這3個(gè)字段加在數(shù)據(jù)包前端作為控制信息后發(fā)送響應(yīng)包至PC端。

3.4 數(shù)據(jù)包封裝

由于以太網(wǎng)的數(shù)據(jù)鏈路層最終輸出是8位的GMII數(shù)據(jù),因此需將64位數(shù)據(jù)進(jìn)行拆分,每個(gè)時(shí)鐘周期傳輸8位,以tx_axis_mac_tdata代表封裝好的標(biāo)準(zhǔn)數(shù)據(jù)幀,op_code代表操作類型,out_data_reg代表待發(fā)送數(shù)據(jù)包[5]。整體封裝過程如圖4所示。

圖4 數(shù)據(jù)包封裝過程

4 數(shù)據(jù)鏈路層高速以太網(wǎng)MAC控制器

數(shù)據(jù)鏈路層的高速以太網(wǎng)MAC控制器采用GTX串行收發(fā)器與外部PHY芯片進(jìn)行連接,基于TEMAC嵌入式三態(tài)以太網(wǎng)MAC硬核實(shí)現(xiàn),控制器整體實(shí)現(xiàn)過程如圖5所示。

圖5 以太網(wǎng)MAC控制器

(1) 接收接口:接收數(shù)據(jù)后判斷是否符合協(xié)議標(biāo)準(zhǔn),去除添加區(qū)域,提供接收結(jié)果信號(hào)。

(2) 發(fā)送接口:在待發(fā)送數(shù)據(jù)前增加前導(dǎo)編碼Preamble、起始符SFD、校驗(yàn)序列FCS以及填充字段Pad使數(shù)據(jù)滿足以太網(wǎng)幀的長度規(guī)范。

(3) 8 bit用戶接口:為了支持GMII接口協(xié)議,用戶接口采用8 bit接口。

(4) GMII接口:將數(shù)據(jù)轉(zhuǎn)換為GMII格式,簡化外部處理邏輯。

(5) PCS/PMA接口:與GTX收發(fā)器相連,將內(nèi)部并行接口GMII轉(zhuǎn)換為串行接口SGMII,利用串行收發(fā)器與物理層芯片通信[6]。

(6) 管理接口:采用AXI4-Lite總線實(shí)現(xiàn)寄存器配置。

5 通信接口測試

為了驗(yàn)證設(shè)計(jì)的高速以太網(wǎng)數(shù)據(jù)通信接口的功能以及性能,針對(duì)接口傳輸準(zhǔn)確性以及傳輸性能2個(gè)方面進(jìn)行了測試。PC端軟件采用VS軟件,在winpcap驅(qū)動(dòng)的基礎(chǔ)上構(gòu)建數(shù)據(jù)包。FPGA端采用26 MHz地寫時(shí)鐘,輸入數(shù)據(jù)流為416Mbps。對(duì)于傳輸?shù)娜我庀噜彅?shù)據(jù)進(jìn)行差值運(yùn)算,相差為1則認(rèn)為連續(xù),沒有丟幀[7]。每個(gè)數(shù)據(jù)塊由204 800連續(xù)數(shù)據(jù)構(gòu)成,每個(gè)數(shù)據(jù)為2字節(jié),則數(shù)據(jù)塊大小為409 600bytes,得到輸出數(shù)據(jù)塊如下:

Blk Number=336

Prevblk last val=40204

currblk first val=40205

currblk 2nd val=40206

currblk 3rd val=40207

currblk 4 th val=40208

currblk last val=48396

Blk Number=337

Prevblk last val=48396

currblk first val=48397

currblk 2nd val=48398

currblk 3rd val=48399

currblk 4 th val=48400

currblk last val=56588

Blk Number=338

Prevblk last val=56588

currblk first val=56589

currblk 2nd val=56590

currblk 3rd val=56591

currblk 4 th val=56592

接下來將FPGA寫時(shí)鐘頻率分別定為30.72和61.44 MHz,利用WireShark抓包工具抓取數(shù)據(jù)并進(jìn)行統(tǒng)計(jì)分析,根據(jù)數(shù)據(jù)包總數(shù)、丟包數(shù)、傳輸速率等信息判斷通信接口的性能情況[8]。在寫時(shí)鐘頻率為30.72 MHz時(shí),理論上的傳輸速度應(yīng)為30.72 MHz×16 bit=491.52 Mbps,實(shí)際傳輸速率為488.82 Mbit/s,丟包率為3.6×10-6。在寫時(shí)鐘頻率為61.44 MHz時(shí),理論上的傳輸速度應(yīng)為61.44 MHz×16 bit=983.04 Mbps,實(shí)際傳輸速率為942.21 Mbit/s,丟包率為0.23%。

由此可知,本研究設(shè)計(jì)的高速以太網(wǎng)數(shù)據(jù)通信接口在寫時(shí)鐘頻率為26 Mhz時(shí)未出現(xiàn)丟包現(xiàn)象,在30.72 MHz時(shí)丟包率很低幾乎可以忽略不計(jì),在達(dá)到千兆極限的傳輸速率時(shí),丟包率僅在0.23%,在預(yù)期范圍之內(nèi)。

6 總結(jié)

本研究基于FPGA技術(shù)在簡化的UDP/IP協(xié)議棧的基礎(chǔ)上設(shè)計(jì)了高速以太網(wǎng)MAC控制器,并對(duì)用戶邏輯的數(shù)據(jù)包封裝及解析進(jìn)行了詳細(xì)設(shè)計(jì),經(jīng)過測試驗(yàn)證接口準(zhǔn)確性高、性能優(yōu)異。但協(xié)議棧相對(duì)簡單,TCP協(xié)議相較于UDP協(xié)議更為安全,后續(xù)將對(duì)TCP/IP協(xié)議棧進(jìn)行深入研究,以期在硬件開銷允許的情況下實(shí)現(xiàn)更安全更復(fù)雜的通信接口。

主站蜘蛛池模板: 国产精品久久久久久久久| 中国一级毛片免费观看| 国产丝袜啪啪| 亚洲精品爱草草视频在线| 国产综合欧美| 国产欧美精品一区aⅴ影院| 99久久精品美女高潮喷水| 永久毛片在线播| 久久精品无码一区二区日韩免费| 久久人人爽人人爽人人片aV东京热 | 2022国产91精品久久久久久| 国产区福利小视频在线观看尤物 | 国产第一页屁屁影院| 乱人伦中文视频在线观看免费| 99国产精品免费观看视频| 亚洲精品va| 最新亚洲人成网站在线观看| 国产www网站| 亚洲欧美自拍视频| 久久久久九九精品影院| 亚洲精品视频在线观看视频| 91成人试看福利体验区| 制服丝袜亚洲| 伊人久久大香线蕉影院| 国产成人精品免费视频大全五级| 国产成人免费观看在线视频| 国产激情无码一区二区APP| 国产噜噜噜视频在线观看| 午夜国产在线观看| 91精品福利自产拍在线观看| 99九九成人免费视频精品| 国产精品短篇二区| 成人福利在线视频| 亚洲第一页在线观看| 久久精品视频亚洲| 成人在线天堂| 久久久久亚洲精品成人网| 日本一区二区不卡视频| 91视频青青草| 免费a级毛片18以上观看精品| 美女内射视频WWW网站午夜| 国内精品久久久久久久久久影视| 亚洲天堂久久久| 重口调教一区二区视频| av一区二区无码在线| 中文字幕在线日本| 狠狠色综合久久狠狠色综合| 国产一区二区三区在线观看免费| 99视频全部免费| 亚洲天堂在线免费| 亚洲一区二区三区中文字幕5566| 老熟妇喷水一区二区三区| 久久青草热| 国产网站免费看| 狠狠色噜噜狠狠狠狠色综合久| 亚洲AⅤ无码日韩AV无码网站| 四虎影视无码永久免费观看| 国产高清国内精品福利| 色视频久久| 国产精品福利一区二区久久| 日韩精品一区二区三区免费| 天天爽免费视频| 国产精品一区二区无码免费看片| 国禁国产you女视频网站| 在线欧美国产| 狠狠操夜夜爽| 国产成人成人一区二区| 国产亚洲欧美另类一区二区| 最新精品久久精品| 亚洲一区色| 永久在线播放| 国产精品自拍合集| 亚洲欧美在线看片AI| 欧美一级特黄aaaaaa在线看片| 日韩欧美中文亚洲高清在线| 国产97公开成人免费视频| 亚洲色图欧美视频| 久久综合丝袜长腿丝袜| 久久亚洲美女精品国产精品| 成人国产小视频| 亚洲美女久久| 国产欧美日韩在线在线不卡视频|