一、UART 基本概念
UART(Universal Async Receiver Transmitter),即通用异步收发器 ,是一种硬件接口及通信协议,用于设备间的异步串行通信。核心特性:
- 通信模式:异步、全双工、串行
- 无需时钟线同步,通过约定参数保证数据传输一致性
二、UART 接线方式
UART 核心接线引脚共 4 个,通信时需遵循交叉连接原则:
| 引脚 | 功能 | 接线注意事项 |
|---|---|---|
| VCC | 接电源正极 | 需与外设电源电压匹配 |
| GND | 接地 | 必须共地,否则会出现信号干扰 |
| RXD | 数据接收线 | 与外设的 TXD 引脚相连 |
| TXD | 数据发送线 | 与外设的 RXD 引脚相连 |
关键规则:设备 A 的 TXD ↔ 设备 B 的 RXD;设备 A 的 RXD ↔ 设备 B 的 TXD。
三、通信方式分类(按数据传输方向)
| 通信方式 | 核心特点 | 数据线数量 | 传输方向限制 |
|---|---|---|---|
| 单工 | 收发角色固定 | 1 根 | 仅单向传输 |
| 半双工 | 收发角色可切换 | 1 根 | 同一时刻仅能单向传输 |
| 全双工 | 收发角色可同时进行 | 2 根 | 任意时刻双向传输(UART 采用此方式) |
四、数据传输形式:串行 vs 并行
| 传输形式 | 传输原理 | 优缺点 |
|---|---|---|
| 串行 | 单根数据线,数据按 bit 位顺序逐个发送 | 优点:硬件成本低、传输距离远、抗干扰性好缺点:传输速率慢 |
| 并行 | 多根数据线,多个 bit 位同时发送 | 优点:传输速率快缺点:硬件成本高、传输距离近、抗干扰性差(易受信号偏移和电磁干扰) |
五、UART 数据发送顺序
遵循 LSB(最低位)优先 原则,低位先行发送。示例:发送数据 0xA6(二进制 10100110)
| 位序号 | bit7(MSB) | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0(LSB) |
|---|---|---|---|---|---|---|---|---|
| 数据值 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| 发送顺序 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
六、串口通信核心参数(4 大参数)
通信双方必须参数一致,否则会出现数据乱码,格式表示为 波特率 数据位 校验位 停止位。
- 波特率
- 定义:每秒传输的 bit 数,衡量传输速率
- 常用值:2400、4800、9600、115200
- 数据位
- 定义:每个数据帧中有效数据的 bit 位数
- 常用值:8 位(最常用)
- 校验位
- 作用:用于检测数据传输错误(无法检测偶数个 bit 错误)
- 类型:
- N(None):无校验
- E(Even):偶校验,数据位 + 校验位的 1 的总数为偶数
- O(Odd):奇校验,数据位 + 校验位的 1 的总数为奇数
- 停止位
- 定义:每个数据帧的结束标志位
- 常用值:1 位
常见参数组合:9600 8 N 1、2400 8 E 1、115200 8 O 1
七、同步通信 vs 异步通信
| 通信类型 | 同步方式 | 硬件需求 | 核心特点 |
|---|---|---|---|
| 同步 | 时钟线同步通信频率 | 需时钟线 | 传输精度高,硬件复杂 |
| 异步 | 无时钟线,靠约定参数同步 | 无需时钟线 | 硬件简单,UART 采用此方式 |
八、UART 相关寄存器配置(以 51 单片机为例)
1. SCON 寄存器(串口控制寄存器)
| 配置操作 | 功能说明 |
|---|---|
| 清 0 bit6、bit7 | 初始化串口模式相关位 |
| 置 1 bit6 | 串口工作在 8 位 UART 模式,波特率可变 |
| 置 1 REN 位 | 允许串口接收数据 |
| TI 位 | 发送中断标志位:数据发送完毕自动置 1,需软件清 0 |
| RI 位 | 接收中断标志位:数据接收完毕自动置 1,需软件清 0 |
2. PCON 寄存器(电源控制寄存器)
| 配置操作 | 功能说明 |
|---|---|
| 置 1 SMOD 位 | 波特率翻倍 |
| 清 0 SMOD0 位 | 由 SCON 的 SM0、SM1 位指定串口工作模式 |
3. 波特率计算(定时器 1 8 位自动重装模式)
- 需根据目标波特率计算定时器初值
- 主机与从机的波特率必须一致
九、主机与从机的概念
| 角色 | 核心权限 | 通信逻辑 |
|---|---|---|
| 主机 | 拥有通信绝对控制权 | 主动发起通信,下发指令 |
| 从机 | 无主动通信权 | 接收主机指令,执行操作并回复应答 |