第9章可編程輸入輸出接口_第1頁
第9章可編程輸入輸出接口_第2頁
第9章可編程輸入輸出接口_第3頁
第9章可編程輸入輸出接口_第4頁
第9章可編程輸入輸出接口_第5頁
已閱讀5頁,還剩142頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1微機(jī)原理與接口技術(shù)2012年10月26日第9章可編程輸入/輸出接口2

微機(jī)系統(tǒng)的信息交換有并行通信和串行通信兩種方式。

并行通信是以微機(jī)的字長為傳輸單位;適合于外部設(shè)備與微機(jī)之間進(jìn)行近距離、大量和快速的信息交換。

實(shí)現(xiàn)并行通信的接口稱之為并行接口。

概述39.1可編程并行接口芯片8255A并行輸入/輸出端口A、B、C:8255A芯片具有24個(gè)可編程輸入輸出引腳,分成3個(gè)8位端口。

9.1.18255A的基本功能和內(nèi)部結(jié)構(gòu)41、8255A的內(nèi)部結(jié)構(gòu)和引腳信號(hào)(1)8255A內(nèi)部結(jié)構(gòu)8255A可編程外圍設(shè)備接口(ProgrammablePeripheralInterface,簡寫為PPI),其內(nèi)部結(jié)構(gòu)如圖所示。5圖9.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端口A:包含一個(gè)8位數(shù)據(jù)輸出鎖存器/緩沖器和一個(gè)8位數(shù)據(jù)輸入鎖存器,輸入輸出數(shù)據(jù)均受到鎖存。7

輸入接口(數(shù)據(jù)部分)內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳鎖存控制鎖存器緩沖器DCDCDCQQQ選通8

如果外設(shè)送來的數(shù)據(jù)都是靜態(tài)數(shù)據(jù),接口可以簡化為緩沖器。緩沖器內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳選通9

輸出接口(數(shù)據(jù)部分)內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳鎖存控制DCQDCQDCQ讀數(shù)據(jù)鎖存器緩沖器10

如果送給外設(shè)的數(shù)據(jù)都是靜態(tài)數(shù)據(jù),接口可以簡化為鎖存器。內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳鎖存控制DCQDCQDCQ鎖存器11端口B和C:都包含一個(gè)8位數(shù)據(jù)輸入緩沖器和一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,輸出數(shù)據(jù)能鎖存,輸入數(shù)據(jù)不鎖存。端口C:可分成兩個(gè)4位端口,分別定義為輸入或輸出端口,還可定義為控制、狀態(tài)端口,配合端口A和端口B工作。12(2)A組和B組控制部件

A組A口:PA0~PA7

C口的高4位:PC4~PC7

B組

B口:PB0~PB7

C口的低4位:PC0~PC3

13

A組,B組的控制寄存器,接收來自數(shù)據(jù)總線的控制字,并根據(jù)控制字確定各端口的工作狀態(tài)和工作方式。14(3)數(shù)據(jù)總線緩沖器三態(tài)雙向8位緩沖器,是8255A與CPU之間的數(shù)據(jù)接口。傳送輸入數(shù)據(jù)、輸出數(shù)據(jù)、控制命令字。15(4)讀/寫控制部件接收來自CPU地址總線信號(hào)和控制信號(hào),并發(fā)出命令到兩個(gè)控制組(A組和B組)。CS:片選信號(hào),接CPU高位地址的譯碼輸出WR:寫信號(hào),WR有效,CPU向8255A寫入的控制或數(shù)據(jù)信息。RD:讀信號(hào),RD有效,CPU讀8255A的數(shù)據(jù)或狀態(tài)16RESET:復(fù)位信號(hào)。RESET有效時(shí),清8255A所有控制寄存器內(nèi)容,并將各端口置成輸入方式。172.8255A的引腳8255A采用40線雙列直插封裝,引腳圖如圖所示。圖9.28255A引腳定義4321403718

34......27D7

D0

A0

A1

RESETVCC

GND986535368255APPI數(shù)據(jù)總線控制線電源線通道A通道B通道CCPU接口外設(shè)接口.PA7

PA0

..PB7

PB0

...PC7

PC0

251415161713121110WRRDCS18*

PA7~PA0:A端口數(shù)據(jù)信號(hào)引腳*PB7~PB0:B端口數(shù)據(jù)信號(hào)引腳*

PC7~PC0:C端口數(shù)據(jù)信號(hào)引腳*D7~D0:

8255A的8位數(shù)據(jù)線19*A1~A0:

端口選擇信號(hào)

當(dāng)A1A0=00時(shí)

選擇端口A當(dāng)A1A0=01時(shí)

選擇端口B當(dāng)A1A0=10時(shí)

選擇端口C當(dāng)A1A0=11時(shí)

選擇控制端口20表9.18255A的讀寫操作控制

A1A0RDWRCS操作00010端口A→CPU01010端口B→CPU10010端口C→CPU00100CPU→端口A01100CPU→端口B10100CPU→端口C11100CPU→控制寄存器11010非法操作××110數(shù)據(jù)線浮空××××1未選該8255A,數(shù)據(jù)線浮空218255A共有兩個(gè)控制字:即工作方式控制字和對(duì)C口置位/復(fù)位控制字。1.控制字(1)工作方式控制字:控制字和各位的含義如圖所示。9.1.28255A的控制字及其工作方式22D7D6D5D4D3D2D1D0C口低位選擇,1入0出B口I/O選擇,1入0出B口方式選擇,0=方式01=方式1B組C口高位選擇,1入0出A口I/O選擇,1入0出A口方式選擇00=方式001=方式11X=方式2D7=1,方式控制字標(biāo)志A組圖9.38255A工作方式控制字格式23(2)8255A的初始化——C口置位/復(fù)位控制字D7D6D5D4D3D2D1D0置位/復(fù)位選擇1=置位,0=復(fù)位D7=0為置位/復(fù)位控制字標(biāo)志D3D2D1位選擇

000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7無效24關(guān)于控制字要說明幾點(diǎn):(1)設(shè)置方式控制字時(shí),A口、B口作為整體設(shè)置,而C口要分成上、下兩部分分別設(shè)置。三個(gè)端口的工作方式由一個(gè)控制字規(guī)定。(2)C口按位置位/復(fù)位控制字不是送到C口地址,而是送到控制寄存器地址;且一個(gè)控制字只能使C口一位置位或復(fù)位。25(3)方式控制字和按位置位/復(fù)位控制字均寫入同一個(gè)控制寄存器地址,二者通過最高位D7來區(qū)別。D7=1為方式控制字,D7=0為按位置位/復(fù)位控制字。26(1)方式0——

基本輸入/輸出方式方式0是一種基本輸入輸出工作方式,它的24條I/O線可以全部都用作傳送數(shù)據(jù),不設(shè)置應(yīng)答信號(hào)線,常用于無條件傳送,輸出有鎖存,輸入只有緩沖能力而無鎖存功能。方式0控制字具體格式如圖8.5所示2.工作方式27100×

