0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MCU如何处理中断?mcu中断处理过程

科技观察员 来源:英锐恩 作者:英锐恩 2023-07-07 12:33 次阅读

在本文中,将讨论定时器中断的概念,事实上中断是有效使用MCU的最基本方法之一。现在用一个类比来说明事情如何在没有中断的情况下工作:如果你正在煮鸡蛋,并且想在10分钟内将它们从炉子上取下来,那么一种方法是不时检查时钟以确保看看时间是否到了。在嵌入式系统中也是如此:如果你想在执行某些操作之前等待特定状态发生变化,那么一种方法是定期检查状态。或者,如果你的程序正在等待GPIO输入电平;要在执行某个步骤之前从0更改为1,那么一种方法是定期检查GPIO值。这种定期检查的方法称为轮询。

虽然轮询是一种检查状态变化的简单方法,但它是有代价的。如果检查间隔太长,发生和检测之间可能会有很长的滞后——如果在检查之前状态又变回,你可能会完全错过更改。更短的间隔将获得更快、更可靠的检测,但也会消耗更多的处理时间和功率,因为更多的检查将返回否定。

另一种方法是利用中断。使用这种方法,状态变化会产生一个中断信号,使CPU暂停其当前操作(并保存其当前状态),然后执行与中断相关的处理,然后恢复其先前的状态并从中断处恢复。(见图1)

fig1-interrupts-vs-polling-en.jpg

让我们回到煮鸡蛋的例子。我们不会定期检查,而是将计时器设置为10分钟,然后做其他事情直到计时器响起,将我们的注意力转回到鸡蛋上。在这种情况下,定时器作为中断工作,“把鸡蛋从锅里拿出来”是相关的处理。

MCU如何处理中断?

中断可以来自MCU内部和MCU外部设备。例如,来自外部开关或传感器的中断有时称为“附加中断”,因为它是由附加到MCU上的IRQ(中断请求)引脚的外部设备产生的。当相关状态发生变化时,外部设备向该引脚发送中断请求信号,进而产生通知给MCU的中断控制器(在RX63N上,该控制器称为“ICUb”)。

相比之下,来自片上外设(内部定时器、GPIO线、UART等)的中断称为“外设中断”。这些中断信号直接通知中断控制器,无需引脚连接。

中断控制器的工作就是将这些中断请求以协调的方式传递给CPU。当发生多个中断时,控制器必须根据它们的相对优先级以适当的顺序将它们发送到CPU。并且控制器还必须知道哪些中断当前被屏蔽(禁用),以便它可以完全忽略这些中断。

当CPU收到控制器的中断请求时,它停止执行它正在处理的程序,并自动保存所有相关的工作信息,以便以后可以从中断的地方继续执行。然后加载并执行与接收到的中断请求对应的中断处理程序。完成这个处理后,CPU恢复保存的信息并从它停止的地方恢复。(见图2)注意保存和恢复是由CPU自动处理的;程序员不需要关心这些细节。

fig2-interrupt-processing-flow-en.jpg

