`
flash7783
  • 浏览: 308596 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

中断方式与轮询方式

阅读更多

中断方式与轮询方式

中断的基本概念

程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为相应的服务程序去处理,这个过程称为程序中断。

二、80x86微处理器的中断 80x86微处理器的中断类型一般分为2类,即由于执行某些指令引起的软中断和由处理器以外其他控制电路发出中断请求信号引起的硬中断。 CPU要从主程序转入中断服务程序,必须知道该中断服务程序的入口地址,即中断向量。80x86CPUPC机共有256个中断向量。

中断的一般过程:

主程序只是在设备ABC数据准备就绪时,才去处理AB C,进行数据交换。在速度较慢的外围设备准备自己的数据时,CPU照常执行自己的主程序 。在这个意义上说,CPU和外围设备的一些操作是并行地进行的,因而同串行进行的程序查询方式相比,计算机系统的效率是大大提高了。如下图:


实际的中断过程还要复杂一些,下图示出了中断处理过程的详细流程图.当CPU执行完条现行指令时,如果外设向CPU发出中断请求、那么CPU在满足响应条件的情况下,将发出中断响应信号,与此同时关闭中断(“中断屏蔽触发器置“1”),表示CPU不再受理另外个设备的中断。这时、CPU将寻找中断请求源是哪个设备。并保存CPU自己的程序计数器(Pc)的内容.然后,它将转移到处理该中断源的中断服务程序.CPU在保存现场信息,设备(如文换数据)以后.将恢复现场信息.在这些动作完成以后,开放中断(“中断屏蔽触发器置‘o”),并返网到原来被中断的主程序的下一条指令。

 

 (1) 尽管外界中断请求是随机的,但CPU只有在当前一条指令执行完毕后,即转入公操作时才受理设备的中断请求,这样才不致于使当前指令的执行受到干扰。公操作是指一条指令执行结束后CPU所进行的操作,如中断处理、直接内存传送、取下条指令等 。外界中断请求信号通常存放在接口中的中断源锁存器里,并通过中断请求线连至CPU,每当一条指令执行到末尾,CPU便检查中断请求信号。若中断请求信号为“1”,则CPU转入中断周期,受理外界中断。(2) 为了在中断服务程序执行完毕以后正确地返回到原来主程序被中断的断点(PC内容)而继续执行主程序,必须把程序计数器PC的内容,以及当前指令执行结束后CPU的状态(包括寄存器的内容和一些状态标志位)都保存到堆栈中去。这些操作叫做保存现场。(3) CPU响应中断后,正要去执行中断服务程序时,可能有另一个新的中断源向它发出中断请求。为了不致造成混乱,在CPU的中断管理部件中必须有一个中断屏蔽触发器,它可以在程序的控制下置“1”(设置屏蔽),或置“0”(取掉屏蔽)。只有在中断屏蔽标志为“0”时,CPU才可以受理中断。当一条指令执行完毕CPU接受中断请求并作出响应时,它一方面发出中断响应信号INTA,另一方面把中断屏蔽标志置“1”,即关闭中断。这样,CPU不能再受理另外的新的中断源发来的中断请求。只有在CPU把中断服务程序执行完毕以后,它才重新使中断屏蔽标志置“0”,即开放中断,并返回主程序。因此,中断服务程序的最后必须有两条指令,即开中断指令和返主指令,同时在硬件上要保证返主指令执行以后才受理新的中断请求。(4) 中断处理过程是由硬件和软件结合来完成的。如在前图中,中断周期由硬件实现,而中断服务程序由机器指令序列实现。后者除执行保存现场、恢复现场、开放中断并返回主程序任务外,对要求中断的设备进行服务,使其同CPU交换一个字的数据,或作其他服务。

 

轮询方式的基本概念

轮询(Polling)IO方式或程序控制IO方式,是让CPU以一定的周期按次序查询每一个外设,看它是否有数据输入或输出的要求,若有,则进行相应的输入/输出服务;若无,或IO处理完毕柏,CPU就接着查询下一个外设。

所需硬件:外设接口提供状态端口、数据端口

软件机制:应用程序必须定时查询各个接口的状态端口,判断是否需要输入、输出数据,如果需要,则通过数据端口进行数据操作。

特点:CPU通过执行指令主动对外部设备进行查询,外部设备处于被动地位

上图为一般过程。

轮询方式与中断方式的比较 速度

程序控制方式:

硬件的速度指标:由于程序控制方式完全采用软件的方式对外设接口进行控制,所以它的硬件操作只是普通的端口读写,并无特别之处,其速度指标由总线传输速度、端口的响应速度共同决定。

对于这种外设控制方式,速度指标关键在于软件。

中断处理方式:

中断处理方式本身所作的原子操作解释和程序控制方式是一致的。

只不过因为加入了中断请求和响应机制,对状态端口的读取变成了在中断响应过程中对中断号的读取,对状态端口的判断变成了对中断入口地址的确定。

从本质上来说,中断处理方式和程序控制方式本身的速度指标一致,没有大的差别。

可靠性

程序控制方式:

由于硬件不支持中断方式,因此操作系统把CPU控制权交给应用程序后,只要应用程序不交还CPU控制权,操作系统就始终不能恢复对CPU的控制(无定时中断)。应用程序与操作系统都是软件模块,操作系统属于核心模块,它们之间存在交接CPU控制权的关系。正是由于这样的关系,一旦使用对外设的程序控制方式时,应用程序出现死锁,则操作系统永远无法恢复对系统的控制。应用程序的故障通过外设控制方式波及到作为核心模块的操作系统,因此,根据关联可靠性指标的计算可知,程序控制方式的关联可靠性指标很低。

中断处理方式:

由于提供定时中断,操作系统可以在应用程序当前时间片结束后通过中断服务程序重新获得对CPU的控制权。应用程序的故障不会波及到操作系统,因此,中断处理方式的关联可靠性指标高。

可扩展性

程序控制方式:

由于所有应用程序中都包含对端口的操作,一旦硬件接口的设计发生变化,则所有应用程序都必须进行修改,这会使修改费用升高很多倍。因此,程序控制方式会使相关硬件模块的局部修改指标相对较低。

中断处理方式:

应用程序不直接操作端口,对端口的操作是由中断服务程序来完成的。如果某个硬件接口的设计发生了变化,只需要修改它相关的中断服务程序即可。因此,中断处理方式使得相关硬件模块的局部修改指标较高。

生命期

程序控制方式CPU查询方式)在早期的计算机系统中能够满足应用需求;但是随着外部设备种类的增多、速度差异的加大,这种方式逐渐成为系统性能提高的障碍。它的生命期只限于早期计算机阶段,因为当时外部设备少,且都是低速设备,到8位机出现以后,这种外设控制方式(体系结构)被淘汰。

中断处理方式(外设请求方式)能够协调CPU与外设间的速度差异,能够协调各种外设间的速度差异,提高系统的工作效率(速度指标)。使应用程序与外设操作基本脱离开来,降低了程序的设备相关性(关联可靠性指标、局部修改指标)。虽然目前某些快速设备相互间的通信没有通过CPU,也没有使用中断处理方式,但是对于慢速设备、设备故障的处理来说,中断处理方式仍然是最有效的。无论将来计算机系统中的元件怎样变化,只要存在慢速设备与快速CPU之间的矛盾,使用中断处理方式都是适合的。即便不使用中断服务程序,中断的概念也会保持很久。在短时期内,计算机系统还无法在所有领域离开人工交互操作,人的操作速度一定比机器的处理速度慢,因此慢速设备将仍然保持存在(但这不是慢速设备存在的唯一原因)。正因为存在这样的需求,中断处理方式具有较长的生命期。

分享到:
评论

相关推荐

    单片机中断方式与轮询方式 单片机中断方式与轮询方式

    单片机中断方式与轮询方式 单片机中断方式与轮询方式是两种常见的输入/输出控制方式,它们在单片机系统中扮演着重要的角色。 一、单片机中断方式 单片机中断方式是指 CPU 在正常运行程序的过程中,由于预选安排或...

    单片机中断与CPU的轮询有什么区别

    那么,什么是单片机中断,它与CPU的轮询有什么区别?在本文中,单片机开发工程师将对单片机中断和CPU轮询做个简单的介绍。 中断: 中断是一种硬件机制,在这种机制中,设备会通知CPU它需要引起注意。中断可以...

    服务端模式(中断)仅5500调试完好_w5500中断_STM32F103_w5500_

    在提供的"YIXIN_W5500模块-服务端模式-STM32例程(中断)"文件中,可能包含了STM32与W5500交互的示例代码,包括初始化、中断设置、数据收发等关键函数。通过研究这个例程,你可以更好地理解如何在实际项目中应用这些...

    msp430 仿真 按键 中断 轮询 数码管

    在本文中,我们将深入探讨基于MSP430微控制器的系统设计,主要涉及按键处理、中断机制、轮询方式以及数码管显示等关键知识点。MSP430是由德州仪器(TI)开发的一款超低功耗的16位微控制器,广泛应用在各种嵌入式系统...

    stm32基于轮询方式的串口收发程序

    - 由于轮询方式不依赖中断,可能需要在发送或接收过程中加入适当的延时,确保数据稳定传输。这通常通过`HAL_Delay()`函数或者自定义的延迟函数实现。 5. **代码示例**: - 初始化USART配置: ```c void USART_...

    mpu6050中断方式

    这种方式相较于连续轮询数据,可以提高系统的实时性和降低功耗。 首先,我们需要配置MPU6050的中断设置。这通常包括选择中断源(例如,数据-ready中断),设定中断使能,以及定义中断触发条件。这可以通过I2C通信...

    使用定时中断方式与ds18b20通信

    "使用定时中断方式与ds18b20通信"这个主题聚焦于如何优化与DS18B20温度传感器的通信过程。DS18B20是一款单总线(1-Wire)数字温度传感器,广泛应用于各种环境监测和控制应用中。由于其单线通信特性,数据传输速率较...

    轮询-中断-DMA-通道1

    总结来说,从轮询到中断、DMA再到通道,每种方式都在尝试解决CPU与I/O设备速度差异带来的问题,提高系统整体性能。在现代计算机系统中,中断和DMA方式尤其常见,通道方式则在更大型、高性能的系统中应用。选择合适的...

    矩阵键盘中断方式电路图

    从基础的角度来看,矩阵键盘和中断方式电路的设计与应用是单片机和嵌入式系统设计中非常重要的基础知识。了解这些知识有助于设计更加高效和用户友好的人机交互界面。在学习单片机编程和电路设计时,掌握矩阵键盘的...

    基于Stm32的矩阵键盘驱动(中断方式)

    矩阵键盘驱动有多种扫描方式,如轮询扫描、中断扫描、DMA扫描等,本程序使用中断扫描方式。 中断扫描方式 在中断扫描方式中,微控制器的NVIC(Nested Vectored Interrupt Controller)模块负责管理中断请求。当...

    中断方式的键盘驱动中断模式比较节省资源

    相比轮询(polling)方式,中断模式更节省CPU资源,因为它仅在键盘事件发生时才唤醒CPU处理,而不是持续检查键盘状态。 中断驱动的键盘工作原理是:当用户按下键盘上的键时,相应的外部中断引脚(例如EINT8到EINT19...

    DAY16. 轮询与中断作业

    轮询与中断作业"旨在让学习者了解两种I/O处理方式的差异,并通过实际操作加深理解。轮询适合简单场景,而中断适用于需要高效响应的场合。在Linux系统中,理解这两种机制对开发设备驱动和进行系统级编程至关重要。

    中断方式的AD采集系统.zip

    中断方式的AD采集系统是计算机硬件与软件交互的重要机制,特别是在实时数据处理和控制系统中,如北交大汇编实验中所涉及的。这个实验旨在让学生深入理解中断工作原理及其在模拟数字转换(AD转换)过程中的应用。下面...

    cc1101中断方式接收

    首先,中断方式接收是CC1101的一种工作模式,它允许器件在接收到特定事件时,如数据包接收完成,通过中断信号通知微控制器进行后续处理,而不是持续占用CPU资源进行轮询。这种方式可以显著提高系统的效率,因为微...

    查询方式与中断方式.pdf

    中断方式则更为高效,它允许微控制器在不忙于轮询通信状态时执行其他任务。在发送数据时,微控制器启动发送过程,然后可以执行其他操作。当数据发送完成时,串行接口会产生一个中断请求,CPU响应中断并执行中断服务...

    STM32+NRF24L01(中断接收方式)

    在中断接收方式下,NRF24L01会通过中断信号通知STM32有新的数据到来,而不是持续轮询检查是否有数据,这样可以显著降低CPU的占用率,提高系统的实时性和能效。以下是关于这个主题的详细知识: 1. **STM32微控制器**...

    基于STM32的矩阵键盘驱动(中断方式)

    相较于轮询方式,中断驱动允许处理器在等待按键事件时执行其他任务,提高了系统的响应性和效率。以下是实现步骤: 1. **配置GPIO**:首先,需要将行线和列线配置为GPIO输入/输出模式。根据STM32的型号和具体引脚...

    串口驱动轮询方式程序实现

    在串口驱动程序中,轮询方式指的是程序不断检查串口状态,例如数据是否准备好发送或接收,而不是等待中断事件的发生。这种方式的优点是实现简单,不需要设置复杂的中断处理机制;缺点是效率较低,因为程序需要不断地...

    fwq.zip_轮询

    描述中提到的"RL tcpnet程序使用轮询方式,中断方式需要写五功能"进一步揭示了这是关于一个名为RL的TCP网络程序,它采用了轮询方法来实现某些功能,而中断方式则需要额外实现五个功能。 首先,让我们深入了解轮询。...

    stm32f4 SysTick 精确延时 非中断方式

    不过在这个案例中,我们关注的是非中断方式的延时实现,这意味着我们将不依赖于SysTick的中断功能,而是通过轮询方式检查计数器状态来达到延时的目的。 首先,我们需要配置SysTick定时器。这包括设置时钟源、计数...

Global site tag (gtag.js) - Google Analytics