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

?

基于FPGA的TCP/IP協(xié)議數(shù)據(jù)傳輸研究

2017-12-21 10:44魯睿其歐先鋒
關(guān)鍵詞:電路板IP地址數(shù)據(jù)包

魯睿其,歐先鋒,b

(湖南理工學(xué)院 a.信息與通信工程學(xué)院;b.復(fù)雜系統(tǒng)優(yōu)化與控制 湖南省普通高等學(xué)校重點實驗室,湖南 岳陽 414006)

基于FPGA的TCP/IP協(xié)議數(shù)據(jù)傳輸研究

魯睿其a,歐先鋒a,b

(湖南理工學(xué)院 a.信息與通信工程學(xué)院;b.復(fù)雜系統(tǒng)優(yōu)化與控制 湖南省普通高等學(xué)校重點實驗室,湖南 岳陽 414006)

通過FPGA來實現(xiàn)TCP/IP協(xié)議棧以及以太網(wǎng)MAC控制器,不僅具有FPGA本身功耗低、面積小、可靠性高的優(yōu)點,還可以達(dá)到非常高的數(shù)據(jù)處理速度,從而提升整個系統(tǒng)的性能。采用Mentor制版軟件設(shè)計一款基于Spartan6 系列FPGA的PCB板,根據(jù)TCP/IP協(xié)議采用Verilog HDL和VHDL語言編寫數(shù)據(jù)輸入輸出模塊程序代碼,基于ISE測試工具進(jìn)行硬件和軟件測試,完成整個系統(tǒng)的性能測試。系統(tǒng)硬件和軟件測試結(jié)果表示本設(shè)計系統(tǒng)性能良好,能夠進(jìn)行數(shù)據(jù)高速的傳輸,且不占用CPU資源,系統(tǒng)性能良好,運行穩(wěn)定可靠。

現(xiàn)場可編程門陣列;TCP/IP協(xié)議;數(shù)據(jù)傳輸

計算機(jī)網(wǎng)絡(luò)已經(jīng)成為信息時代主要的信息傳輸方式,一般采用TCP/IP協(xié)議進(jìn)行數(shù)據(jù)傳輸。傳統(tǒng)TCP/IP協(xié)議是基于CPU(Central Processing Unit,中央處理器)軟件實現(xiàn)的[1]。但CPU并不是專門針對TCP/IP協(xié)議設(shè)計的,因此它處理協(xié)議的能力不強(qiáng)、效率不高;TCP/IP協(xié)議是通過對數(shù)據(jù)進(jìn)行打包和拆包的方式來實現(xiàn)網(wǎng)絡(luò)的連接,如果這些過程都用軟件來實現(xiàn),就會占用大量的CPU資源,浪費存儲空間及產(chǎn)生大量功耗,使其性價比很低[2],從而影響整個系統(tǒng)的性能,導(dǎo)致廣闊的帶寬資源得不到充分的利用。隨著技術(shù)的發(fā)展,處理器的速度增長符合Moore規(guī)則,每18個月增長一倍。網(wǎng)絡(luò)帶寬的增長速度符合Gilder規(guī)則,每9~12個月就增長一倍[3],由此可見CPU數(shù)據(jù)處理速度的增長已經(jīng)遠(yuǎn)遠(yuǎn)落后于網(wǎng)絡(luò)帶寬的增長速度。面對不斷增長的網(wǎng)絡(luò)帶寬的數(shù)據(jù)處理速度,傳統(tǒng)基于CPU實現(xiàn)TCP/IP協(xié)議的方式,已經(jīng)越來越不能滿足現(xiàn)在的需求[4]。

在國外,用微控制單元(Microcontroller Unit,MCU)或嵌入式系統(tǒng)來實現(xiàn)TCP/IP協(xié)議的技術(shù)已經(jīng)比較成熟。國內(nèi)這兩年來也推出了部分基于51系列的TCP/IP協(xié)議解決方案。但單片機(jī)的程序空間有限,運算速度也很有限[5]。因此,設(shè)計出一種新的基于現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)實現(xiàn)TCP/IP協(xié)議的方式,就可以解決MCU處理TCP/IP協(xié)議低速率的問題。

