第4章 通信架构优化:车载以太网(TSN、AVB)与CAN/CAN FD的混合组网设计

说实话,做车载通信架构这么多年,我最大的感触就是——没有一种总线能包打天下

CAN便宜、可靠,但带宽就那1Mbps。CAN FD快一些,8Mbps,但面对摄像头、激光雷达的数据流,还是捉襟见肘。以太网带宽大,但实时性怎么保证?

所以,混合组网是唯一出路。今天我们就聊聊,怎么把以太网(TSN、AVB)和CAN/CAN FD揉在一起,既保证带宽,又控制延迟。

4.1 为什么需要混合组网?

你想想看,一辆智能电动车里,信号分好几类:

  • 控制类信号:刹车、转向、油门。延迟要求<1ms,数据量极小。CAN/CAN FD最合适。
  • 诊断类信号:UDS、OTA升级。数据量大,但对实时性无要求。以太网搞定。
  • 多媒体/感知类信号:摄像头视频流、雷达点云。带宽需求几百Mbps,必须上以太网。

我在项目中遇到过,有人想用CAN FD传摄像头数据,结果总线负载直接飙到90%,丢帧严重。后来老老实实加了以太网网关,问题才解决。

核心原则:控制走CAN/CAN FD,数据流走以太网。两者通过网关桥接。

4.2 车载以太网的关键技术:TSN与AVB

很多人以为以太网就是“插上网线就能用”。但在车里,不行。普通以太网是尽力而为的,延迟不可控。你想想,刹车信号如果因为网络拥堵晚到10ms,后果是什么?

所以,车载以太网必须引入时间敏感网络(TSN)音视频桥接(AVB)

4.2.1 AVB:给音视频开绿灯

AVB最早是为了家庭影院设计的。它做了两件事:

  • 时钟同步:所有节点共享一个精确时钟(IEEE 802.1AS),误差<1μs。
  • 带宽预留:为音视频流预留固定带宽,保证不丢包。

我记得有一次调试全景影像系统,摄像头画面总是卡顿。查了半天,发现是AVB的流预留没配好,视频流和诊断数据抢带宽。调整优先级后,画面就流畅了。

4.2.2 TSN:让控制信号准时到达

TSN比AVB更进一步。它不仅能预留带宽,还能精确控制延迟。核心机制是:

  • 时间感知整形(TAS):把时间切成一个个小窗口。控制信号在固定窗口发送,其他数据靠边站。
  • 帧抢占(802.1Qbu):低优先级帧正在发送时,高优先级帧可以打断它,插队发送。
我的习惯:在TSN网络中,我会把刹车、转向信号设为最高优先级,并分配固定的时间窗口。这样无论网络多忙,这些信号的延迟都能控制在100μs以内。

4.3 CAN/CAN FD与以太网的混合组网设计

好了,技术原理讲完了。下面说说实际怎么搭这个混合网络。

4.3.1 典型拓扑结构

我个人习惯用域控制器+网关的架构:

+-------------------+       +-------------------+
|  智能驾驶域控制器  |       |  智能座舱域控制器  |
| (以太网+TSN)      |       | (以太网+AVB)      |
+--------+----------+       +--------+----------+
         |                           |
         +----------+---------------+
                    |
            +-------v--------+
            |  中央网关      |
            | (CAN FD+以太网)|
            +-------+--------+
                    |
        +-----------+-----------+
        |                       |
+-------v--------+     +-------v--------+
|  CAN FD总线    |     |  CAN FD总线    |
| (动力/底盘)    |     | (车身/舒适)    |
+----------------+     +----------------+

中央网关是关键节点。它负责:

  • 把CAN FD上的控制信号,转换成以太网报文,发给域控制器。
  • 把域控制器的指令,转成CAN FD信号,发给执行器。

4.3.2 带宽与延迟的平衡策略

这里有个矛盾:CAN FD延迟低但带宽小,以太网带宽大但延迟相对高。怎么平衡?

信号类型 推荐总线 延迟要求 带宽需求 我的建议
刹车/转向控制 CAN FD <1ms <1Kbps 必须走CAN FD,不要过网关
ADAS感知数据 以太网(TSN) <10ms 100Mbps+ 使用TSN时间窗口
音视频流 以太网(AVB) <50ms 50-200Mbps 预留带宽,避免拥塞
诊断/OTA 以太网(普通) 无要求 突发大流量 利用空闲带宽,优先级最低
避坑指南:我曾经在一个项目里,把ADAS的感知数据也走了CAN FD,结果导致动力总线的控制信号延迟从0.5ms飙升到5ms。后来不得不重新设计网关路由策略。记住:控制信号和数据流必须物理隔离

4.4 网关设计的关键点

网关是混合组网的大脑。设计不好,整个网络都会出问题。

4.4.1 路由策略

我建议采用信号级路由,而不是报文级路由。什么意思?

  • 报文级路由:整个CAN FD报文转发到以太网。浪费带宽,因为以太网报文头很大。
  • 信号级路由:只提取需要的信号,打包成以太网报文。效率高,但需要网关有较强的处理能力。

4.4.2 延迟预算分配

一个信号从传感器到执行器,总延迟是各段延迟之和。我一般这样分配:

总延迟预算:10ms
├── CAN FD发送延迟:1ms
├── 网关处理延迟:2ms(信号提取+路由)
├── 以太网传输延迟:1ms(TSN保证)
├── 网关处理延迟:2ms(信号转换)
└── CAN FD接收延迟:1ms
余量:3ms
小技巧:网关处理延迟是最大的变量。我习惯用带硬件加速的网关芯片(比如NXP的S32G),处理延迟可以控制在1ms以内。如果用纯软件方案,延迟可能飙到5ms以上。

4.5 实际项目中的经验总结

最后,分享几个我在项目中踩过的坑:

  1. 时钟同步不能省:TSN和AVB都依赖精确时钟。如果网关和域控制器的时钟不同步,时间窗口就会错位,导致丢包。我建议用IEEE 802.1AS,精度在1μs以内。
  2. 带宽预留要留余量:AVB的带宽预留,我一般留20%的余量。因为摄像头数据流可能有突发峰值,预留太满会导致丢帧。
  3. CAN FD的负载率不要超过50%:虽然CAN FD理论带宽8Mbps,但负载率超过50%后,延迟会急剧增加。我一般控制在30%以下。
  4. 以太网不要用Hub,用Switch:Hub是共享带宽,Switch是交换带宽。在车里,必须用支持TSN的Switch,才能保证每个端口的带宽独立。

嗯,通信架构优化,说白了就是把合适的信号,放在合适的总线上。没有银弹,只有权衡。希望这些经验能帮你少走弯路。