版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)論文(設(shè)計)</p><p> 二〇一二 年 四 月 十五 日</p><p> 題目基于ARM9嵌入式網(wǎng)關(guān)研究</p><p> 作者***</p><p> 學院電氣與信息工程</p><p> 專業(yè)電子信息工程</p><p> 學號</p>
2、<p> 指導教師</p><p><b> 摘 要</b></p><p> 近些年來,以太網(wǎng)/英特網(wǎng)以及其他的網(wǎng)絡(luò)逐漸被廣泛的應(yīng)用到通訊和自動化技術(shù)中。作為代表的TCP/IP網(wǎng)絡(luò)傳輸通訊協(xié)議,其高度成熟的開放網(wǎng)絡(luò)通訊技術(shù)正逐漸滲透到不同的自動化系統(tǒng)中,用以連接和控制其他的裝置。通常也采用其他工業(yè)控制和通訊的嵌入式協(xié)議。然而如何實現(xiàn)嵌入式設(shè)備的遠程
3、控制和數(shù)據(jù)的遠程傳送成了重要的問題?;诖藛栴},我們設(shè)計了一種在網(wǎng)絡(luò)層以上的協(xié)議轉(zhuǎn)換器,即網(wǎng)關(guān),它能實現(xiàn)網(wǎng)絡(luò)層不同協(xié)議的轉(zhuǎn)換,從而實現(xiàn)嵌入式設(shè)備的遠程控制和數(shù)據(jù)的遠程傳送。</p><p> 在設(shè)計上,我們選用32位ARM9處理器S3C2410芯片作為內(nèi)核中央處理器和RTL8019AS網(wǎng)絡(luò)接口芯片來開發(fā)嵌入式網(wǎng)關(guān)并且需要運行在嵌入式系統(tǒng)上。開發(fā)所涉及的工作包括嵌入式操作系統(tǒng)的BootLoader探索、內(nèi)核的接口
4、和裁剪、文件系統(tǒng)和驅(qū)動配置以及網(wǎng)絡(luò)程序來解決TCP/IP的通訊等。這其中內(nèi)核的剪裁和網(wǎng)絡(luò)程序完全由作者自己設(shè)計開發(fā)。具體上,研究采用由ARM公司的合作伙伴生產(chǎn)的S3C2410芯片作為整個設(shè)計的硬件開發(fā)平臺,采用Linux嵌入式操作系統(tǒng)作為軟件開發(fā)平臺。經(jīng)過裁剪后的內(nèi)核具有體積小和實時性高的特點。最后通過系統(tǒng)測試完成網(wǎng)絡(luò)接口的通信,這樣一個嵌入式設(shè)備通過網(wǎng)關(guān)接入英特網(wǎng)的解決方案得以實現(xiàn)。</p><p> 文中首
5、先就嵌入式網(wǎng)關(guān)的探索和發(fā)展作了一個明確的介紹。然后分析嵌入式網(wǎng)關(guān)的技術(shù)需求,為解決嵌入式設(shè)備接入以太網(wǎng)提出解決方案。最后對本文的設(shè)計進行了詳細介紹,包括整體結(jié)構(gòu)的設(shè)計、硬件及設(shè)計平臺、嵌入式網(wǎng)絡(luò)程序、操作系統(tǒng)內(nèi)核的定制,同樣還有系統(tǒng)的接口。其中網(wǎng)絡(luò)程序和系統(tǒng)接口是整個設(shè)計的核心。</p><p> 關(guān)鍵詞:嵌入式網(wǎng)關(guān);Linux操作系統(tǒng);TCP/IP協(xié)議</p><p><b>
6、; Abstract</b></p><p> In recent years,Ethernet/Internet and other network is applied gradually and widely in the domain of communications and automation. Repressed by TCP/IP network transmission com
7、munication protocol, the open network communication technology and controlling the equipments. While it is usually adopts other protocol of the embedded device of industrial control and communication. How to achieve the
8、remote control for the embedded device and remote transition for the data has become an urgent problem. </p><p> A scheme is proposed on this factual significant in this paper. In this paper, the definition
9、, significant of research and trend of development of the Embedded Gateway is introduced, firstly. Then a solution is brought forward and achieved for an embedded device access to Ethernet based on the analysis for the t
10、echnical requirements of Embedded Gateway. The following contents are detailed introduced in paper, including the overall design framework, the hardware and the design platform, Embedded </p><p> In the des
11、ign, 32-bit ARM9 processor S3C2410 as the kernel chip and RTL8019AS as the network interface chip are selected to exploit Embedded Gateway, and it needs to be run on the Embedded Operating System. The design includes Boo
12、t Loader of Embedded Operating System, the tailor and porting of kernel, file system and the configuration of the driver, the program on the networks to finish the program of communications on the TCP/IP protocol applica
13、tion layer, and so on. Among them, the tailor of k</p><p> Key Words:Embedded Gateway; Linux Operating System; TCP/IP Protocol</p><p><b> 目 錄</b></p><p><b> 摘
14、 要I</b></p><p> AbstractII</p><p><b> 第一章 緒論1</b></p><p> 1.1 嵌入式系統(tǒng)及其發(fā)展趨勢2</p><p> 1.1.1 嵌入式系統(tǒng)概述2</p><p> 1.1.2 嵌入式設(shè)備接入以太網(wǎng)的意
15、義2</p><p> 1.1.3 嵌入式網(wǎng)絡(luò)的現(xiàn)狀及發(fā)展趨勢3</p><p> 1.2 論文的目的及完成的主要工作4</p><p> 1.3 本章小結(jié)5</p><p> 第二章 嵌入式網(wǎng)關(guān)系統(tǒng)及硬件電路的總體設(shè)計7</p><p> 2.1 嵌入式網(wǎng)關(guān)系統(tǒng)的功能簡介及工作原理7&l
16、t;/p><p> 2.1.1 系統(tǒng)的功能簡介7</p><p> 2.1.2 嵌入式網(wǎng)關(guān)的工作原理7</p><p> 2.2 嵌入式網(wǎng)關(guān)設(shè)計的總體框架7</p><p> 2.3 硬件部分的設(shè)計8</p><p> 2.3.1 嵌入式網(wǎng)關(guān)的硬件開發(fā)平臺8</p><p&g
17、t; 2.3.2 微控芯片CPU9</p><p> 2.3.3 存儲系統(tǒng)10</p><p> 2.3.4 串口部分10</p><p> 2.3.5 JTAG調(diào)試接口10</p><p> 2.3.6 以太網(wǎng)接口10</p><p> 2.4 本章小結(jié)11</p><
18、;p> 第三章 嵌入式網(wǎng)關(guān)軟件設(shè)計11</p><p> 3.1 TCP/1P協(xié)議13</p><p> 3.1.1 TCP/IP協(xié)議的結(jié)構(gòu)13</p><p> 3.1.2 TCP/IP協(xié)議族及其實現(xiàn)機制13</p><p> 3.2 嵌入式網(wǎng)關(guān)系統(tǒng)設(shè)計的軟件框架14</p><p&g
19、t; 3.3 Linux下的網(wǎng)絡(luò)編程14</p><p> 3.3.1 進程間通信15</p><p> 3.3.2 客戶/服務(wù)器模型16</p><p> 3.3.3 Socket概述17</p><p> 3.3.4 socket網(wǎng)絡(luò)編程的原理和基本函數(shù)17</p><p> 3.4 網(wǎng)
20、絡(luò)程序的編寫與編譯18</p><p> 3.5 本章小結(jié)20</p><p> 第四章 操作系統(tǒng)的移植21</p><p> 4.1 嵌入式Linux及其內(nèi)核簡介21</p><p> 4.2.1 交叉編譯環(huán)境的建立23</p><p> 4.2.2 系統(tǒng)引導程序BootLoader23&
21、lt;/p><p> 4.3 Linux操作系統(tǒng)的移植過程23</p><p> 4.3.1 內(nèi)核的配置和編譯24</p><p> 4.3.2 配置NFS文件系統(tǒng)25</p><p> 4.4 本章小結(jié)26</p><p> 第五章 嵌入式網(wǎng)關(guān)系統(tǒng)的調(diào)試27</p><p&g
22、t; 5.1 嵌入式網(wǎng)關(guān)系統(tǒng)的開發(fā)流程27</p><p> 5.2 調(diào)試過程27</p><p> 5.2.1 系統(tǒng)啟動測試27</p><p> 5.2.2 Linux下網(wǎng)口通信的測試28</p><p> 5.3 本章小結(jié)29</p><p><b> 結(jié) 論30</b
23、></p><p><b> 參考文獻31</b></p><p><b> 致 謝32</b></p><p> 附錄A:部分程序清單33</p><p><b> 第一章 緒論</b></p><p> 隨著信息技術(shù)的發(fā)展,
24、嵌入式系統(tǒng)滲透于生活中的各個領(lǐng)域,嵌入式計算機在應(yīng)用數(shù)量上遠遠超過了各種通用計算機。一臺通用計算機的外部設(shè)備中就包含了6-10個嵌入式微處理器,鍵盤、鼠標、軟驅(qū)、硬盤、顯卡、顯示器、網(wǎng)卡、聲卡、打印機、掃描儀、數(shù)碼相機等均是由嵌入式處理器控制的。在制造工業(yè)、過程控制、通信、儀器、儀表、汽車、船舶、航空、航空、軍事裝備、消費類產(chǎn)品等方面都是嵌入式計算機的應(yīng)用領(lǐng)域。在不同領(lǐng)域,這些嵌入式系統(tǒng)往往組成一個個獨立的嵌入式網(wǎng)絡(luò),隨著Interne
25、t網(wǎng)的不斷普及,將各種嵌入式網(wǎng)絡(luò)接入Internet變得越來越必要。回顧整個網(wǎng)絡(luò)的發(fā)展歷程,從巨型機時代網(wǎng)絡(luò)的開始,到PC時代開放式互聯(lián)網(wǎng)絡(luò)的出現(xiàn),一個必然的趨勢是嵌入式設(shè)備的網(wǎng)絡(luò)化。</p><p> 本來的網(wǎng)絡(luò)會更進一步發(fā)展,連接到網(wǎng)絡(luò)上的不僅僅是PC、PDA這樣的個人數(shù)據(jù)處理設(shè)備,還會有大量的控制類設(shè)備連接到網(wǎng)絡(luò)上。包括各種各樣的環(huán)境和安全控制裝置、家用電氣設(shè)備、商用設(shè)備、工業(yè)設(shè)備等等。它們連接到網(wǎng)絡(luò)上實
26、現(xiàn)協(xié)調(diào)管理將是未來網(wǎng)絡(luò)設(shè)備的發(fā)展趨勢。一套新設(shè)計的智能化住宅中,估計連接到網(wǎng)絡(luò)上的PC機數(shù)量為1-4臺,而連接到網(wǎng)絡(luò)上的其他電子設(shè)備為20-30個。現(xiàn)在網(wǎng)絡(luò)上將大大增加智能設(shè)備互相之間的信息的收發(fā)。未來的智能住宅、智能小區(qū)、智能工廠、智能辦公樓、智能醫(yī)院、智能學校、智能倉庫、智能車站、智能機場、智能酒店等等需要大量的充當神經(jīng)末梢的嵌入式網(wǎng)關(guān)設(shè)備。</p><p> 在這種無所不在的建設(shè)和發(fā)展趨勢下,廉價、有效、
27、可靠、使用方便的“透明化”設(shè)計的小型乃至微型網(wǎng)絡(luò)設(shè)備將是網(wǎng)絡(luò)設(shè)備設(shè)計、制造、應(yīng)用的一個個非常重要的方向,甚至可能是規(guī)模最大的一個方向。</p><p> 1.1 嵌入式系統(tǒng)及其發(fā)展趨勢</p><p> 1.1.1 嵌入式系統(tǒng)概述</p><p> 嵌入式系統(tǒng)本身是一個相對模糊的定義。由于目前嵌入式系統(tǒng)已經(jīng)滲透到日常生活的各個方面,其在工業(yè)、服務(wù)業(yè)、消費電子
28、等領(lǐng)域的應(yīng)用范圍都不斷擴大,因此難以給“嵌入式系統(tǒng)”下一個明確的定義。</p><p> 根據(jù)IEEE(國際電氣和電子工程師協(xié)會)的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機器和車間運行的裝置”(原文為devices used control,monitor,0r assist theoperation 0f equipment machinery or plants)。這主要是從應(yīng)用上加以定義的,由此可以
29、看出嵌入式系統(tǒng)是軟件和硬件的綜合體,可以涵蓋機械等附屬裝置。不過,上述定義并不能充分體現(xiàn)出嵌入式系統(tǒng)的精髓。目前國內(nèi)一個普遍被認同的定義是:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ),軟、硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成</p><p> 本、體積、功耗等嚴格要求的專用計算機系統(tǒng)[1]??梢詮囊韵聨讉€方面來理解國內(nèi)對嵌入式系統(tǒng)的定義:</p><p> ◆ 嵌入式系統(tǒng)是面向用戶、面向產(chǎn)
30、品、面向應(yīng)用的,它必須與具體應(yīng)用相結(jié)合才會具有生命力、才更具有優(yōu)勢??梢赃@樣理解上述三個方面的含義,即嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的,它具有很強的專用性,必須結(jié)合實際系統(tǒng)需求進行合理的裁剪利用。</p><p> ◆ 嵌入式系統(tǒng)是將先進的計算機技術(shù)、半導體技術(shù)和電子技術(shù)以及各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物。這一點就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。所以,介入嵌入式系統(tǒng)行業(yè),必
31、須有一個正確的定位。例如Palm OS之所以在PDA領(lǐng)域占有70%以上的市場,就是因為其立足于個人電子消費品,著重發(fā)展圖形界面和多任務(wù)管理;而風河的VxWorks之所以在火星車上得以應(yīng)用,則是因為其高實時性和高可靠性。</p><p> ◆ 嵌入式系統(tǒng)必須能夠根據(jù)應(yīng)用需求對軟硬件進行裁剪,滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求。所以,如果能建立相對通用的軟硬件基礎(chǔ),然后在其上開發(fā)出適應(yīng)各種需要的系統(tǒng),是一
32、個比較好的發(fā)展模式。目前的嵌入式系統(tǒng)的核心往往是一個只有幾KB到幾十KB的微內(nèi)核,需要根據(jù)實際的使用進行功能擴展或者裁剪。由于微內(nèi)核的存在,使得這種擴展能夠非常順利地進行。由于嵌入式系統(tǒng)本身是一個外延極廣的名詞,凡是與產(chǎn)品結(jié)合在一起的具有嵌入式特點的控制系統(tǒng)都可以叫嵌入式系統(tǒng),很難給它下一個準確的定義。因此,目前通常把嵌入式系統(tǒng)概念的重心放在“系統(tǒng)”(即操作系統(tǒng))上,指能夠運行操作系統(tǒng)的軟硬件綜合體??傮w上嵌入式系統(tǒng)可以劃分成硬件和軟件
33、兩部分,硬件一般由高性能的微處理器和外圍的接口電路組成,軟件一般由實時操作系統(tǒng)和其上運行的應(yīng)用軟件構(gòu)成,軟件和硬件之間由所謂的中間層(BSP層,板級支持包)連接。一般而言,嵌入式系統(tǒng)的構(gòu)架可以分成4個部分:處理器、存儲器、輸入/輸出(I/O)和軟件(由于多數(shù)嵌入式設(shè)備的應(yīng)用軟件和操作系統(tǒng)都是緊密結(jié)合的,在這里對其不加區(qū)分,這也是嵌入式系統(tǒng)和Windows系統(tǒng)的最大區(qū)別。</p><p> 1.1.2 嵌入式設(shè)
34、備接入以太網(wǎng)的意義</p><p> 隨著互聯(lián)網(wǎng)應(yīng)用的日益普及,信息共享的程度不斷提高。如何通過互聯(lián)網(wǎng)共享嵌入式系統(tǒng)為中心的小型嵌入式設(shè)備的信息,成為當今電子界的熱門話題。傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用是以PC為中心,如今,互聯(lián)網(wǎng)應(yīng)用正轉(zhuǎn)到以嵌入式設(shè)備為中心。IA(Internet Appiance)概念現(xiàn)在甚為流行,這表明互聯(lián)網(wǎng)應(yīng)用進入嵌入式互聯(lián)網(wǎng)時代已經(jīng)來臨,把嵌入式系統(tǒng)和Internet連接已是一種趨勢。</p&
35、gt;<p> 嵌入式設(shè)備接入以太網(wǎng)有什么意義呢?過去通過專用通信線在遠方采集現(xiàn)場設(shè)備的數(shù)據(jù),進行遠方顯示和控制,但是通信介質(zhì)要專用的,通信協(xié)議要自己寫,嵌套的設(shè)備要自己設(shè)計。因此,系統(tǒng)成本高,開發(fā)周期長。</p><p> 同時,隨著工業(yè)自動化和辦公自動化的發(fā)展,在一些場合,分布式控制系統(tǒng)的網(wǎng)絡(luò)越來越龐大,現(xiàn)場總線越來越受地域、鋪設(shè)成本、負載容量的限制。另外,由于目前市場上CANbus、Lon
36、works、Profibus、FF等多種現(xiàn)場總線并存,使得基于現(xiàn)場總線的控制系統(tǒng)的接口協(xié)議標準各異,難以統(tǒng)一。在這種情況下,利用廉價的具有接入Internet功能的嵌入式設(shè)備,可以使現(xiàn)場總線方式下的分布式控制系統(tǒng)轉(zhuǎn)換成基于以太網(wǎng)的分布式控制系統(tǒng),從而使數(shù)據(jù)采集、信息傳輸?shù)饶苤苯釉贗nternet/Intranet上進行,既統(tǒng)一了標準,又使工業(yè)測控數(shù)據(jù)直接在Internet/Intranet上動態(tài)發(fā)布、共享,供相關(guān)技術(shù)員、管理人員進行實時
37、處理或參考,這樣就把控制網(wǎng)和信息網(wǎng)有機的結(jié)合起來,這樣工廠或企業(yè)都擁有一個一體的網(wǎng)絡(luò)平臺,無論從成本、管理、維護等方面考慮,都是一個最佳的地選擇。</p><p> 另一方面,靈活、方便,安全性、可靠性高的以太網(wǎng)的飛速發(fā)展和普及,使因特網(wǎng)已深入辦公室、工廠與車間,使人們在工作的各個地點,都可以通過互聯(lián)網(wǎng)來交換信息。嵌入式設(shè)備的顯示和控制只要能上網(wǎng),就能很好的實現(xiàn)遠程控制,不需要專用的通信線路,現(xiàn)成的全球網(wǎng)絡(luò)任你
38、傳到各個角落。</p><p> 綜上所述,設(shè)計一種基于以太網(wǎng)的嵌入式控制系統(tǒng)來實現(xiàn)設(shè)備的遠程控制將具有非常廣闊的應(yīng)用前景。</p><p> 1.1.3 嵌入式網(wǎng)絡(luò)的現(xiàn)狀及發(fā)展趨勢</p><p> 國際上,微控制器和微處理器在工業(yè)自動化和設(shè)備管理上采用TCP/IP協(xié)議接入網(wǎng)絡(luò)始于1994年,初期的進展比較緩慢。近年來,由于微電子技術(shù)的迅猛發(fā)展,微控制器和微
39、處理器的性能大大提高,價格卻大大降低,與此同時,因特網(wǎng)也以前所未有的速度向前發(fā)展,網(wǎng)絡(luò)通信的性能、質(zhì)量和穩(wěn)定性都得到穩(wěn)步提高,網(wǎng)絡(luò)普及程度也迅速提高。世界各大公司看到了嵌入式設(shè)備連上因特網(wǎng)的巨大商業(yè)價值和市場潛力,紛紛投入精力研究,使得嵌入式網(wǎng)關(guān)技術(shù)的研究和應(yīng)用出現(xiàn)加速發(fā)展的勢頭。其中以全球嵌入式及移動應(yīng)用軟件領(lǐng)導著稱的廠商風河(Wind River)公司最為聞名,近日他們又發(fā)布可用于開發(fā)智能網(wǎng)關(guān)的全新軟件網(wǎng)關(guān)器平臺。其技術(shù)已達到國際先
40、進水平。</p><p> 國內(nèi)嵌入式技術(shù)興起較慢,但是發(fā)展卻很迅速,國家也很重視這方面的研究。目前國內(nèi)關(guān)于嵌入式網(wǎng)關(guān)的研究成果主要集中在嵌入式串口網(wǎng)關(guān)研究上,其研究成果諸如HEG9000工業(yè)嵌入式網(wǎng)關(guān)模塊及HEG0700嵌入式串口網(wǎng)關(guān)模塊,其性能可靠,能耗較低。</p><p> 開放式網(wǎng)絡(luò)可以給企業(yè)帶來很多好處。方便的數(shù)據(jù)信息獲取帶來迅速高效的決策。從最低端的設(shè)備到超級計算機,企業(yè)
41、有一個整體控制。開放式網(wǎng)絡(luò)的可擴展性使得企業(yè)可以保持已有的技術(shù)投資,相對于特定的網(wǎng)絡(luò)標準,加入企業(yè)一種新的解決方案,使已有網(wǎng)絡(luò)系統(tǒng)將被推翻,從這點來說,開放式網(wǎng)絡(luò)為企業(yè)運營降低了成本。</p><p> 嵌入式設(shè)備網(wǎng)絡(luò)化是市場的需要。從最終的用戶角度看,他們希望所有設(shè)備互聯(lián)工作,這種互聯(lián)越廣泛越好,因為這意味著他們工作生活的自由度提高了。當今社會是信息化的社會,快速獲取最新信息是高效決策的關(guān)鍵。企業(yè)的管理者希望
42、他們的觸角能夠到達企業(yè)的任何位置,從而可以快速的進行資源配置,對生產(chǎn)過程進行實時監(jiān)控,并能夠隨時修正,重新配置資源?,F(xiàn)代企業(yè)具有很大的靈活性很大程度上決定了它是否在競爭中勝出。</p><p> 從嵌入式設(shè)備制造者的角度來看,通常更關(guān)心成本因素。嵌入式設(shè)備的網(wǎng)絡(luò)化使得在進行售后服務(wù)時有了一個根本性的變革:通過因特網(wǎng)遠程控制檢測設(shè)備,使得進行遠程技術(shù)支持成為可能。這種做法提高了設(shè)備維護的方便性,同時降低了維護成本
43、。</p><p> 1.2 論文的目的及完成的主要工作</p><p> 論文的研究目的是為了實現(xiàn)一種將現(xiàn)場總線方式下的嵌入式控制系統(tǒng)轉(zhuǎn)換成基于以太網(wǎng)的嵌入式控制系統(tǒng)的方法,以解決當前現(xiàn)場總線控制系統(tǒng)中存在的接口協(xié)議標準各異以及不同網(wǎng)絡(luò)之間互通難的問題。</p><p> 論文主要工作包括硬件平臺的設(shè)計和軟件部分的設(shè)計。通過這兩部分的設(shè)計我們模擬對遠程電表
44、的數(shù)據(jù)采集和控制。</p><p> 其中硬件部分包括中央處理器即CPU的選取、存儲系統(tǒng)的設(shè)計、串口部分的設(shè)計、JTAG調(diào)試接口以及以太網(wǎng)接口的設(shè)計。CPU是整個系統(tǒng)的實時控制核心。本文選用以ARM9為核心的S3C2410是一款32bit的RISC微處理器,其性價比高,低功耗的網(wǎng)絡(luò)設(shè)備,并且集成了眾多的控制器和其他接口的豐富資源;存儲系統(tǒng)對于整個系統(tǒng)也是非常重要的。它包含著程序的運行空間和數(shù)據(jù)空間,系統(tǒng)的啟動代
45、碼同樣離不開存儲系統(tǒng),可以說存儲系統(tǒng)是CPU外的另一大重要內(nèi)容;這里串口的設(shè)計主要是方便ARM同PC機進行通訊;JTAG調(diào)試接口是嵌入式系統(tǒng)芯片的燒寫和調(diào)試不可或缺的部分,它可滿足對實時對程序的分析和執(zhí)行的監(jiān)控;以太網(wǎng)接口是用來同外部設(shè)備進行數(shù)據(jù)傳輸?shù)?,缺少了這部分,那么研究就變得沒意義了。</p><p> 軟件部分包括Bootload的編寫、操作系統(tǒng)和文件系統(tǒng)的移植、應(yīng)用程序的編寫。應(yīng)用程序部分我們利用So
46、cket套接字和TCP/IP協(xié)議編寫了一個簡單的客戶機/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用程序。因為本系統(tǒng)只是起到網(wǎng)關(guān)的作用,只需實現(xiàn)現(xiàn)場總線和以太網(wǎng)上位機兩方之間的通信,并不需要處理其數(shù)據(jù)的邏輯意義和內(nèi)容。在這種模式下,以太網(wǎng)上位機被設(shè)定為服務(wù)器,它運行了服務(wù)器端的應(yīng)用程序。該程序主要用于監(jiān)聽服務(wù)器端口、接受客戶端的連接請求、接受客戶端的信息、向客戶端發(fā)送信息等。網(wǎng)關(guān)系統(tǒng)中運行的是客戶端程序,該程序主要是用于申請連接到服務(wù)器、將現(xiàn)場總線方發(fā)來的消息
47、向服務(wù)器發(fā)送、處理服務(wù)器發(fā)來的信息、將這些信息發(fā)送給現(xiàn)場總線系統(tǒng)。</p><p> 隨著工業(yè)控制系統(tǒng)性能的提高,以太網(wǎng)在工業(yè)上的應(yīng)用也會越來越廣泛,本文介紹</p><p> 的嵌入式網(wǎng)關(guān)設(shè)計為嵌入式系統(tǒng)互聯(lián)提供了一種傳輸速度快,成本低,穩(wěn)定性和安全性高的解決方案。同時,利用嵌入式ARM處理器接口資源豐富,設(shè)計通用性強,便于拓展其他現(xiàn)場總線與以太網(wǎng)互聯(lián),具有較好的應(yīng)用推廣價值。<
48、;/p><p><b> 1.3 本章小結(jié)</b></p><p> 本章介紹了嵌入式式系統(tǒng)及其發(fā)展趨勢,討論了嵌入式網(wǎng)關(guān)發(fā)展情況、技術(shù)要求及論文的主要目的和作者所要完成的主要工作。</p><p> 第二章 嵌入式網(wǎng)關(guān)系統(tǒng)及硬件電路的總體設(shè)計</p><p> 2.1 嵌入式網(wǎng)關(guān)系統(tǒng)的功能簡介及工作原理<
49、;/p><p> 網(wǎng)關(guān)是提供微機用戶進入小型計算機和主機環(huán)境的鏈路。網(wǎng)關(guān)的重要功能是完成網(wǎng)絡(luò)層以上的協(xié)議之間的轉(zhuǎn)換,所以用關(guān)又稱為協(xié)議轉(zhuǎn)換器,它將不同網(wǎng)絡(luò)的協(xié)議進行轉(zhuǎn)換。</p><p> 2.1.1 系統(tǒng)的功能簡介</p><p> 嵌入式網(wǎng)關(guān)是把TCP/IP協(xié)議棧固化在芯片內(nèi),使其具有以太網(wǎng)接入功能的一種廉價的網(wǎng)絡(luò)接入裝置。體積很小的電路就能讓控制和通訊設(shè)備采
50、用標準的網(wǎng)絡(luò)協(xié)議接入,能方便地與其它任何網(wǎng)絡(luò)設(shè)施通訊。</p><p> 采用嵌入式網(wǎng)關(guān)技術(shù),把一個設(shè)備接入標準的計算機網(wǎng)絡(luò)的成本是采用PC機的幾十分之一甚至是幾百分之一。PC機和服務(wù)器是網(wǎng)絡(luò)上功能強大的信息存儲和處理中心,而嵌入式網(wǎng)關(guān)則是網(wǎng)絡(luò)系統(tǒng)中最廣泛分布的神經(jīng)末梢,非PC的各種專用設(shè)備將會是計算機網(wǎng)絡(luò)中最普遍的網(wǎng)絡(luò)終端設(shè)備,而這些最普遍的網(wǎng)絡(luò)終端設(shè)備均可通過嵌入式網(wǎng)關(guān)實現(xiàn)網(wǎng)絡(luò)的接入。本文中采用的嵌入式網(wǎng)關(guān)
51、開發(fā)平臺主要由三星公司ARM9系列單片機SBC2410和網(wǎng)卡芯片以及內(nèi)存芯片等組成。</p><p> 圖 2.1 嵌入式網(wǎng)絡(luò)總體結(jié)構(gòu)圖</p><p> 在本設(shè)計中,嵌入式網(wǎng)關(guān)系統(tǒng)的功能如圖2.1所示。該網(wǎng)關(guān)的主要功能就是實現(xiàn)其它協(xié)議與TCP/IP協(xié)議的轉(zhuǎn)換,使網(wǎng)絡(luò)一端的嵌入式設(shè)備與以太網(wǎng)通信,從而實現(xiàn)設(shè)備的遠程控制和數(shù)據(jù)的遠程傳輸。本文以32位ARM處理器S3C2410為主控芯片,
52、以RTL8019AS網(wǎng)絡(luò)控制器為網(wǎng)絡(luò)接口,開發(fā)嵌入式網(wǎng)關(guān)。</p><p> 2.1.2 嵌入式網(wǎng)關(guān)的工作原理</p><p> 設(shè)計網(wǎng)關(guān)所用的芯片選用的是三星公司的ARM9系列處理器S3C2410,它具有高性能、低功耗的特性,同時外接了大容量SDRAM和Flash,以滿足大數(shù)據(jù)量的系統(tǒng)要求。嵌入式操作系統(tǒng)選用的是嵌入式Linux,嵌入式Linux是精簡后的Linux操作系統(tǒng)。<
53、;/p><p> 嵌入式網(wǎng)關(guān)的工作機理是ARM9系列處理器S3C2410首先初始化網(wǎng)絡(luò)設(shè)備。網(wǎng)卡的IP地址和物理地址存在flash中,單片機復(fù)位后首先調(diào)取這些數(shù)據(jù)以初始化網(wǎng)絡(luò)。網(wǎng)關(guān)處理器主要完成數(shù)據(jù)的解包和打包。當有數(shù)據(jù)過來,網(wǎng)關(guān)處理器對數(shù)據(jù)包進行分析,如果是ARP(物理地址解析)數(shù)據(jù)包,則程序轉(zhuǎn)入ARP處理程序(在網(wǎng)絡(luò)上正是ARP協(xié)議將IP地址和物理地址相映射)。如果是IP數(shù)據(jù)包且傳輸層使用TCP協(xié)議并且端口正確
54、,則認為數(shù)據(jù)包正確井對數(shù)據(jù)進行解包,然后將工作數(shù)據(jù)通過用戶接口發(fā)送給最終用戶。反之,如果網(wǎng)關(guān)處理器從用戶接口收到用戶的工作數(shù)據(jù),則將工作數(shù)據(jù)按照TCP協(xié)議格式打包。送入網(wǎng)卡芯片,由網(wǎng)卡芯片將IP包包傳送到局域網(wǎng)中。</p><p> 由此可知,網(wǎng)關(guān)主要處理協(xié)議的網(wǎng)絡(luò)層和傳輸層,鏈路層主要由網(wǎng)絡(luò)芯片完成[2]。因網(wǎng)關(guān)單片機將數(shù)據(jù)接收后通過用戶接口輸出,所以網(wǎng)絡(luò)應(yīng)用層由用戶程序來處理,用戶可以根據(jù)需求對收到的數(shù)據(jù)進
55、行相應(yīng)處理。</p><p> 2.2 嵌入式網(wǎng)關(guān)設(shè)計的總體框架</p><p> 從結(jié)構(gòu)的角度來講,嵌入式網(wǎng)關(guān)由硬件層和軟件層組成。硬件層由高性能的嵌入式處理器和外圍硬件接口組成,軟件層由實時操作靜和在其上運行的軟件組成。其系統(tǒng)結(jié)構(gòu)如圖2.2所示。</p><p> 圖2.2 系統(tǒng)結(jié)構(gòu)圖</p><p> 嵌入式微處理器是整個系
56、統(tǒng)的硬件核心,理論上目前的任何一種通用微處理器都可以勝任,在本設(shè)計中選取了ARM9微處理器,一方面它時鐘頻率高、指令執(zhí)行時間短,從而處理能力大大增強;另一方面它包含獨立的數(shù)據(jù)指令Cache和MMU.因此能用在要求有虛擬存儲器支持的操作系統(tǒng)(如Linux)上。此外,ARM9帶有并行運算能力的RSCI,使整個系統(tǒng)具有運行全面的TCP/IP協(xié)議能力。由于在本論文中,我們假設(shè)外部設(shè)備以串口形式輸入,所以外圍硬件接口部分主要采用以太網(wǎng)接口和串行口
57、。</p><p> 嵌入式操作系統(tǒng)是整個系統(tǒng)的軟件核心。嵌入式網(wǎng)關(guān)能夠接入標準的計算機網(wǎng)絡(luò)而不需要通過相對昂貴的PC機,關(guān)鍵就在于嵌入式操作系統(tǒng)。不同計算機互相之間能夠進行網(wǎng)絡(luò)通信,主要依賴通用的標準的計算機協(xié)議,而目前應(yīng)用最廣泛的TCP/IP協(xié)議本身包含很多功能,是一個龐大的協(xié)議系統(tǒng),這樣的系統(tǒng)需要比較大的平臺。在嵌入式網(wǎng)關(guān)中由于對TCP/IP協(xié)議根據(jù)需要進行了精簡和選擇,保留了有限的但是足夠用的功能,系統(tǒng)
58、的負荷能夠降低到微型系統(tǒng)能夠承擔的水平。在嵌入式網(wǎng)關(guān)內(nèi),經(jīng)過精心設(shè)計的符合TCP/IP協(xié)議標準的網(wǎng)絡(luò)接口,不僅能使嵌入式網(wǎng)關(guān)設(shè)備互相之間能夠通過網(wǎng)絡(luò)進行通訊,而且還能與網(wǎng)絡(luò)其他運行Windows、Linux、Unix等系統(tǒng)的主機之間變換信息。</p><p> 在嵌入式硬件體系中,嵌入式處理器是整個系統(tǒng)的核心部件。嵌入式處理器與通用處理器的最大不同點在于嵌入式處理器大多工作在特定用戶群設(shè)計的系統(tǒng)中。它通常把通用
59、CPU中許多板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計趨于小型化,并具有高效率、高可靠性等特征。在本設(shè)計中,我們采用的是ARM920內(nèi)核的S3C2410。</p><p> 嵌入式外圍設(shè)備,我們采用了RTL8019AS以太網(wǎng)控制芯片、FLASH存儲器、SDRAM和串口芯片MAX232。嵌入式網(wǎng)關(guān)軟件主要由嵌入式操作系統(tǒng)和應(yīng)用軟件組成。</p><p> 在嵌入式應(yīng)用中,為了
60、使嵌入式開發(fā)更方便,快捷,就需要具備相應(yīng)的管理存儲器分配,中斷處理,任務(wù)間通信和定時器響應(yīng),以及提供多任務(wù)處理等功能的穩(wěn)定的、安全的軟件模塊集合,即嵌入式操作系統(tǒng)。嵌入式操作系統(tǒng)的引入大大提高了嵌入式系統(tǒng)的功能,方便了嵌入式應(yīng)用軟件的設(shè)計。</p><p> 在設(shè)計中,選用嵌入式Linux作為操作系統(tǒng),嵌入式Linux操作系統(tǒng)是一種多進程,多用戶的通用操作。它具備免費、源代碼公開、內(nèi)核可裁剪、支持多線程、網(wǎng)絡(luò)功
61、能強大、設(shè)計精巧、性能穩(wěn)定的特點。嵌入式網(wǎng)關(guān)系統(tǒng)的Linux經(jīng)過裁剪和重新編譯后只包括進程管理、內(nèi)存管理、文件系統(tǒng)、若干個驅(qū)動程序和實用的函數(shù)等。</p><p> 2.3 硬件部分的設(shè)計</p><p> 2.3.1 嵌入式網(wǎng)關(guān)的硬件開發(fā)平臺</p><p> 嵌入式處理器控制模塊是整個網(wǎng)關(guān)的控制中心,它要為嵌入式操作系統(tǒng)提供存儲空間和運行環(huán)境,以便在嵌
62、入式操作系統(tǒng)上運行協(xié)議轉(zhuǎn)換程序和外設(shè)模塊的驅(qū)動等程序[3]。為了縮短開發(fā)周期,降低開發(fā)成本,在系統(tǒng)的開發(fā)中,我們采用了飛凌嵌入式科技有限公司的ARM9開發(fā)板OK2410作為開發(fā)平臺。這個開發(fā)套件是一個以韓國三星公司設(shè)的ARM9系列芯片S3C2410為基礎(chǔ)設(shè)計的完整的ARM嵌入式Linux開發(fā)平臺,提供嵌入式微處理器及其外圍設(shè)備如存儲介質(zhì)、控制電路、接口電路和嵌入式操作系統(tǒng)等系統(tǒng)開發(fā)所必需的相關(guān)軟、硬件組件。以下是OK2410硬件開發(fā)平臺
63、的介紹:</p><p><b> 開發(fā)板特性</b></p><p> 1.CPU處理器:Samsung S3C2410,主頻400MHz,最高533Mhz</p><p><b> 2.SDRAM內(nèi)存</b></p><p> 3.在板64M SDRAM:32bit數(shù)據(jù)總線</p&
64、gt;<p> 4.SDRAM時鐘頻率高選1OOMHz</p><p> 5.FLASH存儲器:在板64M Nand Flash,掉電非易失;在板1M Nor Flash,掉電非易失</p><p> 6.LCD顯示:支持各種單色/偽彩/真彩液晶屏(分辨率最高可達1024x768)支持四線電阻觸摸屏</p><p> 7.接口和資源:一個IOM
65、以太網(wǎng)RJ-5口;一個IOOM以太網(wǎng)RJ-45口;一個串行口,COMO為RS232 DB9接口(亦引出TTL接口b COMZ和COM3為2.0mm間距TTL電平接口(詳見用戶手冊);一個USB HostA型接口(USB l.1協(xié)議);一個USB SlaveB型接口,(USBl.1協(xié)議1;一個SD卡存儲接口;一個2.0 間距20針標i準JTAG接口,主要用來下載BIOS/vivi;板載實時時鐘電池;電源接口(12V).帶電源開關(guān)和指示燈&
66、lt;/p><p> 8.擴展接口:一個20針GPIO接口;兩個全功能擴展串口</p><p> 9.操作系統(tǒng)支持:Linux2.6.13;WindowsCE.NET 4.2</p><p> 2.3.2 微控芯片CPU</p><p> CPU是整個嵌入式系統(tǒng)的實時控制核心,它在工業(yè)以太網(wǎng)中作為智能節(jié)點的主控制器,是整個嵌入式網(wǎng)關(guān)的核心
67、。本文選用以ARM920T為核心的 S3C2410微處理器,S3C2410是32bit的RISC微處理器,該處理器特別適用于手持式設(shè)備以及高性價比、低功耗的網(wǎng)絡(luò)設(shè)備,它集成了LCD 控制器、USBHost、NAND控制器、BUS控制器、中斷控制、功率控制、存儲控制、UART、WatchDog、SPI、SDI/MMC、IS、 IC、GPIO、RTC、TIMER/PWM、ADC等豐富的資源。</p><p> S3
68、C2410集成了以下片上功能:1.2v內(nèi)核供電,1.8V/2.5V/3.3V存儲器供電,3.3V外部I/O供電,具備16KB Cache/MMU微處理器;外部存儲控制器(SDRAM控制和片選邏輯);LCD控制器(最大支持4K色STN和256K色TFT)提供l通道LCD專用DMA,4通道DMA并有外部請求引腳,3通道UART.1通道IIC-BUS接口.1通道IIS-BUS音頻編解碼器接口,兼容SD主接口協(xié)議1.0版和MMC卡協(xié)議2.11兼
69、容版;端口USB主機/l端口USB設(shè)備(11版):通道PWM定時器和1通道內(nèi)部定時器看門狗定時器:8通道10比特ADC和觸摸屏接口;日歷功能的RTC; 130個通用I/O口和24通道外部中斷源;具有普通、慢速、空閑和掉電模式:具有PLL片上時鐘發(fā)生器。S3C2410的系統(tǒng)管理支持大、小端方式,并支持高速總線模式和異步總線模式。S3C2410將系統(tǒng)的存儲空間分成8個bank,每個bank 128M字節(jié),總共1G字節(jié),其中6個適用于ROM/
70、SRAM和其他,另外兩個適用于ROWSRAM/SDRAM。從bank0副bank6都采用固定的bank起始尋址,ba</p><p> 2.3.3 存儲系統(tǒng)</p><p> 嵌入式系統(tǒng)可根據(jù)需要定制存儲空間。本文擴展了2片F(xiàn)lash芯片和1片SDRAM。Flash芯片主要有1片韓國現(xiàn)代公司的2MB16bit數(shù)據(jù)寬度的 Flash芯片HY29LV160B191和1片韓國三星公司的16
71、MB的NANDFlash芯片K9F2808UOB1571,SDRAM芯片采用的是 1塊韓國現(xiàn)代公司生產(chǎn)的SDRAMHY57V5616201。2MB的Flash芯片HY29LV160B對應(yīng)的地址空間映射到地址0x00000000 上,作為存儲啟動配置參數(shù)及異常/中斷向量表的程序空間,系統(tǒng)復(fù)位后從其中讀取指令執(zhí)行程序;使用韓國現(xiàn)代公司的8MB的 SDRAMHY57V561620作為系統(tǒng)內(nèi)存,對應(yīng)地址空間映射在地址Ox30000000開始,作
72、為程序運行空間和數(shù)據(jù)空間,啟動代碼將系統(tǒng)映像復(fù)制到SDRAM后執(zhí)行。</p><p> 2.3.4 串口部分</p><p> 串口部分設(shè)計使用了2路UART,其中,一路通過電平轉(zhuǎn)換芯片MAX232,把3.3V的邏輯電平轉(zhuǎn)換為RS-232-C的邏輯電平進行傳輸,實現(xiàn)ARM 與PC機之間的通信,通過超級終端可在PC機上進行調(diào)試;另一路串行接口使用MAX1485進行電平轉(zhuǎn)換,實現(xiàn)從RS-4
73、85上接收現(xiàn)場總線發(fā)送的信息。</p><p> 2.3.5 JTAG調(diào)試接口</p><p> 在嵌入式系統(tǒng)中,芯片的燒寫、調(diào)試都需要用到JTAG調(diào)試接口,可滿足實時地實現(xiàn)對程序的分析和執(zhí)行的監(jiān)控。JTAG(Joint Test Action Group)是IEEE的規(guī)范標準,它可以通過現(xiàn)有的JTAG邊界掃描與ARMCPU內(nèi)核進行通信,屬于完全非插入式(不占用片上資源)調(diào)試,它無需
74、目標存儲器,不占用目標系統(tǒng)的任何端口,而這些是普通的駐留監(jiān)控軟件所必需的。另外,JTAG調(diào)試的目標程序是在目標板上執(zhí)行的,仿真更接近于目標硬件,仿真結(jié)果與真實的運行環(huán)境更為接近,因此,逐漸成為采用更多的一種調(diào)試方式。</p><p> 2.3.6 以太網(wǎng)接口</p><p> 本文以太網(wǎng)接口中所使用的芯片有RTL8019AS、74LVC4245、FB2022(網(wǎng)卡變壓器)。RTL80
75、19AS是性價比高且?guī)в屑床寮从霉δ艿娜p工以太網(wǎng)控制器,其主要特點包括:符合EtherNetⅡ與IEEE802.3標準;全雙工,收發(fā)可同時達到10Mb/s的速率,內(nèi)置16KB的 SRAM,用于收發(fā)緩沖,減低對主處理器的要求;支持UTP、AUI、BNC自動檢測,還支持對10BaseT拓撲結(jié)構(gòu)的自動極性修正;允許4個診斷 LED引腳編程輸出。RTL8019AS內(nèi)部有2塊RAM區(qū),1塊16KB,地址為0x4000~0x7fff;1塊32By
76、te,地址為 0x0000~0x001f。RAM按頁存儲,每256Byte為1頁。本方案中將RTL8019AS的RAM的前12頁 (0x4000~0x4Bfff)作為發(fā)送緩沖區(qū);后52頁(0x4c00~0x7fff)作為接收緩沖區(qū);第0頁只有32Byte,用來存儲以太網(wǎng)的物理地址。</p><p> RTL8019AS芯片的引腳SA0~SA19為地址總線;SD0~SD15為數(shù)據(jù)總線;引腳INT0接S3C2410
77、芯片的外部中斷信號;引腳AEN是地址使能腳,作為芯片的選通信號,將中斷接到CPU的nGCS3地址映射到bank3。RTL8019AS的地址空間范圍是0x18000300~0x1800031f。引腳IOS0~3設(shè)置為接地或空閑,表明RTL8019AS內(nèi)部寄存器總線地址從300H開始。</p><p> 引腳X1、X2接一個20MHz的無源晶振,作為外部時鐘信號輸入;引腳JP接高電平,選擇跳線模式:引腳IORB、I
78、OWB作為輸入輸出讀寫指令端;引腳RSTDRV是復(fù)位端,連接復(fù)位信號;引腳SMEMRB、SMEMWB是芯片的存儲器讀命令和寫命令。</p><p> 引腳TPIN+,TPIN-、TPOUT+,TPOUT-作為媒體接口管腳,是接收IP數(shù)據(jù)報所需要用到的管腳,在設(shè)計網(wǎng)卡芯片電路時通過一個隔離變壓器和RJ-45的網(wǎng)絡(luò)外接口相連,外部主機通過以太網(wǎng)網(wǎng)線與RJ-45接口進行連接,實現(xiàn)數(shù)據(jù)交換。</p>&l
79、t;p> 隔離變壓器的TD+管腳連接網(wǎng)卡芯片的TPOUT+引腳;TD-連接TPOUT-;RD+連接TPIN+;RD-連接TPIN-。8019通過隔離變壓器與RJ-45連接,實現(xiàn)與主機進行接收和發(fā)送IP數(shù)據(jù)報等工作。</p><p><b> 2.4 本章小結(jié)</b></p><p> 本章主要介紹了嵌入式網(wǎng)關(guān)系統(tǒng)的總體結(jié)構(gòu)和硬件組成,并介紹了嵌入式網(wǎng)關(guān)的工
80、作原理、功能及其硬件開發(fā)平臺以及主要芯片和開發(fā)工具。提出了嵌入式網(wǎng)關(guān)的硬件解決方案,為嵌入式網(wǎng)關(guān)的開發(fā)奠定了基礎(chǔ)。</p><p> 第三章 嵌入式網(wǎng)關(guān)軟件設(shè)計</p><p> 本設(shè)計中嵌入式網(wǎng)關(guān)即是一個協(xié)議轉(zhuǎn)換器,它可以實現(xiàn)數(shù)據(jù)鏈路層以上各層的協(xié)議轉(zhuǎn)換,在本設(shè)計中主要體現(xiàn)在用戶層到傳輸層協(xié)議間的轉(zhuǎn)換。由于ARM9內(nèi)接已經(jīng)具有全性能的MMU(虛擬內(nèi)存管理單元),因此我們可以把裁剪好
81、的Linux操作系統(tǒng)直接移植上去。這樣建立起來的軟硬件開發(fā)平臺,其功能相當于一臺裝有Redhat Linux的PC機。</p><p> 由于Linux系統(tǒng)內(nèi)核已經(jīng)提供網(wǎng)絡(luò)支持,而不必像其它操作系統(tǒng)要外掛TCP/IP</p><p> 協(xié)議包,這樣,其它協(xié)議與TCP/IP協(xié)議的轉(zhuǎn)換在軟件層面已經(jīng)轉(zhuǎn)換為在Linux下的網(wǎng)絡(luò)編程、進程間通信以及驅(qū)動程序的編寫等問截在這一章里我們就來介紹TC
82、P/IP協(xié)議,系統(tǒng)的軟件框架以及在Linux下的網(wǎng)絡(luò)編程等內(nèi)容。</p><p> 3.1 TCP/1P協(xié)議</p><p> 3.1.1 TCP/IP協(xié)議的結(jié)構(gòu)</p><p> 根據(jù)國際標準化組織ISO所定義的OSI參考模型分為7層而傳輸控制協(xié)議/互連網(wǎng)協(xié)議TCP/IP是一個使用非常普遍的網(wǎng)絡(luò)互連標準協(xié)議,網(wǎng)絡(luò)分為4層,分別為網(wǎng)絡(luò)接口層(包括物理層(P
83、hysical Layer)和數(shù)據(jù)鏈路層(Data Link Layer))、網(wǎng)絡(luò)層(Network Layer)、傳輸層(Transport Layer),與應(yīng)用層(Application Layer)[4]。如圖3.1。</p><p> 應(yīng)用層是應(yīng)用程序進入網(wǎng)絡(luò)的通道,是應(yīng)用程序間溝通的層。該層為網(wǎng)絡(luò)應(yīng)用程序提供了兩個接口:Socket和Net BIOS。傳輸層提供節(jié)點問的數(shù)據(jù)傳送服務(wù),負責傳送數(shù)據(jù),并且
84、確定數(shù)據(jù)已被送選并接收。傳輸協(xié)議在計算機之間提供通信會話。數(shù)據(jù)投遞要求的方法決定了傳輸協(xié)議。網(wǎng)絡(luò)層負責提供基本的數(shù)據(jù)封包傳送功能,根據(jù)internet協(xié)議將數(shù)據(jù)包封裝成Internet數(shù)據(jù)包并運行必要的路由算法,讓每一塊數(shù)據(jù)包都能夠到達目的主機(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(口)。網(wǎng)絡(luò)接口層(包括物理層和數(shù)據(jù)鏈路層):對實際的網(wǎng)絡(luò)媒體的管理,定義如何使用實際網(wǎng)絡(luò)(如以太網(wǎng))來傳送數(shù)據(jù)。</p><p>
85、 圖3.1 OSI的7層結(jié)構(gòu)與TCP/IP四層結(jié)構(gòu)之比較</p><p> 3.1.2 TCP/IP協(xié)議族及其實現(xiàn)機制</p><p> 雖然TCP/IP名稱其包含了兩個協(xié)議,但實際上,TCP/IP是一個龐大的協(xié)議族,它包括了各個層次上的眾多協(xié)議[5],例如:</p><p> ●ARP,用于獲得同一物理網(wǎng)絡(luò)中的硬件主機地址。</p><
86、p> ●MPLS,多協(xié)議標簽協(xié)議,是很有發(fā)展的下一代網(wǎng)絡(luò)協(xié)議。</p><p> ●IP,負責在主機和網(wǎng)絡(luò)之間尋址和路由數(shù)據(jù)包。</p><p> ●ICMP,用于發(fā)送報告有關(guān)數(shù)據(jù)包的傳送錯誤的協(xié)議。</p><p> ●IGMP:被IP主機用來向本地多路廣播路由器報告主機組成員的協(xié)議。</p><p> ●TCP:為應(yīng)用程序
87、提供可靠的通信連接。適合于一次傳輸大批數(shù)據(jù)的情況。并適用于要求得到響應(yīng)的應(yīng)用程序。</p><p> ●UDP,提供了無連接通信,且不對傳送包進行可靠的保證。適合于一次傳輸少量數(shù)據(jù),可靠性由應(yīng)用層來負責。</p><p> 傳輸層與網(wǎng)絡(luò)層在功能上的最大區(qū)別是前者提供進程通信能力、而后者則不能。在進程通信的意義上,網(wǎng)絡(luò)通信的雖終地址不僅僅是主機地址,還包括可以描述進程的某種標識符。為此,
88、TCP/UDP提出了協(xié)議端口(Protocol Port)的概念,用于標識通信的進程。例如,Web服務(wù)器進程通常使用端口80,在/etc/services文件中有這些注冊了的端口地址。</p><p> 對于TCP傳輸,傳輸節(jié)點間先連接,然后通過該連接傳輸耐}好序的報文,以保證傳輸?shù)恼_性。IP層中的代碼用于實現(xiàn)網(wǎng)際協(xié)議,這些代碼將IP頭增加到傳輸數(shù)據(jù)中,同時也把收到的報文正確地轉(zhuǎn)送到TCP層或UDP層。TCP
89、是一個面向連接協(xié)議,而UDP則是一個非面向連接協(xié)議,當一個UDP報文發(fā)送出去后,Linux并不知道也不去擔心他是否成功地到達了目的主機。IP層之下,是支持所有Linux阿絡(luò)應(yīng)用的網(wǎng)絡(luò)設(shè)備層,例如點到點協(xié)議(Point to Point Protocol.PPP)和以太網(wǎng)層。網(wǎng)絡(luò)設(shè)備并非總代表物理設(shè)備,其中有一些(例如回送設(shè)備)則是純粹的軟件設(shè)備,網(wǎng)絡(luò)設(shè)備與標準的Linux設(shè)備不同,他們不是通過Mknod命令創(chuàng)建的,必須是底層軟件找到并進
90、行了初始化之后,這些設(shè)備才被創(chuàng)建并可用。因此只有當啟動了正確設(shè)置的以太網(wǎng)設(shè)備驅(qū)動程序的內(nèi)核后,才會有/dev/eth0文件。ARP協(xié)議位于IP層和支持地址解析的協(xié)議層之間。</p><p> 3.2 嵌入式網(wǎng)關(guān)系統(tǒng)設(shè)計的軟件框架</p><p> 嵌入式網(wǎng)關(guān)是軟件和硬件的具體結(jié)合,如何將硬件與軟件高度的結(jié)合起來是本設(shè)計的重點。本設(shè)計以串口為例,設(shè)嵌入式現(xiàn)場設(shè)備通過串口連入嵌入式網(wǎng)關(guān)。
91、在這種情況下嵌入式網(wǎng)關(guān)軟件平臺的搭建大體包括ARM-Linux操作系統(tǒng)內(nèi)核的裁剪和移植、Linux下的網(wǎng)絡(luò)編程以及對進程間通信的分析。網(wǎng)關(guān)的軟件設(shè)計框圖如圖3.2所示。</p><p> 圖3.2 軟件設(shè)計框圖</p><p> 3.3 Linux下的網(wǎng)絡(luò)編程</p><p> Linux下的網(wǎng)絡(luò)編程部分是整個系統(tǒng)軟件部分的重點。</p>&
92、lt;p> Linux的許多特性都非常有助于網(wǎng)絡(luò)程序設(shè)計。首先Linux擁有POSIX.1標準庫函數(shù),socket0,bind0、listen0這幾個庫函數(shù)可以非常方便地實現(xiàn)服務(wù)器,客戶機模型,其次Linux的進程管理也非常符合服務(wù)器的工作原理,在運行著Linux操作系統(tǒng)的計算機中,每一個進程都有一個創(chuàng)建它的父進程,而且它也能創(chuàng)建多個子進程。在服務(wù)器端我們可以用父進程去監(jiān)聽客戶機的連接請求,當有客戶機的連接請求時,父進程創(chuàng)建一個
93、子進程去建立連接線路并與客戶機通信,而它本身可繼續(xù)監(jiān)聽其它客戶機的連接請求,這樣就可避免當有一個客戶機與服務(wù)器建立連接后服務(wù)器就不能再與其它客戶機通信的問題。Linux的另一個特性是它秉承了UNIX設(shè)備無關(guān)性這一優(yōu)秀特征,即它通過文件描述符實現(xiàn)了統(tǒng)一的設(shè)備接口,磁盤、顯示終端、音頻設(shè)備、打印設(shè)備甚至網(wǎng)絡(luò)通信都使用統(tǒng)一的帕調(diào)用。</p><p> TCP/P協(xié)議被集成到Linux內(nèi)核中時,相當于在Linux系統(tǒng)引
94、入了一種新型的I/O操作。Linux用戶進程與網(wǎng)絡(luò)協(xié)議的交互作用比用戶進程與傳統(tǒng)的I/O設(shè)備相互作用復(fù)雜得多。首先,進行網(wǎng)絡(luò)操作的兩個進程在不同機器上,如何建立它們之間的聯(lián)系;其次,網(wǎng)絡(luò)協(xié)議存在多種,如何建立一種通用機制以支持多種協(xié)議:這些部是網(wǎng)絡(luò)應(yīng)用編程界面所要解決的問題。</p><p> 在Linux系統(tǒng)中,網(wǎng)絡(luò)應(yīng)用編程界面有兩類:BSD的套接字(socket)和System V的TLI。由于Sum公司采
95、用了支持TC/IP的UNIX BSD操作系統(tǒng),使TCP/IP的應(yīng)用有更大的發(fā)展,其網(wǎng)絡(luò)應(yīng)用編程界面——套接字(socket)在網(wǎng)絡(luò)軟件中被廣泛應(yīng)用,至今己成為開發(fā)網(wǎng)絡(luò)應(yīng)用軟件的強有力工具。</p><p> 在開始使用套接字編程之前,首先介紹進程間通信、客戶,服務(wù)器模式、SOCKET定義和SOCKET類型等概念。</p><p> 3.3.1 進程間通信</p><
96、p> 進程通信的概念最初來源于單機系統(tǒng).由于每個進程都在自己的地址范圍內(nèi)運行,為保證兩個相互通信的進程之間既互不干擾又協(xié)調(diào)一致工作,操作系統(tǒng)為進程通信提供了相應(yīng)設(shè)施,如UNJX BSD中的管道(pipe)、命名管道(named pipo)和軟中斷信號( signal),UNIX system V的消息(message)、共享存儲區(qū)(shared Memory)和信號量(semaphore)等,但都僅限于用在本機進程之間通信。兩間
97、進程通信要解決的是不同主機進程間的相互通信問題(可把同機進程通信看作是其中的特倒)。</p><p> 為此,首先要解決的是網(wǎng)間進程標識問題。同一主機上,不同進程可用進程號(process JD)唯一標識。但在網(wǎng)絡(luò)環(huán)境下,各主機獨立分配的進程號不能唯一標識該進程。例如,主機A賦于某進程號5,在B機中也可以存在5號進程,因此,“5號進程”這句話就沒有意義了。其次,操作系統(tǒng)支持的網(wǎng)絡(luò)協(xié)議眾多,不同協(xié)議的工作方式不同
98、,地址格式也不同。因此,網(wǎng)間進程通信還要解決多重協(xié)議的識別問題。為了解決上述問題,TCP/IP協(xié)議引入了下列幾個概念。</p><p><b> 1.端口</b></p><p> 網(wǎng)絡(luò)中可以被命名和尋址的通信端口,是操作系統(tǒng)可分配的一種資源。</p><p> 按照OSI七層協(xié)議傳輸層與網(wǎng)絡(luò)層在功能上的最大區(qū)別是傳輸層提供進程通信能力,
99、從這個意義上講,阿絡(luò)通信的最終地址就不僅僅是主機地址了,還包括可以描述進程的某種標識符。為此,TCP/IP協(xié)議提出了協(xié)議端口(protocol port,簡稱端口)的概念,用于標識通信的進程。</p><p> 端口是種抽象的軟件結(jié)構(gòu)(包括一些數(shù)據(jù)結(jié)構(gòu)和u緩沖區(qū))。應(yīng)用程序(即進程)通過系統(tǒng)調(diào)用與某端口建立連接(binding)后,傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)進程所接收,相應(yīng)進程發(fā)給傳輸層的數(shù)據(jù)都通過該端口輸
100、出。在TCP/IP協(xié)議的實現(xiàn)中,端口操作類似于一般的帕操作,進程獲取一個端口,相當于獲取本地唯一的I/O文件,可以用一般的讀寫原語訪問之。</p><p> 類似于文件描述符,每個端口都擁有一個叫端口號(port number)的整數(shù)型標識符,用于區(qū)別不同端口,由于TCP/IP傳輸層的兩個協(xié)議TCP和UDP是完全獨立的兩個軟件模塊,因此各自的端口號也相互獨立,如TCP有一個255號端口,UDP也可以有一個255
101、號端口,二者并不沖突。TCP/IP將端口號分為兩部分,少量的作為保留端口,以全局方式分配給服務(wù)進程。因此,每一個標準服務(wù)器都擁有一個全局公認的端口(即周知口,well-known port),即使在不同機器上,其端口號也相同。剩余的為自由端口,以本地方式進行分配。TCP和UDP均規(guī)定,小于256的端口號才能作保留端口。</p><p><b> 2.地址</b></p>&l
102、t;p> 網(wǎng)絡(luò)通信中通信的兩個進程分別在不同的機器上。在互連網(wǎng)絡(luò)中,兩臺機器可能位于不同的網(wǎng)絡(luò),這些網(wǎng)絡(luò)通過網(wǎng)絡(luò)互連設(shè)備(用關(guān),網(wǎng)橋,路由器等)連接。因此需要三級尋址:某一主機可與多個網(wǎng)絡(luò)相連,必須指定一特定網(wǎng)絡(luò)地址:網(wǎng)絡(luò)上每一臺主機應(yīng)有其唯一的地址:每一主機上的每一進程應(yīng)有在該主機上的唯一標識符。通常主機地址由阿絡(luò)ID和主機ID組成,在TCP/IP協(xié)議中用32位整數(shù)值表示;TCP和UDP均使用16位端口號標識用戶進程。<
103、/p><p><b> 3 全相關(guān)</b></p><p> 一個完整的網(wǎng)間進程通信需要由兩個進程組成,并且只能使用同一種高層協(xié)議[6]。也就是說,不可能通信的一端用TCP協(xié)議,而另端用UDP協(xié)議。因此一個完整的網(wǎng)間通信需要一個五元組來標識:(協(xié)議,本地地址·本地端口號,遠地地址,遠地端口號)這樣一個五元組,叫做個相關(guān)(association)。即兩個協(xié)議相
104、同的半相關(guān)才能組合成一個合適的相關(guān),或完全指定組成一個連接。</p><p> 3.3.2 客戶/服務(wù)器模型</p><p> 在TCP/IP網(wǎng)絡(luò)應(yīng)用中,通信的兩個進程叫相互作用的主要模式是客戶,服務(wù)器模式(Client/Server model),即客戶向服務(wù)器發(fā)出服務(wù)請求,服務(wù)器接收到請求后,提供相應(yīng)的服務(wù)??蛻?,服務(wù)器模式的建立基于以下兩點:首先,建立網(wǎng)絡(luò)的起因是網(wǎng)絡(luò)中軟硬件資
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于arm9嵌入式網(wǎng)關(guān)研究
- 基于ARM9的嵌入式網(wǎng)關(guān)的設(shè)計.pdf
- 基于ARM9的嵌入式家庭網(wǎng)關(guān).pdf
- 畢業(yè)設(shè)計----基于arm9嵌入式視頻播放的設(shè)計與實現(xiàn)
- 基于ARM9的嵌入式無線智能家庭網(wǎng)關(guān)的設(shè)計.pdf
- 基于arm9的嵌入式電子文檔
- arm9嵌入式系統(tǒng)課程設(shè)計
- 基于arm9的嵌入式車載導航終端設(shè)計
- 基于arm9的嵌入式數(shù)據(jù)采集系統(tǒng)設(shè)計
- 基于ARM9的嵌入式工控系統(tǒng)設(shè)計.pdf
- 基于arm9嵌入式視頻播放設(shè)計與實現(xiàn)
- 基于ARM9的嵌入式測量相機設(shè)計.pdf
- 基于ARM9的嵌入式實驗平臺研究.pdf
- 基于ARM9的嵌入式Linux開發(fā)研究.pdf
- 基于ARM嵌入式網(wǎng)關(guān)的設(shè)計.pdf
- 畢業(yè)論文—arm9嵌入式系統(tǒng)編程
- 基于arm9的嵌入式軟件實驗平臺構(gòu)建
- 基于ARM9的嵌入式系統(tǒng)的構(gòu)建研究.pdf
- 基于ARM9的嵌入式數(shù)據(jù)采集系統(tǒng)設(shè)計.pdf
- 基于arm9的μcos-ⅱ嵌入式系統(tǒng)移植
評論
0/150
提交評論