#51 单片机 #UART 串口 #I2C #SPI #嵌入式通信 #Modbus
✨前言
在嵌入式开发当中,单片机离不开和外部模块、上位机之间的数据交互,GPS、传感器、上位机调试、工业设备交互,全部依靠各类通信总线来完成。很多新手刚接触串口时,搞不懂同步异步、全双工半双工,对波特率、校验位、帧格式概念模糊。
本篇为 51 单片机学习第三天笔记,从基础通信分类入手,再到 UART 串口时序、参数配置,最后延伸到主从应答和 Modbus 简单帧格式。把底层通信概念、硬件接线、寄存器要点整理汇总,适合单片机入门同学学习复习。
一、常见嵌入式通信协议概述
嵌入式常用 4 种总线协议:UART、I2C、SPI、CAN。
- UART(通用异步收发器):异步、全双工,TXD/RXD 交叉接线,点对点通信,单片机调试、对接 GPS 模块最常用。接线规则:单片机 TXD 接外设 RXD,单片机 RXD 接外设 TXD,配合 VCC、GND 供电。
- I2C:同步半双工,两根线 SDA(数据线)、SCL(时钟线),支持挂载多个从设备。通信双方均可收发数据,同一时刻单向传输。
- SPI:同步高速全双工,时钟线 + MOSI+MISO + 片选,传输速率高。
- CAN:差分信号,抗干扰极强,多用于工业、汽车场景。
通信方向分类
- 单工:方向固定,一方只发,一方只收,单根信号线。
- 半双工(I2C) :双方都能收发,但同一时刻只能单向传输,一根数据线。
- 全双工(UART):两根信号线,同一时刻双向同时收发数据。
二、串行传输 vs 并行传输
- 串行通信:逐 bit 顺序发送
- 优点:硬件简单成本低、信号线少、传输距离远、抗干扰强(RS485 差分进一步提升抗干扰)
- 缺点:传输速率慢
- 并行通信:多根线同时传输多位 bit
- 优点:传输速度快
- 缺点:硬件复杂成本高,信号线之间信号偏移、电磁干扰,只适合短距离(一般 30 米以内)。
UART 串口遵循 LSB 低位先行:发送字节的时候优先发送最低位 bit。
三、UART 异步串口帧时序(一帧完整数据)
空闲状态总线保持高电平,一帧完整数据顺序:
- 起始位:1bit 低电平,标记数据开始
- 数据位:8bit,低位优先发送
- 校验位(可选):奇校验 O / 偶校验 E / 无校验 N
- 停止位:1bit 高电平,标记一帧结束。
同步通信与异步通信
- 同步通信 (I2C/SPI):设备之间共享一根时钟信号线,依靠时钟统一收发节奏。
- 异步通信 (UART) :没有硬件时钟线,收发双方依靠约定波特率完成时序对齐。
波特率与串口参数配置
- 波特率 bps:每秒传输 bit 数量;常用:2400、4800、9600、115200。
- 串口配置格式示例
9600 8 N 1- 9600:波特率;8:8 位数据位;N=None 无校验;1:1 位停止位
2400 8 E 1:偶校验;4800 8 O 1:奇校验。
51 单片机 UART 硬件配置要点
- 定时器 T1 作为波特率发生器,一般工作在模式 2(8 位自动重装),修改 TH1、TL1 设置波特率。
- PCON 寄存器最高位 SMOD:波特率翻倍控制位。
- IE 中断寄存器:开启串口中断(bit4)+CPU 总中断(bit7),实现串口接收中断。
- TTL 电平逻辑;电脑端是 RS232 负逻辑电平,依靠CH340 芯片完成 TTL‑RS232 电平转换。单片机内部具备发送、接收缓冲区。
内存修饰符:
data:变量存放单片机内部 RAM(256 字节);xdata:变量存放外部扩展 RAM(最大 64KB)。
四、主从通信模型与 Modbus 简单理解
- 主机 :主动发起通信,掌控全部通信流程;从机:不能主动发消息,只响应主机指令。
- 通信流程:主机下发指令帧 → 从机解析指令、执行功能(数码管、蜂鸣器等) → 从机回复应答帧。
- Modbus 属于应用层协议,可跑在串口或者 TCP/IP 之上,带 CRC 校验 / 累加和校验。
- 帧结构示例:起始位 + 地址码 + 功能码 + 数据域 + 校验位 + 结束位;返回帧中功能码最高位置 1,用来标记应答;bit 位区分数据流向:0 主机→从机,1 从机→主机。
📝小结
- UART 属于异步全双工,接线需要 TX 与 RX 交叉;I2C 属于同步半双工,依靠 SDA、SCL 两根总线通信。
- 串行通信适合远距离,抗干扰好但是速率有限;并行通信速度快,但容易信号偏移,仅适合短距离场景。
- UART 一帧完整顺序:空闲高电平→起始低电平→8bit 数据(低位优先)→校验位→停止高电平。
- 同步通信依赖共享时钟线;UART 异步通信没有时钟线,收发设备波特率、校验位、停止位参数必须保持一致。
- 51 单片机串口使用定时器 T1 生成波特率;IE 寄存器配置开启串口中断;CH340 芯片完成 TTL 与 RS232 电平转换,实现单片机和电脑通信。
- Modbus 是典型主从问答式协议,只有主机能够发起通信,从机被动接收指令并返回应答数据。