【科研论文】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是穿行外围接口。

 

图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为常用寄存器,0×0400~0×0800为套接字寄存器,0×4000~0×6000为发送数据缓冲区,0×6000,–0×8000为接收数据缓冲区,其余为保留区域。


       图2   W5100存储空间

3   硬件设计

W5100与微处理器芯片的接口方式有3种:直接总线接口模式、间接总线接口模式和SPI模式。其中直接总线接口模式适用于大数据量传输的情况;SPI模式的接口连线较少,适用于数据量不大。传输速率相对较低的情况;间接总线接口模式下的数据传输性能则介于它们两者之间。在系统中选用直接总线接口模式,以最大限度地提高数据的传输速率。直接总线接口采用15位地址线、8位数据线,另加\CS、\W-R、kR.D、\INT及\RESET等信号线。FPGA有灵活的IO接口技术,与W5100连接方式简单,如图3所示。

图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所示,为保证可靠,时序设计中还留有一定的裕量。

在FPGA中使用有限状态机来实现读写时序,以写时序为例。选用10 MHz的时钟来进行数据和地址的写操作,即写周期为100 ns,满足图4中的条件1。用200 MHz的时钟来控制状态机,状态图如图5所示。从图中可以看出,有效地址到/cs变低的时间(条件2)为15 ns;/CS变低N/WR 变高的时间(条件3)为85 Ils;读时序与写时序类似,将图4各操作中的/wR信号换为/RD信号,并且不用对数据赋值。只需将数据线上的数据取出即可。

                         图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理论水平。

5   结束语

依托W5100完善的TCP/IP协议处理功能,使FPGA在没有操作系统的支持下接入Internet网络,具有简单、可靠、价格低廉等优点,具有非常好的应用前景。这种系统架构可完全卸载网络协议所需的负荷,减少软件开发的开支,具有较短的开发周期与较强的工程弹性。

 

感谢阅读!

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

你可能感兴趣的:(全硬件tcp/ip)