微機原理及單片機應用技術第5章-輸入輸出接口與中斷課件_第1頁
微機原理及單片機應用技術第5章-輸入輸出接口與中斷課件_第2頁
微機原理及單片機應用技術第5章-輸入輸出接口與中斷課件_第3頁
微機原理及單片機應用技術第5章-輸入輸出接口與中斷課件_第4頁
微機原理及單片機應用技術第5章-輸入輸出接口與中斷課件_第5頁
已閱讀5頁,還剩181頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

5.15.25.3接口的基本概念CPU與外設數據傳送方式I/O地址譯碼和I/O指令第五章輸入輸出接口與中斷5.4CPU中斷控制功能5.5中斷控制器8259A5.15.25.3接口的基本概念CPU與外設數據傳送方式I/5.1接口基本概念為什么需要I/O接口(電路)?外設多種多樣,不能與CPU直接相連(鍵盤、顯示器、打印機、掃描儀、磁盤機、鼠標器等)須經中間電路(I/O接口)與系統相連多種外設5.1接口基本概念為什么需要I/O接口(電路)?多種外設5.1.1接口的功能1.接口:兩電路(設備)之間、協調動作的連接電路2.功能:進行數據傳送控制(三總線的轉換和連接)CPU接口電路

I/O設備5.1.1接口的功能1.接口:CPU接口I/O5.1.2基本結構5.1.2基本結構5.1.3接口信息數據信息

數字量:計算機可以直接發送、接收和處理的數據;

模擬量:連續變化的物理量,如溫度、壓力、流量、位移、濕度等,需AD轉換;

開關量:表示兩個狀態,如開關斷開和閉合,機器運轉與2.狀態信息

外設的工作狀態,輸入設備數據是否準備好、輸出設備是否空閑等。CPU需要讀取外設狀態信號,才能保障CPU與外設正確進行通信。5.1.3接口信息數據信息3.控制信息控制信息是CPU通過接口傳送給外設的。CPU通過發送控制信息設置外設的工作模式、控制外設的工作。如外設的啟動信號和停止信號就是常見的控制信息。3.控制信息

數據傳送方式并行一個數據單位(字/字節)的各位同時傳送速度快、距離短、成本高

(對應:并行接口)串行數據按位進行傳送速度慢、距離遠、成本低

(對應:串行接口)5.2CPU與外設進行數據傳送的方式數據傳送方式5.2CPU與外設進行數據傳送的方式異步串行通信傳送格式:

異步:接收端與發送端時鐘可不同步異步串行通信傳送格式:異步:接收端與發送端時鐘可不同步數據傳送方式無條件方式——直接、延時傳送數據(外設隨時就緒)查詢方式——查詢接口狀態,傳送數據(準備好?允許?耗時,踏步,簡單)中斷方式——外設通知→CPU→中斷?→執行(效率高,復雜)DMA方式——直接存儲器存取,外設存儲器(不經CPU,高速,用專用控制器)數據傳送方式無條件方式——直接、延時傳送數據1.無條件傳送方式假設外設已經準備就緒,不查詢外設狀態,直接執行I/O指令進行數據傳輸。1.無條件傳送方式假設外設已經準備就緒,不查詢外設狀態,直2.查詢方式稱為條件傳送方式,一般查詢傳輸時一個I/O設備有兩個端口地址,一個為數據口地址,一個為狀態口地址。CPU先讀取狀態口的數據,看看當前外設的狀態準備好沒有,若準備好則開始讀寫數據口,傳輸數據;若未準備好則循環讀取狀態口地址等待外設準備好。2.查詢方式稱為條件傳送方式,一般查詢傳輸時一個I/O設備查詢式輸入如圖,狀態線占用一根數據線D0,STB是選通信號,在輸入時隨著數據一起從輸入端口出現,是表示輸入數據已就緒的狀態信號。CPU先讀狀態口,若狀態就緒,再讀數據口。數據口42H狀態口40HSTROBE:選通信號查詢式輸入如圖,狀態線占用一根數據線D0,STB是選通信號,1)外設未準備好,STB為高,D觸發器無脈沖,CPU讀狀態口(40H),打開緩沖器(1),讀出DB0為低,表示未準備好。1)外設未準備好,STB為高,D觸發器無脈沖,CPU讀狀態2)外設準備好,STB為低,a.

打開鎖存器,將輸入數據鎖存起來;b.STB有下降沿脈沖,使Q為高,CPU讀狀態口(40H)讀入的DB0為高,表示數據有效,程序轉而讀數據口42H。狀態改變2)外設準備好,STB為低,a.打開鎖存器,將輸入數據3)讀數據口42H,a.

打開緩沖器(2),讀數據線,這時,緩沖器(1)高阻,所以數據線上是輸入設備的數據;b.

同時,讀數據口的控制線將D觸發器清零。Q端輸出0,下次再讀狀態口時讀入的DB0為0,表示數據未準備就緒。4)重復1),2),3)步驟3)讀數據口42H,a.打開緩沖器(2),讀數據線,這中斷傳送方式中斷傳送方式是指當外設需要與CPU進行信息交換時,由外設向CPU發出請求信號,使CPU暫停正在執行的程序,轉去執行數據的輸入/輸出操作,數據傳送結束后,CPU再繼續執行被暫停的程序。CPU不必查詢等待,工作效率高,CPU與外設可以并行工作;由于外設具有申請中斷的主動權,故系統實時性比查詢方式要好得多。中斷傳送方式中斷傳送方式是指當外設需要與CPU進行信息交換時DMA方式DMA傳送方式是在存儲器和外設之間、存儲器和存儲器之間直接進行數據傳送,無需CPU介入。DMA傳送方式需要DMA控制器(DMAC)對傳送過程加以控制和管理。DMA傳送期間,CPU放棄總線控制權,將系統總線交由DMAC控制,由DMAC發出地址及讀/寫信號來實現高速數據傳輸。傳送結束后DMAC再將總線控制權交還給CPU。DMA方式DMA傳送方式是在存儲器和外設之微機原理及單片機應用技術第5章-輸入輸出接口與中斷課件DMA傳送方式:單字節傳輸方式成組傳輸方式(塊傳輸方式)請求傳輸方式DMA傳送過程:

DMA初始化

DMA傳送過程(請求、響應、傳送)傳送結束DMA傳送方式:DMA傳送過程:5.3I/O指令和I/O地址譯碼CPU進行I/O操作:

先片選(芯片)、再字選(某寄存器)存儲器操作?兩種I/O接口結構5.3I/O指令和I/O地址譯碼CPU進行I/O操作:5.3.1標準的I/O尋址方式特點:I/O端口地址獨立專門控制IOR*,IOW*專門I/O指令易理解缺點:I/O指令沒有存儲器指令豐富內存空間I/O空間FFFFF0FFFF80x86采用I/O端口獨立編址獨立編址5.3.1標準的I/O尋址方式特點:內存I/OFFFFF0(統一編址)特點:指令眾多,專門控制MEMR*,MEMW*I/O操作同存儲器操作缺點:存儲器地址空間↓程序不易閱讀,耗時內存部分I/O部分存儲器空間00000FFFFF(統一編址)特點:內存I/O存儲器空間00000FFFFF5.3.2輸入輸出指令1.輸入指令(I/O口→CPU)

INAL/AX,Port;直接端口尋址

(Port:端口號,取值0~255)INAL/AX,DX;間接端口尋址

(DX:內容為端口號,取值0~64K,實1K)

2.輸出指令(CPU→I/O口)

OUTPort,AL/AX;直接端口尋址

OUTDX,AL/AX;間接端口尋址端口:具有一定獨立操作功能,可由CPU尋址的一組寄存器(8088/8086時寬度為8位)5.3.2輸入輸出指令1.輸入指令(I/O口→CPU)例:INAL,50H;將50H端口的字節讀入ALOUT80H,AX;將AL的字節輸出到80H端口,

將AH的字節輸出到81H端口

OUTDX,AL;將AL中的字節輸出到DX所指的端口

OUTDX,AX?

INAH,7EH?

MOVDX,AL?例:5.3.3I/O接口的端口地址譯碼即接口地址譯碼:

理想(A0~A15)64K范圍,0~FFFFH(端口號)實際(A0~A9)1K范圍,0~03FFH(端口號,系統占用部分)1.直接地址譯碼(實用多見)A0~A9(加AEN,IOR*,IOW*)→譯碼電路→片選(組選,地址區域)、字選(寄存器選擇)AEN:DMA控制器地址允許信號AEN=1,為DMA期間,禁止其他使用系統總線AEN=0,非DMA期間,允許CPU控制系統總線(直接地址譯碼需AEN=0)5.3.3I/O接口的端口地址譯碼即接口地址譯碼:G2B*=0?

G2A*=0?輸入輸出分開G2B*=0?AEN=0時

CBAA9A8A7A6A5A4A3A2A1A01011111000

2F8H

…………1011111111

2FFHG2A*=0?IOW*/IOR*不同時有效輸入輸出G2B*=0?G2A*=0?輸入輸出分開G2B*=I/O端口地址→I/O接口:

含IOW*/IOR*信息,含AEN信息,含A9~A0信息A9A8A7A6A5A4A3A2A1A01110000000

380H

…………1110000001

381H←I/O端口地址:可輸入輸出

由IOW*/IOR*體現I/O端口地址→I/O接口:

含IOW*/IOR*信80X86主機板的I/O譯碼電路(內端口)DMA控制器1(00H~1FH)中斷控制器1(20H~3FH)定時計數器(40H~5FH)并行接口電路(60H~7FH)DMA頁面寄存器(80H~9FH)中斷控制器2(A0H~BFH)DMA控制器2(C0H~DFH)協處理器(E0H~FFH)AEN接口芯片內部譯碼A0~A4A5A6A7A8A974LS138ABCG2AG2BG1Y0Y1Y2Y3Y4Y5Y6Y780X86主機板的I/O譯碼電路(內端口)DMA控制器1(05.48086/8088CPU中斷控制功能5.4.1中斷概念正在看書電話鈴響接電話繼續看書執行程序事件發生事件處理繼續執行程序中斷處理中斷請求及響應實際場景計算機中斷返回中斷:

CPU暫停現操作,轉去處理另一事件,完畢,返回執行暫停的操作。5.48086/8088CPU中斷控制功能5.4.15.4.2中斷源外部硬件中斷

INTR:可屏蔽中斷,受CPU內標志寄存器中IF位的屏蔽NMI:非屏蔽中斷,不受IF位的屏蔽,Cpu必須響應2.內部異常中斷CPU內部正在執行的過程發生的異常情況,如除數為03.中斷優先順序CPU的中斷優先權排列從高到低為:1)除法出錯中斷,溢出中斷,INTn,…2)NMI3)INTR4)單步中斷5.4.2中斷源外部硬件中斷中斷源識別:中斷類型碼中斷類型碼可以是0~255,一部分由系統占用,一部分用戶可以支配。

比如:除法錯誤(n=0)

調試異常(n=1)

NMI中斷(n=2)

斷點中斷(n=3)

溢出中斷(n=4)

中斷源識別:中斷類型碼5.4.3中斷向量表中斷向量表:系統RAM的最低端00000H~003FFH的1K字節內,表中共有256個中斷類型碼對應的中斷向量。中斷向量:每個中斷向量占用4個字節。前2個字節為中斷服務程序入口地址的偏移地址IP,后2個字節為服務程序的段基址CS。向量地址:這4個單元的地址中的最小地址稱為向量地址向量地址=向量表的首地址+中斷類型碼*45.4.3中斷向量表中斷向量表:系統RAM的最低端00005.4.4CPU對外部可屏蔽中斷的響應過程CPU現指令結束后,IF=1,有中斷請求→響應,中斷處理:(1)關中斷(IF=0,TF=0,機器自動)(2)保留斷點(當前F,CS,IP內容入棧,機器自動)(3)轉中斷程序(其段地→CS,偏地→IP,機器自動)(4)保護現場(相關寄存器,人工)(5)中斷服務(執行程序,機器自動)(6)恢復現場(相關寄存器,人工)(7)中斷返回,IRET(IP、CS、F內容出棧,返回中斷發生時下一指令處,

機器自動且IF=1)

5.4.4CPU對外部可屏蔽中斷的響應過程CPU現指令結中斷時棧操作:IPLIPHCSLCSHFLFHSPIPCSFLAGFLFHCSLIPLIPHCSHSP保留斷點,進棧執行IRET,斷點出棧①中斷嵌套?在(5)中加入STI指令,開中斷②堆棧操作:棧操作指令PUSH、POP

子程序調用CALL、返回RET

中斷斷點保留、返回IRETIPLIPHCSLCSHFLFHSPIPCSFLAGFLFH5.5中斷控制器8259A可編程芯片,80x86的中斷管理器件8259A的基本功能:2個端口,一片可管理8級中斷;級聯:最多64級;可中斷屏蔽或允許;可中斷向量輸送;可優先權管理;多種工作方式,編程選擇5.5中斷控制器8259A可編程芯片,80x86的中斷管5.5.18259A的結構和引腳D7~D0INTAINT中斷請求寄存器中斷屏蔽寄存器數據總線緩沖器IR0IR7讀/寫控制邏輯級聯緩沖比較器RDWRA0CSCAS0CSA1CAS2SP/EN優先權分析器中斷服務寄存器控制邏輯5.5.18259A的結構和引腳D7~D0INTAINT中IR0~IR7:8個異步中斷請求輸入信號。分別接來自不同外設的中斷源,高電平或上升沿表示有請求。

