原理與接口技術(shù)-第9章_第1頁
原理與接口技術(shù)-第9章_第2頁
原理與接口技術(shù)-第9章_第3頁
原理與接口技術(shù)-第9章_第4頁
原理與接口技術(shù)-第9章_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第9章 輸入輸出控制技術(shù),學習目標 輸入/輸出(簡稱I/O)設(shè)備是計算機的主要組成部分。I/O接口是CPU同輸入/輸出設(shè)備之間進行信息交換的重要樞紐。 本章首先介紹輸入輸出接口基本概念、CPU與外設(shè)數(shù)據(jù)傳送的方式。然后,重點討論中斷與計數(shù)/定時控制技術(shù)。,第9章 輸入輸出控制技術(shù),學習要求 著重理解接口基本結(jié)構(gòu)的特點。 掌握CPU與外設(shè)之間數(shù)據(jù)的傳送方式與控制方式。 正確理解中斷源、向量中斷、中斷優(yōu)先權(quán)等基本概念。 重點掌握8086/8088中斷系統(tǒng)及其用戶定義的內(nèi)部中斷處理方法。能正確理解和靈活運用中斷向量表。 掌握8259A內(nèi)部8個部件的功能及其關(guān)系。 重點掌握8259A初始化編程。 掌握

2、可編程計數(shù)器/定時器8253-5的內(nèi)部結(jié)構(gòu)和進行計數(shù)/定時控制的原理。 掌握8253-5的方式控制字格式的設(shè)置,能夠理解各計數(shù)器有6種可供選擇的工作方式,并完成定時、計數(shù)或脈沖發(fā)生器等多種功能。,9.1 輸入輸出接口概述,1CPU與外設(shè)間的連接 CPU與外設(shè)的連接須通過各自的專用接口電路(或接口芯片)來實現(xiàn),這些接口電路簡稱為I/O接口。 2接口電路的基本結(jié)構(gòu) 接口電路的基本結(jié)構(gòu)同它傳送的信息種類有關(guān)。信息可分為3類:數(shù)據(jù)信息;狀態(tài)信息;控制信息。,9.2 CPU與外設(shè)之間數(shù)據(jù)傳送的方式,9.2.1程序傳送 程序傳送:在程序控制(即IN或OUT指令控制)下進行數(shù)據(jù)傳送,是CPU與外設(shè)間最簡單的

3、一種數(shù)據(jù)傳送方式。它可分為無條件傳送方式和有條件傳送方式兩種。 1無條件傳送(又稱同步傳送) 無條件傳送方式對少量數(shù)據(jù)傳送來說, 是最省時間的一種傳送方法,適用于 各類巡回檢測和過程控制。,2程序查詢傳送(條件傳送異步傳送),程序查詢傳送是有條件的異步傳送。 1)程序查詢輸入 查詢輸入部分的程序: POLL:IN AL,STATUS_PORT;讀狀態(tài)端口的信息 TEST AL,80H ;設(shè)“準備就緒”(READY)信息在D7位 JE POLL;未“準備就緒”,則循環(huán)再查 IN AL,DATA_PORT ;已“準備就緒”(READY=1),則讀入數(shù)據(jù),2程序查詢傳送(條件傳送異步傳送),2)程序

4、查詢輸出 查詢輸出部分的程序: POLL:INAL,STATUS_PORT;查狀態(tài)端口中的狀態(tài)信息D7 TESTAL,80H JNE POLL ;D71即忙線1,則循環(huán)再查 MOV AL,STORE;否則,外設(shè)空閑,則由內(nèi)存讀取數(shù)據(jù) OUT DATA_PORT,AL;輸出到DATA地址端口單元 ATATUS和DATA分別為狀態(tài)端口 和數(shù)據(jù)端口的符號地址; STORE為待輸出數(shù)據(jù)的內(nèi)存單元 的符號地址。,2程序查詢傳送(條件傳送異步傳送),3)一個采用查詢方式的數(shù)據(jù)采集系統(tǒng) START:MOV DL,0F8H;設(shè)置啟動A/D轉(zhuǎn)換信號,且低3位選通多路開關(guān)通道 MOV AX,SEG DSTOR;設(shè)

5、置輸入數(shù)據(jù)的內(nèi)存單元地址指針 MOV ES,AX LEA DI,DSTOR AGAIN:MOV AL,DL AND AL,0EFH;使D40 OUT 04,AL;停止A/D轉(zhuǎn)換 CALL DELAY;等待停止A/D轉(zhuǎn)換操作的完成 MOV AL,DL OUT 04,AL;選輸入通道并啟動A/D轉(zhuǎn)換,3)一個采用查詢方式的數(shù)據(jù)采集系統(tǒng),POLL: IN AL,02;輸入狀態(tài)信息 SHR AL,1;查AL的D0 JNC POLL;判READY1?若D00,未準備好,則循環(huán)再查 IN AL,03;若已準備就緒,則經(jīng)端口3將采樣數(shù)據(jù)輸入至AL STOSB;輸入數(shù)據(jù)轉(zhuǎn)送內(nèi)存單元 INC DL;輸入模擬量通

