8259A基础

8259A基础8259A功能: 管理和控制可屏蔽中断(也就是外设中断),对它们进行优先级判决,向CPU提供向量号等功能 结构: INT:通知INTR选出了优先级最高的中断请求 INTA:中断响应信号,接受来自CPU的中断响应信号 IMR:中断屏蔽器,用于屏蔽某个中断 IRR:中断请求器,接受IMR过滤后的中断并锁

8259A基础

8259A功能:

  管理和控制可屏蔽中断(也就是外设中断),对它们进行优先级判决,向CPU提供向量号等功能

结构:

   INT:通知INTR选出了优先级最高的中断请求

   INTA:中断响应信号,接受来自CPU的中断响应信号

   IMR:中断屏蔽器,用于屏蔽某个中断

   IRR:中断请求器,接受IMR过滤后的中断并锁存

   PR:优先仲裁器,仲裁出优先级更高的中断

   ISR:中断服务寄存器,保留正在被处理的中断号

   注意:这里面的寄存器都是8位的,由于主片也是8个中断,所以用位图的形式表示对于主片IRQ接口

中断过程:

   中断到8259A后,首先通过IMR检查对应IRQ是否被屏蔽,如果没有进入IRR,把对应位置置1。然后在PR中,由于IRQ接口号越低优先级越大,所以基于此进行优先级仲裁。然后仲裁得到结果,通过INT进行CPU通知,CPU并返回INTA进行响应。然后8259A把对于ISR的bit置1,表示正在服务,同时把IRR位置0去掉中断。之后,CPU再发个INTA来获取对应中断向量号,这样完成上半场了。

   如果EOI是手动模式,那么在中断处理程序结束还有个发EOI的代码;如果是自动那么在第二次发INTA的时候就会自动把ISR对应位置0

  注意:在第二次INTA来,发送中断向量号之前时,如果有优先级更高的中断来了,那么现在的中断号是会被替换的

说明:

  一片8259A只可以管理8个中断,所以需要使用主片和从片级联的方法。只有一片主片,从片的中断先给主片,再到CPU

  外部设备的中断都接载IRQ(Interrupt ReQuest)上

  中断向量号 = 起始中断向量号+IRQ接口号(通过设置这个来确定)

今天的文章8259A基础分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/57549.html

(0)
编程小号编程小号
上一篇 2023-08-25 12:06
下一篇 2023-08-25 12:17

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注