如何实现IEEE1588 高精度时间同步

Posted 姚家湾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现IEEE1588 高精度时间同步相关的知识,希望对你有一定的参考价值。

        化了两周的时间在STM32H750 art Pi 板上实现了RT Thread OS 下的IEEE1588 /PTP 协议。初步的测试表明:在使用linux PTP 使用软件时间戳的条件下diff 大约在200ppm 以内。如果使用硬件的时间戳,可能会好一点,遗憾的是我家里的两台PC 兼容机在ubuntu OS下ethtool 检测都只是支持软件时间戳。自己感觉使用STM32 内部的IEEE1588 控制器和外接带有IEEE1588 Phy 器件的方案可能不会有太大的区别。对于时间同步要求高的场合,需要考虑下面两点:

   1 PTP Master Clock 要使用更加稳定的时钟源,比如北斗,GPS 时钟。

   2 PTP Slave Clock 设备需要使用稳定的时钟振荡器。比如恒温晶体振荡器(OCXO),温度控制晶体振荡器(TCXO)。另一方面要使用性能良好的数字锁相电路来实现。

Silicon lab 公司提供这一类时钟同步芯片和模块产品。

      据Siliconlab 公司介绍,它们的技术能够满足3GPP +/- 1.5us 的需要。而linux PTP 协议达不到这个精度要求。

不过将IEEE PTP 做成一个模块,的确是一个好主意。

以上是关于如何实现IEEE1588 高精度时间同步的主要内容,如果未能解决你的问题,请参考以下文章

IEEE1588协议简介

ZYNQ 系统的IEEE1588 实现方法

RT-Thread : IEEE1588/PTP 的实现

IEEE 1588-PTP简介

RT-Thread使用DP83640 实现IEEE1588 协议笔记

IEEE1588精密网络同步协议(PTP)