您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 83可编程中断控制器8259A及其应用(精)
第8章中断系统§8.3可编程中断控制器8259A及其应用第8章中断系统8.3.18259A的基本功能一片8259A可以管理8级中断,可扩展至64级,每一级中断都可单独被屏蔽或允许可以设置并发送中断类型号能管理中断源的优先级8259A设计有多种工作方式,可通过编程选择(例如可以设置中断源的中断请求方式)中断接口8259A是可编程中断控制器,用于管理8080/8085、8086/8088、80286/80386的可屏蔽中断8.3.28259A的基本结构INTAD7~D0INT中断请求寄存器中断屏蔽寄存器数据总线缓冲器IR0IR7读/写控制逻辑级联缓冲器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先级分析器中断服务寄存器控制逻辑(1)中断请求寄存器IRR保存8条外界中断请求信号IR0~IR7的请求状态Di位为1表示IRi引脚有中断请求;为0表示无请求(2)中断服务寄存器ISR保存正在被8259A服务着的中断状态Di位为1表示IRi中断正在服务中;为0表示没有被服务(3)中断屏蔽寄存器IMR保存对中断请求信号IR的屏蔽状态Di位为1表示IRi中断被屏蔽(禁止);为0表示允许8.3.28259A的基本结构——8259A的内部寄存器和模块8.3.28259A的基本结构——8259A的内部寄存器和模块(4)优先权判别器PR是8259A中断控制器的核心。对来自IRR且未被屏蔽的中断请求排队,选出优先权最高者与ISR内容比较,判断是否发送INT(5)数据总线缓冲器是双向三态8位缓冲器,用于连接系统数据总线和8259A内部总线,传递CPU发送的控制信息,返回8259A的状态信息(6)读/写控制电路Di位为1表示IRi中断正在服务中;为0表示没有被服务8.3.28259A的基本结构——8259A的内部寄存器和模块(7)级联缓冲/比较用于实现多片8259A片与片之间的级联,扩充管理的中断源的范围(8)控制逻辑对8259A芯片内部的工作进行控制,使其按编程的规定工作8259A是一个使用+5V电源的28脚双列直插芯片。IR0~IR7—中断请求输入信号,一般IR0优先级最高,IRQ7最低,但优先级可由编程改变。①INT—中断请求输出信号,接CPU的INTR引脚。②INTA—中断响应,由此脚接收来自CPU的中断响应信号。③CS—片选,当CS有效时,该芯片工作。④WR—写信号,有效时CPU将命令字写入8259A。⑤8.3.38259A中断控制器的引脚(1)RD—读信号,有效时读出8259A的内部寄存器。⑥A0—用来指出访问8259A的哪个端口。⑦SP/EN—此引脚具有双向功能。作为输入时,用来决定本片是主片还是从片,为1则为主片,否则为从片;作为输出时,SP/EN接数据总线驱动器的选通端,启动数据总线驱动器。⑧CAS2~CAS0—级联信号线。当8259A作主片时为输出线,作从片时为输入线。⑨8.3.38259A中断控制器的引脚(2)8.3.48259A的工作方式(1)——确定中断向量号的方式1.确定中断向量号的方式⑴8259A有8个中断源,为了在CPU响应中断时,可以通过中断向量号查找中断向量表,来获取中断服务程序的入口地址,每个中断源必须有一个中断向量号;⑵8259A只有8个中断源,所以只需要3位就可以表示它们,因此,8259A规定中断类型号的高5位相同;而低3位不同,IR0对应000,IR1对应001·····IR7对应1112.结束中断的方式⑴自动结束中断方式此方式下,当8259A收到第二个INTA后,自动清除当前ISR中的对应位。它只能使用于单片8259A系统,且多个中断不嵌套的情况。8.3.48259A的工作方式(2)——结束中断的方式8259A通过ISR登记正在处理的中断,复位在ISR的登记,表明一次中断服务的结束,其结束方式有两种:8.3.48259A的工作方式(2)⑵非自动结束中断方式①一般中断结束方式用于全嵌套方式,通过写OCW2,使其EOI=1,SL=0,R=0实现。这时ISR中优先权最高的位清0,结束当前正在处理的中断(P227图8-3-11)②特殊中断结束方式用于非全嵌套方式,发特殊中断结束命令。写OCW2使其EOI=1,SL=1,R=0即可,此时由L2、L1、L0三位指出IRi。8.3.48259A的工作方式(2)——结束中断的方式8.3.48259A的工作方式(2)级连方式下,一般不用中断自动结束方式,而用非自动结束方式。不管用哪一种非自动结束方式,都至少连发两次中断结束命令,一次对主片,一次对从片。注意:8.3.48259A的工作方式(2)——结束中断的方式8.3.48259A的工作方式3.优先权管理方式⑴全嵌套方式固定优先级,IR0级最高,IR7级最低,其余类推,可响应更高级别的中断。⑵特殊全嵌套方式一般用于级联的主片,和全嵌套方式基本相同,只有一点不一样,就是在特殊全嵌套方式下,对于主片来说,当处理某一中断时,如果有同级的中断请求,也会给予响应。8.3.48259A的工作方式(3)——优先权管理方式⑶自动循环优先级方式一般用在系统中多个中断源优先级相等的场合。在此方式下,优先级队列是变化的,一个设备执行中断后,其优先级自动降为最低。一般对于外中断源级别要求不高的情况下使用这种优先级方式。8.3.48259A的工作方式8.3.48259A的工作方式(3)——优先权管理方式4.中断屏蔽的方式⑴一般屏蔽方式A、通过设置使中断屏蔽寄存器某一位置1,就屏蔽了某一级中断;B、实际应用的时候,有效的中断申请一般是不应该被屏蔽的,IMR只是在没有中断申请的时候,通过屏蔽来防止一些干扰信号作为中断申请,错误地输入的8259A;C、中断屏蔽的另一层含义就是高优先级的中断对低优先级中断的屏蔽8.3.48259A的工作方式8.3.48259A的工作方式(4)——中断屏蔽方式4.中断屏蔽的方式8.3.48259A的工作方式8.3.48259A的工作方式(4)——中断屏蔽方式⑵特殊屏蔽方式通过设置使IMR某一位置1,同时清零ISR的对应位,以便屏蔽本级,开放较低级,一般很少使用5.8259A的和系统数据总线连接的方式(2)缓冲方式在多片8259A级联的大系统中,8259A通过总线驱动器和系统总线相连,即缓冲方式。(1)非缓冲方式单片8259A或一些不太大的系统中,8259A与系统总线直接相连,此即非缓冲方式。8.3.48259A的工作方式(5)—8259A的和系统数据总线连接的方式6.中断触发方式⑴边沿触发方式中断请求输入端的上升沿作为中断请求信号。⑵电平触发方式中断请求输入端的高电平作为中断请求信号。⑶中断查询方式利用软件查询中断源。8.3.48259A的工作方式8.3.48259A的工作方式(6)——中断触发方式8.3.58259A的编程8259A工作时先初始化,给8259A设置初始化命令字(ICWi),然后8259A自动开始工作;工作过程中,可通过操作命令字(OCWi)动态改变8259A的操作和控制方式。8259A有两个端口地址,一个偶地址(A0=0),一个奇地址(A0=1),并假定偶地址较低,奇地址较高1.初始化命令字SNGL=1?IC4=0?ICW1ICW2ICW3ICW4可中断NYYN8259A的初始化命令字共4个(ICW1~ICW4),其中ICW1和ICW2必须设置,ICW3级联时才需要,ICW4只在8086/8088系统中需要设置,其设置流程如右图所示。初始化命令字必须按顺序写入。通常它在系统启动过程中即已完成,而且在系统整个工作期间保持不变。8.3.58259A的编程(1)——初始化命令字⑴ICW1芯片控制初始化命令字,写入偶地址端口(A0=0),其格式如下:1LTIMSNGLADIIC40A0765432101:需要设置ICW40:不需要设置ICW41:单级使用0:级联使用1:调用地址间隔为40:调用地址间隔为8(8086不用)1:电平触发0:边沿触发8086不用特征位设置中断类型码,写入奇地址端口(A0=1),其格式如下:⑵ICW2T7T6T51A076543210T4T3中断类型码的高5位最低3位为IRi的编码⑶ICW3主/从片初始化命令字,只对级联方式有效,写入奇地址端口(A0=1),其格式如下:①对主片,说明IRi的连接情况S7S6S51A076543210S4S3S2S1S00:表示IRi端上未接从8259A1:表示IRi端上接有从8259ASi⑶ICW3主/从片初始化命令字,只对级联方式有效,写入奇地址端口(A0=1),其格式如下:②对从片,说明该片连到主片的哪个端。1A076543210ID2ID1ID0⑷ICW4方式控制命令字,8086/8088必须设置,写入奇地址端口(A0=1),其格式如下:000SFNMBUFAEOIM/SμPM1A0765432101:8086/8088配置0:8080/8085配置1:自动EOI方式0:非自动EOI方式1:特殊全嵌套方式0:一般全嵌套方式非缓冲方式主8259A缓冲方式从8259AX00111某系统中8259A单级使用,端口地址为80H,81H,初始化命令如下:例:MOVAL,13HOUT80H,ALMOVAL,18HOUT81H,ALMOVAL,0DHOUT81H,AL;00010011:边沿触发,单片,需ICW4;ICW1;类型码为18H~1FH;ICW2;00001101:8086系统,非自动EOI,主片,缓冲方式,一般全嵌套;ICW42.操作命令字8259A有3个操作命令字(OCW1~OCW3),在应用程序内部设置,可多次写入。设置时次序上没有严格要求,但端口有严格规定,OCW1为奇地址,OCW2和OCW3为偶地址。8.3.58259A的编程(2)——操作命令字⑴OCW1中断屏蔽命令字,写入奇地址端口(A0=1),其格式如下:若某位为1,则该位中断请求被屏蔽。M7M6M51A076543210M4M3M2M1M01:屏蔽由IRi引入的中断请求0:允许IRi端中断请求进入Mi⑵OCW2优先级循环方式及中断结束方式命令字,写入偶地址端口(A0=0),其格式如下:RSLEOI00L1L2L00A076543210000:IR0001:IR1010:IR2011:IR3100:IR4101:IR5110:IR6111:IR7001:普通EOI方式011:特殊EOI方式101:普通EOI循环方式111:特殊EOI循环方式000:恢复全嵌套方式100:优先级循环方式110:特殊优先级循环方式010:无效标志位1:循环优先级方式R0:固定优先级方式SL:决定L2、L1、L0是否有效,为1则有效,否则无效EOI:中断结束方式位,为1则清ISR的对应位IRi⑶OCW3写入偶地址端口(A0=0),其格式如下:功能设置和撤销特殊屏蔽方式设置中断查询方式设置对8259A内部寄存器的读命令CSMMSMM01RRPRIS0A0765432100X:无效10:下次RD有效,读IRR11:下次RD有效,读ISR1:查询8259A状态0:不查询0X:无效10:清除特殊屏蔽方式11:设置特殊屏蔽方式标志位3.两个端口如何对应7条命令?偶地址:ICW1,OCW2,OCW3D4=1:ICW1D4=0D3=0:OCW2D3=1:OCW3奇地址:ICW2,ICW3,ICW4,OCW1按顺序,一定先有ICW1,然后决定:ICW2,ICW3,ICW4顺序级联D0写入初始化命令字后的的奇地址则为OCW14.8259A的初始化编程及应用程序举例例8-5初始化命令字的写入(掌握)例8-6改写除法溢出的中断服务程序,能够处理除法溢出的两种情况:当除数为0时,给出错误信息;当除数不为0时,计算实际的商和余数,并通过子程序的出口参数来传递。(了解)
本文标题:83可编程中断控制器8259A及其应用(精)
链接地址:https://www.777doc.com/doc-2680666 .html