您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 51单片机串行通信接口
北京交通大学1第6章串行通信接口本章主要内容•串行数据通信基本原理•MCS-51单片机串行口•串行口应用举例北京交通大学2计算机的两种方式数据传送:并行和串行并行传送的特点:各数据位同时传送,传送速度快、效率高。但需要的数据线多,因此传送成本高。并行数据传送的距离通常小于30米。串行传送的特点是:数据传送按位顺序进行,最少只需一根传输线即可完成,成本低,但速度慢。串行数据传送的距离可以从几米到几千公里。一、串行数据通信基本原理北京交通大学3数据通信基本原理串行数据传送又分为异步传送和同步传送两种方式。在单片机中,主要使用异步传送方式。北京交通大学41.异步串行通信的字符格式异步串行数据通信以字符为单位,即一次传送一个字符。异步通信的数据格式为:一位起始位一位奇偶校验位1、1.5、2位停止位一帧信息5~8位数据位...北京交通大学51位起始位(为低电平);5-8位数据位(紧跟着起始位),表示要传送的有效数据(低位在前);1位奇偶校验位(可有可无);1、1.5或2位停止位(为高电平)。从起始位开始到停止位结束的时间间隔称为一帧。就是一个字符的完整通信格式。因此也把串行通信的字符格式称为帧格式北京交通大学6•例如,采用串行异步通信方式传送ASCII码字符‘5’,规定为7位数据位,1位偶校验位,1位停止位,无空闲位。•由于‘5’的ASCII码为35H,其对应7位数据位为0110101,如按低位在前、高位在后顺序排列应为1010110。前面加1位起始位,后面配上偶校验位1位0,最后面加1位停止位1,因此传送的字符格式为0101011001,其对应的波形如图所示。低位在前高位在后起始停止偶校验北京交通大学72.串行通信的数据通路形式串行数据通信有以下几种数据通路形式:•单工形式:A发,B接。•半双工形式:A发或接,B接或发。•全双工形式:A发、接,B接、发。ABABAB北京交通大学83.串行通信的传送速率传送速率:用于说明数据传送的快慢。波特率(Baud):每秒传送二进制代码位数即每秒传送一个数据位就是一波特:常用的波特率有:75,110,300,600,1200,2400,4800,9600,19200。1波特=1bps(位/秒)北京交通大学9•设数据传送的速率每秒为120个字符,每个字符包含10个代码位(1个起始位,1个停止位,8个数据位)•波特率=10x120b/s=1200bps•每一位代码的传送时间=1/1200=0.833ms北京交通大学104.串行通信接口电路串行数据通信中主要有两个技术问题数据传送:数据传送主要解决传送中的标准、格式及工作方式等问题数据转换:数据转换是指数据的串并转换北京交通大学11串行接口电路基本组成逻辑框图如下:串行输入时钟复位并行输出并行输入时钟串行输出控制信号状态、控制信息接收器发送器控制部件北京交通大学12通用异步接收发送器(UART)北京交通大学13异步串行通信常用接口TTL电平直接连接RS-232C:传输速度为20kbit/s,传输距离15英尺RS-422、RS-485:传输速度为10Mbit/s,传输距离300m—1200m并能抑制共模信号干扰20mA电流环:能降低对噪声敏感程度光纤:光纤介质可减少噪声干扰,光电隔离提高安全性北京交通大学14二、MCS-51单片机串行口MCS-51单片机片内有一个全双工串行口(P3.0接收、P3.1发送)功能:异步串行通信其中:发送和接收的速率与移位时钟同步,移位脉冲的速率为波特率。说明:定时器T1作为串行通信波特率发生器。北京交通大学15TI发送中断标志RI接收中断,允许接收REN串行口中断1.串行口寄存器结构发送寄存器(只能写)接收寄存器(只能读)(P3.1)(P3.0)SBUF全双工方式进行通信,这两个寄存器共用一个地址(99H)。北京交通大学16双缓冲结构,防止产生重叠错误MOVSBUF,AMOVA,SBUF北京交通大学17例如:说明:串行接收采用双缓冲结构,以避免在数据接收过程中出现帧重叠错误,但发送数据时,由于CPU是主动的,不会发生帧重叠错误,因此发送电路就不需要双缓冲结构。2.串行通信控制有关的寄存器SCON:串行控制,用来设定串行口的工作方式PCON:电源控制,可控制波特率。IE:设置串行中断允许。启动发送:MOVSBUF,A;SBUF(A)启动接收:MOVA,SBUF;A(SBUF)北京交通大学18(1)串行控制寄存器SCONSCON格式如下:SM0SM1SM2RENTB8RB8TIRI(98H)9F9E9D9C9B9A9998工作方式选择位多机通信控制位允许接收控制位发送数据第九位接收数据第九位发送中断标志接收中断标志北京交通大学19各位功能说明如下:SM0SM1:串口工作方式选择位00方式0:同步移位寄存器波特率=主振频率/1201方式1:8位异步,波特率可变10方式2:9位异步波特率=主振频率/32或主振频率/6411方式3:9位异步,波特率可变北京交通大学20REN=1:允许串行接收,用软件置位或清除。TB8:发送数据位8即:D0…D7D8TB8/RB8D8=0:表示数据帧;D8=1:表示地址帧⑴在工作方式2、3中,TB8是发送的第9位数据,由软件置位(SETBTB8)或复位(CLRTB8)⑵在双机通信中,该位作为奇偶校验位;⑶在多机通信中用来表示D7-D0是地址帧或数据帧北京交通大学21RB8:接收数据位8TI:发送中断标志。⑴在工作方式2和3中,该位是接收到的第9位数据。方式1,SM2=0,停止位。方式0,不用。⑵在多机通信中是地址帧(RB8=1)和数据帧(RB8=0)的标识位。⑴在方式0中,发送完第8位数据后,该位由硬件置位;⑵在其它方式中,在发送停止位之前,该位由硬件置位,申请中断,CPU响应中断后,可以发送下一帧数据。该位必须由软件清零。北京交通大学22RI:接收中断标志。⑴在方式0中,接收完第8位数据后,该位由硬件置位⑵在其它方式中,在接收到停止位的一半时,该位由硬件置位(还需考虑SM2的设定),申请中断,CPU响应中断后,可以接收下一帧数据。该位也必须由软件清零。北京交通大学23SM2:多机通信控制位,主要用于方式2、3中。⑴在方式0中,SM2设置为0,不用TB8和RB8⑵在方式1中:当SM2=0,则RB8是接收到的停止位;当SM2=1,则只有接收到有效的停止位时,RI才被激活。⑶在方式2、3中,TB8和RB8为发送和接收的第九位数据,当SM2=0时,则不论RB8为0还是1,都将前8位数据装入SBUF中,表示接收到命令或数据,并产生中断请求。当SM2=1时,只有当接收到的第九位数据RB8=1时,才将接收到的前8位数据送入SBUF,表示接收到地址帧;当RB8=0时,将接收到的前8位数据丢弃。北京交通大学24•说明:1.用软件可以改变设置SCON内容,并在下一条指令的第一个周期的S1P1期间才锁存到SCON中。2.一帧发送完,发送中断标志置位(TI),向CPU请求中断。一帧接收完,接收中断标志置位(RI),向CPU请求中断。北京交通大学25它主要是为CHMOS型单片机的电源控制而设置的。对HMOS型单片机,除了最高位(SMOD)之外,其它位都是虚设的,SMOD是串行口波特率的倍增位。当:SMOD=1时,串行口波特率加倍系统复位时,SMOD=0。可由下列指令设置:MOVPCON,#80H;SMOD1MOVPCON,#00H;SMOD0(2)电源控制寄存器PCON格式:SMOD(87H)北京交通大学26(1)方式0:同步移位寄存器方式RXD端作为数据移位的入口或出口TXD端提供移位时钟脉冲,移位数据的发送和接收以8位为一帧,不设起始位和停止位,低位在前高位在后,波特率是固定的即一个机器周期移位一次。2.串行口的工作方式RXDTXDDATACLKRXDTXDDATACLK并行输出并行输入8051CD40968051CD4014下图串并,并串转换方法电路P1.0STBP1.0STBfOSC/12北京交通大学27•说明:1.REN=1,允许接收。RXD数据输入,TXD移位脉(fosc/12)。接收(发送)完8位数据时硬件将RI(TI)置位,CPU响应中断,2.TI,RI必须由用户程序清零。3.方式0时:SM2=0,TB8、RB8不用4.扩展I/O串行输入,串行输出,并串、串并转换北京交通大学28数据输出MOVSBUF,Afosc=1/12发送完8位数据北京交通大学29REN=“1”,方式0,RI=“0”RXD数据输入端接收到8位数据北京交通大学30数据发送1.数据发送是由一条写发送寄存器(MOVSBUF,A)指令开始的。2.此后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式。3.然后在移位脉冲的作用下,由TXD端串行输出。4.一个字符帧发送完后,使TXD端输出线维持高电平,并将TI置位,通知CPU可以发送下一个字符。起始D0D1D2D3D4D5D6D7停止(2)方式1方式1的帧格式为:北京交通大学31数据接收1.接收数据时,应使REN=1。在此前提下,串行口采样RXD端,当采样到从1到0的跳变时,就认定是接收到了起始位。2.随后在移位脉冲的控制下,把接收到的数据位移入接收寄存器中。3.直到停止位到来之后把它送入到RB8中,并置位RI,通知CPU从SBUF取走接收到的一个字符。北京交通大学32发送十位信息启动发送完置1REN=“1”,SM0=0,SM1=1,RI=07,8,9共3次采样数据采样到1变0,启动接收波特率16倍速率条件:1.RI=02.停止位=1,或SM2=0、停止位进入RB8,并RI=1北京交通大学33波特率的设定方式1的波特率可变,由下式决定:实际使用时,总是先确定波特率,再计算T1的计数初值。即:mod23212(256)1=12(256)soscoscfXfTX波特率定时器的溢出率mod(2)256384soscfX波特率smod为PCON寄存器最高位的值,fOSC为晶振频率,X为当T1工作于方式2(8位自动加载)时的计数初值。其中:北京交通大学34(3)方式2和方式3串行口工作在方式2、3时,为9位异步通信口,发送和接收1帧信息由11位组成,即:D0D2...D7D8一帧1位起始位(0)、8位数据位(D0-D7)、1位可编程位(D8)和1位停止位(1)。D8位既可作为奇偶校验位,也可作为控制位使用,功能由用户确定发送时,可编程位D8(TB8)可设置为0(CLRTB8)或1(SETBTB8)接收时,TB8送入SCON寄存器中RB8位。北京交通大学35方式2、3的区别是:波特率设置不同方式2的波特率是固定的。即:波特率=fosc/32或fosc/64方式3的波特率是可变的。即:mod23212(256)soscfX波特率mod(2)256384soscfX波特率北京交通大学36波特率foscsmod120011.059202E8H240011.059202F4H480011.059202FAH960011.059202FDH1920011.059212FDH定时器1方式时间常数表1波特率与时间常数北京交通大学37MCS-51串行通信波特率:•方式0波特率=fOSC/12,fOSC为主机频率•方式2SMOD=1,波特率=fOSC/32;SMOD=0,波特率=fOSC/64;•方式1,3mod23212(256)soscfX波特率T1溢出率=12(256)oscfX北京交通大学38•方式2发送程序:以TB8为偶校验位,处理方法是数据写入SBUF之前,先将P写入TB8CLRTI;发送中断标志TI清零MOVA,R0;取数据MOVC,P;奇偶校验位送TB8MOVTB8,CMOVSBUF,A;数据写入,启动发送北京交通大学39接收程序•若附加第九位数据为偶校验位,接收程序中应作校验处理CLRRI;收到一帧数据后清RIMOVA,SBUF;前八位数据送AMOVC,P;正确P=0,RB=0。P=1,RB=1JNCPD0;P=0,判RB8=0否JN
本文标题:51单片机串行通信接口
链接地址:https://www.777doc.com/doc-308805 .html