I²C vs SPI vs UART:嵌入式串行接口怎么选(线数、寻址、速度三轴决定)
把外设接上 MCU 该走哪个串行接口?由三个轴决定:线数、多少设备共线(寻址 vs 每颗一条 CS)、要多快。UART 是两设备点对点(异步无时钟);I²C 是两条线挂一排可寻址慢速设备(需上拉);SPI 是每颗一条 CS 换高速。本文逐一拆解并对应 FMD FT24C、GigaDevice GD25Q、WIZnet WizFi360。
一句话心智模型 + 三轴
把外设接上 MCU 时,「该走哪个串行接口」其实由三个轴决定:线数(引脚预算)、多少设备共线(用地址还是一颗一条 CS)、以及要多快。先记一句心智模型:UART 是「两个设备点对点对讲」(无时钟、无寻址);I²C 是「两条线上挂一整排有地址的慢速设备」;SPI 是「多接一条芯片选择(CS)换高速,一个 CS 接一颗」。下面逐一拆开,最后直接对应到该接口的常用料号。
UART:两个设备点对点
UART 是异步接口:只用两条线(TX、RX)交叉接,没有时钟线——靠双方事先约定相同的波特率(baud rate),再用每个字节前的起始位对齐采样;波特率设不一致就会收到乱码。它本质是「两个设备点对点」,没有主从、没有寻址,不是能挂多颗的总线,而且是全双工(TX/RX 各自独立同时收发)。速度偏低(常见 9600~115200 bps,实务到数百 kbps 级)。所以 UART 最适合:模块对接与调试主控台——例如 Wi-Fi 模块用 AT 指令经 UART 收发,WIZnet 的 WizFi360 就是这样。
I²C:两条线挂一排可寻址设备
I²C 用两条线(SDA 数据、SCL 时钟),是同步、可寻址的多挂总线:每颗设备有自己的地址,主机用地址在共用的两条线上挑出目标,所以「加设备不必加线」是它最大的诱因(7-bit 地址理论上可挂约 127 颗,实务还受总线电容限制)。代价是速度较低、半双工,而且 SDA/SCL 是开漏(open-drain),一定要接外部上拉电阻才能把线拉回高电位(速度越快、负载越重,上拉值通常要越小)。速度分级:标准 100kHz、快速 400kHz、Fast-mode Plus 1MHz、高速 3.4MHz。最适合:在两条线上挂一整排慢速、可寻址的设备——EEPROM、RTC、传感器。对应料号:I²C EEPROM 用 FMD FT24C 系列(2-wire、2K~1Mb、1.8~5.5V);I²C RTC 用 Micro Crystal RV 系列(RV-3028-C7 超低功耗 45nA)。
SPI:每颗一条 CS 换高速
SPI 用四条线(MOSI 主出、MISO 主入、SCK 时钟、CS 芯片选择),同步、全双工,是三者里最快的——协议本身没有速度上限,数十 MHz 是常态,实务元件可跑到 133MHz。它不用地址,而是「每颗设备一条独立的 CS」:MOSI/MISO/SCK 共用,主机把要沟通那颗的 CS 拉低就选中它。代价就是设备越多、CS 引脚越吃紧。最适合:高速、而且设备数量少(常常就一两颗)的场合——NOR/NAND Flash、显示器、快速 ADC。对应料号:SPI NOR Flash 用 GigaDevice GD25Q 系列(单/双/四线 SPI、2Mb~256Mb、最高 133MHz);SPI NAND 用 GigaDevice GD5F(Gb 级、内建 on-die ECC)。
怎么选(对应料号)
一句话决策:只连两个设备、或要 debug / 接通讯模块 → UART(双方对好波特率即可;Wi-Fi 模块 AT 指令 WizFi360)。要在两条线上挂一整排慢速可寻址的设备、想省引脚 → I²C(加设备不加线,记得上拉电阻;EEPROM FT24C、RTC RV 系列)。要高速、颗数又少 → SPI(每颗一条 CS,速度换引脚;NOR GD25Q、NAND GD5F)。三轴取舍浓缩成一句:设备多又慢、想省线 → I²C;要快、颗数少 → SPI;只有两个东西要对讲 → UART。傑聯特科技是 GigaDevice、FMD、Micro Crystal、WIZnet 的授权代理商,I²C(FT24C EEPROM、RV RTC)、SPI(GD25Q NOR、GD5F NAND)、UART(WizFi360 模块)各接口的对应料件都供应;欢迎提供你的设备种类、数量与速度需求,我们协助选接口与料号,并回复样品、规格书与报价。
文中提及的产品
FT24C 系列 I²C EEPROM(2K ~ 256K bit)
FT24C 系列为标准 I²C 接口串行 EEPROM,容量涵盖 2K 至 256K bit(FT24C02 ~ FT24C256),兼容业界通用引脚,宽工作电压 1.8V ~ 5.5V,广泛用于设定参数、校正数据与序号存储。
GD25Q128 128Mbit SPI NOR Flash
GD25Q128 是 128Mbit(16MB)串行 SPI NOR Flash,2.7~3.6V 供电、最高时钟 133MHz,支持 Dual/Quad I/O,4KB 扇区与 32/64KB 块擦除、256-byte 页编程。封装 SOP8 / WSON8,采标准 JEDEC 引脚与指令集,是 Winbond W25Q128 的常见第二供应商。
WizFi360 工业级 Wi-Fi 模块
WizFi360 是 WIZnet 推出的高性价比工业级 Wi-Fi 模块,兼容 IEEE 802.11 b/g/n,支持 Station、SoftAP 与两者并存模式。通过 UART 与 AT 命令即可为任何 MCU 加上 Wi-Fi 连线,内置 TCP/IP,工作温度涵盖工业级 −40~85°C。