不同CUP中断技术对比专题研究

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

不同CUP中断技术对比专题研究一、8086中断系统:8086(88)中断系统可以容纳最多256个中断源,所有中断源统一编码,每个中断源用一个字节型编码标识,该编码称为中断向量码,它是CPU识别中断源的标记。1.1中断源类型分为两大类:1、内部中断它由CPU内部事件及执行软中断指令产生。已定义的内部中断有:①除法错中断,②单步中断,③断点中断,④溢出中断,⑤软件中断。2、外部中断它是由外部中断源产生对CPU的请求而引发的。8086(88)中断系统将外部中断源又分为两种。①非屏蔽中断,②可屏蔽中断。1.2中断响应过程:在8086(88)系统中,中断控制是由CPU与中断控制器共同完成的,这使得中断过程简化:①中断请求,②中断响应,③中断处理,④中断返回。1.3中断向量表8086(88)微机系统在内存的最低端开辟了1KB的存贮区作为中断向量表。该表以四字节为一组构造而成,共分为256组,按中断向量码的序号排列。1.48259的工作过程如下:1、中断请求输入端IR0~IR7接收外部中断源的请求信号。2、外部中断源的请求状态锁存在中断请求寄存器IRR(8位)的相应位(即置1),并与中断屏蔽寄存器IMR(8位)相与,送给优先级判决电路。3、优先级判决电路从提出请求的中断源(记录在IRR)中,检测出优先级最高的中断请求位,将其与在内部服务寄存器ISR(8位)中记录的正在被CPU服务的中断源进行优先级比较,只有当请求服务的中断源优先级高于正在服务的中断源优先级,判优电路才向控制电路发出中断请求有效信号。4、控制电路接收到中断请求有效信号后,向CPU输出INT信号。5、CPU接受INT信号,在中断允许(IF=1)的情况下,发出响应信号。6、8259接收信号,在第1个INTA周期,先设置ISR的相应位,并恢复IRR的相应位,然后,主控8259送出级联地址CAS0~CAS2加载至从属8259上。7、单独使用的8259或是由CAS0~CAS2选择的从属8259,在第2个INTA周期,将中断向量码输出至数据总线。8、CPU读取中断向量码,转移到相应的中断处理程序。9、中断结束时,通过在中断处理程序中向8259送一条EOI(中断结束)命令,使ISR相应位复位;或8259选择自动结束中断方式时,由8259在第2个信号的后沿自动将ISR相应位复位。二、8051单片机中断控制系统:2.18051单片机基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的编程。2.2中断系统的结构:5个中断源的符号、名称及产生的条件如下。INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。T0:定时器/计数器0中断,由T0计满回零引起。T1:定时器/计数器l中断,由T1计满回零引起。TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。2.3中断系统的控制寄存器:中断系统有两个控制寄存器IE和IP,它们分别用来设定各个中断源的打开/关闭和中断优先级。此外,在TCON中另有4位用于选择引起外部中断的条件并作为标志位。2.3.1中断允许寄存器--IEIE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H-AFH。IE用来打开或关断各中断源的中断请求,基本格式如下图所示:EA:全局中断允许位。EA=0,关闭全部中断;EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。×:无效位。ES:串行I/O中断允许位。ES=1,打开串行I/O中断;ES=0,关闭串行I/O中断。ETl;定时器/计数器1中断允许位。ETl=1,打开T1中断;ETl=O,关闭T1中断。EXl:外部中断l中断允许位。EXl=1,打开INT1;EXl=0,关闭INT1。ET0:定时器/计数器0中断允许位。ET0=1,打开T0中断;ET0=0,关闭TO中断。EXO:外部中断0中断允许位。Ex0=1,打开INT0;EX0=0,关闭INT0.2.3.2中断优先寄存器--IP:IP在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H一BFH,IP用来设定各个中断源属于两级中断中的哪一级,IP的基本格式如下图所示:×:无效位。PS:串行I/O中断优先级控制位。PS=1,高优先级;PS=0,低优先级。PTl:定时器/计数器1中断优先级控制位。PTl=1,高优先级;PTl=0,低优先级。Pxl:外部中断1中断优先级控制位。Pxl=1,高优先级;PXl=O,低优先级。PT0:定时器/计数器o中断优先级控制位。PT0=1,高优先级;PTO=0,低优先级。Px0:外部中断0中断优先级控制位。Px0=1,高优先级;Px0=0,低优先级。在MCS-51单片机系列中,高级中断能够打断低级中断以形成中断嵌套;同级中断之间,或低级对高级中断则不能形成中断嵌套。若几个同级中断同时向CPU请求中断响应,则CPU按如下顺序确定响应的先后顺序:INT0-T0-INT1-T1-RI/T1.2.4中断的响应过程:若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,而且①当前正在执行的那条指令已被执行完。1、当前末响应同级或高级中断2、不是在操作IE,IP中断控制寄存器或执行REH指令则单片机响应此中断。在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8个机器周期。中断得到响应后,自动清除中断请求标志(对串行I/O端口的中断标志,要用软件清除),将断点即程序计数器之值(PC)压入堆栈(以备恢复用);然后把相应的中断入口地址装入PC,使程序转入到相应的中断服务程序中去执行。各个中断源在程序存储器中的中断入口地址如下:INT0(外部中断0)0003HTF0(TO中断)000BHINT1(外部中断1)0013HTFl(T1中断)001BHRI/TI(串行口中断)0023H三、ARM中断控制系统ARM7TDMI是~款经典的通用32位微处理器,采用精简指令系统(RISC)和流水线结构。有常规中断(IRQ)、快中断(FIQ)和软件中断(SoftwareInterrupt)三种中断方式。常规中断和快中断都是硬件中断。ARM7TDMl定义有7种工作模式,这里涉及到的有:用户模式,程序正常运行时的模式;快中断模式,处理器响应快中断而进入的模式;中断模式,处理器响应常规中断而进入的模式;监督模式,操作系统的保护模式。处理器响应软件中断时即进入监督模式。主要特性如图所示:3.1快中断快中断是为支持数据传输或快速数据通道而设计的,为快速处理快中断。1、快中断被设为最高中断优先级;2、在快中断模式中增设了7个私有工作寄存器,从而避免了由于主工作寄存器数据的保存和恢复而带来的额外开销;3、快中断处理程序处于异常向量表的最后位置,因此可紧接异常向量表书写快中断处理程序,而不必进行程序跳转操作,避免了刷新指令流水线和高速缓存。3.2软件中断软件中断是一种由用户设置的同步中断,由程序指令产生,不像硬件中断那样由外部事件触发。软件中断允许运行在用户模式的程序进入监督模式,并运行监督态下的函数。在ARM7TDMI的硬件调试系统中,应用程序可利用软件中断来申请自主(semi—hosting)式操作,例如,打开主机中的一个文件、向调试通道发送一个字符等等(这些操作必须依赖主机中的C程序库才能运行,因此被称为半自主式的)。利用软件中断机制,可以直观和高效地仿真调试应用程序。另外,软件中断也可用于一般性的程序控制。3.3响应中断和中断返回3.3.1当中断产生时,ARM7TDMI将执行的操作:①把当前程序状态寄存器(cPSR)的内容拷贝到相应的备份程序状态寄存器(SPSR)。当前工作模式、中断屏蔽位和状态标志被保存下来。②转入相应的模式,并关闭常规中断。如响应快中断,则同时关闭快中断。③把程序计数器(pc)的值减4后.存入相应的连接寄存器(1r)。④将程序计数器指向相应的中断向量。3.3.2由中断返回时.ARM7TDMl将完成的操作:①将备份程序状态寄存器的内容拷贝到当前程序状态寄存器,恢复中断前的状态。②清除相应禁止中断位(如果已设置的话)。③把连接寄存器的值拷贝到程序汁数器,继续运行原程序。3.3.3返回地址的计算ARM7TDMl采用流水线结构:当一条指令被执行时,下一条指令正被译码.而第三条指令被从内存中取出。当程序计数器未更新时,pc指向从内存中取出的指令,(pc一4)指向当前指令的下一条指令。处理器响应软件中断时,由于软件中断由指令自身产生,程序计数器还没有更新,(pc一4)正好指向当前指令的下一条指令。因此,只要在中断处理程序最后加入指令把连接寄存器的值赋给程序计数器即可。ARM7TDMI总是在一条指令执行完毕后,才去检查是否有硬件中断信号和中断屏蔽状态。此时,程序计数器已经更新,(pc一4)指向当前指令的下两条指令。因此要先把连接寄存器的内容减去4(指向pc一8)后,再赋给程序计数器。

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功