34第七章 微型计算机的中断系统

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

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

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

资源描述

第七章微型计算机的中断系统7.1中断的基本概念7.28086微处理器的中断方式7.3可编程中断控制器8259A7.1中断的基本概念一、中断在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。早期中断概念的引入,是为解决CPU与外设间的速度匹配问题,提高CPU的工作效率。中断源主要是由外部硬件产生。当今的中断技术,不再限于外部硬件产生中断(称硬件中断或外中断),还可由CPU内部产生。软件中断(或内中断)因内部意外条件而改变程序执行流程以报告出错情况和非正常状态的过程或者由程序预先安排,即由指令INTn调用中断服务程序产生的中断。二、中断原理(外中断)1、中断过程1)中断请求2)中断判优3)中断响应响应条件:无总线请求和非屏蔽中断请求;中断允许控制位IF=1;CPU执行完当前指令;当前中断级别最高。响应时自动完成以下工作:发送两个INTA负脉冲,获取中断类型号N;将FLAGS入栈,关中断,即IF=0、TF=0;保护断点,将CS、IP入栈;根据中断类型号N取得中断向量送入IP、CS;进入中断服务子程序。4)中断处理保护现场;开中断,以允许嵌套,也可不开中断;中断服务;关中断,保证无干扰恢复现场;恢复现场。5)中断返回开中断;中断返回。2、中断优先级的识别当有多个中断源同时提出中断申请时,究竟应该先响应哪个中断源的申请;当CPU正在执行中断服务程序时,又接收到新的中断申请,是否应该响应这个中断请求,这些问题都应当通过设置与判断中断的优先级来得以解决。1)软件查询法2)硬件处理法3、中断嵌套指当CPU因响应某一中断源的中断请求而正在执行其中断服务程序时,若此时中断是开放的,那必然可以把正在执行的中断服务程序暂停下来转而响应和处理中断优先级更高的中断请求,等到处理完后再转回来继续执行原来的中断服务程序。一、中断分类8086/8088系统中,可以处理256个不同类型的中断,其编号从00H~0FFH,称为中断类型号。内部中断:除法出错类型号0自动产生单步中断类型号1DEBUG执行T命令断点中断类型号3DEBUG执行G命令溢出中断类型号4执行INTOINTn类型号n(05H~0FFH)7.28086微处理器的中断方式外部中断:不可屏蔽中断类型号2自动产生可屏蔽中断类型号(32~255)由8259管理中断逻辑INTn指令INTO指令除法错误单步断点非屏蔽中断请求n401CPUINTRNMIIR0IR6IR5IR4IR3IR2IR1IR7可编程中断控制器(PIC)8259AINT23当有多个中断源同时产生中断申请时,CPU先响应优先权最高的中断源,再响应优先级较低的中断源。二、8086(8088)CPU的中断优先级优先级高低内部中断(除法出错,INT指令,断点,INTO指令)非屏蔽中断可屏蔽中断低内部中断(单步)三、中断向量与中断向量表0000H:0000H0000H:0003H0000H:0004H0000H:0007H0000H:0008H0000H:000BH0000H:000CH0000H:000FH0000H:0010H0000H:0013H0000H:0014H0000H:0017H0000H:007CH0000H:007FH0000H:03FCH0000H:03FFH255/0FFHIPCS01234专用中断5个531/1FH保留中断27个32/20H用户中断224个中断向量:中断服务程序入口地址。中断向量表:用于存放256个中断向量的存储区域,共占1KB存储空间。中断向量指针:在向量表中存放每个中断向量的地址。例:NMI中断,为2号中断中断向量存于IP0000H:0008H0000H:0009HCS0000H:000AH0000H:000BH中断响应后CPU根据CS和IP内容进入中断子程序。例:中断类型号30H(30H×4=C0H)中断向量存于IP0000H:00C0H10H0000H:00C1H20HCS0000H:00C2H30H0000H:00C3H40H则中断所对应的中断向量为4030H:2010H,也即该中断服务程序的入口地址。四、设置中断向量前面提到8086/8088利用向量中断的方法,一旦响应中断便可方便地找到中断服务程序的入口地址。它是在规定的内存区域中,每4个连续字节存放一个中断向量,可建立一个1KB大小的中断向量表。尽管表规定了内存区域,但表中的内容,除已被系统定义的中断类型的中断向量以外,其他新增加的中断类型要在中断向量表中由用户建立相应的中断向量。为了让CPU响应中断后正确转入中断服务程序,中断向量表的建立是非常重要的。1、直接装入法PUSHDSXORAX,AXMOVDS,AXMOVBX,N*4MOVAX,OFFSETNEWINTMOVWORDPTR[BX],AXMOVAX,SEGNEWINTMOVWORDPTR[BX+2],AXPOPDS┅┅NEWINTPROC┅┅IRETNEWINTENDP2、使用串存储指令装入法MOVAX,0MOVES,AXMOVDI,N*4MOVAX,OFFSETNEWINTCLDSTOSWMOVAX,SEGNEWINTSTOSW3、使用DOS功能调用设置中断向量预置:AH=25H功能号AL=N中断类型号DS:DX=中断向量执行:INT21H例如:PUSHDSMOVAX,SEGNEWINTMOVDS,AXMOVDX,OFFSETNEWINTMOVAL,NMOVAH,25HINT21HPOPDS7.3可编程中断控制器8259A1.具有8级优先级控制,通过级联可扩充到64级;2.每一级中断可由程序单独屏蔽或允许;3.可提供中断类型号传送给CPU;4.可通过编程选择多种不同的工作方式。D7~D0RDWRA0CSCAS0CAS1CAS2SP/EN数据缓冲器读写逻辑级联比较/缓冲控制逻辑中断屏蔽寄存器IMRISRPRIRRINTINTAIR0IR7VccGND一、8259A的结构及引脚功能1、内部结构级联比较/缓冲器CAS0~CAS2是级联信号SP/EN控制电路是8259A的内部控制器根据IRR的置位情况和IMR的设置情况,通过PR判定优先级,向8259A内部及其它部件发控制信号和INT,接收INTA使ISR相应位置1,并使IRR相应位置0,同时送中断类型号。主片输出从片输入非缓冲方式缓冲方式控制数据缓冲器输出单片结构输入接“1”少量级联结构输入主片接“1”从片接地数据缓冲器双向8位三态缓冲器与系统数据总线接口与CPU交换的信息包括注:通常连接低8位数据总线读写逻辑控制数据传送方向及选择数据端口写入8259A的编程控制字8259A状态信息的读出中断响应时送出的中断类型号CSRDWRA0读写操作0010从低位地址读0011从高位地址读0100向低位地址写0101向高位地址写1×××无操作IRR中断请求寄存器用来存放由外部输入的中断请求信号IR0~IR7,允许多位置1。ISR中断服务寄存器保存、记录正在处理中的中断请求,当任何一级中断被响应,CPU正在执行它的中断服务程序时,ISR相应位置1。PR优先级判别器对保存在IRR中的中断请求进行优先级识别,送出最高级别中断请求到ISR中;当出现多重中断时,PR判定是否允许所出现的中断去打断正在处理的中断。IMR中断屏蔽寄存器实现对各级中断的有选择的屏蔽,当某位为1,表示禁止这一级中断请求进入系统2、引脚功能及与CPU连接8259AWRA1CSA0数据线RDRDWRIR0IR1IR2IR3IR4IR5IR6IR7A6A5A4A3A2D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V用于多片8259A级连情况INTAINTINTAINTR8086最小模式+5VM/IOGG2AG2BCBAY2多片8259A连接主片8259A端口地址20H22H从片1端口地址24H26H从片2端口地址28H2AHD0~D7A1G1G2AY2G2BY1CY0BAA0M/IOA6A5A4A3A28086最小模式RDINTAWRINT主片8259A从片1从片2A0CSINTIR7~IR0IR7~IR2IR1IR0INTIR7~IR0+5V≥11二、8259A的工作方式1、中断优先级方式全嵌套方式这是8259A的默认方式,也是最基本最常用的工作方式。该方式下8259A的中断优先级是从IR0→IR7,优先级依次降低。特殊全嵌套方式中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。自动循环方式该方式下中断的优先级队列随时发生变化,当某个外设的中断请求得到CPU响应后,其中断的优先级自动降为最低。(初始的优先级队列规定为IR0→IR7)特殊循环方式与自动循环方式不同之处是:特殊循环方式下的初始优先级队列可由编程决定。2、中断结束的管理方式(固定优先级的中断结束)中断结束的管理就是用不同的方式使ISR中相应位清零。普通结束方式EOI8259A每得到一次EOI命令,就将ISR中已置位的各位中优先级最高的位复位。特殊结束方式SEOI该方式的特殊性在于,除了普通EOI方式的功能外,将明确指明本次复位的ISR位。自动结束方式AEOI自动EOI方式是利用响应中断时最后一个响应脉冲的后沿执行一次普通EOI,而不需要CPU发送EOI指令。3、循环优先级的循环方法在循环优先级方式中,与中断结束方式联合,有三种循环结束,结束时并确定下面的优先权排队。普通EOI循环方式特殊EOI循环方式自动EOI循环方式IR7IR6IR5IR4IR3IR2IR1IR0ISR内容00100100原始状态优先级76543210ISR内容00100000处理完IR2优先级43210765ISR内容00000000处理完IR5优先级10765432IR7IR6IR5IR4IR3IR2IR1IR0ISR内容01000100原始状态优先级76543210ISR内容01000100执行置位优先权优先级32107654ISR内容01000000处理完IR2优先级432107654、中断源屏蔽方式普通屏蔽方式中断屏蔽寄存器IMR的8个位与中断请求IR0~IR7一一对应。对IMR编程,指定某些位为1,则屏蔽掉相应的中断请求。特殊屏蔽方式提供了允许较低优先级的中断能够得到响应的特殊手段。原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。5、中断请求引入方式电平触发方式8259A依靠IR引脚上的有效高电平信号来触发,而与有效电平出现的方式和时间无关。边沿触发方式利用IR输入信号由低电平跳向高电平时触发。当IR产生上升沿后,应保持高电平直到中断被响应为止。查询方式允许8259A不工作于中断方式,而是以查询方式工作。因为CPU中的IF=0,CPU要使用软件查询来确定中断源,才能实现对外设的中断服务。因此既有中断的特点,又有查询的特点。6、连接系统总线方式缓冲方式多片级连时,8259A通过8288与系统总线相连。非缓冲方式单片或少量级连时,一般将它直接与系统总线连接。四、8259A的编程初始化命令字ICW,操作命令字OCW;系统复位后,应初始化编程,按次序只写一次;设定触发方式、缓冲方式、中断类型号基值、优先级、结束方式初始化后,在任何位置可操作编程,没有严格的顺序,允许重置,以动态改变8259A的操作与控制。8259A初始化流程图写ICW1写ICW2级连?写ICW3需ICW4?写ICW4NNYYA0=0A0=1A0=1A0=1芯片控制类型号基值级连控制方式控制1、初始化编程ICW10:不需要ICW41:需要ICW40:级连使用1:单片使用80X86不用A7A6A51LTIMADISNGLIC4D7D

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

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

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

×
保存成功