写点什么

一文搞懂 UART 通信协议

  • 2022 年 9 月 05 日
    河南
  • 本文字数:1322 字

    阅读完需:约 4 分钟

一文搞懂UART通信协议

1、UART 简介

UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种双向、串行、异步的通信总线,仅用一根数据接收线和一根数据发送线就能实现全双工通信。典型的串口通信使用 3 根线完成,分别是:发送线(TX)、接收线(RX)和地线(GND),通信时必须将双方的 TX 和 RX 交叉连接并且 GND 相连才可正常通信,如下图所示:

2、UART 特性

UART 接口不使用时钟信号来同步发送器和接收器设备,而是以异步方式传输数据。发送器根据其时钟信号生成的位流取代了时钟信号,接收器使用其内部时钟信号对输入数据进行采样。 同步点是通过两个设备的相同波特率(UART 和大多数串行通信一样,发送和接收设备需要将波特率(波特率是指信息传输到信道的速率)设置为相同的值。对于串行端口,设定的波特率将用作每秒传输的最大位数)来管理的。 如果波特率不同,发送和接收数据的时序可能会受影响,导致数据处理过程出现不一致。允许的波特率差异最大值为 10%,超过此值,位的时序就会脱节。

​下面总结了关于 UART 必须了解的几点:


3、UART 协议帧

在 UART 中,传输模式为数据包形式。数据包由起始位、数据帧、奇偶校验位和停止位组成。

3.1、起始位

当不传输数据时,UART 数据传输线通常保持高电压电平。若要开始数据传输,发送 UART 会将传输线从高电平拉到低电平并保持 1 个时钟周期。

当接收 UART 检测到高到低电压跃迁时,便开始以波特率对应的频率读取数据帧中的位。


3.2、数据位

数据帧包含所传输的实际数据。如果使用奇偶校验位,数据帧长度可以是 5 位到 8 位。如果不使用奇偶校验位,数据帧长度可以是 9 位。

在大多数情况下,数据以最低有效位优先方式发送。


3.3、奇偶校验位

奇偶性描述数字是偶数还是奇数。通过奇偶校验位,接收 UART 判断传输期间是否有数据发生改变。电磁辐射、不一致的波特率或长距离数据传输都可能改变数据位。

校验位可以配置成 1 位偶校验或 1 位奇校验或无校验位。

接收 UART 读取数据帧后,将统计数值为 1 的位,检查总数是偶数还是奇数。如果奇偶校验位为 0(偶数奇偶校验),则数据帧中的 1 或逻辑高位总计应为偶数。如果奇偶校验位为 1(奇数奇偶校验),则数据帧中的 1 或逻辑高位总计应为奇数。

当奇偶校验位与数据匹配时,UART 认为传输未出错。但是,如果奇偶校验位为 0,而总和为奇数,或者奇偶校验位为 1,而总和为偶数,则 UART 认为数据帧中的位已改变。

3.4、停止位

为了表示数据包结束,发送 UART 将数据传输线从低电压驱动到高电压并保持 1 到 2 位时间。

​4、UART 通信步骤

第 1 步:数据从数据总线到发送器。

第 2 步:发送 UART 将起始位、奇偶校验位和停止位添加到数据帧。

第 3 步:从起始位到结束位,整个数据包以串行方式从发送器送至接收器。

接收 UART 以预配置的波特率对数据线进行采样。

第 4 步:接收器丢弃数据帧中的起始位、奇偶校验位和停止位。

第 5 步:接收器将串行数据转换回并行数据,并将其传输到接收端的数据总线。



拓展学习:

1、一文搞懂SPI通信协议

2、一文搞懂I2C总线通信

3、 一文看懂Modbus协议

4、一文搞懂PID控制算法

5、一文搞懂TCP的三次握手和四次挥手

6、一文搞懂图像二值化算法

7、一文搞懂步进电机特性、原理及驱动器设计

8、一文搞懂三级管和场效应管驱动电路设计及使用

9、ADI期刊-UART:了解通用异步接收器-发送器的硬件通信协议

发布于: 2 小时前阅读数: 23
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018.02.09 加入

嵌入式工程师,创客爱好者,公众号:美男子玩编程,全网粉丝10万+。 CSDN博客专家、微软MVP、华为云云享专家、阿里云专家博主、知乎认证科学技术领域答主。

评论

发布
暂无评论
一文搞懂UART通信协议_嵌入式_不脱发的程序猿_InfoQ写作社区