总线协议概览

一、对比表

总线 线数 速率 距离 拓扑 典型应用
UART 2-4 ≤ 1 Mbps < 15m 点对点 调试、模块
I2C 2 ≤ 5 Mbps < 5m 多主多从 传感器、EEPROM
SPI 4+nCS ≤ 100 Mbps < 1m 一主多从 Flash、LCD
I2S 3 < 1m 点对点 音频
CAN 2 ≤ 1 Mbps < 1km 多主 汽车、工业
USB 2.0 4 480 Mbps < 5m 主从 外设
USB 3.0 9 5 Gbps < 3m 主从 高速存储
PCIe 差分对 8 Gbps+ (Gen3) < 0.5m 树形 内部高速
Ethernet 4 (差分) 100M/1G/10G 100m 星形 网络
SD/eMMC 4/8 高速 < 0.2m 主从 存储
MIPI-CSI/DSI 多差分对 Gbps 级 < 0.3m 点对点 摄像头/屏

二、关键术语

1. 主从(Master/Slave)

2. 同步 / 异步

3. 差分信号

4. 上拉/下拉

5. 地址/片选

三、嵌入式 Linux 中的总线驱动框架

Linux 内核对总线有统一抽象:

struct bus_type {
    int (*match)(struct device *dev, struct device_driver *drv);
    int (*probe)(struct device *dev);
    void (*remove)(struct device *dev);
    // ...
};

四、总线分析工具

工具 用途
示波器 看时序、边沿、毛刺
逻辑分析仪 多通道总线解码(Saleae 经典)
协议分析仪 USB、PCIe 专业分析仪
i2c-tools Linux 下扫描 I2C 设备(i2cdetect
spidev / spidev_test Linux 下测试 SPI
can-utils Linux 下测试 CAN