基于AVR高性能单片机的以太网接口设计

发布者:码字奇才最新更新时间:2009-05-26 来源: 现代电子技术关键字:Mega64  RTL8019AS  以太网接口 手机看文章 扫描二维码
随时随地手机看文章

  0 引 言

   随着互联网的迅速发展,各种家电设备、仪器仪表也在逐步走向网络化,以便共享网络信息资源、远程监控等,这也是嵌入式系统发展的趋势。而以太网作为目前应用最为广泛的局域网,在工业自动化和过程控制领域得到了越来越多的应用,因此,对于大量存在的8位微控制器而言,实现以太网通信具有重要的实际意义。现在应用较多的是基于51内核单片机的上网方案,由于处理能力的限制,要实现较复杂的网络传输和控制有点困难。本系统采用ATMEL公司的高性能单片机Mega64和10 Mb/s以太网控制芯片RTL8019AS实现了以太网接口,详细介绍了硬件电路的连接以及嵌入 式TCP/IP的实现,使单片机具有了互联网络的接入功能。

  1 硬件电路设计

  1.1 主要器件选择

   微控制器选用高性能的AVR单片机Mega64,AVR是ATMEL公司结合了成熟的51系列和PIC系列单片机的优点而推出的高性能8位单片机,具有性价比高、资源丰富、速度快、功耗低、开发方便等特点。Mega64采用RISC结构,工作频率可达16 MHz,完全满足运行多种网络协议的要求,片内具有4 KB的SRAM,64 KB的FLASH,以太网最大数据包为1 514 B,4 KB的RAM足够以太网帧的存储,64 KB的FLASH对于适当的程序以及简单的Web Page来说也是可以的,所以无需再外扩资源,大大简化了外围电路,提高了可靠性。

   以太网控制芯片选用的是台湾REALTEK公司生产的RTL8019AS,该芯片集成了介质访问控制子层(MAC)和物理层的性能,可以方便地设计基于ISA总线的系统。另外,它还具有与NE2000兼容、软件移植性好、与单片机接口简单、价格低货源好等优点,其主要

  功能特性如下:

   (1)符合EthernetⅡ与IEEE802.3(10Base5,10Base2,10BaseT)标准。

   (2)软件和8位及16位插槽的NE2000兼容。

   (3)全双工,收发可同时达到10 Mb/s的速率。

   (4)内置16 KB的SRAM,用于收发缓存,降低对主处理器的速度要求。

   (5)支持8/16位数据总线,8条中断申请线以及16个I/0基地址选择。

   (6)支持UTP,AUI,BNC自动检测以及对10BaseT拓扑结构的自动极性修正。

   (7)允许4个诊断LED引脚可编程输出。

  1.2 RTL8019AS与单片机的连接

   RTL8019AS支持三种工作方式:第一种为跳线方式,网络控制器的I/O地址和中断都由跳线决定;第二种为免跳线方式,I/O地址和中断由外接的E2PROM 93C46里的内容所决定;第三种为即插即用方式(PNP),I/O地址和中断都由软件或操作系统自动进行管理和配置,用户不必过多干预,当然这种方式要耗费系统资源。网络控制器采用哪种方式由RTL8019AS的65脚(JP)决定,本系统采用第一种即跳线方式,这时JP要接高电平;第三种方式一般用于PC机中,对于8位单片机来说无法实现,未用第二种方式又可以省掉一片93C46芯片,不但简化了硬件电路设计,而且降低了成本。

   RTL8019AS有两种复位方式:冷复位和热复位。给8019的复位引脚施加一个1μs以上的高电平就可以实现冷复位;先读再写8019的任意一个复位端口都可以实现热复位,这在PC机中用的较多。可以将8019的复位引脚和单片机的复位引脚相连,单片机复位的时候8019也复位,这种情况可以减少单片机的一个引脚的使用,但为了保证能够完全复位,可以在程序中进行热复位。然而Mega64为低电平复位,而8019为高电平复位,如果这样连接的话还需要加一个非门进行反相,鉴于Mega64的引脚较多,所以将8019的复位引脚连接到Mega64的一个I/O口上,由该引脚对8019进行冷复位。

   图1所示为RTL8019AS的部分电路图,其工作时钟为20 MHz。RTL8019AS的引脚悬空时,输入状态为低电平,因为芯片引脚内部已经接了一个100 kΩ的下拉电阻。AEN引脚为I/O端口操作允许使能脚,接地使地址一直处于有效;IOCSl6B引脚用一个27 kΩ的电阻下拉到地,复位时刻为低电平,选择8位总线模式;读写引脚IORB、IOWB分别与单片机的RD,WR引脚相连;8位数据总线SD0~sD7接到单片机的PA口;IOSO~IOS3为I/O基地址选择引脚,悬空设置为300H,所以SA5~SA7,SAl0~SAl9接地,SA8和SA9接高电平,真正用到的地址线只有SA0~SA4,接到单片机的地址线上;IRQS0~IRQS2为中断选择引脚,悬空选择中断INT0,实际上并没有使用中断,而是使用了查询方式;AUI引脚用于AUI接口外部MAU检测,决定使用AUI还是BNC接口,BNC接口方式支持8线双绞或同轴电缆,所以将该引脚悬空选择使用RJ45接口;SMEMRB和SMEMWB为存储器读写引脚,由于我们使用的是I/O模式读写网络芯片,所以将它们接高电平;TPIN和TPOUT为差分输入输出引脚,分别用来接收来自双绞线和向双绞线发送10 Mb/s的差分曼彻斯特编码信号,RTL8019AS需要经过隔离处理才能和RJ45接口相连,然后接入以太网,隔离低通滤波器选用的是20F001N,内部有两个传输变压器,用来传输信号以及抑制噪声干扰。

基于AVR高性能单片机的以太网接口设计

  2 系统软件实现

  2.1 RTL8019AS地址空间与寄存器

   RTL8019AS内部的16 KB的RAM用于收发缓冲,地址为Ox4000~0x7FFF,收发缓冲以页为单位,每页256 B,共64页,如果某页没有完全填满数据,则下包数据也不能继续使用该页,只能使用新的页。一般将前12页作为发送缓冲区,分为两个6页的缓冲区(因为一个最大数据包占6页),两个发送缓冲区交替使用,可提高发送效率,后52页作为接收缓冲区。该RAM是双端口的,具有两套总线,一套是RTL8019AS读写该RAM,即本地DMA;另一套是单片机读写该RAM,即远程DMA,要接收和发送数据包就必须对这块RAM进行DMA读写。

   RTL8019AS具有32位I/O地址,地址偏移量为00H~1FH,本系统中对应于300H~31FH,其中,00H~0FH为16个寄存器地址,寄存器分为4页,与NE2000兼容的只有前3页,第4页是RTL8019AS自己定义的,对于其他兼容NE2000的芯片无效,所以为了保证驱动程序对所有NE2000兼容的网卡都有效,不要去操作第4页的寄存器。10H~17H为8个远程DMA地址,都可以用来做远程DMA地址,使用其中一个即可,微控制器通过读写数据端口10H~17H实现对缓冲区的访问。18H~1FH共8个地址为复位端口,它们功能一样,使用其中一个即可,用于RTL8019AS的热复位。

  2.2 嵌入式TCp/IP实现

   TCP/IP协议族是一组不同层次上的多个协议的组合,分为链路层、网络层、传输层和应用层。对于8位单片机来说,由于其处理速度和存储能力的问题,要实现完整的TCP/IP协议栈是比较困难的,因此要根据其特点及自己的需求,对协议进行裁剪,保留其核心部分。该系统只实现了ARP,IP,ICMP,UDP,TCP协议,采用C语言编写。

   在链路层上,首先要解决RTL8019AS的驱动问题,驱动程序包括三部分:以太网接口芯片初始化程序、发送数据程序和接收数据程序,它们屏蔽了底层硬件处理细节,同时向上层软件提供与硬件无关的接口。驱动程序将已封装好的待发送数据按指定格式写入芯片并启动发送命令,8019会自动把数据包转换成物理帧格式在信道上传输;反之,8019收到物理信号后将其还原成数据,按指定格式存放在芯片RAM中以便主机程序取用,下面给出部分初始化程序,主要是对一些寄存器进行设置,其中,reg00~regof为宏定义,代表RTL8019AS内地址偏移量为00H~0FH的寄存器地址。

基于AVR高性能单片机的以太网接口设计

  页2的寄存器是只读的,页3的寄存器不是NE2000兼容的,所以均不用设置。首先选择为页O,网卡芯片为停止模式,因为还没有进行初始化,设置0x40~Ox4B为网卡的发送缓冲区,共12页,刚好存储2个最大的以太网数据包;0x4C~0x7F为网卡的接收缓冲区,共52页;刚开始时网卡没有接收到任何数据包,因此BNRY指向第一个接收缓冲区的页0x4C。设置完页O的寄存器后切换为页1,由于设计中没有使用93C46,因此需要在程序中指定芯片的物理地址,写入到PAR寄存器,然后启动芯片开始工作。读指针BN—RY和写指针CURR主要用来控制缓冲区的存取过程,保证能正确读出和写入数据。

   单片机负责RTL8019AS的初始化及通过控制RTL8019AS实现网络协议,进行数据的接收和发送等通信任务,主程序按照以太网数据帧分用的思路进行编写,即将单片机作为服务器端,初始化完成后使其处于监听状态。当有数据从RJ45过来时,RTL8019AS在接收和处理完以太网数据帧后传送给单片机,单片机对数据包进行分析,如果是ARP数据包,则程序转入ARP处理程序;如果是IP数据包且IP地址正确,则继续分析若是ICMP包,则调用ICMP处理程序,若是UDP或TCP数据包,则解包后将数据存储或从串口输出。反之,当有数据要发送时,单片机按照各层协议格式将数据打包,送入RTL8019AS的缓存区,由RTL8019AS将数据输出到局域网中,主程序的框架如下:

基于AVR高性能单片机的以太网接口设计

  在嵌入TCP/IP协议后,已经实现了以太网的接入,但要实现远程控制,还需要实现应用层协议,这需要网络层和传输层的支持,嵌入式TCP/IP协议在应用层上要求简单,本系统实现了一个HTTP协议。由于单片机的资源有限,采用静态网页访问的形式,使用HT—ML语言来编写,网页代码存储在Mega64的片内FLASH中。嵌入式系统把要传输的数据、参数等存入网页的相关位置,当有客户端请求连接时,这些数据信息通过HTTP协议沿TCP连接发送至浏览器,这样就可以在远端PC机的浏览器中访问存储在系统中的网页,从而实现远程访问及控制。

  3 结 语

   介绍了一种利用AVR单片机实现以太网接口电路的方法,硬件电路少,结构简单,使用方便。考虑到单片机的资源有限,只实现了与需要有关的部分协议,根据实际需求做适当的修改和完善就可应用于诸如远程抄表、信息家电的远程控制、智能小区等实时性要求不高的场合,为了提高数据传输速度和进行复杂的TCP/IP处理,可以扩展32 KB的外部RAM来提高单片机的数据吞吐量,同时外部RAM也可用作串行口的输入输出缓冲。

关键字:Mega64  RTL8019AS  以太网接口 引用地址:基于AVR高性能单片机的以太网接口设计

上一篇:Atmel推出具有高速通信功能的AVR32微控制器
下一篇:爱特梅尔推出即插即用主机侧加密认证 IC

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

