2009-7-31 1
微机原理及应用第十一章 串行通信及接口电路微机原理及应用 —— 第 11章 串行通信及接口电路 2
串行通信的基本概念
可编程串行 I/O接口 8251A
8251A应用举例主要学习内容微机原理及应用 —— 第 11章 串行通信及接口电路 3
计算机计算机计算机及外设并行串行计算机或外设
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
D0
控制 (选通 )
D1
D2
D3
D4
D5
D6
D7
状态
8T
0 1 00 1 00 1
并行通信与串行通信并行通信:数据各位同时传送串行通信:数据一位一位顺序传送
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 4
一、串行通信的特点
1,节省传输线
2,传输速度慢数据传输速度常用波特率表示
n波特 = n bit/s
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 5
二、异步通信和同步通信在串行通行中有两种最基本的通信方式:
1,异步通信 ASYNC
(Asynchronous Data Communication)
异步通信的格式
1 0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 1 00/10/1 0/1 0/1 0/1
奇偶校验停止位起始位 7位数据低位 高位数据流向奇偶校验停止位起始位 7位数据下降边指出下一个字符的开始第 n个字符第 (n?1)个字符 第 (n+1)个字符
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
图 字符 E传送波形异步通信传输效率低,传输速率较慢。
起始位奇校检停止位
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 7
2,同步通信 SYNS
(Synchronous Data Communication)
  S Y N 字符 1 S Y N 字符 2   数据块图 10 - 5  同步传送格式
   

11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 8
显然,同步传送的数据传送效率比异步传送高,传送速度也优于异步传送方式 。 但在通信的数据流中,要求字符与字符之间,字符内部的位与位之间都必须同步 。 这样,接收端与发送端必须以同一时钟实现双方的同步,因此硬件电路比较复杂 。
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 9
通常同步传送适用于计算机之间的高速通信 。 而异步通信的效率相对比较低,但由于在通信过程中不需要传送相应的时钟信号,
而是通过每一帧数据起始位和停止位来进行同步,因此对支持通信的电路要求比较低,
成为一种很实用的通信方式 。
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 10
三、波特率与发送/接收时钟
1.波特率所谓波特率,是指单位时间内传送二进制数据的位数,其单位是位/秒( b/s)。它是衡量串行数据速度快慢的重要指标。有时也用,位周期,来表示传输速率,位周期是波特率的例数。最常用的标准波特率是 110,300,600,1200,2400 4800,9600和 19200b/s。
2.发送 /接收时钟
3.波特因子所谓波特因子( Factor)是发送/接收 1位数据 (1个数据位)所需要的时钟脉冲个数,其单位个 /位。
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 11
四、数据传送方向
1,单工 (Simplex)
发送 接收
A站 B站
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 12
2,半双工 (Half Duplex)
发送器
A站 B站接收器发送器接收器
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 13
3,全双工 (Full Duplex)
发送器
A站 B站接收器接收器发送器
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 14
五、信号的调制与解调调制器 (Modulator)
解调器 (Demodulator)
调制解调器 (MODEM)
计算机 MODEM MODEM CRT
10 10 10 10 10 10 10 101 0 1 0
模拟信号两线电话线数字信号 数字信号计算机模拟信号数字信号 数字信号调制与解调示意图
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 15
数字调制方法:振幅键控 ASK
频移键控 FSK
相移键控 PSK
频移键控调制原理图
1

