APP下载

AVR单片机实现以太网通信的研究

2012-06-28于海波付江波李金涛

电子工业专用设备 2012年2期
关键词:缓冲器寄存器电平

于海波,付江波,李金涛

(北京中电科电子装备有限公司,北京100176)

随着科技的发展,工业生产中的数据采集与控制设备逐步走向网络化。以单片机为核心的智能检测及控制系统因其具有低廉的价格,而被广泛的应用。应用单片机实现网络通信有多种解决方案,一些以太网接口设计方案是通过MCU扩展以太网控制器来实现的,这种设计方案应用起来较为困难,硬件电路设计复杂,单片机系统开销较大,而且其整体性能不稳定。而另外一些采用集成以太网MAC层和物理层16位单片机MC9612NE64来设计通过,如RTL8019AS,CS8900等的以太网控制器,它们的封装均超过80个引脚,不仅结构复杂,体积庞大,而且价格较贵,很难满足智能检测控机制系统的实际应用要求。为了解决以上的不足,本文采用AVR系列单片机Atmega16与Microchip公司生产的以太网控制芯片ENC28J60来实现以太网模块的设计,为实现智能检测及控制系统的网络化提供良好的解决方案。

1 模块介绍

AVR系列单片机汲取PIC和8051单片机的优点[1],采用了CMOS技术和RISC架构,实现高速低功耗及休眠等功能。AVR系列单片机集成了8051和PIC单片机的优点,具有多个固定中端向量地址入口,并带有可设置的启动复位延时计数器。AVR系列单片机外围资源较为丰富,带有A/D采集模块、SPI模块、PWM模块等。本文采用的是ATMEGA16,数据吞吐率高达16MISP/MHz。系统内部具有16K字节可编程Flash,512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器。

以太网芯片ENC28J60有28个引脚,硬件设计符合IEEE802.3标准。内置10Mbps以太网物理层器件(PHY)及媒介接入控制器(MAC),可以和标准以太网可靠地进行收发数据。它具有可编程填充和CRC自动校验功能;具有可编程过滤功能,包括Microchip的可编程模式匹配过滤器;具有自动评价、接收或拒绝单播、多播或广播信息包的功能;其内部具有8KB可编程双端口SRAM缓冲器,从而实现了信息包的存储,基于上述功能ENC28J60可有效地减少了主控器内存的负荷,ENC28J60的SPI接口通讯速度可达10 Mbps。

2 硬件电路设计[2]

系统硬件设计如图1所示,AVR单片机AT-mega16与ENC28J60通过SPI接口进行数据传输,ATmega16与ENC28J60进行SPI通信时需配制成主机模式,ENC28J60配置成从机模式。ENC28J60供电电压为3.3 V,SPI的信号输入引脚CS,SCK、SI以及 RESTE可承受5 V电压,可以直接与单片机相连。而SO和INT只能承受3.3 V电平,可以使用74HCT08(与门),74ACT125(三态缓冲器)或其他带有TTL电平输入缓冲器的5 V CMOS芯片来提供必要的电平转换,本文采用一个74HCT08(与门)实现信号的电平转换。

图1 硬件设计电路图

3 系统软件设计

系统软件设计包括两部分,系统软件设计的层次结构如图2所示。

(1)单片机系统的初始化和ENC28J60驱动程序的编写。

该部分主要是对单片机的外围控制寄存器进行初始化,提供所需的应用接口。这部重点在于对ENC28J60的硬件初始化及对其进行读写的操作,表1列出ENC28J60的SPI指令命令代码及格式。AVR单片机通过SPI缓冲器向ENC28J60写入相应格式的命令代码,就可以实现与ENC28J60的数据通信,其中PHY寄存器不能通过SPI接口直接操作,而是需要通过特殊功能寄存器MII完成读写操作。

本文采用如下的C语言程序对ENC28J60控制寄存器进行了初始化,完成了对控制寄存器的读写操作。其它对ENC28J60操作函数与此类似,由于篇幅有限,不在此进行详述

图2 系统软件设计层次

表1 ENC28J60的SPI指令集

(2)uIP协议栈在AVR单片机上的移植。

uIP协议栈是专门为8/16位嵌入式微处理器设计的小型TCP/IP协议栈,获得BSD授权,并遵循RFC标准。它完全由C语言编写,具有良好的互操作性和完整的原代码及注释,可免费应用。

uIP协议栈有多个版本,本文采用的是uIP0.9版本。本文用到的 uip.c、uip.h、uip_arp.c、uip_arp.h、uip_arich.h文件位于/uip目录下。uip.c和uip.h实现了 IP、TCP、ICMP 协议,uip_arp.c和 uip_arp.h 实现了ARP协议。其中uip_arch.c是校验和文件,uippopt.h为参数配置文件,根据系统的需要,修改相应的参数,从而完成对uIP协议栈的移植。

4 结束语

本文采用AVR单片机和ENC28J60网络接口芯片的设计方案,实现了单片机系统与以太网的通信。随着智能数据采集与控制系统对数据传输质量要求的不断提高,基于单片机系统的以太网接口方案的设计将会得到广泛的应用。

[1]张永涛 黄丹丹 李欧.uIP协议分析及应用[J].信息工程大学学报,2006,7(2):148-149.

猜你喜欢

缓冲器寄存器电平
更正
重载货车用缓冲器选型的研究及分析
Lite寄存器模型的设计与实现
分簇结构向量寄存器分配策略研究*
NPC五电平Z源逆变器的设计研究
基于三电平光伏并网逆变器控制系统的研究与实践
基于NPC三电平变换器的STATCOM研究
一种多电平逆变器及其并网策略
面向TIA和缓冲器应用的毫微微安偏置电流运放可实现500MHz增益带宽
车辆缓冲器故障及选型
——以冶金企业为例