胥鵬論文-基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì)_圖文_第1頁(yè)
胥鵬論文-基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì)_圖文_第2頁(yè)
胥鵬論文-基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì)_圖文_第3頁(yè)
胥鵬論文-基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì)_圖文_第4頁(yè)
胥鵬論文-基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì)_圖文_第5頁(yè)
已閱讀5頁(yè),還剩41頁(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、西 南 科 技 大 學(xué)工程碩士專業(yè)學(xué)位論文題 目 基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì) 作者姓名 胥 鵬 所在學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 專業(yè)/領(lǐng)域 計(jì)算機(jī)技術(shù) 研究方向 嵌入式技術(shù) 學(xué)校導(dǎo)師 宋 暉 校外導(dǎo)師 張葛祥 論文完成日期 2011 年 11 月 4 日Classified index: TP391.41Southwest universityof the master degree of engineering thesisThe Design of Socket Communicationbased on ARM embedded systemCandidate: Xu P

2、engDepartment:School of Computer Science and TechnologySpeciality:Computer Application TechnologySupervisor 1: Song HuiSupervisor 2: Zhang Ge XiangDate: Nov. 4, 2011聲 明本人鄭重聲明:此處所提交的碩士學(xué)位論文基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì),是本人在西南科技大學(xué)攻讀碩士學(xué)位期間,在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作和取得的研究成果。據(jù)本人所知,除了文中特別加以標(biāo)注和致謝之處外,論文中不包含其他人已經(jīng)發(fā)表或撰寫過(guò)的研究成果,也不包含

3、為獲得西南科技大學(xué)或其他教育機(jī)構(gòu)的學(xué)位或證書而使用過(guò)的材料。與我一同工作的同志對(duì)本研究所做的任何貢獻(xiàn)均已在論文中作了明確的說(shuō)明并表示了謝意。本學(xué)位論文成果是本人在西南科技大學(xué)讀書期間在導(dǎo)師指導(dǎo)下取得的,論文成果歸西南科技大學(xué)所有,特此聲明。學(xué)位論文作者簽名: 日 期: 關(guān)于學(xué)位論文使用授權(quán)的說(shuō)明本人完全了解西南科技大學(xué)有關(guān)保留、使用學(xué)位論文的規(guī)定,即:學(xué)校有權(quán)保管、并向有關(guān)部門送交學(xué)位論文的原件與復(fù)印件;學(xué)??梢圆捎糜坝?、縮印或其它復(fù)制手段復(fù)制并保存學(xué)位論文;學(xué)校可允許學(xué)位論文被查閱或借閱;學(xué)??梢詫W(xué)術(shù)交流為目的,復(fù)制贈(zèng)送和交換學(xué)位論文;同意學(xué)??梢杂貌煌绞皆诓煌襟w上發(fā)表、傳播學(xué)位論文的全

4、部或部分內(nèi)容。(涉密的學(xué)位論文在解密后遵守此規(guī)定作者簽名: 導(dǎo)師簽名: ; 日 期: 日 期: ; 摘要嵌入式系統(tǒng)是計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)的綜合體,已經(jīng)廣泛應(yīng)用于科學(xué)研究、工程設(shè)計(jì)、國(guó)防軍事、自動(dòng)化控制等各個(gè)領(lǐng)域。隨著網(wǎng)絡(luò)通訊技術(shù)的迅猛發(fā)展,生產(chǎn)和生活中廣泛要求嵌入式系統(tǒng)終端能夠完成網(wǎng)絡(luò)通訊功能。論文就是以ARM7 TDMI為嵌入式開(kāi)發(fā)平臺(tái),開(kāi)發(fā)具有網(wǎng)絡(luò)通信功能的嵌入式終端。SOCKET是一個(gè)通信鏈的句柄,通過(guò)套接字向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求,用于TCP/IP協(xié)議的應(yīng)用程序之間的相互通信。論文選擇了ARM體系結(jié)構(gòu)的嵌入式LPC2200處理器,根據(jù)系統(tǒng)的需求,在綜合各種設(shè)計(jì)方案的基

5、礎(chǔ)上,選擇移植帶有TCP/IP協(xié)議的ucLinux嵌入式操作系統(tǒng)。裁剪和定制系統(tǒng)后,構(gòu)建相關(guān)的文件系統(tǒng)。在此基礎(chǔ)上,編寫應(yīng)用程序,調(diào)用系統(tǒng)的Socket通信函數(shù),實(shí)現(xiàn)服務(wù)器端和客戶端的通信。描述IP地址和端口,用于在兩個(gè)論文成功的實(shí)現(xiàn)了嵌入式設(shè)備的網(wǎng)絡(luò)接入功能,各個(gè)帶有網(wǎng)絡(luò)通訊功能的嵌入式終端可以相互通訊,擴(kuò)大了和提高了嵌入式設(shè)備的應(yīng)用范圍,對(duì)嵌入式系統(tǒng)的發(fā)展有較大的意義。關(guān)鍵詞:嵌入式系統(tǒng);ARM7TDMI;socket;TCP/IP AbstractThe embedded system is a complex system with the computer technology, s

6、emiconductor technology and electronic technology .It has been widely used in scientific research, engineering, national defense, automation and other fields. With the rapid development of network communication technology,our production and life requires the terminal to complete the network communic

7、ation function in a wide range of embedded systems. The Paper select the ARM7 TDMI for embedded development platform, develop the embedded network communication terminal.Socket is a communication chain handle, and sends network request or response to network requests. It is used to describe the IP a

8、ddress and port for both TCP / IP based protocol to communicate between applications,. The paper select LPC2200 embedded ARM as processor architecture, with the system need, design the integration based on transplantation with TCP / IP protocol ucLinux embedded operating system. The paper build rela

9、ted file system.after cutting and custom systems. On this basis, finished an application, and call the system function of Socket Communications, achieve server and client communication.The paper achieved the network access functions of the embedded device, the embedded with a network communication t

10、erminal can communicate with each other, and expand and improve the application range of embedded devices, and has a greater significance for embedded systems.Key words: Embedded Systems;ARM7TDMI;socket;TCP/IP目錄1 緒論 11.1 嵌入式系統(tǒng) 11.2 國(guó)內(nèi)外現(xiàn)狀和趨勢(shì) 21.3 選題必要性 31.4 選題的目的和意義 41.5 課題研究范圍及要達(dá)到的技術(shù)要求 52 需求分析 62.1

11、任務(wù)概述 62.2 系統(tǒng)的需求分析 6 系統(tǒng)的功能需求 6 系統(tǒng)的性能需求 62.3 系統(tǒng)設(shè)計(jì)思路 63 系統(tǒng)概要設(shè)計(jì) 93.1 系統(tǒng)設(shè)計(jì)的基本原則 93.2 系統(tǒng)設(shè)計(jì)方案分析 93.3 概要設(shè)計(jì) 11 開(kāi)發(fā)環(huán)境 11 ARM開(kāi)發(fā)環(huán)境的建立 12 建立程序運(yùn)行調(diào)試交叉編譯環(huán)境 153.4 模塊化的設(shè)計(jì)與分析 15 開(kāi)發(fā)板上完成的設(shè)計(jì) 15 PC機(jī)上完成的程序開(kāi)發(fā) 163.5 設(shè)計(jì)基本流程 164 系統(tǒng)詳細(xì)設(shè)計(jì) 194.1. UCLINUX的移植 19 uClinux嵌入式系統(tǒng)的下載 19 根文件系統(tǒng)的建立 19 應(yīng)用程序庫(kù) 204.2. 內(nèi)核編譯 20 uClinux的安裝 20 配置uCli

12、nux 21 構(gòu)建文件系統(tǒng) 234.3. PC機(jī)上的程序設(shè)計(jì) 26 嵌入式TCP /IP分析 26 嵌入式TCP/IP設(shè)計(jì) 274.4. 編程模型 28 TCP客戶端設(shè)計(jì) 28 TCP服務(wù)器端主要代碼分析 304.5. 程序下載到嵌入式硬件平臺(tái) 345 系統(tǒng)的實(shí)現(xiàn)與測(cè)試 375.1 測(cè)試環(huán)境和測(cè)試的條件 375.2 功能及數(shù)據(jù)測(cè)試 38 容錯(cuò)功能 38 連接成功的信息說(shuō)明 39 數(shù)據(jù)收發(fā)功能 395.3 測(cè)試的結(jié)果 41結(jié) 論 42參考文獻(xiàn) 43致 謝 451 緒論1.1 嵌入式系統(tǒng)目前,嵌入式系統(tǒng)的應(yīng)用越來(lái)越廣泛,我們?nèi)粘I钪芯痛嬖诖罅康那度胧较到y(tǒng)的產(chǎn)品:比如手機(jī)、MP3、收音機(jī)、電視機(jī)等

13、等,我們已經(jīng)離不開(kāi)嵌入式產(chǎn)品了。嵌入式產(chǎn)品是面向應(yīng)用的,應(yīng)用的需求推動(dòng)了嵌入式技術(shù)的發(fā)展。嵌入式系統(tǒng)的基本技術(shù)仍然是計(jì)算機(jī)技術(shù),包含軟件、硬件、操作系統(tǒng)等。嵌入式系統(tǒng)是可裁剪的,根據(jù)應(yīng)用的具體場(chǎng)合和需求,選擇相應(yīng)的模塊,把系統(tǒng)中不需要的部分去掉,這樣做的主要目的是節(jié)約資源,降低功耗。每一個(gè)嵌入式產(chǎn)品是不同的,使用不同的硬件和軟件,搭建自己的嵌入式操作系統(tǒng),但是核心技術(shù)都是一樣的。嵌入式系統(tǒng)主要有以下幾個(gè)特點(diǎn):(1)以需求為目標(biāo):嵌入式產(chǎn)品沒(méi)有統(tǒng)一的要求,在開(kāi)發(fā)過(guò)程中,它主要是解決用戶的需求問(wèn)題的。比如我們使用的手機(jī)產(chǎn)品,用戶有各種各樣的需求,有的看重的是移動(dòng)功能,有的看中的是娛樂(lè)功能,還有的看

14、中的是導(dǎo)航功能。那么在設(shè)計(jì)開(kāi)發(fā)過(guò)程中,就需要按照不同的需求搭建自己的嵌入式系統(tǒng)。這樣做的主要目的是節(jié)約資源,讓嵌入式芯片發(fā)揮更大的作用。(2)運(yùn)行高效,節(jié)約資源:嵌入式系統(tǒng)要求運(yùn)行速度快,具有很高的執(zhí)行效率?;贏RM7TDMI的嵌入式芯片,在指令設(shè)計(jì)上使用是精簡(jiǎn)指令集,執(zhí)行效率高;使用三級(jí)流水技術(shù),大大增強(qiáng)了嵌入式產(chǎn)品的性能1。(3)較小的體積和可靠性:嵌入式產(chǎn)品一般都要求體積較小,較小的體積,主要是可以滿足便攜功能。在可靠性方面,要求嵌入式系統(tǒng)的代碼執(zhí)行效率高,系統(tǒng)運(yùn)行穩(wěn)定可靠,也別是在工業(yè)控制領(lǐng)域。只有做到這一點(diǎn),嵌入式產(chǎn)品才會(huì)有更大的應(yīng)用空間和應(yīng)用市場(chǎng)。嵌入系統(tǒng)是一個(gè)片上系統(tǒng),應(yīng)用空間

15、巨大,在各個(gè)方面都可以應(yīng)用,比如工業(yè)控制領(lǐng)域、消費(fèi)電子、移動(dòng)通訊等,都得到了廣泛的使用。1.2 國(guó)內(nèi)外現(xiàn)狀和趨勢(shì)隨著信息化,智能化,網(wǎng)絡(luò)化的發(fā)展,嵌入式系統(tǒng)技術(shù)也將獲得廣闊的發(fā)展空間。信息時(shí)代,數(shù)字時(shí)代使得嵌入式產(chǎn)品獲得了巨大的發(fā)展契機(jī),為嵌入式市場(chǎng)展現(xiàn)了美好的前景,同時(shí)也對(duì)嵌入式生產(chǎn)廠商提出了新的挑戰(zhàn)。(1)嵌入式開(kāi)發(fā)是一項(xiàng)系統(tǒng)工程,因此要求嵌入式系統(tǒng)廠商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時(shí)還需要提供強(qiáng)大的硬件開(kāi)發(fā)工具和軟件包支持。目前很多廠商已經(jīng)充分考慮到這一點(diǎn),在主推系統(tǒng)的同時(shí),將開(kāi)發(fā)環(huán)境也作為重點(diǎn)推廣。比如三星在推廣Arm7,Arm9芯片的同時(shí)還提供開(kāi)發(fā)板和版及支持包(BSP,而Win

16、dowCE在主推系統(tǒng)時(shí)也提供Embedded VC+作為開(kāi)發(fā)工具,還有Vxworks的Tonado開(kāi)發(fā)環(huán)境,DeltaOS的Limda編譯環(huán)境等等都是這一趨勢(shì)的典型體現(xiàn)。當(dāng)然,這也是市場(chǎng)競(jìng)爭(zhēng)的結(jié)果。 (2)網(wǎng)絡(luò)化、信息化的要求隨著因特網(wǎng)技術(shù)的成熟、帶寬的提高日益提高,使得以往單一功能的設(shè)備如電話、手機(jī)、冰箱、微波爐等功能不再單一,結(jié)構(gòu)更加復(fù)雜。這就要求芯片設(shè)計(jì)廠商在芯片上集成更多的功能,為了滿足應(yīng)用功能的升級(jí),設(shè)計(jì)師們一方面采用更強(qiáng)大的嵌入式處理器如32位、64位RISC芯片或信號(hào)處理器DSP增強(qiáng)處理能力,同時(shí)增加功能接口,如USB,擴(kuò)展總線類型,如CAN BUS,加強(qiáng)對(duì)多媒體、圖形等的處理,

17、逐步實(shí)施片上系統(tǒng)(SOC的概念。軟件方面采用實(shí)時(shí)多任務(wù)編程技術(shù)和交叉開(kāi)發(fā)工具技術(shù)來(lái)控制功能復(fù)雜性,簡(jiǎn)化應(yīng)用程序設(shè)計(jì)、保障軟件質(zhì)量和縮短開(kāi)發(fā)周期2。(3)網(wǎng)絡(luò)互聯(lián)成為必然趨勢(shì)。未來(lái)的嵌入式設(shè)備為了適應(yīng)網(wǎng)絡(luò)發(fā)展的要求,必然要求硬件上提供各種網(wǎng)絡(luò)通信接口。傳統(tǒng)的單片機(jī)對(duì)于網(wǎng)絡(luò)支持不足,而新一代的嵌入式處理器已經(jīng)開(kāi)始內(nèi)嵌網(wǎng)絡(luò)接口,除了支持TCP/IP協(xié)議,還有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一種或者幾種,同時(shí)也需要提供相應(yīng)的通信組網(wǎng)協(xié)議軟件和物理層驅(qū)動(dòng)軟件。軟件方面系統(tǒng)系統(tǒng)內(nèi)核支持網(wǎng)絡(luò)模塊,甚至可以在設(shè)備上嵌入Web瀏覽器,真正實(shí)現(xiàn)隨時(shí)隨地用各種設(shè)備上網(wǎng)

18、3。 (4)精簡(jiǎn)系統(tǒng)內(nèi)核、算法,降低功耗和軟硬件成本。未來(lái)的嵌入式產(chǎn)品是軟硬件緊密結(jié)合的設(shè)備,為了減低功耗和成本,需要設(shè)計(jì)者盡量精簡(jiǎn)系統(tǒng)內(nèi)核,只保留和系統(tǒng)功能緊密相關(guān)的軟硬件,利用最低的資源實(shí)現(xiàn)最適當(dāng)?shù)墓δ埽@就要求設(shè)計(jì)者選用最佳的編程模型和不斷改進(jìn)算法,優(yōu)化編譯器性能。因此,既要軟件人員有豐富的硬件知識(shí),又需要發(fā)展先進(jìn)嵌入式軟件技術(shù),如Java、Web和WAP等。 (5)提供友好的多媒體人機(jī)界面嵌入式設(shè)備能與用戶親密接觸,最重要的因素就是它能提供非常友好的用戶界面。圖像界面,靈活的控制方式,使得人們感覺(jué)嵌入式設(shè)備就象是一個(gè)熟悉的老朋友。這方面的要求使得嵌入式軟件設(shè)計(jì)者要在圖形界面,多媒體技術(shù)

19、上痛下苦功。手寫文字輸入、語(yǔ)音撥號(hào)上網(wǎng)、收發(fā)電子郵件以及彩色圖形、圖像都會(huì)使使用者獲得自由的感受。目前一些先進(jìn)的PDA在顯示屏幕上已實(shí)現(xiàn)漢字寫入、短消息語(yǔ)音發(fā)布,但一般的嵌入式設(shè)備距離這個(gè)要求還有很長(zhǎng)的路要走。1.3 選題必要性當(dāng)前,計(jì)算機(jī)技術(shù)和微電子技術(shù)發(fā)展迅猛,特別是納米技術(shù)取得了重大進(jìn)展,嵌入式芯片的設(shè)計(jì)和開(kāi)發(fā)也越來(lái)越迅速。對(duì)嵌入式芯片的運(yùn)行速度要求越來(lái)越快,存貯器也越來(lái)越大,這大大推進(jìn)了嵌入式技術(shù)的發(fā)展,嵌入式系統(tǒng)在一定的程度上推進(jìn)了現(xiàn)代生活的提高和改善。在網(wǎng)絡(luò)通訊方面,嵌入式系統(tǒng)的發(fā)展增強(qiáng)了網(wǎng)絡(luò)的智能化與靈活性,從而實(shí)現(xiàn)各種通信系統(tǒng)之間的互聯(lián)互通?;ヂ?lián)網(wǎng)是我們?nèi)粘^k公生活中最常用的網(wǎng)

20、絡(luò),很方便的把我們相互連接。目前,互聯(lián)網(wǎng)已經(jīng)開(kāi)始普及,包括廣大的農(nóng)村,網(wǎng)絡(luò)成為了我們生活的一部分。由于嵌入式系統(tǒng)低功耗、面向應(yīng)用等特點(diǎn),在網(wǎng)絡(luò)通訊方面得到了廣泛的應(yīng)用。我們使用的移動(dòng)設(shè)備,基本上都是基于嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的。 嵌入式系統(tǒng)是指將應(yīng)用程序、操作系統(tǒng)與計(jì)算機(jī)硬件集成在一起的系統(tǒng)。它以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),而且軟硬件可以裁剪,因而能滿足應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積和功耗的嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)與通信、網(wǎng)絡(luò)技術(shù)的結(jié)合可以極大地增強(qiáng)網(wǎng)絡(luò)的智能化與靈活性,拓展通信功能,從而實(shí)現(xiàn)各種通信系統(tǒng)之間的互聯(lián)互通4。1.4 選題的目的和意義傳統(tǒng)的數(shù)據(jù)傳輸和通訊,需要鋪設(shè)專

21、用的介質(zhì)和電纜。通過(guò)前端的傳感器采集數(shù)據(jù)信息,并通過(guò)相關(guān)的通訊協(xié)議進(jìn)行數(shù)據(jù)傳輸。比如我們經(jīng)常使用的CAN,485總線等。這些總線和協(xié)議需要自己定制,硬件設(shè)備需要自己設(shè)計(jì)開(kāi)發(fā),面向的對(duì)象不同,解決的設(shè)計(jì)問(wèn)題不同,主要面向?qū)I(yè)設(shè)計(jì)開(kāi)發(fā),由于技術(shù)上的門檻,普通人員很難理解和使用。以太網(wǎng)是使用最為廣泛的網(wǎng)絡(luò),由于標(biāo)準(zhǔn)的統(tǒng)一,硬件的支持和配套,普通人員也可以使用,是信息交流和流通的重要渠道。因此,基于嵌入式系統(tǒng),設(shè)計(jì)開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用產(chǎn)品具有重要的意思。(1)嵌入式網(wǎng)絡(luò)為終端設(shè)備網(wǎng)絡(luò)化提供了保障如果將我們所有的終端設(shè)備進(jìn)行網(wǎng)絡(luò)連接,可以方便有效地進(jìn)行信息溝通和數(shù)據(jù)共享,同時(shí)也為管理者提供了一種有效的管理方式。

22、移動(dòng)辦公設(shè)備很方便的將我們連接在一起,無(wú)論何時(shí)何地,增強(qiáng)了我們的相互溝通。(2)嵌入式網(wǎng)絡(luò)技術(shù)為工業(yè)控制領(lǐng)域設(shè)備的發(fā)展提供動(dòng)力基于嵌入式系統(tǒng)的網(wǎng)絡(luò)技術(shù),隨著嵌入式技術(shù)的迅猛發(fā)展,也得到了廣泛的應(yīng)用。我們現(xiàn)在使用的手機(jī)設(shè)備,無(wú)論我們?cè)谔煅暮=?,都可以隨時(shí)盡心交流和溝通;家庭經(jīng)常使用的網(wǎng)絡(luò)電視,可以方便的下載和點(diǎn)播節(jié)目;網(wǎng)絡(luò)課堂更是把我們組織在一起學(xué)習(xí),提高我們的能力好和水平;網(wǎng)絡(luò)會(huì)議可以讓我們處在不同地域的人組織在一起討論和解決問(wèn)題,節(jié)約費(fèi)用。當(dāng)然,還有經(jīng)常使用的B2B網(wǎng)上購(gòu)物、遠(yuǎn)程會(huì)診等等。真不敢相信,離開(kāi)了網(wǎng)絡(luò),我們的生活會(huì)是怎么樣。在工業(yè)控制方面,嵌入式網(wǎng)絡(luò)可以有效可靠地進(jìn)行遠(yuǎn)程控制和操作

23、,通過(guò)網(wǎng)絡(luò)通訊模塊進(jìn)行協(xié)議的轉(zhuǎn)換,各個(gè)控制對(duì)象可以獨(dú)立為嵌入式網(wǎng)絡(luò)的一個(gè)終端,這種控制可以做到有效、可靠和實(shí)時(shí)。(3)嵌入式網(wǎng)絡(luò)為家庭生活的智能化提供了技術(shù)支持現(xiàn)在的家庭都已經(jīng)離不開(kāi)網(wǎng)絡(luò)。通過(guò)網(wǎng)絡(luò),可以進(jìn)行遠(yuǎn)程的家庭監(jiān)控,我們經(jīng)常使用的家用電器。我們可以把家庭的所有設(shè)備聯(lián)網(wǎng),組成一個(gè)家庭智能中心,可以很方便的通過(guò)網(wǎng)絡(luò)進(jìn)行控制。這種網(wǎng)絡(luò)的設(shè)計(jì)和開(kāi)發(fā)基本都是基于嵌入式技術(shù)的?;谇度胧较到y(tǒng)的網(wǎng)絡(luò)通訊,一般具有以下功能:(1)嵌入式網(wǎng)絡(luò)以Internet網(wǎng)絡(luò)為基礎(chǔ),通過(guò)協(xié)議的轉(zhuǎn)換,把相關(guān)的信息傳輸?shù)侥康牡?,大大?jié)約了資源;(2)TCP/I P協(xié)議是一個(gè)標(biāo)準(zhǔn)公開(kāi)的協(xié)議,不做任何改變,我們就可以利用We

24、b瀏覽器讀取信息,非常的方便快捷;(3)客戶機(jī)根據(jù)信息的需求狀況,獲得相關(guān)的信息,并且能夠自由的處理,并能夠顯示處理結(jié)果;(4)信息的顯示有多種方式,通過(guò)計(jì)算機(jī)技術(shù)處理成文字、圖象、表格等形式,并且還能夠?qū)崟r(shí)的自動(dòng)更新,在設(shè)備的終端上最好相關(guān)記錄,更加方便有效的進(jìn)行控制和操作5。1.5 課題研究范圍及要達(dá)到的技術(shù)要求課題是基于ARM 的嵌入式socket 通信設(shè)計(jì),研究的范圍包含:ARM 上uClinux操作系統(tǒng)的移植、Linux 下socket通信的建立、交叉編譯環(huán)境下嵌入式socket通信的實(shí)現(xiàn)等。課題設(shè)計(jì)后應(yīng)該實(shí)現(xiàn)在特定的ARM7平臺(tái)上運(yùn)行嵌入式uClinux操作系統(tǒng),順利的驅(qū)動(dòng)網(wǎng)絡(luò)設(shè)備

