并行接口與串行接口67643_第1頁
并行接口與串行接口67643_第2頁
并行接口與串行接口67643_第3頁
并行接口與串行接口67643_第4頁
并行接口與串行接口67643_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章并行接口與串行接口9.1并行接口概述9.2可編程并行接口8255A9.3串行通信的基本概念9.4可編程串行接口8251A9.1并行接口概述9.1.1并行接口的特點9.1.2并行接口的類型9.1.1并行接口的特點1.并行接口是在多根數(shù)據(jù)線上以數(shù)據(jù)字節(jié)或字為單位與I/O設(shè)備或被控對象傳輸數(shù)據(jù)。2.并行接口適用于近距離數(shù)據(jù)傳輸。一次同時傳送多位數(shù)據(jù),傳送速度快。3.在并行接口中,8位或16位是同時傳輸?shù)摹?.并行傳送的信息不要求固定的格式,這與串行傳送的信息有固定格式的要求不同。

9.1.2并行接口的類型1.從并行接口數(shù)據(jù)傳送的方向看,可分為兩種,一是單向傳送(只作為輸入口或只作為輸出口),另一種是雙向傳送(既可作為輸入口,也可作為輸出口)2.從并行接口的電路結(jié)構(gòu)看,并行接口可分為硬接線接口和可編程接口。3.可編程接口可以用軟件編程序的方法改變接口的工作方式及功能,具有廣泛的適應(yīng)性和很高的靈活性。5§9.2可編程并行接口芯片8255A基本特性具有兩個8位(PA口和PB口)和兩個4位(PC口高/低4位)并行I/O端口的接口芯片。能適應(yīng)CPU與I/O接口之間的多種數(shù)據(jù)傳送方式的要求。PC口的特殊使用:①作數(shù)據(jù)口②當(dāng)PA口和PB口工作在方式1和方式2時,作專用聯(lián)絡(luò)信號③作狀態(tài)口④PC口可以進(jìn)行按位控制。6可編程并行接口8255A主要內(nèi)容1、內(nèi)部結(jié)構(gòu)與功能2、外部引腳與端口操作3、編程控制字

1)方式選擇控制字

2)C口置/復(fù)位控制字3)應(yīng)用舉例4、工作方式與信號組態(tài)

1)方式0——基本I/O例子 2)方式1——單向選通I/O例子 3)方式2——雙向選通I/O應(yīng)用方法與步驟:1、硬件連接2、編程準(zhǔn)備

1)選用端口

2)確定方式

3)確定控制字3、編寫初始化程序4、編寫應(yīng)用程序7§9.2可編程并行接口芯片8255A9.3.18255A結(jié)構(gòu)一、外部引腳①與系統(tǒng)總線的連接信號●面向數(shù)據(jù)總線的有:●面向地址總線的有:●面向控制總線的有:②與外部設(shè)備的連接信號

PA0~PA7:端口A的輸入/輸出線。

PB0~PB7:端口B的輸入/輸出線。

PC0~PC7:端口C的輸入/輸出線。12345678910111213141516171819204039383736353433323130292827262524232221PA4PA5PA6PA7PB7PB5PB4PB3PB8D1D2D3D4D0D5D6D7VCCRESETWRRDCSPA3PA2PA1PA0GNDA1A0PC7PC6PC4PC0PC1PC2PC5PB0PB1PB2PC38255A

D0~D7:雙向數(shù)據(jù)線,用于CPU向8255A發(fā)送命令、數(shù)據(jù)和8255A向CPU回送狀態(tài)、數(shù)據(jù)。CS:選片信號A1、A0:地址線,用以選擇片內(nèi)端口這24根信號線均可用來連接I/O設(shè)備和傳送信息。其中,A口和B口一般只作輸入/輸出的數(shù)據(jù)口用(采用特殊技巧,有時也可利用它們從I/O設(shè)備讀取一些狀態(tài)信號,如打印機(jī)的“忙”(Busy)狀態(tài)信號、A/D轉(zhuǎn)換器的“轉(zhuǎn)換結(jié)束”(EOC)狀態(tài)信號,但對A口和B口來說,都是作8255A的數(shù)據(jù)口讀入),C口既可作數(shù)據(jù)口,也作狀態(tài)口使用。RD:讀信號,低電平有效。WR:寫信號,低電平有效。RESET:復(fù)位信號,高電平有效。它清除控制寄存器并將8255A的A、B、C三個端口均置為輸入方式;輸入寄存器和狀態(tài)寄存器被復(fù)位,并且屏蔽中斷請求;24條面向外設(shè)信號線呈現(xiàn)高阻懸浮狀態(tài)。8§9.2可編程并行接口芯片8255A二、8255A內(nèi)部結(jié)構(gòu)A組控制數(shù)據(jù)總線緩沖器讀/寫控制邏輯B組控制A組A口(8位)A組C口高位(4位)B組C口低位(4位)B組B口(8位)D0~D7RDRDA1A0RESETRDPA0~PA7PC4~PC7PC0~PC3PB0~PB7①數(shù)據(jù)總線緩沖器這是一個三態(tài)雙向8位緩沖器,它是8255A與CPU系統(tǒng)數(shù)據(jù)總線的接口。③輸入/輸出端口A、B、C

8255A包括3個8位輸入輸出端口(port)。每個端口都有一個數(shù)據(jù)輸入寄存器和一個數(shù)據(jù)輸出寄存器。④A組和B組控制電路控制A、B和C三個端口的工作方式。

