版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計說明書 第 43 頁 基于tcp/ip的以太網(wǎng)通訊端口的設(shè)計摘 要隨著internet的發(fā)展,tcp/ip已經(jīng)成為通信領(lǐng)域事實上的國際標(biāo)準(zhǔn)。嵌入式系統(tǒng)通過嵌入式tcp/ip協(xié)議棧連接internet,甚至internet,將具有更好的實用性和巨大的經(jīng)濟(jì)效益。在對當(dāng)前國內(nèi)外嵌入式tcp/ip協(xié)議棧產(chǎn)品現(xiàn)狀進(jìn)行調(diào)研的基礎(chǔ)上,自主研發(fā)了可利用tcp/ip協(xié)議進(jìn)行數(shù)據(jù)傳輸?shù)姆椒?。本論文對arp、icmp、udp、tcp等幾個協(xié)議進(jìn)行詳細(xì)剖析,包括協(xié)議可配置性分析,并闡述tcp/ip協(xié)議棧的實現(xiàn)思路及方法。tcp/ip協(xié)議棧采用分層體系結(jié)構(gòu),嚴(yán)格按照ieee國際標(biāo)準(zhǔn),沒有任何私有協(xié)議,也沒有做任
2、何假設(shè),從而確保協(xié)議的完整性和一致性。tcp/ip協(xié)議棧在設(shè)計上充分考慮了移植性,整個協(xié)議棧架構(gòu)在系統(tǒng)抽象層之上,通過系統(tǒng)抽象層屏蔽掉硬件體系結(jié)構(gòu)、底層嵌入式操作系統(tǒng)以及編譯器等的差異。關(guān)鍵詞:tcp/ip,ip協(xié)議棧,ieee國際標(biāo)準(zhǔn)the design of ethernet communication interface on the basis of tcp/ipabstractwith the development of internet,tcp/ip has virtually become the international standard in the commu
3、nication field.if the connection,by means of embedded tcp/ip stack,between the embedded system and intranet,even internet can come true,the embedded system will be much more practical and bring about enormous economic benefits.based on the research and study of the current situation o
4、f the embedded tcp/ip stack products home and abroad,independently the configurable embedded tcp/ip stack-vip stack has been developed.according to vip stack,this paper expatiates on arp、icmpv4、udp、tcp and other protocols,including an analysis of protocol configuration,and also o
5、ffers the implementation method of vip stack.vip stack,with the adoption of layered architecture,can be carried out by means of ansi c language,strictly abiding by international rfc standard without any private protocol and any assumption,so as to ensure integrality and consistency of
6、 the protocol stack.in the aspect of design vip stack takes full consideration of the property of transplantation.the whole vip stack stands on top of the system abstract layer,which eliminates the differences of hardware architecture,embedded operating system and compilers.
7、;keywords: tcp/ip, ip stack, ieee standard目 錄1 緒論11.1 課題背景及目的11.2 國內(nèi)外研究狀況11.3 課題研究方法11.4 論文構(gòu)成及研究內(nèi)容12 tcp/ip協(xié)議的介紹32.1 tcp/ip以太網(wǎng)的連接方式32.2 tcp/ip以太網(wǎng)的工作原理42.3 tcp/ip層次模型52.4 傳輸協(xié)議的介紹82.4.1 arp協(xié)議82.4.2 ip協(xié)議102.4.3 icmp協(xié)議112.4.4 udp協(xié)議132.4.5 tcp/ip協(xié)議142.5 tcp連接的建立與終止163 硬件實現(xiàn)183.1 電路設(shè)
8、計環(huán)境183.2 rtl8019as芯片簡介193.2.1 rtl8019as內(nèi)部結(jié)構(gòu)213.2.2 網(wǎng)卡的上電復(fù)位和初始化243.2.3 接收和發(fā)送以太網(wǎng)幀的實現(xiàn)274 上位機(jī)軟件設(shè)計314.1 winsock概述314.2 rtl8019as以太網(wǎng)驅(qū)動程序324.3 arp協(xié)議的實現(xiàn)334.4 icmp的程序?qū)崿F(xiàn)364.5 arp協(xié)議的程序?qū)崿F(xiàn)384.6 tcp協(xié)議的程序?qū)崿F(xiàn)39結(jié) 論41致 謝42參考文獻(xiàn)431 緒論1.1 課題背景及目的近年來,由于互聯(lián)網(wǎng)技術(shù)的發(fā)展,寬帶網(wǎng)絡(luò)迅速發(fā)展,以太網(wǎng)己成為許多住宅小區(qū)的基礎(chǔ)設(shè)施。以太網(wǎng)技術(shù)是當(dāng)今最成熟的網(wǎng)絡(luò)技術(shù)。從以太網(wǎng)出現(xiàn)以來,它的發(fā)展一直受到
9、廣泛的重視和大量的技術(shù)投入,10m、100m的以太網(wǎng)技術(shù)早己獲得了廣泛的應(yīng)用,1000m的以太網(wǎng)技術(shù)也在形成之中。采用以太網(wǎng)傳輸媒介,在技術(shù)支持和升級方面無需專門的研發(fā)投入,這一點是任何現(xiàn)有的現(xiàn)場總線技術(shù),包括rs-485技術(shù),都無法比擬的。同時以太網(wǎng)技術(shù)得到廣泛的開發(fā)技術(shù)支持,以太網(wǎng)是應(yīng)用最廣泛的計算機(jī)網(wǎng)絡(luò)技術(shù),幾乎所有的編程語言都支持以太網(wǎng)的應(yīng)用開發(fā),例如java、visua1c+、viusalbasic等。這些編程語言由于被廣泛應(yīng)用,為人們所熟悉,并受到軟件開發(fā)商的高度重視,具有很好的發(fā)展前景,其性能也會不斷改進(jìn)。所以,選擇以太網(wǎng)作為傳輸媒介,不會拘泥于一種開發(fā)語言或者軟件平臺,有更寬的
10、選擇自由度。1.2 國內(nèi)外研究狀況當(dāng)前,以太網(wǎng)技術(shù)已深入到國民經(jīng)濟(jì)的各個方面。在防盜、工控、儀器儀表數(shù)據(jù)傳遞、機(jī)電控制單元等領(lǐng)域,以太網(wǎng)技術(shù)已成為電子系統(tǒng)智能化的最好平臺。以太網(wǎng)的應(yīng)用也隨處可見,通過以太網(wǎng)技術(shù)和芯片rtl8019as的組合應(yīng)用可以實現(xiàn)很多的功能。使其應(yīng)用在不同的領(lǐng)域。1.3 課題研究方法1、了解現(xiàn)階段所使用的數(shù)據(jù)傳輸方法,選擇性能較好的進(jìn)行設(shè)計應(yīng)用。2、設(shè)計以太網(wǎng)的傳輸速率以及rtl8019as內(nèi)部程序,使其達(dá)到設(shè)計要求。3、對tcp/ip進(jìn)行數(shù)據(jù)端口的規(guī)劃。4、通過軟件編程來實現(xiàn)所要實現(xiàn)的功能。1.4 論文構(gòu)成及研究內(nèi)容本系統(tǒng)內(nèi)實現(xiàn)了真正的無縫連接,對外部來說,由于以太網(wǎng)協(xié)
11、議的標(biāo)準(zhǔn)性,通用性,使不同系統(tǒng)間的連接非常的方便,為智能小區(qū)的互聯(lián)和信息共享提供了技術(shù)支持。同時還可使用戶擁有成本下降。掌握以太網(wǎng)技術(shù)的工作人員比較多,而無需專人去學(xué)習(xí)控制網(wǎng)絡(luò)的方法。所以,若能夠采用以太網(wǎng)傳輸數(shù)據(jù),可以避免單獨布線的問題,而且tcp/ip協(xié)議作為以太網(wǎng)互聯(lián)的最廣泛的協(xié)議,其開放性和兼容性使系統(tǒng)的應(yīng)用范圍具有較大的擴(kuò)展空間。隨著科技的進(jìn)步,住宅小區(qū)要求的提高,直接使用以太網(wǎng)傳輸數(shù)據(jù)一定會成為將來的主流技術(shù)。2 tcp/ip協(xié)議的介紹以太網(wǎng)(ethernet)最初起源于xeorx公司建造的一個2.9mbps的csma/cd(載波監(jiān)聽/多路訪問)系統(tǒng),它以無源電纜作為總線來傳輸數(shù)據(jù)
12、,在1000m的電纜上連接了100多臺計算機(jī),并以曾經(jīng)在歷史上表示傳播電磁波的以太(ether)來命名,這就是如今的以太網(wǎng)的鼻祖。隨后dec、intel及xerox合作公布了ethernet物理層和數(shù)據(jù)鏈路層1的規(guī)范,稱為dix規(guī)范。在此基礎(chǔ)上,電氣和電子工程師協(xié)會(ieee)制定了ieee802.3標(biāo)準(zhǔn)。以太網(wǎng)可以支持多種傳輸介質(zhì)。以太網(wǎng)按傳輸介質(zhì)標(biāo)準(zhǔn)主要可分為三類,粗纜以太網(wǎng)、細(xì)纜以太網(wǎng)、雙絞線以太網(wǎng),即10base-5、10base-2、10base-t,近幾年又出現(xiàn)了以光纖為傳輸介質(zhì)的快速以太網(wǎng)。隨著技術(shù)的不斷發(fā)展,以太網(wǎng)的傳輸速度也得到很大提高,從10mbps逐漸發(fā)展到100mbps
13、、1000mbps,甚至10gbps也提上研究日程。2.1 tcp/ip以太網(wǎng)的連接方式1、拓?fù)浣Y(jié)構(gòu)總線型:所需的電纜較少、價格便宜、管理成本高,不易隔離故障點、采用共享的訪問機(jī)制,易造成網(wǎng)絡(luò)擁塞。早期以太網(wǎng)多使用總線型的拓?fù)浣Y(jié)構(gòu),采用同軸纜為傳輸介質(zhì),連接簡單,通常在小規(guī)模的網(wǎng)絡(luò)中不需要專用的網(wǎng)絡(luò)設(shè)備,但由于它存在的固有缺陷,己經(jīng)逐漸被以集線器和交換機(jī)為核心的星型網(wǎng)絡(luò)所代替。星型:管理方便、容易擴(kuò)展、需要專用的網(wǎng)絡(luò)設(shè)備作為網(wǎng)絡(luò)的核心節(jié)點、需要更多的網(wǎng)線、對核心設(shè)的可靠性要求高。采用專用的網(wǎng)絡(luò)設(shè)備(如集線器或交換機(jī))作為核心節(jié)點,通過雙絞線將局域網(wǎng)中的各臺主機(jī)連接到核心節(jié)點上,這就形成了星型結(jié)
14、構(gòu)。星型網(wǎng)絡(luò)雖然需要的線纜比總線型多,但布線和連接器比總線型的要便宜。此外,星型拓?fù)淇梢酝ㄟ^級聯(lián)的方式很方便的將網(wǎng)絡(luò)擴(kuò)展到很大的規(guī)模,因此得到了廣泛的應(yīng)用,被絕大部分的以太網(wǎng)所采用。2、傳輸介質(zhì)以太網(wǎng)可以采用多種連接介質(zhì),包括同軸纜、雙絞線和光纖等。其中雙絞線多用于從主機(jī)到集線器或交換機(jī)的連接,而光纖則主要用于交換機(jī)間的級聯(lián)和交換機(jī)到路由器間的點到點鏈路上。同軸纜作為早期的主要連接介質(zhì)已經(jīng)逐漸趨于淘汰。當(dāng)前以太網(wǎng)支持光纖和雙絞線媒體支持下的四種傳輸速率:10mbps-10base-ethernet(802.3)100mbps-fastethernet(802.3u)1000mbps-gigab
15、itethernet(802.3z)10gigabit ethernet-ieee802.3ae2.2 tcp/ip以太網(wǎng)的工作原理1、工作過程以太網(wǎng)采用帶沖突檢測的載波幀聽多路訪問(csma/cd)機(jī)制。以太網(wǎng)中節(jié)點都可以看到在網(wǎng)絡(luò)中發(fā)送的所有信息,因此,我們說以太網(wǎng)是一種廣播網(wǎng)絡(luò)。當(dāng)以太網(wǎng)中的一臺主機(jī)要傳輸數(shù)據(jù)時,它將按如下步驟進(jìn)行: (l)幀聽信道上收否有信號在傳輸。如果有的話,表明信道處于忙狀態(tài),就繼續(xù)幀聽,直到信道空閑為止; (2)若沒有幀聽到任何信號,就傳輸數(shù)據(jù);(3)傳輸?shù)臅r候繼續(xù)幀聽,如發(fā)現(xiàn)沖突則執(zhí)行退避算法,隨機(jī)等待一段時間后,重新執(zhí)行步驟1 (當(dāng)沖突發(fā)生時,涉及沖突的計算機(jī)
16、會發(fā)送一個擁塞序列2,以警告所有的節(jié)點);(4)若未發(fā)現(xiàn)沖突則發(fā)送成功,計算機(jī)會返回到幀聽信道狀態(tài);注意:每臺計算機(jī)一次只允許發(fā)送一個包,所有計算機(jī)在試圖再一次發(fā)送數(shù)據(jù)之前,必須在最近一次發(fā)送后等待9.6微秒(以10mbps運行)。2、以太網(wǎng)協(xié)議以太網(wǎng)協(xié)議有兩種,一種是ieee802.2/ieee802.3,還有一種是以太網(wǎng)的封裝格式。一個標(biāo)準(zhǔn)的以太網(wǎng)物理傳輸幀由七部分組成,如表2.1所示。表2.1 以太網(wǎng)物理傳輸幀結(jié)構(gòu)prsddasatypedatafcs同步位分隔位目的地址源地址類型字段數(shù)據(jù)段幀校驗序列7166246-15004pr:同步位。用于收發(fā)雙方的時鐘同步,同時也指明了傳輸?shù)乃俾剩?/p>
17、是56位的二進(jìn)制數(shù)101010101010.。sd:分隔位。表示下面跟著的是真正的數(shù)據(jù),而不是同步時鐘,為8位的10101011,跟同步位不同的是最后2位是11而不是10。da:目的地址以太網(wǎng)的地址為48位(6個字節(jié))二進(jìn)制地址,表明該幀傳輸給哪個網(wǎng)卡如果為ffffffffffff,則是廣播地址,廣播地址的數(shù)據(jù)可以被任何網(wǎng)卡接收到。sa:源地址。48位,表明該幀的數(shù)據(jù)是哪個網(wǎng)卡發(fā)的,即發(fā)送端的網(wǎng)卡地址,同樣是6個字節(jié)。type:類型字段。表明該幀的數(shù)據(jù)是什么類型的數(shù)據(jù),不同的協(xié)議的類型字段不同。如:0x0800表示數(shù)據(jù)為ip包,0x0806表示數(shù)據(jù)為arp包,0x814c是snmp包,0x81
18、37為ipx/spx包,(小于0x0600的值是用于ieee802的,表示數(shù)據(jù)包的長度)。data:數(shù)據(jù)段。該段數(shù)據(jù)不能超過1500字節(jié)。因為以太網(wǎng)規(guī)定整個傳輸包的最大長度不能超過1514字節(jié)(14字節(jié)為da,sa,type)。pad:填充位。由于以太網(wǎng)幀傳輸?shù)臄?shù)據(jù)包最小不能小于60字節(jié),除去(da,sa,type 14字節(jié)),還必須傳輸46字節(jié)的數(shù)據(jù),當(dāng)數(shù)據(jù)段的數(shù)據(jù)不足46字節(jié)時,后面補0 (也可以補其它值)。fcs:32位數(shù)據(jù)校驗位。為32位的crc校驗,該校驗由網(wǎng)卡自動計算,自動生成,自動校驗,自動在數(shù)據(jù)段后面填入。由此可見,以太網(wǎng)幀除了數(shù)據(jù)段的長度不定外,其他部分的長度固定不變。整個傳
19、輸包的最大長度不能超過1514字節(jié)(14字節(jié)為da、sa、type),最小不能小于60字節(jié)。除去da、sa、type 14字節(jié),還必須傳輸46字節(jié)的數(shù)據(jù),當(dāng)數(shù)據(jù)段的數(shù)據(jù)不足46字節(jié)時需填充;超過1500字節(jié)時,需拆成多個幀傳送。發(fā)送數(shù)據(jù)時,pr、sd、fcs及填充字段這幾個數(shù)據(jù)段由以太網(wǎng)控制器自動產(chǎn)生;而接收數(shù)據(jù)時pr、sd被跳過,控制器一旦檢測到有效的前序字段(即pr、sd),就認(rèn)為接收數(shù)據(jù)開始。2.3 tcp/ip層次模型tcp/ip協(xié)議(transfer control protocol/interface protocol)叫做傳輸控制/網(wǎng)際協(xié)議,又叫網(wǎng)絡(luò)通訊協(xié)議,是70年代中期美國國
20、防部為arpanet廣域網(wǎng)開發(fā)的網(wǎng)絡(luò)體系結(jié)構(gòu)和協(xié)議標(biāo)準(zhǔn),以它為基礎(chǔ)組建的州ternet是目前國際上規(guī)模最大的計算機(jī)網(wǎng)絡(luò),正因為創(chuàng)internet的廣泛使用,使得tcp/ip成了事實上的標(biāo)準(zhǔn)。雖然從名字上看tcp/ip包括兩個協(xié)議,傳輸控制協(xié)議(tcp)和網(wǎng)際協(xié)議(ip),但tcp/ip實際上是一組協(xié)議,包括:tcp(transport conrtol portocol)傳輸控制協(xié)議3,ip(internetwoking protocol)網(wǎng)間協(xié)議,udp(user datagram protoeol)用戶數(shù)據(jù)報協(xié)議,icmp(internet control message protocol)
21、互聯(lián)網(wǎng)控制信息協(xié)議和簡單郵件傳輸協(xié)議smtp(simplemailtrnasefrportoeol),snmp(simple network message protocol)簡單網(wǎng)絡(luò)管理協(xié)議,ftp(file transfer protocol)文件傳輸協(xié)議,arp(address resolation protocol)地址解析協(xié)議等許多協(xié)議。tcp/ip分成四個概念層次,從上到下依次為應(yīng)用層,運輸層,網(wǎng)絡(luò)層和鏈路層。每一層分別由若干不同的協(xié)議組成,完成相應(yīng)的數(shù)據(jù)處理任務(wù)。之所以采取分層的體系結(jié)構(gòu)是為了簡化通信協(xié)議的復(fù)雜性,使其各個任務(wù)獨立出來,使數(shù)據(jù)傳輸更加透明。tcp/ip分層模型的四
22、個協(xié)議層分別完成以下的功能:第一層:鏈路層tcp/ip模型的物理層和數(shù)據(jù)鏈路層的任務(wù)主要依靠以太網(wǎng)控制芯片rtlso19as完成,而網(wǎng)絡(luò)層、傳輸層、應(yīng)用層則由相關(guān)的協(xié)議軟件實現(xiàn)。物理層協(xié)調(diào)在物理媒體中傳送比特流所需的各種功能。物理層涉及到接口和傳輸媒體的機(jī)械的和電氣的規(guī)約,它還定義了這些物理設(shè)備和接口為所發(fā)生的傳輸所必須完成的過程和功能。物理層定義在設(shè)備與傳輸媒體之間的接口特性,傳輸媒體的類型,傳輸速率(即每秒發(fā)送的比特數(shù))也在物理層定義。換言之,物理層定義一個比特持續(xù)時間。物理層還定義在兩個設(shè)備之間的傳輸方式,即單工、半雙工或全雙工。數(shù)據(jù)鏈路層將物理層(即原始的傳輸設(shè)施)轉(zhuǎn)換為可靠的數(shù)據(jù)鏈路
23、,它使物理層對上層(網(wǎng)絡(luò)層)看起來好像是不產(chǎn)生差錯的。數(shù)據(jù)鏈路層把從網(wǎng)絡(luò)層收到的比特流劃分成可以處理的數(shù)據(jù)單元,即組幀。如果這些幀需要發(fā)送給網(wǎng)絡(luò)上的不同系統(tǒng),那么數(shù)據(jù)鏈路層就要把一個首部加到幀上,以明確幀的發(fā)送器和/或接收器。如果這個幀是要發(fā)送給在發(fā)送器的網(wǎng)絡(luò)以外的一個系統(tǒng),則接收器地址就應(yīng)當(dāng)是將本網(wǎng)絡(luò)連接到下一個網(wǎng)絡(luò)的連接設(shè)備的地址。數(shù)據(jù)鏈路層增加了一些措施來檢測和重傳受損傷的幀或丟失的幀,因而將物理層增加了可靠性。它還有防止出現(xiàn)重復(fù)幀的機(jī)制,差錯控制通常是在幀的最后加上一個尾部實現(xiàn)。第二層:網(wǎng)絡(luò)層該層用來處理機(jī)器之間的通信問題。它傳送的ip數(shù)據(jù)報。它接收運輸層請求,傳輸某個具有目的地址信息
24、的分組。該層把分組封裝到ip數(shù)據(jù)報中,填入數(shù)據(jù)報的首部(報頭),使用選路算法來確定是直接交付數(shù)據(jù)報,還是把它傳遞給路由器,然后把數(shù)據(jù)報交給適當(dāng)?shù)木W(wǎng)絡(luò)接口進(jìn)行傳輸。該層還要處理傳入的數(shù)據(jù)報,檢驗其有效性,使用選路算法來決定應(yīng)該對數(shù)據(jù)報進(jìn)行本地處理還是應(yīng)該轉(zhuǎn)發(fā)。如果數(shù)據(jù)報的目的機(jī)處于本機(jī)所在的網(wǎng)絡(luò),該層軟件就會除去數(shù)據(jù)報的首部,再選擇適當(dāng)?shù)倪\輸層協(xié)議來處理這個分組。最后,網(wǎng)絡(luò)層還要根據(jù)需要發(fā)出和接收icmp差錯和控制報文。第三層:運輸層運輸層的基本任務(wù)是提供應(yīng)用程序之間的通信服務(wù)。傳送的是運輸協(xié)議分組。這種通信又叫端到端通信。運輸層要系統(tǒng)地管理信息的流動,還要提供可靠的傳輸服務(wù),以確保數(shù)據(jù)到達(dá)無差
25、錯、無亂序。為了達(dá)到這個目的,運輸層協(xié)議軟件要進(jìn)行協(xié)商,讓接收方回送確認(rèn)信息以及讓發(fā)送方重發(fā)丟失的分組。運輸層協(xié)議軟件把要傳輸?shù)臄?shù)據(jù)流劃分為小塊(分組),把每個分組連同目的地址交給下一層去發(fā)送。運輸層要從若干程序那里接收數(shù)據(jù)并把它們送給下一分層。為此,運輸層還要對每一個分組附加信息,包括一些代碼,標(biāo)識該分組是由哪個應(yīng)用程序發(fā)送的、要送給哪個應(yīng)用程序等,還包括一個校驗和。接收到分組的機(jī)器使用校驗和來檢驗數(shù)據(jù)4是否出錯,并通過目的代碼確定將分組發(fā)給哪個對應(yīng)的應(yīng)用程序。第四層:應(yīng)用層在這個最高層中,用戶調(diào)用應(yīng)用程序通過tcp/ip互連網(wǎng)來訪問可用的服務(wù)。與各個運輸層協(xié)議交互的應(yīng)用程序負(fù)責(zé)接受和發(fā)送數(shù)
26、據(jù)。每個應(yīng)用程序選擇適當(dāng)?shù)膫鬏敺?wù)類型(包括獨立的報文序列和連續(xù)字節(jié)流兩種類型)。應(yīng)用程序把數(shù)據(jù)按照運輸層的格式要求組織好之后向下層傳輸。數(shù)據(jù)在發(fā)送端從上到下依次經(jīng)過各層,由各層加上本層的控制信息再傳遞給下層,最后在物理層轉(zhuǎn)換成光電信號在傳輸介質(zhì)上傳送到接收端。在接收端正好相反,數(shù)據(jù)從下到上依次剝?nèi)タ刂菩畔⒔桓督o相應(yīng)的進(jìn)程,完成數(shù)據(jù)的傳輸。分層結(jié)構(gòu)如圖2.1所示。圖2.1 tcp/ip協(xié)議層次結(jié)構(gòu)2.4 傳輸協(xié)議的介紹由于該系統(tǒng)的通信部分主要涉及到鏈路層,網(wǎng)絡(luò)層和運輸層,在此主要介紹這三個層次中的重要協(xié)議。包括arp協(xié)議,tcp協(xié)議,udp協(xié)議,icmp協(xié)議以及ip協(xié)議。2.4.1 arp協(xié)議
27、當(dāng)源端的ip數(shù)據(jù)報要發(fā)送到目的端時,需要將ip數(shù)據(jù)報封裝成數(shù)據(jù)鏈路幀,這時就需要知道目的端的物理地址,完成查找目的物理地址這一功能就需要arp協(xié)議。要在網(wǎng)絡(luò)上通信,發(fā)送方必須要知道接收方的物理地址,地址解析就是將主機(jī)lp地址映射為物理地址的過程。a即用于獲得在同一物理網(wǎng)絡(luò)中的主機(jī)的物理地址。在解析本地ip地址時,發(fā)送方先在a即緩存中查找接收方的物理地址,如果找不到映射的話,就建立一個請求,將自己的ip地址和物理地址包含在請求中,再將請求廣播出去,讓所有本地主機(jī)均能接收并處理。當(dāng)某臺主機(jī)斷定請求中的ip地址與自己的相同時,直接發(fā)送一個arp答復(fù),將自己的物理地址傳給發(fā)送方。當(dāng)arp報文從一臺機(jī)器
28、傳輸?shù)搅硪慌_時,必須放入物理幀中。為了識別arp報文的幀,發(fā)送方給幀首部的類型字段分配了一個特殊值,并把arp報文放在該幀的數(shù)據(jù)字段中。當(dāng)每一幀到達(dá)計算機(jī)時,網(wǎng)絡(luò)軟件通過幀類型5確定其內(nèi)容。在以太網(wǎng)中,攜帶arp報文的幀類型字段是0x0806。這是以太網(wǎng)管理機(jī)構(gòu)分配的一個標(biāo)準(zhǔn)值,其他的網(wǎng)絡(luò)硬件技術(shù)使用了不同的值。a即應(yīng)答協(xié)議報文和arp請求協(xié)議報文類似。不同的是,此時,以太網(wǎng)幀頭部的目標(biāo)mac地址為發(fā)送a即地址解析請求的主機(jī)的mac地址,而源mac地址為被解析的主機(jī)的mac地址。同時,操作類型字段為l,表示arp應(yīng)答數(shù)據(jù)包,目標(biāo)mac地址字段被填充以目標(biāo)mac地址。對于一個arp請求來說,除目
29、的端硬件地址外的所有其他的字段都有填充值。當(dāng)系統(tǒng)收到一份目的端為本機(jī)的arp請求報文后,它就把硬件地址填進(jìn)去,然后用兩個目的端地址分別替換兩個發(fā)送端地址,并把操作字段置為2,最后把它發(fā)送回去。arp協(xié)議主要完成ip邏輯地址到物理地址的映射,具體可分為靜態(tài)映射和動態(tài)映射,一般采用動態(tài)映射。a即軟件包由三個組件構(gòu)成:輸出處理模塊、輸入處理模塊和高速緩存控制模塊。其中高速緩存控制模塊負(fù)責(zé)維持一個含有物理地址信息的高速緩存表并定期更新表的信息。由于發(fā)送站經(jīng)常與目的站通訊,發(fā)送站往往有一個以上的ip數(shù)據(jù)報要發(fā)送到同一個目的地。對發(fā)送到同一個主機(jī)或路由器的每一個數(shù)據(jù)報都使用a協(xié)議是非常低效的,解決這個問題
30、就是使用高速緩存表。當(dāng)主機(jī)或路由器收到一個ip數(shù)據(jù)報的相應(yīng)的物理地址時,就可將此物理地址存儲在高速緩存表中。在以太網(wǎng)上解析ip地址時arp請求和應(yīng)答分組的格式如表2.2所示。表2.2 用于以太網(wǎng)的arp請求或應(yīng)答分組格式以太網(wǎng)目的地址以太網(wǎng)源地址幀類型硬件地址協(xié)議類型硬件地址長度協(xié)議地址長度data發(fā)送端以太網(wǎng)地址發(fā)送端ip地址目的以太網(wǎng)地址目的ip地址在本系統(tǒng)中只用到了arp請求和應(yīng)答。接下來的四個字段是發(fā)送端的硬件地址(以太網(wǎng)地址)、發(fā)送端的協(xié)議地(ip地址)、目的端的硬件地址6和目的端的協(xié)議地址。注意在以太網(wǎng)的數(shù)據(jù)幀報頭中和arp請求數(shù)據(jù)幀中都有發(fā)送端的硬件地址。2.4.2 ip協(xié)議因特
31、網(wǎng)協(xié)議。它給數(shù)據(jù)包加上源地址和目的地址,組成ip數(shù)據(jù)包,然后單獨發(fā)送出去。ip協(xié)議具有分組交換的功能,能把數(shù)據(jù)包通過不同的路徑傳送到接收方,提高通信線路的利用率。由于每個ip數(shù)據(jù)報7的處理都是獨立的,它們各自選擇自己的路由傳輸,因此可能后發(fā)送的包先到達(dá)。接收方也可不按發(fā)送順序接收包。在交換數(shù)據(jù)前它并不建立會話,另一方面,數(shù)據(jù)在被收到時,ip不需要收到確認(rèn),所以它是不可靠的,它不保證ip數(shù)據(jù)包能正確到達(dá)目的地。ip有一個簡單的錯誤處理算法:丟棄該數(shù)據(jù)包,然后發(fā)送icmp消息給發(fā)送端。任何要求的可靠性必須由它的上層來提供(如tcp)。1、ip數(shù)據(jù)報的格式ip數(shù)據(jù)報的一般格式如表2.3所示。表2.3
32、 ip數(shù)據(jù)報格式版本首部長度服務(wù)類型總長度標(biāo)識標(biāo)志片偏移生存時間協(xié)議首部校驗和源地址目的地址可選字段(長度可變)填充數(shù)據(jù)部分報文中各個字段的含義如下:版本(version):占4bits,記錄ip的版本編號,目前最常見的ip版本是ip version 4,即0100b,后續(xù)版本為ip version 6。首部長度(ihl,intemethedaerlength):占4bits,表示ip報頭的長度。ip報頭的長度必然是4的倍數(shù),且最大長度為60bytes,最短長度20bytes。服務(wù)類型(type of service):占8bits,包含6個參數(shù)。第一個參數(shù)precedence(占3
33、bits)是用來決定ip封包的優(yōu)先等級,接下來4個參數(shù)delay、throughput、rellbaility、cost則是提供路由器選擇路徑時的參考,最后一個參數(shù)reserved則是保留使用??傞L度(total length):占16bist,用來記錄整個ip封包的長度,單位byte。標(biāo)識碼(identification):占16bits,記錄ip封包的標(biāo)識碼,在封包的分割和重組中,起到重要作用。封包分割標(biāo)志(flag):占3bits,第一位保留,第二位df,定義ip封包是否可以分割;第三位mf,定義此pi分片是否為原始封包的最后一個ip分片。分片偏移(fragment offset):占1
34、3bits,當(dāng)ip封包切割后,原始封包內(nèi)ip payload的數(shù)據(jù)會分散到每個ip分片之中,fragment offset便是用來記錄ipfragment所載送的是原始payload的那一段數(shù)據(jù)。fragment offset的單位是8bytes。存活時間(time to live):占8bits,用來記錄ip封包的“存活時間”,限制ip封包在路由器之間轉(zhuǎn)送的次數(shù)。當(dāng)路由器收到time to live字段為1的ip封包時,便直接丟棄,不再轉(zhuǎn)送。協(xié)議(protocol):占8bits,用來記錄上層所使用的協(xié)議。報頭錯誤校驗和(header checksum):占16bist,
35、用來進(jìn)行數(shù)據(jù)校驗計算,以保證數(shù)據(jù)正確,數(shù)據(jù)校驗只進(jìn)行ip報頭校驗。源ip地址(source address):占32bits,記錄來源裝置的ip地址。目的ip地址(destination address):占32bits,記錄目的裝置的ip地址。2、ip數(shù)據(jù)報的封裝當(dāng)一臺機(jī)器把一個ip數(shù)據(jù)報發(fā)送到另一臺機(jī)器時,整個數(shù)據(jù)報通過網(wǎng)絡(luò)幀的數(shù)據(jù)部分傳輸。ip數(shù)據(jù)報的封裝如表2.4所示。表2.4 ip數(shù)據(jù)報封裝對底層網(wǎng)絡(luò)來說,數(shù)據(jù)報類似于其他任何在機(jī)器間發(fā)送的報文。硬件不識別數(shù)據(jù)報的格式,也不理解ip目的地址。ip數(shù)據(jù)報封裝在一個幀中,物理網(wǎng)絡(luò)把包括首部在內(nèi)的整個數(shù)據(jù)報都看作數(shù)據(jù)。2.4.3 icmp協(xié)
36、議互聯(lián)網(wǎng)控制信息協(xié)議。icmp與ip位于同一層,用于在ip主機(jī)、路由器之間傳遞控制消息??刂葡⑹侵妇W(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。這些控制消息雖然并不傳輸用戶數(shù)據(jù),但是對于用戶數(shù)據(jù)的傳遞起著重要的作用。1、icmp的報文類型:常見的icmp報文有8類,包括:回應(yīng)應(yīng)答:目標(biāo)接到回應(yīng)請求,回應(yīng):收到;目標(biāo)不可達(dá):找不到目標(biāo);源抑制:由于阻塞,要求主機(jī)放慢發(fā)送;重定向:由于路由出問題,請求改變路由;請求回應(yīng):向目標(biāo)發(fā)送一個請求回應(yīng)報文;地址掩碼請求:用于測試網(wǎng)絡(luò)或子網(wǎng);地址掩碼響應(yīng):用于測試網(wǎng)絡(luò)或子網(wǎng);在本系統(tǒng)中只用到ping類型的icmp報文。2、icmp報文的封裝icm
37、p報文需要兩級封裝。每個icmp報文放在ip數(shù)據(jù)報的數(shù)據(jù)部分中通過互聯(lián)網(wǎng)傳遞8,而ip數(shù)據(jù)報本身放在幀的數(shù)據(jù)部分中通過物理網(wǎng)絡(luò)傳遞。為了標(biāo)識icmp,數(shù)據(jù)報協(xié)議字段包含的值為1,icmp報文的封裝如表2.5所示。表2.5 icmp報文的封裝3、ping類型的icmp報文ping(packet internet gopher分組網(wǎng)間網(wǎng)探測器)利用了icmp協(xié)議的“回應(yīng)”功能來實現(xiàn)主機(jī)/服務(wù)器是否有應(yīng)答的測試。ping協(xié)議分為ping請求和ping應(yīng)答,通過類型域的值來區(qū)分,類型域取值。0表示應(yīng)答,8表示請求。ping數(shù)據(jù)包的格式如表2.6所示。表2.6 ping數(shù)據(jù)包的格式2.4.4 udp協(xié)議
38、用戶數(shù)據(jù)報協(xié)議。udp全名為(user datagram protocol) 9,位于網(wǎng)絡(luò)層與應(yīng)用層之間,對上可接受應(yīng)用層協(xié)議所交付的信息,形成udp數(shù)據(jù);對下則是將整個udp封包交付給ip,成為ip數(shù)據(jù)包。1、udp具有以下特性(1)udp報頭可記錄封包源端和目的端的連接端口信息,讓封包能夠正確的送到目的端的應(yīng)用程序。(2)無可靠性 (connectionless)的傳送特性,這使得udp傳送過程較為簡單,但是相對的可靠性較差,在傳送過程中若發(fā)生問題,udp并不具有確認(rèn)、重傳等機(jī)制,而是必須依賴應(yīng)用層的協(xié)議來處理這些問題。與tcp相比,由于udp僅提供基本傳輸層的功能,因此在應(yīng)用上沒有tcp
39、廣泛,但使用udp的應(yīng)用程序,通常為了降低對計算機(jī)資源的要求;而且應(yīng)用層本身以提供數(shù)據(jù)完整性的檢測機(jī)制,因此不必依賴傳輸層的協(xié)議保證;當(dāng)使用組播和多播等一對多的傳送方式時,必須使用udp。2、udp數(shù)據(jù)報首部結(jié)構(gòu)表2.7 udp報文結(jié)構(gòu)udp報文結(jié)構(gòu)如表2.7所示。報文中各個字段的含義如下:源端口號:這是在源主機(jī)上運行的進(jìn)程使用的端口號。它有2字節(jié)長,這就表示端口號可以從0到65535。若源主機(jī)是客戶端(當(dāng)客戶進(jìn)程發(fā)送請求時),則在大多數(shù)情況下這個端口號就是動態(tài)端口號,它由該進(jìn)程請求,由源主機(jī)上運行的udp軟件進(jìn)行選擇。若源主機(jī)是服務(wù)器端(當(dāng)服務(wù)器進(jìn)程發(fā)送響應(yīng)時),則在大多數(shù)情況下這個端口號是
40、通用端口號。目的端口號:這是在目的主機(jī)上運行的進(jìn)程使用的端口號。它也是2字節(jié)。若目的主機(jī)是服務(wù)器端(當(dāng)客戶進(jìn)程發(fā)送請求時),則在大多數(shù)情況下這個端口號是通用端口號。在這種情況下,服務(wù)器將它收到的請求分組中的動態(tài)端口號復(fù)制下來。長度:這是一個2字節(jié)字段,它定義了用戶數(shù)據(jù)報的總長度。2字節(jié)可定義的總長度是從0到65535字節(jié)。但是,最小長度是8字節(jié),它指出用戶數(shù)據(jù)報只有首部而無數(shù)據(jù)。因此,數(shù)據(jù)的長度可以從0到65507(即65535-20-8)字節(jié)(20字節(jié)的ip首部和8字節(jié)的udp首部)。檢驗和:這個字段用來檢驗整個用戶數(shù)據(jù)報(首部加上數(shù)據(jù))出現(xiàn)的差錯。udp要封裝在ip數(shù)據(jù)報中傳輸,其封裝方法
41、如表2.8所示。表2.8 數(shù)據(jù)報的封裝2.4.5 tcp/ip協(xié)議傳輸控制協(xié)議10。與udp協(xié)議同屬于運輸層,是一種面向連接的傳輸層協(xié)議。它負(fù)責(zé)把要傳送的數(shù)據(jù)分成若干個數(shù)據(jù)包,并給每個數(shù)據(jù)包加上包頭,包上有相應(yīng)的編號,這樣可以在數(shù)據(jù)接收端將數(shù)據(jù)還原為原來的格式。在傳送過程中可能出現(xiàn)數(shù)據(jù)包丟失或損壞的情況,如果接收方在規(guī)定時間內(nèi)不能收到這些數(shù)據(jù)包,tcp協(xié)議會讓發(fā)送方重新發(fā)送丟失的數(shù)據(jù)包,直到數(shù)據(jù)包正確到達(dá)接收方或出現(xiàn)網(wǎng)絡(luò)超時。1、tcp首部分析tcp數(shù)據(jù)報結(jié)構(gòu)如表2.9所示。表2.9 tcp數(shù)據(jù)報結(jié)構(gòu)報文中各個字段的含義如下:源端口/目的端口:各占2個字節(jié)。運輸層服務(wù)訪問點tsap,作用是讓應(yīng)
42、用層的各種應(yīng)用程序都能將其數(shù)據(jù)通過端口向下交付給運輸層,以及讓運輸層知道應(yīng)當(dāng)將其報文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層相應(yīng)的進(jìn)程。發(fā)送序號:是本報文段所發(fā)送的數(shù)據(jù)部分第一個字節(jié)的序號。確認(rèn)序號:占4字節(jié)。tcp是面向數(shù)據(jù)流的,tcp傳送的報文可看成為連續(xù)的數(shù)據(jù)流。tcp把在一個tcp連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。整個數(shù)據(jù)的起始序號在連接建立時設(shè)置。首部中的序號字段就是指期望收到的數(shù)據(jù)(下一個消息)的第一字節(jié)的序號。確認(rèn)號:占4字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號,也就是期望收到的下一個報文段首部的序號字段的值。數(shù)據(jù)偏移:占4比特,指出tcp報文段的數(shù)據(jù)起
43、始處距離tcp報文段的起始處有多遠(yuǎn),實際上是tcp報文段首部的長度。由于首部長度不固定,因此數(shù)據(jù)偏移字段是必要的。數(shù)據(jù)偏移的最大值是60字節(jié),這也是tcp首部的最大長度。保留:占6比特,保留為今后使用,目前置為0??刂票忍?一共6個,分別為urg、ack、psh、rst、syn、fin。作用如下:緊急比特(urg):urg=l時表示加急數(shù)據(jù),應(yīng)盡快發(fā)送,此時緊急指針的值為加急數(shù)據(jù)的最后一個字節(jié)的序號。確認(rèn)比特(ack):ack=l時表示確認(rèn)序號字段有意義。急迫比特(psh):當(dāng)兩個應(yīng)用進(jìn)程進(jìn)行交互式的通信時,有時在一端的應(yīng)用進(jìn)程希望在鍵入一個命令后立即就能夠收到對方的響應(yīng)。在這種情況下,tcp
44、就可以使用急迫比特。將psh置1,并立即創(chuàng)建一個報文段發(fā)送出去,接收tcp收到急迫比特置1的報文段,就盡快地交付給接收應(yīng)用進(jìn)程。復(fù)位比特(rst):rst =1表示出現(xiàn)嚴(yán)重差錯,必須釋放連接,然后再重新建立運輸連接。同步比特(syn):在連接建立時用來同步序號。syn=1,ack=0表示連接請求消息。syn=l,ack=l表示同意建立連接消息。終止比特(fin):用來釋放一個連接。fin=1時表示數(shù)據(jù)已發(fā)送完,要求釋放連接。窗口大小:占2字節(jié)。通知發(fā)送方接收窗口的大小,即最多可以發(fā)送的字節(jié)數(shù)。校驗和:占2字節(jié)。校驗和字段檢驗的范圍包括首部和數(shù)據(jù)兩個部分。和udp一樣,在計算校驗和時要在tcp報
45、文段的前面加上12字節(jié)的偽首部,接收端接收到次報文段后,要加上這個偽首部來計算校驗和。選項:長度可變。tcp只規(guī)定了一種選項,即最大報文段長度mss(maximum segment size)。mss告訴對方tcp自己緩存能夠接收的報文段的數(shù)據(jù)字段的最大長度是mss個字節(jié)。在連接建立的過程當(dāng)中,雙方都將自己能夠支持的mss寫入這一字段。在以后數(shù)據(jù)傳送階段,mss取雙方提出的較小的那個數(shù)值。若主機(jī)未填寫這項,則mss默認(rèn)值為536字節(jié)長。tcp報文在傳輸時必須添加ip報頭進(jìn)行封裝,然后交付給ip層傳送。tcp數(shù)據(jù)被封裝在一個ip數(shù)據(jù)報中如表2.10所示。表2.10 ip數(shù)據(jù)報的封裝2.5 tcp
46、連接的建立與終止tcp協(xié)議是面向連接的協(xié)議。運輸連接是用來傳送tcp報文的。tcp的運輸連接的建立和釋放是每一次面向連接的通信中必不可少的過程。連接建立采用的過程叫做三次握手。當(dāng)主機(jī)a的tcp向主機(jī)b的tcp發(fā)出連接請求報文段,其首部中的同步比特syn應(yīng)置為1,同時選擇一個序號x,表明在后面?zhèn)魉蛿?shù)據(jù)時的第一個數(shù)據(jù)字節(jié)的序號是x。主機(jī)b的tcp收到連接請求報文段后,如同意,則發(fā)回確認(rèn)。在確認(rèn)報文段中應(yīng)將syn置為1,確認(rèn)號應(yīng)為x+1,同時也為自己選擇一個序號y。a的tcp收到此報文段后,還要向b給出確認(rèn),其確認(rèn)號為y+l。運行客戶進(jìn)程的主機(jī)a的tcp通知上層應(yīng)用程序,連接己經(jīng)建立。當(dāng)運行服務(wù)器進(jìn)
47、程的主機(jī)b的tcp收到主機(jī)a的確認(rèn)后,也通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立。此后就可以開始傳送數(shù)據(jù)。在數(shù)據(jù)傳輸結(jié)束后,通信的雙方都可以發(fā)出釋放連接的請求。假設(shè)主機(jī)a的應(yīng)用程序先向去tcp發(fā)出連接釋放請求,并且不再發(fā)送數(shù)據(jù)。tcp通知對方要釋放從a到b這個方向的連接,將發(fā)往b的tcp報文段首部的終止f創(chuàng)置1,其序號x等于前面己經(jīng)傳送過的數(shù)據(jù)的最后一個自己的序號加1。主機(jī)b的tcp收到釋放連接通知后即發(fā)出確認(rèn),其序號為x+1,同時通知高層應(yīng)用進(jìn)程。此后,主機(jī)b不再接收主機(jī)a發(fā)來的數(shù)據(jù)。但若主機(jī)b還有一些數(shù)據(jù)要發(fā)往主機(jī)a,則可以繼續(xù)發(fā)送。主機(jī)a只要正確接收到數(shù)據(jù),仍應(yīng)向主機(jī)b發(fā)送確認(rèn)。在主機(jī)b向主機(jī)a的
48、數(shù)據(jù)發(fā)送結(jié)束后,其應(yīng)用進(jìn)程就通知tcp釋放連接。主機(jī)b發(fā)出的連接釋放報文段必須將終止比特fni置為1,并使其序號y等于前面已經(jīng)傳送過的數(shù)據(jù)的最后一個字節(jié)的序號加1,還必須重復(fù)上次己經(jīng)發(fā)送過的ack=x+l。主機(jī)a必須對此發(fā)出確認(rèn),給出ack=y+1。這樣才把從b到a的反方向連接釋放掉。主機(jī)a的tcp再向其應(yīng)用進(jìn)程報告,整連己經(jīng)全部釋放。3 硬件實現(xiàn)3.1 電路設(shè)計環(huán)境本設(shè)計提供了一個由微處理器8051+以太網(wǎng)控制器11rtl8019as構(gòu)成的以太網(wǎng)節(jié)點,其中微處理器是使用8051 內(nèi)核的p89c668 負(fù)責(zé) rtl8019as 初始化及通過控制 rtl8019as實現(xiàn)網(wǎng)絡(luò)協(xié)議,進(jìn)行數(shù)據(jù)的接收和
49、發(fā)送等通信任務(wù)。選用 rtl8019as 的原因,它是一種 ne2000 類型的兼容網(wǎng)卡芯片,與其它網(wǎng)絡(luò)芯片如 dm9008,dp83901a等兼容,軟件移植性好,與51單片機(jī)接口簡單,不用轉(zhuǎn)換芯片。相對 51單片機(jī)而言rtl8019as 的帶寬充裕。8051+以太網(wǎng)控制器rtl8019as 構(gòu)成以太網(wǎng)接口具體電路原理圖如圖3.1所示。圖3.1 rtl8019as與8051的接口電路其中 rtl8019as的數(shù)據(jù)線sd0sd7與 8051 的 ad0ad7(p0口)相連,地址線a0a4與8051的a0a4(p0口鎖存后的信號)連接。讀寫信號經(jīng) gal16v8 產(chǎn)生,rtl8019as 的基地址
50、為0x5000按照上圖電路連接后,當(dāng)訪問地址的范圍為 0x50000x501f時,8051實現(xiàn)對rtl8019as 讀寫操作。3.2 rtl8019as芯片簡介rtl8019as是我國臺灣地區(qū)realtek公司生產(chǎn)的一種高度集成的全面支持ieee802.3標(biāo)準(zhǔn)的網(wǎng)絡(luò)接口控制器nic-network interface controller),它支持8位、16位處理器。同時還支持微軟的pnp (即插即用)規(guī)范。具有如下主要特性:(1)適應(yīng)于ethernet、ieee802.3、10base5、10base2、10baset;(2)與ne2000兼容,支持8位、16位數(shù)據(jù)總線;(3)全雙工,收發(fā)可
51、同時達(dá)到10mbps的速率,具有睡眠模式,以降低功耗;(4)內(nèi)置16kb的sram,用于收發(fā)緩沖,降低對主處理器的速度要求;(5)可連接同軸電纜和雙絞線,并可自動檢測所連接的介質(zhì);(6)100腳的tqfp封裝,縮小pcb尺寸。rtl8019as可提供100腳的tqfp封裝,其引腳可分為電源及時鐘引腳、網(wǎng)絡(luò)介質(zhì)接口引腳、自舉rom及初始化eeprom接口引腳、isa總線接口腳、輸出指示及工作方式配置引腳。本課題采用的是單片機(jī)控制網(wǎng)卡芯片,一部分引腳沒有用到。1、rtl8019as支持3種配置方式:(1)跳線(jumper)方式,i/o地址和中斷由跳線決定;(2)即插即用 (pnp)方式,由軟件進(jìn)
52、行自動配置plug and play;(3)免跳線方式(rt jumperless),i/o和中斷由外接的93c46里的內(nèi)容決定。本課題中采用的是跳線即jumper方式。在這三種方式里,我們的設(shè)計使用第二種跳線工作方式,第一種方式對于 51系列單片機(jī)來說無法實現(xiàn)。未用第三種方式又可以省掉一片顆 93c46 12芯片,不但減少了連線,而且降低了成本。rtl8019as的引腳懸空時,輸入狀態(tài)為低電平,因為芯片引腳內(nèi)部已經(jīng)接了一個100k 的下拉電阻。(1)i/o地址:rtl8019as的第65腳jp決定網(wǎng)卡的工作方式,本設(shè)計中jp腳接高電平(vcc),即使用跳線方式,此時可以省掉93c46芯片。此
53、時,rtl8019as的 i/o地址由引腳85,84,82,81(ios3ios0)決定,本設(shè)計中因為ios3ios0都懸空,選擇的基地址為0300h,基地址的確定詳見rtl8019as的數(shù)據(jù)手冊。(2)中斷:芯片的中斷由引腳 80,79,78,(irqs2.irqs0)決定。全部懸空時,選擇 irq0 考慮到單片機(jī)的資源比較緊張,我們的單片機(jī)程序設(shè)計中沒有使用中斷方式而使用的查詢方式。(3)網(wǎng)絡(luò)接口類型:由 74,77(pl0,pl1)引腳決定,使用自動檢測。設(shè)計中 64 腳 aui懸空,使用rj45接口。 (4)brom:設(shè)計中未用 brom,引腳 72,71,69,68,67,(bs4.
54、bs0) 懸空即可。(5)總線模式:rtl8019as 的 iocs16b 引腳通過一個 27k 的電阻拉低,使得 rtl8019as 工作在8位數(shù)據(jù)總線的模式。2、單片機(jī)的口地址與 rtl8019as口地址之間的映射關(guān)系 (1) rtl8019as的基地址與口線的關(guān)系如表3.1。表3.1 以太網(wǎng)卡驅(qū)網(wǎng)卡地址線地址線sa19-sa10sa9sa8sa7sa6sa5sa4sa3sa2sa1sa0300h01100000000.011000xxxxx31fh01100011111可以看到 從 a19a5 全部地址線除 a9、a8接高電平外,其余全接地,即是固定的0000000000110
55、00。(2) mcu口線與 rl8019as 口線的連接關(guān)系 設(shè)計中使用單片機(jī)地址線的 a0a4 分別接到 rtl8019as的地址線 sa0-sa4 上 兩者的對應(yīng)關(guān)系如表3.2。表3.2 單片機(jī)與8019芯片的地址映射單片機(jī)的 i/o地址rtl8019的 i/o 地址 0101000000000000(0x5000)300h01010000000xxxxx3xxh0101000000011111(0x50xx)31fh為了方便操作 在程序里用宏定義 reg00-reg1f 來對應(yīng)300h-31fh端口 以簡化對地址的操作 #define reg00 xbyte0x5000 /*
56、300h*/ #define reg01 xbyte0x5001 /* 31fh*/ #define reg02 xbyte0x5002 #define reg1f xbyte0x501f /* 31fh*/ 其中 reg01、reg0f分別對應(yīng)rtl8019as內(nèi)部的寄存器,reg10對應(yīng)對rtl8019as進(jìn)行 dma讀寫的端口,reg1f 對應(yīng) rtl8019as的復(fù)位端口。tcp/ip支持多種不同的鏈路層協(xié)議,這取決于網(wǎng)絡(luò)所使用的硬件,如以太網(wǎng)、令牌環(huán)網(wǎng)等,在本設(shè)計中采用的是以太網(wǎng)。驅(qū)動程序?qū)崿F(xiàn)的功能就是將要發(fā)送的數(shù)據(jù)包按指定格式寫入芯片輸入輸出緩沖區(qū)中并啟動發(fā)送命令,8019會自動把數(shù)據(jù)包轉(zhuǎn)換成物理幀格式在物理信道上傳輸。 3.2.1 rtl8019as內(nèi)部結(jié)構(gòu)rtl8019as的內(nèi)部結(jié)構(gòu)如圖3.2所示。圖3.2 rtl8019as內(nèi)部結(jié)構(gòu)從上圖可以看出8019內(nèi)部有三種存儲器,這里只用到16kb的sram。mac邏輯是介質(zhì)訪問控制邏輯,它完成以下功能:當(dāng)單片機(jī)向網(wǎng)上發(fā)送數(shù)據(jù)時,先將一幀數(shù)據(jù)通過遠(yuǎn)程dma通道送到rtl8019as中的發(fā)送緩存區(qū),然后發(fā)出傳送命令;當(dāng)rtl8o19as完成了上幀的發(fā)送后,再開始此幀的發(fā)送。rtl801
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年智能交通融資擔(dān)保服務(wù)合同3篇
- 二零二五年度旅游項目出借與運營管理合同3篇
- 二零二四年度云服務(wù)合同服務(wù)內(nèi)容、存儲容量與技術(shù)支持
- 2025至2030年中國不銹鋼攪拌釜數(shù)據(jù)監(jiān)測研究報告
- 2025年拆除施工安全協(xié)議及現(xiàn)場環(huán)境保護(hù)責(zé)任書及監(jiān)測報告3篇
- 中國古典戲劇的創(chuàng)新路徑-深度研究
- 2025年中國PVC彩色食品包裝片市場調(diào)查研究報告
- 2025至2031年中國陶瓷水龍頭行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國汽蒸絨面料行業(yè)投資前景及策略咨詢研究報告
- 2025年度櫥柜企業(yè)社會責(zé)任履行合同8篇
- 廣東省佛山市2025屆高三高中教學(xué)質(zhì)量檢測 (一)化學(xué)試題(含答案)
- 人教版【初中數(shù)學(xué)】知識點總結(jié)-全面+九年級上冊數(shù)學(xué)全冊教案
- 四川省成都市青羊區(qū)成都市石室聯(lián)合中學(xué)2023-2024學(xué)年七上期末數(shù)學(xué)試題(解析版)
- 咨詢公司績效工資分配實施方案
- 2024-2025學(xué)年人教版七年級英語上冊各單元重點句子
- 2025新人教版英語七年級下單詞表
- 公司結(jié)算資金管理制度
- 2024年小學(xué)語文教師基本功測試卷(有答案)
- 未成年入職免責(zé)協(xié)議書
- 項目可行性研究報告評估咨詢管理服務(wù)方案1
- 5歲幼兒數(shù)學(xué)練習(xí)題
評論
0/150
提交評論