4、车载网络通信基础:CAN总线协议(CAN 2.0、CAN FD)、LIN总线、车载以太网(100BASE-T1、1000BASE-T1)、FlexRay
各位,咱们今天聊点实在的。
做TBOX,说白了就是让车跟外界说话。但车里面那堆电子单元,它们自己也得先能互相沟通。这就涉及到车载网络通信的基础了。我这些年调过的板子、踩过的坑,有一大半都跟这些总线协议有关。今天我把几个核心的掰开揉碎了讲给你听。
4.1 CAN总线:老将出马,一个顶俩
CAN总线,这玩意儿在车上太常见了。从发动机到车窗,到处都是它的身影。它最大的特点就是可靠性高、实时性好。
4.1.1 CAN 2.0:经典永流传
CAN 2.0分两种,标准帧和扩展帧。区别在哪?说白了就是ID长度不一样。标准帧11位ID,扩展帧29位ID。
我个人习惯,在TBOX上做诊断和标定的时候,基本都用扩展帧。为啥?因为ID多,好规划。你想想看,一个车上几十个ECU,要是ID不够用,那不乱套了?
核心参数速览
- 最大速率:1 Mbps(实际常用500 kbps或250 kbps)
- 数据长度:最多8字节
- 总线长度:40米@1 Mbps
- 差分信号:CAN_H和CAN_L
我在项目中遇到过一个问题:某次测试,TBOX老是丢报文。查了半天,发现是终端电阻没配好。记住,CAN总线两端必须各加一个120Ω的电阻,不然信号反射会让你怀疑人生。
4.1.2 CAN FD:老树开新花
CAN FD,就是CAN的升级版。它解决了两个痛点:速率不够快、数据不够长。
| 特性 | CAN 2.0 | CAN FD |
|---|---|---|
| 最大速率 | 1 Mbps | 8 Mbps(数据段) |
| 数据长度 | 8字节 | 64字节 |
| 帧格式 | 标准/扩展 | 兼容CAN 2.0 + 新格式 |
| CRC校验 | 15位 | 17/21位 |
嗯,这里要注意:CAN FD的物理层和CAN 2.0是一样的,所以线束不用改。但控制器得换。我建议你在选型TBOX主芯片时,优先选带CAN FD控制器的。现在新出的车,基本都在往CAN FD迁移。
避坑指南
我曾经在一个项目里,把CAN FD和CAN 2.0混在一个总线上。结果发现,CAN FD节点发高速数据时,CAN 2.0节点直接罢工。后来才搞清楚,CAN FD的仲裁段速率和CAN 2.0一样,但数据段速率高,老节点跟不上。解决办法:要么全换CAN FD,要么用网关隔离。
4.2 LIN总线:低成本的小弟
LIN总线,说白了就是CAN的廉价替代方案。它用在那些对速率要求不高的地方,比如车窗、座椅、天窗。
它的特点很明显:
- 单线传输:一根线,成本低
- 主从结构:一个主节点,多个从节点
- 速率低:最大20 kbps
- 数据短:一帧最多8字节
我个人觉得,LIN总线最大的价值就是便宜。你想想看,一个车窗电机,你给它配个CAN控制器,成本翻好几倍。用LIN,一根线搞定。
在TBOX上,LIN接口一般用来做低速诊断或者配置管理。比如,有些TBOX会通过LIN总线去读取BCM(车身控制模块)的状态。
注意
LIN总线的从节点不能主动发数据,必须等主节点发帧头。所以,如果你需要实时上报数据,别用LIN,老老实实用CAN。
4.3 车载以太网:未来的主角
车载以太网,这是目前最火的方向。为啥?因为自动驾驶和智能座舱需要海量数据传输,CAN那点带宽根本不够看。
4.3.1 100BASE-T1:入门级车载以太网
100BASE-T1,速率100 Mbps,一对双绞线。它跟咱们平时用的100BASE-TX不一样,TX需要两对线,T1只需要一对。
我在项目中遇到过一个问题:第一次用100BASE-T1时,发现信号质量很差。后来才知道,这玩意儿对线束要求很高,必须用专用的车载以太网线缆,不能用普通的网线。
4.3.2 1000BASE-T1:高速通道
1000BASE-T1,速率1 Gbps,同样是一对双绞线。它主要用于摄像头数据回传、激光雷达点云传输这些场景。
| 特性 | 100BASE-T1 | 1000BASE-T1 |
|---|---|---|
| 速率 | 100 Mbps | 1 Gbps |
| 线缆 | 1对双绞线 | 1对双绞线 |
| 最大距离 | 15米 | 15米 |
| 典型应用 | 诊断、OTA | 摄像头、激光雷达 |
嗯,这里要提醒你:车载以太网用的是单对以太网(Single Pair Ethernet, SPE)技术,跟咱们办公室的以太网不一样。所以,别想着用普通网线去接TBOX的车载以太网口,会出问题的。
我的建议
如果你在设计TBOX,至少留一个1000BASE-T1接口。现在可能用不上,但未来三年内,这玩意儿会成为标配。别到时候为了升级接口,还得重新改板子。
4.4 FlexRay:高可靠性的选择
FlexRay,这玩意儿在车上用得不多,但一旦用上,就是关键场合。比如线控制动、线控转向这些安全相关的系统。
它的特点:
- 双通道:冗余设计,可靠性高
- 时间触发:确定性好,延迟可控
- 速率高:单通道10 Mbps
- 灵活配置:静态段和动态段可以混合使用
说实话,FlexRay的配置非常复杂。我曾经花了两周时间,才把一个FlexRay网络的静态段时序调好。你想想看,每个节点什么时候发数据,都得精确到微秒级。
避坑指南
FlexRay的终端电阻和CAN不一样。CAN是120Ω,FlexRay是80Ω到110Ω之间,具体看线束特性。我曾经因为用了100Ω的电阻,导致信号反射严重,整个网络都不稳定。后来查了芯片手册,才发现推荐值是95Ω。
4.5 知识结构总览
下面这张图,我把这几种总线的关系和定位画出来了。你一看就明白。
4.6 选型建议
最后,我根据经验,给你一个简单的选型建议表。做TBOX设计时,可以参考一下。
| 应用场景 | 推荐协议 | 理由 |
|---|---|---|
| 动力总成、底盘控制 | CAN FD / FlexRay | 高可靠性、实时性 |
| 车身控制(车窗、门锁) | LIN | 成本低、速率要求低 |
| 诊断、OTA升级 | 100BASE-T1 | 带宽够用、成本适中 |
| 摄像头、激光雷达数据 | 1000BASE-T1 | 高带宽、低延迟 |
| 传统诊断(兼容老车) | CAN 2.0 | 存量车型多、工具链成熟 |
好了,这一章的内容就到这儿。这些协议,你不需要一下子全记住。但心里要有数:什么场景用什么协议,为什么用。等你真正开始画原理图、写驱动的时候,自然会越来越熟。