第6章--串行接口及串行通信技术ppt课件(全).ppt
-
资源ID:77375967
资源大小:2.89MB
全文页数:35页
- 资源格式: PPT
下载积分:9金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
第6章--串行接口及串行通信技术ppt课件(全).ppt
第第6章章 串行接口及串行通信技术串行接口及串行通信技术张定祥制作张定祥制作6.1 串行通信基础知识串行通信基础知识6.2 AT89C51单片机的串行接口单片机的串行接口6.3 AT89C51单片机串行通信举例单片机串行通信举例6.4 串行通信总线标准及串行通信总线标准及RS-232C接口接口实训七:单片机间的双机通信实训七:单片机间的双机通信小结小结习题与思考题习题与思考题6.1 串行通信基础知识串行通信基础知识6.1.1 串行通信的基本概念串行通信的基本概念在实际工作中,计算机的CPU与外部设备(如打印机、显示器等)之间常常要进行信息交换,一台计算机与其他计算机之间也往往要交换信息,所有这些信息交换均可称为通信。(1)并行通信:将数据的各位用多条数据线同时进行传送。优点:传输速度快、速率高。缺点:数据有多少位,就需要多少根传送线,长距离传输成本高,可靠性差,只适用于近距离传输。(2)串行通信:将数据分成1位1位的形式在一条传输线上逐个地传送。优点:只需一对传输线,特别适用于远距离通信。6.1.2 串行通信的制式串行通信的制式根据同一时刻数据流的方向分为三种基本的数据传送方式:单工半双工、全双工。单工方式:指甲乙双方通信时只能单向传送数据,发送方和接收方固定。半双工方式:指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送。全双工方式:指通信双方都具有发送器和接收器,既可发送也可接收,而且能同时发送和接收。6.1.3 串行通信的分类串行通信的分类串行通信的数据是逐位传送的,发送方发送的每一位都具有固定的时间间隔,接收方也要按照发送方同样的时间间隔来接收每一位。按数据格式的不同,串行通信可分为同步串行通信和异步串行通信两种类型。(1)同步串行通信同步串行通信的信息帧均由同步字符、数据字符和校验字符(CRC)组成。其中,同步字符位于帧开头,有1个或2个,用于确认数据字符的开始。数据字符在同步字符之后,没有个数的限制,由所需传输的数据块长度来决定。校验字符有1到2个,用于接收端对接收到的字符序列进行正确性校验。优点:传输速度较快。缺点:要求发送时钟和接收时钟保持严格的同步,对硬件要求较高。适用于成批数据传送。(2)异步串行通信异步串行通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。有两个比较重要的指标:字符帧格式和波特率。字符帧的帧格式字符帧由四部分组成:起始位、数据位、奇偶校验位和停止位。起始位:位于字符帧的开头,只占一位,始终为逻辑低电平。数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后。奇偶校验位:占一位,用于对字符传送作正确性检查,有三种可能,即奇校验、偶校验和无校验,由用户根据需要选定。停止位:位于字符帧的末尾,为逻辑“1”高电平,可取1、1.5、2位。波特率每秒钟传送二进制代码的位数称之为波特率。每秒传送一个格式位就是1波特,即:1波特=1b/s(位/秒)。时钟频率高,则波特率也高,通信速度就快;反之,时钟频率低,则波特率也低,通信速度就慢。6.2 AT89C51单片机的串行接口单片机的串行接口6.2.1 串行接口的结构与控制串行接口的结构与控制AT89C51内部有一个可编程的全双工串行通信接口。它由一些特殊功能寄存器组成,即串行数据缓冲器(SBUF)、串行控制寄存器(SCON)和电源控制寄存器(PCON)等。串行接口结构如图6-4所示。图6-4串行口内部结构示意简图读SBUF:MOVA,SBUF;读入TI写SBUF:MOVSBUF,A;写入(1)串行数据缓冲器(SBUF)SBUF是串行数据缓冲寄存器,包括发送寄存器和接收寄存器,以便能以全双工方式进行通信。串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的。当向SBUF发“写”命令时(执行“MOVSBUF,A”指令),即是向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。在满足串行口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位REN(SCON.4)=1就会接收一帧数据进入输入移位寄存器,并装载到接收SBUF中,同时使RI=1。当发“读”SBUF命令时(执行“MOVA,SBUF”命令),便由接收缓冲器(SBUF)取出信息通过89C51内部总线送CPU。(2)串行控制寄存器(SCON)串行控制寄存器是用来定义串行口的工作方式及实施接收和发送控制的。它的字节地址为98H,位地址为98H9FH。其各位定义如表6-2所示。表6-2SCON内容及位地址位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRISM0、SM1:串行口工作方式选择位SM2:多机通信控制位。REN:接收允许控制位。REN1时允许接收,REN0时禁止接收。REN由软件置位或清零。TB8:要发送数据的第9位。在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式中,发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是串行发送中断申请信号。TI必须用软件清0。RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI也必须用软件清0。(3)电源控制寄存器(PCON)电源控制寄存器有一位对波特率会产生影响,即波特率倍增控制。电源控制寄存器PCON,其地址为87H,只能进行字节寻址,不能按位寻址。PCON的最高位D7位SMOD,是串行口波特率的增倍控制位。当SMOD1时,波特率加倍。系统复位时,SMOD位为0。6.2.2 串行接口的工作方式串行接口的工作方式MCS-51系列单片机的全双工串行口可编程为4种工作方式,由串行控制器(SCON)中的SM0、SM1决定。(1)方式0在方式0下,串行口作为同步移位寄存器使用。8位串行数据都是从RXD输入或输出,TXD用来输出同步脉冲。输出串行数据从RXD引脚输出,TXD引脚输出移位脉冲。CPU将数据写入发送寄存器时,立即启动发送,将8位数据以fosc/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送中断标志TI由硬件置位。当串行口以方式0接收数据时,先置位允许接收控制位REN。此时,RXD为串行数据输入端,TXD仍为同步脉冲移位输出端。当(RI)=0和(REN)=1同时满足时,开始接收。当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI。(2)方式1当串行口工作于方式1时,发送或接收一帧信息,包括1个起始位0,8个数据位和1个停止位1。方式1的波特率可变,由定时器/计数器T1的计数溢出率来决定,计算公式为波特率=2SMOD(T1溢出率)/32式中,SMOD为PCON的最高位;T1溢出率是指T1的计数器一秒钟内的溢出次数。在实际应用时,通常是先确定波特率,然后根据波特率求T1的定时初始值,因此可以得到公式:发送数据:数据从TXD端口输出,当数据写入发送缓冲器SBUF时,就启动发送器发送。发送完一帧数据后,置中断标志TI=1,申请中断,通知CPU可以发送下一个数据了。接收数据:首先使REN=1(允许接收数据),串行口从RXD接收数据,当采样到1到0跳变时,确认是起始位“0”,就开始接收一帧数据,当接收完一帧数据时,置中断标志RI=1,申请中断,通知CPU从SBUF取走接收到的数据。(3)方式2和方式3串行口工作在方式2、方式3时,为11位异步通信接口。发送或接收的一帧信息由11位组成,包括1位起始位“0”、8位数据位、1位可编程位、1位停止位“1”。方式2与方式3仅波特率不同,方式2的波特率固定而方式3的波特率是可变的。发送数据:发送前,先由软件设置TB8,然后将要发送的数据写入SBUF,即能启动发送器。发送过程是把8位数据装入SBUF,同时还把TB8装到发送移位寄存器的第9位上,然后从TXD(P3.1)端口输出一帧数据。接收数据:先置REN=1,使串行口为允许接收状态,同时还要将RI清“0”。然后再根据SM2的状态和所接收到的RB8的状态决定此串行口在信息到来后是否置RI=1,并申请中断,通知CPU接收数据。当SM2=0时,置RI=1,此串行口将接收发送来的信息。当SM2=1时,且RB8=1,表示在多机通信情况下,接收的信息为“地址帧”,此时置RI=1,串行口将接收发来的地址。当SM2=1时,且RB8=0,表示在多机通信情况下,接收的信息为“数据帧”,但不是发给本从机的,此时RI不置为“1”,因而SBUF中接收的数据帧将丢失。6.2.3 串行接口的波特率设计串行接口的波特率设计各种工作方式下其波特率的设置均有所不同,其中方式0和方式2的波特率是固定的,方式和方式3的波特率是可变的,由定时器T1的溢出率确定。(1)方式0的波特率方式0时,其波特率固定为振荡频率的1/12,并不受PCON中SMOD位的影响。因而,方式0的波特率=fosc/12。(2)方式的波特率方式的波特率由系统的振荡频率fosc和PCON的最高位SMOD确定,即为。在SMOD=0时,波特率=fosc/64;在SMOD=时,波特率=fosc/32。(3)方式1、3的波特率AT89C51串行口方式1、3的波特率由定时器T1的溢出率和SMOD的值共同确定。6.3 AT89C51单片机串行通信举例单片机串行通信举例双机通信用于单片机与单片机之间交换信息,也常用于单片机与微机间的信息交换。要建立通信,一般要求完成硬件连接与软件设置。(1)硬件连接如果两台单片机应用系统在进行通信时若距离较近,接口只需三根导线,将它们的串行口直接相连,即可实现双机通信。这种方法只适用于近距离通信,通信距离一般不超过15米。如果要加大通信距离,可以在两个单片机之间加入光电耦合器、电平转换电路及标准异步串行接口电路进行连接,如使用RS-232、RS-422、RS485、RS-423A及电流环等串行接口电路。(2)程序实现双机通信的程序实现,主要包括串行接口设置、串行接口接收程序、串行接口发送程序等。串行接口设置。包括对串行接口控制寄存器SCON的设置,其中有工作方式、是否允许接收、清除发送和接收中断标志等;串行接口中断的设置,是否允许串行接口中断(ES)与总中断(EA);波特率设置;PCON的SMOD位的设置等。串行接口接收程序。当接收到一帧数据时,RI标志位置1,这时用读SBUF的指令将接收到的数据读出,再清除RI标志位。判断RI标志位是否为1有两种方法,一种是查询方法,另一种是中断方式。串行接口发送程序。当串行接口准备好之后,使用写SBUF指令就会启动串行接口发送,发送完一帧数据,TI标志位会由硬件置1,在发送下一帧之前,必须用软件将TI清零,以便下一帧的发送。在判断TI是否为1时也有两种方法,与串行接口接收程序判断RI标志相似。单片机双机通信实例 【例【例6.1】单片机甲向单片机乙发送“READY”字符串,然后等待接收。甲机如果接收到乙机发送的“OK”字符串,则蜂鸣器响,否则就不响。硬件电路设计选用具有内部ROM的AT89C51单片机。两块单片机串口对应相接,即甲机的P3.0接乙机的P3.1,甲机的P3.1接乙机的P3.0,也就是说甲机的发送端接乙机的接收端,甲机的接收端接乙机的发送端;甲机的P1.0接蜂鸣器。当甲机的P1.0管脚输出高电平时,蜂鸣器就响,输出低电平时,蜂鸣器不响。电路图、源程序见教材148页。6.3.2 多机通信多机通信(1)多机通信原理单片机多机通信是指一台主机和多台从机之间的通信。串行口以方式2或方式3接收时,若SM21,则仅当接收到的第九位数据为1时,才将数据送入接收缓冲器SBUF,并置位RI发出中断请求信号,否则将丢失信息;而当SM20时,则无论第九位是0还是1,都能将数据装入SBUF,并产生中断请求信号。根据这个特性,便可实现主机与多个从机之间的串行通信。(2)硬件连接图6-7为89C51多机通信连接示意图,图中左边89C51为主机,其余89C51为从机。6.3.3 PC机与单片机间的串行通信机与单片机间的串行通信下面用一个实例来介绍PC机与AT89C51单片机之间的通信。本例中单片机可接收PC机发送的数字字符,按下单片机的K1键后,单片机可向PC机发送字符串。在Proteus环境下完成本实验时,需要安装VirtualSerialPortDriver和串口调试助手。(1)通信线路的连接PC机对外的接口中有一个RS-232C的标准串行接口,本例就用这个接口与单片机进行通信。单片机内有一个全双工的串行通信接口,但是其输入输出电平与RS-232C的电平标准不一致,因此需要对电平进行转换。这里采用MAX232芯片完成TTL到EIA双向电平的转换,转换后的电平就可以对接了。其电路连接图见教材151页。(2)单片机与PC机通信实例 【例【例6.2】单片机可接收PC机发送的数字字符,按下单片机的K1键后,单片机可向PC机发送字符串。在Proteus环境下完成本实验时,需要安装VirtualSerialPortDriver和串口调试助手。硬件电路设计AT89C51单片机串行口使用的是TTL电平,而PC机使用的是RS232电平,故单片机与PC机之间不能直接连接,通常需要在单片机端通过MAX232芯片将TTL电平转换为RS232电平格式。其硬件电路见教材152页。MAX232是MAXIM公司生产的单电源、双路RS232发送接收器。MAX232内部有一个电源电压变换器,可以把输入的+5V电压变换成RS232需要的10V电压,因而只需要+5V单电源供电。源程序见教材152页。6.4 串行通信总线标准及串行通信总线标准及RS-232C接口接口RS-232C标准是美国EIA等公司开发的1969年公布的通信协议。RS-232C标准(协议)的全称是EIA-RS-232C标准,定义是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。RS-232-C中EIA代表美国电子工业协会,RS代表推荐标准,232是标识号,C代表修改次数。EIA-RS-232C标准规定连接电缆,机械、电气特性,信号功能及传送过程。电脑上较为常见的通讯端口COM1、COM2,即DB9针串口,其实就是EIA-RS-232C标准的。(1)引脚定义和信号功能传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座。后来的PC机上使用简化了的9芯D型插座,在单片机应用中25芯插头座已很少采用。(2)电气特性与电平转换EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。在TxD和RxD上,逻辑1=-3V-15V,逻辑0=+3+15V;在RTS、CTS、DSR、DTR和DCD等控制线上,信号有效(接通,ON状态,正电压)=+3V+15V,信号无效(断开,OFF状态,负电压)=-3V-15V。EIA-RS-232C是用正负电压来表示逻辑状态的,与TTL器件用高低电平来表示逻辑状态的规定不同。所以,RS-232C不能和TTL电平直接相连,使用时必须加上适当的接口电路,否则将使TTL电路烧毁。为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片是MAXIM公司生产的、包含两路接收器和驱动器的IC芯片,适用于各种EIA-RS-232C和V.28V.24的通信接口。MAX232芯片可完成TTLEIA双向电平转换。(3)RS-232C串口通信接线方法目前较为常用的串口有9芯串口(DB9)和25芯串口(DB25),通信距离较近时(15m),可以用电缆线直接连接标准RS-232端口,若距离较远,需附加调制解调器(Modem)。零Modem的最简联机(三线制)最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连。串口传输数据只要有接收针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连,对于9芯串口(DB9)和25芯串口(DB25),均是2与3直接相连。记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接。图6-12是最简单的三线制连接法,图中的2号线与3号线交叉连接是因为在直连方式时,把通信双方都当作数据终端设备看待,双方都可发也可收。在这种方式下,通信双方的任何一方,只要请求发送RTS有效和数据终端准备好DTR有效就能开始发送和接收。图6-12零Modem最简单三线制连接法示意图零Modem标准连接如果想在直接连接时,而又考虑到RS-232C的联络控制信号,则采用零MODEM方式的标准连接方法,一般需要7根线,但其中多数应采用反馈与交叉相结合的连接法。无Modem的标准联线(7线制)如图6-13所示。图6-13无Modem的标准联线(7线制)示意图采用Modem(DCE)和电话网通信时的信号连接在远距离通信(传输距离大于15m的通信)时,一般要加调制解调器。若在双方Modem之间采用普通电话线进行通信,除了需要28号信号线外还要增加RI(22号)和DTR(20号)两个信号线进行联络,如图6-14所示。注意:在图6-14中,数据终端(DTE)信号为RS-232-C信号。图6-14采用Modem(DCE)和电话网通信时的信号连接示意图实训七:单片机间的双机通信实训七:单片机间的双机通信1实训目的实训目的通过本次实训,(1)了解双机通信的原理;(2)熟悉双机通信的工作方式;(3)掌握双机通信编程方法与技巧。2知识要点知识要点 硬件电路及工作原理 本实训是由两块单片机AT89C51、MAX232通信接口和九针插头组成,由甲机向乙机发送控制命令字符,甲机同时接收乙机发送的数字,并显示在数码管上。其硬件电路见教材157页。参考程序见教材157页。3实训器材实训器材(1)DICE-5208K开发型单片机综合实验仪1套。(2)PC机1台。(3)DICE-3000仿真器1台。(4)带插针的导线若干。4实训内容及步骤实训内容及步骤(1)启动ISIS7professional软件(具体使用方法见本教材附录五),并用其绘制图6-13所示电路原理图。(2)启动KeilC51uvision4软件(具体使用方法见本教材附录四)。建立工程,输入上述C51参考源程序并编译调试生成二进制的目标文件。(3)将第(2)步生成的二进制目标文件加载到第(1)步所绘图6-13所示电路原理图的AT89C51单片机中,然后仿真运行观察数码管的显示情况是否符合要求。(4)按硬件电路焊好电路板,将参考程序写入AT89C51单片机中,通电,观察数码管的显示情况是否符合要求。5思考题思考题(1)简述双机通信的基本原理。(2)本实训有哪些注意事项?(3)如何用汇编语言编程实现该功能?小小 结结本章主要讲述了AT89C51单片机的串行通信知识。主要内容有以下几个方面。第一,串行通信的概念。通信方法有并行通信和串行通信两种。串行通信根据数据流的方向又分为三种基本的数据传送方式,即单工、半双工、全双工。按数据格式的不同,串行通信又可分为同步串行通信和异步串行通信两种类型。同时,还介绍了波特率的概念。第二,AT89C51内部串行通信接口的结构与控制,工作方式和波特率计算。第三,介绍多块单片机之间的通信。第四,串行通信接口标准和RS-232C的引脚定义、通信接线方法等。习题与思考题习题与思考题一、填空题一、填空题1基本的通信方法有和两种。2串行通信双方进行数据传送时,根据数据流的方向分为三种基本传送方式,分别为、和。3串行数据缓冲器(SBUF)包括和。4串行接口工作方式下其波特率的设置均有所不同,其中和的波特率是固定的,和的波特率是可变的,由定时器T1的溢出率确定。5RS-232C串口通信接线方法有、和等三种。二、选择题二、选择题1串行接口的工作方式中,哪一种的波特率是唯一不变的()。A方式3B方式1C方式0D方式22同步串行通信传送数据帧是从那个位开始的()。A同步字符位B数据位C奇偶校验位D起始位3下列哪种芯片可完成TTLEIA双向电平转换()。ASN75154BSN75150CMC1489DMAX2324AT89C51在相应中断后,需要用软件来清除的标志位是()。AIEBTICRIDIT5AT89C51的串行口的数据发送和接收缓冲器都是()。ASBUF BSMOD CSCON DPCON6通过串行口发送或接收数据时,在程序中应使用()。AMOV指令 BMOVX指令 CMOVC指令 DSWAP指令三、综合题三、综合题1什么是异步串行通信,它有哪些作用?289C51单片机的串行口由哪些功能部件组成?各有什么作用?3简述串行口接收和发送数据的过程。489C51单片机串行口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定?5简述89C51单片机串行口在四种方式下的字符格式。6试比较89C51单片机串行口在四种方式下发送和接收数据的基本条件。7简述89C51单片机串行口在四种方式下波特率产生的方法。8若异步通信接口按方式3传送,已知其每分钟传送3600个字符,其波特率是多少?989C51单片机中SCON的SM2,TB8,RB8有何作用?10若晶振为11.0592MHz,串行口工作于方式1,波特率为4800b/s。写出用T1作为波特率发生器的方式字和计数初值。11若定时器T1设置成模式2作波特率发生器,已知设fosc6MHz。求可能产生的最高和最低的波特率是多少?13简述单片机多机通信的原理。14以89C51单片机串行口按工作方式1进行串行数据通信。假定波特率为1200b/s,以中断方式传送数据。请编写全双工通信程序。15某异步通信接口,其帧格式由1个起始位(0),7个数据位,1个奇偶校验位和1个停止位(1)组成。当该接口每分钟传送1800个字符时,试计算出传送波特率。16串行口工作在方式1和方式3时,其波特率与晶振频率fosc、定时器T1工作模式2的初值及SMOD位的关系如何?若设fosc6MHz,现利用定时器T1模式2产生的波特率为110b/s。试计算定时器初值。