新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)中斷系統(tǒng)介紹

        單片機(jī)中斷系統(tǒng)介紹

        作者: 時(shí)間:2011-09-16 來(lái)源:網(wǎng)絡(luò) 收藏

        簡(jiǎn)介  

        中斷裝置和中斷處理程序統(tǒng)稱(chēng)為

          是計(jì)算機(jī)的重要組成部分。實(shí)時(shí)控制、故障自動(dòng)處理、計(jì)算機(jī)與外圍設(shè)備間的數(shù)據(jù)傳送往往采用。中斷系統(tǒng)的應(yīng)用大大提高了計(jì)算機(jī)效率。

          不同的計(jì)算機(jī)其硬件結(jié)構(gòu)和軟件指令是不完全相同的,因此,中斷系統(tǒng)也是不相同的。計(jì)算機(jī)的中斷系統(tǒng)能夠加強(qiáng)CPU對(duì)多任務(wù)事件的處理能力。中斷機(jī)制是現(xiàn)代計(jì)算機(jī)系統(tǒng)中的基礎(chǔ)設(shè)施之一,它在系統(tǒng)中起著通信網(wǎng)絡(luò)作用,以協(xié)調(diào)系統(tǒng)對(duì)各種外部事件的響應(yīng)和處理。中斷是實(shí)現(xiàn)多道程序設(shè)計(jì)的必要條件。 中斷是CPU對(duì)系統(tǒng)發(fā)生的某個(gè)事件作出的一種反應(yīng)。 引起中斷的事件稱(chēng)為中斷源。中斷源向CPU提出處理的請(qǐng)求稱(chēng)為中斷請(qǐng)求。發(fā)生中斷時(shí)被打斷程序的暫停點(diǎn)成為斷點(diǎn)。CPU暫停現(xiàn)行程序而轉(zhuǎn)為響應(yīng)中斷請(qǐng)求的過(guò)程稱(chēng)為中斷響應(yīng)。處理中斷源的程序稱(chēng)為中斷處理程序。CPU執(zhí)行有關(guān)的中斷處理程序稱(chēng)為中斷處理。而返回?cái)帱c(diǎn)的過(guò)程稱(chēng)為中斷返回。中斷的實(shí)現(xiàn)實(shí)行軟件和硬件綜合完成,硬件部分叫做硬件裝置,軟件部分成為軟件處理程序。

        中斷系統(tǒng)的功能

        1)實(shí)現(xiàn)中斷響應(yīng)和中斷返回

          當(dāng)CPU收到中斷請(qǐng)求后,能根據(jù)具體情況決定是否響應(yīng)中斷,如果CPU沒(méi)有更急、更重要的工作,則在執(zhí)行完當(dāng)前指令后響應(yīng)這一中斷請(qǐng)求。CPU中斷響應(yīng)過(guò)程如下:首先,將斷點(diǎn)處的PC值(即下一條應(yīng)執(zhí)行指令的地址)推入堆棧保留下來(lái),這稱(chēng)為保護(hù)斷點(diǎn),由硬件自動(dòng)執(zhí)行。然后,將有關(guān)的寄存器內(nèi)容和標(biāo)志位狀態(tài)推入堆棧保留下來(lái),這稱(chēng)為保護(hù)現(xiàn)場(chǎng),由用戶(hù)自己編程完成。保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)后即可執(zhí)行中斷服務(wù)程序,執(zhí)行完畢,CPU由中斷服務(wù)程序返回主程序,中斷返回過(guò)程如下:首先恢復(fù)原保留寄存器的內(nèi)容和標(biāo)志位的狀態(tài),這稱(chēng)為恢復(fù)現(xiàn)場(chǎng),由用戶(hù)編程完成。然后,再加返回指令RETI,RETI指令的功能是恢復(fù)PC值,使CPU返回?cái)帱c(diǎn),這稱(chēng)為恢復(fù)斷點(diǎn)。恢復(fù)現(xiàn)場(chǎng)和斷點(diǎn)后,CPU將繼續(xù)執(zhí)行原主程序,中斷響應(yīng)過(guò)程到此為止。

        2)實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)

          通常,系統(tǒng)中有多個(gè)中斷源,當(dāng)有多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí),要求計(jì)算機(jī)能確定哪個(gè)中斷更緊迫,以便首先響應(yīng)。為此,計(jì)算機(jī)給每個(gè)中斷源規(guī)定了優(yōu)先級(jí)別,稱(chēng)為優(yōu)先權(quán)。這樣,當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí),優(yōu)先權(quán)高的中斷能先被響應(yīng),只有優(yōu)先權(quán)高的中斷處理結(jié)束后才能響應(yīng)優(yōu)先權(quán)低的中斷。計(jì)算機(jī)按中斷源優(yōu)先權(quán)高低逐次響應(yīng)的過(guò)程稱(chēng)優(yōu)先權(quán)排隊(duì),這個(gè)過(guò)程可通過(guò)硬件電路來(lái)實(shí)現(xiàn),亦可通過(guò)軟件查詢(xún)來(lái)實(shí)現(xiàn)。

        3)實(shí)現(xiàn)中斷嵌套

          當(dāng)CPU響應(yīng)某一中斷時(shí),若有優(yōu)先權(quán)高的中斷源發(fā)出中斷請(qǐng)求,則CPU能中斷正在進(jìn)行的中斷服務(wù)程序,并保留這個(gè)程序的斷點(diǎn)(類(lèi)似于子程序嵌套),響應(yīng)高級(jí)中斷,高級(jí)中斷處理結(jié)束以后,再繼續(xù)進(jìn)行被中斷的中斷服務(wù)程序,這個(gè)過(guò)程稱(chēng)為中斷嵌套。如果發(fā)出新的中斷請(qǐng)求的中斷源的優(yōu)先權(quán)級(jí)別與正在處理的中斷源同級(jí)或更低時(shí),CPU不會(huì)響應(yīng)這個(gè)中斷請(qǐng)求,直至正在處理的中斷服務(wù)程序執(zhí)行完以后才能去處理新的中斷請(qǐng)求。

        中斷源分類(lèi)

          中斷源是指能夠引起中斷的原因。一臺(tái)處理機(jī)可能有很多中斷源,但按其性質(zhì)和處理方法,大致可分為如下五類(lèi)。

          ① 機(jī)器故障中斷。

          ② 程序性中斷。現(xiàn)行程序本身的異常事件引起的,可分為以下三種:一是程序性錯(cuò)誤,例如指令或操作數(shù)的地址邊界錯(cuò),非法操作碼和除數(shù)為零等;二是產(chǎn)生特殊的運(yùn)算結(jié)果,例如定點(diǎn)溢出;三是程序出現(xiàn)某些預(yù)先確定要跟蹤的事件,跟蹤操作主要用于程序調(diào)試。有些機(jī)器把程序性中斷稱(chēng)為“異常”,不稱(chēng)為中斷。

          ③ 輸入-輸出設(shè)備中斷。

          ④ 外中斷。來(lái)自控制臺(tái)中斷開(kāi)關(guān)、計(jì)時(shí)器、時(shí)鐘或其他設(shè)備,這類(lèi)中斷的處理較簡(jiǎn)單,實(shí)時(shí)性強(qiáng)。

          ⑤ 調(diào)用管理程序。用戶(hù)程序利用專(zhuān)用指令“調(diào)用管理程序”發(fā)中斷請(qǐng)求,是用戶(hù)程序和操作系統(tǒng)之間的聯(lián)系橋梁。

        中斷優(yōu)先權(quán)

          幾個(gè)中斷請(qǐng)求可能同時(shí)出現(xiàn),但中斷系統(tǒng)只能按一定的次序來(lái)響應(yīng)和處理。可最先被響應(yīng)的中斷具有最高優(yōu)先權(quán),按優(yōu)先級(jí)別順序進(jìn)行處理。優(yōu)先權(quán)高低是由中斷部件的中斷排隊(duì)線(xiàn)路確定的。

        中斷級(jí)

          當(dāng)機(jī)器設(shè)置很多中斷源時(shí),為了簡(jiǎn)化設(shè)計(jì),對(duì)中斷源分組管理。具有相同中斷優(yōu)先權(quán)的中斷源構(gòu)成一個(gè)中斷級(jí)。同一級(jí)中斷使用同一個(gè)中斷控制程序起點(diǎn)。

        中斷屏蔽

          對(duì)應(yīng)于各中斷級(jí)設(shè)置相應(yīng)的屏蔽位。只有屏蔽位為1時(shí),該中斷級(jí)才能參加中斷優(yōu)先權(quán)排隊(duì)。中斷屏蔽位可由專(zhuān)用指令建立,因而可以靈活地調(diào)整中斷優(yōu)先權(quán)。有些機(jī)器針對(duì)某些中斷源也設(shè)置屏蔽位,只有屏蔽位為1時(shí),相應(yīng)的中斷源才起作用。

        中斷響應(yīng)和處理

          大多數(shù)中斷系統(tǒng)都具有如下幾方面的操作,這些操作是按照中斷的執(zhí)行先后次序排列的。①接收中斷請(qǐng)求。②查看本級(jí)中斷屏蔽位,若該位為1則本級(jí)中斷源參加優(yōu)先權(quán)排隊(duì)。③中斷優(yōu)先權(quán)選擇。④處理機(jī)執(zhí)行完一條指令后或者這條指令已無(wú)法執(zhí)行完,則立即中止現(xiàn)行程序。接著,中斷部件根據(jù)中斷級(jí)去指定相應(yīng)的主存單元,并把被中斷的指令地址和處理機(jī)當(dāng)前的主要狀態(tài)信息存放在此單元中。⑤中斷部件根據(jù)中斷級(jí)又指定另外的主存單元,從這些單元中取出處理機(jī)新的狀態(tài)信息和該級(jí)中斷控制程序的起始地址。⑥執(zhí)行中斷控制程序和相應(yīng)的中斷服務(wù)程序。⑦執(zhí)行完中斷服務(wù)程序后,利用專(zhuān)用指令使處理機(jī)返回被中斷的程序或轉(zhuǎn)向其他程序。

        程序狀態(tài)字和向量中斷

          這是兩個(gè)與中斷響應(yīng)和處理有密切關(guān)系的概念。

          ① 程序狀態(tài)字:每個(gè)程序均有自己的程序狀態(tài)字。現(xiàn)行程序的程序狀態(tài)字放在處理機(jī)的程序狀態(tài)字寄存器中。程序狀態(tài)字中最主要的內(nèi)容有指令地址、條件碼、地址保護(hù)鍵,中斷屏蔽和中斷響應(yīng)時(shí)的中斷源記錄等。中斷響應(yīng)和處理操作的第④步和第⑤步就是交換程序狀態(tài)字操作。

          ② 向量中斷:對(duì)應(yīng)每一級(jí)中斷都有一個(gè)向量,這些向量順序存放在主存的指定單元中。向量的內(nèi)容是:相應(yīng)的中斷服務(wù)程序起始地址和處理機(jī)狀態(tài)字(主要是指令地址)。在中斷響應(yīng)時(shí),由中斷部件提供中斷向量的地址,就可取出該向量。中斷響應(yīng)和處理操作的第⑤步就是取中斷向量操作。在采用向量中斷的機(jī)器中一般不再使用程序狀態(tài)字。



        關(guān)鍵詞: 單片機(jī) 中斷系統(tǒng)

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 钟祥市| 马鞍山市| 那坡县| 大安市| 齐齐哈尔市| 任丘市| 富源县| 临潭县| 上蔡县| 凤山市| 兴化市| 自贡市| 灵山县| 贵定县| 栾城县| 酒泉市| 祁连县| 屏边| 喀什市| 江津市| 临海市| 维西| 遂溪县| 浦东新区| 樟树市| 洛扎县| 新乡县| 洮南市| 益阳市| 新晃| 大方县| 龙海市| 醴陵市| 凤城市| 会同县| 比如县| 明水县| 安乡县| 英德市| 达州市| 陆川县|