欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    片机串行接口及.ppt

    • 资源ID:6054759       资源大小:533.50KB        全文页数:169页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    片机串行接口及.ppt

    第7章51 单片机串行接口及应用,MCS-51单片机中有一个串行通信I/O口,通过该串行口可以实现与其它计算机以及外设之间的串行通信。MCS-51单片机的串行通信有着广泛的应用,不但可以实现单片机之间或单片机和PC机之间的串行通信,也可以使用单片机的串行通信接口,实现键盘输入和LED、LCD显示器输出的控制,简化电路,节约单片机的硬件资源;应用串行通信接口,还可以进行远程参数检测和控制。本章首先介绍串行通信的基础知识,然后详细介绍MCS-51单片机的串行口及其应用。,7.1串行通信概述,在实际应用中,计算机与外部设备之间,计算机与计算机之间之间常常要进行信息交换,所有这些信息的交换均称为“通信”。通信的基本方式分为并行通信和串行通信两种。MCS-51单片机具有并行通信和串行通信两种通信方式,给单片机在通信中的应用带来了极大方便。,并行通信是构成数据信息的各位同时进行传送的通信方式,例如8位数据或16位数据并行传送。图7-1(a)为并行通信方式的示意图。其特点是传输速度快,缺点是需要多条传输线,当距离较远、位数又多时,导致通信线路复杂且成本高。在单片机中,一般常常用于CPU 与LED、LCD显示器的连接,CPU与A|D、D|A转换器之间的数据传送等并行接口方面。,串行通信是数据一位接一位地顺序传送。图7-1(b)为串行通信方式的示意图。其特点是通信线路简单,只要一对传输线就可以实现通信(如电话线),从而大大地降低了成本,特别适用于远距离通信。缺点是传送速度慢。,由图7-1可知,假设并行传送N位数据所需时间为T,那么串行传送的时间至少为NT,实际上总是大于NT的。,在串行通信时,机内的并行数据传送到内部移位寄存器中,然后数据被移位寄存器形成串行数据,通过通信线传送到接收端,再将串行数据逐位移入移位寄存器后转换成并行数据存放在机中。进行串行通信的接收端和发送端的计算机,必须有一定的约定,必须有相同的传送速率并采用同一的编码方法,接收端的计算机必须知道发送端的计算机发送了那些信息,发送的信息是否正确,如果有错如何通知对方重新发送。发送端的计算机必须知道接收端的计算机是否正确接收到信息,是否需要重新发送,这些约定称为串行通信协议或规程。通信双方遵守这些协议才能正确地进行数据通信。,串行通信的分类,按照串行通信的时钟控制方式,串行通信可分为异步传送和同步传送两种基本方式。1.异步通信(Asynchronous Communication)异步传送的特点是数据在线路上的传送不连续,在传送时,数据是以字符为单位组成字符帧进行传送的。字符帧由发送端一帧一帧地发送,每一帧数据位均是低位在前高位在后,通过传输线被接收端一帧一帧地接收。发送端和接收端可以由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。,在异步通信中,接收端是依靠字符帧格式来判断发送端是何时开始发送,何时结束发送的。字符帧格式是异步通信的一个重要指标,是CPU与外设之间事先的约定。(1)字符帧(Character Frame)字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位4个部分组成。图7-2为异步传送的字符帧格式。,起始位:位于字符帧开始,起始位为0信号,只占1位,用于表示发送字符的开始;数据位:紧接起始位之后的就是数据位,它可以是5位、6位、7位或8位,传送时低位在先、高位在后;奇偶校验位:数据位后面的1位为奇偶校验位,可0可1,可要也可以不要,由用户决定;停止位:位于字符帧最后,它用信号1来表示1帧字符发送的结束,可以是1位、1位半或2位。,在串行通信中,两相邻字符帧之间,可以没有空闲位,也可以有若干空闲位,这由用户来决定。图7-2(a)为无空闲位的字符帧,图7-2(b)有空闲位的字符帧。图中数据位为 7位。,例如,采用串行异步通信方式传送ASCII码字符5,规定为7位数据位,1位偶校验位,1位停止位,无空闲位。由于5的ASCII码为35H,其对应7位数据位为0110101,如按低位在前、高位在后顺序排列应为1010110。前面加1位起始位0,后面配上偶校验位1位0,最后面加1位停止位1,因此传送的字符格式为0101011001,其对应的波形如图图7-3所示。,(2)波特率(Baudrate)串行通信的快慢用波特率来表示,51系列单片机串行口有4种工作方式,波得率也随之不同,波得率和帧格式可以通过软件编程来设置,必须正确进行波得率的设置,才能进行可靠的数据通信。,波特率是异步通信的另一个重要指标。波特率就是数据的传送速率,即每秒钟传送二进制数码的位数,单位为位/秒(b/s),也叫波特数。但波特率与字符的实际传送速率不同,字符的实际传送速率(字符帧/秒)是每秒内所传送的字符帧数,和字符帧格式有关。通常异步通信的波特率为509600b/s。异步通信要求要求发送端与接收端的波特率必须一致。,波特率与字符的传送速率(字符/秒)之间存在如下关系:波特率=位/字符字符/秒=位/秒。例如,假设字符传送的速率为120字符/秒,而每1个字符为10位,那么传送的波特率为:10位/字符120字符/秒=1200位/秒=1200波特,典型串行传输的波特率有110、150、300、1200、2400、4800、9.6K、19.2K、。每1位二进制位的传送时间Td就是波特率的倒数,例如上例中Td=1/1200=0.833ms。,异步通信的优点是不需要传送同步时钟,字符帧的长度不受限制,设施简单;缺点是字符帧中因包含起始位和停止位而降低了有效数据的传输速率。,2.同步通信(Synchronous Communication)在异步传送中,每1个字符帧都要用起始位和停止位作为字符开始和结束的标志,占用了一定的时间。同步通信是一种连续串行传送数据的通信方式,1次通信只传输一帧信息,即1次传送1组数据。这里的信息帧和异步通信的字符帧不同,通常有若干个数据字符,如图7-4所示。图7-4(a)为单同步字符帧结构,图7.4(b)为双同步字符帧结构,但它们均由同步字符SYN、数据字符和校验字符CRC三部分组成,数据字符间没有空闲位。在同步通信中,同步字符可以采用统一的标准格式,也可以由用户约定。,使用同步通信方式,可以实现高速度、大容量的数据传送,其缺点是要求发送时钟和接收时钟保持严格同步。故发送时钟除应和发送波特率保持一致外,还应把它同时传送到接收端去。,串行通信的制式 在串行通信中数据是在两个站之间进行传送的,按照数据传送方向,串行通信可分为单工(simplex)、半双工(half duplex)和全双工(full duplex)三种制式。图7-5为三种制式的示意图。,(1)单工制式 在单工制式下,通信线的一端接发送器,一端接接收器,数据只能按照一个固定的方向传送,如图7-5(a)所示,A端为发送站,B端为接收站,数据仅能从A站发至B站。这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。,(2)半双工制式:数据可实现双向传送,但不能同时进行,在半双工制式下,系统的每个通信设备都由一个发送器和一个接收器组成,数据既可从A站发送到B站,也可以由B站发送到A站。不过在同一时间只能作1个方向的传送,即只能一端发送,一端接收,如图7-5(b)所示。其收/发开关一般是由软件控制的电子开关。实际的应用采用某种协议实现收/发开关转换。,(3)全双工制式:全双工通信系统的每端都有发送器和接收器,可以同时发送和接收,即数据可以在两个方向上同时传送,如图7-5(c)所示。一般全双工传输方式的线路和设备较复杂。在实际应用中,尽管多数串行通信接口电路具有全双工功能,但一般情况下,多工作于半双工制式下,这种用法简单、实用。,信号的调制和解调,通信系统包括数据传送端、数据接收端、数据转换接口和传送数据的线路。单片机、PC机、工作站以及外设都可以作为传送、接收数据的终端设备。数据在传送过程中常常需要一些中间设备,这些中间设备称为数据交换设备,负责数据的传送工作。数据在通信过程中,由数据的终端设备传送端送出数据,通过调制解调器把数据转换为一定的电平信号,在通信线路上进行传输。通信信息被传输到计算机的接收端时,同样,也需要通过调制解调器把电平信号转换为计算机能接受的数据,数据才能进入计算机。,计算机通信是数字信号的通信,它要求传送线的频带很宽。在长距离通信时,传输线(通常电话线)很难具有足够宽的频带,如果用数字信号经过传送线直接通信,信号就会畸变。因此要在发送端用调制器(Modulator)把数字信号转换为模拟信号,在接收端用解调器(Demodulator)检测此模拟信号,再把它转换成数字信号。调制方法有很多种,FSK(FrequencyShiftKeying)是1种常用的调制方法,它把数字信号的“1”与“0”调制成不同频率的模拟信号,调制和解调此处不作详述,请参阅有关资料。,串行通信的接口电路,串行接口电路的种类和型号很多。能够完成异步通信的硬件电路称为UART,即通用异步接收器/发送器(Universal Asychronous Receiver/Transmitter);能够完成同步通信的硬件电路称为USRT(Universal Sychronous Receiver/Transmitter);既能够完成异步通信又能同步通信的硬件电路称为USART(Universal Sychronous Asychronous Receiver/Transmitter)。,从本质上说,所有的串行接口电路都是以并行数据形式与CPU接口,以串行数据形式与外部逻辑接口。它们的基本功能都是从外部逻辑接收串行数据,转换成并行数据后传送给CPU,或从CPU接收并行数据,转换成串行数据后输出到外部逻辑。计算机在通信过程中,通常使用RS-232C等接口,通信线路常用双绞线、同轴电缆、光纤或无线电波。,7.2串行通信总线标准及其接口,在单片机应用系统中,数据通信多采用异步串行通信。在设计通信接口时,必须根据需要选择标准接口,同时,要考虑传输介质、电平转换等问题。8051芯片内有一个全双工的串行接口,该串行接口不仅可以和终端、系统主机等进行通信,而且也可以作为单片机之间的通信口,大大拓宽了其应用范围。,但8051的串行接口,输入/输出均为TTL电平。这种以TTL电平传输数据的方式,抗干扰性差,传输距离短。为了提高串行通信的可靠性,增大通信距离,可采用标准串行接口。,标准串行通信接口电路有多种,异步串行通信接口主要有RS-232C接口;RS-422A、RS-423A接口以及20mA电流环等类型。采用标准接口后,能够方便地把单片机和外设、测量仪器等有机地结合起来,从而构成一个测控系统。例如当需要单片机和PC机通信时,通常采用RS-232C接口进行电平转换。下面对上述几种接口电路进行简单介绍。,7.2.1 RS-232C接口,RS-232C是美国电子工业协会(EIA)1962年公布,1969年最后修定而成的通信协议。其中,RS表示Recommended Standard,232是该标准的标识号,C表示最后一次修定。RS-232C串行接口总线适用于:设备之间的通信距离不大于15 m,传输速率不大于20 kb/s的通信领域,是使用最早、应用较多的一种异步串行通信总线标准。,它包括了按位串行传输的电气和机械方面的规定。适应于数据终端设备(DTE)和数据电路终接设备(DCE)之间的接口。其中DTE主要包括计算机和各种终端机,而DCE的典型代表是调制解调器。,例如CRT、打印机与CPU的通信大都采用RS-232C接口,MCS-51单片机与PC机的通信也是采用该种类型的接口。由于MCS-51系列单片机本身有一个全双工的串行接口,因此该系列单片机用RS-232C串行接口总线非常方便。,1.RS-232C信息格式标准 RS-232C采用串行格式,如图7-6所示。该标准规定:信息的开始为起始位,信息的结束为停止位;信息本身可以是5、6、7、8位再加一位奇偶校验位。如果两个信息之间无信息,则写“1”,表示空。,2.RS-232C总线规定及其电平转换器 RS-232C是1种有25个引脚的连接器,标准总线为25根,采用标准的D型25芯插头座。在微机通信中,通常被使用的RS-232C接口信号只有9根引脚,在此不作赘述。,RS-232C规定了自己的电气标准,它的每一个引脚的规定以及对各种信号的电平规定都是标准的,因而便于互相连接。由于它是在TTL电路之前研制的,所以它的电平不是+5 V和地,而是采用负逻辑,即逻辑“0”:+3 V+15 V;逻辑“1”:-3 V-15 V。因此,RS-232C不能和TTL电平直接相连,使用时必须进行电平转换,否则将使TTL电路烧坏,实际应用时必须注意!常用的电平转换集成电路是传输线驱动器MC1488和传输线接收器MC1489,如图7-7所示。,MC1488内部有三个与非门和一个反相器,供电电压为12 V,输入为TTL电平,输出为RS-232C电平。MC1489内部有4个反相器,供电电压为+5 V,输入为RS-232C电平,输出为TTL电平。,3.RS-232C使用注意事项 实际应用中,RS-232C应注意以下两点:(1)远距离和近距离通信时,所需使用的信号线是不同的。远距离通信时,一般要加调制解调器,使用的信号线较多。而近距离通信时,不采用调制解调器,通信双方可以直接连接,这种情况下,只需要几根信号线即可。最简单的情况,仅用发送数据、接收数据和信号地三根线即可实现全双工异步通信。,(2)在实际应用中,计算机和数字通信设备(如调制解调器)之间通信时,是通过计算机串行口与通信设备连接的。因此,从RS-232标准的角度来看,可以把计算机串行口视为计算机终端设备。RS-232规定的信号线,也就是计算机串行口与通信设备进行连接所使用的信号线。对于MCS-51单片机,利用其RXD(串行数据接收端)线、TXD(串行数据发送端)线和一根地线,就可以构成符合RS-232C接口标准的全双工通信口。,7.2.2 RS-449、RS-422A、RS-423A标准接口,RS-232C虽然应用广泛,但因为推出较早,在现代通信系统中存在以下缺点:数据传输速率慢,传输距离短,未规定标准的连接器,接口处各信号间易产生串扰。鉴于此,EIA制定了新的标准RS-449,该标准除了与RS-232C兼容外,在提高传输速率,增加传输距离,改善电气性能等方面有了很大改进,1.RS-449标准接口 RS-449是1977年公布的标准接口,在很多方面可以代替RS-232C使用。RS-449与RS-232C的主要差别在于信号在导线上的传输方法不同:RS-232C是利用传输信号与公共地的电压差,RS-449是利用信号导线之间的信号电压差,在1219.2 m的24-AWG双铰线上进行数字通信。RS-449规定了两种接口标准连接器,一种为37脚,一种为9脚。,RS-449可以不使用调制解调器,它比RS-232C传输速率高,通信距离长,且由于RS-449系统用平衡信号差传输高速信号,所以噪声低,又可以多点或者使用公共线通信,故RS-449通信电缆可与多个设备并联。,2.RS-422A、RS-423A标准接口RS-422A文本给出了RS-449中对于通信电缆、驱动器和接收器的要求,规定双端电气接口形式,其标准是双端线传送信号。它具体通过传输线驱动器,将逻辑电平变换成电位差,完成发送端的信息传递;通过传输线接收器,把电位差变换成逻辑电平,完成接收端的信息接收。RS-422A比RS-232C传输距离长、速度快,传输速率最大可达10 Mb/s,在此速率下,电缆的允许长度为12 m,如果采用低速率传输,最大距离可达1200 m。,RS-422A和TTL进行电平转换最常用的芯片是传输线驱动器SN75174和传输线接收器SN75175,这两种芯片的设计都符合EIA标准RS-422A,均采用+5 V电源供电。RS-422A的接口电路如图7-8所示,发送器SN75174将TTL电平转换为标准的RS-422A电平;接收器SN75175将RS-422A接口信号转换为TTL电平。,RS-423A和RS-422A文本一样,也给出了RS-449中对于通信电缆、驱动器和接收器的要求。RS-423A给出了不平衡信号差的规定,而RS-422A给出的是平衡信号差的规定。RS-422标准接口的最大传输速率为100 kb/s,电缆的允许长度为90m。RS-423A也需要进行电平转换,常用的驱动器和接收器为3691和26L32。其接口电路如图7-9所示。,7.2.3 20mA电流环路串行接口,20 mA电流环是目前串行通信中广泛使用的一种接口电路。电流环串行通信接口的最大优点是低阻传输线对电气噪声不敏感,而且易实现光电隔离,因此在长距离通信时要比RS-232C优越得多。图7-10是一个实用的20 mA电流环接口电路。它是一个加上光电隔离的电流环传送和接收电路。在发送端,将TTL电平转换为环路电流信号,在接收端又转换成TTL电平。,通过介绍以上接口介绍,可以看出,在计算机进行串行通信时,选择接口标准必须注意以下几点:(1)可靠性。传输的信息不允许出现错误,在串行通道的各个环节上都要保证有高可靠性的传输,满足特定环境要求的接口标准选择尤其重要。,(2)通信速度和通信距离。通常的标准串行接口,都要满足可靠传输时的最大通信速度和传送距离指标,但这两个指标具有相关性,适当降低传输速度,可以提高通信距离,反之亦然。例如,采用RS-232C标准进行单向数据传输时,最大的传输速度为20 kb/s,最大的传输距离为15 m。而采用RS-422A标准时,最大的传输速度可达10 Mb/s,最大的传输距离为300 m,适当降低传输速度,传输距离可达1200 m。,(3)抗干扰能力。通常选择的标准接口,在保证不超过其使用范围时都有一定的抗干扰能力,以保证可靠的信号传输。但在一些工业测控系统中,通信环境十分恶劣,因此在通信介质选择、接口标准选择时,要充分考虑抗干扰能力,并采取必要的抗干扰措施。例如在长距离传输时,使用RS-422A标准,能有效地抑制共模信号干扰;使用20mA电流环技术,能大大降低对噪声的敏感程度。在高噪声污染的环境中,通过使用光纤介质可减少噪声的干扰,通过光电隔离可以提高通信系统的安全性。,例如在计算机测控系统中,数据通信主要采用异步串行通信方式。在设计通信接口时,必须根据需要选择标准接口,并考虑传输介质、电平转换和通信控制芯片等问题,以保证通信的可靠性、通信速度、通信距离和抗干扰能力。,7.3 51单片机的串行接口,MCS-51单片机内部有1个功能很强的可编程全双工串行通信接口,可同时发送和接收数据。它不仅可以作UART用,也可以作同步移位寄存器用,还可以非常方便地构成1个或多个并行输入/输出口,或作串并转换,用来驱动键盘与显示器。,该串行接口有4种工作方式,帧格式有8位、10位、11位,其帧格式和波特率均可通过软件编程设置,接收、发送均可工作在查询方式或中断方式,使用十分灵活。本节仅介绍MCS-51单片机中的串行接口的结构、工作方式及其波特率。,MCS-5l单片机的串行口主要由两个独立的数据缓冲器SBUF、一个输入移位寄存器PCON(9位)、一个串行控制寄存器SCON和一个波特率发生器T1等组成。其结构见图7-11。,串行口的结构,实现单片机的串行口的引脚是RXD(P3.0)引脚和TXD(P3.1)引脚。控制单片机串行口接收/发送的控制寄存器共有三个,即特殊功能寄存器SBUF、SCON和PCON。数据缓冲器SBUF用于存放接收和欲发送的数据,串行控制寄存器SCON用来存放串行口的控制和状态信息。定时器/计数器T1作串行口的波特率发生器,其波特率是否增倍由电源和波特率控制寄存器PCON的最高位控制。,1.串行口数据缓冲器SBUF SBUF是两个在物理上独立的接收、发送寄存器,是可以直接寻址的专用寄存器。一个用于存放接收到的数据,另一个用于存放欲发送的数据,可同时发送和接收数据。两个缓冲器共用一个地址99H,通过对SBUF的读、写指令来区别是对接收缓冲器还是发送缓冲器进行操作。CPU在写SBUF时,就是修改发送缓冲器;读SBUF,就是读接收缓冲器的内容。接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的,因此可以同时发送、接收数据,其工作方式为全双工制式。,串口的接收/发送端具有缓冲的功能,由SBUF特殊功能寄存器实现该功能。接收缓冲器是双缓冲的,它是为了避免在接收下一帧数据之前,CPU未能及时响应接收器的中断,把上帧数据读走,而产生两帧数据重叠的问题而设置的双缓冲结构。对于发送缓冲器,由于发送时CPU是主动的,不会产生两帧数据写重叠的问题,同时为了保持最大传输速率,MCS-51的发送缓冲器为单缓冲。,2.电源和波特率控制寄存器PCON PCON是一个特殊功能寄存器,其字节地址为87H,只能进行字节寻址,不能按位寻址。PCON是为在CHMOS结构的51系列单片机上实现电源控制而附加的,对HMOS的5l系列单片机,只用了最高位,其余位都是虚设的。其格式如下:,PCON的最高位D7位作为SMOD,是串行口波特率的选择位。在工作方式1、2、3时,串行通信的波特率与SMOD有关。当SMOD=1时,波特率加倍,当SMOD=0时,波特率不变。例如在工作方式2下,若SMOD=0时,则波特率为64;当SMOD=1时,波特率为32,恰好增大一倍。系统复位后,SMOD位为0。其他各位用于电源管理在此不作赘述。,3.串行口控制寄存器SCON深入理解SCON各位的含义,正确地用软件设定或修改SCON的各位是使用MCS-51串行口的关键。该专用寄存器的主要功能是选择串行口的工作方式、接收和发送控制以及串行口的状态标志指示等,可以位寻址,字节地址为98H。收发双方都有对SCON的编程,单片机复位时,SCON的所有位全为0。SCON的各位含义如下:,(1)SM0 SM1(SCON.7、SCON.6):串行口的工作方式选择位。串行口的工作方式及功能如表7-1所示。(2)REN(SCON.4):串行口允许禁止接收控制位,由软件置位与复位。REN=1时,允许串行口接收数据;REN=0时,禁止串行口接收数据。,(3)TB8(SCON.3):方式2、3中TB8是要发送的第9位(帧格式中的D8位)数据,可由软件置位或复位,可做奇偶校验位。在多机通信中,可作为区别地址帧或数据帧的标识位,一般约定地址帧时,TB8为1,数据帧时,TB8为0。,(4)RB8(SCON.2):方式2、3中RB8是接收到的第9位(帧格式中的D8位)数据。可由软件置位或复位,可做奇偶校验位。在多机通信中,可作为区别地址帧或数据帧的标识位,一般约定地址帧时,RB8为1,数据帧时,RB8为0。方式1中,如果SM20,RS8是接收到的停止位,方式0中不使用这一位。,(5)SM2(SCON.5):多机通信允许控制位,主要用于方式2和方式3中。在方式2和方式3处于接收方式时,若SM2=1,则接收到的第9位数据(RB8)为0时,不启动接收中断标志RI(即RI=0),并且将接收到的前8位数据丢弃;RB8为1时,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求。在方式2、3处于接收或发送方式时,若SM2=0,不论接收到的第9位RB8为0还是为1,都将前8位数据装入SBUF中,并产生中断请求。,在方式l下,当SM2=0时,停止位进入RB8后才会激活RI使之置位;若SM2=l时,则只有收到有效的停止位(为1)且进入RB8后,才会激活RI使之置l,否则RI清0。在方式l下,通常将SM2设置为0。在方式0下,SM2必须设置为0,不用TB8和RB8位。,(6)TI(SCON.1):发送中断标志位,在一帧数据发送完后被置位。方式0时,发送完8位数据后,由硬件置位;其它方式,在停止位开始发送时,由硬件置位。因此,TI是发送完一帧数据的标志,可以用指令JBC TI,rel来查询是否发送结束。TI被置位后可向CPU申请中断。响应中断后,无论任何方式都必须由软件将TI清零。,(7)RI(SCON.0):接收中断标志位,在接收到一帧数据后由硬件置位。方式0时,接受完8位数据后,由硬件置位;其它方式,在接收到停止位的一半时由硬件将RI置位(还应考虑SM2的设定)。同TI一样,也可以通过JBC RI,rel来查询是否接收完一帧数据。RI被置位后,可向CPU申请中断,CPU响应中断后,从SBUF取出数据。但在方式1中,当SM2=1时,若未收到有效的停止位,则不会对RI置位。无论任何方式都必须由软件将RI清零。SCON的所有位复位时被清零。,4.串行通信过程串行通信包括数据的接收和数据的发送,串行通信的过程如下:(1)接收数据的过程当CPU允许接收(即SCON的REN位置1)且接收中断标志RI位复位时,就启动一次接收过程。接收数据时,外界数据通过引脚RXD(P3.0)串行输入,数据的最低位首先进入输入移位器,一帧数据接收完毕再并行送入缓冲器SBUF中,同时将接收中断标志位RI置1。当用软件将输入的数据读走并将RI位复位后,才能再开始下一帧数据的输入过程。这个过程重复进行直至所有数据接收完毕。,(2)发送数据的过程当发送中断标志TI位复位后,CPU执行任何一条写SBUF指令,就启动一次发送过程。CPU在执行写SBUF指令的同时启动发送控制器开始发送数据,被发送的数据由TXD(P3.1)引脚串行输出,首先输出最低位。当一帧数据发送完即发送缓冲器空时,CPU自动将发送中断标志TI位置位。当用软件将TI复位,同时又将下一帧数据写入SBUF后,CPU再次重复上述过程直到所有数据发送完毕。,5.串行通信的编程 串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下:(1)按选定串行口的操作模式设定SCON的SM0、SM1两位二进制编码。(2)对于操作模式 2 或 3,应根据需要在TB8 中写入待发送的第 9 位数据。(3)若选定的操作模式不是模式 0,还需设定接收/发送的波特率。设定SMOD的状态,以控制波特率是否加倍。若选定操作模式1或3,则应对定时器 T1进行初始化以设定其溢出率。,串行口的工作方式,MCS-51串行口的工作方式选择、中断标志、可编程位的设置、波特率的增倍均是通过两个特殊功能寄存器SCON和PCON来控制的。MCS-51的串行口有4种工作方式,通过SCON中的SM1、SM0位来决定,如表7-1所示。不同的工作方式,有不同的应用,其帧格式也不同,其帧格式见图7-12。四种工作方式中,串行通信只使用方式1、2、3。方式0不能用于串行同步通信中,经常将串行端口与外接移位寄存器结合起来,用于扩展单片机的并行输入/输出口。,1.工作方式0 当SM0=0、SM1=0时,串行口选择为方式0,这种方式为同步移位寄存器式输入输出方式,其帧格式见图7-12(a)。在这种方式下,8位数据从RXD(P3.0)引脚串行输入或输出,同步移位时钟由TXD(P3.1)引脚输出,波特率固定为fosc/12,即每一个机器周期输出或输入一位数据。该方式是以8位数据为一帧,没有起始位和停止位,先发送或接收最低位。这种方式主要用于扩展单片机的并行输入输出口。,(1)方式0发送当一帧数据写入串行口发送缓冲器SBUF时,串行口将8位数据以fosc/12的波特率从RXD引脚输出(低位在前),8位数据发送完置中断标志TI为1,TXD输出同步脉冲。一帧数据发送完毕,各控制端均恢复原状态,只有TI保持为1,请求中断。在再次发送数据之前,必须由软件清TI为0。,将单片机的TXD和RXD接到外部的一个8位串入并出(74LS164)寄存器,就可以使用方式0输出数据。串行口方式0发送的具体电路如图7-13所示。其中,74LS164为串入并出移位寄存器,1、2脚为串行数据输入端,3、4、5、6、10、11、12、13为并行数据输出端,8脚为时钟信号(上升延有效),7为地,14接+5V电源,9为选通端,低电平清零,高电平选通。74LS164能完成数据的串并转换。串行口的数据通过RXD引脚送到164的输入端,串行口输出的移位时钟通过TXD引脚加到164的时钟端。使用另一条I/O线P1.0控制164的输出允许选通端CLR(也可以将164的选通端直接接高电平)。,图7-13 方式0发送连线,当数据写入SBUF后,在移位脉冲(TXD)的控制下,数据从RXD端逐位移入74LS164。当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU响应中断,则开始执行串行口中断服务程序,数据由74LS164并行输出。此时,方式0可用于扩展I/O口输出。根据图7-13所示的硬件连接方法,串行口方式0发送数据程序片段如下:,MOV SCON,#00H;选方式0 SETB Pl.0;选通74LSl64 MOV A,#DATA;将发送的数据送A MOV SBUF,A;数据写入SBUF并启动发送 WAIT:JNB TI,WAIT;等待一个字节数据发送完CLR TI;发送完毕,清除TI中断标志CLR P1.0;关闭164选通若还要继续发送新的数,只要使程序返回到第二条指令处即可。,(2)方式0接收,在满足REN=1和RI=0(软件设定)的条件下,便启动串行接口接收数据。此时,RXD为串行输入端,TXD为同步脉冲输出端。串行口开始从RXD端以fosc/12的波特率输入数据(低位在前),当接收完8位数据后,置中断标志RI为1,请求中断。在再次接收数据之前,必须由软件清RI为0。串行控制寄存器SCON中的TB8和RB8在方式0中未用。值得注意的是,每当发送或接收,完8位数据后,硬件会自动置TI或RI为1,CPU响应TI或RI中断后,必须由用户用软件清0。方式0时,SM2必须为0。串行口方式0接收的基本连线方法如图7-14所示。其中,74LS165为并入串出移位寄存器。74LSl65的移位时钟仍由串行口的TXD端提供,74LS165的串行输出数据送到RXD端作为串行口的数据输入,输入端口上的8位数据从RXD引脚读进来。端口线P1.0作为74LS165的接收和移位控制端,当=0时,允许74LSl65置入并行数据;当=1时,允许165串行移位输出数据。当编程选择串行口方式0,并将SCON的REN位置位允许接收,就可,开始一个数据的接收过程。此时,方式0可用于扩展I/O口输入。,根据图7-14所示的硬件连接方法,串行口方式0接收数据程序片段如下:MOV R0,#50H;R0作片内RAM地址指针 MOV R7,#02H;R7作为接收字节计数指针 RQ:CLR P1.0;允许74LSl65置入并行数据 NOP SETB P1.0;允许74LSl65串行移位输出数据 MOV SCON,#10H;设串行口方式0,,开放接收允许 RQ1:JNB RI,RQ1;等待接收一帧数据 CLR RI;清RI中断标志 MOV A,SBUF;读SBUF MOV R0,A;存入片内RAM INC R0DJNZ R7,RQ;所有字节未接收完,继续循环,2.工作方式1,当SM0=0、SM1=1时,串行口被定义为方式l。该方式规定发送或接收10位为一帧,即一个起始位0、8个数据位、一个停止位1,波特率可以改变。波特率由SMOD位和T1的溢出率决定。其帧格式见图7.12(b)。此时,串行口为波特率可调的10位通用异步通信接口UART。UART通过TXD引脚传送数据到外部,RXD引脚则接收外面所送过来的串行数据。串行口采用该方式时,特别适合于点对点,的单片机之间异步通信。(1)数据发送 任何一条“写入SBUF”指令,都可启动一次发送,数据由TXD端输出。串行接口能够自动地在数据的前后添加一个起始位(为0)和一个停止位,组成10位一帧的数据,在发送移位脉冲的作用下依次从TXD端发送。每经过一个移位脉冲,由TXD输出一个数据位,当8位数据全部送完后,使中断标志TI置1,同时置TXD=1作为停止位发送出去,通知CPU 发送下一帧数据。,发送时的移位脉冲由定时器1的溢出信号经16或32分频取得(SMOD位决定)。(2)数据接收 当REN=1,RI=0时,接收器以所选波特率的16倍速检测RXD端的状态,接受移位脉冲的频率和发送频率相同。在没有数据送达前,RXD端的状态为1,若在RXD(P3.1)引脚上检测到一个由“1”到“0”负跳变信号,确认是起始位“0”,立即启动一次接收。为了保证接收到的信号的可靠性,单片机内部设置一个位检测器。,位检测器在一个16分频计数器的控制下工作,每启动一次接收,硬件首先将16分频计数器复位,使输入位的边沿与计数器满后翻转的时刻对齐,以实现同步。计数器的16个状态把每一位的时间分为16份,在第7、8、9状态时,位检测器对RXD端采样。取这3个状态是为了防止当发送端与接收端的波特率有差异时,保证通信不产生错位或漏码。由于这3个状态理论上对应于每一位的中央段,当发送端与接收端的波特率有差异时,虽然数据会发生偏移,但只要这种差异在允许范围内,就不至于产生错位或漏码。,在上述3个状态下,取得3个采样值,用3取2的表决方法确定接收的数据是否有效,当3个采样值中至少有2个一致时该数据才被接收。如果所接收的第一位不是0,说明它不是一帧数据的起始位,该位被放弃,接收电路被复位,再重新对RXD进行上述采样过程。若起始位有效(为0),就将其移入输入移位寄存器中,然后再接收这一帧中的其它位。接收完一帧数据后,当RI=0,且SM2=0或RI=0,且接收到的停止位为1时,接收数据有效,将接收移位寄存器内的8位数据并行装入SBUF,停止位置入SCON寄存器的RB8(SCON.2)中,,同时将RI置1。若不满足上述条件,则接收的数据信息将丢失。所以,方式1接收时,应先用软件清除RI或SM2标志。此后,接收控制器又将重新再采样测试RXD出现的负跳变,以接收下一帧数据。3.方式2、方式3 当SM0=1、SM1=0时,串行口被定义为方式2,当SM0=1、SM1=1时,串行口被定义为方式3。方式2下,串行口为11位通用异步接口UART,这种方式可接收或发送11位数据,传送波特率与PCON的最高位SMOD有关。,发送或接收的一帧数据包括1位起始位0,8位数据位,1位可编程位(D8)和1位停止位1,共11位,比方式1增加了一个数据位,其余相同。第9个数据位即D8位具有特别的用途,可以通过软件来控制它,用于奇偶校验,也可与特殊功能寄存器SCON中的SM2位配合,使MCS-51单片机的串行口适用于多机通信,其帧格式见图7-12(c)。如果串行口工作于接收状态,当接收一帧数据时,单片机硬件自动将接收到的D8位内容送往SCON.2中,即RB8。如果串行口工作于发送状态,当发送数据时,单片机硬件自动将,SCON.3中内容(即为TB8)作为一帧数据的D8位发送出去。串行口方式3和方式2除了波特率规定不同之外,其它的性能完全一样,都是ll位的帧格式。方式2的波特率只有fosc32和fosc64两种,而方式3的波特率是可变的。方式3也适合于多机通信。串行口方式2和方式3的与方式l相比主要区别在第9个数据位上。(1)数据发送发送时,先根据通信协议由软件设置TB8,然后用指令将要发送的数据写入SBUF,启动发送器。任何一条“写入SBUF”指令,都可,启动一次发送,并把TB8的内容装入发送寄存器的第9位(附加位),使 信号有效,发送开始。在发送过程中,先自动添加一个起始位放入TXD,然后每经过一个TX时钟(由波特率决定)产生一个移位脉冲,由TXD输出一个数据位。当最后一个数据位(附加位)送完之后,撤消,并使TI置位,同时置TXD=l作为停止位,使TXD输出一个完整的异步通信字符的格式。在发送下一帧信息之前,TI必须由中断服务程序或查询程序清0。(2)数据接收接收部分与方式1类似。当REN=1且消除RI后,,硬件将自动检测RXD(P3.1)上的信号,若检测到由l至0的跳变,立即启动一次接收。首先,判断是否为一个有效的起始位。对RXD的检测仍是以波特率的16倍速率采样,并在每个时钟周期的中间(第7、8、9计数状态)对RXD连续采样3次,取两次相同的值进行判决。若不是起始位

    注意事项

    本文(片机串行接口及.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开