国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

FPGA與88E1111的千兆以太網(wǎng)接口設(shè)計

2017-03-31 01:23朱明輝司斌張從霞張鵬
關(guān)鍵詞:發(fā)送數(shù)據(jù)以太網(wǎng)上位

朱明輝,司斌,張從霞,張鵬

(中國空空導彈研究院,洛陽 471009)

FPGA與88E1111的千兆以太網(wǎng)接口設(shè)計

朱明輝,司斌,張從霞,張鵬

(中國空空導彈研究院,洛陽 471009)

為實現(xiàn)設(shè)備間數(shù)據(jù)的以太網(wǎng)傳輸,對TCP/IP協(xié)議進行深入了研究,設(shè)計了基于FPGA和PHY物理層芯片88E1111的千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)。系統(tǒng)采用硬件描述語言實現(xiàn)以太網(wǎng)傳輸協(xié)議,并利用Xilinx提供的MAC以太網(wǎng)控制器 IP核完成幀校驗和封裝,物理層實現(xiàn)采用88E1111芯片。結(jié)合系統(tǒng)設(shè)計需求對TCP/IP以太網(wǎng)數(shù)據(jù)協(xié)議進行裁剪,僅保留UDP協(xié)議、IP協(xié)議和ARP地址解析協(xié)議。經(jīng)測試,千兆以太網(wǎng)能夠穩(wěn)定、高效地實現(xiàn)數(shù)據(jù)傳輸。

FPGA;千兆以太網(wǎng);UDP;IP;ARP

引 言

隨著導彈測試設(shè)備向智能化、模塊化的方向發(fā)展,模塊之間的數(shù)據(jù)通信已成為一個重要課題。目前測試設(shè)備內(nèi)各模塊之間數(shù)據(jù)傳輸主要采用并行總線和串行總線兩種方式[1],高數(shù)據(jù)傳輸常采用PCI、PXI和CPCI等并行總線,并行總線設(shè)計復雜并且不適合遠距離傳輸。串行總線RS485、RS232、CAN等雖然設(shè)計簡單、傳輸距離較遠,但數(shù)據(jù)速率一般不是很高。隨著以太網(wǎng)技術(shù)的發(fā)展,數(shù)據(jù)傳輸速率可以達到10 Mb/s、100 Mb/s、1 Gb/s、10 Gb/s,并且端到端的數(shù)據(jù)傳輸可達100 m,利用路由器或現(xiàn)有Internet網(wǎng)絡(luò)實現(xiàn)更遠距離傳輸,通過網(wǎng)口能夠方便地與計算機PC進行通信,所以研究嵌入式以太網(wǎng)數(shù)據(jù)傳輸?shù)膶崿F(xiàn)具有重要意義。

目前嵌入式以太網(wǎng)的實現(xiàn)方案眾多,根據(jù)以太網(wǎng)傳輸協(xié)議實現(xiàn)方式的不同大致可分為三種類型:第一種采用軟件代碼實現(xiàn)的以太網(wǎng)傳輸協(xié)議,如在ARM、DSP等微處理器上利用軟件代碼實現(xiàn)網(wǎng)絡(luò)協(xié)議[2-3],這種方式可以很方便地移植開源代碼的以太網(wǎng)協(xié)議棧,但受限于微處理的采用串行指令的運行方式導致數(shù)據(jù)處理能力、網(wǎng)絡(luò)傳輸速率不高;第二種采用內(nèi)部集成以太網(wǎng)協(xié)議的ASIC實現(xiàn)[4],只需要處理器對專用芯片進行簡單控制,便可實現(xiàn)數(shù)據(jù)的以太網(wǎng)發(fā)送和接收,不再需要用戶編寫TCP/IP協(xié)議,降低了處理器的資源消耗,用戶設(shè)計難度,但設(shè)計不夠靈活且會增加電路設(shè)計的復雜度;第三種是在FPGA上采用硬件描述語言實現(xiàn)以太網(wǎng)協(xié)議[5-6],這種方式依靠FPGA豐富的邏輯資源和強大的數(shù)據(jù)處理能力,克服了微處理器處理能力差的缺點,并且使用硬件描述語言可以很方便地實現(xiàn)協(xié)議的升級和維護,彌補了ASIC設(shè)計不夠靈活的缺點。

本文采用FPGA和物理層芯片88E1111芯片實現(xiàn)嵌入式千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)設(shè)計,根據(jù)需求對TCP/IP協(xié)議進行裁剪,降低了資源消耗及設(shè)計難度,經(jīng)測試傳輸系統(tǒng)夠穩(wěn)定、高效地實現(xiàn)數(shù)據(jù)傳輸。

