可编程终端芯片8259A

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

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

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

资源描述

16.5可编程中断控制器8259一、8259简介:(1)8位可编程中断控制器,又称优先级控制器(2)处理8级向量优先级中断(3)具有单一+5V供电(4)8259A芯片级联组成强大的中断管理系统(多至64级外部中断)。(5)优先级方式可编程(6)多级中断管理26.5.1内部结构及工作原理数据总线缓冲器读/写逻辑级联缓冲器/比较器控制逻辑中断服务寄存器ISR优先权分辨器PR中断请求寄存器IRR中断屏蔽寄存器IMRIR0IR1IR2IR3IR4IR5IR6IR7INTAINTD7-D0RDWRA0CSCAS0CAS1CAS2SP/EN3数据总线缓冲器数据总线缓冲器是一个三态、双向的8位缓冲器,是8259A与CPU系统数据总线的接口。数据总线缓冲器的主要功能有:(1)通过数据总线缓冲器,CPU向8259A内部发送命令。(2)CPU接收8259A状态信息。(3)在中断响应周期,CPU从中获得中断类型号。4读/写逻辑接收CPU送来的读/写控制信号、片选信号以及地址选择信号,对内部各个寄存器进行读写操作。5级联缓冲/比较器级联缓冲/比较器在级联方式的主从结构中(两个以上的8259A组成的系统),用来存放和比较系统中各8259A的从设备标志(ID)。6控制逻辑控制逻辑是控制8259A内部各个部件的主要逻辑电路。主要功能包括:(1)根据CPU对8259A编程设定的工作方式来产生内部控制信号。(2)如果中断请求寄存器IRR有未被屏蔽的位,则控制逻辑对应于当时最高优先的中断源,向CPU发中断请求信号INT。(3)接收CPU送来的中断响应信号,并允许中断服务寄存器ISR的相应位(ISRi)置位。(4)控制发出相应的中断类型号,以供CPU读取。7中断请求寄存器IRR功能:记录外部中断源的中断申请的状态。状态:1=对应引脚有中断请求且还未被响应0=对应引脚无中断请求或有但已经被响应D7D6D5D4D3D2D1D0IRR7IRR6IRR5IRR4IRR3IRR2IRR1IRR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚8中断服务寄存器ISR功能:记录外部中断源的中断申请被服务的状态。状态:1=对应引脚的中断请求已被响应(服务)且服务还没有结束。0=对应引脚的中断请求未被响应。D7D6D5D4D3D2D1D0ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚9中断屏蔽寄存器IMR功能:设置外部中断源的中断屏蔽状态。状态:1=对应引脚的中断被屏蔽。0=对应引脚的中断未被屏蔽。注意:只有IMRi相应位为0且IF=1,CPU才有可能响应可屏蔽中断。D7D6D5D4D3D2D1D0IMR7IMR6IMR5IMR4IMR3IMR2IMR1IMR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚10中断判优电路中断判优电路用来确定存放在IRR中各个中断请求信号对应中断源的优先级。并总是选出当前最高优先中断源的中断申请通知控制逻辑,以便控制逻辑发送中断请求信号INT给CPU。118259A工作过程1)当外部IRi有中断申请时,IRRi=1。2)判别优先级,并将当前最高优先中断源的请求通知控制逻辑。控制逻辑向CPU发INT信号。3)当响应中断时,CPU发/INTA,控制逻辑收到响应后,准备中断类型号,同时使ISRi=1,并使IRRi=0。4)当CPU处理完中断服务程序后发中断结束命令,控制逻辑使ISRi=0,结束中断过程。如果IMRi=1,则对应中断源的中断请求被屏蔽。12引脚信号D7~D0为8位双向的数据线A0:端口选择信号(两个端口地址)IRi:8个中断源中断请求端INT:中断请求输出信号RD和WR:读/写控制信号INTA:中断响应输入信号CS:片选信号SP/EN:级联/缓冲控制(1)级联时输入:SP:1=主片,0=从片(2)缓冲时输出:EN:1=CPU写,0=CPU读136.5.3工作方式(5种)1.优先级的方式2.屏蔽中断源的方式3.结束中断处理的方式4.连接系统总线的方式5.中断请求信号方式14优先级的方式(4种)全嵌套方式特殊全嵌套方式优先级自动循环方式优先级特殊循环方式15全嵌套方式仅允许高一级中断进入嵌套。从高到低优先级依次为IR0IR1IR2IR3IR4IR5IR6IR7。16特殊全嵌套方式允许高一级,也允许同级中断进入嵌套。从高到低优先级依次为IR0IR1IR2IR3IR4IR5IR6IR7。17优先级自动循环方式在这种方式下,中断源的优先级是变化的,当一个设备得到中断服务以后,它的优先级自动降为最低优先。在初始状态下的优先级为IR0IR1...IR7,下一次优先级为IR1IR2....IR6IR7IR0,依次类推。18优先级特殊循环方式与优先级自动循环方式只有一点区别:初始最优者可由程序设定,可任意指定一个初始最高优先级,以后再循环优先。19屏蔽中断源的方式普通屏蔽方式:设置8259A内部中断屏蔽寄存器IMR的相应位为1(通过OCW1),即可屏蔽对应中断源的中断申请。特殊屏蔽方式:先写入特殊屏蔽命令字OCW3,然后再写屏蔽命令字OCW1。使当前中断服务寄存器ISR的相应位自动复位。这就只屏蔽了当前正在处理的这级中断。=屏蔽该中断并清中断服务位。20结束中断处理的方式自动结束方式:系统一旦进入中断服务程序,8259A就自动将当前中断服务寄存器相应位清0。(在第二个中断响应脉冲)非自动结束方式:在中断服务程序结束,返回主程序之前发一条中断结束命令,使8259A的当前最高优先级的中断对应的ISR复位。21连接系统总线的方式缓冲方式:一般在多片8259A级联系统中,8259A通过总线驱动器与系统总线相连,而不是8259A直接与系统总线相连,这就是缓冲方式。非缓冲方式:当系统只有一片8259A或少量几片8259A时,一般将它直接与数据总线相连。这就是所谓的非缓冲方式。22中断请求信号方式边沿触发方式:在边沿触发方式下,8259A将中断请求输入端出现的上升沿作为中断请求信号,且该信号可以一直保持为高电平。为了防止干扰,其高电平也应有一定的宽度。电平触发方式:8259A把中断请求输入端出现的高电平作为中断请求信号。但应注意的是,当中断请求被响应后,输入端必须立即撤消高电平,以免引起再一次中断。236.5.48259A的初始化编程1.一般原则:先进行初始化编程,再进行命令字编程2.8259A的初始化编程3.8259A操作命令字的编程248259A的初始化编程对8259A进行初始化编程就是向8259A写入两到四个初始化命令字。流程如图。初始化编程任务:1.设定中断请求信号的有效形式。2.设定8259A是单片还是多片级联方式。3.设置中断类型号。4.设置优先排队规则。5.设定中断结束时的操作原则。写入ICW1写入ICW2是单片?写入ICW3写入ICW4初始化开始初始化结束要ICW4?YYNNA0=0端口A0=1端口25芯片初始化命令字ICW1A7A6A51LTIMADISNGLIC4X86不用特征位0=不用ICW41=要ICW4X86不用0=边沿触发1=电平触发0=多片1=单片写入A0=0的端口26中断类型初始化命令字ICW2•T7~T3决定中断类型号(D2~D0任意)•8个中断源具有连续的中断类型号•写入A0=1的端口D7D6D5D4D3D2D1D0T7T6T5T4T3×××27主/从片初始化命令字ICW3——主片ICW3•IRi=1,指示8259的引脚IRi处接一从片•写入A0=1的端口D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR028主/从片初始化命令字ICW3——从片ICW3•ID2,ID1,ID0编码决定从片的INT接主片•写入A0=1的端口D7D6D5D4D3D2D1D000000ID2ID1ID029编码决定IRiID2ID1ID0IRi000IR0001IR1010IR2011IR3100IR4101IR5110IR6111IR730控制初始化命令字ICW4•各位含义:μPM:CPU类型,0=8080/8085,1=80X86。AEOI:自动结束中断方式,AEOI=1有效。M/S:主/从片选择,1=主片,0=从片。BUF:缓冲方式。BUF=1工作在缓冲方式。SFNM:特殊全嵌套方式。SFNM=1,特殊全嵌套方式。•写入A0=1的端口D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIμPM318259A初始化编程实例一、系统对主片8259A初始化的要求是:(如图所示)●主片的IR2接从片的INT端。●主片中断信号为边沿触发方式。●级联但无缓冲。●起始中断类型号为08H(IR0)。●正常的中断结束,选择特殊的全嵌套方式。●级联方式要ICW3和ICW4。二、对从片的要求是:●从片的INT接主片的IR2。●从片起始中断类型号为70H。●级联方式要ICW3和ICW4。32实例系统连接图D011IR018D110IR119D29IR220D38IR321D47IR422D56IR523D65IR624D74IR725INT17INTA26SP/EN16CS1RD3CAS012WR2CAS113A027CAS215U18259AD011IR018D110IR119D29IR220D38IR321D47IR422D56IR523D65IR624D74IR725INT17INTA26SP/EN16CS1RD3CAS012WR2CAS113A027CAS215U28259AVCCR110KA0A1A2A3A4A5A6A8M/IOINTRINTAD7~D0数据总线主片从片地址20H,21H地址A0H,A1H实时钟IRQ8重定向IRQ9PCI/ISAIRQ10PCI/ISAIRQ11PS2鼠标IRQ12主硬盘IRQ14协处理器IRQ13次硬盘IRQ15定时器IRQ0键盘IRQ1级联IRQ2串口2IRQ3串口1IRQ4并口2IRQ5软盘IRQ6并口1IRQ7/IORC/IOWC12345611128U4456U3B123U3A123U5A456U5BA9A733编程实例解(主片)MOVAL,00010001B;ICW1:边沿,ICW4,ICW3OUT20H,AL;写入ICW1(A0=0地址端口)MOVAL,00001000B;ICW2:IR0中断类型号为08HOUT21H,AL;写入ICW2(A0=1地址端口)MOVAL,00000100B;ICW3:主片IR2接从片INTOUT21H,AL;写入ICW3(A0=1地址端口)MOVAL,00010101B;ICW4:非缓冲,正常中断结束;特殊全嵌套方式OUT21H,AL;写入ICW4(A0=1地址端口)34编程实例解(从片)MOVAL,00010001B;ICW1:边沿,ICW4,ICW3OUT0A0H,AL;写入ICW1MOVAL,01110000B;ICW2:IR0中断类型号为70HOUT0A1H,AL;写入ICW2MOVAL,00000010B;ICW3:从片接主片的IR2OUT0A1H,AL;写入ICW3MOVAL,00000001B;ICW4:非缓冲,正常结束,;非特殊全嵌套方式OUT0A1H,AL;写入ICW4358259A操作命令字的编程中断屏蔽命令字OCW1控制中断和优先级循环的操作命令字OCW2屏蔽查询状态命令字OCW336中断屏蔽命令字OCW1Mi=1表示对应的IRi中断源被屏蔽,Mi=0则取消屏蔽(i=0,1,2,3,4,5,6,7)。要求写入8259A的A0=1的端口D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1M037控制中断和优先级循环的操作命令字OCW2R:优先级循环位,R=1为循环优先。SL:指定IRi级别位。SL=1时L2~L0有效。EOI:中断结束命令位,1=中断结束L2~L0:编码指定IRi注意

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

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

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

×
保存成功