西安電子科技大學(xué)微機(jī)原理第7章_第1頁
西安電子科技大學(xué)微機(jī)原理第7章_第2頁
西安電子科技大學(xué)微機(jī)原理第7章_第3頁
西安電子科技大學(xué)微機(jī)原理第7章_第4頁
西安電子科技大學(xué)微機(jī)原理第7章_第5頁
已閱讀5頁,還剩195頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2021-10-241第7章 輸入/輸出系統(tǒng)22021-10-24第7章 輸入/輸出系統(tǒng) n7.1 I/O接口技術(shù)概述 n7.2 CPU與外設(shè)之間數(shù)據(jù)傳送的方式 n7.3 中斷系統(tǒng) n7.4 8086/8088中斷系統(tǒng) n7.5 可編程中斷控制器Intel8259A n7.6 DMA傳送和DMA控制器8237 32021-10-247.1 I/O接口技術(shù)概述 n主機(jī)與外界交換信息稱為輸入/輸出(I/O)n主機(jī)與外界的信息交換是通過輸入/輸出設(shè)備進(jìn)行的 42021-10-247.1.1 I/O接口 n對(duì)于主機(jī),I/O接口提供了外部設(shè)備的工作狀態(tài)及數(shù)據(jù)n對(duì)于外部設(shè)備,I/O接口記憶了主機(jī)送給外設(shè)的

2、一切命令和數(shù)據(jù)n使主機(jī)與外設(shè)之間協(xié)調(diào)一致地工作 52021-10-24主機(jī)與外設(shè)的連接 圖7-1 主機(jī)與外設(shè)的連接 62021-10-24I/O接口的作用 n外部設(shè)備不能直接和CPU數(shù)據(jù)總線相連,要借助于接口電路使外設(shè)與總線隔離,起緩沖、暫存數(shù)據(jù)的作用,并協(xié)調(diào)主機(jī)和外設(shè)間數(shù)據(jù)傳送速度不配的矛盾;n接口電路為主機(jī)提供有關(guān)外設(shè)的工作狀態(tài)信息及傳送主機(jī)送給外設(shè)的控制命令;n借助于接口電路對(duì)信息的傳輸形式進(jìn)行變換。 72021-10-247.1.2 CPU與外設(shè)交換的信息 nPC機(jī)與I/O設(shè)備之間交換的信息可分為數(shù)據(jù)信息、狀態(tài)信息和控制信息三類n在接口中,這三種信息是在不同的寄存器中分別存放的 820

3、21-10-241數(shù)據(jù)信息 n數(shù)據(jù)信息可以通過輸入設(shè)備送到計(jì)算機(jī)的輸入數(shù)據(jù),也可以是經(jīng)過計(jì)算機(jī)運(yùn)算處理和加工后,送到輸出設(shè)備的結(jié)果數(shù)據(jù)n傳送可以是并行的,也可以是串行的 92021-10-242. 狀態(tài)信息 n狀態(tài)信息作為CPU與外設(shè)之間交換數(shù)據(jù)時(shí)的聯(lián)絡(luò)信息,反映了當(dāng)前外設(shè)所處的工作狀態(tài),是外設(shè)通過接口送往CPU的n狀態(tài)信息能夠保障CPU與外設(shè)正確地進(jìn)行數(shù)據(jù)交換 102021-10-243控制信息 n控制信息是CPU通過接口傳送給外設(shè)的,CPU通過發(fā)送控制信息設(shè)置外設(shè)(包括接口)的工作模式、控制外設(shè)的工作 112021-10-247.1.3 I/O接口的功能和基本結(jié)構(gòu) 1.接口的功能 n實(shí)現(xiàn)主

4、機(jī)和外設(shè)的通信聯(lián)絡(luò)控制 n進(jìn)行地址譯碼和設(shè)備選擇 n實(shí)現(xiàn)數(shù)據(jù)緩沖 n數(shù)據(jù)格式的變換 n傳遞控制命令和狀態(tài)信息 122021-10-242.接口的基本結(jié)構(gòu) 圖7-2 一個(gè)典型的I/O接口 132021-10-24注意n輸入/輸出操作所用到的地址總是對(duì)端口而言,而不是對(duì)接口而言的n接口和端口是兩個(gè)不同的概念,若干個(gè)端口加上相應(yīng)的控制電路才構(gòu)成接口 142021-10-243.接口的類型 (1)按數(shù)據(jù)傳送方式分類 n并行接口。外設(shè)和I/O接口間的傳送寬度是一個(gè)字節(jié)(或字)的所有位,具有一次傳輸信息量大,數(shù)據(jù)線數(shù)目隧傳送數(shù)據(jù)寬度增加而增加的特點(diǎn);n串行接口。外設(shè)和I/O接口間的傳送數(shù)據(jù)是一位一位串行傳

5、輸?shù)?,具有一次傳輸信息量小,?shù)據(jù)線只需一條的特點(diǎn)。 152021-10-24(2)按主機(jī)訪問I/O設(shè)備的控制方式分類 n分為程序查詢式接口、程序中斷接口和DMA接口等 162021-10-24(3)按功能選擇的靈活性分類 n可編程接口。功能及操作方式是由程序來改變或選擇的n不可編程接口。不可編程接口則不能由編程來改變其功能,只能用硬連線邏輯來實(shí)現(xiàn)不同的功能 172021-10-24(4)按通用性分類 n有通用接口。可供多種外設(shè)使用的標(biāo)準(zhǔn)接口,通用性強(qiáng)n專用接口。是為某類外設(shè)或某種用途專門設(shè)計(jì)的 182021-10-24(5)按輸入輸出的信號(hào)分類 n數(shù)字接口。輸入輸出全為數(shù)字信號(hào)n模擬接口。模數(shù)

6、轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器屬于模擬接口 192021-10-24(6)按應(yīng)用來分類 n運(yùn)行輔助接口。該接口是計(jì)算機(jī)日常工作所必需的接口器件,包括:數(shù)據(jù)總線、地址總線和控制總線的驅(qū)動(dòng)器和接收器、時(shí)鐘電路、磁盤接口和磁帶接口。n用戶交互接口。這類接口包括:計(jì)算機(jī)終端接口、鍵盤接口、圖形顯示器接口及語音識(shí)別與合成接口等。n傳感接口。如溫度傳感接口、壓力傳感接口和流量傳感接口等。n控制接口。這類接口用于計(jì)算機(jī)控制系統(tǒng)。 202021-10-247.1.4 I/O端口的編址 nI/O端口實(shí)際上指那些在接口電路中完成信息的傳送,并可由編程人員尋址進(jìn)行讀/寫的寄存器。若干個(gè)口加上相應(yīng)的控制電路而構(gòu)成接口n一個(gè)接口往

7、往含有幾個(gè)端口nCPU可通過輸入/輸出指令向這些端口取或存信息nPC系統(tǒng)中I/O端口編址方式有兩種:I/O端口與內(nèi)存單元統(tǒng)一編址和 I/O端口與內(nèi)存單元獨(dú)立編址 212021-10-241I/O端口與內(nèi)存單元統(tǒng)一編址 圖7-3 I/O端口與內(nèi)存單元統(tǒng)一編址 222021-10-24統(tǒng)一編址方式特點(diǎn)nCPU對(duì)I/O端口的輸入/輸出操作如同對(duì)存儲(chǔ)單元的讀/寫操作一樣無需專門的I/O指令,簡(jiǎn)化了指令系統(tǒng)的設(shè)計(jì)n對(duì)存儲(chǔ)器的各種尋址方式也同樣適用于對(duì)I/O端口的訪問,給使用者提供了很大的方便n不足之處在于I/O端口地址占用了一部分存儲(chǔ)器空間n訪問指令長(zhǎng)度一般比專用的I/O指令長(zhǎng),從而取指周期較長(zhǎng),又多占

8、了指令字節(jié) 232021-10-242I/O端口與內(nèi)存單元獨(dú)立編址 圖7-4 I/O端口與內(nèi)存單元獨(dú)立編址 242021-10-24獨(dú)立編址方式特點(diǎn)n存儲(chǔ)器地址空間不受I/O端口地址空間的影響,專用的輸入/輸出指令與訪問存儲(chǔ)器指令有明顯區(qū)別,便于理解和檢查n專用I/O指令增加了指令系統(tǒng)復(fù)雜性nI/O指令類型少,程序設(shè)計(jì)靈活性較差n要求CPU提供專門的控制信號(hào)以區(qū)分對(duì)存儲(chǔ)器和I/O端口的操作,增加了控制邏輯的復(fù)雜性 252021-10-248086/8088的獨(dú)立編址方式 262021-10-243I/O端口的地址譯碼 nPC系統(tǒng)常用的I/O接口電路一般都被設(shè)計(jì)成通用的I/O接口芯片,一個(gè)接口芯

9、片內(nèi)部可以有若干可尋址的端口n所有接口芯片都有片選信號(hào)線和用于片內(nèi)端口尋址的地址線 272021-10-248位接口與16位數(shù)據(jù)總線D0D7的連接方法 圖 7-5 8位接口與16位數(shù)據(jù)總線D0D7的連接方法 282021-10-248位接口與16位數(shù)據(jù)總線的連接方法 圖 7-6 8位接口與16位數(shù)據(jù)總線的連接方法 292021-10-24舉例【例4-1】 在8086 CPU工作在最小方式組成的系統(tǒng)中,擴(kuò)充設(shè)計(jì)一個(gè)數(shù)據(jù)輸入/輸出端口,分配輸出端口地址為8620H,輸入端口的地址為8621H。輸入端口芯片用緩沖器74LS244,輸入設(shè)備為8個(gè)乒乓開關(guān)。輸出端口芯片用鎖存器74LS373,輸出設(shè)備為

10、8個(gè)發(fā)光二極管。(1)畫出此輸入/輸出端口與8086系統(tǒng)總線以及與輸入/輸出設(shè)備的連接圖。(2)編寫程序檢測(cè)K0K7開關(guān)。若K0K7斷開,發(fā)光二極管不發(fā)光;若K0K7閉合,發(fā)光二極管發(fā)光。 302021-10-24分析解:由于為8086系統(tǒng)為16位數(shù)據(jù)線,且端口地址8620H為偶地址,使用低8位數(shù)據(jù)線D7D0,且在I/O端口地址譯碼中,A0=0要參加譯碼。8621H為奇地址,使用高8位數(shù)據(jù)線D15D8,且在I/O端口地址譯碼中, =0要參加譯碼。 BHE312021-10-24(1)8086系統(tǒng)總線以及與輸入/輸出設(shè)備的連接圖 322021-10-24程序段 MOV DX,8621HIN AL

11、,DXNOT ALDEC DXOUT DX,AL332021-10-248.1.5 I/O端口讀/寫技術(shù) nIBM PC/XT I/O地址線有16條,對(duì)應(yīng)的I/O端口地址空間為64KBnIBM公司當(dāng)初設(shè)計(jì)PC機(jī)主板及規(guī)劃接口卡時(shí),其端口地址譯碼采用的是部分譯碼方式,即只考慮了低10位地址線A0A9n其I/O端口地址范圍是0000H03FFH,總共只有1024個(gè)端口n前512個(gè)端口(A9=0)分配給了系統(tǒng)板n后512個(gè)端口(A9=1)分配給了擴(kuò)展槽上的常規(guī)I/O設(shè)備,即0200H03FFH地址范圍作為擴(kuò)展插槽用的端口地址,用戶接口一般在此范圍進(jìn)行地址譯碼 342021-10-241.IBM PC

12、/XT機(jī)的系統(tǒng)總線 nIMB PC/XT系統(tǒng)總線的微處理器是8088 CPU,總線的地址為20位,數(shù)據(jù)線為8位,稱其為8位總線n80286 CPU組成的IBM PC/AT系統(tǒng)級(jí)總線稱為ISA(Industry Standard Architecture)總線,又稱PC/AT總線 352021-10-241)地址總線 nA0A19,方向?yàn)檩敵觯窍到y(tǒng)存儲(chǔ)器和I/O端口公用的地址總線n存儲(chǔ)器地址選擇時(shí),20位地址總線全部采用nI/O端口地址譯碼只用其中的A0A9共10條線 362021-10-242)數(shù)據(jù)總線 nD0D7,數(shù)據(jù)總線,雙向 372021-10-243)控制總線 (1)擴(kuò)充板上存儲(chǔ)器操

13、作需要的控制信號(hào)線 n ,方向?yàn)檩敵?,存?chǔ)器讀控制信號(hào),低電平有效n ,方向?yàn)檩敵?,存?chǔ)器寫控制信號(hào),低電平有效MEMRMEMW382021-10-24(2)I/O讀/寫操作需要的控制信號(hào)線 n ,方向?yàn)檩敵?,I/O端口讀操作控制信號(hào),低電平有效n ,方向?yàn)檩敵?,I/O端口寫操作控制信號(hào),低電平有效nAEN,方向?yàn)檩敵?,控制信?hào)。在DMA操作時(shí)為高;執(zhí)行IN和OUT指令時(shí)為低 n ,外部輸入信號(hào),低電平有效。在擴(kuò)充板上的存儲(chǔ)器或I/O端口上。如果校驗(yàn)有錯(cuò)產(chǎn)生低電平加入,將引起NMI中斷 OCHCK/ IIOWIOR392021-10-24(3)存儲(chǔ)器讀/寫和I/O讀/寫需要的信號(hào)線 nALE,

14、輸出的“地址鎖存”控制信號(hào)nI/OCHRDY,外部輸入信號(hào)。它向CPU提供是否“準(zhǔn)備好”信息。實(shí)現(xiàn)CPU操作與低速外設(shè)操作在時(shí)間上的同步 402021-10-24(4)中斷請(qǐng)求信號(hào)線 nIRQ2IRQ7,27級(jí)的中斷請(qǐng)求信號(hào)輸入端n允許有6個(gè)外部的中斷信號(hào)源n這6級(jí)中,級(jí)2優(yōu)先級(jí)最高,級(jí)7優(yōu)先級(jí)最低n級(jí)0和級(jí)1被主機(jī)板上定時(shí)中斷和鍵盤中斷占用 412021-10-24(5)DMA操作請(qǐng)求和響應(yīng)信號(hào)線 nDRQ1DRQ3,方向?yàn)檩斎?,高電平信?hào)有效。 3 個(gè)通道的DMA傳送請(qǐng)求信號(hào)端。DRQ1的級(jí)別最高,DRQ3的級(jí)別最低。DRQ0在主機(jī)板內(nèi)部,用于控制動(dòng)態(tài)存儲(chǔ)器的刷新n ,方向?yàn)檩敵?,低電平?/p>

15、效。是CPU對(duì)DMA請(qǐng)求的回答(允許)信號(hào),它們分別對(duì)應(yīng)DRQ0、DRQ1DRQ3,nT/C,方向?yàn)檩敵?,來自于DMA控制器,當(dāng)某個(gè)通道計(jì)數(shù)到終值(0)時(shí),該端輸出高電平信號(hào) 0DACK3DACK422021-10-24(4)其它信號(hào)線 nOSC,輸出信號(hào),輸出14.318 MHz的方波 nCLK,輸出信號(hào),是OSC信號(hào)經(jīng)過三分頻形成的4.77 MHz基本時(shí)鐘脈沖 nRESETDRV,輸出信號(hào),在系統(tǒng)加電或復(fù)位時(shí)產(chǎn)生,在時(shí)間上與時(shí)鐘信號(hào)的下降邊同步,高電平有效,用于對(duì)接口或外設(shè)的初始化 n電源輸出為+5V、-5V、+12V、-12V和GN 432021-10-242.I/O指令需要的接口邏輯

16、n輸入指令(IN)的源操作數(shù)地址是一個(gè)I/O端口地址,目的為AL或AX寄存器n輸出指令(OUT)的源操作數(shù)在AL或AX寄存器中,目的為一個(gè)I/O端口地址 nI/O指令執(zhí)行時(shí),都必須有I/O端口地址的選擇 442021-10-24單端口部分地址譯碼電路圖7-7單端口部分地址譯碼電路 452021-10-247.2 CPU與外設(shè)之間數(shù)據(jù)傳送的方式 n程序控制的輸入/輸出方式 n程序中斷的輸入/輸出方式 n直接存儲(chǔ)器存取(DMA)方式 462021-10-247.2.1程序傳送方式 n程序控制的輸入/輸出方式是指在程序的編制中利用I/O指令來完成CPU與接口間交換信息的一種方式n根據(jù)外設(shè)性質(zhì)的不同,

17、這種傳送方式又可分為無條件傳送及有條件傳送兩種 472021-10-241無條件傳送方式 圖 7-8 無條件數(shù)據(jù)傳送 482021-10-24無條件傳送方式結(jié)構(gòu) 圖7-9 無條件傳送方式(a) 無條件傳送數(shù)據(jù)輸入;(b) 無條件傳送數(shù)據(jù)輸出 492021-10-24無條件傳送方式特點(diǎn)n程序設(shè)計(jì)和接口電路都很簡(jiǎn)單n為保證每一次數(shù)據(jù)傳送時(shí)外設(shè)都能處于就緒狀態(tài),傳送不能太頻繁n對(duì)少量的數(shù)據(jù)傳送來說,無條件傳送方式是最經(jīng)濟(jì)實(shí)用的一種傳送方法 502021-10-242程序直接控制傳送方式(查詢傳送方式) n查詢傳送也稱為條件傳送,是指在執(zhí)行輸入指令(IN)或輸出指令(OUT)前,要先查詢相應(yīng)設(shè)備的狀態(tài)

18、,CPU才執(zhí)行輸入/輸出指令與外設(shè)交換信息 512021-10-24有條件數(shù)據(jù)傳送流程圖 7-10 有條件數(shù)據(jù)傳送 522021-10-24查詢式輸入的接口電路圖7-11 查詢式輸入的接口電路 532021-10-24查詢式輸出的接口電路圖7-12 查詢式輸出的接口電路 542021-10-24查詢傳送方式特點(diǎn)n主要優(yōu)點(diǎn)是能保證主機(jī)與外設(shè)之間協(xié)調(diào)同步地工作,且硬件線路比較簡(jiǎn)單,程序也容易實(shí)現(xiàn)n缺點(diǎn):浪費(fèi)CPU時(shí)間,實(shí)時(shí)性差。不能發(fā)現(xiàn)和處理預(yù)先無法估計(jì)的錯(cuò)誤和異常情況n適用于數(shù)據(jù)輸入/輸出不太頻繁且外設(shè)較少、對(duì)實(shí)時(shí)性要求不高的情況552021-10-24舉例【例7-1】如一輸出設(shè)備接口的狀態(tài)端口

19、(8位)地址為PS,狀態(tài)端口的D3位為1表明準(zhǔn)備好。數(shù)據(jù)端口(8位)的地址為PD,采用查詢傳送方式傳送1字節(jié)數(shù)據(jù)(數(shù)據(jù)在BL中) 562021-10-24程序 MOV DX, PS ;狀態(tài)端口地址傳送給DXLP: IN AL, DX ;讀狀態(tài)端口TEST AL,08H ;測(cè)試狀態(tài)端口的D3位是否為1JZ LP ;不為1(未準(zhǔn)備好),則重復(fù)讀取狀態(tài)MOV AL, BL ;為1(準(zhǔn)備好),則進(jìn)行數(shù)據(jù)輸出MOV DX, PD OUT DX, AL 572021-10-247.2.2 程序中斷控制方式 n中斷(Interrupt)傳送方式是指當(dāng)外設(shè)需要與CPU進(jìn)行信息交換時(shí),由外設(shè)向CPU發(fā)出請(qǐng)求信號(hào)

20、,使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行數(shù)據(jù)的輸入/輸出操作,數(shù)據(jù)傳送結(jié)束后,CPU再繼續(xù)執(zhí)行被暫停的程序n中斷傳送方式是由外設(shè)主動(dòng)向CPU發(fā)出請(qǐng)求,等候CPU處理,在沒有發(fā)出請(qǐng)求時(shí),CPU和外設(shè)都可以獨(dú)立進(jìn)行各自的工作 582021-10-24中斷傳送方式特點(diǎn)n優(yōu)點(diǎn):CPU不必查詢等待,工作效率高,CPU與外設(shè)可以并行工作;發(fā)現(xiàn)和處理預(yù)先無法估計(jì)的錯(cuò)誤和異常情況 n缺點(diǎn): 為了能接受中斷的請(qǐng)求信號(hào),CPU內(nèi)部要有一些線路來控制;利用中斷輸入/輸出,每傳送一次數(shù)據(jù)就要中斷一次CPU。 592021-10-247.2.3 存儲(chǔ)器直接存取方式(DMA) 1DMA傳送方式 nDMA(Direct Me

21、mory Access)傳送方式是在存儲(chǔ)器和外設(shè)之間、存儲(chǔ)器和存儲(chǔ)器之間直接進(jìn)行數(shù)據(jù)傳送(如磁盤與內(nèi)存間交換數(shù)據(jù)、高速數(shù)據(jù)采集、內(nèi)存和內(nèi)存間的高速數(shù)據(jù)塊傳送等)nDMA傳送方式需要一個(gè)專用接口芯片DMA控制器(DMAC)對(duì)傳送過程加以控制和管理n傳輸速度基本取決于存儲(chǔ)器和外設(shè)的速度n在進(jìn)行DMA傳送期間,CPU放棄總線控制權(quán),將系統(tǒng)總線交由DMAC控制n傳送結(jié)束后DMAC再將總線控制權(quán)交還給CPU 602021-10-24DMA系統(tǒng)結(jié)構(gòu)框圖圖7-13 DMA系統(tǒng)結(jié)構(gòu)框圖 612021-10-242DMA控制器的工作方式 1)單字節(jié)傳輸方式 n在該方式下,DMAC每次控制總線后只傳輸一個(gè)字節(jié),傳

22、輸完后即釋放總線控制權(quán)622021-10-242)成組傳輸方式(塊傳輸方式) n用這種方式,DMAC每次控制總線后都連續(xù)傳送一組數(shù)據(jù),待所有數(shù)據(jù)全部傳送完后再釋放總線控制權(quán)n成組傳輸方式的數(shù)據(jù)傳輸率要比單字節(jié)傳輸方式高n成組傳輸期間CPU無法進(jìn)行任何需要使用系統(tǒng)總線的操作 632021-10-243)請(qǐng)求傳輸方式 n在該方式下,每傳輸完一個(gè)字節(jié),DMAC都要檢測(cè)I/O接口發(fā)來的DMA請(qǐng)求信號(hào)是否有效n若有效,則繼續(xù)進(jìn)行DMA傳輸;否則就暫停傳輸,將總線控制權(quán)交還給CPU,直至DMA請(qǐng)求信號(hào)再次變?yōu)橛行В購膭偛艜和5哪且稽c(diǎn)繼續(xù)傳輸 642021-10-243DMA操作的基本操作 圖 7-14

