微機原理課件-第8章 可編程接口技術_第1頁
 微機原理課件-第8章 可編程接口技術_第2頁
 微機原理課件-第8章 可編程接口技術_第3頁
 微機原理課件-第8章 可編程接口技術_第4頁
 微機原理課件-第8章 可編程接口技術_第5頁
已閱讀5頁,還剩112頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章可編程接口技術1第8章可編程接口技術2本章介紹可編程并行接口Intel8255A,定時/計數(shù)器Intel8253,可編程串行接口Intel8251A和DAM控制器8237A。使用這些芯片,可以方便地構成各種用途的計算機應用系統(tǒng)。8.1并行通信接口8255A3并行通信是將傳送數(shù)據(jù)的各位分別用一根線同時進行傳輸,同時并行傳送的二進位數(shù)就是數(shù)據(jù)寬度,而實現(xiàn)與外設并行通信的接口電路就是并行接口。8255A是一種可以同時實現(xiàn)輸入/輸出的雙向可編程并行接口芯片。一、8255A的內部結構與引腳定義4圖8255A內部結構方塊圖1、8255A的內部結構5由內部結構方塊圖可知,8255A由以下幾個部分組成:1)數(shù)據(jù)總線緩沖器2)端口A、端口B、端口C3)A組控制和B組控制4)讀寫控制邏輯62、8255A的引腳定義圖8255A的引腳7由8255A芯片的引腳圖可知,8255A芯片有40根引腳,可分為如下三類:(1)電源與地線2根:VCC(26腳),GND(7腳)(2)與外設相連的共24根:

8(3)與CPU相連的共14根:RESET(35腳)復位信號,高電平有效;

片選信號,低電平有效;

讀信號,低電平有效;寫信號,低電平有效;A1、A0(8腳、9腳):端口選擇信號;二、8255A的編程命令98255A有兩個編程命令,即工作方式命令和對C端口的按位操作(置位/復位)命令,它們是用戶使用8255A來組建各種接口電路的重要工具。10方式命令方式命令,又稱初始化命令。方式命令出現(xiàn)在8255A開始工作之前的初始化程序段中。方式命令的作用與格式如下。作用:指定8255A的工作方式及其方式下8255A三個并行端口的輸入/輸出功能。格式:8位命令字的格式與含義如下圖所示。圖8255A方式命令的格式112.C端口按位置位/復位命令這是一個按位控制命令,要在初始化以后才能使用,它可放在初始化程序段之后的任何位置。C端口按位置位/復位命令的作用和格式如下。作用:指定8255A的C端口8個引腳中的任意一個引腳,輸出高電平/低電平。格式:8位命令字的格式與含義如圖所示。圖8255A按位置位/復位命令的格式123.關于兩個命令的使用兩個命令的最高位(D7)都分配為特征位。C端口按位置位/復位命令雖然是對C端口進行按位輸出操作,但它不能寫入作數(shù)據(jù)口用的C端口,只能寫入命令口,這是因為它不是數(shù)據(jù),而是命令,要按命令的格式來解釋和執(zhí)行。A端口和B端口也可以按位輸出高/低電平,但是,它與前面C端口的按位置位/復位命令有本質的區(qū)別,并且實現(xiàn)方法也不同。C端口按位輸出是以命令的形式送到命令寄存器去執(zhí)行的,而A端口、B端口的按位輸出是以送數(shù)據(jù)到A端口、B端口來實現(xiàn)的。三、8255A的工作方式138255A有三種工作方式,通過向8255A的控制字寄存器寫入的方式選擇字,就可以規(guī)定各端口的工作方式。當8255A工作于方式1和方式2時,C口可用作A口或B口的聯(lián)絡信號,用輸入指令可以讀取C口的狀態(tài)。下面具體介紹這三種不同的工作方式和C口狀態(tài)字格式。14方式0方式0稱為基本輸入/輸出(BasicInput/Output)方式,它適用于不需要用應答信號的簡單輸入/輸出場合。在這種方式下,A口和B口可作為8位的端口,C口的高4位和低4位可作為兩個4位的端口。15方式0的輸入時序如圖所示,圖8255A方式0輸入時序162.方式1方式1也稱為選通輸入/輸出(StrobeInput/Out)方式。在這種方式下,A口和B口作為數(shù)據(jù)口,均可工作于輸入或輸出方式。而且,這兩個8位數(shù)據(jù)口的輸入、輸出數(shù)據(jù)都能鎖存、但它們必須在聯(lián)絡(handshaking)信號控制下才能完成I/O操作。端口C的6根線用來產(chǎn)生或接收這些聯(lián)絡信號。17選通輸入/輸出方式可分以下幾種情況。1)選通輸入方式如果A口和B口都工作于選通輸入方式,則它們的端口狀態(tài)、聯(lián)絡信號和控制字如下圖所示。18圖方式1選通輸入方式192)選通輸出方式如果A口和B口都工作于選通輸出方式,它們的聯(lián)絡控制信號和控制字的格式如下圖所示。20圖方式1選通輸出方式213)選通輸入/輸出方式組合8255A工作于方式1時,還允許對A口和B口分別進行定義,一個端口作輸入,另一個端口作輸出。如果將A口定義為方式1輸入口,而將B口定義為方式1輸出口,在這種情況下,端口C的PC0~PC5作狀態(tài)和控制線,C口余下的兩位PC6和PC7,可作數(shù)據(jù)輸入/輸出用。當控制字的D3=1時,PC6和PC7作輸入;D3=0時,PC6和PC7作輸出。223.方式2方式2稱為雙向總線方式(BidirectionalBus)。只有A口可以工作于這種方式。在這種方式下,CPU與外設交換數(shù)據(jù)時,可在單一的8位端口數(shù)據(jù)線PA7~PA0上進行,既可以通過A口把數(shù)據(jù)傳送到外設,又可以從A口接收從外設送過來的數(shù)據(jù),而且輸入和輸出數(shù)據(jù)均能鎖存,但輸入和輸出過程不能同時進行。23端口A工作于方式2時,端口C的5位(PC3~PC7)作A口的聯(lián)絡控制信號,對應關系如下圖所示,圖中也給出了方式控制字的格式。圖

方式2的控制信號和方式控制字244.C口狀態(tài)字當8255A工作于方式0時,C口各位作輸入/輸出用。當它工作于方式1和方式2時,C口產(chǎn)生或接收與外設間的聯(lián)絡信號,這時,讀取C口的內容可使編程人員測試或檢查外設的狀態(tài),用輸入指令對C口進行讀操作就可讀取C口的狀態(tài)。C口的狀態(tài)字有以下幾種格式。251)方式1狀態(tài)字輸入狀態(tài)字如下。其中,D7~D3位為A組狀態(tài)字,D2~D0位為B組狀態(tài)字。輸出狀態(tài)字如下。其中,D7~D3位為A組狀態(tài)字,D2~D0位為B組狀態(tài)字。262)方式2狀態(tài)字其中,D7~D3位為A組狀態(tài)字,D2~D0位為B組所用,當B口工作于方式1時,這幾位作B口狀態(tài)字,B口工作于方式0時,這幾位不是狀態(tài)位,而是作輸入輸出用。27四、8255A的應用舉例用8255A方式0與打印機接口打印機一般采用并行接口,其主要信號與傳送時序如下圖所示。圖

方式0的打印機接口28假設這個8255A芯片在系統(tǒng)中的I/O地址分配是:端口A、B和C的I/O地址為FFF8H、FFFAH和FFFCH,控制端口的地址為FFFEH。;初始化程序段movdx,0fffeh;控制端口地址為FFFEHmoval,10000001B;方式控制字outdx,al;A端口方式0輸出,C端口上半

部輸出、下半部輸入(端口B任意)moval,00001111B;端口C的復位置位控制字outdx,al;使PC7=1,即置=1(只在輸出數(shù)據(jù)時,才是低脈沖)29Printcprocpushaxpushdx;輸出打印數(shù)據(jù)子程序,入口參數(shù):AH=打印數(shù)據(jù)prn:movdx,0fffch;讀取端口Cinal,dx;查詢打印機的狀態(tài)andal,04h;打印機忙否(PC2=BUSY=0)?jnzprn;PC2=1,打印機忙,則循環(huán)等待movdx,0fffeh;PC2=0,打印機不忙,則輸出數(shù)據(jù)moval,00001110B;使PC7=0,即置=0outdx,alnop;適當延時,產(chǎn)生一定寬度的低電平nopmoval,00001111B;使PC7=1,即置=130outdx,alpopdx;最終,產(chǎn)生

低脈沖信號popaxretendpprintc312.雙機并行通信接口在兩臺單板機之間利用8255A的端口A實現(xiàn)并行傳送數(shù)據(jù)。甲機的8255A采用方式1發(fā)送數(shù)據(jù),乙機的8255A采用方式0接收數(shù)據(jù)。兩機的CPU與接口之間均使用查詢方式交換數(shù)據(jù),如下圖所示。圖

并行通信接口電路32假設8255A的端口A、B、C和控制端口的I/O地址為FFF8H、FFFAH、FFFCH和FFFEH。;甲機初始化程序段movdx,0fffehmoval,0alhoutdx,al;輸出工作方式字:端口A方式1輸出moval,0dh;使PC6(INTEA)=1,允許中斷outdx,al

;甲機發(fā)送程序,AH=發(fā)送的數(shù)據(jù)trsmt:movdx,0fffehinal,dx;查詢PC3(INTRA)=1?andal,08hjztrsmtmovdx,0fff8h;發(fā)送數(shù)據(jù)moval,ahoutdx,al33;乙機接收程序:AH=接收的數(shù)據(jù)receive:movdx,0fffchinal,dx;查詢PC4=0?andal,10hjnzreceivemovdx,0fff8h;接收數(shù)據(jù)inal,dxmovah,al;接收的數(shù)據(jù)存于AHmovdx,0fffehmoval,00h;使PC0=0outdx,alnop;適當延時,產(chǎn)生一定寬度的低脈沖nopmoval,01h;使PC0=1outdx,al;產(chǎn)生低脈沖信號348.2可編程定時計數(shù)器8253一、8253主要功能Intel8253就是一種常用的可編程定時器/計數(shù)器接口芯片。主要功能有:每片8253上有三個獨立的16位減法計數(shù)器,最大計數(shù)范圍為0~65535。2.每個計數(shù)器都可按二進制或二-十進制計數(shù)(BCD)。3.每個計數(shù)器都有6種不同的工作方式,都可以通過程序設置來改變。4.每個計數(shù)器計數(shù)脈沖的頻率最高可達2MHz。全部輸入輸出與TTL電平兼容。

