第15章 串行通信及接口电路
串行通信的基本概念
串行通信的特点:
数据在单条1位宽的传输线上按时间先后一位一位地传
送;
节省传输线(优点);
数据传输率较低(缺点);
主要适用于长距离、低速率的通信中。
串行通信涉及的常用术语
1. 单工、半双工和全双工(数据通信的方向性结构)
(1)单工(Simplex)
特点:仅能进行一个方向的数据传送
设备A
发送器
设备B
接收器
Data flow
(2) 半双工(Half Duplex)
特点:数据可以在两个方向上进行传送,但是这种传送
绝不能同时进行。【双向,但不同时】
设备A
发送器/
接收器
设备B
接收器/
发送器
Data flow
(3) 全双工(Full Duplex)
特点:能够在两个方向同时进行数据传送。
设备A
发送器/
接收器
设备B
接收器/
发送器
2. 数据传输率
每秒传输的二进制位数,单位为bps(bit per second )也
称比特率。
波特率―――每秒传输的“符号”(也称信号码元—
Signal Element)的个数。
【例如,每秒传送1个符号,则波特率为1波特】
在计算机中,一个“符号”的含义为高、低两种电平,
分别代表逻辑值“1”和“0”,所以每个符号的信息量
为1比特,此时波特率与比特率刚好一致。
但在其他一些场合 (例如通信中采用的“相一幅”复合
调制技术),一个“符号”的信息含量就不是一个比特,
此时,波特率就不等于比特率。
标准 波特率系列:50,75,110,150,300,
600,1200,……
4种相位(0,90,180,270)
每种相位有两种振幅值
→实现 3位/信号码元 调制
900
1800 0
0
2700
001
101
011
111
000 100110 010
现在的电话网是模拟通信系统,它是为传输话音信息
而设计的。要在电话网上传送数字信号,必须经过调
制和解调。
实现调制和解调两个过程的设备称为“调制解调器
”(Modulator Demodulator-Modem)
方法:选取音频范围某一频率的正(余)弦模拟信号
作为载波,用以运载所要传送的数字信号。
用传送的数字信号改变载波信号的幅值、频率或相位,
使之在信道上传送;
到达信道另一端,再将数字信号从载波中取出。
0 0 0 0 01 1 1 1
数字信号
(a)调幅
(b)调频
(c)调相
按数字信号的
值改变载波信
号的幅度
按数字信号的
值改变载波信
号的频率
按数字信号的
值改变载波信
号的相位
3. 发送时钟和接收时钟
数据输入寄存器
输入移位寄存器
÷1,÷16,÷32
数据输出寄存器
输出移位寄存器
÷1,÷16,÷32
CLK(主时钟)
(串行数据输入)
输入移位脉冲
(串行数据输出)
输出移位脉冲
接收时钟
发送时钟
4. 波特率因子
F(时钟频率)=波特率因子*波特率
波特率因子: 数据传输率(波特率)与时钟频率之间的比
例系数.
给定时钟频率,选择不同的波特率因子可得到不同的波特
率。
例如:f = kHz,若选波特率因子为16,则波特率
为1200 bps。
若选定波特率因子和波特率,则相应的确定了对时钟频率
的要求。
1200*16=19200(时钟频率)→若外部时钟电路的频率F
=1MHz,需用8253分频,试计算分频系数(8253的计数初
值)=?
8253计数初值=时钟频率/(波特率*波特率因子)
8251
外部的
时钟电路
÷1,÷ 16,…
1MHz
N分频
移位脉冲
CLK OUT
8253
5.异步方式与同步方式
(1) 异步方式(Asynchronous):也称“起止同步式”。
串行异步传输数据格式:
1/00 011…1
5-8位数据位
1/0
停止位或
空闲位
1… 1
起始位
奇偶校验
第n个字符 空闲位
第n+1个字符
低位 高位
(2)同步方式(Synchronous)
串行同步通信信息格式
同步字符(SYN1) 同步字符(SYN2) 数据(DATA) …
同步通信的效率(协议开销)
例:SDLC/HDLC帧格式:
假定数据长度为2048位,
通信效率为:2048/(2048+48)=97%
协议开销仅为3%
一般公式:SDLC/HDLC协议开销=-N/(N+48),其中
N为发送数据的比特数。
标志
01111110
地址
8位
控制
8位
CRC
8位
CRC
8位
标志
01111110数据场
可编程串行通信接口8251A
Intel 8251A是通用同步/异步收发器USART (Universal
Synchronous Asynchronous Receiver/Transmitter)
,它是专为Intel 微处理器设计的,可用作CPU和串行
外设的接口电路。
8251A的基本性能
(1) 可用于同步和异步传送。
(2) 同步传送:5~8位/字符;内部或外部字符同步;
可自动插入同步字符。
(3) 异步传送: 5~8位/字符;时钟速率为通信速率
的1、16、64倍。
(4) 异步传送时,可产生中止字符(BreakCharacter);
可产生1、、或2位的停止位;可检测假起始位;
可自动检测和处理中止字符。
(5) 波特率:异步:;同步:DC-64K。
(6) 全双工、双缓冲器发送和接收。
(7) 差错检测:具有奇偶错、溢出错和帧格式错等差错
检测电路。
(8) 28脚双列直插式封装。
(9) 全部输入输出与TTL电平兼容;单一+5V电源;单一
TTL电平时钟;
Intel 8251A
PROGRAMMABLE COMMUNICATION INTERFACE
Synchronous and Asynchronous Operation
Synchronous 5-8 Bit Characters; Internal or External Character
Synchronization; Automatic Sync Insertion
Asynchronous 5-8 Bit Characters; Clock Rate-1,16 or 64 Times Baud Rate
; Break Character Generation;1,, or 2 Stop Bits; False Start Bit
Detection; Automatic Break Detect and Handling;
Synchronous Baud Rate -DC to 64K Baud
Asynchronous Baud Rate -DC to Baud
Full Duplex, double Buffered, Transmitter and Receiver
Error Detection -Parity, Overrun and Framing
Fully Compatible with 8080/8085 CPU
28-Pin DIP Package
All Inputs and Outputs are TTL Compatible
Single + 5V Supply
Single TTL Clock
8251A的结构与引脚功能
1. 8251A 的引脚
8251A有28条引脚,引脚分配如图所示。
8251A
D1
TxD
CLK
RESET
DSR
RTS
DTR
RxC
Vcc
D0
TxEMPTY
CTS
WR
TxC
D7
D6
D5
D4
GND
RxD
D3
CS
RD
C/D
SYNDET/BRKDET
TxRDYRxRDY2
1
10
9
8
7
6
5
4
3
2
11
13
12
28
19
20
21
22
23
24
25
26
27
18
15
16
17
14
D2
图 8251A的引脚信号
2. 8251A的结构和工作原理
8251A的结构方块图如图所示。
由图中可看出8251A可分为5个部分。
(1) 接收器
(2) 发送器
(3) 数据总线缓冲器
(4) 调制解调器控制电路
(5) 读写控制逻辑电路
数据总线
缓冲器
读/写
控制逻辑电路
调制/解调
控制电路
接收控制电路
串-并
转换
发送
缓冲器
缓冲器
并-串
转换
发送控制电路
RESET
CLK
C/D
RD
WR
CS
DSR
DTR
CTS
RTS
D7-D0
内
部
总
线
TXD
RXD
TXEMPTY
TXC
RXRDY
RXC
SYNDET
TXRDY
发
送
器
接
收
器
图 8251A 内部结构框图
接收
8251A对外接口信号
8251A是CPU与外设之间的接口电路,其对外的接口信
号可分为两组:
一组是与CPU的接口信号;
另一组是与外设之间的接口信号(参见图)。
8086 8251A
外设
D7-D0
CLK
译码 CSAB
M/IO
C/D
RD RD
WR WR
TXRDY
TXE
RXRDY
SYNDET
RESET
DTR
DSR
RTS
CTS
TXD
RXD
计数器/
定时器
RXC
TXC
图 8251A的对外接口信号
1. 8251A与CPU之间的接口信号
(1) 复位信号RESET
(2) 数据线D7~D0
(3) 读写控制信号
(4) 收发联络信号
8251A的读/写控制真值表
CS C/D RD WR 操作
0 0 0 1 CPU从8251A读数据
0 0 1 0 CPU往8251A写数据
0 1 0 1 CPU从8251A读状态
0 1 1 0 CPU往8251A写控制命令
0 × 1 1 D7~D0为高阻态
1 × × × D7~D0为高阻态
2. 8251A与外设之间的接口信号
有四个Modem控制信号DTR、DSR、RTS和CTS。
另外还有四个信号,如下所述:
(1) 接收器时钟RXC
(2) 发送器时钟TXC
(3) 接收数据线RXD
(4) 发送数据线TXD
本
地
M
odem
远
程
M
odem
计
算
机
终
端
1
2
3
4
5
6
7
8
20
22
101
103
104
105
106
107
102
109
108
125
机壳地
发送数据(TXD)
接收数据(RXD)
请求发送(RTS)
允许发送(CTS)
Modem就绪( DSR)
信号地(GND)
载波检测(CD)
终端就绪(DTR)
呼叫指示
载波检测
呼叫指示
电话线
CCITT
信号名
插
脚
号
图3-5 信号连接与定时关系 a)信号线连接
8251A的编程
8251A的编程包括两个部分,一个是方式指令字,另
一个是命令指令字。
前者用来定义8251A的工作方式,它必须紧接在复位后
由CPU写入;
后者用来指定芯片的实际操作,只有在写入了方式选
择控制字后,才能由CPU写入。
1. 方式指令字
方式指令字的格式如图所示。
D7 D6 D5 D4 D3 D2 D1 D0
S2 S1 EP PEN L2 L1 B2 B1 00 同步方式
01 异步方式(X1)
10 异步方式(X16)
11 异步方式(X64)
00 字符长度为5位
01 字符长度为6位
10 字符长度为7位
11 字符长度为8位 1 带奇偶校验
0 不带奇偶校验
1 偶校验
0 奇校验
异步 0 0 无效
0 1 1位停止位
1 0 位停止位
1 1 2位停止位
同步 1 1 1个同步字符,外同步,SYNDET为输入
1 0 1个同步字符,内同步,SYNDET为输出
0 1 2个同步字符,外同步,SYNDET为输入
0 0 2个同步字符,内同步,SYNDET为输出
图 8251A的方式指令字
2. 命令指令字
命令指令字的格式如图所示,它直接让
8251A实现某种操作或进入规定的工作状态。
D7 D6 D5 D4 D3 D2 D1 D0
EH IR RTS ER SBRK RXE DTR TXEN
1 进
入
搜
索
方
式
1 内
部
复
位
1 允许发送
1 数据终端准备好
1 允许接收
1 发送中止字符
0 正常工作
1 清除错误标志
1 请求发送
图 8251A的命令指令字
3. 状态字
CPU可以在8251A工作过程中利用输入指令读取当前
8251A的状态字,从而可以检测接口和数据传输的工
作状态。
8251A状态字的格式如图所示。
D7 D6 D5 D4 D3 D2 D1 D0
DSR SYNDET/BRKDET FE OE PE TXEMPTY RXRDY TXRDY
1 发送器准备好
1 数
据
通
信
设
备
准
备
好
帧
格
式
错
标
志
溢
出
错
标
志
奇
偶
错
标
志
1 接收器准备好
1 发送器空
SYNDET
BRKDET
1 已达到同步
0 未达到同步
1 接收到中止字符
0 正常工作
图 8251A 的状态字
(1) 三个错误标志位PE、OE和FE, PE=1是奇偶校验错;
OE=1是溢出错,也称为“超越错”;FE=1是“帧格
式错”,它们只对异步方式有效。出现这三种错误时
都不中止8251A的工作,它们可以用操作命令字中的
ER位来复位。
(2) RXRDY、TXE(TXEMPTY)和SYNDET/BRKDET位与
同名引脚的状态含义相同,此处不再重述。
(3) DSR位是数据通信设备准备好状态位, DSR=1表示
调制解调器或其他外设已处于准备好状态,此时DSR
输入信号有效。
(4) TXRDY是发送器准备好位,它与输出引脚TXRDY的含义
有所不同。 TXRDY状态位为“1”只反映当前发送缓冲器
已空,而TXRDY输出引脚为“1”时,除发送缓冲器已空
外,还需要以CTS=0和TXEN=1为条件,即存在如下逻辑关
系:
输出引脚TXRDY为“1”=发送缓冲器空
·(CTS=0)·(TXEN=1)
通常TXRDY状态位提供CPU查询,而TXRDY引脚的输出信
号作为中断请求信号发给CPU。
4. 8251A的初始化及数据传送流程图
8251A的初始化及数据传送流程图如图所
示。
输出方式指令字
输出第一个同步字符
异步方式?
是单同步?
RESET
输出第二个同步字符
输出命令指令字
有复位命令否?
传送数据
输出命令指令字或输入状态字
数据完否?
Y
N
N
N
N
Y
Y
Y
图 8251A 初始化和数据传送流程图
8251A的初始化编程必须在复位操作之后,先设置方式
指令字;
如果设定在异步方式,则马上要输出命令指令字进行
设置,然后才能进行数据传送;
在数据传送过程中,也可使用命令指令字进行某些操
作设置或读取8251A的状态;
在数据传送结束时,若使用IR位为“1”的内部复位命
令使8251A复位,则它又可重新接收方式指令字,从
而改变工作方式完成其他传送任务。
如果设定8251A工作在同步方式,那么在输出方式指令
字后,应紧跟着输出一个同步字符或两个同步字符,
然后再输出命令指令字,后面的操作与异步方式相同。
5. 编程举例
(1) 异步方式下的初始化编程
设定8251A工作于异步方式,波特率因子为64,每字
符7个数据位,偶校验,2位停止位,则方式指令字为
11111011=FBH。
操作命令字的设定,例如使8251A的发送器允许,接
收器允许,使状态寄存器中的3个错误标志位复位,使
数据终端准备好信号DTR输出低电平,则命令指令字
应为00010111=17H。
若8251A的端口地址为50H、51H,则本例初始化程
序如下:
MOV AL, 0FBH ; 输出方式指令字
OUT 51H, AL
MOV AL, 17H ; 输出命令指令字
OUT 51H, AL
(2) 同步方式下的初始化编程举例
8251A工作于同步方式,双同步字符,同步字符设定为
16H,内同步,偶校验,每字符7个数据位,则方式指
令字为00111000B=38H。
命令指令字设定为10010111B=97H,使发送器允许,
接收器允许,使错误标志复位,开始搜索同步字符,
并通知调制解调器,数据终端设备已准备就绪。
8251A的端口地址为50H、51H,则本例初始化程序
如下:
MOV AL, 38H ; 输出方式指令字
OUT 51H, AL
MOV AL, 16H ; 输出两个同步字符16H
OUT 51H, AL
OUT 51H, AL
MOV AL, 97H ;输出命令指令字
OUT 51H, AL
CPU执行上述程序之后,即完成了对8251A同步方式的
初始化编程。
8251A 的应用
1. 利用8251A实现与终端的通信
2. 利用8251A实现双机通信
利用8251A实现相距较近(不超过15米)的两台微机
通信,其硬件连接如图所示。
由于是近距离通信,因此不用Modem,两台微机直接
通过RS-232C相连即可,且通信双方均作为数据终端设
备DTE;由于采用EIA RS-232C接口标准,所以需要加
接电平转换电路。
通信时假设对方已准备好,所以可不使用四根联络信
号(指DTR,DSR,RTS,CTS),仅使8251A的CTS接地即
可。
甲乙两机可进行半双工或全双工通信。CPU与接口之
间可按查询方式或中断方式进行数据传送。
本例采用半双工通信,查询方式,异步传送。
8251A
CTS
DSR
RxD
TxC
RxC
CLK
系统主时钟
TxD
RTS
DTR
CPU总线
时钟电路
甲机
EIA/
TTL
电
平
转
换
2
3
7
2
3
7
DTE DTE
TxD TxD
RxD RxD
EIA/
TTL
电
平
转
换 8251A
CTS
DSR
RxD
TxC
RxC
CLK
TxD
RTS
DTR
系统主时钟
CPU
总线
时钟电路
RS-232C接口
图 利用8251A进行双机通信硬件连接图
乙机
GND
(1) 发送端初始化程序及控制程序如下所示(设在此之前
已对8251A进行了复位操作):
START: MOV DX, 8251A控制端口号
MOV AL, 7AH ; 输出方式指令字,异步方式,7位数据位,1位停止位
OUT DX, AL ; 偶校验,波特率因子为16
MOV AL, 11H ;输出命令指令字,发送器允许,错误标志复位
OUT DX, AL
MOV SI, 发送数据块首地址
MOV CX, 发送数据块字节数
NEXT: MOV DX, 8251A控制端口号
IN AL, DX ;输入状态字
TEST AL, 01H ; 查询状态位TXRDY是否为“1”
JZ NEXT ; 发送未准备好,则继续查询
MOV DX, 8251A数据端口号
MOV AL, [SI] ; 发送准备好,则从发送区取一字节数据发送
OUT DX, AL
INC SI ; 修改地址指针
LOOP NEXT ; 未发送完,继续
HLT
(2) 接收端初始化及控制程序如下所示(设在此之前已对
8251A进行了复位操作):
BEGIN: MOV DX, 8251A控制端口号
MOV AL, 7AH ; 输出方式指令字
OUT DX, AL
MOV AL, 14H ; 输出命令指令字
OUT DX, AL
MOV DI, 接收数据块首地址
MOV CX, 接收数据块字节数
L1: MOV DX, 8251A控制端口号
IN AL, DX ; 输入状态字
TEST AL, 02H ; 查询状态位RXRDY是否为“1”
JZ L1 ; 接收未准备好,则继续查询
TEST AL, 08H ; 检测是否有奇偶校验错
JZ ERR ; 若有错,则转出错处理
MOV DX, 8251A数据端口号
IN AL, DX ; 接收准备好,则接收一个字节
MOV [DI], AL ; 存入接收数据区
INC DI ; 修改地址指针
LOOP L1 ; 未接收完,则继续
HLT
8251A初始化的补充说明(关于先写3次“0”的问题)
MOV DX, 2B9H
MOV AL, 0
OUT DX, AL ;
OUT DX, AL ;
OUT DX, AL ;向8251A 写3次“0”
MOV AL, 40H ;内部复位
OUT DX,AL
MOV AL, 4EH ; 方式指令字
OUT DX, AL;
MOV AL, 27H ; 命令指令字
OUT DX, AL
Intel 8251A
PROGRAMMABLE COMMUNICATION INTERFACE
A Reset Operation (internal or external) will return the 8251A to
the Mode instruction format.
Note:
Internal Reset on Power-up:
When power is first applied ,the 8251A may come up in the Mode,
Sync character or Command Format. To guarantee that the device
is in the Command instruction format before the Reset command is
issued. It is safest to execute the worst-case initialization sequence
(sync mode with two sync characters).
Loading three 00Hs consecutively into the device with C/D=1
configures sync operation and writes two dummy 00H sync
characters. An internal Reset command (40H) may then be issued
to return the device to the “idle” state.
第15章 作业
P548
第35题
第36题