单片机课件第八章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
部分组成,如图8-1所示。现对各部分结构和功能分述如下:
起始位:位于字符帧开头,只占1位,始终为逻辑0低电平,用于向接收设备表示
发送端开始发送一帧信息。
数据位:紧跟起始位之后,用户根据情况可取5位、6位、7位或8位,低位在前高 位在后。若所传数据为ASCII字符,则常取7位。 奇偶校验位:位于数据位后,仅占1位,用于表征串行通信中使用奇校验还是偶 校验,由用户根据需要决定。 停止位:位于字符帧末尾,为逻辑“1”高电平,通常可取1位、1.5位或2位,用 于向接收端表示一帧字符信息已发送完毕,也为发送下一帧字符做准备。
速度和效率较低。要改变数据信息的传输方向必须通过软件编程双方均需进
行方向切换,由方向切换所产生的延时较长,由无数次重复切换所引起的延 时积累,正是半双工串行通信效率不高的主要原因。克服上述半双工缺点的
方法是采用信道划分技术,即一方的发送端与另一方的接收端用一根专用的
信息传输线相连接,再用另一根信息传输线相反方向连接。所谓全双工方式, 就是采用两根通信传输线各自连接发送与接收端,从而实现数据信息的双向 传输。这样,可方便地同时实施接收、发送数据信息的双向传输,大大提高 了数据信息的传输速率和效率,操作简单而方便,故而得以被广泛应用。
在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。
在方式0时,SM2必须为0。
REN:允许串行接收位。由软件置1或清0。若REN=1,允许串行口接收数据; 若REN=0,禁止串行口接收数据。
TB8:发送的第9位数据。在方式2和3时,TB8是要发送的第9位数据。其值
由软件置1或清0。在双机通信时,TB8一般作为奇偶校验位使用;在多机通 信中用来表示主机发送的是地址帧还是数据帧,TB8=1为地址帧,TB8=0为
送端向接收端传输数据信息,而不能反过来传输。
(2)半双工方式 半双工方式的串行通信系统中设有接收器和发送器,通过控制电子模拟开关进行切换,两台 串行通信设备或计算机之间只用一根通信传输线相互连接。这样,通信双方可以相互进行数
据信息的接收或发送,但在同一时间仍只能单方向传输,不能同时进行接收和发送。由于只
3.工作方式 2
图 8-4 方式 2 帧格式 串行数据通过 TXD 发送,RXD 接收。每帧数据均为 11 位,包括 1 位起始位,8 位数 据位,1 位可程控位,即 1 或 0 的第 9 位以及 1 位停止位,如图 8-4 所示。此方式下波特 率由下式确定:
2SMOD f osc 方式 2 的波特率= 64
接收操作在RI=0和REN=1条件下进行,这点与方式0时相同。当接收电路连 续8次采样到RXD线为低电平时,相应检测器便可确认RXD线上有了起始位。 在接收到停止位时,接收电路必须同时满足以下两个条件:RI=0且SM2=0
或接收到的停止位为“1”,才能把接收到的8位字符存入“SBUF(接收)”
中,当一帧数据接收完毕后,将SCON中的RI置1,通知CPU从SBUF取走接收 到的数据。
AT89S51单片机的串行接口有4种工作模式,可通过对SCON中的SM0、
SM1位的设置选择。
1.工作方式0 在方式0下,串行口的SBUF是作为同步移位寄存器使用的。在串行口发送时,
“SBUF(发送)”相当于一个并入串出的移位寄存器,由AT89S51单片机的内
部总线并行接收8位数据,并从TXD线串行输出;在接收操作时,“SBUF (接收)”相当于一个串入并出的移位寄存器,从RXD线接收一帧串行数据, 并把它并行地送入内部总线。在方式0下,SM2、RB8和TB8均不起作用,它 们通常均应设置为“0”状态。
传输速度越快。
异步通信的优点是不需要传送同步脉冲,字符帧长度也不受限制,故所需设
备简单,缺点是字符帧中因包含有起始位和停止位而降低了有效数据的传输
速率。
同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。
这里的信息帧和异步通信中的字符帧不同,通常含有若干个数据字符,但它
们均由同步字符、数据字符和校验字符三部分组成。
【知识目标】
1.掌握串行口的工作原理及相关的特殊功能寄存器。
2.熟悉标准串行接口的硬件接口设计。 3.掌握串行通信程序的设计。 【技能目标】 1.掌握串行口的硬件接口电路设计及软件驱动程序设计。 2.掌握基于Proteus的串行通信接口电路的仿真调试。
8.1串行通信的相关概念
8.2 AT89S51单片机的串行口
8.3串行口的工作方式 8.4波特率的设定 8.5单片机的串行通信接口技术 8.6案例: 双机通信
8.1.1数据通信的方式
按照串行数据的同步方式,串行通信可以分为同步通信和异步通信两类。同
步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种 利用字符的再同步技术的通信方式。 1.异步通信 在异步通信中,数据通常以字符(或字节)为单位组成字符帧传送。字符帧 由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以 由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。 在异步通信中,字符帧格式和波特率是两个重要指标,由用户根据实际情况 选定。 (1)字符帧。字符帧也称数据帧,由起始位、数据位、奇偶校验位和停止位4
一帧数据发送结束,可供软件查询,也可申请中断。CPU响应中断后,在中 断服务程序中向SBUF写入要发送的下一帧数据。TI必须由软件清0。
RI:接收中断标志位。串行口在工作方式0时,接收完第8位数据时,RI由硬
件置1。在其它工作方式中,串行口接收到停止位时,该位置1。RI=1,表 示一帧数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的 状态也可供软件查询。RI必须由软件清0。
寄存器的RB8位,直至完成一帧数据后将RI置1,当串口接收缓冲器接收到一
帧数据时,可以执行MOV A,SBUF指令进行读取。
与串行通信相关的寄存器有:SBUF、SCON、PCON和IE。
SCON 是 AT89S51 单片机可位寻址的特殊功能寄存器,主要用于控制串口的数据通 信。单元地址是 98H,复位后位 00H。各位的定义如表 8-1 所示: 表 8-1 SCON 各位定义 位 名 称 位 地 址 SM0 SM1 SM2 REN TB8 RB8 TI RI
工作方式 工作方式 0 工作方式 1 工作方式 2 工作方式 3
功能简述 移位寄存器工作方式,波特率为 8 位数据异步收发,波特率可变 9 位数据异步收发,波特率为 /32 或 /64 /12
9 位数据异步收发,波特率可变
SM2:多机通信控制位。因为多机通信是在方式2和方式3下进行的,因此, SM2位主要用于方式2和方式3中。当串行口以方式2或方式3接收时,如果 SM2=1,则只有当接收到的第9位数据(RB8)为1时,才将接收到的前8位数 据送入SBUF,并将RI置1,产生中断请求;当接收到的第9位数据(RB8)为0 时,则将接收到的前8位数据丢弃。而当SM2=0时,则不论第9位数据是1还 是0,都将前8位数据送入SBUF中,并将RI置1,产生中断请求。
在串行口方式0下工作并非是一种同步通信方式。它的主要用途是和外部同 步移位寄存器外接,以达到扩张一个并行I/O口的目的。
2.工作方式 1 串行数据通过 TXD 发送,RXD 接收。一帧数据是 10 位,包括 1 位起始位,8 位数 据为和 1 位停止位,如图 8-3 所示。波特率是可变的,由定时器 1 溢出率和 SMOD 共同 决定。方式 1 的波特率由下式确定:
ቤተ መጻሕፍቲ ባይዱ
第9位数据可以自己定义,一般在双机通信时作为奇偶校验位,多机通信时
作为地址/数据的标志位。发送前,先根据通信协议由软件设置TB8,然后将
要发送的数据写入SBUF,即可启动发送过程。串行口能自动把TB8取出,并 装入到第9位数据位的位置,再逐一发送出去。发送完毕,则使TI位置1。
当串行口的SCON寄存器的SM0、SM1两位为10,且REN=1时,允许串行口
在串行通信中,发送端逐帧发送信息,接收端逐帧接收信息。两相邻字符帧之间
可以无空闲位,也可以有若干空闲位,这由用户根据需要决定。图8-1 (b)中有三 个空闲位时的字符帧格式。
波特率的是每秒钟传送二进制数码的位数(亦称比特数),单位是bps。波
特率是串行通信的重要指标,用于表征数据传输的速度。波特率越高,数据
PCON 是电源控制寄存器,不能位寻址。地址为 87H。各位的定义如表 8-3 所示: 表 8-3 PCON 各位定义 位 称 SMO D — — — GF1 GF0 PD IDL
其中,与串行通信相关的位是 SMOD。 SMOD:串行口波特率系数控制位。若 SMOD=1,方式 1、方式 2 和方式 3 的波特率 加倍。若 SMOD=0,各工作方式的波特率保持不变。
同步通信的数据传输速率较高,通常可达56Mbps或更高。同步通信的缺点
是要求发送时钟和接收时钟保持严格同步,故发送时钟除应和发送波特率保
持一致外,还要求把它同时传送到接收端。
一般情况下,串行通信中数据信息的传输总是在两个通信端口之间进行的。根据数据信息的
传输方向可分为以下几种方式:
(1)单工方式 在串行通信单工方式下,用一根通信传输线的一端与发送方相连接,称为发送端,其另一端 与接收方相连接,称为接收端。数据信息只允许按照一个固定的单方向传送,也就是只能发
9FH
9EH
9DH
9CH
9BH
9AH
99H
98H
位 SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0 号 SM0 SM1:串行口 4 种工作方式的选择位。如表 8-2 所示。
表 8-2 串行通信工作方式 SM0 0 0 1 1
SM1 0 1 0 1
数据帧。
RB8:接收到的第9位数据。在方式2和3时,RB8存放接收到的第9位数据。 在方式1,如果SM2=0,RB8接收到的是停止位。在方式0,不使用RB8。
TI:发送中断标志位。串行口工作在方式0时,串行发送第8位数据结束时由
硬件置1,在其他工作方式,串行口发送停止位的开始时置1。TI=1,表示
有一根通信传输线,所以每次只能从一方传输给另一方,要改变传输方向时,必须通过电子 模拟开关互相切换,即由一方的接收切换成发送,另一方由发送切换成接收状态,然后才能 进行反方向数据信息的传输。其优点是节省了一根通信传输线,其缺点是显而易见的。
半双工通信方式只用一根通信传输线进行数据信息的接收或发送,其通信的
2SMOD 定时器T1的溢出率 方式 1 波特率= 32
图 8-3 方式 1 帧格式
发送操作是在TI=0时,执行MOV SBUF,A指令后开始,然后发送电路自动
在8位发送字符前后分别添加1位起始位和停止位,并在移位脉冲作用下在
TXD线上依次发送一帧信息,发送完后自动维持TXD线为高电平。TI也由硬 件在发送停止位时置位,并通知CPU数据发送已经结束,可以发送下一帧数 据。
以方式2接收数据。接收时,数据由RXD端输入,接收11位信息。当位检测 逻辑采样到RXD引脚从l到0的负跳变,并判断起始位有效后,便开始接收一 帧信息。在接收完第9位数据后,如果RI=0且SM2=0或接收到的第9位数据 位RB8=1。则将接收到的数据送入SBUF(接收缓冲器),第9位数据送入 RB8,将RI置1。否则,接收的信息将被丢弃。
数据缓冲寄存器SBUF用于保存要发送的数据或者从串口接收到的数据,
CPU执行写 MOV SBUF,A指令便开始触发串口数据的发送。SBUF便一位一
位地发送数据,发送完成后置标志TI=1;在CPU允许接收串行数据的时,外 部串行数据经RXD送入SBUF时,电路便自动启动接收,第9位则装入SCON
AT89S51单片机内部有一个全双工的异步通信串口。
8.2.1串行口结构
AT89S51单片机的串口由2个数据缓冲器、1个移位寄存器和1个串行控制寄 存器等组成,如图8-2所示。数据缓冲器由串行接收缓冲器和发送缓冲器构
成,它们在物理上是独立的,既可以接收数据也可以发送数据,还可以同时
发送和接收数据。接收缓冲器只能读出,不能写入,而发送缓冲器则只能写 入,不能读出,它们共用一个地址(99H)。