新曙光专接本培训新曙光专接本培训1第8章中断控制器8259A新曙光专接本培训2本章主要外语词汇•ICW:InterruptControlWord,中断控制字•IOW:InterruptOperationWord,中断操作字•ISR:InterruptServiceRegister,中断服务寄存器•IMR:InterruptMaskRegister,中断屏蔽寄存器•IRR:InterruptRequestRegister,中断请求寄存器新曙光专接本培训38.1可编程中断控制器8259A简介•中断系统可解决当前高速运算CPU与低速外部设备信息交换之间的矛盾。•8259A的基本功能:–一片8259A可以管理8级中断,可扩展至64级。–每一级中断都可单独被屏蔽或允许。–在中断响应周期,可提供相应的中断向量(类型)号。–8259A设计有多种工作方式,可通过编程选择。•Intel8259A是可编程中断控制器PIC•可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中断新曙光专接本培训48259A的用途(演示)新曙光专接本培训58.1.18259A芯片结构(1)8259A的内部结构中断请求寄存器IRR(InterruptRequestRegister)优先权电路中断服务寄存器ISR(InterruptServiceRegister)中断屏蔽寄存器IMR(InterruptMaskRegister)数据总线缓冲器读写电路控制逻辑和级连缓冲/比较器组成它由新曙光专接本培训6(1)数据总线驱动器8位双向三态缓冲器,是8259与系统总线的接口,连CPU的D0~D7,传送控制字、状态字和中断类型码等。(2)读写控制电路通过RD*、WR*、CS*、A0,接收CPU的初始化命令字、操作命令字、或发出8259的状态。新曙光专接本培训7(3)级联缓冲/比较器1)缓冲方式:在多片8259A级联的系统中,8259A通过总线驱动器和数据总线相联。在缓冲方式下,SP*/EN*与总线驱动器的允许端OE相连,控制总线驱动器的启动,当EN*=0,8259A控制数据送到CPU,当EN*=1,控制数据从CPU送到82592)非缓冲方式:此时8259A直接与数据总线相连。SP*/EN*为输入端,当SP*=1,该片为主片,当SP*=0,该片为从片。主片与从片通过CAS0~CAS2级连。主片的INT与CPU的INTR连接;从片的INT作为主片的IR0~IR7输入。级联新曙光专接本培训8(4)中断请求寄存器IRR保存8条外界中断请求信号IR0~IR7的请求状态Di位为1表示IRi引脚有中断请求;为0表示无请求(5)中断服务寄存器ISR保存正在被8259A处理的中断请求信号。Di位为1表示IRi中断正在服务中;为0表示没有被服务第一个INTA*信号就能使相应位置1,一直保持到中断处理结束。(6)中断屏蔽寄存器IMR保存对中断请求信号IRi的屏蔽信息。Di位为1表示IRi中断被屏蔽(禁止);为0表示允许。新曙光专接本培训9(7)优先级判别器PR(priorityregister)判别保存在IRR寄存器中的中断请求的优先级,并送最高优先级的中断请求到中断服务寄存器ISR中。当出现多重中断时,判定新中断是否能打断正在执行的中断服务程序。(8)控制电路向CPU发出INT中断请求,接收CPU的中断响应信号INTA*。新曙光专接本培训10(2)8259A的外部引脚新曙光专接本培训11(2)8259A的外部引脚•D0~D7:双向数据线,用于和系统的数据线相连•IR7~IR0:中断请求输入端,中断请求信号可为电平触发和边沿触发方式。其中IR0优先权最高,IR7最低。级联时,连从片的INT端。•WR*:写控制信号线,当为低电平时,CPU向8259A写入控制信号。•RD*:读控制信号线,当为低时,可将8259A内部寄存器的信息读至数据总线。•CS*:片选信号线•A0:选择8259的两个端口,通常与地址总线A0相连接。INT:中断请求输出,接CPU的中断请求线INTR。•INTA*:CPU回送的中断响应信号,连CPU的同名端。•CAS0~CAS2:级连信号,对于主8259A,它们是输出线,而对于从8259A,它们是输入线。•SP*/EN*:做输入线时,用来决定本片8259是主片还是从片。1为主片,0为从片。做输出线时,启动8259到CPU之间的数据驱动器。级联新曙光专接本培训128259A的结构图D7~D0INTAINT中断请求寄存器中断屏蔽寄存器数据总线缓冲器IR0IR7读/写控制逻辑级联缓冲器比较器RDWRA0CSCAS0CAS1CAS2SP/EN优先权判别电路中断服务寄存器控制逻辑新曙光专接本培训138.1.28259A的中断过程1.当某IRi有效时,IRR相应位置12.若有效的IRi未被屏蔽,则向CPU发出中断请求3.检测到第1个INTA#信号后,置ISRi=1,IRRi=04.检测到第2个INTA#信号后,把ISRi=1中最高优先级的中断类型码放到DB上5.若工作在AEOI方式,在第2个INTA#结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位新曙光专接本培训148259工作示意图新曙光专接本培训158.28259A芯片的工作方式完全嵌套方式特殊全嵌套方式自动循环方式特殊循环方式优先权固定方式优先权循环方式设置优先权方式普通中断结束方式特殊中断结束方式自动中断结束方式非自动中断结束方式结束中断处理方式屏蔽中断源方式普通屏蔽方式特殊屏蔽方式中断触发方式边沿触发方式电平触发方式数据线连接方式缓冲方式非缓冲方式新曙光专接本培训168.2.1中断触发方式边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号不管是采用什么方式引入的中断,在中断响应周期内第2个INTA信号有效期间8259A应将当前被响应的中断类型码n通过数据总线D7~D0传送给CPU。电平触发方式中断请求端出现的高电平是有效的中断请求信号新曙光专接本培训178.2.28259A中断类型码的形成•由一片8259A引入的8级中断请求的类型码肯定是连续的。•中断类型码在对8259A初始化时写入的相应控制字来确定。中断向量号D7~D3为中断向量号的高5位低3位由8259A自动确定:IR0为000、IR1为001、……、IR7为111新曙光专接本培训188.2.3设置优先权方式•8259A具有非常灵活的中断管理方式,可满足使用者的各种不同要求。中断优先权管理是中断管理的核心问题。•8259A可采用优先权级别固定分配和循环设置两种方式。•8259A中对中断优先权的管理,可概括为完全嵌套方式自动循环方式中断屏蔽方式新曙光专接本培训19(1)完全嵌套方式完全嵌套方式是8259A被初始化后自动进入的基本工作方式,在这种方式下,由各个IRi端引入的中断请求具有固定的中断级别。IR0具有最高优先级,IR7具有最低优先级,其他级顺序类推。8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、……IR7中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,直到中断结束(ISR的Di位复位)在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套新曙光专接本培训20(2)自动循环方式自动循环方式下,每当任何一级中断被处理完,它的优先级别就被改变为最低级,而将最高优先级赋给原来比它低一级的中断请求。新曙光专接本培训21(3)中断屏蔽方式CPU在任何时候都可安排一条清除中断标志指令(CLI),将中断标志位清“0”,从此以后,CPU将禁止所有的由INTR端引入的可屏蔽中断请求。•普通屏蔽方式–将IMR的Di位置1,则对应的中断IRi被屏蔽,该中断请求不能从8259A送到CPU–如果IMR的Di位置0,则允许IRi中断产生•特殊屏蔽方式–将IMR的Di位置1,对应的中断IRi被屏蔽的同时,使ISR的Di位置0–(适合在执行某一个中断服务程序时,允许另一优先级比它低的中断请求被响应的场合,而屏蔽本级中断)新曙光专接本培训228.2.4中断结束方式什么是8259A的中断结束方式?8259A利用中断服务寄存器ISR判断:当某一IRi中断被服务时,ISR中的相应位为1,表示正在进行中断服务;该中断服务结束时,清该位为0,。如何使ISR某位为0,就是中断结束方式,不反映CPU的工作状态。新曙光专接本培训23•普通EOI结束方式–配合完全嵌套优先权方式使用–当CPU用输出指令往8259A发出普通中断结束EOI命令时,8259A就会把ISR中优先权最高的ISR位复位–用在IRET指令之前•特殊EOI结束方式–配合特殊全嵌套优先权方式使用–CPU在程序中向8259A发送一条特殊中断结束命令,这个命令中指出了要清除哪个ISR位•自动EOI结束方式(AEOI)该方式下不需要EOI命令,在第2个INTA#结束时,由8259A使ISRi自动复位新曙光专接本培训24(1)完全嵌套方式下的中断结束方式•普通EOI方式:当任何一级中断服务程序结束时,只给8259A传送一个EOI结束命令,8259A收到这个EOI命令后,自动将ISR寄存器中级别最高的置“1”位清“0”。–只有当前结束的中断总是尚未处理完的级别最高的中断时,才能使用这种结束方式•特殊EOI方式:在普通EOI方式的基础上,当中断服务程序结束给8259A发出EOI命令的同时,将当前结束的中断级别也传送给8259A。–这种情况下,8259A将ISR寄存器中指定级别的相应位清“0”,显然这种结束方式可在任何情况下使用。•自动EOI方式:任何一级中断被响应后,ISR寄存器中相应位置“1”,CPU将进入中断响应总线周期,在第2个中断响应信号(INTA)结束时,自动将ISR寄存器中相应位清“0”。新曙光专接本培训25(2)自动循环方式下的中断结束方式•普通EOI循环方式当任何一级中断被处理完后,CPU给8259A回送普通EOI命令,8259A接收到这一命令后将ISR寄存器中优先级最高的置“1”位清“0”,并赋给它最低优先级,而将最高优先级赋给原来比它低一级的中断请求,其他中断请求的优先级别以循环方式类推。•自动EOI循环方式(AEOI)任何一级中断响应后,在中断响应总线周期中,由第2个中断响应信号INTA的后沿自动将ISR寄存器中相应位清“0”,并立即改变各级中断的优先级别,改变方案与上述普通EOI循环方式相同。•特殊EOI循环方式可根据用户要求将最低优先级赋给指定的中断源。用户可在主程序或中断服务程序中利用置位优先权命令把最低优先级赋给某一中断源IRi,于是最高优先级便赋给IRi+1,其他各级按循环方式类推。新曙光专接本培训268.38259A芯片的级联使用一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A级连时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*=1)还是从片(SP*=0)新曙光专接本培训27级联工作原理(演示)新曙光专接本培训288259A级联示意图•一片8259A芯片只能管理8级中断,在多于8级中断的系统中,必须将多片8259A级联使用。新曙光专接本培训298259级联方式下中断响应周期时序第1个INTA有效时,主8259A将级联地址从CAS2~CAS03端输出给所有的从8259A芯片当从8259A引入的中断处理过程结束时,CPU需送出两个EOI结束命令,一个送给主8259A,用来将主8259A中的ISR寄存器的相应位清“0”;另一个送给从8259A,用来将从8259A中的ISR寄存器相应位清“0”,才标志一次中