學士學位論文-基于-MCU-的以太網(wǎng)接入模塊設(shè)計_第1頁
學士學位論文-基于-MCU-的以太網(wǎng)接入模塊設(shè)計_第2頁
學士學位論文-基于-MCU-的以太網(wǎng)接入模塊設(shè)計_第3頁
學士學位論文-基于-MCU-的以太網(wǎng)接入模塊設(shè)計_第4頁
學士學位論文-基于-MCU-的以太網(wǎng)接入模塊設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MACROBUTTONMTEditEquationSection2SEQMTEqn\r\hSEQMTSec\r1\hSEQMTChap\r1\h基于MCU的以太網(wǎng)接入模塊設(shè)計姓名:學號:指導教師::專業(yè):完成日期:20

摘要給出了單片機控制RTL8019AS實現(xiàn)以太網(wǎng)通訊的軟硬件設(shè)計方案。首先設(shè)計了系統(tǒng)的硬件電路,并對接口電路的設(shè)計進行了詳細的闡述,然后設(shè)計了RTL8019AS的以太網(wǎng)驅(qū)動程序.最后通過一個簡單的數(shù)據(jù)收發(fā)試驗驗證了設(shè)計的正確性。關(guān)鍵詞RTL8019AS;51單片機;TCP/IP協(xié)議;傳感器AbstractGivenSCMRTL8019ASEthernetcommunicationshardwareandsoftwaredesign.Designthehardwarecircuit,theinterfacecircuitdesignindetail,andthendesignRTL8019ASEthernetdriver.Sendandreceivedatathroughasimpletesttoverifythecorrectnessofthedesign.

KeywordsTheRTL8019AS;51microcontroller;TCP/IPprotocol;sensor

