第六章单片机串行口及应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理及应用
第六章
单片机串行口及应用
P2 6.1 MCS-51 单片机串行接口
6.1.1 基本概念
1.串行通信与并行通信
并行通信:数据的各位同时进行传送的通信方式。并行通信的优点是传送速度快,缺点是需要的传输线多,不适宜远距离通信。并行通信通过并行口实现。
串行通信:数据逐位按顺序传送的通信方式。串行通信的优点是只需要一对传输线,特别适用于远距离通
信。其缺点是传送速度低。串行通信通过串行口实现。
2.异步通信和同步通信
(1)异步通信
在异步通信中,数据以字符为单位进行传送,一个字符也叫一帧信息。每帧数据数用一起始位(低电平)表
示传送字符的开始,接着由数据的低位开始逐位传送。
最后以一个停止位(高电平)表示该字符结束。
异步通信字符帧的格式 无空闲位字符帧:
带空闲位字符帧:
P3
D7
0/1
D1D0
D1
D2
D3D4
D5
D6
D7
0/1
D0
1
1
停止位
起始位停止位
起始位第n-1字符
第n+1字符
第n 字符帧8个数据位
校验位停止
位起始位D0
第n+1字符D0
D1
D2
D3D4
D5
D6
D7
0/1
1
1
起始位第n-1字符
第n 字符帧
8个数据位
1
1
1
空闲位空闲位校验位
(2) 同步通信
同步通信是一种连续串行传送数据的通信方式。每次通信连读传送若干个数据字符。在数据传送前,发送方先发送1个或2个同步符作起始标志,接收方不断采样传输线,确认接收到同步符后便开始接收后面的数据。数据紧跟同步符之后,个数不受限制,每个数据不需起始位和停止位,数据之间无间隙。所以同步通信的传输速率要比异步通信高,可达56000bps。为使发送方和接收方的时钟保持严格同步,要求发送方除发送数据外,还要同时发送时钟脉冲到接收端。
同步字符1同步字符2
数据1数据2数据3数据……
同步字符
数据1数据2数据3数据……
3. 串行通信的传送方式
串行通信的传送方式有三种。
(1)单工方式:只允许数据向一个方向传送。
(2)半双工方式:允许数据双向传送,但同一时刻只能一方发送,另一方接收。
(3)全双工方式:允许数据同时双向传送,全双工方式其发送和接收是各自独立的通道。
发送器
接收器
A 站
B 站
发送器
发送器
接收器接收器
A 站
B 站
发送器接收器
接收器发送器A 站
B 站
4. 波特率和发送/接收时钟
(1)波特率
波特率的定义为每秒钟传送二进制代码的位数。
单位是位/秒(bps)。波特率是串行通信的重要指标,用于表征数据的传输速度。每位的传送时间为波特率的倒数。即Td=1/波特率。
(2)发送/接收时钟
在异步传送方式中,发送/接收时钟频率为波特率的n倍,n取16或64,通常取16。即每位的传送时间Td=nTc,(Tc为发送/接收时钟周期)。也就是每传送1位需要16个时钟周期。这样做目的是更准确地给数据位定位。
收发双方传送波特率必须保持一致,否则传送过程就会发生错位。
6.1.2 串行口结构
串行口主要由发送缓冲器、发送控制器、输出控制门、接收缓冲器,接收控制器、输入侈位寄存器等组成。
内部数据总线
发送
端口
接收
端口
波
特
率
发
生
器
≥1
串
行
口
中
断
写SBUF
读SBUF
SBUF (发送)
发送控制器
接收控制器
SBUF (接收)接收移位寄存器
TXD
P3.1
RXD
P3.0
DB
DB
TI
RI
P7
P8 6.1.3 串行口控制
1.串行口控制寄存器SCON
SCON 格式:
D7D0
SM0SM1SM2REN TB8RB8TI RI(98H)
各位的含义和下:
SM0、SM1:串行口工作方式选择位。
SM0 SM1
0 0方式0,同步移位寄存器方式,传送波特率为fosc/12。
0 1 方式1,10位异步收发,传送波特率可变。
1 0 方式2,11位异步收发,传送波特率为fosc/32或fosc/64。
1 1 方式3,11位异步收发,传送波特率可变。
P9 SCON (续)
SM2:多机通信控制位。单片机串行口的4种工作方式中,只有方式2或方式3(11位异步通信)才可用于多机通信。在进行多机通信时,若接收机的SM2置1,则它只能接收地址帧,而不能接收数据帧。只有SM2=0时才能接收数据帧。有关通信原理将在后面介绍。
REN:允许接收控制位。
REN=1时,允许串行口接收数据。
REN=0时,禁止串行口接收数据。
TB8:是方式2和方式3发送数据的第9位。发送数据前,预先将第9位写入TB8中。
RB8:是方式2和方式3接收数据的第9位。接收数据时,将接收到的数据第9位存入RB8中。
TI:发送中断标志位。发送完一帧数据后,由硬件置位TI,同时向CPU发出中断请求。
RI:接收中断标志位。当一帧数据接收完并能进入输入SBUF,则置位RI,同时向CPU发出中断请求。