1 / 29

第 7 章 串行接口通信

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

Download Presentation

第 7 章 串行接口通信

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第7章 串行接口通信 7.1 概述 7.2 MCS-51 单片机的串行通信接口 7.3 串行口的四种工作方式 7.4 串口综合应用举例

  2. 7.1 概述 在实际工作中,计算机的CPU和外部设备之间常要进行数据交换,一台计算机与其他计算机之间也往往要交换数据,所有的这些信息交换都称为通信。 常用的通信方式有两大类:串行通信和并行通信。目前串行通信协议有很多种:USB、I2C、RS-232、SPI等都是串行通信协议。并行通信协议有SPP、EPP、ECP等。通常需要根据信息传送的距离决定采用那种通信方式,例如PC与外部设备(如打印机等)通信时,如果距离小于30m,可以采用并行通信方式,当距离大于30m时,则要采用串行通信方式。

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

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

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

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

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

  8. 7.2 MCS-51 单片机的串行通信接口 • 7.2.1 串行通信接口结构 • 7.2.2 串行口控制寄存器SCON和PCON

  9. 7.2.1 串行通信接口结构

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

  11. 2、电源控制寄存器PCON PCON是为了在CHMOS的80C51单片机上实现电源控制而附加的。PCON中的最高位SMOD与串行口工作有关,如图7-5所示 • 图7-5 电源控制寄存器PCON SMOD(PCON.7)——波特率倍增位。 在串行口方式1、方式2和方式3时,波特率和SMOD成正比,亦即当SMOD=1时,波特率提高一倍。 复位时,SMOD=0

  12. 7.3 串行口的四种工作方式 • 7.3.1 串口工作方式0 • 7.3.2 串口工作方式1 • 7.3.3 串口工作方式2 • 7.3.4 串口工作方式3

  13. 7.3.1 串口工作方式0 • 1 方式0的帧结构 • 2 方式0时的波特率 • 3 方式0工作基本原理 • 4 串行口方式0应用举例

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

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

  16. 3 方式0工作基本原理 方式0的发送过程:当执行一条将数据写入发送缓冲器SBUF的指令,CPU将数据写入到发送缓冲器SBUF时,串行口将8位数据以固定的波特率由RXD引脚输出,同时由TXD引脚输出频率为fosc/12的同步脉冲,字符发送完毕,置中断标志T1=1,向CPU申请中断。

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

  18. 4 串行口方式0应用举例 例7.1:将片内RAM的30H单元中的内容经CD4094并行输出。 分析:CD4094是一种8位串行输入、并行输出的同步移位寄存器,CLK为同步脉冲输入端,STB为控制端,若STB=0,则8位并行数据输出端关闭,但允许串行数据从DATA输入,若STB=1,则DATA输入端关闭,但允许8位数据并行输出。CD4094与单片机连接电路如图7-7所示。 • 图7-7  串口扩展并行I/O口

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

  20. 7.3.2 串口工作方式1 • 1 方式1的帧结构 • 2 方式1时的波特率 • 3 方式1工作基本原理 • 4 串行口方式1应用举例

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

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

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

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

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

  26. 4 串行口方式1应用举例 例7.3 设有A、B两个单片机,采用中断方式编程实现如下串行通信功能的程序。双机通信电路如图7-9所示。时钟振荡频率为11.0592MHz。 • 图7-9 双机通信 A机: 将首地址为ADDRT的长度为LEN个单元的数据块顺序向B机发送,波特率为2400。 B机:将接收到的LEN个单元的数据块顺序存储在以ADDRR的数据缓冲区中

  27. A机发送源程序: LEN EQU 30H ADDRT EQU 31H ORG 0000H LJMP MAIN ORG 0023H LJMP INT_COMM ORG 0030H MAIN:MOV SCON,# 40H MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H SETB TR1 SETB EA SETB ES MOV R2,#LEN MOV R0,#ADDRT MOV A,@R0 MOV SBUF,A LJMP $ ; 中断服务子程序 INT_COMM: CLR TI DJNZ R2,LOOP CLR ES LJMP ENDCOMM LOOP: INC R0 MOV A,@R0 MOV SBUF,A ENDCOMM: RETI END

  28. B机接收源程序: LEN EQU 30H ADDRR EQU 31H ORG 0000H LJMP MAIN ORG 0023H LJMP INT_COMM ORG 0030H MAIN:MOV SCON,#50H MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H SETB TR1 SETB EA SETB ES MOV R2,#LEN MOV R0,#ADDRR LJMP $ ;中断服务子程序 INT_COMM:CLR RI MOV A, SBUF MOV @R0,A DJNZ R2,LOOP CLR ES LJMP ENDCOMM LOOP: INC R0 ENDCOMM:RETI END

More Related