PC口的作用與8255A的工作方式有關(guān),它除了作數(shù)據(jù)口以外,還有其他用途,如:

a.作數(shù)據(jù)口。

b.作狀態(tài)口。

c.作專用(固定)聯(lián)絡(luò)(握手)信號線。

d.作按位控制用。②讀/寫控制邏輯讀/寫控制邏輯由讀信號RD、寫信號WR、選片信號CS以及端口選擇信號A1、A0等共同產(chǎn)生操作控制邏輯。9CSA1A0RDWR讀操作內(nèi)容PC系統(tǒng)00001PA口→數(shù)據(jù)總線(→CPU)數(shù)據(jù)60H00101PB口→數(shù)據(jù)總線(→CPU)數(shù)據(jù)61H01001PC口→數(shù)據(jù)總線(→CPU)數(shù)據(jù)62H寫操作00010PA口←數(shù)據(jù)總線(←CPU)數(shù)據(jù)60H00110PB口←數(shù)據(jù)總線(←CPU)數(shù)據(jù)61H01010PC口←數(shù)據(jù)總線(←CPU)數(shù)據(jù)62H01110控制寄存器←數(shù)據(jù)總線控制字63H無操作情況1××××總線懸?。ㄈ龖B(tài))0××11總線懸浮01101控制口不能讀63H三、8255A基本操作與端口地址109.2.28255控制字一、

工作方式選擇控制字作用:指定8255A3個并行端口(PA、PB、PC)的工作方式及該方式下的功能(傳輸方向)——是作輸入還是作輸出。格式:8位,其中最高位是特征位,一定要寫1,其余各位定義如下,應(yīng)根據(jù)用戶的設(shè)計要求填寫1或0。1D6D5D4D3D2D1D0特征位A組方式:00=方式001=方式110=方式211=不用PA0=輸出1=輸入PC4~70=輸出1=輸入B組方式0=0方式1=1方式PB0=輸出1=輸入PC0~30=輸出1=輸入A口方式A口方向C口上半方向B口方式B口方向C口下半方向119.2.28255控制字例1:

要把A口指定為方式1,輸入,C口上半部為輸出;B口指定為方式0,輸出,C口下半部定為輸入,則工作方式命令代碼是:

10110001B或B1H。若將此命令代碼寫到8255A的命令寄存器,即實現(xiàn)了對8255A工作方式及端口功能的指定,或者說完成了對8255A的初始化。初始化的程序段為:

MOVDX,303H

;8255A命令口地址

MOVAL,0B1H

;初始化命令字

OUTDX,AL

;送到命令口8255A命令口地址就應(yīng)該是303H嗎?129.2.28255控制字二、

PC口按位置/復(fù)位控制字作用:指定PC口的某一位(某一個引腳)輸出高電平或低電平。格式:8位,其中最高位是特征位,一定要寫0,其余各位的定義如下,應(yīng)根據(jù)用戶的設(shè)計要求填寫1或0.0D6D5D4D3D2D1D0特征位不用(寫0)位選擇000=C口0位001=C口1位…111=C口7位1=置位(高電平)0=復(fù)位(低電平)139.2.28255控制字例2:若要把C口的PC2引腳置成高電平輸出,則命令字應(yīng)該為:

00000101B或05H。

將該命令的代碼寫入8255A的命令寄存器,就會使得從PC口的PC2引腳輸出高電平,其程序段為:

MOVDX,303H

;8255A命令口地址

MOVAL,05H

;使PC2=1的命令字

OUTDX,AL

;送到命令口如果要使引腳PC2輸出低電位,則程序段為:

MOVDX,303H

;8255A命令口地址

MOVAL,04H

;使PC2=0的命令字

OUTDX,AL

;送到命令口149.2.28255控制字利用C口的按位控制特性還可以產(chǎn)生負(fù)脈沖或方波輸出,對外設(shè)進(jìn)行控制。例3:利用8255A的PC7產(chǎn)生負(fù)脈沖,作打印機(jī)接口電路的數(shù)據(jù)選通信號,其程序段為:

MOVDX,303H;8255A命令口

MOVAL,00001110B;置PC7=0OUTDX,ALNOP;維持低電平

NOPMOVAL,00001111B;置PC7=1OUTDX,AL哈哈!你們誰能編程讓PC7輸出方波?不錯!如果只讓PC7輸出100個方波脈沖,又將怎么辦?159.2.28255控制字3.關(guān)于兩個命令的討論①方式命令是對8255A的3個端口的工作方式及功能進(jìn)行指定,即進(jìn)行初始化,初始化工作要在使用8255A之前做。②按位置位/復(fù)位命令只是對PC口的輸出進(jìn)行控制,使用它不會破壞已經(jīng)建立的3種工作方式,而是對它們實現(xiàn)動態(tài)控制的一種支持。它可放在初始化程序以后的任何地方。③兩個命令的最高位(D7)都分配作特征位,之所以要設(shè)置特征位,是為了識別兩個不同的命令。④按位置位/復(fù)位操作的是PC口,但操作的命令代碼只能寫入命令口。164.A口和B口的按位使用方法

A口、B口也可以按位輸出高低電平,但是,它與前面的按位置位/復(fù)位命令有本質(zhì)的差別,并且實現(xiàn)的方法也不同,A口、B口按位輸出是以送數(shù)據(jù)到A口、B口來實現(xiàn)的。其具體作法是:若要使某一位置高電平,則先對端口進(jìn)行讀操作,將讀入的原輸出值,“或”上一個字節(jié),字節(jié)中使該位為1,其他位為0,然后再送到同一端口,即可使該位置位。類似過程,用“與”的方法可以使某位輸出“0”。

