51单片机——UART 串口通信

目录

[一、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 串口初始化顺序

六、主机与从机通信定义

  • 主机:拥有通信绝对控制权,所有通信由主机发起;
  • 从机:无法主动发起通信,仅根据主机下发的指令执行对应操作,并向主机回复应答。

七、重点内容

  1. 串口概念
  2. 单工、半双工、全双工区别
  3. 串口发送数据的顺序
  4. 串行和并行的概念及区别
  5. 串口通信的时序/过程
  6. 奇校验和偶校验
  7. 串口通信的参数(波特率、数据位、校验位、停止位)
  8. 常见的波特率
  9. 同步和异步的概念
  10. 串口的波特率是如何产生的
  11. 串口波特率产生所依赖的定时器模式
  12. 16 位定时器和8位自动重装载定时器的区别
  13. 主机和从机
  14. Modbus 协议的数据格式
相关推荐
Mr..Jackey1 天前
瑞佑 RUI Builder 图形化 UI 设计工具
arm开发·人工智能·单片机·ui·人机交互·ra8889·lcd控制芯片
西城微科方案开发1 天前
多品类电子秤一体化PCBA整体方案
单片机·嵌入式硬件·电子秤
火花页.1 天前
【正点原子ZYNQ领航者7020】PS端GPIO中断→按键控制LED实验
单片机·嵌入式硬件
ye150127774551 天前
4.2V升6V1A同步升压WT3213
单片机·嵌入式硬件·其他·硬件工程
嵌入式小站1 天前
STM32 可移植教程 02:按键状态机,消抖、长按、释放一行也不用多写(实战篇)
chrome·vscode·stm32·单片机·嵌入式硬件
Szime1 天前
AD9694 国产替代方案:四通道高速 ADC 在通信与雷达项目中的选型参考
单片机·嵌入式硬件·fpga开发
智者知已应修善业1 天前
【51单片机8位数码管同时倒计时从9999】2024-1-25
c++·经验分享·笔记·算法·51单片机
fanged1 天前
Datasheet学习6(光机)
嵌入式硬件
芯岭技术郦2 天前
高性能的 32 位 ARM® Cortex®-M0+内核PY32F002A
单片机·嵌入式硬件
破晓单片机2 天前
060、STM32项目分享:养老智能手环系统
stm32·单片机·嵌入式硬件