6、道增1 JNE AGAIN;8個模擬量未輸入完則循環(huán) ;輸入完畢,則執(zhí)行別的程序,9.2.2中斷傳送,中斷是外設(shè)或其他中斷源中止CPU當前正在執(zhí)行的程序,而轉(zhuǎn)向為該外設(shè)服務(如完成它與CPU之間傳送一個數(shù)據(jù))的程序,一旦服務結(jié)束,又返回原程序繼續(xù)工作。這樣,外設(shè)處理數(shù)據(jù)期間,CPU就不必浪費大量時間去查詢它們的狀態(tài),只待外設(shè)處理完畢主動向CPU提出請求(向CPU發(fā)中斷請求信號),而CPU在每一條指令執(zhí)行的結(jié)尾階段,均查詢是否有中斷請求信號(這種查詢是由硬件完成的,不占用CPU的工作時間),若有,則暫停執(zhí)行現(xiàn)行的程序,轉(zhuǎn)去為申請中斷的某個外設(shè)服務,以完成數(shù)據(jù)傳送。 中斷傳送方式的好處是:大大提高

7、了CPU的工作效率。,9.2.3直接存儲器存取傳送,直接存儲器存取傳送DMA(direct memory access )方式或稱為數(shù)據(jù)通道方式是一種由專門的硬件電路執(zhí)行I/O交換的 傳送方式,它讓外設(shè)接口可直接與 內(nèi)存進行高速的數(shù)據(jù)傳送,而不必 經(jīng)過CPU,可實現(xiàn)對存儲器的直接 存取。,9.3中斷技術(shù),9.3.1中斷概述 1中斷與中斷源 中斷:使CPU暫停運行原來的程序而應更為急迫事件的需要轉(zhuǎn)向去執(zhí)行為中斷源服務的程序(稱為中斷服務程序),待該程序處理完后,再返回運行原程序,此即中斷(或中斷技術(shù))。 中斷源,即引起中斷的事件或原因,或發(fā)出中斷申請的來源。通常中斷源有以下幾種:外部設(shè)備;實時時

8、鐘;故障源。 以上3種屬于隨機中斷源。由隨機引起的中斷,稱為強迫中斷。 還有一種為調(diào)試程序設(shè)置的中斷源。這是指CPU執(zhí)行了特殊指令(自陷指令)或由硬件電路引起的中斷,主要是供用戶調(diào)試程序時而采取的檢查手段。如斷點設(shè)置、單步調(diào)試等。這些都要由中斷系統(tǒng)實現(xiàn)。一般稱這種中斷為自愿中斷。,9.3.1中斷概述,2中斷系統(tǒng)及其功能 中斷系統(tǒng):為實現(xiàn)中斷而設(shè)置的各種硬件與軟件,包括中斷控制邏輯及相應管理中斷的指令。 中斷系統(tǒng)具有下列功能: 1)能響應中斷、處理中斷與返回 2)能實現(xiàn)優(yōu)先權(quán)排隊 3)高級中斷源能中斷低級的中斷 處理中斷嵌套的技術(shù)。,9.3.2單個中斷源的中斷,簡單的中斷過程應包括:中斷請求、中

9、斷響應、中斷處理和中斷返回等環(huán)節(jié)。 1.中斷源向CPU發(fā)中斷請求信號的條件 中斷源是通過其接口電路 向CPU發(fā)中斷請求信號的, 該信號能否發(fā)給CPU,應 滿足下列兩個條件: 1)設(shè)置中斷請求觸發(fā)器 2)設(shè)置中斷屏蔽觸發(fā)器,9.3.2單個中斷源的中斷,2. CPU響應中斷的條件 當中斷源向CPU發(fā)出INTR信號后,CPU若要響應它,還應滿足下列條件。 1)CPU開放中斷 2)CPU在現(xiàn)行指令結(jié)束后響應中斷,9.3.2單個中斷源的中斷,3. CPU響應中斷及處理過程 1)關(guān)中斷 2)保留斷點 CPU響應中斷后,立即封鎖斷點地址,且把此值壓棧保護,以備在中斷處理完畢后,CPU能返回斷點處繼續(xù)運行主程

