嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā).ppt_第1頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā).ppt_第2頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā).ppt_第3頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā).ppt_第4頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā).ppt_第5頁(yè)
已閱讀5頁(yè),還剩113頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā) ARM與C/OS- 基本概念及設(shè)計(jì)方法,馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu) CISC與RISC 影響CPU性能的因素 存儲(chǔ)器系統(tǒng) I/O接口,一、嵌入式系統(tǒng)硬件基礎(chǔ),典型嵌入式系統(tǒng)基本組成硬件,1.1 馮諾依曼體系結(jié)構(gòu)模型,指令寄存器,控制器,數(shù)據(jù)通道,輸入,輸出,中央處理器,存儲(chǔ)器,程序,指令0,指令1,指令2,指令3,指令4,數(shù)據(jù),數(shù)據(jù)0,數(shù)據(jù)1,數(shù)據(jù)2,1.2 哈佛體系結(jié)構(gòu),指令寄存器,控制器,數(shù)據(jù)通道,輸入,輸出,中央處理器,程序存儲(chǔ)器,指令0,指令1,指令2,數(shù)據(jù)存儲(chǔ)器,數(shù)據(jù)0,數(shù)據(jù)1,數(shù)據(jù)2,地址,指令,地址,數(shù)據(jù),1.3 CISC和RISC,CISC:復(fù)雜指

2、令集(Complex Instruction Set Computer) 具有大量的指令和尋址方式 8/2原則:80%的程序只使用20%的指令 大多數(shù)程序只使用少量的指令就能夠運(yùn)行。,RISC:精簡(jiǎn)指令集(Reduced Instruction Set Computer) 在通道中只包含最有用的指令 確保數(shù)據(jù)通道快速執(zhí)行每一條指令 使CPU硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單,1.4 影響CPU性能的因素:流水線(xiàn)、超標(biāo)量和緩存,流水線(xiàn)技術(shù):幾個(gè)指令可以并行執(zhí)行 提高了CPU的運(yùn)行效率 內(nèi)部信息流要求通暢流動(dòng),譯碼,取指,執(zhí)行add,譯碼,取指,執(zhí)行sub,譯碼,取指,執(zhí)行cmp,時(shí)間,Add,Sub,Cm

3、p,超標(biāo)量執(zhí)行,超標(biāo)量執(zhí)行:超標(biāo)量CPU采用多條流水線(xiàn)結(jié)構(gòu),執(zhí)行1,預(yù)取,指令CACHE,譯碼2,譯碼1,執(zhí)行2,執(zhí)行1,預(yù)取,譯碼2,譯碼1,執(zhí)行2,流水線(xiàn)1,流水線(xiàn)2,數(shù)據(jù),高速緩存(CACHE),1、為什么采用高速緩存 微處理器的時(shí)鐘頻率比內(nèi)存速度提高快得多,高速緩存可以提高內(nèi)存的平均性能。 2、高速緩存的工作原理 高速緩存是一種小型、快速的存儲(chǔ)器,它保存部分主存內(nèi)容的拷貝。,CPU,高速緩存控制器,CACHE,主存,數(shù)據(jù),數(shù)據(jù),地址,總線(xiàn)和總線(xiàn)橋,1.5 存儲(chǔ)器系統(tǒng),RAM:隨機(jī)存取存儲(chǔ)器, SRAM:靜態(tài)隨機(jī)存儲(chǔ)器, DRAM:動(dòng)態(tài)隨機(jī)存儲(chǔ)器 1)SRAM比DRAM快 2)SRAM比

4、DRAM耗電多 3)DRAM存儲(chǔ)密度比SRAM高得多 4)DRM需要周期性刷新 ROM:只讀存儲(chǔ)器 FLASH:閃存,SRAM和DRAM,1)SRAM 2)DRAM,CS,R/W,Addr,Data,CS,R/W,CAS,Data,RAS,Addr,輸入輸出接口,I/O A/D、D/A 鍵盤(pán) LCD 存儲(chǔ)器接口 設(shè)備接口,例如USB,USB:Universal Serial Bus,通用串行總線(xiàn) 大家生活中常見(jiàn)的與USB有關(guān)的東西有: U盤(pán)、移動(dòng)硬盤(pán)、無(wú)驅(qū)型的MP3(U盤(pán)) USB接口的鍵盤(pán)、Mouse、打印機(jī)、數(shù)碼相機(jī) 即插即用,熱插撥,系統(tǒng)不需重啟便可工作,且易于擴(kuò)展(127個(gè)) USB2

5、.0以低成本實(shí)現(xiàn)高達(dá)480Mb/s的傳輸率(USB1.1的全速設(shè)備可達(dá)12Mb/s) 接口標(biāo)準(zhǔn)統(tǒng)一、端口供電,一個(gè)典型的USB通訊系統(tǒng),HOST系統(tǒng),HUB,DEVICE,D,DEVICE,應(yīng)用軟件+驅(qū)動(dòng)程序Ms.Win+接口芯片,HUB,U盤(pán),其他,數(shù)據(jù)采集器,驅(qū)動(dòng)代碼+嵌入式處理器+HOST芯片,HUB,U盤(pán),其他,數(shù)據(jù)采集器,通用系統(tǒng)模型,PC機(jī)中的情況,嵌入式系統(tǒng)應(yīng)用,二、嵌入式系統(tǒng)軟件基礎(chǔ),操作系統(tǒng)的分類(lèi) 嵌入式實(shí)時(shí)操作系統(tǒng) 前臺(tái)與后臺(tái) 多任務(wù),任務(wù)優(yōu)先級(jí),調(diào)度 非占先式與占先式、可重入型函數(shù),3.1 操作系統(tǒng)的分類(lèi),(1)順序執(zhí)行系統(tǒng):系統(tǒng)內(nèi)只含有一個(gè)程序,獨(dú)占CPU的運(yùn)行時(shí)間,按

6、語(yǔ)句順序執(zhí)行該程序,直至執(zhí)行完畢,另一程序才能啟動(dòng)運(yùn)行。如DOS操作系統(tǒng)。 (2)分時(shí)操作系統(tǒng):系統(tǒng)內(nèi)同時(shí)可以有多個(gè)程序運(yùn)行,把CPU的時(shí)間分按順序分成若干片,每個(gè)時(shí)間片內(nèi)執(zhí)行不同的程序。如UNIX (3)實(shí)時(shí)操作系統(tǒng):系統(tǒng)內(nèi)有多個(gè)程序運(yùn)行,每個(gè)程序有不同的優(yōu)先級(jí),只有最高優(yōu)先級(jí)的任務(wù)才能占有CPU的控制權(quán)。,按實(shí)時(shí)性分類(lèi),強(qiáng)實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒或微秒級(jí)(數(shù)控機(jī)床); 一般實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒幾秒的數(shù)量級(jí)上,其實(shí)時(shí)性的要求比強(qiáng)實(shí)時(shí)系統(tǒng)要差一些(電子菜譜的查詢(xún))。 弱實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間約為數(shù)十秒或更長(zhǎng)(工程機(jī)械)。,1)循環(huán)輪詢(xún)系統(tǒng):(Polling Loop) 最簡(jiǎn)單

7、的軟件結(jié)構(gòu)是循環(huán)輪詢(xún),程序依次檢查系統(tǒng)的每一個(gè)輸入條件,一旦條件成立就進(jìn)行相應(yīng)的處理。 Initialize() While(true) if(condition_1) action_1(); if(condition_2) action_2(); if(condition_n) acition_n(); ,按軟件結(jié)構(gòu)分類(lèi),2)事件驅(qū)動(dòng)系統(tǒng):(Event-Driven system) 事件驅(qū)動(dòng)系統(tǒng)是能對(duì)外部事件直接響應(yīng)的系統(tǒng)。它包括前后臺(tái)、實(shí)時(shí)多任務(wù)、多處理器等,是嵌入式實(shí)時(shí)系統(tǒng)的主要形式。 應(yīng)用程序是一個(gè)無(wú)限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成后臺(tái)行為(backgrou

8、nd)。中斷服務(wù)程序處理異步事件,這部分可以看成前臺(tái)行為(foreground)。 后臺(tái)也可以叫做任務(wù)級(jí),前臺(tái)也叫中斷級(jí)。 例如,很多基于微處理器的產(chǎn)品采用前后臺(tái)系統(tǒng)設(shè)計(jì),如微波爐、電話(huà)機(jī)、玩具等。從省電的角度出發(fā),平時(shí)微處理器處在停機(jī)狀態(tài),所有的事都靠中斷服務(wù)來(lái)完成。,前后臺(tái)系統(tǒng)(后臺(tái)循環(huán)、前臺(tái)中斷),ISR,ISR,后臺(tái) 前臺(tái),ISR,時(shí)間,代碼的臨界區(qū)也稱(chēng)為臨界區(qū),指處理時(shí)不可分割的代碼。一旦這部分代碼開(kāi)始執(zhí)行,則不允許任何中斷打入。 在進(jìn)入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完以后要立即開(kāi)中斷(在任務(wù)切換時(shí),地址、指令、數(shù)據(jù)等寄存器堆棧保護(hù))。,代碼的臨界區(qū),多任務(wù)(任務(wù)、進(jìn)程和線(xiàn)程)

9、,一個(gè)任務(wù),也稱(chēng)作一個(gè)線(xiàn)程,是一個(gè)簡(jiǎn)單的運(yùn)行程序。每個(gè)任務(wù)都是整個(gè)應(yīng)用的某一部分,每個(gè)任務(wù)被賦予一定的優(yōu)先級(jí), 有它自己的一套CPU寄存器和自己的??臻g。 多任務(wù)運(yùn)行的實(shí)現(xiàn)實(shí)際上是靠CPU(中央處理單元)在許多任務(wù)之間轉(zhuǎn)換、調(diào)度。 CPU只有一個(gè),輪番服務(wù)于一系列任務(wù)中的某一個(gè)。多任務(wù)運(yùn)行使CPU的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。 在實(shí)際應(yīng)用中,多任務(wù)的最大特點(diǎn)是,開(kāi)發(fā)人員可以將很復(fù)雜的應(yīng)用程序?qū)哟位C合實(shí)驗(yàn)(時(shí)鐘、位圖、USB、KEY)。,任務(wù)的狀態(tài),系統(tǒng)內(nèi)核(Kernel)與調(diào)度(Scheduler),多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個(gè)任務(wù),或者說(shuō)為每個(gè)任務(wù)分配CPU時(shí)間,并且負(fù)責(zé)任

10、務(wù)之間的通信。 內(nèi)核提供的基本服務(wù)是任務(wù)切換。內(nèi)核本身也增加了應(yīng)用程序的額外負(fù)荷,代碼空間增加ROM用量,內(nèi)核本身的數(shù)據(jù)結(jié)構(gòu)增加了RAM的用量。內(nèi)核本身對(duì)CPU的占用時(shí)間一般在2到5個(gè)百分點(diǎn)之間。 調(diào)度(Scheduler)是內(nèi)核的主要職責(zé)之一,就是要決定該輪到哪個(gè)任務(wù)運(yùn)行了。多數(shù)實(shí)時(shí)內(nèi)核是基于優(yōu)先級(jí)調(diào)度法的。每個(gè)任務(wù)根據(jù)其重要程度的不同被賦予一定的優(yōu)先級(jí)?;趦?yōu)先級(jí)的調(diào)度法指,CPU總是讓處在就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)先運(yùn)行。,任務(wù)優(yōu)先級(jí),靜態(tài)優(yōu)先級(jí) 應(yīng)用程序執(zhí)行過(guò)程中諸任務(wù)優(yōu)先級(jí)不變,則稱(chēng)之為靜態(tài)優(yōu)先級(jí)。在靜態(tài)優(yōu)先級(jí)系統(tǒng)中,諸任務(wù)以及它們的時(shí)間約束在程序編譯時(shí)是已知的 動(dòng)態(tài)優(yōu)先級(jí) 應(yīng)用程序執(zhí)

11、行過(guò)程中,任務(wù)的優(yōu)先級(jí)是可變的,則稱(chēng)之為動(dòng)態(tài)優(yōu)先級(jí)。實(shí)時(shí)內(nèi)核應(yīng)當(dāng)避免出現(xiàn)優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題。,優(yōu)先級(jí)反轉(zhuǎn),信號(hào)量(Semaphore),信號(hào)量是60年代中期Edgser Dijkstra 發(fā)明的。信號(hào)量實(shí)際上是一種約定機(jī)制,在多任務(wù)內(nèi)核中普遍使用.信號(hào)量用于: 控制共享資源的使用權(quán)(滿(mǎn)足互斥條件) 標(biāo)志某事件的發(fā)生 使兩個(gè)任務(wù)的行為同步 信號(hào)與信號(hào)量在英文中都叫做Semaphore,并不加以區(qū)分,而說(shuō)它有兩種類(lèi)型,二進(jìn)制型(binary)和計(jì)數(shù)器型(counting),死鎖(或抱死) Deadlock,死鎖也稱(chēng)作抱死,指兩個(gè)任務(wù)無(wú)限期地互相等待對(duì)方控制著的資源。設(shè)任務(wù)T1正獨(dú)享資源R1,任務(wù)T2在

12、獨(dú)享資源T2,而此時(shí)T1又要獨(dú)享R2,T2也要獨(dú)享R1,于是哪個(gè)任務(wù)都沒(méi)法繼續(xù)執(zhí)行了,發(fā)生了死鎖。最簡(jiǎn)單的防止發(fā)生死鎖的方法是讓每個(gè)任務(wù)都: 先得到全部需要的資源再做下一步的工作 用同樣的順序去申請(qǐng)多個(gè)資源 釋放資源時(shí)使用相反的順序,本節(jié)提要,1,3,2,4,嵌入式系統(tǒng)硬件基礎(chǔ),嵌入式BSP的基本概念,嵌入式系統(tǒng)軟件基礎(chǔ),嵌入式系統(tǒng)設(shè)計(jì)方法,5,一個(gè)嵌入式設(shè)計(jì)方法實(shí)例,嵌入式系統(tǒng)的軟/硬件框架,基于知識(shí)平臺(tái)的開(kāi)發(fā)方法,嵌入式系統(tǒng)設(shè)計(jì)步驟,系統(tǒng)需求分析:確定設(shè)計(jì)任務(wù)和設(shè)計(jì)目標(biāo),并提煉出設(shè)計(jì)規(guī)格說(shuō)明書(shū),作為正式設(shè)計(jì)指導(dǎo)和驗(yàn)收的標(biāo)準(zhǔn)。系統(tǒng)的需求一般分功能性需求和非功能性需求兩方面。功能性需求是系統(tǒng)的

13、基本功能,如輸入輸出信號(hào)、操作方式等;非功能需求包括系統(tǒng)性能、成本、功耗、體積、重量等因素。 體系結(jié)構(gòu)設(shè)計(jì):描述系統(tǒng)如何實(shí)現(xiàn)所述的功能和非功能需求,包括對(duì)硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選型等。一個(gè)好的體系結(jié)構(gòu)是設(shè)計(jì)成功與否的關(guān)鍵。 硬件/軟件協(xié)同設(shè)計(jì):基于體系結(jié)構(gòu),對(duì)系統(tǒng)的軟件、硬件進(jìn)行詳細(xì)設(shè)計(jì)。為了縮短產(chǎn)品開(kāi)發(fā)周期,設(shè)計(jì)往往是并行的。應(yīng)該說(shuō),嵌入式系統(tǒng)設(shè)計(jì)的工作大部分都集中在軟件設(shè)計(jì)上,采用面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)、模塊化設(shè)計(jì)是現(xiàn)代軟件工程經(jīng)常采用的方法。 系統(tǒng)集成:把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)單元設(shè)計(jì)過(guò)程中的錯(cuò)誤。 系統(tǒng)測(cè)試:對(duì)設(shè)計(jì)好的

14、系統(tǒng)進(jìn)行測(cè)試,看其是否滿(mǎn)足規(guī)格說(shuō)明書(shū)中給定的功能要求。,嵌入式開(kāi)發(fā)工具與開(kāi)發(fā)環(huán)境,嵌入式軟件開(kāi)發(fā)流程,開(kāi)發(fā)平臺(tái)簡(jiǎn)介,幾種常用的開(kāi)發(fā)方法,指令集模擬器 一種利用PC機(jī)端的仿真開(kāi)發(fā)軟件模擬調(diào)試的方法。 駐留監(jiān)控軟件 駐留監(jiān)控程序運(yùn)行在目標(biāo)板上,PC機(jī)端調(diào)試軟件可通過(guò)并口、串口、網(wǎng)口與之交互,以完成程序執(zhí)行、存儲(chǔ)器及寄存器讀寫(xiě)、斷點(diǎn)設(shè)置等任務(wù) JTAG仿真器 通過(guò)ARM芯片的JTAG邊界掃描口與ARM核進(jìn)行通信,不占用目標(biāo)板的資源,是目前使用最廣泛的調(diào)試手段 在線(xiàn)仿真器 使用仿真頭代替目標(biāo)板上的CPU,可以完全仿真ARM芯片的行為。但結(jié)構(gòu)較復(fù)雜,價(jià)格昂貴,通常用于A(yíng)RM硬件開(kāi)發(fā)中,需求分析與評(píng)估 功

15、能定義與軟硬件選型 概要設(shè)計(jì)與軟硬件劃分 軟硬件協(xié)同詳細(xì)設(shè)計(jì) 集成調(diào)試 維護(hù)與升級(jí),設(shè)計(jì)步驟,謝 謝 各 位,嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā) ARM與C/OS- 基于A(yíng)RM的硬件系統(tǒng)結(jié)構(gòu)設(shè)計(jì),本節(jié)提要,1,3,2,5,4,6,基于A(yíng)RM的硬件系統(tǒng)體系結(jié)構(gòu),存儲(chǔ)器接口設(shè)計(jì),網(wǎng)絡(luò)接口設(shè)計(jì),I/O接口設(shè)計(jì),人機(jī)交互接口設(shè)計(jì),其它通訊接口設(shè)計(jì),基于A(yíng)RM的硬件設(shè)計(jì),主要介紹基于A(yíng)RM7的嵌入式硬件開(kāi)發(fā)平臺(tái)的設(shè)計(jì)方法,包括結(jié)構(gòu)、主要接口、存儲(chǔ)器選用方案以及外設(shè)、顯示等方面的內(nèi)容。 嵌入式硬件開(kāi)發(fā)平臺(tái)的體系結(jié)構(gòu) 外圍存儲(chǔ)器接口設(shè)計(jì)方法 鍵盤(pán)、LCD等人機(jī)交互接口的設(shè)計(jì) 觸摸屏的設(shè)計(jì) 以太網(wǎng)設(shè)計(jì) CAN總線(xiàn)設(shè)計(jì),

16、Samsung S3C44B0X,Samsung S3C44B0X微處理器是三星公司專(zhuān)為手持設(shè)備和一般應(yīng)用提供的高性?xún)r(jià)比和高性能的微控制器解決方案,它使用ARM7TDMI核,工作在66MHZ。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件: 8KB Cache、外部存儲(chǔ)器控制器、LCD控制器、4個(gè)DMA通道、2通道UART、1個(gè)多主I2C總線(xiàn)控制器、1個(gè)IIS總線(xiàn)控制器,5通道PWM定時(shí)器及一個(gè)內(nèi)部定時(shí)器、71個(gè)通用I/O口、8個(gè)外部中斷源、實(shí)時(shí)時(shí)鐘、8通道10位ADC等。,基于A(yíng)RM的嵌入式硬件平臺(tái)體系結(jié)構(gòu),芯片體系結(jié)構(gòu),S3C44B0X存儲(chǔ)系統(tǒng)的特征,支持?jǐn)?shù)據(jù)存儲(chǔ)的大/小端選

17、擇(通過(guò)外部引腳進(jìn)行選擇) 地址空間:具有8個(gè)存儲(chǔ)體,每個(gè)存儲(chǔ)體可達(dá)32Mb,總共可達(dá)256Mb。 對(duì)所有存儲(chǔ)體的訪(fǎng)問(wèn)大小均可進(jìn)行改變(8位16位32位) 8個(gè)存儲(chǔ)體中,Bank0Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和FPEDOSDRAM等。 7個(gè)存儲(chǔ)體的起始地址固定,1個(gè)存儲(chǔ)體的起始地址可變。,復(fù)位后的S3C44B0X的存儲(chǔ)器映射表,系統(tǒng)的存儲(chǔ)空間分配,Bank0:兩片512KFlash,放置系統(tǒng)引導(dǎo)程序,系統(tǒng)上電復(fù)位后,PC指針自動(dòng)指向Bank0的第一個(gè)單元,進(jìn)行系統(tǒng)自舉。 Bank1:K9F2808(三星 16Mbyte Flash),非線(xiàn)性尋址

18、。具體的時(shí)序可以參考K9F2808的datasheet Bank2:USBN9603。USB設(shè)備端接口芯片,占用系統(tǒng)外部中斷0。8位數(shù)據(jù)總線(xiàn)。 Bank3、Bank4未接設(shè)備。可以供擴(kuò)展使用 Bank5:RTL8019AS,ISA總線(xiàn)兼容的10M以太網(wǎng)(PHYMAC層)控制芯片。占用系統(tǒng)外部中斷1,16位數(shù)據(jù)總線(xiàn),Bank6:SDRAM,起始地址為0 xC000000。在SDRAM中,前512Kbyte的空間劃分出來(lái),作為系統(tǒng)的LCD顯示緩沖區(qū)使用(更新其中的數(shù)據(jù),就可以更新LCD的顯示)。系統(tǒng)的程序存儲(chǔ)空間從0 xC080000開(kāi)始。也就是,引導(dǎo)系統(tǒng)的時(shí)候,需要把system.bin文件復(fù)制

19、到0 xC080000開(kāi)始的地址空間,把PC指針指向0 xC080000。 Bank7:未使用。可以擴(kuò)展另一片SDRAM,或者其他的外設(shè)。 系統(tǒng)的同步串行口(SIO),連接著觸摸屏控制芯片F(xiàn)M7843(與ADS7843完全兼容)。在同步串行口上,還可以擴(kuò)展其他的芯片??縄O口控制設(shè)備的片選信號(hào)(CS)來(lái)防止設(shè)備的沖突。 注:系統(tǒng)的擴(kuò)展接口上,A0的標(biāo)號(hào),連接在S3C44B0X的ADDR1上,后面的地址依次向后錯(cuò)位。,本節(jié)提要,1,3,2,5,4,6,基于A(yíng)RM的硬件系統(tǒng)體系結(jié)構(gòu),存儲(chǔ)器接口設(shè)計(jì),網(wǎng)絡(luò)接口設(shè)計(jì),I/O接口設(shè)計(jì),人機(jī)交互接口設(shè)計(jì),其它通訊接口設(shè)計(jì),S3C44B0X與FLASH的連接

20、(Half Word方式),使用Bank0上的兩片512Kb2來(lái)放置系統(tǒng)BIOS,系統(tǒng)上電以后,PC指針自動(dòng)指向Bank0的第一個(gè)單元,開(kāi)始進(jìn)行系統(tǒng)自舉。系統(tǒng)自舉完成以后,便從硬盤(pán)中將系統(tǒng)文件和用戶(hù)應(yīng)用程序復(fù)制到SDRAM內(nèi)存中執(zhí)行。 Bank1上接16M非線(xiàn)性Flash,當(dāng)做系統(tǒng)硬盤(pán)使用,可以構(gòu)造文件系統(tǒng),存放海量數(shù)據(jù)。 用SDRAM當(dāng)作系統(tǒng)內(nèi)存,只有Bank6/Bank7能支持SDRAM,所以將SDRAM接在Bank6上。如果同時(shí)使用Bank6/Bank7,則要求連接相同容量的存儲(chǔ)器,而且其地址空間在物理上是連續(xù)的。,存儲(chǔ)器接口設(shè)計(jì),關(guān)于BOOT ROM,Bank0:系統(tǒng)的啟動(dòng)ROM(Fl

21、ash Rom)。在系統(tǒng)復(fù)位的時(shí)候,處理器的PC(程序計(jì)數(shù)器)指針指向0 x0地址。在Bank0的起始地址的程序,就是系統(tǒng)的初始化程序。此程序的主要任務(wù)是: 1、管理處理器的中斷服務(wù)程序 處理器的中斷是從0 x0地址開(kāi)始,引導(dǎo)ROM負(fù)責(zé)把這一部分的中斷映射到另一個(gè)區(qū)域,以便系統(tǒng)處理。具體的做法,可以參考44binit.s里面的代碼。(這部分代碼是三星主頁(yè)可以提供,它把系統(tǒng)的中斷,映射到了不同的指針?biāo)赶虻牡刂房臻g(主要就是系統(tǒng)RAM的空間)。,2、初始化硬件平臺(tái),配置其他的Bank S3C44B0X的Bank0是通過(guò)外部的一個(gè)管腳提供的上拉、下拉電阻來(lái)配置的。主要包括:數(shù)據(jù)位數(shù)(8位、16位、

22、32位),數(shù)據(jù)格式(大端、小端)。而其他的Bank的配置,以及讀寫(xiě)周期等信息是靠Bank0內(nèi)部的代碼配置相應(yīng)的寄存器來(lái)實(shí)現(xiàn)的。同時(shí),系統(tǒng)的引導(dǎo)Rom也負(fù)責(zé)配置系統(tǒng)的其他的一些寄存器,比如,系統(tǒng)的PLL(鎖頻環(huán))配置,系統(tǒng)的IO口等一些端口功能的配置等等。,3、系統(tǒng)自動(dòng)檢測(cè) 引導(dǎo)Rom負(fù)責(zé)檢測(cè)系統(tǒng)的啟動(dòng)所必須的外設(shè)是否正常。主要是系統(tǒng)的SDRAM的檢測(cè)。 4、系統(tǒng)的軟件設(shè)置,更新系統(tǒng)(system.bin) 用戶(hù)可以在系統(tǒng)啟動(dòng)的時(shí)候,按任意鍵,進(jìn)入系統(tǒng)的軟件設(shè)置狀態(tài)。通過(guò)引導(dǎo)Rom設(shè)置或者查看系統(tǒng)的一些軟件信息。包括:通過(guò)開(kāi)啟USB端口;更新系統(tǒng)文件system.bin;LCD顯示測(cè)試;演示程序

23、的裝載測(cè)試;鍵盤(pán)測(cè)試;觸摸屏的坐標(biāo)校準(zhǔn);觸摸屏測(cè)試;以太網(wǎng)地址的設(shè)置等,本節(jié)提要,1,3,2,5,4,6,基于A(yíng)RM的硬件系統(tǒng)體系結(jié)構(gòu),存儲(chǔ)器接口設(shè)計(jì),網(wǎng)絡(luò)接口設(shè)計(jì),I/O接口設(shè)計(jì),人機(jī)交互接口設(shè)計(jì),其它通訊接口設(shè)計(jì),嵌入式開(kāi)發(fā)板與PC機(jī)的串行通訊,嵌入式開(kāi)發(fā)板和PC機(jī)的通訊電纜可以按照如圖所示的方式連接。,I/O接口設(shè)計(jì),I/O接口電路也簡(jiǎn)稱(chēng)接口電路。它是主機(jī)和外圍設(shè)備之間交換信息的連接部件(電路)。它在主機(jī)和外圍設(shè)備之間的信息交換中起著橋梁和紐帶作用。設(shè)置接口電路的必要性: a)解決CPU和外圍設(shè)備之間的時(shí)序配合和通信聯(lián)絡(luò)問(wèn)題。 b)解決CPU和外圍設(shè)備之間的數(shù)據(jù)格式轉(zhuǎn)換和匹配問(wèn)題。 c)

24、解決CPU的負(fù)載能力和外圍設(shè)備端口選擇問(wèn)題。,I/O接口的編址方式,1)I/O接口獨(dú)立編址: 這種編址方式是將存儲(chǔ)器地址空間和I/O接口地址空間分開(kāi)設(shè)置,互不影響。設(shè)有專(zhuān)門(mén)的輸入指令(IN)和輸出指令(OUT)來(lái)完成I/O操作。 2)I/O接口與存儲(chǔ)器統(tǒng)一編址方式: 這種編址方式不區(qū)分存儲(chǔ)器地址空間和I/O接口地址空間,把所有的I/O接口的端口都當(dāng)作是存儲(chǔ)器的一個(gè)單元對(duì)待,每個(gè)接口芯片都安排一個(gè)或幾個(gè)與存儲(chǔ)器統(tǒng)一編號(hào)的地址號(hào)。也不設(shè)專(zhuān)門(mén)的輸入/輸出指令,所有傳送和訪(fǎng)問(wèn)存儲(chǔ)器的指令都可用來(lái)對(duì)I/O接口操作。,兩種編址方式有各自的優(yōu)缺點(diǎn),1)獨(dú)立編址方式: 主要優(yōu)點(diǎn):內(nèi)存地址空間與I/O接口地址空

25、間分開(kāi),互不影響,譯碼電路較簡(jiǎn)單,并設(shè)有專(zhuān)門(mén)的I/O指令,所以編程序易于區(qū)分,且執(zhí)行時(shí)間短,快速性好。 缺點(diǎn):只用I/O指令訪(fǎng)問(wèn)I/O端口,功能有限且要采用專(zhuān)用I/O周期和專(zhuān)用I/O控制線(xiàn),使微處理器復(fù)雜化。 2)統(tǒng)一編址方式 主要優(yōu)點(diǎn):訪(fǎng)問(wèn)內(nèi)存的指令都可用于I/O操作,數(shù)據(jù)處理功能強(qiáng);同時(shí)I/O接口可與存儲(chǔ)器部分共用譯碼和控制電路。 缺點(diǎn):一是I/O接口要占用存儲(chǔ)器地址空間的一部分;二是因不用專(zhuān)門(mén)的I/O指令,程序中較難區(qū)分I/O操作。,S3C44B0X的I/O接口,ARM系統(tǒng)完成I/O功能的標(biāo)準(zhǔn)方法是使用存儲(chǔ)器映射I/O。這種方法使用特定的存儲(chǔ)器地址。當(dāng)從這些地址加載或向這些地址存儲(chǔ)時(shí),它

26、們提供I/O功能。典型情況下,從存儲(chǔ)器映射I/O地址加載用于輸入,而向存儲(chǔ)器映射I/O地址存儲(chǔ)用于輸出。 S3C44B0X有71 個(gè)多功能輸入輸出管腳,構(gòu)成了7個(gè)I/O接口: 兩個(gè)9位的輸入/輸出接口(E和F) 兩個(gè)8位的輸入/輸出接口(D和G) 一個(gè)16位的輸入/輸出接口(C) 一個(gè)10位的輸出接口(A) 一個(gè)11位的輸出接口(B),本節(jié)提要,1,3,2,5,4,6,基于A(yíng)RM的硬件系統(tǒng)體系結(jié)構(gòu),存儲(chǔ)器接口設(shè)計(jì),網(wǎng)絡(luò)接口設(shè)計(jì),I/O接口設(shè)計(jì),人機(jī)交互接口設(shè)計(jì),其它通訊接口設(shè)計(jì),鍵盤(pán)接口設(shè)計(jì),鍵盤(pán)模塊鍵盤(pán)可能用來(lái)輸入數(shù)字型數(shù)據(jù)或者選擇控制設(shè)備的操作模式。 鍵盤(pán)有兩種方案:一是采用現(xiàn)有的一些芯片

27、實(shí)現(xiàn)鍵盤(pán)掃描;再就是用軟件實(shí)現(xiàn)鍵盤(pán)掃描。嵌入式控制器的功能很強(qiáng),可能允分利用這一資源。,一個(gè)瞬時(shí)接觸開(kāi)關(guān)(按鈕)放置在每一行與線(xiàn)一列的交叉點(diǎn)。矩陣所需的鍵的數(shù)目顯然根據(jù)應(yīng)用程序而不同。每一行由一個(gè)輸出端口的一位驅(qū)動(dòng),而每一列由一個(gè)電阻器上拉且供給輸入端口一位。,鍵盤(pán)掃描陣列,鍵盤(pán)掃描過(guò)程就是讓微處理器按有規(guī)律的時(shí)間間隔查看鍵盤(pán)矩陣,以確定是否有鍵被按下。每個(gè)鍵被分配一個(gè)稱(chēng)為掃描碼的唯一標(biāo)識(shí)符。應(yīng)用程序利用該掃描碼,根據(jù)按下的鍵來(lái)判定應(yīng)該采取什么行動(dòng)。 消抖算法: 組合鍵處理,鍵盤(pán)掃描方法,/得到按鍵的掃描碼,格式為0 xXYZW U16 GetScanKey() U16 key; U8 i,t

28、emp; for(i=1;i4); return key;,鍵盤(pán)掃描程序,LCD接口設(shè)計(jì),LCD顯示模塊 液晶顯示是一種被動(dòng)的顯示,它不能發(fā)光,只能使用周?chē)h(huán)境的光。它顯示圖案或字符只需很小能量。液晶顯示所用的液晶材料是一種兼有液態(tài)和固體雙重性質(zhì)的有機(jī)物,它的棒狀結(jié)構(gòu)在液晶盒內(nèi)一般平行排列,但在電場(chǎng)作用下能改變其排列方向。 LCD的背光: EL(場(chǎng)致發(fā)光):2000-3000小時(shí) 和LED光源:字符模式,50000小時(shí),LCD的顯示方式,反射型LCD:底偏光片后面加了一塊反射板,它一般在戶(hù)外和光線(xiàn)良好的辦公室使用。 透射型LCD:底偏光片是透射偏光片,它需要連續(xù)使用背光源,一般在光線(xiàn)差的環(huán)境使

29、用。 透反射型LCD:是處于以上兩者之間,底偏光片能部分反光,一般也帶背光源,光線(xiàn)好的時(shí)候,可關(guān)掉背光源;光線(xiàn)差時(shí),可點(diǎn)亮背光源使用LCD。,反射型LCD的結(jié)構(gòu),LCD通常由兩種方式,一種是帶有驅(qū)動(dòng)芯片的LCD模塊,基本上屬于半成品 如果有需要,也可以直接使用芯片上的內(nèi)置LCD控制器來(lái)構(gòu)造顯示模塊,它可以支持彩色/灰度/單色三種模式,灰度模式下可支持4級(jí)灰度和16級(jí)灰度,彩色模式下最多支持256色,LCD的實(shí)際尺寸可支持到320X240。,LCD的驅(qū)動(dòng)方式,嵌入式處理器與LCD的連接,嵌入式處理器,LCD模塊,數(shù)據(jù)總線(xiàn),寄存器選擇,使能信號(hào),從系統(tǒng)結(jié)構(gòu)上來(lái)講,由于顯示器模塊中已經(jīng)有顯示存儲(chǔ)器。

30、顯存中的每一個(gè)單元對(duì)應(yīng)LCD上的一個(gè)點(diǎn),只要顯存中的內(nèi)容改變,顯示結(jié)果便進(jìn)行刷新。于是便存在兩種刷新: 1直接根據(jù)系統(tǒng)要求對(duì)顯存進(jìn)行修改,一種是只需修改相應(yīng)的局部就可以,不需要判斷覆蓋等;另一種就是有覆蓋問(wèn)題,計(jì)算起來(lái)比較復(fù)雜,而且每做一點(diǎn)小的屏幕改變就進(jìn)行刷新,將增加系統(tǒng)負(fù)擔(dān)。 2 專(zhuān)門(mén)開(kāi)辟顯示內(nèi)存,在需要刷新時(shí)候由程序進(jìn)行顯示更新。這樣,不但可以減輕總線(xiàn)負(fù)荷,而且也比較合理,在有需要的時(shí)候進(jìn)行統(tǒng)一的顯示更新,界面也可以比較美觀(guān),不致由于無(wú)法預(yù)料的刷新動(dòng)作導(dǎo)致顯示界面閃爍。,LCD的顯示控制,前后臺(tái)雙重顯示緩存的顯示模塊結(jié)構(gòu),觸摸屏接口設(shè)計(jì),觸摸屏的分類(lèi) 電阻式觸摸屏 表面聲波觸摸屏 紅外式

31、觸摸屏 電容式觸摸屏,電阻式觸摸屏,分為四線(xiàn)電阻和五線(xiàn)電阻觸摸屏 電阻技術(shù)觸摸屏是一種對(duì)外界完全隔離的工作環(huán)境,故不怕灰塵、水汽和油污,可以用任何物體來(lái)觸摸,比較適合工業(yè)控制領(lǐng)域及辦公室內(nèi)有限人的使用。,四線(xiàn)電阻觸摸屏原理,測(cè)量原理,在觸摸點(diǎn)X、Y坐標(biāo)的測(cè)量過(guò)程中,測(cè)量電壓與測(cè)量點(diǎn)的等效電路圖所示,圖中P為測(cè)量點(diǎn),X,V,Y,Y,觸摸屏芯片,FM(ADS)7843的特點(diǎn),實(shí)現(xiàn)觸摸屏的驅(qū)動(dòng)選擇控制(X、Y通道) 對(duì)于輸入電壓或附加電壓進(jìn)行AD轉(zhuǎn)換 同步串行接口 最大轉(zhuǎn)換速率125KHz 可編程控制8位或者12位轉(zhuǎn)換模式 工作電壓2.7V-5.0V 兩個(gè)附加的輸入端口,FM7843與ARM的連接,

32、AD7843的工作時(shí)序,Arm同步串口(SIO)向ADS7843發(fā)送控制字 轉(zhuǎn)換完成后從ADS7843串口讀出電壓轉(zhuǎn)換值,A/D轉(zhuǎn)換時(shí)序(每次轉(zhuǎn)換需要24個(gè)時(shí)鐘周期),觸摸屏的驅(qū)動(dòng),#define ADS7843_CTRL_START0 x80 #define ADS7843_GET_X0 x50 #define ADS7843_GET_Y0 x10 #define ADS7843_CTRL_12MODE0 x0 #define ADS7843_CTRL_8MODE0 x8 #define ADS7843_CTRL_SER0 x4 #define ADS7843_CTRL_DFR0 x0 #d

33、efine ADS7843_CTRL_DISPWD0 x3/ Disable power down #define ADS7843_CTRL_ENPWD0 x0/ enable power down #define ADS7843_PIN_CS(16)/GPF6 #define ADS7843_PIN_PEN(15)/GPG5 /#define ADS7843_PIN_BUSY(16) /觸摸屏動(dòng)作/ #define TCHSCR_ACTION_NULL0 #define TCHSCR_ACTION_CLICK1/觸摸屏單擊 #define TCHSCR_ACTION_DBCLICK2/觸摸屏

