📄 ——用51单片机控制rtl8019as实现以太网通讯.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0062)http://www.21ic.com/new_info/news/files/news/2003108144615.asp -->
<HTML><HEAD><TITLE>——用51单片机控制RTL8019AS实现以太网通讯</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TD {
FONT-SIZE: 12px
}
INPUT {
FONT-SIZE: 12px; font-fammily: verdana,宋体
}
A:link {
FONT-SIZE: 12px; COLOR: #0000ff; LINE-HEIGHT: 16px; TEXT-DECORATION: underline
}
A:visited {
FONT-SIZE: 12px; COLOR: #660066; LINE-HEIGHT: 16px; TEXT-DECORATION: underline
}
A:hover {
FONT-SIZE: 12px; COLOR: #ff0000; TEXT-DECORATION: underline
}
.unnamed1 {
FONT-SIZE: 12px; FONT-FAMILY: "Arial", "Helvetica", "sans-serif"
}
.white {
FONT-SIZE: 12px; COLOR: #ffffff; LINE-HEIGHT: 16px
}
.b:link {
FONT-SIZE: 12px; COLOR: #3366cc; LINE-HEIGHT: 18px; TEXT-DECORATION: underline
}
.b:visited {
FONT-SIZE: 12px; COLOR: #813f1b; LINE-HEIGHT: 18px; TEXT-DECORATION: none
}
.b:hover {
FONT-SIZE: 12px; COLOR: #ffa037; LINE-HEIGHT: 18px; TEXT-DECORATION: underline
}
.148xg {
FONT-SIZE: 14px; COLOR: #0000ff; LINE-HEIGHT: 14pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: underline
}
.128dt {
FONT-SIZE: 14px; COLOR: #9999cc; LINE-HEIGHT: 14pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.heigh150 {
LINE-HEIGHT: 150%
}
</STYLE>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=5>
<TABLE cellSpacing=0 cellPadding=0 width=768 align=center border=0>
<TBODY>
<TR>
<TD align=middle width=168 height=80><IMG
src="——用51单片机控制RTL8019AS实现以太网通讯.files/21ic.gif"></TD>
<TD width=472>
<SCRIPT language=javascript
src="——用51单片机控制RTL8019AS实现以太网通讯.files/ads.htm"></SCRIPT>
</TD>
<TD height=80>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=b12 align=middle height=30><FONT
face="Arial, Helvetica, sans-serif" color=#000000>
<SCRIPT language=JavaScript
src="——用51单片机控制RTL8019AS实现以太网通讯.files/date.js"></SCRIPT>
</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=1 width=768 align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width=766 align=left border=0>
<TBODY>
<TR bgColor=#d8d6ba>
<TD width=3 height=20></TD>
<DIV id=Position></DIV>
<TD width=378>
<FORM name=email
action=http://www.21icsearch.com/buzi/mail2/chkemail.asp method=post
target=_blank><B>电子工程周刊:</B> <INPUT class=main
style="BORDER-RIGHT: #0097cf 1px solid; BORDER-TOP: #0097cf 1px solid; BORDER-LEFT: #0097cf 1px solid; BORDER-BOTTOM: #0097cf 1px solid; BACKGROUND-COLOR: #ffffff"
maxLength=255 size=30 value=输入您的Email name=email> <INPUT class=jbutton type=submit value=订阅> </TD></FORM>
<DIV></DIV>
<DIV id=Time></DIV>
<DIV id=Image></DIV>
<DIV id=Title></DIV>
<TD width=418>
<MARQUEE onmouseover=this.scrollDelay=99000
onmouseout=this.scrollDelay=80 scrollAmount=2 scrollDelay=80
width="80%"><FONT color=#cc0000><IMG height=12
src="——用51单片机控制RTL8019AS实现以太网通讯.files/xilan_arrow.gif"
width=16>每周自动接收行业新闻,技术资料,设计文章</FONT></MARQUEE></TD>
<DIV></DIV>
<TD width=9></TD></TR></TBODY></TABLE>
<DIV></DIV>
<DIV id=Time></DIV>
<DIV id=Image></DIV>
<DIV id=Title><TD< td></DIV></TD></TR></TBODY></TABLE></TD></TR></TABLE><BR>
<TABLE cellSpacing=0 cellPadding=0 width=768 align=center border=0>
<TBODY>
<TR>
<TD vAlign=top width=617 height=2>
<TABLE cellSpacing=0 cellPadding=0 width=583 align=center border=0>
<TBODY>
<TR>
<TD align=middle height=31><FONT size=4><B>用51单片机控制RTL8019AS实现以太网通讯
</B></FONT></TD></TR>
<TR>
<TD align=middle height=15>文章作者:曹 宇 魏 丰 胡士毅<BR>文章类型:设计应用
文章加入时间:2003年10月8日14:46</TD></TR>
<TR>
<TD align=right><FONT color=#cc0000>文章出处:电子技术应用</FONT> </TD></TR>
<TR>
<TD height=15>
<HR width="100%" noShade SIZE=1>
</TD></TR>
<TR>
<TD height=15>
<TABLE cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE><BR></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=530 align=center border=0>
<TBODY>
<TR>
<TD class=heigh150 height=15>
<DIV id=Content>
<P class=MsoNormal><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
<B>摘要:</B></SPAN>介绍以太网的帧协议和以太网控制芯片RTL8019AS的结构特性;介绍51单片机控制RTL8019AS实现以太网通讯的硬件设计方案;采用C51语言实现ARP协议(地址解析协议),并进行了系统的调试与验证。</P>
<P class=MsoNormal><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
<B>关键词:</B></SPAN>RTL8019AS Ethernet 51单片机 TCP/IP协议</P>
<P
style="TEXT-INDENT: 30px">互联网络硬件、软件的迅猛发展,使得网络用户呈指数增长,在使用计算机进行网络互联的同时,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备在逐步地走向网络化,以便共享网络中庞大的信息资源。在电子设备日趋网络化的背景下,利用廉价的51单片机来控制RTL8019AS实现以太网通讯具有十分重要的意义。</P>
<P style="TEXT-INDENT: 0px"><B>1 以太网(Ethernet)协议</B></P>
<P
style="TEXT-INDENT: 30px">一个标准的以太网物理传输帧由七部分组成(如表1所示,单位:字节)。<BR><BR><B>表1
以太网的物理传输帧结构表</B></P>
<TABLE height=53 borderColorDark=#ffffff width="100%"
borderColorLight=#000000 border=1>
<TBODY>
<TR class=main>
<TD align=middle width="14%" height=11>PR</TD>
<TD align=middle width="14%" height=11>SD</TD>
<TD align=middle width="14%" height=11>DA</TD>
<TD align=middle width="14%" height=11>SA</TD>
<TD align=middle width="14%" height=11>TYPE</TD>
<TD align=middle width="15%" height=11>DATA</TD>
<TD align=middle width="15%" height=11>FCS</TD></TR>
<TR class=main>
<TD align=middle width="14%" height=12>同步位</TD>
<TD align=middle width="14%" height=12>分隔位</TD>
<TD align=middle width="14%" height=12>目的地址</TD>
<TD align=middle width="14%" height=12>源地址</TD>
<TD align=middle width="14%" height=12>类型字段</TD>
<TD align=middle width="15%" height=12>数据段</TD>
<TD align=middle width="15%" height=12>帧校验序列</TD></TR>
<TR class=main>
<TD align=middle width="14%" height=12>7</TD>
<TD align=middle width="14%" height=12>1</TD>
<TD align=middle width="14%" height=12>6</TD>
<TD align=middle width="14%" height=12>6</TD>
<TD align=middle width="14%" height=12>2</TD>
<TD align=middle width="15%" height=12>46~1500</TD>
<TD align=middle width="15%" height=12>4</TD></TR></TBODY></TABLE>
<P
style="TEXT-INDENT: 30px">除了数据段的长度不定外,其他部分的长度固定不变。数据段为46~1500字节。以太网规定整个传输包的最大长度不能超过1514字节(14字节为DA、SA、TYPE),最小不能小于60字节。除去DA、SA、TYPE14字节,还必须传输46字节的数据,当数据段的数据不足46字节时需填充,填充字符的个数不包括在长度字段里;超过1500字节时,需拆成多个帧传送。事实上,发送数据时,PR、SD、FCS及填充字段这几个数据段由以太网控制器自动产生;而接收数据时,PR、SD被跳过,控制器一旦检测到有效的前序字段(即PR、SD),就认为接收数据开始。<IMG
height=432 hspace=1 src="——用51单片机控制RTL8019AS实现以太网通讯.files/6a.gif"
width=335 align=right vspace=1 border=0></P>
<P style="TEXT-INDENT: 0px"><B>2 RTL8019AS以太网控制器简介</B></P>
<P
style="TEXT-INDENT: 30px">由台湾Realtek公司生产的RTL8019AS以太网控制器,由于其优良的性能、低兼的价格,使其在市场上10Mbps网卡中占有相当的比例。</P>
<P style="TEXT-INDENT: 30px">2.1 主要性能</P>
<P style="TEXT-INDENT: 30px">(1)符号Ethernet
II与IEEE802.3(10Base5、10Base2、10BaseT)标准;</P>
<P style="TEXT-INDENT: 30px">(2)全双工,收发可同时达到10Mbps的速率;</P>
<P style="TEXT-INDENT: 30px">(3)内置16KB的SRAM,用于收发缓冲,降低对主处理器的速度要求;</P>
<P
style="TEXT-INDENT: 30px">(4)支持8/16位数据总线,8个中断申请线以及16个I/O基地址选择;</P>
<P
style="TEXT-INDENT: 30px">(5)支持UTP、AUI、BNC自动检测,还支持对10BaseT拓扑结构的自动极性修正;</P>
<P style="TEXT-INDENT: 30px">(6)允许4个诊断LED引脚可编程输出;</P>
<P style="TEXT-INDENT: 30px">(7)100脚的PQFP封装,缩小了PCB尺寸。</P>
<P style="TEXT-INDENT: 30px">2.2 内部结构</P>
<P
style="TEXT-INDENT: 30px">RTL8019AS内部可分为远程DMA接口、本地DMA接口、MAC(介质访问控制)逻辑、数据编码解码逻辑和其他端口。内部结构如图1所示。</P>
<P
style="TEXT-INDENT: 30px">远程DMA接口是指单片机对RTL8019AS内部RAM进行读写的总线,即ISA总线的接口部分。单片机收发数据只需对远程DMA操作。本地DMA接口是把RTL8019AS与网线的连接通道,完成控制器与网线的数据交换。</P>
<P
style="TEXT-INDENT: 30px">MAC(介质访问控制)逻辑完成以下功能:当单片机向网上发送数据时,先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令;当RTL8019AS完成了上帧的发送后,再开始此帧的发送。RTL819接收到的数据通过MAC比较、CRC校验后,由FIFO存到接收缓冲区;收满一帧后,以中断或寄存器标志的方式通知主处理器。FIFO逻辑对收发数据作16字节的缓冲,以减少对本地DMA请求的频率。</P>
<P style="TEXT-INDENT: 30px">2.3 内部RAM地址空间分配</P>
<P
style="TEXT-INDENT: 30px">RTL8019AS内部有两块RAM区。一块16K字节,地址为0x4000~0x7fff;一块32字节,地址为0x0000~0x001f。RAM按页存储,每256字节为一页。一般将RAM的前12页(即0x4000~0x4bff)存储区作为发送缓冲区;后52页(即0x4c00~0x7fff)存储区作为接收缓冲区。第0页叫Prom页,只有32字节,地址为0x0000~0x001f,用于存储以太网物理地址。</P>
<P style="TEXT-INDENT: 30px">要接收和发送数据包就必须通过DMA读写RTL8019AS内部的16KB
RAM。它实际上是双端口的RAM,是指有两套总线连接到该RAM,一套总线RTL8019AS读或写该RAM,即本地DMA;另一套总线是单片机读或写该RAM,即远程DMA。</P>
<P style="TEXT-INDENT: 30px">2.4 I/O地址分配</P>
<P
style="TEXT-INDENT: 30px">RTL8019AS具有32位输入输出地址,地址偏移量为00H~1FH。其中00H~0FH共16个地址,为寄存器地址。寄存器分为4页:PAGE0、PAGE1、PAGE2、PAGE3,由RTL8019AS的CR(Command
Register命令寄存器)中的PS1、PS0位来决定要访问的页。但与NE2000兼容的寄存器只有前3页,PAGE3是RTL8019AS自己定义的,对于其他兼容NE2000的芯片如DM9008无效。远程DMA地址包括10H~17H,都可以用来做远程DMA端口,只要用其中的一个就可以了。复位端口包括18H~1FH共8个地址,功能一样,用于RTL8019AS复位。</P>
<P style="TEXT-INDENT: 0px"><B>3 接口电路设计</B></P>
<P
style="TEXT-INDENT: 30px">下面介绍51系列单片机与RTL8019AS的接口电路,实现的网络接口采用UTP(无屏蔽双绞线)RJ-45接口。</P>
<P
style="TEXT-INDENT: 30px">图2给出了89C52单片机控制RTL8019AS实现以太网通讯的接口电路框图。用到的主要芯片有80C52、RTL8019AS、93C46(64×16bit的EEPROM)、74HC573(8位锁存)、62256(32K字节的RAM)。为分配好地址空间,采用对93C46进行读(或写)操作来设置RTL8019AS的端口I/O基地址和以太网物理地址。</P>
<P style="TEXT-INDENT: 30px">93C46是采用4线SPI串行接口的Serial
EEPROM,容量为1Kbit(64×16bit),主要保存RTL8019AS的配置信息。00H~03H的地址空间用于存储RTL8019AS内配置寄存器CONFIG1~4的上电初始化值;地址04H~11H存储网络节点地址即物理地址;地址12H~7FH内存储即插即用的配置信息。RTL8019AS通过引脚EECS、EESK、EEDI控制93C46的CS、SK、DI引脚,通过EEDO接收93C46的DO引脚的状态。RTL8019AS复位后读取93C46的内容并设置内部寄存器的值,如果93C46中内容不正确,RTL8019AS就无法正常工作。先通过编程器如ALL07把配置好的数据写入93C46,再焊入电路。</P>
<P
style="TEXT-INDENT: 30px">对93C46进行数据配置:数据00H写入93C46的地址00H内;93C46地址04H~0AH中存放的是物理地址,可以写入设置所需的物理地址值,或不修改,采用原始值为物理地址。通过编程器读出04H~0AH的原始值为52544CC59906,即所采用的物理地址。</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -