虹科干货 | 适用于基于FPGA的网络设备的IEEE 1588透明时钟架构

导读:在基于FPGA的网络设备中,精确的时间同步至关重要。IEEE 1588标准定义的精确时间协议(PTP)为网络中的设备提供了纳秒级的时间同步。本文将介绍虹科提供的适用于基于FPGA的网络设备的IEEE 1588透明时钟(TC)架构,帮助您实现精确时间同步和高效通信。

在分布式系统中,传感器/执行器的事件和操作需要进行精确的时间协调,因为时钟差异可能导致操作失败。为了确保时间同步,每个组件都需要具备与其对等组件一致的实时时钟,这需要时间同步的常识。

随着电信网络从传统的时分复用 (TDM) 发展到基于分组的网络,额外的同步协议已成为必要。因此,近几十年来开发了多种同步技术,如 IRIG-B、LORAN-C、NTP、基于GPS的同步和SyncE。然而,它们不适合需要精确时间且成本较低的应用领域。

通过精确时间协议 (PTP),能够以最少的网络、计算和硬件资源需求达到亚微秒精度。鉴于此,IEEE 1588标准中定义的PTP正在成为许多需要精确时间同步的应用的最可行的解决方案。虹科推出用于可重新配置设备的IEEE 1588透明时钟 (TC) 可扩展架构,该逻辑解决了PTP实现的主要缺点之一,即级联拓扑中的错误累积

PTP操作过程

1、PTP操作类型

PTP操作可分为两个过程:时间同步和频率同步;

时间同步(或偏移调整):偏移量计算为主从时间之差;

频率同步(或频率调整):频率漂移为在两个N间隔的同步消息之间传递的从机时间差和主机时间差之间的比率。

图1. 延迟请求响应机制

2、延迟测量

PTP消息中发送的时间戳必须通过传播延迟进行纠正,传播延迟可以使用标准中定义的两种机制之一进行测量:延迟请求响应机制或对等延迟机制。

3、PTP时钟设备

PTP系统由PTP和非PTP设备的组合组成。PTP设备分为普通时钟(OC)、边界时钟(BC)、透明时钟(TC)和管理节点(MN)。

图2. PTP网络示意图

图2展示了一个简单PTP网络:OC是包含PTP时钟和单个物理网络连接的系统终端设备,而BC是具有多个物理端口的网络设备,它们不转发PTP接收到的消息,而是与主站同步并生成新的PTP消息以与其余从站共享其自己的定时参考。

TC有两种类型:端到端(E2E)TC和点对点(P2P)TC,它们也是网络设备。一方面,E2E TC像正常网络节点一样转发所有PTP和非PTP消息,此外,它们测量消息穿越TC所需的时间,称为驻留时间,并将其累积在PTP 中称为 CorrectionField的特殊字段。另一方面,P2P TC使用对等延迟机制来测量两个直接连接的端口(链路对等点)之间的链路延迟,并使用与Sync消息的入口传输路径相关的驻留时间和链路延迟来更新CorrectionField ,允许在网络拓扑更改后更快地重新配置。

此外,每个PTP设备可以作为一步或两步模式工作:一步时钟根据同步和延迟请求事件消息实时生成时间戳,而两步时钟则根据Follow Up和Delay Resp一般消息。

4、PTP执行

硬件与软件实现:PTP环境提供不同的可能时间戳点,如图3所示。结果的精度取决于时间戳的精度 。一方面,在网络接口卡 (NIC) 驱动程序或应用程序层中获取时间戳的纯软件解决方案具有平台独立性的优势,但会经历通过协议栈的消息传输延迟的巨大变化(也称为抖动)。驱动程序级别的时间戳是最佳软件解决方案,但需要修改网络驱动程序。

图3. 可能的时间戳点

另一方面,在硬件辅助方法中,时间戳是在介质独立接口(MII)处获取的。带有时间戳的消息越接近物理层,所达到的准确性就越好。由于硬件的帮助,使用IP内核和现场可编程门阵列 (FPGA) 已成为最精确和准确的时间戳方法。

其他实现方面:不同供应商的PTP IP核往往具有相似的架构。他们通常使用软CPU,例如Xilinx FPGA 中的Microblaze,包含用户应用程序和PTP堆栈软件,并在同一FPGA中构建完整的SoC解决方案。这些IP核通常由至少两个称为实时时钟 (RTC) 和时间戳单元 (TSU) 的硬件模块组成。RTC通常是一个64位计数器,表示秒和纳秒,并且可以通过更改内核的某些配置寄存器的值进行调整。TSU负责存储有关帧的信息,例如序列 ID、消息类型或时钟标识,以及时间戳信息。

基于FPGA的TC架构

1、实时时钟(RTC)

名为RTC的块代表可选的同步时钟源,例如,它可以是 IEEE 1588或GPS时钟。RTC 可以由一个计数器形成,该计数器在每个时钟周期按系统时钟周期递增。

2、循环冗余校验 (CRC) 检查器/发生器

CRC检查器模块检查接收到的以太网帧的帧校验序列(FCS)字段,以便检测传输过程中损坏的数据(由 于数据丢失或更改而导致的错误)。另一方面,CRC生成器模块重新生成新的FCS字段并将其附加在帧末尾,如IEEE 802.3标准中所定义。

3、On-The-Fly (OTF) 更正

OTF Correction的模块负责将相应的驻留时间动态添加到PTPv2事件数据包的CorrectionField字段中,如IEEE 1588-2008中针对单步TC的定义。也就是说,它不会等到接收到整个PTP消息才计算停留时间并将其添加到CorrectionField中。相反,一旦知道传入消息的CorrectionField,就会尽快将停留时间添加到其中。

4、驻留时间桥

该模块计算自PTP帧进入和离开TC以来经过的时间。每个消息的停留时间值被向下传递到OTF校正模块。由于入口时间戳临时存储在存储器中,并且计算的停留时间被传递到负责更新CorrectionField的模块。

图4. 驻留时间桥框图

5、实验结果

图5. 左侧为CorrectionField和测量延迟样本之间的比较;右侧为停留时间出现的频率

通过复制必要的模块,该设计可以轻松扩展到两个以上的端口:除了新的OTF校正器之外,每个新端口还应将两个额外的WB Master 0和WB Master 1子模块集成到驻留时间桥中,CRC检查器和CRC生成器连接到每个新的出口端口。在资源利用方面,每个额外端口的空间需求比较少数的Slices Registers和LUTs。不需要复制WB Slave 0,但必须调整CAM/RAM存储器的大小以应对PTP流量并在拥塞条件下正确执行。

虹科 IEEE 1588 IP 核方案

虹科IEEE1588v2兼容时钟同步IP内核,它能够准确地为IEEE 1588报文打上时间戳,并提供兼容的计时器,广泛应用于汽车、工业、广播和航空航天等行业。其能够提供许多应用所需的精确时间同步,而不需要任何新的基础设施。
TC应在级联拓扑中使用,其中网络设备拥塞状况导致的延迟可能会影响协议性能。所提出的TC架构是以简单的方式开发具有TC功能的以太网交换机的可行解决方案,具有完全的可扩展性和最小的资源利用率。由于块RAM是利用率最高的资源,并且它们直接取决于CAM和RAM大小,因此应在实现过程中优化这两个元素。如需进一步了解虹科IEEE 1588 PTP IP核解决方案,欢迎随时联系我们。

了解虹科工业通讯更多资讯,欢迎前往【虹科智能互联】官方网站:https://www.hoautom.com/precisetimebasic-ieee-1588-2008-v2-ptp-ip-core/?from=industrynews 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/187751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

#HarmonyOS:软件安装window和mac预览Hello World

Window软件地址 https://developer.harmonyos.com/cn/develop/deveco-studio#download 安装的建议 这个界面这样选,其他界面全部按照默认路径往下走!!! 等待安装… 安装环境错误处理 一般就是本地node配置异常导致&#xff…

ubuntu22下使用nvidia 2080T显卡部署pytorch

1.直接到NVIDA官网下载相应的驱动,然后安装官方驱动 | NVIDIA 2.下载相应版本cuda,并安装,安装时不安装驱动 3.conda install pytorch2.1.0 torchvision0.16.0 torchaudio2.1.0 pytorch-cuda12.1 -c pytorch -c nvidia 安装pytorch。 安装…

centOS使用docker部署ElasticSearch和Kibana

一、docker部署ElasticSearch 1、创建网桥 docker network create xybnet 2、下载镜像 docker pull elasticsearch:8.2.0 3、先运行容器 docker run -d \ --name es \ --net xybnet \ -p 9200:9200 \ -p 9300:9300 \ -p 5601:5601 \ -e "discovery.typesing…

Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 构建可移植的计算机视觉环境 文章目录 前言引言简介:目的和重要性: 深入理解Docker和OpenCVDocker的基本概念和优势:OpenCV简介和应用领域:…

直播平台的选择

在选择直播平台时,可以根据自己的需求和目标进行决策。以下是一些常见的直播平台及其特点: 1.抖音/快手 这两个平台是短视频内容平台,商家或创作者可以在平台上发布自己的内容,打造人设,吸引粉丝。在直播间中,粉丝可…

VMware Linux(Centos)虚拟机扩容根目录磁盘空间

给VMWare虚拟机根目录扩容,简单有效!_迷倒万千少女的Csir的博客-CSDN博客 https://blog.csdn.net/m0_64206944/article/details/131453844?spm1001.2014.3001.5506 上述链接融合参考下面文章 VMware Linux(Centos)虚拟机扩容根目录磁盘空间 centosli…

