
本文主要演示基于PTP的时钟同步测试。
备注:本文适用于SBC-TL3588单板机及EPC-TL3588工控机系列(由SBC-TL3588单板机搭配扩展板与外壳组成),文中所有演示均基于4GByte LPDDR4X + 32GByte eMMC硬件配置的单板机开展。
Windows开发环境:Windows10 64bit、Windows7 64bit
Linux开发环境:VMware16.2.5、Ubuntu22.04.4 64bit
系统版本:Tronlong-Desktop 22.04(类Ubuntu)、Linux-6.1.141、U-Boot 2017.09
sysroot:rk3588-Tronlong-Desktop-22.04-sysroot-[版本号].tar.gz
应用开发交叉编译工具链:aarch64-linux-gnu-gcc(版本为11.4.0,通过网络下载)
为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

无特殊说明,默认从eMMC启动系统,使用DEBUG作为调试串口。
IEEE1588协议简称精确时钟协议PTP(Precision Timing Protocol),它的全称是“网络测量和控制系统的精密时钟同步协议标准”(IEEE 1588 Precision Clock Synchronization Protocol),用于同步计算机网络中的时钟。
PTP工作的基本原理,是通过主从节点之间进行同步数据帧的发送,记录数据帧的发送时间和接收时间信息进行工作,并且将该时间信息添加到该数据帧中。从节点获取这些时间信息,并计算从节点本地时钟与主时钟的时间偏差和网络节点之间的传输延时,对本地时钟进行纠正,使之与主节点时钟同步。
本次测试以LAN1进行演示,请准备2个SBC-TL3588单板机,使用一根网线将2个单板机的LAN1网口直接连接。本次测试中,单板机1的LAN1网口作为Master,单板机2的LAN1网口作为Slave。
备注:如需使用LAN2网口进行测试,请将命令中的"eth0"修改为"eth1"即可。
分别进入单板机1、单板机2系统,执行如下命令,设置两块单板机IP地址,确保两块单板机的网段相同。
Target# ifconfig eth0 192.168.12.190 up

Target# ifconfig eth0 192.168.12.191 up

进入单板机1系统,执行如下命令,进行对时测试。
Target# ptp4l -i eth0 -m -H

进入单板机2系统,执行如下命令,进行对时测试。下图第一列红色框打印的信息为2个单板机的对时时差,单位为ns;查看s2时钟的master offset数据,可见PTP对时功能基本正常。第二列红色框打印的信息为path delay,单位为ns。按"Ctrl + C"可停止测试。
Target# ptp4l -i eth0 -m -H -s
参数解析:
-i eth0:指定网络端口。
-m:打印测试信息。
-H:使用硬件时间戳。
-s:Slave模式。

参数解析:
(1)master offset:测量与主设备的偏移(以ns为单位),即对时时差;
(2)s0、s2:不同的时钟伺服状态;
(3)path delay:从主设备发送同步消息的延迟(以ns为单位)。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。