单片机串行口_第1页
单片机串行口_第2页
单片机串行口_第3页
单片机串行口_第4页
单片机串行口_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

单片机的串行接口

串行通信基本知识串行接口结构及控制串行接口工作方式与波特率串行口应用举例单片机串行口全文共53页,当前为第1页。数据通信

计算机与外界的信息交换称为通信。基本的通信方法有并行通信和串行通信两种。

1.并行通信 单位信息(通常指一个字节)的各位数据同时传送的通信方法称为并行通信。

2.串行通信 单位信息的各位数据被分时一位一位依次顺序传送的通信方式称为串行通信。

单片机串行口全文共53页,当前为第2页。图1并行通信示意图图2串行通信示意图单片机串行口全文共53页,当前为第3页。

1.异步通信 异步通信中,传送的数据可以是一个字符代码或一个字节数据,数据以帧的形式一帧一帧传送。

异步通信和同步通信异步通信的一帧数据格式单片机串行口全文共53页,当前为第4页。

2.同步通信 在同步通信中,每一数据块发送开始时,先发送一个或两个同步字符,使发送与接收取得同步,然后再顺序发送数据。数据块的各个字符间取消起始位和停止位,所以通信速度得以提高。单片机串行口全文共53页,当前为第5页。串行通信的制式单片机串行口全文共53页,当前为第6页。串行通信接口种类

根据串行通信格式及约定(如同步方式、通信速率、数据块格式等)不同,形成了许多串行通信接口标准,如常见的:

UART(串行异步通信接口)、

USB(通用串行总线接口)、

I2C(集成电路间的串行总线)、

SPI(串行外设总线)、

485总线、CAN总线接口等。单片机串行口全文共53页,当前为第7页。RS-232C接口RS-232C标准接口是EIA(美国电子工业协会)于1969年颁布的串行通信接口标准。RS是“RecommendedStandard”(推荐标准)的缩写,232为标准的编号,C为版本号。在RS-232C之前为RS-232A与RS-232B,1987年修订为EIA-232D,1991年修订为EIA-232E,1997年又修订为EIA-232F。其中,RS-232C最为常用。单片机串行口全文共53页,当前为第8页。RS-232C接口在远程数据通信系统中的应用

当两台计算机(DTE)借助公用电话网进行远程数据通信时。RS-232C用于将DTE和DCE进行连接,使两者能进行串行通信。

RS-232C接口在远程数据通信系统中的应用单片机串行口全文共53页,当前为第9页。RS-232C的机械特性RS-232C接口规定使用25针连接器(DB-25),连接器的尺寸及每个插针的排列位置都有明确的定义。由于一般的应用中很少用到RS-232C标准的全部信号线,所以在实际应用中常常使用9针连接器(DB-9)替代25针连接器。两者的外形与引脚排列如图9-7所示。通常一端做成插针,另一端做成插孔。单片机串行口全文共53页,当前为第10页。DB-25和DB-9连接器DB-25和DB-9连接器单片机串行口全文共53页,当前为第11页。RS-232C的引脚功能引

脚序

号信

号名

称功

能信

向1PGND保护(屏蔽)接地2(3)TXD发送数据(串行输出)DTE→DCE3(2)RXD接收数据(串行输入)DTE←DCE4(7)RTS请求发送DTE→DCE5(8)CTS允许发送DTE←DCE6(6)DSRDCE就绪(数据建立就绪)DTE←DCE7(5)SGND信号接地8(1)DCD载波检测DTE←DCE9—保留供测试用10—保留供测试用注:引脚序号栏中带括号的序号为DB-9连接器的引脚序号。单片机串行口全文共53页,当前为第12页。引

脚序

号信

号名

称功

能信

向11—未定义12SDCD辅助信道载波检测DTE←DCE13SCTS辅助信道允许发送DTE←DCE14STXD辅助信道发送数据DTE→DCE15TXC发送时钟DTE←DCE16SRXD辅助信道接收数据DTE←DCE17RXC接收时钟DTE←DCE18—未定义19SRTS辅助信道请求发送DTE→DCE20(4)DTRDTE就绪(数据终端准备就绪)DTE→DCE21SQD信号质量检测DTE←DCE22(9)RI振铃指示DTE←DCE23DRS数据信号速率选择DTE→DCE24ETXC外部发送时钟DTE→DCE25—未定义注:引脚序号栏中带括号的序号为DB-9连接器的引脚序号单片机串行口全文共53页,当前为第13页。RS-232C的电气特性

RS-232C的信号电平:RS-232C标准规定采用负逻辑电平。信号源点的逻辑0电平范围为+5V~+15V,逻辑1电平范围为−5V~−15V;信号目的点的逻辑0电平范围为+3V~+15V,逻辑1电平范围为−3V~−15V,噪声容限为2V。RS-232C的信号电平下图所示。单片机串行口全文共53页,当前为第14页。RS-232C的信号电平RS-232C的信号电平

通常,RS-232C的逻辑电平采用+12V表示逻辑0,−12V表示逻辑1。单片机串行口全文共53页,当前为第15页。RS-232C的传输距离与传输速率:

RS-232C的传输距离:DTE和DEC之间采用RS-232C传输的最大距离不大于15m。

RS-232C的传输速率:小于20kbit/s。单片机串行口全文共53页,当前为第16页。RS-232C与51系列单片机的连接

由于51系列单片机的串行口不是标准RS-232C接口,采用的是正逻辑TTL电平:即逻辑1为+2.4V;逻辑0为+0.4V。所以使用RS-232C接口将51系列单片机与计算机或其他具有RS-232C接口的设备进行连接时,必须考虑电平转换问题。通常使用专用的电平转换芯片来进行电平转换。单片机串行口全文共53页,当前为第17页。MAXIM公司生产MAX232。它仅需要+5V电源,由内置的电子泵电压转换器将

+5V转换成

−10V~+10V。该芯片与TTL/CMOS电平兼容,片内有2个发送器和2个接收器,使用比较方便。由它构成的电平转换电路如图所示。MAX232电平转换芯片单片机串行口全文共53页,当前为第18页。由MAX232构成的电平转换电路由MAX232构成的电平转换电路单片机串行口全文共53页,当前为第19页。RS-232C的缺点

接口的信号电平值较高,易损坏接口电路的芯片。与TTL电平不兼容,与TTL电平接口连接需进行电平转换。传输距离短,使用时传输距离一般不超过15m,线路条件好时也不超过几十米。传输速率较低,最高传送速率为20kbit/s。由于收发信号采用共地传输,容易产生共模干扰,所以抗干扰能力较差。单片机串行口全文共53页,当前为第20页。51单片机串行口的结构串行接口的结构单片机串行口全文共53页,当前为第21页。

串行口由发送电路和接收电路两部分组成。图中有两个物理上独立的串行口接收、发送缓冲器SBUF。

SBUF(发送)用于存放将要发送的字符数据;SBUF(接收)用于存放串行口接收到的字符数据,数据的发送、接收可同时进行。

SBUF(发送)和SBUF(接收)同属于特殊功能寄存器SBUF,占用同一个地址99H。但发送缓冲器只能写入,不能读出;接收缓冲器只能读出,不能写入。因此,对SBUF进行写操作时,是把数据送入SBUF(发送)中;对SBUF进行读操作时,读出的是SBUF(接收)中的数据。单片机串行口全文共53页,当前为第22页。串口发送过程

当单片机执行“写”SBUF命令时,将欲发送的字符送入SBUF(发送)后,发送控制器在发送时钟的作用下,自动在发送字符前后添加起始位、停止位和其他控制位,然后在发送时钟的控制下,逐位从TXD线上串行发送字符帧。发送完后使发送中断标志TI=1,发出串口发送中断请求。单片机串行口全文共53页,当前为第23页。串口接收过程

串行口在接收时,接收控制器会自动对RXD线进行监视。当确认RXD线上出现起始位后,接收控制器就从起始位后的数据位开始,将一帧字符中的有用位逐位移入接收缓冲寄存器SBUF(接收)中,自动去掉起始位、停止位或空闲位,并使接收中断标志RI

=

1,发出串口接收中断请求。这时,只要执行“读”SBUF命令,便可以得到接收的数据。单片机串行口全文共53页,当前为第24页。串行接口的控制寄存器1.串行口控制寄存器SCON2.电源控制寄存器PCON单片机串行口全文共53页,当前为第25页。串行口控制寄存器SCONSCON用于设定串行口的工作方式、接收/发送控制以及设置状态标志等。它的字节地址为98H,可进行位寻址,其各位的定义如图所示。图9-15串行口控制寄存器

单片机串行口全文共53页,当前为第26页。SCON各位名称和功能

SM0和SM1(SCON.7和SCON.6):串行口工作方式选择位。可选择4种工作方式,如表所示。SM0SM1工作方式功能波特率000移位寄存器fosc/1201110位异步收发(8位数据)可变,由定时器控制10211位异步收发(9位数据)fosc/64或fosc/3211311位异步收发(9位数据)可变,由定时器控制表 串行口的工作方式单片机串行口全文共53页,当前为第27页。

RI(SCON.0):接收中断标志位。用于指示一帧信息是否接收完毕它的工作过程是:当串行口接收到停止位时;由内部硬件电路使RI=1。一旦RI被硬件置1,便产生串口中断请求SCON各位名称和功能单片机串行口全文共53页,当前为第28页。

TI(SCON.1):发送中断标志位。用于指示一帧信息是否发送完毕它的工作过程是:开始串行发送停止位时,由内部硬件电路使TI=1,并向CPU发出串口中断请求。与RI标志的清除方法相似,TI也必须通过软件才能将其清0SCON各位名称和功能单片机串行口全文共53页,当前为第29页。

RB8(SCON.2):接收数据第9位。在方式2或方式3中,用于存放接收数据的第9位,此时,该位可能是奇偶校验位,也可能是多机通信中的地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8为接收到的停止位。方式0时,不使用RB8。SCON各位名称和功能单片机串行口全文共53页,当前为第30页。

TB8(SCON.3):发送数据第9位。在方式2或方式3中,用于存放发送数据的第9位,此时,该位可以用作奇偶校验位,在多机通信中,可以作为地址帧/数据帧的标志位。

REN(SCON.4):允许接收控制位。若使REN=1,则启动串行口接收数据;若使REN=0,则禁止串口接收。SCON各位名称和功能单片机串行口全文共53页,当前为第31页。SM2(SCON.5):多机通信控制位。主要用于方式2和方式3中。(一般设置为0)若接收方单片机的SM2

=

1,则由收到的RB8来控制是否使RI置1:当收到的RB8

=

0时,RI不被置1,收到的信息被丢弃;当收到的RB8

=

1时,收到的数据进入SBUF(接收),并将RI置1,向CPU发出串口中断请求,接收方可在串口中断服务中将数据从SBUF(接收)中读走。也可以通过查询RI的办法,在发现RI为1后,将SBUF(接收)中的数据读走。SCON各位名称和功能单片机串行口全文共53页,当前为第32页。

若接收收方单片机的SM2

=

0,则RB8不再具有控制RI激活的功能,不论收到的RB8为0还是1,收到的数据都会进入SBUF,并使RI

=

1。运用SM2的控制功能,便可以实现多机通信在方式0时,不使用SM2控制位,应将SM2设定为0。在方式1时,通常也将SM2设为0,若使SM2

=

1,则只有接收到有效的停止位时,RI才被置1。SCON各位名称和功能单片机串行口全文共53页,当前为第33页。电源控制寄存器PCONPCON的字节地址为87H,不能按位寻址,只能按字节寻址。各位的定义如图9-16所示。其中,只有一位SMOD与串行口工作有关。编程时只能使用字节操作指令对它赋值。图9-16电源控制寄存器

单片机串行口全文共53页,当前为第34页。PCON控制位的名称和功能

SMOD(PCON.7):波特率倍增位。在串行口方式1、方式2、方式3中,用于控制是否倍增波特率。当SMOD

=

0时,波特率不倍增;当SMOD

=

1时,波特率提高一倍。

单片机串行口全文共53页,当前为第35页。串行接口的工作方式1.方式02.方式13.方式2和方式3单片机串行口全文共53页,当前为第36页。方式1

工作方式1时,串口被设定为10位异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,所传送的字符帧格式如图所示。串口方式1的字符帧格式

单片机串行口全文共53页,当前为第37页。方式1发送

在TI

=

0时,当执行一条写SBUF的指令后,即可启动串行口发送过程:发送电路自动在写入SBUF中的8位数据前后分别添加1位起始位和1位停止位。在发送移位脉冲作用下,从TXD引脚逐位送出起始位、数据位和停止位。发送完一个字符帧后,自动维持TXD线为高电平。并使发送中断标志TI置1,产生串口中断请求。通过软件将TI清0,便可继续发送。单片机串行口全文共53页,当前为第38页。串口方式1的发送时序串口方式1的发送时序单片机串行口全文共53页,当前为第39页。方式1接收

当使用命令使RI

=

0,REN

=

1时,串口开始接收过程:接收控制器先以速率为所选波特率的16倍的采样脉冲对RXD引脚电平进行采样,当连续8次采样到RXD线为低电平时,便可确认RXD线上有起始位。此后,接收控制器就改为对第7、8、9三个脉冲采样到的值进行位检测,并以三中取二原则来确定所采样数据的值,如图所示。单片机串行口全文共53页,当前为第40页。串口接收时对RXD引脚电平的采样串口接收时对RXD引脚电平的采样单片机串行口全文共53页,当前为第41页。方式1接收过程RXD上的数据被逐位移入接收移位寄存器,当接收到停止位时,将去除起始位和停止位后的8位数据装入接收缓冲器SBUF,并使RI

=

1,向CPU发出串口中断请求。方式1的接收时序如图所示。图9-23串口方式1的接收时序

单片机串行口全文共53页,当前为第42页。串行接口的波特率

在串行通信中,为了保证接收方能正确识别数据,收发双方必须事先约定串行通信的波特率。51单片机在不同的串口工作方式下,其串行通信的波特率是不同的。其中,方式0和方式2的波特率是固定的;方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。计算公式如下。

单片机串行口全文共53页,当前为第43页。波特率计算公式:

方式0的波特率

=

fosc/12

方式1的波特率

=

(2SMOD/32)×(T1溢出率)

方式2的波特率

=

(2SMOD/64)×

fosc方式3的波特率

=

(2SMOD/32)×(T1溢出率)

其中,T1溢出率是指定时器T1每秒钟溢出的次数。SMOD=0表示波特率不增倍=1表示增倍单片机串行口全文共53页,当前为第44页。T1溢出率计算公式:

由于T1每溢出一次所需的时间即为T1的定时时间,所以T1溢出率等于T1定时时间的倒数。计算公式如下。T1的定时时间

=

(2n−计数初值)×12/foscT1溢出率

=

1/(T1的定时时间)

=

fosc/[(2n−计数初值)×12]

公式中,n是定时器T1的位数,取值与T1的工作方式有关:

温馨提示

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

评论

0/150

提交评论