目录
[一、UART 核心定义与通信属性](#一、UART 核心定义与通信属性)
[1.1 基础概念](#1.1 基础概念)
[1.2 UART 接线方式](#1.2 UART 接线方式)
[2.1 通信方式分类](#2.1 通信方式分类)
[2.2 数据传输核心规则](#2.2 数据传输核心规则)
[3.1 核心通信参数](#3.1 核心通信参数)
[3.2 字符帧结构](#3.2 字符帧结构)
[3.3 奇偶校验原理](#3.3 奇偶校验原理)
[五、51 单片机 UART 寄存器配置](#五、51 单片机 UART 寄存器配置)
[5.1 SCON 寄存器](#5.1 SCON 寄存器)
[5.2 PCON 寄存器](#5.2 PCON 寄存器)
[5.3 波特率产生配置](#5.3 波特率产生配置)
[5.4 中断允许配置](#5.4 中断允许配置)
一、UART 核心定义与通信属性
1.1 基础概念
UART(Universal Asynchronous Receiver Transmitter)即通用异步收发器,是硬件电路中的通信接口,拥有独立的通信规则(协议),核心属性为异步、全双工、串行通信。
- 异步:无时钟线同步,通信双方通过预设参数保持节奏一致;
- 全双工:双向同时通信,收发独立不冲突;
- 串行:数据逐位依次传输,硬件成本低、抗干扰性强。
1.2 UART 接线方式
UART 通信需 4 根基础线路,核心遵循 "交叉连接" 原则:
- VCC:接电源正极(为模块供电);
- GND:接地(双方共地,确保电平参考一致);
- RXD:数据接收线;
- TXD:数据发送线;
**注意:**使用串口与外部设备进行通信时,需要交叉连接 TXD - RXD,RXD - TXD
二、通信核心分类与规则
2.1 通信方式分类
| 通信方式 | 数据传输方向 | 数据线数量 | 核心特点 | 适用场景 |
|---|---|---|---|---|
| 单工 | 单向固定 | 1 根 | 发送方和接收方固定,无法双向传输 | 红外遥控、串口打印(仅发送) |
| 半双工 | 双向但不同时 | 1 根 | 双方可收发数据,但同一时刻仅能单向传输 | 对讲机、I2C 总线(软件半双工) |
| 全双工 | 双向同时 | 2 根(TXD+RXD) | 收发独立,可同时进行数据传输 | 单片机与电脑、蓝牙模块通信 |
三种通信方式
2.2 数据传输核心规则
**发送顺序:**遵循 LSB 优先的原则,低位先行。
示例:数据 0xA6(二进制 10100110):
| 位序号 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
| 发送数据 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| 发送顺序 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
|---|
传输形式:
- 串行:
- 通过一根数据线将多个bit按照先后次序,逐个bit逐个bit发送
- 传输速率慢
- 硬件成本低
- 传输距离远,抗干扰性好
- 并行:
- 通过多根数据线将多个bit同时发送
- 传输速率快
- 硬件成本高
- 传输距离近,抗干扰性差(距离增加后会造成多根数据线的信号偏移,会受到电磁波的干扰,会出现一些误差)
三、串口通信关键参数与帧结构
3.1 核心通信参数
串口通信参数格式为 "波特率 数据位 校验位 停止位",需双方完全一致才能正常通信:
- 波特率:每秒传输的二进制位数(bit/s),常用值为 2400、4800、9600、115200;
- 数据位:每帧数据的有效位数,常用 8 位;
- 校验位:用于检测传输错误,分 3 类:
- 奇校验(O):数据位中 "1" 的个数 + 校验位 = 奇数;
- 偶校验(E):数据位中 "1" 的个数 + 校验位 = 偶数;
- 无校验(N):无需校验位(最常用);
- 停止位:每帧数据的结束标志,常用 1 位。
- 示例参数:9600 8 N 1(9600 波特率、8 位数据位、无校验、1 位停止位)。
3.2 字符帧结构
每帧数据(1 个字符)的传输顺序为:空闲→起始位→数据位→校验位→停止位→空闲:
串口通信时序图
- 起始位:1 位低电平(0),标识数据开始;
- 数据位:5~9 位(常用 8 位),按 LSB 优先传输;
- 校验位:0 或 1 位(依校验方式选择);
- 停止位:1~2 位高电平(1),标识数据结束。
3.3 奇偶校验原理
- 奇校验:
- 若数据位 "1" 的个数为偶数,校验位为 "1",使总个数为奇数;若为奇数,校验位为 "0";
- 偶校验:
- 若数据位 "1" 的个数为奇数,校验位为 "1",使总个数为偶数;若为偶数,校验位为 "0"。
核心局限:仅能检测奇数个 bit 错误,无法检测偶数个错误;
四、同步与异步通信区别
- 同步通信:双方通过时钟线同步通信频率,节奏一致;
- 异步通信:无时钟线,依赖预设参数(波特率等)保持同步,UART 即采用此类方式。
五、51 单片机 UART 寄存器配置
UART 功能通过 SCON、PCON 寄存器及定时器 1(波特率发生器)配置
5.1 SCON 寄存器

- 将 SCON 寄存器中的 bit6 和 bit7 清 0
- 再将 SCON 寄存器中的 bit6 置 1,代表串口工作在 8 位 UART,波特率可变模式
- 将 SCON 寄存器中的 REN 位置 1,代表允许串口接收数据:

- TI 位,用来查询 8 位数据是否发送完毕,发送完毕后会自动置 1;必须用软件清 0

- RI 位,用来查询 8 位数据是否接收完毕,接收完毕后会自动置 1;必须用软件清 0

5.2 PCON 寄存器

- 将 PCON 寄存器中的 SMOD 位置 1,波特率翻倍
- 将 PCON 寄存器中的 SMOD0 位清 0,代表通过 SCON 寄存器中的 SM0 和 SM1 这两个位共同指定串口工作模式
5.3 波特率产生配置
-
依赖模块:定时器 1(作为波特率发生器);
-
定时器 1 模式:需配置为8 位自动重装载模式(TMOD 寄存器中 M1=1、M0=0);
-
初值计算公式:
-

- FOSC:单片机晶振频率(常用 11.0592MHz 或 12MHz);
- SMOD:PCON 寄存器中的波特率加倍位(0 或 1);
-
辅助配置:TCON 寄存器中 TR1=1(启动定时器 1),TF1(溢出标志位)可通过软件清 0。

5.4 中断允许配置

- 需开启总中断允许位 EA(IE 寄存器 B7 位),EA=1;
- 开启串口中断允许位 ES(IE 寄存器 B4 位),ES=1;
- IE 寄存器地址:A8H(可位寻址),其他位无需改动(默认清 0)。
5.5 串口初始化顺序

六、主机与从机通信定义
- 主机:拥有通信绝对控制权,所有通信由主机发起;
- 从机:无法主动发起通信,仅根据主机下发的指令执行对应操作,并向主机回复应答。
七、重点内容
- 串口概念
- 单工、半双工、全双工区别
- 串口发送数据的顺序
- 串行和并行的概念及区别
- 串口通信的时序/过程
- 奇校验和偶校验
- 串口通信的参数(波特率、数据位、校验位、停止位)
- 常见的波特率
- 同步和异步的概念
- 串口的波特率是如何产生的
- 串口波特率产生所依赖的定时器模式
- 16 位定时器和8位自动重装载定时器的区别
- 主机和从机
- Modbus 协议的数据格式