新型以太网控制器ENC28J60及其接口技术

发布者:幸福约定123最新更新时间:2006-09-04 来源: EDN China关键字:寄存器  时钟  复位 手机看文章 扫描二维码
随时随地手机看文章

引言

ENC28J60是Microchip Technology(美国微芯科技公司)近期推出的28引脚独立以太网控制器。

在此之前,嵌入式系统开发可选的独立以太网控制器都是为个人计算机系统设计的,如RTL8019、AX88796L、DM9008、 CS8900A、LAN91C111等。这些器件不仅结构复杂,体积庞大,且比较昂贵。目前市场上大部分以太网控制器的封装均超过80引脚,而符合 IEEE 802.3协议的ENC28J60只有28引脚,既能提供相应的功能,又可以大大简化相关设计,减小空间。


            图1  ENC28J60的硬件连接

1 结构和功能

采用业界标准串行外设接口(SPI)的以太网控制器ENC28J60具有以下主要特征:

  ◆ 符合IEEE 802.3协议。内置10 Mbps以太网物理层器件(PHY)及媒体访问控制器(MAC),可按业界标准的以太网协议可靠地收发信息包数据。
  ◆ 具有可编程过滤功能。特殊的过滤器,包括Microchip的可编程模式匹配过滤器,可自动评价、接收或拒收Magic Packet,单播(Unicast)、多播(Multicast)或广播(Broadcast)信息包,以减轻主控单片机的处理负荷。
  ◆ 10 Mbps SPI接口。业界标准的串行通信端口,使得低至18引脚的8位单片机也具有网络连接功能。
  ◆ 可编程8 KB双端口SRAM缓冲器。以高效的方式进行信息包的存储、检索和修改,以减轻主控单片机的内存负荷。该缓冲存储器提供了灵活可靠的数据管理机制。

2 硬件设计

ENC28J60的硬件设计需要注意复位电路时钟振荡器,振荡器启动定时器,时钟输出引脚,变压器、终端和其他外部器件,输入/输出电平等几个方面。(图1可供参考)

2.1 复位电路

ENC28J60有上电复位(Power-on Reset)功能,RESET引脚上的低电平使ENC28J60进入复位模式;RESET引脚内部有弱上拉电阻。ENC28J60的硬件连接如图1所示。

2.2 时钟振荡器

ENC28J60需要一个25 MHz的晶振,接在OSC1和OSC2脚上;也可由外部时钟信号来驱动。此时3.3 V的外部时钟接在OSC1脚上,OSC2断开或者通过一个电阻接地来降低系统噪声。

2.3 振荡器启动定时器

ENC28J60内部有一个振荡器启动时钟OST(Oscillator Startup Timer),上电7 500个时钟周期(300 μs),OST期满后内部的PHY方能正常工作。这时不能发送或者接收报文。上位机可通过检测ENC28J60内部ESTAT寄存器中的CLKRDY位的状态来决定是否可设置发送或接收报文。

需要注意的是,当ENC28J60上电复位或者从PowerDown模式下唤醒时,必须检测ESTAT寄存器中的CLKRDY是否置位。只有CLKRDY置位后才能发送、接收报文,访问相关寄存器。

2.4 时钟输出引脚

CLKOUT引脚可为系统中的其他设备提供时钟源。上电后CLKOUT引脚保持低电平,复位结束后OST计数。OST期满后,CLKOUT输出频率为6.25 MHz的时钟。

时钟输出功能通过ECOCON寄存器禁止、调整和使能。时钟输出可设置为1、2、3、4、8分频,上电后默认为4分频。ECOCON寄存器配置改变以后,CLKOUT引脚有80~320 ns的延迟(保持低电平),然后按照设定输出固定频率的时钟信号。

软件或者RESET引脚上的复位信号不会影响ECOCON寄存器的状态。PowerDown模式也不会影响时钟的输出。当禁止时钟输出时,CLKOUT引脚保持低电平。

2.5 变压器、终端和其他外部器件

