一种中断系统实现方法

文档序号:6523936阅读:219来源:国知局
专利名称:一种中断系统实现方法
技术领域
本发明属集成电路设计技术领域,具体涉及一种微控制器的中断系统实现方法。
背景技术
随着深亚微米CMOS集成电路生产工艺的不断进步,目前可以把复杂的微控制器(MCU)内核集成在一块芯片上,同时留有足够的硅片面积用于实现复杂的存储器和外设逻辑。过去用于高端32位和64位CPU的设计方法和构架现在已经能够有效的用于低价8位微控制器系统。利用这些功能强大而且便宜的微控制器使得系统的集成度不断提高,同时也大大增强了微处理器数据处理及流程控制的能力。在微处理器系统处理程序流程控制的过程中,中断系统扮演着越来越重要的角色。中断系统是微处理器在运行软件的标准流程中,插入其他的处理子程序,其在程序流程控制中拥有比较高的优先级。
近年来,微控制器的中断系统的设计获得了广泛的普及。虽然现在实现中断系统的方法很多,比如采用屏蔽中断的设计方法还是禁止屏蔽中断的设计,采用一个中断地址的设计方法还是多个中断向量的设计方法等等。
很多公司都在生产带中断系统的微控制器,如Microchip、Motorola、Toshiba、NEC、Hitachi、Atmel、Holtek等。虽然这些公司的部分微控制器产品都具备中断系统,但是这些产品当中大多数产品的中断类型、中断处理方式比较单一,中断来源判断不清,致使中断响应处理没有很好的优化,使得在工业控制方面没有很好的发挥中断系统的资源,同时给应用开发工程师掌握这些中断系统带来困难。

发明内容
本发明的目的在于提供一种中断系统实现方法,使得中断来源的判断更加清晰。
本发明的另一目的在于通过本发明所提供的中断系统实现方法可以灵活选择中断向量数目和中断向量表,通过软件的方法实现中断优先级的处理。
本发明的进一步的目的在于可以将处于空闲模式的微控制器激活,进入正常工作模式。
本发明是这样实现的,本发明提供的中断系统实现方法包括如下步骤所述中断模块接受中断请求后判断该请求是否同时满足中断允许和中断有效允许,如果是,将中断请求转换成中断响应,系统进入中断,否则,不产生中断响应。
所述中断请求包括内部中断请求、外部中断请求及软中断请求。
所述中断请求为外部中断请求时,所述中断允许是指外围中断允许及该外部中断请求对应的中断允许。
所述中断请求为内部中断请求时,所述中断允许是指该内部中断请求对应的中断允许。
所述中断请求为软中断请求时,所述中断允许是指软件中断允许。
所述外部中断请求包括外部定时器中断请求、捕捉/比较/脉宽调制中断请求、通信口中断或模/数转换中断请求。
所述内部中断请求包括端口电平变化中断请求、端口沿触发中断请求或内部定时器中断请求。
预先设置中断向量数目和中断向量表,依据中断向量表对中断类型进行分类。
当所述中断模块接受中断请求后先依据该中断请求的类型判断其实现中断的优先级,并进行中断优先级的处理。
在多个中断向量的模式下,软中断优先级最高。
所述中断优先级的处理是通过软件方法实现的。
本发明利用满足中断有效条件将工作在空闲模式的微控制器激活。
系统执行IDLE指令进入空闲模式,当中断模块接受到中断请求时,判断该请求是否同时满足其对应的中断允许,如果是,激活空闲模式,进入正常模式;然后判断中断有效是否允许,如是,则进入中断子程序,否则返回主程序继续执行。
系统进入中断后将自动保护断点,进行PC压栈,退出中断时,将恢复现场,自动进行PC出栈。
可以看出,本发明所述的中断系统的实现方法中包括中断允许、中断请求、中断有效和中断响应四种操作,使得中断来源的判断更加清晰。部分中断有效可以将处于空闲模式的微控制器激活,进入正常工作模式。且本发明的中断系统是基于微控制器的各个功能模块上设计的,有三种不同的中断类型内部中断、外部中断和软件中断,使得中断的资源更加丰富。在本发明中通过微控制器寄存器的设置可以选择中断向量数目和中断向量表,通过软件的方法实现中断优先级的处理,使得编写程序更加简单易懂。本发明的中断源、中断向量数目和中断向量表数目都可以进行扩展,具备良好的可扩展性。本发明采用软硬件协同的设计方法,在硬件方面,结合微控制器的功能模块,合理的划分中断类型,巧妙的安排中断向量,快速的中断响应判断处理;在软件方面,通过软件的方法处理中断优先级,实现相对高效率高性能的中断系统。


