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

发布者:绿意盎然最新更新时间:2012-04-18 来源: 微计算机信息关键字:ENC28J60  嵌入式  网络接口 手机看文章 扫描二维码
随时随地手机看文章

1 引言

随着Internet 的出现和以太网的迅速发展,基于以太网的设备控制越来越多。目前市场上大部分以太网控制器采用的封装均超过80 引脚,如RTL8019AS、DM9008、CS8900A 等。这些器件不仅结构复杂,面积庞大,且系统开销较大。近来,Microchip推出全球首枚28 引脚独立以太网控制器ENC28J60, 可为嵌入式系统提供低引脚数、低成本、精简的远程通讯解决方案。

2 ENC28J60 网络接口体系结构

ENC28J60 是带有行业标准串行外设接口(Serial PeripheralInterface, SPI)的独立以太网控制器。它符合IEEE 802.3 的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。它还提供了一个内部DMA 模块,以实现快速数据吞吐和硬件支持的IP 校验和计算。与主控制器的通信通过两个中断引脚(INT和WOL)和SPI 脚(SO、SI、SCK、CS)实现,数据传输速率高达10Mb/s.两个专用的引脚(LEDA、LEDB)用于连接LED, 进行网络活动状态指示。图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 的插孔与隔离变压器的间隔应尽量小,输出和输入差分信号对的走线要有很好的隔离。

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

3.2 ENC28J60 软件初始化

在使用ENC28J60 发送和接收数据包前,必须对器件进行初始化设置。根据不同的应用,一些配置选项可能需要更改。初始化设置工作包括接收和发送缓冲器、接收过滤器、晶振启动时间、MAC 寄存器、PHY 寄存器。初始化芯片之前先关闭单片机的中断输入,对RESET 引脚给定一个持续的低电平复位信号,然后对相应的寄存器进行设置。设置完成所有需要的寄存器后,判断以太网状态中的时钟启动标志位是否置位,然后开中断。

系统初始化后进入主程序循环,包括单片机的控制作用和网络数据传输。对于以太网传输部分来说。主要有两个作用:一是对要发送的数据按照以太网数据帧格式进行封装并发送; 二是对接收的以太网数据帧进行解包,供应用程序使用。

3.3 ENC28J60 发送数据包

