版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第9章中斷控制器、計數(shù)章中斷控制器、計數(shù)/定時控制器及定時控制器及DMA控制器控制器9.1可編程中斷控制器可編程中斷控制器8259A9.2可編程計數(shù)可編程計數(shù)/定時控制器定時控制器82539.3可編程可編程DMA控制器控制器8237A9.1 可編程中斷控制器可編程中斷控制器8259A中斷系統(tǒng)是馮中斷系統(tǒng)是馮諾依曼結構計算機的一項重要技諾依曼結構計算機的一項重要技術,尤其為解決當前高速運算術,尤其為解決當前高速運算CPU與低速外部與低速外部設備信息交換之間的矛盾。設備信息交換之間的矛盾。8086系列有功能很系列有功能很強的中斷系統(tǒng),它可通過強的中斷系統(tǒng),它可通過8259A可編程中斷控可編程中斷
2、控制器來實現(xiàn)。制器來實現(xiàn)。 9.1.1 8259A芯片內部結構芯片內部結構 8259A可編程中斷控制器包括以下可編程中斷控制器包括以下8部分,芯片部分,芯片內部結構如圖內部結構如圖9.1所示。所示。8259A芯片有芯片有28條引腳,條引腳,雙列直插式封裝,各引腳的信號功能如圖雙列直插式封裝,各引腳的信號功能如圖9.2所所示。示。圖圖9.1圖圖9.21. 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器這是一個雙向這是一個雙向8位位3態(tài)緩沖器,由它構成態(tài)緩沖器,由它構成8259A與與CPU之間的數(shù)據(jù)接口,是之間的數(shù)據(jù)接口,是8259A與與CPU交換數(shù)據(jù)的必經交換數(shù)據(jù)的必經之路。之路。2. 讀讀/寫控制電路寫控制電路
3、用來接收來自用來接收來自CPU的讀的讀/寫控制命令和片選控制信息。寫控制命令和片選控制信息。由于一片由于一片8259A只占兩個只占兩個I/O端口地址,可用末位端口地址,可用末位地址碼地址碼A0來選端口,端口的其他高位地址作為片選來選端口,端口的其他高位地址作為片選信號信號CS輸入。當輸入。當CPU執(zhí)行執(zhí)行OUT指令時,指令時,WR信號信號與與A0配合,將配合,將CPU通過數(shù)據(jù)總線通過數(shù)據(jù)總線(D7D0)送來的控送來的控制字寫入制字寫入8259A中有關的控制寄存器。中有關的控制寄存器。當當CPU執(zhí)行執(zhí)行IN指令時,指令時,RD信號與信號與A0配合,將配合,將8259A中內部寄存器內容通過數(shù)據(jù)總線
4、中內部寄存器內容通過數(shù)據(jù)總線(70)傳送給傳送給CPU。3. 級聯(lián)緩沖級聯(lián)緩沖/比較器比較器一片一片8259A只能接收八級中斷從只能接收八級中斷從IR7IR0輸入,當引輸入,當引入的中斷超過入的中斷超過8級時,可用多片級時,可用多片8259A級聯(lián)使用,級聯(lián)使用,構成主從關系,對于主構成主從關系,對于主8259A,級聯(lián)信號,級聯(lián)信號CAS2CAS0是輸出信號,對于從是輸出信號,對于從8259A,CAS2CAS0是是輸入信號。輸入信號。SP/EN是一個雙功能信號,當是一個雙功能信號,當8259A處處于緩沖狀態(tài)時,于緩沖狀態(tài)時,EN有效,表示允許有效,表示允許8259A通過緩沖通過緩沖存儲器輸出;存
5、儲器輸出;EN無效,表示無效,表示CPU寫寫8259A。當。當8259A處于非緩沖狀態(tài)時,處于非緩沖狀態(tài)時,SP用作表明主從關系,用作表明主從關系,SP=1表示是主表示是主8259A,SP=0表示是從表示是從8259A。4. 中斷請求寄存器中斷請求寄存器IRR這是一個這是一個8位寄存器,用來存放由外部輸入的中斷請位寄存器,用來存放由外部輸入的中斷請求信號求信號IR7IR0。當某一個。當某一個IRi端呈現(xiàn)高電平時,端呈現(xiàn)高電平時,該寄存器的相應位置該寄存器的相應位置“1”,顯然最多允許,顯然最多允許8個中斷個中斷請求信號同時進入,這時,請求信號同時進入,這時,IRR寄存器將被置成全寄存器將被置成
6、全“1”。5. 中斷服務寄存器中斷服務寄存器ISR這是一個這是一個8位寄存器,用來記錄正在處理中的中斷請位寄存器,用來記錄正在處理中的中斷請求。當任何一級中斷被響應,求。當任何一級中斷被響應,CPU正在執(zhí)行它的中正在執(zhí)行它的中斷服務程序時,斷服務程序時,ISR寄存器中相應位置寄存器中相應位置“1”,一直,一直保持到該級中斷處理過程結束為止。多重中斷情況保持到該級中斷處理過程結束為止。多重中斷情況下,下,ISR寄存器中可有多位被同時置寄存器中可有多位被同時置“1”。6. 中斷屏蔽寄存器中斷屏蔽寄存器IMR這是一個這是一個8位寄存器,用來存放對各級中斷請求的屏位寄存器,用來存放對各級中斷請求的屏蔽
7、信息。當該寄存器中某一位置蔽信息。當該寄存器中某一位置“1”時,表示禁止時,表示禁止這一級中斷請求進入系統(tǒng),通過這一級中斷請求進入系統(tǒng),通過IMR寄存器可實現(xiàn)寄存器可實現(xiàn)對各級中斷的有選擇的屏蔽。對各級中斷的有選擇的屏蔽。7. 優(yōu)先權判別器優(yōu)先權判別器PR用來識別各中斷請求信號的優(yōu)先級別。當多個中斷用來識別各中斷請求信號的優(yōu)先級別。當多個中斷請求信號同時產生時,由請求信號同時產生時,由PR判定當前哪一個中斷判定當前哪一個中斷請求具有最高優(yōu)先級,于是系統(tǒng)首先響應這一級中請求具有最高優(yōu)先級,于是系統(tǒng)首先響應這一級中斷,轉去執(zhí)行相應的中斷服務程序。當出現(xiàn)多重中斷,轉去執(zhí)行相應的中斷服務程序。當出現(xiàn)多
8、重中斷時,由斷時,由PR判定是否允許所出現(xiàn)的中斷去打斷正判定是否允許所出現(xiàn)的中斷去打斷正在處理的中斷而被優(yōu)先處理。一般處理原則是允許在處理的中斷而被優(yōu)先處理。一般處理原則是允許高級中斷打斷低級中斷,而不允許低級中斷打斷高高級中斷打斷低級中斷,而不允許低級中斷打斷高級中斷,也不允許同級中斷互相打斷。級中斷,也不允許同級中斷互相打斷。8. 控制電路控制電路它是它是8259A內部的控制器。根據(jù)中斷請求寄存器內部的控制器。根據(jù)中斷請求寄存器IRR的置位情況和優(yōu)先權判別器的置位情況和優(yōu)先權判別器PR的判定結果,向的判定結果,向8259A內部其他部件發(fā)出控制信號,并向內部其他部件發(fā)出控制信號,并向CPU發(fā)
9、出發(fā)出中斷請求信號中斷請求信號INT和接收來自和接收來自CPU的中斷響應信號的中斷響應信號INTA,控制,控制8259A進入中斷服務狀態(tài)。實際上進入中斷服務狀態(tài)。實際上8259A芯片是在控制電路控制之下構成一個有機的芯片是在控制電路控制之下構成一個有機的整體。整體。9.1.2 8259A芯片的工作方式芯片的工作方式8259A有兩種中斷觸發(fā)方式:電平觸發(fā)方式和邊沿觸有兩種中斷觸發(fā)方式:電平觸發(fā)方式和邊沿觸發(fā)方式,可由軟件來定義。當定義為電平觸發(fā)方發(fā)方式,可由軟件來定義。當定義為電平觸發(fā)方式時,從式時,從IR7IR0輸入的有效信號應為高電平,而輸入的有效信號應為高電平,而且必須保持有效到響應它的第
10、一個且必須保持有效到響應它的第一個INTA信號的前沿,信號的前沿,否則這個否則這個IRi信號有可能被丟失;但是也不允許信號有可能被丟失;但是也不允許IRi信號太長,如果在中斷服務寄存器信號太長,如果在中斷服務寄存器ISR相應位復位相應位復位后該后該IRi信號還繼續(xù)有效,則信號還繼續(xù)有效,則8259A就可能重新響就可能重新響應這一中斷請求而出現(xiàn)重復中斷現(xiàn)象。為避免這應這一中斷請求而出現(xiàn)重復中斷現(xiàn)象。為避免這種情況產生,在種情況產生,在ISR某一位被復位時應將相應的某一位被復位時應將相應的IRi信號置成無效。信號置成無效。采用這種電平觸發(fā)方式還有一個問題必須注意,即如采用這種電平觸發(fā)方式還有一個問
11、題必須注意,即如果通過一個果通過一個IRi端引入多個中斷請求,它們由軟件進端引入多個中斷請求,它們由軟件進行排隊;那么當這個行排隊;那么當這個IRi端上一個中斷請求的有效期端上一個中斷請求的有效期間,另一個中斷請求又產生時,將有可能丟失第間,另一個中斷請求又產生時,將有可能丟失第2個個中斷請求信號,從這個意義上講是不允許發(fā)生中斷中斷請求信號,從這個意義上講是不允許發(fā)生中斷請求的電平信號持續(xù)時間太長,但也不能太短,這請求的電平信號持續(xù)時間太長,但也不能太短,這在使用中必須注意。在使用中必須注意。當當8259A被定義為邊沿觸發(fā)方式時,不會產生上述的被定義為邊沿觸發(fā)方式時,不會產生上述的丟失中斷請求
12、的現(xiàn)象,這時當丟失中斷請求的現(xiàn)象,這時當IRi端上出現(xiàn)由低電平端上出現(xiàn)由低電平到高電平的正跳變時,表示中斷請求信號有效,最到高電平的正跳變時,表示中斷請求信號有效,最好用負脈沖的后沿來實現(xiàn)。采用這種邊沿觸發(fā)方式好用負脈沖的后沿來實現(xiàn)。采用這種邊沿觸發(fā)方式不會出現(xiàn)重復中斷現(xiàn)象,但是也要求在響應某中斷不會出現(xiàn)重復中斷現(xiàn)象,但是也要求在響應某中斷請求的第請求的第1個個INTA信號有效前不要出現(xiàn)下一個中斷信號有效前不要出現(xiàn)下一個中斷請求,否則有可能丟失前面一個中斷請求。請求,否則有可能丟失前面一個中斷請求。圖圖9.3不管是采用什么方式引入的中斷,在中斷響應周不管是采用什么方式引入的中斷,在中斷響應周期
13、內第期內第2個個INTA信號有效期間信號有效期間8259A應將當前被響應將當前被響應的中斷類型碼應的中斷類型碼n通過數(shù)據(jù)總線通過數(shù)據(jù)總線D7D0傳送給傳送給CPU。8259A中一字節(jié)中斷類型碼的形成如圖中一字節(jié)中斷類型碼的形成如圖9.3所示。所示。從圖中可看出,由一片從圖中可看出,由一片8259A引入的引入的8級中斷請求的類型碼級中斷請求的類型碼肯定是連續(xù)的。它們在中斷入口地址表中的位置取決于肯定是連續(xù)的。它們在中斷入口地址表中的位置取決于由軟件定義的由軟件定義的D7D3位的狀態(tài),并由對位的狀態(tài),并由對8259A進行初始進行初始化時寫入的相應控制字來確定。例如,定義化時寫入的相應控制字來確定。
14、例如,定義D7D3=10001時,則該時,則該8級中斷的類型碼將順序為級中斷的類型碼將順序為88H8FH。 8259A具有非常靈活的中斷管理方式,可滿足使用者的各具有非常靈活的中斷管理方式,可滿足使用者的各種不同要求。而中斷優(yōu)先權管理是中斷管理的核心問題。種不同要求。而中斷優(yōu)先權管理是中斷管理的核心問題。8259A可采用優(yōu)先權級別固定分配和循環(huán)設置兩種方式??刹捎脙?yōu)先權級別固定分配和循環(huán)設置兩種方式。各中斷源的優(yōu)先級確定后,一般處理原則只允許高級中各中斷源的優(yōu)先級確定后,一般處理原則只允許高級中斷打斷低級中斷而被優(yōu)先處理,禁止低級打斷高級或同斷打斷低級中斷而被優(yōu)先處理,禁止低級打斷高級或同級中
15、斷相互打斷。級中斷相互打斷。8259A中對中斷優(yōu)先權的管理,可概括為完全嵌套方式、中對中斷優(yōu)先權的管理,可概括為完全嵌套方式、自動循環(huán)方式和中斷屏蔽方式。詳細講解如下:自動循環(huán)方式和中斷屏蔽方式。詳細講解如下:1. 完全嵌套方式完全嵌套方式完全嵌套方式是完全嵌套方式是8259A被初始化后自動進入的基本工被初始化后自動進入的基本工作方式,在這種方式下,由各個作方式,在這種方式下,由各個IRi端引入的中斷端引入的中斷請求具有固定的中斷級別。請求具有固定的中斷級別。IR0具有最高優(yōu)先級,具有最高優(yōu)先級,IR7具有最低優(yōu)先級,其他級順序類推。具有最低優(yōu)先級,其他級順序類推。采用完全嵌套方式時,采用完全
16、嵌套方式時,ISR寄存器中某位置寄存器中某位置“1”,表,表示示CPU當前正在處理這一級中斷請求,當前正在處理這一級中斷請求,8259A將允將允許比它級別高的中斷請求進入,打斷當前的中斷服許比它級別高的中斷請求進入,打斷當前的中斷服務程序而被優(yōu)先處理,但禁止與它同級或比它級別務程序而被優(yōu)先處理,但禁止與它同級或比它級別低的其他中斷請求進入。采用這種完全嵌套方式,低的其他中斷請求進入。采用這種完全嵌套方式,中斷嵌套的深度取決于整個中斷系統(tǒng)所具有的中斷中斷嵌套的深度取決于整個中斷系統(tǒng)所具有的中斷級數(shù),在一個具有級數(shù),在一個具有8級中斷的系統(tǒng)中,最大的中斷級中斷的系統(tǒng)中,最大的中斷嵌套深度為嵌套深度
17、為8,如圖,如圖9.4所示。所示。圖圖9.4在中斷嵌套過程中,中斷服務寄存器在中斷嵌套過程中,中斷服務寄存器ISR的內容將不的內容將不斷變化,最后有可能使斷變化,最后有可能使(ISR)FFH,表示當前有,表示當前有8級中斷請求正在被服務,首先結束的應是最高級的級中斷請求正在被服務,首先結束的應是最高級的中斷,待中斷,待CPU由高級到低級將全部中斷處理結束返由高級到低級將全部中斷處理結束返回到主程序時,回到主程序時,ISR寄存器將重新復位為全寄存器將重新復位為全“0”。這種情況下要求堆棧的容量比較大。因為每響應一這種情況下要求堆棧的容量比較大。因為每響應一次中斷至少要往堆棧壓入次中斷至少要往堆棧
18、壓入6個字節(jié)的信息個字節(jié)的信息(兩個字節(jié)兩個字節(jié)標志寄存器內容和標志寄存器內容和4個字節(jié)的斷點地址個字節(jié)的斷點地址),在各級中,在各級中斷處理過程中,還有可能要將其他資源壓入堆棧保斷處理過程中,還有可能要將其他資源壓入堆棧保護。除此之外,在上述中斷嵌套過程中,還要求護。除此之外,在上述中斷嵌套過程中,還要求CPU每響應一次中斷進入中斷服務程序后,應安排每響應一次中斷進入中斷服務程序后,應安排開中斷指令開中斷指令(STI)將將IF標志位置標志位置“1”,否則由,否則由8259A引入的高級中斷將無法進入系統(tǒng)。當任何一級中斷引入的高級中斷將無法進入系統(tǒng)。當任何一級中斷處理完畢,處理完畢,CPU應向應
19、向8259A回送結束命令回送結束命令(EOI),以便,以便8259A將將ISR寄存器中相應位清寄存器中相應位清“0”,標志一級中斷處理過程完全結束。標志一級中斷處理過程完全結束。8259A在完全嵌套方式下,可采用以下在完全嵌套方式下,可采用以下3種中斷結束種中斷結束方式:方式:(1) 普通普通EOI方式:方式: 當任何一級中斷服務程序結束時,當任何一級中斷服務程序結束時,只給只給8259A傳送一個傳送一個EOI結束命令,結束命令,8259A收到這收到這個個EOI命令后,自動將命令后,自動將ISR寄存器中級別最高的置寄存器中級別最高的置“1”位清位清“0”。這種結束方式最簡單,但是只有當。這種結
20、束方式最簡單,但是只有當前結束的中斷總是尚未處理完的級別最高的中斷時,前結束的中斷總是尚未處理完的級別最高的中斷時,才能使用這種結束方式。這就是說,如果在中斷服才能使用這種結束方式。這就是說,如果在中斷服務程序中曾經修改過中斷級別,則決不能采用這種務程序中曾經修改過中斷級別,則決不能采用這種方式,否則會造成嚴重后果。方式,否則會造成嚴重后果。(2) 特殊特殊EOI方式:方式: 在普通在普通EOI方式的基礎上,當中方式的基礎上,當中斷服務程序結束給斷服務程序結束給8259A發(fā)出發(fā)出EOI命令的同時,將命令的同時,將當前結束的中斷級別也傳送給當前結束的中斷級別也傳送給8259A,就被稱作特,就被稱
21、作特殊殊EOI方式。這種情況下,方式。這種情況下,8259A將將ISR寄存器中寄存器中指定級別的相應位清指定級別的相應位清“0”,顯然這種結束方式可在,顯然這種結束方式可在任何情況下使用。任何情況下使用。(3) 自動自動EOI方式:方式: 任何一級中斷被響應后,任何一級中斷被響應后,ISR寄寄存器中相應位置存器中相應位置“1”,CPU將進入中斷響應總線周將進入中斷響應總線周期,在第期,在第2個中斷響應信號個中斷響應信號(INTA)結束時,自動將結束時,自動將ISR寄存器中相應位清寄存器中相應位清“0”,被稱作自動,被稱作自動EOI方式。方式。采用這種結束方式,當中斷服務程序結束時,采用這種結束
22、方式,當中斷服務程序結束時,CPU不用向不用向8259A回送任何信息,這顯然是一種最簡單回送任何信息,這顯然是一種最簡單的結束方式。但是存在一個明顯的缺點,任何的結束方式。但是存在一個明顯的缺點,任何一級中斷在執(zhí)行中斷服務程序期間,在一級中斷在執(zhí)行中斷服務程序期間,在8259A中沒中沒有留下任何標志,如果在此過程中出現(xiàn)了新的中斷有留下任何標志,如果在此過程中出現(xiàn)了新的中斷請求,則只要當前請求,則只要當前IF=1,不管新出現(xiàn)的中斷級別如,不管新出現(xiàn)的中斷級別如何,都將打斷正在執(zhí)行的中斷服務程序而被優(yōu)先執(zhí)何,都將打斷正在執(zhí)行的中斷服務程序而被優(yōu)先執(zhí)行,這就有可能出現(xiàn)低級中斷打斷高級中斷或同級行,這
23、就有可能出現(xiàn)低級中斷打斷高級中斷或同級中斷相互打斷的不合理現(xiàn)象,通常將這種情況稱作中斷相互打斷的不合理現(xiàn)象,通常將這種情況稱作“重復嵌套重復嵌套”,重復嵌套的深度無法控制,很可能,重復嵌套的深度無法控制,很可能造成某些高級中斷得不到及時處理的情況,這顯然造成某些高級中斷得不到及時處理的情況,這顯然是不允許的,因此使用自動是不允許的,因此使用自動EOI方式一定要特別小方式一定要特別小心。對于一些以預定的速率發(fā)生的中斷,在肯定不心。對于一些以預定的速率發(fā)生的中斷,在肯定不會產生重復嵌套的情況下,采用自動會產生重復嵌套的情況下,采用自動EOI方式是最方式是最理想的。理想的。2. 自動循環(huán)方式自動循環(huán)
24、方式上述完全嵌套方式中,中斷請求上述完全嵌套方式中,中斷請求IR7IR0的優(yōu)先級別的優(yōu)先級別是固定不變的,使得從是固定不變的,使得從IR0引入的中斷總是具有最引入的中斷總是具有最高的優(yōu)先級,其他任何中斷都有可能被它打斷,卻高的優(yōu)先級,其他任何中斷都有可能被它打斷,卻無法打斷它。實際上很可能出現(xiàn)由無法打斷它。實際上很可能出現(xiàn)由IR0IR7引入的引入的各級中斷的重要性差別不大的情況,所以,希望它各級中斷的重要性差別不大的情況,所以,希望它們的中斷級別不是固定不變的,而是可以以某種策們的中斷級別不是固定不變的,而是可以以某種策略改變它們的優(yōu)先級別。自動循環(huán)方式是改變中斷略改變它們的優(yōu)先級別。自動循環(huán)
25、方式是改變中斷請求優(yōu)先級別的策略之一,其基本思想是:每當任請求優(yōu)先級別的策略之一,其基本思想是:每當任何一級中斷被處理完,它的優(yōu)先級別就被改變?yōu)樽詈我患壷袛啾惶幚硗?,它的?yōu)先級別就被改變?yōu)樽畹图?,而將最高?yōu)先級賦給原來比它低一級的中斷低級,而將最高優(yōu)先級賦給原來比它低一級的中斷請求。請求。實現(xiàn)自動循環(huán)方式有下面實現(xiàn)自動循環(huán)方式有下面3種不同的做法:種不同的做法:(1) 普通普通EOI循環(huán)方式:循環(huán)方式: 當任何一級中斷被處理完后,當任何一級中斷被處理完后,CPU給給8259A回送普通回送普通EOI命令,命令,8259A接收到這一命令后將接收到這一命令后將ISR寄存器中優(yōu)先級最高的置寄存器中優(yōu)先
26、級最高的置“1”位清位清“0”,并賦給它最,并賦給它最低優(yōu)先級,而將最高優(yōu)先級賦給原來比它低一級的中斷低優(yōu)先級,而將最高優(yōu)先級賦給原來比它低一級的中斷請求,其他中斷請求的優(yōu)先級別以循環(huán)方式類推。例如,請求,其他中斷請求的優(yōu)先級別以循環(huán)方式類推。例如,某系統(tǒng)中原來定義的是某系統(tǒng)中原來定義的是IR0為最高級,為最高級,IR7為最低級,當為最低級,當前正在處理前正在處理IR2和和IR6引入的中斷請求,因此,引入的中斷請求,因此,ISR寄存器寄存器中第中第2位和第位和第6位置位置“1”,待第,待第2級中斷處理完,級中斷處理完,CPU向向8259A回送普通回送普通EOI命令,命令,8259A將將ISR寄
27、存器中級別高寄存器中級別高的第的第2位清位清“0”,并將其優(yōu)先級由原定義的第,并將其優(yōu)先級由原定義的第2級改變?yōu)榧壐淖優(yōu)樽畹图壸畹图?第第7級級),而將最高級,而將最高級(第第0級級)賦給原來的第賦給原來的第3級級(ISR3),其他級的優(yōu)先權按循環(huán)方式依次改變?yōu)樾碌募墑e。,其他級的優(yōu)先權按循環(huán)方式依次改變?yōu)樾碌募墑e。待原來的待原來的6級中斷處理完后,同樣在普通級中斷處理完后,同樣在普通EOI命令控制下,命令控制下,將將ISR中的第中的第6位清位清“0”,并將其優(yōu)先級由第,并將其優(yōu)先級由第3級改變?yōu)樽罴壐淖優(yōu)樽畹图墸鴮⒆罡呒壻x給由低級,而將最高級賦給由ISR7所對應的中斷請求。所對應的中斷請求
28、。(2) 自動自動EOI循環(huán)方式:任何一級中斷響應后,在中循環(huán)方式:任何一級中斷響應后,在中斷響應總線周期中,由第斷響應總線周期中,由第2個中斷響應信號個中斷響應信號 INTA 的后沿自動將的后沿自動將ISR寄存器中相應位清寄存器中相應位清“0”,并立即,并立即改變各級中斷的優(yōu)先級別,改變方案與上述普通改變各級中斷的優(yōu)先級別,改變方案與上述普通EOI循環(huán)方式相同。循環(huán)方式相同。采用這種自動采用這種自動EOI循環(huán)方式與前述的自動循環(huán)方式與前述的自動EOI方式一方式一樣,有可能出現(xiàn)樣,有可能出現(xiàn)“重復嵌套重復嵌套”現(xiàn)象,使用中要特別現(xiàn)象,使用中要特別小心,否則有可能造成嚴重后果。小心,否則有可能造
29、成嚴重后果。(3) 特殊特殊EOI循環(huán)方式:循環(huán)方式: 前述的普通前述的普通EOI循環(huán)和自動循環(huán)和自動EOI循環(huán)都是將最低優(yōu)先權賦給剛剛處理完的中斷循環(huán)都是將最低優(yōu)先權賦給剛剛處理完的中斷請求。特殊請求。特殊EOI循環(huán)方式具有更大的靈活性,它可循環(huán)方式具有更大的靈活性,它可根據(jù)用戶要求將最低優(yōu)先級賦給指定的中斷源。用根據(jù)用戶要求將最低優(yōu)先級賦給指定的中斷源。用戶可在主程序或中斷服務程序中利用置位優(yōu)先權命戶可在主程序或中斷服務程序中利用置位優(yōu)先權命令把最低優(yōu)先級賦給某一中斷源令把最低優(yōu)先級賦給某一中斷源IRi,于是最高優(yōu),于是最高優(yōu)先級便賦給先級便賦給IRi+1,其他各級按循環(huán)方式類推。例如,其
30、他各級按循環(huán)方式類推。例如,在某一時刻,在某一時刻,8259A中的中的ISR寄存器的第寄存器的第2位和第位和第6位置位置“1”,表示當前,表示當前CPU正在處理第正在處理第2級和第級和第6級中級中斷。它們以嵌套方式引入系統(tǒng),如果當前斷。它們以嵌套方式引入系統(tǒng),如果當前CPU正在正在執(zhí)行優(yōu)先級高的第執(zhí)行優(yōu)先級高的第2級中斷服務程序,用戶在該中級中斷服務程序,用戶在該中斷服務程序中安排了一條優(yōu)先權置位指令,將最低斷服務程序中安排了一條優(yōu)先權置位指令,將最低級優(yōu)先權賦給級優(yōu)先權賦給IR4,那么待這條指令執(zhí)行完畢,各,那么待這條指令執(zhí)行完畢,各中斷源的優(yōu)先級便發(fā)生變化,中斷源的優(yōu)先級便發(fā)生變化,IR4
31、具有最低優(yōu)先級,具有最低優(yōu)先級,IR5則具有最高優(yōu)先級,但這時第則具有最高優(yōu)先級,但這時第2級中斷服務程序級中斷服務程序并沒有結束,因此,并沒有結束,因此,ISR寄存器中仍保持第寄存器中仍保持第2位和位和第第6位置位置“1”,只是它們的優(yōu)先級別已經分別被改,只是它們的優(yōu)先級別已經分別被改變?yōu)榈谧優(yōu)榈?級和第級和第1級。級。顯然,使用了置位優(yōu)先權指令后,正在處理的中斷顯然,使用了置位優(yōu)先權指令后,正在處理的中斷不一定在尚未處理完的中斷中具有最高優(yōu)先級。上不一定在尚未處理完的中斷中具有最高優(yōu)先級。上例中,原來優(yōu)先級高的第例中,原來優(yōu)先級高的第2級現(xiàn)在變成了第級現(xiàn)在變成了第5級,而級,而原來的第原來
32、的第6級現(xiàn)在上升為第級現(xiàn)在上升為第1級。這種情況下當?shù)诩?。這種情況下當?shù)?級中斷服務程序結束時,不能使用普通級中斷服務程序結束時,不能使用普通EOI方式,方式,而必須使用特殊而必須使用特殊EOI方式,就是說向方式,就是說向8259A發(fā)送發(fā)送IR結束命令的同時,還應將結束命令的同時,還應將IR2的當前級別的當前級別(第第5級級)傳送給傳送給8259A,8259A才能正確地將才能正確地將ISR寄存器中的寄存器中的第第2位清位清“0”。3. 中斷屏蔽方式中斷屏蔽方式對中斷優(yōu)先級的管理還可采用中斷屏蔽方式,對中斷優(yōu)先級的管理還可采用中斷屏蔽方式,CPU在任何時候都可安排一條清除中斷標志指令在任何時候都
33、可安排一條清除中斷標志指令(CLI),將中斷標志位清將中斷標志位清“0”,從此以后,從此以后,CPU將禁止所有將禁止所有的由的由INTR端引入的可屏蔽中斷請求。這是由端引入的可屏蔽中斷請求。這是由CPU自己完成的中斷屏蔽功能,它只能對所有的可屏蔽自己完成的中斷屏蔽功能,它只能對所有的可屏蔽中斷一起進行屏蔽,而無法有選擇地對某一級或幾中斷一起進行屏蔽,而無法有選擇地對某一級或幾級中斷進行屏蔽。這種屏蔽操作可由級中斷進行屏蔽。這種屏蔽操作可由8259A通過中通過中斷屏蔽寄存器來實現(xiàn),有兩種實現(xiàn)方式:斷屏蔽寄存器來實現(xiàn),有兩種實現(xiàn)方式:(1) 普通屏蔽方式:普通屏蔽方式: 將中斷屏蔽寄存器將中斷屏蔽
34、寄存器IMR中的某一中的某一位或某幾位置位或某幾位置“1”,即可將相應級的中斷請求屏蔽,即可將相應級的中斷請求屏蔽掉。這種屏蔽方式可在兩種情況下使用。其一是當?shù)?。這種屏蔽方式可在兩種情況下使用。其一是當CPU在執(zhí)行主程序時,要求禁止響應某級或某幾級在執(zhí)行主程序時,要求禁止響應某級或某幾級中斷時,可在主程序中將中斷時,可在主程序中將IMR寄存器的相應位置寄存器的相應位置“1”;其二是;其二是CPU在處理某級中斷過程中,要求禁在處理某級中斷過程中,要求禁止級別比它高的某一級或某幾級中斷時,可在中斷止級別比它高的某一級或某幾級中斷時,可在中斷服務程序中將服務程序中將IMR寄存器的相應位置寄存器的相應
35、位置“1”,這樣所,這樣所實現(xiàn)的稱作普通屏蔽方式。實現(xiàn)的稱作普通屏蔽方式。(2) 特殊屏蔽方式:特殊屏蔽方式: 當當CPU正在處理某級中斷時,要正在處理某級中斷時,要求僅對本級中斷進行屏蔽,而允許其他優(yōu)先級比它求僅對本級中斷進行屏蔽,而允許其他優(yōu)先級比它高或低的中斷進入系統(tǒng),這被稱作特殊屏蔽方式。高或低的中斷進入系統(tǒng),這被稱作特殊屏蔽方式。對對8259A進行初始化時,可利用控制寄存器的進行初始化時,可利用控制寄存器的SMM位的置位來使位的置位來使8259A進入這種特殊屏蔽方式。進入這種特殊屏蔽方式。例如,若當前正在執(zhí)行例如,若當前正在執(zhí)行IR3的中斷服務程序,希望的中斷服務程序,希望進入特殊屏
36、蔽方式時,只需在進入特殊屏蔽方式時,只需在STI指令后,將指令后,將IMR寄存器的第寄存器的第3位置位置“1”,并將控制寄存器的,并將控制寄存器的SMM位位置置“1”,標志,標志8259A已進入特殊屏蔽方式。此后,已進入特殊屏蔽方式。此后,除除IR3之外,其他任何級的中斷均可進入,待之外,其他任何級的中斷均可進入,待IR3的的中斷服務程序結束時,應將中斷服務程序結束時,應將IMR寄存器的第寄存器的第3位復位復位,并將位,并將SMM位復位,標志退出特殊屏蔽方式,位復位,標志退出特殊屏蔽方式,然后利用特殊然后利用特殊EOI方式,由方式,由8259A將將ISR寄存器的寄存器的第第3位清位清“0”。9
37、.1.3 8259A芯片的級聯(lián)使用芯片的級聯(lián)使用一片一片8259A芯片只能管理芯片只能管理8級中斷,在多于級中斷,在多于8級中級中斷的系統(tǒng)中,必須將多片斷的系統(tǒng)中,必須將多片8259A級聯(lián)使用。級聯(lián)使用。最簡單的級聯(lián)方式為兩級,第最簡單的級聯(lián)方式為兩級,第1級只需一片級只需一片8259A用作主片,第用作主片,第2級可接級可接18片片8259A用作從片,用作從片,如圖如圖9.5所示。所示。圖圖9.5兩級級聯(lián)情況下可管理的中斷源最多為兩級級聯(lián)情況下可管理的中斷源最多為64級,如果級,如果還要增多中斷源數(shù)量,可進一步擴展為多級級聯(lián)。還要增多中斷源數(shù)量,可進一步擴展為多級級聯(lián)。8259A級聯(lián)使用時,主
38、級聯(lián)使用時,主8259A上沒有連接從上沒有連接從8259A的的IRi端,可直接與中斷源相連。這種方式下,對端,可直接與中斷源相連。這種方式下,對8259A初始化時,應使用支持級聯(lián)方式的控制字進初始化時,應使用支持級聯(lián)方式的控制字進行定義。在行定義。在8259A級聯(lián)系統(tǒng)中,某一片從級聯(lián)系統(tǒng)中,某一片從8259A的的IRi端接收到一個或多個中斷請求信號時,經過判端接收到一個或多個中斷請求信號時,經過判優(yōu)可確定當前的最高級中斷得到響應,并通過優(yōu)可確定當前的最高級中斷得到響應,并通過INT向主向主8259A發(fā)出請求;經主發(fā)出請求;經主8259A再次判優(yōu)確認是再次判優(yōu)確認是當前最高級中斷時,向當前最高級
39、中斷時,向CPU發(fā)出中斷請求信號發(fā)出中斷請求信號INT,以后的過程與單級使用時類似。對以后的過程與單級使用時類似。對CPU來說,來說,8259A的單級使用和級聯(lián)使用區(qū)別不大。的單級使用和級聯(lián)使用區(qū)別不大。8259A在級聯(lián)使用方式下的中斷響應總線周期時序圖在級聯(lián)使用方式下的中斷響應總線周期時序圖如圖如圖9.6所示。第所示。第1個個INTA有效時,主有效時,主8259A將級聯(lián)將級聯(lián)地址從地址從CAS2CAS0 3端輸出給所有的從端輸出給所有的從8259A芯片,芯片,到第到第2個個INTA有效時,與主有效時,與主8259A發(fā)出的級聯(lián)地址發(fā)出的級聯(lián)地址相符的從相符的從8259A將向將向CPU送出當前的
40、中斷類型碼送出當前的中斷類型碼n,以后的操作過程與單級使用時相同。以后的操作過程與單級使用時相同。圖圖9.6當從當從8259A引入的中斷處理過程結束時,引入的中斷處理過程結束時,CPU應能送應能送出兩個出兩個EOI結束命令,一個送給主結束命令,一個送給主8259A,用來將,用來將主主8259A中的中的ISR寄存器的相應位清寄存器的相應位清“0”;另一個;另一個送給從送給從8259A,用來將從,用來將從8259A中的中的ISR寄存器相應寄存器相應位清位清“0”,才標志一次中斷處理過程的結束。,才標志一次中斷處理過程的結束。某系統(tǒng)中某系統(tǒng)中8086 CPU工作在最小模式,中斷系統(tǒng)由一工作在最小模式
41、,中斷系統(tǒng)由一片主片主8259A、2片從片從8259A構成級聯(lián)方式工作,其系構成級聯(lián)方式工作,其系統(tǒng)連接如圖統(tǒng)連接如圖9.7所示。所示。圖圖9.7整個系統(tǒng)最多可引入整個系統(tǒng)最多可引入22級中斷請求信號,級中斷請求信號,1從從8259A引入的引入的8級中斷通過主級中斷通過主8259A的的IR6端引入,端引入,2從從8259A引入的引入的8級中斷通過主級中斷通過主8259A的的IR4端引端引入,主入,主8259A上其他的上其他的6個個IRi端可直接引入其他中端可直接引入其他中斷請求。如果初始化時將它們定義為完全嵌套方式,斷請求。如果初始化時將它們定義為完全嵌套方式,意味著意味著2從從8259A引入
42、的中斷請求優(yōu)先級別高于引入的中斷請求優(yōu)先級別高于1從從8259A引入的中斷請求,它們由主引入的中斷請求,它們由主8259A完成完成判優(yōu)功能后才能引入系統(tǒng)。判優(yōu)功能后才能引入系統(tǒng)。假定在某一時刻,假定在某一時刻,1從從8259A的的IR7端接收到一個中端接收到一個中斷請求,經斷請求,經1從從8259A判優(yōu)后決定響應這一中斷判優(yōu)后決定響應這一中斷請求,將請求,將ISR寄存器中第寄存器中第7位置位置“1”,于是通過,于是通過INT向主向主8259A的的IR6端發(fā)出請求,經主端發(fā)出請求,經主8259A再次判優(yōu),再次判優(yōu),決定響應這一請求時,才將主決定響應這一請求時,才將主8259A中中ISR寄存器的第
43、寄存器的第6位置位置“1”,CPU將從中斷入口地將從中斷入口地址表中得到相應的入口地址,轉去執(zhí)行中斷服務程址表中得到相應的入口地址,轉去執(zhí)行中斷服務程序。如果在執(zhí)行該中斷服務程序過程中,序。如果在執(zhí)行該中斷服務程序過程中,1從從8259A的的IR0端接收到一個新的中斷請求。根據(jù)中端接收到一個新的中斷請求。根據(jù)中斷嵌套原則,在斷嵌套原則,在1從從8259A中中IR0優(yōu)先級別高于優(yōu)先級別高于IR7,應該允許新的中斷請求進入,將應該允許新的中斷請求進入,將ISR寄存器中第寄存器中第0位置位置“1”,并通過,并通過INT向主向主8259A的的IR6端再次發(fā)出端再次發(fā)出請求。但這時由于主請求。但這時由于
44、主8259A中中ISR寄存器的第寄存器的第6位早位早已置已置“1”,不允許這一級中斷再進入,這便造成,不允許這一級中斷再進入,這便造成1從從8259A不能按完全嵌套方式工作,這顯然是不不能按完全嵌套方式工作,這顯然是不合理的。為此,需要采取特殊措施來解決這個問題。合理的。為此,需要采取特殊措施來解決這個問題。一種可取的方式被稱作特殊完全嵌套方式,它只在一種可取的方式被稱作特殊完全嵌套方式,它只在級聯(lián)方式下有效。當中斷系統(tǒng)工作在級聯(lián)方式,對級聯(lián)方式下有效。當中斷系統(tǒng)工作在級聯(lián)方式,對主主8259A初始化時,應將它定義為特殊完全嵌套方初始化時,應將它定義為特殊完全嵌套方式。式。采用特殊完全嵌套方式
45、的中斷級聯(lián)系統(tǒng)中,任一個采用特殊完全嵌套方式的中斷級聯(lián)系統(tǒng)中,任一個從從8259A接收到一個中斷請求經判優(yōu)確定為當前最接收到一個中斷請求經判優(yōu)確定為當前最高優(yōu)先級應該響應這一中斷請求時,立即通過高優(yōu)先級應該響應這一中斷請求時,立即通過INT端向主端向主8259的相應的相應IRi端提出請求。如果這時主端提出請求。如果這時主8259A中中ISR寄存器的相應位已經置寄存器的相應位已經置“1”,說明當,說明當前在同一個從前在同一個從8259A中接收到了比原先更高級的中中接收到了比原先更高級的中斷請求,主斷請求,主8259A應允許它進入;只要它是當前主應允許它進入;只要它是當前主8259A中最高級的中斷
46、請求,就應通過中最高級的中斷請求,就應通過INT向向CPU發(fā)出新的中斷請求,發(fā)出新的中斷請求,CPU將打斷原來的中斷服務程將打斷原來的中斷服務程序而優(yōu)先處理這一中斷請求,轉去執(zhí)行相應的中斷序而優(yōu)先處理這一中斷請求,轉去執(zhí)行相應的中斷服務程序,以保證任一從服務程序,以保證任一從8259A控制器能按完全嵌控制器能按完全嵌套方式正常操作。套方式正常操作。上述情況下,當上述情況下,當1號從號從8259A從從IR7端接收到中斷請端接收到中斷請求時,中斷請求寄存器求時,中斷請求寄存器IRR將被置成如下狀態(tài):將被置成如下狀態(tài): 7 0IRR10000000(#1號從號從8259A)經判優(yōu)線路確定為當前經判優(yōu)
47、線路確定為當前#1號從號從8259A中最高優(yōu)先級時,中最高優(yōu)先級時,將將ISR寄存器置成如下狀態(tài):寄存器置成如下狀態(tài):7 0 ISR10000000(#1號從號從8259A)然后將然后將IRR寄存器復位為全寄存器復位為全“0”,并通過,并通過INT向主向主8259A的的IR6端發(fā)出請求,將主端發(fā)出請求,將主8259A中的中的IRR寄存寄存器置成如下狀態(tài):器置成如下狀態(tài):7 0IRR01000000(主主8259A)經主經主8259A判優(yōu)確定為當前主判優(yōu)確定為當前主8259A中最高優(yōu)先級時,中最高優(yōu)先級時,將將ISR寄存器置成如下狀態(tài):寄存器置成如下狀態(tài):7 0 ISR01000000(主主82
48、59A)然后將然后將IRR寄存器復位為全寄存器復位為全“0”,并通過,并通過INT向向CPU發(fā)出中斷請求信號發(fā)出中斷請求信號INTR。待待CPU執(zhí)行完當前指令訪問到執(zhí)行完當前指令訪問到INTR有效時暫停執(zhí)行有效時暫停執(zhí)行下條指令進入中斷響應總線周期,獲得中斷類型碼下條指令進入中斷響應總線周期,獲得中斷類型碼后,可轉去執(zhí)行相應中斷服務程序。后,可轉去執(zhí)行相應中斷服務程序。在在CPU執(zhí)行上述中斷服務程序過程中執(zhí)行上述中斷服務程序過程中#1從從8259A從從IR0端接收到一個新的中斷請求,端接收到一個新的中斷請求,IRR寄存器被置寄存器被置成如下狀態(tài):成如下狀態(tài):7 0 ISR00000001(#1
49、號從號從8259A)經判優(yōu)線路與正在服務的中斷請求經判優(yōu)線路與正在服務的中斷請求IR7比較它具有更比較它具有更高的優(yōu)先級,應允許它進入系統(tǒng)而被優(yōu)先處理,于高的優(yōu)先級,應允許它進入系統(tǒng)而被優(yōu)先處理,于是將是將ISR寄存器置成如下狀態(tài):寄存器置成如下狀態(tài):7 0 ISR10000001(#1號從號從8259A)然后將然后將IRR寄存器復位為全寄存器復位為全“0”,并通過,并通過INT再次向再次向主主8259A的的IR6端發(fā)出請求,由于采用特殊完全嵌端發(fā)出請求,由于采用特殊完全嵌套方式,主套方式,主8259A將允許新的中斷請求參加判優(yōu),將允許新的中斷請求參加判優(yōu),當確定為當前最高優(yōu)先級時,保持當確定
50、為當前最高優(yōu)先級時,保持ISR寄存器的狀寄存器的狀態(tài)不變,如下所示:態(tài)不變,如下所示:7 0 ISR01000000(主主8259A)并再次向并再次向CPU發(fā)出中斷請求發(fā)出中斷請求INT,CPU將暫停執(zhí)行原將暫停執(zhí)行原來的中斷服務程序而轉去執(zhí)行新的更高級的中斷服來的中斷服務程序而轉去執(zhí)行新的更高級的中斷服務程序,實現(xiàn)在級聯(lián)方式下的完全嵌套過程。務程序,實現(xiàn)在級聯(lián)方式下的完全嵌套過程。9.1.4 8259A芯片的控制字及其工作方式芯片的控制字及其工作方式可編程中斷控制器可編程中斷控制器8259A的初始化操作可明確地分成的初始化操作可明確地分成兩個部分,首先要通過預置命令字兩個部分,首先要通過預置
51、命令字(ICWi)對對8259A進行初始化,然后進行初始化,然后8259A將自動進入操作模式??蓪⒆詣舆M入操作模式??稍谠?259A操作過程中通過操作命令字操作過程中通過操作命令字(OCWi)來定來定義義8259A的操作方式,而且在的操作方式,而且在8259A的操作過程中的操作過程中允許重置操作命令字,以動態(tài)地改變允許重置操作命令字,以動態(tài)地改變8259A的操作的操作與控制方式。與控制方式。每片每片8259A包含兩個內部端口地址,一個偶地址端口包含兩個內部端口地址,一個偶地址端口(A0=0),一個奇地址端口,一個奇地址端口(A01),其他高位地址碼由,其他高位地址碼由用戶定義,用來作為用戶定義
52、,用來作為8259A的片選信號的片選信號(CS)。1. 預置命令字預置命令字8259A的預置命令字共的預置命令字共4個個(ICW1ICW4)。不是。不是任何情況下都需要設置個預置命令字,可根任何情況下都需要設置個預置命令字,可根據(jù)據(jù)8259A的使用情況來選取,它們的設置流程的使用情況來選取,它們的設置流程如圖如圖9.8所示。所示。圖圖9.8從圖從圖9.9中可看出,中可看出,ICW1和和ICW2是必須的,是必須的,ICW3是是級聯(lián)使用時才需要設置,級聯(lián)使用時才需要設置,ICW4是在是在8086/8088-8259A配置系統(tǒng)中需要設置。配置系統(tǒng)中需要設置。(1) ICW1具體格式如圖具體格式如圖9
53、.9所示。所示。圖圖9.9端口地址為偶地址端口地址為偶地址(A0=0),D4表示當前寫入表示當前寫入8259A的的是預置命令字是預置命令字ICW1。IC4位用來說明是否需要設置位用來說明是否需要設置1CW4,對于,對于8086/8088系統(tǒng)系統(tǒng)中使用的中使用的8259A,IC4位恒置位恒置1,需要設置,需要設置ICW4來對來對8259A進行初始化。進行初始化。SNGL位用來說明中斷系統(tǒng)中是一片位用來說明中斷系統(tǒng)中是一片8259A單獨使用,還單獨使用,還是多片是多片8259A級聯(lián)使用。單級使用時應將級聯(lián)使用。單級使用時應將SNGL位置位置“1”。ADI位對位對8086/8088系統(tǒng)無效。系統(tǒng)無效
54、。LTIM位用來定義中斷請求信號的觸發(fā)方式。位用來定義中斷請求信號的觸發(fā)方式。LTIM=1時,時,表示表示IRi端上出現(xiàn)高電平為有效,端上出現(xiàn)高電平為有效,LTIM=0時,表示時,表示IRi端出現(xiàn)由低電平向高電平的正跳變沿為有效。端出現(xiàn)由低電平向高電平的正跳變沿為有效。(2) ICW2具體格式如圖具體格式如圖9.10所示。所示。圖圖9.10緊跟在緊跟在ICW1之后,端口地址為奇地址之后,端口地址為奇地址(A0=1)表示當表示當前寫入前寫入8259A的是預置命令字的是預置命令字ICW2,由它定義中斷,由它定義中斷類型碼的高類型碼的高5位。低位。低3位取決于當前的中斷請求是由位取決于當前的中斷請求
55、是由IR7IR0中哪一個端輸入。由此可確定當前中斷請中哪一個端輸入。由此可確定當前中斷請求的中斷類型碼。求的中斷類型碼。(3) ICW3只對級聯(lián)方式有效,端口地址為奇地址。對只對級聯(lián)方式有效,端口地址為奇地址。對于主于主8259A,使用格式如圖,使用格式如圖9.11(a)所示,對于從所示,對于從8259A的使用格式如圖的使用格式如圖9.11(b)所示。所示。圖圖9.11ID2ID0用來表明該從用來表明該從8259A是接在主是接在主8259A的哪個的哪個IR端上,例如某片從端上,例如某片從8259A的的ID2ID1ID0=100,則,則表示該從表示該從8259A是接在主是接在主8259A的的IR
56、4端上。端上。(4) ICW4對于對于8086/8088系統(tǒng)是必須設置的預置命令系統(tǒng)是必須設置的預置命令字,其具體格式如圖字,其具體格式如圖9.12所示。所示。圖圖9.12端口地址為奇地址端口地址為奇地址(A0=1),PM位對于位對于8086/8088系系統(tǒng)配置來說恒置統(tǒng)配置來說恒置“1”,AEOI用來定義是否采用自用來定義是否采用自動動EOI方式,方式,SFNM用來定義在級聯(lián)方式下是否采用來定義在級聯(lián)方式下是否采用特殊完全嵌套方式,在單級使用方式下用特殊完全嵌套方式,在單級使用方式下SFNM位位無效。無效。BUF位用來表明位用來表明8259A是否采用緩沖方式,如果是否采用緩沖方式,如果BUF
57、位為位為1,表示采用緩沖方式,這時雙功能信號線,表示采用緩沖方式,這時雙功能信號線 EN 有效。有效。EN=0,表示允許緩沖存儲器輸出,表示允許緩沖存儲器輸出,EN=1,表示允許緩沖存儲器輸入。這種情況下由表示允許緩沖存儲器輸入。這種情況下由M/S位定位定義主從關系。義主從關系。M/S=1,表示該片是主,表示該片是主8259A,M/S=0,表示該片是從,表示該片是從8259A。如果。如果BUF位為位為0,表,表示不采用緩沖方式,這時雙功能信號線示不采用緩沖方式,這時雙功能信號線 SP有效,有效,SP=0表示該片是從表示該片是從8259A,SP=1,表示是主,表示是主8259A,這種情況下這種情
58、況下M/S位無效。位無效。當當8086系統(tǒng)中系統(tǒng)中8259A單級使用,其端口地址為單級使用,其端口地址為80H和和81H,可用下面的初始化程序段來寫入預置命令字,可用下面的初始化程序段來寫入預置命令字ICW1ICW4:MOV AL,13H定義定義ICW1OUT 80H,AL;MOV AL,18H定義定義ICW2OUT 81H,AL;MOV AL,01H定義定義ICW4OUT 81H,AL;所設定的預置命令字具體格式及含義如圖所設定的預置命令字具體格式及含義如圖9.13所示。所示。由由ICW2可確定該可確定該8259A引入的引入的8級中斷的中斷類型碼級中斷的中斷類型碼為為18H1FH。2. 操作
59、命令字操作命令字8259A經經ICWi預置后已進入初始化狀態(tài),可接收來預置后已進入初始化狀態(tài),可接收來自自IRi端的中斷請求。自動進入操作命令狀態(tài),準端的中斷請求。自動進入操作命令狀態(tài),準備接收備接收CPU寫入寫入8259A的操作命令字的操作命令字OCWi。(1) OCW1用來實現(xiàn)中斷屏蔽功能,其端口地址為奇用來實現(xiàn)中斷屏蔽功能,其端口地址為奇地址地址(A01),OCW1內容被直接置入中斷屏蔽寄存內容被直接置入中斷屏蔽寄存器器IMR中,其格式如下:中,其格式如下:A0 7 01M7 M6 M5 M4 M3 M2 M1 M0Mi= 1:屏蔽由屏蔽由IRi引入的中斷請求引入的中斷請求 0:允許允許
60、IRi端中斷請求進入端中斷請求進入圖圖9.13(2) OCW2用來定義中斷結束方式,其端口地址為偶用來定義中斷結束方式,其端口地址為偶地址地址(A0=0),其格式如圖,其格式如圖9.14所示。所示。圖圖9.14由由R,SL,EOI 3位編碼可定義多種不同的中斷結束位編碼可定義多種不同的中斷結束方式或發(fā)出置位優(yōu)先權命令。方式或發(fā)出置位優(yōu)先權命令。當當3位編碼為位編碼為“001”,則定義,則定義8259A采用普通采用普通EOI結結束方式,一旦中斷服務程序結束,將給束方式,一旦中斷服務程序結束,將給8259A送出送出EOI結束命令,結束命令,8259A將將ISR寄存器中當前級別最寄存器中當前級別最高
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國射頻功率放大器行業(yè)開拓第二增長曲線戰(zhàn)略制定與實施研究報告
- 2025-2030年中國企業(yè)管理培訓行業(yè)營銷創(chuàng)新戰(zhàn)略制定與實施研究報告
- 2025-2030年中國新型健康服務行業(yè)資本規(guī)劃與股權融資戰(zhàn)略制定與實施研究報告
- 新形勢下高空作業(yè)平臺行業(yè)快速做大市場規(guī)模戰(zhàn)略制定與實施研究報告
- 比較文學情境母題研究
- 建設無煙學校宣傳資料
- 建設培訓中心規(guī)章制度
- 初中地理會考知識點
- 2025年中國電信運營商行業(yè)全景評估及投資規(guī)劃建議報告
- 云南省楚雄州2023-2024學年九年級上學期期末教育學業(yè)質量監(jiān)測化學試卷
- 新版中國腦出血診治指南
- 高校搬遷可行性方案
- 充電樁選址優(yōu)化與布局規(guī)劃
- 科技產業(yè)園項目投資計劃書
- 苗木采購投標方案(技術標)
- JJF 1030-2023溫度校準用恒溫槽技術性能測試規(guī)范
- 輸變電工程安全文明施工設施標準化配置表
- 一銷基氯苯生產車間硝化工段工藝初步設計
- 自動控制原理仿真實驗課程智慧樹知到課后章節(jié)答案2023年下山東大學
- 【城市軌道交通運營安全管理研究9200字(論文)】
- 丁往道英語寫作手冊范本課件
評論
0/150
提交評論