0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MCU如何處理中斷?mcu中斷處理過程

科技觀察員 ? 來源:英銳恩 ? 作者:英銳恩 ? 2023-07-07 12:33 ? 次閱讀

在本文中,將討論定時(shí)器中斷的概念,事實(shí)上中斷是有效使用MCU的最基本方法之一?,F(xiàn)在用一個(gè)類比來說明事情如何在沒有中斷的情況下工作:如果你正在煮雞蛋,并且想在10分鐘內(nèi)將它們從爐子上取下來,那么一種方法是不時(shí)檢查時(shí)鐘以確??纯磿r(shí)間是否到了。在嵌入式系統(tǒng)中也是如此:如果你想在執(zhí)行某些操作之前等待特定狀態(tài)發(fā)生變化,那么一種方法是定期檢查狀態(tài)?;蛘?,如果你的程序正在等待GPIO輸入電平;要在執(zhí)行某個(gè)步驟之前從0更改為1,那么一種方法是定期檢查GPIO值。這種定期檢查的方法稱為輪詢。

雖然輪詢是一種檢查狀態(tài)變化的簡單方法,但它是有代價(jià)的。如果檢查間隔太長,發(fā)生和檢測之間可能會(huì)有很長的滯后——如果在檢查之前狀態(tài)又變回,你可能會(huì)完全錯(cuò)過更改。更短的間隔將獲得更快、更可靠的檢測,但也會(huì)消耗更多的處理時(shí)間和功率,因?yàn)楦嗟臋z查將返回否定。

另一種方法是利用中斷。使用這種方法,狀態(tài)變化會(huì)產(chǎn)生一個(gè)中斷信號(hào),使CPU暫停其當(dāng)前操作(并保存其當(dāng)前狀態(tài)),然后執(zhí)行與中斷相關(guān)的處理,然后恢復(fù)其先前的狀態(tài)并從中斷處恢復(fù)。(見圖1)

fig1-interrupts-vs-polling-en.jpg

讓我們回到煮雞蛋的例子。我們不會(huì)定期檢查,而是將計(jì)時(shí)器設(shè)置為10分鐘,然后做其他事情直到計(jì)時(shí)器響起,將我們的注意力轉(zhuǎn)回到雞蛋上。在這種情況下,定時(shí)器作為中斷工作,“把雞蛋從鍋里拿出來”是相關(guān)的處理。

MCU如何處理中斷?

中斷可以來自MCU內(nèi)部和MCU外部設(shè)備。例如,來自外部開關(guān)或傳感器的中斷有時(shí)稱為“附加中斷”,因?yàn)樗怯筛郊拥組CU上的IRQ(中斷請求)引腳的外部設(shè)備產(chǎn)生的。當(dāng)相關(guān)狀態(tài)發(fā)生變化時(shí),外部設(shè)備向該引腳發(fā)送中斷請求信號(hào),進(jìn)而產(chǎn)生通知給MCU的中斷控制器(在RX63N上,該控制器稱為“ICUb”)。

相比之下,來自片上外設(shè)(內(nèi)部定時(shí)器、GPIO線、UART等)的中斷稱為“外設(shè)中斷”。這些中斷信號(hào)直接通知中斷控制器,無需引腳連接。

中斷控制器的工作就是將這些中斷請求以協(xié)調(diào)的方式傳遞給CPU。當(dāng)發(fā)生多個(gè)中斷時(shí),控制器必須根據(jù)它們的相對優(yōu)先級(jí)以適當(dāng)?shù)捻樞驅(qū)⑺鼈儼l(fā)送到CPU。并且控制器還必須知道哪些中斷當(dāng)前被屏蔽(禁用),以便它可以完全忽略這些中斷。

當(dāng)CPU收到控制器的中斷請求時(shí),它停止執(zhí)行它正在處理的程序,并自動(dòng)保存所有相關(guān)的工作信息,以便以后可以從中斷的地方繼續(xù)執(zhí)行。然后加載并執(zhí)行與接收到的中斷請求對應(yīng)的中斷處理程序。完成這個(gè)處理后,CPU恢復(fù)保存的信息并從它停止的地方恢復(fù)。(見圖2)注意保存和恢復(fù)是由CPU自動(dòng)處理的;程序員不需要關(guān)心這些細(xì)節(jié)。

