中断系统和中断控制器8259A详解
- 格式:pptx
- 大小:335.55 KB
- 文档页数:40
8259A:可编程中断控制器芯片(PIC),它是可以用程序控制的中断控制芯片。
单个的8259A 能管理8级向量优先级中断。
在不增加其他电路的情况下,最多可以级联成64级的向量优级中断系统。
8259A内部结构由8个部分组成:(1)数据总线缓冲器(DA TA BUS BUFFER):将8259A连接到系统数据总线上,控制字和状态信息通过此传送。
(2)读/写控制逻辑(READ/WRITE LOGIC):主要是接收CPU的各种命令字,此外也可将8259A的状态信息传到数据总线上。
(3)级联缓冲器/比较器(CASCADE BUFFER/COMPARA TOR):本功能模块储存和比较系统中的所有8259A的ID号。
主片将请求中断的从片的ID号发送到CAS0-2上,被选的从片就会在下一个或第二个INTA脉冲到来时将其中断程序地址发送到系统数据线上。
(4)中断请求寄存器IRR:保存8条外界中断请求信号IR0-IR7的请求状态。
Di位为1表示IRi引脚有中断请求,为0则无。
(5)中断屏蔽寄存器IMR:保存对中断请求信号IR的屏蔽状态。
Di位为1表示IRi中断被屏蔽,为0表示允许该中断。
(6)正在服务寄存器ISR:保存正在被8259A服务着的中断状态。
Di位为1表示IRi中断正在被服务中。
(7)优先权分析器PR:本逻辑模块决定IRR中中断请求的优先级,当INTA脉冲到来时将相应的位存入ISR中(8)控制逻辑(CONTROL LOGIC) 8259A共有28个引脚:符号引脚号输入/输出功能描述Vcc 28 I 电源+5V GND 14 I 接地C----S---- 1 I 片选:低电平有效,来自地址译码器的输出,当其有效时,CPU才能对8259A进行读写操作W----R---- 2 I 写信号:低电平有效,来自CPU的输出;当该有效且CS有效时,使8259A接受CPU送来的命令字。
R----D---- 3 I 读信号:低电平有效,来自CPU的输出;当CS有效且RD 有效时,使8259A将状态信息放到数据总路线上,供CPU检测D7-D0 4-11 I/O 数据线CAS0-CAS2 12,13,15I/O 单片工作时不用,级联时与从片相连S----P----/E----N----16 I/O 当工作在在缓冲器方式下控制缓冲器收发(EN),是输出信号,EN=1,数据方向由CPU→8259A;EN=0,方向相反;工作在非缓冲器方式时用来指定是主片(sp=1)还是从片(sp=0),是输入信号INT 17 O 向CPU发出的中断请求信号IR0-IR7 18-25 I 中断请求信号输入,来自外部接口电路I----N----T----A----26 I 中断响应信号,由此接收CPU发来的中断响应脉冲A0 27 I 和CS,WR,RD结合使用,用于内部寄存器选择,通常连接到CPU的A0地址线上在MCS-80/85系统上中断响应过程如下:(1)当IR7~IR0中有一个或几个中断源变成高电平时,使相应的IRR位置位。
8259工作原理
8259工作原理是指8259A可编程中断控制器的工作原理。
8259A是一种用来处理中断信号的芯片,它可以管理多个设备的中断请求。
在8259A中,有8个中断请求线(IRQ0~IRQ7),这些中断
请求线可以连接到外部设备。
当一个设备需要通过中断通知CPU时,它会将相应的IRQ线拉低,8259A会将这个信号传
递给CPU。
8259A使用级联方式来管理多个设备的中断请求。
具体来说,它有一个主片和一个或多个从片。
主片连接到CPU,而从片
连接到各个外部设备。
主片负责管理整个中断系统,从片负责管理各自的设备的中断请求。
当一个设备的IRQ线被拉低时,从片会将这个信息传递给主片。
主片会根据中断请求的优先级确定要处理的中断请求,并将CPU相应的引脚拉高,通知CPU中断发生。
CPU会停止当前的工作,转而执行与中断相关的处理程序。
在8259A中,还有一些寄存器用来存储中断请求的相关信息。
这些寄存器可以被CPU读取和写入,以实现对8259A的配置
和控制。
总的来说,8259A的工作原理是通过管理中断请求线和级联连接的方式,实现外部设备与CPU之间的中断通信。
它可以在
多个设备同时发生中断时,决定中断的优先级,并通知CPU 执行相应的中断处理程序。
82598259A是一个可编程的中断控制器,应用在实时的、以中断方式进行监控的计算机系统中。
用一片8259A可以管理8个等级的中断申请。
并可再经级联扩展多至8片8259A,使得中断等级可扩展多至64级。
8259A可以作为一个I/O外围器件,用系统软件编程,它所具有的多种优先权方式可以通过主程序在任何时候进行改变或重新组织。
这意味着可以按照全系统的外围情况和要求,设计出一个完整的中断结构,用来实现优先管理、中断屏蔽以及自动中断矢量转移。
它几乎可以适合于任何一种中断控制的结构,因而得到了广泛的应用。
1 引脚图8259A为28脚双列直插式封装的器件。
2 内部结构其工作过程如下:第一步:当中断请求线(IR0~IR7)上有信号输入时,就把中断请求寄存器IRR相应的位置1。
第二步:当IRR的一位置1后,就会与IMR中相应的屏蔽位进行比较,如该屏蔽位为0,则请求被发送给优先级分析器;如该屏蔽位为1,则封锁该请求。
第三步:当一个中断请求被输入优先级分析器后,将由优先权分析器判定其优先权,然后向CPU 发中断申请,INT脚变高(INT联到8086的INTR)。
第四步:CPU的INTR引脚为异步状态接收,也就是它可以在任何时间(与时钟无关)接收中断。
在软件控制下利用STI指令(中断置位)或CLI(中断复位)指令可分别将CPU的“中断开放标志位”IF置位或复位,可以做到接受或不理睬在INTR上的中断申请。
第五步:假定CPU中的IF标志为1,则CPU在完成当前指令的即进入中断响应周期,这个中断响应周期将标志寄存器入栈,然后清除IF标志,关闭了中断。
再将代码段寄存器和指令指针也入栈(这是为了从中断服务程序返回),然后CPU发出第二个 INTA脉冲通知8259A,说明8086已经允许了它的中断请求。
若8086用于“最小方式”,则INTA脉冲信号为8086 INTA引脚上的信号;若8086用于“最大方式”时,则8086 LOCK脚在中断响应序列执行期间变为低电平。
8259A⼯作原理描述通过初始化编程向8259A写⼊相应的初始化命令ICW,可以使芯⽚处于⼀个规定的基本⼯作⽅式,并在此⽅式下进⾏⼯作。
8259A的初始化命令字共有4个ICW1-ICW4,进⾏初始化时要求ICW1-ICW4按⼀定的顺序写⼊。
⾸先,⼀个外部中断请求信号通过中断请求线 IRQ ,传输到 IMR (中断屏蔽寄存器), IMR 根据所设定的中断屏蔽字( OCW1 ),决定是将其丢弃还是接受。
如果可以接受,则 8259A 将 IRR (中断请求暂存寄存器)中代表此 IRQ 的位置位,以表⽰此 IRQ 有中断请求信号,并同时向 CPU 的 INTR (中断请求)管脚发送⼀个信号,但 CPU 这时可能正在执⾏⼀条指令,因此 CPU 不会⽴即响应,⽽当这 CPU 正忙着执⾏某条指令时,还有可能有其余的 IRQ 线送来中断请求,这些请求都会接受 IMR 的挑选,如果没有被屏蔽,那么这些请求也会被放到 IRR 中,也即 IRR 中代表它们的 IRQ 的相应位会被置 1 。
当 CPU 执⾏完⼀条指令时后,会检查⼀下 INTR 管脚是否有信号,如果发现有信号,就会转到中断服务,此时, CPU 会⽴即向 8259A 芯⽚的 INTA (中断应答)管脚发送⼀个信号。
当芯⽚收到此信号后,判优部件开始⼯作,它在 IRR 中,挑选优先级最⾼的中断,将中断请求送到 ISR (中断服务寄存器),也即将 ISR 中代表此IRQ 的位置位,并将 IRR 中相应位置零,表明此中断正在接受 CPU 的处理。
同时,将它的编号写⼊中断向量寄存器 IVR 的低三位( IVR 正是由 ICW2 所指定的,不知你是否还记得 ICW2 的最低三位在指定时都是 0 ,⽽在这⾥,它们被利⽤了!)这时, CPU 还会送来第⼆个 INTA 信号,当收到此信号后,芯⽚将 IVR 中的内容,也就是此中断的中断号送上通向 CPU 的数据线。
这⾥需要理解的是中断屏蔽与优先级判定并不是⼀回事,如果被屏蔽了,那么参加判定的机会也都没了。
实验内容:中断控制器8259A及中断服务1、实验连线原理见图1所示:8259A连线:(1)单脉冲与时钟单元“”插孔和8259的3号中断IR3插孔相连作为中断源;(2)8259的INT连8088的INTR(Xl5);(3)8259的INTA连8088的INTA(Xl2);(4)8259的CS端接EX1(8259A端口地址是60H,61H);(5)A0→A0。
(6)IOWR→IOWR;(7)IORD→IORD;(8)连通CPU和8259A的数据总线,JX4→JX17。
8255连线:(1)将8255的A端口的PA7到PA0连接到灯L1~L8上。
图1:实验连线图2、实验原理:按动按键AN0后,单脉冲与时钟单元部件会产生“”信号,该信号的上升沿作为中断请求送8259A的IR3引脚,如果8259A没有屏蔽该级中断并且其优先级最高,8259A向CPU的INTR引脚送中断,CPU如果允许响应中断,则进入中断处理子程序,中断处理子程序向8255A的A端口送数据,将灯L1~L8点亮1秒。
3、实验要求:单片8259A以缓冲方式连接数据总线,以上升沿作为中断请求信号,中断源通过IR3引入,优先级采用一般全嵌套方式,非自动中断结束方式,引脚IR0~IR7的中断类型号为08F~0FH,编写一个汇编程序,主程序完成8255和8259A的初始化,循环等待中断请求;中断处理子程序将灯点亮1秒后熄灭。
4、端口地址:5、系统内存分配:5、程序结构:CODE SEGMENTASSUME CS:CODEMAIN PROCSTART: ;主过程;初始化8259;初始化8255;调用3号中断 MAIN ENDPINT3 PRCO……;中断处理子程序 INT3 ENDPDELAY PROC…… ;延时子过程DELAY ENDPCODE ENDSEND6、程序流程图主程序代码:PA EQU 0FF28H ;8255A端口地址标号定义 PB EQU 0FF29HPC EQU 0FF2AHPCTL EQU 0FF2BHINTPORT1 EQU 0060H ;8259控制口地址标号定义 INTPORT2 EQU 0061HCODE SEGMENTASSUME CS:CODEORG 1000HMAIN PROCSTART: CLI ;CPU关中断MOV AL,80H ;初始化8255MOV DX,0FF2BHOUT DX,ALPUSH DS ;保护DSMOV AX,0MOV DS,AXMOV DI,0B*4MOV DX,OFFSET INT3MOV WORD PTR[DI],DXMOV DX,SEG INT3MOV WORD PTR[DI+2],DXPOP DS ;恢复DSMOV AL,13H ;初始化8259AOUT 60H,ALMOV AL,08HOUT 61H,ALMOV AL,0DHout 61H,ALMOV AL,0F7HOUT DX,AL ;开放8259A中断STI ;CPU开中断HLTWATING: JMP WATING ;循环等待中断请求MAIN ENDPINT3 PROCPUSH DXPUSH AX ;保护现场STIMOV DX,PAMOV AL,00HOUT DX,AL ;灯全亮CALL DELAY1S ;延时子程序MOV AL,0FFHOUT DX,AL ;灯全灭MOV DX,INTPORT1MOV AL,20HOUT DX,AL ;送中断结束命令 CLIPOP AXPOP DX ;恢复现场MOV AL,20HOUT 60H,ALIRET ;中断返回INT3 ENDPDELAY1S PROCPUSH CXPUSH DXMOV DX,04AGAIN: MOV CX,0FFFFHDELAY: LOOP DELAYDEC DXJNZ AGAINPOP DXPOP CXRETDELAY1S ENDPCODE ENDSEND START。
8259a工作原理
8259a是一种程序可编程中断控制器,用于管理和控制计算机
系统中的中断请求。
它可以与主机处理器进行通信,并根据不同的中断请求向处理器发送适当的中断信号。
该芯片的工作原理可以简要概括为以下几个步骤:
1. 初始化:在系统启动时,主机处理器将会对8259a进行初始化设置。
这些设置包括中断请求级别的优先级、中断控制方式以及中断向量的基地址等。
2. 中断请求检测:一旦系统中有设备发出中断请求,8259a会
检测到该请求。
这些中断请求可以来自于各种外部设备,如键盘、鼠标、硬盘等。
3. 中断请求优先级判断:8259a会根据中断请求的优先级进行
判断,并选择最高优先级的请求进行处理。
这一过程是基于主、从8259a之间的级联配置来完成的。
4. 中断信号发送:一旦确定了中断请求的优先级,8259a会向
主机处理器发送中断信号。
该信号将中断处理器的当前操作,将控制权转移到相应的中断服务程序,以处理中断请求。
5. 中断服务程序的执行:一旦中断信号被接收,主机处理器将会执行相应的中断服务程序。
这个程序会根据中断的类型和来源进行特定的操作,例如读取键盘输入、响应硬件故障等。
总的来说,8259a的工作原理是通过中断请求的检测、优先级判断和中断信号发送来进行中断控制和处理。
它在计算机系统中起到了关键的作用,保证了系统的稳定运行和设备之间的协调工作。