1、2018/7/18,1,微机原理及应用,第十一章 串行通信及接口电路,微机原理及应用第11章 串行通信及接口电路 2,串行通信的基本概念,可编程串行I/O接口8251A,8251A应用举例,主要学习内容,微机原理及应用第11章 串行通信及接口电路 3,计算机,计算机,计算机及外设,并行,串行,计算机或外设,01001001,01001001,D0,控制(选通),D1,D2,D3,D4,D5,D6,D7,状态,8T,0 1 00 1 00 1,并行通信与串行通信,并行通信:数据各位同时传送,串行通信:数据一位一位顺序传送,11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路
2、4,一、串行通信的特点,1. 节省传输线,2. 传输速度慢,数据传输速度常用波特率表示,n波特= n bit/s,11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 5,二、异步通信和同步通信,在串行通行中有两种最基本的通信方式:,1. 异步通信ASYNC (Asynchronous Data Communication),11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 6,例:传送字符“ E”的ASCII波形,b6 b5 b4 b3 b2 b1 b0,“ E”的ASCII码:1 0 0 0 1 0 1,0 1 0 1 0 0 0 1 0 1,图
3、 字符E传送波形,异步通信传输效率低,传输速率较慢。,起始位,奇校检,停止位,11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 7,2. 同步通信SYNS,(Synchronous Data Communication),11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 8,显然,同步传送的数据传送效率比异步传送高,传送速度也优于异步传送方式。但在通信的数据流中,要求字符与字符之间,字符内部的位与位之间都必须同步。这样,接收端与发送端必须以同一时钟实现双方的同步,因此硬件电路比较复杂。,11.1 串行通信的基本概述,微机原理及应用第11章 串行通
4、信及接口电路 9,通常同步传送适用于计算机之间的高速通信。而异步通信的效率相对比较低,但由于在通信过程中不需要传送相应的时钟信号,而是通过每一帧数据起始位和停止位来进行同步,因此对支持通信的电路要求比较低,成为一种很实用的通信方式。,11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 10,三、波特率与发送接收时钟 1.波特率 所谓波特率,是指单位时间内传送二进制数据的位数,其单位是位秒(b/s)。它是衡量串行数据速度快慢的重要指标。有时也用“位周期”来表示传输速率,位周期是波特率的例数。最常用的标准波特率是110 , 300,600,1200,2400 4800,960
5、0和19200b/s。 2.发送/接收时钟 3.波特因子 所谓波特因子(Factor)是发送接收1位数据(1个数据位)所需要的时钟脉冲个数,其单位个/位。,11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 11,四、数据传送方向,1. 单工(Simplex),11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 12,2. 半双工 (Half Duplex),11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 13,3. 全双工 (Full Duplex),11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路
6、 14,五、信号的调制与解调,调制器(Modulator),解调器(Demodulator),调制解调器(MODEM),11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 15,数字调制方法:振幅键控 ASK,频移键控 FSK,相移键控 PSK,11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 16,六、串行I/O的实现,当数据由计算机送至串行数据终端时,要先把并行的数据转换为串行的数据,即实现并串转换。,反之,要实现串并转换。,11.1 串行通信的基本概述,微机原理及应用第11章 串行通信及接口电路 17,11.1 串行通信的基本概述,串行通信接
7、口标准经过使用和发展,目前已有几种。但都是在RS-232C标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。一、RS-232接口标准串行通信接口标准经过使用和发展,目前已有几种。但都是在RS-232C标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。,微机原理及应用第11章 串行通信及接口电路 18,11.1 串行通信的基本概述,美国电子工业协会EIA上BELL等公司制定的通用标准串行接口1962年公布,1969年修订1987年1月正式改名为EIA-232D设计目的是用于连接调制解调器现已成为数据终端设备DTE(例如计算机)与数据通信设备DCE(例如调制解调器)的标
8、准接口,微机原理及应用第11章 串行通信及接口电路 19,11.1 串行通信的基本概述,232C接口标准使用一个25针连接器绝大多数设备只使用其中9个信号,所以就有了9针连接器232C与计算机中信号不兼容,连接时要经过电平转换。,微机原理及应用第11章 串行通信及接口电路 20,微机原理及应用第11章 串行通信及接口电路 21,一、8251A 内部结构,Intel 8251A内部结构,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 22,1. 接收器,接收RXD上的串行数据,转换为并行数据接收数据缓冲器。,2. 发送器,把CPU送来的并行数据规定的串行数据
9、由TXD发送。,3. 数据总线缓冲器,CPU与8251A之间的数据通道。内部有状态缓冲器、接收数据缓冲器、发送数据缓冲器、命令缓冲器。,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 23,4. 读/写控制逻辑,接收CPU输出的控制信号,实现对8251A内部寄存器的读/写。,5. 调制解调控制电路,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 24,二、8251A的接口信号,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 25,8251A作为CPU与外设或调制解调器之间的接口,如
10、下图所示,DTR,DSR,RTS,CTS,RXC,D7-0,TXC,TXD,CPU,外设或调制器,RD,WR,TXRDY,TXE,RXRDY,SYNDET,8251,CS,AB,GND,译码器,RXD,微机原理及应用第11章 串行通信及接口电路 26,接口信号分为二组:,1. 与CPU的接口信号, D0D7: 三态双向数据总线,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 27, TXRDY(Transmitter Ready):发送准备好。, TXE (Transmitter Empty):发送器空信号。, RXRDY (Receiver Ready)
11、: 接收器准备好。,有效,表示发送器中的并串转换器为空。,有效表示发送数据缓冲器为空。可以为作状态信号或中断请求信号,有效,表示8251A已接收到一个字符,可以传送给CPU。可以作为状态信号或中断请求信号。,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 28,2. 与外设或MODEM的接口信号,数据终端准备好。,输出,低有效,表示8251A准备就绪。,输入,低有效,表示外设或MODEM已准备好。,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 29,输出信号,低有效,用于通知外设或MODEM,8251A要求发送。,1
12、1.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 30, RXD(Receiver Data): 接收数据线。, RXC(Receiver Clock): 接收器时钟。, TXD(Transmitter Data): 发送数据线。, TXC(Transmitter Clock): 发送器时钟。,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 31,11.2 可编程串行I/O接口8251A,使用联络信号的多线相连方式,通信比较可靠,所用连线较多,不经济,微机原理及应用第11章 串行通信及接口电路 32,三、8251A的控制字
13、与状态字,1. 工作方式字,作用: 工作方式选择(同步、异步), 指定数据帧格式,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 33,方式字8位可以分为四组,每组两位,其格式如下:,D7,D6,D5,D4,D3,D2,D1,D0,停止位,奇偶校验,字符长度,波特率系数,(同步),*0=内同步,*1=外同步,0*=双同步,1*=单同步,(异步),00=不用,01=1位,10=1.5位,11=2位,*0=无校验,01=奇校验,11=偶校验,00=5位,01=6位,10=7位,11=8位,(异步),00=不用,01=1,10= 16,11= 64,(同步),0
14、0=同步,-,-,-,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 34,若工作方式字=11011110B, 则规定8251A工作于异步方式,数据格式采用8位数据位,2位停止位,奇校验,波特率系数是16。,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 35,例1:某异步通信中,其数据格式为:1位起始位、1位停止位,7位数据位,奇检验,波特率系数为16,则其异步方式选择控制字为:01011010B5AH,将其写入控制口的程序段如下:,MOVDX,3F9H;8251A的控制口地址MOVAL,5AH ;异步方式选择控制字
15、OUT DX,AL ;异步方式字写入控制口,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 36,例2:某同步通信中,设帧数据格式为:字符长度为8位,双同步字符且内同步,偶校验,则同步方式选择控制字为:00111100B3CH。,将该方式字写入控制口的程序段为:,MOV DX,3F9H ;8251A的控制口地址MOV AL,3CH ;同步方式选择控制字OUT DX,AL ;同步方式字写入控制口,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 37,2. 工作命令字,作用:确定8251A的实际操作,迫使8251A进行某种
16、操作或处于某工作状态,以便接收或发送数据。,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 38,微机原理及应用第11章 串行通信及接口电路 39,将该操作命令字写入控制口的程序段为:MOVDX,3F9H;8251A的控制口地址MOVAL,15H ;允许接收,允许发送, 错误标志复位的操作命令字OUTDX,AL,例3:某异步通信中,要求8251A允许接收,允许发送,全部错误标志复位,则操作命令字为:00010101B15H。,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 40,3. 状态字,D7 D6 D5 D4 D
17、3 D2 D1 D0,DSR,数据装置准备好,SYNDET,同步检出,FE,格式错,PE,溢出错,奇偶错,OE,TXE,发送器空,RXRDY,接收准备好,TXRDY,发送准备好,11.2 可编程串行I/O接口8251A,微机原理及应用第11章 串行通信及接口电路 41,例:若要检查8251A的发送器是否准备好,则可用下列程序段实现:,微机原理及应用第11章 串行通信及接口电路 42,四、8251A的编程逻辑,硬件(RESET)或软件(命令字D61)复位,异步方式字,单同步方式字,双同步方式字,送同步字符,送同步字符1,送同步字符2,命令字1(D61),命令字2(D61),命令字3(D6=1),
18、复位,方式字,命令字,复位,微机原理及应用第11章 串行通信及接口电路 43,采用8251A可以实现微机与微机之间、主机与外设之间的串行通信。对于用8251A进行串行接口电路的设计,在明确功能以后,要注意以下几个问题:,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 44,1、确定串行通信的方式,如全双工还是半双工,同步传送还是异步传送,并确定数据传输的波特率,选择合适的波特率因子。在波特率确定以后,就可以计算发送器时钟和接收器时钟频率。,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 45,2、完成以8251A为核心的硬件接口电路,实现82
19、51A与CPU的连接以及与外设的连接。同时,根据CPU与8251A的数据交换方式是程序查询还是中断方式来确定具体的硬件电路。,3、在硬件电路设计完成以后,就要考虑软件的编程。对8251A的编程工作分二个阶段:初始化工作和数据传送操作工作。,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 46,下面以两台微机之间进行双机串行通信的硬件设计和软件编程为例来说明8251A的具体应用。,例:甲乙两台微机之间进行串行通信,甲机发送,乙机接收。要求把甲机上开发的应用程序(其长度为2DH)传送到乙机中去。采用异步方式,字符长度为8位,2位停止位,波特率因子为64,无校验,波特率为4
20、800b/s。CPU与8251A之间用查询方式交换数据。口地址分配是:309H为命令/状态口,308H为数据口。,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 47,1.硬件设计,由于是近距离传输,可以不需MODEM而直接互连。并且,采用查询IO方式,故收/发程序中,只需检查收/发准备好的状态是否置位,即可收发1个字节。,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 48,根据以上分析把两台微机都当作DTE,它们之间只需TXD、RXD、SG三根线连接就能通信。采用8251A作为接口的主芯片再配置少量附加电路,如波特率时钟发生器、RS-23
21、2C与TTL电平转换电路、地址译码电路等就可构成一个串行通信接口。,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 49,图10-21 双机串行通信接口,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 50,2.软件编程,接收和发送程序分开编写,每个程序段中包括8251A初始化,状态查询和输入/输出等部分。,(1)发送程序(略去STACK和DATA段):,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 51,CSEG SEGMENT,ASSUME CS:CSEG, DS:CSEG,TRA PROC FAR,START
22、:MOV DX, 309H ;命令口,MOVAL, 40H;内部复位(使D61),OUTDX, AL,NOP,MOV AL,0CFH ;方式命令字(异步,2位停止位,字符长度为8位,无,;校验,波特率因子为64),微机原理及应用第11章 串行通信及接口电路 52,OUTDX,AL,MOV AL,37H ;工作命令字(RTS、ER、RXE、DTR、TXEN均置1),OUTDX,AL,MOVCX,2DH;传送字节数,MOVSI,300H;发送区首址,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 53,L1:MOVDX,309H;状态口,INAL,DX;查状态位D0(TX
23、RDY)1?,ANDAL,01H,JZL1;发送未准备好,则等待,MOVDX,308H;数据口,MOV AL, SI ;发送准备好,则从发送区取一字节发送,OUTDX,AL,微机原理及应用第11章 串行通信及接口电路 54,INCSI;内存地址加1,DECCX;字节数减1,JNZL1;未发送完,继续,MOVAX,4C00H;已送完,回DOS,INT21H,TRAENDP,CSEG ENDS,ENDSTART,微机原理及应用第11章 串行通信及接口电路 55,(2)接收程序(略去STACK和DATA段):,SCEG SEGMENT,ASSUMECS:REC,DS:SCEG,RECPROCFAR,
24、BEGIN:MOVDX,309H;命令口,MOVAL,50H;内部复位(含D61),OUTDX,AL,NOP,MOVAL,0CFH;方式字,微机原理及应用第11章 串行通信及接口电路 56,OUTDX,AL,MOVAL,14H;命令字(ER,RXE置1),OUTDX,AL,MOVCX,2DH;传送字节数,MOVDI,400H;接收区首址,11.3 8251A应用举例,微机原理及应用第11章 串行通信及接口电路 57,L2MOVDX,309H;状态口,IN AL,DX,TESTAL,38H;查错误,JNZ ERR;有错,则转出错处理,ANDAL,02H;查状态位D1(RXRDY)1?,JZ L2;接收未准备好,则等待,MOV DX,308H;数据口,IN AL,DX;接收准备好,则接收1字节,微机原理及应用第11章 串行通信及接口电路 58,MOV DI ,AL;存入接收区,INC DI;内存地址加1,LOOP L2;未接收完,继续,JMP STOP,ERR:(略),STOP: MOV AX,4C00H ;已接收完,程序结束,退出,INT21H ;返回DOS,REC ENDP,CSEG ENDS,ENDBEGIN,