常见通信协议之UART

本文详细介绍了UART通信协议,包括其异步通信特性、帧结构(起始位、数据位、校验位和停止位)、波特率设定及其与采样率的区别。重点讲解了如何通过分频电路调整时钟频率以适应不同波特率需求。
摘要由CSDN通过智能技术生成

常见通信协议–系列


UART

一、简介

UART(Universal Asynchronous Receiver/Transmitter)通用异步收发器,是一种广泛应用于嵌入式系统中的串行通信协议。UART有如下基本特征:

  • 异步通信:不同于同步通信,在异步通信中,数据的发送和接收不需要严格的时钟同步。这意味着发送方可以在任何时间发送数据,而接收方则根据数据流中的起始位来识别数据的开始。
  • 串行传输:UART通过将并行数据转换为串行数据进行传输,这样只需要一对传输线就可以实现双向通信,简化了线路并降低了成本。
  • 全双工通信:UART支持全双工通信模式,允许同时进行数据发送和接收。
  • 波特率:波特率是UART通信中的一个重要参数,它定义了数据传输的速度,即每秒传输的符号数。
  • 硬件连接:UART通常有四个引脚,分别是VCC(供电)、GND(接地)、RX(接收数据)和TX(发送数据)。
  • 电平表示:在UART通信中,信号线上的高电平代表逻辑’1’,低电平代表逻辑’0’。

二、UART的帧格式

UART的一帧由起始位、数据位、校验位和停止位组成。如下图:
UART帧格式

  • 由于UART没有控制线,所以要让接收方知道什么时候开始接收数据,必须要先发送一个约定好的开始标致。这个约定好的标志在UART中就是在发送数据之前,先发一位逻辑“0”作为数据发送的起始标志,接收方在空闲时,当检测到有一个低电平,则开始接逐位接收数据。
  • UARST空闲时,默认为高电平
  • 当信号拉低,数据线上的电平拉低,意味着开始进行数据传输
  • 起始位之后就是数据位,可以是5、6、7或8位,发送方与接收方需提前约定。由于UART是一种低速总线,没多发一位都需要占用不少时间,所以可以根据需要设置帧的数据位,以节约传输时间。
  • UART的“校验位”紧挨着“数据位”,采用奇偶校验方式,根据设置,校验位可以存在也可以不存在。
  • UART将停止位作为停止标志,停止位是在数据位(无校验位时)或者校验位之后发送1、1.5或2位的逻辑“1”高电平。

三、UART的波特率

在使用UART协议进行通信之前,接收方和发送方必须约定好帧中可变位的设置以及波特率,以此确保发射端的数据可以在接收端得到正确的采集。常用的波特率可以是300,1200,2400,9600,19200,38400,115200

波特率

波特率等于每秒钟传输的数据位数,假如我们的全局时钟频率为100MHz,波特率设置为9600,那么意味着每秒该UART传输协议可以传输9600bits的数据,换句话说传输1比特需时间约为:10^9(ns)/9600=104166(ns)。

波特率的换算

还是假设时钟频率为100MHz,这意味着我们的时钟周期为10ns,因此10416个时钟周期我们就可以传输1bit数据,换言之我们需要一个大小为10416的分频电路来对100MHz时钟进行处理,因此在设计UART的过程中,我们需要使用分频电路依据波特率处理全局时钟,依据分频后的时钟节奏来发送数据和接收数据。

在UART中,波特率不等于采样率。因为在实际的UART中,需要进行多次采样,然后通过处理获得准确的数据,例如多数表决法.

  • 29
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值