您的位置: 网站首页 > 电子与嵌入式 > 单片机原理与应用 > 第6章 中断系统 > 【6.1 概 述】

6.1 概 述

 

中断系统在计算机系统中起着十分重要的作用,一个功能很强的中断系统能大大提高计算机处理外界事件的能力。MCS-51单片机的中断系统是8位单片机中功能较强的一种,可以提供5个中断请求源,具有两个中断优先级,可实现两级中断服务程序嵌套。用户可以用关中断指令(或复位)来屏蔽所有的中断请求,也可以用开中断指令使CPU接收中断申请。每一个中断源可以用软件独立地控制为开中断或关中断状态,每一个中断源的中断优先级别均可用软件设置。建立准确的中断概念和灵活掌握中断技术是本章的重点。

6.1     

中断是现代计算机必须具备的重要功能,也是计算机发展史上的一个重要里程碑。因此,建立准确的中断概念和灵活掌握中断技术是学好本门课程的关键之一。

6-1  中断原理示意图

 

6.1.1  中断的概念

中断是指计算机暂时停止原程序执行转而为外部设备服务(执行中断服务程序),并在服务完后自动返回原程序执行的过程。中断由中断源产生,中断源在需要时可以向CPU提出“中断请求”。“中断请求”通常是一种电信号,CPU一旦对这个电信号进行检测和响应便可自动转入该中断源的中断服务程序执行,并在执行完后自动返回原程序继续执行,而且中断源不同中断服务程序的功能就不同。因此,中断又可以定义为CPU自动执行中断服务程序并在执行完后返回原程序执行的过程。中断原理示意图如图6-1所示。

6.1.2  引进中断技术的优点

上面中断的定义只是从资源共享的意义上引出了中断的概念。正是基于资源共享的特点,使中断技术在计算机中还能实现更多的功能,其中主要有以下几个方面。

1.实现CPU与外部设备的速度配合

由于许多外部设备速度较慢,无法与CPU进行直接的同步数据交换,为此可通过中断方法来实现CPU与外部设备的协调工作。在CPU执行程序过程中,当需要进行数据输入/输出时,先启动外部设备,然后CPU继续执行程序。与此同时,外部设备在为数据输入/输出传送做准备。当准备完成后,外部设备发出中断请求,请求CPU暂停正在执行的程序,转去完成数据的输入/输出传送。传送结束后,CPU再返回继续执行原程序,而外部设备则为下次数据传送做准备。这种以中断方法完成的数据输入/输出操作,在宏观上看似乎是CPU与外部设备在同时工作,因此就有了CPU与外部设备并行工作这种说法。

采用中断技术,不但能实现主机和一台外部设备并行工作,而且还可以实现主机和多台外部设备并行工作。这样不但提高了CPU的利用率,而且也提高了数据的输入/输出效率。

2.可以提高实时数据的处理时效

在实时控制系统中,被控系统的实时参量、越限数据和故障信息都必须被计算机及时采集,以进行处理和分析判断,以便在规定的时间里对系统实施正确调节和控制。因此,计算机对实时数据的处理时效常常是被控系统的生命,是影响产品质量和系统安全的关键。CPU有了中断功能,系统的失常和故障都可以通过中断立刻通知CPU,使系统可以迅速采集实时数据和故障信息,并对系统做实时处理。

3.故障处理

若计算机在运行过程中出现了事先预料不到的情况或故障(如掉电、存储出错、溢出等),可以利用中断系统自行处理,而不必停机。

6.1.3  中断源

引起中断的原因或能发出中断申请的来源称为中断源。通常,中断源有以下几种。

1.外部设备中断源

外部设备主要为微型计算机输入和输出数据,它是最原始和最广泛的中断源。用作中断源时,通常要求它在输入或输出一个数据时自动产生一个“中断请求”信号(TTL高电平或TTL低电平)送到CPU的中断请求输入线,以供CPU检测和响应。例如:打印机打印完一个字符时可以通过打印中断要求CPU为它送下一个打印字符;人们在键盘上按下一个键符时也可通过键盘中断要求CPU从它那里提取输入的键符编码。因此,打印机和键盘都可以用作中断源。

2.控制对象中断源

在计算机用作实时控制时,被控对象常常被用作中断源,用于产生中断请求信号,要求CPU及时采集系统的控制参量、越限参数以及要求发送和接收数据等。例如:电压、电流、温度、压力、流量和流速等超越上限或下限以及开关和继电器的闭合或断开都可以作为中断源来产生中断请求信号,要求CPU通过执行中断服务程序来加以处理。因此,被控对象常常是用作实时控制的计算机的巨大中断源。

