基于51單片機(jī)控制的以太網(wǎng)通訊實(shí)現(xiàn)_第1頁(yè)
基于51單片機(jī)控制的以太網(wǎng)通訊實(shí)現(xiàn)_第2頁(yè)
基于51單片機(jī)控制的以太網(wǎng)通訊實(shí)現(xiàn)_第3頁(yè)
基于51單片機(jī)控制的以太網(wǎng)通訊實(shí)現(xiàn)_第4頁(yè)
基于51單片機(jī)控制的以太網(wǎng)通訊實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于51單片機(jī)控制的以太網(wǎng)通訊實(shí)現(xiàn)摘要:介紹以太網(wǎng)的幀協(xié)議和以太網(wǎng)控制芯片RTL8019AS 的結(jié)構(gòu)特性;介紹51單片機(jī)控制RTL8019AS 實(shí)現(xiàn)以太網(wǎng)通訊的硬件設(shè)計(jì)方案;采用C51語(yǔ)言實(shí)現(xiàn)ARP 協(xié)議(地址解析協(xié)議),并進(jìn)行了系統(tǒng)的調(diào)試與驗(yàn)證。關(guān)鍵詞:RTL8019AS Ethernet 51單片機(jī) TCP/IP協(xié)議互聯(lián)網(wǎng)絡(luò)硬件、軟件的迅猛發(fā)展,使得網(wǎng)絡(luò)用戶呈指數(shù)增長(zhǎng),在使用計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)互聯(lián)的同時(shí),各種家電設(shè)備、儀器儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制設(shè)備在逐步地走向網(wǎng)絡(luò)化,以便共享網(wǎng)絡(luò)中龐大的信息資源。在電子設(shè)備日趨網(wǎng)絡(luò)化的背景下,利用廉價(jià)的51單片機(jī)來(lái)控制RTL8019AS 實(shí)現(xiàn)以太網(wǎng)

2、通訊具有十分重要的意義。 1 以太網(wǎng)(Ethernet)協(xié)議 一個(gè)標(biāo)準(zhǔn)的以太網(wǎng)物理傳輸幀由七部分組成(如表1所示,單位:字節(jié))。表1 以太網(wǎng)的物理傳輸幀結(jié)構(gòu)表PR SD DA SA TYPE DATA FCS同步位 分隔位 目的地址 源地址 類型字段 數(shù)據(jù)段 幀校驗(yàn)序列7 1 6 6 2 461500 4除了數(shù)據(jù)段的長(zhǎng)度不定外,其他部分的長(zhǎng)度固定不變。數(shù)據(jù)段為461500字節(jié)。以太網(wǎng)規(guī)定整個(gè)傳輸包的最大長(zhǎng)度不能超過(guò)1514字節(jié)(14字節(jié)為DA、SA、TYPE),最小不能小于60字節(jié)。除去DA、SA、TYPE14字節(jié),還必須傳輸46字節(jié)的數(shù)據(jù),當(dāng)數(shù)據(jù)段的數(shù)據(jù)不足46字節(jié)時(shí)需填充,填充字符的個(gè)數(shù)不

3、包括在長(zhǎng)度字段里;超過(guò)1500字節(jié)時(shí),需拆成多個(gè)幀傳送。事實(shí)上,發(fā)送數(shù)據(jù)時(shí),PR、SD、FCS及填充字段這幾個(gè)數(shù)據(jù)段由以太網(wǎng)控制器自動(dòng)產(chǎn)生;而接收數(shù)據(jù)時(shí),PR、SD被跳過(guò),控制器一旦檢測(cè)到有效的前序字段(即PR、SD),就認(rèn)為接收數(shù)據(jù)開(kāi)始。2 RTL8019AS以太網(wǎng)控制器簡(jiǎn)介由臺(tái)灣Realtek 公司生產(chǎn)的RTL8019AS 以太網(wǎng)控制器,由于其優(yōu)良的性能、低兼的價(jià)格,使其在市場(chǎng)上10Mbps 網(wǎng)卡中占有相當(dāng)?shù)谋壤?.1 主要性能(1)符號(hào)Ethernet II與IEEE802.3(10Base5、10Base2、10BaseT)標(biāo)準(zhǔn);(2)全雙工,收發(fā)可同時(shí)達(dá)到10Mbps 的速率; (

4、3)內(nèi)置16KB 的SRAM,用于收發(fā)緩沖,降低對(duì)主處理器的速度要求;(4)支持8/16位數(shù)據(jù)總線,8個(gè)中斷申請(qǐng)線以及16個(gè)I/O基地址選擇;(5)支持UTP、AUI、BNC自動(dòng)檢測(cè),還支持對(duì)10BaseT 拓?fù)浣Y(jié)構(gòu)的自動(dòng)極性修正;(6)允許4個(gè)診斷LED 引腳可編程輸出;(7)100腳的PQFP 封裝,縮小了PCB 尺寸。2.2 內(nèi)部結(jié)構(gòu)RTL8019AS 內(nèi)部可分為遠(yuǎn)程DMA 接口、本地DMA 接口、MAC(介質(zhì)訪問(wèn)控制)邏輯、數(shù)據(jù)編碼解碼邏輯和其他端口。內(nèi)部結(jié)構(gòu)如圖1所示。遠(yuǎn)程DMA 接口是指單片機(jī)對(duì)RTL8019AS 內(nèi)部RAM 進(jìn)行讀寫的總線,即ISA 總線的接口部分。單片機(jī)收發(fā)數(shù)據(jù)