10、序。 3)保護現(xiàn)場 4)給出中斷入口(地址),轉(zhuǎn)入相應的中斷服務程序 8086/8088是由中斷源提供中斷類型號,并根據(jù) 中斷類型號在中斷向量表中取得中斷服務程序 的起始地址。 5)恢復現(xiàn)場 這個操作是在中斷服務程序中用POP指令來完成的。 6)開中斷與返回,9.3.3向量中斷 向量中斷(Vectored Interrupt),是指通過中斷向量進入中斷服務程序的一種方法;而中斷向量則是用來提供中斷入口地址的一個地址指針(即CS:IP)。 例如8086/8088 CPU的中斷系統(tǒng)就是采用這種向量中斷。 9.3.4中斷優(yōu)先權(quán) 在實際的系統(tǒng)中,具有多個中斷源,而CPU的可屏蔽中斷請求線往往只有一條。

11、如何解決多個中斷源同時請求中斷而只有一根中斷請求線的矛盾呢?這就要求CPU按多個中斷源的優(yōu)先權(quán)由高至低依次來響應中斷申請。同時,當CPU正在處理中斷時,還要能響應更高級的中斷申請,而屏蔽掉同級或低級的中斷申請。CPU可以通過軟件查詢技術(shù)或硬件排隊電路兩種方法來實現(xiàn)按中斷優(yōu)先權(quán)對多個中斷源的管理,也有專門用于協(xié)助CPU按中斷優(yōu)先權(quán)處理多個中斷源的中斷控制芯片,如8259A芯片。,9.4 8086/8088的中斷系統(tǒng)和中斷處理,9.4.1 8086/8088的中斷系統(tǒng) 8086/8088的中斷系統(tǒng)采用中斷向量結(jié)構(gòu),可以處理多達256種類型的中斷。,9.4.1 8086/8088的中斷系統(tǒng),1外部中

12、斷 8086/8088 CPU有兩條引腳供外部中斷源請求中斷:一條是高電平有效的可屏蔽中斷INTR;另一條是正跳變有效的非屏蔽中斷NMI。 1)可屏蔽中斷 可屏蔽中斷是由用戶定義的外部硬件中斷。當8086/8088 CPU的INTR引腳上出現(xiàn)一高電平有效請求信號時,它必須保持到當前指令的結(jié)束。若IF=0,此時CPU是處于關(guān)中斷狀態(tài),則不響應INTR;若IF=1,則CPU是處于開中斷狀態(tài),將響應INTR,并通過引腳向產(chǎn)生INTR的設(shè)備接口(中斷源)發(fā)回響應信號,啟動中斷過程。 8086/8088 CPU在發(fā)回第2個中斷響應信號時,將使發(fā)出中斷請求信號的接口把1字節(jié)的中斷類型號通過數(shù)據(jù)總線傳送給C

13、PU。由該中斷類型號指定了中斷服務程序入口地址在中斷向量表中的位置。 中斷允許標志IF位的狀態(tài)可用指令STI使其置位,即開中斷;也可用CLI指令使其復位,即關(guān)中斷。,1外部中斷,1)可屏蔽中斷 2)非屏蔽中斷 當8086/8088 CPU的NMI引腳上出現(xiàn)一上升沿的邊沿觸發(fā)有效請求信號時,它將由CPU內(nèi)部的鎖存器將其鎖存起來。8086/8088要求NMI上的請求脈沖的有效寬度(高電平的持續(xù)時間)大于兩個時鐘周期。一旦此中斷請求信號產(chǎn)生,不管標志位IF的狀態(tài)如何,即使在關(guān)中斷(IF=0)的情況下,CPU也能響應它。,9.4.1 8086/8088的中斷系統(tǒng),2. 內(nèi)部中斷 8086/8088的內(nèi)

14、部中斷又叫軟件中斷,它包括以下幾種內(nèi)部中斷:除法出錯中斷類型0;溢出中斷類型4;單步中斷類型1;斷點中斷類型3;用戶定義的軟件中斷類型n。 應著重掌握用戶定義的軟件中斷類型n。它是一個可由用戶定義的雙字節(jié)的中斷指令I(lǐng)NT n,其第1個字節(jié)為INT的操作碼,第2個字節(jié)n是它的中斷類型號。中斷類型號n由程序員編程時給定,用它指出中斷服務程序的入口地址。,3內(nèi)部中斷的特點,1) 內(nèi)部中斷由一條INT n指令直接產(chǎn)生。 2) 除單步中斷以外,所有內(nèi)部中斷都不能被屏蔽。 3) 所有內(nèi)部中斷都沒有中斷響應機器總線周期。 4) 8086/8088中斷系統(tǒng)規(guī)定了硬、軟中斷的優(yōu)先級排隊。 5) 作為軟件調(diào)試手段

