以太网控制器的嵌入式设备网络互连

发布时间:2010-6-24 20:03    发布者:我芯依旧
关键词: 控制器 , 嵌入式设备 , 网络互连 , 以太网
互联网络硬件、软件的迅猛发展,使得网络用户呈指数增长。在使用通用计算机进行网络互联的同时,各种家电设备、PDA、仪器仪表、工业生产中的数据的采集与控制等设备正在逐渐地走向网络化,以便共享互联网络中庞大的信息资源。以太网经过20年的发展,成为当今互联网络中底层链接不可缺少的部分。在某些应用领域,嵌入式设备在价格、体积及实时性等方面,有着标准计算机无法比拟的优点。嵌入式设备的网络化开发有着广阔的前景。在开发过程中,首先要解决的问题之一就是与以太网的接口问题:如何利用通用计算机的网络接口器件应用于嵌入式网络的开发。RTL8019AS以太网接口芯片正好能满足这一需要,它具有极佳的性价比。以下就几个方面来详细讨论其具体应用。

一、RTL8019AS以太网控制器简介

由台湾Realtek公司生产的RTL8019AS 以太网控制器,由于其优良的性能、低廉的价格,使其在市场上10Mbps网卡中占有相当的比例。

1.主要性能

(1)适应于Ethernet II 、IEEE802.3 、10Base5、10Base2、10BaseT;
(2)支持8位、16位数据总线
(3)全双工,收发可同时达到10Mbps的速率,具有睡眠模式,以降低功耗;
(4)内置16KB的SRAM,用于收发缓冲,降低对主处理器的速度要求;
(5)可连接同轴电缆和双绞线,并可自动检测所连接的介质;
(6)100 脚的TQFP封装,缩小PCB尺寸。

2.内部结构

按数据链路的不同,可以将RTL8019AS内部划分为远程DMA(remote DMA)通道和本地DMA(local DMA)通道两个部分。本地DMA完成控制器与网线的数据交换,主处理器收发数据只需对远程DMA操作。当主处理器要向网上发送数据时,先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令。RTL8019AS在完成了上一帧的发送后,再完成此帧的发送。RTL8019AS接收到的数据通过MAC比较、CRC校验后,由FIFO存到接收缓冲区,收满一帧后,以中断或寄存器标志的方式通知主处理器。原理框图如图1所示。


图1 RTL8019AS原理框图

在图1中,接收逻辑在接收时钟的控制下,将串行数据拼成字节送到FIFO和CRC;发送逻辑将FIFO送来的字节在发送时钟的控制下逐步按位移出,并送到CRC;CRC逻辑在接收时对输入的数据进行CRC校验,将结果与帧尾的CRC比较,如不同,该帧数据将被拒收,在发送时CRC对帧数据产生CRC,并附加在数据尾传送;地址识别逻辑对接收帧的目的地址与预先设置的本地物理地址进行比较,如不同且不满足广播地址的设置要求,该帧数据将被拒收;FIFO逻辑对收发的数据作16个字节的缓冲,以减少对本地DMA请求的频率。

3.数据帧的组成

标准的IEEE 802.3数据包由以下几个部分组成:前导位(preamle)、帧起始位(SFD)、目的地址(destination)、源地址(source)、数据长度(length)、数据(data)、帧校验字(FCS)。如图2所示,数据场的个数可从46B(Byte)~1500B(Byte),如一组要传送的数据为46Byte,就用零补足;超过1500Byte时,需要拆成多个帧传送。前导位、帧起始位和帧校验字仅供控制器本身用,主处理器收到的数据帧的组成依次包括:接收状态(1Byte )、下一帧的页地址指针(1Byte)、目的地址(6Byte)、源地址(6Byte)、数据长度/帧类型(2Byte)、数据场。数据长度/帧类型的值小于或等于1500Byte时,表示数据场的长度;反之,表示数据帧的类型。如值依次为 0x08,0x00,表示数据场为IP包;值依次为0x08,0x06 ,表示数据场为ARP包。


