好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

10页
  • 卖家[上传人]:M****1
  • 文档编号:383623954
  • 上传时间:2022-08-30
  • 文档格式:DOC
  • 文档大小:249KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于ENC28J60的嵌入式网络接口的设计发布日期:2008-06-18 刘琼 朱志伟 周志光 来源:微计算机信息 摘要:设计了以ENC28J60为核心的以太网接口实现方案,描述了该系统硬件架构的设计方法在简要介绍了以太网控制器ENC28J60的结构、功能、外围电路的基础上,对ENC28J60与Atmega16的SPI通讯进行了阐述此方案不仅成本低,而且可以实现500Kbps以上的传输速率,满足了嵌入式系统的Internet控制要求 关键词:嵌入式系统;ENC28J60;SPI 1 引言随着Internet的出现和以太网的迅速发展,基于以太网的设备控制越来越多目前市场上大部分以太网控制器采用的封装均超过80引脚,如RTL8019AS、DM9008、CS8900A等这些器件不仅结构复杂,面积庞大,且系统开销较大近来,Microchip推出全球首枚28引脚独立以太网控制器ENC28J60,可为嵌入式系统提供低引脚数、低成本、精简的远程通讯解决方案2 ENC28J60网络接口体系结构ENC28J60是带有行业标准串行外设接口〔Serial Peripheral Interface,SPI的独立以太网控制器。

      它符合IEEE 802.3的全部规范,采用了一系列包过滤机制以对传入数据包进行限制它还提供了一个内部DMA 模块,以实现快速数据吞吐和硬件支持的IP校验和计算与主控制器的通信通过两个中断引脚〔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标准的MAC逻辑;PHY模块,对双绞线上的模拟数据进行编码和译码ENC28J60还包括其他支持模块,诸如振荡器、片内稳压器、电平变换器〔提供可以接受5V电压的I/O引脚和系统控制逻辑    根据以上说明, ENC28J60应用于嵌入式网络接口是非常合适的,有广阔的应用发展前景。

      3 ENC28J60在嵌入式网络接口的应用3.1  硬件电路设计利用ENC28J60可以构成不同功能的网络终端节点,如网络服务器、带Internet功能的设备、远程监控<数据采集,诊断>设备等图2所示为基于ENC28J60的嵌入式网络接口的硬件电路原理图电路中有:2个LED状态指示灯主要用来显示网络连接状态,包括PHY是否冲突、连接是否建立、是否接收数据、连接速度、双工模式等;必需的偏置电阻R3〔2kΩ,精度为1%;高速局域网电磁隔离模块<即RJ45以太网接口>,应用中,ENC28J60的物理端口与隔离变压器HR901170A连接时必须符合IEEE802.3对物理层规范的要求,如RJ45的插孔与隔离变压器的间隔应尽量小,输出和输入差分信号对的走线要有很好的隔离图2  基于ENC28J60的嵌入式网络接口的硬件电路原理图电路中的主控制器采用Atmel公司的ATmega16单片机,它具有先进的RISC<精简指令集计算机>结构、16 kB可编程Flash存储器、512 B的EEPROM和1 kB片内SRAM,具有丰富的外设接口,其SPI接口允许ATmega16与外设进行高速的同步数据传输本设计中ATmega16 SPI配置为主机模式,ENC28J60为从设备。

      ATmega16的SPI工作模式由CPOL、CPHA设置,根据ENC28J60的SPI读写时序,ATmega16的SPI工作模式应设置为模式0ATmega16通过将ENC28J60的CS引脚置低实现与其的同步SPI时钟由写入到SPI发送缓冲寄存器的数据启动,SPI MOSI〔PB5引脚上的数据发送秩序由寄存器SPCR的DORD位控制,置位时数据的LSB<最低位>首先发送,否则数据的MSB<最高位>首先发送我们选择先发送MSB,同时接收到的数据传送到接收缓冲寄存器,CPU进行右对齐从接收缓冲器中读取接收到的数据应该注意,当需要从ENC28J60中读取多个数据时,即使ENC28J60并不需要ATmega16串行输出的数据,每读取一个数据前都要向SPI发送缓冲器写一个数据以启动SPI接口时钟由于SPI系统的发送方向只有1个缓冲器,而在接收方向有2个缓冲器,所以在发送时一定要等到移位过程全部结束后,才能对SPI数据寄存器执行写操作;而在接收数据时,需要在下一个字节移位过程结束之前通过访问SPI数据寄存器读取当前接收到的数据,否则第1个数据丢失3.2  ENC28J60软件初始化在使用ENC28J60 发送和接收数据包前,必须对器件进行初始化设置。

      根据不同的应用,一些配置选项可能需要更改初始化设置工作包括接收和发送缓冲器、接收过滤器、晶振启动时间、MAC寄存器、PHY寄存器初始化芯片之前先关闭单片机的中断输入,对RESET引脚给定一个持续的低电平复位信号,然后对相应的寄存器进行设置设置完成所有需要的寄存器后,判断以太网状态中的时钟启动标志位是否置位,然后开中断系统初始化后进入主程序循环,包括单片机的控制作用和网络数据传输对于以太网传输部分来说.主要有两个作用:一是对要发送的数据按照以太网数据帧格式进行封装并发送;二是对接收的以太网数据帧进行解包,供应用程序使用3.3  ENC28J60发送数据包在进行数据包发送或接收时,要先对写缓冲存储器〔Write Buffer Memory,WBM命令掌握WBM允许主控制器将字节写入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为低电平,从而可以连续写入存储器 当AUTOINC被使能时,以该方式就可以连续地向缓冲存储器写入字节而无需多余的SPI命令拉高CS引脚电平可结束WBM命令在WBM操作期间,SO引脚一直为高阻态, WBM操作时序,请参见图3图3  写缓冲存储器时序图ENC28J60 内的MAC在发送时会自动生成前导符和帧起始定界符 此外,MAC可根据配置生成填充〔如果需要和CRC字段主控制器必须生成所有其他帧字段,并将它们写入缓冲存储器,以待发送此外,ENC28J60还要求在待发送的数据包前添加一个包控制字节主控制器应:1.正确编程ETXST指针,使之指向存储器中未用的单元它将指向包控制字节,在本设计方案中,指针应编程为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位清零前不会采取任何动作 如果正在进行发送,不应通过SPI 读取或写入任何待发送的字节主控制器将TXRTS位清零可取消发送如果数据包发送完成或因错误取消而中止发送,ECON1.TXRTS位会被清零,一个7字节的发送状态向量将被写入由ETXND + 1指向的单元,EIR.TXIF会被置1并产生中断〔如果允许要验证数据包是否成功发送,应读取ESTAT.TXABRT位如果该位置1,主控制器在查询发送状态向量的各个字段外,还应查询ESTAT.LATECOL位,以确定失败的原因下面给出写数据包的源代码:void encWriteBuffer{       PORTB &= ~CS_ENJ;              // send write command       SPDR = ENC28J60_WRITE_BUF_MEM;       while>>;       while       {              // write data              SPDR = *data++;              while>>;       }                     PORTB |= CS_ENJ;} 3.3  ENC28J60接收数据包假设接收缓冲器已完成初始化,MAC已正确配置而且接收过滤器已配置为接收以太网数据包,主控制器应该:1.如果需要在接收到数据包时产生一个中断,就要将EIE.PKTIE位和EIE.INTIE位置1;2. 如果需要在由于缓冲空间不足导致数据包丢失时产生一个中断,就要将EIR.RXERIF位清零,并将EIE.RXERIE位和EIE.INTIE位置1;3. 通过将ECON1.RXEN位置1使能接收。

      在将RXEN置1后,将不能修改双工模式和接收缓冲器起始和结束指针此外,要阻止不期望接收的数据包,在更改接收过滤器配置寄存器〔ERXFCON和MAC地址前建议将RXEN 清零在使能接收后,没有过滤掉的数据包将写入循环接收缓冲器任何不符合过滤条件的数据包将被丢弃,但主控制器无法识别一个数据包已被丢弃当接收到一个数据包并将其完整写入缓冲器时,EPKTCNT寄存器将递增,EIR.PKTIF位将置1,并产生一个中断〔如果允许,同时硬件写指针ERXWRPT自动递增 4        结束语随着数字化、智能化仪器的飞速发展,采用以太网进行通信的应用将会越来越广泛ENC28J60芯片是网络技术与单片机技术的完美结合,用它可以方便地实现嵌入式系统的以太网连接,可广泛用于智能交通、汽车电子、工业控制、信息家电、医学仪器等各种嵌入式系统应用场合本文作者的创新点:通过ENC28J60芯片所设计的嵌入式网络接口可以在多种环境中应用,能按需要进行配置来完成系统功能,并且在成本、体积、功耗、灵活性等方面具有明显的优势,能为智能化仪器与设备、信息家电等开拓新的应用前景参考文献[1] 祁树胜. SPI接口以太网控制器ENC28J60及其应用[J] .微计算机信息,2006, 8-2:266-268.[3] 周晓阳,程红,张晓媛. 新型以太网控制器ENC28J60及其接口技术[J] .单片机与嵌入式系统应用,2006, 8:34-36.基于ENC28J60的嵌入式网络接口的设计刘琼 朱志伟 周志光    来源:微计算机信息    录入:蝴蝶仙子    字体: 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.