STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第6-11章 第8章

上传人:E**** 文档编号:89362392 上传时间:2019-05-24 格式:PPT 页数:159 大小:2.04MB
返回 下载 相关 举报
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第6-11章 第8章_第1页
第1页 / 共159页
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第6-11章 第8章_第2页
第2页 / 共159页
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第6-11章 第8章_第3页
第3页 / 共159页
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第6-11章 第8章_第4页
第4页 / 共159页
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第6-11章 第8章_第5页
第5页 / 共159页
点击查看更多>>
资源描述

《STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第6-11章 第8章》由会员分享,可在线阅读,更多相关《STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第6-11章 第8章(159页珍藏版)》请在金锄头文库上搜索。

1、第8章 STM8S MCU串行通信,8.1 串行通信的概念 8.2 UART串行通信接口 8.3 RS232C串行接口标准及应用 8.4 RS422/RS485总线 8.5 串行外设总线接口(SPI),8.1 串行通信的概念,CPU与外设之间信息交换的过程称为通信。根据CPU与外设之间数据线连接、数据发送方式的不同,可将通信分为并行通信和串行通信两种基本方式。 在并行通信方式中,数据各位同时传送,如图8-1(a)所示。并行通信的特点是速度快,但需要的传输线多,多用于同一个设备内不同器件或模块之间的数据传输,不适合作长距离数据传输。,在串行通信方式中,借助串行移位寄存器将多位数据按位逐一传送,如

2、图8-1(b)所示。串行通信的优点是所需传输线少,适合远距离传输;缺点是速度慢。假设并行传送8位二进制数所需时间为T,在发送速率相同的情况下,串行传输时间至少需要8T。而在实用的串行通信系统中,还需要在数据位前、后分别插入起始位和停止位,以保证数据可靠地接收,因此实际的传输时间大于8T。,图8-1 基本通信方式,8.1.1 串行通信的种类 根据数据传输方式的不同,可将串行通信分为两种:同步通信和异步通信。 同步通信是一种数据连续传输的串行通信方式。同步通信时,发送方把需要发送的多个字节数据、校验信息连接起来,形成数据块。发送方发送时只需在数据块前插入12个特殊的同步字符,然后按特定速率逐位输出

3、(发送)数据块内的每一个数据位。接收方在接收到特定的同步字符后,也按相同速率接收数据块内的各位数据。,显然,在这种通信方式中,数据块内各字节数据之间没有间隙,传输效率高,但发送、接收双方必须保持同步(使用同一个时钟信号实现)。因此,同步通信设备复杂(发送方能自动插入同步字符,接收方能自动检测出同步字符,且发送、接收时钟相同,即除了数据线、地线外,还需要时钟信号线),成本较高,多用在高速数字通信系统中。 典型的同步通信数据帧格式如图8-2所示。,图8-2 同步通信数据帧格式,异步通信的特点是每次只传送一个字符,每个字符由起始位(规定为0电平)、数据位、奇偶校验位、停止位(规定为1电平)组成。典型

4、的异步通信数据帧格式如图8-3所示。,图8-3 异步通信数据帧格式,可见,异步通信与同步通信并没有本质上的区别,只是在异步通信中数据块的长度短(一般为一个字节),收发双方容易实现同步,但各数据块之间不连续(即插入了起始位、停止止位),因此效率低,传输速度较慢。 异步通信过程可概述如下: 对于异步通信的发送方来说,发送时先输出低电平的起始位,然后按特定速率发送数据位(包括奇偶校验位),当最后一位数据(采用奇偶校验的异步通信,最后一个数据位往往是奇偶校验位)发送完毕后,发送一个高电平的停止位,这样就完成了一帧数据的发送过程。如果发送方不再需要发送新数据或尚未准备好下一帧数据时,就将数据线置为高电平

5、状态。,异步通信的接收方往往以16倍的发送速率检测传输线上的电平状态,当发现传输线电平由高变低时(起始位标志),就认为有数据传入,进入接收状态,然后以相同速率不断地检测传输线的电平状态,接收随后送来的数据位、奇偶校验位和停止位。为提高通信的可靠性,在异步串行通信中,接收方多采用“3中取2”方式确认收到的信息位是“0”码还是“1”码。 也就是说,在异步通信方式中,发送方通过控制数据线的电平状态来完成数据的发送;接收方通过检测数据线上的电平状态确认是否有数据传入以及接收到的数据位是0还是1,只要发送速率和接收检测速率相同,就能准确接收,发送、接收设备可使用各自的时钟源完成数据的发送和接收,无须使用

6、同一个时钟信号。因此,异步串行通信所需传输线最少,一根数据线和一根地线,就能实现数据发送与接收,在单片机控制系统中得到了广泛应用。,8.1.2 波特率 在串行通信系统中常用波特率来衡量通信的快慢,其含义是每秒中传送的二进制数码的位数,单位是位/秒(b/s或Kb/s),简称“波特”。例如,两个异步串行通信设备之间每秒钟传送的信息量是240字节,如果一帧数据包含10位(1个起始位、8个数据位和1个停止位),则发送、接收波特率为,240 10 = 2400 (b/s) = 2400 (波特),一般异步通信波特率为1109600波特,而同步通信波特率在56 K波特以上。在选择通信波特率时,不要盲目追高

7、,以满足数据传输要求为原则,原因是波特率越高,对发送、接收时钟信号频率的一致性要求就越高。,8.1.3 串行通信数据传输方向 根据串行通信数据传输方向,可将串行通信系统分为单工方式、半双工方式和全双工方式,如图8-4所示。,图8-4 数据传输方式,两个串行通信设备之间只有一根数据线,一方发送,另一方接收,就形成了“单工”通信方式,即数据只能由发送设备单向传输到接收设备,如图8-4(a)所示。 如果两个串行通信设备之间依靠一根数据线分时收、发数据(即发送时,不接收;接收时,不发送),就构成了“半双工”通信方式。在这种方式中,在同一传输线上要完成数据的双向传输,因此通信双方不可能同时既发送,又接收

8、,任何时候只能是一方发送,另一方接收,如图8-4(b)所示。 如果两个串行通信设备之间能同时接收和发送,就构成了“全双工”通信方式。由于允许两个通信设备同时发送、接收,就需要两根数据线:A设备的发送端接B设备的接收端;B设备的发送端接A设备的接收端,如图8-4(c)所示。,8.1.4 串行通信接口的种类 根据串行通信格式及约定(如同步方式、通信速率、信号电平等)不同,派生出不同的串行通信接口标准,如常见的RS232、RS422、RS485、IEEE 1394、I2C、SPI(同步通信)、USB(通用串行总线接口)、CAN总线接口等。下面将详细介绍STM8S芯片UART接口的功能及基本使用规则。

9、,8.2 UART串行通信接口,STM8S提供了3个通用异步串行通信接口UART (Universal Asynchronous Receiver Transmitter),分别编号为UART1、UART2、UART3,各UART接口功能略有差异,如表8-1所示。该系列MCU并非所有的型号都具有UART1UART3串行接口,实际上STM8S207、STM8S208芯片有UART1及UART3两个串行接口,STM8S105芯片仅有UART2串行接口,而STM8S103芯片仅有UART1串行接口。,表8-1 STM8S系列MCU芯片UART的功能,由于UART1、UART2、UART3的功能不同,

10、因此其内部结构也就略有区别,其中UART1内部结构如图8-5所示;UART3的内部结构如图8-6所示。 在全双工通信系统中,数据寄存器UART_DR往往对应物理上完全独立的发送数据寄存器TDR(只写)与接收寄存器RDR(只读)。对UART_DR寄存器进行写操作时,数据写入TDR寄存器;对UART_DR寄存器进行读操作时,数据来源是RDR寄存器。,图8-5 UART1接口内部结构,图8-6 UART3的内部结构,8.2.1 UART串行通信波特率设置 在异步串行通信方式中,为保证收、发双方通信的可靠性,发送波特率与接收波特率应严格相同,否则会因收发不同步造成接收不正确。不过,在异步串行通信方式中

11、,信息帧长度较短(10位或11位),只要收发双方波特率误差不大,接收方依然能正确接收发送方发送的信息。实验表明,波特率越高,收发双方波特率误差允许范围就越小。 STM8S MCU芯片UART接口部件的发送、接收波特率发生器由主时钟fMASTER经16位分频器UART_DIV分频后获得,波特率为,(8-1),在使用过程中,可根据主时钟fMASTER(单位为Hz)、期望的波特率(b/s),通过式(8-1)计算出分频器UART_DIV的值。 值得注意的是: (1) STM8S要求UART_DIV的值不能小于16。 (2) UART_DIV寄存器由波特率寄存器UART_BRR111:4、UART_BR

12、R215:12;3:0 组成,装入时必须先装入UART_BRR2,后装入UART_BRR1。,例如,当主时钟频率为8 MHz,目标波特率为9600 b/s时,得,即UART_BRR1为34H,UART_BRR2为01H。可见,在STM8S应用系统中,当主时钟频率fMASTER为整数时,标准波特率(如4800 b/s、9600 b/s、19 200 b/s等)对应的分频值往往不是整数,即实际波特率与标准波特率存在一定的偏差。当波特率分频器分频值为833时,实际波特率为9603.8 b/s,相对误差为,当主时钟频率由频率精度高、稳定性好的HSE产生时,如果波特率不大于38.4 Kb/s,则误差稍大

13、一点也能正常通信;当主时钟频率由HSI产生时,则波特率误差要尽可能小一些,除非波特率很低,如不超过4800 b/s,否则会影响通信的可靠性。,(3) UART_BRR1不能为00H,否则波特率时钟将被关闭而不能收发。因此,当选定的波特率对应的分频值刚好使UART_BRR1为0时,必须重新选定另一波特率(或更改主时钟fMASTER),使UART_BRR1 0。,8.2.2 UART串行通信信息帧格式 UART串行通信信息帧格式如图8-7所示。对于9位字长数据帧(Data Frame)来说,由低电平的起始位(Start Bit)、b0b8(9个数据位)、高电平的停止位(Stop Bit)组成。而8

14、位字长数据帧与9位字长数据帧相似,只是数据位长度为8位。,在异步串行通信方式中,起始位(长度固定为1位)总是为低电平,接收方收到低电平的起始位后,立即复位接收波特率发生器,并按指定速率接收随后的数据位与停止位;停止位总是为高电平,停止位长度可编程选择(1位、1.5位或2位);数据位中的最高位(9位字长中的b8或8位字长中的b7)可能是奇偶校验位,在多机通信方式中也可能是地址/数据的标识位。 空闲帧(Idle Frame)长度与数据帧的长度相同,只是全部为高电平(其起始位也是高电平)。断开帧(Break Frame)长度也与数据帧的相同,只是全部为低电平(其停止位也是低电平)。当由断开帧转入数据

15、帧,UART接口会自动插入一个附加的高电平停止位。,图8-7 STM8S UART接口帧的种类及格式,8.2.3 奇偶校验选择 STM8S串行接口支持奇偶校验功能,由AURT_CR1的PCEN(奇偶校验允许/禁止)、PS(奇/偶校验方式)选择位定义。 发送数据时,UART自动算出待发送数据的奇偶性(数据位异或运算),并将奇偶标志填入发送数据的MSB位,即借用MSB位作为奇偶标志位,如表8-2所示。,表8-2 数据帧格式,接收数据时,UART能自动判别奇偶校验是否正确,当奇偶校验错误时,状态寄存器UART_SR的PE位置1(表示奇偶错误),即STM8S串行接口能自动判别接收数据奇偶校验是否正确。

16、,8.2.4 数据发送/接收过程 1. 发送过程与发送中断控制 当发送数据功能处于禁止状态时,TX引脚与UART口处于断开状态,引脚电平由相应的GPIO定义。在完成了UART口初始化后,将发送允许控制位TEN(UART_CR23)置1,UART接口发送功能即处于使能状态,TX引脚与UART接口部件连通,UART部件在UART_TX引脚输出空闲帧,对数据寄存器UART_DR进行写操作,将触发串行发送进程,发送结束后,TC(UART_SR6)(发送结束)标志有效。,不过,STM8S的UART接口具有1个字节的发送缓冲区,在当前字节发送结束前,如果TXE(UART_SR7)(发送缓冲寄存器空闲)标志为1(空闲),也可以将新数据写入UART_DR。TC与TXE位指示发送缓冲器及发送状态如表8-3所示。,表8-3 TC/TXE位状态及含义,当TC标志为1时,可通过下列方式之一进行清除: (1) 软件写“0”清除。如“BRES UART_SR, #6”指令。 (2) 先读UART_SR寄存器,再对UART_DR寄存器写入。其操作指令如下: BTJF UAR

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号