5、只需對(duì)遠(yuǎn)程DMA 操作。本地DMA 接口是把RTL8019AS 與網(wǎng)線的連接通道,完成控制器與網(wǎng)線的數(shù)據(jù)交換。MAC(介質(zhì)訪問(wèn)控制)邏輯完成以下功能:當(dāng)單片機(jī)向網(wǎng)上發(fā)送數(shù)據(jù)時(shí),先將一幀數(shù)據(jù)通過(guò)遠(yuǎn)程DMA 通道送到RTL8019AS 中的發(fā)送緩存區(qū),然后發(fā)出傳送命令;當(dāng)RTL8019AS 完成了上幀的發(fā)送后,再開(kāi)始此幀的發(fā)送。RTL819接收到的數(shù)據(jù)通過(guò)MAC 比較、CRC校驗(yàn)后,由FIFO 存到接收緩沖區(qū);收滿一幀后,以中斷或寄存器標(biāo)志的方式通知主處理器。FIFO邏輯對(duì)收發(fā)數(shù)據(jù)作16字節(jié)的緩沖,以減少對(duì)本地DMA 請(qǐng)求的頻率。2.3 內(nèi)部RAM 地址空間分配RTL8019AS 內(nèi)部有兩塊RAM

6、 區(qū)。一塊16K 字節(jié),地址為0x40000x7fff;一塊32字節(jié),地址為0x00000x001f。RAM按頁(yè)存儲(chǔ),每256字節(jié)為一頁(yè)。一般將RAM 的前12頁(yè)(即0x40000x4bff)存儲(chǔ)區(qū)作為發(fā)送緩沖區(qū);后52頁(yè)(即0x4c000x7fff)存儲(chǔ)區(qū)作為接收緩沖區(qū)。第0頁(yè)叫Prom 頁(yè),只有32字節(jié),地址為0x00000x001f,用于存儲(chǔ)以太網(wǎng)物理地址。要接收和發(fā)送數(shù)據(jù)包就必須通過(guò)DMA 讀寫RTL8019AS 內(nèi)部的16KB RAM。它實(shí)際上是雙端口的RAM,是指有兩套總線連接到該RAM,一套總線RTL8019AS 讀或?qū)懺揜AM,即本地DMA;另一套總線是單片機(jī)讀或?qū)懺揜AM,即

7、遠(yuǎn)程DMA。2.4 I/O地址分配RTL8019AS 具有32位輸入輸出地址,地址偏移量為00H1FH。其中00H0FH共16個(gè)地址,為寄存器地址。寄存器分為4頁(yè):PAGE0、PAGE1、PAGE2、PAGE3,由RTL8019AS 的CR(Command Register命令寄存器)中的PS1、PS0位來(lái)決定要訪問(wèn)的頁(yè)。但與NE2000兼容的寄存器只有前3頁(yè),PAGE3是RTL8019AS 自己定義的,對(duì)于其他兼容NE2000的芯片如DM9008無(wú)效。遠(yuǎn)程DMA 地址包括10H17H,都可以用來(lái)做遠(yuǎn)程DMA 端口,只要用其中的一個(gè)就可以了。復(fù)位端口包括18H1FH共8個(gè)地址,功能一樣,用于R