×0×

×C口低位選擇,1入0出B口I/O選擇,1入0出B口方式選擇,0=方式0

B組C口高位選擇,1入0出A口I/O選擇,1入0出A口方式選擇00=方式0

D7=1,方式控制字標(biāo)志A組圖9.58255A工作方式0控制字格式28工作方式0――簡單輸入/輸出――查詢方式;A,B,C三個(gè)端口均可。

三態(tài)緩沖器地址譯碼器&數(shù)據(jù)來自外設(shè)88IO/MRD數(shù)據(jù)總線地址總線方式0輸入(INAL,PORT)框圖29

方式0輸出(OUTPORT,AL)框圖鎖存器到外設(shè)88IO/MWR地址譯碼器數(shù)據(jù)總線地址總線&CE30

由控制字中D4D3D1D0等4位的不同取值可定義方式0的16種工作方式的組合如表9.2所示。

方式0中,端口C被分成兩個(gè)4位端口,它們可被定義為輸入或輸出端口,CPU與3個(gè)端口之間交換數(shù)據(jù),可直接由CPU執(zhí)行IN和OUT指令來完成。31表9.2方式0的工作狀態(tài)組合序號(hào)控制字

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輸入輸入輸入輸入32(2)工作方式1——選通式輸入/輸出方式①

方式1選通輸入方式1操作使端口A或端口B作為鎖存輸入設(shè)備工作。端口C也可按方式1操作使用——但不是對(duì)數(shù)據(jù),而是對(duì)控制信號(hào),或當(dāng)端口A或端口B為選通輸入端口時(shí)的握手信號(hào)。下圖示出8255A方式1選通輸入時(shí)的內(nèi)部結(jié)構(gòu)圖。33IBF:輸入緩沖器滿信號(hào),向外設(shè)輸

出,高電平有效。STB:選通信號(hào)。由外設(shè)輸入,低電平

有效。INTR:中斷請(qǐng)求信號(hào),高電平有效。34

方式1下輸入端口的聯(lián)絡(luò)信號(hào)1011A口方式1輸入控制字PA7~PA0PC4PC5PC3INTEAPC4與門IBFASTBAINTRARDD7~D0A口方式1輸入時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)111B口方式1輸入控制字B口方式1輸入時(shí)相應(yīng)的聯(lián)絡(luò)信號(hào)PB7~PB0PC2PC1PC0INTEBPC2與門RDD7~D0IBFBSTBBINTRB35PB7~PB0PA7~PA0STBIBFINTRRD外設(shè)送來數(shù)據(jù)②③當(dāng)INTE=1時(shí)

①方式1輸入時(shí)序36INTE:中斷允許信號(hào),它是通過端口PC4(端口A)或PC2(端口B)的位來編程的內(nèi)部位。37②

方式1選通輸出當(dāng)端口A或端口B為方式1輸出時(shí),各指定PC的3條線作為8255A與外設(shè)及CPU之間應(yīng)答信號(hào)。下圖為方式1選通輸出操作的內(nèi)部結(jié)構(gòu)圖。381010

×10

×C口低位選擇,1入0出B口I/O選擇,0出B口方式選擇,1=方式1

B組C口高位選擇,1入0出A口I/O選擇,1入0出A口方式選擇01=方式1

D7=1,方式控制字標(biāo)志A組圖9.58255A工作方式1輸出控制字格式39工作方式1――選通輸入/輸出――中斷方式;A,B,兩個(gè)端口均可。

110B口方式1輸出控制字PB7~PB0PC2PC1PC0INTEBPC2與門WRD7~D0OBFBACKBINTRB1010A口方式1輸出控制字PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D040OBF:輸出緩沖器滿信號(hào)。向外設(shè)

輸出,低電平有效。ACK:

外設(shè)應(yīng)答信號(hào)。由外設(shè)輸入,低電平有效。41INTE:中斷允許信號(hào)。INTR:中斷請(qǐng)求信號(hào)。高

電平有效。42①D7~D0送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口WROBFINTRACK②③當(dāng)INTE=1時(shí)

方式1輸出時(shí)序43(3)工作方式2——雙向選通輸入/輸出方式方式2只允許A組采用,此時(shí)端口A變?yōu)殡p向,允許數(shù)據(jù)在同一組8條線上發(fā)送和接收。下圖示出方式2操作內(nèi)部結(jié)構(gòu)圖。44工作方式2――雙向輸入/輸出――中斷方式。只有A端口才有。

PA7~PA0PC6PC7ACKAOBFAD7~D0RDWRPC4PC5STBAIBFAINTEA1PC4INTEA2PC6與門PC3INTRA或門與門4511

×

×

×C口低位選擇,1入0出B口I/O選擇,1入0出B口方式選擇,1=方式1

0=方式0

B組A口方式選擇10=方式211=方式2D7=1,方式控制字標(biāo)志A組圖9.108255A工作方式2控制字格式46OBFA:輸出緩沖器滿信號(hào),向外設(shè)輸出,低電平有效。ACKA:應(yīng)答信號(hào),由外設(shè)輸入,低電平有效。STBA:

數(shù)據(jù)選通輸入信號(hào)。由外設(shè)輸入,低電平有效。47PB7~PB0PA7~PA0-STBIBF-RD外設(shè)送來數(shù)據(jù)D7~D0送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口-WR-OBFINTR-ACK當(dāng)INTE=1時(shí)

圖9.11端口A方式2下的時(shí)序圖

48IBFA:輸入緩沖器滿信號(hào),向外設(shè)輸出,高電平有效。INTE:中斷允許信號(hào)

(INTE1和INTE2)。高電平有效。INTRA:中斷請(qǐng)求信號(hào),高電平有效。49

8255A中端口A工作方式2時(shí),允許端口B工作于方式0或方式1,完成輸入/輸出功能。4種組合狀態(tài)及其工作方式控制字格式如表8.3。

50表9.3方式2的組合狀態(tài)與控制字格式51

目前打印機(jī)一般采用并行接口標(biāo)準(zhǔn),其主要信號(hào)與傳送時(shí)序如圖8.15。打印機(jī)接收主機(jī)傳送數(shù)據(jù)的過程是這樣的:9.28255A的應(yīng)用實(shí)例9.2.18255A與打印機(jī)接口1、用方式1與打印機(jī)接口52

當(dāng)主機(jī)準(zhǔn)備好輸出打印的一個(gè)數(shù)據(jù)時(shí),通過8255A把數(shù)據(jù)送給打印機(jī)接口的數(shù)據(jù)引腳DATA0~DATA7,同時(shí)送出一個(gè)數(shù)據(jù)選通信號(hào)STROBE

給打印機(jī)。打印機(jī)收到該信號(hào)后,把數(shù)據(jù)鎖存到內(nèi)部緩沖區(qū),同時(shí)在BUSY信號(hào)線上發(fā)出忙信號(hào)。待打印機(jī)處理好輸入數(shù)據(jù)時(shí),打印機(jī)撤消忙信號(hào),同時(shí)向主機(jī)送出一個(gè)響應(yīng)信號(hào)ACK。主機(jī)根據(jù)BUSY信號(hào)或信號(hào)ACK決定是否輸出下一個(gè)數(shù)據(jù)。53

