微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 以太网控制器的嵌入式设备网络互连

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

时间:06-24 来源:互联网 点击:
互联网络硬件、软件的迅猛发展,使得网络用户呈指数增长。在使用通用计算机进行网络互联的同时,各种家电设备、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所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top