fig2-interrupt-processing-flow-en.jpg

考慮通過UART進(jìn)行串行通信的情況。定期監(jiān)視UART以了解新字符的到來是低效的。因此,在大多數(shù)情況下,系統(tǒng)設(shè)計(jì)為當(dāng)新字符到達(dá)時(shí)UART本身會(huì)產(chǎn)生中斷,提醒CPU執(zhí)行適當(dāng)?shù)奶幚怼?/p>

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17149

    瀏覽量

    351225
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    898

    瀏覽量

    41505
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    linux中斷處理機(jī)制 中斷處理過程

    在聊中斷機(jī)制之前,我想先和大家聊一聊中斷機(jī)制出現(xiàn)的前因后果。最一開始計(jì)算機(jī)操作系統(tǒng)的設(shè)計(jì)是能夠一次性的執(zhí)行所有的計(jì)算任務(wù)的,這被稱為順序執(zhí)行,也是批處理操作系統(tǒng)(Batch system)。
    的頭像 發(fā)表于 08-07 09:18 ?1259次閱讀
    linux<b class='flag-5'>中斷</b><b class='flag-5'>處理</b>機(jī)制 <b class='flag-5'>中斷</b><b class='flag-5'>處理過程</b>

    單片機(jī)中斷的作用是什么?單片機(jī)中斷處理過程是怎樣運(yùn)行的?

    單片機(jī)中斷的作用是什么?單片機(jī)中斷處理過程是怎樣運(yùn)行的?中斷優(yōu)先級(jí)是什么意思?單片機(jī)中斷響應(yīng)條件有哪些?
    發(fā)表于 07-08 06:21

    51單片機(jī)中斷處理過程有幾個(gè)

    51單片機(jī)中斷處理過程有幾個(gè),中斷是單片機(jī)的一個(gè)重要功能,本文我們就對51單片機(jī)的中斷進(jìn)行介紹。所謂“中斷”,通俗一點(diǎn)講,就是單片機(jī)停止正在
    發(fā)表于 07-14 07:33

    單片機(jī)中斷處理過程是怎樣進(jìn)行的?

    單片機(jī)中斷系統(tǒng)的優(yōu)點(diǎn)是什么?單片機(jī)中斷處理過程是怎樣進(jìn)行的?
    發(fā)表于 09-23 06:57

    單片機(jī)中斷的作用是什么?處理過程是怎樣的?

    單片機(jī)中斷的作用是什么?處理過程是怎樣的?
    發(fā)表于 11-01 07:07

    ARM中斷向量表異常處理過程解析

    中斷向量表|異常處理過程中斷隨機(jī)產(chǎn)生之后,怎么跳轉(zhuǎn)到中斷處理程序中去(中斷向量表)SWI軟中斷
    發(fā)表于 05-05 10:16

    單片機(jī)的中斷系統(tǒng)的概念控制系統(tǒng)和處理過程及編程及應(yīng)用資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)的原理與應(yīng)用單片機(jī)的中斷系統(tǒng)詳細(xì)資料介紹內(nèi)容包括了:1 中斷的概念2 中斷控制系統(tǒng)3 中斷處理過程4
    發(fā)表于 10-24 11:43 ?6次下載
    單片機(jī)的<b class='flag-5'>中斷</b>系統(tǒng)的概念控制系統(tǒng)和<b class='flag-5'>處理過程</b>及編程及應(yīng)用資料概述

    淺析單片機(jī)中斷處理過程

    中斷處理過程可分為中斷響應(yīng)、中斷處理中斷返回三個(gè)階段。
    的頭像 發(fā)表于 11-06 14:31 ?1.8w次閱讀
    淺析單片機(jī)<b class='flag-5'>中斷</b><b class='flag-5'>處理過程</b>

    linux驅(qū)動(dòng)之中斷處理過程C程序部分

    linux內(nèi)核將所有的中斷統(tǒng)一編號(hào),使用一個(gè)irq_desc[NR_IRQS]的結(jié)構(gòu)體數(shù)組來描述這些中斷:每個(gè)數(shù)組項(xiàng)對應(yīng)著一個(gè)中斷源(可能是一個(gè)中斷,也可能是一組
    發(fā)表于 05-07 11:13 ?1036次閱讀

    淺談嵌入式MCU中斷處理

    眾所周知,一方面,MCU在嵌入式系統(tǒng)中的廣泛使用的一個(gè)重要原因就是其相對于MPU和通用CPU的時(shí)效性優(yōu)勢。而低延遲的外設(shè)中斷中斷嵌套正是MCU實(shí)時(shí)性的最大保障。
    發(fā)表于 05-18 10:23 ?9127次閱讀
    淺談嵌入式<b class='flag-5'>MCU</b>的<b class='flag-5'>中斷</b><b class='flag-5'>處理</b>

    淺談中斷與單片機(jī)中斷處理過程

    事件的觸發(fā)或程序的預(yù)先安排引起CPU暫時(shí)中斷當(dāng)前正在運(yùn)行的程序,而轉(zhuǎn)去執(zhí)行中斷服務(wù)子程序,待中斷服務(wù)子程序執(zhí)行完畢后,CPU繼續(xù)執(zhí)行原來的程序,這一過程稱為
    發(fā)表于 11-22 14:21 ?9次下載
    淺談<b class='flag-5'>中斷</b>與單片機(jī)<b class='flag-5'>中斷</b><b class='flag-5'>處理</b>的<b class='flag-5'>過程</b>

    單片機(jī)中斷處理過程包括哪些環(huán)節(jié)

    中斷是指CPU在執(zhí)行當(dāng)前程序時(shí)系統(tǒng)出現(xiàn)了某種狀況,使得CPU必須停止當(dāng)前程序,而去執(zhí)行另一段程序來處理的出現(xiàn)的緊急事務(wù),處理結(jié)束后CPU再返回到原先暫停的程序繼續(xù)執(zhí)行,這個(gè)過程就稱為
    發(fā)表于 10-09 14:32 ?2071次閱讀
    單片機(jī)<b class='flag-5'>中斷</b><b class='flag-5'>處理過程</b>包括哪些環(huán)節(jié)

    單片機(jī)中斷處理過程分為幾個(gè)階段

    中斷是指CPU在執(zhí)行當(dāng)前程序時(shí)系統(tǒng)出現(xiàn)了某種狀況,使得CPU必須停止當(dāng)前程序,而去執(zhí)行另一段程序來處理的出現(xiàn)的緊急事務(wù),處理結(jié)束后CPU再返回到原先暫停的程序繼續(xù)執(zhí)行,這個(gè)過程就稱為
    發(fā)表于 10-10 14:29 ?1377次閱讀
    單片機(jī)<b class='flag-5'>中斷</b><b class='flag-5'>處理過程</b>分為幾個(gè)階段

    MCU何處理中斷中斷處理過程包括哪些步驟?

    當(dāng)MCU接收到一個(gè)中斷信號(hào)時(shí),它會(huì)暫停當(dāng)前正在執(zhí)行的任務(wù),保存現(xiàn)場,然后跳轉(zhuǎn)到預(yù)設(shè)的中斷處理程序(Interrupt Service Routine, ISR)去
    的頭像 發(fā)表于 11-08 12:57 ?1454次閱讀

    MCU中斷處理過程MCU何處理中斷?

    當(dāng)MCU接收到一個(gè)中斷信號(hào)時(shí),它會(huì)暫停當(dāng)前正在執(zhí)行的任務(wù),保存現(xiàn)場,然后跳轉(zhuǎn)到預(yù)設(shè)的中斷處理程序(Interrupt Service Routine, ISR)去
    的頭像 發(fā)表于 12-13 11:48 ?1656次閱讀