使用共享中断,更有效工作

ZDNet软件频道 时间:2003-08-05 作者:ZDNet China |  我要评论()
本文关键词:embedded
对于大多数系统来说,仅有一个常规中断是不足以应付那么多的中断资源,比如:计数器、DMAs和通信端口。而使用中断控制器可以使CPU核心和更多的中断资源相联系。
本文译自Builder.com,未经许可请勿转载大多数CPU核心有两种中断输入:一种提供给常规中断的;另一种提供给非屏蔽性中断(nonmaskable interrupts,NMIs)的。标准外围设备使用常规中断输入;而NMIs被用来应付危险的中断,这些中断不能被忽略或禁止,如:Watchdog 的超时设定。在多数设计中,NMI并没有被使用。

对于大多数系统来说,仅有一个常规中断是不足以应付那么多的中断资源,比如:计数器、DMAs和通信端口。而使用中断控制器可以使CPU核心和更多的中断资源相联系。

中断控制器允许CPU读取的每一个中断线(interrupt line)的状态,并产生中断,对中断设立优先级。例如:有选择性的避免个别的中断资源打扰CPU。中断控制器可以是独立的外部器件,也可以使运算器芯片的一部分。

中断控制器能处理两种中断方式:电平触发方式和边缘触发方式。

电平触发中断:当中断控制器探测到在中断线上有一个触发电平(满足一定电平高度)出现时,它就会请求一次CPU中断。然后,产生中断请求的外围设备就一直占据着中断线,等到CPU有所回应后,才会放开中断线。典型的做法是:由中断服务程序通知外围设备放开中断线。

边缘触发中断:又分为两种,在中断线上,由高电平到底电平转换的边缘触发,以及由低电平到高电平转换的边缘触发。能对中断线产生短暂的脉冲波的外部外围设备可以用这种方式。另外,一些兼容电平触发的外围设备也同样可以使用这种方式,它们占据着中断线,只有当软件处理中断后才会放开所占据的中断线。

使用共享中断

当多个中断资源共用一个中断线时,就有麻烦了。当你的中断控制器的输入不够多时,共享中断是很有必要的。在硬件上,只要使用线接或(或者,逻辑或)阵列,就可以达到目的。

共享中断比你想象中还要普遍。甚至即使电路设计者没有明确共用一个硬件中断线时,也会有共享中断的。

看看典型的外部通用异步收发器(UART):它只有一个中断输出,为不同的内部中断资源所共享,比如:接受中断和发送中断。这些中断在中断控制器内部用“或方式”有效的连接到一块了。

无论你何时共用中断线,必须要考虑的是:当两个或更多的中断信号同时产生或相继产生时,会出现什么样的状况?如果不能很好处理的话,你就有可能丢失中断信号以及锁定中断线。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134