




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第六章輸入輸出和中斷技術(shù)6.1為什么要用接口電路接口概念計(jì)算機(jī)通過外圍設(shè)備同外部世界通信或交換數(shù)據(jù)稱為“輸入/輸出”.
把外圍設(shè)備同微型計(jì)算機(jī)連接起來實(shí)現(xiàn)數(shù)據(jù)傳送的控制電路稱為“外設(shè)接口電路”,簡稱“外設(shè)接口”。(介于主機(jī)和外設(shè)之間的一種緩沖電路稱為I/O接口電路).具體結(jié)構(gòu)示意圖見圖所示:一.CPU與I/O接口
接口電路按功能可分為兩類:①是使微處理器正常工作所需要的輔助電路:時(shí)鐘信號或中斷請求等;②是輸入/輸出接口電路:CPU與外部設(shè)備信息的傳送(接收、發(fā)送)。最常用的外部設(shè)備:如鍵盤、顯示裝置、打印機(jī)、磁盤機(jī)等都是通過輸入/輸出接口和總線相連的,完成檢測和控制的儀表裝置也屬于外部設(shè)備之列,也是通過接口電路和主機(jī)相連。二、為什么要用接口電路:需要分析一下外部設(shè)備的輸入/輸出操作和存儲器讀/寫操作的不同之處:
存儲器都是用來保存信息的,功能單一,傳送方式單一(一次必定是傳送1個(gè)字節(jié)或者1個(gè)字),品種很有限(只有只讀類型和可讀/可寫類型),存取速度基本上和CPU的工作速度匹配.。
外部設(shè)備的功能多種多樣的(輸入設(shè)備,輸出設(shè)備,輸入設(shè)備/輸出設(shè)備),信息多樣(數(shù)字式的,模擬式的),信息傳輸?shù)姆绞剑ú⑿械?,串行的),外設(shè)的工作速度通常比CPU的速度低得多,而且各種外設(shè)的工作速度互不相同,這也要求通過接口電路對輸入/輸出過程起一個(gè)緩沖和聯(lián)絡(luò)的作用。注:接口電路完成相應(yīng)的信號轉(zhuǎn)換、速度匹配、數(shù)據(jù)緩沖等功能三.接口的功能(8種):⑴尋址能力:對送來的片選信號進(jìn)行識別。⑵輸入/輸出功能:根據(jù)讀/寫信號決定當(dāng)前進(jìn)行的是輸入操作還是輸出操作。⑶數(shù)據(jù)轉(zhuǎn)換功能:并行數(shù)據(jù)向串行數(shù)據(jù)的轉(zhuǎn)換或串行數(shù)據(jù)向并行數(shù)據(jù)的轉(zhuǎn)換。⑷聯(lián)絡(luò)功能:就緒信號,忙信號等。⑸中斷管理:發(fā)出中斯請求信號、接收中斷響應(yīng)信號、發(fā)送中斷類型碼的功能。并具有優(yōu)先級管理功能。⑹復(fù)位:接收復(fù)位信號,從而使接口本身以及所連的外設(shè)進(jìn)行重新啟動。⑺可編程:用軟件來決定其工作方式,用軟件來設(shè)置有關(guān)的控制信號。⑻錯(cuò)誤檢測:一類是傳輸錯(cuò)誤。另—類是覆蓋錯(cuò)誤。注:一些接口還可根據(jù)具體情況設(shè)置其它的檢測信息。I/O接口電路中最基本的接口電路有8259中斷控制器接口電路,8255可編程并行接口電路、8253可編程定時(shí)/計(jì)數(shù)器、8251可編程串行接口電路、8237直接存儲器存取電路(DMA),A/D,D/A轉(zhuǎn)換器等。6.2接口與端口6.2.1CPU與外設(shè)之間的接口信息
CPU與一個(gè)外設(shè)交換信息,通常需要以下一些信號:
1.
數(shù)據(jù)(Data)
數(shù)字量——鍵盤等輸入的數(shù)據(jù);模擬量——如溫度、壓力、流量等;(需先經(jīng)過A/D轉(zhuǎn)換,將其變?yōu)閿?shù)字量,由CPU處理后,再經(jīng)過
D/A轉(zhuǎn)換,變?yōu)槟M量,進(jìn)行控制),這部分工作由接口電路來完成。開關(guān)量——如開關(guān)的合與斷等。
2.狀態(tài)信息(Status)輸入時(shí),輸入設(shè)備的信息是否準(zhǔn)備好(READY);
輸出時(shí),輸出設(shè)備是否有空等(BUSY)。
3.控制信息(Control)控制輸入輸出設(shè)備的啟動和停止等。6.2.2I/O端口控制方式一個(gè)I/O接口總要包括若干個(gè)端口,如數(shù)據(jù)端口、命令端口、狀態(tài)端口、方式端口、操作結(jié)果端口、地址索引端口等。I/O端口也必須進(jìn)行編址以便能被主機(jī)訪問。在微機(jī)系統(tǒng)中,對I/O接口的端口編址有兩種方法:端口統(tǒng)一編址和端口獨(dú)立編址。一、端口獨(dú)立編址獨(dú)立編址方式的優(yōu)點(diǎn)是:
I/O端口的地址碼較短(一般比同一系統(tǒng)中存儲單元的地址碼短),譯碼電路比較簡單,存儲器同I/0端口的操作指令不同,程序比較清晰;存儲器和I/O端口的控制結(jié)構(gòu)相互獨(dú)立,可以分別設(shè)計(jì)。獨(dú)立編址方式的缺點(diǎn):
需要有專用的I/O指令,而這些I/0指令的功能一般不如存儲器訪問指令那樣豐富,所以程序設(shè)計(jì)的靈活性較差。典型系統(tǒng)
8086采用的就是這種方式OUT43H,AL二、統(tǒng)一編址統(tǒng)一編址方式的優(yōu)點(diǎn)
任何對存儲器數(shù)據(jù)進(jìn)行操作的指令都可用于I/0端口的數(shù)據(jù)操作,不需要專用的I/0指令,從而使系統(tǒng)編程比較靈活;l/O端口的地址空間是內(nèi)存空間的一部分,這樣,l/O端口的地址空間可大可小,從而使外設(shè)的數(shù)目幾乎可以不受限制。統(tǒng)一編址方式的缺點(diǎn)
l/O端口占用了內(nèi)存空間的一部分,顯然內(nèi)存空間必然減少,影響了系統(tǒng)內(nèi)存的容量;同時(shí)訪問l/O端口同訪問內(nèi)存一樣,由于訪問內(nèi)存時(shí)的地址長,指令的機(jī)器碼也長,執(zhí)行時(shí)間顯然增加。典型系統(tǒng)
IntelMCS—51等系列單片微計(jì)算機(jī)就采用這種編址方式,這些微計(jì)算機(jī)中無專門的IN/OUT指令。
I/O指令:
?若端口地址在0~FFH
范圍內(nèi),則用:
INAL,端口地址(輸入)
OUT端口地址,AL(輸出)如:INAL,KOU1OUTKOU2,AL
?若端口地址在0100~FFFFH
范圍內(nèi),則用:
MOVDX,端口地址
INAL,DXOUTDX,AL
如:MOVDX,KOU100INAL,DX65F30200外設(shè)000000FFFFFF0100KOU1KOU2KOU311223344KOU100KOU101可尋址28=256個(gè)端口可尋址216=64K個(gè)端口11323201內(nèi)存00000FFFFF6.2.3簡單的輸入輸出接口芯片在外設(shè)接口電路中,經(jīng)常需要對傳輸過程中的信息進(jìn)行放大、隔離以及鎖存,能實(shí)現(xiàn)上述功能的接口芯片最簡單的就是緩沖器、數(shù)據(jù)收發(fā)器和鎖存器。一、74系列器件
74系列器件是TI(德州儀器)公司生產(chǎn)的中小規(guī)模TTL集成電路芯片,這是一種低成本、工業(yè)民用產(chǎn)品,工作溫度為00C—700C,從功能和速度分類有如下幾類:·74xxx——標(biāo)準(zhǔn)TTL·74Lxxx——低功耗TTL·74Sxxx——肖特基型TTL.74LSxxx——低功耗肖特基型TTL.74ALSxxx——高性能型TTL.74Fxxx——高速型TTL
對于相同編號(XXX),不同類型的芯片,其邏輯功能完全一樣。二、鎖存器74LS37374LS373是一種8D鎖存器,具有三態(tài)驅(qū)動輸出。使能端G有效時(shí),將D端數(shù)據(jù)打入鎖存器中D門,當(dāng)輸出允許端OE有效時(shí),將鎖存器中鎖存的數(shù)據(jù)送到輸出端Q三、緩沖器74LS244
一種三態(tài)輸出的八緩沖器和線驅(qū)動器1A1~1A4,2A1~2A4為輸入,1Y1~1Y4,2Y1~2Y4為輸出當(dāng)1G有效(低電平)時(shí):1Y1~1Y4輸出等于1A1~1A4;當(dāng)2G有效(低電平)時(shí):2Y1~2Y4輸出等于2A1~2A4;而當(dāng)1G(或2G)為高電平時(shí),輸出1Y1—1Y4(或2Y1-2Y4)為高阻態(tài)。經(jīng)74LS244緩沖后,輸入信號被驅(qū)動,輸出信號的驅(qū)動能力加大了。74LS244緩沖器主要用于三態(tài)輸出的存儲地址驅(qū)動器、時(shí)鐘驅(qū)動器和總線定向接收器和定向發(fā)送器等。常用的緩沖器還有74LS240和741~241等。四、數(shù)據(jù)收發(fā)器74LS2456.3數(shù)據(jù)傳送的控制方式按照I/O控制組織的演變順序以及外設(shè)與主機(jī)并行工作的程度,微機(jī)系統(tǒng)中數(shù)據(jù)傳送的控制方式主要有程序控制方式、DMA(直接存儲器存取)方式和I/O處理機(jī)方式。6.3.1程序控制方式1.
程序直接控制方式
①無條件傳送方式
②查詢傳送方式2.中斷傳送方式一、無條件傳送方式
又稱“同步傳送方式”。主要用于外設(shè)的定時(shí)是固定的并且是已知的場合,外設(shè)必須在微處理器限定的指令時(shí)間內(nèi)準(zhǔn)備就緒,并完成數(shù)據(jù)的接收或發(fā)送。通常采用的辦法是:把I/O指令插入到程序中,當(dāng)程序執(zhí)行到該I/O指令時(shí),外設(shè)必定已為傳送數(shù)據(jù)作好準(zhǔn)備,于是在此指令時(shí)間內(nèi)完成數(shù)據(jù)傳送任務(wù)。無條件傳送是最簡便的傳送方式,它所需的硬件和軟件都較少。DatasegmentDtor
dw100dup(?)DataendsCodesegmentassumecs:code,ds:dataStart:movax,data
mov
ds,ax
mov
dx,0100leabx,dtor
xoral,alAgain:moval,dl
out20h,alcallneardelay1
moval,dhout20h,alcallneardelay2inax,10h
mov[bx],axincbxincbx
rcldh,1
jncagain例:采用同步傳送的數(shù)據(jù)采集系統(tǒng)(8路采樣)接口輸入口輸出口
movah,4ch
int21hDelay1procnearpushaxpushdx
movax,3ffhLoop2:mov
dx,0ffffhLoop1:dec
dx
jnzloop1
decax
jnzloop2popdxPopaxretDelay1endpCodeendsendstart二、查詢式傳送方式
CPU與I/O設(shè)備的工作往往是異步的,很難保證當(dāng)CPU執(zhí)行輸入操作時(shí),外設(shè)已把要輸入的信息準(zhǔn)備好了;而當(dāng)CPU執(zhí)行輸出時(shí),外設(shè)的寄存器(用于存放CPU輸出數(shù)據(jù)的寄存器)一定是空的。所以,通常程序控制的傳送方式在傳送之前,必須要查詢一下外設(shè)的狀態(tài),當(dāng)外設(shè)準(zhǔn)備就緒了才傳送;若未準(zhǔn)備好,則CPU等待。例:采用查詢方式傳送的數(shù)據(jù)采集系統(tǒng)(8路采樣)Start:movdl,0f8h
;1111,1000啟動A/D轉(zhuǎn)換
leadi,detor
;輸入數(shù)據(jù)存放地址
Again:moval,dl;
andal,0efh;AL=1110,1000,使D4=0
out4,al;停止A/D轉(zhuǎn)換,
calldelay;
moval,dl;AL=1111,1000
out4,al
;啟動A/D轉(zhuǎn)換并選擇模擬量A0poll:inal,2;輸入狀態(tài)信息
shral,1;
jncpoll;若未Ready,等待
inal,3;否則,輸入數(shù)據(jù)
stosb
;將數(shù)據(jù)存入內(nèi)存
incdl;取下一個(gè)模擬量
jneagain;狀態(tài)端口數(shù)據(jù)口狀態(tài)口控制口A7~A0
D06.3.2中斷傳送方式
.為提高cpu的工作效率和使cpu和外設(shè)以及外設(shè)間的并行工作,可采用中斷傳送方式。
.在中斷傳送方式中,通常是在程序中安排好在某一時(shí)刻啟動某一臺外設(shè),然后CPU繼續(xù)執(zhí)行其主程序,當(dāng)外設(shè)完成數(shù)據(jù)傳送的準(zhǔn)備后,向CPU發(fā)出“中斷請求”信號,在CPU可以響應(yīng)中斷的條件下,現(xiàn)行主程序被“中斷”,轉(zhuǎn)去執(zhí)行“中斷服務(wù)程序”,在“中斷服務(wù)程序”中完成一次CPU與外設(shè)之間的數(shù)據(jù)傳送,傳送完成后仍返回被中斷的主程序,從斷點(diǎn)處繼續(xù)執(zhí)行。傳送流程演示6.3.3DMA(直接存儲器存?。﹤魉头绞街袛鄠魉腿允怯蒀PU通過程序來傳送,每次要保護(hù)斷點(diǎn),保護(hù)現(xiàn)場需用多條指令,每條指令要有取指和執(zhí)行時(shí)間。這對于一個(gè)高速I/O設(shè)備,以及成組交換數(shù)據(jù)的情況,例如磁盤與內(nèi)存間的信息交換,就顯得速度太慢了。所以希望用硬件在外設(shè)與內(nèi)存間直接進(jìn)行數(shù)據(jù)交換(DMA),而不通過CPU,這樣數(shù)據(jù)傳送的速度的上限就取決于存儲器的工作速度。但是,通常系統(tǒng)的地址和數(shù)據(jù)總線以及一些控制信號線(例如I/O、等)是由CPU管理的。在DMA方式時(shí),就希望CPU把這些總線讓出來(即CPU連到這些總線上的線處于第三態(tài)——高阻狀態(tài)),而由DMA控制器接管,控制傳送的字節(jié)數(shù),判斷DMA是否結(jié)束,以及發(fā)出DMA結(jié)束等信號。這些都是由硬件實(shí)現(xiàn)的。傳送流程演示(一)、DMA操作方法
1.周期挪用2.周期擴(kuò)展3.CPU的停機(jī)方式(二)、DMA的傳送方式
1.單字節(jié)方式:每次DMA請求只傳送一個(gè)字節(jié)數(shù)據(jù),每傳送完一個(gè)字節(jié),都撤除DMA請求信號,釋放總線。
2.成組傳送方式一個(gè)DMA請求可以傳送一組信息,這一組信息的字節(jié)數(shù)由編程決定(在DMAC初始化時(shí)),只要在DACK有效之前DREQ保持有效即可。一旦DACK有效,不管DREQ是否有效,DMAC一直不放棄總線控制權(quán),直到整個(gè)數(shù)組傳送完。
3.請求傳送方式又稱查詢傳送方式。該方式的傳送類似于成組傳送方式,但每傳送一個(gè)字節(jié)后,DMAC就檢測DREQ,若無效,則掛起;若有效,繼續(xù)DMA傳送,直到:①一組信息傳送結(jié)束;②外加信號強(qiáng)制DMAC中止操作。(三)、DMA控制器的基本功能DMAC是控制存儲器和外部設(shè)備之間直接高速地傳送數(shù)據(jù)的硬件電路,它應(yīng)能取代CPU,用硬件完成圖8-17所示的各項(xiàng)功能。具體地說應(yīng)具有如下功能:(1)能接收外設(shè)的請求,向CPU發(fā)出DMA請求信號。(2)當(dāng)CPU發(fā)出DMA響應(yīng)信號之后,接管對總線的控制,進(jìn)入DMA方式。(3)能尋址存儲器,即能輸出地址信息和修改地址。(4)能向存儲器和外設(shè)發(fā)出相應(yīng)的讀/寫控制信號。(5)能控制傳送的字節(jié)數(shù),判斷DMA傳送是否結(jié)束。(6)在DMA傳送結(jié)束以后,能結(jié)束DMA請求信號,釋放總線,使CPU恢復(fù)正常工作。,
該電路的工作過程如下:當(dāng)輸入設(shè)備準(zhǔn)備好一個(gè)字節(jié)數(shù)據(jù)時(shí),發(fā)出選通脈沖STB,該信號一方面選通“數(shù)據(jù)緩沖寄存器”U2,把輸人數(shù)據(jù)通過U2送人“鎖存器”U3;另一方面將“DMA請求觸發(fā)器”Ul置“1”,作為鎖存器U3的準(zhǔn)備就緒信號READY,打開鎖存器U3,把輸人數(shù)據(jù)送上數(shù)據(jù)總線;同時(shí)DMA請求觸發(fā)器U1向DMAC發(fā)出DMA請求信號。然后,DMAC向CPU發(fā)出HOLD(總線請求)信號,CPU在現(xiàn)行總線周期結(jié)束后給予響應(yīng),發(fā)出HLDA信號,DMAC接到該信號后接管總線控制權(quán),發(fā)出DMA響應(yīng)和地址信息,并發(fā)出存儲器寫命令,把外設(shè)輸人數(shù)據(jù)(經(jīng)緩沖器U2、鎖存器U3暫存在系統(tǒng)數(shù)據(jù)總線上)寫到內(nèi)存然后修改地址指針,修改計(jì)數(shù)器、檢查傳送是否結(jié)束,若未結(jié)束,則循環(huán)傳送直到整個(gè)數(shù)據(jù)塊傳送完。在整個(gè)數(shù)據(jù)傳送完后,DMAC撤除總線請求信號HOLD,在下一個(gè)T周期的上升沿,使HLDA變?yōu)闊o效。上述過程如圖6—13的波形圖所示。幾種傳送方式的比較:1.無條件傳送:只能用于外部設(shè)備與CPU的動作同步時(shí),否則出錯(cuò)。這種方式已較少使用。2.查詢傳送:
?接口簡單,
?但在傳送過程中,若外設(shè)數(shù)據(jù)沒有準(zhǔn)備好,則CPU一直在查詢、等待,而不能做其他事情。CPU的效率低下。3.中斷傳送:
?只有當(dāng)外設(shè)數(shù)據(jù)準(zhǔn)備好時(shí)(向CPU發(fā)出請求),CPU才進(jìn)行數(shù)據(jù)傳送(在中斷服務(wù)程序中),其余時(shí)間CPU可以做其他事情。CPU效率大大提高。
?但是,每傳送一次數(shù)據(jù),CPU都要執(zhí)行一次中斷服務(wù)程序,在中斷服務(wù)程序中,除執(zhí)行IN
和OUT
指令外,還要進(jìn)行下列工作:保護(hù)斷點(diǎn)、保護(hù)標(biāo)志寄存器、保護(hù)某些通用寄存、恢復(fù)等一些工作,
95%的時(shí)間是額外開銷,從而傳送效率并不高。
4.DMA傳送:
在DMAC的控制下,外設(shè)直接和存儲器(也可外設(shè)與外設(shè),存儲器與存儲器之間)進(jìn)行數(shù)據(jù)傳送,而不必經(jīng)過CPU,傳送速度基本取決于外設(shè)與存儲器的速度,從而傳送效率大大提高。6.4中斷技術(shù)中斷方式如果當(dāng)外設(shè)將數(shù)據(jù)準(zhǔn)備好后,CPU暫時(shí)停止當(dāng)前的工作,進(jìn)行與外設(shè)的數(shù)據(jù)交換,這顯然要提高CPU的工作效率,也解決了慢速的外設(shè)與快速的CPU間在數(shù)據(jù)傳輸時(shí)的速度匹配的矛盾。
6.4.1中斷的基本概念一、中斷和中斷源
所謂“中斷”是指在CPU正常運(yùn)行程序時(shí),由于內(nèi)、外部事件引起CPU暫時(shí)中止正在運(yùn)行的程序,轉(zhuǎn)而去執(zhí)行請求CPU暫時(shí)中止的內(nèi)、外部事件的服務(wù)程序,待該服務(wù)程序處理完畢后又返回到被中止的程序。
能夠向CPU發(fā)出中斷請求的中斷來源稱為“中斷源”。常見的中斷源為:
(1)一般的輸入/輸出設(shè)備,如CRT終端、行式打印機(jī)等;
(2)數(shù)據(jù)通道,如磁帶、磁盤等;
(3)實(shí)時(shí)時(shí)鐘,如定時(shí)器芯片8253等的定時(shí)輸出作為定時(shí)中斷請求信號;
(4)故障信號,如電源掉電等;
(5)軟件中斷,如為調(diào)試程序而設(shè)置的中斷源。日常事務(wù)程序中斷服務(wù)程序二、中斷系統(tǒng)的功能為滿足上述中斷要求,中斷系統(tǒng)應(yīng)具有的功能可歸結(jié)為中斷處理和中斷控制。
1.中斷處理包括發(fā)現(xiàn)中斷請求,響應(yīng)中斷請求、中斷處理與中斷返回。
2.中斷控制主要是實(shí)現(xiàn)中斷優(yōu)先級的排隊(duì)和中斷嵌套三、中斷的主要用途在微機(jī)系統(tǒng)中,中斷的主要用途是:
(1)實(shí)現(xiàn)輸入/輸出操作;
(2)電源掉電或其他情況的報(bào)警;
(3)控制臺或人工干預(yù);
(4)多處理機(jī)系統(tǒng)中各處理機(jī)之間的協(xié)調(diào);
(5)控制操作系統(tǒng)。四、可屏蔽中斷與不可屏蔽中斷
6.4.2中斷處理過程一、CPU響應(yīng)中斷的條件1.設(shè)置中斷請求觸發(fā)器2.設(shè)置中斷屏蔽觸發(fā)器3.設(shè)置中斷允許觸發(fā)器的狀態(tài)4.CPU在現(xiàn)行指令結(jié)束后響應(yīng)中斷
在滿足上面三個(gè)條件的情況下,CPU在執(zhí)行現(xiàn)行指令的最后一個(gè)機(jī)器周期(總線周期)的最后一個(gè)時(shí)鐘周期(T狀態(tài))時(shí),才測試中斷輸入線INT(或INTR),若發(fā)現(xiàn)中斷請求有效,則把內(nèi)部的中斷鎖存器置“1”,下一總線周期進(jìn)入中斷周期。具有中斷屏蔽的接口電路二、中斷響應(yīng)的過程
1.關(guān)中斷
CPU在響應(yīng)中斷后,發(fā)出中斷響應(yīng)信號INTA,同時(shí)內(nèi)部自動地關(guān)中斷,以禁止接受其他的中斷請求。
2.保護(hù)斷點(diǎn)
把斷點(diǎn)處的IP(指令指針)值和CS值(段基值)壓人堆棧保留理完后能正確地返回主程序斷點(diǎn)。
3.識別中斷源CPU要對中斷請求進(jìn)行處理,必須要找到相應(yīng)的中斷服務(wù)程序(處理中斷的程序)的人口地址,這就是中斷源的識別。識別中斷源有兩種方法:
(1)查詢中斷
(2)向量中斷4.保護(hù)現(xiàn)場
為了不使中斷服務(wù)程序的運(yùn)行影響主程序的狀態(tài),必須把斷點(diǎn)處有關(guān)寄存器(指在中斷服務(wù)程序中要使用的寄存器)內(nèi)容以及標(biāo)志寄存器的狀態(tài),壓人堆棧保護(hù)。
5.執(zhí)行中斷服務(wù)程序
6.恢復(fù)現(xiàn)場
即把中斷服務(wù)程序執(zhí)行前壓人堆棧的現(xiàn)場信息彈出恢復(fù)到原寄存器及標(biāo)志寄存器。
7.開中斷與返回
開中斷放在返回之前,目的是返回主程序后能繼續(xù)響應(yīng)新的中斷請求。6.4.3中斷優(yōu)先級當(dāng)多個(gè)中斷源同時(shí)向CPU申請中斷時(shí),CPU必須決定先為那個(gè)中斷源服務(wù).共有3種方法軟件查詢法確定中斷優(yōu)先級硬件查詢法確定優(yōu)先級中斷優(yōu)先級編碼電路一、軟件查詢確定中斷優(yōu)先級在查詢方式中詢問的次序即為優(yōu)先級的次序,不需要有判斷優(yōu)先級的硬件排隊(duì)電路。其缺點(diǎn)是在中斷源較多的情況下由詢問到轉(zhuǎn)至相應(yīng)的中斷服務(wù)程序的人口時(shí)間較長。多個(gè)中斷源共用同一中斷請求端或門中斷請求觸發(fā)器,高有效軟件查詢法識別中斷源二、硬件查詢確定優(yōu)先級來自CPU的“中斷響應(yīng)”信號從A設(shè)備開始串行地往下傳送,當(dāng)A設(shè)備有“·中斷請求”時(shí),則“中斷響應(yīng)”信號在門A2處被封鎖,不再下傳,使后面的設(shè)備得不到CPU的“中斷請求”信號。外設(shè)的中斷優(yōu)先級由其在鏈?zhǔn)脚抨?duì)電路中的先后次序來決定。讀中斷矢量EN高有效高電平有效優(yōu)先控制失效控制中斷屏蔽寄存器0-開中斷請求觸發(fā)器1-有請求三、中斷優(yōu)先級編碼電路6.4.4中斷的嵌套執(zhí)行低級中斷時(shí)被高級中斷所中斷稱中斷嵌套有中斷嵌套時(shí)的中斷服務(wù)程序編程注意事項(xiàng)屏蔽同級及低級中斷中斷服務(wù)過程中開放中斷恢復(fù)現(xiàn)場時(shí)關(guān)中斷恢復(fù)現(xiàn)場后開中斷6.4.58086/8088的中斷系統(tǒng)8086/8088中斷系統(tǒng)的特點(diǎn):矢量中斷能處理256個(gè)中斷源(圖)內(nèi)部中斷外部中斷外部中斷6.4.5.1外部中斷一、可屏蔽中斷INTRIF標(biāo)志可屏蔽中斷有2個(gè)INTA周期,第一個(gè)周期響應(yīng)中斷請求,第2個(gè)周期讀中斷類型號二、不可屏蔽中斷NMI用來處理緊急或?yàn)?zāi)難性事件電源掉電存儲器讀寫錯(cuò)總線奇偶校驗(yàn)錯(cuò)不執(zhí)行中斷響應(yīng)周期有固定的中斷類型號26.4.5.2內(nèi)部中斷溢出中斷溢出標(biāo)志置位時(shí)引起該中斷有固定的中斷類型號4(執(zhí)行INTO產(chǎn)生)除法錯(cuò)中斷除法運(yùn)算的商大于目的操作數(shù)字長能表示的范圍中斷類型號0(自動產(chǎn)生)INTn中斷(軟中斷)執(zhí)行INTn指令時(shí)引起的中斷斷點(diǎn)中斷INT3指令時(shí)產(chǎn)生中斷單步(陷阱)中斷TF標(biāo)志置1時(shí)(將標(biāo)志與0100H相或),每執(zhí)行一條指令產(chǎn)生一次中斷,用于調(diào)試中斷類型號1(每執(zhí)行完一條指令自動產(chǎn)生)內(nèi)部中斷的特點(diǎn):除單步中斷外均不可屏蔽不執(zhí)行中斷響應(yīng)周期除軟中斷外都有固定的中斷類型號除單步中斷外,所有內(nèi)部中斷都比外部中斷優(yōu)先級高.中斷優(yōu)先級中斷優(yōu)先級除法錯(cuò),INTn,INT0NMIINTR單步最高最低movbl,0idiv
bl
;除數(shù)BL=0,產(chǎn)生除法錯(cuò)中斷movax,200hmovbl,1divbl
;商=200H,不能用AL表達(dá) ;產(chǎn)生除法錯(cuò)中斷⑴除法錯(cuò)中斷在執(zhí)行除法指令時(shí),若除數(shù)為0或商超過了寄存器所能表達(dá)的范圍,則產(chǎn)生一個(gè)向量號為0的內(nèi)部中斷,稱為除法錯(cuò)中斷例如:例如:DEBUG.EXE調(diào)試程序的單步命令T就利用單步中斷實(shí)現(xiàn)對程序的單步調(diào)試⑵單步中斷若單步中斷TF為1,則在每條指令執(zhí)行結(jié)束后產(chǎn)生一個(gè)向量號為1的內(nèi)部中斷,稱為單步中斷⑶斷點(diǎn)中斷設(shè)置斷點(diǎn)的專用指令,其操作碼為單字節(jié)0CCH,助記符為INT3movax,2000haddax,7000h
;2000H+7000H=9000H,溢出:OF=1into ;因?yàn)镺F=1,所以產(chǎn)生溢出中斷⑷溢出中斷在執(zhí)行溢出中斷指令I(lǐng)NTO時(shí),若溢出標(biāo)志OF為1,則產(chǎn)生一個(gè)向量號為4的內(nèi)部中斷,被稱為溢出中斷例如:例如:DEBUG.EXE調(diào)試程序的運(yùn)行命令G設(shè)置的斷點(diǎn),就是利用INT3指令實(shí)現(xiàn)的⑸軟中斷在執(zhí)行中斷調(diào)用指令I(lǐng)NTn時(shí)產(chǎn)生的一個(gè)向量號為n(0~255)的內(nèi)部中斷,稱為指令中斷,其中向量號為3的指令中斷比較特別(生成一個(gè)字節(jié)的指令代碼:11001100),常用于程序調(diào)試,被稱為斷點(diǎn)中斷6.4.5.3中斷向量表中斷向量表是存放中斷服務(wù)程序入口地址的表格中斷向量表存放在內(nèi)存的0000段,0000偏移處,共1024字節(jié)每個(gè)中斷向量占4個(gè)字節(jié),低地址放IP高地址放CS1)定義:所謂中斷向量,實(shí)際上就是中斷處理子程序的入口地址,每個(gè)中斷類型對應(yīng)一個(gè)中斷向量
8086的中斷系統(tǒng)是以位于內(nèi)存0段的0~3FFH區(qū)域的中斷向量表為基礎(chǔ)的,中斷向量表中最多可以容納256個(gè)中斷向量。
中斷向量并不是任意存放的。一個(gè)中斷向量占4個(gè)存儲單元,其中前2個(gè)單元存放IP且低位在前,高位在后,后2個(gè)單元存放CS,同樣也是低位在前、高位在后。按照中斷類型的序號,對應(yīng)的中斷向量在內(nèi)存的0段0單元開始有規(guī)則地進(jìn)行排列。重點(diǎn):由中斷類型號如何求中斷向量。2)8086中斷類型號的獲取方法有兩種方法獲取類型號。第一種是用指令直接獲取。對于類型號0~4的中斷,由于8086CPU已規(guī)定了產(chǎn)生中斷的原因,所以可以直接獲取類型號。而INTN類型的中斷可以由指令直接得到中斷類型號。第二種是由外部引入的INTR中斷,當(dāng)CPU響應(yīng)中斷時(shí)必須由硬件提供中斷類型號。在可屏蔽中斷響應(yīng)周期進(jìn)行到第二個(gè)周期時(shí),類型號放入數(shù)據(jù)總線,CPU從數(shù)據(jù)總線上獲取類型號。中斷向量:中斷服務(wù)程序的入口地址(首地址),邏輯地址含有段地址CS和偏移地址IP(32位)每個(gè)中斷向量的低字是偏移地址、高字是段地址,需占用4個(gè)字節(jié)
8086微處理器從物理地址000H開始,依次安排各個(gè)中斷向量,向量號也從0開始256個(gè)中斷占用1KB區(qū)域,就形成中斷向量表向量號為N的中斷向量的物理地址=N×4向量號255的CS值用戶中斷(向量號255)3FCH向量號255的IP值……向量號2的CS值非屏蔽中斷(向量號2)008H向量號2的IP值向量號1的CS值單步中斷(向量號1)004H向量號1的IP值向量號0的CS值除法錯(cuò)中斷(向量號0)000H向量號0的IP值8086的中斷向量表一、8086中斷過程——內(nèi)部中斷過程
1)首先將狀態(tài)寄存器的內(nèi)容壓入堆棧中。2)置TF=0,暫停單步中斷,并置IF=0,用以屏蔽以后的可屏蔽中斷。3)斷點(diǎn)地址CS:IP壓入堆棧。4)識別中斷源,首先獲取中斷類型號,并將其乘4,得到存儲中斷向量的起始地址,進(jìn)而取得中斷向量。將中斷向量中的高地址的字送入CS寄存器,將低地址的字送IP寄存器中。6.4.5.48086中斷過程5)執(zhí)行中斷服務(wù)程序。6)中斷服務(wù)程序最后一條指令為IRET,這條指令的功能保證了從堆棧中彈出斷點(diǎn)IP和CS的內(nèi)容,并存入各自的寄存器中,并接著彈出狀態(tài)寄存器的內(nèi)容,恢復(fù)斷點(diǎn)的狀態(tài)標(biāo)志。7)CPU按CS和IP指示的內(nèi)容正確地返回了程序的斷點(diǎn)處,程序從斷點(diǎn)處繼續(xù)運(yùn)行二、8086中斷過程——非屏蔽中斷過程1)CPU一旦響應(yīng)了中斷請求,首先將狀態(tài)寄存器的內(nèi)容壓入堆棧中。2)置TF=0,暫停單步中斷,并置IF=0,用以屏蔽以后的中斷。3)斷點(diǎn)地址CS:IP壓入堆棧。4)識別中斷源,首先由中斷類型號02H查中斷向量表讀取中斷服務(wù)程序的入口地址到CS和IP中。5)執(zhí)行中斷服務(wù)程序。6)執(zhí)行中斷返回指令I(lǐng)RET,這條指令的功能保證了從堆棧中彈出斷點(diǎn)IP和CS的內(nèi)容,并存入各自的寄存器中,并接著彈出狀態(tài)寄存器的內(nèi)容,恢復(fù)斷點(diǎn)的狀態(tài)標(biāo)志。7)CPU按CS和IP指示的內(nèi)容正確地返回了程序的斷點(diǎn)處,程序從斷點(diǎn)處繼續(xù)運(yùn)行。三、8086中斷過程——可屏蔽中斷過程
1)執(zhí)行中斷響應(yīng)周期發(fā)出中斷響應(yīng)信號,從數(shù)據(jù)總線讀取中斷類型號。
2)如果當(dāng)時(shí)IF=0,那么可屏蔽的中斷源被屏蔽。當(dāng)IF=1時(shí),CPU在執(zhí)行完當(dāng)前指令(有重復(fù)前綴的字符串操作指令除外)后將響應(yīng)它所收到的中斷請求。如果有幾個(gè)中斷源同時(shí)請求中斷,則CPU只響應(yīng)其中優(yōu)先級最高的。
3)CPU一旦響應(yīng)了中斷請求,首先將狀態(tài)寄存器的內(nèi)容壓入堆棧中。
4)置TF=0,暫停單步中斷,并置IF=0,用以禁止CPU響應(yīng)新的可屏蔽中斷請求。
5)將指示斷點(diǎn)的指令指針寄存器IP及代碼段寄存器CS的內(nèi)容壓入堆棧。
6)識別中斷源,首先獲取中斷類型號,并將其乘4,得到存儲中斷向量的起始地址,進(jìn)而取得中斷向量。
7)將中斷向量中的高地址的字送入CS寄存器,將低地址的字送IP寄存器,于是開始執(zhí)行中斷服務(wù)程序。
8)中斷服務(wù)程序最后一條指令為IRET,這條指令的功能保證了從堆棧中彈出斷點(diǎn)IP和CS的內(nèi)容,并存入各自的寄存器中,并接著彈出狀態(tài)寄存器的內(nèi)容,恢復(fù)斷點(diǎn)的狀態(tài)標(biāo)志。
9)CPU按CS和IP指示的內(nèi)容正確地返回了程序的斷點(diǎn)處,程序從斷點(diǎn)處繼續(xù)運(yùn)行。6.5可編程中斷控制器8259AIntel8259A是可編程中斷控制器PIC可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中斷8259A的基本功能一片8259A可以管理8級中斷,可擴(kuò)展至64級每一級中斷都可單獨(dú)被屏蔽或允許在中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號8259A設(shè)計(jì)有多種工作方式,可通過編程選擇6.5.18259A的內(nèi)部結(jié)構(gòu)和引腳6.5.18259A的內(nèi)部結(jié)構(gòu)和引腳1.中斷控制中斷請求寄存器IRR保存8條外界中斷請求信號IR0~I(xiàn)R7的請求狀態(tài)Di位為1表示IRi引腳有中斷請求;為0表示無請求中斷服務(wù)寄存器ISR保存正在被8259A服務(wù)著的中斷狀態(tài)Di位為1表示IRi中斷正在服務(wù)中;為0表示沒有被服務(wù)中斷屏蔽寄存器IMR保存對中斷請求信號IR的屏蔽狀態(tài)Di位為1表示IRi中斷被屏蔽(禁止);為0表示允許2.與處理器接口
A0RD*WR*CS*功能
0100110000101010×110×××1寫入ICW1、OCW2和OCW3寫入ICW2~I(xiàn)CW4和OCW1讀出IRR、ISR和查詢字讀出IMR數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)3.中斷級連一個(gè)系統(tǒng)中,8259A可以級連,有一個(gè)主8259A,若干個(gè)(最多8個(gè))從8259A級連時(shí),主8259A的三條級連線CAS0~CAS2作為輸出線,連至每個(gè)從8259A的CAS0~CAS2每個(gè)從8259A的中斷請求信號INT,連至主8259A的一個(gè)中斷請求輸入端IR主8259A的INT線連至CPU的中斷請求輸入端SP*/EN*在非緩沖方式下,規(guī)定該8259A是主片(SP*=1)還是從片(SP*=0)CAS0IR0CAS1IR1CAS2IR2
IR3INTAIR4IR5INTIR6IR7SP/EN
CAS0INTA
CAS1
CAS2INT
IR0
IR1SP/ENIR7CAS0IR0CAS1IR1CAS2IR2
IR3INTAIR4IR5INTIR6IR7SP/ENINTAINTR+5V8259級聯(lián)工作示意圖返回8259級聯(lián)工作示意圖返回6.5.28259A的中斷過程CAS0~CAS2D0~D7SP/ENIR0~I(xiàn)R7CPU響應(yīng)周期8259A工作波形INT第一個(gè)周期T1T2T3T4ALECLK
第二個(gè)周期T1T2T3T4第一個(gè)前保持為高電平
INTALOCK8259級聯(lián)工作示意圖返回6.5.38259A的工作方式普通全嵌套方式特殊全嵌套方式自動循環(huán)方式特殊循環(huán)方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)循環(huán)方式設(shè)置優(yōu)先權(quán)方式普通中斷結(jié)束方式特殊中斷結(jié)束方式自動中斷結(jié)束方式非自動中斷結(jié)束方式結(jié)束中斷處理方式屏蔽中斷源方式普通屏蔽方式特殊屏蔽方式中斷觸發(fā)方式邊沿觸發(fā)方式電平觸發(fā)方式數(shù)據(jù)線連接方式緩沖方式非緩沖方式1.設(shè)置優(yōu)先權(quán)方式普通全嵌套方式8259A的中斷優(yōu)先權(quán)順序固定不變,從高到低依次為IR0、IR1、IR2、……IR7中斷請求后,8259A對當(dāng)前請求中斷中優(yōu)先權(quán)最高的中斷IRi予以響應(yīng),將其向量號送上數(shù)據(jù)總線,對應(yīng)ISR的Di位置位,至到中斷結(jié)束(ISR的Di位復(fù)位)在ISR的Di位置位期間,禁止再發(fā)生同級和低級優(yōu)先權(quán)的中斷,但允許高級優(yōu)先權(quán)中斷的嵌套特殊全嵌套方式優(yōu)先權(quán)自動循環(huán)方式優(yōu)先權(quán)特殊循環(huán)方式2.結(jié)束中斷處理方式什么是8259A的中斷結(jié)束?8259A利用中斷服務(wù)寄存器ISR判斷:某位為1,表示正在進(jìn)行中斷服務(wù);該位為0,就是該中斷結(jié)束服務(wù)。這里說明如何使ISR某位為0,不反映CPU的工作狀態(tài)。2.結(jié)束中斷處理方式自動中斷結(jié)束方式普通中斷結(jié)束方式配合全嵌套優(yōu)先權(quán)方式使用當(dāng)CPU用輸出指令往8259A發(fā)出普通中斷結(jié)束EOI命令時(shí),8259A就會把所有正在服務(wù)的中斷中優(yōu)先權(quán)最高的ISR位復(fù)位特殊中斷結(jié)束方式配合循環(huán)優(yōu)先權(quán)方式使用CPU在程序中向8259A發(fā)送一條特殊中斷結(jié)束命令,這個(gè)命令中指出了要清除哪個(gè)ISR位3.屏蔽中斷源方式普通屏蔽方式將IMR的Di位置1,則對應(yīng)的中斷IRi被屏蔽,該中斷請求不能從8259A送到CPU如果IMR的Di位置0,則允許IRi中斷產(chǎn)生特殊屏蔽方式將IMR的Di位置1,對應(yīng)的中斷IRi被屏蔽的同時(shí),使ISR的Di位置04.中斷觸發(fā)方式邊沿觸發(fā)方式8259A將中斷請求輸入端出現(xiàn)的上升沿作為中斷請求信號電平觸發(fā)方式中斷請求端出現(xiàn)的高電平是有效的中斷請求信號5.數(shù)據(jù)線連接方式緩沖方式8259A的數(shù)據(jù)線需加緩沖器予以驅(qū)動8259A把SP*/EN*引腳作為輸出端,輸出允許信號,用以鎖存或開啟緩沖器非緩沖方式SP*/EN*引腳為輸入端若8259A級連,由其確定是主片或從片6.5.48259A的編程初始化編程8259A開始工作前,必須進(jìn)行初始化編程給8259A寫入初始化命令字ICW中斷操作編程在8259A工作期間可以寫入操作命令字OCW將選定的操作傳送給8259A,使之按新的要求工作還可以讀取8259A的信息,以便了解他的工作狀態(tài)1.初始化命令字ICW初始化命令字ICW最多有4個(gè)8259A在開始工作前必須寫入必須按照ICW1~I(xiàn)CW4順序?qū)懭隝CW1和ICW2是必須送的ICW3和ICW4由工作方式?jīng)Q定D7D6D5D4D3D2D1D0寫ICW1A0=0,D4=1寫ICW2A0=1SNGL=1
IC4
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 門店財(cái)務(wù)精英招聘實(shí)戰(zhàn)模擬面試題庫
- 網(wǎng)絡(luò)安全防護(hù)方案
- 新版環(huán)衛(wèi)工人節(jié)日低碳生活節(jié)約地球資源創(chuàng)造精神家園專題解讀
- 2026屆甘肅省張掖市二中化學(xué)高二上期末聯(lián)考模擬試題含答案
- 細(xì)胞器之間的合作
- 學(xué)校合唱社團(tuán)匯報(bào)
- 細(xì)胞衰老與癌變機(jī)制研究
- 學(xué)習(xí)中小學(xué)校新冠肺炎疫情防控技術(shù)方案(第六版)調(diào)整要點(diǎn)
- 藥品不良反應(yīng)上報(bào)與監(jiān)測體系
- 通信電纜焊接技術(shù)
- 廣西2025年公需科目學(xué)習(xí)考試試題及答案4
- 代加工板材合同協(xié)議書范本
- 2025-2026學(xué)年新七年級上學(xué)期開學(xué)摸底考試語文試卷(廣東專用)
- 早期診斷技術(shù)優(yōu)化-第1篇-洞察及研究
- 2025 慢阻肺合并肺心病診療查房課件
- 2025二手房個(gè)人購房合同范本
- 2025年c語言大考試題及答案
- 2025年病歷書寫競賽題庫
- 2025年輔導(dǎo)員技能大賽試題題庫(含答案)
- 2025版一次性社保補(bǔ)償協(xié)議示范文本及爭議裁決機(jī)制
- (標(biāo)準(zhǔn))專利合同轉(zhuǎn)讓協(xié)議書范本
評論
0/150
提交評論