23、DMA傳送流程圖 652021-10-24DMA傳送基本操作 n外設(shè)可通過DMA控制器向CPU發(fā)出DMA請(qǐng)求;nCPU響應(yīng)DMA請(qǐng)求,把總線控制權(quán)交給DMA控制器,使系統(tǒng)轉(zhuǎn)變?yōu)镈MA工作方式;n由DMA控制器發(fā)出I/O數(shù)據(jù)的存儲(chǔ)地址,并決定傳送數(shù)據(jù)塊的長(zhǎng)度;n執(zhí)行DMA傳送;nDMA操作結(jié)束,并將控制權(quán)交還給CPU。 662021-10-247.3 中斷系統(tǒng) n中斷是現(xiàn)代計(jì)算機(jī)有效合理地發(fā)揮效能和提高效率的一個(gè)十分重要的功能nCPU中通常設(shè)有處理中斷的機(jī)構(gòu)中斷系統(tǒng) 672021-10-247.3.1 中斷的基本概念 1.中斷的定義 n中斷:在CPU執(zhí)行程序的過程中,出現(xiàn)了某種緊急或異常的事件(

24、中斷請(qǐng)求),CPU需暫停正在執(zhí)行的程序,轉(zhuǎn)去處理該事件(執(zhí)行中斷服務(wù)程序),并在處理完畢后返回?cái)帱c(diǎn)處繼續(xù)執(zhí)行被暫停的程序的過程682021-10-24中斷過程圖 7-15 中斷過程 692021-10-24程序中斷方式的示意圖 702021-10-24中斷方式特點(diǎn)n中斷方式在一定程度上實(shí)現(xiàn)了微處理器和外設(shè)的并行工作,使微處理器的效率得到充分的發(fā)揮 n中斷的處理過程實(shí)際上是程序的切換過程,即從現(xiàn)行程序切換到中斷服務(wù)程序,再從中斷服務(wù)程序返回現(xiàn)行程序 n中斷系統(tǒng)是計(jì)算機(jī)實(shí)現(xiàn)中斷功能的軟、硬件總稱。一般在微處理器中配置中斷機(jī)構(gòu),在外設(shè)接口中配置中斷控制器,在軟件上設(shè)計(jì)相應(yīng)的中斷服務(wù)程序 712021

25、-10-24程序中斷與調(diào)用子程序的區(qū)別 n子程序的執(zhí)行是由程序員事先安排好的(由一條調(diào)用子程序指令轉(zhuǎn)入),而中斷服務(wù)程序的執(zhí)行則是由隨機(jī)的中斷事件觸發(fā)引起的;n子程序的執(zhí)行受到主程序或上層子程序的控制,而中斷服務(wù)程序一般與被中斷的現(xiàn)行程序無關(guān);n不存在同時(shí)調(diào)用多個(gè)子程序的情況,而有可能發(fā)生多個(gè)外設(shè)同時(shí)請(qǐng)求微處理器為自己服務(wù)的情況。 722021-10-24中斷系統(tǒng)的基本功能 n及時(shí)記錄各種中斷請(qǐng)求信號(hào);一般是用一個(gè)中斷請(qǐng)求寄存器來保存。n自動(dòng)響應(yīng)中斷請(qǐng)求。CPU必須能夠在發(fā)生中斷事件后,自動(dòng)響應(yīng)并處理。在一條指令執(zhí)行完、下條指令執(zhí)行前去檢查有無中斷請(qǐng)求發(fā)生。 n自動(dòng)排隊(duì)判優(yōu)。在計(jì)算機(jī)系統(tǒng)中,中

26、斷源有很多,在有多個(gè)中斷請(qǐng)求同時(shí)產(chǎn)生時(shí),能夠判斷出哪個(gè)中斷的優(yōu)先級(jí)高,選擇優(yōu)先級(jí)高的中斷先被響應(yīng)。n保護(hù)被中斷程序的斷點(diǎn)和現(xiàn)場(chǎng)。原程序被中止處的指令地址和當(dāng)時(shí)的程序狀態(tài)和各寄存器的內(nèi)容必須保存,以便能正確回到原處繼續(xù)執(zhí)行。n中斷屏蔽?,F(xiàn)代計(jì)算機(jī)大多采用中斷嵌套技術(shù)。中斷系統(tǒng)中要有中斷屏蔽機(jī)制,使得每個(gè)中斷可以設(shè)置它允許被哪些中斷打斷,不允許被哪些中斷打斷,通過在中斷系統(tǒng)中設(shè)置中斷屏蔽字來實(shí)現(xiàn)。 732021-10-24一個(gè)完整的中斷系統(tǒng)結(jié)構(gòu)示意圖 742021-10-24(1)中斷請(qǐng)求觸發(fā)器 n中斷請(qǐng)求觸發(fā)器的作用就是產(chǎn)生中斷請(qǐng)求信號(hào)給微處理器n本質(zhì)上講,它是把外設(shè)的狀態(tài)信號(hào)保存在一個(gè)觸發(fā)器中

27、作為中斷信號(hào)。有兩個(gè)特點(diǎn):它的輸出可以作為中斷請(qǐng)求信號(hào),在滿足一定條件的情況下把信號(hào)發(fā)送給CPU,并在CPU未響應(yīng)時(shí)一直保存下去;當(dāng)CPU滿足一定條件下響應(yīng)了該中斷請(qǐng)求信號(hào),執(zhí)行了相關(guān)的操作后,該中斷請(qǐng)求信號(hào)可以被撤除。 752021-10-24中斷請(qǐng)求信號(hào)產(chǎn)生電路 762021-10-24一般中斷源n數(shù)據(jù)輸入/輸出外設(shè)請(qǐng)求中斷。n定時(shí)時(shí)間到請(qǐng)求中斷。n滿足規(guī)定狀態(tài)請(qǐng)求中斷。n電源掉電請(qǐng)求中斷。n故障報(bào)警請(qǐng)求中斷。n程序調(diào)試設(shè)置中斷。 772021-10-24(2)中斷屏蔽觸發(fā)器 n中斷屏蔽觸發(fā)器的功能就是決定中斷請(qǐng)求觸發(fā)器的輸出信號(hào)是否可以作為中斷請(qǐng)求信號(hào)發(fā)送給微處理器n微處理器通過對(duì)中斷屏

28、蔽觸發(fā)器的設(shè)置就可以達(dá)到對(duì)中斷源的控制 782021-10-24中斷請(qǐng)求觸發(fā)器和中斷屏蔽觸發(fā)器 792021-10-24(3)中斷源排隊(duì)判優(yōu)器 n當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí),微處理器在任何瞬間只能接受一個(gè)中斷源的請(qǐng)求n通常,微處理器會(huì)將全部中斷源按中斷的性質(zhì)和處理的輕重緩急安排優(yōu)先級(jí),并進(jìn)行排隊(duì)。n確定中斷優(yōu)先級(jí)排隊(duì)的原則是:對(duì)那些提出中斷請(qǐng)求后需要立即處理,否則就會(huì)造成嚴(yán)重后果的中斷源規(guī)定最高的優(yōu)先級(jí);而對(duì)那些可以延遲響應(yīng)和處理的中斷源規(guī)定較低的優(yōu)先級(jí)。如故障中斷一般優(yōu)先級(jí)較高,其次是簡(jiǎn)單中斷,接著才是I/O設(shè)備中斷。n每個(gè)中斷源均有一個(gè)為其服務(wù)的中斷服務(wù)程序,每個(gè)中斷服務(wù)程序都有與之對(duì)

29、應(yīng)的優(yōu)先級(jí)別n微處理器正在執(zhí)行的程序也有優(yōu)先級(jí)。只有當(dāng)某個(gè)中斷源的優(yōu)先級(jí)別高于微處理器現(xiàn)在正在執(zhí)行的優(yōu)先級(jí)別時(shí),才能中止微處理器執(zhí)行當(dāng)前的程序 802021-10-24(4)中斷向量地址形成部件 n一個(gè)計(jì)算機(jī)系統(tǒng)往往有多個(gè)外設(shè)(中斷源)。當(dāng)外設(shè)與微處理器以中斷方式進(jìn)行數(shù)據(jù)交換時(shí),微處理器必須從多個(gè)外設(shè)中判別是哪一個(gè)外設(shè)正在請(qǐng)求中斷,以便找到相應(yīng)的服務(wù)程序首地址,才能轉(zhuǎn)去為其服務(wù)n要解決兩個(gè)方面問題:一是,確定中斷源;二是,找到該中斷服務(wù)程序的入口地址。812021-10-24向量中斷的過程 822021-10-24向量中斷 832021-10-24中斷響應(yīng)周期時(shí)序 842021-10-24中斷