考虑通过UART进行串行通信的情况。定期监视UART以了解新字符的到来是低效的。因此,在大多数情况下,系统设计为当新字符到达时UART本身会产生中断,提醒CPU执行适当的处理。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16017

    浏览量

    343631
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41023
收藏 人收藏

    评论

    相关推荐

    at91sam9261中断处理

    AT91SAM9261的先进中断控制器是一个8优先级,可独立屏蔽中断的向量中断控制器,可处理32个中断源。本文讲述at91sam9261
    发表于 12-28 17:01 2958次阅读
    at91sam9261<b class='flag-5'>中断</b><b class='flag-5'>处理</b>

    linux中断处理机制 中断处理过程

    在聊中断机制之前,我想先和大家聊一聊中断机制出现的前因后果。最一开始计算机操作系统的设计是能够一次性的执行所有的计算任务的,这被称为顺序执行,也是批处理操作系统(Batch system)。
    的头像 发表于 08-07 09:18 894次阅读
    linux<b class='flag-5'>中断</b><b class='flag-5'>处理</b>机制 <b class='flag-5'>中断</b><b class='flag-5'>处理过程</b>

    单片机中断的作用是什么?单片机中断处理过程是怎样运行的?

    单片机中断的作用是什么?单片机中断处理过程是怎样运行的?中断优先级是什么意思?单片机中断响应条件有哪些?
    发表于 07-08 06:21

    51单片机中断处理过程有几个

    51单片机中断处理过程有几个,中断是单片机的一个重要功能,本文我们就对51单片机的中断进行介绍。所谓“中断”,通俗一点讲,就是单片机停止正在
    发表于 07-14 07:33

    51单片机中断处理过程有几个

    51单片机中断处理过程有几个,文章目录中断定义预备知识正文中断对于刚上大一的小伙伴,应该和我一样第一次见到“中断”这个词。估计也困扰了许多小
    发表于 07-22 09:32

    单片机中断处理过程是怎样进行的?

    单片机中断系统的优点是什么?单片机中断处理过程是怎样进行的?
    发表于 09-23 06:57

    单片机中断的作用是什么?处理过程是怎样的?

    单片机中断的作用是什么?处理过程是怎样的?
    发表于 11-01 07:07

    ARM中断向量表异常处理过程解析

    中断向量表|异常处理过程中断随机产生之后,怎么跳转到中断处理程序中去(中断向量表)SWI软中断
    发表于 05-05 10:16

    单片机的中断系统的概念控制系统和处理过程及编程及应用资料概述

    本文档的主要内容详细介绍的是单片机的原理与应用单片机的中断系统详细资料介绍内容包括了:1 中断的概念2 中断控制系统3 中断处理过程4
    发表于 10-24 11:43 6次下载
    单片机的<b class='flag-5'>中断</b>系统的概念控制系统和<b class='flag-5'>处理过程</b>及编程及应用资料概述

    浅析单片机中断处理过程

    中断处理过程可分为中断响应、中断处理中断返回三个阶段。
    的头像 发表于 11-06 14:31 1.7w次阅读
    浅析单片机<b class='flag-5'>中断</b><b class='flag-5'>处理过程</b>

    linux驱动之中断处理过程C程序部分

    linux内核将所有的中断统一编号,使用一个irq_desc[NR_IRQS]的结构体数组来描述这些中断:每个数组项对应着一个中断源(可能是一个中断,也可能是一组
    发表于 05-07 11:13 898次阅读

    浅谈嵌入式MCU中断处理

    众所周知,一方面,MCU在嵌入式系统中的广泛使用的一个重要原因就是其相对于MPU和通用CPU的时效性优势。而低延迟的外设中断中断嵌套正是MCU实时性的最大保障。
    发表于 05-18 10:23 8602次阅读
    浅谈嵌入式<b class='flag-5'>MCU</b>的<b class='flag-5'>中断</b><b class='flag-5'>处理</b>

    浅谈中断与单片机中断处理过程

    事件的触发或程序的预先安排引起CPU暂时中断当前正在运行的程序,而转去执行中断服务子程序,待中断服务子程序执行完毕后,CPU继续执行原来的程序,这一过程称为
    发表于 11-22 14:21 9次下载
    浅谈<b class='flag-5'>中断</b>与单片机<b class='flag-5'>中断</b><b class='flag-5'>处理</b>的<b class='flag-5'>过程</b>

    MCU何处理中断中断处理过程包括哪些步骤?

    MCU接收到一个中断信号时,它会暂停当前正在执行的任务,保存现场,然后跳转到预设的中断处理程序(Interrupt Service Routine, ISR)去
    的头像 发表于 11-08 12:57 645次阅读

    MCU中断处理过程MCU何处理中断

    MCU接收到一个中断信号时,它会暂停当前正在执行的任务,保存现场,然后跳转到预设的中断处理程序(Interrupt Service Routine, ISR)去
    的头像 发表于 12-13 11:48 680次阅读