淺析基于FPGA的千兆以太網(wǎng)協(xié)議分析技術(shù)

時(shí)間:2017-11-22

來源:網(wǎng)絡(luò)轉(zhuǎn)載

導(dǎo)語:以太網(wǎng)是當(dāng)前最基本、最流行的局域網(wǎng)組網(wǎng)技術(shù),為了適應(yīng)各種新開展的業(yè)務(wù)如流視頻等,其速率也在不斷提高。

0引言

以太網(wǎng)是當(dāng)前最基本、最流行的局域網(wǎng)組網(wǎng)技術(shù),為了適應(yīng)各種新開展的業(yè)務(wù)如流視頻等,其速率也在不斷提高。千兆以太網(wǎng)是建立在以太網(wǎng)標(biāo)準(zhǔn)基礎(chǔ)之上的技術(shù),具有高效、高速、高性能的特點(diǎn),目前企業(yè)局域網(wǎng)甚至城域網(wǎng)的建設(shè)都會(huì)把千兆以太網(wǎng)技術(shù)作為首選的高速網(wǎng)絡(luò)技術(shù)。而千兆以太網(wǎng)協(xié)議分析技術(shù)是隨著計(jì)算機(jī)技術(shù)、現(xiàn)代通信技術(shù)、網(wǎng)絡(luò)技術(shù)的迅速發(fā)展而發(fā)展起來的,能夠應(yīng)對(duì)信息網(wǎng)絡(luò)的突發(fā)事件,迅速判斷網(wǎng)絡(luò)癱瘓和受攻擊部位,起到應(yīng)急反應(yīng)支援的作用。同時(shí),隨著TCP/IP(TransmissionControlProtocol/InternetProtocol)的廣泛應(yīng)用和深入,TCP/IP計(jì)算機(jī)網(wǎng)絡(luò)的建設(shè)、維護(hù)和故障診斷面臨著巨大的挑戰(zhàn),急切需要千兆以太網(wǎng)協(xié)議分析技術(shù)的應(yīng)用。

1工作原理

本文介紹的千兆以太網(wǎng)協(xié)議分析技術(shù)是基于FPGA(Field-ProgrammableGateArray)設(shè)計(jì)技術(shù),支持10M/100M/1000M電口和光口測(cè)試,采用RJ45和SFP光口連接器形式;負(fù)責(zé)物理層及數(shù)據(jù)鏈路層的數(shù)據(jù)幀編輯、生成、捕獲、過濾、觸發(fā)、解碼和分析處理工作,IP層以上的協(xié)議幀有軟件根據(jù)IEEE802.3協(xié)議標(biāo)準(zhǔn)進(jìn)行操作。圖1、圖2所示分別為本方案的發(fā)送部分、接收與分析部分的原理框圖。

圖1 發(fā)生器原理框圖

千兆以太網(wǎng)協(xié)議測(cè)試FPGA內(nèi)部設(shè)計(jì)部分可以分為發(fā)送部分、接收分析部分和接口芯片寄存器管理部分。其中,發(fā)送部分完成發(fā)送、編輯和生成各種以太網(wǎng)數(shù)據(jù)流等功能,根據(jù)測(cè)試需要,發(fā)送部分可產(chǎn)生任意的MAC地址、IP地址、錯(cuò)誤的校驗(yàn)與錯(cuò)誤插入等非正常數(shù)據(jù)。其中,MAC地址、IP地址的設(shè)置種類很多,可以設(shè)置為靜態(tài)、遞增、遞減、隨機(jī)等;接收分析部分完成以太網(wǎng)數(shù)據(jù)流統(tǒng)計(jì)、捕獲、解碼分析、信號(hào)性能統(tǒng)計(jì)等功能;根據(jù)測(cè)試需要,接收部分可選擇捕獲和統(tǒng)計(jì)需要的MAC地址、IP地址、錯(cuò)誤的校驗(yàn)類型與錯(cuò)誤插入類型等的數(shù)據(jù)幀,其中可設(shè)置的過濾條件和觸發(fā)條件有MAC地址、IP地址、圖形1、圖形2、協(xié)議類型和錯(cuò)誤類型等。接口芯片寄存器管理部分完成對(duì)接口芯片BCM5421寄存器的讀寫操作與管理及串/并、并/串轉(zhuǎn)換功能。

