UART
UART 的全称是 Universal Asynchronous Receiver/Transmitter,即通用异步收发器。也是我们常说的串口通信
-
异步通信:无时钟线,依赖预定义的波特率(如9600bps)同步。
-
数据格式:每帧包含起始位、数据位(5~9位)、可选的校验位和静止位。
-
电平标准:通常为TTL(3.3V/5V)或RS-232(±12V)。
SPI
SPI 的全称是 “Serial Peripheral Interface”,即串行外设接口。它是一种同步串行通信接口,常用于微控制器与各种外围设备(如传感器、存储器等)之间的短距离、高速、全双工数据传输。
-
同步通信:通过时钟线(SCLK)同步数据,主设备控制时钟。
-
全双工:MOSI和MISO同时传输。(也可支持半双工)
-
片选信号:每个从设备需要独立的SS(Slave Select)线。
I2C
I2C的全称是 “Inter-Integrated Circuit”,即集成电路总线,是一种用于连接微控制器和外围设备的简单、低速的双向二线制同步串行总线。
-
同步通信:时钟线(SCL)由主设备控制,数据线(SDA)双向传输。
-
半双工:因为只有一根信号线主机发送数据后,从机再发送数据,不能同时发送。
-
地址寻址:每个从设备有7位或10位地址(如0x78)。具体要查询设备的数据手册。
-
开漏输出:需外部上拉电阻,支持多主仲裁。
优缺点比较
特性 | UART | SPI | I2C |
速度 | 低(通常<1Mbps) | 高(可达50Mbps+) | 中(标准模式100kbps,快速模式400kbps,高速模式 3.4Mbps) |
硬件复杂度 | 简单(TX,RX线) | 较复杂(四根线,每个从机需单独SS线) | 简单(2根线,支持多设备) |
通信距离 | 中 | 短(通常<30m) | 短(通常<1m) |
功耗 | 低 | 中 | 低(静态时无电流) |
多设备支持 | 不支持(点对点) | 支持 | 支持(地址寻址,理论127从设备) |
数据可靠性 | 依赖波特率匹配 | 高 | 中 |
典型应用 | 调试接口、GPS模块 | Flash存储器、显示屏 | 传感器(如温湿度、EEPROM) |