模块八 串行通信及实验 - 串行通信的方式_第1页
模块八 串行通信及实验 - 串行通信的方式_第2页
模块八 串行通信及实验 - 串行通信的方式_第3页
模块八 串行通信及实验 - 串行通信的方式_第4页
模块八 串行通信及实验 - 串行通信的方式_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.2

串行通信总线标准及其接口在单片机应用系统中,数据通信主要采用异步串行通信。在设计通信接口时,必须根据需要选择标准接口,并考虑传输介质、电平转换等问题。采用标准接口后,能够方便地把单片机和外设、测量仪器等有机地连接起来,从而构成一个测控系统。例如当需要单片机和PC机通信时,通常采用RS-232接口进行电平转换。异步串行通信接口主要有三类异步串行通信接口主要有三类:RS-232接口;RS-449、RS-422和RS-485接口以及20mA电流环。下面介绍较常用的RS-232接口标准。

8.2.1RS-232C接口RS-232C是使用最早、应用最多的一种异步串行通信总线标准。它是美国电子工业协会(EIA)1962年公布、1969年最后修订而成的。其中RS表示RecommendedStandard,232是该标准的标识号,C表示最后一次修订。RS-232CRS-232C主要用来定义计算机系统的一些数据终端设备(DTE)和数据电路终接设备(DCE)之间的电气性能。例如CRT、打印机与CPU的通信大都采用RS-232C接口,MCS-51单片机与PC机的通信也是采用该种类型的接口。由于MCS-51系列单片机本身有一个全双工的串行接口,因此该系列单片机用RS-232C串行接口总线非常方便。RS-232CRS-232C串行接口总线适用于:设备之间的通信距离不大于15米,传输速率最大为20kB/s。8.2.2RS-232C信息格式标准RS-232C采用串行格式,如图8.5所示。该标准规定:信息的开始为起始位,信息的结束为停止位;信息本身可以是5、6、7、8位再加一位奇偶位。如果两个信息之间无信息,则写“1”,表示空。图8.5RS-232C信息格式8.2.3RS-232C电平转换器RS-232C规定了自己的电气标准,由于它是在TTL电路之前研制的,所以它的电平不是+5V和地,而是采用负逻辑,即:逻辑“0”:+5V~+15V逻辑“1”:-5V~-15VRS-232C不能和TTL电平直接相连因此,RS-232C不能和TTL电平直接相连,使用时必须进行电平转换,否则将使TTL电路烧坏,实际应用时必须注意!常用的电平转换集成电路是传输线驱动器MC1488和传输线接收器MC1489。

MC1488内部有三个与非门和一个反相器,供电电压为±12V,输入为TTL电平,输出为RS-232C电平,MC1489内部有四个反相器,供电电压为±5V,输入为RS-232C电平,输出为TTL电平。另一种常用的电平转换电路是MAX232,图8.6为MAX232的引脚图。图8.6MAX232引脚图8.2.4RS-232C总线规定RS-232C标准总线为25根,采用标准的D型25芯插头座。各引脚的排列如图8.7所示。简单的全双工系统在最简单的全双工系统中,仅用发送数据、接收数据和信号地三根线即可,对于MCS-51单片机,利用其RXD(串行数据接收端)线、TXD(串行数据发送端)线和一根地线,就可以构成符合RS-232C接口标准的全双工通信口。

图8.7RS-232C引脚图

8.3MCS-51单片机的串行接口MCS-51单片机的内部有一个可编程全双工串行通信接口,它具有UART的全部功能,该接口不仅可以同时进行数据的接收和发送,也可做同步移位寄存器使用。该串行口有4种工作方式,帧格式有8位、10位和11位,并能设置各种波特率。本节将对其结构、工作方式和波特率进行介绍。8.3.1MCS-51单片机的串行口结构MCS-51单片机内部有两个独立的接收、发送缓冲器SBUF,SBUF属于特殊功能寄存器。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,二者共用一个字节地址(99H)。串行口的结构如图8.8所示。特殊功能寄存器与MCS-51串行口有关的特殊功能寄存器有SBUF,SCON,PCON,下面对它们分别详细介绍。图8.8MCS-51单片机串行口结构示意图

8.3.2串行口数据缓冲器SBUFSBUF是两个在物理上独立的接收、发送寄存器,一个用于存放接收到的数据,另一个用于存放欲发送的数据,可同时发送和接收数据。两个缓冲器共用一个地址99H,通过对SBUF的读、写指令来区别是对接收缓冲器还是发送缓冲器进行操作。CPU在写SBUF时,就是修改发送缓冲器;读SBUF,就是读接收缓冲器的内容。接收或发送数据接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的,因此可以同时发送、接收数据,为全双工制式。

8.3.3串行口控制寄存器SCONSCON用来控制串行口的工作方式和状态,可以位寻址,字节地址为98H。其格式如图8.9所示。SCON9FH9EH9DH9CH9BH9AH99H98H

图8.9SCON的各位定义

SM0SM1SM2RENTB8RB8TIRISM0、SM1:串行工作方式选择位。定义如下表8.1所示。表8.1

串行工作方式选择位

SM0SM1工作方式功能波特率

00方式08位同步移位寄存器fosc/12

01方式110位UART可变

10方式211位UARTfosc/64或fosc/32

