第 15 章 串行通信及接口电路

56
15 第第第第第第第第第

description

第 15 章 串行通信及接口电路. 15.1 串行通信的基本概念. 15.1.1 串行通信的特点: 数据在单条 1 位宽的传输线上按时间先后一位一位地传送; 节省传输线(优点); 数据传输率较低(缺点); 主要适用于 长距离、低速率 的通信中。. 设备 A 发送器. 设备 B 接收器. Data flow. 15.1.2 串行通信涉及的常用术语. 1. 单工、半双工和全双工 ( 数据通信的方向性结构) (1) 单工( Simplex) 特点:仅能进行一个方向的数据传送. 设备 A 发送器 / 接收器. 设备 B 接收器 / 发送器. - PowerPoint PPT Presentation

Transcript of 第 15 章 串行通信及接口电路

Page 1: 第 15 章   串行通信及接口电路

第 15 章 串行通信及接口电路

Page 2: 第 15 章   串行通信及接口电路

15.1 串行通信的基本概念

15.1.1 串行通信的特点: 数据在单条 1 位宽的传输线上按时间先后一位一位地

传送; 节省传输线(优点); 数据传输率较低(缺点); 主要适用于长距离、低速率的通信中。

Page 3: 第 15 章   串行通信及接口电路

15.1.2 串行通信涉及的常用术语

1. 单工、半双工和全双工 ( 数据通信的方向性结构)(1) 单工( Simplex)特点:仅能进行一个方向的数据传送

设备 A

发送器

设备 B

接收器

Data flow

Page 4: 第 15 章   串行通信及接口电路

(2) 半双工( Half Duplex ) 特点:数据可以在两个方向上进行传送,但是这种传送绝

不能同时进行。【双向,但不同时】

设备 A

发送器 /接收器

设备 B

接收器 /发送器

Data flow

Page 5: 第 15 章   串行通信及接口电路

(3) 全双工( Full Duplex )特点:能够在两个方向同时进行数据传送。

设备 A

发送器 /接收器

设备 B

接收器 /发送器

Page 6: 第 15 章   串行通信及接口电路

2. 数据传输率 每秒传输的二进制位数,单位为 bps ( bit per second

)也称比特率。 波特率―――每秒传输的“符号”(也称信号码元— Sign

al Element )的个数。【例如,每秒传送 1 个符号,则波特率为 1 波特】

Page 7: 第 15 章   串行通信及接口电路

在计算机中,一个“符号”的含义为高、低两种电平,分别代表逻辑值“ 1” 和“ 0” ,所以每个符号的信息量为 1 比特,此时波特率与比特率刚好一致。

但在其他一些场合 ( 例如通信中采用的“相一幅”复合调制技术 ), 一个“符号”的信息含量就不是一个比特,此时,波特率就不等于比特率。

Page 8: 第 15 章   串行通信及接口电路

标准 波特率系列: 50 , 75 , 110 , 150 , 300 ,

600 , 1200 ,……

4 种相位( 0 , 90 , 180 , 270 )

每种相位有两种振幅值→ 实现 3 位 / 信号码元 调制

900

1800 00

2700

001

101

011

111

000 100110 010

Page 9: 第 15 章   串行通信及接口电路

现在的电话网是模拟通信系统,它是为传输话音信息而设计的。要在电话网上传送数字信号,必须经过调制和解调。

实现调制和解调两个过程的设备称为“调制解调器”( Modulator Demodulator - Modem )

Page 10: 第 15 章   串行通信及接口电路

方法:选取音频范围某一频率的正(余)弦模拟信号作为载波,用以运载所要传送的数字信号。

用传送的数字信号改变载波信号的幅值、频率或相位,使之在信道上传送;

到达信道另一端,再将数字信号从载波中取出。

Page 11: 第 15 章   串行通信及接口电路

0 0 0 0 01 1 1 1

数字信号

(a) 调幅

(b) 调频

(c) 调相

按数字信号的值改变载波信号的幅度

按数字信号的值改变载波信号的频率

按数字信号的值改变载波信号的相位

Page 12: 第 15 章   串行通信及接口电路

3. 发送时钟和接收时钟

RxC

TxC

TxD

数据输入寄存器

输入移位寄存器

÷1 , ÷16 , ÷32

数据输出寄存器

输出移位寄存器

÷1 , ÷16 , ÷32

CLK( 主时钟 )

(串行数据输入)

输入移位脉冲

(串行数据输出)

输出移位脉冲

接收时钟

发送时钟

RxD

Page 13: 第 15 章   串行通信及接口电路

4. 波特率因子

F (时钟频率)=波特率因子*波特率

波特率因子 : 数据传输率(波特率)与时钟频率之间的比例系数 .

