《单片机串口通信》PPT课件.ppt_第1页
《单片机串口通信》PPT课件.ppt_第2页
《单片机串口通信》PPT课件.ppt_第3页
《单片机串口通信》PPT课件.ppt_第4页
《单片机串口通信》PPT课件.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第10章 串行通信及接口,学习指南,串行通讯技术是单片机系统开发中常用的技术之一,串行口也是单片机常规内部集成的功能。近几年来,虽然新的通讯技术、手段不断出现,但串行通讯技术由于它技术成熟、开发方便而一直都被广泛应用于工控场合。,51系列单片机中一般也集成了全双工的串行端口。一般通过定时器来设定通讯的波特率,通过设置几个寄存器来设定工作方式等等。,本章主要内容,串行口的结构:介绍与串行通讯相关的寄存器以及工作模式等 串行通讯的原理:主要介绍同步,异步通讯的原理 通讯协议:介绍常用的通讯协议的设计与实现 单机通讯:介绍单片机与PC机、单片机与单片机之间的串行通讯 多机通讯:介绍单片机多机通讯的原理和多机通讯协议的设计 通讯程序的调试:介绍如何调试通讯程序,10.1 串行口的结构,51系列单片机内部有全双工串行口,提供了4种工作方式。波特率可由软件设置,由片内的定时器/计数器产生。接收、发送均可工作在查询方式或中断方式,使用十分灵活。串行口除了用于数据通讯外,还可以非常方便地构成一个或多个并行输入/输出口,或作串,并转换,或用来驱动键盘和显示器。,串行口控制寄存器SCON:该寄存器的字节地址为98H,可位寻址。SCON格式为:,10.1.1 串口控制寄存器,SM0、SM 1:控制串行口的工作方式。 SM 2:允许方式2和方式3进行多机通讯控制位。在方式2或方式3中,如SM 2=1,则接收到第9位数据。 EN:允许串行接收控制位。由软件置位时允许接收,软件清零时停止接收。 TE8:是工作在方式2和方式3时,要发送的第9位数据。 RB8:是工作在方式2和方式3时,接收到的第9位数据。,TI:发送中断标志位。由片内硬件在方式0串行发送第8位结束时置位,或在其他方式串行发送停止位的开始时置位。必须由软件清零。 RI:接收中断标志位。由片内硬件在方式0串行接收到第8位结束时置位,或在其他方式串行接收到停止位的中间时置位,必须由软件清零。,PCON:其字节地址a7H、没有位寻址功能。PCON的格式如下,其中与串行接口有关的只有D7。 D7 (SMOD)是波特率加倍位,为1的时候,波特率加倍。,10.1.2 特殊功能寄存器,51系列单片机有4种工作方式,通过SCON中的SM1、SM0来设置,10.1.3 串口工作方式,SM0,SM1,方式,方式0,在方式0状态下,串行口为同步移位寄存器方式,其波特率是固定的,为fosc/12。数据由RXD端出入,同步移位脉冲由TxD端输出,发送、接收的是8位效据,不设起始比和停止位,低位在前,高位在后。 在方式0的发送状态,当一个数据写入串行口发送缓冲器SBUF时,串行口将数据以fosc/12的波特率由低位到高位从TxD引脚输出,发送完中断标志TI置1,TxD引脚输出同步脉冲。,该方式下串行口作为同步移位寄存器使用,可以利用移位寄存器进行并行I/O扩展。这时以RxD端作为数据移位的输入、输出口,而出TXD端提供移位时钟脉冲。 在方式0的接收状态下,设置REN=1和RI=0,串行口就处于允许接收状态,此时RxD为串行输入端, TXD为同步脉冲输出端。串行接收的波特串为fosc/12。当接收完一帧数据(8位)后,控制信号复位,中断标志RI被置位,呈中断申请状态。每次接收完成时,必须通过软件将RI清零,以启动下一次接收。,方式1,此时串行口为8位异步通讯接口。数据长度为10位:含1位起始位,8位数据位(低位在先)和1位停止位。TxD为发送端,RxD为接收端。 串行口以方式1发送时,数据由TxD端输出,发送完10位数据后,发送中断标志置1。,当REN=1时,串行口便以所选波特率的16倍速率采样RxD引脚状态,当采样到RXD端从1到0的跳变时就进行接收,接收的值是3次采样中至少二次相同的值,以保证数据可靠无误。在起始位,如果接收到的值不为0,则起始位无效,重新接收,当再次接收到一个由l到0的跳变时,重新启动接收。如果接收值为0,起始位有效,串行口开始接收数据位的其余信息(10位),接收完成后,RI被置位。 方式1的波特率是可以通过软件进行设置的,其计算公式如下:,所谓的溢出率是指单位时间内T1的溢出次数,假设定时器的初值为N则,溢出率为=fosc/12*(2n-N)。其中n为定时器的定时位数,例如,将T1设置为工作模式2,即8位自动重装的模式,则n=8,溢出率为=fosc/12*(28-N)。,假如fosc=11.0592MHz,想得到9600的拨特率,此时,定时器T1初值的计算方法为: N=28-(2SMOD*11.0592*106)/(9600*32*12) 如果SMOD=1则N=FAH。,方式2,串行口工作在方式2时,为9位异步通讯口,数据长度为11位,1位起始位、8位数据位(低在先)、1位可编程位(第9数据位)和1位停止位。 在方式2发送时,数据由TxD端输出,附加的第9位数据为SCON中的TB8;送完一帧信息后,TI被置1。在发送下一帧信息之前,TI必须清零。,在方式2接收时,数据由RxD增输入,接收11位信息。接收完成后设置相应的中断标志位。 方式2的波特率是固定的,其计算公式如下:,方式3,方式3为波特串可变的9位异步通讯方式,除了波特率外,方式3和方式2相同,方式3的波特率由下式确定:,10.2 串行通讯的原理,相对与并行通讯来说,串行通讯硬件代价、结构简单,传输距离上也要比并行通讯长的多;但由于数据是一位位传送的,所以在速度上比并行通讯要慢,如图10-1、10-2所示为并行通讯示例和串行通讯示例。,并行通讯,串行通讯,串行通讯在通讯方式上分为单工、半双工和全双工三种。 l 单工:通讯双方为A、B;在单工方式下只能由AB,或者只能由BA。 l 半双工:通讯双方为A、B;可以互相传送,但在某个时间内,只能由AB,或者只能由BA。 全双工:通讯双方为A、B;可以互相传送,在任何时间内都可以AB和BA可以同时进行。,串行通讯在数据传输上的方式分为了异步通讯和同步通讯两种。 u 异步通讯 异步串行通讯规定了字符数据的传送格式,即每个数据以相同的格式传送。一般的格式如图10-3所示。,图10-3 异步通讯数据帧结构,每一帧信息由起始位、数据位、奇偶校验位和停止位组成。 l 起始位:在通讯线上没有数据传送时处于逻辑“1”状态。当发送设备要发送数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通讯线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。 l 数据值:当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5、6、7或8位的数据。在字符数据传送过程中,数据位从最小有效位(最低位)开始传送。,l 奇偶校验位:数据位发送完之后,可以发送奇偶校验位。奇偶校验用于有限差错检测,通讯双方在通讯时须约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质。这种性质用于检错,虽有限但很容易实现。 l 停止位:在奇偶位或数据位(当无奇偶校验时)之后发送的是停止位是一个字符数据的结束标志,可以是1位、1.5位或2位。 由于异步通讯每次都必须发送起始位,结束位等等,所以在数据传输速度上有限,一般应用于低速场合,u 同步通讯 同步通讯不像异步通讯那样靠起始位在每个字符数据开始时使发送相接收同步,而是通过同步字符在每个数据块传送开始时使收/发双方同步,一般格式如图10-4所示。,图10-4 同步通讯数据结构,与异步通讯相比,同步通讯传输的数据量大,速度也快,常用于高速传输的场合中。 通讯速度是用波特率来表示的。波特率表示的是单位时间内传输数据的位数,单位为bps。 例如,前面所说的波特率为9600bps,这表示,在这种工作状态下,单片机的串行口每秒钟能发送或者接受9600位的数据,也就是1.2K字节的数据。 波特率设置在异步通讯中是非常重要的;只有当通讯双方以相同的波特率发送或者接收数据,传输才能够正确。,10.3 通讯协议,通讯协议是通讯双方事先约定,共同遵守的一个协议。在通讯中,只有双方同时满足协议要求,才能进行通讯。一般说来,通讯协议分为了电气协议和软件协议两个部分。 电气协议主要规定了通讯的电气特性,对接口、信号等做出了详细的说明。串行通讯协议主要有:RS-232C、RS-485、RS-449、RS-422、RS-423。其中,应用最为广泛的是RS-232C和RS-485。,电气协议仅仅是对通讯的电气特性进行规定,换句话说,它仅仅只能保证硬件上的正确性,能完成数据的传输,但究竟这次传输数据的正确与否这个协议就无法保证了但究竟这次传输数据的正确性这个协议就无法保证了。因此在电气协议之外,还必须设计软件协议。 软件协议的主要内容包括了数据格式、错误检测与处理;还可以包括各种通讯中的命令、控制字等。在一个工作环境恶劣的、或者通讯距离比较长的应用中,设计一个软件协议是非常重要的,它可以保证数据传输的正确性。,根据环境和对数据正确性要求的不同,软件协议的复杂程度也是可变的。最简单的一个通讯协议就是简单的说明数据的结构。比如,在一个有8通道的数据采集系统中,系统要分时向外部发送8个通道的数据,这时可以规定传送数据的格式为2个字节,其中第一个字节表示的是第几个通道的数据,第二个字节表示的是通道中采集的数据;接收方也必须遵守这个协议,在读取了两个字节的数据后才能得到正确的通道信息。,复杂协议的设计就困难多了。一般协议由若干个字节组成,由一个固定的启始字节开始;后面跟的是数据段的说明,说明究竟数据段中存放的是数据还是命令数据量有多少;再后面是若干个字节的数据段;数据段后面是校验码;最后还要跟着结束字节。当接收方接收到启始字节后,启动接收过程,直到接收到结束字节,然后进行数据的校验。如果校验数据出错,则接收方还需要向发送方发出重发命令;发送方在发送出一个数据包后也必须等待接收方的回答。,10.4 单机通讯,最简单的PC与单片机通信只要三根线就可以了,单片机的TXD、RXD与PC机的RXD、TXD分别相连,连接地线。由于51系列单片机的串行口使用的是TTL电平,因此在PC机和单片机间要有232电平转换电路。,图10-5 PC与单片机通信图,简单的单片机之间利用串行口进行通讯不需要232电平转换了,只要在软件设计上注意波特率设置统一就可以了。但是如果传输距离比较远的话还是需要加上232电平转换。 在软件设计上,如没有什么特殊要求的话基本上与前面的与PC机程序一样。,图10-6 单片机之间通信图,有的时候,需要把一个单片机设置成主控机器,而另外的单片机设置为从机。这种情况实际上是下面所要介绍的多机通讯的一个简化。在这种情况下,两台机器之间只要设置相应的软件协议就可以了。比如主机的任务就是向从机发出命令,并接收从机的状态信息,做出判断,再发命令;而从机实际上是一个等待主机命令的状态,在接收到主机命令后,做出相应的动作,发出数据。,10.4 多机通讯,在实际应用系统中,经常需要多个控制器协调工作。由于51系列单片机具有多机通讯功能,因而可利用它构成各种分布式系统,具体电路结构如图10-7所示。,图10-7 多机通讯连接图,多机通讯中,要保证主机与从机间可靠的通讯,必须保证通讯接口具有识别功能,而串行口控制寄存器SCON中的控制位SM2就是为满足这一要求而设置的。当串行口以方式2(或方式3)工作时,发送和接收的每一帧信息都是11位,其中第9数据位是可编程位,通过对SCON的TB8置1或0,以区别发送的是地址帧还是数据帧(规定地址帧的第9位为1,数据帧的第9位为0)。若从机的控制位SM2=1,则当接收的是地址帧时,数据装入SBUF,并置RI=1,发出中断请求;若接收的是数据帧,则不产生中断标志,信息将抛弃。若SM2=0,则无论是地址帧还是数据帧都产生RI=1中断标志,数据装入SBUF。,具体的通讯过程如下: (1)使所有从机的SM2位置1,处于只接收地址帧的状态。 (2)主机发送一帧地址信息,其中包含8位地址,第9位为1,以表示发送的是地址。 (3)从机接收到地址帧后,各自将接收到的地址与其本身地址相比。 (4)被寻址的从机,清除其SM2,未被寻址的其他从机仍维持SM2=1不变。,(5)主机发送数据或控制信息(第9位为0)。对于已被寻址的从机,因为SM2=0,故可以接收主机发送过来的信息。而对于其他从机,因SM2维持为1,对主机发来的数据帧将不予理睬,直至发来新的地址帧。 (6)当主机改为与另外从机联系时,可再发出地址帧寻址其从机。而先前被寻址过的从机在分析出主机是对其他从机寻址时,恢复其SM2=1,对随后主机发来的数据帧不加理睬。,一般在多机通讯中要设计一个通讯协议,以完成主机对从机的控制和查询。简单的协议如下: l 地址FFH是对所有从机都起作用的一条控制命令,命令各从机恢复SM21状态; 主机和从机的联络过程为:主机首先发送地址核,被寻址从机返回本机地址给主机,在判断地址相符后主机向被寻址从机发送控制命令,被寻址从机根据其命令向主机回传自己的状态,若主机判断状态正常,主机开始发送或接收数据,发送或接收的第一个字节是数据块长度。,假定主机发送的控制命令代码为: l 00:要求从机接收数据块; l 01:

温馨提示

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

评论

0/150

提交评论