单片机与以太网控制器RTL8029接口的VHDL设计
1 以太网控制器 台湾Realtek公司的以太网控制器是一种符合IEEE802.3以太网标准的控制器,有RTL8019、RTL8029和RTL8139等系列。其中RTL8019是ISA总线的,较易与8位MCU实现接口。RTL8029和RTL8139是PCI总线的,不能直接与8位的MCU接口,需要一个PCI接口进行转接。考虑到目前RTL8029在市场上较容易购买,故采用RTL8029以太网控制器作为网络接口。 RTL8029内部已经包含有整个网络接口层的协议 (PHY层和MAC层协议),因此应用起来较简单。用户不必考虑链路控制问题,而只需考虑单片机如何从RTL8029中去读TCP/IP协议的数据即可。 PCI总线信
[单片机]
单片机与<font color='red'>以太网</font>控制器RTL8029<font color='red'>接口</font>的VHDL设计
工业千兆以太网接口
Heinz Zenkner 博士,伍尔特电子独立顾问 无线网络的应用正变得越来越广泛,尤其在工业领域。在众多应用中,有些情况需要更可靠并且更安全的通信。使用智能传感器,和具备高效调制与编码技术的仪表可以建立工业无线传感器网络。 此类网络的传播特性好,带宽低,不过目前开发的大部分产品局限于低于 1 Mbit/s 的低数据量传输场景。 无线数据传输的方式天生不如有线网络可靠。因此,特别是在工业环境中,有时候有线网络是唯一可行的解决方案。 有线以太网 与无线网络类似,有线网络在终端之间以数据帧的方式进行传输。 目前, 通信速率有 100Base-TX (100 Mbit/s 快速以太网)、千兆以太网(1 Gbi
[工业控制]
工业千兆<font color='red'>以太网</font><font color='red'>接口</font>
基于LPC2210的RTL8019AS以太网驱动系统设计(三)
六.接收数据包模块 RTL8019AS接收数据有中断模式和查询模式两种。 Ø 采用中断模式时,需要在初始化程序中配置中断。当有一个正确的数据包到达时,RTL8019AS会产生一个中断信号,在中断处理程序中进行接收数据处理。 Ø 采用查询模式时,由主程序定时对接收缓冲区进行查询,当检测到有新的数据时,通过远程DMA方式将数据从RTL8019AS的RAM空间读出进行处理。 本驱动系统采用查询方式实现数据包的接收 6.1接收数据包模块的功能 在接收数据时,接收缓冲区构成一个循环FIFO队列。PSTART,PSTOP两个寄存器限定了循环队列的开始页和结束页,CURR为写入指针,受RTL8019芯片控制,BNRY为读出指针,有主机程序控制。
[单片机]
基于LPC2210的<font color='red'>RTL8019AS</font><font color='red'>以太网</font>驱动系统设计(三)
新型以太网控制器ENC28J60及其接口技术
引言 ENC28J60是Microchip Technology(美国微芯科技公司)近期推出的28引脚独立以太网控制器。 在此之前,嵌入式系统开发可选的独立以太网控制器都是为个人计算机系统设计的,如RTL8019、AX88796L、DM9008、 CS8900A、LAN91C111等。这些器件不仅结构复杂,体积庞大,且比较昂贵。目前市场上大部分以太网控制器的封装均超过80引脚,而符合 IEEE 802.3协议的ENC28J60只有28引脚,既能提供相应的功能,又可以大大简化相关设计,减小空间。             图1  ENC28J60的硬件连接 1 结构和功能 采用业界标准串行外设接口(
[应用]
10G以太网的UTOPIA接口设计与实现
摘要:介绍了10G以太网的技术特点、协议层结构及帧格式,并概述了UTOPIA接口。为了实现10G以太网的物理层和数据链路层之间的连接,采用UTOPIA leve14协议并介绍了实现10G以太网UTOPIA接口的设计方案与实现,给出了功能模块图。为降低芯片功耗,采用并行设计方案。 关键词:10G以太网 MAC UTOPIA XGMII 功耗 以太网以其成本低、高可靠性、安装简便、维护容易和易扩展等优点成为非常流行的局域网技术。从1973年问世至今,以太网不断改进,速率等级从10Mbps、100Mbps提高到1000Mbps,应用范围从局域网扩展到城域网。由于汇聚的1000Mbps需要更高速率的以太网技术,于是10G以太网应运而
[应用]
以太网接口芯片DM9000A在嵌入式系统中的应用
  以太网接口芯片DM9000A在嵌入式系统中的应用   目前,网络技术在电子产品中的应用越来越广,更多的嵌入式设备需要提供网络接口,以方便与外部互联通讯。现在流行的大多数嵌入式CPU(如ARM、PPC)都提供了此类接口,但对于一些相对复杂的嵌入式系统来说,可能需要扩展以太网口,以满足网络通讯需要。本文介绍一种新款网络接口芯片DM9000A,它可以很方便的实现与嵌入式CPU的接口,实现扩展以太网口的功能。    DM9000A   DM9000A是中国台湾DAVICOM公司推出的一款高速以太网接口芯片,其基本特征是:集成10/100M物理层接口;内部带有16K字节SRAM用作接收发送的FIFO缓存;支持8/16bit两种主
[单片机]
<font color='red'>以太网</font><font color='red'>接口</font>芯片DM9000A在嵌入式系统中的应用
浅谈AT91RM9200在以太网接口模块应用
0 引 言 在Internet飞速发展的今天,网络已经渗透到生活的方方面面,与网络的结合已经成为嵌入式系统发展的必然趋势。目前,ARM微处理器已经在多个领域中得到应用,各种基于ARM微处理器的设备应用数量已经远远超过了通用计算机,基于ARM微处理器的开发应用正成为数字时代的技术潮流。ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。 l AT91RM9200简介 AT91RM9200是基于ARM920T核的高性能、低功耗
[单片机]
用Ax88796实现SA1110的以太网接口
摘要:讨论嵌入式微处理器SA1110与以太网控制器Ax88796在实际应用中的硬件连接问题;给出软件设计方面的一些注意事项,为SA1110的网络应用提供一种参考。 关键词:嵌入式 SA1110 Ax88796 以太网 CPU MII   Intel公司的StrongARM SA1110是一款主要面向嵌入式应用的高性能32位微处理器,目前已经被广泛应用在PDA等手持设备上。SA1110最高主频可达206 MHz,具有内存管理单元(MMU)和大容量的指令/数据高速缓存(16 KB/8 KB),兼容SDRAM、SMROM等多种存储设备,并带有LCD和PCMCIA控制器。 1 Ax88796简介   Ax88796是台湾Asix
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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