15、,單步中斷是逐條地跟蹤調(diào)試,而斷點中斷(INT 3)是逐段地調(diào)試,它們均可用中斷服務程序在屏幕上顯示有關(guān)的各種信息。 6) 為了避開由外設(shè)硬件產(chǎn)生INTR中斷請求信號和提供中斷類型號的麻煩,可以用軟件中斷指令I(lǐng)NT nn來模擬外設(shè)提供的硬件中斷。,4中斷向量表,8086/8088中斷系統(tǒng)的中斷向量表中給出了與中斷類型對應的256個中斷向量,每個向量包含4個字節(jié),2個低地址字節(jié)是IP偏移量, 2個高地址字節(jié)是CS段地址。用來存放256 個向量的中斷向量表需要占用1K字節(jié)的存 儲空間,且設(shè)置在存儲器的最低端(000H 3FFH)。這樣,每個中斷都可轉(zhuǎn)到1MB空 間的任何地方。,4中斷向量表,當CP

16、U響應中斷訪問中斷向量表時,外設(shè)通過接口將一個8位的中斷類型編碼n放在數(shù)據(jù)總線上,CPU對編號n乘以4得到4n指向該中斷向量的首字節(jié);4n和4n+1單元中存放的是中斷向量的偏移地址值,其低字節(jié)在4n地址中,高字節(jié)在4n+1地址中;4n+2和4n+3單元中存放的是中斷 向量的段地址值,也是低 字節(jié)在前,高字節(jié)在后。 實現(xiàn)中斷轉(zhuǎn)移時,CPU將把 有關(guān)的標志位和斷點地址的 CS和IP值入棧,然后通過中 斷向量間接轉(zhuǎn)入中斷服務程 序。 中斷處理結(jié)束,用返回指令 彈出斷點地址的IP與CS值以 及標志位,然后返回被中斷 的程序。,9.4.2 8086/8088的中斷處理過程,8086/8088的中斷處理過

17、程,9.4.2 8086/8088的中斷處理過程,(1)所有中斷處理都包括中斷請求、中斷響應、中斷處理和中斷返回4個基本過程。 (2)響應順序均按預先設(shè)計的中斷優(yōu)先權(quán)來響應。優(yōu)先權(quán)由高到低依次為:內(nèi)部中斷;NMI中斷;INTR中斷;單步中斷。 (3)CPU開始響應中斷的時刻,在一般情況下,都要待當前指令執(zhí)行完后方可響應中斷申請。但有少數(shù)情況是在下一條指令完成之后才響應中斷請求。例如,REP(重復前綴),LOCK(封鎖前綴)和段超越前綴等指令都應當將前綴看作指令的一部分,在執(zhí)行前綴和指令間不允許中斷。段寄存器的傳送指令MOV和段寄存器的彈出指令POP也是一樣,在執(zhí)行下條指令之前都不能響應中斷。

18、(4)在WAIT指令和重復數(shù)據(jù)串操作指令執(zhí)行的過程中間可以響應中斷請求,但必須要等一個基本操作或一個等待檢測周期完成后才能響應中斷。 (5)由于NMI引腳上的中斷請求是需要立即處理的,所以在進入執(zhí)行任何中斷(包括內(nèi)部中斷)服務程序之前,都要安排測試NMI引腳上是否有中斷請求,以保證它實際上有最高的優(yōu)先權(quán)。這時要為轉(zhuǎn)入執(zhí)行NMI中斷服務程序而再次保護現(xiàn)場和斷點,并在執(zhí)行完NMI中斷服務程序后返回到所中斷的服務程序。,9.4.2 8086/8088的中斷處理過程,(6)若在執(zhí)行某個中斷服務時無NMI中斷發(fā)生,則接著去查看暫存寄存器TEMP的狀態(tài)。若TEMP1,則在中斷前CPU已處于單步工作方式,就

19、和NMI一樣重新保護現(xiàn)場和斷點,轉(zhuǎn)入單步中斷服務程序。若TEMP0,也就是在中斷前CPU處于非單步工作方式,則這時CPU將轉(zhuǎn)去執(zhí)行最先引起中斷的中斷服務程序。 (7)待中斷處理程序結(jié)束時,由中斷返回指令將堆棧中存放的IP、CS以及PSW值還原給指令指針I(yè)P、代碼段寄存器CS以及程序狀態(tài)字PSW。 注意:當有多個中斷請求同時產(chǎn)生時,8086/8088 CPU將根據(jù)各中斷源優(yōu)先權(quán)的高低來處理,首先響應優(yōu)先權(quán)較高的中斷請求,等具有較高優(yōu)先權(quán)的中斷請求處理完以后,再去依次響應和處理其他中斷申請。,9.4.3可屏蔽中斷的過程,1INTR中斷的全過程 圖中所示的是可屏蔽中斷從中斷發(fā)生到中斷 服務結(jié)束并返回

