版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章第九章 串行接口技术串行接口技术9-1 串行通讯的基本概念串行通讯的基本概念9-2 MCS-51的片内串行口的片内串行口9-3 串行方式的系统扩展技术串行方式的系统扩展技术 9-1 串行通讯的基本概念串行通讯的基本概念一、通讯的一般概念一、通讯的一般概念二、串行通讯的数据传送方式二、串行通讯的数据传送方式三、串行通讯的类型三、串行通讯的类型四、波特率与传输速率四、波特率与传输速率五、出错校验五、出错校验一、通讯的一般概念一、通讯的一般概念 1、通讯的定义: 计算机与计算机之间、计算机主机与外界(I/O设备)之间的信息交换称作通讯。 2、通讯的方法: 并行通讯:一条信息的多位二进制数据同时
2、被传送的通讯方式; 串行通讯:一条信息的多位二进制数据被逐位按顺序传送的通讯方式。二、串行通讯的数据传送方式二、串行通讯的数据传送方式(1) 串行通讯是将二进制数按时间顺序在单根导线上一位一位传送的通讯方式,与并行通讯相比,虽然传送效率较低,但在远距离传送时可节省大量线路成本,固得到广泛应用。 串行通讯有下述三种基本传送方式: 1、单工传送方式: 2、半双工传送方式: 3、全双工传送方式: 二、串行通讯的数据传送方式二、串行通讯的数据传送方式(2) 1、单工传送方式:、单工传送方式: 即单通道工作方式,是一种数据只沿一个方向传送的通讯方即单通道工作方式,是一种数据只沿一个方向传送的通讯方式;式
3、;如下图所示,如下图所示,A只能作发送器,只能作发送器,B只能作为接收器,数据只能从只能作为接收器,数据只能从A送往送往B,此时只需用一根传输线即可实现数据传送。,此时只需用一根传输线即可实现数据传送。 例:只发通道:主机对于输出设备;例:只发通道:主机对于输出设备; 只收通道:主机对于输入设备。只收通道:主机对于输入设备。A发送器B接收器数据流数据流二、串行通讯的数据传送方式二、串行通讯的数据传送方式(3) 2、半双工传送方式:、半双工传送方式: 即虽然是数据能够在两个方向上传送数据流的双通道工作方即虽然是数据能够在两个方向上传送数据流的双通道工作方式,但在同一时刻却只能由一台发送、另一台接
4、收;式,但在同一时刻却只能由一台发送、另一台接收;如下图所示,如下图所示,虽然仅用一根传输线,接收器虽然仅用一根传输线,接收器B发送器发送器发送器发送器A接收器但能交替进行双向接收器但能交替进行双向传送数据。即在某一时刻,传送数据。即在某一时刻,A只能作发送器,只能作发送器,B只能作接收器,数据只能只能作接收器,数据只能从从A送往送往B;但在另一时刻则可以反之。;但在另一时刻则可以反之。发送器A接收器接收器B发送器数据流数据流数据流数据流二、串行通讯的数据传送方式二、串行通讯的数据传送方式(4) 3、全双工传送方式:、全双工传送方式: 两台计算机在同一时刻既能接收数据又能发送数据的通讯方两台计
5、算机在同一时刻既能接收数据又能发送数据的通讯方式。式。如下图所示,采用二根传输线,能够在同一时刻进行双向传送数据。如下图所示,采用二根传输线,能够在同一时刻进行双向传送数据。即即A、B双方都必须有独立的接收器和发送器硬件结构,从而双方都必须有独立的接收器和发送器硬件结构,从而A、B双方双方在任何时刻都同时是一个发送器,也是一个接收器。在任何时刻都同时是一个发送器,也是一个接收器。 发送器A接收器接收器B发送器数据流数据流数据流数据流三、串行通讯的类型三、串行通讯的类型(1) 串行通讯过程中,按数据的同步方式不同,又可分为同步通讯与异步通讯两种工作方式。 1、同步通讯方式: 同步通讯时数据的传送
6、随同步信息的节拍进行。 2、异步通讯方式: 异步通讯的数据格式以字节为单位,发送方与接收方各自有自己的时钟,通讯时只要传送数据就可以了,无须传送同步信息。三、串行通讯的类型三、串行通讯的类型(2) 1、同步通讯方式:、同步通讯方式: 数据格式:特征是数据以数据格式:特征是数据以“块块”为单位,若干个字节组成为单位,若干个字节组成一个数据块,一个数据一个数据块,一个数据“块块”往往包括以下三项内容:往往包括以下三项内容: A)同步字符:最先发送的是标志数据传送开始的同步字符,)同步字符:最先发送的是标志数据传送开始的同步字符,按约定为按约定为0至若干字节;至若干字节; B)数据本身:接着发送的是
7、数据本身,一个一个字节依次)数据本身:接着发送的是数据本身,一个一个字节依次序被按约定的从低位到高位或从高位到低位连续一位一位传送;序被按约定的从低位到高位或从高位到低位连续一位一位传送; C)校验字符:最后发送的是为了提高数据传送可靠性的校)校验字符:最后发送的是为了提高数据传送可靠性的校验字符,也是按约定为验字符,也是按约定为0至若干字节;至若干字节; 通讯连线:由于传送过程中每传送一位数据都需有一个同通讯连线:由于传送过程中每传送一位数据都需有一个同步时钟,所谓同步通讯指的是位传送的同步,因此通常是三线制:步时钟,所谓同步通讯指的是位传送的同步,因此通常是三线制: A)SDA:一根传送数
8、据信息的信号线;:一根传送数据信息的信号线; B)SCL:一根传送时钟同步信息的时钟线;:一根传送时钟同步信息的时钟线; C)GND:一根公共线。:一根公共线。 通讯优点:通讯优点: 由于同步通讯的数据格式以数据块为单位,因此在相同速率由于同步通讯的数据格式以数据块为单位,因此在相同速率下其传输速度相对要比以字节为单位的异步通讯高。下其传输速度相对要比以字节为单位的异步通讯高。三、串行通讯的类型三、串行通讯的类型(3) 2、异步通讯方式、异步通讯方式 数据格式:特征是数据以“帧”为单位,一个数据“帧”包括以下四项: A)先传送的是以一个起始位(通常为“0”)表征传送字符的开始; B)接着传送7
9、8位的数据本身; C)再接着传送奇偶校验位(一位或无); D)最后以一个停止位(通常为“1”)表示表达1“帧”传送的结束。 通讯连线:异步通讯时发送、接收的双方速率一致,无须同步脉冲的传送,因此,除去公共线之外,半双工时只须一根连线,分时用于接收和发送;只有全双工时才须用2根连线,一根用于接收、一根用于发送。三、串行通讯的类型三、串行通讯的类型(4) 通讯协议:异步通讯必须遵循以下协议: A)发送、接收的双方通讯速率必须一致; B)不传送数据时,即“空闲”时,传输线必须保持为“1”,称之为标志状态; C)发送数据时,必须预先发送1位虚拟位,该位必为“0”,称之为“起始”位; D)起始位之后紧跟
10、的是78的数据位及01位的校验位; E)1帧发送完成时,以12位指定为“1”的虚拟位表示结束,称之为“停止”位。三、串行通讯的类型三、串行通讯的类型(5) 通讯过程:异步通讯过程中为了区别各位数据,发送端和通讯过程:异步通讯过程中为了区别各位数据,发送端和接收端各设置一个时钟。由于所采用的接收端各设置一个时钟。由于所采用的2个时钟的相位、频率不个时钟的相位、频率不可能完全一样,存在一定的误差。通常时钟频率取为每秒传送位可能完全一样,存在一定的误差。通常时钟频率取为每秒传送位数的整数倍。异步通讯的数据传送过程为:数的整数倍。异步通讯的数据传送过程为: 发送端的时钟频率若取为每秒发送位数的发送端的
11、时钟频率若取为每秒发送位数的16倍,则发送时每倍,则发送时每间隔时钟间隔时钟16分频发出一位串行数据;接收端的时钟频率若为发送分频发出一位串行数据;接收端的时钟频率若为发送端的端的1/2,则当接收端搜索到起始位(即第一个下降沿)时,以此,则当接收端搜索到起始位(即第一个下降沿)时,以此为起点,相隔为起点,相隔4个时钟周期时(即近于串行数据起始位的中点)个时钟周期时(即近于串行数据起始位的中点)对串行数据进行取样,以后每隔对串行数据进行取样,以后每隔8个时钟周期对串行数据取样一个时钟周期对串行数据取样一次(近于中点),直至结束。次(近于中点),直至结束。 我们之所以说我们之所以说“近于中点近于中
12、点”,这是由于接收端与发送端的频,这是由于接收端与发送端的频率、相位难于一致,但由于频率通常较高,而接收的一帧数据只率、相位难于一致,但由于频率通常较高,而接收的一帧数据只有有10位或位或11位,误差积累有限,所以对于发送、接收双方的时钟位,误差积累有限,所以对于发送、接收双方的时钟频率误差要求并不很高。频率误差要求并不很高。 通讯优点:由于异步通讯传送数据以字节为单位,每一个通讯优点:由于异步通讯传送数据以字节为单位,每一个字节都要附加起始位、结束位等,效率较低,但异步传送设备要字节都要附加起始位、结束位等,效率较低,但异步传送设备要求简单,除少用一根传输线外,还无须用硬件分离时钟与数据。求
13、简单,除少用一根传输线外,还无须用硬件分离时钟与数据。四、波特率与传输速率四、波特率与传输速率(1) 1、传输速率:、传输速率: 异步串行通讯过程中,双方规定好相同的速率,异步串行通讯过程中,双方规定好相同的速率,以实现通讯过程中的同步问题。以实现通讯过程中的同步问题。 串行通讯过程中每秒钟传送二进制数据的位数称串行通讯过程中每秒钟传送二进制数据的位数称之为传输速率或传输率。之为传输速率或传输率。 2、波特率:、波特率: 异步通讯中双方的通讯速率通常以波特率来约定。异步通讯中双方的通讯速率通常以波特率来约定。 单位时间内串行通讯过程中传输的二进制数据的单位时间内串行通讯过程中传输的二进制数据的
14、位数称之为波特率,与一位二进制数据持续时间有关。位数称之为波特率,与一位二进制数据持续时间有关。即:即: 波特率波特率=1位二进制数据位持续时间的倒数位二进制数据位持续时间的倒数四、波特率与传输速率四、波特率与传输速率(2) 国际上,波特率规定为:国际上,波特率规定为:110、300、600、1200、1800、2400、4800、9600、19200等。等。 通常异步通讯的波特率取通常异步通讯的波特率取19200以下。以下。 3、传输率与波特率的关系:、传输率与波特率的关系: 在不加调制的异步数据通讯中,波特率与在不加调制的异步数据通讯中,波特率与传输速率相等。加调制时则两者不相等。传输速率
15、相等。加调制时则两者不相等。五、出错校验五、出错校验(1) 采用串行通讯时一般要检测传输过程中是否有错误出现,检测错误的过程称之为校验。串行通讯中通常使用以下两种校验方式: 1、奇偶校验: 奇偶校验以字符为单位进行,每传输一个字符过程中加入一个校验位,该位为“0”或者“1”,则能够保证被传送的字符中的1的个数是奇数个(称奇校验)或偶数个(称偶校验)。51单片机中,对于累加器A中的数据,在PSW.0位P中表示该数据的奇偶性,P=1表示奇,P=0表示偶。五、出错校验五、出错校验(2) 累加和校验 对数据块的n个字节求和运算,把累加和附数据块后一起发送。接收端同样进行求和并比较。 CRC校验 把数据
16、块看成一个长2进制数,然后用特定的数去除它,所得到的余数作为校验码发送。9-2 MCS-51串行口串行口一、一、MCS-51串行口概述串行口概述二、二、MCS-51串行通讯口结构串行通讯口结构三、三、MCS-51串行口的四种工作方式串行口的四种工作方式四、多机通讯的工作过程四、多机通讯的工作过程五、五、MCS-51串行通讯口的应用编程串行通讯口的应用编程六、相关芯片六、相关芯片一、一、MCS-51串行口概述串行口概述 MCS51系列有一个全双工的异步串行通信接口,可以作为通用异步接收器和发送器UART(Universal Asynchronous Receiver and Transmitte
17、r),也可作为同步移位寄存器。 为了实现全双工异步通信,MCS-51串行接口内部采用两个独立的缓冲器结构。一个是专用于发送数据的发送缓冲器,只能写入不能读出;另一个是专门用来接收数据的接收缓冲器,只能读出不能写入。 二、二、MCS-51串行口结构串行口结构(1) 1、MCS-51串行通讯口的组成结构: MCS-51串行通讯口由发送数据缓冲器SBUF(地址为99H,只写)、发送控制器、输出控制门、接收数据缓冲器SBUF(地址为99H,只读)、接收控制器、输入移位寄存器等组成。EA ESSM0 SM1 SM2 REN TB8 RB8 TI RI波波特特率率发发生生器器串行口控制逻辑串行口控制逻辑发
18、送发送SBUF接收接收SBUFTIRI串行口中断串行口中断TXCLKRXCLK内部总线内部总线内内部部总总线线TXDRXDMCS-51串行口结构框图串行口结构框图SCONIE返回返回二、二、MCS-51串行口结构串行口结构(2) 2、MCS-51串行通讯口的端口寄存器:串行通讯口的端口寄存器: 两个特殊功能寄存器两个特殊功能寄存器SCON(地址为(地址为98H)、)、PCON(地址为(地址为97H)分别用于控制串行口的工作方)分别用于控制串行口的工作方式和波特率,波特率用定时器式和波特率,波特率用定时器T1或或52子系列的子系列的T2产生。产生。 串行口控制寄存器串行口控制寄存器SCON(地址
19、为(地址为98H):): 各位构成见下图各位构成见下图:SM0SM1SM2RENTB8RB8TIRI D7 D6 D5 D4 D3 D2 D1 D0二、二、MCS-51串行口结构串行口结构(3) SM0、SM1: 串行口工作方式选择位,由软串行口工作方式选择位,由软件置位或复位。其四种状态件置位或复位。其四种状态0011对应于串行通讯口对应于串行通讯口的的03四种工作方式。四种工作方式。 SM2: 多机通讯控制位,由软件置位或复位。多机通讯控制位,由软件置位或复位。 当选择当选择SM2=0时,只要接收到一帧数据,不管第时,只要接收到一帧数据,不管第9位数据为位数据为0或或1,都将发生硬件置位接
20、收中断标志位,都将发生硬件置位接收中断标志位,即使即使RI=1。 当选择当选择SM2=1时,接收到的一帧数据的第时,接收到的一帧数据的第9位为位为1,且原有的接收中断标志位且原有的接收中断标志位RI为为0则发生硬件将则发生硬件将RI置为置为1;如果第如果第9位数据为位数据为0,则,则RI不置不置1,且所接收的数据无效。,且所接收的数据无效。 因此:多机通讯时,因此:多机通讯时,SM2必须置必须置1;双机通讯时,;双机通讯时,一般使一般使SM2=0;工作方式;工作方式0时时SM2必须为必须为0。二、二、MCS-51串行口结构串行口结构(4) REN:允许接收控制位,由软件置位或复位。:允许接收控
21、制位,由软件置位或复位。当当REN=1时,允许接收;时,允许接收;REN=0时,禁止接收。时,禁止接收。 TB8: 发送数据的第发送数据的第9位(位(D8位),方式位),方式0、方式方式1时不用,方式时不用,方式2、方式、方式3时,须发送的第时,须发送的第9位数据位数据是是0还是还是1必须事先用软件写入该位。必须事先用软件写入该位。 RB8: 接收数据的第接收数据的第9位(位(D8位),方式位),方式2、方式方式3时,硬件接收到的第时,硬件接收到的第9位数据将被送入该位;方位数据将被送入该位;方式式1时停止位将被送入该位。时停止位将被送入该位。 TI: 发送中断标志位,发送完一帧数据硬件发送中
22、断标志位,发送完一帧数据硬件将使将使TI=1。TI由软件清由软件清0。 RI: 接收中断标志位,接收到一帧数据时,接收中断标志位,接收到一帧数据时,根据根据SM2的值决定是否由硬件置的值决定是否由硬件置1。该位也须由软件清。该位也须由软件清0。二、二、MCS-51串行口结构串行口结构(5) 电源控制寄存器电源控制寄存器PCON(地址为(地址为97H):): 该特殊寄存器仅最高位该特殊寄存器仅最高位D7位的位的SMOD位是串行口波特率系位是串行口波特率系数控制位,其余的数控制位,其余的7位与串行口位与串行口无关。当无关。当SMOD=1时,波特率将时,波特率将增大一倍。增大一倍。三、串行口的四种工
23、作方式三、串行口的四种工作方式(1) 1、工作方式、工作方式0: 此时此时SM1=0、SM0=0 该工作方式为同步通讯方式,或称移位寄该工作方式为同步通讯方式,或称移位寄存器工作方式。参见图存器工作方式。参见图 此时:此时:RXD引脚用于发送或接收数据,引脚用于发送或接收数据,一帧数据由一帧数据由8位组成,低位在前;位组成,低位在前; TXD引脚用于同步移位脉冲的输出。引脚用于同步移位脉冲的输出。 波特率:波特率: 该方式下,波特率固定为该方式下,波特率固定为fosc/12(相当于一个机器周期)(相当于一个机器周期)图例图例三、串行口的四种工作方式三、串行口的四种工作方式(2) 发送过程:发送
24、过程: 启动:启动: CPU执行一条写发送数据缓冲器执行一条写发送数据缓冲器SBUF的的指令来启动:指令来启动: MOV SBUF,A 写脉冲信号一方面打开三态门写脉冲信号一方面打开三态门,将,将A中的数据中的数据送入发送数据缓冲器送入发送数据缓冲器SBUF,同时写脉冲信号也将启,同时写脉冲信号也将启动发送控制器,一个机器周期后动发送控制器,一个机器周期后SEND信号有效,该信号有效,该信号同时去打开与门信号同时去打开与门允许从允许从RXD引脚上送出串行数引脚上送出串行数据和打开与门据和打开与门允许从允许从TXD引脚上送出同步时钟信号。引脚上送出同步时钟信号。 结束:结束: 8位数据(一帧)发
25、送完毕后,位数据(一帧)发送完毕后,SEND恢恢复低电平而停止发送,且置复低电平而停止发送,且置TI=1而向而向CPU申请中断。申请中断。图例图例三、串行口的四种工作方式三、串行口的四种工作方式(3)接收过程:接收过程:启动:启动: 在在RI=0条件下,将条件下,将SCON.4的的REN位置位(如位置位(如用指令:用指令:SETB REN)REN=1后启动接收控制器,经一个机器周期之后后启动接收控制器,经一个机器周期之后RECV成为高电平有效,打开与门成为高电平有效,打开与门允许从允许从TXD引脚引脚上送出同步时钟信号,该信号控制外部部件从上送出同步时钟信号,该信号控制外部部件从RXD引引脚向
26、串行口逐位输入数据,其数据传送的波特率即串脚向串行口逐位输入数据,其数据传送的波特率即串行口送出的同步脉冲速率,固定为行口送出的同步脉冲速率,固定为fosc/12。结束:结束: 从从RXD引脚输入的一帧引脚输入的一帧8位数据全部移入移位位数据全部移入移位寄存器后接收控制器使得寄存器后接收控制器使得RECV信号变成低电平无效,信号变成低电平无效,停止从停止从TXD引脚上同步时钟信号的输出;同时接收控引脚上同步时钟信号的输出;同时接收控制器发出制器发出SBUF的装载信号,打开三态缓冲门的装载信号,打开三态缓冲门将移将移位寄存器中的数据送入接收数据缓冲器位寄存器中的数据送入接收数据缓冲器SBUF;此
27、时,;此时,接收控制器还置位接收中断标志接收控制器还置位接收中断标志RI,向,向CPU申请中断。申请中断。图例图例三、串行口的四种工作方式三、串行口的四种工作方式(4) 2、工作方式、工作方式1: 此时此时SM0=0、SM1=1 该工作方式为该工作方式为8位异步通讯方式,参见图位异步通讯方式,参见图 此时:此时:RXD引脚用于接收数据,一帧信引脚用于接收数据,一帧信息由包括息由包括8位数据的位数据的10位组成,低位在前;位组成,低位在前; TXD引脚用于发送数据的输出。引脚用于发送数据的输出。 波特率:可变,由定时器波特率:可变,由定时器T1或或T2的溢的溢出速率及特殊寄存器出速率及特殊寄存器
28、PCON中的中的D7位位SMOD来来决定;决定; 发送波特率与接收波特率可以不同。发送波特率与接收波特率可以不同。图例图例三、串行口的四种工作方式三、串行口的四种工作方式(5) 发送过程:发送过程: 启动:启动:CPU执行一条写发送数据缓冲器执行一条写发送数据缓冲器SBUF的指令来启动:的指令来启动: MOVSBUF,A 写脉冲信号一方面打开三态门写脉冲信号一方面打开三态门,将,将A中中的数据送入发送数据缓冲器的数据送入发送数据缓冲器SBUF,同时写脉,同时写脉冲信号也将启动发送控制器,一个机器周期冲信号也将启动发送控制器,一个机器周期后后SEND、DATA信号相继有效,经输出控制门信号相继有
29、效,经输出控制门由由TXD引脚上逐位输出一帧引脚上逐位输出一帧10位信息。位信息。 结束:结束:10位一帧信息发送完毕后,位一帧信息发送完毕后,SEND、DATA失效而停止发送数据,同时发送控制器失效而停止发送数据,同时发送控制器硬件置位发送中断标志硬件置位发送中断标志TI,向,向CPU申请中断。申请中断。图例图例三、串行口的四种工作方式三、串行口的四种工作方式(6) 接收过程:接收过程: 启动:允许接收位启动:允许接收位REN被软件置位(如用指令:被软件置位(如用指令:SETB REN)后,)后,接收器即开始工作,工作内容如下:接收器即开始工作,工作内容如下: A)数据采样:跳变检测器以)数
30、据采样:跳变检测器以16倍于波特率的速率采样倍于波特率的速率采样RXD引脚上引脚上的电平,并在中间的电平,并在中间7、8、9这三点上各采样一次;这三点上各采样一次; B)数据确定:三次采样的数据三次中至少)数据确定:三次采样的数据三次中至少2次以上相同的值确定为次以上相同的值确定为有效数据;有效数据; C)数据开始:若第一个有效数据非)数据开始:若第一个有效数据非0,则复位接收电路而重新采样;,则复位接收电路而重新采样; D)数据移入:采样到)数据移入:采样到“0”后,连续采样后,连续采样10个数据作为一帧,中间个数据作为一帧,中间的的8位作为接收数据移入移位寄存器。位作为接收数据移入移位寄存
31、器。 结束:结束: 当当8位数据及停止位全部移入后,产生下述位数据及停止位全部移入后,产生下述4种结果:种结果: A)RI=0、SM2=0,接收控制器发出,接收控制器发出“SBUF的装载信号的装载信号”,8位数位数据装入接收数据缓冲器据装入接收数据缓冲器SBUF;停止位装入;停止位装入SCON寄存器的寄存器的RB8位;并位;并硬件使硬件使SCON寄存器的寄存器的RI位置位而向位置位而向CPU申请中断;申请中断; B)RI=0、SM2=1、停止位为、停止位为1时,发生上述相同动作;时,发生上述相同动作; C)RI=0、SM2=1、停止位为、停止位为0时,应为干扰严重所致,接收数据时,应为干扰严重
32、所致,接收数据无效而丢失不用;无效而丢失不用; D)RI=1, 此时,接收到的数据必定丢失。此时,接收到的数据必定丢失。三、串行口的四种工作方式三、串行口的四种工作方式(7) 3、工作方式、工作方式2: 此时此时SM0=1、SM1=0 该工作方式为该工作方式为9位异步通讯方式,位异步通讯方式,参见图。参见图。 波特率:波特率: 固定为固定为fosc/32(SMOD=1时)或固定为时)或固定为fosc/64(SMOD=0时)时)图例图例三、串行口的四种工作方式三、串行口的四种工作方式(8) 发送过程: 与工作方式1相仿,差异仅为本方式时一帧数据为11位,第9位数据由SCOM中的TB8位提供。 接
33、收过程: 与工作方式1相似,当接收到的第9位数据移入移位寄存器后,将8位数据装入接收数据缓冲器SBUF,第9位数据装入RB8且接收时也有上述四种判断能力。三、串行口的四种工作方式三、串行口的四种工作方式(9) 4、工作方式、工作方式3: 该工作方式为该工作方式为9位数据的异步通讯位数据的异步通讯方式,参见图。方式,参见图。 波特率:波特率: 可变,由定时器可变,由定时器T1或或T2的溢出速率及特殊寄存器的溢出速率及特殊寄存器PCON中的中的D7位位SMOD来决定;来决定; 发送过程:发送过程: 同工作方式同工作方式2。 接收过程:接收过程: 同工作方式同工作方式2。图例图例四、多机通讯的工作过
34、程四、多机通讯的工作过程(1) 1、多机通讯时的工作方式:、多机通讯时的工作方式: 采用工作方式采用工作方式2或工作方式或工作方式3。 2、多机通讯时的工作过程:设有、多机通讯时的工作过程:设有1台主机和台主机和n(1255)台)台从机,则:从机,则: 预先约定给预先约定给n台从机分配序号(即地址);台从机分配序号(即地址); 主机先发地址帧,此时发出的第主机先发地址帧,此时发出的第9位数据位数据TB8=1; 各从机置各从机置SM2=1时去接收主机所发的地址帧,因为接收的时去接收主机所发的地址帧,因为接收的RB8=1,所以所有从机接收信息均为有效,各自送入接收数据缓,所以所有从机接收信息均为有
35、效,各自送入接收数据缓冲器冲器SUBF,并且硬件,并且硬件置置RI=1; 各从机接收结束后,各从机接收结束后,CPU响应中断,通过软件判断主机送响应中断,通过软件判断主机送来的是否本从机的地址,是软件使来的是否本从机的地址,是软件使SM2=0,否则保持,否则保持SM2=1; 接着主机发送的是数据帧,此时第接着主机发送的是数据帧,此时第9位数据位数据TB8=0; 从机接收到的数据因从机接收到的数据因RB8=0,所以只有,所以只有SM2=0的从机才的从机才能将能将8位数据送入接收数据缓冲器位数据送入接收数据缓冲器SBUF,其余从机因,其余从机因SM2=1而而将接收到的数据丢失。将接收到的数据丢失。
36、四、多机通讯的工作过程四、多机通讯的工作过程(2) 3、多机通讯时的特殊情况: 即双机通讯。 此时第9位数据可作奇偶校验位而且通常使SM2=0。五、串行通讯口的应用编程五、串行通讯口的应用编程(1) 1、使用定时器T1时波特率的计算: 串行口工作方式0的波特率是固定的,为fosc/12,与定时器无关; 串行口工作方式2的波特率由SMOD(PCON.7)位决定,SMOD=1时为fosc/32,SMOD=0时为fosc/64,也与定时器无关; 串行口工作方式1、工作方式3的波特率既与SMOD有关,又与定时器T1的的溢出速率有关,并由下式决定: 波特率=2SMODT1溢出速率/32 波特率发生器通常
37、采用T1工作于方式2自动重装模式。五、串行通讯口的应用编程五、串行通讯口的应用编程(2) 2、使用定时器、使用定时器T2时波特率的计算:时波特率的计算: 只有只有52子系列的芯片才有定时器子系列的芯片才有定时器/计数器计数器T2,当,当使用定时器使用定时器/计数器计数器T2构成波特率发生器时,波特率与构成波特率发生器时,波特率与SMOD位无关。位无关。 若若T2工作在定时器状态,即工作在定时器状态,即C/T2=0,加法计数器,加法计数器对时钟脉冲对时钟脉冲fosc/2进行计数,所以波特率计算公式为:进行计数,所以波特率计算公式为: 波特率波特率= fosc/21665536-设置的初值设置的初
38、值 若若T2工作在计数器状态,即工作在计数器状态,即C/T2=1,加法计数器,加法计数器对外部时钟脉冲进行计数,外部时钟的最高频率必须对外部时钟脉冲进行计数,外部时钟的最高频率必须限定为限定为fosc/24,其波特率计算公式为:,其波特率计算公式为: 波特率波特率=外部时钟频率外部时钟频率/1665536-设置的初值设置的初值五、串行通讯口的应用编程五、串行通讯口的应用编程(3) 3、编程实例:、编程实例: 通讯程序一般分为通讯程序一般分为3个部分个部分 1 波特率计算及设置波特率计算及设置 2 控制字设置控制字设置 3 通讯程序通讯程序串行口工作方式串行口工作方式1 例例9-1 9-2串行口
39、工作方式串行口工作方式2,3 例例9-3五、串行通讯口的应用编程五、串行通讯口的应用编程(4)多机通讯规定通讯协议从机地址编号发送地址发送命令数据传输五、串行通讯口的应用编程五、串行通讯口的应用编程(4) 开始 T1,SCON 初始化 延时 发从机地址 00H 从机应答 地址相符 清 TB8, 向从机发命令 02H 命令接收 设置指针长度 等待数据 存数据,修改指针 接收完? 调用数据处理程序 修改从机地址 16 个全部读完接收完? 结束 命令从机复位 Y N Y N N Y N N Y Y 从机号存 R2 发 0FFH 主机主机判断是否判断是否0CCH五、串行通讯口的应用编程五、串行通讯口的
40、应用编程(5)从机从机MOV R3, AXRL A, #01HJZ SETB SM2SJMP TM0RB8=0, 命令命令RB8=1, 地址地址六、相关芯片六、相关芯片 1、可编程串行异步通讯接口芯片8250: 特点:片内波特率发生器、四类中断源、带调制解调; 2、 可编程串行接口芯片8251: 特点:可同步或异步方式工作、带调制解调和出错检测。9-3 串行方式的系统扩展技术串行方式的系统扩展技术 一、系统扩展的串行接口方式二、串行方式存储器扩展三、串行方式输入输出接口扩展一、系统扩展的串行接口方式(1) 1、SPI串行外设接口 SPI是MOTOROLA公司推出的串行扩展接口,由时钟线SCLK
41、、主发从收数据线MOSI和主收从发数据线MISO三线组成。SPI接口具有较高的传送速度,主机的最高传送速率为1.05Mb/s。SPI三总线结构是一个同步外围接口,允许MCU与各外围设备以串行方式进行通信。 一、系统扩展的串行接口方式(2) SPI总线的基本特性有: 以主从方式工作,可以实现全双工、三线同步传送; 可程控主机的位传送频率、时钟极性和相位; 可以发送完成中断标志以及写冲突保护标志。 一、系统扩展的串行接口方式(3) MCS-51单片机的串行口方式0具有简化的SPI同步串行通信功能,也可以用来作为SPI接口控制和扩展带SPI接口的外围器件。串行口方式0与SPI的主要区别是: MCS-
42、51输出固定频率的TXD同步脉冲替代SPI极性和相位可变的串行时钟SCLK; MCS-51的RXD既作为数据发送线,又作为数据接收线; MCS-51串口输出的数据位是低位在前高位在后,与SPI接口的约定相反。 一、系统扩展的串行接口方式(4) 2、 I2C总线接口 I2C总线由串行数据线SDA和串行时钟线SCL构成。在I2C总线上可以挂接多个外围器件。 由于I2C总线接口内部采用开漏结构,所以I2C总线必须外接上拉电阻。所有挂接在I2C总线上的器件及接口都必须通过总线寻址。 挂接在I2C总线上的单片机有主控器件和从控器件之分。 I2C总线必须由一个主控器件或称为主器件控制。主控器件控制总线的收
43、发,产生串行时钟信号,产生并启动传送及结束传送的命令。 从控器件也称为从器件,在总线上受主控器件的控制,接收主控器件发送的命令,并做出相应的应答和数据回传。 一、系统扩展的串行接口方式(5) I2C总线的单片机系统结构是一个允许多主系统。在由多个MCP和外围器件组成的I2C总线结构系统中,可能存在多个主控器件,但是,在任意时刻,只允许一个主控器件存在。 对于系统中的某个器件而言,最多有四种可能的工作方式:主发送方式、主接收方式、从发送方式、从接收方式。但在任意时刻,一个器件只能有其中的某一种工作方式。 二、串行方式存储器扩展(1) 近年来出现许多带SPI接口、I2C总线接口的串行口外围芯片。如
44、带SPI或I2C总线接口的ADC、DAC、存储器芯片以及并行I/O口扩展芯片。 由于电可擦写存储器E2PROM能在掉电情况保存数据,又能方便地进行改写,因此广泛应用在微处理机系统之中。二、串行方式存储器扩展(2) 24C32芯片的扩展: 24C系列E2PROM 是带I2C接口的电可擦写可编程只读存储器。该系列产品包括24C01、24C02、24C04、24C08、24C16、24C32等,其容量分别为1288、2568、5128、1K8、2K8、4K8。 二、串行方式存储器扩展(3)24C32的封装形式有双列直插式DIP8和DIP14两种形式,DIP8封装形式如右 1 82 73 64 5直插
45、式DIP8和DIP14两种 SCL为串行时钟脚;SDA为串行数据/地址输入输出端;A0、A1、A2是芯片地址选择输入端,根据A0、A1、A2所接高、低电平不同,芯片地址不同,因此,在I2C总线上最多可以挂8片24C32芯片。 A0 VCCA1 WPA2 SCLVSS SDA二、串行方式存储器扩展(4) (2) I2C总线时序 1 起始位(S) SCL=1,SDA由高到低 2 数据位(D) 高位MSB在前,低位LSB在后 3 应答位(A) 8个时钟周期对应一个传输字节,第9位为应答位 4 数据/应答 循环 5 停止位(P) SCL=1,SDA由低到高二、串行方式存储器扩展(5) (3) I2C总
46、线接口通讯的启动和数据传输的结束:总线接口通讯的启动和数据传输的结束: I2C总线在空闲(不传输数据)之时,总线在空闲(不传输数据)之时,SCL与与SDA均均由上拉电阻拉为高电平,数据传输时序:由上拉电阻拉为高电平,数据传输时序: 从上图可看出,当从上图可看出,当SCL保持高而保持高而SDA由高变低时作由高变低时作为通讯的启动;当为通讯的启动;当SCL保持高而保持高而SDA由低变高时作为由低变高时作为通讯的结束。数据传输过程中,通讯的结束。数据传输过程中,SDA线只能在线只能在SCL为为低电平时产生高低电平的变化。低电平时产生高低电平的变化。启动启动 数据数据 数据数据 结束结束通讯通讯 变化
47、变化 变化变化 通讯通讯SDASCL二、串行方式存储器扩展(6) I2C总线接口的虚拟:总线接口的虚拟: 为了为了将将I2C总线器件应用到不带总线器件应用到不带I2C 总线总线接接口的口的MCU系统中,系统中,常采用虚拟的常采用虚拟的I2C总线接口总线接口方法。方法。 I2C总线在进行数据传输方面,对于不同总线在进行数据传输方面,对于不同的的I2C器件具有相同的操作模式,遵循相同的器件具有相同的操作模式,遵循相同的规范,这就为规范,这就为I2C总线的软件虚拟提供了实现总线的软件虚拟提供了实现的可能性。的可能性。 所谓的虚拟所谓的虚拟I2C总线是指借用总线是指借用MCU的的2根根通用通用I/O口
48、线来虚拟口线来虚拟I2C总线接口,总线接口,采采用软件来用软件来实现实现I2C协议的一种总线虚拟方式。协议的一种总线虚拟方式。二、串行方式存储器扩展(7) 24C32芯片与与M51系列单片机的系列单片机的一种应用连接方法:一种应用连接方法:图中图中1、2、3这三条引脚这三条引脚A0、A1、A2是三条地址是三条地址线,用于确定芯片的硬件线,用于确定芯片的硬件地址,这里均为地址,这里均为0。 图中上拉电阻通常图中上拉电阻通常取值为取值为10K。8031P1.1P1.01827364 5+5VI2C总线数据传送时,每成功地传送一个字节数据后,接收器都必须产生一个应答信号,应答的器件在第9个时钟周期时
49、将SDA 线拉低表示其已收到一个8 位数据;24C32在接收到起始信号和从器件地址之后,响应一个应答信号。如果是写操作则在每接收一个8 位字节之后响应一个应答信号24C32工作于读模式时,在发送一个8 位数据后,释放SDA 线并监视一个应答信号,一旦接收到应答信号, 24C32继续发送数据。如主器件没有发送应答信号,器件停止传送数据且等待一个停止信号例9-6:发送启始子程序:SCL=1,SDA由高到低例9-7:发送停止位子程序: SCL=1,SDA由低到高例9-8:发送应答位子程序(ACK=0)例9-9:检查应答位子程序(ACK=0 ?)例9-10:写8bit数据 SCL=0时,SDA根据RA
50、M中8bit数据变化 SCL=1时,数据写入例9-11:读8bit数据 SCL=1时,数据由CPU读入, SCL=0时,数据由24C32输出,SDA数据更新Start();WRB(SlaveAddr);ack=Chack();if(ack) return FALSE;WRB(ByteAddrHigh);ack=Chack();if(ack) return FALSE;WRB(ByteAddrLow);ack=Chack();if(ack) return FALSE; WRB(data);ack=Chack();if(ack) return FALSE;Stop();Slave Addr格式:格
51、式:1010 A2 A1 A0 R/W (10100000),写操作,写操作根据不同存储容量的根据不同存储容量的RAM,Byte Addr有单字节和双字节的区别,有单字节和双字节的区别,24C32/64为双字节为双字节Start();WRB(SlaveAddr);ack=Chack();if(ack) return FALSE;WRB(ByteAddrHigh);ack=Chack();if(ack) return FALSE;WRB(ByteAddrLow);ack=Chack();if(ack) return FALSE;for(i=0; in; i+) WRB(data); ack=Ch
52、ack(); if(ack) return FALSE;Stop();四、串行方式输入输出接口扩展四、串行方式输入输出接口扩展 原则上来讲,利用I2C总线或总线或SPI总线方式均可以实现串行方式输入、输出接口的扩展,对于无I2C总线或总线或SPI总线的单片机,可利用普通I/O口实现,其硬件连接方法简单,主要是软件模拟总线工作时序的实现。 MCS-51系列单片机串行口的工作方式0也可用于串行方式输入输出接口的扩展。五、串行口工作方式五、串行口工作方式0的应用的应用(1) 串行口工作方式0主要用于I/O口的扩展,包括并行输入口和并行输出口的扩展。 可以有: 1、用串行口扩展并行输出口 2、用串行口
53、扩展并行输入口 3、用串行口扩展并行输入、输出口五、串行口工作方式五、串行口工作方式0的应用的应用(2) 1、扩展并行输出口 利用串行输入/并行输出8位移位寄存器74LS164、CD4094等芯片与MCS-51的串行口相连接,让串行口工作于模式0下,可实现用串行口扩展并行输出口的目的。 使用2片74LS164及三根MCS-51口线扩展16根并行输出口线的电路原理图如下所示:五、串行口工作方式五、串行口工作方式0的应用的应用(3)串行输入/并行输出8位移位寄存器74LS164 SIA SIB CLK CLR Q0 Q7 74LS164 扩展并行输出口的扩展原理图扩展并行输出口的扩展原理图 805
54、1 P3.0 P3.1 P1.0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0A、B 74LS164 CLR CK Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0A、B 74LS164 CLR CK五、串行口工作方式五、串行口工作方式0的应用的应用(4) 扩展软件接口:扩展软件接口:若利用以上并行输出口扩展电路作为二位若利用以上并行输出口扩展电路作为二位LED七段数七段数码管静态显示,则相应显示子程序可编为:码管静态显示,则相应显示子程序可编为:DJSP:MOVR7,#02H;设置显示位数;设置显示位数MOVR0,#30H;设置显示数据的指针;设置显示数据的指针MOVSCON,#00H;设置
55、串行口为工作方式;设置串行口为工作方式0DISP0:MOVA,R0;取显示的数据;取显示的数据ADDA,#0DH;设置近程查表的偏移值;设置近程查表的偏移值MOVC A,A+PC;近程查表获七段显示码;近程查表获七段显示码MOVSBUF,A;显示码送入串行口;显示码送入串行口 ;启动发送过程;启动发送过程JNBTI,;等待一帧数据发送结束;等待一帧数据发送结束CLRTI;清除串口发送中断标志;清除串口发送中断标志INCR0;指针指向下一显示数据;指针指向下一显示数据DJNZR7,DISP0;二位未显示完再送一次;二位未显示完再送一次RET;二位送完则结束返回;二位送完则结束返回五、串行口工作方
56、式五、串行口工作方式0的应用的应用(5)DISTAB: DBC0H,F9H ;0、1的显示码 DB A4H,B0H;2、3的显示码DB99H,92H ;4、5的显示码DB82H,F8H;6、7的显示码DB80H,98H;8、9的显示码五、串行口工作方式五、串行口工作方式0的应用的应用(6) 1、扩展并行输入口 利用并行输入/串行输出8位移位寄存器74LS165、CD4014等芯片与MCS-51的串行口相连接,让串行口工作于模式0下,可实现用串行口扩展并行输入口的目的。 使用2片74LS165及三根MCS-51口线扩展16根并行输入口线的电路原理图如下: 五、串行口工作方式五、串行口工作方式0的
57、应用的应用(7) D0 D7 SI S/L Q7 CLK 74LS165 Q7 CKIN 并行输入/串行输出8位移位寄存器74LS165扩展并行输入口的扩展原理图 8051 P3.0 P3.1 P1.0 I7 I6 I 5 I4 I3 I2 I1 I0Q SIN 74LS165Q CLR CLOCK I7 I6 I5 I4 I3 I2 I1 I0Q SIN 74LS165Q S/L CLOCK五、串行口工作方式五、串行口工作方式0的应用的应用(8) 扩展软件接口:扩展软件接口:若利用上述扩展电路输入若利用上述扩展电路输入2个字节数据存放于个字节数据存放于30H与与31H单元之中,单元之中,则可编程如下:则可编程如下:MOVR0,#30H;设置数据存放单元指针;设置数据存放单元指针MOVR7,#02H;接收;接收2个字节数据个字节数据CLRP1.0;允许并行输入数据;允许并行输入数据SETB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职化工(化工安全规范)试题及答案
- 2025年高职烹饪工艺与营养(烹饪工艺)试题及答案
- 2025年中职(制冷技术)制冷系统维护试题及答案
- 2025年高职农业电气(农村电网勘测)试题及答案
- 智慧项目档案全生命周期智能检索与利用规范
- 养老院老人紧急救援人员激励制度
- 养老院老人活动管理制度
- 养老院老人外出活动管理制度
- 养老院消防通道及疏散预案制度
- 养老院入住资格审查制度
- 2025年肿瘤科年度工作总结汇报
- (正式版)DB51∕T 3336-2025 《零散天然气橇装回收安全规范》
- 初三数学备课组年终工作总结
- 2025年高职工业机器人(机器人编程调试)试题及答案
- 湖南名校联考联合体2026届高三年级1月联考物理试卷+答案
- GB/T 19466.3-2025塑料差示扫描量热(DSC)法第3部分:熔融和结晶温度及热焓的测定
- 生物医药研发项目立项报告
- 2026年中国礼品行业展望白皮书
- 2025年度校长述职报告:守正中求变用心办好这所“小而美”的学校
- 2025湖北省考申论县乡卷真题及答案
- 国内外企业管理研究现状的综述
评论
0/150
提交评论