微型计算机原理与接口技术:串行通信技术_第1页
微型计算机原理与接口技术:串行通信技术_第2页
微型计算机原理与接口技术:串行通信技术_第3页
微型计算机原理与接口技术:串行通信技术_第4页
微型计算机原理与接口技术:串行通信技术_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本章讲解的主要内容:

串行通信的基本概念

8251A的编程结构

8251A与外部的连接

8251A的引脚信号

8251A的控制字和状态字

8251A的编程举例§6串行通信技术(书P278,§9.4内容)§6.1串行通信的基本概念一、串行通信特点(1)在一根传输线上按位传送,这根线既作数据线又作联络控制线。(2)为了能够将数据与控制信息分开,数据格式固定,有异步和同步两种格式。(3)对信号的逻辑定义与TTL不兼容,需要进行逻辑关系和逻辑电平转换。(4)串行数据传输距离较并行传送远,可以利用已有的市话网、无线网。为解决传输数据的可靠性,常采用差错控制的方式。(5)收发双方需要约定通信格式与通信速率。二、串行数据传送工作方式(P280,§9.4.3)1、单工方式2、半双工方式3、全双工方式§6.1串行通信的基本概念三、信号的调制与解调(P282~283)2400Hz1200Hz§6.1串行通信的基本概念四、串行通信的同步方式和异步方式(P281)§6.1串行通信的基本概念五、串行通信的传输率(P297)

传输率:也称为比特率,是指每秒钟传送二进制代码的位数,它的单位是bit/s。

§6.1串行通信的基本概念例:设每个字符对应1个起始位、7个信息位、1个奇偶校验位和1个停止位,如果波特率为1200bps,那么,每秒钟能传输的最大字符数为1200/10=120个。六、发送/接收时钟(1)发送/接收时钟发送时钟:用于输出移位寄存器,将并行数据变为串行输出。接收时钟:用于输入移位寄存器,将串行数据变为并行数据。§6.1串行通信的基本概念波特率因子为16的数据采样情况:(2)波特率因子发送/接收1位数据需要的时钟脉冲个数(个/位)。收/发时钟频率=n×波特率,n是波特率因子§6.1串行通信的基本概念§6.2RS-232C串行通信接口标准(P283~284)一、电气信号特性1、在TxD和RxD上:(负逻辑)逻辑1(MARK传号)=-3V~-15V

逻辑0(SPACE空号)=+3V~+

15V

2、在RTS、CTS、DSR、DTR和DCD等控制线上:(正逻辑)信号有效(接通,ON状态,正电压)=+3V~+15V信号无效(断开,OFF状态,负电压)=-3V~-15V

可以看出,RS–232C的电平与TTL电平是不能直接互连的。为了实现与TTL电路的连接,必须进行电平转换。信号电平转换MAX232Intel8251A是可编程的串行通信接口芯片,其主要特点如下:①可用于串行异步通信,也可用于串行同步通信。②对于异步通信,可设定停止位为1位、1位半或2位。③对于同步通信,可设为单同步、双同步或外同步等。同步字符可由用户自己设定。④可以设定奇偶校验的方式,也可以不校验。校验位的插入、检出及检错都由芯片本身完成。⑤异步通信的时钟频率可设为波特率的1倍、16倍或64倍。6.3可编程串行通信接口8251A

(P284)⑥在异步通信时,波特率的可选范围为0

19.2千波特;在同步通信时,波特率的可选范围为0

64千波特。⑦提供与外部设备特别是调制解调器的联络信号,便于直接和通信线路相连接。⑧接收、发送数据分别有各自的缓冲器,可进行全双工通信。下图给出了8251A的内部结构框图,它由5部分组成,各功能模块的功能如下:可编程串行通信接口8251A的特点

一、编程结构(P285)二、8251A的外部引脚(P286~288)1、与CPU连接引脚数据线:D7~D0

复位引脚:RESET

(常与CPU的A0接在一起)

读/写功能说明001CPU从8251A中读取数据010CPU向8251A中写入数据101CPU从8251A中读取状态110CPU向8251A写入控制命令CLK:时钟信号输入线,用于8251A工作时内部的定时。在同步方式下要求大于数据波特率的30倍;在异步方式下大于数据波特率的4.5倍。

1、与CPU连接引脚2、发送控制引脚

TXRDY(TransmitterReady)——发送器准备好信号,输出,高电平有效。当发送寄存器空闲且允许发送(CTS为低电平、命令字中允许位TXEN为1)时,TXRDY输出为高电平,以通知CPU当前8251A已做好发送准备,CPU可以向8251A传送一个字符。当CPU将要发送的数据写入8251A后,TXRDY恢复为低电平。在中断方式时:TXRDY可作为8251A向CPU发送的中断请求信号;在查询方式时:CPU可读取状态寄存器的D0位了解TXRDY的状态。

TXEMPTY(TransmitterEmpty)——发送器空信号,输出端,高电平有效。数据发送完毕TXEMPTY置1,表示发送器中没有要发送的字符,当CPU把要发送的数据写入8251A中后,TXEMPTY自动变为低电平。CPU可读取状态寄存器的D2位了解TXEMPTY的状态。2、发送控制引脚TXC(TransmitterClock)——发送器发送时钟输入端。TXC的频率与波特率之间的关系同RXC。数据在TXC的下降沿由发送器移位输出。

TXD(TransmitterData)——串行数据发送输出线。RXRDY(ReceiverReady)——接收器准备好信号,输出端,高电平有效。

RXRDY=1时,表明8251A已经从串行输入线接收了一个字符,正等待CPU将此数据取走。因此,在中断方式时,RXRDY可作为向CPU申请中断的请求信号;在查询方式时,CPU可读取状态寄存器的D1位了解RXRDY的状态。3、接收控制引脚

RXD(ReceiverData)——串行数据输入线。

SYNDET/BD(SynchronousDetect/BreakDetection)——

双功能引脚,同步检测信号/间断信号检出。在内同步方式下,SYNDET是同步字符检出信号,表明8251A已达到同步状态。工作于外同步方式时是输入信号,输入一个正跳变信号使8251A在RXC的下一个下降沿时开始装配字符。在异步方式下,BD用于间断信号检出,当检测到间断码(空字符)时输出高电平。3、接收控制引脚RXC(ReceiverClock)——接收器接收时钟输入端。在同步方式时,它由外设(或调制解调器)提供,RXC的频率等于波特率;在异步方式时,RXC由专门的时钟发生器提供,其频率是波特率的1倍、16倍或64倍,即波特率将等于RXC端脉冲经过分频得到的脉冲的频率,分频系数可通过方式选择字设定为1、16或64。实际应用中,常将RXC和TXC连在一起,接到同一个信号源上。3、接收控制引脚DTR(DataTerminalReady)——数据终端准备好,输出,低电平有效。数据终端准备好接收数据时,

CPU对8251A输出命令字使控制寄存器D1位置1,从而使DTR变为低电平,以通知外设(Modem)CPU当前已准备就绪。4、与调制解调器连接的引脚DSR(DataSetReady)——数据设备准备好,输入,低电平有效。这是由外设或调制解调器送入8251A的信号,用于表示调制解调器或外设的数据已经准备好。可以查询状态寄存器的D7位了解DSR状态。4、与调制解调器连接的引脚RTS(RequestToSend)——请求发送,输出,低电平有效。CPU通过将控制寄存器的D5位置1,可使RTS变为低电平,用于通知外设(调制解调器)CPU已准备好,请求外设(调制解调器)做好发送准备。CTS(ClearToSend)——清除发送,输入,低电平有效。这是由外设(调制解调器)送往8251A的信号。它是对RTS请求发送的响应信号。一旦外设送来CTS=0则8251发送器开始发送,在发送过程中若CTS变为高电平,则发送器将已装入的数据发送完后,停止发送。三、8251A的控制字寄存器和状态字寄存器

工作方式寄存器(先)命令控制寄存器(后)内部寄存器控制寄存器(只写)状态寄存器(只读)数据寄存器(读写)1、方式控制字(P288)

方式控制字用来确定8251A的通信方式(同步或异步)、校验方式(奇校验、偶校验或不校验)、数据位数(5、6、7或8位)及波特率参数等。它应该在复位后写入,且只需写入一次。方式控制字的格式如下图所示。

同步方式×0—内同步×1—外同步0×—双同步字1×—单同步字同步方式YND7D6D5D4D3D2D1D0

停止位00—无效01—1位10—1位半11—2位

校验方式×0—不校验

01—奇校验

11—偶校验

数据位数00—5位01—6位10—7位11—8位方式及波特率因子00—同步方式01—异步(×1)10—异步(×16)11—异步(×64)P288图9-30方式控制字格式

EPPENL2L1B2B1S2S1SCSESD1、8251A的方式控制字(P288)2、8251A的命令控制字:

(P288)命令控制字使8251A进入规定的工作状态以准备发送或接收数据。它应该在写入方式控制字后写入,可以多次写入。命令控制字格式如下图所示。

P289图9-31命令控制字格式

1—搜索字符SYNC

(对异步方式无影响)EHIRRTSERSBRKRXEDTRTXEND7D6D5D4D3D2D1D0内部复位

1—8251A复位请求发送

1—使RTS输出低电平出错复位

1—使状态信息中的错误标志PE、OE、FE均复位发送允许

1—发送允许

0—发送禁止数据终端准备好

1—使DTR引脚输出低电平接收允许

1—接收允许

0—接收禁止发送空白字符(空号)

1—使TXD引脚为低电平使发送间断2、8251A的命令控制字(P289)

3、状态寄存器(P290)状态寄存器存放8251A的状态信息,供CPU查询。状态字各位的意义如图6.13所示。图6.13状态字格式即数据设备准备好(1)奇偶校验错当PE=1时,出现“奇偶校验错”。接收器按照约定的方式(奇校验、偶校验或无奇偶校验)进行奇偶校验计算,然后将奇偶检验的期望值和它的实际值进行比较,如果两者不一致,便把PE位置1,以便CPU查询。三种错误概述:奇偶校验错、帧格式错、溢出错误(3)溢出错误当OE=1时,出现“溢出错误”。所谓溢出错误,是指当CPU尚未读完一个字符而下一个字符已经到来,此时OE标志被置“1”。发生这种错误时,上一个字符将丢失。(2)帧格式错当FE=1时,出现“帧格式错”。所谓帧格式错,是指在异步方式下当一个字符终了而没有检测到规定的停止位时的差错。以上三种错误均可由控制命令字中的ER位来复位,发生这些错误时不会禁止8251A的工作。三种错误概述:四、8251A初始化编程举例同所有的可编程芯片一样,8251A在使用前也要进行初始化。其过程为:首先写入方式控制字,以决定通信方式、数据位数、校验方式等。若是同步方式则紧接着送入一个或两个同步字符,若是异步方式则这一步可省略,最后送入命令控制字,就可以发送或接收数据了。初始化过程的信息全部写入控制端口,特征是C/D=1,即地址线A0=1(因为C/D接至A0)。

由于各控制字没有特征位,因而写入的顺序不能颠倒,否则就会出错。

(流程图)

1.异步方式下初始化编程举例设CPU为8088,8251A控制口的地址为261H,数据口地址为260H,按下述要求对8251A进行初始化。

异步工作方式,波特率因子为16(即数据传送速率是时钟频率的1/16),采用偶校验,字符总长度为10(1位起始位,7位数据位,1位奇偶校验位,1位停止位)。控制字为37H,即清除出错标志、允许发送和接收、数据终端准备好、请求发送。模式字和控制字格式参见书P288~P289初始化程序如下:

MOVDX,261H ;8251A控制口地址

MOVAL,7AH ;01111010B方式控制字* OUTDX,AL MOVAL,37H ;00110111B命令控制字* OUTDX,AL

1.异步方式下初始化编程举例2、同步方式下初始化编程举例设CPU为8086,8251A设定为同步工作方式,控制口“奇”地址为52H,2个同步字符,采用内同步,偶校验,每个字符占7个数据位。

2个同步字符,它们可以相同,也可以不同。本例使用两个相同的同步字符16H。初始化编程如下:模式字和控制字格式参见书P288~P289MOV AL,00111000B ;方式控制字:设置工作方式、双同步 字符、偶校验、每个字符7位*

OUT 52H,AL ;送方式控制字

MOV AL,16H ;同步字符

OUT 52H,AL ;送第一个同步字符

OUT 52H,AL ;送第二个同步字符

MOV AL,10010111B ;命令控制字—使接收器和发送器启动,使状态寄存器中的3个出错标志位复位*

OUT 51H,AL ;发命令控制字2、同步方式下初始化编程举例16550串行通信芯片简介主要内容:

内部结构主要引脚内部寄存器编程举例16550内部结构AddressStrobeDriverDisableAddressStrobeDriverDisable寄存器端口地址分配线路控制寄存器LCR--设置工作模式(使用)线路状态寄存器LSR--反映工作状态FIFO控制器FCR(写3FAH)中断识别寄存器IIR(读3FAH)中断允许寄存器IER(使用)MODEM状态寄存器MSRMODEM控制寄存器MCR时钟源频率1.8432MHz(实验箱)时钟频率是数据传送波特率的16倍分频系数=1843200/(波特率

16)当波特率=9600时:分频系数=1843200/(9600

16)=12,即0CH波特率与分频系数的关系波特率与分频系数对应表(1.8432MHz)波特率除数高8位除数低8位24000030480000189600000C192000006IOY0EQU3000H ;片选IOY0对应的端口始地址MY16550_0EQUIOY0+00H*4;16550数据缓冲寄存器端口地址MY16550_1EQUIOY0+01H*4;16550中断允许寄存器端口地址MY16550_3EQUIOY0+03H*4;16550线路控制寄存器端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE实验程序清单(T16550-1.ASM)START:MOVDX,MY16550_3;设置16550线路控制寄存器

MOVAL,80H ;准备设置波特率除数寄存器

OUTDX,AL MOVDX,MY16550_0 ;设置除数寄存器低字节0CH MOVAL,0CH ;000C对应9600bit/s OUTDX,AL MOVDX,MY16550_1 ;设置除数寄存器高字节00H MOVAL,00H OUTDX,AL MOVDX,MY16550_3 ;设置线路控制寄存器,初始化数据格式

MOVAL,1BH ;偶校验,1位停止位,字符宽度为8 OUTDX,AL MOVDX,MY16550_1 ;设置中断允许寄存器

MOVAL,00H ;中断不打开

OUTDX,ALSEND:MOVDX,MY16550_0 ;向发送缓冲寄存器写数

MOVAL,55H OUTDX,AL CALLDALLY MOVAH,1 ;判断是否有按键按下

INT16H JZSEND ;无按键则跳回继续等待,有则退出QUIT:MOVAX,4C00H ;结束程序退出

INT21HDALLYPROCNEAR ;软件延时子程序