20、的整個操作過程。 CPU響應NMI或內(nèi)部中斷請求時的操作順序 基本上與上述過程相同,只是不需要前3步 操作和讀取中斷類型碼。一旦CPU接到NMI 引腳上的中斷請求或內(nèi)部中斷請求時,CPU 就會自動地轉(zhuǎn)向它們各自的中斷服務程序。,9.4.3可屏蔽中斷的過程,2中斷類型號的獲得 獲得中斷類型號有3個途徑: (1) 除法錯誤,單步中斷,非屏蔽中斷,斷點中斷和溢出中斷分別由CPU芯片內(nèi)的硬件自動提供類型號04。 (2) 軟件中斷則是從INT n指令流中,即在第2個字節(jié)中讀得中斷類型號n。 (3) 外部中斷INTR可以用不同的方法獲得中斷類型號。例如,在PC系列微機中,可以由Intel 8259A芯片或

21、集成了8259A的超大規(guī)模集成外圍芯片來提供中斷類型號。,9.4.4中斷響應時序,了解中斷響應時序的組成以及中斷類型號的獲取方法與時間。,9.5可編程中斷控制器8259A,9.5.1 8259A的引腳與功能結(jié)構(gòu) 8259A是一個28引腳的雙列直插式芯片。要了解引腳的功能,較好地理解CAS0CAS2這3根級聯(lián)控制信號。,9.5.2 8259A內(nèi)部結(jié)構(gòu)框圖和中斷工作過程,18259A內(nèi)部結(jié)構(gòu)框圖 8259A中斷控制器包括8個主要功能部件,其內(nèi)部結(jié)構(gòu)框圖如圖所示。 8259A內(nèi)部除上述幾個處理8級中斷請求(IR0IR7)的功能部件IRR、ISR與PR之外,還有一組用于寄存控制命令字的8位寄存器。,9

22、.5.2 8259A內(nèi)部結(jié)構(gòu)框圖和中斷工作過程,28259A的中斷工作過程 8259A的8個功能部件組成一個有機的整體,共同協(xié)調(diào)處理其中斷工作過程。 難點:當CPU對某個中斷請求做出的中斷響應結(jié)束后,8259A將如何根據(jù)一個名為方式控制器的結(jié)束方式位的不同設(shè)置,在不同時刻將ISR中置1“的中斷請求位復“0”。實際情況是:在自動結(jié)束中斷(AEOI)方式下,8259A會將ISR中原來在第1個負脈沖到來時設(shè)置的“1”(即響應此中斷請求位)在第2個脈沖結(jié)束時,自行復位成“0”。若是非自動結(jié)束中斷方式(EOI),則ISR中該位的“1”狀態(tài)將一直保持到中斷過程結(jié)束,由CPU發(fā)EOI命令才能復位成“0”。

23、8級中斷請求信號所對應的中斷類型碼(或中斷向量)規(guī)定:其前5位T7T3由用戶在8259A初始化編程時選擇的,后3位則由8259A自動插入的。,9.5.3 8259的控制字格式,8259A的中斷處理功能和各種工作方式,都是通過編程設(shè)置的。即對8259A內(nèi)部有關(guān)寄存器寫入控制命令字來實現(xiàn)控制的。 按照控制字功能及設(shè)置的要求不同,可分為兩種 類型的命令字: (1)初始化命令字ICW:ICW1ICW4,它們必須在 初始化時分別寫入4個相應的寄存器。并且,一旦 寫入,一般在系統(tǒng)運行過程中就不再改變。 (2)工作方式命令字或操作命令字OCW:OCW1OCW3, 它們必須在設(shè)置初始化命令后方能分別寫入3個相

24、應 的寄存器。它們用來對中斷處理過程進行動態(tài)的操作 與控制。在一個系統(tǒng)運行過程中,操作命令字可以 被多次設(shè)置。,1初始化命令字,1) ICW1 ICW1叫芯片控制初始化命令字,用于啟動8259A中的初始化順序。該字寫入8位的芯片控制寄存器。寫ICW1的標記為:A00,D41。,1初始化命令字,2) ICW2 ICW2是設(shè)置中斷類型碼的初始化命令字。該字寫入8位的中斷類型寄存器。 寫ICW2的標記為:A01。,1初始化命令字,3) ICW3 ICW3是標志主片/從片的初始化命令字,該字寫入8位的主/從標志寄存器,它只用于級聯(lián)方式。寫ICW3的標記為:A01。,1初始化命令字 3) ICW3 在I

