第八讲串行口.ppt

上传人:本田雅阁 文档编号:2562645 上传时间:2019-04-08 格式:PPT 页数:60 大小:689.01KB
返回 下载 相关 举报
第八讲串行口.ppt_第1页
第1页 / 共60页
第八讲串行口.ppt_第2页
第2页 / 共60页
第八讲串行口.ppt_第3页
第3页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第八讲串行口.ppt》由会员分享,可在线阅读,更多相关《第八讲串行口.ppt(60页珍藏版)》请在三一文库上搜索。

1、第一节 串行通信 计算机与外界的信息交换称为通信。通信的基本方式可分为并行通信和串行通信两种。 所谓并行通信是指数据的各位同时在多根数据线上发送或接收。 串行通信是数据的各位在同一根数据线上依次逐位发送或接收。,第八章串行通信技术,目前串行通信在单片机双机、多机以及单片机与PC机之间的通信等方面得到了广泛应用。,一、异步通信和同步通信,串行通信按同步方式可分为异步通信和同步通信两种基本通信方式。,1. 同步通信(Synchronous Communication) 同步通信是一种连续传送数据的通信方式,一次通信传送多个字符数据,称为一帧信息。数据传输速率较高,通常可达56000bps或更高。其

2、缺点是要求发送时钟和接收时钟保持严格同步。,图8.3 同步通信数据传送格式,2. 异步通信(Asynchronous Communication) 在异步通信中,数据通常是以字符或字节为单位组成数据帧进行传送的。收、发端各有一套彼此独立,互不同步的通信机构,由于收发数据的帧格式相同,因此可以相互识别接收到的数据信息。,同步通信的数据帧格式如图8.3所示。,异步通信信息帧格式如图8.4所示。,(1) 起始位: 在没有数据传送时,通信线上处于逻辑“1”状态。当发送端要发送1个字符数据时,首先发送1个逻辑“0”信号,这个低电平便是帧格式的起始位。其作用是向接收端表示发送端开始发送一帧数据。接收端检测

3、到这个低电平后,就准备接收数据信号。,(2) 数据位: 在起始位之后,发送端发出(或接收端接收)的是数据位,数据的位数没有严格的限制,58位均可。由低位到高位逐位传送。,(3) 奇偶校验位: 数据位发送完(接收完)之后,可发送一位用来检验数据在传送过程中是否出错的奇偶校验位。奇偶校验是收发双方预先约定好的差错检验方式之一。有时也可不用奇偶校验。,(4) 停止位: 字符帧格式的最后部分是停止位,逻辑“1”电平有效,它可占1/2位、1位或2位(在串行通信时每位的传送时间是固定的)。停止位表示传送一帧信息的结束,也为发送下一帧信息作好准备。,二、串行通信的波特率,波特率(Baud Rate)是串行通

4、信中一个重要概念,它是指传输数据的速率, 亦称比特率。波特率的定义是每秒传输二进制数码的位数。如:波特率为1200bps是指每秒钟能传输1200位二进制数码。,波特率的倒数即为每位数据传输时间。例如:波特率为1200bps,每位的传输时间为:,波特率和字符帧的传输速率不同,若采用图8.4的数据帧格式,并且数据帧连续传送(无空闲位),则实际的字符传输速率为1200/11=108.08帧/秒。,三、 串行通信的制式,1. 单工制式(Simplex) 单工制式是指甲乙双方通信只能单向传送数据。单工制式如图8.5所示。,在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可分为三种制式。

5、,2. 半双工制式(Half duplex) 半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能发送。半双工制式如图8.6所示。,3. 全双工制式(Full duplex) 全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种高。全双工制式如图8.7所示。,四、 串行通信的校验,串行通信的目的不只是传送数据信息,更重要的是应确保准确无误地传送。因此必须考虑在通信过程中对数据差错进行校验,校验方法有奇偶校验、累加和校验以及循环冗余码校验等。,1. 奇偶校

6、验,奇偶校验的特点是按字符校验,即在发送每个字符数据之后都附加一位奇偶校验位(1或0),当设置为奇校验时,数据中1的个数与校验位1的个数之和应为奇数;反之则为偶校验。收、发双方应具有一致的差错检验设置,当接收1帧字符时,对1的个数进行检验,若奇偶性(收、发双方)一致则说明传输正确。奇偶校验只能检测到那种影响奇偶位数的错误,比较低级,一般只用在异步通信中。,2. 累加和校验,累加和校验是指发送方将所发送的数据块求和,并将“校验和”附加到数据块末尾。接收方接收数据时也是先对数据块求和,将所得结果与发送方的“校验和”进行比较,若两者相同,表示传送正确,若不同则表示传送出了差错。“校验和”的加法运算可

