嵌入式Internet技術(shù)研究及在網(wǎng)絡(luò)儀器中的應(yīng)用_第1頁(yè)
嵌入式Internet技術(shù)研究及在網(wǎng)絡(luò)儀器中的應(yīng)用_第2頁(yè)
嵌入式Internet技術(shù)研究及在網(wǎng)絡(luò)儀器中的應(yīng)用_第3頁(yè)
嵌入式Internet技術(shù)研究及在網(wǎng)絡(luò)儀器中的應(yīng)用_第4頁(yè)
嵌入式Internet技術(shù)研究及在網(wǎng)絡(luò)儀器中的應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩74頁(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、 嵌入式Internet技術(shù)研究及在網(wǎng)絡(luò)儀器中的應(yīng)用學(xué)科專業(yè): 培養(yǎng)方向: 碩 士 生: 指導(dǎo)教師: Research on embedded Internet technology and the application in network instrumentDissertation Submitted to China University of Petroleumin partial fulfillment of the requirementfor the degree of Master of EngineeringbyLI Su-xia(Computer Application

2、 Technology)Dissertation Supervisor: Professor DUAN You-xiangAssociate Professor ZHAO Shi-junSeptember, 2006獨(dú) 創(chuàng) 性 聲 明本人聲明所呈交的論文是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。盡我所知,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果,也不包含為獲得中國(guó)石油大學(xué)或其它教育機(jī)構(gòu)的學(xué)位或證書(shū)而使用過(guò)的材料。與我一同工作的同志對(duì)本研究所做的任何貢獻(xiàn)均已在論文中作了明確的說(shuō)明并表示了謝意。簽 名: 年 月 日關(guān)于論文使用授權(quán)的說(shuō)明本人完全了解

3、XXX大學(xué)有關(guān)保留、使用學(xué)位論文的規(guī)定,即:學(xué)校有權(quán)保留送交論文的復(fù)印件及電子版,允許論文被查閱和借閱;學(xué)校可以公布論文的全部或部分內(nèi)容,可以采用影印、縮印或其他復(fù)制手段保存論文。(保密論文在解密后應(yīng)遵守此規(guī)定)學(xué)生簽名: 年 月 日導(dǎo)師簽名: 年 月 日嵌入式Internet技術(shù)研究及在網(wǎng)絡(luò)儀器中的應(yīng)用摘要隨著Internet的廣泛應(yīng)用,許多原本獨(dú)立的設(shè)備和系統(tǒng)開(kāi)始與Internet互聯(lián),使越來(lái)越多的信息資源共享成為可能。嵌入式系統(tǒng)接入Internet的技術(shù)難點(diǎn)在于:如何利用嵌入式系統(tǒng)自身有限的資源對(duì)信息進(jìn)行TCP/IP協(xié)議處理,使之變成可以在Internet上傳輸?shù)腎P數(shù)據(jù)包。論文首先闡述

4、了嵌入式Internet的特點(diǎn)和原理,對(duì)比分析了嵌入式Internet的實(shí)現(xiàn)方案。重點(diǎn)討論了嵌入式TCP/IP協(xié)議的實(shí)現(xiàn)方法和特殊性。針對(duì)嵌入式系統(tǒng)自身資源不足的特點(diǎn),提出了TCP/IP協(xié)議的簡(jiǎn)化原則和方法。針對(duì)石油儀器儀表傳輸數(shù)據(jù)的特點(diǎn),以O(shè)penTcp協(xié)議為原型,裁剪TCP/IP協(xié)議棧,采用標(biāo)準(zhǔn)的TCP/IP協(xié)議分層結(jié)構(gòu),向上提供Socket應(yīng)用程序編程接口,設(shè)計(jì)的目標(biāo)是通過(guò)以太網(wǎng)使嵌入式系統(tǒng)連入Internet。實(shí)現(xiàn)了幾個(gè)主要的協(xié)議,即ARP、IP、ICMP、TCP、HTTP。分層介紹了TCP/IP協(xié)議族中各個(gè)協(xié)議的地位、作用及相互關(guān)系,詳細(xì)描述了對(duì)各層協(xié)議的精簡(jiǎn)及改進(jìn),并給出了實(shí)現(xiàn)算法

5、及相應(yīng)的代碼。該TCP/IP協(xié)議集全部用C語(yǔ)言編寫(xiě),具有移植性、實(shí)時(shí)性、與平臺(tái)無(wú)關(guān)性,采用模塊化設(shè)計(jì),可以方便、快捷地移植到其它單片機(jī)上。最后,本文給出了一種能在16位單片機(jī)實(shí)現(xiàn)Web服務(wù)器的方法,單片機(jī)采用飛思卡爾MC9S12系列的MC9S12NE64。它片內(nèi)帶有符合IEEE 802.3通信協(xié)議標(biāo)準(zhǔn)的以太網(wǎng)接口模塊,所以硬件方面可以很方便、快捷的完成網(wǎng)絡(luò)接口的設(shè)計(jì),軟件方面主要是設(shè)計(jì)以太網(wǎng)底層驅(qū)動(dòng)軟件和TCP/IP協(xié)議。最后,將設(shè)計(jì)好的Web服務(wù)器應(yīng)用到石油儀器儀表中實(shí)現(xiàn)石油儀器的互聯(lián)網(wǎng)連接,驗(yàn)證了精簡(jiǎn)的TCP/IP協(xié)議的可行性。關(guān)鍵詞:以太網(wǎng),嵌入式Web服務(wù)器,TCP/IP協(xié)議,通用網(wǎng)關(guān)

6、接口(CGI)網(wǎng)絡(luò)儀器Research on Embedded Internet Technology and the Application in Network InstrumentLI Su-xia (Computer Application Technology)Directed by Professor DUAN You-xiang,Associate Professor ZHAO Shi-junABSTRACTAlong with the wide application of Internet in many fields, a lot of isolated equipment

7、 and systems have been linked to it, which makes it possible that more and more information and resources can be shared. The technical difficulty of realizing embedded Internet is that how to implement TCP/IP stack using the limited resources of embedded system, in order to turn the data into the IP

8、 data packet which transmits on Internet.First, the characteristic and principle of embedded Internet is introduced in the paper, and the schemes of implementing embedded Internet are analyzed, the method and particularity of embedded TCP/IP protocol are emphasied. Then, considering the limited reso

9、urce of embedded system, some principles and methods of simpification are explained in particular.Considering the limited resource of 16-bit single-chip computer, it is not possible and necessary to implement the whole TCP/IP protocol. In view of the data transmission characteristic of petroleum ins

10、trument, cuts out TCP/IP stack, based on OpenTcp. Also uses the standard TCP/IP structure, upwardly provides the Socket application interface. The goal is connecting embedded device with Internet through Ethernet. We simplify TCP/IP suit, including ARP, IP, ICMP, TCP and HTTP. The responsibility and

11、 mutual relation of these protocols are introduced hierarchically. The detailed simplify and improvement of each protocol is given, also introduces the algorithm and the corresponding code. This TCP/IP stack program by C language completely. It is transplant, real-time and modular. So it is convenie

12、ntly transplants to other MCU.Finally, a method to implement embedded web server in 16-bit MCU is detailed, the MC9S12NE64 integrated Ethernet controller is compatible with IEEE 802.3. The interface of Ethernet network is designed conveniently in hardware and the driver of network controller and TCP

13、/IP protol is designed in software. Finally, take this embedded web server into petroleum instrument.to communicate between browser and instruments, thus valicate the feasibility of TCP/IP protol stack.Keywords: Ethernet, embedded Web server, TCP/IP stack, CGI embedded environments, Network Instrume