PUSHCX PUSHAX MOVCX,0100HD1: MOVAX,1000HD2: DECAX JNZD2 LOOPD1 POPAX POPCX RETDALLYENDPCODEENDSENDSTART两重循环本章小结:1、如何理解可编程芯片?2、8251芯片初始化步骤。3、在给定寄存器格式的情况下,要求掌握初始化程序设计。某系统中使用可编程串行接口芯片8251A工作在异步方式,7位数据,不带校验,2位停止位,波特率系数为16,清除出错标志、允许发送和接收、数据终端准备好、请求发送,已知片选信号地址为260H~267H,试编写初始化程序。作业:END线路控制寄存器LCR--设置工作模式00001011BAH功能返回参数0从键盘读一字符AL=字符码

AH=扫描码1读键盘缓冲区的字符

如ZF=0

AL=字符码

AH=扫描码

如ZF=1,缓冲区空2取键盘状态字节AL=键盘状态字节BIOS16H中断寄存器端口地址分配线路控制寄存器LCR--设置工作模式线路状态寄存器LSR--反映工作状态80H1BH中断允许寄存器IERMODEM状态寄存器MSR00H以下为自学内容例题1:用8251A为8086CPU与CRT终端设计一串行通信接口。假设8251A控制端口地址为301H,数据端口地址为300H。要求:

①异步方式传送,数据格式为1位停止位,8位数据位,奇校验;

②波特率因子为16;

③CPU用查询方式将显示缓冲区的字符“HAPPYNEWYEAR”送CRT显示器。显示缓冲区在数据段。五、8251A应用举例

地址译码器A0地址锁存器8088CPUALECLK8251ATXDCSC/D

GNDCRT终端14881489波特率发生器AD0~AD15

WR

RDCLK

WR

RD

CTX

CRX

CTS

DSRRXDD7~D0D7~D08088CPU与CRT终端的串行接口

解:(1)硬件设计(P216)

(2)软件设计:

DATA SEGMENT STRINGDB 'HappyNewYear',0Ah,0DH COUNTEQU$-STRING DATA ENDS CODE SEGMENT ASSUMEDS:DATA,CS:CODESTART:MOVAX,DATA MOVDS,AX

;----以下是初始化程序----

MOVDX,301H ;控制口地址

MOVAL,01011110B ;方式控制字P211* OUT DX,AL ;送方式控制字

MOV AL,00010001B ;命令控制字P212* OUT DX,AL ;送命令控制字

;----以下是显示程序----

MOV BX,OFFSETSTRING ;字符串偏移地址

MOV CX,COUNT ;发送字符个数WAIT:MOV DX,301H ;状态口地址

INAL,DX ;读状态字P213* TEST AL,01H ;检测TXRDY=1?

JZWAIT ;TXRDY=0,则等待

MOV DX,300H ;数据口地址 MOV AL,[BX] ;从数据缓冲区读要发送的字符

OUT DX,AL ;发送字符

INC BX ;数据缓冲区地址加1 LOOP WAIT ;若字符未送完,则循环发送

MOV AH,4CH INT 21HCODEENDS END START例题2

要求在甲乙两机之间进行近距离串行数据通讯,甲机发送,乙机接收,数据长度为2DH,采用起止式异步方式,字符长度8位,2位停止位,偶校验,波特率因子为16,波特率为4800,CPU与8251A之间用查询方式交换数据,数据口地址为300H,命令/状态口地址为301H。发送程序:CODE SEGMEN ASSUMECS:CODETRANPROCFARSTART:MOVDX,301H; MOVAL,00H ;空操作,代替模式字

OUTDX,AL MOVAL,40H;控制字40H为内部复位

OUTDX,AL NOP MOVAL,0FEH;FEH为方式字*OUTDX,AL MOVAL,37H ;37H为命令字,启动发送和接收器*

OUTDX,AL MOVCX,2DH ;2D是待传送数据的字节数

LEASI,DAT ;DAT是发送数据区首地址

L1: MOVDX,301H ;状态口

INAL,DX TESTAL,38H ;检测是否发生传输错误,* JNZERR ;3个状态位有“1”,表示出错

TESTAL,01H ;检测数据输出缓冲器是否为空

JZL1 ;不为空继续查询状态字 MOVDX,300H ;数据口地址