通過FPGA來實現(xiàn)TCP/IP協(xié)議棧以及以太網(wǎng)MAC控制器,不僅FPGA本身具有功耗低、面積小、可靠性高的優(yōu)點,它還具有非常高的數(shù)據(jù)處理速度。當(dāng)此芯片應(yīng)用在嵌入式系統(tǒng)中時,可以將原本屬于主CPU的這部分工作由額外的硬件電路完成,從而減輕了CPU的負(fù)擔(dān),并加速網(wǎng)絡(luò)處理的能力,提高系統(tǒng)的性能。比如在工業(yè)控制方面,使用這樣的TCP/IP芯片系統(tǒng),可以實現(xiàn)遠(yuǎn)程控制、遠(yuǎn)程抄表等一系列功能。當(dāng)此芯片應(yīng)用在一些無需操作系統(tǒng)的系統(tǒng)中,也能夠?qū)崿F(xiàn)網(wǎng)絡(luò)的高速連接功能,這樣可以在很多便攜式無操作系統(tǒng)電子產(chǎn)品比如MP3、MP4以及三網(wǎng)合一的數(shù)字機(jī)頂盒上實現(xiàn)高速上網(wǎng)功能[6]。

1 硬件電路介紹

硬件電路的基本設(shè)計目標(biāo)是實現(xiàn)TCP/IP協(xié)議在電路板和計算機(jī)間的數(shù)據(jù)傳輸,基本模塊包括:Spartan6 FPGA數(shù)據(jù)處理模塊、光纖傳輸模塊、電源模塊和時鐘模塊等,其中FPGA采用的是Xilinx 公司的Spartan6系列的XC6SLX75T。

硬件電路采用8層PCB板設(shè)計,基于Mentor Graphics公司的Expedition PCB工具完成電路板的設(shè)計。本文設(shè)計的電路板通過電源接口連接到外部電源3.3 V直接供電,并且通過電源轉(zhuǎn)換芯片MAX8505得到1.2 V供給電路板其他模塊。時鐘信號是由特定的25MHZ時鐘芯片提供,并且通過時鐘轉(zhuǎn)換芯片轉(zhuǎn)換得到125MHZ傳送給Spartan6芯片和光纖模塊。Spartan6芯片和光纖模塊根據(jù)TCP/IP協(xié)議的原理進(jìn)行數(shù)據(jù)傳輸。

2 軟件系統(tǒng)設(shè)計——TCPCP/IP核

基于FPGA的TCP/IP核能夠?qū)崿F(xiàn)發(fā)送數(shù)據(jù)的協(xié)議打包和接收數(shù)據(jù)的協(xié)議解包,根據(jù)數(shù)據(jù)要求并行發(fā)送和接收。結(jié)合TCP/IP協(xié)議分層參考模型的特點,TCP/IP核總體結(jié)構(gòu)如圖1所示。

其中:COM5402是一個完全使用VHDL硬件描述語言編寫完成的TCP/IP協(xié)議棧;WRPC是一個開源的、用VHDL硬件描述語言編寫的、能夠提供精確時間的以太網(wǎng)MAC核;Interface是一個接口邏輯轉(zhuǎn)換程序,用來連接COM5402與WRPC之間具備傳數(shù)功能的以太網(wǎng)接口。

2.1 COM-5402模塊

COM-5402的原理框圖如圖2所示。從圖2可知其包含TCP協(xié)議和UDP協(xié)議的數(shù)據(jù)發(fā)送與接收。

圖2 COM-5402的原理框圖

2.2 WRPC模塊

WRPC本質(zhì)上是一個MAC核,圖3為WRPC的總體框圖,PHY是FPGA的GTP的差分信號線的接口模塊,WRF是用戶自定義的接口模塊,包括數(shù)據(jù)的發(fā)送和核數(shù)據(jù)的接收兩部分。

2.3 COM-5402和WRPC INTERFACE實現(xiàn)