25、運(yùn)行,完成在ARM7開(kāi)發(fā)板和PC機(jī)的通信,方便的進(jìn)行數(shù)據(jù)收發(fā)。將嵌入式系統(tǒng)與網(wǎng)絡(luò)結(jié)合起來(lái),主要的困難在于網(wǎng)絡(luò)上的各種通訊協(xié)議對(duì)于計(jì)算機(jī)的存儲(chǔ)器,運(yùn)算速度等的要求比較高,而嵌入式系統(tǒng)中除部分32位微處理器外,大量存在的是8位和16位的微處理器,如果要支持TCP/IP等Internet協(xié)議將占用大量系統(tǒng)資源,或根本不可能實(shí)現(xiàn)6。因此,設(shè)計(jì)中要解決以下問(wèn)題:(1)如果要移植操作系統(tǒng),選擇什么操作系統(tǒng),才最適合;(2)如何使開(kāi)發(fā)板驅(qū)動(dòng)網(wǎng)絡(luò)芯片工作;(3)如何建立交叉的編譯環(huán)境;(4)如何使ARM芯片上具有TCP/IP協(xié)議的網(wǎng)絡(luò)環(huán)境;(5)如何用Socket來(lái)建立網(wǎng)絡(luò)的通信。2 需求分析2.1 任務(wù)概述

26、論文的主要工作,是選擇適當(dāng)?shù)那度胧介_(kāi)發(fā)平臺(tái)和文件系統(tǒng),建立交叉的編譯環(huán)境,構(gòu)建TCP/IP網(wǎng)絡(luò)體系,實(shí)現(xiàn)客戶端和服務(wù)器端的socket通信。2.2 系統(tǒng)的需求分析系統(tǒng)的功能需求嵌入式系統(tǒng)設(shè)備能快速的接入網(wǎng)絡(luò),實(shí)現(xiàn)網(wǎng)絡(luò)資源的共享和網(wǎng)絡(luò)設(shè)備的通信,首先應(yīng)該保證嵌入式設(shè)備具有完整的網(wǎng)絡(luò)協(xié)議體系結(jié)構(gòu),滿足網(wǎng)絡(luò)設(shè)備的技術(shù)規(guī)范,能夠正確控制嵌入式平臺(tái)上的網(wǎng)絡(luò)芯片,可以完整的接收和發(fā)送數(shù)據(jù)。嵌入式設(shè)備還具有網(wǎng)絡(luò)設(shè)備標(biāo)識(shí),也就是嵌入式設(shè)備有自己唯一的IP地址,只有這樣,才能完成Internet上網(wǎng)絡(luò)設(shè)備之間的通信。系統(tǒng)的性能需求在系統(tǒng)的設(shè)計(jì)上,要求系統(tǒng)具有以下性能:(1)實(shí)時(shí)性:嵌入式設(shè)備具有足夠的反映速度,

27、能快速的接收來(lái)自網(wǎng)絡(luò)設(shè)備數(shù)據(jù),并作出快速的反應(yīng);(2)穩(wěn)定性:系統(tǒng)在異常情況下不發(fā)生死循環(huán),設(shè)備系統(tǒng)不會(huì)崩潰和癱瘓;(3)可擴(kuò)充性:系統(tǒng)可以根據(jù)需要進(jìn)行擴(kuò)充,能夠新的通信技術(shù)或新的通訊協(xié)議方案(程序),可以在不改動(dòng)系統(tǒng)大部分硬件的情況下,其實(shí)現(xiàn)新的功能;(4)易維護(hù)性:在設(shè)備發(fā)生數(shù)據(jù)災(zāi)難的時(shí)候使系統(tǒng)及時(shí)的恢復(fù),達(dá)到以前的狀態(tài);(5)持久性:嵌入式系統(tǒng)工作的特殊性,以及各種特定工作環(huán)境的具體要求,系統(tǒng)必須能夠穩(wěn)定地長(zhǎng)時(shí)間工作,適應(yīng)各種不同的工作環(huán)境。2.3 系統(tǒng)設(shè)計(jì)思路系統(tǒng)的設(shè)計(jì)開(kāi)發(fā),宿主機(jī)采用的是任意發(fā)行版本的 Linux系統(tǒng),但程序是采用標(biāo)準(zhǔn)C語(yǔ)言來(lái)編寫,可以在不同的Linux系統(tǒng)中實(shí)現(xiàn)通信

28、功能??紤]到在ARM開(kāi)發(fā)板上需要運(yùn)行特定格式的程序文件,所以設(shè)計(jì)采用Linux下的gcc開(kāi)發(fā)工具,使用arm-elf-tools交叉編譯工具生成在ARM開(kāi)發(fā)板上的可以直接運(yùn)行的程序。由于嵌入式開(kāi)發(fā)要結(jié)合軟件和硬件的詳細(xì)情況來(lái)操作,所以系統(tǒng)的開(kāi)發(fā)應(yīng)該具有以下的幾種操作接口,第一用戶可以通過(guò)以RJ45的以太網(wǎng)對(duì)開(kāi)發(fā)板和系統(tǒng)操作,其次用戶可以采用串口的方式對(duì)開(kāi)發(fā)板的功能和運(yùn)行效果進(jìn)行操作,最后操作人員還可以通過(guò)開(kāi)發(fā)板特有的JTAG對(duì)開(kāi)發(fā)板進(jìn)行操作。系統(tǒng)分為宿主部分和開(kāi)發(fā)板部分,每個(gè)部分獨(dú)立成塊,用網(wǎng)絡(luò)相互連接,宿主機(jī)上運(yùn)行的Linux操作系統(tǒng),開(kāi)發(fā)板上運(yùn)行的是uClinux嵌入式操作系統(tǒng)7。宿主機(jī)和

29、開(kāi)發(fā)板通過(guò)Switch交換機(jī)進(jìn)行網(wǎng)絡(luò)通信,宿主機(jī)一方作為服務(wù)器端,開(kāi)發(fā)板作為客戶端,系統(tǒng)的原理如下圖2.1所示。圖2.1系統(tǒng)設(shè)計(jì)環(huán)境關(guān)系圖系統(tǒng)的設(shè)計(jì)目標(biāo)是完成宿主機(jī)和開(kāi)發(fā)板的網(wǎng)絡(luò)通信實(shí)現(xiàn)。要完成通信,就要完成系統(tǒng)底層硬件的驅(qū)動(dòng)等一系列的工作,首先啟動(dòng)宿主機(jī)和客戶機(jī)的操作系統(tǒng)Linux和uClinux,然后每個(gè)模塊加載網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序,最后通過(guò)TCP/IP協(xié)議建立雙方的通信鏈路,完成Socket通信,詳細(xì)情況如圖2.2所示8。圖2.2系統(tǒng)的原理示意圖3 系統(tǒng)概要設(shè)計(jì)3.1 系統(tǒng)設(shè)計(jì)的基本原則無(wú)論采用什么設(shè)計(jì)開(kāi)發(fā)方式,最終的目的是驅(qū)動(dòng)開(kāi)發(fā)板完成網(wǎng)絡(luò)的通信。設(shè)計(jì)過(guò)程中,首先開(kāi)發(fā)板的網(wǎng)絡(luò)芯片能夠正常工

