第11讲串行通信.ppt_第1页
第11讲串行通信.ppt_第2页
第11讲串行通信.ppt_第3页
第11讲串行通信.ppt_第4页
第11讲串行通信.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式系统设计,第 11 讲,串行通信概述 51单片机的串行通信接口 串行口的工作方式,本讲内容,串行通信概述 51单片机的串行通信接口 串行口的工作方式,计算机通信技术,实现本地或远程、机与机或多机之间的通信,是计算机的重要功能,我们能够坐在计算机前直接看到远方发生的事件或远程现场设备工作的状态和各项运行参数,都得益于计算机的强大通信功能。 计算机通信方式:,串行通信,并行通信,适用于各种距离的通信, 成本低,效率高。,仅适用于近距离的通信, 线数多,成本高,效率低, 已经退出应用市场。,串行通讯概述,串行口的设计使MCS-51单片机的功能 大大增加.可以用串行通讯的方式实现单片机与单片机或

2、者是单片机与微机等设备之间的数据交换. 串行通讯电路简单,成本低,可以实现远距离的数据传输。缺点是传输速度低于并行数据传输。 在一个嵌入式系统中,往往采用多单片机构成一个完整的控制系统,它们之间以串行通信的方式进行数据交换-多机通讯(如图).,从机,从机,从机,从机,主机,串行通信总线,串行通信方式有以下多种: 计算机近距离数据通信,现在常用有以下几种总线: USB、RS-232C、IIC、SPI、SCI等总线进行。 计算机远程数据通信,有以下一些常用的通信总线: RS-485总线、CAN总线、电流环、以太网等。 其中的232、485、422、CAN、电流环、以太网等总线在控制领域的应用最多。

3、而这几种总线在单片机系统的应用都是基于单片机的串行通信接口。 本讲仅学习单片机串行接口,上述几种常用通信总线的知识在第21讲开始学习。,串行通信应用示意图,TXD RXD,RXD TXD,TXD RXD,RXD TXD,RS-232 或485,RS-232 或485,TXD RXD,RS-232,PC机 COM1,COM2,单片机甲、乙之间近距离通讯,单片机甲乙两地之间远距离通讯,单片机与PC机之间的数据通讯,串行通信中的一些基本概念,字符帧:也称数据帧,它是由“起始位”“数据位”和“停止位”构成(如下图所示)。 波特率:每秒钟传输二进制数据的个数.波特率使用的单位是:bps(bit per

4、scond),既 位/秒。 异步通信:数据以字符或字节为单位组成字符帧传送.数据从发送端一帧一帧的发送,通过传输线被接收端一帧一帧的接收.发送与接收相互独立,互不同步。,起始位,停止位,0,1,一个字符帧的格式,串行通信中的一些基本概念,同步通信:数据也是以字符或字节为单位组成字符帧传送的。每一位数据都有一个时钟脉冲与之对应。从主机的数据口和时钟口两条线同步进行。,本讲内容,串行通信概述 51单片机的串行通信接口 串行口的工作方式,51单片机的串行通信接口,标准51单片机有一个全双工的串行通信接口UART,其结构如下,51单片机的串行通信接口,数据缓冲寄存器 SBUF(接收的SBUF、发送的S

5、BUF) SBUF是用来存放串行口发送和接收数据的寄存器,在SFR的地址为99H.在物理上它对应两个不同的单元:发送寄存器和接收寄存器。 写SBUF就是向发送的SBUF内写一个数据并开始发送数据: SBUFdata1i; 读SBUF就是读取接收的SBUF中的数据,放到一个变量里: mSBUF; 由于发送SBUF与接收的SBUF是两个不同的逻辑部件,所以在硬件设计上保证了51单片机串行口是一个可以同时发送与接收的”全双工”接口。,串行口控制寄存器,SM0 SM1: 串行口操作模式选择位。如下表,RI:完成一帧数据接收的标志,原始应清零,接收完成,硬件自动置RI=1并申请中断,然后必须由软件清零(

6、RI=0),才能接收下一个数据,否则,串口上来的数据,不再进入SBUF,SBUF维持原数据不变。 TI:完成一帧数据发送的标志,原始应清零,发送完成,硬件自动置TI=1并申请中断,然后必须由软件清零(TI=0),如果不清零TI,直接给串口SBUF送数据,串口会立即正常发出所送的数据(发送会有起始位、数据位和结束位)。如果数据还没有发完,就给SBUF送数据,会立即发送新数据,而且没有起始位。,RB8:在9位数据传送的模式2、3时,接收到的第9位数据; TB8:在9位数据传送的模式2、3时,将要发送的第9位数据; REN:接收使能位,由软件置位或清零;REN=1时允许接收.收到一个字节后,RI会自

7、动置1。REN=时不允许接收,即使接收口上有数据进入,数据只进入接收移位寄存器,不进入SBUF,SBUF保持原来数据不变,RI也不置位。,SM2 :多机通信使能位 1.模式0、1时:SM2应设为0,这样RI才能被正常激活并引发中断。如果此时SM2=1,则只有接收到数据并接收到有效停止位时RI才置1,如果接收到数据,但没有接收到有效停止位,RI就不置位。 2.模式2、3时:使用SM2。收到的第9位数据传给RB8。 若SM2=1,则由RB8为1还是为0,决定RI是否被置位。 若SM2=0,则无论RB8如何,RI都能被置位(RI=1)并引发中断。 具体规则如下: 若SM2=1且RB8=0时,RI不能

8、被激活,数据也不进入SBUF。 若SM2=1且RB8=1时,RI被激活=1并引发中断。 若SM2=0且RB8=0时,RI被激活=1并引发中断。 若SM2=0且RB8=1时,RI被激活=1并引发中断。,SCON,如何使用RI,TI标志(中断和查询),CPU与串行口之间不是同步工作的,两者之间的数据交换通过SBUF,何时交换必须借助于标志信号进行。 RI(SCON.0):接收到一帧数据的标志。 在RI可以被激活的条件下,在接收到一个字节的停止位的中间时刻,RI会被置1。如果系统中断是开放的,则RI=1时会自动引发中断。用户可以通过中断服务程序将接收SBUF中的数据取出。 也可以使用查询的方式对RI

9、进行检测,如果RI=1则执行读取操作。 RI必须由软件清零。 TI (SCON.1):发送完一帧数据标志。 在发送完一个字节,即将发送停止位时,TI会被硬件自动置1。如果系统中断是开放的,则TI会自动引发中断。用户可以通过中断服务程序向SBUF输送下一个数据。 也可以使用查询的方式对TI进行检测,如果TI=1则执行下一个数据的发送。 TI必须由软件清零。,使用查询RI、TI标志方式进行发送与接收N个数据,TI=0;,SBUF=data1i;,TI=1?,N个数据发送完?,YES,NO,YES,NO,发送数据的程序框图,REN=1;,Data2i=SBUF;,RI=1?,N个数据接收完?,YES

10、,NO,YES,NO,RI=0;,接收数据程序框图,结束,结束,本讲内容,串行通信概述 51单片机的串行通信接口 串行口的工作方式,串行口的工作方式,特点:串行口做同步移位寄存器用,其波特率为 fosc/12.在这种模式下RXD(P3.0)做数据口;TXD(P3.1)做移位脉冲输出端.在移位过程中,先移数据的低位.注意:移位脉冲的频率就是模式0的波特率. 模式0的主要功能是:可以使用一个串行口来扩展出8位、16位等并行口,且理论上可以扩展n个8位的并行口.,MCS-51 RXD TXD,Data 外部移位寄存器 cp,移位脉冲,串行数据,并行的数据(8位),串行口的模式0,模式0的工作原理(发

11、送),单片机执行串行口发送指令的S6P2时,出现“写SBUF ”信号: 1、打开总线三态门使累加器中的数据送到SBUF中;相隔一个机器周期后,“发送控制器”使RXD端的数据和TXD端的移位脉冲同时输出。在TXD端,每一个机器周期中发出一个同步脉冲,同时在发送期间,每一个S6P2时控制器发出一个SHIFT移位信号将移位寄存器中的数据右移一次。这样:每当移位寄存器中的数据右移(发送)一位时,它的左端便移入1个“0”。,模式0的工作原理(接收),同发送的过程类似:在每一个机器周期从TXD端发出同步移位脉冲,在每一个S5P2时刻对RXD线进行采样。在S6P2时刻,控制器对接收移位寄存器进行移位,每左移

12、一次右端就补进一位由RXD端输入的数据。 当从RXD端输入7位数据时,开始最右端的“0”被移到寄存器的最左端,寄存器向控制器发信号,通知控制器做最后一次接收,并将完整的8位数据装入SBUF中。最后清RECEIVE,SCON中的RI置位,向CPU发中断申请。,串行口模式1,特点:10位传输格式 (1个起始位+8个数据位+1个停止位); 波特率:可变波特率,由定时器T1的溢出率来确定,所以在此种模式下,首先要对T1进行初始化以确定串行口的波特率; 发送操作:在TI=0,执行发送指令后从TXD端开始发送数据。当发送完8位数据后自动的添加一个高电平的停止位,并将TI置位。 接收操作:在REN=1且RI

13、=0的条件下进行。当接收到停止位时,必须满足:RI=0且SM2=0,才能把接收的数据送到SBUF中(停止位送SCON的RB8中,并使RI=1),否则数据丢失。 模式1是用的最多的一种模式。,串行口模式1时数据帧格式及接收采样示意图,起始位,8位数据,停止位,当连续8次采集到低电 平时,便确认起始位到来,在每个第7,8,9个脉冲对RXD采样 并采用“以三取二”来确定采集的数据,7.8.9,串行口模式1、3的波特率,方式1、3的波特率 = (定时器1的溢出率),其中,指的是每溢出32次或16次 发送1位数据或接收1位数据。,定时器1的溢出率,定时器1的溢出率取决于定时器工作方式控制寄存器TMOD的设定,在通信应用中,设置定时器1为定时器方式,在这种方式下,T1对机器周期计数(对普通的8051单片机,一个机器周期为12个时钟周期)。且须运行于自动重新装载方式,此时TMOD的高4位应为0010B,而自动重装入的值放在TH1中。,定时器1的溢出率,这时波特率的产生公式为:,方式1、3波特率 =,波特率翻倍位SMOD,是特殊功能寄存器PCON中的1位,最高位。其值为1时,定时器每溢出16次发送或接收一位数据,波特率翻倍,其值为0时,定时器每溢出32次发送或接收一位数据,波特率不翻倍。其值由我们根据需要来设置。,串行口模式2、3,特点:模式2、3都是9位传输模式(1个起始位+9个数据位

温馨提示

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

最新文档

评论

0/150

提交评论