单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第8章 串行通信基础理论,1 串行通信的基本概念,2 单片机串行口,3 串行口工作方式,第8章 串行通信基础理论1 串行通信的基本概念,1,1 串行通信的基本概念,计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。,通信有两种方式:,并行通信,串行通信,1 串行通信的基本概念计算机通信是指计算机与外部设备或计算机,2,1 串行通信的基本概念,并行通信通常是将数据字节的各位用多条数据线同时进行传送。,1 串行通信的基本概念并行通信通常是将数据字节的各位用多条数,3,1 串行通信的基本概念,优点:并行通信控制简单、传输速度快;,缺点:由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。,1 串行通信的基本概念优点:并行通信控制简单、传输速度快;,4,1 串行通信的基本概念,串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。,1 串行通信的基本概念串行通信是将数据字节分成一位一位的形式,5,1 串行通信的基本概念,优点:传输线少,长距离传送时成本低,且 可以利用电话网等现成的设备,,缺点:但数据的传送控制比并行通信复杂。,1 串行通信的基本概念优点:传输线少,长距离传送时成本低,且,6,1 串行通信的基本概念,异步通信与同步通信,1、异步通信,异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。,1 串行通信的基本概念异步通信与同步通信1、异步通信,7,1 串行通信的基本概念,异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间是异步的(字符之间不一定有“位间隔”的整数倍的关系),但同一字符内的各位是同步的(各位之间的距离均为“位间隔”的整数倍)。,1 串行通信的基本概念异步通信是以字符(构成的帧)为单位进行,8,1 串行通信的基本概念,异步通信的数据格式:,异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加23位用于起止位,各帧之间还有间隔,因此传输效率不高。,1 串行通信的基本概念异步通信的数据格式:,9,1 串行通信的基本概念,2、同步通信,同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。,1 串行通信的基本概念2、同步通信,10,1 串行通信的基本概念,串行通信的传输方向,1、单工,单工是指数据传输仅能沿一个方向,不能实现反向传输。,2、半双工,半双工是指数据传输可以沿两个方向,但需要分时进行。,3、全双工,全双工是指数据可以同时进行双向传输。,1 串行通信的基本概念串行通信的传输方向,11,1 串行通信的基本概念,信号的调制与解调,利用调制器(Modulator)把数字信号转换成模拟信号,然后送到通信线路上去,再由解调器(Demodulator)把从通信线路上收到的模拟信号转换成数字信号。由于通信是双向的,调制器和解调器合并在一个装置中,这就是调制解调器MODEM,。,1 串行通信的基本概念信号的调制与解调,12,1 串行通信的基本概念,传输速率:波特率,波特率(Baud)是每秒钟传输二进制代码的位数,单位是:位秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的波特率为:,10位240个/秒=2400 bps,1 串行通信的基本概念传输速率:波特率,13,2 单片机串行口,串行口的结构:,有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。,2 单片机串行口 串行口的结构:,14,2 单片机串行口,串行口的控制寄存器,SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志:,SM0和SM1为工作方式选择位,可选择四种工作方式:,2 单片机串行口串行口的控制寄存器,15,2 单片机串行口,SM2,多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI(RB80时不激活RI,收到的信息丢弃;RB81时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走)。当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。,在方式0时,SM2必须是0。在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1。,REN,允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。,TB8,在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。,2 单片机串行口SM2,多机通信控制位,主要用于方式2和方式,16,2 单片机串行口,RB8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。,TI,发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。,RI,接收中断标志位。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请。,2 单片机串行口,17,3 串行口工作方式,方式0:,方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。,1、方式0输出,3 串行口工作方式 方式0:,18,3 串行口工作方式,2、方式0输入,3 串行口工作方式 2、方式0输入,19,3 串行口工作方式,方式1:,方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。,3 串行口工作方式 方式1:,20,3 串行口工作方式,方式2和方式3:,方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚。,3 串行口工作方式方式2和方式3:,21,3 串行口工作方式,四、波特率的计算,方式0和方式2的波特率:固定,,方式1和方式3的波特率:可变,由定时器T1的溢出率来决定。,波特率计算公式:,方式0的波特率=fosc/12,方式2的波特率=(2,SMOD,/64)*fosc,方式1的波特率=(2,SMOD,/32)*(T1溢出率),方式3的波特率=(2,SMOD,/32)*(T1溢出率),3 串行口工作方式四、波特率的计算,22,3 串行口工作方式,串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:,确定T1的工作方式(编程TMOD寄存器);,计算T1的初值,装载TH1、TL1;,启动T1(编程TCON中的TR1位);,确定串行口控制(编程SCON寄存器);,串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。,3 串行口工作方式串行口工作之前,应对其进行初始化,主要是,23,设置串行口关键寄存器,定时控制寄存器TMOD,定时计数寄存器TH1,TL1,串行控制寄存器SCON,电源控制寄存器PCOM,中断设置(编程IE、IP寄存器),启动T1,设置串行口关键寄存器定时控制寄存器TMOD,24,根据波特率,晶振频率计算初值:,设晶振频率为11.0592MHZ,51机以串口工作方式1,波特率为9600bps,,初值,=0 xfa(加倍),0 xfd(不加倍),根据波特率,晶振频率计算初值:设晶振频率为11.0592M,25,设置串行口关键代码,TMOD=0 x20;,TH1=0 xfa;,TL1=0 xfa;,SCON=0 x50;,PCON=0 x80;,EA=1;,ES=1;,TR1=1;,设置串行口关键代码TMOD=0 x20;,26,串行口使用关键代码,发送端关键代码,:,TI=0 ;,清发送标志位,SBUF=Sdata;,发送数据赋串行 缓冲寄存器,While(!TI);,等待数据发送完毕,串行口使用关键代码发送端关键代码:,27,串行口使用关键代码,接收端关键代码,:,ES=0,;,关串行中断,SBUF=Sdata;,取走串行缓冲寄存器数据,RI=0;,清接收标志位,准备接收下一个数据,ES=1;,开串行中断,串行口使用关键代码接收端关键代码:,28,本章重点,异步通信的帧格式,波特率概念:一定要相同才能通讯,设置串行口有关寄存器,SBUF,TMOD,TH1,TL1,PCOM,TR1,发送端代码,:,SBUF,TI,接收端代码,:,SBUF,RI,本章重点异步通信的帧格式,29,