25、BM PC/XT機中,僅用1片8259A,能提供8級中斷請求。在IBM PC/AT機中用2片8259A組成級聯(lián)方式,最多可以提供15級中斷請求。,1初始化命令字 4)ICW4 ICW4叫方式控制初始化命令字。該字寫入8位的方式控制寄存器。寫ICW4控制字標記為:A01。,2操作命令字,當8259A經(jīng)預置ICWi后已進入初始化狀態(tài),便可接收來IRi端的中斷請求。然后自動進入操作命令狀態(tài),準備接收由CPU寫入8259A的操作命令字OCWi。 1) OCW1 寫OCW1的標記為:01。OCW1用來寫入IMR寄存器。,2操作命令字,2) OCW2 OCW2是用來設(shè)置中斷優(yōu)先級循環(huán)方式和中斷結(jié)束方式的操

26、作命令字。 寫OCW2的標記為:A00、D3D40,OCW2的編碼及功能說明,2操作命令字,3) OCW3 OCW3叫多功能操作命令字。 寫OCW3的標記為:A00、D7D40、D21。該命令字有項功能:一是設(shè)置和撤消特殊屏蔽方式;二是設(shè)置中斷查詢方式;三是設(shè)置對8259A內(nèi)部寄存器的讀出命令。,9.5.4 8259A應用舉例,在IBM PC/XT機中,只采用了1片8259A中斷控制器來提供8級中斷請求,其中IR0優(yōu)先級最高,IR7優(yōu)先級最低。它們分別用于日歷時鐘中斷、鍵盤中斷、保留、網(wǎng)絡通信、異步通信中斷、硬盤中斷、軟盤中斷及打印機中斷。8259A片選地址設(shè)定為20H、21H。 1初始化 M

27、OVAL,13H;寫ICW1,單片,邊沿觸發(fā),要ICW4 OUT20H,AL MOVAL,8;寫ICW2,中斷類型號從8開始 OUT21H,AL MOVAL,0DH;寫ICW4,緩沖工作方式,8088/8086配置 OUT21H,AL MOVAL,0;寫OCW1,允許IR0IR7全部8級中斷請求 OUT21H,AL,2送中斷向量入口地址 例如,異步通信中斷IR4,其中斷向量類型號為8+412(0CH),則中斷入口地址的偏移量(IP值)與段地址(CS)在入口地址表中的存放地址為12448(30H),49(31H),50(32H),51(33H)。其中30H、31H存放指令指針I(yè)P;32H,33H

28、存放指令段碼CS。 3中斷子程序結(jié)束 由于8259A采用中斷工作方式,且ICW4中的1位(即AEOI)為0,這意味著采用正常結(jié)束中斷,因此,在中斷子程序結(jié)束前必須發(fā)EOI命令和IRET命令。 MOVAL,20H;寫OCW2命令,使ISR相應位復位(即發(fā)EOI命令)。 OUT20H,AL IRET;開放中斷允許,并從中斷返回 4中斷嵌套 為了使中斷嵌套,即在中斷響應過程中,允許比本中斷優(yōu)先級高的中斷進入,只要在進入中斷處理程序后,執(zhí)行開中斷指令STI即可達到此目的。,9.5.4 8259A應用舉例,9.6計數(shù)/定時控制技術(shù),在微機應用中,一般常用可編程計數(shù)器/定時器8253-5來進行計數(shù)/定時控

29、制。 9.6.1 8253-5的引腳與功能結(jié)構(gòu) 8253-5是一種24腳封裝的雙列直插式芯片。 功能:計數(shù)與定時,兩者的工作原理在實質(zhì)上是一樣的,都是利用計數(shù)器作減1計數(shù),減至0發(fā)信號;兩者的差別只是用途不同。,9.6.28253-5的內(nèi)部結(jié)構(gòu)和尋址方式,1內(nèi)部結(jié)構(gòu) 8253-5的內(nèi)部結(jié)構(gòu)如圖所示。它有3個獨立結(jié)構(gòu)完全相同的16位計數(shù)器和1個8位控制字寄存器。,2尋址方式,8253-5的尋址與相應操作,9.6.3 8253-5的6種工作方式及時序關(guān)系,8253-5的各計數(shù)器都有6種可供選擇的工作方式,以完成定時、計數(shù)或脈沖發(fā)生器等多種功能。,1方式0 計數(shù)結(jié)束產(chǎn)生中斷,8253-5方式0有以下

