CAN FD 与车载以太网

CAN FD 如何用可变速率突破 8 字节限制,车载以太网又如何承接 Gbps 级流量:帧格式与 BRS/ESI、速率切换与位定时、100BASE-T1 单对双绞线 PHY、TSN 时间敏感网络、VLAN 与 QoS 配置、DoIP 诊断传输,以及两类网络在整车架构中的分工与共存策略。

引言

CAN 有两个硬伤:数据段最多 8 字节、最高 1 Mbps。当智驾摄像头每帧几百 KB、OTA 包几十 MB 时,经典 CAN 彻底不够用。CAN FD(Flexible Data-rate)是过渡方案——保持 CAN 的仲裁与错误处理,但把数据段扩展到 64 字节、速率提到 2~8 Mbps;车载以太网则是终局方案,用 100 Mbps 到 10 Gbps 的单对双绞线承接大流量。

两者的关系不是替代,而是分层。CAN FD 继续承担安全关键的小信号(它的事件触发 + 仲裁延迟可预测),车载以太网承担带宽密集型流量(摄像头、激光雷达、OTA)。一个现代整车里,两者通过网关共存,甚至同一个 ECU 上同时有 CAN FD 和以太网接口。

工程难点有三:CAN FD 的速率切换需要收发器支持、位定时在两段速率下都要正确;车载以太网的 PHY(100BASE-T1)与消费级以太网完全不同,需要专门的调试手段;TSN 的时间同步与流量整形配置复杂,配错会导致音视频卡顿。本文逐层拆解。

目录

  1. 为什么需要 CAN FD
  2. CAN FD 帧格式与 BRS/ESI
  3. CAN FD 位定时与速率切换
  4. 车载以太网 100BASE-T1 与 1000BASE-T1
  5. 单对双绞线 PHY 与调试
  6. TSN 时间敏感网络
  7. VLAN 与 QoS 配置
  8. DoIP 诊断传输
  9. CAN FD 与以太网的分工

1. 为什么需要 CAN FD

经典 CAN 的瓶颈在刷写与大数据量信号:

经典 CAN(8 字节,500 kbps):
  传输 1 MB 数据约需 1 MB / (8 B / 260 us) ≈ 32 秒
  整车刷写(几十 MB)需数十分钟

CAN FD(64 字节,数据段 2 Mbps):
  一帧数据段 64 字节,耗时约 0.5 ms
  传输 1 MB 约 8 秒(吞吐提升约 4~8 倍)
  刷写时间可压缩到几分钟

信号层面:
  经典 CAN 一帧最多塞 8 字节,多信号需拆帧
  CAN FD 一帧 64 字节,一个报文可含几十个信号
  → 报文数量减少,总线负载下降

CAN FD 的兼容性设计很聪明:仲裁段仍用经典 CAN 速率(保证与老节点共存、保证仲裁公平),只有数据段提速。这意味着 CAN FD 网络里可以混跑经典 CAN 帧。

2. CAN FD 帧格式与 BRS/ESI

CAN FD 在经典 CAN 基础上增加了几个控制位:

CAN FD 数据帧(新增字段):
  ... 控制段:IDE  r0  FDF  res  BRS  ESI  DLC  ...
                ↑     ↑    ↑    ↑    ↑
                |     |    |    |    └─ ESI:错误状态指示
                |     |    |    └─ BRS:比特率切换
                |     |    └─ res:保留
                |     └─ FDF:FD 格式标志(=1 表示 FD 帧)
                └─ IDE:标识符扩展

DLC 编码(CAN FD 扩展):
  0~8   → 0~8 字节
  9     → 12 字节
  10    → 16 字节
  11    → 20 字节
  12    → 24 字节
  13    → 32 字节
  14    → 48 字节
  15    → 64 字节

BRS(Bit Rate Switch):
  BRS=1:数据段用高速率(如 2 Mbps)
  BRS=0:全程用仲裁速率

ESI(Error State Indicator):
  ESI=0:发送节点错误主动
  ESI=1:发送节点错误被动
  用于快速判断发送方健康度

CRC 也加长:数据 ≤ 16 字节用 17 位 CRC,> 16 字节用 21 位 CRC,且加入填充位计数,防止填充位导致 CRC 漏检。

3. CAN FD 位定时与速率切换

CAN FD 需要配两套位定时(仲裁段与数据段),这是配置的难点:

以 500 kbps 仲裁段 + 2 Mbps 数据段、80 MHz 时钟为例:

仲裁段(500 kbps):
  位时间 = 80 MHz / 500 kbps = 160 TQ
  常用 NBT = 20 TQ(预分频 8)
  采样点 80% → (1 + 7 + 8) / 20 = 80%

数据段(2 Mbps):
  位时间 = 80 MHz / 2 Mbps = 40 TQ
  常用 DBT = 20 TQ(预分频 2)
  采样点 75% → (1 + 6 + 8) / 20 = 75%

关键约束:
  数据段 TQ 数不能太少(建议 ≥ 8~10),否则 SJW 不够
  数据段采样点常取 70%~80%
  收发器必须支持 FD(经典收发器会滤掉高速段)