10101010OR

00000001

10101011

10101011AND111111101010101017例4:若要使PA7位輸出高/低電平,則用下列程序段:使PA7輸出高電平.MOVDX,300H;PA數(shù)據(jù)口地址

INAL,DX;讀入A口原輸出內(nèi)容

ORAL,80H;使PA7=1OUTDX,AL;輸出PA718使PA7輸出低電平MOVDX,300H;A口地址INAL,DX;讀入端口原輸出值ORAL,7FH;使PA7=0OUTDX,AL;輸出PA7199.2.38255A的工作方式

8255A的工作方式與端口有關(guān),PA口有三種方式(方式0、方式1、方式2),PB口有兩種方式(方式0、方式1),PC口只有1種I/O方式——方式0。

PA、PB口需要聯(lián)絡(luò)線時,也由PC口提供。一、方式0——基本I/O(簡單的輸入/輸出方式)

1、適用場合:無條件傳送方式或查詢方式

2、可用端口:A口、B口、C口

3、方式0的查詢方式應(yīng)用:

1)A口或B口作數(shù)據(jù)口

2)C口上部/下部各任選一條線分別作狀態(tài)線和控制(選通)線(其余仍可用著I/O線)209.2.38255工作方式

——方式05、方式0的主要特點:①A口、B口和C口均可以獨立作為單向輸入或輸出口,彼此沒有規(guī)定任何聯(lián)系。②輸出鎖存,輸入不鎖存。③主要用于同步數(shù)據(jù)傳送場合,CPU與外設(shè)之間不需聯(lián)絡(luò)信號,可實現(xiàn)3個通道數(shù)據(jù)傳送。④也可用于查詢式數(shù)據(jù)傳送,此時C口上下部分分別定義為輸入和輸出,用作A口和B口的狀態(tài)線和控制線。219.2.38255工作方式

——方式1二、方式1——選通I/O1、適用場合:查詢式或中斷方式I/O2、特點:需要PC口提供固定的應(yīng)答聯(lián)絡(luò)信號

3、可用端口:A口、B口

4、方式1端口I/O組態(tài)與時序:229.2.38255工作方式——方式1A口方式1輸入組態(tài):PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器地址同PC4數(shù)據(jù)選通信號,低電平有效,表示外設(shè)已將數(shù)據(jù)置入A口鎖存

輸入緩沖器滿信號,高電平有效,表示鎖存入A口的數(shù)據(jù)還未被CPU取走此信號(PC5)可作狀態(tài)信號供CPU查詢式輸入使用;其引出線(IBF)給外設(shè),外設(shè)視為CPU是否取走數(shù)據(jù)的狀態(tài)信號。中斷請求信號,高有效,請求CPU接收數(shù)據(jù)。當(dāng)STBIBFINTE為高時被置高。239.2.38255工作方式——方式1B口方式1輸入組態(tài):PC2PC1PC0PB7~PB0INTEAIBFAINTRASTBA中斷允許觸發(fā)器地址同PC2數(shù)據(jù)選通信號,低電平有效,表示外設(shè)已將數(shù)據(jù)置入B口鎖存輸入緩沖器滿信號,高電平有效,表示鎖存入B口的數(shù)據(jù)還未被CPU取走中斷請求信號,高有效,請求CPU接收數(shù)據(jù)。當(dāng)STBIBFINTE為高時被置高。此信號(PC1)可作狀態(tài)信號供CPU查詢式輸入使用;其引出線(IBF)給外設(shè),外設(shè)視為CPU是否取走數(shù)據(jù)的狀態(tài)信號。249.2.38255工作方式——方式1方式1輸入時序:datadataINTRIBF

輸入端口D0~D7STBRD259.2.38255工作方式——方式1方式1輸出組態(tài):PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKBPC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器地址同PC6外設(shè)響應(yīng)信號,低電平有效,表示外設(shè)已經(jīng)從8255取走數(shù)據(jù),輸出緩沖器滿信號,低電平有效,表示CPU已經(jīng)將數(shù)據(jù)輸出到指定端口。ACK可使其恢復(fù)為高。中斷請求信號,高電平有效,當(dāng)數(shù)據(jù)已被外設(shè)取走后,要求CPU輸出新的數(shù)據(jù)。WR上升沿使其復(fù)位。此信號(PC7/PC1)可作狀態(tài)信號供CPU查詢式輸出使用;其引出線(OBF)給外設(shè),外設(shè)視為CPU的狀態(tài)信號。269.2.38255工作方式——方式1方式1輸出時序:輸出端口

INTR

D0~D7WROBFACK

datadata279.2.38255工作方式——方式15、8255A方式1的特點:①方式1是一種配置固定應(yīng)答聯(lián)絡(luò)信號的選通輸入/輸出方式或叫應(yīng)答方式,這種方式通常用于查詢(條件)傳送或中斷傳送。數(shù)據(jù)的輸入輸出都有鎖存功能。②PA和PB為數(shù)據(jù)口,而PC口的大部分分配作專用(固定)的聯(lián)絡(luò)信號的C口引腳,用戶不能再指定作其他作用。③各聯(lián)絡(luò)信號線之間有固定的時序關(guān)系,傳送數(shù)據(jù)時,要嚴(yán)格按照時序進(jìn)行。④單向傳送。一次初始化只能設(shè)置在一個方向上傳送,不能同時作兩個方向的傳送。289.2.38255工作方式——方式2三、方式2及應(yīng)用——雙向選通I/O1、適用場合:查詢式或中斷方式I/O2、特點:

①需要PC口提供固定的應(yīng)答聯(lián)絡(luò)信號②各聯(lián)絡(luò)線的定義及其時序關(guān)系和壯態(tài)基本上是在1方式下輸入和輸出兩種操作的組合。

3、可用端口:A口

4、方式2端口I/O組態(tài)與時序:299.2.38255工作方式——方式21)方式2組態(tài)圖:PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6設(shè)置INTE1(輸出)用PC4設(shè)置INTE2(輸入)輸入和輸出中斷通過或門輸出INTRA信號309.2.38255工作方式——方式22)方式2時序圖:外設(shè)數(shù)據(jù)線tWOBtAOBtSTtSIBtPStADtKDtPHtRIBINTRIBFWROBFACKSTBRD數(shù)據(jù)從外設(shè)到8255A數(shù)據(jù)從8255A到外設(shè)數(shù)據(jù)從8255A到CPU數(shù)據(jù)從CPU到8255A318255應(yīng)用舉例1、設(shè)8255A的端口地址為60H~63H,試編寫下列各種情況的初始化程序: (1)將A組和B組設(shè)置為方式0,A口和C口味輸入口,B口為輸出口; (2)將A組設(shè)置為方式2,B組設(shè)置為方式1,B口為輸出口; (3)將A組設(shè)置為方式1,端口A為輸入,PC6和PC7輸出,B組設(shè)置為方式1,且B口為輸入口。例9-3應(yīng)用8255A方式0連接打印機(jī);初始化8255A,使A口處于方式0、輸出,C口高4位輸入、低4位輸出MOVAL,10001000BOUT63H,ALMOVAL,00000011BOUT63H,ALWAIT:INAL,62HANDAL,00100000BJNZWAITMOVAL,CLOUT60H,ALMOVAL,00000010BOUT63H,ALCALLDELAYMOVAL,00000011BOUT63H,AL

┋8255A打印機(jī)PA7~PA0PC1PC5DATA0~DATA7STROBEBUSY圖9-7方式0的打印機(jī)接口339.2.38255工作方式

——方式0及應(yīng)用2、方式0應(yīng)用舉例

例.并行打印機(jī)接口設(shè)計

1)要求為某應(yīng)用系統(tǒng)配置一個并行打印機(jī)接口,并且通過接口,CPU采用查詢方式把存放在BUF緩沖區(qū)的1行字符(ASCII碼)送去打印。

349.2.38255工作方式

——方式0及應(yīng)用

2)分析由于打印接口直接面向的對象是打印機(jī)接口標(biāo)準(zhǔn),而不是打印機(jī)本身,因此打印機(jī)接口要按照接口標(biāo)準(zhǔn)的要求進(jìn)行設(shè)計。有關(guān)打印機(jī)接口標(biāo)準(zhǔn)Centronics的信號線定義和工作時序如下圖:DATA0~DATA7STROBEBUSYACK字符35過程:采用查詢方式時,打印機(jī)與CPU之間傳送數(shù)據(jù)的過程是:①首先查詢BUSY。若BUSY=1,打印機(jī)忙,則等待;若BUSY=0,打印機(jī)不忙,則送數(shù)據(jù)。②通過并行接口把數(shù)據(jù)送給標(biāo)準(zhǔn)插座DATABIT1~DATABIT8

數(shù)據(jù)線上,此時數(shù)據(jù)并未送入打印機(jī)。③再送出一個數(shù)據(jù)選通信號DATASTROBE(負(fù)脈沖)給標(biāo)準(zhǔn)插座的1號引腳,把數(shù)據(jù)線上的數(shù)據(jù)打入到打印機(jī)的內(nèi)部緩沖器。④打印機(jī)在收到數(shù)據(jù)后,通過插座的11號引腳發(fā)出“忙”(BUSY=1)信號,表明打印機(jī)正在處理輸入的數(shù)據(jù)。⑤最后當(dāng)打印機(jī)將該字符打印后,在10號引腳上送出一個回答信號ACK給主機(jī),表示上一個字符已經(jīng)處理完畢,同時使BUSY=0。DATA0~DATA7STROBEBUSYACK字符369.2.38255工作方式

——方式0及應(yīng)用

3)設(shè)計接口電路的設(shè)計包括硬件接口電路和軟件驅(qū)動程序兩部分。

①打印機(jī)接口電路

打印機(jī)接口電路原理框圖如下圖所示。該電路的設(shè)計思路是:按照Centronicss標(biāo)準(zhǔn)對打印機(jī)接口信號線的定義,最基本的信號線需要8根數(shù)據(jù)線(DATABIT1~8),1根控制線(STB),1根狀態(tài)線(BUSY)和1根地線。CPU

PA0~7PC7PC0地

地BUSYSTBDATA0~71112~98255A打印機(jī)插座37選用8255A的PA口作數(shù)據(jù)口輸出8位打印數(shù)據(jù),工作方式為方式0;c口上半部輸出,下半部輸入。②接口驅(qū)動程序。其程序流程圖如右圖所示。驅(qū)動程序的程序段見下頁:9.2.38255工作方式

——方式0及應(yīng)用結(jié)束8255A初始化BUSY=0?送數(shù)送STB負(fù)脈沖內(nèi)存+1字節(jié)數(shù)-1送完?開始YNYN389.2.38255工作方式—方式0及應(yīng)用;設(shè)8255端口地址為90H~93H;-----------------------------DATA SEGMENT ;定義打印數(shù)據(jù)緩沖區(qū)BUFF DB ‘HELLO!’,0DH,0AHNUM EQU $-BUFF;打印字符個數(shù)DATA ENDS;----------------------------CODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;數(shù)據(jù)段基址DS賦初值

MOV DS,AX MOV AL,10000001B ;8255初始化

OUT 93H,AL MOV AL,00001111B ;先使PC7=1,即STB=1 OUT 93H,AL LEA SI,BUFF ;設(shè)置打印指針

MOV CX,NUM ;打印字符計數(shù)器賦初值399.2.38255工作方式

——方式0及應(yīng)用L:

INAL,92H;查BUSY=0?(PC0)

TESTAL,01H;00000001B

JNZL ;忙,則等待;不忙,則向A口送數(shù)

MOVAL,[SI];從緩沖區(qū)取1字符

OUT90H,AL;送到A口

MOVAL,00001110B;發(fā)打印機(jī)選通負(fù)脈沖

OUT 93H,AL ;使STB信號為低(PC7=0)

NOP MOVAL,00001111B;再使STB信號變高(PC7=1)

OUT 93H,AL409.2.38255工作方式——方式0及應(yīng)用

INCSI;打印指針加1 DECCX;打印字符數(shù)減1 JNZL;未完,繼續(xù)

MOVAX,4C00H;打印完返回DOS

INT21H CODE ENDS ENDSTART ;源程序結(jié)束419.2.38255工作方式——方式0及應(yīng)用例2試使用8255實現(xiàn)對74LS138的測試。G1Y0G2AY1G2BY2

74138

Y3CY4BY5AY6Y7

PA0~PA7PC6PC5PC48255APC2PC1PC0算法分析:依次從PC口輸出40H~47H,并分別從PA口讀入74LS138輸出狀態(tài)后,及時判斷相應(yīng)位應(yīng)為0,否則可判芯片壞。429.2.38255工作方式——方式0及應(yīng)用;測試74LS138程序段TST_138:MOVDX,303HMOVAL,10010000BOUTDX,ALMOVCX,8MOVAH,40HMOVBL,1TST0:MOVDX,302HMOVAL,AHOUTDX,ALMOVDX,300HINAL,DX439.2.38255工作方式——方式0及應(yīng)用;接上頁

ANDAL,BLJZISBADINCAHROLBL,1LOOPTST0……ISBAD:……449.2.38255工作方式——方式1及應(yīng)用3、8255方式1應(yīng)用舉例例1:若允許PA口輸入時,產(chǎn)生中斷請求,則必須設(shè)置INTEA=1,即置PC4=1;若禁止它產(chǎn)生中斷請求,則置INTEA=0,即置PC4=0,其程序段為:

MOVDX,303H;8255A命令口

MOVAL,00001010B;置PC4=1,允許中斷請求

OUTDX,AL

MOVAL,00001000B;置PC4=0,禁止中斷請求

OUTDX,AL例9-4應(yīng)用8255A工作在方式0和方式1進(jìn)行雙機(jī)并行通信。;甲機(jī)發(fā)送方的發(fā)送程序MOVAL,10100000BOUT63H,ALMOVAL,0DHOUT63H,ALTEST1:

INAL,DXANDAL,40HJNZTEST1MOVAL,CLOUT60H,AL;乙機(jī)接收方的接收程序MOVAL,10011000B OUT63H,ALMOVAL,01HOUT63H,ALRECEIVE:INAL,62HTESTAL,80HJNZRECEIVEINAL,60HMOVCL,ALMOVAL,00HOUT63H,ALCALLDELAYINCALOUT63H,AL

┇PA0~7PA0~7PC7PC7PC0PC6PC4~6PC1~3PB0~7PC0~5PB0~7PC38255A8255A0方式1方式乙(接收)CPU甲(發(fā)送)CPU未用OBFACK圖9-8兩種方式的并行傳送接口電路框圖469.2.38255工作方式——方式1及應(yīng)用例2在甲乙兩臺微機(jī)之間并行傳送1K字節(jié)數(shù)據(jù)。甲機(jī)發(fā)送,乙機(jī)接收。假設(shè)甲機(jī)要發(fā)送的數(shù)據(jù)存放在BUFS緩沖區(qū),乙機(jī)把接收到的數(shù)據(jù)存放到BUF緩沖區(qū)。甲機(jī)一側(cè)的8255A采用方式1工作,乙機(jī)一側(cè)的8255A采用方式0工作。兩機(jī)的CPU與接口之間都采用查詢方式交換數(shù)據(jù)。1.分析雙機(jī)均采用可編程并行接口芯片8255A構(gòu)成接口電路,此時,雙方的8255A把對方視為I/O設(shè)備。479.2.38255工作方式——方式1及應(yīng)用2.設(shè)計(1)硬件連接

根據(jù)上述要求,接口電路的連接如下圖:方式0方式18255APA0~7PC7PC3PC4~6PC0~2PB0~7PA0~7PC7PC6PC4~5PC0~3PB0~7未用8255A甲(發(fā)送)CPU乙(接收)CPUACKOBF489.2.38255工作方式——方式1及應(yīng)用(2)軟件編程

接口驅(qū)動程序包含發(fā)送與接收兩個程序。甲機(jī)發(fā)送程序段:MOVDX,303H;8255A命令口MOVAL,10100000B;初始化工作方式字OUTDX,ALMOVAL,0DH;置發(fā)送中斷允許INTEA=1OUTDX,AL;PC6=1MOVSI,OFFSETBUFS;設(shè)置發(fā)送數(shù)據(jù)區(qū)的指針MOVCX,1024;發(fā)送字節(jié)數(shù)MOVDX,300H;向A口寫第一個數(shù),產(chǎn)生第一個OBF信號MOVAL,[SI]OUTDX,AL499.2.38255工作方式——方式1及應(yīng)用

INCSI;內(nèi)存地址加1DECCX;傳送字節(jié)數(shù)減1L:MOVDX,302H;8255A狀態(tài)口,即C口

INAL,DX;查發(fā)送中斷請求INTRA=1?(PC3=1?)

ANDAL,08HJZL;若無中斷請求,則等待;若有中斷請求,則繼續(xù)向A口寫數(shù)

MOVDX,300H;8255APA口地址

MOVAL,[SI];從內(nèi)存取第二個數(shù)

OUTDX,AL;通過A口向乙機(jī)發(fā)送第二個數(shù)據(jù)

INCSI;內(nèi)存地址加1此處雖然使用了8255的INTR信號,但卻是查詢式傳送。也可以直接查詢PC7,即OBF信號。由接口圖可見,PC3并未連接中斷請求,此處為何“查詢”中斷請求?

509.2.38255工作方式——方式1及應(yīng)用

DECCX;字節(jié)數(shù)減1JNZL;字節(jié)未完,繼續(xù)

MOVAH,4000H;已完,退出

INT21H;返回

BUFSDB1024個數(shù)據(jù)51;乙機(jī)接收程序段:

MOVDX,303H;初始化8255MOVAL,10011000BOUTDX,ALMOVAL,00000111B;使PC3(ACK)=1

OUTDX,ALMOVCX,1024;接收數(shù)據(jù)循環(huán)次數(shù)初始化

LEABX,BUFWAIT:MOVDX,302H;讀狀態(tài)口,即C口

INAL,DXANDAL,80H;查詢OBF信號,甲已送出?

JNZWAIT52

MOVDX,300H;從A口接收數(shù)據(jù)

INAL,DXMOV[BX],AL;保存數(shù)據(jù)

MOVDX,303HMOVAL,00000110B;由PC3發(fā)ACK脈沖,先使PC3=0,再使PC3=1OUTDX,ALINCBXMOVAL,00000111BOUTDX,ALLOOPWAIT9.3串行通信的基本概念9.3.1串行數(shù)據(jù)傳送方式9.3.2波特率和發(fā)送/接收時鐘9.3.3串行通信的基本方式9.3.4信號調(diào)制與解調(diào)9.3.5串行接口的任務(wù)9.3.1串行數(shù)據(jù)傳送方式1.全雙工2.半雙工

1.全雙工當(dāng)數(shù)據(jù)的發(fā)送和接收分流,分別由兩根不同的傳輸線傳送時,通信雙方都能在同一時刻進(jìn)行發(fā)送和接收操作,這樣的傳送方式就是全雙工(FullDuplex)制。發(fā)送器發(fā)送器接收器接收器B站A站圖9-9全雙工方式示意圖2.半雙工若使用同一根傳輸線既作接收又作發(fā)送,雖然數(shù)據(jù)可以在兩個方向上傳送,但通信雙方不能同時收發(fā)數(shù)據(jù),這樣的傳送方式就是半雙工(HalfDuplex)制。

A站B站發(fā)送器發(fā)送器接收器接收器圖9-10半雙工方式示意圖57發(fā)送器接收器A站B站單工方式示意圖3.單工9.3.2波特率和發(fā)送/接收時鐘1.波特率2.發(fā)送/接收時鐘

并行通信中,傳輸速度以每秒傳輸?shù)淖止?jié)(B/s)表示。在串行通信中,傳輸速率用波特率來表示。所謂波特率,是指單位時間內(nèi)傳送二進(jìn)制數(shù)據(jù)的位數(shù),單位為位/秒(b/s)或稱為波特。每秒鐘所傳輸?shù)淖址麛?shù)(字符速率)和波特率是兩種概念

例:某系統(tǒng)每秒傳送120個字符(即字符速率為120個/秒),每個字符幀由1個起始位、8個數(shù)據(jù)位和1個停止位組成,則其傳送速率為:(1+8+1)×120=1200b/s=1200波特每一位的傳送時間(也叫寬度)為波特率的倒數(shù):

Td=1/1200=0.833ms1.波特率2.發(fā)送/接收時鐘發(fā)送端使用的用于決定數(shù)據(jù)位寬度的時鐘稱為發(fā)送時鐘。接收端使用的用于測定每一位輸入數(shù)據(jù)位寬度的時鐘稱為接收時鐘。波特率因子接收時鐘和發(fā)送時鐘的頻率可以是波特率的n倍,一般取16倍、32倍或64倍。這個倍數(shù)就稱為波特率因子?;蛘邚牧硗庖粋€角度來說,發(fā)送/接收1位數(shù)據(jù)(1個二進(jìn)制數(shù)據(jù)位)所需要的時鐘脈沖的個數(shù)就是波特率因子,單位是個/位。61接收/發(fā)送時鐘頻率與波特率的關(guān)系:

收/發(fā)波特率=收/發(fā)時鐘頻率/n

n波特率因子

=1,16,64(同步取n=1,異步常取n=16,64)9.3.3串行通信的基本方式1.異步通信2.同步通信

1.異步通信00/10/10/1…

