通信接口
嵌入式系统通过各种通信接口与外部设备交互——传感器、显示屏、无线模块、其他 MCU 都需要通过接口连接。
接口对比总览
| 接口 | 线数 | 速率 | 距离 | 拓扑 | 协议 | 适用 |
|---|---|---|---|---|---|---|
| GPIO | 2+ | 低 | 板内 | 点对点 | 无 | LED/按键 |
| UART | 2 | 9600-115200 bps | 15m | 点对点 | 异步串行 | 调试/通信 |
| SPI | 4 | 10-100 MHz | 板内 | 主从(多从) | 同步串行 | Flash/显示屏 |
| I2C | 2 | 100-400 KHz | 1m | 多主多从 | 同步串行 | 传感器/EEPROM |
| CAN | 2 | 1 Mbps | 1km | 多主 | 差分串行 | 汽车/工业 |
| USB | 4+ | 480Mbps-10Gbps | 5m | 主从 | 复杂 | PC 通信 |
| Ethernet | 8 | 100Mbps-10Gbps | 100m | 点对点/交换 | TCP/IP | 网络通信 |
UART(串口)
最基本的异步通信接口——只需两根线(TX/RX)即可通信。
| 参数 | 常见值 | 说明 |
|---|---|---|
| 波特率 | 9600 / 115200 | 每秒传输的比特数 |
| 数据位 | 8 | 每帧数据长度 |
| 停止位 | 1 | 帧结束标志 |
| 校验 | 无/奇/偶 | 错误检测 |
接线规则:设备 A 的 TX 接设备 B 的 RX,A 的 RX 接 B 的 TX(交叉连接)。
典型应用:串口调试(USB 转串口)、GPS 模块通信、蓝牙模块通信。
SPI(串行外设接口)
高速同步串行接口——4 根线,全双工,速度可达 100MHz。
| 信号 | 名称 | 说明 |
|---|---|---|
| MOSI | 主出从入 | 主机发送数据 |
| MISO | 主入从出 | 从机发送数据 |
| SCLK | 时钟 | 主机提供时钟 |
| CS/SS | 片选 | 选择从机(每个从机一根) |
优点:速度快、全双工、协议简单。
缺点:每增加一个从机需要一根 CS 线,不能多主机共享。
典型应用:Flash 存储(W25Q64)、TFT 显示屏、SD 卡。
I2C(集成电路总线)
两线式同步串行接口——只需 SDA(数据线)和 SCL(时钟线)两根线,可挂载多个从机。
| 参数 | 标准模式 | 快速模式 | 高速模式 |
|---|---|---|---|
| 速率 | 100 KHz | 400 KHz | 3.4 MHz |
| 地址长度 | 7bit | 7bit | 10bit |
| 最大从机数 | 112 | 112 | 1024 |
优点:仅 2 根线、支持多主多从、有地址机制。
缺点:速度较慢、半双工。
典型应用:温度传感器(TMP102)、加速度计(MPU6050)、EEPROM(AT24C02)。
CAN(控制器局域网)
差分信号的多主总线——抗干扰能力极强,广泛用于汽车和工业。
| 参数 | 标准 CAN | CAN FD |
|---|---|---|
| 速率 | 1 Mbps | 8 Mbps |
| 数据帧长度 | 8 字节 | 64 字节 |
| 传输距离 | 40m@1M | 100m@1M |
接线:CAN_H 和 CAN_L 两根差分线,两端各接 120 欧姆终端电阻。
典型应用:汽车 ECU 通信、工业控制网络、无人机飞控。
接口选择指南
| 场景 | 推荐接口 | 原因 |
|---|---|---|
| 调试输出 | UART | 最简单,USB 转串口即用 |
| 高速数据采集 | SPI | 速度快,适合 ADC/Flash |
| 多传感器挂载 | I2C | 2 线挂多个设备 |
| 汽车/工业 | CAN | 抗干扰,长距离 |
| PC 通信 | USB | 标准接口,即插即用 |
| 网络连接 | Ethernet | TCP/IP,远程通信 |