4、CAN物理层实战:收发器选型、终端电阻、线缆要求、波特率设置与测量
CAN总线之所以能在工业现场、车载网络和医疗设备中广泛部署,其物理层设计功不可没。物理层决定了通信的可靠性上限——如果收发器选型不当、终端电阻匹配错误或线缆阻抗失配,即便上层协议再完善,也会出现大量错误帧、总线关闭甚至通信瘫痪。本章从工程实战角度出发,围绕收发器选型、终端电阻、线缆要求、波特率设置与测量四个核心模块展开,帮助学员建立从器件选型到现场测量的完整闭环能力。
上图展示了CAN物理层最典型的工程链路:MCU内置或外接CAN控制器,通过TXD/RXD引脚与收发器相连,收发器将逻辑电平转换为差分信号CANH/CANL,经过双绞线传输至对端节点。总线两端必须各配置一个120Ω终端电阻,用于阻抗匹配和信号反射抑制。示波器测量点通常设置在收发器引脚或总线接入点,用于验证差分信号质量和波特率精度。
4.1 收发器选型:从协议到物理的桥梁
核心原理:CAN收发器是控制器与总线之间的物理接口芯片,负责将控制器的逻辑电平(通常3.3V或5V)转换为CAN总线的差分电平,同时提供总线故障保护、电磁辐射抑制和热关断功能。选型时需关注通信速率、工作电压、待机模式、ESD防护等级和引脚兼容性。
| 选型维度 | 典型参数 | 工程建议 |
|---|---|---|
| 通信速率 | 最高1Mbps(经典CAN)/ 5Mbps(CAN FD) | 根据网络拓扑和实时性要求选择,预留20%余量 |
| 工作电压 | 3.3V / 5V | 与MCU I/O电平匹配,或使用电平转换电路 |
| 待机模式 | STB引脚控制 | 低功耗场景必须支持,唤醒时间需评估 |
| ESD防护 | ±8kV HBM | 工业现场建议选±12kV以上等级 |
| 引脚兼容性 | 标准8引脚SOIC | 考虑替代料,如TJA1051/1042、MCP2551、SN65HVD230 |
判断方法:首先确认系统供电电压和MCU逻辑电平;其次评估总线长度和节点数,若节点数超过32或总线长度超过100m,需选用高驱动能力收发器(如TJA1044);最后检查是否支持CAN FD,若未来有升级需求,直接选用支持FD的型号。
4.2 终端电阻:信号完整性的关键
核心原理:CAN总线采用差分信号传输,总线两端必须各接一个120Ω电阻,用于匹配双绞线的特征阻抗(约120Ω),吸收信号到达末端时的反射能量。若缺少终端电阻,信号会在总线末端产生反射,导致位电平畸变,尤其在高速率(>250kbps)或长线缆(>10m)场景下,错误帧率会急剧上升。
操作流程:
- 确认总线拓扑结构,终端电阻必须位于物理最远两端,而非中间节点。
- 使用万用表在总线断电状态下测量CANH与CANL之间的直流电阻,正常应为60Ω(两个120Ω并联)。
- 若测量值为120Ω,说明只有一端有终端电阻;若为0Ω,说明存在短路;若为无穷大,说明两端均未接。
- 对于分支较长的节点,可在节点端增加分裂终端(两个60Ω串联,中间通过电容接地),提升EMC性能。
4.3 线缆要求:双绞线的工程约束
核心原理:CAN总线推荐使用特征阻抗为120Ω的双绞线,每米至少扭绞20次,以抑制共模干扰和电磁辐射。线缆截面积根据总线长度和节点供电方式选择,一般0.5mm²~0.75mm²适用于100m以内,超过100m需增大线径或采用屏蔽双绞线。
实战场景:某自动化产线部署CAN总线,节点间距30m,总长180m,使用普通平行线缆替代双绞线。调试时发现总线错误帧率高达15%,且越靠近末端越严重。分析后确认平行线缆的分布电容和串扰导致信号边沿变缓,位采样点偏移。更换为120Ω双绞屏蔽线后,错误帧率降至0.1%以下。
| 线缆参数 | 推荐值 | 影响说明 |
|---|---|---|
| 特征阻抗 | 120Ω ±10% | 失配导致反射 |
| 线径 | 0.5mm²(AWG20) | 过细导致压降和衰减 |
| 扭绞密度 | ≥20绞/米 | 降低共模干扰 |
| 屏蔽层 | 铝箔+编织网 | 工业现场建议使用 |
| 最大长度 | 500kbps时≤100m | 速率与长度成反比 |
4.4 波特率设置与测量:从理论到示波器验证
核心原理:CAN波特率由位时间(Tbit)决定,一个位时间由同步段(SYNC_SEG)、传播段(PROP_SEG)、相位缓冲段1(PHASE_SEG1)和相位缓冲段2(PHASE_SEG2)组成。波特率设置的关键在于采样点位置,通常推荐在75%~85%处,以保证总线延迟和信号上升时间不影响采样。
操作流程:
- 确定目标波特率,例如500kbps,则Tbit=2μs。
- 根据MCU时钟频率计算预分频值,例如APB1=36MHz,预分频=36MHz/(500kbps×16)=4.5,取整为4或5,实际波特率会有偏差。
- 使用示波器测量CANH与CANL之间的差分信号,观察显性位(CANH≈3.5V,CANL≈1.5V)和隐性位(CANH≈2.5V,CANL≈2.5V)的电平。
- 测量一个完整位的时间,计算实际波特率,与目标值对比,误差应小于±0.5%。
- 调整采样点位置,通过修改BS1和BS2寄存器值,使采样点落在位时间的80%附近。
常见误区:部分工程师只关注波特率数值,忽略采样点位置。在总线较长或节点数较多时,信号边沿变缓,若采样点过早(<70%),容易采到不稳定电平;若过晚(>90%),则可能错过下一个位边沿。建议使用CAN分析仪或示波器测量总线波形,结合位时间分析工具,将采样点调整到80%±5%范围内。