第 7 章 串行接口通信

29
第7第 第第第第第第 7.1 第第 7.2 MCS-51 第第第第第第第第 第第 7.3 第第第第第第第第第第 7.4 第第第第第第第第

description

第 7 章 串行接口通信. 7.1 概述 7.2MCS-51 单片机的串行通信接口 7.3 串行口的四种工作方式 7.4 串口综合应用举例. 7.1 概述. 在实际工作中,计算机的 CPU 和外部设备之间常要进行数据交换,一台计算机与其他计算机之间也往往要交换数据,所有的这些信息交换都称为通信。 - PowerPoint PPT Presentation

Transcript of 第 7 章 串行接口通信

Page 1: 第 7 章   串行接口通信

第 7 章 串行接口通信 7.1 概述

7.2 MCS-51 单片机的串行通信接口

7.3 串行口的四种工作方式

7.4 串口综合应用举例

Page 2: 第 7 章   串行接口通信

在实际工作中,计算机的 CPU 和外部设备之间常要进行数据交换,一台计算机与其他计算机之间也往往要交换数据,所有的这些信息交换都称为通信。

常用的通信方式有两大类:串行通信和并行通信。目前串行通信协议有很多种: USB 、 I2C 、 RS-232 、 SPI 等都是串行通信协议。并行通信协议有 SPP 、 EPP 、 ECP 等。通常需要根据信息传送的距离决定采用那种通信方式,例如 PC 与外部设备(如打印机等)通信时,如果距离小于 30m ,可以采用并行通信方式,当距离大于 30m 时,则要采用串行通信方式。

7.1 概述

Page 3: 第 7 章   串行接口通信

并行通信是指数据的各位同时进行传送(发送或接收)的通信方式,其优点是传送速度快,其缺点是数据有多少位,就要有多少根数据传送线,同时还必须有必要的控制线。并行通信在位数多、传送距离远就不太合适了。 串行通信指数据是一位一位的按顺序传送的通信方式,它的突出优点是只需要很少的传输线(根据不同的串行通信协议,数据传输线有所不同),这样大大降低了传送成本,特别适用于远距离通信,其缺点是传送速度较慢。 对串行通信主要涉及以下几个概念:串口通信的数据传输方向、同步和异步通信、波特率等

并行通信和串行通信

Page 4: 第 7 章   串行接口通信

一般情况下,串行数据传输是在两个通信端之间进行的。其数据传输方向通常有三种:单工、半双工和全双工。 上面三种方式分别对应了 : 单行道、独木桥、双向车道的通行方式

7.1.1 数据传输方向

Page 5: 第 7 章   串行接口通信

7.1.2 同步和异步通信1 异步通信

异步串行通信是以帧的形式发送字符数据,异步串行通信有连续发送字符和不连续发送字符两种方式,当连续发送字符时,每一帧信息由起始位、数据位、奇偶校验位和停止位组成,其帧结构如图 7-1 所示。

起始位 数据位 奇偶校验位 停止位 下一个字符的起始位

0 多种数据位形式 0/ 1 1 0

图 7-1 字符连续传送的异步通信数据传输格式

Page 6: 第 7 章   串行接口通信

同步通信不同于异步通信,同步通信在数据传输开始前用同步字符(常约定 1 ~ 2 个),并由同步时钟来实现发送和接收端同步。即同步通信使用数据块传送信息,而不是字节,省去了每个字节的起始位和停止位等数据,直到通信结束。同步通信在每个数据块传输的开始使用同步字符,使接收和发送同步。其通信格式如图 7-3 所示

2 同步通信

同步字符1 同步字符2 数据

图 7-3 同步通信数据传输格式

Page 7: 第 7 章   串行接口通信

7.1.3 波特率 波特率是衡量数据传送速率的指标,其定义为单位时间内传送的信息量,信息量的单位为 bit ,时间单位为秒,则 1 波特= 1 位 / 秒= 1bit/s = 1bps 。 例如,在异步通信中使用 1 位起始位, 8 位数据位,无奇偶校验位, 1 位停止位。即一帧数据长度为 10bit ,如果在应用中要求数据传送的速率是 1 秒传送 120 帧字符,则传送波特率为 1200 波特。 在异步串行通信双方中,接收和发送方必须使用相同的波特率才能正确传输数据

Page 8: 第 7 章   串行接口通信

7.2 MCS-51 单片机的串行通信接口

7.2.1 串行通信接口结构

7.2.2 串行口控制寄存器 SCON 和 PCON

Page 9: 第 7 章   串行接口通信

7.2.1 串行通信接口结构

Page 10: 第 7 章   串行接口通信

1 、串行口控制寄存器 SCON MCS-51 单片机串行通信方式的选择、接收和发送控制以及串行口的状态标志等均通过对特殊功能寄存器 SCON 编程来实现。 SCON 控制字的各位定义如图 7-3 所示

SM0 SM1 SM2 REN TB8 RB8 TI RI

图 7-3 SCON 控制字格式

7.2.2 串行口控制寄存器 SCON 和 PCON

Page 11: 第 7 章   串行接口通信

2 、电源控制寄存器 PCON PCON 是为了在 CHMOS 的 80C51 单片机上实现电源控制而附加的。 PCON 中的最高位 SMOD 与串行口工作有关,如图 7-5 所示

图 7-5 电源控制寄存器 PCON

SMOD ( PCON.7 )——波特率倍增位。在串行口方式 1 、方式 2 和方式 3 时,波特率和 SMOD 成正比,亦即当 SMOD = 1 时,波特率提高一倍。复位时, SMOD = 0

Page 12: 第 7 章   串行接口通信

7.3 串行口的四种工作方式 7.3.1 串口工作方式 0

7.3.2 串口工作方式 1

7.3.3 串口工作方式 2

7.3.4 串口工作方式 3

Page 13: 第 7 章   串行接口通信

7.3.1 串口工作方式 0

1 方式 0 的帧结构

2 方式 0 时的波特率

3 方式 0 工作基本原理

4 串行口方式 0 应用举例

Page 14: 第 7 章   串行接口通信

1 方式 0 的帧结构 方式 0 为同步移位寄存器输入 / 输出方式。可外接移位寄存器以扩展 I/O 口,也可以外接同步输入 / 输出设备。串行数据通过 RXD 输入或输出,而 TXD 用来输出移位脉冲或外接部件的同步脉冲。方式 0 是以 8位数据为一帧,不设起始位和停止位,先发送或接收最低位,其帧格式如图 7-6所示

D0 D1 D2 D3 D4 D5 D6 D7 …………………

图 7- 6 方式 0 的帧格式

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

2 方式 0 时的波特率

/12oscf

方式 0 时,每个机器周期产生一个移位脉冲,发送或接收一位数据,因此方式0 的波特率固定为

Page 16: 第 7 章   串行接口通信

3 方式 0 工作基本原理方式 0 的发送过程:当执行一条将数据

写入发送缓冲器 SBUF 的指令, CPU将数据写入到发送缓冲器 SBUF 时,串行口将 8位数据以固定的波特率由 RXD引脚输出,同时由 TXD引脚输出频率为 fosc/12 的同步脉冲,字符发送完毕,置中断标志 T1 = 1 ,向 CPU申请中断。

Page 17: 第 7 章   串行接口通信

3 方式 0 工作基本原理方式 0 的接收过程:控制字除设置

为方式 0 外,还应设置接收允许控制位 REN = 1 ,清除 RI 中断标志,接收器启动后, RXD 为数据输入端, TXD 为同步信号输出端,接收器以固定的波特率采样 RXD引脚输入的数据信息。当接收完 8 位数据后又重新置 RI = 1 。

Page 18: 第 7 章   串行接口通信

4 串行口方式 0 应用举例例 7.1 :将片内 RAM 的 30H 单元中的内容经 CD4094 并行

输出。 分析: CD4094 是一种 8 位串行输入、并行输出的同步移

位寄存器, CLK 为同步脉冲输入端, STB 为控制端,若 STB= 0 ,则 8 位并行数据输出端关闭,但允许串行数据从 DATA输入,若 STB = 1 ,则 DATA 输入端关闭,但允许 8 位数据并行输出。 CD4094 与单片机连接电路如图 7-7 所示。

RXD

TXD

P1.0

DATA

CLK

STB8051

数据输出

移位输出

D0D1D2D3D4D5D6D7

图 7-7   串口扩展并行 I/O 口

Page 19: 第 7 章   串行接口通信

例 7.1 源程序:MAIN : MOV SCON,#00H ; 设置工作模式 0 MOV A,30H MOV SBUF,A    ; 发送 30H 单元内容 CLR P1.0    WAIT : JNB TI,WAIT   ; 判断是否发送完毕

CLR TISETB P1.0SJMP $

Page 20: 第 7 章   串行接口通信

7.3.2 串口工作方式 1

1 方式 1 的帧结构

2 方式 1 时的波特率

3 方式 1 工作基本原理

4 串行口方式 1 应用举例

Page 21: 第 7 章   串行接口通信

1 方式 1 的帧结构 方式 1 是以 10 位数据为一帧,设 1 位起始位“ 0” , 8位数据位, 1 位停止位“ 1” ,先发送或接收最低位,其帧格式如图 7-8 所示

图 7-8 方式 0 的帧格式

D0 D1 D2 D3 D4 D5 D6 D7起始位“ 0” 停止位”1”

Page 22: 第 7 章   串行接口通信

2 方式 1 时的波特率 方式 1 的移位时钟脉冲由定时器 T1 的溢出率决定,因此,串行口方式 1 的波特率由定时器 T1 的溢出率与 SMOD值同时决定。即方式 1 的波特率如式 7-3 所示

8

21

32 12[2 ( 1)]

SMODoscf

TH

7-3方式 的波特率=

Page 23: 第 7 章   串行接口通信

3 方式 1 工作基本原理方式 1 的发送过程:除设置 SCON 寄存器

为方式 1 和 TI = 0 外,还需要利用定时器T1 来完成波特率的设置,当执行数据写入发送缓冲器 SBUF 的命令时,就启动了发送器开始发送。发送电路自动在 8 位发送字符前后分别添加 1 位起始位和 1 位停止位。并在发送移位时钟(其频率即是用户设置的波特率)作用下在 TXD引脚依次发送一帧信息,发送完后自动维持 TXD 为高电平,发送完毕后硬件置位 TI ,并在中断服务程序中由软件将 TI 复位。

Page 24: 第 7 章   串行接口通信

3 方式 1 工作基本原理

方式 1 的接收过程:方式 1 接收操作必须在 SCON 寄存器中 REN 位为 1 、 RI 为 0 、工作模式设置为 1 的前提下进行,同时还必须利用定时器 T1 来完成波特率的设置。当上述设置完成后, MCS- 51 单片机的 CPU会自动对 RXD引脚采样。采样频率为波特率的 16 倍,当检测到起始位( RXD 上检测到 1→0 的跳变,即起始位)时,接收电路对 RXD引脚采样启动串口数据接收。

Page 25: 第 7 章   串行接口通信

3 方式 1 工作基本原理方式 1 的收发流程

Page 26: 第 7 章   串行接口通信

4 串行口方式 1 应用举例例 7.3 设有 A 、 B 两个单片机,采用中断方式编程实现如下串行通信功能的程序。双机通信电路如图 7-9 所示。时钟振荡频率为 11.0592MHz 。

图 7 - 9 双机通信

A 机: 将首地址为 ADDRT 的长度为 LEN 个单元的数据块顺序向 B 机发送 , 波特率为 2400 。

B 机:将接收到的 LEN 个单元的数据块顺序存储在以 ADDRR 的数据缓冲区中

Page 27: 第 7 章   串行接口通信

8

21

32 12[2 ( 1)]

SMODoscf

TH

方式 的波特率=

6

1

6

1 11.0592*102400

32 12(256 )

11.0592*101 256

12*32*2400256 12 244 4

TH

TH

F H

Page 28: 第 7 章   串行接口通信

A 机发送源程序: LEN EQU 30H

ADDRT EQU 31HORG 0000H

LJMP MAIN ORG 0023H

LJMP INT_COMMORG 0030H

MAIN : MOV SCON,# 40H 

MOV TMOD,#20H  MOV TH1,#0F4H MOV TL1,#0F4H

SETB TR1SETB EASETB ESMOV R2,#LENMOV R0,#ADDRT

MOV A,@R0 MOV SBUF,A

LJMP $

; 中断服务子程序INT_COMM : CLR TI DJNZ R2,LOOP

CLR ESLJMP ENDCOMM

LOOP : INC R0MOV A,@R0MOV SBUF,A

ENDCOMM : RETI END

Page 29: 第 7 章   串行接口通信

B 机接收源程序: LEN EQU 30H

ADDRR EQU 31HORG 0000H

LJMP MAIN ORG 0023H

LJMP INT_COMMORG 0030H

MAIN : MOV SCON,#50H  MOV TMOD,#20H  MOV TH1,#0F4H

MOV TL1,#0F4HSETB TR1SETB EASETB ESMOV R2,#LENMOV R0,#ADDRR

LJMP $

; 中断服务子程序INT_COMM : CLR RI

MOV A, SBUFMOV @R0,A

DJNZ R2,LOOPCLR ESLJMP ENDCOMM

LOOP : INC R0ENDCOMM : RETI END