14、nt目 錄聲 明i中文摘要ii英文摘要iii目 錄v第1章前言11.1研究背景及意義11.2相關(guān)技術(shù)及研究現(xiàn)狀21.2.1 嵌入式Internet接入技術(shù)21.2.2 嵌入式Web服務(wù)器技術(shù)31.3研究的內(nèi)容及特色41.4論文組織結(jié)構(gòu)5第2章 嵌入式Internet的技術(shù)原理62.1 嵌入式Internet的原理62.2 嵌入式Internet的接入技術(shù)62.2.1 嵌入式Internet的接入方案62.2.2 嵌入式Internet接入實(shí)現(xiàn)的特點(diǎn)72.2.3 嵌入式Internet接入底層硬件協(xié)議82.3嵌入式TCP/IP協(xié)議92.3.1 TCP/IP協(xié)議子集的構(gòu)成分析92.3.2 嵌入式系

15、統(tǒng)實(shí)現(xiàn)TCP/IP協(xié)議的特殊性122.3.3 嵌入式TCP/IP協(xié)議的實(shí)現(xiàn)方案14第3章 系統(tǒng)總體設(shè)計(jì)及硬件平臺(tái)163.1系統(tǒng)總體設(shè)計(jì)方案163.1.1 總體方案的設(shè)計(jì)原則163.1.2 系統(tǒng)總體設(shè)計(jì)方案163.2 硬件平臺(tái)183.2.1 MCU單元183.2.2 以太網(wǎng)接口模塊193.3電路設(shè)計(jì)圖24第4章 嵌入式TCP/IP協(xié)議的實(shí)現(xiàn)274.1 軟件總體框架設(shè)計(jì)274.1.1功能概述274.1.2 程序模塊組成284.1.3開(kāi)發(fā)語(yǔ)言的選擇304.2 以太網(wǎng)底層驅(qū)動(dòng)軟件模塊314.2.1 以太網(wǎng)底層驅(qū)動(dòng)軟件的特性和功能314.2.2 以太網(wǎng)數(shù)據(jù)幀結(jié)構(gòu)324.2.3 以太網(wǎng)控制器的初始化334

16、.2.4 發(fā)送數(shù)據(jù)344.2.5 接收數(shù)據(jù)344.3 ARP協(xié)議的實(shí)現(xiàn)354.3.1 ARP 協(xié)議概述354.3.2 ARP的分組格式354.3.3 ARP高速緩存表364.3.4 主要實(shí)現(xiàn)過(guò)程和函數(shù)374.4 IP協(xié)議的實(shí)現(xiàn)384.4.1 IP協(xié)議概述384.4.2 IP功能的簡(jiǎn)化384.4.3 IP數(shù)據(jù)報(bào)格式及主要實(shí)現(xiàn)函數(shù)394.5 ICMP的實(shí)現(xiàn)414.6 TCP協(xié)議的實(shí)現(xiàn)424.6.1 TCP協(xié)議的簡(jiǎn)化424.6.2 TCP連接過(guò)程464.6.3 TCP報(bào)文474.6.4 連接狀態(tài)數(shù)據(jù)結(jié)構(gòu)494.7 HTTP協(xié)議的實(shí)現(xiàn)504.7.1 HTTP協(xié)議及主要數(shù)據(jù)結(jié)構(gòu)504.7.2 文件系統(tǒng)5

17、14.7.3 CGI 的實(shí)現(xiàn)524.7.4 主要函數(shù)分析53第5章 協(xié)議棧的測(cè)試與應(yīng)用555.1 協(xié)議棧的測(cè)試555.1.1 PING測(cè)試555.1.2 HTTP測(cè)試565.1.3 傳輸速度的測(cè)試575.2 網(wǎng)絡(luò)儀器結(jié)構(gòu)595.3應(yīng)用實(shí)例60第6章 結(jié)論與展望62參考文獻(xiàn)63致謝66個(gè)人簡(jiǎn)歷和在學(xué)期間的研究成果67vii中國(guó)石油大學(xué)(華東)碩士論文 第1章 前言第1章前言1.1研究背景及意義嵌入式系統(tǒng)(Embedded Systems)是以應(yīng)用為中心,以計(jì)算技術(shù)為基礎(chǔ),軟件硬件可剪裁的適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)1。目前大多數(shù)嵌入式系統(tǒng)還處于單獨(dú)應(yīng)用的

18、階段,以MCU為核心,與一些監(jiān)測(cè)、伺服、指示設(shè)備配合實(shí)現(xiàn)一定的功能。嵌入式Internet最初是為了解決嵌入式系統(tǒng)與Internet互連而提出來(lái)的,其研究背景主要是基于以下兩個(gè)方面:(1)嵌入式系統(tǒng)無(wú)處不在嵌入式系統(tǒng)已經(jīng)廣泛滲透到人們的工作、生活中,從家用電器、手持通訊設(shè)備、信息終端、儀器儀表、汽車(chē)、航天航空、軍事裝備、制造工業(yè)、過(guò)程控制等。今天,嵌入式系統(tǒng)帶來(lái)的工業(yè)年產(chǎn)值已超過(guò)1萬(wàn)億美元。據(jù)統(tǒng)計(jì),嵌入式處理器的數(shù)量占分散處理器的94%,而PC機(jī)用的處理器只占6%。(2)嵌入式系統(tǒng)與Internet的結(jié)合是嵌入式系統(tǒng)發(fā)展的一個(gè)重要趨勢(shì)如今,Internet已經(jīng)遍布全球,E-mail和WWW的普

19、遍應(yīng)用使得Internet被大眾接受,Internet已經(jīng)成為人們獲得各類信息、相互交流的重要渠道。Internet的迅速發(fā)展,使得網(wǎng)絡(luò)用戶呈指數(shù)增長(zhǎng),同時(shí)也促進(jìn)了嵌入式網(wǎng)絡(luò)設(shè)備和產(chǎn)品的市場(chǎng)需求。在通用計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)互連的同時(shí),各種家電設(shè)備、儀器儀表、工業(yè)控制設(shè)備都在趨于網(wǎng)絡(luò)化,以便共享互聯(lián)網(wǎng)絡(luò)中龐大的信息資源。而現(xiàn)在儀器網(wǎng)絡(luò)化已成為現(xiàn)代測(cè)控系統(tǒng)、儀器儀表的重要發(fā)展方向,把TCP/IP協(xié)議作為一種嵌入式的應(yīng)用,嵌入到現(xiàn)場(chǎng)儀器中,使信號(hào)的收、發(fā)都以TCP/IP方式進(jìn)行,傳統(tǒng)儀器充當(dāng)著網(wǎng)絡(luò)中獨(dú)立節(jié)點(diǎn)的角色,信息可跨越網(wǎng)絡(luò)傳輸至所及的任何領(lǐng)域。從拓展儀器設(shè)備定義的角度出發(fā),將服務(wù)于人們從任何地點(diǎn)、在

20、任意時(shí)間都能夠獲取到測(cè)量信息的硬、軟件條件的有機(jī)集合稱為“網(wǎng)絡(luò)儀器”。網(wǎng)絡(luò)儀器已遠(yuǎn)遠(yuǎn)超出了傳統(tǒng)的單個(gè)式獨(dú)立儀器的范疇,也不是傳統(tǒng)的單個(gè)式獨(dú)立儀器的簡(jiǎn)單組合,它是適合在遠(yuǎn)程測(cè)控中使用的儀器,是嵌入式技術(shù)、儀器測(cè)控技術(shù)、網(wǎng)絡(luò)通信技術(shù)、現(xiàn)代計(jì)算機(jī)技術(shù)、微電子技術(shù)深度融合的結(jié)果23。把各種儀器接入Internet,實(shí)現(xiàn)PC機(jī)所具有的遠(yuǎn)程測(cè)量和信息發(fā)布等各項(xiàng)功能,有著廣泛的意義:通過(guò)網(wǎng)絡(luò),用戶能夠遠(yuǎn)程檢測(cè)/控制過(guò)程和獲取實(shí)驗(yàn)數(shù)據(jù)。通過(guò)網(wǎng)絡(luò),一個(gè)用戶能遠(yuǎn)程監(jiān)控多個(gè)過(guò)程,而多個(gè)用戶也同時(shí)對(duì)同一個(gè)過(guò)程進(jìn)行監(jiān)控。通過(guò)網(wǎng)絡(luò),用戶利用普通儀器設(shè)備采集數(shù)據(jù),然后指示另一臺(tái)功能強(qiáng)大的遠(yuǎn)方計(jì)算機(jī)分析數(shù)據(jù),并在網(wǎng)絡(luò)上實(shí)時(shí)發(fā)