3.故障中断源

故障源是产生故障信息的源泉,把它作为中断源是要CPU以中断方式对已发生的故障进行分析处理。计算机故障中断源有内部和外部之分:CPU内部故障中断源引起内部中断,如被零除中断等;CPU外部故障中断源引起外部中断,如掉电中断等。掉电检测电路检测到掉电时就自动产生一个掉电中断请求,CPU检测到后便在大滤波电容维持正常供电的几秒钟内通过执行掉电中断服务程序来保护现场和启用备用电池,以便使电恢复正常后继续执行掉电前的用户程序。

和上述CPU故障中断源类似,被控对象的故障源也可用作故障中断源,以便对被控对象进行应急处理,从而减少系统在发生故障时的损失。

4.定时脉冲中断源

定时脉冲中断源又称为定时器中断源,实际上是一种定时脉冲电路或定时器。定时脉冲中断源用于产生定时器中断,定时器中断有内部和外部之分。内部定时器中断由CPU内部的定时器/计数器溢出(全“1”变全“0”)时自动产生,故又称为内部定时器溢出中断;外部定时器中断通常由外部定时电路的定时脉冲通过CPU的中断请求输入线引起。不论是内部定时器中断还是外部定时器中断都可以使CPU进行计时处理,达到控制时间的目的。

6.1.4  中断嵌套

通常,一个CPU总会有若干中断源,可以接收若干个中断源发出的中断请求。但在同一瞬间,CPU只能响应若干个中断源中的一个中断请求,CPU为了避免在同一瞬间因响应若干个中断源的中断请求而带来的混乱,就必须给每个中断源的中断请求赋予一个特定的中断优先级,以便CPU先响应中断优先级高的中断请求,然后再逐次响应中断优先级次高和次低的中断请求。中断优先级又叫做中断优先权,可以直接反映每个中断源的中断请求被CPU响应的优先程度,是分析中断嵌套的基础。

CPU实现中断嵌套的先决条件是要有屏蔽中断的功能,其次要有能对中断进行控制的指令。CPU的中断嵌套功能可以使它在响应某一中断源中断请求的同时再去响应更高中断优先权的中断请求,而把原中断服务程序暂时搁置,等处理完这个更高中断优先权的中断请求后再来响应原中断请求。

CPU正在处理一个中断源请求时,发生了另一个优先级比它高的中断源请求。如果CPU能够暂停对原来的中断源的处理程序,转而去处理优先级更高的中断源请求,处理完以后,再回到原低级中断处理程序,则这样的过程称为中断嵌套。具有这种功能的中断系统称为多级中断系统。没有中断嵌套功能的则称为单级中断系统。具有两级优先级中断服务程序嵌套的中断过程如图6-2所示。

6-2  中断嵌套示意图

6.1.5  中断系统的功能

中断系统具有以下功能。

1.实现中断并返回

当某一个中断源发出中断请求时,CPU应决定是否响应这个中断请求(当CPU正在执行更重要的工作时,可暂不响应中断)。若响应这个中断请求,则CPU必须在现行的指令执行完后,保护现场和断点,然后转到需要处理的中断源的服务程序入口,执行中断服务程序。当中断处理完后再恢复现场和断点,使CPU返回去继续执行主程序。

2.实现中断嵌套

CPU实现中断嵌套的先决条件是要有屏蔽中断的功能,其次要有能对中断进行控制的指令。CPU的中断嵌套功能可以使它在响应某一中断源中断请求的同时再去响应更高中断优先权的中断请求,而把原中断服务程序暂时搁置,等处理完这个更高中断优先权的中断请求后再来响应原来的中断请求。例如:某单片机电台监测系统正在响应打印中断时巧遇敌电台开始发报,若监测系统不能暂时终止打印机的打印中断而去嵌套响应捕捉敌台信号的中断,那就会贻误战机,造成无法弥补的损失。

3.进行中断优先级排队

一个CPU通常可以和多个中断源相连,故总会发生在同一时间有两个或两个以上的同优先级中断源同时请求中断的情况,这就要求CPU能按轻重缓急给每个中断源的中断请求赋予一个中断自然优先级。这样,当多个同级中断源同时向CPU请求中断时,CPU就可以通过中断自然优先级排队电路率先响应中断自然优先级高的中断请求而把中断自然优先级低的中断请求暂时搁置起来,等处理完自然优先级高的中断请求后再来响应自然优先级低的中断。MCS-51内部集成的中断自然优先级顺序查询逻辑电路可以对它的5个同级中断源进行优先级排队。