MCS51在以太网卡RTL8019AS通信中的应用
MCS51在以太网卡RTL8019AS通信中的
应用
第14卷第3期
2006年6月
安徽建筑工业学院(自然科学版)
JournalofAnhuiInstituteofArchitecture&Industry
VoI_14NO.3
Jun.2006
MCSS1在以太网卡RTL8019AS通信中的应用
郑长勇,徐勇
(安徽建筑工业学院计算机系,合肥230022)
摘要:介绍了以太网的帧协议和以太网控制器芯片RTL8019AS.介绍了以89C52单片机为核心的以太网
通信系统的设计.介绍了系统的软,硬件设计的方法.文中给出了系统的硬件原理图,软件
图.
关键词:单片机;以太网;网卡
中图分类号:TP368.2文献标识码:A文章编号:1006—4540(2006)03—066—04 TheMCS51applicationinethernet networkcardRTL8019AScommunication ZHENGChang—yong,XUYong
(Dept.ofComputer&InformationEngineering,AnhuiInstistureofArchitecture&
;Industry,Hefei230022,China)
Abstract:ThisarticleintroducedEthernetandEthernetcontrollerRTLS019AS.Introduceda
scheme
ofEthernetcommunicationbasedonasingle—chip89C52.Thedesignofhardwareandsoftwaremeth—
odisrecommended.Inadditionthispaperhasgiventheblockdiagramofsystemandthesoftwa
re
flowchartinthesystem. Keywords:singlechip;ethernet;networkcard
网络接口卡通常称之为"网卡",网卡的工作 原理就是整理计算机上将发送的数据并将数据分 解为适当大小的数据包之后向网络发送出去,同 时接收通过网络传来的数据给计算机处理. 互联网络硬件,软件的迅速发展,使得网络用 户呈指数增长,在使用计算机进行网络互联的同 时,各种家电设备,仪器仪
以及工业生产中的数 据采集与控制设备在逐步地走向网络,以便共享网 络中庞大的信息资源.在电子设备日趋网络化的 背景下,利用廉价的51单片机来控制RTL8019AS 实现以太网通讯具有十分重要的意义. 1以太网帧协议
的以太网物理传输帧中,PR为同步位, 是56位的二进制;SD为分隔位,为8位的二进 制;DA为目的地址,以太网的地址为48位二进 制地址;SA为源地址,48位,即为发送断的网卡 的地址;TYPE为类型字段,表明该帧的数据是什 么类型的数据,16位;DATA为数据段,该段数据 不能超过1500字节;PAD为填充位,当数据段的 数据不足46字节时,后面补0…;FCS为32位数 据校验位.
2RTL80l9AS以太网控制器简介
RTL8019AS是由台湾Realtek公司生产的 以太网控制器,支持IEEES02.3;支持8位或16 位数据总线;内置16KB的SRAM,用于收发缓 冲;全双工,收发同时达到lOMbps;支持
收稿日期:2006—03—09
基金项目:安徽建筑工业学院硕士启动基金(2004045).
作者简介:郑长勇(1978--),男,讲师,硕士,主要研究方向为控制理论与工程.
第3期郑长勇,筝:MC$51在以太网卡RTI8019AS通信中的应用67
lOBase5,10Base2,10BaseT,并能自动检测所连 接的介质,在ISA总线网卡中占有相当比例. RTL8019AS与主机有3种模式,即跳线模式, PnP模式和RT模式.
2.1主要性能
(1)符合Ethernet?与IEEE802.3标准; (2)全双工,收发可同时达到10Mbps; (3)内置16kB的SRAM,用于收发缓冲,降 低对主处理器的速度要求;
(4)支持8/16位数据总线,8个中断申请线 以及16个I/O基地址选择;
(5)支持UTP,AUI,BNC的自动检测,还支 持对10BaseT拓扑结构的自动极性修正; (6)允许4个诊断LED引脚可编程输出; (7)100脚的PQFP封装,缩小PCB尺寸. 2.2内部结构
RTL8019AS内部可分为远程DMA接口,本 地DMA接口,MAC(介质访问控制)逻辑,数据 编码解码逻辑和其他端口.内部结构如图1 所示.
ISA总线接口
BootROM
EEPROML1
l旦rI叵
l旦r}
ENA(逻辑译码)逻辑
AUI~ElIl
图1RTI8019AS内部结构
远程DMA接口是单片机对RTL8019AS内 部RAM进行读写的总线,即ISA总线的接口部 分.单片机收发数据只需对远程DMA操作.本 地DMA接口是指RTL8019AS与网线的连接通 道,完成控制器与网线的数据交换.
MAC逻辑完成以下功能:当单片机向网络 发送数据时,先将一帧数据通过远程DMA通道 送到RTL8019AS中的发送缓冲区,然后发送传 送命令;当RTL8019AS完成了上一帧的发送后, 再开始此帧的发送.RTL8019AS接收到的数据 通过MAC比较,CRC校验后,由FIFO存到接收 缓冲区;收满一帧后,以中断或寄存器标志的方式 通知主处理器.FIFo逻辑对收发数据作16字 节的缓冲,以减少对本地DMA请求的频率. 2.3内部RAM地址空间分配和I/O地址分配 RTL8O19AS内部有2块RAM区.1块16k 字节,地址为0×4000,0×7fff,其中一部分作为 发送缓冲区,一部分作为接收缓冲区;1块32字 节,地址为0×0000,0×001f,用于存储以太网 物理地址.
要接收和发送数据包就必须通过DMA读写 RTL8019AS内部的16KBRAM.它实际上是双 端口的RAM,是指有两套总线连接到该RAM, 一
套总线是RTL8019AS读或写该RAM,即本地
DMA;另一套总线是单片机读或写该RAM,即远 程DMA.
RTL8019AS具有32个输入输出地址,地址 偏移量为O0H,1FH共16个地址,为寄存器地 址.寄存器地址分为4页:PAGE0,PAGEl, PAGE2,PAGE3.
2.4RTL8019AS罡lE线模式
(1)跳线模式:这种模式与早期的网络控制 器兼容.RTL819AS的端口基地址,中断口等 都由开关或跳线器决定.跳线模式简单,但是配 置模式麻烦.
(2)PnP模式:这种模式与微软的PnP模式 兼容,在这种模式下RTL8019AS的端口基地址, 中断口等都由EEPROM93C46决定,但需要PnP 芯片的识别.
(3)RT模式:为了避免PnP模式下的PnP 模式识别和配置过程,Realtek公司提供了RT模 式,在这种模式下RTL8019AS的端口基地址,中 断口等也是由EEPROM93C46决定的. 3接口电路设计
图2给出了51单片机89C52控制
RTL8019AS实现以太网通讯的接口电路框 图.用到的主要芯片有89C52,RTL8019AS,EE— PROM93C46,74HC573(8位锁存器),62256 (32K的RAM).
分析讨论:
(1)这里用单片机控制和驱动以太网卡
68安徽建筑工业学院(自然科学版)第14卷
RTL8019AS与PC机实现数据交换.单片机与 计算机之间通过RS232标准总线进行数据通讯, 再通过网卡发送数据与局域网进行数据通讯,接 收数据也采用类似的方法.需要电平转换芯片 (如MAx232E)实现它们之间的电平兼容; (2)利用单片机和外围62256RAM来实现 数据的存储操作,而没有利用RTL8O19AS内部 SRAM和ROM,主要是提高单片机数据传输速 度和实现复杂的通讯功能;同时外部RAM也用 做串行口的输入输出缓冲,使单片机可以高速的 吞吐数据,同时减少网卡编程控制的复杂性. Inr(n1Il
89C52D0一D7I,62258lLRTL8019ASP0.
0一Po.7_,JD0.D7L-_',SD0?SD7HI3罐LD一…
A793C46ITP+M^XALEA0.A7CSEECSTP?'SKEESK232EA8414
.PEEDoP2.O-P2.6:,A8.A14EEDILED0— fl==】_P2.
7'A15_.CELED1
坶广/RDV0RI_-,OEvOwIJ一.n?E銎帅lISA8一 SA9l.IORBT2
PCAA4IOWB
SAO.SA4SA5-SA7
?
T0RESETSA10-SA19
IIRSTDRVAEN
rNT0MOIOCS168
图289C52与网卡电路连接图
4软件程序设计
通过单片机编程3,主要控制网卡发送和接
收数据,总体软件框图如图3所示,主要包括单片 机初始化程序,网卡初始化程序,数据发送和接收 程序三部分.
终端设备
初始化
读取网卡
物理地址
单片机初始化部分
网卡初始
发送控制部分lI接收控制部分
图3总体软件备部分关系图
4.1网卡初始化程序
初始化页0与页1的相关寄存器,页2的寄 存器是只读的,不可以设置,页3的寄存器不是 NE2000兼容,不用设置.
(1)CR=0×21,选择页0的寄存器;
(2)TPSR=0×45,发送页的起始页地址,初 始化为指针向第一个发送缓冲区的页即0×40; (3)PSTART一0×4c,PSTOP一0×80,构 造缓冲环;
(4)BNRY一0×4c,设置指针;
(5)RCR=0×CC,设置接收配置寄存器; (6)TCR一0×e0,设置发送配置寄存器,启 用CRC自动生成和自动计校验,工作在正常模 式;
(7)DCR=0×c8,设置数据配置寄存器,使 用FIFO缓存,普通模式,8位数据DMA; (8)IMR:0×00,设置中断屏蔽寄存器,屏 蔽所有中断;
(9)CR=0×61,选择页1的寄存器; (10)CURR—O艾4d,CURR是RTL8019AS
写内存的指针;
(11)设置多址寄存器MAR0,MAR5; (12)设置网卡地址寄存器PAR0,PAR5; (13)CR一0×22,选择页1的寄存器,进入 正常工作状态.
4.2数据发送和接收程序
流程图_3如图4所示.
肇3期郑长勇,等:Mc51在以太网卡RTIg019AS通信中的应用69
5结论
Y
单片机检测到中断申请,开始通讯 从网卡接收缓冲区取地址数据ll将数据从RAM装入网卡发送缓冲区
与网卡地知,
仓N
Y
定时器开始计时
从网卡缓冲区读取
数据到RAM缓冲区
赛系)}I芝璺
27/IN
N
数据读完?
发送确认信
N
N
定时器开始计时
数据包发送
数据发完?
\/
Y
Y
人/重收
定时器超时?===—'(罂
y
IN\'
型确认二>yN
返回,准备下一轮处理
图4数据发送和接收通讯流程图
利用单片机实现网卡的通信,最主要的是解 决通讯协议的问题,可以把单片机控制网卡通信 的实现看作是局域网协议的简化,可以实现简单 的数据通信.因为网卡可通过单片机来控制,从 而摆脱了计算机环境的限制,因此在小型应用场 合有非常广阔的应用前景.
参考文献
1李朝晴.单片机原理及接口技术[M].北京:北京航空 航天大学出版社,1999.
2徐爱钧,彭秀华.单片机高级语言C51应用程序设计 [M].北京:电子工业出版社,1998. 3DouglasE.Comer.用TCP/IP进行网际互连(第2卷) EM3.北京:电子工业出版社,2000.