USART收发器自学内容_第1页
USART收发器自学内容_第2页
USART收发器自学内容_第3页
USART收发器自学内容_第4页
USART收发器自学内容_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第14章USART收发器,一、USART的结构,1、主要特点全双工异步通信;NRZ标准格式;分数波特率发生器系统,最高达4.5Mbits/s;可编程数据字长度(8位或9位);可配置的停止位-支持1或2个停止位;LIN主发送同步断开符的能力以及LIN从检测断开符的能力;,IRDASIR编码器解码器,在正常模式下支持3/16位的持续时间;智能卡模拟功能,智能卡接口支持ISO7816-3标准里定义的异步协议智能卡,智能卡用到的0.5和1.5个停止位;单线半双工通信;使用DMA的可配置的多缓冲器通信;检测标志,接收缓冲器满,发送缓冲器空,传输结束标志;校验控制,发送校验位,对接收数据进行校验;,四个错误检测标志:溢出错误,噪音错误,帧错误,校验错误;10个带标志的中断源;CTS改变,LIN断开符检测,发送数据寄存器空,发送完成,接收数据寄存器满,检测到总线为空闲,溢出错误,帧错误,噪音错误,校验错误;多处理器通信,如果地址不匹配,则进入静默模式从静默模式中唤醒(通过空闲总线检测或地址标志检测);两种唤醒接收器的方式,地址位(MSB),空闲总线;,2、管脚定义RX:接收数据串行输入,通过过采样技术来区别数据和噪音,从而恢复数据;TX:发送数据输出,当发送器被激活,并且没数据发送时,TX引脚处于高电平;SCLK:发送器时钟输出,用于同步传输的时钟;IrDA_RDI:IrDA模式下的数据输入;IrDA_TDO:IrDA模式下的数据输出;nCTS:清除发送,若是高电平,在当前数据传输结束时阻断下一次的数据发送;nRTS:发送请求,若是低电平,表明USART准备好接收数据;,3、USART的结构图,二、USART特征描述,(一)发送器当发送使能位(TE)被设置时,发送移位寄存器中的数据在TX脚上输出,相应的时钟脉冲在SCLK脚上输出。1、数据字长:发送器发送8位或9位的数据字。2、可配置的停止位1个停止位:停止位位数的默认值;2个停止位:可用于常规USART模式、单线模式以及调制解调器模式;0.5个停止位:在智能卡模式下接收数据时使用;1.5个停止位:在智能卡模式下发送数据时使用。,3、单字节通信过程清零TXE位总是通过对数据寄存器的写操作来完成的,TXE位由硬件来设置,它表明:数据已经从TDR移送到移位寄存器,数据发送已经开始;TDR寄存器被清空,下一个数据可以被写进USART_DR寄存器而不会覆盖先前的数据;如果TXEIE位被设置,此标志将产生一个中断。,(二)接收器1、数据格式应与发送器配置的相同;2、字符接收,当一字符被接收到时:RXNE位被置位,表明移位寄存器的内容被送到RDR;如果RXNEIE位被设置,产生中断;在接收期间当检测到任何错误,错误标志将置位;在多缓冲器通信时,RXNE在每个字节接收后被置位,并由DMA对数据寄存器的读操作而清零;在单缓冲器模式里,由软件读USART_DR寄存器完成对RXNE位清除。,3、错误状态溢出错误;噪音错误(采样值为000或111时为有效数据,其它为噪音干扰,产生噪音错误);帧错误;,(三)分数波特率的产生1、分数波特率的计算方法接收器和发送器(Rx和Tx)的波特率在USARTDIV的整数和小数寄存器中的值应设置成相同。Tx/Rx波特率fck/(16*USARTDIV)这里的fck是给外设的时钟;USARTDIV是一个无符号的定点数。这12位的值设置在USART_BRR寄存器。,如何从波特率寄存器BRR的值得到USARTDIV的值例:设BRR=1BCh,则:DIV_Mantissa=27dDIV_Fraction=12d于是Mantissa(USARTDIV)=27dFraction(USARTDIV)=12/16=0.75d所以USARTDIV=27.75d如何从波特率除数USARTDIV的值得到BRR的值例:设USARTDIV=25.62d,就有:DIV_Fraction=16*0.62d=9.92d近似等于10d=Ah则:DIV_Mantissa=mantissa(25.620d)=25d=19h于是BRR=19Ah,2、设置波特率时的误差计算,(四)同步模式1、同步模式的设置通过在USART_CR2寄存器上写CLKEN位选择同步模式,在同步模式里,下列位必须保持清零状态:USART_CR2寄存器中的LINEN位;USART_CR3寄存器中的SCEN,HDSEL和IREN位;,2、同步模式的特点USART允许用户以主模式方式控制双向同步串行通信。SCLK脚是USART发送器时钟的输出,在起始位和停止位期间,SCLK脚上没有时钟脉冲。根据USART_CR2寄存器中LBCL位的状态,决定在最后一个有效数据位期间产生或不产生时钟脉冲。USART_CR2寄存器的CPOL位允许用户选择时钟极性,USART_CR2寄存器上的CPHA位允许用户选择外部时钟的相位。,在总线空闲期间,实际数据到来之前以及发送断开符号的时候,外部SCLK时钟不被激活。同步模式时,USART发送器和异步模式里工作一模一样。但是因为SCLK是与TX同步的(根据CPOL和CPHA),所以TX上的数据是随SCLK同步发出的。同步模式的USART接收器工作方式与异步模式不同。数据在SCLK上采样(根据CPOL和CPHA决定上/下降沿采样),不需要过采样。但必须考虑建立时间和持续时间(取决于波特率,1/16位时间)。,3、采样时钟极性的选择USART数据时钟时序示例(M=0),USART数据时钟时序示例(M=1),数据建立和保持时间,同步传输的例子,(六)利用DMA连续通信USART可以利用DMA连续通信,Rx缓冲器和Tx缓冲器的DMA请求可以分别产生。可以清零USART2_SR寄存器里的TXE/RXNE标志来实现连续通信。1、利用DMA发送使用DMA进行发送,可以通过设置USART_CR3寄存器上的DMAT位激活。只要TXE位被置位,DMA就能从SRAM中装载数据到USART_DR寄存器里。,2、利用DMA接收使用DMA进行接收,可以通过设置USART_CR3寄存器的DMAR位激活。只要接收到一个字节,数据就从USART_DR寄存器放到配置成DMA的SRAM区域。3、多缓冲器通信中的错误标志和中断产生在多缓冲器通信的情况下,通信期间发生任何错误,在当前字节传输后将置位错误标志。如果中断使能位被设置,将产生中断。在单个字节接收的情况下,如果设置了错误标志中断使能,会在当前字节传输后,产生中断。,(七)中断1、中断请求表:,USART的各种中断事件被连接到同一个中断向量,2、USART中断映像图,三、USART固件库函数,USART_Init的使用方法,USART_InitTypeDef结构:该结构定义在stm32f10 x_usart.h文件中。typedefstructu32USART_BaudRate;u16USART_WordLength;u16USART_StopBits;u16USART_Parity;u16USART_HardwareFlowControl;u16USART_Mode;u16USART_Clock;u16USART_CPOL;u16USART_CPHA;u16USART_LastBit;USART_InitTypeDef;,下表描述的USART_InitTypeDef结构可以使用在同步和异步模式中的情况.,USART_WordLength参数设置发送和接收数据帧的长度.,USART_StopBits参数定义发送停止位的数目.,USART_Parity参数定义奇偶校验模式.,USART_HardwareFlowControl参数使能或禁止指定的流控制.,USART_Mode参数使能或禁止指定的发送或接收.,USART_Clock参数使能或禁止指定的USART时钟.,USART_CPOL参数指定时钟在稳定时的状态.,USART_CPHA参数定义采样数据的时钟沿.,USART_LastBit参数定义在同步模式中,是否最后一个数据位的时钟脉冲从SCLK管脚输出.,USART_ITConfig的使用方法,USART_IT参数取值如下:,USART_GetITStatus的使用方法,USART_IT参数指定需要检查的中断标志.,USART_GetFlagStatus的使用方法,USART_FLAG的取值如下:,USART_DMACmd的使用方法,USART_DMAReq参数的取值如下:,USART_SendData函数的使用方法,USART_ReceiveData函数的使用方法,例1:采用USART2,与微机的超级终端进行数据交换。USART2的配置如下:波特率:115200bps字长:8停止位:1校验:无硬件流控制:无接收和发送允许USART时钟关闭USARTCPOL:低电平USARTCPHA:数据捕获在第2个边沿USARTLastBit:最后数据位的时钟不输出到SCLK上,/*定义*/#defineTxBufferSize(countof(TxBuffer)-1)#defineRxBufferSize0 xFF#definecountof(a)(sizeof(a)/sizeof(*(a)/*定义变量*/USART_InitTypeDefUSART_InitStructure;u8TxBuffer=“nrUSARTExample1:USART-Hyperterminalcommunicationusinghardwareflowcontrolnr”;u8RxBufferRxBufferSize;u8NbrOfDataToTransfer=TxBufferSize;u8TxCounter=0;u8RxCounter=0;,/*配置USART2*/USART_InitStructure.USART_BaudRate=115200;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_InitStructure.USART_Clock=USART_Clock_Disable;USART_InitStructure.USART_CPOL=USART_CPOL_Low;USART_InitStructure.USART_CPHA=USART_CPHA_2Edge;USART_InitStructure.USART_LastBit=USART_LastBit_Disable;USART_Init(USART2,DMA_InitStructure.DMA_PeripheralBaseAddr=USART2_DR_Base;DMA_InitStructure.DMA_MemoryBaseAddr=(u32)TxBuffer2;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralDST;DMA_InitStructure.DMA_BufferSize=TxBufferSize2;DMA_Init(DMA_Channel7,&DMA_InitStructure);,/*以相同的参数配置USART1和USART2*/USART_InitStructure.USART_BaudRate=230400;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_InitStructure.USART_Clock=USART_Clock_Disable;USART_InitStructure.USART_CPOL=USART_CPOL_Low;USART_InitStructure.USART_CPHA=USART_CPHA_2Edge;USART_InitStructure.USART_LastBit=USART_LastBit_Disable;USART_Init(USART1,&USART_InitStructure);USART_Init(USART2,&USART_InitStructure);,/*使能USART1DMA的发送TX和接收Rx请求*/USART_DMACmd(USART1,USART_DMAReq_Rx|U

温馨提示

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

评论

0/150

提交评论