INT:中斷請求信號(輸出),向CPU發中斷請求。

中斷響應輸入信號,接收CPU響應中斷后的應答信號。

IR0~IR7:8個異步中斷請求輸入信號。分別接來自不同外設CAS2~CAS0:主從級連雙向信號。當系統的中斷請求多于8個時,可用兩個或更多的8259A級連,其中一個是主控制器,其余是從控制器。從片的INT輸出接到主片的一個IR輸入。在中斷響應期間,若主8259A判定所響應的是由某一從片發出的請求,則它在級連線上發出該從片的識別號,并由各從片接收。從片將自己的識別號與該級連線上的號相比較。若一致的話,它應在第二個INTA響應周期,把自己片內中斷源的類型號通過D7~D0送給CPU,以便把控制引導到所對應的中斷服務程序入口。CAS2~CAS0:主從級連雙向信號。當系統的中斷請求多于8主從或緩沖方式,雙向信號。當其為輸入時,由它決定該片為主片(SP=1)或從片(SP=0)。當其為輸出時,8259A處于“緩沖方式”,該信號用來控制雙向總線驅動器的啟動(EN)端。這種方式常用于多片級連的大系統中。

A0:地址選擇信號,用來對內部寄存器進行選擇,通常接總線的A0。即8259A的內部寄存器占外設的兩個地址,稱為奇地址和偶地址。

主從或緩沖方式,雙向信號。當其為輸入時,由它決定該片為主片(中斷請求寄存器(IRR):InterruptRequestRegister一片8259A有8條外界中斷請求線IR0~IR7,每一條請求線有一個相應的觸發器來保存請求信號,從而形成了中斷請求寄存器。外設產生中斷請求方式有兩種:一種是邊沿觸發,上升沿觸發;另一種電平觸發,輸入信號保持高電平觸發。用戶可根據需要通過編程來實現。

外設中斷申請中斷請求寄存器(IRR):InterruptRequest優先權電路:對保存在IRR中的各個中斷請求,經過判斷確定最高的優先權,并在中斷響應周期把它選通至在服務寄存器(ISR)。

在服務寄存器(ISR):IN-ServiceRegister儲存當前正在服務的中斷源的標志。ISR的置位是在中斷響應的第一個INTA有效時完成的。8259內部結構優先權電路:對保存在IRR中的各個中斷請求,經過判斷確定最高中斷屏蔽寄存器(IMR):InterruptMaskRegister,由用戶編程進行設置,可以對IRR中的相應的中斷源進行屏蔽,對于較高優先權的屏蔽不影響較低優先權的輸入。

控制邏輯電路:

對片子內部的工作進行控制,使它按編程的規定工作。

數據總線緩沖器:與CPU的數據總線連接,傳輸命令等。中斷屏蔽寄存器(IMR):InterruptMaskR1.優先級排隊方式1)全嵌套方式(正常)中斷優先級按IR0~IR7順序排列,并且只允許中斷級別高的中斷源中斷級別低的中服程序,而不能相反。這是8259A的常用方式,若在對8259A初始化后,沒有設置其它優先級方式,自動按此方式工作。2)特殊全嵌套方式(級聯)中斷優先級按IR0~IR7順序排列,當執行某一級中服時,可響應同級中斷源提出的中斷請求,從而實現中斷請求的特殊嵌套。5.5.2 8259A的工作過程及工作方式1.優先級排隊方式1)全嵌套方式(正常)2)特殊全嵌套(1)從片IR5連接的外設通過主片IR3管腳申請中斷,CPU進入從片IR5的中服;(2)在CPU進入執行從片IR5的中服期間,從片IR2連接的外設又有中斷申請;(3)對從片而言,IR2的優先級大于IR5,應該打斷IR5的中服,但對主片而言,它們同是一個優先級IR3,所以如果工作在正常全嵌套方式下,CPU不能執行從片IR2的中服。(4)所以,在級聯情況,應使主片工作在特殊的全嵌套方式下。(1)從片IR5連接的外設通過主片IR3管腳申請中斷,CP3)優先級自動輪換方式優先級的順序不是固定不變的,一個設備受到中斷服務后,其優先級自動降為最低。初始優先級的順序為IR0~IR7。該方式用在系統中多個中斷源優先權相同的場合。初始IR0IR1IR2IR3IR4IR5IR6IR7IR3申請后IR4IR5IR6IR7IR0IR1IR2IR3IR6申請后IR7IR0IR1IR2IR3IR4IR5IR6優先級:高低4)優先級指定輪換方式與優先級自動輪換方式一致,但初始的最高優先級是指定的,然后再按順序自動輪換。初始指定IR2IR2IR3IR4IR5IR6IR7IR0IR13)優先級自動輪換方式優先級的順序不是固定不變的,一個設備2.屏蔽中斷源的方式1)通常屏蔽方式:利用操作命令OCW1,使屏蔽寄存器IMR中的某一位或某幾位置1來屏蔽相應輸入端的中斷請求,若要開放某個中斷源,則在相應位置0;2)特殊屏蔽方式:在某些場合,在執行某一個中斷服務程序時,要求允許另一個優先級比它低的中斷請求被響應。這時可采用特殊的屏蔽方式,即在優先級高的中服中,用OCW1將IMR中本中斷的對應位置1,將本級中斷屏蔽,同時將ISR(在服務寄存器)中該中斷的對應位清零,對外界來說,就好像CPU此時沒有處理該中斷,這樣,即使是最低級的中斷請求,也會被CPU響應。特殊屏蔽方式一般是在高優先級中服中使用。2.屏蔽中斷源的方式1)通常屏蔽方式:利用操作命令OCW3.中斷觸發方式1)邊沿觸發方式:以上升沿向8259A請求中斷,上升沿后可一直維持高電平,不會再次產生中斷;2)電平觸發方式:以高電平申請中斷,但在響應中斷后應及時清除高電平,以免引起第二次中斷;3)中斷查詢方式:外設以上升沿或高電平通過8259A向CPU申請中斷,但8259A卻不使用INT信號向CPU申請中斷,只是等待CPU用軟件查詢8259的狀態以確定中斷源,并用程序轉入相應的處理程序。3.中斷觸發方式1)邊沿觸發方式:以上升沿向8259A請4.結束中斷的處理方式當8259A的某個中斷源順利申請CPU中斷時,在ISR中這個中斷源的對應位置位,結束中斷的處理方式就是對ISR中的該位進行處理。1)自動中斷結束方式在中服程序的最后,中斷返回之前,不需要用軟件發送清除ISR對應位的命令,機器在中服運行之前(第二個INTA)自動清除該中服程序所對應的ISR位。這種方式用在中斷不會嵌套的系統中。4.結束中斷的處理方式當8259A的某個中斷源順利申請CP2)非自動中斷結束方式(1)正常EOI命令該EOI命令使ISR中為1的當前優先級最高的那一位復位。在中服程序中,是一個通用的命令EOI命令(常用)。(2)指定的EOI命令在特殊的全嵌套方式下,只根據ISR的對應位是無法確定哪一級中斷是最后響應和處理的,所以在程序中要發一指定的EOI命令,向8259A指出要清除的ISR中的具體位。這是在8259A的命令字中實現的,一般用于復雜的多片級聯系統中。2)非自動中斷結束方式(1)正常EOI命令5.連接系統總線的方式在多片級連的大系統中,要求數據總線有總線緩沖器。8259A與這種帶總線緩沖器的系統總線連接的方式稱緩沖方式。此時SP/EN用于輸出,啟動緩沖器工作,不能用作表示主從關系。故需要在初始化設置中設置專用位來表示級聯系統中的主從關系。若在小系統中,8259A的D7~D0可以直接與數據總線連接,不需要總線緩沖器,這種方式稱為非緩沖方式,此時,SP/EN用作輸入,用于表示級聯系統中的主從關系,即該引腳接高電平表示該芯片為主片,接低電平表示該芯片為從片。5.連接系統總線的方式在多片級連的大系統中,要求數據總線有5.5.38259A的級聯使用8259A的級連,可以使系統中的中斷源由8個最多擴展到64個,級連時有且只能有一片8259A為主片,其余的均為從片,從片最多只能有8片。5.5.38259A的級聯使用8259A的級連若從片A的IR4通過主片申請中斷,CPU響應后,在第一個INTA周期,主片將這個設備的ID(連接主片的管腳號)發送到級連線CAS0~CAS2,各個從片收到這個級連號與本片寄存器存儲的ID相比較,在第二個INTA期間,被選中的從片就將自己的中斷類型號送上數據總線。若從片A的IR4通過主片申請中斷,CPU響應后,在第一個IN當系統的從片數目小于8時,一定不要把從片的INT接到主片的IR0上。這是因為主片的非級連的IR有請求時,主片在級連線上的驅動信號為000,就好像是讓IR0上的從8259A響應一樣,若這時真有一個從8259A接到主IR0輸入,它響應中斷而發出的向量號將與主片發出的向量號在總線上產生沖突而產生錯誤。所以,主片的IR0輸入只有當其IR1~IR7全接上從片時才最后用來接從片。

當系統的從片數目小于8時,一定不要把從片的INT接到主片的I微機原理及單片機應用技術第5章-輸入輸出接口與中斷課件5.5.4、8259A的編程1.初始化編程

由CPU向8259A送2~4個字節的初始化命令字ICW(InitializationCommandWord)。如何知道CPU在向8259A初始化?

若CPU用一條輸出指令向8259A的偶地址(A0=0)寫一個字節的命令字,這個命令字的D4位為1,這個命令字就被8259A解釋成為初始化命令字ICW1,ICW1啟動了8259A片內的初始化程序,8259A自動發生下列事件。

1)

邊沿敏感電路復位,這意味著在初始化以后,中斷請求輸入線必須由低變高才產生中斷;2)

中斷屏蔽寄存器清零;3)

IR7輸入被賦為優先權7(最低優先權)。5.5.4、8259A的編程1.初始化編程由CPU向82對初始化編程說明如下:1)

設置初始化命令字ICW1~ICW4的口地址規定如下:ICW1必須寫入偶地址口,ICW2~ICW4必須寫入奇地址口。2)

ICW1~ICW4的寫入次序固定不變,不可顛倒。3)

對每片PIC均需寫入ICW1和ICW2,是否寫入ICW3和ICW4均由ICW1的相應位決定。只有在級連的方式下,主、從片才須寫入ICW3;僅當8086/8088系統或須設置特殊全嵌套方式、緩沖方式、自動中斷結束方式時,才寫入ICW4。在級連方式下,主、從片的ICW3的各位含義不同。

對初始化編程說明如下:ICW1:芯片控制初始化命令字(寫入偶地址A0=0)D7D6D5D4D3D2D1D0×××1LITM×SNGLIC4×××11電平觸發0邊沿觸發×1單片0級連1需要ICW40不需ICW4若8259地址20H,21H,采用電平觸發,單片使用,需要ICW4,編程如下:D7D6D5D4D3D2D1D0000110111BHMOVAL,1BHOUT20H,AL;寫入偶地址ICW1:芯片控制初始化命令字(寫入偶地址A0=0)D7ICW2:中斷類型碼初始化命令字(寫入奇地址)規定本片8259A所帶的外設IR0~IR7的中斷類型號,在中斷響應時將外設對應的該類型號送上數據總線。

編程時規定D7~D3,即高5位,低3位由IR0~IR7的管腳序號自動形成。

D7D6D5D4D3D2D1D0T7T6T5T4T3000在PC機中,硬盤中斷類型號是0DH,它連接在8259A的IR5上,則向8259A寫的ICW2是什么?D7D6D5D4D3D2D1D00000100008H00001101MOVAL,08HOUT21H,AL;寫入奇地址ICW2:中斷類型碼初始化命令字(寫入奇地址)規定本片82例如:PC/XT機中ICW2的D7~D3是00001,則接在IR0~IR7上的設備的中斷類型號依次08H,09H,....,0FH。

D2D1D0000001010011100101110111例如:PC/XT機中ICW2的D7~D3是00001,則接在ICW3:主/從片初始化命令(寫入奇地址)當ICW1的D1位為0時,主從片均需要寫入ICW3,但主從片的ICW3的含義不同,所以設置的命令字也不同。

主片ICW3的格式為:D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0D7與D0對應于IR7~IR0連接從片的情況,當某一管腳連接從片,則該管腳對應的位置1。

如IR7與IR4上接有從8259A,則主片中ICW3應寫為:10010000B,即90HICW3:主/從片初始化命令(寫入奇地址)當ICW1的D1兩個從片分別接在主片的IR2和IR6管腳上,則主片的ICW3為:D7D6D5D4D3D2D1D00100010044HMOVAL,44HOUT21H,AL;寫入奇地址兩個從片分別接在主片的IR2和IR6管腳上,則主片的ICW3從片ICW3的格式為:

D7D6D5D4D3D2D1D000000ID2ID1ID0ID2~ID0表明該從片的輸出INT接在主片的哪個輸入管腳上。如該片接在主片的IR4上,則從片的ICW3應寫為:00000100B,即04H從片ICW3的格式為:D7D6D5D4D3D2D1D000從片A的INT接在主片的IR2上,從片B的INT接在主片的IR6上,則其ICW3的編程為:;從片AMOVAL,02HOUT21H,AL;從片BMOVAL,06HOUT21H,AL從片A的INT接在主片的IR2上,從片B的INT接在主片的IICW4:方式控制初始化命令

D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM1特殊全嵌套方式1緩沖方式1主片

0從片1自動結束中斷方式18086CPU0一般全嵌套方式

0非緩沖方式

×0非自動結束中斷方式

ICW4:D4,特定完全嵌套方式的設置ICW4:方式控制初始化命令D7D6D5D4D3D2D1DICW4:D3D2緩沖方式的設置D3=1,系統工作在緩沖方式。所謂緩沖方式就是指8259A和系統數據總線之間有緩沖器,因此要設置緩沖器的控制信號,以便數據線上有信號出現的時候,可以打開緩沖器,傳輸信號。在這種方式下,引腳就認為是方式,輸出緩沖器的控制信號,而此時,如果是多片級連,還要區分主片和從片,所以就用D2位來區分主片和從片,若D2=1,該片8259A為主片,若D2=0,該片為從片。ICW4:D3D2緩沖方式的設置D3=1,系統工作在緩緩沖方式級連引腳為輸出,輸出緩沖器開啟信號,緩沖器將系統總線信號與局部數據總線隔離。這時,用ICW4的D2位來區分主片和從片。主片初始化時D2位寫1,從片初始化時D2位寫0。緩沖方式級連引腳為輸出,輸出緩沖器開啟信號,緩沖器將系統總線非緩沖方式下的級連引腳為輸入,用不同的輸入區分主片和從片,主片該引腳接高電平,從片該引腳接低電平,此時,ICW4的D2位無用。非緩沖方式下的級連引腳為輸入,用不同的輸入區分主片和從片,主ICW4:D1中斷結束方式的設置ICW4中D1位為1,為自動結束中斷方式,即在中服程序的最后,中斷返回之前,不需要用軟件發送清除ISR對應位的命令,機器在中服運行之前(第二個INTA)自動清除該中服程序所對應的ISR位。這種方式用在中斷不會嵌套的系統中。ICW4中D1位為0,為非自動結束中斷方式,需要用軟件在中服程序結束前發送清ISR對應位的命令,具體是正常清ISR中最高置1位還是清ISR中的指定位由具體的命令字來決定,在初始化中該位置0只是說明必須要用軟件清在服務寄存器ISR。ICW4:D1中斷結束方式的設置ICW4中D1位為1,為ICW4:D0該位置1表示該片8259A用于16位以上的微機,置0表示用于8位微機,用于8086時置1。D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM1特殊全嵌套方式1緩沖方式1主片

0從片1自動結束中斷方式18086CPU0一般全嵌套方式

0非緩沖方式

×0非自動結束中斷方式

ICW4:D0該位置1表示該片8259A用于16位以上例:PC機中CPU為80286,8259A與系統總線之間采用緩沖方式,非自動結束方式,1片8259A,正常全嵌套。D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM1特殊全嵌套方式1緩沖方式1主片

0從片1自動結束中斷方式18086CPU0一般全嵌套方式

0非緩沖方式

×0非自動結束中斷方式

D7D6D5D4D3D2D1D0000011010DHMOVAL,0DHOUT21H,AL;寫入奇地址例:PC機中CPU為80286,8259A與系統總線之間采用例:PT86單板機中,CPU為8086,采用非自動結束中斷方式,使用兩片8259A,非緩沖方式,為使從片也能提出中斷請求,主片采用特殊全嵌套方式。主片地址:0FFDEH。D7D6D5D4D3D2D1D000010001D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIuPM11HMOVDX,0FFDFHMOVAL,11HOUTDX,AL例:PT86單板機中,CPU為8086,采用非自動結束中斷方PC/AT機中有兩片8259A,主片地址20H,21H,從片地址A0H,A1H,主片中斷類型號08H~0FH,從片70H~77H,邊沿觸發,正常全嵌套,非自動EOI。MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,ALMOVAL,11HOUT0A0H,ALMOVAL,70HOUT0A1H,ALMOVAL,02HOUT0A1H,ALMOVAL,01HOUT0A1H,ALPC/AT機8259A連接圖PC/AT機中有兩片8259A,主片地址20H,21H,從片2.工作方式編程

共有3個工作命令字OCW(OperationCommandWord),均為CPU向8259A發布的命令,3個命令字無順序,可獨立、反復使用。OCW1:中斷屏蔽命令字(寫入奇地址)

設置中斷屏蔽寄存器IMR的內容,為1禁止產生中斷輸出,為0允許中斷。IMR可以屏蔽一個或幾個IR的中斷請求,它加強了對中斷的控制能力。屏蔽單個或部分IR,可以使得在主程序的不同部分使用不同的中斷,而不必改變硬件結構,還可以在子程序中禁止比自己優先級高的某些中斷,這實際上也就改變了中斷的優先級。

