在linux内核中,每一个能够发出中断请求的硬件设备控制器都有一条名为IRQ的输出线。所有现在存在的IRQ线都与一个名为可编程中断控制器的硬件电路的输入引脚相连,上次讲到单片机的时候,我就讲到了单片机中断的一些概念。我们现在来看一幅图,更好说明一个问题
这下面的这幅图是51单片机的一个关于矩阵键盘的学习的一个proteus的仿真电路图。其中P3.2和P3.3为外部中断引脚,当可编程控制器(51MCU)收到外部中断响应的时候,会执行一些特定的操作,当然这需要开发者去编写一个中断初始化程序和一个中断服务程序。
那么,可编程中断控制器会做以下的操作:
1、监视IRQ线,我们可以理解就是监视单片机外
部中断的IO口,检查产生的信号。如果有条或者两条以上的 IRQ上产生信号,就选择引脚编号较小的IRQ线。 2、如果一个引发信号出现在IRQ线上:
a.把接收到的引发信号转换成对应的向量。
b.把这个向量存放在中断控制器的一个I/O端口,从而允许CPU通过数据总线读这个向量。
c.把引发信号发送到处理器的INTR引脚,即会产生一个中断。
d.等待,直到CPU通过把这个中断信号写进可编程中断控制器的一个I/O端口来确认它,当这种情况发送时,清INTR线。
3、最后一步返回到第一步继续监视,然后依次执行。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !