《单片机基础》课程第六章串行接口UART.ppt

上传人:scccc 文档编号:14032934 上传时间:2022-01-31 格式:PPT 页数:62 大小:1.06MB
返回 下载 相关 举报
《单片机基础》课程第六章串行接口UART.ppt_第1页
第1页 / 共62页
《单片机基础》课程第六章串行接口UART.ppt_第2页
第2页 / 共62页
《单片机基础》课程第六章串行接口UART.ppt_第3页
第3页 / 共62页
《单片机基础》课程第六章串行接口UART.ppt_第4页
第4页 / 共62页
《单片机基础》课程第六章串行接口UART.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《《单片机基础》课程第六章串行接口UART.ppt》由会员分享,可在线阅读,更多相关《《单片机基础》课程第六章串行接口UART.ppt(62页珍藏版)》请在三一文库上搜索。

1、单片机基础课程第六章串行接口UART,单片机基础课程,单片机基础课程第六章串行接口UART,内容回顾:,5. 1 定时/计数器,5. 2 中断系统,单片机基础课程第六章串行接口UART,第六章 串行口,6. 1 串行通信概述及结构,6. 2 串行口工作方式及应用,单片机基础课程第六章串行接口UART,6. 1 串行通信概述及结构,单片机基础课程第六章串行接口UART,计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。计算机通信有并行通信和串行通信两种方式。 在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。,1、计算机通信概述,单片机基础课程第六章串行接口UART,并行通

2、信控制简单、传输速度快;由于传输线较多,长距离传送时成本高,且接收方的各位同时接收存在困难。,并行通信将数据字节的各位用多条数据线同时进行传送。,单片机基础课程第六章串行接口UART,串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。,串行通信特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。,单片机基础课程第六章串行接口UART,串行通信:,异步通信,同步通信,单片机基础课程第六章串行接口UART,异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。,单片

3、机基础课程第六章串行接口UART,异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间是异步的(字符之间不一定有“位间隔”的整数倍的关系),但同一字符内的各位是同步的(各位之间的距离均为“位间隔”的整数倍)。,单片机基础课程第六章串行接口UART,异步通信的数据格式 :,异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加23位用于起止位,各帧之间还有间隔,因此传输效率不高。,单片机基础课程第六章串行接口UART,一帧数据:,一个字符在异步传送中称为一帧数据。,一帧数据由4部分

4、组成: 起始位、数据位、奇偶位、停止位,一帧数据,起始位,数据位,奇偶位,停止位,第n个字符,第n+1个字符,单片机基础课程第六章串行接口UART,数据位:,起始位:,奇偶位:,58位。数据的最低位在前,最高位在后。,紧跟在最高位之后,占用一位,奇偶校验时,根据协议置“1”或“0”,停止位:,为逻辑“1”信号,占用1位或2位,当接收端收到停止位时,表示一帧数据结束。,单片机基础课程第六章串行接口UART,数据块开始有12同步字符SYNC,,后面是按顺序传送的数据块。,同步传送:,*波特率:串行通信中每秒传送的数据位数。,单片机基础课程第六章串行接口UART,2、串行口的结构,51系列单片机:一

5、个全双工异步串行通信接口。,单片机基础课程第六章串行接口UART,1、数据缓冲器SBUF,包括物理上独立的发送缓冲器、接收缓冲器;,发送缓冲器:只能写入不能读出;,接收缓冲器:只能读出不能写入;,二者共用一个地址99H。,单片机基础课程第六章串行接口UART,2、串行口相关寄存器,SM0 SM1 SM2 REN TB8 RB8 TI RI,SCON (98H),PCON(87H),单片机基础课程第六章串行接口UART,串行口控制寄存器,字节地址为98H,可位寻址,位地址为98H9FH。,SM0 SM1 SM2 REN TB8 RB8 TI RI,SCON (98H),SM0、SM1:串行口工作

6、方式选择位。,单片机基础课程第六章串行接口UART,0 0 0 移位寄存器方式(用于I/O扩展),0 1 1 8位UART,波特率可变,1 0 2 9位UART,波特率为fosc/32或fosc/64,1 1 3 9位UART,波特率可变,SM0 SM1,方式,功 能,单片机基础课程第六章串行接口UART,SM0 SM1 SM2 REN TB8 RB8 TI RI,SCON (98H),SM2: 多机通信控制位。主要用于方式2和方式3。,如果SM2=1,则只有当接收到的第9位数据(RB8)为“1”时,才使RI置“1”,产生中断请求;当接收到的第9位数据(RB8)为“0”时,则将接收到的前8位数

