版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第2章 輸入輸出 在微型計算機系統(tǒng)的應用中,CPU除與內(nèi)存交換信息外,還必然要經(jīng)常與各種外部設備交換信息。主機與外設進行信息交換過程主要是完成數(shù)據(jù)輸入或輸出的傳送操作。輸入或輸出操作的確切含義是有選擇地啟動被微處理器選中的外部設備,以便使其接收來自CPU的數(shù)據(jù)或向CPU送入數(shù)據(jù)。數(shù)據(jù)傳送的方向標準通常以微處理器為中心,當數(shù)據(jù)是由外部設備,如鍵盤、紙帶讀入機、光筆等設備向CPU送入時,稱為輸入傳送;而當數(shù)據(jù)自CPU送到如發(fā)光二極管、七段顯示器、CRT顯示器、點陣打印機、繪圖儀等設備時,稱為輸出傳送。 CPU與各外部設備之間的連接和信息交換是比較復雜的。通常把CPU與外部設備間的連接方法與信息交換
2、手段的研究稱為輸入輸出技術(由于外部設備通常簡稱I/O設備,故亦稱輸入輸出技術為I/0技術)。 2.1 接口概述 2.1.1 接口與端口 從廣義上講,接口就是指兩個系統(tǒng)或兩個部件之間的交接部分,可以是兩種硬設備之間的連接電路,也可以是兩個軟件之間公用的邏輯邊界。在微型計算機系統(tǒng)中,CPU與外部設備之間的聯(lián)系,需要有特定的硬件連接和相應的控制軟件。完成這一任務的軟、硬件的綜合稱為接口。對這種硬件、軟件的設計,稱為接口技術。應該指出,接口(Interface)和端口(Port)是不同的。所謂端口是指接口電路中那些完成信息傳送,可由程序尋址并進行讀寫操作的寄存器。原則上講,若干個端口加上相應的控制邏
3、輯才構成接口。所以,一個接口中往往含有幾個端口,CPU可以通過輸入指令從端口讀出信息,通過輸出指令向端口寫入信息。CPU尋址的是端口,而不是籠統(tǒng)的外設接口。 2.1.2 接口的功能 1地址譯碼或設備選擇接口必須進行地址譯碼,從而產(chǎn)生設備選擇信號,以使微處理器和指定的外部設備交換信息。2數(shù)據(jù)緩沖和鎖存在微計算機系統(tǒng)中,數(shù)據(jù)總線是系統(tǒng)各部分之間公用的雙向總線,所有設備分時復用。所以,無論是存儲器,還是外部設備,都不能長期占用數(shù)據(jù)總線,只允許被選中的設備在讀/寫周期內(nèi)可用其傳送數(shù)據(jù)。3信息格式與電平的轉換接口應該具有信號傳送格式、信號類型、信號電平的轉換能力。4數(shù)據(jù)傳送的協(xié)調CPU工作是有一定的時序
4、的,CPU與外部設備交換數(shù)據(jù)時必須采用一定的傳送方式進行控制。2.1.3 接口的一般編程結構 I/O接口與外設的連接信號 I/O接口與外設的連接信號分為數(shù)據(jù)線、狀態(tài)線和控制線三種。(1)數(shù)據(jù)線大致分為如下三種類型。1)數(shù)字量。數(shù)字量是以二進制形式表示的數(shù)據(jù)或是以ASCII碼表示的數(shù)據(jù)及字符。2)模擬量。許多連續(xù)變化的物理量,如溫度、濕度、位移、壓力、流量等都是模擬量。3)開關量。開關量可表示兩個狀態(tài),如開關的閉合和斷開、電機的運轉和停止、閥門的打開和關閉等。(2)狀態(tài)線外設將其狀態(tài)通過狀態(tài)線送往接口中的狀態(tài)寄存器,它反映了當前外設所處的工作狀態(tài)。對于輸入設備來說,通常用準備好(READY)信號
5、來表明輸入設備是否準備就緒。(3)控制線控制線是由CPU向I/O接口輸出的控制外部設備的信息。2.1.4 接口的分類 1按應用分類從應用角度分類,微計算機接口一般可分為四種基本類型:用戶交互接口、輔助操作接口、傳感接口和控制接口。 2按功能分類(1)按數(shù)據(jù)傳送方式分類:并行接口、串行接口。 (2)按接口通用性分類:通用接口、專用接口。 (3)按接口的可選擇性分類:可編程接口、不可編程接口。 (4)按接口輸入/輸出信號分類:數(shù)字接口、模擬接口。2.2 I/O端口的地址選擇 微計算機的操作速度很快,可以控制很多外部設備。但是,微計算機采用的是總線結構,只有一組數(shù)據(jù)線。當CPU發(fā)出一個數(shù)據(jù)信息后,到
6、底哪一個外部設備來接收這個數(shù)據(jù)呢?不得而知。因此,在微計算機與外部設備交換信息之前,應首先通過地址總線發(fā)出地址信息,通過某種編址方式來選中一個外部設備,進而實現(xiàn)信息交換。這里所謂的“與外部設備”交換信息,確切地應理解為“與外部設備的端口”交換信息。對端口的編址(尋址)有兩種方式,這就是存儲器映像方式和I/O映像方式。常見的端口地址選擇方法有三種:門電路組合法、譯碼器譯碼法、比較器比較法。 2.2.1 輸入輸出的尋址方式 1存儲器映像方式這種尋址方式把一個I/O端口看作是一個存儲單元(或采用地址重疊技術,對應n個存儲單元),相當于給每一個I/O端口分配一個存儲器地址(或n個存儲器地址)。存儲器映
7、像尋址方式的主要優(yōu)點是:(1)指令豐富。(2)I/O端口空間大。(3)尋址的控制邏輯比較簡單。這種尋址方式的主要缺點是:(1)I/O端口占用了一部分存儲器地址空間,使可用的內(nèi)存空間相對減少。(2)對I/O端口的訪問和對存儲器的訪問一樣,必須對全部地址線譯碼,因而地址譯碼電路比較復雜。(3)存儲器操作指令的機器碼比較長,需要較長的執(zhí)行時間。(4)用存儲器指令來處理輸入/輸出操作,在程序清單中不易區(qū)別,給程序的設計、分析、調試帶來一定的困難。采用存儲器映像尋址方式的計算機有PDP-11小型機、6800系列微型機、6502系列微型機等。 2I/O映像方式在這種尋址方式中,I/O端口空間與存儲器空間各
8、自獨立,互不干涉,互不影響,故亦稱為獨立的I/O尋址方式。在指令操作上,對存儲單元的一般性傳送使用MOV指令,而對I/O端口的傳送操作,使用系統(tǒng)專門提供的一組I/O指令,即IN和OUT指令。 I/O映像尋址方式的主要優(yōu)點是:(1)I/O空間與存儲器空間各自獨立,可分開設計。(2)由于采用單獨的I/O指令,其助記符與存儲器指令明顯不同,因而使程序編制清晰,易于理解。(3)I/O地址線較少,所以譯碼電路簡單。(4)I/O指令格式短,執(zhí)行時間快。這種尋址方式的主要缺點是:(1)需要專門的I/O指令,且這些指令一般不如存儲器訪問指令豐富,程序設計靈活性較差。(2)參加譯碼的地址線較少,使外設端口的數(shù)目
9、受到限制。(3)采用專用的I/O周期和專用的I/O控制線,這不僅使微處理器有限的引腳更加緊張,而且也增加了控制邏輯的復雜性。 2.2.2 用門電路組合法進行端口地址選擇 門電路組合法是最簡單的一種端口地址選擇方法,它采用常見的與門、或門、非門等作為基本的組合元件。一般端口都是指寄存器、鎖存器或緩沖器,這些器件都有一個芯片選擇信號,簡稱片選信號,多數(shù)是低電平有效。當然,也有一些芯片沒有片選信號,而是有使能端,或脈沖控制端,總之是使器件產(chǎn)生動作的控制端。端口地址選擇的目的,是當?shù)刂肪€上出現(xiàn)某種信息組合時,在端口地址選擇電路的輸出端會產(chǎn)生一個有效信號(有效信號有四種狀態(tài),即高電平、低電平、上跳沿、下
10、跳沿,具體使用哪種狀態(tài),視所使用的器件而定),該信號連到器件的控制端,使器件產(chǎn)生動作,從而完成I/O端口的讀/寫操作。 2.2.3 用譯碼器譯碼法進行端口地址選擇 譯碼器譯碼法是最常用的一種方法,就是利用譯碼器芯片對地址進行譯碼。PC/XT微計算機系統(tǒng)板上接口芯片的端口地址譯碼電路采用譯碼器譯碼法。所連接的接口芯片都有片選信號,74LS138譯碼器的輸出與這些接口芯片的片選信號連接。各接口芯片內(nèi)部有多個寄存器,因而,相應地有多個端口地址。譯碼器只直接使用地址線A9-A5,其余的低5位地址線A4-A0未接,留給各接口芯片內(nèi)部自行譯碼,以便尋址多個寄存器。 2.2.4 用比較器比較法進行端口地址選
11、擇 2.3 輸入輸出控制方式 CPU對I/O控制方式,就微機系統(tǒng)而言有四種基本方式,即程序查詢方式、程序中斷方式、DMA方式和I/O處理機方式。前兩種主要由程序來實現(xiàn),而后兩種主要由附加硬件來實現(xiàn)。目前,微機中多數(shù)采用前三種。程序查詢方式:CPU通過查詢I/O設備的狀態(tài),斷定哪個設備需要服務,然后轉入相應的服務程序。程序中斷方式:當I/O設備需要CPU為其服務時,可以發(fā)生中斷請求信號INTR,CPU接到請求信號后,中斷正在執(zhí)行的程序,轉去為該設備服務,服務完畢,返回原來被中斷的程序并繼續(xù)執(zhí)行。直接存儲器存?。―MA)方式:采用這種方式時,在DMA控制器的管理下,I/O設備和存儲器直接交換信息,
12、而不需要CPU介入。I/O處理機方式:引入I/O處理機,全部的輸入/輸出操作由I/O處理機獨立地承擔。 2.3.1 程序查詢方式 程序查詢傳送方式又分為無條件傳送方式和查詢傳送方式。程序查詢方式是有條件的傳送控制方式,在這種方式中,CPU對I/O設備的控制(調度)全部由程序來實現(xiàn),所有的輸入輸出操作都處于正在被執(zhí)行的程序的控制下,I/O設備完全處于被動地位。所謂查詢,就是詢問外部設備的工作狀態(tài),通過這一狀態(tài)來判定外設是否已具備了與CPU交換數(shù)據(jù)的條件,即外設是否已準備好與CPU交換數(shù)據(jù)。對輸入設備而言,這個狀態(tài)指示輸入設備的數(shù)據(jù)是否已經(jīng)準備就緒,CPU是否可以隨時來讀取這個數(shù)據(jù)。對輸出設備而言
13、,這個狀態(tài)指示輸出設備的數(shù)據(jù)接收寄存器是否已空,是否可以隨時接受CPU送來的數(shù)據(jù)。 1無條件傳送方式 2查詢輸入傳送方式 3查詢輸出傳送方式 2.3.2 程序中斷方式 無條件傳送方式和查詢傳送方式的缺點是CPU和外設只能串行工作,各外設之間也只能串行工作。為了使CPU和外設以及外設和外設之間能并行工作,提高系統(tǒng)的工作效率,充分發(fā)揮CPU高速運算的能力,在微機系統(tǒng)中引入了中斷技術,利用中斷來實現(xiàn)CPU與外設之間的數(shù)據(jù)傳送,這就是程序中斷傳送方式。在程序中斷傳送方式中,通常是在主程序中某一時刻安排啟動某一臺外設的指令,然后CPU繼續(xù)執(zhí)行其主程序,當外設完成數(shù)據(jù)傳送的準備后,向CPU發(fā)出“中斷請求”
14、信號,在CPU可以響應中斷的條件下,中斷(即暫停)現(xiàn)行主程序的執(zhí)行,而轉去執(zhí)行“中斷服務程序”,在“中斷服務程序”中完成一次CPU與外設之間的數(shù)據(jù)傳送,傳送完成后仍返回被中斷的斷點處繼續(xù)執(zhí)行主程序。2.3.3 DMA方式 1DMA傳送方式的提出與程序查詢方式相比,利用中斷方式進行數(shù)據(jù)傳送可以大大提高CPU的工作效率。但在中斷方式中,仍然是通過CPU執(zhí)行程序來實現(xiàn)數(shù)據(jù)傳送的,每傳送一個字節(jié)(或一個字)CPU都必須把主程序停下來,轉去執(zhí)行中斷服務程序。而每進入一次中斷服務程序,CPU都要保護斷點和轉入中斷服務程序,上述幾方面的因素造成中斷方式下的傳輸效率仍然不是很高。如果I/O設備的數(shù)據(jù)傳輸率較高
15、,那么CPU和這樣的外部設備進行數(shù)據(jù)傳輸時,即使盡量壓縮程序查詢方式和中斷方式中的非數(shù)據(jù)傳輸時間,也仍然不能滿足要求。這是因為在這兩種方式下,還存在另外一個影響傳輸速度的原因,即它們都是按字節(jié)或字來進行傳輸?shù)?。為了解決這個問題,實現(xiàn)按數(shù)據(jù)塊傳輸,就需要改變傳輸方式,為此,提出了在外設和內(nèi)存之間直接傳送數(shù)據(jù)的方式,這就是直接存儲器傳輸方式,即DMA方式。 2DMA操作的基本方法 (1)CPU停機方式在這種方式下,當要進行DMA傳送時,DMA控制器向CPU發(fā)出總線請求信號,迫使CPU在現(xiàn)行的總線周期結束后,使其地址總線、數(shù)據(jù)總線和部分控制總線處于高阻狀態(tài),從而讓出對總線的控制權,并給出DMA響應信
16、號。DMA控制器接到該響應信號后,就可以對總線進行數(shù)據(jù)傳送的控制工作,直到DMA操作完成,CPU再恢復對總線的控制權,繼續(xù)執(zhí)行被中斷的程序。(2)周期擴展在這種方式下,當需要進行DMA操作時,由DMA控制器發(fā)出請求信號給時鐘電路,時鐘電路把供給CPU的時鐘周期加寬,而提供給存儲器和DMA控制器的時鐘周期不變。用這種方法進行DMA操作,一次只能傳送一個字節(jié)。(3)周期挪用在這種方式下,利用CPU不訪問內(nèi)存的那些周期來實現(xiàn)DMA操作,此時DMA操作使用總線不用通知CPU也不會妨礙CPU的工作。3DMA控制器的功能 (1)當外設準備就緒,希望進行DMA操作時,會向DMA控制器發(fā)出DMA請求信號,DM
17、A控制器接到此信號后,應能向CPU發(fā)總線請求信號。(2)CPU接到總線請求信號后,如果允許,則會發(fā)出DMA響應信號,從而CPU放棄對總線的控制,這時DMA控制器應能實行對總線的控制。(3)DMA控制器得到總線控制權以后,要往地址總線發(fā)送地址信號,修改所用的存儲器的地址指針。(4)在DMA傳送期間,DMA控制器應能發(fā)存儲器或接口的讀/寫控制信號。(5)能統(tǒng)計傳送的字節(jié)數(shù),并且判斷DMA傳送是否結束。(6)能向CPU發(fā)出DMA結束信號,將總線控制權交還給CPU。 4DMA傳送的一般工作過程 2.3.4 I/O處理機方式 為了提高整個系統(tǒng)的工作效率,使CPU完全擺脫管理、控制輸入/輸出的沉重負擔。從
18、20世紀60年代開始又引入了I/O處理機的概念,提出了數(shù)據(jù)傳送的I/0處理機方式。于是,專門用來處理輸入輸出的I/O處理機IOP應運而生。如Intel 8089就是一種專門配合8086/8088使用的I/O處理器芯片。I/O處理機有自己的指令系統(tǒng),也能獨立地執(zhí)行程序,能承擔原來由CPU處理的全部輸入/輸出操作。如對外設進行控制、對輸入/輸出過程進行管理,并能完成字與字之間的裝配和拆卸、碼制的轉換、數(shù)據(jù)塊的錯誤檢測和糾錯,以及格式變換等操作。同時它還可以向CPU報告外設和外設控制器的狀態(tài),對狀態(tài)進行分析,并對輸入/輸出系統(tǒng)出現(xiàn)的各種情況進行處理。上述操作都是同CPU程序并行執(zhí)行的。為了使CPU的
19、操作與輸入/輸出操作并行進行,必須使外設工作所需要的各種控制命令和定時信號與CPU無關,由I/O處理機獨立形成。 2.4 DMA控制器8237A 主要的功能有: 1在一片8237A內(nèi)有4個獨立的DMA通道。 2每個通道的DMA請求可分別編程允許或禁止。 3每個通道的DMA請求有不同的中斷優(yōu)先級(即DMA操作優(yōu)先權),優(yōu)先級有兩種:固定優(yōu)先級和循環(huán)優(yōu)先級,由編程決定。固定優(yōu)先級的順序是通道0最高,依次是通道1,通道2和通道3。 4可在外設與存儲器,存儲器與存儲器之間傳送數(shù)據(jù),存儲器地址寄存器可以加1或減1。 5可由軟件編程改變DMA讀寫周期長度。 6有四種工作方式:單字節(jié)傳送方式,數(shù)據(jù)塊傳送方式
20、,請求傳送方式,級連方式。 7可以多片級連,擴展通道數(shù)。 8DMA操作結束有兩種方法:一是字節(jié)計數(shù)器減1由0變?yōu)镕FFFH,二是外界通過輸入負脈沖,強制DMA操作結束。 9DMA操作啟動有兩種方法:一是外設輸入DMA請求信號DREQ,二是通過軟件編程從內(nèi)部啟動。 2.4.1 8237A的內(nèi)部結構及引腳功能 8237A內(nèi)部端口地址分配 8237A芯片內(nèi)部共有12種寄存器 1)基地址寄存器 16位42)基字節(jié)數(shù)計數(shù)器 16位43)當前地址寄存器 16位44)當前字節(jié)數(shù)計數(shù)器 16位45)方式字寄存器 6位46)暫存地址寄存器 16位17)暫存字節(jié)數(shù)計數(shù)器 16位18)狀態(tài)寄存器 8位19)命令寄存
21、器 8位110)暫存寄存器 8位111)屏蔽寄存器 4位112)請求寄存器 4位1 2.4.2 8237A的工作方式 從DMA操作過程的角度,DMA控制器8237A的幾種工作方式包括主從模態(tài)、傳送方式、傳送類型、優(yōu)先級編碼、自動初始化方式、存儲器到存儲器的傳送等。 1主從模態(tài) DMA控制器既可以作為I/O端口接受CPU的讀寫操作,也可以代替CPU占有總線,控制外設與存儲器之間傳送數(shù)據(jù),它充分體現(xiàn)了DMA控制器的兩大特性,即總線的主控性和總線的從屬性,按這兩大特性,它也就有兩種工作模態(tài):主態(tài)方式和從態(tài)方式。 (1)主態(tài)方式 在主態(tài)方式時,DMA控制器是總線的控制者,此時,8237A是主模塊,它如
22、同CPU一樣,掌握總線的控制權,可對涉及的外設端口或存儲器單元進行讀寫操作。在DMA操作時,DMA控制器成為系統(tǒng)的控制核心,為完成DMA操作,它應提供存儲器地址,指定外設,發(fā)出讀寫控制信號。由于只有一組地址總線,所以當DMA控制器提供了存儲器地址后,就無法再提供外部設備的地址,因此DMA控制器在DMA傳送時用DACK來選擇外設,代替外設的地址選擇邏輯,使申請DMA操作并被接受的外部設備在DMA操作中一直保持被選通狀態(tài),僅用或來控制數(shù)據(jù)的流向和啟停。另外,DMA操作在外設和存儲器之間建立了直接數(shù)據(jù)通道,數(shù)據(jù)傳送時不需要經(jīng)過DMA控制器,加快了數(shù)據(jù)傳送速度,減少了中間環(huán)節(jié),這也是DMA方式能高速傳
23、送的原因之一。 (2)從態(tài)方式 在從態(tài)方式時,CPU是總線的控制者,而DMA控制器不過是普通的一個外部設備,有若干個端口而已,它的地位同一般的I/O接口芯片是一樣的,所以,此時8237A是從模塊。DMA控制器在開始工作之前,要由CPU寫入初始化控制字,建立DMA控制器工作的基本條件,如傳送方式、傳送類型、地址增加還是減少、是否設置自動初始化方式等,CPU還要寫入一些數(shù)據(jù),以確定DMA方式傳送的具體內(nèi)容,如存儲區(qū)地址、傳送字節(jié)數(shù)等,在這些操作中,DMA控制器以被規(guī)定的端口地址接收數(shù)據(jù)。另外,在DMA傳送后,CPU也往往讀取DMA控制器的狀態(tài)。顯然,在這兩種情況下,DMA控制器是系統(tǒng)的從屬設備。
24、2傳送方式 8237A通過編程,可選擇4種傳送方式,分別是單字節(jié)傳送方式、數(shù)據(jù)塊傳送方式、請求傳送方式和級聯(lián)傳送方式。 (1)單字節(jié)傳送方式 單字節(jié)傳送方式時,一次只傳送一個字節(jié),然后釋放總線。若又有外設DMA請求,8237A再向CPU發(fā)下一次總線請求HRQ,獲得總線控制權后,再傳送下一個字節(jié)數(shù)據(jù)。在這種傳送方式中應注意以下幾方面:1)在DACK有效之前,DREQ應保持有效。2)即使DREQ在傳送過程中一直保持有效,在總線響應后HRQ也將變成無效,并在傳送一個字節(jié)后DMA控制器釋放總線,但由于DREQ一直有效,HRQ很快再次變成有效,在芯片接受到新的HLDA后,下一個字節(jié)又開始傳輸。顯然,在兩
25、次DMA傳送之間至少執(zhí)行一個完整的機器周期,在此期間,完全可能響應另一個高優(yōu)先級的DMA請求。3)每次傳送后,當前字節(jié)數(shù)計數(shù)器減1,當前地址寄存器減1或加1,當當前字節(jié)數(shù)計數(shù)器減1由0變成FFFFH時,發(fā)出有效信號(產(chǎn)生終止計數(shù)TC信號),如果通道編程設為自動初始化方式,則自動地重新裝入計數(shù)值和地址寄存器。 (2)數(shù)據(jù)塊傳送方式 數(shù)據(jù)塊傳送方式時,響應一次DMA請求,將完成設定的字節(jié)數(shù)的全部傳送。當字節(jié)數(shù)計數(shù)器減l由0變?yōu)镕FFFH時,產(chǎn)生TC有效信號,使8237A將總線控制權交還給CPU從而結束DMA操作方式,外部有效的信號也可以終結DMA傳送。在DACK變成有效之前,DREQ信號必須保持有
26、效。一旦DACK有效,不管DREQ如何,8237A一直不放棄總線控制權。即便是在傳送過程中,DREQ變?yōu)闊o效,8237A也不會釋放總線,只是暫停數(shù)據(jù)的傳送,等到通道請求信號再次有效后,8237A又繼續(xù)進行數(shù)據(jù)傳送,直到整塊數(shù)據(jù)全部傳完,才會退出DMA操作,將總線控制權交還CPU。PC機不能采用這種方式,否則會影響動態(tài)存儲器刷新和磁盤驅動器的數(shù)據(jù)傳送,它們都不允許另一個DMA傳送長期占用總線。 (3)請求傳送方式 請求傳送方式又稱查詢方式,類似數(shù)據(jù)塊傳送,但每傳送一個字節(jié)后,檢測DREQ狀態(tài),若無效則停止,若有效則繼續(xù)DMA傳送。在下述情況之一發(fā)生時,將停止傳送:1)DREQ變?yōu)闊o效。2)字節(jié)數(shù)
27、計數(shù)器減1由0變?yōu)镕FFFH,產(chǎn)生TC信號。3)外界輸入有效信號。當DREQ無效時,8237A停止傳送,內(nèi)部的當前地址寄存器和當前字節(jié)數(shù)計數(shù)器還保留當時的數(shù)值,一旦外設準備好要傳送的新數(shù)據(jù),可以再次使DREQ變?yōu)橛行?,就可以使傳送繼續(xù)下去。當DREQ無效時,8237A停止傳送,此時釋放總線,當DREQ重新有效時,將重新開始一次DMA請求過程。 (4)級連方式 這種方式允許連接一個以上的芯片來擴展DMA通道的個數(shù)。其連接方法是將擴展的DMA芯片的HRQ和HLDA分別連到主片的某個通道的DREQ和DACK。當主片接到擴展芯片的DMA請求并響應后,它僅發(fā)出DACK應答,其它的地址信號與控制信號一律禁
28、止,由擴展芯片控制DMA傳送。這種情況下,主片的連接通道只起兩個作用:一是優(yōu)先級連接的作用,即將從片的4個DMA通道納入到主片的優(yōu)先級管理機制,二是向CPU輸出HRQ和傳遞HLDA。 3傳送類型 DMA系統(tǒng)無論是工作在單片方式,還是多片級聯(lián),也不管采用單字節(jié)傳送、數(shù)據(jù)塊傳送、請求傳送中的哪種傳送方式,都可以對每個通道的方式字寄存器進行設置,采用DMA讀、DMA寫、DMA校驗等三種不同的傳送類型。 (1)DMA讀 8237A輸出有效的和信號,把存儲器的數(shù)據(jù)讀到I/O設備。 (2)DMA寫 8237A輸出有效的和信號,把I/O設備的數(shù)據(jù)寫到存儲器。 (3)DMA校驗 這是一種偽傳輸,實際上是校驗8
29、237A芯片內(nèi)部的讀寫功能,也就是對讀傳輸功能或寫傳輸功能進行檢驗。在這種傳送類型中,8237A芯片的操作如同DMA讀和DMA寫一樣,產(chǎn)生地址信號以及對響應等,但對存儲器和I/O設備的控制線(、)均處于無效狀態(tài),禁止實際傳送。DMA校驗傳輸功能是器件測試時才使用的,一般的使用者對這項功能并不感興趣。 4優(yōu)先級編碼 8237A芯片可設定為兩種優(yōu)先級編碼:固定優(yōu)先級和循環(huán)優(yōu)先級,這兩種優(yōu)先級編碼我們已作介紹。固定優(yōu)先級中4個通道的優(yōu)先級順序是固定的,DREQ0最高,DREQ3最低。循環(huán)優(yōu)先級中4個通道的優(yōu)先級順序是可變的,但其變化仍有一定的規(guī)律。當某一個通道申請DMA請求并被響應服務后,它就被指定
30、為最低優(yōu)先級,它的下一級就成為最高優(yōu)先級。值得注意的一點是,無論在任何情況下,DMA請求禁止嵌套服務。當一個通道的DMA請求被響應并服務后,其它3個通道的DMA請求將都被禁止,無論它們的優(yōu)先級是高還是低。優(yōu)先權排隊只在DMA響應之前有效,DMA響應之后則無效。 5自動初始化方式 通過對方式字寄存器的編程,可設置某個通道為自動初始化方式。自動初始化方式的功能是,當該通道完成一個數(shù)據(jù)傳送并產(chǎn)生信號時(可能是由內(nèi)部的TC產(chǎn)生,也可能是外部產(chǎn)生),用基地址寄存器和基字節(jié)數(shù)計數(shù)器的內(nèi)容,使相應的當前地址寄存器和當前字節(jié)數(shù)計數(shù)器恢復初值。當前地址寄存器和當前字節(jié)數(shù)計數(shù)器的最初值,是由CPU在初始化編程時寫
31、入的(這個最初值同時也寫入到基地址寄存器和基字節(jié)數(shù)計數(shù)器),但在DMA傳送過程中,當前地址寄存器和當前字節(jié)數(shù)計數(shù)器的內(nèi)容被不斷修改,而基地址寄存器和基字節(jié)數(shù)計數(shù)器的內(nèi)容維持不變(除非重新編程)。在自動初始化以后,通道就作好了進行另一次DMA傳送的準備。 6存儲器到存儲器的傳送 利用這種方式,可以使數(shù)據(jù)塊從一個存儲空間傳送到另一個存儲空間,將程序的影響和傳輸時間減到最小。這種方式需要占用8237A的2個通道。由通道0的地址寄存器提供源地址,通道1的地址寄存器提供目的地址,通道1的字節(jié)數(shù)計數(shù)器編程為傳送的字節(jié)數(shù),傳送由設置一個通道0的軟件DREQ啟動,8237A按正常方式向CPU發(fā)出HRQ,當CP
32、U發(fā)出總線響應信號HLDA后,DMA傳送即可開始。每次傳送需要兩個總線周期(8個時鐘狀態(tài)):第一個總線周期(前4個時鐘狀態(tài))先將源地址(由通道0指示,傳送后地址寄存器做相應修改)的數(shù)據(jù)讀入8237A的暫存器,在第二個總線周期(后4個時鐘狀態(tài))再將暫存器的內(nèi)容放到數(shù)據(jù)總線上,然后在寫信號的控制下,將數(shù)據(jù)總線上的數(shù)據(jù)寫入目的地址(由通道1指示,傳送后地址寄存器做相應修改)的存儲單元,然后通道1的當前字節(jié)數(shù)計數(shù)器減1。繼續(xù)這種傳送,直到通道1的字節(jié)數(shù)計數(shù)器的值減1由0變?yōu)镕FFFH時,產(chǎn)生信號,從而終止DMA服務。 2.4.3 8237A的工作時序 8237A的工作時序有正常時序、壓縮時序和擴展寫時
33、序。對應各種工作時序有兩類工作周期:空閑周期和操作周期。操作周期也叫有效周期。全部工作周期分為7種時鐘狀態(tài)(時鐘周期):空閑狀態(tài)SI、起始狀態(tài)S0、傳送狀態(tài)S1、S2、S3、S4以及等待狀態(tài)SW。 1工作周期 2正常時序 8237A DMA控制器可選擇正常時序、壓縮時序和擴展寫時序等操作時序。不同操作時序的實質是在控制讀、寫脈沖發(fā)出的時間與時鐘信號CLK的對應關系。正常時序傳送一個字節(jié)數(shù)據(jù)包含4個時鐘脈沖周期,即S1-S4狀態(tài)。產(chǎn)生的讀寫脈沖信號與這4個狀態(tài)有確定的對應關系。若是數(shù)據(jù)塊傳送中不改變高8位地址,則省去S1,只占用S2、S3、S4三個時鐘周期。 3壓縮時序 壓縮時序方式所占用的脈沖
34、數(shù)將減少。壓縮時序操作把讀命令的寬度壓縮到等于寫命令的寬度,省掉了S3,即由S4完成讀和寫的操作。所以,在壓縮時序方式下傳送一個字節(jié)數(shù)據(jù)需要占用3個時鐘周期,即S1、S2、S4,而在大多數(shù)情況下高8位地址并不改變,于是省掉了S1,因此,在數(shù)據(jù)塊傳送中大多數(shù)情況占用2個時鐘周期,即S2和S4。此時用S2狀態(tài)修改低8位地址值,用S4狀態(tài)完成讀和寫的操作,也就是把正常時序中S3和S4二個狀態(tài)的功能壓縮在一個狀態(tài)中完成。由于壓縮時序傳送類型只用2個狀態(tài)完成一個數(shù)據(jù)字節(jié)的傳送,因此它具有更高的數(shù)據(jù)傳送速率。 4擴展寫時序 在正常時序操作下,可選擇擴展寫方式,即寫命令提前到讀命令,從S3狀態(tài)開始(一般情況
35、下,讀為S3、S4狀態(tài),寫為S4一個狀態(tài))。也就是說,寫命令同讀命令一樣,擴展為2個時鐘周期。 2.4.4 8237A的編程 8237A依靠它的可編程特性實現(xiàn)它的各種工作方式的選擇和設定。8237A在HLDA信號處于無效的任何時間里,即使HRQ有效,也可以接受CPU對它的編程。CPU對8237A的編程初始化工作是通過8237A的端口進行的。8237A的端口是用A3A2A1A0低4位地址線編址的,共有16個端口地址,其具體編址情況如表2.4.1所示。假設我們以DMA代表16個端口地址的首地址,那么寫通道2基字節(jié)數(shù)計數(shù)器的端口地址可表示為DMA05H,寫方式寄存器的端口地址可表示為DMA0BH。
36、16個端口地址分為兩部分 (1)00H-07H分配給4個通道的相應的16位寄存器,它們的端口地址分配如下: 基和當前地址寄存器端口 基和當前字節(jié)數(shù)計數(shù)器端口 通道0 DMA0 DMA1 通道1 DMA2 DMA3 通值2 DMA4 DMA5 通道3 DMA6 DMA7 由于這幾個寄存器都是16位,而8237A只有8位數(shù)據(jù)線,因此,讀/寫操作均分兩次進行(使用兩條I/O指令)。每次讀/寫前應先用軟件命令清除字節(jié)指針觸發(fā)器(即先/后觸發(fā)器),然后,以先低字節(jié)后高字節(jié)的順序進行讀/寫操作。(2)08H-0FH分配給其他寄存器,其中包括3條不使用數(shù)據(jù)總線而只利用端口地址進行操作的清除命令。 8237A
37、的初始化編程命令字總共有8個,其中控制命令有5個:方式字、命令字、請求字、屏蔽字、狀態(tài)字;清除命令有3個:清先/后觸發(fā)器軟件命令、復位軟件命令、清屏蔽寄存器軟件命令。 1控制命令字 方式字寫入端口地址0BH,其主要功能是:選擇傳送方式和傳送類型,設置自動初始化方式和地址增量方向。命令字寫入端口地址08H,其主要功能是:選擇DREQ、DACK有效極性,讀寫時序,優(yōu)先級編碼方式等。請求字寫入端口地址09H,其主要功能是:發(fā)生軟件DMA請求。屏蔽字寫入端口地址0AH或0FH,其主要功能是:允許或禁止通道的DMA請求。狀態(tài)字從端口地址08H讀出,其主要功能是:反映通道DMA請求狀態(tài)和是否有TC信號。
38、方式字 命令字 請求字 一位屏蔽字 四位屏蔽字 狀態(tài)字 2清除命令 清除命令有3條。這三條命令與數(shù)值無關,不需通過數(shù)據(jù)總線,即執(zhí)行輸出指令時,AL的內(nèi)容可隨便設置,只要對特定的端口地址執(zhí)行一次寫操作,依靠這個地址和控制信號,命令就生效。這就是所謂的“軟件命令”。(1)清先/后觸發(fā)器軟件命令(寫入端口地址0CH)即清除字節(jié)指針命令,是專為16位寄存器的讀/寫而設置的。因為數(shù)據(jù)線是8位,所以16位數(shù)據(jù)要分兩次讀/寫。而且要使用同一個端口地址。為區(qū)分兩個高低字節(jié),8237A設置了先/后觸發(fā)器作為字節(jié)指針,為0時對應低字節(jié),為1時對應高字節(jié)。而且每次對16位寄存器的讀/寫操作,都將使字節(jié)指針自動翻轉一
39、次:由0變1,或由1變0,從而控制高、低字節(jié)的讀/寫。系統(tǒng)復位后,先/后觸發(fā)器被清0。清先/后觸發(fā)器軟件命令使字節(jié)指針(先/后觸發(fā)器)被清0。(2)復位軟件命令(寫入端口地址0DH)此命令與硬件的RESET信號功能相同,是軟件復位命令,除了使屏蔽寄存器各位置1外,其它各寄存器均被清0,使8237A進入空閑狀態(tài),準備接收CPU對它的初始化編程,此時8237A處于從態(tài)方式。(3)清屏蔽寄存器軟件命令(寫入端口地址0EH)其功能是將4個通道的屏蔽位清除,允許它們接受DMA請求。該命令是對屏蔽寄存器操作的第三個命令。 38237A的編程步驟 (1)CPU發(fā)復位軟件命令;(2)寫入基地址及當前地址值;(
40、3)寫入基字節(jié)數(shù)和當前字節(jié)數(shù)初值;(4)寫入方式字;(5)寫入屏蔽字;(6)寫入命令字;(7)寫入請求字,可用軟件DMA請求啟動通道,也可在(1)-(6)完成以后,等待外部DREQ請求信號。例2.4.1 8237A數(shù)據(jù)塊傳送 設在某8088系統(tǒng)中,用8237A通道1將內(nèi)存1000H單元開始的24K字節(jié)數(shù)據(jù)轉存到軟盤之中(暫不考慮20位地址的問題,可認為1000H就是基地址的初值)。采用數(shù)據(jù)塊方式傳送,地址增量方式,只傳送一遍,設DREQ和DACK低電平有效,當A15-A4=0000 0000 0111時選中8237A,要求設計8237A通道1的初始化程序。1端口地址A3-A0由8237A芯片內(nèi)部譯碼,編碼范圍是從0000到1111,再與A15-A4組合,則端口地址范
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 感恩老師心得體會15篇
- 國土分局業(yè)務知識
- 醫(yī)務人員洗手相關知識
- 正頜手術加速康復外科臨床路徑指標體系構建及對術后康復效果影響
- 基于深度學習的PMU異常數(shù)據(jù)檢測方法研究
- 二零二五年度綠色環(huán)保消防設施安裝與維護合同協(xié)議書3篇
- 2025版水果種植基地與冷鏈物流企業(yè)合作協(xié)議范本3篇
- 臭氧水療聯(lián)合皮膚科特色護理治療濕疹患兒的價值
- 快遞行業(yè)培訓計劃
- xx市科創(chuàng)孵化器項目可行性研究報告
- 人教版八年級英語上冊期末專項復習-完形填空和閱讀理解(含答案)
- 一例蛇串瘡患者個案護理課件
- 低壓電工理論考試題庫低壓電工考試題
- 駱駝祥子選擇題100道及答案
- 2024年公務員考試題庫附答案【完整版】
- T-GDWCA 0019-2018 輻照工藝操作規(guī)范
- 司機考核管理制度
- 出差報銷單-中英對照版
- 【學前教育小學化成因分析及其對策10000字(論文)】
- 腕管綜合征課件
- 事業(yè)單位工作人員年度考核登記表(通用模板)
評論
0/150
提交評論