MOVAL,[SI] ;取缓冲区数据

OUTDX,AL ;发送数据

INCSI ;修改缓冲区数据地址

LOOPL1 ;循环发送

MOVAH,4CH INT21HTRANENDPCODEENDS ENDSTART接收程序:CODESEGMENT ASSUMECS:RECRECVPROCFARBEGIN:MOVDX,301H MOVAL,00H;空操作,代替模式字

OUTDX,AL MOVAL,40H ;命令字,内部复位

OUTDX,ALNOPMOVAL,0FEH;0FEH是方式字*OUTDX,ALMOVAL,14H ;命令字P212OUTDX,ALMOVCX,2DH ;2DH为数据长度LEADI,DAT ;DAT为数据区首地址L2: MOVDX,301H ;状态口

INAL,DXTESTAL,38H ;检测是否发生传输错误*

JNZERRTESTAL,02H ;是否接收到一个字符(RXRDY=1?)JZL2MOVDX,300H ;300H为数据口地址

INAL,DX ;读入数据

MOV[DI],AL ;保存数据

INCDI ;修改保存数据的地址

LOOPL2 ;循环读取数据

JMPSTOPERR:略STOP:MOVAH,4CHINT21HRECVENDPCODEENDSENDBEGINENDBACK

同步方式×0—内同步×1—外同步0×—双同步字1×—单同步字同步方式YND7D6D5D4D3D2D1D0

停止位00—无效01—1位10—1位半11—2位

校验方式×0—不校验

01—奇校验

11—偶校验

数据位数00—5位01—6位10—7位11—8位方式及波特率因子00—同步方式01—异步(×1)10—异步(×16)11—异步(×64)P240图6.11方式控制字格式

EPPENL2L1B2B1S2S1SCSESD01111010BBACKP241图6.12命令控制字格式

1—搜索字符SYNC

(对异步方式无影响)EHIRRTSERSBRKRXEDTRTXEND7D6D5D4D3D2D1D0内部复位

1—8251A复位请求发送

1—使RTS输出低电平出错复位

1—使状态信息中的错误标志PE、OE、FE均复位发送允许

1—发送允许

0—发送禁止数据终端准备好

1—使DTR引脚输出低电平接收允许

1—接收允许

0—接收禁止发送空白字符(空号)

1—使TXD引脚为低电平使发送间断00010111BBACK

同步方式×0—内同步×1—外同步0×—双同步字1×—单同步字同步方式YND7D6D5D4D3D2D1D0

停止位00—无效01—1位10—1位半11—2位

校验方式×0—不校验

01—奇校验

11—偶校验

数据位数00—5位01—6位10—7位11—8位方式及波特率因子00—同步方式01—异步(×1)10—异步(×16)11—异步(×64)P240图6.11方式控制字格式

EPPENL2L1B2B1S2S1SCSESD00111000BBACKP241图6.12命令控制字格式

1—搜索字符SYNC

(对异步方式无影响)EHIRRTSERSBRKRXEDTRTXEND7D6D5D4D3D2D1D0内部复位

1—8251A复位请求发送

1—使RTS输出低电平出错复位

1—使状态信息中的错误标志PE、OE、FE均复位发送允许

1—发送允许

0—发送禁止数据终端准备好

1—使DTR引脚输出低电平接收允许

1—接收允许

0—接收禁止发送空白字符(空号)

1—使TXD引脚为低电平使发送间断10010111BBACK

同步方式×0—内同步×1—外同步0×—双同步字1×—单同步字同步方式YND7D6D5D4D3D2D1D0

停止位00—无效01—1位10—1位半11—2位

校验方式×0—不校验

01—奇校验

11—偶校验

数据位数00—5位01—6位10—7位11—8位方式及波特率因子00—同步方式01—异步(×1)10—异步(×16)11—异步(×64)P240图6.11方式控制字格

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论