通信接口电路¶
MCU 外设只负责产生逻辑波形。只要信号离开本板,就还要考虑电平、收发器、终端、拓扑、线缆、ESD、地电位差和掉电反灌。
一、先按距离和环境选接口¶
| 场景 | 优先选择 | 不应默认选择 |
|---|---|---|
| 同板、短距、低速配置 | I²C | CAN/隔离器等过度设计 |
| 同板高速传感器/存储 | SPI | 长线 SPI |
| 两块近距离板、点对点调试 | UART | 裸 UART 跑数米线 |
| 机器人多节点、强干扰 | CAN | I²C 星形拉出整机 |
| 工业设备、多点半双工 | RS485 | TTL UART 直出接口 |
| PC 调试、固件升级 | USB/UART | 把 USB D+/D- 当普通 GPIO 线 |
| 地电位差大或高能功率级 | 隔离 CAN/RS485 | 仅数字隔离、没有隔离电源 |
选接口要同时写明:速率、线长、节点数、拓扑、是否热插拔、共地情况、线缆和连接器。
二、UART:逻辑串口不是 RS-232¶
2.1 最小连接¶
- 核对双方是 1.8 V、3.3 V 还是 5 V 逻辑;
- TX/RX 要交叉,连接器丝印标方向和电压;
- 串联 22~100 Ω 可作为源端阻尼预留,根据波形决定是否安装;
- 对外连接器处加低电容 ESD,强干扰/长线改用差分物理层;
- MCU 掉电而对方 TX 仍为高时,检查是否经输入保护二极管反灌。
2.2 三种“串口”不能混接¶
| 名称 | 电气层 | 是否可直连 MCU |
|---|---|---|
| TTL/CMOS UART | 0~VDD 单端逻辑 | 电平兼容时可以 |
| RS-232 | 正负电压、逻辑可能反相 | 不可以,需要 RS-232 收发器 |
| RS485 | 差分 A/B 总线 | 不可以,需要 RS485 收发器 |
USB 转串口芯片也要检查 USB 侧的 Type-C/ESD,以及 UART 侧 IO 电压,不是放一个芯片就结束。
三、I²C:上拉由总线决定¶
I²C 的 SDA/SCL 为开漏,所有器件只能拉低,由上拉电阻拉高。
3.1 上拉电阻范围¶
最小值受器件低电平灌电流限制:
最大值受总线电容和允许上升时间限制:
4.7 kΩ 只是常见起点,不是固定答案。多块模块自带上拉时,并联等效阻值可能过低:
3.2 实际电路¶
建议:
- 总线上只保留一组确定的有效上拉,其他做 DNP/可拆配置;
- 每个分支预留 0 Ω,便于断开查找拉死总线的器件;
- 两个电压域使用 I²C 专用双向转换器;
- 检查地址冲突、clock stretching 和器件上电时间;
- 掉电器件是否会把 SDA/SCL 拉低或通过 IO 反灌;
- 板外长线优先改用 CAN/RS485,或使用专用 I²C 缓冲/差分扩展器。
3.3 调试¶
示波器先看高低电平和上升时间,逻辑分析仪再解码协议。若只看解码,很容易把边沿过慢、毛刺或电平不足误判为软件问题。
四、SPI:关注边沿而不只是时钟频率¶
4.1 基础电路¶
- 每个从机单独 CS,并用上拉/下拉保证上电未选中;
- SCK、MOSI、CS 的串联阻尼电阻靠近驱动端,常预留 22~47 Ω;
- 多从机必须确认未选中时 MISO 为高阻;
- 电平不同时用方向明确的高速转换器;
- 高速存储或显示器按器件要求处理阻抗和等长。
10 MHz 不一定是低速
信号完整性主要由上升/下降沿决定,而不是仅由时钟频率决定。即使时钟只有几 MHz,亚纳秒级边沿加上长走线也可能严重振铃。
SPI 适合板内或紧邻板间连接。若必须走线缆,应降低边沿/速率、成对安排返回地,并通过实际波形验证;更远距离使用差分接口。
五、CAN:机器人节点的常用选择¶
协议控制器与物理层收发器是两部分:
MCU CAN_TX/RX
│
CAN 收发器 ── 可选共模扼流圈 ── TVS ── CANH/CANL/GND
│
STB/EN 默认电阻
CANH ── 120 Ω ── CANL ← 仅总线物理两端安装
5.1 收发器选择¶
检查:
- Classical CAN 或 CAN FD 的速率能力;
- 收发器供电与 MCU IO 电平;
- 总线工作/故障共模范围;
- 休眠、待机、唤醒功能和静态电流;
- 总线显性超时、短路和热保护;
- MCU/收发器掉电时是否保持总线高阻;
- 需要隔离时的隔离耐压和隔离电源。
5.2 终端与拓扑¶
- 一条主干两端各一个 120 Ω,中间节点不装;
- 板上放跳帽、拨码或 DNP 电阻,使终端可配置;
- 主干使用双绞线,支线尽量短;
- 避免无计划的星形连接;
- 连接器最好带 CANH、CANL 和参考地,屏蔽层按整机接地策略处理;
- 断电后用万用表测 CANH-CANL,两个 120 Ω 并联应约为 60 Ω,可快速检查终端。
5.3 保护与隔离¶
- TVS 靠连接器,选择 CAN 专用、工作电压与电容合适的器件;
- 共模扼流圈是 EMI 选项,不是通信成立的必要条件,选错会引入谐振;
- 地电位差可能超过收发器范围时使用隔离 CAN;
- 真隔离需要数字隔离/隔离收发器 + 隔离 DC-DC,且跨隔离区不能有普通铜或地连接;
- 隔离栅两侧去耦分别回各自的地。
更多协议和时序内容见 CAN Bus。
六、RS485:物理层和 Modbus 是两件事¶
6.1 半双工接口¶
MCU UART_TX ── DI ┌──────── A
MCU UART_RX ── RO RS485 PHY B ───── 双绞线总线
MCU GPIO ───── DE/RE └──────── GND
- DE 控制发送,空闲时默认关闭,避免上电占用总线;
- 总线两端按线缆特性阻抗放终端,常见约 120 Ω;
- fail-safe 偏置只在规划的位置安装,多个节点同时偏置会加重负载;
- A/B 命名在不同厂商资料中存在歧义,丝印可同时标厂商定义的
D+ / D-,并在首板验证; - 使用总线/菊花链拓扑和双绞线,支线尽量短;
- 参考地电位差较大时隔离。
6.2 终端和偏置分工¶
- 终端电阻匹配传输线,减少反射;
- 偏置电阻在所有驱动器高阻时定义空闲差分状态;
- 收发器内部 fail-safe保证输入接近开路/短路条件时输出确定。
三者用途不同,不能用“收发器自带 fail-safe”推导出长线不需要终端。
Modbus RTU 只是使用 RS485 的一种上层协议。CRC、地址和帧间隔正确,也无法弥补错误的终端、拓扑或共模电压。
更多协议内容见 RS485 / Modbus RTU。
七、USB 2.0 与 Type-C 设备口¶
若 MCU 作为 USB 设备,使用 Type-C 母座且不做 PD:
CC1 ── 5.1 kΩ ── GND
CC2 ── 5.1 kΩ ── GND
D+/D- ── 低电容 ESD ── MCU USB PHY
VBUS ── 保险/限流/检测 ── 板上电源策略
7.1 必查项目¶
- CC1、CC2 各自放
Rd,声明受电设备角色; - D+/D- 按板厂层叠设计约 90 Ω 差分阻抗,短、对称、少过孔;
- ESD 器件紧贴连接器,支路短;
- VBUS 是输入、检测还是完全不用,电源方向必须明确;
- 电池 5 V 与 USB 5 V 同时存在时不能互相反灌;
- 屏蔽壳与数字地/机壳地的连接按整机 EMC 策略;
- 需要主机、OTG、USB-PD 或更高功率时,加入相应角色/PD 控制器,不能只改 CC 电阻。
差分线上预留串联电阻时,按 MCU 参考设计放在 PHY 侧,并通过眼图/波形和枚举稳定性决定最终值。
八、隔离、屏蔽和连接器¶
8.1 什么时候隔离¶
- 两端地电位可能相差数伏以上;
- 大功率驱动器故障不允许传到控制侧;
- 长线跨设备/机柜,存在明显浪涌环境;
- 安全或系统标准明确要求隔离。
隔离不是解决所有噪声的万能办法。它会增加隔离电源噪声、传播延迟、成本和 PCB 安全距离要求。
8.2 屏蔽层¶
屏蔽层承担高频干扰泄放,通常应低阻连接到机壳/框架地,而不是让干扰电流穿过数字地后再寻找出口。是否单端或多端连接取决于频率、等电位连接和整机接地,不能脱离系统机械结构只在 PCB 局部决定。
8.3 连接器引脚¶
- 差分对相邻,避免中间插入高速单端信号;
- 信号旁安排参考地,长排针不要所有地只放一端;
- 电源与地成对,标注电压和极性;
- 接口之间尽量防误插;
- ESD 器件放在从连接器进入板内的第一站;
- 连接器外壳、固定脚和屏蔽脚在原理图/PCB 中明确网络。
九、接口调试方法¶
| 工具 | 先看什么 |
|---|---|
| 万用表 | 电平、短路、终端等效电阻、两端地电位差 |
| 示波器 | 上升沿、过冲、差分幅度、共模、反射、ESD 后复位 |
| 逻辑分析仪 | 协议帧、时序、片选、总线占用,但不能替代电气波形 |
| USB/CAN/RS485 分析仪 | 错误帧、重发、Bus-off、协议字段 |
推荐顺序:
- 低速、短线、只接两个节点;
- 先确认物理电平和终端;
- 再看协议配置和帧;
- 逐步加速、加节点、换真实线缆;
- 最后在电机启停、热插拔和长时间压力下测试。
Checklist¶
- 协议控制器与物理层没有混淆;
- 双方逻辑电平和掉电状态兼容;
- I²C 上拉按总线电容与速度核算;
- SPI CS 有默认态,MISO 不会争用;
- CAN/RS485 只在物理两端终端,拓扑和线缆正确;
- 保护器件靠近连接器并有短泄放路径;
- 隔离接口同时具备隔离电源;
- USB Type-C 角色、电源方向、CC 与 ESD 正确;
- 每个接口有测试点、丝印、线缆定义和调试方法。
通信解决信息传输,真正输出机械能还需要电机与执行器电路。