二、8253的外部引腳與內部結構351、8253的引腳定義8253具有三個獨立的功能完全相同的16位減法計數(shù)器,24腳DIP封裝,由單一的+5V電源供電。8253引腳如圖所示。圖8253引腳圖361)計數(shù)器引腳8253有3個獨立的計數(shù)器,每個計數(shù)器與外部的引腳有3個,分別是脈沖輸入引腳CLK、門控輸入引腳GATE、計數(shù)器輸出引腳OUT。2)數(shù)據(jù)引腳D7~D0CPU對8253的編程、計數(shù)初值的輸入、計數(shù)值的讀出均是通過這8位數(shù)據(jù)線傳輸?shù)摹?73)讀/寫信號控制引腳讀信號

有效時,CPU可以讀出計數(shù)器當前的計數(shù)值;寫信號

有效時,CPU可以對芯片編程,輸入計數(shù)器初值。4)片選引腳和地址引腳片選引腳

和地址引腳A1、A0一起決定了8253的地址空間,

決定了地址的高位,A1和A0決定了地址的低位,并且A1和A0的4個不同的組合就構成了8253的4個不同的地址。382、8253的內部結構8253的內部結構如圖所示。由圖可知,它由數(shù)據(jù)緩沖器、讀/寫邏輯電路、控制字寄存器和三個計數(shù)器通道所組成。圖8253的內部結構391)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是8位、雙向、三態(tài)的緩沖器,通過8根數(shù)據(jù)線D0~D7接收CPU向控制寄存器寫入的控制字,向計數(shù)器寫入的計數(shù)初值,也可以把計數(shù)器的當前計數(shù)值讀入CPU。2)讀/寫邏輯電路讀/寫控制邏輯電路從系統(tǒng)總線接收輸入信號,經(jīng)過譯碼,產(chǎn)生對8253各部分的控制信息。403)控制字寄存器當?shù)刂沸盘朅1和A0都為1時,訪問控制字寄存器??刂谱旨拇嫫鹘邮諒腃PU發(fā)來的控制字,控制字決定了8253的工作方式、計數(shù)方式以及使用哪個計數(shù)器等。控制字寄存器只能寫入不能讀出。4)計數(shù)器通道8253有3個相互獨立的同樣的計數(shù)電路,分別稱做計數(shù)器0、計數(shù)器1和計數(shù)器2。413.8253的編程8253沒有復位信號,加電后的工作方式不確定。為了使8253正常工作,微處理器必須對其初始化編程,寫入控制字和計數(shù)初值。計數(shù)過程中,還可以讀取計數(shù)值。1)寫入方式控制字雖然8253的每個計數(shù)器都需要方式控制字,但控制字格式相同,如下圖所示。而且寫入控制字的I/O地址也相同,要求A1A0=11(控制字地址)。42圖8253的方式控制字432)寫入計數(shù)值每個計數(shù)器通道都有對應的計數(shù)器I/O地址用于讀寫計數(shù)值。讀寫計數(shù)值時,還必須按方式控制字規(guī)定的讀寫格式進行。3)讀取計數(shù)值利用計數(shù)器I/O地址,可以讀取計數(shù)器的當前計數(shù)值。但對8位數(shù)據(jù)線的8253來說,讀取16位計數(shù)值需要分兩次。由于計數(shù)在不斷進行,在前后兩次執(zhí)行輸入指令的過程中,計數(shù)值可能已經(jīng)變化。所以,如果計數(shù)過程可以暫停,可在讀取計數(shù)值時使GATE信號為低;否則應該將當前計數(shù)值先行鎖存,然后讀取。444.8253的工作方式8253的3個通道根據(jù)控制寄存器的設置均有6種工作方式。1)方式0—技術結束中斷方式當某一通道設置為方式0,則該計數(shù)器的輸出OUT立即變?yōu)榈碗娖?,在計?shù)初值寫入該計數(shù)器后,輸出仍保持低電平。若門控信號GATE為高電平,計數(shù)器在CLK的每一個下降沿開始進行減1計數(shù),當計數(shù)器從初值減到0時,輸出OUT便變?yōu)楦唠娖?,且一直保持高電平到重新寫入控制字或者重新寫入新的計?shù)值為止。452)方式1—可編程單脈沖方式當控制字設為方式1時,OUT輸出為高電平。在計數(shù)初值寫入該計數(shù)器后,計數(shù)并不開始,只有在門控GATE來一個上升沿之后的下一個CLK的下降沿,才開始計數(shù),同時OUT由高電平變?yōu)榈碗娖?,直到計?shù)值變?yōu)?時,OUT才變?yōu)楦唠娖?。所以OUT輸出負脈沖的寬度為計數(shù)初值*CLK脈沖周期數(shù)。463)方式2—分頻工作方式該方式寫入控制字之后OUT輸出高電平,如果GATE為高電平,在寫入計數(shù)初值后,計數(shù)器開始計數(shù),在計數(shù)器到1時,OUT輸出低電平,經(jīng)過一個CLK周期后,OUT變?yōu)楦唠娖?,計?shù)器從初值重新開始計數(shù)。4)方式3—方波發(fā)生器在工作方式3下,在計數(shù)過程中其輸出前一半時間為高電平,后一半時間為低電平,故為方波輸出。475)方式4—軟件觸發(fā)選通方式這種方式與方式0非常相似。當設置完方式控制字后,OUT變?yōu)楦唠娖?。當寫入計?shù)初值后立即開始計數(shù)(即為軟件觸發(fā))。當計數(shù)到0后,OUT輸出為低電平,持續(xù)一個CLK周期的低電平后變?yōu)楦唠娖?,計?shù)器停止計數(shù)。6)方式5—硬件觸發(fā)選通方式這種方式與方式1非常相似。當設置為方式5后,OUT輸出高電平,寫入初值后,OUT仍保持高電平不變。485.8253應用舉例用8253實現(xiàn)生產(chǎn)流水線上的工件計數(shù),每通過100個工件,揚聲器便發(fā)出頻率為1000H中的音響信號,持續(xù)時間為3秒。設外部時鐘頻率為2MHz。下圖是該設備的工作原理示意圖。49圖8253用于工件計數(shù)50設8253的端口地址為40H~43H,8255A的端口地址為60H~63H,則實現(xiàn)本例功能的程序段如下:主程序:MOVAL,00010001B;8253計數(shù)通道0初始化:方式0,只寫低8位,BCD計數(shù)OUT43H,ALMOVAL,99H;寫計數(shù)通道0的計數(shù)初值MOV40H,ALMOVAL,10000000B;8255A初始化:A口方式0輸出OUT63H,ALSTI;CPU開中斷HERE:JMPHERE;等待中斷51中斷服務程序:MOVAL,01H;8255A的PA0輸出高電平,啟動8253計數(shù)通道1工作OUT60H,ALMOVAL,01110111B;8253計數(shù)通道1初始化:先寫低8位,后寫高8位OUT43H,AL;方式3,BCD計數(shù)MOVAL,00HOUT41H,AL;寫計數(shù)初值低8位MOVAL,20HOUT41H,AL;寫計數(shù)初值高8位CallDELAY3S;延遲3秒MOVAL,00H;8255A的PA0輸出低電平,停止8253計數(shù)通道1工作OUT60H,ALMOVAL,99H;寫8253計數(shù)通道0的計數(shù)初值(為下次工作做準備)OUT40H,ALIRET8.3串行通信接口8251A52一、串行通信概述通信是指計算機與外部設備之間或計算機與計算機之間的信息交換。通信的基本方式可以分為并行通信和串行通信兩種。并行通信是指數(shù)據(jù)的每位同時傳輸,如8.1節(jié)所述的8255A與外設間的數(shù)據(jù)交換采用的就是并行通信方式。53串行通信則把需要傳輸?shù)臄?shù)據(jù)按照一定的數(shù)據(jù)格式一位一位地按順序傳輸。串行通信的信號在一根信號線上傳輸。發(fā)送時,把每個數(shù)據(jù)中的各個二進制位一位一位地發(fā)送出去,發(fā)送一個字節(jié)后再發(fā)送下一個字節(jié);接收時,從信號線上一位一位地接收,并把它們拼成一個字節(jié)傳輸給CPU進行處理。54串行通信時,數(shù)據(jù)在兩個設備A和B之間傳送,按傳送方式可分為單工、半雙工和全雙工3種方式,如圖所示。圖串行通信數(shù)據(jù)傳輸551)單工單工傳送方式只能在一個方向上傳輸數(shù)據(jù),兩個設備之間進行通信時,一邊發(fā)射數(shù)據(jù),另一邊只能接收數(shù)據(jù)。2)半雙工半雙工傳送方式中,數(shù)據(jù)可以在兩個設備之間任意方向傳送,但是由于只有一根傳輸線,故在同一時間內只能在一個方向上傳輸數(shù)據(jù),不能同時收發(fā)。3)全雙工由于在兩個設備之間有兩根數(shù)據(jù)傳輸線,所以兩個設備間可以同時發(fā)射和接收數(shù)據(jù)。56串行傳送有兩種基本工作方式:異步方式和同步方式。1)異步方式不發(fā)送數(shù)據(jù)時,數(shù)據(jù)信號線為高電平,處于空閑狀態(tài)。當有數(shù)據(jù)要發(fā)送時,數(shù)據(jù)線變?yōu)榈碗娖?,并持續(xù)一位的時間,表示傳送字符開始,該位稱為起始位。起始位之后,在信號線上依次出現(xiàn)發(fā)送的每一位字符數(shù)據(jù),最低有效位D0最先出現(xiàn),因此它最早發(fā)送出去。在數(shù)據(jù)位的后面有一個奇偶校驗位。在奇偶校驗位的后面有1到2位的高電平,稱為停止位,用于表示字符的結束。如果傳輸完一個字符后,立即傳輸下一個字符,則后一個字符的起始位就緊跟在前一個字符的停止位后,否則停止位后又進入空閑狀態(tài)。以上格式如下圖所示。57圖異步數(shù)據(jù)傳送格式582)同步方式同步方式數(shù)據(jù)傳送格式如圖所示。沒有數(shù)據(jù)發(fā)送時,數(shù)據(jù)線處于空閑狀態(tài)。為了表示數(shù)據(jù)傳輸開始,發(fā)送方先發(fā)送一個或兩個特殊字符,稱為同步字符。接著就可以一個字符接著一個字符地發(fā)送一塊數(shù)據(jù),不需要用到起始位和停止位。這樣就可以提高數(shù)據(jù)的傳輸速率。圖同步數(shù)據(jù)傳送格式59二、可編程串行通信接口芯片8251A可編程串行接口芯片有多種型號,常用的有Intel公司生產(chǎn)的8251A,Motorola公司生產(chǎn)的6850、6852,ZILOG公司生產(chǎn)的SIO及TNS公司生產(chǎn)的8250等。下面以Intel公司生產(chǎn)的8251A為例介紹可編程串行通信接口的基本工作原理、內部結構、工作過程等。601.8251A芯片引腳8251A是一個采用NMOS工藝制造的28條引腳雙列直插式芯片,全部輸入輸出與TTL電平兼容,單一+5V電源,單一TTL電平時鐘,8251A芯片引腳信號分配如圖所示。圖8251A引腳信號圖61(1)8251A與CPU相連的信號線8251A的28條引腳按其信號分為兩組:D0~D7:雙向數(shù)據(jù)線,與系統(tǒng)的數(shù)據(jù)總線相連。CLK(20腳):時鐘信號輸入線,用于產(chǎn)生8251A的內部時序。RESET(21腳):芯片的復位信號。

(11腳):片選信號,低電平有效。C/(12腳):控制/數(shù)據(jù)信號。根據(jù)C/信號是1還是0,來判別當前數(shù)據(jù)總線上信息流是控制字還是與外設交換的數(shù)據(jù)。62(13腳):讀信號,低電平有效。有效時,CPU正在從8251A讀取數(shù)據(jù)。(10腳):寫信號,低電平有效。有效時,CPU正在向8251A寫入數(shù)據(jù)。TxRDY(15腳):發(fā)送器準備好信號,輸出,高電平有效。RxRDY(14腳):接收器準備好信號,輸出,高電平有效。63SYNDET/BRKDET(16腳):同步或中止符檢測信號,高電平有效。TxEMPTY(18腳):發(fā)送移位寄存器空信號。64(2)8251A與外部或調制解調器相連的信號線RxD(3腳):數(shù)據(jù)接收端,用來接收由外設輸入的串行數(shù)據(jù)。

(25腳):接收時鐘信號,輸入。TxD(19腳):數(shù)據(jù)發(fā)送端,往外部設備輸出串行

數(shù)據(jù)。

(9腳):發(fā)送時鐘信號,外部輸入。

(24腳):數(shù)據(jù)終端準備好信號,輸出,低電平有效。65

(22腳):數(shù)據(jù)裝置準備好信號,輸入,低電平有效。

(23腳):發(fā)送方請求發(fā)送信號,輸出,低電平有效。

(17腳):清除發(fā)送信號,輸入,低電平有效。662.8251A的內部結構8251A的內部結構如圖所示,共有5個部分。圖8251A的內部結構67數(shù)據(jù)總線緩沖器:雙向、三態(tài)緩沖器,用來與CPU傳

輸數(shù)據(jù)信息、命令信息、狀態(tài)信息。接收器:包括接收緩沖器、接收移位寄存器及接收

控制器三部分。串行接口收到的數(shù)據(jù),轉變成并行

數(shù)據(jù)后,存放在該緩沖器中,以供CPU讀取。發(fā)送器:包含發(fā)送緩沖器、發(fā)送移位寄存器、發(fā)送

控制器三部分。是一個分時使用向外發(fā)送。另一方面,

命令字也存放在這里,以指揮串行口工作。讀/寫邏輯電路:用來接收CPU的控制信號,以控制數(shù)據(jù)

的傳輸方向。調制解調器控制電路:用來簡化8251A和調制解調器的

連接,提供與調制解調器的聯(lián)絡信號。683.8251A的工作過程

接收器的工作過程當控制命令字的“允許接收”位RxE(D2位)和“準備好接收數(shù)據(jù)”位DTR(D1位)有效時,接收控制器開始監(jiān)視RxD線。外設數(shù)據(jù)從RxD端逐位進入接收移位寄存器中,接收中對同步和異步兩種方式采用不同的處理過程。當接收數(shù)據(jù)緩沖器接收到由外設傳送來的數(shù)據(jù)后,發(fā)出“接收準備就緒”RxRDY信號,通知CPU取走數(shù)據(jù)。69(2)發(fā)送器的工作過程當操作命令寄存器中的TxEN=1(D0位)且引腳=0時,才能開始發(fā)送過程。接收來自CPU的數(shù)據(jù)并存入發(fā)送緩沖器。發(fā)送緩沖器存有待發(fā)送的數(shù)據(jù)后,使引腳TxRDY變?yōu)榈碗娖?,表示發(fā)送緩沖器滿。當調制解調器做好接收數(shù)據(jù)的準備后,向8251A輸入一個低電平信號,使

