嵌入式开发不能只熟悉 I2C,项目里会碰到 SPI、UART、CAN、LIN、USB、RS485 等多种外设总线,不同总线的引脚数量、传输速度、拓扑结构、抗干扰能力差别很大,选对总线可以减少很多调试 bug,选错就容易出现丢包、通信不稳、带宽不够的问题;I2C 优势是只用两根线、支持多设备挂载,适合传感器、电源管理芯片这类低速外设,但速度上限不高,大数据传输就不合适,SPI 主打高速全双工,适合 Flash、屏幕、高速 ADC,UART 简单好上手,多用于调试口和模块通信,CAN 差分抗干扰强,车载工控用得多,RS485 适合长距离多节点组网,USB 适合需要热插拔、高速传输的外设,开发的时候要根据传输距离、数据量、节点数量、环境干扰来挑选总线,而不是惯性全部用 I2C。
主流嵌入式外设总线对比表
| 总线名称 | 接线 | 通信特点 | 典型速率 | 适合外设 | 调试重点 |
|---|---|---|---|---|---|
| I2C | SDA、SCL | 多主多从、半双工、地址寻址 | 100k~3.4Mbps | RTC、EEPROM、温度传感器、PMIC | 上拉电阻、ACK 应答、地址冲突、挂死超时 |
| SPI | SCLK、MOSI、MISO、CS | 单主多从、全双工、片选区分 | 1M~100Mbps+ | SPI Flash、LCD、ADC、触摸芯片 | CPOL/CPHA 模式、片选时序、DMA |
| UART | TX、RX(可选流控) | 点对点、异步 | 9.6k~3Mbps | 调试串口、GNSS、蓝牙模块 | 波特率误差、帧格式、奇偶校验 |
| CAN | CANH、CANL | 多主、差分、非破坏性仲裁 | 最高 1Mbps | BMS、车载 ECU、工控设备 | 终端电阻、滤波、错误帧、报文过滤 |
| RS485 | A、B 差分线 | 一主多从、差分 | 最高 10Mbps | PLC、仪表、变频器 | 收发切换、终端电阻、接地 |
| LIN | 单信号线 + GND | 单主多从、低成本 | 最高 20kbps | 车灯、座椅电机、车窗 | 调度表、帧 ID、时序 |
| USB | D+/D- | 主机 - 设备架构、支持热插拔 | 低速~高速 | U 盘、摄像头、4G 模块 | 枚举、描述符、端点、传输类型 |
总线选型判断清单
- 板内、器件多、小数据、引脚紧张:优先 I2C
- 板内、高速、需要同时收发:优先 SPI
- 简单点对点、模块通信、调试打印:优先 UART
- 工业现场、车载、强干扰环境:优先 CAN
- 上百米距离、多个仪表组网:优先 RS485
- 车载低成本低速车身外设:优先 LIN
- 需要热插拔、大流量数据:优先 USB
通用调试步骤
- 先确认硬件:供电、地线、终端电阻、上拉电阻、差分线布线是否规范
- 示波器 / 逻辑分析仪抓波形,核对时钟、电平、帧时序,先排除硬件问题
- 配置底层驱动:时钟、波特率、模式、中断或者 DMA,先跑通自发自收
- 简单测试:循环收发固定数据,长时间压力测试,看是否丢包、出错
- 上层协议对接:比如 Modbus、CAN 报文,核对 ID、数据长度、校验和
- 异常处理:增加超时重传、错误计数、总线复位,防止总线卡死
容易踩坑的共性问题
- I2C 忘记上拉电阻,或者多个从设备地址冲突,容易总线锁死
- SPI 的 CPOL/CPHA 模式和外设手册不一致,能收到乱码
- UART 两端波特率误差太大,出现乱码
- CAN、RS485 差分总线两端没有 120Ω 终端电阻,信号反射通信不稳
- 差分线布线不平行,距离太近,容易引入干扰
【常见问题】
问题 1:嵌入式外设总线全景解析里,I2C 和 SPI 该怎么选?
回答 1:嵌入式外设总线全景解析中,I2C 只用两根线,适合挂载多个低速传感器;SPI 速度更快、全双工,适合 Flash、屏幕这类需要高速传输的外设,缺点是每个从设备需要单独片选线,占用引脚更多。
问题 2:嵌入式外设总线全景解析里,CAN 总线对比 RS485 有什么区别?
回答 2:嵌入式外设总线全景解析中,CAN 是多主架构,自带优先级仲裁、错误重传,适合车载、强干扰工控;RS485 大多是一主多从,没有内置仲裁,成本更低,更适合长距离仪表组网。
问题 3:只会调 I2C,学习其他嵌入式外设总线要按什么顺序?
回答 3:嵌入式外设总线全景解析一般推荐先学 UART,上手最简单,再学 SPI,之后再学习 CAN、RS485、LIN、USB,从简单到复杂,同步配合逻辑分析仪抓波形理解时序。
【参考资料】
[2026-11-13](别再只会调 I2C 了:嵌入式外设总线全景解析)电子工程专辑
[2026-07-20](常见的串行总线通信协议介绍与调试技巧)DigiKey
[2026-06-02](嵌入式开发十八种主流通信协议详解)电子工程专辑
[2026-05-12](面试 被问通信协议?一次性搞定 12 种协议)电子工程专辑
【免责声明】
本内容仅整理公开嵌入式技术文章、总线资料,不同芯片厂商的外设总线驱动、硬件要求存在差异;表格参数仅为通用参考,实际项目总线选型、驱动调试请以芯片手册、外设 datasheet 为准,不构成产品方案担保。