30、特點: (1)當寫入控制字后,OUT端輸出低電平作為起始電平,在有兩個負脈沖寬度的信號的上升沿將初值寫入初值寄存器CR, 待計數(shù)初值裝入計數(shù)器后,輸出仍 保持低電平。 (2)GATE為計數(shù)控制門。 (3)計數(shù)過程中可重新裝入計數(shù)初值。 8253-5利用方式0既可計數(shù),也可定時。,2方式1可編程單穩(wěn)觸發(fā)器,8253-5方式1有以下特點: (1)當寫入控制字后,OUT端將輸出高電平作為起始電平。 (2)工作時,由GATE輸入觸發(fā)脈沖的上升沿使OUT變?yōu)榈碗娖?,每來一個計數(shù)脈沖,計數(shù)器作減1計數(shù),當計數(shù)值減為0時,OUT再變?yōu)楦唠娖健?(3)如果在計數(shù)器未減到0時,門控端GATE 又來一個觸發(fā)脈沖,

31、則由下一個時鐘脈沖開 始,計數(shù)器將從原有的初始值(n=4)重新作 減1計數(shù)。當減至0時,輸出端又變?yōu)楦唠娖健?這樣,使輸出脈沖寬度延長。 (4)若在計數(shù)過程中,又寫入一個新的計數(shù) 初值,它并不影響本次計數(shù)過程,輸出也 不變。只是在下一次觸發(fā)時,計數(shù)器按新的 輸入初值重新計數(shù)。,3方式2分頻器(又叫分頻脈沖產(chǎn)生器),方式2是n分頻計數(shù)器,n是寫入計數(shù)器的初值。 當計數(shù)器的控制寄存器寫入控制字后,OUT端輸出高電平作為起始電平。當計數(shù)初值(圖中給出了兩個初值即n=4或n=3)在信號的上升沿寫入計數(shù)器后,從下一個時鐘脈沖起,計數(shù)器開始作減1計數(shù)。當減到1(而不是減 到0)時,OUT端輸出將變?yōu)榈碗娖?/p>

32、。當 計數(shù)端CLK輸入n個計數(shù)脈沖后,在輸出 端OUT輸出一個n分頻脈沖,其正脈沖寬 度為(n1)個輸入脈沖時鐘周期,而 負脈沖寬度只是一個輸入脈沖時鐘周期。 GATE用來控制計數(shù),GATE1,允許計數(shù); GATE0,停止計數(shù)。 注意:在方式2下,不但高電平的 門控信號有效,上升跳變的門控信號 也是有效的。,4方式3方波頻率發(fā)生器,方式3類似于方式2,也有兩種啟動方式,并具有自動裝入計數(shù)初值的功能,但輸出的波形為方波或者為近似對稱的矩形波。 注意:如果在計數(shù)過程中,GATE變?yōu)榈碗娖剑瑒t暫停減1計數(shù),直到GATE再次表為高電平有效,重新從初值n開始減1計數(shù)。,5方式4 軟件觸發(fā)選通脈沖,按方式

33、4工作時,計數(shù)器寫入控制字后,輸出的OUT信號變?yōu)楦唠娖?。當由軟件觸發(fā)寫入初始值n(此例中n=4)經(jīng)過1個時鐘周期后,若GATE1,允許計數(shù),則計數(shù)器在一個時鐘脈沖之后開始作減1計數(shù),當計數(shù)器減到0時,在OUT端輸出一個寬度等于一個計數(shù)脈沖周期的負脈沖。若GATE0,則停止計數(shù),n保持為4;只有在GATE恢復高電平之后才重新計數(shù),即由n=4開始減1計數(shù),直至減至0才發(fā)出一個選通負脈沖。 注意:方式4是通過軟件寫入新的計數(shù)值來使計數(shù)器重新工作的,故稱為軟件觸發(fā)選通脈沖方式。,6方式5 硬件觸發(fā)選通脈沖,方式5類似于方式4,所不同的是GATE端輸入信號的作用不同。 按方式5工作時,由GATE輸入觸

34、發(fā)脈沖,從其上升沿開始,計數(shù)器作減1計數(shù),計數(shù)結(jié)束時,在OUT端輸出一個寬度等于一個計數(shù)脈沖周期的負脈沖。在此方式中,計數(shù)器可重新觸發(fā)。在任何時刻,當GATE觸發(fā)脈沖上升沿到來時,將把計數(shù)初值重新送入計數(shù)器,然后開始計數(shù)過程。 注意:方式5的選通負脈沖是通過硬件電路產(chǎn)生的門控信號GATE上升沿觸發(fā)后得到的,故稱為硬件觸發(fā)選通脈沖方式。,9.6.4 8253應用舉例,在IBMPC/XT機中,8253-5是CPU外圍支持電路之一,為系統(tǒng)電子鐘提供時間基準,為動態(tài)RAM刷新提供定時信號以及作為揚聲器的聲源等功能。 從圖可知,8253-5芯片的3個計數(shù)器使用相同的時鐘脈沖。CLK0CLK2的頻率是PC

