【科研論文】W5100在FPGA系統中實現TCP/IP網絡通信

摘要:

介紹了W5100在現場可編程門陣列(FPGA)系統中實現TCP/IP網絡通信的方法。描述了W5100的內部架構和寄存器設置,設計了一套基於直接總線接口模式的FPGA系統,系統主要由FPGA、W5100及網絡接口組成。FPGA通過狀態機狀態控制W5100,實現傳輸控制協議 (TCP)/互聯網協議(IP)。

關鍵詞:W5100  FPGA  TCP  IP

1 引言

傳統的以太網解決方案,往往採用主控CPU連接物理層接口芯片,在主控器內編寫以太網通信協議。這種方法需要編寫繁瑣的程序並且耗費大量的時間調試。由於網絡協議一般都比較大,寫入軟件後穩定性欠佳,不利於系統的快速開發與穩定運行,而且客戶市場會有新的需求。這種用軟件實現的方法很難滿足頻繁更新升級的要求

W5100是WlZnet公司新推出的固件以太網芯片,很好的解決了上訴問題。 與之前的以太網芯片W3100A和W3150A+相比,它集成了以太網物理層RTL8201CP核,具有更好的集成性,擁有更穩定、更優良的性能。W5100集TCP/IP協議棧、以太網MAC和PHY為一體,支持ICP、UDP、IPv4、ICMP、ARP、IGMP和PPPoE等網絡總線協議。它提供多種總線,包括2 種並行總線(直接總線接口和間接總線接口),以及SPI串行總線等接口方式。內置16KByte發送/接收數據緩衝區,可快速進行數據交換,最大通信速率達到25Mbps。W5100支持且自動識別全雙工或半雙工的傳輸模式,並可實現且兼容10M/100M以太網絡。

2 W5100芯片結構

W5100芯片主要由4部分組成:硬件TCP/IP核、微控器接口單元、發送/接收數據緩衝區和以太網物理層單元,其功能框圖及基本外圍連接如圖1所示,其中ICMP為控制報文協議,IGMP為互聯網組管理協議,UDP為用戶數據包協議,MCU Bus I/F為多點控制單元總線接口SPI I/F是穿行外圍接口。

W5100結構

 

圖1   W5100結構

        W5100供電電壓為3.3V和1.8V,其中1.8V可由芯片內部線性穩壓電源產生,外接濾波電路後,供回芯片。W5100通過異步數據地址等接口與微控制器相接。芯片的以太網物理單元通過接受RXIP/RXlN 和發送TxoP/TxoN,連接以太網變壓器.再通過網絡接口RJ4S和網絡電纜接入到以太網絡當中。通訊模式可選為自動識別,或者強制設定為10 BaseT/100 BaseTxs、HDX/FDX等設置的組合通訊方式。芯片還提供了許多接口用於接發光二極管,包括發送(Tx),接收( ,全/半5~(Full/Duplex),衝突(Collision),連接(Link),速度(Speed)的指示燈,以顯示芯片的當前工作態。W5100集成了強大的網絡接入協議,對它只需要設置其IP地址和端口號,即可完成配置以接入到以太網。靈活地創建和選擇套接字(socket)後,則可完成遠程網絡數據交互。通過合理的編寫控制寄存器,芯片可以完成數據的接送和發收,並把數據存放在內部存儲空間內。W 5100的工作存儲空間分為4部分,如圖2所示。OxOOOO-q)xO030為常用寄存器,0x0400~0x0800為套接字寄存器,0x4000~0x6000為發送數據緩衝區,0x6000,–0x8000為接收數據緩衝區,其餘為保留區域。

W5100存儲空間

       圖2   W5100存儲空間

3   硬件設計