1 千兆以太網(wǎng)傳輸系統(tǒng)總體設(shè)計

千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)采用目前主流的TCP/IP協(xié)議,完整的TCP/IP協(xié)議是一個龐大的協(xié)議簇,完全實現(xiàn)不僅會消耗大量的FPGA資源,同時會增加設(shè)計及維護難度。作為嵌入式的使用應(yīng)根據(jù)系統(tǒng)需求對其進行裁剪??紤]到系統(tǒng)高速數(shù)據(jù)傳輸、高實時性的要求,所以傳輸層僅保留具有較傳輸效率的非面向連接的UDP協(xié)議[9]。同時為了與上位機之間能夠?qū)崿F(xiàn)點對點數(shù)據(jù)傳輸,在UDP幀發(fā)送前需要知道對方物理地址MAC,所以保留數(shù)據(jù)鏈路層的ARP地址解析協(xié)議。裁剪后的協(xié)議棧如圖1所示,傳輸層采用UDP協(xié)議,網(wǎng)絡(luò)層采用IP協(xié)議,數(shù)據(jù)鏈路層采用ARP協(xié)議和MAC協(xié)議。

圖1 裁剪后的TCP/IP協(xié)議棧結(jié)構(gòu)

千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)的總體結(jié)構(gòu)如圖2所示,千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)主要包括:數(shù)據(jù)采集模塊、數(shù)據(jù)緩存FIFO、協(xié)議處理模塊、MAC控制器IP核和物理層PHY模塊。

圖2 千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)的總體結(jié)構(gòu)

數(shù)據(jù)采集模塊根據(jù)FPGA指令完成數(shù)據(jù)的采集,并將采集的數(shù)據(jù)發(fā)送至FPGA的FIFO緩存模塊。FIFO主要實現(xiàn)采集數(shù)據(jù)的緩存,供幀處理模塊發(fā)送數(shù)據(jù)使用。幀處理模塊采用硬件描述語言Verilog HDL編寫,在發(fā)送數(shù)據(jù)時按照圖3所示的幀格式,對發(fā)送數(shù)據(jù)逐層加上幀頭以完成幀封裝,并將其發(fā)送至MAC控制器。幀接收是幀發(fā)送的逆過程,首先對MAC控制器接收幀類型判斷,然后按照不同的協(xié)議完成幀的解析并提取幀攜帶的有用信息。

圖3 UDP和ARP幀封裝格式

MAC控制器采用Xilinx官方提供的IP核,設(shè)定速率為1000 Mbps,物理層接口為GMII模式[10]。在幀發(fā)送時,MAC控制器為發(fā)送幀添加前導碼、起始碼、補碼和FCS校驗碼,然后將MAC幀通過GMII總線口發(fā)送至物理層芯片PHY。在幀接收時,MAC控制模塊通過GMII總線接口接收物理層PHY芯片發(fā)來的數(shù)據(jù),對接收到的幀完成CRC校驗,將前導碼、起始碼、補碼和FCS校驗碼去除后送給上層的幀接收模塊。

物理層的實現(xiàn)采用Marvell公司的88E1111 PHY芯片,88E1111支持10M/100M/1000 Mbps三種速率,與MAC層接口有RGMII、SGMII、GMII等類型[11]。在千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)設(shè)計時,通過CONFIG[3:0]引腳配置88E1111芯片接口類型為GMII模式。在幀發(fā)送時,88E1111通過GMII接口從MAC控制器接收幀數(shù)據(jù),進行編碼后通過網(wǎng)絡(luò)變壓器發(fā)送至RJ45網(wǎng)口。在幀接收時,PHY芯片首先完成對接收數(shù)據(jù)的解碼,然后將接收到的數(shù)據(jù)通過GMII口發(fā)送至MAC控制器。

2 FPGA邏輯設(shè)計

在FPGA邏輯設(shè)計中,以太網(wǎng)協(xié)議的實現(xiàn)是系統(tǒng)的核心部分,本部分重點介紹UDP幀的發(fā)送接收、ARP請求的接收和應(yīng)答幀發(fā)送的邏輯設(shè)計。幀處理模塊的結(jié)構(gòu)如圖4所示。

圖4 FPGA幀處理模塊