为了实现以太网接口ENC28J60,需要几个标准的外部器件: 脉冲变压器、偏置电阻、储能电容和去耦电容。

差分输入引脚(TPIN+/TPIN-),需要一个1∶1变比的脉冲变压器来实现10BASET。差分输出引脚(TPOUT+/TPOUT -),需要一个变比为1∶1、带中心抽头的脉冲变压器。变压器需要有2 kV或更高的隔离能力,防静电。对变压器的详细要求请参考芯片手册第16章“电气特性”。每个部分都需要通过2个50 Ω、精度为1%的电阻和1个0.01 μF的电容串联后接地。

笔者采用的是中山汉仁公司的集成以太网隔离变压器RJ45插座HR901170A。

所有的供电引脚(VDD、VDDOSC、VDDPLL、VDDRX、VDDTX)必须接在外部的同一个3.3 V电源上;同理,所有的地(VSS、VSSOSC、VSSPLL、VSSTX)必须接在同一个外部地上。每个供电引脚和地之间应当接1个0.1 μF的陶瓷电容去耦(电容要尽可能接近供电引脚)。

驱动双绞线接口需要较大的电流,所以电源线应尽可能宽,与引脚的连接尽可能短,以降低电源线内阻的消耗。

2.6 输入输出电平

ENC28J60是一个3.3 V的CMOS器件,但它设计得非常容易统一到5 V系统中去:SPI、CS、 SCK、SI输入和RESET引脚一样,都可承受5 V电压。当SPI和中断输入与3.3 V驱动的CMOS输出不兼容时,可能需要一个单向的电平转换器。74HCT08 (四与门), 74ACT125(四三态缓冲器)和许多具有TTL电平输入的5 V CMOS缓冲器芯片都可以提供所需的电平转换。

2.7 LED配置

LEDA和LEDB引脚在复位时支持极性自动检测。既可直接驱动LED,又可灌电流驱动。复位时ENC28J60检测LED的连接,并按照 PHLCON寄存器的默认设置来驱动。运行过程中的LED极性转换直到下一次系统复位后才能被检测到。LEDB的连接比较特殊,在复位过程中检测它的连接,决定如何初始化PHCON1寄存器的PDPXMD位。如果LEDB直接驱动LED,则PHCON1.PDPXMD位被清零,PHY工作在半双工模式;如果LEDB吸收反向电流点亮LED,则PHCON1.PDPXMD被置位,PHY工作在全双工模式;如果LEDB没有连接,则 PHCON1.PDPXMD复位后的值不确定。这时主控制器必须适当设置该位,以使PHY工作在所需的状态(半双工或全双工)。

3 软件接口

3.1 SPI接口

SPI接口( Serial Peripheral Interface )是一种同步、全双工串行接口,基于主从配置,是一个4线接口——主出/从入(MOSI),主入/从出(MISO),串行时钟(SCK),从机选择(SSEL)。

在同一总线上可以有多个主机或者从机,但同一时刻只能有一个主机和一个从机能够进行通信。在一次数据传输过程中,数据是同步进行发送和接收的:主机向从机发送1字节数据,从机也向主机返1字节数据。数据传输原则上是全双工的;但实际上,大多数情况下只有一个方向上的数据流包含有意义的数据。

SPI格式的主要特性是SCK信号的无效状态和相位,数据传输的时钟由主机提供。常用的时钟设置基于时钟极性(CPOL)和时钟相位 (CPHA)两个参数,CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于从机输出数据位的时钟相位。CPOL和CPHA的设置决定了数据取样的时钟沿。
取决于CPOL和CPHA的设置不同,SPI共有4种模式,如表1所列。

  表1 SPI的4种模式

  ?

3.2 ENC28J60与单片机的连接

ENC28J60与微控制器MCU的连接是通过SPI实现的,支持10 Mbps。对于没有SPI接口的芯片可通过用I/O口模拟SPI接口的方式实现。ENC28J60仅支持SPI模式0,0。