目錄27291第1章緒論 7278601.1本設(shè)計的背景 7231631.2以太網(wǎng)絡(luò)接口芯片RTL8019AS介紹 732573第2章、系統(tǒng)總體結(jié)構(gòu)設(shè)計 10101782.1系統(tǒng)控制模塊的硬件設(shè)計 1025642.11控制系統(tǒng)的主要硬件電路 10120922.2系統(tǒng)控制模塊的軟件設(shè)計 10320782.21TCP/IP協(xié)議 10135292.22軟件設(shè)計流程 11225632.3程序部分 11171412.31主程序 11115442.32發(fā)送控制過程 13135252.33接收控制過程 1414684第3章總結(jié) 1619964第4章參考文獻 172352第5章設(shè)計總結(jié) 183402第6章致謝 19第1章緒論1.1本設(shè)計的背景隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,Internet網(wǎng)絡(luò)日益成為人們?nèi)粘I钪斜夭豢缮俚墓ぞ摺H藗冊谑褂没ヂ?lián)網(wǎng)學習、娛樂的同時,各種家電設(shè)備、儀器儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制設(shè)備在逐步地走向網(wǎng)絡(luò)化,以便共享網(wǎng)絡(luò)中龐大的信息資源,給人們的工作學習帶來更大的便利。就目前來看,利用8位的微處理器,實現(xiàn)與Internet網(wǎng)絡(luò)的通信,具有十分重要的意義。本設(shè)計主要為了解決利用單片機控制網(wǎng)卡芯片實現(xiàn)以太網(wǎng)的鏈接,已達到最大程度的利用網(wǎng)絡(luò)資源,方便人們生活學習的目的。1.2以太網(wǎng)絡(luò)接口芯片RTL8019AS介紹RTL8019AS:是臺灣Realtek公司制造的一種高集成度的10Mb/s以太網(wǎng)控制芯片,可實現(xiàn)基于以太網(wǎng)協(xié)議的MAC層的全部功能,內(nèi)置16kBSRAM、雙DMA通道和FIFO,可完成數(shù)據(jù)包的接收和發(fā)送功能。主要性能(1)符號Ethernetò與IEEE802.3(10Base5,10Base2,10BaseT)標準;(2)全雙工,收發(fā)可同時達到10Mb/s的速率;(3)內(nèi)置16kB的SRAM,用于收發(fā)緩沖,降低對主處理器的速度要求;(4)支持8/16位數(shù)據(jù)總線8個中斷申請線以及16個I/O基地址選擇;(5)支持UTP,AUI,BNC自動檢測還支持對10BaseT拓撲結(jié)構(gòu)的自動修復;(6)允許4個診斷LED引腳可編程輸出;(7)100腳的PQFP封裝,縮小了PCB尺寸。內(nèi)部結(jié)構(gòu):RTL80l9AS內(nèi)部可分為遠程DMA接口、本地DMA接口、MAC(介質(zhì)訪問控制)邏輯、數(shù)據(jù)編碼解碼邏輯和其他端口。內(nèi)部結(jié)構(gòu)如圖l所示ISA總線接口ISA總線接口ENA(編碼譯碼)邏輯即插即用PnPBootROM端口EEPROM端口AUI接口雙絞線接口8K*16SROMMAC邏輯圖一遠程DMA接口是指單片機對RTL80l9AS內(nèi)部RAM進行讀寫的總線,即ISA總線的接口部分。單片機收發(fā)數(shù)據(jù)只需對遠程DMA操作。本地DMA接口是指RTL80l9AS與網(wǎng)線的連接通道,完成控制器與網(wǎng)線的數(shù)據(jù)交換。MAC(介質(zhì)訪問控制)邏輯完成以下功能:當單片機向網(wǎng)上發(fā)送數(shù)據(jù)時,先將一幀數(shù)據(jù)通過遠程DMA通道送到RTL80l9AS中的發(fā)送緩存區(qū),然后發(fā)出傳送命令;當RTL80l9AS完成了上一幀的發(fā)送后,再開始此幀的發(fā)送。RTL80l9AS接收到的數(shù)據(jù)通過MAC比較、CRC校驗后,由FIFO存到接收緩沖區(qū);收滿一幀后,以中斷或寄存器標志的方式通知主處理器。FIFO邏輯對收發(fā)數(shù)據(jù)作l6字節(jié)的緩沖,以減少對本地DMA請求的頻率。2.3內(nèi)部RAM地址空間分配RTL8Ol9AS內(nèi)部有兩塊RAM區(qū)。一塊l6K字節(jié),地址為OX4OOO~OX7fff;一塊32字節(jié),地址為OXOOOO~OXOOlf。RAM按頁存儲,每256字節(jié)為一頁。一般將RAM的前l(fā)2頁(即OX4OOO~OX4bff)存儲區(qū)用作發(fā)送緩沖區(qū);后52頁(即OX4cOO~OX7fff)存儲區(qū)用作接收緩沖區(qū)。第O頁叫Prom頁,有32字節(jié),地址為OXOOOO~OXOOlf,存放以太網(wǎng)物理地址。要接收和發(fā)送數(shù)據(jù)包就須通過DMA讀寫RTL8Ol9AS內(nèi)部的l6KBRAM。實際上它是雙端口的RAM,是指它有兩套總線連接到此RAM,一套總線是RTL8Ol9AS讀或?qū)懘薘AM,即本地DMA;另一套總線是單片機讀或?qū)懺揜AM,即遠程DMA第2章、系統(tǒng)總體結(jié)構(gòu)設(shè)計2.1系統(tǒng)控制模塊的硬件設(shè)計系統(tǒng)控制單元以單片機主控模塊為核心.其他外圍電路主要包括:ISP下載線模塊、系統(tǒng)供電模塊、硬件時鐘模塊、網(wǎng)絡(luò)接口卡模塊、外部數(shù)據(jù)采集模塊。2.11控制系統(tǒng)的主要硬件電路本系統(tǒng)的主控模塊主要采用STC公司的89C52作為主控芯片其中具體包括在線編程模塊電路、系統(tǒng)復位電路、系統(tǒng)供電電路、網(wǎng)卡驅(qū)動電路、外部數(shù)據(jù)采集電路。要實現(xiàn)8位微處理器的上網(wǎng)首先要解決的就是與以太網(wǎng)的連接問題,即如何將通用處理器的網(wǎng)絡(luò)裝置應用于嵌入式網(wǎng)絡(luò)的開發(fā)與應用。目前市面上有許多型號的以太網(wǎng)控制芯片,多數(shù)功耗較高、功能復雜,不適合用于價格低廉的嵌入式系統(tǒng)。還需要考慮的一點是網(wǎng)絡(luò)接口芯片(RTL8019AS)與單片機的接口不能太復雜,要盡量少占用單片機的系統(tǒng)資源。根據(jù)上面的原則,選用RTL8019AS作為網(wǎng)絡(luò)接口芯片,網(wǎng)絡(luò)接口卡設(shè)計方案如圖二所示。單片機單片機外部RAM存存儲器網(wǎng)絡(luò)控制器隔離濾波器RJ45串口電平轉(zhuǎn)換芯片Pc機網(wǎng)絡(luò)接口串口EEPROM圖二2.2系統(tǒng)控制模塊的軟件設(shè)計2.21TCP/IP協(xié)議嵌入式設(shè)備網(wǎng)絡(luò)化的關(guān)鍵是實現(xiàn)TCP/IP網(wǎng)絡(luò)協(xié)議。眾所周知,TCP/IP是一個數(shù)量龐大的協(xié)議體系,是由幾百種網(wǎng)絡(luò)協(xié)議組成的集合,在嵌入式系統(tǒng)有限的資源中難以完全實現(xiàn)。且嵌入式系統(tǒng)以應用為中心,即使具有特定功能的計算機系統(tǒng),也不需要實現(xiàn)那么多的協(xié)議。因此系統(tǒng)設(shè)計的首先就是進行TCP/IP協(xié)議棧子集的選擇。TCP/IP常被認為是一個由鏈路層、網(wǎng)絡(luò)層、傳輸層和應用層組成的四層協(xié)議系統(tǒng),且每一層都有相應的協(xié)議集合用以實現(xiàn)不同的功能。數(shù)據(jù)鏈路層主要處理和傳輸介質(zhì)相關(guān)的物理接口部分,考慮到以太網(wǎng)數(shù)據(jù)流量大并且通用性強,因此采用以太網(wǎng)協(xié)議,用RJ45接口把嵌入式設(shè)備連入網(wǎng)絡(luò)。網(wǎng)絡(luò)層主要作用是處理數(shù)據(jù)包在網(wǎng)絡(luò)中的協(xié)議封裝,該層選用TCP/IP協(xié)議棧的核心IP協(xié)議,同時選用ARP協(xié)議實現(xiàn)IP地址到MAC物理地址的轉(zhuǎn)換。傳輸層主要為兩臺主機上的應用程序提供端到端的通信,有UDP和TCP兩種協(xié)議。UDP協(xié)議是不面向連接的,因此不能保證數(shù)據(jù)傳輸?shù)目煽啃浴CP是面向連接的,但是其可靠性的保證是以許多復雜措施以及由此而增加的開銷為代價換來的。因此在此選擇TCP為傳輸層協(xié)議,但是針對應用進行簡化以適應嵌入式應用的要求。應用層負責處理特定的應用程序部分,應用層協(xié)議種類很多,考慮到嵌入式應用的特殊性,不選取通用的應用層協(xié)議。2.22軟件設(shè)計流程對網(wǎng)卡編程就是對網(wǎng)絡(luò)接口控制器(NIC)RTL8019AS中各寄存器進行編寫程序控制,進而完成數(shù)據(jù)分組的正確發(fā)送及接收。2.3程序部分2.31主程序主程序可分為網(wǎng)絡(luò)通訊和串行通訊這兩部分。網(wǎng)絡(luò)通訊又可分為網(wǎng)卡初始化、發(fā)送控制和接收控制三部分。主程序框圖如圖三所示。YY初始化串口初始化網(wǎng)卡接收串口數(shù)據(jù)裝入以太網(wǎng)幀接收以太網(wǎng)幀收到確認幀N圖三網(wǎng)卡初始化過程如下:RTL8019AS的初始化主要是設(shè)置一些工作參數(shù),如RAM的分配,中斷初始化,MAC地址設(shè)置,接收設(shè)置,發(fā)送設(shè)置等,具體在以下程序中注釋。voidrtl8019Init(void){ RTL8019_RESET_PORT_H(); delayms(50);RTL8019_RESET_PORT_L();//RTL8019AS復位管腳置0 RTL8019WRITE(ISR,rtl8019Read(ISR)); //軟件復位 delayms(50);RTL8019WRITE(CR,0xE1);//選擇第3頁,配置寄存器RTL8019WRITE(0x01,0xC0);//EEM1=EEM0=1RTL8019WRITE(CONFIG2,0x20);//設(shè)置網(wǎng)卡為10M自動檢測模式RTL8019WRITE(CONFIG3,0);//設(shè)置LED工作模式delayms(255);RTL8019WRITE(0x01,0);//EEM1=EEM0=0RTL8019WRITE(CR,0x21);//第0頁 delayms(2);RTL8019WRITE(DCR,DCR_INIT);//#defineDCR_INIT0x58 RTL8019WRITE(RBCR0,0x00); RTL8019WRITE(RBCR1,0x00); RTL8019WRITE(RCR,0x04);//接收結(jié)構(gòu)寄存器 RTL8019WRITE(TCR,0x02);//傳送配置寄存器RTL8019WRITE(TPSR,TXSTART_INIT);//#defineTXSTART_INIT0x40 RTL8019WRITE(PSTART,RXSTART_INIT);//#defineRXSTART_INIT0x47 RTL8019WRITE(BNRY,RXSTART_INIT);//#defineRXSTART_INIT0x47 RTL8019WRITE(PSTOP,RXSTOP_INIT);//#defineRXSTOP_INIT0x60 RTL8019WRITE(ISR,0xFF);//清除中斷標志 RTL8019WRITE(IMR,IMR_INIT);//中斷屏蔽 RTL8019WRITE(CR,0x61);//第1頁 delayms(2); RTL8019WRITE(CURR,RXSTART_INIT);//#defineRXSTART_INIT0x47 //設(shè)置MAC地址 RTL8019WRITE(PAR0+0,MYMAC_0); RTL8019WRITE(PAR0+1,MYMAC_1); RTL8019WRITE(PAR0+2,MYMAC_2); RTL8019WRITE(PAR0+3,MYMAC_3); RTL8019WRITE(PAR0+4,MYMAC_4); RTL8019WRITE(PAR0+5,MYMAC_5); RTL8019WRITE(CR,0x22); //starttheNIC}//endrtl8019asinit2.32發(fā)送控制過程在網(wǎng)絡(luò)中,幀傳輸?shù)倪^程就是發(fā)送方將待發(fā)送的數(shù)據(jù)按幀格式要求封裝成幀,然后通過網(wǎng)卡發(fā)送到網(wǎng)絡(luò)的傳輸線上。發(fā)送程序框圖如圖4所示。數(shù)據(jù)長度=46數(shù)據(jù)長度=46數(shù)據(jù)長度+14初始化遠程字節(jié)計算器RBCR啟動遠程DMA數(shù)據(jù)寫入緩沖區(qū)啟動本地DMA發(fā)送字節(jié)計數(shù)器賦值初始化發(fā)送頁起始地址寄存器TTTPSR發(fā)送緩沖區(qū)數(shù)據(jù)到網(wǎng)上初始化數(shù)據(jù)長度小于46《《《度,444444646發(fā)送完畢發(fā)送完畢返回YYNNNYYY圖四首先設(shè)置網(wǎng)卡發(fā)送數(shù)據(jù)包的RAM首地址,用以存放要發(fā)送的數(shù)據(jù),和上兩節(jié)寫RAM相同。然后設(shè)置遠程讀此數(shù)據(jù)包的長度,(RBCR1,0在讀數(shù)據(jù)包的時候作用為要讀數(shù)據(jù)包的長度;在發(fā)送數(shù)據(jù)包的時候作用為遠程接收此包時,此包的有效字節(jié)長度,相當于RTL8019AS接收數(shù)據(jù)包的Byte3,4,詳細請看第二章的3.9節(jié)),然后設(shè)置發(fā)送數(shù)據(jù)包的長度,:發(fā)送數(shù)據(jù)包的長度與遠程讀此數(shù)據(jù)包的長度是一樣的吧?。∪缓蟀岩l(fā)送的數(shù)據(jù)包寫入RAM,啟動發(fā)送數(shù)據(jù)包命令,發(fā)送數(shù)據(jù)包,程序如下: RTL8019WRITE(CR,0x22);//第0頁開始命令 while(rtl8019Read(CR)&0x04);//有數(shù)據(jù)包發(fā)送則等發(fā)送完畢 RTL8019WRITE(TPSR,0x40);//加載發(fā)送RAM頁的首地址 RTL8019WRITE(RSAR0,0x00);//寫RAM地址低8位 RTL8019WRITE(RSAR1,0x40);//寫RAM地址高8位 RTL8019WRITE(ISR,(1<<ISR_PTX));//清除發(fā)送中斷標志 RTL8019WRITE(RBCR0,(unsignedchar)(packetLength));//遠程讀數(shù)據(jù)包長度的低8位 RTL8019WRITE(RBCR1,(unsignedchar)(packetLength>>8));//遠程讀數(shù)據(jù)包長度的高8位 RTL8019WRITE(TBCR0,(unsignedchar)(sendPacketLength));//發(fā)送數(shù)據(jù)包長度的低8位 RTL8019WRITE(TBCR1,(unsignedchar)((sendPacketLength)>>8)); //發(fā)送數(shù)據(jù)包長度的高8位 RTL8019WRITE(CR,0x12);//啟動寫RAM命令for(unsignedinti=0;i<length;i++)RTL8019WRITE(RDMAPORT,Buffer[i]);//寫數(shù)據(jù)到RAMRTL8019WRITE(CR,0x24);//發(fā)送數(shù)據(jù)包CR的TXP=1 RTL8019WRITE(ISR,(1<<ISR_RDC));//清除RAM操作完成標志2.33接收控制過程讀數(shù)據(jù)包之前,可通過讀BNRY和CURR來判斷有無數(shù)據(jù)包的接收,BNRY=CURR的時候說明沒有數(shù)據(jù)包接收,當BNRY不等于CURR時,說明有數(shù)據(jù)包收到,此時可從以BNRY為首地址的RAM中讀出4個字節(jié)來判斷收到數(shù)據(jù)包的長度,從而設(shè)置RBCR1,0,再從接收RAM中讀出以太網(wǎng)數(shù)據(jù)包。需要注意的是,設(shè)置完RBCR1,0后,再從RAM讀數(shù)據(jù)包的時候,首地址為BNRY+4,因為前4個字節(jié)已經(jīng)讀過了,如果不加4,讀到的數(shù)據(jù)將不完整;同時,讀之前還要判斷是否有內(nèi)存溢出,如果溢出,則做相應的處理。rtl8019ProcessInterrupt();//檢測RAM是否溢出RTL8019WRITE(CR,0x62);//第1頁讀CURR curr=rtl8019Read(CURR);//讀CURR RTL8019WRITE(CR,0x22);//第0頁讀BNRY bnry=rtl8019Read(BNRY);//讀BNRY if(bnry==curr) return;//沒有包,返回RTL8019WRITE(ISR,(1<<ISR_PRX));//清除接收中斷標志RTL8019WRITE(RBCR0,4);RTL8019WRITE(RBCR1,0);RTL8019WRITE(RSAR0,0);RTL8019WRITE(RSAR1,bnry);RTL8019WRITE(CR,0x0A);//啟動讀RAM命令 for(i=0;i<4;i++) buffer[i]=rtl8019Read(RDMAPORT);RTL8019WRITE(CR,0x22);//終止RAM操作//等待RAM操作完成for(i=0;i<=20;i++)if(rtl8019Read(ISR)&1<<6)break;RTL8019WRITE(ISR,1<<6);//清除RAM操作完成中斷標志 rxlen=(buffer[3]<<8)+buffer[2];//數(shù)據(jù)包實際長度 nextPage=buffer[1];//下一數(shù)據(jù)包頁的首地址 ReadAddress=(bnry<<8)+4;//讀實際數(shù)據(jù)包的RAM地址 //讀實際數(shù)據(jù)包RTL8019WRITE(RBCR0,(unsignedchar)rxlen);RTL8019WRITE(RBCR1,(unsignedchar)(rxlen>>8));RTL8019WRITE(RSAR0,(unsignedchar)ReadAddress);RTL8019WRITE(RSAR1,(unsignedchar)(ReadAddress>>8));RTL8019WRITE(CR,0x0A);//啟動讀RAM命令 for(i=0;i<(rxlen-4);i++) DataBuffer[i]=rtl8019Read(RDMAPORT);RTL8019WRITE(CR,0x22);//終止RAM操作//等待RAM操作完成for(i=0;i<=20;i++)if(rtl8019Read(ISR)&1<<6)break;RTL8019WRITE(ISR,1<<6);//清除RAM操作完成中斷標志RTL8019WRITE(BNRY,nextPage);//設(shè)置下一個數(shù)據(jù)包的頁地址第3章總結(jié)RTL8019AS芯片具有性價比高、連接方便等特點,是進行嵌入式以太網(wǎng)設(shè)計時首選的控制芯片,本文利用單片機控制RTI8019AS來實現(xiàn)網(wǎng)絡(luò)通信,主要解決了硬件電路連接和以太網(wǎng)驅(qū)動程序設(shè)計的問題。該方法在工業(yè)自動化系統(tǒng)、遠程分散式設(shè)備控制、網(wǎng)絡(luò)家電等方面具有廣闊的應用前景。第4章參考文獻[1]李華.MCS-51系列單片機實用接口技術(shù)[M].北京:北京航空大學出版社,2002.[2]楊延雙,張建標,王全民.TCP/IP協(xié)議分析及應用[M].北京:機械工業(yè)出版社,2007[3]BehrouzA.Forouzan.TCP/IP協(xié)議族(第四版).王海等譯[M].北京:清華大學出版社,2011[4]韓毅剛.計算機網(wǎng)絡(luò)技術(shù)[M].北京:機械工業(yè)出版社,2010[5]RTL8019AS數(shù)據(jù)手冊[6]D.Gaponstev.Quasi-single-modefiberlasernears2kWoutputwithhigh-qualitybeam[J].LaserFocusWorld.2005[7]譚浩強.C語言程序設(shè)計(第二版)[M].北京:清華大學出版社,2003[8]羅軍周,錢松榮,楊明等.TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)[M].北京:清華大學出版社,2004[9]徐愛鈞,彭秀華.單片機高級語言C51應用程序設(shè)計[M].北京:電子工業(yè)出版社,1998[10]嚴天峰.單片機開發(fā)[M].成都:科學出版社,2007[11]任清珍,黃天戍.多路數(shù)據(jù)采集內(nèi)存使用及存盤法[J].計算機應用研究,1991年03期[12]張家喜.用PC—1500構(gòu)成的多路數(shù)據(jù)采集系統(tǒng)[J].工業(yè)儀表與自動化裝置,1992年04期[13]章公器.8051單片機開發(fā)

溫馨提示

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

評論

0/150

提交評論