由于COM-5402和WRPC端口不能兼容,于是需要編寫一個接口邏輯使兩者實現(xiàn)無縫連接。圖4為Interface的原理框圖。其中“Src”和“Snk”端口與WRPC連接,“MAC_RX”和“MAC_TX”端口與COM5402連接。由于WRPC的數(shù)據(jù)傳輸長度為16位,COM5402的數(shù)據(jù)傳輸長度為8位,所以需要兩個FIFO進(jìn)行數(shù)據(jù)傳輸時的長度轉(zhuǎn)換。其中:FIFO1是16位輸入,8位輸出;FIFO2是8位輸入,16位輸出。

圖3 WRPC的總體框圖

圖4 Interface的原理框圖

3 系統(tǒng)測試

3.1 系統(tǒng)的軟件仿真

軟件仿真流程如圖5所示。

圖5 軟件仿真流程圖

根據(jù)軟件仿真流程圖可知,仿真的路徑主要有兩條:

1)從COM5402模塊的MAC_RX端發(fā)數(shù),通過3個連接數(shù)據(jù)包建立連接后,COM5402模塊的TCP_TX端產(chǎn)生數(shù)據(jù),數(shù)據(jù)傳輸?shù)組AC模塊的PHY_TX端(TCP_TX=>MAC_TX=>Snk_i=>PHY_TX)。如圖6所示。

圖6聯(lián)合仿真波形圖1(TCP_TX=>MAC_TX=>Snk_i=>PHY_TX)

2)從MAC模塊的PHY_RX端發(fā)數(shù),接收的數(shù)據(jù)首先傳輸?shù)紺OM5402模塊的MAC端,通過3個連接數(shù)據(jù)包建立連接后,數(shù)據(jù)傳輸?shù)紺OM5402模塊的TCP_RX端(PHY_RX=>Src_o=>MAC_RX=>TCP_RX)。如圖7、8、9所示。

圖7 聯(lián)合仿真波形圖2(PHY_RX=> Src_o)

圖8 聯(lián)合仿真波形圖3(PHY_RX=> Src_o)

圖9 聯(lián)合仿真波形圖4(MAC_RX=>TCP_RX)

3.2 系統(tǒng)的硬件調(diào)試

如圖10所示搭建測試環(huán)境。自協(xié)商成功,通過JTAG鏈燒寫WRPC自帶的UDP傳輸數(shù)據(jù)包的程序進(jìn)入FPGA,打開Wireshark抓包軟件觀測發(fā)送和接收數(shù)據(jù)包的結(jié)果。測試結(jié)果如圖11所示。其中PC的IP地址設(shè)置為192.168.0.12,網(wǎng)關(guān)設(shè)置為192.168.0.1。電路板的IP地址設(shè)置為192.168.0.100,網(wǎng)關(guān)設(shè)置為192.168.0.1。從圖11可以觀測到當(dāng)電路板向PC機(jī)進(jìn)行一次ARP確認(rèn)后,電路板開始不斷地向電腦發(fā)送UDP數(shù)據(jù)包。因此說明整個系統(tǒng)的硬件設(shè)計無問題。

圖10 系統(tǒng)測試環(huán)境

圖11 UDP協(xié)議抓包實驗結(jié)果

3.3 系統(tǒng)的軟硬件聯(lián)調(diào)

測試步驟:

1)系統(tǒng)配置

系統(tǒng)硬件搭建完畢,接通電源自協(xié)商成功后,通過JTAG鏈將TCP/IP協(xié)議程序燒寫進(jìn)FPGA,再進(jìn)行系統(tǒng)配置,主要包括電路板IP地址和MAC地址以及端口號的配置。本系統(tǒng)同時用到靜態(tài)配置和動態(tài)配置,靜態(tài)配置指在COM5402的配置端口直接賦值;動態(tài)配置是通過USB串口輸入,將值賦給COM5402的配置端口。

IP設(shè)置由串口寫入,建立連接以后依次輸入如下指令:

Init erase

Init add ip set x.x.x.x

Init add sfp detect

Init add sfp match

Init add calibration

Init add mode slave

Init add ptp start