微控制器可通过SPI接口发送命令,访问ENC28J60的寄存器或读写接收/发送缓冲区,完成相关操作。复位也可通过SPI接口由软件实现,软件复位不影响RESET引脚的状态。

ENC28J60有两个中断输出,分别用于事件中断触发和网络唤醒主机。

CPU采用LPC2138用宏定义实现SPI口读写操作。SOSPDR为SPI数据寄存器,该双向寄存器为 SPI提供发送和接收的数据,发送数据通过写该寄存器提供,SPI接收的数据可从该寄存器读出。SOSPSR为SPI状态寄存器。在对SPI接口进行操作之前需对其初始化。下面给出读/写SPI接口的源代码。

#define READSPI( Val )
{
  S0SPDR = 0x00;
  while( 0 == (S0SPSR & 0x80));
  Val = S0SPDR;
}
#define WRITESPI( Val )
{
  if ( 0 == (S0SPSR & 0x40) ) {
    S0SPDR = Val;
    while( 0 == (S0SPSR & 0x80) );
  }
}

亦可用LPC2138的SSP来连接ENC28J60,需将其设置为SPI模式。应当注意到SSP有8帧的收/发 FIFO,如果处理不当将造成读/写错误。因为缓冲区的存在可能破坏读/写ENC28J60的时序。

对于没有SPI接口的单片机可采用普通I/O口模拟的方法实现SPI主机。此时须注意静态时时钟的无效状态和相位,以及输出数据位出现的时间;对ENC28J60操作期间片选必须保持有效(低电平),操作结束后返回低电平。根据ENC28J60的读/写波形很容易写出模拟SPI主机的程序。笔者曾在AT89S51上实现了模拟SPI主机读/写MCP2515的操作。

4 结论

笔者在LPC2138+ENC28J60+HR901170A平台上实现了以太网通信。相对于其他方案,该系统极为精简。对于没有开放总线的单片机,虽然有可能采用模拟并行总线的方式连接其他以太网控制器,但不管从效率还是性能上,都不如用SPI接口或采用通用I/O口模拟SPI接口连接 ENC28J60的方案。

可以看出,ENC28J60是极具特色的独立以太网控制器:SPI接口使得小型单片机也能具有网络连接功能;集成MAC和PHY无需其他外设;具有可编程过滤功能,可自动评价、接收或拒收多种信息包,减轻了主控单片机的处理负荷;内部继承可编程的8 KB双端口SRAM缓冲器,操作灵活方便。不足之处为仅支持10BASET。

参考文献

[1] Microchip Technology Inc. ENC28J60 StandAlone  Ethernet Controller with SPI Interface. http://www.microchip.com/.
[2]Philips Semiconductors. LPC213x User Manual. http://www.philipsmcu.com/.
[3] 周立功,张华,等. 深入浅出ARM7——LPC213x/LPC214x(上册). 北京:北京航空航天大学出版社,2005.

关键字:寄存器  时钟  复位 引用地址:新型以太网控制器ENC28J60及其接口技术

上一篇:基于MPC860的多规程用户业务接入设备研制
下一篇:基于Intel8274的机载同步通讯系统设计

推荐阅读最新更新时间:2024-05-07 15:53

