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