嵌入式微處理器體系結(jié)構(gòu)復(fù)習(xí)資料_第1頁
嵌入式微處理器體系結(jié)構(gòu)復(fù)習(xí)資料_第2頁
嵌入式微處理器體系結(jié)構(gòu)復(fù)習(xí)資料_第3頁
嵌入式微處理器體系結(jié)構(gòu)復(fù)習(xí)資料_第4頁
嵌入式微處理器體系結(jié)構(gòu)復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1、 嵌入式微處理器體系結(jié)構(gòu)嵌入式微處理器的體系結(jié)構(gòu)可以采用馮諾依曼體系結(jié)構(gòu)或哈佛體系結(jié)構(gòu),指令系統(tǒng)可以選用精簡指令系統(tǒng)RISC和復(fù)雜指令集系統(tǒng)CISC。1、 馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu);(1)馮諾依曼結(jié)構(gòu)的計(jì)算機(jī)由CPU和存儲(chǔ)器構(gòu)成,其程序和數(shù)據(jù)共用一個(gè)存儲(chǔ)空間,程序指令存儲(chǔ)地址和數(shù)據(jù)存儲(chǔ)地址指向同一個(gè)存儲(chǔ)器的不同物理位置;采用單一的地址及數(shù)據(jù)總線,程序指令和數(shù)據(jù)的寬度相同。程序計(jì)數(shù)器(PC)是CPU內(nèi)部指示指令和數(shù)據(jù)的存儲(chǔ)位置的寄存器。(2)哈佛結(jié)構(gòu)的主要特點(diǎn)是將程序和數(shù)據(jù)存儲(chǔ)在不同的存儲(chǔ)空間中,即程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是兩個(gè)相互獨(dú)立的存儲(chǔ)器,每個(gè)存儲(chǔ)器獨(dú)立編址、獨(dú)立訪問。提高執(zhí)行速度

2、,提高數(shù)據(jù)的吞吐率,具有較高的執(zhí)行效率。2、CISC和RISC類別 CISC RISC指令系統(tǒng)指令數(shù)量很多 較少,通常少于100執(zhí)行時(shí)間有些指令執(zhí)行時(shí)間很長, 如整塊的存儲(chǔ)器內(nèi)容拷貝; 或?qū)⒍鄠€(gè)寄存器的內(nèi)容 拷貝到存貯器 沒有較長執(zhí)行時(shí)間的指令編碼長度編碼長度可變,1-15字節(jié) 編碼長度固定,通常為4個(gè)字節(jié)尋址方式尋址方式多樣 簡單尋址操作 可以對存儲(chǔ)器和寄存器 只能對寄存器對行算術(shù)和邏輯操作, 進(jìn)行算術(shù)和邏輯操作 Load/Store體系結(jié)構(gòu)編譯 難以用優(yōu)化編譯器生成 高效的目標(biāo)代碼程序 采用優(yōu)化編譯技術(shù),生成高效的目標(biāo)代碼程序 二、ARM狀態(tài)各模式下的寄存器1、所有的37個(gè)寄存器,分成兩大

3、類: (1)31個(gè)通用32位寄存器; (2) 6個(gè)狀態(tài)寄存器。 2、R0R7為未分組的寄存器,也就是說對于任何處理器模式,這些寄存器都對應(yīng)于相同的32位物理寄存器。3、寄存器R8R14為分組寄存器。它們所對應(yīng)的物理寄存器取決于當(dāng)前的處理器模式,幾乎所有允許使用通用寄存器的指令都允許使用分組寄存器4、寄存器R8R12有兩個(gè)分組的物理寄存器。一個(gè)用于除FIQ模式之外的所有寄存器模式,另一個(gè)用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度5、寄存器R13、R14分別有6個(gè)分組的物理寄存器。一個(gè)用于用戶和系統(tǒng)模式,其余5個(gè)分別用于5種異常模式。3、 處理器工作模式1、 ARM處理器有7

4、種工作模式; usr(用戶模式):ARM處理器正常程序執(zhí)行模式。 fiq(快速中斷模式):用于高速數(shù)據(jù)傳輸或通道處理 irq(外部中斷模式):用于通用的中斷處理 svc(管理模式):操作系統(tǒng)使用的保護(hù)模式 abt (數(shù)據(jù)訪問終止模式): 當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。 sys(系統(tǒng)模式): 運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。 und(未定義指令中止模式):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。 ARM微處理器的運(yùn)行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。 除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式(Priv

5、ileged Modes);其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式(Exception Modes),常用于處理中斷或異常,以及需要訪問受保護(hù)的系統(tǒng)資源等情況。2、除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部全部系統(tǒng)資源和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問。3、此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。4、 ARM異常處理1、當(dāng)異常產(chǎn)生時(shí), ARM 核: (1)拷貝 CPSR 到 SPSR_ (2)設(shè)置適當(dāng)?shù)?CPSR 位: a.改變處理器狀態(tài)進(jìn)入 ARM 態(tài) b.改變處理器模式進(jìn)入相應(yīng)的異常模式 c.設(shè)置中斷禁止位禁

6、止相應(yīng)中斷 (如需要) (3)保存返回地址到 LR_ (4)設(shè)置 PC 為相應(yīng)的異常向量地址2、返回時(shí), 異常處理程序需要: (1)從 SPSR_恢復(fù)CPSR (2)從LR_恢復(fù)PC (3)注意:這些操作只能在 ARM 態(tài)執(zhí)行.5、 ARM指令集1、 ARM尋址方式:掌握ARM微處理器9種尋址方式的特點(diǎn)。 (1)寄存器尋址 操作數(shù)的值在寄存器中,指令中的地址碼字段給出的是寄存器編號(hào),寄存器的內(nèi)容是操作數(shù),指令執(zhí)行時(shí)直接取出寄存器值操作。 例如指令: MOV R1,R2 ;R1R2 SUB R0,R1,R2 ;R0R1- R2(2)立即尋址 在立即尋址指令中數(shù)據(jù)就包含在指令當(dāng)中,立即尋址指令的操

7、作碼字段后面的地址碼部分就是操作數(shù)本身,取出指令也就取出了可以立即使用的操作數(shù)(也稱為立即數(shù))。立即數(shù)要以“”為前綴,表示16進(jìn)制數(shù)值時(shí)以“0x”表示。 例如指令: ADD R0,R0,#1 ;R0R0 + 1 MOV R0,#0xff00 ;R00xff00 (3)寄存器移位尋址 寄存器移位尋址是ARM指令集特有的尋址方式。第2個(gè)寄存器操作數(shù)在與第1個(gè)操作數(shù)結(jié)合之前,先進(jìn)行移位操作。 例如指令: MOV R0,R2,LSL #3 ;R2的值左移3位,結(jié)果放入R0,即R0=R2 * 8 ANDS R1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相與操作,結(jié)果放入R1可采用的移位

8、操作如下:LSL:邏輯左移(Logical Shift Left),寄存器中字的低端空出的位補(bǔ)0。LSR:邏輯右移(Logical Shift Right),寄存器中字的高端空出的位補(bǔ)0。ASR:算術(shù)右移(Arithmetic Shift Right),移位過程中保持符號(hào)位不變,即如果源操作數(shù)為正數(shù),則字的高端空出的位補(bǔ)0,否則補(bǔ)1ROR:循環(huán)右移(Rotate Right),由字的低端移出的位填入字的高端空出的位RRX:帶擴(kuò)展的循環(huán)右移(Rotate Right extended by 1 place),操作數(shù)右移一位,高端空出的位用原C 標(biāo)志值填充。 (4)寄存器間接尋址 指令中的地址碼給

9、出的是一個(gè)通用寄存器編號(hào),所需要的操作數(shù)保存在寄存器指定地址的存儲(chǔ)單元中,即寄存器為操作數(shù)的地址指針,操作數(shù)存放在存儲(chǔ)器中。 例如指令 :LDR R0,R1 ;R0R1(將R1中的數(shù)值作為地址,取出此地址中的數(shù)據(jù)保存在R0中)STR R0,R1 ;R1 R0 (5)變址尋址 變址尋址是將基址寄存器的內(nèi)容與指令中給出的偏移量相加,形成操作數(shù)的有效地址,變址尋址用于訪問基址附近的存儲(chǔ)單元,常用于查表,數(shù)組操作,功能部件寄存器訪問等。例如指令: LDR R2,R3,#4 ;R2R3 + 4(將R3中的數(shù)值加4作為地址,取出此地址的 數(shù)值保存在R2 中) STR R1,R0,#-2 ;R0-2 R1(

10、將R0中的數(shù)值減2作為地址,把R1中的內(nèi)容保存到此地址位置) (6)多寄存器尋址(LDM/STM) LDM/STM指令可以把存儲(chǔ)器中的一個(gè)數(shù)據(jù)塊加載到多個(gè)寄存器中,也可以把多個(gè)寄存器中的內(nèi)容保存到存儲(chǔ)器中。尋址操作中的寄存器可以是R0-R15這16個(gè)寄存器的子集或是所有寄存器。采用多寄存器尋址方式,一條指令可以完成多個(gè)寄存器值的傳送,這種尋址方式用一條指令最多可以完成16個(gè)寄存器值的傳送。 格式為: LDM(或STM)條件類型 基址寄存器!,寄存器列表 該指令的常見用途是將多個(gè)寄存器的內(nèi)容入?;虺鰲?。(7)堆棧尋址 堆棧是一種數(shù)據(jù)結(jié)構(gòu),堆棧是特定順序進(jìn)行存取的存儲(chǔ)區(qū),操作順序分為“后進(jìn)先出”和

11、“先進(jìn)后出”,堆棧尋址時(shí)隱含的,它使用一個(gè)專門的寄存器(堆棧指針)指向一塊存儲(chǔ)區(qū)域(堆棧),指針?biāo)赶虻拇鎯?chǔ)單元就是堆棧的棧頂。(8)塊復(fù)制尋址 塊復(fù)制尋址用于把一塊從存儲(chǔ)器的某一位置復(fù)制到另一位置,是一個(gè)多寄存器傳送指令。(9)相對尋址 相對尋址是變址尋址的一種變通,由程序計(jì)數(shù)器PC提供基準(zhǔn)地址,指令中的地址碼字段作為偏移量,兩者相加后得到的地址即為操作數(shù)的有效地址。2、堆棧尋址滿遞增堆棧(FA):堆棧指針指向最后壓入的數(shù)據(jù),且由低地址向高地址生成。滿遞減堆棧(FD):堆棧指針指向最后壓入的數(shù)據(jù),且由高地址向低地址生成??者f增堆棧(EA):堆棧指針指向下一個(gè)將要放入數(shù)據(jù)的空位置,且由低地址向

12、高地址生成??者f減堆棧(ED):堆棧指針指向下一個(gè)將要放入數(shù)據(jù)的空位置,且由高地址向低地址生成。3、多寄存器尋址(塊拷貝尋址) (1)塊拷貝尋址是多寄存器傳送指令LDM/STM的尋址方式。LDM/STM指令可以把存儲(chǔ)器中的一個(gè)數(shù)據(jù)塊加載到多個(gè)寄存器中,也可以把多個(gè)寄存器中的內(nèi)容保存到存儲(chǔ)器中。尋址操作中的寄存器可以是R0-R15這16個(gè)寄存器的子集或是所有寄存器。 (2)LDM/STM指令依據(jù)其后綴名的不同其尋址的方式也有很大不同。 (3)LDMIA R1!,R0,R2,R3指令執(zhí)行后,R1的值變?yōu)镽1+12R1;注:!決定Rn的值是否隨著傳送而改變尋址模式 描述 起始地址 結(jié)束地址 Rn!I

13、A 執(zhí)行后增加 Rn Rn+4*N Rn+4*NIB 執(zhí)行前增加 Rn+4 Rn+4*N Rn+4*NDA 執(zhí)行后減少 Rn Rn-4*N Rn-4*NDB 執(zhí)行前減少 Rn-4 Rn-4*N Rn-4*N六ARM狀態(tài)與Thumb狀態(tài) 的轉(zhuǎn)換1、實(shí)現(xiàn)ARM工作狀態(tài)轉(zhuǎn)換的指令,其句法如下: BX 目標(biāo)地址(1)BX指令將引起處理器轉(zhuǎn)移到目標(biāo)地址所指向的地址處執(zhí)行。(2)目標(biāo)地址的位0不用來作為地址的一部分。a.若目標(biāo)地址的位0為1,則指令將CPSR中的標(biāo)志T置位,且將目標(biāo)地址的代碼解釋為Thumb代碼;b.若目標(biāo)地址的位0為0,則指令將CPSR中的標(biāo)志T復(fù)位,且將目標(biāo)地址的代碼解釋為ARM代碼。

14、7、 ARM的硬件系統(tǒng)結(jié)構(gòu)1、S3C2410的存儲(chǔ)器系統(tǒng)(1)S3C2410支持大、小端模式,可通過軟件選擇大小端模式;(2)存儲(chǔ)空間分成8個(gè)Bank,每個(gè)Bank 128Mbytes,總共 1GB; 6個(gè)Bank用于控制 ROM, SRAM, etc. 剩余的2個(gè)Bank用于控制 ROM, SRAM, SDRAM, etc .(3)除 Bank0 (16/32-bit) 外,所有的Bank都可以通過編程選擇總線寬度= (8/16/32-bit) ;(4)7個(gè)Bank固定起始地址,最后一個(gè)Bank可調(diào)整起始地址;(5)最后兩個(gè)Bank大小可編程(6)所有Bank存儲(chǔ)周期可編程控制;(7)如果同

15、時(shí)使用Bank6/ Bank7,則要求連接相同容量的存儲(chǔ)器,而且其地址空間在物理上是連續(xù)的。2、S3C2410的I/O口配置 S3C2410有117個(gè)多功能口,掌握如何通過軟件編程對每個(gè)I/O口進(jìn)行配置。如將端口C的最低2為設(shè)置為01,既設(shè)置成輸出模式,其余位不變。 rGPCCON = rGPCCON&0xfffffffc|0x00000001; rGPCDAT= rGPCDAT |0x001; /PC0口電平輸出高 表3.4.3 S3C2410A的端口C I/O口配置情況端口C可選擇的引腳端功能GPC15GPC8輸入/輸出VD7 VD0GPC7GPC5輸入/輸出LCDVF2LCDVF0GPC

16、4輸入/輸出VMGPC3輸入/輸出VFRAMEGPC2輸入/輸出VLINEGPC1輸入/輸出VCLKGPC0輸入/輸出LEND寄存器地址 讀/寫 描述 復(fù)位值GPCCON 0x56000020 R/W 配置端口C引腳端,使用位31:0,分別對端口B的16個(gè)引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留0x0 GPCDAT 0x56000024 R/W 端口C數(shù)據(jù)寄存器,使用位15:0 未定義GPCUP 0x56000028 R/W 端口C上拉電阻不使能寄存器,使用位15:0 。0:使能;1:不使能0x0 保留0x5600002C 保留未定義 表 端口C控制寄存器3、掌握AR

17、M微處理器的中斷系統(tǒng)的特點(diǎn) 了解:一旦有中斷發(fā)生,ARM的中斷系統(tǒng)將如何處理。 在ARM系統(tǒng)中,支持復(fù)位、未定義指令、軟中斷、預(yù)取中止、數(shù)據(jù)中止、IRQ和FIQ 7種異常,每種異常對應(yīng)于不同的處理器模式,有對應(yīng)的異常向量(固定的存儲(chǔ)器地址)。在ARM系統(tǒng)中,一旦有中斷發(fā)生,正在執(zhí)行的程序都會(huì)停下來,通常都會(huì)執(zhí)行如下的中斷步驟: (1)保存現(xiàn)場。保存當(dāng)前的PC值到R14,保存當(dāng)前的程序運(yùn)行狀態(tài)到SPSR。 (2)模式切換。根據(jù)發(fā)生的中斷類型,進(jìn)入IRQ模式或FIQ模式。 (3)獲取中斷服務(wù)子程序地址。PC指針跳到異常向量表所保存的IRQ或FIQ地址處,IRQ或FIQ的異常向量地址處一般保存的是中

18、斷服務(wù)子程序的地址,PC指針跳入到中斷服務(wù)子程序,進(jìn)行中斷處理。 (4)多個(gè)中斷請求處理。在ARM系統(tǒng)中,可以存在多個(gè)中斷請求源,比如串口中斷、AD中斷、外部中斷、定時(shí)器中斷及DMA中斷等,所以可能出現(xiàn)多個(gè)中斷源同時(shí)請求中斷的情況。為了更好地區(qū)分各個(gè)中斷源,通常為這些中斷定義不同的優(yōu)先級(jí)別,并為每一個(gè)中斷設(shè)置一個(gè)中斷標(biāo)志位。當(dāng)發(fā)生中斷時(shí),通過判斷中斷優(yōu)先級(jí)以及訪問中斷標(biāo)志位的狀態(tài)來識(shí)別哪一個(gè)中斷發(fā)生了,進(jìn)而調(diào)用相應(yīng)的函數(shù)進(jìn)行中斷處理。 (5)中斷返回,恢復(fù)現(xiàn)場。當(dāng)完成中斷服務(wù)子程序后,將SPSR中保存的程序運(yùn)行狀態(tài)恢復(fù)到CPSR中,R14中保存的被中斷程序的地址恢復(fù)到PC中,繼續(xù)執(zhí)行被中斷的程

19、序。4、 了解S3C2410的DMA控制器的基本工作原理。DMA(Direct Memory Acess,直接存儲(chǔ)器存?。┓绞绞侵复鎯?chǔ)器與外設(shè)在DMA控制器的控制下,直接傳送數(shù)據(jù)而不通過CPU,傳輸速率主要取決于存儲(chǔ)器存取速度。在DMA傳輸過程中,DMA控制器負(fù)責(zé)管理整個(gè)操作,并且無須CPU介入,從而大大提高了CPU的工作效率。DMA方式為高速I/O設(shè)備和存儲(chǔ)器之間的批量數(shù)據(jù)交換提供了直接的傳輸通道。由于I/O設(shè)備直接同內(nèi)存發(fā)生成塊的數(shù)據(jù)交換,可以提高I/O效率?,F(xiàn)在大部分計(jì)算機(jī)系統(tǒng)均采用DMA技術(shù)。許多輸入輸出設(shè)備的控制器都支持DMA方式。采用DMA方式進(jìn)行數(shù)據(jù)傳輸?shù)木唧w過程如下。(1) 外

20、設(shè)向DMA控制器發(fā)出DMA請求。(2) DMA控制器向CPU發(fā)出總線請求信號(hào)。(3)CPU執(zhí)行完現(xiàn)行的總線周期后,向DMA控制器發(fā)出響應(yīng)請求的回答信號(hào)。(4)CPU將控制總線、地址總線及數(shù)據(jù)總線讓出,由DMA控制器進(jìn)行控制。(5)DMA控制器向外部設(shè)備發(fā)出DMA請求回答信號(hào)。(6)進(jìn)行DMA傳送。(7)數(shù)據(jù)傳送完畢,DMA控制器通過中斷請求線發(fā)出中斷信號(hào)。CPU在接收到中斷信號(hào)后,轉(zhuǎn)人中斷處理程序進(jìn)行后續(xù)處理。(8)中斷處理結(jié)束后,CPU返回到被中斷的程序繼續(xù)執(zhí)行。CPU重新獲得總線控制權(quán)。每個(gè)DMA控制器可以處理以下4種情況: (1)源和目的都在系統(tǒng)總線上; (2)源在系統(tǒng)總線上,目的在外圍

21、總線上; (3)源在外圍總線上,目的在系統(tǒng)總線上; (4)源和目的都在外圍總線上。5、嵌入式存儲(chǔ)系統(tǒng)的特點(diǎn)。(1)高速緩沖存儲(chǔ)器原理及特點(diǎn)。高速緩沖存儲(chǔ)器(cache)用來提高存儲(chǔ)器系統(tǒng)的性能,許多微處理器體系結(jié)構(gòu)都把它作為其定義的一部分。cache能夠減少內(nèi)存平均訪問時(shí)間。Cache可以分為統(tǒng)一cache和獨(dú)立的數(shù)據(jù)程序cache。(2) 存儲(chǔ)器管理單元MMU主要完成的功能。 (1)虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射。采用了頁式虛擬存儲(chǔ)管理,它把虛擬地址空間分成一個(gè)個(gè)固定大小的塊,每一塊稱為一頁,把物理內(nèi)存的地址空間也分成同樣大小的頁。MMU實(shí)現(xiàn)的就是從虛擬地址到物理地址的轉(zhuǎn)換。 (2)存儲(chǔ)器

22、訪問權(quán)限的控制。 (3)設(shè)置虛擬存儲(chǔ)空間的緩沖的特性。8、 嵌入式系統(tǒng)I/O設(shè)備接口1、掌握S3C2410的I/O接口的編程要求:掌握I/O口編程,能編寫實(shí)現(xiàn)LED1、 LED2 、 LED3、 LED4 輪流閃爍的程序。 實(shí)現(xiàn)LED1和LED2輪流閃爍的程序代碼 void Main(void) int flag,i; Target Init();/進(jìn)行硬件初始化操作,包括對IO口的初始化操作 for(;) if(flag = = 0) for(i = 0;i 1000000;i+); /延時(shí) rGPGCON rGPGCON0xfff0ffff | 0x00050000;/配置第8、第 /9位

23、為輸出引腳 rGPGDAT rGPGDAT0xeff | 0x200; /第8位輸出為低電平 /第9位輸出高電平 for(i = 0;i 10000000;i+); /延時(shí) flag = 1; else for(i = 0;i 1000000;i+); /延時(shí) rGPGCONrGPGCON0xfff0ffff(0x00050000;/配置第8、 /第9位為輸出引腳 rGPGDATrGPGDATOxdff | 0x100;/第8位輸出為高電平 /第9位輸出低電平 for(i = 0;i 1000000;i+); /延時(shí) flag = 0; 2、掌握S3C2410的A/D轉(zhuǎn)換器接口的原理要求:掌握

24、A/D轉(zhuǎn)換器接口的原理,能編寫A/D轉(zhuǎn)換器初始化函數(shù)和獲取A/D的轉(zhuǎn)換值的程序。 (1)A/D轉(zhuǎn)換器(模數(shù)轉(zhuǎn)換器)完成電模擬量到數(shù)字量的轉(zhuǎn)換。實(shí)現(xiàn)A/D轉(zhuǎn)換的方法很多,常用的方法有計(jì)數(shù)法、雙積分法和逐次逼近法等。(2)對A/D轉(zhuǎn)換器進(jìn)行初始化程序中的參數(shù)ch表示所選擇的通道號(hào),程序如下: void AD_Init (unsigned char ch) rADCDLY=100; /ADC啟動(dòng)或間隔延時(shí) rADCTSC=0; /選擇ADC模式 rADCCON=(114)|(496)|(ch3)|(02)|(07) return 0; /通道不能大于7 for(i=0; i 16; i+) /為轉(zhuǎn)換

25、準(zhǔn)確,轉(zhuǎn)換16次 rADCCON |=0x1; /啟動(dòng)A/D轉(zhuǎn)換 rADCCON= rADCCON0xffc7 |(ch 4); /為轉(zhuǎn)換準(zhǔn)確,除以16取均值3、 掌握四線式電阻式觸摸屏的工作原理,能分析觸摸點(diǎn)的X軸坐標(biāo)和Y軸坐標(biāo)是如何測量出來的。觸摸屏按其工作原理可分為矢量壓力傳感式、電阻式、電容式、紅外線式和表面聲波式5類。在嵌入式系統(tǒng)中常用的是電阻式觸摸屏。四線式觸摸屏的X工作面和Y工作面分別加在兩個(gè)導(dǎo)電層上,共有4根引出線:X、X,Y、Y分別連到觸摸屏的X電極對和Y電極對上。四線電阻屏觸摸壽命小于100萬次。當(dāng)給X方向的電極對施加一確定的電壓,而Y方向電極對不加電壓時(shí),在x平行電壓場中

26、,觸點(diǎn)處的電壓值可以在Y(或Y)電極上反映出來,通過測量Y電極對地的電壓大小,通過A/D轉(zhuǎn)換,便可得知觸點(diǎn)的X坐標(biāo)值。同理,當(dāng)給Y電極對施加電壓,而X電極對不加電壓時(shí),通過測量X電極的電壓,通過A/D轉(zhuǎn)換便可得知觸點(diǎn)的Y坐標(biāo)。四線電阻觸摸屏的分辨方法是將四線電阻觸摸后變化的模擬量轉(zhuǎn)換成數(shù)字量,經(jīng)過軟件計(jì)算得出不同的屏幕上不同的,坐標(biāo)。此工作主要是靠S3C2440A 芯片中的模數(shù)轉(zhuǎn)換器來實(shí)現(xiàn)的。4、 了解 S3C2410的UART串行接口的工作原理,掌握S3C2410的UART發(fā)送和接收數(shù)據(jù)的程序設(shè)計(jì)。UART(通用異步收發(fā)器)主要由數(shù)據(jù)線接口、控制邏輯、配置寄存器、波特率發(fā)生器、發(fā)送部分和接收

27、部分組成,采用異步串行通信方式,采用RS-232C 9芯接插件(DB-9)連接,是廣泛使用的串行數(shù)據(jù)傳輸方式. 本程序?qū)嵗龑?shí)現(xiàn)從UART0接收數(shù)據(jù),然后分別從UART0和UART1發(fā)送出去。其功能可以把鍵盤敲擊的字符通過PC機(jī)的串口發(fā)送給ARM系統(tǒng)上的UART0,ARM系統(tǒng)上的UART0接收到字符后,再通過UART0和UART1送給PC機(jī),這樣就完成了串口間的收發(fā)數(shù)據(jù)。要實(shí)現(xiàn)以上數(shù)據(jù)的收發(fā)功能,需要編寫的主要代碼如下。(1)發(fā)送數(shù)據(jù)其中whichUart為全局變量,指示當(dāng)前選擇的UART通道,使用串口發(fā)送一個(gè)字節(jié)的代碼如下: void Uart_SendByte(int data) if(wh

28、ichUart= =0) if(data= =n) while(?。╮UTRSTAT00x2); Delay(10); /延時(shí),與終端速度有關(guān) WrUTXH(r); while(!(rUTRSTAT00x2); /等待,直到發(fā)送狀態(tài)就緒 Delay(10); WrUTXH0(data); else if(whichUart= =1) if(data=n) while(?。╮UTRSTAT10x2); Delay(10); /延時(shí),與終端速度有關(guān) rUTXH1=r; while(?。╮UTRSTAT10x2); /等待,直到發(fā)送狀態(tài)就緒 Delay(10); rUTXH1data; else i

29、f(whichUart= =2) if (data= =n) while(?。╮UTRSTAT20x2); Delay(10); /延時(shí),與終端速度有關(guān) rUTXH2r; while(!(rUTRSTAT20x2); /等待,直到發(fā)送狀態(tài)就緒 Delay(10); rUTXH2data; (2)接收數(shù)據(jù)如果沒有接收到字符則返回0。使用串口接收一個(gè)字符的代碼如下: char Uart_GetKey(void) if(whichUart0) if(rUTRSTAT00x1) /UARTO接收到數(shù)據(jù) return RdURXH0(); else return 0; else if(whichUart

30、= =1) if(rUTRSTAT10x1) /UART1接收到數(shù)據(jù) return RdURXH1(); else return 0; else if(whichUart= =2) if(rUTRSTAT20x1) /UART2接收到數(shù)據(jù) return RdURXH2(); else return 0; else return 0; 5、掌握鍵盤接口設(shè)計(jì)的方法。 要求:掌握矩陣式鍵盤的掃描原理,能設(shè)計(jì)一個(gè)與S3C2410連接的4X4的矩陣式鍵盤的接口電路 ,并編寫鍵盤掃描程序。(1) 矩陣鍵盤的按鍵按N行M列排列,每個(gè)按鍵占據(jù)行列的一個(gè)交點(diǎn),需要的I/O口數(shù)目是N+M,容許的最大按鍵數(shù)是NM。

31、矩陣鍵盤可以減少與微控制器I/O接口的連線數(shù),是常用的一種鍵盤結(jié)構(gòu)形式。根據(jù)矩陣鍵盤的識(shí)鍵和譯鍵方法的不同,矩陣鍵盤又可以分為非編碼鍵盤和編碼鍵盤兩種。(2) 一個(gè)用I/O口實(shí)現(xiàn)的鍵盤接口,為了識(shí)別鍵盤上的閉合鍵,常采用行掃描法。行掃描法是使鍵盤上某一行線為低電平,而其余行接高電平,然后讀取列值,如果列值中有某位為低電平,則表明行列交點(diǎn)處的鍵被按下;否則掃描下一行,直到掃描完全部的行線為止。(3) 根據(jù)行掃描法的原理,識(shí)別矩陣鍵盤按鍵閉合分兩步進(jìn)行: a.識(shí)別鍵盤哪一行的鍵被按下:讓所有行線均為低電平,檢查各列線電平是否為低,如果有列線為低,則說明該列有鍵被按下,否則說明無鍵被按下。 b.如果

32、某列有鍵被按下,識(shí)別鍵盤哪一行的鍵被按下:逐行置低電平,并置其余各行為高電平,檢查各列線電平的變化,如果列電平變?yōu)榈碗娖?,則可確定此行此列交叉點(diǎn)處按鍵被按下。1.鍵盤控制初始化程序void keyboard_test(void) UINT8T ucChar; UINT8T szBuf40; uart_printf(“n Keyboard Test Examplen”); uart_printf(“Press any key to exitn”); Keyboard_init(); g_nKeyPress=0xFE; While(1) f_nKeyPress=0; while(f_nKeyPre

33、ss=0) if(uart_tetkey() /Press any key from UART0 to exit return; else if(ucChar=7) /or press 5*4 Key-7 to exit return; else if(g_nKeyPress!=0xFE) /or SB1202/SB1203 to exit return; iic_read_keybd(0x70,0x1,&ucChar); /get data from ZLG7290 If(ucChar!=0) ucChar-key_set(ucChar); /key map for Edukit II if

34、(ucChar16) sprintf(&szBuf,”press key %d”,ucChar); else if(ucChar255) sprintf(&szBuf,”press key %d”,ucChar); if(ucChar=0xFF) sprintf(&szBuf,”press key %c”,ucChar); if(ucChar=0xFF) sprintf(&szBuf,”press key FUN”); #ifdef BOARDTEST print_lcd(200,170,0x1c,&szBuf); #endif uart_printf(szBuf); uart_printf(

35、“n”) uart_printf(“end.n”);9、 嵌入式軟件及操作系統(tǒng)1、 正確理解進(jìn)程、線程的概念,掌握進(jìn)程及進(jìn)程的主要特點(diǎn),并能說明進(jìn)程和程序有什么區(qū)別。 (1) 進(jìn)程(process)是在描述多道系統(tǒng)中并發(fā)活動(dòng)過程引入的一個(gè)概念。進(jìn)程和程序是兩個(gè)既有聯(lián)系又有區(qū)別的概念,兩者不能混為一談。而進(jìn)程則是一次執(zhí)行過程,它是暫時(shí)的,是動(dòng)態(tài)地產(chǎn)生和終止的。 一個(gè)進(jìn)程通常包含有以下幾個(gè)方面的內(nèi)容: 相應(yīng)的程序;CPU上下文;一組系統(tǒng)資源。進(jìn)程的特點(diǎn):進(jìn)程具有動(dòng)態(tài)性;進(jìn)程具有獨(dú)立性;進(jìn)程具有并發(fā)性。(2)線程(thread)是一個(gè)比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。所謂的線程,就是進(jìn)程當(dāng)中的一條執(zhí)行流程。包括運(yùn)行上下文、內(nèi)存地址空間、打開的文件等。可以用線程來作為CPU的基本調(diào)度單位,使得各個(gè)線程之間可以并發(fā)執(zhí)行。對于同一個(gè)進(jìn)程當(dāng)中的各個(gè)線程來說,運(yùn)行在相同的資源平臺(tái)上,可以共享該進(jìn)程的大部分資源,但也有一小部分資源是不能共享的,每個(gè)線程都必須擁有各自獨(dú)立的一份。2、 任務(wù)的實(shí)現(xiàn)(1)任務(wù)的層次

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論