我是靠谱客的博主 想人陪自行车,最近开发中收集的这篇文章主要介绍TSN&ptpd时间同步守护进程TSNptpd守护进程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

转载自
https://blog.csdn.net/zjy900507/article/details/69744473?ops_request_misc=&request_id=&biz_id=102&utm_term=ptpd&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-69744473.142v62pc_search_tree,201v3add_ask,213v1control&spm=1018.2226.3001.4187

TSN

TSN介绍

TSN的任务是确保数据包在一个确定的时间窗口内交付,而不会因为链路拥塞错误而导致丢失或高延迟。这其中很重要的一个环节是能够确保网络中的所有网元(Elements)同步在相同的时间基准。这是通过IEEE-802.1AS中定义的基于数据包的信息传输来实现的,它也被称为gPTP(generalized Precision Time Protocol)。

ptpd守护进程

描述
ptpd守护进程实现IEEE 1588-2008标准定义的精确时间协议(PTP)版本2。PTP的开发目的是为局域网连接的计算机提供非常精确的时间协调。

ptpd avb和ptpd守护程序类似,但ptpd时间更新数据报封装在以太网之上的IP包中(IEEE-1588v2协议规范),而ptpd avb时间更新数据包直接在以太网上(IEEE-802.1AS协议规范)。

PTPd是标准(普通)时钟的IEEE 1588 v2规范的完整实现。PTPd已与其他IEEE 1588实现一起测试,并且已知其能够正常工作。PTPd的源代码在BSD风格许可证下免费提供。得益于用户的贡献,PTPd正在成为一种日益便携、可互操作和稳定的IEEE 1588实现。

  • ptpd, ptpd-avb (qnx.com)
    http://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.neutrino.utilities/topic/p/ptpd.html
    ptpd, ptpd-avb

Precision Time Protocol daemon
精确时间协议守护程序
Runs on:
QNX Neutrino
选项(部分参数如下)
-b name
Bind PTP to the network interface name.
-C
Run in command-line mode, and display statistics and logs.
-g
Run as slave only.
-K
Enable devctl() support. If you specify this option, ptpd and ptpd-avb register /dev/ptpd (DEFAULT_PTPD_PATH, defined in <dcmd_ptpd.h>) in the path namespace; use the DCMD_PTPD_* commands with a file descriptor from opening this path. For more information, see Devctl and Ioctl Commands.
-L
Enable the running of multiple ptpd daemons.
-W
Run as master without NTP.

统计信息日志文件中各列的描述如下:
1 时间戳记 接收到消息的时间。日期和时间信息表示为文本、UNIX 时间戳记(具有小数秒)或者表示为这两种形式(在这种情况下,添加了额外字段),视global:statistics_timestamp_format 设置而定。当您将日志文件导入到绘图软件时,如果该软件能够了解 UNIX 时间,那么将时间戳记格式设置为 unix 或者both,因为某些软件在转换文本中的日期和时间时不会解释秒的小数部分。 2022-10-02 03:36:20.194315
2 状态 端口的状态。 slv
3 时钟标识 按 IEEE 1588 标准定义的当前最佳主控时钟的端口标识。如果本地时钟是最佳主控时钟,那么此标识是本地时钟的标识。此参数显示为 clock_id 或 port(主机)。端口是 PTP 时钟端口号,而不是用户数据报协议 (UDP) 端口号。时钟标识是一个 64 位的扩展唯一标识 (EUI)-64 标识,它从 48 位 MAC 地址转换而来,即,在 MAC 地址的中部插入 0xfffe 而得到时钟标识。 c01850fffec5e2e4(unknown)/01
4 单向延迟 单向延迟(或者平均路径延迟)的当前值(秒),由处于从属状态的 ptpd 守护程序从延迟请求和延迟响应消息交换来计算。注:如果此值保持为零,那么意味着未接收到延迟响应消息,这可能是由于存在网络问题所导致。 0.000011264
5 主控设备中的偏移 主控设备中的当前偏移值(秒)。它是处于从属状态的 PTP 引擎的主要输出。此值是时钟伺服算法中用于时钟校正的输入。通常在评估从属设备的性能时测量此值。 0.000000866
6 从属到主控 从延迟请求和延迟响应消息交换中抽取的中间偏移值(秒)。此值用于计算单向延迟。如果过滤器拒绝了最后一个值,那么前一个值会显示在日志文件中。如果未接收到延迟响应消息,那么此值为零 (0)。 0
7 主控到从属 从同步消息中抽取的中间偏移值(秒)。此值用于计算主控设备中的偏移值。如果过滤器拒绝了最后一个值,那么前一个值会显示在日志文件中。 0.00001211
8 观察到的漂移 从属时钟与主控时钟之间的频差,由时钟控制比例积分 (PI) 伺服模型的积分累加器来测量。当时钟偏移值稳定时,此值便稳定,此值用来检测时钟的稳定性。 -1067
9 接收到的最后一个包 此字段显示最后接收到的消息。对于同步消息,它将显示 S;对于延迟响应消息,它将显示 D。如果从属设备未记录任何 D 条目,那么意味着从属设备由于存在网络问题而未接收到延迟响应消息。 P
单向延迟平均值 针对最后的采样时间段计算的单向延迟平均值。
单向延迟标准差 针对最后的采样时间段计算的单向延迟标准差。
与主控设备平均值的偏移 针对最后的采样时间段计算的与主控设备平均值的偏移。
与主控设备标准差的偏移 针对最后的采样时间段计算的与主控设备标准差的偏移。
观察到的漂移平均值 针对最后的采样时间段计算的观察到的漂移或本地时钟频率调整平均值。
观察到的漂移标准差 “针对最后的采样时间段计算的观察到的漂移或本地时钟频率调整标准差。较小值表明不主动控制时钟。因此,值更稳定。
注:仅当使用 --enable-statistics 标志创建了 ptpd 守护程序时,才会计算和显示所有统计度量值(平均值和标准差)。使用global:statistics_update_interval 设置来控制采样周期的持续时间。”

时间同步报文抓包

以太网帧的结构图
在这里插入图片描述
1588v2(PTP)报文通用格式
PTP通用消息格式PTP General Message Format
在这里插入图片描述
在这里插入图片描述

目标MAC地址 0180C200000E
在这里插入图片描述

源MAC地址 C01850010101
在这里插入图片描述

帧类型
在这里插入图片描述

PayLoad
在这里插入图片描述

messagelength
在这里插入图片描述
Flags
在这里插入图片描述

Correction
在这里插入图片描述

ClockIdentity
在这里插入图片描述

sourcePortID
在这里插入图片描述

最后

以上就是想人陪自行车为你收集整理的TSN&ptpd时间同步守护进程TSNptpd守护进程的全部内容,希望文章能够帮你解决TSN&ptpd时间同步守护进程TSNptpd守护进程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部