8、TL8019AS 復(fù)位。3 接口電路設(shè)計(jì)下面介紹51系列單片機(jī)與RTL8019AS 的接口電路,實(shí)現(xiàn)的網(wǎng)絡(luò)接口采用UTP(無(wú)屏蔽雙絞線)RJ-45接口。圖2給出了89C52單片機(jī)控制RTL8019AS 實(shí)現(xiàn)以太網(wǎng)通訊的接口電路框圖。用到的主要芯片有80C52、RTL8019AS、93C46(64×16bit的EEPROM)、74HC573(8位鎖存)、62256(32K字節(jié)的RAM)。為分配好地址空間,采用對(duì)93C46進(jìn)行讀(或?qū)懀┎僮鱽?lái)設(shè)置RTL8019AS 的端口I/O基地址和以太網(wǎng)物理地址。93C46是采用4線SPI 串行接口的Serial EEPROM,容量為1Kbit(64

9、×16bit),主要保存RTL8019AS 的配置信息。00H03H的地址空間用于存儲(chǔ)RTL8019AS 內(nèi)配置寄存器CONFIG14的上電初始化值;地址04H11H存儲(chǔ)網(wǎng)絡(luò)節(jié)點(diǎn)地址即物理地址;地址12H7FH內(nèi)存儲(chǔ)即插即用的配置信息。RTL8019AS通過(guò)引腳EECS、EESK、EEDI控制93C46的CS、SK、DI引腳,通過(guò)EEDO 接收93C46的DO 引腳的狀態(tài)。RTL8019AS 復(fù)位后讀取93C46的內(nèi)容并設(shè)置內(nèi)部寄存器的值,如果93C46中內(nèi)容不正確,RTL8019AS就無(wú)法正常工作。先通過(guò)編程器如ALL07把配置好的數(shù)據(jù)寫入93C46,再焊入電路。對(duì)93C46進(jìn)行數(shù)

10、據(jù)配置:數(shù)據(jù)00H 寫入93C46的地址00H 內(nèi);93C46地址04H0AH中存放的是物理地址,可以寫入設(shè)置所需的物理地址值,或不修改,采用原始值為物理地址。通過(guò)編程器讀出04H0AH的原始值為52544CC59906,即所采用的物理地址。 這樣,RTL8019AS復(fù)位后讀取93C46中配置好的內(nèi)容,對(duì)應(yīng)設(shè)置配置寄存器CONFIG1的值為00H,CONFIG1的低4位IOS30用于選擇I/O基地址。IOS30設(shè)置值均為0時(shí),RTL8019AS選擇的端口I/O基地址為300H。RTL8019AS 的地址為20位,那么用到RTL8019AS 的地址空間為00300H0031FH,用二進(jìn)制表示00

11、300H0031FH,可以發(fā)現(xiàn)第19位到第5位是固定的:000000000011000。RTL8019 AS的20根地址線SA0SA19如表2連接。表2 RTL8019AS地址線的連接表SA19SA10 接地SA9SA8 接單片機(jī)P2口的P2.7,即地址總線ADDR15SA7SA5 接地SA4SA0 對(duì)應(yīng)為地址總線的ADDR0ADDR4通過(guò)ADDR15、I/OW、I/OR來(lái)劃分RTL8019AS 和62256的地址空間。ADDR15接62256的CE 腳,低電平時(shí)選擇62256;高電平時(shí)選擇RTL8019AS 的地址空間80C52單片機(jī)的地址為16位,按圖2的電路框圖連接RTL8019AS 的

12、地址空間。定義reg00reg1f來(lái)對(duì)應(yīng)端口00300H0031FH。#define reg00 XBYTE0x8000/*300H*/#define reg01 XBYTE0x8001/*301H*/#define reg1f XBYTE0x801F/*31FH*/讀寫操作、復(fù)位操作對(duì)應(yīng)的引腳按表3連接。表3 RTL8019AS的ISA 總線接口引腳與單片機(jī)的連接表Pin29 IORB 讀信號(hào),接到單片機(jī)的WR 引腳(P3.6)。Pin30 IOWB 寫信號(hào),接到單片機(jī)的RD 引腳(P3.7)。Pin33 RSTDRV RESET信號(hào),接單片機(jī)的T0(P3.4)。Pin34 AEN 地址有效

13、信號(hào),接地。Pin96 IOCS16 采用電阻下拉該引腳,復(fù)位時(shí)刻腳為低電平,選擇8位模式。Pin36Pin43 SD0SD7 8位數(shù)據(jù)總線,接單片機(jī)的P0口。(只用到8位數(shù)據(jù)總線,SD8SD15不接。) 采用10BASE-T 布線標(biāo)準(zhǔn)通過(guò)雙絞線進(jìn)行以太網(wǎng)通訊,而RTL8019AS 內(nèi)置了10BASE-T 收發(fā)器,所以網(wǎng)絡(luò)接口的電路比較簡(jiǎn)單。外接一個(gè)隔離LPF 濾波器0132,TPIN±為接收線,TPOUT±為發(fā)送線,經(jīng)隔離后分別與RJ-45接口的RX±、TX±端相連。 時(shí)鐘電路通過(guò)T1、T2接口一個(gè)20MHz 晶振以及2個(gè)電容,實(shí)現(xiàn)全雙工方式。LED0

