2. 车载以太网与TSN协议栈速览
车载以太网测试的核心难点,不在于“能不能发一帧报文”,而在于能否把一组相互耦合的时间、调度、冗余和准入机制拆开,分别施加激励并观察其行为。IEEE 802.1 系列标准正是这些机制的来源:802.1AS 负责全车时间基准,802.1Qbv 负责时间感知整形,802.1Qav 负责信用整形,802.1CB 负责帧复制与消除,802.1Qci 负责流过滤与监管。CANoe 并不“实现”这些标准,而是提供配置入口、仿真节点、干扰注入和测量视图,让测试者能够构造边界条件并判定 DUT 是否合规。
五个标准在协议栈中的位置与职责
从分层角度看,802.1AS 属于时间同步层,它通过 gPTP 报文在交换机与端节点之间建立主从关系,最终让各端口的时间误差收敛到亚微秒量级。802.1Qbv、802.1Qav、802.1Qci 属于转发与调度层,作用在出端口队列和入端口过滤上。802.1CB 则跨越发送端与接收端,属于可靠性层,通过序列号、复制和消除实现无缝冗余。理解这一分层,是后续在 CANoe 中定位配置项的前提。
802.1AS:时间基准是所有调度的前提
Qbv 的门控表以时间为索引,如果各节点时间不一致,门控窗口就会错位,高优先级帧可能被低优先级帧挤占。因此测试顺序上,AS 通常先于 Qbv 验证。在 CANoe 中,可以创建一个 gPTP 仿真节点,配置 grandmaster 优先级、clockClass、priority1/priority2 和 stepsRemoved,让它与 DUT 交换机进行 BMCA 选举。观察点包括:Sync 与 Follow_Up 的 preciseOriginTimestamp 是否连续、Pdelay 往返时延是否稳定、以及 DUT 在链路中断后重新收敛的时间。
一个可复现的示例配置是:仿真节点声明为 grandmaster,priority1=100,clockClass=6,Sync 周期 125 ms,Pdelay 周期 1 s。启动后先让系统稳定 30 s,再在 CANoe 的 Trace 窗口中过滤 eth.type == 0x88F7,统计相邻 Sync 报文的 correctionField 与本地接收时间戳之差。若该差值在 ±500 ns 内波动,说明链路时延测量正常;若持续单向漂移,则需检查 DUT 是否启用了不正确的 asCapable 或非对称时延补偿。
802.1Qbv 与 802.1Qav:两类整形机制的测试差异
Qbv 是“时间驱动”,测试重点是门控列表的相位与保护带。在 CANoe 中,通常通过交换机配置接口或诊断服务写入 GCL(Gate Control List),然后用周期报文测量实际出队时刻。例如配置一个 1 ms 周期、门控窗口 200 μs 的队列,发送周期 1 ms 的测试帧,观察其发送时刻是否落在窗口内。若出现帧被推迟到下一个周期,说明保护带不足或 GCL 基准时间偏移。
Qav 是“信用驱动”,测试重点是 idleSlope 与 sendSlope 的配置是否与流量特征匹配。假设某 SR-A 类队列配置 idleSlope = 10 Mbps,端口速率 100 Mbps,则持续注入 20 Mbps 的该类流量时,信用会持续下降,最终触发整形等待。CANoe 中可通过统计该类流量的实际输出速率和队列时延来验证:若输出速率被限制在 10 Mbps 附近且时延随注入速率上升而增大,说明 CBS 生效;若输出速率仍接近 20 Mbps,则需检查队列映射或 idleSlope 是否被正确下发。
802.1CB 与 802.1Qci:冗余与准入的联合验证
FRER 的测试需要构造两条独立路径。在 CANoe 中,可以用两个端口分别连接 DUT 的两条路径,发送端对同一帧流复制并打上序列号,接收端统计消除后的重复帧和丢失帧。典型示例:发送 10 000 帧,序列号 0~9999,人为在其中一条路径上丢弃 200 帧并制造 50 帧乱序。合格表现是接收端恢复出完整的 10 000 帧,且恢复窗口内的重复帧被正确消除,不产生重复上送。
Qci 则作用在入端口,对流进行门控、计量和帧计数。测试时可配置一个流门控在特定时间窗内关闭,观察该流是否被丢弃;或配置计量速率低于实际发送速率,观察超速帧是否被标记或丢弃。CANoe 的统计视图可以按流 ID 分别显示接收、丢弃和通过计数,从而判断 PSFP 是否按预期工作。
CANoe 中的配置对象与观测对象对照
| 标准 | CANoe 中的主要配置对象 | 关键观测对象 | 典型判定指标 |
|---|---|---|---|
| 802.1AS | gPTP 仿真节点、BMCA 参数、Sync/Pdelay 周期 | Sync/Follow_Up 时间戳、Pdelay 往返时延 | 时间偏差 ≤ ±500 ns,重收敛时间 |
| 802.1Qbv | GCL 门控列表、周期、保护带、基准时间 | 帧实际出队时刻、门控状态 | 帧落在门控窗口内,无跨周期推迟 |
| 802.1Qav | idleSlope、sendSlope、队列映射 | 输出速率、队列时延、信用变化 | 输出速率受限于 idleSlope |
| 802.1CB | 双路径端口、序列号生成与恢复参数 | 序列号、重复帧、恢复计数 | 丢帧/乱序后完整恢复,无重复上送 |
| 802.1Qci | 流门控、流计量、流计数 | 按流统计的通过/丢弃计数 | 超速或门控关闭时正确丢弃 |