用方式1與打印機(jī)接口

8255A的端口A工作于選通輸出方式,PC7作為OBFA輸出信號(hào),PC6作為ACKA

輸入信號(hào),而PC3作為INTRA輸出信號(hào);另外,可用程序控制INTEA(PC6),決定是否采用中斷方式。打印機(jī)接口的時(shí)序與8255A的選通輸出方式的時(shí)序類似,但略有差別,用單穩(wěn)電路74LS123即可滿足雙方的時(shí)序要求,見圖8.16。54圖9.16方式1的打印機(jī)接口

55

假設(shè)8255A的A、B、C口的I/O地址為F008H、F00AH和F00CH??刂贫丝诘牡刂窞镕00EH。以下為采用選通方式輸出緩沖區(qū)BUF中的打印字符的子程序,輸出的字節(jié)數(shù)為M。56PRINTPROCPUSHAX;保護(hù)寄存器

PUSHBXPUSHCXPUSHDXMOVDX,0F00EH;設(shè)定A口為選通輸出方式

MOVAL,0A0HOUTDX,ALMOVAL,0CH;使INTEA(PC6)為0,禁中斷

OUTDX,ALMOVCX,M;打印字節(jié)數(shù)送CX57MOVBX,OFFSETBUF;取緩沖區(qū)首址送BX

PRINT1:MOVAL,[BX];取一個(gè)數(shù)據(jù)

MOVDX,0F008H

OUTDX,AL;從A口輸出

MOVDX,0F00CH

PRINT2:INAL,DX;讀C口

TESTAL,80H;檢測OBFA(PC7)

;為1否?

58JZPRINT2;為0,則繼續(xù)檢測

INCBX;為1,說明數(shù)據(jù)已輸出

LOOPPRINT1;準(zhǔn)備取下一個(gè)數(shù)據(jù)輸出

POPDX;打印結(jié)束,恢復(fù)寄存器

POPCXPOPBXPOPAXRET;返回PRINTENDP59七段數(shù)碼管七段數(shù)碼管組成原理圖如后圖所示。七段數(shù)碼管根據(jù)其連接方式可分為:共陽極LED:公共端應(yīng)接高電平(或+5v)共陰極LED:公共端應(yīng)接地例2:LED顯示器原理及接口技術(shù)

60

LED七段顯示器及其接口

在常用的七段顯示器內(nèi),各個(gè)LED可按共陽極或共陰極連接。它們應(yīng)分別用不同的段碼,經(jīng)不同的驅(qū)動(dòng)電路來驅(qū)動(dòng)。618段碼.gfedcba形狀LED顯示8段碼.gfedcba形狀LED顯示10001111’F’11111000’7’10000110’E’10000010’6’10100001’D’10010010’5’11000110’C’10011001’4’10000011’B’10110000’3’10001000’A’10100100’2’10011000’9’11111001’1’10000000’8’11000000’0’PA口輸出值與LED顯示值間關(guān)系62共陰極

共陽極

共陰極

共陽極(a)七段LED原理圖

圖(b)“米”字LED原理圖

典型LED器件原理圖LED顯示器原理及接口技術(shù)(續(xù))

63給數(shù)碼管的每個(gè)輸入端(a,b,c,……,h)提供適當(dāng)電平,使某幾段發(fā)光二極管亮,而另外幾段不亮,則可顯示出數(shù)字或字母。八個(gè)輸入端組成的二進(jìn)制編碼(簡稱段碼或段選碼)所對(duì)應(yīng)的顯示內(nèi)容見后表。LED顯示器原理及接口技術(shù)64表

七段LED字型碼

LED顯示器原理及接口技術(shù)65LED數(shù)碼管在微機(jī)系統(tǒng)中的應(yīng)用

LED在系統(tǒng)中的連接

66常用于LED的驅(qū)動(dòng)器:7407/7406同向/反向驅(qū)動(dòng)器,75452二輸入與非驅(qū)動(dòng)器。鎖存器可用74LS273/373、74LS244等集成電路。系統(tǒng)中有多位LED,則每次只能使一位LED顯示信息,每位LED上有一選通端(公共端)。要想使哪位顯示,就應(yīng)給其公共端提供有效電平(共陽極為“1”,公陰極為“0”),而其它位的公共端提供無效電平。這樣構(gòu)成的二進(jìn)制編碼稱為位碼或位選碼。動(dòng)態(tài)顯示:在多位LED顯示中,即要使每一位的顯示信息有一個(gè)持續(xù)時(shí)間,可用循環(huán)延時(shí)程序?qū)崿F(xiàn),又要保證一遍一遍地進(jìn)行循環(huán)顯示時(shí)不出現(xiàn)閃爍,在軟、硬件設(shè)計(jì)時(shí)就要考慮LED的位數(shù)不能太多,顯示的延時(shí)要適中。

LED數(shù)碼管在微機(jī)系統(tǒng)中的應(yīng)用67例某8088系統(tǒng)中,使用8位LED顯示時(shí)間,格式為時(shí)-分-秒,硬件連接如圖所示,軟件流程圖見后圖。

LED數(shù)碼管在微機(jī)系統(tǒng)中的應(yīng)用68圖

軟件流程圖

69思考題一、單項(xiàng)選擇題1.8255A的PA口工作在方式2,PB口工作在方式1時(shí),其PC端口()。

A.用作兩個(gè)4位I/O端口

B.部分引腳作聯(lián)絡(luò),部分引腳作I/OC.全部引腳均作聯(lián)絡(luò)信號(hào)

D.作8位I/O端口,引腳都為I/O線

分析:8255A的PA口工作于方式2,指定PC口的PC3~PC7為聯(lián)絡(luò)信號(hào)線,若PB口同時(shí)工作于方式1,指定PC0~PC2為聯(lián)絡(luò)信號(hào)線。因此,PC端口全部用于PA口與PB口的聯(lián)絡(luò)信號(hào)。答:C702.如果8255A的PA口工作于方式2,PB口可工作于哪種工作方式()。A.方式OB.方式1C.方式2D.方式0或方式1

分析:如第1題所分析的,PA口工作于方式2后,PC口的PC0~PC2可用作PB口方式1的聯(lián)絡(luò)信號(hào),同時(shí)PB口也可工作于方式0的無條件傳送。答:D713.當(dāng)8255A的PA口工作在方式1的輸入時(shí),對(duì)PC4置位,其作用是()。A.啟動(dòng)輸入B.開放輸入中斷C.允許輸入D.停止輸入

分析:8255A的PA口工作在方式1時(shí),PC4=1用來設(shè)置輸入時(shí)的“開中斷”。答:B.72

9.3串行通信的基本概念通信:計(jì)算機(jī)與外部設(shè)備之間、計(jì)算機(jī)之間的信息交換。通信的基本方式并行通信串行通信異步通信同步通信9.3.1串行通信的連接方式73圖9.17串行通信的3種連接方式發(fā)送器A發(fā)送器接收器發(fā)送器接收器發(fā)送器接收器接收器發(fā)送器接收器B數(shù)據(jù)線(a)單工方式數(shù)據(jù)線AB(c)全雙工方式數(shù)據(jù)線數(shù)據(jù)線AB(b)半雙工方式749.3.2信號(hào)的調(diào)制與解調(diào)

MODEM是由調(diào)制器和解調(diào)器合在一起形成的一個(gè)裝置,以用作雙向通信。MODEM的類型一般可分為幅移鍵控(ASK)、頻移鍵控(FSK)和相移鍵控(PSK)等。當(dāng)通信波特率小于300bit/s時(shí),常采用FSK調(diào)制方式。

759.3.3同步與異步通信方式1.異步通信方式(ASYNC)第n+1個(gè)字符第n個(gè)字符空閑位起始位停止位7位數(shù)據(jù)位空閑位起始位011110D0D1D2D3D4D5D6圖9.18異步通信字符格式76

異步通信方式的特點(diǎn)是:

(1)起始位:一位,邏輯0,表示字符的開始;

通信時(shí)以收發(fā)一個(gè)字符為獨(dú)立的通信單位,每個(gè)字符由4個(gè)部分組成:(2)數(shù)據(jù)位:可以是5~8位邏輯0/邏輯1,與雙方約定的編碼形式有關(guān),如:ASCII碼(7位),擴(kuò)展的BCD碼(8位)等,起始位之后緊跟著的是數(shù)據(jù)的最低位D0。

(3)奇/偶校驗(yàn)位:一位邏輯0/邏輯1。

(4)停止位:1位或1.5位或2位邏輯1,表示字符的結(jié)束。

772.同步通信方式(SYNC)

在異步通信中,每個(gè)字符都要用起始位和停止位來使通信雙方同步,這些附加的額外信息,使得異步通信的傳輸效率不高。在需傳輸大量數(shù)據(jù)的場合,為提高傳輸效率和速度,常去掉這些附加位,即采用同步通信SYNC(SynchronousdataCommunication)

同步字符數(shù)據(jù)塊CRC1

CRC2

同步字符2數(shù)據(jù)塊CRC1

CRC2

同步字符1a.單同步格式b.雙同步格式78

同步通信方式的特點(diǎn)是:③為了防止因收、發(fā)雙方的時(shí)鐘頻率的偏差的積累效應(yīng)而產(chǎn)生錯(cuò)位,從而導(dǎo)致通信出錯(cuò),同步通信要求接收和發(fā)送的時(shí)鐘完全同步,不能有誤差。實(shí)際應(yīng)用中,同步傳送常在收、發(fā)雙方間使用同一時(shí)鐘,故硬件電路比較復(fù)雜。②對(duì)每個(gè)字符的檢錯(cuò)一般可用奇校驗(yàn),數(shù)據(jù)塊的末尾用CRC(循環(huán)冗余碼)對(duì)整個(gè)數(shù)據(jù)塊進(jìn)行校驗(yàn)。①收、發(fā)雙方以一個(gè)或兩個(gè)預(yù)先約定的同步字符作為數(shù)據(jù)塊傳送的開始,數(shù)據(jù)塊由幾十到幾千,甚至更多字節(jié)組成。799.3.4波特率與收/發(fā)時(shí)鐘1.波特率

計(jì)算機(jī)串行通信中常用波特率(Baudrate)來表示數(shù)據(jù)傳輸率,波特率的單位是bit/s,即每秒所傳送的二進(jìn)制位數(shù)。常用的標(biāo)準(zhǔn)值有110,300,600,1200,2400,4800,9600,19200波特等。

某異步通信中每秒傳送960個(gè)字符,而每個(gè)字符由10位(1個(gè)起始位、7個(gè)數(shù)據(jù)位、1個(gè)奇校驗(yàn)位、1個(gè)停止位)組成,則傳送的波特率為:fd=10×960bit/s=9600bit/s

傳送一位的時(shí)間Td=1/9600=0.104ms

例如:

80

2.接收/發(fā)送時(shí)鐘

異步通信中,大多數(shù)串行端口發(fā)送和接收的波特率均可分別設(shè)置,由發(fā)送器和接收器各用一個(gè)時(shí)鐘來確定,分別稱為發(fā)送時(shí)鐘和接收時(shí)鐘。為了有利于收發(fā)雙方同步,以及提高抗干擾的能力,這兩個(gè)時(shí)鐘頻率fc一般不等于波特率fd,兩者之間的關(guān)系為:fc=kfd其中,k稱為波特率系數(shù),其取值可為16,32或64。

81(1)發(fā)送脈沖和接收脈沖發(fā)送:發(fā)送方要靠發(fā)送脈沖(移位脈沖)下降沿將數(shù)據(jù)移出,經(jīng)TXD引腳→對(duì)方接收:接收方要靠接收脈沖(移位脈沖)上升沿將數(shù)據(jù)接入,經(jīng)RXD引腳→串口入出QQQQCP1100100182注意:接收時(shí)鐘的上升沿對(duì)準(zhǔn)數(shù)據(jù)位的中間位置,以保障可靠的接收數(shù)據(jù)移位脈沖的頻率=波特率發(fā)送方與接收方實(shí)現(xiàn)同步,隨著數(shù)據(jù)的不斷傳輸,將產(chǎn)生一個(gè)誤差積累,有可能使數(shù)據(jù)丟失!如:有1數(shù)據(jù)35H=00110101發(fā)送脈沖→利用下降沿→利用上升沿接收脈沖思考題:異步通信中,如何實(shí)現(xiàn)同步的?83(2)檢驗(yàn)脈沖

接收方需對(duì)發(fā)送方發(fā)來的數(shù)據(jù)位進(jìn)行檢測,以決定“0”還是“1”

通常檢測脈沖是移位脈沖的16和64倍(常選16)三中取二目的:①抑制干擾;②提高信號(hào)的傳輸可靠性,因?yàn)椴蓸有盘?hào)總是在每個(gè)接收位的中間位置,不僅可以避開信號(hào)兩端的邊沿失真,也可防止接收時(shí)鐘頻率和發(fā)送時(shí)鐘頻率不完全同步引起的接收錯(cuò)誤84

9.4串行通信的接口標(biāo)準(zhǔn)

一個(gè)完整的串行通信系統(tǒng)除了對(duì)上一節(jié)所介紹的通信規(guī)程有所規(guī)定外,還必然會(huì)涉及到在電氣連接上的接口標(biāo)準(zhǔn)問題。標(biāo)準(zhǔn)化的通用總線結(jié)構(gòu)能使系統(tǒng)結(jié)構(gòu)化、模塊化,大大簡化系統(tǒng)軟、硬件設(shè)計(jì)的工作,因此被普遍采用。本節(jié)介紹目前常用的有代表性的一種串行接口標(biāo)準(zhǔn)。

859.4.1RS-232C接口標(biāo)準(zhǔn)RS-232C是串行異步通信中應(yīng)用最廣的串行總線標(biāo)準(zhǔn),1969年由美國EIA(電子工業(yè)協(xié)會(huì))頒發(fā),其中RS是RecommendedStandard的縮寫,232是標(biāo)準(zhǔn)的標(biāo)識(shí)號(hào)。RS-232C的前身是RS-232A和RS-232B,這前兩種接口標(biāo)準(zhǔn)現(xiàn)在已很少使用。RS-232C主要用于使用模擬信道傳輸數(shù)字信號(hào)的場合,推出這種標(biāo)準(zhǔn)的最初目的是在數(shù)據(jù)終端設(shè)備DTE(DataTerminalEquipment)與數(shù)據(jù)通信設(shè)備DCE(DataCommunicationEquipment)之間建立接口標(biāo)準(zhǔn)。

RS-232C的典型應(yīng)用如圖9.16所示。

86計(jì)算機(jī)串

口UART調(diào)制解調(diào)器ModemDTEDCE控制發(fā)送接收調(diào)制解調(diào)器Modem串

口UART計(jì)算機(jī)控制接收發(fā)送···

DTEDCERS-232CRS-232C電話線圖9.19RS-232C的典型應(yīng)用87

1.機(jī)械特性

RS-232C采用25腳D型連接器(含插頭/插座)作為DTE與DCE之間通信電纜的連接口,但在實(shí)際進(jìn)行異步通信時(shí),只需9個(gè)信號(hào)即夠用,因此也可以采用9腳D型連接器。

2.電氣特性

RS-232C采用負(fù)邏輯工作,即:邏輯“1”用負(fù)電平表示,有效電平范圍是-3V~-15V

邏輯“0”用正電平表示,有效電平范圍是+3V~+15V

-3V~+3V為過渡區(qū),邏輯狀態(tài)不定,為無效電平。

88引腳號(hào)信號(hào)名稱縮寫傳送方向與功能說明25腳9腳23發(fā)送數(shù)據(jù)TXDDTEDCE輸出數(shù)據(jù)到Modem32接收數(shù)據(jù)RXDDTEDCE由Modem輸入數(shù)據(jù)47請(qǐng)求發(fā)送RTSDTEDCEDTE請(qǐng)求發(fā)送數(shù)據(jù)58清除發(fā)送CTSDTEDCEModem表明同意發(fā)送66數(shù)據(jù)傳輸就緒DSRDTEDCE表明Modem已準(zhǔn)備就緒75信號(hào)地GND無方向

所有信號(hào)的公共地線81載波檢測DCDDTEDCEModem正在接收載波信號(hào)204數(shù)據(jù)終端就緒DTRDTEDCE通知ModemDTE已準(zhǔn)備好229振鈴指示RIDTEDCE表明Modem已收到撥號(hào)呼叫3.引腳信號(hào)定義

表9.4RS-232C主信道引腳信號(hào)89①數(shù)據(jù)線:TXD(TransmittedData):發(fā)送數(shù)據(jù),DTE通過TXD將串行數(shù)據(jù)發(fā) 送到Modem。RXD(ReceivedData):接收數(shù)據(jù),DTE通過RXD接收從Modem來的 串行數(shù)據(jù)。

90②發(fā)送控制信號(hào)線:RTS(RequesttoSend):用來表示DTE請(qǐng)求DCE發(fā)送數(shù)據(jù)。CTS(CleartoSend):用來表示DCE已準(zhǔn)備好,可以為DTE發(fā)送數(shù)據(jù),此信號(hào)是對(duì)RTS的響應(yīng)信號(hào)。

RTS/CTS是一對(duì)握手聯(lián)絡(luò)信號(hào),用于采用Modem的半雙工系統(tǒng)中作發(fā)送/接收方式之間的切換。91

③接收控制信號(hào)線:DSR(DatacommunicationequipmentSetReady):表示Modem已準(zhǔn)備就緒DTR(DataTerminalReady):DTE用來通知Modem,已準(zhǔn)備就緒,可以接收數(shù)據(jù)。92DCD(DataCarrierDetection):用來表示Modem正在接收來自對(duì)方Modem的載波信號(hào),通知DTE準(zhǔn)備接收數(shù)據(jù)。RI(RingingIndicator):通知DTE、Modem已收到電話交換機(jī)送來的振鈴呼叫信號(hào),使用公用電話線時(shí)要用此信號(hào)。

934.信號(hào)線的連接

(1)遠(yuǎn)距離時(shí)的連接計(jì)算機(jī)串

口UART調(diào)制解調(diào)器ModemTXDRXD調(diào)制解調(diào)器Modem串

口UART計(jì)算機(jī)···

電話線圖9.20采用Modem時(shí)RS-232C信號(hào)線的使用

RTSCTSDSRDTRDCDRIGNDTXDRTSCTSDSRDTRDCDRIGNDRXD94(2)近距離時(shí)的連接近距離(少于15m)通信時(shí),可不采用調(diào)制解調(diào)器Modem(亦稱為零Modem方式)。

GNDRXDTXDTXDRXD

計(jì)

2算

3機(jī)

7UART

3計(jì)2算7機(jī)UARTCTSDSRDTRDCDRTSGNDDSRDTRDCDCTSRTSTXDRXDRXDTXD2計(jì)34算58機(jī)206732計(jì)45算820機(jī)67圖9.21無Modem方式的最簡單連接(b)(a)955.EIA-RS-232C與TTL相互轉(zhuǎn)換

如上所述,RS-232C是用正負(fù)電平來表示邏輯狀態(tài),而計(jì)算機(jī)內(nèi)部電路所采用的TTL標(biāo)準(zhǔn)是用高低電平表示邏輯狀態(tài),顯然為了讓計(jì)算機(jī)能利用RS-232C與外界連接,則必須在RS-232C與TTL電路之間進(jìn)行電平轉(zhuǎn)換,實(shí)現(xiàn)這種轉(zhuǎn)換的電路,可以采用分立元件或集成電路芯片。

96TTL

輸入RS-232C輸出74LS0410K10K10KT1T21K

-12V

+5V

圖9.22TTL→RS-232C的電平轉(zhuǎn)換電路97圖9.23RS-232C→TTL的電平轉(zhuǎn)換電路TTL

輸出RS-232C輸入10K1KT1+5V

98圖9.24利用MC1488/MC1489的TTL→RS-232C電平轉(zhuǎn)換

計(jì)算機(jī)串

口UARTMC

1488MC

1489RS-232C

器23TXDRXD+12V-12V+5V99

9.58251可編程串行接口芯片

9.5.1.8251A的特點(diǎn)和內(nèi)部結(jié)構(gòu)

Intel8251A是可編程的串行通信接口芯片,它的主要特點(diǎn)如下:①可用于串行異步通信,也可用于串行同步通信。②對(duì)于異步通信,可設(shè)定停止位為1位、1位半或2位,數(shù)據(jù)位可在5-8位之間選擇。③對(duì)于同步通信,可設(shè)為單同步、雙同步或者外同步,同步字符可由用戶自己設(shè)定。④異步通信的時(shí)鐘頻率可設(shè)為波特率的1倍、16倍或64倍。100⑤可以設(shè)定奇偶校驗(yàn)的方式,也可以不校驗(yàn)。校驗(yàn)位的插入、檢出及檢錯(cuò)都由芯片本身完成。⑥在異步通信時(shí),波特率的可選范圍為0~19.2千波特;在同步通信時(shí),波特率的可選范圍為0~64千波特。⑦提供與外部設(shè)備特別是調(diào)制解調(diào)器的聯(lián)絡(luò)信號(hào),便于直接和通信線路相連接。⑧接收、發(fā)送數(shù)據(jù)分別有各自的緩沖器,可以進(jìn)行全雙工通信。圖9-22給出了8251A的結(jié)構(gòu)框圖。它共由五個(gè)部件構(gòu)成,對(duì)外有28條引腳。8251A各組成模塊的功能及有關(guān)引腳如下:101數(shù)據(jù)總線緩沖器讀/寫控制邏輯電路調(diào)制/解調(diào)控制電路接收控制電路串-并轉(zhuǎn)換發(fā)送緩沖器緩沖器并-串轉(zhuǎn)換發(fā)送控制電路RESETCLKC/DRDWRCSDSRDTRCTSRTSD7-D0內(nèi)部總線TXDRXDTXEMPTYTXCRXRDYRXCSYNDETTXRDY發(fā)送器接收器圖9.258251A內(nèi)部結(jié)構(gòu)框圖接收102單向移位寄存器并行輸出4位右移移位寄存器時(shí)鐘方程:驅(qū)動(dòng)方程:狀態(tài)方程:103104串行接口原理奇偶錯(cuò)溢出錯(cuò)幀格式錯(cuò)RxDRxCTxDTxC控制電路RESETWERDCSINTPEOEFEDB7~DB0TransmitBufEmptyReceiveDataReadyRDRTBE器存寄位移收接器沖緩據(jù)數(shù)收接器沖緩據(jù)數(shù)送發(fā)器存寄位移送發(fā)105(1)I/O緩沖器。這是三態(tài)雙向的緩沖器,引腳D0~D7是8251A和CPU接口的三態(tài)雙向數(shù)據(jù)總線,用于向CPU傳遞命令、數(shù)據(jù)或狀態(tài)信息。與CPU互相交換的數(shù)據(jù)和控制字就存放在這個(gè)區(qū)域,共有三個(gè)緩沖器。①接收緩沖器:串行口收到的數(shù)據(jù)變成并行字符后,存放在這里,以供CPU讀取。②發(fā)送/命令緩沖器:這是一個(gè)分時(shí)使用的雙功能緩沖器,CPU送來的并行數(shù)據(jù)存放在這里,準(zhǔn)備由串行口向外發(fā)送。另外,CPU送來的命令字也存放在這里,以指揮串行接口的工作。由于命令一輸入就馬上執(zhí)行,不必長期存放,所以不會(huì)影響存放發(fā)送數(shù)據(jù)。

106③狀態(tài)緩沖器:存放8251A內(nèi)部的工作狀態(tài),供CPU查詢。(2)讀/寫控制邏輯。本模塊功能是接收CPU的控制信號(hào),控制數(shù)據(jù)傳送方向。(3)接收器及接收控制。接收器的功能是從RXD引腳接收串行數(shù)據(jù),按指定的方式裝配成并行數(shù)據(jù)。(4)發(fā)送器及發(fā)送控制。這個(gè)模塊的功能是從CPU接收并行數(shù)據(jù),自動(dòng)地加上適當(dāng)?shù)某蓭盘?hào)后轉(zhuǎn)換成串行數(shù)據(jù)從TXD引腳發(fā)送出去。(5)調(diào)制解調(diào)控制器。該模塊提供和調(diào)制解調(diào)器的聯(lián)絡(luò)信號(hào)。1079.5.2.8251A的外部引腳

8251A是一個(gè)采用NMOS工藝制造的28腳雙列直插式封裝的組件,其外部引腳如圖8-26所示。

(1)與CPU接口的引腳。

D7~D0:數(shù)據(jù)線。

CLK:時(shí)鐘信號(hào)輸入線,用于產(chǎn)生8251A內(nèi)部時(shí)序。CLK的周期為0.42~1.35μs。

CLK的頻率至少應(yīng)是接收、發(fā)送時(shí)鐘的30倍(對(duì)同步方式)或4.5倍(對(duì)異步方式)。

RESET:復(fù)位信號(hào)輸入線,高電平有效。復(fù)位后8251A處于空閑狀態(tài)直至被初始化編程。108109:片選信號(hào)輸入線,低電平有效。僅當(dāng)為低電平時(shí),CPU才能對(duì)8251A操作。

:信息類型信號(hào)輸入線。為0時(shí)傳輸?shù)氖菙?shù)據(jù),為1時(shí)傳輸?shù)氖强刂谱只驙顟B(tài)信息。

:讀選通信號(hào)輸入線,低電平有效。

:寫選通信號(hào)輸入線,低電平有效。CPU對(duì)8251A的讀寫控制如表9-4所示。

110CSC/DRDWR操作1任意任意任意無操作,D0-D7呈高阻0110寫控制字0010寫數(shù)據(jù)0101讀狀態(tài)0001讀數(shù)據(jù)表9-4CPU對(duì)8251的讀寫控制111RXRDY:接收準(zhǔn)備好狀態(tài)輸入線,高電平有效。當(dāng)接收器接到一個(gè)字符并準(zhǔn)備送給CPU時(shí),RXRDY為1;當(dāng)字符被CPU讀取后RXRDY恢復(fù)為0。RXRDY可作為8251A向CPU申請(qǐng)接收中斷的請(qǐng)求源。

SYNDET/BRKDET:同步狀態(tài)輸出線或者外同步信號(hào)輸入線。此線僅對(duì)同步方式有意義。

TXRDY:發(fā)送準(zhǔn)備好狀態(tài)輸出線,高電平有效。當(dāng)發(fā)送寄存器空閑且允許發(fā)送(腳電平為低、命令字中TXEN位為1)時(shí),TXRDY為高電平。當(dāng)CPU給8251A寫入一個(gè)字符后TXRDY恢復(fù)為低電平。TXRDY可作為8251A向CPU申請(qǐng)發(fā)送中斷的請(qǐng)求源。

TXE:發(fā)送緩沖器空閑狀態(tài)輸出線。高電平有效,TXE=1,表示發(fā)送緩沖器中沒有要發(fā)送的字符,當(dāng)CPU將要發(fā)送的數(shù)據(jù)寫入8251A后,TXE自動(dòng)復(fù)位。112

