
发布时间:2026-08-20
阅读量:698
一、UART(通用异步收发器)
1. 基本定义
UART(Universal Asynchronous Receiver/Transmitter)是一种异步串行通信接口,核心作用是完成并行数据与串行数据之间的相互转换。它不依赖共享时钟,常用于MCU与调试终端、模组、低速外设之间的点对点通信。
2. 核心特点
信号线少:TX(发送)、RX(接收)+ GND,硬件连接最简单;
异步通信:收发双方约定波特率,通过起始位、停止位实现帧同步;
全双工:发送与接收可同时进行;
速率适中偏低:常见波特率为9600~115200 bps,高速场景一般<1 Mbps;
传输距离远:配合RS-232/RS-422/RS-485物理层,可达十几米至千米级;
帧结构固定:起始位(0) + 5~9位数据位(LSB先发)+ 可选奇偶校验位 + 停止位(1),具备基础抗干扰能力。
3. 工作原理简述
发送端按配置好的波特率,将数据拆成比特流,加上起始位和停止位依次发出;
接收端以相同波特率采样RX线,识别起始位后逐位接收数据位和校验位,最后检测停止位;
若开启校验,则进行奇偶校验判断,异常时产生帧错误或校验错误标志。
4. 典型应用场景
嵌入式系统调试(串口打印log、Shell命令行);
MCU与GPS、蓝牙、LoRa、4G模组等通信;
工业设备(PLC、仪表)的简单数据交互;
老旧外设(扫码枪、串口打印机等)。
二、SPI(串行外设接口)
1. 基本定义
SPI(Serial Peripheral Interface)最初由Motorola提出,是一种高速同步全双工串行总线,采用主从架构,广泛用于MCU与Flash、ADC、LCD、传感器等高速外设之间的通信。
2. 核心特点
信号线:SCLK(时钟)、MOSI(主发从收)、MISO(主收从发)、SS/CS(片选),最少4根;
同步通信:主设备提供时钟,所有数据传输在时钟边沿同步进行;
全双工:MOSI与MISO同时工作,吞吐率高;
速度快:常见几Mbps~几十Mbps,远高于UART和I²C;
多从设备支持:通过多个SS线分别选通不同从设备,但同一时刻只能有一个从设备被选中;
时序灵活:通过CPOL(时钟极性)和CPHA(时钟相位)组合出4种工作模式,适配不同外设。
3. 工作原理简述
主机拉低某一路SS,选中对应从设备;
主机在SCLK上产生时钟,同时在MOSI线上发送数据,从设备在MISO线上返回数据;
传输完成后拉高SS,结束本次通信;
不同器件通过配置CPOL/CPHA匹配时序要求。
4. 典型应用场景
外部存储器:SPI Flash、EEPROM、FRAM;
显示驱动:LCD、OLED、TFT控制器;
数据采集:高速ADC、DAC;
通信模组:Wi-Fi、蓝牙、ZigBee的数据通道;
实时控制:电机驱动、传感器阵列等高吞吐场景。
三、I²C(集成电路总线)
1. 基本定义
I²C(Inter-Integrated Circuit)由Philips(现NXP)提出,是一种双线式同步半双工串行总线,专为芯片间低速控制与数据交换设计,支持多主多从和总线仲裁。
2. 核心特点
信号线极少:SDA(数据线)、SCL(时钟线),硬件成本最低;
同步半双工:同一时刻只能发送或接收,时钟由主机提供;
多主多从:总线上可挂载多个主机和多个从机,通过仲裁机制避免冲突;
地址寻址:每个从设备有唯一的7位或10位地址,主机通过地址选择通信对象;
速率分级:标准模式100 kbps、快速模式400 kbps、高速模式3.4 Mbps(需硬件支持);
开漏输出:SDA/SCL需外接上拉电阻,线路空闲时为高电平。
3. 工作原理简述
主机发起通信,先在总线上产生START条件(SCL为高时SDA下降沿);
主机发送7/10位从机地址 + 读写位,等待从机应答(ACK);
数据传输过程中,每发送一个字节都需对方返回ACK;
通信结束时,主机产生STOP条件(SCL为高时SDA上升沿);
多主机同时发起通信时,通过“线与”机制和地址比较进行仲裁,失败方自动退出发送。
4. 典型应用场景
板载低速外设:EEPROM、RTC、温湿度传感器、PM2.5传感器等;
消费电子:手机/平板中的加速度计、陀螺仪、指纹传感器;
多设备共享总线:智能家居传感器节点、环境监测模块;
配置与控制通道:电源管理IC、Codec、触控芯片等。
四、三者核心对比总结
对比维度 | UART | SPI | I²C |
信号线数量 | TX、RX + GND(2线) | SCLK、MOSI、MISO、SS(≥4线) | SDA、SCL(2线 + 上拉) |
通信方式 | 异步全双工 | 同步全双工 | 同步半双工 |
传输速率 | 低(≤1 Mbps,常用115200 bps) | 高(几~几十 Mbps) | 中低(100 k~3.4 Mbps) |
设备寻址 | 无,点对点 | 片选SS线选择从机 | 7/10位地址寻址 |
拓扑结构 | 一对一 | 一主多从(多SS) | 多主多从共享总线 |
硬件复杂度 | 最低 | 中等(线多、时序复杂) | 低(但协议逻辑较复杂) |
传输距离 | 长(配合RS-485可达上千米) | 短(板级为主) | 短(板级为主) |
典型用途 | 调试、模组通信 | 高速存储、显示、ADC | 板载控制、传感器 |
五、工程选型建议
优先选UART:
调试打印、命令行交互;
与GPS、蓝牙、4G等模组的通信;
需要较长距离、布线简单、对速率要求不高的场景。
优先选SPI:
需要高吞吐率(如Flash读写、LCD刷屏);
对实时性要求高、需要全双工通信;
IO资源相对充裕、外设数量不多。
优先选I²C:
板载多个低速外设(传感器、RTC、电源管理IC);
PCB面积受限、希望减少走线;
对成本敏感、速率要求不高,但需要灵活的设备管理能力。