(低電平有效)引腳有效。70在編寫初始化命令時,使操作命令控制字的TxEN位(D0位)為高,讓發(fā)送器處于允許發(fā)送的狀態(tài)下。滿足以上②、③、④條件時,若采用同步方式,發(fā)送器將根據(jù)程序的設定自動送一個(單同步)或兩個(雙同步)同步字符,然后由移位寄存器從數(shù)據(jù)輸出線TxD串行輸出數(shù)據(jù)塊;若采用異步方式,由發(fā)送控制器在其首尾加上起始位及停止位,然后從起始位開始,經(jīng)移位寄存器從數(shù)據(jù)輸出線TxD串行輸出。待數(shù)據(jù)發(fā)送完畢,使TxEMPTY有效(高電平)。CPU可向8251A發(fā)送緩沖器寫入下一個數(shù)據(jù)。71三、8251A的控制字及初始化8251A是一種多功能的串行接口芯片,使用前對它進行初始化編程后,才能收發(fā)數(shù)據(jù),使用中可以利用狀態(tài)字來了解它的工作狀態(tài)。8251A的控制字可以分為方式字、命令字和狀態(tài)字。72下面對方式字、命令字、狀態(tài)字及初始化編程進行介紹。方式字8251A的方式字格式如下圖所示。73圖8251A的方式字格式742.命令字8251A的命令字格式如圖所示。圖8251A的命令字格式753.狀態(tài)字在數(shù)據(jù)通信系統(tǒng)中,常常要了解8251A的工作狀態(tài),如檢查傳送中是否產(chǎn)生了錯誤,TxRDY是否有效等,以便控制CPU與8251A之間的數(shù)據(jù)交換。8251A內部設有狀態(tài)寄存器,CPU可隨時用IN指令讀取狀態(tài)寄存器的內容,在CPU讀狀態(tài)時,8251A將自動禁止改變狀態(tài)。狀態(tài)字的格式如下圖所示。76圖8251A的狀態(tài)字的格式774.8251A的初始化對8251A進行初始化編程時,必須在系統(tǒng)復位之后(RESET引腳為高電平),使得收發(fā)引腳處于空閑狀態(tài)、各個寄存器處于復位狀態(tài)的情況下,才能進行編程。通常8251A的初始化編程流程如下圖所示。78圖8251A的初始化流程79四、8251A應用舉例1、異步模式下的初始化程序舉例設8251A工作在異步模式,波特率系數(shù)(因子)為16,7個數(shù)據(jù)位/字符,偶校驗,2個停止位,發(fā)送、接收允許,設端口地址為00E2H和00E4H,請完成初始化程序。80【分析】根據(jù)題目要求,可以確定模式字為:

11111010B即FAH控制字為:00110111B即37H81則初始化程序如下:MOVAL,0FAH;送模式字MOVDX,00E2HOUTDX,AL;異步方式,7位/字符,

偶校驗,2個停止位MOVAL,37H;設置控制字,使發(fā)送、接收允許,清除錯標志,使

、有效OUTDX,AL822、同步模式下初始化程序舉例設端口地址為52H,采用內同步方式,

2個同步字符(設同步字符位16H),偶校驗,7位數(shù)據(jù)位/字符,請完成初始化程序?!痉治觥扛鶕?jù)題目要求,可以確定模式字為:00111000B即38H而控制字為:10010111B即97H。83具體程序段如下:MOVAL,38H;設置模式字,同步模式,用2個同步字符OUT52H,AL;7個數(shù)據(jù)位,偶校驗MOVAL,16HOUT52H,AL;送同步字符16HOUT52H,ALMOVAL,97H;設置控制字,使發(fā)送

器和接收器啟動OUT52H,AL8.4DMA控制器8237A84一、DMA控制器概述DMA(DirectMemoryAccess)是指一種外設與存儲器之間直接傳輸數(shù)據(jù)的方法,適用于需要數(shù)據(jù)高速大量傳送的場合,它不需要CPU直接參與。實現(xiàn)這種數(shù)據(jù)傳輸方法的專門硬件電路稱為DMA控制器(DMAC)。85DMA傳送示意圖如圖所示。圖DMA傳送示意圖86DMA數(shù)據(jù)傳送過程如下:I/O接口向DMAC發(fā)出DMA請求。如果DMAC未被屏蔽,則在接到DMA請求后,向CPU發(fā)出總線請求,希望CPU讓出數(shù)據(jù)總線、地址總線和控制總線的控制權,由DMAC控制。CPU執(zhí)行完現(xiàn)行的總線周期,如果CPU同意讓出總線控制權,向DMAC發(fā)出響應請求的回答信號,并且脫離三總線處于等待狀態(tài)。87DMAC在收到總線響應信號后,向I/O接口發(fā)DMA響應信號,并由DMAC接管三總線控制權。進行DMA傳送。DMAC給出傳送數(shù)據(jù)的內存地址,傳送的字節(jié)數(shù)及發(fā)出/信號;在DMA控制下,每傳送一個字節(jié),地址寄存器加1,字節(jié)計數(shù)器減1,如此循環(huán),直至計數(shù)器之值為0。DMA讀操作:讀存儲器寫外設。DMA寫操作:讀外設寫存儲器。DMA傳送結束,DMAC撤除總線請求信號,CPU重新控制總線,恢復CPU的工作。88二、8237A的內部結構與引腳功能1.8237A的內部結構8237A的內部結構如下圖所示,主要由3個基本控制邏輯單元、3個地址/數(shù)據(jù)緩沖器單元和1組內部寄存器組成。89圖8237A的內部結構90(1)控制邏輯單元控制邏輯單元包括定時和控制邏輯、命令控制邏輯和優(yōu)先級控制邏輯,它們的功能分別如下。定時和控制邏輯:根據(jù)初始化編程所設置的工作方式寄存器的內容和命令,在輸入時鐘信號的控制下,產(chǎn)生8237A的內部定時信號和外部控制信號。命令控制邏輯:主要是在CPU控制總線(即DMA處于空閑周期)時,將CPU在初始化編程時送來的命令字進行譯碼;當8237A進入DMA服務時,對DMA的工作方式控制字進行譯碼。優(yōu)先級控制邏輯:用來裁決各通道的優(yōu)先順序,解決多個通道同時請求DMA服務時可能出現(xiàn)的優(yōu)先權競爭問題。91(2)地址/數(shù)據(jù)緩沖器單元緩沖器包括I/O緩沖器1、I/O緩沖器2和輸出緩沖器,功能分別如下。I/O緩沖器1:8位、雙向、三態(tài)地址/數(shù)據(jù)緩沖器,作為8位數(shù)據(jù)D7~D0輸入/輸出和高8位地址A15~A8輸出緩沖。I/O緩沖器2:4位、雙位、地址緩沖器,作為地址A3~A0輸出緩沖。輸出緩沖器:4位、單向、地址緩沖器,作為地址A7~A4輸出緩沖。92(3)內部寄存器名稱位數(shù)數(shù)量CPU訪問方式基地址寄存器164只寫基字節(jié)計數(shù)寄存器164只寫當前地址寄存器164可讀可寫當前字節(jié)計數(shù)寄存器164可讀可寫地址暫存寄存器161不能訪問字節(jié)計數(shù)暫存寄存器161不能訪問控制寄存器81只寫工作方式寄存器84只寫屏蔽寄存器81只寫請求寄存器81只寫狀態(tài)寄存器81只讀暫存寄存器81只讀8237A的內部寄存器共有12個,見下表。表8237A的內部寄存器932.8237A的引腳8237A采用雙列直插式,有40個引腳,其引腳排列如圖所示。圖8237A的引腳排列94DB7~DB0:8位地址/數(shù)據(jù)線。A3~A0:地址線,雙向。A7~A4:地址線,單向。

:片選信號,低電平有效。

(I/Oread):I/O讀信號,雙向,低電平有效。I/Owrite):I/O寫信號,雙向,低電平有效。

(memoryread):存儲器讀信號,輸出,低電平有效。95

(memorywrite):存儲器寫信號,輸出,低電平有效。DREQ3~DREQ0(DMArequest):4個通道的DMA請求輸入信號,由請求DMA傳送的外設輸入,其有效極性和優(yōu)先級可以通過編程設定。DACK3~DACK0(DMAacknowledge):4個通道的DMA響應輸出信號,作為對請求DMA傳送外設的應答信號,其有效極性可以通過編程設定。HRQ(holdrequest):總線請求信號,輸出,高電平有效。96HLDA(holdacknowledge):總線應答信號,輸入,高電平有效。CLK(clock):時鐘信號。作為芯片內部操作的定時,并控制數(shù)據(jù)傳送的速率。RESET:復位信號,高電平有效。READY(I/Odeviceready):外設準備就緒信號,輸入,高電平有效。AEN(addressenable):地址允許信號,輸出,高電平有效。97ADSTB(addressstrobe):地址選通信號,輸出,高電平有效。

(endofprocess):DMA傳送結束信號,雙向,低電平有效。Vcc:+5V電源。GND:接地。N/C:未用。98三、8237A的工作方式及初始化編程1、8237A的工作方式8237A有4種DMA傳送方式,3種DMA傳送類型,可以實現(xiàn)存儲器到存儲器的傳送。I.DMA傳送方式DMA傳送有4種工作方式。99每次DMA操作僅傳送一個字節(jié)的數(shù)據(jù),完成一個字節(jié)的數(shù)據(jù)傳送后,8237A將當前地址寄存器的內容加1(或減1),并將當前字節(jié)數(shù)寄存器的內容減1,每傳送完這一個字節(jié),DMAC就將總線控制權交回CPU。若傳送后使字節(jié)數(shù)寄存器從0減到FFFFH,終止計數(shù),則終結DMA傳送或重新初始化。(1)單字節(jié)傳送方式100(2)數(shù)據(jù)塊傳送方式在這種傳送方式下,8237A一旦獲得總線控制權,便開始連續(xù)傳送數(shù)據(jù)。每傳送一個字節(jié),自動修改當前地址及當前字節(jié)數(shù)寄存器的內容,直到字節(jié)數(shù)寄存器從0減到FFFFH終止計數(shù),或收到外部輸入的有效

信號才終結DMA傳送,將總線控制權交給CPU,一次所傳送數(shù)據(jù)塊的最大長度可達64KB,數(shù)據(jù)塊傳送結束后可自動初始化。101(3)請求傳送方式DREQ信號有效,8237A連續(xù)傳送數(shù)據(jù),當DREQ信號無效時,DMA傳送被暫時終止,8237A釋放總線,CPU可繼續(xù)操作。如果外設又準備好進行傳送,可使DREQ信號再次有效,DMA傳送就會繼續(xù)進行下去。102(4)級聯(lián)方式利用這種方式可以把多個8237A連接在一起,以便擴充系統(tǒng)的DMA通道數(shù)。下一級的HRQ接到上一級的某一通道的DREQ上,而上一級的響應信號DACK可接下一級的HLDA,其連接如下圖所示。103圖8237A級聯(lián)方式104II.DMA傳送類型在前3種工作方式下,DMA傳送有3種類型:DMA讀、寫和校驗。(1)DMA讀如果將數(shù)據(jù)從存儲器傳送到外設,則8237A輸出

和有效信號。由有效從存儲器讀出數(shù)據(jù),由有效把這一數(shù)據(jù)寫入外設。105(2)DMA寫如果將數(shù)據(jù)從外設傳送到存儲器,則8237A輸出

和有效信號。由

有效從外設輸入數(shù)據(jù),由有效把這一數(shù)據(jù)寫入存儲器。(3)DMA校驗DMA校驗是一種空操作。8237A也像DMA讀或DMA寫傳送一樣產(chǎn)生地址信號和

信號,但不發(fā)生存儲器和I/O讀寫控制信號,所以實際上并不真正進行數(shù)據(jù)傳送。這種傳送類型一般用于對DMAC器件進行測試時使用。106III.存儲器到存儲器的傳送8237A具有存儲器到存儲器的傳送功能,利用8237A編程命令寄存器,可以選擇通道0和通道1兩個通道實現(xiàn)由存儲器到存儲器的傳送。107①固定優(yōu)先權方式:4個通道的優(yōu)先權是固定的,即通道0優(yōu)先權最高,依次降低,通道3最低。IV.DMA通道的優(yōu)先權方式8237A中的任一通道獲得服務后,其他通道無論優(yōu)先權高低,均被禁止,DMA傳送不存在嵌套。②循環(huán)優(yōu)先權方式:4個通道的優(yōu)先權是變化的,即最近一次服務的通道在下次循環(huán)中變成最低優(yōu)先權,其他通道依次輪流相應的優(yōu)先權。若3個通道已經(jīng)被服務,則剩下的通道一定是優(yōu)先權最高的。108V.自動初始化方式若DMA通道設置為自動初始化方式,則每當DMA過程結束

信號產(chǎn)生時,都用基地址寄存器和基字節(jié)數(shù)寄存器的內容,使相應的現(xiàn)行寄存器恢復為初始值,包括恢復屏蔽位,允許DMA請求。1092、8237A的內部寄存器結構8237A的內部寄存器有兩類。一類稱為通道寄存器,每個通道包括基地址寄存器、當前地址寄存器、基字節(jié)計數(shù)器、當前字節(jié)計數(shù)器和工作方式寄存器,這些寄存器的內容在初始化編程時寫入;另一類為控制寄存器和狀態(tài)寄存器,這類寄存器是4個通道公用的,其中控制寄存器用來設置8237A的傳送類型和請求控制等,初始化編程時寫入,而狀態(tài)寄存器存放8237A的工作狀態(tài)信息,共CPU讀取查詢。8237A內部寄存器的端口地址分配及讀/寫操作功能見下表。110表8237A內部寄存器端口地址分配及讀/寫操作功能通道號A3A2A1A0地址讀操作(

=0)寫操作(

=0)00000DMA+00H當前地址寄存器基(當前)地址寄存器0001DMA+01H當前字節(jié)計數(shù)器基(當前)字節(jié)計數(shù)器10010DMA+02H當前地址寄存器基(當前)地址寄存器0011DMA+03H當前字節(jié)計數(shù)器基(當前)字節(jié)計數(shù)器20100DMA+04H當前地址寄存器基(當前)地址寄存器0101DMA+05H當前字節(jié)計數(shù)器基(當前)字節(jié)計數(shù)器30110DMA+06H當前地址寄存器基(當前)地址寄存器0111DMA+07H當前字節(jié)計數(shù)器基(當前)字節(jié)計數(shù)器公用1000DMA+08H狀態(tài)寄存器控制寄存器1001DMA+09H

請求寄存器1010DMA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論