(2)與外設(shè)或調(diào)制解調(diào)器接口的引腳。RXD:串行數(shù)據(jù)輸入線,高電平表示數(shù)字1,低電平表示數(shù)字0。RXC:接收器時(shí)鐘輸入線。它控制接收器接收字符的速率,在上升沿采集串行數(shù)據(jù)輸入線。RXC的頻率應(yīng)等于波特率(同步方式)或等于波特率的1倍、16倍或64倍(異步方式)。TXD:發(fā)送數(shù)據(jù)輸出線。CPU并行輸入給8251A的數(shù)據(jù)從這個(gè)引腳串行發(fā)送出去。TXC:發(fā)送器時(shí)鐘輸入線,在TXC的下降沿?cái)?shù)據(jù)由8251A移位輸出。對(duì)TXC頻率的要求同RXC。113

:數(shù)據(jù)終端準(zhǔn)備好狀態(tài)輸出線,低電平有效。當(dāng)8251A命令字位D1為1時(shí),有效,用于向調(diào)制解調(diào)器表示數(shù)據(jù)終端已準(zhǔn)備好。

:數(shù)據(jù)設(shè)備準(zhǔn)備好狀態(tài)輸入線,低電平有效。當(dāng)調(diào)制解調(diào)器準(zhǔn)備好時(shí),有效,用于向8251A表示Modem(或DCE)已準(zhǔn)備就緒。CPU可通過讀取狀態(tài)寄存器的D7位檢測該信號(hào)。114

:請(qǐng)求發(fā)送信號(hào)輸出線,低電平有效。當(dāng)8251A命令字位D5為1時(shí),有效,請(qǐng)求調(diào)制解調(diào)器作好發(fā)送準(zhǔn)備(建立載波)。

:清除發(fā)送(允許傳送)信號(hào)輸入線,低電平有效。當(dāng)調(diào)制解調(diào)器作好送數(shù)準(zhǔn)備時(shí),有效,作為對(duì)8251A的信號(hào)的響應(yīng)。如果8251A不使用調(diào)制解調(diào)器而直接和外界通訊,一般應(yīng)將、腳接地。接收器的工作過程:在異步方式中,當(dāng)接收器接收到有效的起始位后,便接收數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。然后將數(shù)據(jù)送入寄存器,此時(shí)RXRDY輸出高電平,表示已收到一字符,CPU可以來讀取。115在同步方式中,若程序設(shè)定8251A為外同步接收,則SYNDET/BRKDET腳用于輸入外同步信號(hào),SYNDET/BRKDET腳上的電平正跳變啟動(dòng)接收數(shù)據(jù)。若程序設(shè)定8251A內(nèi)同步接收,則8251A先搜索同步字(同步字事先由程序裝在同步字符寄存器中)。每當(dāng)RXD線上收到一位信息就移入接收寄存器并和同步字符寄存器內(nèi)容比較,若不等則再收一位再比較,直到兩者相等。此時(shí)SYNDET/BRKDET輸出高電平,表示己搜索到同步字,接下來便把接收到的數(shù)據(jù)逐個(gè)地裝入接收數(shù)據(jù)寄存器。發(fā)送器的工作過程:在異步方式中,發(fā)送器在數(shù)據(jù)前加上起始位,并根據(jù)程序的設(shè)定在數(shù)據(jù)后加上校驗(yàn)位和停止位,然后作為一幀信息從TXD腳逐位發(fā)送數(shù)據(jù).

1169.5.3.8251A的控制字寄存器和狀態(tài)字寄存器

8251A內(nèi)除具有可讀可寫的數(shù)據(jù)寄存器外,還具有只可寫的控制字寄存器和只可讀的狀態(tài)寄存器,CPU對(duì)它們的操作如表8-4所示。(1)控制字寄存器??刂谱旨拇嫫骷拇娣绞娇刂谱趾兔羁刂谱?。①方式控制字。方式控制字確定8251A的通訊方式(同步/異步)、校驗(yàn)方式(奇校驗(yàn)、偶校驗(yàn)、不校驗(yàn))、數(shù)據(jù)位數(shù)(5、6、7或8位)及波特率參數(shù)等。方式控制字的格式如圖9-27所示。它應(yīng)在復(fù)位后寫入,且只需寫入一次。117118

②命令控制字。命令控制字使8251A處于規(guī)定的狀態(tài)以準(zhǔn)備發(fā)送或接收數(shù)據(jù)。命令控制字的格式如圖所示。它應(yīng)在寫入方式控制字后寫入,用于控制8251A的工作,可以多次寫入。方式控制字和命令控制字本身無特征標(biāo)志,也沒有獨(dú)立的端口地址,8251A是根據(jù)寫入先后次序來區(qū)分這兩者的:先寫入者為方式控制字,后寫入者為命令控制字。所以CPU在對(duì)8251A初始化編程時(shí)必須按一定的先后順序?qū)懭敕绞娇刂谱趾兔羁刂谱帧?19120(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:異步通訊幀出錯(cuò)標(biāo)志。為1表示未檢測到字符末尾的有效停止位,但FE錯(cuò)并不禁止8251A工作。FE標(biāo)志由命令控制字中的ER位清除。121122OE:溢出標(biāo)志。接收器內(nèi)的字符尚未被CPU讀走時(shí)又有新的字符裝入,則OE置1,此時(shí)原來的字符丟失,但并不禁止8251A工作,OE標(biāo)志由命令控制字中的ER位清除。PE:奇偶錯(cuò)標(biāo)志。奇偶錯(cuò)時(shí)PE置1,但此時(shí)并不禁止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ā)送緩沖器空外,還要滿足TXE=1,CTS=0才置位。1239.5.4.8251接收器工作過程(1)異步接收方式在RxD線上檢測低電平,控制電路中的一個(gè)內(nèi)部計(jì)數(shù)器進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)到相當(dāng)于半個(gè)數(shù)位傳輸時(shí)間(比如時(shí)鐘脈沖為波特率的16倍時(shí),則計(jì)到第8個(gè)脈沖時(shí),即相當(dāng)于半個(gè)數(shù)位傳輸時(shí)間)時(shí)又對(duì)RxD線上進(jìn)行檢測,如果此時(shí)仍為低電平,則確認(rèn)收到一個(gè)有效的起始位。8251開始進(jìn)行常規(guī)采樣并進(jìn)行字符裝配,具體地說,就是每隔一個(gè)數(shù)位傳輸時(shí)間(在前面假設(shè)下,相當(dāng)于16個(gè)脈沖間隔時(shí)間),對(duì)RxD進(jìn)行一次采樣。數(shù)據(jù)進(jìn)入輸入移位寄存器被移位,并進(jìn)行奇偶校驗(yàn)和去掉停止位,變成了并行數(shù)據(jù),再通過內(nèi)部數(shù)據(jù)總線送到數(shù)據(jù)輸出寄存器,同時(shí)發(fā)出RxRDY信號(hào)送CPU,表示已經(jīng)收到一個(gè)可用的數(shù)據(jù)。124