21、布。通過(guò)網(wǎng)絡(luò),用戶就自己感興趣的問(wèn)題在世界范圍內(nèi)進(jìn)行合作和訪問(wèn),比如,軟件工程師可以把開(kāi)發(fā)程序下載給遠(yuǎn)方的目標(biāo)系統(tǒng),進(jìn)行調(diào)試和實(shí)時(shí)運(yùn)行,就象目標(biāo)系統(tǒng)在身邊一樣。1.2相關(guān)技術(shù)及研究現(xiàn)狀1.2.1 嵌入式Internet接入技術(shù)嵌入式Internet技術(shù)的發(fā)展非常迅速,國(guó)內(nèi)外投入嵌入式Internet研究的公司也日益增多。圍繞嵌入式系統(tǒng)如何接入Internet的問(wèn)題,各大公司推出了自己的技術(shù)方案,目前主要有以下幾種:1、PC網(wǎng)關(guān)(Gateway)+專用網(wǎng)此方案源于EmWare公司提出的EMIT(Embedded Micro Internet Working Technology)技術(shù)理論EM01

22、45。它的技術(shù)核心是采用代理上網(wǎng)機(jī)制,它采用桌面計(jì)算機(jī)作為網(wǎng)關(guān),稱為emGateway,在其上運(yùn)行TCP/IP協(xié)議,形成一個(gè)用戶可以通過(guò)網(wǎng)絡(luò)瀏覽器進(jìn)行遠(yuǎn)程訪問(wèn)的服務(wù)器。同時(shí),emGateway通過(guò)RS232、RS485、CAN等總線與嵌入式設(shè)備相連,每個(gè)嵌入式設(shè)備的應(yīng)用程序中包含一個(gè)獨(dú)立的通信任務(wù),稱為emMicro,負(fù)責(zé)監(jiān)測(cè)嵌入式設(shè)備中預(yù)先定義的變量,并將結(jié)果反饋到emGateway。同時(shí)emMicro還可以解釋emGateway的命令,修改設(shè)備中的變量,或進(jìn)行某種控制。為了完成網(wǎng)絡(luò)連接,emWare公司開(kāi)發(fā)了大量軟件來(lái)建立訪問(wèn)和監(jiān)控MCU應(yīng)用系統(tǒng)的接口,這些接口可以在不同的設(shè)備中。EmMi

23、cro和EmGateWay一起為嵌入式設(shè)備提供了Internet功能。這種方案存在如下缺點(diǎn):a. 需要依賴PC機(jī)作網(wǎng)關(guān)進(jìn)行協(xié)議轉(zhuǎn)換,在多個(gè)單片機(jī)系統(tǒng)分散的情況下,專用網(wǎng)絡(luò)布線極為不便;b. 需要在PC機(jī)上安裝專門(mén)的協(xié)議轉(zhuǎn)換軟件,該軟件通常由專門(mén)的第三方軟件商提供,費(fèi)用較高。2、32位MCU+RTOS(實(shí)時(shí)多任務(wù)操作系統(tǒng)) 采用32位的高檔單片機(jī),在RTOS(實(shí)時(shí)多任務(wù)操作系統(tǒng))的平臺(tái)上進(jìn)行軟件開(kāi)發(fā),在嵌入式系統(tǒng)中實(shí)現(xiàn)TCP/IP的協(xié)議處理。目前國(guó)內(nèi)較為流行的RTOS主要有Vxworks、pSOS、ucleus、Linux。網(wǎng)虎國(guó)際(Xlinux)公司己開(kāi)發(fā)出大小僅為100K,目前世界上最小的L

24、inux內(nèi)核QUARK(夸克),和總量不到2M的嵌入式Linux,并且在Intel公司推出的芯片strongARM上獲得了成功的應(yīng)用。這些RTOS各有特點(diǎn),后三種對(duì)圖形界面(GUI)的支持較好。由于采用高檔單片機(jī),該方案可以完成很多復(fù)雜的功能。但這種方案存在如下缺點(diǎn):a. 高檔單片機(jī)價(jià)格較貴,開(kāi)發(fā)周期較長(zhǎng);b .RTOS的移植需要專業(yè)人員,對(duì)開(kāi)發(fā)人員的技術(shù)能力要求比較高。3、MCU+專用網(wǎng)絡(luò)芯片這種方案是由MCU及固化了TCP/IP協(xié)議的芯片組成應(yīng)用系統(tǒng)的核心。比較有代表性的是力源公司開(kāi)發(fā)的Webchip芯片,是獨(dú)立于各種微控制器的專用網(wǎng)絡(luò)接口芯片,它通過(guò)標(biāo)準(zhǔn)的輸入、輸出口與各種MCU相連。M

25、CU通過(guò)Webchip與網(wǎng)關(guān)連接即可接收并執(zhí)行經(jīng)由Internet遠(yuǎn)程傳來(lái)的命令或?qū)?shù)據(jù)交給Webchip發(fā)送出去5。此方案由于TCP/IP協(xié)議是固化在芯片中,用戶不能修改,缺乏靈活性;另外,這種方案需要大容量的存儲(chǔ)器。1.2.2 嵌入式Web服務(wù)器技術(shù)嵌入式Web服務(wù)器 (Embedded Web Server,簡(jiǎn)稱EWS)是把Internet中的WebServer進(jìn)行一定的裁剪,嵌入到設(shè)備中的微處理器或微控制器,使設(shè)備具有網(wǎng)絡(luò)的功能,從而可以利用EWS對(duì)設(shè)備進(jìn)行監(jiān)控和管理,并且可以利用Web接收任何一個(gè)遠(yuǎn)程設(shè)備的數(shù)據(jù)和信息。如果設(shè)備中帶有EWS,為用戶提供強(qiáng)有力的基于Web管理的用戶接口,

26、那么設(shè)備就可以通過(guò)Web和Internet建立通信聯(lián)系。嵌入式Web服務(wù)器以TCP/IP協(xié)議棧為基礎(chǔ)構(gòu)建,但是傳統(tǒng)的TCP/IP協(xié)議使用在嵌入式Internet環(huán)境下是不合適的,當(dāng)把協(xié)議從普通的PC機(jī)移植到單片機(jī)中,內(nèi)存和內(nèi)存管理成為一個(gè)主要的問(wèn)題。由于受到資源的限制,在低端的單片機(jī)上不能像在PC機(jī)上設(shè)計(jì)TCP/IP那樣進(jìn)行通信協(xié)議的開(kāi)發(fā)。為了既實(shí)現(xiàn)相應(yīng)的功能又節(jié)省系統(tǒng)資源,需要對(duì)協(xié)議進(jìn)行有針對(duì)的模塊化裁減,在單片機(jī)上嵌入TCP/IP協(xié)議的子集,包括IP、UDP和TCP等協(xié)議的全部或部分功能6。目前常見(jiàn)的嵌入式TCP/IP協(xié)議棧如下表1所示:表1 常見(jiàn)嵌入式TCP/IP協(xié)議棧比較方案內(nèi)存需求代

