Jetson-AGX-Xavier上 时间同步方案GPS+PPS+NTP+PTP
Jetson-AGX-Xavier上 时间同步方案GPS+PPS+NTP+PTP
-
GPS+PPS通过串口、gpio接入Jetson-AGX-Xavier,给Jetson-AGX-Xavier提供时间
-
Jetson-AGX-Xavier通过ptp给激光雷达等其它局域网设备提供时间
GPS+PPS 时间同步
-
安装pps-tools工具
sudo apt-get update sudo apt-get install -y pps-tools
-
检测pps信号是否是秒脉冲
sudo ppstest /dev/pps0 #出现每间隔1秒种打印如下内容,即pps信号秒脉冲成功收到 source 0 - assert xxxxx, sequence: xxx - clear xxxxx, sequence: 0
-
串口GPRMC数据检测
#设置串口波特率115200 stty -F /dev/ttyTHS0 ispeed 115200 ospeed 115200 cs8 #使用cat打印串口数据 cat /dev/ttyTHS0 #显示有$GPRMC数据并1s接收一次,即串口成功接收授时数据。可进行时间同步
-
编译安装ntp源码
将ntp-4.2.8p15源码拷贝到xavier上,进入到ntp源码目录下,执行以下命令进行编译
./configure make sudo make install
-
配置ntpd.conf
#在xavier系统下的/etc目录下添加ntpd.conf 里面内容如下 # OpenBSD: ntpd.conf,v 1.7 2004/07/20 17:38:35 henning Exp $ # sample ntpd configuration file, see ntpd.conf(5)tinker panic 0# Addresses to listen on (ntpd does not listen by default) #listen on * #listen on 127.0.0.1 #listen on ::1# sync to a single server #server ntp.example.org# use a random selection of 8 public stratum 2 servers # see http://twiki.ntp.org/bin/view/Servers/NTPPoolServers #servers pool.ntp.orgdriftfile /var/lib/ntp/driftdisable monitor# NMEA refclock driver directly from serial porta,mode 80 = 460800bps # mode 0 = 9600 # mode 16 = 19200 # mode 32 = 57600 # mode 48 = 115200 # mode 64 = 230400 # mode 80 = 460800 server 127.127.20.1 mode 49 minpoll 3 iburst prefer true fudge 127.127.20.1 flag1 1 flag2 0 flag3 0 flag4 0 time1 0.00 refid GPS# ATOM PPS driver directly from interrupt through /dev/pps0 server 127.127.22.1 minpoll 4 maxpoll 4 iburst true fudge 127.127.22.1 flag2 0 flag3 0 flag4 1 time1 0.0 refid PPS
-
在自启动脚本中添加授时自启动
sleep 1s stty -F /dev/ttyTHS0 ispeed 115200 ospeed 115200 cs8 ln -s /dev/ttyTHS0 /dev/gps1 ln -s /dev/pps0 /dev/gpspps1 ntpd -c /etc/ntpd.conf
-
重新给Jetson-AGX-Xavier上下电后,在终端输入ntpq -p 就可以看到GPS的授时 其中offset小于5表示时间成功同步。
remote refid st t when poll reach delay offset jitter ============================================================================== *GPS_NMEA(1) .GPS. 0 l 49 64 377 0.000 +1.613 6.642
ptp时间同步
-
xavier编译安装ptpd
#下载ptpd 并解压 https://github.com/ptpd/ptpd/tree/ptpd-2.3.1 #编译 autoreconf -vi ./configure make #安装 sudo make install
-
自启动脚本文件里面添加ptpd 主设备启动命令
sleep 2s ptpd2 -L -C -M -i eth0 &
-
linux笔记本电脑(这里充当ptp从设备)安装ptpd
#下载ptpd 并解压 https://github.com/ptpd/ptpd/tree/ptpd-2.3.1 #编译 autoreconf -vi ./configure make #安装 make install
-
自启动脚本里面添加ptpd 从设备启动命令
sleep 2s ptpd2 -L -C -s -i eth0 -S /var/log/ptpd.log &
-
重新上下电Jetson-AGX-Xavier设备
-
在linux笔记本电脑上查看/var/log/ptpd.log,内容如下,其中Offset From Master字段为同步误差,单位为s,当同步误差小于0.001时,同步成功。
# Timestamp, State, Clock ID, One Way Delay, Offset From Master, Slave to Master, Master to Slave, Observed Drift, Last packet Received, One Way Delay Mean, One Way Delay Std Dev, Offset From Master Mean, Offset From Master Std Dev, Observed Drift Mean, Observed Drift Std Dev, raw delayMS, raw delaySM 2022-09-06 11:18:16.120935, init, 2022-09-06 11:18:16.224368, lstn_init, 1 2022-09-06 11:18:17.462962, slv, 247625fffe98ca4a(unknown)/1, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, I, 0.000000000, 0, 0.000000000, 0, 0, 0, 0.000000000, 0.000000000 2022-09-06 11:18:18.461847, slv, 247625fffe98ca4a(unknown)/1, 0.000000000, -8461219.047350856, 0.000000000, -8461219.047350856, 0.000000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -8461219.047350856, 0.000000000 2022-12-13 09:38:37.515919, flt, 2022-12-13 09:38:37.516015, init, 2022-12-13 09:38:37.618565, lstn_reset, 2 2022-12-13 09:38:38.509269, slv, 247625fffe98ca4a(unknown)/1, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0.000000000, I, 0.000000000, 0, 0.000000000, 0, 0, 0, -8461219.047350856, 0.000000000 2022-12-13 09:38:39.508787, slv, 247625fffe98ca4a(unknown)/1, 0.000000000, -0.000102161, 0.000000000, -0.000204322, 0.000000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000204322, 0.000000000 2022-12-13 09:38:40.519338, slv, 247625fffe98ca4a(unknown)/1, 0.000000000, -0.000148817, 0.000000000, -0.000093313, 0.000000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000093313, 0.000000000 2022-12-13 09:38:41.509062, slv, 247625fffe98ca4a(unknown)/1, 0.000000000, -0.000076180, 0.000000000, -0.000059048, -148.817000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000059048, 0.000000000 2022-12-13 09:38:42.035599, slv, 247625fffe98ca4a(unknown)/1, 0.000131841, -0.000076180, 0.000586410, -0.000059048, -224.997000000, D, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000059048, 0.000586410 2022-12-13 09:38:42.508640, slv, 247625fffe98ca4a(unknown)/1, 0.000131841, -0.000224606, 0.000586410, -0.000258323, -224.997000000, S, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000258323, 0.000586410 2022-12-13 09:38:43.061501, slv, 247625fffe98ca4a(unknown)/1, 0.000167006, -0.000224606, 0.000539648, -0.000258323, -449.603000000, D, 0.000000000, 0, 0.000000000, 0, 0, 0, -0.000258323, 0.000539648
-
至此Jetson-AGX-Xavier的GPS+PPS+NTP+PTP时间同步配置成功。