7、用逻辑加,也可用算术加。,3. 循环冗余码校验(CRC),循环冗余码校验的基本原理是将一个数据块看成一个位数很长的二进制数,然后用一个特定的数去除它,将余数作校验码附在数据块之后一起发送。接收端收到该数据块和校验码后,进行同样的运算来校验传送是否出错。目前CRC已广泛用于数据存储和数据通信中,并在国际上形成规范,市面上已有不少现成的CRC软件算法。,五、8051单片机的串行接口,8051内部有一个可编程全双工串行通信接口。该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。 下面将对其内部结构、工作方式以及波特率进行介绍。,1、串行接口的结构及寄存器,(1). 串行数据缓冲器

8、SBUF SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器,以便能以全双工方式进行通信。此外,在接收寄存器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,这样可以避免在数据接收过程中出现帧重叠错误。发送数据时,由于CPU是主动的,不会发生帧重叠错误,因此发送电路不需要双重缓冲结构。,在逻辑上,SBUF只有一个,它既表示发送寄存器,又表示接收寄存器,具有同一个单元地址99H。但在物理结构上,则有两个完全独立的SBUF,一个是发送缓冲寄存器SBUF,另一个是接收缓冲寄存器SBUF。如果CPU写SBUF,数据就会被送入发送寄存器准备发送;如果CPU读SBUF,则读入的数据一定来自接收缓冲器

9、。即CPU对SBUF的读写,实际上是分别访问上述两个不同的寄存器。,(2). 串行控制寄存器SCON,串行控制寄存器SCON用于设置串行口的工作方式、检测串行口的工作状态、控制发送与接收的状态等。它是一个既可以字节寻址又可以位寻址的8位特殊功能寄存器。其格式如图8.8所示。, SM0 SM1:串行口工作方式选择位。其状态组合所对应的工作方式如表8-1所示。,表8-1 串行口工作方式,SM2:多机通信控制器位。在方式0中,SM2必须设成0。在方式1中,当处于接收状态时,若SM2=1,则只有接收到有效的停止位“1”时,RI才能被激活成“1”(产生中断请求)。在方式2和方式3中,若SM2=0,串行口

10、以单机发送或接收方式工作,TI和RI以正常方式被激活并产生中断请求;若SM2=1,RB8=1时,RI被激活并产生中断请求。,TB8:方式2和方式3中要发送的第9位数据。该位由软件置位或复位。在方式2和方式3时,TB8是发送的第9位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=1表示地址,TB8=0表示数据。TB8还可用作奇偶校验位。,REN:串行接受允许控制位。该位由软件置位或复位。当REN=1,允许接收;当REN=0,禁止接收。,TI:发送中断标志位。TI=1,表示已结束一帧数据发送,可由软件查询TI位标志,也可以向CPU申请中断。 注意:TI在任何工作方式下都必

11、须由软件清0。,RB8:接收数据第9位。在方式2和方式3时,RB8存放接收到的第9位数据。RB8也可用作奇偶校验位。在方式1中,若SM2=0,则RB8是接收到的停止位。在方式0中,该位未用。,RI:接收中断标志位。RI=1,表示一帧数据接收结束。可由软件查询RI位标志,也可以向CPU申请中断。 注意:RI在任何工作方式下也都必须由软件清0。 在8051中,串行发送中断TI和接收中断RI的中断入口地址是同是0023H,因此在中断程序中必须由软件查询TI和RI的状态才能确定究竟是接收还是发送中断,进而作出相应的处理。单片机复位时,SCON所有位均清0。,图8.10 电源控制寄存器PCON的格式,S

12、MOD:串行口波特率倍增位。在工作方式1工作方式3时,若SMOD=1,则串行口波特率增加一倍。若SMOD=0,波特率不加倍。系统复位时,SMOD=0。,2. 电源控制寄存器PCON,六、串行口工作方式,8051串行通信共有4种工作方式,它们分别是方式0、方式1、方式2和方式3,由串行控制寄存器SCON中的SM0 SM1决定,如表8-1所示。,1. 工作方式0,在方式0下,串行口作为同步移位寄存器使用。此时SM2、RB8、TB8均应设置为0,用来扩展并行输入输出口。,(1)发送:TI=0时,执行“MOV SBUF,A”启动发送,8位数据由低位到高位从RXD引脚送出,TXD发送同步脉冲。发送完后,

13、由硬件置位TI。,(2)接收:RI=0,REN=1时启动接收,数据从RXD输入,TXD输出同步脉冲。8位数据接收完,由硬件置位RI。可通过“MOV A,SBUF”读取数据。,方式0的波特率为fosc/12,即一个机器周期发送或接收一位数据。P188页,2. 工作方式1,方式1是一帧10位的异步串行通信方式,包括1个起始位(0),8个数据位和一个停止位(1),其帧格式如下:,图8.11 方式1数据帧格式,(1) 数据发送,当TI=0时,执行“MOV SBUF,A”指令后开始发送,由硬件自动加入起始位和停止位,构成一帧数据,然后由TXD端串行输出。发送完后,TXD输出线维持在“1”状态下,并将SC

14、ON中的TI置1,表示一帧数据发送完毕。,(2) 数据接收,RI=0,REN=1时,接收电路采样RXD引脚,如出现由“1”变“0”跳变,认为有数据正在送来。,(3) 波特率(波特率发生器用T1来做,工作在方式2 ),波特率=2SMOD(T1溢出率)/32,对波特率需要说明的是,当串行口工作在方式1或方式3(波特率 可变),且要求波特率按规范取1200、2400、4800、9600时,若采用晶振12MHz和6MHz,按上述公式算出的T1定时初值将不是一个整数,因此会产生波特率误差而影响串行通信的同步性能。解决的方法只有调整单片机的晶振频率fosc,为此有一种频率为11.0592MHz的晶振,这样

15、可使计算出的T1初值为整数。表8-2列出了串行方式1或方式3在不同晶振时的常用波特率和误差。,表8.2 常用波特率和误差,3. 工作方式2和方式3,工作方式2和方式3都是11位异步收发串行通信方式,两者的差异仅在波特率上有所不同。,方式2:波特率=2SMODfosc/64(SMOD=0或1),(1) 数据发送,TI=0,发送数据前,先由软件设置TB8,可使用如下指令完成: SETB TB8 ; 将TB8位置1 CLR TB8 ; 将TB8位置0 然后再向SBUF写入8位数据,并以此来启动串行发送。一帧数据发送完毕后,CPU自动将TI置1,其过程与方式1相同。,(2) 数据接收,REN=1,RI

16、=0时,允许接收 若SM2=0,接收到的8位数据送SBUF,第9位数 据(无论0还是1)送RB8,RI置1。 若SM2=1,接收到的第9位数据为0,数据无效,不送SBUF;接收到的第8位数据为1,数据送SBUF,第9位送RB8。,第二节 PC机与单片机间的串行通信,近年来,在智能仪器仪表、数据采集、嵌入式自动控制等场合,越来越普遍应用单片机作核心控制部件。但当需要处理较复杂数据或要对多个采集的数据进行综合处理以及需要进行集散控制时,单片机的算术运算和逻辑运算能力都显得不足,这时往往需要借助计算机系统。将单片机采集的数据通过串行口传送给PC机,由PC机高级语言或数据库语言对数据进行处理,或者实现

17、,PC机对远端单片机进行控制。因此,实现单片机与PC机之间的远程通信更具有实际意义。,单片机中的输入输出数据信号电平都是TTL电平,这种电平采用正逻辑标准, TTL电平标准 输出 L: 2.4V。 输入 L: 2.0V PC机配置的串口是RS-232C接口,两者电气特性不匹配,为了实现两者之间的通信,需要解决电平转换问题。,一、RS-232C总线标准,RS-232C原本是美国电子工业协会(Electronic Industry Association,简称EIA)的推荐标准,现已在全世界范围内广泛采用,RS-232C是在异步串行通信中应用最广的总线标准之一。 该总线标准定义了25条信号线,使用

18、25个引脚的连接器。各信号引脚的定义见表8.3。,表8.3 RS-23C引脚信号定义,除信号定义外,RS-232C标准的其它规定还有: (1) RS-232C 是一种电压型总线标准,它采用负逻辑标准:逻辑1,-15V-5V;逻辑0,+5V+15V,噪声容限为2V。 (2) 标准数据传送速率有:50,75,110,150,300,600,1200,2400,4800,9600,19200bit/s。 (3) 实际上RS-232-C的25条引线中有许多是很少使用的,一般只使用39条引线,常用3条接口线,即发送数据、接收数据和 信号地 。目前COM1 和COM2使用的是9针D形连接器DB9 。,图8

19、.15 微机9针D形串口连接器,二、 RS-232C接口电路,由于RS-232C信号电平(EIA)与8051单片机信号电平(TTL)不一致,因此,必须进行信号电平转换。实现这种电平转换的电路称为RS-232C接口电路。一般有两种形式:一种是采用运算放大器、晶体管、光电隔离器等器件组成的电路来实现;另一种是采用专门集成芯片(如MC1488、MC1488、MAX232等)来实现。下面介绍由专门集成芯片MAX232构成的接口电路。,1. MAX232,MAX232芯片是MAXIM公司生产的具有两路接收器和驱动器的IC芯片,其内部有一个电源电压变换器,可以将输入+5V的电压变换成RS-232C输出电平

20、所需的12V电压。所以采用这种芯片来实现接口电路特别方便,只需单一的+5V电源即可。,MAX232芯片的引脚结构如图8.16所示。其中管脚16(C1+、V+、C1-、C2+、C2-、V-)用于电源电压转换,只要在外部接入相应的电解电容即可;管脚710和管脚1114构成两组TTL信号电平与RS-232信号电平的转换电路,对应管脚可直接与单片机串行口的TTL电平引脚和PC机的RS-232电平引脚相连。具体连线如图8.17所示。,图8.16 MAX232引脚图,2. max232实现PC机与8051单片机串行通信电路,用MAX232芯片实现PC机与8051单片机串行通信的典型电路如图8.16所示。图

21、中外接电解电容C1、C2、C3、C4用于电源电压变换,可提高抗干扰能力,它们可取相同容量的电容,一般取1.0F/16V。电容C5的作用是对+5V电源的噪声干扰进行滤波,一般取0.1F。选用两组中的任意一组电平转换电路实现串行通信,如图,中选Tlin、Rlout分别与8051的TXD、RXD相连,Tlout、Rlin分别与PC机中R232接口的RXD、TXD相连。这种发送与接收的对应关系不能接错,否则将不能正常工作。,图8.17 用MAX232实现串行通信接口电路图,4、RS-485总线接口 RS-232接口标准出现较早,难免会有不足之处:(1)接口的信号电平值较高,易损坏接口电路的芯片;(2)

22、传输速率较低,在异步传输时,波特率最大20kbps;(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰;(4)传输距离有限,实际最大传输距离30m左右。,RS-485/422接口采用不同的方式:每个信号都采用双绞线传送,两条线间的电压差用于表示数字信号。例如,把双绞线中的一根标为A(正),另一根标为B(负),当A为正电压(通常为+5V),B为负电压时(通常为0),表示信号1;反之,A为负电压,B为正电压时表示信号0。RS-485/422允许通信距离可达到1.2km,实际上可达3km,采用合适的电压可达到2.5Mbps的传输速率。,RS-422与RS-48

23、5采用相同的通信协议,但有所不同。RS-422通常作为RS-232通信的扩展,它采用两对双绞线,数据可以同时双向传送(全双工)。RS-485则采用一对双绞线,输入输出不能同时进行(半双工)。,RS-485串行总线接口标准以差分平衡方式传输信号,具有很强的抗共模干扰的能力。逻辑“1”以两线间的电压差为+2V+6V表示;逻辑“0”以两线间的电压差为-2V-6V表示。接口信号电平比RS-232降低了,不容易损坏接口电路芯片。 RS-485总线标准可采用MAX485芯片实现电平转换。MAX-485芯片引脚排列如图8.18所示。,MAX485输入/输出信号不能同时进行(半双工),其发送和接收功能的转换是由芯片的RE和DE端控制的。RE=0时,允许接收;RE=1时,接收端R高阻。DE=1时,允许发送;DE=0时,发送端A和B高阻。在单片机系统中常把RE和DE接在一起用单片机的一个I/O线控制收发。,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1