欢迎来到天天文库
浏览记录
ID:27821483
大小:79.50 KB
页数:5页
时间:2018-12-06
《一种嵌入式网络接口设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一种嵌入式网络接口设计 1引言 随着Internet的出现和以太网的迅速发展,基于以太网的设备控制越来越多。目前市场上大部分以太网控制器采用的封装均超过80引脚,如RTL8019AS、DM9008、CS8900A等。这些器件不仅结构复杂,面积庞大,且系统开销较大。近来,Microchip推出全球首枚28引脚独立以太网控制器ENC28J60,可为嵌入式系统提供低引脚数、低成本、精简的远程通讯解决方案。 设计了以ENC28J60为核心的以太网接口实现方案,描述了该系统硬件架构的设计方法。在简要介绍了以
2、太网控制器ENC28J60的结构、功能、外围电路的基础上,对ENC28J60与Atmega16的SPI通讯进行了阐述。此方案不仅成本低,而且可以实现500Kbps以上的传输速率,满足了嵌入式系统的Internet控制要求。 2ENC28J60网络接口体系结构 ENC28J60是带有行业标准串行外设接口(SerialPeripheralInterface,SPI)的独立以太网控制器。它符合IEEE802.3的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。它还提供了一个内部DMA模块,以实现快
3、速数据吞吐和硬件支持的IP校验和计算。与主控制器的通信通过两个中断引脚(INT和WOL)和SPI脚(SO、SI、SCK、CS)实现,数据传输速率高达10Mb/s.两个专用的引脚(LEDA、LEDB)用于连接LED,进行网络活动状态指示。图1所示为ENC28J60的典型应用电路。 ENC28J60由7个主要功能模块组成:SPI接口,充当主控制器和ENC28J60之间通信通道;控制寄存器,用于控制和监视ENC28J60;双端口RAM缓冲器,用于接收和发送数据包;判优器,当DMA、发送和接收模块发出请求
4、时对RAM缓冲器的访问进行控制;总线接口,对通过SPI接收的数据和命令进行解析;MAC模块:实现符合IEEE802.3标准的MAC逻辑;PHY模块,对双绞线上的模拟数据进行编码和译码。ENC28J60还包括其他支持模块,诸如振荡器、片内稳压器、电平变换器(提供可以接受5V电压的I/O引脚)和系统控制逻辑。 根据以上说明,ENC28J60应用于嵌入式网络接口是非常合适的,有广阔的应用发展前景。 3ENC28J60在嵌入式网络接口的应用 3.1硬件电路设计 利用ENC28J60可以构成不同功能的网络
5、终端节点,如网络服务器、带Internet功能的设备、远程监控(数据采集,诊断)设备等。图2所示为基于ENC28J60的嵌入式网络接口的硬件电路原理图。电路中有:2个LED状态指示灯主要用来显示网络连接状态,包括PHY是否冲突、连接是否建立、是否接收数据、连接速度、双工模式等;必需的偏置电阻R3(2kΩ,精度为1%);高速局域网电磁隔离模块(即RJ45以太网接口),应用中,ENC28J60的物理端口与隔离变压器HR901170A连接时必须符合IEEE802.3对物理层规范的要求,如RJ45的插孔与隔离变
6、压器的间隔应尽量小,输出和输入差分信号对的走线要有很好的隔离。 电路中的主控制器采用Atmel公司的ATmega16单片机,它具有先进的RISC(精简指令集计算机)结构、16kB可编程Flash存储器、512B的EEPROM和1kB片内SRAM,具有丰富的外设接口,其SPI接口允许ATmega16与外设进行高速的同步数据传输。本设计中ATmega16SPI配置为主机模式,ENC28J60为从设备。ATmega16的SPI工作模式由CPOL、CPHA设置,根据ENC28J60的SPI读写时序,ATm
7、ega16的SPI工作模式应设置为模式0.ATmega16通过将ENC28J60的CS引脚置低实现与其的同步。SPI时钟由写入到SPI发送缓冲寄存器的数据启动,SPIMOSI(PB5)引脚上的数据发送秩序由寄存器SPCR的DORD位控制,置位时数据的LSB(最低位)首先发送,否则数据的MSB(最高位)首先发送。我们选择先发送MSB,同时接收到的数据传送到接收缓冲寄存器,CPU进行右对齐从接收缓冲器中读取接收到的数据。应该注意,当需要从ENC28J60中读取多个数据时,即使ENC28J60并不需要ATme
8、ga16串行输出的数据,每读取一个数据前都要向SPI发送缓冲器写一个数据以启动SPI接口时钟。由于SPI系统的发送方向只有1个缓冲器,而在接收方向有2个缓冲器,所以在发送时一定要等到移位过程全部结束后,才能对SPI数据寄存器执行写操作;而在接收数据时,需要在下一个字节移位过程结束之前通过访问SPI数据寄存器读取当前接收到的数据,否则第1个数据丢失。 3.2ENC28J60软件初始化 在使用ENC28J60发送和接收数据包前,必须对器件进
此文档下载收益归作者所有