【摘要】本文通過分析現(xiàn)場(chǎng)可編程門陣列(FPGA)在數(shù)據(jù)處理中的優(yōu)勢(shì)和W5100固體網(wǎng)絡(luò)芯片的特點(diǎn),采用FPGA與W5100相結(jié)合的方式,設(shè)計(jì)一種網(wǎng)絡(luò)傳輸系統(tǒng),使得該系統(tǒng)具有高性能的邏輯功能、信號(hào)處理功能和網(wǎng)絡(luò)傳輸功能,同時(shí)具有硬件結(jié)構(gòu)簡(jiǎn)單、軟件開發(fā)簡(jiǎn)便和可移植性強(qiáng)等特點(diǎn)。
【關(guān)鍵詞】FPGA;W5100;以太網(wǎng);TCP/IP協(xié)議
1.引言
使用現(xiàn)場(chǎng)可編程門陣列(FPGA)器件設(shè)計(jì)數(shù)字電路,不僅可以簡(jiǎn)化設(shè)計(jì)過程,而且可以降低整個(gè)系統(tǒng)的體積和成本,增加系統(tǒng)的可靠性。具有工作速度快、設(shè)計(jì)靈活和可靠性高等優(yōu)勢(shì),其應(yīng)用領(lǐng)域從原來的通信擴(kuò)展到消費(fèi)電子、汽車電子、工業(yè)控制、測(cè)試測(cè)量等廣泛的領(lǐng)域,越來越多的系統(tǒng)廠商選擇用FPGA來實(shí)現(xiàn)最終產(chǎn)品。[1]
在遠(yuǎn)程工業(yè)控制、遠(yuǎn)程測(cè)試測(cè)量等應(yīng)用領(lǐng)域中,通過FPGA測(cè)試和處理的數(shù)據(jù)往往經(jīng)網(wǎng)絡(luò)高速傳輸給其他系統(tǒng),一種方法是將數(shù)據(jù)由FPGA發(fā)送給由MCU與網(wǎng)絡(luò)接口芯片相結(jié)合組成的網(wǎng)絡(luò)傳輸模塊[2][3],另一種方法采用FPGA的邏輯資源綜合網(wǎng)絡(luò)通信協(xié)議,再通過PHY芯片將數(shù)據(jù)傳輸?shù)轿锢韺覽4]。前者使得設(shè)計(jì)復(fù)雜,而且網(wǎng)絡(luò)傳輸速率相對(duì)較低,后者需開發(fā)者耗用大量時(shí)間和精力開發(fā)FPGA軟件,并且占用大量FPGA片上邏輯資源,即便如此,可靠性仍需進(jìn)一步提高。
W5100固體網(wǎng)絡(luò)芯片將TCP/IP協(xié)議棧、以太網(wǎng)的MAC和PHY三種功能集為一體。具有與MCU接口的并行總線接口,還增加了SPI串行總線接口。大大簡(jiǎn)化了硬件電路設(shè)計(jì),使系統(tǒng)在沒有操作系統(tǒng)的支持下,真正實(shí)現(xiàn)了單芯片接入以太網(wǎng)的目的[5]。
本文采用FPGA與W5100固體網(wǎng)絡(luò)芯片相結(jié)合的方式設(shè)計(jì)網(wǎng)絡(luò)傳輸系統(tǒng),只需采用FPGA對(duì)W5100進(jìn)行簡(jiǎn)單的邏輯控制,就可實(shí)現(xiàn)網(wǎng)絡(luò)傳輸功能,該系統(tǒng)即具有FPGA并行高性能的特點(diǎn),又能使FPGA實(shí)現(xiàn)網(wǎng)絡(luò)傳輸功能模塊的軟硬件設(shè)計(jì)簡(jiǎn)化,調(diào)試方便,可靠性高。
圖1 W5100結(jié)構(gòu)框圖
2.W5100網(wǎng)絡(luò)接口芯片
2.1 總體介紹
W5100是一款多功能的單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成有10/100以太網(wǎng)控制器,主要應(yīng)用于高集成、高穩(wěn)定、高性能和低成本的嵌入式系統(tǒng)中。內(nèi)部集成了全硬件的、且經(jīng)過多年市場(chǎng)驗(yàn)證的TCP/IP協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY)。硬件TCP/IP協(xié)議棧支持TCP,UDP,IPv4,ICMP,ARP,IGMP和PPPoE,這些協(xié)議已經(jīng)在很多領(lǐng)域經(jīng)過了多年的驗(yàn)證。其功能框圖及基本外圍連接如圖1所示。
2.2 工作原理
3.FPGA與W5100硬件接口設(shè)計(jì)
FPGA具有豐富的IO引腳資源,并且IO引腳通過配置可兼容1.8V、3.3V、5V等多種電平標(biāo)準(zhǔn),W5100提供與微處理器的接口有3種:直接總線接口,間接總路線接口和SPI模式。為了快速傳輸數(shù)據(jù),同時(shí)考慮到FPGA具有豐富的IO引腳資源,本系統(tǒng)采用直接總線接口。采用15位地址線、8位數(shù)據(jù)線、另加\CS、\WR、\RD、\INT及\RESET等信號(hào)線。FPGA可以與W5100靈活接口,每個(gè)被W5100使用的功能引腳都直接與FPGA的IO引腳相連,只需通過FPGA的開發(fā)軟件對(duì)相應(yīng)引腳進(jìn)行編程配置即可。硬件系統(tǒng)的接口電路如圖3所示。
4.FPGA邏輯設(shè)計(jì)
4.1 讀寫控制
FPGA主要通過控制讀寫W5100的通用寄存器、套接字寄存器和內(nèi)部收發(fā)存儲(chǔ)器來完成網(wǎng)絡(luò)數(shù)據(jù)通信,以對(duì)寄存器的讀為例說明用FPGA實(shí)現(xiàn)對(duì)W5100讀寫的過程,圖4為W5100的讀時(shí)序圖。
圖4 W5100的讀時(shí)序圖
圖4中定義了各控制引腳的時(shí)序邏輯關(guān)系,表1列出了各引腳的時(shí)序約束關(guān)系,只需在FPGA中實(shí)現(xiàn)該邏輯關(guān)系即可實(shí)現(xiàn)對(duì)寄存器/存儲(chǔ)器的讀操作,用有限狀態(tài)機(jī)來實(shí)現(xiàn)讀寫時(shí)序,采用有限狀態(tài)機(jī)是為了避免出現(xiàn)邏輯混亂。以讀時(shí)序?yàn)槔?,選用10MHz的時(shí)鐘來進(jìn)行數(shù)據(jù)和地址的讀操作,即讀周期為100ns,用50MHz的時(shí)鐘來控制狀態(tài)機(jī),狀態(tài)如圖5所示。
4.2 工作過程控制
FPGA為并行系統(tǒng),為了使圖2的各工作狀態(tài)按流程圖進(jìn)行,需運(yùn)用圖6所示的有限狀態(tài)機(jī)對(duì)各工作流程進(jìn)行控制。
。
5.結(jié)束語
本文通過FPGA控制W5100固體網(wǎng)絡(luò)芯片實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸功能,通過UDP測(cè)試,該系統(tǒng)的網(wǎng)絡(luò)傳輸速率最高可達(dá)到70000kbps,使FPGA在具備高性能的信號(hào)處理與控制處理能力的前提下,通過簡(jiǎn)單的控制即可進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸,節(jié)約了硬件資原,減少了軟件開發(fā)開支,具有簡(jiǎn)單、可靠、價(jià)格低廉等優(yōu)點(diǎn)。該方法可廣泛應(yīng)用于工業(yè)控制、野外測(cè)試測(cè)量等需遠(yuǎn)程數(shù)據(jù)采集與處理和數(shù)據(jù)通信等領(lǐng)域。
參考文獻(xiàn)
[1]王紅,彭亮,于宗光.FPGA現(xiàn)狀與發(fā)展趨勢(shì)[J].電子與封裝,2007,Vol.34No.16:32-37.
[2]陳麗娟,白瑞林.FPGA在網(wǎng)絡(luò)化數(shù)據(jù)采集系統(tǒng)中應(yīng)用[J].電子測(cè)量技術(shù),2005,5:50-51.
[3]王冬冬,李宇,張保祥.基于FPGA與ARM的遙測(cè)數(shù)據(jù)網(wǎng)絡(luò)化采集[J].現(xiàn)代電子技術(shù),2011,Vol.34No.16:89-92.
[4]胡文靜,王增,肖雄偉,胡建偉.基于FPGA的高速網(wǎng)絡(luò)IP協(xié)議處理實(shí)現(xiàn)研究[J].湖南理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,Vol.24No.2:36-38.
[5]鄒依依,郭燦新,黃成軍,王瑤,江秀臣.W5100在DSP遠(yuǎn)程以太網(wǎng)數(shù)據(jù)通信系統(tǒng)中的應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2008Vol.21No.8:20-23.