美章网 资料文库 以太网控制接口设计与实现范文

以太网控制接口设计与实现范文

本站小编为你精心准备了以太网控制接口设计与实现参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

以太网控制接口设计与实现

摘要:

本文研究了新型以太网控制芯片ENC28J60的特点、性能以及与外部接口硬件电路设计,分析了TCP/IP、UDP等协议的原理,介绍了MCU(微控制器)对ENC28J60芯片的控制过程和TCP/IP协议处理数据包的流程,并在STC11F32EX+ENC28J60+HR901170A平台上实现了以太网通信。本方案可以将数据按网络协议处理,实现数据的以太网传输,具有设计结构简单、实现方便、可扩展性,为小型低成本系统具备以太网接口提供了一种新的方法。

关键词:

以太网ENC28J60SPI接口TCP/IP协议HTML超文本语言

1引言

ENC28J60是MicrochipTechnology近期推出的28引脚独立以太网控制芯片,在此之前,以太网控制芯片都是为个人计算机系统设计的,如RTL8019、DM9008、CS8900A、LAN91C111等,这些器件不仅结构复杂,体积庞大,且比较昂贵。目前市场上大部分以太网控制芯片的封装均超过80引脚,而符合IEEE802.3协议的ENC28J60仅有28引脚就能提供类似的功能,所以利用ENC28J60芯片来设计以太网控制系统具有设计简单、占用空间小等优点。

2ENC60J芯片简介

ENC28J60芯片可为嵌入式应用提供低引脚数、低成本、高效、易用的远程通讯解决方案,利用ENC28J60以太网控制芯片可实现占位小、成本低、精简的嵌入式网络应用系统,芯片管脚定义见图1。

2.1ENC28J60主要功能模块ENC28J60由七个主要功能模块组成:(1)SPI接口——充当主控制器和ENC28J60之间通信通道;(2)控制寄存器——用于控制和监视ENC28J60;(3)双端口RAM缓冲器——用于接收和发送数据包;(4)判优器——当DMA、发送和接收模块发出请求时对RAM缓冲器的访问进行控制;(5)总线接口——对通过SPI接收的数据和命令进行解析;(6)MAC(MediumAccessControl)模块——实现符合IEEE802.3标准的MAC逻辑;(7)PHY(物理层)模块——对双绞线上的模拟数据。

2.2其主要功能有以下几个方面(1)10Mb/sSPI接口,业界标准的串行通信端口,充当主控制器和ENC28J60之间通信通道,使嵌入式应用系统的以太网接口变得极其简便;(2)具有可编程过滤功能,特殊的过滤器,包括Micro-chip的可编程模式匹配过滤器,可自动评价、接收或拒收MagicPacket,单播(singlecast)、多播(Multicast)或广播(Broadcast)信息包,以减轻主控芯片的处理负荷;(3)符合IEEE802.3协议,内置10Mbit/s以太网物理层器件(PHY:PhysicalLayer)及介质访问控制器(MAC:MediaAccessContro1),可按业界标准的以太网协议可靠地收发信息包,并具有可编程填充和CRC(CyclicalRedundancyCheck)自动生成功能;(4)可编程8kByte发送/接收数据包双端口SRAM(StaticRandomAccessMemory),并可配置发送/接收缓冲器大小,硬件管理的循环接收FIFO(FirstInputFirstOutput),字节宽度的随机访问和顺序访问(地址自动递增),用于快速数据传送的内部DMA(DirectMemoryAccess)。该缓冲存储器提供了灵活可靠的数据管理机制;(5)两个用来表示连接、发送、接收、冲突和全/半双工状态的可编程LED输出;(6)25MHz时钟,带可编程预分频器的时钟输出引脚,工作电压范围是3.14V到3.45V;(7)支持全双工和半双工模式可编程在发生冲突时自动重发,可编程填充和CRC生成,可编程自动拒绝错误数据包;(8)温度范围:-40°C到+85°C(工业级)。

3硬件设计

3.1以太网控制芯片原理图硬件设计框图见图2。图中RJ-45为标准的网络接口插座,一般情况下仅使用1,2,3,6管脚,MCU这里设计为MCS-51系列单片机,为提高网络数据传输速度,本处使用宏晶科技公司新推出的STC11F32EX单片机,该系列单片机指令周期仅为1个周期,具备ISP/IAP在系统可编程功能,最高工作时钟可达35MHz,本设计中选为29.4912M,实际测试时,在使用PING指令时PING通的时间达到小于3ms,如果使用W77E58作为MCU,指令周期为4个周期,PING指令时PING通的时间到小于7ms(第一次PING指令回送时间略长)。芯片工作时钟为25M,以太网变压器是比较成熟的产品,与MCU之间的连线为CS、SDI、SDO、SCK、INT,如果以查询方式在以太网上交换数据,那么INT中断引脚可以不连接,芯片复位可以用软件复位,所以芯片的第10脚RESET引脚也可以不连接。