W5100與微處理器芯片的接口方式有3種:直接總線接口模式、間接總線接口模式和SPI模式。其中直接總線接口模式適用於大數據量傳輸的情況;SPI模式的接口連線較少,適用於數據量不大。傳輸速率相對較低的情況;間接總線接口模式下的數據傳輸性能則介於它們兩者之間。在系統中選用直接總線接口模式,以最大限度地提高數據的傳輸速率。直接總線接口採用15位地址線、8位數據線,另加\CS、\W-R、kR.D、\INT及\RESET等信號線。FPGA有靈活的IO接口技術,與W5100連接方式簡單,如圖3所示。

FPGA&W5100

圖3   FPGA與W5100硬件連接示意圖

W5100的IO管腳工作電平為3.3 v。sEN管教接地,代表W5100工作在直接總線接口。RXIP、R.XIN、TXOP及TXONW5100工作在直接總線接口。RXIP、R.XIN、TXOP及TXON是10 M/100 M 以太網的接口。13F-60LD是帶有網絡變壓器的RJ45接頭。

4    軟件設計
4.1   FPGA程序

W 5100對讀寫時序要求比較嚴格。若不滿足讀寫時序的要求會導致數據傳輸錯誤,寫時序要求如圖4所示,為保證可靠,時序設計中還留有一定的裕量。

W5100對讀寫時序

在FPGA中使用有限狀態機來實現讀寫時序,以寫時序為例。選用10 MHz的時鐘來進行數據和地址的寫操作,即寫周期為100 ns,滿足圖4中的條件1。用200 MHz的時鐘來控制狀態機,狀態圖如圖5所示。從圖中可以看出,有效地址到/cs變低的時間(條件2)為15 ns;/CS變低N/WR 變高的時間(條件3)為85 Ils;讀時序與寫時序類似,將圖4各操作中的/wR信號換為/RD信號,並且不用對數據賦值。只需將數據線上的數據取出即可。

FPGA控制W5100狀態流程圖

圖5 FPGA控制W5100狀態流程圖

在系統中,W5100組成的以太網設置為服務器,通訊對方設置為客戶端(位置可顛倒)。FPGA先對W5100進行複位,等待複位完畢後,進入網絡配置。需要對W5100的物理地址、Ip地址、端口號、網關地址、子網掩碼、中斷及收發寄存器大小等信息。然後發送監聽命令,查詢W5100的狀態,進入建立TCP通訊狀態,等客戶端發送監聽命令後,雙方建立連接。查詢W5100接收寄存器是否有數據,如果有。則接收數據,接收完畢後,轉入建立狀態;如果沒有,則發送數據,發送完畢後,轉入建立狀態。在發送過程中,如果客戶端發送結束通訊命令或者網絡異常中斷(如出現掉線現象),W5100進入關閉端口狀態,然後進入監聽狀態;等待下一次的連接。

3.2上位機測試軟件
為了驗證TCP/IP通訊是否連接,測量網絡速度,設計了一個簡單的上位機軟件。開發工具為VC6.0。設計的板卡通過網線與計算機的網卡相連,啟動上位機軟件。通訊步驟如下:① 啟動連接:與板卡建立TCP通訊;② 發送數據:可選擇發送文件及發送次數;③ 接收數據:接收板卡發送的測試數據;④ 結束通訊:發送關閉端口命令,同時顯示通訊速率。經測試,設計的板卡與上位機通訊可靠穩定,最大通訊速率(有效數據率):16.186 MByte/S,接近25 MByte/S理論水平。

4   結束語

依託W5100完善的TCP/IP協議處理功能,使FPGA在沒有操作系統的支持下接入Internet網絡,具有簡單、可靠、價格低廉等優點,具有非常好的應用前景。這種系統架構可完全卸載網絡協議所需的負荷,減少軟件開發的開支,具有較短的開發周期與較強的工程彈性。

 

感謝閱讀!

文章來自:http://www.elecfans.com/soft/161/2012/20120424268952.html

更多信息與我們交流:

WIZnet郵箱:[email protected]

WIZnet中文主頁:http://www.iwiznet/cn

WIZnet企業微博:http://e.weibo.com/wiznet2012