UART / I2C / SPI / CAN 详细说明 + 对比

发布时间:2026/11/5 8:02:05
UART / I2C / SPI / CAN 详细说明 + 对比

原理图

1、UART(TTL 3.3V,调试串口)

MPU_TX ──────────── 从机_RX MPU_RX ──────────── 从机_TX GND ──────────── GND

要点:

  • 最简单,交叉相连,TX 接对方 RX
  • 3.3V 单端电平;空闲电平高
  • 可选:串 1k 电阻限流、TVS 管 ESD 防护
  • 长线工业方案:UART → MAX3485 → RS485 差分总线

注意:原生 TTL 不能多节点;要多节点必须 RS485

2、I2C(开漏总线,重点:必须外部上拉)

VCC3V3 │ ├─ Rpu(4.7k) ─── SDA ←── MPU_SDA、所有从机SDA └─ Rpu(4.7k) ─── SCL ←── MPU_SCL、所有从机SCL

要点:

  • SDA、SCL 开漏输出,芯片只能拉低,不能主动拉高,所以上拉电阻必不可少
  • 标准阻值:4.7kΩ;高速模式(1M)可用 2.2kΩ
  • 一条总线可以挂多个 I2C 从机(RTC、OLED、传感器)
  • 严禁长线走线;总线电容越大,速率越低

3、SPI(单主多从,共享 SCLK/MOSI/MISO,独立 CS)

MPU_SCLK ────┬──── Slave1_SCLK MPU_MOSI ────┼──── Slave1_MOSI MPU_MISO ────┼──── Slave1_MISO MPU_CS0 ────┘──── Slave1_CS(低有效) MPU_SCLK ────┬──── Slave2_SCLK MPU_MOSI ────┼──── Slave2_MOSI MPU_MISO ────┼──── Slave2_MISO MPU_CS1 ────┘──── Slave2_CS

要点:

  • SCLK/MOSI/MISO 全部并联共享;每个从机单独一根 CS
  • 推挽输出,不需要上拉电阻
  • 4 种模式,Mode0(CPOL=0 CPHA=0)最常用(W25Q Flash 默认)
  • 高速 SPI PCB 要求阻抗 50Ω,对内等长

4、CAN(MPU CAN 控制器 + TJA1050 收发器,差分总线)

MPU_CAN_TX ──── TJA1050 1脚 TXD MPU_CAN_RX ──── TJA1050 4脚 RXD TJA1050 3脚 VCC → 5V TJA1050 2脚 GND → GND TJA1050 7 CANH ────总线CANH TJA1050 6 CANL ────总线CANL 【总线两端】CANH、CANL之间跨 120Ω终端电阻

TJA1050 引脚: 1 TXD,2 GND,3 VCC,4 RXD,5 Vref,6 CANL,7 CANH,8 STB(待机,一般拉低使能) 要点:

  • MPU 内部 CAN 控制器输出是 3.3V 逻辑,不能直接出 CANH/CANL 差分信号,必须收发器
  • 120Ω 终端电阻:总线首尾两个节点各放一个,中间节点不要加
  • 差分双绞线,抗干扰极强;CAN FD 同样这套硬件,只改控制器配置

极简原理图速记清单(打印)

  1. UART:TX↔RX、共地;无总线
  2. I2C:SDA+SCL,各 4.7k 上拉到 VCC;开漏
  3. SPI:SCLK/MOSI/MISO 共享,独立 CS;推挽高速
  4. CAN:MPU CAN_TX/RX → TJA1050 → CANH/CANL;总线两端 120Ω

---------------------------------------------------------------------------------------------------------------------------------

UART / I2C / SPI / CAN 详细说明 + 对比


汇总对比表(打印版)

表格

项目UARTI2CSPICAN
同步 / 异步异步同步同步同步
信号线TX/RX/GNDSDA、SCLSCLK,MOSI,MISO,SSCAN_H,CAN_L
拓扑点对点总线多主多从单主多从总线多主
双工全双工半双工全双工半双工
寻址方式无7bit 地址片选 CSID 仲裁
典型速率9600~1.5M100k~3.4M1M~100M+125k~1M (CAN FD 最高 8M 数据段)
抗干扰弱(单端)弱(开漏)中等(单端)极强(差分)
内置校验可选奇偶校验ACK无CRC + 硬件错误管理
走线距离短(TTL)很短板内极短很长(双绞线)
IO 开销低最低高低(总线)
适合场景调试、模块 AT低速传感器高速 Flash/ADC工控、车载实时总线

快速选型口诀

  • 调试打印、GPS 蓝牙 → UART
  • 一堆低速传感器、省 IO → I2C
  • 高速 Flash、ADC、低延迟传输 → SPI
  • 强干扰、长线、多节点实时控制 → CAN/CAN FD