3.2SPI接口ENC28J60共有128个控制寄存器,128个控制寄存器提供主控制器和片内以太网控制芯片逻辑电路之间的主要接口,写这些寄存器可控制接口操作,而读这些寄存器则允许主控制器监控这些操作,控制寄存器存储空间分为四个存储区,可用ECON1寄存器中的存储区选择位BSEL1:BSEL0进行选择。每个存储区都是32字节长,可以用5位地址值进行寻址,所有存储区的最后五个单元(1Bh-1Fh)都指向同一组寄存器:EIE、EIR、ESTAT、ECON2和ECON1,它们是控制和监视器件工作的关键寄存器,由于被映射到同一存储空间,因此可以在不切换存储区的情况下很方便地访问它们,ENC28J60的控制寄存器通常被分为ETH、MAC和MII三组寄存器。ENC28J60所执行的操作完全依据外部主控制器通过SPI接口发出的命令。这些命令为一个或多个字节的指令,用于访问控制存储器和以太网缓冲区,指令至少包含一个3位操作码和一个用于指定寄存器地址或数据常量的5位参数,写完位域指令后还会有一个或多个字节的数据。ENC28J60共有七条指令,芯片的Datasheet上有所有操作的命令代码。

4各协议的分析与选择

4.1TCP、UDP协议分析为了测试系统与网络的连接,需要实现ICMP协议中的Ping应答协议,Ping应答协议主要是检查网络是否连通。IP是网络层上的主要协议,同时被TCP和UDP使用,TCP和UDP是运输层协议。UDP协议主要用来完成数据传输,该协议是一个简单的面向数据报的运输层协议,与TCP协议相比传输效率较高,设计中选用UDP协议,可在应用层用校验机制来提高网络数据传输的可靠性。通过上述裁剪,就得到了一个简洁实用的UDP/IP协议,使得MCU可以快速可靠地收发网络UDP数据包,实现稳定的通讯。基本协议框架见图3。

4.2ICMP、UDP、TCP协议的实现以太网链路层的功能由以太网控制芯片ENC28J60完成,MCU完成TCP/IP协议的解释和执行,MCU首先要对以太网控制芯片复位,并对芯片内寄存器进行初始化,确定发送和接收的条件,设置好MAC和IP地址,要求IP地址设置在和主控制器同一个局域网内,即IP地址的前三位相同,最后一位不同。然后才能发送数据或接收数据,本设计中接收和发送数据都采用中断方式进行。当一帧数据发送结束、接收到一帧数据或出错等事件发生时,以太网控制芯片向主控芯片申请中断,主控制器响应中断后,根据中断状态寄存器的内容进行相应处理,MCU完成对数据的打包解包,在发送或接收数据时,控制器会首先发送ARP请求,建立地址映射,ARP协议时芯片自主完成的。MCU根据情况将数据按照TCP协议或UDP协议格式打包,送入ENC28J60芯片,由芯片将数据输出到局域网中,反之,当有数据从局域网过来时,控制器产生中断,请求MCU进行处理,MCU对数据包进行分析。

4.3TCP协议的具体实现TCP协议是为应用层提供的服务,面向连接意味着两个使用TCP的应用(通常是一个客户一个是服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。以太网首部地址0-13H,就是以太网的目的地址和源地址以及帧类型,IP首部从地址的第14个字节开始,包括版本长度、服务类型、总长度等共20个字节,TCP首部见图4。

5HTML语言设计

Internet的应用为信息的交流带来了便利,人们不仅可浏览他人的网站,还可编制自己的个人网站,超文本制作语言HTML是编制web页的基本工具。标准的HTML文件都是以<HTML>开始,以</HTML>结束的,Html命令分为以下几类:(1)文件结构命令:用来标注出文件的结构;(2)区段格式命令:将HTML文件中的某区段文字用特定的格式显示;(3)下锚连接命令:标记超文本连接;(4)字符格式命令:用于设置字符的显示格式;(5)图像命令:用于显示图像资料;(6)列表命令:用于制作明细清单;(7)表格命令:用于制作各种表格。在实际应用中为了高效的完成数据交换,建议使用UDP协议,UDP协议实际上就相当于我们经常使用的RS232口,这个协议不会像TCP协议那样需要先建立连接,延长了传输前的准备过程,降低了数据传输效率(只是基于TCP协议的数据传输的可靠性较高)。

6结语

我们在STC11F32EX+ENC28J60+HR901170A平台上实现了以太网通信,本文采用简化改进的TCP/IP协议,使系统能够顺利地接入以太网,使用UDP协议与其它系统交换数据,相对于其它以太网接入方案,本设计具备数据传输速率高、设计精简等特点,芯片的SPI接口使得普通单片机也能具有以太网连接功能,这为小型低成本系统具备以太网接口提供了一种新的方法。

参考文献

[1]窦振中.嵌入式系统设计方法的演化——从单片机到单片系统[J].单片机与嵌入式系统应用,2001(02).

[2]李学海,刘治山,宋庆国.80C51上电复位和复位延时的时序分析[J].单片机与嵌入式系统应用,2006(12).

[3]孙惠章.基于MC9328MX1嵌入式最小系统的设计[J].电子工程师,2006(09).

[4]周晓阳,程红,张晓媛.新型以太网控制器ENC28J60及其接口技术[J].单片机与嵌入式系统应用,2006(08).

[5]王伟峰,魏宗寿.一种低成本的Ethernet嵌入式系统的设计[J].电子技术应用,2005(08).

[6]杨俊起,贺体龙,袁兆强.CAN现场总线在工业以太网远程监控系统中的应用[J].河南科技大学学报(自然科学版),2004(04).

作者:何煦 熊建林 单位:中国电子科技集团公司第三十六研究所