版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)論文</b></p><p> 題 目 基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì) </p><p><b> 摘 要</b></p><p> 嵌入式系統(tǒng)是計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)的綜合體,已經(jīng)廣泛應(yīng)用于科學(xué)研究、工程設(shè)計(jì)、國(guó)防軍事、自動(dòng)化控制等各個(gè)領(lǐng)域。
2、隨著網(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ò)通信功能的嵌入式終端。</p><p> 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ì)方案的基礎(chǔ)上,選擇移植帶有
3、TCP/IP協(xié)議的ucLinux嵌入式操作系統(tǒng)。裁剪和定制系統(tǒng)后,構(gòu)建相關(guān)的文件系統(tǒng)。在此基礎(chǔ)上,編寫(xiě)應(yīng)用程序,調(diào)用系統(tǒng)的Socket通信函數(shù),實(shí)現(xiàn)服務(wù)器端和客戶(hù)端的通信。描述IP地址和端口,用于在兩個(gè)</p><p> 論文成功的實(shí)現(xiàn)了嵌入式設(shè)備的網(wǎng)絡(luò)接入功能,各個(gè)帶有網(wǎng)絡(luò)通訊功能的嵌入式終端可以相互通訊,擴(kuò)大了和提高了嵌入式設(shè)備的應(yīng)用范圍,對(duì)嵌入式系統(tǒng)的發(fā)展有較大的意義。</p><p&
4、gt; 關(guān)鍵詞:嵌入式系統(tǒng);ARM7TDMI;socket;TCP/IP </p><p><b> Abstract</b></p><p> The embedded system is a complex system with the computer technology, semiconductor technology and electronic
5、 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
6、 terminal to complete the network communication function in a wide range of embedded systems. The Paper select the ARM7 TDMI for embedded development platform, develop the</p><p> Key words: Embedded System
7、s;ARM7TDMI;socket;TCP/IP</p><p><b> 目 錄</b></p><p><b> 1緒論1</b></p><p> 1.1嵌入式系統(tǒng)1</p><p> 1.2國(guó)內(nèi)外現(xiàn)狀和趨勢(shì)2</p><p> 1.3選題必要
8、性3</p><p> 1.4選題的目的和意義4</p><p> 1.5課題研究范圍及要達(dá)到的技術(shù)要求5</p><p><b> 2需求分析6</b></p><p> 2.1任務(wù)概述6</p><p> 2.2系統(tǒng)的需求分析6</p><p
9、> 2.2.1系統(tǒng)的功能需求6</p><p> 2.2.2系統(tǒng)的性能需求6</p><p> 2.3系統(tǒng)設(shè)計(jì)思路6</p><p> 3系統(tǒng)概要設(shè)計(jì)9</p><p> 3.1系統(tǒng)設(shè)計(jì)的基本原則9</p><p> 3.2系統(tǒng)設(shè)計(jì)方案分析9</p><p&
10、gt; 3.3概要設(shè)計(jì)11</p><p> 3.3.1開(kāi)發(fā)環(huán)境11</p><p> 3.3.2ARM開(kāi)發(fā)環(huán)境的建立12</p><p> 3.3.3建立程序運(yùn)行調(diào)試交叉編譯環(huán)境15</p><p> 3.4模塊化的設(shè)計(jì)與分析15</p><p> 3.4.1開(kāi)發(fā)板上完成的設(shè)計(jì)15
11、</p><p> 3.4.2PC機(jī)上完成的程序開(kāi)發(fā)16</p><p> 3.5設(shè)計(jì)基本流程16</p><p> 4系統(tǒng)詳細(xì)設(shè)計(jì)19</p><p> 4.1.uClinux的移植19</p><p> 4.1.1uClinux嵌入式系統(tǒng)的下載19</p><p&g
12、t; 4.1.2根文件系統(tǒng)的建立19</p><p> 4.1.3應(yīng)用程序庫(kù)20</p><p> 4.2.內(nèi)核編譯20</p><p> 4.2.1uClinux的安裝20</p><p> 4.2.2配置uClinux21</p><p> 4.2.3構(gòu)建文件系統(tǒng)23</p
13、><p> 4.3.PC機(jī)上的程序設(shè)計(jì)26</p><p> 4.3.1嵌入式TCP /IP分析26</p><p> 4.3.2嵌入式TCP/IP設(shè)計(jì)27</p><p> 4.4.編程模型28</p><p> 4.4.1TCP客戶(hù)端設(shè)計(jì)28</p><p> 4
14、.4.2TCP服務(wù)器端主要代碼分析30</p><p> 4.5.程序下載到嵌入式硬件平臺(tái)34</p><p> 5系統(tǒng)的實(shí)現(xiàn)與測(cè)試37</p><p> 5.1測(cè)試環(huán)境和測(cè)試的條件37</p><p> 5.2功能及數(shù)據(jù)測(cè)試38</p><p> 5.2.1容錯(cuò)功能38</p&
15、gt;<p> 5.2.2連接成功的信息說(shuō)明39</p><p> 5.2.3數(shù)據(jù)收發(fā)功能39</p><p> 5.3測(cè)試的結(jié)果41</p><p><b> 結(jié) 論42</b></p><p><b> 參考文獻(xiàn)43</b></p><
16、p><b> 致 謝45</b></p><p><b> 緒論</b></p><p><b> 嵌入式系統(tǒng)</b></p><p> 目前,嵌入式系統(tǒng)的應(yīng)用越來(lái)越廣泛,我們?nèi)粘I钪芯痛嬖诖罅康那度胧较到y(tǒng)的產(chǎn)品:比如手機(jī)、MP3、收音機(jī)、電視機(jī)等等,我們已經(jīng)離不開(kāi)嵌入式產(chǎn)品了。嵌入
17、式產(chǎn)品是面向應(yīng)用的,應(yīng)用的需求推動(dòng)了嵌入式技術(shù)的發(fā)展。</p><p> 嵌入式系統(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):</p>
18、;<p> (1)以需求為目標(biāo):嵌入式產(chǎn)品沒(méi)有統(tǒng)一的要求,在開(kāi)發(fā)過(guò)程中,它主要是解決用戶(hù)的需求問(wèn)題的。比如我們使用的手機(jī)產(chǎn)品,用戶(hù)有各種各樣的需求,有的看重的是移動(dòng)功能,有的看中的是娛樂(lè)功能,還有的看中的是導(dǎo)航功能。那么在設(shè)計(jì)開(kāi)發(fā)過(guò)程中,就需要按照不同的需求搭建自己的嵌入式系統(tǒng)。這樣做的主要目的是節(jié)約資源,讓嵌入式芯片發(fā)揮更大的作用。</p><p> ?。?)運(yùn)行高效,節(jié)約資源:嵌入式系統(tǒng)要求運(yùn)
19、行速度快,具有很高的執(zhí)行效率?;贏RM7TDMI的嵌入式芯片,在指令設(shè)計(jì)上使用是精簡(jiǎn)指令集,執(zhí)行效率高;使用三級(jí)流水技術(shù),大大增強(qiáng)了嵌入式產(chǎn)品的性能[1]。</p><p> (3)較小的體積和可靠性:嵌入式產(chǎn)品一般都要求體積較小,較小的體積,主要是可以滿(mǎn)足便攜功能。在可靠性方面,要求嵌入式系統(tǒng)的代碼執(zhí)行效率高,系統(tǒng)運(yùn)行穩(wěn)定可靠,也別是在工業(yè)控制領(lǐng)域。只有做到這一點(diǎn),嵌入式產(chǎn)品才會(huì)有更大的應(yīng)用空間和應(yīng)用市場(chǎng)。
20、嵌入系統(tǒng)是一個(gè)片上系統(tǒng),應(yīng)用空間巨大,在各個(gè)方面都可以應(yīng)用,比如工業(yè)控制領(lǐng)域、消費(fèi)電子、移動(dòng)通訊等,都得到了廣泛的使用。</p><p><b> 國(guó)內(nèi)外現(xiàn)狀和趨勢(shì)</b></p><p> 隨著信息化,智能化,網(wǎng)絡(luò)化的發(fā)展,嵌入式系統(tǒng)技術(shù)也將獲得廣闊的發(fā)展空間。信息時(shí)代,數(shù)字時(shí)代使得嵌入式產(chǎn)品獲得了巨大的發(fā)展契機(jī),為嵌入式市場(chǎng)展現(xiàn)了美好的前景,同時(shí)也對(duì)嵌入式生產(chǎn)
21、廠(chǎng)商提出了新的挑戰(zhàn)。</p><p> ?。?)嵌入式開(kāi)發(fā)是一項(xiàng)系統(tǒng)工程,因此要求嵌入式系統(tǒng)廠(chǎng)商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時(shí)還需要提供強(qiáng)大的硬件開(kāi)發(fā)工具和軟件包支持?! ∧壳昂芏鄰S(chǎng)商已經(jīng)充分考慮到這一點(diǎn),在主推系統(tǒng)的同時(shí),將開(kāi)發(fā)環(huán)境也作為重點(diǎn)推廣。比如三星在推廣Arm7,Arm9芯片的同時(shí)還提供開(kāi)發(fā)板和版及支持包(BSP),而WindowCE在主推系統(tǒng)時(shí)也提供Embedded VC++作為開(kāi)發(fā)工具,還有
22、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è)備如電話(huà)、手機(jī)、冰箱、微波爐等功能不再單一,結(jié)構(gòu)更加復(fù)雜。這就要求芯片設(shè)計(jì)廠(chǎng)商在芯片上集成更多的功能,為了滿(mǎn)足應(yīng)用功能的升級(jí),設(shè)計(jì)師們一方面采用更強(qiáng)大的嵌入式處理器如32位、64位RISC芯片或信號(hào)處理器DSP增強(qiáng)處理
23、能力,同時(shí)增加功能接口,如USB,擴(kuò)展總線(xiàn)類(lèi)型,如CAN BUS,加強(qiáng)對(duì)多媒體、圖形等的處理,逐步實(shí)施片上系統(tǒng)(SOC)的概念。軟件方面采用實(shí)時(shí)多任務(wù)編程技術(shù)和交叉開(kāi)發(fā)工具技術(shù)來(lái)控制功能</p><p> ?。?)網(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é)議
24、,還有的支持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)[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)的軟硬件
25、,利用最低的資源實(shí)現(xiàn)最適當(dāng)?shù)墓δ?,這就要求設(shè)計(jì)者選用最佳的編程模型和不斷改進(jìn)算法,優(yōu)化編譯器性能。因此,既要軟件人員有豐富的硬件知識(shí),又需要發(fā)展先進(jìn)嵌入式軟件技術(shù),如Java、Web和WAP等?!?(5)提供友好的多媒體人機(jī)界面 嵌入式設(shè)備能與用戶(hù)親密接觸,最重要的因素就是它能提供非常友好的用戶(hù)界面。圖像界面,靈活的控制方式,使得人們感覺(jué)嵌入式</p><p><b> 選題必要性</b&
26、gt;</p><p> 當(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)代生活的提高和改善。</p><p> 在網(wǎng)絡(luò)通訊方面,嵌入式系統(tǒng)的發(fā)展增強(qiáng)了網(wǎng)絡(luò)的智能化與靈活性,從而實(shí)現(xiàn)各種通信系統(tǒng)之間的互聯(lián)互通?;ヂ?lián)網(wǎng)
27、是我們?nèi)粘^k公生活中最常用的網(wǎng)絡(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ā)的。 </p><p> 嵌入式系統(tǒng)是指將應(yīng)用程序、操作系統(tǒng)與計(jì)算機(jī)硬件集成在一起的系統(tǒng)。它以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),而且軟硬件可以裁剪,因而能滿(mǎn)足應(yīng)用系
28、統(tǒng)對(duì)功能、可靠性、成本、體積和功耗的嚴(yán)格要求的專(zhuā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]。</p><p><b> 選題的目的和意義</b></p><p> 傳統(tǒng)的數(shù)據(jù)傳輸和通訊,需要鋪設(shè)專(zhuān)用的介質(zhì)和電纜。通過(guò)前端的傳感器采集數(shù)據(jù)信息,并通過(guò)相關(guān)的通訊協(xié)議進(jìn)行數(shù)據(jù)傳
29、輸。比如我們經(jīng)常使用的CAN,485總線(xiàn)等。這些總線(xiàn)和協(xié)議需要自己定制,硬件設(shè)備需要自己設(shè)計(jì)開(kāi)發(fā),面向的對(duì)象不同,解決的設(shè)計(jì)問(wèn)題不同,主要面向?qū)I(yè)設(shè)計(jì)開(kāi)發(fā),由于技術(shù)上的門(mén)檻,普通人員很難理解和使用。</p><p> 以太網(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)品具有重要的意思。</p>&l
30、t;p> (1)嵌入式網(wǎng)絡(luò)為終端設(shè)備網(wǎng)絡(luò)化提供了保障</p><p> 如果將我們所有的終端設(shè)備進(jìn)行網(wǎng)絡(luò)連接,可以方便有效地進(jìn)行信息溝通和數(shù)據(jù)共享,同時(shí)也為管理者提供了一種有效的管理方式。移動(dòng)辦公設(shè)備很方便的將我們連接在一起,無(wú)論何時(shí)何地,增強(qiáng)了我們的相互溝通。</p><p> ?。?)嵌入式網(wǎng)絡(luò)技術(shù)為工業(yè)控制領(lǐng)域設(shè)備的發(fā)展提供動(dòng)力</p><p>
31、基于嵌入式系統(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ì)是怎么樣。</p>
32、<p> 在工業(yè)控制方面,嵌入式網(wǎng)絡(luò)可以有效可靠地進(jìn)行遠(yuǎn)程控制和操作,通過(guò)網(wǎng)絡(luò)通訊模塊進(jìn)行協(xié)議的轉(zhuǎn)換,各個(gè)控制對(duì)象可以獨(dú)立為嵌入式網(wǎng)絡(luò)的一個(gè)終端,這種控制可以做到有效、可靠和實(shí)時(shí)。</p><p> ?。?)嵌入式網(wǎng)絡(luò)為家庭生活的智能化提供了技術(shù)支持</p><p> 現(xiàn)在的家庭都已經(jīng)離不開(kāi)網(wǎng)絡(luò)。通過(guò)網(wǎng)絡(luò),可以進(jìn)行遠(yuǎn)程的家庭監(jiān)控,我們經(jīng)常使用的家用電器。我們可以把家庭的所有設(shè)
33、備聯(lián)網(wǎng),組成一個(gè)家庭智能中心,可以很方便的通過(guò)網(wǎng)絡(luò)進(jìn)行控制。這種網(wǎng)絡(luò)的設(shè)計(jì)和開(kāi)發(fā)基本都是基于嵌入式技術(shù)的。</p><p> 基于嵌入式系統(tǒng)的網(wǎng)絡(luò)通訊,一般具有以下功能:</p><p> (1)嵌入式網(wǎng)絡(luò)以Internet網(wǎng)絡(luò)為基礎(chǔ),通過(guò)協(xié)議的轉(zhuǎn)換,把相關(guān)的信息傳輸?shù)侥康牡?,大大?jié)約了資源;</p><p> ?。?)TCP/I P協(xié)議是一個(gè)標(biāo)準(zhǔn)公開(kāi)的協(xié)議,不
34、做任何改變,我們就可以利用Web瀏覽器讀取信息,非常的方便快捷;</p><p> (3)客戶(hù)機(jī)根據(jù)信息的需求狀況,獲得相關(guān)的信息,并且能夠自由的處理,并能夠顯示處理結(jié)果;</p><p> ?。?)信息的顯示有多種方式,通過(guò)計(jì)算機(jī)技術(shù)處理成文字、圖象、表格等形式,并且還能夠?qū)崟r(shí)的自動(dòng)更新,在設(shè)備的終端上最好相關(guān)記錄,更加方便有效的進(jìn)行控制和操作[5]。</p><p
35、> 課題研究范圍及要達(dá)到的技術(shù)要求</p><p> 課題是基于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è)備運(yùn)行,完成在ARM7開(kāi)發(fā)板和PC機(jī)的通信,方便的進(jìn)行數(shù)據(jù)收發(fā)。<
36、/p><p> 將嵌入式系統(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)題:</p><p> ?。?)如果要移植操作系統(tǒng),選擇什么操作系統(tǒng),才最適合;<
37、;/p><p> ?。?)如何使開(kāi)發(fā)板驅(qū)動(dòng)網(wǎng)絡(luò)芯片工作;</p><p> ?。?)如何建立交叉的編譯環(huán)境;</p><p> ?。?)如何使ARM芯片上具有TCP/IP協(xié)議的網(wǎng)絡(luò)環(huán)境;</p><p> ?。?)如何用Socket來(lái)建立網(wǎng)絡(luò)的通信。</p><p><b> 需求分析</b><
38、;/p><p><b> 任務(wù)概述</b></p><p> 論文的主要工作,是選擇適當(dāng)?shù)那度胧介_(kāi)發(fā)平臺(tái)和文件系統(tǒng),建立交叉的編譯環(huán)境,構(gòu)建TCP/IP網(wǎng)絡(luò)體系,實(shí)現(xiàn)客戶(hù)端和服務(wù)器端的socket通信。</p><p><b> 系統(tǒng)的需求分析</b></p><p><b> 系統(tǒng)的
39、功能需求</b></p><p> 嵌入式系統(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),滿(mǎn)足網(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è)備之間的通信。</p><p&g
40、t;<b> 系統(tǒng)的性能需求</b></p><p> 在系統(tǒng)的設(shè)計(jì)上,要求系統(tǒng)具有以下性能:</p><p> ?。?)實(shí)時(shí)性:嵌入式設(shè)備具有足夠的反映速度,能快速的接收來(lái)自網(wǎng)絡(luò)設(shè)備數(shù)據(jù),并作出快速的反應(yīng);</p><p> ?。?)穩(wěn)定性:系統(tǒng)在異常情況下不發(fā)生死循環(huán),設(shè)備系統(tǒng)不會(huì)崩潰和癱瘓;</p><p>
41、 (3)可擴(kuò)充性:系統(tǒng)可以根據(jù)需要進(jìn)行擴(kuò)充,能夠新的通信技術(shù)或新的通訊協(xié)議方案(程序),可以在不改動(dòng)系統(tǒng)大部分硬件的情況下,其實(shí)現(xiàn)新的功能;</p><p> (4)易維護(hù)性:在設(shè)備發(fā)生數(shù)據(jù)災(zāi)難的時(shí)候使系統(tǒng)及時(shí)的恢復(fù),達(dá)到以前的狀態(tài);</p><p> ?。?)持久性:嵌入式系統(tǒng)工作的特殊性,以及各種特定工作環(huán)境的具體要求,系統(tǒng)必須能夠穩(wěn)定地長(zhǎng)時(shí)間工作,適應(yīng)各種不同的工作環(huán)境。</
42、p><p><b> 系統(tǒng)設(shè)計(jì)思路</b></p><p> 系統(tǒng)的設(shè)計(jì)開(kāi)發(fā),宿主機(jī)采用的是任意發(fā)行版本的 Linux系統(tǒng),但程序是采用標(biāo)準(zhǔn)C語(yǔ)言來(lái)編寫(xiě),可以在不同的Linux系統(tǒng)中實(shí)現(xiàn)通信功能??紤]到在ARM開(kāi)發(fā)板上需要運(yùn)行特定格式的程序文件,所以設(shè)計(jì)采用Linux下的gcc開(kāi)發(fā)工具,使用arm-elf-tools交叉編譯工具生成在ARM開(kāi)發(fā)板上的可以直接運(yùn)行的程序
43、。</p><p> 由于嵌入式開(kāi)發(fā)要結(jié)合軟件和硬件的詳細(xì)情況來(lái)操作,所以系統(tǒng)的開(kāi)發(fā)應(yīng)該具有以下的幾種操作接口,第一用戶(hù)可以通過(guò)以RJ45的以太網(wǎng)對(duì)開(kāi)發(fā)板和系統(tǒng)操作,其次用戶(hù)可以采用串口的方式對(duì)開(kāi)發(fā)板的功能和運(yùn)行效果進(jìn)行操作,最后操作人員還可以通過(guò)開(kāi)發(fā)板特有的JTAG對(duì)開(kāi)發(fā)板進(jìn)行操作。</p><p> 系統(tǒng)分為宿主部分和開(kāi)發(fā)板部分,每個(gè)部分獨(dú)立成塊,用網(wǎng)絡(luò)相互連接,宿主機(jī)上運(yùn)行的Li
44、nux操作系統(tǒng),開(kāi)發(fā)板上運(yùn)行的是uClinux嵌入式操作系統(tǒng)[7]。宿主機(jī)和開(kāi)發(fā)板通過(guò)Switch交換機(jī)進(jìn)行網(wǎng)絡(luò)通信,宿主機(jī)一方作為服務(wù)器端,開(kāi)發(fā)板作為客戶(hù)端,系統(tǒng)的原理如下圖2.1所示。</p><p> 圖2.1系統(tǒng)設(shè)計(jì)環(huán)境關(guān)系圖</p><p> 系統(tǒng)的設(shè)計(jì)目標(biāo)是完成宿主機(jī)和開(kāi)發(fā)板的網(wǎng)絡(luò)通信實(shí)現(xiàn)。要完成通信,就要完成系統(tǒng)底層硬件的驅(qū)動(dòng)等一系列的工作,首先啟動(dòng)宿主機(jī)和客戶(hù)機(jī)的操作系
45、統(tǒng)Linux和uClinux,然后每個(gè)模塊加載網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序,最后通過(guò)TCP/IP協(xié)議建立雙方的通信鏈路,完成Socket通信,詳細(xì)情況如圖2.2所示[8]。</p><p> 圖2.2系統(tǒng)的原理示意圖</p><p><b> 系統(tǒng)概要設(shè)計(jì)</b></p><p><b> 系統(tǒng)設(shè)計(jì)的基本原則</b></p
46、><p> 無(wú)論采用什么設(shè)計(jì)開(kāi)發(fā)方式,最終的目的是驅(qū)動(dòng)開(kāi)發(fā)板完成網(wǎng)絡(luò)的通信。設(shè)計(jì)過(guò)程中,首先開(kāi)發(fā)板的網(wǎng)絡(luò)芯片能夠正常工作,其次要完成通信就必須要有完善的通信的協(xié)議,根據(jù)系統(tǒng)的要求選擇合適的協(xié)議[9]。目前,Internet上用應(yīng)用最多相對(duì)開(kāi)放的協(xié)議就是TCP/IP協(xié)議,它能使不同網(wǎng)絡(luò)設(shè)備以及不同類(lèi)型的網(wǎng)絡(luò)按照標(biāo)準(zhǔn)協(xié)議互相連接,輕松的實(shí)現(xiàn)上層的通信。在此基礎(chǔ)上,設(shè)計(jì)上層通信模塊,通過(guò)調(diào)用socket函數(shù)來(lái)實(shí)現(xiàn)各種功能
47、,包括數(shù)據(jù)的接收和發(fā)送,數(shù)據(jù)的校驗(yàn)等等[10]。</p><p><b> 系統(tǒng)設(shè)計(jì)方案分析 </b></p><p> 采用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ì)方案是:</p>&l
48、t;p><b> ?。?)方案1</b></p><p> 無(wú)操作系統(tǒng),自己構(gòu)建TCP/IP協(xié)議族,編寫(xiě)上層socket通信模塊完成程序的通信。</p><p><b> (2)方案2</b></p><p> 包含操作系統(tǒng),其中又分為帶 TCP/IP協(xié)議族的操作系統(tǒng)和不帶TCP/IP協(xié)議族的操作系統(tǒng)[11]。
49、</p><p> 帶TCP/IP協(xié)議族的Linux或者uClinux操作系統(tǒng),不需要自己構(gòu)建TCP/IP協(xié)議族可以直接調(diào)用底層的函數(shù),驅(qū)動(dòng)上層模塊完成socket通信[12]。</p><p> 不帶TCP/IP協(xié)議族的uCOS-II操作系統(tǒng),自己構(gòu)建TCP/IP協(xié)議族,編寫(xiě)上層socket通信模塊完成程序的通信。</p><p> 在選擇什么樣的操作系統(tǒng)這
50、個(gè)問(wèn)題上,主要?dú)w結(jié)于嵌入式系統(tǒng)的性能,主要有以下幾點(diǎn)[13-15]:</p><p> ?。?)微處理器是否支持</p><p> 微處理器是否支持是選用操作系統(tǒng)的核心因素。從應(yīng)用的角度來(lái)說(shuō),選用一種穩(wěn)定可靠的微處理器是設(shè)計(jì)成功的關(guān)鍵。</p><p> ?。?)資源占用情況的多少</p><p> 嵌入式系統(tǒng)的資源是有限的,資源占用是另
51、外一個(gè)重要的指標(biāo)。通常所說(shuō)的資源主要是嵌入式芯片的內(nèi)存和Flash。處于成本和體積等各方面的考慮,要求操作系統(tǒng)盡可能節(jié)約資源。</p><p><b> ?。?)應(yīng)用軟件資源</b></p><p> 嵌入式操作系統(tǒng)在應(yīng)用過(guò)程中需要多方軟件支持,包括協(xié)議棧、設(shè)備驅(qū)動(dòng)以及一些應(yīng)用程序,在設(shè)計(jì)過(guò)程中,可以方便的應(yīng)用這些軟件,或者只需要很少的改動(dòng)就可以適用于新的平臺(tái)。&l
52、t;/p><p><b> ?。?)操作系統(tǒng)性能</b></p><p> 操作系統(tǒng)的可靠性通常無(wú)法在用戶(hù)程序或者函數(shù)庫(kù)層次得到增強(qiáng)。操作系統(tǒng)的穩(wěn)定性在操作系統(tǒng)設(shè)計(jì)之初,就已經(jīng)由系統(tǒng)的設(shè)計(jì)構(gòu)想和編碼質(zhì)量決定了。嵌入式系統(tǒng)可靠性要求要比一般桌面系統(tǒng)要高,設(shè)計(jì)中有可能無(wú)法確定出現(xiàn)的問(wèn)題是程序的問(wèn)題還是操作系統(tǒng)的性能問(wèn)題。</p><p><b&
53、gt; ?。?)執(zhí)行效率</b></p><p> 執(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)行。</p><p> 通過(guò)對(duì)uClinux和Linux的詳細(xì)比較,因?yàn)閡Clinux和Linux具有同樣的內(nèi)核,所以在處理器的支持,軟件資源豐富程度,操
54、作系統(tǒng)的功能,操作系統(tǒng)執(zhí)行性能和可靠性上基本上一致,Linux 相對(duì)于uClinux在嵌入式應(yīng)用相對(duì)不足,主要體現(xiàn)在以下幾點(diǎn)[16]:</p><p><b> ?。?)空間占用大</b></p><p> Linux操作系統(tǒng)功能完善,但是占用空間大。通常的Linux系統(tǒng),都需要占用上百兆的空間。嵌入式Linux也要占用1M空間,運(yùn)行時(shí)更需要超過(guò)4M的內(nèi)存空間,因此
55、對(duì)于存貯空間不足的嵌入式系統(tǒng),資源的要求沒(méi)有辦法滿(mǎn)足。 </p><p> 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ǔ)空間。 </p><p> ?。?)操作系統(tǒng)的實(shí)時(shí)性 </p>&l
56、t;p> 實(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)程,而且在它奪取到CPU的使用權(quán)后,它可以一直執(zhí)行到工作結(jié)束或是有更高等級(jí)的進(jìn)程出現(xiàn)為止。因此,高效的中斷處理能力與高速的輸入輸出能力是實(shí)時(shí)系統(tǒng)所必備的基本特征。</p><p> Linux和uClinux本身并不支持實(shí)時(shí)性應(yīng)用,但
57、是設(shè)計(jì)時(shí)候,對(duì)ucLinux可以進(jìn)行實(shí)時(shí)性的修改,提供基于內(nèi)核空間和用戶(hù)空間的硬實(shí)時(shí)和軟實(shí)時(shí)的系統(tǒng)調(diào)用。</p><p><b> ?。?)內(nèi)存管理</b></p><p> Linux系統(tǒng)帶有MMU內(nèi)存管理單元,具有相應(yīng)的內(nèi)存管理機(jī)制。在ARM7TDMI嵌入式處理器沒(méi)有MMU模塊。而uClinux是專(zhuān)門(mén)針對(duì)沒(méi)有MMU的處理器而設(shè)計(jì)的。uClinux管理內(nèi)存的方法是
58、采用實(shí)存儲(chǔ)器管理,通過(guò)地址總線(xiàn)對(duì)物理內(nèi)存進(jìn)行直接訪(fǎng)問(wèn),程序中訪(fǎng)問(wèn)的地址都是實(shí)際的物理地址,所有的進(jìn)程都在一個(gè)運(yùn)行空間中運(yùn)行。系統(tǒng)在啟動(dòng)時(shí)把實(shí)際存儲(chǔ)器進(jìn)行分頁(yè),在加載應(yīng)用程序時(shí)程序分頁(yè)加載[18]。 </p><p> 缺少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ā)人員解決。</p
59、><p> 通過(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ā)。</p><p><b> 概要設(shè)計(jì)</b></p>
60、<p><b> 開(kāi)發(fā)環(huán)境</b></p><p> 課題最終選擇帶TCP/IP協(xié)議族的uClinux操作系統(tǒng)來(lái)完成項(xiàng)目的設(shè)計(jì),所以要針對(duì)uClinux上程序的開(kāi)發(fā)配置特定的PC機(jī)環(huán)境。</p><p> 嵌入式系統(tǒng)主要是面向應(yīng)用的,是一個(gè)片上系統(tǒng),因此它的體積是很小的,包括它的RAM和ROM都是有限的,這就決定了嵌入式系統(tǒng)的調(diào)試不能直接在嵌入式系統(tǒng)
61、上調(diào)試,而要采取一種交叉編譯環(huán)境的方式,也就是“目標(biāo)機(jī)和宿主機(jī)”交叉編譯的方式,如圖4.1所示[19]。</p><p> 圖3.1 uClinux的交叉編譯環(huán)境</p><p> 目標(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),并在系統(tǒng)上運(yùn)行嵌入式應(yīng)用軟件。運(yùn)行操
62、作系統(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軟件。</p><p> 建立PC上的開(kāi)發(fā)環(huán)境應(yīng)在宿
63、主機(jī)上安裝標(biāo)準(zhǔn)Linux操作系統(tǒng),推薦使用RedHat Linux,一定要確保計(jì)算機(jī)的網(wǎng)卡驅(qū)動(dòng)、網(wǎng)絡(luò)通訊配置正常。 </p><p> ARM開(kāi)發(fā)環(huán)境的建立</p><p> 1991年ARM公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前,采用ARM技術(shù)知識(shí)產(chǎn)權(quán)(IP)核的微處理器,即人們通常所說(shuō)的ARM微處理器,已遍及工業(yè)控制、消費(fèi)類(lèi)電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無(wú)線(xiàn)系統(tǒng)等各類(lèi)
64、產(chǎn)品市場(chǎng),基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75%以上的市場(chǎng)份額,ARM技術(shù)正在逐步滲入到人們生活的各個(gè)方面。</p><p> ARM公司是專(zhuān)門(mén)從事基于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)買(mǎi)其設(shè)計(jì)的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成?/p>
65、己的ARM微處理器芯片進(jìn)入市場(chǎng)。</p><p> 采用RISC架構(gòu)的ARM微處理器一般具有如下特點(diǎn):</p><p> (1)體積小、低功耗、低成本、高性能;</p><p> (2)支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;</p><p> ?。?)大量使用寄存器,指令執(zhí)行速度更快;<
66、/p><p> (4)大多數(shù)數(shù)據(jù)操作都在寄存器中完成;</p><p> ?。?)尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;</p><p> ?。?)指令長(zhǎng)度固定。</p><p> ARM7TDMI具有32位ARM指令集和16位Thumb指令集。ARM指令集效率高,但是代碼密度高。Thumb指令集具有較高的代碼密度,卻仍然保持著ARM大多數(shù)性能上的優(yōu)
67、勢(shì),它是ARM的子集。所有的ARM置零都是可以條件執(zhí)行的,而Thumb置零僅有一條指令具備條件執(zhí)行的功能。</p><p> ARM和Thumb程序可以相互調(diào)用,相互之間狀態(tài)切換開(kāi)銷(xiāo)幾乎為零。尋址方式是根據(jù)指令中給出的地址碼字段來(lái)實(shí)現(xiàn)尋找真實(shí)操作數(shù)地址的方式。ARM處理器具有9種基本尋址方式:</p><p><b> ?。?)寄存器尋址;</b></p>
68、;<p> ?。?)立即尋址;(3)寄存器移位尋址;</p><p> (4)寄存器間接尋址;</p><p> ?。?)基址尋址; </p><p> ?。?)多寄存器尋址;(7)堆棧尋址;</p><p> ?。?)塊拷貝尋址;(9)相對(duì)尋址。</p><p> 設(shè)計(jì)采
69、用SmartARM2200開(kāi)發(fā)板,使用NXP公司的LPC2210微處</p><p> 理器。LPC2210基于ARM7TDMI內(nèi)核,系統(tǒng)時(shí)鐘頻率達(dá)60 MHz,總線(xiàn)對(duì)外開(kāi)放,寬度可配置為8/16/32位。同時(shí)還擴(kuò)展了RTL8019AS(10 Mb/s)以太網(wǎng)控制器。</p><p> 圖3.2 SmartARM開(kāi)發(fā)板</p><p> 論文的設(shè)計(jì)以Smar
70、tARM進(jìn)行,如圖3.2所示。所以對(duì)開(kāi)發(fā)板上要做的操作是接上JTAG,串口,網(wǎng)絡(luò)線(xiàn),并且BOOTSET 設(shè)置為outside,設(shè)置Bank0為FLASH,Bank1設(shè)置為RAM,接通應(yīng)用的模塊的跳線(xiàn),然后把已經(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所示:</p><p> 圖3.3 開(kāi)發(fā)板上成功啟動(dòng)uClinux</p>
71、<p> 建立程序運(yùn)行調(diào)試交叉編譯環(huán)境</p><p> 由于uClinux及它的相關(guān)開(kāi)發(fā)工具集大多都是來(lái)自自由軟件組織的開(kāi)放源代碼,這些軟件都是共享在網(wǎng)絡(luò)上的,因此,在建立開(kāi)發(fā)環(huán)境的時(shí)候,直接找到相關(guān)的網(wǎng)絡(luò)地址進(jìn)行下載,接下來(lái)就可以建立交叉開(kāi)發(fā)環(huán)境。</p><p> 從網(wǎng)站http://www.uClinux.org 上下載最新的arm-elf-gcc 工具,即腳本文件
72、arm-elf-tools-20040427.sh,在宿主機(jī)上安裝該工具鏈,在該文件所在目錄下,鍵入一下指令:</p><p> #ls-l arm-elf-tools-20040427.sh</p><p> 等待指令的執(zhí)行,完成后在路徑://usr/local/bin/下有:gcc, arm-elf-gcc,binudls, genromfs,flthdr和elflflt等各種應(yīng)用
73、工具。</p><p><b> 模塊化的設(shè)計(jì)與分析</b></p><p><b> 開(kāi)發(fā)板上完成的設(shè)計(jì)</b></p><p> 從項(xiàng)目的整體出發(fā),開(kāi)發(fā)板上應(yīng)完成的工作包括,移植uClinux到SmartARM2200開(kāi)發(fā)板,移植過(guò)程中應(yīng)配置uClinux,其中包含大部分系統(tǒng)配置,如:Non-standard s
74、erial 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)為用戶(hù)留出可以讀寫(xiě)操作的區(qū)域,幫助用戶(hù)輕松的寫(xiě)入程序和修改程序,最后開(kāi)發(fā)板上載入編譯好的網(wǎng)絡(luò)socket通信程序[20]。<
75、;/p><p> PC機(jī)上完成的程序開(kāi)發(fā)</p><p> 首先PC機(jī)上要安裝完整的Linux操作系統(tǒng),然后配置好交叉編譯環(huán)境后,接下來(lái)就是是對(duì)程序的初步設(shè)計(jì),程序一共分為兩個(gè)大的部分:</p><p> ?。?)TCP的客戶(hù)端程序設(shè)計(jì)</p><p> TCP的客戶(hù)端可以輕松的訪(fǎng)問(wèn)服務(wù)器端,向它發(fā)送連接請(qǐng)求,并且客戶(hù)端也可以接收到來(lái)自服務(wù)
76、器端發(fā)送回來(lái)的數(shù)據(jù)。TCP的客戶(hù)端可以顯示當(dāng)前自己的工作狀態(tài),如連接的建立,啟動(dòng)的成功和數(shù)據(jù)包通信的個(gè)數(shù)等[21]。</p><p> ?。?)TCP 的服務(wù)器端程序設(shè)計(jì)</p><p> TCP 的服務(wù)器端可以輕松的完成對(duì)客戶(hù)端數(shù)據(jù)的發(fā)送,服務(wù)器端可以快速的做出客戶(hù)端的連接請(qǐng)求反映,并且在服務(wù)器端可以輕松的反映來(lái)自客戶(hù)端的連接情況,如連接的IP、連接時(shí)間、連接的當(dāng)前狀態(tài)等。</p
77、><p> 系統(tǒng)的實(shí)現(xiàn),首先應(yīng)保證uClinux系統(tǒng)成功的啟動(dòng),即系統(tǒng)在啟動(dòng)過(guò)程中成功的初始化了文件系統(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ù)器和客戶(hù)端的程序。 </p><p><b> 設(shè)計(jì)基本流程</b>
78、</p><p> 設(shè)計(jì)主要的目的是要設(shè)計(jì)出面向連接的TCP通信模塊。Socket類(lèi)為網(wǎng)絡(luò)通訊提供了一種方式。面向連接的數(shù)據(jù)流通信的socket編程詳細(xì)過(guò)程如圖3.4所示。</p><p> 圖3.4程序設(shè)計(jì)詳細(xì)圖解</p><p> Socket接口是TCP/IP網(wǎng)絡(luò)的API,Socket接口定義函數(shù)和例程。網(wǎng)絡(luò)的Socket數(shù)據(jù)傳輸是一種特殊的I/O,So
79、cket也是一種文件描述符,具有一個(gè)打開(kāi)文件的函數(shù)調(diào)用Socket(),該函數(shù)返回一個(gè)整型的Socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^(guò)該Socket實(shí)現(xiàn)的。</p><p> 常用的Socket類(lèi)型有兩種[22]:流式Socket(SOCK_STREAM)和數(shù)據(jù)報(bào)式Socket(SOCK_DGRAM)。流式主要面向連接Socket,針對(duì)于面向連接的TCP服務(wù)應(yīng)用;數(shù)據(jù)報(bào)式面向無(wú)連接的Socket
80、,對(duì)應(yīng)于無(wú)連接的UDP服務(wù)應(yīng)用。 </p><p> 使用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)程的客戶(hù)機(jī)使用connect()連接listen()正在監(jiān)聽(tīng)的端口時(shí),使用accept()處理它。在accept()處理了連接請(qǐng)求后,將會(huì)生成一個(gè)新的描述這個(gè)連接端口的套
81、接字,利用這個(gè)套接字就可以發(fā)送和接收數(shù)據(jù)了。如果listen()一直沒(méi)有偵聽(tīng)到連接請(qǐng)求,那么服務(wù)器就會(huì)在accept()處阻塞,一直到有連接請(qǐng)求到來(lái)。</p><p> 對(duì)于客戶(hù)機(jī)任務(wù)來(lái)說(shuō),它也需要先用socket()建立一個(gè)通信端口,但是它不必用bind()把他的本地地址綁定到這個(gè)端口上,而是直接使用connect()向指定的服務(wù)器發(fā)送連接請(qǐng)求,如果請(qǐng)求被接受,就可以進(jìn)行通信了。</p><
82、;p><b> 系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p> uClinux的移植</p><p> uClinux嵌入式系統(tǒng)的下載</p><p> 嵌入式系統(tǒng)交叉編譯完成后,需要將編譯好的嵌入式內(nèi)核下載到嵌入式開(kāi)發(fā)板上,然后嵌入式開(kāi)發(fā)板才可以運(yùn)行嵌入式內(nèi)核。嵌入式開(kāi)發(fā)板按照以下兩種方式進(jìn)行加載:</p><p&g
83、t; ?。?)直接將編譯好的內(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]。</p><p> ?。?)通過(guò)地址印象的方式:由于嵌入式系統(tǒng)的存貯器有限,為了節(jié)約資源,在嵌入式存貯器上建立地址印象,內(nèi)核在執(zhí)行的時(shí)候,首先運(yùn)行到建立印
84、象的地址,然后通過(guò)跳轉(zhuǎn)指令,直接運(yùn)行存儲(chǔ)在嵌入式開(kāi)發(fā)板外圍的存貯器上,這樣可以節(jié)約芯片上的資源,但是帶來(lái)的問(wèn)題是,由于跳轉(zhuǎn),運(yùn)行的速度會(huì)降低,對(duì)于運(yùn)行速度要求不高的開(kāi)發(fā),可以采取這種方式。</p><p><b> 根文件系統(tǒng)的建立 </b></p><p> 內(nèi)核移植完成后,需要建立嵌入式的根文件系統(tǒng),根文件是嵌入式系統(tǒng)重要組成部分。uClinux主要應(yīng)用于沒(méi)有
85、MMU單元的嵌入式芯片,主要的目的是節(jié)約內(nèi)存和FLASH。根據(jù)使用場(chǎng)合的不同,根文件系統(tǒng)也有多種選擇。在目前的嵌入式開(kāi)發(fā)過(guò)程中,ROMfs是使用最多的文件系統(tǒng)。</p><p> 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)然
86、,為了支持它,在內(nèi)核的配置中需要內(nèi)核支持romfs 文件系統(tǒng),并且在內(nèi)核配置完畢后建立虛擬ram盤(pán),提供用戶(hù)接口。</p><p><b> 應(yīng)用程序庫(kù)</b></p><p> uClinux運(yùn)行效率高,是一個(gè)小型化的嵌入式Linux系統(tǒng),這就要求相應(yīng)的應(yīng)用程序庫(kù)具有較高的運(yùn)行效率。glibc是gnu發(fā)布的libc庫(kù),主要是基于C語(yǔ)言的,這個(gè)庫(kù)較大而且比較全面,
87、不適應(yīng)uClinux。因此需要進(jìn)行相應(yīng)的簡(jiǎn)化,這就是uClibc應(yīng)用程序庫(kù)。在uClinux中,采取靜態(tài)連接,目的是為了節(jié)約內(nèi)存和片上資源,滿(mǎn)足嵌入式系統(tǒng)的設(shè)計(jì)需要。</p><p><b> 內(nèi)核編譯</b></p><p> 嵌入式系統(tǒng)應(yīng)用非常專(zhuān)業(yè)化,功能模塊相對(duì)比較單一。隨著uClinux內(nèi)核版本的升級(jí),內(nèi)核功能越來(lái)越強(qiáng)大,體系結(jié)構(gòu)也越來(lái)越復(fù)雜。由于存儲(chǔ)空間
88、的限制,為了提高運(yùn)行性能,必須根據(jù)需要對(duì)內(nèi)核進(jìn)行精簡(jiǎn),定制一個(gè)符合嵌入式系統(tǒng)的操作平臺(tái)。</p><p> uClinux可以通過(guò)裁剪,把不需要的功能模塊剪掉,留下應(yīng)用需要的模塊,減少系統(tǒng)運(yùn)行的復(fù)雜想,讓系統(tǒng)更加健壯和安全。同時(shí),嵌入式芯片的資源有限,內(nèi)存一般都比較小,裁剪后,內(nèi)核往往會(huì)更加簡(jiǎn)練,所占用的存貯空間也會(huì)很小。</p><p> 由于uClinux的內(nèi)核采取了模塊化的設(shè)計(jì)方
89、式,設(shè)計(jì)時(shí)可以根據(jù)自己的需要,在內(nèi)核編譯的過(guò)程中,靈活選擇所需要的模塊,節(jié)約資源,減少代碼量,提高內(nèi)核的運(yùn)行速度和效率,這也是嵌入式系統(tǒng)的一個(gè)明顯的優(yōu)勢(shì)。</p><p> uClinux的安裝</p><p> 在www.Linux.org上下載版本為2.4的uClinux源碼包uClinux-dist-20040408.tar.gz,將它復(fù)制到系統(tǒng)的目錄盤(pán)下,并進(jìn)行相應(yīng)的解壓縮:&
90、lt;/p><p> 輸入指令,并運(yùn)行:tar uClinux-dist-20040408.tar.gz</p><p> 就會(huì)看到,在系統(tǒng)的目錄盤(pán)下,會(huì)出現(xiàn)uClinux的源代碼目錄,也就是uClinux-dist這個(gè)文件夾。</p><p> 由于本系統(tǒng)所用SmartARM2200開(kāi)發(fā)板,這個(gè)開(kāi)發(fā)板為ARM7的LPC2200芯片,是philips公司設(shè)計(jì)制造的
91、。為了適應(yīng)這個(gè)芯片的特性,登陸philips官方網(wǎng)站,并且查找和下載以下這個(gè)文件:</p><p> uClinux-dist-20040408-1pc-chy-cmj.patch</p><p> 下載后,復(fù)制到系統(tǒng)的目錄下,輸入以下指令,并執(zhí)行:</p><p> cat uClinux-dist-20040408-1pc-chy-cmj.patch<
92、;/p><p> 執(zhí)行完成后,在編譯uClinux內(nèi)核是,選擇系統(tǒng)的內(nèi)核配置的時(shí)候,可以找到LPC2200的選項(xiàng)。</p><p><b> 配置uClinux</b></p><p> 安裝完成后,可以通過(guò)make config,make xconfig來(lái)配置uClinux,也可以通過(guò)make menuconfig來(lái)配置。</p>
93、;<p> 各命令使用范圍不一樣,但效果是相同的,各命令說(shuō)明如表4.1所示。</p><p> 表4.1 uClinux的配置方式</p><p> 文本菜單這種配置方式,可以在終端控制臺(tái)上來(lái)使用,也可以通過(guò)圖形終端進(jìn)行使用。為了使得配置具有更強(qiáng)的直觀性,系統(tǒng)設(shè)計(jì)采用了文本菜單這種配置方式。</p><p> 配置uClinux和文件系統(tǒng)具體的
94、操作方法如下[24]:</p><p> ?。?)通過(guò)已經(jīng)建立的終端或者控制臺(tái),找到uClinux源代碼所在的目錄,系統(tǒng)為://usr/src/uClinux-dist ,</p><p> 執(zhí)行命令:cd /usr/src/uClinux-dist</p><p> ?。?)如果不是進(jìn)行第一次編譯,需要先清除以前編譯產(chǎn)生的輔助文件和目標(biāo)文件,以保證編譯的正確性。
95、如果是第一次編譯則可省略。</p><p> 執(zhí)行命令:make distclean</p><p> ?。?)通過(guò)文本菜單方式配置uClinux</p><p> 執(zhí)行命令:make menuconfig</p><p> 執(zhí)行了make menuconfig語(yǔ)句后,將會(huì)出現(xiàn)如圖4.1 配置內(nèi)核界面。</p><p
96、> 圖4.1 配置內(nèi)核界面</p><p> 界面中有提示使用“↑”“↓”選擇配置模塊,使用空格鍵選擇或者取消,使用“→”“←”,選擇命令,最后使用回車(chē)鍵Enter執(zhí)行命令。</p><p> 第一項(xiàng)可進(jìn)行廠(chǎng)商/產(chǎn)品設(shè)置,選擇第二項(xiàng)則進(jìn)行內(nèi)核版本和函數(shù)庫(kù)設(shè)置,各選項(xiàng)的含義以及設(shè)置如表4.2所示。</p><p> 表4.2 uClinux中各個(gè)選項(xiàng)的
97、描述</p><p> 在設(shè)計(jì)的時(shí)候,根據(jù)系統(tǒng)需求,以及所選用的芯片廠(chǎng)商等信息,進(jìn)行系統(tǒng)的配置,主要是根據(jù)以上信息描述,進(jìn)行設(shè)置。進(jìn)入Linux內(nèi)核配內(nèi)核資源的界面,如圖4.2所示。</p><p> 圖4.2 內(nèi)核資源界面</p><p> 配置完畢后選擇Exit,然后在提示下是否保存的時(shí)候選擇保存, 配置完畢后,選擇Exit,在對(duì)話(huà)提示選擇保存。</
98、p><p> (4)建立源代碼文件依賴(lài)關(guān)系(第一次必須執(zhí)行)</p><p> 執(zhí)行命令:make dep</p><p><b> ?。?)編譯內(nèi)核</b></p><p> 執(zhí)行命令: make</p><p> 第(4)和第(5)進(jìn)行內(nèi)核的編譯,執(zhí)行的時(shí)間會(huì)比較長(zhǎng)。執(zhí)行結(jié)束后,會(huì)得到我們
99、需要的兩個(gè)目錄:ROMfs文件和images內(nèi)核文件。在ROMfs文件中存放嵌入式系統(tǒng)運(yùn)行所需要的應(yīng)用程序。Images內(nèi)核文件主要存放那個(gè)內(nèi)核目錄。 </p><p> 經(jīng)過(guò)以上程序,uClinux的內(nèi)核編譯全部完成。</p><p><b> 構(gòu)建文件系統(tǒng)</b></p><p> 構(gòu)建文件系統(tǒng)就是在物理設(shè)備上構(gòu)建文件組織和目錄,便于
100、系統(tǒng)進(jìn)行文件的組織和管理,它是uClinux系統(tǒng)處理數(shù)據(jù)的基礎(chǔ)條件。uClinux系統(tǒng)的所有有效數(shù)據(jù),包括用程序、庫(kù)、系統(tǒng)文件和用戶(hù)文件都按照目錄存放在文件系統(tǒng)中。uClinux系統(tǒng)的文件系統(tǒng),在組織上按照樹(shù)狀結(jié)構(gòu)的方式進(jìn)行組織,也就是頂部是根目錄,從根向下進(jìn)行分支,通常把文件系統(tǒng)的最頂端成為根目錄。uClinux系統(tǒng)通常只有一個(gè)文件樹(shù),這個(gè)文件樹(shù)以樹(shù)根“/”作為起點(diǎn),其它的文件和外部設(shè)備按照樹(shù)的形式,掛結(jié)在這個(gè)文件樹(shù)上[25]。uCl
101、inux根目錄下可以見(jiàn)到以下結(jié)構(gòu):</p><p><b> /bin</b></p><p><b> /home</b></p><p><b> /etc</b></p><p><b> /mnt</b></p><p&
102、gt; /lost+found</p><p> /tmp /dev</p><p> /sbin /var /boot /root</p><p> /lib /proc /usr</p><p> 設(shè)計(jì)中選擇的ROMFS文件系統(tǒng),主要是考慮到系統(tǒng)的存貯結(jié)構(gòu)。因?yàn)檫@種文件系統(tǒng)的內(nèi)核比較小,通常情況下只有4000字節(jié)左右,可以
103、有效的節(jié)約系統(tǒng)的資源。內(nèi)核在連接的時(shí)候,只需要連接到ROMFS文件系統(tǒng),后面用模塊裝載工具把其它相關(guān)的模塊和文件系統(tǒng)裝載進(jìn)來(lái),而不是所有的文件和模塊全部掛接。 </p><p> ROMFS文件系統(tǒng)的底層結(jié)構(gòu)也是非常的簡(jiǎn)單,也可以用來(lái)進(jìn)行塊設(shè)備的操作。ROMFS文件系統(tǒng)的構(gòu)成,它的文件系統(tǒng)頭由16字節(jié)組成,文件系統(tǒng)名由4字節(jié)組成,文件系統(tǒng)的大由4字節(jié)組成,其次還有4字節(jié)的校驗(yàn)和4字節(jié)的卷標(biāo)名。然后就是文件的頭和
104、數(shù)據(jù)了,文件頭也是由16字節(jié)組成,開(kāi)始的是文件模式信息,通常占用4比特的,后面的28比特,是這樣分配的:4字節(jié)為下后一個(gè)文件的地址偏移量,4字節(jié)為文件的鏈接信息、4字節(jié)為文件大小、4字節(jié)為文件的校驗(yàn)和。從后面的第16字節(jié)開(kāi)始,顯示的是文件名和相關(guān)其數(shù)據(jù)[26]。</p><p> ROMFS是一種只讀的文件系統(tǒng),由于它是只讀的,就決定了這個(gè)文件系統(tǒng)是非常小的。如果設(shè)計(jì)中需要一種可寫(xiě)的文件系統(tǒng),那么,就需要尋找一
105、種可以在RAM上使用的可寫(xiě)文件系統(tǒng)。在設(shè)計(jì)中,根據(jù)需要選擇了RAMFS文件系統(tǒng),這種文件系統(tǒng)可以用于RAMDISK文件系統(tǒng)的寫(xiě)操作,它與CRAMFS的結(jié)合可以適合大多數(shù)嵌入式系統(tǒng)的需求。制作ramdisk具體步驟如下[27]:</p><p> 一般在內(nèi)核編譯時(shí),支持ramdisk的內(nèi)核選項(xiàng):CONFIG BLK DEV RAM,CONFIG RD RELEASE BLOCKS, CONFIG BLK DEV
106、IlVITRD:同時(shí)在PC機(jī)上按照如下的方法來(lái)制作:</p><p><b> ?。?)制作映象文件</b></p><p> 建立虛擬成塊的文件init.img</p><p> 執(zhí)行命令:#dd if=/dev/zero of=init.img bs=1024 count=500</p><p> 格式化生成的
107、塊設(shè)備:init.img文件</p><p> 執(zhí)行命令:#mke2fs –m0 –F init.img</p><p> ?。?)配置根文件系統(tǒng),將ini.img和fomfs.img加載到主機(jī)文件系統(tǒng)</p><p> 執(zhí)行命令:#mount init.img ram /-o loop</p><p> 執(zhí)行命令:#mount rom
108、fs.img rom/-o loop</p><p> 建立在ramfs中需要的目錄,也就是在ram目錄下建立子目錄。</p><p> 執(zhí)行命令:#mkdir ram/bin</p><p> 執(zhí)行命令:#mkdir ram/dev</p><p> 執(zhí)行命令:#mkdir ram/etc</p><p>
109、 執(zhí)行命令:#mkdir ram/var</p><p> 拷貝必須的文件到ramfs中</p><p> 執(zhí)行命令:#cp –a rom/etc/* ram/etc/</p><p> 執(zhí)行命令:#cp –a rom/bin/sh ram/bin/</p><p> 執(zhí)行命令:#cp –a rom/bin/init ram/bin/
110、int</p><p><b> 創(chuàng)建設(shè)備節(jié)點(diǎn):</b></p><p> 執(zhí)行命令:# mknod ram/dev/ttS0 c 4 64</p><p> 執(zhí)行命令:# mknod ram/dev/console c 51</p><p> 執(zhí)行指令的說(shuō)明:第一條指令創(chuàng)建設(shè)備ttyS0,即第0個(gè)串口設(shè)備,&l
111、t;/p><p> 主設(shè)備的號(hào)為4,從設(shè)備的號(hào)為64,第二條指令是建立字符設(shè)備console,即控制臺(tái),主設(shè)備號(hào)為5從設(shè)備號(hào)為1。</p><p> 最后卸載init.img和romfs.img.確保 init.img的修改已經(jīng)保存。</p><p> 執(zhí)行命令:# umount ram</p><p> 執(zhí)行命令:# umount ro
112、m</p><p> 到此RAM DISK制作完畢。</p><p> 內(nèi)核編譯和文件系統(tǒng)構(gòu)建完成以后通過(guò)網(wǎng)絡(luò)FTP的方式把Linux.bin和ramdis下載到開(kāi)發(fā)板上,這樣完成了uClinux的移植。</p><p><b> PC機(jī)上的程序設(shè)計(jì)</b></p><p> 嵌入式TCP /IP分析 </
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì).pdf
- 嵌入式畢業(yè)設(shè)計(jì)論文基于arm的嵌入式gui點(diǎn)菜系統(tǒng)
- 基于arm的嵌入式_網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 基于arm的嵌入式智能家居遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于arm9嵌入式網(wǎng)關(guān)研究畢業(yè)設(shè)計(jì)
- 基于arm和linux的嵌入式數(shù)碼相框系統(tǒng)設(shè)計(jì)-畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)--基于嵌入式系統(tǒng)的井下智能通信分站的研究
- 基于ARM的嵌入式系統(tǒng)移植設(shè)計(jì).pdf
- 數(shù)碼相框畢業(yè)設(shè)計(jì)論文--基于arm和linux的嵌入式數(shù)碼相框系統(tǒng)設(shè)計(jì)
- 基于ARM的MVB通信系統(tǒng)嵌入式VCU的設(shè)計(jì)與實(shí)現(xiàn).pdf
- arm嵌入式系統(tǒng)課程設(shè)計(jì)-基于嵌入式系統(tǒng)的煙氣檢測(cè)監(jiān)控系統(tǒng)
- 基于ARM的嵌入式系統(tǒng)硬件設(shè)計(jì).pdf
- 電子專(zhuān)業(yè)畢業(yè)設(shè)計(jì)外文翻譯--基于arm的嵌入式系統(tǒng)的速成樣機(jī)平臺(tái)設(shè)計(jì)
- 畢業(yè)論文--基于arm的嵌入式車(chē)燈檢測(cè)系統(tǒng)設(shè)計(jì)
- 基于arm嵌入式的以太網(wǎng)通信程序設(shè)計(jì)
- 基于arm嵌入式系統(tǒng)的交通燈設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于arm9嵌入式視頻播放的設(shè)計(jì)與實(shí)現(xiàn)
- 嵌入式課程設(shè)計(jì)--基于arm嵌入式圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 基于arm嵌入式系統(tǒng)的無(wú)線(xiàn)數(shù)據(jù)采系統(tǒng)設(shè)計(jì)
- 基于ARM的嵌入式USB主機(jī)系統(tǒng)設(shè)計(jì).pdf
評(píng)論
0/150
提交評(píng)論