Docker 容器日志查看和清理

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

在零信任架构下的API安全与滥用防护(下)

防御API滥用的策略 在零信任架构下,防御API滥用的策略是构建强健安全防线的关键一环。策略的制定应基于对API攻击深层次的理解,以及对大量API相关数据的分析和利用,这些都是识别和预防API滥用的重要手段。 扩展对API攻击的理解 API安全不仅…

Mac电脑Flutter环境搭建及运行

此文章借鉴参考此博客:https://blog.csdn.net/ws1836300/article/details/130766889 注意: *下载xcode 就包含git了, *苹果芯片和intel 芯片需要的环境不同,苹果芯片需要安装: Important: If you’re installing on an Apple Sili…

SAP BW层级结构小结属性数据源+专家例程实现层级结构增强加载

作者 idan lian 如需转载备注出处 BW信息对象-层级结构 RSH1 维护信息对象层级 这里的文本描述对应T表中的描述,文本数据源加载之后有数据 信息对象层级H表 以上描述都是根据自我理解翻译的,非官方翻译 层级标识:自动生成,其实…

AUTOSAR OS任务调度的底层逻辑

先参考 FreeRTOS的任务触发底层逻辑 简述RTOS任务调度底层逻辑 AUTOSAR-OS的调度机制-调度表(没理解透,继续更新) OSEK与FreeRTOS在任务调度上最大的区别在于,FreeRTOS是基于全抢占任务调度和时间片轮转调度机制,具有…

设计师必看!揭秘顶级外卖平台APP背后的设计原则

在数字化和移动互联网盛行的今天,外卖平台APP已经成为我们生活中的重要组成部分。作为设计师,你是否也曾思考过如何通过设计优化用户体验,提升品牌形象,甚至直接推动业务增长?今天,我们将向你揭示顶级外卖平…

使用opencv实现图片相似度检测

1.为什么学这个,我对图像处理非常感兴趣,我联想到海尔的指纹识别门锁是如何进行检测的,我在想不应该呀,单片机性能这么差,应该是使用了训练后的数据去检测图片的,如果我要实现草莓检测,知道它是不是草莓,我觉得单纯使用图片处理是不够的,我考虑过使用指纹模块来接触草莓从而实现…

AI - Crowd Simulation(集群模拟)

类似鱼群,鸟群这种群体运动模拟。 是Microscopic Models 微观模型,定义每一个个体的行为,然后合在一起。 主要是根据一定范围内族群其他对象的运动状态决定自己的运动状态 Cohesion 保证个体不会脱离群体 求物体一定半径范围内的其他临近物…

【计算机组成原理】指令系统

🎄欢迎来到边境矢梦的csdn博文🎄 🎄本文主要梳理计算机组成原理中 指令系统的知识点和值得注意的地方 🎄 🌈我是边境矢梦,一个正在为秋招和算法竞赛做准备的学生🌈 🎆喜欢的朋友可以…

vue 提交表单重复点击,重复提交防抖问题

问题:用户点击保存时,可能会多次点击。导致生成重复数据。 目标:多次点击时,1s内只允许提交一次数据。 解决方案: 1.在utils文件夹创建文件preventReClick.js export default {install (Vue) {// 防止按钮重复点击V…

10个顶级Linux开源反向代理服务器 - 解析与导航

反向代理服务器是一种部署在客户端和后端/源服务器之间的代理服务器,例如 NGINX、Apache 等 HTTP 服务器或用 Nodejs、Python、Java、Ruby 编写的应用程序服务器、PHP 和许多其他编程语言。 它是一个网关或中间服务器,它接受客户端请求,将其传…

2023.11.27 使用anoconda搭建tensorflow环境

2023.11.27 使用anoconda搭建tensorflow环境 提供一个简便安装tensorflow的方法 1. 首先安装anoconda,安装过程略,注意安装的时候勾选安装anoconda prompt 2. 进入anoconda prompt 3. 建立python版本 conda create -n tensorflow1 python3.84. 激活t…

勒索解密后oracle无法启动故障处理----惜分飞

客户linux平台被勒索病毒加密,其中有oracle数据库.客户联系黑客进行解密【勒索解密oracle失败】,但是数据库无法正常启动,dbv检查数据库文件报错 [oraclehisdb ~]$ dbv filesystem01.dbf DBVERIFY: Release 11.2.0.1.0 - Production on 星期一 11月 27 21:49:17 2023 Copyrig…

如何在服务器上运行python文件

目录 前置准备 详细步骤 一,在服务器安装Anaconda 下载安装包 上传文件到服务器 安装环境 二,创建虚拟环境 创建环境 三,测试执行python文件 执行python文件 查看进程状态 总结 前置准备 如何在个人服务器上运行python文件&#x…