收发器是关键硬件门槛。经典 CAN 收发器(如 TJA1050)的对称性不足以支持 2 Mbps 以上,必须用 FD 收发器(TJA1044、TJA1463)。TJA1463 还带 SIC(Signal Improvement Capability),可在 5 Mbps 以上抑制振铃。

混网场景:CAN FD 网络里如果挂了经典 CAN 节点,该节点收到 FD 帧会发错误帧,破坏通信。所以混网必须靠网关隔离,或全节点升级。

4. 车载以太网 100BASE-T1 与 1000BASE-T1

车载以太网与消费级以太网(100BASE-TX)完全不同:

特性100BASE-TX(消费级)100BASE-T1(车载)
线对2 对(收 + 发)1 对双向
编码MLT-3PAM3
速率100 Mbps100 Mbps
线缆Cat5,4 对单对非屏蔽,15 m
连接器RJ45H-MTD / MATEnet
全双工是(独立收发)是(回波消除)
EMC一般车规,抗干扰强

1000BASE-T1 把速率提到 1 Gbps(PAM3 三电平,750 MBd),10GBASE-T1 用于智驾域。线束重量和成本是车载选择单对的关键——一车以太网线束若用 Cat5 会增重几十公斤。

拓扑从「点对点」演进到「交换机星型」,域控制器内置多口交换机,再演进到「中央交换 + 区域接入」。

5. 单对双绞线 PHY 与调试

车载以太网 PHY 的调试与经典以太网不同:

常用 PHY 芯片:
  Broadcom BCM89811/89881(100M/1G)
  Marvell 88Q2112(1G)
  NXP TJA1101(100M)
  TI DP83TC811(100M)

关键调试手段:
  1. 链路状态:读取 PHY 寄存器,看 link up/down、速率协商
  2. 信号质量:用示波器测 PAM3 眼图,或用 SQI(Signal Quality Index)
  3. 主从模式:单对以太网需一端为主(Master)一端为从(Slave),
     配置错误则无法建链
  4. 唤醒:OPEN Alliance TC10 睡眠/唤醒机制,支持低功耗

Linux 侧:
  ip link set eth0 up
  ethtool eth0            # 看 link speed、duplex
  ethtool -S eth0         # 看 PHY 统计(误码、丢包)
  ip -s link show eth0

常见问题:主从配反导致不建链、线缆阻抗不匹配(应为 100Ω)导致误码、EMC 不过关导致整车辐射超标。

6. TSN 时间敏感网络

TSN(Time-Sensitive Networking)是以太网的确定性扩展,一组 IEEE 802.1 标准:

关键子标准:
  802.1AS  gPTP:全局时间同步,精度 < 1 us
  802.1Qbv 时间感知整形(TAS):按时间片调度队列,确定性
  802.1Qav 信用整形(CBS):音视频流带宽预留
  802.1Qbu/802.3br 帧抢占:高优先级帧打断低优先级帧
  802.1CB  帧复制与消除(FRER):冗余路径,无缝切换
  802.1Qci 流过滤与监管:按流限速,防攻击

为什么需要:
  摄像头流需要确定性延迟(< 2 ms)
  音视频同步需要 < 1 us 时基
  安全关键控制需要带宽与延迟保证

TAS(802.1Qbv)是核心:把时间切成周期,每个周期内为不同队列分配时间窗,实现「时间触发」。配置 gPTP 时要注意主时钟选举(BMCA)与域号(domainNumber),全车必须统一。

一个典型的 TSN 调度配置(概念示意):

周期 1 ms,划成 4 个时间窗:
  0~250 us   :安全控制流(队列 7),独占
  250~500 us :摄像头流(队列 6)
  500~750 us :音视频流(队列 5)
  750~1000 us:尽力而为(队列 0~4)

门控列表(Gate Control List):
  T=0      → 队列7开,其余关
  T=250us  → 队列6开
  T=500us  → 队列5开
  T=750us  → 队列0~4开
  T=1ms    → 回到起点

配置要点:
  各节点时钟必须同步(gPTP),否则时间窗错位
  保护带(guard band)要留足,避免长帧跨窗

TSN 的复杂度在于「全网协同配置」——不是单设备能决定的,需要集中式配置工具(如基于 NETCONF/YANG 的管理)下发。

7. VLAN 与 QoS 配置

车载以太网用 VLAN 隔离不同功能域,用 QoS 保证优先级:

# Linux 侧配置 VLAN
ip link add link eth0 name eth0.10 type vlan id 10
ip addr add 192.168.10.1/24 dev eth0.10
ip link set eth0.10 up

# 设置 PCP(优先级码点,0~7)
ip link set eth0.10 type vlan egress-qos-map 0:5
# 把 VLAN 10 的流量映射到 PCP 5(高优先级)

# 用 tc 做流量整形(CBS)
tc qdisc add dev eth0 root handle 1: mqprio num_tc 4 \
   map 0 0 0 1 2 3 3 3 queues 1@0 1@1 1@2 1@3 hw 1

车载 VLAN 划分常见约定:

VLAN ID用途优先级
10智驾传感器6
20座舱音视频5
30诊断刷写3
40车身控制4
50管理/日志1

QoS 的关键是「端到端一致」:从源到目的每一跳的交换机都要配一致的 PCP 映射,否则优先级在某一跳丢失。

8. DoIP 诊断传输

DoIP(Diagnostics over IP,ISO 13400)把 UDS 诊断搬到以太网上,用于刷写:

DoIP 协议栈:
  UDS(ISO 14229)        ← 诊断服务
  DoIP(ISO 13400)       ← 传输层:报文封装、路由激活
  TCP/UDP + IP            ← 网络层
  100BASE-T1              ← 物理层

DoIP 报文头(8 字节):
  协议版本(1) 反向版本(1) 类型(2) 长度(4)
  常用类型:
    0x0001  车辆识别请求
    0x0004  车辆公告(响应)
    0x0005  路由激活请求
    0x0006  路由激活响应
    0x8001  诊断报文

端口:
  UDP 13400:车辆发现(广播)
  TCP 13400:诊断通信

刷写流程:
  1. UDP 广播发现车辆 → 获取 IP
  2. TCP 连接 → 路由激活
  3. UDS 0x10 切编程会话
  4. 0x34/0x36/0x37 传数据
  5. 校验、复位

DoIP 相比 DoCAN 的优势是带宽:1 Gbps 以太网下刷写一个几十 MB 的包只需几十秒,而 CAN 要几十分钟。

9. CAN FD 与以太网的分工

两者在整车架构里各有位置:

CAN FD 继续负责:
  安全关键小信号(刹车、转向、电机扭矩)
  事件触发 + 仲裁,延迟可预测
  低成本、低复杂度、成熟工具链
  传感器/执行器级通信(< 100 字节)

车载以太网负责:
  摄像头/激光雷达原始数据(Gbps 级)
  OTA 大包传输
  域控之间的服务通信(SOME/IP)
  诊断刷写(DoIP)
  音视频流

分工原则:
  延迟确定性优先 → CAN FD
  带宽优先 → 以太网
  成本敏感 → CAN FD

网关是两者的桥梁,把 CAN 信号打包成 SOME/IP 服务,或把以太网控制指令拆成 CAN 报文。设计时要明确「哪些信号留在 CAN,哪些上以太网」——经验法则是:周期 < 10 ms 或 ASIL C/D 的信号留 CAN FD,其余可上以太网。

权衡取舍

决策点选项 A选项 B建议
数据段速率2 Mbps5 Mbps2 Mbps 兼容性好,5 Mbps 需 SIC 收发器
网络选型CAN FD以太网小信号 CAN FD,大流量以太网
以太网速率100BASE-T11000BASE-T1传感器用 100M,域控互联用 1G
同步软同步gPTP/TSN融合与音视频必须 gPTP,精度 < 1 us
隔离VLAN物理隔离同交换机用 VLAN,安全域可物理隔离
刷写通道DoCANDoIP小 ECU 用 DoCAN,大包用 DoIP

常见坑清单

  1. 用经典收发器跑 CAN FD:高速段被滤掉,通信失败,必须换 FD 收发器。
  2. 数据段 TQ 太少:SJW 不足以吸收误差,高速下误码,建议 ≥ 8 TQ。
  3. CAN FD 混网未隔离:经典节点收到 FD 帧发错误帧,需网关隔离或全升级。
  4. 以太网主从配反:100BASE-T1 一端须为主,配反不建链,链路一直 down。
  5. 线缆阻抗不匹配:非 100Ω 线缆导致误码,用 OPEN Alliance 认证线缆。
  6. TSN 时基不统一:gPTP 域号或主时钟不一致,音视频卡顿,全车统一配置。
  7. VLAN 优先级丢失:某一跳交换机未配 PCP 映射,端到端 QoS 失效。
  8. DoIP 路由未激活:直接发诊断报文被拒,必须先做路由激活。
  9. 忽视 EMC:单对以太网辐射超标,需按车规做 EMC 设计与认证。
  10. 交换机不做风暴抑制:广播风暴打满上行口,需配置风暴抑制与端口隔离。

小结

CAN FD 是经典 CAN 的平滑升级——保住仲裁与错误处理,把数据段扩展到 64 字节并提速;车载以太网则是架构级变革,用单对双绞线承接 Gbps 流量与 TSN 确定性。两者的分工由「延迟确定性 vs 带宽」决定,网关负责桥接。

实践路径:先在 CAN FD 台架上验证速率切换与位定时,再引入以太网交换机与 DoIP,最后上 TSN 做确定性调度。CAN 的基础细节见 CAN 总线与车载网络通信 ;服务化通信见 SOME/IP 与车载中间件 ;诊断与刷写的完整流程见 诊断协议 UDS 与 OBD 。

若你关注 Linux 侧的网络栈调优,Linux 内核网络栈 与网络时间同步 PTP 是 gPTP 与 QoS 的底层基础。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「车载软件」更多文章

  1. 三电与动力总成软件
  2. 车载软件测试与 HIL 台架
  3. ADAS 决策规划与横纵向控制