




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1微機原理與接口技術(shù)2014年10月第8章可編程輸入/輸出接口2
微機系統(tǒng)的信息交換有并行通信和串行通信兩種方式。
并行通信是以微機的字長為傳輸單位;適合于外部設(shè)備與微機之間進(jìn)行近距離、大量和快速的信息交換。
實現(xiàn)并行通信的接口稱之為并行接口。
概述38.1可編程并行接口芯片8255A并行輸入/輸出端口A、B、C:8255A芯片具有24個可編程輸入輸出引腳,分成3個8位端口。
8.1.18255A的基本功能和內(nèi)部結(jié)構(gòu)41、8255A的內(nèi)部結(jié)構(gòu)和引腳信號(1)8255A內(nèi)部結(jié)構(gòu)8255A可編程外圍設(shè)備接口(ProgrammablePeripheralInterface,簡寫為PPI),其內(nèi)部結(jié)構(gòu)如圖所示。5圖8.18255A內(nèi)部結(jié)構(gòu)A組控制部件數(shù)據(jù)總線緩沖器讀/寫控制部件B組控制部件
RESETA0
A1
A組端口A8位A組A組端口C(高4位)
B組端口C(低4位)
8位B組端口BPA7~PA0
PC7~PC4
PC3~PC0
PB7~PB0
雙向D7~D0
CSWRRD68255A包括四大部分:數(shù)據(jù)總線緩沖器、讀寫控制部件、A組和B組控制部件、端口A、B、C。(1)并行輸入/輸出端口A、B、C包含3個8位輸入/輸出端口。每個端口都有一個數(shù)據(jù)輸入寄存器和一個數(shù)據(jù)輸出寄存器,輸入時端口有三態(tài)緩沖器的功能,輸出時端口有數(shù)據(jù)鎖存器功能。7端口A:包含一個8位數(shù)據(jù)輸出鎖存器和緩沖器和一個8位數(shù)據(jù)輸入鎖存器,輸入輸出數(shù)據(jù)均受到鎖存。端口B和C:都包含一個8位數(shù)據(jù)輸入緩沖器和一個8位的數(shù)據(jù)輸出鎖存器和緩沖器,輸出數(shù)據(jù)能鎖存,輸入數(shù)據(jù)不鎖存。8端口C:可分成兩個4位端口,分別定義為輸入或輸出端口,還可定義為控制、狀態(tài)端口,配合端口A和端口B工作。在實際應(yīng)用中C口的8位可分為兩個4位端口(方式0),也可以分成一個5位端口和一個3位端口(方式2)來使用。
9
輸入接口(數(shù)據(jù)部分)8255內(nèi)部數(shù)據(jù)總線接收來自外部的數(shù)據(jù)內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳鎖存控制鎖存器緩沖器DCDCDCQQQ選通10
如果外設(shè)送來的數(shù)據(jù)都是靜態(tài)數(shù)據(jù),接口可以簡化為緩沖器。緩沖器內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳選通11
輸出接口(數(shù)據(jù)部分)內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳鎖存控制DCQDCQDCQ讀數(shù)據(jù)鎖存器緩沖器12
如果送給外設(shè)的數(shù)據(jù)都是靜態(tài)數(shù)據(jù),接口可以簡化為鎖存器。內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳鎖存控制DCQDCQDCQ鎖存器13(2)A組和B組控制部件
A組A口:PA0~PA7
C口的高4位:PC4~PC7
B組
B口:PB0~PB7
C口的低4位:PC0~PC3
14A組,B組的控制寄存器,控制各端口的工作狀態(tài)和工作方式。A組,B組的控制寄存器還接收按位控制命令,以實現(xiàn)對PC口的按位置位/復(fù)位操作15(3)數(shù)據(jù)總線緩沖器三態(tài)雙向8位緩沖器,是8255A與CPU之間的數(shù)據(jù)接口。傳送輸入數(shù)據(jù)、輸出數(shù)據(jù)、控制命令字及狀態(tài)信息。16(4)讀/寫控制部件接收來自CPU地址總線信號和控制信號,并發(fā)出命令到兩個控制組(A組和B組)。CS:片選信號,接CPU高位地址的譯碼輸出WR:寫信號,WR有效,CPU向8255A寫入的控制或數(shù)據(jù)信息。RD:讀信號,RD有效,CPU讀8255A的數(shù)據(jù)或狀態(tài)17RESET:復(fù)位信號。RESET有效時,清8255A所有控制寄存器內(nèi)容,并將各端口置成輸入方式。182.8255A的引腳8255A采用40線雙列直插封裝,引腳圖如圖所示。圖8.28255A引腳定義4321403718
34......27D7
D0
A0
A1
RESETVCC
GND986535368255APPI數(shù)據(jù)總線控制線電源線通道A通道B通道CCPU接口外設(shè)接口.PA7
PA0
..PB7
PB0
...PC7
PC0
251415161713121110WRRDCS19*
PA7~PA0:A端口數(shù)據(jù)信號引腳*PB7~PB0:B端口數(shù)據(jù)信號引腳*
PC7~PC0:C端口數(shù)據(jù)信號引腳*D7~D0:
8255A的8位數(shù)據(jù)線20*A1~A0:
端口選擇信號
當(dāng)A1A0=00時
選擇端口A當(dāng)A1A0=01時
選擇端口B當(dāng)A1A0=10時
選擇端口C當(dāng)A1A0=11時
選擇控制端口21表8.18255A的讀寫操作控制
228255A共有兩個控制字:即工作方式控制字和對C口置位/復(fù)位控制字。1.控制字(1)工作方式控制字:控制字和各位的含義如圖所示。8.1.28255A的控制字及其工作方式23D7D6D5D4D3D2D1
D0B組
端口C(PC3~PC0)
1=輸入,
0=輸出
端口B
1=輸入,0=輸出
方式選擇
0=方式0,
1=方式1
A組
端口C(PC7~PC4)
1=輸入,
0=輸出
端口A
1=輸入,0=輸出
方式選擇
00=端口A方式0,
01=端口A方式1,1=端口A方式2
方式設(shè)置標(biāo)志
1=有效
圖8.38255A工作方式控制字格式24例:要把A口指定為方式1,輸入,C口上半部定為輸出;B口指定為方式0,輸出,C口下半部定為輸入,則工作方式命令字是10110001或B口B1HMOV DX,303H ;8255命令口地址MOV AL,0B1H ;初始化命令OUT DX,AL ;送到命令口25(2)端口C的置位/復(fù)位控制字控制字的格式如圖所示。圖8.48255A置位/復(fù)位控制字格式D7D6D5D4D3D2D1D0位的置位/復(fù)位
1=置位,0=復(fù)位位選擇
D3D2D1通道C位
按位置位/復(fù)位控制
標(biāo)志0=有效
000PC0
001PC1
010PC2
011PC3
100PC4
101PC5
110PC6
111PC7
不使用
設(shè)置為00026例:若要把C口的PC2引腳置成高電平輸出,則命令字應(yīng)該為00000101B或05hMOV DX,303H ;8255命令口地址MOV AL,05H ;使PC2=1的命令OUT DX,AL ;送到命令口27關(guān)于控制字要說明幾點:(1)設(shè)置方式控制字時,A口、B口作為整體設(shè)置,而C口要分成上、下兩部分分別設(shè)置。三個端口的工作方式由一個控制字規(guī)定。(2)C口按位置位/復(fù)位控制字不是送到C口地址,而是送到控制寄存器地址;且一個控制字只能使C口一位置位或復(fù)位。28(3)方式控制字和按位置位/復(fù)位控制字均寫入同一個控制寄存器地址,二者通過最高位D7來區(qū)別。D7=1為方式控制字,D7=0為按位置位/復(fù)位控制字。29(1)方式0——
基本輸入/輸出方式方式0是一種基本輸入輸出工作方式,它的24條I/O線可以全部都用作傳送數(shù)據(jù),不設(shè)置應(yīng)答信號線,常用于無條件傳送,輸出有鎖存,輸入只有緩沖能力而無鎖存功能。方式0控制字具體格式如圖8.5所示2.工作方式30圖8.58255A工作方式0控制字格式31工作方式0――簡單輸入/輸出――查詢方式;A,B,C三個端口均可。
三態(tài)緩沖器地址譯碼器&數(shù)據(jù)來自外設(shè)88IO/MRD數(shù)據(jù)總線地址總線方式0輸入(INAL,PORT)框圖32
方式0輸出(OUTPORT,AL)框圖鎖存器到外設(shè)88IO/MWR地址譯碼器數(shù)據(jù)總線地址總線&CE33
由控制字中D4D3D1D0等4位的不同取值可定義方式0的16種工作方式的組合如表8.2所示。
方式0中,端口C被分成兩個4位端口,它們可被定義為輸入或輸出端口,CPU與3個端口之間交換數(shù)據(jù),可直接由CPU執(zhí)行IN和OUT指令來完成。34表8.2方式0的工作狀態(tài)組合序號控制字
D7,…,D0A組B組端口A端口C
高4位(PC7~PC4)端口B端口C
低4位(PC3~PC0)110000000輸出輸出輸出輸出210000001輸出輸出輸出輸入310000010輸出輸出輸入輸出410000011輸出輸出輸入輸入510001000輸出輸入輸出輸出610001001輸出輸入輸出輸入710001010輸出輸入輸入輸出810001011輸出輸入輸入輸入910010000輸入輸出輸出輸出1010010001輸入輸出輸出輸入1110010010輸入輸出輸入輸出1210010011輸入輸出輸入輸入1310011000輸入輸入輸出輸出1410011001輸入輸入輸出輸入1510011010輸入輸入輸入輸出1610011011輸入輸入輸入輸入35(2)工作方式1——選通式輸入/輸出方式①方式1選通輸入方式1操作使端口A或端口B作為鎖存輸入設(shè)備工作。端口C也可按方式1操作使用——但不是對數(shù)據(jù),而是對控制信號,或當(dāng)端口A或端口B為選通輸入端口時的握手信號。下圖示出8255A方式1選通輸入時的內(nèi)部結(jié)構(gòu)圖。36IBF:輸入緩沖器滿信號,STB#下降沿8255向外設(shè)輸出IBF信號,表示輸入緩沖器滿,高電平有效。STB:選通信號。外設(shè)準(zhǔn)備好數(shù)據(jù)發(fā)送STB#,低電平有效。37INTR:中斷請求信號,高電平有效。STB#上升沿使INTR從無效到有效,請求CPU讀數(shù)據(jù)。CPU接到INTR,讀數(shù)據(jù)發(fā)送RD#,RD#下降沿變INTR有效為無效,表示已經(jīng)得到響應(yīng),RD#上升沿使IBF滿變?yōu)椴粷M,表示數(shù)據(jù)已經(jīng)讀走。INTE:中斷允許信號,它是通過端口PC4(端口A)或PC2(端口B)的位來編程的內(nèi)部位。38時序:外設(shè)準(zhǔn)備好數(shù)據(jù)發(fā)送STB#STB#下降沿使IBF不滿到滿STB#上升沿使INTR從無效到有效CPU接到INTR,讀數(shù)據(jù)發(fā)送RD#RD#下降沿變INTR有效為無效RD#上升沿使IBF滿變?yōu)椴粷M39
方式1下輸入端口的聯(lián)絡(luò)信號1011A口方式1輸入控制字PA7~PA0PC4PC5PC3INTEAPC4與門IBFASTBAINTRARDD7~D0A口方式1輸入時相應(yīng)的聯(lián)絡(luò)信號111B口方式1輸入控制字B口方式1輸入時相應(yīng)的聯(lián)絡(luò)信號PB7~PB0PC2PC1PC0INTEBPC2與門RDD7~D0IBFBSTBBINTRB40②方式1選通輸出當(dāng)端口A或端口B為方式1輸出時,各指定PC的3條線作為8255A與外設(shè)及CPU之間應(yīng)答信號。下圖為方式1選通輸出操作的內(nèi)部結(jié)構(gòu)圖。41
圖8.9方式1輸出控制字格式
42OBF:輸出緩沖器滿信號。當(dāng)CPU向8255寫入數(shù)據(jù)后,8255向外設(shè)輸出的信號,表示讓外設(shè)來讀數(shù)據(jù)。低電平有效。ACK:
外設(shè)應(yīng)答信號。該信號的下降沿使OBF置高,表示輸出緩沖器空,低電平有效.當(dāng)外設(shè)讀取數(shù)據(jù)以后,由外設(shè)輸入給8255,表示數(shù)據(jù)已經(jīng)收到43INTE:中斷允許信號。在中斷允許情況下,ACK的上升沿使INTR有效,請求寫入下一個數(shù)據(jù)。INTR:中斷請求信號。寫信號的下降沿使INTR引腳無效,表示CPU正在響應(yīng)中斷,高電平有效。44方式1輸出時序:WR#上升沿使OBF#有效,表示輸出緩沖器已滿,通知外設(shè)讀取數(shù)據(jù)WR#使中斷請求INTR變低,封鎖中斷請求當(dāng)外設(shè)讀取數(shù)據(jù)后,ACK#下降沿表示數(shù)據(jù)已收到,將OBF#置高,使OBF#無效,表示輸出緩沖器變空。在INTE=1中斷允許情況下,ACK#上升沿使INTR變高,產(chǎn)生中斷請求,寫入下一個數(shù)據(jù)。45工作方式1――選通輸入/輸出――中斷方式;A,B,兩個端口均可。
110B口方式1輸出控制字PB7~PB0PC2PC1PC0INTEBPC2與門WRD7~D0OBFBACKBINTRB1010A口方式1輸出控制字PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D046(3)工作方式2——雙向選通輸入/輸出方式方式2只允許A組采用,此時端口A變?yōu)殡p向,允許數(shù)據(jù)在同一組8條線上發(fā)送和接收。下圖示出方式2操作內(nèi)部結(jié)構(gòu)圖。47工作方式2――雙向輸入/輸出――中斷方式。只有A端口才有。
PA7~PA0PC6PC7ACKAOBFAD7~D0RDWRPC4PC5STBAIBFAINTEA1PC4INTEA2PC6與門PC3INTRA或門與門48圖8.10端口A方式2控制字
49OBFA:輸出緩沖器滿信號,向外設(shè)輸出,低電平有效。ACKA:應(yīng)答信號,由外設(shè)輸入,低電平有效。STBA:
數(shù)據(jù)選通輸入信號。由外設(shè)輸入,低電平有效。5051IBFA:輸入緩沖器滿信號,向外設(shè)輸出,高電平有效。INTE:中斷允許信號(INTE1和INTE2)。高電平有效。INTRA:中斷請求信號,高電平有效。52
8255A中端口A工作方式2時,允許端口B工作于方式0或方式1,完成輸入/輸出功能。4種組合狀態(tài)及其工作方式控制字格式如表8.3。
53表8.3方式2的組合狀態(tài)與控制字格式54
8255A中端口A工作方式2時,端口B工作于方式1時,設(shè)置完方式控制命令字后,讀端口C則可得到如下方式2狀態(tài)字。OBFA,INTE1,IBFA,INTE2,INTRA,INTEB,IBFB,INTRB55
目前打印機一般采用并行接口標(biāo)準(zhǔn),其主要信號與傳送時序如圖8.15。打印機接收主機傳送數(shù)據(jù)的過程是這樣的:8.28255A的應(yīng)用實例8.2.18255A與打印機接口1、用方式1與打印機接口56
當(dāng)主機準(zhǔn)備好輸出打印的一個數(shù)據(jù)時,通過8255A把數(shù)據(jù)送給打印機接口的數(shù)據(jù)引腳DATA0~DATA7,同時送出一個數(shù)據(jù)選通信號STROBE
給打印機。打印機收到該信號后,把數(shù)據(jù)鎖存到內(nèi)部緩沖區(qū),同時在BUSY信號線上發(fā)出忙信號。待打印機處理好輸入數(shù)據(jù)時,打印機撤消忙信號,同時向主機送出一個響應(yīng)信號ACK。主機根據(jù)BUSY信號或信號ACK決定是否輸出下一個數(shù)據(jù)。57
用方式1與打印機接口
8255A的端口A工作于選通輸出方式,PC7作為OBFA輸出信號,PC6作為ACKA
輸入信號,而PC3作為INTRA輸出信號;另外,可用程序控制INTEA(PC6),決定是否采用中斷方式。打印機接口的時序與8255A的選通輸出方式的時序類似,但略有差別,用單穩(wěn)電路74LS123即可滿足雙方的時序要求,見圖8.16。58圖8.16方式1的打印機接口
59
假設(shè)8255A的A、B、C口的I/O地址為F008H、F00AH和F00CH。控制端口的地址為F00EH。以下為采用選通方式輸出緩沖區(qū)BUF中的打印字符的子程序,輸出的字節(jié)數(shù)為M。60PRINTPROCPUSHAX;保護(hù)寄存器
PUSHBXPUSHCXPUSHDXMOVDX,0F00EH;設(shè)定A口為選通輸出方式
MOVAL,0A0HOUTDX,ALMOVAL,0CH;使INTEA(PC6)為0,禁中斷
OUTDX,ALMOVCX,M;打印字節(jié)數(shù)送CX61MOVBX,OFFSETBUF;取緩沖區(qū)首址送BX
PRINT1:MOVAL,[BX];取一個數(shù)據(jù)
MOVDX,0F008H
OUTDX,AL;從A口輸出
MOVDX,0F00CH
PRINT2:INAL,DX;讀C口
TESTAL,80H;檢測OBFA(PC7)
;為1否?
62JZPRINT2;為0,則繼續(xù)檢測
INCBX;為1,說明數(shù)據(jù)已輸出
LOOPPRINT1;準(zhǔn)備取下一個數(shù)據(jù)輸出
POPDX;打印結(jié)束,恢復(fù)寄存器
POPCXPOPBXPOPAXRET;返回PRINTENDP63七段數(shù)碼管七段數(shù)碼管組成原理圖如后圖所示。七段數(shù)碼管根據(jù)其連接方式可分為:共陽極LED:公共端應(yīng)接高電平(或+5v)共陰極LED:公共端應(yīng)接地例2:LED顯示器原理及接口技術(shù)
64
LED七段顯示器及其接口
在常用的七段顯示器內(nèi),各個LED可按共陽極或共陰極連接。它們應(yīng)分別用不同的段碼,經(jīng)不同的驅(qū)動電路來驅(qū)動。65共陰極
共陽極
共陰極
共陽極(a)七段LED原理圖
圖(b)“米”字LED原理圖
圖
典型LED器件原理圖LED顯示器原理及接口技術(shù)(續(xù))
66給數(shù)碼管的每個輸入端(a,b,c,……,h)提供適當(dāng)電平,使某幾段發(fā)光二極管亮,而另外幾段不亮,則可顯示出數(shù)字或字母。八個輸入端組成的二進(jìn)制編碼(簡稱段碼或段選碼)所對應(yīng)的顯示內(nèi)容見后表。LED顯示器原理及接口技術(shù)67表
七段LED字型碼
LED顯示器原理及接口技術(shù)68LED數(shù)碼管在微機系統(tǒng)中的應(yīng)用
圖
LED在系統(tǒng)中的連接
69常用于LED的驅(qū)動器:7407/7406同向/反向驅(qū)動器,75452二輸入與非驅(qū)動器。鎖存器可用74LS273/373、74LS244等集成電路。系統(tǒng)中有多位LED,則每次只能使一位LED顯示信息,每位LED上有一選通端(公共端)。要想使哪位顯示,就應(yīng)給其公共端提供有效電平(共陽極為“1”,公陰極為“0”),而其它位的公共端提供無效電平。這樣構(gòu)成的二進(jìn)制編碼稱為位碼或位選碼。動態(tài)顯示:在多位LED顯示中,即要使每一位的顯示信息有一個持續(xù)時間,可用循環(huán)延時程序?qū)崿F(xiàn),又要保證一遍一遍地進(jìn)行循環(huán)顯示時不出現(xiàn)閃爍,在軟、硬件設(shè)計時就要考慮LED的位數(shù)不能太多,顯示的延時要適中。
LED數(shù)碼管在微機系統(tǒng)中的應(yīng)用70例
某8088系統(tǒng)中,使用8位LED顯示時間,格式為時-分-秒,硬件連接如圖所示,軟件流程圖見后圖。
LED數(shù)碼管在微機系統(tǒng)中的應(yīng)用71圖
軟件流程圖
72思考題一、單項選擇題1.8255A的PA口工作在方式2,PB口工作在方式1時,其PC端口()。
A.用作兩個4位I/O端口
B.部分引腳作聯(lián)絡(luò),部分引腳作I/OC.全部引腳均作聯(lián)絡(luò)信號
D.作8位I/O端口,引腳都為I/O線
分析:8255A的PA口工作于方式2,指定PC口的PC3~PC7為聯(lián)絡(luò)信號線,若PB口同時工作于方式1,指定PC0~PC2為聯(lián)絡(luò)信號線。因此,PC端口全部用于PA口與PB口的聯(lián)絡(luò)信號。答:C732.如果8255A的PA口工作于方式2,PB口可工作于哪種工作方式()。A.方式OB.方式1C.方式2D.方式0或方式1
分析:如第1題所分析的,PA口工作于方式2后,PC口的PC0~PC2可用作PB口方式1的聯(lián)絡(luò)信號,同時PB口也可工作于方式0的無條件傳送。答:D743.當(dāng)8255A的PA口工作在方式1的輸入時,對PC4置位,其作用是()。A.啟動輸入B.開放輸入中斷C.允許輸入D.停止輸入
分析:8255A的PA口工作在方式1時,PC4=1用來設(shè)置輸入時的“開中斷”。答:B.754.在甲乙兩臺微機之間進(jìn)行傳送1K字節(jié)數(shù)據(jù)。甲機發(fā)送,乙機接收。甲機的8255采用方式1,乙機的8255采用方式0.兩機的CPU與接口之間采用查詢方式交換數(shù)據(jù)。分析:甲機PA口方式1,輸出,PC7和PC6作為OBF和ACK。乙機PA口方式0,輸入,選擇PC4和PC0作為聯(lián)絡(luò)信號,PC4輸入PC0輸出76甲機發(fā)送程序MOVDX,303H;8255命令口MOVAL,10100000B;端口A方式1,輸出OUTDX,AL;輸出方式字MOVAL,0DH;置發(fā)送中斷允許INTEA=1OUTDX,AL;PC6=1MOVAX,030H;發(fā)送數(shù)據(jù)的首地址MOVES,AXMOVBX,00HMOVCX,3FFH;發(fā)送字節(jié)數(shù)MOVDX,300H;數(shù)據(jù)口地址MOVAL,ES:[BX];取第一個發(fā)送數(shù)據(jù)OUTDX,AL;寫第一個數(shù),產(chǎn)生第一個OBF信號INCBX;指向下一個數(shù)DECCX;字節(jié)數(shù)-1L:MOVDX,302H;8255狀態(tài)口INAL,DX;輸入狀態(tài)ANDAL,08H;檢查有無INTRA,也可以檢查發(fā)送緩沖器滿OBF位PC7的狀態(tài)JZL;若無中斷請求則等待MOVDX,300H;置數(shù)據(jù)口地址MOVAL,ES:[EBX];取數(shù)據(jù)OUTDX,AL;輸出INCBXDECCXJNZL;未發(fā)送完,循環(huán)MOVAX,4C00HINT21H;發(fā)送完,返回DOS78乙機接收程序MOVDX,303H;8255命令口MOVAL,10011000B;端口A方式0,輸入OUTDX,AL;輸出方式字MOVAL,00000001B;PC0置1控制字OUTDX,AL;輸出使ACK=1MOVAX,040H;接收數(shù)據(jù)的首地址MOVES,AXMOVBX,00HMOVCX,3FFH;發(fā)送字節(jié)數(shù)L1;MOVDX,302H;PC口地址INAL,DX;查甲機的OBF=0?(PC4=0?)ANDAL,10H;JNZL1;無數(shù)據(jù),等待MOVDX,300H;8255數(shù)據(jù)口地址INAL,DX;輸入數(shù)據(jù)MOVES:[BX],AL;存入內(nèi)存MOVDX,303H;MOVAL,00000000B;pc0=0OUTDX,AL;產(chǎn)生ACK信號NOPNOPMOVAL,00000001B;pc0=1OUTDX,AL;ACK變高INCBX;指向下一個數(shù)DECCX;字節(jié)數(shù)-1JNZL1;未接收完,循環(huán)MOVAX,4C00HINT21H;接收完,返回DOS80
8.3串行通信的基本概念通信:計算機與外部設(shè)備之間、計算機之間的信息交換。通信的基本方式并行通信串行通信異步通信同步通信8.3.1串行通信的連接方式81圖8.17串行通信的3種連接方式發(fā)送器A發(fā)送器接收器發(fā)送器接收器發(fā)送器接收器接收器發(fā)送器接收器B數(shù)據(jù)線(a)單工方式數(shù)據(jù)線AB(c)全雙工方式數(shù)據(jù)線數(shù)據(jù)線AB(b)半雙工方式828.3.2信號的調(diào)制與解調(diào)
MODEM是由調(diào)制器和解調(diào)器合在一起形成的一個裝置,以用作雙向通信。MODEM的類型一般可分為幅移鍵控(ASK)、頻移鍵控(FSK)和相移鍵控(PSK)等。當(dāng)通信波特率小于300bit/s時,常采用FSK調(diào)制方式。把數(shù)字信號1與0調(diào)制成不同頻率的模擬信號,頻率較高的模擬信號為1。838.3.3同步與異步通信方式1.異步通信方式(ASYNC)第n+1個字符第n個字符空閑位起始位停止位7位數(shù)據(jù)位空閑位起始位011110D0D1D2D3D4D5D6圖8.18異步通信字符格式84
異步通信方式的特點是:
(1)起始位:一位,邏輯0,表示字符的開始;
通信時以收發(fā)一個字符為獨立的通信單位,每個字符由4個部分組成:(2)數(shù)據(jù)位:可以是5~8位邏輯0/邏輯1,與雙方約定的編碼形式有關(guān),如:ASCII碼(7位),擴展的BCD碼(8位)等,起始位之后緊跟著的是數(shù)據(jù)的最低位D0。
(3)奇/偶校驗位:一位邏輯0/邏輯1。
(4)停止位:1位或1.5位或2位邏輯1,表示字符的結(jié)束。
852.同步通信方式(SYNC)
在異步通信中,每個字符都要用起始位和停止位來使通信雙方同步,這些附加的額外信息,使得異步通信的傳輸效率不高。在需傳輸大量數(shù)據(jù)的場合,為提高傳輸效率和速度,常去掉這些附加位,即采用同步通信SYNC(SynchronousdataCommunication)
同步字符數(shù)據(jù)塊CRC1
CRC2
同步字符2數(shù)據(jù)塊CRC1
CRC2
同步字符1a.單同步格式b.雙同步格式86
同步通信方式的特點是:③為了防止因收、發(fā)雙方的時鐘頻率的偏差的積累效應(yīng)而產(chǎn)生錯位,從而導(dǎo)致通信出錯,同步通信要求接收和發(fā)送的時鐘完全同步,不能有誤差。實際應(yīng)用中,同步傳送常在收、發(fā)雙方間使用同一時鐘,故硬件電路比較復(fù)雜。②對每個字符的檢錯一般可用奇校驗,數(shù)據(jù)塊的末尾用CRC(循環(huán)冗余碼)對整個數(shù)據(jù)塊進(jìn)行校驗。①收、發(fā)雙方以一個或兩個預(yù)先約定的同步字符作為數(shù)據(jù)塊傳送的開始,數(shù)據(jù)塊由幾十到幾千,甚至更多字節(jié)組成。878.3.4波特率與收/發(fā)時鐘1.波特率
計算機串行通信中常用波特率(Baudrate)來表示數(shù)據(jù)傳輸率,波特率的單位是bit/s,即每秒所傳送的二進(jìn)制位數(shù)。常用的標(biāo)準(zhǔn)值有110,300,600,1200,2400,4800,9600,19200波特等。
某異步通信中每秒傳送960個字符,而每個字符由10位(1個起始位、7個數(shù)據(jù)位、1個奇校驗位、1個停止位)組成,則傳送的波特率為:fd=10×960bit/s=9600bit/s
傳送一位的時間Td=1/9600=0.104ms
例如:
88
2.接收/發(fā)送時鐘
異步通信中,大多數(shù)串行端口發(fā)送和接收的波特率均可分別設(shè)置,由發(fā)送器和接收器各用一個時鐘來確定,分別稱為發(fā)送時鐘和接收時鐘。為了有利于收發(fā)雙方同步,以及提高抗干擾的能力,這兩個時鐘頻率fc一般不等于波特率fd,兩者之間的關(guān)系為:fc=kfd其中,k稱為波特率系數(shù),其取值可為16或64。
89(1)發(fā)送脈沖和接收脈沖發(fā)送:發(fā)送方要靠發(fā)送脈沖(移位脈沖)下降沿將數(shù)據(jù)移出,經(jīng)TXD引腳→對方接收:接收方要靠接收脈沖(移位脈沖)上升沿將數(shù)據(jù)接入,經(jīng)RXD引腳→串口入出QQQQCP1100100190注意:接收時鐘的上升沿對準(zhǔn)數(shù)據(jù)位的中間位置,以保障可靠的接收數(shù)據(jù)移位脈沖的頻率=波特率發(fā)送方與接收方實現(xiàn)同步,隨著數(shù)據(jù)的不斷傳輸,將產(chǎn)生一個誤差積累,有可能使數(shù)據(jù)丟失!如:有1數(shù)據(jù)35H=00110101發(fā)送脈沖→利用下降沿→利用上升沿接收脈沖思考題:異步通信中,如何實現(xiàn)同步的?91(2)檢驗脈沖
接收方需對發(fā)送方發(fā)來的數(shù)據(jù)位進(jìn)行檢測,以決定“0”還是“1”
通常檢測脈沖是移位脈沖的16和64倍(常選16),在每一個時鐘脈沖上升沿采樣接收數(shù)據(jù)線,若發(fā)現(xiàn)第一個0,以后又連續(xù)采樣到8個0,則確定他為起始位(不是干擾信號),以后每隔16個時鐘脈沖采樣一次數(shù)據(jù)線,作為輸入數(shù)據(jù)。三中取二目的:①抑制干擾;②提高信號的傳輸可靠性,因為采樣信號總是在每個接收位的中間位置,不僅可以避開信號兩端的邊沿失真,也可防止接收時鐘頻率和發(fā)送時鐘頻率不完全同步引起的接收錯誤92
8.4串行通信的接口標(biāo)準(zhǔn)
一個完整的串行通信系統(tǒng)除了對上一節(jié)所介紹的通信規(guī)程有所規(guī)定外,還必然會涉及到在電氣連接上的接口標(biāo)準(zhǔn)問題。標(biāo)準(zhǔn)化的通用總線結(jié)構(gòu)能使系統(tǒng)結(jié)構(gòu)化、模塊化,大大簡化系統(tǒng)軟、硬件設(shè)計的工作,因此被普遍采用。本節(jié)介紹目前常用的有代表性的一種串行接口標(biāo)準(zhǔn)。
938.4.1RS-232C接口標(biāo)準(zhǔn)RS-232C是串行異步通信中應(yīng)用最廣的串行總線標(biāo)準(zhǔn),1969年由美國EIA(電子工業(yè)協(xié)會)頒發(fā),其中RS是RecommendedStandard的編寫,232是標(biāo)準(zhǔn)的標(biāo)識號。RS-232C的前身是RS-232A和RS-232B,這前兩種接口標(biāo)準(zhǔn)現(xiàn)在已很少使用。RS-232C主要用于使用模擬信道傳輸數(shù)字信號的場合,推出這種標(biāo)準(zhǔn)的最初目的是在數(shù)據(jù)終端設(shè)備DTE(DataTerminalEquipment)與數(shù)據(jù)通信設(shè)備DCE(DataCommunicationEquipment)之間建立接口標(biāo)準(zhǔn)。
RS-232C的典型應(yīng)用如圖8.16所示。
94計算機串
行
接
口UART調(diào)制解調(diào)器ModemDTEDCE控制發(fā)送接收調(diào)制解調(diào)器Modem串
行
接
口UART計算機控制接收發(fā)送···
DTEDCERS-232CRS-232C電話線圖8.19RS-232C的典型應(yīng)用95
1.機械特性
RS-232C采用25腳D型連接器(含插頭/插座)作為DTE與DCE之間通信電纜的連接口,但在實際進(jìn)行異步通信時,只需9個信號即夠用,因此也可以采用9腳D型連接器。
2.電氣特性
RS-232C采用負(fù)邏輯工作,即:邏輯“1”用負(fù)電平表示,有效電平范圍是-3V~-15V
邏輯“0”用正電平表示,有效電平范圍是+3V~+15V
-3V~+3V為過渡區(qū),邏輯狀態(tài)不定,為無效電平。
96引腳號信號名稱縮寫傳送方向與功能說明25腳9腳23發(fā)送數(shù)據(jù)TXDDTEDCE輸出數(shù)據(jù)到Modem32接收數(shù)據(jù)RXDDTEDCE由Modem輸入數(shù)據(jù)47請求發(fā)送RTSDTEDCEDTE請求發(fā)送數(shù)據(jù)58清除發(fā)送CTSDTEDCEModem表明同意發(fā)送66數(shù)據(jù)傳輸就緒DSRDTEDCE表明Modem已準(zhǔn)備就緒75信號地GND無方向所有信號的公共地線81載波檢測DCDDTEDCEModem正在接收載波信號204數(shù)據(jù)終端就緒DTRDTEDCE通知ModemDTE已準(zhǔn)備好229振鈴指示RIDTEDCE表明Modem已收到撥號呼叫3.引腳信號定義
表8.4RS-232C主信道引腳信號97①數(shù)據(jù)線:TXD(TransmittedData):發(fā)送數(shù)據(jù),DTE通過TXD將串行數(shù)據(jù)發(fā) 送到Modem。RXD(ReceivedData):接收數(shù)據(jù),DTE通過RXD接收從Modem來的 串行數(shù)據(jù)。
98②發(fā)送控制信號線:RTS(RequesttoSend):用來表示DTE請求DCE發(fā)送數(shù)據(jù)。CTS(CleartoSend):用來表示DCE已準(zhǔn)備好,可以為DTE發(fā)送數(shù)據(jù),此信號是對RTS的響應(yīng)信號。
RTS/CTS是一對握手聯(lián)絡(luò)信號,用于采用Modem的半雙工系統(tǒng)中作發(fā)送/接收方式之間的切換。99
③接收控制信號線:DSR(DatacommunicationequipmentSetReady):表示Modem已準(zhǔn)備就緒DTR(DataTerminalReady):DTE用來通知Modem,已準(zhǔn)備就緒,可以接收數(shù)據(jù)。100DCD(DataCarrierDetection):用來表示Modem正在接收來自對方Modem的載波信號,通知DTE準(zhǔn)備接收數(shù)據(jù)。RI(RingingIndicator):通知DTE、Modem已收到電話交換機送來的振鈴呼叫信號,使用公用電話線時要用此信號。
1014.信號線的連接
(1)遠(yuǎn)距離時的連接計算機串
行
接
口UART調(diào)制解調(diào)器ModemTXDRXD調(diào)制解調(diào)器Modem串
行
接
口UART計算機···
電話線圖8.20采用Modem時RS-232C信號線的使用
RTSCTSDSRDTRDCDRIGNDTXDRTSCTSDSRDTRDCDRIGNDRXD102(2)近距離時的連接近距離(少于15m)通信時,可不采用調(diào)制解調(diào)器Modem(亦稱為零Modem方式)。
GNDRXDTXDTXDRXD
計
2算
3機
7UART
3計2算7機UARTCTSDSRDTRDCDRTSGNDDSRDTRDCDCTSRTSTXDRXDRXDTXD2計34算58機206732計45算820機67圖8.21無Modem方式的最簡單連接(b)(a)1035.EIA-RS-232C與TTL相互轉(zhuǎn)換
如上所述,RS-232C是用正負(fù)電平來表示邏輯狀態(tài),而計算機內(nèi)部電路所采用的TTL標(biāo)準(zhǔn)是用高低電平表示邏輯狀態(tài),顯然為了讓計算機能利用RS-232C與外界連接,則必須在RS-232C與TTL電路之間進(jìn)行電平轉(zhuǎn)換,實現(xiàn)這種轉(zhuǎn)換的電路,可以采用分立元件或集成電路芯片。
104TTL
輸入RS-232C輸出74LS0410K10K10KT1T21K
-12V
+5V
圖8.22TTL→RS-232C的電平轉(zhuǎn)換電路105圖8.23RS-232C→TTL的電平轉(zhuǎn)換電路TTL
輸出RS-232C輸入10K1KT1+5V
106圖8.24利用MC1488/MC1489的TTL→RS-232C電平轉(zhuǎn)換
計算機串
行
接
口UARTMC
1488MC
1489RS-232C
連
接
器23TXDRXD+12V-12V+5V107
8.58251可編程串行接口芯片
8.5.1.8251A的特點和內(nèi)部結(jié)構(gòu)
Intel8251A是可編程的串行通信接口芯片,它的主要特點如下:①可用于串行異步通信,也可用于串行同步通信。②對于異步通信,可設(shè)定停止位為1位、1位半或2位,數(shù)據(jù)位可在5-8位之間選擇。③對于同步通信,可設(shè)為單同步、雙同步或者外同步,同步字符可由用戶自己設(shè)定。④異步通信的時鐘頻率可設(shè)為波特率的1倍、16倍或64倍。108⑤可以設(shè)定奇偶校驗的方式,也可以不校驗。校驗位的插入、檢出及檢錯都由芯片本身完成。⑥在異步通信時,波特率的可選范圍為0~19.2千波特;在同步通信時,波特率的可選范圍為0~64千波特。⑦提供與外部設(shè)備特別是調(diào)制解調(diào)器的聯(lián)絡(luò)信號,便于直接和通信線路相連接。⑧接收、發(fā)送數(shù)據(jù)分別有各自的緩沖器,可以進(jìn)行全雙工通信。圖8-22給出了8251A的結(jié)構(gòu)框圖。它共由五個部件構(gòu)成,對外有28條引腳。8251A各組成模塊的功能及有關(guān)引腳如下:109數(shù)據(jù)總線緩沖器讀/寫控制邏輯電路調(diào)制/解調(diào)控制電路接收控制電路串-并轉(zhuǎn)換發(fā)送緩沖器緩沖器并-串轉(zhuǎn)換發(fā)送控制電路RESETCLKC/DRDWRCSDSRDTRCTSRTSD7-D0內(nèi)部總線TXDRXDTXEMPTYTXCRXRDYRXCSYNDETTXRDY發(fā)送器接收器圖8.258251A內(nèi)部結(jié)構(gòu)框圖接收110單向移位寄存器并行輸出4位右移移位寄存器時鐘方程:驅(qū)動方程:狀態(tài)方程:111112串行接口原理奇偶錯溢出錯幀格式錯RxDRxCTxDTxC控制電路RESETWERDCSINTPEOEFEDB7~DB0TransmitBufEmptyReceiveDataReadyRDRTBE器存寄位移收接器沖緩據(jù)數(shù)收接器沖緩據(jù)數(shù)送發(fā)器存寄位移送發(fā)113(1)I/O緩沖器。這是三態(tài)雙向的緩沖器,引腳D0~D7是8251A和CPU接口的三態(tài)雙向數(shù)據(jù)總線,用于向CPU傳遞命令、數(shù)據(jù)或狀態(tài)信息。與CPU互相交換的數(shù)據(jù)和控制字就存放在這個區(qū)域,共有三個緩沖器。①接收緩沖器:串行口收到的數(shù)據(jù)變成并行字符后,存放在這里,以供CPU讀取。②發(fā)送數(shù)據(jù)/命令緩沖器:這是一個分時使用的雙功能緩沖器,CPU送來的并行數(shù)據(jù)存放在這里,準(zhǔn)備由串行口向外發(fā)送。另外,CPU送來的命令字也存放在這里,以指揮串行接口的工作。由于命令一輸入就馬上執(zhí)行,不必長期存放,所以不會影響存放發(fā)送數(shù)據(jù)。
114③狀態(tài)緩沖器:存放8251A內(nèi)部的工作狀態(tài),供CPU查詢。(2)讀/寫控制邏輯。本模塊功能是接收CPU的控制信號,控制數(shù)據(jù)傳送方向。(3)接收器及接收控制。接收器的功能是從RXD引腳接收串行數(shù)據(jù),按指定的方式裝配成并行數(shù)據(jù)。(4)發(fā)送器及發(fā)送控制。這個模塊的功能是從CPU接收并行數(shù)據(jù),自動地加上適當(dāng)?shù)某蓭盘柡筠D(zhuǎn)換成串行數(shù)據(jù)從TXD引腳發(fā)送出去。(5)調(diào)制解調(diào)控制器。該模塊提供和調(diào)制解調(diào)器的聯(lián)絡(luò)信號。1158.5.2.8251A的外部引腳
8251A是一個采用NMOS工藝制造的28腳雙列直插式封裝的組件,其外部引腳如圖8-26所示。
(1)與CPU接口的引腳。
D7~D0:數(shù)據(jù)線。
CLK:時鐘信號輸入線,用于產(chǎn)生8251A內(nèi)部時序。CLK的周期為0.42~1.35μs。
CLK的頻率至少應(yīng)是接收、發(fā)送時鐘的30倍(對同步方式)或4.5倍(對異步方式)。
RESET:復(fù)位信號輸入線,高電平有效。復(fù)位后8251A處于空閑狀態(tài)直至被初始化編程。116117:片選信號輸入線,低電平有效。僅當(dāng)為低電平時,CPU才能對8251A操作。
:信息類型信號輸入線。為0時傳輸?shù)氖菙?shù)據(jù),為1時傳輸?shù)氖强刂谱只驙顟B(tài)信息。
:讀選通信號輸入線,低電平有效。
:寫選通信號輸入線,低電平有效。CPU對8251A的讀寫控制如表8-4所示。
118CSC/DRDWR操作1任意任意任意無操作,D0-D7呈高阻0110寫控制字0010寫數(shù)據(jù)0101讀狀態(tài)0001讀數(shù)據(jù)表8-4CPU對8251的讀寫控制119RXRDY:接收準(zhǔn)備好狀態(tài)輸入線,高電平有效。當(dāng)接收器接到一個字符并準(zhǔn)備送給CPU時,RXRDY為1;當(dāng)字符被CPU讀取后RXRDY恢復(fù)為0。RXRDY可作為8251A向CPU申請接收中斷的請求源。
SYNDET/BRKDET:同步狀態(tài)輸出線或者外同步信號輸入線。此線僅對同步方式有意義。
TXRDY:發(fā)送準(zhǔn)備好狀態(tài)輸出線,高電平有效。當(dāng)發(fā)送寄存器空閑且允許發(fā)送(腳電平為低、命令字中TXEN位為1)時,TXRDY為高電平。當(dāng)CPU給8251A寫入一個字符后TXRDY恢復(fù)為低電平。TXRDY可作為8251A向CPU申請發(fā)送中斷的請求源。
TXE:發(fā)送緩沖器空閑狀態(tài)輸出線。高電平有效,TXE=1,表示發(fā)送緩沖器中沒有要發(fā)送的字符,當(dāng)CPU將要發(fā)送的數(shù)據(jù)寫入8251A后,TXE自動復(fù)位。120
(2)與外設(shè)或調(diào)制解調(diào)器接口的引腳。RXD:串行數(shù)據(jù)輸入線,高電平表示數(shù)字1,低電平表示數(shù)字0。RXC:接收器時鐘輸入線。它控制接收器接收字符的速率,在上升沿采集串行數(shù)據(jù)輸入線。RXC的頻率應(yīng)等于波特率(同步方式)或等于波特率的1倍、16倍或64倍(異步方式)。TXD:發(fā)送數(shù)據(jù)輸出線。CPU并行輸入給8251A的數(shù)據(jù)從這個引腳串行發(fā)送出去。TXC:發(fā)送器時鐘輸入線,在TXC的下降沿數(shù)據(jù)由8251A移位輸出。對TXC頻率的要求同RXC。121
:數(shù)據(jù)終端準(zhǔn)備好狀態(tài)輸出線,低電平有效。當(dāng)8251A命令字位D1為1時,有效,用于向調(diào)制解調(diào)器表示數(shù)據(jù)終端已準(zhǔn)備好。
:數(shù)據(jù)設(shè)備準(zhǔn)備好狀態(tài)輸入線,低電平有效。當(dāng)調(diào)制解調(diào)器準(zhǔn)備好時,有效,用于向8251A表示Modem(或DCE)已準(zhǔn)備就緒。CPU可通過讀取狀態(tài)寄存器的D7位檢測該信號。122
:請求發(fā)送信號輸出線,低電平有效。當(dāng)8251A命令字位D5為1時,有效,請求調(diào)制解調(diào)器作好發(fā)送準(zhǔn)備(建立載波)。
:清除發(fā)送(允許傳送)信號輸入線,低電平有效。當(dāng)調(diào)制解調(diào)器作好送數(shù)準(zhǔn)備時,有效,作為對8251A的信號的響應(yīng)。如果8251A不使用調(diào)制解調(diào)器而直接和外界通訊,一般應(yīng)將、腳接地。接收器的工作過程:在異步方式中,當(dāng)接收器接收到有效的起始位后,便接收數(shù)據(jù)位、奇偶校驗位和停止位。然后將數(shù)據(jù)送入寄存器,此時RXRDY輸出高電平,表示已收到一字符,CPU可以來讀取。123在同步方式中,若程序設(shè)定8251A為外同步接收,則SYNDET/BRKDET腳用于輸入外同步信號,SYNDET/BRKDET腳上的電平正跳變啟動接收數(shù)據(jù)。若程序設(shè)定8251A內(nèi)同步接收,則8251A先搜索同步字(同步字事先由程序裝在同步字符寄存器中)。每當(dāng)RXD線上收到一位信息就移入接收寄存器并和同步字符寄存器內(nèi)容比較,若不等則再收一位再比較,直到兩者相等。此時SYNDET/BRKDET輸出高電平,表示己搜索到同步字,接下來便把接收到的數(shù)據(jù)逐個地裝入接收數(shù)據(jù)寄存器。發(fā)送器的工作過程:在異步方式中,發(fā)送器在數(shù)據(jù)前加上起始位,并根據(jù)程序的設(shè)定在數(shù)據(jù)后加上校驗位和停止位,然后作為一幀信息從TXD腳逐位發(fā)送數(shù)據(jù).
1248.5.3.8251A的控制字寄存器和狀態(tài)字寄存器
8251A內(nèi)除具有可讀可寫的數(shù)據(jù)寄存器外,還具有只可寫的控制字寄存器和只可讀的狀態(tài)寄存器,CPU對它們的操作如表8-4所示。(1)控制字寄存器??刂谱旨拇嫫骷拇娣绞娇刂谱趾兔羁刂谱?。①方式控制字。方式控制字確定8251A的通訊方式(同步/異步)、校驗方式(奇校驗、偶校驗、不校驗)、數(shù)據(jù)位數(shù)(5、6、7或8位)及波特率參數(shù)等。方式控制字的格式如圖8-27所示。它應(yīng)在復(fù)位后寫入,且只需寫入一次。125126
②命令控制字。命令控制字使8251A處于規(guī)定的狀態(tài)以準(zhǔn)備發(fā)送或接收數(shù)據(jù)。命令控制字的格式如圖所示。它應(yīng)在寫入方式控制字后寫入,用于控制8251A的工作,可以多次寫入。方式控制字和命令控制字本身無特征標(biāo)志,也沒有獨立的端口地址,8251A是根據(jù)寫入先后次序來區(qū)分這兩者的:先寫入者為方式控制字,后寫入者為命令控制字。所以CPU在對8251A初始化編程時必須按一定的先后順序?qū)懭敕绞娇刂谱趾兔羁刂谱帧?27128(2)狀態(tài)寄存器。狀態(tài)寄存器存放8251A的狀態(tài)信息,供CPU查詢,狀態(tài)字各位的意義如圖8-18所示。DSR:數(shù)據(jù)設(shè)備準(zhǔn)備好標(biāo)志。其狀態(tài)同腳。
SYNDET:同步標(biāo)志。
FE:異步通訊幀出錯標(biāo)志。為1表示未檢測到字符末尾的有效停止位,但FE錯并不禁止8251A工作。FE標(biāo)志由命令控制字中的ER位清除。129130OE:溢出標(biāo)志。接收器內(nèi)的字符尚未被CPU讀走時又有新的字符裝入,則OE置1,此時原來的字符丟失,但并不禁止8251A工作,OE標(biāo)志由命令控制字中的ER位清除。PE:奇偶錯標(biāo)志。奇偶錯時PE置1,但此時并不禁止8251A工作,PE標(biāo)志由命令控制字中的ER位清除。TXE:發(fā)送緩沖器空標(biāo)志。其狀態(tài)同TXE腳。RXRDY:接收準(zhǔn)備好標(biāo)志。其狀態(tài)同RXRDY腳。TXRDY:發(fā)送準(zhǔn)備好標(biāo)志。含義同TXRDY引腳。只要發(fā)送緩沖器空,就置位該位。而引腳TXRDY除發(fā)送緩沖器空外,還要滿足TXEN=1,CTS=0才置位1318.5.4.8251接收器工作過程(1)異步接收方式在RxD線上檢測低電平,控制電路中的一個內(nèi)部計數(shù)器進(jìn)行計數(shù),當(dāng)計數(shù)到相當(dāng)于半個數(shù)位傳輸時間(比如時鐘脈沖為波特率的16倍時,則計到第8個脈沖時,即相當(dāng)于半個數(shù)位傳輸時間)時又對RxD線上進(jìn)行檢測,如果此時仍為低電平,則確認(rèn)收到一個有效的起始位。8251開始進(jìn)行常規(guī)采樣并進(jìn)行字符裝配,具體地說,就是每隔一個數(shù)位傳輸時間(在前面假設(shè)下,相當(dāng)于16個脈沖間隔時間),對RxD進(jìn)行一次采樣。數(shù)據(jù)進(jìn)入輸入移位寄存器被移位,并進(jìn)行奇偶校驗和去掉停止位,變成了并行數(shù)據(jù),再通過內(nèi)部數(shù)據(jù)總線送到數(shù)據(jù)輸出寄存器,同時發(fā)出RxRDY信號送CPU,表示已經(jīng)收到一個可用的數(shù)據(jù)。132
(2)同步接收方式8251監(jiān)測RxD線,每當(dāng)RxD線上出現(xiàn)一個數(shù)據(jù)位時,就把它接收下來并把它移入移位寄存器,然后把移位寄存器與同步字符寄存器的內(nèi)容進(jìn)行比較。如果二者不相等,則接收下一位數(shù)據(jù),并且重復(fù)上述比較過程。當(dāng)兩個寄存器的內(nèi)容比較相等時,8251的SYNDET引腳就升為高電平,以告知同步字符已經(jīng)找到,同步已經(jīng)實現(xiàn)。實現(xiàn)同步之后,接收器和發(fā)送器之間就開始進(jìn)行數(shù)據(jù)的同步傳輸。這時,接收器利用時鐘信號對RxD線進(jìn)行采樣,并把接收到的數(shù)據(jù)位送到移位寄存器中。每當(dāng)收到的數(shù)據(jù)位達(dá)到規(guī)定的一個字符的數(shù)位時,就將移位寄存器的內(nèi)容送到輸入緩沖寄存器,并且在RxRDY引腳上發(fā)出一個信號,表示收到了一個字符。1338.5.4.8251A的初始化編程①輸入方式控制字,以決定通信方式、數(shù)據(jù)位數(shù)、校驗方式等若是同步通信方式;②輸入一個或兩個同步字符,若是異步方式則這一步可省略;③最后送入命令控制字,就可以開始發(fā)送或接收數(shù)據(jù)了。
像所有的可編程器件一樣,8251A在使用前也要進(jìn)行初始化。初始化在8251A處于復(fù)位狀態(tài)時開始。其過程為:1341358251A的初始化編程必須在復(fù)位操作之后,先設(shè)置方式選擇控制字;如果設(shè)定在異步方式,則馬上要輸出操作命令字進(jìn)行設(shè)置,然后才能進(jìn)行數(shù)據(jù)傳送;在數(shù)據(jù)傳送過程中,也可使用操作命令字進(jìn)行某些操作設(shè)置或讀取8251A的狀態(tài);在數(shù)據(jù)傳送結(jié)束時,若使用IR位為“1”的內(nèi)部復(fù)位命令使8251A復(fù)位,則它又可重新接收方式選擇字,從而改變工作方式完成其他傳送任務(wù)。136編程舉例(1)異步方式下的初始化編程設(shè)定8251A工作于異步方式,波特率因子為64,每字符7個數(shù)據(jù)位,偶校驗,2位停止位,則方式選擇控制字為11111011=FBH。操作命令字的設(shè)定,例如使8251A的發(fā)送器允許,接收器允許,使?fàn)顟B(tài)寄存器中的3個錯誤標(biāo)志位復(fù)位,使數(shù)據(jù)終端準(zhǔn)備好信號DTR輸出低電平,則操作命令字應(yīng)為00010111=17H。137若8251A的端口地址為51H,則初始化程序如下:MOVAL,0FBH;輸出方式選擇字OUT51H,ALMOVAL,17H;輸出操作命令字OUT51H,AL138(2)同步方式下的初始化編程舉例
8251A工作于同步方式,雙同步字符,同步字符設(shè)定為16H,內(nèi)同步,偶校驗,每字符7個數(shù)據(jù)位,則方式選擇字為00111000B=38H。操作命令字設(shè)定為10010111B=97H,使發(fā)送器允許,接收器允許,使錯誤標(biāo)志復(fù)位,開始搜索同步字符,并通知調(diào)制解調(diào)器,數(shù)據(jù)終端設(shè)備已準(zhǔn)備就緒。1398251A的端口地址為51H,則本例初始化程序如下:MOVAL,38H;輸出方式選擇字OUT51H,ALMOVAL,16H
;輸出兩個同步字符16HOUT51H,ALOUT51H,ALMOVAL,97H;輸出操作命令字OUT51H,ALCPU執(zhí)行上述程序之后,即完成了對8251A同步方式的初始化編程。140①異步工作方式,波特率系數(shù)為64(即數(shù)據(jù)傳送速率是時鐘頻率的1/64),采用偶校驗,總字符長度為10(1位起始位,8位數(shù)據(jù),1位停止位)。②允許接收和發(fā)送,使錯誤位全部復(fù)位。③查詢8251A狀態(tài)字,當(dāng)接收準(zhǔn)備就緒時,則從8251A輸入數(shù)據(jù),否則等待。初始化程序:MOVDX,301H;8251A控制口地址MOVAL,01000000B;內(nèi)部復(fù)位命令字OUTDX,AL;送命令字MOVAL,01111111B;方式控制字OUTDX,AL;送方式控制字141MOVAL,00010101B;操作命令字OUTDX,AL;送操作控制字WAIT:INAL,DX;讀入狀態(tài)字ANDAL,02H;檢查RXRDY=1?JZWAIT;RXRDY≠1,接收未
;準(zhǔn)備就緒,等待INAL,DX142
當(dāng)8251A與CPU連接時,至少要占用兩個端口地址,即控制端口(C/D=1)和數(shù)據(jù)端口(C/D=0)。在使用8251A時需要一個外部時鐘源提供RXC、TXC和CLK信號。RXC和TXC由波特率以及時鐘頻率與波特率的倍率決定。CLK則在RXC、TXC頻率的基礎(chǔ)上增高若干倍。8251A與CPU通常采用查詢或中斷方式交換數(shù)據(jù)。若采用中斷方式,兩個狀態(tài)信號TXRDY和RXRDY通過一個非門接到CPU的外中斷輸入。其余的RD、WR、RESET都是同名端相連。8.5.5.8251A應(yīng)用舉例143在編程時,對8251A初始化,輸入命令字后就可進(jìn)行數(shù)據(jù)傳送。在得到中斷申請后,通過調(diào)用狀態(tài)字來檢測是接收申請(RXRDY=1)還是發(fā)送申請(TXRDY=1),然后轉(zhuǎn)至相應(yīng)的程序模塊。例:用8251A為8086CPU與CRT終端設(shè)計一串行通信接口。假設(shè)8251A控制端口地址為301H,數(shù)據(jù)端口地址為300H
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育培訓(xùn)檔口租賃合同
- T-ZJCX 0046-2024 簾子線直捻機
- 二零二五年度公車私用行為規(guī)范與責(zé)任追究協(xié)議
- 二零二五年度全新碼頭租賃協(xié)議及倉儲服務(wù)合作協(xié)議
- 2025年度果園租賃與農(nóng)業(yè)科技研發(fā)合同
- 二零二五年度廣告代理合同解除與權(quán)益調(diào)整協(xié)議
- 2025年度高科技企業(yè)計件工資勞動合同
- 2025年度智能合同履約跟蹤與風(fēng)險控制管理辦法
- 2025年度消防設(shè)施定期維護(hù)與消防通道清理合同
- 二零二五年度美發(fā)店員工勞動健康保險與意外傷害合同
- 學(xué)校食品安全長效管理制度
- 滋補品項目效益評估報告
- 提綱作文(解析版)- 2025年天津高考英語熱點題型專項復(fù)習(xí)
- 2025年南京機電職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點試題含答案解析
- 2025年春新人教版歷史七年級下冊全冊課件
- 2025年浙江臺州機場管理有限公司招聘筆試參考題庫含答案解析
- 《中式風(fēng)格陳設(shè)》課件
- 《汽車空調(diào)工作原理》課件
- 2024年鄭州黃河護(hù)理職業(yè)學(xué)院單招職業(yè)技能測試題庫及解析答案
- 2025屆廣東省佛山一中石門中學(xué)高考沖刺押題(最后一卷)數(shù)學(xué)試卷含解析
- 2024-2030年中國氣象服務(wù)行業(yè)深度調(diào)查及投資戰(zhàn)略建議報告
評論
0/150
提交評論