14、、LED1各接一發(fā)光二極管以反映通訊狀態(tài):LED0表示LED_COL,即通訊有沖突;LED1表示LED_RX,即接收到網(wǎng)上的信息包。4 程序設(shè)計(jì)所有程序采用Framclin C51語(yǔ)言編制,可讀性強(qiáng),移植性好,開(kāi)發(fā)簡(jiǎn)易。4.1 復(fù)位RTL8019AS80C52的P3.4連接RTL8019AS 的RESDRV 來(lái)進(jìn)行復(fù)位操作。RSTDRV為高電平有效,至少需要800ns 的寬度。給該引腳旋加一個(gè)1s以上的高電平就可以復(fù)位。施加一個(gè)高電平后,然后施加一個(gè)低電平。復(fù)位過(guò)程將執(zhí)行一些操作,至少需要2ms 的時(shí)間,推薦等待更久的時(shí)間之后如100ms 之后才對(duì)它操作,以確保完全復(fù)位。4.2 初始化RTL8

15、019AS初始化頁(yè)0與頁(yè)1的相關(guān)寄存器,頁(yè)2的寄存器是只讀的,不可以設(shè)置,頁(yè)3的寄存器不是NE2000兼容的,不用設(shè)置。(1)CR=0x21,選擇頁(yè)0的寄存器;(2)TPSR=0x45,發(fā)送頁(yè)的起始頁(yè)地址,初始化為指向第一個(gè)發(fā)送緩沖區(qū)的頁(yè)即0x40;(3)PSTART=0x4c,PSTOP=0x80,構(gòu)造緩沖環(huán):0x4c0x80;(4)BNRY=0x4c,設(shè)置指針;(5)RCR=0xcc,設(shè)置接收配置寄存器,使用接收緩沖區(qū),僅接收自己地址的數(shù)據(jù)包(以及廣播地址數(shù)據(jù)包)和多點(diǎn)播送地址包,小于64字節(jié)的包丟棄,校驗(yàn)錯(cuò)的數(shù)據(jù)包不接收;(6)TCR=0xe0,設(shè)置發(fā)送配置寄存器,啟用CRC 自動(dòng)生成和

16、自動(dòng)校驗(yàn),工作在正常模式;(7)DCR=0xc8,設(shè)置數(shù)據(jù)配置寄存器,使用FIFO 緩存,普通模式,8位數(shù)據(jù)DMA;(8)IMR=0x00,設(shè)置中斷屏蔽寄存器,屏蔽所有中斷;(9)CR=0x61,選擇頁(yè)1的寄存器;(10)CURR=0x4d,CURR是RTL8019AS 寫內(nèi)存的指針,指向當(dāng)前正在寫的頁(yè)的下一頁(yè),初始化時(shí)指和0x4c+1=0x4d;(11)設(shè)置多址寄存器MAR0MAR5,均設(shè)置為0x00;(12)設(shè)置網(wǎng)卡地址寄存器PAR0PAR5;(13)CR=0x22,選擇頁(yè)1的寄存器,進(jìn)入正常工作狀態(tài)。 4.3 發(fā)送幀將待發(fā)送的數(shù)據(jù)按幀格式封裝,通過(guò)遠(yuǎn)程DMA 通道送到RTL8019AS 中的發(fā)送緩存區(qū),然后發(fā)出傳送命令,完成幀的發(fā)送。需要設(shè)置以太網(wǎng)目的地址、以太網(wǎng)源地址、協(xié)議類型,再按所設(shè)置的協(xié)議類型來(lái)設(shè)置數(shù)據(jù)段。之后啟動(dòng)遠(yuǎn)程DMA,數(shù)據(jù)寫入RTL8019AS 的RAM,再啟動(dòng)本地DMA,將數(shù)據(jù)發(fā)送網(wǎng)上。RTL8019AS 無(wú)法將整個(gè)數(shù)據(jù)包通過(guò)DMA 通道一次存入FIFO,則在構(gòu)成一個(gè)新的數(shù)據(jù)包之前必須先等待前一數(shù)據(jù)包發(fā)送完成。為提高發(fā)送效率,設(shè)計(jì)將12頁(yè)的發(fā)送緩存區(qū)分為兩個(gè)6頁(yè)的發(fā)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論