在进行数据包发送或接收时,要先对写缓冲存储器(WriteBuffer 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.

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 位,以确定失败的原因。下面给出写数据包的源代码:

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 芯片所设计的嵌入式网络接口可以在多种环境中应用,能按需要进行配置来完成系统功能,并且在成本、体积、功耗、灵活性等方面具有明显的优势,能为智能化仪器与设备、信息家电等开拓新的应用前景。

关键字:ENC28J60  嵌入式  网络接口 引用地址:基于ENC28J60的嵌入式网络接口的设计

上一篇:根据RF2.4GHz的超低功耗无线数传系统设计策略
下一篇:基于TCP/IP的浮标网络通信系统设计

推荐阅读最新更新时间:2024-03-16 12:58

基于S3C2410A微控制器的嵌入式数字示波器的应用设计方案
1 引言 嵌入式数字示波器是近年发展起来的一种实现数据及波形实时显示的智能终端设备。目前通用的数字示波器多采用DSP、内嵌微处理器型FPGA或DSP+FPGA结构。嵌入式数字示波器可看成是一种低成本、功能相对较少、可作为一个模块使用的嵌入式智能终端。虽然DSP数据处理能力强大,运行速度较高,FPGA灵活性强,可以充分地进行设计开发和验证,便于系统升级。但是,DSP和内嵌微处理器型FPGA一般价格较高。不适合在低成本的嵌入式数字示波器开发中使用。 ARM是面向低价位市场设计的一种RISC微处理器,其优势是性价比高,适合嵌入式数字示波器的需求。当前采用ARM芯片设计的嵌入式数字示波器主要基于ARM7内核的微控制器S3C44BOX。
[单片机]
基于S3C2410A微控制器的<font color='red'>嵌入式</font>数字示波器的应用设计方案
嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(一)
一、移植环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器: arm-linux-gcc-4.3.2.tgz u-boot: u-boot-2009.08.tar.bz2 二、移植步骤 本次移植的功能特点包括: 支持Nand Flash读写 支持从Nor/Nand Flash启动 支持CS8900或者DM9000网卡 支持Yaffs文件系统 支持USB下载(还未实现) 1. 了解u-boot主要的目录结构和启动流程,如下图。 u-boot的stage1代码通常放在cpu/xxxx/sta
[单片机]
<font color='red'>嵌入式</font>Linux之我行——u-boot-2009.08在2440上的移植详解(一)
MSP430F149嵌入式系统中FLASH K9F1G08U0M的应用
NAND Flash是采用NAND结构技术的非易失存储器,具有ROM存储器的特点,存储在该芯片中的数据可在断电情况下维持10年不丢失,而芯片的引脚与访问又具有类似于RAM的特点。NAND FLASH 存储器将数据线与地址线复用为8条线,另外还分别提供了命令控制信号线,因此,NAND FLASH 存储器不会因为存储容量的增加而增加引脚数目。从而极大方便了系统设计和产品升级。 1 元件介绍 1.1 MSP430芯片 MSP430系列单片机是TI公司推出的16位RISC系列单片机,该系列是一组超低功耗微控制器,供电电压范围为1.8V―3.6V。考虑到本系统有微体积、低功耗的要求,在此选用MSP430F149,它具有60KB Flas
[单片机]
MSP430F149<font color='red'>嵌入式</font>系统中FLASH K9F1G08U0M的应用
嵌入式Internet技术及其实现方案
1. 引言 在Internet的日益普及,信息共享程度的不断提高的今天,人们的工作和生活方式已经有了革命性的改变。家庭电器和工业设备中无处不在的充满了单片机或微控制器(MCU)。但目前大多数嵌入式系统还处于单独应用的阶段,而工业上也只是利用孤立于Internet以外的的控制通信网络(如 CAN,I2C,PROFIBUS等现场总线)实现MCU组网 。如果能将嵌入式系统连接到应用广泛的Internet上面,或者在现有网络的基础上利用 Internet为介质,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方,从而进行远程监控 。因此,嵌入式Internet技术就应运而生,并成为业内的一大热点。 2 嵌入式Internet技
[嵌入式]
美高森美扩展IEEE 1588嵌入式解决方案
通过独特的器件和软件组合,提供业界领先的相位误差性能 致力于在电源、安全、可靠和性能方面提供差异化半导体技术方案的领先供应商美高森美公司(Microsemi Corporation,纽约纳斯达克交易所代号:MSCC)宣布新增相位兼容(phase-compliant)嵌入式解决方案,以应对无线基础设施市场中LTE和小型蜂窝的同步要求。美高森美IEEE 1588软件套装的API 4.6支持IEEE G.8275.1电信相位规范。此外,新的解决方案利用支持G.8273.2的先进算法实现业界领先的相位误差性能,在20多个网络节点上具有优于50纳秒(nS)的可靠性能。 美高森美时钟产品副总裁兼业务部门经理Maamou
[网络通信]
基于嵌入式系统的多媒体控制前台设计
系统的应用场合及意义 在一个大型会议系统或多媒体电教室系统中往往通过中央控制系统,实现整个系统的集中控制。点击LCD触摸屏,就能实现各种视像信号的快速切换(视频信号、电脑信号)、灯光系统的调光或自动快速模式设定,以及各种音响系统调节,摄像、监控、大屏幕投放、窗帘收放等一系列功能的程序化控制。 这里的中央控制系统实际上是由一个带处理器的智能控制平台和带多媒体设备接口的多路继电器组成,前台控制器可以设计成固定的台式模式,也可以设计成便于携带的手持设备,它往往是通过无线方式控制多路继电器主机,进而控制各种多媒体设备的开关及运行。嵌入式系统的发展为这一媒体控制器提供了一个可靠的平台,而嵌入式处理器的更新换代则意味着这个平台将更加
[嵌入式]
基于嵌入式的远程测试控制技术
以往采用邮寄或本地维修为主的通信设备测试、维修方式,因为在业务力量、时间、经费、效率等方面存在诸多弊端,已逐渐不能满足实际要求。随着通信测试及网络技术的迅猛发展,通过互联网络,将本地故障设备的测试结果传送到远端,由远端的专家进行诊断,充分发挥二者的优势,能极大地提高维修效率、缩短维修周期、节约维修成本,是对常规维修模式的一种挑战。该方案原理比较清晰、易懂,实现起来较容易。本文所讨论的远程控制就是为解决这个问题而提出的。 1 总体方案 本应用是在测试终仪中增加网络接口模块,以互联网为传输平台,在远端接入诊断PC而实现远程控制及诊断功能的,其框图如图1所示。 诊断专家人员可在诊断PC上通过Internet向异地测试仪发
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved