第8章-輸入輸出接口及常用接口芯片-微型計算機原理(第三版)(共10章)課件_第1頁
第8章-輸入輸出接口及常用接口芯片-微型計算機原理(第三版)(共10章)課件_第2頁
第8章-輸入輸出接口及常用接口芯片-微型計算機原理(第三版)(共10章)課件_第3頁
第8章-輸入輸出接口及常用接口芯片-微型計算機原理(第三版)(共10章)課件_第4頁
第8章-輸入輸出接口及常用接口芯片-微型計算機原理(第三版)(共10章)課件_第5頁
已閱讀5頁,還剩281頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

10一月2023第1頁

8.1概述

8.3輸入輸出的數(shù)據(jù)傳送方式

8.5可編程計數(shù)器/定時器8253

8.2輸入輸出端口

8.4可編程并行通信接口8255A

8.6可編程串行通信接口8251A09一月2023第1頁8.1概述8.3輸10一月2023第2頁8.1接口電路概述8.1.1接口基本概念輸入設(shè)備:輸入信息輸出設(shè)備:送出結(jié)果輸入設(shè)備鍵盤、鼠標(biāo)、掃描儀、磁帶機、磁盤機、光盤機、解調(diào)器、A/D轉(zhuǎn)換器輸出設(shè)備顯示器、打印機、繪圖儀、磁帶機、磁盤機、光盤機、調(diào)制器、D/A轉(zhuǎn)換器

各設(shè)備的組成結(jié)構(gòu)、電氣性能和工作原理各不相同09一月2023第2頁8.1接口電路概述8.1.110一月2023第3頁接口電路:計算機之間,計算機與外圍設(shè)備之間,計算機內(nèi)部部件之間起連接作用的邏輯電路。接口電路是CPU與外部設(shè)備進行信息交互的橋梁。

輸入、輸出接口電路也稱為I/O電路(INPUT/Output),即通常所說的適配器、適配卡或接口卡。它是微型計算機與外部設(shè)備交換信息的橋梁。09一月2023第3頁接口電路:計算機之10一月2023第4頁

(1)接口電路結(jié)構(gòu):一般由寄存器組、專用存儲器和控制電路幾部分組成,當(dāng)前的控制指令、通信數(shù)據(jù)、以及外部設(shè)備的狀態(tài)信息等分別存放在專用存儲器或寄存器組中。

(2)接口電路的連接:所有外部設(shè)備都通過各自的接口電路連接到微型計算機的系統(tǒng)總線上去。

(3)通信方式:分為并行通信和串行通信。并行通信是將數(shù)據(jù)各位同時傳送;串行通信則使數(shù)據(jù)一位一位地順序傳送。09一月2023第4頁(1)接口電路10一月2023第5頁外部設(shè)備種類繁多,輸入/輸出的信號各不相同計算機只能處理數(shù)字信號,外設(shè)提供的是模擬信號或數(shù)字信號外設(shè)的數(shù)字信號可以是并行信號或串行信號,而計算機只能接收和發(fā)送并行信號外設(shè)的輸入/輸出速度有很大差別。計算機與外部設(shè)備之間傳送的信息格式和電平高低也是多種多樣外部設(shè)備需要接口電路與計算機相連,而為什么不能象存儲器那樣直接連接到數(shù)據(jù)總線、地址總線和控制總線呢?09一月2023第5頁外部設(shè)備種類繁多,輸入/輸出的信號10一月2023第6頁解決的辦法:加入轉(zhuǎn)換及控制電路,實現(xiàn)信號的轉(zhuǎn)換及傳輸速度的匹配外設(shè)接口電路必然是多樣化的定義:把外部設(shè)備同計算機連接起來實現(xiàn)數(shù)據(jù)傳送的轉(zhuǎn)換和控制電路稱為外設(shè)接口電路,簡稱外設(shè)接口。計算機如何和這些電氣性能不同、速度不同以及所處理的信息格式不同的設(shè)備連接,以便能夠正確地輸入/輸出信息,而不造成信息的混亂、丟失呢?09一月2023第6頁解決的辦法:加入轉(zhuǎn)換及控制電路,實10一月2023第7頁8.1.2接口電路的功能外部設(shè)備的多樣性,導(dǎo)致接口電路多樣性。接口的基本功能傳輸信號提供緩沖功能滿足接口兩邊的時序要求外設(shè)接口電路應(yīng)具有的功能1.?dāng)?shù)據(jù)格式轉(zhuǎn)換3.?dāng)?shù)據(jù)緩沖功能5.實現(xiàn)電平轉(zhuǎn)換及驅(qū)動7.可編程序功能2.提供聯(lián)絡(luò)信號4.譯碼選址6.具備時序控制8.錯誤檢測功能09一月2023第7頁8.1.2接口電路的功能外部10一月2023第8頁1.?dāng)?shù)據(jù)格式轉(zhuǎn)換接口與系統(tǒng)總線之間,采用并行傳送接口與外設(shè)之間,采用并行傳送或串行傳送串行外設(shè),接口具有串/并轉(zhuǎn)換、并/串轉(zhuǎn)換能力并行外設(shè),接口具有拼裝和分解的能力接口產(chǎn)生校驗位及對數(shù)據(jù)進行校驗的功能2.提供聯(lián)絡(luò)信號即狀態(tài)信息:協(xié)調(diào)數(shù)據(jù)傳送3.?dāng)?shù)據(jù)緩沖功能具有輸入緩沖、輸出鎖存的功能09一月2023第8頁1.?dāng)?shù)據(jù)格式轉(zhuǎn)換接口與系統(tǒng)總線之間10一月2023第9頁4.譯碼選址根據(jù)地址信號提供地址譯碼的功能5.實現(xiàn)電平轉(zhuǎn)換及驅(qū)動計算機與外設(shè)的電源可能不同數(shù)據(jù)總線的驅(qū)動能力有限6.具備時序控制對于工作同步,提供復(fù)位電路對于信號同步,具有時鐘發(fā)生器7.可編程序功能編程決定接口的功能8.錯誤檢測功能檢測數(shù)據(jù)傳輸錯誤和覆蓋錯誤09一月2023第9頁4.譯碼選址根據(jù)地址信號提供地址譯10一月2023第10頁8.1.4通信的概念

CPU與外部設(shè)備之間,計算機和計算機之間需要進行信息交換,所有這些信息交換均稱為1.并行通信是指數(shù)據(jù)的各位同時進行傳送的方式,特點是傳輸速度快。例如,CPU將數(shù)據(jù)通過并口送給打印機等都屬于并行通信。通信的基本方式分為并行通信和串行通信兩種。當(dāng)距離較遠、位數(shù)又多時,則導(dǎo)致了通信線路復(fù)雜且成本高。09一月2023第10頁8.1.4通信的概念10一月2023第11頁2.串行通信是指數(shù)據(jù)的各位一位一位地進行傳送,特點是通信線路簡單,只需要一對傳輸線。節(jié)省傳輸線(優(yōu)點);數(shù)據(jù)傳輸率較低(缺點)主要適用于長距離、低速率的通信中。并行通信把一個字符各位用幾條線同時進行傳輸。和串行通信相比,并行通信的信息實際傳輸速度快,信息傳輸率高。遠距離成本高。09一月2023第11頁2.串行通信是指數(shù)據(jù)的10一月2023第12頁串行通信有三種情況:即單工通信方式、半雙工通信方式和全雙工通信方式。⑴

單工和雙工通信方式發(fā)送器接收器單工發(fā)送器/接收器發(fā)送器/接收器半雙工發(fā)送器/接收器發(fā)送器/接收器全雙工09一月2023第12頁串行通信有三種情況:即單工10一月2023第13頁⑵

同步方式和異步方式

①異步通信:每個字符的前面要有一位起始位,起始位后面緊跟的是字符(數(shù)據(jù)字),最后是停止位,兩個字符間的傳輸間隔是任意的。

標(biāo)準的異步通信數(shù)據(jù)格式

MARK1

1

1111第n個字符第n個字符第n+1個字符5~8位數(shù)據(jù)位0起始位校驗位1位終止位1,1.5或2位先送低位09一月2023第13頁⑵同步方式和異步方式①10一月2023第14頁波特率的概念:單位時間內(nèi)傳送的二進制數(shù)據(jù)的位數(shù),以位/秒(b/s)表示,也稱為數(shù)據(jù)位率。它是衡量串行通信速率的重要指標(biāo)。波特率因子的概念:通信時,發(fā)送端和接收端都要用時鐘來測定每1位對應(yīng)的時間長度,它們稱做發(fā)送時鐘和接收時鐘,這兩個時鐘的頻率相等,是信息位傳輸?shù)?6倍、32倍或者64倍。稱為波特率因子。波特率因子=n×波特率一般n取1,16,32和64等。對于異步通信,常采用n=1609一月2023第14頁波特率的概念:單位時間內(nèi)傳送的二10一月2023第15頁當(dāng)n=16時,數(shù)據(jù)傳輸監(jiān)測示意圖如下:能完成上述功能的部件為通用異步收發(fā)器(UART——UniversalAsynchronousReceiverandTransmitter)。

09一月2023第15頁當(dāng)n=16時,數(shù)據(jù)傳輸監(jiān)測示意圖10一月2023第16頁③同步通信同步串行通信是以數(shù)據(jù)塊(字符塊)為信息單位傳送,而每幀信息包括成多個字符,傳送一旦開始,要求每幀信息內(nèi)部的每一位都要同步。

同步字符1同步字符2數(shù)據(jù)信息圖9-1-3同步通信數(shù)據(jù)格式

有關(guān)串行通信的物理標(biāo)準

字符格式:通信雙方要約好字符的編碼形式、奇偶校驗形式以及起始位和停止位的規(guī)定。09一月2023第16頁③同步通信同步串行通信是以數(shù)據(jù)10一月2023第17頁波特率(Baudrate):波特率或傳輸率就是指每秒傳輸信息的位數(shù),衡量數(shù)據(jù)傳送速率的指標(biāo)要求發(fā)送端和接收端數(shù)據(jù)傳送速率相同。例1:每個字符對應(yīng)1個起始位,7個信息位,1個校驗位,1個停止位,波特率為1200位/秒(波特),則每秒傳輸?shù)淖址麛?shù)為:1200/10=120個。每一位的傳送時間Td就是波特率的倒數(shù),如1200波特率,則:Td=1/1200=0.833ms09一月2023第17頁波特率(Baudrate):10一月2023第18頁答:1)波特率是

(7位數(shù)據(jù)位+1位起始位+1位校驗位+1位停止位)×240=2400b/s2)有效數(shù)據(jù)位傳輸位是:7×240=1680b/s3)傳輸效率是:1680/2400=70%例2:異步傳輸7位ASCII碼,如果需要數(shù)據(jù)傳輸速率為240字符/秒,用1位奇偶校驗位和1位停止位,則:1)波特率應(yīng)該是多少?2)有效數(shù)據(jù)位傳輸位是多少?3)傳輸效率是多少?常用的標(biāo)準波特率為:110,300,600,1200,1800,2400,4800,9600,19200,……。09一月2023第18頁答:1)波特率是例2:異步傳輸710一月2023第19頁3.遠程串行通信

采用模擬載波傳輸方式。如在采用有形介質(zhì)(如電話線)進行串行通信時,通信雙方各接入一個專門設(shè)備——調(diào)制解調(diào)器,將數(shù)字信號調(diào)制成模擬信號在電話線上傳輸,在接收端將模擬信號解調(diào),還原成數(shù)字信號。

電話線09一月2023第19頁3.遠程串行通信采用模擬載10一月2023第20頁8.1.3接口信號與計算機交換的信息數(shù)據(jù)信息、狀態(tài)信息和控制信息。1.?dāng)?shù)據(jù)信息數(shù)字量、模擬量、開關(guān)量2.狀態(tài)信息外設(shè)發(fā)送給計算機,反映外設(shè)工作狀態(tài)有BUSY和READY3.控制信息計算機發(fā)送給外設(shè),控制外設(shè)的工作隨著外設(shè)的具體工作原理不同而具有不同含義09一月2023第20頁8.1.3接口信號與計算機交10一月2023第21頁8.2輸入輸出端口8.2.1輸入輸出端口的概念數(shù)據(jù)信息、狀態(tài)信息和控制信息都是信息,存放在接口的不同寄存器(端口,Port)中,每個端口有端口地址。數(shù)據(jù)端口:存放數(shù)據(jù)信息。輸入端口、輸出端口狀態(tài)端口:存放外設(shè)或接口部件本身的狀態(tài)信息控制端口:存放CPU發(fā)往接口的控制信息,以控制接口和外部設(shè)備工作09一月2023第21頁8.2輸入輸出端口8.2.110一月2023第22頁輸入設(shè)備具備數(shù)據(jù)輸入端口,狀態(tài)端口,控制端口輸出設(shè)備具備數(shù)據(jù)輸出端口,狀態(tài)端口,控制端口輸入輸出設(shè)備具備數(shù)據(jù)輸入和輸出端口,狀態(tài)端口,控制端口典型的外設(shè)接口:I/O接口控制端口狀態(tài)端口數(shù)據(jù)輸出端口數(shù)據(jù)輸入端口CPU外部輸入設(shè)備或輸出設(shè)備DB控制信息狀態(tài)信息數(shù)據(jù)信息CBABABCB09一月2023第22頁輸入設(shè)備具備數(shù)據(jù)輸入端口,狀態(tài)端10一月2023第23頁8.2.2輸入輸出端口編址方式對外設(shè)的訪問實質(zhì)上是對端口的訪問外設(shè)I/O端口的地址安排I/O端口獨立編址I/O端口與存儲器統(tǒng)一編址獨立編址的I/O端口,用I/O指令操作I/O端口與存儲器統(tǒng)一編址,用通用數(shù)據(jù)傳送等指令操作09一月2023第23頁8.2.2輸入輸出端口編址方式10一月2023第24頁存儲器的地址空間為2n字節(jié),地址范圍為0~2n-1;若I/O尋址為16位,則I/O端口地址空間為216=65536字節(jié),地址范圍為0~65535存儲器訪問和I/O端口訪問不會發(fā)生沖突存儲器的讀、寫操作由MEMR和MEMW信號控制1.I/O端口獨立編址方式(I/O指令尋址)端口的讀、寫操作由IOR和IOW信號控制,用IN指令和OUT指令操作兩個獨立的地址空間,地址空間重疊09一月2023第24頁存儲器的地址空間為2n字節(jié),地址10一月2023第25頁地址空間的分配接口與存儲器空間相互獨立09一月2023第25頁地址空間的分配接口與存儲器10一月2023第26頁I/O端口獨立編址方式的優(yōu)點

端口地址碼短,譯碼電路簡單,指令執(zhí)行速度快存儲器與端口操作指令不同,程序清晰,便于理解存儲器地址和端口地址獨立,端口地址空間不占用存儲器地址空間存儲器和端口的控制結(jié)構(gòu)相互獨立,可分別設(shè)計,且利于系統(tǒng)擴展I/O端口獨立編址方式的缺點需要專門的I/O指令,且只有IN和OUT兩類指令只能對I/O端口進行輸入和輸出操作,不能進行其它運算處理所以程序設(shè)計的靈活性較差09一月2023第26頁I/O端口獨立編址方式的優(yōu)點端10一月2023第27頁2.I/O端口與存儲器統(tǒng)一編址(存儲器映像編址)端口被看作存儲器單元,分配給一個地址存儲器和I/O端口共用一個地址空間,兩者的地址是連續(xù)的,大小總共為2n字節(jié)CPU把I/O端口當(dāng)作存儲單元一樣進行訪問,不再需要專門的I/O指令對I/O端口操作,可使用所有的存儲器指令09一月2023第27頁2.I/O端口與存儲器統(tǒng)一編址(10一月2023第28頁地址空間的分配接口與存儲器空間合而為一09一月2023第28頁地址空間的分配接口與存儲器10一月2023第29頁I/O端口與存儲器統(tǒng)一編址的優(yōu)點

所有指令都可用于I/O端口從而編程靈活,操作方便I/O端口與存儲器統(tǒng)一編址的缺點

端口地址占用了存儲器地址,使得存儲器的地址空間相對減少受地址空間的限制,不利于系統(tǒng)擴展由于地址位數(shù)長,指令碼相對增長,使得指令執(zhí)行速度較慢09一月2023第29頁I/O端口與存儲器統(tǒng)一編址的優(yōu)點10一月2023第30頁8.2.3輸入輸出端口的地址譯碼通過CPU給出的地址信號選定一個端口可附加控制信號參與地址譯碼按照譯碼電路采用的元器件的不同,分為門電路譯碼與專用譯碼器譯碼

據(jù)使用的地址信號多少,分為全譯碼方式和部分譯碼方式09一月2023第30頁8.2.3輸入輸出端口的地址10一月2023第31頁全譯碼:全部地址信號參與譯碼部分譯碼:部分地址信號參與譯碼部分譯碼方式多個地址對應(yīng)一個端口,因為未參與譯碼的地址線的信號可以為任意值當(dāng)系統(tǒng)中端口較多時,為避免地址的沖突,采用全部地址譯碼當(dāng)系統(tǒng)中端口較少,為減少譯碼電路的復(fù)雜性,可采用部分地址譯碼09一月2023第31頁全譯碼:全部地址信號參與10一月2023第32頁1.門電路譯碼如圖示:I/O端口獨立編址時的譯碼電路,對A0~A9地址信號進行譯碼,信號為1101001110B,即34EH。當(dāng)接口電路中需要端口較少時采用此方式此為部分地址譯碼(由于A10~A15信號任意,則34EH、74EH、B4EH…等都有效)09一月2023第32頁1.門電路譯碼如圖示:I/O端口10一月2023第33頁2.譯碼器譯碼A15~A3的地址組合為0000001110000時選中74LS138當(dāng)接口電路中需多個端口地址時,采用專用譯碼器譯碼。09一月2023第33頁2.譯碼器譯碼A15~A3的地址10一月2023第34頁8.3輸入輸出的數(shù)據(jù)傳送方式計算機與I/O接口間的數(shù)據(jù)傳送即數(shù)據(jù)交換。數(shù)據(jù)傳送的控制方式

程序直接控制傳送方式、中斷方式、DMA方式和I/O處理機方式8.3.1程序直接控制傳送方式定義:是指在程序控制下進行的數(shù)據(jù)傳送,通常是在用戶程序中安排一段由I/O指令和其它指令組成的程序段,直接控制I/O接口的輸入/輸出操作。又分為無條件傳送方式和程序查詢傳送方式09一月2023第34頁8.3輸入輸出的數(shù)據(jù)傳送方式10一月2023第35頁1.無條件傳送方式又稱同步傳送方式。傳送時無需查詢外設(shè)的狀態(tài),而直接使用I/O指令進行數(shù)據(jù)傳送。外設(shè)的狀態(tài)固定、事先已知其狀態(tài),不需進行查詢判斷,直接利用I/O指令進行數(shù)據(jù)的傳送優(yōu)點硬件、軟件開銷小只需等待一段時間后進行輸入/輸出即可使用場合用于對一些簡單外設(shè)的操作,如讀取開關(guān)狀態(tài)、驅(qū)動七段數(shù)碼管顯示硬件不需要狀態(tài)端口和控制端口軟件09一月2023第35頁1.無條件傳送方式又稱同步傳送方10一月2023第36頁無條件傳送的接口電路:

接發(fā)光二極管接開關(guān)地址300H地址301H則輸入/輸出程序段為:CONTR:MOVDX,301H ;輸入端口地址送入DXINAL,DX ;讀取開關(guān)狀態(tài)

MOVDX,300H ;輸出端口地址送入DXOUTDX,AL ;控制發(fā)光二極管亮滅09一月2023第36頁無條件傳送的接口電路:接發(fā)光二10一月2023第37頁采用無條件傳送的數(shù)據(jù)采集系統(tǒng)八選一模擬開關(guān)A/D轉(zhuǎn)換器通道選擇轉(zhuǎn)換為數(shù)字讀取09一月2023第37頁采用無條件傳送的數(shù)據(jù)采集系統(tǒng)八選10一月2023第38頁2.程序查詢傳送方式又稱為條件傳送,或異步傳送I/O操作前,不斷讀取并測試外設(shè)的狀態(tài)。就緒,則交換信息,否則繼續(xù)查詢等待,直到就緒。接口電路中應(yīng)具有數(shù)據(jù)端口和狀態(tài)端口傳送過程①讀取狀態(tài)字②測試狀態(tài)字的相應(yīng)位是否滿足“就緒”條件,如果不滿足,則回到前一步繼續(xù)讀取狀態(tài)字③如果狀態(tài)字表明外設(shè)已經(jīng)處于“就緒”狀態(tài),則傳送數(shù)據(jù)

程序查詢傳送有查詢輸入和查詢輸出。09一月2023第38頁2.程序查詢傳送方式又稱為條件傳10一月2023第39頁⑴查詢式輸入工作過程為:①外設(shè)發(fā)選通信號,將外設(shè)的數(shù)據(jù)打入鎖存器;另使D觸發(fā)器輸出1,送狀態(tài)緩沖器;②讀取狀態(tài)緩沖器;③準備好則讀取數(shù)據(jù)緩沖器

程序查詢輸入接口電路

查詢式輸入流程查詢輸入部分的程序為:INDATA:IN AL,STATUS_PORT ;從狀態(tài)端口讀入狀態(tài)

TEST AL,01H ;測試是否“準備好”

JZ INDATA ;否,轉(zhuǎn)INDATA循環(huán)測試

IN AL,DATA_PORT ;是,從數(shù)據(jù)端口讀取數(shù)據(jù)復(fù)位狀態(tài)狀態(tài)數(shù)據(jù)09一月2023第39頁⑴查詢式輸入工作過程為:10一月2023第40頁⑵查詢式輸出工作過程:①外設(shè)空閑,發(fā)ACK復(fù)位D觸發(fā)器作為外設(shè)狀態(tài);②CPU讀取外設(shè)狀態(tài);③若外設(shè)空閑,則送出數(shù)據(jù),并置位D觸發(fā)器;讀狀態(tài)送數(shù)據(jù)置位09一月2023第40頁⑵查詢式輸出工作過程:讀狀態(tài)送數(shù)10一月2023第41頁OUTDATA:IN AL,STATUS_PORT ;讀入狀態(tài) TEST AL,80H ;測試是否”忙”

JNZ OUTDATA ;是,轉(zhuǎn)OUTDATA循環(huán)測試

MOV AL,STORE ;否,從緩沖區(qū)取數(shù)據(jù)

OUT DATA_PORT,AL ;輸出到數(shù)據(jù)端口查詢輸出部分的程序為:09一月2023第41頁OUTDATA:IN 10一月2023第42頁⑶采用查詢方式的數(shù)據(jù)采集系統(tǒng)圖示電路為采用查詢方式進行八路模擬量輸入的數(shù)據(jù)采集系統(tǒng)。09一月2023第42頁⑶采用查詢方式的數(shù)據(jù)采集系統(tǒng)圖示10一月2023第43頁8.3.2中斷傳送方式程序直接控制數(shù)據(jù)傳送方式的優(yōu)點是電路簡單、軟件簡練且清晰,但效率低。利用中斷實現(xiàn)CPU和外設(shè)間的數(shù)據(jù)傳送——中斷傳送方式。在外設(shè)就緒時暫停執(zhí)行主程序在一定程度上實現(xiàn)了CPU和外設(shè)的并行工作在一定程度上也實現(xiàn)了外設(shè)與外設(shè)間的并行工作09一月2023第43頁8.3.2中斷傳送方式程序直10一月2023第44頁為了實現(xiàn)中斷傳送,計算機系統(tǒng)應(yīng)提供相應(yīng)的軟件和硬件方面的支持。在軟件方面,要編制中斷申請對應(yīng)的中斷處理(服務(wù))程序模塊并裝入內(nèi)存,再將各模塊的首地址寫入中斷向量表。在硬件方面,設(shè)置CPU使其能夠響應(yīng)中斷,設(shè)置中斷接口與中斷控制。有關(guān)中斷的詳細內(nèi)容見第8章中斷系統(tǒng)。09一月2023第44頁為了實現(xiàn)中斷傳送,計算機系統(tǒng)應(yīng)提10一月2023第45頁8.3.3DMA(直接存儲器存取)方式中斷傳送方式需要保護斷點、標(biāo)志和保護現(xiàn)場等操作,存在著CPU運算資源得不到充分利用的問題。對于高速外設(shè),中斷傳送方式甚至不能滿足數(shù)據(jù)傳送的要求。為此提出了在外設(shè)和內(nèi)部存儲器之間直接傳送數(shù)據(jù)的方式,即DMA方式(DirectMemoryAccess)。DMA方式傳送數(shù)據(jù)直接在外設(shè)與內(nèi)部存儲器之間進行,即開辟了一條數(shù)據(jù)傳送通道,傳送期間不需CPU干預(yù)也不需要軟件介入,數(shù)據(jù)傳送的速度的上限就取決于存儲器的工作速度。DMA控制器(DMAC-DirectMemoryAccessController)實施DMA傳送控制09一月2023第45頁8.3.3DMA(直接存儲器10一月2023第46頁CPU存儲器高速設(shè)備DMAC總線DMA控制器作為系統(tǒng)的核心,具有兩個特性:總線從屬性和總線主控性。總線從屬性DMAC如同普通的I/O接口芯片,可由CPU通過對其端口進行讀寫,設(shè)置DMAC的工作方式總線主控性DMAC作為DMA系統(tǒng)的核心器件,在DMA傳輸中其表現(xiàn)如同CPU一樣,可掌管總線控制權(quán)09一月2023第46頁CPU存儲器高速設(shè)備DMAC總線10一月2023第47頁1.DMA控制器的功能通常地址總線、數(shù)據(jù)總線和一些控制信號線由CPU管理。在DMA傳送時,DMA控制器接管這些總線??刂茢?shù)據(jù)的傳送、判斷DMA傳送是否結(jié)束以及發(fā)出DMA結(jié)束等信號。所以DMA控制器必須具備以下功能①DMAC能夠向CPU發(fā)出總線請求信號HOLD

②DMAC接管對總線的控制,進入DMA方式09一月2023第47頁1.DMA控制器的功能通常地址10一月2023第48頁④在DMA傳送期間,能發(fā)出讀、寫等控制信號⑤能決定傳送的字節(jié)數(shù),以及判斷DMA傳送是否結(jié)束⑥在DMA傳送結(jié)束,向CPU發(fā)出DMA結(jié)束信號,將總線控制權(quán)交還給CPU,使CPU恢復(fù)正常工作狀態(tài)③DMAC能發(fā)出地址信號,對存儲器、外設(shè)進行尋址;在完成一次傳送后修改地址指針,以便傳送下一數(shù)據(jù)09一月2023第48頁④在DMA傳送期間,能發(fā)出讀、寫10一月2023第49頁2.DMA接口DMA系統(tǒng)框圖為:09一月2023第49頁2.DMA接口DMA系統(tǒng)框圖為10一月2023第50頁關(guān)鍵是如何識別合適的、可挪用的周期,以避免與CPU的操作發(fā)生沖突(即同時使用總線)。就是利用CPU不訪問存儲器的那些周期“挪用”過來實現(xiàn)DMA操作,此時,DMA控制器可以使用總線而不用通知CPU也不會影響CPU的工作,這種方法稱為“周期挪用”。3.DMA操作的基本方法周期挪用、周期擴展和CPU停機方式三種⑴周期挪用方式周期挪用方式不影響CPU的操作,也不減慢CPU的速度,但可能需要復(fù)雜的時序電路來判斷可以挪用的周期,并且數(shù)據(jù)的傳送是不連續(xù)的、不規(guī)則的,所以使用的不普遍。09一月2023第50頁關(guān)鍵是如何識別合適的、可挪用的周10一月2023第51頁⑵周期擴展方式周期擴展方式需使用專門的時鐘發(fā)生器/驅(qū)動器電路當(dāng)需要進行DMA傳送時,由DMA控制器發(fā)出請求信號給時鐘電路,于是時鐘電路把提供給CPU的周期加寬,而提供給存儲器和DMA控制器的時鐘周期不變。這樣,CPU在加寬的時鐘周期內(nèi)仍按正常的時鐘周期繼續(xù)操作,而加寬的時鐘周期卻相當(dāng)于若干個正常的時鐘周期,可用來進行DMA操作。這種操作方法使得CPU的處理速度降低,且CPU時鐘周期的加寬是有限制的。因此,用這種方法進行DMA傳送,一次只能傳送一個字節(jié)。09一月2023第51頁⑵周期擴展方式周期擴展方式需使用10一月2023第52頁⑶CPU停機方式該方式是最常用也是最簡單的DMA傳送方式。當(dāng)DMAC要進行DMA傳送時,DMAC向CPU發(fā)出DMA請求信號,迫使CPU在現(xiàn)行機器周期結(jié)束后,讓出總線控制權(quán),使三總線對CPU處于高阻狀態(tài),并給出DMA響應(yīng)信號,DMAC接到響應(yīng)信號后,就接管總線的控制權(quán),進行數(shù)據(jù)傳送的控制操作,至DMA操作完成,DMAC撤消DMA請求信號,CPU再恢復(fù)對總線的控制權(quán),繼續(xù)執(zhí)行被打斷的程序。09一月2023第52頁⑶CPU停機方式該方式是最常用也10一月2023第53頁DMAC保持DMA請求信號的時間決定了CPU讓出總線控制權(quán)的時間,所以可以進行字節(jié)傳送或數(shù)據(jù)塊的傳送采用CPU停機方式進行DMA傳送期間,CPU一直處于空閑狀態(tài),而不能進行任何操作,包括響應(yīng)中斷及動態(tài)存儲器的刷新都不能正常進行,所以該方式降低了CPU的利用率,并且在使用時要考慮DMA控制器控制總線使用權(quán)的時間。09一月2023第53頁DMAC保持DMA請求信號的時間10一月2023第54頁4.DMA數(shù)據(jù)傳送方式三種方式:單字節(jié)傳送方式、成組(塊)傳送方式和請求傳送方式。單字節(jié)傳送方式每次DMA請求只傳送一個字節(jié)的數(shù)據(jù),傳送結(jié)束后把總線控制權(quán)歸還CPU接管。以后CPU又測試DMA請求信號是否有效,若有效則再次進入DMA周期。注意:①在DMA響應(yīng)信號有效前,DMA請求信號必須一直保持有效;②既使連續(xù)請求DMA操作,在兩個字節(jié)傳送之間DMA控制器也必須釋放總線控制權(quán),中間至少有一個總線周期是讓CPU使用的。09一月2023第54頁4.DMA數(shù)據(jù)傳送方式三種方式10一月2023第55頁成組(塊)傳送方式每次DMA請求傳送一組信息,不停頓地傳送直到規(guī)定長度的字節(jié)傳送完后,DMA控制器才撤消請求信號釋放總線控制權(quán)。既使把DMA請求信號撤除,也能保證連續(xù)傳送。結(jié)束信號只能由DMAC中的計數(shù)器產(chǎn)生。在DMA傳送中,為了使源和目的間的數(shù)據(jù)傳送取得同步,不同的DMA控制器在操作時都受到外設(shè)請求信號或準備就緒信號的限制。09一月2023第55頁成組(塊)傳送方式每次DMA請求10一月2023第56頁請求方式成組傳送又稱查詢傳送方式,類似于成組傳送方式。每傳送一個字節(jié)后,DMA控制器都檢測DMA響應(yīng)信號是否有效,若無效,則掛起,但并不釋放總線;若有效,則繼續(xù)DMA傳送,直到一組信息傳送結(jié)束或外加信號強制DMA控制器終止操作。09一月2023第56頁請求方式成組傳送又稱查詢傳送方式10一月2023第57頁5.DMA控制傳送過程三個階段:傳送前的初始化、數(shù)據(jù)傳送和傳送后處理。DMAC的初始化工作前,完成必要的準備工作,向DMAC有關(guān)寄存器預(yù)置初態(tài),包括:①數(shù)據(jù)傳送方向,即指定I/O設(shè)備對存儲器“讀”還是“寫”。通過指定控制/狀態(tài)寄存器中相應(yīng)控制位的值來實現(xiàn);②數(shù)據(jù)來源于何處及傳送到何處,即需要傳送的數(shù)據(jù)塊在主存和在I/O設(shè)備的首地址;③指定需要傳送數(shù)據(jù)的字節(jié)數(shù),即指定計數(shù)寄存器的初值。預(yù)置工作完成后,就將外設(shè)與主存之間數(shù)據(jù)傳送的控制權(quán)交給了DMA控制器,即啟動了DMA數(shù)據(jù)傳送操作方式,CPU仍繼續(xù)執(zhí)行原來的程序09一月2023第57頁5.DMA控制傳送過程三個階段10一月2023第58頁DMA數(shù)據(jù)傳送在外設(shè)準備好發(fā)送的數(shù)據(jù)(輸入)或接收的數(shù)據(jù)已處理完畢(輸出),外設(shè)向DMA控制器發(fā)DMA請求,再由DMA控制器向CPU發(fā)總線請求信號(HOLD)。當(dāng)CPU允許進行DMA傳送時(發(fā)回HLDA),便開始了一次DMA傳送。09一月2023第58頁DMA數(shù)據(jù)傳送在外設(shè)準備好發(fā)送的10一月2023第59頁②DMA請求觸發(fā)器向控制/狀態(tài)邏輯發(fā)出準備就緒信號,再由控制/狀態(tài)邏輯向CPU發(fā)HOLD信號,申請進行一次DMA傳輸;以成組輸入為例說明傳送過程:①外設(shè)準備好一個數(shù)據(jù)后,發(fā)出選通脈沖,使輸入數(shù)據(jù)送入緩沖寄存器,并使DMA請求觸發(fā)器置“1”;③CPU在完成現(xiàn)行周期后,立即響應(yīng)DMA請求,向DMA控制器發(fā)HLDA信號,并由控制/狀態(tài)邏輯使DMA請求觸發(fā)器復(fù)位,此時CPU懸空其總線,使總線處于高阻狀態(tài),DMAC接管系統(tǒng)總線控制權(quán);09一月2023第59頁②DMA請求觸發(fā)器向控制/狀態(tài)邏10一月2023第60頁④DMAC控制系統(tǒng)總線,發(fā)存儲器地址,并將數(shù)據(jù)緩沖寄存器的數(shù)據(jù)送到數(shù)據(jù)總線上,隨后在其讀/寫信號線上發(fā)讀命令;⑤數(shù)據(jù)通過數(shù)據(jù)總線直接在I/O設(shè)備與存儲器之間傳送;⑥每傳送一個字,DMAC的地址寄存器加1,從而得到下一個地址,字計數(shù)器減1,如此循環(huán),直到字計數(shù)器值為0,DMA傳送完畢。09一月2023第60頁④DMAC控制系統(tǒng)總線,發(fā)存儲器10一月2023第61頁DMA傳送完畢時,可利字節(jié)計數(shù)器為0信號,由DMA控制器向CPU發(fā)中斷請求,即本次DMA的結(jié)束中斷,主機響應(yīng)后,通過服務(wù)程序?qū)MA傳送進行結(jié)束處理。DMA結(jié)束處理09一月2023第61頁DMA傳送完畢時,可利字節(jié)計數(shù)器10一月2023第62頁綜上所述,進行一次數(shù)據(jù)傳送,CPU進行兩次干預(yù)第一次是初始化,預(yù)置數(shù)據(jù)傳輸所必需的信息。第二次是進行中斷后處理。可見,采用DMA方式傳送數(shù)據(jù),仍要調(diào)用程序、存在著程序中斷,因而DMA接口還包括程序中斷部件隨著大規(guī)模集成電路技術(shù)的發(fā)展,DMA傳送已經(jīng)不再局限于存儲器和外設(shè)間的信息交換,可以擴展為存儲器的兩個區(qū)域之間、兩種高速外設(shè)之間的直接傳送。09一月2023第62頁綜上所述,進行一次數(shù)據(jù)傳送,CP10一月2023第63頁8.3.4I/O處理機方式在DMA方式中,DMAC只能實現(xiàn)對數(shù)據(jù)輸入/輸出傳送的控制,而對輸入/輸出設(shè)備的管理和其它操作,如信息的變換、裝配、拆卸和數(shù)碼校驗等功能操作仍然需要由CPU來完成另外,DMA傳送不管采用單字節(jié)方式、成組方式或CPU停機方式,同樣存在著占用CPU時間的問題。為了使CPU完全脫離管理和控制輸入/輸出的負擔(dān),引入專門的設(shè)備控制數(shù)據(jù)傳送,即I/O處理機(InputOutputProcessor,簡稱IOP),提出了數(shù)據(jù)傳送的I/O處理機方式。09一月2023第63頁8.3.4I/O處理機方式在10一月2023第64頁

8255A可編程并行輸入/輸出接口是Intel公司微處理器擴展系統(tǒng)所用的標(biāo)準外圍接口電路。它采用NMOS工藝制造,用單一+5V電源供電,具有40條引腳,采用雙列直插式封裝。8.4可編程并行通信接口8255A

在主機側(cè),能夠方便地與各種微機系統(tǒng)相配;在設(shè)備側(cè),用8255A連接外部設(shè)備時,通常不需要再附加其它電路,給用戶使用帶來很大方便。

09一月2023第64頁8255A可編10一月2023第65頁8.4.18255A的內(nèi)部結(jié)構(gòu)

09一月2023第65頁8.4.18255A的內(nèi)部結(jié)10一月2023第66頁1.8255具有2個獨立的8位I/O口(A口和B口)和2個獨立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。輸入時提供三態(tài)緩沖器功能,輸出時提供數(shù)據(jù)鎖存功能。其中,A口具有雙向傳輸功能。2.8255有3種工作方式,方式0、方式1和方式2,能使用多種數(shù)據(jù)傳送方式完成CPU與I/O設(shè)備之間的數(shù)據(jù)交換,如無條件方式、查詢方式和中斷方式。3.B口和C口的引腳具有復(fù)合晶體管驅(qū)動能力,在1.5V時輸出1mA電流,適于作輸出端口。4.

C口除用做數(shù)據(jù)口外,當(dāng)8255工作在方式1和方式2時,C口的部分引腳作為固定的聯(lián)絡(luò)信號線。09一月2023第66頁1.8255具有2個獨立的8位10一月2023第67頁5.讀/寫控制邏輯:讀/寫控制邏輯負責(zé)接收CPU的命令信號,管理8255A的數(shù)據(jù)傳輸過程。它接收以及來自系統(tǒng)地址總線的A1、A0和控制總線的RESET、RD、WR信號。6.?dāng)?shù)據(jù)總線緩沖器:數(shù)據(jù)總線緩沖器是8位雙向三態(tài)數(shù)據(jù)緩沖器,8255A通過數(shù)據(jù)總線緩沖器與系統(tǒng)相連。8.4.28255A的芯片引腳信號

09一月2023第67頁5.讀/寫控制邏輯:讀/寫控10一月2023第68頁1.與外設(shè)相連的信號PA7~PA0:A口數(shù)據(jù)線;PB7~PB0:B口數(shù)據(jù)線;PC7~PC0:C口數(shù)據(jù)線.2.與主機相連的信號⑴Reset:復(fù)位信號,高電平有效。當(dāng)Reset=1時,8255A內(nèi)部寄存器都被清零。⑵D7~D0:數(shù)據(jù)線。通常和系統(tǒng)的數(shù)據(jù)總線低8位相連。⑶CS:片選信號,低電平有效。有效時允許8255A和CPU交換信息,一般情況由系統(tǒng)地址總線的某些位通過譯碼器產(chǎn)生信號。在不同工作方式下可兼作控制聯(lián)絡(luò)線09一月2023第68頁1.與外設(shè)相連的信號2.與主機相10一月2023第69頁⑷RD:讀信號,低電平有效。當(dāng)有效時,CPU可以從8255A中讀取數(shù)據(jù)或狀態(tài)字。⑸WR:寫信號,低電平有效。當(dāng)有效時,CPU可以向8255A中寫入數(shù)據(jù)或控制字。和信號通常接系統(tǒng)中的讀/寫信號。⑹A1、A0:端口選擇信號。在8255A內(nèi)部有3個數(shù)據(jù)端口和1個控制端口。當(dāng)8255A的A1、A0為00時,選中端口A,為01時,選中端口B,為10時,選中端口C,為11時,選中控制端口。09一月2023第69頁⑷RD:讀信號,低電平有效。當(dāng)10一月2023第70頁表 8255的端口與操作選擇表

A1A0RDWRCS操作001010000111000A口內(nèi)容讀至數(shù)據(jù)總線B口內(nèi)容讀至數(shù)據(jù)總線C口內(nèi)容讀至數(shù)據(jù)總線

輸入00110101

111100000000數(shù)據(jù)總線內(nèi)容寫至A口數(shù)據(jù)總線內(nèi)容寫至B口數(shù)據(jù)總線內(nèi)容寫至C口DB內(nèi)容寫至控制寄存器輸出X1XX1XX01X11100端口輸出為高阻非法端口輸出為高阻禁止09一月2023第70頁表 8255的端口與操作選擇表10一月2023第71頁8.4.38255A的控制字

通過指令向8255A的控制端口寫控制字來決定各端口的工作方式。8255A有兩種控制字:方式選擇控制字和按位置位/復(fù)位控制字。

1.方式選擇控制字:用來規(guī)定端口A、端口B和端口C的工作方式,其控制字的特征是:D7=1。8255A有三種基本工作方式。⑴

基本輸入/輸出方式——方式0,適用于端口A、端口B和端口C;⑵

選通輸入/輸出方式——方式1,適用于端口A和端口B;⑶雙向方式——方式2,只適用于端口A。

09一月2023第71頁8.4.38255A的控制字10一月2023第72頁方式選擇控制字格式

1

D7

D6

D5

D4

D3

D2

D1

D0A口1:輸入0:輸出B口1:輸入0:輸出A組控制B組控制A組方式選擇00:方式001:方式11X:方式2方式字標(biāo)志C口高4位PC7~PC41:輸入0:輸出C口低4位PC3~PC01:輸入0:輸出B組方式選擇0:方式01:方式109一月2023第72頁方式選擇控制字格式110一月2023第73頁例如,若使端口A工作于方式0,輸出;端口B工作于方式1,輸入;端口C的高4位工作于方式0,輸出。則方式選擇控制字為:10000110B。10000110

D7

D6

D5

D4

D3

D2

D1

D0A口0:輸出B口1:輸入A組方式選擇00:方式0方式字標(biāo)志C口高4位PC7~PC40:輸出C口低4位PC3~PC0配合B口工作B組方式選擇1:方式109一月2023第73頁例如,若使端口A工作于方式0,輸10一月2023第74頁2.端口C的置位/復(fù)位控制字:C口可用來作為位控方式使用,這時用置位/復(fù)位控制字單獨設(shè)置C口各位。該控制字的特征是:D7=0。0

D7

D6

D5

D4

D3

D2

D1

D0無用

端口C置位/復(fù)位標(biāo)志置位/復(fù)位1:置位0:復(fù)位位選擇000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7

09一月2023第74頁2.端口C的置位/復(fù)位控制字:C10一月2023第75頁【例8.2】端口C的PC7要求置1,PC3要求清0,分析置1/置0控制字并為其編制程序段。設(shè)8255A的控制口地址為00EEH。

分析:PC7置1,則控制字為00001111B,即0FH;PC3清0,則控制字為00000110B,即06H,下面的程序段可以實現(xiàn)上述要求。MOV AL,0FH ;對PC7置1的控制字MOV DX,00EEH ;控制口地址送DXOUT DX,AL ;對PC7置1操作MOV AL,06H ;對PC3置0的控制字OUT DX,AL ;對PC3操作

09一月2023第75頁【例8.2】端口C的PC7要求10一月2023第76頁1.方式0

方式0提供兩個8位口(A和B)和兩個4位口(PC7~PC4,PC3~PC0),任何一個口都可用做輸入或輸出,由CPU用簡單的I/O指令來進行讀/寫。8.4.48255的工作方式—有三種工作方式一般用于無條件傳送的場合,也可以用做查詢式傳送。習(xí)慣上將A口和B口作為數(shù)據(jù)口,將C口作為控制輸出和狀態(tài)輸入口。

09一月2023第76頁1.方式0方式0提供兩個810一月2023第77頁8255A方式0輸入時序09一月2023第77頁8255A方式0輸入時序10一月2023第78頁8255A方式0輸出時序脈沖寬度tRRtRA端口輸入數(shù)據(jù)CS,A1,A0tHRtLRtARRDD7~D0tDFtRD09一月2023第78頁8255A方式0輸出時序脈沖寬度10一月2023第79頁2.方式1——選通輸入/輸出工作方式

當(dāng)A口工作在方式1的輸入/輸出時,端口C的PC7、PC6、PC3或PC5、PC4、PC3配合口A工作;當(dāng)B口工作在方式1的輸入/輸出時,端口C的PC2、PC1、PC0配合口B工作。

方式1輸入09一月2023第79頁2.方式1——選通輸入/輸出工作10一月2023第80頁各控制信號說明如下:

STB(Strobl):選通信號輸入端,低電平有效。當(dāng)有效時,8255A接收外設(shè)送來的8位數(shù)據(jù),外設(shè)將數(shù)據(jù)打入8255A輸入緩沖器。IBF(InputBufferFull):緩沖器滿輸出信號,是輸出的狀態(tài)信號,高電平有效。有效時,表示當(dāng)前已有一個新的數(shù)據(jù)在輸入緩沖器中,一般供CPU查詢。

INTR(InterruptRequest):中斷請求信號,高電平有效。向CPU的信號,IBF有效時向CPU發(fā)請求信號,表示選通信號結(jié)束、從而外設(shè)已將一個數(shù)據(jù)送進輸入緩沖器中;在CPU讀取輸入緩沖器中的數(shù)據(jù)時,由讀信號的下降沿將INTR清除為低電平。09一月2023第80頁各控制信號說明如下:STB10一月2023第81頁8255A工作在方式1輸入的時序圖IBFINTRRD端口數(shù)據(jù)輸入數(shù)據(jù)輸入外設(shè)→8255A8255A→CPUSTB

INTE為中斷允許位,對應(yīng)PC口的D6位(INTEA)和D2位(INTEB),可通過對PC口按位寫方法設(shè)置;09一月2023第81頁8255A工作在方式1輸入的時序10一月2023第82頁⑵方式1輸出

當(dāng)A口工作在方式1并作為輸出端口時,端口C的PC7作為“輸出緩沖器滿信號”,PC6作為外設(shè)“接收數(shù)據(jù)后的響應(yīng)”信號,PC3作為“中斷請求信號”INTRA;當(dāng)B口工作在方式1并作為輸出端口時,端口C的PC1作為“輸出緩沖器滿信號”,PC2作為外設(shè)接收數(shù)據(jù)后的響應(yīng)”信號,PC0作為“中斷請求信號”INTRB。INTR端口數(shù)據(jù)輸出數(shù)據(jù)輸出CPU

→8255A8255A→外設(shè)數(shù)據(jù)有效WROBFACK方式1輸出的時序圖09一月2023第82頁⑵方式1輸出當(dāng)A口工10一月2023第83頁3.方式2——雙向傳輸方式

方式2只能用于端口A,在方式2下,CPU既可以從A口讀數(shù)據(jù),又可以向A口寫數(shù)據(jù),此時端口C的5條引線配合端口A提供聯(lián)絡(luò)信號。

PA7-0INTE1PC7PC6PC2PC3I/OINTRAOBFA&I/OPC4PC5INTE2≥1&(b)方式2時各控制信號的意義STBAIBFAASKA

PC3~

PC7引腳與之配合;PC0、1、2可作為數(shù)據(jù)線使用。

中斷條件:STB=1(無效),IBF=1、INTE=1;09一月2023第83頁3.方式2——雙向傳輸方式10一月2023第84頁8.4.58255A的應(yīng)用舉例

+5VD0~D7PA0A0PA1A1PA2PA3CSPA4PA5PA6PA7

RDPB3WRPB2PB1PB0RESET8255AA0A1A2…A15譯碼器11鎖存器AD0~AD7A8~A15A16/S3~A19/S6ALERDM/IOWRRESETCPU【例8.3】B口4個開關(guān)用來輸入4位二進制數(shù),A口接的是8段顯示器,要求根據(jù)8255A的B口輸入的二進制情況,將其從A口輸出。地址是0FFF8H、0FFFAH…

09一月2023第84頁8.4.58255A的應(yīng)用舉10一月2023第85頁分析:

A口:基本輸出方式,B口:基本輸入方式,方式控制字為82H。循環(huán)讀取B口數(shù)據(jù),然后到字段表中取段碼,最后送到A口顯示。程序如下:

MOV AL,82HMOV DX,0FFFEH;設(shè)置方式控制字OUT DX,ALL:MOV DL,0FAHIN AL,DX ;讀B口開關(guān)數(shù)據(jù)AND AL,0FH ;屏蔽高4位MOV BX,OFFSETBUFFERXLAT ;取段碼MOV DL,0F8H ;A口OUT DX,AL ;輸出段碼顯示JMP LHLT09一月2023第85頁分析:A口:基本輸出方式,B口10一月2023第86頁【例8.4】8255A作為連接打印機的接口,工作于方式0,連接如圖9-2-15所示。

打印機數(shù)據(jù)線BUSYSTRD0H~D6HA0A1CS8255APC總線A0A1IORRDWRIOWPA0~PA7PC6PC2A2~A9D0~D7D0~D7數(shù)據(jù)線片選譯碼09一月2023第86頁【例8.4】8255A作為連接打10一月2023第87頁具體查詢程序段如下:

PP:MOV AL,81H

OUT0D6H,AL

MOV AL,0CHOUT 0D6H,AL LSPT:IN AL,0D4HAND AL,04HJNZ LSPT

MOV AL,DATA[SI]OUT 0D0H,ALMOV AL,0DH

OUT 0D6H,ALDEC AL

OUT 0D6H,AL

…控制字,三個口工作于方式0,A口出,PC3~PC0入,PC7~PC4為輸出方式。用置1/置0方式使PC6為0,即使STB為高電平測試D2位,如不為0,說明忙信號為1,即打印機處于忙狀態(tài),故循環(huán)測試如不忙,把一字符送端口A,09一月2023第87頁具體查詢程序段如下:控制字,10一月2023第88頁【例8.5】使8255A工作于方式1,作為用中斷方式工作的打印機的接口,電路如下。

設(shè)8255A的端口地址為:A端口:00C0HB端口:00C2HC端口:00C4H控制端口:00C6H。

8086D7~D0D7~D08255APC0PC6打印機ACKNLGPA7-PA0ACK接8259A的IR31PC309一月2023第88頁【例8.5】使8255A工作于方10一月2023第89頁【分析】8255A的A口作為數(shù)據(jù)通道,工作在方式1,輸出,此時PC6作為ACK信號輸入端,PC3自動作為INTR信號輸出端,PC7作為OBF信號輸出端。打印機需要一個數(shù)據(jù)選通信號,故由CPU控制PC0來產(chǎn)生選通脈沖。ACK接打印機的ACKNLG端;PC3連到8259A中斷管理器的中斷請求信號輸入端IR3,中斷類型號為0BH,中斷向量放在主存的00H段2CH,2DH,2EH,2FH這4個單元中。對8255A初始化(設(shè)置控制字)程序段:MAIN:MOVAL,0A0H ;控制字,A口方式1,輸出,PC3~PC0為輸出。OUT0C6H,AL09一月2023第89頁【分析】8255A的A口作為數(shù)據(jù)10一月2023第90頁MOVAL,01H;置1/0方式使PC0=1,OUT0C6H,AL;即讓選通無效MOVDX,OFFSETROUTINTRMOVAX,SEGROUTINTR ;取中斷服務(wù)程序的偏移地址和段地址MOVDS,AXMOVAL,0BH ;選中斷向量0BHINT21H ;設(shè)置中斷向量MOVAL,0DH;使PC6為1,允許8255A中斷OUT 0C6H,ALSTI ;開放中斷向量09一月2023第90頁MOVAL,01H10一月2023第91頁中斷處理子程序的主要程序段如下:ROUTINTR:MOVAL,[DI];打印字符緩沖區(qū)OUT0C0H,AL;將打印字符送口A口MOV AL,00HOUT 0C6H,AL;INCALOUT0C6H,ALINCDI…;后續(xù)處理…IRET;中斷返回用置1/置0方式使PC0為0用置1/置0方式使PC0為1,09一月2023第91頁中斷處理子程序的主要程序段如下:10一月2023第92頁8.5計數(shù)器/定時器

1.概述定時信號的產(chǎn)生可用軟件和硬件兩種方法獲得。

軟件方法:用延時子程序。一般是由循環(huán)程序并且包含一定量的指令完成的,設(shè)計者需要對這些指令的執(zhí)行時間進行嚴格計算或精確測試,以便得到精確的延時時間,軟件方法節(jié)省硬件,但是CPU執(zhí)行延時子程序期間,不能做其它事,降低了CPU的效率,且不容易提供多作業(yè)環(huán)境。

硬件方法:用計數(shù)器/定時器來實現(xiàn)定時。即是一種靠硬件來實現(xiàn)的定時方法。本節(jié)主要介紹當(dāng)前廣泛應(yīng)用的可編程計數(shù)器/定時器Intel8253的原理和使用方法。8.5.1計數(shù)器/定時器概述

09一月2023第92頁8.5計數(shù)器/定時器1.10一月2023第93頁2.計數(shù)器/定時器的工作原理可編程計數(shù)器/定時器的功能體現(xiàn)為:一是計數(shù)功能,由程序?qū)τ嫈?shù)器設(shè)置好計數(shù)初值,啟動后便對外部事件開始減“1”計數(shù),減為“0”時,輸出一個信號;二是定時功能:也是由程序設(shè)置好定時常數(shù)后進行減“1”計數(shù),按定時常數(shù),不斷輸出為時鐘周期整數(shù)倍的定時間隔。計數(shù)器/定時器有以下用途:⑴

在多任務(wù)的分時系統(tǒng)中,用來作為中斷信號實現(xiàn)程序的切換;⑵

可以給外部設(shè)備提供精確的定時信號;⑶

作為可編程的波特率發(fā)生器;⑷

實現(xiàn)時間延時。

09一月2023第93頁2.計數(shù)器/定時器的工作原理可編10一月2023第94頁8.5.2可編程計數(shù)器/定時器8253

1.8253的結(jié)構(gòu)和工作原理⑴

邏輯結(jié)構(gòu):Intel8253的邏輯結(jié)構(gòu)即編程結(jié)構(gòu)如圖(a)所示,引腳如圖(b)所示。8253是24腳封裝。D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND8253的引腳圖8253123456789101112242322212019181716151413VCCWRRDCSA1A0CLK2OUT2GATE2CLK1GATE1OUT1CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT28253的編程結(jié)構(gòu)數(shù)據(jù)總線緩沖器讀/寫邏輯控制寄存器計數(shù)器0計數(shù)器1計數(shù)器2D7-D0A0A1RDWRCS09一月2023第94頁8.5.2可編程計數(shù)器/定時10一月2023第95頁⑵8253的工作原理

⑴邏輯結(jié)構(gòu):8253內(nèi)部有3個計數(shù)器,分別稱為計數(shù)器0、計數(shù)器1和計數(shù)器2,它們的結(jié)構(gòu)完全相同。每個計數(shù)器通過3個引腳和外部聯(lián)系:一個時鐘輸入端CLK、一個門控信號輸入端GATE和一個輸出端OUT,每個計數(shù)器內(nèi)部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器CR、一個計數(shù)執(zhí)行部件和一個輸出鎖存器。8253的編程結(jié)構(gòu)數(shù)據(jù)總線緩沖器讀/寫邏輯控制寄存器計數(shù)器0計數(shù)器1計數(shù)器2CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D7-D0A0A1RDWRCS09一月2023第95頁⑵8253的工作原理⑴邏輯10一月2023第96頁高8位低8位高8位低8位高8位低8位初值計數(shù)器減法計數(shù)器輸出鎖存器工作原理

①數(shù)據(jù)總線緩沖器:通過數(shù)據(jù)總線緩沖器,CPU可以對8253寫入初始化命令字、寫入計數(shù)初值、讀取計數(shù)值。所以與數(shù)據(jù)總線緩沖器相連的外部引腳D7~D0接系統(tǒng)數(shù)據(jù)總線的低8位。

②計數(shù)器0、計數(shù)器1和計數(shù)器2:三個互相獨立的計數(shù)器,各自可按不同的方式工作。計數(shù)器0、1、2三個計數(shù)器/定時器內(nèi)部每個都由一個16位的可預(yù)置值的減法計數(shù)器構(gòu)成。每個計數(shù)器操作獨立,其內(nèi)部結(jié)構(gòu)相同,減法計數(shù)器由計數(shù)器初值寄存器裝入初值,計數(shù)初值寄存器通過程序設(shè)置,輸出寄存器用于鎖存計數(shù)器的內(nèi)容。09一月2023第96頁高8位低8位高8位低8位高810一月2023第97頁③讀/寫邏輯電路:讀/寫邏輯電路從系統(tǒng)總線接收輸入信號,經(jīng)過組合產(chǎn)生對8253的控制信號。④控制寄存器:寫入控制字,決定計數(shù)器的工作方式。⑶8253的引腳功能與3個計數(shù)器有關(guān)的引腳計數(shù)器0:CLK0——計數(shù)器0的時鐘輸入

GATE0——計數(shù)器0的門脈沖控制輸入

OUT0

——計數(shù)器0的輸出片選信號輸入,低電平有效。一般是由系統(tǒng)地址總線經(jīng)過譯碼后接入,對8253進行使能控制。CS:讀信號,低電平有效。它接系統(tǒng)控制總線的。當(dāng)有效時,表示CPU正在對8253進行讀操作。WR:寫信號,低電平有效。它接系統(tǒng)控制總線的。當(dāng)有效時,表示CPU正在對8253進行寫操作。

09一月2023第97頁③讀/寫邏輯電路:讀/寫邏輯電10一月2023第98頁A1、A0:內(nèi)部計數(shù)器及控制寄存器選擇。CS、RD、WR和A1、A0命令關(guān)系如下表:無操作110

01讀2#計數(shù)器當(dāng)前計數(shù)值100

01讀1#計數(shù)器當(dāng)前計數(shù)值010

01讀0#計數(shù)器當(dāng)前計數(shù)值000

01向控制字寄存器寫控制字11010計數(shù)初值寫入2#計數(shù)器10010計數(shù)初值寫入1#計數(shù)器01010計數(shù)初值寫入0#計數(shù)器00010操作A1

A0

CSRDWR09一月2023第98頁A1、A0:內(nèi)部計數(shù)器及控制寄存10一月2023第99頁2.8253的控制字格式D0(BCD):設(shè)置計數(shù)器的計數(shù)數(shù)制。當(dāng)BCD=0時,計數(shù)器按二進制計數(shù),當(dāng)BCD=1時,計數(shù)器按BCD碼計數(shù)。D3、D2、D1(M2、M1、M0):工作方式選擇。有6種不同工作方式,如表9-7所示。

M2M1M0

工作方式

0

00001×10×11100101

方式0方式1方式2方式3方式4方式5

09一月2023第99頁2.8253的控制字格式D010一月2023第100頁D5、D4(RW1、RW0):讀/寫指示位,具體如下:00:對計數(shù)器進行鎖存操作,使當(dāng)前計數(shù)值鎖存到鎖存器中,以便進行讀操作;01:只讀/寫低8位字節(jié);10:只讀/寫高8位字節(jié);11:先讀/寫低8位字節(jié),再讀/寫高8位字節(jié)。D7、D6(SC1、SC0):用來選擇計數(shù)器。

其對應(yīng)關(guān)系為:D7、D6(SC1、SC0)00:選擇計數(shù)器001:選擇計數(shù)器110:選擇計數(shù)器211:無效09一月2023第100頁D5、D4(RW1、RW0):10一月2023第101頁原則:對計數(shù)器設(shè)置初值前,先寫控制字:指出計數(shù)值是二進制還是十進制、工作方式、對哪個計數(shù)器的哪些字節(jié)進行操作等規(guī)定。在讀計數(shù)器值時,必須先用鎖存命令,鎖住當(dāng)前計數(shù)值,再進行讀操作,否則,在讀數(shù)時,計數(shù)器的數(shù)值可能處在改變過程中,這樣,讀出的計數(shù)值是一個不確定的數(shù)值。3.8253的編程命令4.8253的工作方式控制字的D3、D2、D1(M2、M1、M0):工作方式選擇。有6種不同工作方式。

09一月2023第101頁原則:3.8253的編程命令10一月2023第102頁GATE=1CLKOUTN43210FF⑴方式0——計數(shù)結(jié)束產(chǎn)生中斷方式

CW寫入控制字n=4寫入初值4開始計數(shù)計數(shù)結(jié)束產(chǎn)生中斷原則:工作特點:?計數(shù)時GATE=1,若GATE變?yōu)榈碗娖酵V褂嫈?shù)。?初值為n時,OUT在n+1個時鐘后產(chǎn)生高電平。?只計一遍數(shù),不重復(fù),直到寫入新的控制字為止。?計數(shù)過程中,可改變計數(shù)初值,寫入新初值后,重新開始計數(shù)。?GATE=0時寫入初值,到GATE變1時才開始計數(shù)。09一月2023第102頁GATE=1CLKOUTN4310一月2023第103頁⑵方式1——單脈沖觸發(fā)器(可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器)FFCWCLKGATEOUT321032n=3寫入初值門控觸發(fā)開始計數(shù)進入暫穩(wěn)態(tài)計數(shù)時間到,回到穩(wěn)態(tài)再次觸發(fā)?計數(shù)過程中,可改變計數(shù)初值,這時當(dāng)前計數(shù)不受影響,回0后OUT為高電平,若再次觸發(fā),則按新的初值進行計數(shù)。?計數(shù)過程中,又來一個門控信號,則再下一時鐘脈沖后,又重新從初值開始計數(shù),OUT仍維持為低電平,這樣使輸出脈沖比原來延長了。09一月2023第103頁⑵方式1——單脈沖觸發(fā)器(可10一月2023第104頁⑵方式1——單脈沖觸發(fā)器(可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器)重復(fù)周期寫入初值開始計數(shù)重復(fù)周期CWn=3CLKGATE=1OUT321321321?可重復(fù),不用重寫初值。輸出n-1個高,1個低電平脈沖波形。?計數(shù)過程中,如果改變計數(shù)初值,當(dāng)前計數(shù)不受影響,在下一個輸出周期中,將按新的計數(shù)值進行計數(shù),這是GATE門一直有效的情況。

09一月2023第104頁⑵方式1——單脈沖觸發(fā)器(可10一月2023第105頁⑷

方式3——方波發(fā)生器

CWn=4W重復(fù)周期CLKGATE=1OUT432143214負半周正半周負半周寫入初值開始計數(shù)正半周OUT543215432重復(fù)周期09一月2023第105頁⑷方式3——方波發(fā)生器CW10一月2023第106頁⑸

方式4——軟件觸發(fā)選通

寫入初值開始計數(shù)計數(shù)結(jié)束其特點是:?若計數(shù)初值為n,寫入初值n+1個時鐘周期后,輸出一個時鐘寬度的負脈沖。?GATE=1時,允許計數(shù),GATE=0時,禁止計數(shù),OUT端不受影響,維持當(dāng)時的電平。FFFFCWn=5CLKGATE=1OUT54321009一月2023第106頁⑸方式4——軟件觸發(fā)選通寫10一月2023第107頁⑹

方式5——硬件觸發(fā)選通

計數(shù)時間到寫入初值門控觸發(fā)開始計數(shù)再次觸發(fā)?在

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論