11方式311位UART可变多机通信控制位SM2:多机通信控制位,用于方式2和方式3中。在方式2和方式3处于接收时,若SM2=1,且接收到的第9位数据RB8为0时,不激活RI;若SM2=1,且RB8=1时,则置RI=1。方式2、3处于接收或发送方式在方式2、3处于接收或发送方式,若SM2=0,不论接收到第9位RB8为0还是为1,TI,RI都以正常方式被激活。在方式1处于接收时,若SM2=1,则只有收到有效的停止位后,RI置1。在方式0中,SM2应为0。允许串行接收位REN:允许串行接收位。由软件置位或清零。REN=1时,允许接收,REN=0时,禁止接收。TB8:发送数据的第9位。在方式2和方式3中,由软件置位或复位,可做奇偶校验位。在多机通信中,可作为区别地址帧或数据帧的标识位,一般约定地址帧时TB8为1,数据帧时TB8为0。RB8:接收数据的第9位。功能同TB8。发送数据的第9位发送中断标志位TI:发送中断标志位。在方式0中,发送完8位数据后,由硬件置位;在其他方式中,在发送停止位之初由硬件置位。因此TI是发送完一帧数据的标志,可以用指令来查询是否发送结束。TI=1时,也可向CPU申请中断,响应中断后都必须由软件清除TI。接收中断标志位RI:接收中断标志位。在方式0中,接收完8位数据后,由硬件置位;在其他方式中,在接收停止位的中间由硬件置位。同TI一样,也可以通过指令来查询是否接收完一帧数据。RI=1时,也可申请中断,响应中断后都必须由软件清除RI。SCON中的低2位与中断有关SCON中的低2位与中断有关,在中断的有关章节中有详细论述。8.3.4电源及波特率选择寄存器PCONPCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,不可以位寻址,字节地址为87H。在HMOS的8051单片机中,PCON除了最高位以外其它位都是虚设的。其格式如图8.10所示。图8.10PCON的各位定义SMOD为波特率选择位与串行通信有关的只有SMOD位。SMOD为波特率选择位。在方式1、2和3时,串行通信的波特率与SMOD有关。当SMOD=1时,串行通信波特率乘2,当SMOD=0时,串行通信波特率不变。其他各位用于电源管理,在此不再赘述。8.3.5MCS-51单片机串行口的工作方式MCS-51单片机串行口有4种工作方式,由SCON中的SM1、SM0位来决定,如表8.1所示。8.3.5.1方式0在工作方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口。当一个数据写入串行口发送缓冲器SBUF时,串行口将8位数据以fosc/12的波特率从RXD引脚输出(低位在前),发送完置中断标志TI为1,请求中断。在再次发送数据之前,必须由软件清TI为0。具体接线图如图8.11所示。其中74LS164为串入并出移位寄存器。

发送图8.11方式0用于扩展I/O口输出接收在满足REN=1和RI=0的条件下,串行口即开始从RXD端以fosc/12的波特率输入数据(低位在前),当接收完8位数据后,置中断标志RI为1,请求中断。在再次接收数据之前,必须由软件清RI为0。具体接线图如图8.12所示。其中74LS165为并入串出移位寄存器。图8.12方式0用于扩展I/O口输入串行控制寄存器SCON串行控制寄存器SCON中的TB8和RB8在方式0中未用。值得注意的是,每当发送或接收完8位数据后,硬件会自动置TI或RI为1,CPU响应TI或RI中断后,必须由用户用软件清0。方式0时,SM2必须为0。

在工作方式1下,串行口为波特率可调的10位通用异步接口UART,发送或接收一帧信息,包括1位起始位,8位数据位和1位停止位。其帧格式如图8.13所示:

8.3.5.2方式1图8.1310位的帧格式发送时,数据从TXD输出,当数据写入发送缓冲器SBUF后,启动发送器发送。当发送完一帧数据后,置中断标志TI为1。方式1所传送的波特率取决于定时器T1的溢出率和PCON中的SMOD位。发送接收

接收时,由REN置1允许接收,串行口采样RXD,当采样到1到0的跳变时,确认是起始位“0”,就开始接收一帧数据。当RI=0且停止位为1或SM2=0时,停止位进入RB8位,同时置位中断标志RI;否则信息将丢失。所以,在工作方式1接收时,应先用软件清除RI或SM2标志。

在工作方式2下,串行口为11位UART,传送波特率与SMOD有关。发送或接收一帧数据包括1位起始位,8位数据位,1位可编程位(用于奇偶校验)和1位停止位。其帧格式如图8.14所示。8.3.5.3方式2图8.1411位的帧格式

发送时,先根据通信协议由软件设置TB8,然后用指令将要发送的数据写入SBUF,则启动发送器。写SBUF的指令,除了将8位数据送入SBUF外,同时还将TB8装入发送移位寄存器的第9位,并通知发送控制器进行一次发送。一帧信息即从TXD发送,在送完一帧信息后,TI被自动置1,在发送下一帧信息之前,TI必须由中断服务程序或查询程序清0。发送接收当REN=1时,允许串行口接收数据。数据由RXD端输入,接收11位的信息。当接收器采样到RXD端的负跳变,并判断起始位有效后,开始接收一帧信息。当接收器接收到第9位数据后,若同时满足以下两个条件:RI=0;SM2=0或接收到的第9位数据为1,则接收数据有效,8位数据送入SBUF,第9位送入RB8,并置RI=1。若不能同时满足上述两个条件,则丢弃信息。8.3.5.4方式3工作方式3为波特率可变的11位UART通信方式,除了波特率设定方式不同之外,工作方式3和工作方式2完全相同。

8.3.6MCS-51单片机串行口

的波特率设定

在串行通信中,收发双方对传送的数据速率即波特率要有一定的约定。通过上一小节的论述,我们已经知道,MCS-51单片机的串行口通过编程可以有4种工作方式。其中工作方式0和工作方式2的波特率是固定的,工作方式1和工作方式3的波特率可变,由定时器T1的溢出速率决定。

8.3.6.1工作方式0和工作方式2

在工作方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论