<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          STM8 中斷控制器ITC

          作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
          簡介

          中斷控制器提供如下功能:
          ● 硬件中斷的管理
          ─ 所有I/O 引腳都具有外部中斷能力,每一個端口都有獨立的中斷向量以及獨立的標(biāo)志。
          ─ 外設(shè)中斷能力
          ● 軟件中斷的管理(TRAP)
          ● 具有靈活的優(yōu)先級和中斷等級管理,支持可嵌套的或同級中斷管理:
          – 多達(dá)4個軟件可編程的嵌套等級
          – 最多有32個中斷向量,其入口地址由硬件固定
          – 2 不可屏蔽的事件: RESET, TRAP
          – 1 個不可屏蔽的最高優(yōu)先級的硬件中斷 (TLI)
          基于如下資源的中斷管理:
          ● 位I1 和I0 位于CPU的條件代碼寄存器(CCR)
          ● 軟件優(yōu)先級寄存器 (ITC_SPRx)
          ● 復(fù)位向量地址0x00 8000 位于程序空間的起始部分。對于具有啟動ROM的型號,ST公司把復(fù)位初始化程序固化在ROM區(qū)中。
          ● 固定的中斷向量地址位于程序空間映像的高位地址段(0x00 8004 to 0x00 807C) ,其地址順序即為硬件的優(yōu)先順序。

          本文引用地址:http://www.ex-cimer.com/article/201611/316707.htm

          中斷屏蔽和處理流程
          中斷屏蔽是通過CC寄存器的位I1 和位I0 以及設(shè)置每個中斷向量( 表13) 的軟件優(yōu)先級的ITC_SPRx來管理的。處理流程如圖所示:
          當(dāng)一個中斷請求必須被響應(yīng)時:
          1. 在當(dāng)前正在執(zhí)行指令結(jié)束之后,正常的操作被懸起;
          2. PC,X,Y,A和CC寄存器被自動壓棧;
          3. 根據(jù)ITC_SPRx 寄存器中的值對應(yīng)的中斷服務(wù)向量,CC寄存器中的位I1 和I0 被相應(yīng)設(shè)置;
          4. 通過中斷向量載入中斷服務(wù)子程序的入口地址,接著對中斷服務(wù)子程序的第一條指令取址( 參考表中斷映射表 來了解向量地址的更詳細(xì)情況)。
          中斷服務(wù)子程序必須以IRET指令結(jié)束,該指令會把堆棧中的保存的寄存器內(nèi)容出棧,同時由于運(yùn)行IRET 指令,位I1 和位I0 被重新恢復(fù),程序也恢復(fù)運(yùn)行。

          處理等待(排隊)的中斷
          同一時間可以有幾個中斷排隊等待處理。中斷響應(yīng)是根據(jù)如下兩步來決定的:
          1、最高軟件優(yōu)先級的中斷被響應(yīng);
          2、如果幾個排隊的中斷具有相同的軟件優(yōu)先級,那么最高硬件優(yōu)先級的中斷先響應(yīng)。
          當(dāng)中斷請求沒有立即得到響應(yīng)時,該中斷請求被鎖存;當(dāng)其軟件優(yōu)先級及硬件優(yōu)先級均為最高的時候,該中斷被處理。
          注意:

          1、與軟件優(yōu)先級不同,每個中斷的硬件優(yōu)先級是唯一且互不相同的,這樣就可保證一個時刻只有一個中斷被唯一確定地處理。
          2、RESET, TLI 和 TRAP 這個幾個中斷被認(rèn)為是擁有最高的軟件優(yōu)先級來處理。
          3、一個TLI中斷可中斷除TRAP 及RESET之外的3級中斷。
          見圖了解更加詳細(xì)的排隊等待處理的中斷服務(wù)過程。

          中斷源
          STM8 中斷控制器處理2種類型的中斷源:
          ● 不可屏蔽的中斷: RESET ,TLI 和 TRAP
          ● 可屏蔽中斷: 外部中斷或者內(nèi)嵌的外設(shè)中斷
          不可屏蔽中斷源
          不可屏蔽中斷不會考慮CC寄存器的I1 和I0 的狀態(tài)(參見圖) 。僅僅當(dāng)TRAP 中斷發(fā)生時候?qū)C, X, Y, A 和 CC 寄存器的內(nèi)容壓棧。相應(yīng)的向量載入到PC寄存器中同時置位I1 和I0 位禁止中斷(3級優(yōu)先級)。
          ● TRAP (不可屏蔽的軟件中斷)
          當(dāng)執(zhí)行TRAP 指令時就響應(yīng)軟件中斷。它響應(yīng)過程如圖所示的流程圖。
          TRAP 中斷不能使處理器從停機(jī)(Halt) 模式下退出。
          ● RESET 復(fù)位
          復(fù)位中斷是STM8 的軟件和硬件中斷的最高優(yōu)先級,這也就是說在復(fù)位程序的開始所有的中斷被禁止。必須通過RIM 指令來使能它們(見表)。
          復(fù)位中斷可以使處理器從停機(jī)(Halt) 模式退出。
          更詳細(xì)的復(fù)位中斷管理見復(fù)位章節(jié)。
          ● TLI最高等級的硬件中斷
          當(dāng)在特定的 I/O 邊沿檢測到在相應(yīng)的TLI輸入時將產(chǎn)生硬件中斷。
          注意: 在TLI中斷服務(wù)子程序中禁止使用TRAP 指令。

          可屏蔽的中斷源
          對于可屏蔽中斷,如果相應(yīng)的中斷被使能,而且如果在ITC_SPRx 寄存器的中斷優(yōu)先級比當(dāng)前正在執(zhí)行的中斷(根據(jù)CC寄存器的I1 和I0 位)的優(yōu)先級高的話那么就可以被響應(yīng)。如果上面2個條件中 的任何一個不滿足那么該中斷會被鎖存并保持在等待狀態(tài)。
          ● 外部中斷
          外部中斷可以用來把MCU從停機(jī)(Halt) 模式喚醒。外部中斷觸發(fā)方式的選擇可以通過軟件寫控制外部中斷控制寄存器(EXTI_CRx) 來實現(xiàn)。
          當(dāng)多個連接到同一個中斷向量的外部引腳中斷被同時選定時候,那么他們是‘邏輯或’的關(guān)系。
          當(dāng)外部的電平觸發(fā)中斷被鎖存后,如果該給定的電平一直保持到中斷子程序結(jié)束,那么該電平信號將再次觸發(fā)中斷,除非在中斷子程序中禁用該中斷。
          ● 外設(shè)中斷
          大部分的外設(shè)中斷會導(dǎo)致MCU從停機(jī)(Halt) 模式下喚醒。見表。
          當(dāng)對應(yīng)外設(shè)狀態(tài)寄存器的中斷標(biāo)志位被置位,同時相應(yīng)的外設(shè)控制寄存器的使能位被置位時將產(chǎn)生一個外設(shè)中斷。
          清除一個外設(shè)中斷的標(biāo)準(zhǔn)順序是在對狀態(tài)寄存器的訪問后再對相關(guān)寄存器進(jìn)行讀或者寫操作。
          當(dāng)一個清除過程被執(zhí)行之后相應(yīng)的懸起中斷(一個將被執(zhí)行的中斷)會丟失。

          中斷和低功耗模式
          所有的中斷都可以使處理器從待機(jī)模式(Wait) 退出。
          僅有外部中斷和另外一些特定中斷使才能使處理器從停機(jī)(Halt) 模式退出(請參考表16)。
          當(dāng)MCU從掛起模式喚醒時候, 如果有多個排隊中斷存在,那么第一個被響應(yīng)的中斷一定具有從掛起模式退出的能力。該選擇是通過如圖18所示的判斷過程實現(xiàn)的。如果最高優(yōu)先級的待相應(yīng)的中斷不能把設(shè)備從掛起模式喚醒的話,那么它將在后續(xù)被響應(yīng)。
          如果在執(zhí)行HALT指令時,有一個內(nèi)部或外部中斷( 例如時鐘中斷)發(fā)生,HALT指令會繼續(xù)執(zhí)行完畢,但這個中斷會立刻調(diào)用喚醒進(jìn)程。
          這種情況下MCU實際上是從停機(jī)(Halt) 模式被喚醒到運(yùn)行模式,模式切換的延時為tWUH,詳見數(shù)據(jù)手冊。

          活動等級/低功耗模式的控制
          MCU的活動等級的配置是通過編程CFG_GCR 寄存器的AL位來實現(xiàn)。( 見1.3全局配置寄存器(CFG_GCR) )。
          該位是用來控制MCU的低功耗模式。在超低功耗的應(yīng)用中,MCU大部分時間是運(yùn)行在WFI/Halt模式中,僅在為執(zhí)行特別任務(wù)的時候被喚醒( 通過中斷) 。一些重復(fù)的任務(wù)可以直接在一個ISR( 中斷服務(wù)子程序) 執(zhí)行完成而不需要返回到主程序。為了處理這樣情況,用戶可以在進(jìn)入低功耗模式( 通過執(zhí)行WFI/HALT指令) 之前置位AL位,之后中斷子程序返回之后就直接回到低功耗模式。由于相關(guān)寄存器保存只是在第一次中斷會進(jìn)行所以減少了中斷服務(wù)程序運(yùn)行的時間。
          在一些非常簡單的應(yīng)用中所有的操作都可以只在ISR 中執(zhí)行。對于一些更復(fù)雜的任務(wù),中斷子程序要判斷是否要啟動主程序,可以通過重設(shè)AL的簡單方式來實現(xiàn)。
          例如:一個應(yīng)用需要通過自動喚醒功能來每隔50ms喚醒一次來檢測一些引腳/ 傳感器/ 按鍵的狀態(tài)。如果這些引腳大部分時間是不工作的,那么MCU可以直接回到低功耗模式而不需要運(yùn)行主程序的。如果其中之一的引腳處于工作狀態(tài),那么ISR 將要進(jìn)行相應(yīng)判斷,通過重設(shè)AL位來啟動主程序。

          同時的和嵌套的中斷管理
          STM8S提供2種中斷管理模式:
          ● 同時發(fā)生模式
          ● 嵌套模式

          同時發(fā)生中斷管理模式
          在該模式下,所有的中斷的中斷優(yōu)先級都是3 級,因此它們都是不可以被中斷的( 除了被TLI,RESET或TRAP 中斷之外)。
          硬件的中斷優(yōu)先級按如下順序排列,從低到高的優(yōu)先級是:MAIN, IT4, IT3, IT2, IT1, IT0, TRAP/TLI( 同等優(yōu)先級)以及RESET。
          圖 所示是一個同時發(fā)生中斷管理模式的例子

          嵌套中斷管理模式
          在該模式下,允許在中斷子程序中響應(yīng)中斷。一旦一個中斷的優(yōu)先級被設(shè)置低于3 級時該模式就立即有效。
          硬件優(yōu)先級從低到高按如下順序給定,即MAIN, IT4,IT3,IT2,IT1,IT0 和TRAP 。
          通過設(shè)定ITC_SPRx 寄存器的相應(yīng)的I1_x 和I0_x 位來配置每一個中斷向量的軟件優(yōu)先級。I1_x 和I0_x 位具有和CC寄存器的I1 和I0 位相同的意思(見表)。
          不可以將中斷優(yōu)先級設(shè)為級別0(I1_x=1, I0_x=0),在這種情況下,該中斷的優(yōu)先級將保持為先前的值。例如:如果先前的值是CFh ,然后編程的值是64h ,那么結(jié)果是44h 。
          RESET 和 TRAP 向量是沒有軟件優(yōu)先級的。當(dāng)兩者的任何一個被響應(yīng)時,CC寄存器的位I1 和I0 兩位都被置位。
          注意:

          在中斷被響應(yīng)時如果位 I1 和 I0 被修改,那么設(shè)備將作如下處理: 如果一個中斷 X 仍然處在懸起狀態(tài)(新的中斷或者中斷標(biāo)志沒有被清除)同時該新的優(yōu)先級又比先前的優(yōu)先級高的話,那么該中斷 X 會被重新響應(yīng)。否則該中斷的軟件優(yōu)先級在下一個中斷請求( X中斷的IRET之后)來之前保持不變。
          在中斷子程序的執(zhí)行過程中,執(zhí)行 HALT, POP CC, RIM , SIM 和 WFI指令會改變當(dāng)前的軟件優(yōu)先級直到下一條IRET 指令被執(zhí)行或者先前提到的指令之一被執(zhí)行。 。
          圖 所示嵌套中斷管理的例子。

          1. ITC_SPRx 寄存器對應(yīng)于TLI的位可以被讀寫,但是它們對中斷處理的管理是沒有作用的。

          外部中斷
          STM8S為外部中斷事件專門分配了五個中斷向量:
          ● Port A 口的5個引腳:PA[6:2]
          ● Port B 口的8個引腳:PB[7:0]
          ● Port C 口的8個引腳:PC[7:0]
          ● Port D 口的7個引腳:PD[6:0]
          ● Port E 口的8個引腳:PE[7:0]
          PD7 是最高優(yōu)先級的中斷源 (TLI) 。
          為了產(chǎn)生中斷,相應(yīng)的GPIO端口必須被配置為中斷使能的輸入口,詳細(xì)內(nèi)容請參考GPIO章節(jié)的
          寄存器描述部分。
          中斷的觸發(fā)方式由外部中斷控制寄存器1(EXTI_CR1) 和外部中斷控制寄存器2(EXTI_CR2) 所配置

          中斷指令

          中斷映射



          關(guān)鍵詞: STM8中斷控制器IT

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();