给定时钟频率,选择不同的波特率因子可得到不同的波特率。

例如: f = 19.2 kHz ,若选波特率因子为 16 ,则波特率为 1200 bps 。

若选定波特率因子和波特率,则相应的确定了对时钟频率的要求。

Page 14: 第 15 章   串行通信及接口电路

1200 * 16 = 19200 (时钟频率)→若外部时钟电路的频率

F = 1MHz ,需用 8253 分频,试计算分频系数( 8253 的计数初值)=?

8253 计数初值=时钟频率/ ( 波特率*波特率因子 )

Page 15: 第 15 章   串行通信及接口电路

8251

外部的时钟电路 ÷1 , ÷ 16 ,…

1MHz

N 分频

19.2KHz

移位脉冲

CLK OUT

8253

Page 16: 第 15 章   串行通信及接口电路

5. 异步方式与同步方式

(1) 异步方式( Asynchronous ):也称“起止同步式”。 串行异步传输数据格式:

1/00 011…1

5-8 位数据位

1/0

停止位或空闲位

1… 1

起始位 奇偶校验 位停止位或、 22

111

第 n 个字符 空闲位第 n+1 个字符

低位 高位

Page 17: 第 15 章   串行通信及接口电路

( 2 )同步方式( Synchronous )

串行同步通信信息格式

同步字符( SYN1) 同步字符( SYN2) 数据( DATA) …

Page 18: 第 15 章   串行通信及接口电路

同步通信的效率(协议开销)

例: SDLC/HDLC 帧格式: 假定数据长度为 2048 位,

通信效率为: 2048/( 2048+ 48 )= 97% 协议开销仅为 3%

一般公式: SDLC/HDLC 协议开销= 1.0 - N/(N+48) ,其中 N为发送数据的比特数。

标志01111110

地址8 位

控制8 位

CRC8 位

CRC8 位

标志01111110数据场

Page 19: 第 15 章   串行通信及接口电路

15.5 可编程串行通信接口 8251A Intel 8251A 是通用同步 /异步收发器 USART (Univers

al Synchronous Asynchronous Receiver/Transmitter ) ,它是专为 Intel 微处理器设计的,可用作 CPU和串行外设的接口电路。

15.5.1 8251A 的基本性能 (1) 可用于同步和异步传送。 (2) 同步传送: 5~ 8 位 /字符;内部或外部字符同

步;可自动插入同步字符。 (3) 异步传送: 5~ 8 位 /字符;时钟速率为通信速

率的 1、 16、 64倍。

Page 20: 第 15 章   串行通信及接口电路

(4) 异步传送时,可产生中止字符( BreakCharacter );可产生 1、 1.5、或 2 位的停止位;可检测假起始位;可自动检测和处理中止字符。

(5) 波特率:异步: DC-19.2K;同步: DC-64K。(6) 全双工、双缓冲器发送和接收。(7) 差错检测:具有奇偶错、溢出错和帧格式错等差错检测电路。

(8) 28脚双列直插式封装。(9) 全部输入输出与 TTL电平兼容;单一 +5V电源;单

一 TTL电平时钟;

Page 21: 第 15 章   串行通信及接口电路

Intel 8251APROGRAMMABLE COMMUNICATION INTERFACE Synchronous and Asynchronous Operation Synchronous 5-8 Bit Characters ; Internal or External Character Synchr

onization ; Automatic Sync Insertion Asynchronous 5-8 Bit Characters ; Clock Rate-1,16 or 64 Times Baud Ra

te ; Break Character Generation ; 1,1.5, 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 19.2K 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

Page 22: 第 15 章   串行通信及接口电路

15.5.2 8251A 的结构与引脚功能

1. 8251A 的引脚8251A 有 28 条引脚,引脚分配如图 15.47所示。

Page 23: 第 15 章   串行通信及接口电路

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

图 15.47 8251A 的引脚信号

Page 24: 第 15 章   串行通信及接口电路

2. 8251A 的结构和工作原理 8251A 的结构方块图如图 15.48 所示。 由图中可看出 8251A 可分为 5 个部分。 (1) 接收器 (2) 发送器 (3) 数据总线缓冲器 (4) 调制解调器控制电路 (5) 读写控制逻辑电路

Page 25: 第 15 章   串行通信及接口电路

数据总线缓冲器

读 / 写控制逻辑电路

调制 / 解调控制电路

接收控制电路

串-并转换

发送缓冲器

缓冲器

并-串转换

发送控制电路RESETCLKC/D

RDWR

CSDSR

DTRCTS

RTS

D7-D0

内部总线

TXD

RXD

TXEMPTY

TXC

RXRDY

RXC

SYNDET

TXRDY

发送器

接收器

图 15.48 8251A 内部结构框图

接收

Page 26: 第 15 章   串行通信及接口电路

15.5.3 8251A 对外接口信号

8251A 是 CPU与外设之间的接口电路,其对外的接口信号可分为两组:

一组是与 CPU的接口信号 ; 另一组是与外设之间的接口信号 (参见图 15.49) 。

Page 27: 第 15 章   串行通信及接口电路

8086 8251A

外设

D7-D0CLK

译码CSAB

M/IO

C/D

RD RDWR WR

TXRDYTXE

RXRDYSYNDET

RESET

DTR

DSR

RTS

CTS

TXD

RXD

计数器 /定时器

RXC

TXC

图 15.49 8251A 的对外接口信号

Page 28: 第 15 章   串行通信及接口电路

1. 8251A 与 CPU 之间的接口信号 (1) 复位信号 RESET (2) 数据线 D7 ~ D0 (3) 读写控制信号 (4) 收发联络信号

Page 29: 第 15 章   串行通信及接口电路

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 为高阻态

Page 30: 第 15 章   串行通信及接口电路

2. 8251A 与外设之间的接口信号 有四个 Modem控制信号 DTR、 DSR、 RTS 和 CTS 。 另外还有四个信号,如下所述: (1) 接收器时钟 RXC (2) 发送器时钟 TXC (3) 接收数据线 RXD (4) 发送数据线 TXD

Page 31: 第 15 章   串行通信及接口电路

地 Mo

de

m

远 程 M

od

em

机终

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 V.24/RS-232C 信号连接与定时关系 a) 信号线连接

Page 32: 第 15 章   串行通信及接口电路
Page 33: 第 15 章   串行通信及接口电路

15.5.4 8251A 的编程

8251A 的编程包括两个部分,一个是方式指令字,另一个是命令指令字。

前者用来定义 8251A 的工作方式,它必须紧接在复位后由CPU写入;

后者用来指定芯片的实际操作,只有在写入了方式选择控制字后,才能由CPU写入。

1. 方式指令字 方式指令字的格式如图 15.50 所示。

Page 34: 第 15 章   串行通信及接口电路

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.5 位停止位

1 1 2 位停止位

同步 1 1 1 个同步字符,外同步, SYNDET 为输入

1 0 1 个同步字符,内同步, SYNDET 为输出

0 1 2 个同步字符,外同步, SYNDET 为输入

0 0 2 个同步字符,内同步, SYNDET 为输出图 15.50 8251A 的方式指令字

Page 35: 第 15 章   串行通信及接口电路

2. 命令指令字

命令指令字的格式如图 15.51 所示,它直接让8251A 实现某种操作或进入规定的工作状态。

Page 36: 第 15 章   串行通信及接口电路

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 请求发送

图 15.51 8251A 的命令指令字

Page 37: 第 15 章   串行通信及接口电路

3. 状态字

CPU可以在 8251A 工作过程中利用输入指令读取当前8251A 的状态字,从而可以检测接口和数据传输的工作状态。

8251A状态字的格式如图 15.52 所示。

Page 38: 第 15 章   串行通信及接口电路

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 正常工作图 15.52 8251A 的状态字

Page 39: 第 15 章   串行通信及接口电路

(1) 三个错误标志位 PE、OE 和 FE , PE=1 是奇偶校验错; OE=1 是溢出错,也称为“超越错”; FE=1 是“帧格式错”,它们只对异步方式有效。出现这三种错误时都不中止 8251A 的工作,它们可以用操作命令字中的 ER位来复位。

(2 ) RXRDY 、 TXE ( TXEMPTY)和 SYNDET/BRKDET位与同名引脚的状态含义相同,此处不再重述。

(3) DSR位是数据通信设备准备好状态位, DSR=1 表示调制解调器或其他外设已处于准备好状态,此时 DSR输入信号有效。

Page 40: 第 15 章   串行通信及接口电路

(4) TXRDY 是发送器准备好位,它与输出引脚 TXRDY 的含义有所不同。 TXRDY 状态位为“ 1”只反映当前发送缓冲器已空,而 TXRDY 输出引脚为“ 1” 时,除发送缓冲器已空外,还需要以 CTS=0 和 TXEN=1 为条件,即存在如下逻辑关系:

输出引脚 TXRDY 为“ 1”=发送缓冲器空 ·( CTS=0 )·( TXEN=1 )

通常TXRDY 状态位提供CPU查询,而 TXRDY 引脚的输出信号作为中断请求信号发给 CPU。

Page 41: 第 15 章   串行通信及接口电路

4. 8251A 的初始化及数据传送流程图

8251A 的初始化及数据传送流程图如图 15.53所示。

Page 42: 第 15 章   串行通信及接口电路

输出方式指令字

输出第一个同步字符

异步方式?

是单同步?

RESET

输出第二个同步字符

输出命令指令字

有复位命令否?

传送数据

输出命令指令字或输入状态字

数据完否?

Y

N

N

N

N

Y

Y

Y

图 15.53 8251A 初始化和数据传送流程图

Page 43: 第 15 章   串行通信及接口电路

8251A 的初始化编程必须在复位操作之后,先设置方式指令字;

如果设定在异步方式,则马上要输出命令指令字进行设置,然后才能进行数据传送;

在数据传送过程中,也可使用命令指令字进行某些操作设置或读取 8251A 的状态;

在数据传送结束时,若使用 IR位为“ 1” 的内部复位命令使 8251A复位,则它又可重新接收方式指令字,从而改变工作方式完成其他传送任务。

Page 44: 第 15 章   串行通信及接口电路

如果设定 8251A 工作在同步方式,那么在输出方式指令字后,应紧跟着输出一个同步字符或两个同步字符,然后再输出命令指令字,后面的操作与异步方式相同。

Page 45: 第 15 章   串行通信及接口电路

5. 编程举例

(1) 异步方式下的初始化编程 设定 8251A 工作于异步方式,波特率因子为 64 ,每

字符 7个数据位,偶校验, 2 位停止位,则方式指令字为 11111011=FBH 。

操作命令字的设定,例如使 8251A 的发送器允许,接收器允许,使状态寄存器中的 3 个错误标志位复位,使数据终端准备好信号 DTR 输出低电平,则命令指令字应为 00010111=17H 。

Page 46: 第 15 章   串行通信及接口电路

若 8251A 的端口地址为 50H 、 51H ,则本例初始化程序如下:

MOV AL, 0FBH ; 输出方式指令字 OUT 51H, AL MOV AL, 17H ; 输出命令指令字 OUT 51H, AL

Page 47: 第 15 章   串行通信及接口电路

(2) 同步方式下的初始化编程举例

8251A 工作于同步方式,双同步字符,同步字符设定为 16H ,内同步,偶校验,每字符 7个数据位,则方式指令字为 00111000B=38H 。

命令指令字设定为 10010111B=97H ,使发送器允许,接收器允许,使错误标志复位,开始搜索同步字符,并通知调制解调器,数据终端设备已准备就绪。

Page 48: 第 15 章   串行通信及接口电路

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 同步方式的初始化编程。

Page 49: 第 15 章   串行通信及接口电路

15.5.5 8251A 的应用

1. 利用 8251A实现与终端的通信2. 利用 8251A实现双机通信

利用 8251A 实现相距较近(不超过 15米)的两台微机通信,其硬件连接如图 15.55 所示。

Page 50: 第 15 章   串行通信及接口电路

由于是近距离通信,因此不用 Modem ,两台微机直接通过 RS-232C相连即可,且通信双方均作为数据终端设备 DTE ;由于采用 EIA RS-232C接口标准,所以需要加接电平转换电路。

通信时假设对方已准备好,所以可不使用四根联络信号(指 DTR,DSR,RTS,CTS) ,仅使 8251A 的 CTS 接地即可。

甲乙两机可进行半双工或全双工通信。 CPU与接口之间可按查询方式或中断方式进行数据传送。

本例采用半双工通信,查询方式,异步传送。

Page 51: 第 15 章   串行通信及接口电路

8251A

CTS

DSR

RxDTxC

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

CLKTxD

RTS

DTR

系统主时钟

CPU

总线

时钟电路

RS - 232C 接口

图 15.55 利用 8251A 进行双机通信 硬件连接图

乙机

GND

Page 52: 第 15 章   串行通信及接口电路

(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

Page 53: 第 15 章   串行通信及接口电路

(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 ; 查询状态位 RX RDY是否为“ 1” JZ L1 ; 接收未准备好,则继续查询 TEST AL, 08H ; 检测是否有奇偶校验错 JZ ERR ; 若有错,则转出错处理 MOV DX, 8251A 数据端口号 IN AL, DX ; 接收准备好,则接收一个字节 MOV [ DI ] , AL ; 存入接收数据区 INC DI ; 修改地址指针 LOOP L1 ; 未接收完,则继续 HLT

Page 54: 第 15 章   串行通信及接口电路

8251A 初始化的补充说明 ( 关于先写 3次“ 0” 的问题)

MOV DX, 2B9HMOV AL, 0OUT 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

Page 55: 第 15 章   串行通信及接口电路

Intel 8251APROGRAMMABLE 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.

Page 56: 第 15 章   串行通信及接口电路

第 15章 作业

P548

第 35题第 36题