30、作,其次要完成通信就必須要有完善的通信的協(xié)議,根據(jù)系統(tǒng)的要求選擇合適的協(xié)議9。目前,Internet上用應(yīng)用最多相對(duì)開(kāi)放的協(xié)議就是TCP/IP協(xié)議,它能使不同網(wǎng)絡(luò)設(shè)備以及不同類型的網(wǎng)絡(luò)按照標(biāo)準(zhǔn)協(xié)議互相連接,輕松的實(shí)現(xiàn)上層的通信。在此基礎(chǔ)上,設(shè)計(jì)上層通信模塊,通過(guò)調(diào)用socket函數(shù)來(lái)實(shí)現(xiàn)各種功能,包括數(shù)據(jù)的接收和發(fā)送,數(shù)據(jù)的校驗(yàn)等等10。3.2 系統(tǒng)設(shè)計(jì)方案分析 采用TCP/IP協(xié)議已經(jīng)確定了,如何在開(kāi)發(fā)板上移植入TCP/IP協(xié)議成了一個(gè)最主要的解決問(wèn)題,開(kāi)發(fā)板上雖然有網(wǎng)絡(luò)通信芯片和足夠的存儲(chǔ)空間,但沒(méi)有任何的網(wǎng)絡(luò)通信協(xié)議,有以下幾種方案可以實(shí)現(xiàn)系統(tǒng)的要求,具體的設(shè)計(jì)方案是:(1)方案1無(wú)操作

31、系統(tǒng),自己構(gòu)建TCP/IP協(xié)議族,編寫上層socket通信模塊完成程序的通信。(2)方案2包含操作系統(tǒng),其中又分為帶 TCP/IP協(xié)議族的操作系統(tǒng)和不帶TCP/IP協(xié)議族的操作系統(tǒng)11。帶TCP/IP協(xié)議族的Linux或者uClinux操作系統(tǒng),不需要自己構(gòu)建TCP/IP協(xié)議族可以直接調(diào)用底層的函數(shù),驅(qū)動(dòng)上層模塊完成socket通信12。不帶TCP/IP協(xié)議族的uCOS-II操作系統(tǒng),自己構(gòu)建TCP/IP協(xié)議族,編寫上層socket通信模塊完成程序的通信。在選擇什么樣的操作系統(tǒng)這個(gè)問(wèn)題上,主要?dú)w結(jié)于嵌入式系統(tǒng)的性能,主要有以下幾點(diǎn)13-15:(1)微處理器是否支持微處理器是否支持是選用操作系統(tǒng)

32、的核心因素。從應(yīng)用的角度來(lái)說(shuō),選用一種穩(wěn)定可靠的微處理器是設(shè)計(jì)成功的關(guān)鍵。(2)資源占用情況的多少嵌入式系統(tǒng)的資源是有限的,資源占用是另外一個(gè)重要的指標(biāo)。通常所說(shuō)的資源主要是嵌入式芯片的內(nèi)存和Flash。處于成本和體積等各方面的考慮,要求操作系統(tǒng)盡可能節(jié)約資源。(3)應(yīng)用軟件資源嵌入式操作系統(tǒng)在應(yīng)用過(guò)程中需要多方軟件支持,包括協(xié)議棧、設(shè)備驅(qū)動(dòng)以及一些應(yīng)用程序,在設(shè)計(jì)過(guò)程中,可以方便的應(yīng)用這些軟件,或者只需要很少的改動(dòng)就可以適用于新的平臺(tái)。(4)操作系統(tǒng)性能操作系統(tǒng)的可靠性通常無(wú)法在用戶程序或者函數(shù)庫(kù)層次得到增強(qiáng)。操作系統(tǒng)的穩(wěn)定性在操作系統(tǒng)設(shè)計(jì)之初,就已經(jīng)由系統(tǒng)的設(shè)計(jì)構(gòu)想和編碼質(zhì)量決定了。嵌入式

33、系統(tǒng)可靠性要求要比一般桌面系統(tǒng)要高,設(shè)計(jì)中有可能無(wú)法確定出現(xiàn)的問(wèn)題是程序的問(wèn)題還是操作系統(tǒng)的性能問(wèn)題。(5)執(zhí)行效率執(zhí)行效率是另一個(gè)評(píng)價(jià)基準(zhǔn)。操作系統(tǒng)的執(zhí)行效率可能直接影響操作系統(tǒng)的處理能力,還有一個(gè)重要的指標(biāo)是這個(gè)操作系統(tǒng)的實(shí)時(shí)性到底如何。操作系統(tǒng)選擇不正確,有可能導(dǎo)致系統(tǒng)根本無(wú)法運(yùn)行。通過(guò)對(duì)uClinux和Linux的詳細(xì)比較,因?yàn)閡Clinux和Linux具有同樣的內(nèi)核,所以在處理器的支持,軟件資源豐富程度,操作系統(tǒng)的功能,操作系統(tǒng)執(zhí)行性能和可靠性上基本上一致,Linux 相對(duì)于uClinux在嵌入式應(yīng)用相對(duì)不足,主要體現(xiàn)在以下幾點(diǎn)16:(1)空間占用大Linux操作系統(tǒng)功能完善,但是占

34、用空間大。通常的Linux系統(tǒng),都需要占用上百兆的空間。嵌入式Linux也要占用1M空間,運(yùn)行時(shí)更需要超過(guò)4M的內(nèi)存空間,因此對(duì)于存貯空間不足的嵌入式系統(tǒng),資源的要求沒(méi)有辦法滿足。 uClinux系統(tǒng)一般采用Romfs文件系統(tǒng),這種文件系統(tǒng)相對(duì)簡(jiǎn)單、占用空間較少。主要是由于內(nèi)核支持Romfs文件系統(tǒng)比支持ext2文件系統(tǒng)需要更少的代碼,還有就是romfs文件系統(tǒng)相對(duì)簡(jiǎn)單,在建立文件系統(tǒng)超級(jí)塊需要更少的存儲(chǔ)空間。 (2)操作系統(tǒng)的實(shí)時(shí)性 實(shí)時(shí)系統(tǒng)是指一個(gè)系統(tǒng)在執(zhí)行時(shí)能夠?qū)ν獠?、異步發(fā)生的事務(wù),于一定的時(shí)間采取響應(yīng) 17,當(dāng)一個(gè)優(yōu)先等級(jí)高的進(jìn)程能夠獲得系統(tǒng)立即的、沒(méi)有延遲的服務(wù)而不需要等候任何進(jìn)程

35、,而且在它奪取到CPU的使用權(quán)后,它可以一直執(zhí)行到工作結(jié)束或是有更高等級(jí)的進(jìn)程出現(xiàn)為止。因此,高效的中斷處理能力與高速的輸入輸出能力是實(shí)時(shí)系統(tǒng)所必備的基本特征。Linux和uClinux本身并不支持實(shí)時(shí)性應(yīng)用,但是設(shè)計(jì)時(shí)候,對(duì)ucLinux可以進(jìn)行實(shí)時(shí)性的修改,提供基于內(nèi)核空間和用戶空間的硬實(shí)時(shí)和軟實(shí)時(shí)的系統(tǒng)調(diào)用。(3)內(nèi)存管理Linux系統(tǒng)帶有MMU內(nèi)存管理單元,具有相應(yīng)的內(nèi)存管理機(jī)制。在ARM7TDMI嵌入式處理器沒(méi)有MMU模塊。而uClinux是專門針對(duì)沒(méi)有MMU的處理器而設(shè)計(jì)的。uClinux管理內(nèi)存的方法是采用實(shí)存儲(chǔ)器管理,通過(guò)地址總線對(duì)物理內(nèi)存進(jìn)行直接訪問(wèn),程序中訪問(wèn)的地址都是實(shí)際

36、的物理地址,所有的進(jìn)程都在一個(gè)運(yùn)行空間中運(yùn)行。系統(tǒng)在啟動(dòng)時(shí)把實(shí)際存儲(chǔ)器進(jìn)行分頁(yè),在加載應(yīng)用程序時(shí)程序分頁(yè)加載18。 缺少M(fèi)MU單元,對(duì)于系統(tǒng)及應(yīng)用程序開(kāi)發(fā)帶來(lái)一定的限制,但對(duì)于成本和體積敏感的嵌入式設(shè)備,由于應(yīng)用環(huán)境和應(yīng)用需求并不要求復(fù)雜和相對(duì)昂貴的硬件體系,內(nèi)存的分配和管理完全可以由開(kāi)發(fā)人員解決。通過(guò)更深入的分析,uClinux比 Linux有更多的優(yōu)勢(shì),本次設(shè)計(jì)采用的是SmartARM開(kāi)發(fā)平臺(tái),主要的處理器為ARM7TDMI,所以在應(yīng)用于嵌入式設(shè)備的時(shí)候,有一些不合適的因素(主要集中在資源消耗太大以及內(nèi)存管理方面,所以最終選用了uClinux作為嵌入式操作系統(tǒng)進(jìn)行應(yīng)用程序的開(kāi)發(fā)。3.3 概

37、要設(shè)計(jì)開(kāi)發(fā)環(huán)境課題最終選擇帶TCP/IP協(xié)議族的uClinux操作系統(tǒng)來(lái)完成項(xiàng)目的設(shè)計(jì),所以要針對(duì)uClinux上程序的開(kāi)發(fā)配置特定的PC機(jī)環(huán)境。嵌入式系統(tǒng)主要是面向應(yīng)用的,是一個(gè)片上系統(tǒng),因此它的體積是很小的,包括它的RAM和ROM都是有限的,這就決定了嵌入式系統(tǒng)的調(diào)試不能直接在嵌入式系統(tǒng)上調(diào)試,而要采取一種交叉編譯環(huán)境的方式,也就是“目標(biāo)機(jī)和宿主機(jī)”交叉編譯的方式,如圖4.1所示19。圖3.1 uClinux的交叉編譯環(huán)境目標(biāo)機(jī)主要用于運(yùn)行操作系統(tǒng)和系統(tǒng)應(yīng)用軟件,而操作系統(tǒng)的內(nèi)核編譯、應(yīng)用程序的開(kāi)發(fā)和調(diào)試則需要通過(guò)宿主PC機(jī)來(lái)完成。雙方之間通過(guò)串口進(jìn)行通訊。目標(biāo)機(jī)運(yùn)行uClinux系統(tǒng),并

38、在系統(tǒng)上運(yùn)行嵌入式應(yīng)用軟件。運(yùn)行操作系統(tǒng)時(shí),首先要將定制的操作系統(tǒng)進(jìn)行編譯,這是一個(gè)繁瑣復(fù)雜的過(guò)程,編譯通過(guò)后,進(jìn)行應(yīng)用程序的設(shè)計(jì)開(kāi)發(fā)。上面已經(jīng)提到,嵌入式系統(tǒng)由于資源有限,這些工作的安裝調(diào)試需要在目標(biāo)機(jī)進(jìn)行,調(diào)試完成后下載到宿主機(jī)中,這也可能是一個(gè)多次重復(fù)反復(fù)進(jìn)行的工作。目標(biāo)機(jī)需要安裝LINUX系統(tǒng),為了在Windows下開(kāi)發(fā)嵌入式操作系統(tǒng)應(yīng)用程序,可以在Windows環(huán)境下裝上Cygwin軟件。建立PC上的開(kāi)發(fā)環(huán)境應(yīng)在宿主機(jī)上安裝標(biāo)準(zhǔn)Linux操作系統(tǒng),推薦使用RedHat Linux,一定要確保計(jì)算機(jī)的網(wǎng)卡驅(qū)動(dòng)、網(wǎng)絡(luò)通訊配置正常。 ARM開(kāi)發(fā)環(huán)境的建立1991年ARM公司成立于英國(guó)劍橋,

39、主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前,采用ARM技術(shù)知識(shí)產(chǎn)權(quán)(IP)核的微處理器,即人們通常所說(shuō)的ARM微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無(wú)線系統(tǒng)等各類產(chǎn)品市場(chǎng),基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75以上的市場(chǎng)份額,ARM技術(shù)正在逐步滲入到人們生活的各個(gè)方面。ARM公司是專門從事基于RISC技術(shù)芯片設(shè)計(jì)開(kāi)發(fā)的公司,作為知識(shí)產(chǎn)權(quán)供應(yīng)商,本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓設(shè)計(jì)許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導(dǎo)體生產(chǎn)商從ARM公司購(gòu)買其設(shè)計(jì)的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成自己的ARM微處理器芯片進(jìn)入市場(chǎng)。

40、采用RISC架構(gòu)的ARM微處理器一般具有如下特點(diǎn):(1)體積小、低功耗、低成本、高性能;(2)支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;(3)大量使用寄存器,指令執(zhí)行速度更快;(4)大多數(shù)數(shù)據(jù)操作都在寄存器中完成;(5)尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;(6)指令長(zhǎng)度固定。ARM7TDMI具有32位ARM指令集和16位Thumb指令集。ARM指令集效率高,但是代碼密度高。Thumb指令集具有較高的代碼密度,卻仍然保持著ARM大多數(shù)性能上的優(yōu)勢(shì),它是ARM的子集。所有的ARM置零都是可以條件執(zhí)行的,而Thumb置零僅有一條指令具備條件執(zhí)行的功能。 A

41、RM和Thumb程序可以相互調(diào)用,相互之間狀態(tài)切換開(kāi)銷幾乎為零。尋址方式是根據(jù)指令中給出的地址碼字段來(lái)實(shí)現(xiàn)尋找真實(shí)操作數(shù)地址的方式。ARM處理器具有9種基本尋址方式:(1)寄存器尋址;(2)立即尋址;(3)寄存器移位尋址;(4)寄存器間接尋址;(5)基址尋址;  (6)多寄存器尋址;(7)堆棧尋址;(8)塊拷貝尋址;(9)相對(duì)尋址。設(shè)計(jì)采用SmartARM2200開(kāi)發(fā)板,使用NXP公司的LPC2210微處理器。LPC2210基于ARM7TDMI內(nèi)核,系統(tǒng)時(shí)鐘頻率達(dá)60 MHz,總線對(duì)外開(kāi)放,寬度可配置為81632位。同時(shí)還擴(kuò)展了RTL8019AS(10 Mbs以太網(wǎng)控制器。

42、圖3.2 SmartARM開(kāi)發(fā)板論文的設(shè)計(jì)以SmartARM進(jìn)行,如圖3.2所示。所以對(duì)開(kāi)發(fā)板上要做的操作是接上JTAG,串口,網(wǎng)絡(luò)線,并且BOOTSET 設(shè)置為outside,設(shè)置Bank0為FLASH,Bank1設(shè)置為RAM,接通應(yīng)用的模塊的跳線,然后把已經(jīng)編譯成功的系統(tǒng)內(nèi)核文件系統(tǒng)燒入到開(kāi)發(fā)板上,成功建立開(kāi)發(fā)環(huán)境后,并啟動(dòng)開(kāi)發(fā)板上的uClinux 操作系統(tǒng),如圖3.3所示:圖3.3 開(kāi)發(fā)板上成功啟動(dòng)uClinux建立程序運(yùn)行調(diào)試交叉編譯環(huán)境由于uClinux及它的相關(guān)開(kāi)發(fā)工具集大多都是來(lái)自自由軟件組織的開(kāi)放源代碼,這些軟件都是共享在網(wǎng)絡(luò)上的,因此,在建立開(kāi)發(fā)環(huán)境的時(shí)候,直接找到相關(guān)的網(wǎng)絡(luò)

43、地址進(jìn)行下載,接下來(lái)就可以建立交叉開(kāi)發(fā)環(huán)境。從網(wǎng)站http:上下載最新的arm-elf-gcc 工具,即腳本文件arm-elf-tools-20040427.sh,在宿主機(jī)上安裝該工具鏈,在該文件所在目錄下,鍵入一下指令:#ls-l arm-elf-tools-20040427.sh等待指令的執(zhí)行,完成后在路徑:/usr/local/bin/下有:gcc, arm-elf-gcc,binudls, genromfs,flthdr和elflflt等各種應(yīng)用工具。3.4 模塊化的設(shè)計(jì)與分析開(kāi)發(fā)板上完成的設(shè)計(jì)從項(xiàng)目的整體出發(fā),開(kāi)發(fā)板上應(yīng)完成的工作包括,移植uClinux到SmartARM2200開(kāi)發(fā)

44、板,移植過(guò)程中應(yīng)配置uClinux,其中包含大部分系統(tǒng)配置,如:Non-standard serial port suppor(非標(biāo)準(zhǔn)串口支持)、ftp(文件傳輸協(xié)議)、http(超文本傳輸協(xié)議)、telnet(遠(yuǎn)程登陸協(xié)議)、ping(網(wǎng)絡(luò)探測(cè)回應(yīng)工具)、 ifconfig(網(wǎng)絡(luò)配置模塊)、ls(文件目錄顯示模塊)、mount(設(shè)備掛載模塊)、cp(文件拷貝模塊),uClinux文件系統(tǒng)的劃分中還應(yīng)為用戶留出可以讀寫操作的區(qū)域,幫助用戶輕松的寫入程序和修改程序,最后開(kāi)發(fā)板上載入編譯好的網(wǎng)絡(luò)socket通信程序20。機(jī)上完成的程序開(kāi)發(fā)首先PC機(jī)上要安裝完整的Linux操作系統(tǒng),然后配置好交叉編

45、譯環(huán)境后,接下來(lái)就是是對(duì)程序的初步設(shè)計(jì),程序一共分為兩個(gè)大的部分:(1)TCP的客戶端程序設(shè)計(jì)TCP的客戶端可以輕松的訪問(wèn)服務(wù)器端,向它發(fā)送連接請(qǐng)求,并且客戶端也可以接收到來(lái)自服務(wù)器端發(fā)送回來(lái)的數(shù)據(jù)。TCP的客戶端可以顯示當(dāng)前自己的工作狀態(tài),如連接的建立,啟動(dòng)的成功和數(shù)據(jù)包通信的個(gè)數(shù)等21。(2)TCP 的服務(wù)器端程序設(shè)計(jì)TCP 的服務(wù)器端可以輕松的完成對(duì)客戶端數(shù)據(jù)的發(fā)送,服務(wù)器端可以快速的做出客戶端的連接請(qǐng)求反映,并且在服務(wù)器端可以輕松的反映來(lái)自客戶端的連接情況,如連接的IP、連接時(shí)間、連接的當(dāng)前狀態(tài)等。系統(tǒng)的實(shí)現(xiàn),首先應(yīng)保證uClinux系統(tǒng)成功的啟動(dòng),即系統(tǒng)在啟動(dòng)過(guò)程中成功的初始化了文件

46、系統(tǒng),網(wǎng)絡(luò)設(shè)備硬件,串行設(shè)備硬件等,同時(shí)需要成功配置當(dāng)前網(wǎng)絡(luò)段的IP,以及掛載了所指定的網(wǎng)絡(luò)設(shè)備文件。最后,要保證開(kāi)發(fā)板和宿主機(jī)的網(wǎng)絡(luò)連通,即可以用ping 程序來(lái)測(cè)試雙方的活躍,這樣就可以同時(shí)運(yùn)行服務(wù)器和客戶端的程序。 3.5 設(shè)計(jì)基本流程設(shè)計(jì)主要的目的是要設(shè)計(jì)出面向連接的TCP通信模塊。Socket類為網(wǎng)絡(luò)通訊提供了一種方式。面向連接的數(shù)據(jù)流通信的socket編程詳細(xì)過(guò)程如圖3.4所示。圖3.4程序設(shè)計(jì)詳細(xì)圖解Socket接口是TCP/IP網(wǎng)絡(luò)的API,Socket接口定義函數(shù)和例程。網(wǎng)絡(luò)的Socket數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符,具有一個(gè)打開(kāi)文件的函數(shù)調(diào)用S

47、ocket(,該函數(shù)返回一個(gè)整型的Socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^(guò)該Socket實(shí)現(xiàn)的。常用的Socket類型有兩種22:流式Socket(SOCK_STREAM)和數(shù)據(jù)報(bào)式Socket(SOCK_DGRAM)。流式主要面向連接Socket,針對(duì)于面向連接的TCP服務(wù)應(yīng)用;數(shù)據(jù)報(bào)式面向無(wú)連接的Socket,對(duì)應(yīng)于無(wú)連接的UDP服務(wù)應(yīng)用。 使用socket的數(shù)據(jù)流進(jìn)行通信。應(yīng)該首先在服務(wù)器端使用socket(函數(shù)建立一個(gè)通信的端點(diǎn),然后使用bind(函數(shù)綁定這個(gè)端點(diǎn)的地址,最后服務(wù)器端使用listen(偵聽(tīng)連接請(qǐng)求,當(dāng)遠(yuǎn)程的客戶機(jī)使用connect(連接listen(正

48、在監(jiān)聽(tīng)的端口時(shí),使用accept(處理它。在accept(處理了連接請(qǐng)求后,將會(huì)生成一個(gè)新的描述這個(gè)連接端口的套接字,利用這個(gè)套接字就可以發(fā)送和接收數(shù)據(jù)了。如果listen(一直沒(méi)有偵聽(tīng)到連接請(qǐng)求,那么服務(wù)器就會(huì)在accept(處阻塞,一直到有連接請(qǐng)求到來(lái)。對(duì)于客戶機(jī)任務(wù)來(lái)說(shuō),它也需要先用socket(建立一個(gè)通信端口,但是它不必用bind(把他的本地地址綁定到這個(gè)端口上,而是直接使用connect(向指定的服務(wù)器發(fā)送連接請(qǐng)求,如果請(qǐng)求被接受,就可以進(jìn)行通信了。4 系統(tǒng)詳細(xì)設(shè)計(jì)4.1. uClinux的移植uClinux嵌入式系統(tǒng)的下載嵌入式系統(tǒng)交叉編譯完成后,需要將編譯好的嵌入式內(nèi)核下載到嵌

49、入式開(kāi)發(fā)板上,然后嵌入式開(kāi)發(fā)板才可以運(yùn)行嵌入式內(nèi)核。嵌入式開(kāi)發(fā)板按照以下兩種方式進(jìn)行加載:(1)直接將編譯好的內(nèi)核下載到嵌入式存貯器中。由于嵌入式開(kāi)發(fā)板的資源有限,存貯器的容量不夠大,這種方式對(duì)系統(tǒng)的存貯器要求較高,但是能夠帶來(lái)更高的運(yùn)行速度,因?yàn)橄到y(tǒng)只直接從嵌入式開(kāi)發(fā)板上啟動(dòng)的,系統(tǒng)直接解壓縮內(nèi)核文件,運(yùn)行內(nèi)核。設(shè)計(jì)中采用這種方式23。(2)通過(guò)地址印象的方式:由于嵌入式系統(tǒng)的存貯器有限,為了節(jié)約資源,在嵌入式存貯器上建立地址印象,內(nèi)核在執(zhí)行的時(shí)候,首先運(yùn)行到建立印象的地址,然后通過(guò)跳轉(zhuǎn)指令,直接運(yùn)行存儲(chǔ)在嵌入式開(kāi)發(fā)板外圍的存貯器上,這樣可以節(jié)約芯片上的資源,但是帶來(lái)的問(wèn)題是,由于跳轉(zhuǎn),運(yùn)行

50、的速度會(huì)降低,對(duì)于運(yùn)行速度要求不高的開(kāi)發(fā),可以采取這種方式。根文件系統(tǒng)的建立 內(nèi)核移植完成后,需要建立嵌入式的根文件系統(tǒng),根文件是嵌入式系統(tǒng)重要組成部分。uClinux主要應(yīng)用于沒(méi)有MMU單元的嵌入式芯片,主要的目的是節(jié)約內(nèi)存和FLASH。根據(jù)使用場(chǎng)合的不同,根文件系統(tǒng)也有多種選擇。在目前的嵌入式開(kāi)發(fā)過(guò)程中,ROMfs是使用最多的文件系統(tǒng)。ROMfs文件系統(tǒng)比較簡(jiǎn)單,文功能緊湊,并且是只讀的。在ROMfs中,文件數(shù)據(jù)是按照順尋存放的。uClinux系統(tǒng)可以直接運(yùn)行,這樣做的最大的優(yōu)勢(shì)是節(jié)約RAM空間,提高運(yùn)行速度。因此,根據(jù)系統(tǒng)的設(shè)計(jì)需求,選用ROMfs根文件系統(tǒng)。當(dāng)然,為了支持它,在內(nèi)核的配

51、置中需要內(nèi)核支持romfs 文件系統(tǒng),并且在內(nèi)核配置完畢后建立虛擬ram盤,提供用戶接口。應(yīng)用程序庫(kù)uClinux運(yùn)行效率高,是一個(gè)小型化的嵌入式Linux系統(tǒng),這就要求相應(yīng)的應(yīng)用程序庫(kù)具有較高的運(yùn)行效率。glibc是gnu發(fā)布的libc庫(kù),主要是基于C語(yǔ)言的,這個(gè)庫(kù)較大而且比較全面,不適應(yīng)uClinux。因此需要進(jìn)行相應(yīng)的簡(jiǎn)化,這就是uClibc應(yīng)用程序庫(kù)。在uClinux中,采取靜態(tài)連接,目的是為了節(jié)約內(nèi)存和片上資源,滿足嵌入式系統(tǒng)的設(shè)計(jì)需要。4.2. 內(nèi)核編譯嵌入式系統(tǒng)應(yīng)用非常專業(yè)化,功能模塊相對(duì)比較單一。隨著uClinux內(nèi)核版本的升級(jí),內(nèi)核功能越來(lái)越強(qiáng)大,體系結(jié)構(gòu)也越來(lái)越復(fù)雜。由于存

52、儲(chǔ)空間的限制,為了提高運(yùn)行性能,必須根據(jù)需要對(duì)內(nèi)核進(jìn)行精簡(jiǎn),定制一個(gè)符合嵌入式系統(tǒng)的操作平臺(tái)。uClinux可以通過(guò)裁剪,把不需要的功能模塊剪掉,留下應(yīng)用需要的模塊,減少系統(tǒng)運(yùn)行的復(fù)雜想,讓系統(tǒng)更加健壯和安全。同時(shí),嵌入式芯片的資源有限,內(nèi)存一般都比較小,裁剪后,內(nèi)核往往會(huì)更加簡(jiǎn)練,所占用的存貯空間也會(huì)很小。由于uClinux的內(nèi)核采取了模塊化的設(shè)計(jì)方式,設(shè)計(jì)時(shí)可以根據(jù)自己的需要,在內(nèi)核編譯的過(guò)程中,靈活選擇所需要的模塊,節(jié)約資源,減少代碼量,提高內(nèi)核的運(yùn)行速度和效率,這也是嵌入式系統(tǒng)的一個(gè)明顯的優(yōu)勢(shì)。的安裝在上下載版本為2.4的uClinux源碼包,將它復(fù)制到系統(tǒng)的目錄盤下,并進(jìn)行相應(yīng)的解壓

53、縮:輸入指令,并運(yùn)行:就會(huì)看到,在系統(tǒng)的目錄盤下,會(huì)出現(xiàn)uClinux的源代碼目錄,也就是uClinux-dist這個(gè)文件夾。由于本系統(tǒng)所用SmartARM2200開(kāi)發(fā)板,這個(gè)開(kāi)發(fā)板為ARM7的LPC2200芯片,是philips公司設(shè)計(jì)制造的。為了適應(yīng)這個(gè)芯片的特性,登陸philips官方網(wǎng)站,并且查找和下載以下這個(gè)文件:uClinux-dist-20040408-1pc-chy-cmj.patch下載后,復(fù)制到系統(tǒng)的目錄下,輸入以下指令,并執(zhí)行:cat uClinux-dist-20040408-1pc-chy-cmj.patch執(zhí)行完成后,在編譯uClinux內(nèi)核是,選擇系統(tǒng)的內(nèi)核配置的

54、時(shí)候,可以找到LPC2200的選項(xiàng)。配置uClinux安裝完成后,可以通過(guò)make config,make xconfig來(lái)配置uClinux,也可以通過(guò)make menuconfig來(lái)配置。各命令使用范圍不一樣,但效果是相同的,各命令說(shuō)明如表4.1所示。表4.1 uClinux的配置方式make config命令行方式,適用于控制臺(tái)和圖形終端make menuconfig文本菜中方式,適用于控制臺(tái)和圖形終端make xconfig-X窗口圖形界面方式,僅適用于圖形終端文本菜單這種配置方式,可以在終端控制臺(tái)上來(lái)使用,也可以通過(guò)圖形終端進(jìn)行使用。為了使得配置具有更強(qiáng)的直觀性,系統(tǒng)設(shè)計(jì)采用了文本菜

55、單這種配置方式。配置uClinux和文件系統(tǒng)具體的操作方法如下24:(1)通過(guò)已經(jīng)建立的終端或者控制臺(tái),找到uClinux源代碼所在的目錄,系統(tǒng)為:/usr/src/uClinux-dist ,執(zhí)行命令:cd /usr/src/uClinux-dist(2)如果不是進(jìn)行第一次編譯,需要先清除以前編譯產(chǎn)生的輔助文件和目標(biāo)文件,以保證編譯的正確性。如果是第一次編譯則可省略。執(zhí)行命令:make distclean(3)通過(guò)文本菜單方式配置uClinux執(zhí)行命令:make menuconfig執(zhí)行了make menuconfig語(yǔ)句后,將會(huì)出現(xiàn)如圖4.1 配置內(nèi)核界面。圖4.1 配置內(nèi)核界面界面中有提

56、示使用“”“”選擇配置模塊,使用空格鍵選擇或者取消,使用“”“”,選擇命令,最后使用回車鍵Enter執(zhí)行命令。第一項(xiàng)可進(jìn)行廠商/產(chǎn)品設(shè)置,選擇第二項(xiàng)則進(jìn)行內(nèi)核版本和函數(shù)庫(kù)設(shè)置,各選項(xiàng)的含義以及設(shè)置如表4.2所示。表4.2 uClinux中各個(gè)選項(xiàng)的描述選項(xiàng)描述設(shè)置Vendor/Product廠商/產(chǎn)品選擇PHILIS/LPC2200Kemel 選擇版本LinuxLibc選擇函數(shù)庫(kù)uClibcDefault all Settings默認(rèn)設(shè)置恢復(fù)默認(rèn)設(shè)置時(shí)選擇Updata Default 默認(rèn)廠商配置根據(jù)需要選擇在設(shè)計(jì)的時(shí)候,根據(jù)系統(tǒng)需求,以及所選用的芯片廠商等信息,進(jìn)行系統(tǒng)的配置,主要是根據(jù)以上

57、信息描述,進(jìn)行設(shè)置。進(jìn)入Linux內(nèi)核配內(nèi)核資源的界面,如圖4.2所示。圖4.2 內(nèi)核資源界面配置完畢后選擇Exit,然后在提示下是否保存的時(shí)候選擇保存, 配置完畢后,選擇Exit,在對(duì)話提示選擇保存。(4)建立源代碼文件依賴關(guān)系(第一次必須執(zhí)行執(zhí)行命令:make dep(5)編譯內(nèi)核執(zhí)行命令: make第(4)和第(5)進(jìn)行內(nèi)核的編譯,執(zhí)行的時(shí)間會(huì)比較長(zhǎng)。執(zhí)行結(jié)束后,會(huì)得到我們需要的兩個(gè)目錄:ROMfs文件和images內(nèi)核文件。在ROMfs文件中存放嵌入式系統(tǒng)運(yùn)行所需要的應(yīng)用程序。Images內(nèi)核文件主要存放那個(gè)內(nèi)核目錄。 經(jīng)過(guò)以上程序,uClinux的內(nèi)核編譯全部完成。構(gòu)建文件系統(tǒng)構(gòu)建文件系統(tǒng)就是在物理設(shè)備上構(gòu)建文件組織和目錄,便于系統(tǒng)進(jìn)行文件的組織和管理,它是uClinux系統(tǒng)處理數(shù)據(jù)的基礎(chǔ)條件。uClinux系統(tǒng)的所有有效數(shù)據(jù),包括用程序、庫(kù)、系統(tǒng)文件和用戶文件都按照目錄存放在文件系統(tǒng)中。uClinux系統(tǒng)的文件系統(tǒng),在組織上按照

溫馨提示

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