?? ——用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 + -