4. AVB/TSN协议族概览:时间同步、流量整形、预留机制

好,咱们进入正题。AVB和TSN,这两个词你肯定听过。说白了,它们就是一套让以太网变得“听话”的协议族。普通以太网是“尽力而为”的,数据包能到就行,晚一点也无所谓。但车载网络不行,刹车信号晚1毫秒,可能就是一场事故。

AVB(Audio Video Bridging)是IEEE 802.1标准集,最初是为了音视频同步。后来演进成了TSN(Time-Sensitive Networking),把低延迟、高可靠的能力扩展到了工业、车载等领域。我个人习惯把TSN看作是AVB的“升级版”,但核心思想一脉相承。

核心三件套:时间同步、流量整形、预留机制。这三者缺一不可,构成了低延迟通信的基石。

4.1 时间同步:gPTP(IEEE 802.1AS)

时间同步是一切的基础。你想想看,如果两个节点的时间都不准,那“预留带宽”和“准时发送”就无从谈起。

gPTP,全称是generalized Precision Time Protocol。它脱胎于工业界的PTP(IEEE 1588),但针对车载和AVB场景做了优化。我记得第一次在实车上调试gPTP时,发现时钟漂移比预期大得多,后来才发现是晶振的温漂问题。嗯,这里要注意,车载环境温度变化剧烈,晶振选型一定要考虑温度特性。

gPTP的核心机制是主从同步。网络里会选出一个“主时钟”(Grandmaster),其他节点都跟着它走。同步过程分两步:

  • 偏移测量:从节点计算自己与主时钟的时间差。
  • 延迟测量:计算网络传输路径的延迟。

有了这两个值,从节点就能把自己的本地时钟校准到主时钟上。校准精度通常在亚微秒级别,对于车载应用来说,绰绰有余。

避坑指南:我曾经遇到过一个问题,gPTP同步精度突然恶化。排查了半天,发现是交换机上的一个端口开启了EEE(节能以太网)。EEE会让链路在空闲时进入低功耗模式,导致链路延迟抖动。所以,在TSN网络中,建议关闭EEE。

4.2 流量整形:让数据“排队”更有序

时间同步搞定了,接下来就是怎么让数据有序地发送。流量整形,说白了就是给不同的数据流排个队,让高优先级的先走,低优先级的等一等。

AVB/TSN里最核心的整形算法是Credit-Based Shaper(CBS),定义在IEEE 802.1Qav中。CBS的思路很巧妙:每个数据流都有一个“信用值”(Credit)。信用值会随时间增加,发送数据时会消耗信用值。信用值不能为负,所以数据流不能无限制地发送。

我画了一张图,帮你理解CBS的工作流程:

CBS 信用值变化示意图 信用值 0 + - 时间 发送 发送 发送 发送 发送 发送 发送 恢复 信用值曲线 数据发送事件

你看,信用值在空闲时线性增长,发送时线性下降。这样就保证了每个数据流都能获得一个“公平”的发送机会,不会出现某个流霸占带宽的情况。

除了CBS,TSN还引入了时间感知整形(TAS,IEEE 802.1Qbv)。TAS更激进,它把时间分成一个个“时间片”,每个时间片只允许特定类型的数据通过。这就像给每个数据流分配了一个“专属通道”,延迟可以做到极低。

注意:TAS虽然效果好,但配置复杂。你需要精确计算每个时间片的长度,还要考虑时钟同步的精度。我曾经在一个项目中,因为时间片配置不合理,导致高优先级数据反而被阻塞。调试了整整两天才找到问题。

4.3 预留机制:SRP与MSRP

有了时间同步和流量整形,还差最后一步:你得告诉网络,我这个流需要多少带宽、多少延迟。这就是预留机制干的事。

AVB时代用的是SRP(Stream Reservation Protocol,IEEE 802.1Qat)。它的工作流程很简单:

  1. 发送端广播一个“我要发流了,需要X Mbps带宽”的消息。
  2. 沿途的交换机检查自己是否有足够的资源。
  3. 如果有,就预留资源,并继续转发消息。
  4. 如果所有节点都同意,预留成功,数据流开始传输。

到了TSN时代,SRP演进成了MSRP(Multiple Stream Reservation Protocol)。MSRP支持更灵活的预留方式,比如可以预留多个流,或者预留不同优先级的流。

我整理了一个表格,对比一下SRP和MSRP的关键差异:

特性 SRP (802.1Qat) MSRP (802.1Qcc)
支持的流数量 有限(通常几十个) 大量(数百甚至上千)
预留粒度 粗粒度(按优先级) 细粒度(按具体流)
配置方式 完全分布式 支持集中式配置
车载适用性 适合简单场景 适合复杂场景

我的经验:在实际项目中,我建议优先考虑MSRP。虽然它配置起来稍微复杂一点,但灵活性高得多。特别是当你有多个摄像头、雷达数据流需要同时传输时,MSRP能帮你避免很多资源冲突的问题。

4.4 三者的关系

时间同步、流量整形、预留机制,这三者不是孤立的。它们之间的关系,我可以用一句话概括:

时间同步是基础,流量整形是手段,预留机制是保障。

没有时间同步,流量整形就失去了“时间基准”,预留机制也无法精确计算延迟。没有流量整形,预留的带宽可能被其他流“偷走”。没有预留机制,流量整形就不知道应该给谁优先服务。

嗯,这里要强调一点:在实际部署时,一定要先搞定时间同步,再配置流量整形,最后做预留。顺序错了,后面全是坑。

总结一下:AVB/TSN协议族通过gPTP实现亚微秒级时间同步,通过CBS/TAS实现确定性流量整形,通过SRP/MSRP实现带宽和延迟的预留。这三者配合,让以太网从“尽力而为”变成了“说到做到”。

好了,这一章的内容就到这里。下一章我们会深入gPTP的细节,看看时钟同步到底是怎么做到的。


专注资料整理