34、雙擊 #define TCHSCR_ACTION_DOWN3/觸摸屏按下 #define TCHSCR_ACTION_UP4/觸摸屏抬起 #define TCHSCR_ACTION_MOVE5/觸摸屏移動(dòng) #define TCHSCR_IsPenNotDown()(rPDATG,函數(shù)TchScrGetScrXY(int *x, int *y)的結(jié)構(gòu),本節(jié)提要,1,3,2,5,4,6,基于A(yíng)RM的硬件系統(tǒng)體系結(jié)構(gòu),存儲(chǔ)器接口設(shè)計(jì),網(wǎng)絡(luò)接口設(shè)計(jì),I/O接口設(shè)計(jì),人機(jī)交互接口設(shè)計(jì),其它通訊接口設(shè)計(jì),以太網(wǎng)接口的基本知識(shí),1、傳輸編碼 曼徹斯特編碼 差分曼徹斯特編碼,以太網(wǎng)協(xié)議,以太網(wǎng)MAC層物理傳輸

35、幀 (IEEE802.3 ),PR:同步位,收發(fā)雙方的時(shí)鐘同步,也指明傳輸?shù)乃俾剩?0M、100M) SD:分隔位,表示下面跟著的是真正的數(shù)據(jù),而不是同步時(shí)鐘 DA:目的地址,以太網(wǎng)的地址為48位地址。如果為都為F,則是廣播地址 SA:源地址,48位,表明該幀的數(shù)據(jù)是哪個(gè)網(wǎng)卡發(fā)的,即發(fā)送端網(wǎng)卡地址TYPE:類(lèi)型字段,表明該幀的數(shù)據(jù)是什么類(lèi)型。如:0800H 表示數(shù)據(jù)為IP 包,0806H表示數(shù)據(jù)為ARP包,814CH是SNMP包,8137H為IPX/SPX包 DATA:數(shù)據(jù)段,該段數(shù)據(jù)不能超過(guò)1500字節(jié)。 PAD: 填充位。以太網(wǎng)幀傳輸?shù)臄?shù)據(jù)包最小不能小于60字節(jié), 當(dāng)數(shù)據(jù)段不 足46字節(jié)時(shí)

36、,后面補(bǔ)000000.(當(dāng)然也可以補(bǔ)其它值)FCS: 32位CRC數(shù)據(jù)校驗(yàn)位。該校驗(yàn)由網(wǎng)卡自動(dòng)完成,以太網(wǎng)的數(shù)據(jù)傳輸特點(diǎn),PR,SD,PAD,FCS這幾個(gè)數(shù)據(jù)段是由網(wǎng)卡自動(dòng)產(chǎn)生的;只需要理解DA、SA、TYPE、DATA四個(gè)段的內(nèi)容 所有數(shù)據(jù)位的傳輸由低位開(kāi)始(傳輸?shù)奈涣魇褂寐鼜厮固鼐幋a) 以太網(wǎng)的沖突退避算法是由硬件自動(dòng)執(zhí)行的 DA+SA+TYPE+DATA+PAD最小為60字節(jié),最大為1514字節(jié) 以太網(wǎng)卡可以接收三種地址的數(shù)據(jù),一個(gè)是廣播地位,一個(gè)是多播地址(在嵌入式的環(huán)境中一般不用),一個(gè)是它自已的地址 任何兩個(gè)網(wǎng)卡的物理地址都是不一樣的,是世界上唯一的,網(wǎng)卡地址由專(zhuān)門(mén)機(jī)構(gòu)分配。,嵌入

37、式的以太網(wǎng)方案,嵌入式處理器網(wǎng)卡芯片(RTL8019) 對(duì)嵌入式處理器沒(méi)有特殊要求,通用性強(qiáng) 處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過(guò)外部總線(xiàn),速度慢,不適合于100M網(wǎng)絡(luò) 帶有以太網(wǎng)絡(luò)接口的嵌入式處理器 處理器面向網(wǎng)絡(luò)應(yīng)用 處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過(guò)內(nèi)部總線(xiàn),速度快,RTL8019的原理框圖,嵌入式網(wǎng)絡(luò)接口的特點(diǎn),與常規(guī)的網(wǎng)卡設(shè)計(jì)思路不同的是,在嵌入式系統(tǒng)中,系統(tǒng)的精簡(jiǎn)一直是個(gè)主要的原則。RTL8019AS作為網(wǎng)卡,時(shí)需要一片EEPROM作為配置存儲(chǔ)器,來(lái)確定通訊的端口地址,中斷地址,網(wǎng)卡的物理地址,工作模式,制造廠(chǎng)商等信息; 而在嵌入式系統(tǒng)中,可以使用RTL8019AS的默認(rèn)配置和一些管腳作為網(wǎng)卡的初始化方

38、法。這樣可以節(jié)省配置存儲(chǔ)器,減小嵌入式硬件平臺(tái)的體積。,基于RTL8019在嵌入式以太網(wǎng)設(shè)計(jì),1 RTL8019AS的初始化 RTL8019支持即插即用模式和非即插即用模式。在嵌入式系統(tǒng)中,網(wǎng)卡的外設(shè)通常是不經(jīng)常插拔的,所以,為了系統(tǒng)的精簡(jiǎn),配置RTL8019為非即插即用模式。有著固定的中斷,有著固定的端口地址,假設(shè)是端口是0 x300(這里的端口是相對(duì)于ISA總線(xiàn)來(lái)說(shuō)的端口,對(duì)于A(yíng)RM的總線(xiàn),需要重新計(jì)算地址)。這些配置可以通過(guò)RTL8019的外部管腳,在系統(tǒng)上電復(fù)位的時(shí)候,自動(dòng)配置起來(lái)。,關(guān)于RTL8019的RAM,RTL8019含有16K字節(jié)的RAM,地址為0 x4000-0 x7fff

39、(指的是RTL8019內(nèi)部的存儲(chǔ)地址,是RTL8019工作用的存儲(chǔ)器,可以通過(guò)遠(yuǎn)程DMA訪(fǎng)問(wèn)),每256個(gè)字節(jié)稱(chēng)為一頁(yè),共有64頁(yè)。頁(yè)的地址就是地址的高8位,頁(yè)地址為0 x40-0 x7f。這16k的ram的一部分用來(lái)存放接收的數(shù)據(jù)包,一部分用來(lái)存儲(chǔ)待發(fā)送的數(shù)據(jù)包,2 通過(guò)RTL8019AS發(fā)送數(shù)據(jù),作為一個(gè)集成的以太網(wǎng)芯片,數(shù)據(jù)的發(fā)送校驗(yàn),總線(xiàn)數(shù)據(jù)包的碰撞檢測(cè)與避免是由芯片自己完成的。我們只需要配置發(fā)送數(shù)據(jù)的物理層地址的源地址、目的地址、數(shù)據(jù)包類(lèi)型以及發(fā)送的數(shù)據(jù)就可以了。,3、通過(guò)RTL8019AS接收數(shù)據(jù),在RTL8019的初始化程序中已經(jīng)設(shè)置好了接收緩沖區(qū)的位置,并且配置好了中斷的模式。

40、當(dāng)有一個(gè)正確的數(shù)據(jù)包到達(dá)的時(shí)候,RTL8019會(huì)產(chǎn)生一個(gè)中斷信號(hào),在A(yíng)RM中斷處理程序中,接收數(shù)據(jù)。 數(shù)據(jù)的接收比較簡(jiǎn)單,即通過(guò)遠(yuǎn)端DMA把數(shù)據(jù)從RTL8019的RAM空間讀回ARM中處理。,TCP/IP 協(xié)議的層次,嵌入式以太網(wǎng)中主要處理的協(xié)議,ARP(Address Resolation Protocol)地址解析協(xié)議 ICMP (Internet Control Messages Protocol)網(wǎng)絡(luò)控制報(bào)文協(xié)議 IP(Internet Protocol) 網(wǎng)際協(xié)議 TCP(Transfer Control Protocol) 傳輸控制協(xié)議 UDP(User Datagram Prot

41、ocol)用戶(hù)數(shù)據(jù)包協(xié)議,ARP地址解析協(xié)議,網(wǎng)絡(luò)層用32 bit的IP地址來(lái)標(biāo)識(shí)不同的主機(jī),而鏈路層使用48 bit的物理(MAC)地址來(lái)標(biāo)識(shí)不同的以太網(wǎng)接口。只知道目的主機(jī)的IP地址并不能發(fā)送數(shù)據(jù)幀給它,必須知道目的主機(jī)網(wǎng)絡(luò)接口的MAC地址才能發(fā)送數(shù)據(jù)幀。 ARP的功能是實(shí)現(xiàn)從IP地址到對(duì)應(yīng)物理地址的轉(zhuǎn)換。 源主機(jī)發(fā)送一份包含目的主機(jī)IP地址的ARP請(qǐng)求數(shù)據(jù)幀給網(wǎng)上的每個(gè)主機(jī),稱(chēng)作ARP廣播,目的主機(jī)的ARP收到這份廣播報(bào)文后,識(shí)別出這是發(fā)送端在尋問(wèn)它的IP地址,于是發(fā)送一個(gè)包含目的主機(jī)IP地址及對(duì)應(yīng)的MAC地址的ARP回答給源主機(jī)。 每臺(tái)主機(jī)上都有一個(gè)ARP高速緩存,存放最近的IP地址到

42、硬件地址之間的映射記錄。通常每一項(xiàng)的生存時(shí)間為20分鐘,ICMP網(wǎng)絡(luò)控制報(bào)文協(xié)議,IP層的附屬協(xié)議,IP層用它來(lái)與其他主機(jī)或路由器交換錯(cuò)誤報(bào)文和其他重要控制信息。 ICMP報(bào)文是在IP數(shù)據(jù)包內(nèi)部被傳輸?shù)摹?兩個(gè)實(shí)用的網(wǎng)絡(luò)診斷工具,Ping和Traceroute(Tracert),都是利用該協(xié)議工作的。,IP網(wǎng)際協(xié)議,IP工作在網(wǎng)絡(luò)層,是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP,UDP,ICMP以及IGMP數(shù)據(jù)都以IP數(shù)據(jù)包格式傳輸。 IP數(shù)據(jù)包最長(zhǎng)可達(dá)65535字節(jié),其中報(bào)頭占32 bit的數(shù)目。包含各32 bit的源IP地址和目的IP地址。在嵌入式應(yīng)用中,簡(jiǎn)化設(shè)計(jì),IP數(shù)據(jù)包長(zhǎng)度等于

43、數(shù)據(jù)鏈路層的數(shù)據(jù)長(zhǎng)度。,TCP傳輸控制協(xié)議,TCP是一個(gè)面向連接的可靠的傳輸層協(xié)議。TCP為兩臺(tái)主機(jī)提供高可靠性的端到端數(shù)據(jù)通信。主要包括: 發(fā)送方把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊,并添加附加信息(TCP頭),包括順序號(hào),源、目的端口,控制、糾錯(cuò)信息等字段,稱(chēng)為T(mén)CP數(shù)據(jù)包。并將TCP數(shù)據(jù)包交給下面的網(wǎng)絡(luò)層處理。 接受方確認(rèn)接收到的TCP數(shù)據(jù)包,重組并將數(shù)據(jù)送往高層。,UDP協(xié)議,UDP是一種無(wú)連接不可靠的傳輸層協(xié)議。 把應(yīng)用程序傳來(lái)的數(shù)據(jù)加上UDP頭(包括端口號(hào),段長(zhǎng)等字段),作為UDP數(shù)據(jù)包發(fā)送出去,但是并不保證它們能到達(dá)目的地??煽啃杂蓱?yīng)用層來(lái)提供。就象發(fā)送一封寫(xiě)有地址的一般信件,卻

44、不保證它能到達(dá)。,關(guān)于端口,TCP和UDP采用16位的端口號(hào)來(lái)識(shí)別上層的TCP用戶(hù),即上層應(yīng)用協(xié)議如等。 常見(jiàn)的TCP/IP服務(wù)都用1255之間的端口號(hào)。例如FTP服務(wù)的TCP端口號(hào)都是21,Telnet服務(wù)的TCP端口號(hào)都是23 2561023之間的端口號(hào)通常都是提供一些特定的Unix服務(wù) TCP/IP臨時(shí)端口分配10245000之間的端口號(hào),基于A(yíng)RM和uCOS-II的TCP/IP協(xié)議,向ARM和uC/OS移植一個(gè)TCP/IP協(xié)議棧 采用uC/OS自帶的TCP/IP協(xié)議棧,BSD套接字(BSD Sockets),BSD Sockets使用的最廣泛的網(wǎng)絡(luò)程序編程方法,主要用于應(yīng)用程序的編寫(xiě),用于網(wǎng)絡(luò)上主機(jī)與主機(jī)之間的相互通信 UNIX,Linux,VxWorks均支持BSD Sockets,Windows的Winsock基本上是來(lái)自BS

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論