第2章 微控制器及微處理器結(jié)構(gòu)_第1頁
第2章 微控制器及微處理器結(jié)構(gòu)_第2頁
第2章 微控制器及微處理器結(jié)構(gòu)_第3頁
第2章 微控制器及微處理器結(jié)構(gòu)_第4頁
第2章 微控制器及微處理器結(jié)構(gòu)_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2章微控制器/微處理器

體系結(jié)構(gòu)MCS-51MCUIA-32處理器體系結(jié)構(gòu)2.1MCS-51概述2K~64KROM(Flash)128~256內(nèi)部RAM64K外部RAM/擴(kuò)展IO地址空間2~3個定時器5~6個中斷源(某些型號10余個)并行口(4口32線I/O)全雙工串行口時鐘DC~24MHz(某些到40MHz)2.1.1存儲器組織

——申請C51變量還指定存儲空間idata80–FF間接尋址內(nèi)部RAMdata00–7F直接尋址間接尋址內(nèi)部RAMsfr,sbit80-FF直接尋址不連續(xù)xdata0000~FFFF64KB擴(kuò)展RAM(MOVX)code0000~FFFF64KBROM程序或常數(shù)bit(共享),sbit20–2F位尋址內(nèi)部RAM20H.0~20H.721H.0~21H.1…2FH.0~2FH.7R0~R74組00H-1FH寄存器C函數(shù)可以用using0using1using2using3指定PSW中的PS1,PS0用于選擇當(dāng)前的寄存器組(R0~R7)2.1.2MCS-51片上的基本部件并行口P1~P3定時器T0,T1,T2中斷串行口(UART,新型器件帶有I2C,SPI)SpecialFunctionRegistorsA(ACC),B,PSW,PC,DPTR定時器TMOD,TH0,TL0,TH1,TL1中斷IE,IP串行口SCON,SBUF電源管理PCON地址空間80H~FFH(直接尋址)能被8整除的特殊功能寄存器也可位尋址增加特殊功能(片上資源),但不需要修改指令系統(tǒng)2.1.3MCS-51中斷中斷源優(yōu)先級管理中斷服務(wù)程序應(yīng)用舉例MCS-51的中斷源中斷的屏蔽與優(yōu)先級MCS-51中斷系統(tǒng)總圖2.1.4軟件語言C51C51與ANSIC的區(qū)別需要了解MCS-51的體系結(jié)構(gòu)C、ANSIC、C51C語言ANSICtheAmericanNationalStandardsInstitute(ANSI)standardfortheClanguage.C51結(jié)合51系列單片機(jī)的存儲特點(diǎn)FranklinC51/KeilC51C51增加的保留字_at_alienbdatabitcodecompactdatafaridatainterruptlargepdata_priority_reentrantsbitsfrsfr16small_task_usingxdataC51的數(shù)據(jù)類型——注意對標(biāo)準(zhǔn)C的擴(kuò)展DataTypesBitsBytesValueRangebit10to1sbit10or1signedchar81-128to+127unsignedchar810to255signedint162-32768to+32767unsignedint1620to65535signedlong324-2147483648to+2147483647unsignedlong3240to4294967295float324±1.175494E-38to±3.402823E+38sfr810to255sfr161620to65535浮點(diǎn)數(shù)!這就可以支持復(fù)雜的運(yùn)算!

C51的存儲空間說明(關(guān)鍵詞)顯式變量存儲區(qū)域說明codedataidatabdataxdatapdata存儲模式(默認(rèn)變量存儲區(qū)域)small:在datacompact:在pdatalarge:在xdatainterrupt,using關(guān)鍵詞Interrupt后跟中斷的類型號0,1,2,3,4…,不再要求記住中斷矢量地址using后面跟的是寄存器組的選擇中斷函數(shù)的定義方法(1)voidInt0srv(void)interrupt0using1{ //INT0的中斷處理}類似的voidT0srv(void)interrupt1using1{ //T0的中斷處理}中斷函數(shù)的定義方法(2)voidInt1srv(void)interrupt2using1{ //INT1的中斷處理}voidT1srv(void)interrupt3using1{ //T1的中斷處理}中斷函數(shù)的定義方法(3)voidSportsrv(void)interrupt4using2{ //串行口的中斷處理}voidT2srv(void)interrupt5using2{ //T2的中斷處理}2.2IA-3280x86處理器回顧80386/80486的保護(hù)模式2.2.180x86系列微處理器的發(fā)展80188/80186嵌入式處理器8088/8086CPU+8253+DMAC+825980286實(shí)地址模式(1M)相當(dāng)于快速的808624位地址線(16M物理地址)支持多任務(wù)系統(tǒng)每個任務(wù)1G虛擬地址80386/80486/Pentium/…/Core多核多線程IA-32IA-64已經(jīng)商用化2.2.28086/8088的體系結(jié)構(gòu)數(shù)據(jù)總線內(nèi)部16bitBus外部16bit/8bitBus地址總線20bit(1MB)I/O獨(dú)立編址(邏輯獨(dú)立,共享:低16位地址線,16bit/8bit數(shù)據(jù)線。)因此需要/MEMR,/MEMR,/IORD,/IOWR因此需要IN,OUT端口操作指令支持多主和DMA(總線請求,HOLD/HLDA)中斷(矢量)出錯,陷阱單步,斷點(diǎn),溢出,軟件中斷;非屏蔽中斷,可屏蔽中斷典型應(yīng)用是IBMPC-XT(8088)PersonalComputer!DOSOS640K內(nèi)存,單用戶OS提供系統(tǒng)服務(wù)(兼容方式使用計(jì)算機(jī)資源),提供文件系統(tǒng),單色字符顯示器,鍵盤,磁盤,并行和串口接口沒有保護(hù)機(jī)制23

具體型號:80386SX/DX/EX32位寄存器;32位地址線尋址4GB物理地址,虛擬尋址64TB

三種工作模式實(shí)地址(RealAddressMode)(1M)快速8086

虛擬地址保護(hù)模式(ProtectedVirtualAddressMode)虛擬8086方式(Virtual8086Mode)保護(hù)模式——支持多用戶、多任務(wù)(操作系統(tǒng))特權(quán)級分頁系統(tǒng)

2.2.380386(1985年)微機(jī)系統(tǒng)與接口技術(shù)東南大學(xué)24

LogicDiagram25

80386MPU內(nèi)部結(jié)構(gòu)

26

80386功能結(jié)構(gòu):CPU/MMU/BIUCPUIUInstruction(Prefetch+Decode)UnitEU執(zhí)行:微操作、高速乘除、EA計(jì)算;ALU、GR64位筒式移位器保護(hù)測試(段邊界、段訪問權(quán)限)MMUSegmentationUnitPagingUnitBIU總線接口部件27

軟件模型

實(shí)模式(.386C)

16位模式,但是可以使用32位寄存器

保護(hù)模式(.386P)

通用(32位):EAX,EBX,ECX,EDX,EBP,ESP,ESI,EDI;

段寄存器(16位):CS,DS,ES,SS,+(附加數(shù)據(jù)段)FS,GS;

指令指針EIP(IP16位經(jīng)擴(kuò)展)

機(jī)器狀態(tài)(標(biāo)識)EFLAGS

80386寄存器控制寄存器CR0~CR4PG頁式地址使能CDCache禁止NW不透寫AM對齊標(biāo)識EM仿真協(xié)處理器PE保護(hù)允許WP寫保護(hù)NE數(shù)字運(yùn)算錯ET協(xié)處理器類型TS任務(wù)轉(zhuǎn)換PE=1保護(hù)模式PE=0實(shí)地址模式WP=1用戶級對寫核心級頁面訪問的寫保護(hù);WP=0核心級可以寫用戶級的只讀頁面;例如保存全局性機(jī)器狀態(tài)EFLAGS寄存器CF,PF,AF,ZF,SF,OF一組與運(yùn)算相關(guān)的標(biāo)識TF,IF,DF一組控制位(自陷,單步調(diào)試;非屏蔽中斷允許,串操作方向)IOPLIO特權(quán)保護(hù),值為0,1,2和3,現(xiàn)行任務(wù)的優(yōu)先級CPL高于或等于IOPL時,指令I(lǐng)N,OUT,INS,OUTS,STI,CLI和LOCK等前綴指令正常執(zhí)行,否則會引起13號異常RF恢復(fù)標(biāo)志(如果RF=1,下一條指令引起的任何異常被忽略,每執(zhí)行完一條無異常的指令,自動使RF=0;避免斷點(diǎn)和單步重復(fù)異常)VM虛擬8086方式(1:是,0:非)AC對齊檢查(僅486及以上,字,雙字或4字對齊檢查)低16位,與8086保持兼容30

對EXX操作(原16位操作指令加操作尺寸前綴Prefix(66H))PUSHEAX(機(jī)器碼33C0)PUSHAX(機(jī)器碼6633C0)改變默認(rèn)操作(16/32)

SHLEDX,7;MOVEAX,34567890H;ADDEAX,ESI;MOVFS:[ESI+20],AL;MOVGS,AX; MOVFS,DXADDEAX,FS:[EDI+100]16位、32位指令兼容性間址寄存器(86)BX,BP,…(386)EBX,EBP,ESI,EDI,…MOVBX,[EAX]

MOVAX,[EDX+TABLE];

MOVSI,DATA[AX];變址寄存器(86)(SI,DI)(386)除ESP外的所有32位寄存器MOVAX,[ESI*4];MOV[EDI*4],EBX;變址寄存器可乘系數(shù)1/2/4/8指令編碼增加了尋址尺寸前綴(67H)改變默認(rèn)尋址(16/32)….尋址方式擴(kuò)充32

80386系統(tǒng)控制指令存儲器管理Figure8.21LogicaltophysicaladdresstranslationinIA-32.虛擬地址: 用戶程序采用虛擬地址,最大64TB; 實(shí)際使用,按代碼、數(shù)據(jù)和堆棧必須分段邏輯地址:

邏輯地址=段基址(32位)+偏移量(32位)

段既是虛擬地址空間中的基本單位,也是共享和保護(hù)的基本單位。段的概念段的描述也方便多任務(wù)保護(hù):設(shè)置各段的限制(長度)和允許的操作段基址(BaseAddress)段限制(Limit)段屬性(Attributes)RWEC基地址與限制限制用于操作的合法性檢查分段與重定位功能段寄存器與段描述符寄存器保護(hù)模式下,段寄存器的高13位是選擇符只要段寄存器內(nèi)容發(fā)生變化,則根據(jù)選擇符,從描述符表中查找對應(yīng)的項(xiàng),并透明地加載到描述符寄存器透明:自動,描述符寄存器對程序員不可見IA-32選擇符格式保護(hù)模式下的CS,DS,ES,F(xiàn)S,GS,SSRPL 請求特權(quán)級0~3TI 0:在GDT中;1:在LDT中段描述符G 段限制的粒度0:Byte1:(page,4KB)D/B 操作方式1:32位操作;0:286兼容的16位方式P 存在位1:存在于內(nèi)存中;0:不在內(nèi)存中DPL段描述符被訪問的權(quán)限,0~3S 描述符性質(zhì) 0:系統(tǒng)描述符 1:代碼段或數(shù)據(jù)類段描述符E 可執(zhí)行性質(zhì) 0:不可執(zhí)行(數(shù)據(jù))1:可執(zhí)行代碼ED/C數(shù)據(jù)段表示擴(kuò)展方向,代碼段表示一致性ED=0,向上擴(kuò)展,偏移量≤段限制;ED=1向下擴(kuò)展,偏移量≥段限制(?堆棧)C=0只能執(zhí)行,不可讀;C=0可讀,可執(zhí)行W/R 在數(shù)據(jù)段0:只讀;1:讀/寫在代碼段0:只執(zhí)行;1:執(zhí)行/讀41

系統(tǒng)描述符DPL系統(tǒng)描述符被訪問的權(quán)限,0~3TYPE(下列以外的其余值,不用或在中斷描述符中使用)0001:可用的286TSS描述符0010:LDT描述符0011:忙的286TSS描述符1001:可用的486/386TSS描述符1011:忙的486/386TSS描述符中斷描述符(中斷門,異常門和調(diào)用門)廣義的中斷,含中斷和異常TYPE0100:286調(diào)用門0101:任務(wù)門0110:286中斷門0111:286異常門1100:486/386調(diào)用門1110:486/386中斷門1111:486/386異常門進(jìn)入中斷,調(diào)用子程序或任務(wù)切換,都需要通過檢查,以此獲保護(hù);“門”非常形象。系統(tǒng)地址寄存器GDTR(GlobeDescribeTableRegister)GDT包含操作系統(tǒng)使用的和所有任務(wù)公用的描述符IDTR(InterruptDescribeTableRegister)IDT包含所有中斷描述符LDTR(LocalDescribeTableRegister)LDT包含某一任務(wù)私用的描述符TR(TaskRegister)任務(wù)寄存器OS的每個任務(wù)有一個任務(wù)狀態(tài)段TSS,全體構(gòu)成TSS描述符存放在GDT中;當(dāng)前任務(wù)的TSS選擇符存放在TR中。訪問存儲器中的段

GDTbased訪問存儲器中的段LDTbased46

386、486異常/中斷

(Exceptions/

Interrupt)

IDT0-31:異常0零除1調(diào)試異常2NMI3斷點(diǎn)4溢出5界限檢查6非法Opcode7FPU不可用8雙重錯誤異常10非法TSS11段不存在12堆棧異常13GP14頁Fault17對齊檢查異常

18-31未用

IDT32-255:外部硬件中斷

中斷門描述符表的定位只有一個全局的中斷門描述符表;IDTR指令的內(nèi)容由指令LIDT裝入;某類型的中斷/異常發(fā)生,則通過中斷門描述符,獲得選擇符CS和偏移地址EIP。48

80386保護(hù)機(jī)制1.每個任務(wù)分配的地址空間不同(各種表),使任務(wù)之間完全隔離);2.段基址、段限制及權(quán)限,使任務(wù)與任務(wù)之間,任務(wù)與操作系統(tǒng)之間,相互隔離;3.關(guān)于系統(tǒng)寄存器的操作指令屬于特權(quán)指令;控制特權(quán)指令和I/O指令的使用并控制了對段和描述符的存取。4.I/O操作指令也是特權(quán)指令。這是為了防止任務(wù)通過I/O操作,繞過操作系統(tǒng)的保護(hù)機(jī)制,來破壞系統(tǒng)。5.特權(quán)為0~3用戶特權(quán)級最低為3。Windows操作系統(tǒng)只使用了兩個特權(quán)級0和3特權(quán)級的校驗(yàn)CPL(CurrentPrivilegeLevel)當(dāng)前特權(quán)級,在CS寄存器的RPL字段,表征CPU的特權(quán)級;RPL(RequestedPrivilegeLevel)請求特權(quán)級DPL(DescriptorPrivilegeLevel)描述符特權(quán)級在描述符里面。

DPL≥MAX(CPL,RPL)在IA-32架構(gòu),CS不可以被賦值,所以,包括CPL也不可以被指令修改。但是JMP,CALL,INTERRUPT,EXCEPTION,task-switching導(dǎo)致選擇符變化,從而可以改變它CPL。但是有個例外:從低優(yōu)先級調(diào)用高優(yōu)先級的代碼,CPL維持不變。利用CPL/DPL訪問存儲器和子程序調(diào)用的規(guī)則不能訪問更高優(yōu)先級中的數(shù)據(jù),可以訪問同級或低級優(yōu)先級的數(shù)據(jù);不能調(diào)用低優(yōu)先級的子程序,因?yàn)橄鄬碚f,低級的程序可靠性差,通過調(diào)用門也不行??梢哉{(diào)用高優(yōu)先級的子程序,但是必須使用同級或下級提供的調(diào)用門,并且所執(zhí)行的是一致性代碼(共享)不可以使用高優(yōu)先級中的調(diào)用門。調(diào)用子程序代碼一致性代碼段:可以共享的代碼段;非一致性代碼段:不可以共享的代碼。是否一致性代碼,取決于被調(diào)用者(描述符)。段內(nèi)調(diào)用,無優(yōu)先級問題,且不使用調(diào)用門段間,同優(yōu)先級,使用調(diào)用門;段間調(diào)用,使用調(diào)用門:如果目標(biāo)代碼段是一個特權(quán)級更高的一致代碼段,那么轉(zhuǎn)移成功;并且CPL不會改變;如果目標(biāo)代碼段是一個特權(quán)級更高的非一致代碼段,那么跳轉(zhuǎn)失敗;如果目標(biāo)代碼段是一個特權(quán)級更低的代碼段(不論是否一致),那么跳轉(zhuǎn)總是會失敗的,除非使用RETF跳轉(zhuǎn)。

52

多任務(wù)系統(tǒng)與多處理系統(tǒng)應(yīng)用:多個任務(wù)集合任務(wù):共同完成某項(xiàng)功能的多個程序集合(GDT公用)每個任務(wù):

1.私用局部描述符表LDT--虛擬地址空間(段/頁)2.任務(wù)狀態(tài)段TSS(最小103字節(jié)),保存任務(wù)的全部運(yùn)行狀態(tài)信息(切換時保存和恢復(fù)機(jī)器狀態(tài)):所有寄存器值,LDT選擇符,頁目錄指針,I/O位圖等(TR存放當(dāng)前任務(wù)TSS選擇符和描述符,LDTR存放當(dāng)前任務(wù)的LDT描述符)TSS存放:只能在GDT中,type=9未執(zhí)行,Type=11(0BH)正在執(zhí)行(忙)TSS訪問:只能通過任務(wù)門間接訪問(OFFSET等未用)PDPL00101選擇符Type=5:調(diào)用門

任務(wù)門:GDT/LDT/IDT

53

多任務(wù)切換過程發(fā)生:

1.當(dāng)前任務(wù)執(zhí)行一條選擇符指向TSS描述符或任務(wù)門的段間JMP或CALL2.發(fā)生對應(yīng)于任務(wù)門的中斷或異常3.NT=1時執(zhí)行一條IRET指令切換:

1.離去任務(wù)狀態(tài)保存在相應(yīng)TSS中;2.待切換任務(wù)TSS對應(yīng)描述符==>TR,type=9==>113.TSS內(nèi)容==>寄存器保護(hù):

CPL<=TSSDPL指向TSS選擇符的RPL<=TSSDPL異常:10任務(wù)狀態(tài)段TSS多任務(wù)切換;暫停現(xiàn)行任務(wù)的執(zhí)行,從就緒的等待任務(wù)中選一個,恢復(fù)其執(zhí)行;80386/80486用硬件支持多任務(wù)切換。每個任務(wù)都有一個任務(wù)狀態(tài)段。如右圖,為一個TSS;所有任務(wù)的TSS構(gòu)成一張表,每一個都需要一個描述符;且它們都在GDT中(OS使用)。TR存放當(dāng)前任務(wù)TSS選擇符;LDTR指向當(dāng)前任務(wù)的LDT描述符。保護(hù)方式下的地址轉(zhuǎn)換程序的每個段,都是從0地址開始的,4G

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論