关键词:TCP/IP协议栈;W3100A;Socket API;以太网
1 W3100A简介
近年来,随着技术的飞速进步,电子产品正朝着小型化、智能化和网络化的方向发展。在小型嵌入式设备中实现以太网互联正在成为研究和应用的热点。在这种潮流的推动下,研究人员提出了许多解决方案。传统的做法是在嵌入式设备中植入TCP/IP协议栈,或者移植一个具有TCP/IP协议栈的嵌入式操作系统。虽然上述做法在很多应用中取得了不错的效果,但都是以牺牲大量资源为代价的。而本文介绍的W3100A硬件协议栈则可以在占用极低系统资源的条件下快速完成网络通讯。
W3100A的主要性能特点如下:
●硬件协议栈包括TCP、 IP Ver.4、 UDP、 ICMP、 ARP;
●支持硬件以太网协议DLC和MAC;
●同时支持四路独立的网络连接;
●支持Ping命令;
●协议处理速度达到全双工4~5Mbps;
●支持Intel/Motorola MCU总线接口;
●支持I2C接口;
●带有标准的MII接口,可连接底层以太网接口芯片;
●可提供Socket API加速应用程序开发;
●支持全双工模式;
●其内建16KB双口RAM可作为数据缓冲区;
●采用0.35μm CMOS制造工艺。
2 W3100A的引脚功能
W3100A采用64脚LQFP封装,其引脚分布如图1所示。各引脚功能描述如下:
TXD[0]~TXD[3]:在TXD_CLK上升沿发送数据。串行模式时,TXD[0]用作串行数据发送引脚,TXD[1]~TXD[3]无效。
TXE:发送使能端。
TXD_CLK:数据发送时钟,时钟由以太网接口芯片提供。
RXD[0]~RXD[3]:在TXD_CLK下降沿接收数据。串行模式时,RXD[0]作为串行数据接收引脚,RXD[1]~RXD[3]无效。
RXDV/CRS:载波监测。高电平有效。
RXD_CLK:数据接收时钟,时钟由以太网接口芯片提供。
COL:冲突探测引脚。在半双工模式发生冲突时有效。
A[14~8]/DA[6~0]:在MCU总线接口模式下作为14~8位地址。在I2C模式下作为I2C接口6~0位设备地址。
A[7~0]:7~0位地址线。
D[7~0]:8位数据线。
INT:接收发送中断请求。低电平有效。
CS:片选信号。低电平有效。
WR:写信号。低电平有效。
RD:读信号。低电平有效。
RESET:复位信号。
CLOCK:工作时钟。通常由以太网接口芯片提供,推荐频率为25MHz。
EXT_CLK:外部时钟输入信号。
LINK:表示是否已连接到以太网。低电平表示连接有效,高电平表示TCP超时或连接关闭。
SERIAL:10BASE-T SERIAL或NIBBLE选择。
FDPLX:全双工/半双工选择。0为全双工,1为半双工。
MODE[2~0]:用于选择W3100A工作模式。000为时钟模式;001为外部时钟模式;010为无时钟模式;011为I2C模式;1xx为测试模式。3 W3100A的内部结构
系统设计人员利用W3100A可以方便快捷地为产品添加网络功能。W3100A的硬件TCP/IP协议栈包含了TCP、UDP、IP、ARP和ICMP协议。并支持一套与Windows系统相同的socket API。W3100的内部结构框图如图2所示。
W3100A共有32kB的内部存储器空间。其中位于存储器顶部地址为0x0000~0x01FF的1kB空间分配给了控制寄存器组,0x2000~0x3FFF则作为保留空间供给其它设备使用,而0x4000~0x5FFF为发送缓冲区,0x6000~0x7FFF为数据接收缓冲区。由于W3100A可以为用户提供4路独立的连接通路,所以相对应的8kB发送缓冲区和 8kB接收缓冲区可以通过寄存器TMSR和RMSR进行配置。配置方法如图3所示。
4 应用设计
4.1 硬件设计
W3100A有3种不同的工作模式,分别为Direct Bus I/F模式、Indirect Bus I/F模式和I2C Bus I/F模式。用户可根据自己的实际情况进行选择。下面就常用的Direct Bus I/F模式和I2C Bus I/F模式作以简单介绍。
图4是Direct Bus I/F模式的硬件结构框图。
由图可见,该模式下,W3100A共用了15条地址线、8位数据线、片选CS,及读写控制信号WR和RD。不难看出,该模式下硬件电路设计相对简单,但要占用较多的MCU资源。同时还应该注意,在Direct Bus I/F模式下,W3100A的工作时钟也有3种不同的模式,在大多数情况下,系统推荐使用Clocked 模式,因为该模式下系统可以稳定的工作。但是如果系统中MCU的访问速度小于100ns,则应为W3100A单独外接时钟并选择External Clock模式。而当MCU的CS、RD、WD信号时序满足W3100A的要求时,也可以不要时钟。
图5是I2C Bus I/F模式下,MCU与W3100A的连接示意图。
I2C Bus I/F模式下,可使用SCL和SDA在MCU和W3100A之间串行传输数据,时钟信号线SCL由MCU提供,SDA则用来在MCU和W3100A之间传送地址和数据。只要系统中的MCU支持I2C总线即可使用该模式。可以看出,使用该模式可以大量减少MCU与W3100A的连接线,从而节省MCU的资源。
4.2 软件设计
此外,通过WIZnet公司为W3100A专门提供的Socket API软件,可使网络通讯的软件设计更加方便。利用该软件进行设计时,应首先初始化W3100A的网络设置,即在相应的寄存器中设置默认网关、子网掩码、本机物理地址和IP地址,然后建立Socket连接以实现通讯。整个过程与Windows Socket编程十分类似,此处不再赘述。
5 结论
W3100A具有传输速度快、工作稳定可靠、系统开销小等优点,可以为小型嵌入式设备提供很好的网络解决方案。