35、LK(2.38MHz)的1/2,即1.19MHz,這由U22分頻實現(xiàn)。8253-5的3個計數(shù)器端口地址為:40H、41H、42H。控制寄存器端口地址為43H。,3個計數(shù)器的用途,1)計數(shù)器0 向系統(tǒng)日歷時鐘提供定時中斷,選用方式3工作,控制字為36H。計數(shù)器值預置為0(即65536),GATE0接+5V,允許計數(shù)。OUT0輸出時鐘頻率為1.19MHz/6553618.21Hz。它直接接到中斷控制器8259A的中斷請求端IR0,即0級中斷,每秒出現(xiàn)18.2次。每間隔55ms產(chǎn)生一次0級中斷請求。每一個輸出脈沖均以其正跳變產(chǎn)生一次中斷。 2)計數(shù)器1 向DMA控制器定時發(fā)動態(tài)存儲器刷新請求,選用方

36、式2工作,控制字為54H。計數(shù)器初始值為18,GATE1接+5V,允許計數(shù)。OUT1輸出分頻脈沖頻率為1.19MHz/1866.1KHz,相當于周期為15.1S。計數(shù)器1每隔15.1s經(jīng)由U21產(chǎn)生一個動態(tài)RAM刷新的請求信號DRQ0。 3)計數(shù)器2 控制喇叭發(fā)聲音調(diào),用方式3工作,控制字為B6H,計數(shù)器的初值置533H(即1331),OUT2輸出方波頻率為1.19MHz/1331894Hz。該計數(shù)器的工作由主機板8255A的PB0端控制。當PB0輸出的TIME2GATESPK為高電平時,計數(shù)器方能工作。OUT2的輸出與8255A PB1端產(chǎn)生的喇叭音響信號SPKRDATA在U87相與后送到功

37、放驅(qū)動芯片75477的輸入端A。,本章小結(jié),輸入/輸出接口是微處理器同外部設(shè)備之間信息交換的重要樞紐。CPU對外設(shè)的IO操作類似于存儲器的讀寫操作。主存儲器可以與CPU直接連接,而I/O設(shè)備則需要經(jīng)過接口電路(即I/O適配器)與CPU連接。接口電路的基本結(jié)構(gòu)同它傳送的信息種類有關(guān)。 CPU與外設(shè)之間數(shù)據(jù)傳送的方式有程序傳送、中斷傳送和DMA傳送3種方式。其中,中斷是控制異步數(shù)據(jù)傳送的一種軟硬件相結(jié)合的關(guān)鍵技術(shù),可以看成是由中斷源引起(即硬件隨機激發(fā)或軟件激發(fā))的一次過程調(diào)用。所有中斷過程都是由中斷系統(tǒng)實現(xiàn)的。中斷系統(tǒng)應能響應中斷、處理中斷與返回;還能能實現(xiàn)優(yōu)先權(quán)排隊;并且能夠?qū)崿F(xiàn)中斷嵌套。 8

38、086/8088的中斷系統(tǒng)采用中斷向量結(jié)構(gòu),使每個不同的中斷都可以通過給定一個特定的中斷類型號(或中斷類型碼)供CPU識別,來處理多達256種類型的中斷。這些中斷可以來自外部,即由硬件產(chǎn)生,也可以來自內(nèi)部,即由軟件(中斷指令)產(chǎn)生,或者滿足某些特定條件(陷阱)后引發(fā)CPU中斷。 8086/8088 CPU有可屏蔽中斷INTR與非屏蔽中斷NMI兩條引腳來接受外部硬件中斷請求??善帘沃袛嘁軜酥炯拇嫫鞯闹袛嘣试S標志位IF的控制,而非屏蔽中斷不受標志寄存器的中斷允許標志位IF的控制。 8086/8088 CPU內(nèi)部中斷又叫軟件中斷,它包括除法出錯中斷(類型0)、溢出中斷(類型4)、單步中斷(類型1)與斷點中斷(類型3);還有用戶定義的軟件中斷(類型n)。,本章小結(jié),8086/8088 CPU中斷處理的過程比較復雜。首先要掌握單個中斷源的基本中斷處理過程,即:中斷請求,中斷響應,中斷處理和中斷返回。當同時發(fā)生多個中斷請求時,CPU將根據(jù)各

溫馨提示

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

評論

0/150

提交評論