gPTP简介

1、gPTP(generalized precision time protocol)广义时钟同步协议       

 gPTP(generalized precision time protocol)广义时钟同步协议,即IEEE 802.1AS协议。它是IEEE 1588协议的延伸,可以为TSN提供全局精准的时间服务,用以实现TSN标准组中的流同步功能。

        该协议旨在让AVB网络中所有的节点与一个共同的参考时间同步,要求间隔不超过7个AVB节点的两个终端节点之间的时间误差不能超过500ns。其大体的作用逻辑是,利用BMCA算法在网络中选择一个最佳的节点作为主时钟(或者预先内定一个),并建立主时钟树;然后利用对等路径时延测量机制,计算主从时钟端口间的误差来进行同步。

        gPTP定义设备工作在OSI模型中的MAC子层(属于数据链路层),离物理层仅一步之遥的距离即可以减少协议栈缓存带来的延时不确定性,又可以缩短报文的传输时间。该协议规定了两种设备类型:Time-aware-end Station以及Time-aware Bridge。

        Time-aware-end Station:可以理解为gPTP的工作节点,可以作为主时钟,也可以作为从时钟。

        Time-aware Bridge:一种网桥,仅可以作为主时钟。同时,TSN交换机中,其具备最多一个从时钟端口,也可以被外部祖时钟同步。gPTP报文在进入网桥后会有一个处理时间,称为驻留时间了,协议要求该网桥必须具备测量驻留时间的能力。

        上述的两种设备都具有本地时钟,本都是通过晶振的振荡周期进行度量并由设备内部硬件计数器负责对振荡周期进行计数。

        网络中,发布时间同步报文的网络端口称为主端口,接收时间同步报文的端口称为从端口。

        主时钟是整个系统中的时间基准,这就要求它具有更高的时间精度,需要能被更高精度的时钟授时,比如原子钟和卫星。主时钟的分配可以分为动态分配和静态分配两种。对于汽车而言,其网络的组成一般是稳定的,可以采用静态的预分配来确定主时钟。对于网络组成部分会动态变化的系统,一般采用BMCA算法(Best Master Clock Algorithm,最佳主时钟选择算法)进行分配。而在gPTP Automotive里面,BMCA是被禁止的,应该有确定的主时钟和从时钟关系定位。

2、gPTP报文分类

        gPTP协议中的报文被划分成为了报文级别(Message Class)和报文种类(Message Type)两个属性,其中报文级别的具体划分如下

  • 事件型报文(Event Massage):这类报文的特点是设备在接收或发送事件类报文时,会对硬件计数器进行采样,将震荡周期计数值和时钟震荡频率以及基准时间相结合,生成一个时间戳。
  • 通用型报文(General Massage):这类报文在设备接受或者发送时,不会触发硬件对硬件技术器的采样,不会生成时间戳。

报文种类的划分以及对应的取值如下:

报文类型对应的报文等级以及取值 

Massage Type

Message Class

Value

Sync

Event

0x0

Pdelay_Req

Event

0x2

Pdelay_Resp

Event

0x3

Announce

General

0xB

Signaling

General

0xC

Follow_UP

General

0x8

Pdelay_Resp_Follow_UP

General

0xA

需要特别说明的是

  • Announce报文是在主时钟分配中启用,包含最佳主时钟的运算时间
  • Signaling报文主要用来传递信息、请求或者控制指令

3、报头定义

gPTP可以看作PTP的特定配置文件,所以这里的报头可以直接用PTP的。

PTP报头定义中各字段的含义如下:

 

字段

含义

作用

取值

transportSpecific

传输协议

标识所用的传输规范

0x1

messageType

报文类型

标识报文类型

参考报文类型表格

versionPTP

PTP协议版本

标识对应的IEEE 1588版本

0x2

messageLength

报文长度

标识整个PTP的报头长度

/

domainNumber

域编号

标识该报文所属的时钟域

/

flags

标志域

对特殊报文的特殊取值有不同作用

参考IEEE 802.1AS Table10-6

correctionField

修正域

各报文都有,用于Sync报文和补偿传输时延

0x0

sourcePortIdentity

源端口标识符

标识发送该报文的时钟ID和端口号

/

sequenceId

序列号

标识消息的序列号

/

control

控制域

/

0x5

logMessageInterval

录入消息周期

PTP消息的发送时间

不同报文类型的取值不同

我们的模拟环境一般使用Linux系统搭建环境,下面是与Linux系统相关的ptp指令

安装ethtool: sudo apt-get install ethtool

查询网卡是否支持ptp硬件时钟:ethtool –T eno1

安装linux ptp:sudo apt-get install linuxptp

执行ptp4l 从时钟:ptp4l –H –m –i eno1 -s -2 –P

执行ptp4l 主时钟:ptp4l –H –m –i eno1 -2 –P

带配置文件执行ptp4l:ptp4l –H –m –i eno1–f xxx_profile.cfg

HDN-VDO官网请访问这里icon-default.png?t=N7T8http://www.hdn-vdo.com/

相关推荐

  1. 简单GPT的Transformer架构

    2024-03-19 11:08:02       54 阅读
  2. 使用GPT实现一个简单的网站

    2024-03-19 11:08:02       51 阅读
  3. 最新版GPT-4.5-Turbo简单介绍

    2024-03-19 11:08:02       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-19 11:08:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-19 11:08:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-19 11:08:02       82 阅读
  4. Python语言-面向对象

    2024-03-19 11:08:02       91 阅读

热门阅读

  1. node后端helmet中间件

    2024-03-19 11:08:02       40 阅读
  2. win git filter-repo教程

    2024-03-19 11:08:02       40 阅读
  3. Vim替换时区分大小写

    2024-03-19 11:08:02       39 阅读
  4. word 及PPT 中修改公式字体

    2024-03-19 11:08:02       37 阅读
  5. Spring MVC中redirect重定向几种方式(重构)

    2024-03-19 11:08:02       45 阅读
  6. 【Git】012-Git 仓库初始化

    2024-03-19 11:08:02       33 阅读
  7. 项目域名协议https,访问接口链接协议http

    2024-03-19 11:08:02       36 阅读
  8. Go语言: 基础总结

    2024-03-19 11:08:02       40 阅读
  9. 举例说明自然语言处理(NLP)技术

    2024-03-19 11:08:02       39 阅读