幀處理模塊主要包括UDP幀發(fā)送模塊、ARP應(yīng)答模塊和幀接收模塊。當幀接收模塊收到MAC控制器發(fā)來的數(shù)據(jù)后,接收模塊根據(jù)不同的幀類型提取有用信息并做出相應(yīng)處理。若收到的為ARP請求幀,則使能ARP應(yīng)答幀發(fā)送模塊,將本地MAC地址告訴上位機。若收到包含數(shù)據(jù)發(fā)送命令的UDP幀,則將FIFO中的采集數(shù)據(jù)按照圖3幀格式逐層進行幀封裝并完成發(fā)送。

2.1 UDP幀發(fā)送模塊設(shè)計

UDP幀發(fā)送模塊主要完成對發(fā)送數(shù)據(jù)的UDP和IP封裝并發(fā)送至MAC控制器。UDP幀發(fā)送模塊如圖5所示,Tx_data_in[7:0]為來自FIFO的數(shù)據(jù)輸入口, Tx_data_length[15:0]為發(fā)送數(shù)據(jù)長度輸入口, Destination_MAC和Destination_IP為目的地址輸入口,Tx_ack為MAC控制器空閑標志位。Tx_data_out[7:0]為封裝完成的幀的輸出口。為了降低端口數(shù)量和設(shè)計復雜度、提高可維護度,對于每幀中都相同的數(shù)據(jù)如源MAC、源IP地址、協(xié)議、版本等通過參數(shù)parameter進行設(shè)定。

圖5 UDP幀發(fā)送模塊

圖6 UDP幀發(fā)送狀態(tài)流程圖

UDP幀發(fā)送模塊的發(fā)送數(shù)據(jù)的狀態(tài)流程如圖6所示,當發(fā)送模塊的Tx_en輸入使能后,進入Send_MAC_header1狀態(tài)首先發(fā)送MAC幀頭的第一個字節(jié),然后檢查來自MAC控制器的Tx_ack信號,若Tx_ack為0,說明MAC控制器忙,則返回idle。若Tx_ack為1,則依次完成MAC幀首部、IP幀首部、UDP首部發(fā)送。當完成所有幀首部發(fā)送后,從FIFO讀入要發(fā)送的數(shù)據(jù),每讀入一個數(shù)據(jù),cnt加1,當cnt等于發(fā)送數(shù)據(jù)長度(Tx_data_length-1)時,說明發(fā)送數(shù)據(jù)已封裝完成,則返回到idle。

2.2 ARP應(yīng)答發(fā)送模塊設(shè)計

在收到ARP請求幀后,ARP應(yīng)答模塊完成應(yīng)答幀封裝與發(fā)送。ARP發(fā)送模塊如圖7所示,可通過Destination_MAC和Destination_IP口從ARP目錄寄存器中獲取目的MAC和IP地址,每幀中都相同的數(shù)據(jù)通過參數(shù)parameter賦予ARP應(yīng)答模塊。ARP應(yīng)答幀的發(fā)送流程較為簡單,當Tx_en使能后,進入ARP應(yīng)答幀發(fā)狀態(tài),當?shù)谝粋€數(shù)據(jù)發(fā)送完,讀取MAC控制器回送的Tx_ack信號,若為1說明MAC控制器空閑,則按照ARP幀格式完成ARP應(yīng)答幀發(fā)送,若為0,說明MAC控制器忙,則返回初始狀態(tài)。

圖7 ARP幀發(fā)送模塊

2.3 幀接收模塊

幀接收模塊實現(xiàn)對上位機發(fā)來的ARP請求幀和IP數(shù)據(jù)幀進行接收,并對不同類型幀做不同的處理。幀接收模塊接口如圖8所示, Rx_data_in為來自MAC控制器的數(shù)據(jù)輸入,Rx_data_valid為輸入數(shù)據(jù)有效標志位。接收模塊幀中的源MAC地址和源IP地址通過MAC和IP口送給ARP目錄模塊, ARP_Reply_en為ARP應(yīng)答幀使能輸出端,Rx_data_out為UDP幀數(shù)據(jù)輸出端。

