輸入輸出與中斷分析_第1頁
輸入輸出與中斷分析_第2頁
輸入輸出與中斷分析_第3頁
輸入輸出與中斷分析_第4頁
輸入輸出與中斷分析_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微微 機機 原原 理理 及及 其其 應(yīng)應(yīng) 用用 信息與計算機學(xué)院 閆 勇辦公室:經(jīng)技樓411 411 電話:57861605786160第六章第六章 輸入輸出與中斷輸入輸出與中斷教學(xué)目的、重點、難點教學(xué)目的、重點、難點目的:熟悉目的:熟悉I/OI/O接口基本概念;掌握接口基本概念;掌握CPUCPU與外設(shè)交與外設(shè)交換信息的基本方式;熟練掌握中斷傳送方式及相換信息的基本方式;熟練掌握中斷傳送方式及相關(guān)技術(shù)。關(guān)技術(shù)。重點:重點: CPU CPU與外設(shè)交換信息的基本方式;中斷傳與外設(shè)交換信息的基本方式;中斷傳送方式及相關(guān)技術(shù)。送方式及相關(guān)技術(shù)。難點:中斷傳送方式及相關(guān)技術(shù)。難點:中斷傳送方式及相關(guān)技術(shù)

2、。第六章第六章 輸入輸出與中斷輸入輸出與中斷6.16.1輸入輸出接口概述輸入輸出接口概述6.26.2CPUCPU與外設(shè)之間數(shù)據(jù)傳輸?shù)姆绞脚c外設(shè)之間數(shù)據(jù)傳輸?shù)姆绞?.36.3中斷技術(shù)中斷技術(shù)6.46.48086/80888086/8088的中斷系統(tǒng)和中斷處理的中斷系統(tǒng)和中斷處理6.1 6.1 輸入輸出接口概述輸入輸出接口概述6.1.1 CPU6.1.1 CPU與外設(shè)間的連接與外設(shè)間的連接一一. CPU. CPU與外設(shè)間的連接與外設(shè)間的連接外設(shè)與計算機的連接必須外設(shè)與計算機的連接必須通過各自的專用接口電路通過各自的專用接口電路(接口芯(接口芯片片) )與主機連接,而不能像存儲器那樣直接掛到總線上。

3、與主機連接,而不能像存儲器那樣直接掛到總線上。1. 1. 存儲器與存儲器與I/OI/O設(shè)備的差異設(shè)備的差異存儲器存儲器 I/O I/O設(shè)備設(shè)備 不同點不同點品種有限品種有限品種繁多品種繁多功能單一功能單一功能多樣功能多樣傳送一個字節(jié)或字傳送一個字節(jié)或字傳送規(guī)律不同傳送規(guī)律不同與與CPUCPU速度匹配速度匹配與與CPUCPU速度不匹配速度不匹配易于控制易于控制難于控制難于控制結(jié)論結(jié)論可與可與CPUCPU直接相連直接相連需經(jīng)過需經(jīng)過I/OI/O電路與電路與CPUCPU連接連接2. CPU2. CPU與外設(shè)間交換信息與外設(shè)間交換信息需要解決的問題需要解決的問題1. 1. 速度匹配速度匹配(Buffe

4、r)(Buffer)2. 2. 信號電平和驅(qū)動能力信號電平和驅(qū)動能力( (電平轉(zhuǎn)換器、驅(qū)動器電平轉(zhuǎn)換器、驅(qū)動器) )3. 3. 信號形式匹配信號形式匹配(A/D(A/D、D/A) D/A) 4. 4. 信息格式信息格式( (字節(jié)流、光盤的數(shù)據(jù)塊、數(shù)據(jù)包、幀字節(jié)流、光盤的數(shù)據(jù)塊、數(shù)據(jù)包、幀) ) 5. 5. 時序匹配時序匹配( (定時關(guān)系定時關(guān)系) )6. 6. 總線隔離總線隔離( (實現(xiàn)與存儲器的交替,三態(tài)門實現(xiàn)與存儲器的交替,三態(tài)門) )3. I/O3. I/O接口的主要功能接口的主要功能1. 1. 數(shù)據(jù)緩沖數(shù)據(jù)緩沖:CPUCPU與慢速設(shè)備之間,設(shè)置數(shù)據(jù)寄存器或鎖存器。與慢速設(shè)備之間,設(shè)置數(shù)

5、據(jù)寄存器或鎖存器。2. 2. 設(shè)備選擇設(shè)備選擇:借助于接口的地址譯碼器。借助于接口的地址譯碼器。3. 3. 信號轉(zhuǎn)換信號轉(zhuǎn)換:電平轉(zhuǎn)換、時序配合、并電平轉(zhuǎn)換、時序配合、并/ /串及串串及串/ /并、并、A/DA/D、D/AD/A轉(zhuǎn)換。轉(zhuǎn)換。4. 4. 監(jiān)控外設(shè)監(jiān)控外設(shè):接收接收CPUCPU的命令或控制信號,控制管理外設(shè);外設(shè)的狀的命令或控制信號,控制管理外設(shè);外設(shè)的狀況以狀態(tài)字或應(yīng)答信號的形式通過況以狀態(tài)字或應(yīng)答信號的形式通過I/OI/O接口送回給接口送回給CPUCPU,以同步,以同步CPUCPU與外與外設(shè)之間的設(shè)之間的I/OI/O操作。操作。5. 5. 中斷請求中斷請求:接口中有中斷請求信號

6、,以便及時得到接口中有中斷請求信號,以便及時得到CPUCPU的服務(wù)。的服務(wù)。6. 6. 可編程功能可編程功能:只需修改程序就可改變接口的工作方式,增加了接口只需修改程序就可改變接口的工作方式,增加了接口的靈活性和可擴充性。的靈活性和可擴充性。7. 7. 地址譯碼電路地址譯碼電路:有多個外設(shè),每個外設(shè)有多種信息,因此每個外設(shè):有多個外設(shè),每個外設(shè)有多種信息,因此每個外設(shè)接口有多個端口,應(yīng)能夠?qū)Χ丝谶M行變址并譯碼選中。接口有多個端口,應(yīng)能夠?qū)Χ丝谶M行變址并譯碼選中。6.1.2 6.1.2 接口電路的基本結(jié)構(gòu)接口電路的基本結(jié)構(gòu)一一. . 接口電路中的信息接口電路中的信息1. 1. 數(shù)據(jù)信息數(shù)據(jù)信息

7、1)1)數(shù)字量:數(shù)字量:8 8位二進制數(shù)或位二進制數(shù)或ASCIIASCII碼;碼;2)2)模擬量:連續(xù)變化的物理量,須經(jīng)模擬量:連續(xù)變化的物理量,須經(jīng)A/DA/D或或D/AD/A轉(zhuǎn)換;轉(zhuǎn)換;3)3)開關(guān)量:開關(guān)量: 1 1位的位的“0”0”或或“1”1”。2. 2. 狀態(tài)信息狀態(tài)信息 反映外設(shè)當(dāng)前所處工作狀態(tài)的信息,每種狀態(tài)用反映外設(shè)當(dāng)前所處工作狀態(tài)的信息,每種狀態(tài)用1 1位表示。位表示。CPUCPU根據(jù)這些狀態(tài)信息決定對外設(shè)進行操作或控制。如輸入設(shè)根據(jù)這些狀態(tài)信息決定對外設(shè)進行操作或控制。如輸入設(shè)備數(shù)據(jù)是否準(zhǔn)備好(備數(shù)據(jù)是否準(zhǔn)備好(Ready=1?Ready=1?)、輸出設(shè)備是否空閑()、輸

8、出設(shè)備是否空閑(BusyBusy0 0?)。?)。3. 3. 控制信息控制信息用于控制外設(shè)的啟動或停止、是否允許中斷、設(shè)置外設(shè)的工作用于控制外設(shè)的啟動或停止、是否允許中斷、設(shè)置外設(shè)的工作方式等。方式等。二二. . 接口電路的基本結(jié)構(gòu)接口電路的基本結(jié)構(gòu)接口電路中的不同種類信息分別進入不同的被稱為接口電路中的不同種類信息分別進入不同的被稱為端口端口的寄的寄存器。存器。CPUCPU可對端口中的信息可對端口中的信息直接讀寫直接讀寫。一般的接口電路中都設(shè)置數(shù)據(jù)端口、狀態(tài)端口、命令一般的接口電路中都設(shè)置數(shù)據(jù)端口、狀態(tài)端口、命令/ /控制控制端口。端口。接口電路原理圖接口電路原理圖- -參考參考數(shù)據(jù)數(shù)據(jù)線線

9、控制控制線線狀態(tài)狀態(tài)線線DBCBAB數(shù)據(jù)輸入寄存器數(shù)據(jù)輸入寄存器(or 三態(tài)門三態(tài)門)數(shù)據(jù)輸出寄存器數(shù)據(jù)輸出寄存器(鎖存器鎖存器)狀態(tài)寄存器狀態(tài)寄存器(or 三態(tài)門三態(tài)門)命令寄存器命令寄存器譯碼譯碼電路電路控制控制邏輯邏輯CPUCPU外設(shè)外設(shè)1. 1. 三種信息應(yīng)通過不同的端口分別傳送三種信息應(yīng)通過不同的端口分別傳送。如數(shù)據(jù)輸入。如數(shù)據(jù)輸入/ /輸出輸出寄存器寄存器( (緩沖器)、狀態(tài)寄存器與命令控制寄存器各占一緩沖器)、狀態(tài)寄存器與命令控制寄存器各占一個端口,每個端口都有自己的個端口,每個端口都有自己的端口地址端口地址( (端口號端口號) )。2. 2. 外設(shè)的狀態(tài)作為一種輸入數(shù)據(jù),而外設(shè)

10、的狀態(tài)作為一種輸入數(shù)據(jù),而CPUCPU對外設(shè)的控制命令對外設(shè)的控制命令是作為一種輸出數(shù)據(jù)是作為一種輸出數(shù)據(jù), ,均可通過數(shù)據(jù)總線來分別傳送。均可通過數(shù)據(jù)總線來分別傳送。因此接口電路中的數(shù)據(jù)信息、狀態(tài)信息、控制信息因此接口電路中的數(shù)據(jù)信息、狀態(tài)信息、控制信息都可通過都可通過DBDB傳送傳送,但這三種信息在接口電路中存放于不同的端口,但這三種信息在接口電路中存放于不同的端口。3. 3. 端口地址端口地址由由CPUCPU地址總線的低地址總線的低8 8位位(I/O(I/O端口直接尋址端口直接尋址) )或低或低1616位位(I/O(I/O端口間接尋址端口間接尋址) )地址信息來確定,地址信息來確定,CP

11、UCPU根據(jù)根據(jù)I/OI/O指指令提供的端口地址來尋址端口令提供的端口地址來尋址端口, ,然后同外設(shè)交換信息。然后同外設(shè)交換信息。三三. I/O. I/O端口端口1. 1. I/OI/O端口:端口:指指I/OI/O接口電路中能被接口電路中能被CPUCPU直接直接訪問的寄存器或某訪問的寄存器或某些特定部件。些特定部件。CPUCPU通過端口發(fā)送命令、讀取狀態(tài)和傳送數(shù)據(jù)。通過端口發(fā)送命令、讀取狀態(tài)和傳送數(shù)據(jù)。一個接口可以有幾個端口,如命令口、狀態(tài)口、數(shù)據(jù)口等。一個接口可以有幾個端口,如命令口、狀態(tài)口、數(shù)據(jù)口等。有的接口包括的端口多,有的少。有的接口包括的端口多,有的少。2. 2. CPUCPU對端口

12、的操作不同對端口的操作不同:有的端口只能讀、或只能寫,有的:有的端口只能讀、或只能寫,有的既可以讀又可以寫。既可以讀又可以寫。3. 3. 一般一個端口只能寫入或讀出一種信息一般一個端口只能寫入或讀出一種信息。但也有幾種信息共用一個端口,如但也有幾種信息共用一個端口,如82558255的一個命令口可以接的一個命令口可以接收兩種不同命令,收兩種不同命令,8259A8259A的一個命令口可以接收四種不同命令的一個命令口可以接收四種不同命令。四四. I/O. I/O端口的編址方式端口的編址方式-選講選講統(tǒng)一編址和獨立編址統(tǒng)一編址和獨立編址1. 1. 統(tǒng)一編址統(tǒng)一編址把外設(shè)接口與內(nèi)存統(tǒng)一進行編址把外設(shè)接

13、口與內(nèi)存統(tǒng)一進行編址。各占據(jù)統(tǒng)一地址空間的不同。各占據(jù)統(tǒng)一地址空間的不同部分。部分。優(yōu)點優(yōu)點:指令統(tǒng)一,靈活;訪問:指令統(tǒng)一,靈活;訪問控制信號統(tǒng)一??刂菩盘柦y(tǒng)一。 缺點缺點: :內(nèi)存可用地址空間減小內(nèi)存可用地址空間減??;延長;延長I/OI/O操作時間。操作時間。FFFFFHFFFFFH00000H00000H地址空間地址空間( (共共1MB)1MB)內(nèi)存地址內(nèi)存地址(960KB)(960KB)I/OI/O地址地址(64KB)(64KB)EFFFFHEFFFFHF0000HF0000H2. 2. 獨立編址獨立編址外設(shè)地址空間和內(nèi)存地址空間相互獨立,由外設(shè)地址空間和內(nèi)存地址空間相互獨立,由M/M

14、/IOIO信號區(qū)分。信號區(qū)分。優(yōu)點優(yōu)點:內(nèi)存地址空間不受:內(nèi)存地址空間不受I/OI/O編址的影響。編址的影響。缺點缺點:I/OI/O指令(指令(ININ,OUTOUT)功能較弱。)功能較弱。8 80 08 88 8總線A19-A0 A15-A0MEMR、MEMW IOR、IOW 存儲器存儲器I/O接口接口五五. 8086/8088 CPU. 8086/8088 CPU的的I/OI/O編址方式編址方式1. 1. 采用采用I/OI/O獨立編址獨立編址方式方式( (但地址線與存儲器共用但地址線與存儲器共用) )。2. 2. 地址線上的地址信號地址線上的地址信號用用M/M/IOIO (IO/ (IO/

15、M M) )來區(qū)分來區(qū)分:M/M/IOIO =0 =0時為時為I/OI/O地址;地址; M/ M/IOIO =1 =1時為存儲器地址。時為存儲器地址。3. I/O3. I/O地址只使用地址只使用2020根地址線中的根地址線中的1616根根:A A1515 A A0 0。4. I/O4. I/O地址范圍為地址范圍為0 0FFFFHFFFFH,可尋址的,可尋址的I/OI/O端口數(shù)為端口數(shù)為64K(65536)64K(65536)個。個。IBM PCIBM PC只使用了只使用了10241024個個I/OI/O地址地址(0(03FFH)3FFH)。6.26.2 CPUCPU與外設(shè)之間與外設(shè)之間數(shù)據(jù)傳輸

16、的方式數(shù)據(jù)傳輸?shù)姆绞紺PUCPU與外設(shè)之間的數(shù)據(jù)傳送與外設(shè)之間的數(shù)據(jù)傳送, ,通常采用以下通常采用以下3 3種種I/OI/O傳送方式:傳送方式: 程序傳送程序傳送、 中斷傳送中斷傳送、 DMADMA傳送傳送程序傳送方式、中斷傳送方式主要由程序傳送方式、中斷傳送方式主要由軟件實現(xiàn)軟件實現(xiàn),數(shù)據(jù)傳輸,數(shù)據(jù)傳輸過程需要過程需要CPUCPU的干預(yù);的干預(yù);DMADMA傳送方式主要由傳送方式主要由硬件實現(xiàn)硬件實現(xiàn),數(shù)據(jù)傳輸過程不需要,數(shù)據(jù)傳輸過程不需要CPUCPU的的干預(yù)。干預(yù)。6.2.1 6.2.1 程序傳送程序傳送6.2.1.1 6.2.1.1 無條件傳送無條件傳送程序傳送是指程序傳送是指CPUCP

17、U與外設(shè)間的數(shù)據(jù)交換在程序控制(即與外設(shè)間的數(shù)據(jù)交換在程序控制(即ININ或或OUTOUT指令控制指令控制) )下進行。分為無條件傳送和程序查詢傳送。下進行。分為無條件傳送和程序查詢傳送。6.2.1.1 6.2.1.1 無條件傳送(同步傳送)無條件傳送(同步傳送)適用于適用于總是處于準(zhǔn)備好狀態(tài)總是處于準(zhǔn)備好狀態(tài)的或的或在某些固定時刻處于數(shù)據(jù)就在某些固定時刻處于數(shù)據(jù)就緒或準(zhǔn)備接收狀態(tài)緒或準(zhǔn)備接收狀態(tài)外設(shè)。外設(shè)。如:開關(guān)、發(fā)光器件如:開關(guān)、發(fā)光器件( (如發(fā)光二極管、如發(fā)光二極管、7 7段數(shù)碼管、燈泡等段數(shù)碼管、燈泡等) )、繼電器、步進電機、機械式傳感器等。、繼電器、步進電機、機械式傳感器等。優(yōu)

18、點優(yōu)點:軟件及接口硬件簡單。:軟件及接口硬件簡單。缺點缺點:只適用于簡單外設(shè),適應(yīng)范圍較窄。:只適用于簡單外設(shè),適應(yīng)范圍較窄。一一. . 無條件傳送無條件傳送輸入輸出原理圖輸入輸出原理圖輸出鎖存器輸出鎖存器( (數(shù)據(jù)輸出端口數(shù)據(jù)輸出端口) )輸入緩沖器輸入緩沖器( (數(shù)據(jù)輸入端口數(shù)據(jù)輸入端口) )輸入緩沖器輸入緩沖器:輸入數(shù)據(jù)時,因簡單外設(shè)保持數(shù)據(jù)時間相對:輸入數(shù)據(jù)時,因簡單外設(shè)保持數(shù)據(jù)時間相對CPUCPU接收速度較接收速度較長,直接使用三態(tài)緩沖器與長,直接使用三態(tài)緩沖器與CPUCPU數(shù)據(jù)線相連即可。數(shù)據(jù)線相連即可。輸出鎖存器輸出鎖存器:輸出數(shù)據(jù)時,因:輸出數(shù)據(jù)時,因CPUCPU保持待發(fā)送數(shù)據(jù)

19、時間相對外設(shè)接收速度保持待發(fā)送數(shù)據(jù)時間相對外設(shè)接收速度較短,故需要在數(shù)據(jù)線上加鎖存器以將較短,故需要在數(shù)據(jù)線上加鎖存器以將CPUCPU發(fā)送的數(shù)據(jù)保持較長時間。發(fā)送的數(shù)據(jù)保持較長時間。鎖存允許端鎖存允許端CECE=1=1時,時,DBDB上新的數(shù)據(jù)不能進入鎖存器;只有當(dāng)確知外設(shè)取走上新的數(shù)據(jù)不能進入鎖存器;只有當(dāng)確知外設(shè)取走鎖存器中數(shù)據(jù),才使鎖存器中數(shù)據(jù),才使CECE=0=0,新數(shù)據(jù)進入鎖存器保存。,新數(shù)據(jù)進入鎖存器保存。二二. . 無條件傳送無條件傳送輸入輸出過程輸入輸出過程輸入時輸入時,假定假定來自外設(shè)的數(shù)據(jù)已輸入至三態(tài)緩沖器;來自外設(shè)的數(shù)據(jù)已輸入至三態(tài)緩沖器;當(dāng)當(dāng)CPUCPU執(zhí)行執(zhí)行ININ

20、指令指令時,所指定的時,所指定的端口地址端口地址經(jīng)地址總線的低經(jīng)地址總線的低1616位或低位或低8 8位送至地址譯碼器,位送至地址譯碼器,CPUCPU進入了進入了輸入周期輸入周期, ,選中選中的地址信號和的地址信號和IO/IO/M M(及(及RDRD)相與后)相與后, ,去去選通選通輸入三態(tài)緩沖輸入三態(tài)緩沖器,把外設(shè)的數(shù)據(jù)與數(shù)據(jù)總線器,把外設(shè)的數(shù)據(jù)與數(shù)據(jù)總線連通并讀入連通并讀入CPUCPU。輸出時輸出時,假定假定CPUCPU的輸出信息經(jīng)數(shù)據(jù)總線已送到輸出鎖存的輸出信息經(jīng)數(shù)據(jù)總線已送到輸出鎖存器的輸入端;器的輸入端;當(dāng)當(dāng)CPUCPU執(zhí)行執(zhí)行OUTOUT指令指令時時, ,端口地址端口地址由地址總線

21、的低位地址由地址總線的低位地址送至地址譯碼器,送至地址譯碼器,CPUCPU進入了進入了輸出周期輸出周期, ,所選中的地址信號所選中的地址信號和和IO/IO/M M (及(及WRWR 信號)相與后,去信號)相與后,去選通選通鎖存器,把輸出信鎖存器,把輸出信息送至鎖存器保留息送至鎖存器保留, ,由它再把信息由它再把信息通過外設(shè)輸出通過外設(shè)輸出。三三. . 必要的前提條件必要的前提條件CPUCPU執(zhí)行執(zhí)行ININ指令指令讀入讀入數(shù)據(jù)時數(shù)據(jù)時, ,外設(shè)的外設(shè)的數(shù)據(jù)必須是已準(zhǔn)備好數(shù)據(jù)必須是已準(zhǔn)備好的的,否則就會讀錯。,否則就會讀錯。CPUCPU執(zhí)行執(zhí)行OUTOUT指令指令輸出輸出數(shù)據(jù)時數(shù)據(jù)時, ,必須確

22、信所選必須確信所選外設(shè)的鎖存器外設(shè)的鎖存器是空的是空的,即原有數(shù)據(jù)已被外設(shè)讀完。,即原有數(shù)據(jù)已被外設(shè)讀完。四四. . 無條件傳送實例無條件傳送實例例:一個采用同步傳送的數(shù)據(jù)采集系統(tǒng)如圖例:一個采用同步傳送的數(shù)據(jù)采集系統(tǒng)如圖6.46.4所示。所示。端口地址端口地址數(shù)據(jù)端口數(shù)據(jù)端口控制端口,控制端口,8 8位的寄存器位的寄存器1. 1. 數(shù)據(jù)采集系統(tǒng)說明數(shù)據(jù)采集系統(tǒng)說明這是一個這是一個1616位精度的數(shù)據(jù)采集系統(tǒng)。位精度的數(shù)據(jù)采集系統(tǒng)。被采集的數(shù)據(jù)是被采集的數(shù)據(jù)是8 8個模擬量,由繼電器繞組個模擬量,由繼電器繞組P0P0、P1P1、P7P7分分別控制觸點別控制觸點K0K0、K1K7K1K7逐個接通

23、。逐個接通。每次采樣用一個每次采樣用一個4 4位位( (每位為一個十進制數(shù)每位為一個十進制數(shù)) )數(shù)字電壓表測量數(shù)字電壓表測量,把被采樣的模擬量轉(zhuǎn)換成,把被采樣的模擬量轉(zhuǎn)換成1616位壓縮位壓縮BCDBCD代碼代碼( (即對應(yīng)即對應(yīng)4 4位十位十進制數(shù)的進制數(shù)的4 4個個BCDBCD碼碼),),高高8 8位和低位和低8 8位通過兩個不同的端口(其位通過兩個不同的端口(其地址分別為地址分別為10H10H和和11H)11H)輸入。輸入。CPUCPU通過端口通過端口20H 20H 輸出控制信號輸出控制信號, ,以控制某個繼電器的吸合以控制某個繼電器的吸合, ,實現(xiàn)采集不同通道的模擬量。實現(xiàn)采集不同通

24、道的模擬量。2. 2. 采集過程要求采集過程要求1. 1. 先斷開先斷開所有的繼電器線圈及觸頭所有的繼電器線圈及觸頭, ,不采集數(shù)據(jù)。不采集數(shù)據(jù)。2. 2. 延遲一段時間后延遲一段時間后, ,使使K0K0閉合閉合, ,采集第采集第1 1個通道的模擬量個通道的模擬量, ,并保并保持持一段時間一段時間, ,以使數(shù)字電壓表能將模擬電壓轉(zhuǎn)換為以使數(shù)字電壓表能將模擬電壓轉(zhuǎn)換為1616位位BCDBCD。3. 3. 分別將高分別將高8 8位與低位與低8 8位位BCDBCD碼碼存入內(nèi)存存入內(nèi)存, ,完成第完成第1 1個模擬量的個模擬量的輸入與存儲。輸入與存儲。4. 4. 利用移位與循環(huán)實現(xiàn)利用移位與循環(huán)實現(xiàn)8

25、 8個模擬量的個模擬量的依次采集依次采集、輸入與轉(zhuǎn)存、輸入與轉(zhuǎn)存。3. 3. 電磁繼電器示意圖電磁繼電器示意圖R RV VP PK K4. 4. 程序程序START: START: MOV DX,0100H MOV DX,0100H ;01HDH,;01HDH,用于設(shè)置吸合第用于設(shè)置吸合第1 1個繼電器代碼個繼電器代碼 ;00HDL,;00HDL,用于設(shè)置斷開所有繼電器代碼用于設(shè)置斷開所有繼電器代碼LEA BX,DSTOR LEA BX,DSTOR ; ;置輸入數(shù)據(jù)緩沖器的地址指針置輸入數(shù)據(jù)緩沖器的地址指針XOR AL,AL XOR AL,AL ; ;清清ALAL及進位位及進位位CF(XORC

26、F(XOR指令使指令使CFCF清零清零) )AGAIN: AGAIN: MOV AL,DLMOV AL,DLOUT 20H,AL OUT 20H,AL ; ;斷開所有繼電器線圈斷開所有繼電器線圈CALL NEAR DELAY1 CALL NEAR DELAY1 ; ;模擬繼電器觸點的釋放時間模擬繼電器觸點的釋放時間MOV AL,DHMOV AL,DHOUT 20H,AL OUT 20H,AL ; ;先使先使P0P0吸合吸合CALL NEAR DELAY2 CALL NEAR DELAY2 ; ;模擬觸點閉合及數(shù)字電壓表的轉(zhuǎn)換時間模擬觸點閉合及數(shù)字電壓表的轉(zhuǎn)換時間 IN AX,10H IN AX

27、,10H ; ;從數(shù)據(jù)端口從數(shù)據(jù)端口10H10H、11H11H輸入采集并經(jīng)轉(zhuǎn)換的數(shù)據(jù)輸入采集并經(jīng)轉(zhuǎn)換的數(shù)據(jù)MOV BX,AX MOV BX,AX ; ;電壓數(shù)據(jù)存入內(nèi)存電壓數(shù)據(jù)存入內(nèi)存INC BX INC BX INC BX INC BX ;BX;BX指向下一內(nèi)存單元,用于存儲下一電壓數(shù)據(jù)指向下一內(nèi)存單元,用于存儲下一電壓數(shù)據(jù)RCL DH,1 RCL DH,1 ;DH;DH左移左移( (大循環(huán)大循環(huán))1)1位位, ,為下一個觸點吸合作準(zhǔn)備為下一個觸點吸合作準(zhǔn)備JNC AGAIN JNC AGAIN ;8;8位都輸入完了嗎?位都輸入完了嗎?CF=0CF=0說明沒輸入完,循環(huán)說明沒輸入完,循環(huán)DO

28、NEDONE: ; ;輸入已完,則執(zhí)行別的程序。輸入已完,則執(zhí)行別的程序。 6.2.1.26.2.1.2 程序查詢傳送程序查詢傳送( (條件傳送、異步傳送條件傳送、異步傳送) )它也是一種程序傳送,但與前述無條件的同步傳送不同它也是一種程序傳送,但與前述無條件的同步傳送不同, ,是是有條件有條件的異步傳送。的異步傳送。條件是條件是: :在執(zhí)行輸入在執(zhí)行輸入(IN(IN指令指令) )或輸出或輸出(OUT(OUT指令指令) )前,要先查詢前,要先查詢接口中狀態(tài)寄存器的狀態(tài)。接口中狀態(tài)寄存器的狀態(tài)。輸入時輸入時, ,由該狀態(tài)信息指示要輸入的數(shù)據(jù)是否已由該狀態(tài)信息指示要輸入的數(shù)據(jù)是否已“準(zhǔn)備就準(zhǔn)備就緒

29、緒”,由此條件來決定是否立即執(zhí)行輸入;,由此條件來決定是否立即執(zhí)行輸入;輸出時輸出時, ,由它指示輸出設(shè)備是否由它指示輸出設(shè)備是否“空閑空閑”,由此條件來決,由此條件來決定是否立即執(zhí)行輸出。定是否立即執(zhí)行輸出。程序查詢傳送程序查詢傳送適用場合適用場合適用于外設(shè)并不總是準(zhǔn)備好,而且對傳送速率、傳送效率要適用于外設(shè)并不總是準(zhǔn)備好,而且對傳送速率、傳送效率要求不高的場合。求不高的場合。CPUCPU在與外設(shè)交換數(shù)據(jù)前必須詢問外設(shè)狀在與外設(shè)交換數(shù)據(jù)前必須詢問外設(shè)狀態(tài)態(tài)“你準(zhǔn)備好沒有?你準(zhǔn)備好沒有?”對外設(shè)的要求對外設(shè)的要求:外設(shè)能夠向接口提供設(shè)備狀態(tài)信息。:外設(shè)能夠向接口提供設(shè)備狀態(tài)信息。對接口的要求對

30、接口的要求:接口需要向:接口需要向CPUCPU提供能夠反映外設(shè)狀態(tài)的提供能夠反映外設(shè)狀態(tài)的狀態(tài)端口。狀態(tài)端口。優(yōu)點優(yōu)點:軟件比較簡單;:軟件比較簡單;缺點缺點:CPUCPU效率低,數(shù)據(jù)傳送的實時性差,速度較慢。效率低,數(shù)據(jù)傳送的實時性差,速度較慢。一一. . 程序查詢輸入程序查詢輸入= =1 1CPCP數(shù)據(jù)端口數(shù)據(jù)端口(DATA)(DATA)8 8位位( (輸入輸入) ) 狀態(tài)端口狀態(tài)端口(STATUS)(STATUS)只用只用1 1位位( (輸入輸入) )圖圖6.5 6.5 查詢式輸入的接口電路查詢式輸入的接口電路CP R D QCP R D Q1 1 11 1 11 0 01 0 0 0

31、0 0 0D D觸發(fā)器部分邏輯圖觸發(fā)器部分邏輯圖程序查詢輸入過程程序查詢輸入過程當(dāng)輸入裝置的當(dāng)輸入裝置的數(shù)據(jù)已準(zhǔn)備好后數(shù)據(jù)已準(zhǔn)備好后發(fā)出一個發(fā)出一個STBSTB選通信號,一選通信號,一邊把數(shù)據(jù)邊把數(shù)據(jù)送入鎖存器送入鎖存器,一邊使,一邊使D D觸發(fā)器為觸發(fā)器為“”,給出給出“準(zhǔn)備準(zhǔn)備”READYREADY的狀態(tài)信號的狀態(tài)信號。而數(shù)據(jù)與狀態(tài)必須有不同的端口分別輸入至而數(shù)據(jù)與狀態(tài)必須有不同的端口分別輸入至CPUCPU數(shù)據(jù)總線數(shù)據(jù)總線。當(dāng)。當(dāng)CPUCPU要由外設(shè)輸入數(shù)據(jù)時,要由外設(shè)輸入數(shù)據(jù)時,CPUCPU先輸入狀態(tài)信息先輸入狀態(tài)信息至累加至累加器,檢查數(shù)據(jù)是否已準(zhǔn)備好;當(dāng)數(shù)據(jù)已準(zhǔn)備好器,檢查數(shù)據(jù)是否已

32、準(zhǔn)備好;當(dāng)數(shù)據(jù)已準(zhǔn)備好后,才輸入后,才輸入數(shù)據(jù)數(shù)據(jù)至累加器。讀入數(shù)據(jù)的命令,至累加器。讀入數(shù)據(jù)的命令,使?fàn)顟B(tài)信息清使?fàn)顟B(tài)信息清0 0( (通過先通過先使使D D觸發(fā)器復(fù)位觸發(fā)器復(fù)位) ),防止防止CPUCPU重復(fù)讀入同一數(shù)據(jù)重復(fù)讀入同一數(shù)據(jù)。查詢輸入部分的程序查詢輸入部分的程序查詢輸入部分的程序:查詢輸入部分的程序: POLL:POLL:IN AL,STATUSPORT ;IN AL,STATUSPORT ;讀狀態(tài)端口的信息讀狀態(tài)端口的信息 TEST AL,80TEST AL,80 ; ;設(shè)設(shè)“準(zhǔn)備就緒準(zhǔn)備就緒”(READY)(READY)信息在信息在D7D7位位 JE POLL ;JE PO

33、LL ;未未“準(zhǔn)備就緒準(zhǔn)備就緒”,則循環(huán)再查,則循環(huán)再查 IN AL,DATA_PORT ;IN AL,DATA_PORT ;已已”準(zhǔn)備就緒準(zhǔn)備就緒”(READY=1),(READY=1),則讀入數(shù)據(jù)則讀入數(shù)據(jù)圖圖6.7 6.7 查詢式輸入程序流程圖查詢式輸入程序流程圖二二. . 程序查詢輸出程序查詢輸出圖圖6.8 6.8 查詢式輸出的接口電路查詢式輸出的接口電路數(shù)據(jù)端口數(shù)據(jù)端口( (鎖存器鎖存器) )8 8位位( (輸出輸出) )狀態(tài)端口狀態(tài)端口(G3)(G3)只用只用1 1位位( (輸入輸入) )“BUSYBUSY”(1(1位位) )程序查詢輸出過程程序查詢輸出過程當(dāng)輸出裝置把當(dāng)輸出裝置把

34、CPUCPU上一次輸出的數(shù)據(jù)上一次輸出的數(shù)據(jù)可靠輸出后可靠輸出后,發(fā)出一,發(fā)出一個個ACKACK信號,信號,使使D D觸發(fā)器清觸發(fā)器清0 0(使(使BUSY=0BUSY=0);CPUCPU讀入此狀態(tài)讀入此狀態(tài)信息后(即信息后(即BUSY=0BUSY=0,經(jīng),經(jīng)G3G3DBDB的的D7D7),知),知道外設(shè)為空,道外設(shè)為空,執(zhí)行輸出指令執(zhí)行輸出指令;輸出指令執(zhí)行后,地址信號和輸出指令執(zhí)行后,地址信號和M M/IO/IO及及WRWR相與,經(jīng)相與,經(jīng)G1G1發(fā)選通發(fā)選通信號,把信號,把DBDB上的輸出數(shù)據(jù)送入鎖存器上的輸出數(shù)據(jù)送入鎖存器;同時,同時,觸發(fā)觸發(fā)D D觸發(fā)器為觸發(fā)器為1 1:一方面通知外

35、設(shè)數(shù)據(jù)已準(zhǔn)備好,:一方面通知外設(shè)數(shù)據(jù)已準(zhǔn)備好,可以輸出可以輸出;另一方面數(shù)據(jù)在由外設(shè)輸出完之前;另一方面數(shù)據(jù)在由外設(shè)輸出完之前D D一直為一直為1 1,告知告知CPUCPU外設(shè)狀態(tài)外設(shè)狀態(tài)BUSY=1BUSY=1,阻止阻止CPUCPU輸出新數(shù)據(jù)輸出新數(shù)據(jù),直至外設(shè),直至外設(shè)輸出完數(shù)據(jù)發(fā)出一個輸出完數(shù)據(jù)發(fā)出一個ACKACK信號,使信號,使D D觸發(fā)器清觸發(fā)器清0 0。查詢輸出部分的程序查詢輸出部分的程序查詢輸出部分的程序:查詢輸出部分的程序:POLL: IN AL,STATUS_PORT ;POLL: IN AL,STATUS_PORT ;查狀態(tài)端口中的狀態(tài)信息查狀態(tài)端口中的狀態(tài)信息D7 D7

36、TEST AL TEST AL,80H 80H JNE POLL JNE POLL; ;D7;D71 1即即BUSYBUSY1,1,則循環(huán)再查則循環(huán)再查 MOV ALMOV AL,STORE ;STORE ;否則否則, ,外設(shè)空閑外設(shè)空閑, ,由內(nèi)存讀取數(shù)據(jù)由內(nèi)存讀取數(shù)據(jù) OUT DATA_PORT,AL ;OUT DATA_PORT,AL ;輸出到輸出到DATADATA地址端口單元地址端口單元圖圖6.10 6.10 查詢式輸出程序流程圖查詢式輸出程序流程圖三三. . 程序查詢傳送實例程序查詢傳送實例例例 一個采用查詢方式的數(shù)據(jù)采集系統(tǒng)一個采用查詢方式的數(shù)據(jù)采集系統(tǒng) 數(shù)據(jù)輸入端口數(shù)據(jù)輸入端口狀

37、態(tài)端口狀態(tài)端口控制端口控制端口采集過程要求采集過程要求(1) (1) 初始化。初始化。(2) (2) 先停止先停止A/DA/D轉(zhuǎn)換。轉(zhuǎn)換。(3) (3) 啟動啟動A/DA/D轉(zhuǎn)換,查輸入狀態(tài)信息轉(zhuǎn)換,查輸入狀態(tài)信息READYREADY。(4) (4) 當(dāng)輸入數(shù)據(jù)已轉(zhuǎn)換完(當(dāng)輸入數(shù)據(jù)已轉(zhuǎn)換完(READYREADY1,1,即準(zhǔn)備就緒)即準(zhǔn)備就緒), ,則經(jīng)由則經(jīng)由端口輸入至端口輸入至CPUCPU的累加器的累加器ALAL中中, ,并轉(zhuǎn)送內(nèi)存。并轉(zhuǎn)送內(nèi)存。(5) (5) 設(shè)置下一個內(nèi)存單元與下一個輸入通道設(shè)置下一個內(nèi)存單元與下一個輸入通道, ,循環(huán)次。循環(huán)次。數(shù)據(jù)采集過程的程序數(shù)據(jù)采集過程的程序STA

38、RE: MOV DL,0F8H ;STARE: MOV DL,0F8H ;設(shè)置啟動設(shè)置啟動A/DA/D轉(zhuǎn)換的信號轉(zhuǎn)換的信號, ,且低位選通且低位選通; ;多路開關(guān)通道多路開關(guān)通道 MOV AX,SEG DSTOR ;MOV AX,SEG DSTOR ;設(shè)置輸入數(shù)據(jù)的內(nèi)存單元地址指針設(shè)置輸入數(shù)據(jù)的內(nèi)存單元地址指針 MOV ES,AXMOV ES,AX LEA DI,DSTOR LEA DI,DSTORAGAINAGAIN:MOV AL,DLMOV AL,DL AND AL,0EFH ; AND AL,0EFH ;使使D4D4 OUT 04,AL ;OUT 04,AL ;停止停止A/DA/D轉(zhuǎn)換轉(zhuǎn)

39、換 CALL DELAY ;CALL DELAY ;等待停止等待停止A/DA/D轉(zhuǎn)換操作的完成轉(zhuǎn)換操作的完成 MOV AL,DL MOV AL,DL OUT 04,AL ; OUT 04,AL ;選輸入通道并啟動選輸入通道并啟動A/DA/D轉(zhuǎn)換轉(zhuǎn)換POLLPOLL: IN AL,02 ;IN AL,02 ;輸入狀態(tài)信息輸入狀態(tài)信息 SHR AL,1 ;SHR AL,1 ;查查ALAL的的D0D0 JNC POLL ; JNC POLL ;判判READY=1?READY=1?若若D0=0,D0=0,未準(zhǔn)備好未準(zhǔn)備好, ,則循環(huán)再查則循環(huán)再查 IN AL,03 ;IN AL,03 ;若已準(zhǔn)備就緒若

40、已準(zhǔn)備就緒, ,則經(jīng)端口將采樣數(shù)據(jù)輸入至則經(jīng)端口將采樣數(shù)據(jù)輸入至ALAL STOSB ; STOSB ;輸入數(shù)據(jù)轉(zhuǎn)送內(nèi)存單元輸入數(shù)據(jù)轉(zhuǎn)送內(nèi)存單元 IN CDL ;IN CDL ;輸入模擬量通道增輸入模擬量通道增1 1 JNE AGAIN ;8 JNE AGAIN ;8個模擬量未輸入完則循環(huán)個模擬量未輸入完則循環(huán) ; ;輸入已完輸入已完, ,執(zhí)行別的程序執(zhí)行別的程序四四. . 小結(jié)小結(jié)1.1.過程過程:程序查詢輸入程序查詢輸入/ /輸出傳送方式的執(zhí)行步驟是:輸出傳送方式的執(zhí)行步驟是: ( ()CPU)CPU從從I/OI/O接口的狀態(tài)端口中接口的狀態(tài)端口中讀入讀入所尋址的外設(shè)的所尋址的外設(shè)的狀態(tài)信

41、息狀態(tài)信息“READY”READY”或或“BUSY”BUSY”。( () )根據(jù)讀入的狀態(tài)信息進行根據(jù)讀入的狀態(tài)信息進行判斷判斷。程序查詢輸入時,若狀態(tài)。程序查詢輸入時,若狀態(tài)信息信息READYREADY0 0,則外設(shè)數(shù)據(jù)未準(zhǔn)備好,則外設(shè)數(shù)據(jù)未準(zhǔn)備好,CPUCPU繼續(xù)等待查詢繼續(xù)等待查詢, ,直直至至READYREADY、外設(shè)已準(zhǔn)備好數(shù)據(jù)、外設(shè)已準(zhǔn)備好數(shù)據(jù), ,執(zhí)行下一步操作執(zhí)行下一步操作; ;程序查程序查詢輸出時,若狀態(tài)信息詢輸出時,若狀態(tài)信息BUSYBUSY,則外設(shè)正在,則外設(shè)正在“忙忙”,CPU,CPU繼繼續(xù)等待查詢續(xù)等待查詢, ,直至外設(shè)直至外設(shè)“空閑空閑”、BUSYBUSY0 0時,

42、執(zhí)行下一步操時,執(zhí)行下一步操作。作。( () )執(zhí)行輸入執(zhí)行輸入/ /輸出指令輸出指令,進行,進行I/OI/O傳送。完成數(shù)據(jù)的輸入傳送。完成數(shù)據(jù)的輸入/ /輸輸出,并將外設(shè)的狀態(tài)信息復(fù)位,一個位的數(shù)據(jù)傳送結(jié)束。出,并將外設(shè)的狀態(tài)信息復(fù)位,一個位的數(shù)據(jù)傳送結(jié)束。2.2.主要優(yōu)點主要優(yōu)點:當(dāng)計算機工作任務(wù)較輕或當(dāng)計算機工作任務(wù)較輕或CPUCPU不太忙時,可以應(yīng)用程序查詢不太忙時,可以應(yīng)用程序查詢輸入輸出傳送方式輸入輸出傳送方式, ,它能較好地協(xié)調(diào)外設(shè)與它能較好地協(xié)調(diào)外設(shè)與CPUCPU之間定時之間定時的差別;程序和接口電路比較簡單。的差別;程序和接口電路比較簡單。3.3.主要缺點主要缺點: :CPU

43、CPU必須作程序必須作程序等待循環(huán)等待循環(huán), ,不斷測試外設(shè)的狀態(tài)不斷測試外設(shè)的狀態(tài), ,直至外設(shè)為直至外設(shè)為交換數(shù)據(jù)準(zhǔn)備就緒時為止。這種循環(huán)等待方式很花費時間交換數(shù)據(jù)準(zhǔn)備就緒時為止。這種循環(huán)等待方式很花費時間,大大降低了,大大降低了CPUCPU的運行效率。的運行效率。6.2.2 6.2.2 中斷傳送中斷傳送1.1.定義定義:中斷是外設(shè)或其他中斷源中止中斷是外設(shè)或其他中斷源中止CPUCPU當(dāng)前正在執(zhí)行的程序當(dāng)前正在執(zhí)行的程序, ,而轉(zhuǎn)而轉(zhuǎn)向為該外設(shè)服務(wù)向為該外設(shè)服務(wù)( (如完成它與如完成它與CPUCPU之間傳送一個數(shù)據(jù))的程之間傳送一個數(shù)據(jù))的程序序, ,一旦服務(wù)結(jié)束,又返回原程序繼續(xù)工作。一

44、旦服務(wù)結(jié)束,又返回原程序繼續(xù)工作。2.2.執(zhí)行中斷時間執(zhí)行中斷時間:CPUCPU在每一條指令執(zhí)行的結(jié)尾階段,均查詢是否有中斷請求在每一條指令執(zhí)行的結(jié)尾階段,均查詢是否有中斷請求信號;若有且此中斷允許執(zhí)行,則暫停執(zhí)行現(xiàn)行的程序,信號;若有且此中斷允許執(zhí)行,則暫停執(zhí)行現(xiàn)行的程序,轉(zhuǎn)去為申請中斷的某個外設(shè)服務(wù),以完成數(shù)據(jù)傳送。轉(zhuǎn)去為申請中斷的某個外設(shè)服務(wù),以完成數(shù)據(jù)傳送。優(yōu)缺點優(yōu)缺點CPUCPU無需循環(huán)查詢外設(shè)狀態(tài),而是外部設(shè)備在需要進行數(shù)據(jù)無需循環(huán)查詢外設(shè)狀態(tài),而是外部設(shè)備在需要進行數(shù)據(jù)傳送時才中斷傳送時才中斷CPUCPU正在進行的工作,讓正在進行的工作,讓CPUCPU來為其服務(wù)。大來為其服務(wù)。大

45、大提高了大提高了CPUCPU的利用率。的利用率。優(yōu)點:優(yōu)點:CPUCPU效率高,實時性好,速度快。效率高,實時性好,速度快。缺點:需要編寫專門的中斷服務(wù)程序,較為復(fù)雜。缺點:需要編寫專門的中斷服務(wù)程序,較為復(fù)雜。6.2.3 6.2.3 直接存儲器存?。ㄖ苯哟鎯ζ鞔嫒。―MADMA)傳輸)傳輸一一. DMA. DMA方式產(chǎn)生的背景方式產(chǎn)生的背景前兩類前兩類I/OI/O方式都需要方式都需要CPUCPU作為中介:外設(shè)作為中介:外設(shè) CPU CPU 內(nèi)存內(nèi)存 兩個含義:兩個含義:軟件軟件:外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過:外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過CPUCPU執(zhí)行程序來完執(zhí)行程序來完成的;成的; (

46、 (即即“IN IN 累加器,端口號累加器,端口號”或或 “ “OUT OUT 端口號,累加器端口號,累加器”) )硬件硬件:I/OI/O接口和存儲器的讀寫控制信號、地址信號都是由接口和存儲器的讀寫控制信號、地址信號都是由CPUCPU發(fā)出的(總線由發(fā)出的(總線由CPUCPU控制)。控制)。缺點缺點:程序的執(zhí)行速度限定了傳送的最大速度:程序的執(zhí)行速度限定了傳送的最大速度( (約為幾十約為幾十KB/KB/秒秒) )。二二. . 何為何為DMADMA傳輸?傳輸?1.1.基本形式基本形式 : 外設(shè)外設(shè) 內(nèi)存內(nèi)存外設(shè)直接與存儲器進行數(shù)據(jù)交換外設(shè)直接與存儲器進行數(shù)據(jù)交換 ,CPUCPU不再擔(dān)當(dāng)數(shù)據(jù)傳輸?shù)牟?/p>

47、再擔(dān)當(dāng)數(shù)據(jù)傳輸?shù)闹薪檎撸ㄖ薪檎撸–PUCPU此時被掛起)。此時被掛起)。2.2.總線控制總線控制:由:由DMADMA控制器(控制器(DMACDMAC)進行控制(此時)進行控制(此時CPUCPU要放要放棄總線控制權(quán)),內(nèi)存棄總線控制權(quán)),內(nèi)存/ /外設(shè)的地址和讀寫控制信號均由外設(shè)的地址和讀寫控制信號均由DMACDMAC提供。提供。3.3.優(yōu)點優(yōu)點:數(shù)據(jù)傳輸由:數(shù)據(jù)傳輸由DMACDMAC來控制,數(shù)據(jù)直接在內(nèi)存和外設(shè)之來控制,數(shù)據(jù)直接在內(nèi)存和外設(shè)之間交換,可以達到很高的傳輸速率(可達幾間交換,可以達到很高的傳輸速率(可達幾MB/MB/秒);在秒);在連續(xù)傳送連續(xù)傳送大量的數(shù)據(jù)如數(shù)據(jù)塊大量的數(shù)據(jù)如數(shù)據(jù)

48、塊等時,效率極高。等時,效率極高。4. DMA4. DMA數(shù)據(jù)傳輸?shù)臄U充形式數(shù)據(jù)傳輸?shù)臄U充形式: MEM MEM : MEM MEM 、I/O I/OI/O I/O數(shù)據(jù)數(shù)據(jù)三三. DMA. DMA輸出單個數(shù)據(jù)的過程輸出單個數(shù)據(jù)的過程HOLD=1HOLD=1HLDA=1HLDA=1HOLD=0HOLD=0HLDA=0HLDA=06.3 6.3 中斷技術(shù)中斷技術(shù)中斷是一種十分重要而復(fù)雜的中斷是一種十分重要而復(fù)雜的軟硬件相結(jié)合軟硬件相結(jié)合的技術(shù),它的出的技術(shù),它的出現(xiàn)給計算機結(jié)構(gòu)與應(yīng)用帶來了新的突破。現(xiàn)給計算機結(jié)構(gòu)與應(yīng)用帶來了新的突破。本節(jié)將介紹中斷的基本概念、中斷的響應(yīng)與處理過程、優(yōu)先本節(jié)將介紹中

49、斷的基本概念、中斷的響應(yīng)與處理過程、優(yōu)先權(quán)的安排等有關(guān)問題。權(quán)的安排等有關(guān)問題。6.3.1 6.3.1 中斷概述中斷概述一一. . 中斷與中斷源中斷與中斷源1.1.中斷與中斷源中斷與中斷源中斷中斷:使:使CPUCPU暫停暫停運行當(dāng)前的程序,按照運行當(dāng)前的程序,按照更為急迫更為急迫事件的需事件的需要要轉(zhuǎn)去執(zhí)行轉(zhuǎn)去執(zhí)行為中斷服務(wù)的程序為中斷服務(wù)的程序( (即中斷服務(wù)程序即中斷服務(wù)程序) );待該程序;待該程序處理完后,處理完后,再返回再返回運行原來的程序,稱為中斷運行原來的程序,稱為中斷( (技術(shù)技術(shù)) )。中斷源中斷源:引起中斷的事件或原因,或發(fā)出中斷申請的來源。:引起中斷的事件或原因,或發(fā)出中

50、斷申請的來源。2.2.中斷源的類別中斷源的類別(1)(1)外部設(shè)備外部設(shè)備: :中、低速外設(shè)。中、低速外設(shè)。( (高速外設(shè)如磁盤進行高速外設(shè)如磁盤進行DMADMA傳輸傳輸) )(2)(2)實時時鐘實時時鐘:自動控制中的外部時鐘,當(dāng)定時已到,則向:自動控制中的外部時鐘,當(dāng)定時已到,則向CPUCPU發(fā)中斷申請。發(fā)中斷申請。(3)(3)故障源故障源:當(dāng)發(fā)生溢出錯誤、存儲器讀出出錯、外設(shè)故障、:當(dāng)發(fā)生溢出錯誤、存儲器讀出出錯、外設(shè)故障、電源掉電、越限報警等,計算機內(nèi)部的故障檢測裝置能使電源掉電、越限報警等,計算機內(nèi)部的故障檢測裝置能使CPUCPU中斷。中斷。(4)(4)為調(diào)試程序設(shè)置的中斷源為調(diào)試程序

51、設(shè)置的中斷源:CPUCPU執(zhí)行了特殊指令執(zhí)行了特殊指令( (自陷指令自陷指令) )或由硬件電路引起的中斷,主要供用戶調(diào)試程序采取的檢查或由硬件電路引起的中斷,主要供用戶調(diào)試程序采取的檢查手段,如斷點設(shè)置、單步中斷等。手段,如斷點設(shè)置、單步中斷等。其中前三種為其中前三種為隨機中斷源隨機中斷源,由此引起的中斷稱為,由此引起的中斷稱為強迫中斷強迫中斷。最后一種為最后一種為自愿中斷自愿中斷。二二. . 中斷系統(tǒng)及其功能中斷系統(tǒng)及其功能1. 1. 能響應(yīng)中斷、處理中斷與返回能響應(yīng)中斷、處理中斷與返回判斷是否響應(yīng)該中斷請求判斷是否響應(yīng)該中斷請求保護斷點和現(xiàn)場保護斷點和現(xiàn)場找中斷服務(wù)程序的入口,并清找中斷服

52、務(wù)程序的入口,并清除中斷請求觸發(fā)器;除中斷請求觸發(fā)器;恢復(fù)現(xiàn)場和斷點恢復(fù)現(xiàn)場和斷點返回斷點返回斷點2. 2. 能實現(xiàn)優(yōu)先權(quán)排隊能實現(xiàn)優(yōu)先權(quán)排隊當(dāng)系統(tǒng)中有多個中斷源時,有可能出現(xiàn)兩個或兩個以上中斷當(dāng)系統(tǒng)中有多個中斷源時,有可能出現(xiàn)兩個或兩個以上中斷源同時提出中斷請求。源同時提出中斷請求。CPUCPU應(yīng)能夠根據(jù)事先確定的優(yōu)先權(quán)應(yīng)能夠根據(jù)事先確定的優(yōu)先權(quán)由高到低依次處理這些中斷。由高到低依次處理這些中斷。3. 3. 中斷嵌套中斷嵌套高級中斷源能中斷低級的中斷。如圖高級中斷源能中斷低級的中斷。如圖6.146.14所示。所示。三三. . 中斷的應(yīng)用中斷的應(yīng)用能解決快速能解決快速CPUCPU與中、慢速外設(shè)

53、速度不匹配的矛盾以提高與中、慢速外設(shè)速度不匹配的矛盾以提高主機的工作效率;主機的工作效率;在實現(xiàn)分時操作、實時處理、故障處理、多機連接以及人在實現(xiàn)分時操作、實時處理、故障處理、多機連接以及人機聯(lián)系等方面均有廣泛的應(yīng)用。機聯(lián)系等方面均有廣泛的應(yīng)用。6.3.2 6.3.2 單個中斷源的中斷單個中斷源的中斷以外部可屏蔽中斷為例以外部可屏蔽中斷為例,介紹單個中斷源的情況。,介紹單個中斷源的情況。簡單的中斷過程應(yīng)包括:簡單的中斷過程應(yīng)包括:中斷請求、中斷請求、中斷響應(yīng)、中斷響應(yīng)、中斷處理和中斷處理和中斷返回等環(huán)節(jié)。中斷返回等環(huán)節(jié)。6.3.2.1 6.3.2.1 中斷源向中斷源向CPUCPU發(fā)中斷請求信號

54、發(fā)中斷請求信號的的2 2個條件個條件1. 1. 設(shè)置中斷請求觸發(fā)器設(shè)置中斷請求觸發(fā)器每一個中斷源,要能向每一個中斷源,要能向CPUCPU發(fā)中斷請求信號發(fā)中斷請求信號, ,首先應(yīng)能由它的首先應(yīng)能由它的接口電路提出中斷請求,且該請求能保持著接口電路提出中斷請求,且該請求能保持著, ,直至直至CPUCPU接受接受并響應(yīng)該中斷請求后并響應(yīng)該中斷請求后, ,才能清除它。才能清除它。 這要求在每個中斷源的接口電路中設(shè)置一個中斷請求觸發(fā)器這要求在每個中斷源的接口電路中設(shè)置一個中斷請求觸發(fā)器A,A,由它產(chǎn)生中斷請求,即由它產(chǎn)生中斷請求,即QA=1QA=1。2 2設(shè)置中斷屏蔽觸發(fā)器設(shè)置中斷屏蔽觸發(fā)器中斷請求能否

55、被允許以中斷請求信號中斷請求能否被允許以中斷請求信號( (如如INTR)INTR)發(fā)向發(fā)向CPUCPU,應(yīng),應(yīng)能受能受CPUCPU的控制,以增加處理中斷的靈活性。的控制,以增加處理中斷的靈活性。 這要求在接口電路中增設(shè)一個中斷屏蔽觸發(fā)器這要求在接口電路中增設(shè)一個中斷屏蔽觸發(fā)器B B,由,由CPUCPU通過通過指令控制其指令控制其QBQB端,進而控制中斷請求能否發(fā)向端,進而控制中斷請求能否發(fā)向CPUCPU。具有中斷請求觸發(fā)器具有中斷請求觸發(fā)器A A和中斷屏蔽觸發(fā)器和中斷屏蔽觸發(fā)器B B的接口電路的接口電路復(fù)位,防止復(fù)位,防止重復(fù)響應(yīng)同重復(fù)響應(yīng)同一中斷一中斷AB如何接收外設(shè)的中斷請求信號?如何接收

56、外設(shè)的中斷請求信號?條件條件:Q QB B=1/Q=1/QB B=0=0。(預(yù)先將控制端口寫。(預(yù)先將控制端口寫“0 0”,使得,使得Q QB B=1 =1 )過程過程:外設(shè)發(fā)中斷請求:外設(shè)發(fā)中斷請求“1 1”,使,使QA=1QA=1,經(jīng)與門送入,經(jīng)與門送入INTRINTR。 CPU CPU執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序“IN AL,DATAPORTIN AL,DATAPORT”讀入數(shù)據(jù);讀入數(shù)據(jù);同時使觸發(fā)器同時使觸發(fā)器A A清清0 0,防止重復(fù)響應(yīng)同一中斷。,防止重復(fù)響應(yīng)同一中斷。如何阻止接收外設(shè)的中斷請求信號?如何阻止接收外設(shè)的中斷請求信號?條件條件:Q QB B=0/Q=0/QB B

57、=1=1。(預(yù)先將控制端口寫。(預(yù)先將控制端口寫“1 1”,使得,使得Q QB B=0 =0 )過程過程:外設(shè)發(fā)中斷請求:外設(shè)發(fā)中斷請求“1 1”,使,使QA=1QA=1,被與門屏蔽,無法送,被與門屏蔽,無法送入入INTRINTR。6.3.2.2 CPU6.3.2.2 CPU響應(yīng)中斷的響應(yīng)中斷的2 2個條件個條件一一. CPU. CPU開放中斷開放中斷CPUCPU采樣到采樣到INTRINTR來的中斷請求信號后是否響應(yīng)它,由來的中斷請求信號后是否響應(yīng)它,由CPUCPU內(nèi)設(shè)內(nèi)設(shè)置的中斷允許觸發(fā)器置的中斷允許觸發(fā)器(IFF)(IFF)的狀態(tài)決定。的狀態(tài)決定。當(dāng)當(dāng)IFFIFF的輸出的輸出Q Q1 1時

58、,開中,響應(yīng);時,開中,響應(yīng);當(dāng)當(dāng)IFFIFF的輸出的輸出Q Q 0 0時,關(guān)中,不響應(yīng)。時,關(guān)中,不響應(yīng)。IFFIFF的狀態(tài)可由開中斷指令的狀態(tài)可由開中斷指令(STI)(STI)和關(guān)中斷指令和關(guān)中斷指令(CLI)(CLI)實現(xiàn)。實現(xiàn)。( (正在響應(yīng)或處理當(dāng)前中斷服務(wù)程序時正在響應(yīng)或處理當(dāng)前中斷服務(wù)程序時HLDA=1)HLDA=1)IFF二響應(yīng)中斷的時間在二響應(yīng)中斷的時間在CPUCPU結(jié)束現(xiàn)行指令后結(jié)束現(xiàn)行指令后在在CPUCPU開中時,若有中斷請開中時,若有中斷請求信號發(fā)至求信號發(fā)至CPU,CPU,它也并不它也并不立即響應(yīng)。而只有當(dāng)立即響應(yīng)。而只有當(dāng)現(xiàn)行現(xiàn)行指令運行到最后一個機器指令運行到最后

59、一個機器周期的最后一個周期的最后一個T T狀態(tài)時狀態(tài)時, , CPUCPU才才采樣采樣INTRINTR信號信號;若;若有此信號,則把與門的有此信號,則把與門的允許中斷輸出端置允許中斷輸出端置1 1,于,于是,是,CPUCPU進入中斷響應(yīng)周進入中斷響應(yīng)周期。期。6.3.2.36.3.2.3 CPUCPU響應(yīng)中斷響應(yīng)中斷及處理過程及處理過程1 1關(guān)中斷關(guān)中斷( (執(zhí)行執(zhí)行CLICLI指令指令) )2 2保留斷點保留斷點(IP(IP值入棧值入棧) )3 3保護現(xiàn)場保護現(xiàn)場( (有關(guān)寄存器值入棧有關(guān)寄存器值入棧) )4 4給出中斷入口給出中斷入口( (地址地址) ),轉(zhuǎn)入相應(yīng),轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序的

60、中斷服務(wù)程序8086/80888086/8088是由中斷源提供中斷類型是由中斷源提供中斷類型號號, ,并根據(jù)中斷類型號在中斷向量并根據(jù)中斷類型號在中斷向量表中取得中斷服務(wù)程序的起始地表中取得中斷服務(wù)程序的起始地址址5 5恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場( (上述寄存器值出棧上述寄存器值出棧) )6 6開中斷與返回開中斷與返回( (執(zhí)行執(zhí)行STISTI、IPIP出棧出棧) )6.3.3 6.3.3 向量中斷向量中斷1. 1. 向量中斷向量中斷(Vectored Interrupt)(Vectored Interrupt)指通過中斷向量來找中斷入口地址進而轉(zhuǎn)向中斷服務(wù)程序的指通過中斷向量來找中斷入口地址進而轉(zhuǎn)向中

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論