论文01130090204 基于ENC28J60的网络模块设计Word下载.docx
《论文01130090204 基于ENC28J60的网络模块设计Word下载.docx》由会员分享,可在线阅读,更多相关《论文01130090204 基于ENC28J60的网络模块设计Word下载.docx(42页珍藏版)》请在冰豆网上搜索。

在此基础上,对ATmega16单片机和ENC28J60的SPI通讯进行了阐述。
这个方案不仅成本低,而且能实现500Kbps以上的传输速率,满足了嵌入式系统的Internet控制要求。
关键词:
嵌入式以太网;
ATmega16单片机;
ENC28J60;
SPI
Abstract
Withtherapiddevelopmentofmoderncomputertechnology,embeddedsystemseemstohavebecomeanimportantpartofthecomputerfield.Oneoftheprioritiesofembeddedsystemsinthenetworkdevelopmentprocess,howtogeneral-purposeprocessornetworkconnectiondeviceusedinthedevelopmentofembeddednetwork.Currentlyonthemarket,manyEthernetcontrollerchippowerconsumption,complexfunctions,isnotsuitableforlow-costembeddedsystem.AlthoughthemarketmostoftheEthernetcontrollerpackageofmorethan80-pin,buttheENC28J60only28pin.Thus,itcanprovidetheappropriatefunctionalityandsimplifydesign,reducetheuseofcircuitboardspace.
ThisarticledescribesanembeddedEthernetinterfacecommunicationdesign,itATmega16micro-controllerandSPIinterfacewithindependentEthernetcontrollerENC28J60.TheATmega16functionsandfeatures,describesthestructuralcharacteristicsandperformanceoftheENC28J60chip,andinterfacehardwaredesignandsoftwaredesign.Onthisbasis,theATmega16micro-controllerandENC28J60SPIcommunicationaredescribed.Thisprogramisnotonlylowcost,butalsotoachieveatransferrateof500KbpstomeetthetheInternetcontrolrequirementsofembeddedsystems.
Keywords:
EmbeddedEthernet;
ATmega16micro-controller;
Enc28J60;
1绪论
1.1选题背景及意义
随着Internet的普及和以太网的迅速发展,基于以太网的设备控制越来越多。
加之电子技术的飞快发展,各种工业过程数字仪表应运而生。
以太网是目前应用非常广泛的网络通信技术,它具有丰富而完善的通讯协议,支持现场设备的热拔插,提高系统运行的稳定性和抗干扰性,安装、维护成本低。
用以太网实现嵌入式系统的网络连接有多种方案,传统的多器件以太网连接解决方案,是通过MCU扩展以太网控制器来实现的,必要时还需要扩展外部RAM和ROM,虽然这个计划中的应用还不是很困难,但有大量的外部元件,系统开销较大,最大的缺点是稳定性不高。
长期以来,为了解决传统方案的不足,实现以太网连接,可以用集成以太网MAC层和物理层的16位单片机MC9S12NE64来实现,或者使用以太网控制器如RTL8019,AX88796L,DM9008,CS8900A,LAN91C111等实现。
相对于多器件方案,单器件连接方案具有所用外部元件少、系统开销小、稳定性高、设计时间短等优势。
但设计师在为远程控制或监控系统提供以太网接入时,可选的以太网控制器均是专为个人计算系统设计的,超过80引脚封装的以太网控制器大量运用于上述情况,这些器件不仅结构复杂,面积庞大,且系统开销较大。
无法很好地满足嵌入式网络应用系统。
符合IEEE802.3协议的ENC28J60只有28引脚,却具有早期器件相应的功能,满足系统设计的要求,ENC28J60以太网控制器采用业界标准的SPI串行接口,只需4条连线即可与主控单片机连接,使得嵌入式应用系统的以太网接口变得极其简便。
不过到目前为止,基于ENC28J60的应用却不是很多。
在测控领域,以单片机为核心的各种智能监控、测试系统因其高性价比等原因正得到越来越广泛的应用。
本项研究的目的是要利用ENC28J60在ATmega16+ENC28J60平台上实现以太网通信。
对于没有开放总线的单片机,虽然有可能是其他以太网控制器连接模拟并行总线,但不管从效率还是性能上来看,都不如用SPI接口或采用一个通用I/O口模拟SPI接口连接ENC28J60的方案。
随着国民经济的快速发展,互联网络硬件、软件也迅猛发展,网络用户的发展已成倍增长。
利用廉价的AVR单片机来控制ENC28J60实现以太网通讯这一做法,在使用计算机网络进行互联的各种家用电器及设备,仪器仪表,工业生产数据采集与控制设备逐步地走向网络化,以共享网络中巨大的信息资源的大背景下,仍然具有十分重要的意义。
它适用于现有的网络传输系统,有着广泛的应用前景,特别是数据采集、数据传输领域。
1.2以太网简述
1.2.1以太网的发展和日常应用
以太网的核心思想是使用共享的公共传输信道。
今天我们知道的以太网是在1972年开创的,在20世纪70年代末出现了几十种局域网技术,其中有一种就叫做以太网。
在当时最著名的网络当中,包括以太网在内还有数据通用公司的MCA、网络系统公司的Hyperchannel、Data'
Point公司的ARCNET和Corvus公司的OMNINET。
经历了几十年的发展,以太网已经成为一种主流技术。
目前,以太网已经和我们的生活息息相关,无论是构筑信息高速公路,还是企业信息系统,以及平时的娱乐活动,都离不开以太网。
这主要是应为以太网有如下优势:
(1)开放型好
(2)数据传输率高
(3)远程技术的应用
(4)易于信息网络集成,有利于资源共享
(5)支持多种的物理介质和拓扑结构
(6)成本和费用低廉
从工厂、办公室到家庭,我们正在经历一场革命式的网络连接。
商业和住宅用户可以发送及接收丰富多彩的数据、语音、图像、视频和先进的宽带服务。
随着越来越多的建筑、生产设备、智能家居、智能互联网设备相互连接到对方,巨大的商业机会呈现在先进半导体的面前。
网络将医院、大学校园、社区、企业和行业组织都相互连接起来,还能连接至因特网。
随着网络的扩展,用户要在不同子网之间进行标准化、低成本的连接。
以太网是首选接口。
联网售货:
连接到网络后,通过自动售货机,销售商可以监控货物销售,处理实时信用卡交易,进行库存管理和维护,并回应恶意破坏行为。
联网医疗:
在病房中使用健康监控器后,护理人员能密切关视每个房间中的病人,当有情况发生时,护士站的监控器界面会发出报警信号。
微控制器使这一切得以实现,并为各种应用提供了一个连接。
要在这些应用中进行高效通信,微控制器需要一些基本的组件,包括TCP/IP协议栈、媒介访问控制器(MAC)、物理层(PHY),以及足够的程序和数据存储空间资源。
TCP/IP协议将系统连接到互联网,是数据在网上传输的事实标准。
以太网协议,一般说,是指根据IEEE802.3规范制定的局域网协议(LAN,LocalNetwork)中酶CSMA/CD协议。
以太网通信目前常用的介质是双绞线和光纤。
其中,CSMA/CD协议是CarriersensemultipleAccesswithCollisionDetection的缩写,是带检测冲突的载波侦听多路访问协议。
其工作原理是:
当你的网站希望传送时,它就等到线路空闲为止,否则就立即传输。
如果两个或多个站点同时对闲置的电路传输,它们就会发生冲突。
于是所有冲突站点终止传送,等待一个随机的时间,然后重复上述过程。
1.2.2以太网协议的参考模型
以太网协议的逻辑关系遵循OSI参考模型(openSystemInterconnectReferenceModel即开放式系统互联参考模型)。
使用双铰线和光纤这两种媒介,以太网能实现4种传输速率。
(1)l0Mbit/s:
10Base—T以太网。
(2)100Mbit/s:
快速以太网。
(3)1000Mbit/s:
千兆位以太网802.3z标准。
(4)10千兆位以太网:
IEEE802.3ae定义。
在进行实际的以太网通信中,每一种协议无一例外都是运行在它下面层次的协议基础上的。
例如,在用户看来,使用FTP协议进行文件传输的两台计算机系统似乎是两个系统基于FTP协议的直接交换,其实,文件的数据传输经过了层层打包和拆包的协议路径。
1.2.3以太网基本工作原理
由于处在基础的网络环境的竞争体制之中,所以任何一台网络设备在网络空闲时发送消息是以太网所允许的。
其原因是缺乏任何集中式的管理措施,故多台工作站的网络在相同时刻被检测到处于空闲状态,然后数据被发送到网络,这种情况在同一时间经常会出现。
而发出的信息相遇后会相互碰撞而致损坏。
此时,工作站要想重新发送数据就必须等待一段时间。
发生碰撞后,网站应当在何时重新发送数据帧,可以由补偿算法来决定。
以太网和TCP/IP两者的关系十分密切,以太网在一二层提供物理上的连线,而TCP/IP使用32位的IP地址工作在上层,以太网使用一个48位的MAC地址,两者之间的相互转换需通过ARP和RARP协议进行。
1.3以太网控制器
1.3.1简述
如果以太网连接采用最简单的TCP/IP协议集和微控制器,就可以连接各个最小功能设备。
当采用标准化和嵌入式以太网连接后,就可实现经济高效的目的。
以太网作为通用的网络接口,在WAN和MAN节点中的应用频率日渐增加。
当前,全球基于以太网的企业网络已有3亿多个,超过85%的已有网络连接是以太网。
这充分证明了以太网的成功。
以太网不仅拥有庞大的用户群体,而且保持着强劲的增长势头,所以很可能一统连接方式的天下。
为了实现以太网联网和因特网的连接,采用独特的单芯片16位以太网解决方案。
其拥有比8位解决方案更强的处理能力和更多的存储资源(共享8KB的RAM数据/消息存储区),可使吞吐量和存储空间使用之间的平衡得到改善,从而将大部分的MCU资源留给各种应用。
一些响应快速的微控制器对不同大小的IP数据包进行组装/拆卸时都有充分的时间,所以,在要求严苛的工业环境中,它依然能应付自如。
它之所以可以承担以太网联网的重任,是因为其兼有高速的内部总线和突出的寻址模式,并通过以太网进行远程监测和控制。
1.3.2以太网控制器与嵌入式系统
当前嵌入式研究领域的技术热点之一是以太网(Ememct)技术在嵌入式系统上的开发应用。
首先,与传统的RS-485、CAN等相比较,以太网更高速、通用,而且直接与Internet相连接,提供了更大范围的远程访问;
其次,相对于新兴的USB2.0、IEEEl394等总线,以太网技术明显的优势集中体现在传输距离、布线成本以及控制软件的通用性上。
在今天的数字系统设计中,嵌入式微控制器能结合微处理器的内核与丰富的外围接口设备,不但能提供强大的运算和控制功能,还降低了系统成本和功耗,因而它作为数字系统的控制核心无可厚非,如有需要,再配以适当的专用芯片(例如音视频编解码器、数字调制解调整器等)。
这种体系结构适用于大多数复杂数字系统的设计。
1.4主要研究内容和实现方法
该嵌入式以太网接口的通信设计是以ATmega16单片机配合带SPI接口的独立以太网控制器ENC28J60,通过片上程序开发,将程序移植在此嵌入式系统中,就可以实现通过互联网对其进行远程控制或远程数据采集等功能。
本文将从硬件系统和软件系统两部分的设计和实施着手,对ATmega16单片机和ENC28J60的SPI通讯进行阐述。
系统的硬件部分,包括各核心器件的功能特点、用法、应用电路以及调试过程等,如ATmega16单片机相关电路的设计及应用,网络控制器ENC28J60外围电路的设计。
软件部分包括网络控制器驱动程序设计与实现、单片机串口通讯程序的设计与实现。
论文的最后部分为系统的综合测试以及结论。
2系统硬件设计与实现
2.1ENC28J60简介
2.1.1ENC28J60常识
ENC28J60是MicrochipTechnology(美国微芯科技公司)推出的28引脚独立以太网控制芯片,由于目前市场上大部分以太网控制芯片采用的封装均超过80引脚,所以它是目前以太网控制芯片中的最小封装形式。
故与RTL8019、DM9008、AX88796L、LAN91C111、CS8900A等用于嵌入式系统开发的以太网控制器相较而言,ENC28J60以太网控制芯片体积小、结构简单、价格便宜。
另外,它符合IEEE802.3的全部规范,采用了一系列机制来限制传入数据包,它提供了一个内部DMA模块,使快速数据吞吐及硬件支持的IP校验和计算得以实现。
ENC28J60与主控单片机的通信通过两个中断引脚和SPI实现,数据传输速率高达10Mb/s。
由于ENC28J60芯片带有SPI接口,因此作为任何配备有SPI接口的单片机系统的以太网接口芯片毫无问题。
对于没有开放总线的单片机,不管从效率还是性能上,采用单片机的SPI接口连接ENC28J60的办法都是一个十分不错的方案。
即便有采用模拟并行总线的方式连接其他以太网控制器的可能。
2.1.2ENC28J60的特点
ENC28J60是带SPI接口的独立以太网控制器,该接口最高速度可达10Mb/s。
兼容IEEE802.3协议,集成了MAC和10BASE-PHY,支持全双工和半双工模式,可编程在发生冲突时自动重发,自动拒绝错误数据包,内部集成了物理层,芯片内的8K双端口RAM可以进行自由配置。
2.1.3工作特性
(1)两个用来表示连接、发送、接收、冲突和全/半双工状态的可编程LED
(2)使用两个中断引脚的七个中断源
(3)25MHZ时钟
(4)带可编程预分频器的时钟输出引脚
(5)工作电压范围是3.14V到3.45V
(6)TTL电平输入
(7)28引脚SPDIP、SSOP、SOIC和QFN封装
封装类型如图2-1所示:
(1)28引脚PDIP、SSOP、SOIC
(2)28引脚QFN
图2-1ENC28J60封装类型图
表1ENC28J60的I/O引脚说明
引脚名称
引脚号
引脚类型
缓冲器类型
说明
SPDIP、SOIC和SSOP
QFN
VCAP
1
25
P
-
来自内部稳压器的2.5V输出。
必须将此引脚通过一个10微法的电容连接到VSSTX。
VSS
2
26
参考接地端
CLKOUT
3
27
O
可编程时钟输出引脚
4
28
INT中断输出引脚
5
LAN中断唤醒输出引脚
SO
6
SPI接口的数据输出引脚
说明
SI
7
I
ST
SPI接口的数据输入引脚
SCK
8
9
10
低电平有效器件复位输入
VSSRX
11
PHYRX的参考接地端
TPIN-
12
ANA
差分信号输入
TOIN+
13
RBIAS
14
PHY的偏置电源引脚
VDDTX
15
PHYTX的正电源端
TPOUT-
16
差分信号输出
TPOUT+
17
VSSTX
18
PHYTX的参考接地端
VDDRX
19
PHYRX的正3.3V电源端
VDDPLL
20
PHYPLL的正3.3V电源端
VSSPLL
21
PHYPLL的参考接地端
VSSOSC
22
振荡器的参考接地端
OSC1
23
DIG
振荡器输入
OSC2
24
振荡器输出
VDDOSC
振荡器的正3.3V电源端
LEDB
LEDB驱动引脚
LEDA
LEDA驱动引脚
VDD
正3.3V电源端
2.1.4ENC28J60的内部结构
图2-2ENC28J60内部接口引脚图
由图2-2,ENC28J60中所有的存储器都是以静态RAM的方式实现的。
ENC28J60中有三种类型的存储器:
控制寄存器,以太网缓冲器和物理层(PHY)寄存器。
控制寄存器用于进行ENC28J60的配置、控制和状态获取等功能;
可以通过SPI口直接读写这些控制寄存器,可以由SPI接口配置为接收和发送以太网数据包的RAM区。
以太网缓冲器中包含一个供以太网控制器使用的发送和接收存储空间;
主控制器可以使用SPI接口对该存储空间的容量进行编程。
物理层寄存器用于进行PHY模块的配置,控制和监测状态,此寄存器不能直接由SPI接口读写,只能通过MAC中的独立接口MII来访问。
ENC28J60控制寄存器中最基本和重要的5个寄存器分别是:
以太网中断使能控制寄存器EIE,以太网中断标志寄存器EIR,以太网状态寄存器ESTAT,以太网辅助控制寄存器ECON2和以太网主控制寄存器ECON1。
其功能分别如下:
(1)EIE:
以太网中断使能控制寄存器,分为总中断使能和各部分使能控制,
(2)EIR:
以太网中断标志寄存器,在接收和发送数据包时根据不同的标志位进入不同的执行程序,
(3)ESTAT:
以太网状态寄存器,反映以太网当前是否数据碰撞、忙信息、错误信息、时钟态等信息,
(4)ECON2:
以太网辅助控制寄存器,设置数据指针,芯片节能等,
(5)ECON1:
以太网主控制寄存器,这个是芯片最常用的寄存器,主要用来设置不同层的寄存器空间。
下面主要介绍ECON1和ECON2:
1、ECON1:
以太网控制寄存器1
R/W_0R/W_0R/W_0R/W_0R/W_0R/W_0R/W_0R/W_0
TXRST
RXRST
DMAST
CSUMEN
TXRTS
RXEN
BSEL1
BSEL0
bit7TXRST:
发送逻辑复位位
1=发送逻辑保持在复位状态
0=正常工作
bit6RXRST:
接收逻辑复位位
1=接收逻辑保持在复位状态
bit5DMAST:
DMA起始和忙碌状态位
1=正在进行DMA复制或校验和操作
0=DMA硬件空闲
Bit4CSUMEN:
DMA校验和使能位
1=DMA硬件计算校验
0=DMA硬件复制缓冲寄存器
Bit3TXRTS:
发送请求位
1=发送逻辑正在尝试发送数据包
0=发送逻辑空闲
Bit2RXEN:
接收使能位
1=通过当前过滤器的数据包将被写入接受缓冲器
0=忽略所有接收的数据包
Bit1-0BSEL1:
BSEL0:
存储区选择位
11=SPI访问Bank3中的寄存器
10=SPI访问Bank2中的寄存器
01=SPI访问Bank1中的寄存器
00=SPI访问Bank0中的寄存器
2、ECON2:
以太网控制寄存器2
R/W_1W_0R/W_0U_0R/W_0U_0U_0U_0
AUTOINC
PKTDEC
PWRSV
__
VRPS
__
Bit7AUTOINC:
自动缓冲器指针递增使能位
1=当使用SPIRBM/WBM命令时,自动递增ERDPT和EWRPT
0=在访问缓冲器后不自动递增ERDPT和EWRPT
Bit6PKTDEC:
数据包递减位
1=EPKTCNT寄存器减1
0=保持EPKTCNT不变
Bit5PWRSV:
节能使能位
1=MAC、PHY和控制逻辑处于低功耗休眠模式
Bit4未用:
读为0
Bit3VRPS:
稳压器节能使能位
当PWRSV=1时:
1=内部稳压器处于低电流模式
0=内部稳压器处于正常电流模式
当PWRSV=0时:
该位可为任意值:
稳压器始终按器件需要输出电流
Bit2-0未用:
2.1.5ENC28J60主要功能模块
(1)SPI串行接口——主控制器和ENC28J60之间的通信通道。
(2)MAC(MediumAccessControl)模块——实现对IEEE802.3标准的MAC逻辑进行判定。
(3)控制寄存器