




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第9章 輸入輸出控制技術(shù),學(xué)習(xí)目標(biāo) 輸入/輸出(簡稱I/O)設(shè)備是計算機(jī)的主要組成部分。I/O接口是CPU同輸入/輸出設(shè)備之間進(jìn)行信息交換的重要樞紐。 本章首先介紹輸入輸出接口基本概念、CPU與外設(shè)數(shù)據(jù)傳送的方式。然后,重點(diǎn)討論中斷與計數(shù)/定時控制技術(shù)。,第9章 輸入輸出控制技術(shù),學(xué)習(xí)要求 著重理解接口基本結(jié)構(gòu)的特點(diǎn)。 掌握CPU與外設(shè)之間數(shù)據(jù)的傳送方式與控制方式。 正確理解中斷源、向量中斷、中斷優(yōu)先權(quán)等基本概念。 重點(diǎn)掌握8086/8088中斷系統(tǒng)及其用戶定義的內(nèi)部中斷處理方法。能正確理解和靈活運(yùn)用中斷向量表。 掌握8259A內(nèi)部8個部件的功能及其關(guān)系。 重點(diǎn)掌握8259A初始化編程。 掌握
2、可編程計數(shù)器/定時器8253-5的內(nèi)部結(jié)構(gòu)和進(jìn)行計數(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指令控制)下進(jìn)行數(shù)據(jù)傳送,是CPU與外設(shè)間最簡單的
3、一種數(shù)據(jù)傳送方式。它可分為無條件傳送方式和有條件傳送方式兩種。 1無條件傳送(又稱同步傳送) 無條件傳送方式對少量數(shù)據(jù)傳送來說, 是最省時間的一種傳送方法,適用于 各類巡回檢測和過程控制。,2程序查詢傳送(條件傳送異步傳送),程序查詢傳送是有條件的異步傳送。 1)程序查詢輸入 查詢輸入部分的程序: POLL:IN AL,STATUS_PORT;讀狀態(tài)端口的信息 TEST AL,80H ;設(shè)“準(zhǔn)備就緒”(READY)信息在D7位 JE POLL;未“準(zhǔn)備就緒”,則循環(huán)再查 IN AL,DATA_PORT ;已“準(zhǔn)備就緒”(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,未準(zhǔn)備好,則循環(huán)再查 IN AL,03;若已準(zhǔn)備就緒,則經(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當(dāng)前正在執(zhí)行的程序,而轉(zhuǎn)向為該外設(shè)服務(wù)(如完成它與CPU之間傳送一個數(shù)據(jù))的程序,一旦服務(wù)結(jié)束,又返回原程序繼續(xù)工作。這樣,外設(shè)處理數(shù)據(jù)期間,CPU就不必浪費(fèi)大量時間去查詢它們的狀態(tài),只待外設(shè)處理完畢主動向CPU提出請求(向CPU發(fā)中斷請求信號),而CPU在每一條指令執(zhí)行的結(jié)尾階段,均查詢是否有中斷請求信號(這種查詢是由硬件完成的,不占用CPU的工作時間),若有,則暫停執(zhí)行現(xiàn)行的程序,轉(zhuǎn)去為申請中斷的某個外設(shè)服務(wù),以完成數(shù)據(jù)傳送。 中斷傳送方式的好處是:大大提高
7、了CPU的工作效率。,9.2.3直接存儲器存取傳送,直接存儲器存取傳送DMA(direct memory access )方式或稱為數(shù)據(jù)通道方式是一種由專門的硬件電路執(zhí)行I/O交換的 傳送方式,它讓外設(shè)接口可直接與 內(nèi)存進(jìn)行高速的數(shù)據(jù)傳送,而不必 經(jīng)過CPU,可實現(xiàn)對存儲器的直接 存取。,9.3中斷技術(shù),9.3.1中斷概述 1中斷與中斷源 中斷:使CPU暫停運(yùn)行原來的程序而應(yīng)更為急迫事件的需要轉(zhuǎn)向去執(zhí)行為中斷源服務(wù)的程序(稱為中斷服務(wù)程序),待該程序處理完后,再返回運(yùn)行原程序,此即中斷(或中斷技術(shù))。 中斷源,即引起中斷的事件或原因,或發(fā)出中斷申請的來源。通常中斷源有以下幾種:外部設(shè)備;實時時
8、鐘;故障源。 以上3種屬于隨機(jī)中斷源。由隨機(jī)引起的中斷,稱為強(qiáng)迫中斷。 還有一種為調(diào)試程序設(shè)置的中斷源。這是指CPU執(zhí)行了特殊指令(自陷指令)或由硬件電路引起的中斷,主要是供用戶調(diào)試程序時而采取的檢查手段。如斷點(diǎn)設(shè)置、單步調(diào)試等。這些都要由中斷系統(tǒng)實現(xiàn)。一般稱這種中斷為自愿中斷。,9.3.1中斷概述,2中斷系統(tǒng)及其功能 中斷系統(tǒng):為實現(xiàn)中斷而設(shè)置的各種硬件與軟件,包括中斷控制邏輯及相應(yīng)管理中斷的指令。 中斷系統(tǒng)具有下列功能: 1)能響應(yīng)中斷、處理中斷與返回 2)能實現(xiàn)優(yōu)先權(quán)排隊 3)高級中斷源能中斷低級的中斷 處理中斷嵌套的技術(shù)。,9.3.2單個中斷源的中斷,簡單的中斷過程應(yīng)包括:中斷請求、中
9、斷響應(yīng)、中斷處理和中斷返回等環(huán)節(jié)。 1.中斷源向CPU發(fā)中斷請求信號的條件 中斷源是通過其接口電路 向CPU發(fā)中斷請求信號的, 該信號能否發(fā)給CPU,應(yīng) 滿足下列兩個條件: 1)設(shè)置中斷請求觸發(fā)器 2)設(shè)置中斷屏蔽觸發(fā)器,9.3.2單個中斷源的中斷,2. CPU響應(yīng)中斷的條件 當(dāng)中斷源向CPU發(fā)出INTR信號后,CPU若要響應(yīng)它,還應(yīng)滿足下列條件。 1)CPU開放中斷 2)CPU在現(xiàn)行指令結(jié)束后響應(yīng)中斷,9.3.2單個中斷源的中斷,3. CPU響應(yīng)中斷及處理過程 1)關(guān)中斷 2)保留斷點(diǎn) CPU響應(yīng)中斷后,立即封鎖斷點(diǎn)地址,且把此值壓棧保護(hù),以備在中斷處理完畢后,CPU能返回斷點(diǎn)處繼續(xù)運(yùn)行主程
10、序。 3)保護(hù)現(xiàn)場 4)給出中斷入口(地址),轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序 8086/8088是由中斷源提供中斷類型號,并根據(jù) 中斷類型號在中斷向量表中取得中斷服務(wù)程序 的起始地址。 5)恢復(fù)現(xiàn)場 這個操作是在中斷服務(wù)程序中用POP指令來完成的。 6)開中斷與返回,9.3.3向量中斷 向量中斷(Vectored Interrupt),是指通過中斷向量進(jìn)入中斷服務(wù)程序的一種方法;而中斷向量則是用來提供中斷入口地址的一個地址指針(即CS:IP)。 例如8086/8088 CPU的中斷系統(tǒng)就是采用這種向量中斷。 9.3.4中斷優(yōu)先權(quán) 在實際的系統(tǒng)中,具有多個中斷源,而CPU的可屏蔽中斷請求線往往只有一條。
11、如何解決多個中斷源同時請求中斷而只有一根中斷請求線的矛盾呢?這就要求CPU按多個中斷源的優(yōu)先權(quán)由高至低依次來響應(yīng)中斷申請。同時,當(dāng)CPU正在處理中斷時,還要能響應(yīng)更高級的中斷申請,而屏蔽掉同級或低級的中斷申請。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),可以處理多達(dá)256種類型的中斷。,9.4.1 8086/8088的中斷系統(tǒng),1外部中
12、斷 8086/8088 CPU有兩條引腳供外部中斷源請求中斷:一條是高電平有效的可屏蔽中斷INTR;另一條是正跳變有效的非屏蔽中斷NMI。 1)可屏蔽中斷 可屏蔽中斷是由用戶定義的外部硬件中斷。當(dāng)8086/8088 CPU的INTR引腳上出現(xiàn)一高電平有效請求信號時,它必須保持到當(dāng)前指令的結(jié)束。若IF=0,此時CPU是處于關(guān)中斷狀態(tài),則不響應(yīng)INTR;若IF=1,則CPU是處于開中斷狀態(tài),將響應(yīng)INTR,并通過引腳向產(chǎn)生INTR的設(shè)備接口(中斷源)發(fā)回響應(yīng)信號,啟動中斷過程。 8086/8088 CPU在發(fā)回第2個中斷響應(yīng)信號時,將使發(fā)出中斷請求信號的接口把1字節(jié)的中斷類型號通過數(shù)據(jù)總線傳送給C
13、PU。由該中斷類型號指定了中斷服務(wù)程序入口地址在中斷向量表中的位置。 中斷允許標(biāo)志IF位的狀態(tài)可用指令STI使其置位,即開中斷;也可用CLI指令使其復(fù)位,即關(guān)中斷。,1外部中斷,1)可屏蔽中斷 2)非屏蔽中斷 當(dāng)8086/8088 CPU的NMI引腳上出現(xiàn)一上升沿的邊沿觸發(fā)有效請求信號時,它將由CPU內(nèi)部的鎖存器將其鎖存起來。8086/8088要求NMI上的請求脈沖的有效寬度(高電平的持續(xù)時間)大于兩個時鐘周期。一旦此中斷請求信號產(chǎn)生,不管標(biāo)志位IF的狀態(tài)如何,即使在關(guān)中斷(IF=0)的情況下,CPU也能響應(yīng)它。,9.4.1 8086/8088的中斷系統(tǒng),2. 內(nèi)部中斷 8086/8088的內(nèi)
14、部中斷又叫軟件中斷,它包括以下幾種內(nèi)部中斷:除法出錯中斷類型0;溢出中斷類型4;單步中斷類型1;斷點(diǎn)中斷類型3;用戶定義的軟件中斷類型n。 應(yīng)著重掌握用戶定義的軟件中斷類型n。它是一個可由用戶定義的雙字節(jié)的中斷指令I(lǐng)NT n,其第1個字節(jié)為INT的操作碼,第2個字節(jié)n是它的中斷類型號。中斷類型號n由程序員編程時給定,用它指出中斷服務(wù)程序的入口地址。,3內(nèi)部中斷的特點(diǎn),1) 內(nèi)部中斷由一條INT n指令直接產(chǎn)生。 2) 除單步中斷以外,所有內(nèi)部中斷都不能被屏蔽。 3) 所有內(nèi)部中斷都沒有中斷響應(yīng)機(jī)器總線周期。 4) 8086/8088中斷系統(tǒng)規(guī)定了硬、軟中斷的優(yōu)先級排隊。 5) 作為軟件調(diào)試手段
15、,單步中斷是逐條地跟蹤調(diào)試,而斷點(diǎn)中斷(INT 3)是逐段地調(diào)試,它們均可用中斷服務(wù)程序在屏幕上顯示有關(guān)的各種信息。 6) 為了避開由外設(shè)硬件產(chǎn)生INTR中斷請求信號和提供中斷類型號的麻煩,可以用軟件中斷指令I(lǐng)NT nn來模擬外設(shè)提供的硬件中斷。,4中斷向量表,8086/8088中斷系統(tǒng)的中斷向量表中給出了與中斷類型對應(yīng)的256個中斷向量,每個向量包含4個字節(jié),2個低地址字節(jié)是IP偏移量, 2個高地址字節(jié)是CS段地址。用來存放256 個向量的中斷向量表需要占用1K字節(jié)的存 儲空間,且設(shè)置在存儲器的最低端(000H 3FFH)。這樣,每個中斷都可轉(zhuǎn)到1MB空 間的任何地方。,4中斷向量表,當(dāng)CP
16、U響應(yīng)中斷訪問中斷向量表時,外設(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)的標(biāo)志位和斷點(diǎn)地址的 CS和IP值入棧,然后通過中 斷向量間接轉(zhuǎn)入中斷服務(wù)程 序。 中斷處理結(jié)束,用返回指令 彈出斷點(diǎn)地址的IP與CS值以 及標(biāo)志位,然后返回被中斷 的程序。,9.4.2 8086/8088的中斷處理過程,8086/8088的中斷處理過
17、程,9.4.2 8086/8088的中斷處理過程,(1)所有中斷處理都包括中斷請求、中斷響應(yīng)、中斷處理和中斷返回4個基本過程。 (2)響應(yīng)順序均按預(yù)先設(shè)計的中斷優(yōu)先權(quán)來響應(yīng)。優(yōu)先權(quán)由高到低依次為:內(nèi)部中斷;NMI中斷;INTR中斷;單步中斷。 (3)CPU開始響應(yīng)中斷的時刻,在一般情況下,都要待當(dāng)前指令執(zhí)行完后方可響應(yīng)中斷申請。但有少數(shù)情況是在下一條指令完成之后才響應(yīng)中斷請求。例如,REP(重復(fù)前綴),LOCK(封鎖前綴)和段超越前綴等指令都應(yīng)當(dāng)將前綴看作指令的一部分,在執(zhí)行前綴和指令間不允許中斷。段寄存器的傳送指令MOV和段寄存器的彈出指令POP也是一樣,在執(zhí)行下條指令之前都不能響應(yīng)中斷。
18、(4)在WAIT指令和重復(fù)數(shù)據(jù)串操作指令執(zhí)行的過程中間可以響應(yīng)中斷請求,但必須要等一個基本操作或一個等待檢測周期完成后才能響應(yīng)中斷。 (5)由于NMI引腳上的中斷請求是需要立即處理的,所以在進(jìn)入執(zhí)行任何中斷(包括內(nèi)部中斷)服務(wù)程序之前,都要安排測試NMI引腳上是否有中斷請求,以保證它實際上有最高的優(yōu)先權(quán)。這時要為轉(zhuǎn)入執(zhí)行NMI中斷服務(wù)程序而再次保護(hù)現(xiàn)場和斷點(diǎn),并在執(zhí)行完NMI中斷服務(wù)程序后返回到所中斷的服務(wù)程序。,9.4.2 8086/8088的中斷處理過程,(6)若在執(zhí)行某個中斷服務(wù)時無NMI中斷發(fā)生,則接著去查看暫存寄存器TEMP的狀態(tài)。若TEMP1,則在中斷前CPU已處于單步工作方式,就
19、和NMI一樣重新保護(hù)現(xiàn)場和斷點(diǎn),轉(zhuǎn)入單步中斷服務(wù)程序。若TEMP0,也就是在中斷前CPU處于非單步工作方式,則這時CPU將轉(zhuǎn)去執(zhí)行最先引起中斷的中斷服務(wù)程序。 (7)待中斷處理程序結(jié)束時,由中斷返回指令將堆棧中存放的IP、CS以及PSW值還原給指令指針I(yè)P、代碼段寄存器CS以及程序狀態(tài)字PSW。 注意:當(dāng)有多個中斷請求同時產(chǎn)生時,8086/8088 CPU將根據(jù)各中斷源優(yōu)先權(quán)的高低來處理,首先響應(yīng)優(yōu)先權(quán)較高的中斷請求,等具有較高優(yōu)先權(quán)的中斷請求處理完以后,再去依次響應(yīng)和處理其他中斷申請。,9.4.3可屏蔽中斷的過程,1INTR中斷的全過程 圖中所示的是可屏蔽中斷從中斷發(fā)生到中斷 服務(wù)結(jié)束并返回
20、的整個操作過程。 CPU響應(yīng)NMI或內(nèi)部中斷請求時的操作順序 基本上與上述過程相同,只是不需要前3步 操作和讀取中斷類型碼。一旦CPU接到NMI 引腳上的中斷請求或內(nèi)部中斷請求時,CPU 就會自動地轉(zhuǎn)向它們各自的中斷服務(wù)程序。,9.4.3可屏蔽中斷的過程,2中斷類型號的獲得 獲得中斷類型號有3個途徑: (1) 除法錯誤,單步中斷,非屏蔽中斷,斷點(diǎn)中斷和溢出中斷分別由CPU芯片內(nèi)的硬件自動提供類型號04。 (2) 軟件中斷則是從INT n指令流中,即在第2個字節(jié)中讀得中斷類型號n。 (3) 外部中斷INTR可以用不同的方法獲得中斷類型號。例如,在PC系列微機(jī)中,可以由Intel 8259A芯片或
21、集成了8259A的超大規(guī)模集成外圍芯片來提供中斷類型號。,9.4.4中斷響應(yīng)時序,了解中斷響應(yīng)時序的組成以及中斷類型號的獲取方法與時間。,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個功能部件組成一個有機(jī)的整體,共同協(xié)調(diào)處理其中斷工作過程。 難點(diǎn):當(dāng)CPU對某個中斷請求做出的中斷響應(yīng)結(jié)束后,8259A將如何根據(jù)一個名為方式控制器的結(jié)束方式位的不同設(shè)置,在不同時刻將ISR中置1“的中斷請求位復(fù)“0”。實際情況是:在自動結(jié)束中斷(AEOI)方式下,8259A會將ISR中原來在第1個負(fù)脈沖到來時設(shè)置的“1”(即響應(yīng)此中斷請求位)在第2個脈沖結(jié)束時,自行復(fù)位成“0”。若是非自動結(jié)束中斷方式(EOI),則ISR中該位的“1”狀態(tài)將一直保持到中斷過程結(jié)束,由CPU發(fā)EOI命令才能復(fù)位成“0”。
23、8級中斷請求信號所對應(yīng)的中斷類型碼(或中斷向量)規(guī)定:其前5位T7T3由用戶在8259A初始化編程時選擇的,后3位則由8259A自動插入的。,9.5.3 8259的控制字格式,8259A的中斷處理功能和各種工作方式,都是通過編程設(shè)置的。即對8259A內(nèi)部有關(guān)寄存器寫入控制命令字來實現(xiàn)控制的。 按照控制字功能及設(shè)置的要求不同,可分為兩種 類型的命令字: (1)初始化命令字ICW:ICW1ICW4,它們必須在 初始化時分別寫入4個相應(yīng)的寄存器。并且,一旦 寫入,一般在系統(tǒng)運(yùn)行過程中就不再改變。 (2)工作方式命令字或操作命令字OCW:OCW1OCW3, 它們必須在設(shè)置初始化命令后方能分別寫入3個相
24、應(yīng) 的寄存器。它們用來對中斷處理過程進(jìn)行動態(tài)的操作 與控制。在一個系統(tǒng)運(yùn)行過程中,操作命令字可以 被多次設(shè)置。,1初始化命令字,1) ICW1 ICW1叫芯片控制初始化命令字,用于啟動8259A中的初始化順序。該字寫入8位的芯片控制寄存器。寫ICW1的標(biāo)記為:A00,D41。,1初始化命令字,2) ICW2 ICW2是設(shè)置中斷類型碼的初始化命令字。該字寫入8位的中斷類型寄存器。 寫ICW2的標(biāo)記為:A01。,1初始化命令字,3) ICW3 ICW3是標(biāo)志主片/從片的初始化命令字,該字寫入8位的主/從標(biāo)志寄存器,它只用于級聯(lián)方式。寫ICW3的標(biāo)記為:A01。,1初始化命令字 3) ICW3 在I
25、BM PC/XT機(jī)中,僅用1片8259A,能提供8級中斷請求。在IBM PC/AT機(jī)中用2片8259A組成級聯(lián)方式,最多可以提供15級中斷請求。,1初始化命令字 4)ICW4 ICW4叫方式控制初始化命令字。該字寫入8位的方式控制寄存器。寫ICW4控制字標(biāo)記為:A01。,2操作命令字,當(dāng)8259A經(jīng)預(yù)置ICWi后已進(jìn)入初始化狀態(tài),便可接收來IRi端的中斷請求。然后自動進(jìn)入操作命令狀態(tài),準(zhǔn)備接收由CPU寫入8259A的操作命令字OCWi。 1) OCW1 寫OCW1的標(biāo)記為:01。OCW1用來寫入IMR寄存器。,2操作命令字,2) OCW2 OCW2是用來設(shè)置中斷優(yōu)先級循環(huán)方式和中斷結(jié)束方式的操
26、作命令字。 寫OCW2的標(biāo)記為:A00、D3D40,OCW2的編碼及功能說明,2操作命令字,3) OCW3 OCW3叫多功能操作命令字。 寫OCW3的標(biāo)記為:A00、D7D40、D21。該命令字有項功能:一是設(shè)置和撤消特殊屏蔽方式;二是設(shè)置中斷查詢方式;三是設(shè)置對8259A內(nèi)部寄存器的讀出命令。,9.5.4 8259A應(yīng)用舉例,在IBM PC/XT機(jī)中,只采用了1片8259A中斷控制器來提供8級中斷請求,其中IR0優(yōu)先級最高,IR7優(yōu)先級最低。它們分別用于日歷時鐘中斷、鍵盤中斷、保留、網(wǎng)絡(luò)通信、異步通信中斷、硬盤中斷、軟盤中斷及打印機(jī)中斷。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相應(yīng)位復(fù)位(即發(fā)EOI命令)。 OUT20H,AL IRET;開放中斷允許,并從中斷返回 4中斷嵌套 為了使中斷嵌套,即在中斷響應(yīng)過程中,允許比本中斷優(yōu)先級高的中斷進(jìn)入,只要在進(jìn)入中斷處理程序后,執(zhí)行開中斷指令STI即可達(dá)到此目的。,9.5.4 8259A應(yīng)用舉例,9.6計數(shù)/定時控制技術(shù),在微機(jī)應(yīng)用中,一般常用可編程計數(shù)器/定時器8253-5來進(jìn)行計數(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個獨(dú)立結(jié)構(gòu)完全相同的16位計數(shù)器和1個8位控制字寄存器。,2尋址方式,8253-5的尋址與相應(yīng)操作,9.6.3 8253-5的6種工作方式及時序關(guān)系,8253-5的各計數(shù)器都有6種可供選擇的工作方式,以完成定時、計數(shù)或脈沖發(fā)生器等多種功能。,1方式0 計數(shù)結(jié)束產(chǎn)生中斷,8253-5方式0有以下
30、特點(diǎn): (1)當(dāng)寫入控制字后,OUT端輸出低電平作為起始電平,在有兩個負(fù)脈沖寬度的信號的上升沿將初值寫入初值寄存器CR, 待計數(shù)初值裝入計數(shù)器后,輸出仍 保持低電平。 (2)GATE為計數(shù)控制門。 (3)計數(shù)過程中可重新裝入計數(shù)初值。 8253-5利用方式0既可計數(shù),也可定時。,2方式1可編程單穩(wěn)觸發(fā)器,8253-5方式1有以下特點(diǎn): (1)當(dāng)寫入控制字后,OUT端將輸出高電平作為起始電平。 (2)工作時,由GATE輸入觸發(fā)脈沖的上升沿使OUT變?yōu)榈碗娖?,每來一個計數(shù)脈沖,計數(shù)器作減1計數(shù),當(dāng)計數(shù)值減為0時,OUT再變?yōu)楦唠娖健?(3)如果在計數(shù)器未減到0時,門控端GATE 又來一個觸發(fā)脈沖,
31、則由下一個時鐘脈沖開 始,計數(shù)器將從原有的初始值(n=4)重新作 減1計數(shù)。當(dāng)減至0時,輸出端又變?yōu)楦唠娖健?這樣,使輸出脈沖寬度延長。 (4)若在計數(shù)過程中,又寫入一個新的計數(shù) 初值,它并不影響本次計數(shù)過程,輸出也 不變。只是在下一次觸發(fā)時,計數(shù)器按新的 輸入初值重新計數(shù)。,3方式2分頻器(又叫分頻脈沖產(chǎn)生器),方式2是n分頻計數(shù)器,n是寫入計數(shù)器的初值。 當(dāng)計數(shù)器的控制寄存器寫入控制字后,OUT端輸出高電平作為起始電平。當(dāng)計數(shù)初值(圖中給出了兩個初值即n=4或n=3)在信號的上升沿寫入計數(shù)器后,從下一個時鐘脈沖起,計數(shù)器開始作減1計數(shù)。當(dāng)減到1(而不是減 到0)時,OUT端輸出將變?yōu)榈碗娖?/p>
32、。當(dāng) 計數(shù)端CLK輸入n個計數(shù)脈沖后,在輸出 端OUT輸出一個n分頻脈沖,其正脈沖寬 度為(n1)個輸入脈沖時鐘周期,而 負(fù)脈沖寬度只是一個輸入脈沖時鐘周期。 GATE用來控制計數(shù),GATE1,允許計數(shù); GATE0,停止計數(shù)。 注意:在方式2下,不但高電平的 門控信號有效,上升跳變的門控信號 也是有效的。,4方式3方波頻率發(fā)生器,方式3類似于方式2,也有兩種啟動方式,并具有自動裝入計數(shù)初值的功能,但輸出的波形為方波或者為近似對稱的矩形波。 注意:如果在計數(shù)過程中,GATE變?yōu)榈碗娖?,則暫停減1計數(shù),直到GATE再次表為高電平有效,重新從初值n開始減1計數(shù)。,5方式4 軟件觸發(fā)選通脈沖,按方式
33、4工作時,計數(shù)器寫入控制字后,輸出的OUT信號變?yōu)楦唠娖?。?dāng)由軟件觸發(fā)寫入初始值n(此例中n=4)經(jīng)過1個時鐘周期后,若GATE1,允許計數(shù),則計數(shù)器在一個時鐘脈沖之后開始作減1計數(shù),當(dāng)計數(shù)器減到0時,在OUT端輸出一個寬度等于一個計數(shù)脈沖周期的負(fù)脈沖。若GATE0,則停止計數(shù),n保持為4;只有在GATE恢復(fù)高電平之后才重新計數(shù),即由n=4開始減1計數(shù),直至減至0才發(fā)出一個選通負(fù)脈沖。 注意:方式4是通過軟件寫入新的計數(shù)值來使計數(shù)器重新工作的,故稱為軟件觸發(fā)選通脈沖方式。,6方式5 硬件觸發(fā)選通脈沖,方式5類似于方式4,所不同的是GATE端輸入信號的作用不同。 按方式5工作時,由GATE輸入觸
34、發(fā)脈沖,從其上升沿開始,計數(shù)器作減1計數(shù),計數(shù)結(jié)束時,在OUT端輸出一個寬度等于一個計數(shù)脈沖周期的負(fù)脈沖。在此方式中,計數(shù)器可重新觸發(fā)。在任何時刻,當(dāng)GATE觸發(fā)脈沖上升沿到來時,將把計數(shù)初值重新送入計數(shù)器,然后開始計數(shù)過程。 注意:方式5的選通負(fù)脈沖是通過硬件電路產(chǎn)生的門控信號GATE上升沿觸發(fā)后得到的,故稱為硬件觸發(fā)選通脈沖方式。,9.6.4 8253應(yīng)用舉例,在IBMPC/XT機(jī)中,8253-5是CPU外圍支持電路之一,為系統(tǒng)電子鐘提供時間基準(zhǔn),為動態(tài)RAM刷新提供定時信號以及作為揚(yáng)聲器的聲源等功能。 從圖可知,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ù)器值預(yù)置為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,相當(dāng)于周期為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ù)器的工作由主機(jī)板8255A的PB0端控制。當(dāng)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ù),可以看成是由中斷源引起(即硬件隨機(jī)激發(fā)或軟件激發(fā))的一次過程調(diào)用。所有中斷過程都是由中斷系統(tǒng)實現(xiàn)的。中斷系統(tǒng)應(yīng)能響應(yīng)中斷、處理中斷與返回;還能能實現(xiàn)優(yōu)先權(quán)排隊;并且能夠?qū)崿F(xiàn)中斷嵌套。 8
38、086/8088的中斷系統(tǒng)采用中斷向量結(jié)構(gòu),使每個不同的中斷都可以通過給定一個特定的中斷類型號(或中斷類型碼)供CPU識別,來處理多達(dá)256種類型的中斷。這些中斷可以來自外部,即由硬件產(chǎn)生,也可以來自內(nèi)部,即由軟件(中斷指令)產(chǎn)生,或者滿足某些特定條件(陷阱)后引發(fā)CPU中斷。 8086/8088 CPU有可屏蔽中斷INTR與非屏蔽中斷NMI兩條引腳來接受外部硬件中斷請求。可屏蔽中斷要受標(biāo)志寄存器的中斷允許標(biāo)志位IF的控制,而非屏蔽中斷不受標(biāo)志寄存器的中斷允許標(biāo)志位IF的控制。 8086/8088 CPU內(nèi)部中斷又叫軟件中斷,它包括除法出錯中斷(類型0)、溢出中斷(類型4)、單步中斷(類型1)與斷點(diǎn)中斷(類型3);還有用戶定義的軟件中斷(類型n)。,本章小結(jié),8086/8088 CPU中斷處理的過程比較復(fù)雜。首先要掌握單個中斷源的基本中斷處理過程,即:中斷請求,中斷響應(yīng),中斷處理和中斷返回。當(dāng)同時發(fā)生多個中斷請求時,CPU將根據(jù)各
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC/IEEE 80005-1:2019 EN-FR Utility connections in port - Part 1: High voltage shore connection (HVSC) systems - General requirements
- 2025至2030中國病床電梯行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國男式化纖上衣行業(yè)深度研究及發(fā)展前景投資評估分析
- 2025至2030中國甲基羥乙基纖維素(MHEC)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國現(xiàn)場標(biāo)記漆行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- 營銷直播培訓(xùn)課件
- 教育技術(shù)與職業(yè)發(fā)展高職院校學(xué)生的新機(jī)遇與挑戰(zhàn)
- 生姜艾灸培訓(xùn)課件
- 麻辣特色早餐培訓(xùn)課件
- 保育常規(guī)消毒培訓(xùn)
- 公文寫作技能題庫及答案
- 2025年廣東省中考語文試卷真題(含答案解析)
- 遼寧省“三支一扶”招募考試真題2024
- 2025中國內(nèi)地薪酬指南-kos高奧士國際-202506
- 算法歧視的法律規(guī)制-洞察及研究
- 檢驗表4.15 灌砌石或大塊石理灌護(hù)坡單元工程施工質(zhì)量檢驗表
- 2024《煤礦安全生產(chǎn)標(biāo)準(zhǔn)化管理體系基本要求及評分方法》掘進(jìn)專業(yè)標(biāo)準(zhǔn)條款解讀
- 胸痛中心的常態(tài)化質(zhì)控與持續(xù)質(zhì)量改進(jìn)
- 核設(shè)施老化管理-洞察及研究
- GB/T 31051-2025起重機(jī)工作和非工作狀態(tài)下的錨定裝置
- 護(hù)理事業(yè)十五五發(fā)展規(guī)劃(2026-2030)
評論
0/150
提交評論