0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux ptp4l程序实现PTP边界时钟和普通时钟

广州虹科电子科技有限公司 来源:广州虹科电子科技有限公 作者:广州虹科电子科技 2021-09-05 11:27 次阅读

精确时间协议(PTP)是用于在网络中进行时钟同步的协议。当与硬件支持结合使用时, PTP 能够达到亚微秒的精度,这远好于通常使用的 NTP 。 PTP 支持分为内核空间和用户空间。该协议的实际实现称为linuxptp,它是 PTPv2 根据 Linux 的 IEEE 标准 1588 实现的。所述linuxptp包包括ptp4l和phc2sys用于时钟同步的程序。该ptp4l程序实现了 PTP 边界时钟和普通时钟。硬件时间戳用于将 PTP 硬件时钟与主时钟同步,软件时间戳用于将系统时钟与主时钟同步。

认识PTP

同步的时钟按 PTP 按照主从层次结构组织。从站与它们的主站同步,而主站可能是他们自己的主站的从站。层次结构由最佳主时钟( BMC ) 算法自动创建和更新,该算法在每个时钟上运行。当一个时钟仅具有一个端口,它可以是主或从属,这样的时钟被称为普通时钟(OC)。具有多个端口的时钟可以在一个端口上作为主时钟,在另一个端口上作为从时钟,这样的时钟称为边界时钟 ( BC )。顶级master被称为grandmaster 时钟,可以使用全球定位系统( GPS ) 时间源进行同步。通过使用基于 GPS 的时间源,可以高度准确地同步不同的网络。

PTP的优势

PTP 与网络时间协议( NTP ) 相比的主要优势之一是各种网络接口控制器( NIC ) 和网络交换机中需要硬件时间戳支持。这种专用硬件可以 PTP 解决消息传输中的延迟,并大大提高时间同步的准确性。虽然可以在网络中使用不支持 PTP 的硬件设备(如不支持PTP的交换机),但这通常会导致抖动增加或在延迟中引入不对称性,从而导致同步不准确。为获得尽可能高的准确性,建议将所有网络设备之间的 PTP 时钟的 PTP 硬件是启用的。并非所有网络硬件都支持 PTP 。大型网络中的时间同步可能更适合 NTP。在硬件 PTP 支持下,NIC 拥有自己的板载时钟,用于为接收和传输的 PTP 消息添加时间戳。正是这个板载时钟与 PTP 主机同步,计算机的系统时钟 PTP 与网卡上的硬件时钟同步。在软件 PTP 支持下,系统时钟用于对 PTP 消息打时间戳,并直接与主站同步。硬件 PTP 支持提供了更高的准确性,因为 NIC 可以在PTP 数据包发送和接收的确切时刻标记数据包,而软件 PTP 支持需要 PTP 操作系统对数据包进行额外处理。

实践1-检查硬件时间戳

为了使用 PTP ,网络接口的内核网络驱动程序必须支持软件或硬件时间戳功能。除了驱动程序中存在的硬件时间戳支持之外,NIC 还必须能够在物理硬件中支持此功能。验证特定驱动程序和 NIC 的时间戳功能的最佳方法是使用ethtool查询接口,如下所示:

~]# ethtool -T eth3Time stamping parameters for eth3:Capabilities: hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) software-system-clock (SOF_TIMESTAMPING_SOFTWARE) hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)PTP Hardware Clock: 0Hardware Transmit Timestamp Modes: off (HWTSTAMP_TX_OFF) on (HWTSTAMP_TX_ON)Hardware Receive Filter Modes: none (HWTSTAMP_FILTER_NONE) all (HWTSTAMP_FILTER_ALL)

其中eth3是您要检查的接口。对于软件时间戳支持,参数列表应包括:

SOF_TIMESTAMPING_SOFTWARE SOF_TIMESTAMPING_TX_SOFTWARE SOF_TIMESTAMPING_RX_SOFTWARE

对于硬件时间戳支持,参数列表应包括:

SOF_TIMESTAMPING_RAW_HARDWARE SOF_TIMESTAMPING_TX_HARDWARE SOF_TIMESTAMPING_RX_HARDWARE

实践2-安装linuxptp

yum安装

sudo yum install linuxptp

apt-get安装

sudo apt-get install linuxptp

git安装

sudo git clone git://git.code.sf.net/p/linuxptp/code linuxptp cd linuxptp sudo make sudo make install

测试:

~]# ptp4l -h usage: ptp4l [options] Delay Mechanism -A Auto, starting with E2E -E E2E, delay request-response (default) -P P2P, peer delay mechanism 。..

实践3-运行程序

硬件时间戳,主从模式测试主时钟:

sudo ptp4l -i enp0s31f6 -m –H

从时钟:

sudo ptp4l -i eno1 -m -H –s

运行结果,从钟:

主偏移值是以纳秒为单位测量的主偏移。的 s0 , s1 , s2 串表示不同的时钟伺服状态:s0 被解锁,s1 是时钟步骤和 s2 被锁定。一旦伺服处于锁定状态( s2 ),除非 pi_offset_const 在配置文件中将该选项设置为正值,否则时钟将不会步进(仅缓慢调整)。该 freq 值是时钟的频率调整,以十亿分之一 (ppb) 为单位。路径延迟值是从主站发送的同步消息的估计延迟(以纳秒为单位)。端口 0 是用于本地 PTP 管理的 Unix 域套接字。端口 1 是 eth3 接口。 INITIALIZING、LISTENING、UNCALIBRATED 和 SLAVE 是一些可能的端口状态,它们会在 INITIALIZE、RS_SLAVE、MASTER_CLOCK_SELECTED 事件上发生变化。在最后一个状态更改消息中,端口状态从UNCALIBRATED 更改为 SLAVE,表明与 PTP 主时钟成功同步。

在新的工业 4.0 理念正在改变技术格局的世界中,提出了更高的时间同步要求。虹科 & ELPROMA 提供世界领先的时间同步解决方案。ELPROMA(1992年起)提供先进的NTP PTP / IEEE1588时间服务器,用来确保从时钟高度稳定和准确。

高可用性支持(HA)

两路冗余天线

便捷式型号可选

MTBF 391000 小时

支持NTP/PTP/IRIG/1PPS+ToD

电信,电力等多行业PTP标准支持

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15239

    浏览量

    171243
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206745
  • PTP
    PTP
    +关注

    关注

    0

    文章

    43

    浏览量

    8464

原文标题:【虹科】Linux PTP 高精度时间同步实践

