嵌入式系统设计(STM32)第5讲ppt课件.ppt
《嵌入式系统设计(STM32)第5讲ppt课件.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统设计(STM32)第5讲ppt课件.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5讲 USARTUSART: Universal Synchronous & Asynchronous Receiver and Transmitter STM32通用同步通用同步/异步收发器异步收发器n5.1 串行通信相关概念串行通信相关概念n5.2 STM32的通用串口结构的通用串口结构n5.3 串口相关寄存器串口相关寄存器n5.5 库函数库函数n5.6 程序设计举例程序设计举例5.1 串行通信相关概念串行通信相关概念n串行通信:串行通信: 串行通信是指在单根数据线上将数据一位一位地依次串行通信是指在单根数据线上将数据一位一位地依次传送。发送过程中,每发送完一个数据,再发送第二个,传送。
2、发送过程中,每发送完一个数据,再发送第二个,依此类推。接受数据时,每次从单根数据线上一位一位地依此类推。接受数据时,每次从单根数据线上一位一位地依次接受,再把它们拼成一个完整的数据。依次接受,再把它们拼成一个完整的数据。n在远距离数据通信中,一般采用串行通信方式,它具有占在远距离数据通信中,一般采用串行通信方式,它具有占用通信线少、成本低等优点。用通信线少、成本低等优点。同步和异步通信方式同步和异步通信方式 n同步串行通信同步串行通信方式是指在相同的数据传送速率下,发送端和方式是指在相同的数据传送速率下,发送端和接受端的通信频率保持严格同步。接受端的通信频率保持严格同步。 由于不需要使用起始位
3、和停止位,可以提高数据的传输速由于不需要使用起始位和停止位,可以提高数据的传输速率,但发送器和接受器的成本较高。率,但发送器和接受器的成本较高。n异步串行通信异步串行通信是指发送端和接受端在相同的波特率下不需是指发送端和接受端在相同的波特率下不需要严格地同步,允许有相对的时间时延,即收、发两端的要严格地同步,允许有相对的时间时延,即收、发两端的频率偏差在频率偏差在1010以内,就能保证正确实现通信。以内,就能保证正确实现通信。 异步通信在不发送数据时,数据信号线上总是呈现高异步通信在不发送数据时,数据信号线上总是呈现高电平状态,称为空闲状态(又称电平状态,称为空闲状态(又称MARKMARK状态
4、)。当有数据发状态)。当有数据发送时,信号线变成低电平,并持续一位的时间,用于表示送时,信号线变成低电平,并持续一位的时间,用于表示发送字符的开始,该位称为起始位(也称发送字符的开始,该位称为起始位(也称SPACESPACE状态)。状态)。 起始位之后,在信号线上依次出现待发送的每一位字起始位之后,在信号线上依次出现待发送的每一位字符数据,并且按照先低位后高位的顺序逐位发送。待发送符数据,并且按照先低位后高位的顺序逐位发送。待发送的每个字符的位数可以在的每个字符的位数可以在5 5、6 6、7 7或或8 8位之间选择。数据位位之间选择。数据位的后面可以加上一位奇偶校验位,也可以不加,由编程指的后
5、面可以加上一位奇偶校验位,也可以不加,由编程指定。最后传送的是停止位(高电平),一般选择定。最后传送的是停止位(高电平),一般选择1 1位、位、1.51.5位或位或2 2位。位。数据传送方式n单工方式。单工方式。单工方式采用一根数据传输线,只允许数据按单工方式采用一根数据传输线,只允许数据按照固定的方向传送。照固定的方向传送。n半双工方式。半双工方式。半双工方式采用一根数据传输线,允许数据半双工方式采用一根数据传输线,允许数据分时地在两个方向传送,但不能同时双向传送。分时地在两个方向传送,但不能同时双向传送。n全双工方式。全双工方式。全双工方式采用两根数据传输线,允许数据全双工方式采用两根数据
6、传输线,允许数据同时进行双向传送。同时进行双向传送。波特率波特率 n波特率是指每秒内传送二进制数据的位数,以波特率是指每秒内传送二进制数据的位数,以b/s和和bps(位(位/秒,秒,bit per second)为单位。它是衡量串行数据传)为单位。它是衡量串行数据传送速度快慢的重要指标和参数。送速度快慢的重要指标和参数。n计算机通信中常用的波特率是:计算机通信中常用的波特率是:110,300,600,1200,2400,4800,9600,19200bps。PC机串口通信流控制n这里讲到的这里讲到的“流流”,当然指的是数据流。数据在两个串口之当然指的是数据流。数据在两个串口之间传输时间传输时,
7、常常会出现丢失数据的现象常常会出现丢失数据的现象, 或者两台计算机的或者两台计算机的处理速度不同处理速度不同, 如台式机与单片机之间的通讯如台式机与单片机之间的通讯,接收端数据接收端数据缓冲区已满缓冲区已满,则此时继续发送来的数据就会丢失。则此时继续发送来的数据就会丢失。 n流控制能解决这个问题流控制能解决这个问题, , 当接收端数据处理不过来时当接收端数据处理不过来时, ,就就发出发出“不再接收不再接收”的信号的信号, ,发送端就停止发送发送端就停止发送, ,直到收到直到收到“可以继续发送可以继续发送”的信号再发送数据。因此流控制可以控的信号再发送数据。因此流控制可以控制数据传输的进制数据传
8、输的进 程程, ,防止数据的丢失。防止数据的丢失。nPC机中常用的两种流控制是硬件流控制(包括机中常用的两种流控制是硬件流控制(包括RTS/CTS、 DTR/DSR等)和软件流控制等)和软件流控制XON/XOFF(继续(继续/停止)停止) 硬件流控制硬件流控制 n硬件流控制常用的有硬件流控制常用的有RTS/CTS流控制和流控制和DTR/DSR(数据终端(数据终端就绪就绪/数据设置就绪)流控制。数据设置就绪)流控制。n硬件流控制必须将相应的电缆线连上硬件流控制必须将相应的电缆线连上,用用RTS/CTS(请求发送(请求发送/清除发送)流控制时清除发送)流控制时,应将通讯两端的应将通讯两端的RTS、
9、CTS线对应相连线对应相连,数据终端设备(如计算机)使用数据终端设备(如计算机)使用RTS来起始调制解调器或其来起始调制解调器或其它数据通讯设备的数据流它数据通讯设备的数据流,而数据通讯设备(如调制解调器)而数据通讯设备(如调制解调器)则用则用CTS来起动和暂停来自计算机的数据流。来起动和暂停来自计算机的数据流。n这种硬件握手方式的过程为:我们在编程时根据接收端缓冲这种硬件握手方式的过程为:我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的区大小设置一个高位标志(可为缓冲区大小的75)和一个)和一个低位标志(可为缓冲区大小的低位标志(可为缓冲区大小的25),当缓冲区内数据量达到
10、当缓冲区内数据量达到高位时高位时,我们在接收端将我们在接收端将CTS线置低电平(送逻辑线置低电平(送逻辑0),当发送当发送端的程序检测到端的程序检测到CTS为低后为低后,就停止发送数据就停止发送数据,直到接收端缓冲直到接收端缓冲区的数据量低于低位而将区的数据量低于低位而将CTS置高电平。置高电平。RTS则用来标明接则用来标明接收设备有没有准备好接收数据。收设备有没有准备好接收数据。n常用的流控制还有还有常用的流控制还有还有DTR/DSR(数据终端就绪(数据终端就绪/数据设置就数据设置就绪)。我们在此不再详述。绪)。我们在此不再详述。 RS-232-CnRS-232-C是美国电子工业协会是美国电
11、子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。)制定的一种串行物理接口标准。RS是英文是英文“推荐标准推荐标准”的缩写,的缩写,232为标识号,为标识号,C表示修改次数。表示修改次数。 nRS-232-C标准规定的数据传输速率为标准规定的数据传输速率为50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。波特。nRS-232-C标准规定,驱动器允许有标准规定,驱动器允许有2500pF的电容负载,的电容负载,通信距离将受此电容限制,例如,采用通信距离将受此电容限制,例如,采用
12、150pF/m的通信电的通信电缆时,最大通信距离为缆时,最大通信距离为15m;若每米电缆的电容量减小,;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是通信距离可以增加。传输距离短的另一原因是RS-232属属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于因此一般用于20m以内的通信。以内的通信。 nEIA-RS-232C规定:在规定:在TxD和和RxD上,上, 逻辑逻辑1(MARK)=-3V-15V;逻辑;逻辑0(SPACE)=+3+15V 5.2 USART简介简介n通用同步异步收发器通用同步异步收发器(U
13、SART)提供了一种灵活的方法与使用提供了一种灵活的方法与使用工业标准工业标准NRZ异步串行数据格式的外部设备之间进行全双工异步串行数据格式的外部设备之间进行全双工数据交换。数据交换。USART利用分数波特率发生器提供宽范围的波特利用分数波特率发生器提供宽范围的波特率选择。率选择。 n它支持同步单向通信和半双工单线通信,也支持它支持同步单向通信和半双工单线通信,也支持LIN(局部互局部互连网连网),智能卡协议,智能卡协议,IrDA (Infra Red Data Association,红外数据组织)SIR ENDEC(Serial Infrared,串行红外协议)规范,规范,以及调制解调器以
14、及调制解调器(CTS/RTS)操作。它还允许多处理器通信。操作。它还允许多处理器通信。使用多缓冲器配置的使用多缓冲器配置的DMA方式,可以实现高速数据通信。方式,可以实现高速数据通信。总之,总之,STM32F10 x系列芯片所提供的系列芯片所提供的USART串口功能十分强大,串口功能十分强大,基本上所有的串口功能,它都能通过硬件实现基本上所有的串口功能,它都能通过硬件实现USART模式配置。(模式配置。(X=支持,支持,NA=不支持)不支持)(STM32F103内置内置3个个USART和和2个个UART)STM32的的USART主要特性n全双工的,异步通信全双工的,异步通信 nNRZNRZ(N
15、ot Return to Zero,不归零码,不归零码)标准格式)标准格式 n分数波特率发生器系统分数波特率发生器系统-发送和接收共用的可编程波特率,发送和接收共用的可编程波特率,最高达最高达4.5Mbits/s 4.5Mbits/s n可编程数据字长度可编程数据字长度(8(8位或位或9 9位位) ) n可配置的停止位。支持可配置的停止位。支持1 1或或2 2个停止位个停止位 n单线半双工通信单线半双工通信 n检测标志。接收缓冲器满、发送缓冲器空、传输结束标志。检测标志。接收缓冲器满、发送缓冲器空、传输结束标志。n四个错误检测标志四个错误检测标志n1010个带标志的中断源个带标志的中断源 n
16、USART功能概述:功能概述:n总线在发送或接收前应处于空闲状态(高电平)总线在发送或接收前应处于空闲状态(高电平) n一个起始位一个起始位 n一个数据字一个数据字(8(8或或9 9位位) ),最低有效位在前,最低有效位在前 n0.50.5,1.51.5,2 2个的停止位,由此表明数据帧的结束个的停止位,由此表明数据帧的结束 n使用分数波特率发生器使用分数波特率发生器-12-12位整数和位整数和4 4位小数的表示方法。位小数的表示方法。 n一个状态寄存器一个状态寄存器(USART_SR) (USART_SR) n数据寄存器数据寄存器(USART_DR) (USART_DR) n一个波特率寄存器
17、一个波特率寄存器(USART_BRR)(USART_BRR),1212位的整数和位的整数和4 4位小数位小数 n一个智能卡模式下的保护时间寄存器一个智能卡模式下的保护时间寄存器(USART_GTPR) (USART_GTPR) nCKCK:发送器时钟输出。:发送器时钟输出。nIrDA_RDI: IrDAIrDA_RDI: IrDA模式下的数据输入。模式下的数据输入。 nIrDA_TDO: IrDAIrDA_TDO: IrDA模式下的数据输出。模式下的数据输出。 nnCTS: nCTS: 清除发送,若是高电平,在当前数据传输结束时阻断下一次的数据清除发送,若是高电平,在当前数据传输结束时阻断下一
18、次的数据发送。发送。nnRTS: nRTS: 发送请求,若是低电平,表明发送请求,若是低电平,表明USARTUSART准备好接收数据准备好接收数据 5.3 STM32的通用串口结构的通用串口结构n任何任何USART双向通信至少需要两个脚:接收数据双向通信至少需要两个脚:接收数据输入输入(RX)和发送数据输出和发送数据输出(TX)。 nRX:接收数据串行输入端。通过采样技术来区别数:接收数据串行输入端。通过采样技术来区别数据和噪音,从而恢复数据。据和噪音,从而恢复数据。 nTX:发送数据输出端。当发送器被禁止时,输出引:发送数据输出端。当发送器被禁止时,输出引脚恢复到它的脚恢复到它的I/O端口配
19、置。当发送器被激活,并且端口配置。当发送器被激活,并且不发送数据时,不发送数据时,TX引脚处于高电平。引脚处于高电平。在单线和智能在单线和智能卡模式里,此卡模式里,此I/O口被同时用于数据的发送和接收。口被同时用于数据的发送和接收。 端口重映射 nP132.图7-1.重映射步骤为重映射步骤为:1.打开复用打开复用IO时钟和时钟和USART重映射后的重映射后的I/O口引脚时钟口引脚时钟, RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);2.I/O口重映射开启口重映射开启. GPIO_PinRe
20、mapConfig(GPIO_Remap_USART1,ENABLE);3.配制重映射引脚配制重映射引脚, 这里只需配置重映射后的这里只需配置重映射后的I/O,原来的不需要去原来的不需要去配置配置.GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pi
21、n = GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOB,&GPIO_InitStructure);起始位侦测:起始位侦测:在在USARTUSART中,如果辨认出一个特殊的采样序列,那么就中,如果辨认出一个特殊的采样序列,那么就认为侦测到一个起始位。认为侦测到一个起始位。 该序列为:该序列为:1 1 1 0 X 0 X 0 X 0 0 0 0 1 1 1 0 X 0 X 0 X 0 0 0 0 接收器起始位侦测接收器起始位侦测n如果如果3个采样点都为个采样点都为0(在第在第3、5、7位
22、的第一次采样,和在位的第一次采样,和在第第8、9、10的第二次采样都为的第二次采样都为0),则确认收到起始位,这,则确认收到起始位,这时设置时设置RXNE标志位,如果标志位,如果RXNEIE=1,则产生中断。,则产生中断。n如果两次如果两次3个采样点上仅有个采样点上仅有2个是个是0(第第3、5、7位的采样点位的采样点和第和第8、9、10位的采样点位的采样点),那么起始位仍然是有效的,但,那么起始位仍然是有效的,但是会设置是会设置NE噪声标志位。如果不能满足这个条件,则中止起噪声标志位。如果不能满足这个条件,则中止起始位的侦测过程,接收器会回到空闲状态始位的侦测过程,接收器会回到空闲状态(不设置
23、标志位不设置标志位)。n如果有一次如果有一次3个采样点上仅有个采样点上仅有2个是个是0(第第3、5、7位的采样位的采样点或第点或第8、9、10位的采样点位的采样点),那么起始位仍然是有效的,那么起始位仍然是有效的,但是会设置但是会设置NE噪声标志位。噪声标志位。5.4 USART寄存器描述寄存器描述n状态寄存器状态寄存器(USART_SR) n数据寄存器数据寄存器(USART_DR) n波特比率寄存器波特比率寄存器(USART_BRR) n控制寄存器控制寄存器1(USART_CR1) n控制寄存器控制寄存器2(USART_CR2) n控制寄存器控制寄存器3(USART_CR3) n保护时间和预
24、分频寄存器保护时间和预分频寄存器(USART_GTPR) 可以用半字可以用半字(16位位)或字或字(32位位)的方式操作这些外设寄存器。的方式操作这些外设寄存器。 状态寄存器(USART_SR)D31-D10:保留D9-D0:状态位D4-IDLE:监测到总线空闲:监测到总线空闲 (IDLE line detected) D3-ORE:溢出错误:溢出错误 (Overrun error) D2-NE: 噪声错误标志噪声错误标志 (Noise error flag) D1-FE: 帧错误帧错误 (Framing error) D0-PE: 校验错误校验错误 (Parity error) n溢出错误溢
25、出错误:如果:如果RXNERXNE还没有被复位,又接收到一个字符,还没有被复位,又接收到一个字符,则发生溢出错误。数据只有当则发生溢出错误。数据只有当RXNERXNE位被清零后才能从移位位被清零后才能从移位寄存器转移到寄存器转移到RDRRDR寄存器。寄存器。n噪音错误噪音错误:使用过采样技术:使用过采样技术( (同步模式除外同步模式除外) ),通过区别有,通过区别有效输入数据和噪音来进行数据恢复。效输入数据和噪音来进行数据恢复。n帧错误帧错误:由于没有同步上或大量噪音的原因,停止位没有:由于没有同步上或大量噪音的原因,停止位没有在预期的时间上接和收识别出来。在预期的时间上接和收识别出来。 噪音
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 设计 STM32 ppt 课件
限制150内