版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第8章可編程接口技術(shù)1第8章可編程接口技術(shù)2本章介紹可編程并行接口Intel8255A,定時/計數(shù)器Intel8253,可編程串行接口Intel8251A和DAM控制器8237A。使用這些芯片,可以方便地構(gòu)成各種用途的計算機(jī)應(yīng)用系統(tǒng)。8.1并行通信接口8255A3并行通信是將傳送數(shù)據(jù)的各位分別用一根線同時進(jìn)行傳輸,同時并行傳送的二進(jìn)位數(shù)就是數(shù)據(jù)寬度,而實現(xiàn)與外設(shè)并行通信的接口電路就是并行接口。8255A是一種可以同時實現(xiàn)輸入/輸出的雙向可編程并行接口芯片。一、8255A的內(nèi)部結(jié)構(gòu)與引腳定義4圖8255A內(nèi)部結(jié)構(gòu)方塊圖1、8255A的內(nèi)部結(jié)構(gòu)5由內(nèi)部結(jié)構(gòu)方塊圖可知,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)與外設(shè)相連的共24根:
8(3)與CPU相連的共14根:RESET(35腳)復(fù)位信號,高電平有效;
片選信號,低電平有效;
讀信號,低電平有效;寫信號,低電平有效;A1、A0(8腳、9腳):端口選擇信號;二、8255A的編程命令98255A有兩個編程命令,即工作方式命令和對C端口的按位操作(置位/復(fù)位)命令,它們是用戶使用8255A來組建各種接口電路的重要工具。10方式命令方式命令,又稱初始化命令。方式命令出現(xiàn)在8255A開始工作之前的初始化程序段中。方式命令的作用與格式如下。作用:指定8255A的工作方式及其方式下8255A三個并行端口的輸入/輸出功能。格式:8位命令字的格式與含義如下圖所示。圖8255A方式命令的格式112.C端口按位置位/復(fù)位命令這是一個按位控制命令,要在初始化以后才能使用,它可放在初始化程序段之后的任何位置。C端口按位置位/復(fù)位命令的作用和格式如下。作用:指定8255A的C端口8個引腳中的任意一個引腳,輸出高電平/低電平。格式:8位命令字的格式與含義如圖所示。圖8255A按位置位/復(fù)位命令的格式123.關(guān)于兩個命令的使用兩個命令的最高位(D7)都分配為特征位。C端口按位置位/復(fù)位命令雖然是對C端口進(jìn)行按位輸出操作,但它不能寫入作數(shù)據(jù)口用的C端口,只能寫入命令口,這是因為它不是數(shù)據(jù),而是命令,要按命令的格式來解釋和執(zhí)行。A端口和B端口也可以按位輸出高/低電平,但是,它與前面C端口的按位置位/復(fù)位命令有本質(zhì)的區(qū)別,并且實現(xiàn)方法也不同。C端口按位輸出是以命令的形式送到命令寄存器去執(zhí)行的,而A端口、B端口的按位輸出是以送數(shù)據(jù)到A端口、B端口來實現(xiàn)的。三、8255A的工作方式138255A有三種工作方式,通過向8255A的控制字寄存器寫入的方式選擇字,就可以規(guī)定各端口的工作方式。當(dāng)8255A工作于方式1和方式2時,C口可用作A口或B口的聯(lián)絡(luò)信號,用輸入指令可以讀取C口的狀態(tài)。下面具體介紹這三種不同的工作方式和C口狀態(tài)字格式。14方式0方式0稱為基本輸入/輸出(BasicInput/Output)方式,它適用于不需要用應(yīng)答信號的簡單輸入/輸出場合。在這種方式下,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)絡(luò)(handshaking)信號控制下才能完成I/O操作。端口C的6根線用來產(chǎn)生或接收這些聯(lián)絡(luò)信號。17選通輸入/輸出方式可分以下幾種情況。1)選通輸入方式如果A口和B口都工作于選通輸入方式,則它們的端口狀態(tài)、聯(lián)絡(luò)信號和控制字如下圖所示。18圖方式1選通輸入方式192)選通輸出方式如果A口和B口都工作于選通輸出方式,它們的聯(lián)絡(luò)控制信號和控制字的格式如下圖所示。20圖方式1選通輸出方式213)選通輸入/輸出方式組合8255A工作于方式1時,還允許對A口和B口分別進(jìn)行定義,一個端口作輸入,另一個端口作輸出。如果將A口定義為方式1輸入口,而將B口定義為方式1輸出口,在這種情況下,端口C的PC0~PC5作狀態(tài)和控制線,C口余下的兩位PC6和PC7,可作數(shù)據(jù)輸入/輸出用。當(dāng)控制字的D3=1時,PC6和PC7作輸入;D3=0時,PC6和PC7作輸出。223.方式2方式2稱為雙向總線方式(BidirectionalBus)。只有A口可以工作于這種方式。在這種方式下,CPU與外設(shè)交換數(shù)據(jù)時,可在單一的8位端口數(shù)據(jù)線PA7~PA0上進(jìn)行,既可以通過A口把數(shù)據(jù)傳送到外設(shè),又可以從A口接收從外設(shè)送過來的數(shù)據(jù),而且輸入和輸出數(shù)據(jù)均能鎖存,但輸入和輸出過程不能同時進(jìn)行。23端口A工作于方式2時,端口C的5位(PC3~PC7)作A口的聯(lián)絡(luò)控制信號,對應(yīng)關(guān)系如下圖所示,圖中也給出了方式控制字的格式。圖
方式2的控制信號和方式控制字244.C口狀態(tài)字當(dāng)8255A工作于方式0時,C口各位作輸入/輸出用。當(dāng)它工作于方式1和方式2時,C口產(chǎn)生或接收與外設(shè)間的聯(lián)絡(luò)信號,這時,讀取C口的內(nèi)容可使編程人員測試或檢查外設(shè)的狀態(tài),用輸入指令對C口進(jìn)行讀操作就可讀取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組所用,當(dāng)B口工作于方式1時,這幾位作B口狀態(tài)字,B口工作于方式0時,這幾位不是狀態(tài)位,而是作輸入輸出用。27四、8255A的應(yīng)用舉例用8255A方式0與打印機(jī)接口打印機(jī)一般采用并行接口,其主要信號與傳送時序如下圖所示。圖
方式0的打印機(jī)接口28假設(shè)這個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的復(fù)位置位控制字outdx,al;使PC7=1,即置=1(只在輸出數(shù)據(jù)時,才是低脈沖)29Printcprocpushaxpushdx;輸出打印數(shù)據(jù)子程序,入口參數(shù):AH=打印數(shù)據(jù)prn:movdx,0fffch;讀取端口Cinal,dx;查詢打印機(jī)的狀態(tài)andal,04h;打印機(jī)忙否(PC2=BUSY=0)?jnzprn;PC2=1,打印機(jī)忙,則循環(huán)等待movdx,0fffeh;PC2=0,打印機(jī)不忙,則輸出數(shù)據(jù)moval,00001110B;使PC7=0,即置=0outdx,alnop;適當(dāng)延時,產(chǎn)生一定寬度的低電平nopmoval,00001111B;使PC7=1,即置=130outdx,alpopdx;最終,產(chǎn)生
低脈沖信號popaxretendpprintc312.雙機(jī)并行通信接口在兩臺單板機(jī)之間利用8255A的端口A實現(xiàn)并行傳送數(shù)據(jù)。甲機(jī)的8255A采用方式1發(fā)送數(shù)據(jù),乙機(jī)的8255A采用方式0接收數(shù)據(jù)。兩機(jī)的CPU與接口之間均使用查詢方式交換數(shù)據(jù),如下圖所示。圖
并行通信接口電路32假設(shè)8255A的端口A、B、C和控制端口的I/O地址為FFF8H、FFFAH、FFFCH和FFFEH。;甲機(jī)初始化程序段movdx,0fffehmoval,0alhoutdx,al;輸出工作方式字:端口A方式1輸出moval,0dh;使PC6(INTEA)=1,允許中斷outdx,al
;甲機(jī)發(fā)送程序,AH=發(fā)送的數(shù)據(jù)trsmt:movdx,0fffehinal,dx;查詢PC3(INTRA)=1?andal,08hjztrsmtmovdx,0fff8h;發(fā)送數(shù)據(jù)moval,ahoutdx,al33;乙機(jī)接收程序: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;適當(dāng)延時,產(chǎn)生一定寬度的低脈沖nopmoval,01h;使PC0=1outdx,al;產(chǎn)生低脈沖信號348.2可編程定時計數(shù)器8253一、8253主要功能Intel8253就是一種常用的可編程定時器/計數(shù)器接口芯片。主要功能有:每片8253上有三個獨(dú)立的16位減法計數(shù)器,最大計數(shù)范圍為0~65535。2.每個計數(shù)器都可按二進(jìn)制或二-十進(jìn)制計數(shù)(BCD)。3.每個計數(shù)器都有6種不同的工作方式,都可以通過程序設(shè)置來改變。4.每個計數(shù)器計數(shù)脈沖的頻率最高可達(dá)2MHz。全部輸入輸出與TTL電平兼容。
二、8253的外部引腳與內(nèi)部結(jié)構(gòu)351、8253的引腳定義8253具有三個獨(dú)立的功能完全相同的16位減法計數(shù)器,24腳DIP封裝,由單一的+5V電源供電。8253引腳如圖所示。圖8253引腳圖361)計數(shù)器引腳8253有3個獨(dú)立的計數(shù)器,每個計數(shù)器與外部的引腳有3個,分別是脈沖輸入引腳CLK、門控輸入引腳GATE、計數(shù)器輸出引腳OUT。2)數(shù)據(jù)引腳D7~D0CPU對8253的編程、計數(shù)初值的輸入、計數(shù)值的讀出均是通過這8位數(shù)據(jù)線傳輸?shù)摹?73)讀/寫信號控制引腳讀信號
有效時,CPU可以讀出計數(shù)器當(dāng)前的計數(shù)值;寫信號
有效時,CPU可以對芯片編程,輸入計數(shù)器初值。4)片選引腳和地址引腳片選引腳
和地址引腳A1、A0一起決定了8253的地址空間,
決定了地址的高位,A1和A0決定了地址的低位,并且A1和A0的4個不同的組合就構(gòu)成了8253的4個不同的地址。382、8253的內(nèi)部結(jié)構(gòu)8253的內(nèi)部結(jié)構(gòu)如圖所示。由圖可知,它由數(shù)據(jù)緩沖器、讀/寫邏輯電路、控制字寄存器和三個計數(shù)器通道所組成。圖8253的內(nèi)部結(jié)構(gòu)391)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是8位、雙向、三態(tài)的緩沖器,通過8根數(shù)據(jù)線D0~D7接收CPU向控制寄存器寫入的控制字,向計數(shù)器寫入的計數(shù)初值,也可以把計數(shù)器的當(dāng)前計數(shù)值讀入CPU。2)讀/寫邏輯電路讀/寫控制邏輯電路從系統(tǒng)總線接收輸入信號,經(jīng)過譯碼,產(chǎn)生對8253各部分的控制信息。403)控制字寄存器當(dāng)?shù)刂沸盘朅1和A0都為1時,訪問控制字寄存器??刂谱旨拇嫫鹘邮諒腃PU發(fā)來的控制字,控制字決定了8253的工作方式、計數(shù)方式以及使用哪個計數(shù)器等??刂谱旨拇嫫髦荒軐懭氩荒茏x出。4)計數(shù)器通道8253有3個相互獨(dú)立的同樣的計數(shù)電路,分別稱做計數(shù)器0、計數(shù)器1和計數(shù)器2。413.8253的編程8253沒有復(fù)位信號,加電后的工作方式不確定。為了使8253正常工作,微處理器必須對其初始化編程,寫入控制字和計數(shù)初值。計數(shù)過程中,還可以讀取計數(shù)值。1)寫入方式控制字雖然8253的每個計數(shù)器都需要方式控制字,但控制字格式相同,如下圖所示。而且寫入控制字的I/O地址也相同,要求A1A0=11(控制字地址)。42圖8253的方式控制字432)寫入計數(shù)值每個計數(shù)器通道都有對應(yīng)的計數(shù)器I/O地址用于讀寫計數(shù)值。讀寫計數(shù)值時,還必須按方式控制字規(guī)定的讀寫格式進(jìn)行。3)讀取計數(shù)值利用計數(shù)器I/O地址,可以讀取計數(shù)器的當(dāng)前計數(shù)值。但對8位數(shù)據(jù)線的8253來說,讀取16位計數(shù)值需要分兩次。由于計數(shù)在不斷進(jìn)行,在前后兩次執(zhí)行輸入指令的過程中,計數(shù)值可能已經(jīng)變化。所以,如果計數(shù)過程可以暫停,可在讀取計數(shù)值時使GATE信號為低;否則應(yīng)該將當(dāng)前計數(shù)值先行鎖存,然后讀取。444.8253的工作方式8253的3個通道根據(jù)控制寄存器的設(shè)置均有6種工作方式。1)方式0—技術(shù)結(jié)束中斷方式當(dāng)某一通道設(shè)置為方式0,則該計數(shù)器的輸出OUT立即變?yōu)榈碗娖?,在計?shù)初值寫入該計數(shù)器后,輸出仍保持低電平。若門控信號GATE為高電平,計數(shù)器在CLK的每一個下降沿開始進(jìn)行減1計數(shù),當(dāng)計數(shù)器從初值減到0時,輸出OUT便變?yōu)楦唠娖剑乙恢北3指唠娖降街匦聦懭肟刂谱只蛘咧匦聦懭胄碌挠嫈?shù)值為止。452)方式1—可編程單脈沖方式當(dāng)控制字設(shè)為方式1時,OUT輸出為高電平。在計數(shù)初值寫入該計數(shù)器后,計數(shù)并不開始,只有在門控GATE來一個上升沿之后的下一個CLK的下降沿,才開始計數(shù),同時OUT由高電平變?yōu)榈碗娖?,直到計?shù)值變?yōu)?時,OUT才變?yōu)楦唠娖?。所以O(shè)UT輸出負(fù)脈沖的寬度為計數(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非常相似。當(dāng)設(shè)置完方式控制字后,OUT變?yōu)楦唠娖?。?dāng)寫入計數(shù)初值后立即開始計數(shù)(即為軟件觸發(fā))。當(dāng)計數(shù)到0后,OUT輸出為低電平,持續(xù)一個CLK周期的低電平后變?yōu)楦唠娖剑嫈?shù)器停止計數(shù)。6)方式5—硬件觸發(fā)選通方式這種方式與方式1非常相似。當(dāng)設(shè)置為方式5后,OUT輸出高電平,寫入初值后,OUT仍保持高電平不變。485.8253應(yīng)用舉例用8253實現(xiàn)生產(chǎn)流水線上的工件計數(shù),每通過100個工件,揚(yáng)聲器便發(fā)出頻率為1000H中的音響信號,持續(xù)時間為3秒。設(shè)外部時鐘頻率為2MHz。下圖是該設(shè)備的工作原理示意圖。49圖8253用于工件計數(shù)50設(shè)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中斷服務(wù)程序: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ù)初值(為下次工作做準(zhǔn)備)OUT40H,ALIRET8.3串行通信接口8251A52一、串行通信概述通信是指計算機(jī)與外部設(shè)備之間或計算機(jī)與計算機(jī)之間的信息交換。通信的基本方式可以分為并行通信和串行通信兩種。并行通信是指數(shù)據(jù)的每位同時傳輸,如8.1節(jié)所述的8255A與外設(shè)間的數(shù)據(jù)交換采用的就是并行通信方式。53串行通信則把需要傳輸?shù)臄?shù)據(jù)按照一定的數(shù)據(jù)格式一位一位地按順序傳輸。串行通信的信號在一根信號線上傳輸。發(fā)送時,把每個數(shù)據(jù)中的各個二進(jìn)制位一位一位地發(fā)送出去,發(fā)送一個字節(jié)后再發(fā)送下一個字節(jié);接收時,從信號線上一位一位地接收,并把它們拼成一個字節(jié)傳輸給CPU進(jìn)行處理。54串行通信時,數(shù)據(jù)在兩個設(shè)備A和B之間傳送,按傳送方式可分為單工、半雙工和全雙工3種方式,如圖所示。圖串行通信數(shù)據(jù)傳輸551)單工單工傳送方式只能在一個方向上傳輸數(shù)據(jù),兩個設(shè)備之間進(jìn)行通信時,一邊發(fā)射數(shù)據(jù),另一邊只能接收數(shù)據(jù)。2)半雙工半雙工傳送方式中,數(shù)據(jù)可以在兩個設(shè)備之間任意方向傳送,但是由于只有一根傳輸線,故在同一時間內(nèi)只能在一個方向上傳輸數(shù)據(jù),不能同時收發(fā)。3)全雙工由于在兩個設(shè)備之間有兩根數(shù)據(jù)傳輸線,所以兩個設(shè)備間可以同時發(fā)射和接收數(shù)據(jù)。56串行傳送有兩種基本工作方式:異步方式和同步方式。1)異步方式不發(fā)送數(shù)據(jù)時,數(shù)據(jù)信號線為高電平,處于空閑狀態(tài)。當(dāng)有數(shù)據(jù)要發(fā)送時,數(shù)據(jù)線變?yōu)榈碗娖剑⒊掷m(xù)一位的時間,表示傳送字符開始,該位稱為起始位。起始位之后,在信號線上依次出現(xiàn)發(fā)送的每一位字符數(shù)據(jù),最低有效位D0最先出現(xiàn),因此它最早發(fā)送出去。在數(shù)據(jù)位的后面有一個奇偶校驗位。在奇偶校驗位的后面有1到2位的高電平,稱為停止位,用于表示字符的結(jié)束。如果傳輸完一個字符后,立即傳輸下一個字符,則后一個字符的起始位就緊跟在前一個字符的停止位后,否則停止位后又進(jìn)入空閑狀態(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為例介紹可編程串行通信接口的基本工作原理、內(nèi)部結(jié)構(gòu)、工作過程等。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的內(nèi)部時序。RESET(21腳):芯片的復(fù)位信號。
(11腳):片選信號,低電平有效。C/(12腳):控制/數(shù)據(jù)信號。根據(jù)C/信號是1還是0,來判別當(dāng)前數(shù)據(jù)總線上信息流是控制字還是與外設(shè)交換的數(shù)據(jù)。62(13腳):讀信號,低電平有效。有效時,CPU正在從8251A讀取數(shù)據(jù)。(10腳):寫信號,低電平有效。有效時,CPU正在向8251A寫入數(shù)據(jù)。TxRDY(15腳):發(fā)送器準(zhǔn)備好信號,輸出,高電平有效。RxRDY(14腳):接收器準(zhǔn)備好信號,輸出,高電平有效。63SYNDET/BRKDET(16腳):同步或中止符檢測信號,高電平有效。TxEMPTY(18腳):發(fā)送移位寄存器空信號。64(2)8251A與外部或調(diào)制解調(diào)器相連的信號線RxD(3腳):數(shù)據(jù)接收端,用來接收由外設(shè)輸入的串行數(shù)據(jù)。
(25腳):接收時鐘信號,輸入。TxD(19腳):數(shù)據(jù)發(fā)送端,往外部設(shè)備輸出串行
數(shù)據(jù)。
(9腳):發(fā)送時鐘信號,外部輸入。
(24腳):數(shù)據(jù)終端準(zhǔn)備好信號,輸出,低電平有效。65
(22腳):數(shù)據(jù)裝置準(zhǔn)備好信號,輸入,低電平有效。
(23腳):發(fā)送方請求發(fā)送信號,輸出,低電平有效。
(17腳):清除發(fā)送信號,輸入,低電平有效。662.8251A的內(nèi)部結(jié)構(gòu)8251A的內(nèi)部結(jié)構(gòu)如圖所示,共有5個部分。圖8251A的內(nèi)部結(jié)構(gòu)67數(shù)據(jù)總線緩沖器:雙向、三態(tài)緩沖器,用來與CPU傳
輸數(shù)據(jù)信息、命令信息、狀態(tài)信息。接收器:包括接收緩沖器、接收移位寄存器及接收
控制器三部分。串行接口收到的數(shù)據(jù),轉(zhuǎn)變成并行
數(shù)據(jù)后,存放在該緩沖器中,以供CPU讀取。發(fā)送器:包含發(fā)送緩沖器、發(fā)送移位寄存器、發(fā)送
控制器三部分。是一個分時使用向外發(fā)送。另一方面,
命令字也存放在這里,以指揮串行口工作。讀/寫邏輯電路:用來接收CPU的控制信號,以控制數(shù)據(jù)
的傳輸方向。調(diào)制解調(diào)器控制電路:用來簡化8251A和調(diào)制解調(diào)器的
連接,提供與調(diào)制解調(diào)器的聯(lián)絡(luò)信號。683.8251A的工作過程
接收器的工作過程當(dāng)控制命令字的“允許接收”位RxE(D2位)和“準(zhǔn)備好接收數(shù)據(jù)”位DTR(D1位)有效時,接收控制器開始監(jiān)視RxD線。外設(shè)數(shù)據(jù)從RxD端逐位進(jìn)入接收移位寄存器中,接收中對同步和異步兩種方式采用不同的處理過程。當(dāng)接收數(shù)據(jù)緩沖器接收到由外設(shè)傳送來的數(shù)據(jù)后,發(fā)出“接收準(zhǔn)備就緒”RxRDY信號,通知CPU取走數(shù)據(jù)。69(2)發(fā)送器的工作過程當(dāng)操作命令寄存器中的TxEN=1(D0位)且引腳=0時,才能開始發(fā)送過程。接收來自CPU的數(shù)據(jù)并存入發(fā)送緩沖器。發(fā)送緩沖器存有待發(fā)送的數(shù)據(jù)后,使引腳TxRDY變?yōu)榈碗娖剑硎景l(fā)送緩沖器滿。當(dāng)調(diào)制解調(diào)器做好接收數(shù)據(jù)的準(zhǔn)備后,向8251A輸入一個低電平信號,使
(低電平有效)引腳有效。70在編寫初始化命令時,使操作命令控制字的TxEN位(D0位)為高,讓發(fā)送器處于允許發(fā)送的狀態(tài)下。滿足以上②、③、④條件時,若采用同步方式,發(fā)送器將根據(jù)程序的設(shè)定自動送一個(單同步)或兩個(雙同步)同步字符,然后由移位寄存器從數(shù)據(jù)輸出線TxD串行輸出數(shù)據(jù)塊;若采用異步方式,由發(fā)送控制器在其首尾加上起始位及停止位,然后從起始位開始,經(jīng)移位寄存器從數(shù)據(jù)輸出線TxD串行輸出。待數(shù)據(jù)發(fā)送完畢,使TxEMPTY有效(高電平)。CPU可向8251A發(fā)送緩沖器寫入下一個數(shù)據(jù)。71三、8251A的控制字及初始化8251A是一種多功能的串行接口芯片,使用前對它進(jìn)行初始化編程后,才能收發(fā)數(shù)據(jù),使用中可以利用狀態(tài)字來了解它的工作狀態(tài)。8251A的控制字可以分為方式字、命令字和狀態(tài)字。72下面對方式字、命令字、狀態(tài)字及初始化編程進(jìn)行介紹。方式字8251A的方式字格式如下圖所示。73圖8251A的方式字格式742.命令字8251A的命令字格式如圖所示。圖8251A的命令字格式753.狀態(tài)字在數(shù)據(jù)通信系統(tǒng)中,常常要了解8251A的工作狀態(tài),如檢查傳送中是否產(chǎn)生了錯誤,TxRDY是否有效等,以便控制CPU與8251A之間的數(shù)據(jù)交換。8251A內(nèi)部設(shè)有狀態(tài)寄存器,CPU可隨時用IN指令讀取狀態(tài)寄存器的內(nèi)容,在CPU讀狀態(tài)時,8251A將自動禁止改變狀態(tài)。狀態(tài)字的格式如下圖所示。76圖8251A的狀態(tài)字的格式774.8251A的初始化對8251A進(jìn)行初始化編程時,必須在系統(tǒng)復(fù)位之后(RESET引腳為高電平),使得收發(fā)引腳處于空閑狀態(tài)、各個寄存器處于復(fù)位狀態(tài)的情況下,才能進(jìn)行編程。通常8251A的初始化編程流程如下圖所示。78圖8251A的初始化流程79四、8251A應(yīng)用舉例1、異步模式下的初始化程序舉例設(shè)8251A工作在異步模式,波特率系數(shù)(因子)為16,7個數(shù)據(jù)位/字符,偶校驗,2個停止位,發(fā)送、接收允許,設(shè)端口地址為00E2H和00E4H,請完成初始化程序。80【分析】根據(jù)題目要求,可以確定模式字為:
11111010B即FAH控制字為:00110111B即37H81則初始化程序如下:MOVAL,0FAH;送模式字MOVDX,00E2HOUTDX,AL;異步方式,7位/字符,
偶校驗,2個停止位MOVAL,37H;設(shè)置控制字,使發(fā)送、接收允許,清除錯標(biāo)志,使
、有效OUTDX,AL822、同步模式下初始化程序舉例設(shè)端口地址為52H,采用內(nèi)同步方式,
2個同步字符(設(shè)同步字符位16H),偶校驗,7位數(shù)據(jù)位/字符,請完成初始化程序?!痉治觥扛鶕?jù)題目要求,可以確定模式字為:00111000B即38H而控制字為:10010111B即97H。83具體程序段如下:MOVAL,38H;設(shè)置模式字,同步模式,用2個同步字符OUT52H,AL;7個數(shù)據(jù)位,偶校驗MOVAL,16HOUT52H,AL;送同步字符16HOUT52H,ALMOVAL,97H;設(shè)置控制字,使發(fā)送
器和接收器啟動OUT52H,AL8.4DMA控制器8237A84一、DMA控制器概述DMA(DirectMemoryAccess)是指一種外設(shè)與存儲器之間直接傳輸數(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ù)總線、地址總線和控制總線的控制權(quán),由DMAC控制。CPU執(zhí)行完現(xiàn)行的總線周期,如果CPU同意讓出總線控制權(quán),向DMAC發(fā)出響應(yīng)請求的回答信號,并且脫離三總線處于等待狀態(tài)。87DMAC在收到總線響應(yīng)信號后,向I/O接口發(fā)DMA響應(yīng)信號,并由DMAC接管三總線控制權(quán)。進(jìn)行DMA傳送。DMAC給出傳送數(shù)據(jù)的內(nèi)存地址,傳送的字節(jié)數(shù)及發(fā)出/信號;在DMA控制下,每傳送一個字節(jié),地址寄存器加1,字節(jié)計數(shù)器減1,如此循環(huán),直至計數(shù)器之值為0。DMA讀操作:讀存儲器寫外設(shè)。DMA寫操作:讀外設(shè)寫存儲器。DMA傳送結(jié)束,DMAC撤除總線請求信號,CPU重新控制總線,恢復(fù)CPU的工作。88二、8237A的內(nèi)部結(jié)構(gòu)與引腳功能1.8237A的內(nèi)部結(jié)構(gòu)8237A的內(nèi)部結(jié)構(gòu)如下圖所示,主要由3個基本控制邏輯單元、3個地址/數(shù)據(jù)緩沖器單元和1組內(nèi)部寄存器組成。89圖8237A的內(nèi)部結(jié)構(gòu)90(1)控制邏輯單元控制邏輯單元包括定時和控制邏輯、命令控制邏輯和優(yōu)先級控制邏輯,它們的功能分別如下。定時和控制邏輯:根據(jù)初始化編程所設(shè)置的工作方式寄存器的內(nèi)容和命令,在輸入時鐘信號的控制下,產(chǎn)生8237A的內(nèi)部定時信號和外部控制信號。命令控制邏輯:主要是在CPU控制總線(即DMA處于空閑周期)時,將CPU在初始化編程時送來的命令字進(jìn)行譯碼;當(dāng)8237A進(jìn)入DMA服務(wù)時,對DMA的工作方式控制字進(jìn)行譯碼。優(yōu)先級控制邏輯:用來裁決各通道的優(yōu)先順序,解決多個通道同時請求DMA服務(wù)時可能出現(xiàn)的優(yōu)先權(quán)競爭問題。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)內(nèi)部寄存器名稱位數(shù)數(shù)量CPU訪問方式基地址寄存器164只寫基字節(jié)計數(shù)寄存器164只寫當(dāng)前地址寄存器164可讀可寫當(dāng)前字節(jié)計數(shù)寄存器164可讀可寫地址暫存寄存器161不能訪問字節(jié)計數(shù)暫存寄存器161不能訪問控制寄存器81只寫工作方式寄存器84只寫屏蔽寄存器81只寫請求寄存器81只寫狀態(tài)寄存器81只讀暫存寄存器81只讀8237A的內(nèi)部寄存器共有12個,見下表。表8237A的內(nèi)部寄存器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傳送的外設(shè)輸入,其有效極性和優(yōu)先級可以通過編程設(shè)定。DACK3~DACK0(DMAacknowledge):4個通道的DMA響應(yīng)輸出信號,作為對請求DMA傳送外設(shè)的應(yīng)答信號,其有效極性可以通過編程設(shè)定。HRQ(holdrequest):總線請求信號,輸出,高電平有效。96HLDA(holdacknowledge):總線應(yīng)答信號,輸入,高電平有效。CLK(clock):時鐘信號。作為芯片內(nèi)部操作的定時,并控制數(shù)據(jù)傳送的速率。RESET:復(fù)位信號,高電平有效。READY(I/Odeviceready):外設(shè)準(zhǔn)備就緒信號,輸入,高電平有效。AEN(addressenable):地址允許信號,輸出,高電平有效。97ADSTB(addressstrobe):地址選通信號,輸出,高電平有效。
(endofprocess):DMA傳送結(jié)束信號,雙向,低電平有效。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將當(dāng)前地址寄存器的內(nèi)容加1(或減1),并將當(dāng)前字節(jié)數(shù)寄存器的內(nèi)容減1,每傳送完這一個字節(jié),DMAC就將總線控制權(quán)交回CPU。若傳送后使字節(jié)數(shù)寄存器從0減到FFFFH,終止計數(shù),則終結(jié)DMA傳送或重新初始化。(1)單字節(jié)傳送方式100(2)數(shù)據(jù)塊傳送方式在這種傳送方式下,8237A一旦獲得總線控制權(quán),便開始連續(xù)傳送數(shù)據(jù)。每傳送一個字節(jié),自動修改當(dāng)前地址及當(dāng)前字節(jié)數(shù)寄存器的內(nèi)容,直到字節(jié)數(shù)寄存器從0減到FFFFH終止計數(shù),或收到外部輸入的有效
信號才終結(jié)DMA傳送,將總線控制權(quán)交給CPU,一次所傳送數(shù)據(jù)塊的最大長度可達(dá)64KB,數(shù)據(jù)塊傳送結(jié)束后可自動初始化。101(3)請求傳送方式DREQ信號有效,8237A連續(xù)傳送數(shù)據(jù),當(dāng)DREQ信號無效時,DMA傳送被暫時終止,8237A釋放總線,CPU可繼續(xù)操作。如果外設(shè)又準(zhǔn)備好進(jìn)行傳送,可使DREQ信號再次有效,DMA傳送就會繼續(xù)進(jìn)行下去。102(4)級聯(lián)方式利用這種方式可以把多個8237A連接在一起,以便擴(kuò)充系統(tǒng)的DMA通道數(shù)。下一級的HRQ接到上一級的某一通道的DREQ上,而上一級的響應(yīng)信號DACK可接下一級的HLDA,其連接如下圖所示。103圖8237A級聯(lián)方式104II.DMA傳送類型在前3種工作方式下,DMA傳送有3種類型:DMA讀、寫和校驗。(1)DMA讀如果將數(shù)據(jù)從存儲器傳送到外設(shè),則8237A輸出
和有效信號。由有效從存儲器讀出數(shù)據(jù),由有效把這一數(shù)據(jù)寫入外設(shè)。105(2)DMA寫如果將數(shù)據(jù)從外設(shè)傳送到存儲器,則8237A輸出
和有效信號。由
有效從外設(shè)輸入數(shù)據(jù),由有效把這一數(shù)據(jù)寫入存儲器。(3)DMA校驗DMA校驗是一種空操作。8237A也像DMA讀或DMA寫傳送一樣產(chǎn)生地址信號和
信號,但不發(fā)生存儲器和I/O讀寫控制信號,所以實際上并不真正進(jìn)行數(shù)據(jù)傳送。這種傳送類型一般用于對DMAC器件進(jìn)行測試時使用。106III.存儲器到存儲器的傳送8237A具有存儲器到存儲器的傳送功能,利用8237A編程命令寄存器,可以選擇通道0和通道1兩個通道實現(xiàn)由存儲器到存儲器的傳送。107①固定優(yōu)先權(quán)方式:4個通道的優(yōu)先權(quán)是固定的,即通道0優(yōu)先權(quán)最高,依次降低,通道3最低。IV.DMA通道的優(yōu)先權(quán)方式8237A中的任一通道獲得服務(wù)后,其他通道無論優(yōu)先權(quán)高低,均被禁止,DMA傳送不存在嵌套。②循環(huán)優(yōu)先權(quán)方式:4個通道的優(yōu)先權(quán)是變化的,即最近一次服務(wù)的通道在下次循環(huán)中變成最低優(yōu)先權(quán),其他通道依次輪流相應(yīng)的優(yōu)先權(quán)。若3個通道已經(jīng)被服務(wù),則剩下的通道一定是優(yōu)先權(quán)最高的。108V.自動初始化方式若DMA通道設(shè)置為自動初始化方式,則每當(dāng)DMA過程結(jié)束
信號產(chǎn)生時,都用基地址寄存器和基字節(jié)數(shù)寄存器的內(nèi)容,使相應(yīng)的現(xiàn)行寄存器恢復(fù)為初始值,包括恢復(fù)屏蔽位,允許DMA請求。1092、8237A的內(nèi)部寄存器結(jié)構(gòu)8237A的內(nèi)部寄存器有兩類。一類稱為通道寄存器,每個通道包括基地址寄存器、當(dāng)前地址寄存器、基字節(jié)計數(shù)器、當(dāng)前字節(jié)計數(shù)器和工作方式寄存器,這些寄存器的內(nèi)容在初始化編程時寫入;另一類為控制寄存器和狀態(tài)寄存器,這類寄存器是4個通道公用的,其中控制寄存器用來設(shè)置8237A的傳送類型和請求控制等,初始化編程時寫入,而狀態(tài)寄存器存放8237A的工作狀態(tài)信息,共CPU讀取查詢。8237A內(nèi)部寄存器的端口地址分配及讀/寫操作功能見下表。110表8237A內(nèi)部寄存器端口地址分配及讀/寫操作功能通道號A3A2A1A0地址讀操作(
=0)寫操作(
=0)00000DMA+00H當(dāng)前地址寄存器基(當(dāng)前)地址寄存器0001DMA+01H當(dāng)前字節(jié)計數(shù)器基(當(dāng)前)字節(jié)計數(shù)器10010DMA+02H當(dāng)前地址寄存器基(當(dāng)前)地址寄存器0011DMA+03H當(dāng)前字節(jié)計數(shù)器基(當(dāng)前)字節(jié)計數(shù)器20100DMA+04H當(dāng)前地址寄存器基(當(dāng)前)地址寄存器0101DMA+05H當(dāng)前字節(jié)計數(shù)器基(當(dāng)前)字節(jié)計數(shù)器30110DMA+06H當(dāng)前地址寄存器基(當(dāng)前)地址寄存器0111DMA+07H當(dāng)前字節(jié)計數(shù)器基(當(dāng)前)字節(jié)計數(shù)器公用1000DMA+08H狀態(tài)寄存器控制寄存器1001DMA+09H
請求寄存器1010DMA
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工更衣管理制度規(guī)范
- 鄉(xiāng)鎮(zhèn)社會聽證制度規(guī)范
- 員工廚房用餐制度規(guī)范
- 足浴接待制度及標(biāo)準(zhǔn)規(guī)范
- 臨建庫房管理制度規(guī)范
- 學(xué)校食堂相關(guān)規(guī)范制度
- 醫(yī)護(hù)人員衣著制度規(guī)范
- 物聯(lián)卡代理制度規(guī)范要求
- 蘭大科學(xué)道德規(guī)范制度
- 鉆石琢磨工發(fā)展趨勢測試考核試卷含答案
- 2025年醫(yī)保局支部書記述職報告
- 世說新語課件
- 全體教師大會上副校長講話:點醒了全校200多名教師!毀掉教學(xué)質(zhì)量的不是學(xué)生是這7個環(huán)節(jié)
- T-CDLDSA 09-2025 健身龍舞彩帶龍 龍舞華夏推廣套路技術(shù)規(guī)范
- GB/T 46561-2025能源管理體系能源管理體系審核及認(rèn)證機(jī)構(gòu)要求
- GB/T 19566-2025旱地糖料甘蔗高產(chǎn)栽培技術(shù)規(guī)程
- 去極端化條例解讀課件
- 水上拋石應(yīng)急預(yù)案
- 蘇州大學(xué)介紹
- 酒店消防安全應(yīng)急預(yù)案范本
- 疲勞骨折課件
評論
0/150
提交評論