帝国cms 网站地图,网站系统修改,西充县企业网站建设,华安网站建设▎前言
在许多应用场景中#xff0c;一个本地局域网中互联的设备集群需要共享同一个时间#xff0c;以支持各设备的协同工作。例如#xff1a;音频设备与视频设备的配合播放#xff0c;雷达与摄像头的数据融合等#xff1b;这样一个看似简单的域功能#xff0c;细化成为…▎前言
在许多应用场景中一个本地局域网中互联的设备集群需要共享同一个时间以支持各设备的协同工作。例如音频设备与视频设备的配合播放雷达与摄像头的数据融合等这样一个看似简单的域功能细化成为各节点的需求就变得不那么简单了。想象一下A和B节点的绝对时间不同——A此刻时间为090000B的时间为090005时间频率不同——标准时间经过了1分钟A节点计时59秒B节点计时61秒如何实现各节点的时间矫正我们今天要讲解的802.1AS协议就是用来实现以上提到的功能的。
▎协议目的-共享时间
TSN任务组Time-Sensitive Networking Task Group是IEEE 802.1 Working Group的一个组成部分它的目的是在IEEE 802网络上提供确定性连接。我们可以把确定性连接这个概念简单理解为网络包传输的低延时低抖动和无丢包TSN在汽车控制工业自动化电力自动化等领域的应用通过协议簇实现例如时间同步机制类协议802.1AS冗余机制类协议802.1CB服务质量类协议802.1QbvQavQbu等和安全机制类协议802.1Qci。在IEEE 802.1DG草案中定义了汽车车内以太网的通信配置要求时钟同步机制采用802.1AS。
提供确定性连接的关键是共享网络中各组件的时间。802.1AS协议用于满足音频视频等时间敏感应用和时间敏感控制场景下的时间同步需求网络配置的更新网络组件的增加去除或者故障都不应影响同步功能。为此协议规定了时间同步模型的架构同步方法节点的介质无关子层介质相关子层具体实现方法。花费大量篇幅解释专业名词并非文章的核心我们专注于基本概念、同步原理和实现形式。
▎基本概念-gPTP域
在讲解802.1AS协议之前需要简单介绍一下IEEE 1588协议。IEEE 1588定义了一种精确时间协议被称为precision time protocolPTP。802.1AS基于PTP提出了自己的同步模型并称之为generalized precision time protocolgPTP。
下图给出了一个时间感知网络拓扑图。在这个网络系统中由于所有的设备都具有gPTP能力因此这个网络是一个gPTP域。虽然系统中存在网桥路由器终端站等多种设备对于gPTP域来说只有两类PTP终端节点PTP End Instance和PTP中继节点PTP Relay Instance。
如果节点只与一个节点连接那么这是一个终端节点比如图中的end station如果节点与多个节点连接那么这是一个中继节点比如下图中的bridge和router时间同步的最终效果是所有的节点都以图中与stratum 1时钟源相连的bridge作为时间基准并不断修正自己的时间这个时间基准被称为主时钟Grandmaster ClockGM。 当网络出现故障时例如外网与本地网络连接中断本地网络中的所有设备会重新选择一个主时钟设备也就是下图中的end stationlocal GM作为自己的参考对象。 ▎同步原理-延时和频率比值
gPTP域中的时间修正通过发送和接收特定报文实现。首先确定主时钟节点和时间同步生成树然后该节点会沿生成树方向发送时间同步报文中继节点转将报文转发至下游节点最终实现将GM时钟信息传递给域内所有节点。在时间同步过程中存在两类延时
转发延时报文在中继节点中停留的时间。转发延时是中继节点的本地属性易于计算传播延时报文在链路上传播的时间。传播延时取决于很多因素例如介质相关属性和链路长度。当两类延时时间都已知各个节点通过累计报文到达前的转发延时和传播延时便可得到同步时间。
因此我们需要考虑①如何选择GM时钟②如何测量报文在同步路径中的延时
GM时钟选择
有两种方法可以选择一个gPTP域内的主时钟 最优主时钟算法Best Master Clock Algorithm, BMCA 使用BMCA来确定gPTP域的GM节点并以该节点为根构建时间同步生成树。各节点之间通过发送Announce报文来交换最佳主时钟选择信息通过两两对比报文内容系统最终收敛到唯一的主时钟。 预定义端口状态 强制配置一个节点作为GM并构建以该节点为根的时间同步生成树。
在车载网络中主时钟是预先分配的例如将TBOX作为GM使用GPS时间作为同步时间。
延时测量
gPTP定义了两类报文用于时间同步事件型报文和一般型报文。在PTP节点入口和出口打上时间戳的报文是事件型报文没有打时间戳需求的是一般型报文。
事件型报文Sync、Pdelay_Req、Pdelay_Resp一般型报文Follow_Up、Pdelay_Resp_Follow_Up 传播延时测量方法为两步对等路径延时/对等延时测量的方向为initiator向responder发起通过Pdelay_Req、Pdelay_Resp和Pdelay_Resp_Follow_Up获取四个时间t1t2t3和t4测量步骤和计算方法如下
请求方发送Pdelay_Req报文记录出口时间戳t1应答方收到该报文记录入口时间戳t2此时请求方获取的时间是t1应答方反馈Pdelay_Resp报文记录出口时间戳t3并在报文中携带t2请求方收到该报文记录入口时间戳t4此时请求方获取的时间是t1t2t4应答方再次发送Pdelay_Resp_Follow_Up报文并在报文中携带t3此时请求方获取到时间t1t2t3和t4根据两个方向的时间差值计算传播延时 需要注意的是这种测量方式不考虑链路方向的延时差异假定请求方和应答方之间两个方向的报文传播时间是对称的这种计算方法对应请求方和应答方走时一致的理想情况而实际二者的频率差是必然存在的。当请求方的时钟频率比应答方的慢D会比实际值小。感兴趣的读者可以自己计算一下。
转发延时的测量基于本地时钟计算报文的出口时间戳和入口时间戳差值。
802.1AS并未规定传播延时测量的方向但是在车载网络中一般由Slave端向Master端发起。
由于时间频率不同会导致校准误差我们需要得到相邻节点的时间频率rateRatio并将其计入传播延时中。
计算方法为统计连续的Pdelay_Resp和Pdelay_Resp_Follow_Up报文时间戳信息。如下图所示第一次发送Pdelay_Resp的时间为t3到达另一端的时间为t4第二次发送Pdelay_Resp的时间为t3’到达时间为t4’。 频率比值计算结果为 计入频率比值的传播延时为 相邻节点之间的频率比被称为neighborRateRatio节点与主时钟之间频率比被称为rateRatiorateRatio是neighborRateRatio的累积乘积而由于neighborRateRatio与1非常接近以ppm为单位实际计算中也可通过累计相加的方式得到。 传播延时一般是ns-μs量级转发延时由于交换机转发与处理能力的限制一般是μs-ms量级。因此时间同步的误差来源主要是转发延时。
▎实现方式-PTP报文
延时测量方法测量结果PTP端口信息和发送周期在时间同步报文PTP报文中携带。PTP报文位于MAC帧的数据段目的MAC地址为固定组播地址01-80-C2-00-00-0E以太网帧类型为固定0x88F7。 PTP报头为34字节包含报文类型messageTypePTP版本号versionPTPPTP报文字节数messageLength等内容。
Correction field字段是上游节点相对于GM节点的修正值换算成ns时间需要除以2^16。当follow_up报文中的originTimestamp加上该字段以后就是上游节点发送该Sync报文的同步时间。 Sync报文
Sync报文根据一步法和两步法的不同报文格式存在差异。一步法仅由Sync报文携带延时和频率比值信息。 如果报头中的两步法标志位为True那么Sync报文格式如IEEE 802.1AS 2020中的表11-8所示如果标志位为False那么Sync报文格式如IEEE 802.1AS 2020中的表11-9所示。由于一步法不发送Follow_Up报文因此GM节点发送Sync报文的时间originTimestamp和TLV字段统一在Sync报文中携带。车载应用中通常使用两步法。 Follow Up报文
Follow_Up报文携带相关Sync报文的出口时间戳信息。
preciseOriginTimestamp是GM节点发送Sync报文的时间。 Pdelay_Req报文
报文的数据段不携带信息为保留值。
Pdelay_Resp报文
requestReceiptTimestamp为Responder接收Pdelay_Req报文的入口时间。
requestingPortIdentity为Pdelay_Req报文的源端口信息。 Pdelay_Resp_Follow_Up报文
responseOriginTimestamp为Responder发送Pdelay_Resp报文的出口时间。
requestingPortIdentity同样为Pdelay_Req报文的源端口信息。 ▎总结
TSN任务组颁布了IEEE 802.1AS-2020协议以解决本地局域网中各组件的时间同步问题。在一个gPTP域中各节点测量传播延时转发延时和频率比值。通过BMCA算法或预配置方式系统确定主时钟节点并向其他节点发送时间同步报文完成时间同步。本期协议解读到此就告一段落了下期我们将为大家带来更多精彩的TSN协议系列解读敬请期待。
▎参考文献
[1] IEEE Std 802.1AS™‐2020 IEEE Standard for Local and Metropolitan Area Networks —Timing and Synchronization for Time‐Sensitive Applications
[2] IEEE Std 1588™-2008 IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems