TSN旨在通过对以太网数据流的控制和管理,在以太网网络中同时提供高性能、高可靠性和精确时延的实时通信,与高带宽高吞吐量的普通通信。以满足工业控制、汽车、音视频等领域对实时通信与大量数据传输的需求。IEEE Std 802.1AS 对 IEEE 1588 进行扩展产生了gPTP协议,它用于TSN中的时间同步,为数据流的控制和管理提供时间参考。本文对gPTP的基本工作原理进行介绍,以帮助你快速了解gPTP协议。
gPTP简介
PTP终端实例: 如果不是GrandMaster就是Slave,GrandMaster发送时间信息到域中其他实例,其他实例将自身时钟源同步到GrandMaster。 PTP中继实例: 从主GrandMaster或其他中继实例接收时间信息,校正局域网和自身的延迟,并重新传输校正后的信息。
Priority1: 用于选举GrandMaster。取值范围为0-255,数值越小优先级越高,255代表实例不支持GrandMaster功能 ClockClass: PTP实例的时钟源与国际标准时间或其他已知准确度的时钟之间的关系,该值越小与其标准时间的偏差越小 ClockAccuracy: 时钟源的精度 OffsetScaledLogVariance: 时钟源的稳定性 Priority2: 作用与priority1相同,但优先级比priority1低 ClockIdentity: 用于识别不同PTP实例 TimeSource: 实例的时钟源类型如GNSS、原子钟或晶振 NumberPorts: 实例有多少个端口
域号范围为0-127,每个时间感知系统必须支持域0
SdoId为12位无符号数,高4位位majorSdoId,低8位位minorSdoId。gPTP域的majorSdoId为0x1,minorSdoId为0x00
gPTP的工作流程
以下是简化的两个只有一个全双工以太网接口的gPTP设备连接后的通信流:
判断链路支持802.1AS (asCapableAcrossDomains)
链路正在交换延迟测量报文 延迟未超过meanLinkDelayThresh,100BASE-TX和1000BASE-T链路中该值为800纳秒 未收到对同一Pdelay_Req报文的多个响应 连接到链路的端口未收到来自自身或同一PTP实例的另一端口的响应
判断链路支持特定PTP域 (asCapable)
链路支持802.1AS 收到来自相同域的GptpCapable报文 (neighborgptpcapable),或域号为0且收到SdoId为0x100的延迟测量报文(兼容802.1AS-2011)
Priority1 (1 octet; see 8.6.2.1) ClockClass (1 octet; see 8.6.2.2 and 6.4.3.8) ClockAccuracy (1 octet; see 8.6.2.3 and 6.4.3.8) OffsetScaledLogVariance (2 octets; see 8.6.2.4 and 6.4.3.8) Priority2 (1 octet; see 8.6.2.5) ClockIdentity (8 octets; see 8.5.2.2 and 6.4.3.6)
发送Sync报文同步时间
延迟测量
传播延迟测量始于发起方发出 Pdelay_Req 报文并生成时间戳t1。响应者接收到该报文并生成时间戳t2。响应者返回包含t2的Pdelay_Resp 报文,并生成时间戳t3。响应者在Pdelay_Resp_Follow_Up报文中返回t3。发起方在收到Pdelay_Resp报文后生成时间戳t4。随后发起方使用这四个时间戳通过以下公式计算平均传播延迟D(meanLinkDelay)。
时间同步
参考文献:
IEEE Std 802.1AS-2020
IEEE Std 1588-2019
文章来源:Arrow Solution