0/10/10/111100/1起始位奇偶校驗位(可有可無)5~8位數(shù)據(jù)位(先送最低位)LSBMSB空閑位停止位(1,11/2或2位)第n個字符(8~12位)第n+1個字符圖9-11異步串行通信格式2.同步通信同步通信的特點是不僅字符內(nèi)部保持“同步”,而且字符與字符之間也是同步的。在這種通信方式下,收/發(fā)雙方必須建立準(zhǔn)確的位定時信號,也就是收/發(fā)時鐘的頻率必須嚴(yán)格地一致。同步通信在數(shù)據(jù)格式上也與異步通信不同,每個字符不增加任何附加位,而是連續(xù)發(fā)送。計算機(jī)通信是傳送數(shù)字信號,遠(yuǎn)程數(shù)據(jù)通信往往借用現(xiàn)有的公用電話網(wǎng),但電話網(wǎng)是為音頻模擬信號的設(shè)計的。一般帶寬為300~3400Hz,不適于數(shù)據(jù)信號。發(fā)送時,對數(shù)字信號調(diào)制,變?yōu)檫m合在電話網(wǎng)上傳輸相應(yīng)的音頻信號;接收時,解調(diào),還原數(shù)字信號。計算機(jī)MODEMMODEM模擬信號數(shù)字信號數(shù)字信號CRT101010101010調(diào)制和解調(diào)9.3.4信號調(diào)制與解調(diào)66調(diào)制器(Modulator)是一個波形變換器,它將基帶數(shù)字的波形變換成適合于模擬信道傳輸?shù)牟ㄐ?。解調(diào)器(Demodulator)是一個波形識別器,將接收到的調(diào)制后模擬信號恢復(fù)成原來的數(shù)字信號。調(diào)制器解調(diào)器01001001001067最基本的調(diào)制方法有以下幾種:(1)調(diào)幅(AM)即載波的振幅隨基帶數(shù)字信號而變化.“1”對應(yīng)有載波“0”對應(yīng)無載波(2)調(diào)頻(FM)

即載波頻率隨數(shù)字信號而變化“0”對應(yīng)”f1”“1”對應(yīng)“f2”(3)調(diào)相(PM)

即載波初始相位隨基帶數(shù)字信號而變化.“0”對應(yīng)相位0度“1”對應(yīng)相位180度f1f2FMAM0100110度180度PM調(diào)制方法:9.3.5串行接口的任務(wù)1.進(jìn)行串-并轉(zhuǎn)換2.實現(xiàn)串行數(shù)據(jù)格式化

3.可靠性檢驗

4.實施接口與通信設(shè)備之間的聯(lián)絡(luò)控制

9.4可編程串行接口8251A9.4.18251A的基本性能9.4.28251A內(nèi)部結(jié)構(gòu)及引腳功能9.4.38251A的控制字和狀態(tài)字9.4.48251A的初始化編程9.4.58251A應(yīng)用舉例9.4.18251A的基本性能1.通過初始化編程,可以工作在同步通信或異步通信方式。2.同步方式時,可設(shè)定為內(nèi)同步或外同步兩種做法,同步字符允許采用單同步字符和雙同步字符,由用戶選定。3.異步方式時,數(shù)據(jù)位仍可在5~8位范圍內(nèi)選用,用1位作為奇偶校驗位或不設(shè)置奇偶位。4.8251A具有奇偶校驗、幀校驗和溢出校驗三種字符數(shù)據(jù)的校驗方式,校驗位的插入、檢查和出錯標(biāo)志的建立均由芯片自動完成。5.8251A能與MODEM直接相連,接收和發(fā)送的數(shù)據(jù)均可存放在各自的緩沖器中,以便實現(xiàn)全雙工通信。

9.4.28251A內(nèi)部結(jié)構(gòu)及引腳功能8251A內(nèi)部結(jié)構(gòu)8251A引腳功能1.8251A內(nèi)部結(jié)構(gòu)RESET狀態(tài)緩沖器發(fā)送數(shù)據(jù)/命令緩沖器接收數(shù)據(jù)緩沖器外部數(shù)據(jù)總線內(nèi)部數(shù)據(jù)總線讀/寫控制邏輯調(diào)制控制發(fā)送器(P→S)發(fā)送(控制)接收(控制)接收器(S→P)CLKC/DRDCSWRTxDTxRDYTxETxCDTRDSRRTSCTSRxCRxCRxRDYSYNDET00001CSC/DRDWR0101×0011×1100×功能CPU從8251A讀數(shù)據(jù)CPU從8251A讀狀態(tài)CPU寫數(shù)據(jù)到8251ACPU寫命令到8251AUSART總線浮空(無操作)表9-28251A讀/寫操作CPU接收時CPU發(fā)送時2.8251A的引腳功能56789101112123428272625242322212019181714131615C/DRDWRCSTxCD4D7D6D5GNDRxDD3D2RxRDYD1D0Vcc(+5V)RxCDTRRTSDSRCTSRESETCLKTxDTxESYNDETTxRDY8251A9.4.38251A的控制字和狀態(tài)字1.方式控制字2.操作控制字3.狀態(tài)字

1.方式控制字D7D6D5D4D3D2D1D0

S2S1EPPENL2L1B2B1同步方式及同步字符個數(shù)×0:內(nèi)同步×1:外同步0×:2個同步字符1×:1個同步字符停止位位數(shù)00:不確定01:1位10:1.5位11:2位字符長度00:5位01:6位10:7位11:8位奇偶校驗×0:無校驗01:奇校驗11:偶校驗工作方式及波特率因子00:同步方式01:異步×110:異步×1611:異步×64Y(同步)N(異步)D1D0=00?圖9-138251A方式控制字格式2.操作控制字 發(fā)送允許 1,允許發(fā)送 0,屏蔽發(fā)送 數(shù)據(jù)終端準(zhǔn)備好 1。迫使DTR低電平 0,正常工作 接收允許 1,允許接收 0,屏蔽接收發(fā)中止字符1。迫使TxD為低電平0,正常工作D7D6D5D4D3D2D1D0