图1为本发明所述中断资源类型示意图;图2为本发明所述内部定时器中断实施例流程示意图;图3为本发明所述外部定时器中断实施例流程示意图;图4为本发明所述的软中断实施例流程示意图;图5为本发明所述的中断激活空闲模式实施例流程示意图。
具体实施例方式
本发明所述的方法,其核心思想是包括如下步骤所述中断模块接受中断请求后判断该请求是否同时满足中断允许和中断有效允许,如果是,将中断请求转换成中断响应,系统进入中断,否则,不产生中断响应。
现结合附图,对本发明的具体实施方式
作进一步的详细说明。
如图1所示,本发明所述的中断资源类型包括内部中断、外部中断和软件中断。所述内部中断是指微控制器内部的中央处理单元CPU内的功能模块中断,外部中断是微控制器的CPU以外的功能模块中断,软件中断是设置CPU内部寄存器的软件中断,其无需硬件电路特殊触发时间,而只需通过软件控制实现中断。其中,内部中断可以包括端口电平变化中断、端口沿触发中断及内部定时器中断;外部中断可以包括外部定时器中断、捕捉/比较/脉宽调制中断、通信口中断及模/数转换中断;所述软中断是通过设置软中断使能来实现。本发明中可以形成由内部中断、外围中断和软件中断组成的不同类型的中断处理,可以选择设置中断向量数目和中断向量表及类型。在本发明中可以选择设置一个或多个中断向量,当选择一个中断向量时,仅有一种中断向量表可以选择,当选择设置多个中断向量时,就可以有多个中断向量表可以选择,通过中断向量表对中断类型进行分类。当接到一个中断请求时,依据中断请求的类型来判断该中断请求的优先级,在多个中断向量模式下,软中断的优先级最高。
本发明所述的中断系统实现方法包括中断允许、中断请求、中断有效和中断响应四种中断操作;其中,通过设置中断相关寄存器实现中断允许,通过相应的中断标志发生或者中断相关寄存器设置实现中断请求。中断有效的实现是指对应的中断允许和中断请求均为有效,例如对于外部中断,外部中断允许也需要使能,才能够实现中断有效。当中断有效允许和中断有效同时满足的情况下,系统才会进入中断响应。
如图2所示的内部定时器中断示意图,其中断类型属于内部中断,进一步属于内部定时器中断的情况。首先,设置内部的定时器工作,内部定时器开始计数,当计数的数值至最大值时,定时器将从最大值到零变化,此时定时器向中断模块输出一个计数溢出标志位,即一个中断请求信号。中断模块判断是否中断有效允许使能及内部定时器中断允许使能,如果是,中断模块将该中断请求转换成有效的中断响应进入中断;否则,不产生中断响应。其他内部中断类型同本实施例的区别是产生中断请求的标志不同,如端口沿触发中断是通过检测端口是否有上升沿或者下降沿的标志进行请求触发,端口电平中断是检测端口是否有变化的标志进行触发,而本实施例中的定时器中断触发是通过检测定时器是否溢出进行触发。内部中断都需要配合各自对应的中断允许使能和中断有效允许使能,才能将其中断请求转换成有效的中断响应,否则将不产生中断响应。比如,端口沿触发中断需要配合其对应的有效端口沿触发中断允许,端口电平变化中断需要配合其对应的有效端口电平变化中断允许。
如果是外部中断有效,则外围中断允许也必须为有效,否则不被视为外部中断有效。如图3所示,以外部定时器中断为例,该外部定时器假设为16位。首先需要设置内部的16位定时器工作,并且开始计数;当计数至FFFH时,定时器将从FFFFH到0000H变化,此时定时器模块将送出一个计数溢出标志位,这个标志位进入中断模块就是中断请求信号。中断模块判断是否中断有效允许使能、外围中断允许使能及外部定时中断允许使能,如果是,中断模块将该中断请求转换成有效的中断响应进入中断;否则,不产生中断响应。其他外部中断类型同本实施例的区别是产生中断请求的标志不同,如通信口中断触发或者其他触发方式。各类型的外部中断请求都需要配合各自的中断允许使能、外部中断允许使能和中断有效允许使能才能将其中断请求转换成有效的中断响应,否则,不产生中断响应。例如,对应于捕捉/比较/脉宽调制中断需要配合捕捉/比较/脉宽调制中断允许使能、外部中断允许使能和中断有效允许使能。
如图4是本发明所述的软中断示意图。首先,设置软中断触发条件,即软中断使能;接着设置软中断请求方式。当软中断触发条件成立时,发送预先设置的软中断请求至中断模块。中断模块判断中断有效允许是否使能,及软件中断允许是否使能,如果使能,则产生中断响应,进入中断;否则,不产生中断响应。
对应上述每一个中断,都有一个中断服务程序,该中断服务程序的入口地址称为中断向量。本发明可以设置一个中断向量,也可以设置多个中断向量。当设置一个中断向量时,仅有一种中断向量表可以选择;当选择设置多个中断向量时,有多个中断向量表可以选择,通过中断向量表可以对中断类型进行分类。用户可以根据不同的应用,选择最佳的一种中断实现方式。在本发明中还可以选择设置中断向量数目和中断向量表及类型,通过软件方法实现中断优先级的处理。当中断模块接收到中断请求后,通过判断中断请求的类型来决定中断优先级的处理,在多个中断向量的模式下,软中断的优先级可以设置为最高。
在上述实施例中,当系统进入中断时,将自动保护断点,即自动进入PC压栈,退出中断将恢复现场,即自动进行PC出栈。
依据本发明所述的方法,部分中断响应可以将处于空闲模式的微控制器激活,进入正常工作模式,即所述部分中断可以激活工作在空闲模式的微控制器,即进入停止主时钟低功耗的模式,使得微控制器进入正常工作模式。如图5所示为端口电平变化中断激活空闲模式实施例流程示意图。首先进行预先设置,先设置端口电平变化中断允许使能。然后选择设置是否中断有效允许使能如果激活后需要进入中断子程序,此时设置中断有效允许使能;如果激活后需要返回主程序继续执行,此时设置中断有效允许不使能。系统执行空闲模式指令IDLE,使得程序进入空闲模式,并等待端口变化。当检测出端口变化时,将该端口变化作为一次有效的中断请求,且因为已经预先设置端口电平变化中断允许使能,故满足中断有效的条件,激活空闲模式,进入正常工作模式。进入正常工作模式后,中断系统将判断中断有效允许是否使能,如果使能,程序进入中断子程序,即从相对应的中断入口开始执行程序,如果不使能,程序进入主程序,继续执行IDLE以下的程序。上述可以激活空闲模式的中断请求还可以是端口沿触发中断或者通信口中断等。
权利要求
1.一种中断系统实现方法,其特征在于,包括如下步骤所述中断模块接受中断请求后判断该请求是否同时满足中断允许和中断有效允许,如果是,将中断请求转换成中断响应,系统进入中断,否则,不产生中断响应。
2.如权利要求1所述的方法,其特征在于所述中断请求包括内部中断请求、外部中断请求及软中断请求。
3.如权利要求2所述的方法,其特征在于所述中断请求为外部中断请求时,所述中断允许是指外围中断允许及该外部中断请求对应的中断允许。
4.如权利要求2所述的方法,其特征在于,所述中断请求为内部中断请求时,所述中断允许是指该内部中断请求对应的中断允许。
5.如权利要求2所述的方法,其特征在于,所述中断请求为软中断请求时,所述中断允许是指软件中断允许。
6.如权利要求3所述的方法,其特征在于,所述外部中断请求包括外部定时器中断请求、捕捉/比较/脉宽调制中断请求、通信口中断或模/数转换中断请求。
7.如权利要求3所述的方法,其特征在于,所述内部中断请求包括端口电平变化中断请求、端口沿触发中断请求或内部定时器中断请求。
8.如权利要求1所述的方法,其特征在于,预先设置中断向量数目和中断向量表,依据中断向量表对中断类型进行分类。
9.如权利要求8所述的方法,其特征在于,当所述中断模块接受中断请求后先依据该中断请求的类型判断其实现中断的优先级,并进行中断优先级的处理。
10.如权利要求8所述的方法,其特征在于,在多个中断向量的模式下,软中断优先级最高。
11.如权利要求9所述的方法,其特征在于,所述中断优先级的处理是通过软件方法实现的。
12.如权利要求1所述的方法,其特征在于,利用满足中断有效条件将工作在空闲模式的微控制器激活。
13.如权利要求12所述的方法,其特征在于,系统执行IDLE指令进入空闲模式,当中断模块接受到中断请求时,判断该请求是否同时满足其对应的中断允许,如果是,激活空闲模式,进入正常模式;然后判断是否中断有效允许,如果是,则进入中断子程序,否则返回主程序继续执行。
14.如权利要求1所述的方法,其特征在于,系统进入中断后将自动保护断点,进行PC压栈,退出中断时,将恢复现场,自动进行PC出栈。
全文摘要
本发明的中断系统实现方法,包括如下步骤所述中断模块接受中断请求后判断该请求是否同时满足中断允许和中断有效允许,如果是,将中断请求转换成中断响应,系统进入中断,否则,不产生中断响应。通过本发明所述的方法使中断来源的判断更加清晰,且利用软件方法实现中断优先级的处理,使得编写程序更加简单易懂。部分中断响应可以将处于空闲模式的微控制器激活,进入正常工作模式。
文档编号G06F9/46GK1737766SQ20051002928
公开日2006年2月22日 申请日期2005年8月31日 优先权日2005年8月31日
发明者潘松, 陈光胜, 刘桂蓉 申请人:上海海尔集成电路有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1