IP設(shè)置成功后PC端運行CMD,輸入指令ping x.x.x.x檢驗。

為了方便結(jié)果說明,本實驗展示都是將電腦IP地址設(shè)置為192.168.37.114,電路板IP地址設(shè)置為192.168.37.115,MAC地址設(shè)置為00-1a-a9-c4-ad-0b,端口號設(shè)置為8000。

2)ARP調(diào)試

在DOS界面下輸入PING 192.168.37.115(電路板IP地址),輸入回車鍵。電腦會發(fā)送此IP地址的ARP廣播包,通過Wireshark抓包工具來觀測ARP應(yīng)答包回饋給電腦,同時觀測到ICMP數(shù)據(jù)包PING通電路板IP地址,如圖12所示。此外在DOS編程環(huán)境下輸入指令arp-a查看電腦的MAC地址緩存表,可以檢測到電腦已經(jīng)識別了電路板的MAC地址和IP地址,如圖13所示。

圖12 ARP數(shù)據(jù)包檢測

圖13 DOS環(huán)境下驗證電路板MAC地址

3)三次握手

在TCP層完成三次握手,如圖14所示。幀1和幀2表示一次ARP握手,幀3、幀4和幀5表示TCP連接的三次握手,說明系統(tǒng)連接成功。

圖14 三次握手信號圖

4)數(shù)據(jù)包回環(huán)測試

當(dāng)驗證系統(tǒng)可以連接后,可以根據(jù)功能需求對C++程序進(jìn)行相應(yīng)的修改后再運行,比如需要PC向FPGA發(fā)送數(shù)據(jù),那么就將C++程序修改成發(fā)送數(shù)據(jù)的程序;需要FPGA向PC發(fā)送數(shù)據(jù),那么就將C++程序修改為接受數(shù)據(jù)即可。最后打開Wireshark抓包軟件進(jìn)行數(shù)據(jù)包的抓取分析。圖15是128 Byte的數(shù)據(jù)包回環(huán)測試,具體實現(xiàn)方法是電腦每隔1 ms發(fā)送長度為128 Byte的數(shù)據(jù)給電路板,電路板收到后立即再將數(shù)據(jù)原封不動地回饋給電腦。其目的是驗證系統(tǒng)是否雙向連通。

5)數(shù)據(jù)傳輸

以太網(wǎng)幀最小長度為64 Byte,減去包頭54 Byte和幀尾4 Byte的CRC校驗位后,F(xiàn)PGA向PC傳輸最小數(shù)據(jù)長度為6 Byte,如圖16所示。同樣由于最大幀長度不超過1 518 Byte,減去包頭54 Byte和幀尾4 Byte的CRC校驗位后,傳輸數(shù)據(jù)最大長度為1 460 Byte,如圖17所示。

圖15 128 Byte的數(shù)據(jù)包回環(huán)測試

圖16 FPGA向PC傳送最小數(shù)據(jù)長度

圖17 FPGA向PC傳輸數(shù)據(jù)的最大長度

6)TCP/IP性能測試

性能指標(biāo)主要包括吞吐量,穩(wěn)定性等。電路板向電腦發(fā)送固定間隔時間和固定長度的數(shù)據(jù)包,電腦根據(jù)一定時間內(nèi)接收數(shù)據(jù)包計算吞吐量,且長時間的測試判斷是否丟包來檢測穩(wěn)定性。圖18是系統(tǒng)測試的吞吐量結(jié)果圖。其中FPGA向電腦發(fā)送最大速率的數(shù)據(jù),并且數(shù)據(jù)是每過8 bit就加1的方式一直累加的方式一直傳輸。部分?jǐn)?shù)據(jù)可以如圖19所示。

圖18 系統(tǒng)吞吐量測試

圖19 數(shù)據(jù)包部分?jǐn)?shù)據(jù)展示

4 結(jié)語

在軟件方面,根據(jù)TCP/IP協(xié)議相關(guān)知識設(shè)計了整個系統(tǒng)的軟件流程框架,編寫了各個模塊VHDL代碼,對每個模塊的代碼進(jìn)行了綜合和功能仿真。

在硬件方面,根據(jù)軟件流程的需要,設(shè)計并制作了硬件電路,完成了硬件初步調(diào)試。

根據(jù)軟件仿真和硬件調(diào)試的結(jié)果進(jìn)行系統(tǒng)聯(lián)調(diào),并結(jié)合相關(guān)C++程序和抓包工具聯(lián)合測試整個系統(tǒng)的相關(guān)性能。結(jié)果表明系統(tǒng)的性能良好,運行可靠,滿足項目需求。

[1]陳維良,趙俊超,魏少軍.TCP/IP協(xié)議的ASIC設(shè)計與實現(xiàn)[J].微電子學(xué),2002,32(2):97-101.

[2]MACLEAN R A,BARVICK S E.An outboard processor for high performance implementation of transport layer protocols[C]//Global Telecommunications Conference, 1991. GLOBECOM ‘91.’Countdown to the New Millennium. Featuring a Mini-Theme on: Personal Communications Services. IEEE, 1992:1728-1732.

[3] MARKATOS E P.Speeding up TCP/IP:faster processors are not enough[C]//Performance, Computing, and Communications Conference, 2002.IEEE International.IEEE,2002:341-345.

[4] 陳勇.Internet與TCP/IP協(xié)議及其新進(jìn)展[J].現(xiàn)代計算機(jī),1997(3):38-40.

[5]STEVENS W R.TCP/IP詳解 卷1:協(xié)議[M].范建華,譯.北京:機(jī)械工業(yè)出版社,2000.

[6]WRIGHT G.R,STEVENS W R.TCP/IP詳解卷2:實現(xiàn)[M].陸雪瑩,蔣慧,譯.北京:機(jī)械工業(yè)出版社,2000.

ResearchonTCP/IPProtocolDataTransmissionbasedonFPGA

LURuiqia,OUXianfenga,b

(a. College of Information & Communication Engineering; b.Key Laboratory of Optimization & Control for Complex Systems, Hunan Institute of Science and Technology, Yueyang 414006, China)

Using FPGA to realize the TCP/IP protocol stack and Ethernet MAC controller not only has the advantages of low power consumption, small size and high reliability, but also has very high data processing speed and improve the performance of the system. In this paper, a PCB of FPGA based on Spartan6 series was designed using Mentor plate-making software. Then, Verilog HDL and VHDL language was used to write the program codes of data input and output module according to TCP / IP protocol. Finally, the hardware and software testing using ISE testing tools was done and the performance testing of the entire system was completed. Tests results show that the performance of system is good and has reached the basic design requirements, and the system is able to carry out high-speed data transmission and runs stable and reliable.

Field-Programmable Gate Array; TCP/IP protocol; data transmission

10.13542/j.cnki.51-1747/tn.2017.04.001

2017-10-30

國家自然科學(xué)基金(51704115);湖南省自然科學(xué)基金(2017JJ3099);湖南省科技計劃項目(2016TP1021);湖南省教育廳項目(16C0723)

魯睿其(1988—),女,助教,碩士,研究方向:硬件開發(fā)、電子通信。

歐先鋒(1983—),男,講師,博士,研究方向:圖像處理/視頻壓縮編碼及傳輸,電子郵箱:ouxf@hnist.edu.cn。

TN919

A

2095-5383(2017)04-0001-05

猜你喜歡
電路板IP地址數(shù)據(jù)包
二維隱蔽時間信道構(gòu)建的研究*
民用飛機(jī)飛行模擬機(jī)數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
鐵路遠(yuǎn)動系統(tǒng)幾種組網(wǎng)方式IP地址的申請和設(shè)置
SmartSniff
IP地址切換器(IPCFG)
廢舊手機(jī)電路板中不同金屬回收的實驗研究
基于SNMP的IP地址管理系統(tǒng)開發(fā)與應(yīng)用
96 芯插接電路板控制系統(tǒng)的故障設(shè)置裝置設(shè)計
公安網(wǎng)絡(luò)中IP地址智能管理的研究與思考
廢棄電路板拆解技術(shù)研究現(xiàn)狀及展望