对比UART、IIC、SPI 三种总线的使用
UART:适用于简单的点对点通信场景,如串口调试和低速模块间数据传输。其低成本、易于实现的特点,使其在嵌入式开发中广泛使用。IIC:适用于需要挂载多个从设备且通信速率要求不高的场景,如传感器网络和小型显示设备。其双线设计和多设备支持优势,使其在物联网设备中备受青睐。SPI:适用于对速度和实时性要求较高的场合,如高速存储器和显示屏控制。其高性能的特点,使其在工业自动化和高端嵌入式系统中占有重要地位。
UART、IIC、SPI 三种总线的使用对比
随着嵌入式系统的快速发展,各类通信总线在硬件设备间数据传输中扮演着至关重要的角色。在这些通信总线中,UART(Universal Asynchronous Receiver Transmitter,通用异步收发器)、IIC(Inter-Integrated Circuit,内部集成电路总线)和SPI(Serial Peripheral Interface,串行外设接口)是最常用的三种方式。本文将从工作原理、硬件结构、使用场景、优缺点、性能对比以及用法对比等多个方面对这三种总线进行详细论述。
一、工作原理
1. UART 工作原理
UART 是一种基于异步通信的串行总线,不需要时钟信号同步。数据以帧(frame)为单位发送,每帧由起始位、数据位、校验位(可选)和停止位组成。通信双方需事先约定波特率,确保发送端与接收端的数据速率一致。
2. IIC 工作原理
IIC 是一种同步串行通信协议,采用主从架构。通信由主设备发起,通过时钟线(SCL)和数据线(SDA)实现数据传输。主设备通过发送从设备地址进行设备选择,随后进行读写操作。IIC 的数据传输以字节为单位,支持应答(ACK)和非应答(NACK)信号,确保数据的完整性。
3. SPI 工作原理
SPI 是一种全双工同步通信协议,通常由一主多从架构组成。通过时钟线(SCK)、主输出从输入线(MOSI)、主输入从输出线(MISO)和从选择线(CS)实现数据传输。SPI 依赖主设备提供的时钟信号进行同步,数据通过 MOSI 和 MISO 同时发送和接收。
二、硬件结构
1. UART 硬件结构
UART 的硬件结构简单,通常仅需要两根信号线:
- TX(Transmit):发送数据
- RX(Receive):接收数据 此外,还可以选配 RTS(请求发送)和 CTS(清除发送)等流控制信号线。

2. IIC 硬件结构
IIC 的硬件连接相对简单,通常需要两根信号线:
- SDA(数据线):双向传输数据
- SCL(时钟线):提供同步时钟信号 所有设备通过这两根线挂载在总线上,通过设备地址区分不同设备。

3. SPI 硬件结构
SPI 的硬件结构复杂度略高,通常需要以下信号线:
- SCK(时钟线):提供同步时钟
- MOSI(主输出从输入):主设备发送数据
- MISO(主输入从输出):主设备接收数据
- CS(从选择):用于选择特定从设备 每个从设备通常需要独立的 CS 信号。

三、使用场景
1. UART 使用场景
UART 常用于点对点通信的场合,主要应用包括:
- 串口调试
- GPS 模块数据传输
- 蓝牙模块通信
2. IIC 使用场景
IIC 常用于连接多个低速外设的场合,例如:
- 温湿度传感器(如 DHT 系列)
- EEPROM 存储器
- OLED 显示屏
3. SPI 使用场景
SPI 适用于对速度和实时性要求较高的场合,典型应用包括:
- Flash 存储器(如 NOR Flash)
- 高速 ADC/DAC
- TFT 液晶屏
四、优缺点分析
1. UART 优缺点
优点:
- 硬件结构简单
- 通信距离较长
- 易于调试
缺点:
- 只能实现点对点通信
- 波特率需要事先匹配
- 缺乏时钟同步,抗干扰能力较弱
2. IIC 优缺点
优点:
- 硬件连接简单,仅需两根信号线
- 支持多主多从通信
- 支持总线仲裁机制,确保通信有序
缺点:
- 通信速度较慢(典型速率 100kHz、400kHz)
- 通信距离有限(通常小于 1 米)
- 实现复杂度较高
3. SPI 优缺点
优点:
- 通信速度快,可达几十 Mbps
- 支持全双工通信
- 实时性强
缺点:
- 硬件连接复杂,每个从设备需独立的 CS 信号
- 只能实现单主多从通信
- 需要更多的 I/O 资源
五、性能对比
| 参数 | UART | IIC | SPI |
|---|---|---|---|
| 通信方式 | 异步通信 | 同步通信 | 同步通信 |
| 硬件结构 | 简单 | 简单 | 较复杂 |
| 通信速率 | 通常为 kbps 级别 | 通常为 100kHz-5MHz | 可达几十 Mbps |
| 数据完整性 | 无时钟同步,易受干扰 | 有时钟同步,可靠性高 | 有时钟同步,可靠性高 |
| 应用场景 | 点对点通信 | 多从设备低速通信 | 多从设备高速通信 |
| 抗干扰能力 | 较弱 | 较强 | 强 |
| 硬件成本 | 低 | 低 | 较高 |
六、用法对比
1. UART 用法
- 配置简单:UART 通信只需设置波特率、数据位、校验位和停止位即可。
- 调试工具广泛:支持通过 PC 端串口助手进行调试,方便开发和测试。
- 使用灵活:UART 可直接通过引脚交叉连接实现通信,无需额外协议支持。
2. IIC 用法
- 设备地址分配:每个 IIC 从设备需设置唯一的地址,确保主设备能正确识别目标。
- 时序要求严格:需按照协议规定的时序发送起始信号、数据字节和停止信号。
- 开发复杂度适中:多数微控制器提供 IIC 硬件模块,开发中需合理配置寄存器或调用驱动库。
3. SPI 用法
- 从设备选择:主设备需通过拉低对应的 CS 引脚选择目标从设备。
- 数据帧结构:SPI 数据帧通常包含 8 或 16 位,可根据具体设备配置。
- 时钟极性和相位:主设备和从设备需协商 SPI 时钟的极性(CPOL)和相位(CPHA)。


- 高性能场景:SPI 可轻松实现高速数据传输,但需要处理多从设备连接的复杂性。
七、总结与选择
- UART:适用于简单的点对点通信场景,如串口调试和低速模块间数据传输。其低成本、易于实现的特点,使其在嵌入式开发中广泛使用。
- IIC:适用于需要挂载多个从设备且通信速率要求不高的场景,如传感器网络和小型显示设备。其双线设计和多设备支持优势,使其在物联网设备中备受青睐。
- SPI:适用于对速度和实时性要求较高的场合,如高速存储器和显示屏控制。其高性能的特点,使其在工业自动化和高端嵌入式系统中占有重要地位。
实际应用中,应根据项目需求选择合适的通信总线。例如,在需要多设备通信的环境中,优先考虑 IIC;在高速和实时性要求较高的场景下,选择 SPI;而 UART 则适用于简单的点对点通信。了解并合理使用这些通信总线,可以有效提高系统的可靠性和性能。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)