




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、黑龍江*畢 業(yè) 論 文 (設(shè) 計)題目:單片機(jī)的以太網(wǎng)接入設(shè)計學(xué)生姓名赫東學(xué) 號084專 業(yè)電子信息工程班 級2008級2班指導(dǎo)教師王 琢學(xué) 部計算機(jī)科學(xué)與電氣工程答辯日期2012年5月19日黑龍江東方學(xué)院本科生畢業(yè)論文(設(shè)計)任務(wù)書姓名赫東學(xué)號0專業(yè)班級電子信息工程08級2班畢業(yè)論文(設(shè)計)題目:單片機(jī)的以太網(wǎng)接入設(shè)計畢業(yè)論文(設(shè)計)的立題依據(jù) 隨著以太網(wǎng)控制芯片的性價比的提高,利用專用的芯片完成單片機(jī)與網(wǎng)關(guān)之間的協(xié)議轉(zhuǎn)換成為單片機(jī)應(yīng)用系統(tǒng)接入Internet網(wǎng)絡(luò)的一大研究熱點(diǎn)。因此,除了傳統(tǒng)的便攜、低功耗等性能,網(wǎng)絡(luò)接入能力正逐漸成為嵌入式系統(tǒng)所關(guān)注的重點(diǎn)。主要內(nèi)容及要求 本論文內(nèi)容包括緒
2、論、單片機(jī)接入以太網(wǎng)絡(luò)的最小系統(tǒng)、TCP/IP協(xié)議棧、硬件電路設(shè)計、軟件設(shè)計實(shí)現(xiàn)以及結(jié)論。本論文要求詳細(xì)地闡述單片機(jī)以太網(wǎng)的接入設(shè)計開發(fā)過程。進(jìn)度安排12月12日選題12月13日12月29日接受指導(dǎo)老師的指導(dǎo)12月30 日1 月17日擬定論文大綱1 月18日2 月26日搜集、查閱、整理相關(guān)資料2 月27日3 月27日初稿形成3 月28日4 月8 日初稿審定4 月9 日4 月17日第一次修改4 月18日4 月22日第一次審定4 月23日5 月3 日第二次修改5 月4 日5 月9 日定稿5 月10 日5 月18日論文評閱小組評審論文(設(shè)計)5 月19日畢業(yè)論文(設(shè)計)答辯學(xué)生簽字:指導(dǎo)教師簽字:年
3、 月 日黑龍江東方學(xué)院本科畢業(yè)論文(設(shè)計)單片機(jī)的以太網(wǎng)接入設(shè)計摘要資隨著互聯(lián)網(wǎng)的日益普及,TCP/IP協(xié)議族已經(jīng)成為因特網(wǎng)上事實(shí)的通信標(biāo)準(zhǔn)。與此同時,無論是在家中、辦公室或者其他地方,都能方便地連接到網(wǎng)絡(luò)上。接入因特網(wǎng)的便捷性大大增加,而成本卻越來越低,如果能實(shí)現(xiàn)“每一設(shè)備都接入因特網(wǎng)”,則可方便、低廉地將信息傳送到幾乎任何一地,實(shí)現(xiàn)全球化信息。因此,除了傳統(tǒng)的便攜、低功耗等性能,網(wǎng)絡(luò)接入能力正逐漸成為嵌入式系統(tǒng)所關(guān)注的重點(diǎn)。本設(shè)計介紹了一種基于單片機(jī)的以太網(wǎng)接入設(shè)計,單片機(jī)接入以太網(wǎng)的最小系統(tǒng)構(gòu)成,以及以太網(wǎng)控制器RTL8019AS的工作原理。主要提出了將精簡TCP/IP協(xié)議棧嵌入單片機(jī)系
4、統(tǒng)中,通過RTL8019AS實(shí)現(xiàn)了UDP數(shù)據(jù)在以太網(wǎng)數(shù)據(jù)傳輸?shù)姆桨?。設(shè)計中給出系統(tǒng)硬件原理圖和有關(guān)實(shí)現(xiàn)TCP/IP協(xié)議的轉(zhuǎn)換和程序代碼,對系統(tǒng)的軟、硬件設(shè)計做出了闡述,并給出了設(shè)計實(shí)驗結(jié)果。結(jié)果表明這種通過軟件嵌入TCP/IP協(xié)議的單片機(jī)系統(tǒng),具有成本低、硬件少、傳輸速度快、使用方便等優(yōu)點(diǎn),特別適用于現(xiàn)有的網(wǎng)絡(luò)傳輸系統(tǒng),在數(shù)據(jù)采集、數(shù)據(jù)傳輸?shù)阮I(lǐng)域有廣泛的應(yīng)用前景。關(guān)鍵詞:單片機(jī);TCP/IP協(xié)議;以太網(wǎng)控制器;以太網(wǎng)數(shù)據(jù)關(guān)鍵詞與摘要內(nèi)容隔行書寫,詞條用小四號宋體字,詞條間用分號(;)隔開,3-5個關(guān)鍵詞The Design of Ethernet Access Based on MCUAbst
5、ractWith the increasing popularity of Internet, TCP / IP protocol suite has become the fact that the Internet communications standards. At the same time, whether at home, office or elsewhere, you can easily connect to the Internet. The convenience of Internet access is greatly increased, and costs a
6、re getting lower and lower, if they can achieve "Each device access Internet ", can be convenient, inexpensive way to transmit the information to almost any one place, globalization of information. Therefore, in addition to the traditional portable, low power consumption, such as performan
7、ce, network access ability which is increasingly becoming the focus of embedded system. This design introduces a design based on MCU Ethernet access, Ethernet access to the smallest single chip system structure, and the Ethernet controller RTL8019AS works. Mainly proposed to streamline the TCP / IP
8、protocol stack embedded microcontroller system is achieved through the RTL8019AS UDP data in the Ethernet data transmission. Given system hardware design schematics and the realization of TCP / IP protocol conversion, and program code, hardware and software designed to make the system are described,
9、 and gives the design results. The results show that the software embedded TCP / IP protocol of the SCM system with low cost, less hardware, transmission speed, ease of use, especially for the existing network transmission system, data acquisition, data transmission and other areas wide range of app
10、lications.Keywords: MCU ;TCP/IP Protocol ; Ethernet Controller ; Ethernet Data千萬不要刪除行尾的分節(jié)符,此行不會被打印。(在word菜單-工具-選項-視圖標(biāo)簽中,格式標(biāo)記部分請全部打?qū)μ?,這樣就可以看到隱藏的分節(jié)符和空格等信息了)-II-目錄摘要IAbstractII第1章 緒論11.1 研究目的和意義11.2 國內(nèi)外研究狀況2第2章 單片機(jī)接入以太網(wǎng)的最小系統(tǒng)52.1 單片機(jī)的基本結(jié)構(gòu)52.2 以太網(wǎng)控制器的選擇及工作原理62.2.1 以太網(wǎng)控制器的選擇62.2.2 RTL8019AS控制器的介紹72.2.3 RT
11、L8019AS的工作原理72.3 TCP/IP協(xié)議棧92.3.1 TCP/IP協(xié)議的分層結(jié)構(gòu)92.3.2 TCP/IP協(xié)議數(shù)據(jù)的處理112.3.3 相關(guān)協(xié)議報文的格式122.4 本章小結(jié)15第3章 硬件電路設(shè)計163.1 單片機(jī)系統(tǒng)擴(kuò)展電路163.2RTL8019AS和單片機(jī)的接口電路173.2 本章小結(jié)19第4章 軟件設(shè)計204.1 串行口控制程序的設(shè)計204.2 RTL8019AS控制程序的設(shè)計214.3 精簡TCP/IP協(xié)議棧的現(xiàn)實(shí)意義及其工作流程244.4 以太網(wǎng)串行口數(shù)據(jù)轉(zhuǎn)換模塊工作實(shí)例274.5 本章小結(jié)30結(jié)論31參考文獻(xiàn)32附錄34致謝39千萬不要刪除行尾的分節(jié)符,此行不會被打
12、印。在目錄上點(diǎn)右鍵“更新域”,然后“更新整個目錄”黑龍江東方學(xué)院本科畢業(yè)論文(設(shè)計)單片機(jī)的以太網(wǎng)接入設(shè)計第1章 緒論1.1 研究目的和意義隨著Internet技術(shù)的普及,信息共享的程度越來越高,人類進(jìn)入了所謂的后PC時代,后PC時代的標(biāo)志是嵌入式技術(shù)(Embedded Technology)1。嵌入式系統(tǒng)(Embedded Technology)將是繼PC和Internet之后的又一起世界高新技術(shù)發(fā)展大潮。嵌入式技術(shù)的飛速發(fā)展,將為人們對各種客戶終端設(shè)備的靈活、高效和高性價比的需要,提供良好的解決方案2。單片機(jī)(Micro Controller Unit)之所以又稱嵌入式微控制器,原因在于它
13、可以嵌入到任何微型或小型儀器或設(shè)備中,而且在體積、價位、可靠性等方面具有微型計算機(jī)無法比擬與抗衡的優(yōu)點(diǎn)。單片機(jī)嵌入式系統(tǒng)已經(jīng)廣泛用于社會各個方面:軍用 各種軍用電子裝備,雷達(dá)、電子對抗軍事通信裝備,野戰(zhàn)指揮作戰(zhàn)用各種專用設(shè)備等。家用 各種信息家電產(chǎn)品,廣泛采用微處理器微控制器及嵌入式軟件,如數(shù)字電視機(jī)、機(jī)頂盒,數(shù)碼相機(jī),可視電話等。工業(yè)用 各種智能測量儀表、數(shù)控裝置、可編程控制器、控制機(jī)、分布式控制系統(tǒng)、現(xiàn)場總線儀表及控制系統(tǒng)、工業(yè)機(jī)器人、機(jī)電一體化機(jī)械設(shè)備、汽車電子設(shè)備等。商用 廣泛采用微處理器、控制器芯片級、標(biāo)準(zhǔn)總線的模板級及系統(tǒng)嵌入式計算機(jī)。各類收款機(jī)、POS系統(tǒng)、電子秤、條形碼閱讀機(jī)、
14、商用終端、銀行點(diǎn)鈔機(jī)、IC卡輸入設(shè)備、取款機(jī)等。醫(yī)用電子設(shè)備 各種醫(yī)療電子儀器,如X光機(jī)、超聲診斷儀、計算機(jī)斷層成像系統(tǒng)、心臟起博器、監(jiān)護(hù)儀、診斷系統(tǒng)等。辦公用 復(fù)印機(jī)、打印機(jī)、傳真機(jī)、掃描儀、激光照排系統(tǒng)、安全監(jiān)控設(shè)備、手機(jī)、尋呼機(jī)、個人數(shù)字助理(PDA)、通信終端、程控交換機(jī)、網(wǎng)絡(luò)設(shè)備、數(shù)字音頻廣播系統(tǒng)等。單片機(jī)應(yīng)用系統(tǒng)和Internet網(wǎng)絡(luò)連接已是一種趨勢:單片機(jī)或微控制器已經(jīng)在家庭和工業(yè)等各個領(lǐng)域得到了非常廣泛的應(yīng)用,然而就目前來看,大多數(shù)嵌入式系統(tǒng)還處于單獨(dú)應(yīng)用的階段,以MCU為核心,與一些監(jiān)測、伺服、指示設(shè)備配合實(shí)現(xiàn)一定的功能。Internet 現(xiàn)已成為社會重要的基礎(chǔ)信息設(shè)施之一,
15、是信息流通的重要渠道,如果單片機(jī)應(yīng)用系統(tǒng)能夠連接到Internet上,則可以方便、低廉地將信息傳送到幾乎世界上的任何一個地方。并可以實(shí)現(xiàn)遠(yuǎn)程控制,特別在遠(yuǎn)程教育、遠(yuǎn)程測控等領(lǐng)域有廣闊的市場3。對于我國國內(nèi)情況來說:目前,PC 機(jī)的架構(gòu)為Wintel 所控制、壟斷,即由Intel的CPU+微軟的Windows 主宰了產(chǎn)業(yè)。在該領(lǐng)域,我們沒有主動權(quán),沒有創(chuàng)新空間,無能為力,充其量只是組裝機(jī)和搞計算機(jī)系統(tǒng)集成等,自己的軟件產(chǎn)品和出口軟件很少,中國軟件企業(yè)規(guī)模太小。專家估計,1020年內(nèi)難以突破。單片機(jī)嵌入式系統(tǒng)需求千變?nèi)f化,沒有統(tǒng)一的架構(gòu),軟硬件需要各種各樣的組合,技術(shù)密集,市場容量大,我們有無限的
16、創(chuàng)新空間。主要是:計算環(huán)境從PC為中心轉(zhuǎn)變?yōu)橐跃W(wǎng)絡(luò)為中心,涌現(xiàn)了各種新的信息設(shè)備(IA),不必與PC 兼容;應(yīng)用軟件逐步從PC 移到網(wǎng)上,不必與Windows 兼容;可裁減,良好的性能價格比4。因此,深入研究8位或16位單片機(jī)嵌入式系統(tǒng)接入Internet的問題,是一個巨大的商機(jī)與挑戰(zhàn)。嵌入式技術(shù)將為我國信息化騰飛增添重要推動力,當(dāng)然也會促進(jìn)教育現(xiàn)代化的飛速發(fā)展。1.2 國內(nèi)外研究狀況以單片機(jī)為核心的電子設(shè)備實(shí)現(xiàn)網(wǎng)絡(luò)化的關(guān)鍵是電子設(shè)備本身增加TCP/IP協(xié)議,目前的解決方案主要可以分為四大類。(1)直接在電子設(shè)備上實(shí)現(xiàn)TCP/IP:此方案的實(shí)質(zhì)是由MCU內(nèi)部固化TCP/IP協(xié)議的芯片,組成應(yīng)用
17、系統(tǒng)的核心。此方案中,單片機(jī)應(yīng)用系統(tǒng)可以直接撥號上網(wǎng),硬件電路相對簡單,也不需要其它中間環(huán)節(jié)的支持。但由于單片機(jī)使用了TCP/IP協(xié)議芯片,因此需要大容量的程序存儲器,而且要求MCU有較高的運(yùn)行速度5。應(yīng)用系統(tǒng)的設(shè)計工程師還必須熟悉TCP/IP協(xié)議和相關(guān)的接口地址,軟件設(shè)計復(fù)雜,工作量大,另外,每一個電子設(shè)備必須申請一個IP地址。用此方案實(shí)現(xiàn)的典型代表有Scenix Semiconductor 公司的SX-stack、Seiko公司的S7600A芯片、Wind River Sys公司開發(fā)的VXWORKS及PSOS操作系統(tǒng)、美國Ubicom公司的IP2022芯片等。(2)利用公用的TCP/IP協(xié)
18、議轉(zhuǎn)換器接入Internet:此需加載TCP/IP協(xié)議到單片機(jī)中,此方案的基本思路是:遠(yuǎn)程控制端首先通過路由器尋找目標(biāo),在通過網(wǎng)卡的ISA接口傳入單片機(jī)。然后單片機(jī)中加載的驅(qū)動程序?qū)⒅D(zhuǎn)換成為物理幀格式。最后由TCP/IP協(xié)議將之轉(zhuǎn)化為應(yīng)用層控制命令,這種方案是在單片機(jī)添加了TCP/IP協(xié)議,數(shù)據(jù)通過TCP/IP協(xié)議棧的轉(zhuǎn)換,然后由單片機(jī)控制網(wǎng)卡交換數(shù)據(jù)6。(3)利用網(wǎng)關(guān)在網(wǎng)絡(luò)中橋接代理協(xié)議棧和TCP/IP協(xié)議棧:舉一個簡單的例子:一個通過互聯(lián)網(wǎng)控制的儀表,它和控制它的服務(wù)器之間只需要交換很少量的幾個字節(jié)的數(shù)據(jù),不需要功能完整的TCP/IP協(xié)議去管理只有幾個字節(jié)的數(shù)據(jù)。網(wǎng)關(guān)完全可以擔(dān)當(dāng)翻譯轉(zhuǎn)換
19、的業(yè)務(wù),將代理協(xié)議提供的數(shù)據(jù)轉(zhuǎn)換成TCP/IP需要的數(shù)據(jù),或?qū)CP/IP發(fā)送的數(shù)據(jù)轉(zhuǎn)換后提供給代理協(xié)議8。(4)局域網(wǎng)接入Internet解決方案:將嵌入式電子設(shè)備通過專用的現(xiàn)場協(xié)議(如RS232、RS485、CAN總線協(xié)議)連接起在一起,然后與一臺專門用來做網(wǎng)關(guān)的PC連接起來,通過PC與Internet連接7。例如,組建網(wǎng)絡(luò)家庭,首先是家庭內(nèi)部組網(wǎng),自成體系,繼而又與互聯(lián)網(wǎng)相連,將家庭環(huán)境與外界溝通。家庭局域網(wǎng)是一個組建家庭信息網(wǎng)絡(luò)的核心,也將是一座溝通計算機(jī)與家電之間聯(lián)系的橋梁,家用電腦、傳真、打印機(jī)、掃描儀、數(shù)字相機(jī)、可視電話、微波爐、冰箱、空調(diào)等都是連接到家庭局域網(wǎng)的基本元素。家庭網(wǎng)
20、絡(luò)帶來的好處是家庭資源合理利用并搭建家庭辦公(Small Office Home Office)所需的環(huán)境。在未來家庭,越來越多的成員會選擇家庭辦公,越來越多的公司將安排它們的員工家庭辦公9。隨著以太網(wǎng)控制芯片的性價比的提高,利用專用的芯片完成單片機(jī)與網(wǎng)關(guān)之間的協(xié)議轉(zhuǎn)換成為單片機(jī)應(yīng)用系統(tǒng)接入Internet網(wǎng)絡(luò)的一大研究熱點(diǎn)。本設(shè)計將在單片機(jī)上嵌入TCP/IP協(xié)議以達(dá)到以太網(wǎng)接接入的目的。即將TCP/IP協(xié)議以軟件方式嵌入到嵌入系統(tǒng)的ROM中,但由于協(xié)議棧較龐大,因此要精簡TCP/IP協(xié)議,實(shí)現(xiàn)與需求相關(guān)的部分,大幅度減少對系統(tǒng)資源的需求。本設(shè)計采用了軟件方式,使用高性能51系列MCU,成本低
21、、技術(shù)成熟,軟硬件開發(fā)周期短,并且設(shè)計方案靈活多變,可合用不同的對象,值得深入探究設(shè)計。第2章 單片機(jī)接入以太網(wǎng)的最小系統(tǒng)2.1 單片機(jī)的基本結(jié)構(gòu) 一個單片機(jī)以太網(wǎng)接入系統(tǒng)的最小系統(tǒng)構(gòu)成包括單片機(jī)(MCU)、以太網(wǎng)控制器和驅(qū)動程序10。其系統(tǒng)結(jié)構(gòu)如圖2-1所示。下面從單片機(jī)基本機(jī)構(gòu)、以太網(wǎng)控制器的選擇及工作原理進(jìn)行說明。圖2-1 單片機(jī)以太網(wǎng)接入的最小系統(tǒng)構(gòu)成MCS-51系列的CPU由運(yùn)算器和控制器兩部分組成。圖2-2所示51系列單片機(jī)基本組成。 圖2-2 MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)框圖(1)運(yùn)算器。用于實(shí)現(xiàn)算術(shù)和邏輯運(yùn)算,包括圖中所示的算術(shù)和邏輯單元(ALU)、累加器(ACC)、程序狀態(tài)字
22、(PSW)、寄存器B、及暫存器1和暫存器2等。(2)控制器。是控制單片機(jī)程序運(yùn)行和協(xié)調(diào)各部件正常工作的“指揮中心”,包括圖中所示的PC(程序計數(shù)器)、PC+1計數(shù)器、指令寄存器、指令譯碼器和時序及控制電路等。(3)內(nèi)部數(shù)據(jù)存儲器。如圖內(nèi)部數(shù)據(jù)存儲器有128字節(jié)或256字節(jié) 的RAM和RAM地址寄存器等構(gòu)成。(4)內(nèi)部程序存儲器。8051內(nèi)部有4K字節(jié)的ROM單元,用于存放程序和程序中的常量數(shù)據(jù),簡稱“內(nèi)部ROM”。目前內(nèi)部ROM的種類基本上有掩膜ROM、OTP(一次性可編程)類型的ROM、EEPROM、Flash等幾種。(5)并行I/O端口。MCS-51單片機(jī)提供了4個8位I/O端口,分別命名
23、為P0、P1、P2和P3,這些端口既可以按字節(jié)一次輸入或輸出8位數(shù)據(jù),同時它們的每一位都可以獨(dú)立運(yùn)行輸入或輸出操作。在系統(tǒng)需要擴(kuò)展外部ROM或RAM時,P0口可復(fù)用為地址總線低8位和數(shù)據(jù)總線,P2口作為地址總線高8位。P3口的各位還可以復(fù)用為中斷輸入引腳、讀寫控制引腳、計數(shù)器輸入引腳以及串行口等。(6)定時器/計數(shù)器。MCS-51內(nèi)部有兩個16位的定時器/計數(shù)器,用于實(shí)現(xiàn)定時和計數(shù)功能。(7)串行通信接口。MCS-51內(nèi)部有一個全雙工的UART(通用串行收發(fā)器),可以和其他UART通信,實(shí)現(xiàn)數(shù)據(jù)的串行傳送。(8)中斷控制系統(tǒng)。MCS-51內(nèi)部提供了5個中斷源,可分為兩個優(yōu)先級進(jìn)行中斷處理。(9
24、)時鐘電路。圖2-2中的OSC為MCS-51內(nèi)部的時鐘電路,外接石英晶體或輸入一定頻率的脈沖即可產(chǎn)生時鐘脈沖序列,控制CPU內(nèi)部邏輯電路的運(yùn)行1113。2.2 以太網(wǎng)控制器的選擇及工作原理2.2.1 以太網(wǎng)控制器的選擇以太網(wǎng)的物理介質(zhì)有多種標(biāo)準(zhǔn),主要以10Base-T為例,討論單片機(jī)與IEEE802.3/802.2局域網(wǎng)的連接方式。到目前為止,幾乎所有的計算機(jī)系統(tǒng)都是通過專用的以太網(wǎng)控制器接入以太網(wǎng)的。對于單片機(jī)系統(tǒng),在選擇以太網(wǎng)控制器時,要考慮一下幾個因素:首先,要求所選的以太網(wǎng)控制器必須支持8位工作模式。實(shí)際上,只有部分基于ISA總線的以太網(wǎng)控制器才能滿足此條件,所以基于PCI總線的不在此
25、考慮之列。其次,要考慮以太網(wǎng)控制器的片上緩存,最好選用具有足夠片上緩存的以太網(wǎng)控制器以簡化系統(tǒng)設(shè)計。再次,應(yīng)考慮以太網(wǎng)控制器與主機(jī)的數(shù)據(jù)交換形式,如有的可支持中斷或只可支持查詢,這勢必對系統(tǒng)設(shè)計產(chǎn)生一定的影響。最后,考慮其是否與NE2000兼容。根據(jù)上述分析,我們可以選擇采用臺灣Realtek公司生產(chǎn)的10M以太網(wǎng)接口芯片RTL8019AS。2.2.2 RTL8019AS控制器的介紹RTL8019AS是為了配合PC系統(tǒng)的ISA總線而設(shè)計的一款兼容NE2000的網(wǎng)絡(luò)接口的10M全雙工以太網(wǎng)控制器,性能優(yōu)良,價格低廉,在10M網(wǎng)卡市場上曾有極高的占有率。雖然10M的以太網(wǎng)接入速率顯得“很慢”,但是
26、對于處理速度和運(yùn)算能力都較弱的單片機(jī)而言,以這樣的速率接入網(wǎng)絡(luò)還是非常不錯的14。RTL8019AS的特點(diǎn)主要包括如下幾個方面。(1) 符合Ethernet與IEEE802.3標(biāo)準(zhǔn)。(2) 全雙工,收發(fā)可同時達(dá)到10Mb/s的速率。(3) 支持即插即用(PnP),用于計算機(jī)網(wǎng)卡時可減少系統(tǒng)配置的工作量。(4) 內(nèi)置16KB的SRAM,用于收發(fā)緩沖,降低 對主處理器的速度要求。(5) 支持8/16位數(shù)據(jù)總線,具有8個中斷申請以及16個I/O基地址選擇。(6) 支持UTP、AUI和BNC自動檢測,還支持對10BasT拓?fù)浣Y(jié)構(gòu)的自動極性糾正。(7) 允許4個診斷LED引腳可編程輸出。100引腳的PQ
27、FP封裝,縮小了PCB尺寸。2.2.3 RTL8019AS的工作原理(1)RTL8019AS的內(nèi)部結(jié)構(gòu)RTL8019AS內(nèi)部可分為遠(yuǎn)程DMA接口、本地DMA接口、MAC(介質(zhì)訪問控制)邏輯、線路數(shù)據(jù)編碼解碼邏輯和其他端口。內(nèi)部結(jié)構(gòu)如圖2-3所示。遠(yuǎn)程DMA接口是指RT8019AS提供給主控CPU對其內(nèi)部RAM進(jìn)行讀寫的總線接口。因為RTL8019AS是為了配合PC系統(tǒng)的ISA總線設(shè)計的,因此遠(yuǎn)程DMA接口指的就是符合ISA總線接口規(guī)范要求的三總線系統(tǒng)。單片機(jī)在控制RTL8019AS收發(fā)數(shù)據(jù)時只需提供符合ISA總線接口操作時序的總線信號就可對遠(yuǎn)程DMA操作。本地DMA接口指的是RTL8019AS
28、與物理層數(shù)據(jù)的連接通道,完成控制器與傳輸介質(zhì)之間的數(shù)據(jù)格式轉(zhuǎn)換及傳輸。MAC介質(zhì)訪問控制邏輯完成以下功能:當(dāng)單片機(jī)向網(wǎng)上發(fā)送數(shù)據(jù)時,先將一幀數(shù)據(jù)通過遠(yuǎn)程DMA通道傳送到RTL8019AS中的發(fā)送緩存區(qū),然后發(fā)出傳送命令;當(dāng)RTL8019AS完成了上幀的發(fā)送后,再次開始此幀的發(fā)送。RTL8019AS接收到的數(shù)據(jù)通過MAC比較、CRC校驗后,由FIFO存到接受緩沖區(qū);收滿一幀后,以中斷或寄存器標(biāo)志的方式通知CPU。FIFO邏輯控制對收發(fā)數(shù)據(jù)的緩沖,以減少對本地DMA請求的頻率。本地DMA的操作優(yōu)先級要高于遠(yuǎn)程DMA,RTL8019AS或會通過IOCHRDY信號申請延時。不過對于單片機(jī)這樣總線操作速
29、率遠(yuǎn)低于網(wǎng)絡(luò)數(shù)據(jù)字節(jié)接收速率的CPU而言,不用關(guān)心總線延時的問題。圖2-3 RTL8019AS的內(nèi)部結(jié)構(gòu)(2)RTL8019AS內(nèi)部RAM地址空間分配RTL8019AS內(nèi)部有兩塊RAM區(qū):一塊16字節(jié),為數(shù)據(jù)緩沖RAM。地址為0x40000x7FFF;一塊32字節(jié),為配置寄存器區(qū),地址為0x00000x001F。數(shù)據(jù)緩沖RAM按頁存儲,每256字節(jié)為一頁,共有64頁。一般將數(shù)據(jù)緩沖RAM的前12頁(即0x40000x4BFF)作為發(fā)送緩沖區(qū);后52頁(即0x4C000x7FFF)存儲區(qū)作為接收緩沖區(qū)。它實(shí)際上是一個雙端口的RAM,有兩套總線連接到該RAM,一套是RTL8019AS讀/寫該RAM
30、的總線,即本地DMA;另一套是外部CPU單片機(jī)讀/寫該RAM的總線,即遠(yuǎn)程DMA。單片機(jī)要接收和發(fā)送數(shù)據(jù)報就必須通過遠(yuǎn)程DMA接口讀/寫RTL8019AS內(nèi)部16KB的數(shù)據(jù)緩沖RAM。(3)RTL8019AS的I/O地址及寄存器地址分配RTL8019AS共有32位I/O地址,地址偏移量為0x000x1F。其中0x000x0F共16個地址,對應(yīng)RTL8019AS內(nèi)部的16個寄存器。RTL8019AS內(nèi)部寄存器共4頁,編號分別為PAGE0、PAGE1、PAGE2、PAGE3,每頁都有16個寄存器,它們的編址都是0x000x1F,由RTL8019AS的CR中的PS1、PS0位來決定要訪問的頁,但與N
31、E2000兼容的寄存器只有前3頁。遠(yuǎn)程DMA地址共8個,從0x100x17,功能相同,都可以用來做遠(yuǎn)程DMA端口。實(shí)際上使用時只要讀寫其中的一個就可操作RTL8019AS內(nèi)部的數(shù)據(jù)緩沖RAM。復(fù)位端口包括18H1FH共8個地址,功能一樣,用于RTL8019AS復(fù)位。2.3 TCP/IP協(xié)議棧2.3.1 TCP/IP協(xié)議的分層結(jié)構(gòu)網(wǎng)絡(luò)協(xié)議通常分不同層次進(jìn)行開發(fā),每一層分別負(fù)責(zé)不同的通信功能。一個協(xié)議組件,例如TCP/IP,是一組不同層次上的多個協(xié)議的組合15。如圖2-4所示,圖2-4中同時列出了各層主要的協(xié)議名稱。圖2-4 TCP/IP協(xié)議的分層結(jié)構(gòu)(1)鏈路層。也稱作數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層,通
32、常包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機(jī)中對應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與傳輸媒體(如電纜、光纖或其它任何傳輸媒介)的物理接口細(xì)節(jié)。(2)網(wǎng)絡(luò)層。也稱作互連網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動,例如分組的路由選擇。在TCP/IP協(xié)議組件中,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)、ICMP協(xié)議(Internet控制報文協(xié)議)以及IGMP協(xié)議(Internet組管理協(xié)議)。(3)運(yùn)輸層。主要為兩臺主機(jī)上的應(yīng)用程序提供端到端的通信。有兩個互不相同的傳輸協(xié)議:TCP傳輸控制協(xié)議和UDP用戶數(shù)據(jù)報協(xié)議。前者為兩個主機(jī)提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認(rèn)接收
33、到的分組,設(shè)置發(fā)送最后確認(rèn)分組的超時時鐘等,由于運(yùn)輸層提供了高可靠行的端到端通信,因此應(yīng)用層可以忽略所有這些細(xì)節(jié);后者則為應(yīng)用層提供了一種非常簡單的服務(wù)。它只是把稱作數(shù)據(jù)報的分組從一臺主機(jī)發(fā)送到另一臺主機(jī),并不保證該數(shù)據(jù)能到達(dá)另一端。數(shù)據(jù)傳輸?shù)目煽啃员仨氂蓱?yīng)用層保證。(4)應(yīng)用層。其負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。TCP/IP協(xié)議棧的實(shí)現(xiàn)一般都會提供一些通用的應(yīng)用程序,例如Telnet遠(yuǎn)程登錄、FTP文件傳輸協(xié)議、SMTP簡單郵件傳輸協(xié)議和SNMP簡單網(wǎng)絡(luò)管理協(xié)議等16。在TCP/IP協(xié)議組件中,網(wǎng)絡(luò)層IP提供的是一種不可靠的服務(wù),它只是盡可能快地把源端送到目的端,但是并不是提供任何可靠性服務(wù)。但
34、是,TCP在不可靠的IP層上提供了一個可靠的運(yùn)輸層。為了提供這樣可靠的服務(wù),TCP采用了超時重發(fā)、發(fā)送方和接收方進(jìn)行端到端的分組確認(rèn)等機(jī)制,由此可見,網(wǎng)絡(luò)層和運(yùn)輸層分別負(fù)責(zé)不同功能的實(shí)現(xiàn)。雖然TCP使用不可靠的IP服務(wù),但它卻提供可靠的運(yùn)輸服務(wù),這些應(yīng)用通常都是用戶進(jìn)程。UDP為應(yīng)用程序發(fā)送和接收數(shù)據(jù)報。一個數(shù)據(jù)報是指從發(fā)送方 傳輸?shù)浇邮辗降囊粋€信息單元,但是與TCP不同的是UDP是不可靠的,它不能保證數(shù)據(jù)能安全無誤地到達(dá)最終目的地17。IP是網(wǎng)絡(luò)層的主要協(xié)議,同時被TCP和UDP使用。TCP和UDP的每組數(shù)據(jù)都通過端系統(tǒng)和每個中間路由器中的IP層在因特網(wǎng)中進(jìn)行傳輸。ICMP是IP協(xié)議的附屬協(xié)
35、議。IP層用它來與其他主機(jī)或路由器交換錯誤報文和其他重要信息。盡管ICMP主要被IP使用,但應(yīng)用程序也有可能訪問。常用的診斷工具Ping和Traceroute使用的就是ICMP協(xié)議。IGMP是Internet組管理協(xié)議。它用來把一個UDP數(shù)據(jù)報多播到多個主機(jī)。ARP地址解析協(xié)議和RARP反向地址解析協(xié)議某些網(wǎng)絡(luò)接口(如以太網(wǎng)和令牌環(huán)網(wǎng))使用的特殊協(xié)議,用來轉(zhuǎn)換IP層和網(wǎng)絡(luò)接口層使用的地址18。2.3.2 TCP/IP協(xié)議數(shù)據(jù)的處理(1)封裝(Encapsulation)當(dāng)應(yīng)用程序用TCP傳送數(shù)據(jù)時,數(shù)據(jù)被送入?yún)f(xié)議棧中然后逐個通過每一層直到被當(dāng)作一串比特流送入網(wǎng)絡(luò)。其中每一層對收到的數(shù)據(jù)都要增加
36、一些首部或尾部信息用于標(biāo)記或控制,如圖所示。TCP傳給IP的數(shù)據(jù)單元稱作TCP報文段或簡稱為TCP段(TCP Segment)。IP傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作IP數(shù)據(jù)報(IP Datagram)。通過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(Frame)19。圖2-5中幀頭和幀尾下面所標(biāo)注的數(shù)字是典型以太網(wǎng)幀首部的字節(jié)長度。以太網(wǎng)數(shù)據(jù)幀的物理特性要求其長度必須在461500字節(jié)之間。UDP數(shù)據(jù)與TCP數(shù)據(jù)基本一致。唯一不同的是UDP傳給IP的信息單元稱作UDP數(shù)據(jù)報,而且UDP的首部長為8字節(jié)。由于UDP、TCP、ICMP和IGMP都要向IP傳送數(shù)據(jù),所以IP層必須在生成的IP首部加入某種標(biāo)識,以表明數(shù)據(jù)屬
37、于哪一層。為此IP在首部中加入1字節(jié)的數(shù)據(jù),成為協(xié)議域。0x01表示為ICMP協(xié)議,0x02表示為IGMP協(xié)議,0x06表示為TCP協(xié)議,0x11表示為UDP協(xié)議。運(yùn)輸層協(xié)議在成報文首部時要存入一個應(yīng)用程序的標(biāo)識符。TCP和UDP都用一個16位的被稱為端口號得二進(jìn)制數(shù)來表示該數(shù)據(jù)報所屬的應(yīng)用程序。發(fā)送方和接收方都有端口號,以此來表示發(fā)送數(shù)據(jù)報和接受數(shù)據(jù)報的應(yīng)用程序。TCP和UDP把源端口號和目的端口號分別存入報文首部中。網(wǎng)絡(luò)接口分別要發(fā)送和接受IP、ARP和RARP數(shù)據(jù),因此也必須在以太網(wǎng)的幀首部中加入某種形式的標(biāo)識,以指明生成數(shù)據(jù)的網(wǎng)絡(luò)層協(xié)議。為此,以太網(wǎng)的幀首部也有一個16位的幀類型域。圖
38、2-5 數(shù)據(jù)進(jìn)入?yún)f(xié)議棧的封裝過程(2)分用(Demultiplexing)當(dāng)目的主機(jī)接收到一個以太網(wǎng)數(shù)據(jù)幀時,數(shù)據(jù)就開始從協(xié)議棧中由底向上升,同時去掉各層協(xié)議加上的報文首部。每層協(xié)議都要檢查報文首部中由對方上層協(xié)議加入的協(xié)議標(biāo)識,以確認(rèn)將接收到數(shù)據(jù)送給哪個上層協(xié)議處理程序,這個過程稱為分用。2.3.3 相關(guān)協(xié)議報文的格式(1)以太網(wǎng)幀格式以太網(wǎng)是當(dāng)今TCP/IP網(wǎng)絡(luò)采用的主要局域網(wǎng)技術(shù),采用了CSMA/CD(載波偵聽多路介入/沖入檢測)的媒體介入方法,每個通信節(jié)點(diǎn)物理接口的地址由48位二進(jìn)制數(shù)表示。在TCP/IP協(xié)議中,以太網(wǎng)IP數(shù)據(jù)報的封裝是在RFC894中定義的。所有的數(shù)據(jù)位的傳輸都以字節(jié)
39、為單位,由低位開始,傳輸?shù)奈涣鞑捎寐兴固鼐幋a,以太網(wǎng)的沖突檢測及重發(fā)策略都是有硬件自動完成的20。如圖2-6顯示了以太網(wǎng)數(shù)據(jù)報的封裝格式。圖2-6 以太網(wǎng)數(shù)據(jù)報的封裝格式(2)ARP報文格式地址解析協(xié)議報文格式如圖2-7所示。ARP協(xié)議的功能是實(shí)現(xiàn)用戶IP地址和以太網(wǎng)接口的MAC地址之間的轉(zhuǎn)換。操作碼字段指出4種操作,對于ARP請求該字段值為0x0001,ARP應(yīng)答該字段值為0x0002,RARP請求值為0x0003,RARP應(yīng)答其值為0x0004.對于一個ARP請求來說,除目的端口硬件地址外的所有其他的字段都有填充值。當(dāng)系統(tǒng)收到一份目的端IP地址等于本機(jī)IP地址的ARP請求報文后,它就把硬
40、件地址填進(jìn)去,然后用目的端IP地址和MAC地址分別替換發(fā)送端IP地址和MAC地址,并把操作字段置為0x0002,表明是應(yīng)答報文,最后把它發(fā)送回去21。圖2-7 ARP報文格式(3)IP報文格式IP(網(wǎng)際協(xié)議)數(shù)據(jù)報的格式如圖2-8所示。不含選項字段的IP首部為20字節(jié)。每一份IP數(shù)據(jù)報都包含32位的源IP地址和目的IP地址。最后一個字段是任選項,是數(shù)據(jù)報中一個可變長的可選信息。由于這些選項很少被使用,且并非所有的主機(jī)和路由器都支持這些選項,因此在本設(shè)計中不支持任何選項。選項的字段總是以32位作為界限,在必要的時候插入值為0的填充字節(jié)。這樣就保證了IP首部始終是32位的整數(shù)倍(這是首部字段所要求
41、的)。圖2-8 IP協(xié)議數(shù)據(jù)報封裝格式(4)ICMP報文格式ICMP協(xié)議是為讓Internet中的路由器報告錯誤或者提供有關(guān)以外情況的信息而設(shè)計的,放在IP數(shù)據(jù)報的數(shù)據(jù)負(fù)載中傳輸。ICMP報文的最終目的地是接收方的IP模塊。如果ICMP認(rèn)定某個高層協(xié)議或應(yīng)用程序已經(jīng)產(chǎn)生了問題,就會通知相應(yīng)的模塊,但是ICMP并沒有全部指定對每個可能差錯所采取的措施。如下圖2-9即其報文格式: 圖2-9 ICMP協(xié)議數(shù)據(jù)報封裝格式(5)UDP報文格式UDP(用戶數(shù)據(jù)報)是一個簡單的面向應(yīng)用的運(yùn)輸層協(xié)議。在TCP/IP協(xié)議族中,UDP提供在應(yīng)用程序之間傳送數(shù)據(jù)報的基本機(jī)制。每個UDP數(shù)據(jù)報不僅傳送用戶數(shù)據(jù),還包括
42、發(fā)送方和接收方的協(xié)議端口號,這使得接收方的協(xié)議棧能夠根據(jù)端口號把報文送到正確的接收進(jìn)程,而接收也能會送應(yīng)答報文22。UDP使用底層的IP協(xié)議來傳送報文,提供和IP一樣的不可靠無連接的數(shù)據(jù)報傳輸服務(wù)。UDP數(shù)據(jù)報可能會出現(xiàn)丟失、重復(fù)和亂序現(xiàn)象,而且分組到達(dá)的速率可能大于接收進(jìn)程處理的速率。因此,使用UDP協(xié)議的應(yīng)用程序要承擔(dān)可靠性方面的處理工作,包括報文的丟失、重復(fù)、時延、亂序以及連接失效等問題。本設(shè)計中使用的UDP數(shù)據(jù)報格式如圖2-10所示。圖2-10 UDP協(xié)議首部格式在MCS-51系列單片機(jī)中,上述所有報文格式的數(shù)據(jù)都是按照大端(Big-Endian)模式組織和存儲的。在具體的編程中,上述
43、各報文格式是通過定義相應(yīng)的結(jié)構(gòu)實(shí)現(xiàn)的。2.4 本章小結(jié)第二章主要講了以太網(wǎng)控制器的選擇及工作原理。詳細(xì)介紹了RTL8019AS的特點(diǎn)和RTL8019AS的工作原理最后還介紹了相關(guān)協(xié)議報文的格式。注意:除第一章緒論外,其他每一章都應(yīng)該有一個本章小結(jié)第3章 硬件電路設(shè)計3.1 單片機(jī)系統(tǒng)擴(kuò)展電路以太網(wǎng)串行口數(shù)據(jù)轉(zhuǎn)換模塊的硬件電路圖主要有兩個部分:單片機(jī)系統(tǒng)擴(kuò)展電路和以太網(wǎng)接口電路。單片機(jī)系統(tǒng)擴(kuò)展電路主要包括單片機(jī)及外部數(shù)據(jù)寄存器擴(kuò)展電路、復(fù)位電路及串行通信電路等;以太網(wǎng)接口電路則包括單片機(jī)和RTL8019AS的總線接口、片選邏輯及網(wǎng)絡(luò)通信接口等。圖3-1 單片機(jī)系統(tǒng)擴(kuò)展部分電路圖圖3-1中的單片機(jī)
44、U1通過U2(74HC753)實(shí)現(xiàn)數(shù)據(jù)總線和地址總線低8位的復(fù)用,進(jìn)行系統(tǒng)總線擴(kuò)展。由于系統(tǒng)中只有兩個使用擴(kuò)展總線的設(shè)備,故使用線選法提供各設(shè)備的片選信號。A15作為U3(62256)的片選信號,單片機(jī)的讀寫控線和RAM的讀寫選通相連。注意,62256的A14引腳沒有連接到地址總線上,而是直接接地,這是因為地址總線的A14將作為RTL8019AS的片選信號,不能再供RAM使用。因此,當(dāng)單片機(jī)選通RAM時,A15=0,同時A14必須選1,以保證不同時選通RTL8019AS。所以RAM的地址范圍為0x40000x7FFF,共16KB,也可直接采用。如果設(shè)計電路時有16KB的RAM,也可以直接采用。
45、系統(tǒng)復(fù)位通過專用的復(fù)位、存儲及WDT芯片X5045提供,除了可以提供復(fù)位信號外,X5045本身還有4KB的EEPROM,可存儲系統(tǒng)的配置參數(shù)等信息,必要時還可使用芯片自帶的WDT保證系統(tǒng)工作的可靠性。單片機(jī)的串行口有U5完成TTL電平和RS-232電平轉(zhuǎn)換。由于模塊的功能主要是數(shù)據(jù)轉(zhuǎn)發(fā),是典型的DCE設(shè)備,因此通過標(biāo)準(zhǔn)的9芯孔型插座COM1向外部設(shè)備提供串行口。當(dāng)模塊的串行口和PC相連時,PC可通過串口延長線直接和COM1相連。3.2 RTL8019AS和單片機(jī)的接口電路RTL8019AS部分的電路如圖3-2所示。RTL8019AS的復(fù)位信號和單片機(jī)的復(fù)位信號復(fù)接,系統(tǒng)復(fù)位時RTL8019AS
46、同時復(fù)位。單片機(jī)通過地址A14選通RTL8019AS,由于RTL8019AS的片選位低電平有效,因此可當(dāng)其被選通時A14=0,同時A15必須為1,保證RAM不被選通,因此其選通地址范圍是0x80000xB000。RTL8019AS共有20個地址引腳,其ISA總線接口的地址范圍為0x003000x0031F。單片機(jī)的低8位地址總線和RTL8019AS地址總線接口的低8位相連,單片機(jī)的讀寫信號線分別和RTL8019AS的IOR、IOW相連。因此RTL8019AS工作于8位總線模式,其地址線的低8位和單片機(jī)的數(shù)據(jù)總線相連。RTL8019AS共支持三種模式:跳線模式其中I/O基址和中斷由跳線設(shè)置決定;
47、即插即用模式,由軟件自動配置相應(yīng)參數(shù);免跳線方式其中I/O地址和中斷依次外接93C46的內(nèi)容設(shè)定。本設(shè)計中的JP引腳通過10k電阻上拉設(shè)置其工作為跳線模式,芯片復(fù)位后的初始狀態(tài)由各配置引腳在上電時的狀態(tài)決定,不需要外接93C46.RTL8019AS內(nèi)部集成了以太網(wǎng)收發(fā)器的物理接口,因此和網(wǎng)絡(luò)通信線的鏈接非常簡單。本章使用標(biāo)準(zhǔn)的五類雙絞線進(jìn)行以太網(wǎng)通信,RTL8019AS只需要外接一個10M速率的網(wǎng)絡(luò)變壓器和RJ45接口即可,網(wǎng)絡(luò)變壓器型號為PM34-1006,也可用HR61101G。為了直觀表示RTL8019AS的工作狀態(tài),電路設(shè)計了三個LED:D1和RTL8019AS的LBNC引腳相連,為L
48、ink指示燈。只要外部網(wǎng)絡(luò)插入RJ45插座且網(wǎng)絡(luò)接口正常連通,該LED將自動點(diǎn)亮。D2和D3則作為數(shù)據(jù)收發(fā)指示燈,無數(shù)據(jù)收發(fā)時熄滅,有數(shù)據(jù)收發(fā)時相應(yīng)的LED被點(diǎn)亮。圖3-2 RTL8019AS和單片機(jī)接口電路圖3.2 本章小結(jié)第三章主要介紹以太網(wǎng)串行口數(shù)據(jù)轉(zhuǎn)換模塊的硬件電路圖主要有兩個部分:單片機(jī)系統(tǒng)擴(kuò)展電路和以太網(wǎng)接口電路。單片機(jī)系統(tǒng)擴(kuò)展電路主要包括單片機(jī)及外部數(shù)據(jù)寄存器擴(kuò)展電路、復(fù)位電路及串行通信電路等;以太網(wǎng)接口電路則包括單片機(jī)和RTL8019AS的總線接口、片選邏輯及網(wǎng)絡(luò)通信接口。并繪制出RTL8019AS和單片機(jī)接口電路圖。注意:除第一章緒論外,其他每一章都應(yīng)該有一個本章小結(jié)第4章
49、軟件設(shè)計4.1 串行口控制程序的設(shè)計根據(jù)設(shè)計要求,單片機(jī)串行口接收到的數(shù)據(jù)應(yīng)通過RTL8019AS發(fā)送到以太網(wǎng)上,以便送達(dá)遠(yuǎn)端主機(jī);從RTL8019AS接收到的數(shù)據(jù)應(yīng)通過單片機(jī)串行口發(fā)送給外部設(shè)備。本章設(shè)計中,采用全中斷驅(qū)動及環(huán)形緩存的方式對串行口的數(shù)據(jù)收發(fā)進(jìn)行控制?,F(xiàn)在要考慮的問題是:當(dāng)單片機(jī)的串行口不斷接收到外部設(shè)備送來的數(shù)據(jù)時,什么時候應(yīng)該將緩存的數(shù)據(jù)發(fā)給RTL8019AS根據(jù)以太網(wǎng)協(xié)議的要求,一個以太網(wǎng)數(shù)據(jù)幀中,不包括源、目的MAC地址、數(shù)據(jù)類型以及數(shù)據(jù)報尾部的4字節(jié)校驗碼,純數(shù)據(jù)字段的最大長度是1500字節(jié)。當(dāng)使用UDP 協(xié)議傳輸數(shù)據(jù)時,UDP數(shù)據(jù)報頭得長度為8字節(jié),UDP協(xié)議又是封
50、裝在IP數(shù)據(jù)報總傳輸?shù)模琁P數(shù)據(jù)報頭的長度為20字節(jié)。因此,當(dāng)使用UDP協(xié)議通過以太網(wǎng)傳輸數(shù)據(jù)時,一個以太網(wǎng)幀中可攜帶的用戶數(shù)據(jù)的最大長度為1500-20-8=1472字節(jié),即每次送往協(xié)議棧發(fā)送的數(shù)據(jù)不能大于1472字節(jié)。根據(jù)上述分析,協(xié)議棧程序中設(shè)計了兩個參數(shù):最大緩存字節(jié)和最大中斷時間,用于控制串行口數(shù)據(jù)發(fā)送協(xié)議棧的時機(jī)。所謂最大緩沖字節(jié),指的是當(dāng)單片機(jī)的串行口不斷接收數(shù)據(jù)時,如果接收緩沖區(qū)中的緩沖數(shù)據(jù)超過了最大緩存字節(jié)規(guī)定的數(shù)值,則將當(dāng)前串行口的數(shù)據(jù)送協(xié)議棧進(jìn)行一次發(fā)送操作。最大這段時間參數(shù)指的是當(dāng)連續(xù)送往單片機(jī)串行口的數(shù)據(jù)發(fā)生中斷時,如果超過了最大中斷時間規(guī)定的時長仍無后續(xù)字節(jié)送達(dá),則
51、將當(dāng)前緩沖的數(shù)據(jù)送協(xié)議棧進(jìn)行一次發(fā)送操作。引入了這兩個參數(shù)之后,單片機(jī)可根據(jù)數(shù)據(jù)流量的情況靈活地調(diào)整數(shù)據(jù)發(fā)送時機(jī)。當(dāng)數(shù)據(jù)流量較大時,緩沖一定的字節(jié)數(shù)后再發(fā)送,當(dāng)這個門限設(shè)定得較大時,發(fā)出的每個以太網(wǎng)數(shù)據(jù)報幾乎都是滿載的,保證了傳輸?shù)男÷罚划?dāng)數(shù)據(jù)間時間間隔較大時,每間隔固定的時間發(fā)送一次數(shù)據(jù),保證了傳輸?shù)膶?shí)時性。這樣處理后,不管是批量數(shù)據(jù)還是用戶交互數(shù)據(jù)都可以高效、及時地傳輸。當(dāng)數(shù)據(jù)從遠(yuǎn)端主機(jī)送達(dá)RTL8019AS時,由于協(xié)議棧對標(biāo)準(zhǔn)的TCP/IP協(xié)議做了較大的精簡,協(xié)議棧首先判斷數(shù)據(jù)報的協(xié)議類型及各種參數(shù),對于包含不支持的協(xié)議及參數(shù)的數(shù)據(jù)報一律丟棄,不做處理。而對于接收的數(shù)據(jù),則直接存入串行口
52、發(fā)送緩沖區(qū),通過中斷驅(qū)動的方式由單片機(jī)發(fā)送給外部設(shè)備。4.2 RTL8019AS控制程序的設(shè)計(1)RTL8019AS的復(fù)位操作通常在應(yīng)用中,RTL8018AS的復(fù)位操作引腳是RST,連接到計算機(jī)ISA總線對應(yīng)的RSTDRV。RST高電平有效,至少需要800ms的寬度。在復(fù)位的過程中RTL8019AS將執(zhí)行一些操作,例如將內(nèi)部寄存器初始化等。為確保RTL8019AS完全復(fù)位和正常工作,CPU應(yīng)等待足夠的時間后再對RTL8019AS操作,在程序中延時等待的時間定為20ms。實(shí)例中RTL8019AS的復(fù)位引腳和單片機(jī)的復(fù)位引腳復(fù)接,因此上電后它們將同時復(fù)位。也可以直接訪問RTL8019AS的復(fù)位端
53、口進(jìn)行熱復(fù)位。RTL8019AS的0x189x1F共8個地址,為復(fù)位端口。對這些端口地址中任意偶數(shù)地址的讀寫操作都會復(fù)位RTL8019AS。為了判斷復(fù)位是否成功,可根據(jù)RTL8019AS中斷狀態(tài)寄存器的第7位RST來判斷。如下表為中斷寄存器的各個標(biāo)志位。在表4-1中,ISR的第7位RST跟復(fù)位有關(guān)。RTL8019AS執(zhí)行正確的復(fù)位之后該位為1.驅(qū)動程序可在復(fù)位之后檢查該標(biāo)志位以確認(rèn)RTL8019AS是否正確復(fù)位。通常UNIX、Linux等操作系統(tǒng)都會在RTL8019AS的驅(qū)動程序中做一些其他判斷和檢查,例如檢查RTL8019AS是否正常工作,是否存在地址沖突等。但由于本應(yīng)用設(shè)計的是精簡協(xié)議棧,
54、因此默認(rèn)RTL8019AS工作正常,且IP地址和MAC地址均沒有沖突。表4-1 RTL8019AS中斷狀態(tài)寄存器各位的含義位符 號簡 述7RST復(fù)位標(biāo)識,復(fù)位正常時置位,起始命令后清06RDC處理器和RTL8019AS之間的DMA操作后完成后置位5CNTRTL8019AS錯誤計數(shù)器溢出時置位4OVW接收緩沖區(qū)溢出時置位,RTL8019AS死鎖3TXE發(fā)送數(shù)據(jù)報出錯時置位2RXE接收數(shù)據(jù)報出錯時置位1PTX正常發(fā)送數(shù)據(jù)報結(jié)束時置位0PRX正常接收數(shù)據(jù)報結(jié)束時置位(2)RTL8019AS的寄存器初始化操作RTL8019AS的寄存器占用其內(nèi)部地址0x000x1F共16字節(jié)的區(qū)域,寄存器共分4頁,記為
55、PAGE0PAGE3,每頁都有16個寄存器地址。其中,所有頁的地址0都為命令寄存器CR,CR為一個字節(jié)。利用CR的兩個頁選擇位PS1和PS0可以選擇寄存器頁,PS1 PS0為00時選擇寄存器頁0,為01時選擇寄存器頁1,依次類推。在初始化時,因為RTL8019AS寄存器的PAGE2屬性是只讀的,而PAGE3用于即插即用的增強(qiáng)功能,所以并不需要關(guān)心。如下表4-2為需要初始化的寄存器及寄存器功能的簡單介紹。表4-2 RTL8019AS PAGE0中需要初始化的寄存器寄存器符號寄存器功能簡介PSTART接收緩沖區(qū)的起始頁地址寄存器(存放接收到的第一個數(shù)據(jù)報)PSTOP接收緩沖區(qū)的結(jié)束也地址寄存器(不
56、存放數(shù)據(jù)報)BNRY指向最后一個已經(jīng)讀取的頁地址(讀指針)CURR指向當(dāng)前的接收結(jié)束頁地址(寫指針)TPSR發(fā)送頁的起始頁地址RCR接收配置寄存器TCR發(fā)送配置寄存器DCR數(shù)據(jù)配置寄存器IMR中斷屏蔽寄存器(1)PSTART寄存器(地址為PAGE0的0x01)為寫寄存器,CPU向它寫入接收緩沖區(qū)首頁面的地址。(2)PSTOP寄存器(地址為PAGE0的0x02)為寫寄存器,CPU向它寫入接收緩沖區(qū)末頁面的地址。RTL8019AS內(nèi)部有16KB字節(jié)的RAM,地址為0x40000x7FFF,注意此處的地址指的是RTL8019AS內(nèi)部的數(shù)據(jù)緩沖RAM地址,而不是單片機(jī)系統(tǒng)外擴(kuò)的地址。這些內(nèi)部數(shù)據(jù)緩沖RAM是RTL8019AS本身工作時所用的存儲緩沖區(qū),每256字節(jié)為一頁,共64頁,頁地址就是地址編碼的高8位,范圍為0x400x7F。這16K RAM用來緩存RTL8019AS收發(fā)的數(shù)據(jù)報。(3)BNRY寄存器(地址為PAGE0的0x03)為讀寫寄存器,用于指向最后一個已經(jīng)被CPU讀取過頁地址(讀指針)。在初始狀態(tài),RTL8019AS沒讀取過任何數(shù)據(jù)報,所以BNRY初始化時應(yīng)設(shè)置為指向第一個接收緩沖區(qū)的頁0x4C。(4)CURR寄存器(地址為PAGE1的0x07)是RTL8019AS寫內(nèi)存的指針。它指向當(dāng)前正寫入頁的下一頁,那么初始化它就應(yīng)該指向0x4C+1=0x4D
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦物加工廠安全文化建設(shè)與培訓(xùn)考核試卷
- 內(nèi)蒙古自治區(qū)北京八中烏蘭察布分校2025屆高三物理試題模擬試題含解析
- 四川省綿陽市三臺縣2025年初三4月考語文試題文試題含解析
- 內(nèi)蒙自治區(qū)烏蘭察布市集寧二中2025屆高三第二次高考模擬考試數(shù)學(xué)試題試卷含解析
- 山東圣翰財貿(mào)職業(yè)學(xué)院《分鏡頭設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘇州城市學(xué)院《科技文獻(xiàn)閱讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東濟(jì)南市市中區(qū)2025年六年級下學(xué)期模擬數(shù)學(xué)試題含解析
- 山東省沾化縣重點(diǎn)名校2025年初三第二次??加⒄Z試題文試題含答案
- 明達(dá)職業(yè)技術(shù)學(xué)院《社會統(tǒng)計學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津電子信息職業(yè)技術(shù)學(xué)院《材料組織結(jié)構(gòu)的表征》2023-2024學(xué)年第二學(xué)期期末試卷
- 旅游業(yè)員工工資保障措施建議
- 傷殘鑒定 委托書
- 班組長、員工安全生產(chǎn)責(zé)任制考核記錄表
- 老年康體指導(dǎo)職業(yè)教育79課件
- 北京市建設(shè)工程施工現(xiàn)場安全生產(chǎn)標(biāo)準(zhǔn)化管理圖集(2019版)
- 《萬科的產(chǎn)品戰(zhàn)略》課件
- 2025年江蘇省江寧城建集團(tuán)招聘筆試參考題庫含答案解析
- 大學(xué)生就業(yè)與創(chuàng)業(yè)指導(dǎo)知到智慧樹章節(jié)測試課后答案2024年秋遼寧廣告職業(yè)學(xué)院
- 題型04 化學(xué)工藝流程題-【好題匯編】備戰(zhàn)2024-2025學(xué)年高一化學(xué)上學(xué)期期末真題分類匯編(江蘇專用)
- 高鈦渣及其產(chǎn)品深加工項目的可行性研究報告
- 2024年中國黃油行業(yè)供需態(tài)勢及進(jìn)出口狀況分析
評論
0/150
提交評論