輸入輸出接口技術(shù)_第1頁(yè)
輸入輸出接口技術(shù)_第2頁(yè)
輸入輸出接口技術(shù)_第3頁(yè)
輸入輸出接口技術(shù)_第4頁(yè)
輸入輸出接口技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

7.1 輸入輸出接口概述7.2 CPU與外設(shè)數(shù)據(jù)傳送的方式7.3DMA控制器8237第七章輸入/輸出接口接口的概念接口是指CPU和存儲(chǔ)器、外設(shè)或者兩種外設(shè)之間,或者兩種機(jī)器之間通過系統(tǒng)總線進(jìn)行連接的邏輯部件(或者電路),它是CPU與外界進(jìn)行信息交換的中轉(zhuǎn)站。7.1概述7.1概述一、接口電路的分類和功能外設(shè)必須通過接口電路與CPU相連接數(shù)據(jù)總線控制總線地址總線數(shù)據(jù)寄存器外部設(shè)備數(shù)據(jù)線控制線狀態(tài)線控制寄存器狀態(tài)寄存器一、接口電路的分類和功能接口電路按通用性分為兩類:通用接口和專用接口通用接口:可供多種外部設(shè)備使用的標(biāo)準(zhǔn)接口,目的是使微機(jī)正常工作通用接口通常制造成集成電路芯片,稱為接口芯片。最初的IBM-PC使用了6塊接口芯片:8284(時(shí)鐘信號(hào)發(fā)生器)、8288(總線控制器)、8255(并行接口)、8259(中斷控制器)、8237(DMA控制器)、8253(計(jì)數(shù)器/定時(shí)器)后來的微機(jī)將這些芯片(當(dāng)然還集成了其它的接口芯片)集成為大規(guī)模集成電路芯片,稱為芯片組。一、接口電路的分類和功能專用接口:為某種用途或某類外設(shè)而專門設(shè)計(jì)的接口電路,目的在于擴(kuò)充微機(jī)系統(tǒng)的功能。專用接口通常制造成接口卡,插在主板總線插槽上使用。通用接口和專用接口的界限并不嚴(yán)格。按照可編程性,接口芯片分成硬步線邏輯接口芯片和可編程接口芯片??删幊探涌谛酒墓δ芸梢杂芍噶顏砜刂?。一、接口電路的分類和功能接口電路的功能:1)緩沖鎖存數(shù)據(jù)比如外擴(kuò)存儲(chǔ)器時(shí),使用鎖存器將CPU的AD引腳上的地址數(shù)據(jù)鎖存起來。當(dāng)總線上掛接多個(gè)外設(shè)時(shí),采用帶三態(tài)門的緩沖器將各個(gè)外設(shè)和總線連接起來。2)地址譯碼通過接口的地址譯碼,產(chǎn)生選通信號(hào),選中相應(yīng)的外設(shè)。3)傳遞命令接口接收CPU送來的控制信號(hào),對(duì)外設(shè)進(jìn)行控制管理。同時(shí),外設(shè)的狀態(tài)和應(yīng)答信號(hào)也通過它傳給CPU。4)信號(hào)轉(zhuǎn)換包括電平的轉(zhuǎn)換,比如TTL電平和RS232電平的轉(zhuǎn)換。AD/DA轉(zhuǎn)換、數(shù)據(jù)編碼(比如串并轉(zhuǎn)換)的轉(zhuǎn)換等等。5)中斷、DMA管理為了提高傳輸速度,提高CPU利用率,接口有提出和處理中斷、DMA的能力。二、接口電路的基本結(jié)構(gòu)數(shù)據(jù)線控制線狀態(tài)線DBCBAB數(shù)據(jù)輸入寄存器(or三態(tài)門)數(shù)據(jù)輸出寄存器(鎖存器)狀態(tài)寄存器(or三態(tài)門)命令寄存器譯碼電路控制邏輯二、接口電路的基本結(jié)構(gòu)接口電路通常包含一組能夠與處理器交換信息的寄存器,稱為I/O端口寄存器,簡(jiǎn)稱為I/O端口1)數(shù)據(jù)端口——存放數(shù)據(jù)信息2)狀態(tài)端口——存放狀態(tài)信息,即反映外設(shè)當(dāng)前工作狀態(tài)的信息3)控制端口——存放控制信息狀態(tài)信息與控制信息可以廣義地看作數(shù)據(jù)信息,因此可以通過數(shù)據(jù)總線傳送外設(shè)的工作狀態(tài)和CPU對(duì)外設(shè)的控制命令。三、I/O端口的編址方式I/O端口與存儲(chǔ)單元統(tǒng)一編址(20bit)I/O端口獨(dú)立編址(16bit)統(tǒng)一編址:將端口視作存儲(chǔ)器,并賦予相應(yīng)的存儲(chǔ)器地址。指令上不區(qū)分端口還是存儲(chǔ)器,而由程序員根據(jù)地址不同來區(qū)分。相當(dāng)于端口地址被映射到內(nèi)存空間中,成為其一部分。優(yōu)點(diǎn):1.使用上同存儲(chǔ)器的使用,而存儲(chǔ)器尋址方面的指令使用起來很靈活。2.可使用的I/O設(shè)備的數(shù)目更多(因?yàn)榈刂房臻g一般都很大)。3.讀/寫控制邏輯設(shè)計(jì)簡(jiǎn)單。缺點(diǎn):1.占用了內(nèi)存的一部分空間。2.指令一般較長(zhǎng),執(zhí)行也慢。3.地址譯碼電路較復(fù)雜。獨(dú)立編址:將I/O端口單獨(dú)編址,不占用存儲(chǔ)空間。CPU只能采用專用的I/O指令來訪問I/O端口。優(yōu)點(diǎn):節(jié)省了內(nèi)存空間。I/O譯碼電路簡(jiǎn)單,I/O指令執(zhí)行快。但是種類少,程序設(shè)計(jì)的靈活性差些。三、I/O端口的編址方式端口地址是一種重要資源三、I/O端口的編址方式PC機(jī)中采用獨(dú)立編制的I/O端口尋址方式把端口地址放在DX寄存器中,對(duì)該端口進(jìn)行讀寫IN AL,DXOUTDX,AL——可尋址的端口號(hào)為0~65535(FFFFH)端口地址小于或等于FFH(255),可以用立即數(shù)表示端口地址INAL,42HOUT43H,AL7.2CPU與外設(shè)數(shù)據(jù)傳送的方式程序傳送方式中斷傳送方式DMA傳送方式IO處理機(jī)無條件傳送程序查詢傳送(條件傳送)一、程序傳送方式(一)無條件傳送CPU與外設(shè)間的數(shù)據(jù)交換在程序控制下進(jìn)行不查詢外設(shè)狀態(tài),認(rèn)為外設(shè)已經(jīng)準(zhǔn)備就緒,直接與外設(shè)傳送數(shù)據(jù)適用場(chǎng)合:簡(jiǎn)單外設(shè)或者外設(shè)的工作時(shí)間是固定的已知的。在任何時(shí)刻均處于準(zhǔn)備好數(shù)據(jù)或者處于接受數(shù)據(jù)的狀態(tài)。由于不查詢外設(shè)狀態(tài),接口電路不需要狀態(tài)寄存器一、程序傳送方式輸入緩存輸出鎖存一、程序傳送方式一、程序傳送方式(二)程序查詢傳送在執(zhí)行輸入輸出前,要先查詢接口中狀態(tài)寄存器的狀態(tài)。輸入時(shí),狀態(tài)寄存器的狀態(tài)指示要輸入的數(shù)據(jù)是否已經(jīng)準(zhǔn)備就緒輸出時(shí),狀態(tài)寄存器的狀態(tài)指示輸出設(shè)備是否空閑外設(shè)準(zhǔn)備就緒:對(duì)于輸入設(shè)備,已經(jīng)把數(shù)據(jù)放入接口電路的數(shù)據(jù)輸入寄存器,CPU可以讀??;對(duì)于輸出設(shè)備,已經(jīng)準(zhǔn)備好接收數(shù)據(jù)(接口電路的數(shù)據(jù)輸出寄存器已空),CPU可以向它輸出數(shù)據(jù)程序查詢輸入DB0~DB7

A7A6A5A4A3A2A1A0G1CBA輸入設(shè)備8bit緩沖器數(shù)據(jù)Ready狀態(tài)數(shù)據(jù)808638譯碼器程序查詢輸入上圖中,要獲取設(shè)備的數(shù)據(jù),需訪問端口地址80H,要獲得設(shè)備的工作狀態(tài),需訪問端口地址81H.要求從外設(shè)中讀取10B個(gè)數(shù)據(jù),依次存入DATA數(shù)組中:MOVCX,0AHMOVDI,OFFSETDATAX1: IN AL,81H ;讀取狀態(tài) TEST AL,80H ;Ready? JZX1 ;No,繼續(xù)查詢 IN AL,80H ;Yes,讀取1B的數(shù)據(jù) MOV [DI],AL ;保存到DATA數(shù)組 INC DI; LOOP X1 ;循環(huán)10次 HLT程序查詢輸出DB0~DB7

A7A6A5A4A3A2A1A0G1CBA輸入設(shè)備8bit鎖存器Ready狀態(tài)808638譯碼器數(shù)據(jù)數(shù)據(jù)程序查詢輸出上圖中,要向設(shè)備輸出數(shù)據(jù),需訪問端口地址80H,要獲得設(shè)備的工作狀態(tài),需訪問端口地址81H.要求向外設(shè)輸出10B個(gè)數(shù)據(jù),數(shù)據(jù)存放于DATA數(shù)組中:MOVCX,0AHMOVSI,OFFSETDATAX1: IN AL,81H ;讀取狀態(tài) TEST AL,80H ;Ready? JZX1 ;No,繼續(xù)查詢 MOV AL,[SI] ;Yes,讀取1B的數(shù)據(jù) OUT 80H,AL ;輸出到外設(shè) INC SI; LOOP X1 ;循環(huán)10次 HLT二、中斷傳送方式使用查詢方式,CPU必須檢測(cè)接口電路的狀態(tài)寄存器,如果設(shè)備未準(zhǔn)備好,CPU就要不斷地查詢,降低了CPU的運(yùn)行效率中斷方式:當(dāng)外設(shè)作好傳送準(zhǔn)備后,主動(dòng)向CPU請(qǐng)求中斷,CPU響應(yīng)中斷后在中斷處理程序中與外設(shè)交換數(shù)據(jù)。若外設(shè)未準(zhǔn)備好,CPU可以執(zhí)行其他程序,而不必像查詢方式那樣一直等待,所以提高了CPU的利用率.每條指令完成后,CPU均可響應(yīng)中斷,因此當(dāng)設(shè)備準(zhǔn)備好時(shí),可及時(shí)與CPU交換數(shù)據(jù),提高了實(shí)時(shí)性。有關(guān)中斷的控制方式,我們?cè)谙乱徽轮袝?huì)深入講解。三、DMA傳送方式對(duì)于高速外設(shè)(如磁盤、高速A/D),中斷方式不能滿足數(shù)據(jù)傳輸速度的要求。原因:中斷過程,包括中斷服務(wù)子程序還是靠CPU的參與才能工作DMA=DirectMemoryAccess——直接存儲(chǔ)器訪問DMA方式是一種由專門的硬件電路執(zhí)行I/O的數(shù)據(jù)傳送方式,它可以讓外設(shè)接口直接與內(nèi)存進(jìn)行高速的數(shù)據(jù)傳送,而不必經(jīng)過CPU。這種專門的硬件電路稱為DMA控制器,簡(jiǎn)稱DMAC三、DMA傳送方式CPU內(nèi)存外設(shè)數(shù)據(jù)通道數(shù)據(jù)通道非DMA方式(包括程序控制方式和中斷方式)DMAC內(nèi)存外設(shè)數(shù)據(jù)通道DMA方式三、DMA傳送方式DMAC具有獨(dú)立的控制三大總線來訪問存儲(chǔ)器和I/O端口的能力,它能像CPU一樣提供數(shù)據(jù)傳送所需的地址信息和讀寫控制信息DMAC和CPU都掛在系統(tǒng)總線上,當(dāng)進(jìn)入DMA方式時(shí),DMAC成為總線主控。在總線上,可以控制其他部件的部件稱為總線主控或主控(busmaster),被控部件稱為從控(slave)。任意時(shí)刻,總線上只有一個(gè)主控。三、DMA傳送方式DMA操作之前,應(yīng)先對(duì)DMAC編程,把要傳送的數(shù)據(jù)塊長(zhǎng)度、數(shù)據(jù)塊在存儲(chǔ)器中的起始地址,數(shù)據(jù)傳送方向等信息發(fā)送給DMACDMA操作過程包括三個(gè)階段:DMA請(qǐng)求DMA響應(yīng)和數(shù)據(jù)傳送傳送結(jié)束當(dāng)外設(shè)要求以DMA方式為它服務(wù)時(shí),發(fā)DMA請(qǐng)求信號(hào)DREQ到DMACDMAC檢查該信號(hào)是否被屏蔽及其優(yōu)先權(quán),如確認(rèn)該信號(hào)有效則向CPU發(fā)送總線請(qǐng)求信號(hào)HRQ(連到CPU的HOLD)DMA請(qǐng)求階段CPUDMACHRQ外設(shè)DREQ地址總線數(shù)據(jù)總線存儲(chǔ)器每個(gè)總線周期結(jié)束時(shí)CPU檢測(cè)HOLD,如為高電平,則響應(yīng)HOLD請(qǐng)求進(jìn)入保持態(tài),使三態(tài)總線CPU側(cè)呈高阻狀態(tài),并以總線保持響應(yīng)信號(hào)HLDA通知DMAC,DMAC接管總線,并以DACK信號(hào)通知外設(shè),使之成為DMA傳送時(shí)被選中的設(shè)備,同時(shí)DMAC給出內(nèi)存地址以及I/O讀寫和存儲(chǔ)器讀寫控制信號(hào),在外設(shè)和存儲(chǔ)器之間完成數(shù)據(jù)傳送DMA響應(yīng)和數(shù)據(jù)傳送階段CPUDMACHLDA外設(shè)DACK存儲(chǔ)器地址總線數(shù)據(jù)總線IOR/IOWMEMR/MEMW傳送結(jié)束階段傳送完成后,DMAC放棄總線,撤消總線請(qǐng)求(HRQ為低),CPU檢測(cè)到HRQ(HOLD)為低后,撤消HLDA,CPU重新獲得總線控制權(quán)CPUDMACHRQ外設(shè)EOP地址總線數(shù)據(jù)總線存儲(chǔ)器DMA控制器的功能從前面的描述中可以看出,當(dāng)外設(shè)需要進(jìn)行DMA方式傳輸數(shù)據(jù)時(shí),DMAC要向CPU提出請(qǐng)求,使CPU讓出總線控制權(quán),交由DMAC來接管總線,這樣就可以完成外設(shè)和內(nèi)存之間的數(shù)據(jù)交換。完畢后,DMAC釋放總線,將總線控制權(quán)交由CPU。所以,DMA控制器必須具備以下的功能:能向CPU發(fā)出要求控制總線的DMA請(qǐng)求信號(hào)HRQ(接CPU的HOLD引腳);當(dāng)收到CPU發(fā)出的HLDA信號(hào)后能接管總線,進(jìn)入DMA模式;能發(fā)出地址信息對(duì)存儲(chǔ)器尋址并能修改地址指針;能向存儲(chǔ)器和外設(shè)發(fā)出讀、寫控制信號(hào);決定傳送的字節(jié)數(shù),并能判斷DMA傳送是否結(jié)束;接受外設(shè)的DMA請(qǐng)求信號(hào)和向外設(shè)發(fā)出DMA響應(yīng)信號(hào);能發(fā)出DMA結(jié)束信號(hào),使CPU恢復(fù)正常。PC系列微機(jī)使用可編程DMA控制器8237A(簡(jiǎn)稱8237)實(shí)現(xiàn)DMA功能8237有四個(gè)通道,每個(gè)通道都有獨(dú)立的與相應(yīng)外設(shè)接口相聯(lián)系的信號(hào),四個(gè)通道共享與CPU相連的控制信號(hào)、地址信號(hào)、數(shù)據(jù)信號(hào)8237有兩種工作狀態(tài):主態(tài)方式 8237獲得總線控制權(quán),控制外設(shè)和內(nèi)存間的數(shù)據(jù)交換.2. 從態(tài)方式

CPU讀寫8237,相當(dāng)于DMA是個(gè)外設(shè)。四、8237A可編程DMA控制器8237的引腳功能8237的引腳功能請(qǐng)求(輸入)/應(yīng)答(輸出)信號(hào)外設(shè)接口電路向8237的請(qǐng)求信號(hào):DREQ3~DREQ08237對(duì)外設(shè)接口電路的應(yīng)答信號(hào):DACK3~DACK08237向CPU申請(qǐng)總線的信號(hào):HRQ(連至CPU的HOLD)CPU向8237傳送的允許使用總線信號(hào):HLDA8237的引腳功能地址信號(hào)(雙向,作用隨8237的工作模式而不同):CPU初始化8237或讀8237狀態(tài)時(shí)所需的片選信號(hào)A7~A0(輸出):8237訪問存儲(chǔ)器的地址信號(hào)的低8位。A3~A0(輸入):CPU初始化8237或讀8237狀態(tài)時(shí),用于尋址8237內(nèi)部寄存器8237的引腳功能數(shù)據(jù)信號(hào)(雙向):DB7~DB0CPU為主控時(shí),可以通過I/O讀命令查詢8237的狀態(tài)寄存器的內(nèi)容,或通過I/O寫命令對(duì)8237的內(nèi)部寄存器進(jìn)行編程,數(shù)據(jù)傳送通過DB7~DB08237為主控時(shí),DB7~DB0輸出要訪問的內(nèi)存地址的高8位,并通過ADSTB鎖存到外部地址鎖存器中,和A7~A0輸出的低8位地址一起構(gòu)成16位地址8237的引腳功能地址允許信號(hào):AEN(輸出)8237作為主控時(shí)(8237控制總線),輸出AEN=1。表示16位的偏移地址已經(jīng)由8237生成。8237作為從控時(shí)(CPU控制總線),輸出AEN=0。DMA傳輸結(jié)束信號(hào):(雙向)當(dāng)DMAC內(nèi)部任一通道傳輸結(jié)束,8237發(fā)出若由外部給DMAC送入有效的,則強(qiáng)制DMAC內(nèi)部所有通道結(jié)束傳輸。8237的引腳功能MEMR/MEMW:(輸出)8237發(fā)出的存儲(chǔ)器讀/寫信號(hào)IOR/IOW:(雙向)8237作為主控時(shí),輸出I/O讀/寫信號(hào)。8237作為從控時(shí),CPU發(fā)出的I/O讀/寫信號(hào),用于讀/寫82378237的引腳功能ADSTB:地址選通信號(hào)(輸出)用于啟動(dòng)地址鎖存器READY:存儲(chǔ)器或I/O的就緒信號(hào)(輸入)如果外設(shè)和存儲(chǔ)器速度慢的話,可以將Ready無效,使得8237在DMA周期中插入等待周期。8237的編程結(jié)構(gòu)8237的編程結(jié)構(gòu)控制寄存器(命令寄存器,從態(tài)方式寫入)8位,4個(gè)通道共用,用于設(shè)定8237的信號(hào)形式、工作時(shí)序、傳輸方向。端口地址08H信號(hào)形式:DREQ/DACK信號(hào)的有效形式。工作時(shí)序:普通時(shí)序(3個(gè)時(shí)鐘周期完成一次傳輸) 壓縮時(shí)序(2個(gè)時(shí)鐘周期完成一次傳輸)傳輸方向:內(nèi)存I/O(常用) I/O內(nèi)存(常用) 內(nèi)存內(nèi)存(PC系列機(jī)未用)8237的編程結(jié)構(gòu)D7:0=DACK高電平有效;1=DACK低電平有效D6:0=DREQ高電平有效;1=DREQ低電平有效D5:1=擴(kuò)展寫信號(hào),IOW/MEMW比正常時(shí)序提前一個(gè)周期;0=不擴(kuò)展寫信號(hào)D4:0=固定優(yōu)先級(jí),通道0優(yōu)先級(jí)最高,通道3優(yōu)先級(jí)最低;1=循環(huán)優(yōu)先級(jí)D3:0=正常時(shí)序1=壓縮時(shí)序D2:0=啟動(dòng)(指允許)8237工作;1=停止(指禁止)8237工作D1:內(nèi)存到內(nèi)存?zhèn)鬏敃r(shí),D1=1使源地址(0通道)保持不變D0:0=內(nèi)存I/O間的傳輸;1=內(nèi)存內(nèi)存間的傳輸控制寄存器8237的編程結(jié)構(gòu)PC系列微型機(jī)中,BIOS初始化時(shí)將控制寄存器設(shè)為00H——禁止內(nèi)存內(nèi)存的傳送,允許讀/寫操作,使用正常時(shí)序固定優(yōu)先級(jí)不擴(kuò)展寫信號(hào)DREQ高電平有效DACK高電平有效8237的編程結(jié)構(gòu)狀態(tài)寄存器(從態(tài)方式讀取)8位,4個(gè)通道共用,與控制寄存器共用一個(gè)端口地址端口地址08H記錄每個(gè)通道是否有請(qǐng)求、傳輸是否結(jié)束D3~D0:分別對(duì)應(yīng)通道3~0,指出4個(gè)通道的DMA傳送是否結(jié)束,結(jié)束為1D7~D4:分別對(duì)應(yīng)通道3~0,表示4個(gè)通道是否有DMA請(qǐng)求,有DMA請(qǐng)求為1暫存寄存器8位,端口地址0DH在內(nèi)存內(nèi)存?zhèn)鬏敃r(shí),暫存數(shù)據(jù)。注意:內(nèi)存I/O傳輸時(shí),數(shù)據(jù)不進(jìn)入8237內(nèi)部,只存在于數(shù)據(jù)總線上8237的編程結(jié)構(gòu)8237的編程結(jié)構(gòu)工作方式寄存器(也稱作模式寄存器)8位,設(shè)定DMA的傳輸模式,4個(gè)通道的工作方式寄存器共用一個(gè)端口地址,端口地址0BH傳輸模式:?jiǎn)巫止?jié)傳輸模式數(shù)據(jù)塊傳輸模式請(qǐng)求傳輸模式級(jí)聯(lián)傳輸模式單字節(jié)傳輸模式:每次DMA操作只傳送一字節(jié)后,接著8237釋放總線塊傳輸模式:8237獲得總線控制權(quán)后,連續(xù)傳送多個(gè)字節(jié),每傳輸一個(gè)字節(jié),當(dāng)前字節(jié)計(jì)數(shù)器減1,當(dāng)前地址寄存器加1或減1,直到所要求的字節(jié)數(shù)傳輸完(當(dāng)前字節(jié)計(jì)數(shù)器減至0),8237在EOP引腳上發(fā)出結(jié)束信號(hào),然后釋放總線。在塊傳輸過程中,若向8237的EOP引腳上輸入低電平,可強(qiáng)行結(jié)束傳輸。工作方式寄存器8237的編程結(jié)構(gòu)請(qǐng)求傳輸模式:在傳輸過程中,8237要檢測(cè)DREQ信號(hào)(詢問外設(shè)),當(dāng)DREQ為低時(shí),8237暫停傳輸(不釋放總線),當(dāng)DREQ再次有效后,繼續(xù)進(jìn)行傳輸。級(jí)聯(lián)傳輸模式:多片8237級(jí)聯(lián)時(shí),可以構(gòu)成主從式DMA系統(tǒng)。級(jí)聯(lián)的方式是把從片的請(qǐng)求線HRQ連至主片的DREQ引腳,主片的DACK聯(lián)至從片的HLDA引腳.此時(shí),主片輸出的信號(hào)除了HRQ外都被禁止。若主8237的某通道(DREQ)連接從8237的HRQ,主8237的該通道應(yīng)設(shè)置為級(jí)聯(lián)傳輸模式,但從8237不設(shè)置級(jí)聯(lián)傳輸模式,而是設(shè)置其它三種模式之一。工作方式寄存器8237的編程結(jié)構(gòu)二級(jí)8237A級(jí)聯(lián)HOLDHLDAHRQHLDA8237AHRQHLDAHRQHLDA8237A8086……主片從片DREQ0DACK0DREQ3DACK382378237的編程結(jié)構(gòu)D7,D6:模式選擇00=請(qǐng)求傳輸模式01=單字節(jié)傳輸模式10=塊傳輸模式11=級(jí)聯(lián)傳輸模式D5:存儲(chǔ)器地址增減選擇,0=地址增1,1=地址減1D4:自動(dòng)預(yù)置功能,0=禁止,1=允許自動(dòng)預(yù)置:在當(dāng)前字節(jié)計(jì)數(shù)器到達(dá)0時(shí),當(dāng)前字節(jié)計(jì)數(shù)器和當(dāng)前地址寄存器從基本字節(jié)計(jì)數(shù)器和基地址寄存器中自動(dòng)獲得新的初值8237的編程結(jié)構(gòu)D3,D2:傳輸類型選擇01=寫傳輸(I/O內(nèi)存),10=讀傳輸(內(nèi)存I/O)00=校驗(yàn)傳輸,11=無意義校驗(yàn)傳輸用來對(duì)讀傳輸和寫傳輸功能進(jìn)行校驗(yàn),它是一種虛擬傳輸,8237也會(huì)產(chǎn)生存儲(chǔ)器地址信號(hào),但不產(chǎn)生存儲(chǔ)器讀/寫、I/O讀/寫信號(hào),校驗(yàn)傳輸一般用于器件測(cè)試D1,D0:通道選擇00=通道001=通道110=通道211=通道38237的編程結(jié)構(gòu)基地址寄存器和當(dāng)前地址寄存器每個(gè)通道一個(gè)基地址寄存器,一個(gè)當(dāng)前地址寄存器,16位,占用相同的端口地址基地址寄存器:DMA傳輸?shù)膬?nèi)存地址初值,在初始化時(shí)由CPU分兩次寫入。當(dāng)前地址寄存器:DMA傳輸過程中,內(nèi)存地址的當(dāng)前值。每傳輸一字節(jié),該寄存器的值增1或減1。CPU可分兩次讀出其值?;刂芳拇嫫骱彤?dāng)前地址寄存器的寫入端口相同,運(yùn)行時(shí),基地址寄存器的值不能再被修改。當(dāng)執(zhí)行自動(dòng)預(yù)置操作時(shí),使當(dāng)前地址寄存器能恢復(fù)到初始值。8237的編程結(jié)構(gòu)基本字節(jié)計(jì)數(shù)器和當(dāng)前字節(jié)計(jì)數(shù)器每個(gè)通道一個(gè)基本字節(jié)計(jì)數(shù)器,一個(gè)當(dāng)前字節(jié)計(jì)數(shù)器,16位,占用相同的端口地址基字節(jié)計(jì)數(shù)器:DMA傳輸?shù)淖止?jié)數(shù)初值,在初始化時(shí)由CPU分兩次寫入。8237規(guī)定,初值比實(shí)際傳輸?shù)淖止?jié)數(shù)少1當(dāng)前字節(jié)計(jì)數(shù)器:DMA傳輸過程中,當(dāng)前的計(jì)數(shù)值。每傳輸一字節(jié),該寄存器的值減1。當(dāng)計(jì)數(shù)值從0減到FFFFH時(shí),8237發(fā)出結(jié)束信號(hào)EOP。CPU可分兩次讀出其值。8237的編程結(jié)構(gòu)先/后觸發(fā)器端口地址0CHCPU寫入基地址寄存器、基本字節(jié)計(jì)數(shù)器時(shí),均分兩次寫入,先/后觸發(fā)器用于控制寫入的值是低8位還是高8位寫入過程:①使先/后觸發(fā)器=0。②寫入低8位,先/后觸發(fā)器自動(dòng)置1。③寫入高8位,先/后觸發(fā)器自動(dòng)置0。8237的編程結(jié)構(gòu)請(qǐng)求寄存器

四個(gè)通道的請(qǐng)求觸發(fā)器構(gòu)成一個(gè)請(qǐng)求寄存器(8位)一般情況下,DMA請(qǐng)求由硬件信號(hào)DREQ發(fā)出,也可由軟件設(shè)置請(qǐng)求觸發(fā)器來發(fā)出DMA請(qǐng)求。D2=1設(shè)置DMA請(qǐng)求D1~D0:指定軟件DMA請(qǐng)求的通道端口地址09H8237的編程結(jié)構(gòu)屏蔽寄存器

四個(gè)通道的屏蔽觸發(fā)器構(gòu)成一個(gè)屏蔽寄存器(8位)當(dāng)屏蔽寄存器的屏蔽標(biāo)志置1時(shí),將禁止該通道的硬件DMA請(qǐng)求和軟件DMA請(qǐng)求。D2=1,設(shè)置屏蔽;D2=0,清除屏蔽;D1~D0:選通道端口地址0AH8237的編程結(jié)構(gòu)綜合屏蔽寄存器

8237可以一次完成四個(gè)通道的屏蔽設(shè)置D3~D0:分別對(duì)通道3~0設(shè)置屏蔽1,設(shè)置屏蔽,禁止DREQ;0,清除屏蔽;端口地址0FH清除屏蔽寄存器

對(duì)端口0EH寫入0,可以一次清除四個(gè)通道的屏蔽觸發(fā)器端口地址0EHMOVDX,DMA+0EHMOVAL,0OUTDX,AL8237的編程結(jié)構(gòu)8237的編程結(jié)構(gòu)復(fù)位命令寄存器

對(duì)端口0DH寫入0,使8237復(fù)位,其功能等同于硬件復(fù)位端口地址0DH8237復(fù)位后的狀態(tài)為:控制寄存器 狀態(tài)寄存器請(qǐng)求寄存器暫存器先/后觸發(fā)器

清0屏蔽寄存器置18237的編程結(jié)構(gòu)一片8237占用連續(xù)16個(gè)端口地址,用DMA+00H~DMA+0FH表示。其中,DMA表示該片8237的基地址。在AT以上的微機(jī)中,使用2片8237,其地址為:第一片8237,基地址DMA=0000H,使用0000H~000FI/O地址。第二片8237,基地址DMA=00C0H,使用00C0H~00CFI/O地址。8237的編程結(jié)構(gòu)8237的應(yīng)用8237A編程寫入控制寄存器寫入屏蔽寄存器——屏蔽要初始化的通道寫入工作方式寄存器先后觸發(fā)器置0寫入基地址和基本字節(jié)寄存器解除屏蔽寫入請(qǐng)求寄存器8237的應(yīng)用例:用一片8237A設(shè)計(jì)了DMA傳輸電路,8237A的基地址為00H。要求利用它的通道0,從外設(shè)輸入1KB的數(shù)據(jù)塊,傳送到內(nèi)存中6000H開始的區(qū)域中,每傳送一個(gè)字節(jié),地址增1,采用數(shù)據(jù)塊連續(xù)傳送方式,禁止自動(dòng)預(yù)置,外

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論