UART串口协议

UART是一种串行、异步的通信协议,使用两条数据线实现全双工通信。其特点是无需同步时钟,数据传输依赖于预设的波特率和数据帧结构,包括起始位、数据位、奇偶校验位和停止位。UART通过16倍数据波特率的时钟采样确保数据准确性,常用于设备间的简单通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是一种串行、异步收发传输器。

二、特点

1、两条数据线(RX、TX),可双向通信,可以实现全双工(同时发送和接收);

2、异步,传输数据的两个设备间时钟不需要同步,不像I2C有一根线SCL进行同步;

3、串行,计算机内部为并行数据,发送时将字符整理为1位、1位的串行数据流发送,接收时将1位、1位转换为字符,供计算机内部并行数据的器件使用;

三、工作逻辑

一根线负责发送,一根线负责接收,从而实现全双工通信。数据的成功传输绕不开以下几个逻辑,未传数时的状态,什么时候开始发送、识别发送了什么、发送数据是否正确、什么时候终止发送。从这个角度看UART的工作原理如下:

  1. 未传数时的状态:当未进行数据传输时,传输线处于空闲状态,为高电平即逻辑“1”的状态;

  2. 什么时候开始发送:数据开始发送,则传输线状态应改变,以识别数据开始传输,故从空闲状态高电平拉低为低电平(“1”—>“0”),即为确认开始发送数据;

  3. 识别发送了什么:a) 没有时钟同步,发送的数据就是一串高低电平的变化,因此需约定“1位”的数据有多长即位周期(与波特率相关),才能识别出到底发送了什么; b)发送的数据,先发的bit是高位,还是低位,也是需要注意的;

  4. 发送数据是否正确:数据发送过程中,由于时钟不同步,可能出现误码的情况,因此存在一个校验位,该位为奇偶校验位,数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以次来校验数据传送的正确性。

  5. 什么时候终止发送:数据结束标志,其状态应该回到空闲态,表示无数据传输,一般为1/1.5/2位(高电平)。

上述的几个传输状态对应着UART传输数据的帧结构,分别由空闲位、起始位、数据位、奇偶校验位、停止位构成,示意图如下:

同时需注意,UART是异步传输,没有同步时钟,为了保证数据的正确性,UART采用16倍数据波特率的时钟进行采样。每个数据有16个时钟采样,取中间的采样值,以保证采样不会滑码或误码。一般UART一帧的数据位数为8(1次传1个字符,1个字符8位),这样即使每个数据有一个时钟的误差,接收端也能正确地采样到数据。(检测到下降沿开始计数)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值