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

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)演示文稿當(dāng)前第1頁\共有116頁\編于星期四\22點(diǎn)嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)當(dāng)前第2頁\共有116頁\編于星期四\22點(diǎn)馮·諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)CISC與RISC影響CPU性能的因素存儲(chǔ)器系統(tǒng)I/O接口一、嵌入式系統(tǒng)硬件基礎(chǔ)當(dāng)前第3頁\共有116頁\編于星期四\22點(diǎn)典型嵌入式系統(tǒng)基本組成-硬件MPU微處理器電源模塊時(shí)鐘復(fù)位FlashRAMROMUSBLCDKeyboard外圍電路Other外設(shè)當(dāng)前第4頁\共有116頁\編于星期四\22點(diǎn)1.1馮·諾依曼體系結(jié)構(gòu)模型指令寄存器控制器數(shù)據(jù)通道輸入輸出中央處理器存儲(chǔ)器程序指令0指令1指令2指令3指令4數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2當(dāng)前第5頁\共有116頁\編于星期四\22點(diǎn)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ù)當(dāng)前第6頁\共有116頁\編于星期四\22點(diǎn)1.3CISC和RISCCISC:復(fù)雜指令集(ComplexInstructionSetComputer)具有大量的指令和尋址方式8/2原則:80%的程序只使用20%的指令大多數(shù)程序只使用少量的指令就能夠運(yùn)行。RISC:精簡指令集(ReducedInstructionSetComputer)在通道中只包含最有用的指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令使CPU硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡單

當(dāng)前第7頁\共有116頁\編于星期四\22點(diǎn)1.4影響CPU性能的因素:流水線、超標(biāo)量和緩存流水線技術(shù):幾個(gè)指令可以并行執(zhí)行提高了CPU的運(yùn)行效率內(nèi)部信息流要求通暢流動(dòng)譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時(shí)間AddSubCmp當(dāng)前第8頁\共有116頁\編于星期四\22點(diǎn)超標(biāo)量執(zhí)行超標(biāo)量執(zhí)行:超標(biāo)量CPU采用多條流水線結(jié)構(gòu)

執(zhí)行1預(yù)取指令CACHE譯碼2譯碼1執(zhí)行2執(zhí)行1預(yù)取譯碼2譯碼1執(zhí)行2流水線1流水線2數(shù)據(jù)當(dāng)前第9頁\共有116頁\編于星期四\22點(diǎn)高速緩存(CACHE)1、為什么采用高速緩存微處理器的時(shí)鐘頻率比內(nèi)存速度提高快得多,高速緩存可以提高內(nèi)存的平均性能。2、高速緩存的工作原理高速緩存是一種小型、快速的存儲(chǔ)器,它保存部分主存內(nèi)容的拷貝。CPU高速緩存控制器CACHE主存數(shù)據(jù)數(shù)據(jù)地址當(dāng)前第10頁\共有116頁\編于星期四\22點(diǎn)總線和總線橋CPU低速設(shè)備橋數(shù)據(jù)高速總線存儲(chǔ)器高速設(shè)備高速設(shè)備低速總線當(dāng)前第11頁\共有116頁\編于星期四\22點(diǎ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比DRAM耗電多

3)DRAM存儲(chǔ)密度比SRAM高得多

