第七章串口通信 教学目的和要求 本章主要介绍串行通信的基本概念、原理:MCS-51单片机串口 的基本结构、工作方式及使用方法。要求了解同步通信、异步通信的 通信格式,熟悉串行通信的制式、异步串行通信的帧格式等概念。学 握MCS-51串口的基本结构、工作方式、点对点的通信、单片机与 PC机的通信,了解多机通信基本原理。 重点:单片机串口的基本结构、工作方式及使用方法 难点:单片机串口的工作方式及使用方法 学时:2 7.1串行通信基础知识 1、通信有两种基本方式:并行通信、串行通信:如下图 发送 ,接收 B 位号地 控制(通 a)并行通 州行通的 并行通信的特点:各数据位同时传送,传送速率快,效率高,但 有多少位数据就需要多少根数据线,传输成本高,传输距离短(小于 30米). 串行通信的特点:数据按位顺序传送,最少只需要一根数据线, 成本低,速率慢,传输距离长(几米到几千米》 2、串行通信分为:异步通信、同步通信 同步通信的特点:首先“同步通信”的通信双方必须先建立同 1
步,即双方的时钟要调整到同一个频率。其次每帧信号的开始要加上 同步信息,接受端以同步信息为基准,按规定的帧格式接受信号。某 帧中没有信息要传输时,在同步信息之后的信息位上要填上空字符, 因为同步传输不允许有间隙 异步通信的特点:数据也是以帧为单位传输的,发送端可以在任 意时间发送帧,所以接收端必须随时做好接收帧的准备。这就使得必 须对帧要进行定界。帧定界包含帧起始位和帧结束位标志。(如下图) 第1字符 一第n字符航 一第n+1字符 8位数 8你数据■ D:0/11 0 Do D:D:Da DaDa D.D7 0/1 1 0 D.Dr D:Da... 岛位 即:①、各帧的发送时间时任意的: ②、帧的开始和结束要加上帧定界标志: ③、每一帧内bit的传输是连续的,发送端不需要在发送 帧之前和接收端进行协调(不需要先进行比特同步)。 3、串行通信分为3种制式:单工、半双工、全双工。 2一品 特点:发送端不接受,接收端不发送 (a)单工传送 特点:终端既能发送又能接受,但两者不能 同时进行,由转换开关转换,发送时 半从工传送 不接受,接受时不发送。 特点:发送接受同时进行。 (⊙)企双工传送
4、串行通信的传输速率 波特率:每秒钟传送的二进制数码的位数,单位是b/s 波特率是串行通信的重要指标,用于表征数据传送的速率。波特 率越高,数据传输速度越快。 字符的实际传送速率与波特率不同。字符的实际传送速率是指每 秒钟内所传字符帧的帧数,与字符帧格式有关。 码元宽度T:每位的传送时间,为波特率的倒数, 通常,异步通信的波特率在50一9600b/s之间。 注意:在编制串行通讯程序时,首先要确定两个参数: 1,通讯双方的“波特率”,必须保持严格一致: 2,传输数据的格式“字符帧格式”必须统一。 7.2MCS-51的串行口及控制寄存器 MCS-51单片机有一个全双工的串行口,可作异步通信串行口 (UART用。 一、MCS-51的串行口的结构 发 发送控制可 RxC 按收控制器R1 SBUF RxD 按收(99H) 移将行器片 组成:串行数据寄存器SBUF、发送控制器、接收控制器、输入 移位寄存器、输出控制门。 3
特点:串行数据寄存器SBUF其时是两个物理上独立的接收缓冲 器SBUF和发送缓冲器SBUF,两个缓冲器占用同一个地址(99H), 可同时接收和发送数据。发送缓冲器只能写入不能读出,接收缓冲器 只能读出不能写入 两个特殊功能寄存器SCON和PCON用来控制串行口的工作方 式和波特率。 二、串行口控制寄存器 1、串行口控制寄存器SCON(可位寻址) 串行口控制寄存器SCON决定串行口通信工作方式,控制数据的 接收和发送,并标示串行口的工作状态等。其位格式为:(P106) SCON(98H) D7D6D5 D4D3D2 DI D0 SMO SMI SM2 REN TB8 RBS TI RI SCON功能:串行据通信方式选择、接收和发送控制以及串行口 的状态标志。 SM0、SM1:控制串口的工作方式。(fosc是晶振频率) SM0SM1工作方式 功能 波特案 00方式0 同步移位寄有器 f/12 01方式1 1+8+1位异步通信 由定时器轻制 10方式2 1+91位异步通信 32或64 11方式3 1+91位异步通信 由定时器控制 SM2:多机通信控制位 在方式2或方式3时,若SM2=1,则: (1)当接受到的第9位数据RB8=1时,将接收的前8位数据 送入SBUF中(接收有效),并使RI=1,同时向CPU申请中断: (2)当接受到的第9位数据RB8=0时,丢弃接收的前8位数 4
据,使RI=0,无中断申请(接收无效)。 方式2或方式3时,若SM2=0,则不管第9位数据(RB8)是0还 是1,都将接收的前8位数据送入SBUF中,都置RI=1,向CPU申 请中断。 方式0时,SM2=0。 方式1时,若SM2=l,只有接收到有效的停止位,接收中断RI 才置1。 REN:串行接收控制位。REN=1,允许接收;REN-O,禁止接收。 TB8:在方式2和方式3时要发送的第9位数据,功能是在多机 通信时表示主机发送的是数据还是地址:(TB8=0为数据,TB8=1 为地址),由软件置位和复位。非多机通信时也可以作为发送数据的 奇偶效验位使用。 RB8:在方式2和方式3时接收到的第9位数据。功能是在多机 通信时表示接收到的数据的性质;(RB8=0为数据,RB8=1为地址) 在方式0时:RB8不使用,必须为0。 在方式1时:SM2-0时,RB8为接收到的停止位。 非多机通信时还可以用于对接收到的数据进行奇偶效验。 T:发送结束申请中断标志位(发送数据有效时由硬件自动置位) 方式0中,在发送数据第8位结束后由硬件自动置位:其它方 式中,在停止位开始发送时由硬件自动置位。 T=1:表示1帧数据发送结束,告诉CPU可以发送下一帧数据。 由硬件置位,用软件清除(响应中断后,不自动清0,由软件完成)。 I:接收结束申请中断标志位(接收数据有效时由硬件自动置位) 5