2.工作方式編程共有3個工作命令字OCW(Operati例:若使中斷源IR3開放,其余被屏蔽,則OCW1為:設置中斷屏蔽寄存器IMR的內容,為1禁止產生中斷輸出,為0允許中斷。(寫入奇地址)1111011107HMOVAL,07HOUT21H,AL;寫入奇地址IMR寄存器中的內容還可以被CPU讀出,直接讀奇地址。INAL,21H例:若使中斷源IR3開放,其余被屏蔽,則OCW1為:設置中斷例:BIOS中有一段檢查中斷屏蔽寄存器的程序:MOVAL,00HOUT21H,ALINAL,21HORAL,ALJNZD6MOVAL,0FFHOUT21H,ALINAL,21HADDAL,1JNZD6……;置IMR為全0;讀IMR中的內容,讀奇地址;檢查IMR中是否為全0;不為全0,轉錯誤處理程序D6;置IMR為全1;讀IMR中的內容,讀奇地址;檢查IMR中是否為全1;不為全1,轉錯誤處理程序D6例:BIOS中有一段檢查中斷屏蔽寄存器的程序:MOVAOCW2:控制中斷結束和優先權循環的操作命令字(寫入偶地址)D7D6D5D4D3D2D1D0RSLEOI00L2L1L0D4D3為00,用以與初始化ICW1相區別,ICW1中D4為1。

D7-R:用來控制8259A中斷優先級是否為輪換優先級的方式,置1為輪換優先級,置0為固定優先級。D5-EOI:用來指示該命令字是否為發送中斷結束命令。置1為發送非自動結束中斷結束命令,置0為該命令與中斷結束命令無關,是設置優先級的命令。OCW2:控制中斷結束和優先權循環的操作命令字(寫入偶地址D7D6D5D4D3D2D1D0RSLEOI00L2L1L0OCW2一共有兩種命令,設置中斷輪換優先級或發送中斷結束命令,這兩種命令又都有一般和特殊兩種形式。設置優先級自動輪換方式:優先級最高為IR0,依次輪換設置優先級指定輪換方式:指定一個最高優先級,依次輪換發送正常的非自動結束中斷方式;發送指定的非自動結束中斷方式;D7D6D5D4D3D2D1D0RSLEOI00L2L1L0優先級自動輪換方式優先級的順序不是固定不變的,一個設備受到中斷服務后,其優先級自動降為最低。初始優先級的順序為IR0~IR7。該方式用在系統中多個中斷源優先權相同的場合。初始IR0IR1IR2IR3IR4IR5IR6IR7IR3申請后IR4IR5IR6IR7IR0IR1IR2IR3IR6申請后IR7IR0IR1IR2IR3IR4IR5IR6優先級:高低優先級指定輪換方式與優先級自動輪換方式一致,但初始的最高優先級是指定的,然后再按順序自動輪換。初始指定IR2IR2IR3IR4IR5IR6IR7IR0IR1優先級自動輪換方式優先級的順序不是固定不變的,一個設備受到非自動中斷結束方式(1)正常EOI命令該EOI命令使ISR中為1的當前優先級最高的那一位復位。在中服程序中,是一個通用的命令EOI命令(常用)。(2)指定的EOI命令在特殊的全嵌套方式下,只根據ISR的對應位是無法確定哪一級中斷是最后響應和處理的,所以在程序中要發一指定的EOI命令,向8259A指出要清除的ISR中的具體位。這是在8259A的命令字中實現的,一般用于復雜的多片級聯系統中。非自動中斷結束方式(1)正常EOI命令D7D6D5D4D3D2D1D0RSLEOI00L2L1L0OCW2一共有兩種命令,設置中斷輪換優先級或發送中斷結束命令,這兩種命令又都有一般和特殊兩種形式。在一般情況下,優先級或ISR位是默認的,此時D6位SL置0,D2~D0位沒有意義,置0;在特殊情況下,要指定優先級的位或指定清除的ISR中的指定位,所以此時SL為1,說明D2~D0位就表示指定的特殊位。D7D6D5D4D3D2D1D0RSLEOI00L2L1L0D7D6D5D4D3D2D1D0RSLEOI00L2L1L000100000正常的EOI命令,復位最高ISR位。01100L2L1L0指定的EOI命令,復位指定的ISR位。000~11110000000設置優先級自動循環方式00000000結束優先級自動循環方式11000L2L1L0按L2~L0確定一個最低的優先級。000~11111100L2L1L0EOI命令,使當前中服的ISR位清除,并使當前系統的最低優先級為L2L1L0。D7D6D5D4D3D2D1D0RSLEOI00L2L1L0例:在IBMPC中,OCW2主要用來結束中斷。ISR中保存著當前正在服務的中斷級的置位,如果該位不復位為0,則后續的同級和較低優先級的中斷申請將不會被響應。在PC機中,ICW4設置的中斷結束方式是正常結束EOI(不是自動結束EOI),它表示必須在中服程序結束之前,由OCW2命令字來清除ISR中最高優先權的位。在OCW2中,一般EOI的代碼是D7D6D5D4D3D2D1D0RSLEOI00L2L1L00010000020HMOVAL,20HOUT20H,ALMOVAL,20HOUT0A0H,AL;主片偶地址;從片偶地址例:在IBMPC中,OCW2主要用來結束中斷。D7D6D5若對IR3中斷源采用指定中斷結束方式,則需在中斷服務程序中,中斷返回指令IRET前,寫如下程序段:D7D6D5D4D3D2D1D0RSLEOI00L2L1L00110001163HMOVAL,63HOUT20H,AL若對IR3中斷源采用指定中斷結束方式,則需在中斷服務程序中,OCW3:主要控制8259A的中斷屏蔽、查詢和讀寄存器ISR,IRR等的狀態。(寫入偶地址)D7D6D5D4D3D2D1D0×ESMMSMM01PRRRIS與ICW1,OCW2的區別是D4,D3為0,1D2-P:置1,8259工作在查詢方式;置0,非查詢命令。當使8259A設置在查詢方式時,將接口的中斷控制方式改變為查詢控制方式,即使CPU的IF清零,禁止CPU中斷,改為CPU查詢8259A,看看是否有中斷源(外設)申請服務。OCW3:主要控制8259A的中斷屏蔽、查詢和讀寄存器ISR在設置查詢方式后,馬上讀偶地址,讀出的字節含義如下:D7D6D5D4D3D2D1D0I××××W2W1W0若此時在程序中判斷D7為1,則表示有外設要求服務,其連接在8259A上的管腳編碼是D2,D1,D0。一旦CPU發出查詢命令,8259A就將下一個CPU發送給它的CS為低且A0為低(偶地址)及RD脈沖(讀偶地址)作為中斷響應,如果有中斷請求,就將ISR中的相應位置位,并將“查詢結果”送上數據總線。如IR5申請中斷,則查詢結果是1000010185H在設置查詢方式后,馬上讀偶地址,讀出的字節含義如下:D7DD7D6D5D4D3D2D1D0×ESMMSMM01PRRRISD1,D0讀狀態操作讀奇地址,讀出的內容為IMRIRR與ISR也可以被CPU查詢。D1-RR:允許或禁止讀寄存器置1,允許讀寄存器;置0,不允許讀寄存器。D0-RIS:當D1為1時,該位有意義。置1,讀ISR寄存器(讀偶地址);置0,讀IRR寄存器(讀偶地址);D7D6D5D4D3D2D1D0×ESMMSMM01PRRR通過OCW3命令讀取8259A狀態。D7D6D5D4D3D2D1D0×ESMMSMM01PRRRIS00001010:表示下一個RD脈沖讀偶地址讀取的是IRR00001011:表示下一個RD脈沖讀偶地址讀取的是ISRMOVAL,0BHOUT20H,ALNOPINAL,20HMOVAH,ALORAL,AHJNZAW-INT;設置欲讀ISR;延時;讀取偶地址,將ISR內容讀入AL;判斷ISR中是否為全0(無中斷申請);否,轉入硬件中斷程序通過OCW3命令讀取8259A狀態。D7D6D5D4D3D2D7D6D5D4D3D2D1D0×ESMMSMM01PRRRISD6D5特定屏蔽方式的操作在實際應用中,可能要求開放一個比現行服務程序優先級低的中斷,然而在完全嵌套方式中,低于“正在服務中斷”等級的中斷都被禁止。如何才能開放低級中斷呢?8259A使用特定屏蔽方式。1)先用屏蔽命令OCW1將正在服務中的那些中斷屏蔽起來;2)發出置位特定屏蔽方式命令(ESMM=1,SMM=1),就可以開放那些除去正在服務中的中斷之外的其他所有等級的中斷。實現了允許優先級較低設備產生中斷的要求;D7D6D5D4D3D2D1D0×ESMMSMM01PRRRD7D6D5D4D3D2D1D0×ESMMSMM01PRRRIS3)特定屏蔽方式一經置位,它就一直保持有效,直到發出復位特定屏蔽方式命令(ESMM=1,SMM=0)為止。8259A使用特定屏蔽方式。1)先用屏蔽命令OCW1將正在服務中的那些中斷屏蔽起來;2)發出置位特定屏蔽方式命令(ESMM=1,SMM=1),就可以開放那些除去正在服務中的中斷之外的其他所有等級的中斷。實現了允許優先級較低設備產生中斷的要求;舉例:主程序被IR4中斷,在IR4中服中可以用特定屏蔽方式開放IR5~IR7的中斷。D7D6D5D4D3D2D1D0×ESMMSMM01PRRRCLIMOVAL,10HOUT21H,ALMOVAL,68HOUT20H,ALSTI……CLIMOVAL,48HOUT20H,ALMOVAL,00HOUT21H,ALSTIMOVAL,64HOUT20H,ALIRET;屏蔽IR4;置位SMM;復位SMM;解除屏蔽IR4;指定中斷結束IR4CLI;屏蔽IR4;置位SMM;復位SMM;解除屏蔽IR4;5.6高檔微型計算機的中斷系統5.6.1 異常和中斷向量處理器把異常或中斷的向量用作中斷描述符表IDT(InterruptDescriptorTable)中的一個索引號,來定位一個異?;蛑袛嗟奶幚沓绦蛉肟邳c位置允許的向量號范圍是0~255。其中0~31保留用作80x86處理器定義的異常和中斷,不過目前該范圍內的向量號并非每個都已定義了功能,未定義功能的向量號將留作今后使用范圍在32~255的向量號用于用戶定義的中斷。5.6高檔微型計算機的中斷系統5.6.1 異常和中斷向量中斷描述符表(InterruptDescriptorTable,IDT)將每個異?;蛑袛嘞蛄糠謩e與它們的處理過程聯系起來。只有可能發生的異?;蛑袛嗖判枰枋龇?,處理器把異?;蛑袛嗟南蛄刻柍艘?,得到IDT表中的一個索引值。IDT表可以駐留在線性地址空間的任何地方,處理器使用IDTR寄存器來定位IDT表的位置。這個寄存器中含有IDT表32位的基地址和16位的長度(限長)值。IDT表基地址應該對齊在8字節邊界上以提高處理器的訪問效率。5.6.2中斷描述符表中斷描述符表(InterruptDescriptorTa微機原理及單片機應用技術第5章-輸入輸出接口與中斷課件5.15.25.3接口的基本概念CPU與外設數據傳送方式I/O地址譯碼和I/O指令第五章輸入輸出接口與中斷5.4CPU中斷控制功能5.5中斷控制器8259A5.15.25.3接口的基本概念CPU與外設數據傳送方式I/5.1接口基本概念為什么需要I/O接口(電路)?外設多種多樣,不能與CPU直接相連(鍵盤、顯示器、打印機、掃描儀、磁盤機、鼠標器等)須經中間電路(I/O接口)與系統相連多種外設5.1接口基本概念為什么需要I/O接口(電路)?多種外設5.1.1接口的功能1.接口:兩電路(設備)之間、協調動作的連接電路2.功能:進行數據傳送控制(三總線的轉換和連接)CPU接口電路

I/O設備5.1.1接口的功能1.接口:CPU接口I/O5.1.2基本結構5.1.2基本結構5.1.3接口信息數據信息

數字量:計算機可以直接發送、接收和處理的數據;

模擬量:連續變化的物理量,如溫度、壓力、流量、位移、濕度等,需AD轉換;

開關量:表示兩個狀態,如開關斷開和閉合,機器運轉與2.狀態信息

外設的工作狀態,輸入設備數據是否準備好、輸出設備是否空閑等。CPU需要讀取外設狀態信號,才能保障CPU與外設正確進行通信。5.1.3接口信息數據信息3.控制信息控制信息是CPU通過接口傳送給外設的。CPU通過發送控制信息設置外設的工作模式、控制外設的工作。如外設的啟動信號和停止信號就是常見的控制信息。3.控制信息

數據傳送方式并行一個數據單位(字/字節)的各位同時傳送速度快、距離短、成本高

(對應:并行接口)串行數據按位進行傳送速度慢、距離遠、成本低

(對應:串行接口)5.2CPU與外設進行數據傳送的方式數據傳送方式5.2CPU與外設進行數據傳送的方式異步串行通信傳送格式:

異步:接收端與發送端時鐘可不同步異步串行通信傳送格式:異步:接收端與發送端時鐘可不同步數據傳送方式無條件方式——直接、延時傳送數據(外設隨時就緒)查詢方式——查詢接口狀態,傳送數據(準備好?允許?耗時,踏步,簡單)中斷方式——外設通知→CPU→中斷?→執行(效率高,復雜)DMA方式——直接存儲器存取,外設存儲器(不經CPU,高速,用專用控制器)數據傳送方式無條件方式——直接、延時傳送數據1.無條件傳送方式假設外設已經準備就緒,不查詢外設狀態,直接執行I/O指令進行數據傳輸。1.無條件傳送方式假設外設已經準備就緒,不查詢外設狀態,直2.查詢方式稱為條件傳送方式,一般查詢傳輸時一個I/O設備有兩個端口地址,一個為數據口地址,一個為狀態口地址。CPU先讀取狀態口的數據,看看當前外設的狀態準備好沒有,若準備好則開始讀寫數據口,傳輸數據;若未準備好則循環讀取狀態口地址等待外設準備好。2.查詢方式稱為條件傳送方式,一般查詢傳輸時一個I/O設備查詢式輸入如圖,狀態線占用一根數據線D0,STB是選通信號,在輸入時隨著數據一起從輸入端口出現,是表示輸入數據已就緒的狀態信號。CPU先讀狀態口,若狀態就緒,再讀數據口。數據口42H狀態口40HSTROBE:選通信號查詢式輸入如圖,狀態線占用一根數據線D0,STB是選通信號,1)外設未準備好,STB為高,D觸發器無脈沖,CPU讀狀態口(40H),打開緩沖器(1),讀出DB0為低,表示未準備好。1)外設未準備好,STB為高,D觸發器無脈沖,CPU讀狀態2)外設準備好,STB為低,a.

打開鎖存器,將輸入數據鎖存起來;b.STB有下降沿脈沖,使Q為高,CPU讀狀態口(40H)讀入的DB0為高,表示數據有效,程序轉而讀數據口42H。狀態改變2)外設準備好,STB為低,a.打開鎖存器,將輸入數據3)讀數據口42H,a.

打開緩沖器(2),讀數據線,這時,緩沖器(1)高阻,所以數據線上是輸入設備的數據;b.

同時,讀數據口的控制線將D觸發器清零。Q端輸出0,下次再讀狀態口時讀入的DB0為0,表示數據未準備就緒。4)重復1),2),3)步驟3)讀數據口42H,a.打開緩沖器(2),讀數據線,這中斷傳送方式中斷傳送方式是指當外設需要與CPU進行信息交換時,由外設向CPU發出請求信號,使CPU暫停正在執行的程序,轉去執行數據的輸入/輸出操作,數據傳送結束后,CPU再繼續執行被暫停的程序。CPU不必查詢等待,工作效率高,CPU與外設可以并行工作;由于外設具有申請中斷的主動權,故系統實時性比查詢方式要好得多。中斷傳送方式中斷傳送方式是指當外設需要與CPU進行信息交換時DMA方式DMA傳送方式是在存儲器和外設之間、存儲器和存儲器之間直接進行數據傳送,無需CPU介入。DMA傳送方式需要DMA控制器(DMAC)對傳送過程加以控制和管理。DMA傳送期間,CPU放棄總線控制權,將系統總線交由DMAC控制,由DMAC發出地址及讀/寫信號來實現高速數據傳輸。傳送結束后DMAC再將總線控制權交還給CPU。DMA方式DMA傳送方式是在存儲器和外設之微機原理及單片機應用技術第5章-輸入輸出接口與中斷課件DMA傳送方式:單字節傳輸方式成組傳輸方式(塊傳輸方式)請求傳輸方式DMA傳送過程:

