




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、AVRCPU內(nèi)核介紹這部分討論AVR內(nèi)核的總體結(jié)構(gòu)。CPU內(nèi)核的主要作用是保證程序的正確執(zhí)行。因此, CPU必 須能夠進(jìn)行以下操作:訪問(wèn)內(nèi)存、執(zhí)行計(jì)算、控制外圍設(shè)備、處理中斷。結(jié)構(gòu)概述Instrijctior RegisterFigure 3. Block Diagram of the AVR MCU ArchitectureFlashProgram MemoryProg ramCm n 但 1rati Bus 8-bitStatusand ControlIrstructionDecoderControl Lines32 xB General Purpose RegistrersWaichdo
2、g TimerAnalogComparatorI/O ModulelI/O Module nataSRAMI/O LinesI/O Module 2為了最大化性能和并行處理能力,AVR使用了哈佛結(jié)構(gòu)一一程序和數(shù)據(jù)擁有獨(dú)立的存儲(chǔ)器和總線。程序存儲(chǔ)器中的指令以單級(jí)流水線方式執(zhí)行,執(zhí)行指令的同時(shí),從程序存儲(chǔ)器中預(yù)取下一條指令, 使得指令能在單個(gè)時(shí)鐘周期內(nèi)被執(zhí)行。程序存儲(chǔ)器采用在系統(tǒng)可重復(fù)編程的Flash存儲(chǔ)器。快速訪問(wèn)寄存器組(RegisterFile)包含32個(gè)8位通用寄存器,它們具有單周期訪問(wèn)時(shí)間。這就實(shí)現(xiàn)了單周期的ALU運(yùn)行。在典型白一次ALU操作中,以下工作將在一個(gè)時(shí)鐘周期內(nèi)完成:從寄存器組
3、取兩個(gè)操作數(shù)、執(zhí)行計(jì)算、計(jì)算結(jié)果存回寄存器組。32個(gè)寄存器中的6個(gè)寄存器可構(gòu)成3個(gè)16位間接尋址寄存器指針 以用作數(shù)據(jù)空間的尋址,提高 了地址計(jì)算的效率。其中1個(gè)地址指針也可用于Flash程序存儲(chǔ)器中查表的地址指針。這些附加功能寄存器是16位的X、Y、Z寄存器,稍后將對(duì)它們進(jìn)行描述。ALU支持寄存器之間或 寄存器與常量之間的算術(shù)邏輯運(yùn)算,也支持 單寄存器操作。算 術(shù)運(yùn)算之后,狀態(tài)寄存器(SREG)將發(fā)生更新以反應(yīng)與計(jì)算結(jié)果有關(guān)的信息。程序流由“條件”和“非條件”跳轉(zhuǎn)(jump)、調(diào)用(call)指令提供,能夠直接訪問(wèn)整個(gè)地址空 問(wèn)。大多數(shù)AVR指令具有16位字格式。每一個(gè)程序存儲(chǔ)器地址下包含一
4、個(gè)16位或32位的指令。Flash程序存儲(chǔ)器空間劃分為兩個(gè)部分:Boot程序部分、應(yīng)用程序部分。這兩個(gè)部分均有專用的 鎖定位提供“寫(xiě)”和“讀/寫(xiě)”保護(hù)。用于向Flash存儲(chǔ)器的應(yīng)用程序部分進(jìn)行寫(xiě)入的 SPM指令必須 駐留于Boot程序部分。中斷和子程序調(diào)用期間,返回地址程序計(jì)數(shù)器(PC)存儲(chǔ)于堆棧。堆棧實(shí)際上分配于通用數(shù)據(jù)SRAM中,因此堆棧的大小僅受限于 SRAM的大小和使用。所有的用戶程序必須在復(fù)位(reset)例 程中初始化SP (堆棧指針)(在執(zhí)行任何子程序和中斷之前)。在I/O空間中,SP是可以進(jìn)行讀/寫(xiě)訪 問(wèn)的。在AVR架構(gòu)中,對(duì)SRAM的訪問(wèn)有5種不同的尋址模式。AVR架構(gòu)中的內(nèi)
5、存空間均是線性和規(guī)則的內(nèi)存映射。靈活的中斷模塊在I/O空間具有自己的控制寄存器。止匕外,在狀態(tài)寄存器中還設(shè)置了全局中斷使 能位。所有的中斷在中斷向量表中具有獨(dú)立的中斷向量(中斷處理程序入口)。中斷優(yōu)先級(jí)與中斷向量的位置有關(guān),中斷向量的地址越低,優(yōu)先級(jí)越高。I/O內(nèi)存空間包含64個(gè)地址用于CPU的外圍功能,比如控制寄存器、SPI、其他的I/O功能。I/O 內(nèi)存可直接訪問(wèn),或作為緊跟寄存器組的數(shù)據(jù)空間地址($20-$5F)訪問(wèn)。ALU高性能AVRALU和所有的32個(gè)通用寄存器聯(lián)合工作。單時(shí)鐘周期內(nèi),執(zhí)行一次能用寄存器之間 的算術(shù)運(yùn)算或寄存器與立即數(shù)之間的算術(shù)運(yùn)算。ALU的操作分為三個(gè)主要的類別:算
6、術(shù)、邏輯、位功能。有些結(jié)構(gòu)的實(shí)現(xiàn)中會(huì)提供乘法器,能夠支持有符號(hào)、無(wú)符號(hào)及小數(shù)格式的乘法。詳見(jiàn) “ - - -J,instructionsei:早下。狀態(tài)寄存器(SREG)關(guān)于最近執(zhí)行的算術(shù)運(yùn)算指令結(jié)果的信息會(huì)體現(xiàn)在狀態(tài)寄存器中。這些信息可用于改變程序流以執(zhí)行條件操作。注意,狀態(tài)寄存器會(huì)在所有的ALU操作之后進(jìn)行更新。在大多數(shù)情況下,這樣可以免除使用專用比較指令的必要,有利于產(chǎn)生更快和緊湊的編碼。當(dāng)進(jìn)入中斷的時(shí)候,狀態(tài)寄存器不會(huì)自動(dòng)保存;當(dāng)從中斷返回時(shí),狀態(tài)寄存器也不會(huì)自動(dòng)恢復(fù)。因此,這些工作必須由軟件進(jìn)行。AVR狀態(tài)寄存器SREG的定義如下所示:Bit765A3210I SR EG1 11HS
7、 | VN2 CRti?dA/Vr ileR/WRAVR/WR/WR/0R/WR/WR/WInitial Value0Q000C00? Bit 7 I: Global Interrupt Enable必須置1全局中斷使能位以使能中斷。各自的中斷使能控制由各自的控制寄存器提供。如果全局中斷使能位清0,將禁用所有中斷,而不管各自的中斷使能設(shè)置如何。當(dāng)一個(gè)中斷發(fā)生后,I位由硬件清0 (硬件不允許中斷嵌套,即 MCU向應(yīng)一個(gè)中斷后將禁用全局中斷,不再響應(yīng)其他中斷直到該中斷例程結(jié)束);RETI指令將置1全局中斷使能位以繼續(xù)響應(yīng)隨后可能發(fā)生的中斷。止匕外,可使用 SEI 和CLI指令進(jìn)行I位的軟件置1和清
8、00? Bit 6 T: -Bit Copy Storage助記符操作數(shù)描述操作標(biāo)記耗費(fèi)時(shí)鐘周期BSTRr, b寄存器到T的位存儲(chǔ)T-Rr(b)T1BLDRd, bT到寄存器的位裝載Rd(b)-TNone1位復(fù)制指令BLD (BitLoad)和BST (BitStore)使用T位作為操作“位”的源和目的。使用 BST 指令可將寄存器組中某個(gè)寄存器的特定位復(fù)制進(jìn)T中;使用BLD指令可將T中的位復(fù)制進(jìn)寄存器組中某個(gè)寄存器的特定位。? Bit 5 H:-Half Carry Flag半進(jìn)位標(biāo)志H用于指示一些算術(shù)運(yùn)算中的半進(jìn)位。半進(jìn)位在BCD算術(shù)運(yùn)算中很有用。? Bit 4 S:-Sign Bit,
9、S = N VS是N (負(fù)數(shù)標(biāo)志)和V (補(bǔ)碼溢出標(biāo)志)的異或值。? Bit 3 V: -Two ' s Complement Overflow Flag補(bǔ)碼溢出標(biāo)志用于支持補(bǔ)碼算術(shù)。? Bit 2 N:-Negative Flag指示算術(shù)或邏輯運(yùn)算的結(jié)果為負(fù)。? Bit 1 Z: -Zero Flag指示算術(shù)或邏輯運(yùn)算的結(jié)果為00? Bit 0 C:-Carry Flag指示算術(shù)或邏輯運(yùn)算的進(jìn)位。通用寄存器組寄存器組針對(duì)AVR的增強(qiáng)RISC指令集進(jìn)行了優(yōu)化。為了獲得所需的靈活性和性能,寄存器組支持以下輸入/輸出方案。One 8-bit output operand and one 8
10、-bit result input Two 8-bit output operands and one 8-bit result input Two 8-bit output operands and one 16-bit result inputOne 16-bit output operand and one 16-bit result input圖4展示了 CPU中的32個(gè)通用寄存器的結(jié)構(gòu)。70Wdr.$00General Purpose Working RegistersROR1數(shù)據(jù)空間JUNR2-$0D$0E50F $10 $11$1AX|-register LowByte$1BX-
11、register HighByte$1CY-register LowByte$1DY-register HighByte$1EZ-register LowByte$1FZ-register HighByteR13R14R15R16R17,«R26R27R28R29R30R31大部分面向寄存器組的指令都能夠直接訪問(wèn)所有的寄存器,而且大部分指令是單周期指令。如圖4所示,每個(gè)寄存器都分配了我一個(gè)數(shù)據(jù)內(nèi)存空間地址,直接將他們映射到用戶數(shù)據(jù)空間的前32個(gè)位置。盡管寄存器組沒(méi)有在實(shí)體上作為 SRAM的一部分,這樣的內(nèi)存組織在寄存器訪問(wèn)上面 提供了強(qiáng)大白靈活性,X、Y和Z指針寄存器可被設(shè)置用來(lái)索引
12、組中的任何寄存器。X、Y、Z寄存器R26至R31的寄存器除了通常的用途外,還有附加功能。這些寄存器可作為16位地址指針,提供對(duì)數(shù)據(jù)空間(DataSpace的間接訪問(wèn)。這三個(gè)間接地址寄存器 X、Y和Z的定義如下圖所示:15!,0X - register 1D 口15YHYL口Y - register R29|$l口)R2S 但I(xiàn)C15ZHZLQZ - register R31 |$1FR閱 01C)在不同的尋址模式下,這些地址寄存器的功能有:固定偏移量、自動(dòng)增量、自動(dòng)減量。堆棧指針堆棧主要用于存放臨時(shí)數(shù)據(jù),比如存放局部變量、中斷和子程序調(diào)用后的返回地址。堆棧指針寄 存器(16位寄存器,SPH?口
13、 SPL對(duì)應(yīng)的數(shù)據(jù)空間地址為$005和$005D)始終指向棧頂。注意,AVR 的堆棧設(shè)計(jì)成從高地址往低地址生長(zhǎng)。這就意味著PUSH指令會(huì)減小堆棧指針。如果軟件在子程序調(diào) 用或中斷之后從堆棧中讀取 PC的值,需要屏蔽掉未用的13到15位(PC寬為13位,用于尋址8k的 Flash ) o堆棧指針指向SRAM數(shù)據(jù)堆棧,子程序和中斷的棧分配于此。數(shù)據(jù) SRAM中的堆棧空間必須由 程序預(yù)先定義,即在執(zhí)行任何子程序或使能任彳中斷之前。堆棧指針必須指向地址高于$60的區(qū)域。使用PUSH指令將數(shù)據(jù)壓入堆棧時(shí),堆棧指針減1;因?yàn)樽映绦蛘{(diào)用或中斷而將返回地址壓入堆棧時(shí), 堆棧指針減2。使用POP指令將數(shù)據(jù)從堆棧
14、彈出時(shí),堆棧指針加 1;因從子程序返回(RET)或從中 斷返回(RETI)而使得數(shù)據(jù)彈出堆棧時(shí),堆棧指針加 2。堆棧指針是I/O空間里的兩個(gè)8位寄存器。實(shí)際使用的位個(gè)數(shù)取決于實(shí)現(xiàn)。 注意,在AVR架構(gòu)的些實(shí)現(xiàn)中,因?yàn)閿?shù)據(jù)空間很小,因此只需要 SPL就足夠了,而SPH寄存器則不會(huì)出現(xiàn)Bit151413121110gB| SP13SP14SP13 |'PS ISP11SP1。ISP&SPS ISPHI MSP&5P51SP4 1SP3spn1SP1 SPO ISPL7e54321DRead/WriteR/WR/WRAVRM'R/WRMR/WR/WRAMR/WRAA/
15、R/WR/WRF'R/WRMJInitial Value0000000D000000o口指令執(zhí)行時(shí)序這部分介紹指令執(zhí)行的訪問(wèn)時(shí)序。AVR的CPU由CPU時(shí)鐘clkCPU驅(qū)動(dòng),該時(shí)鐘由選中的時(shí)鐘源 產(chǎn)生。沒(méi)有使用內(nèi)部時(shí)鐘分頻圖6描述了哈佛架構(gòu)和快速寄存器訪問(wèn)所使能的并行指令獲取和執(zhí)行。這是獲得IMIPS/MHz的基本流水線概念。Figure 6, The Parallel Instruction (Fetches and Instruction Executions11 1T112T3l1ilii111T4dkCPUI,_n _/ v_-111st Instruction Fetch/i
16、 !1X1 /i11st Instruction Execute111-112nd Instruction Fetch2nd Instruction Executeii!_/1111 jj;Lzv3rd Instruction Fetch1113rd Instruction Execute 1111 J/4th Instruction Fetch ; 1111111II圖7展示了寄存器組的內(nèi)部時(shí)序概念。在單時(shí)鐘周期內(nèi),執(zhí)行了使用兩個(gè)寄存器操作數(shù)的ALU操作,并將結(jié)果存回目的寄存器。Figure 7, Single Cycle ALU OperationTiT2T3T4iiiiiidkcpu -
17、J''_I LLU i _iiiTotal Execirtion Time -KI11IlIIRegister Operands Fetch ()IIIALU Operation Execute (""3 ';'IIIResult Write Back <"";!復(fù)位和中斷處理AVR提供了數(shù)個(gè)不同的中斷源。這些中斷和獨(dú)立的復(fù)位(Reset)向量(硬件決定的特定中斷的入口地址)在程序內(nèi)存空間(Flash)中均有各自獨(dú)立的程序向量。所有的中斷均分配有獨(dú)立的使能 位,欲便能中斷必須同時(shí)便能獨(dú)立的使能位和狀態(tài)寄存器中的全局使
18、能位。取決于程序計(jì)數(shù)器的值、 當(dāng)鎖定位BLB02或BLB12被編程時(shí),中斷可能會(huì)被自動(dòng)禁用。該特色增強(qiáng)了軟件的安全性。詳見(jiàn)“內(nèi) 存編程”章節(jié)。程序內(nèi)存空間的最低地址處默認(rèn)定義為復(fù)位和中斷向量。向量的完整列表見(jiàn)“中斷”章節(jié)。該列 表同時(shí)也定義了中斷的優(yōu)先級(jí)別:地址越低,優(yōu)先級(jí)別越高。RESET具有最高的優(yōu)先級(jí),下一個(gè)是INTO 外部中斷請(qǐng)求00通過(guò)設(shè)置GICR (通用中斷控制寄存器)中的IVSEL位,可以將中斷向量 移動(dòng)到FlashBoot部分的開(kāi)端,詳見(jiàn)“中斷”章節(jié)。通過(guò)編程 BOOTRST熔絲也可將復(fù)位向量移動(dòng)至 FlashBoot部分的開(kāi)端,詳見(jiàn) “ BootLoaderSupport R
19、ead-While-WhteSelfProgramming” 章節(jié)。當(dāng)中斷發(fā)生,全局中斷使能位(I位)將清0,所有的中斷將被禁用(硬件不支持中斷嵌套)0用 戶軟件可以向I位寫(xiě)邏輯1以使能中斷嵌套(使用SEI指令)。而后,所有使能的中斷均可以中斷當(dāng) 前正在進(jìn)行的中斷例程(采用軟件方法實(shí)現(xiàn)了中斷嵌套)0當(dāng)從中斷指令返回時(shí)(執(zhí)行RETI), I位將 自動(dòng)置1。總體上講有兩個(gè)類型的中斷。第一種類型的中斷由置1中斷標(biāo)志的事件所觸發(fā),對(duì)于這些中斷,程序計(jì)數(shù)器(PC)被引導(dǎo)至實(shí)際的中斷向量以執(zhí)行中斷處理程序,同時(shí)硬件將清零相應(yīng)的中斷 標(biāo)志。中斷標(biāo)志也可以采用向其標(biāo)志位所在位置寫(xiě)邏輯1的方法進(jìn)行清零。如果當(dāng)對(duì)
20、應(yīng)的中斷使能位清零的時(shí)候發(fā)生了中斷條件,中斷標(biāo)志將置1并保持直到中斷被使能或中斷標(biāo)志被軟件清零(中斷掛起)。類似的,當(dāng)全局中斷使能位清零的時(shí)候,如果發(fā)生了一個(gè)或多個(gè)中斷條件,相應(yīng)的中斷標(biāo)志將 置1并保持直到全局中斷使能位置1,而后再按優(yōu)先級(jí)順序執(zhí)行中斷。第二種中斷只要中斷條件滿足即觸發(fā)。這些中斷不需要中斷標(biāo)志。如果中斷條件在中斷使能 前消失,則中斷不會(huì)被觸發(fā)。當(dāng)AVR從某個(gè)中斷退出時(shí),它將始終返回主程序并再執(zhí)行一條指令后才能繼續(xù)響應(yīng)掛起的中斷。注意,當(dāng)進(jìn)入中斷處理程序時(shí),不會(huì)自動(dòng)保存狀態(tài)寄存器;從中斷返回時(shí),也不會(huì)自動(dòng)恢復(fù)狀態(tài) 寄存器,這些工作需要由軟件完成。當(dāng)使用CLI指令禁用中斷時(shí),中斷將
21、被立即禁止。在 CLI指令后,不會(huì)執(zhí)行任何中斷,即使它和 CLI指令同時(shí)發(fā)生。下面的例子展示了如何在EEPROM寫(xiě)序列期間使用該方法禁用中斷。Assembly Code Examplein rlG t SRSG; store £REG vaI tiecli ; disable interrupts during tiired setiuenceAbt EECii, eemwe ; start kephom write sbi EEFj FFWEout SRBG ( rlG ; res tore SR2G value (I-bit)C Code Examplechar c£TiEG-C5REG - SREG; /*SREG value */* disable intern;pcs ourlng sequence */BECR |- (l«E£r4WE) ; /* start BEPRC1M write */E3
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 纖維生產(chǎn)項(xiàng)目管理與成本控制考核試卷
- 派遣工績(jī)效考核考核試卷
- 毛皮制品加工安全生產(chǎn)培訓(xùn)考核試卷
- 內(nèi)蒙古包頭市第二中學(xué)2025年初三下學(xué)期2月份月考生物試題含解析
- 網(wǎng)絡(luò)安全技術(shù)實(shí)踐教程(微課版)-教案 Linux操作系統(tǒng)安全加固
- 山東體育學(xué)院《學(xué)前教育研究方法與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 十堰市鄖縣2025屆五年級(jí)數(shù)學(xué)第二學(xué)期期末聯(lián)考模擬試題含答案
- 山西工商學(xué)院《中國(guó)文化英語(yǔ)教程》2023-2024學(xué)年第一學(xué)期期末試卷
- 寧夏石嘴山市名校2025屆初三第一次模擬(期末)考試生物試題試卷含解析
- 江西省鷹潭市貴溪市2024-2025學(xué)年初三下學(xué)期回頭考試數(shù)學(xué)試題含解析
- 初中生物呼吸系統(tǒng)的組成 課件-2024-2025學(xué)年冀少版生物七年級(jí)下冊(cè)
- 小學(xué)生睡眠管理課件
- 2025-2030中國(guó)電線電纜行業(yè)市場(chǎng)發(fā)展分析及前景預(yù)測(cè)與投資發(fā)展戰(zhàn)略研究報(bào)告
- 下載家長(zhǎng)會(huì)課件的方法
- 內(nèi)蒙古自治區(qū)部分學(xué)校2024-2025學(xué)年高三下學(xué)期二模地理試題(原卷版+解析版)
- 教研項(xiàng)目合同協(xié)議
- JJF 2231-2025感應(yīng)式磁傳感器校準(zhǔn)規(guī)范
- 云南省昆明地區(qū)2025屆小升初模擬數(shù)學(xué)測(cè)試卷含解析
- 委托設(shè)計(jì)框架合同協(xié)議
- 風(fēng)險(xiǎn)化學(xué)品事故應(yīng)急預(yù)案
- 第3課 中華文明的起源(教學(xué)設(shè)計(jì))七年級(jí)歷史上冊(cè)同步高效課堂(統(tǒng)編版2024)
評(píng)論
0/150
提交評(píng)論