版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第9章 輸入輸出控制技術(shù),學(xué)習(xí)目標(biāo) 輸入/輸出(簡稱I/O)設(shè)備是計(jì)算機(jī)的主要組成部分。I/O接口是CPU同輸入/輸出設(shè)備之間進(jìn)行信息交換的重要樞紐。 本章首先介紹輸入輸出接口基本概念、CPU與外設(shè)數(shù)據(jù)傳送的方式。然后,重點(diǎn)討論中斷與計(jì)數(shù)/定時(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個(gè)部件的功能及其關(guān)系。 重點(diǎn)掌握8259A初始化編程。 掌握
2、可編程計(jì)數(shù)器/定時(shí)器8253-5的內(nèi)部結(jié)構(gòu)和進(jìn)行計(jì)數(shù)/定時(shí)控制的原理。 掌握8253-5的方式控制字格式的設(shè)置,能夠理解各計(jì)數(shù)器有6種可供選擇的工作方式,并完成定時(shí)、計(jì)數(shù)或脈沖發(fā)生器等多種功能。,9.1 輸入輸出接口概述,1CPU與外設(shè)間的連接 CPU與外設(shè)的連接須通過各自的專用接口電路(或接口芯片)來實(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無條件傳送(又稱同步傳送) 無條件傳送方式對(duì)少量數(shù)據(jù)傳送來說, 是最省時(shí)間的一種傳送方法,適用于 各類巡回檢測(cè)和過程控制。,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ù)端口的符號(hào)地址; STORE為待輸出數(shù)據(jù)的內(nèi)存單元 的符號(hào)地址。,2程序查詢傳送(條件傳送異步傳送),3)一個(gè)采用查詢方式的數(shù)據(jù)采集系統(tǒng) START:MOV DL,0F8H;設(shè)置啟動(dòng)A/D轉(zhuǎn)換信號(hào),且低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;選輸入通道并啟動(dòng)A/D轉(zhuǎn)換,3)一個(gè)采用查詢方式的數(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個(gè)模擬量未輸入完則循環(huán) ;輸入完畢,則執(zhí)行別的程序,9.2.2中斷傳送,中斷是外設(shè)或其他中斷源中止CPU當(dāng)前正在執(zhí)行的程序,而轉(zhuǎn)向?yàn)樵撏庠O(shè)服務(wù)(如完成它與CPU之間傳送一個(gè)數(shù)據(jù))的程序,一旦服務(wù)結(jié)束,又返回原程序繼續(xù)工作。這樣,外設(shè)處理數(shù)據(jù)期間,CPU就不必浪費(fèi)大量時(shí)間去查詢它們的狀態(tài),只待外設(shè)處理完畢主動(dòng)向CPU提出請(qǐng)求(向CPU發(fā)中斷請(qǐng)求信號(hào)),而CPU在每一條指令執(zhí)行的結(jié)尾階段,均查詢是否有中斷請(qǐng)求信號(hào)(這種查詢是由硬件完成的,不占用CPU的工作時(shí)間),若有,則暫停執(zhí)行現(xiàn)行的程序,轉(zhuǎn)去為申請(qǐng)中斷的某個(gè)外設(shè)服務(wù),以完成數(shù)據(jù)傳送。 中斷傳送方式的好處是:大大提高
7、了CPU的工作效率。,9.2.3直接存儲(chǔ)器存取傳送,直接存儲(chǔ)器存取傳送DMA(direct memory access )方式或稱為數(shù)據(jù)通道方式是一種由專門的硬件電路執(zhí)行I/O交換的 傳送方式,它讓外設(shè)接口可直接與 內(nèi)存進(jìn)行高速的數(shù)據(jù)傳送,而不必 經(jīng)過CPU,可實(shí)現(xiàn)對(duì)存儲(chǔ)器的直接 存取。,9.3中斷技術(shù),9.3.1中斷概述 1中斷與中斷源 中斷:使CPU暫停運(yùn)行原來的程序而應(yīng)更為急迫事件的需要轉(zhuǎn)向去執(zhí)行為中斷源服務(wù)的程序(稱為中斷服務(wù)程序),待該程序處理完后,再返回運(yùn)行原程序,此即中斷(或中斷技術(shù))。 中斷源,即引起中斷的事件或原因,或發(fā)出中斷申請(qǐng)的來源。通常中斷源有以下幾種:外部設(shè)備;實(shí)時(shí)時(shí)
8、鐘;故障源。 以上3種屬于隨機(jī)中斷源。由隨機(jī)引起的中斷,稱為強(qiáng)迫中斷。 還有一種為調(diào)試程序設(shè)置的中斷源。這是指CPU執(zhí)行了特殊指令(自陷指令)或由硬件電路引起的中斷,主要是供用戶調(diào)試程序時(shí)而采取的檢查手段。如斷點(diǎn)設(shè)置、單步調(diào)試等。這些都要由中斷系統(tǒng)實(shí)現(xiàn)。一般稱這種中斷為自愿中斷。,9.3.1中斷概述,2中斷系統(tǒng)及其功能 中斷系統(tǒng):為實(shí)現(xiàn)中斷而設(shè)置的各種硬件與軟件,包括中斷控制邏輯及相應(yīng)管理中斷的指令。 中斷系統(tǒng)具有下列功能: 1)能響應(yīng)中斷、處理中斷與返回 2)能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì) 3)高級(jí)中斷源能中斷低級(jí)的中斷 處理中斷嵌套的技術(shù)。,9.3.2單個(gè)中斷源的中斷,簡單的中斷過程應(yīng)包括:中斷請(qǐng)求、中
9、斷響應(yīng)、中斷處理和中斷返回等環(huán)節(jié)。 1.中斷源向CPU發(fā)中斷請(qǐng)求信號(hào)的條件 中斷源是通過其接口電路 向CPU發(fā)中斷請(qǐng)求信號(hào)的, 該信號(hào)能否發(fā)給CPU,應(yīng) 滿足下列兩個(gè)條件: 1)設(shè)置中斷請(qǐng)求觸發(fā)器 2)設(shè)置中斷屏蔽觸發(fā)器,9.3.2單個(gè)中斷源的中斷,2. CPU響應(yīng)中斷的條件 當(dāng)中斷源向CPU發(fā)出INTR信號(hào)后,CPU若要響應(yīng)它,還應(yīng)滿足下列條件。 1)CPU開放中斷 2)CPU在現(xiàn)行指令結(jié)束后響應(yīng)中斷,9.3.2單個(gè)中斷源的中斷,3. CPU響應(yīng)中斷及處理過程 1)關(guān)中斷 2)保留斷點(diǎn) CPU響應(yīng)中斷后,立即封鎖斷點(diǎn)地址,且把此值壓棧保護(hù),以備在中斷處理完畢后,CPU能返回?cái)帱c(diǎn)處繼續(xù)運(yùn)行主程
10、序。 3)保護(hù)現(xiàn)場(chǎng) 4)給出中斷入口(地址),轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序 8086/8088是由中斷源提供中斷類型號(hào),并根據(jù) 中斷類型號(hào)在中斷向量表中取得中斷服務(wù)程序 的起始地址。 5)恢復(fù)現(xiàn)場(chǎng) 這個(gè)操作是在中斷服務(wù)程序中用POP指令來完成的。 6)開中斷與返回,9.3.3向量中斷 向量中斷(Vectored Interrupt),是指通過中斷向量進(jìn)入中斷服務(wù)程序的一種方法;而中斷向量則是用來提供中斷入口地址的一個(gè)地址指針(即CS:IP)。 例如8086/8088 CPU的中斷系統(tǒng)就是采用這種向量中斷。 9.3.4中斷優(yōu)先權(quán) 在實(shí)際的系統(tǒng)中,具有多個(gè)中斷源,而CPU的可屏蔽中斷請(qǐng)求線往往只有一條。
11、如何解決多個(gè)中斷源同時(shí)請(qǐng)求中斷而只有一根中斷請(qǐng)求線的矛盾呢?這就要求CPU按多個(gè)中斷源的優(yōu)先權(quán)由高至低依次來響應(yīng)中斷申請(qǐng)。同時(shí),當(dāng)CPU正在處理中斷時(shí),還要能響應(yīng)更高級(jí)的中斷申請(qǐng),而屏蔽掉同級(jí)或低級(jí)的中斷申請(qǐng)。CPU可以通過軟件查詢技術(shù)或硬件排隊(duì)電路兩種方法來實(shí)現(xiàn)按中斷優(yōu)先權(quán)對(duì)多個(gè)中斷源的管理,也有專門用于協(xié)助CPU按中斷優(yōu)先權(quán)處理多個(gè)中斷源的中斷控制芯片,如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有兩條引腳供外部中斷源請(qǐng)求中斷:一條是高電平有效的可屏蔽中斷INTR;另一條是正跳變有效的非屏蔽中斷NMI。 1)可屏蔽中斷 可屏蔽中斷是由用戶定義的外部硬件中斷。當(dāng)8086/8088 CPU的INTR引腳上出現(xiàn)一高電平有效請(qǐng)求信號(hào)時(shí),它必須保持到當(dāng)前指令的結(jié)束。若IF=0,此時(shí)CPU是處于關(guān)中斷狀態(tài),則不響應(yīng)INTR;若IF=1,則CPU是處于開中斷狀態(tài),將響應(yīng)INTR,并通過引腳向產(chǎn)生INTR的設(shè)備接口(中斷源)發(fā)回響應(yīng)信號(hào),啟動(dòng)中斷過程。 8086/8088 CPU在發(fā)回第2個(gè)中斷響應(yīng)信號(hào)時(shí),將使發(fā)出中斷請(qǐng)求信號(hào)的接口把1字節(jié)的中斷類型號(hào)通過數(shù)據(jù)總線傳送給C
13、PU。由該中斷類型號(hào)指定了中斷服務(wù)程序入口地址在中斷向量表中的位置。 中斷允許標(biāo)志IF位的狀態(tài)可用指令STI使其置位,即開中斷;也可用CLI指令使其復(fù)位,即關(guān)中斷。,1外部中斷,1)可屏蔽中斷 2)非屏蔽中斷 當(dāng)8086/8088 CPU的NMI引腳上出現(xiàn)一上升沿的邊沿觸發(fā)有效請(qǐng)求信號(hào)時(shí),它將由CPU內(nèi)部的鎖存器將其鎖存起來。8086/8088要求NMI上的請(qǐng)求脈沖的有效寬度(高電平的持續(xù)時(shí)間)大于兩個(gè)時(shí)鐘周期。一旦此中斷請(qǐng)求信號(hào)產(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)部中斷:除法出錯(cuò)中斷類型0;溢出中斷類型4;單步中斷類型1;斷點(diǎn)中斷類型3;用戶定義的軟件中斷類型n。 應(yīng)著重掌握用戶定義的軟件中斷類型n。它是一個(gè)可由用戶定義的雙字節(jié)的中斷指令I(lǐng)NT n,其第1個(gè)字節(jié)為INT的操作碼,第2個(gè)字節(jié)n是它的中斷類型號(hào)。中斷類型號(hào)n由程序員編程時(shí)給定,用它指出中斷服務(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)先級(jí)排隊(duì)。 5) 作為軟件調(diào)試手段
15、,單步中斷是逐條地跟蹤調(diào)試,而斷點(diǎn)中斷(INT 3)是逐段地調(diào)試,它們均可用中斷服務(wù)程序在屏幕上顯示有關(guān)的各種信息。 6) 為了避開由外設(shè)硬件產(chǎn)生INTR中斷請(qǐng)求信號(hào)和提供中斷類型號(hào)的麻煩,可以用軟件中斷指令I(lǐng)NT nn來模擬外設(shè)提供的硬件中斷。,4中斷向量表,8086/8088中斷系統(tǒng)的中斷向量表中給出了與中斷類型對(duì)應(yīng)的256個(gè)中斷向量,每個(gè)向量包含4個(gè)字節(jié),2個(gè)低地址字節(jié)是IP偏移量, 2個(gè)高地址字節(jié)是CS段地址。用來存放256 個(gè)向量的中斷向量表需要占用1K字節(jié)的存 儲(chǔ)空間,且設(shè)置在存儲(chǔ)器的最低端(000H 3FFH)。這樣,每個(gè)中斷都可轉(zhuǎn)到1MB空 間的任何地方。,4中斷向量表,當(dāng)CP
16、U響應(yīng)中斷訪問中斷向量表時(shí),外設(shè)通過接口將一個(gè)8位的中斷類型編碼n放在數(shù)據(jù)總線上,CPU對(duì)編號(hào)n乘以4得到4n指向該中斷向量的首字節(jié);4n和4n+1單元中存放的是中斷向量的偏移地址值,其低字節(jié)在4n地址中,高字節(jié)在4n+1地址中;4n+2和4n+3單元中存放的是中斷 向量的段地址值,也是低 字節(jié)在前,高字節(jié)在后。 實(shí)現(xiàn)中斷轉(zhuǎn)移時(shí),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)所有中斷處理都包括中斷請(qǐng)求、中斷響應(yīng)、中斷處理和中斷返回4個(gè)基本過程。 (2)響應(yīng)順序均按預(yù)先設(shè)計(jì)的中斷優(yōu)先權(quán)來響應(yīng)。優(yōu)先權(quán)由高到低依次為:內(nèi)部中斷;NMI中斷;INTR中斷;單步中斷。 (3)CPU開始響應(yīng)中斷的時(shí)刻,在一般情況下,都要待當(dāng)前指令執(zhí)行完后方可響應(yīng)中斷申請(qǐng)。但有少數(shù)情況是在下一條指令完成之后才響應(yīng)中斷請(qǐng)求。例如,REP(重復(fù)前綴),LOCK(封鎖前綴)和段超越前綴等指令都應(yīng)當(dāng)將前綴看作指令的一部分,在執(zhí)行前綴和指令間不允許中斷。段寄存器的傳送指令MOV和段寄存器的彈出指令POP也是一樣,在執(zhí)行下條指令之前都不能響應(yīng)中斷。
18、(4)在WAIT指令和重復(fù)數(shù)據(jù)串操作指令執(zhí)行的過程中間可以響應(yīng)中斷請(qǐng)求,但必須要等一個(gè)基本操作或一個(gè)等待檢測(cè)周期完成后才能響應(yīng)中斷。 (5)由于NMI引腳上的中斷請(qǐng)求是需要立即處理的,所以在進(jìn)入執(zhí)行任何中斷(包括內(nèi)部中斷)服務(wù)程序之前,都要安排測(cè)試NMI引腳上是否有中斷請(qǐng)求,以保證它實(shí)際上有最高的優(yōu)先權(quán)。這時(shí)要為轉(zhuǎn)入執(zhí)行NMI中斷服務(wù)程序而再次保護(hù)現(xiàn)場(chǎng)和斷點(diǎn),并在執(zhí)行完NMI中斷服務(wù)程序后返回到所中斷的服務(wù)程序。,9.4.2 8086/8088的中斷處理過程,(6)若在執(zhí)行某個(gè)中斷服務(wù)時(shí)無NMI中斷發(fā)生,則接著去查看暫存寄存器TEMP的狀態(tài)。若TEMP1,則在中斷前CPU已處于單步工作方式,就
19、和NMI一樣重新保護(hù)現(xiàn)場(chǎng)和斷點(diǎn),轉(zhuǎn)入單步中斷服務(wù)程序。若TEMP0,也就是在中斷前CPU處于非單步工作方式,則這時(shí)CPU將轉(zhuǎn)去執(zhí)行最先引起中斷的中斷服務(wù)程序。 (7)待中斷處理程序結(jié)束時(shí),由中斷返回指令將堆棧中存放的IP、CS以及PSW值還原給指令指針I(yè)P、代碼段寄存器CS以及程序狀態(tài)字PSW。 注意:當(dāng)有多個(gè)中斷請(qǐng)求同時(shí)產(chǎn)生時(shí),8086/8088 CPU將根據(jù)各中斷源優(yōu)先權(quán)的高低來處理,首先響應(yīng)優(yōu)先權(quán)較高的中斷請(qǐng)求,等具有較高優(yōu)先權(quán)的中斷請(qǐng)求處理完以后,再去依次響應(yīng)和處理其他中斷申請(qǐng)。,9.4.3可屏蔽中斷的過程,1INTR中斷的全過程 圖中所示的是可屏蔽中斷從中斷發(fā)生到中斷 服務(wù)結(jié)束并返回
20、的整個(gè)操作過程。 CPU響應(yīng)NMI或內(nèi)部中斷請(qǐng)求時(shí)的操作順序 基本上與上述過程相同,只是不需要前3步 操作和讀取中斷類型碼。一旦CPU接到NMI 引腳上的中斷請(qǐng)求或內(nèi)部中斷請(qǐng)求時(shí),CPU 就會(huì)自動(dòng)地轉(zhuǎn)向它們各自的中斷服務(wù)程序。,9.4.3可屏蔽中斷的過程,2中斷類型號(hào)的獲得 獲得中斷類型號(hào)有3個(gè)途徑: (1) 除法錯(cuò)誤,單步中斷,非屏蔽中斷,斷點(diǎn)中斷和溢出中斷分別由CPU芯片內(nèi)的硬件自動(dòng)提供類型號(hào)04。 (2) 軟件中斷則是從INT n指令流中,即在第2個(gè)字節(jié)中讀得中斷類型號(hào)n。 (3) 外部中斷INTR可以用不同的方法獲得中斷類型號(hào)。例如,在PC系列微機(jī)中,可以由Intel 8259A芯片或
21、集成了8259A的超大規(guī)模集成外圍芯片來提供中斷類型號(hào)。,9.4.4中斷響應(yīng)時(shí)序,了解中斷響應(yīng)時(shí)序的組成以及中斷類型號(hào)的獲取方法與時(shí)間。,9.5可編程中斷控制器8259A,9.5.1 8259A的引腳與功能結(jié)構(gòu) 8259A是一個(gè)28引腳的雙列直插式芯片。要了解引腳的功能,較好地理解CAS0CAS2這3根級(jí)聯(lián)控制信號(hào)。,9.5.2 8259A內(nèi)部結(jié)構(gòu)框圖和中斷工作過程,18259A內(nèi)部結(jié)構(gòu)框圖 8259A中斷控制器包括8個(gè)主要功能部件,其內(nèi)部結(jié)構(gòu)框圖如圖所示。 8259A內(nèi)部除上述幾個(gè)處理8級(jí)中斷請(qǐng)求(IR0IR7)的功能部件IRR、ISR與PR之外,還有一組用于寄存控制命令字的8位寄存器。,9
22、.5.2 8259A內(nèi)部結(jié)構(gòu)框圖和中斷工作過程,28259A的中斷工作過程 8259A的8個(gè)功能部件組成一個(gè)有機(jī)的整體,共同協(xié)調(diào)處理其中斷工作過程。 難點(diǎn):當(dāng)CPU對(duì)某個(gè)中斷請(qǐng)求做出的中斷響應(yīng)結(jié)束后,8259A將如何根據(jù)一個(gè)名為方式控制器的結(jié)束方式位的不同設(shè)置,在不同時(shí)刻將ISR中置1“的中斷請(qǐng)求位復(fù)“0”。實(shí)際情況是:在自動(dòng)結(jié)束中斷(AEOI)方式下,8259A會(huì)將ISR中原來在第1個(gè)負(fù)脈沖到來時(shí)設(shè)置的“1”(即響應(yīng)此中斷請(qǐng)求位)在第2個(gè)脈沖結(jié)束時(shí),自行復(fù)位成“0”。若是非自動(dòng)結(jié)束中斷方式(EOI),則ISR中該位的“1”狀態(tài)將一直保持到中斷過程結(jié)束,由CPU發(fā)EOI命令才能復(fù)位成“0”。
23、8級(jí)中斷請(qǐng)求信號(hào)所對(duì)應(yīng)的中斷類型碼(或中斷向量)規(guī)定:其前5位T7T3由用戶在8259A初始化編程時(shí)選擇的,后3位則由8259A自動(dòng)插入的。,9.5.3 8259的控制字格式,8259A的中斷處理功能和各種工作方式,都是通過編程設(shè)置的。即對(duì)8259A內(nèi)部有關(guān)寄存器寫入控制命令字來實(shí)現(xiàn)控制的。 按照控制字功能及設(shè)置的要求不同,可分為兩種 類型的命令字: (1)初始化命令字ICW:ICW1ICW4,它們必須在 初始化時(shí)分別寫入4個(gè)相應(yīng)的寄存器。并且,一旦 寫入,一般在系統(tǒng)運(yùn)行過程中就不再改變。 (2)工作方式命令字或操作命令字OCW:OCW1OCW3, 它們必須在設(shè)置初始化命令后方能分別寫入3個(gè)相
24、應(yīng) 的寄存器。它們用來對(duì)中斷處理過程進(jìn)行動(dòng)態(tài)的操作 與控制。在一個(gè)系統(tǒng)運(yùn)行過程中,操作命令字可以 被多次設(shè)置。,1初始化命令字,1) ICW1 ICW1叫芯片控制初始化命令字,用于啟動(dòng)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)志寄存器,它只用于級(jí)聯(lián)方式。寫ICW3的標(biāo)記為:A01。,1初始化命令字 3) ICW3 在I
25、BM PC/XT機(jī)中,僅用1片8259A,能提供8級(jí)中斷請(qǐng)求。在IBM PC/AT機(jī)中用2片8259A組成級(jí)聯(lián)方式,最多可以提供15級(jí)中斷請(qǐng)求。,1初始化命令字 4)ICW4 ICW4叫方式控制初始化命令字。該字寫入8位的方式控制寄存器。寫ICW4控制字標(biāo)記為:A01。,2操作命令字,當(dāng)8259A經(jīng)預(yù)置ICWi后已進(jìn)入初始化狀態(tài),便可接收來IRi端的中斷請(qǐng)求。然后自動(dòng)進(jìn)入操作命令狀態(tài),準(zhǔn)備接收由CPU寫入8259A的操作命令字OCWi。 1) OCW1 寫OCW1的標(biāo)記為:01。OCW1用來寫入IMR寄存器。,2操作命令字,2) OCW2 OCW2是用來設(shè)置中斷優(yōu)先級(jí)循環(huán)方式和中斷結(jié)束方式的操
26、作命令字。 寫OCW2的標(biāo)記為:A00、D3D40,OCW2的編碼及功能說明,2操作命令字,3) OCW3 OCW3叫多功能操作命令字。 寫OCW3的標(biāo)記為:A00、D7D40、D21。該命令字有項(xiàng)功能:一是設(shè)置和撤消特殊屏蔽方式;二是設(shè)置中斷查詢方式;三是設(shè)置對(duì)8259A內(nèi)部寄存器的讀出命令。,9.5.4 8259A應(yīng)用舉例,在IBM PC/XT機(jī)中,只采用了1片8259A中斷控制器來提供8級(jí)中斷請(qǐng)求,其中IR0優(yōu)先級(jí)最高,IR7優(yōu)先級(jí)最低。它們分別用于日歷時(shí)鐘中斷、鍵盤中斷、保留、網(wǎng)絡(luò)通信、異步通信中斷、硬盤中斷、軟盤中斷及打印機(jī)中斷。8259A片選地址設(shè)定為20H、21H。 1初始化 M
27、OVAL,13H;寫ICW1,單片,邊沿觸發(fā),要ICW4 OUT20H,AL MOVAL,8;寫ICW2,中斷類型號(hào)從8開始 OUT21H,AL MOVAL,0DH;寫ICW4,緩沖工作方式,8088/8086配置 OUT21H,AL MOVAL,0;寫OCW1,允許IR0IR7全部8級(jí)中斷請(qǐng)求 OUT21H,AL,2送中斷向量入口地址 例如,異步通信中斷IR4,其中斷向量類型號(hào)為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í)高的中斷進(jìn)入,只要在進(jìn)入中斷處理程序后,執(zhí)行開中斷指令STI即可達(dá)到此目的。,9.5.4 8259A應(yīng)用舉例,9.6計(jì)數(shù)/定時(shí)控制技術(shù),在微機(jī)應(yīng)用中,一般常用可編程計(jì)數(shù)器/定時(shí)器8253-5來進(jìn)行計(jì)數(shù)/定時(shí)控
29、制。 9.6.1 8253-5的引腳與功能結(jié)構(gòu) 8253-5是一種24腳封裝的雙列直插式芯片。 功能:計(jì)數(shù)與定時(shí),兩者的工作原理在實(shí)質(zhì)上是一樣的,都是利用計(jì)數(shù)器作減1計(jì)數(shù),減至0發(fā)信號(hào);兩者的差別只是用途不同。,9.6.28253-5的內(nèi)部結(jié)構(gòu)和尋址方式,1內(nèi)部結(jié)構(gòu) 8253-5的內(nèi)部結(jié)構(gòu)如圖所示。它有3個(gè)獨(dú)立結(jié)構(gòu)完全相同的16位計(jì)數(shù)器和1個(gè)8位控制字寄存器。,2尋址方式,8253-5的尋址與相應(yīng)操作,9.6.3 8253-5的6種工作方式及時(shí)序關(guān)系,8253-5的各計(jì)數(shù)器都有6種可供選擇的工作方式,以完成定時(shí)、計(jì)數(shù)或脈沖發(fā)生器等多種功能。,1方式0 計(jì)數(shù)結(jié)束產(chǎn)生中斷,8253-5方式0有以下
30、特點(diǎn): (1)當(dāng)寫入控制字后,OUT端輸出低電平作為起始電平,在有兩個(gè)負(fù)脈沖寬度的信號(hào)的上升沿將初值寫入初值寄存器CR, 待計(jì)數(shù)初值裝入計(jì)數(shù)器后,輸出仍 保持低電平。 (2)GATE為計(jì)數(shù)控制門。 (3)計(jì)數(shù)過程中可重新裝入計(jì)數(shù)初值。 8253-5利用方式0既可計(jì)數(shù),也可定時(shí)。,2方式1可編程單穩(wěn)觸發(fā)器,8253-5方式1有以下特點(diǎn): (1)當(dāng)寫入控制字后,OUT端將輸出高電平作為起始電平。 (2)工作時(shí),由GATE輸入觸發(fā)脈沖的上升沿使OUT變?yōu)榈碗娖?,每來一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器作減1計(jì)數(shù),當(dāng)計(jì)數(shù)值減為0時(shí),OUT再變?yōu)楦唠娖健?(3)如果在計(jì)數(shù)器未減到0時(shí),門控端GATE 又來一個(gè)觸發(fā)脈沖,
31、則由下一個(gè)時(shí)鐘脈沖開 始,計(jì)數(shù)器將從原有的初始值(n=4)重新作 減1計(jì)數(shù)。當(dāng)減至0時(shí),輸出端又變?yōu)楦唠娖健?這樣,使輸出脈沖寬度延長。 (4)若在計(jì)數(shù)過程中,又寫入一個(gè)新的計(jì)數(shù) 初值,它并不影響本次計(jì)數(shù)過程,輸出也 不變。只是在下一次觸發(fā)時(shí),計(jì)數(shù)器按新的 輸入初值重新計(jì)數(shù)。,3方式2分頻器(又叫分頻脈沖產(chǎn)生器),方式2是n分頻計(jì)數(shù)器,n是寫入計(jì)數(shù)器的初值。 當(dāng)計(jì)數(shù)器的控制寄存器寫入控制字后,OUT端輸出高電平作為起始電平。當(dāng)計(jì)數(shù)初值(圖中給出了兩個(gè)初值即n=4或n=3)在信號(hào)的上升沿寫入計(jì)數(shù)器后,從下一個(gè)時(shí)鐘脈沖起,計(jì)數(shù)器開始作減1計(jì)數(shù)。當(dāng)減到1(而不是減 到0)時(shí),OUT端輸出將變?yōu)榈碗娖?/p>
32、。當(dāng) 計(jì)數(shù)端CLK輸入n個(gè)計(jì)數(shù)脈沖后,在輸出 端OUT輸出一個(gè)n分頻脈沖,其正脈沖寬 度為(n1)個(gè)輸入脈沖時(shí)鐘周期,而 負(fù)脈沖寬度只是一個(gè)輸入脈沖時(shí)鐘周期。 GATE用來控制計(jì)數(shù),GATE1,允許計(jì)數(shù); GATE0,停止計(jì)數(shù)。 注意:在方式2下,不但高電平的 門控信號(hào)有效,上升跳變的門控信號(hào) 也是有效的。,4方式3方波頻率發(fā)生器,方式3類似于方式2,也有兩種啟動(dòng)方式,并具有自動(dòng)裝入計(jì)數(shù)初值的功能,但輸出的波形為方波或者為近似對(duì)稱的矩形波。 注意:如果在計(jì)數(shù)過程中,GATE變?yōu)榈碗娖?,則暫停減1計(jì)數(shù),直到GATE再次表為高電平有效,重新從初值n開始減1計(jì)數(shù)。,5方式4 軟件觸發(fā)選通脈沖,按方式
33、4工作時(shí),計(jì)數(shù)器寫入控制字后,輸出的OUT信號(hào)變?yōu)楦唠娖健.?dāng)由軟件觸發(fā)寫入初始值n(此例中n=4)經(jīng)過1個(gè)時(shí)鐘周期后,若GATE1,允許計(jì)數(shù),則計(jì)數(shù)器在一個(gè)時(shí)鐘脈沖之后開始作減1計(jì)數(shù),當(dāng)計(jì)數(shù)器減到0時(shí),在OUT端輸出一個(gè)寬度等于一個(gè)計(jì)數(shù)脈沖周期的負(fù)脈沖。若GATE0,則停止計(jì)數(shù),n保持為4;只有在GATE恢復(fù)高電平之后才重新計(jì)數(shù),即由n=4開始減1計(jì)數(shù),直至減至0才發(fā)出一個(gè)選通負(fù)脈沖。 注意:方式4是通過軟件寫入新的計(jì)數(shù)值來使計(jì)數(shù)器重新工作的,故稱為軟件觸發(fā)選通脈沖方式。,6方式5 硬件觸發(fā)選通脈沖,方式5類似于方式4,所不同的是GATE端輸入信號(hào)的作用不同。 按方式5工作時(shí),由GATE輸入觸
34、發(fā)脈沖,從其上升沿開始,計(jì)數(shù)器作減1計(jì)數(shù),計(jì)數(shù)結(jié)束時(shí),在OUT端輸出一個(gè)寬度等于一個(gè)計(jì)數(shù)脈沖周期的負(fù)脈沖。在此方式中,計(jì)數(shù)器可重新觸發(fā)。在任何時(shí)刻,當(dāng)GATE觸發(fā)脈沖上升沿到來時(shí),將把計(jì)數(shù)初值重新送入計(jì)數(shù)器,然后開始計(jì)數(shù)過程。 注意:方式5的選通負(fù)脈沖是通過硬件電路產(chǎn)生的門控信號(hào)GATE上升沿觸發(fā)后得到的,故稱為硬件觸發(fā)選通脈沖方式。,9.6.4 8253應(yīng)用舉例,在IBMPC/XT機(jī)中,8253-5是CPU外圍支持電路之一,為系統(tǒng)電子鐘提供時(shí)間基準(zhǔn),為動(dòng)態(tài)RAM刷新提供定時(shí)信號(hào)以及作為揚(yáng)聲器的聲源等功能。 從圖可知,8253-5芯片的3個(gè)計(jì)數(shù)器使用相同的時(shí)鐘脈沖。CLK0CLK2的頻率是PC
35、LK(2.38MHz)的1/2,即1.19MHz,這由U22分頻實(shí)現(xiàn)。8253-5的3個(gè)計(jì)數(shù)器端口地址為:40H、41H、42H??刂萍拇嫫鞫丝诘刂窞?3H。,3個(gè)計(jì)數(shù)器的用途,1)計(jì)數(shù)器0 向系統(tǒng)日歷時(shí)鐘提供定時(shí)中斷,選用方式3工作,控制字為36H。計(jì)數(shù)器值預(yù)置為0(即65536),GATE0接+5V,允許計(jì)數(shù)。OUT0輸出時(shí)鐘頻率為1.19MHz/6553618.21Hz。它直接接到中斷控制器8259A的中斷請(qǐng)求端IR0,即0級(jí)中斷,每秒出現(xiàn)18.2次。每間隔55ms產(chǎn)生一次0級(jí)中斷請(qǐng)求。每一個(gè)輸出脈沖均以其正跳變產(chǎn)生一次中斷。 2)計(jì)數(shù)器1 向DMA控制器定時(shí)發(fā)動(dòng)態(tài)存儲(chǔ)器刷新請(qǐng)求,選用方
36、式2工作,控制字為54H。計(jì)數(shù)器初始值為18,GATE1接+5V,允許計(jì)數(shù)。OUT1輸出分頻脈沖頻率為1.19MHz/1866.1KHz,相當(dāng)于周期為15.1S。計(jì)數(shù)器1每隔15.1s經(jīng)由U21產(chǎn)生一個(gè)動(dòng)態(tài)RAM刷新的請(qǐng)求信號(hào)DRQ0。 3)計(jì)數(shù)器2 控制喇叭發(fā)聲音調(diào),用方式3工作,控制字為B6H,計(jì)數(shù)器的初值置533H(即1331),OUT2輸出方波頻率為1.19MHz/1331894Hz。該計(jì)數(shù)器的工作由主機(jī)板8255A的PB0端控制。當(dāng)PB0輸出的TIME2GATESPK為高電平時(shí),計(jì)數(shù)器方能工作。OUT2的輸出與8255A PB1端產(chǎn)生的喇叭音響信號(hào)SPKRDATA在U87相與后送到功
37、放驅(qū)動(dòng)芯片75477的輸入端A。,本章小結(jié),輸入/輸出接口是微處理器同外部設(shè)備之間信息交換的重要樞紐。CPU對(duì)外設(shè)的IO操作類似于存儲(chǔ)器的讀寫操作。主存儲(chǔ)器可以與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)實(shí)現(xiàn)的。中斷系統(tǒng)應(yīng)能響應(yīng)中斷、處理中斷與返回;還能能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì);并且能夠?qū)崿F(xiàn)中斷嵌套。 8
38、086/8088的中斷系統(tǒng)采用中斷向量結(jié)構(gòu),使每個(gè)不同的中斷都可以通過給定一個(gè)特定的中斷類型號(hào)(或中斷類型碼)供CPU識(shí)別,來處理多達(dá)256種類型的中斷。這些中斷可以來自外部,即由硬件產(chǎn)生,也可以來自內(nèi)部,即由軟件(中斷指令)產(chǎn)生,或者滿足某些特定條件(陷阱)后引發(fā)CPU中斷。 8086/8088 CPU有可屏蔽中斷INTR與非屏蔽中斷NMI兩條引腳來接受外部硬件中斷請(qǐng)求。可屏蔽中斷要受標(biāo)志寄存器的中斷允許標(biāo)志位IF的控制,而非屏蔽中斷不受標(biāo)志寄存器的中斷允許標(biāo)志位IF的控制。 8086/8088 CPU內(nèi)部中斷又叫軟件中斷,它包括除法出錯(cuò)中斷(類型0)、溢出中斷(類型4)、單步中斷(類型1)與斷點(diǎn)中斷(類型3);還有用戶定義的軟件中斷(類型n)。,本章小結(jié),8086/8088 CPU中斷處理的過程比較復(fù)雜。首先要掌握單個(gè)中斷源的基本中斷處理過程,即:中斷請(qǐng)求,中斷響應(yīng),中斷處理和中斷返回。當(dāng)同時(shí)發(fā)生多個(gè)中斷請(qǐng)求時(shí),CPU將根據(jù)各
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保密工作專題黨課
- 小學(xué)安全生產(chǎn)匯報(bào)講解
- 安全生產(chǎn)月自查清單講解
- 安全防控大數(shù)據(jù)教育培訓(xùn)課件
- 安全防護(hù)設(shè)施使用培訓(xùn)課件
- 2026年二維材料化學(xué)與能源應(yīng)用研究組(508組)事業(yè)編制外項(xiàng)目聘用人員招聘?jìng)淇碱}庫含答案詳解
- 2026年中山市燈都工程有限公司公開招聘工作人員備考題庫及一套完整答案詳解
- 放電加工安全培訓(xùn)內(nèi)容課件
- 2026年廈門市海滄區(qū)鰲冠學(xué)校頂崗教師招聘?jìng)淇碱}庫及答案詳解1套
- 安全防患培訓(xùn)內(nèi)容摘要課件
- 【《基于杜邦分析的比亞迪公司盈利能力分析》9400字(論文)】
- 智慧林業(yè)云平臺(tái)信息化建設(shè)詳細(xì)規(guī)劃
- 培養(yǎng)方案修訂情況匯報(bào)
- 監(jiān)控綜合維保方案(3篇)
- 犢牛獸醫(yī)工作總結(jié)
- JJF(陜) 125-2025 醫(yī)用移動(dòng)式 C 形臂 X 射線輻射源校準(zhǔn)規(guī)范
- T/CCOA 33-2020平房倉氣密改造操作規(guī)范
- 自行車購車協(xié)議合同
- 2025萍鄉(xiāng)市湘東區(qū)輔警考試試卷真題
- 幼兒基本律動(dòng)培訓(xùn)
- 認(rèn)知障礙門診管理制度
評(píng)論
0/150
提交評(píng)論