亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

精通 UART:通用异步收发器详解

UART(通用异步收发器)仍是点对点通信最广泛采用的硬件协议。本指南将带您配置 UART、理解其包格式、实现产品开发中必不可少的安全帧协议。

正确配置时,UART 仅需两根线即可支持多种串行数据流。这种最小布线降低成本和复杂度,使 UART 成为嵌入式系统、微控制器和 PC 的理想选择。

我们将涵盖 UART 基础——包传输、标准帧格式、增加安全性和合规价值的自定义帧。文章还提供解读数据手册和配置 UART 外设的实用步骤。

读完后,您将牢固掌握 UART 标准及如何利用它们增强新产品能力。

“沟通中最大的问题是自以为已经发生了沟通。”

——George Bernard Shaw

通信协议构建设备间交互结构。它们定义通用语言确保数据可靠交换。在嵌入式世界,UART 是设备间硬件通信的事实标准。

与总线协议不同,UART 仅需发送 (Tx) 和接收 (Rx) 两线,简化板级设计并降低功耗。

尽管广受欢迎,许多实现忽视恰当帧设计,可能损害性能和安全。定义良好的帧协议是无差错、受保护数据交换的关键。

异步串行通信意味着无共享时钟线;发送端和接收端依靠匹配波特率保持同步。

接口

精通 UART:通用异步收发器详解
图 1. 两个 UART 直接通信。

每个 UART 暴露两个专用引脚:

精通 UART:通用异步收发器详解
图 2. UART 与数据总线接口。

此布局下,发送 UART 将总线并行数据转为 Tx 线串行比特流。接收 UART 采样此流,重组比特为并行数据送本地总线。

双方必须在相同波特率运行——比特/秒速率。不匹配导致帧错误;典型 UART 容忍 10% 波特率偏差。

表 1 总结 UART 关键属性。

表 1. UART 概要

线数2
支持波特率9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000
传输方式异步
最大主设备1
最大从设备1

因 UART 为异步,发送端基于自有时钟驱动比特流,接收端用内部时钟采样输入比特。起始位、数据帧、可选奇偶校验、停止位共同定义包。

数据传输

每个 UART 包含:

精通 UART:通用异步收发器详解
图 3. UART 包结构。

精通 UART:通用异步收发器详解
图 4. 起始位示意。

精通 UART:通用异步收发器详解
图 5. 数据帧示例。

精通 UART:通用异步收发器详解
图 6. 校验位用法。

精通 UART:通用异步收发器详解
图 7. 停止位示意。

传输流程

1. 并行输入:发送端从总线接收并行数据。

精通 UART:通用异步收发器详解
图 8. 数据总线馈送发送端。

2. 帧组装:发送端添加起始位、校验位、停止位,形成完整包。

精通 UART:通用异步收发器详解
图 9. 发送端 UART 包。

3. 串行传输:包按配置波特率逐位发送。

精通 UART:通用异步收发器详解
图 10. 连续 UART 传输。

4. 接收:接收端丢弃帧位,重构原始数据。

精通 UART:通用异步收发器详解
图 11. 接收端包。

5. 并行输出:接收端将串行数据转回并行并转发本地总线。

精通 UART:通用异步收发器详解
图 12. 数据流向接收总线。

自定义帧协议

标准 UART 帧虽满足许多用例,但增加自定义帧层可增强安全性、确保仅预期设备通信。

通过嵌入唯一帧头、帧尾和 CRC,每个设备可验证包源自可信源头。这在安全关键或安保环境尤为宝贵。

图 13 展示典型自定义帧:

精通 UART:通用异步收发器详解
图 13. 示例 UART 帧协议。

帧通常包含:

双方必须使用相同帧规则;否则包会被拒绝。

UART 配置步骤

1. 阅读数据手册 理解 UART 接口和引脚分配。

精通 UART:通用异步收发器详解
图 14. 微控制器数据手册摘录。

2. 检查内存映射 获取 UART 寄存器和地址。

精通 UART:通用异步收发器详解
图 15. 微控制器内存映射。

3. 定义 UART 端口参数——数据位、校验、停止位、工作模式。示例描述:

• 5–8 数据位
• 1、1.5 或 2 停止位
• 无、奇或偶校验
• 全双工、DMA 使能、异步传输

4. 计算波特率 使用外设时钟 (PCLK) 和 MCU 的过采样与分频寄存器。通用公式:

波特率 = PCLK / ((M + N/2048) × 2OSR + 2 × DIV)

其中:
OSR — 过采样率 (0–3)
DIV — 波特率分频 (1–65535)
M — 分数分频 MSB (1–3)
N — 分数分频 LSB (0–2047)

下表举例 26 MHz 和 16 MHz PCLK 下的波特率设置。

表 2. 基于 26 MHz PCLK 的波特率示例

波特率OSRDIVDIVMDIVN
960032431078
1152003411563

表 3. 基于 16 MHz PCLK 的波特率示例

波特率OSRDIVDIVMDIVN
960031731078
115200322348

5. 按数据手册配置 UART 寄存器。关键寄存器包括:

表 4. UART 寄存器说明

名称描述
UART_DIV波特率分频
UART_FIBR分数波特率控制
UART_LCR2线控制寄存器 (OSR、停止位、校验)

寄存器编程完成后,UART 即可可靠收发数据。

UART 为何重要

理解 UART 对设计稳健、低成本、高吞吐串行链路的工程师至关重要。掌握帧协议、波特率计算、寄存器配置确保数据完整性与系统可靠性。

常见用例

参考文献

“Basics of UART Communication.” Electronics Hub, July 2017.
Campbell, Scott. “Basics of UART Communication.” Circuit Basics. Keim, Robert.
“Back to Basics: The Universal Asynchronous Receiver/Transmitter.” All About Circuits, December 2016.
“What Is UART Protocol? UART Communication Explained.” Arrow.

嵌入式

  1. 预测性维护如何驱动效率并削减停机
  2. 专业轴类制造:精密工艺与定制解决方案
  3. 纵剪定长生产线核心技术与应用全解析
  4. 材料残余应力:成因、类型与工程应用全解析
  5. 减震器工作原理:提升车辆平稳性与舒适性的关键
  6. 流体流动分类全解:稳态/非稳态、层流/湍流、可压缩/不可压缩及流体本构分类
  7. 联轴器核心解析:工业机械中的关键功能与应用场景
  8. 材料柔韧性探秘:弹性如何决定性能表现
  9. 柴油机在车辆与工业发电中的应用全景
  10. 飞轮工作原理与故障诊断:发动机平顺运转的守护者
  11. 铣床入门:功能、组件与用途全指南
  12. 云文化为何驱动业务成功:实战指南