27、碼尺寸特點(diǎn)/評(píng)價(jià)8052.lphard.cz32KByte15KB協(xié)議棧用ASM編寫(xiě)且以LIB形式發(fā)布,不利于移植TCP/IP lean Server on PIC500Byte5KB只有SLIP的支持,不能連接以太網(wǎng)TCPIP Stack on MSP4301KByte5KB代碼過(guò)于簡(jiǎn)單,不利于擴(kuò)展lwIP10KB40KB資源需求稍多TinyTCP500Byte6KB比較可行的方案uip 0.6500Byte5KB比較可行的方案Ucip1-0-3需要和uC/OS 這一實(shí)時(shí)內(nèi)核配合EtherNut 需要和NUT OS這一實(shí)時(shí)內(nèi)核配合OpenTcp免費(fèi),方便移植,可配合操作系統(tǒng)使用,也可以單獨(dú)使

28、用1.3研究的內(nèi)容及特色本研究通過(guò)分析目前的嵌入式Internet接入技術(shù)的特點(diǎn)及適用領(lǐng)域,在針對(duì)石油儀器網(wǎng)絡(luò)化的開(kāi)發(fā)中提出了一種適用于低端MCU連網(wǎng)的單芯片以太網(wǎng)聯(lián)網(wǎng)方案,并以O(shè)penTcp協(xié)議為原型,進(jìn)行TCP/IP協(xié)議的精剪工作。本研究具有以下特色:1、利用HTTPServer技術(shù)實(shí)現(xiàn)了基于B/S模式的訪問(wèn)。2、針對(duì)嵌入式TCP/IP協(xié)議中無(wú)法實(shí)現(xiàn)復(fù)雜的FAT32文件系統(tǒng),在HTTP協(xié)議中設(shè)計(jì)了一種簡(jiǎn)單實(shí)用的文件系統(tǒng),用于存放網(wǎng)頁(yè)的靜態(tài)頁(yè)面和圖片。3、采用CGI技術(shù),實(shí)現(xiàn)了動(dòng)態(tài)網(wǎng)頁(yè)的生成和簡(jiǎn)單的命令交互,減輕了嵌入式Web服務(wù)器端口MCU的負(fù)荷。1.4論文組織結(jié)構(gòu)本文的組織結(jié)構(gòu)如下:第1

29、章前言。主要闡述了本課題的研究背景,簡(jiǎn)要分析了其研究意義,概括了主要研究?jī)?nèi)容,介紹了相關(guān)技術(shù)與發(fā)展現(xiàn)狀。第2章嵌入式Internet的技術(shù)原理。討論了嵌入式Internet的原理和接入技術(shù),重點(diǎn)研究了嵌入式TCP/IP協(xié)議。分析了嵌入式系統(tǒng)實(shí)現(xiàn)TCP/IP協(xié)議的特殊性,根據(jù)嵌入式系統(tǒng)自身的特點(diǎn),提出了簡(jiǎn)化TCP/IP協(xié)議的原則及實(shí)現(xiàn)方案。第3章系統(tǒng)總體設(shè)計(jì)與硬件平臺(tái)。主要介紹了系統(tǒng)總體設(shè)計(jì)方案及硬件平臺(tái)。重點(diǎn)闡述了本方案所使用的16位單片機(jī)MC9S12NE64的特性,詳細(xì)介紹了以太網(wǎng)接口模塊,分析了以太網(wǎng)緩沖區(qū)大小的配置(BUFMAP值的大小)對(duì)網(wǎng)絡(luò)性能的影響,最后給出了它的硬件電路設(shè)計(jì)。第4

30、章嵌入式TCP/IP協(xié)議的實(shí)現(xiàn)。重點(diǎn)講述了本系統(tǒng)的軟件設(shè)計(jì)和實(shí)現(xiàn),包括底層以太網(wǎng)驅(qū)動(dòng)軟件和TCP/IP協(xié)議棧軟件。詳細(xì)描述了對(duì)OpenTcp協(xié)議的精簡(jiǎn)和改進(jìn),并給出了實(shí)現(xiàn)算法。HTTP協(xié)議中給出了文件系統(tǒng)的設(shè)計(jì)和利用CGI實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的方法。第5章 協(xié)議棧的測(cè)試與應(yīng)用。主要是對(duì)TCP/IP協(xié)議的性能進(jìn)行測(cè)試,同時(shí)討論了網(wǎng)絡(luò)化儀器系統(tǒng)的工作原理及實(shí)現(xiàn)技術(shù)。第6章結(jié)論與展望。本章對(duì)論文工作進(jìn)行了概括性總結(jié),并對(duì)下一步的工作進(jìn)行了展望。69中國(guó)石油大學(xué)(華東)碩士論文 第2章 嵌入式Internet的技術(shù)原理第2章 嵌入式Internet的技術(shù)原理2.1 嵌入式Internet的原理在嵌入式Inte

31、rnet環(huán)境下,設(shè)備通常是現(xiàn)場(chǎng)總線上的多臺(tái)設(shè)備或者是孤立的一臺(tái)傳統(tǒng)設(shè)備,要實(shí)現(xiàn)這些設(shè)備與Internet聯(lián)網(wǎng),需要有嵌入式Internet服務(wù)器為傳統(tǒng)的設(shè)備提供網(wǎng)絡(luò)接口,或者為現(xiàn)場(chǎng)總線和Internet之間的通信提供協(xié)議轉(zhuǎn)換的功能。Internet上的用戶只需使用標(biāo)準(zhǔn)的瀏覽器或?qū)S玫目蛻舳塑浖涂梢耘c嵌入式Internet服務(wù)器建立TCP或HTTP連接,由嵌入式Internet服務(wù)器來(lái)把用戶的指令轉(zhuǎn)換成設(shè)備能識(shí)別的代碼或者把設(shè)備的信息打成IP包后再發(fā)給客戶端應(yīng)用程序。用戶在客戶端可以選擇兩種應(yīng)用程序,如果通過(guò)標(biāo)準(zhǔn)的瀏覽器運(yùn)行Java Applet,則能夠做到客戶端與操作系統(tǒng)平臺(tái)無(wú)關(guān),使用專用的

32、客戶端軟件,則能夠根據(jù)實(shí)際情況靈活的設(shè)計(jì)應(yīng)用程序,減少對(duì)瀏覽器的依賴,圖2-1為嵌入式Internet的原理圖7。Internet客戶端/瀏覽器Web服務(wù)器Embedded Internet服務(wù)器現(xiàn)場(chǎng)設(shè)備HTTP連接連接Applet服務(wù)器與現(xiàn)場(chǎng)設(shè)備的通訊客戶端與服務(wù)器通訊Applet與服務(wù)器通訊圖2-1 嵌入式Internet基本原理圖2.2 嵌入式Internet的接入技術(shù)2.2.1 嵌入式Internet的接入方案嵌入式系統(tǒng)的Internet接入方案是嵌入式Internet領(lǐng)域研究的熱點(diǎn)之一。嵌入式系統(tǒng)的Internet接入方案主要有兩種方法:直接接入和間接接入1。嵌入式系統(tǒng)直接與Inte

33、rnet相互連接主要是通過(guò)在嵌入式系統(tǒng)本身添加網(wǎng)絡(luò)接口硬件,增加相應(yīng)的軟件支持來(lái)實(shí)現(xiàn)的。直接接入技術(shù)主要是針對(duì)采用32/64 位微處理器的嵌入式系統(tǒng)。結(jié)構(gòu)圖如圖22所示。Internet采用32/64位微處理器的嵌入式系統(tǒng)TCP/IP圖22 直接接入方法對(duì)于8/16位的嵌入式系統(tǒng)來(lái)說(shuō),速度慢和內(nèi)存小等系統(tǒng)性能缺陷是其Internet接入技術(shù)需要考慮的問(wèn)題。在8/16位的嵌入式系統(tǒng)硬件設(shè)備中添加網(wǎng)絡(luò)硬件接口,并在相應(yīng)操作系統(tǒng)平臺(tái)上實(shí)現(xiàn)TCP/IP協(xié)議棧,其系統(tǒng)硬件設(shè)備性能無(wú)法滿足應(yīng)用的需要。因此,可以通過(guò)使用專門(mén)的嵌入式網(wǎng)關(guān)與Internet連接,如圖23所示,嵌入式系統(tǒng)首先通過(guò)RS-232或R

