第3章 TCU通信接口详解:CAN/CANFD、LIN与以太网
大家好,我是老张。今天咱们聊聊TCU的通信接口。说实话,做TCU这么多年,我见过太多因为通信接口设计翻车的案例了。有的是CAN总线负载率算错了,有的是LIN节点唤醒时序没调好,还有的是以太网PHY芯片选型踩了坑。嗯,这一章咱们就把这些接口掰开揉碎了讲清楚。
3.1 CAN/CANFD总线接口设计
CAN总线,说白了就是汽车电子的"脊梁骨"。从最早的CAN 2.0A/B到现在的CAN FD,我是一路跟过来的。记得2015年我第一次在TCU上集成CAN FD时,供应商给的参考设计还是老一套,结果通信速率死活上不去。
3.1.1 物理层设计要点
CAN总线的物理层,核心就是差分信号。我个人习惯用TJA1043或TJA1145这类带休眠唤醒的收发器。为什么?因为TCU经常要在休眠状态下被CAN报文唤醒,选错芯片功耗就压不下去。
关键参数速查表
| 参数 | CAN 2.0 | CAN FD |
|---|---|---|
| 最大速率 | 1 Mbps | 8 Mbps(典型) |
| 数据场长度 | 8字节 | 64字节 |
| 位填充机制 | 固定 | 灵活 |
| CRC校验 | 15位 | 17/21位 |
这里有个坑:CAN FD虽然速率高,但总线长度要相应缩短。我在一个项目中试过5米总线跑5Mbps,结果误码率直接爆表。后来老老实实把总线控制在2米以内,问题就解决了。
3.1.2 终端电阻与共模扼流圈
终端电阻,标准是120欧姆。但实际项目中,我建议用两个60欧姆电阻串联,中间抽头接一个电容到地。为什么?这样能给共模信号一个低阻抗路径,EMC性能会好很多。
// CAN终端电阻推荐接法
// 总线两端各接一组
// 60Ω --- 60Ω --- 4.7nF --- GND
// |
// CAN_H/L
我的经验:共模扼流圈选型时,注意看共模阻抗曲线。我一般选100MHz时阻抗在600Ω以上的型号,对抑制高频干扰特别有效。
3.2 LIN总线接口设计
LIN总线,很多人觉得简单,不就是单线串口吗?其实不然。LIN的时序要求很严格,尤其是从节点的唤醒和同步。
3.2.1 物理层与收发器选型
LIN收发器,我常用TJA1021或MLX80050。注意,LIN总线是单线12V电平,不是5V。曾经有个同事把LIN直接接到MCU的UART引脚上,结果烧了一片。嗯,这个教训挺深刻的。
LIN总线的上拉电阻,标准是1kΩ。但如果你挂的节点多,比如超过8个,我建议用500Ω。我在一个项目中挂了12个LIN节点,用1kΩ上拉,波形都变形了。
3.2.2 唤醒与休眠设计
LIN的唤醒,靠的是总线上的显性脉冲。我个人习惯在收发器的唤醒引脚上加一个RC滤波,时间常数设在50μs左右。为什么?因为总线上的尖峰干扰很容易误唤醒,加个滤波就稳了。
注意:LIN从节点的休眠电流必须控制在100μA以下。我见过一个项目,休眠电流300μA,结果整车静态功耗超标,最后只能换收发器。
3.3 以太网接口设计(100BASE-T1)
100BASE-T1,这是近几年才在TCU上普及的。单对差分线,全双工,100Mbps。说实话,第一次接触时我也觉得挺新鲜的。
3.3.1 PHY芯片选型与布局
100BASE-T1的PHY芯片,我推荐TI的DP83TC811或NXP的TJA1101。注意,这些芯片对PCB布局要求很高。差分对必须等长,误差控制在5mil以内。我曾经因为差分线长了10mil,导致信号质量下降,眼图都睁不开了。
// 100BASE-T1差分对布线规则
// 1. 差分对间距 ≥ 3倍线宽
// 2. 等长误差 ≤ 5mil
// 3. 远离时钟线 ≥ 20mil
// 4. 参考层完整,不要跨分割
3.3.2 EMC与共模抑制
100BASE-T1的共模抑制,比CAN要严格得多。我建议在PHY和连接器之间加一个共模扼流圈,比如TDK的ACT45B系列。另外,PCB上要留出足够的铜皮面积给散热,因为PHY芯片工作时温度不低。
实测数据:不加共模扼流圈时,辐射发射在100MHz处超标12dB。加上ACT45B-510-2P后,余量达到6dB以上。
3.4 接口设计的协同考量
三种接口放在一个TCU里,就得考虑相互干扰。我个人习惯把CAN和LIN放在同一侧,以太网单独放另一侧。为什么?因为以太网的工作频率高,容易耦合到CAN/LIN上。
还有一个细节:电源去耦。每个收发器旁边都要放一个10μF电解电容和两个0.1μF陶瓷电容。我曾经偷懒少放了一个0.1μF,结果CAN FD在5Mbps时偶尔丢帧。加上去之后,问题就消失了。
避坑指南:我曾经在一个项目中,把CAN和以太网的参考地分开了,结果通信时好时坏。后来发现是地电位差导致的共模电压超标。从那以后,我坚持所有接口共用一个参考地平面。
好了,这一章的内容就到这里。通信接口设计,说白了就是平衡速率、距离、功耗和成本。你想想看,CAN FD快但距离短,LIN慢但成本低,以太网快但设计复杂。怎么选?看你的应用场景。下一章咱们聊聊TCU的电源管理与休眠唤醒策略,那个更刺激。