串行通信方式第九章_第1页
串行通信方式第九章_第2页
串行通信方式第九章_第3页
串行通信方式第九章_第4页
串行通信方式第九章_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

串行通信方式第九章第一页,共七十五页,2022年,8月28日什么是通信两个设备之间交换数据的过程我们称之为通信单工双工AB第二页,共七十五页,2022年,8月28日通信的方式从同时传输的数据位数来分为:1、并行通信(Parrel)2、串行通信(Serial)第三页,共七十五页,2022年,8月28日串并行方式各自特点速度价格距离并行串行相对快相对慢短远贵廉价第四页,共七十五页,2022年,8月28日串行通信帧格式帧的概念:起始位,数据位,速率(波特率),应答位或停止位。第五页,共七十五页,2022年,8月28日常见的串行通信协议

名称特点USARTUSBI2CSPI用途PC与MCUPC与MCUMCU之间MCU之间特点简单快,

可靠简单复杂,可靠USARTPC与MCU简单第六页,共七十五页,2022年,8月28日串行输出原理第七页,共七十五页,2022年,8月28日串行输入原理第八页,共七十五页,2022年,8月28日F877单片机主要配置有2种形式的串行通信模块:主控同步串行通信MSSP

(MasterSynchronousSerialPort)通用同步/异步收发器USART

(UniversalSynchronous/AsynchronousReceiverTransmitter)。

MSSP模块主要应用于系统内部近距离的串行通信扩展,如SPI、I2C模式。USART模块主要应用于系统之间的远距离串行通信,在外围接口电路及计算机通信中应用相当广泛。

第九页,共七十五页,2022年,8月28日9.1SPI串行通信模块

SPI(SerialPeripheralInterface)是一种单片机外设芯片同步串行扩展接口,由摩托罗拉公司推出。采用SPI接口外围器件的特点是引脚性价比高等优点,因而在市场上得到了广泛的应用。

第十页,共七十五页,2022年,8月28日

10.1.1SPI模式下相关寄存器

在SPI模式下,有关的寄存器共有10个,其中无编址的只有一个SSPSR。这10个寄存器中有6个寄存器是与其它模块共用的。另外有4个寄存器与MSSP模块相关,它们是与I2C模式共用的。

第十一页,共七十五页,2022年,8月28日1.SSPBUF(收/发数据缓冲器)

2.SSPSTAT(同步串口状态寄存器)第十二页,共七十五页,2022年,8月28日Bit0/BF:缓冲器满标志位,被动参数。仅仅用于SPI接收状态下:

0:缓冲器空;

1:缓冲器满。Bit6/CKE:SPI时钟沿选择和I2C总线输入电平选择位。在CKP=0,静态电平为低时:

0:SCK的下降沿发送数据;

1:SCK的上升沿发送数据。在CKP=1,静态电平为高时:

0:SCK的上升沿发送数据;

1:SCK的下降沿发送数据。Bit7/SMP:SPI采样控制位兼I2C总线转换率控制位。在SPI主控方式下:

0:在输出数据的中间采样输入数据;

1:在输出数据的末尾采样输入数据。注意:在SPI从动方式下,SMP位必须置位。第十三页,共七十五页,2022年,8月28日3.SSPCON(同步串口控制寄存器)

Bit3-Bit0/SSPM3-SSPM0:同步串行口MSSP方式选择位。

第十四页,共七十五页,2022年,8月28日Bit4/CPK:时钟极性选择位。

0:表示空闲时时钟停留在低电平;

1:表示空闲时时钟停留在高电平。Bit5/SSPEN:同步串口MSSP使能位。

在SPI模式下时,有关引脚必须正确的设定为输入或输出状态。

0:关闭串行端口功能,且设定SCK、SOD、SDI和SS为普通数字I/O脚;1:允许串行端口工作,且设定SCK、SOD、SDI和SS为SPI接口专用。第十五页,共七十五页,2022年,8月28日Bit6/SSPOV:接收溢出标志位,被动参数。

0:未发生接收溢出;

1:发生接收溢出。注意:所指的接收溢出是缓冲器SSPBUF中数据还未取出时,移位寄存器SSPSR中又收到新的数据,原SSPSR中的数据丢失。Bit7/WCOL:写操作冲突检测位,被动参数。在SPI从动方式下:

0:未发生冲突;

1:发生冲突。注意:当WCOL=1,正在发送前一个数据时,又有新数据写入SSPBUF,必须用软件予以清零。

第十六页,共七十五页,2022年,8月28日4.SSPSR移位寄存器

直接从端口引脚接收或发送数据,将已经成功接收到的数据送到缓冲器SSPBUF中,或者从缓冲器SSPBUF读取将发送的数据。第十七页,共七十五页,2022年,8月28日9.1.2SPI模式工作原理

要发送的数据通过数据总线送入发送缓冲器,然后自动传送到移位寄存器中;移位寄存器接收到数据自动传送到接收缓冲器,然后由程序读取收到的数据;移位寄存器有移入和移出两个端口,分别与收和发两条通信线路连接,负责收发数据。

第十八页,共七十五页,2022年,8月28日SPI模式电路的基本结构

第十九页,共七十五页,2022年,8月28日SPI工作原理示意图

第二十页,共七十五页,2022年,8月28日【例题9-1】如图9-5为8位数码显示和16个键盘电路,利用F877的SPI同步串行功能实现数码管数据串行传送,并通过8个74LS164组成的移位电路,达到数码数据的静态显示。而16个键盘组成矩阵电路,采用RD口高低四复合选通。请编写相应的应用程序,要求:在系统复位后8位数码管全暗,接着1、2、3…7分别从数码管的最高位到最低位依次点亮,最后直接进入系统的监控状态,以在最高位出现“-”为标志。

第二十一页,共七十五页,2022年,8月28日【例题9-2】在电路原理图8-5基础上,对其电路结构稍作调整,以便外扩展一个静态128KEPROM数据存储器。利用RC3、RC4、RC5引脚组成一个SPI同步串行方式,通过164移位产生17位寻址功能,实现对HM628128的并行数据传送(RD端口)。编程要求:首先将256个数据00H-FFH存入EPROM单元0000H-00FFH中,然后再将这些单元中的数据逐个取出,送往数码显示区的最后两位显示数据内容,每个数显示停留1秒种。第二十二页,共七十五页,2022年,8月28日

9.2I2C串行通信模式

1980年PHILIPS公司首创I2C(InterIntegratedCircuitBus)总线规范,已成为一种串行总线事实上的工业标准。I2C总线是一种高性能芯片间串行同步传输总线,被大量的用作系统内部的电路板级总线。它定义了两根信号线,串行数据线SDA和串形时钟线SCL,可实现双工同步数据传输,能够极其方便的构成多机系统和外围器件扩展系统。

第二十三页,共七十五页,2022年,8月28日

9.2.1I2C串行通信模式

I2C总线的数据传输过程,在一次通信过程中,如主控器为发送器则称主控发送器,而被控器为接收器则称被控接收器;如主控器为接收器则称主控接收器,而被控器为发送器则被控发送器。

第二十四页,共七十五页,2022年,8月28日

1.I2C数据格式

I2C数据格式有五部分组成:启动信号(SCL=1,SDA从高到低);被控器地址(可7位或10位);R/W信号;若干个数据字节;停止信号(SCL=1,SDA从低到高)。第二十五页,共七十五页,2022年,8月28日

主控器向被控器写数据

第二十六页,共七十五页,2022年,8月28日主控器向被控器读数据

第二十七页,共七十五页,2022年,8月28日10位地址格式

其中A9、A8是10位地址的高2位。

第二十八页,共七十五页,2022年,8月28日2.I2C地址设定

在I2C总线系统中的器件,一般都有一个专用的7位从器件地址码。地址码分为两部分,A6、A5、A4、A3为器件类型码。如存贮器为:1010,LCD点阵显示器启动器为:0111等等,不可更改统一规定。A2、A1、A0可由器件改变,所以同一类器件在I2C总线系统中最多能接8个。

第二十九页,共七十五页,2022年,8月28日3.数据传递

主控器发送数据,被控器接收数据的通信过程如下:

主控器在检测到总线空闲的状况下,首先发送一个启动S信号;接着发送一个地址字节(包含着7位地址码和一位读/写位,假设=0);在被控器收到地址字节后回送一个应答信号ACK=0;在主控器收到该应答位后开始发送第一个数据字节;在被控器收到第一个数据字节后又回送一个应答位ACK=0;在主控器收到应答位后开始发送第二个数据字节;被控器收到第二个数据字节后再返送一个(非)应答位(NACK=1)ACK=0;在主控器将所需发送的全部数据(在此假设是两个字节)发送完毕后,就发送一个停止P信号时序,结束整个通信过程,并且释放总线,使总线返回空闲状态。

第三十页,共七十五页,2022年,8月28日9.2.2I2C总线模式下相关的寄存器

与I2C总线有关的寄存器共有12个。其中,有6个寄存器(INTCON、PIR1、PIE1、PRI2、PIE2、TRISC)是与单片机其他模块共用。属于I2C总线专用的两个寄存器SSPCON2和SSPADD。

第三十一页,共七十五页,2022年,8月28日1.SSPSTAT同步串口寄存器

SSPSTAT用来记录MSSP模块的各种工作状态:

第三十二页,共七十五页,2022年,8月28日Bit0/BF:缓冲器已满标志位,被动参数。在I2C总线方式下接收时:

0:缓冲器SSPBUF还为空;

1:缓冲器SSPBUF已经满。在I2C总线方式下发送时:

0:数据发送已完成(不含应答和停止位),缓冲器SSPBUF已经空;

1:数据正在发送(不含应答和停止位),缓冲器SSPBUF还是满的。

Bit1/UA:地址更新标志位(I2C总线10位寻址方式),由硬件自动设置。

0:不需要更新SSPADD寄存器中的地址;

1:需要更新SSPADD寄存器中的地址。

第三十三页,共七十五页,2022年,8月28日

Bit2/R/W:读写信息位(仅用于I2C总线方式)。该位记录最近一次地址匹配后,从地址字节中获取的读/写状态信息。它与SEN、RSEN、PEN、RCEN或ACKEN位一起,将用于显示MSSP是否处于空闲状态。该位仅仅从地址匹配到下一个启动位或停止位或非应答位被检测到的期间有效。在I2C被控方式下:

0:写操作;

1:读操作。在I2C主控方式下:

0:不在进行发送;

1:正在进行发送。

第三十四页,共七十五页,2022年,8月28日Bit3/S:启动位,用于I2C总线方式,当SSPEN=0,MSSP被关闭,该位被自动清零。

0:当前没有检测到启动位;

1:当前检测到了启动位(单片机复位时改为位0)。

Bit4/P:停止位,仅用于I2C总线方式,当SSPEN=0,MSSP被关闭时,该位被自动清零。

0:表示当前没有检测到停止位;

1:表示当前检测到了停止位(单片机复位时改为位0)。Bit5/D/A:数据/地址标志位(I2C总线规范有效)。

0:当前接收或发送的字节是地址;

1:当前接收或发送的字节是数据。

第三十五页,共七十五页,2022年,8月28日

Bit6/CKE:I2C总线输入电平规范选择位或SPI时钟沿选择位。 在I2C主控和被控方式下:

0:输入电平遵循I2C总线规范;

1:输入电平遵循SMBus总线规范。

Bit7/SMP:I2C总线传送率控制位或SPI采样控制位,主动参数。在I2C主控和被控方式下:

0:传送率为快速速度模式(400kHz);

1:传送率为标准速度模式(100kHz)。

第三十六页,共七十五页,2022年,8月28日2.SSPCON同步串口控制寄存器SSPCON用来对MSSP模块的多种功能和指标进行控制:

第三十七页,共七十五页,2022年,8月28日

Bit3-Bit0/SSPM3-SSPM0:同步串口MSSP方式选择位第三十八页,共七十五页,2022年,8月28日

Bit4/CKP:时钟极性选择位(对于SPI模式而言)。在I2C被控方式下,SCL时钟使能位(I2C主控下没有用):

0:将时钟线拉低并保持,以延长时钟周期,来确保数据建立时间;

1:时钟正常工作。Bit5/SSPEN:同步串口MSSP使能位。

0:不允许关闭串行端口工作,设定SDA和SCL为普通数字I/O引脚;

1:允许串行端口工作,设定SDA和SCL为I2C总线专用引脚。

Bit6/SSPOV:接收溢出标志位。当接收溢出时,SSPBUF前一个数据还没被取走,又收到了新数据;在发送方式下此位无效,必须用软件清零。

0:未发生接收溢出;

1:发生接收溢出。 Bit7/WCOL:写操作冲突检测位。当发生冲突时,I2C总线的状态还没有准备好时,试图向SSPBUF缓冲器写入数据,WCOL=1,必须用软件清零。

0:未发生冲突;

1:发生冲突。

第三十九页,共七十五页,2022年,8月28日3.SSPADD从地址/波特率寄存器

在I2C主控工作方式下,该寄存器被用作波特率发生器的定时常数装载寄存器。在I2C被控器工作方式下。第四十页,共七十五页,2022年,8月28日4.同步串口控制寄存器2-SSPCON2

主要是为增强MSSP模块I2C总线模式的主控器功能而新增加的。

第四十一页,共七十五页,2022年,8月28日Bit0/SEN:启动信号时序发送使能位。

0:不在SDA和SCL引脚上建立和发送启动信号时序;

1:在SDA和SCL上建立并发送一个启动信号(被硬件自动清零)。Bit1/RSEN:重启动信号时序发送使能位。

0:不在SDA和SCL引脚上建立和发送重启动信号时序;

1:在SDA和SCL上建立并发送一个重启动信号(被硬件自动清零)。Bit2/PEN:停止信号时序发送使能位。

0:不在SDA和SCL引脚上建立和发送停止信号时序;

1:在SDA和SCL上建立并发送一个停止信号(被硬件自动清零)。Bit3/RCEN:接收使能位。

0:禁止接收模式工作;

1:使能接收模式。

Bit4/ACKEN:应答信号时序发送使能位,在I2C主控接收方式下:

0:表示不在SDA和SCL引脚上建立和发送应答信号时序;

1:表示在SDA和SCL上建立和发送一个带ACKDT的应答信号(被硬件自动清零)。

第四十二页,共七十五页,2022年,8月28日Bit5/ACKDT:应答信息位。在I2C主控接收方式下,在一个字节收完之后,主控器软件应返送一个应答信号,该位就是用户软件写入的将被返送的值:

0:将发送有效应答位(ACK);1:将发送非应答位(NACK)。Bit6/ACKSTAT:应答状态位。在I2C主控方式下,硬件自动接收来自被控器的应答信号

0:收到来自被控接收器的有效应答位(或表示位);

1:没有收到来自被控接收器的有效应答位(或表示为NACK)。Bit7/GCEN:通用呼叫地址寻址使能位,主动参数。

0:禁止以通用呼叫地址寻址;1:当SSPSTAT中收到通用呼叫地址(00H)时允许中断。

第四十三页,共七十五页,2022年,8月28日9.2.3I2C从动模式

当I2C工作在从动方式时,SDA和SCL引脚必须设置为输入,如果需要发送时,MSSP模块强行将输入状态改为输出状态。在地址匹配后,收到传送的数据后,将自动产生ACK,并将SSPSR中的数据传入SSPBUF。

第四十四页,共七十五页,2022年,8月28日I2C从动方式电路模块结构

第四十五页,共七十五页,2022年,8月28日9.2.4I2C主控模式

对SSPCON寄存器中的相应SSPM置位和清零,对SSPEN置位即可使能主控工作方式,控制工作方式使能后,用户有以下六种选择:送启动信号到SDA和SCL(将SEN置位);送重复启动信号到SDA和SCL(将RSEN置位);写SSPBUF寄存器启动数据或地址的传送;送结束信号到SDA和SCL(将PEN置位);设置I2C端口以接收数据;数据字节接收完成后,发出应答信号。

第四十六页,共七十五页,2022年,8月28日

I2C在主控基本结构模块

第四十七页,共七十五页,2022年,8月28日【例题9-3】 本例题电路原理图和图9-5相同,除连接有8位数码显示和16个键盘电路以外,还利用RC6和RC7引脚组成一个I2C同步串行功能,实现对24LC515EEPROM的串行数据传送。编程要求:首先将64个数据00H-3FH存入EEPROM单元0000H-003FH中,然后再将00010H-0001FH单元中的数据取出,存入数据存储器单元40H-4FH,最后逐个送往数码显示区的最后两位显示,每个数显示停留1秒种。

第四十八页,共七十五页,2022年,8月28日9.3USART串行通信模块PIC系列芯片中,片内除了含有同步串行口SSP(SPI,I2C)外,还有一个串行通信接口SCI。这是一个通用同步/异步收发器,简称USART,它是计算机最常用的通信接口之一。

USART可工作于如下三种方式:全双工异步方式;半双工同步主控方式;半双工同步从动方式。

第四十九页,共七十五页,2022年,8月28日

与USART模块相关的寄存器1.发送状态兼控制寄存器:TXSTA2.接收状态兼控制寄存器:RCSTA3.USART发送缓冲寄存器:TXREG4.USART接收缓冲寄存器:RCREG5.PIE寄存器6.PIR寄存器第五十页,共七十五页,2022年,8月28日1.发送状态兼控制寄存器TXSTA第五十一页,共七十五页,2022年,8月28日Bit0/TX9D:发送数据的第9位(9位数据帧结构)。

0:不发送9位数据;

1:发送9位数据帧。Bit1/TRMT:发送移位寄存器(TSR)“空”标志位。

0:发送移位寄存器满;

1:发送移位寄存器空。Bit2/BRGH:高波特率选择位。异步模式下:0:低速;

1:高速。同步方式下,未用。Bit4/SYNC:USART同步/异步模式选择位。

0:选择异步模式(USAT);

1:选择同步模式(USRT)。

第五十二页,共七十五页,2022年,8月28日Bit5/TXEN:发送使能位。

0:关闭发送功能;

1:使能发送功能。

Bit6/TX9:发送数据长度选择位。8位数据加1位校验或标识位。

0:8位数据位发送;

1:9位数据发送。Bit7/CSRC:时钟源选择位。同步模式下:

0:选择被控(从属)模式(时钟来自外部输入信号);

1:选择主控模式(时钟来自内部波特率发生器)。异步模式下,未用。

第五十三页,共七十五页,2022年,8月28日2.接收状态兼控制寄存器RCSTABit0/RX9D:所接收数据的第9位,可作校验位或标识位等。Bit1/OERR:溢出标志位(overruanerrorbit)。

0:未发生溢出错误;

1:发生了溢出错误。Bit2/FERR:帧格式错误标志位,被动参数。

0:无帧格式错误;

1:有帧格式错误。第五十四页,共七十五页,2022年,8月28日

Bit3/ADDEN:地址匹配检测使能位;

接收数据选择9位时,该位才起作用。0:取消地址匹配检测功能;

1:启用地址匹配检测功能。Bit4/CREN:连续接收使能位。异步模式下:0:禁止连续接收功能;1:使能连续接收功能。同步模式下:0:关闭连续接收;1:使能连续接收,直到该未被清0为止。优先于SREN位。

第五十五页,共七十五页,2022年,8月28日

Bit5/SREN:单字节接收使能位。同步方式下:

0:禁止单字节接收功能;

1:使能单字节接收功能。

异步方式下未用,并且在同步从属接收方式下该位也无用。接收完成后该位即被清零。Bit6/RX9:接收数据长度选择位。

0:选择接收8位数据;

1:选择接收9位数据。Bit7/SPEN:串行端口使能位。

0:禁止串行端口工作;

1:允许串行端口工作。此时,RC7和RC6作为USART的接收发送引脚。

第五十六页,共七十五页,2022年,8月28日3.TXREG,USART发送缓冲寄存器

每次发送的数据都是通过写入该缓冲器来实现的。

第五十七页,共七十五页,2022年,8月28日4.RCREG,USART接收缓冲寄存器

每次接收到的数据都可从该缓冲器读取出来的。

第五十八页,共七十五页,2022年,8月28日5.SPBRG波特率寄存器

SPBRG寄存器的设定值(0-255)与波特率成反比关系。在同步方式下,波特率仅由该寄存器来决定;而在异步方式下,则由BRGH位(TXSTA寄存器的bit2)和该寄存器共同确定。

第五十九页,共七十五页,2022年,8月28日9.3.2USART波特率发生器USART模块带有一个波特率发生器BRG(baudrategenerator),用以产生串行传送所需的时钟,它支持USART的同步方式和异步方式。在异步方式下,BRGH位用来控制波特率。在同步方式下,BRGH位不起作用。

波特率发生器的逻辑结构如图10-24。其核心实际是一个递减的8位二进制计数器,其计数初始值是由寄存器SPBRG装入,在每次递减计数器到达00H之后的下一个计数脉冲到来时进行装入。系统时钟经过6位分频器后作为传递计数器的计数脉冲,其分频比可以由BRGH位和SYNC位设定为1:4、1:16、或1:64。

第六十页,共七十五页,2022年,8月28日波特率时钟发生器示意图

第六十一页,共七十五页,2022年,8月28日其波特率计算方式如下:1.同步方式波特率=fosc/[4(N+1)]

N=fosc/(4×波特率)-1注意,N为SPBRG寄存器的初始值;BRGH必须设置为0,BRGH为1无用。

2.异步方式

BRGH=0时:波特率=fosc/[64(N+1)]

N=fosc/(64×波特率)-1

BRGH=1时:波特率=fosc/[16(N+1)]

N=fosc/(16×波特率)-1

第六十二页,共七十五页,2022年,8月28日

9.3.3USART异步通信模式

USART在异步模式下采用的数据格式为l位起始位、8位或9位数据位和1位停止位,无奇偶校验码位(硬件不支持),常用的数据为8位。片内提供的8位波特率发生器BRG,可以利用系统时钟信号产生标准的波特率频率。

第六十三页,共七十五页,2022年,8月28日1.USART异步发送模式

USART发送器主要是由发送移位寄存器(TSR)、发送缓冲器TXREG构成。USART异步发送过程如下:要发送的数据送入TXREG中,寄存器TXREG中的数据就被装入TSR。一旦把TXREG中的数据送入TSR,就将中断标志位TXIF置位。TXIF置位后,不能用软件清除,只有在下一个要发送的数据送入TXREG后TXIF才能复位。

第六十四页,共七十五页,2022年,8月28日USART异步发送其结构示意图第六十五页,共七十五页,2022年,8月28日2.USART异步接收模式

主要是由接收移位寄存器RSR和接收寄存器RCREG构成,串行信号从RC7/RX/DT引脚接收,送入移位寄存器RSR。一旦收到停止位,RSR就将收到的8位数据装载到RCREG中。同时,RCIF置1,表示收到一个数据,当RCREG被读出时RCIF被清零。从图中看出,RCREG是一个双缓冲寄存器,具有FIFO性质,因此RS可连续接收2个数据送入RCREG。

第六十六页,共七十五页,2022年,8月28日

特别注意以下几点:

如RSR将数据装载到RCREG时,RCREG内已有2个数据,则产生数据传送溢出错误。OERR置位。RSR中数据将不能装入RCREG;

OERR置位后,RSR不会接收新的数据。只有将OERR清0后才能接收新数据。OERR清零的方法是将CREN清零再置位;如收到停止位为0,则FERR置位;读RCREG时,会将FERR和RXD9值丢失。所以为读取FERR和RXD9,必须在读RCREG之前读取。第六十七页,共七十五页,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论