图2 IEEE802.3帧的组成
4.RTL8019AS的DMA操作

RTL8019AS 是针对PC机的ISA总线设计的。如运用于嵌入式设备中,则在硬件和软件的设计上应有一些特殊性。嵌入式设备的主处理器可通过其映射到16个I/O地址上的寄存器来完成对RTL8019AS的操作。其寄存器地址如表1所列。


需要指明的一点是,RTL8019AS的DMA与平时所说的DMA有点不同。RTL8019AS的local DMA操作是由控制器本身完成的,而其remote DMA 并不是在无主处理器的参与下,数据能自动移到主处理器的内存中,它的操作机制是这样的:主处理器先赋值于romote DMA 的起始地址寄存器RSAR0、RSAR1和字节计数器RBCR0、RBCR1,然后在RTL8019AS的DMA I/O地址上读写指定地址上的数据。

RTL8019AS内置的16KB 的SRAM可划分为接收缓冲和发送缓冲两个部分。缓冲以页为单位,每页256个字节,16KB的SRAM的页范围规定在0x40~0x80,由PSTART 和PSTOP寄存器来设定接收缓冲页的范围;由RSAR0、1和RBCR0、1寄存器来设定发送缓冲页的范围。CURR指向接收到的帧的起始页,Boundary指向还未读的帧的起始页。当CURR到达了接收缓冲页的底部,即与PSTOP相等时,CURR又会自动指向到PSTART处。与DMA有关的寄存器如图3所示。


图3 与DMA有关的寄存器

二、基于RTL8019AS的嵌入式设备网络互连设计方案

1.RTL8019AS的硬件电路设计

目前局域网常见的是采用双绞线为通信介质。图4为MOTOROLA的龙珠(Dragonball)处理器MC68VZ328(以下简称VZ328)和RTL8019AS的接口电路。RTL8019AS的工作电压为5V,而VZ328的工作电压为3.3V,所以RTL8019AS的输出需要电平的转换。在图4中,此电压的转换由U2 74F163245 完成。读数据时,D[0:15]数据经U2 送到VZ328;写数据时,D[0:15]送到RTL8019AS。 RTL8019AS在复位的上升沿锁定IOCS16脚的电平,其值决定数据总线的宽度:高电平时为16位总线方式,低电平时为8位总线方式。如挂接到8位主设备上,将以27kΩ的电阻下拉置地,D[8:15]空悬。为提高收发速度,图4采用16位数据总线方式。由于RTL8019AS没有外接初始化的EPROM,故其复位时命令寄存器(CR)的I/O地址的值为缺省值0X300,所以,为满足RTL8019AS的ISA时序,A5~A19的连接必须使其地址锁定在0X300,否则,就无法访问到RTL8019AS的寄存器。INT0中断脚经电平转换U4接到VZ328的IRQ6。VZ328以片选脚寻址RTL8019AS,接其端。在程序中,以I/O方式访问RTL8019AS,所以仅需要A[0:4]地址线,、接高电平关闭其MEMORY方式。


图4 RTL8019AS与68VZ328接口电路

2.RTL8019AS的软件编程

对RTL8019AS的软件操作,有查询和中断两种方式。在查询方式下,主程序通过CURR和Boundary两个寄存器的值来判断是否收到一帧数据。当Boundary与CURR不等时,说明接收缓冲区接收到了新的帧,主程序读取数据后,以读取帧的第二个字节(下一帧的页地址)更新Boundary,主程序循环跟踪CURR和Boundary达到数据的接收目的。主程序在发送一帧数据时,先要查TSR寄存器判断上一帧是否发送完毕。在实时多任务的环境,一般采用中断方式来处理RTL8019AS的收发。图5是一典型的中断处理程序(ISR)的流程。当主程序响应RTL8019AS的中断时,在ISR的入口,根据读取的中断状态寄存器(ISR)的值来确定程序的走向。


图 5 ISR流程图
本文地址:https://www.eechina.com/thread-13644-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表