第7章 微型计算机中断系统(2)

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

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

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

资源描述

第七章微型计算机中断系统7-1概述7-2中断处理过程7-3中断优先级和中断嵌套7-4可编程中断控制器8259A一.功能和引脚二.内部结构三.8259A的中断管理方式四.8259A的编程方法五.8259A的中断级联第七章微型计算机中断系统7-1概述7-2中断处理过程7-3中断优先级和中断嵌套7-4可编程中断控制器8259A一.功能和引脚二.内部结构三.8259A的中断管理方式四.8259A的编程方法五.8259A的中断级联功能和引脚功能:1.8级优先级控制,可通过级联扩展到64级2.每一级中断可由程序单独屏蔽或允许3.可提供中断类型号传送给CPU4.可通过编程选择多种不同工作方式管脚:28脚双列直插(28-pinDIP),1.8259A的引脚D7D6WRD5D4D3CSRDD2D1D0CAS0CAS1GNDINTIR2IR1IR0INTAVCCA0IR6IR5IR4IR3IR7SP/ENCAS228272625242322212019181716151234567891011121314第七章微型计算机中断系统7-1概述7-2中断处理过程7-3中断优先级和中断嵌套7-4可编程中断控制器8259A一.功能和引脚二.内部结构三.8259A的中断管理方式四.8259A的编程方法五.8259A的中断级联IRR是一个8位寄存器,用于锁存所有从IRi引脚输入的中断请求信号。输入线IR7—IR0分别连接8个中断源的中断请求信号,当中断源有中断请求时,在相应的IR引脚上送入有效信号,IRR中相应的位就置位,以锁存该中断请求信号。中断请求寄存器IRR数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR...A0CAS0CAS1CAS2RDWRCSD7¡«D0EN/SPINTINTAIR0IR7IR1...中断源8259A的基本构成*中断屏蔽寄存器IMR也是8位寄存器,用于存放对中断请求的屏蔽信息,其内容可编程设定。*IMR中的8个位对应IR7—IR0这8个中断请求,当IMR中某位被置位,对应的中断请求就被屏蔽。中断屏蔽寄存器IMR数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR...A0CAS0CAS1CAS2RDWRCSD7¡«D0EN/SPINTINTAIR0IR7IR1...中断源8259A的基本构成*PR用于识别各中断请求的优先权级别,并进行优先权管理*各中断请求的优先权级别可以由CPU定义或修改。*若IRR有几位被置位,且未被屏蔽,表明有多个中断源同时申请中断。则由PR经过判断确定最高优先权的中断请求,并在CPU响应周期内,将它送入ISR中相应的位。优先权判别器PR数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR...A0CAS0CAS1CAS2RDWRCSD7¡«D0EN/SPINTINTAIR0IR7IR1...中断源8259A的基本构成*中断服务寄存器ISR为8位寄存器,用于记录已被CPU响应的中断。*在中断响应周期里,由PR根据IRR和IMR的状态,确定先被响应的中断请求,送至ISR,使相应的位被置位,并一直保持(自动EOI方式例外)。由EOI命令复位。中断服务寄存器ISR数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR...A0CAS0CAS1CAS2RDWRCSD7¡«D0EN/SPINTINTAIR0IR7IR1...中断源8259A的基本构成*控制电路逻辑根据CPU编程设定的工作方式产生片内控制信号,控制片内的工作;*同时,根据IRR、IMR的内容和PR判断结果,向CPU发出中断请求,接受来自CPU的中断响应信号。控制逻辑数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR...A0CAS0CAS1CAS2RDWRCSD7¡«D0EN/SPINTINTAIR0IR7IR1...8259A的基本构成*数据总线缓冲器为8位双向三态缓冲器,是8259A与CPU间数据传输的通道。*CPU通过数据总线缓冲器向8259A送初始化命令和操作命令字,或是读取状态信息。*在中断响应周期,8259A通过数据总线缓冲器向CPU送出中断类型码。数据总线缓冲器数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR...A0CAS0CAS1CAS2RDWRCSD7¡«D0EN/SPINTINTAIR0IR7IR1...8259A的基本构成*读/写控制电路的逻辑功能就是负责接收CPU发来的控制信号,完成规定的写入命令操作以及读IRR、ISR和IMR的操作。*该片8259A的操作过程中,片选CS必须有效。读/写控制逻辑数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR...A0CAS0CAS1CAS2RDWRCSD7¡«D0EN/SPINTINTAIR0IR7IR1...读写功能CSRDWRA0D4D300001111000001001X00XX01000011011XX1X1XX读写操作指令CPUICW1CPUICW2、ICW3、ICW4、OCW1CPUOCW2CPUOCW3OUTIRR/ISRCPUIMRCPU高阻高阻IN读写控制电路IBMPC/XT机中分配IO地址20H~3FH,只使用20H和21H8088系统中,A0接地址总线A0,D7~D0接数据总线8086系统中,A0接地址总线A1,D7~D0接数据总线低8位8259A的基本构成*级联缓冲/比较器用于实现8259A的级联,构成主从式中断管理系统,使中断源由8级扩展到64级。级联、扩充中断。*级联线CAS2—CAS0在主从式中断管理系统中,全部8259A对应相连;主片8259A,其为输出线,CPU响应中断时,输出级联设备编码,选中对应的从片;从片的8259A,其为输入线,接收来自主片的设备编码。级联缓冲/比较器数据总线缓冲器读/写控制电路级联缓冲器/比较器控制电路中断服务寄存器ISR中断屏蔽寄存器IMR优先权判别器PR中断请求寄存器IRR...A0CAS0CAS1CAS2RDWRCSD7¡«D0EN/SPINTINTAIR0IR7IR1...8259A与系统总线的连接缓冲方式:8259A通过总线驱动器与数据总线相连SP/EN引脚作为输出EN=0,8259ACPUEN=1,CPU8259A非缓冲方式:8259A直接与数据总线相连SP/EN引脚作为输入SP=1,8259A主片SP=0,8259A从片7.4.38259A的工作方式8259A有多种工作方式,这些工作方式可以通过初始化命令字(ICW1~ICW4)和操作命令字(OCW1~OCW4)来设置。8259A的工作方式8259A的工作方式有如下几类:1.优先级设置的方式2.结束中断方式3.屏蔽中断源的方式4.循环优先级的循环方法5.中断触发的方式8259A编程结构优先级设置的方式IR7IR6IR5IR4IR3IR2IR1IR076543210最低级最高级优先级默认优先级全嵌套方式(默认方式)一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。特殊完全嵌套方式一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:特殊完全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单片8259A系统。优先级自动循环方式•中断源轮流处于最高优先级•某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前0101000001000000IR4的服务结束以后ISRi优先级特殊循环方式•与优先级自动循环方式相比,唯一区别在于一开始的优先级由编程确定最低优先级。•某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级中断结束(EOI)方式当一个中断请求被响应,8259A在中断服务寄存器ISR的相应位置l。当中断服务结束时,必须将ISR中相应的位清0,进行中断结束操作。*自动中断结束方式*普通中断结束方式*特殊中断结束方式普通中断结束方式普通中断结束方式用在普通全嵌套情况下。在中断服务结束时,必须由CPU用OUT指令发来一个普通EOI命令,8259A收到后,将当前中断服务寄存器ISR中的已置1的最高优先权的位复位。特殊中断结束方式特殊中断结束方式多用于优先权循环情况下。由CPU在中断服务结束时,发出一条特殊EOI命令,指明要清除ISR中的哪一位。注意:在级联方式下,一般不用自动EOI方式,而用普通中断结束或特殊中断结束方式。一个中断结束可能要发两次EOI命令,一次对主片,一次对从片,分别清除主、从片的ISR中相应位。自动中断结束方式CPU一旦进入中断响应周期,8259A就自动将当前中断服务寄存器ISR中相应的位清0。尽管CPU正在为某个中断源服务,但在8259A的ISR中没有对应位置1,优先权判别器PR不能依据ISR正确判别是否接收新的中断请求,就会出现低优先权中断打断高优先权中断的情况。自动中断结束方式通常用在不允许中断嵌套的场合。循环优先级的循环方法普通EOI循环方式特殊EOI循环方式自动EOI循环方式普通EOI循环方式原始状态ISRISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0内容00100100优先级76543210处理完IR2ISR内容00100000优先级43210765处理完IR5ISR内容00000000优先级10765432特殊EOI循环方式初始状态ISRISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0内容01000100优先级76543210执行置位优先级后ISR内容01000100优先级32107654屏蔽中断源方式*普通屏蔽方式*特殊屏蔽方式普通屏蔽方式CPU对8259A的中断屏蔽寄存器IMR写入命令字OCWl,使IMR中的某个位或几个位置1,对应的中断请求就被屏蔽,从而不能被8259A送到CPU。例7.12对中断屏蔽可以随时修改,即通过对命令字OCWl的重新设置,实现对某些中断的屏蔽。特殊屏蔽方式是在中断服务程序中使用,用于中断嵌套,实现在高优先权的中断服务程序中开放低优先权的中断请求。实现:在中断服务程序中,用命令字OCW1对中断屏蔽寄存器IMR中相应的位置1,且清除当前中断服务寄存器ISR对应的位,从而开放低优先权的中断请求。中断请求触发方式*电平触发*边沿触发中断查询方式电平触发8259A将中断请求输入线上出现高电平作为有效的中断请求信号。注意:当中断请求输入端出现一个高电平并得到CPU响应时,应及时撤消信号。否则,在CPU进入中断处理过程,开放中断后,会引起错误的第二次中断。限定中断源产生的中断请求触发电平的时间,持续至CPU响应它的第一个INTA脉冲的下降沿。边沿触发8259A将中断请求输入线出现的上升沿作为中断请求信号。上升沿触发后,可一直保持高电平,而不会产生重复触发。通常用负脉冲的后沿实现边沿触发。中断查询系统关中断用out指令使CPU向8259A断口送ocw3命令字CPU用in指令从端口读取查询字7.4.48259A的编程方法1.初始化命令字ICW:初始化命令字是由8259A初始化程序填写的,且在整个系统工作过程中保持不变

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

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

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

×
保存成功