版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
5.1接口基本概念為什么需要I/O接口(電路)?外設(shè)多種多樣,不能與CPU直接相連(鍵盤、顯示器、打印機(jī)、掃描儀、磁盤機(jī)、鼠標(biāo)器等)須經(jīng)中間電路(I/O接口)與系統(tǒng)相連多種外設(shè)5.1.1接口的功能1.接口:兩電路(設(shè)備)之間、協(xié)調(diào)動(dòng)作的連接電路2.功能:進(jìn)行數(shù)據(jù)傳送控制(三總線的轉(zhuǎn)換和連接)CPU接口電路
I/O設(shè)備
5.1.2
基本結(jié)構(gòu)5.1.3
接口信息數(shù)據(jù)信息
數(shù)字量:計(jì)算機(jī)可以直接發(fā)送、接收和處理的數(shù)據(jù);
模擬量:連續(xù)變化的物理量,如溫度、壓力、流量、位移、濕度等,需AD轉(zhuǎn)換;
開關(guān)量:表示兩個(gè)狀態(tài),如開關(guān)斷開和閉合,機(jī)器運(yùn)轉(zhuǎn)與2.狀態(tài)信息
外設(shè)的工作狀態(tài),輸入設(shè)備數(shù)據(jù)是否準(zhǔn)備好、輸出設(shè)備是否空閑等。CPU需要讀取外設(shè)狀態(tài)信號,才能保障CPU與外設(shè)正確進(jìn)行通信。3.控制信息控制信息是CPU通過接口傳送給外設(shè)的。CPU通過發(fā)送控制信息設(shè)置外設(shè)的工作模式、控制外設(shè)的工作。如外設(shè)的啟動(dòng)信號和停止信號就是常見的控制信息。
數(shù)據(jù)傳送方式并行一個(gè)數(shù)據(jù)單位(字/字節(jié))的各位同時(shí)傳送速度快、距離短、成本高
(對應(yīng):并行接口)串行數(shù)據(jù)按位進(jìn)行傳送速度慢、距離遠(yuǎn)、成本低
(對應(yīng):串行接口)5.2
CPU與外設(shè)進(jìn)行數(shù)據(jù)傳送的方式異步串行通信傳送格式:
異步:接收端與發(fā)送端時(shí)鐘可不同步數(shù)據(jù)傳送方式無條件方式——直接、延時(shí)傳送數(shù)據(jù)(外設(shè)隨時(shí)就緒)查詢方式——查詢接口狀態(tài),傳送數(shù)據(jù)(準(zhǔn)備好?允許?耗時(shí),踏步,簡單)中斷方式——外設(shè)通知→CPU→中斷?→執(zhí)行(效率高,復(fù)雜)DMA方式——直接存儲(chǔ)器存取,外設(shè)
存儲(chǔ)器(不經(jīng)CPU,高速,用專用控制器)1.無條件傳送方式假設(shè)外設(shè)已經(jīng)準(zhǔn)備就緒,不查詢外設(shè)狀態(tài),直接執(zhí)行I/O指令進(jìn)行數(shù)據(jù)傳輸。2.查詢方式稱為條件傳送方式,一般查詢傳輸時(shí)一個(gè)I/O設(shè)備有兩個(gè)端口地址,一個(gè)為數(shù)據(jù)口地址,一個(gè)為狀態(tài)口地址。CPU先讀取狀態(tài)口的數(shù)據(jù),看看當(dāng)前外設(shè)的狀態(tài)準(zhǔn)備好沒有,若準(zhǔn)備好則開始讀寫數(shù)據(jù)口,傳輸數(shù)據(jù);若未準(zhǔn)備好則循環(huán)讀取狀態(tài)口地址等待外設(shè)準(zhǔn)備好。查詢式輸入如圖,狀態(tài)線占用一根數(shù)據(jù)線D0,STB是選通信號,在輸入時(shí)隨著數(shù)據(jù)一起從輸入端口出現(xiàn),是表示輸入數(shù)據(jù)已就緒的狀態(tài)信號。CPU先讀狀態(tài)口,若狀態(tài)就緒,再讀數(shù)據(jù)口。數(shù)據(jù)口42H狀態(tài)口40HSTROBE:選通信號1)外設(shè)未準(zhǔn)備好,STB為高,D觸發(fā)器無脈沖,CPU讀狀態(tài)口(40H),打開緩沖器(1),讀出DB0為低,表示未準(zhǔn)備好。2)外設(shè)準(zhǔn)備好,STB為低,a.
打開鎖存器,將輸入數(shù)據(jù)鎖存起來;b.STB有下降沿脈沖,使Q為高,CPU讀狀態(tài)口(40H)讀入的DB0為高,表示數(shù)據(jù)有效,程序轉(zhuǎn)而讀數(shù)據(jù)口42H。狀態(tài)改變3)讀數(shù)據(jù)口42H,a.
打開緩沖器(2),讀數(shù)據(jù)線,這時(shí),緩沖器(1)高阻,所以數(shù)據(jù)線上是輸入設(shè)備的數(shù)據(jù);b.
同時(shí),讀數(shù)據(jù)口的控制線將D觸發(fā)器清零。Q端輸出0,下次再讀狀態(tài)口時(shí)讀入的DB0為0,表示數(shù)據(jù)未準(zhǔn)備就緒。4)重復(fù)1),2),3)步驟中斷傳送方式中斷傳送方式是指當(dāng)外設(shè)需要與CPU進(jìn)行信息交換時(shí),由外設(shè)向CPU發(fā)出請求信號,使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行數(shù)據(jù)的輸入/輸出操作,數(shù)據(jù)傳送結(jié)束后,CPU再繼續(xù)執(zhí)行被暫停的程序。CPU不必查詢等待,工作效率高,CPU與外設(shè)可以并行工作;由于外設(shè)具有申請中斷的主動(dòng)權(quán),故系統(tǒng)實(shí)時(shí)性比查詢方式要好得多。DMA方式DMA傳送方式是在存儲(chǔ)器和外設(shè)之間、存儲(chǔ)器和存儲(chǔ)器之間直接進(jìn)行數(shù)據(jù)傳送,無需CPU介入。DMA傳送方式需要DMA控制器(DMAC)對傳送過程加以控制和管理。
DMA傳送期間,CPU放棄總線控制權(quán),將系統(tǒng)總線交由DMAC控制,由DMAC發(fā)出地址及讀/寫信號來實(shí)現(xiàn)高速數(shù)據(jù)傳輸。傳送結(jié)束后DMAC再將總線控制權(quán)交還給CPU。DMA傳送方式:單字節(jié)傳輸方式成組傳輸方式(塊傳輸方式)請求傳輸方式DMA傳送過程:
DMA初始化
DMA傳送過程(請求、響應(yīng)、傳送)傳送結(jié)束5.3I/O指令和I/O地址譯碼CPU進(jìn)行I/O操作:
先片選(芯片)、再字選(某寄存器)存儲(chǔ)器操作?兩種I/O接口結(jié)構(gòu)5.3.1標(biāo)準(zhǔn)的I/O尋址方式特點(diǎn):I/O端口地址獨(dú)立專門控制IOR*,IOW*專門I/O指令易理解缺點(diǎn):I/O指令沒有存儲(chǔ)器指令豐富內(nèi)存空間I/O空間FFFFF0FFFF80x86采用I/O端口獨(dú)立編址獨(dú)立編址(統(tǒng)一編址)特點(diǎn):指令眾多,專門控制MEMR*,MEMW*I/O操作同存儲(chǔ)器操作缺點(diǎn):存儲(chǔ)器地址空間↓程序不易閱讀,耗時(shí)內(nèi)存部分I/O部分存儲(chǔ)器空間00000FFFFF5.3.2輸入輸出指令1.輸入指令(I/O口→CPU)
INAL/AX,Port;直接端口尋址
(Port:端口號,取值0~255)INAL/AX,DX;間接端口尋址
(DX:內(nèi)容為端口號,取值0~64K,實(shí)1K)
2.輸出指令(CPU→I/O口)
OUTPort,AL/AX;直接端口尋址
OUTDX,AL/AX;間接端口尋址端口:具有一定獨(dú)立操作功能,可由CPU尋址的一組寄存器(8088/8086時(shí)寬度為8位)例:INAL,50H;將50H端口的字節(jié)讀入ALOUT80H,AX;將AL的字節(jié)輸出到80H端口,
將AH的字節(jié)輸出到81H端口
OUTDX,AL;將AL中的字節(jié)輸出到DX所指的端口
OUTDX,AX?
INAH,7EH?
MOVDX,AL?5.3.3I/O接口的端口地址譯碼即接口地址譯碼:
理想(A0~A15)64K范圍,0~FFFFH(端口號)實(shí)際(A0~A9)1K范圍,0~03FFH(端口號,系統(tǒng)占用部分)1.直接地址譯碼(實(shí)用多見)A0~A9(加AEN,IOR*,IOW*)→譯碼電路→片選(組選,地址區(qū)域)、字選(寄存器選擇)AEN:DMA控制器地址允許信號AEN=1,為DMA期間,禁止其他使用系統(tǒng)總線AEN=0,非DMA期間,允許CPU控制系統(tǒng)總線(直接地址譯碼需AEN=0)G2B*=0?
G2A*=0?輸入輸出分開G2B*=0?AEN=0時(shí)
CBAA9A8A7A6A5A4A3A2A1A01011111000
2F8H
…………1011111111
2FFHG2A*=0?IOW*/IOR*不同時(shí)有效輸入輸出I/O端口地址→I/O接口:
含IOW*/IOR*信息,含AEN信息,含A9~A0信息A9A8A7A6A5A4A3A2A1A01110000000
380H
…………1110000001
381H←I/O端口地址:可輸入輸出
由IOW*/IOR*體現(xiàn)80X86主機(jī)板的I/O譯碼電路(內(nèi)端口)DMA控制器1(00H~1FH)中斷控制器1(20H~3FH)定時(shí)計(jì)數(shù)器(40H~5FH)并行接口電路(60H~7FH)DMA頁面寄存器(80H~9FH)中斷控制器2(A0H~BFH)DMA控制器2(C0H~DFH)協(xié)處理器(E0H~FFH)AEN接口芯片內(nèi)部譯碼A0~A4A5A6A7A8A974LS138ABCG2AG2BG1Y0Y1Y2Y3Y4Y5Y6Y75.4
8086/8088CPU中斷控制功能5.4.1中斷概念正在看書電話鈴響接電話繼續(xù)看書執(zhí)行程序事件發(fā)生事件處理繼續(xù)執(zhí)行程序中斷處理中斷請求及響應(yīng)實(shí)際場景計(jì)算機(jī)中斷返回中斷:
CPU暫停現(xiàn)操作,轉(zhuǎn)去處理另一事件,完畢,返回執(zhí)行暫停的操作。5.4.2中斷源外部硬件中斷
INTR:可屏蔽中斷,受CPU內(nèi)標(biāo)志寄存器中IF位的屏蔽NMI:非屏蔽中斷,不受IF位的屏蔽,Cpu必須響應(yīng)2.內(nèi)部異常中斷
CPU內(nèi)部正在執(zhí)行的過程發(fā)生的異常情況,如除數(shù)為03.中斷優(yōu)先順序CPU的中斷優(yōu)先權(quán)排列從高到低為:1)除法出錯(cuò)中斷,溢出中斷,INTn,…2)NMI3)INTR4)單步中斷中斷源識別:中斷類型碼中斷類型碼可以是0~255,一部分由系統(tǒng)占用,一部分用戶可以支配。
比如:除法錯(cuò)誤(n=0)
調(diào)試異常(n=1)
NMI中斷(n=2)
斷點(diǎn)中斷(n=3)
溢出中斷(n=4)
5.4.3中斷向量表中斷向量表:系統(tǒng)RAM的最低端00000H~003FFH的1K字節(jié)內(nèi),表中共有256個(gè)中斷類型碼對應(yīng)的中斷向量。中斷向量:每個(gè)中斷向量占用4個(gè)字節(jié)。前2個(gè)字節(jié)為中斷服務(wù)程序入口地址的偏移地址IP,后2個(gè)字節(jié)為服務(wù)程序的段基址CS。向量地址:這4個(gè)單元的地址中的最小地址稱為向量地址向量地址=向量表的首地址
+中斷類型碼*45.4.4CPU對外部可屏蔽中斷的響應(yīng)過程CPU現(xiàn)指令結(jié)束后,IF=1,有中斷請求→響應(yīng),中斷處理:(1)關(guān)中斷(IF=0,TF=0,機(jī)器自動(dòng))(2)保留斷點(diǎn)(當(dāng)前F,CS,IP內(nèi)容入棧,機(jī)器自動(dòng))(3)轉(zhuǎn)中斷程序(其段地→CS,偏地→IP,機(jī)器自動(dòng))(4)保護(hù)現(xiàn)場(相關(guān)寄存器,人工)(5)中斷服務(wù)(執(zhí)行程序,機(jī)器自動(dòng))(6)恢復(fù)現(xiàn)場(相關(guān)寄存器,人工)(7)中斷返回,IRET(IP、CS、F內(nèi)容出棧,返回中斷發(fā)生時(shí)下一指令處,
機(jī)器自動(dòng)且IF=1)
中斷時(shí)棧操作:IPLIPHCSLCSHFLFHSPIPCSFLAGFLFHCSLIPLIPHCSHSP保留斷點(diǎn),進(jìn)棧執(zhí)行IRET,斷點(diǎn)出棧①中斷嵌套?在(5)中加入STI指令,開中斷②堆棧操作:棧操作指令PUSH、POP
子程序調(diào)用CALL、返回RET
中斷斷點(diǎn)保留、返回IRET5.5
中斷控制器8259A可編程芯片,80x86的中斷管理器件8259A的基本功能:2個(gè)端口,一片可管理8級中斷;級聯(lián):最多64級;可中斷屏蔽或允許;可中斷向量輸送;可優(yōu)先權(quán)管理;多種工作方式,編程選擇5.5.18259A的結(jié)構(gòu)和引腳D7~D0INTAINT中斷請求寄存器中斷屏蔽寄存器數(shù)據(jù)總線緩沖器IR0IR7讀/寫控制邏輯級聯(lián)緩沖比較器RDWRA0CSCAS0CSA1CAS2SP/EN優(yōu)先權(quán)分析器中斷服務(wù)寄存器控制邏輯IR0~I(xiàn)R7:8個(gè)異步中斷請求輸入信號。分別接來自不同外設(shè)的中斷源,高電平或上升沿表示有請求。
INT:中斷請求信號(輸出),向CPU發(fā)中斷請求。
中斷響應(yīng)輸入信號,接收CPU響應(yīng)中斷后的應(yīng)答信號。
CAS2~CAS0:主從級連雙向信號。當(dāng)系統(tǒng)的中斷請求多于8個(gè)時(shí),可用兩個(gè)或更多的8259A級連,其中一個(gè)是主控制器,其余是從控制器。從片的INT輸出接到主片的一個(gè)IR輸入。在中斷響應(yīng)期間,若主8259A判定所響應(yīng)的是由某一從片發(fā)出的請求,則它在級連線上發(fā)出該從片的識別號,并由各從片接收。從片將自己的識別號與該級連線上的號相比較。若一致的話,它應(yīng)在第二個(gè)INTA響應(yīng)周期,把自己片內(nèi)中斷源的類型號通過D7~D0送給CPU,以便把控制引導(dǎo)到所對應(yīng)的中斷服務(wù)程序入口。主從或緩沖方式,雙向信號。當(dāng)其為輸入時(shí),由它決定該片為主片(SP=1)或從片(SP=0)。當(dāng)其為輸出時(shí),8259A處于“緩沖方式”,該信號用來控制雙向總線驅(qū)動(dòng)器的啟動(dòng)(EN)端。這種方式常用于多片級連的大系統(tǒng)中。
A0:地址選擇信號,用來對內(nèi)部寄存器進(jìn)行選擇,通常接總線的A0。即8259A的內(nèi)部寄存器占外設(shè)的兩個(gè)地址,稱為奇地址和偶地址。
中斷請求寄存器(IRR):InterruptRequestRegister一片8259A有8條外界中斷請求線IR0~I(xiàn)R7,每一條請求線有一個(gè)相應(yīng)的觸發(fā)器來保存請求信號,從而形成了中斷請求寄存器。外設(shè)產(chǎn)生中斷請求方式有兩種:一種是邊沿觸發(fā),上升沿觸發(fā);另一種電平觸發(fā),輸入信號保持高電平觸發(fā)。用戶可根據(jù)需要通過編程來實(shí)現(xiàn)。
外設(shè)中斷申請優(yōu)先權(quán)電路:對保存在IRR中的各個(gè)中斷請求,經(jīng)過判斷確定最高的優(yōu)先權(quán),并在中斷響應(yīng)周期把它選通至在服務(wù)寄存器(ISR)。
在服務(wù)寄存器(ISR):IN-ServiceRegister儲(chǔ)存當(dāng)前正在服務(wù)的中斷源的標(biāo)志。ISR的置位是在中斷響應(yīng)的第一個(gè)INTA有效時(shí)完成的。8259內(nèi)部結(jié)構(gòu)中斷屏蔽寄存器(IMR):InterruptMaskRegister,由用戶編程進(jìn)行設(shè)置,可以對IRR中的相應(yīng)的中斷源進(jìn)行屏蔽,對于較高優(yōu)先權(quán)的屏蔽不影響較低優(yōu)先權(quán)的輸入。
控制邏輯電路:
對片子內(nèi)部的工作進(jìn)行控制,使它按編程的規(guī)定工作。
數(shù)據(jù)總線緩沖器:與CPU的數(shù)據(jù)總線連接,傳輸命令等。1.優(yōu)先級排隊(duì)方式1)全嵌套方式(正常)中斷優(yōu)先級按IR0~I(xiàn)R7順序排列,并且只允許中斷級別高的中斷源中斷級別低的中服程序,而不能相反。這是8259A的常用方式,若在對8259A初始化后,沒有設(shè)置其它優(yōu)先級方式,自動(dòng)按此方式工作。2)特殊全嵌套方式(級聯(lián))中斷優(yōu)先級按IR0~I(xiàn)R7順序排列,當(dāng)執(zhí)行某一級中服時(shí),可響應(yīng)同級中斷源提出的中斷請求,從而實(shí)現(xiàn)中斷請求的特殊嵌套。5.5.2 8259A的工作過程及工作方式(1)從片IR5連接的外設(shè)通過主片IR3管腳申請中斷,CPU進(jìn)入從片IR5的中服;(2)在CPU進(jìn)入執(zhí)行從片IR5的中服期間,從片IR2連接的外設(shè)又有中斷申請;(3)對從片而言,IR2的優(yōu)先級大于IR5,應(yīng)該打斷IR5的中服,但對主片而言,它們同是一個(gè)優(yōu)先級IR3,所以如果工作在正常全嵌套方式下,CPU不能執(zhí)行從片IR2的中服。(4)所以,在級聯(lián)情況,應(yīng)使主片工作在特殊的全嵌套方式下。3)優(yōu)先級自動(dòng)輪換方式優(yōu)先級的順序不是固定不變的,一個(gè)設(shè)備受到中斷服務(wù)后,其優(yōu)先級自動(dòng)降為最低。初始優(yōu)先級的順序?yàn)镮R0~I(xiàn)R7。該方式用在系統(tǒng)中多個(gè)中斷源優(yōu)先權(quán)相同的場合。初始IR0IR1IR2IR3IR4IR5IR6IR7IR3申請后IR4IR5IR6IR7IR0IR1IR2IR3IR6申請后IR7IR0IR1IR2IR3IR4IR5IR6優(yōu)先級:高低4)優(yōu)先級指定輪換方式與優(yōu)先級自動(dòng)輪換方式一致,但初始的最高優(yōu)先級是指定的,然后再按順序自動(dòng)輪換。初始指定IR2IR2IR3IR4IR5IR6IR7IR0IR12.屏蔽中斷源的方式1)通常屏蔽方式:利用操作命令OCW1,使屏蔽寄存器IMR中的某一位或某幾位置1來屏蔽相應(yīng)輸入端的中斷請求,若要開放某個(gè)中斷源,則在相應(yīng)位置0;2)特殊屏蔽方式:在某些場合,在執(zhí)行某一個(gè)中斷服務(wù)程序時(shí),要求允許另一個(gè)優(yōu)先級比它低的中斷請求被響應(yīng)。這時(shí)可采用特殊的屏蔽方式,即在優(yōu)先級高的中服中,用OCW1將IMR中本中斷的對應(yīng)位置1,將本級中斷屏蔽,同時(shí)將ISR(在服務(wù)寄存器)中該中斷的對應(yīng)位清零,對外界來說,就好像CPU此時(shí)沒有處理該中斷,這樣,即使是最低級的中斷請求,也會(huì)被CPU響應(yīng)。特殊屏蔽方式一般是在高優(yōu)先級中服中使用。3.中斷觸發(fā)方式1)邊沿觸發(fā)方式:以上升沿向8259A請求中斷,上升沿后可一直維持高電平,不會(huì)再次產(chǎn)生中斷;2)電平觸發(fā)方式:以高電平申請中斷,但在響應(yīng)中斷后應(yīng)及時(shí)清除高電平,以免引起第二次中斷;3)中斷查詢方式:外設(shè)以上升沿或高電平通過8259A向CPU申請中斷,但8259A卻不使用INT信號向CPU申請中斷,只是等待CPU用軟件查詢8259的狀態(tài)以確定中斷源,并用程序轉(zhuǎn)入相應(yīng)的處理程序。4.結(jié)束中斷的處理方式當(dāng)8259A的某個(gè)中斷源順利申請CPU中斷時(shí),在ISR中這個(gè)中斷源的對應(yīng)位置位,結(jié)束中斷的處理方式就是對ISR中的該位進(jìn)行處理。1)自動(dòng)中斷結(jié)束方式在中服程序的最后,中斷返回之前,不需要用軟件發(fā)送清除ISR對應(yīng)位的命令,機(jī)器在中服運(yùn)行之前(第二個(gè)INTA)自動(dòng)清除該中服程序所對應(yīng)的ISR位。這種方式用在中斷不會(huì)嵌套的系統(tǒng)中。2)非自動(dòng)中斷結(jié)束方式(1)正常EOI命令該EOI命令使ISR中為1的當(dāng)前優(yōu)先級最高的那一位復(fù)位。在中服程序中,是一個(gè)通用的命令EOI命令(常用)。(2)指定的EOI命令在特殊的全嵌套方式下,只根據(jù)ISR的對應(yīng)位是無法確定哪一級中斷是最后響應(yīng)和處理的,所以在程序中要發(fā)一指定的EOI命令,向8259A指出要清除的ISR中的具體位。這是在8259A的命令字中實(shí)現(xiàn)的,一般用于復(fù)雜的多片級聯(lián)系統(tǒng)中。5.連接系統(tǒng)總線的方式在多片級連的大系統(tǒng)中,要求數(shù)據(jù)總線有總線緩沖器。8259A與這種帶總線緩沖器的系統(tǒng)總線連接的方式稱緩沖方式。此時(shí)SP/EN用于輸出,啟動(dòng)緩沖器工作,不能用作表示主從關(guān)系。故需要在初始化設(shè)置中設(shè)置專用位來表示級聯(lián)系統(tǒng)中的主從關(guān)系。若在小系統(tǒng)中,8259A的D7~D0可以直接與數(shù)據(jù)總線連接,不需要總線緩沖器,這種方式稱為非緩沖方式,此時(shí),SP/EN用作輸入,用于表示級聯(lián)系統(tǒng)中的主從關(guān)系,即該引腳接高電平表示該芯片為主片,接低電平表示該芯片為從片。5.5.38259A的級聯(lián)使用8259A的級連,可以使系統(tǒng)中的中斷源由8個(gè)最多擴(kuò)展到64個(gè),級連時(shí)有且只能有一片8259A為主片,其余的均為從片,從片最多只能有8片。若從片A的IR4通過主片申請中斷,CPU響應(yīng)后,在第一個(gè)INTA周期,主片將這個(gè)設(shè)備的ID(連接主片的管腳號)發(fā)送到級連線CAS0~CAS2,各個(gè)從片收到這個(gè)級連號與本片寄存器存儲(chǔ)的ID相比較,在第二個(gè)INTA期間,被選中的從片就將自己的中斷類型號送上數(shù)據(jù)總線。當(dāng)系統(tǒng)的從片數(shù)目小于8時(shí),一定不要把從片的INT接到主片的IR0上。這是因?yàn)橹髌姆羌夁B的IR有請求時(shí),主片在級連線上的驅(qū)動(dòng)信號為000,就好像是讓IR0上的從8259A響應(yīng)一樣,若這時(shí)真有一個(gè)從8259A接到主IR0輸入,它響應(yīng)中斷而發(fā)出的向量號將與主片發(fā)出的向量號在總線上產(chǎn)生沖突而產(chǎn)生錯(cuò)誤。所以,主片的IR0輸入只有當(dāng)其IR1~I(xiàn)R7全接上從片時(shí)才最后用來接從片。
5.5.4、8259A的編程1.初始化編程
由CPU向8259A送2~4個(gè)字節(jié)的初始化命令字ICW(InitializationCommandWord)。如何知道CPU在向8259A初始化?
若CPU用一條輸出指令向8259A的偶地址(A0=0)寫一個(gè)字節(jié)的命令字,這個(gè)命令字的D4位為1,這個(gè)命令字就被8259A解釋成為初始化命令字ICW1,ICW1啟動(dòng)了8259A片內(nèi)的初始化程序,8259A自動(dòng)發(fā)生下列事件。
1)
邊沿敏感電路復(fù)位,這意味著在初始化以后,中斷請求輸入線必須由低變高才產(chǎn)生中斷;2)
中斷屏蔽寄存器清零;3)
IR7輸入被賦為優(yōu)先權(quán)7(最低優(yōu)先權(quán))。對初始化編程說明如下:1)
設(shè)置初始化命令字ICW1~I(xiàn)CW4的口地址規(guī)定如下:ICW1必須寫入偶地址口,ICW2~I(xiàn)CW4必須寫入奇地址口。2)
ICW1~I(xiàn)CW4的寫入次序固定不變,不可顛倒。3)
對每片PIC均需寫入ICW1和ICW2,是否寫入ICW3和ICW4均由ICW1的相應(yīng)位決定。只有在級連的方式下,主、從片才須寫入ICW3;僅當(dāng)8086/8088系統(tǒng)或須設(shè)置特殊全嵌套方式、緩沖方式、自動(dòng)中斷結(jié)束方式時(shí),才寫入ICW4。在級連方式下,主、從片的ICW3的各位含義不同。
ICW1:芯片控制初始化命令字(寫入偶地址A0=0)D7D6D5D4D3D2D1D0×××1LITM×SNGLIC4×××11電平觸發(fā)0邊沿觸發(fā)×1單片0級連1需要ICW40不需ICW4若8259地址20H,21H,采用電平觸發(fā),單片使用,需要ICW4,編程如下:D7D6D5D4D3D2D1D0000110111BHMOVAL,1BHOUT20H,AL;寫入偶地址ICW2:中斷類型碼初始化命令字(寫入奇地址)規(guī)定本片8259A所帶的外設(shè)IR0~I(xiàn)R7的中斷類型號,在中斷響應(yīng)時(shí)將外設(shè)對應(yīng)的該類型號送上數(shù)據(jù)總線。
編程時(shí)規(guī)定D7~D3,即高5位,低3位由IR0~I(xiàn)R7的管腳序號自動(dòng)形成。
D7D6D5D4D3D2D1D0T7T6T5T4T3000在PC機(jī)中,硬盤中斷類型號是0DH,它連接在8259A的IR5上,則向8259A寫的ICW2是什么?D7D6D5D4D3D2D1D00000100008H00001101MOVAL,08HOUT21H,AL;寫入奇地址例如:PC/XT機(jī)中ICW2的D7~D3是00001,則接在IR0~I(xiàn)R7上的設(shè)備的中斷類型號依次08H,09H,....,0FH。
D2D1D0000001010011100101110111ICW3:主/從片初始化命令(寫入奇地址)當(dāng)ICW1的D1位為0時(shí),主從片均需要寫入ICW3,但主從片的ICW3的含義不同,所以設(shè)置的命令字也不同。
主片ICW3的格式為:D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0D7與D0對應(yīng)于IR7~I(xiàn)R0連接從片的情況,當(dāng)某一管腳連接從片,則該管腳對應(yīng)的位置1。
如IR7與IR4上接有從8259A,則主片中ICW3應(yīng)寫為:10010000B,即90H兩個(gè)從片分別接在主片的IR2和IR6管腳上,則主片的ICW3為:D7D6D5D4D3D2D1D00100010044HMOVAL,44HOUT21H,AL;寫入奇地址從片ICW3的格式為:
D7D6D5D4D3D2D1D000000ID2ID1ID0ID2~ID0表明該從片的輸出INT接在主片的哪個(gè)輸入管腳上。如該片接在主片的IR4上,則從片的ICW3應(yīng)寫為:00000100B,即04H從片A的INT接在主片的IR2上,從片B的INT接在主片的IR6上,則其ICW3的編程為:;從片AMOVAL,02HOUT21H,AL;從片BMOVAL,06HOUT21H,ALICW4:方式控制初始化命令
D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM1特殊全嵌套方式1緩沖方式1主片
0從片1自動(dòng)結(jié)束中斷方式18086CPU0一般全嵌套方式
0非緩沖方式
×0非自動(dòng)結(jié)束中斷方式
ICW4:D4,特定完全嵌套方式的設(shè)置ICW4:D3D2緩沖方式的設(shè)置D3=1,系統(tǒng)工作在緩沖方式。所謂緩沖方式就是指8259A和系統(tǒng)數(shù)據(jù)總線之間有緩沖器,因此要設(shè)置緩沖器的控制信號,以便數(shù)據(jù)線上有信號出現(xiàn)的時(shí)候,可以打開緩沖器,傳輸信號。在這種方式下,引腳就認(rèn)為是方式,輸出緩沖器的控制信號,而此時(shí),如果是多片級連,還要區(qū)分主片和從片,所以就用D2位來區(qū)分主片和從片,若D2=1,該片8259A為主片,若D2=0,該片為從片。緩沖方式級連引腳為輸出,輸出緩沖器開啟信號,緩沖器將系統(tǒng)總線信號與局部數(shù)據(jù)總線隔離。這時(shí),用ICW4的D2位來區(qū)分主片和從片。主片初始化時(shí)D2位寫1,從片初始化時(shí)D2位寫0。非緩沖方式下的級連引腳為輸入,用不同的輸入?yún)^(qū)分主片和從片,主片該引腳接高電平,從片該引腳接低電平,此時(shí),ICW4的D2位無用。ICW4:D1中斷結(jié)束方式的設(shè)置ICW4中D1位為1,為自動(dòng)結(jié)束中斷方式,即在中服程序的最后,中斷返回之前,不需要用軟件發(fā)送清除ISR對應(yīng)位的命令,機(jī)器在中服運(yùn)行之前(第二個(gè)INTA)自動(dòng)清除該中服程序所對應(yīng)的ISR位。這種方式用在中斷不會(huì)嵌套的系統(tǒng)中。ICW4中D1位為0,為非自動(dòng)結(jié)束中斷方式,需要用軟件在中服程序結(jié)束前發(fā)送清ISR對應(yīng)位的命令,具體是正常清ISR中最高置1位還是清ISR中的指定位由具體的命令字來決定,在初始化中該位置0只是說明必須要用軟件清在服務(wù)寄存器ISR。ICW4:D0該位置1表示該片8259A用于16位以上的微機(jī),置0表示用于8位微機(jī),用于8086時(shí)置1。D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM1特殊全嵌套方式1緩沖方式1主片
0從片1自動(dòng)結(jié)束中斷方式18086CPU0一般全嵌套方式
0非緩沖方式
×0非自動(dòng)結(jié)束中斷方式
例:PC機(jī)中CPU為80286,8259A與系統(tǒng)總線之間采用緩沖方式,非自動(dòng)結(jié)束方式,1片8259A,正常全嵌套。D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM1特殊全嵌套方式1緩沖方式1主片
0從片1自動(dòng)結(jié)束中斷方式18086CPU0一般全嵌套方式
0非緩沖方式
×0非自動(dòng)結(jié)束中斷方式
D7D6D5D4D3D2D1D0000011010DHMOVAL,0DHOUT21H,AL;寫入奇地址例:PT86單板機(jī)中,CPU為8086,采用非自動(dòng)結(jié)束中斷方式,使用兩片8259A,非緩沖方式,為使從片也能提出中斷請求,主片采用特殊全嵌套方式。主片地址:0FFDEH。D7D6D5D4D3D2D1D000010001D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM11HMOVDX,0FFDFHMOVAL,11HOUTDX,ALPC/AT機(jī)中有兩片8259A,主片地址20H,21H,從片地址A0H,A1H,主片中斷類型號08H~0FH,從片70H~77H,邊沿觸發(fā),正常全嵌套,非自動(dòng)EOI。MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,ALMOVAL,11HOUT0A0H,ALMOVAL,70HOUT0A1H,ALMOVAL,02HOUT0A1H,ALMOVAL,01HOUT0A1H,ALPC/AT機(jī)8259A連接圖2.工作方式編程
共有3個(gè)工作命令字OCW(OperationCommandWord),均為CPU向8259A發(fā)布的命令,3個(gè)命令字無順序,可獨(dú)立、反復(fù)使用。OCW1:中斷屏蔽命令字(寫入奇地址)
設(shè)置中斷屏蔽寄存器IMR的內(nèi)容,為1禁止產(chǎn)生中斷輸出,為0允許中斷。IMR可以屏蔽一個(gè)或幾個(gè)IR的中斷請求,它加強(qiáng)了對中斷的控制能力。屏蔽單個(gè)或部分IR,可以使得在主程序的不同部分使用不同的中斷,而不必改變硬件結(jié)構(gòu),還可以在子程序中禁止比自己優(yōu)先級高的某些中斷,這實(shí)際上也就改變了中斷的優(yōu)先級。
例:若使中斷源IR3開放,其余被屏蔽,則OCW1為:設(shè)置中斷屏蔽寄存器IMR的內(nèi)容,為1禁止產(chǎn)生中斷輸出,為0允許中斷。(寫入奇地址)1111011107HMOVAL,07HOUT21H,AL;寫入奇地址IMR寄存器中的內(nèi)容還可以被CPU讀出,直接讀奇地址。INAL,21H例:BIOS中有一段檢查中斷屏蔽寄存器的程序:MOVAL,00HOUT21H,ALINAL,21HORAL,ALJNZD6MOVAL,0FFHOUT21H,ALINAL,21HADDAL,1JNZD6……;置IMR為全0;讀IMR中的內(nèi)容,讀奇地址;檢查IMR中是否為全0;不為全0,轉(zhuǎn)錯(cuò)誤處理程序D6;置IMR為全1;讀IMR中的內(nèi)容,讀奇地址;檢查IMR中是否為全1;不為全1,轉(zhuǎn)錯(cuò)誤處理程序D6OCW2:控制中斷結(jié)束和優(yōu)先權(quán)循環(huán)的操作命令字(寫入偶地址)D7D6D5D4D3D2D1D0RSLEOI00L2L1L0D4D3為00,用以與初始化ICW1相區(qū)別,ICW1中D4為1。
D7-R:用來控制8259A中斷優(yōu)先級是否為輪換優(yōu)先級的方式,置1為輪換優(yōu)先級,置0為固定優(yōu)先級。D5-EOI:用來指示該命令字是否為發(fā)送中斷結(jié)束命令。置1為發(fā)送非自動(dòng)結(jié)束中斷結(jié)束命令,置0為該命令與中斷結(jié)束命令無關(guān),是設(shè)置優(yōu)先級的命令。D7D6D5D4D3D2D1D0RSLEOI00L2L1L0OCW2一共有兩種命令,設(shè)置中斷輪換優(yōu)先級或發(fā)送中斷結(jié)束命令,這兩種命令又都有一般和特殊兩種形式。設(shè)置優(yōu)先級自動(dòng)輪換方式:優(yōu)先級最高為IR0,依次輪換設(shè)置優(yōu)先級指定輪換方式:指定一個(gè)最高優(yōu)先級,依次輪換發(fā)送正常的非自動(dòng)結(jié)束中斷方式;發(fā)送指定的非自動(dòng)結(jié)束中斷方式;優(yōu)先級自動(dòng)輪換方式優(yōu)先級的順序不是固定不變的,一個(gè)設(shè)備受到中斷服務(wù)后,其優(yōu)先級自動(dòng)降為最低。初始優(yōu)先級的順序?yàn)镮R0~I(xiàn)R7。該方式用在系統(tǒng)中多個(gè)中斷源優(yōu)先權(quán)相同的場合。初始IR0IR1IR2IR3IR4IR5IR6IR7IR3申請后IR4IR5IR6IR7IR0IR1IR2IR3IR6申請后IR7IR0IR1IR2IR3IR4IR5IR6優(yōu)先級:高低優(yōu)先級指定輪換方式與優(yōu)先級自動(dòng)輪換方式一致,但初始的最高優(yōu)先級是指定的,然后再按順序自動(dòng)輪換。初始指定IR2IR2IR3IR4IR5IR6IR7IR0IR1非自動(dòng)中斷結(jié)束方式(1)正常EOI命令該EOI命令使ISR中為1的當(dāng)前優(yōu)先級最高的那一位復(fù)位。在中服程序中,是一個(gè)通用的命令EOI命令(常用)。(2)指定的EOI命令在特殊的全嵌套方式下,只根據(jù)ISR的對應(yīng)位是無法確定哪一級中斷是最后響應(yīng)和處理的,所以在程序中要發(fā)一指定的EOI命令,向8259A指出要清除的ISR中的具體位。這是在8259A的命令字中實(shí)現(xiàn)的,一般用于復(fù)雜的多片級聯(lián)系統(tǒng)中。D7D6D5D4D3D2D1D0RSLEOI00L2L1L0OCW2一共有兩種命令,設(shè)置中斷輪換優(yōu)先級或發(fā)送中斷結(jié)束命令,這兩種命令又都有一般和特殊兩種形式。在一般情況下,優(yōu)先級或ISR位是默認(rèn)的,此時(shí)D6位SL置0,D2~D0位沒有意義,置0;在特殊情況下,要指定優(yōu)先級的位或指定清除的ISR中的指定位,所以此時(shí)SL為1,說明D2~D0位就表示指定的特殊位。D7D6D5D4D3D2D1D0RSLEOI00L2L1L000100000正常的EOI命令,復(fù)位最高ISR位。01100L2L1L0指定的EOI命令,復(fù)位指定的ISR位。000~11110000000設(shè)置優(yōu)先級自動(dòng)循環(huán)方式00000000結(jié)束優(yōu)先級自動(dòng)循環(huán)方式11000L2L1L0按L2~L0確定一個(gè)最低的優(yōu)先級。000~11111100L2L1L0EOI命令,使當(dāng)前中服的ISR位清除,并使當(dāng)前系統(tǒng)的最低優(yōu)先級為L2L1L0。例:在IBMPC中,OCW2主要用來結(jié)束中斷。ISR中保存著當(dāng)前正在服務(wù)的中斷級的置位,如果該位不復(fù)位為0,則后續(xù)的同級和較低優(yōu)先級的中斷申請將不會(huì)被響應(yīng)。在PC機(jī)中,ICW4設(shè)置的中斷結(jié)束方式是正常結(jié)束EOI(不是自動(dòng)結(jié)束EOI),它表示必須在中服程序結(jié)束之前,由OCW2命令字來清除ISR中最高優(yōu)先權(quán)的位。在OCW2中,一般EOI的代碼是D7D6D5D4D3D2D1D0RSLEOI00L2L1L00010000020HMOVAL,20HOUT20H,ALMOVAL,20HOUT0A0H,AL;主片偶地址;從片偶地址若對IR3中斷源采用指定中斷結(jié)束方式,則需在中斷服務(wù)程序中,中斷返回指令I(lǐng)RET前,寫如下程序段:D7D6D5D4D3D2D1D0RSLEOI00L2L1L00110001163HMOVAL,63HOUT20H,ALOCW3:主要控制8259A的中斷屏蔽、查詢和讀寄存器ISR,IRR等的狀態(tài)。(寫入偶地址)D7D6D5D4D3D2D1D0×ESMMSMM01PRRRIS與ICW1,OCW2的區(qū)別是D4,D3為0,1D2-P:置1,8259工作在查詢方式;置0,非查詢命令。當(dāng)使8259A設(shè)置在查詢方式時(shí),將接口的中斷控制方式改變?yōu)椴樵兛刂品绞?,即使CPU的IF清零,禁止CPU中斷,改為CPU查詢8259A,看看是否有中斷源(外設(shè))申請服務(wù)。在設(shè)置查詢方式后,馬上讀偶地址,讀出的字節(jié)含義如下:D7D6D5D4D3D2D1D0I××××W2W1W0若此時(shí)在程序中判斷D7為1,則表示有外設(shè)要求服務(wù),其連接在8259A上的管腳編碼是D2,D1,D0。一旦CPU發(fā)出查詢命令,8259A就將下一個(gè)CPU發(fā)送給它的CS為低且A0為低(偶地址)及RD脈沖(讀偶地址)作為中斷響應(yīng),如果有中斷請求,就將ISR中的相應(yīng)位置位,并將“查詢結(jié)果”送上數(shù)據(jù)總線。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年海南省安全員知識題庫
- 2025年貴州省安全員C證考試(專職安全員)題庫附答案
- 中醫(yī)內(nèi)科學(xué)-癭病
- 【大學(xué)課件】建筑設(shè)備工程
- 聲音的產(chǎn)生與傳播+flash課件
- 語文課件-畫蛇添足
- 三年級語文《炮手》課件
- 建設(shè)工程安全生產(chǎn)管理課件
- 萬科穿插施工與施工計(jì)劃
- 《急腹癥幻燈》課件
- 造價(jià)咨詢結(jié)算審核服務(wù)方案
- 中國人民財(cái)產(chǎn)保險(xiǎn)股份有限公司機(jī)動(dòng)車綜合商業(yè)保險(xiǎn)條款
- 八年級物理上冊計(jì)算題精選(50道)
- 燃?xì)夤こ瘫O(jiān)理實(shí)施細(xì)則(通用版)
- E車E拍行車記錄儀說明書 - 圖文-
- 人才梯隊(duì)-繼任計(jì)劃-建設(shè)方案(珍貴)
- 《健身氣功》(選修)教學(xué)大綱
- 王家?guī)r隧道工程地質(zhì)勘察報(bào)告(總結(jié))
- 《昆明的雨》優(yōu)質(zhì)課一等獎(jiǎng)(課堂PPT)
- 3-1、征信異議申請表
- EHS的組織架構(gòu)和職責(zé)說明(共2頁)
評論
0/150
提交評論