您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片微机原理及应用课件 第10章 串行通信及其接口
第10章串行通信及其接口•10.2串行通信基础•10.2MCS-51串行通信•10.3MCS-51串行通信工作方式10.1串行通信基础•一、串行通信的基本概念•串行通信:是将数据的各位一位一位地依次传送。传送距离较远,适合于计算机之间、计算机与外部设备之间的远距离通信。•并行通信:指数据各位同时传送。速度快、效率高、距离短。•串行通信有同步通信和异步通信两种方式:返回本章首页同步字符CRC字符开始终止数据块图9-5同步通信数据格式返回本节•同步通信:每个数据块开始时,发送一个或两个同步字符,使发送和接收双方取得同步,数据块各字符间取消了起始位和发送位。如发送的数据之间有间隔时,用发送同步字符填充。(较少使用)•同步字符由用户规定,如:01111110•同步传送时,收、发双方要求时钟和频率一致。(较少使用)图9-4异步串行通信数据帧格式•异步通信:数据在线路上是以一个字(或字符)为单位来传送的。不需严格的同步时钟控制,也不需数据流的连续性。在串行通信中常用。•数据帧:包含起始位(“0”电平),数据位(从低位到高位逐位数据传送),奇偶校验位、停止位(用“1”表示)。•线路不传送数据时,应保持为“1”(保证起始处有一个下跳沿)。单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字符帧传送。字符帧由发送端一帧一帧地传送,接收端通过传输线一帧一帧地接收。在异步通信中,收、发两方必须事先规定两件事:1.字符帧的帧格式字符帧由四部分组成,分别是起始位、数据位、奇偶校验位、停止位。如图所示:1)起始位:位于字符帧的开头,只占一位,始终位逻辑低电平,表示发送端开始发送一帧数据。2)数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后。3)奇偶校验位:占一位,用于对字符传送作正确性检查,因此奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定。4)停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位,表示一帧字符传送完毕。如:ASCII码帧(字符)为10位。其中:数据7位起始位、校验位、停止位各一位。起始位数据位(0)数据位(1)数据位(n-1)奇偶位停止位停止位起始位一帧数据字符帧格式2.传送的速率串行通信的速率用波特率来表示,所谓波特率就是指一秒钟传送数据位的个数。每秒钟传送一个数据位就是1波特。即:1波特=1bps(位/秒)。在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢。如120个字符(帧)/秒,每帧数据有10位,则传输速率为1200波特率。(1200bit/s)接收器图9-1单工方式发送器1.单向数据传送:数据只向一个方向传送二、串行通信数据传送方向接收器接收器发送器发送器数据流图9-2半双工方式2.半双向数据传送:用一根传送线既作输入又作输出,但通信双方不能同时收、发数据。要改变数据传送方向,必须进行通信双方的收、发设备的开关切换。发送器接收器数据流接收器发送器图9-3全双工方式3.全双向数据传送:由两根传送线来发送和接收数据,双方可同时进行发送和接收。串行数据通信要解决两个关键技术问题,一个是数据传送,另一个是数据转换。所谓数据传送就是指数据以什么形式进行传送。所谓数据转换就是指单片机在接受数据时,如何把接收到的串行数据转化为并行数据,单片机在发送数据时,如何把并行数据转换为串行数据进行发送。所有串行接口电路都是以并行数据形式和CPU接口,以串行数据形式和外部通信接口。•通用异步接收发送器UART接收器发送器控制部件串行输入时钟复位并行输入时钟控制信号并行输出数据总线串行输出(对外)状态信息控制信息UART基本组成框图UART主要功能:1、数据的串化、反串化数据的串化:将并行数据变为串行数据;(发送器)数据的反串化:将串行数据变为并行数据;(接收器)2、格式信息的插入和删除格式信息:异步通信中的起始位、校验位、停止位等。串化过程:将格式信息插入和数据一起构成一个完整的数据帧。反串化过程:滤出格式信息,保留数据位。3、错误检验检验数据通信过程是否正确。•10.2MCS-51串行通信•MCS-51单片机将一个“全双工串行通信接口电路”集成在单片机内。数据转换串行接口电路为用户提供了两个串行口缓冲寄存器(SBUF),一个称为发送缓存器,它的用途是接收片内总线送来的数据,即发送缓冲器只能写不能读。发送缓冲器中的数据通过TXD引脚向外传送。另一个称为接收缓冲器,它的用途是向片内总线发送数据,即接收缓冲器只能读不能写。接收缓冲器通过RXD引脚接收数据。因为这两个缓冲器一个只能写,一个只能读,所以共用一个地址99H。串行接口电路如图所示。移位时钟发送SBUF接收SBUF输入移位寄存器单片机内部总线TXD串行输出RXD串行输入RI(接收中断)TI(发送中断MCS-51串行口寄存器结构•串行接收的双缓冲结构移位寄存器数据缓冲器SBUF一帧数据(8位)接收完,由移位寄存器装入SBUF,立即接收下一帧。要求主机应立即将SBUF中数据取走。否则前一帧数据将丢失。发送是由CPU操纵的,不会发生帧重叠错误。将数据写入SBUF,(自动)通过移位脉冲一位一位地发送出去。二级10.2.1MCS-51单片机串行通信的控制寄存器与串行通信有关的寄存器有三个1.串行口控制寄存器(SCON)SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于串行数据通信的控制。单元地址为98H,位地址为98H~9FH。寄存器的内容及位地址表示如下:位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRI各位的说明如下:1)SM0、SM1——串行口工作方式选择位2)SM2——允许方式2、3的多机通信控制位在方式2和3中,若SM2=1且接收到的第九位数据(RB8)为1,才将接收到的前8位数据送入接收SBUF中,并置位RI产生中断请求;否则丢弃前8位数据。若SM2=0,则不论第九位数据(RB8)为1还是为0,都将前8位送入接收SBUF中,并产生中断请求。方式0时,SM2必须置0。多机通信的机制:地址帧数据帧地址帧被确认的从机,复位SM2=0,接收RB8=0的数据。RR8=1地址帧RR8=0数据帧SM2=1多机方式SM2=0直通方式3)REN——允许接收位(通过软件值位、复位)REN=0禁止接收数据REN=1允许接收数据4)TB8——发送数据位8在方式2、3时,TB8的内容是要发送的第9位数据(格式信息)在多机通信中,通过TB8状态来表示主机发送的是地址帧(1),还是数据帧(0),其值由用户通过软件来设置。5)RB8——接收数据位8(和TB8对应)在方式2、3时,RB8是存放接收的第9位数据。可判断是地址帧(1),还是数据帧(0)。在方式1时,RB8是接收的停止位。在方式0时,不使用RB8AB单机方式主机从机2从机1从机n多机方式6)TI——发送中断标志位在方式0时,发送完第8位数据后,该位由硬件置位。在其它方式下,于发送停止位开始时,由硬件置位。因此,TI=1表示帧发送结束,其状态既可供软件查询使用,也可请求中断。TI必须由软件清“0”。7)RI——接收中断标志位在方式0时,接收完第8位数据后,该位由硬件置位。在其它方式下,于接收到停止位中间时,该位由硬件置位。因此,RI=1表示帧接收结束,其状态既可供软件查询使用,也可请求中断。RI由必须软件清“0”。2.电源控制寄存器(PCON)PCON不可位寻址,字节地址为87H。它主要是为CHMOS型单片机80C51的电源控制而设置的专用寄存器。其内容如下:与串行通信有关的只有D7位(SMOD),该位为波特率倍增位,当SMOD=1时,串行口波特率增加一倍,当SMOD=0时,串行口波特率为设定值。当系统复位时,SMOD=0。位序D7D6D5D4D3D2D1D0位符号SMOD///GF1GF0PDIDL3.中断允许控制寄存器(IE)进行字节操作时,寄存器地址为0A8H。按位操作时,各位的地址为0A8H~0AFH。寄存器的内容及位地址表示如下:位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA//ESET1EX1ET0EX0ES:串口中断允许位ES=0:禁止串口中断ES=1:允许串口中断8.3MCS-51串行通信工作方式串行口的工作方式由SM0和SM1确定,编码和功能如表所示。方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由T1的溢出率决定。SM0SM1方式功能说明波特率00方式0移位寄存器方式fosc/1201方式18位UART可变10方式29位UARTfosc/64或者fosc/3211方式39位UART可变方式0发送时序10.3.1串行工作方式0(移位方式)1.数据输出(发送)并口扩展P147当数据写入SBUF后,数据从RXD(P3.0)端在移位脉冲TXD(P3.1fosc/12)的控制下,逐位移入74LS164,74LS164能完成数据的串并转换。当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU响应中断,则从0023H单元开始执行串行口中断服务程序,数据由74LS164并行输出。其接口逻辑如图所示。RXDTXD0D7D。。。。。。CLK74LS1648051STB0.1PAB图为接口逻辑移位数据:一帧8位。低位在前,高位在后,没有起始位、停止位。图为方式0接收时序2.数据输入(接收)要实现接收数据,必须首先把SCON中的允许接收位REN设置为1。当REN设置为1时,数据就在移位脉冲的控制下,从RXD端输入。当接收到8位数据时,置位接收中断标志位RI,发生中断请求。其接口逻辑如图所示。由逻辑图可知,通过外接74LS165,串行口能够实现数据的并行输入。(并串转换)RXDTXD0D7D......CLK74LS1658051STB0.1PQ图为外接移位寄存器输入•数据输出(发送):当8位数据全部移出后,TI被自动置位。•数据输入(接收):当REN=1(允许接收),接收到8位数据时,RI被自动置1。【例】使用74LS164的并行输出端接8支发光二极管,利用它的串入并出功能,把发光二极管从左到右依次点亮,并反复循环。假定发光二极管为共阴极接法。RXDTXD0D7D.........CLK74LS1648051AB。。。。。。STB0.1P图为电路设计解:电路如图。软件部分如下:ORG0000HLJMPMAINORG1000HMAIN:MOVSCON,#00H;串行口工作在方式0CLRES;禁止串行中断MOVA,#80H;发光二极管从左边亮起DELR:CLRP1.0;关闭并行输出MOVSBUF,A;串行输出WAINT:JNBTI,WAIT;状态查询SETBP1.0;开启并行输出ACALLDELAY;调用延时子程序CLRTI;清发送中断标志RRA;发光右移AJMPDELR;继续EDN10.3.2串行工作方式1方式1为10位一帧的异步串行通信方式。其帧格式为1个起始位、8个数据位和1个停止位。如图所示。起始位0D1D2D3D4D5D6D7D停止位图为方式1的帧格式1.数据输出(发送)数据写入SBUF后,开始发送,此时由硬件自动加入起始位和停止位,构成一帧数据,由TXD串行输出。输出一帧数据后,TXD保持在高电平状态下(停止位1),并将TI置位,通知CPU可以进行下一个字符的发送。图为方式1发送时序图为方式1接收时序2.数据输入(接收)被动状态当REN=1且接收到起始位后(1到0),在移位脉冲的控制下,把接收到的数据移入接收缓冲寄存器(SBUF)中,直到停止位到来后,把停止位送入RB8(1)中,并置位RI,通知CPU接收到一个字符。3.波特率的设定工作在方式1时,其波特率是可变的,波特率的计算公式为:其中,SMOD为PCON寄存器最高位的值,其值为1或0。波特率=2^SMOD*定时器1的溢出率/32当定
本文标题:单片微机原理及应用课件 第10章 串行通信及其接口
链接地址:https://www.777doc.com/doc-314736 .html