第2章 微控制器及微处理器结构_第1页
第2章 微控制器及微处理器结构_第2页
第2章 微控制器及微处理器结构_第3页
第2章 微控制器及微处理器结构_第4页
第2章 微控制器及微处理器结构_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

体系结构MCS-51MCUIA-32处理器体系结构2.1MCS-51概述2K~64KROM(Flash)128~256内部RAM64K外部RAM/扩展IO地址空间2~3个定时器5~6个中断源(某些型号10余个)并行口(4口32线I/O)全双工串行口时钟DC~24MHz(某些到40MHz)2.1.1存储器组织

——申请C51变量还指定存储空间idata80–FF间接寻址内部RAMdata00–7F直接寻址间接寻址内部RAMsfr,sbit80-FF直接寻址不连续xdata0000~FFFF64KB扩展RAM(MOVX)code0000~FFFF64KBROM程序或常数bit(共享),sbit20–2F位寻址内部RAM20H.0~20H.721H.0~21H.1…2FH.0~2FH.7R0~R74组00H-1FH寄存器C函数可以用using0using1using2using3指定PSW中的PS1,PS0用于选择当前的寄存器组(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整除的特殊功能寄存器也可位寻址增加特殊功能(片上资源),但不需要修改指令系统2.1.3MCS-51中断中断源优先级管理中断服务程序应用举例MCS-51的中断源中断的屏蔽与优先级MCS-51中断系统总图2.1.4软件语言C51C51与ANSIC的区别需要了解MCS-51的体系结构C、ANSIC、C51C语言ANSICtheAmericanNationalStandardsInstitute(ANSI)standardfortheClanguage.C51结合51系列单片机的存储特点FranklinC51/KeilC51C51增加的保留字_at_alienbdatabitcodecompactdatafaridatainterruptlargepdata_priority_reentrantsbitsfrsfr16small_task_usingxdataC51的数据类型——注意对标准C的扩展DataTypesBitsBytesValueRangebit10to1sbit10or1signedchar81-128to+127unsignedchar810to255signedint162-32768to+32767unsignedint1620to65535signedlong324-2147483648to+2147483647unsignedlong3240to4294967295float324±1.175494E-38to±3.402823E+38sfr810to255sfr161620to65535浮点数!这就可以支持复杂的运算!

C51的存储空间说明(关键词)显式变量存储区域说明codedataidatabdataxdatapdata存储模式(默认变量存储区域)small:在datacompact:在pdatalarge:在xdatainterrupt,using关键词Interrupt后跟中断的类型号0,1,2,3,4…,不再要求记住中断矢量地址using后面跟的是寄存器组的选择中断函数的定义方法(1)voidInt0srv(void)interrupt0using1{ //INT0的中断处理}类似的voidT0srv(void)interrupt1using1{ //T0的中断处理}中断函数的定义方法(2)voidInt1srv(void)interrupt2using1{ //INT1的中断处理}voidT1srv(void)interrupt3using1{ //T1的中断处理}中断函数的定义方法(3)voidSportsrv(void)interrupt4using2{ //串行口的中断处理}voidT2srv(void)interrupt5using2{ //T2的中断处理}2.2IA-3280x86处理器回顾80386/80486的保护模式2.2.180x86系列微处理器的发展80188/80186嵌入式处理器8088/8086CPU+8253+DMAC+825980286实地址模式(1M)相当于快速的808624位地址线(16M物理地址)支持多任务系统每个任务1G虚拟地址80386/80486/Pentium/…/Core多核多线程IA-32IA-64已经商用化2.2.28086/8088的体系结构数据总线内部16bitBus外部16bit/8bitBus地址总线20bit(1MB)I/O独立编址(逻辑独立,共享:低16位地址线,16bit/8bit数据线。)因此需要/MEMR,/MEMR,/IORD,/IOWR因此需要IN,OUT端口操作指令支持多主和DMA(总线请求,HOLD/HLDA)中断(矢量)出错,陷阱单步,断点,溢出,软件中断;非屏蔽中断,可屏蔽中断典型应用是IBMPC-XT(8088)PersonalComputer!DOSOS640K内存,单用户OS提供系统服务(兼容方式使用计算机资源),提供文件系统,单色字符显示器,键盘,磁盘,并行和串口接口没有保护机制23

具体型号:80386SX/DX/EX32位寄存器;32位地址线寻址4GB物理地址,虚拟寻址64TB

三种工作模式实地址(RealAddressMode)(1M)快速8086

虚拟地址保护模式(ProtectedVirtualAddressMode)虚拟8086方式(Virtual8086Mode)保护模式——支持多用户、多任务(操作系统)特权级分页系统

2.2.380386(1985年)微机系统与接口技术东南大学24

LogicDiagram25

80386MPU内部结构

26

80386功能结构:CPU/MMU/BIUCPUIUInstruction(Prefetch+Decode)UnitEU执行:微操作、高速乘除、EA计算;ALU、GR64位筒式移位器保护测试(段边界、段访问权限)MMUSegmentationUnitPagingUnitBIU总线接口部件27

软件模型

实模式(.386C)

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

保护模式(.386P)

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

段寄存器(16位):CS,DS,ES,SS,+(附加数据段)FS,GS;

指令指针EIP(IP16位经扩展)

机器状态(标识)EFLAGS

80386寄存器控制寄存器CR0~CR4PG页式地址使能CDCache禁止NW不透写AM对齐标识EM仿真协处理器PE保护允许WP写保护NE数字运算错ET协处理器类型TS任务转换PE=1保护模式PE=0实地址模式WP=1用户级对写核心级页面访问的写保护;WP=0核心级可以写用户级的只读页面;例如保存全局性机器状态EFLAGS寄存器CF,PF,AF,ZF,SF,OF一组与运算相关的标识TF,IF,DF一组控制位(自陷,单步调试;非屏蔽中断允许,串操作方向)IOPLIO特权保护,值为0,1,2和3,现行任务的优先级CPL高于或等于IOPL时,指令IN,OUT,INS,OUTS,STI,CLI和LOCK等前缀指令正常执行,否则会引起13号异常RF恢复标志(如果RF=1,下一条指令引起的任何异常被忽略,每执行完一条无异常的指令,自动使RF=0;避免断点和单步重复异常)VM虚拟8086方式(1:是,0:非)AC对齐检查(仅486及以上,字,双字或4字对齐检查)低16位,与8086保持兼容30

对EXX操作(原16位操作指令加操作尺寸前缀Prefix(66H))PUSHEAX(机器码33C0)PUSHAX(机器码6633C0)改变默认操作(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;变址寄存器可乘系数1/2/4/8指令编码增加了寻址尺寸前缀(67H)改变默认寻址(16/32)….寻址方式扩充32

80386系统控制指令存储器管理Figure8.21LogicaltophysicaladdresstranslationinIA-32.虚拟地址: 用户程序采用虚拟地址,最大64TB; 实际使用,按代码、数据和堆栈必须分段逻辑地址:

逻辑地址=段基址(32位)+偏移量(32位)

段既是虚拟地址空间中的基本单位,也是共享和保护的基本单位。段的概念段的描述也方便多任务保护:设置各段的限制(长度)和允许的操作段基址(BaseAddress)段限制(Limit)段属性(Attributes)RWEC基地址与限制限制用于操作的合法性检查分段与重定位功能段寄存器与段描述符寄存器保护模式下,段寄存器的高13位是选择符只要段寄存器内容发生变化,则根据选择符,从描述符表中查找对应的项,并透明地加载到描述符寄存器透明:自动,描述符寄存器对程序员不可见IA-32选择符格式保护模式下的CS,DS,ES,FS,GS,SSRPL 请求特权级0~3TI 0:在GDT中;1:在LDT中段描述符G 段限制的粒度0:Byte1:(page,4KB)D/B 操作方式1:32位操作;0:286兼容的16位方式P 存在位1:存在于内存中;0:不在内存中DPL段描述符被访问的权限,0~3S 描述符性质 0:系统描述符 1:代码段或数据类段描述符E 可执行性质 0:不可执行(数据)1:可执行代码ED/C数据段表示扩展方向,代码段表示一致性ED=0,向上扩展,偏移量≤段限制;ED=1向下扩展,偏移量≥段限制(?堆栈)C=0只能执行,不可读;C=0可读,可执行W/R 在数据段0:只读;1:读/写在代码段0:只执行;1:执行/读41

系统描述符DPL系统描述符被访问的权限,0~3TYPE(下列以外的其余值,不用或在中断描述符中使用)0001:可用的286TSS描述符0010:LDT描述符0011:忙的286TSS描述符1001:可用的486/386TSS描述符1011:忙的486/386TSS描述符中断描述符(中断门,异常门和调用门)广义的中断,含中断和异常TYPE0100:286调用门0101:任务门0110:286中断门0111:286异常门1100:486/386调用门1110:486/386中断门1111:486/386异常门进入中断,调用子程序或任务切换,都需要通过检查,以此获保护;“门”非常形象。系统地址寄存器GDTR(GlobeDescribeTableRegister)GDT包含操作系统使用的和所有任务公用的描述符IDTR(InterruptDescribeTableRegister)IDT包含所有中断描述符LDTR(LocalDescribeTableRegister)LDT包含某一任务私用的描述符TR(TaskRegister)任务寄存器OS的每个任务有一个任务状态段TSS,全体构成TSS描述符存放在GDT中;当前任务的TSS选择符存放在TR中。访问存储器中的段

GDTbased访问存储器中的段LDTbased46

386、486异常/中断

(Exceptions/

Interrupt)

IDT0-31:异常0零除1调试异常2NMI3断点4溢出5界限检查6非法Opcode7FPU不可用8双重错误异常10非法TSS11段不存在12堆栈异常13GP14页Fault17对齐检查异常

18-31未用

IDT32-255:外部硬件中断

中断门描述符表的定位只有一个全局的中断门描述符表;IDTR指令的内容由指令LIDT装入;某类型的中断/异常发生,则通过中断门描述符,获得选择符CS和偏移地址EIP。48

80386保护机制1.每个任务分配的地址空间不同(各种表),使任务之间完全隔离);2.段基址、段限制及权限,使任务与任务之间,任务与操作系统之间,相互隔离;3.关于系统寄存器的操作指令属于特权指令;控制特权指令和I/O指令的使用并控制了对段和描述符的存取。4.I/O操作指令也是特权指令。这是为了防止任务通过I/O操作,绕过操作系统的保护机制,来破坏系统。5.特权为0~3用户特权级最低为3。Windows操作系统只使用了两个特权级0和3特权级的校验CPL(CurrentPrivilegeLevel)当前特权级,在CS寄存器的RPL字段,表征CPU的特权级;RPL(RequestedPrivilegeLevel)请求特权级DPL(DescriptorPrivilegeLevel)描述符特权级在描述符里面。

DPL≥MAX(CPL,RPL)在IA-32架构,CS不可以被赋值,所以,包括CPL也不可以被指令修改。但是JMP,CALL,INTERRUPT,EXCEPTION,task-switching导致选择符变化,从而可以改变它CPL。但是有个例外:从低优先级调用高优先级的代码,CPL维持不变。利用CPL/DPL访问存储器和子程序调用的规则不能访问更高优先级中的数据,可以访问同级或低级优先级的数据;不能调用低优先级的子程序,因为相对来说,低级的程序可靠性差,通过调用门也不行。可以调用高优先级的子程序,但是必须使用同级或下级提供的调用门,并且所执行的是一致性代码(共享)不可以使用高优先级中的调用门。调用子程序代码一致性代码段:可以共享的代码段;非一致性代码段:不可以共享的代码。是否一致性代码,取决于被调用者(描述符)。段内调用,无优先级问题,且不使用调用门段间,同优先级,使用调用门;段间调用,使用调用门:如果目标代码段是一个特权级更高的一致代码段,那么转移成功;并且CPL不会改变;如果目标代码段是一个特权级更高的非一致代码段,那么跳转失败;如果目标代码段是一个特权级更低的代码段(不论是否一致),那么跳转总是会失败的,除非使用RETF跳转。

52

多任务系统与多处理系统应用:多个任务集合任务:共同完成某项功能的多个程序集合(GDT公用)每个任务:

1.私用局部描述符表LDT--虚拟地址空间(段/页)2.任务状态段TSS(最小103字节),保存任务的全部运行状态信息(切换时保存和恢复机器状态):所有寄存器值,LDT选择符,页目录指针,I/O位图等(TR存放当前任务TSS选择符和描述符,LDTR存放当前任务的LDT描述符)TSS存放:只能在GDT中,type=9未执行,Type=11(0BH)正在执行(忙)TSS访问:只能通过任务门间接访问(OFFSET等未用)PDPL00101选择符Type=5:调用门

任务门:GDT/LDT/IDT

53

多任务切换过程发生:

1.当前任务执行一条选择符指向TSS描述符或任务门的段间JMP或CALL2.发生对应于任务门的中断或异常3.NT=1时执行一条IRET指令切换:

1.离去任务状态保存在相应TSS中;2.待切换任务TSS对应描述符==>TR,type=9==>113.TSS内容==>寄存器保护:

CPL<=TSSDPL指向TSS选择符的RPL<=TSSDPL异常:10任务状态段TSS多任务切换;暂停现行任务的执行,从就绪的等待任务中选一个,恢复其执行;80386/80486用硬件支持多任务切换。每个任务都有一个任务状态段。如右图,为一个TSS;所有任务的TSS构成一张表,每一个都需要一个描述符;且它们都在GDT中(OS使用)。TR存放当前任务TSS选择符;LDTR指向当前任务的LDT描述符。保护方式下的地址转换程序的每个段,都是从0地址开始的,4G

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论