4)DRM需要周期性刷新ROM:只讀存儲(chǔ)器FLASH:閃存當(dāng)前第12頁\共有116頁\編于星期四\22點(diǎn)SRAM和DRAM1)SRAM2)DRAMCSR/WAddrDataCSR/WCASDataRASAddr當(dāng)前第13頁\共有116頁\編于星期四\22點(diǎn)輸入輸出接口I/OA/D、D/A鍵盤LCD存儲(chǔ)器接口設(shè)備接口當(dāng)前第14頁\共有116頁\編于星期四\22點(diǎn)例如USBUSB:UniversalSerialBus,通用串行總線大家生活中常見的與USB有關(guān)的東西有:U盤、移動(dòng)硬盤、無驅(qū)型的MP3(U盤)USB接口的鍵盤、Mouse、打印機(jī)、數(shù)碼相機(jī)……即插即用,熱插撥,系統(tǒng)不需重啟便可工作,且易于擴(kuò)展(127個(gè))USB2.0以低成本實(shí)現(xiàn)高達(dá)480Mb/s的傳輸率(USB1.1的全速設(shè)備可達(dá)12Mb/s)接口標(biāo)準(zhǔn)統(tǒng)一、端口供電當(dāng)前第15頁\共有116頁\編于星期四\22點(diǎn)一個(gè)典型的USB通訊系統(tǒng)HOST系統(tǒng)HUBDEVICEDDEVICE應(yīng)用軟件+驅(qū)動(dòng)程序Ms.Win+接口芯片HUBU盤其他數(shù)據(jù)采集器驅(qū)動(dòng)代碼+嵌入式處理器+HOST芯片HUBU盤其他數(shù)據(jù)采集器通用系統(tǒng)模型PC機(jī)中的情況嵌入式系統(tǒng)應(yīng)用當(dāng)前第16頁\共有116頁\編于星期四\22點(diǎn)二、嵌入式系統(tǒng)軟件基礎(chǔ)操作系統(tǒng)的分類嵌入式實(shí)時(shí)操作系統(tǒng)前臺(tái)與后臺(tái)多任務(wù),任務(wù)優(yōu)先級(jí),調(diào)度非占先式與占先式、可重入型函數(shù)當(dāng)前第17頁\共有116頁\編于星期四\22點(diǎn)3.1操作系統(tǒng)的分類(1)順序執(zhí)行系統(tǒng):系統(tǒng)內(nèi)只含有一個(gè)程序,獨(dú)占CPU的運(yùn)行時(shí)間,按語句順序執(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)。當(dāng)前第18頁\共有116頁\編于星期四\22點(diǎn)按實(shí)時(shí)性分類強(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)要差一些(電子菜譜的查詢)。弱實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間約為數(shù)十秒或更長(工程機(jī)械)。當(dāng)前第19頁\共有116頁\編于星期四\22點(diǎn)1)循環(huán)輪詢系統(tǒng):(PollingLoop)最簡單的軟件結(jié)構(gòu)是循環(huá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)分類當(dāng)前第20頁\共有116頁\編于星期四\22點(diǎn)2)事件驅(qū)動(dòng)系統(tǒng):(Event-Drivensystem)事件驅(qū)動(dòng)系統(tǒng)是能對(duì)外部事件直接響應(yīng)的系統(tǒng)。它包括前后臺(tái)、實(shí)時(shí)多任務(wù)、多處理器等,是嵌入式實(shí)時(shí)系統(tǒng)的主要形式。應(yīng)用程序是一個(gè)無限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成后臺(tái)行為(background)。中斷服務(wù)程序處理異步事件,這部分可以看成前臺(tái)行為(foreground)。后臺(tái)也可以叫做任務(wù)級(jí),前臺(tái)也叫中斷級(jí)。例如,很多基于微處理器的產(chǎn)品采用前后臺(tái)系統(tǒng)設(shè)計(jì),如微波爐、電話機(jī)、玩具等。從省電的角度出發(fā),平時(shí)微處理器處在停機(jī)狀態(tài),所有的事都靠中斷服務(wù)來完成。當(dāng)前第21頁\共有116頁\編于星期四\22點(diǎn)前后臺(tái)系統(tǒng)(后臺(tái)循環(huán)、前臺(tái)中斷)ISRISR后臺(tái)前臺(tái)ISR時(shí)間當(dāng)前第22頁\共有116頁\編于星期四\22點(diǎn)代碼的臨界區(qū)也稱為臨界區(qū),指處理時(shí)不可分割的代碼。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。在進(jìn)入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完以后要立即開中斷(在任務(wù)切換時(shí),地址、指令、數(shù)據(jù)等寄存器堆棧保護(hù))。代碼的臨界區(qū)當(dāng)前第23頁\共有116頁\編于星期四\22點(diǎn)多任務(wù)(任務(wù)、進(jìn)程和線程)CPU寄存器任務(wù)控制塊1任務(wù)控制塊2任務(wù)控制塊n休眠、就緒、運(yùn)行、掛起、被中斷任務(wù)1任務(wù)2任務(wù)n……CPU寄存器當(dāng)前第24頁\共有116頁\編于星期四\22點(diǎn)一個(gè)任務(wù),也稱作一個(gè)線程,是一個(gè)簡單的運(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)是,開發(fā)人員可以將很復(fù)雜的應(yīng)用程序?qū)哟位C合實(shí)驗(yàn)(時(shí)鐘、位圖、USB、KEY)。當(dāng)前第25頁\共有116頁\編于星期四\22點(diǎn)任務(wù)的狀態(tài)當(dāng)前第26頁\共有116頁\編于星期四\22點(diǎn)系統(tǒng)內(nèi)核(Kernel)與調(diào)度(Scheduler)多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個(gè)任務(wù),或者說為每個(gè)任務(wù)分配CPU時(shí)間,并且負(fù)責(zé)任務(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)行。當(dāng)前第27頁\共有116頁\編于星期四\22點(diǎn)任務(wù)優(yōu)先級(jí)靜態(tài)優(yōu)先級(jí)應(yīng)用程序執(zhí)行過程中諸任務(wù)優(yōu)先級(jí)不變,則稱之為靜態(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í)行過程中,任務(wù)的優(yōu)先級(jí)是可變的,則稱之為動(dòng)態(tài)優(yōu)先級(jí)。實(shí)時(shí)內(nèi)核應(yīng)當(dāng)避免出現(xiàn)優(yōu)先級(jí)反轉(zhuǎn)問題。當(dāng)前第28頁\共有116頁\編于星期四\22點(diǎn)優(yōu)先級(jí)反轉(zhuǎn)當(dāng)前第29頁\共有116頁\編于星期四\22點(diǎn)信號(hào)量(Semaphore)信號(hào)量是60年代中期EdgserDijkstra發(fā)明的。信號(hào)量實(shí)際上是一種約定機(jī)制,在多任務(wù)內(nèi)核中普遍使用.信號(hào)量用于:控制共享資源的使用權(quán)(滿足互斥條件)標(biāo)志某事件的發(fā)生使兩個(gè)任務(wù)的行為同步信號(hào)與信號(hào)量在英文中都叫做Semaphore,并不加以區(qū)分,而說它有兩種類型,二進(jìn)制型(binary)和計(jì)數(shù)器型(counting)當(dāng)前第30頁\共有116頁\編于星期四\22點(diǎn)死鎖(或抱死)Deadlock

死鎖也稱作抱死,指兩個(gè)任務(wù)無限期地互相等待對(duì)方控制著的資源。設(shè)任務(wù)T1正獨(dú)享資源R1,任務(wù)T2在獨(dú)享資源T2,而此時(shí)T1又要獨(dú)享R2,T2也要獨(dú)享R1,于是哪個(gè)任務(wù)都沒法繼續(xù)執(zhí)行了,發(fā)生了死鎖。最簡單的防止發(fā)生死鎖的方法是讓每個(gè)任務(wù)都:先得到全部需要的資源再做下一步的工作用同樣的順序去申請(qǐng)多個(gè)資源釋放資源時(shí)使用相反的順序當(dāng)前第31頁\共有116頁\編于星期四\22點(diǎn)本節(jié)提要1324嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式BSP的基本概念嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)設(shè)計(jì)方法5一個(gè)嵌入式設(shè)計(jì)方法實(shí)例當(dāng)前第32頁\共有116頁\編于星期四\22點(diǎn)嵌入式系統(tǒng)的軟/硬件框架當(dāng)前第33頁\共有116頁\編于星期四\22點(diǎn)基于知識(shí)平臺(tái)的開發(fā)方法當(dāng)前第34頁\共有116頁\編于星期四\22點(diǎn)嵌入式系統(tǒng)設(shè)計(jì)步驟系統(tǒng)需求分析:確定設(shè)計(jì)任務(wù)和設(shè)計(jì)目標(biāo),并提煉出設(shè)計(jì)規(guī)格說明書,作為正式設(shè)計(jì)指導(dǎo)和驗(yàn)收的標(biāo)準(zhǔn)。系統(tǒng)的需求一般分功能性需求和非功能性需求兩方面。功能性需求是系統(tǒng)的基本功能,如輸入輸出信號(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)品開發(fā)周期,設(shè)計(jì)往往是并行的。應(yīng)該說,嵌入式系統(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ì)過程中的錯(cuò)誤。系統(tǒng)測試:對(duì)設(shè)計(jì)好的系統(tǒng)進(jìn)行測試,看其是否滿足規(guī)格說明書中給定的功能要求。當(dāng)前第35頁\共有116頁\編于星期四\22點(diǎn)嵌入式開發(fā)工具與開發(fā)環(huán)境當(dāng)前第36頁\共有116頁\編于星期四\22點(diǎn)嵌入式軟件開發(fā)流程當(dāng)前第37頁\共有116頁\編于星期四\22點(diǎn)開發(fā)平臺(tái)簡介當(dāng)前第38頁\共有116頁\編于星期四\22點(diǎn)幾種常用的開發(fā)方法指令集模擬器一種利用PC機(jī)端的仿真開發(fā)軟件模擬調(diào)試的方法。駐留監(jiān)控軟件駐留監(jiān)控程序運(yùn)行在目標(biāo)板上,PC機(jī)端調(diào)試軟件可通過并口、串口、網(wǎng)口與之交互,以完成程序執(zhí)行、存儲(chǔ)器及寄存器讀寫、斷點(diǎn)設(shè)置等任務(wù)JTAG仿真器通過ARM芯片的JTAG邊界掃描口與ARM核進(jìn)行通信,不占用目標(biāo)板的資源,是目前使用最廣泛的調(diào)試手段在線仿真器使用仿真頭代替目標(biāo)板上的CPU,可以完全仿真ARM芯片的行為。但結(jié)構(gòu)較復(fù)雜,價(jià)格昂貴,通常用于ARM硬件開發(fā)中當(dāng)前第39頁\共有116頁\編于星期四\22點(diǎn)需求分析與評(píng)估功能定義與軟硬件選型概要設(shè)計(jì)與軟硬件劃分軟硬件協(xié)同詳細(xì)設(shè)計(jì)集成調(diào)試維護(hù)與升級(jí)設(shè)計(jì)步驟當(dāng)前第40頁\共有116頁\編于星期四\22點(diǎn)謝謝各位

