MCS-51的串行通信接口.ppt

上传人:牧羊曲112 文档编号:6512366 上传时间:2023-11-08 格式:PPT 页数:46 大小:1.50MB
返回 下载 相关 举报
MCS-51的串行通信接口.ppt_第1页
第1页 / 共46页
MCS-51的串行通信接口.ppt_第2页
第2页 / 共46页
MCS-51的串行通信接口.ppt_第3页
第3页 / 共46页
MCS-51的串行通信接口.ppt_第4页
第4页 / 共46页
MCS-51的串行通信接口.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《MCS-51的串行通信接口.ppt》由会员分享,可在线阅读,更多相关《MCS-51的串行通信接口.ppt(46页珍藏版)》请在三一办公上搜索。

1、第7章 MCS-51的串行通信接口,7.1 串行通信概述计算机与外部设备或计算机与计算机之间的数据交换称为通信。通信分为并行通信与串行通信两种基本方式。并行通信:将数据的各位用多条数据线同时进行传送,外加地址线和通信控制线。优点是传输速率高,缺点是长距离传输成本高,可靠性差,只适用于近距离传输。串行通信:将数据分成1位1位的形式在一条传输线上逐 个地传送。优点是传输线少,长距离传送时成本低,缺 点是传输速率低。,7.1 串行通信概述,(a)并行通信方式(b)串行通信方式图7.1 并行和串行通信方式,7.1 串行通信概述,1.串行通信的种类根据数据传输方式的不同,可将串行通信分为同步 通信和异步

2、通信。1)同步通信同步通信是一种数据连续传输的串行通信方式,通信时发送方把需要发送的多个字节数据和校验信息连接起来,组成数据块。发送时,发送方只需在数据块前插入12个特殊的同步字符,然后按特定速率逐位输出(发送)数据块内的各位数据。接收方在接收到特定的同步字符后,也按相同速率接收数据块内的各位数据。,7.1 串行通信概述,典型的同步通信格式如下:在这种通信方式中,数据块内的各位数据之间没有间 隔,传输效率高;发送、接收双方必须保持同步(使用同一时钟信号),且数据块长度越大,对同步要求就越高。同步通信设备复杂,成本高,一般只用在高速数字通信系统中。,7.1 串行通信概述,2)异步通信异步通信是以

3、字符帧为单位进行传输。每帧数据由4部分组成:起始位(占1位)、数据位(占 位)、奇偶校验位(占位,也可以没有校验 位)、停止位(占1或2位)。图7.2中给出的是8位数据位、1位奇偶校验位和1位 停止位,加上1位起始位,共11位组成一个传输帧。,7.1 串行通信概述,图7.2 异步通信字符帧格式,7.1 串行通信概述,发送方:传送时先输出起始位“”作为联络信号,接下来的是数据位和奇偶校验位,停止位“1”表示一个字符的结束。其中,数据的低位在前,高位在后。字符之间允许有不定长度的空闲位。接收方:传送开始后,接收设备不断检测传输线的电平状态,当收到一系列的“1”(空闲位或停止位)之后,检测到一个“”

4、,说明起始位出现,就开始接收所规定的数据位和奇偶校验位以及停止位。异步通信的特点:所需传输线少,设备开销较小,在单片机控制系统中得到广泛的应用。但每个字符要附加23位用于起止位,各帧之间还有间隔,因此传输效率不高。,7.1 串行通信概述,2.串行通信数据传输方向 根据串行通信数据传输的方向,可将串行通信系统传输方式分为:单工方式、半双工方式和全双工方式,如图7.3所示。图7.3 数据传输方式,7.1 串行通信概述,1)单工:数据传输仅能从发送设备传输到接收设备。2)半双工:两个串行通信设备之间只有一条数据线,数据传输可以沿两个方向,但需要分时进行。3)全双工:是指两个串行通信设备之间可以同时进

5、行 接收和发送。3种方式中,全双工方式的效率最高;半双工方式配置和编程相对灵活,传输成本较低;串行通信设备常选用半双工方式。,7.1 串行通信概述,3.波特率数据的传输速率可以用波特率表示。波特率是信号每秒变化的次数,单位是:符号/s比特率是每秒传送二进制数的位数单位是:(bit/s或kbit/s)。如每秒传送240个字符,而每个字符格式包含10位这时的波特率为10位(bit)240个/s=2400 bit/s。在异步串行通信中,接收方和发送方应使用相同的波特率,才能成功传送数据。,7.2 串行口结构及控制寄存器,MCS-51单片机内部有一个全双工异步串行I/O接口。MCS-51串行接口的内部

6、简化结构如图7.4所示。图7.4 MCS-51串行接口结构图,7.2 串行口结构及控制寄存器,P3.0是串行数据接收端RXD,P3.1是串行数据发送端TXD。串行接口的结构由串行接口控制电路、发送电路和接收电路3部分组成。发送电路由发送缓冲器(SBUF)、发送控制电路组成,用于串行接口的发送。接收电路由接收缓冲器(SBUF)、接收控制电路组成,用于串行接口的接收。两个数据缓冲器(SBUF)在物理上相互独立,在逻辑上却占用同一字节地址99H。,7.2 串行口结构及控制寄存器,单片机串行接口工作方式是通过初始化设置,将两个相应控制字分别写入串行控制寄存器SCON(98H)和电 源控制寄存器PCON

7、(97H)即可。1.和串行接口有关的特殊功能寄存器1)数据缓冲器(99H)发送缓冲器:只管发送数据,CPU写入SBUF的时候(MOV SUBF,A)即为发送;接收缓冲器:只管接收数据,CPU读取SBUF的过程(MOV A,SUBF)即为接收。,7.2 串行口结构及控制寄存器,发送缓冲器只能写入,不能读出;接收缓冲器只能读出,不能写入。所以可同时发送数据、接收数据。对于发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。接收缓冲器是双缓冲结构,以避免在接收下一帧 数据之前,CPU未能及时响应接收器的中断,没有把上一帧数据读走,就会丢失前一个字节的内容。,7.2 串行口结构及控制寄存器,2)串

8、行接口控制寄存器SCON(98H)用于控制串行接口的工作状态,其格式如下:,7.2 串行口结构及控制寄存器,(1)SM0和SM1:用于设置串行接口的工作方式,2位可选择4种工作方式,如表7-1所示。其中,UART是通用异步接收和发送器的英文缩写,是晶振频率。,表7-1 串行接口的工作方式设置,/64或,7.2 串行口结构及控制寄存器,(2)REN:允许串行接收位。由软件置位或清零。REN=1时,串行接口允许接收数据;REN=0时,则禁止接收。(3)TB8:在方式2或方式3中,是发送数据的第9位。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。(4)RB8:在方式2或方式3

9、中,是接收到数据的第9位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。,7.2 串行口结构及控制寄存器,(5)TI:发送中断标志位。由内部硬件使TI置“1”,向CPU发中断申请。必须用软件将其清“0”,取消此中断申请。(6)RI:接收中断标志位。由内部硬件使RI置“1”,向CPU发中断申请。必须用软件将其清“0”,取消此中断申请。(7)SM2:为多机通信控制位,主要用于方式2和方式3。通过控制SM2,可以实现多机通信。,7.2 串行口结构及控制寄存器,(8)电源控制寄存器PCON(97H)其中只有1位SMOD与串行接口工作有关,格式如下:(9)S

10、MOD:波特率系数控制位。在串行接口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率加倍,否则不加倍。复位时,SMOD=0。PCON的地址为97H,不能位寻址,需要字节传送。,7.3 串行口的工作方式,串行接口可由SCON中的SM0、SM1设置4种工作方式。1)方式0串行接口为同步移位寄存器的输入/输出方式,而不是 通信方式,可外接移位寄存器,用于扩展并行I/O接口。注意:数据都由RXD(P3.0)引脚输入或输出,TXD引脚 总是用于输出同步移位脉冲。发送和接收均为8位数据,低位在先,高位在后。波特 率固定为/12。,7.3 串行口的工作方式,2)方式0输出 方式0时输

11、出时序如图7.5所示。图7.5 方式0 输出时序,7.3 串行口的工作方式,当执行任何一条写SBUF的指令时,就启动了串行接口的发送过程(如MOV SBUF,A)。内部的定时逻辑在SBUF写入数据之后,经过一个完整的机器周期,输出移位寄存器中输出位的内容送RXD引脚输出;移位脉冲由TXD引脚输出,它使RXD引脚输出的数据移入外部移位寄存器。当数据的最高位D7位移出后,停止发送数据和移位脉冲,就完成了1B的输出,并把中断标志(TI)置“1”。如要再发送下一字节数据,必须用软件先将TI清“0”。,7.3 串行口的工作方式,3)方式0输入 方式0时输入时序如图7.6所示。当SCON中的接收允许位RE

12、N=1和 RI=0时,就会启动一次串行接口接收过程。串行数据从RXD引脚输入,移位脉冲由TXD引脚输出。当接收完一帧数据后,由硬件将输入移位寄存器中的内容写入SBUF,并把中断标志(RI)置“1”。如要再接收数据,就再用软件将RI清“0”。,7.3 串行口的工作方式,方式0时输入时序如图7.6所示。图7.6 方式0 输入时序,7.3 串行口的工作方式,4)方式1串行接口为波特率可变的8位数据的异步通信接口。TXD为数据发送引脚,RXD为数据接收引脚。传送1帧数据为10位,其中,1位起始位(0),8位数据位(低位在先),1位停止位(1)。方式1的波特率由定时器(T1)的溢出率和SMOD的状态决定

13、。,7.3 串行口的工作方式,5)方式1输出 方式1的发送时序如图7.7所示。图7.7 方式1的发送时序,7.3 串行口的工作方式,执行一条写SBUF的指令就启动了发送过程。在发送移位时钟的作用下,从TXD引脚先送出起始位(0),然后是8位数据位,最后是停止位(1)。1帧10位数据发送完后,将中断标志(TI)置“1”,向CPU申请中断。如要再发送下一字节数据,必须用软件先将TI清“0”。,7.3 串行口的工作方式,6)方式1输入软件使REN=1和RI=0时,就启动了接收过程。接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,说明起始位有 效,将其移入输入

14、移位寄存器,并开始接收这1帧信息 的其余位。接收过程中,将每个数据位宽度分成16个状态,并在中 间的第7、8、9状态时对RXD采样,采样数据从输入移 位寄存器右边移入,起始位移至输入移位寄存器最左边 时,控制电路进行最后一次移位。,7.3 串行口的工作方式,当RI=0,且SM2=0(或接收到的停止位为“1”)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。如要再接收数据,就再用软件将RI清“0”。图7.8 方式1的接收时序,7.3 串行口的工作方式,7)方式2和方式3串行接口为9位数据的异步通信接口。TXD为数据发送引脚,RXD为

15、数据接收引脚。传送1帧数据为11位。其中1位起始位(0),然后是8位数据位(低位在先),第10位是SCON中的TB8或RB8,最后1位是停止位(1)。方式2的波特率固定为晶振频率的1/64或1/32,方式3波特率由定时器(T1)的溢出率和SMOD的状态决定。,7.3 串行口的工作方式,8)方式2和方式3 输出 方式2和方式3的发送时序如图7.9所示。,图7.9 方式2和方式3的发送时序,7.3 串行口的工作方式,CPU向SBUF写入数据时,就启动了发送过程。SCON中的TB8写入输出移位寄存器的第9位,8位数据装入SBUF。发送开始时,先把起始位0输出到TXD引脚,然后是9位数据位,最后是停止

16、位(1)。1帧11位数据发送完后,将中断标志(TI)置“1”,向CPU申请中断。如要再发送下一字节数据,必须用软件先将TI 清0。,7.3 串行口的工作方式,9)方式2和方式3输入 方式2和方式3的接收时序如图7.10所示。图7.10 方式2、方式3的接收时序,7.3 串行口的工作方式,软件使REN=1和RI=0时,就启动了接收过程。接收器就以所选频率的16 倍速率开始采样RXD引脚的电平状态,当检测到RXD引脚发生负跳变时,说明起始位有效,将其移入输入移位寄存器,开始接收这1帧数据。接收时,将每个数据位宽度分成16个状态,并在中间的第7、8、9状态时对RXD采样,采样数据从右边移入输入移位寄

17、存器,在起始位0移到最左边时,控制电路进行最后一次移位。,7.3 串行口的工作方式,当RI=0,且SM2=0(或接收到的第9位数据为“1”)时,接收到的数据装入接收缓冲器和RB8(接收数据的第9位),置RI=1,向CPU请求中断。如要再接收数据,就再用软件将RI清“0”。如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。,7.4 串行口的应用设计举例,波特率的设定串行通信双方对发送或接收数据的波特率事先要约定好保持一致。MCS-51单片机的波特率设置与工作方式有关,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率和SMOD的状态决定

