我的任务是使用 PTP(精确时间协议,IEEE 1588)时间源同步记录来自 PLC 的数据的时间关键过程。
快速浏览一下可用的库,除了基于 IVI-C 和 IVI-COM 的实现之外什么都没有。
是否有我错过的支持 PTP 的托管库,或者我是否需要找到一种方法来在我的应用程序中使用为 LabVIEW 设计的 IVI-COM 库?
我从这个网站 http://code.google.com/p/ptpv2d/wiki/Introduction得到了以下答案,我对 ptpv2d 有了一个清晰的认识,希望你也能得到关于这个的明确信息。
请也参考这个http://code.google.com/p/ptpv2d/
ptpv2d 是 GPL 许可的 IEEE 1588 版本 1、版本 2 和 IEEE 802.1AS 的开源代码,包括飞思卡尔 MPC831x 系列处理器的硬件时间戳。
ptpv2d 是一种精确时间协议,具有以下特性:
- 在标准 LINUX 下运行的用户模式应用程序,采用模块化设计,可确保轻松移植到其他操作系统。
- 广泛的可选打印到控制台调试消息功能。可以在编译时添加或省略此消息功能。如果包含它,则输出级别是命令行可选的。调试消息采用统一格式,以便更快、更轻松地进行分析。POSIX 套接字调用用于检索所有消息。消息处理包含在一个单独的模块中,以确保轻松移植到任何所需的操作系统。
- 飞思卡尔 MPC8313E 以太网端口驱动程序,完全支持 PTP 版本 1 和版本 2 消息硬件时间戳。
- 能够非常精确地调整硬件时钟(精确到十亿分之一)。对硬件时钟进行精细(小至十亿分之一)调整的软件算法。
- 能够以百万分之几报告检测到的与大师时钟的差异
- 命令行能够设置四种不同的调试输出级别:无、基本、详细和消息 7。能够设置小于一秒的同步/后续传输时间值。这允许每秒进行多次同步/跟踪,从而提高了“从属”系统到“大师”系统的准确性和跟踪。
- 其他运行时选项和支持代码包括:
- 选择 PTP 版本 1 或版本 2 封装和协议 10.选择 IEEE 1588 PTP over IPv4/UDP、IEEE P1588 PTP over Ethernet(草案 2.2)或 IEEE P802.1AS 封装和协议(草案 1.0) 用户指定的时钟周期进行综合其他基本时钟,而不仅仅是 10 MHz。
这些功能已经使用运行 PTP 和 Ping 流量的双 MPC8313E-RDB 板进行了广泛的测试。在每秒运行 8 条同步/后续消息的飞思卡尔 MPC8313E-RDB 板上,它将在超过 99.9% 的时间内支持与主设备的正负 50 纳秒偏移。在每秒 128 次同步/跟进时,系统将在“大师”系统的 16 纳秒内同步。
看看http://sourceforge.net/projects/ptpd/
PTP 守护进程 (PTPd) 实现了 IEEE 1588 标准定义的精确时间协议 (PTP)。PTP 的开发旨在为 LAN 连接的计算机提供非常精确的时间协调。
我前段时间创建了一个 IEEE-1588 库。这在一定程度上是困难的,尤其是如果您需要时钟之间的良好同步。好的 ptp 库涉及大量的统计、预测和信号处理。您可以尝试的最好的方法是ptpd - 学习 ptp 的工作原理非常简单,它将为您提供一个良好的开端。