当前位置:网站首页 >> 产品/行业资讯 >>

8259A中断控制器

当中断请求从IR0到IR7中的某一行到达IMR时,IMR首先确定IR是否被屏蔽。

如果它被屏蔽,则中断请求被丢弃;否则,它被放置在IRR中。

它总是放在IRR中,直到下一步无法处理中断请求。

一旦检测到处理中断的时序,优先级解析器将从IRR中的所有中断中选择最高优先级的中断,并将其传递给CPU进行处理。

IR编号越低,中断优先级越高,例如IR0,其优先级最高。

8259A通过向CPU发送INTR(中断请求)信号来通知CPU中断已到达。

收到此信号后,CPU将暂停执行下一条指令,然后向8259A发送INTA(中断确认)信号。

收到此信号后,8259A立即在ISR中设置与中断请求对应的位,并重置IRR中的相应位。

例如,如果当前中断请求是IR3,则ISR中的位3将被置位,并且IRR中与IR3相对应的位将被复位。

这意味着CPU正在处理此中断请求,而不是等待CPU处理。

然后,CPU再次向8259A发送INTA信号,要求它告诉CPU中断请求是什么中断向量,这是0到255之间的数字.8259A根据设置的起始向量编号计算中断向量编号(起始向量编号由中断控制字ICW2)加上中断请求编号初始化,并将其置于数据总线上。

例如,如果要初始化的初始向量编号是8,并且当前中断请求是IR3,则计算的中断向量是8 + 3 = 11。

在CPU从数据总线获得中断向量之后,它进入IDT以找到相应的中断服务程序ISR并调用它。

如果8259A中断结束(EOI)通知设置为按位模式,则在ISR处理完过程后,应将EOI发送到8259A。

8259A收到EOI通知后,ISR寄存器中与该中断请求对应的位将被复位。

如果8259A的中断结束(EOI)通知设置为位自动模式,则在接收到第二个INTA信号后,8259A ISR寄存器中与该中断请求相对应的位将被复位。

在此期间,如果新的中断请求到达并置于IRR中,如果这些新的中断请求的优先级高于ISR寄存器中的所有中断,则这些高优先级中断请求将按上述方式处理;否则,这些中断将被置于IRR中,直到ISR中的高优先级中断被处理,即已知ISR寄存器中的高优先级位被复位。

8259A芯片最多可以连接8个中断源,但由于两个或更多8259A芯片可以级联,最多可以级联9个,因此可以连接多达64个中断源。

今天大多数PC都有两个8259A,可以接受多达15个中断源。

8259A可以屏蔽单个中断源。

在8259A芯片上有几个内部寄存器中断屏蔽寄存器(IMR)。

中断请求寄存器(IRR)。

在服务注册(ISR)。

IMR用于过滤被阻止的中断,IRR用于临时放置未进一步处理的中断。

当CPU正在处理中断时,中断将被置于ISR中。

除了这些寄存器,8259A还有一个称为优先级解析器的单元。

当多个中断同时发生时,优先级解析器根据优先级优先考虑CPU的高优先级。

每个8259A芯片都有两个I / O端口,编程人员可以使用它们对8259A进行编程。

Master 8259A的端口地址为0x20,0x21; Slave 8259A的端口地址为0xA0,0xA1。

8259A的密码程序员可以向8259A写入两个命令字:初始化命令字(ICW);该命令字用于初始化8259A芯片。

操作命令字(OCW):该命令用于向8259A发出命令以控制它们。

初始化8259A后,可以随时使用OCW。

8259A主电影下表显示了Master 8259A的I / O端口地址以及它们可以操作的寄存器。

地址读/写功能0x20写初始化命令字1(ICW1)写操作命令字2(OCW2)写操作命令字3(OCW3)读中断请求寄存器(IRR)读操作寄存器(ISR)0x21写初始化命令字2(ICW2)写初始化命令字3(ICW3)写初始化命令字4(ICW4)读/写中断屏蔽寄存器(IMR)主机8259A的地址/寄存器8259A从机内容是从机8259A的I / O端口地址。

以及他们可以操作的寄存器。

地址读/写功能0xA0写初始化命令字1(ICW1)写操作命令字2(OCW2)写操作命令字3(OCW3)读中断请求寄存器(IRR)读操作寄存器(ISR)0xA1写初始化命令字2(ICW2)写初始化命令字3(ICW3)写初始化命令字4(ICW4)读/写中断屏蔽寄存器(IMR)从器件8259A的地址/寄存器由于8259A芯片不仅可用于IBM PC / X86,但也用作MCS-80/85,两者的操作模式有一些差异,有些寄存器的设置也不同。

我们稍后将仅讨论与X86模式相关的内容。

欢迎您的咨询