引言
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 的时间同步与流量整形配置复杂,配错会导致音视频卡顿。本文逐层拆解。
目录
- 为什么需要 CAN FD
- CAN FD 帧格式与 BRS/ESI
- CAN FD 位定时与速率切换
- 车载以太网 100BASE-T1 与 1000BASE-T1
- 单对双绞线 PHY 与调试
- TSN 时间敏感网络
- VLAN 与 QoS 配置
- DoIP 诊断传输
- 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-3 | PAM3 |
| 速率 | 100 Mbps | 100 Mbps |
| 线缆 | Cat5,4 对 | 单对非屏蔽,15 m |
| 连接器 | RJ45 | H-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 Mbps | 5 Mbps | 2 Mbps 兼容性好,5 Mbps 需 SIC 收发器 |
| 网络选型 | CAN FD | 以太网 | 小信号 CAN FD,大流量以太网 |
| 以太网速率 | 100BASE-T1 | 1000BASE-T1 | 传感器用 100M,域控互联用 1G |
| 同步 | 软同步 | gPTP/TSN | 融合与音视频必须 gPTP,精度 < 1 us |
| 隔离 | VLAN | 物理隔离 | 同交换机用 VLAN,安全域可物理隔离 |
| 刷写通道 | DoCAN | DoIP | 小 ECU 用 DoCAN,大包用 DoIP |
常见坑清单
- 用经典收发器跑 CAN FD:高速段被滤掉,通信失败,必须换 FD 收发器。
- 数据段 TQ 太少:SJW 不足以吸收误差,高速下误码,建议 ≥ 8 TQ。
- CAN FD 混网未隔离:经典节点收到 FD 帧发错误帧,需网关隔离或全升级。
- 以太网主从配反:100BASE-T1 一端须为主,配反不建链,链路一直 down。
- 线缆阻抗不匹配:非 100Ω 线缆导致误码,用 OPEN Alliance 认证线缆。
- TSN 时基不统一:gPTP 域号或主时钟不一致,音视频卡顿,全车统一配置。
- VLAN 优先级丢失:某一跳交换机未配 PCP 映射,端到端 QoS 失效。
- DoIP 路由未激活:直接发诊断报文被拒,必须先做路由激活。
- 忽视 EMC:单对以太网辐射超标,需按车规做 EMC 设计与认证。
- 交换机不做风暴抑制:广播风暴打满上行口,需配置风暴抑制与端口隔离。
小结
CAN FD 是经典 CAN 的平滑升级——保住仲裁与错误处理,把数据段扩展到 64 字节并提速;车载以太网则是架构级变革,用单对双绞线承接 Gbps 流量与 TSN 确定性。两者的分工由「延迟确定性 vs 带宽」决定,网关负责桥接。
实践路径:先在 CAN FD 台架上验证速率切换与位定时,再引入以太网交换机与 DoIP,最后上 TSN 做确定性调度。CAN 的基础细节见 CAN 总线与车载网络通信 ;服务化通信见 SOME/IP 与车载中间件 ;诊断与刷写的完整流程见 诊断协议 UDS 与 OBD 。
若你关注 Linux 侧的网络栈调优,Linux 内核网络栈 与网络时间同步 PTP 是 gPTP 与 QoS 的底层基础。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。