您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第六章 输入输出和中断技术2.
6.58259A可编程中断控制器8259A的功能8259A的内部结构和引脚8259A的工作过程(含时序)8259A的工作方式8259A的编程(命令字)8259A的应用8259A的功能中断申请管理接口INT中断申请接口1网络接口2硬盘接口3软盘接口4打印机8088CPUINTRIF1.向CPU的引脚INTR发中断申请信号•当有多个外设同时发出中断请求时,能按照一定的优先级顺序,向CPU发出中断申请,使CPU能优先响应优先级最高的外部设备的中断申请。2.送中断类型号•在CPU中断响应周期,针对不同外设的中断请求,向CPU传送不同的中断类型号,使CPU执行相应的中断子程。中断申请管理接口的主要功能:在IBMPC机由8259A可编程中断控制器(PIC)来完成。8259A的功能8259A可编程中断控制器可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中断8259A的基本功能一片8259A可以管理8级中断,可扩展至64级每一级中断都可单独被屏蔽或允许在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择8259A的内部结构D7~D0INTAINT中断请求寄存器中断屏蔽寄存器数据总线缓冲器IR0IR7读/写控制逻辑级联缓冲器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权判别电路中断服务寄存器控制逻辑8259A的内部结构1.中断请求寄存器IRR•保存从IR0~IR7来的中断请求信号,某位=1表示对应的IRi有中断请求2.中断服务寄存器ISR•保存所有正在服务的中断源,某位=1表示对应的IRi中断正在被服务3.中断屏蔽寄存器IMR•存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽4.中断优先权判别电路•确定是否向CPU发出中断请求,中断响应时确定ISR的哪位应置位及把相应中断的类型码放到数据总线上8259A的内部结构5.读/写控制电路•用于控制对8259A的读、写操作。6.数据总线缓冲器•双向8位3态缓冲器,由它构成8259A与CPU之间的数据接口。7.级联缓冲/比较器•多片8259A可级联使用,最多可以组成64级中断优先级控制,此时一片8259A做主片,另外8片做从片,主从片的CAS0~CAS2并接在一起,作为级联总线8.控制逻辑•向CPU发INT信号,接收CPU发来的INTA信号,控制8259A进入中断服务状态。8259A的引脚双列直插式芯片,28个引脚方波键盘保留串口2硬盘软盘打印机IOW18.2HzA0CS8259A总线A0数据线IORRDWR片选译码IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A级连情况INTAINTINTAINTR串口1定时器8259A的时序CAS0~CAS2D0~D7SP/ENIR0~IR7CPU响应周期8259A工作波形INT第一个周期T1T2T3T4ALECLK第二个周期T1T2T3T4第一个前保持为高电平INTALOCK8259A的工作方式中断触发方式普通全嵌套方式特殊全嵌套方式自动循环方式特殊循环方式优先权固定方式优先权循环方式设置优先权方式普通中断结束方式特殊中断结束方式自动中断结束方式非自动中断结束方式结束中断处理方式屏蔽中断源方式普通屏蔽方式特殊屏蔽方式边沿触发方式电平触发方式优先级控制方式两类优先级控制方式:固定优先级和循环优先级固定优先级方式(普通全嵌套方式和特殊全嵌套方式)•所有中断请求IRi的中断优先级固定不变•优先级排列顺序可编程改变•加电后8259A的默认方式,默认优先级顺序从高到低为IR0~IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级优先级可编程改变固定优先级下的中断嵌套在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259A有两种中断嵌套方式:•普通全嵌套方式(默认方式)一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。•特殊全嵌套方式一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:特殊全嵌套仅用于多个8259A级连时的8259A,而不能用于从属8259A或单8259A系统。D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁)C.假定IR3发生中断,并获得服务一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。B.特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。A.INTE.从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式与特殊全嵌套方式的区别去CPU循环优先级方式(自动循环方式和特殊循环方式)•中断源轮流处于最高优先级,即自动中断优先级循环•某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级•初始优先级顺序可用编程改变(特殊循环方式)IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前0101000001000000IR4的服务结束以后ISRi结束中断处理方式当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后,则必须清零该ISRi位。使ISRi=0是通过向8259A发出中断结束命令(EOI命令)实现的。三种EOI命令自动EOI(AEOI)——(自动EOI方式)非指定EOI(NSEOI)——(普通EOI方式)指定EOI(SEOI)——(特殊EOI方式)AEOI:在第2个INTA#结束时,由8259A使ISRi自动复位;•因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式NSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。•用于普通全嵌套方式SEOI:由CPU发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。•用于非全嵌套方式中断服务程序┇向从PIC发EOI命令读从PIC的ISR全0?向主PIC发EOI命令YIRET恢复现场N特殊全嵌套方式下的EOI处理只有当从PIC的中断全部处理完后,才能向主PIC发EOI命令屏蔽中断源的方式普通屏蔽方式:IMR屏蔽字决定了允许或禁止某位IRi所对应的中断:IMi=1禁止,IMi=0允许。特殊屏蔽方式:提供了允许较低优先级的中断能够得到响应的特殊手段。原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。特殊屏蔽例:;IR4中断处理程序CLIMOVAL,68H;OCW3:01101000OUT0C0H,AL;设置特殊屏蔽方式INAL,0C2HORAL,10H;屏蔽IR4OUT0C2H,ALSTI;IR7请求,响应,返回CLI;为设命令字INAL,0C2H;读出屏蔽字ANDAL,0EFH;清除IMR4OUT0C2H,ALMOVAL,48H;OCW3:01001000OUT0C0H,AL;取消特殊屏蔽STI;继续IR4中断服务MOVAL,20H;OCW2:00100000(EOI)OUT0C0,ALIRET中断触发方式边沿触发IRi出现上升沿表示有中断请求电平触发IRi出现高电平表示有中断请求在第1个INTA#结束前,IRi必须保持高电平中断的级连一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A级连时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*=1)还是从片(SP*=0)8259A的编程8259A的控制命令分为初始化命令字ICW•ICW1~ICW4•向8259A写入ICW的过程称为初始化编程操作命令字OCW•OCW1~OCW3•向8259A写入OCW的过程称为操作方式编程8259A的编程SP/ENCA0CA1CA2IORIOW总线D0~D7数据线D0~D7INTAINTRA0片选译码A5~A9CSA0RDINTAWRINT1×I3I4ICW1芯片控制ICW2中断类型号ICW3主从片连接关系ICW4方式控制0111A010010100OCW1中断屏蔽寄存器IMR00OCW2优先级设置、发EOI01OCW3特殊屏蔽,查询方式设置处理部分控制部分00000000ISR当前中断服务寄存器PR优先级裁决器VCCGND100A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中断申请寄存器000000004个初始化命令寄存器ICW1、ICW2ICW3、ICW43个操作命令寄存器OCW1(IMR)OCW2、OCW3当前中断服务寄存器ISR中断申请寄存器IRR8259A内部有9个可读写的寄存器8259A的编程结构1×I3I4ICW1芯片控制ICW2中断类型号ICW3主从片关系ICW4方式控制处理部分控制部分00000000ISR当前中断服务寄存器PR优先级裁决器IRR中断申请寄存器00000000中断屏蔽寄存器IMROCW2100101000001OCW3OCW18259A中断控制器8259A内部寄存器的寻址方法CS#RD#WR#A0D4D3读写操作010000写OCW2写OCW3写ICW1写ICW2,ICW3,ICW4,OCW1(顺序写入)00101x1xx00101xx读出IRR、ISR读出IMR需要CS#、A0、RD#、WR#和D4、D3的配合内部寄存器的访问方法如下表:8259A的初始化顺序8259的初始化流程如图注意次序不可颠倒写ICW1写ICW2级连?写ICW3需ICW4?写ICW4NNYY8259A的控制命令字初始化8259A必须从ICW1开始写ICW1意味着重新初始化8259A写入ICW1后,8259A的状态如下:•清除ISR和IMR(全0);•将中断优先级设成初始状态:IR0最高,IR7最低;•设定为一般屏蔽方式;•采用非自动中断结束方式;•状态读出逻辑预置为读IRR。•准备顺序接收其他ICWICW1——初始化字×××1LTIM×SNGLIC4D7D6D5D4D3D2D1D0×——表示可以任意为1为0都可以(建议为0)1——只能为1,作为标志中断触发方式:LTIM=1,电平触发方式LTIM=0,边沿触发方式规定单片或级连方式:SNGL=1,单片方式SNGL=0,级连方式是否写入ICW4IC4=1,要写入ICW4IC4=0,不写入ICW4,即ICW4规定的位全为0A0=0ICW2——中断向量码A0=1T7T6T5T4T3×××D7D6D5D4D3D2D1D0设置中断向量号T7~T3为中断向量号的高5位低3位由8259A自动确定:IR0为000、IR1为001、……、IR7为111ICW3——级连控制字S7/0S6/0S5/0S4/0S3/0S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0级连命令字主片8259A:Si=1对应IRi接有从片;否则IRi没有连接从片从片8259A:ID0~ID2编码说明从片INT引脚接到主片哪个IR引脚A0=1ICW3——级连控制字(续)ICW3必须与主从片的连接关系一致:例如,主片的I
本文标题:第六章 输入输出和中断技术2.
链接地址:https://www.777doc.com/doc-3707460 .html