uart、i2c、spi特性

uart

uart是一个异步(主从设备没有共同的时钟)、全双工的通信协议(能同时发送和接受数据)
硬件上需要3个线,TX(发送) RX(接收) GND(共地), 因为没有时钟线所以需要用波特率保持同步

空闲时保持高电平
起始位 是一个下降沿,此时数据开始通信
停止位 是高电平且至少维持一个周期(器存在主要是为了给下数据的起始位制造下降沿)

优点

1、使用的接线比较少,只需要3根现
2、可以轻易转换成为RS-232 或 RS-485实现远距离通信

缺点

1、速度最多几M,
2、只能一对一通信
3、只要主从一个时钟不准,数据就会乱码

RS232

本质上还是串口,依然使用TX RX GND三根线,他的抗干扰方式很简单即拉高电压
逻辑1: -3V 到 -15V
逻辑0: 3V 到 15V
最大传输范围不超过15m,且只能你一对一通信

RS485

它抛弃了TX RX方式传输数据,也抛弃了GND的依赖,使用A(正极) B(负极)双绞线线来传输数据,刚干扰能力强
逻辑1: A比B电压高(差值大于200mv)
逻辑0: B比A电压高(差值小于-200mv)
传输距离超1200m,半双工,一对多通信

i2c

i2c是一个同步(主从设备有共同的时钟)、半双工的通信协议(同时只能发送或接受数据)
硬件上需要2个线,SCL(时钟) SDA(数据), 所有从设备都连接到这两根线上

空闲时SCL保持高电平
起始信号 SCL保持高电平, SDA出现下降沿
停止信号 SCL保持高电平, SDA出现上升沿

优点

1、可以挂载多个从设备
2、硬件资源占用少
3、内置ACK应答机制,通信可靠

缺点

1、速度较慢,最高只有3-4M
2、半双工通信
3、通信协议比较复杂

注意

i2c的工作模式必须使用开漏模式,因为i2c只有一个sda线,这根线要用来输出输入,而如果出现 主设备 输出高电平,而从设备输出低电平的情况,此时就会发送短路。
而使用开漏模式的话,主设备 和 所有从设备共用外部的带上拉电阻的vdd,芯片内部只能进行下拉操作,这样的话即使出现上诉情况,由于vdd有一个上拉电阻,所以此时不会短路,会输出低电平

spi

spi是一个同步(主从设备有共同的时钟)、全双工的通信协议(能同时发送和接受数据)
硬件连接需要4根线,SCL(时钟) MOSI(输出) MISO(输入) CS(片选)

优点

1、速度快可达上百M
2、全双工

缺点

1、浪费硬件资源,每多一个从设备就要多一个CS线
2、无应答机制,不可靠通信

总结

优势 劣势
uart 硬件资源少、可用于RS-232或 RS-485 一对一通信、速度低、不可靠
i2c 硬件资源少、可靠通信 协议复杂、速度低、半双工
spi 全双工、速度快 硬件资源多、不可靠通信

uart、i2c、spi特性
https://codechangeworld.pages.dev/2026/07/12/常见总线特性/
作者
子非鱼
发布于
2026年7月12日
许可协议