串行通信及其接口(老课件).ppt
《串行通信及其接口(老课件).ppt》由会员分享,可在线阅读,更多相关《串行通信及其接口(老课件).ppt(85页珍藏版)》请在三一办公上搜索。
1、第7章 串行通信及其接口,7.1串行通信的基本概念7.2 MCS-51的串行口7.3 串行口的控制7.4 串行口的应用,7.1 串行通信的基本概念,返回本章首页,计算机与外部的信息交换称为通信,基本的通信方式有两种:并行通信(parallel communication)和串行通信(serial communication)。,并行通信:所传送数据的各位同时发送或接收。串行通信:所传送数据的各位按顺序一位一位地发送或接收。,并行通信:速度快,但成本高,传输距离受限;串行通信:通信线少,传输距离远,但速度较慢,7.1 串行通信的基本概念,返回本章首页,图7.1 并行通信与串行通信(a)并行通信;
2、(b)串行通信,7.1 串行通信的基本概念,一、串行通信按数据流传输方向分,1、单工(Simplex)两个传输站点之间一方只能发送,另一方只能接收,2、半双工(Half Duplex),两个传输站点之间任何一方都能发送数据,但由于设备之间只有一条通信线路,在同一时刻只能在一个方向上传输数据,如对讲机。,串行通信的基本概念,一、串行通信按数据流传输方向分,两个传输站点之间双方使用不同的通信线路,同时发送和接收数据.如电话。,3、全双工(Full Duplex),串行通信的基本概念,二、串行通信的两种基本工作方式,异步方式、同步方式。,所有串行通信都需要一个时钟信号来作为数据的定时参考。发送器和接
3、收器用时钟来决定何时发送和读取每一位数据。,根据采用统一时钟还是本地局部时钟,分为同步传输和异步传输两种。,同步传输用一个时钟确定一个数据位。异步传输用多个时钟确定一个数据位。,串行通信的基本概念,二、串行通信的两种基本工作方式,不发送数据时,传输线呈现高电平(MARK状态)。,1、异步方式(Asynchronous),采用不同的编码方案,发送字符可为5,6,7,或8位;,采用奇校验,保证“1”的个数为奇数;采用偶校验,保证1的个数为偶数;,异步串行通信数据格式:,串行通信的基本概念,二、串行通信的两种基本工作方式,1、异步方式(Asynchronous),例:发送一个由8位数据位构成的字符4
4、5H,奇校 验、1位停止位。,停止位可以是1,1.5或2位。,异步传输先发送低位(LSB),异步传输的时钟定时方法:,数据(61H),1,0,0,0,1,1,停止位,发送方利用内部时钟来决定什么时候发送每个位,接收方检测开始信号的下降沿,然后利用它的内部时钟从每一位的中间接收该位,0,0,起始位,LSB,MSB,串行通信的基本概念,串行通信的基本概念,不发送数据时,传输线呈现高电平(MARK状态)。,同步字符可以为1个或2个。,根据双方约定,接收方监测到同步字符后,接收被发送的字符流;将接收到的字符转换成并行数据。,内同步、外同步。,同步传输的时钟定时方法:,数据(61H),1位,1,1,0,
5、0,0,0,1,先发送高位(MSB),发送方在时钟信号的下降沿发送字节,接收方在时钟信号的上升沿接收字节,时钟,串行通信的基本概念,0,同步通信的帧格式:同步传输需要定义一个帧的开始和结束。通常用1个同步字符(标志符)来表示。,串行通信的基本概念,三、串行传送速率,在串行通信中,常用波特率来表示数据传输的速率。,波特率:每秒传送的二进制位数。,单位:波特 Bd,如串行通信规定:一个串行字符包括1个起始位,7个数据位,1个奇偶校验位和1个停止位,共10个数据位构成,每秒传送120个字符,则波特率为:10位/字符120字符/秒=1200位/秒 传送每一位占用的时间为:1秒/1200=0.833毫秒
6、,波特率因子:发送/接收时钟与波特率之比。,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.2.1 串行口的结构,MCS-51内部有两个物理上独立的接收、发送缓冲器SBUF。SBUF属于特殊功能寄存器。一个用于存放接收到的数
7、据,另一个用于存放欲发送的数据,可同时发送和接收数据。两个缓冲器共用一个地址99H,通过对SBUF的读、写指令来区别是对接收缓冲器还是对发送缓冲器进行操作。CPU在写SBUF时,就是修改发送缓冲器;读SBUF,就是读接收缓冲器的内容。接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的,因此可以同时发送、接收数据。串行口的结构如图7.3所示。,7.2.1 串行口的结构,图7.3 串行口结构示意图,7.2.1 串行口的结构,7.2.1 串行口的结构,1串行口控制寄存器SCON,图7-6 SCON格式,该寄存器的字节地址为98H,可位寻址。SCON格式
8、如图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”时,则将接收到的前8位数据丢弃。如果SM2=0,则不论第9位数据是“1”还是“0”,都将前8位数据送入SBUF中,并将RI置“1”,产生中断请求。在
9、方式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存放接收到的第9位数据。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。,TI 发送中断标志位。发送中,TI必须保
10、持零电平。方式0时,串行发送第8位数据结束时由硬件置“1”。其它工作方式,串行口发送停止位的开始时置“1”。TI=1,表示一帧数据发送结束,可供软件查询,也可申请中断。CPU响应中断后,在中断服务程序中向SBUF写入要发送的下一帧数据,TI必须由软件再清“0”。,1串行口控制寄存器SCON,RI 接收中断标志位。接收中RI必须保持零电平。方式0时,接收完第8位数据时,RI由硬件置1。其它工作方式,串行口接收到停止位时,该位置“1”。RI=1,表示一帧数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的状态也可供软件查询。如果再接收,RI必须由软件再清“0”。,2特殊功能寄存器PC
11、ON,图7-7 PCON格式,返回本节,其字节地址为87H,没有位寻址功能。PCON的格式如图7-7所示,其中与串行接口有关的只有D7位。,SMOD:波特率选择位。当SMOD=1时,比SMOD=0时的波特率加倍,因此也称SMOD位为波特率倍增位。,7.2.2 串行口的工作方式,串行口工作方式,方式0为同步移位寄存器输入/输出方式,常用于外接移位寄存器,以扩展并行I/O口。8位数据为一帧,不设起始位和停止位,先发送或接收最低位。波特率固定为fosc/12。方式0发送 当CPU执行一条将数据写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口即把SBUF中的8位数据以fosc/12的固定波特率从
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”,可采用如下指令:CLR TI;TI位清“0”CLR RI;RI位清“0”方式0时,SM2位(多机通信控制位)必须为0。,7.2.2 串行口
13、的工作方式,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的指令时,就启动发送。图7.9(a)TX时钟的频率就是发送的波特率。发送开始时,内部发送控制信号变为有效,将起始位向TXD输出。此后,每经过一个TX时钟周期,
14、便产生一个移位脉冲,并由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。(2)SM2=0或收到的停止位=1。若这两个条件不满足,则收到的数据不能装入SBUF,该帧数据将丢失。中断标志RI必须由用户清0,以便下
15、一次接收。通常情况下,串口以方式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发送数据波形如图7.10所示。,图7.10 方式2发送时序,方式2接收 SM0、SM1=10,且REN=1。数据由RXD端输入,接收11位信息。
16、当位检测逻辑采样到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接收数据的时序波形如图7.11所示。由方式2的TI,RI也必须由用户清0,才能进行下一次的发送和接收。,3 方式2,7.2.2 串行口的工
17、作方式,图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的溢出率来确定。,7.2.3 波特率的计算,(1)方式0时,波特率固定为时钟频率fosc的1/12,且不受SMOD位的值的影响。若fosc=12 MHz,则
18、波特率为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定时(自动装初值),这种方式不仅操作方便,也可避免因软件重装初值而带来的定时误差。,实际使用时,经常根据已知波特率和时钟频率来计算T1的初值。为避免繁杂的初值计算,
19、常用的波特率和初值间的关系列成表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。,如果串行通信选用很低的波特率,例如,波特率选为55,可将定时器T1设置为方式1定时。但在这种情况下,T1溢出时,需要在中断服务程序中重新装入初值。中断响应时间
20、和执行指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。,例:若51单片机的时钟振荡频率为11.0592 MHz,选用T1为方式2定时作为波特率发生器,波特率为2400 b/s,求初值。结果可直接从表7.3中查到,为F4H。这里因时钟振荡频率选为11.0592 MHz,计算过程中无余数,可使初值为整数,从而产生精确的波特率。,7.2.3 波特率的计算,4.波特率的自动检测 在分布式多波特率通信系统中,常常要求从设备在软件上能做到波特率随主设备自动调整,使系统适应性更强,智能化程度更高。当然,一般情况下,波特率自动检测的范围仅限于标准波特率。,7.2.3 波特率的计算,常用实现波特率
21、自动检测的方法有3种:(1)从设备启动通信程序后,逐一选择标准波特率,向主设备发送某个事先约定的握手代码,直到收到主设备发回的确认码,即可判定通信波特率。(2)利用串行异步通信每一帧起始位为低电平、停止位为高电平,用定时器记录每帧长度,从而判定系统通信波特率。(3)利用主设备发送某一特殊码型,从设备收到的码值会随主设备的波特率不同而不同,当从机收到约定的特殊码型时,便可确认系统的通信波特率。,7.2.3 波特率的计算,7.3 串行口的控制,7.3.1 主从机间的通信7.3.2 RS-232C串行接口标准及应用,返回本章首页,7.3.1 主从机间的通信,1双机串行异步通信,利用串行口可以实现两台
22、机器间的全双工通信。如图7.12所示。,设甲乙两台机器按全双工方式收发ASCII码字符,数据位为8位,其中最高一位用来作奇偶校验位,采用偶校验方式,要求传送的波特率为1200 b/s。假设发送缓冲区OUTBUF首址为片内RAM 60H,接收缓冲区INBUF首址为RAM 70H,时钟频率fosc=6 MHz,试编写有关的通信程序。,图7.12 双机通信系统,1)确定通信方式根据系统要求,通信双方要相互约定:7位ASCII码加1位校验位共8位数据,故可采用串行口方式1进行通信。51单片机的奇偶校验位P是当累加器A中“1”的个数为奇数时P=1,为偶数时P=0。直接把P的值放入ASCII码的最高位(奇
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 通信 及其 接口 课件

链接地址:https://www.31ppt.com/p-6535439.html