




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 基于單片機的 tcp/ip 技術(shù)研究及應(yīng)用 摘摘 要要 今天,嵌入式 internet 的應(yīng)用己經(jīng)深入到日常生活的各個方面。研究嵌入 式 tcp/ip 協(xié)議在內(nèi)部資源有限微處理器上的實現(xiàn),具有重要的現(xiàn)實意義和經(jīng)濟 價值。 論文首先介紹了嵌入式系統(tǒng)的組成及對嵌入式 internet 產(chǎn)生。通過對現(xiàn)有 的嵌入 internet 及比較了目前幾種單片機接入 internet 實現(xiàn)方案的前提下, 應(yīng)用了一種基于單片自身特點的具體的解決方案:嵌入式 tcp/ip 協(xié)議。通過對 tcp/ip 網(wǎng)絡(luò)協(xié)議的深入分析,對 tcp/ip 協(xié)議進行合理的簡化,將其嵌入到內(nèi) 部資源有限的微處理器中,實現(xiàn)以電子郵件方
2、式進行遠程數(shù)據(jù)傳輸。 關(guān)鍵字:嵌入式;tcp/ip;單片機 i abstract today, embedded internet application already deeply into all aspects of daily life. research embedded tcp/ip protocol internal resources are limited in the realization of the microprocessor, have important practical significance and economic value. it firstly
3、 introduces the embedded system composition and for embedded internet generation. based on the existing embedded internet and compared several recent microcontroller access internet, under the precondition of realizing scheme used a based on single chip the characteristics of its own specific soluti
4、on: embedded tcp/ip protocol. based on tcp/ip network protocol, the in-depth analysis of tcp/ip protocol, reasonable simplified embedded in its limited resources to the interior, so as to realize microprocessor by e-mail remote data transmission. key words: ii 0 摘摘 要要 .ii abstract.iii 第第 1 1 章章 引引 言
5、言.3 1.1 論文選題的背景及意義.3 1.2 本文主要工作.3 第第 2 章章 嵌入式嵌入式 internet 系統(tǒng)組成系統(tǒng)組成.5 2.1 嵌入式系統(tǒng)概述.5 2.1.1 嵌入式系統(tǒng)的概念機特點.5 2.1.2 嵌入式系統(tǒng)的組成.5 2.1.3嵌入式操作系統(tǒng).6 2.2 嵌入式 internet.7 2.2.1 嵌入式internet概念及特點.7 2.2.2 單片機接入internet方案.8 第第 3 章章 網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)協(xié)議.10 3.1 tcp/ip 分層模型.10 3.2 數(shù)據(jù)封裝.11 3.3 數(shù)據(jù)幀分用.12 3.4 協(xié)議層簡介.13 3.4.1 網(wǎng)際層協(xié)議.13 3.4.1
6、.1 ip 地址分配 .14 地址解析協(xié)議.15 icmp 協(xié)議.16 3.4.2 傳輸控制協(xié)議.16 tcp 連接和釋放.16 用戶數(shù)據(jù)報協(xié)議.18 第四章第四章 系統(tǒng)總體設(shè)計系統(tǒng)總體設(shè)計.19 4.1 硬件設(shè)計.19 4.2 tcp/ip 協(xié)議層選擇及分析.20 4.2.1 鏈路層協(xié)議選擇及分析.21 4.2.2 網(wǎng)絡(luò)層協(xié)議選擇及分析.21 4.2.3 傳輸層協(xié)議選擇及分析.21 4.2.4 應(yīng)用層協(xié)議選擇.22 第五章第五章 tcp/ip 協(xié)議棧的實現(xiàn)協(xié)議棧的實現(xiàn) .24 5.1 arp 協(xié)議的實現(xiàn).24 5.1.1 arp
7、分組格式及數(shù)據(jù)結(jié)構(gòu).24 5.1.2 arp協(xié)議軟件實現(xiàn).24 5.2 ip 協(xié)議及其實現(xiàn).26 5.2.1 ip數(shù)據(jù)報格式.27 5.2.2 ip軟件實現(xiàn).27 5.3 icmp 報文協(xié)議的實現(xiàn).29 1 5.4 tcp 協(xié)議的實現(xiàn).30 5.4.1 tcp的報文段.30 5.4.2 tcp協(xié)議的實現(xiàn).31 運輸控制塊 tcb.31 處理傳入數(shù)據(jù)模塊.32 處理數(shù)據(jù)輸出模塊.32 定時管理器.34 5.5 smtp 協(xié)議的實現(xiàn).36 5.5.1 客戶機與服務(wù)器之間的交互.36 5.5.2 smtp郵件協(xié)議的實現(xiàn).37 結(jié)束語結(jié)束
8、語.39 致謝致謝.40 參考文獻參考文獻.41 2 第第 1 1 章章 引引 言言 1.1 論文選題的背景及意義 嵌入式 internet 是本世紀計算機世界的一項熱門技術(shù)。目前,嵌入式系統(tǒng)已 經(jīng)成為我們生活的一部分,在家用電器、工業(yè)設(shè)備、醫(yī)療設(shè)備及汽車應(yīng)用等領(lǐng) 域的應(yīng)用不斷擴大。嵌入式設(shè)備的聯(lián)網(wǎng)已經(jīng)開始。但是,由于嵌入式系統(tǒng)資源 有限,一些傳統(tǒng)的 internet 技術(shù)和設(shè)備無法直接應(yīng)用。這種趨勢使著嵌入式 internet 技術(shù)的產(chǎn)生和迅速發(fā)展。嵌入式 internet(簡稱 ei, embedded internet) 通??梢岳斫鉃榘?tcp/ip 協(xié)議作為一種嵌入式的應(yīng)用,從而實現(xiàn)
9、嵌入式設(shè)備 internet 的技術(shù)。 近年來以單片機(micro computer unit,mcu)為代表的嵌入式系統(tǒng)在工業(yè) 探測系統(tǒng)、智能儀器、安防系統(tǒng)、智能家電和信息家電領(lǐng)域得到了廣泛應(yīng)用。 如果嵌入式系統(tǒng)能夠連接到internet上,則用戶可以方便、快捷、低廉地通過網(wǎng) 絡(luò)進行遠程控制、監(jiān)測和信息傳送。internet技術(shù)和嵌入式技術(shù)的相互融合,不 僅為嵌入式系統(tǒng)的設(shè)計和開發(fā)帶來了前所未有的發(fā)展空間和機遇,也使得 internet應(yīng)用進入了嵌入式internet時代。據(jù)專家預測,未來在internet上的新增業(yè) 務(wù)和應(yīng)用中,將有45%的增長來自于小型嵌入式系統(tǒng)。因此,嵌入式系統(tǒng)的 in
10、ternet接入技術(shù),將會有極其廣闊的應(yīng)用前景。如何利用單片機接入internet網(wǎng) 絡(luò)成為未來最熱門的技術(shù)之一。 鑒于 8/16 位單片機大量存在于嵌入式領(lǐng)域,在單片機上實現(xiàn) tcp/ip 協(xié)議 時嵌入式 internet 的關(guān)鍵技術(shù)之一。本文在這樣的背景下,試圖開展一些的研究。 1.2 本文主要工作 本文主要工作是將 tcp/ip 協(xié)議嵌入低檔單片機中。通過 89c51 系列單片 機和網(wǎng)卡芯片 rtl8019as 在單片機上實現(xiàn) internet 接入,在對 tcp/ip 協(xié)議深 入分析的基礎(chǔ)上,對 tcp/ip 協(xié)議棧進行合理的簡化后嵌入到單片機中。具體的 工作有: 1. 將 tcp/i
11、p 協(xié)議嵌入低檔單片機的硬件系統(tǒng)的設(shè)計和實現(xiàn)。 2. 對 tcp/ip 協(xié)議棧進行研究,并分析各協(xié)議,完成軟件結(jié)構(gòu)的總體設(shè)計。 3. 對我們需要的協(xié)議進行必要的精簡和修改,以達到軟件的實現(xiàn)。 3 課題的難點在于要對 tcp/ip 協(xié)議熟悉,要對其有較為全面和深入的研究, 由于低檔單片機資源有限,就必須根據(jù)需求對 tcp/ip 協(xié)議進行精簡,而不能完 整的實現(xiàn) tcp/ip 協(xié)議。 4 第第 2 章章 嵌入式嵌入式 internet 系統(tǒng)組成系統(tǒng)組成 2.1 嵌入式系統(tǒng)概述嵌入式系統(tǒng)概述 2.1.1 嵌入式系統(tǒng)的概念機特點 基于 ieee 的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機器和車間
12、 運行的裝置”。這主要是從應(yīng)用上加以定義的,從中可以看出嵌入式系統(tǒng)是軟件 和硬件的綜合體。不過,這個定義還不能充分體現(xiàn)嵌入式系統(tǒng)的精髓。目前, 國內(nèi)普遍認同的一個定義是:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ),軟硬件可 裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算 機系統(tǒng)。 可以從以下幾個方面理解嵌入式系統(tǒng)的定義。嵌入式系統(tǒng)是面向用戶、面 向產(chǎn)品、面向應(yīng)用的,它必須與具體應(yīng)用相結(jié)合才會具有生命力、才更具有優(yōu) 勢。 嵌入式系統(tǒng)是將先進的計算機技術(shù)、半導體技術(shù)和電子技術(shù)以及各個行業(yè) 的具體應(yīng)用相結(jié)合的產(chǎn)物。 嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求能夠?qū)浻布@醒裁剪,滿足應(yīng)用系統(tǒng)的功 能、可
13、靠性、成本、體積等要求。 從嵌入式定義可以看出嵌入式系統(tǒng)幾個重要特征。 1. 系統(tǒng)內(nèi)核小。 2. 專用性強。 3. 系統(tǒng)精簡。 4. 高實時性。 2.1.2 嵌入式系統(tǒng)的組成 一個嵌入式系統(tǒng)裝置一般都由嵌入式計算機系統(tǒng)和執(zhí)行裝置組成,如 2-1 所示。.嵌入式計算機系統(tǒng)是整個嵌入式系統(tǒng)的核心,由硬件層、中間層、系統(tǒng) 軟件層和應(yīng)用軟件層組成。執(zhí)行裝置也被稱為被控對象,它可以接受嵌入式計 算機系統(tǒng)發(fā)出的命令,執(zhí)行規(guī)定的操作或任務(wù)。嵌入式系統(tǒng)在功能及實現(xiàn)上都 有很嚴格的限制,必須考慮實時性、體積、功耗及散熱等,同時要滿足可靠性 及安全性。嵌入式系統(tǒng)硬件層的核心是嵌入式微處理器。目前全世界嵌入式處 理
14、器的品種已經(jīng)有 1000 多種,體系結(jié)構(gòu)有 30 多個系列,其中主流的體系有 5 arm、powerpc、x86、sh 和 mips 等。 圖 2-1 嵌入式系統(tǒng)的典型組成 2.1.3 嵌入式操作系統(tǒng) 嵌入式操作系統(tǒng)(embedded operating system, eos)是一種用途廣泛的系 統(tǒng)軟件 ,以前主要用于工業(yè)控制和國防領(lǐng)域。eos 負責嵌入系統(tǒng)的全部軟硬 件資源的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)并發(fā)活動。它必須體現(xiàn)其所在系統(tǒng)的特 征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能。目前,已經(jīng)有一些比較 成功的 eos 產(chǎn)品系列。隨著 internet 技術(shù)的發(fā)展、信息家電的普及應(yīng)用及 e
15、os 的微型化和專業(yè)化,eos 開始從單一的功能向高專業(yè)的功能方向發(fā)展。嵌入式 操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關(guān)依賴性、軟件固話以及應(yīng)用的專用性 等方面具有較為突出的特點。eos 是相對于一般操作系統(tǒng)而言的,它具備了一 般操作系統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機制、中斷處理、文件處理等外, 被控對象 傳感器 2驅(qū)動器 2 傳感器 1驅(qū)動器 1 驅(qū)動器 n驅(qū)動器n 應(yīng)用軟件層 系統(tǒng)軟件層 中間層 bsp/hal 硬件抽象層/板極支持包 嵌入式計算機系統(tǒng) 嵌入式 微處理器 硬件層 實時操作系統(tǒng)(rtos) 應(yīng)用程序 文件系統(tǒng)任務(wù)管理圖形用戶接口 人機交互接口 d/a a/d i/o 通用接口
16、rom sdram 6 還有如下特點: 1. 可裝卸性。開放性、可伸縮性的體系結(jié)構(gòu)。 2. 強實時性。eos 實時性一般較強,可用于各種設(shè)備控制中。 3. 操作方便、簡單、提供友好的圖形 gui、圖形界面。 4. 統(tǒng)一的接口。提供各種設(shè)備驅(qū)動接口。 5. 提供強大的網(wǎng)絡(luò)功能,支 tcp/ip 協(xié)議及其他協(xié)議,提供 ip/tcp/udp/ppp 協(xié)議支持及統(tǒng)一的 mac 訪問層接口,為各種移動計 算設(shè)備預留接口。 6. 強穩(wěn)定性、弱交互性。固化代碼。 7. 更好的硬件適應(yīng)性,也就是良好的移植性。 2.2 嵌入式嵌入式 internet 2.2.1 嵌入式 internet 概念及特點 嵌入式 i
17、nternet(embedded internet)起源于把嵌入式系統(tǒng)與 internet 結(jié)合起來 的這種想法。嵌入式 internet 是指:在嵌入式系統(tǒng)應(yīng)用領(lǐng)域,以 internet 技術(shù)為基 礎(chǔ),使嵌入式系統(tǒng)與 internet 相互連接,實現(xiàn)嵌入式系統(tǒng)與 internet 之間的資源 共享、信息通信和狀態(tài)控制等功能,這種嵌入式系統(tǒng)與 internet 之間的連接與應(yīng) 用就稱為嵌入式 internet。嵌入式 internet 技術(shù)的誕生雖然不算久,但發(fā)展卻相 當迅速,我們還未適應(yīng)它的時候,很多相關(guān)的技術(shù)已經(jīng)出現(xiàn)了,很多大的芯片 制造商開始研制功能更強大的嵌入式芯片,軟件廠商則開發(fā)出了
18、微型的 web 服 務(wù)器、tcp/ip 協(xié)議棧。由于出現(xiàn)了很多靈活的微控制器,現(xiàn)在可以為用戶創(chuàng)造 廉價的嵌入式 internet 解決方案,8 位和 16 位微控制器都可以接入 internet 等大 規(guī)模網(wǎng)絡(luò),例如 emware 就已經(jīng)為開發(fā)人員和生產(chǎn)商提供了 8 位和 16 位微控制 器網(wǎng)絡(luò)接入解決方案。隨著 pc 機時代的到來,21 世紀將是嵌入式 internet 的時 代。美國貝爾實驗室總裁 arun netravali 的一批科學家對此做出了預測:嵌入式 internet“將會產(chǎn)生比 pc 機時代多成百上千倍的瘦服務(wù)器和超級嵌入式瘦服務(wù)器” 。這些瘦服務(wù)器將與我們所能想到的各種物理
19、信息、生物信息相聯(lián)接,通過 internet 網(wǎng)自動地、實時地、方便地、簡單地提供給需要這些信息的對象。 嵌入式系統(tǒng)接入 internet 同 pc 機接入 internet 一樣,必須通過相應(yīng)的通信協(xié) 議。目前的 internet 采用 tcp/ip 協(xié)議,因此嵌入式系統(tǒng)接入 internet 最終必須 通過 tcp/ip 協(xié)議,對信息進行 tcp/ip 協(xié)議處理,使其變成可以在 internet 上傳 輸?shù)?ip 數(shù)據(jù)包。 7 internet網(wǎng)絡(luò)通信中,tcp/ip協(xié)議簇非常龐大,需要占用大量的系統(tǒng)資源。 單片機的缺點是資源有限,無法容納下internet的tcp/ip協(xié)議簇。因此單片機
20、實 現(xiàn)嵌入式接入internet技術(shù)的關(guān)鍵是如何在單片機等嵌入式設(shè)備的有限資源上實 現(xiàn)internet的網(wǎng)絡(luò)通信協(xié)議棧。其難點在于:如何利用單片機自身有限的資源對 信息進行tcp/ip協(xié)議處理,使之變成可以在internet上傳輸?shù)膇p數(shù)據(jù)包。目前許 多機構(gòu)都在積極探討利用mcu實現(xiàn)接入internet技術(shù)。 2.2.2 單片機接入 internet 方案 1. pc 網(wǎng)關(guān)(gateway)與專用網(wǎng)結(jié)合接入 internet 首先嵌入式系統(tǒng)和嵌入式網(wǎng)關(guān)連接通信, 連接方式采用傳統(tǒng)的 rs232, rs482, rs485,iic、spi、usb、can、lin 總線等輕量級網(wǎng)絡(luò)協(xié)議。再由嵌入
21、式網(wǎng)關(guān)負責實現(xiàn) tcp/ip 協(xié)議,并與 internet 連接,完成嵌入式系統(tǒng)和 internet 的信息交互。嵌入式網(wǎng)關(guān)向嵌入式系統(tǒng)提供 internet 或 intranet 通信和管理服 務(wù)。如防火墻、協(xié)議轉(zhuǎn)換、監(jiān)視嵌入式設(shè)備的運行狀態(tài)、向外界提供 web 服 務(wù)器等。這種技術(shù)需要一個專門的嵌入式網(wǎng)關(guān),而且網(wǎng)關(guān)和嵌入式系統(tǒng)之間通 信也會受到輕量級網(wǎng)絡(luò)協(xié)議的制約。它對嵌入式系統(tǒng)處理器速度、資源要求也 比較低,開發(fā)難度低,可以解決各種嵌入式系統(tǒng)接入 internet 的問題,特別適用 于嵌入式系統(tǒng)多且較為集中的場合。缺點是接入成本比較高,不利于大規(guī)模推 廣。該方案比較適合大型或較昂貴工業(yè)設(shè)
22、備的上網(wǎng)需求,不適合用于低價格設(shè) 備?;谶@種接入技術(shù)模型,emware 公司提出了嵌入式微 internet 網(wǎng)絡(luò)技術(shù) emit ( embedded micro internetworking technology)。emit 由 emmicro、emgateway 和網(wǎng)絡(luò)瀏覽器組成,并在 mcu 內(nèi)部以軟件方式嵌入 emnet 協(xié)議,如圖 2-2 所示。 圖 2-2 圖 2-1 采用專用嵌入式網(wǎng)絡(luò)協(xié)議方式 2. 高性能mcu+rtos 即用軟件方式直接處理tcp/ip協(xié)議。目前rtos的功能越來越強大,大多數(shù) 都帶有tcp/ip協(xié)議棧,還具有對圖像界面的支持能力。采用這種方法的缺點是:
23、對開發(fā)人員的要求高,必須對操作系統(tǒng)和tcp/ip協(xié)議都要有一定的熟悉,開發(fā) emgateway (pc 機) internet web browser rs232 rs485emmirco 應(yīng)用系統(tǒng)+emnet mcunet 8 周期也較長,難度相對較大。同時嵌入式操作系統(tǒng)的運行需要占用大量的處理 器資源和存儲器空間,對硬件配置也有較高的要求,開發(fā)成本高。如圖2-3所示. 圖 2-3 在嵌入式實時操作系統(tǒng) rtos 上運行 tcp/ip 3. 使用專用的嵌入式芯 專用嵌入式芯片是一種內(nèi)置了通信和控制功能的單片機,采用這種方案的 芯片有ubicom公司的ip2022,seiko instrume
24、nts公司的s7600a ,iready公司的 internet tuner,connect one公司的ichip等。它們固化有tcp/ip協(xié)議棧,支持 http,smtp,pop3,mime等多種協(xié)議,可進行web瀏覽和e_mail的收發(fā)。 也可用scenix公司的8位sx單片機加虛擬外設(shè)的方式接入internet。該方式更方便, 不需要操作系統(tǒng),大大節(jié)省了資源,開發(fā)難度有所降低,但還是需要熟悉 tcp/ip 協(xié)議和相關(guān)接口,技術(shù)實現(xiàn)上也比較困難,且對處理器的性能仍然要求 較高,需要大容量的存儲器。這類芯片功能強,能夠?qū)崿F(xiàn)多種網(wǎng)絡(luò)協(xié)議,一 般提供有相應(yīng)的tcp/ip網(wǎng)絡(luò)協(xié)議棧。但是這種芯片
25、價格偏高,用戶需要支付軟 硬件費用,不易于實現(xiàn)市場的廣泛應(yīng)用。如圖2-4所示。 圖2-4 直接在嵌入式處理器上實現(xiàn)tcp/ip 協(xié)議 4. 使用普通單片機和網(wǎng)絡(luò)控制芯片 通過在系統(tǒng)中集成網(wǎng)絡(luò)接口芯片, 采用軟件方式實現(xiàn)tcp/ip協(xié)議棧, 使得嵌 入式系統(tǒng)具備網(wǎng)絡(luò)功能從而接入internt。單片機加載tcp/ip協(xié)議控制以太網(wǎng)網(wǎng) 卡進行數(shù)據(jù)傳輸,并通過tcp/ip協(xié)議聯(lián)接到互聯(lián)網(wǎng)。遠程控制端的操作通過路 由器找到目標后,由網(wǎng)卡芯片的接口傳入單片機,通過在單片機中加載的驅(qū)動 程序轉(zhuǎn)換成物理幀格式,再由tcp/ip協(xié)議轉(zhuǎn)換成應(yīng)用層的控制命令。這種方法 實現(xiàn)起來比較簡單,而且可根據(jù)實際需要進行功能擴
26、展,但是需要在單片機上 實現(xiàn)嵌入式tcp/ip網(wǎng)絡(luò)協(xié)議,軟件編程的工作量比較大。由于采用普通單片機, 所以其優(yōu)點是成本低,單片機體積小,易于以極高的性價比向諸多需要實現(xiàn)嵌 入式接入internet的場合推廣。本文設(shè)計的系統(tǒng)就是采用這種技術(shù)方案。 rtos mcu tcp/ip internet mcu 固化 tcp/ /ip 協(xié)議棧 tcp/ip internet 9 第第 3 章章 網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)協(xié)議 3.1 tcp/ip 分層模型分層模型 tcp/ip 采用分層體系結(jié)構(gòu),它與開放系統(tǒng)互聯(lián) osi 模型的層次結(jié)構(gòu)相似。 如表 2-1 所示,它可以分為 4 層,由低到高一次為:網(wǎng)絡(luò)接口層、網(wǎng)際層
27、、傳 輸層和應(yīng)用層。 表 2-1 osi 參考模型與 tcp/ip 參考模型比較 osi 參考模型osi 層次號tcp/ip 層次描述主要應(yīng)用協(xié)議 應(yīng)用層7 表示層6應(yīng)用層 ftp、e-mail 和 telnet 等 會話層5 傳輸層4 運輸層tcp 和 udp 網(wǎng)絡(luò)層ip、icmp 和 igmp 網(wǎng)絡(luò)層3 數(shù)據(jù)鏈路層2 物理層1 鏈路層設(shè)備驅(qū)動及接口卡 tcp/ip 分層模型的四個協(xié)議層分層完成如下功能。 (1) 第一層 網(wǎng)絡(luò)接口層 網(wǎng)絡(luò)接口層包括用于協(xié)作 ip 數(shù)據(jù)在已有網(wǎng)絡(luò)介質(zhì)上傳輸協(xié)議。實際上 tcp/ip 標準并不定義與 iso 數(shù)據(jù)鏈路層和物理層相對應(yīng)的功能。相反它定義像 地址解析
28、協(xié)議這樣的協(xié)議,提供 tcp/ip 協(xié)議的數(shù)據(jù)結(jié)構(gòu)和實際物理硬件之間的 接口。 (2) 第二層 網(wǎng)際層 對應(yīng)于 osi 7 層參考模型的網(wǎng)絡(luò)層,網(wǎng)絡(luò)層主要解決計算機之間的通信問 題,它負責管理不同設(shè)備之間的數(shù)據(jù)交換,它是 internet 通信子網(wǎng)的最高層,它 所提供的是不可靠的無連接數(shù)據(jù)報服務(wù),無論傳輸是否正確,不做驗證、不發(fā) 確認,也不保證分組的正確 順序。 網(wǎng)際層主要有以下協(xié)議。 ip 協(xié)議(網(wǎng)際協(xié)議):使用 ip 地址確定收發(fā)端,提供端到端的“數(shù)據(jù)報”傳 遞,也是 tcp/ip 協(xié)議簇中處于核心地位的協(xié)議。 10 icmp 協(xié)議(網(wǎng)絡(luò)控制報文協(xié)議):處理路由,協(xié)助 ip 層實現(xiàn)報文傳送
29、的 控制機制,提供錯誤和信息報告。 arp 協(xié)議(正向地址解析協(xié)議):將網(wǎng)絡(luò)層地址轉(zhuǎn)換為鏈路層地址。 rarp 協(xié)議(逆向地址解析協(xié)議):將鏈路層地址轉(zhuǎn)換為網(wǎng)絡(luò)層地址。 (3) 第三層 傳輸層 對應(yīng)于 osi 7 層參考模型的傳輸層,提供兩種端到端的通信服務(wù)。其中 tcp 協(xié)議提供可靠的數(shù)據(jù)流運輸服務(wù),udp 協(xié)議提供不可靠的用戶數(shù)據(jù)服務(wù)。 該層有以下協(xié)議。 tcp 協(xié)議:傳輸控制協(xié)議,提供可靠的面向連接的數(shù)據(jù)傳輸服務(wù)。 udp 協(xié)議:用戶數(shù)據(jù)報協(xié)議,采用無連接數(shù)據(jù)報傳送方式,一次傳輸少 量的情況,如數(shù)據(jù)查詢等,當通信子網(wǎng)相當可靠是,udp 協(xié)議的優(yōu)越 性更為突出。 (4)第四層 應(yīng)用層 對應(yīng)
30、于 osi 7 層參考模型的應(yīng)用層和表達層,應(yīng)用層是將應(yīng)用程序的數(shù)據(jù) 傳送給傳輸層,以便進行信息交換。它主要為各種應(yīng)用程序提供使用協(xié)議,標 注的應(yīng)用層主要有以下協(xié)議。 ftp 文件傳輸協(xié)議:為文件傳輸提供路徑,它允許數(shù)據(jù)從一臺主機傳 送到另一臺主機上,我們可以從 ftp 服務(wù)器上下載文件,或者向 ftp 服務(wù)器上傳文件。 http 超文本傳輸協(xié)議:用來訪問在 www 服務(wù)器上的各種頁面。 dns 域名服務(wù)系統(tǒng):用于實現(xiàn)主機域名到 ip 地址之間的轉(zhuǎn)換。 smtp 簡單郵件傳輸協(xié)議:實現(xiàn)互聯(lián)網(wǎng)中電子郵件的傳輸功能。 telne 虛擬終端服務(wù):實現(xiàn)互聯(lián)網(wǎng)中的工作站登陸到遠程服務(wù)器的能 力。 nfs
31、 網(wǎng)絡(luò)文件系統(tǒng):用于實現(xiàn)網(wǎng)絡(luò)中不同主機之間的文件共享。 rip 路由信息協(xié)議:用于網(wǎng)絡(luò)設(shè)備之間交換路由信息。 3.2 數(shù)據(jù)封裝數(shù)據(jù)封裝 當應(yīng)用程序用 tcp 傳送數(shù)據(jù)時,數(shù)據(jù)被傳送入?yún)f(xié)議棧中,之后逐個通過每 一層直到被當做一串比特流送入網(wǎng)絡(luò)。其中每一層對收到的信息都要增加一些 首部信息,必要時還要增加尾部信息,這個過程如圖 3-1 所示。tcp 傳給 ip 的 數(shù)據(jù)單元稱作 tcp 報文段,ip 傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作 ip 數(shù)據(jù)報,通 11 過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀。以太網(wǎng)數(shù)據(jù)幀的物理特性是其長度必須在 46b1500b 之間。 確切的說,圖 3-1 中所示 ip 和網(wǎng)絡(luò)接口傳送的數(shù)
32、據(jù)單元應(yīng)該是分組,分組 可以是一個 ip 數(shù)據(jù)報,也可以是 ip 數(shù)據(jù)報的一個片。 圖 3-1 數(shù)據(jù)進入?yún)f(xié)議棧時的封裝過程 tcp 和 udp 都用一個 16bit 的端口號來表示不同的應(yīng)用程序,并把源端口 號和目的端口號分別存入報文首部中,由于 tcp、udp、icmp 跟 igmp 都要 向 ip 傳送數(shù)據(jù),因此 ip 必須在生成的 ip 首部中加入某種標勢。1 表示 icmp 協(xié)議,2 表示 igmp 協(xié)議,6 表示 tcp 協(xié)議,17 表示 udp 協(xié)議。而網(wǎng)絡(luò)接口分 別要接收和發(fā)送 ip、arp 和 rarp 數(shù)據(jù),因此也需要在以太網(wǎng)幀首部中加入標 識,以指明生成數(shù)據(jù)的網(wǎng)絡(luò)協(xié)議層。所
33、以,以太網(wǎng)的幀首部也有一個 16bit 的幀 類型域這就是數(shù)據(jù)報文的封裝,應(yīng)用層數(shù)據(jù)是被逐層封裝,直到數(shù)據(jù)鏈路層。 要指出的是 udp 數(shù)據(jù)與 tcp 數(shù)據(jù)唯一不同是 udp 傳給 ip 的信息單元稱作 udp 數(shù)據(jù)報,而且 udp 的首部長為 8b。 3.3 數(shù)據(jù)幀分用數(shù)據(jù)幀分用 當目的主機收到一個以太網(wǎng)數(shù)據(jù)幀是,數(shù)據(jù)就開始從協(xié)議戰(zhàn)中由底向上傳 用戶數(shù)據(jù) 用戶數(shù)據(jù) tcp 首部 14b 20b 20b 4b 應(yīng)用數(shù)據(jù) 應(yīng)用數(shù)據(jù) 應(yīng)用數(shù)據(jù) appl 首部 以太網(wǎng) 驅(qū)動程序 以太網(wǎng) 首部 以太網(wǎng) 尾部 應(yīng)用數(shù)據(jù) ip 首部 ip 首部 tcp 首部 tcp 首部 ip 報文段 tcp 報文段 以
34、太網(wǎng)幀 tcp ip 以太網(wǎng) 12 送,同時去掉各層協(xié)議加上的報文首部。每層協(xié)議盒都要去檢查報文首部中的 協(xié)議標識,以確定接受數(shù)據(jù)的上層協(xié)議,這個過程稱作分用。圖 3-2 顯示這個 如何過程如何發(fā)生的。 圖 3-2 以太網(wǎng)數(shù)據(jù)幀的分用過程 3.4 協(xié)議層簡介協(xié)議層簡介 3.4.1 網(wǎng)際層協(xié)議 網(wǎng)際協(xié)議時 tcp/ip 協(xié)議最重要的組成部分,是整個協(xié)議族的核心,主要負 責網(wǎng)絡(luò)層 ip 分組的傳輸。它位于網(wǎng)際層,為運輸層提供服務(wù),并從網(wǎng)絡(luò)接入層 請求服務(wù)。 ip 提供不可靠的、無連接的、盡最大努力交付的分組傳輸機制。ip 提供了 3 個重要定義: 1) ip 定義了數(shù)據(jù)傳輸所用的基本單元,及規(guī)定了
35、傳輸?shù)臄?shù)據(jù)格式。 2) ip 規(guī)定了 ip 分組的路由機制。 3) 除了數(shù)據(jù)格式和路由機制以外,ip 還包括了一組體現(xiàn)不可靠分組交付 思路的規(guī)則。這些規(guī)則指明了主機和路由器應(yīng)該如何處理 ip 分組、何時及如何 發(fā)現(xiàn)錯誤信息以及在什么情況下可以放棄分組等等。ip 是 tcp/ip 互聯(lián)網(wǎng)設(shè)計 里最基礎(chǔ)的部分。 應(yīng)用程序應(yīng)用程序應(yīng)用程序應(yīng)用程序 udp tcp icmp igmp ip arp rarp 以太網(wǎng) 驅(qū)動程序 進入的幀 以 tcp 或 udp 首 部端口號進行分用 以 ip 首部中的協(xié) 議值進行分用 以以太網(wǎng)首部中的 幀類型進行分用 13 ip 地址分配 1.ip 地址
36、 計算機網(wǎng)絡(luò)內(nèi)的每臺計算機必須具有唯一的身份標識符。在 tcp/ip 協(xié)議 簇中,這種標識符叫做 ip 地址。ip 地址有兩部分組成:網(wǎng)絡(luò)號和主機號。其中 網(wǎng)絡(luò)號標識一個物理的網(wǎng)絡(luò),同一個網(wǎng)絡(luò)上所有主機需要同一個網(wǎng)絡(luò)號,該號 在互聯(lián)網(wǎng)中是唯一的;而主機號確定網(wǎng)絡(luò)中的一個工作端、服務(wù)器、路由器或 其它 tcp/ip 主機。對于同一網(wǎng)絡(luò)號而言,主機號是唯一的。 ip 地址有兩種表示形式:二進制表示和點分十進制表示。在 ipv4 中使用 的 ip 地址是 32 位的二進制地址。但是為了是 32 位的二進制地址更簡潔和便于 閱讀,通常采用點分十進制。在點分十進制中,每個 ip 地址的長度為 4 個字節(jié)
37、, 有 4 個 8 位域組成,稱之為八為體。八為體由句點“.”分開,來表示為一個 0255 之間的十進制書。ip 地址的 4 個域分別標明了網(wǎng)絡(luò)號和主機號。 目前,因網(wǎng)絡(luò)大小不同,internet 定義了 5 種 ip 地址類型:a 類、b 類、 c 類、d 類、e 類。如表 3.1 所示。 表 3.1 ip 地址分類 地址類型特征地址位開始地址結(jié)束地址 a 類0b55 b 類10b55 c 類110b55 d 類1110b
38、55 e 類1111b55 a 類地址:用于支持特大型的網(wǎng)絡(luò),最高位為 0,緊跟的 7 位表示網(wǎng)絡(luò)號, 其余 24 為表示主機號,總共允許有 126 個網(wǎng)絡(luò)。 b 類地址:用于支持大型和中型網(wǎng)絡(luò)。最高兩位總置于二進制的 10,允 許有 16384 個網(wǎng)絡(luò)。 c 類地址:用于局域網(wǎng)。高 3 位置為二進制 110,允許 2097152 個網(wǎng)絡(luò)。 d 類地址:用于多路廣播組用戶。高 4 位總置為 110,余下的為用于標明 客戶機所屬的組 e 類地址:e 類地址沒有網(wǎng)絡(luò)號和主機號之分,最高位置為 1111。整個 e 類地址是一種不用的實驗性地址。 14 3.
39、4.1.2 地址解析協(xié)議 要想在網(wǎng)上實現(xiàn)通信,主機必須知道對方主機的硬件地址。ip 地址編號只 是一個邏輯地址,不是硬件地址。在網(wǎng)絡(luò)中傳遞的幀必須含有目的地址的硬件 地址。所以在進行底層數(shù)據(jù)傳輸?shù)臅r候必須將 ip 地址轉(zhuǎn)換為硬件地址,即介質(zhì) 訪問控制地址。arp 協(xié)議就是將 ip 地址映射為硬件地址的過程。 1. arp 緩存 arp 在緩存中保存地址映射以備用。arp 緩存保存有動態(tài)和靜態(tài)項。動 態(tài)是自動添加和刪除的,靜態(tài)項則是保留 cache 中指至計算機重啟。 2. 主機 ip 地址解析為硬件地址 arps 是使用映射表進行工作。映射表指的是地址解析協(xié)議高速緩存。 (1) 當一臺主機要與
40、另外的主機通信是,初始化 arp 請求。當該 ip 斷定 ip 地址是本地是,源主機在 arp 緩存中查找目標主機的硬件地址。 (2) 如果找不到映射,arp 建立一個請求,源主機 ip 地址和硬件地址都 會包括在請求中,這個請求通過廣播,是所有本地主機都可以接受處理。 (3) 本地網(wǎng)上的每個主機都收到廣播并尋找與之相符的 ip 地址。 (4) 當目標主機斷定請求的 ip 地址自己相符時,會直接發(fā)送一個 arp 回 復,將自己的硬件地址傳給源主機。讓源主機的 ip 地址和硬件地址更新它的 arp 緩存。源主機收到回復后就建立起了通信。 3解析遠程 ip 地址 arp 廣播的源主機是缺省網(wǎng)關(guān)的。
41、目標 ip 地址如果是遠程主機,arp 將 廣播一個路由器的地址。 (1) 通信請求初始化是,知目標 ip 地址為遠程地址。源主機將在本地路由 表中查找,如果沒有找到,將認為是缺省網(wǎng)關(guān)的 ip 地址。在 arp 緩存中查找 符合網(wǎng)關(guān)記錄的 ip 地址。 (2) 如果沒有找該網(wǎng)關(guān)記錄,arp 將廣播請求網(wǎng)關(guān)地址不在是目標主機的 地址。路由用自己的硬件地址回應(yīng)源主機的請求。源主機則將數(shù)據(jù)報傳送到路 由器以傳送到目標主機的網(wǎng)絡(luò),最終到達目標主機。 (3) 在路由器上,由 ip 決定目標 ip 地址是本地地址還是遠程地址。若是 本地,路由器用 arp 獲得硬件地址。遠程的話,路喲器則在路由表中找該網(wǎng)關(guān)
42、, 然后通過 arp 獲得硬件地址。數(shù)據(jù)報將直接發(fā)送下一個目標主機。 (4) 目標主機接收到請求后,形成 icmp 響應(yīng)。由于源主機在遠程網(wǎng)上, 15 將在本地路由表找源主機網(wǎng)的網(wǎng)關(guān)。找到網(wǎng)關(guān)后,arp 就獲得了它的硬件地址。 (5) 若該網(wǎng)關(guān)硬件地址不在 arp 中,則通過 arp 廣播獲得。一旦獲得硬 件地址,icmp 響應(yīng)就傳送到路由器上,后傳到源主機。 ip 分片/重組 正如上文 3.2 中描述的一樣,物理網(wǎng)絡(luò)層一般要限制每次發(fā)送幀的的最大 長度。任何時候 ip 層接受到一份要發(fā)送的 ip 數(shù)據(jù)報是,它要判斷向本地哪個 接口發(fā)送數(shù)據(jù),并查詢該接口獲得其 mtu(最大運輸
43、單元也稱最大數(shù)據(jù)長度), ip 把 mtu 跟數(shù)據(jù)報長度比較。若數(shù)據(jù)報長度大于 mtu 就需要分片。ip 協(xié)議 進行分段的原則就是,根據(jù)源端所在物理網(wǎng)的 mtu 選擇最大的數(shù)據(jù)報長度, 數(shù)據(jù)報經(jīng)過 mtu 較小的網(wǎng)絡(luò)時分成較小部分進行傳輸。數(shù)據(jù)頭標中有 3 個字 段用來控制數(shù)據(jù)報的分段和重組,它們是標識符字段、標識字段和分段偏移量 字段。 把一份數(shù)據(jù)報分片以后,只有到達目的地后才進行重組。重組是由目的端 ip 層完成。ip 首部中包含的數(shù)據(jù)分為分片和重組提供了足夠的信息。 icmp 協(xié)議 ip 協(xié)議不是一個可靠的協(xié)議,它不能保證數(shù)據(jù)被送達。自然地為保證數(shù)據(jù) 的送達應(yīng)該由其它模塊
44、來完成。這個協(xié)議就是 icmp 協(xié)議,它是 ip 中不可分割 的一部分。所有的 ip 服務(wù)器和主機都支持這個協(xié)議。 當傳送的 ip 數(shù)據(jù)包發(fā)生錯誤,如主機不可達,路由不可達等,icmp 協(xié)議 將會把錯誤信息封包,然后傳送給主機,讓主機處理錯誤。為防止 icmp 的無 限產(chǎn)生和傳送,icmp 差錯報文不會產(chǎn)生 icmp 報文。 icmp 協(xié)議提供的差錯服務(wù)有以下 (1) 目的站不可達 當路由器無法轉(zhuǎn)發(fā)或者交付 ip 分組時,就丟棄這個分組, 然后向源站發(fā)回目的站不可達的報文。 (2) 超時 為避免循環(huán)路由,每個 ip 數(shù)據(jù)報的 ttl 倒計時為 0 時,就丟棄 該分組,同時向源站發(fā)送超時文本。
45、(3) 源站抑制 由于 ip 中沒有流量控制機制,源站抑制報文為 ip 增加了流量控制的能 力。當路由或目的站因為擁塞丟棄分組時,它就向分組的源站發(fā)送抑制報文。 16 3.4.2 傳輸控制協(xié)議 tcp 連接和釋放 tcp 是一種面向連接的、全手工的、可靠的數(shù)據(jù)流傳輸協(xié)議。它在每一次 數(shù)據(jù)傳輸前先要在通信雙方建立一條連接。tcp 中建立連接采用 3 次握手如圖 3-3 所示最簡單情況下進行的連接。 圖 3-3 連接建立三次握手示意圖 步驟如下: 1. 客戶端發(fā)送第一個報文段,即 syn 段,這個 syn 報文段為報文段 1。syn 標志置 1,ack 標志置 0。定義客戶端打算建
46、立連接的愿望。 2. 服務(wù)器如果同意連接則發(fā)回報文段 2,報文段 2 中 ack 標志為 1,syn 標志為 1。報文段 2 也稱為 syn+ack 文段。 3.客戶端發(fā)送報文段 3。這是一個確認報文段。報文段中 ack 標志為 1,syn 標志為 0。 在這 3 個報文段的交換過程中,即 3 次握手過程完成連接。 在數(shù)據(jù)傳輸結(jié)束后,通信雙方都可以發(fā)出釋放連接請求。一個 tcp 連接 是全雙工的,每個方向須要單獨的進行關(guān)閉。當雙方?jīng)]有數(shù)據(jù)發(fā)送時就發(fā)送一 個終止位 fin。tcp 連接釋放需要 4 次握手,如圖 3-4 所示 步驟如下: 1.首先要進行關(guān)閉的客戶端 tcp 發(fā)送第一個報文段,即
47、fin 報文段,fin 標志置 1。執(zhí)行主動關(guān)閉。 2.服務(wù)器段 tcp 發(fā)送第二個報文段,即 ack 報文段,用以確認 fin 報文 段。 3.服務(wù)器端 tcp 可以繼續(xù)向客戶端發(fā)送數(shù)據(jù),當服務(wù)器沒數(shù)據(jù)發(fā)送時,發(fā) 客戶 發(fā)送 syn seq=x 服務(wù)器 接收到 syn 信號 發(fā)送 syn+ack seq=y,ack=x+1 接收到 syn+ack 發(fā)送 ack seq=x+1,ack=y+1 接收到 ack 時 間 17 送第三個報文段,即 fin 報文段,fin 標志置 1。關(guān)閉數(shù)據(jù)傳送。 4.客戶端 tcp 發(fā)送第四個報文段,即 ack 報文段,以確認服務(wù)器段 tcp 收到了 fin 報
48、文段。 tcp 對所有的報文采取一種簡單的格式,包括攜帶數(shù)據(jù)的報文,甚至確認 和建立連接和釋放連的消息。tcp 用滑動窗口來實現(xiàn)流量控制機制,接收者用 該字段告訴發(fā)送者還有多少緩沖空間可以用。傳送者一次發(fā)送的數(shù)量總小于可 用緩沖去,則不會引起溢出。當接收者處理完一定的數(shù)據(jù)后,便向發(fā)送者發(fā)送 ack,指出緩沖區(qū)空間已增加。發(fā)送者經(jīng)確認及被告知窗口大小來決定發(fā)送數(shù) 據(jù)的多少。tcp 提供可靠的服務(wù)所使用的方法之一就是確認和重傳。 圖 3-4 tcp 連接釋放的 4 次握手 用戶數(shù)據(jù)報協(xié)議 udp 也是 ip 之上的另外一個傳輸層協(xié)議。udp 與 tcp 不同,它是一個簡 單的面向數(shù)
49、據(jù)報的運輸層協(xié)議,它是一種無連接的傳輸層協(xié)議,它不提供可靠 性的服務(wù)。 與 tcp 不同,它并不提供給 ip 協(xié)議可靠機制、流量控制及錯誤恢復等功 能。使用 udp 數(shù)據(jù)服務(wù)的應(yīng)用程序須自己提供可靠性。另外,udp 也不保證 數(shù)據(jù)的傳輸順序。udp 是輕權(quán)協(xié)議,開銷小,因其簡單,適用于不需要 tcp 可 靠機制的情形。 客戶 (應(yīng)用程序關(guān)閉連接) 發(fā)送 fin,seq=x 接收到 ack 不發(fā)送報文 收到 fin 發(fā)送 ack, ack=y+2,seq=x+1 時 間 服務(wù)器 接收到 fin,發(fā)送 ack ack=x+1 (應(yīng)用程序關(guān)閉) 發(fā)送 fin ack=x+1,seq=y+1 接收到
50、ack 18 第四章 系統(tǒng)總體設(shè)計 在本系統(tǒng)的解決方案中,以 mcs-51 系列的單片機為 cpu,負責 tcp/ip 協(xié)議棧實現(xiàn)的主體工作。以太網(wǎng)的接品芯片,負責收發(fā)以太數(shù)據(jù)包。實現(xiàn)數(shù)據(jù) 的遠程傳輸。在對數(shù)據(jù)的傳輸方式上選取電子郵件的方式,就是在單片機上實 現(xiàn)的電子郵件發(fā)送功能,也就實現(xiàn)了對數(shù)據(jù)的遠程傳輸。系統(tǒng)在單片機上實現(xiàn) 嵌入式 tcp/ip 協(xié)議的方式上,選用“單片機+以太網(wǎng)網(wǎng)卡”方案實現(xiàn),此種方案 充分利用現(xiàn)有資源,節(jié)約成本,適合小系統(tǒng)的開發(fā)。 4.1 硬件設(shè)計 完整的tcp/ip協(xié)議是由許多個協(xié)議組成的協(xié)議簇,其功能強大,結(jié)構(gòu)復雜, 占用系統(tǒng)資源較大。目前嵌入式系統(tǒng)按性能可大致分為
51、兩種:rtos+高檔32位 cpu的系統(tǒng)和由8/16位mcu組成的系統(tǒng)。對tcp/ip協(xié)議實現(xiàn),前者軟硬件資源 豐富,實現(xiàn)起來很容易,而后者由于資源相對有限,需直接對硬件操作而較為 困難。因此在后者上實現(xiàn)tcp/ip協(xié)議更具有實際意義。所以我選用mcs-51系列 單片機。mcs-51系列單片機優(yōu)點很多,首先,應(yīng)用普及,性價比高,而且形小 體輕功耗低、軟硬件開發(fā)靈活方便。 8051 單片機的基本特性如下: 1.8 位 cpu,cpu 有運算器和控制器組成。 ; 2.內(nèi)部共有 4 個雙向的 8 位并行 i/o 接口,一個全雙工串行接口。串行接口 內(nèi)帶有緩沖器; 3.片內(nèi)擁有 128 字節(jié)的靜態(tài)隨機
52、存取存儲器 sram,作為片內(nèi)數(shù)據(jù)存儲器 和 4k rom 程序存儲器,還有 21 個特殊功能寄存器 sfr,用于編程控制; 4.片內(nèi)有兩個 16 為加法計數(shù)器,分別為 t0 和 t1。 5.程序和數(shù)據(jù)存儲空間分開,可各尋址 64k; 6 片內(nèi)中斷邏輯具有 5 個中斷源,兩個優(yōu)先級,并且每個中斷源都被設(shè)置 固定的入口地址,是編程簡化; 7片內(nèi)有振蕩電路,還有總線控制邏輯等。 要想實現(xiàn)數(shù)據(jù)在 internet 上的傳輸,就需將單片機聯(lián)入 internet。我們選取 19 rtl8019as 芯片實現(xiàn)聯(lián)網(wǎng)。rtl8019as 是一種 ne2000 的兼容網(wǎng)卡芯片,支 持以太網(wǎng)全雙工通信方式, 軟件
53、移植性好;跟 mcs-51 單片機的接口簡單;對 于 mcs-51 單片機來說 rtls8019as 的帶寬充裕。系統(tǒng)硬件總體功能結(jié)構(gòu)如圖 4-1 所示。 圖 4-1 硬件結(jié)構(gòu)框圖 對于系統(tǒng)功能的實現(xiàn)上,主要是在軟件上進行設(shè)計。由于選取 mcs-51 單片 機,故而選取 c 語言作為開發(fā)語言。因為用 c 語言比匯編具有很多的優(yōu)勢。再 有就是我自身對 c 語言比匯編熟悉。c 語言有如下特點: 1語言簡潔、緊湊,使用靈活、方便。 2語法限制不太嚴格,程序設(shè)計自由度大。 3用 c 語言編寫的程序移植性好(與匯編語言比)?;旧喜豁毿薷木涂梢?運用于各種計算機和操作系統(tǒng)。 4生成目標代碼質(zhì)量高,程序執(zhí)
54、行效率高。 5允許直接訪問物理地址,能進行位才做,可以直接對硬件進行操作。 6. 程序模塊化,便于資源共享,軟件的維護和升級。從而保證系統(tǒng)的可靠 性和安全性。 4.2 tcp/ip 協(xié)議層選擇及分析協(xié)議層選擇及分析 internet網(wǎng)絡(luò)通信中,tcp/ip協(xié)議簇非常龐大,需要占用大量的系統(tǒng)資源。 嵌入式系統(tǒng)對信息進行tcp/ip協(xié)議處理,使其變成在internet上可傳輸?shù)膇p數(shù)據(jù) 包。由于51系列單片機內(nèi)部資源有限,不可能實現(xiàn)標準的internet的tcp/ip協(xié)議 簇,也不需要實現(xiàn)標準的tcp/ip協(xié)議簇。可根據(jù)具體應(yīng)用需求對標準的tcp/ip 協(xié)議簇進行適當?shù)牟眉粜薷? 形成一個真正適用
55、的嵌入式tcp /ip 協(xié)議子集。通 過裁減對原協(xié)議進行有選擇地實現(xiàn)。這樣在實現(xiàn)數(shù)據(jù)的遠程傳輸上,我們就可 與 網(wǎng) 絡(luò) 接 口 電 路 網(wǎng)卡芯片 串行 eeprom mcu (89c51) 鍵盤模塊 led 顯示模塊 20 以從tcp/ip協(xié)議子集上實現(xiàn)。 考慮到51系列單片機資源有限,在對協(xié)議的選取上我們應(yīng)考慮到系統(tǒng)資源 和保證協(xié)議在功能及機制上的完整性。 4.2.1 鏈路層協(xié)議選擇及分析 鏈路層主要作用是為其上層協(xié)議發(fā)送和接收數(shù)據(jù)包。根據(jù)物理層的不同, 鏈路層有多種協(xié)議可以選擇。其中主要有以太網(wǎng)、令牌環(huán)網(wǎng)、fddi)及rs- 232 串行線路協(xié)議等。 以太網(wǎng)上數(shù)據(jù)的傳輸是采用網(wǎng)絡(luò)的mac地
56、址來進行識別的。這就是要求系 統(tǒng)有實現(xiàn)ip地址到mac地址的轉(zhuǎn)換的功能, 即arp(地址解析)協(xié)議。arp協(xié)議可 以細分為arp請求協(xié)議和arp響應(yīng)協(xié)議兩種, 系統(tǒng)要同其它計算機通信, 就必須 實現(xiàn)arp響應(yīng)協(xié)議, arp請求協(xié)議在本地建立了一個ip地址到mac地址的映像, 保證了對外通信的有的放矢。 rarp(逆地址解析)協(xié)議主要用于解決如何從mac 地址得到ip地址, 主要 用于無盤工作站中, 可以無需實現(xiàn)。 4.2.2 網(wǎng)絡(luò)層協(xié)議選擇及分析 ip 是 tcp/ip 最重要的組成部分,是整個協(xié)議的基礎(chǔ)。目前版本號是 4,也 稱 ipv4。所有的 tcp、udp、igmp 及 icmp 都是
57、以 ip 數(shù)據(jù)報格式傳輸。ip 提 供不可靠的、無連接的、盡最大努力交付的分組傳輸機制。 “不可靠的”按是指它 不能保證 ip 分組成功地傳送到目的站。 “無連接的”指的是 ip 數(shù)據(jù)包可以不按順 序收發(fā)。ip 提供的是“盡最大努力交付的”傳輸服務(wù),就是說 ip 協(xié)議盡量的發(fā)送 每一個 ip 數(shù)據(jù)包,不隨意放棄數(shù)據(jù)包,只有在資源用盡或底層網(wǎng)絡(luò)出現(xiàn)錯誤時 才有可能出現(xiàn)不可靠性。 在 ip 進行數(shù)據(jù)交付過程中,如果遇到不能正常交付的情況,則需要通知源 站采取措施來補救。由于 ip 自身沒有提供差錯報告和差錯糾正機制,這就需要 其他協(xié)議來完成,這就是 icmp 協(xié)議。icmp 配合 ip 使用,提高
58、了數(shù)據(jù)包交付 成功的機會。 4.2.3 傳輸層協(xié)議選擇及分析 tcp 協(xié)議是一種提供可靠的端到端、面向字節(jié)流連接的服務(wù)。udp 也是 ip 之上的一個傳輸協(xié)議。udp 是一個簡單的快速的,但也是不可靠和無連接的。 但是對于大多數(shù) internet 應(yīng)用而言,需要的是可靠的、能按序遞交的傳輸層協(xié)議。 所以這次設(shè)計選取了 tcp 而不是 udp。tcp 為 ip 服務(wù)增加了面向連接和可靠 21 性的特點。tcp 主要特點如下: 1. 面向連接:使用兩個 tcp 的應(yīng)用在發(fā)生數(shù)據(jù)傳輸之前,必須建立一個連 接,而在數(shù)據(jù)傳送完后要終止連接。 2全雙工:一旦建立連接,就支持數(shù)據(jù)的雙向傳輸。 3字節(jié)流傳輸:
59、tcp 是面向字節(jié)流的。一個 tcp 連接就是一個字節(jié)流。 4可靠:利用重發(fā)和流控機制來保證通信的可靠。 5確認:tcp 發(fā)送的每個報文都要被方確認。這樣就知道數(shù)據(jù)是否丟失, 是否重傳丟失數(shù)據(jù)。 6流控制:當發(fā)送方以一定的速率發(fā)送數(shù)據(jù)時,而接收方來不及處理時。 tcp 采用滑動窗口協(xié)議來進行流量控制,以防止數(shù)據(jù)發(fā)送過快導致接收方來不 及處理。 7校驗和計算:校驗和是對是對偽首部、tcp 首部和、tcp 靜荷或數(shù)據(jù) 的計算結(jié)果。計算是為了提供額外的錯誤監(jiān)測。 4.2.4 應(yīng)用層協(xié)議選擇 電子郵件協(xié)議是最流行的網(wǎng)絡(luò)服務(wù)協(xié)議。smtp 協(xié)議是常用的電子郵件傳送 協(xié)議。它是基于 tcp/ip 的應(yīng)用層
60、的協(xié)議,作用是:當發(fā)送方與支持 smtp 協(xié)議 的服務(wù)器連接時,將郵件由發(fā)送方準確無誤地傳送到接收方。 smtp 是一種簡單的基于文本的電子郵件傳輸協(xié)議。 smtp 支持: 文本、聲音、圖像和視頻的報文。 可以郵件發(fā)送個一個或多個收信人。 可以把報文發(fā)送給 internet 以外的網(wǎng)上用戶。 smtp 的通信模型是基于 tcp 運輸協(xié)議的。模型如圖 4-2 所示 圖 4-2 smtp 通信模型示意圖 smtp 協(xié)議是一種請求響應(yīng)協(xié)議,發(fā)送方發(fā)送命令,接收方給予響應(yīng),兩 用戶 文件系統(tǒng) 發(fā)送 smtp接收 smtp smtp 命令 郵件內(nèi)容 smtp 響應(yīng) 用戶文件 22 者通過這種方式進行交付
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)務(wù)勞動合同范本
- 企業(yè)預存消費合同范本
- 養(yǎng)羊協(xié)議合同范本
- 公司柴油采購合同范本
- 出書授權(quán)合同范本
- 口罩廠勞動合同范本
- 2025周黑鴨合作伙伴關(guān)系管理策劃書
- 醫(yī)用鋼釘采購合同范例
- 付款補充合同范本
- 醫(yī)院護工招標合同范例
- 高中英語北師大版全七冊單詞表
- 【幼兒園園本教研】幼兒表征的教師一對一傾聽策略
- 人教版新教材高一上學期期末考試數(shù)學試卷及答案(共五套)
- 采血知情同意書模板
- Mysql 8.0 OCP 1Z0-908 CN-total認證備考題庫(含答案)
- 教科版二年級科學下冊 (磁鐵能吸引什么) 課件
- 學習探究診斷 化學 必修二
- 冀教2011版九年級英語全一冊《Lesson9ChinasMostFamous“Farmer”》教案及教學反思
- 三年級下冊音樂教學計劃含教學進度安排活動設(shè)計word表格版
- 無極繩絞車檢修技術(shù)規(guī)范
- 雷鋒生平事跡簡介
評論
0/150
提交評論