+ +
0 1 0 1 0 0 1 0
频率 f1
频率 f2
DATA
A
输出
S1
S2
0 1 0
(FSK)
频率频率 输出
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 16
六、串行 I/O的实现当数据由计算机送至串行数据终端时,
要先把并行的数据转换为串行的数据,即实现并?串转换。
反之,要实现串?并转换。
11.1 串行通信的基本概述微机原理及应用 —— 第 11章 串行通信及接口电路 17
11.1 串行通信的基本概述串行通信接口标准经过使用和发展,目前已有几种。但都是在 RS-232C标准的基础上经过改进而形成的。所以,以 RS-232C为主来讨论。
一,RS-232接口标准串行通信接口标准经过使用和发展,目前已有几种。但都是在 RS-232C标准的基础上经过改进而形成的。所以,以 RS-232C为主来讨论。
微机原理及应用 —— 第 11章 串行通信及接口电路 18
11.1 串行通信的基本概述
美国电子工业协会 EIA上 BELL等公司制定的 通用标准串行接口
1962年公布,1969年修订
1987年 1月正式改名为 EIA-232D
设计目的是用于连接调制解调器
现已成为数据终端设备 DTE(例如计算机)与数据通信设备 DCE(例如调制解调器)的标准接口微机原理及应用 —— 第 11章 串行通信及接口电路 19
11.1 串行通信的基本概述
232C接口标准使用一个 25针连接器
绝大多数设备只使用其中 9个信号,所以就有了 9针连接器
232C与计算机中信号不兼容,连接时要经过电平转换。
微机原理及应用 —— 第 11章 串行通信及接口电路 20
微机原理及应用 —— 第 11章 串行通信及接口电路 21
一,8251A 内部结构
Intel 8251A
内部结构读 /写控制逻辑发送器
( P?S)
发送
(控制)
调制解调控制接收器
( S?P)
接收
(控制)
RESET
CLK
C / D
RD
WR
CS
DTR
DSR
RTS
CTS
状态缓冲器发送数据 /命令缓冲器接收数据缓冲器外部数据总线
TXD
TXRDY
TXE
TXC
RXRDY
SYNDET
RXC
RXD
读 写控制逻辑发送器
( )
发送
(控制)
调制解调控制接收器
( )
接收
(控制)
状态缓冲器发送数据 命令缓冲器接收数据缓冲器外部数据总线
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 22
1,接收器接收 RXD上的串行数据,转换为并行数据?
接收数据缓冲器。
2,发送器把 CPU送来的并行数据?规定的串行数据由 TXD发送。
3,数据总线缓冲器
CPU与 8251A之间的数据通道。内部有状态缓冲器、接收数据缓冲器、发送数据缓冲器、命令缓冲器。
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 23
4,读 /写控制逻辑接收 CPU输出的控制信号,实现对 8251A
内部寄存器的读 /写。
8251A读 /写操作
CS DC/ RD WR 操作
0 0 0 1 读数据 8251A?CPU
0 1 0 1 读状态 8251A?CPU
0 0 1 0 写数据 CPU?8251A
0 1 1 0 写控制字 CPU?8251A
5,调制解调控制电路
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 24
二,8251A的接口信号
8251A
D1
D0
VCC
RXC
DTR
RTS
DSR
RESET
CLK
TXD
TXEMPTY
CTS
SYNDET/BD
TXRDY
D2
D3
RXD
GND
D4
D5
D6
D7
TXD
WR
CS
C / D
RD
RXRDY
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 25
8251A作为 CPU与外设或调制解调器之间的接口,如下图所示
DTR
DSR
RTS
CTS
RXC
D7-0
TXC
TXD
CPU
外设或调制器
RD
WR
TXRDY
TXE
RXRDY
SYNDET
8251
CS
DC/
AB
GND
译码器IO/M
RXD
微机原理及应用 —— 第 11章 串行通信及接口电路 26
接口信号分为二组:
1,与 CPU的接口信号
D0~D7,三态双向数据总线
CS,片选信号
C/D,控制 /数据线写数据。读对,/8251AC P U0DC/?
写命令或读状态。对,8251AC P U1DC/?
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 27
TXRDY(Transmitter Ready):发送准备好。。
TXE (Transmitter Empty):发送器空信号。
RXRDY (Receiver Ready),接收器准备好。
有效,表示发送器中的并?串转换器为空。
有效表示发送数据缓冲器为空。可以为作状态信号或中断请求信号有效,表示 8251A已接收到一个字符,可以传送给 CPU。 可以作为状态信号或中断请求信号。
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 28
2,与外设或 MODEM的接口信号数据终端准备好。
输出,低有效,表示 8251A准备就绪。
DSR (Data Set Ready):数据装置准备好。
DTR (Data Terminal Ready):
输入,低有效,表示外设或 MODEM已准备好。
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 29
输出信号,低有效,用于通知外设或 MODEM,
8251A要求发送。
RTS (Request to Send),请求发送。
CTS (Clear to Send),清除发送。
输入信号,低有效,是外设或 MODEM对
8251A的 RTS信号的响应。
11.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
微机
DSR
DTR
TxD
RxD
RTS
CTS
GND
外设
TxD
RxD
RTS
CTS
DSR
DTR
使用联络信号的多线相连方式通信比较可靠,所用连线较多,
不经济微机原理及应用 —— 第 11章 串行通信及接口电路 32
三,8251A的控制字与状态字
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
(同步 )
00=同步
-
-
-
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 34
若工作方式字 =11011110B,则规定
8251A工作于异步方式,数据格式采用
8位数据位,2位停止位,奇校验,波特率系数是 16。
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 35
例 1:某异步通信中,其数据格式为:
1位起始位,1位停止位,7位数据位,奇检验,波特率系数为 16,则其异步方式选择控制字为,01011010B= 5AH
将其写入控制口的程序段如下:
MOV DX,3F9H ; 8251A的控制口地址
MOV AL,5AH ;异步方式选择控制字
OUT DX,AL ;异步方式字写入控制口
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 36
例 2:某同步通信中,设帧数据格式为:字符长度为 8位,双同步字符且内同步,偶校验,
则同步方式选择控制字为,00111100B= 3CH。
将该方式字写入控制口的程序段为:
MOV DX,3F9H ; 8251A的控制口地址
MOV AL,3CH ;同步方式选择控制字
OUT DX,AL ;同步方式字写入控制口
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 37
2,工作命令字作用,确定 8251A的实际操作,迫使 8251A
进行某种操作或处于某工作状态,
以便接收或发送数据。
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 38
RXESBRKERRTS TXENDTRIREH
允许发送,1” 允许
,0” 不允许数据终端就绪:,1” 使 DTR输出为低允许接收,1” 允许
,0” 不允许送 间隔字符,1” 使 TXD为低
,0” 正常工作出错标志复位:,1” 使 PE,OE,TE标志复位请求发送:,1” 使 RTS 输出变低内部复位:,1” 使芯片回到方式指令状态进入搜索态:,1” 使开始搜索同步字符命令控制字格式
D7 D6 D5 D4 D3 D2 D1 D0
微机原理及应用 —— 第 11章 串行通信及接口电路 39
将该操作命令字写入控制口的程序段为:
MOV DX,3F9H ; 8251A的控制口地址
MOV AL,15H ;允许接收,允许发送,
错误标志复位的操作命令字
OUT DX,AL
例 3:某异步通信中,要求 8251A允许接收,允许发送,全部错误标志复位,则操作命令字为:
00010101B= 15H。
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 40
3,状态字
D7 D6 D5 D4 D3 D2 D1 D0
DSR
数据装置准备好
SYNDET
同步检出
FE
格式错
PE
溢出错奇偶错
OE TXE
发送器空
RXRDY
接收准备好
TXRDY
发送准备好
11.2 可编程串行 I/O接口 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 41
例:若要检查 8251A的发送器是否准备好,则可用下列程序段实现:
MOV DX,3F1H ;状态口地址
WAIT,IN AL,DX ;读状态字
AND AL,01H ;查状态位 D0= 1?
TXRDY= 1?
JZ WAIT ;发送未准备好,则等待
MOV DX,3F2H ; 8251A数据口
MOV AL,0AAH ;发送字符送 AL
OUT DX,AL ;发送字符写入 8251A
微机原理及应用 —— 第 11章 串行通信及接口电路 42
四,8251A的编程逻辑硬件 (RESET)或软件 (命令字 D6= 1)复位异步方式字 单同步方式字 双同步方式字送同步字符 送同步字符 1
送同步字符 2
命令字 1(D6?1)
命令字 2(D6?1)
命令字 3(D6=1)
复位方式字命令字复位微机原理及应用 —— 第 11章 串行通信及接口电路 43
采用 8251A可以实现微机与微机之间,
主机与外设之间的串行通信 。 对于用 8251A
进行串行接口电路的设计,在明确功能以后,
要注意以下几个问题:
11.3 8251A应用举例微机原理及应用 —— 第 11章 串行通信及接口电路 44
1,确定串行通信的方式,如全双工还是半双工,同步传送还是异步传送,并确定数据传输的波特率,选择合适的波特率因子 。
在波特率确定以后,就可以计算发送器时钟和接收器时钟频率 。
11.3 8251A应用举例微机原理及应用 —— 第 11章 串行通信及接口电路 45
2,完成以 8251A为核心的硬件接口电路,
实现 8251A与 CPU的连接以及与外设的连接 。
同时,根据 CPU与 8251A的数据交换方式是程序查询还是中断方式来确定具体的硬件电路 。
3,在硬件电路设计完成以后,就要考虑软件的编程 。 对 8251A的编程工作分二个阶段:
初始化工作和数据传送操作工作 。
11.3 8251A应用举例微机原理及应用 —— 第 11章 串行通信及接口电路 46
下面以两台微机之间进行双机串行通信的硬件设计和软件编程为例来说明 8251A的具体应用 。
例:甲乙两台微机之间进行串行通信,甲机发送,乙机接收 。 要求把甲机上开发的应用程序 ( 其长度为 2DH) 传送到乙机中去 。 采用异步方式,字符长度为 8位,2位停止位,波特率因子为 64,无校验,波特率为 4800b/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-232C
与 TTL电平转换电路,地址译码电路等就可构成一个串行通信接口 。
11.3 8251A应用举例微机原理及应用 —— 第 11章 串行通信及接口电路 49
乙 机
CPU
甲机
CPU
TXD
RXD
SG
TXC
RXC
TXD
RXD
SG
TXC
RXC
EIA/
TTL
变换波特率发生器
EIA/
TTL
变换波特率发生器
8251A 8251A
乙 机 甲机变换波特率发生器变换波特率发生器图 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,MOV DX,309H ;命令口
MOV AL,40H ;内部复位(使 D6= 1)
OUT DX,AL
NOP
MOV AL,0CFH ;方式命令字(异步,2位停止位,字符长度为 8位,无;校验,波特率因子为 64)
微机原理及应用 —— 第 11章 串行通信及接口电路 52
OUT DX,AL
MOV AL,37H ;工作命令字( RTS,ER、
RXE,DTR,TXEN均置 1)
OUT DX,AL
MOV CX,2DH ;传送字节数
MOV SI,300H ;发送区首址
11.3 8251A应用举例微机原理及应用 —— 第 11章 串行通信及接口电路 53
L1,MOV DX,309H ;状态口
IN AL,DX ;查状态位 D0( TXRDY)= 1?
AND AL,01H
JZ L1 ;发送未准备好,则等待
MOV DX,308H ;数据口
MOV AL,[ SI ] ;发送准备好,则从发送区取一字节发送
OUT DX,AL
微机原理及应用 —— 第 11章 串行通信及接口电路 54
INC SI ;内存地址加 1
DEC CX ;字节数减 1
JNZ L1 ;未发送完,继续
MOV AX,4C00H ;已送完,回 DOS
INT 21H
TRA ENDP
CSEG ENDS
END START
微机原理及应用 —— 第 11章 串行通信及接口电路 55
( 2)接收程序(略去 STACK和 DATA段):
SCEG SEGMENT
ASSUME CS,REC,DS,SCEG
REC PROC FAR
BEGIN,MOV DX,309H ;命令口
MOV AL,50H ;内部复位(含 D6= 1)
OUT DX,AL
NOP
MOV AL,0CFH ;方式字微机原理及应用 —— 第 11章 串行通信及接口电路 56
OUT DX,AL
MOV AL,14H ;命令字( ER,RXE置 1)
OUT DX,AL
MOV CX,2DH ;传送字节数
MOV DI,400H ;接收区首址
11.3 8251A应用举例微机原理及应用 —— 第 11章 串行通信及接口电路 57
L2 MOV DX,309H ;状态口
IN AL,DX
TEST AL,38H ;查错误
JNZ ERR ;有错,则转出错处理
AND AL,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 ;已接收完,程序结束,
退出
INT 21H ;返回 DOS
REC ENDP
CSEG ENDS
END BEGIN