文章出处:【微信号:Hongketeam,微信公众号:广州虹科电子科技有限公司】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    stm32f4xx_hal_eth.c文件不支持PTP协议怎么解决?

    最近在用stm32f407调试ptp,但是stm32f4xx_hal_eth.c文件中没有操作以太网时间戳寄存器的函数,看到文件头部说明本文件不支持PTP协议,请各位大神帮助,怎么解决这个问题!谢谢了!
    发表于 04-19 08:21

    如何在STM32MP157C DK2上实现管脚输出PTP的PPS信号?

    的步骤如何? 例如设置一个STM32MP157C 为master,另一个STM32MP157C 为slave , 进行网络时钟同步。 可以安装运行PTP4L这样的程序吗? 另外如何在 STM32MP157C DK2 上
    发表于 04-11 07:18

    如何实现PTP协议的精准同步时钟

    尊敬的技术大牛们,你们好! 现有一项目需要用到贵公司的STM32F4系列产品,由于业务场景对时钟同步精度要求很高。所以需寻求你们的技术支撑,提供关于STM32F4系列的PTP协议或IE
    发表于 03-26 07:57

    如何利用PTP协议实现一主多从网络时间同步?

    在开发项目中用到了PTP时钟同步协议,遇到一些问题,希望得到帮助: 1,所有设备使用了:XMC_ETH_MAC_InitPTPEx(ETH_LWIP_0.eth_mac,config, txTime
    发表于 03-12 06:53

    虹科技术|PTP时钟源设备全攻略:从普通时钟到透明时钟的进阶之路

    导读:在现代通信技术中,精确时间同步对于保障网络性能至关重要。PTP(Precision Time Protocol)时钟源设备作为实现高精度时间同步的关键组件,其配置和选择对于网络架构师和工程师
    的头像 发表于 02-26 16:19 183次阅读
    虹科技术|<b class='flag-5'>PTP</b><b class='flag-5'>时钟</b>源设备全攻略:从<b class='flag-5'>普通</b><b class='flag-5'>时钟</b>到透明<b class='flag-5'>时钟</b>的进阶之路

    PTP时钟源设备全攻略:从普通时钟到透明时钟的进阶之路

    在现代通信技术中,精确时间同步对于保障网络性能至关重要。PTP(PrecisionTimeProtocol)时钟源设备作为实现高精度时间同步的关键组件,其配置和选择对于网络架构师和工程师来说至关重要
    的头像 发表于 02-22 08:04 262次阅读
    <b class='flag-5'>PTP</b><b class='flag-5'>时钟</b>源设备全攻略:从<b class='flag-5'>普通</b><b class='flag-5'>时钟</b>到透明<b class='flag-5'>时钟</b>的进阶之路

    RK3568-基于PTP时钟同步测试手册

    RK3568-基于PTP时钟同步测试手册
    的头像 发表于 01-19 16:20 796次阅读
    RK3568-基于<b class='flag-5'>PTP</b>的<b class='flag-5'>时钟</b>同步测试手册

    使用BF518的PTP模块时,如何设置可以输出PPS?

    我在使用BF518的PTP模块时,想设置PPS的输出,我已经根据硬件参考手册设置了EMAC_PTP_PPS_STARTHI,EMAC_PTP
    发表于 01-12 07:35

    一种实现多通道无压缩IP流PTP时钟精准校时分析的方法

    PTP(Precision Time Protocol,精确时间协议)是一种时间同步的协议,由IEEE 1588-2008定义,通过在主时钟和从时钟之间交换信息来工作,用于精确同步分布式网络通信中各个节点的实时
    的头像 发表于 12-04 14:10 605次阅读
    一种<b class='flag-5'>实现</b>多通道无压缩IP流<b class='flag-5'>PTP</b><b class='flag-5'>时钟</b>精准校时分析的方法

    基于NXP iMX8系列处理器的TSN网络时钟同步测试

    PTP 协议是一种精确的时间同步协议,IEEE 1588 标准为时钟分配定义了一个主从式架构,由一个或多个网段及一个或多个时钟组成。在局域网中能将时间同步精度控制在亚微秒级。
    的头像 发表于 12-01 16:02 505次阅读
    基于NXP iMX8系列处理器的TSN网络<b class='flag-5'>时钟</b>同步测试

    Linux内核时钟系统和定时器实现

    Linux内核时钟系统和定时器实现 Linux 2.6.16之前,内核只支持低精度时钟,内核定时器的工作方式: 系统启动后,会读取
    的头像 发表于 11-09 09:12 589次阅读
    <b class='flag-5'>Linux</b>内核<b class='flag-5'>时钟</b>系统和定时器<b class='flag-5'>实现</b>

    Xilinx:关于PTP精度的最佳平台

    电子发烧友网站提供《Xilinx:关于PTP精度的最佳平台.pdf》资料免费下载
    发表于 09-13 09:28 0次下载
    Xilinx:关于<b class='flag-5'>PTP</b>精度的最佳平台

    用于 Linux 管理 API 手册的 PTP 时钟管理器

    用于 Linux 管理 API 手册的 PTP 时钟管理器
    发表于 07-04 18:31 0次下载
    用于 <b class='flag-5'>Linux</b> 管理 API 手册的 <b class='flag-5'>PTP</b> <b class='flag-5'>时钟</b>管理器

    Linux PTP 使用 PHC Adjust Phase 快速入门手册

    Linux PTP 使用 PHC Adjust Phase 快速入门手册
    发表于 07-03 20:32 1次下载
    <b class='flag-5'>Linux</b> <b class='flag-5'>PTP</b> 使用 PHC Adjust Phase 快速入门手册

    PTP Clock Manager for Linux Message Log 手册

    PTP Clock Manager for Linux Message Log 手册
    发表于 07-03 20:29 2次下载
    <b class='flag-5'>PTP</b> Clock Manager for <b class='flag-5'>Linux</b> Message Log 手册