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

時間:2017-11-22

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

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

0引言

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

1工作原理

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

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

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

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

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

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

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

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

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

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

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

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

(2)幀錯誤和比特誤碼的插入和檢測統(tǒng)計功能;

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

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

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

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

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

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

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

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

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

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

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

3結(jié)束語

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

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

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

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

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

關(guān)注伺服與運動控制公眾號獲取更多資訊

關(guān)注直驅(qū)與傳動公眾號獲取更多資訊

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

最新新聞
查看更多資訊

娓娓工業(yè)

廣州金升陽科技有限公司

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