资源描述
单击此处编辑母版标题样式,单击此处编辑母版副标题样式,第4章 单片机的串行通信,4.1,串行通信的概念,4.2,MCS-51,串行口的结构及工作方式,4.3 串行通信的应用,4.4,小结,习题,本章主要介绍单片机串行通信,I/O,接口的结构、串行通信控制寄存器、单片机串行通信的工作方式以及串行通信波特率。通过对本章的学习,读者应掌握和了解以下知识:,MCS-51,单片机串行口的结构,MCS-51,单片机串行通信的四种工作方式和特点,MCS-51,单片机串行通信波特率的设置方法,利用,MCS-51,单片机串行口扩展,I/O,口线的技术,MCS-51,单片机的双机通信和多机通信的基本原理,本章学习目标,CPU,与外设之间的信息交换和传输称为通信,通常有并行和串行两种通信方式。用单片机的多个,I/O,口线同时传送若干个数码,称为并行通信方式。其优点在于传输速度较快,缺点是占用通信线较多,不适合远程通信。另一种通信方式是从单片机的一个,I/O,口线逐位传输二进制编码数据,称为串行通信。其优点是占用,I/O,口线少,适合远程通信和上、下位机之间通信,缺点是通信速度比并行通信慢得多。,4.1 串行通信的概念,在串行通信中,数据是在两个不同的站之间传送的。按照数据传送的方向,串行通信可分为3种制式。,(1)单工制式信息只能沿着一个方向传输。例如,甲设备只能发送,乙设备只能接收。只需一条数据线,如图4-1(,a),所示。,4.1.1 串行通信的制式,(2)半双工制式信息可以沿一条信号线的两个方向传输,但不能同时实现双向传输,只能交替地收或发。甲、乙两站之间只要一条数据线和一条接地线。收发开关是由软件控制的,通过半双工通信协议进行收发功能切换。如图4-1(,b),所示。,(3)全双工方式使用两条相互独立的数据线,分别传输两路方向相反的信息,使收和发能同时进行。因此全双工方式要占用单片机的两个,I/O,脚,需要包括地线在内的三根传输线。如图4-1(,c),所示。,图4-1 点-点串行通信的制式,1.异步方式,在异步通信中,数据通常是以字符为单位组成字符帧传送的。字符帧由发送端逐帧发送,接收端逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收。这两个时钟源可以彼此独立、互不同步。,4.1.2 串行通信的方式,(1)字符格式的约定,MCS-51,单片机的字符格式约定10位或11位二进制码为一帧数据。其中每一位都有自己的定义:起始位、二进制数据位、地址/数据识别位、奇偶校验位或者停止位。图4-2(,a),示出了三种典型的异步帧格式。,图4-2 串行通信数据格式,(2)波特率的约定波特率即传送二进制码的速率,其单位为,b/s,或1/,s。,波特率越高,数据传输速度越快。在异步通信中,接收端和发送端保持相同的传送波特率,并以字符数据的起始位与发送设备保持同步。,(3)其他约定起始位、奇偶校验位和停止位的约定,在同一次传送过程中必须保持一致,这样才能成功地传送数据。,异步方式并不要求两帧数据之间的时间间隔为常数。如果接收机接收到了一个起始位,就按波特率依次接收以后的各位数据,直至收到了停止位为止。在传输数据的过程中,规定了用符号0和1表示二进制数码,还规定了逻辑0为空号(,SPACE),,逻辑,l,为传号(,MARK)。,异步通信在线路空闲时总处于传号状态。总之,异步通信方式是按帧传送数据的工作方式,这种方式的优点是可靠性高,能及时发现通信中的错误码;缺点是通信效率比同步方式低。,2.同步方式,将一大批数据分成几个数据块,数据块之间用同步字符予以隔开,而传输的各位二进制码之间都没有间隔,所以同步方式是按数据块传送数据的,一次可以传送完一大批数据。,同步方式中,每一位数据占用的传输时间都是相等的,接收机的接收时钟应该和发送机的发送时钟以及传送的码元同步。图4-2(,b),中给出了典型的数据格式。与图4-2(,a),相比,同步通信方式的数据格式中没有两帧之间的空闲时间,也没有一帧之内的识别标志位。显然这种方式可以大大提高通信速度,常用于高速计算机的大容量数据通信。,MCS-51,单片机有一个全双工异步串行,I/O,口,占用,P3.0,和,P3.1,两个管脚,为,P3,口的第二功能,即,P3.0,是串行数据接收端(,RXD),P3.1,是串行数据发送端(,TXD)。,MCS-51,内部的可编程全双工串行通信接口,具有通用异步接收/发送器(,UART),的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。,4.2,MCS-51,串行口的结构及工作方式,MCS-51,单片机由两个独立的接收缓冲寄存器、发送缓冲寄存器,SBUF、,发送控制器、接收控制器、输入移位寄存器、输出移位寄存器和输出控制门、波特率发生器等组成。串行口结构如图4-3所示。通常定时器,T1,作为串行口波特率发生器使用。与串行口有关的特殊功能寄存器有,SBUF、SCON、PCON,,与串行口中断有关的特殊功能寄存器有,IE、IP。,4.2.1 单片机串行口的结构及串行口控制寄存器,图4-3,MCS-51,串行口组成,1.串行口数据缓冲器,SBUF,SBUF,是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。两个缓冲器共用一个字节地址99,H,,可通过指令对,SBUF,的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。,CPU,写,SBUF,,执行,MOV SBUF,A,指令,就是启动发送,将,A,累加器中的数据通过,SBUF,发送;,CPU,读,SBUF,,执行,MOV A,SBUF,指令,就是读接收缓冲器,将接收到的数据读入,A,累加器。串行口对外也有两条独立的收发信号线,RXD(P3.0)、TXD(P3.1),,因此可以同时发送、接收数据,实现全双工通信。,2.串行口控制寄存器,SCON,SCON,是可以进行位寻址的8位控制寄存器,地址为98,H。SCON,的各位的定义和功能如下:,SCON.7,.6,.5,.4,.3,.2,.1,SCON.0,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,SM0、SM1:,串行口工作方式选择位(内容见4.2.2节)。,SM2:,多机通信控制位。具体用法见4.3.3节。,REN:,串行接收允许位。由软件置位或清除。软件置1时,串行口允许接收,清零后禁止接收。,TB8:,在方式2和方式3中是发送的第9位数据。,RB8:,在方式2和方式3中是接收的第9位数据。,TI:,发送中断标志位。发送结束时由硬件置位。该位必须用软件清零。,RI:,接收中断标志位。结束接收时由硬件置位。该位必须用软件清零。,3.电源控制寄存器,PCON,PCON,的各位的定义和功能如下:,PCON.7,.6,.5,.4,.3,.2,.1,PCON.0,SMOD,PCON,是8位特殊功能寄存器,地址为87,H,,不可进行位寻址。它的低7位全部用于80,C51/80C31,子系列单片机的电源控制。只有,PCON,的最高位,SMOD,位用于,MCS-5l,系列各类单片机串行口波特率系数的控制位:当,SMODl,时,方式1、2、3的波特率加倍,否则不加倍。,单片机串行口有4种工作方式,用特殊功能寄存器,SCON,中的,SM0、SM1,两位进行设定,见表4-1。(见书60页),4.2.2 串行口的4种工作方式,1.方式0,串行接口工作方式0为同步移位寄存器方式,多用于,I/O,口的扩展,其波特率是固定的,为,f,osc,/12。TXD,引脚输出同步移位脉冲,,RXD,引脚串行输入输出数据。发送和接收都以8位数据为一帧,发送时低位在前,高位在后。接收时也是低位在前,高位在后。,(1)方式0发送数据从,RXD,引脚串行输出,,TXD,引脚输出同步脉冲。当一个数据写入,SBUF,时,串行口将8位数据以,f,osc,/12,的固定波特率从,RXD,引脚输出,由低位到高位输出。发送完毕置位中断标志,TI1,,请求中断。再次发送数据之前,必须用软件将,TI,清零。,(2)方式0接收在满足,REN1,和,RI=0,的条件下,串行口允许输入。此时,,RXD,为数据输入端,,TXD,为同步信号输出端,接收器也以,f,osc,/12,的波特率对,RXD,引脚输入的数据进行接收。当接收器接收完8位数据后,置中断标志,RI1,,请求中断。,当工作在方式0时,必须使,SCON,寄存器中的,SM2,位为“0”。方式0发送或接收完数据后由硬件置位,TI,或,RI,CPU,在响应中断后要用软件清除,TI,或,RI,标志。,2.方式1,在方式,1,时,串行口被设置为波特率可变的8位异步通信接口。发送/接收1帧数据为10位,包括1位起始位、8位数据位(先低位后高位)和1位停止位。,(1)方式,1,发送串行口以方式,1,发送时,数据位由,TXD,端输出。,CPU,通过执行写入发送缓冲器,SBUF,的指令启动发送。当数据发送完毕,置位中断标志位,TI。,(2),方式1接收当,REN=1,时,串行口处于方式1接收状态。当采样到发送端发送的起始位时,则启动接收器,接收到的数据移位进入,SBUF。,当接收完毕,置位中断标志位,RI。,串行口中断标志位,TI、RI,由硬件置位,需要用指令清零。,3.方式2,串行口工作为方式2时,被定义为9位异步通信接口。发送/接收1帧数据为11位,包括1位起始位、8位数据位、1位控制/校验位和1位停止位。控制/校验位为第9位数据。,(1)方式2发送发送数据由,TXD,端输出。要发送的8位数据在,SBUF,中,第9位数据在,SCON,中的,TB8,位。,TB8,可由软件置位或清零,可作为多机通信中地址/数据信息的标志位,也可作为数据的奇偶校验位。,(2)方式2接收当,REN=1,时,串行口以方式2接收数据。方式2的接收与方式1基本相似。当满足,RI=0,,且,SM20,或接收到的第9位数据为1时,前8位数据移位进入,SBUF,,第9位数据送入,SCON,中的,RB8,位,置位中断标志位,RI;,否则接收无效,也不置位,RI。,4.方式3,方式3为波特率可变的9位异步通信方式,除了波特率有所区别之外,其余同方式2。,串行口的通信波特率反映了串行传输数据的速率。通信波特率的选用不仅和所选通信设备、传输距离有关,还受传输线状况所制约。,1.方式0的波特率,在方式0下,串行口通信的波特率是固定的,其值为,f,osc,/12(f,osc,为主机频率)。,4.2.3 串行通信的波特率,2.方式2的波特率,在方式2下,通信波特率为,f,osc,/32,或,f,osc,/64,,根据特殊功能寄存器,PCON,中,SMOD,位的状态来决定串行口在哪个波特率下工作。选择公式为:,若,SMOD0,,则所选波特率为,f,osc,/64;,若,SMOD1,,则波特率为,f,osc,/32。,3.方式1或方式3的波特率,在这两种方式下,串行口波特率是由定时器的溢出率决定的,因而波特率是可变的。波特率的公式为:,定时器,T1,的溢出率计算公式为:,式中:,K,为定时器,T1,的位数;若定时器,T1,方式0,则,K13;,若定时器,T1,方式1,则,Kl6;,若定时器,T1,方式2或方式3,则,K8。,定时器,T1,作为串行口波特率发生器使用时,通常选择工作方式2。因为定时器,T1,在方式2下,被设定为重装计数器形式(当,TL1,由全“1”变为全“0”时,,TH1,内容重装,TL1,TH1,不变)。,串行口方式1或方式3下所选波特率需要通过计算来确定,T1,初值,因为该初值要在定时器,T1,初始化时使用。为避免复杂的计算,波特率和定时器,T1,初值的关系列于表4-2中以供参考。(见书62页),由4.2节可知,,MCS-51,单片机串行口的工作方式0为同步移位寄存器方式,允许使用移位寄存器芯片扩展一个或多个8位并行,I/O,口。所以若串行口别无它用时,就可用来扩展并行,I/O,口,这种方法不占用片外,RAM,地址,而且还能简化单片机系统的硬件结构。但缺点是操作速度较慢,且扩展芯片越多,速度越慢。,4.3 串行通信的应用,4.3.1 利用串行口扩展,I/O,口,1.用74,LS165,扩展并行输入口,图4-4是利用两片74,LS165,首尾相连扩展两个8位并行输入口的实用电路。74,LS165,是并行输入串行输出的8位移位寄存器。当移位/置入端,S/L,由“1”变为“0”时,并行输入端的数据被置入各寄存器。当,S/L1,,且时钟禁止端(15脚)为低时,在时钟脉冲的作用下,数据由,Q,A,向,Q,H,方向移动(,SIN,为串行输入端)。图中,RXD(P3.0),作为串行输入端与74,LS165,的串行输出端相连,,TXD(P3.1),为移位脉冲输出端,与74,LS165,芯片的移位脉冲输入端连接,用一根,I/O,口线来控制移位与置位,图中用,P1.0,与74,LS165,芯片的移位/置入端,S/L,相连。,图4-4 利用串行口扩展并行输入口原理图,2.用74,LS164,扩展并行输出口,如图4-5所示是利用两片74,LS164,首尾相连来扩展两个8位并行输出口的实用电路。74,LS164,是8位串入并出移位寄存器。由于74,LS164,无输出控制端,故在串行输入过程中,输出端会不断地变化。所以一般应在74,LS164,和输出装置之间加接输出控制门,以保证串行输入结束后再输出数据。在图4-5中,,RXD(P3.0),作为串行输出与74,LS164,的数据输入端(1、2)相连,,TXD(P3.1),作为移位脉冲输出与74,LS164,的时钟脉冲输入端(8)相连,用,P1.0,口线控制74,LS164,的清除端(9)。具体应用见第10章“串行口的应用”。,图4-5 利用串行口扩展并行输出口原理图,如果两个8051应用系统相距很近,将它们的串行口直接相连,即可实现双机通信。采用图4-6所示的两个8051串行口直接相连的方法,通信距离只限于1.5,m,以内。如果要增加通信距离,可以在两个单片机之间采用标准异步串行接口连接,如使用,RS-232C、RS-422A,及,RS-485,等串行接口总线。,4.3.2 双机通信,图4-6,MCS-51,系统双机通信电路,通常,MCS-51,的多机通信采用主从式多机通信方式,利用这种方式可以构成各种分布式控制系统。在这种方式中,只有一台主机,有多台从机。主机发送的信息可以传到各从机或指定的从机,各从机发送的信息只能被主机接收。其连接电路如图4-7所示。,4.3.3 多机通信,图4-7,MCS-51,多机通信连接图,多机通信中,要保证主机与所选择的从机实现可靠的通信,必须保证通信接口具有识别功能。,MCS-51,串行控制寄存器中的,SM2,就是为了满足这一要求而设置的多机通信控制位。多机通信控制原理为,在串行口以方式2或方式3接收时,若,SM21,,表示置多机通信功能位,这时出现两种可能的情况:,(1)接收到第9位数据为1时,数据装入,SBUF,,并置,RI1,,向,CPU,发出中断请求。,(2)接收到第9位数据为0,不产生中断,信息将被抛弃。,若,SM20,,则接收到的第9位信息无论是0还是1,都产生,RI1,的中断标志,接收到的数据装入,SBUF。,根据这个功能,便可实现多个,MCS-51,系统的串行通信。,串行口不同工作方式以及多机通信的具体应用详见第10章。,串行通信是通信方式的一种,随着科技的发展,利用单片机串行口构成分布式实时控制系统的应用越来越多。本章主要介绍了串行通信的基本概念、,MCS-51,单片机串行口的结构、串行通信控制寄存器、单片机串行工作方式,最后介绍了单片机串行通信的波特率设置方法和单片机串行口的应用。,4.4,小结,4-1 并行通信与串行通信的主要区别是什么?它们各自有什么优缺点?,4-2 异步通信与同步通信的主要区别是什么?,4-3 8051串行口设有几个控制寄存器?它们的作用是什么?,4-4 为什么定时器,T1,用作串行口波特率发生器时,常采用工作方式2?,4-5 试述,MCS-51,单片机串行口的4种工作方式、工作原理、字符格式及波特率的产生方法。,4-6 串行口多机通信的原理是什么?与双机通信的区别是什么?,习题,
展开阅读全文