幀接收模塊的狀態(tài)流程如圖9所示,當檢測到Rx_data_valid 置高后,便開始數(shù)據(jù)接收。首先接收MAC幀頭并檢測協(xié)議類型,若為0x0806,說明為ARP幀,則進入Rx_arp幀接收狀態(tài)接收ARP幀剩余部分,在ARP幀接收完成后進入Frame_state狀態(tài)并通過Rx_good_frame判斷接收到的幀是否有效,若檢測到Rx_good_frame為1,表示接收到的ARP幀正確,則進入Up_data狀態(tài),使能ARP_Reply_en輸出ARP幀中源MAC和IP地址,否則丟棄該幀并返回到idle狀態(tài)。若協(xié)議類型為0x0800,則按照IP幀格式進行幀接收,依次進入Rx_IP_header和Rx_UDP_header狀態(tài)完成IP和UDP幀頭接收,幀頭接收完成后進入數(shù)據(jù)接收狀態(tài),將接收的數(shù)據(jù)存入模塊內(nèi)的數(shù)據(jù)緩存區(qū),在幀接收完后若檢測到Rx_good_frame為1,則輸出data_length個緩存數(shù)據(jù),否則丟棄該幀數(shù)據(jù)并返回idle狀態(tài)。

圖8 幀接收模塊

圖9 幀接收模塊狀態(tài)流程

3 系統(tǒng)測試

千兆以太網(wǎng)實現(xiàn)平臺選用ML605開發(fā)板,平臺包括XC6VLX240T型FPGA和PHY層芯片88E1111。為實現(xiàn)對系統(tǒng)測試,上位機裝有UDP幀收發(fā)軟件和Wireshark抓包軟件,實現(xiàn)數(shù)據(jù)幀的收發(fā)和抓包分析。設(shè)置以太網(wǎng)傳輸系統(tǒng)的IP地址為192.168.0.20,MAC地址為60:A4:4C:7B:E9:E8。設(shè)置上位機IP地址為192.168.0.10,MAC地址為DC:0E:A1:CD:60:65。

首先上位機向嵌入式以太網(wǎng)系統(tǒng)發(fā)送ARP請求來獲取系統(tǒng)的MAC地址,嵌入式以太網(wǎng)系統(tǒng)收到ARP地址請求后,發(fā)送ARP應(yīng)答幀將本地MAC地址回送給上位機。上位機收到ARP應(yīng)答幀后便發(fā)送包含數(shù)據(jù)發(fā)送命令的UDP幀,為測試嵌入式以太網(wǎng)數(shù)據(jù)發(fā)送性能,嵌入式以太網(wǎng)系統(tǒng)收到命令幀后開始重復向上位機發(fā)送固定幀長的數(shù)據(jù)幀。

Wireshark軟件抓包結(jié)果如圖10和圖11所示。圖10中,第1幀為上位機發(fā)送的ARP請求幀,包含的信息有上位機IP和MAC地址和要請求獲取嵌入式以太網(wǎng)設(shè)備的IP地址,第2幀為嵌入式以太網(wǎng)返回的ARP應(yīng)答幀,將嵌入式以太網(wǎng)系統(tǒng)的MAC地址60:A4:4C:7B:E9:E8告知上位機。圖11中,第1幀為上位機發(fā)送給的包含數(shù)據(jù)發(fā)送命令的UDP幀,后續(xù)為嵌入式系統(tǒng)收到命令幀后,向上位機重復發(fā)送UDP數(shù)據(jù)幀,經(jīng)測試,以太網(wǎng)系統(tǒng)能夠正常工作,傳輸數(shù)據(jù)穩(wěn)定高效。

Design of Gigabit Ethernet Interface Based on FPGA and 88E1111

Zhu Minghui,Si Bin,Zhang Congxia,Zhang Peng

(China Airborne Missile Academy,Luoyang 471009,China)

In order to realize the data transmission between devices,the TCP/IP protocol has been studied,and a Gigabit Ethernet data transmission system based on FPGA and PHY physical layer chip 88E1111 is designed.The system uses the hardware description language to implement the Ethernet transmission protocol and uses the MAC Ethernet controller IP core to complete the frame verification and encapsulation.The physical layer is realized by using 88E1111 chip.According to the system design requirements,the TCP/IP Ethernet data protocol is cut out to only retain the UDP protocol,IP protocol and ARP address resolution protocol.The experiment results show that the Gigabit Ethernet system can achieve the data transmission stably and efficiently.

FPGA;Gigabit Ethernet;UDP;IP;ARP

圖10 ARP請求及應(yīng)答幀抓包結(jié)果

圖11 UDP數(shù)據(jù)傳輸幀抓包結(jié)果

TP393

A

猜你喜歡
發(fā)送數(shù)據(jù)以太網(wǎng)上位
基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
一種車載自組織網(wǎng)絡(luò)的媒體接入控制協(xié)議
基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點性能分析
帶標記方式的CRDSA++協(xié)議性能分析*
特斯拉 風云之老阿姨上位
談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
“三扶”齊上位 決戰(zhàn)必打贏
基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
使用IPSec安全傳輸數(shù)據(jù)
一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計