专利名称:禁止中断屏蔽的电路和方法
本申请与申请号为US07/917,497、07/917,489、07/917,488、07/918,624、07/918,627、07/918,626、07/918,625、07/918,631、07/918,632、07/918,622和07/918,621的美国专利申请有关。
这些相关的申请与本申请同一日期提交并转让给本发明的受让人。
本发明涉及在处理器中实现的中断控制器,尤其涉及一种其中断可由软件屏蔽的中断控制器。
在处理器中,中断能使一个软件程序与另一个软件程序之间的控制进行转移。中断可以由某些内部或外部装置(即定时器,I/O外部设备)所发出的一个中断请求信号所请求,并由中央处理单元(CPU)所接收。CPU将暂停执行此时正在运行的无论哪一种程序,而专门响应该中断请求,并执行一个中断服务程序。在中断服务程序执行之后,CPU将在中断处恢复执行前一个软件程序。
由前所述,可以发现,利用中断允许CPU用其它装置的动作来协调其动作,在某种程度上取消了CPU对耗费时间的轮询装置的需要。而且,在许多应用中,某些程序的处理对于外部事件来说必须精确地定时,这时,中断也是很有用的。
处理器通常具有通过软件来禁止中断的能力。可以由CPU通过“屏蔽”技术有选择地禁止中断。这通常利用带有中断请求线的中断启用触发器来完成。当触发器由软件置1时,触发器允许由CPU所识别的有关中断请求线的依次要求。当触发器由软件请零时,中断请求被“屏蔽”,CPU不能识别依次的请求。
某些处理器,诸如AdvancedMicroDevices公司的8051微控制器系列,具有在任何时候都能屏蔽其任何数目的中断的能力。屏蔽所有中断的能力是有用的,例如,避免对关键性的软件程序的中断,或允许CPU在准备为一个装置服务之前,不问来自该装置的请求。然而,还有许多时候,可能需要一种不可屏蔽的中断。其中之一是当8051微控制器处于空闲状态时。
8051微控制器的空闲状态提供一种手段,通过关闭内部时钟信号送至CPU来减低功耗。在其标准形式中,8051微控制器允许或者通过硬件复位,或者通过任何允许中断的动作,结束其空闲状态。然而,在某些结构形式的8051微控制器中,并无现成的硬件复位机构。即使有现成的硬件复位机构,通常将它作为一种脱离空闲状态的手段,也是不合需要的,因为它使计算机重新初始化,这样将丢失直至目前所已完成的许多工作。因此,通常合乎需要的是,当8051微控制器进入空闲状态时,如果没有必要,就至少保留一个未屏蔽的中断,由此允许微控制器通过一个中断请求的提出而退出空闲状态。
在这之前,本领域的熟练人员已经遇到了这样一个问题,即根据进入的状态,诸如8051微控制器的空闲状态,提供一个未屏蔽的中断。可知,软件并非提供这样一种未屏蔽中断的可靠方式。由于新软件的复杂性,程序员难以弄清各种可能的程度,通过该程序计算机可以进入某一状态,诸如空闲状态。而且,由于软件错误或外部噪声所引起的错误地执行软件,微处理器可能不知不觉地进入这样一种状态。另一方面,如上所述,由于需要在某些时候屏蔽所有的中断,故提供一种固定不变的不可屏蔽的中断也不是一种合意的方法。
根据以上所述,可以看出,为处理器提供所有中断都可屏蔽的能力可能是有利的。然而,处理器可能进入某些状态,在该状态下,它只能通过中断退出。如果在进入这样一种状态时,所有中断均已被屏蔽,计算机将陷入一种“致命的包围中”,即它将没有一条路退出该状态。在此之前,尽管已经采取多种步骤来处理这一问题,但仍然有必要为中断控制器开发一种装置或方法,以便能非常有效地解决这一问题。因此,将可以理解,至今未能开发出这样一种装置或方法是现有技术的缺陷和不足。
本发明通过提供一种中断允许电路而克服了现有技术的缺陷和不足,这种电路能允许在任何时候由软件来决定允许和禁止中断,除了由硬件限定的某些条件下,此时中断成为不可屏蔽的。中断允许电路包括表示一种软件条件的结构,表示一种硬件条件的结构,以及响应于上述结构,用以根据中断请求信号的提出产生一个中断的结构,在某些实施例中,中断是在指明硬件条件时提出的,与软件条件无关。用以产生一个中断的结构可以包括响应于软件条件和硬件条件的允许中断的结构,以及当中断请求提出,并且只有当中断被允许时,用以提出中断的结构。
用以表示软件条件的结构可以包括一个可编程寄存器,它输出一个软件允许信号。用以表示硬件条件的结构,可以是一种硬件电路,当处理器处于特殊状态,例如8051微控制器的空闲状态时,输出一个硬件允许信号。在其它实施例中,当一个外部信号提出时,硬件电路可以输出一个硬件允许信号。在还有一些实施例中,用以表示硬件条件的结构可以包括上述两种硬件电路类型。
用以允许中断的结构可以包括一个或门,它接收硬件允许信号和软件允许信号,并输出一个组合的允许信号。
用以提出中断的结构,可以包括一个与门,它接收该组合的允许信号和中断请求信号,并输出中断信号。
此外,本发明提供一种用以产生一个已由软件禁止的中断的方法。由本发明所提供的该方法包括表示一种特定硬件条件的步骤;表示一种特定软件条件的步骤;以及如果硬件条件已表明,而不管软件条件如何,即响应于中断请求信号的提出而产生中断的步骤。
因此,本发明的目的在于提供一种中断允许电路,它在某些硬件条件下允许可屏蔽的中断变为不可屏蔽的中断。
本发明的另一个目的在于通过提供一种替代硬件复位,作为退出某些处理器状态的手段,以避免信息的不必要损失。
本发明的再一个目的在于防止处理器锁定于某一种状态的可能性,因在进入该状态时所有中断均由软件屏蔽。
以下当结合附图对本发明作进一步的详细描述时,本发明的其它目的、优点和新的特征将变得更加清楚。
图1是根据现有技术的一个中断允许电路;
图2是根据本发明技术的一个中断允许电路的一个实施例,它响应于一种空闲状态条件;
图3是根据本发明技术的一个中断允许电路的一个实施例,它响应于一个外部信号;
图4是根据本发明技术的一个中断允许电路的实施例,它响应于一种空闲状态条件和一个外部信号;
图5(包括图5a和图5b)是包括一个8051微控制器在内的一个集成电路的方框图,它采用了根据本发明技术的一个中断允许电路;
图6是无绳电话机一个手持单元的方框图,它采用了图5所示的集成电路;
图7是无绳电话机一个座机单元的方框图,它采用了图5所示的集成电路。
现在参见附图,图1表示一个已结合进AdvancedMicroDevices公司8051微控制器系列器件内的一个中断允许电路2。图1所示的中断允许电路2接收一个外部中断请求INT0/。它转换为中断请求信号INT0在线路4上传递。然后,中断请求信号INT0输入至与门6,后者还通过线路8接收一个软件允许信号。与门6的输出端连接到锁存器10的输入端。该锁存器10用作中断标志IEO。该锁存器由处理器通过线路12在每个机器周期内进行取样。取样时,如果该标志处于设置条件,处理器的中断系统可以暂时将整个处理器的控制转到合适的中断服务程序。
这样,如果中断许可的话,中断允许电路2可以响应于外部中断请求信号INT0/的提出,产生出一个中断。中断的允许和禁止是通过软件控制的,并受影响于中断启用寄存器位0的置1或清0。
中断启用寄存器是位可寻址的,并可描述如下。
IE中断启用寄存器
EAIE.7禁止所有中断。如果EA=0,无中断收到。如果EA=1,每个中断源通过设置或清除其许可位而单独地允许或禁止。
-IE.6不执行。
ET2IE.5允许或禁止定时器2溢出或锁住中断(仅对8052)ESIE.4允许或禁止串行口中断。
ET1IE.3允许或禁止定时器1溢出中断。
EX1IE.2允许或禁止外部中断1。
ET0IE.1允许或禁止定时器0溢出中断。
EX0IE.0允许或禁止外部中断0。
如果此经清零,则相应的中断被禁止。如果此位置1,允许相应的中断。而且,从以上对中断启用寄存器的描述中可见,所有由8051微控制器提供的中断,都可以通过中断启用寄存器的位7的清零被禁止。
对中断启用寄存器的位0或位7清零都会成为在线路8上提出软件允许信号的原因。由图1可以发现,允许信号是与线路4上的中断请求信号成与的关系的。这样,当线路8上的软件允许信号为高电平时,在线路4上INT0的提出将使锁存器10置1,由此产生一个中断。如果线路8上的软件允许信号为低电平,该中断被屏蔽。这样,INT0的提出将不影响锁存器10,并将不产生中断。
象本领域已知的许多其它器件一样,8051系列中的微控制器具有屏蔽所有由微控制器所提供的中断的能力。如前所述,本领域的熟练人员认为,这种能力对于在例如关键的软件程序期间防止不想要的中断是有用的。然而,当处理器进入可以要求许可中断的某些状态时,在是这种同样的能力产生了一个问题。这种状态的一个例子就是在本发明背景中所提到的空闲状态。如果在处理器进入空闲状态时,所有中断均不允许,那么结束空闲状态的唯一手段是通过硬件复位。由于重新初始化处理器将因此而丢失直至中断点之前的所累积的所有数据,故硬件复位是不合需要的。在硬件复位不是一种现成的选择的应用中,处理器处于一种致命的包围中。这样,提供一种中断将是有利的,它能够在所有时候被屏蔽,除了处理器处于某种状态,诸如空闲状态时,在此期间中断仍然允许。本发明提供了这样一种能力。
图2表示根据本发明技术的一种中断允许电路,它提供了一种可以通过软件屏蔽的中断,但是当处理器处于空闲状态时,又变成不可屏蔽的中断。它附加了一个空闲指示器电路22到图1所示的中断允许电路2,只要处理器进入空闲状态,该指示器电路就在线路24上提出一个IDLE信号。线路24上的IDLE信号连同线路26上的软件允许信号,由或门28接收。然后,或门28的输出与中断请求信号INT0作与运算。如前所述,与门6的输出送到锁存器10,它用作中断标志IE0。
如果处理器进入一种空闲状态,IDLE指示器电路22将在线路24上提出IDLE信号,并依次将使或门28的输出变为高电平,而不管线路26上的软件允许信号的状态如何。只要或门输出28维持于高电平,线路4上提出的中断请求信号INT0将使锁存器10置1,由此产生中断。只要处理器维持在IDLE状态,IDLE信号以及由此而来的或门28的输出将维持于高电平。因此,当处理器进入IDLE状态时,中断请求信号INT0的提出可以使中断标识IEO置1,并可由处理器识别,即使中断已由软件屏蔽。当处理器未处于空闲状态时,线路24上的IDLE信号将维持于低电平,中断的允许和禁止将由线路26上的软件允许信号所决定。
根据前面所述,现在可以发现,本发明提供了一种中断允许电路,通过该电路,一个可以由软件控制禁止和允许的中断,在某些硬件条件下成为不可屏蔽的。根据本发明,一个中断允许电路的实施例,可以包括用以表示一种软件条件的结构,用以表示一种硬件条件的结构,以及响应于上述两种结构,用以按照提出的一个中断请求信号产生一个中断的结构。在某些实施例中,用以表示一种软件条件的结构可以包括一个可编程寄存器,它输出一个软件允许信号;用以表示一种硬件条件的结构可以包括一个硬件电路,它输出一个硬件允许信号,例如当处理器处于空闲状态时,输出的IDLE信号。用以产生一个中断的结构可以包括一个或门和一个与门。该或门接收软件允许信号和硬件允许信号,并输出一个组合的允许信号;该与门接收上述组合的允许信号和中断请求信号,并输出一个设置中断标识的信号。
本发明其它可能的实施方案见图3和图4。图3中,空闲指示器电路22及图2所示线路24上与它有关的IDLE信号,现在由一个外部信号所替换,该信号由处理器外部产生并在线路32上接收。在这样一个实施例中,除非线路32上的有外部信号,否则,中断仍由软件所屏蔽。当外部信号保持存在时,就保持中断许可,而不管软件企图禁止中断。
图4所示的中断允许电路,表示本发明的一个实施例,它是图2和图3所示电路的结合。或门28现在除了接收线路26上的软件允许信号外,还接收线路32上的外部信号,以及线路24上经由空闲指示器电路22接收的IDLE信号。当外部信号和IDLE信号都为低电平时,中断的许可和禁止仍由软件控制。然而,当或者IDLE信号,或者外部信号提出时,中断即变成允许,并不可由软件来屏蔽。
以上所述仅仅表示了本发明的某些特殊的实施例。然而,本领域的熟练人员将理解到,在基本上不脱离本发明的精神和范围的情况下,还可以对此作出许多改进和变化。因此,显而易见,其中所述的本发明的形式仅仅是示例性的,并不想作为对本发明范围的一种限制。
此外,应该了解,本发明的中断允许电路可以在各种系统中实现。例如,图5表示一个集成电路的方框图,它包括一个8051微控制器,它具有如图2所示的中断允许电路。本发明的中断允许电路,在诸如防止IC因所有中断被禁止而进入关闭状态的这样一种应用中是有益的。与IC的关闭状态性能有关的细节在题为“容许关闭状态的时钟发生器以及时钟产生方法”的有关案例中作了详细描述。当IC已经被编程进入关闭状态时,8051微控制器将典型地被编程进入其空闲状态。如果IC处于关闭状态,而微控制器处于空闲状态时,微控制器中断屏蔽位的条件(中断启用寄存器位7、2和0)被忽略,允许INT0/和INT1/中断。关闭状态可以通过复位终止(在键盘上用任意键按下表示),或通过任何非屏蔽的中断终止。所有这些条件都导致产生一个中断请求。一旦IC退出关闭状态,即产生中断请求至微控制器,或者作为外部中断INT0/或者作为INT1/。由于微控制器实现了本发明的中断允许电路,中断请求将由微控制器识别,即使当微控制器进入空闲状态时,它们由软件屏蔽时也一样。这样,作为中断请求的结果,微控制器被允许脱离该空闲状态。
此外,图5所示的IC可以工作于一个无绳电话中。图6和图7分别描述图5所示的IC是如何可以结合进一个无绳电话机的手持单元和座机单元中的。这些实施方法在各种有关的案例中,尤其在题为“集成电路和采用集成电路的无绳电话机”一例中已作了详尽地描述。
显然,由以上所述看来,有可能作出许多的改进和变化。因此,在所附权利要求书的范围内,本发明还可以用不同于上述专门描述的其它方法来实现。
权利要求
1.一种用以产生中断的装置,所述中断由一个中断请求信号的提出而请求,其特征在于,所述装置包括用以表示一种软件条件的装置;用以表示一种硬件条件的装置;以及响应于所述中断请求信号的提出,用以产生所述中断的装置,所述用以产生中断的装置响应于所述软件条件和所述硬件条件。
2.如权利要求1所述的装置,其特征在于,所述用以产生中断的装置,当所述中断请求被提出,且所述硬件条件被表示时,即产生所述的中断,而与所述软件条件无关。
3.如权利要求2所述的装置,其特征在于,所述用以产生中断的装置包括用以响应于所述软件条件和所述硬件条件,许可所述中断的装置;以及当所述中断请求被提出,且所述中断被许可时,用以确认所述中断;当所述中断请求被提出,而所述中断未许可时,不确认所述中断的装置。
4.如权利要求3所述的装置,其特征在于,所述用以表示软件条件的装置包括一可编程寄存器,它输出一个软件允许中断信号。
5.如权利要求4所述的装置,其特征在于,所述用以表示硬件条件的装置包括至少一个硬件电路,所述至少一个硬件电路的每一个输出一硬件允许信号。
6.如权利要求5所述的装置,其特征在于,所述用以允许所述中断的装置包括一或门,它接收所述软件允许信号和所述硬件允许信号,并输出一个组合的允许信号。
7.如权利要求6所述的装置,其特征在于,所述用以确认中断的装置包括一与门,它接收所述组合的允许信号和所述的中断请求信号,并输出所述的中断。
8.如权利要求7所述的装置,其特征在于,所述装置包括在一个处理器中,当所述处理器处于一特定状态时,所述至少一个硬件电路确认所述硬件允许信号。
9.如权利要求8所述的装置,其特征在于,所述特定状态包括空闲状态。
10.如权利要求7所述的装置,其特征在于,所述装置包括在一个处理器中,而所述至少一个硬件电路响应于由所述处理器外部产生的一外部允许信号,确认所述硬件允许信号。
11.如权利要求8所述的装置,其特征在于,所述至少一个硬件电路响应于由所述处理器外部产生的一外部允许信号,进一步产生所述的硬件允许信号。
12.一种用以产生中断的方法,所述中断由一个中断请求信号的提出而被请求,其特征在于,所述方法包括如下步骤表示一种硬件条件;表示一种软件条件;以及响应于所述中断请求信号产生所述中断,所述产生中断的步骤取决于所述软件条件和所述硬件条件。
13.如权利要求12所述的方法,其特征在于,所述产生中断的步骤包括当所述中断请求被确认,且所述硬件条件被表示,而不管所述软件如何时,即产生所述中断的步骤。
14.如权利要求13所述的方法,其特征在于,所述产生中断的步骤包括如下步骤响应于所述软件条件和所述硬件条件,许可所述中断;以及当所述中断请求被提出,且所述中断被允许时,确认所述中断;当所述中断请求被提出,而所述中断被允许时,不确认所述中断。
15.如权利要求14所述的方法,其特征在于,所述表示软件条件的步骤由一可编程寄存器执行,它输出一个软件允许信号。
16.如权利要求15所述的方法,其特征在于,所述表示硬件条件的步骤由至少一个硬件电路执行,所述至少一个硬件电路的每一个输出一个硬件允许信号。
17.如权利要求16所述的方法,其特征在于,所述允许所述中断的步骤由一个或门执行,它接收所述软件允许信号和所述硬件允许信号,并输出一个组合的允许信号。
18.如权利要求17所述的方法,其特征在于,所述确认中断的步骤由一个与门执行,它接收所述组合的允许信号和所述中断请求信号,并输出所述的中断。
19.如权利要求18所述的方法,其特征在于,所述中断由一个处理器接收,当所述处理器处于一特定状态时,所述至少一个硬件电路确认一个硬件允许信号。
20.如权利要求19所述的方法,其特征在于,所述特定的状态为空闲状态。
21.如权利要求18所述的方法,其特征在于,所述中断由一个处理器接收,所述至少一个硬件电路响应于由所述处理器外部产生的一外部允许信号,确认所述的硬件允许信号。
22.如权利要求19所述的方法,其特征在于,所述至少一个硬件电路响应于在所述处理器外部产生的一外部允许信号,进一步产生所述的硬件允许信号。
全文摘要
一种在某一硬件条件下,即使中断已由软件屏蔽,仍允许一个中断的装置,它包括用以表示一个软件条件的结构,用以表示一个硬件条件的结构,以及响应于上述两种结构,用以响应于一个中断请求信号的提出而产生一个中断的结构。
文档编号G06F9/48GK1081776SQ9310900
公开日1994年2月9日 申请日期1993年7月21日 优先权日1992年7月21日
发明者J·包尔斯, M·卢得克, D·古利克 申请人:先进显微设备股份有限公司