8259A概述
8259A是專門為了對(duì)8085A和8086/8088進(jìn)行中斷控制而設(shè)計(jì)的芯片,它是可以用程序控制的中斷控制器。單個(gè)的8259A能管理8級(jí)向量?jī)?yōu)先級(jí)中斷。在不增加其他電路的情況下,最多可以級(jí)聯(lián)成64級(jí)的向量?jī)?yōu)級(jí)中斷系統(tǒng)。8259A有多種工作方式,能用于各種系統(tǒng)。各種工作方式的設(shè)定是在初始化時(shí)通過軟件進(jìn)行的。 在總線控制器的控制下,8259A芯片可以處于編程狀態(tài)和操作狀態(tài),編程狀態(tài)是CPU使用IN或OUT指令對(duì)8259A芯片進(jìn)行初始化編程的狀態(tài)。
8259A主要功能
功能:就是在有多個(gè)中斷源的系統(tǒng)中,接受外部的中斷請(qǐng)求,并進(jìn)行判斷,選中當(dāng)前優(yōu)先級(jí)最高的中斷請(qǐng)求,再將此請(qǐng)求送到cpu的INTR端;當(dāng)cpu響應(yīng)中斷并進(jìn)入中斷子程序的處理過程后,中斷控制器仍負(fù)責(zé)對(duì)外部中斷請(qǐng)求的管理。
8259A的主要功能如下:
①一片8259A可以接受并管理8級(jí)可屏蔽中斷請(qǐng)求,通過8片8259A級(jí)聯(lián)可擴(kuò)展至63級(jí)可屏蔽中斷優(yōu)先控制。
②對(duì)每一級(jí)中斷都可以通過程序來屏蔽或允許。
③在中斷響應(yīng)周期,8259A可為CPU提供相應(yīng)的中斷類型碼。
④具有多種工作方式,并可通過編程來加以選擇。
8259a的5種工作方式
1.中斷優(yōu)先權(quán)方式
8259A中斷優(yōu)先權(quán)的管理方式有固定優(yōu)先權(quán)方式和自動(dòng)循環(huán)優(yōu)先權(quán)方式兩種。
1)固定優(yōu)先權(quán)方式
在固定優(yōu)先權(quán)方式中,IR7~I(xiàn)R0的中斷優(yōu)先權(quán)的級(jí)別是由系統(tǒng)確定的。
它們由高到低的優(yōu)先級(jí)順序是:IR0,IR1,IR2,…,IR7,其中,IR0的優(yōu)先級(jí)最高,IR7的優(yōu)先級(jí)最低。當(dāng)有多個(gè)IRi請(qǐng)求時(shí),優(yōu)先權(quán)判決器(PR)將它們與當(dāng)前正在處理的中斷源的優(yōu)先權(quán)進(jìn)行比較,選出當(dāng)前優(yōu)先權(quán)最高的IRi,向CPU發(fā)出中斷請(qǐng)求INT,請(qǐng)求為其服務(wù)。
(2)自動(dòng)循環(huán)優(yōu)先權(quán)方式
在自動(dòng)循環(huán)優(yōu)先權(quán)方式中,IR7~I(xiàn)R0優(yōu)先權(quán)級(jí)別是可以改變的。
其變化規(guī)律是:當(dāng)某一個(gè)中斷請(qǐng)求IRi服務(wù)結(jié)束后,該中斷的優(yōu)先權(quán)自動(dòng)降為最低,而緊跟其后的中斷請(qǐng)求IR(i+1)的優(yōu)先權(quán)自動(dòng)升為最高,IR7~I(xiàn)R0優(yōu)先權(quán)級(jí)別按如下所示的右循環(huán)方式改變。
假設(shè)在初始狀態(tài)IR0有請(qǐng)求,CPU為其服務(wù)完畢,IR0優(yōu)先權(quán)自動(dòng)降為最低,排在IR7之后,而其后的IR1的優(yōu)先權(quán)升為最高,其余依次類推。這種優(yōu)先權(quán)管理方式,可以使8個(gè)中斷請(qǐng)求都擁有享受同等優(yōu)先服務(wù)的權(quán)利。
在自動(dòng)循環(huán)優(yōu)先權(quán)方式中,按確定循環(huán)時(shí)的最低優(yōu)先權(quán)的方式不同,又分為普通自動(dòng)循環(huán)方式和特殊自動(dòng)循環(huán)方式兩種。
普通自動(dòng)循環(huán)方式的特點(diǎn)是:IR7~I(xiàn)R0中的初始最高優(yōu)先級(jí)由系統(tǒng)指定,即指定IR0的優(yōu)先級(jí)最高,以后按右循環(huán)規(guī)則進(jìn)行循環(huán)排隊(duì)。
而特殊自動(dòng)循環(huán)方式的特點(diǎn)是:IR7~I(xiàn)R0中的初始最低優(yōu)先級(jí),由用戶通過置位優(yōu)先權(quán)命令指定。
2.中斷嵌套方式
8259A的中斷嵌套方式分為完全嵌套和特殊完全嵌套兩種。
(1)完全嵌套方式
完全嵌套方式是8259A在初始化時(shí)自動(dòng)進(jìn)入的一種最基本的優(yōu)先權(quán)管理方式.
其特點(diǎn)是:中斷優(yōu)先權(quán)管理為固定方式,即IR0優(yōu)先權(quán)最高,IR7優(yōu)先權(quán)最低,在CPU中斷服務(wù)期間(即執(zhí)行中斷服務(wù)子程序過程中),若有新的中斷請(qǐng)求到來,只允許比當(dāng)前服務(wù)的中斷請(qǐng)求的優(yōu)先權(quán)“高”的中斷請(qǐng)求進(jìn)入,對(duì)于“同級(jí)”或“低級(jí)”的中斷請(qǐng)求禁止響應(yīng)。
(2)特殊完全嵌套方式
特殊完全嵌套方式是8259A在多片級(jí)聯(lián)方式下使用的一種最基本的優(yōu)先權(quán)管理方式。
其特點(diǎn)是:中斷優(yōu)先權(quán)管理為固定方式,IR7~I(xiàn)R0的優(yōu)先順序與完全嵌套規(guī)定相同;與完全嵌套方式不同之處是在CPU中斷服務(wù)期間,除了允許高級(jí)中斷請(qǐng)求進(jìn)入外,還允許同級(jí)中斷請(qǐng)求進(jìn)入,從而實(shí)現(xiàn)了對(duì)同級(jí)中斷請(qǐng)求的特殊嵌套。
在級(jí)聯(lián)方式下,主片通常設(shè)置為特殊完全嵌套方式,從片設(shè)置為完全嵌套方式。當(dāng)主片為某一個(gè)從片的中斷請(qǐng)求服務(wù)時(shí),從片中的IR7~I(xiàn)R0的請(qǐng)求都是通過主片中的某個(gè)IRi請(qǐng)求引入的。因此從片的IR7~I(xiàn)R0對(duì)于主片IRi來說,它們屬于同級(jí),只有主片工作于特殊完全嵌套方式時(shí),從片才能實(shí)現(xiàn)完全嵌套。
3.中斷屏蔽方式
中斷屏蔽方式是對(duì)8259A的外部中斷源IR7~I(xiàn)R0實(shí)現(xiàn)屏蔽的一種中斷管理方式,有普通屏蔽方式和特殊屏蔽方式兩種。
(1)普通屏蔽方式
普通屏蔽方式是通過8259A的中斷屏蔽寄存器(IMR)來實(shí)現(xiàn)對(duì)中斷請(qǐng)求IRi的屏蔽。由編程寫入操作命令字OCW1,將IMR中的Di位置1,以達(dá)到對(duì)IRi(i=0~7)中斷請(qǐng)求的屏蔽。
(2)特殊屏蔽方式
特殊屏蔽方式允許低優(yōu)先級(jí)中斷請(qǐng)求中斷正在服務(wù)的高優(yōu)先級(jí)中斷。這種屏蔽方式通常用于級(jí)聯(lián)方式中的主片,對(duì)于同一個(gè)請(qǐng)求IRi上連接有多個(gè)中斷源的場(chǎng)合,可以通過編程寫入操作命令字OCW3來設(shè)置或取消。
在特殊屏蔽方式中,可在中斷服務(wù)子程序中用中斷屏蔽命令來屏蔽當(dāng)前正在處理的中斷,同時(shí)可使ISR中的對(duì)應(yīng)當(dāng)前中斷的相應(yīng)位清0,這樣一來不僅屏蔽了當(dāng)前正在處理的中斷,而且也真正開放了較低級(jí)別的中斷請(qǐng)求。
在這種情況下,雖然CPU仍然繼續(xù)執(zhí)行較高級(jí)別的中斷服務(wù)子程序,但由于ISR中對(duì)應(yīng)當(dāng)前中斷的相應(yīng)位已經(jīng)清0,如同沒有響應(yīng)該中斷一樣。所以,此時(shí)對(duì)于較低級(jí)別的中斷請(qǐng)求,8259A仍然能產(chǎn)生INT中斷請(qǐng)求,CPU也會(huì)響應(yīng)較低級(jí)別的中斷請(qǐng)求。
4.中斷結(jié)束方式
中斷結(jié)束方式是指CPU為某個(gè)中斷請(qǐng)求服務(wù)結(jié)束后,應(yīng)及時(shí)清除中斷服務(wù)標(biāo)志位,否則就意味著中斷服務(wù)還在繼續(xù),致使比它優(yōu)先級(jí)低的中斷請(qǐng)求無法得到響應(yīng)。中斷服務(wù)標(biāo)志位存放在中斷服務(wù)寄存器(ISR)中,當(dāng)某個(gè)中斷源IRi被響應(yīng)后,ISR中的Di位被置1,服務(wù)完畢應(yīng)及時(shí)清除。
8259A提供了以下三種中斷結(jié)束方式:
(1)自動(dòng)結(jié)束方式
自動(dòng)結(jié)束方式是利用中斷響應(yīng)信號(hào)的第二個(gè)負(fù)脈沖的后沿,將ISR中的中斷服務(wù)標(biāo)志位清除。
這種中斷服務(wù)結(jié)束方式是由硬件自動(dòng)完成的,需要注意的是:ISR中為“1”位的清除是在中斷響應(yīng)過程中完成的,并非中斷服務(wù)子程序的真正結(jié)束,若在中斷服務(wù)子程序的執(zhí)行過程中有另外一個(gè)比當(dāng)前中斷優(yōu)先級(jí)低的請(qǐng)求信號(hào)到來,因8259A并沒有保存任何標(biāo)志來表示當(dāng)前服務(wù)尚未結(jié)束,致使低優(yōu)先級(jí)中斷請(qǐng)求進(jìn)入,打亂正在服務(wù)的程序,因此這種方式只適合用在沒有中斷嵌套的場(chǎng)合。
(2)普通結(jié)束方式
普通結(jié)束方式是通過在中斷服務(wù)子程序中編程寫入操作命令字OCW2,向8259A傳送一個(gè)普通EOI(endofinterrupt)命令(不指定被復(fù)位的中斷的級(jí)號(hào))來清除ISR中當(dāng)前優(yōu)先級(jí)別最高位。
由于這種結(jié)束方式是清除ISR中優(yōu)先權(quán)級(jí)別最高的那一位,適合使用在完全嵌套方式下的中斷結(jié)束。因?yàn)樵谕耆短追绞较?,中斷?yōu)先級(jí)是固定的,8259A總是響應(yīng)優(yōu)先級(jí)最高的中斷,保存在ISR中的最高優(yōu)先級(jí)的對(duì)應(yīng)位,一定對(duì)應(yīng)于正在執(zhí)行的服務(wù)程序。
(3)特殊結(jié)束方式
特殊結(jié)束方式是通過在中斷服務(wù)子程序中編程寫入操作命令字OCW2,向8259A傳送一個(gè)特殊EOI命令(指定被復(fù)位的中斷的級(jí)號(hào))來清除ISR中的指定位。
由于在特殊EOI命令中明確指出了復(fù)位ISR中的哪一位,不會(huì)因嵌套結(jié)構(gòu)出現(xiàn)錯(cuò)誤。因此,它可以用于完全嵌套方式下的中斷結(jié)束,更適用于嵌套結(jié)構(gòu)有可能遭到破壞的中斷結(jié)束。
5.中斷觸發(fā)方式
8259A中斷請(qǐng)求輸入端IR7~I(xiàn)R0的觸發(fā)方式有電平觸發(fā)和邊沿觸發(fā)兩種,由初始化命令字ICW1中的LTIM位來設(shè)定。
當(dāng)LTIM設(shè)置為1時(shí),為電平觸發(fā)方式,8259A檢測(cè)到IRi(i=0~7)端有高電平時(shí)產(chǎn)生中斷。在這種觸發(fā)方式中,要求觸發(fā)電平必須保持到中斷響應(yīng)信號(hào)有效為止,并且在CPU響應(yīng)中斷后,應(yīng)及時(shí)撤銷該請(qǐng)求信號(hào),以防止CPU再次響應(yīng),出現(xiàn)重復(fù)中斷現(xiàn)象。
當(dāng)LTIM設(shè)置為0時(shí),為邊沿觸發(fā)方式,8259A檢測(cè)到IRi端有由低到高的跳變信號(hào)時(shí)產(chǎn)生中斷。
-
8259A
+關(guān)注
關(guān)注
0文章
6瀏覽量
8267 -
中斷屏蔽
+關(guān)注
關(guān)注
0文章
4瀏覽量
6700 -
中斷控制
+關(guān)注
關(guān)注
0文章
26瀏覽量
8850
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論