- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
写入SBUF
S6 P 2
D
SEND
SHIFT
RXD(DAT A OUT )
D0
D1
D2
D3
D4
D5
D6
D7
T XD(SHIFT CLOCK) S3P1 S6P1
TI
2019/5/10
方式0发送时序
24
方式0接收
清除SCON中的RI位
RI RECEIVE
B
SHIFT
RXD(DAT A IN)
D0
D1
2019/5/10
18
TB8,在方式2、3中,是发送数据的第9位 数据的奇偶校验位 地址帧/数据帧的标志位
RB8,在方式2、3中,是接收到数据的第9位 奇偶校验位
地址帧/数据帧的标志位。
方式1时,若SM2=0,则RB8是接收到的停止位。
2019/5/10
19
TI,发送中断标志位。
方式0时,串行发送第8位数据结束时 其它方式,串行发送停止位的开始时 硬件使TI置1,发中断申请。必须在中断服务程序中 用软件将其清0。
收到的9位数据的前8位装入SBUF,Title第9位(停止位)
进入RB8,并置RI=1,向CPU请求S中iBze 断Num。ber
Date: File:
16-Mar-2009
E:\教材参编\第七章图\ch7gzsx.ddb
4
5
Revision
Sheet of Drawn By :
6
2019/5/10
最后一次移位后,置TI=1,请求中断。
2019/5/10
29
方式2和方式3接收
RX CLOCK
RXD
起始位
D0
位检测器采样时间
D1
D2
D3
D4
D5
D6
D7
RB8 停止位
SHIFT
RI
方式2接收时序
数据从右边移入输入移位寄存器,最后一次移位后, 若RI=0,且SM2=0(或接收到的第9位数据为1)时, 接收到的数据装5 入接收缓冲器SBU6F和RB8(接收数 7 据的第9位),置RI=1,向CPU请求中断。 如果条件不满足,则数据丢失,且不置位RI
T X CLOCK
写入SBUF
SEND DAT A
S1 P 1
SHIFT T XD
起始位
D0
D1
D2
D3
D4
D5
D6
D7
T B8 停止位
TI ST OP BIT GEN
先把起始位0输出到方式2T发送X时序D,然后发送移位寄存器的 输出位(D0)。每一移位脉冲都使输出移位寄存器 的各位移动一位,并由TXD引脚输出。
Fosc/64或fosc/32
11位UART
可变,由定时器 控制
其中fosc为晶振频率。
2019/5/10
23
7.2.1 工作方式0
方式0
同步移位寄存器的输入输出方式。用于扩展并行输入或
输出口。数据由RXD引脚输入或输出,移位脉冲由TXD引
脚输出。8位数据。波特率为fosc/12。
方式0发1送
2
3
例:ISO的高级数据链路控制规程HDLC和IBM的同步数 据链路控制规程SDLC。
传输效率较高,但硬件设备复杂。
2019/5/10
10
串行通信的传输方向
单工 半双工 全双工
发送
接收
单工
发送 时间1 接收
发送
接收
接收 时间2 发送
接收
发送
半双工
全双工
2019/5/10
11
信号的调制与解调
调制器把数字信号转换成模拟信号,然后 送到通信线路上去
27
7.2.3 工作方式2、3
方式2和方式3
11位数据的异步通信。
1帧共11位
起 空始 闲位
数据位9位
停 止空 位闲
D0
D7
RB8/TB8
LSB
MSB
起始位1位,数据9位,停止位1位 方式2的波特率固定为晶振频率的1/64或1/32 方式3的波特率由定时器T1的溢出率决定
2019/5/10
28
方式2和方式3发送
例:IBM的二进制同步规程BSC。
2019/5/10
9
面向位的同步格式 :
8位
8位
8位
≥0位
01111110
地址场
控制场
信息场
16位 校验场
8位 01111110
用序列01111110作为开始和结束标志。
发送方在其发送的数据流中每出现5个连续的1就插入一个 附加的0;接收方则每检测到5个连续的1且其后有一个0时, 就删除该0。
2019/5/10
30
波特率的计算
方式0、2的波特率是固定的,而方式1、3的波特 率是可变的,由定时器T1的溢出率来决定。
方式0波特率 = fosc/12 方式2波特率 =(2SMOD/64)·fosc 方式1波特率 =(2SMOD/32)·(T1溢出率) 方式3波特率 =(2SMOD/32)·(T1溢出率)
第7章 串行口UART
《单片机原理与应用系统设计》 电子工业出版社 , 2009.7
欧伟明 何静 凌云 刘剑 等编著
2019/5/10
1
本章主要内容
串行口UART 串行口的工作方式 串行口应用举例
2019/5/10
2
通信:信息交换
计算机 计算机
计算机 外设
应用:多机系统、计算机网络
SM2=1,收到的RB8=0时,收到的信息丢弃,不激活RI ;若 收到的RB8=1时,收到的数据进入SBUF,并激活RI,进而在 中断服务中将数据从SBUF读走。
方式0时,SM2必须是0。
方式1时,SM2=1时,只有接收到有效停止位时,RI才激活。
REN,允许串行接收位。
置REN=1,启动串口接收过程 置REN=0,则禁止串口接收
SBUF 发送(99H)
逻辑门电路
发送控制器
TI
串行口中断
≥1
RI
接收控制器
SBUF 接收(99H)
移位寄存器
串 行 口 控 制 寄 存 器 SCON
TXD(P3.1)
RXD(P3.0)
2个物理上独立的接收、发送缓冲器SBUF,占用同一地 址99H ;接收器是双缓冲结构 。
2019/5/10
16
7.1.2 串行口的控制
RI,接收中断标志位。
方式0时,串行接收第8位数据结束时 其它方式,串行接收停止位的中间时 硬件使RI置1,发中断申请。必须在中断服务程序中 用软件将其清0。
2019/5/10
20
2、电源功能寄存器PCON (87H)
PCON (87H) SMOD
SMOD, 波特率倍增位。 在方式1、2、3时,波特率与SMOD有关: SMOD=1时,波特率提高一倍。复位时, SMOD=0。
RX CLOCK
RXD
起始位
D0
位检测器采样时间
D1
D2
D3
D4
D5
D6
D7
停止位
SHIFT
RI
置REN为1时,接收方器式1接检收时测序 到RXD引脚输入电平发生 负跳变时,则说明起始位有效,将其移入输入移位寄 存器,并开始接收这一帧信息的其余位。
当RI=0,且SM2=0(或接收到的停止位为1)时,将
4 3 14 13 12 11 SIN
74HC165(2)
CK
S/ L
2
1
2019/5/10
35
MOV R7,#20
; 设置读入字节数
MOV R0,#50H
; 设片内RAM指针
SETB F0
; 设置读入字节奇偶数标志
RCV0: CLR P1.0
; 允许并行置入数据
SETB P1.0
; 允许串行移位
串行口在中断方式工作时,还要进行中断设置 (编程IE、IP寄存器)。
2019/5/10
33
7.3 串行口应用举例
用串行口扩展I/O口 用串行口进行双机异步通信 用串行口进行多机异步通信
2019/5/10
34
7.3.1 用串行口扩展I/O口
例1 用并行输入8位移位寄存器74HC165扩展16位并 行输入口。编程实现从16位扩展口读入20个字节数据, 并把它们转存到内部RAM的50H~63H中。
1、串行口控制寄存器SCON (98H)
设定工作方式、接收/发送控制以及设置状态标志 SCON (98H) SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0、SM1:工作方式设置位
2019/5/10
17
SM2,多机通信控制位。
主要用于方式2和方式3。对于接收机
SM2=0,收到RB8(0或1)既可使收到的数据进入SBUF,并 激活RI。
2019/5/10
5
串行通信的基本概念
异步通信与同步通信 异步通信
收、发设备使用各自时钟。
接 收 设10100100 1 备
0 10100100 1
间隙任意 发
送
0 11100110 1 0 1110011设0
备
2019/5/10
6
以字符(构成的帧)为单位 字符间是异步的 字符内各位是同步的
数据格式 :
D0 D1 D2 D3 D4 D5 D6 D7
D0 D1 D2 D3 D4 D5 D6 D7
P3.0 89S51
数据输入
+5V
65 9 QH 16 VCC 8 GND
移位脉冲
P3.1 P1.0
4 3 14 13 12 11 SIN
74HC165(1)
CK
S/ L
2
1
65 9 QH +5V 16 VCC 8 GND
起 空始 闲位
一个字符帧 数据位
校停 验止 位位
空 下一字符 闲 起始位
LSB
2019/5/10
MSB
7
同步通信
发送方时钟与接收方时钟同步。既保持位同 步,也保持字符同步。同步方法:
01101
计 数据
计
算
算
机
机
甲 时钟
乙
时钟
计 数据 0 1 1 0 1
计
算
算
机 数据+时钟
机
甲
乙
外同步
2019/5/10
源自文库
D2
D3
D4
D5
T XD(SHIFT CLOCK)
S5 P 2
方式0接收和发送电路 方式0接收时序
D6
D7
RXD 89S51
A
B
74HC164
TXD
CLK CLR
GND
A
P1.0
RXD 89S51
TXD
P1.0
Q
74HC165
CLK S/L
GND
2019/5/10
25
7.2.2 工作方式1
方式1 1
解调器把从通信线路上收到的模拟信号转 换成数字信号。
RS-232C
DCE DTE
2019/5/10
电话网
12
RS-232C
DCE DTE
串行通信的错误校验
奇偶校验 代码和校验 循环冗余校验
传输速率与传输距离 传输速率
比特率:每秒钟传输二进制代码的位数 波特率:每秒钟调制信号变化的次数,单位是:波特 (Baud)。
RCV1: MOV SCON,#10H ; 设串行口方式0并启动接收
JNB RI,$
; 等待接收一帧数据
CLR RI
; 清除接收中断标志
MOV A,SBUF
; 取缓冲器数据
INC R0
CPL F0
JB F0,RCV2
; 判断是否接收完偶数帧, 接收完则重新并行置入
DEC R7
SJMP RCV1
; 否则再接收一帧
方式:
并行通信 串行通信
2019/5/10
3
并行通信:数据多位同时传送
8位同时传送 1
0
接
1
发
0
收 设
1
送
1 0
设
备
0
备
询问
应答
控制简单,传输速度快,传输线较多
2019/5/10
4
串行通信:数据字节一位一位在一条传输 线上逐个传送。
接
发
收
D0
D7
送
设 备
8位顺次传送
设 备
传输线少,可利用电话网,但传送控制复杂。
2
3
4
10位数据的异步通信。帧格式如图所示。
D
起 空始 闲位
1帧共10位 数据位8位
停 止空 位闲
D0
D7
LSB
MSB
C
方式1发送
T X CLOCK
写入SBUF
SEND DAT A
S1 P 1
B
SHIFT
T XD
起始位
D0
D1
D2
D3
D4
D5
D6
D7
停止位
TI
2019/5/10
方式1发送时序 26
方式1接收
2019/5/10
13
波特率和比特率不总是相同的,但对于基带传输, 比特率和波特率是相同的。
传输距离与传输速率的关系 传输距离随传输速率的增加而减小。
2019/5/10
14
7.1 串行口UART
串行口的结构 串行口的控制
2019/5/10
15
7.1.1 串行口的结构
内
波
部
特
总
率
线
发
生
器
自同步
8
面向字符的同步格式 :
SYN SYN SOH 标题 STX
数据块
ETB/ETX 块校验
同步字符SYN(16H) 序始字符SOH (01H),表示标题的开始 标题:源地址、目标地址和路由指示等信息
文始字符STX (02H) 数据块是传送的正文内容,由多个字符组成
组终字符ETB(17H)或文终字符ETX(03H) 校验码
T1 溢出率 = fosc /{12×[256 -(TH1)]}
T1方式2,TR1=1(以启动定时器)
2019/5/10
31
2019/5/10
32
串行口初始化具体步骤:
确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,装载TH1、TL1; 启动T1(编程TCON中的TR1位); 确定串行口控制(编程SCON寄存器);
2019/5/10
21
7.2 串行口的工作方式
工作方式0 工作方式1 工作方式2 工作方式3
2019/5/10
22
串行口工作方式
SM0、SM1 工作方式
00
方式0
01
方式1
10
方式2
11
方式3
功能描述
波特率
8位同步移位寄 Fosc/12 存器
10位UART
可变,由定时器 控制
11位UART
RCV2: DJNZ R7,RCV0 ; 判断是否已读入预定的字节数
…………
; 对读入数据进行处理
2019/5/10
36
例2 用两片8位串入并出移位寄存器74HC164扩展16 位输出接口。