基于ENC28J60的嵌入式网络接口的设计说明

上传人:博****1 文档编号:505387947 上传时间:2023-07-31 格式:DOC 页数:10 大小:249KB
返回 下载 相关 举报
基于ENC28J60的嵌入式网络接口的设计说明_第1页
第1页 / 共10页
基于ENC28J60的嵌入式网络接口的设计说明_第2页
第2页 / 共10页
基于ENC28J60的嵌入式网络接口的设计说明_第3页
第3页 / 共10页
基于ENC28J60的嵌入式网络接口的设计说明_第4页
第4页 / 共10页
基于ENC28J60的嵌入式网络接口的设计说明_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于ENC28J60的嵌入式网络接口的设计说明》由会员分享,可在线阅读,更多相关《基于ENC28J60的嵌入式网络接口的设计说明(10页珍藏版)》请在金锄头文库上搜索。

1、.基于ENC28J60的嵌入式网络接口的设计发布日期:2008-06-18刘琼 朱志伟 周志光 来源:微计算机信息 摘要:设计了以ENC28J60为核心的以太网接口实现方案,描述了该系统硬件架构的设计方法。在简要介绍了以太网控制器ENC28J60的结构、功能、外围电路的基础上,对ENC28J60与Atmega16的SPI通讯进行了阐述。此方案不仅成本低,而且可以实现500Kbps以上的传输速率,满足了嵌入式系统的Internet控制要求。 关键词:嵌入式系统;ENC28J60;SPI 1 引言随着Internet的出现和以太网的迅速发展,基于以太网的设备控制越来越多。目前市场上大部分以太网控制

2、器采用的封装均超过80引脚,如RTL8019AS、DM9008、CS8900A等。这些器件不仅结构复杂,面积庞大,且系统开销较大。近来,Microchip推出全球首枚28引脚独立以太网控制器ENC28J60,可为嵌入式系统提供低引脚数、低成本、精简的远程通讯解决方案。2ENC28J60网络接口体系结构ENC28J60是带有行业标准串行外设接口Serial Peripheral Interface,SPI的独立以太网控制器。它符合IEEE 802.3的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。它还提供了一个内部DMA 模块,以实现快速数据吞吐和硬件支持的IP校验和计算。与主控制器的

3、通信通过两个中断引脚INT和WOL和SPI脚SO、SI、SCK、CS实现,数据传输速率高达10 Mb/s。两个专用的引脚LEDA、LEDB用于连接LED,进行网络活动状态指示。图1所示为ENC28J60的典型应用电路。图1 ENC28J60的典型应用电路ENC28J60由7个主要功能模块组成:SPI接口,充当主控制器和ENC28J60之间通信通道;控制寄存器,用于控制和监视ENC28J60;双端口RAM缓冲器,用于接收和发送数据包;判优器,当DMA、发送和接收模块发出请求时对RAM缓冲器的访问进行控制;总线接口,对通过SPI接收的数据和命令进行解析;MAC模块:实现符合IEEE 802.3标准

4、的MAC逻辑;PHY模块,对双绞线上的模拟数据进行编码和译码。ENC28J60还包括其他支持模块,诸如振荡器、片内稳压器、电平变换器提供可以接受5V电压的I/O引脚和系统控制逻辑。 根据以上说明, ENC28J60应用于嵌入式网络接口是非常合适的,有广阔的应用发展前景。3ENC28J60在嵌入式网络接口的应用31 硬件电路设计利用ENC28J60可以构成不同功能的网络终端节点,如网络服务器、带Internet功能的设备、远程监控设备等。图2所示为基于ENC28J60的嵌入式网络接口的硬件电路原理图。电路中有:2个LED状态指示灯主要用来显示网络连接状态,包括PHY是否冲突、连接是否建立、是否接

5、收数据、连接速度、双工模式等;必需的偏置电阻R32k,精度为1%;高速局域网电磁隔离模块,应用中,ENC28J60的物理端口与隔离变压器HR901170A连接时必须符合IEEE802.3对物理层规范的要求,如RJ45的插孔与隔离变压器的间隔应尽量小,输出和输入差分信号对的走线要有很好的隔离。图2 基于ENC28J60的嵌入式网络接口的硬件电路原理图电路中的主控制器采用Atmel公司的ATmega16单片机,它具有先进的RISC结构、16 kB可编程Flash存储器、512 B的EEPROM和1 kB片内SRAM,具有丰富的外设接口,其SPI接口允许ATmega16与外设进行高速的同步数据传输。

6、本设计中ATmega16 SPI配置为主机模式,ENC28J60为从设备。ATmega16的SPI工作模式由CPOL、CPHA设置,根据ENC28J60的SPI读写时序,ATmega16的SPI工作模式应设置为模式0。ATmega16通过将ENC28J60的CS引脚置低实现与其的同步。SPI时钟由写入到SPI发送缓冲寄存器的数据启动,SPI MOSIPB5引脚上的数据发送秩序由寄存器SPCR的DORD位控制,置位时数据的LSB首先发送,否则数据的MSB首先发送。我们选择先发送MSB,同时接收到的数据传送到接收缓冲寄存器,CPU进行右对齐从接收缓冲器中读取接收到的数据。应该注意,当需要从ENC2

7、8J60中读取多个数据时,即使ENC28J60并不需要ATmega16串行输出的数据,每读取一个数据前都要向SPI发送缓冲器写一个数据以启动SPI接口时钟。由于SPI系统的发送方向只有1个缓冲器,而在接收方向有2个缓冲器,所以在发送时一定要等到移位过程全部结束后,才能对SPI数据寄存器执行写操作;而在接收数据时,需要在下一个字节移位过程结束之前通过访问SPI数据寄存器读取当前接收到的数据,否则第1个数据丢失。32 ENC28J60软件初始化在使用ENC28J60 发送和接收数据包前,必须对器件进行初始化设置。根据不同的应用,一些配置选项可能需要更改。初始化设置工作包括接收和发送缓冲器、接收过滤

8、器、晶振启动时间、MAC寄存器、PHY寄存器。初始化芯片之前先关闭单片机的中断输入,对RESET引脚给定一个持续的低电平复位信号,然后对相应的寄存器进行设置。设置完成所有需要的寄存器后,判断以太网状态中的时钟启动标志位是否置位,然后开中断。系统初始化后进入主程序循环,包括单片机的控制作用和网络数据传输。对于以太网传输部分来说主要有两个作用:一是对要发送的数据按照以太网数据帧格式进行封装并发送;二是对接收的以太网数据帧进行解包,供应用程序使用。33 ENC28J60发送数据包在进行数据包发送或接收时,要先对写缓冲存储器Write Buffer Memory,WBM命令掌握。WBM允许主控制器将字

9、节写入8KB发送和接收缓冲存储器。如果ECON2寄存器中的AUTOINC位置1,那么在写完每个字节的最后一位之后,EWRPT指针将会自动地递增指向下一个地址当前地址加1。如果写入地址1FFF且AUTOINC置1,则写指针加1指向0000h。将CS引脚拉为低电平启动WBM命令。然后将WBM操作码及随后的5位常量1Ah送入ENC28J60。在发送WBM命令和常量之后,由EWRPT指向的存储器中的数据将移入ENC28J60,首先移入最高位。在接收到8个数据位后,如果AUTOINC置1,写指针将自动递增。主控制器可以继续在SCK引脚提供时种信号、在SI引脚发送数据同时保持/CS为低电平,从而可以连续写

10、入存储器。 当AUTOINC被使能时,以该方式就可以连续地向缓冲存储器写入字节而无需多余的SPI命令。拉高CS引脚电平可结束WBM命令。在WBM操作期间,SO引脚一直为高阻态, WBM操作时序,请参见图3。图3 写缓冲存储器时序图ENC28J60 内的MAC在发送时会自动生成前导符和帧起始定界符。 此外,MAC可根据配置生成填充如果需要和CRC字段。主控制器必须生成所有其他帧字段,并将它们写入缓冲存储器,以待发送。此外,ENC28J60还要求在待发送的数据包前添加一个包控制字节。主控制器应:1.正确编程ETXST指针,使之指向存储器中未用的单元。它将指向包控制字节,在本设计方案中,指针应编程为

11、0120h;2.使用WBM SPI命令写入包控制字节、目标地址、源MAC 地址、类型/ 长度和数据有效负载;3.正确编程ETXND指针。它应指向数据有效负载的最后一个字节,在本设计方案中,指针应编程为0156h;4.将EIR.TXIF位清零、将EIE.TXIE位和EIE.INTIE位置1允许在发送完成后产生中断如果需要;5.将ECON1.TXRTS位置1开始发送。如果在TXRTS位置1时正在进行DMA操作,ENC28J60会等待DMA操作完成再发送。 这种等待是必需的,因为DMA和发送引擎共享同一个存储器访问端口。同样如果在TXRTS已置1后,ECON1中DMAST位才置1,DMA在TXRTS

12、位清零前不会采取任何动作。 如果正在进行发送,不应通过SPI 读取或写入任何待发送的字节。主控制器将TXRTS位清零可取消发送。如果数据包发送完成或因错误取消而中止发送,ECON1.TXRTS位会被清零,一个7字节的发送状态向量将被写入由ETXND + 1指向的单元,EIR.TXIF会被置1并产生中断如果允许。要验证数据包是否成功发送,应读取ESTAT.TXABRT位。如果该位置1,主控制器在查询发送状态向量的各个字段外,还应查询ESTAT.LATECOL位,以确定失败的原因。下面给出写数据包的源代码:void encWriteBuffer PORTB &= CS_ENJ; / send wr

13、ite command SPDR = ENC28J60_WRITE_BUF_MEM; while!SPSR & 1; while / write data SPDR = *data+; while!SPSR & 1; PORTB |= CS_ENJ;33 ENC28J60接收数据包假设接收缓冲器已完成初始化,MAC已正确配置而且接收过滤器已配置为接收以太网数据包,主控制器应该:1.如果需要在接收到数据包时产生一个中断,就要将EIE.PKTIE位和EIE.INTIE位置1;2. 如果需要在由于缓冲空间不足导致数据包丢失时产生一个中断,就要将EIR.RXERIF位清零,并将EIE.RXERIE位和

14、EIE.INTIE位置1;3. 通过将ECON1.RXEN位置1使能接收。在将RXEN置1后,将不能修改双工模式和接收缓冲器起始和结束指针。此外,要阻止不期望接收的数据包,在更改接收过滤器配置寄存器ERXFCON和MAC地址前建议将RXEN 清零。在使能接收后,没有过滤掉的数据包将写入循环接收缓冲器。任何不符合过滤条件的数据包将被丢弃,但主控制器无法识别一个数据包已被丢弃。当接收到一个数据包并将其完整写入缓冲器时,EPKTCNT寄存器将递增,EIR.PKTIF位将置1,并产生一个中断如果允许,同时硬件写指针ERXWRPT自动递增。4 结束语随着数字化、智能化仪器的飞速发展,采用以太网进行通信的

15、应用将会越来越广泛。ENC28J60芯片是网络技术与单片机技术的完美结合,用它可以方便地实现嵌入式系统的以太网连接,可广泛用于智能交通、汽车电子、工业控制、信息家电、医学仪器等各种嵌入式系统应用场合。本文作者的创新点:通过ENC28J60芯片所设计的嵌入式网络接口可以在多种环境中应用,能按需要进行配置来完成系统功能,并且在成本、体积、功耗、灵活性等方面具有明显的优势,能为智能化仪器与设备、信息家电等开拓新的应用前景。参考文献1 祁树胜. SPI接口以太网控制器ENC28J60及其应用J .微计算机信息,2006, 8-2:266-268.3 周晓阳,程红,张晓媛. 新型以太网控制器ENC28J60及其接口技术J .单片机与嵌入式系统应用,2006, 8:34-36.基于ENC28J60的嵌入式网络接口的设计刘琼朱志伟周志光 来源:微计算机信息 录入:蝴蝶仙子 字体:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号