串行通信及其接口.ppt

上传人:小飞机 文档编号:5911605 上传时间:2023-09-03 格式:PPT 页数:86 大小:1.41MB
返回 下载 相关 举报
串行通信及其接口.ppt_第1页
第1页 / 共86页
串行通信及其接口.ppt_第2页
第2页 / 共86页
串行通信及其接口.ppt_第3页
第3页 / 共86页
串行通信及其接口.ppt_第4页
第4页 / 共86页
串行通信及其接口.ppt_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《串行通信及其接口.ppt》由会员分享,可在线阅读,更多相关《串行通信及其接口.ppt(86页珍藏版)》请在三一办公上搜索。

1、单片机应用技术,主讲教师:苏晓龙,全校公共选修课,计算机学院信息科学系,办公室:计A315-1,答疑地点:计A315-1,E-mail:,第7章 串行通信及其接口,7.1串行通信的基本概念7.2 MCS-51的串行口7.3 串行口的控制7.4 串行口的应用,7.1 串行通信的基本概念,返回本章首页,计算机与外部的信息交换称为通信,基本的通信方式有两种:并行通信(parallel communication)和串行通信(serial communication)。,并行通信:所传送数据的各位同时发送或接收。串行通信:所传送数据的各位按顺序一位一位地发送或接收。,并行通信:速度快,但成本高,传输距

2、离受限;串行通信:通信线少,传输距离远,但速度较慢,7.1 串行通信的基本概念,返回本章首页,图7.1 并行通信与串行通信(a)并行通信;(b)串行通信,7.1 串行通信的基本概念,一、串行通信按数据流传输方向分,1、单工(Simplex)两个传输站点之间一方只能发送,另一方只能接收,2、半双工(Half Duplex),两个传输站点之间任何一方都能发送数据,但由于设备之间只有一条通信线路,在同一时刻只能在一个方向上传输数据,如对讲机。,串行通信的基本概念,一、串行通信按数据流传输方向分,两个传输站点之间双方使用不同的通信线路,同时发送和接收数据.如电话。,3、全双工(Full Duplex)

3、,串行通信的基本概念,二、串行通信的两种基本工作方式,异步方式、同步方式。,所有串行通信都需要一个时钟信号来作为数据的定时参考。发送器和接收器用时钟来决定何时发送和读取每一位数据。,根据采用统一时钟还是本地局部时钟,分为同步传输和异步传输两种。,同步传输用一个时钟确定一个数据位。异步传输用多个时钟确定一个数据位。,串行通信的基本概念,二、串行通信的两种基本工作方式,不发送数据时,传输线呈现高电平(MARK状态)。,1、异步方式(Asynchronous),采用不同的编码方案,发送字符可为5,6,7,或8位;,采用奇校验,保证“1”的个数为奇数;采用偶校验,保证1的个数为偶数;,异步串行通信数据

4、格式:,串行通信的基本概念,二、串行通信的两种基本工作方式,1、异步方式(Asynchronous),例:发送一个由8位数据位构成的字符45H,奇校 验、1位停止位。,停止位可以是1,1.5或2位。,异步传输先发送低位(LSB),异步传输的时钟定时方法:,数据(61H),1,0,0,0,1,1,停止位,发送方利用内部时钟来决定什么时候发送每个位,接收方检测开始信号的下降沿,然后利用它的内部时钟从每一位的中间接收该位,0,0,起始位,LSB,MSB,串行通信的基本概念,串行通信的基本概念,不发送数据时,传输线呈现高电平(MARK状态)。,同步字符可以为1个或2个。,根据双方约定,接收方监测到同步

5、字符后,接收被发送的字符流;将接收到的字符转换成并行数据。,内同步、外同步。,同步传输的时钟定时方法:,数据(61H),1位,1,1,0,0,0,0,1,先发送高位(MSB),发送方在时钟信号的下降沿发送字节,接收方在时钟信号的上升沿接收字节,时钟,串行通信的基本概念,0,同步通信的帧格式:同步传输需要定义一个帧的开始和结束。通常用1个同步字符(标志符)来表示。,串行通信的基本概念,三、串行传送速率,在串行通信中,常用波特率来表示数据传输的速率。,波特率:每秒传送的二进制位数。,单位:波特 Bd,如串行通信规定:一个串行字符包括1个起始位,7个数据位,1个奇偶校验位和1个停止位,共10个数据位

6、构成,每秒传送120个字符,则波特率为:10位/字符120字符/秒=1200位/秒 传送每一位占用的时间为:1秒/1200=0.833毫秒,波特率因子:发送/接收时钟与波特率之比。,7.2 MCS-51的串行口,7.2.1 串行口的结构7.2.2 串行口的工作方式7.2.3 波特率的计算,返回本章首页,MCS-51有一个可编程的全双工串行通信接口,可作为通用异步接收/发送器(UART-Universal Asychronous Receiver/Transmitter),也可作为同步移位寄存器。其帧格式可为8位、10位、11位,并可设置多种不同的波特率。它通过引脚RXD和TXD与外界进行通信。

7、,7.2.1 串行口的结构,MCS-51内部有两个物理上独立的接收、发送缓冲器SBUF。SBUF属于特殊功能寄存器。一个用于存放接收到的数据,另一个用于存放欲发送的数据,可同时发送和接收数据。两个缓冲器共用一个地址99H,通过对SBUF的读、写指令来区别是对接收缓冲器还是对发送缓冲器进行操作。CPU在写SBUF时,就是修改发送缓冲器;读SBUF,就是读接收缓冲器的内容。接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的,因此可以同时发送、接收数据。串行口的结构如图7.3所示。,7.2.1 串行口的结构,图7.3 串行口结构示意图,7.2.1 串行

8、口的结构,7.2.1 串行口的结构,1串行口控制寄存器SCON,图7-6 SCON格式,该寄存器的字节地址为98H,可位寻址。SCON格式如图7-6所示。,其各位的含义如下:,SM0、SM1串行口4种工作方式的选择位。串行口的4种工作方式如表7.1所示。,表8.1 串行口的4种工作方式,1串行口控制寄存器SCON,SM2多机通信控制位,用于方式2或方式3中。,1串行口控制寄存器SCON,当串行口以方式2或方式3接收时,如果SM2=1,只有当接收到的第9位数据(RB8)为“1”时,才将接收到的前8位数据送入SBUF,并将RI置“1”,产生中断请求;当接收到的第9位数据(RB8)为“0”时,则将接

9、收到的前8位数据丢弃。如果SM2=0,则不论第9位数据是“1”还是“0”,都将前8位数据送入SBUF中,并将RI置“1”,产生中断请求。在方式1时,如果SM2=1,则只有收到停止位时才会激活RI。在方式0时,SM2必须为0。,REN 允许串行接收位,由软件置“1”或清“0”。REN=1时,允许串行口接收数据;REN=0时,禁止串行口接收数据。,1串行口控制寄存器SCON,TB8 发送的第9位数据。方式2和方式3时,TB8是要发送的第9位数据,可作为奇偶校验位使用,也可作为地址帧或数据帧的标志。其中,TB8=1为地址帧,TB8=0为数据帧。,RB8 接收到的第9位数据。方式2和方式3时,RB8存

10、放接收到的第9位数据。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。,TI 发送中断标志位。发送中,TI必须保持零电平。方式0时,串行发送第8位数据结束时由硬件置“1”。其它工作方式,串行口发送停止位的开始时置“1”。TI=1,表示一帧数据发送结束,可供软件查询,也可申请中断。CPU响应中断后,在中断服务程序中向SBUF写入要发送的下一帧数据,TI必须由软件再清“0”。,1串行口控制寄存器SCON,RI 接收中断标志位。接收中RI必须保持零电平。方式0时,接收完第8位数据时,RI由硬件置1。其它工作方式,串行口接收到停止位时,该位置“1”。RI=1,表示一帧数据接收

11、完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的状态也可供软件查询。如果再接收,RI必须由软件再清“0”。,2特殊功能寄存器PCON,图7-7 PCON格式,返回本节,其字节地址为87H,没有位寻址功能。PCON的格式如图7-7所示,其中与串行接口有关的只有D7位。,SMOD:波特率选择位。当SMOD=1时,比SMOD=0时的波特率加倍,因此也称SMOD位为波特率倍增位。,7.2.2 串行口的工作方式,串行口工作方式,方式0为同步移位寄存器输入/输出方式,常用于外接移位寄存器,以扩展并行I/O口。8位数据为一帧,不设起始位和停止位,先发送或接收最低位。波特率固定为fosc/12。方式

12、0发送 当CPU执行一条将数据写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口即把SBUF中的8位数据以fosc/12的固定波特率从RXD引脚串行输出,低位在先,TXD引脚输出同步移位脉冲,发送完8位数据后将中断标志位TI置“1”。时序如图7.8所示。,7.2.2 串行口的工作方式,1方式0,图7.8 方式0发、收时序,7.2.2 串行口的工作方式,方式0接收 方式0接收时,REN为串行口接收允许接收控制位,REN=0,禁止接收。方式0下,SCON中的TB8、RB8位没有用到,发送或接收完8位数据由硬件将TI或中断标志位RI置“1”,CPU响应中断。TI或RI标志位须由用户软件清“0”,

13、可采用如下指令:CLR TI;TI位清“0”CLR RI;RI位清“0”方式0时,SM2位(多机通信控制位)必须为0。,7.2.2 串行口的工作方式,2 方式1,7.2.2 串行口的工作方式,方式1用于数据的串行发送和接收。TXD脚和RXD脚分别用于发送和接收数据。,方式1收、发一帧的数据为10位,1位起始位(0),8位数据位,1位停止位(1),先发送或接收最低位。,波特率由下式确定:方式1波特率=(2SMOD/32)定时器T1的溢出率,SMOD为PCON寄存器的最高位的值(0或1)。,方式1发送 方式1输出时,数据位由TXD端输出。当CPU执行一条数据写发送缓冲器SBUF的指令时,就启动发送

14、。图7.9(a)TX时钟的频率就是发送的波特率。发送开始时,内部发送控制信号变为有效,将起始位向TXD输出。此后,每经过一个TX时钟周期,便产生一个移位脉冲,并由TXD输出一个数据位。8位数据位全部发送完毕后,中断标志位TI置“1”。TI必须由用户清0,以便下一次发送。,2 方式1,7.2.2 串行口的工作方式,图7.9 方式1发、收时序(a)发送时序;(b)接收时序,方式1接收 接收数据的时序如图7.9(b)所示。当CPU采样到RXD端从1到0的跳变时(3次采样中至少2次有效),开始接收数据。一帧数据接收完毕以后,必须同时满足以下两个条件,这次接收才真正有效,然后RI自动置1。(1)RI=0

15、。(2)SM2=0或收到的停止位=1。若这两个条件不满足,则收到的数据不能装入SBUF,该帧数据将丢失。中断标志RI必须由用户清0,以便下一次接收。通常情况下,串口以方式1工作时,SM2=0。,2 方式1,7.2.2 串行口的工作方式,3 方式2,7.2.2 串行口的工作方式,方式2为9位异步通信方式。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控的第9位数据和1位停止位。方式2的波特率由下式确定:方式2波特率=(2SMOD/64)fosc,方式2发送前,先根据通信协议由软件设置SCON中的TB8(例如,双机通信时的奇偶校验位或多机通信时的地址/数据的标志位)。方式2发送数

16、据波形如图7.10所示。,图7.10 方式2发送时序,方式2接收 SM0、SM1=10,且REN=1。数据由RXD端输入,接收11位信息。当位检测逻辑采样到RXD引脚从1到0的负跳变,并判断起始位有效后,便开始接收一帧信息。在接收完第9位数据后,需满足以下两个条件,才能将接收到的数据送入SBUF。(1)RI=0,意味着接收缓冲器为空。(2)SM2=0或接收到的第9位数据位RB8=1。,3 方式2,7.2.2 串行口的工作方式,当上述两个条件满足时,接收到的数据送入SBUF(接收缓冲器),第9位数据送入SCON中的RB8,并将RI置“1”。若不满足这两个条件,则接收的信息将被丢弃。,串行口方式2

17、接收数据的时序波形如图7.11所示。由方式2的TI,RI也必须由用户清0,才能进行下一次的发送和接收。,3 方式2,7.2.2 串行口的工作方式,图7.11 方式2接收时序,4方式3,当SM0SM1=11时,串行口工作在方式3。方式3为波特率可变的9位异步通信方式,除了波特率外,方式3和方式2相同。方式3的波特率由下式确定:方式3波特率=(2SMOD/32)定时器T1的溢出率,返回本节,方式3发送和接收数据的时序波形见方式2的图(图7.10和图7.11)。,7.2.3 波特率的计算,表7-2 波特率计算公式,方式0和方式2的波特率是固定的;方式1和方式3的波特率可由定时器T1的溢出率来确定。,

18、7.2.3 波特率的计算,(1)方式0时,波特率固定为时钟频率fosc的1/12,且不受SMOD位的值的影响。若fosc=12 MHz,则波特率为fosc/12,即1 Mb/s。,(2)方式2时,波特率与SMOD位的值有关。方式2波特率=(2SMOD/64)fosc,若fosc=12 MHz,则当SMOD=0时,波特率=187.5 kb/s;当SMOD=1时,波特率=375 kb/s。,(3)串行口工作在方式1或方式3时,常用定时器T1作为波特率发生器,其波特率为:波特率=(2SMOD/64)T1的溢出率,7.2.3 波特率的计算,实际设定波特率时,T1常设置为方式2定时(自动装初值),这种方

19、式不仅操作方便,也可避免因软件重装初值而带来的定时误差。,实际使用时,经常根据已知波特率和时钟频率来计算T1的初值。为避免繁杂的初值计算,常用的波特率和初值间的关系列成表7.3,以供查用。,表7.3 定时器T1产生的常用波特率,7.2.3 波特率的计算,表7.3中有两点需要注意:,7.2.3 波特率的计算,时钟振荡频率为12 MHz或6 MHz时,表中初值和相应的波特率之间有一定误差。,例如,FDH的对应的理论值是10416波特(时钟6 MHz),与9600波特相差816波特。消除误差可以通过调整时钟振荡频率fosc来实现。例如采用的时钟振荡频率为11.0592 MHz。,如果串行通信选用很低

20、的波特率,例如,波特率选为55,可将定时器T1设置为方式1定时。但在这种情况下,T1溢出时,需要在中断服务程序中重新装入初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。,例:若51单片机的时钟振荡频率为11.0592 MHz,选用T1为方式2定时作为波特率发生器,波特率为2400 b/s,求初值。结果可直接从表7.3中查到,为F4H。这里因时钟振荡频率选为11.0592 MHz,计算过程中无余数,可使初值为整数,从而产生精确的波特率。,7.2.3 波特率的计算,4.波特率的自动检测 在分布式多波特率通信系统中,常常要求从设备在软件上能做到波特率随主设备自动

21、调整,使系统适应性更强,智能化程度更高。当然,一般情况下,波特率自动检测的范围仅限于标准波特率。,7.2.3 波特率的计算,常用实现波特率自动检测的方法有3种:(1)从设备启动通信程序后,逐一选择标准波特率,向主设备发送某个事先约定的握手代码,直到收到主设备发回的确认码,即可判定通信波特率。(2)利用串行异步通信每一帧起始位为低电平、停止位为高电平,用定时器记录每帧长度,从而判定系统通信波特率。(3)利用主设备发送某一特殊码型,从设备收到的码值会随主设备的波特率不同而不同,当从机收到约定的特殊码型时,便可确认系统的通信波特率。,7.2.3 波特率的计算,7.3 串行口的控制,7.3.1 主从机

22、间的通信7.3.2 RS-232C串行接口标准及应用,返回本章首页,7.3.1 主从机间的通信,1双机串行异步通信,利用串行口可以实现两台机器间的全双工通信。如图7.12所示。,设甲乙两台机器按全双工方式收发ASCII码字符,数据位为8位,其中最高一位用来作奇偶校验位,采用偶校验方式,要求传送的波特率为1200 b/s。假设发送缓冲区OUTBUF首址为片内RAM 60H,接收缓冲区INBUF首址为RAM 70H,时钟频率fosc=6 MHz,试编写有关的通信程序。,图7.12 双机通信系统,1)确定通信方式根据系统要求,通信双方要相互约定:7位ASCII码加1位校验位共8位数据,故可采用串行口

23、方式1进行通信。51单片机的奇偶校验位P是当累加器A中“1”的个数为奇数时P=1,为偶数时P=0。直接把P的值放入ASCII码的最高位(奇偶校验位),即为偶校验方式。,7.3.1 主从机间的通信,1双机串行异步通信,2)计算定时器T1的计数初值对于串行口方式1,波特率由定时器T1的溢出率和SMOD决定,定时器T1采用工作方式2,可以避免计数溢出后用软件重装定时初值。取SMOD=0,按式(5.4)可求得计数初值X 为,7.3.1 主从机间的通信,1双机串行异步通信,也可以通过查表7.3确定X=F3H。,3)确定相关寄存器参数(1)串行口控制寄存器SCON。,SM0、SM1=01时为方式1,在SM

24、2=0和REN=1条件下,允许接收数据,其余各位均取0,则SCON)=01010000B=50H。,(2)电源控制寄存器PCON。,7.3.1 主从机间的通信,1双机串行异步通信,由于SMOD=0,因此(PCON)=00H(同系统复位以后的状态,可不赋值)。,(3)确定定时器方式寄存器TMOD。,3)确定相关寄存器参数,1双机串行异步通信,由于只用T1,且为定时方式2,因此(TMOD)=00100000B=20H。请注意:串行通信端口的接收中断RI、发送中断TI共用一个中断向量(0023H),因此,串行口中断请求后,中断服务程序首先要判断是RI、TI当中的哪个请求中断。,4)编写有关的通信程序

25、 主程序:ORG 0000H LJMP MAINORG 0023H;串行中断入口LJMP SINOUT,1双机串行异步通信,ORG 0030H MAIN:MOV TMOD,20H;定时器T1设为方式2 MOV TL1,0F3H;装入定时器初值MOV TH1,0F3H;8位重装值SETB TR1;启动定时器T1MOV SCON,50H;串行口设为方MOV R0,60H;OUTBUF首址MOV R1,70H;INBUF首址SETB EA;开中断 SETB ES;允许串行口中断 LCALL SOUT;先发送1个字符 LJMP$;等待中断,4)编写有关的通信程序,1双机串行异步通信,;中断服务程序SI

26、NOUT:JNB RI,SEND;若不是接收,则转向;发送 LCALL SIN;若是接收,则调用接;收子程序RETI;中断返回SEND:LCALL SOUT;若是发送,则调用发;送子程序 RETI;中断返回;发送子程序,4)编写有关的通信程序,1双机串行异步通信,;发送子程序 SOUT:MOV A,R0;取发送数据到A MOV C,P;偶校验位赋予C MOV ACC.7,C;送入ASCII码最高;位中 INC R0;修改发送数据指针 MOV SBUF,A;发送数据 CLR TI;清发送中断标志 RET;子程序返回,4)编写有关的通信程序,1双机串行异步通信,;接收子程序SIN:MOV A,SU

27、BF;读入接收缓冲区内容 JNB P,EXIT;若P=0,则接收正确 ERROR:;若P=1,则接收错误;出错处理EXIT:ANL A,7FH;删去校验位 MOV R1,A;存入接收缓冲区 INC R1;修改接收缓冲区指针 CLR RI;清接收中断标志 RET;子程序返回,4)编写有关的通信程序,1双机串行异步通信,图7-16 两台8751互传数据,1双机串行异步通信,2.主从式多机通信,7.3.1 主从机间的通信,51系列单片机的多机通信通常采用主从式多机通信方式。在主从式多机系统中,有一台主机,多台从机,利用这种方式可以构成各种分布式控制系统,其系统结构如图7.17所示。其中,n个从机各有

28、惟一的一个地址码,地址码是识别从机身份的标志。主机发出的信息可以传送到各个从机或传送到某个指定的从机,而从机发出的信息只能被主机接收。,图7.17 主从式多机通信系统,2.主从式多机通信,7.3.1 主从机间的通信,多机通信中,要保证主机与从机间进行可靠的通信,通信接口必须具有从机身份的识别功能。串行口控制寄存器SCON中的SM2位就是为满足这一要求而设置的多机通信控制位。,2.主从式多机通信,7.3.1 主从机间的通信,串行口以方式2或方式3实现多机通信,主机发出的信息有两类,一类为地址信息,用来确定需要和主机通信的从机,其特征是主机串行传送的第9位信息TB8为1,即主机令TB8=1呼叫从机

29、;另一类是数据信息,特征是串行传送的第9位信息TB8为0,实现主从间的数据传输。,对从机来说,也要利用SCON寄存器中的SM2位的控制功能来区分地址信息和数据信息。,2.主从式多机通信,7.3.1 主从机间的通信,在接收时,令RI=0,若SM2为1,则仅当接收到的第9位信息RB8为1时,接收到的一帧信息才有效,接收到的数据才装入SBUF,置位RI,请求CPU对主机发出的信息进行处理。若SM2为1,接收到的第9位信息RB8为0时,则接收到的一帧信息无效。,若从机令SM2为0,则接收到一个数据后,不管第9位信息RB8是0还是1,都将数据装入接收缓冲器SBUF,并置位中断标志RI,请求CPU处理。因

30、此,对于从机来说,在接收地址时,应使SM2=1,以便接收到主机发来的地址码,从而确定主机是否打算和从机通信。一经确认后,从机应使SM2=0,以便接收数据或识别下一个地址码。,2.主从式多机通信,7.3.1 主从机间的通信,主从式多机通信的一般过程如下:,2.主从式多机通信,7.3.1 主从机间的通信,(1)使所有从机的SM2位置1(此时,所有的从机处于监听状态),以便接收主机发来的地址码。,(2)主机发出一帧地址信息,其中包括8位需要与之通信的从机地址码,第9位信息TB8为1。,(3)所有从机接收到地址帧后,各自将所接收到的地址与本机地址相比较,若与本机地址相同,则该从机便使SM2位清0以接收

31、主机随后发来的数据信息;对于地址不符合的从机,仍保持SM2=1的状态(仍处于监听状态),对主机随后发来的数据不予理睬,直至主机发送一个新的地址帧。,(4)主机给已被寻址的从机发送控制指令和数据(数据帧的第9位为0)。,2.主从式多机通信,7.3.1 主从机间的通信,RS-232C是美国电子工业协会EIA(Electronic Industry Association)于1962年制定的一种串行通信接口标准(1987年1月修改的RS-232C标准称为RS-232D,不过两者差别不大,因此仍可用旧标准)。RS-232C标准规定了在串行通信中数据终端设备(简称DTE,如个人计算机)和数据通信设备(简

32、称DCE,如调制解调器)间物理连接线路的机械、电气特性,以及通信格式和约定,该标准是异步串行通信中应用最广泛的总线标准。,7.3.2 RS-232C串行接口标准及应用,1.RS-232C的引脚功能,7.3.2 RS-232C串行接口标准及应用,完整的RS-232C接口由主信道、辅信道共22根连线组成,不过该标准对引脚的机械特性并未做严格规定,一般采用标准的25芯D型插座(通过25芯D型插头连接),其接口信号名称及主要信号流向如图7-18(a)所示。尽管辅信道也可用于串行通信,但速率低,很少用。此外,当两个设备以异步方式通信时,也无需使用主信道中所有的联络信号,因此RS-232C接口也可以采用9

33、芯D型插座(如微机系统中的串行口),其接口信号名称及主要信号流向如图7-18(b)所示。,1.RS-232C的引脚功能,图7-18 RS-232C接口插座(a)(a)25芯D型插座RS-232C接口信号名称及主要信号流向;,1.RS-232C的引脚功能,图7-18 RS-232C接口插座(b)(b)9芯D型插座上的RS-232C接口信号名称及主要信号流向,7.3.2 RS-232C串行接口标准及应用,2.RS-232C串行接口标准中主信道重要信号的含义:,7.3.2 RS-232C串行接口标准及应用,RS-232C串行接口标准中主信道重要信号的含义如下:TXD:串行数据发送引脚,输出。RXD:

34、串行数据接收引脚,输入。DSR:数据设备(DCE)准备就绪信号,输入,主要用于接收联络。当DSR信号有效时,表明本地的数据设备(DCE)处于就绪状态。DTR:数据终端(DTE)准备就绪信号,输出,用于DTE向DCE发送联络。当DTR信号有效时,表示DTE可以接收来自DCE的数据。,2.RS-232C串行接口标准中主信道重要信号的含义:,7.3.2 RS-232C串行接口标准及应用,RTS:发送请求,输出。当DTE需要向DCE发送数据时,向接收方(DCE)输出RTS信号。CTS:发送允许或清除发送,输入。作为“清除发送”信号使用时,由DCE输出,当CTS有效时,DTE将终止发送(如DCE忙或有重

35、要数据要回送DTE);而作为“允许发送”信号使用时,情况刚好相反:当接收方接收到RTS信号后进入接收状态,接收方准备就绪后向请求发送方回送CTS信号,发送方检测到CTS有效后,启动发送过程。,3.电平转换,7.3.2 RS-232C串行接口标准及应用,为保证数据的可靠传送,RS-232C标准规定发送数据线TXD和接收数据线RXD均采用EIA电平,即传送数字“1”时,传输线上的电平在3V15V之间;传送数字“0”时,传输线上的电平在315V之间。但单片机串行口采用正逻辑的TTL电平,这样就存在TTL电平与EIA电平之间的转换问题。,例如当单片机与PC机进行串行通信时,PC机的COM1或COM2口

36、发送引脚TXD信号是EIA电平,不能直接与单片机串行口接收端RXD引脚相连;同样单片机串行口发送端TXD引脚输出信号采用正逻辑的TTL电平,也不能直接与PC机串行口COM1或COM2的RXD端相连。,3.电平转换,7.3.2 RS-232C串行接口标准及应用,RS-232C与TTL之间电平转换芯片主要有传输线发送器MC1488(把TTL电平转成EIA电平)、传输线接收器MC1489(把EIA电平转成TTL电平)、MAX232以及Sipex202/232系列RS-232电平转换专用芯片。,其中MAX232以及Sipex202/232系列芯片集成度高,单5V电源(内置了电压倍增电路及负电源电路)工

37、作,只需外接5个容量为0.11F的小电容即可完成两路RS-232与TTL电平之间的转换,是单片机应用系统中最常用的RS-232电平转换芯片。MAX232电平转换芯片的引脚如图7-19所示,内部结构及典型应用电路如图7-20所示。,图7-19 MAX232管脚图,3.电平转换,7.3.2 RS-232C串行接口标准及应用,图7-20 MAX232芯片的典型应用电路,3.电平转换,7.3.2 RS-232C串行接口标准及应用,MAX232的推荐工作条件见表7.4。,3.电平转换,7.3.2 RS-232C串行接口标准及应用,表7.4 MAX232的推荐工作条件,MCS-51单片机利用MAX232与

38、PC机通信典型电路如图所示。,4.RS-232C的连接,7.3.2 RS-232C串行接口标准及应用,4.RS-232C的连接,实际上,RS-232C接口联络信号没有严格定义,通过RS-232C接口标准通信的两个设备可能只使用其中的一部分联络信号,在极端情况下也可能不使用联络信号,只通过TXD、RXD和GND三根连线实现串行通信。此外,联络信号的含义和连接方式也可能因设备种类的不同而有差异。正因如此,通过RS-232C接口通信的设备可能遇到不兼容的问题。,7.3.2 RS-232C串行接口标准及应用,1.应用方式0扩展MCS-51 芯片的输出口,在“串入并出”芯片(如74LS164、74LS1

39、65、74HC595等)的配合下,通过串行口方式0可扩展MCS-51 芯片的输出口。当使用74LS164芯片扩展输出口时,MCS-51 芯片的RXD引脚接74LS164芯片的串行数据输入端,TXD引脚接74LS164芯片的移位脉冲输入端CLK,如图7-21(a)所示。74HC595芯片功能比74LS164更强,采用16引脚封装,提供串行数据输出端SDO,级联方便(将前一片的串行数据输出端SDO接下一片的串行数据输入端SDI即可),当输出允许为高电平时,并行数据输出端QAQH为高组态。,7.4 串行接口的应用,图7-21 利用串行口方式0扩展输出口(a)通过74LS164“串入并出”芯片扩展输出

40、口;(b)通过74HC595“串入并出”芯片扩展输出口,1.应用方式0扩展MCS-51 芯片的输出口,当使用74HC595芯片扩展输出口时,MCS-51芯片的RXD引脚接74HC595芯片的串行数据输入端SDI,TXD引脚接74HC595芯片的串行移位脉冲输入端SRCLK,并行数据输出锁存脉冲RCLK可由CPU另一I/O引脚(如P1.7提供),串行移位寄存器清除端可接高电平,如图7-21(b)所示。值得注意的是,74HC595串行移位脉冲SRCLK对边缘有严格要求,当CPU I/O引脚驱动能力不足时,需在CPU I/O引脚与74HC595芯片的SRCLK输入端之间加驱动器,如CD40106芯片

41、等;此外还必须注意通过74HC595“串入并出”芯片输出时,应先送b7位。,7.4 串行接口的应用,1.应用方式0扩展MCS-51 芯片的输出口,串行数据输出过程概括如下:在发送中断标志TI为0(即无效)的情况下,执行写串行数据输出缓冲器SBUF指令(如“MOV SBUF,A”)即可将SBUF寄存器中的内容由低位到高位依次输出到RXD引脚,同时TXD引脚输出移位脉冲,使外接的“串入并出”芯片逐一接收来自RXD引脚上的串行数据。当8位数据发送结束后,发送中断标志TI自动置1,输出数据(即SBUF寄存器内容)也就出现在74LS164芯片的并行输出端。这样在执行写SBUF寄存器操作后,可通过查询TI

42、标志来确定发送过程是否完成。当然,在中断处于开放状态下(串行中断允许ES为1,中断允许EA为1),TI有效时,将产生串行中断请求。值得注意的是,CPU响应串行中断后不会自动清除TI,需要用“CLR TI”指令清除TI,以便输出新的串行数据。,1.应用方式0扩展MCS-51 芯片的输出口,参考程序如下:MOV SCON,#00000000B;定义串行口工作方;式,并清除发送中断TIMOV SUBF,A;输出串行数据LOOP:JNB TI,LOOP;等待一帧数据发送结束,在“并入串出”芯片(如74LS165、74HC597)的配合下,即可通过串行口方式0扩展MCS-51的输入引脚,其中MCS-51

43、的RXD引脚接74LS165芯片的串行数据输出端,TXD引脚接74LS165芯片的移位脉冲CLK,如图7-22所示。,图7-22 利用串行口方式0扩展输入口,1.应用方式0扩展MCS-51 芯片的输出口,串行数据输入过程概括如下:在REN位为1(允许接收)的情况下,通过执行“CLR RI”指令启动串行接收过程,即在移位脉冲(来自TXD引脚)作用下,74LS165芯片并行数据b0b7逐一移位到RXD引脚,并保存到CPU内的串行接收缓冲器内,当接收到b7位数据时,串行接收中断标志位RI为1,表明已接收了一帧数据,CPU读SBUF寄存器即可获得串行输入数据。这样在REN为1后,可通过查询RI标志来确

44、定接收过程是否结束。当然,在中断处于开放状态下(串行中断允许ES为1,中断允许EA为1)且RI有效时,将产生串行中断请求。值得注意的是,CPU响应串行中断后,不会自动清除RI,需要用“CLR RI”指令清除RI,以便接收新的数据。,1.应用方式0扩展MCS-51 芯片的输出口,在方式0中,串行口控制寄存器SCON内的TB8、RB8两位没有定义,可设为0,但SM2位必须为0;电源控制寄存器PCON中的波特率倍增位SMOD1位也没有定义,可以是任意值。,由于方式0不能自动插入及检测起始位、停止位,因此工作在方式0下的串行口不能作为串行通信口,只能用于扩展I/O口。,参考程序如下:MOV SCON,#00000000B;定义串行口工;作方式CLR P1.7;输出送数脉冲(允许;74LS165芯片接收并;锁存并行输入端数据)NOPSETB P1.7;延迟一个机器周期后,取消;送数负脉冲 SETB REN;允许接收CLR RI;清除接收中断标志RI,启动;接收串行LOOP:JNB RI,LOOP;等待一帧数据接收结束 MOV A,SBUF;读串行输入数据,1.应用方式0扩展MCS-51 芯片的输出口,7.4 串行接口的应用,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号