一、USART概念内容
串口通信是一种通过串行接口进行数据传输的通信方式。在串口通信中,数据是以位的形式逐个传输的,通常使用RS-232、RS-485、USB等接口标准。串口通信可以用于连接计算机和外部设备、嵌入式系统之间的通信,常见的应用包括串口打印机、串口调制解调器、串口通信设备等。串口通信的优点是传输距离远、成本低、稳定可靠,但传输速度相对较慢。
通用同步异步收发器(USART)能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准NRZ异步串行数据格式的要求。USART通过小数波特率发生器提供了多种波特率。
它支持同步单向通信和半双工单线通信;还支持LIN(局域互连网络)、智能卡协议与IrDA (红外线数据协会)SIR ENDEC规范,以及调制解调器操作(CTS/RTS)。而且,它还支持多处理器通信。通过配置多个缓冲区使用DMA可实现高速数据通信。
二、USART主要特性
1. 异步或同步传输:USART可以以异步模式或同步模式进行数据传输。异步传输使用起始位和停止位确定数据帧的开始和结束,而同步传输使用外部时钟信号进行同步。
2. 支持多种数据格式:USART支持多种数据格式,包括数据位数(通常为8位)、校验位(奇偶校验或无校验)和停止位数(通常为1位或2位)的配置。
3. 双工通信:USART支持全双工通信,可以同时进行数据的发送和接收。
4. 可编程波特率:USART允许用户根据需要设置波特率,以适应不同的通信速率要求。
5. 中断支持:USART提供中断功能,可以在数据接收或发送完成时触发中断,以便及时处理数据。
6. 多个通信模式:USART可以配置为主模式或从模式。在主模式下,USART可以控制通信的时序和流程,而在从模式下,USART将根据外部设备的控制进行通信。
7. 缓冲器支持:USART通常具有接收和发送缓冲器,用于存储接收到的数据和待发送的数据。
8. 硬件流控制:一些USART支持硬件流控制功能,包括使用RTS(请求发送)和CTS(清除发送)信号进行数据流控制。
三、USART功能说明
接口通过三个引脚从外部连接到其他设备(请参见USART框图)。任何USART双向通信均需要至少两个引脚:接收数据输入引脚(RX)和发送数据输出引脚(TX)。
RX:接受数据输入引脚是指串行数据输入引脚。过采样技术可区分有效输入数据和噪声,从而用于恢复数据。
TX:发送数据输出引脚,如果关闭发送器,该输出引脚模式由其I/O端口决定。如果使能了发送器但没有待发送数据,则TX引脚处于高电平。在单线和智能卡模式下,该I/O用于发送和接收数据(USART电平下,随后在SW_RX上接收数据)。
USART框图如下:
四、USART字符说明
可通过对USART_CR1寄存器中的M位进行编程来选择8位或9位的字长(请参见USART字符框图)。TX引脚在起始位工作期间处于低电平状态。在停止位工作期间处于高电平状态。
空闲字符可理解为整个帧周期内电平均为“1”(停止位的电平也是“1”),该字符后是下一个数据帧的起始位。
停止字符可理解为在一个帧周期内接收到的电平均为“O”。发送器在中断帧的末尾插入1或2个停止位(逻辑“1”位)以确认起始位。
发送和接收由通用波特率发生器驱动,发送器和接收器的使能位分别置1时将生成相应的发送时钟和接收时钟。
USART字符框图如下所示:
五、USART可配置停止位
可以在控制寄存器⒉的位13和位12中编程将随各个字符发送的停止位的数量。
1个停止位。这是停止位数量的默认值。
2个停止位。正常USART模式、单线模式和调制解调器模式支持该值。
0.5个停止位。在智能卡模式下接收数据时使用。
1.5个停止位。在智能卡模式下发送和接收数据时使用。
空闲帧发送将包括停止位。
m=0时,中断发送是10个低电平位,然后是已配置数量的停止位;m=1时,中断发送是11个低电平位,然后是已配置数量的停止位。无法传送长中断(中断长度大于10/11个低电平位)。
USART可配置的停止位框图如下: