版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、濟(jì)源職業(yè)技術(shù)學(xué)院 畢 業(yè) 設(shè) 計(jì)(論文)題目基于enc28j60的以太網(wǎng)設(shè)計(jì)與實(shí)現(xiàn) 系別信息工程系 專業(yè)計(jì)算機(jī)應(yīng)用技術(shù) 班級(jí)計(jì)應(yīng)1001班 姓名xx 學(xué)號(hào)10090103 指導(dǎo)教師xxx 日期二零一二年九月 基于enc28j60的以太網(wǎng)設(shè)計(jì)與實(shí)現(xiàn)總計(jì):畢業(yè)設(shè)計(jì)(論文)47頁(yè)圖表 28副摘 要隨著internet迅猛發(fā)展,ip已經(jīng)占據(jù)了各種終端應(yīng)用的主導(dǎo)地位,而如何更高效、高速、廉價(jià)的傳送ip數(shù)據(jù)是今后網(wǎng)絡(luò)研究的重點(diǎn)。到目前,各種接入網(wǎng)技術(shù)之所以能夠發(fā)展起來(lái),更是適應(yīng)了當(dāng)今網(wǎng)絡(luò)的發(fā)展,但是這些技術(shù)都存在著一個(gè)相同的問(wèn)題:成本較高、性價(jià)比不高。而提到廉價(jià),人們會(huì)很自然地想到以太網(wǎng)技術(shù),但是能否接入
2、網(wǎng)到這一網(wǎng)絡(luò)環(huán)境中還需要認(rèn)真研究。enc28j60是microchiptechnology(美國(guó)微芯科技公司) 于2005年推出的一款28引腳的獨(dú)立以太網(wǎng)控制器,由于采用spi串行接口方式,簡(jiǎn)化了設(shè)計(jì)。本文介紹了其特性、內(nèi)部結(jié)構(gòu)、引腳功能和enc28j60的硬件結(jié)構(gòu)與接口電路,詳細(xì)分析了其寄存器設(shè)置和工作過(guò)程。enc28j60采用標(biāo)準(zhǔn)的spi串行接口,通過(guò)程序的編寫(xiě)、tcp/ip協(xié)議的應(yīng)用,只需4條連線即可實(shí)現(xiàn)與單片機(jī)連接,有利于在小型系統(tǒng)上實(shí)現(xiàn)以太網(wǎng)功能。本設(shè)計(jì)根據(jù)協(xié)議的移植,由單片機(jī)處理模塊、以太網(wǎng)控制器模塊、協(xié)議模塊等部分組成。實(shí)現(xiàn)了以太網(wǎng)控制器與單片機(jī)之間的基本數(shù)據(jù)傳輸。關(guān)鍵詞:以太網(wǎng)
3、接入;單片機(jī);enc28j60;spi接口;tcp/ip移植abstractwith the rapid development of internet, ip have occupied various terminal application dominance, and how to more efficient, high-speed, low-cost transmission of ip data is the future of network research focus. at present, all kinds of access network technology s
4、 development, it is to adapt to todays network development, but these techniques have an identical problem: high cost, not cheap. while references to cheap, people will naturally think of ethernet technology, but whether the access network to the network environment also need to seriously study.enc2
5、8j60 is the microchiptechnology ( american microchip technology company ) in 2005 launched a 28 pin independent ethernet controller, due to the use of spi serial interface, simplifying the design. this paper introduces the characteristics, internal structure, pin function and enc28j60 hardware struc
6、ture and interface circuit, a detailed analysis of the register set and working process. enc28j60 uses standard spi serial interface, through the program, tcp/ip protocol application, only 4 lines can be connected with the single chip microcomputer, is advantageous in the small system ethernet funct
7、ion.according to the design of protocols for transplantation, composed of a single chip microcomputer processing module, ethernet controller module, protocol module and other components. realization of ethernet controller and scm basic data transmission.key words: ethernet access; single chip microc
8、omputer; enc28j60; spi interface; tcp/ip transplantation目 錄摘 要iabstractii第1章 緒論- 1 -第2章enc28j60網(wǎng)絡(luò)模塊- 2 -2.1概述- 2 -2.2 外部連接- 6 -2.2.1 振蕩器- 6 -2.2.2 i/o電平- 6 -2.2.3 帶spi接口的獨(dú)立以太網(wǎng)控制器- 6 -2.3存儲(chǔ)器與寄存器- 8 -2.3.1 存儲(chǔ)器構(gòu)成- 8 -2.3.2 寄存器- 9 -2.4 enc28j60的寄存器設(shè)置和應(yīng)用- 9 -2.4.1 enc28j60的寄存器設(shè)置- 9 -2.4.2 enc28j60的應(yīng)用- 10
9、 -第3章 系統(tǒng)硬件設(shè)計(jì)- 11 -3.1單片機(jī)與enc28j60網(wǎng)絡(luò)模塊的選擇及思想- 11 -3.2串口通信- 14 -3.2.1 通信簡(jiǎn)介- 14 -3.2.2 單片機(jī)串口結(jié)構(gòu)- 15 -3.2.3 串行口工作方式及幀格式- 15 -3.2.4 單片機(jī)與串口的通信- 16 -3.2.5 單片機(jī)串口通信設(shè)置- 17 -3.3 enc28j60外圍電路- 17 -第4章 網(wǎng)絡(luò)協(xié)議- 19 -4.1 tcp/ip協(xié)議簡(jiǎn)介- 19 -4.2 網(wǎng)絡(luò)互連- 20 -4.3 uip協(xié)議在單片機(jī)上的移植過(guò)程- 20 -4.3.1 uip協(xié)議棧的實(shí)現(xiàn)方法簡(jiǎn)述- 20 -4.3.2 uip架構(gòu)- 21 -4
10、.3.2 uip協(xié)議在單片機(jī)上的移植- 22 -4.4 uip的關(guān)鍵功能及使用方法- 24 -4.4.1 接收數(shù)據(jù)- 24 -4.4.2 發(fā)送數(shù)據(jù)- 25 -4.4.3 重發(fā)數(shù)據(jù)- 25 -4.4.4 關(guān)閉連接- 25 -4.4.5 報(bào)告錯(cuò)誤- 25 -4.4.6 輪詢- 25 -4.4.7 監(jiān)聽(tīng)端口- 25 -4.4.8 打開(kāi)連接- 26 -4.4.9 數(shù)據(jù)流控制- 26 -4.1.10 uip函數(shù)總結(jié)- 27 -第5章軟件設(shè)計(jì)- 28 -5.1 軟件keil介紹- 28 -5.2系統(tǒng)總流程圖- 28 -5.4 uip協(xié)議代碼分析- 30 -5.4.1 應(yīng)用程序接口- 30 -5.4.2 u
11、ip/設(shè)備驅(qū)動(dòng)接口- 31 -5.4.3 uip/周期計(jì)時(shí)接口- 31 -5.4.4 uip協(xié)議棧提供的主要接口- 31 -5.4.5 主要移植心得- 32 -5.5 調(diào)試軟件地址設(shè)置程序- 33 -5.6 tcp/ip在單片機(jī)內(nèi)的實(shí)現(xiàn)- 34 -5.7 鏈路層的實(shí)現(xiàn)- 35 -5.8網(wǎng)絡(luò)層的實(shí)現(xiàn)- 35 -5.9傳輸層實(shí)現(xiàn)- 38 -第6章 系統(tǒng)軟硬件調(diào)試- 42 -6.1 準(zhǔn)備調(diào)試- 42 -6.2 進(jìn)行調(diào)試- 44 -6.3 調(diào)試結(jié)果- 45 -總 結(jié)- 47 -致 謝- 48 -參考文獻(xiàn)- 49 -第1章 緒論隨著internet迅猛發(fā)展,接入網(wǎng)技術(shù)有很多種類如:寬帶接入、光纖接入、微
12、波接入等。但是近年來(lái)ip技術(shù)的不斷完善,大多的運(yùn)營(yíng)商已經(jīng)將ip技術(shù)作為數(shù)據(jù)網(wǎng)絡(luò)的主要承載技術(shù)。由此也隨之衍生出來(lái)了大量以以太網(wǎng)技術(shù)為基礎(chǔ)的接入技術(shù),例如以太網(wǎng)、ip、dsl等。而以太網(wǎng)接入技術(shù)就是其中的一種。且以太網(wǎng)技術(shù)也日趨成熟,使用戶得到了更多的方便。以太網(wǎng)接入技術(shù)是具有中國(guó)特色的接入技術(shù)。由于中國(guó)特色的民宅大多數(shù)是比較集中,符合以太網(wǎng)的應(yīng)用特點(diǎn),而且用以太網(wǎng)接入技術(shù)的優(yōu)點(diǎn)也非常之多,更適合使用。以太網(wǎng)技術(shù)具有成熟、成本低、結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定性、可擴(kuò)充性好等優(yōu)點(diǎn);便于網(wǎng)絡(luò)升級(jí),同時(shí)可實(shí)現(xiàn)實(shí)時(shí)監(jiān)控、智能化物業(yè)管理、小區(qū)/大樓/家庭保安、家庭自動(dòng)化(如遠(yuǎn)程遙控家電、可視門鈴等)、遠(yuǎn)程抄表等,可提供
13、智能化、信息化的辦公與家居環(huán)境,滿足不同層次的人們對(duì)信息化的需求。并且隨著同類技術(shù)的飛速發(fā)展,以太網(wǎng)接入技術(shù)也正在逐步完善,越來(lái)越顯示出來(lái)它的優(yōu)點(diǎn)。本設(shè)計(jì)設(shè)計(jì)的是基于enc28j60的以太網(wǎng)設(shè)計(jì)與實(shí)現(xiàn),意在利用以太網(wǎng)接入技術(shù)實(shí)現(xiàn)單片機(jī)與以太網(wǎng)控制器兩者之間的數(shù)據(jù)傳輸,并且,學(xué)習(xí)和掌握pc機(jī)與單片機(jī)的通信方法,了解通信協(xié)議的制定,設(shè)計(jì)的同時(shí),對(duì)c語(yǔ)言程序的編寫(xiě)與設(shè)計(jì)硬件方面的連接等都有很嚴(yán)格的要求,提高自主思考能力和實(shí)踐動(dòng)手能力,最終實(shí)現(xiàn)本設(shè)計(jì)的最終目的(單片機(jī)與以太網(wǎng)控制器兩者之間的數(shù)據(jù)傳輸)。第2章enc28j60網(wǎng)絡(luò)模塊enc28j60是帶有行業(yè)標(biāo)準(zhǔn)串行接口外設(shè)設(shè)備(spi)的獨(dú)立以太網(wǎng)控
14、制器。它可作為任何配備有spi的控制器的以太網(wǎng)接口。本章簡(jiǎn)單介紹了關(guān)于enc28j60網(wǎng)絡(luò)模塊的一些功能、特點(diǎn),主要介紹了enc28j60的存儲(chǔ)器構(gòu)成、寄存器等。2.1概述enc28j60符合ieee802.3的全部規(guī)范,采用了一系列包過(guò)濾機(jī)制以對(duì)傳入數(shù)據(jù)包進(jìn)行限制。它還提供一個(gè)內(nèi)部dma模塊,以實(shí)現(xiàn)快速數(shù)據(jù)吞吐和硬件支持的ip校驗(yàn)和計(jì)算。與控制器的通信通過(guò)兩個(gè)中斷引腳和spi實(shí)現(xiàn),數(shù)據(jù)傳輸速率高達(dá)10mb/s。兩個(gè)專用的引腳用于連接led,進(jìn)行網(wǎng)絡(luò)活動(dòng)狀態(tài)指示。enc28j60網(wǎng)絡(luò)模塊的框圖及主要功能圖2-1所示為enc28j60 的簡(jiǎn)化框圖。圖2-2所示為使用該器件的典型應(yīng)用電路。要將單片
15、機(jī)連接到速率為10 mbps的以太網(wǎng),只需 enc28j60兩個(gè)脈沖變壓器和一些無(wú)源元件即可。圖2-1 enc28j60框圖圖2-2典型的 enc28j60 接口enc28j60 由七個(gè)主要功能模塊組成:(1)spi 接口充當(dāng)主控制器和enc28j60 之間通信通道。(2)控制寄存器用于控制和監(jiān)視enc28j60 。(3)雙端口ram緩沖器用于接收和發(fā)送數(shù)據(jù)包。(4)判優(yōu)器當(dāng)dma、發(fā)送和接收模塊發(fā)出請(qǐng)求時(shí)對(duì)ram緩沖器的訪問(wèn)進(jìn)行控制。(5)總線接口對(duì)通過(guò)spi 接收的數(shù)據(jù)和命令進(jìn)行解析。(6)mac(medium access control)模塊實(shí)現(xiàn)符合ieee 802.3 標(biāo)準(zhǔn)的mac邏
16、輯。(7)phy(物理層)模塊對(duì)雙絞線上的模擬數(shù)據(jù)進(jìn)行編碼和譯碼。該器件還包括其他支持模塊,諸如振蕩器、片內(nèi)穩(wěn)壓器、電平變換器(提供可以接受5v電壓的 i/o 引腳)和系統(tǒng)控制邏輯。如表2-1所示。enc28j60的i/o引腳說(shuō)明。表2-1enc28j60的i/o引腳說(shuō)明引腳緩沖器引腳號(hào)引腳類型緩沖器類型說(shuō)明spdip、soic和ssopqfnvcap125p來(lái)自內(nèi)部穩(wěn)壓器的2.5v輸出。 必須將此引腳通過(guò)一個(gè)10 f的電容連接到vsstx。vss226p參考接地端。clko327o可編程時(shí)鐘輸出引腳。(1)int428oint中斷輸出引腳。(2)wol51olan中斷喚醒輸出引腳。(2)so
17、62ospi接口的數(shù)據(jù)輸出引腳。(2)si73istspi接口的數(shù)據(jù)輸入引腳。(3)sck84istspi接口的時(shí)鐘輸入引腳。(3)cs95istspi接口的片選輸入引腳。(3)rese106ist低電平有效器件復(fù)位輸入。(3, 4)vssrx117pphy rx 的參考接地端。tpin-128ina差分信號(hào)輸入。tpin+139ina差分信號(hào)輸入。rbias1410inaphy的偏置電流引腳。 必須將此引腳通過(guò)2k?(1%)的電阻連接到vssrx。vddtx1511pphy tx的正電源端。tpou1612o差分信號(hào)輸出。tpou1713o差分信號(hào)輸出。vsstx1814pphy tx的參考
18、接地端。vddrx1915pphy rx 的正 3.3v 電源端。vddpl2016pphy pll的正 3.3v 電源端。vsspl2117pphy pll的參考接地端。vssos2218p振蕩器的參考接地端。osc12319idig振蕩器輸入。osc22420o振蕩器輸出。vddos2521p振蕩器的正3.3v電源端。ledb2622oledb 驅(qū)動(dòng)引腳。(5)leda2723oleda 驅(qū)動(dòng)引腳。(5)vdd2824p正3.3v 電源端。2.2 外部連接2.2.1 振蕩器enc28j60網(wǎng)絡(luò)模塊的工作頻率為25mhz,晶振連接在osc1和osc2引腳之間。enc28j60要求使用平行切割
19、的晶體。使用順序切割的晶體可能會(huì)使振蕩器產(chǎn)生頻率不在晶體制造廠商所給的參數(shù)范圍內(nèi)。enc28j60包含一個(gè)振蕩器起振定時(shí)器(ost)以確保在使用振蕩器和集成phy之前它們已經(jīng)穩(wěn)定。在發(fā)生上電復(fù)位或從掉電模式喚醒后,ost經(jīng)過(guò)7500個(gè)osc1時(shí)鐘周期(300 s)后超時(shí)。在這段延時(shí)期間,仍可通過(guò)spi總線對(duì)所有的以太網(wǎng)寄存器和緩沖器進(jìn)行讀寫(xiě)操作。然而,在這期間不應(yīng)試圖使用軟件發(fā)送任何數(shù)據(jù)包、使能接收數(shù)據(jù)包或訪問(wèn)mac、mall或phy寄存器。當(dāng)ost超時(shí)后,estat寄存器中的clkrdy位將置1.應(yīng)用程序軟件可通過(guò)查詢此位來(lái)確定何時(shí)開(kāi)始正常器件操作。注:在上位復(fù)電或enc28j60從掉電模式
20、恢復(fù)后,在發(fā)送數(shù)據(jù)包、使能接收數(shù)據(jù)包或允許訪問(wèn)任何mac、mll或phy寄存器之前,必須查詢clkrdy位。2.2.2 i/o電平ecn28j60網(wǎng)絡(luò)模塊是一個(gè)工作電壓為3.3的器件,他被設(shè)計(jì)為易于集成到5v的系統(tǒng)中。spi的,sck和si輸入以及引腳都可以承受5v的電壓。另一方面,如果主控制器運(yùn)行在5v電壓下,當(dāng)spi和中斷輸入由enc28j60上的3.3v輸入驅(qū)動(dòng)時(shí),它很可能不符合規(guī)范要求,此時(shí)需要一個(gè)單向電平轉(zhuǎn)換器。可以使用廉價(jià)的74hct08、74act125或其他帶有ttl電平輸入緩沖器的5vcmos芯片來(lái)提供必要的電平轉(zhuǎn)換。使用三態(tài)緩沖器便于系統(tǒng)集成,它可以與其他器件共享spi總線
21、。2.2.3 帶spi接口的獨(dú)立以太網(wǎng)控制器enc28j60網(wǎng)絡(luò)模塊可以實(shí)現(xiàn)占位小、成本低、更加精簡(jiǎn)的嵌入式網(wǎng)絡(luò)應(yīng)用系統(tǒng)。符合ieee802. 3協(xié)議的enc28j60只有28引腳,卻具有早期器件相應(yīng)的功能。(1)以太網(wǎng)控制器特性 ieee 802.3兼容的以太網(wǎng)控制器 集成mac和10 base-t phy 接收器和沖突抑制電路 支持一個(gè)帶自動(dòng)極性檢測(cè)和校正的10base-t 端口 支持全雙工和半雙工模式 可編程在發(fā)生沖突時(shí)自動(dòng)重發(fā) 可編程填充和crc生成 可編程自動(dòng)拒絕錯(cuò)誤數(shù)據(jù)包 最高速度可達(dá)10 mb/s 的spi 接口(2)緩沖器 8 kb 發(fā)送/ 接收數(shù)據(jù)包雙端口sram 可配置發(fā)送
22、/ 接收緩沖器大小 硬件管理的循環(huán)接收f(shuō)ifo 字節(jié)寬度的隨機(jī)訪問(wèn)和順序訪問(wèn)(地址自動(dòng)遞增) 用于快速數(shù)據(jù)傳送的內(nèi)部dma 硬件支持的ip 校驗(yàn)和計(jì)算(3)介質(zhì)訪問(wèn)控制器(mac)特性 支持單播、組播和廣播數(shù)據(jù)包 可編程數(shù)據(jù)包過(guò)濾,并在以下事件的邏輯“與”和“或”結(jié)果為真時(shí)喚醒主機(jī):- 單播目標(biāo)地址- 組播地址- 廣播地址- magic packet- 由64位哈希表定義的組目標(biāo)地址- 多達(dá)64字節(jié)的可編程模式匹配(偏移量可由用戶定義) 環(huán)回模式(4)物理層(phy)特性 整形輸出濾波器 環(huán)回模式(5)工作特性 兩個(gè)用來(lái)表示連接、發(fā)送、接收、沖突和全/ 半雙工狀態(tài)的可編程led 輸出 使用兩個(gè)
23、中斷引腳的七個(gè)中斷源 25 mhz 時(shí)鐘 帶可編程預(yù)分頻器的時(shí)鐘輸出引腳 工作電壓范圍是3.14v 到3.45v ttl 電平輸入 溫度范圍:-40c 到+85c (工業(yè)級(jí)),0c 到+70c (商業(yè)級(jí))(僅ssop 封裝) 28 引腳spdip 、ssop 、soic 和qfn封裝封裝類型如圖2-3所示。圖2-3封裝類型2.3存儲(chǔ)器與寄存器2.3.1 存儲(chǔ)器構(gòu)成enc28j60中所有的存儲(chǔ)器都是以靜態(tài)ram的方式實(shí)現(xiàn)的。enc28j60中有三種類型的存儲(chǔ)器:控制寄存器、以太網(wǎng)緩沖器、phy寄存器。控制寄存器類型存儲(chǔ)器包含控制寄存器(control register,cr)5。它們用于進(jìn)行en
24、c28j60的配置.控制盒狀態(tài)獲取??梢酝ㄟ^(guò)spi接口直接讀寫(xiě)這些控制寄存器。以太網(wǎng)緩沖器中包含一個(gè)供以太網(wǎng)控制器使用的發(fā)送和接收存儲(chǔ)空間。主控制器可以使用 spi接口對(duì)該存儲(chǔ)器空間的容量進(jìn)行編程。只可以通過(guò)讀緩沖器和寫(xiě)緩沖器spi指令來(lái)訪問(wèn)以太網(wǎng)緩沖器。phy寄存器用于進(jìn)行phy模塊的配置、控制和狀態(tài)獲取。不可以通過(guò)spi接口直接訪問(wèn)這些寄存器,只可通過(guò)mac中的mll訪問(wèn)這些寄存器。如圖2-4所示,顯示了 enc28j60 的數(shù)據(jù)存儲(chǔ)器構(gòu)成。圖2-4 enc28j60 的數(shù)據(jù)存儲(chǔ)器構(gòu)成2.3.2 寄存器寄存器是中央處理器內(nèi)的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用來(lái)暫存指令、
25、數(shù)據(jù)和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(ir)和程序計(jì)數(shù)器(pc)。在中央處理器的算術(shù)及邏輯部件中,包含的寄存器有累加器(acc)。2.4 enc28j60的寄存器設(shè)置和應(yīng)用2.4.1 enc28j60的寄存器設(shè)置enc28j60內(nèi)部的靜態(tài)ram分為三種類型,控制寄存器,以太網(wǎng)緩沖區(qū)和物理層寄存器,控制寄存器用來(lái)進(jìn)行芯片的配置和控制等功能,直接spi讀寫(xiě);以太網(wǎng)緩沖區(qū)可以由spi接口配置為接收和發(fā)送以太網(wǎng)數(shù)據(jù)包的ram區(qū);物理層寄存器用來(lái)配置,控制和監(jiān)測(cè)物理層的狀態(tài),此寄存器不能直接由spi接口讀寫(xiě),只能通過(guò)媒體獨(dú)立接口mii訪問(wèn)。enc28j60控制寄存器中最基本和重
26、要的5個(gè)寄存器是eie, eir, estat, econ2 和econ1,其功能分別如下,eie:以太網(wǎng)中斷使能控制寄存器,分為總中斷使能和各部分使能控制,eir:以太網(wǎng)中斷標(biāo)志寄存器,在接收和發(fā)送數(shù)據(jù)包時(shí)根據(jù)不同的標(biāo)志位進(jìn)入不同的執(zhí)行程序,estat:以太網(wǎng)狀態(tài)寄存器,反映以太網(wǎng)當(dāng)前是否數(shù)據(jù)碰撞、忙信息、錯(cuò)誤信息、時(shí)鐘狀態(tài)等信息,econ2:以太網(wǎng)輔助控制寄存器,設(shè)置數(shù)據(jù)指針,芯片節(jié)能等,econ1:以太網(wǎng)主控制寄存器,這個(gè)是芯片最常用的寄存器,主要用來(lái)設(shè)置不同層的寄存器空間,下面將詳細(xì)論述。在這5個(gè)寄存器中,需要設(shè)置的是eie、econ2和econ1,需要判斷標(biāo)志位的是eir和estat
27、。在enc28j60接收和發(fā)送數(shù)據(jù)包之前,需要對(duì)相應(yīng)寄存器進(jìn)行設(shè)置和初始化,一般情況下這部分工作放在系統(tǒng)復(fù)位完成后執(zhí)行,初始化設(shè)置工作包括接收和發(fā)送緩沖區(qū)、接收過(guò)濾、晶振啟動(dòng)時(shí)間、mac寄存器、物理層。初始化芯片之前先關(guān)閉單片機(jī)的中斷輸入,對(duì)reset引腳給定一個(gè)持續(xù)的低電平復(fù)位信號(hào),然后對(duì)相應(yīng)的寄存器進(jìn)行設(shè)置。設(shè)置完成所有需要的寄存器后,判斷以太網(wǎng)狀態(tài)中的時(shí)鐘啟動(dòng)標(biāo)志位是否置位,然后開(kāi)中斷,硬件連接的兩個(gè)中斷引腳都對(duì)應(yīng)多種中斷條件,eie和ewolie分別使能不同的中斷,均指向中斷入口處,因此需要在入口處進(jìn)行判斷每次的中斷輸入什么條件,eir是中斷標(biāo)志位,包含了7中不同的中斷條件,根據(jù)不同的
28、標(biāo)志位進(jìn)入不同的執(zhí)行程序。2.4.2 enc28j60的應(yīng)用由于采用串行spi接口,enc28j60可以很方便地和各種微控制器和處理器接口,構(gòu)成嵌入式以太網(wǎng)模塊,使用udp,tcp進(jìn)行通信,且采用3.3v供電。通過(guò)tcp/ip協(xié)議的應(yīng)用,只需4條連線即可實(shí)現(xiàn)與單片機(jī)連接,用單片機(jī)的p20、p21、p22、p23與enc28j60 的cs、mosi、miso、sck四個(gè)引腳相連即可實(shí)現(xiàn)。enc28j60構(gòu)成的嵌入式以太網(wǎng)模塊電路連接簡(jiǎn)單,功能強(qiáng)大,與目前大多數(shù)需要并行數(shù)據(jù)和地址總線的以太網(wǎng)控制器相比,不需要小封裝的微控制器外擴(kuò)地址和數(shù)據(jù)總線,有很大優(yōu)點(diǎn),根據(jù)需要配合不同的微控制器可以將電路板做到
29、最小尺寸,完全符合未來(lái)工業(yè)以太網(wǎng)控制器的發(fā)展趨勢(shì)。第3章 系統(tǒng)硬件設(shè)計(jì)3.1單片機(jī)與enc28j60網(wǎng)絡(luò)模塊的選擇及思想本系統(tǒng)所用單片機(jī)stc12c5a60s2系列單片機(jī)是stc生產(chǎn)的單時(shí)鐘/及其周期(1t)的單片機(jī)6,是搞速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成max810專用復(fù)位電路,2路pwm,8路高速10位a/d轉(zhuǎn)換(250k/s,即25萬(wàn)次/秒),強(qiáng)干擾場(chǎng)合。stc12c5a60s2單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1t)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速
30、度快8-12倍。內(nèi)部集成max810專用復(fù)位電路,2路pwm,8路高速10位a/d轉(zhuǎn)換(250k/s,即25萬(wàn)次/秒),針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合,圖3-1所示stc12c5a60s2系列單片機(jī)管腳圖。圖3-1stc12c5a60s2系列單片機(jī)管腳圖(1).增強(qiáng)型8051cpu,it,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051。(2).工作電壓: stc12c5a60s2系列工作電壓:5.5v3.5v(5v單片機(jī))。(3).工作頻率范圍:035mhz,相當(dāng)于普通8051的0420mhz。(4).用戶應(yīng)用程序空間8k/16k/20k/32k/40k/48k/52k/60k/62k字節(jié)。(5).
31、片上集成1280字節(jié)ram。(6).通用i/o口(36/40/44個(gè)),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)i/o口),可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,強(qiáng)推挽/強(qiáng)上拉,僅為輸入/高阻,開(kāi)漏每個(gè)i/o口驅(qū)動(dòng)能力均可達(dá)到20ma,但整個(gè)芯片最大不要超過(guò)120ma。(7).isp(在系統(tǒng)可編程)/iap(在應(yīng)用可編程),無(wú)需專用編程器,無(wú)需專用仿真器可通過(guò)串口(p3.0/p3.1)直接下載用戶程序,數(shù)秒即可完成一片。(8).有eeprom功能(stc12c5a60s2/ad/pwm無(wú)內(nèi)部eeprom)。(9).看門狗(10).內(nèi)部集成max810專用復(fù)位電路(外部晶體12m以下時(shí),復(fù)位腳
32、可直接1k電阻倒地)。(11). 外部掉電檢測(cè)電路:在p4.6口有一個(gè)低壓門檻比較器5v單片機(jī)為1.33v,誤差為5%,3.3v單片機(jī)為1.31v,誤差為3%。(12).時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部r/c振蕩器(溫漂為5到10%以內(nèi))用戶在下載用戶程序時(shí),可選擇是使用內(nèi)部r/c振蕩器還是外部晶體/時(shí)鐘常溫下內(nèi)部r/c振蕩器頻率為:5.0v單片機(jī)為:mhz 7mhz 3.3v單片機(jī)為:8mhz 2mhz(13)共4個(gè)16位定時(shí)器兩個(gè)與傳統(tǒng)8051兼容的定時(shí)器/計(jì)數(shù)器,16位定時(shí)器t0和t1,沒(méi)有定時(shí)器2,但有獨(dú)立波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上2路pca模塊可再實(shí)現(xiàn)2個(gè)16位定
33、時(shí)器。(14). 3個(gè)時(shí)鐘輸出口,可由t0的溢出在p3.4/t0輸出時(shí)鐘,可由t1的溢出在p3.5/t1輸出時(shí)鐘,獨(dú)立波特率發(fā)生器可以在p1.0口輸出時(shí)鐘。(15). 外部中斷i/o口7路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的pca模塊,power down模式可由外部中斷喚醒,int0/p3.2,int/p3.3,t0/p3.4,t/p3.5,rxd/p3.0,ccp0/p1.3 ,ccp/p 1.4。(16). pwm(2路)/ pca (可編程計(jì)數(shù)器陣列,2路) 也可用來(lái)當(dāng)2路d/a使用 也可用來(lái)再實(shí)現(xiàn)2個(gè)定時(shí)器 也可用來(lái)再實(shí)現(xiàn)2個(gè)外部中斷(上升沿中斷/下降沿中斷均可
34、分別或同時(shí)支持)。(17).a/d轉(zhuǎn)換,10位精度adc,共8路,轉(zhuǎn)換速度可達(dá)250k/s(每秒鐘25萬(wàn)次)。(18).通用全雙工異步串行口(uart),由于stc12系列是高速的8051,可再用定時(shí)器或pca軟件,可再用定時(shí)器或pca軟件可再用定時(shí)器或pca軟件實(shí)現(xiàn)多串口。(19).stc12c5a60s2系列有雙串口,后綴有s2標(biāo)志的才有雙串口,rxd2/p.2 (可通過(guò)寄存器設(shè)置到p4.2 ),txd2/p.3 (可通過(guò)寄存器設(shè)置到p4.3)。(20).工作溫度范圍:-40 +85(工業(yè)級(jí))/0 75(商業(yè)級(jí))。(21).封裝:lqfp-48, lqfp-44, pdip-40, plc
35、c-44,,qfn-40i/o口不夠時(shí),可用2到3根普通i/o口線外接74hc64/65/595(均可級(jí)聯(lián))來(lái)擴(kuò)展i/o口,還可用a/d做按鍵掃描來(lái)節(jié)省i/o口,或用雙cpu,三線通信,還多了串口。而enc28j60網(wǎng)絡(luò)模塊是美國(guó)微芯科技公司于2005年推出的一款28引腳的獨(dú)立以太網(wǎng)控制器,可為嵌入式應(yīng)用提供低引腳數(shù)、低成本且高效易用的遠(yuǎn)程通訊解決方案。利用enc28j60以太網(wǎng)控制器,可以實(shí)現(xiàn)占位小、成本低、更加精簡(jiǎn)的嵌入式網(wǎng)絡(luò)應(yīng)用系統(tǒng)。實(shí)現(xiàn)兩者之間的通訊,只需4條連線即可實(shí)現(xiàn)與單片機(jī)連接,有利于在小型系統(tǒng)上實(shí)現(xiàn)以太網(wǎng)功能如圖3-2所示。圖3-2 stc12c5a60s2與enc28j60連
36、接圖3.2串口通信3.2.1 通信簡(jiǎn)介計(jì)算機(jī)與外界所進(jìn)行的信息交換被稱為通信,其基本方式可以分為并行通信和串行通信兩種。并行通行是指一次就可以同時(shí)傳送一個(gè)數(shù)據(jù)字的傳輸方式(其中包含8位、16位,甚至更多的數(shù)據(jù))。其優(yōu)點(diǎn)是傳輸速度快;缺點(diǎn)是需要同時(shí)連接的線數(shù)多,尤其是在通信距離較長(zhǎng)時(shí),傳輸線的成本會(huì)急劇增加。串行通信是指把一個(gè)數(shù)據(jù)字逐位、順序、分時(shí)進(jìn)行的傳輸方式。其缺點(diǎn)是傳送速度較慢,其優(yōu)點(diǎn)是需要數(shù)量較少的傳輸線,且占用的引腳資源較少。串行通信又存在著異步通信和同步通信兩種基本方式8:(1)異步方式。其特點(diǎn)是通信雙方以一個(gè)字節(jié)作為數(shù)據(jù)傳輸單位,且發(fā)送方傳送字符的間隔時(shí)間是不定的,在傳送一個(gè)字符時(shí)
37、總是以起始位開(kāi)始,以停止位結(jié)束。異步通信傳輸格式見(jiàn)圖3-3所示。圖3-3 異步通信字符傳輸幀格式一個(gè)字符單位除表示字符信息的數(shù)據(jù)位外,還有若干附加位:起始位(一位,值恒為0),奇偶位(可有可無(wú)),停止位(長(zhǎng)度1、1.5和2可選,值恒為1)。傳送一個(gè)字符必須以起始位開(kāi)始,以停止位結(jié)束,這個(gè)過(guò)程稱為一幀。(2)同步方式。在數(shù)據(jù)開(kāi)始傳輸時(shí),發(fā)送方先發(fā)送一個(gè)或兩個(gè)特殊字符,當(dāng)發(fā)送方和接收方達(dá)到同步后,就可以一個(gè)字符接一個(gè)字符都加起,使其傳輸效率比較低,因此異步通信一般用在數(shù)據(jù)速率較慢的場(chǎng)合。在高速傳輸時(shí),一般應(yīng)采取同步協(xié)議。因此,在單片機(jī)與外圍芯片之間的近距離通信中,同步通信方式得到了廣泛的應(yīng)用。所以
38、,對(duì)于近距離的點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)通信,若不要求太高的數(shù)據(jù)傳輸率,則通常采用設(shè)備簡(jiǎn)單、控制容易的異步傳輸為好。3.2.2 單片機(jī)串口結(jié)構(gòu)(1)單片機(jī)的串行接口是一個(gè)全雙工通信接口,即能同時(shí)進(jìn)行發(fā)送和接收。其幀格式和波特率可通過(guò)軟件編程設(shè)置,在使用上非常方便靈活。串行口主要由兩個(gè)數(shù)據(jù)緩沖器sbuf、一個(gè)輸入移位寄存器、一個(gè)串行控制寄存器scon和一個(gè)波特率發(fā)生器t1等組成。(2)串行通信過(guò)程在接收數(shù)據(jù)過(guò)程中進(jìn)行通信時(shí),當(dāng)cpu允許接收時(shí)(即scon的ren為1時(shí)),外界數(shù)據(jù)通過(guò)引腳rxd串行輸入,數(shù)據(jù)的最低位首先進(jìn)入移位器,一幀接收完畢再并行送入緩沖器sbuf中,同時(shí)將接收中斷標(biāo)志位ri置位,向cpu發(fā)
39、出中斷請(qǐng)求。cpu響應(yīng)中斷后,并用軟件將ri位清除同時(shí)讀走輸入的數(shù)據(jù)。接著又開(kāi)始下一幀的輸入過(guò)程。重復(fù)直至所有數(shù)據(jù)接收完畢。在發(fā)送數(shù)據(jù)過(guò)程中進(jìn)行通信時(shí),當(dāng)cpu要發(fā)送數(shù)據(jù)時(shí),將數(shù)據(jù)并行寫(xiě)入發(fā)送緩存器sbuf中,同時(shí)啟動(dòng)數(shù)據(jù)由txd引腳串行發(fā)送,當(dāng)一幀數(shù)據(jù)發(fā)送完既發(fā)送緩沖器空時(shí),由硬件自動(dòng)將發(fā)送中斷標(biāo)志位ti置位,向cpu發(fā)出中斷請(qǐng)求。cpu響應(yīng)中斷后,用軟件將ti位清除,同時(shí)又將下一幀數(shù)據(jù)寫(xiě)入sbuf中,重復(fù)上述過(guò)程,直至所有數(shù)據(jù)發(fā)送完畢。3.2.3 串行口工作方式及幀格式單片機(jī)串行口可以通過(guò)軟件設(shè)置四種工作方式:(1)方式0這種工作方式比較特殊,與常見(jiàn)的微型計(jì)算機(jī)的串行口不同,它又叫同步移位
40、寄存器輸出方式。在這種方式下,數(shù)據(jù)從rxd端串行輸出或輸入,同步信號(hào)從txd端輸出,波特率固定不變:為震蕩頻率的1/12。該方式是以8位數(shù)據(jù)為一幀,沒(méi)有起始位和停止位,先發(fā)送或接收最低位。(2)方式1串行口采用該方式時(shí),特別適合于點(diǎn)對(duì)點(diǎn)的異步通信。該方式規(guī)定發(fā)送或接收一個(gè)字符10位為一幀,即一個(gè)起始位,8個(gè)數(shù)據(jù)位,一個(gè)停止位,波特率可以改變。(3)方式2采用這種方式可以接收或發(fā)送11 位數(shù)據(jù),以11 位為一幀,比方式1 增加了一個(gè)數(shù)據(jù)位,其余相同。第9 個(gè)數(shù)據(jù)即d8 位具有特別的用途,可以通過(guò)軟件來(lái)控制它,再加特殊功能寄存器scon 中的sm2 位的配合,可使單片機(jī)適用于多機(jī)通信。方式2 波特
41、率固定,只有兩種選擇:為振蕩頻率的1/32 或1/64,由pcon 最高位選擇。(4)方式3方式3 與方式2 完全類似,唯一的區(qū)別是方式3 波特率可變,所以適用于多機(jī)通信。3.2.4 單片機(jī)與串口的通信由于串口用的是ttl電平,和rs-232電平不同,因此,單片機(jī)和pc通信時(shí)需要進(jìn)行電平轉(zhuǎn)換,常用的ic是max232,其中max232供電腳為+5v。采用了三線制連接串口,也就是說(shuō)和計(jì)算機(jī)的9針串口只連接其中的3根線。第5腳的gnd、第2腳的rxd、第3腳的txd。這是最簡(jiǎn)單的連接方法,但是對(duì)我們來(lái)說(shuō)足夠使用了。rs-232引腳圖如圖3-4所示。圖3-4 rs-232串口(母口)rs-232的標(biāo)
42、準(zhǔn)接口有25條線,4條數(shù)據(jù)線、11條控制線、3條定時(shí)線、7條備用和未定義線,常用的只有9根,它們是:2個(gè)數(shù)據(jù)信號(hào),發(fā)送信號(hào)txd、接收信號(hào)rxd;1個(gè)信號(hào)地線sg;6個(gè)控制信號(hào),dsr、dtr、rts、cts、dcd。當(dāng)通信距離較近時(shí),通信雙方可以直接連接,這種情況下,只需使用少數(shù)幾根信號(hào)線。最簡(jiǎn)單的情況,在通信中根本不需要rs-232的控制聯(lián)絡(luò)信號(hào),只需三根線(發(fā)送線、接收線、信號(hào)地線)便可實(shí)現(xiàn)全雙工異步串行通信。在這種方式下,通信雙方的任何一方,只要請(qǐng)求發(fā)送rts有效和數(shù)據(jù)終端準(zhǔn)備好dtr有效就能開(kāi)始發(fā)送和接收。圖3-5是rs-232最簡(jiǎn)單的連接方法(即三線連接),圖中的2號(hào)線與3號(hào)線交叉
43、連接是因?yàn)樵谥边B方式時(shí),把通信雙方都當(dāng)作數(shù)據(jù)終端設(shè)備看待,雙方都可發(fā)也可收,發(fā)送信號(hào)線接接收信號(hào)線、接收信號(hào)線接發(fā)送信號(hào)線、5號(hào)線同時(shí)接地。在這種方式下,通信雙方的任何一方,只要請(qǐng)求發(fā)送rts有效和數(shù)據(jù)終端準(zhǔn)備好dtr有效就能開(kāi)始發(fā)送和接收。圖3-5 三線連接3.2.5 單片機(jī)串口通信設(shè)置在系統(tǒng)中,單片機(jī)一般稱為下位機(jī),通常用來(lái)完成數(shù)據(jù)的采集和上傳,由pc機(jī)、網(wǎng)絡(luò)設(shè)備、數(shù)據(jù)庫(kù)服務(wù)器組成的后臺(tái)應(yīng)用部分則稱為上位機(jī),對(duì)下位機(jī)的上傳數(shù)據(jù)進(jìn)行分析并處理。系統(tǒng)充分發(fā)揮了單片機(jī)在實(shí)時(shí)數(shù)據(jù)采集和微機(jī)對(duì)數(shù)據(jù)處理顯示以及單片機(jī)串行口工作方式選擇、中斷標(biāo)志、可編程位的設(shè)置、波特率的倍增均是通過(guò)兩個(gè)特殊功能寄存器s
44、con和pcon來(lái)控制的。在串口通信模塊中,波特率在程序初始化時(shí)定義為9600b/s。波特率的產(chǎn)生用定時(shí)器產(chǎn)生,在設(shè)置時(shí)選擇定時(shí)器1,并將它設(shè)為工作方式2,8位的常數(shù)自動(dòng)重新裝載的定時(shí)器,這種工作方式可以省去用戶軟件中重裝初值的程序,簡(jiǎn)化定時(shí)初值的計(jì)算方法,可以相當(dāng)精確的確定定時(shí)時(shí)間。計(jì)算出定時(shí)器的初值之后,在設(shè)定串行口的工作方式,在這里令scon=0x50,即scon各位中,sm0=0,sm1=1,ren=1,其他控制字為0,選擇為工作方式1,8位一步收發(fā)。令tcon中的tr1=1,啟動(dòng)定時(shí)器,并禁止其他中斷。3.3 enc28j60外圍電路enc28j60的硬件設(shè)計(jì)需要注意時(shí)鐘振蕩器、復(fù)位
45、電路、變壓器、接口電路、終端和其他外部器件,輸入/輸出電平等幾個(gè)方面事項(xiàng),下面分別介紹這些需注意的事項(xiàng)。(1)時(shí)鐘振蕩器硬件設(shè)計(jì)中發(fā)現(xiàn)enc28j60芯片需要一個(gè)接在osc1和osc2腳上的25mhz的晶振;這個(gè)晶振也可由外部時(shí)鐘信號(hào)來(lái)完成如圖3-6所示。圖3-6 時(shí)鐘振蕩器電路(2)復(fù)位電路enc28j60芯片上的電復(fù)位功能,引腳reset上的低電平可以使該芯片進(jìn)入復(fù)位模式;并且引腳reset內(nèi)部有弱上拉電阻,同時(shí)dsp的復(fù)位信號(hào)也會(huì)使enc28j60芯片復(fù)位。(3)接口電路enc28j60芯片工作電壓為3.3 v,該芯片易于被設(shè)計(jì)為集成到5 v的系統(tǒng)中。此外該芯片可以通過(guò)spi和微控制器連
46、接;對(duì)于沒(méi)有spi接口的微控制器,我們也可以設(shè)計(jì)通過(guò)i/o 口模擬spi的方法實(shí)現(xiàn)。如果主控制器運(yùn)行在5 v電壓下,當(dāng)spi和中斷輸入由enc28j60芯片上的3.3 v cmos輸出驅(qū)動(dòng)時(shí)我們就需要有一個(gè)單向電平轉(zhuǎn)換器。只有將enc28j60芯片和主控芯片at89s52結(jié)合,這兩者之間的接口設(shè)計(jì)是一個(gè)關(guān)鍵。第4章 網(wǎng)絡(luò)協(xié)議4.1 tcp/ip協(xié)議簡(jiǎn)介傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議(transmission control protocol/internet protocol,tcp/ip),又叫網(wǎng)絡(luò)通訊協(xié)議1,是internet最基本的協(xié)議、同時(shí)也是internet國(guó)際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),簡(jiǎn)單地說(shuō)
47、,就是由網(wǎng)絡(luò)層的ip協(xié)議和傳輸層的tcp協(xié)議組成的。是互聯(lián)網(wǎng)中的基本通信語(yǔ)言或協(xié)議。在私網(wǎng)中,它也被用作通信協(xié)議。當(dāng)你直接網(wǎng)絡(luò)連接時(shí),你的計(jì)算機(jī)應(yīng)提供一個(gè)tcp/ip程序的副本,此時(shí)接收你所發(fā)送的信息的計(jì)算機(jī)也應(yīng)有一個(gè)tcp/ip程序的副本。參考開(kāi)放系統(tǒng)互連模型,tcp/ip協(xié)議一般采用一種簡(jiǎn)化的四層模型2,即鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。高層為傳輸控制協(xié)議,它負(fù)責(zé)聚集信息或把文件拆分成更小的包。低層是網(wǎng)際協(xié)議,它處理每個(gè)包的地址部分,使這些包正確的到達(dá)目的地。如圖4-1所示表示了各層協(xié)議的關(guān)系。圖4-1 各層協(xié)議之間的關(guān)系4.2 網(wǎng)絡(luò)互連網(wǎng)絡(luò)互連技術(shù)的發(fā)展,使得傳輸信息能夠在全世界范圍內(nèi)實(shí)
48、現(xiàn),我們課題中的網(wǎng)絡(luò)互聯(lián)關(guān)鍵是根據(jù)需要,對(duì)通訊協(xié)議進(jìn)行適當(dāng)?shù)募舨?,嵌入到通訊芯片中。網(wǎng)絡(luò)互聯(lián)設(shè)備劃分為:集線器、交換機(jī)和路由器,如圖4-2所示。圖4-2 網(wǎng)絡(luò)互連示意圖(1) 路由器:連接因特網(wǎng)中各局域網(wǎng)、廣域網(wǎng)的設(shè)備,它會(huì)根據(jù)信道的情況自動(dòng)選擇和設(shè)定路由,以最佳路徑,按前后順序發(fā)送信號(hào)的設(shè)備。目前路由器已經(jīng)廣泛應(yīng)用于各行各業(yè),各種不同檔次的產(chǎn)品已經(jīng)成為實(shí)現(xiàn)各種骨干網(wǎng)內(nèi)部連接、骨干網(wǎng)間互聯(lián)和骨干網(wǎng)與互聯(lián)網(wǎng)互聯(lián)互通業(yè)務(wù)的主力軍。(2) 交換機(jī):交換機(jī)工作在第二層。(3) 集線器:集線器本質(zhì)就是中繼器,工作在物理層。4.3 uip協(xié)議在單片機(jī)上的移植過(guò)程4.3.1 uip協(xié)議棧的實(shí)現(xiàn)方法簡(jiǎn)述uip
49、實(shí)現(xiàn)了tcp/ip協(xié)議集的四個(gè)基本協(xié)議:arp地址解析協(xié)議,ip網(wǎng)際互聯(lián)協(xié)議,icmp網(wǎng)絡(luò)控制報(bào)文協(xié)議和tcp傳輸控制協(xié)議。為了在8位16位處理器上應(yīng)用,uip協(xié)議棧在各層協(xié)議實(shí)現(xiàn)時(shí)采用有針對(duì)性的方法,保持代碼大小和存儲(chǔ)器使用量最小。(1)實(shí)現(xiàn)arp地址解析協(xié)議時(shí)為了節(jié)省存儲(chǔ)器,arp應(yīng)答包直接覆蓋arp請(qǐng)求包。(2)實(shí)現(xiàn)ip網(wǎng)絡(luò)協(xié)議時(shí)對(duì)原協(xié)議進(jìn)行了極大的簡(jiǎn)化,它沒(méi)有實(shí)現(xiàn)分片和重組。(3)實(shí)現(xiàn)icmp網(wǎng)絡(luò)控制報(bào)文協(xié)議時(shí),只實(shí)現(xiàn)echo(回響)服務(wù)。uip在生成回響報(bào)文時(shí)并不重新分配存儲(chǔ)器空間,而是直接修改echo請(qǐng)求報(bào)文來(lái)生成回響報(bào)文。將icmp類型字段從“echo”類型改變成“echorep
50、ly”類型,重新計(jì)算校驗(yàn)和修改校驗(yàn)和字段。(4)uip里的tcp沒(méi)有實(shí)現(xiàn)發(fā)送和接收數(shù)據(jù)的滑動(dòng)窗口。每個(gè)tcp連接的狀態(tài)由uip_conn結(jié)構(gòu)保存,uip_conn結(jié)構(gòu)包括當(dāng)?shù)睾瓦h(yuǎn)端的tcp端口編號(hào),遠(yuǎn)程主機(jī)的ip地址,重發(fā)時(shí)間值,上一段重發(fā)的編號(hào),和連接的段的最大尺寸等信息。一個(gè)uip_conn結(jié)構(gòu)數(shù)組用于保存所有的連接,數(shù)組的大小為支持的同時(shí)連接的最大數(shù)量。為了減少儲(chǔ)存器的使用量,在處理重發(fā)時(shí)uip并不緩存發(fā)送的數(shù)據(jù)包,而是由應(yīng)用程序在需要重發(fā)時(shí)重新生成發(fā)送的數(shù)據(jù)。4.3.2 uip架構(gòu)uip相當(dāng)于一個(gè)代碼庫(kù),通過(guò)一系列的函數(shù)實(shí)現(xiàn)與底層硬件和高層應(yīng)用程序之間的通訊,對(duì)于整個(gè)系統(tǒng)來(lái)說(shuō)它內(nèi)部的協(xié)
51、議組是透明的,從而增加了協(xié)議的通用性。uip協(xié)議棧與系統(tǒng)底層和高層應(yīng)用之間的關(guān)系如圖4-3所示.圖4-3 uip在系統(tǒng)中的位置uip 協(xié)議棧主要提供了三個(gè)函數(shù)供系統(tǒng)底層調(diào)用。即uip_init(), uip_input()和uip_periodic()。其與應(yīng)用程序的主要接口是uip_appcall( )。uip_init()是系統(tǒng)初始化時(shí)調(diào)用的,主要用于初始化協(xié)議棧的偵聽(tīng)端口和默認(rèn)所有連接是關(guān)閉的。當(dāng)網(wǎng)卡驅(qū)動(dòng)收到一個(gè)輸入包時(shí),將其放入全局緩沖區(qū) uip_buf 中,包的大小由全局變量uip_len 約束。同時(shí)將調(diào)用uip_input()函數(shù),這個(gè)函數(shù)將會(huì)根據(jù)包首部的協(xié)議處理這個(gè)包并在需要時(shí)調(diào)
52、用應(yīng)用程序。當(dāng)uip_input()返回時(shí),一個(gè)輸出包同樣放在全局緩沖區(qū)uip_buf 里,并把大小賦給uip_len。若uip_len 是0,則說(shuō)明沒(méi)有包要發(fā)送;否則調(diào)用底層系統(tǒng)的發(fā)包函數(shù)就會(huì)將包發(fā)送到網(wǎng)絡(luò)上。uip周期計(jì)時(shí)用于驅(qū)動(dòng)所有的uip內(nèi)部時(shí)鐘事件:當(dāng)周期計(jì)時(shí)激發(fā),每一個(gè)tcp連接都會(huì)調(diào)用uip函數(shù)uip_periodic()。類似于uip_input()函數(shù),uip_periodic()函數(shù)返回時(shí),輸出的ip 包要放到uip_buf 中,供底層系統(tǒng)查詢uip_len 的大小并發(fā)送。由于tcp/ip 的應(yīng)用場(chǎng)景很多,所以應(yīng)用程序作為單獨(dú)的模塊由用戶實(shí)現(xiàn)。uip 協(xié)議棧提供一系列接口函
53、數(shù)供用戶程序調(diào)用,其中大部分函數(shù)是作為c的宏命令實(shí)現(xiàn)的,主要是為了速度、代碼大小、堆棧和效率的使用。用戶需要將應(yīng)用層入口程序作為接口提供給uip協(xié)議棧,并將這個(gè)函數(shù)定義為uip_appcall()。這樣以來(lái),uip 在接受到底層傳來(lái)的數(shù)據(jù)包后,在需要送到上層應(yīng)用程序處理的地方,調(diào)用uip_appcall( ),在不用修改協(xié)議棧的情況下可以適配不同的應(yīng)用程序。4.3.2 uip協(xié)議在單片機(jī)上的移植1為此項(xiàng)目建立一個(gè)keil c工程,建立src目錄存放源文件。2通過(guò)閱讀uip-1.0unixmain.c,了解uip的的主循環(huán)代碼架構(gòu),并將main.c放到src 目錄下。3仿照uip-1.0unix
54、tapdev.c寫(xiě)網(wǎng)卡驅(qū)動(dòng)程序,與具體硬件相關(guān)。這一步比較費(fèi)點(diǎn)時(shí)間,不過(guò)好在大部分網(wǎng)卡芯片的驅(qū)動(dòng)程序都有代碼借鑒或移植。驅(qū)動(dòng)需要提供三個(gè)函數(shù)。etherdev_init():網(wǎng)卡初始化函數(shù),初始化網(wǎng)卡的工作模式。u16_t etherdev_read(void):讀包函數(shù)。將網(wǎng)卡收到的數(shù)據(jù)放入全局緩存區(qū)uip_buf 中,返回包的長(zhǎng)度,賦給uip_len。void etherdev_send(void):發(fā)包函數(shù)。將全局緩存區(qū)uip_buf 里的數(shù)據(jù)(長(zhǎng)度放在uip_len 中)發(fā)送出去。因此,收包和發(fā)包主要是操作uip_buf 和uip_len。4因?yàn)閡ip 協(xié)議棧需要使用時(shí)鐘,為tcp 和arp 的定時(shí)器服務(wù),所以使用單片機(jī)的定時(shí)器0 用作時(shí)鐘,每20ms 讓計(jì)數(shù)tick_cnt 加1,這樣,25 次計(jì)數(shù)(0.5s)滿了后可以調(diào)用tcp 的定時(shí)處理程序,10s 后可以調(diào)用arp 老化程序。對(duì)uip1.0 版本,增加了timer.c/timer.h,專門用來(lái)管理時(shí)鐘,都放到src 下。5uip 協(xié)議棧的主要內(nèi)容在uip-1.0uip下的uip.c/uip.h 中,放到src 下。如果需要arp 協(xié)議,需要將uip_arp.c 和uip_arp.h 也放到src 下。6uipopt.h/u
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年地下室承臺(tái)施工環(huán)保責(zé)任承諾合同3篇
- 托班感官操作課程設(shè)計(jì)
- 2024年月結(jié)新型建筑材料供貨與安裝合同書(shū)3篇
- 2024年育兒嫂服務(wù)協(xié)議標(biāo)準(zhǔn)格式版B版
- 機(jī)械制造課程設(shè)計(jì)題目
- 2024年抵押房屋買賣合同范本更新版3篇
- 2024年度員工宿舍疫情防控責(zé)任書(shū)2篇
- 2024年煤礦開(kāi)采權(quán)轉(zhuǎn)讓協(xié)議
- 2024年汽車租賃公司股東權(quán)益保障協(xié)議版
- 玉米線描課程設(shè)計(jì)圖
- 八卦五行-PPT課件
- ISO8573-2測(cè)定懸浮狀油含量的試驗(yàn)方法學(xué)習(xí)資料
- 中國(guó)地質(zhì)大學(xué)(武漢)教育發(fā)展基金會(huì)籌備成立情況報(bào)告
- 薪酬管理試卷及答案
- 大學(xué)無(wú)機(jī)及分析化學(xué)----氣體練習(xí)題及答案
- 鐵路建設(shè)項(xiàng)目施工企業(yè)信用評(píng)價(jià)辦法(鐵總建設(shè)〔2018〕124號(hào))
- 保險(xiǎn)行業(yè)新會(huì)計(jì)準(zhǔn)則實(shí)施指南征求意見(jiàn)稿
- 形式發(fā)票模板 PI模板 英文版
- 初一的最美的風(fēng)景高分的作文600字
- 密封固化劑配方分析
- 國(guó)際項(xiàng)目管理專業(yè)資質(zhì)認(rèn)證(ipmp)b級(jí)報(bào)告模板
評(píng)論
0/150
提交評(píng)論