版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第6章輸入輸出系統(tǒng)第6章
輸入輸出系統(tǒng)第一頁,共一百三十六頁。第6章輸入輸出系統(tǒng)6.1
輸入輸出接口系統(tǒng)概述第二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)I/O接口的概念(什么是I/O接口?)把外圍設(shè)備同微型計算機連接起來的電路稱為外設(shè)接口電路,簡稱外設(shè)接口。第三頁,共一百三十六頁。外設(shè)接口 ②可寫(不可讀)第6章輸入輸出系統(tǒng)第四頁,共一百三十六頁。主機(CPU)和I/O設(shè)備之間傳送的信息格式(1)數(shù)據(jù)信息:數(shù)字量(計算機可以直接接收和處理的數(shù)據(jù))模擬量·特點:①CPU開例關(guān)如量:對于輸入設(shè)備的(2)狀態(tài)信息“Ready”狀態(tài)信息是CPU對與于外輸設(shè)出之間設(shè)間設(shè)交備換的數(shù)“據(jù)Bu時sy的y的”聯(lián)絡(luò)信息。CPU通過讀取外設(shè)狀態(tài)信號,可知外設(shè)的工作狀態(tài)。特點:①CPU 外設(shè)接口 ②可讀(不可寫)(3)控制信息控制信息是設(shè)置I/O外設(shè)(包括I/O接口)的工作模式、
命令字的有關(guān)信息。
如“啟動”、“停止”信息。第6章輸入輸出系統(tǒng)I/O接口的基本功能(串為并什轉(zhuǎn)么換要,用如i/ao/接d,口d/電a
路)總的來說,I/O接口具有轉(zhuǎn)下?lián)Q述;三電方平面轉(zhuǎn)功換能等:。速度的匹配信息格式的變換提供主機和外設(shè)間傳送數(shù)據(jù)所必須的狀態(tài)和控制信息。第五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)I/O接口的基本結(jié)構(gòu)通常,每個接口電路包含一組寄存器:數(shù)據(jù)輸入\輸出寄存器、狀態(tài)寄存器、控制寄存器通常稱這些寄存器為I/O端口(I/O
PORT),每個端口有一個端口地址第六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)6.2
CPU與外設(shè)數(shù)據(jù)的傳輸控制方式第七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)CPU與外設(shè)數(shù)據(jù)的傳輸控制方式主要包括下面4種1、程序控制方式①無條件傳送方式②程序查詢方式2、中斷控制方式3、DMA方式4、IOP方式第八頁,共一百三十六頁。第6章輸入輸出系統(tǒng)1、程序控制方式①無條件傳送方式適用于總是處于準(zhǔn)備好狀態(tài)的外設(shè)優(yōu)點:軟件及接口硬件簡單缺點:只適用于簡單外設(shè),適應(yīng)范圍較窄如:開關(guān)、發(fā)光器件(如發(fā)光二極管、7段數(shù)碼管、燈泡等)、繼電器、步進電機第九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)顯然,CPU在執(zhí)行輸入指令時,要求外設(shè)的數(shù)據(jù)已經(jīng)準(zhǔn)備好,否則就會出錯。由于數(shù)據(jù)保持時間比CPU的由處于理外設(shè)速度較慢,要求接口有鎖時間長,輸入端必須用輸入存緩功沖能,
即CPU送給外設(shè)的數(shù)據(jù)應(yīng)(a器)與無C條PU件的傳數(shù)送據(jù)的總輸線入相方連方連。式該(b在)接無口條中件保傳持送一的段輸時間出間出。方式顯然,CPU在執(zhí)行輸出指令時,必須保證鎖存器是空閑的。從以上分析可以看出,無條件傳送是最簡便的傳送方式, 它所需的硬件和軟件都較少。第十頁,共一百三十六頁。第6章輸入輸出系統(tǒng)②查詢方式適用于外設(shè)并不總是你準(zhǔn)準(zhǔn)備備好好,沒而有且?對傳送速率、傳送效率要求不高的場合。對外設(shè)的要求:應(yīng)提供設(shè)備狀態(tài)信息對接口的要求:需要提供狀態(tài)端口CPU在與外設(shè)交換數(shù)據(jù)前必須詢問外設(shè)狀態(tài)
。優(yōu)點:軟件比較簡單缺點:CPU效率低,數(shù)據(jù)傳送的實時性差,速度較慢第十一頁,共一百三十六頁。第6章輸入輸出系統(tǒng)?數(shù)查據(jù)詢傳式送輸過入程的3個步驟:下①圖CP所U示先為讀查取詢狀式態(tài)輸字入的接口電路,該電路有兩個端口寄存器,②即檢狀查態(tài)狀口態(tài)寄字存表器明和明和數(shù)輸據(jù)入口設(shè)寄備存是器否。準(zhǔn)備就緒③如果準(zhǔn)備就緒,則執(zhí)行輸入指令讀取數(shù)據(jù),且使?fàn)顟B(tài)位復(fù)位。這樣便開始下一個數(shù)據(jù)傳輸過程。查詢輸入的程序段如下:SCAN:
IN
AL,Stat
_Port;取狀態(tài)信息TEST
AL,
01H
;
測狀態(tài)標(biāo)志JZSCAN;沒有準(zhǔn)備好繼續(xù)檢測INAL
,Data_Port;準(zhǔn)備好了,輸入數(shù)據(jù)第十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)當(dāng)輸入設(shè)備準(zhǔn)備好數(shù)據(jù)之后,發(fā)出選通信號。它一方面把輸入數(shù)據(jù)鎖存到數(shù)據(jù)鎖存器中,另一方面使?fàn)顟B(tài)標(biāo)志觸發(fā)器置1。狀態(tài)標(biāo)志是一位信號,通過緩沖器后,接到
CPU數(shù)據(jù)總線的某一位上,假設(shè)接至D7位。
CPU先讀狀態(tài)口,查詢D7是否為1。若D7=1,表示輸入數(shù)據(jù)已經(jīng)準(zhǔn)備好,再讀數(shù)據(jù)口,取走輸入數(shù)據(jù),同時使?fàn)顟B(tài)標(biāo)志觸發(fā)器復(fù)位第十三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)查詢式輸出當(dāng)CPU要往一個外設(shè)輸出數(shù)據(jù)時,先讀取接口中的狀態(tài)字,如果狀態(tài)字表明外設(shè)有“空”或“不忙”,可以往外設(shè)輸出數(shù)據(jù),此時CPU才執(zhí)行輸出指令,否則CPU等待。接口電路如圖:第十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)?數(shù)查據(jù)詢傳式送輸過出程的3個步驟:下①圖CP所U所U先示讀為取查狀詢態(tài)式字輸出的接口電路,該電路有兩個②端檢口查寄狀存態(tài)器字,表即明狀外態(tài)設(shè)態(tài)設(shè)是口否寄空存閑器(和即數(shù)不據(jù)忙口)寄存器。③如果空閑,則執(zhí)行輸出指令寫數(shù)據(jù),且使?fàn)顟B(tài)位清零。這樣便開始下一個數(shù)據(jù)傳輸過程。查詢輸出的程序段如下:SCAN:IN
AL,Stat
_Port;取狀態(tài)信息TEST
AL,
01H
; 測狀態(tài)標(biāo)志JNZ
SCAN;“忙”則繼續(xù)檢測OUT
Data_Port
,
AL;“空閑”則輸出數(shù)據(jù)第十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)輸出過程:當(dāng)前輸出設(shè)備空閑時,狀態(tài)標(biāo)志觸發(fā)器清0。CPU在輸出數(shù)據(jù)之前,先讀取狀態(tài)信息。假設(shè)忙閑標(biāo)志接至數(shù)據(jù)線D0位,當(dāng)D0=0時,表示輸出設(shè)備空閑,CPU再對數(shù)據(jù)口執(zhí)行輸出指令。數(shù)據(jù)口選中信號一方面把輸出數(shù)據(jù)寫入鎖存器,一方面使?fàn)顟B(tài)標(biāo)志觸發(fā)器置1,通知輸出設(shè)備。當(dāng)輸出設(shè)備取走當(dāng)前數(shù)據(jù)后,向接口發(fā)出確認(rèn)信號ACK,使?fàn)顟B(tài)標(biāo)志觸發(fā)器清0,表示輸出設(shè)備空閑。第十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)查詢輸出的程序段如下:SCAN:
IN
AL,狀態(tài)口地址為;取狀態(tài)信息TEST AL,
01H
;
測忙閑標(biāo)志JNZ
SCAN ;
忙,轉(zhuǎn)移MOV
AL,
某數(shù)OUT
數(shù)據(jù)口地址,AL;空閑,輸出數(shù)據(jù)第十七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2、中斷控制的輸入/輸出方式中斷控方制式的輸特入點和:輸出方式,也稱中斷傳送方式,即當(dāng)外a)設(shè)C的P的PU的輸?shù)妮斝肼蕯?shù)高據(jù),準(zhǔn)提備高好了或控接制收程數(shù)序據(jù)執(zhí)的行鎖的存實器時為性b)CPU與外設(shè)可并行工作空時,c)主外動設(shè)向具CP有U發(fā)申出請中服斷務(wù)請的求主,動使權(quán)CPU中斷原來執(zhí)行的程序(主程序),轉(zhuǎn)去執(zhí)行為外設(shè)服務(wù)的輸入或輸出操作,服務(wù)完畢,CPU再繼續(xù)執(zhí)行原來的程序。必須經(jīng)過(1)暫停主程序,實現(xiàn)程序的轉(zhuǎn)移,即中斷響應(yīng)。(2)保護和恢復(fù)有關(guān)寄存器內(nèi)容。(3)執(zhí)行
I/O操作,并實現(xiàn)內(nèi)存到累加器再到端口之間的傳送。(4)實現(xiàn)中斷返回。第十八頁,共一百三十六頁。中斷傳送時的接口電路如圖所示:輸入裝置鎖存器數(shù)據(jù)中斷類型碼+5VDQ三態(tài)緩沖器INTR去數(shù)據(jù)總線DB選通裝置中斷允許WR地址總線地址譯碼器IO/M
去數(shù)據(jù)總線DB三態(tài)緩沖器INTA(中斷響應(yīng)信號)第6章輸入輸出系統(tǒng)&&第十九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)3、直接存儲器存取(DMA:Direct
Memory
Access)控制方式在這種方式下,傳送的速度就只取決于存儲器和外概念:數(shù)據(jù)在I/O接口與存設(shè)儲的器工之作間速的速的傳度送。,這不大經(jīng)大CP提U的干預(yù),而是在專用硬件電路的控高制了下數(shù)直據(jù)接傳傳送送速。度這種。種。方法稱為DMA
。特點:在專門的硬件控制電路(DMAC)控制之下,由DMAC發(fā)出地址及讀/寫信號來實現(xiàn)高速數(shù)據(jù)傳輸。在此過程中,CPU放棄總線控制權(quán),數(shù)據(jù)傳送不經(jīng)過CPU。第二十頁,共一百三十六頁。第6章輸入輸出系統(tǒng)應(yīng)用:DMA傳送主要應(yīng)用于高速度大批量數(shù)據(jù)傳送的系統(tǒng)中,如磁盤存取、圖像處理、高速數(shù)據(jù)采集系統(tǒng)等,以提高數(shù)據(jù)的吞吐量。DMA傳送一般有三種形式:①存儲器與I/O設(shè)備之間的數(shù)據(jù)傳送;②存儲器與存儲器之間的數(shù)據(jù)傳送;③I/O設(shè)備與I/O設(shè)備之間的傳送。第二十一頁,共一百三十六頁。為實現(xiàn)DMA工作方式而設(shè)計的專用接口電路,稱為DMA控制器(DMAC)。例如,Intel公司的8257、8237,Zilog公司的Z
8410(Z80
DMAC),Motorola公司的MC6844等,都是能實現(xiàn)DMA方式的可編程DMAC芯片。DMA控制器必須有以下功能:①能接收外設(shè)發(fā)出的DMA
請求信號,然后向CPU
發(fā)出總線接管請求信號。②當(dāng)CPU發(fā)出總線請求允許信號并放棄對總線的控制后,DMAC能接替對總線的控制,進入DMA方式。③DMAC得到總線控制權(quán)后,要往地址總線發(fā)送地址信號,能修改地址指針,并能發(fā)出讀/寫控制信號。④能決定本次DMA傳送的字節(jié)數(shù),判斷DMA傳送是否結(jié)束。⑤DMA過程結(jié)束時,能發(fā)出DMA 結(jié)束信號,將總線控制第權(quán)6章交輸還入輸給出系統(tǒng)第二十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)6.3中斷控制器8259A第二十三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)1.
Intel
8259A的主要性能和內(nèi)部結(jié)構(gòu)(1)Intel
8259A的主要性能Intel
8259A是被廣泛使用的可編程中斷控制器,在IBM-PC/XT機中,就使用Intel
8259A作為中斷控制器。它用來管理輸入到CPU的可屏蔽中斷請求,其主要功能有:第二十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)1)可以直接管理8個中斷源,級聯(lián)方式下不用附加電路就可以管理64個可屏蔽中斷源,并具有優(yōu)先權(quán)判決功能。2)能為中斷源提供中斷向量碼??梢詫γ恳患壷袛噙M行屏蔽或允許控制??商峁┒喾N可供選擇的工作方式,并能通過編程或硬件連接進行控制。5)可直接與CPU連接,不需要外接硬件電路第二十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A的內(nèi)部結(jié)構(gòu)框圖IMR(Interrup每t
一Ma條sk請Re求gi線st上er有)用一來個存相放應(yīng)屏的蔽位觸信發(fā)器來息,IMR的每一保位存可請以求禁信止號IR,R中它對們應(yīng)構(gòu)位成的中了斷中請斷求請求寄(2)
IntelIS8R2(5I9nAt的er內(nèi)r內(nèi)r存up部t器t器結(jié)SIeR構(gòu)rRv(iIcnetReergriusptterR)R)存e存eq放ue當(dāng)st前正在進行服務(wù)的所Re有g(shù)i中st斷e。r)I。SR中相應(yīng)位的置位是在中斷輸入它信在號中進斷入響。應(yīng)期間,根據(jù)控制邏輯規(guī)定的優(yōu)先權(quán)響級應(yīng)別的和INITMAR脈的沖內(nèi)期容間,,把由I優(yōu)RR先中權(quán)允判許決中電斷路的根優(yōu)據(jù)先IR權(quán)R中最各高請的求中位斷的請優(yōu)先求先求權(quán)位級送別入和ISIRM。R中屏蔽位的狀態(tài),將中斷的最高優(yōu)先級請求位選通到ISR中。有一組預(yù)置命令字寄存器和一組操作命令字寄存器。?當(dāng)有未被屏蔽的高級別的中斷請求時,通過控制邏輯輸出高電平的INT信號,向CPU申請中斷。?當(dāng)CPU允許中斷時,發(fā)出中斷響應(yīng)信號INTA。在中斷響應(yīng)期間,它允許ISR的相應(yīng)位置位,并發(fā)送相應(yīng)的中斷向量,通過數(shù)據(jù)總線緩沖器輸出到總線上。第二十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)其內(nèi)部各組成模塊有如下功能。1)中斷請求寄存器IRR8259A有8條外部中斷請求輸入信號線IR0~IR7,每一條請求線上有一個相應(yīng)的觸發(fā)器來保存請求信號,它們構(gòu)成了中斷請求寄存器IRR(Interrupt
Request
Register)。外部設(shè)備產(chǎn)生中斷請求有兩種方式:一種是邊沿觸發(fā)方式,它利用脈沖上升沿的跳變,并一直保持高電平直到中斷被響應(yīng)為止;另一種是電平觸發(fā)方式,它通過輸入并保持高電平來實現(xiàn)中斷請求。第二十七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2)中斷屏蔽寄存器IMRIMR(Interrupt
Mask
Register)用來存放屏蔽位信息,IMR的每一位可以禁止IRR中對應(yīng)位的中斷請求輸入信號進入。但屏蔽優(yōu)先權(quán)級別較高的中斷請求輸入,不會影響優(yōu)先級較低的中斷請求輸入。3)中斷服務(wù)寄存器ISRISR(Interrupt
Service
Register)存放當(dāng)前正在進行服務(wù)
的所有中斷。ISR中相應(yīng)位的置位是在中斷響應(yīng)的INTA脈沖期間,由優(yōu)先權(quán)判決電路根據(jù)IRR中各請求位的優(yōu)先權(quán)級別和IMR中屏蔽位的狀態(tài),將中斷的最高優(yōu)先級請求位選通到ISR中。第二十八頁,共一百三十六頁。第6章輸入輸出系統(tǒng)4)優(yōu)先權(quán)判決電路它在中斷響應(yīng)期間,根據(jù)控制邏輯規(guī)定的優(yōu)先權(quán)級別和
IMR的內(nèi)容,把IRR中允許中斷的優(yōu)先權(quán)最高的中斷請求位送入
ISR。5)控制邏輯在8259A的控制邏輯電路中有一組預(yù)置命令字寄存器和一組操作命令字寄存器,利用它們通過編程設(shè)置來管理8259A的工作方式。當(dāng)有未被屏蔽的高級別的中斷請求時,通過控制邏輯輸出高電平的INT信號,向CPU申請中斷。當(dāng)CPU允許中斷時,發(fā)出中斷響應(yīng)信號INTA。在中斷響應(yīng)期間,它允許ISR的相應(yīng)位置位,并發(fā)送相應(yīng)的中斷向量,通過數(shù)據(jù)總線緩沖器輸出到總線上。第二十九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)6)數(shù)據(jù)總線緩沖器這是8位雙向三態(tài)緩沖器,用作8259A與數(shù)據(jù)總線的接口,傳輸命令控制字、狀態(tài)字和中斷向量。讀/寫控制電路該部件接收來自CPU的讀/寫命令,實現(xiàn)對8259A的讀/寫操作。級聯(lián)緩沖器/比較器它們實現(xiàn)8259A芯片之間的級聯(lián),使得中斷源可以由8級擴展至64級。第三十頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2.
8259A的工作過程根據(jù)8259A的內(nèi)部結(jié)構(gòu),其工作的過程如下:外部中斷源通過IR0-IR7輸入高電平中斷請求信號外部中斷源的中斷請求信號使中斷請求觸發(fā)器IRR的相應(yīng)位置“1”,并與IMR按位相“與”,送給優(yōu)先權(quán)判決電路。優(yōu)先權(quán)判決電路從IRR中檢測出優(yōu)先級最高的中斷請求位,并將其與ISR中記錄的正在被CPU服務(wù)的中斷進行優(yōu)先級比較。當(dāng)提請的中斷優(yōu)先級高于正在服務(wù)的中斷優(yōu)先級時,中斷優(yōu)先權(quán)判決電路就向控制邏輯發(fā)出有效的中斷請求信號。第三十一頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(4)
當(dāng)控制邏輯收到有效的中斷請求信號時,向
CPU發(fā)出高電平信號INT,請求中斷服務(wù)。在中斷允許的情況下(IF=1),CPU接受中斷請求INT,并發(fā)出中斷響應(yīng)信號INTA,對8086/8088CPU,將連續(xù)發(fā)出兩個INTA脈沖。當(dāng)8259A接到來自CPU的第一個INTA脈沖時,就把允許中斷的最高優(yōu)先級請求位置入ISR,并把IRR中
的相應(yīng)位復(fù)位。如果工作在級聯(lián)方式下,而且設(shè)備的
優(yōu)先級最高,則主控8259A將送出級聯(lián)地址CAS0-CAS2,將其加載至從屬8259A上。第三十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(7) 在第二個INTA脈沖,對單獨使用或是級聯(lián)方式下從屬的8259A,將其中斷向量發(fā)送至數(shù)據(jù)總線。CPU從數(shù)據(jù)總線上獲取中斷向量碼,轉(zhuǎn)移到相應(yīng)的中斷處理程序。中斷結(jié)束時,通過在中斷處理程序中向8259A發(fā)送一條EOI(中斷結(jié)束)命令,使ISR相應(yīng)位復(fù)位,或在AEOI(自動中斷結(jié)束)方式下,由8259A在第二個INTA脈沖的后沿自動將ISR相應(yīng)位復(fù)位。第三十三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)中斷響應(yīng)周期第三十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A芯片之間的級聯(lián)第三十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)級聯(lián)線CAS0-CAS2是8259A相互連接用的專用總線,用來構(gòu)成8259A的主-從式級聯(lián)控制結(jié)構(gòu)。當(dāng)8259A作為主設(shè)備時,CAS0-CAS2是輸出信號;當(dāng)8259A作為從設(shè)備時,它們是輸入線。編程時設(shè)定的8259A的從設(shè)備標(biāo)志保存在級聯(lián)緩沖器內(nèi),系統(tǒng)中全部8259A級聯(lián)線的對應(yīng)端互連。在中斷響應(yīng)期間,主8259A把所有申請中斷的從設(shè)備中優(yōu)先級最高的8259A的從設(shè)備標(biāo)志輸出到級聯(lián)線CAS0-CAS2上,從8259A把這個設(shè)備標(biāo)志與級聯(lián)緩沖器內(nèi)保存的從設(shè)備標(biāo)志進行比較。在后續(xù)的INTA脈沖期間,被選中的8259A從設(shè)備把中斷向量送到數(shù)據(jù)總線上。這個中斷向量也是在編程時預(yù)先設(shè)定的,保存在控制邏輯部件。第三十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)3.Intel
8259A的外部特性圖
8259A的外圍引腳排列第三十七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)在上圖中,各引腳的名稱如下:07D
-D
:雙向8位雙數(shù)總線。RD:讀輸入信號。WR:寫輸入信號。
A0:地址選擇輸入。
CS:片選輸入。
CAS0-CAS2:級聯(lián)線。第三十八頁,共一百三十六頁。SP/EN:雙功能線。8259A工作在緩沖方式時,該引腳輸出低電平控制信號,用來控制系統(tǒng)總線與8259A數(shù)據(jù)引線之間的數(shù)據(jù)緩沖器,使中斷向量碼能在第二個INTA周期正常從8259A輸出。當(dāng)8259A工作在級聯(lián)方式時,該引腳為輸入,SP=1,設(shè)定8259A為主控器;SP=0,設(shè)定8259A為從屬部件。IR0-IR7:中斷請求輸入。INT:8259A向CPU輸出的中斷請求端,與CPU的INTR引腳相連。INTA:中斷響應(yīng)輸入端,接收CPU向8259A輸入的中斷響應(yīng)信號。第6章輸入輸出系統(tǒng)第三十九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A與標(biāo)準(zhǔn)總線的連接第四十頁,共一百三十六頁。第6章輸入輸出系統(tǒng)4.
8259A的主要工作方式第四十一頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A這些工作方式,可以通過編程設(shè)置或改變。優(yōu)先權(quán)的管理方式1>全嵌套方式這是8259A默認(rèn)的優(yōu)先權(quán)設(shè)置方式,在全嵌套方式下,8259A所管理的8級中斷優(yōu)先權(quán)是固定不變的,其中IR0的中斷優(yōu)先級最高,IR7的中斷優(yōu)先級最低。CPU響應(yīng)中斷后,請求中斷的中斷源中,優(yōu)先級最高的中斷源,在 中斷服務(wù)寄存器ISR中的相應(yīng)位置位,而且把它的中斷矢量送至系 統(tǒng)數(shù)據(jù)總線,在此中斷源的中斷服務(wù)完成之前,與它同級或優(yōu)先級 低的中斷源的中斷請求被屏蔽。第四十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2>特殊全嵌套方式
特殊全嵌套方式與全嵌套方式基本相同,所不同的是,當(dāng)CPU處理某一級中斷時,如果有同級中斷請求,那么CPU也會作出響應(yīng),從而形成了對同一級中斷的特殊嵌套。特殊全嵌套方式通常應(yīng)用在有8259A級連的系統(tǒng)中,在這種情況下, 對主8259A編程時,通常使它工作在特殊全嵌套方式下。這樣,一方面,
CPU對于優(yōu)先級別較高的主片的中斷輸入是允許的,另一方面,CPU對于來自同一從片的優(yōu)先級別較高(但對于主片來講,優(yōu)先級別是相同的)的中斷也是允許、能夠響應(yīng)的。第四十三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)3>優(yōu)先級自動循環(huán)方式在實際應(yīng)用中,中斷源優(yōu)先級的情況是比較復(fù)雜的,要求8級中斷的優(yōu)先級在系統(tǒng)工作過程中,可以動態(tài)改變。即一個中斷源的中斷請求被響應(yīng)之后,其優(yōu)先級自動降為最低。系統(tǒng)啟動時,8級中斷優(yōu)先級默認(rèn)為IR0—IR7,這時,剛好IR4發(fā)出了中斷請求,CPU響應(yīng)之后,若8259A工作在優(yōu)先級自動循環(huán)方式下,則中斷優(yōu)先級自動變?yōu)镮R5、IR6、IR7、IR0、IR1、IR2、IR3、IR4。4>優(yōu)先級特殊循環(huán)方式優(yōu)先級特殊循環(huán)方式與自動循環(huán)方式相比,只有一點不同,即初始化的優(yōu)先級是由程序控制的,而不是默認(rèn)的IR0—IR7。第四十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(2)中斷源的屏蔽方式CPU對于8259A提出的中斷請求,都可以加以屏蔽控制,屏蔽控制有下列幾種方式:1>普通屏蔽方式:8259A的每個中斷請求輸入,都要受到屏蔽寄存器中相應(yīng)位的控制。若相應(yīng)位為“1”,則中斷請求不能送CPU。屏蔽是通過對屏蔽寄存器IMR的編程(操作命令字OCW1),來加以設(shè)置和改變的。第四十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2>特殊屏蔽方式:有些場合下,希望一個中斷服務(wù)程序的運行過程中,能動態(tài)地改變系統(tǒng)中的中斷優(yōu)先級結(jié)構(gòu),即在中斷處理的一部分,禁止低級中斷,而在中斷處理的另一部分,又能夠允許低級中斷,于是引入了對中斷的特殊屏蔽方式。設(shè)置了特殊屏蔽方式后,用OCW1對屏蔽寄存器中的某一位復(fù)位時,同時也會是中斷服務(wù)寄存器ISR中的相應(yīng)位復(fù)位,這樣就不只屏蔽了正在處理的等級中斷,而且真正開放了其它優(yōu)先級別較低的中斷請求。特殊屏蔽是在中斷處理程序中使用的,用了這種方式之后,盡管系統(tǒng)正在處理高級中斷,但對外界來講,只有同級中斷被屏蔽,而允許其它任何級別的中斷請求。第四十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(3)結(jié)束中斷處理的方式按照對中斷結(jié)束(復(fù)位中斷響應(yīng)寄存器ISR中相應(yīng)位)的不同處理,
8259A有兩種工作方式,即自動結(jié)束方式(AEOI)和非自動結(jié)束方式
(EOI)。而非自動結(jié)束方式又可進一步分為一般的中斷結(jié)束方式和特殊的中斷結(jié)束方式。1>中斷自動結(jié)束方式(AEOI)這種方式僅適用于只有單片8259A的場合,在這種方式下,系統(tǒng)一旦響應(yīng)中斷,那么CPU在發(fā)第二個INTA脈沖時,就會使中斷響應(yīng)寄存器
ISR中相應(yīng)位復(fù)位,這樣一來,雖然系統(tǒng)在進行中斷處理,但對于
8259A來講,ISR沒有相應(yīng)的指示,就象中斷處理結(jié)束,返回主程序之后一樣。CPU可以再次響應(yīng)任何級別的中斷請求。第四十七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2>一般的中斷結(jié)束方式一般的中斷結(jié)束方式適用在全嵌套的情況下,當(dāng)
CPU用輸出指令向8259A發(fā)一般中斷結(jié)束命令OCW2時,8259A才會使中斷響應(yīng)寄存器ISR中優(yōu)先級別最高的位復(fù)位。第四十八頁,共一百三十六頁。第6章輸入輸出系統(tǒng)3>特殊的中斷結(jié)束方式在特殊全嵌套模式下,系統(tǒng)無法確定哪一級中斷為最后響應(yīng)和處理的中斷,也就是說,CPU無法確定當(dāng)前所處理的是哪級中斷,這時就要采用特殊的中斷結(jié)束方式。特殊的中斷結(jié)束方式是指在CPU結(jié)束中斷處理之后,向8259A發(fā)送一個特殊的EOI中斷結(jié)束命令,這個特殊的中斷結(jié)束EOI命令,明確指出了中斷響應(yīng)寄存器ISR中需要復(fù)位的位。這里,我們還要指出一點,在級聯(lián)方式下,一般不用自動中斷結(jié)束方式,而需要用非自動結(jié)束中斷方式,一個中斷處理程序結(jié)束時,都必須發(fā)兩個中斷結(jié)束EOI命令,一個發(fā)往主片,一個發(fā)往從片。第四十九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(4)系統(tǒng)總線的連接方式當(dāng)8259A以級聯(lián)方式用在一個大的系統(tǒng)下時,就要求對數(shù)據(jù)總線 進行驅(qū)動緩沖。緩沖方式就是用來設(shè)定系統(tǒng)總線與8259A數(shù)據(jù)總線 之間是否需要進行緩沖。1>非緩沖方式。在指定非緩沖方式時,SP/EN作為輸入,用來識別8259A是主控制器還是從屬控制器。2>緩沖方式。此方式下SP/EN為輸出,EN作為允許緩沖器發(fā)送/接收的控制信號。第五十頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(5)引入中斷請求的方式按照引入中斷請求的方式,8259A有下列幾種工作方式:1>邊沿觸發(fā)方式8259A將中斷請求輸入端出現(xiàn)的上升沿,作為中斷請求信號,上升沿后相應(yīng)引腳,可以一直保持高電平。第五十一頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2>電平觸發(fā)方式
8259A將中斷請求輸入端出現(xiàn)的高電平作為中斷請求信號,在這種方式下,必須注意:中斷響應(yīng)之后,高電平必須及時撤除,否則,在CPU響應(yīng)中斷,開中斷之后,會引起第二次不應(yīng)該有的中斷。第五十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)3>中斷查詢方式當(dāng)系統(tǒng)中的中斷源很多,超過64個時,則可以使8259A工作在查詢方式下,中斷查詢方式的特點是:中斷源仍往8259A發(fā)中斷請求,但8259A卻不使用INT信號向CPU發(fā)中斷請求信號。CPU內(nèi)部的中斷允許標(biāo)志復(fù)位,所以CPU對INT引腳上出現(xiàn)的中斷請求呈禁止?fàn)顟B(tài)。CPU用軟件查詢的方法來確定中斷源,從而實現(xiàn)對設(shè)備的中斷服務(wù)??梢?,中斷查詢方式既有中斷的特點,又有查詢的特點,從外設(shè)的角度看,是靠中斷的方式來請求服務(wù),但從CPU的角度來看,是用查詢方式來確定發(fā)中斷請求的中斷源。第五十三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)查詢是通過CPU向8259A發(fā)查詢命令來實現(xiàn),查詢命令字由
OCW3構(gòu)成,其格式如下:D7
。。。D3X
0
0
0
1D2
D1
D01
0
0其中D2=1,是查詢命令的特征位。8259A在接到CPU發(fā)來的上述格式的查詢命令之后,立即組成狀態(tài)字,等待CPU來讀取,狀態(tài)字的格式如下:D7 。
。
。
D3
D2
D1
D0I
X
X
X
X
W2
W1
W0若I=0,則表示該8259A芯片沒有中斷請求,若I=1,則表示有中斷請求,W2、W1、W0即為本片中中斷請求優(yōu)先級別最高的中斷源的編碼。第五十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)5.8259的初始化編程初始化編程:指系統(tǒng)在上電或復(fù)位后對可編程器件進行控制字設(shè) 定的一段程序8259A的命令控制字包括兩個部分: 初始化命令字和操作命令字初始化命令字:一般在系統(tǒng)復(fù)位后的初始化編程中設(shè)置,用于確 定8259A的基本工作方式,設(shè)置以后一般保持不變操作命令:是在初始化以后的正常工作中寫入的,它實現(xiàn)對8259A的狀態(tài),中斷方式和過程的動態(tài)控制,在工作中可隨時寫入操作命令字,以修改某些控制方式第五十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A內(nèi)部有7個寄存器,分為兩組:初始化命令寄存器組包括4個寄存器:ICW1-ICW4對應(yīng)的寄存器操作命令寄存器組包括3個寄存器:OCW1-OCW3對應(yīng)的寄存器由于8259A只有一條地址線A0,所以它只能有兩個端口地址,而8259A有7個命令字,每個命令字要寫入相應(yīng)的寄存器。為此,采取以下幾點措施:以端口地址區(qū)分把命令字中的某些位作為特征碼來區(qū)分以命令字的寫入順序來區(qū)分在PC/XT中,8259A的兩個端口地址分別為20H和21H第五十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(1)8259A的初始化控制字初始化控制字ICW(Initialization
Control
Word)是在計算機啟動的過程中設(shè)定完成的,計算機啟動起來后,8259A就按初始設(shè)定的狀態(tài)工作。1)
8259A初始化的順序8259A有四條初始化控制字ICWl、ICW2、ICW3和ICW4,由于8259A只有一根地址線,因此對各個控制字的操作是按照一定的順序并結(jié)合某些數(shù)據(jù)位來進行尋址設(shè)置的。8259A初始化的順序如下圖所示。第五十七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A的初始化順序第五十八頁,共一百三十六頁。第6章輸入輸出系統(tǒng)1>ICW1的控制字格式如下圖所示。ICW1的格式(2) 各初始化控制A字0=的0、功D能4=1:是ICW1的標(biāo)志第五十九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)A0=0、D4=1:是ICW1的標(biāo)志。只要CPU向8259A發(fā)送一條A0=0和D4=1的命令時,這條命令就被譯碼為對ICW1進行操作。它啟動8259A的初始化過程,產(chǎn)生下列動作:清除IMR,把最低優(yōu)先級分配給IR7,把最高優(yōu)先級分配給IR0,將從設(shè)備標(biāo)志置成7,清除特殊屏蔽方式,設(shè)置讀IRR方式。A7-A5:在8080(85)系統(tǒng)中為中斷向量地址位,在8086/8088系統(tǒng)中不用。第六十頁,共一百三十六頁。ADI:設(shè)定8080(85)方式下中斷向量地址間隔字節(jié)數(shù),1為4字節(jié),0為8字節(jié)。在8086/8088方式下此位不用SNGL:單個器件/級聯(lián)方式指示。1表示系統(tǒng)中只有一個
8259A,0表示級聯(lián)方式。IC4:該位用于設(shè)定有無ICW4。1表示使用ICW4,在8086/8088方式下,必須使用ICW4。0表示不用ICW4,此時ICW4所選擇的全部功能位都置成0。第6章輸入輸出系統(tǒng)第六十一頁,共一百三十六頁。LTIM:中斷輸入寄存器的觸發(fā)方式。0為邊沿觸發(fā),中斷輸入信號上升沿時被識別并送入IRR。1為電平觸發(fā),中斷輸入信號為高電平即可進入IRR。這兩種觸發(fā)方式都要求高電平的請求信號在置位IRR相應(yīng)位后一直保持,直到中斷被響應(yīng)為止。第6章輸入輸出系統(tǒng)ICW1的主要功能:確定級連方式,觸發(fā)方式寫入ICW1后,8259A內(nèi)部自動復(fù)位,其復(fù)位功能為:①初始化命令字順序邏輯重新置位,準(zhǔn)備接收ICW2、ICW3、ICW4②清除IMR和ISR③IRR狀態(tài)可讀④優(yōu)先級排隊,IR0最高,IR7最低⑤特殊屏蔽方式復(fù)位⑥設(shè)定中斷請求信號由低變?yōu)楦叩倪呇赜|發(fā)有效⑦自動EOI循環(huán)方式復(fù)位第六十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2>ICW2在8086/8088方式下,用于提供8個中斷源的中斷向量碼。ICW2的高5位T7-T3在初始化編程時設(shè)置,初始化低3位由8259A用中斷源的編號填寫。在8080(85)方式下,ICW2是中斷向量地址的A15-A8位,低位地址在ICWl的A7-A5中。
ICW2的命令字格式如下圖所示。第六十三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)ICW2利用A0=1和初始化的次序來尋址。在8086/8088系統(tǒng)中,初始化控制字ICW2是比較重要的,它確定了8259A外接中斷源的起始中斷向量碼,并實現(xiàn)了每個中斷源中斷向量碼的自動生成。下面舉例說明中斷向量碼的形成情況。在初始化編程時要保持ICW2的低三位為“0”,如設(shè)定ICW2為“11111000”(F8H)。如果某一中斷源IRn有中斷請求,將n填入ICW2的低3位,與高5位共同組成該中斷源的中斷向量碼,如下表所示。第六十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)中斷向量碼的形成情況表ICW2F8HD7D6D5D4D3D2D1D0中斷向量中斷源11111000碼11111000F8HIR011111001F9HIR111111010FAHIR211111011FBHIR311111100FCHIR411111101FDHIR511111110FEHIR611111111FFHIR7第六十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)3>ICW3的功能:確定主片和從片的級連狀態(tài),即確定主片的級連位和從片的編碼ICW3用于8259A的級聯(lián),若系統(tǒng)中只有一片8259A,則不用ICW3;若
8259A工作于級聯(lián)方式,則需要用ICW3設(shè)置8259A的狀態(tài)。是否需要ICW3,取決于ICWl中的SNGL位的狀態(tài)。在級聯(lián)方式下,主控8259A的ICW3表示8259A的級聯(lián)結(jié)構(gòu),ICW3中被置位的位表示對
應(yīng)的IRn輸入端接有從屬8259A,并與從屬8259A的INT輸出端相連。在中斷響應(yīng)過程中,如果從屬8259A發(fā)出中斷請求的優(yōu)先級最高,則中斷向量由相應(yīng)的從設(shè)備8259A發(fā)送。第六十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)對于從設(shè)備8259A,ICW3中低3位是從設(shè)備標(biāo)志代碼,它等于主設(shè)備對應(yīng)IR輸入端的編碼。在中斷響應(yīng)過程中,主設(shè)備把IRn的編碼n送上級聯(lián)線CAS2~CAS0,從設(shè)備把它與自己的從設(shè)備標(biāo)志進行比較,并把比較結(jié)果相等的從設(shè)備的中斷向量送到數(shù)據(jù)總線上。從設(shè)備的ICW3格式。ICW3利用A0=1和ICW1中SNGL=1及初始化順序?qū)ぶ贰5诹唔?,共一百三十六頁。?章輸入輸出系統(tǒng)ICW3的格式第六十八頁,共一百三十六頁。第6章輸入輸出系統(tǒng)4>ICW4只有在ICW1的IC4=1時才使用,其格式如下圖所示。主要功能:選擇CPU系統(tǒng),確定中斷結(jié)束方式;規(guī)定是主片還是從片,確定是否是緩沖方式ICW4利用A0=1、IC4=1和初始化的順序?qū)ぶ贰CW4格式第六十九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)μPM:CPU類型選擇,為1時用于8086/80
8系統(tǒng)中,為0時則工作于8080/8085系統(tǒng)中。AEOI:選擇是否為自動中斷結(jié)束方式。為1時為自動中斷結(jié)束方式;為0時不用自動中斷結(jié)束方式,此時必須在中斷服務(wù)程序中使用EOI命令,使
ISR中最高優(yōu)先權(quán)的位復(fù)位。M/S:在緩沖方式下有效,決定8259A作為主設(shè)備還是作為從設(shè)備工作。當(dāng)BUF=1和M/S=1時,8259A按主設(shè)備工作;當(dāng)BUF=1和M/S=0時,8259A按從設(shè)備工作。如果在非緩沖方式下,M/S位不起作用。第七十頁,共一百三十六頁。第6章輸入輸出系統(tǒng)BUF:用于指示8259A是否工作在緩沖方式,由此決定了8259A的SP/EN端的功能。為1時,8259A工作于緩沖方式,SP/EN用作允許緩沖器接收/發(fā)送的輸出控制信號EN;SP/EN為0時,8259A不工作于緩沖方式,SP/EN用作主設(shè)備/從設(shè)備選擇的輸入控制信號SP。SFNM:這一位用來選擇8259A在級聯(lián)方式下是否工作于特殊全嵌套方式。如果主設(shè)備編程時設(shè)置SFNM=1,即為特殊全嵌套方式,它可確保從設(shè)備的中斷輸入實現(xiàn)真正的完全嵌套優(yōu)先權(quán)結(jié)構(gòu)。如果SFNM=0,表示8259A工作于一般全嵌套方式。ICW4利用A0=1、IC4=1和初始化的順序?qū)ぶ?。第七十一頁,共一百三十六頁。?章輸入輸出系統(tǒng)寫完ICW后,8259A建立了基本的工作環(huán)境初始化命令字一定要在系統(tǒng)復(fù)位后首先寫入8259A,寫入時要嚴(yán)格按照寫入的順序,不允許顛倒寫完初始化命令字后,也要寫入操作命令字OCW來改變某些中斷方式操作命令字可以隨時寫入、修改,但是初始化命令字一經(jīng)寫入一般不再改動如果在寫入初始化命令字后不寫入操作命令字,則
8259A便處于全嵌套工作方式第七十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(3)8259A操作命令字在初始化命令字寫入8259A之后,8259A就準(zhǔn)備接收中斷請求輸入信號了在8259A工作期間,CPU可以隨時通過操作命令字使
8259A完成各種不同的工作方式8259A有三種操作命令字:OCW1-OCW3在寫入時,他們與初始化命令字不同,他們不是按一定的順序?qū)懭?,而是按設(shè)計者的要求寫入的第七十三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A操作命令字的尋址當(dāng)初始化完成后,對8259A操作命令字的尋址是通過
8259A的地址線A0和某些數(shù)據(jù)位結(jié)合來進行的。具體尋址條件如下:當(dāng)A0=1時,尋址OCW1;當(dāng)A0=0,D4=0,D3=0時,尋址OCW2;當(dāng)A0=0,D4=0,D3=1時,尋址OCW3。第七十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A的操作命令1)OCW1。當(dāng)A0=1時,可尋址OCW1。OCW1是中斷屏蔽命令字,其格式如下圖所示。OCW1用來設(shè)置8259A的屏蔽操作,OCWl的每一位對應(yīng)中斷屏蔽寄存器IMR的相應(yīng)屏蔽位,通過OCW1對IMR進行置位和復(fù)位操作。M7~M0代表8個屏蔽位,用來控制IR輸入的中斷請求信號,如果某一位M為1,它就屏蔽對應(yīng)的IR中斷請求(即M0=1屏蔽IR0,M1=1屏蔽IR1等)。如果M=0,則清除屏蔽狀態(tài),允許對應(yīng)的IR輸入信號產(chǎn)生INT輸出,請求CPU進行服務(wù)。第七十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)OCW1的格式第七十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2)OCW2。當(dāng)A0=0,D4=D3=0時可尋址OCW2。格式和各位的功能如下圖所示。功能:控制8259A中斷循環(huán)優(yōu)先級方式及發(fā)送命令中斷結(jié)束方式R:優(yōu)先權(quán)循環(huán)控制位,R=1為循環(huán)優(yōu)先權(quán),R=0為固定優(yōu)先權(quán)。SL:選
擇指定的IR級別位。SL=1,操作在L2~L0指定的編碼級別上執(zhí)行;SL=0,L2~L0無效。EOI:中斷結(jié)束命令位,在非自動中斷結(jié)束命令情況下,EOI=1表示中斷結(jié)束命令,它使ISR中最高優(yōu)先權(quán)位復(fù)位;EOI=0則不起作用。第七十七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)OCW2的格式第七十八頁,共一百三十六頁。第6章輸入輸出系統(tǒng)04
3
3
33>OCW3。當(dāng)A
=0,D
=0,D
=1時,尋址OCW
。OCW
主要控制8259A的中斷屏蔽、查詢和讀寄存器等狀態(tài)。OCW3的格式及各位功能如下圖所示。OCW3的格式第七十九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)ESMM:允許或禁止SMM位起作用的控制位。ESMM為1時允許SMM位起作用,為0時禁止SMM位起作用。SMM:設(shè)置特殊屏蔽方式選擇位。與ESMM位共同起作用。P:查詢命令位。P=1時,8259A發(fā)送查詢命令;P=0時,不處于查詢方式。OCW3設(shè)置查詢方式以后,隨后送到8259ARD端的讀脈沖作為中斷響應(yīng)信號,讀出最高優(yōu)先權(quán)的中斷請求IR級別碼。RR:讀寄存器命令位。RR=1時允許讀IRR或ISR,RR=0時禁止讀這兩個寄存器。RIS:讀I
R或ISR選擇位。第八十頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(4)讀8259A狀態(tài)讀8259A的狀態(tài)時指讀8259A內(nèi)部的IRR、ISR和IMR的內(nèi)容讀IRR:先發(fā)出OCW3命令(使RR=1、RIS=0,地址A0=0),在 下一個讀信號時可以讀出IRR,其中包含尚未被相應(yīng)的中斷情 況。讀ISR:先發(fā)出OCW3命令(使RR=1、RIS=1,地址A0=0),在下一個 讀信號時可以讀出ISR,其中包含正在服務(wù)的中斷情況,也可以看出 中斷嵌套情況。讀IMR:不必先發(fā)OCW3,只要讀奇地址端口(A0=1),則可以讀出
IMR,其中包含設(shè)置的中斷屏蔽情況。第八十一頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(5)8259A多片級連級連系統(tǒng)中,每個從片的中斷請求輸出線INT直接連到主片的某個中斷請求輸入線上,主片的CAS0-CAS2是輸出線,輸出被響應(yīng)的從片代碼,從片的CAS0-CAS2是輸入線,接收主片發(fā)出的從片代碼,一邊與自身代碼相比較。級連方式的要點如下:一個8259A主片至多帶8個從片,可擴展至64級緩沖方式下,主片和從片的設(shè)定又ICW4的M/S位確定,M/S=1是主 片,M/S=0是從片。M/S的狀態(tài)在BUF=1時有意義在非緩沖方式下,主片和從片有SP/EN引腳的SP功能確定,SP=1是主片,
SP=0是從片。在級連系統(tǒng)中,主片的三條級連線相當(dāng)于從片的片選信號,從片的INT是主片的中斷請求輸入信號在編程時,主片和從片需要分別盡心初始化操作,可設(shè)定為不同的工作方式。第八十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(6)8259編程舉例例1.IBMPC機中,只有一片8259A,可接受外部8級中斷。在I/O地址中,分配8259A的端口地址為20H和21H,初始化為:邊沿觸發(fā)、緩沖連接、中斷結(jié)束采用EOI命令、中斷優(yōu)先級采用完全嵌套方式,8級中斷源的中斷類型分別為08H—0FH,初始化程序為:MOV
DX,20HMOV
AL,
01
0
1BOUT
DX,AL;寫入ICW1MOV
DX,21HMOV
AL,08HOUT
DX,AL;寫入ICW2MOV
AL,00001101BOUT
DX,ALXOR
AL,ALOUT
DX,AL;寫入ICW4;寫入OCW1第八十三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)例2.設(shè)置、撤銷屏蔽方式,設(shè)置中斷查詢方式等。教材P229例7.1第八十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)例3.讀8259A相關(guān)寄存器的內(nèi)容。設(shè)8259A的端口地址為20H、21H,請讀入IR、ISR、IMR寄存器的內(nèi)容,并相繼保存在數(shù)據(jù)段2
0H開始的內(nèi)存單元中;若該8259A為主片,請用查詢方式,查詢哪個從片有中斷請求。解:MOV
AL,xxx01010B
發(fā)OCW3,欲讀取IRR的內(nèi)容OUT
20H,ALIN
AL,20H
讀入并保存IRR的內(nèi)容MOV
[2000H],ALMOV
AL,xxx01011BOUT
20H,AL發(fā)OCW3,欲讀取ISR的內(nèi)容IN
AL,20HMOV
[2001H],AL讀入并保存ISR的內(nèi)容第八十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)IN
AL,21H;讀入并保存IMR的內(nèi)容MOV
[2002H],ALMOV
AL,xxx0110xBOUT
20H;發(fā)OCW3,欲查詢是否有中斷請求IN
AL,20H
;讀入相應(yīng)狀態(tài),并判斷最高位是否為1TEST
AL,80HJZ
DONEAND
AL,07H…………DONE:HLT;判斷中斷源的編碼第八十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)例4.8259A級聯(lián)應(yīng)用,某系統(tǒng)有兩片8259A對于主片:IR2和IR5接有外部中斷源請求,中斷類型號分別為62H和65H,IR4級聯(lián),接從片8259A的INT信號,主片的中斷服務(wù)程序在同一段,段地址為4
0H,兩個中斷服務(wù)程序的入口地址偏移值是25
0H和28
0H對于從片:IR0和IR3上接有外部中斷源請求,中斷類型號分別為40H和43H,輸出的INT接主片8259A的IR4,從片的中斷服務(wù)程序在同一段,段地址為3
0H,偏移地址分別為1230H和4560H要求:分別寫出主8259A和從8259A的初始化程序和中斷向量設(shè)置程序第八十七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)對主片8259A的初始化和中斷向量設(shè)置(1)初始化要求(已有條件)<1>主片8259A的IR4接一個從片,S4=1<2>中斷請求信號邊沿出發(fā),LTIM=0<3>中斷類型號為60H-67H,ICW2=60H<4>一般EOI中斷結(jié)束方式,AEOI=0<5>非緩沖方式,SP/EN=1,BUF=0<6>采用特殊全嵌套方式,SFNM=1<7>除IR2、IR5、IR4以外,屏蔽所有中斷,屏蔽字為11001011B第八十八頁,共一百三十六頁。第6章輸入輸出系統(tǒng)初始化程序:MOVAL,11H
;IOW1MOVDX,MPORTO;偶地址OUTDX,ALMOVDX,MPORT1;奇地址MOVAL,60H;
ICW2OUTDX,ALMOV
AL,
10H
;
ICW3OUT
DX,ALMOV
AL,
11H
;
ICW4OUT
DX,ALMOV
AL,
0CBH
;
OCW1OUT
DX,ALMOV
AL,20H;OCW2MOV
DX,MPORTO;偶地址
OUT
DX,AL第八十九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)對于從片8259A的初始化和中斷向量設(shè)置初始化要求(已有條件)<1>從片8259A接在主片IR4上,ICW3=04H<2>中斷請求信號邊沿觸發(fā),LTIM=0<3>中斷類型號為40H-47H,ICW2=40H<4>一般EOI中斷結(jié)束方式,AEOI=0<5>非緩沖方式,SP/EN=1,BUF=0<6>采用特殊全嵌套方式,SFNM=1<7>除IR0、和IR3以外,屏蔽所有中斷輸入,屏蔽字為
11110110B第九十頁,共一百三十六頁。第6章輸入輸出系統(tǒng)初始化程序:MOV
AL,
1H
;
ICW1MOV
DX,MPORTO;偶地址OUT
DX,
ALMOV
DX,MPORT1;奇地址MOV
AL,
40H ;
ICW2OUT
DX,
ALMOV
AL,
04H
;
ICW3OUT
DX,ALMOV
AL,
1H
;
ICW4OUT
DX,ALMOV
AL,
0F6H
;
OCW1OUT
DX,ALMOV
AL,20H;OCW2(EOI)MOV
DX,MPORTO;偶地址OUT
DX,AL第九十一頁,共一百三十六頁。第6章輸入輸出系統(tǒng)6.Intel
8259A的應(yīng)用舉例(1)中斷接口的設(shè)計將單片8259A接入80
8系統(tǒng)中,設(shè)計其端口地址為
F0H和
F1H,其具體連接如下圖所示。8259A由于只有一根地址線,因此它在系統(tǒng)中只占用兩個端口地址。8259A內(nèi)部的7個命令寄存器和3個狀態(tài)寄存器的尋址是將這兩個端口地址結(jié)合操作命令、特定數(shù)據(jù)位、
嚴(yán)格的寫入次序等來實現(xiàn)對8259A內(nèi)部寄存器的尋址,如下表所示。第九十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A在系統(tǒng)中的連接第九十三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8259A內(nèi)部寄存器的尋址控制表A0D4D3操作001讀ISR、IRR及中斷狀態(tài)寄存器101讀IMR00010寫OCW200110寫OCW30110寫ICW1110寫OCW1、ICW2、ICW3、ICW4第九十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(2)中斷程序的編寫當(dāng)把8259A接入系統(tǒng)后,就需要編寫該接口的中斷程序。中斷程序由兩個部分組成:中斷接口的初始化程序和中斷處理程序。中斷程序的編寫。①初始化中斷控制器8259A初始化包括兩個方面:一是初始化8259A的初始狀態(tài);二是完成中斷向量表的設(shè)置。第九十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)1)初始化8259A。由于8259A的ICW有嚴(yán)格的寫入次序,因此,編程時必須根據(jù)其規(guī)定的初始化順序?qū)λ膫€ICW進行初始化操作。其初始化程序如下:8259A:MOV
DX,0FFF0H
;8259A口地址,A0=0AL,13H
;初始化字“00010011”送ICW1DX,AL;單片,邊沿觸發(fā),需要ICW4MOVOUTMOVMOVOUTMOVOUTDX,0FFF1H
;8259A口地址,A0=1AL,0F8H;初始化字“11111000”送ICW2DX,AL
;設(shè)置起始中斷向量碼(IRO)為F8HAL,03H
;初始化字“00000011”送ICW4DX,AL;8086/8088模式,AEOI,非緩沖,一般全嵌套方式第九十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2)設(shè)置中斷向量。對IBM-PC/XT機,是在計算機啟動過程中將中斷向量表寫入內(nèi)存的。對用戶自行設(shè)計的中斷接口,當(dāng)初始化完成后,需要人為設(shè)置中斷向量表,以使設(shè)計的中斷向量與相應(yīng)的中斷處理程序建立連接。這樣,當(dāng)CPU響應(yīng)這些中斷源的中斷請求時,便能根據(jù)中斷向量找到相應(yīng)的處理程序,進行相應(yīng)的中斷服務(wù)。中斷向量表的建立在上一節(jié)中已經(jīng)詳細(xì)講解。第九十七頁,共一百三十六頁。②編寫中斷處理程序中斷處理程序用來完成對中斷源的具體服務(wù),在中斷處理程序中,通過對OCW的設(shè)置,可以使8259A在各種方式下工作。為了便于分析,我們利用IBM-PX/XT機的8259A,并將中斷源簡化成開7關(guān)S,通過IRQ
來申請中斷,如下圖所示。利用開關(guān)申請中斷第6章輸入輸出系統(tǒng)第九十八頁,共一百三十六頁。第6章輸入輸出系統(tǒng)當(dāng)用戶每按下一次開關(guān)時,即相當(dāng)于從IRQ7端向計算機內(nèi)部的8259A發(fā)送一次中斷請求,該中斷的服務(wù)是將“THIS
IS
A
IRQ7INT”顯示在屏幕上。在IBM-PC/XT系統(tǒng)中IRQ7對應(yīng)的中斷向量為0FH,中斷控制器8259A在系統(tǒng)中的地址為20H、21H。中斷程序設(shè)計如下:DATA
SEGMENTMESS
DB
"THIS
IS
A
IRQ7
INT!",
0AH,
0DH,
"$"DATACODEENDSSEGMENTASSUMECS:CODE,DS:DATA第九十九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)START:
MOVAX,CSMOVDS,AXMOVDX,OFFSET
INT7MOVAX,250FH;設(shè)中斷程序INT7的類型號為0FHINT21H;設(shè)置中斷向量表CLI;關(guān)中斷INAL,21H;讀中斷屏蔽寄存器ANDAL,7FH;開放IRQ7中斷OUT21H,AL;寫OCW1MOVCX,10;定中斷循環(huán)次數(shù)為10次STI第一百頁,共一百三十六頁。第6章輸入輸出系統(tǒng)LL:INT7:JMPMOVMOVLLAX,DATADS,AX;中斷服務(wù)程序MOVDX,OFFSET
MESSMOVAH,09;顯示每次中斷的提示信息INT21HMOVAL,20H;寫OCW2寫OUT20H,AL;發(fā)出EOI結(jié)束中斷LOOPNEXTINAL,21H;讀中斷屏蔽寄存器第一百零一頁,共一百三十六頁。第6章輸入輸出系統(tǒng)OROUTAL,80H21H,AL;關(guān)閉IR7中斷;寫OCW1STI;開中斷MOVAH,4CH;返回DOSINT21HNEXT:IRET;中斷返回CODENDSENDSTART第一百零二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)6.4
DMA控制器8237A第一百零三頁,共一百三十六頁。第6章輸入輸出系統(tǒng)1.概述DMA
(
Direct
Memory
A
ce
s
)–直接存儲器傳送方式,數(shù)據(jù)交換不通過CPU,而利用專門的接口電路直接與系統(tǒng)存儲器交換數(shù)據(jù)DMA傳送一般有三種形式–存儲器與I/O設(shè)備之間的數(shù)據(jù)傳送–存儲器與存儲器之間的數(shù)據(jù)傳送–I/O設(shè)備與I/O設(shè)備之間的傳送第一百零四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)DMA控制器必須有以下功能:–能接收外設(shè)發(fā)出的DMA請求信號,然后向CPU發(fā)出總線接管請求信號。–當(dāng)CPU發(fā)出總線請求允許信號并放棄對總線的控制后,DMAC能接替對總線的控制,進入DMA方式。–DMAC得到總線控制權(quán)后,要往地址總線發(fā)送地址信號,能修改地址指針,并能發(fā)出讀/寫控制信號。–能決定本次DMA傳送的字節(jié)數(shù),判斷DMA傳送是否結(jié)束。–DMA過程結(jié)束時,能發(fā)出DMA結(jié)束信號,將總線控制權(quán)交還給CPU。第一百零五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(1)I/O接口到存儲器的傳送。當(dāng)進行由I/O接口到存儲器的數(shù)據(jù)傳送時,來自I/O接口的數(shù)據(jù)利用DMAC送出的控制信號,將數(shù)據(jù)輸送到系統(tǒng)數(shù)據(jù)總線D0~D7上,同時,DMAC送出存儲器單元地址及控制信號,將存在于D0~D7上的數(shù)據(jù)寫入所選中的存儲單元中。這樣就完成了由I/O接口到存儲器一個字節(jié)的傳送。同時
DMAC修改內(nèi)部地址及字節(jié)數(shù)寄存器的內(nèi)容。(2)存儲器到I/O接口與前一種情況類似,在進行這種傳送時,DMAC送出存儲器地址及控制信號,將選中的存儲單元的內(nèi)容讀出放在數(shù)據(jù)總線D0~D7上,接著,DMAC送出控制信號,將數(shù)據(jù)寫到規(guī)定的(預(yù)選中)端口中去,而后MDAC自動修改內(nèi)部的地址及字節(jié)數(shù)寄存器的內(nèi)容。第一百零六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(3)存儲器到存儲器8237具有存儲器到存儲器的傳送功能,利用8237編程命令寄存器,可以選擇通道0和通道1兩個通道實現(xiàn)由存儲器到存儲器的傳送。在進行傳送時.采用數(shù)據(jù)塊傳送方式,由通道0送出內(nèi)存源區(qū)域的地址和控制信號,將選中內(nèi)存單元的數(shù)據(jù)讀到8237的暫存寄存器中,通道0修改地址及字節(jié)數(shù)寄存器的值;接著由通道1輸出內(nèi)存目的區(qū)域的地址及控制信號,將存放在暫存寄存器中的數(shù)據(jù),通過系統(tǒng)數(shù)據(jù)總線,寫入到內(nèi)存的目的區(qū)域中去,而后通道1修改地址和字節(jié)數(shù)寄存器的內(nèi)容,通道1的字節(jié)計數(shù)器減到零或外部輸入時可結(jié)束一次DMA傳輸過程。第一百零七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)8237各個通道的優(yōu)先級及傳輸速率(1)優(yōu)先級8237有兩種優(yōu)先級方案可供編程選擇:1>固定優(yōu)先級規(guī)定各通道的優(yōu)先級是固定的,即通道0的優(yōu)先級最高,依次降低,通道3的優(yōu)先級最低。2>循環(huán)優(yōu)先級規(guī)定剛被服務(wù)通道的優(yōu)先級最低,依次循環(huán)。這就可以保證4個通道的優(yōu)先級是動態(tài)變化的,若3個通道已經(jīng)被服務(wù)則剩下的通道一定是優(yōu)先級最高的。第一百零八頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(2)傳送速率在一般情況下,8237進行一次DMA傳送需要4個時鐘周期(不包括插入的等待周期SW)。例如,PC機的時鐘周期約210ns,則一次DMA傳送需要
210ns*4+2l0ns=1050ns。多加一個210
ns是考慮到人為插入一個SW的緣故。另外,8237為了提高傳送速率,可以在壓縮定時狀態(tài)下工作。在壓縮定時狀態(tài)下,每個DMA總線周期僅用2個時鐘周期就可以實現(xiàn),從而可以大幅度地提高數(shù)據(jù)的傳送速率。第一百零九頁,共一百三十六頁。第6章輸入輸出系統(tǒng)2.8237A的結(jié)構(gòu)和外部引腳Intel
8237是可編程DMA控制器芯片。5MHz時鐘頻率下,其傳送速率可達(dá)每秒1.6MB,具有下面的特點:–每個8237A芯片有4個獨立的DMA通道,即有4個DMAC。–每個DMA通道具有不同的優(yōu)先權(quán),可以編程決定,并且都可以分別允許和禁止。–每個通道有4種工作方式,一次傳送的最大長度可達(dá)64KB。–有4種DMA工作方式:單字節(jié)傳送模式、塊傳送模式、請求傳送模式和級聯(lián)傳送模式。–多個8237A芯片可以級聯(lián),任意擴展通道數(shù)第一百一十頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(1)內(nèi)部結(jié)構(gòu)第一百一十一頁,共一百三十六頁。第6章輸入輸出系統(tǒng)①四個獨立的DMA通道,每個通道都有:一個16位的基地址寄存器一個16位的基字節(jié)數(shù)計數(shù)器一個16位的當(dāng)前地址寄存器一個16位的當(dāng)前字節(jié)數(shù)計數(shù)器一個8位的方式寄存器,方式寄存器接收并保存來自于CPU的方式控制字,使本通道能夠工作于不同的方式下;②時序及控制邏輯電路對在DMA請求服務(wù)之前,CPU編程對給定的命令字和方式控制字進 行譯碼,以確定DMA的工作方式,并控制產(chǎn)生所需要的時鐘信號;第一百一十二頁,共一百三十六頁。第6章輸入輸出系統(tǒng)③優(yōu)先級編碼邏輯對通道進行優(yōu)先級編碼,確定在同時接收到不同通道的DMA請求時,能夠確定相應(yīng)的先后次序。通道的優(yōu)先級可以通過編程確定為是固定的或者是循環(huán)的。④共用寄存器1個16位的地址暫存寄存器1個16位的字節(jié)數(shù)暫存寄存器1個8位的狀態(tài)寄存器1個8位的命令寄存器1個8位的暫存寄存器1個4位的屏蔽寄存器和1個4位的請求寄存器等第一百一十三頁,共一百三十六頁。8237內(nèi)部寄存器的類型和數(shù)量如下表所示,其中,數(shù)量為4個的寄存器,則每個通道一個,凡數(shù)量只有一個的,則為各通道所公用。寄存器名長度(Bit)數(shù)量寄存器名長度(Bit)數(shù)量基地址寄存器164狀態(tài)寄存器81基字節(jié)數(shù)寄存器164命令寄存器81當(dāng)前地址寄存器164暫存寄存器81當(dāng)前字節(jié)數(shù)寄存器164方式寄存器64地址暫存寄存器161屏蔽寄存器41字節(jié)數(shù)暫存寄存器161請求寄存器418237的數(shù)據(jù)引線,地址引線都有三態(tài)緩沖器,因而可以接也可以釋放總線。第6章輸入輸出系統(tǒng)第一百一十四頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(2)外部引腳第一百一十五頁,共一百三十六頁。第6章輸入輸出系統(tǒng)CLK
時鐘CS#
片選RESET
復(fù)位READY
準(zhǔn)備就緒ADSTB
地址選通AEN
地址允許MEMR#
存儲器讀MEMW#
存儲器寫IOR#
輸入輸出設(shè)備讀第一百一十六頁,共一百三十六頁。第6章輸入輸出系統(tǒng)IOW#EOP#DREQDACKHRQHLDAA3~A0地址A7~A4地址DB7~DB0輸入輸出設(shè)備寫DMA傳輸過程結(jié)束通道DMA請求輸入DMA控制器送給I/O接口的回答總線請求總線響應(yīng)雙向數(shù)據(jù)第一百一十七頁,共一百三十六頁。第6章輸入輸出系統(tǒng)(3)8237A工作時各信號的配合①作為從模塊工作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 箱子材料成型課程設(shè)計
- 生物數(shù)字化課程設(shè)計
- 公司薪酬福利管理制度
- 發(fā)展集團財務(wù)管理管控規(guī)章制度匯編
- 研究生幼兒游戲課程設(shè)計
- 繼電器電路控制課程設(shè)計
- 住院部護理工作總結(jié)
- 泰拳系統(tǒng)課程設(shè)計案例
- 2025年高考?xì)v史一輪復(fù)習(xí)之經(jīng)濟發(fā)展與社會進步
- 律師調(diào)解案件心得分享
- 2022版義務(wù)教育物理課程標(biāo)準(zhǔn)
- 數(shù)字資產(chǎn)管理與優(yōu)化考核試卷
- 期末測試-2024-2025學(xué)年語文四年級上冊統(tǒng)編版
- 教案-“枚舉法”信息技術(shù)(信息科技)
- 2024年內(nèi)部審計年度工作計劃范文(六篇)
- 四川省成都市2021-2022學(xué)年物理高一下期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 光伏發(fā)電系統(tǒng)租賃合同范本
- 新教科版六年級上冊科學(xué)全冊知識點(期末總復(fù)習(xí)資料)
- 綠色建筑工程監(jiān)理實施細(xì)則
- 2024年安全員b證繼續(xù)教育考試
- 科研倫理與學(xué)術(shù)規(guī)范期末考試試題
評論
0/150
提交評論