DMA初始化

DMA傳送過程(請求、響應、傳送)傳送結束DMA傳送方式:DMA傳送過程:5.3I/O指令和I/O地址譯碼CPU進行I/O操作:

先片選(芯片)、再字選(某寄存器)存儲器操作?兩種I/O接口結構5.3I/O指令和I/O地址譯碼CPU進行I/O操作:5.3.1標準的I/O尋址方式特點:I/O端口地址獨立專門控制IOR*,IOW*專門I/O指令易理解缺點:I/O指令沒有存儲器指令豐富內存空間I/O空間FFFFF0FFFF80x86采用I/O端口獨立編址獨立編址5.3.1標準的I/O尋址方式特點:內存I/OFFFFF0(統一編址)特點:指令眾多,專門控制MEMR*,MEMW*I/O操作同存儲器操作缺點:存儲器地址空間↓程序不易閱讀,耗時內存部分I/O部分存儲器空間00000FFFFF(統一編址)特點:內存I/O存儲器空間00000FFFFF5.3.2輸入輸出指令1.輸入指令(I/O口→CPU)

INAL/AX,Port;直接端口尋址

(Port:端口號,取值0~255)INAL/AX,DX;間接端口尋址

(DX:內容為端口號,取值0~64K,實1K)

2.輸出指令(CPU→I/O口)

OUTPort,AL/AX;直接端口尋址

OUTDX,AL/AX;間接端口尋址端口:具有一定獨立操作功能,可由CPU尋址的一組寄存器(8088/8086時寬度為8位)5.3.2輸入輸出指令1.輸入指令(I/O口→CPU)例:INAL,50H;將50H端口的字節讀入ALOUT80H,AX;將AL的字節輸出到80H端口,

將AH的字節輸出到81H端口

OUTDX,AL;將AL中的字節輸出到DX所指的端口

OUTDX,AX?

INAH,7EH?

MOVDX,AL?例:5.3.3I/O接口的端口地址譯碼即接口地址譯碼:

理想(A0~A15)64K范圍,0~FFFFH(端口號)實際(A0~A9)1K范圍,0~03FFH(端口號,系統占用部分)1.直接地址譯碼(實用多見)A0~A9(加AEN,IOR*,IOW*)→譯碼電路→片選(組選,地址區域)、字選(寄存器選擇)AEN:DMA控制器地址允許信號AEN=1,為DMA期間,禁止其他使用系統總線AEN=0,非DMA期間,允許CPU控制系統總線(直接地址譯碼需AEN=0)5.3.3I/O接口的端口地址譯碼即接口地址譯碼:G2B*=0?

G2A*=0?輸入輸出分開G2B*=0?AEN=0時

CBAA9A8A7A6A5A4A3A2A1A01011111000

2F8H

…………1011111111

2FFHG2A*=0?IOW*/IOR*不同時有效輸入輸出G2B*=0?G2A*=0?輸入輸出分開G2B*=I/O端口地址→I/O接口:

含IOW*/IOR*信息,含AEN信息,含A9~A0信息A9A8A7A6A5A4A3A2A1A01110000000

380H

…………1110000001

381H←I/O端口地址:可輸入輸出

由IOW*/IOR*體現I/O端口地址→I/O接口:

含IOW*/IOR*信80X86主機板的I/O譯碼電路(內端口)DMA控制器1(00H~1FH)中斷控制器1(20H~3FH)定時計數器(40H~5FH)并行接口電路(60H~7FH)DMA頁面寄存器(80H~9FH)中斷控制器2(A0H~BFH)DMA控制器2(C0H~DFH)協處理器(E0H~FFH)AEN接口芯片內部譯碼A0~A4A5A6A7A8A974LS138ABCG2AG2BG1Y0Y1Y2Y3Y4Y5Y6Y780X86主機板的I/O譯碼電路(內端口)DMA控制器1(05.48086/8088CPU中斷控制功能5.4.1中斷概念正在看書電話鈴響接電話繼續看書執行程序事件發生事件處理繼續執行程序中斷處理中斷請求及響應實際場景計算機中斷返回中斷:

CPU暫?,F操作,轉去處理另一事件,完畢,返回執行暫停的操作。5.48086/8088CPU中斷控制功能5.4.15.4.2中斷源外部硬件中斷

INTR:可屏蔽中斷,受CPU內標志寄存器中IF位的屏蔽NMI:非屏蔽中斷,不受IF位的屏蔽,Cpu必須響應2.內部異常中斷CPU內部正在執行的過程發生的異常情況,如除數為03.中斷優先順序CPU的中斷優先權排列從高到低為:1)除法出錯中斷,溢出中斷,INTn,…2)NMI3)INTR4)單步中斷5.4.2中斷源外部硬件中斷中斷源識別:中斷類型碼中斷類型碼可以是0~255,一部分由系統占用,一部分用戶可以支配。

比如:除法錯誤(n=0)

調試異常(n=1)

NMI中斷(n=2)

斷點中斷(n=3)

溢出中斷(n=4)

中斷源識別:中斷類型碼5.4.3中斷向量表中斷向量表:系統RAM的最低端00000H~003FFH的1K字節內,表中共有256個中斷類型碼對應

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論