7、据丢弃。 当SM2=0时,则不论第9位数据是1还是0,都将前8位数据送入SBUF中,并使RI置1,产生中断请求。 在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。在方式0时,SM2必须为0。,单片机基础课程第六章串行接口UART,SM0 SM1 SM2 REN TB8 RB8 TI RI,SCON (98H),REN:,TB8:,在方式2和方式3中要发送的第9位数据,需要时由软件置位或复位。,RB8:,在方式2和方式3中要接收的第9位数据,在方式1时,如SM2=0,RB8是接收到的停止位。在方式0中,不使用RB8。,单片机基础课程第六章串行接口UART,SM0 SM1 SM2

8、 REN TB8 RB8 TI RI,SCON (98H),TI:,发送中断标志。在方式0串行发送第8位结束时由硬件置“1”,或在其他方式中串行发送停止位的开始时置“1”,必须由软件清“0”。,RI:,接收中断标志。在方式0串行接收第8位结束时由硬件置“1”,或在其他方式中串行接收停止位的开始时置“1”,必须由软件清“0”。,单片机基础课程第六章串行接口UART,电源控制寄存器 PCON,字节地址87H,没有位寻址功能。,PCON(87H),SMOD:波特率选择位。SMOD=1时,波特率加倍。,例如:方式1 波特率= 定时器T1的溢出率,单片机基础课程第六章串行接口UART,串行口相关寄存器小

9、结:,SM0 SM1 SM2 REN TB8 RB8 TI RI,SCON (98H),PCON(87H),单片机基础课程第六章串行接口UART,6. 2 串行口工作方式及应用,单片机基础课程第六章串行接口UART,1、方式0,移位寄存器输入输出方式,可外接移位寄存器,以扩展I/O口。,方式0的波特率为:,波特率= fosc/12,单片机基础课程第六章串行接口UART,74LS164,数据输出,移位脉冲,D7 D0,串行输入并行输出移位寄存器74LS164。数据写入SBUF,串口将数据从RXD输出(波特率fosc/12),TXD输出同步移位信号,发送完TI置1。,单片机基础课程第六章串行接口U

10、ART,方式0发送时序,单片机基础课程第六章串行接口UART,REN置1,串口将数据从RXD输入(波特率fosc/ 12),TXD输出同步移位信号,发送完RI置1。,单片机基础课程第六章串行接口UART,方式0接收时序,单片机基础课程第六章串行接口UART,方式0的应用:串行转并行口控制LED滚动显示,单片机基础课程第六章串行接口UART,#include #include #define uchar unsigned char#define uint unsigned intvoid DELAY_ms (uint m)uchar i;while (m-)for (i=0;i120;i+);,

11、方式0的应用:串行转并行口控制LED滚动显示,单片机基础课程第六章串行接口UART,void main()uchar a = 0 x01;SCON = 0 x00; /串口模式0while (1)SBUF = a;a = _crol_(a,1);while (TI=0);TI = 0;DELAY_ms (500);,方式0的应用:串行转并行口控制LED滚动显示,单片机基础课程第六章串行接口UART,2、方式1,波特率可变的8位异步串行通信口方式。,波特率 = 2SMOD/32T1溢出率。,方式1一帧数据为10位,1个起始位(0),8个数据位,1个停止位(1),先发送或接收最低位。,单片机基础课

12、程第六章串行接口UART,方式1输出 数据位由TXD端输出,发送一帧信息为10位:1位起始位0,8位数据位(先低位)和1位停止位1。 当CPU执行一条数据写SBUF的指令,就启动发送。 TX时钟的频率就是发送的波特率。 发送开始时,内部发送控制信号变为有效,将起始位向TXD脚(P3.1)输出,此后每经过一个TX时钟周期,便产生一个移位脉冲,由TXD引脚输出一个数据位。 8位数据位全部发送完毕后,中断标志位TI置1。,单片机基础课程第六章串行接口UART,方式1发送时序,单片机基础课程第六章串行接口UART,方式1接收 方式1接收时(REN=1),数据从RXD(P3.0)引脚输入。当检测到起始位

13、的负跳变,则开始接收。 接收时,定时控制信号有两种,一种是接收移位时钟(RX时钟),它的频率和传送的波特率相同;另一种是位检测器采样脉冲,频率是RX时钟的16倍。 当采样到RXD端从1到0的负跳变时就启动检测器,接收的值是3次连续采样(第7、8、9个脉冲时采样)取两次相同的值,以确认起始位(负跳变)的开始,较好地消除干扰引起的影响。,单片机基础课程第六章串行接口UART,当确认起始位有效时,开始接收一帧信息。每一位数据,也都进行3次连续采样(第7、8、9个脉冲采样),接收的值是3次采样中至少两次相同的值。,单片机基础课程第六章串行接口UART,当一帧数据接收完毕后,同时满足以下两个条件,接收才

14、有效。 (1)RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 (2)SM2=0或收到的停止位=1(方式1时,停止位已进入RB8),则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标志RI置“1”。 若不同时满足两个条件,收的数据不能装入SBUF,该帧数据将丢弃。,单片机基础课程第六章串行接口UART,方式1的应用:甲机与乙机双向通信,单片机基础课程第六章串行接口UART,方式1的应用:甲机与乙机双向通信,单片机串行口输入、输出为TTL电平(大于0.8V为1,小于0.3V为0),抗干扰性差,传输距离短,传输速率

15、低。 为提高串行通信的可靠性,增大串行通信的距离和提高传输速率,常采用标准串行接口,如RS-232、RS-422A、RS-485等。 RS-232信号:逻辑0电平为+3+15,信号逻辑1电平为-3-15。,单片机基础课程第六章串行接口UART,1TTL电平通信接口 如果两个单片机相距在1.5m之内,它们的串行口可直接相连。甲机RXD与乙机TXD端相连,乙机RXD与甲机TXD端相连。 2RS-232C双机通信接口 如果双机通信距离在1.515m之间时,可用RS-232C标准接口实现点对点的双机通信。MAX232A是美国MAXIM(美信)公司生产的RS-232C双工发送器/接收器电路芯片。,方式1

16、的应用:甲机与乙机双向通信,单片机基础课程第六章串行接口UART,方式1的应用:甲机与乙机双向通信,单片机基础课程第六章串行接口UART,方式1的应用:甲机与乙机双向通信,单片机基础课程第六章串行接口UART,方式1的应用:甲机与乙机双向通信,单片机基础课程第六章串行接口UART,3RS-422A双机通信接口 RS-232C有明显缺点:传输速率低、通信距离短、接口处信号容易产生串扰等。 国际上又推出了RS-422A标准。与RS-232C的主要区别是,收发双方的信号地不再共地,RS-422A采用了平衡驱动和差分接收的方法。 RS-422A能在长距离、高速率下传输数据。它的最大传输率为10Mbit

17、/s,电缆允许长度为12m,如果采用较低传输速率时,最大传输距离可达1219m。,方式1的应用:甲机与乙机双向通信,单片机基础课程第六章串行接口UART,RS-422A双机通信接口电路,方式1的应用:甲机与乙机双向通信,单片机基础课程第六章串行接口UART,4RS-485双机通信接口 RS-422A双机通信需四芯传输线,这对长距离通信很不经济,故在工业现场,通常采用双绞线传输的RS-485串行通信接口,很容易实现多机通信。RS-485是RS-422A的变型,它与RS-422A的区别:RS-422A为全双工,采用两对平衡差分信号线;RS-485为半双工,采用一对平衡差分信号线。RS-485对于多

18、站互连是十分方便的,很容易实现多机通信。RS-485允许最多并联32台驱动器和32台接收器。与RS-422A一样,最大传输距离约为1219m,最大传输速率为10Mbit/s。,方式1的应用:甲机与乙机双向通信,单片机基础课程第六章串行接口UART,RS-485双机通信接口电路,方式1的应用:甲机与乙机双向通信,单片机基础课程第六章串行接口UART,波特率= 定时器T1的溢出率; T1溢出率和SMOD的值共同决定波特率。 在实际设定波特率时,T1常设置为方式2定时(自动装初值),即TL1作为8位计数器,TH1存放备用初值。这种方式操作方便,也避免因软件重装初值带来的定时误差。 设定时器T1方式2