(2)同步接收方式8251監(jiān)測RxD線,每當(dāng)RxD線上出現(xiàn)一個(gè)數(shù)據(jù)位時(shí),就把它接收下來并把它移入移位寄存器,然后把移位寄存器與同步字符寄存器的內(nèi)容進(jìn)行比較。如果二者不相等,則接收下一位數(shù)據(jù),并且重復(fù)上述比較過程。當(dāng)兩個(gè)寄存器的內(nèi)容比較相等時(shí),8251的SYNDET引腳就升為高電平,以告知同步字符已經(jīng)找到,同步已經(jīng)實(shí)現(xiàn)。實(shí)現(xiàn)同步之后,接收器和發(fā)送器之間就開始進(jìn)行數(shù)據(jù)的同步傳輸。這時(shí),接收器利用時(shí)鐘信號(hào)對(duì)RxD線進(jìn)行采樣,并把接收到的數(shù)據(jù)位送到移位寄存器中。每當(dāng)收到的數(shù)據(jù)位達(dá)到規(guī)定的一個(gè)字符的數(shù)位時(shí),就將移位寄存器的內(nèi)客送到輸入緩沖寄存器,并且在RxRDY引腳上發(fā)出一個(gè)信號(hào),表示收到了一個(gè)字符。1259.5.4.8251A的初始化編程①輸入方式控制字,以決定通信方式、數(shù)據(jù)位數(shù)、校驗(yàn)方式等若是同步通信方式;②輸入一個(gè)或兩個(gè)同步字符,若是異步方式則這一步可省略;③最后送入命令控制字,就可以開始發(fā)送或接收數(shù)據(jù)了。

像所有的可編程器件一樣,8251A在使用前也要進(jìn)行初始化。初始化在8251A處于復(fù)位狀態(tài)時(shí)開始。其過程為:1261278251A的初始化編程必須在復(fù)位操作之后,先設(shè)置方式選擇控制字;如果設(shè)定在異步方式,則馬上要輸出操作命令字進(jìn)行設(shè)置,然后才能進(jìn)行數(shù)據(jù)傳送;在數(shù)據(jù)傳送過程中,也可使用操作命令字進(jìn)行某些操作設(shè)置或讀取8251A的狀態(tài);在數(shù)據(jù)傳送結(jié)束時(shí),若使用IR位為“1”的內(nèi)部復(fù)位命令使8251A復(fù)位,則它又可重新接收方式選擇字,從而改變工作方式完成其他傳送任務(wù)。128編程舉例(1)異步方式下的初始化編程設(shè)定8251A工作于異步方式,波特率因子為64,每字符7個(gè)數(shù)據(jù)位,偶校驗(yàn),2位停止位,則方式選擇控制字為11111011=FBH。操作命令字的設(shè)定,例如使8251A的發(fā)送器允許,接收器允許,使?fàn)顟B(tài)寄存器中的3個(gè)錯(cuò)誤標(biāo)志位復(fù)位,使數(shù)據(jù)終端準(zhǔn)備好信號(hào)DTR輸出低電平,則操作命令字應(yīng)為00010111=17H。129若8251A的端口地址為51H,則初始化程序如下:MOVAL,0FBH;輸出方式選擇字OUT51H,ALMOVAL,17H;輸出操作命令字OUT51H,AL130(2)同步方式下的初始化編程舉例

8251A工作于同步方式,雙同步字符,同步字符設(shè)定為16H,內(nèi)同步,偶校驗(yàn),每字符7個(gè)數(shù)據(jù)位,則方式選擇字為00111000B=38H。操作命令字設(shè)定為10010111B=97H,使發(fā)送器允許,接收器允許,使錯(cuò)誤標(biāo)志復(fù)位,開始搜索同步字符,并通知調(diào)制解調(diào)器,數(shù)據(jù)終端設(shè)備已準(zhǔn)備就緒。1318251A的端口地址為51H,則本例初始化程序如下:MOVAL,38H;輸出方式選擇字OUT51H,ALMOVAL,16H

;輸出兩個(gè)同步字符16HOUT51H,ALOUT51H,ALMOVAL,97H;輸出操作命令字OUT51H,ALCPU執(zhí)行上述程序之后,即完成了對(duì)8251A同步方式的初始化編程。132①異步工作方式,波特率系數(shù)為64(即數(shù)據(jù)傳送速率是時(shí)鐘頻率的1/64),采用偶校驗(yàn),總字符長度為10(1位起始位,8位數(shù)據(jù),1位停止位)。②允許接收和發(fā)送,使錯(cuò)誤位全部復(fù)位。③查詢8251A狀態(tài)字,當(dāng)接收準(zhǔn)備就緒時(shí),則從8251A輸入數(shù)據(jù),否則等待。初始化程序:MOVDX,301H;8251A控制口地址MOVAL,01000000B;內(nèi)部復(fù)位命令字OUTDX,AL;送命令字MOVAL,01111111B;方式控制字OUTDX,AL;送方式控制字133MOVAL,00010101B;操作命令字OUTDX,AL;送操作控制字WAIT:INAL,DX;讀入狀態(tài)字ANDAL,02H;檢查RXRDY=1?JZWAIT;RXRDY≠1,接收未

;準(zhǔn)備就緒,等待INAL,DX134

當(dāng)8251A與CPU連接時(shí),至少要占用兩個(gè)端口地址,即控制端口(C/D=1)和數(shù)據(jù)端口(C/D=0)。在使用8251A時(shí)需要一個(gè)外部時(shí)鐘源提供RXC、TXC和CLK信號(hào)。RXC和TXC由波特率以及時(shí)鐘頻率與波特率的倍率決定。CLK則在RXC、TXC頻率的基礎(chǔ)上增高若干倍。8251A與CPU通常采用查詢或中斷方式交換數(shù)據(jù)。若采用中斷方式,兩個(gè)狀態(tài)信號(hào)TXRDY和RXRDY通過一個(gè)非門接到CPU的外中斷輸入。其余的RD、WR、RESET都是同名端相連。9.5.5.8251A應(yīng)用舉例135在編程時(shí),對(duì)8251A初始化,輸入命令字后就可進(jìn)行數(shù)據(jù)傳送。在得到中斷申請(qǐng)后,通過調(diào)用狀態(tài)字來檢測是接收申請(qǐng)(RXRDY=1)還是發(fā)送申請(qǐng)(TXRDY=1),然后轉(zhuǎn)至相應(yīng)的程序模塊。例:用8251A為8086CPU與CRT終端設(shè)計(jì)一串行通信接口。假設(shè)8251A控制端口地址為301H,數(shù)據(jù)端口地址為300H。要求:①異步方式傳送,數(shù)據(jù)格式為1位停止位,8位數(shù)據(jù)位,奇校驗(yàn);136

②波特率因子為16;③CPU用查詢方式將顯示緩沖區(qū)的字符“GOOD”送CRT顯示。顯示緩沖區(qū)在數(shù)據(jù)段,首地址為

溫馨提示

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