51单片机-串行口
AT89S51单片机串行口的内部结构及工作原理介绍
AT89S51单片机串行口的内部结构及工作原理介绍AT89S51单片机串行口的内部结构如下图所示。
它有两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),可同时发送、接收数据。
发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器共用一个特殊功能寄存器字节地址(99H)。
串行口的控制寄存器共有两个:特殊功能寄存器SCON 和PCON。
下面介绍这两个特殊功能寄存器各位的功能。
1、串行口控制寄存器SCON串行口控制寄存器SCON,字节地址988H,可位寻址,位地址为98H~9FH。
SCON的格式如下图所示。
下面介绍SCON中各位的功能。
(1) SM0、SMl:串行口4种工作方式选择位。
SM0、SM1两位的编码所对应的4种工作方式见下表。
表串行口的4种工作方式(2) SM2:多机通信控制位。
因为多机通信是在方式2和方式3下进行的,因此SM2位主要用于方式2或方式3中。
当串行口以方式2或方式3接收时,如果SM2=1,则只有当接收到的第9位数据(RB8)为1时,才使RI置l,产生中断请求,并将接收到的前8位数据送人SBUF;当接收到的第9位数据(RB8)为0时,则将接收到的前8位数据丢弃。
而当SM2=0时,则不论第9位数据是l还是0,都将前8位数据送入SBUF中,并使RI置1,产生中断请求。
在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。
在方式0时,SM2必须为0。
(3)REN:允许串行接收位。
由软件置1或清0。
REN=1,允许串行口接收数据。
REN=O,禁止串行口接收数据。
(4)TB8:发送的第9位数据。
在方式2和方式3时,TB8是要发送的第9位数据,其值由软件置l或清O。
在双机串行通信时,TB8一般作为奇偶校验位使用;在多机串行通信中用来表示主机发送的是地址帧还是数据帧,TB8=1为地址帧,TB8=0为数据帧。
(5) RB8:接收的第9位数据。
工作在方式2和方式3时,RB8存放接收到的第9位数据。
MCS-51单片机串口编程及应用介绍
起 始 位
数
据 位
校 验 位
停 止 位
异步通信的帧格式
二、同步通信传送方式
同步传送:以同步字符 同步传送:以同步字符SYN开始连续发 开始连续发 再以同步字符结束, 送,再以同步字符结束,时钟信号同时发 适用高速、大容量的数据传送。 送。适用高速、大容量的数据传送。
开始 同步字符 同步字符 数据段 同步字符 结束 同步字符
工作原理: 工作原理: 发送:CPU执行 执行MOV SBUF,A,将数据送入SBUF SBUF。 发送:CPU执行MOV SBUF,A,将数据送入SBUF。 发送控制器按波特率发生器(定时器构成) 发送控制器按波特率发生器(定时器构成)提供的时钟速 率将SBUF中的数据一位、一位从TXD输出,发送结束时, SBUF中的数据一位 TXD输出 率将SBUF中的数据一位、一位从TXD输出,发送结束时,置 TI=1。 TI=1。 接收:接收控制器按波特率发生器提供的时钟速率从RXD引 接收:接收控制器按波特率发生器提供的时钟速率从RXD引 RXD 脚一位一位接收数据,当收到一个完整字符时,装入SBUF 脚一位一位接收数据,当收到一个完整字符时,装入SBUF 中,同时置RI=1,通知CPU,CPU执行MOV A,SBUF,将数据读 同时置RI=1,通知CPU,CPU执行MOV A,SBUF, RI=1 CPU 执行 入累加器A 入累加器A。 注意:由于SBUF具有双缓冲作用,它可以在CPU读入之前 注意:由于SBUF具有双缓冲作用,它可以在CPU读入之前 SBUF具有双缓冲作用 CPU 开始接收下一数据, CPU应在下一数据接收完毕前读取 开始接收下一数据, CPU应在下一数据接收完毕前读取 SBUF内容 由于串口的接收、发送各自独立, 内容。 SBUF内容。由于串口的接收、发送各自独立,所以可同时发 送及接收,即可以实现全双工通讯。 送及接收,即可以实现全双工通讯。
串行通信
3、串行通信工作方式 、
单工 A 发 A 发 收 B 收 广播电台 收音机
半双工
B 收 发
对讲机
全双工
A 发 收
B 收 发
电话机
4、波特率 、
波特率是指每秒钟传送信号的数量,单位为波特(Baud)。 波特率是指每秒钟传送信号的数量,单位为波特(Baud) 是指每秒钟传送信号的数量 波特 例:异步串行通信的数据传送的速率是120字符/秒,而每个字符规 异步串行通信的数据传送的速率是120字符/ 120字符 定包含10位( 1个起始位、8个数据位、1个停止位)数字,则传输 定包含10位 个起始位、 个数据位、 个停止位)数字, 10 波特率为: 波特率为: 120字符/秒× 10位/字符=1200位/秒= 1200bps 10位 字符=1200 =1200位 120字符/ 字符
(P3.1)
去申请中断
1、SBUF:串行发送 / 接收数据缓冲器 99H 、 : 发送 接收 2、SCON:串行口控制寄存器 、 :
SM0 SM1 SM2 REN TB8
98H
RB8 TI RI
3、PCON:特殊功能寄存器 :
SMOD
87H
4、IE:中断允许寄存器 、 :
EA ES
A8H
ET1 EX1 ET0 EX0
如何发送和接收数据 可中断、 可中断、可查询
MCS-51串行口的结构如下图所示: SBUF (发) A 累 加 器 波 特 率 发 生 器
T1
(门)移位寄存器 门 移位寄存器 发送控制器 TI
引脚 TxD
(P3.1)
CPU CPU 内 部
≥1
接收控制器 RI SBUF (收) 引脚 移位寄存器 RxD
第19章 51系列单片机
19.4.2 模式1的接收
• 在串行口的工作模式1中,RXD引脚为数据接收端。模式1接 收数据中的定时信号可以有两种,接收移位脉冲和接收字 符的检测脉冲。 • 串行口模式1接收数据时的移位脉冲,由定时器1的溢出信 号和波特率倍增位SMOD来共同决定,即由定时器1的溢出信 号经过16或32分频得到。 • 接收字符的检测脉冲,其频率是接收移位脉冲的16倍。在 接收一位数据的时候,有16个检测脉冲,以其中的第7、8、 9这3个脉冲作为真正的接收信号的采样脉冲。对三次采样 结果采取三中取二的原则来确定所检测到的值。采样这种 机制是为了抑制干扰,由于采样的信号总是在接收位的中 间位置,这样便可以避免信号两端的边沿失真,也可以防 止由于收发时钟频率不完全一致而带来的错误接收。
19.2.1 单片机串行接口的内部结构
• 51系列单片机的全双工串行口主要由数据发送缓 冲器、发送控制器TI、输出控制门、接收控制器、 输入移位寄存器、数据接收缓冲器等组成,如图 所示。
19.2.2 单片机串行接口的程序控制
• 51系列单片机的串行通信接口,通过控制寄存器 SCON和波特率选择特殊功能寄存器PCON来控制。 下面分别介绍这两个寄存器。 • 1.串行接口控制寄存器SCON
19.7.1 查询方式
• 假设发送方A需要把片内RAM中50H~6FH单元中的数 据,通过串行接口发送给接收方B。接收方B将接 收到的这32个字节数据后,存入片外1000H~101FH。 • 发送方和接收方均采用8051单片机,外接 fosc=6MHz的晶振,使用串行口工作方式2,波特率 规定为187.5kbit/s,需要使用波特率倍增位,即 置SMOD=1。 • 发送方定义TB8作为奇偶校验位。接收方进行奇偶 校验位RB8的判断,如果出错,则置F0标志位为1; 如果正确,则置F0标志位为0,然后返回。
51单片机-串行口ppt课件
为发送时CPU是主动的,不会产生重叠错误。
最新课件
21
8.2.2 80C51串行口的控制寄存器
SCON 是一个特殊功能寄存器,用以设定串行口的工 作方式、接收/发送控制以及设置状态标志:
SM0和SM1为工作方式选择位,可选择四种工作方式:
最新课件
22
●SM2,多机通信控制位,主要用于方式2和方式3。 当接收机的SM2=1时可以利用收到的RB8来控制是否 激活RI(RB8=0时不激活RI,收到的信息丢弃; RB8=1时收到的数据进入SBUF,并激活RI,进而在 中断服务中将数据从SBUF读走)。当SM2=0时,不 论收到的RB8为0和1,均可以使收到的数据进入 SBUF,并激活RI(即此时RB8不具有控制RI激活的 功能)。通过控制SM2,可以实现多机通信。
起 空始 闲位
一个字符帧 数据位
校停 验止 位位
空 下一字符 闲 起始位
LSB
MSB
异步通信的特点:不要求收发双方时钟的
严格一致,实现容易,设备开销较小,但 每个字符要附加2~3位用于起止位,各帧 之间还有间隔,因此传输效率不高。
最新课件
9
2、同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制, 使双方达到完全同步。此时,传输数据的位之间的距离均 为“位间隔”的整数倍,同时传送的字符间不留间隙,即 保持位同步关系,也保持字符同步关系。发送方对接收方 的同步可以通过两种方法实现。
波特率=2SMOD/32×T1的溢出率 = 2SMOD × fosc/[ 32 × 12×(2K-初值)]
最新课件
19
回目录 上页 下页
3、传输距离与传输速率的关系
串行接口或终端直接传送串行信息位流的
51单片机串行口的工作方式
hgfedcba
a
fg b
e
c
dh
共阳极
累加器 A hgfedcba
0C0H = “0”
0B0H = “3”
例:利用串行口工作方式0扩展出8位并行I/O 口,驱动共阳LED数码管显示0—9。
VCC TxD RxD
☞方式2的波特率 = fosc 2SMOD/64 即: fosc 1/32 或 fosc 1/64 两种
☞奇偶校验是检验串行通信双方传输的数据正确与 否的一个措施,并不能保证通信数据的传输一定正 确。
换言之:如果奇偶校验发生错误,表明数据传输 一定出错了;如果奇偶校验没有出错,绝不等于数 据传输完全正确。
☞ REN:串行口接收允许位。 REN=1 允许接收
☞ TB8,RB8,TI,RI等位由运行中间的情况 决定,可先写成 “0”
三、工作方式2: 9位UART(1+8+1+1位)两种波特率
☞由于波特率固定,常用于单片机间通讯。 数据由8+1位组成,通常附加的一位 (TB8/RB8)用于“奇偶校验”。
☞ 溢出率:T1溢出的频繁程度 即:T1溢出一次所需时间的倒数。
☞ 波特率 =
2SMOD fosc 32 12(2n - X)
其中:X 是定时器初值
☞ 初值 X = 2n -
2SMOD fosc 32 波特率 12
常用波特率和T1初值查表
☞表格有多种, 晶振也不止一种
串口波特率 (方式1,3)
74LS164
hgfedcba
A B
CLK
CLR
74LS164
第7章 MCS-51串行接口
5.通信协议
(1) 奇偶校验 (2) 累加和校验 (3) 循环冗余码校验 (Cyclic Redundancy Check, 简称CRC)
7.2 MCS-51串行口结构与工作原理
MCS-51单片机内部含有1个可编程全双工串行通信接口, 它有4种工作方式。串行口内部结构如下图,两个物理上独立地 接收和发送缓冲器,可同时收、发数据(全双工)。 两个缓冲器共用一个特殊功能寄存器字节地址:SBUF(99H)
发送指令:MOV SBUF,A ;将数据写到发送缓冲器SBUF 接收指令:MOV A,SBUF ;读出接收缓冲器SBUF中接收到的数据 控制寄存器共两个:特殊功能寄存器SCON和PCON。
串行数据缓冲器SBUF 在逻辑上只有一个,既表示发送寄存器,又表示接收寄 存器,具有同一个单元地址99H,用同一寄存器名SBUF。 在物理上有两个,一个是发送缓冲寄存器,另一个是接 收缓冲寄存器。 发送时,只需将发送数据输入SBUF,CPU将自动启动和 完成串行数据的发送; 接收时,CPU将自动把接收到的数据存入SBUF,用户只 需从SBUF中读出接收数据。 指令 MOV SBUF,A 启动一次数据发送,可向SBUF 再发送下一个数 指令 MOV A,SBUF 完成一次数据接收,SBUF可再 接收下一个数
(2)同步通信 同步通信依靠同步字符保持通信同步。同步通信 是由1~2个同步字符和多字节数据位组成,同步字符作 为起始位以触发同步时钟开始发送或接收数据;多字节 数据之间不允许有空隙,每位占用的时间相等;空闲位 需发送同步字符。(同步字符可以用户约定,也可以有 用ASCⅡ码中规定的SYNC同步字符(即16H)) 同步通信传输速度较快,但要求有准确的时钟来实 现收发双方的严格同步,对硬件要求较高,适用于成批 数据传送。
MCS51的串行口PPT
6.1.2 特殊功能寄存器PCON
字节地址为87H,没有位寻址功能。
SMOD:波特率选择位。 例如:方式1旳波特率旳计算公式为: 方式1波特率=(2SMOD/32)×定时器T1旳溢出率
图6-14 流水灯显示电路图
ORG 0000H LJMP MAIN ORG 2023H MAIN: MOV SCON,#00H ;置串行口工作方式0 MOV A,#80H :最高位灯先亮 CLR P1.1 ;关闭并行输出(避象传播过程中,各 LED旳“暗红”现象) OUT0: MOV SBUF,A ;开始串行输出 OUT1: JNB TI,OUT1 ;输出完否? CLR TI ;完了,清TI标志,以备下次发送 SETB P1.1 ;打开并行口输出 ACALL DELAY ;延时一段时间 RR A ;循环右移 CLR P1.1;关闭并行输出 SJMP OUT0;循环 DELAY: …………;延时子程序,不再反复
假如SM2=0,则不论第9位数据是“1”还是“0”,都 将 前8位数据送入SBUF中,并置“1” RI,产生 中断祈求。
在方式1时,假如SM2=1,则只有收到停止位时才会激 活RI。
在方式0时,SM2必须为0。
(3)REN——允许串行接受位
由软件置“1”或清“0”。
REN=1 允许串行口接受数据。 REN=0 禁止串行口接受数据。 (4)TB8——发送旳第9位数据 方式2和3时,TB8是要发送旳第9位数据,可作为奇偶 校验位使用,也可作为地址帧或数据帧旳标志。 =1为地址帧, =0为数据帧 (5)RB8——接受到旳第9位数据 方式2和3时,RB8存储接受到旳第9位数据。在方式1 ,假如SM2=0,RB8是接受到旳停止位。在方式0, 不使用RB8。 (6)TI——发送中断标志位
MCS-51单片机串行通信
9.1 串行通信概述
• ④停止位 表示发送一个数据的结束,用高电平表示,占1 位、1.5 位或2 位。 • 线路空闲时,线路处于逻辑“1”等待状态,即空闲位为1。 空闲位是异步通信特征之一。异步通信中数据传送格式如 图9.1 所示。 • 图9.1 异步通信数据帧格式
图9.1 异步通信数据帧格式
9.1 串行通信概述
9.1 串行通信概述
• 3.波特率 • 波特率是数据传递的速率,指每秒传送二进制数据的位数, 单位为位/秒(bit/s)。 • 例9.1 假设微型打印机最快的传送速率为30 字符/秒,每 个字符为10 位,计算波特率。 • 解: • 波特率=10 b/字符×30字符/s=300 b/s • 每一位代码的传送时间Td 为波特率的倒数: • Td=1/300=3.3 ms • 异步通信的波特率一般在50~19 200 b/s 之间,常用于 计算机到终端机和打印机之间的通信、直通电报以及无线 电通信的数据发送等。
异步10位收发 异步11位收发 异步11位收发
9.2 串行口结构与工作原理
• SM2:多机通信控制位。 • a.用于方式2和方式3。若SM2=1,则允许多机通信。 多机通信协议规定,若第9位数据(RB8)为1,则表明本帧 数据为地址帧。否则,若第9位数据(RB8)为0,则表明本 帧数据为数据帧。 • 当一个8051(主机)与多个8051(从机)进行通信时,令所有 从机的SM2都置1。主机要与某个从机通信,首先发送一 个与该从机相一致的地址帧(每个从机的地址必须惟一), 且第9位为1,所有从机接收到数据后,将第9位送入RB8 中。 • 若RB8=1,说明是地址帧,将数据装入SBUF,且置RI =1,即中断所有从机,若从机判断出该地址帧数据与本 机号(地址)一致,则置SM2=0,准备接收主机发来的数 据。其他从机仍然保持SM2=1。
如何扩展51单片机的串行口?
在以单片机为核心的多级分布式系统中,常常需要扩展单片机的串行通信口,本文分别介绍了基于SP2538专用串行口扩展芯片及Intel8251的两种串行口扩展方法,并给出了实际的硬件电路原理及相应的通信程序段。
关键词:串口扩展;单片机;SP2538;Intel82511 引言在研究采场瓦斯积聚模拟试验台的过程中,笔者设计了主从式多机采控系统结构。
主从式多机控制系统是实时控制系统中较为普遍的结构形式,它具有可靠性高,结构灵活等优点。
当选用单串口51单片机构成这种主从式多机系统时,51单片机一方面可能要和主机Computer通信,一方面又要和下位机通信,这时就需要扩展串行通道。
本文具体介绍了两种串行通道的扩展方法。
2 串行口的扩展方法常用的标准51单片机内部仅含有一个可编程的全双工串行通信接口,具有UART的全部功能。
该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。
当以此类型单片机构成分布式多级应用系统时,器件本身的串口资源就不够用了。
笔者在实际开发中,查阅了有关资料,总结出如下两种常用而有效的串行通道扩展方法。
2.1 基于SP2538的扩展方法SP2538是专用低功耗串行口扩展芯片,该芯片主要是为解决当前基于UART串口通信的外围智能模块及器件较多,而单片机或DSP原有的UART串口又过少的问题而推出的。
利用该器件可将现有单片机或DSP 的单串口扩展至5个全双工串口。
使用方法简单、高效。
在应用SP2538扩展串行通道时,母串口波特率K1=2880*Fosc_in,单位是MHz,且Fosc_in小于20.0MHz 在SP2538输入时钟Fosc_in =20.0MHz时母串口可自适应上位机的56000bps和57600bps两种标准波特率输入。
子串口波特率K2=480*Fosc_in。
母串口和所有子串口都是TTL电平接口,可直接匹配其他单片机或TTL数字电路,如需连接PC机则必须增加电平转换芯片如MAX202 、MAX232 等。
MCS-51串行口的结构
波特率发生器
由定时器/计数器T1、T2及内部的一些控制开关和分频器组成
1.2 MCS-51串行口的控制
串行口控制寄存器SCON
D7
D6
D5
D4
D3
D2
D1
D0
位
地址 9FH
9EH
9DH 9CH
9BH
9AH
99H
98H
位 功能
SM1
SM0
单片机原理与应用
MCS-51串行口的结构
MCS-51单片机串行口主要由两个数据缓冲寄存器SBUF和一个 输入移位寄存器组成,作为UART的实现
串行口控制寄存器SCON 波特率发生器
串行口的结构
串行口的结构
数据缓冲寄存器SBUF
一个数据发送缓冲器SBUF 一个数据接收缓冲器SBUF
接收和发送控制
电源控制寄存器PCON
SMOD —
—
—Leabharlann GF1 GF0PD
IDL
串行数据寄存器SBUF 中断控制相关寄存器
IE中的EA、ES IP中的PS
单片机原理与应用
SM2
REN
TB8
RB8
TI
RI
MCS-51串行口工作方式
SCON中SM位
SM0
0 0 1 1
SM1
0 1 0 1
工作 方式
0
1 2 3
方式描述 移位寄存器 8位UART 9位UART 9位UART
波特率
fosc/12(fosc为振荡器频率) 可变
fosc/64或fosc/32 可变
串行口的控制
第7章AT89S51单片机的串行口
PCONSMOD — — — GF1 GF0 PD IDL
GF1,GF0:用户可自行定义使用的通用标志位 GF1: General purpose Flag bit. GF0 :General purpose Fபைடு நூலகம்ag bit.
PD:掉电方式控制位 Power Down bit. =0:常规工作方式. =1:进入掉电方式:振荡器停振片内RAM和SRF的
例如:120字符/秒,1个字符10位, 波特率为:120×10=1200bps 平均每一位传送占用时间:Td=1/1200=0.833ms
常用的波特率有:(离散) 19200/9600/4800/2400/1200/600/300/150/100
/50, 还有10M/100M
7.1.1 与串行通信有关的寄存器
TB8:在串行工作方式2和方式3中,是要发送的第9位数据。 The 9th bit that will be transmitted in modes 2&3. Set/Cleared
by software 多机通信中: TB8=0 表示发送的是数据;
TB8=1 表示发送的是地址.
RB8:在串行工作方式2和方式3中,是收到的第9位数据.该数据来自发
REN:串行口接收允许控制位 Set/Cleared by software to Enable/Disable reception
=1 允许接收; (SETB REN) =0 禁止接收.
系统复位后,REN=0,不允许接受
SM0 SM1 SM2 REN TB8 RB8 TI RI
模式选择 多机通讯位 允许接收位 发送、接收第9位 发送、接收标志
1
1
3 Split timer mode (Timer 0) TL0 is an 8-bit Timer/Counter controlled by the
MCS-51单片机的串行口及控制寄存器
位序
B7
B6
B5
B4
B3
B2
B1
B0
位符
smod
/
/
/
GF1
Hale Waihona Puke GF0PDIDL
号
PD和IDL:是CHMOS单片机用于进入低功耗方式的控制位,在第 2章中已介绍过这两位的应用。
GF1和GF0:用户使用的一般标志位。
smod:串行口波特率倍增位,当smod=1时,串行口波特率增加 1倍。系统复位时,smod=0。
位地 址
位符 号
0AFH 0AEH 0ADH 0ACH 0ABH 0AAH 0A9H 0A8 H
EA
/
/
ES
ET1
EX1
ET1 EX0
其中与串行口有关的是ES位。当ES=0时,禁止串行口的中断; 当ES=1时,表示允许串行口中断。EX0、ET0、EX1、ET1分别表示 对外中断0、定时器/计数器0、外中断1、定时器/计数器1个中断 源的中断允许控制,EA是中断总允许控制位,详见本书第5章介绍。
PCON寄存器的B6、B5、B4位未定义。
3. 中断允许寄存器IE
中断允许寄存器IE,是MCS-51单片机中实现是否开放某 中断源中断的控制寄存器,在第5章中已做过介绍。IE寄存 器 是 可 寻 址 的 寄 存 器 , 其 字 节 地 址 为 0 A8H, 位 地 址 由 0A8H~0AFH,IE寄存器各位定义如下:
0BBH PT1
0BAH PX1
0B9H PT0
0B8H
PX0
其中与串行口有关的是PS位,当PS=0时,表示串行口中断处于 低优先级别;当PS=1时,表示串行口中断处于高优先级别。PX0、 PT0、PX1、PT1分别控制外中断0、定时器/计数器0、外中断1、定 时器/计数器1中断源的中断优先级别,详见本书第5章介绍。
51单片机串行口
异步通信(Asynchronous Communication) 在异步通信中,数据通常是以字符或字节为单位
组成数据帧进行传送的。收、发端各有一套彼此独 立,互不同步的通信机构,由于收发数据的帧格式 相同,因此可以相互识别接收到的数据信息。
异步通信信息帧格式如图7.4所示。
第n-1字符
若这两个条件不同时满足,收到的数据将丢失。
方式1波特率=(2^SMOD/32)×定时器T1的溢出率 SMOD为PCON寄存器的最高位的值(0或1)。
定时器T1(方式2)的溢出时间: (28-初值)×振荡周期(1/Fosc)×12
方式1波特率=(2^SMOD/32)/ ((28-初值)×振荡周期(1/Fosc)×12)
D
图:电源控制寄存器PCON的格式
SMOD:串行口波特率倍增位。在工作方式1~ 工作方式3时,若SMOD=1,则串行口波特率增 加一倍。若SMOD=0,波特率不加倍。系统复位 时,SMOD=0。
六、串行口工作方式
8051串行通信共有4种工作方式,它们分别是 方式0、方式1、方式2和方式3,由串行控制寄存器 SCON中的SM0 SM1决定。
即BaudRate ×(28-初值)/Fosc×12 = 2^SMOD/32
(3) 奇偶校验位: 数据位发送完(接收完)之后,可发送一位用来检
验数据在传送过程中是否出错的奇偶校验位。奇 偶校验是收发双方预先约定好的差错检验方式之 一。有时也可不用奇偶校验。
(4) 停止位: 字符帧格式的最后部分是停止位,逻辑“1”电
平有效,它可占1/2位、1位或2位(在串行通信时 每位的传送时间是固定的)。停止位表示传送一帧 信息的结束,也为发送下一帧信息作好准备。
MCS-51单片机的串行口及串行通信技术
MCS-51单⽚机的串⾏⼝及串⾏通信技术数据通信的基本概念串⾏通信有单⼯通信、半双⼯通信和全双⼯通信3种⽅式。
单⼯通信:数据只能单⽅向地从⼀端向另⼀端传送。
例如,⽬前的有线电视节⽬,只能单⽅向传送。
半双⼯通信:数据可以双向传送,但任⼀时刻只能向⼀个⽅向传送。
也就是说,半双⼯通信可以分时双向传送数据。
例如,⽬前的某些对讲机,任⼀时刻只能⼀⽅讲,另⼀⽅听。
全双⼯通信:数据可同时向两个⽅向传送。
全双⼯通信效率最⾼,适⽤于计算机之间的通信。
此外,通信双⽅要正确地进⾏数据传输,需要解决何时开始传输,何时结束传输,以及数据传输速率等问题,即解决数据同步问题。
实现数据同步,通常有两种⽅式,⼀种是异步通信,另⼀种是同步通信。
异步通信在异步通信中,数据⼀帧⼀帧地传送。
每⼀帧由⼀个字符代码组成,⼀个字符代码由起始位、数据位、奇偶校验位和停⽌位4部分组成。
每⼀帧的数据格式如图7-1所⽰。
⼀个串⾏帧的开始是⼀个起始位“0”,然后是5〜8位数据(规定低位数据在前,⾼位数据在后),接着是奇偶校验位(此位可省略),最后是停⽌位“1”。
起始位起始位"0”占⽤⼀位,⽤来通知接收设备,开始接收字符。
通信线在不传送字符时,⼀直保持为“1”。
接收端不断检测线路状态,当测到⼀个“0”电平时,就知道发来⼀个新字符,马上进⾏接收。
起始位还被⽤作同步接收端的时钟,以保证以后的接收能正确进⾏。
数据位数据位是要传送的数据,可以是5位、6位或更多。
当数据位是5位时,数据位为D0〜D4;当数据位是6位时,数据位为D0〜D5;当数据位是8位时,数据位为D0〜D7。
奇偶校验位奇偶校验位只占⼀位,其数据位为D8。
当传送数据不进⾏奇偶校验时,可以省略此位。
此位也可⽤于确定该帧字符所代表的信息类型,“1"表明传送的是地址帧,“0”表明传送的是数据帧。
停⽌位停⽌位⽤来表⽰字符的结束,停⽌位可以是1位、1.5位或2位。
停⽌位必须是⾼电平。
接收端接收到停⽌位后,就知道此字符传送完毕。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8位同时传送 1
0
接
1 0
发
收 设
1
送
1 0
设
备
0
备
询问
应答
并行通信控制简单、传输速度快;由于传输线较多,长距离 传送时成本高且接收方的各位同时接收存在困难。
串行通信是将数据字节分成一位一位的形 式在一条传输线上逐个地传送。
接
发
收
D0
D7
送
设 备
8位顺次传送
设 备
串行通信的特点:传输线少,长距离传送时 成本低,且可以利用电话网等现成的设备, 但数据的传送控制比并行通单位进行传输,字符与字符之间的间 隙(时间间隔)是任意的,但每个字 符中的各位是以固定的时间传送的, 即字符之间是异步的(字符之间不一 定有“位间隔”的整数倍的关系), 但同一字符内的各位是同步的(各位 之间的距离均为“位间隔”的整数 倍)。
异步通信的数据格式 :
关系:
一个外设通常有一个I/O接口, 一个I/O接口可以有多个I/O端口。
2019年6月21日
数据口 命令口 状态口
可能不全 有,但至 少有一个
3
8.1 计算机串行通信基础
随着多微机系统的广泛应用和计算机网络技 术的普及,计算机的通信功能愈来愈显得重要。 计算机通信是指计算机与外部设备或计算机与 计算机之间的信息交换。
01101
计 数据
计
算
算
机
机
甲 时钟
乙
外同步
时钟
计 数据 0 1 1 0 1
计
算
算
机 数据+时钟
机
甲
乙
自同步
面向字符的同步格式 :
SYN SYN SOH 标题 STX
数据块
ETB/ETX 块校验
此时,传送的数据和控制信息都必须由规定的字符集
(如ASCII码)中的字符所组成。图中帧头为1个或2个同 步字符SYN(ASCII码为16H)。SOH为序始字符 (ASCII码为01H),表示标题的开始,标题中包含源地 址、目标地址和路由指示等信息。STX为文始字符 (ASCII码为02H),表示传送的数据块开始。数据块是 传送的正文内容,由多个字符组成。数据块后面是组终 字符ETB(ASCII码为17H)或文终字符ETX(ASCII码 为03H)。然后是校验码。典型的面向字符的同步规程
典型的面向位的同步协议如ISO的高级数据链路控制规程 HDLC和IBM的同步数据链路控制规程SDLC。
同步通信的特点是以特定的位组合“01111110”作为帧的 开始和结束标志,所传输的一帧数据可以是任意位。所以传
输的效率较高,但实现的硬件设备比异步通信复杂。
二、串行通信的传输方向
1、单工 单工是指数据传输仅能沿一个方向,不能实现反向传输。 2、半双工 半双工是指数据传输可以沿两个方向,但需要分时进行。 3、全双工 全双工是指数据可以同时进行双向传输。
在方式0时,SM2必须是0。在方式1时,若SM2=1, 则只有接收到有效停止位时,RI才置1。
●REN,允许串行接收位。由软件置REN=1,则启动 串行口接收数据;若软件置REN=0,则禁止接收。
●TB8,在方式2或方式3中,是发送数据的 第九位,可以用软件规定其作用。可以用作 数据的奇偶校验位,或在多机通信中,作为 地址帧/数据帧的标志位。
波特率表示每秒钟调制信号变化的次数,单位是: 波特(Baud)。
波特率和比特率不总是相同的,对于将数字信号 1或0直接用两种不同电压表示的所谓基带传输,比 特率和波特率是相同的。所以,我们也经常用波特 率表示数据的传输速率。
方式0、1、2、3的帧格式
一帧数据: 一个字符在异步传送中称为一帧数据
一帧数据由4部分组成: 起始位、数据位、奇偶位、停止位
80C51的串行口
为什么需要I/O接口
CPU
存储器
CPU 接口电路
I/O设备
对CPU和外部设备之间的数据传送进行协调
2019年6月21日
I/O接口与I/O端口
I/O接口:
指CPU和外设之间的I/O接口芯片
I/O端口:
常指I/O接口中带有端口地址的寄存器或缓冲器
CPU通过端口 地址就可以对 端口中的数据 进行读写。
方式2波特率=2SMOD/64× fosc SMOD=0时,波特率=fosc/64, SMOD=1时,波特率=fosc/32
⑶方式1、3波特率取决于T1的溢出率
波特率=2SMOD/32×T1的溢出率 SMOD=0时,波特率= T1的溢出率/32, SMOD=1时,波特率= T1的溢出率/16
回目录 上页 下页
⑷定时器1作波特率发生器
T1为计数器时: T1的溢出率=1/T1 定时时间 K为定时器T1的位数 K=13(方式0) K=16(方式1) K=8(方式2、3) T1为定时器时: T1的溢出率=fosc/[ 12×(2K-初值)] 工作于方式1、3时波特率: 波特率=2SMOD/32×T1的溢出率
= 2SMOD × fosc/[ 32 × 12×(2K-初值)]
起 空始 闲位
一个字符帧 数据位
校停 验止 位位
空 下一字符 闲 起始位
LSB
MSB
异步通信的特点:不要求收发双方时钟的
严格一致,实现容易,设备开销较小,但 每个字符要附加2~3位用于起止位,各帧 之间还有间隔,因此传输效率不高。
2、同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制, 使双方达到完全同步。此时,传输数据的位之间的距离均 为“位间隔”的整数倍,同时传送的字符间不留间隙,即 保持位同步关系,也保持字符同步关系。发送方对接收方 的同步可以通过两种方法实现。
8.1.1 串行通信的基本概念
一、异步通信与同步通信
1、异步通信 异步通信是指通信的发送与接收设备使用各自的时钟
控制数据的发送和接收过程。为使双方的收发协调,要求 发送和接收设备的时钟尽可能一致。
接 收 设10100100 1 备
0 10100100 1
间隙任意 发
送
0 11100110 1 0 1110011设0
停起
数
奇停
止始
据
偶止
位 位 LSB
位
MSB位 位
1/0 1 0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1
一帧数据 第n个字符
第n+1个字符
起始位: 为逻辑“0”信号,占用一位,用来通 知 接收设备,一个新的字符开始了
数据位: 5~8位。数据的最低位在前,最高位在后。
确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,装载TH1、TL1; 启动T1(编程TCON中的TR1位); 确定串行口控制(编程SCON寄存器);
串行口在中断方式工作时,要进行中断设置 (编程IE、IP寄存器)。
PCON中只有一位SMOD与串行口工作有关 :
SMOD(PCON.7) 波特率倍增位。在串行口方式1、 方式2、方式3时,波特率与SMOD有关,当SMOD=1时, 波特率提高一倍。复位时,SMOD=0。
在方式0和方式1中,该位未用。
●RB8,在方式2或方式3中,是接收到数据 的第九位,作为奇偶校验位或地址帧/数据帧 的标志位。在方式1时,若SM2=0,则RB8 是接收到的停止位。
●TI,发送中断标志位。在方式0时,当串行 发送第8位数据结束时,或在其它方式,串 行发送停止位的开始时,由内部硬件使TI置1, 向CPU发中断申请。在中断服务程序中,必 须用软件将其清0,取消此中断申请。
8.2 80C51的串行口
8.2.1 80C51串行口的结构
SBUF
TXD 控制门
TH1 TL1
发送控制器 TI 去串口中断
1
A
÷16 ÷2
≥1
0
T1溢出率
SMOD
接收控制器 RI
SBUF
RXD 移位寄存器
有两个物理上独立的接收、发送缓冲器SBUF,它们占 用同一地址99H ;接收器是双缓冲结构 ;发送缓冲器,因
通信有并行通信和串行通信两种方式。在多 微机系统以及现代测控系统中信息的交换多采 用串行通信方式。
计算机通信是将计算机技术和通信技术的相结合, 完成计算机与外部设备或计算机与计算机之间的信 息交换 。可以分为两大类:并行通信与串行通信。
并行通信通常是将数据字节的各位用多条数据线同
时进行传送 。
T1IN
T1OUT
MAX232A
R2OUT
R2IN
GND
系统1
R1IN
R1OUT
MAGXN2D32A
T2OUT
RT22IINN
GND 系T2O统UT2
RXD TXD 80C51
二、多机通信
1、硬件连接
单片机构成的多机系统常采用总线型主从式结构。所谓主从 式,即在数个单片机中,有一个是主机,其余的是从机,从机 要服从主机的调度、支配。80C31单片机的串行口方式2和方 式3适于这种主从式的通信结构。当然采用不同的通信标准时, 还需进行相应的电平转换,有时还要对信号进行光电隔离。在 实际的多机应用系统中,常采用RS-485串行标准总线进行数 据传输。
如IBM的二进制同步规程BSC。
面向位的同步格式 :
8位
8位
8位
≥0位
01111110 地址场 控制场
信息场
16位 校验场
8位 01111110
此时,将数据块看作数据流,并用序列01111110作为开始 和结束标志。为了避免在数据流中出现序列01111110时引起 的混乱,发送方总是在其发送的数据流中每出现5个连续的1 就插入一个附加的0;接收方则每检测到5个连续的1并且其后 有一个0时,就删除该0。
发送