當(dāng)前第41頁\共有116頁\編于星期四\22點(diǎn)嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)——ARM與C/OS-Ⅱ基于ARM的硬件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)當(dāng)前第42頁\共有116頁\編于星期四\22點(diǎn)本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲(chǔ)器接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)I/O接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)其它通訊接口設(shè)計(jì)當(dāng)前第43頁\共有116頁\編于星期四\22點(diǎn)基于ARM的硬件設(shè)計(jì)主要介紹基于ARM7的嵌入式硬件開發(fā)平臺(tái)的設(shè)計(jì)方法,包括結(jié)構(gòu)、主要接口、存儲(chǔ)器選用方案以及外設(shè)、顯示等方面的內(nèi)容。嵌入式硬件開發(fā)平臺(tái)的體系結(jié)構(gòu)外圍存儲(chǔ)器接口設(shè)計(jì)方法鍵盤、LCD等人機(jī)交互接口的設(shè)計(jì)觸摸屏的設(shè)計(jì)以太網(wǎng)設(shè)計(jì)CAN總線設(shè)計(jì)當(dāng)前第44頁\共有116頁\編于星期四\22點(diǎn)SamsungS3C44B0XSamsungS3C44B0X微處理器是三星公司專為手持設(shè)備和一般應(yīng)用提供的高性價(jià)比和高性能的微控制器解決方案,它使用ARM7TDMI核,工作在66MHZ。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件:8KBCache、外部存儲(chǔ)器控制器、LCD控制器、4個(gè)DMA通道、2通道UART、1個(gè)多主I2C總線控制器、1個(gè)IIS總線控制器,5通道PWM定時(shí)器及一個(gè)內(nèi)部定時(shí)器、71個(gè)通用I/O口、8個(gè)外部中斷源、實(shí)時(shí)時(shí)鐘、8通道10位ADC等。當(dāng)前第45頁\共有116頁\編于星期四\22點(diǎn)基于ARM的嵌入式硬件平臺(tái)體系結(jié)構(gòu)當(dāng)前第46頁\共有116頁\編于星期四\22點(diǎn)芯片體系結(jié)構(gòu)當(dāng)前第47頁\共有116頁\編于星期四\22點(diǎn)S3C44B0X存儲(chǔ)系統(tǒng)的特征支持?jǐn)?shù)據(jù)存儲(chǔ)的大/小端選擇(通過外部引腳進(jìn)行選擇)地址空間:具有8個(gè)存儲(chǔ)體,每個(gè)存儲(chǔ)體可達(dá)32Mb,總共可達(dá)256Mb。對(duì)所有存儲(chǔ)體的訪問大小均可進(jìn)行改變(8位/16位/32位)8個(gè)存儲(chǔ)體中,Bank0-Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和FP/EDO/SDRAM等。7個(gè)存儲(chǔ)體的起始地址固定,1個(gè)存儲(chǔ)體的起始地址可變。當(dāng)前第48頁\共有116頁\編于星期四\22點(diǎn)復(fù)位后的S3C44B0X的存儲(chǔ)器映射表當(dāng)前第49頁\共有116頁\編于星期四\22點(diǎn)系統(tǒng)的存儲(chǔ)空間分配Bank0:兩片512KFlash,放置系統(tǒng)引導(dǎo)程序,系統(tǒng)上電復(fù)位后,PC指針自動(dòng)指向Bank0的第一個(gè)單元,進(jìn)行系統(tǒng)自舉。。Bank1:K9F2808(三星16MbyteFlash),非線性尋址。具體的時(shí)序可以參考K9F2808的datasheetBank2:USBN9603。USB設(shè)備端接口芯片,占用系統(tǒng)外部中斷0。8位數(shù)據(jù)總線。Bank3、Bank4未接設(shè)備??梢怨U(kuò)展使用Bank5:RTL8019AS,ISA總線兼容的10M以太網(wǎng)(PHY+MAC層)控制芯片。占用系統(tǒng)外部中斷1,16位數(shù)據(jù)總線當(dāng)前第50頁\共有116頁\編于星期四\22點(diǎn)Bank6:SDRAM,起始地址為0xC000000。在SDRAM中,前512Kbyte的空間劃分出來,作為系統(tǒng)的LCD顯示緩沖區(qū)使用(更新其中的數(shù)據(jù),就可以更新LCD的顯示)。系統(tǒng)的程序存儲(chǔ)空間從0xC080000開始。也就是,引導(dǎo)系統(tǒng)的時(shí)候,需要把system.bin文件復(fù)制到0xC080000開始的地址空間,把PC指針指向0xC080000。Bank7:未使用??梢詳U(kuò)展另一片SDRAM,或者其他的外設(shè)。系統(tǒng)的同步串行口(SIO),連接著觸摸屏控制芯片F(xiàn)M7843(與ADS7843完全兼容)。在同步串行口上,還可以擴(kuò)展其他的芯片??縄O口控制設(shè)備的片選信號(hào)(CS)來防止設(shè)備的沖突。注:系統(tǒng)的擴(kuò)展接口上,A0的標(biāo)號(hào),連接在S3C44B0X的ADDR1上,后面的地址依次向后錯(cuò)位。當(dāng)前第51頁\共有116頁\編于星期四\22點(diǎn)本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲(chǔ)器接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)I/O接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)其它通訊接口設(shè)計(jì)當(dāng)前第52頁\共有116頁\編于星期四\22點(diǎn)S3C44B0X與FLASH的連接(HalfWord方式)當(dāng)前第53頁\共有116頁\編于星期四\22點(diǎn)使用Bank0上的兩片512Kb×2來放置系統(tǒng)BIOS,系統(tǒng)上電以后,PC指針自動(dòng)指向Bank0的第一個(gè)單元,開始進(jìn)行系統(tǒng)自舉。系統(tǒng)自舉完成以后,便從硬盤中將系統(tǒng)文件和用戶應(yīng)用程序復(fù)制到SDRAM內(nèi)存中執(zhí)行。Bank1上接16M非線性Flash,當(dāng)做系統(tǒng)硬盤使用,可以構(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ì)當(dāng)前第54頁\共有116頁\編于星期四\22點(diǎn)關(guān)于BOOTROMBank0:系統(tǒng)的啟動(dòng)ROM(FlashRom)。在系統(tǒng)復(fù)位的時(shí)候,處理器的PC(程序計(jì)數(shù)器)指針指向0x0地址。在Bank0的起始地址的程序,就是系統(tǒng)的初始化程序。此程序的主要任務(wù)是:1、管理處理器的中斷服務(wù)程序處理器的中斷是從0x0地址開始,引導(dǎo)ROM負(fù)責(zé)把這一部分的中斷映射到另一個(gè)區(qū)域,以便系統(tǒng)處理。具體的做法,可以參考44binit.s里面的代碼。(這部分代碼是三星主頁可以提供,它把系統(tǒng)的中斷,映射到了不同的指針?biāo)赶虻牡刂房臻g(主要就是系統(tǒng)RAM的空間))。當(dāng)前第55頁\共有116頁\編于星期四\22點(diǎn)2、初始化硬件平臺(tái),配置其他的BankS3C44B0X的Bank0是通過外部的一個(gè)管腳提供的上拉、下拉電阻來配置的。主要包括:數(shù)據(jù)位數(shù)(8位、16位、32位),數(shù)據(jù)格式(大端、小端)。而其他的Bank的配置,以及讀寫周期等信息是靠Bank0內(nèi)部的代碼配置相應(yīng)的寄存器來實(shí)現(xiàn)的。同時(shí),系統(tǒng)的引導(dǎo)Rom也負(fù)責(zé)配置系統(tǒng)的其他的一些寄存器,比如,系統(tǒng)的PLL(鎖頻環(huán))配置,系統(tǒng)的IO口等一些端口功能的配置等等。當(dāng)前第56頁\共有116頁\編于星期四\22點(diǎn)3、系統(tǒng)自動(dòng)檢測引導(dǎo)Rom負(fù)責(zé)檢測系統(tǒng)的啟動(dòng)所必須的外設(shè)是否正常。主要是系統(tǒng)的SDRAM的檢測。4、系統(tǒng)的軟件設(shè)置,更新系統(tǒng)(system.bin)用戶可以在系統(tǒng)啟動(dòng)的時(shí)候,按任意鍵,進(jìn)入系統(tǒng)的軟件設(shè)置狀態(tài)。通過引導(dǎo)Rom設(shè)置或者查看系統(tǒng)的一些軟件信息。包括:通過開啟USB端口;更新系統(tǒng)文件system.bin;LCD顯示測試;演示程序的裝載測試;鍵盤測試;觸摸屏的坐標(biāo)校準(zhǔn);觸摸屏測試;以太網(wǎng)地址的設(shè)置等當(dāng)前第57頁\共有116頁\編于星期四\22點(diǎn)本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲(chǔ)器接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)I/O接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)其它通訊接口設(shè)計(jì)當(dāng)前第58頁\共有116頁\編于星期四\22點(diǎn)嵌入式開發(fā)板與PC機(jī)的串行通訊嵌入式開發(fā)板和PC機(jī)的通訊電纜可以按照如圖所示的方式連接。當(dāng)前第59頁\共有116頁\編于星期四\22點(diǎn)I/O接口設(shè)計(jì)

I/O接口電路也簡稱接口電路。它是主機(jī)和外圍設(shè)備之間交換信息的連接部件(電路)。它在主機(jī)和外圍設(shè)備之間的信息交換中起著橋梁和紐帶作用。設(shè)置接口電路的必要性:a)解決CPU和外圍設(shè)備之間的時(shí)序配合和通信聯(lián)絡(luò)問題。b)解決CPU和外圍設(shè)備之間的數(shù)據(jù)格式轉(zhuǎn)換和匹配問題。c)解決CPU的負(fù)載能力和外圍設(shè)備端口選擇問題。當(dāng)前第60頁\共有116頁\編于星期四\22點(diǎn)I/O接口的編址方式

1)I/O接口獨(dú)立編址:這種編址方式是將存儲(chǔ)器地址空間和I/O接口地址空間分開設(shè)置,互不影響。設(shè)有專門的輸入指令(IN)和輸出指令(OUT)來完成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è)專門的輸入/輸出指令,所有傳送和訪問存儲(chǔ)器的指令都可用來對(duì)I/O接口操作。當(dāng)前第61頁\共有116頁\編于星期四\22點(diǎn)兩種編址方式有各自的優(yōu)缺點(diǎn)1)獨(dú)立編址方式:主要優(yōu)點(diǎn):內(nèi)存地址空間與I/O接口地址空間分開,互不影響,譯碼電路較簡單,并設(shè)有專門的I/O指令,所以編程序易于區(qū)分,且執(zhí)行時(shí)間短,快速性好。缺點(diǎn):只用I/O指令訪問I/O端口,功能有限且要采用專用I/O周期和專用I/O控制線,使微處理器復(fù)雜化。2)統(tǒng)一編址方式主要優(yōu)點(diǎn):訪問內(nèi)存的指令都可用于I/O操作,數(shù)據(jù)處理功能強(qiáng);同時(shí)I/O接口可與存儲(chǔ)器部分共用譯碼和控制電路。缺點(diǎn):一是I/O接口要占用存儲(chǔ)器地址空間的一部分;二是因不用專門的I/O指令,程序中較難區(qū)分I/O操作。當(dāng)前第62頁\共有116頁\編于星期四\22點(diǎn)S3C44B0X的I/O接口ARM系統(tǒng)完成I/O功能的標(biāo)準(zhǔn)方法是使用存儲(chǔ)器映射I/O。這種方法使用特定的存儲(chǔ)器地址。當(dāng)從這些地址加載或向這些地址存儲(chǔ)時(shí),它們提供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)當(dāng)前第63頁\共有116頁\編于星期四\22點(diǎn)本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲(chǔ)器接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)I/O接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)其它通訊接口設(shè)計(jì)當(dāng)前第64頁\共有116頁\編于星期四\22點(diǎn)鍵盤接口設(shè)計(jì)鍵盤模塊鍵盤可能用來輸入數(shù)字型數(shù)據(jù)或者選擇控制設(shè)備的操作模式。鍵盤有兩種方案:一是采用現(xiàn)有的一些芯片實(shí)現(xiàn)鍵盤掃描;再就是用軟件實(shí)現(xiàn)鍵盤掃描。嵌入式控制器的功能很強(qiáng),可能允分利用這一資源。當(dāng)前第65頁\共有116頁\編于星期四\22點(diǎn)一個(gè)瞬時(shí)接觸開關(guān)(按鈕)放置在每一行與線一列的交叉點(diǎn)。矩陣所需的鍵的數(shù)目顯然根據(jù)應(yīng)用程序而不同。每一行由一個(gè)輸出端口的一位驅(qū)動(dòng),而每一列由一個(gè)電阻器上拉且供給輸入端口一位。鍵盤掃描陣列當(dāng)前第66頁\共有116頁\編于星期四\22點(diǎn)鍵盤掃描過程就是讓微處理器按有規(guī)律的時(shí)間間隔查看鍵盤矩陣,以確定是否有鍵被按下。每個(gè)鍵被分配一個(gè)稱為掃描碼的唯一標(biāo)識(shí)符。應(yīng)用程序利用該掃描碼,根據(jù)按下的鍵來判定應(yīng)該采取什么行動(dòng)。

消抖算法:組合鍵處理鍵盤掃描方法當(dāng)前第67頁\共有116頁\編于星期四\22點(diǎn)//得到按鍵的掃描碼,格式為0xXYZWU16GetScanKey(){ U16key; U8i,temp; for(i=1;i<0x10;i<<=1){ //I/O口送出數(shù)據(jù)

rPDATD|=0xf; rPDATD&=~i; key<<=4; OSTimeDly(1);//操作系統(tǒng)延時(shí)

temp=rPDATD; key|=(temp>>4); } returnkey;}鍵盤掃描程序當(dāng)前第68頁\共有116頁\編于星期四\22點(diǎn)LCD接口設(shè)計(jì)LCD顯示模塊液晶顯示是一種被動(dòng)的顯示,它不能發(fā)光,只能使用周圍環(huán)境的光。它顯示圖案或字符只需很小能量。液晶顯示所用的液晶材料是一種兼有液態(tài)和固體雙重性質(zhì)的有機(jī)物,它的棒狀結(jié)構(gòu)在液晶盒內(nèi)一般平行排列,但在電場作用下能改變其排列方向。LCD的背光:EL(場致發(fā)光):2000-3000小時(shí)和LED光源:字符模式,50000小時(shí)當(dāng)前第69頁\共有116頁\編于星期四\22點(diǎn)LCD的顯示方式反射型LCD:底偏光片后面加了一塊反射板,它一般在戶外和光線良好的辦公室使用。透射型LCD:底偏光片是透射偏光片,它需要連續(xù)使用背光源,一般在光線差的環(huán)境使用。透反射型LCD:是處于以上兩者之間,底偏光片能部分反光,一般也帶背光源,光線好的時(shí)候,可關(guān)掉背光源;光線差時(shí),可點(diǎn)亮背光源使用LCD。當(dāng)前第70頁\共有116頁\編于星期四\22點(diǎn)反射型LCD的結(jié)構(gòu)當(dāng)前第71頁\共有116頁\編于星期四\22點(diǎn)LCD通常由兩種方式,一種是帶有驅(qū)動(dòng)芯片的LCD模塊,基本上屬于半成品如果有需要,也可以直接使用芯片上的內(nèi)置LCD控制器來構(gòu)造顯示模塊,它可以支持彩色/灰度/單色三種模式,灰度模式下可支持4級(jí)灰度和16級(jí)灰度,彩色模式下最多支持256色,LCD的實(shí)際尺寸可支持到320X240。LCD的驅(qū)動(dòng)方式當(dāng)前第72頁\共有116頁\編于星期四\22點(diǎn)嵌入式處理器與LCD的連接嵌入式處理器LCD模塊數(shù)據(jù)總線寄存器選擇使能信號(hào)當(dāng)前第73頁\共有116頁\編于星期四\22點(diǎn)

從系統(tǒng)結(jié)構(gòu)上來講,由于顯示器模塊中已經(jīng)有顯示存儲(chǔ)器。顯存中的每一個(gè)單元對(duì)應(yīng)LCD上的一個(gè)點(diǎn),只要顯存中的內(nèi)容改變,顯示結(jié)果便進(jìn)行刷新。于是便存在兩種刷新:1.直接根據(jù)系統(tǒng)要求對(duì)顯存進(jìn)行修改,一種是只需修改相應(yīng)的局部就可以,不需要判斷覆蓋等;另一種就是有覆蓋問題,計(jì)算起來比較復(fù)雜,而且每做一點(diǎn)小的屏幕改變就進(jìn)行刷新,將增加系統(tǒng)負(fù)擔(dān)。2.專門開辟顯示內(nèi)存,在需要刷新時(shí)候由程序進(jìn)行顯示更新。這樣,不但可以減輕總線負(fù)荷,而且也比較合理,在有需要的時(shí)候進(jìn)行統(tǒng)一的顯示更新,界面也可以比較美觀,不致由于無法預(yù)料的刷新動(dòng)作導(dǎo)致顯示界面閃爍。LCD的顯示控制當(dāng)前第74頁\共有116頁\編于星期四\22點(diǎn)前后臺(tái)雙重顯示緩存的顯示模塊結(jié)構(gòu)當(dāng)前第75頁\共有116頁\編于星期四\22點(diǎn)觸摸屏接口設(shè)計(jì)觸摸屏的分類電阻式觸摸屏表面聲波觸摸屏紅外式觸摸屏電容式觸摸屏當(dāng)前第76頁\共有116頁\編于星期四\22點(diǎn)電阻式觸摸屏分為四線電阻和五線電阻觸摸屏電阻技術(shù)觸摸屏是一種對(duì)外界完全隔離的工作環(huán)境,故不怕灰塵、水汽和油污,可以用任何物體來觸摸,比較適合工業(yè)控制領(lǐng)域及辦公室內(nèi)有限人的使用。當(dāng)前第77頁\共有116頁\編于星期四\22點(diǎn)四線電阻觸摸屏原理當(dāng)前第78頁\共有116頁\編于星期四\22點(diǎn)測量原理在觸摸點(diǎn)X、Y坐標(biāo)的測量過程中,測量電壓與測量點(diǎn)的等效電路圖所示,圖中P為測量點(diǎn)XVYY當(dāng)前第79頁\共有116頁\編于星期四\22點(diǎn)觸摸屏芯片當(dāng)前第80頁\共有116頁\編于星期四\22點(diǎn)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)換模式工作電壓兩個(gè)附加的輸入端口當(dāng)前第81頁\共有116頁\編于星期四\22點(diǎn)FM7843與ARM的連接當(dāng)前第82頁\共有116頁\編于星期四\22點(diǎn)AD7843的工作時(shí)序Arm同步串口(SIO)向ADS7843發(fā)送控制字轉(zhuǎn)換完成后從ADS7843串口讀出電壓轉(zhuǎn)換值A(chǔ)/D轉(zhuǎn)換時(shí)序(每次轉(zhuǎn)換需要24個(gè)時(shí)鐘周期)當(dāng)前第83頁\共有116頁\編于星期四\22點(diǎn)觸摸屏的驅(qū)動(dòng)#defineADS7843_CTRL_START 0x80#defineADS7843_GET_X 0x50#defineADS7843_GET_Y 0x10#defineADS7843_CTRL_12MODE 0x0#defineADS7843_CTRL_8MODE 0x8#defineADS7843_CTRL_SER 0x4#defineADS7843_CTRL_DFR 0x0#defineADS7843_CTRL_DISPWD 0x3 //Disablepowerdown#defineADS7843_CTRL_ENPWD 0x0 //enablepowerdown#defineADS7843_PIN_CS (1<<6) //GPF6#defineADS7843_PIN_PEN (1<<5) //GPG5//#defineADS7843_PIN_BUSY (1<<6)/////////觸摸屏動(dòng)作////////#defineTCHSCR_ACTION_NULL 0 #defineTCHSCR_ACTION_CLICK 1 //觸摸屏單擊#defineTCHSCR_ACTION_DBCLICK 2 //觸摸屏雙擊#defineTCHSCR_ACTION_DOWN 3 //觸摸屏按下#defineTCHSCR_ACTION_UP 4 //觸摸屏抬起#defineTCHSCR_ACTION_MOVE 5 //觸摸屏移動(dòng)#defineTCHSCR_IsPenNotDown() (rPDATG&ADS7843_PIN_PEN)voidTchScr_init(void);voidTchScr_GetScrXY(int*x,int*y);當(dāng)前第84頁\共有116頁\編于星期四\22點(diǎn)函數(shù)TchScrGetScrXY(int*x,int*y)的結(jié)構(gòu)當(dāng)前第85頁\共有116頁\編于星期四\22點(diǎn)本節(jié)提要132546基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)存儲(chǔ)器接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)I/O接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)其它通訊接口設(shè)計(jì)當(dāng)前第86頁\共有116頁\編于星期四\22點(diǎn)以太網(wǎng)接口的基本知識(shí)1、傳輸編碼曼徹斯特編碼差分曼徹斯特編碼當(dāng)前第87頁\共有116頁\編于星期四\22點(diǎn)以太網(wǎng)協(xié)議以太網(wǎng)MAC層物理傳輸幀(IEEE802.3)PRSDDASATYPEDATAPADFCS56位8位48位48位16位不超過1500字節(jié)可選32位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:類型字段,表明該幀的數(shù)據(jù)是什么類型。如:0800H表示數(shù)據(jù)為IP

包,0806H表示數(shù)據(jù)為ARP包,814CH是SNMP包,8137H為IPX/SPX包

DATA:數(shù)據(jù)段,該段數(shù)據(jù)不能超過1500字節(jié)。PAD:填充位。以太網(wǎng)幀傳輸?shù)臄?shù)據(jù)包最小不能小于60字節(jié),當(dāng)數(shù)據(jù)段不足46字節(jié)時(shí),后面補(bǔ)000000.....(當(dāng)然也可以補(bǔ)其它值)

FCS:32位CRC數(shù)據(jù)校驗(yàn)位。該校驗(yàn)由網(wǎng)卡自動(dòng)完成當(dāng)前第88頁\共有116頁\編于星期四\22點(diǎn)以太網(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ù)位的傳輸由低位開始(傳輸?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)卡地址由專門機(jī)構(gòu)分配。當(dāng)前第89頁\共有116頁\編于星期四\22點(diǎn)嵌入式的以太網(wǎng)方案嵌入式處理器+網(wǎng)卡芯片(RTL8019)對(duì)嵌入式處理器沒有特殊要求,通用性強(qiáng)處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過外部總線,速度慢,不適合于100M網(wǎng)絡(luò)帶有以太網(wǎng)絡(luò)接口的嵌入式處理器處理器面向網(wǎng)絡(luò)應(yīng)用處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過內(nèi)部總線,速度快當(dāng)前第90頁\共有116頁\編于星期四\22點(diǎn)RTL8019的原理框圖當(dāng)前第91頁\共有116頁\編于星期四\22點(diǎn)嵌入式網(wǎng)絡(luò)接口的特點(diǎn)與常規(guī)的網(wǎng)卡設(shè)計(jì)思路不同的是,在嵌入式系統(tǒng)中,系統(tǒng)的精簡一直是個(gè)主要的原則。RTL8019AS作為網(wǎng)卡,時(shí)需要一片EEPROM作為配置存儲(chǔ)器,來確定通訊的端口地址,中斷地址,網(wǎng)卡的物理地址,工作模式,制造廠商等信息;而在嵌入式系統(tǒng)中,可以使用RTL8019AS的默認(rèn)配置和一些管腳作為網(wǎng)卡的初始化方法。這樣可以節(jié)省配置存儲(chǔ)器,減小嵌入式硬件平臺(tái)的體積。當(dāng)前第92頁\共有116頁\編于星期四\22點(diǎn)基于RTL8019在嵌入式以太網(wǎng)設(shè)計(jì)1RTL8019AS的初始化

RTL8019支持即插即用模式和非即插即用模式。在嵌入式系統(tǒng)中,網(wǎng)卡的外設(shè)通常是不經(jīng)常插拔的,所以,為了系統(tǒng)的精簡,配置RTL8019為非即插即用模式。有著固定的中斷,有著固定的端口地址,假設(shè)是端口是0x300(這里的端口是相對(duì)于ISA總線來說的端口,對(duì)于ARM的總線,需要重新計(jì)算地址)。這些配置可以通過RTL8019的外部管腳,在系統(tǒng)上電復(fù)位的時(shí)候,自動(dòng)配置起來。當(dāng)前第93頁\共有116頁\編于星期四\22點(diǎn)關(guān)于RTL8019的RAMRTL8019含有16K字節(jié)的RAM,地址為0x4000-0x7fff(指的是RTL8019內(nèi)部的存儲(chǔ)地址,是RTL8019工作用的存儲(chǔ)器,可以通過遠(yuǎn)程DMA訪問),每256個(gè)字節(jié)稱為一頁,共有64頁。頁的地址就是地址的高8位,頁地址為0x40--0x7f。這16k的ram的一部分用來存放接收的數(shù)據(jù)包,一部分用來存儲(chǔ)待發(fā)送的數(shù)據(jù)包當(dāng)前第94頁\共有116頁\編于星期四\22點(diǎn)2通過RTL8019AS發(fā)送數(shù)據(jù)

作為一個(gè)集成的以太網(wǎng)芯片,數(shù)據(jù)的發(fā)送校驗(yàn),總線數(shù)據(jù)包的碰撞檢測與避免是由芯片自己完成的。我們只需要配置發(fā)送數(shù)據(jù)的物理層地址的源地址、目的地址、數(shù)據(jù)包類型以及發(fā)送的數(shù)據(jù)就可以了。當(dāng)前第95頁\共有116頁\編于星期四\22點(diǎn)3、通過RTL8019AS接收數(shù)據(jù)

在RTL8019的初始化程序中已經(jīng)設(shè)置好了接收緩沖區(qū)的位置,并且配置好了中斷的模式。當(dāng)有一個(gè)正確的數(shù)據(jù)包到達(dá)的時(shí)候,RTL8019會(huì)產(chǎn)生一個(gè)中斷信號(hào),在ARM中斷處理程序中,接收數(shù)據(jù)。數(shù)據(jù)的接收比較簡單,即通過遠(yuǎn)端DMA把數(shù)據(jù)從RTL8019的RAM空間讀回ARM中處理。當(dāng)前第96頁\共有116頁\編于星期四\22點(diǎn)TCP/IP協(xié)議的層次應(yīng)用層(Application)BSD套接字(BSDSockets)傳輸層(Transport)TCP、UDP網(wǎng)絡(luò)層(Network)IP、ARP、ICMP、IGMP數(shù)據(jù)鏈路層(DataLink)IEEE802.3EthernetMAC物理層(Physical)當(dāng)前第97頁\共有116頁\編于星期四\22點(diǎn)嵌入式以太網(wǎng)中主要處理的協(xié)議ARP(AddressResolationProtocol)

地址解析協(xié)議ICMP(InternetControlMessagesProtocol)

網(wǎng)絡(luò)控制報(bào)文協(xié)議IP(InternetProtocol)網(wǎng)際協(xié)議TCP(TransferControlProtocol)

傳輸控制協(xié)議UDP(UserDatagramProtocol)

用戶數(shù)據(jù)包協(xié)議當(dāng)前第98頁\共有116頁\編于星期四\22點(diǎn)ARP地址解析協(xié)議網(wǎng)絡(luò)層用32bit的IP地址來標(biāo)識(shí)不同的主機(jī),而鏈路層使用48bit的物理(MAC)地址來標(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ī),稱作ARP廣播,目的主機(jī)的ARP收到這份廣播報(bào)文后,識(shí)別出這是發(fā)送端在尋問它的IP地址,于是發(fā)送一個(gè)包含目的主機(jī)IP地址及對(duì)應(yīng)的MAC地址的ARP回答給源主機(jī)。每臺(tái)主機(jī)上都有一個(gè)ARP高速緩存,存放最近的IP地址到硬件地址之間的映射記錄。通常每一項(xiàng)的生存時(shí)間為20分鐘當(dāng)前第99頁\共有116頁\編于星期四\22點(diǎn)ICMP網(wǎng)絡(luò)控制報(bào)文協(xié)議

IP層的附屬協(xié)議,IP層用它來與其他主機(jī)或路由器交換錯(cuò)誤報(bào)文和其他重要控制信息。ICMP報(bào)文是在IP數(shù)據(jù)包內(nèi)部被傳輸?shù)?。兩個(gè)實(shí)用的網(wǎng)絡(luò)診斷工具,Ping和Traceroute(Tracert),都是利用該協(xié)議工作的。當(dāng)前第100頁\共有116頁\編于星期四\22點(diǎn)IP網(wǎng)際協(xié)議IP工作在網(wǎng)絡(luò)層,是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP,UDP,ICMP以及IGMP數(shù)據(jù)都以IP數(shù)據(jù)包格式傳輸。IP數(shù)據(jù)包最長可達(dá)65535字節(jié),其中報(bào)頭占32bit的數(shù)目。包含各32bit的源IP地址和目的IP地址。在嵌入式應(yīng)用中,簡化設(shè)計(jì),IP數(shù)據(jù)包長度等于數(shù)據(jù)鏈路層的數(shù)據(jù)長度。當(dāng)前第101頁\共有116頁\編于星期四\22點(diǎn)TCP傳輸控制協(xié)議TCP是一個(gè)面向連接的可靠的傳輸層協(xié)議。TCP為兩臺(tái)主機(jī)提供高可靠性的端到端數(shù)據(jù)通信。主要包括:發(fā)送方把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊,并添加附加信息(TCP頭),包括順序號(hào),源、目的端口,控制、糾錯(cuò)信息等字段,稱為TCP數(shù)據(jù)包。并將TCP數(shù)據(jù)包交給下面的網(wǎng)絡(luò)層處理。接受方確認(rèn)接收到的TCP數(shù)據(jù)包,重組并將數(shù)據(jù)送往高層。當(dāng)前第102頁\共有116頁\編于星期四\22點(diǎn)UDP協(xié)議UDP是一種無連接不可靠的傳輸層協(xié)議。把應(yīng)用程序傳來的數(shù)據(jù)加上UDP頭(包括端口號(hào),段長等字段),作為UDP數(shù)據(jù)包發(fā)送出去,但是并不保證它們能到達(dá)目的地。可靠性由應(yīng)用層來提供。就象發(fā)送一封寫有地址的一般信件,卻不保證它能到達(dá)。當(dāng)前第103頁\共有116頁\編于星期四\22點(diǎn)關(guān)于端口TCP和UDP采用16位的端口號(hào)來識(shí)別上層的TCP用戶,即上層應(yīng)用協(xié)議如FTP,TELNET等。常見的TCP/IP服務(wù)都用1-255之間的端口號(hào)。例如FTP服務(wù)的TCP端口號(hào)都是21,Telnet服務(wù)的TCP端口號(hào)都是23256-1023之間的端口號(hào)通常都是提供一些特定的Unix服務(wù)TCP/IP臨時(shí)端口分配1024-5000之間的端口號(hào)當(dāng)前第104頁\共有116頁\編于星期四\22點(diǎn)基于

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論