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

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

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

CKS32F107xx系列MCU的中斷和事件

中科芯MCU ? 來(lái)源:中科芯MCU ? 2024-07-22 09:29 ? 次閱讀

本章節(jié)首先將以MCU開(kāi)發(fā)人員常接觸到的“中斷”、“事件”和“中斷事件”三個(gè)名詞的概念展開(kāi),然后去闡述彼此的主要區(qū)別,最后借助MCU的GPIO外部中斷/事件控制器(EXTI)的傳輸路徑來(lái)加深對(duì)上述概念的理解。

概念簡(jiǎn)介

中斷

為了具化下述概念,特引用MCU運(yùn)行過(guò)程中外設(shè)模塊的觸發(fā)和反饋來(lái)解釋說(shuō)明。

MCU執(zhí)行程序時(shí),由于發(fā)生了某種特定的事件(外部或內(nèi)部),引起MCU暫時(shí)中斷正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行與該事件相關(guān)的中斷服務(wù)程序,該事件處理完后又返回被中斷的程序繼續(xù)執(zhí)行,這一過(guò)程稱之為中斷或中斷響應(yīng)。

事件

事件是指CKS32F107xx系統(tǒng)中發(fā)生的一些特定的狀態(tài)變化,譬如:外部輸入電平變化、定時(shí)器溢出、FIFO非空、串口接收/發(fā)送數(shù)據(jù)、AD轉(zhuǎn)換完成、外設(shè)使能、初始化等。而事件與中斷事件是包含關(guān)系,即事件可分為中斷事件或非中斷事件。比如AD轉(zhuǎn)換并不會(huì)導(dǎo)致中斷發(fā)生,因而歸類為非中斷事件,但AD轉(zhuǎn)換結(jié)束就是一個(gè)中斷事件。

中斷事件

中斷事件,顧名思義是指能導(dǎo)致中斷發(fā)生的事件。值得注意的是中斷事件最終是否導(dǎo)致后續(xù)中斷的正常觸發(fā),還需要確保是否開(kāi)啟了該中斷事件的中斷使能。

中斷與事件的主要區(qū)別

(1)中斷與中斷事件屬于前后關(guān)聯(lián)的因果關(guān)系,二者在時(shí)序和行為上不一樣,即中斷事件是中斷的觸發(fā)源;

(2)事件與中斷事件為包含關(guān)系;

(3)中斷有可能被更高優(yōu)先級(jí)的中斷屏蔽,但事件不會(huì);

(4)中斷一定要有中斷服務(wù)函數(shù),但是事件沒(méi)有;

(5)中斷一定要MCU的介入,但事件執(zhí)行操作,可以不需要MCU干預(yù);

(6)中斷是軟件級(jí)的操作,而事件是硬件級(jí)。

外部中斷/事件控制器(EXTI)

對(duì)于互聯(lián)型產(chǎn)品CKS32F107xx系列的EXTI,它支持20個(gè)軟件的事件/中斷請(qǐng)求,且每個(gè)中斷/事件都有獨(dú)立的觸發(fā)和屏蔽,每個(gè)中斷線都有專用的狀態(tài)位。下圖為GPIO的EXTI的框圖,同時(shí)也是外部中斷線或外部事件線的示意圖。

wKgaomadthKAVRbMAAEE9O3njnc706.png

圖1 中斷/事件線示意圖

從上文可知曉,一個(gè)能夠觸發(fā)中斷的事件在觸發(fā)配置時(shí)就出現(xiàn)兩種可能,即允許產(chǎn)生中斷或禁止產(chǎn)生中斷,這隨之引出事件模式和中斷模式兩個(gè)概念。從上圖不難看出,每根信號(hào)線上劃有一條斜線,并標(biāo)注數(shù)字20,表明這樣的線路共有20條,圖中的藍(lán)色虛線箭頭,標(biāo)出了中斷模式下的傳輸路徑,而圖中的綠色箭頭則標(biāo)識(shí)了事件模式下的傳輸路徑,下文一一說(shuō)明。

1)中斷模式下的傳輸路徑(①-②-③-④-⑤)

①輸入線:EXTI控制器具有20個(gè)中斷/事件輸入線,這些輸入線可以連接到任意一個(gè) GPIO或一些外設(shè)的事件,當(dāng)這些輸入線上的信號(hào)發(fā)生電平變化時(shí),EXTI控制器會(huì)檢測(cè)到并觸發(fā)中斷或事件。

②邊沿檢測(cè)電路:EXTI控制器允許用戶選擇觸發(fā)方式,可通過(guò)設(shè)置上升沿、下降沿觸發(fā)選擇寄存器中相應(yīng)的位來(lái)控制信號(hào)的觸發(fā)。

③或門(mén)電路:一端輸入信號(hào)線由邊沿檢測(cè)電路提供,另一端由軟件中斷事件寄存器(可以使用軟件來(lái)啟動(dòng)中斷/事件線)提供,此處軟件可以優(yōu)先于外部信號(hào)請(qǐng)求一個(gè)中斷或事件,即當(dāng)軟件中斷事件寄存器的對(duì)應(yīng)位為”1”時(shí),不管外部信號(hào)如何,則輸出有效信號(hào)1,并且輸出的信號(hào)會(huì)被保存到請(qǐng)求掛起寄存器內(nèi),當(dāng)電路輸出為1就會(huì)把請(qǐng)求掛起寄存器對(duì)應(yīng)位置1。

④與門(mén)電路:一端由或門(mén)電路的輸出提供,另一端由中斷屏蔽寄存器提供,只有當(dāng)兩者都為有效信號(hào)1,才會(huì)輸出有效信號(hào)1,即向NVIC中斷控制器發(fā)出一個(gè)中斷請(qǐng)求。

⑤將請(qǐng)求掛起寄存器的內(nèi)容輸入到NVIC中,從而實(shí)現(xiàn)對(duì)中斷事件的控制。

2)事件模式下的傳輸路徑(①-②-③-⑥-⑦-⑧)

⑥與門(mén)電路:此處與門(mén)電路與標(biāo)號(hào)④與門(mén)電路類似,用于引入事件屏蔽寄存器的控制,只有兩個(gè)均輸入有效電平1時(shí),才會(huì)輸出有效信號(hào)1。

⑦脈沖發(fā)生器:當(dāng)標(biāo)號(hào)⑥與門(mén)電路輸出有效信號(hào)1時(shí),脈沖發(fā)生器會(huì)輸出一個(gè)脈沖信號(hào)。

⑧脈沖信號(hào):由脈沖發(fā)生器產(chǎn)生,通常用于觸發(fā)定時(shí)器、ADC等。

綜上所述,從外部激勵(lì)源來(lái)看,無(wú)論中斷模式還是事件模式的傳輸路徑在標(biāo)識(shí)①~③是一致的,主要區(qū)別是中斷需要MCU介入,且同時(shí)需要有中斷處理函數(shù)的參與才會(huì)形成中斷后的結(jié)果,但事件是通過(guò)脈沖發(fā)生器發(fā)出的脈沖信號(hào),進(jìn)而由硬件自行完成該事件并產(chǎn)生響應(yīng)的結(jié)果。所以,從節(jié)省MCU開(kāi)銷(xiāo),提高系統(tǒng)運(yùn)行效率來(lái)看,事件模式不失為一種提高M(jìn)CU處理能力的快速響應(yīng)機(jī)制。

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

    關(guān)注

    146

    文章

    17475

    瀏覽量

    354613
  • 控制器
    +關(guān)注

    關(guān)注

    113

    文章

    16580

    瀏覽量

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

    關(guān)注

    5

    文章

    900

    瀏覽量

    41998
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1223

    瀏覽量

    52757

原文標(biāo)題:MCU微課堂|CKS32F107xx系列中斷和事件

文章出處:【微信號(hào):中科芯MCU,微信公眾號(hào):中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MCU微課堂|CKS32F4xx系列產(chǎn)品時(shí)鐘配置

    作為MCU運(yùn)行的基礎(chǔ),時(shí)鐘是單片機(jī)各個(gè)模塊工作時(shí)序的最小時(shí)間單位,推動(dòng)單片機(jī)的各指令執(zhí)行,是MCU選型的一個(gè)重要指標(biāo)。CKS32F4xx系列產(chǎn)品具有眾多的外設(shè),但并非所有的外設(shè)均需要系
    發(fā)表于 12-12 10:17 ?916次閱讀

    基于CKS32F4xx系列MCU互補(bǔ)PWM方案

    互補(bǔ)輸出實(shí)際跟比較輸出章節(jié)一樣使用的是定時(shí)器的功能,所以相關(guān)的函數(shù)設(shè)置同樣在庫(kù)函數(shù)文件CKS32f4xx_tim.h和CKS32f4xx_tim.c文件中。 1)開(kāi)啟TIM1和GPIO時(shí)鐘,配置PA7、PA8選擇復(fù)用功能GPIO_AF_TIM1輸出。
    發(fā)表于 12-02 10:13 ?769次閱讀
    基于<b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>的<b class='flag-5'>MCU</b>互補(bǔ)PWM方案

    CKS32F4xx系列產(chǎn)品NVIC中斷優(yōu)先級(jí)管理單元講解

    本課將為大家講解CKS32F4xx系列產(chǎn)品的中斷優(yōu)先級(jí)管理單元NVIC。CM4內(nèi)核共支持256個(gè)中斷,其中包含了16個(gè)內(nèi)核中斷和240個(gè)外部
    的頭像 發(fā)表于 02-06 14:52 ?1318次閱讀

    CKS32F4xx系列產(chǎn)品串口DMA傳輸

    在上一講,我們講過(guò)CKS32F4xx系列的6個(gè)串口都支持DMA傳輸。因此本節(jié)我們對(duì)CKS32F4xx系列的DMA進(jìn)行介紹,同時(shí)利用DMA對(duì)串口數(shù)據(jù)進(jìn)行傳輸。
    的頭像 發(fā)表于 04-10 11:18 ?1163次閱讀

    CKS32F4xx系列RNG功能設(shè)置

    ? MCU 微課堂 CKS32F4xx 系 列RNG功能 隨機(jī)數(shù)發(fā)生器簡(jiǎn)介 ? ? CKS32F4xx系列自帶了硬件隨機(jī)數(shù)發(fā)生器(RNG),RNG處理器是一個(gè)以連續(xù)模擬噪聲為基礎(chǔ)的隨機(jī)
    的頭像 發(fā)表于 09-08 10:01 ?723次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>RNG功能設(shè)置

    CKS32F4xx系列DAC功能

    CKS32F4xx系列DAC功能
    的頭像 發(fā)表于 11-06 16:56 ?978次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DAC功能

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信
    的頭像 發(fā)表于 10-24 17:12 ?835次閱讀
    <b class='flag-5'>MCU</b>微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置
    的頭像 發(fā)表于 10-24 15:14 ?905次閱讀
    <b class='flag-5'>MCU</b>微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品GPIO口配置

    CKS32F4xx系列FSMC功能簡(jiǎn)介

    本課講為大家講解CKS32F4xx系列產(chǎn)品的FSMC應(yīng)用實(shí)例,F(xiàn)SMC全稱是Flexible Static Memory Controller,讀作靈活的靜態(tài)存儲(chǔ)控制器,顧名思義,MCU可以通過(guò)FSMC擴(kuò)展靜態(tài)內(nèi)存
    的頭像 發(fā)表于 04-14 15:06 ?1137次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>FSMC功能簡(jiǎn)介

    CKS32F107xx系列時(shí)鐘組成介紹

    作為MCU運(yùn)行的基礎(chǔ),時(shí)鐘是MCU各個(gè)模塊工作時(shí)序的最小時(shí)間單位,推動(dòng)MCU的各指令執(zhí)行,是MCU選型的一個(gè)重要指標(biāo)。
    的頭像 發(fā)表于 05-20 14:04 ?552次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>時(shí)鐘組成介紹

    CKS32F107xx系列時(shí)鐘系統(tǒng)具體配置方法講解

    上一章節(jié)對(duì)CKS32F107xx系列時(shí)鐘做了整體介紹,本章節(jié)以使用HSI內(nèi)部高速時(shí)鐘為例對(duì)時(shí)鐘具體配置方法進(jìn)行講解。
    的頭像 發(fā)表于 05-28 10:05 ?806次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>時(shí)鐘系統(tǒng)具體配置方法講解

    CKS32F107xx系列MCU中ADC介紹

    CKS32F107xx系列產(chǎn)品提供2個(gè)12位的模擬/數(shù)字轉(zhuǎn)換器(ADC),每個(gè)ADC共用多達(dá)16個(gè)外部通道,各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在16位數(shù)據(jù)寄存器中。
    的頭像 發(fā)表于 06-22 11:04 ?903次閱讀

    CKS32F107xx系列MCU的GPIO內(nèi)部硬件結(jié)構(gòu)和工作模式

    16個(gè)引腳,如型號(hào)為CKS2F107VET6型號(hào)的芯片有GPIOA、GPIOB、GPIOC至GPIOE共5組GPIO,芯片一共100個(gè)引腳,其中GPIO就占了一大部分,所有的GPIO引腳都有基本的輸入輸出功能。
    的頭像 發(fā)表于 07-22 09:23 ?886次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的GPIO內(nèi)部硬件結(jié)構(gòu)和工作模式

    詳解CKS32F107xx系列的定時(shí)器同步功能

    CKS32F107xx系列部分定時(shí)器在內(nèi)部是相連的,可用于定時(shí)器同步或鏈接,方便用戶配置不同的同步模式,以便在電機(jī)控制、數(shù)據(jù)采集和PWM信號(hào)生成等應(yīng)用中,實(shí)現(xiàn)復(fù)雜的時(shí)間序列和多通道的同步操作。本節(jié)課
    的頭像 發(fā)表于 11-26 17:51 ?640次閱讀
    詳解<b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>的定時(shí)器同步功能

    CKS32F107xx系列USART的LIN模式

    CKS32F107xx系列在支持正常USART功能的同時(shí),亦支持LIN(局域互聯(lián)網(wǎng))模式。
    的頭像 發(fā)表于 02-18 17:18 ?176次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>USART的LIN模式