19、的初值为X,则有 定时器T1的溢出率=,方式1的应用:波特率定制方法,单片机基础课程第六章串行接口UART,波特率= 波特率随fosc、SMOD和初值X而变化。 实际使用时,经常根据已知波特率和时钟频率fosc来计算T1的初值X。为避免繁杂的初值计算,常用的波特率和初值X间的关系常列成表格的形式,以供查用。,单片机基础课程第六章串行接口UART,用定时器T1产生的常用波特率,单片机基础课程第六章串行接口UART,需要注意两点: (1)在使用的时钟振荡频率fosc为12MHz或6MHz时,将初值X和fosc带入式中计算出的波特率有一定误差。消除误差可采用时钟频率11.0592MHz。 (2)如果

20、选用很低的波特率,如波特率选为55,可将定时器T1设置为方式1定时。但在这种情况下,T1溢出时,需在中断服务程序中重新装入初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。,单片机基础课程第六章串行接口UART,【例】 若时钟频率为11.0592MHz,选用T1的方式2定时作为波特率发生器,波特率为2400bit/s,求初值。 设T1为方式2定时,选SMOD=0。 将已知条件带入式中 波特率= =2400 从中解得X=244=F4H。 只要把F4H装入TH1和TL1,则T1产生的波特率为2 400bit/s。该结果也可直接从表中查到。 这里时钟振荡频率选为1

21、1.0592MHz,就可使初值为整数,从而产生精确的波特率。,单片机基础课程第六章串行接口UART,单片机基础课程第六章串行接口UART,甲机程序与乙机程序:,甲机程序与乙机程序 ,单片机基础课程第六章串行接口UART,方式2和方式3,为9位异步通信接口。每帧数据为11位,1位起始位0,8位数据位(先低位),1位可程控为1或0的第9位数据和1位停止位。 方式2波特率= fosc,3、方式2,单片机基础课程第六章串行接口UART,发送前,先根据通信协议由软件设置TB8(如奇偶校验位或多机通信的地址/数据标志位),然后将要发送的数据写入SBUF,即启动发送。TB8自动装入第9位数据位,逐一发送。发

22、送完毕,使TI位置“1”。 方式2和方式3发送时序,单片机基础课程第六章串行接口UART,【例】方式2发送在双机串行通信中的应用 下面的发送中断服务程序,以TB8作为奇偶校验位,偶校验发送。数据写入SBUF之前,先将数据的偶校验位写入TB8(设第2组的工作寄存器区的R0作为发送数据区地址指针)。PIPTI: PUSHPSW ;现场保护 PUSHAcc SETBRS1 ;选择第2组工作寄存器区 CLRRS0 CLRTI ;发送中断标志清“0” MOVA,R0 ;取数据 MOVC,P ;校验位送TB8, 采用偶校验 MOVTB8,C;P=1,校验位TB8=1,P=0,校验位TB8=0,单片机基础课

23、程第六章串行接口UART,MOV SBUF ,A ;A数据发送,同时发TB8 INC R0 ;数据指针加1 POP Acc ;恢复现场 POP PSW RETI ;中断返回 2方式2接收 SM0、SM1=10,且REN=1时,以方式2接收数据。数据由RXD端输入,接收11位信息。当位检测逻辑采样到RXD的负跳变,判断起始位有效,便开始接收一帧信息。在接收完第9位数据后,需满足以下两个条件,才能将接收到的数据送入SBUF(接收缓冲器)。(1)RI=0,意味着接收缓冲器为空。(2)SM2=0或接收到的第9位数据位RB8=1。,单片机基础课程第六章串行接口UART,当满足上述两个条件时,收到的数据送SBUF(接收缓冲器),第9位数据送入RB8,且RI置“1”。若不满足这两个条件,接收的信息将被丢弃。 方式2和方式3接收时序,单片机基础课程第六章串行接口UART,SM0、SM1=11时,方式3,为波特率可变的9位异步通信方式,除了波特率外,方式3和方式2相同。方式3波特率= 定时器T1的溢出率,4、方式3,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1