




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、嵌入式系統(tǒng)設(shè)計與實例開發(fā) ARM與C/OS- 基本概念及設(shè)計方法,馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu) CISC與RISC 影響CPU性能的因素 存儲器系統(tǒng) I/O接口,一、嵌入式系統(tǒng)硬件基礎(chǔ),典型嵌入式系統(tǒng)基本組成硬件,1.1 馮諾依曼體系結(jié)構(gòu)模型,指令寄存器,控制器,數(shù)據(jù)通道,輸入,輸出,中央處理器,存儲器,程序,指令0,指令1,指令2,指令3,指令4,數(shù)據(jù),數(shù)據(jù)0,數(shù)據(jù)1,數(shù)據(jù)2,1.2 哈佛體系結(jié)構(gòu),指令寄存器,控制器,數(shù)據(jù)通道,輸入,輸出,中央處理器,程序存儲器,指令0,指令1,指令2,數(shù)據(jù)存儲器,數(shù)據(jù)0,數(shù)據(jù)1,數(shù)據(jù)2,地址,指令,地址,數(shù)據(jù),1.3 CISC和RISC,CISC:復雜指
2、令集(Complex Instruction Set Computer) 具有大量的指令和尋址方式 8/2原則:80%的程序只使用20%的指令 大多數(shù)程序只使用少量的指令就能夠運行。,RISC:精簡指令集(Reduced Instruction Set Computer) 在通道中只包含最有用的指令 確保數(shù)據(jù)通道快速執(zhí)行每一條指令 使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單,1.4 影響CPU性能的因素:流水線、超標量和緩存,流水線技術(shù):幾個指令可以并行執(zhí)行 提高了CPU的運行效率 內(nèi)部信息流要求通暢流動,譯碼,取指,執(zhí)行add,譯碼,取指,執(zhí)行sub,譯碼,取指,執(zhí)行cmp,時間,Add,Sub,Cm
3、p,超標量執(zhí)行,超標量執(zhí)行:超標量CPU采用多條流水線結(jié)構(gòu),執(zhí)行1,預(yù)取,指令CACHE,譯碼2,譯碼1,執(zhí)行2,執(zhí)行1,預(yù)取,譯碼2,譯碼1,執(zhí)行2,流水線1,流水線2,數(shù)據(jù),高速緩存(CACHE),1、為什么采用高速緩存 微處理器的時鐘頻率比內(nèi)存速度提高快得多,高速緩存可以提高內(nèi)存的平均性能。 2、高速緩存的工作原理 高速緩存是一種小型、快速的存儲器,它保存部分主存內(nèi)容的拷貝。,CPU,高速緩存控制器,CACHE,主存,數(shù)據(jù),數(shù)據(jù),地址,總線和總線橋,1.5 存儲器系統(tǒng),RAM:隨機存取存儲器, SRAM:靜態(tài)隨機存儲器, DRAM:動態(tài)隨機存儲器 1)SRAM比DRAM快 2)SRAM比
4、DRAM耗電多 3)DRAM存儲密度比SRAM高得多 4)DRM需要周期性刷新 ROM:只讀存儲器 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 鍵盤 LCD 存儲器接口 設(shè)備接口,例如USB,USB:Universal Serial Bus,通用串行總線 大家生活中常見的與USB有關(guān)的東西有: U盤、移動硬盤、無驅(qū)型的MP3(U盤) USB接口的鍵盤、Mouse、打印機、數(shù)碼相機 即插即用,熱插撥,系統(tǒng)不需重啟便可工作,且易于擴展(127個) USB2
5、.0以低成本實現(xiàn)高達480Mb/s的傳輸率(USB1.1的全速設(shè)備可達12Mb/s) 接口標準統(tǒng)一、端口供電,一個典型的USB通訊系統(tǒng),HOST系統(tǒng),HUB,DEVICE,D,DEVICE,應(yīng)用軟件+驅(qū)動程序Ms.Win+接口芯片,HUB,U盤,其他,數(shù)據(jù)采集器,驅(qū)動代碼+嵌入式處理器+HOST芯片,HUB,U盤,其他,數(shù)據(jù)采集器,通用系統(tǒng)模型,PC機中的情況,嵌入式系統(tǒng)應(yīng)用,二、嵌入式系統(tǒng)軟件基礎(chǔ),操作系統(tǒng)的分類 嵌入式實時操作系統(tǒng) 前臺與后臺 多任務(wù),任務(wù)優(yōu)先級,調(diào)度 非占先式與占先式、可重入型函數(shù),3.1 操作系統(tǒng)的分類,(1)順序執(zhí)行系統(tǒng):系統(tǒng)內(nèi)只含有一個程序,獨占CPU的運行時間,按
6、語句順序執(zhí)行該程序,直至執(zhí)行完畢,另一程序才能啟動運行。如DOS操作系統(tǒng)。 (2)分時操作系統(tǒng):系統(tǒng)內(nèi)同時可以有多個程序運行,把CPU的時間分按順序分成若干片,每個時間片內(nèi)執(zhí)行不同的程序。如UNIX (3)實時操作系統(tǒng):系統(tǒng)內(nèi)有多個程序運行,每個程序有不同的優(yōu)先級,只有最高優(yōu)先級的任務(wù)才能占有CPU的控制權(quán)。,按實時性分類,強實時系統(tǒng),其系統(tǒng)響應(yīng)時間在毫秒或微秒級(數(shù)控機床); 一般實時系統(tǒng),其系統(tǒng)響應(yīng)時間在毫秒幾秒的數(shù)量級上,其實時性的要求比強實時系統(tǒng)要差一些(電子菜譜的查詢)。 弱實時系統(tǒng),其系統(tǒng)響應(yīng)時間約為數(shù)十秒或更長(工程機械)。,1)循環(huán)輪詢系統(tǒng):(Polling Loop) 最簡單
7、的軟件結(jié)構(gòu)是循環(huán)輪詢,程序依次檢查系統(tǒng)的每一個輸入條件,一旦條件成立就進行相應(yīng)的處理。 Initialize() While(true) if(condition_1) action_1(); if(condition_2) action_2(); if(condition_n) acition_n(); ,按軟件結(jié)構(gòu)分類,2)事件驅(qū)動系統(tǒng):(Event-Driven system) 事件驅(qū)動系統(tǒng)是能對外部事件直接響應(yīng)的系統(tǒng)。它包括前后臺、實時多任務(wù)、多處理器等,是嵌入式實時系統(tǒng)的主要形式。 應(yīng)用程序是一個無限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成后臺行為(backgrou
8、nd)。中斷服務(wù)程序處理異步事件,這部分可以看成前臺行為(foreground)。 后臺也可以叫做任務(wù)級,前臺也叫中斷級。 例如,很多基于微處理器的產(chǎn)品采用前后臺系統(tǒng)設(shè)計,如微波爐、電話機、玩具等。從省電的角度出發(fā),平時微處理器處在停機狀態(tài),所有的事都靠中斷服務(wù)來完成。,前后臺系統(tǒng)(后臺循環(huán)、前臺中斷),ISR,ISR,后臺 前臺,ISR,時間,代碼的臨界區(qū)也稱為臨界區(qū),指處理時不可分割的代碼。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。 在進入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完以后要立即開中斷(在任務(wù)切換時,地址、指令、數(shù)據(jù)等寄存器堆棧保護)。,代碼的臨界區(qū),多任務(wù)(任務(wù)、進程和線程)
9、,一個任務(wù),也稱作一個線程,是一個簡單的運行程序。每個任務(wù)都是整個應(yīng)用的某一部分,每個任務(wù)被賦予一定的優(yōu)先級, 有它自己的一套CPU寄存器和自己的??臻g。 多任務(wù)運行的實現(xiàn)實際上是靠CPU(中央處理單元)在許多任務(wù)之間轉(zhuǎn)換、調(diào)度。 CPU只有一個,輪番服務(wù)于一系列任務(wù)中的某一個。多任務(wù)運行使CPU的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。 在實際應(yīng)用中,多任務(wù)的最大特點是,開發(fā)人員可以將很復雜的應(yīng)用程序?qū)哟位C合實驗(時鐘、位圖、USB、KEY)。,任務(wù)的狀態(tài),系統(tǒng)內(nèi)核(Kernel)與調(diào)度(Scheduler),多任務(wù)系統(tǒng)中,內(nèi)核負責管理各個任務(wù),或者說為每個任務(wù)分配CPU時間,并且負責任
10、務(wù)之間的通信。 內(nèi)核提供的基本服務(wù)是任務(wù)切換。內(nèi)核本身也增加了應(yīng)用程序的額外負荷,代碼空間增加ROM用量,內(nèi)核本身的數(shù)據(jù)結(jié)構(gòu)增加了RAM的用量。內(nèi)核本身對CPU的占用時間一般在2到5個百分點之間。 調(diào)度(Scheduler)是內(nèi)核的主要職責之一,就是要決定該輪到哪個任務(wù)運行了。多數(shù)實時內(nèi)核是基于優(yōu)先級調(diào)度法的。每個任務(wù)根據(jù)其重要程度的不同被賦予一定的優(yōu)先級?;趦?yōu)先級的調(diào)度法指,CPU總是讓處在就緒態(tài)的優(yōu)先級最高的任務(wù)先運行。,任務(wù)優(yōu)先級,靜態(tài)優(yōu)先級 應(yīng)用程序執(zhí)行過程中諸任務(wù)優(yōu)先級不變,則稱之為靜態(tài)優(yōu)先級。在靜態(tài)優(yōu)先級系統(tǒng)中,諸任務(wù)以及它們的時間約束在程序編譯時是已知的 動態(tài)優(yōu)先級 應(yīng)用程序執(zhí)
11、行過程中,任務(wù)的優(yōu)先級是可變的,則稱之為動態(tài)優(yōu)先級。實時內(nèi)核應(yīng)當避免出現(xiàn)優(yōu)先級反轉(zhuǎn)問題。,優(yōu)先級反轉(zhuǎn),信號量(Semaphore),信號量是60年代中期Edgser Dijkstra 發(fā)明的。信號量實際上是一種約定機制,在多任務(wù)內(nèi)核中普遍使用.信號量用于: 控制共享資源的使用權(quán)(滿足互斥條件) 標志某事件的發(fā)生 使兩個任務(wù)的行為同步 信號與信號量在英文中都叫做Semaphore,并不加以區(qū)分,而說它有兩種類型,二進制型(binary)和計數(shù)器型(counting),死鎖(或抱死) Deadlock,死鎖也稱作抱死,指兩個任務(wù)無限期地互相等待對方控制著的資源。設(shè)任務(wù)T1正獨享資源R1,任務(wù)T2在
12、獨享資源T2,而此時T1又要獨享R2,T2也要獨享R1,于是哪個任務(wù)都沒法繼續(xù)執(zhí)行了,發(fā)生了死鎖。最簡單的防止發(fā)生死鎖的方法是讓每個任務(wù)都: 先得到全部需要的資源再做下一步的工作 用同樣的順序去申請多個資源 釋放資源時使用相反的順序,本節(jié)提要,1,3,2,4,嵌入式系統(tǒng)硬件基礎(chǔ),嵌入式BSP的基本概念,嵌入式系統(tǒng)軟件基礎(chǔ),嵌入式系統(tǒng)設(shè)計方法,5,一個嵌入式設(shè)計方法實例,嵌入式系統(tǒng)的軟/硬件框架,基于知識平臺的開發(fā)方法,嵌入式系統(tǒng)設(shè)計步驟,系統(tǒng)需求分析:確定設(shè)計任務(wù)和設(shè)計目標,并提煉出設(shè)計規(guī)格說明書,作為正式設(shè)計指導和驗收的標準。系統(tǒng)的需求一般分功能性需求和非功能性需求兩方面。功能性需求是系統(tǒng)的
13、基本功能,如輸入輸出信號、操作方式等;非功能需求包括系統(tǒng)性能、成本、功耗、體積、重量等因素。 體系結(jié)構(gòu)設(shè)計:描述系統(tǒng)如何實現(xiàn)所述的功能和非功能需求,包括對硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選型等。一個好的體系結(jié)構(gòu)是設(shè)計成功與否的關(guān)鍵。 硬件/軟件協(xié)同設(shè)計:基于體系結(jié)構(gòu),對系統(tǒng)的軟件、硬件進行詳細設(shè)計。為了縮短產(chǎn)品開發(fā)周期,設(shè)計往往是并行的。應(yīng)該說,嵌入式系統(tǒng)設(shè)計的工作大部分都集中在軟件設(shè)計上,采用面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)、模塊化設(shè)計是現(xiàn)代軟件工程經(jīng)常采用的方法。 系統(tǒng)集成:把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進行調(diào)試,發(fā)現(xiàn)并改進單元設(shè)計過程中的錯誤。 系統(tǒng)測試:對設(shè)計好的
14、系統(tǒng)進行測試,看其是否滿足規(guī)格說明書中給定的功能要求。,嵌入式開發(fā)工具與開發(fā)環(huán)境,嵌入式軟件開發(fā)流程,開發(fā)平臺簡介,幾種常用的開發(fā)方法,指令集模擬器 一種利用PC機端的仿真開發(fā)軟件模擬調(diào)試的方法。 駐留監(jiān)控軟件 駐留監(jiān)控程序運行在目標板上,PC機端調(diào)試軟件可通過并口、串口、網(wǎng)口與之交互,以完成程序執(zhí)行、存儲器及寄存器讀寫、斷點設(shè)置等任務(wù) JTAG仿真器 通過ARM芯片的JTAG邊界掃描口與ARM核進行通信,不占用目標板的資源,是目前使用最廣泛的調(diào)試手段 在線仿真器 使用仿真頭代替目標板上的CPU,可以完全仿真ARM芯片的行為。但結(jié)構(gòu)較復雜,價格昂貴,通常用于ARM硬件開發(fā)中,需求分析與評估 功
15、能定義與軟硬件選型 概要設(shè)計與軟硬件劃分 軟硬件協(xié)同詳細設(shè)計 集成調(diào)試 維護與升級,設(shè)計步驟,謝 謝 各 位,嵌入式系統(tǒng)設(shè)計與實例開發(fā) ARM與C/OS- 基于ARM的硬件系統(tǒng)結(jié)構(gòu)設(shè)計,本節(jié)提要,1,3,2,5,4,6,基于ARM的硬件系統(tǒng)體系結(jié)構(gòu),存儲器接口設(shè)計,網(wǎng)絡(luò)接口設(shè)計,I/O接口設(shè)計,人機交互接口設(shè)計,其它通訊接口設(shè)計,基于ARM的硬件設(shè)計,主要介紹基于ARM7的嵌入式硬件開發(fā)平臺的設(shè)計方法,包括結(jié)構(gòu)、主要接口、存儲器選用方案以及外設(shè)、顯示等方面的內(nèi)容。 嵌入式硬件開發(fā)平臺的體系結(jié)構(gòu) 外圍存儲器接口設(shè)計方法 鍵盤、LCD等人機交互接口的設(shè)計 觸摸屏的設(shè)計 以太網(wǎng)設(shè)計 CAN總線設(shè)計,
16、Samsung S3C44B0X,Samsung S3C44B0X微處理器是三星公司專為手持設(shè)備和一般應(yīng)用提供的高性價比和高性能的微控制器解決方案,它使用ARM7TDMI核,工作在66MHZ。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件: 8KB Cache、外部存儲器控制器、LCD控制器、4個DMA通道、2通道UART、1個多主I2C總線控制器、1個IIS總線控制器,5通道PWM定時器及一個內(nèi)部定時器、71個通用I/O口、8個外部中斷源、實時時鐘、8通道10位ADC等。,基于ARM的嵌入式硬件平臺體系結(jié)構(gòu),芯片體系結(jié)構(gòu),S3C44B0X存儲系統(tǒng)的特征,支持數(shù)據(jù)存儲的大/小端選
17、擇(通過外部引腳進行選擇) 地址空間:具有8個存儲體,每個存儲體可達32Mb,總共可達256Mb。 對所有存儲體的訪問大小均可進行改變(8位16位32位) 8個存儲體中,Bank0Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和FPEDOSDRAM等。 7個存儲體的起始地址固定,1個存儲體的起始地址可變。,復位后的S3C44B0X的存儲器映射表,系統(tǒng)的存儲空間分配,Bank0:兩片512KFlash,放置系統(tǒng)引導程序,系統(tǒng)上電復位后,PC指針自動指向Bank0的第一個單元,進行系統(tǒng)自舉。 Bank1:K9F2808(三星 16Mbyte Flash),非線性尋址
18、。具體的時序可以參考K9F2808的datasheet Bank2:USBN9603。USB設(shè)備端接口芯片,占用系統(tǒng)外部中斷0。8位數(shù)據(jù)總線。 Bank3、Bank4未接設(shè)備??梢怨U展使用 Bank5:RTL8019AS,ISA總線兼容的10M以太網(wǎng)(PHYMAC層)控制芯片。占用系統(tǒng)外部中斷1,16位數(shù)據(jù)總線,Bank6:SDRAM,起始地址為0 xC000000。在SDRAM中,前512Kbyte的空間劃分出來,作為系統(tǒng)的LCD顯示緩沖區(qū)使用(更新其中的數(shù)據(jù),就可以更新LCD的顯示)。系統(tǒng)的程序存儲空間從0 xC080000開始。也就是,引導系統(tǒng)的時候,需要把system.bin文件復制
19、到0 xC080000開始的地址空間,把PC指針指向0 xC080000。 Bank7:未使用??梢詳U展另一片SDRAM,或者其他的外設(shè)。 系統(tǒng)的同步串行口(SIO),連接著觸摸屏控制芯片F(xiàn)M7843(與ADS7843完全兼容)。在同步串行口上,還可以擴展其他的芯片。靠IO口控制設(shè)備的片選信號(CS)來防止設(shè)備的沖突。 注:系統(tǒng)的擴展接口上,A0的標號,連接在S3C44B0X的ADDR1上,后面的地址依次向后錯位。,本節(jié)提要,1,3,2,5,4,6,基于ARM的硬件系統(tǒng)體系結(jié)構(gòu),存儲器接口設(shè)計,網(wǎng)絡(luò)接口設(shè)計,I/O接口設(shè)計,人機交互接口設(shè)計,其它通訊接口設(shè)計,S3C44B0X與FLASH的連接
20、(Half Word方式),使用Bank0上的兩片512Kb2來放置系統(tǒng)BIOS,系統(tǒng)上電以后,PC指針自動指向Bank0的第一個單元,開始進行系統(tǒng)自舉。系統(tǒng)自舉完成以后,便從硬盤中將系統(tǒng)文件和用戶應(yīng)用程序復制到SDRAM內(nèi)存中執(zhí)行。 Bank1上接16M非線性Flash,當做系統(tǒng)硬盤使用,可以構(gòu)造文件系統(tǒng),存放海量數(shù)據(jù)。 用SDRAM當作系統(tǒng)內(nèi)存,只有Bank6/Bank7能支持SDRAM,所以將SDRAM接在Bank6上。如果同時使用Bank6/Bank7,則要求連接相同容量的存儲器,而且其地址空間在物理上是連續(xù)的。,存儲器接口設(shè)計,關(guān)于BOOT ROM,Bank0:系統(tǒng)的啟動ROM(Fl
21、ash Rom)。在系統(tǒng)復位的時候,處理器的PC(程序計數(shù)器)指針指向0 x0地址。在Bank0的起始地址的程序,就是系統(tǒng)的初始化程序。此程序的主要任務(wù)是: 1、管理處理器的中斷服務(wù)程序 處理器的中斷是從0 x0地址開始,引導ROM負責把這一部分的中斷映射到另一個區(qū)域,以便系統(tǒng)處理。具體的做法,可以參考44binit.s里面的代碼。(這部分代碼是三星主頁可以提供,它把系統(tǒng)的中斷,映射到了不同的指針所指向的地址空間(主要就是系統(tǒng)RAM的空間)。,2、初始化硬件平臺,配置其他的Bank S3C44B0X的Bank0是通過外部的一個管腳提供的上拉、下拉電阻來配置的。主要包括:數(shù)據(jù)位數(shù)(8位、16位、
22、32位),數(shù)據(jù)格式(大端、小端)。而其他的Bank的配置,以及讀寫周期等信息是靠Bank0內(nèi)部的代碼配置相應(yīng)的寄存器來實現(xiàn)的。同時,系統(tǒng)的引導Rom也負責配置系統(tǒng)的其他的一些寄存器,比如,系統(tǒng)的PLL(鎖頻環(huán))配置,系統(tǒng)的IO口等一些端口功能的配置等等。,3、系統(tǒng)自動檢測 引導Rom負責檢測系統(tǒng)的啟動所必須的外設(shè)是否正常。主要是系統(tǒng)的SDRAM的檢測。 4、系統(tǒng)的軟件設(shè)置,更新系統(tǒng)(system.bin) 用戶可以在系統(tǒng)啟動的時候,按任意鍵,進入系統(tǒng)的軟件設(shè)置狀態(tài)。通過引導Rom設(shè)置或者查看系統(tǒng)的一些軟件信息。包括:通過開啟USB端口;更新系統(tǒng)文件system.bin;LCD顯示測試;演示程序
23、的裝載測試;鍵盤測試;觸摸屏的坐標校準;觸摸屏測試;以太網(wǎng)地址的設(shè)置等,本節(jié)提要,1,3,2,5,4,6,基于ARM的硬件系統(tǒng)體系結(jié)構(gòu),存儲器接口設(shè)計,網(wǎng)絡(luò)接口設(shè)計,I/O接口設(shè)計,人機交互接口設(shè)計,其它通訊接口設(shè)計,嵌入式開發(fā)板與PC機的串行通訊,嵌入式開發(fā)板和PC機的通訊電纜可以按照如圖所示的方式連接。,I/O接口設(shè)計,I/O接口電路也簡稱接口電路。它是主機和外圍設(shè)備之間交換信息的連接部件(電路)。它在主機和外圍設(shè)備之間的信息交換中起著橋梁和紐帶作用。設(shè)置接口電路的必要性: a)解決CPU和外圍設(shè)備之間的時序配合和通信聯(lián)絡(luò)問題。 b)解決CPU和外圍設(shè)備之間的數(shù)據(jù)格式轉(zhuǎn)換和匹配問題。 c)
24、解決CPU的負載能力和外圍設(shè)備端口選擇問題。,I/O接口的編址方式,1)I/O接口獨立編址: 這種編址方式是將存儲器地址空間和I/O接口地址空間分開設(shè)置,互不影響。設(shè)有專門的輸入指令(IN)和輸出指令(OUT)來完成I/O操作。 2)I/O接口與存儲器統(tǒng)一編址方式: 這種編址方式不區(qū)分存儲器地址空間和I/O接口地址空間,把所有的I/O接口的端口都當作是存儲器的一個單元對待,每個接口芯片都安排一個或幾個與存儲器統(tǒng)一編號的地址號。也不設(shè)專門的輸入/輸出指令,所有傳送和訪問存儲器的指令都可用來對I/O接口操作。,兩種編址方式有各自的優(yōu)缺點,1)獨立編址方式: 主要優(yōu)點:內(nèi)存地址空間與I/O接口地址空
25、間分開,互不影響,譯碼電路較簡單,并設(shè)有專門的I/O指令,所以編程序易于區(qū)分,且執(zhí)行時間短,快速性好。 缺點:只用I/O指令訪問I/O端口,功能有限且要采用專用I/O周期和專用I/O控制線,使微處理器復雜化。 2)統(tǒng)一編址方式 主要優(yōu)點:訪問內(nèi)存的指令都可用于I/O操作,數(shù)據(jù)處理功能強;同時I/O接口可與存儲器部分共用譯碼和控制電路。 缺點:一是I/O接口要占用存儲器地址空間的一部分;二是因不用專門的I/O指令,程序中較難區(qū)分I/O操作。,S3C44B0X的I/O接口,ARM系統(tǒng)完成I/O功能的標準方法是使用存儲器映射I/O。這種方法使用特定的存儲器地址。當從這些地址加載或向這些地址存儲時,它
26、們提供I/O功能。典型情況下,從存儲器映射I/O地址加載用于輸入,而向存儲器映射I/O地址存儲用于輸出。 S3C44B0X有71 個多功能輸入輸出管腳,構(gòu)成了7個I/O接口: 兩個9位的輸入/輸出接口(E和F) 兩個8位的輸入/輸出接口(D和G) 一個16位的輸入/輸出接口(C) 一個10位的輸出接口(A) 一個11位的輸出接口(B),本節(jié)提要,1,3,2,5,4,6,基于ARM的硬件系統(tǒng)體系結(jié)構(gòu),存儲器接口設(shè)計,網(wǎng)絡(luò)接口設(shè)計,I/O接口設(shè)計,人機交互接口設(shè)計,其它通訊接口設(shè)計,鍵盤接口設(shè)計,鍵盤模塊鍵盤可能用來輸入數(shù)字型數(shù)據(jù)或者選擇控制設(shè)備的操作模式。 鍵盤有兩種方案:一是采用現(xiàn)有的一些芯片
27、實現(xiàn)鍵盤掃描;再就是用軟件實現(xiàn)鍵盤掃描。嵌入式控制器的功能很強,可能允分利用這一資源。,一個瞬時接觸開關(guān)(按鈕)放置在每一行與線一列的交叉點。矩陣所需的鍵的數(shù)目顯然根據(jù)應(yīng)用程序而不同。每一行由一個輸出端口的一位驅(qū)動,而每一列由一個電阻器上拉且供給輸入端口一位。,鍵盤掃描陣列,鍵盤掃描過程就是讓微處理器按有規(guī)律的時間間隔查看鍵盤矩陣,以確定是否有鍵被按下。每個鍵被分配一個稱為掃描碼的唯一標識符。應(yīng)用程序利用該掃描碼,根據(jù)按下的鍵來判定應(yīng)該采取什么行動。 消抖算法: 組合鍵處理,鍵盤掃描方法,/得到按鍵的掃描碼,格式為0 xXYZW U16 GetScanKey() U16 key; U8 i,t
28、emp; for(i=1;i4); return key;,鍵盤掃描程序,LCD接口設(shè)計,LCD顯示模塊 液晶顯示是一種被動的顯示,它不能發(fā)光,只能使用周圍環(huán)境的光。它顯示圖案或字符只需很小能量。液晶顯示所用的液晶材料是一種兼有液態(tài)和固體雙重性質(zhì)的有機物,它的棒狀結(jié)構(gòu)在液晶盒內(nèi)一般平行排列,但在電場作用下能改變其排列方向。 LCD的背光: EL(場致發(fā)光):2000-3000小時 和LED光源:字符模式,50000小時,LCD的顯示方式,反射型LCD:底偏光片后面加了一塊反射板,它一般在戶外和光線良好的辦公室使用。 透射型LCD:底偏光片是透射偏光片,它需要連續(xù)使用背光源,一般在光線差的環(huán)境使
29、用。 透反射型LCD:是處于以上兩者之間,底偏光片能部分反光,一般也帶背光源,光線好的時候,可關(guān)掉背光源;光線差時,可點亮背光源使用LCD。,反射型LCD的結(jié)構(gòu),LCD通常由兩種方式,一種是帶有驅(qū)動芯片的LCD模塊,基本上屬于半成品 如果有需要,也可以直接使用芯片上的內(nèi)置LCD控制器來構(gòu)造顯示模塊,它可以支持彩色/灰度/單色三種模式,灰度模式下可支持4級灰度和16級灰度,彩色模式下最多支持256色,LCD的實際尺寸可支持到320X240。,LCD的驅(qū)動方式,嵌入式處理器與LCD的連接,嵌入式處理器,LCD模塊,數(shù)據(jù)總線,寄存器選擇,使能信號,從系統(tǒng)結(jié)構(gòu)上來講,由于顯示器模塊中已經(jīng)有顯示存儲器。
30、顯存中的每一個單元對應(yīng)LCD上的一個點,只要顯存中的內(nèi)容改變,顯示結(jié)果便進行刷新。于是便存在兩種刷新: 1直接根據(jù)系統(tǒng)要求對顯存進行修改,一種是只需修改相應(yīng)的局部就可以,不需要判斷覆蓋等;另一種就是有覆蓋問題,計算起來比較復雜,而且每做一點小的屏幕改變就進行刷新,將增加系統(tǒng)負擔。 2 專門開辟顯示內(nèi)存,在需要刷新時候由程序進行顯示更新。這樣,不但可以減輕總線負荷,而且也比較合理,在有需要的時候進行統(tǒng)一的顯示更新,界面也可以比較美觀,不致由于無法預(yù)料的刷新動作導致顯示界面閃爍。,LCD的顯示控制,前后臺雙重顯示緩存的顯示模塊結(jié)構(gòu),觸摸屏接口設(shè)計,觸摸屏的分類 電阻式觸摸屏 表面聲波觸摸屏 紅外式
31、觸摸屏 電容式觸摸屏,電阻式觸摸屏,分為四線電阻和五線電阻觸摸屏 電阻技術(shù)觸摸屏是一種對外界完全隔離的工作環(huán)境,故不怕灰塵、水汽和油污,可以用任何物體來觸摸,比較適合工業(yè)控制領(lǐng)域及辦公室內(nèi)有限人的使用。,四線電阻觸摸屏原理,測量原理,在觸摸點X、Y坐標的測量過程中,測量電壓與測量點的等效電路圖所示,圖中P為測量點,X,V,Y,Y,觸摸屏芯片,FM(ADS)7843的特點,實現(xiàn)觸摸屏的驅(qū)動選擇控制(X、Y通道) 對于輸入電壓或附加電壓進行AD轉(zhuǎn)換 同步串行接口 最大轉(zhuǎn)換速率125KHz 可編程控制8位或者12位轉(zhuǎn)換模式 工作電壓2.7V-5.0V 兩個附加的輸入端口,FM7843與ARM的連接,
32、AD7843的工作時序,Arm同步串口(SIO)向ADS7843發(fā)送控制字 轉(zhuǎn)換完成后從ADS7843串口讀出電壓轉(zhuǎn)換值,A/D轉(zhuǎn)換時序(每次轉(zhuǎn)換需要24個時鐘周期),觸摸屏的驅(qū)動,#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) /觸摸屏動作/ #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/觸摸屏移動 #define TCHSCR_IsPenNotDown()(rPDATG,函數(shù)TchScrGetScrXY(int *x, int *y)的結(jié)構(gòu),本節(jié)提要,1,3,2,5,4,6,基于ARM的硬件系統(tǒng)體系結(jié)構(gòu),存儲器接口設(shè)計,網(wǎng)絡(luò)接口設(shè)計,I/O接口設(shè)計,人機交互接口設(shè)計,其它通訊接口設(shè)計,以太網(wǎng)接口的基本知識,1、傳輸編碼 曼徹斯特編碼 差分曼徹斯特編碼,以太網(wǎng)協(xié)議,以太網(wǎng)MAC層物理傳輸
35、幀 (IEEE802.3 ),PR:同步位,收發(fā)雙方的時鐘同步,也指明傳輸?shù)乃俾剩?0M、100M) SD:分隔位,表示下面跟著的是真正的數(shù)據(jù),而不是同步時鐘 DA:目的地址,以太網(wǎng)的地址為48位地址。如果為都為F,則是廣播地址 SA:源地址,48位,表明該幀的數(shù)據(jù)是哪個網(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é), 當數(shù)據(jù)段不 足46字節(jié)時
36、,后面補000000.(當然也可以補其它值)FCS: 32位CRC數(shù)據(jù)校驗位。該校驗由網(wǎng)卡自動完成,以太網(wǎng)的數(shù)據(jù)傳輸特點,PR,SD,PAD,FCS這幾個數(shù)據(jù)段是由網(wǎng)卡自動產(chǎn)生的;只需要理解DA、SA、TYPE、DATA四個段的內(nèi)容 所有數(shù)據(jù)位的傳輸由低位開始(傳輸?shù)奈涣魇褂寐鼜厮固鼐幋a) 以太網(wǎng)的沖突退避算法是由硬件自動執(zhí)行的 DA+SA+TYPE+DATA+PAD最小為60字節(jié),最大為1514字節(jié) 以太網(wǎng)卡可以接收三種地址的數(shù)據(jù),一個是廣播地位,一個是多播地址(在嵌入式的環(huán)境中一般不用),一個是它自已的地址 任何兩個網(wǎng)卡的物理地址都是不一樣的,是世界上唯一的,網(wǎng)卡地址由專門機構(gòu)分配。,嵌入
37、式的以太網(wǎng)方案,嵌入式處理器網(wǎng)卡芯片(RTL8019) 對嵌入式處理器沒有特殊要求,通用性強 處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過外部總線,速度慢,不適合于100M網(wǎng)絡(luò) 帶有以太網(wǎng)絡(luò)接口的嵌入式處理器 處理器面向網(wǎng)絡(luò)應(yīng)用 處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過內(nèi)部總線,速度快,RTL8019的原理框圖,嵌入式網(wǎng)絡(luò)接口的特點,與常規(guī)的網(wǎng)卡設(shè)計思路不同的是,在嵌入式系統(tǒng)中,系統(tǒng)的精簡一直是個主要的原則。RTL8019AS作為網(wǎng)卡,時需要一片EEPROM作為配置存儲器,來確定通訊的端口地址,中斷地址,網(wǎng)卡的物理地址,工作模式,制造廠商等信息; 而在嵌入式系統(tǒng)中,可以使用RTL8019AS的默認配置和一些管腳作為網(wǎng)卡的初始化方
38、法。這樣可以節(jié)省配置存儲器,減小嵌入式硬件平臺的體積。,基于RTL8019在嵌入式以太網(wǎng)設(shè)計,1 RTL8019AS的初始化 RTL8019支持即插即用模式和非即插即用模式。在嵌入式系統(tǒng)中,網(wǎng)卡的外設(shè)通常是不經(jīng)常插拔的,所以,為了系統(tǒng)的精簡,配置RTL8019為非即插即用模式。有著固定的中斷,有著固定的端口地址,假設(shè)是端口是0 x300(這里的端口是相對于ISA總線來說的端口,對于ARM的總線,需要重新計算地址)。這些配置可以通過RTL8019的外部管腳,在系統(tǒng)上電復位的時候,自動配置起來。,關(guān)于RTL8019的RAM,RTL8019含有16K字節(jié)的RAM,地址為0 x4000-0 x7fff
39、(指的是RTL8019內(nèi)部的存儲地址,是RTL8019工作用的存儲器,可以通過遠程DMA訪問),每256個字節(jié)稱為一頁,共有64頁。頁的地址就是地址的高8位,頁地址為0 x40-0 x7f。這16k的ram的一部分用來存放接收的數(shù)據(jù)包,一部分用來存儲待發(fā)送的數(shù)據(jù)包,2 通過RTL8019AS發(fā)送數(shù)據(jù),作為一個集成的以太網(wǎng)芯片,數(shù)據(jù)的發(fā)送校驗,總線數(shù)據(jù)包的碰撞檢測與避免是由芯片自己完成的。我們只需要配置發(fā)送數(shù)據(jù)的物理層地址的源地址、目的地址、數(shù)據(jù)包類型以及發(fā)送的數(shù)據(jù)就可以了。,3、通過RTL8019AS接收數(shù)據(jù),在RTL8019的初始化程序中已經(jīng)設(shè)置好了接收緩沖區(qū)的位置,并且配置好了中斷的模式。
40、當有一個正確的數(shù)據(jù)包到達的時候,RTL8019會產(chǎn)生一個中斷信號,在ARM中斷處理程序中,接收數(shù)據(jù)。 數(shù)據(jù)的接收比較簡單,即通過遠端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ò)控制報文協(xié)議 IP(Internet Protocol) 網(wǎng)際協(xié)議 TCP(Transfer Control Protocol) 傳輸控制協(xié)議 UDP(User Datagram Prot
41、ocol)用戶數(shù)據(jù)包協(xié)議,ARP地址解析協(xié)議,網(wǎng)絡(luò)層用32 bit的IP地址來標識不同的主機,而鏈路層使用48 bit的物理(MAC)地址來標識不同的以太網(wǎng)接口。只知道目的主機的IP地址并不能發(fā)送數(shù)據(jù)幀給它,必須知道目的主機網(wǎng)絡(luò)接口的MAC地址才能發(fā)送數(shù)據(jù)幀。 ARP的功能是實現(xiàn)從IP地址到對應(yīng)物理地址的轉(zhuǎn)換。 源主機發(fā)送一份包含目的主機IP地址的ARP請求數(shù)據(jù)幀給網(wǎng)上的每個主機,稱作ARP廣播,目的主機的ARP收到這份廣播報文后,識別出這是發(fā)送端在尋問它的IP地址,于是發(fā)送一個包含目的主機IP地址及對應(yīng)的MAC地址的ARP回答給源主機。 每臺主機上都有一個ARP高速緩存,存放最近的IP地址到
42、硬件地址之間的映射記錄。通常每一項的生存時間為20分鐘,ICMP網(wǎng)絡(luò)控制報文協(xié)議,IP層的附屬協(xié)議,IP層用它來與其他主機或路由器交換錯誤報文和其他重要控制信息。 ICMP報文是在IP數(shù)據(jù)包內(nèi)部被傳輸?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ù)包最長可達65535字節(jié),其中報頭占32 bit的數(shù)目。包含各32 bit的源IP地址和目的IP地址。在嵌入式應(yīng)用中,簡化設(shè)計,IP數(shù)據(jù)包長度等于
43、數(shù)據(jù)鏈路層的數(shù)據(jù)長度。,TCP傳輸控制協(xié)議,TCP是一個面向連接的可靠的傳輸層協(xié)議。TCP為兩臺主機提供高可靠性的端到端數(shù)據(jù)通信。主要包括: 發(fā)送方把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊,并添加附加信息(TCP頭),包括順序號,源、目的端口,控制、糾錯信息等字段,稱為TCP數(shù)據(jù)包。并將TCP數(shù)據(jù)包交給下面的網(wǎng)絡(luò)層處理。 接受方確認接收到的TCP數(shù)據(jù)包,重組并將數(shù)據(jù)送往高層。,UDP協(xié)議,UDP是一種無連接不可靠的傳輸層協(xié)議。 把應(yīng)用程序傳來的數(shù)據(jù)加上UDP頭(包括端口號,段長等字段),作為UDP數(shù)據(jù)包發(fā)送出去,但是并不保證它們能到達目的地。可靠性由應(yīng)用層來提供。就象發(fā)送一封寫有地址的一般信件,卻
44、不保證它能到達。,關(guān)于端口,TCP和UDP采用16位的端口號來識別上層的TCP用戶,即上層應(yīng)用協(xié)議如等。 常見的TCP/IP服務(wù)都用1255之間的端口號。例如FTP服務(wù)的TCP端口號都是21,Telnet服務(wù)的TCP端口號都是23 2561023之間的端口號通常都是提供一些特定的Unix服務(wù) TCP/IP臨時端口分配10245000之間的端口號,基于ARM和uCOS-II的TCP/IP協(xié)議,向ARM和uC/OS移植一個TCP/IP協(xié)議棧 采用uC/OS自帶的TCP/IP協(xié)議棧,BSD套接字(BSD Sockets),BSD Sockets使用的最廣泛的網(wǎng)絡(luò)程序編程方法,主要用于應(yīng)用程序的編寫,用于網(wǎng)絡(luò)上主機與主機之間的相互通信 UNIX,Linux,VxWorks均支持BSD Sockets,Windows的Winsock基本上是來自BS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軍品訂購項目管理辦法
- 北京車位產(chǎn)權(quán)管理辦法
- 資本驅(qū)動下人工智能產(chǎn)業(yè)化的倫理挑戰(zhàn)與應(yīng)對策略
- 睡眠剝奪對小鼠色氨酸代謝及行為影響機制研究
- 體檢機構(gòu)備案管理辦法
- 佛山酒店宿舍管理辦法
- 西部地區(qū)經(jīng)濟韌性對經(jīng)濟高質(zhì)量發(fā)展的影響研究
- 基于機器視覺的鋼板表面缺陷自動檢測系統(tǒng)設(shè)計與實現(xiàn)
- 未發(fā)生較大及以上生產(chǎn)安全事故
- 智慧醫(yī)院建設(shè)管理辦法
- 井蓋巡查管理制度
- GB/T 33490-2025展覽展示工程服務(wù)基本要求
- 2024年國能榆林化工有限公司招聘真題
- 消防總隊面試題目及答案
- 《低鈉血癥中國專家共識(2023年版)》解讀課件
- 公司法期末考試卷及答案
- GB/T 45604-2025船舶與海洋技術(shù)大抓力平衡錨
- 國家中小學智慧教育平臺與人工智能融合應(yīng)用指南(試行)
- 混凝土攪拌站企業(yè)管理規(guī)范與要求
- 物業(yè)公司接管寫字樓項目工作時間倒推計劃表(T日為入駐日)
- 重點人口管理工作規(guī)定
評論
0/150
提交評論