34、S-485等與嵌入式網(wǎng)關(guān)連接,再由嵌入式網(wǎng)關(guān)與Internet連接,實(shí)現(xiàn)嵌入式系統(tǒng)與Internet的信息交互。嵌入式系統(tǒng)嵌入式網(wǎng)關(guān)InternetRS-232TCP/IP圖2-3 間接接入方法2.2.2 嵌入式Internet接入實(shí)現(xiàn)的特點(diǎn)嵌入式設(shè)備系統(tǒng)的硬件平臺(tái)大多是8/16位的微處理器,不管是速度,還是ROM、RAM等資源,都不如PC機(jī)強(qiáng)大,要在這些資源有限的設(shè)備上實(shí)現(xiàn)TCP/IP協(xié)議棧,解決數(shù)據(jù)的封裝、拆包、編碼、解碼及數(shù)據(jù)發(fā)送等。不僅如此,嵌入式處理器還要控制一些設(shè)備,來(lái)完成特定的測(cè)量和控制任務(wù)。而完整的TCP/IP協(xié)議棧需要消耗大量的系統(tǒng)資源,并且在嵌入式系統(tǒng)中只是完成一些簡(jiǎn)單的數(shù)

35、據(jù)傳輸任務(wù),沒(méi)有必要實(shí)現(xiàn)全部的TCP/IP協(xié)議棧,只需實(shí)現(xiàn)最精簡(jiǎn)的內(nèi)核和用到的協(xié)議就可以了。另外,為了減輕MCU的負(fù)擔(dān),底層采用網(wǎng)絡(luò)接口芯片,來(lái)完成物理幀的形成、接收、發(fā)送、校驗(yàn)、編碼、解碼等任務(wù),網(wǎng)絡(luò)接口芯片都遵循一定的接口標(biāo)準(zhǔn)。這樣MCU就可以集中進(jìn)行數(shù)據(jù)采集和過(guò)程控制了。2.2.3 嵌入式Internet接入底層硬件協(xié)議要實(shí)現(xiàn)小型嵌入式設(shè)備的Internet接入,TCP/IP首先要解決的是底層硬件問(wèn)題,即協(xié)議的物理層。以太網(wǎng)協(xié)議已被廣泛地應(yīng)用到各種計(jì)算機(jī)網(wǎng)絡(luò)中,如辦公局域網(wǎng)、工業(yè)控制網(wǎng)等場(chǎng)合,并且還在不斷的發(fā)展?;谝蕴W(wǎng)的新技術(shù)和聯(lián)網(wǎng)設(shè)備不斷出現(xiàn),以太網(wǎng)已經(jīng)成為事實(shí)上最常用的網(wǎng)絡(luò)標(biāo)準(zhǔn)之

36、一。以太網(wǎng)是基于總線型的廣播式網(wǎng)絡(luò),在已有的局域網(wǎng)標(biāo)準(zhǔn)中,它是最成功的局域網(wǎng)技術(shù),也是當(dāng)前應(yīng)用最廣泛的一種局域網(wǎng)。它是Xerox公司發(fā)明的基帶LAN標(biāo)準(zhǔn)。它采用帶碰撞檢測(cè)的載波監(jiān)聽(tīng)多路訪問(wèn)協(xié)議(CSMA/CD),速率為10Mbps,傳輸介質(zhì)為同軸電纜。以太網(wǎng)是在20世紀(jì)70年代為解決網(wǎng)絡(luò)中零散的和偶然的堵塞而開(kāi)發(fā)的,而IEEE802.3標(biāo)準(zhǔn)是在最初的以太網(wǎng)技術(shù)基礎(chǔ)上于1980年開(kāi)發(fā)成功的。現(xiàn)在,以太網(wǎng)一詞泛指所有采用CSMA/CD協(xié)議的局域網(wǎng)。以太網(wǎng)2.0版由數(shù)字設(shè)備公司、Intel公司和Xerox公司聯(lián)合開(kāi)發(fā),它與IEEE802.3兼容。在基于廣播的以太網(wǎng)中,所有的工作站都可以收到發(fā)送到網(wǎng)上

37、的信息幀。每個(gè)工作站都要確認(rèn)該信息幀是不是發(fā)送給自己的,一旦確認(rèn)是發(fā)給自己的,就將它發(fā)送到高一層的協(xié)議層。在采用CSMA/CD傳輸介質(zhì)訪問(wèn)的以太網(wǎng)中,任何一個(gè)CSMA/CD LAN工作站在任何一時(shí)刻都可以訪問(wèn)網(wǎng)絡(luò)。發(fā)送數(shù)據(jù)前,工作站要偵聽(tīng)網(wǎng)絡(luò)是否堵塞,只有檢測(cè)到網(wǎng)絡(luò)空閑時(shí),工作站才能發(fā)送數(shù)據(jù)。在基于競(jìng)爭(zhēng)的以太網(wǎng)中,只要網(wǎng)絡(luò)空閑,任一工作站均可發(fā)送數(shù)據(jù)。當(dāng)兩個(gè)工作站發(fā)現(xiàn)網(wǎng)絡(luò)空閑而同時(shí)發(fā)出數(shù)據(jù)時(shí),就發(fā)生沖突。這時(shí),兩個(gè)傳送操作都遭到破壞,工作站必須在一定時(shí)間后重發(fā),何時(shí)重發(fā)由延時(shí)算法決定。IEEE802.3或Ethernet所用的媒體訪問(wèn)法為帶有碰撞檢測(cè)的載波偵聽(tīng)多路訪問(wèn)(CSMA/CD)。按照這

38、種方法,一個(gè)工作站在發(fā)送前,首先偵聽(tīng)媒體上是否有活動(dòng),即稱為“談前聽(tīng)”協(xié)議。所謂活動(dòng)是指媒體上有無(wú)傳輸,也就是載波是否存在。如果偵聽(tīng)到有載波存在,工作站便推遲自己的傳輸。在偵聽(tīng)的結(jié)果為媒體空閑時(shí),則立即開(kāi)始進(jìn)行傳輸。在偵聽(tīng)到媒體忙而等待傳輸情況下,當(dāng)傳輸中的幀最后一個(gè)數(shù)據(jù)位通過(guò)后,應(yīng)繼續(xù)等待至少9.6us,以提供適當(dāng)?shù)膸g間隔,隨后便可進(jìn)行傳輸。如果兩個(gè)工作站同時(shí)試圖進(jìn)行傳輸,將會(huì)造成廢幀,這種現(xiàn)象稱為碰撞,并認(rèn)為是一種正?,F(xiàn)象,因以媒體上連接的所有工作站的發(fā)送都基于媒體上是否有載波,所以稱為載波偵聽(tīng)多路訪問(wèn)(CSMA)。為保證這種操作機(jī)制能夠運(yùn)行,還需要具備檢測(cè)有無(wú)碰撞的機(jī)制,這便是碰撞檢測(cè)

39、(CD)。也就是說(shuō),在一個(gè)工作站發(fā)送過(guò)程中仍要不斷檢測(cè)是否出現(xiàn)碰撞。2.3嵌入式TCP/IP協(xié)議2.3.1 TCP/IP協(xié)議子集的構(gòu)成分析網(wǎng)絡(luò)協(xié)議通常分不同層次進(jìn)行開(kāi)發(fā),每一層分別負(fù)責(zé)不同的通信功能。TCP/IP協(xié)議族是一組不同層次上的多個(gè)協(xié)議的組合。TCP/IP協(xié)議通常被認(rèn)為是一個(gè)四層協(xié)議系統(tǒng)9,如圖2-4所示。應(yīng)用層運(yùn)輸層網(wǎng)絡(luò)層鏈路層設(shè)備驅(qū)動(dòng)程序及接口卡IP、ICMP和IGMPTCP和UDPHttp、FTP和E-mail等圖2-4 TCP/IP協(xié)議族的四個(gè)層次下面將詳細(xì)介紹每一層的功能及包含的協(xié)議:1、鏈路層有時(shí)也稱為數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層,它的作用主要是為其上層協(xié)議發(fā)送和接收數(shù)據(jù)包。根據(jù)

40、物理層的不同,鏈路層有多種協(xié)議選擇,主要有以太網(wǎng)、令牌環(huán)網(wǎng)、FDDI(光纖分布式數(shù)據(jù)接口)及RS-232串行線路等。嵌入式設(shè)備在實(shí)現(xiàn)鏈路層協(xié)議時(shí),應(yīng)首先根據(jù)網(wǎng)絡(luò)所使用的硬件選擇不同的協(xié)議,由于本文采用的是以太網(wǎng),所以就以以太網(wǎng)接入來(lái)加以詳細(xì)分析。以太網(wǎng)遵循IEEE802.3標(biāo)準(zhǔn)所規(guī)定的CSMA/CD(載波監(jiān)聽(tīng)多路訪問(wèn)/沖突檢測(cè))協(xié)議,該協(xié)議使同一個(gè)局域網(wǎng)上的多臺(tái)計(jì)算機(jī)共享同一物理傳輸介質(zhì)成為可能16。嵌入式Internet要通過(guò)以太網(wǎng)接入就必須實(shí)現(xiàn)該協(xié)議的要求,另外,以太網(wǎng)上數(shù)據(jù)的傳輸是采用網(wǎng)絡(luò)的MAC 地址來(lái)進(jìn)行識(shí)別的,這就要求系統(tǒng)有實(shí)現(xiàn)IP地址到MAC地址的地址轉(zhuǎn)換功能,即ARP(地址解析

41、)協(xié)議。ARP協(xié)議可以細(xì)分為ARP請(qǐng)求協(xié)議和ARP響應(yīng)協(xié)議兩種,系統(tǒng)要同其它計(jì)算機(jī)通信,就必須要實(shí)現(xiàn)ARP響應(yīng)協(xié)議。ARP請(qǐng)求協(xié)議在本地建立了一個(gè)IP地址到MAC地址的映射,保證了對(duì)外通信的有的放矢。如果嵌入式系統(tǒng)的資源(CPU速度、RAM存儲(chǔ)容量)有限,可使用以太網(wǎng)廣播幀發(fā)送數(shù)據(jù)分組 ,這樣就可以不用實(shí)現(xiàn)ARP請(qǐng)求協(xié)議,同時(shí)也不需維護(hù)IP地址到MAC地址的映射對(duì)。這種通信方式雖然對(duì)網(wǎng)絡(luò)造成一定的壓力,但可以大大節(jié)約嵌入式系統(tǒng)的寶貴資源,用戶可根據(jù)實(shí)際情況考慮使用。RARP(逆地址解析)協(xié)議主要用于解決如何從MAC地址得到IP地址,主要用于無(wú)盤(pán)工作站中。嵌入式Internet中可以把IP地址存

42、儲(chǔ)于本地存儲(chǔ)器中,從而無(wú)需從其它服務(wù)器得到IP地址,這樣就無(wú)需實(shí)現(xiàn)RARP協(xié)議。2、網(wǎng)絡(luò)層網(wǎng)絡(luò)層主要負(fù)責(zé)處理數(shù)據(jù)包在網(wǎng)絡(luò)中的協(xié)議封裝。在TCP/IP協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議),ICMP協(xié)議(Internet互聯(lián)網(wǎng)控制報(bào)文協(xié)議),以及IGMP協(xié)議(Internet組管理協(xié)議)等。IP協(xié)議是TCP/IP族的核心協(xié)議,它使異構(gòu)網(wǎng)絡(luò)之間的通信成為可能。因此如果嵌入式Internet需要跨越不同的網(wǎng)絡(luò)進(jìn)行通信就必須要實(shí)現(xiàn)IP協(xié)議。ICMP協(xié)議主要用來(lái)傳遞差錯(cuò)報(bào)文以及其他需要注意的信息。我們通常使用的應(yīng)用程序Ping就是采用ICMP協(xié)議來(lái)測(cè)試網(wǎng)絡(luò)的連通情況,這種測(cè)試對(duì)一個(gè)網(wǎng)絡(luò)設(shè)備來(lái)說(shuō)是非

43、常重要的。ICMP中規(guī)定了多種協(xié)議類型和代碼,如果完全的實(shí)現(xiàn)也要耗費(fèi)不少的系統(tǒng)資源,對(duì)于普通的嵌入式Internet的應(yīng)用而言,在ICMP協(xié)議中能夠測(cè)試網(wǎng)絡(luò)的連通情況即可,因此只需實(shí)現(xiàn)ICMP中類型號(hào)為0、代碼為0的Ping應(yīng)答協(xié)議即可。網(wǎng)絡(luò)層另外一個(gè)重要的協(xié)議是IGMP(Internet組管理)協(xié)議,它主要用于支持主機(jī)和路由器進(jìn)行組播,IGMP能夠讓一個(gè)物理網(wǎng)絡(luò)上的所有系統(tǒng)知道主機(jī)當(dāng)前所在的多播組,多播路由器需要這些信息以便知道多播數(shù)據(jù)報(bào)應(yīng)該向哪些接口轉(zhuǎn)發(fā)。嵌入式Internet作為一種專用系統(tǒng)接入Internet的技術(shù),很少需要也不必要采用組播的方式進(jìn)行通信。因此在通常的嵌入式Intern

44、et的設(shè)計(jì)中可以不考慮實(shí)現(xiàn)IGMP協(xié)議。3、傳輸層傳輸層主要為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信。傳輸層有兩種不同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。TCP為兩臺(tái)主機(jī)提供面向連接的、可靠的、無(wú)重復(fù)的雙向數(shù)據(jù)流傳輸服務(wù)。TCP協(xié)議設(shè)計(jì)了嚴(yán)格的3次建立連接握手過(guò)程、4次關(guān)閉連接握手過(guò)程以及捎帶確認(rèn)信息并進(jìn)行滑動(dòng)窗口流控的數(shù)據(jù)傳輸過(guò)程。這些過(guò)程的實(shí)現(xiàn)對(duì)系統(tǒng)資源的耗費(fèi)非常大,為了減少系統(tǒng)資源的消耗,我們采用了兩種方法,一種是系統(tǒng)不采用TCP協(xié)議來(lái)保證可靠傳輸,采用基于ICMP協(xié)議擴(kuò)展的專用控制協(xié)議。另一種方法是TCP協(xié)議進(jìn)行一定的簡(jiǎn)化處理,TCP協(xié)議的簡(jiǎn)化應(yīng)該遵循兩個(gè)原則,

45、一是不能改變其面向連接的特性,二是其簡(jiǎn)化必須能配合其應(yīng)用層所采用的協(xié)議。完整的TCP協(xié)議可以配合應(yīng)用層所采用的不同協(xié)議,我們的簡(jiǎn)化方法是:針對(duì)特定的應(yīng)用協(xié)議,制定特定的TCP簡(jiǎn)化協(xié)議。應(yīng)用層的協(xié)議有多種多樣,與TCP協(xié)議相關(guān)的主要有HTTP、Telnet、Rlogin、FTP和SMTP等,通常的嵌入式Internet只需要實(shí)現(xiàn)一種或兩種應(yīng)用層協(xié)議,因此 ,我們就可以根據(jù)特定的應(yīng)用層協(xié)議來(lái)設(shè)計(jì)專用的TCP協(xié)議,例如大多數(shù)的嵌入式Internet只需提供基于Web方式的訪問(wèn)控制即可,TCP協(xié)議就可以只針對(duì)HTTP協(xié)議進(jìn)行設(shè)計(jì)。UDP協(xié)議是用來(lái)提供不面向連接的,盡最大努力傳輸?shù)臄?shù)據(jù)流傳輸服務(wù),它只是

46、簡(jiǎn)單地把數(shù)據(jù)報(bào)從一臺(tái)主機(jī)發(fā)送到另一臺(tái)主機(jī),但并不保證該數(shù)據(jù)報(bào)能到達(dá)另一端。任何必需的可靠性必須由應(yīng)用層來(lái)提供。UDP的實(shí)現(xiàn)比較簡(jiǎn)單,它在某些嵌入式Internet的應(yīng)用場(chǎng)合可以很好地應(yīng)用,例如在基于網(wǎng)絡(luò)的風(fēng)速測(cè)量中,我們可以把采集到的風(fēng)速值封裝為UDP報(bào)并且不斷地向遠(yuǎn)端計(jì)算機(jī)發(fā)送,當(dāng)系統(tǒng)實(shí)時(shí)性要求不高的情況下,可以采用這種簡(jiǎn)單的方式來(lái)減少UDP不可靠性帶來(lái)的弊端。4、應(yīng)用層應(yīng)用層協(xié)議是TCP/IP協(xié)議族中最大的一個(gè)子集,其種類非常繁多。最常用的有Telnet(遠(yuǎn)程登錄協(xié)議)、FTP(文件傳輸協(xié)議)、SMTP(簡(jiǎn)單郵件傳送協(xié)議)、SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)、HTTP(超文本傳輸協(xié)議)等。不同嵌

47、入式系統(tǒng)對(duì)嵌入式Internet所采用的應(yīng)用層協(xié)議的要求都不同,例如系統(tǒng)如果要求采用E_mail來(lái)發(fā)送自己的信息,那么就需要針對(duì)SMTP協(xié)議來(lái)實(shí)現(xiàn),如果系統(tǒng)要求可以通過(guò)瀏覽器的方式來(lái)訪問(wèn),那么系統(tǒng)就應(yīng)該實(shí)現(xiàn)嵌入式WebServer的相應(yīng)協(xié)議。另外,由于我們對(duì)鏈路層的協(xié)議也進(jìn)行了子集劃分,因此應(yīng)用層的協(xié)議也必須和鏈路層所實(shí)現(xiàn)的協(xié)議相配套。如果鏈路層只實(shí)現(xiàn)了UDP協(xié)議,沒(méi)有實(shí)現(xiàn)TCP協(xié)議,那么在應(yīng)用層就無(wú)法實(shí)現(xiàn)與TCP有關(guān)的協(xié)議種類,例如HTTP、FTP、SMTP等。應(yīng)用層的協(xié)議繽紛復(fù)雜,系統(tǒng)必須根據(jù)自己的需要和鏈路層的協(xié)議實(shí)現(xiàn)來(lái)選擇這些協(xié)議。2.3.2 嵌入式系統(tǒng)實(shí)現(xiàn)TCP/IP協(xié)議的特殊性由于

48、嵌入式系統(tǒng)在硬件資源的占有量以及處理器的處理能力等方面的限制,使得TCP/IP協(xié)議的嵌入式實(shí)現(xiàn)與其在通用操作系統(tǒng)中的實(shí)現(xiàn)有了很大的不同。首先,由于嵌入式處理器的時(shí)鐘頻率低,地址、數(shù)據(jù)總線窄,導(dǎo)致嵌入式系統(tǒng)對(duì)一個(gè)通用IP包的處理要花費(fèi)更多的處理機(jī)時(shí)間,從而影響其他任務(wù)的執(zhí)行。因此就需要對(duì)原本龐大復(fù)雜的TCP/IP協(xié)議棧進(jìn)行裁剪,使之具有簡(jiǎn)單、高效的特點(diǎn)。同時(shí)在設(shè)計(jì)嵌入式TCP/IP協(xié)議棧時(shí)要合理的控制中斷處理程序的大小,使得中斷處理程序的運(yùn)行時(shí)間盡可能的縮短;同時(shí)要把那些無(wú)實(shí)時(shí)性要求和費(fèi)時(shí)的工作移到主程序中去執(zhí)行,從而保證協(xié)議的正確執(zhí)行。具體來(lái)說(shuō)就是把TCP/IP協(xié)議的處理工作放到主程序中;對(duì)網(wǎng)

49、絡(luò)接口的控制芯片采用循環(huán)查詢的方式,在其他中斷任務(wù)的執(zhí)行間隙來(lái)處理TCP/IP協(xié)議,以犧牲系統(tǒng)的響應(yīng)時(shí)間來(lái)?yè)Q取系統(tǒng)的可靠性。再者由于嵌入式系統(tǒng)的存儲(chǔ)空間有限,一般情況下只能開(kāi)辟幾K字節(jié)的緩存區(qū)來(lái)接收數(shù)據(jù)包,并且其存儲(chǔ)空間是固定的,而不是動(dòng)態(tài)分配的。如此一來(lái)在遇到大數(shù)據(jù)包的時(shí)候就會(huì)出現(xiàn)緩沖區(qū)溢出的錯(cuò)誤。不過(guò)幸運(yùn)的是在大多數(shù)情況下,嵌入式系統(tǒng)接收的數(shù)據(jù)包的類型僅為系統(tǒng)狀態(tài)配置包、控制動(dòng)作命令包、通信控制包等,包容量較??;而那些實(shí)時(shí)數(shù)據(jù)或網(wǎng)頁(yè)向網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)包就可能比較長(zhǎng),但卻可以通過(guò)設(shè)計(jì)格式來(lái)加以控制。綜合來(lái)說(shuō),單片機(jī)實(shí)現(xiàn)與UNIX實(shí)現(xiàn)TCP/IP有如下區(qū)別:1、操作系統(tǒng)不論是WINDOWS、UN

50、IX、LINUX,它們都有一個(gè)多任務(wù)操作系統(tǒng),這使得代碼編寫(xiě)簡(jiǎn)單化。嵌入式系統(tǒng)的TCP/IP是直接面對(duì)硬件,沒(méi)有一個(gè)多任務(wù)操系統(tǒng)平臺(tái),MCU中的程序結(jié)構(gòu)一般是順序執(zhí)行和硬件中斷配合的方式,與高級(jí)操作系統(tǒng)中的多線程并發(fā)執(zhí)行的方式截然不同。對(duì)程序執(zhí)行結(jié)構(gòu),單片機(jī)要考慮更多。 2、內(nèi)存分配UNIX操作系統(tǒng)的存儲(chǔ)管理策略能有效進(jìn)行內(nèi)存管理與分配,TCP/IP在實(shí)現(xiàn)時(shí)可以不考慮內(nèi)存大小的問(wèn)題,比如緩沖的處理上,MBUF、TCB等數(shù)據(jù)結(jié)構(gòu)是一個(gè)存儲(chǔ)鏈,這個(gè)鏈可以動(dòng)態(tài)地增加和減小,根據(jù)需要隨時(shí)分配,隨時(shí)撤消。而在嵌入式統(tǒng)中存儲(chǔ)空間一般只有幾十KB。所以在設(shè)計(jì)時(shí)不但要考慮程序代碼本身大小,還要仔細(xì)考慮緩沖區(qū)的

51、設(shè)置。一個(gè)最大的以太網(wǎng)數(shù)據(jù)包有1500多個(gè)字節(jié),而嵌入式系統(tǒng)只能提供幾十K字節(jié)的空間,并要被各個(gè)協(xié)議所用,所以只能開(kāi)辟1536個(gè)字節(jié)的緩沖區(qū)來(lái)存放接收到的數(shù)據(jù),收到一包就處理一包,其存儲(chǔ)地址是固定的,而不是動(dòng)態(tài)分配的。 3、參數(shù)傳遞在UNIX實(shí)現(xiàn)的TCP/IP源代碼中,一般有很多的參數(shù)傳遞,而在單片機(jī)里允許傳遞的參數(shù)是有限的(因?yàn)槭艿絻?nèi)部RAM的限制),同時(shí)參數(shù)傳遞的過(guò)程要浪費(fèi)程序代碼空間,也降低單片機(jī)執(zhí)行速度。所以在單片機(jī)的實(shí)現(xiàn)里,一般不要做太多的參數(shù)傳遞,而多使用公共的全局變量來(lái)實(shí)現(xiàn)調(diào)用的過(guò)程。4、硬件接口在UNIX里,對(duì)網(wǎng)卡驅(qū)動(dòng)無(wú)一例外都是采用中斷方式。而在單片機(jī)的應(yīng)用中,大部分的方案都

52、是查詢式的。因?yàn)殡娔X的處理速度快,一次中斷的處理時(shí)間也很短,不會(huì)影響系統(tǒng)內(nèi)的其它中斷。但在單片機(jī)里就不行了,處理一次中斷,收取一個(gè)數(shù)據(jù)包一般要幾毫秒的時(shí)間,這將封鎖其它中斷的產(chǎn)生。另外電腦往往采用即插即用方式來(lái)驅(qū)動(dòng)網(wǎng)卡,從而有良好的兼容性。在單片機(jī)中,為了節(jié)省代碼和I/O接口資源,網(wǎng)絡(luò)接口控制芯片一般使用跳線方式,數(shù)據(jù)總線也采用8位DMA方式。2.3.3 嵌入式TCP/IP協(xié)議的實(shí)現(xiàn)方案根據(jù)嵌入式系統(tǒng)的TCP/IP協(xié)議棧的特殊性,對(duì)目前安裝在桌面系統(tǒng)中的TCP/IP協(xié)議棧進(jìn)行簡(jiǎn)化,即去掉在嵌入式系統(tǒng)中不需要的部分,并在具體實(shí)現(xiàn)時(shí)進(jìn)行合理的簡(jiǎn)化,降低對(duì)程序和數(shù)據(jù)存儲(chǔ)器容量以及運(yùn)行速度的要求,這樣

53、才能使大多數(shù)嵌入式系統(tǒng)接入Internet成為可能??梢詮南旅鎯蓚€(gè)方面來(lái)實(shí)現(xiàn)協(xié)議的簡(jiǎn)化: 1、協(xié)議的選擇對(duì)各種不同的可用協(xié)議和應(yīng)用進(jìn)行仔細(xì)評(píng)估,以決定哪些需要、哪些可以省略。通過(guò)選擇合適的協(xié)議,可以大大降低對(duì)MCU硬件資源的需求,而不會(huì)對(duì)系統(tǒng)的功能造成影響。例如,如果對(duì)可靠性的要求不太高,可以只選擇使用UDP(用戶數(shù)據(jù)報(bào)協(xié)議),避免采用TCP協(xié)議那樣的復(fù)雜程序,也就不必承擔(dān)TCP協(xié)議所帶來(lái)的時(shí)間和空間上的沉重負(fù)擔(dān),可以選擇數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器更小的MCU芯片。如果對(duì)可靠性有一定的要求,還可以通過(guò)在應(yīng)用層增加提高UDP可靠性的代碼,來(lái)更正UDP的“不可靠”。 2、協(xié)議實(shí)現(xiàn)的簡(jiǎn)化對(duì)于已選擇使用的

54、協(xié)議,在實(shí)現(xiàn)時(shí)也可以進(jìn)行簡(jiǎn)化,去掉在應(yīng)用系統(tǒng)中不需要的選項(xiàng),保留協(xié)議中必須具備的部分。要求嵌入式聯(lián)網(wǎng)設(shè)備越小、越經(jīng)濟(jì),則將協(xié)議精簡(jiǎn)到只保留基本部分的任務(wù)就越艱巨。例如,可以考慮完全放棄對(duì)拆分功能的支持,因?yàn)閷?shí)現(xiàn)拆分和重組將浪費(fèi)MCU寶貴的程序空間和執(zhí)行時(shí)間,而訪問(wèn)該嵌入式網(wǎng)絡(luò)設(shè)備的應(yīng)用程序完全可以將數(shù)據(jù)包限制在1500字節(jié)以下。在TCP/IP協(xié)議中,大多數(shù)協(xié)議都可以進(jìn)行一定程度的簡(jiǎn)化。嵌入式TCP/IP協(xié)議的實(shí)現(xiàn)又有硬件固化和軟件固化兩種方式8。1、硬件固化硬件固化是指TCP/IP協(xié)議棧用硬件的方式實(shí)現(xiàn),嵌入式系統(tǒng)直接與TCP/IP協(xié)議棧硬件芯片連接,由它實(shí)現(xiàn)協(xié)議的轉(zhuǎn)換,從而使之與互聯(lián)網(wǎng)相連接

55、。這種方式無(wú)疑增加了硬件成本,對(duì)一些功能單一的嵌入式設(shè)備來(lái)說(shuō),連接一個(gè)完整的TCP/IP協(xié)議棧,是一個(gè)極大的浪費(fèi),而且所增加的成本費(fèi)用也是難以接受的。比較有代表性的產(chǎn)品是W3100A,它是WIZnet公司專門(mén)為以太網(wǎng)互聯(lián)和嵌入式設(shè)備推出的硬件TCPIP協(xié)議棧芯片,其硬件TCPIP協(xié)議棧包含了TCP、UDP、IP、ARP和ICMP協(xié)議。W3100A具有傳輸速度快、工作穩(wěn)定可靠等優(yōu)點(diǎn)。2、軟件固化采用這種方式實(shí)現(xiàn)嵌入式TCP/IP協(xié)議具有更大的優(yōu)勢(shì)。用軟件設(shè)計(jì)的TCP/IP協(xié)議棧,是一次投入多次使用,而且比較靈活,可以根據(jù)應(yīng)用的需求對(duì)協(xié)議進(jìn)行精簡(jiǎn),在大批量生產(chǎn)時(shí),具有成本低的優(yōu)點(diǎn)。但這種方案開(kāi)發(fā)周

56、期比較長(zhǎng),對(duì)開(kāi)發(fā)人員的要求高,要求對(duì)操作系統(tǒng)和TCP/IP協(xié)議都要有一定程度的熟悉。比較有代表性的產(chǎn)品有Treck TCP/IP棧。Treck Incorporated公司專門(mén)為嵌入式系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)互聯(lián)網(wǎng)協(xié)議軟件。該協(xié)議棧在有或沒(méi)有操作系統(tǒng)的情況下都可使用,具有零復(fù)制發(fā)送與接收特性,可提供最大的吞吐率。而且Treck的TCP/IP協(xié)議棧設(shè)計(jì)完全兼容RFC,具備互操作性。中國(guó)石油大學(xué)(華東)碩士論文 第3章 系統(tǒng)總體設(shè)計(jì)及硬件平臺(tái)第3章 系統(tǒng)總體設(shè)計(jì)及硬件平臺(tái)3.1系統(tǒng)總體設(shè)計(jì)方案3.1.1 總體方案的設(shè)計(jì)原則目前,石油化工行業(yè)中的測(cè)控現(xiàn)場(chǎng)大量存在的是以8/16位MCU為核心的嵌入式系統(tǒng),該系統(tǒng)的主要特點(diǎn)是成本低,系統(tǒng)硬件資源緊張,所以設(shè)計(jì)方案中必須考慮成本因素。嵌入式設(shè)備接入以太網(wǎng)時(shí)要考慮各種不同的情況,有可能將基于不同種類的微控制器的設(shè)備一起或獨(dú)立接入以太網(wǎng),在設(shè)計(jì)時(shí),要將以太網(wǎng)接入部分和測(cè)控部

溫馨提示

  • 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)論