msp430 看门狗寄存器定义方式
__no_init volatile union { unsigned short WDTCTL; /* Watchdog Timer Control */ struct { unsigned short WDTIS0 : 1; /* */ unsigned short WDTIS1 : 1; /* */ unsigned short WDTSSEL : 1; /* */ unsigned short WDTCNTCL : 1; /* */ unsigned short WDTTMSEL : 1; /* */ unsigned short WDTNMI
[单片机]
STM8 IAR新建寄存器工程
. 2. 3. 4.添加头文件目录 转化为相对目录 5.设置输出文件目录 6.设置仿真工具
[单片机]
STM8 IAR新建<font color='red'>寄存器</font>工程
泰克为高速串行数据接口测试推出新型时钟恢复仪器
泰克80A07基于SyntheSys Research提供的BERTScope CR技术 促进了串行数据检定和一致性测试的效率 俄勒冈州毕佛顿 –全球领先的测试、测量和监测解决方案供应商泰克公司(NYSE:TEK)1月29日宣布,泰克公司已与SyntheSys Research达成OEM协议,采用SyntheSys Research提供的高级时钟恢复仪器。根据协议,新的仪器将以泰克80A07 BERTScope CR的名称推向市场。该时钟恢复器为受压信号或劣化信号提供异常灵活的时钟恢复功能。该产品的推出旨在对当前高速串行数据设计实现更简便准确的一致性测试,在与泰克DSA8200取样示波器系统一起使用时,80A07将协助工程师简
[新品]
stm32 独立看门狗[操作寄存器+库函数]
以单片机为核心的微型计算机系统中,单片机经常会受到来自外界电磁场的干扰。 造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作。看门狗就是一种专门用于检测单片机程序运行状态的硬件结构。 stm32也是如此。 stm32 的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障时,它也仍然有效。这里需要注意的是独立看门狗的时钟是一个内部时钟,所以不是准确的40Khz,而是在30~60Khz之间的一个可变化的时钟,看门狗的时钟对时间的要求不是很精确,所以时钟有偏差可以接受。 本例直接操作寄存器实现验证独立看门狗的复位功能,设定一个800ms的喂狗时间,在主函数中实现LED闪烁,
[单片机]
简述stm32各时钟系统的一些区别
  时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是必要的,有助于深入理解STM32。   下面是从网上找的一个STM32时钟框图,比《STM32中文参考手册》里面的是中途看起来清晰一些:   重要的时钟:   PLLCLK,SYSCLK,HCKL,PCLK1,PCLK2 之间的关系要弄清楚;   1、HSI:高速内部时钟信号 stm32单片机内带的时钟 (8M频率) 精度较差   2、HSE:高速外部时钟信号 精度高 来源(1)HSE外部晶体/陶瓷谐振器(晶振) (2)HSE用户外部时钟   3、LSE:低速外部晶体 32.768kHz 主要提供一个精确的时钟源 一般作为RTC时钟使用   在ST
[单片机]
LPC2138+LCD12864显示实时时钟程序 keil与proteus联调
近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。32位嵌入式系统发展很快,32位单片机已逐渐占领8位机的市场,并以很高的性价比赢得了越来越多的用户的青睐。随着科技和工艺的进步,32位单片机的优势会更加突显出来,将会成为嵌入式系统的主流。在32位嵌入式系统中,基于ARM的应用占据了大部分份额。 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件
[单片机]
LPC2138+LCD12864显示实时<font color='red'>时钟</font>程序 keil与proteus联调
基于嵌入式系统的多媒体控制前台设计
  系统的应用场合及意义   在一个大型会议系统或多媒体电教室系统中往往通过中央控制系统,实现整个系统的集中控制。点击LCD触摸屏,就能实现各种视像信号的快速切换(视频信号、电脑信号)、灯光系统的调光或自动快速模式设定,以及各种音响系统调节,摄像、监控、大屏幕投放、窗帘收放等一系列功能的程序化控制。   这里的中央控制系统实际上是由一个带处理器的智能控制平台和带多媒体设备接口的多路继电器组成,前台控制器可以设计成固定的台式模式,也可以设计成便于携带的手持设备,它往往是通过无线方式控制多路继电器主机,进而控制各种多媒体设备的开关及运行。嵌入式系统的发展为这一媒体控制器提供了一个可靠的平台,而嵌入式处理器的更新换代则意味着这个平台
[嵌入式]
STM32开发 -- 时钟系统详解
上一篇文章讲了RTC,里面其实已经包含了时钟系统的介绍了。这篇文章将再详细的讲一下。 一、时钟系统框图 二、时钟系统 STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。  ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过7
[单片机]
STM32开发 -- <font color='red'>时钟</font>系统详解
小广播
热门活动
换一批
更多
最新网络通信文章
更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved