一、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 的总数为奇数
- 停止位
常见参数组合: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 位自动重装模式)
- 需根据目标波特率计算定时器初值
- 主机与从机的波特率必须一致
九、主机与从机的概念
| 角色 |
核心权限 |
通信逻辑 |
| 主机 |
拥有通信绝对控制权 |
主动发起通信,下发指令 |
| 从机 |
无主动通信权 |
接收主机指令,执行操作并回复应答 |