2設(shè)計(jì)實(shí)現(xiàn)

本文介紹的千兆以太網(wǎng)協(xié)議分析技術(shù)是通過千兆以太網(wǎng)收發(fā)器BCM5421和大規(guī)模FPGA組合的硬件平臺(tái)來實(shí)現(xiàn)的。由于千兆以太網(wǎng)支持電口和光口兩種接口方式、以太網(wǎng)協(xié)議復(fù)雜、千兆速度很高、邏輯控制龐大,在FPGA設(shè)計(jì)及PCB布板設(shè)計(jì)實(shí)現(xiàn)中,具有很高的難度。具體設(shè)計(jì)實(shí)現(xiàn)的電路框圖如圖3所示。

圖3 千兆以太網(wǎng)分析技術(shù)實(shí)現(xiàn)電路框圖

千兆以太網(wǎng)信號(hào)經(jīng)過收發(fā)處理電路送入接口芯片,由接口芯片對(duì)信號(hào)進(jìn)行信號(hào)有效性、碰撞、編/解碼、點(diǎn)燈等操作,然后以8-bit的串行數(shù)據(jù)流送入FPGA。在FPGA內(nèi)需要完成MAC層發(fā)送部分各種以太網(wǎng)幀的編輯、生成、數(shù)據(jù)編輯、錯(cuò)誤插入、并/串轉(zhuǎn)換、發(fā)送模式的設(shè)置等,完成MAC層接收部分各種以太網(wǎng)幀的監(jiān)測(cè)、捕獲、過濾、解碼、查找錯(cuò)誤和評(píng)估性能等,MAC層接口芯片的寄存器管理、讀寫控制等;還有CPU和硬件對(duì)SRAM、SDRAM的讀寫、存儲(chǔ)操作等,具體實(shí)現(xiàn)過程如下所述。

2.1千兆以太網(wǎng)協(xié)議分析接口電路設(shè)計(jì)

以太網(wǎng)測(cè)試模塊采用兩種接口方式:RJ45電口和SFP光電轉(zhuǎn)換模塊的光口。本技術(shù)實(shí)現(xiàn)方案采用的是接口收發(fā)器芯片BROADCOM公司的BCM5421S,完全支持IEEE802.3、自動(dòng)協(xié)商、碰撞檢測(cè)試、編/解碼、串/并變換等功能,符合10BASE-T、100BASE-TX和1000BASET標(biāo)準(zhǔn)。同時(shí),支持RGMII、GMII、MII、TBI、RTBI、SGMII和SerDesMAC接口方式。

2.2千兆以太網(wǎng)協(xié)議分析FPGA內(nèi)部設(shè)計(jì)

由于千兆以太網(wǎng)協(xié)議分析整個(gè)工程太大、邏輯控制太復(fù)雜、傳輸速率很高,根據(jù)設(shè)計(jì)需要,采用的是Xilinx公司的Virtex4系列的XC4VLX40-11FFG668C,使用VHDL語言進(jìn)行編程,F(xiàn)PGA主要完成以下功能:

(1)完成10M、100M、1000M三種速率的各種協(xié)議層的功能;

(2)幀錯(cuò)誤和比特誤碼的插入和檢測(cè)統(tǒng)計(jì)功能;

(3)數(shù)據(jù)流以太網(wǎng)編/解幀、捕獲、過濾、各種性能指標(biāo)的計(jì)數(shù)器及累加功能;

(4)與BCM5421S、微處理器和存儲(chǔ)器(SRAM、SDRAM)之間數(shù)據(jù)傳送/接收的邏輯控制功能;

(5)與微處理器之間的數(shù)據(jù)與地址接口控制。

發(fā)送部分FPGA設(shè)計(jì)包括幾個(gè)模塊:成幀器模塊、成幀控制信息及幀數(shù)據(jù)模塊、數(shù)據(jù)流模式發(fā)生器模塊、FIFO模塊、地址譯碼及邏輯控制字電路模塊、誤碼插入電路模塊、地址發(fā)生器模塊、SRAM控制器模塊等。

CPU總線分別對(duì)SRAM、FPGA內(nèi)的DPRAM編寫數(shù)據(jù)流的幀數(shù)據(jù)及控制信息,通過SRAM控制器對(duì)SRAM進(jìn)行讀寫操作,由于以太網(wǎng)協(xié)議的幀長(zhǎng)度是以字節(jié)為單位的,故需要把SRAM的32位數(shù)據(jù)轉(zhuǎn)換為8位,再進(jìn)行處理。在FPGA內(nèi)設(shè)計(jì)一個(gè)32位進(jìn)8位出的FIFO來實(shí)現(xiàn),然后在以太網(wǎng)數(shù)據(jù)流成幀器模塊中根據(jù)數(shù)據(jù)流控制信息、數(shù)據(jù)流發(fā)送模式、錯(cuò)誤及BIT誤碼插入等控制信息把以字節(jié)為單位的數(shù)據(jù)流組成滿足各種要求的以太網(wǎng)幀。在成幀的同時(shí),需要對(duì)發(fā)送的數(shù)據(jù)幀進(jìn)行8-bit并行CRC校驗(yàn)產(chǎn)生一個(gè)32-bit的校驗(yàn)碼,根據(jù)幀格式要求加在數(shù)據(jù)幀的尾部,進(jìn)而通過8比特輸出到接口芯片,由接口芯片進(jìn)行編碼輸出。具體實(shí)現(xiàn)框圖如圖4的發(fā)送部分所示。其中,成幀器中包括前導(dǎo)碼生成模塊、MAC地址生成模塊、協(xié)議選擇模塊、IP地址生產(chǎn)模塊、數(shù)據(jù)域生成模塊等,前導(dǎo)碼長(zhǎng)度可從4-255字節(jié)任意設(shè)置,MAC地址、IP地址可以設(shè)置五種生成模式:靜態(tài)、遞增、遞減、隨機(jī)及本端口(網(wǎng)關(guān)),數(shù)據(jù)域的設(shè)置包括固定字、用戶編輯、偽隨機(jī)圖形、遞減、遞增和隨機(jī)等。

圖4 發(fā)送部分FPGA 設(shè)計(jì)實(shí)現(xiàn)框圖

數(shù)據(jù)流的控制信息都存儲(chǔ)在FPGA中生成的DPRAM中,主要是用來設(shè)置每個(gè)數(shù)據(jù)流的控制信息,包括:數(shù)據(jù)流數(shù)據(jù)在SRAM中的存放地址、數(shù)據(jù)流長(zhǎng)度、前導(dǎo)碼的長(zhǎng)度、發(fā)送模式、MAC地址的類型、IP地址的類型、錯(cuò)誤插入類型、幀間隔及下一個(gè)數(shù)據(jù)流控制信息在DPRAM的地址等。

接收部分的FPGA設(shè)計(jì)主要是用來處理BCM5421S接收的幀數(shù)據(jù),對(duì)數(shù)據(jù)流進(jìn)行解幀、流量控制、性能統(tǒng)計(jì)、幀解碼、捕獲、過濾和觸發(fā)。其中,過濾和觸發(fā)包括源、目的MAC地址,源、目的IP地址,協(xié)議類型、幀類型錯(cuò)誤、圖形1、2等。接收的數(shù)據(jù)首先根據(jù)接口芯片監(jiān)測(cè)的數(shù)據(jù)速率確定是1000M、100M還是10M信號(hào),將數(shù)據(jù)流鎖存一個(gè)時(shí)鐘周期后送入FIFO中,在數(shù)據(jù)寫入FIFO時(shí)仍需記錄每一個(gè)數(shù)據(jù)幀的長(zhǎng)度,讀取數(shù)據(jù)的時(shí)候一次讀出整個(gè)數(shù)據(jù)幀。MAC層接收部分FPGA設(shè)計(jì)包括幾個(gè)模塊:解幀器模塊、解幀控制信息模塊、捕獲、過濾、觸發(fā)模塊、地址譯碼及邏輯控制字電路模塊、幀錯(cuò)誤及誤碼監(jiān)測(cè)電路模塊、地址發(fā)生器模塊、SDRAM控制器模塊等。具體實(shí)現(xiàn)框圖如圖5的接收部分所示。解幀器模塊是成幀器的反過程,根據(jù)數(shù)據(jù)速率的要求選擇不同的時(shí)鐘計(jì)數(shù)器,首先識(shí)別前導(dǎo)碼,然后以前導(dǎo)碼結(jié)束為依準(zhǔn),運(yùn)用計(jì)數(shù)器依次識(shí)別MAC目的地址、MAC源目的地址、幀協(xié)議類型、數(shù)據(jù)部分(根據(jù)識(shí)別后的幀協(xié)議類型的不同可以識(shí)別不同的幀結(jié)構(gòu),如IP、TCP、UDP、IGMP、ICMP等幀的幀頭部分)、CRC校驗(yàn)碼等幀結(jié)構(gòu)中的組成部分,然后分別鎖存在寄存器用于接收數(shù)據(jù)幀的解碼使用。

圖5 接收部分FPGA 設(shè)計(jì)實(shí)現(xiàn)框圖

在接收數(shù)據(jù)的接收幀設(shè)計(jì)的過程中,分別設(shè)計(jì)了不同的計(jì)數(shù)器用來對(duì)接收幀個(gè)數(shù)、接收字節(jié)數(shù)、不同協(xié)議幀個(gè)數(shù)、不同錯(cuò)誤幀個(gè)數(shù)等性能指標(biāo)進(jìn)行計(jì)數(shù),通過軟件每0.5s讀取一次,進(jìn)行累計(jì)或?qū)崟r(shí)統(tǒng)計(jì)顯示。

數(shù)據(jù)幀接收部分的捕獲、過濾、觸發(fā)模塊可完成對(duì)源、目的MAC地址,源、目的IP地址,協(xié)議類型,幀類型錯(cuò)誤,圖形1、2等指標(biāo)的捕獲、過濾和觸發(fā)功能的測(cè)試。幀錯(cuò)誤及監(jiān)測(cè)電路模塊可以監(jiān)測(cè)發(fā)送部分所有能插入的幀錯(cuò)誤類型,檢測(cè)CRC校驗(yàn)碼的設(shè)計(jì)程序與發(fā)送相同,接收數(shù)據(jù)經(jīng)過CRC校驗(yàn)程序計(jì)算以后與發(fā)送來的幀CRC校驗(yàn)碼比較,可以判斷接收的幀數(shù)據(jù)是否有FCS錯(cuò)誤。IP、TCP、UDP頭校驗(yàn)錯(cuò)誤的監(jiān)測(cè)與FCS錯(cuò)誤監(jiān)測(cè)類似,不過程序計(jì)算校驗(yàn)和的方法是采用二進(jìn)制反碼遠(yuǎn)算,需要校驗(yàn)的首部按照16-bit進(jìn)行相加,如果有進(jìn)位,就把進(jìn)位也加上,然后計(jì)算和,再取反,就得到校驗(yàn)和了。地址譯碼及邏輯控制模塊主要是通過軟件對(duì)分配好的地址的寄存器進(jìn)行讀寫即可。

3結(jié)束語

本文介紹的千兆以太網(wǎng)協(xié)議分析技術(shù)采用超大規(guī)模FPGA設(shè)計(jì)技術(shù)成功實(shí)現(xiàn)千兆以太網(wǎng)數(shù)據(jù)的發(fā)送、接收、協(xié)議分析、記錄、統(tǒng)計(jì)等功能,設(shè)計(jì)了采集和存儲(chǔ)快速處理電路,實(shí)現(xiàn)了速率為10M/100M/1000M、接口為光口和電口的以太網(wǎng)網(wǎng)絡(luò)測(cè)試功能,已經(jīng)成功應(yīng)用于某測(cè)試系統(tǒng)的千兆以太網(wǎng)測(cè)試模塊的設(shè)計(jì)中,并通過了嚴(yán)格的測(cè)試。

中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.connectcrack.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊

關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊

關(guān)注中國傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊

最新新聞
查看更多資訊

娓娓工業(yè)

廣州金升陽科技有限公司

熱搜詞
  • 運(yùn)動(dòng)控制
  • 伺服系統(tǒng)
  • 機(jī)器視覺
  • 機(jī)械傳動(dòng)
  • 編碼器
  • 直驅(qū)系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機(jī)界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機(jī)器人
  • 低壓電器
  • 機(jī)柜
回頂部
點(diǎn)贊 0
取消 0