您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 接口技术-8259A中断控制器原理及应用
8259A中断控制器原理及应用(6.3节)28259A中断控制器Intel8259A是可编程中断控制器PIC可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中断8259A的基本功能一片8259A可以管理8级中断,可扩展至64级每一级中断都可单独被屏蔽或允许在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择38259A的内部结构和引脚D7~D0INTAINT中断请求寄存器中断屏蔽寄存器数据总线缓冲器IR0IR7读/写控制逻辑级联缓冲器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权判别电路中断服务寄存器控制逻辑41.中断控制中断请求寄存器IRR保存8条外界中断请求信号IR0~IR7的请求状态Di位为1表示IRi引脚有中断请求;为0表示无请求中断服务寄存器ISR保存正在被8259A服务着的中断状态Di位为1表示IRi中断正在服务中;为0表示没有被服务中断屏蔽寄存器IMR保存对中断请求信号IR的屏蔽状态Di位为1表示IRi中断被屏蔽(禁止);为0表示允许(与IF标志位的规定相反)52.与处理器接口(读写控制逻辑部分)A0RD*WR*CS*功能0100110000101010×110×××1写入ICW1、OCW2和OCW3写入ICW2~ICW4和OCW1读出IRR、ISR和查询字读出IMR数据总线高阻状态数据总线高阻状态注:ICW—初始化命令字,OCW—操作命令字63.中断级连单片8259A可支持8个中断源;采用多片8259A级连,可最多支持64个中断源。N片8259A可以支持8*N-(N-1)个中断源级连时只能有一片8259A为主片,其余的均为从属片;涉及到的8259A引脚包括:CAS0-CAS2:主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2SP*/EN*:在非缓冲方式下,规定该8259A是主片(SP*=1)还是从片(SP*=0)IRi:每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IRINT:主8259A的INT线连至CPU的中断请求输入端级连电路连接方法8259A(从片1)D0-D7INTAINTSP/ENIR7IR0IR2IR3IR4IR5IR6IR1CAS0CAS1CAS28259A(从片2)D0-D7INTAINTSP/ENIR7IR0IR2IR3IR4IR5IR6IR1CAS0CAS1CAS28259A(主片)D0-D7INTAINTSP/ENIR7IR0IR2IR3IR4IR5IR6IR1CAS0CAS1CAS2VCC系统总线AB、DB、CBA0CSA0A0CSCSRDWRWRRDWRRD演示8259A的工作过程8259A对中断请求的处理过程如下:当某IRi有效时,IRR相应位置1若有效的IRi未被屏蔽,则向CPU发出中断请求检测到第1个INTA*信号后,置ISRi=1,IRRi=0检测到第2个INTA*信号后,把ISRi=1中最高优先级的中断类型码放到DB上若工作在AEOI方式,在第2个INTA*结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位动画108259A的工作方式(理解)普通全嵌套方式特殊全嵌套方式自动循环方式特殊循环方式优先权固定方式优先权循环方式设置优先权方式普通中断结束方式特殊中断结束方式自动中断结束方式非自动中断结束方式结束中断处理方式屏蔽中断源方式普通屏蔽方式特殊屏蔽方式中断触发方式边沿触发方式电平触发方式数据线连接方式缓冲方式非缓冲方式111.优先权固定方式普通全嵌套方式8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、……IR7中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,至到中断结束(ISR的Di位复位)在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套特殊全嵌套方式一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。(参阅教材P190—P191)注:特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。特殊全嵌套方式D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁)C.假定IR3发生中断,并获得服务一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。B.特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。A.INTE.从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7普通(一般)全嵌套方式VS.特殊全嵌套方式去CPU2、循环优先级方式中断源轮流处于最高优先级,某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级自动循环:初始优先级自动规定特殊循环:初始优先级可用编程改变适用于多个中断源具有相同优先权IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前0101000001000000IR4的服务结束以后ISRi153.结束中断处理方式什么是8259A的中断结束?8259A利用中断服务寄存器ISR判断:某位为1,表示正在进行中断服务;该位为0,就是该中断结束服务。这里说明如何使ISR某位为0,不反映CPU的工作状态。16结束中断处理方式(续)自动中断结束方式AEOI在第2个INTA#结束时,由8259A使ISRi自动复位非自动中断结束方式1:普通中断结束方式EOI配合全嵌套(固定)优先权方式使用当CPU用输出指令往8259A发出普通中断结束EOI命令时,8259A就会把所有正在服务的中断中优先权最高的ISR位复位非自动中断结束方式2:特殊中断结束方式SEOI配合循环优先权方式使用CPU在程序中向8259A发送一条特殊中断结束命令,这个命令中指出了要清除哪个ISR位174.屏蔽中断源方式普通屏蔽方式将IMR的Di位置1,则对应的中断IRi被屏蔽,该中断请求不能从8259A送到CPU如果IMR的Di位置0,则允许IRi中断产生特殊屏蔽方式使用场合:在执行较高级的中断服务时,希望开放较低级的中断请求。原理:将IMR的Di位置1,对应的中断IRi被屏蔽的同时,使ISR的Di位置0。假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。185.中断触发方式边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号电平触发方式中断请求端出现的高电平是有效的中断请求信号196.数据线连接方式缓冲方式8259A的数据线需加缓冲器予以驱动8259A把SP*/EN*引脚作为输出端(输出允许信号),用以锁存或开启缓冲器(enablebuffer)非缓冲方式SP*/EN*引脚为输入端(slaveprogram)若8259A级连,由其确定是主片(sp=1)或从片(sp=0)208259A的编程初始化编程8259A开始工作前,必须进行初始化编程给8259A写入初始化命令字ICW(ICW1~ICW4)中断操作编程在8259A工作期间可以写入操作命令字OCW(OCW1~OCW3)将选定的操作传送给8259A,使之按新的要求工作还可以读取8259A的信息,以便了解它的工作状态8259A内部寄存器的寻址方法CS#RD#WR#A0D4D3读写操作010000写OCW2写OCW3写ICW1写ICW2,ICW3,ICW4,OCW1(顺序写入)00101x1xx00101xx读出IRR、ISR读出IMR需要CS#、A0、RD#、WR#和D4、D3的配合内部寄存器的访问方法如下表:A0RD*WR*CS*功能0100110000101010×110×××1写入ICW1、OCW2和OCW3写入ICW2~ICW4和OCW1读出IRR、ISR和查询字读出IMR数据总线高阻状态数据总线高阻状态8259A的初始化顺序8259的初始化流程如图(注意次序不可颠倒)写ICW1写ICW2级连?写ICW3需ICW4?写ICW4NNYY8259A的控制命令字初始化8259A必须从ICW1开始写ICW1意味着重新初始化8259A写入ICW1后,8259A的状态如下:清除ISR和IMR(全0);将中断优先级设成初始状态:IR0最高,IR7最低;设定为普通(一般)屏蔽方式;采用非自动中断结束方式;状态读出逻辑预置为读IRR。ICW1——芯片控制初始化命令字LTIM:触发方式=1高电平触发=0上升沿触发SNGL:级连控制=1单片=0级连IC4:ICW4控制=1要写ICW4(8086配合8259则此位必须为1)=0不写ICW4(默认ICW4为全0)A0D7D6D5D4D3D2D1D00xxx1LTIMxSNGLIC4ICW1的标志ICW2——中断向量码基值T7~T3:中断向量码的高5位T2~T0:最低3位为中断源的序号IRn000~111分别对应IR0~IR7由8259A根据中断源的序号自动填入例如:若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。A0D7D6D5D4D3D2D1D01T7T6T5T4T3xxxICW3——级连控制字主片的级联控制字(位映像方式)Si=1对应IRi线上连接了从片A0D7D6D5D4D3D2D1D01S7S6S5S4S3S2S1S0•从片的级联控制字(编码方式)ID2~ID0标识码,说明本从片连接到主片的哪个IR引脚上。000~111分别对应IR0~IR7。A0D7D6D5D4D3D2D1D0100000ID2ID1ID0ICW3——级连控制字(续)ICW3必须与主从片的连接关系一致:例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。演示ICW4——方式控制初始化命令字SFNM:特殊全嵌套(specialfullynestedmode)1特殊全嵌套方式0一般全嵌套方式AEOI:自动EOI1自动EOI方式0非自动EOI方式A0D7D6D5D4D3D2D1D01000SFNMBUFM/SAEOI1BUF:缓冲方式M/S:主/从缓冲选择BUFM/S11缓冲方式/主PIC10缓冲方式/从PIC0x非缓冲方式/正常初始化主片8259Amoval,11h;写入ICW1:设定边沿触发,级连方式out20h,al;主片I/O地址是20H和21Hjmpintr1;本程序段的转移指令起延时作用,等待8259A操作结束intr1:moval,08h;写入ICW2:设定主片IR0的中断向量号为08Hout21h,aljmpintr2intr2:moval,04h;写入ICW3:设定主片IR2级连从片out21h,aljmpintr3intr3:moval,05h;写入ICW4:设定普通全嵌套方式,普通中断结束方式out21h,al中断控制器的初始化程序段初始化从片8259Amoval,11h;写入ICW1:设定边沿触发,级连方式out0a0h,aljmpintr5intr5:moval,70h;写ICW2:设定从片IR0的中断向量号为70Hout0a1h
本文标题:接口技术-8259A中断控制器原理及应用
链接地址:https://www.777doc.com/doc-2680846 .html