18、。,7.4 串行口的应用设计举例,各种方式的波特率计算由以下公式确定:方式0的波特率=/12 方式2的波特率=(2SMOD/64)方式1的波特率=(2SMOD/32)(T1溢出率)方式3的波特率=(2SMOD/32)(T1溢出率),7.4 串行口的应用设计举例,当T1作为波特率发生器时,常使T1工作在自动重装初值的8位定时器方式,并禁止T1中断。这种方式可避免重新设定定时初值而产生波特率误差。TH1从初值计数到产生溢出,它每秒溢出的次数称为溢出率。T1溢出率=/12256-(TH1),7.4 串行口的应用设计举例,在单片机的应用中,相同机种单片机的波特率很容易达到一致,只要晶振频率相同,可以采

19、用完全一致的设置参数。异机种单片机的波特率设置较难达到一致,这时的设计原则应使两个通信设备之间的波特率误差小于2.5%。常用的串行接口波特率、晶振频率以及各参数的关系如表7-4所示。,7.4 串行口的应用设计举例,表7-4常用波特率、晶振频率与定时器(T1)的参数关系,7.4 串行口的应用设计举例,串行接口工作在方式0时用于扩展并行I/O接口。74LS164为一个1位串行输入8位并行输出的移位寄存器,TXD引脚输出的移位脉冲将RXD引脚输出的数据(低位在先)逐位移入74LS164,扩展8个LED指示灯。74LS165为一个8位并行输入1位串行输出的移位寄存器,TXD引脚输出的移位脉冲将74LS

20、165的8位并行输入的数据(低位在先)逐位移入RXD引脚,扩展8个按键。图4.20为一个串行接口扩展并行I/O接口方案。,7.4 串行口的应用设计举例,【例】【功能】如图7.11所示的8个LED指示灯,指示8个按键闭合状态,有键按下时对应的指示灯亮。图7.11 串行接口扩展并行I/O接口方案,7.4 串行口的应用设计举例,【实现程序】SIO:MOVSCON,#10H;REN=1,RI=0,SM0=0,SM1=0,;串行口工作在方式0,且启动接收过程LOOP:CLR P1.0;允许并行读入按键到74LS165,S/=0;有按键的位读数为0 SETB P1.0;允许串行移位,S/=1 CLR RI

21、;启动接收 JNB RI,$;若RI=0,8位数据未接收完,等待 MOV A,SBUF;若RI=1,8位数据接收完,读入A CLR TI;清发送标志,准备发送 MOV SBUF,A;启动发送,输出数据位0,;将点亮对应位LED JNB TI,$;8位数据未发送完,等待 SJMP LOOP;8位数据发送完,循环,7.4 串行口的应用设计举例,RECEIVE:MOV A,SBUFCJNE A,“1”,LOOP;判断是否呼叫本机SETB P2.7;MAX485发送使能端有效NOPMOV R1,#06HMOV R0,#40HSCYCLE:LCALL SDATA;发送热量值,调用发送子程序INC R0D

22、JNZ R1,SCYCLE;发送完毕?LJMP LOOPSDATA:MOV A,R0;发送子程序MOV SBUF,ASWAIT:JBC TI,SEXITSJMP SWAITSEXIT:RET,7.4 串行口的应用设计举例,多机通信原理 串行口控制寄存器SCON中的SM2为多机通信接口控制位。串行口以方式2或3接收时,若SM2为1,则仅当接收到的第9位数据RB8为1时,数据才装入SBUF,置位RI,请求CPU对数据进行处理;当SM2为0时,则接收到一个数据后,不管第9位数据RB8是0还是1,都将数据装入接收缓冲器SBUF并置位中断标志RI,请求CPU处理。发送:先发送地址帧(TB8=1),再发送数据帧(TB8=0)。,MCS-51单片机多机通信系统举例,发送分二步:1.先发送地址(第九位为1 即TB8=1)所有子机都能接收 2.再发送数据(第九位为0即TB8=0)只有地址指定的子机接收,接收分二步:1.待接收状态 置SM2=1,只接收RB8=1的信息帧,即地址信息 2.收到的地址与本机符合时,置SM2=0,即可接收数据信息 因为:数据帧的RB8=0,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号