车载时间敏感网络TSN协议--gPTP_IEEE802.1AS标准解读

IEEE 802.1AS 属于数据链路层协议,主要用于时钟同步,其报文通常包含一些关键的字段和信息,例如同步消息的类型、时间戳、源标识符等,以实现精确的时钟同步。

所有 PTP 消息的通用头格式如 Table 10 - 7 所示

 

 包含 majorSdoId、minorVersionPTP、versionPTP、messageLength、domainNumber、minorSdoId、flags、correctionField、messageTypeSpecific、sourcePortIdentity、sequenceId、controlFieldlogMessageInterval 等字段。

 

 PTP 消息概述:PTP 消息包括 Announce(通告)和 Signaling(信令)等,每个消息都有头、体和后缀(如果有),后缀包含一个或多个 TLV(类型、长度、值)

 

  1. Announce 消息Body段必须遵守表10-11:
    • 主体字段:如 Table 10 - 11 所示,包含 reserved、currentUtcOffset、reserved、grandmasterPriority1、grandmasterClockQuality、grandmasterPriority2、grandmasterIdentity、stepsRemoved、timeSourcepath trace TLV 等字段
      1. reserved:保留字段,其目的可能是为了将来的扩展或与其他消息格式的对齐,发送时所有位设置为 0,接收方会忽略该字段的内容。
      2. currentUtcOffset:表示发送该 Announce 消息的 PTP 实例所对应的当前 UTC 偏移量。这个偏移量是相对于当前 Grandmaster Clock 的时间差,以秒为单位。例如,如果当前 UTC 时间与 TAI 时间(国际原子时)的差值为 33 秒(即 2006 - 01 - 01 00:00:00 UTC 和 2006 - 01 - 01 00:00:33 TAI 代表同一时刻),那么 currentUtcOffset 在此时就等于 33 秒。当 currentUtcOffsetValid 为 TRUE 时,该值被认为是正确的,否则其正确性未知。
      3. grandmasterPriority1:该字段的值是发送该 Announce 消息的 PTP 实例的 rootSystemIdentity 中 priority1 组件的值。priority1 用于在最佳主时钟选择过程中进行比较,当 priority1 的值小于 255 时,表示该 PTP 实例有可能成为 Grandmaster PTP Instance,priority1 的值越小,在比较中越有可能被选为最佳主时钟。
      4. grandmasterClockQuality:该字段表示的时钟质量是由 rootSystemIdentity 中 clockClass(时钟可追溯性)、clockAccuracy(时钟精度)和 offsetScaledLogVariance(PTP 方差的偏移缩放表示)组成的。这些属性共同描述了时钟的质量特征,用于在 PTP 网络中评估不同时钟的优劣,以确定最佳主时钟。
      5. grandmasterPriority2:此字段存储的是 rootSystemIdentity 中 priority2 组件的值,也是在最佳主时钟选择过程中使用的一个属性。
      6. grandmasterIdentity:该字段表示的是 rootSystemIdentity 中 clockIdentity 组件的值,即 Grandmaster PTP Instance 的时钟标识。通过这个标识,可以确定 Grandmaster PTP Instance 的身份。
      7. stepsRemoved:这个字段的值表示发送该 Announce 消息的 PTP 实例在时间同步树中的步数。具体来说,它是从根 PTP 实例到该 PTP 实例的路径上的 gPTP 通信路径的数量。例如,如果一个 PTP 实例通过一条 gPTP 通信路径连接到根 PTP 实例,那么它的 stepsRemoved 值为 1。stepsRemoved 的值在最佳主时钟选择和时间同步树的构建中起着重要作用,用于确定 PTP 端口的状态(如 MasterPort、SlavePort 或 PassivePort)。
      8. timeSource:该字段表示发送该 Announce 消息的 PTP 实例的时间源信息。时间源的类型由 TimeSource 枚举定义,可能包括 ATOMIC_CLOCK(基于原子共振的频率和国际标准校准的时钟)、GPS(全球定位系统或类似的卫星导航系统)、TERRESTRIAL_RADIO(基于地面无线电分发系统的时间源)、PTP(基于外部 IEEE 1588 PTP 源的时间)、NTP(网络时间协议)、HAND_SET(通过人工观察国际标准源设置时间的方式)和 INTERNAL_OSCILLATOR(基于内部自由运行振荡器且未基于原子共振或未校准到国际标准的时钟)等。
      9. path trace TLV:该字段是一个可选的路径跟踪 TLV(Type - Length - Value)。它包含了 tlvType(类型,值为 0x8,表示路径跟踪 TLV)、lengthField(长度域,值为 8N,其中 N 是路径序列数组中元素的个数)和 pathSequence(路径序列,是一个 ClockIdentity 数组,记录了 Announce 消息经过的 PTP 实例的时钟标识)等字段。通过这个 TLV,可以跟踪 Announce 消息在 PTP 网络中的传播路径,有助于检测和避免环路等问题。

      总的来说,Announce 消息中的这些字段提供了关于发送该消息的 PTP 实例、Grandmaster PTP 实例以及时间同步相关的重要信息,这些信息在 PTP 网络的最佳主时钟选择和时间同步过程中起着关键作用
  2. Signaling 消息格式:
    • 主体字段:如 Table 10 - 13 所示,包含 header、targetPortIdentity、message interval request TLV、gPTP - capable TLV 或 gPTP - capable message interval request TLV 等字段。
    • 消息间隔请求 TLV:定义在 10.6.4.3,包含 tlvType、lengthField、organizationId、organizationSubType、logLinkDelayInterval、logTimeSyncInterval、logAnnounceInterval、flags 和 reserved 等字段。
    • gPTP - capable TLV:定义在 10.6.4.4,包含 tlvType、lengthField、organizationId、organizationSubType、logGptpCapableMessageInterval 和 flags 等字段。
    • gPTP - capable 消息间隔请求 TLV:定义在 10.6.4.5,包含 tlvType、lengthField、organizationId、organizationSubType、logGptpCapableMessageInterval 和 reserved 等字段。

 此外,文档还规定了消息中各字段的具体含义、取值范围以及相关的

 

posted @   猛男撒娇  阅读(296)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示