Overview of the working of 8259
8259从许多中断设备IR0到IR7引脚接受了中断请求。之后,它从那些已经激活的输入中识别出最高优先级的中断请求。要将8259配置为固定优先级操作模式,其中IR0具有最高优先级,IR7具有最低优先级。如果输入IR2,IR4和IR6处于活动状态,则IR2在活动请求中的优先级高于其他中断请求。那些活动的中断请求的详细信息存储在中断请求寄存器(IRR)中。
通过加载中断屏蔽寄存器(IMR),可以屏蔽中断请求。如果中断请求IR2和IR3被屏蔽,则IR4将在未屏蔽的活动请求中获得最高优先级的中断请求。处理器可能已经在处理IR5中断请求。有关当前正在服务的中断请求的所有信息,均缩写为"服务中寄存器"(ISR)。
优先级解析器单元存在于8259中,它接收来自IRR,ISR和IMR的输入请求,并标识最高优先级的中断请求。由于IR4的优先级比当前正在服务的IR5大得多,因此将激活输出的INT(中断请求)。同时,8259将ISR的第4位设置为1。如下图所示,8259的INT输出连接到8085的INTR输入。 8259的INT输出不应连接到8085的任何其他中断引脚。
因此,优先级解析器仅在满足以下条件时才决定激活INT输出。
- 激活到IR输入;
- 未屏蔽红外输入时;
- 当处理器当前不为更高优先级的IR请求提供服务时。
图:8259与8085处理器接口
8085执行激活INTR输入的指令。然后,假设启用了8085中断系统,并且8085的高优先级中断未激活,则8085连续发送三次INTA *输出。响应INTA *的激活,8259使用D 7-0 sub>引脚将3字节的CALL指令发送到8085。首次激活INTA *时,8259会将CALL(5CDH)的代码发送到D 7-0 sub>引脚上的8085。它在8085的IR寄存器中接收。第二次激活INTA *时,8259在D 7-0 sub>引脚上向8085发送中断向量(IV)地址的LS字节。它在8085的Z寄存器中接收。第三次激活INTA *时,8259在D 7-0 sub>引脚上向8085发送IV地址的MS字节。它在8085的W寄存器中接收。8259提供给8085的IV地址取决于所服务的8259的IR输入。这将导致分支到适当的ISS。完成ISS后,控制权返回主程序。
需要注意的重要一点是,不需要处理器识别INTR引脚上的中断源。 8259具有从IR0到IR7中识别中断源的机制。它将带有相应ISS地址的CALL指令发送到8085。这样就消除了轮询的问题,从而减少了中断响应时间。其次,8259可以配置为以"旋转优先模式"运行。然后还解决了固定优先级的缺点。
通过在系统中使用单个8259,八个中断设备可以在8085的INTR输入上中断。当许多设备需要形成中断驱动的数据传输方案时,将使用多个8259。
图:使用了多个8259。