30、類型號(hào)80H產(chǎn)生電路 852021-10-242中斷源 n任何能夠引發(fā)中斷的事件都稱為中斷源n分為硬件中斷源和軟件中斷源兩類:硬件中斷源主要包括外設(shè)(如鍵盤、打印機(jī)等)、數(shù)據(jù)通道(如磁盤機(jī)、磁帶機(jī)等)、時(shí)鐘電路(如定時(shí)計(jì)數(shù)器8253)和故障源(如電源掉電)等;軟件中斷源主要包括為調(diào)試程序設(shè)置的中斷(如斷點(diǎn)、單步執(zhí)行等)、中斷指令(如INT 21H等)以及指令執(zhí)行過程出錯(cuò)(如除法運(yùn)算時(shí)除數(shù)為零)等 862021-10-243中斷處理過程 n幾個(gè)步驟:中斷請(qǐng)求、中斷響應(yīng)、保護(hù)斷點(diǎn)、中斷處理和中斷返回 872021-10-241) 中斷請(qǐng)求 n中斷請(qǐng)求是中斷源向CPU發(fā)出的請(qǐng)求中斷的要求n軟件中斷源

31、是在CPU內(nèi)部由中斷指令或程序出錯(cuò)直接引發(fā)中斷;n硬件中斷源必須通過專門的電路將中斷請(qǐng)求信號(hào)傳送給CPU,CPU也有專門的引腳接收中斷請(qǐng)求信號(hào) 882021-10-24中斷請(qǐng)求與可屏蔽接口電路圖7-16 中斷請(qǐng)求與可屏蔽接口電路 892021-10-242)中斷響應(yīng) nCPU在每條指令執(zhí)行的最后一個(gè)時(shí)鐘周期檢測(cè)其中斷請(qǐng)求輸入端,判斷有無中斷請(qǐng)求n若CPU接收到了中斷請(qǐng)求信號(hào),CPU內(nèi)部的中斷允許觸發(fā)器的狀態(tài)為1nCPU在現(xiàn)行指令執(zhí)行完后,發(fā)出信號(hào)響應(yīng)中斷 INTA902021-10-24CPU內(nèi)部設(shè)置可屏蔽中斷允許觸發(fā)器圖7-17 CPU內(nèi)部設(shè)置中斷允許觸發(fā)器 912021-10-243) 保

32、護(hù)斷點(diǎn) nCPU一旦響應(yīng)中斷,需要對(duì)其正在執(zhí)行程序的斷點(diǎn)信息進(jìn)行保護(hù),以便在中斷處理結(jié)束后仍能回到該斷點(diǎn)處繼續(xù)執(zhí)行 n對(duì)于8086/8088 CPU,保護(hù)斷點(diǎn)的過程由硬件自動(dòng)完成,主要工作是關(guān)中斷、將標(biāo)志寄存器內(nèi)容入棧保存以及將CS和IP內(nèi)容入棧保存 922021-10-244) 中斷處理 n中斷處理的過程實(shí)際就是CPU執(zhí)行中斷服務(wù)程序的過程n用戶編寫的用于CPU為中斷源進(jìn)行中斷處理的程序稱為中斷服務(wù)程序n不同中斷源在系統(tǒng)中的作用不同,所要完成的功能不同,不同中斷源的中斷服務(wù)程序內(nèi)容也各不相同 932021-10-245) 中斷返回 n執(zhí)行完中斷服務(wù)程序,返回到原先被中斷的程序,此過程稱為中斷

33、返回n為能正確返回到原來程序的斷點(diǎn)處,在中斷服務(wù)程序的最后應(yīng)專門放置一條中斷返回指令(如8086/8088的IRET指令)942021-10-247.3.2 中斷優(yōu)先級(jí)和中斷的嵌套中斷優(yōu)先級(jí)和中斷的嵌套 1中斷優(yōu)先級(jí) n中斷請(qǐng)求是隨機(jī)發(fā)生的,當(dāng)系統(tǒng)具有多個(gè)中斷源時(shí),有時(shí)會(huì)同時(shí)出現(xiàn)多個(gè)中斷請(qǐng)求,CPU只能按一定的次序予以響應(yīng)和處理,這個(gè)響應(yīng)的次序稱為中斷優(yōu)先級(jí)n對(duì)于不同級(jí)別的中斷請(qǐng)求,一般的處理原則:不同優(yōu)先級(jí)的多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求,按優(yōu)先級(jí)由高到低依次處理。 低優(yōu)先級(jí)中斷正在處理,出現(xiàn)高優(yōu)先級(jí)請(qǐng)求,應(yīng)轉(zhuǎn)去處理高優(yōu)先級(jí)請(qǐng)求,服務(wù)結(jié)束后再返回原優(yōu)先級(jí)較低的中斷服務(wù)程序繼續(xù)執(zhí)行。高優(yōu)先級(jí)中斷正

34、在處理,出現(xiàn)低優(yōu)先級(jí)請(qǐng)求,可暫不響應(yīng)。中斷處理時(shí),出現(xiàn)同級(jí)別請(qǐng)求,應(yīng)在當(dāng)前中斷處理結(jié)束以后再處理新的請(qǐng)求。 952021-10-242中斷嵌套 nCPU在執(zhí)行低級(jí)別中斷服務(wù)程序時(shí),又收到較高級(jí)別的中斷請(qǐng)求,CPU暫停執(zhí)行低級(jí)別中斷服務(wù)程序,轉(zhuǎn)去處理這個(gè)高級(jí)別的中斷,處理完后再返回低級(jí)別中斷服務(wù)程序,這個(gè)過程稱為中斷嵌套n為實(shí)現(xiàn)中斷嵌套,應(yīng)在低級(jí)別中斷服務(wù)程序的開始處加一條開中斷指令STI。 962021-10-24中斷嵌套示意圖圖7-18 中斷嵌套示意圖 972021-10-243.中斷控制方式的優(yōu)點(diǎn) n分時(shí)操作。在中斷方式下,CPU和外設(shè)可并行工作。n實(shí)時(shí)處理。在實(shí)時(shí)控制系統(tǒng)中,現(xiàn)場(chǎng)隨機(jī)產(chǎn)生

35、的各種參數(shù)、信息需要CPU及時(shí)處理時(shí),可以利用中斷方式向CPU發(fā)出中斷請(qǐng)求,CPU可立即響應(yīng)(在中斷標(biāo)志為開放的情況下),進(jìn)行相應(yīng)的處理。 n故障處理。在計(jì)算機(jī)運(yùn)行過程中,如果出現(xiàn)事先預(yù)料不到的情況,或出現(xiàn)一些故障,則可利用中斷系統(tǒng)運(yùn)行相應(yīng)的服務(wù)程序自行處理,而不必停機(jī)或報(bào)告工作人員。 982021-10-247.4 8086/8088中斷系統(tǒng)中斷系統(tǒng)7.4.1中斷類型 圖7-19 8086/8088中斷源 992021-10-241硬件中斷(外部中斷) n非屏蔽中斷NMI(中斷類型號(hào)為2)。整個(gè)系統(tǒng)只有一個(gè)非屏蔽中斷,它不受IF標(biāo)志位的屏蔽出現(xiàn)在NMI上的請(qǐng)求信號(hào)是上升沿觸發(fā)的,一旦出現(xiàn),C

36、PU將予以響應(yīng)其中斷矢量號(hào)不由外部中斷源提供,而是由系統(tǒng)固定分配。非屏蔽中斷通常用來處理應(yīng)急事件,如總線奇偶錯(cuò)、電源故障或電源掉電等。 n可屏蔽中斷INTR可屏蔽中斷請(qǐng)求信號(hào)從INTR引腳送往CPU,高電平有效。它受中斷允許標(biāo)志位IF的影響和控制當(dāng)IF置1(STI指令)時(shí),表明可屏蔽中斷被允許,CPU響應(yīng)可屏蔽中斷當(dāng)IF置0(CLI指令)時(shí),表明可屏蔽中斷被禁止 1002021-10-242軟件中斷(內(nèi)部中斷) n處理運(yùn)算過程中某些錯(cuò)誤的中斷 除法錯(cuò)中斷(中斷類型號(hào)為0) 溢出中斷INTO(中斷類型號(hào)為4) n為調(diào)試程序設(shè)置的中斷 單步中斷(中斷類型號(hào)為1) 斷點(diǎn)中斷(中斷類型號(hào)為3) n中斷

37、指令I(lǐng)NT n引起的中斷(中斷類型號(hào)為n) 1012021-10-2438086/8088中斷源的優(yōu)先級(jí) 8086/8088中斷源的優(yōu)先級(jí)順序由高到低依次為:n除數(shù)為0中斷nINT nnINTO指令nNMInINTRn單步中斷 1022021-10-247.4.2 中斷向量表 n中斷向量表是存放中斷向量的一個(gè)特定的內(nèi)存區(qū)域n中斷向量,就是中斷服務(wù)程序的入口地址n 8086/8088可以處理256種中斷,每種中斷對(duì)應(yīng)一個(gè)中斷類型號(hào),每個(gè)中斷類型號(hào)與一個(gè)中斷服務(wù)程序的入口地址相對(duì)應(yīng) n地址范圍為00000H003FFH,為1K個(gè)單元 n服務(wù)程序入口地址在中斷向量表中的位置=中斷類型號(hào)4 10320

38、21-10-248086/8088的中斷向量表 圖7-20 8086/8088的中斷向量表 1042021-10-247.4.3 8086/8088中斷處理過程 n中斷響應(yīng)的操作過程分為:可屏蔽中斷、非可屏蔽中斷和內(nèi)部中斷 1052021-10-241.可屏蔽中斷的響應(yīng)和處理過程 圖 7-21 可屏蔽中斷的響應(yīng)和處理過程 1062021-10-24可屏蔽中斷響應(yīng)過程nCPU要響應(yīng)可屏蔽中斷請(qǐng)求,必須滿足一定的條件,即中斷允許標(biāo)志置1(IF=1),無內(nèi)部中斷,沒有非可屏蔽中斷(NMI=0),沒有總線請(qǐng)求; n當(dāng)某一外部設(shè)備通過其接口電路中斷控制器8259A發(fā)出中斷請(qǐng)求信號(hào)時(shí),經(jīng)8259A處理后,

39、得到相應(yīng)的中斷矢量號(hào),并同時(shí)向CPU申請(qǐng)中斷INT=1; nCPU執(zhí)行完當(dāng)前指令后便向8259A發(fā)出中斷響應(yīng)信號(hào),表明CPU響應(yīng)該可屏蔽中斷請(qǐng)求; n8259A連續(xù)兩次(2個(gè)總線周期)接收到的中斷響應(yīng)信號(hào)后,便通過總線將中斷矢量號(hào)送CPU; n保護(hù)斷點(diǎn)。將標(biāo)志寄存器內(nèi)容、當(dāng)前CS內(nèi)容及當(dāng)前IP內(nèi)容壓入堆棧;n清除IF及TF(IF0,TF0),以便禁止其它可屏蔽中斷或單步中斷發(fā)生; n根據(jù)8259A向CPU送的中斷向量號(hào)n求得中斷向量,從中斷向量表中得到相應(yīng)中斷處理程序首地址(段內(nèi)偏移地址和段地址),并將其分別置入IP及CS中; n中斷處理程序包括保護(hù)現(xiàn)場(chǎng)、中斷服務(wù)、恢復(fù)現(xiàn)場(chǎng)等部分。 n中斷處理

40、程序執(zhí)行完畢,最后執(zhí)行一條中斷返回指令I(lǐng)RET,將原壓入堆棧的標(biāo)志寄存器內(nèi)容及程序斷點(diǎn)地址重又彈出至原處。 1072021-10-242.非可屏蔽中斷的響應(yīng)和處理過程 n非可屏蔽的中斷請(qǐng)求在NMI端加入nCPU對(duì)它的響應(yīng)不受IF位的控制(但可以在外部邏輯中對(duì)加入NMI端的信號(hào)進(jìn)行控制)n與可屏蔽中斷一樣,非可屏蔽中斷也要等待當(dāng)前指令執(zhí)行結(jié)束 1082021-10-243.內(nèi)部中斷的響應(yīng)和處理過程 n中斷類型號(hào)要么是指令碼給定的,要么是處理硬件決定的,都不需要從外部邏輯輸入;n沒有包括信號(hào)的響應(yīng)周期; n不受IF位的控制,但單步中斷受TF位控制; n內(nèi)部中斷響應(yīng)也要執(zhí)行可屏蔽中斷響應(yīng)的項(xiàng)操作。

41、1092021-10-248086/8088 CPU中斷處理的基本過程 圖7-22 8086/8088 CPU中斷處理的基本過程 1102021-10-247.4.4中斷服務(wù)程序的設(shè)計(jì) 圖7-23 中斷服務(wù)程序的一般結(jié)構(gòu) 1112021-10-241DOS系統(tǒng)功能調(diào)用法 功能號(hào):(AH)=25H。入口參數(shù):(AL)=中斷類型號(hào) (DS)=中斷服務(wù)程序入口地址的段地址 (DX)=中斷服務(wù)程序入口地址的偏移地址 1122021-10-24舉例程序段完成中斷類型號(hào)為80H的入口地址置入,設(shè)其中斷服務(wù)程序?yàn)镹EWINT。PUSH DS ;保護(hù)DSMOV DX,OFFSET NEWINT ;取服務(wù)程序偏

42、移地址MOV AX,SEG NEWINT;取服務(wù)程序段地址MOV DS,AXMOV AH,25H ;送功能號(hào)MOV AL,80H ;送中斷類型號(hào)INT 21H ;DOS功能調(diào)用POP DS ;恢復(fù)DS 1132021-10-242直接裝入法 n用傳送指令直接將中斷服務(wù)程序首地址置入矢量表中 1142021-10-24舉例設(shè)中斷類型號(hào)為80H(此類型號(hào)對(duì)應(yīng)的矢量表地址為從00200H開始的四個(gè)連續(xù)存儲(chǔ)單元),其中斷服務(wù)程序?yàn)镹EWINT。程序段如下:XOR AX,AXMOV DS,AXMOV AX,OFFSET NEWINTMOV DS:0200H,AX;置服務(wù)程序偏移地址MOV AX,SEG

43、NEWINTMOV DS:0200H+2,AX;置服務(wù)程序所在代碼段的段地址 1152021-10-243.使用字符串指令裝入法 MOV AX, 0MOV ES, AXMOV DI, n*4MOV AX, OFFSET NEWINTCLDSTOSWMOV AX, SEG NEWINTSTOSW其中:n為中斷類型號(hào) 1162021-10-24中斷服務(wù)程序的設(shè)計(jì)舉例n某外設(shè)可屏蔽中斷類型號(hào)為80H,輸入數(shù)據(jù)端口地址為48H4FH,其中斷請(qǐng)求接口電路如圖4-27所示。要求編寫讀取該外設(shè)一次數(shù)據(jù)送60000H單元的中斷服務(wù)程序。1172021-10-24某外設(shè)中斷請(qǐng)求接口電路 1182021-10-2

44、4主程序 HLT ;等中斷1192021-10-24設(shè)置中斷服務(wù)程序入口地址n用傳送指令直接將中斷服務(wù)程序首地址置入向量表中n設(shè)中斷類型號(hào)為80H(此類型號(hào)對(duì)應(yīng)的向量表地址為00200H00203H的存儲(chǔ)單元內(nèi)容),其中斷服務(wù)程序?yàn)镹EWINT。 1202021-10-24設(shè)置中斷服務(wù)程序入口地址程序 XOR AX,AXMOV DS,AXMOV AX,OFFSET NEWINTMOV DS:0200H,AX ;置服務(wù)程序偏移地址MOV AX,SEG NEWINTMOV DS:0200H+2,AX ;置服務(wù)程序所在代碼段的段地址 1212021-10-24中斷服務(wù)程序 NEWINT:PUSH B

45、XPUSH DXSTIMOV BX, 6000H MOV DS, BX MOV BX, 0 MOV DX, 48HIN AL, DXMOV BX, ALCLIPOP DXPOP BXSTIIRET 1222021-10-247.5 可編程中斷控制器可編程中斷控制器Intel8259A7.5.1 8259A的功能 n8259A是可編程中斷控制器(Programmable Interrupt Controller)芯片n用于管理和控制80 x86的外部中斷請(qǐng)求n可實(shí)現(xiàn)中斷優(yōu)先級(jí)判定,提供中斷類型號(hào),屏蔽中斷輸入等功能n單片8259A可管理8級(jí)中斷,若采用級(jí)聯(lián)方式,最多可以用9片8259A構(gòu)成兩級(jí)中

46、斷機(jī)構(gòu),管理64級(jí)中斷n具有的多種中斷優(yōu)先級(jí)管理方式可以通過主程序在任何時(shí)候進(jìn)行改變或重新組織 1232021-10-241.8259A的內(nèi)部結(jié)構(gòu) 圖7-24 8259A內(nèi)部結(jié)構(gòu)框圖 1242021-10-24(1)中斷請(qǐng)求寄存器IRR(Interrupt Request Register)n8位,接受并鎖存來自IR0IR7的中斷請(qǐng)求信號(hào)n當(dāng)IR0IR7上出現(xiàn)某一中斷請(qǐng)求信號(hào)時(shí),IRR對(duì)應(yīng)位被置1 1252021-10-24(2)中斷屏蔽寄存器IMR(Interrupt Mask Register)n8位,若IRR中記錄的各級(jí)中斷中有任何一級(jí)需要屏蔽,只要將IMR的相應(yīng)位置1即可,未被屏蔽的中

47、斷請(qǐng)求進(jìn)入優(yōu)先權(quán)判別器 1262021-10-24(3)中斷服務(wù)寄存器ISR(In-Service Register)n8位,保存當(dāng)前正在處理的中斷請(qǐng)求 1272021-10-24(4)優(yōu)先權(quán)判別器PR(Priority Resolver) n能夠?qū)⒏髦袛嗾?qǐng)求中優(yōu)先級(jí)最高者選中,并將ISR中相應(yīng)位置1 n在中斷服務(wù)程序結(jié)束時(shí),向8259A發(fā)中斷結(jié)束命令,該命令將ISR寄存器的相應(yīng)位清0,中斷處理結(jié)束 1282021-10-24(5)數(shù)據(jù)總線緩沖器n是8259A與系統(tǒng)之間傳送信息的數(shù)據(jù)通道 1292021-10-24(6)讀/寫控制邏輯n讀/寫控制邏輯包含了初始化命令字寄存器和操作命令字寄存器

48、1302021-10-24(7)級(jí)聯(lián)緩沖/比較器n用來存放和比較在系統(tǒng)中用到的所有8259A的級(jí)聯(lián)地址n主控8259A通過CAS0、CAS1和CAS2發(fā)送級(jí)聯(lián)地址,選中從控8259A 1312021-10-2428259A的外部引腳 圖7-25 8259A引腳 1322021-10-247.5.2 8259A的編程 n8259A的編程分兩步:第一步,在系統(tǒng)加電和復(fù)位后,用初始化命令字對(duì)8259A芯片進(jìn)行初始化編程;第二步,在操作階段,用操作命令字對(duì)8259A進(jìn)行操作過程編程,即實(shí)現(xiàn)對(duì)8259A的狀態(tài)、中斷方式和中斷響應(yīng)次序等的管理。n一般不再發(fā)初始化命令字 1332021-10-241. 初始

49、化命令字 n共有4個(gè)初始化命令字ICW1ICW4 1342021-10-24(1)ICW1命令字 1352021-10-24(2)ICW2命令字nICW2命令字用來設(shè)置中斷類型號(hào)基值n低3位根據(jù)當(dāng)前CPU響應(yīng)的中斷是IR0IR7中的哪一個(gè)而定,分別對(duì)應(yīng)000111 1362021-10-24(3)ICW3命令字 n僅用于8259A級(jí)聯(lián)方式1372021-10-24(4)ICW4命令字 1382021-10-242初始化編程 圖 7-26 8259A初始化編程流程圖 1392021-10-24初始化編程注意n在ICWl中指明需要ICW3和ICW4以后,才發(fā)送ICW3和ICW4n一旦初始化以后,若

50、要改變某一個(gè)ICW,則必須重新再進(jìn)行初始化編程,不能只是寫入單獨(dú)的一個(gè)ICW 1402021-10-24舉例例如,兩片8259A設(shè)置的初始化命令字如下: 主片: ICW1=00010001,邊沿觸發(fā),有ICW4,級(jí)聯(lián)方式; ICW2=00001000,中斷類型號(hào)基值為08H; ICW3=00000100,在IR2端接有從片; ICW4=00000001,非數(shù)據(jù)總線緩沖方式, 中斷正常(非自動(dòng))結(jié)束,正常全嵌套方式。 從片: ICW1=00010001,邊沿觸發(fā),有ICW4,級(jí)聯(lián)方式; ICW2=01110000,中斷類型號(hào)基值為70H; ICW3=00000010,該片的識(shí)別標(biāo)志,對(duì)應(yīng)主片的I

51、R2; ICW4=00000001,非數(shù)據(jù)總線緩沖方式,中斷正常(非自動(dòng))結(jié)束,正常全嵌套方式。 1412021-10-243操作命令字n系統(tǒng)初始化完成以后,可以在應(yīng)用程序中隨時(shí)向8259A送操作命令字,以改變8259A的工作方式,讀出8259A內(nèi)部寄存器的值等 1422021-10-24(1)OCW1操作命令字n該命令字用來設(shè)置中斷源的屏蔽狀態(tài) 1432021-10-24(2)OCW2命令字n用來控制中斷結(jié)束方式及修改優(yōu)先權(quán)管理方式 1442021-10-24( 3)操作命令字OCW3n用來管理特殊的屏蔽方式和查詢方式 1452021-10-247.5.3 8259A的工作方式 n對(duì)8259

52、A置入初始化命令字后,8259A便處于準(zhǔn)備就緒狀態(tài),等待中斷源發(fā)來的中斷請(qǐng)求信號(hào),并處于完全嵌套中斷方式n若想變更8259A的中斷方式和中斷響應(yīng)次序,應(yīng)向8259A寫入操作命令字n操作命令字可在主程序中寫入,也可在中斷服務(wù)程序中寫入n8259A的中斷方式有5種:完全嵌套方式循環(huán)優(yōu)先方式特殊循環(huán)方式特殊屏蔽方式查詢方式 1462021-10-241中斷優(yōu)先級(jí)管理方式(1)全嵌套方式 n也稱固定優(yōu)先級(jí)方式n這種方式下,由IR端引入的中斷請(qǐng)求具有固定的優(yōu)先級(jí),IR0最高,IR7最低nPC機(jī)在對(duì)8259A初始化后若沒有設(shè)置其他優(yōu)先級(jí)方式,則默認(rèn)為全嵌套方式n可用發(fā)操作命令字OCW2=00將8259設(shè)置

53、為這種排序方式 n完全嵌套方式下,應(yīng)通過發(fā)非指定中斷級(jí)的結(jié)束命令字,即OCW2=20H,使ISR寄存器中的對(duì)應(yīng)位ISRi=0,來實(shí)現(xiàn)中斷結(jié)束操作 1472021-10-24(2)自動(dòng)循環(huán)方式 n等優(yōu)先權(quán)方式n其特點(diǎn)是某一中斷請(qǐng)求被響應(yīng)后,該中斷級(jí)便自動(dòng)成為最低的中斷級(jí),其它中斷源的優(yōu)先級(jí)別也相應(yīng)循環(huán)改變,以使各中斷源被優(yōu)先響應(yīng)的機(jī)會(huì)相同,亦即優(yōu)先等級(jí)是輪流的 1482021-10-24(3)指定最低級(jí)的循環(huán)排序方式 n也稱特殊循環(huán)方式n這種方式下,能在主程序或服務(wù)程序中通過指定某中斷源的優(yōu)先級(jí)為最低級(jí),而其它中斷源的優(yōu)先級(jí)也隨之改變的方法,來改變各中斷源的優(yōu)先等級(jí) 1492021-10-24(

54、4)查詢法排序方式 n用查詢的方法響應(yīng)與8259A相連的8級(jí)中斷請(qǐng)求n采用該方式時(shí),8259A的INT引腳不用,或CPU處于關(guān)中斷狀態(tài),以便CPU不能響應(yīng)INT線上來的中斷請(qǐng)求 1502021-10-242中斷屏蔽方式(1)普通屏蔽方式 n通過對(duì)中斷屏蔽寄存器(IMR)的設(shè)定,實(shí)現(xiàn)對(duì)中斷請(qǐng)求的屏蔽 1512021-10-24(2)特殊屏蔽方式 n該方式與完全嵌套方式的排序方法不同,除了用操作命令字OCW1屏蔽掉的中斷級(jí)和正在服務(wù)和中斷級(jí)外,允許其它任何級(jí)的中斷請(qǐng)求中斷正在服務(wù)的中斷 1522021-10-243中斷結(jié)束方式n中斷結(jié)束(EOI)是指對(duì)8259A內(nèi)部中斷服務(wù)寄存器ISR的對(duì)應(yīng)位復(fù)位

55、的操作n有兩種方法:自動(dòng)EOI方式和EOI命令方式 1532021-10-24(1)自動(dòng)EOI方式 n指在第二個(gè) 脈沖的后沿之后,由8259A自動(dòng)清除ISR中已置位的那些位中優(yōu)先級(jí)最高的位n這種自動(dòng)結(jié)束中斷方式只適用于非多重中斷的情況 INTA1542021-10-24(2)一般中斷結(jié)束方式 n該方式用于全嵌套方式下的中斷結(jié)束nCPU在中斷服務(wù)程序結(jié)束時(shí),向8259A發(fā)常規(guī)中斷結(jié)束命令,將8259A的中斷服務(wù)寄存器中最高優(yōu)先級(jí)的ISR位清0n全嵌套方式下,應(yīng)通過發(fā)非指定中斷級(jí)的結(jié)束命令字,即OCW2=20H,將把ISR寄存器內(nèi)為1的所有位中優(yōu)先級(jí)最高的位置0 ,來實(shí)現(xiàn)中斷結(jié)束操作1552021

56、-10-24(3)特殊中斷結(jié)束方式(SEOI)n在非全嵌套方式下,根據(jù)ISR的內(nèi)容無法確定最后所響應(yīng)和處理的是哪一級(jí)中斷n這種情況下,在程序中要發(fā)一條特殊中斷結(jié)束命令,該命令指出了要清除ISR中的哪一位。n注意:在級(jí)聯(lián)方式下,一般不用中斷自動(dòng)結(jié)束方式,而是用一般結(jié)束方式或特殊結(jié)束方式在中斷處理程序結(jié)束時(shí),必須發(fā)兩次中斷結(jié)束命令,一次是發(fā)往主片,另一次發(fā)往從片 1562021-10-244.完全嵌套方式響應(yīng)過程舉例 圖7-27 完全嵌套方式響應(yīng)過程舉例 1572021-10-247.5.4 8259A應(yīng)用舉例 圖7-28 8259A 在PC/XT機(jī)中的連接 1582021-10-24舉例n假設(shè)某

57、外設(shè)的中斷請(qǐng)求信號(hào)由IR2端引入,要求編程實(shí)現(xiàn)CPU每次響應(yīng)該中斷時(shí)屏幕顯示字符串“WELCOME!”。n已知主機(jī)啟動(dòng)時(shí)8259A中斷類型號(hào)的高5位已初始化為00001,故IR2的類型號(hào)為0AH(00001010B)n8259A的中斷結(jié)束方式初始化為非自動(dòng)結(jié)束,即要在服務(wù)程序中發(fā)EOI命令;8259A的端口地址為20H和21H 1592021-10-24程序段MESS DB WELCOME!,0AH,0DH,$MOVAX,SEG INTPRM MOV DS,AX MOV DX,OFFSET INTPRM MOV AX,250AH INT 21H ;置中斷向量表 IN AL,21H ;讀中斷屏蔽

58、寄存器 AND AL,0FBH ;開放IR2中斷 OUT 21H,AL STILL: JMP LL ;等待中斷INTPRM:MOV AX,SEG MESS ;中斷服務(wù)程序 MOV DS,AX MOV DX,OFFSET MESS MOV AH,09 INT 21H ;顯示每次中斷的提示信息 MOV AL,20H OUT 20H,AL ;發(fā)出EOI結(jié)束中斷 IN AL,21H OR AL,04H ;屏蔽IR2中斷 OUT 21H,AL STI IRET 1602021-10-247.6 DMA傳送和DMA控制器8237 nDMA傳送控制邏輯是微處理器CPU外圍控制邏輯的重要部分n它一側(cè)與微處理器

59、相接,其中重要的兩條信號(hào)線是HOLD(總線控制權(quán)請(qǐng)求)和HLDA(總線控制權(quán)應(yīng)答)n它所形成的接受DMA請(qǐng)求信號(hào)線DRQ和DMA請(qǐng)求確認(rèn)信號(hào)線DACK作為系統(tǒng)級(jí)總線的一部分 1612021-10-247.6.1 DMA傳送的基本原理 n基本特點(diǎn)是直接實(shí)現(xiàn)存器與I/O設(shè)備之間的數(shù)據(jù)傳送n在IMB PC系統(tǒng)中,DMA方式傳送一個(gè)字節(jié)的時(shí)間通常是一個(gè)總線周期,即5個(gè)時(shí)鐘周期時(shí)間nDMA傳送方式特別適合用于外部設(shè)備與存儲(chǔ)器之間高速成批的數(shù)據(jù)傳送 1622021-10-24DMA傳送的基本原理圖 圖7-29 DMA傳送的基本原理圖 1632021-10-24DMA傳送3個(gè)階段 n第1階段是準(zhǔn)備階段。這是

60、一個(gè)程序工作階段,包括對(duì)DMA控制器的初始化,工作方式基本參數(shù)的設(shè)置;對(duì)I/O設(shè)備及其接口的初始化,如寄存器的清除、設(shè)備工作的啟動(dòng)等 n第2階段是DMA傳送操作階段。傳送需要的地址信息和控制信號(hào)由DMA控制器產(chǎn)生和發(fā)出;執(zhí)行傳送階段每傳送一個(gè)字節(jié)計(jì)數(shù)器減1,待到計(jì)數(shù)器減為0值 ,作為傳送結(jié)束的標(biāo)志(TC) n第3階段是傳送結(jié)束處理階段。在這一階段通常是引入一段程序(可由中斷方法或基本I/O測(cè)試狀態(tài)法引入),對(duì)傳送的結(jié)果進(jìn)行處理,或者同時(shí)完成下一次傳送的第1階段的任務(wù),為下次DMA傳送作準(zhǔn)備1642021-10-247.6.2 DMA控制器8237的結(jié)構(gòu)和引腳 圖7-30 8237的結(jié)構(gòu)框圖 1

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論