EHIRRTSERSBRKRxEDTRTxEN搜索同步字符1,啟動搜索同步字符0,不搜索同步字符內(nèi)部復(fù)位1。內(nèi)部軟復(fù)位以便重置方式控制字0,正常工作 請求發(fā)送 1.使RST低電平 0,正常工作 清除錯誤標(biāo)志 1.使?fàn)顟B(tài)寄存器中的 PE、OE、FE清零 0,正常工作圖9-14操作控制字格式3.狀態(tài)字圖9-15狀態(tài)字格式D7D6D5D4D3D2D1D0

DSRSYNDETFEOEPETxERxRDYTxRDY數(shù)傳機(jī)就緒同步檢出格式錯溢出錯奇偶錯發(fā)送器空接收準(zhǔn)備好發(fā)送準(zhǔn)備好4.CPU經(jīng)8251A與外設(shè)可靠收/發(fā)數(shù)據(jù)的條件可靠接收:

設(shè)置條件:控制寄存器中的DTR和RxE(D1、D2位=1)

等待條件:RxRDY引腳信號為高電平(中斷方式);或狀態(tài)寄存器中的RxRDY(D1為1)(查詢方式)。

檢錯條件:狀態(tài)寄存器中的PE、OE、FE位都為0才表明無錯誤。

可靠發(fā)送:

設(shè)置條件:控制寄存器中的TxEN及RTS(D0D5為1)。

等待條件:TxRDY引腳信號為高電平(用于中斷方式),或TxRDY(D0位為1)(查詢方式)例9-5,例9-6

例9-5串行通信時,在發(fā)送程序中,需查狀態(tài)字的D0位是否置1,即查TxRDY=1?其程序段為:L:MOVDX,309H

INAL,DXANDAL,01HJZL例9-6串行通信時,在接收程序中,需查狀態(tài)字的D1位是否置1,即查RxRDY=1?其程序段為:L1:MOVDX,309H

INAL,DXANDAL,02HJZL19.4.48251A的初始化編程例9-7例9-8例9-9RESET寫方式控制字異步方式?輸入第一個同步字符單同步?輸入第二個同步字符寫操作命令字RESET?串行傳送數(shù)據(jù)完成?NNNNYYYY例9-7編寫一段通過8251A采用查詢方式接收數(shù)據(jù)的程序。將8251A定義為異步傳送方式,波特率因子為64,采用偶校驗,1位停止位,7位數(shù)據(jù)位。設(shè)8251A數(shù)據(jù)口地址為04A0H,控制口地址為04A2H。

MOVDX,04A2HMOVAL,7BH;寫方式控制字

OUTDX,ALMOVAL,14H;寫操作控制字

OUTDX,ALWAIT:INAL,DX;讀入狀態(tài)字

ANDAL,02HJZWAIT;檢查RxRDY是否為1MOVDX,04A0HINAL,DX;輸入數(shù)據(jù)例9-8編寫使8251A發(fā)送數(shù)據(jù)的程序。將8251A定義為異步傳送方式,波特率因子為64。采用偶校驗,1位停止位,7位數(shù)據(jù)位。8251A與外設(shè)有握手信號,采用查詢方式發(fā)送數(shù)據(jù)。設(shè)8251A數(shù)據(jù)口地址為04A0H,控制口地址為04A2H。

MOVDX,04A2HMOVAL,7BH;寫方式控制字

OUTDX,ALMOVAL,31H;寫操作控制字

OUTDX,WAIT:INAL,DX;讀入狀態(tài)字

ANDAL,01H;檢查TxRDY是否為1JZWAITMOVDX,04A0HMOVAL,36H;輸出的數(shù)據(jù)送ALOUTDX,,AL┇例9-9編寫接收數(shù)據(jù)的初始化程序。要求8251A采用同步傳送方式,2個同步字符,內(nèi)同步,偶校驗,7位數(shù)據(jù)位和同步字符為16H。設(shè)8251A數(shù)據(jù)口地址為04A0H,控制口地址為04A2H。MOVDX,04A2H;控制口地址送DXMOVAL,38H;寫方式控制字MOVDX,ALMOVAL,16H;同步字符送ALOUTDX,ALOUTDX,AL;輸入兩個同步字符MOVAL,96H;寫操作控制字OUTDX,AL┇例9-10某系統(tǒng)中,8251作為8086CPU與CRT顯示器之間的接口芯片。設(shè)8251的數(shù)據(jù)端口為FFF0H,方式字和命令字狀態(tài)字的端口地址為FFF2H。假設(shè)通信方式為:異步方式,字符長度為8位,停止位為1位,不用奇偶校驗,波特率因子為64;設(shè)允許發(fā)送、允許接收和數(shù)據(jù)終端準(zhǔn)備好;并用查詢方式將寄存器CL中的ASCII字符送CRT顯示,試完成該異步通信程序。分析:根據(jù)題意,方式控制字為4FH(01001111B);命令控制字為27H(00100111B)。MOVDX,0FFF2HMOVAL,00HOUTDX,ALMOVAL,40HOUTDX,ALNOPMOVAL,4FHOUTDX,ALMOVAL,27HOUTDX,ALAGAIN:M

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論